@seqyuan/annodex 0.1.29 → 0.1.31
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.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +8 -6
- package/.next/build-manifest.json +3 -3
- package/.next/diagnostics/build-diagnostics.json +1 -1
- package/.next/prerender-manifest.json +297 -4
- package/.next/react-loadable-manifest.json +44 -0
- package/.next/required-server-files.js +51 -6
- package/.next/required-server-files.json +51 -6
- package/.next/routes-manifest.json +14 -0
- package/.next/server/app/_global-error/page.js +3 -3
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +17 -15
- package/.next/server/app/_not-found.segments/_full.segment.rsc +17 -15
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -4
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/api/agent/[id]/events/route.js +2 -2
- package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/runtime/route.js +1 -1
- package/.next/server/app/api/agent/runtime/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/all-providers/route.js +1 -1
- package/.next/server/app/api/auth/all-providers/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/login/route.js +1 -1
- package/.next/server/app/api/auth/login/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/logout/[provider]/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/providers/route.js +1 -1
- package/.next/server/app/api/auth/providers/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/status/route.js +1 -1
- package/.next/server/app/api/auth/status/route.js.nft.json +1 -1
- package/.next/server/app/api/default-cwd/route.js +1 -1
- package/.next/server/app/api/default-cwd/route.js.nft.json +1 -1
- package/.next/server/app/api/files/[...path]/route.js +1 -1
- package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/harness/route.js +1 -1
- package/.next/server/app/api/harness/route.js.nft.json +1 -1
- package/.next/server/app/api/home/route.js +1 -1
- package/.next/server/app/api/home/route.js.nft.json +1 -1
- package/.next/server/app/api/internal/runtime/route.js +1 -1
- package/.next/server/app/api/internal/runtime/route.js.nft.json +1 -1
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models/route.js.nft.json +1 -1
- package/.next/server/app/api/models-config/discover/route.js +1 -1
- package/.next/server/app/api/models-config/discover/route.js.nft.json +1 -1
- package/.next/server/app/api/models-config/route.js +1 -1
- package/.next/server/app/api/models-config/route.js.nft.json +1 -1
- package/.next/server/app/api/models-config/test/route.js +1 -1
- package/.next/server/app/api/models-config/test/route.js.nft.json +1 -1
- package/.next/server/app/api/projects/browse/route.js +1 -1
- package/.next/server/app/api/projects/browse/route.js.nft.json +1 -1
- package/.next/server/app/api/projects/route.js +1 -1
- package/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/server/app/api/search/route.js +1 -1
- package/.next/server/app/api/search/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/new/route.js +1 -1
- package/.next/server/app/api/sessions/new/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/route.js +1 -1
- package/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/install/route.js +2 -2
- package/.next/server/app/api/skills/install/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/route.js +2 -2
- package/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/search/route.js +1 -1
- package/.next/server/app/api/skills/search/route.js.nft.json +1 -1
- package/.next/server/app/api/soul/route.js +1 -1
- package/.next/server/app/api/soul/route.js.nft.json +1 -1
- package/.next/server/app/api/version/route.js +1 -1
- package/.next/server/app/api/version/route.js.nft.json +1 -1
- package/.next/server/app/docs/[[...slug]]/page.js +4 -0
- package/.next/server/app/docs/[[...slug]]/page.js.nft.json +1 -0
- package/.next/server/app/docs/[[...slug]]/page_client-reference-manifest.js +1 -0
- package/.next/server/app/docs/architecture.html +26 -0
- package/.next/server/app/docs/architecture.meta +16 -0
- package/.next/server/app/docs/architecture.rsc +36 -0
- package/.next/server/app/docs/architecture.segments/_full.segment.rsc +36 -0
- package/.next/server/app/docs/architecture.segments/_head.segment.rsc +6 -0
- package/.next/server/app/docs/architecture.segments/_index.segment.rsc +7 -0
- package/.next/server/app/docs/architecture.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/docs/architecture.segments/docs/$oc$slug/__PAGE__.segment.rsc +12 -0
- package/.next/server/app/docs/architecture.segments/docs/$oc$slug.segment.rsc +5 -0
- package/.next/server/app/docs/architecture.segments/docs.segment.rsc +6 -0
- package/.next/server/app/docs/configuration.html +28 -0
- package/.next/server/app/docs/configuration.meta +16 -0
- package/.next/server/app/docs/configuration.rsc +34 -0
- package/.next/server/app/docs/configuration.segments/_full.segment.rsc +34 -0
- package/.next/server/app/docs/configuration.segments/_head.segment.rsc +6 -0
- package/.next/server/app/docs/configuration.segments/_index.segment.rsc +7 -0
- package/.next/server/app/docs/configuration.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/docs/configuration.segments/docs/$oc$slug/__PAGE__.segment.rsc +10 -0
- package/.next/server/app/docs/configuration.segments/docs/$oc$slug.segment.rsc +5 -0
- package/.next/server/app/docs/configuration.segments/docs.segment.rsc +6 -0
- package/.next/server/app/docs/file-and-report-viewing.html +29 -0
- package/.next/server/app/docs/file-and-report-viewing.meta +16 -0
- package/.next/server/app/docs/file-and-report-viewing.rsc +34 -0
- package/.next/server/app/docs/file-and-report-viewing.segments/_full.segment.rsc +34 -0
- package/.next/server/app/docs/file-and-report-viewing.segments/_head.segment.rsc +6 -0
- package/.next/server/app/docs/file-and-report-viewing.segments/_index.segment.rsc +7 -0
- package/.next/server/app/docs/file-and-report-viewing.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/docs/file-and-report-viewing.segments/docs/$oc$slug/__PAGE__.segment.rsc +10 -0
- package/.next/server/app/docs/file-and-report-viewing.segments/docs/$oc$slug.segment.rsc +5 -0
- package/.next/server/app/docs/file-and-report-viewing.segments/docs.segment.rsc +6 -0
- package/.next/server/app/docs/installation-and-deployment.html +30 -0
- package/.next/server/app/docs/installation-and-deployment.meta +16 -0
- package/.next/server/app/docs/installation-and-deployment.rsc +39 -0
- package/.next/server/app/docs/installation-and-deployment.segments/_full.segment.rsc +39 -0
- package/.next/server/app/docs/installation-and-deployment.segments/_head.segment.rsc +6 -0
- package/.next/server/app/docs/installation-and-deployment.segments/_index.segment.rsc +7 -0
- package/.next/server/app/docs/installation-and-deployment.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/docs/installation-and-deployment.segments/docs/$oc$slug/__PAGE__.segment.rsc +16 -0
- package/.next/server/app/docs/installation-and-deployment.segments/docs/$oc$slug.segment.rsc +5 -0
- package/.next/server/app/docs/installation-and-deployment.segments/docs.segment.rsc +6 -0
- package/.next/server/app/docs/models-and-tools.html +29 -0
- package/.next/server/app/docs/models-and-tools.meta +16 -0
- package/.next/server/app/docs/models-and-tools.rsc +34 -0
- package/.next/server/app/docs/models-and-tools.segments/_full.segment.rsc +34 -0
- package/.next/server/app/docs/models-and-tools.segments/_head.segment.rsc +6 -0
- package/.next/server/app/docs/models-and-tools.segments/_index.segment.rsc +7 -0
- package/.next/server/app/docs/models-and-tools.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/docs/models-and-tools.segments/docs/$oc$slug/__PAGE__.segment.rsc +10 -0
- package/.next/server/app/docs/models-and-tools.segments/docs/$oc$slug.segment.rsc +5 -0
- package/.next/server/app/docs/models-and-tools.segments/docs.segment.rsc +6 -0
- package/.next/server/app/docs/quick-start.html +24 -0
- package/.next/server/app/docs/quick-start.meta +16 -0
- package/.next/server/app/docs/quick-start.rsc +36 -0
- package/.next/server/app/docs/quick-start.segments/_full.segment.rsc +36 -0
- package/.next/server/app/docs/quick-start.segments/_head.segment.rsc +6 -0
- package/.next/server/app/docs/quick-start.segments/_index.segment.rsc +7 -0
- package/.next/server/app/docs/quick-start.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/docs/quick-start.segments/docs/$oc$slug/__PAGE__.segment.rsc +12 -0
- package/.next/server/app/docs/quick-start.segments/docs/$oc$slug.segment.rsc +5 -0
- package/.next/server/app/docs/quick-start.segments/docs.segment.rsc +6 -0
- package/.next/server/app/docs/runtime-and-sse.html +28 -0
- package/.next/server/app/docs/runtime-and-sse.meta +16 -0
- package/.next/server/app/docs/runtime-and-sse.rsc +34 -0
- package/.next/server/app/docs/runtime-and-sse.segments/_full.segment.rsc +34 -0
- package/.next/server/app/docs/runtime-and-sse.segments/_head.segment.rsc +6 -0
- package/.next/server/app/docs/runtime-and-sse.segments/_index.segment.rsc +7 -0
- package/.next/server/app/docs/runtime-and-sse.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/docs/runtime-and-sse.segments/docs/$oc$slug/__PAGE__.segment.rsc +10 -0
- package/.next/server/app/docs/runtime-and-sse.segments/docs/$oc$slug.segment.rsc +5 -0
- package/.next/server/app/docs/runtime-and-sse.segments/docs.segment.rsc +6 -0
- package/.next/server/app/docs/sessions-and-projects.html +27 -0
- package/.next/server/app/docs/sessions-and-projects.meta +16 -0
- package/.next/server/app/docs/sessions-and-projects.rsc +34 -0
- package/.next/server/app/docs/sessions-and-projects.segments/_full.segment.rsc +34 -0
- package/.next/server/app/docs/sessions-and-projects.segments/_head.segment.rsc +6 -0
- package/.next/server/app/docs/sessions-and-projects.segments/_index.segment.rsc +7 -0
- package/.next/server/app/docs/sessions-and-projects.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/docs/sessions-and-projects.segments/docs/$oc$slug/__PAGE__.segment.rsc +10 -0
- package/.next/server/app/docs/sessions-and-projects.segments/docs/$oc$slug.segment.rsc +5 -0
- package/.next/server/app/docs/sessions-and-projects.segments/docs.segment.rsc +6 -0
- package/.next/server/app/docs/workspace.html +28 -0
- package/.next/server/app/docs/workspace.meta +16 -0
- package/.next/server/app/docs/workspace.rsc +34 -0
- package/.next/server/app/docs/workspace.segments/_full.segment.rsc +34 -0
- package/.next/server/app/docs/workspace.segments/_head.segment.rsc +6 -0
- package/.next/server/app/docs/workspace.segments/_index.segment.rsc +7 -0
- package/.next/server/app/docs/workspace.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/docs/workspace.segments/docs/$oc$slug/__PAGE__.segment.rsc +10 -0
- package/.next/server/app/docs/workspace.segments/docs/$oc$slug.segment.rsc +5 -0
- package/.next/server/app/docs/workspace.segments/docs.segment.rsc +6 -0
- package/.next/server/app/docs.html +41 -0
- package/.next/server/app/docs.meta +16 -0
- package/.next/server/app/docs.rsc +35 -0
- package/.next/server/app/docs.segments/_full.segment.rsc +35 -0
- package/.next/server/app/docs.segments/_head.segment.rsc +6 -0
- package/.next/server/app/docs.segments/_index.segment.rsc +7 -0
- package/.next/server/app/docs.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/docs.segments/docs/$oc$slug/__PAGE__.segment.rsc +11 -0
- package/.next/server/app/docs.segments/docs/$oc$slug.segment.rsc +5 -0
- package/.next/server/app/docs.segments/docs.segment.rsc +6 -0
- package/.next/server/app/index.html +2 -1
- package/.next/server/app/index.rsc +28 -14
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +14 -5
- package/.next/server/app/index.segments/_full.segment.rsc +28 -14
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +6 -4
- package/.next/server/app/index.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/login/page.js +2 -2
- package/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +21 -19
- package/.next/server/app/login.segments/_full.segment.rsc +21 -19
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +6 -4
- package/.next/server/app/login.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/page.js +3 -263
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/workspace/page.js +263 -0
- package/.next/server/app/workspace/page.js.nft.json +1 -0
- package/.next/server/app/workspace/page_client-reference-manifest.js +1 -0
- package/.next/server/app/workspace.html +1 -0
- package/.next/server/app/workspace.meta +15 -0
- package/.next/server/app/workspace.rsc +21 -0
- package/.next/server/app/workspace.segments/_full.segment.rsc +21 -0
- package/.next/server/app/workspace.segments/_head.segment.rsc +6 -0
- package/.next/server/app/workspace.segments/_index.segment.rsc +7 -0
- package/.next/server/app/workspace.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/workspace.segments/workspace/__PAGE__.segment.rsc +6 -0
- package/.next/server/app/workspace.segments/workspace.segment.rsc +5 -0
- package/.next/server/app-paths-manifest.json +8 -6
- package/.next/server/chunks/1106.js +1 -0
- package/.next/server/chunks/1381.js +1 -1
- package/.next/server/chunks/1681.js +2 -2
- package/.next/server/chunks/1703.js +2 -2
- package/.next/server/chunks/2098.js +1 -0
- package/.next/server/chunks/2220.js +1 -0
- package/.next/server/chunks/3031.js +1 -1
- package/.next/server/chunks/3353.js +1 -0
- package/.next/server/chunks/3493.js +1 -1
- package/.next/server/chunks/402.js +1 -1
- package/.next/server/chunks/4035.js +1 -1
- package/.next/server/chunks/4091.js +5 -0
- package/.next/server/chunks/4443.js +3 -0
- package/.next/server/chunks/5293.js +2 -2
- package/.next/server/chunks/5488.js +1 -0
- package/.next/server/chunks/7073.js +1 -1
- package/.next/server/chunks/7526.js +1 -0
- package/.next/server/chunks/76.js +1 -0
- package/.next/server/chunks/8875.js +1 -0
- package/.next/server/chunks/8916.js +1 -1
- package/.next/server/chunks/9175.js +10 -0
- package/.next/server/chunks/9537.js +1 -1
- package/.next/server/chunks/966.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/middleware.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/server/webpack-runtime.js +1 -1
- package/.next/static/c12uc5Ebna-CqP4_lL37X/_buildManifest.js +1 -0
- package/.next/static/c12uc5Ebna-CqP4_lL37X/_ssgManifest.js +1 -0
- package/.next/static/chunks/2632.f12f984b8009d7f1.js +1 -0
- package/.next/static/chunks/2679.f76721dbd8ec617f.js +5 -0
- package/.next/static/chunks/4660.6d9fc47e6ed8e7e4.js +10 -0
- package/.next/static/chunks/4894-e27a35edd6176226.js +1 -0
- package/.next/static/chunks/5122-6e0d29bd15f079e1.js +3 -0
- package/.next/static/chunks/5166-58bbf85cbd32ad99.js +1 -0
- package/.next/static/chunks/6606.789f1fc26b9150dd.js +1 -0
- package/.next/static/chunks/6878.3d114dd7c83aa676.js +1 -0
- package/.next/static/chunks/7627-1f8c705195c83044.js +1 -0
- package/.next/static/chunks/8500-f62a38ff68ab7f42.js +1 -0
- package/.next/static/chunks/9211-21786f967f9c2826.js +1 -0
- package/.next/static/chunks/9278-58ee6294b32318a5.js +3 -0
- package/.next/static/chunks/9566.2b92edbd162fb97d.js +1 -0
- package/.next/static/chunks/9855.1127e644bd68ced0.js +1 -0
- package/.next/static/chunks/app/docs/[[...slug]]/page-d232277716ab7921.js +1 -0
- package/.next/static/chunks/app/docs/layout-4809bb9dd4b49bff.js +1 -0
- package/.next/static/chunks/app/layout-11cc1f48ff425fd0.js +1 -0
- package/.next/static/chunks/app/login/page-870e0ee50453c2ba.js +1 -0
- package/.next/static/chunks/app/page-eb62ac677a87b790.js +1 -0
- package/.next/static/chunks/app/{page-2922ff93c9d7125a.js → workspace/page-696a330100ac0387.js} +5 -5
- package/.next/static/chunks/webpack-ced9e639bb94bd30.js +1 -0
- package/.next/static/css/876e881d7ba02ed2.css +1 -0
- package/.next/static/css/fddca953485158e4.css +1 -0
- package/README.md +3 -3
- package/next.config.ts +4 -1
- package/package.json +6 -1
- package/.next/static/9gZRVRFtSybXSBT4BsNDG/_buildManifest.js +0 -1
- package/.next/static/9gZRVRFtSybXSBT4BsNDG/_ssgManifest.js +0 -1
- package/.next/static/chunks/8771-3e14b6810486df1f.js +0 -1
- package/.next/static/chunks/app/layout-be148b7ae915b22a.js +0 -1
- package/.next/static/chunks/app/login/page-ebf0e6de99062783.js +0 -1
- package/.next/static/chunks/webpack-fcf4a889ecbd753c.js +0 -1
- package/.next/static/css/df604d0d99136435.css +0 -3
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
(()=>{var a={};a.id=7870,a.ids=[7870],a.modules={108:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b)||(0,h.isPrerenderInterruptedError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=c(48894),e=c(64491),f=c(62880),g=c(76484),h=c(23445),i=c(43449);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},115:(a,b,c)=>{"use strict";c.d(b,{LucideProvider:()=>e,useLucideContext:()=>f});var d=c(77943);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call LucideProvider() from the server but LucideProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/lucide-react/dist/esm/context.mjs","LucideProvider"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call useLucideContext() from the server but useLucideContext is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/lucide-react/dist/esm/context.mjs","useLucideContext")},261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1708:a=>{"use strict";a.exports=require("node:process")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5847:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{s:()=>h});var e=c(93442),f=c(98981),g=a([f]);f=(g.then?(await g)():g)[0];let h=(0,e.wG)({baseUrl:"/docs",source:f.m.toFumadocsSource()});d()}catch(a){d(a)}})},6933:(a,b,c)=>{"use strict";c.d(b,{CodeBlock:()=>e,CodeBlockTab:()=>f,CodeBlockTabs:()=>g,CodeBlockTabsList:()=>h,CodeBlockTabsTrigger:()=>i,Pre:()=>j});var d=c(77943);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call CodeBlock() from the server but CodeBlock is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/components/codeblock.js","CodeBlock"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call CodeBlockTab() from the server but CodeBlockTab is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/components/codeblock.js","CodeBlockTab"),g=(0,d.registerClientReference)(function(){throw Error("Attempted to call CodeBlockTabs() from the server but CodeBlockTabs is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/components/codeblock.js","CodeBlockTabs"),h=(0,d.registerClientReference)(function(){throw Error("Attempted to call CodeBlockTabsList() from the server but CodeBlockTabsList is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/components/codeblock.js","CodeBlockTabsList"),i=(0,d.registerClientReference)(function(){throw Error("Attempted to call CodeBlockTabsTrigger() from the server but CodeBlockTabsTrigger is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/components/codeblock.js","CodeBlockTabsTrigger"),j=(0,d.registerClientReference)(function(){throw Error("Attempted to call Pre() from the server but Pre is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/components/codeblock.js","Pre")},7063:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>N,handler:()=>P,routeModule:()=>O});var d=c(7553),e=c(84006),f=c(67798),g=c(34775),h=c(99373),i=c(73461),j=c(1020),k=c(26349),l=c(54365),m=c(16023),n=c(63747),o=c(24235),p=c(23938),q=c(261),r=c(66758),s=c(77243),t=c(26713),u=c(37527),w=c(22820),x=c(88216),y=c(47929),z=c(79551),A=c(71797),B=c(89125),C=c(86439),D=c(77068),E=c(27269),F=c(61287),G=c(81494),H=c(70722),I=c(70753),J=c(43954),K=c(17891),L={};for(let a in F)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(L[a]=()=>F[a]);c.d(b,L);let M={children:["",{children:["docs",{children:["[[...slug]]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,33083)),"/home/runner/work/annodex/annodex/app/docs/[[...slug]]/page.tsx"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,28530)),"/home/runner/work/annodex/annodex/app/docs/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,32056)),"/home/runner/work/annodex/annodex/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,55091,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"]},[]]}.children,N={require:c,loadChunk:()=>Promise.resolve()},O=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/docs/[[...slug]]/page",pathname:"/docs/[[...slug]]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:M},distDir:".next",relativeProjectDir:""});async function P(a,b,d){var L,Q,R,S,T;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),O.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let U=!!(0,h.getRequestMeta)(a,"minimalMode"),V="/docs/[[...slug]]/page";"/index"===V&&(V="/");let W=await O.prepare(a,b,{srcPage:V,multiZoneDraftMode:!1});if(!W)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:X,query:Y,params:Z,pageIsDynamic:$,buildManifest:_,nextFontManifest:aa,reactLoadableManifest:ab,serverActionsManifest:ac,clientReferenceManifest:ad,subresourceIntegrityManifest:ae,prerenderManifest:af,isDraftMode:ag,resolvedPathname:ah,revalidateOnlyGenerated:ai,routerServerContext:aj,nextConfig:ak,parsedUrl:al,interceptionRoutePatterns:am,deploymentId:an,clientAssetToken:ao}=W,ap=(0,q.normalizeAppPath)(V),{isOnDemandRevalidate:aq}=W,ar=ak.experimental.ppr&&!ak.cacheComponents&&(0,J.isInterceptionRouteAppPath)(ah)?null:O.match(ah,af),as=(null==ar?void 0:ar.route)??null,at=!!af.routes[ah],au=a.headers["user-agent"]||"",av=(0,t.getBotType)(au),aw=(0,p.isHtmlBotRequest)(a),ax=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ay=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],az=(0,r.getIsPossibleServerAction)(a),aA=(0,m.checkIsAppPPREnabled)(ak.experimental.ppr),aB=a.headers[y.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&U&&aA&&az&&aB&&"string"==typeof aB){let e=parseInt(aB,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,E.getMaxPostponedStateSize)(ak.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,E.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(T=ak.experimental.serverActions)?void 0:T.bodySizeLimit)??i,k=e+(j!==i?c(95726).parse(j):1048576),l=await (0,E.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&aA&&"1"===a.headers[y.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,E.getMaxPostponedStateSize)(ak.experimental.maxPostponedStateSize),f=await (0,E.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,E.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aC=!0===O.isDev||!0===ak.experimental.exposeTestingApiInProductionBuild,aD=aC&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aE=(aA||aD)&&((null==(L=af.routes[ap]??af.dynamicRoutes[ap])?void 0:L.renderingMode)==="PARTIALLY_STATIC"||aD&&(aC||(null==aj?void 0:aj.experimentalTestProxy)===!0)),aF=aD&&aE,aG=aF&&!0===O.isDev,aH=!1,aI=aE?(0,h.getRequestMeta)(a,"postponed"):void 0,aJ=null==(Q=af.routes[ah])?void 0:Q.prefetchDataRoute,aK=aE&&ay&&!ax&&!aJ;U&&(aK=aK&&!!aI);let aL=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aM=(!av||!aE)&&(!au||(0,p.shouldServeStreamingMetadata)(au,ak.htmlLimitedBots)),aN=!!((as||at||af.routes[ap])&&!(av&&aE)),aO=aE&&!0===ak.cacheComponents,aP=!0===O.isDev||!aN||"string"==typeof aI||(aO&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aK&&!U:aK),aQ=!!av&&aE,aR=(null==as?void 0:as.remainingPrerenderableParams)??[],aS=(null==as?void 0:as.fallback)===null&&((null==(R=as.fallbackRootParams)?void 0:R.length)??0)>0,aT=null;if(!ag&&aN&&!aP&&!az&&!aI&&!aK){let a=ar?"string"==typeof(null==as?void 0:as.fallback)?as.fallback:ar.source:null;if(!0===ak.experimental.partialFallbacks&&a&&(null==as?void 0:as.fallbackRouteParams)&&!aS){if(aR.length>0){let b,c=(b=new Map(aR.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,K.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Z?void 0:Z[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,K.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aT=c!==a?c:null}}else aT=ah}let aU=aT;!aU&&(O.isDev||aN&&$&&(null==as?void 0:as.fallbackRouteParams)&&!az)&&(aU=ah),O.isDev||ag||!aN||!ay||aK||(0,k.d)(a.headers);let aV={...F,tree:M,handler:P,routeModule:O,__next_app__:N};ac&&ad&&(0,o.setManifestsSingleton)({page:V,clientReferenceManifest:ad,serverActionsManifest:ac});let aW=a.method||"GET",aX=(0,g.getTracer)(),aY=aX.getActiveScopeSpan(),aZ=!!(null==aj?void 0:aj.isWrappedByNextServer),a$=!0===ak.experimental.partialFallbacks&&aR.length>0?(null==as||null==(S=as.fallbackRouteParams)?void 0:S.filter(a=>!aR.some(b=>b.paramName===a.paramName)))??[]:[],a_=async()=>((null==aj?void 0:aj.render404)?await aj.render404(a,b,al,!1):b.end("This page could not be found"),null);try{let f,k=O.getVaryHeader(ah,am);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return O.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aX.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aW} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aW} ${V}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await O.getIncrementalCache(a,ak,af,U);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:Y,params:Z,page:ap,sharedContext:{buildId:X,deploymentId:an,clientAssetToken:ao},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aV,Component:(0,j.T)(aV),params:Z,routeModule:O,page:V,postponed:f,shouldWaitOnAllReady:aQ,serveStreamingMetadata:aM,supportsDynamicResponse:"string"==typeof f||aP,buildManifest:_,nextFontManifest:aa,reactLoadableManifest:ab,subresourceIntegrityManifest:ae,setCacheStatus:null==aj?void 0:aj.setCacheStatus,setIsrStatus:null==aj?void 0:aj.setIsrStatus,setReactDebugChannel:null==aj?void 0:aj.setReactDebugChannel,sendErrorsToBrowser:null==aj?void 0:aj.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),O.relativeProjectDir),isDraftMode:ag,botType:av,isOnDemandRevalidate:aq,isPossibleServerAction:az,assetPrefix:ak.assetPrefix,nextConfigOutput:ak.output,crossOrigin:ak.crossOrigin,trailingSlash:ak.trailingSlash,images:ak.images,previewProps:af.preview,enableTainting:ak.experimental.taint,htmlLimitedBots:ak.htmlLimitedBots,reactMaxHeadersLength:ak.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:ak.cacheLife,basePath:ak.basePath,serverActions:ak.experimental.serverActions,logServerFunctions:"object"==typeof ak.logging&&!!ak.logging.serverFunctions,...aF||aG||aH?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aG}:{},cacheComponents:!!ak.cacheComponents,experimental:{isRoutePPREnabled:aE,expireTime:ak.expireTime,staleTimes:ak.experimental.staleTimes,dynamicOnHover:!!ak.experimental.dynamicOnHover,optimisticRouting:!!ak.experimental.optimisticRouting,inlineCss:!!ak.experimental.inlineCss,prefetchInlining:ak.experimental.prefetchInlining??!1,authInterrupts:!!ak.experimental.authInterrupts,cachedNavigations:!!ak.experimental.cachedNavigations,clientTraceMetadata:ak.experimental.clientTraceMetadata||[],clientParamParsingOrigins:ak.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,D.parseMaxPostponedStateSize)(ak.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>O.onRequestError(a,b,d,e,aj),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[y.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aN&&(null==p?void 0:p.revalidate)===0&&!O.isDev&&!aE){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ah}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
|
+
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===O.isDev,m=c||b.writableEnded;if(aq&&ai&&!f&&!U)return(null==aj?void 0:aj.render404)?await aj.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(as&&(k=(0,w.parseFallbackField)(as.fallback)),!0===ak.experimental.partialFallbacks&&(null==as?void 0:as.fallback)===null&&!aS&&aR.length>0&&(k=w.FallbackMode.PRERENDER),k===w.FallbackMode.PRERENDER&&(0,t.isBot)(au)&&(!aE||aw)&&(k=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(aq=!0),aq&&(k!==w.FallbackMode.NOT_FOUND||f)&&(k=w.FallbackMode.BLOCKING_STATIC_RENDER),!U&&k!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aU&&!m&&!ag&&$&&(l||!at)){if((l||as)&&k===w.FallbackMode.NOT_FOUND){if(ak.adapterPath)return await a_();throw new C.NoFallbackError}if(aE&&(ak.cacheComponents?!aK:!ay)){let b=l&&"string"==typeof(null==as?void 0:as.fallback)?as.fallback:ap,f=(l||aF)&&(null==as?void 0:as.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(as.fallbackRouteParams):aH?(0,n.getFallbackRouteParams)(ap,O):null;aF&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await O.handleResponse({cacheKey:b,req:a,nextConfig:ak,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:af,isRoutePPREnabled:aE,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:U});if(null===g)return null;if(g)return U||!aE||!(aR.length>0)||!0!==ak.experimental.partialFallbacks||!aT||!o||aq||aH||aC||aD||ax||(0,I.scheduleOnNextTick)(async()=>{let b=O.getResponseCache(a);try{await b.revalidate(aT,o,aE,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:a$.length>0?(0,n.createOpaqueFallbackRouteParams)(a$):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=aq||g||!aI?void 0:aI;if(aO&&!U&&o&&(aK||az)&&!j){let b=await o.get(ah,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,I.scheduleOnNextTick)(async()=>{let b=O.getResponseCache(a);try{await b.revalidate(ah,o,aE,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aF||aG)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aF&&!at)&&(null==as?void 0:as.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(as.fallbackRouteParams):aH?(0,n.getFallbackRouteParams)(ap,O):null;if((l||aF)&&ak.cacheComponents&&!at&&(null==as?void 0:as.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(as.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await O.handleResponse({cacheKey:aT,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:aq,isRoutePPREnabled:aE,req:a,nextConfig:ak,prerenderManifest:af,waitUntil:d.waitUntil,isMinimalMode:U});if(ag&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),O.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aT)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ay&&!az&&an&&b.setHeader(y.NEXT_NAV_DEPLOYMENT_ID_HEADER,an),aN&&!aK&&(!n||ax)&&(U||b.setHeader("x-nextjs-cache",aq?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aI)l={revalidate:0,expire:void 0};else if(aK)l={revalidate:0,expire:void 0};else if(!O.isDev)if(ag)l={revalidate:0,expire:void 0};else if(aN){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??ak.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aL&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];U&&aN&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aL);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ak.generateEtags,poweredByHeader:ak.poweredByHeader,result:x.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ak.generateEtags,poweredByHeader:ak.poweredByHeader,result:x.default.EMPTY,cacheControl:m.cacheControl}))}let r=aO?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(U&&aN||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(U&&aN&&t&&"string"==typeof t&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,t),!o.status||ay&&aE||(b.statusCode=o.status),!U&&o.status&&G.RedirectStatusCode[o.status]&&ay&&(b.statusCode=200),n&&!aK&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ay&&!ag){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(ak.cacheComponents)return b.statusCode=404,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ak.generateEtags,poweredByHeader:ak.poweredByHeader,result:x.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new H.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ak.generateEtags,poweredByHeader:ak.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ak.generateEtags,poweredByHeader:ak.poweredByHeader,result:x.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let w=o.html;if(aD&&aF){let c=!0===O.isDev?crypto.randomUUID():null;return w.pipeThrough((0,A.createInstantTestScriptInsertionTransformStream)(c)),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ak.generateEtags,poweredByHeader:ak.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}})}if(!n||U||ay)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ak.generateEtags,poweredByHeader:ak.poweredByHeader,result:w,cacheControl:m.cacheControl});if(aF||aG)return w.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ak.generateEtags,poweredByHeader:ak.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}});let C=new TransformStream;return w.push(C.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(C.writable)}).catch(a=>{C.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ak.generateEtags,poweredByHeader:ak.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}})};if(!aZ||!aY)return f=aX.getActiveScopeSpan(),await aX.withPropagatedContext(a.headers,()=>aX.trace(i.BaseServerSpan.handleRequest,{spanName:`${aW} ${V}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aW,"http.target":a.url}},r),void 0,!aZ);await r(aY)}catch(b){throw b instanceof C.NoFallbackError||await O.onRequestError(a,b,{routerKind:"App Router",routePath:V,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aN,isOnDemandRevalidate:aq})},!1,aj),b}}},8423:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(84124),e=c(67484),f=c(48249);let g=(0,e.forwardRef)(({href:a="#",external:b=a.match(/^\w+:/)||a.startsWith("//"),prefetch:c,children:e,...g},h)=>b?(0,f.jsx)("a",{ref:h,href:a,rel:"noreferrer noopener",target:"_blank",...g,children:e}):(0,f.jsx)(d.N_,{ref:h,href:a,prefetch:c,...g,children:e}));g.displayName="Link"},9253:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/annodex/annodex/node_modules/fumadocs-core/dist/link.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-core/dist/link.js","default")},10381:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return d}});class c extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class d extends URLSearchParams{append(){throw new c}delete(){throw new c}set(){throw new c}sort(){throw new c}}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12167:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(44398).A)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]])},12212:(a,b,c)=>{Promise.resolve().then(c.bind(c,84124)),Promise.resolve().then(c.bind(c,8423)),Promise.resolve().then(c.bind(c,75890)),Promise.resolve().then(c.bind(c,49652)),Promise.resolve().then(c.bind(c,21377)),Promise.resolve().then(c.bind(c,55317)),Promise.resolve().then(c.bind(c,90900))},13017:(a,b,c)=>{"use strict";c.d(b,{Heading:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call Heading() from the server but Heading is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/components/heading.js","Heading")},13057:(a,b,c)=>{Promise.resolve().then(c.bind(c,42386))},14114:(a,b,c)=>{"use strict";c(70358),c(85759),c(48249),c(67484)},14777:(a,b,c)=>{"use strict";c.d(b,{M:()=>i}),c(46731);var d=c(5735),e=c(91986);c(50723);let f=(a,b)=>b.icon?{...a,icon:(0,d.jsx)("div",{className:"size-full [&_svg]:size-full max-md:p-1.5 max-md:rounded-md max-md:border max-md:bg-fd-secondary",children:b.icon})}:a;function g(a,{transform:b=f}={}){let c=[];function d(a,e){if("root"in a&&a.root){let d=a.index?.url??a.children.find(a=>"page"===a.type)?.url;if(d){let f={title:a.name,icon:a.icon,description:a.description,url:d,unlisted:e,$folder:a},g=b?b(f,a):f;g&&c.push(g)}}for(let b of a.children)"folder"===b.type&&d(b,e)}return d(a),a.fallback&&d(a.fallback,!0),c}var h=c(20189);function i({tree:a,sidebar:{tabs:b,tabMode:c,...f}={},tabs:j=b,tabMode:k=c,children:l,...m}){return(0,d.jsx)(h.LayoutBody,{tree:a,tabs:(0,e.useMemo)(()=>Array.isArray(j)?j:"object"==typeof j?g(a,j):!1!==j?g(a):[],[a,j]),tabMode:k,sidebar:f,...m,children:l})}},15833:(a,b,c)=>{"use strict";c.r(b),c.d(b,{_markdown:()=>f,default:()=>j,frontmatter:()=>e,structuredData:()=>g,toc:()=>h});var d=c(5735);let e={title:"Sessions and Projects",description:"为什么 annodex 以项目为中心组织会话。"},f="\n\n## 项目优先 [#项目优先]\n\nannodex 将“项目目录”视为组织工作的基本单位。\n\n这意味着:\n\n* 会话不只是孤立文本,而是与文件上下文绑定\n* 历史记录更容易回看与继续\n* 多个项目之间更容易切换而不混淆\n\n## 为什么不是只有 thread 列表 [#为什么不是只有-thread-列表]\n\n底层协议可以只暴露 thread,但对真实工作来说这并不足够。\n\n用户通常更关心:\n\n* 这个会话属于哪个项目?\n* 上次已经读过哪些文件?\n* 这个结果是在哪个项目里生成的?\n* 能否继续同一上下文而不是重新开始?\n\n## 结果 [#结果]\n\n项目优先的结构,更适合:\n\n* 持续数天或数周的分析任务\n* 需要重复查看结果文件的工作\n* 团队内部交接与说明\n* 需要将“对话”变成“可追踪工作流”的场景\n",g={contents:[{heading:"项目优先",content:"annodex 将“项目目录”视为组织工作的基本单位。"},{heading:"项目优先",content:"这意味着:"},{heading:"项目优先",content:"会话不只是孤立文本,而是与文件上下文绑定"},{heading:"项目优先",content:"历史记录更容易回看与继续"},{heading:"项目优先",content:"多个项目之间更容易切换而不混淆"},{heading:"为什么不是只有-thread-列表",content:"底层协议可以只暴露 thread,但对真实工作来说这并不足够。"},{heading:"为什么不是只有-thread-列表",content:"用户通常更关心:"},{heading:"为什么不是只有-thread-列表",content:"这个会话属于哪个项目?"},{heading:"为什么不是只有-thread-列表",content:"上次已经读过哪些文件?"},{heading:"为什么不是只有-thread-列表",content:"这个结果是在哪个项目里生成的?"},{heading:"为什么不是只有-thread-列表",content:"能否继续同一上下文而不是重新开始?"},{heading:"结果",content:"项目优先的结构,更适合:"},{heading:"结果",content:"持续数天或数周的分析任务"},{heading:"结果",content:"需要重复查看结果文件的工作"},{heading:"结果",content:"团队内部交接与说明"},{heading:"结果",content:"需要将“对话”变成“可追踪工作流”的场景"}],headings:[{id:"项目优先",content:"项目优先"},{id:"为什么不是只有-thread-列表",content:"为什么不是只有 thread 列表"},{id:"结果",content:"结果"}]},h=[{depth:2,url:"#项目优先",title:(0,d.jsx)(d.Fragment,{children:"项目优先"})},{depth:2,url:"#为什么不是只有-thread-列表",title:(0,d.jsx)(d.Fragment,{children:"为什么不是只有 thread 列表"})},{depth:2,url:"#结果",title:(0,d.jsx)(d.Fragment,{children:"结果"})}];function i(a){let b={h2:"h2",li:"li",p:"p",ul:"ul",...a.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(b.h2,{id:"项目优先",children:"项目优先"}),"\n",(0,d.jsx)(b.p,{children:"annodex 将“项目目录”视为组织工作的基本单位。"}),"\n",(0,d.jsx)(b.p,{children:"这意味着:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"会话不只是孤立文本,而是与文件上下文绑定"}),"\n",(0,d.jsx)(b.li,{children:"历史记录更容易回看与继续"}),"\n",(0,d.jsx)(b.li,{children:"多个项目之间更容易切换而不混淆"}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"为什么不是只有-thread-列表",children:"为什么不是只有 thread 列表"}),"\n",(0,d.jsx)(b.p,{children:"底层协议可以只暴露 thread,但对真实工作来说这并不足够。"}),"\n",(0,d.jsx)(b.p,{children:"用户通常更关心:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"这个会话属于哪个项目?"}),"\n",(0,d.jsx)(b.li,{children:"上次已经读过哪些文件?"}),"\n",(0,d.jsx)(b.li,{children:"这个结果是在哪个项目里生成的?"}),"\n",(0,d.jsx)(b.li,{children:"能否继续同一上下文而不是重新开始?"}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"结果",children:"结果"}),"\n",(0,d.jsx)(b.p,{children:"项目优先的结构,更适合:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"持续数天或数周的分析任务"}),"\n",(0,d.jsx)(b.li,{children:"需要重复查看结果文件的工作"}),"\n",(0,d.jsx)(b.li,{children:"团队内部交接与说明"}),"\n",(0,d.jsx)(b.li,{children:"需要将“对话”变成“可追踪工作流”的场景"}),"\n"]})]})}function j(a={}){let{wrapper:b}=a.components||{};return b?(0,d.jsx)(b,{...a,children:(0,d.jsx)(i,{...a})}):i(a)}},16820:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23))},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19708:(a,b,c)=>{"use strict";c.d(b,{I:()=>e});var d=Object.defineProperty,e=(a,b)=>{let c={};for(var e in a)d(c,e,{get:a[e],enumerable:!0});return b||d(c,Symbol.toStringTag,{value:"Module"}),c}},20189:(a,b,c)=>{"use strict";c.d(b,{LayoutBody:()=>e,useDocsLayout:()=>f});var d=c(77943);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call LayoutBody() from the server but LayoutBody is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/layouts/docs/client.js","LayoutBody"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call useDocsLayout() from the server but useDocsLayout is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/layouts/docs/client.js","useDocsLayout");(0,d.registerClientReference)(function(){throw Error("Attempted to call useIsDocsLayout() from the server but useIsDocsLayout is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/layouts/docs/client.js","useIsDocsLayout")},20605:(a,b,c)=>{"use strict";let d,e,f,g,h;c.d(b,{k:()=>aL});let i=(a=new Map,b=null,c)=>({nextPart:a,validators:b,classGroupId:c}),j=[],k=(a,b,c)=>{if(0==a.length-b)return c.classGroupId;let d=a[b],e=c.nextPart.get(d);if(e){let c=k(a,b+1,e);if(c)return c}let f=c.validators;if(null===f)return;let g=0===b?a.join("-"):a.slice(b).join("-"),h=f.length;for(let a=0;a<h;a++){let b=f[a];if(b.validator(g))return b.classGroupId}},l=(a,b)=>{let c=i();for(let d in a)m(a[d],c,d,b);return c},m=(a,b,c,d)=>{let e=a.length;for(let f=0;f<e;f++)n(a[f],b,c,d)},n=(a,b,c,d)=>{"string"==typeof a?o(a,b,c):"function"==typeof a?p(a,b,c,d):q(a,b,c,d)},o=(a,b,c)=>{(""===a?b:r(b,a)).classGroupId=c},p=(a,b,c,d)=>{s(a)?m(a(d),b,c,d):(null===b.validators&&(b.validators=[]),b.validators.push({classGroupId:c,validator:a}))},q=(a,b,c,d)=>{let e=Object.entries(a),f=e.length;for(let a=0;a<f;a++){let[f,g]=e[a];m(g,r(b,f),c,d)}},r=(a,b)=>{let c=a,d=b.split("-"),e=d.length;for(let a=0;a<e;a++){let b=d[a],e=c.nextPart.get(b);e||(e=i(),c.nextPart.set(b,e)),c=e}return c},s=a=>"isThemeGetter"in a&&!0===a.isThemeGetter,t=[],u=(a,b,c,d,e)=>({modifiers:a,hasImportantModifier:b,baseClassName:c,maybePostfixModifierPosition:d,isExternal:e}),w=/\s+/,x=a=>{let b;if("string"==typeof a)return a;let c="";for(let d=0;d<a.length;d++)a[d]&&(b=x(a[d]))&&(c&&(c+=" "),c+=b);return c},y=[],z=a=>{let b=b=>b[a]||y;return b.isThemeGetter=!0,b},A=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,B=/^\((?:(\w[\w-]*):)?(.+)\)$/i,C=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,D=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,E=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,F=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,G=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,H=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,I=a=>C.test(a),J=a=>!!a&&!Number.isNaN(Number(a)),K=a=>!!a&&Number.isInteger(Number(a)),L=a=>a.endsWith("%")&&J(a.slice(0,-1)),M=a=>D.test(a),N=()=>!0,O=a=>E.test(a)&&!F.test(a),P=()=>!1,Q=a=>G.test(a),R=a=>H.test(a),S=a=>!V(a)&&!ab(a),T=a=>a.startsWith("@container")&&("/"===a[10]&&void 0!==a[11]||"s"===a[11]&&void 0!==a[16]&&a.startsWith("-size/",10)||"n"===a[11]&&void 0!==a[18]&&a.startsWith("-normal/",10)),U=a=>aj(a,an,P),V=a=>A.test(a),W=a=>aj(a,ao,O),X=a=>aj(a,ap,J),Y=a=>aj(a,ar,N),Z=a=>aj(a,aq,P),$=a=>aj(a,al,P),_=a=>aj(a,am,R),aa=a=>aj(a,as,Q),ab=a=>B.test(a),ac=a=>ak(a,ao),ad=a=>ak(a,aq),ae=a=>ak(a,al),af=a=>ak(a,an),ag=a=>ak(a,am),ah=a=>ak(a,as,!0),ai=a=>ak(a,ar,!0),aj=(a,b,c)=>{let d=A.exec(a);return!!d&&(d[1]?b(d[1]):c(d[2]))},ak=(a,b,c=!1)=>{let d=B.exec(a);return!!d&&(d[1]?b(d[1]):c)},al=a=>"position"===a||"percentage"===a,am=a=>"image"===a||"url"===a,an=a=>"length"===a||"size"===a||"bg-size"===a,ao=a=>"length"===a,ap=a=>"number"===a,aq=a=>"family-name"===a,ar=a=>"number"===a||"weight"===a,as=a=>"shadow"===a,at=(au=()=>{let a=z("color"),b=z("font"),c=z("text"),d=z("font-weight"),e=z("tracking"),f=z("leading"),g=z("breakpoint"),h=z("container"),i=z("spacing"),j=z("radius"),k=z("shadow"),l=z("inset-shadow"),m=z("text-shadow"),n=z("drop-shadow"),o=z("blur"),p=z("perspective"),q=z("aspect"),r=z("ease"),s=z("animate"),t=()=>["auto","avoid","all","avoid-page","page","left","right","column"],u=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],w=()=>[...u(),ab,V],x=()=>["auto","hidden","clip","visible","scroll"],y=()=>["auto","contain","none"],A=()=>[ab,V,i],B=()=>[I,"full","auto",...A()],C=()=>[K,"none","subgrid",ab,V],D=()=>["auto",{span:["full",K,ab,V]},K,ab,V],E=()=>[K,"auto",ab,V],F=()=>["auto","min","max","fr",ab,V],G=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],H=()=>["start","end","center","stretch","center-safe","end-safe"],O=()=>["auto",...A()],P=()=>[I,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...A()],Q=()=>[I,"screen","full","dvw","lvw","svw","min","max","fit",...A()],R=()=>[I,"screen","full","lh","dvh","lvh","svh","min","max","fit",...A()],aj=()=>[a,ab,V],ak=()=>[...u(),ae,$,{position:[ab,V]}],al=()=>["no-repeat",{repeat:["","x","y","space","round"]}],am=()=>["auto","cover","contain",af,U,{size:[ab,V]}],an=()=>[L,ac,W],ao=()=>["","none","full",j,ab,V],ap=()=>["",J,ac,W],aq=()=>["solid","dashed","dotted","double"],ar=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],as=()=>[J,L,ae,$],at=()=>["","none",o,ab,V],au=()=>["none",J,ab,V],av=()=>["none",J,ab,V],aw=()=>[J,ab,V],ax=()=>[I,"full",...A()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[M],breakpoint:[M],color:[N],container:[M],"drop-shadow":[M],ease:["in","out","in-out"],font:[S],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[M],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[M],shadow:[M],spacing:["px",J],text:[M],"text-shadow":[M],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",I,V,ab,q]}],container:["container"],"container-type":[{"@container":["","normal","size",ab,V]}],"container-named":[T],columns:[{columns:[J,V,ab,h]}],"break-after":[{"break-after":t()}],"break-before":[{"break-before":t()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:w()}],overflow:[{overflow:x()}],"overflow-x":[{"overflow-x":x()}],"overflow-y":[{"overflow-y":x()}],overscroll:[{overscroll:y()}],"overscroll-x":[{"overscroll-x":y()}],"overscroll-y":[{"overscroll-y":y()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:B()}],"inset-x":[{"inset-x":B()}],"inset-y":[{"inset-y":B()}],start:[{"inset-s":B(),start:B()}],end:[{"inset-e":B(),end:B()}],"inset-bs":[{"inset-bs":B()}],"inset-be":[{"inset-be":B()}],top:[{top:B()}],right:[{right:B()}],bottom:[{bottom:B()}],left:[{left:B()}],visibility:["visible","invisible","collapse"],z:[{z:[K,"auto",ab,V]}],basis:[{basis:[I,"full","auto",h,...A()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[J,I,"auto","initial","none",V]}],grow:[{grow:["",J,ab,V]}],shrink:[{shrink:["",J,ab,V]}],order:[{order:[K,"first","last","none",ab,V]}],"grid-cols":[{"grid-cols":C()}],"col-start-end":[{col:D()}],"col-start":[{"col-start":E()}],"col-end":[{"col-end":E()}],"grid-rows":[{"grid-rows":C()}],"row-start-end":[{row:D()}],"row-start":[{"row-start":E()}],"row-end":[{"row-end":E()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":F()}],"auto-rows":[{"auto-rows":F()}],gap:[{gap:A()}],"gap-x":[{"gap-x":A()}],"gap-y":[{"gap-y":A()}],"justify-content":[{justify:[...G(),"normal"]}],"justify-items":[{"justify-items":[...H(),"normal"]}],"justify-self":[{"justify-self":["auto",...H()]}],"align-content":[{content:["normal",...G()]}],"align-items":[{items:[...H(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...H(),{baseline:["","last"]}]}],"place-content":[{"place-content":G()}],"place-items":[{"place-items":[...H(),"baseline"]}],"place-self":[{"place-self":["auto",...H()]}],p:[{p:A()}],px:[{px:A()}],py:[{py:A()}],ps:[{ps:A()}],pe:[{pe:A()}],pbs:[{pbs:A()}],pbe:[{pbe:A()}],pt:[{pt:A()}],pr:[{pr:A()}],pb:[{pb:A()}],pl:[{pl:A()}],m:[{m:O()}],mx:[{mx:O()}],my:[{my:O()}],ms:[{ms:O()}],me:[{me:O()}],mbs:[{mbs:O()}],mbe:[{mbe:O()}],mt:[{mt:O()}],mr:[{mr:O()}],mb:[{mb:O()}],ml:[{ml:O()}],"space-x":[{"space-x":A()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":A()}],"space-y-reverse":["space-y-reverse"],size:[{size:P()}],"inline-size":[{inline:["auto",...Q()]}],"min-inline-size":[{"min-inline":["auto",...Q()]}],"max-inline-size":[{"max-inline":["none",...Q()]}],"block-size":[{block:["auto",...R()]}],"min-block-size":[{"min-block":["auto",...R()]}],"max-block-size":[{"max-block":["none",...R()]}],w:[{w:[h,"screen",...P()]}],"min-w":[{"min-w":[h,"screen","none",...P()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[g]},...P()]}],h:[{h:["screen","lh",...P()]}],"min-h":[{"min-h":["screen","lh","none",...P()]}],"max-h":[{"max-h":["screen","lh",...P()]}],"font-size":[{text:["base",c,ac,W]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[d,ai,Y]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",L,V]}],"font-family":[{font:[ad,Z,b]}],"font-features":[{"font-features":[V]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[e,ab,V]}],"line-clamp":[{"line-clamp":[J,"none",ab,X]}],leading:[{leading:[f,...A()]}],"list-image":[{"list-image":["none",ab,V]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",ab,V]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:aj()}],"text-color":[{text:aj()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...aq(),"wavy"]}],"text-decoration-thickness":[{decoration:[J,"from-font","auto",ab,W]}],"text-decoration-color":[{decoration:aj()}],"underline-offset":[{"underline-offset":[J,"auto",ab,V]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:A()}],"tab-size":[{tab:[K,ab,V]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ab,V]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ab,V]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ak()}],"bg-repeat":[{bg:al()}],"bg-size":[{bg:am()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},K,ab,V],radial:["",ab,V],conic:[K,ab,V]},ag,_]}],"bg-color":[{bg:aj()}],"gradient-from-pos":[{from:an()}],"gradient-via-pos":[{via:an()}],"gradient-to-pos":[{to:an()}],"gradient-from":[{from:aj()}],"gradient-via":[{via:aj()}],"gradient-to":[{to:aj()}],rounded:[{rounded:ao()}],"rounded-s":[{"rounded-s":ao()}],"rounded-e":[{"rounded-e":ao()}],"rounded-t":[{"rounded-t":ao()}],"rounded-r":[{"rounded-r":ao()}],"rounded-b":[{"rounded-b":ao()}],"rounded-l":[{"rounded-l":ao()}],"rounded-ss":[{"rounded-ss":ao()}],"rounded-se":[{"rounded-se":ao()}],"rounded-ee":[{"rounded-ee":ao()}],"rounded-es":[{"rounded-es":ao()}],"rounded-tl":[{"rounded-tl":ao()}],"rounded-tr":[{"rounded-tr":ao()}],"rounded-br":[{"rounded-br":ao()}],"rounded-bl":[{"rounded-bl":ao()}],"border-w":[{border:ap()}],"border-w-x":[{"border-x":ap()}],"border-w-y":[{"border-y":ap()}],"border-w-s":[{"border-s":ap()}],"border-w-e":[{"border-e":ap()}],"border-w-bs":[{"border-bs":ap()}],"border-w-be":[{"border-be":ap()}],"border-w-t":[{"border-t":ap()}],"border-w-r":[{"border-r":ap()}],"border-w-b":[{"border-b":ap()}],"border-w-l":[{"border-l":ap()}],"divide-x":[{"divide-x":ap()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ap()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...aq(),"hidden","none"]}],"divide-style":[{divide:[...aq(),"hidden","none"]}],"border-color":[{border:aj()}],"border-color-x":[{"border-x":aj()}],"border-color-y":[{"border-y":aj()}],"border-color-s":[{"border-s":aj()}],"border-color-e":[{"border-e":aj()}],"border-color-bs":[{"border-bs":aj()}],"border-color-be":[{"border-be":aj()}],"border-color-t":[{"border-t":aj()}],"border-color-r":[{"border-r":aj()}],"border-color-b":[{"border-b":aj()}],"border-color-l":[{"border-l":aj()}],"divide-color":[{divide:aj()}],"outline-style":[{outline:[...aq(),"none","hidden"]}],"outline-offset":[{"outline-offset":[J,ab,V]}],"outline-w":[{outline:["",J,ac,W]}],"outline-color":[{outline:aj()}],shadow:[{shadow:["","none",k,ah,aa]}],"shadow-color":[{shadow:aj()}],"inset-shadow":[{"inset-shadow":["none",l,ah,aa]}],"inset-shadow-color":[{"inset-shadow":aj()}],"ring-w":[{ring:ap()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:aj()}],"ring-offset-w":[{"ring-offset":[J,W]}],"ring-offset-color":[{"ring-offset":aj()}],"inset-ring-w":[{"inset-ring":ap()}],"inset-ring-color":[{"inset-ring":aj()}],"text-shadow":[{"text-shadow":["none",m,ah,aa]}],"text-shadow-color":[{"text-shadow":aj()}],opacity:[{opacity:[J,ab,V]}],"mix-blend":[{"mix-blend":[...ar(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ar()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[J]}],"mask-image-linear-from-pos":[{"mask-linear-from":as()}],"mask-image-linear-to-pos":[{"mask-linear-to":as()}],"mask-image-linear-from-color":[{"mask-linear-from":aj()}],"mask-image-linear-to-color":[{"mask-linear-to":aj()}],"mask-image-t-from-pos":[{"mask-t-from":as()}],"mask-image-t-to-pos":[{"mask-t-to":as()}],"mask-image-t-from-color":[{"mask-t-from":aj()}],"mask-image-t-to-color":[{"mask-t-to":aj()}],"mask-image-r-from-pos":[{"mask-r-from":as()}],"mask-image-r-to-pos":[{"mask-r-to":as()}],"mask-image-r-from-color":[{"mask-r-from":aj()}],"mask-image-r-to-color":[{"mask-r-to":aj()}],"mask-image-b-from-pos":[{"mask-b-from":as()}],"mask-image-b-to-pos":[{"mask-b-to":as()}],"mask-image-b-from-color":[{"mask-b-from":aj()}],"mask-image-b-to-color":[{"mask-b-to":aj()}],"mask-image-l-from-pos":[{"mask-l-from":as()}],"mask-image-l-to-pos":[{"mask-l-to":as()}],"mask-image-l-from-color":[{"mask-l-from":aj()}],"mask-image-l-to-color":[{"mask-l-to":aj()}],"mask-image-x-from-pos":[{"mask-x-from":as()}],"mask-image-x-to-pos":[{"mask-x-to":as()}],"mask-image-x-from-color":[{"mask-x-from":aj()}],"mask-image-x-to-color":[{"mask-x-to":aj()}],"mask-image-y-from-pos":[{"mask-y-from":as()}],"mask-image-y-to-pos":[{"mask-y-to":as()}],"mask-image-y-from-color":[{"mask-y-from":aj()}],"mask-image-y-to-color":[{"mask-y-to":aj()}],"mask-image-radial":[{"mask-radial":[ab,V]}],"mask-image-radial-from-pos":[{"mask-radial-from":as()}],"mask-image-radial-to-pos":[{"mask-radial-to":as()}],"mask-image-radial-from-color":[{"mask-radial-from":aj()}],"mask-image-radial-to-color":[{"mask-radial-to":aj()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":u()}],"mask-image-conic-pos":[{"mask-conic":[J]}],"mask-image-conic-from-pos":[{"mask-conic-from":as()}],"mask-image-conic-to-pos":[{"mask-conic-to":as()}],"mask-image-conic-from-color":[{"mask-conic-from":aj()}],"mask-image-conic-to-color":[{"mask-conic-to":aj()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ak()}],"mask-repeat":[{mask:al()}],"mask-size":[{mask:am()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",ab,V]}],filter:[{filter:["","none",ab,V]}],blur:[{blur:at()}],brightness:[{brightness:[J,ab,V]}],contrast:[{contrast:[J,ab,V]}],"drop-shadow":[{"drop-shadow":["","none",n,ah,aa]}],"drop-shadow-color":[{"drop-shadow":aj()}],grayscale:[{grayscale:["",J,ab,V]}],"hue-rotate":[{"hue-rotate":[J,ab,V]}],invert:[{invert:["",J,ab,V]}],saturate:[{saturate:[J,ab,V]}],sepia:[{sepia:["",J,ab,V]}],"backdrop-filter":[{"backdrop-filter":["","none",ab,V]}],"backdrop-blur":[{"backdrop-blur":at()}],"backdrop-brightness":[{"backdrop-brightness":[J,ab,V]}],"backdrop-contrast":[{"backdrop-contrast":[J,ab,V]}],"backdrop-grayscale":[{"backdrop-grayscale":["",J,ab,V]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[J,ab,V]}],"backdrop-invert":[{"backdrop-invert":["",J,ab,V]}],"backdrop-opacity":[{"backdrop-opacity":[J,ab,V]}],"backdrop-saturate":[{"backdrop-saturate":[J,ab,V]}],"backdrop-sepia":[{"backdrop-sepia":["",J,ab,V]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":A()}],"border-spacing-x":[{"border-spacing-x":A()}],"border-spacing-y":[{"border-spacing-y":A()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",ab,V]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[J,"initial",ab,V]}],ease:[{ease:["linear","initial",r,ab,V]}],delay:[{delay:[J,ab,V]}],animate:[{animate:["none",s,ab,V]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[p,ab,V]}],"perspective-origin":[{"perspective-origin":w()}],rotate:[{rotate:au()}],"rotate-x":[{"rotate-x":au()}],"rotate-y":[{"rotate-y":au()}],"rotate-z":[{"rotate-z":au()}],scale:[{scale:av()}],"scale-x":[{"scale-x":av()}],"scale-y":[{"scale-y":av()}],"scale-z":[{"scale-z":av()}],"scale-3d":["scale-3d"],skew:[{skew:aw()}],"skew-x":[{"skew-x":aw()}],"skew-y":[{"skew-y":aw()}],transform:[{transform:[ab,V,"","none","gpu","cpu"]}],"transform-origin":[{origin:w()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ax()}],"translate-x":[{"translate-x":ax()}],"translate-y":[{"translate-y":ax()}],"translate-z":[{"translate-z":ax()}],"translate-none":["translate-none"],zoom:[{zoom:[K,ab,V]}],accent:[{accent:aj()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:aj()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ab,V]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":aj()}],"scrollbar-track-color":[{"scrollbar-track":aj()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":A()}],"scroll-mx":[{"scroll-mx":A()}],"scroll-my":[{"scroll-my":A()}],"scroll-ms":[{"scroll-ms":A()}],"scroll-me":[{"scroll-me":A()}],"scroll-mbs":[{"scroll-mbs":A()}],"scroll-mbe":[{"scroll-mbe":A()}],"scroll-mt":[{"scroll-mt":A()}],"scroll-mr":[{"scroll-mr":A()}],"scroll-mb":[{"scroll-mb":A()}],"scroll-ml":[{"scroll-ml":A()}],"scroll-p":[{"scroll-p":A()}],"scroll-px":[{"scroll-px":A()}],"scroll-py":[{"scroll-py":A()}],"scroll-ps":[{"scroll-ps":A()}],"scroll-pe":[{"scroll-pe":A()}],"scroll-pbs":[{"scroll-pbs":A()}],"scroll-pbe":[{"scroll-pbe":A()}],"scroll-pt":[{"scroll-pt":A()}],"scroll-pr":[{"scroll-pr":A()}],"scroll-pb":[{"scroll-pb":A()}],"scroll-pl":[{"scroll-pl":A()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ab,V]}],fill:[{fill:["none",...aj()]}],"stroke-w":[{stroke:[J,ac,W,X]}],stroke:[{stroke:["none",...aj()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},h=a=>{let b=e(a);if(b)return b;let c=((a,b)=>{let{parseClassName:c,getClassGroupId:d,getConflictingClassGroupIds:e,sortModifiers:f,postfixLookupClassGroupIds:g}=b,h=[],i=a.trim().split(w),j="";for(let a=i.length-1;a>=0;a-=1){let b,k=i[a],{isExternal:l,modifiers:m,hasImportantModifier:n,baseClassName:o,maybePostfixModifierPosition:p}=c(k);if(l){j=k+(j.length>0?" "+j:j);continue}let q=!!p;if(q){let a=(b=d(o.substring(0,p)))&&g[b]?d(o):void 0;a&&a!==b&&(b=a,q=!1)}else b=d(o);if(!b){if(!q||!(b=d(o))){j=k+(j.length>0?" "+j:j);continue}q=!1}let r=0===m.length?"":1===m.length?m[0]:f(m).join(":"),s=n?r+"!":r,t=s+b;if(h.indexOf(t)>-1)continue;h.push(t);let u=e(b,q);for(let a=0;a<u.length;++a){let b=u[a];h.push(s+b)}j=k+(j.length>0?" "+j:j)}return j})(a,d);return f(a,c),c},g=a=>{var b;let c;return e=(d={cache:(a=>{if(a<1)return{get:()=>void 0,set:()=>{}};let b=0,c=Object.create(null),d=Object.create(null),e=(e,f)=>{c[e]=f,++b>a&&(b=0,d=c,c=Object.create(null))};return{get(a){let b=c[a];return void 0!==b?b:void 0!==(b=d[a])?(e(a,b),b):void 0},set(a,b){a in c?c[a]=b:e(a,b)}}})((b=[].reduce((a,b)=>b(a),au())).cacheSize),parseClassName:(a=>{let{prefix:b,experimentalParseClassName:c}=a,d=a=>{let b,c=[],d=0,e=0,f=0,g=a.length;for(let h=0;h<g;h++){let g=a[h];if(0===d&&0===e){if(":"===g){c.push(a.slice(f,h)),f=h+1;continue}if("/"===g){b=h;continue}}"["===g?d++:"]"===g?d--:"("===g?e++:")"===g&&e--}let h=0===c.length?a:a.slice(f),i=h,j=!1;return h.endsWith("!")?(i=h.slice(0,-1),j=!0):h.startsWith("!")&&(i=h.slice(1),j=!0),u(c,j,i,b&&b>f?b-f:void 0)};if(b){let a=b+":",c=d;d=b=>b.startsWith(a)?c(b.slice(a.length)):u(t,!1,b,void 0,!0)}if(c){let a=d;d=b=>c({className:b,parseClassName:a})}return d})(b),sortModifiers:(c=new Map,b.orderSensitiveModifiers.forEach((a,b)=>{c.set(a,1e6+b)}),a=>{let b=[],d=[];for(let e=0;e<a.length;e++){let f=a[e],g="["===f[0],h=c.has(f);g||h?(d.length>0&&(d.sort(),b.push(...d),d=[]),b.push(f)):d.push(f)}return d.length>0&&(d.sort(),b.push(...d)),b}),postfixLookupClassGroupIds:(a=>{let b=Object.create(null),c=a.postfixLookupClassGroups;if(c)for(let a=0;a<c.length;a++)b[c[a]]=!0;return b})(b),...(a=>{let b=(a=>{let{theme:b,classGroups:c}=a;return l(c,b)})(a),{conflictingClassGroups:c,conflictingClassGroupModifiers:d}=a;return{getClassGroupId:a=>{if(a.startsWith("[")&&a.endsWith("]")){var c;let b,d,e;return -1===(c=a).slice(1,-1).indexOf(":")?void 0:(d=(b=c.slice(1,-1)).indexOf(":"),(e=b.slice(0,d))?"arbitrary.."+e:void 0)}let d=a.split("-"),e=+(""===d[0]&&d.length>1);return k(d,e,b)},getConflictingClassGroupIds:(a,b)=>{if(b){let b=d[a],e=c[a];if(b){if(e){let a=Array(e.length+b.length);for(let b=0;b<e.length;b++)a[b]=e[b];for(let c=0;c<b.length;c++)a[e.length+c]=b[c];return a}return b}return e||j}return c[a]||j}}})(b)}).cache.get,f=d.cache.set,g=h,h(a)},(...a)=>g(((...a)=>{let b,c,d=0,e="";for(;d<a.length;)(b=a[d++])&&(c=x(b))&&(e&&(e+=" "),e+=c);return e})(...a)));var au,av=c(9253),aw=c(5735),ax=c(44398);let ay=(0,ax.A)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]),az=(0,ax.A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),aA=(0,ax.A)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),aB=(0,ax.A)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),aC=(0,ax.A)("lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]),aD="size-5 -me-0.5 fill-(--callout-color) text-fd-card";function aE({type:a="info",icon:b,children:c,className:d,style:e,...f}){let g="warn"===a?"warning":"tip"===a?"info":a;return(0,aw.jsxs)("div",{className:at("flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md",d),style:{"--callout-color":`var(--color-fd-${g}, var(--color-fd-muted))`,...e},...f,children:[(0,aw.jsx)("div",{role:"none",className:"w-0.5 bg-(--callout-color)/50 rounded-sm"}),b??({info:(0,aw.jsx)(ay,{className:aD}),warning:(0,aw.jsx)(az,{className:aD}),error:(0,aw.jsx)(aA,{className:aD}),success:(0,aw.jsx)(aB,{className:aD}),idea:(0,aw.jsx)(aC,{className:"size-5 -me-0.5 fill-(--callout-color) text-(--callout-color)"})})[g],(0,aw.jsx)("div",{className:"flex flex-col gap-2 min-w-0 flex-1",children:c})]})}function aF({children:a,className:b,...c}){return(0,aw.jsx)("p",{className:at("font-medium my-0!",b),...c,children:a})}function aG({children:a,className:b,...c}){return(0,aw.jsx)("div",{className:at("text-fd-muted-foreground prose-no-margin empty:hidden",b),...c,children:a})}var aH=c(13017),aI=c(6933),aJ=c(30846);let aK={CodeBlockTab:aI.CodeBlockTab,CodeBlockTabs:aI.CodeBlockTabs,CodeBlockTabsList:aI.CodeBlockTabsList,CodeBlockTabsTrigger:aI.CodeBlockTabsTrigger,pre:a=>(0,aw.jsx)(aI.CodeBlock,{...a,children:(0,aw.jsx)(aI.Pre,{children:a.children})}),Card:function({icon:a,title:b,description:c,...d}){return(0,aw.jsxs)(d.href?av.default:"div",{...d,"data-card":!0,className:at("block rounded-xl border bg-fd-card p-4 text-fd-card-foreground transition-colors @max-lg:col-span-full",d.href&&"hover:bg-fd-accent/80",d.className),children:[a?(0,aw.jsx)("div",{className:"not-prose mb-2 w-fit shadow-md rounded-lg border bg-fd-muted p-1.5 text-fd-muted-foreground [&_svg]:size-4",children:a}):null,(0,aw.jsx)("h3",{className:"not-prose mb-1 text-sm font-medium",children:b}),c?(0,aw.jsx)("p",{className:"my-0! text-sm text-fd-muted-foreground",children:c}):null,(0,aw.jsx)("div",{className:"text-sm text-fd-muted-foreground prose-no-margin empty:hidden",children:d.children})]})},Cards:function(a){return(0,aw.jsx)("div",{...a,className:at("grid grid-cols-2 gap-3 @container",a.className),children:a.children})},a:av.default,img:function(a){return(0,aw.jsx)(aJ.Image,{sizes:"(max-width: 768px) 100vw, (max-width: 1200px) 70vw, 900px",...a,className:at("rounded-lg",a.className)})},h1:a=>(0,aw.jsx)(aH.Heading,{as:"h1",...a}),h2:a=>(0,aw.jsx)(aH.Heading,{as:"h2",...a}),h3:a=>(0,aw.jsx)(aH.Heading,{as:"h3",...a}),h4:a=>(0,aw.jsx)(aH.Heading,{as:"h4",...a}),h5:a=>(0,aw.jsx)(aH.Heading,{as:"h5",...a}),h6:a=>(0,aw.jsx)(aH.Heading,{as:"h6",...a}),table:function(a){return(0,aw.jsx)("div",{className:"relative overflow-auto prose-no-margin my-6",children:(0,aw.jsx)("table",{...a})})},Callout:function({children:a,title:b,...c}){return(0,aw.jsxs)(aE,{...c,children:[b&&(0,aw.jsx)(aF,{children:b}),(0,aw.jsx)(aG,{children:a})]})},CalloutContainer:aE,CalloutTitle:aF,CalloutDescription:aG};function aL(a){return{...aK,...a}}},21377:(a,b,c)=>{"use strict";c.d(b,{DocsBody:()=>aG,DocsDescription:()=>aH,DocsPage:()=>bh,DocsTitle:()=>aI});var d={};c.r(d),c.d(d,{NQ:()=>x,N2:()=>w,Cz:()=>y,R3:()=>D,Mf:()=>E,wB:()=>F,sY:()=>A,c4:()=>B});var e=c(85759),f=c(96862),g=c(66593),h=c(8423),i=c(48249),j=c(91995),k=c(67484),l=c(26323);function m({includeRoot:a,includeSeparator:b,includePage:c,...d}){let e=(0,g.LU)(),{root:n}=(0,g.tJ)(),o=(0,k.useMemo)(()=>(0,l.Pp)(n,e,{includePage:c,includeSeparator:b,includeRoot:a}),[c,a,b,e,n]);return 0===o.length?null:(0,i.jsx)("div",{...d,className:(0,f.QP)("flex items-center gap-1.5 text-sm text-fd-muted-foreground",d.className),children:o.map((a,b)=>{let c=(0,f.QP)("truncate",b===o.length-1&&"text-fd-primary font-medium");return(0,i.jsxs)(k.Fragment,{children:[0!==b&&(0,i.jsx)(j.A,{className:"size-3.5 shrink-0"}),a.url?(0,i.jsx)(h.default,{href:a.url,className:(0,f.QP)(c,"transition-opacity hover:opacity-80"),children:a.name}):(0,i.jsx)("span",{className:c,children:a.name})]},b)})})}var n=c(19708),o=c(19598),p=c(89817),q=c(29973),r=c(36661),s=c(34856);let t=(0,k.createContext)(null),u=(0,k.createContext)(null);function w({containerRef:a,children:b}){return(0,i.jsx)(u,{value:a,children:b})}function x({toc:a,single:b=!1,children:c}){let d=(0,k.useMemo)(()=>new H,[]);return d.single=b,(0,i.jsx)(t,{value:d,children:c})}function y({ref:a,onActiveChange:b=()=>null,...c}){let d=c.href?G(c.href):null,e=(0,k.use)(u),f=(0,k.useRef)(null),g=z(),[h,j]=(0,k.useState)(()=>g.items.some(a=>a.id===d&&a.active));return B(a=>{let c=d?a.find(a=>a.id===d):null;c&&c.active!==h&&(j(c.active),b(c.active),function(a,b=!1){let c,g=f.current,h=e?.current;if(d&&g&&h){for(let b of a)b.active&&(!c||c.t<b.t)&&(c=b);c?.id===d&&(0,s.A)(g,{behavior:b?"instant":"smooth",block:"center",inline:"center",scrollMode:"always",boundary:h})}}(a))}),(0,i.jsx)("a",{ref:function(...a){return b=>{a.forEach(a=>{"function"==typeof a?a(b):null!=a&&(a.current=b)})}}(f,a),"data-active":h,...c})}function z(){let a=(0,k.use)(t);if(!a)throw Error("Component must be used under the <AnchorProvider /> component.");return a}function A(){let a=z();return(0,k.useMemo)(()=>({get:()=>a.items,listen:a.listen.bind(a),unlisten:a.unlisten.bind(a)}),[a])}function B(a){z(),(0,k.useEffectEvent)(a)}function C(a,b=r.t){let c=z(),[d,e]=(0,k.useState)(()=>a(c.items));return B(c=>{let f=a(c);b(d,f)||e(f)}),d}function D(){return C(a=>{let b;for(let c of a)c.active&&(!b||c.t>b.t)&&(b=c);return b?.id})}function E(){return C(a=>{let b=[];for(let c of a)c.active&&b.push(c.id);return b})}function F(){return C(a=>a)}function G(a){return a.startsWith("#")?a.slice(1):null}var H=class{constructor(){this.items=[],this.single=!1,this.observer=null,this.listeners=new Set}listen(a){this.listeners.add(a)}unlisten(a){this.listeners.delete(a)}setItems(a){let b=this.observer;if(b)for(let a of this.items){let c=document.getElementById(a.id);c&&b.unobserve(c)}let c=[];for(let b of a){let a=G(b.url);a&&c.push({id:a,active:!1,fallback:!1,t:0,original:b})}this.update(c),this.observeItems()}watch(a){this.observer||(this.observer=new IntersectionObserver(this.callback.bind(this),a),this.observeItems())}unwatch(){this.observer?.disconnect(),this.observer=null}callback(a){if(0===a.length)return;let b=!1,c=this.items.map(c=>{let d=a.find(a=>a.target.id===c.id),e=d?d.isIntersecting:c.active&&!c.fallback;return this.single&&b&&(e=!1),c.active!==e&&(c={...c,t:Date.now(),active:e,fallback:!1}),e&&(b=!0),c});if(!b&&a[0].rootBounds){let b=a[0].rootBounds.top,d=Number.MAX_VALUE,e=-1;for(let a=0;a<c.length;a++){let f=document.getElementById(c[a].id);if(!f)continue;let g=Math.abs(b-f.getBoundingClientRect().top);g<d&&(e=a,d=g)}-1!==e&&(c[e]={...c[e],active:!0,fallback:!0,t:Date.now()})}this.update(c)}observeItems(){if(this.observer)for(let a of this.items){let b=document.getElementById(a.id);b&&this.observer.observe(b)}}update(a){for(let b of(this.items=a,this.listeners))b(a)}};let I=(0,k.createContext)([]);function J(){return(0,k.use)(I)}let{R3:K,Mf:L,wB:M}=d;function N({toc:a,children:b,...c}){return(0,i.jsx)(I,{value:a,children:(0,i.jsx)(x,{toc:a,...c,children:b})})}function O({ref:a,className:b,...c}){let d=(0,k.useRef)(null);return(0,i.jsx)("div",{ref:(0,q.P)(d,a),className:(0,f.QP)("relative min-h-0 text-sm ms-px overflow-auto [scrollbar-width:none] mask-[linear-gradient(to_bottom,transparent,white_16px,white_calc(100%-16px),transparent)] py-3",b),...c,children:(0,i.jsx)(w,{containerRef:d,children:c.children})})}var P=(0,n.I)({TOCEmpty:()=>S,TOCItem:()=>T,TOCItems:()=>Q});function Q({ref:a,className:b,...c}){let d=(0,k.useRef)(null),e=J(),[g,h]=(0,k.useState)(null);return(0,k.useCallback)(()=>{let a=d.current;if(!a)return;if(0===e.length)return void h(null);let b=[];for(let c of e){let d=a.querySelector(`a[href="${c.url}"]`);if(!d)continue;let e=getComputedStyle(d);b.push([d.offsetTop+parseFloat(e.paddingTop),d.offsetTop+d.clientHeight-parseFloat(e.paddingBottom)])}h({positions:b})},[e]),(0,i.jsxs)("div",{className:"relative",children:[g&&(0,i.jsx)(R,{computed:g}),(0,i.jsx)("div",{ref:(0,q.P)(a,d),className:(0,f.QP)("flex flex-col border-s border-fd-foreground/10",b),...c})]})}function R({computed:a}){let b=(0,k.useRef)(null),c=A();function d(b){let c={},d=b.findIndex(a=>a.active);if(-1===d)return c;let e=b.findLastIndex(a=>a.active);return c["--track-top"]=`${a.positions[d][0]}px`,c["--track-bottom"]=`${a.positions[e][1]}px`,c}return B(a=>{let c=b.current;if(c)for(let[b,e]of Object.entries(d(a)))c.style.setProperty(b,e)}),(0,i.jsx)("div",{ref:b,className:"absolute inset-y-0 inset-s-0 bg-fd-primary w-px transition-[clip-path]",style:{clipPath:"polygon(0 var(--track-top,0), 100% var(--track-top,0), 100% var(--track-bottom,0), 0 var(--track-bottom,0))",...d(c.get())}})}function S(){return(0,i.jsx)("div",{className:"rounded-lg border bg-fd-card p-3 text-xs text-fd-muted-foreground",children:(0,p.c3)().tocNoHeadings})}function T({item:a,...b}){return(0,i.jsx)(y,{href:a.url,...b,className:(0,f.QP)("prose py-1.5 text-sm text-fd-muted-foreground scroll-m-4 transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary hover:text-fd-accent-foreground",a.depth<=2&&"ps-3",3===a.depth&&"ps-6",a.depth>=4&&"ps-8",b.className),children:a.title})}var U=(0,n.I)({TOCEmpty:()=>W,TOCItem:()=>Z,TOCItems:()=>V});function V({ref:a,className:b,thumbBox:c=!0,children:d,...e}){let g=(0,k.useRef)(null),h=J(),[j,l]=(0,k.useState)(null);return(0,k.useCallback)(()=>{let a=g.current;if(!a||0===a.clientHeight)return;if(0===h.length)return void l(null);let b=0,d=0,e="",f=[],j=[];for(let c=0;c<h.length;c++){let g=h[c],k=a.querySelector(`a[href="${g.url}"]`);if(!k)continue;let l=getComputedStyle(k),m=Y(g.depth)+.5,n=k.offsetTop+parseFloat(l.paddingTop),o=k.offsetTop+k.clientHeight-parseFloat(l.paddingBottom);if(b=Math.max(m+8,b),d=Math.max(d,o),0===c)e+=` M${m} ${n} L${m} ${o}`;else{let[,a,b]=c>0?f[c-1]:[0,0,0];e+=` C ${b} ${n-4} ${m} ${a+4} ${m} ${n} L${m} ${o}`}void 0!==g._step&&j.push((0,i.jsxs)("g",{transform:`translate(${m}, ${(n+o)/2})`,children:[(0,i.jsx)("circle",{cx:"0",cy:"0",r:"8",className:"fill-fd-primary"}),(0,i.jsx)("text",{cx:"0",cy:"0",textAnchor:"middle",alignmentBaseline:"central",dominantBaseline:"middle",className:"fill-fd-primary-foreground font-medium text-xs leading-none font-mono rtl:-scale-x-100",children:g._step})]},c)),f.push([n,o,m])}j.unshift((0,i.jsx)("path",{d:e,className:"stroke-fd-primary",strokeWidth:"1",fill:"none"},"path"));let k=[];if(c){let a=document.createElementNS("http://www.w3.org/2000/svg","path");a.setAttribute("d",e);let b=a.getTotalLength();for(let c=0;c<f.length;c++){let[d,e]=f[c],g=c>0?k[c-1][1]+(d-f[c-1][1]):d;for(;g<b&&a.getPointAtLength(g).y<d;)g++;k.push([g,g+e-d])}}l({content:j,width:b,height:d,d:e,itemLineLengths:k,positions:f})},[h,c]),(0,i.jsxs)("div",{ref:(0,q.P)(g,a),className:(0,f.QP)("relative flex flex-col",b),...e,children:[j&&(0,i.jsx)(X,{computed:j,thumbBox:c}),d]})}function W(){return(0,i.jsx)("div",{className:"rounded-lg border bg-fd-card p-3 text-xs text-fd-muted-foreground",children:(0,p.c3)().tocNoHeadings})}function X({computed:a,thumbBox:b}){let c=(0,k.useRef)(null),d=(0,k.useRef)(null),e=A();function f(c){let e={},f=c.findIndex(a=>a.active);if(-1===f)return e;let g=c.findLastIndex(a=>a.active);if(e["--track-top"]=`${a.positions[f][0]}px`,e["--track-bottom"]=`${a.positions[g][1]}px`,b){let b=!1;if(d.current){let a=d.current;b=a.startIdx>f||a.endIdx>g||a.startIdx===f&&a.endIdx===g&&a.isUp}d.current={startIdx:f,endIdx:g,isUp:b},e["--offset-distance"]=b?`${a.itemLineLengths[f][0]}px`:`${a.itemLineLengths[g][1]}px`,e["--opacity"]=void 0!==c[b?f:g].original._step?"0":"1"}return e}return B(a=>{let b=c.current;if(b)for(let[c,d]of Object.entries(f(a)))b.style.setProperty(c,d)}),(0,i.jsxs)("div",{ref:c,className:"absolute top-0 inset-s-0 origin-center rtl:-scale-x-100",style:{width:a.width,height:a.height,...f(e.get())},children:[(0,i.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${a.width} ${a.height}`,className:"absolute transition-[clip-path]",style:{width:a.width,height:a.height,clipPath:"polygon(0 var(--track-top,0), 100% var(--track-top,0), 100% var(--track-bottom,0), 0 var(--track-bottom,0))"},children:a.content}),b&&(0,i.jsx)("div",{className:"absolute left-0 size-1 bg-fd-primary rounded-full [offset-distance:var(--offset-distance,0)] opacity-(--opacity,0) transition-[opacity,offset-distance]",style:{offsetPath:`path("${a.d}")`}})]})}function Y(a){return a<=2?8:3===a?16:24}function Z({item:a,...b}){var c;let d=J(),{isFirst:e,isLast:g,svg:h}=(0,k.useMemo)(()=>{let b=d.indexOf(a),c=0===b,e=b===d.length-1,g=Y(a.depth),h=c?g:Y(d[b-1].depth),j=e?g:Y(d[b+1].depth);return{isFirst:c,isLast:e,svg:(0,i.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:(0,f.QP)("absolute -top-1.5 inset-s-0 bottom-0 h-[calc(100%+--spacing(1.5))] -z-1 rtl:-scale-x-100",g!==j&&"h-full bottom-1.5"),style:{width:Math.max(h,g)+9},children:[h!==g&&(0,i.jsx)("path",{d:`M ${h+.5} 0 C ${h+.5} 8 ${g+.5} 4 ${g+.5} 12`,stroke:"black",strokeWidth:"1",fill:"none",className:"stroke-fd-foreground/10"}),(0,i.jsx)("line",{x1:g+.5,y1:h===g?"6":"12",x2:g+.5,y2:"100%",strokeWidth:"1",className:"stroke-fd-foreground/10"}),void 0!==a._step&&(0,i.jsxs)("g",{transform:`translate(${g+.5}, ${g===j?"3":"6"})`,children:[(0,i.jsx)("circle",{cx:"0",cy:"50%",r:"8",className:"fill-fd-muted"}),(0,i.jsx)("text",{x:"0",y:"50%",textAnchor:"middle",alignmentBaseline:"central",dominantBaseline:"middle",className:"fill-fd-muted-foreground font-medium text-xs leading-none font-mono rtl:-scale-x-100",children:a._step})]})]})}},[d,a]);return(0,i.jsxs)(y,{href:a.url,...b,className:(0,f.QP)("prose relative py-1.5 text-sm scroll-m-4 text-fd-muted-foreground hover:text-fd-accent-foreground transition-colors wrap-anywhere data-[active=true]:text-fd-primary",e&&"pt-0",g&&"pb-0",b.className),style:{paddingInlineStart:(c=a.depth)<=2?20:3===c?32:44,...b.style},children:[h,a.title]})}var $=c(73560);c(14114);var _=c(64686);let aa=(0,_.A)("text-align-start",[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M17 19H3",key:"z6ezky"}]]);var ab=c(69627);function ac(a){return(0,i.jsx)(N,{...a})}function ad({container:a,header:b,footer:c,style:d="normal",list:e}){let g=J(),{TOCItems:h,TOCEmpty:j,TOCItem:k}="clerk"===d?U:P;return(0,i.jsxs)("div",{id:"nd-toc",...a,className:(0,f.QP)("sticky top-(--fd-docs-row-1) h-[calc(var(--fd-docs-height)-var(--fd-docs-row-1))] flex flex-col [grid-area:toc] w-(--fd-toc-width) pt-12 pe-4 pb-2 xl:layout:[--fd-toc-width:268px] max-xl:hidden",a?.className),children:[b,(0,i.jsxs)("h3",{id:"toc-title",className:"inline-flex items-center gap-1.5 text-sm text-fd-muted-foreground",children:[(0,i.jsx)(aa,{className:"size-4"}),(0,i.jsx)(p.bN,{label:"toc"})]}),(0,i.jsx)(O,{children:(0,i.jsxs)(h,{...e,children:[0===g.length&&(0,i.jsx)(j,{}),g.map(a=>(0,i.jsx)(k,{item:a},a.url))]})}),c]})}let ae=(0,k.createContext)(null);function af({container:a,trigger:b,content:c,header:d,footer:g,style:h="normal",list:j}){let l=J(),m=(0,k.useRef)(null),[n,o]=(0,k.useState)(!1),{isNavTransparent:p}=(0,e.useDocsLayout)(),{TOCItems:q,TOCItem:r,TOCEmpty:s}="clerk"===h?U:P;(0,k.useEffectEvent)(a=>{n&&a.target instanceof HTMLElement&&m.current&&!m.current.contains(a.target)&&o(!1)});let t=()=>{o(!1)};return(0,i.jsx)(ae,{value:(0,k.useMemo)(()=>({open:n,setOpen:o}),[o,n]),children:(0,i.jsx)($.Nt,{open:n,onOpenChange:o,"data-toc-popover":"",...a,className:(0,f.QP)("sticky top-(--fd-docs-row-2) z-10 [grid-area:toc-popover] h-(--fd-toc-popover-height) xl:hidden max-xl:layout:[--fd-toc-popover-height:--spacing(10)]",a?.className),children:(0,i.jsxs)("header",{ref:m,className:(0,f.QP)("border-b backdrop-blur-sm transition-colors",(!p||n)&&"bg-fd-background/80",n&&"shadow-lg"),children:[(0,i.jsx)(ag,{...b}),(0,i.jsxs)(ai,{...c,children:[d,(0,i.jsx)(O,{children:(0,i.jsxs)(q,{...j,children:[0===l.length&&(0,i.jsx)(s,{}),l.map(a=>(0,i.jsx)(r,{item:a,onClick:t},a.url))]})}),g]})]})})})}function ag({className:a,...b}){let c=(0,p.c3)(),{open:d}=(0,k.use)(ae),e=M(),h=e.findIndex(a=>a.active),j=(0,g.LU)().at(-1),l=-1!==h&&!d;return(0,i.jsxs)($.R6,{className:(0,f.QP)("flex w-full h-10 items-center text-sm text-fd-muted-foreground gap-2.5 px-4 py-2.5 text-start focus-visible:outline-none [&_svg]:size-4 md:px-6",a),"data-toc-popover-trigger":"",...b,children:[(0,i.jsx)(ah,{value:(e.findLastIndex(a=>a.active)+1)/Math.max(1,e.length),max:1,className:(0,f.QP)("shrink-0",d&&"text-fd-primary")}),(0,i.jsxs)("span",{className:"grid flex-1 *:my-auto *:row-start-1 *:col-start-1",children:[(0,i.jsx)("span",{className:(0,f.QP)("truncate transition-[opacity,translate,color]",d&&"text-fd-foreground",l&&"opacity-0 -translate-y-full pointer-events-none"),children:j?.name??c.toc}),(0,i.jsx)("span",{className:(0,f.QP)("truncate transition-[opacity,translate]",!l&&"opacity-0 translate-y-full pointer-events-none"),children:e[h]?.original.title})]}),(0,i.jsx)(ab.A,{className:(0,f.QP)("shrink-0 transition-transform mx-0.5",d&&"rotate-180")})]})}function ah({value:a,strokeWidth:b=1.5,size:c=18,min:d=0,max:e=100,style:f,...g}){let h=a<d?d:a>e?e:a,j=c/2-b,k=2*Math.PI*j,l=h/e*k,m={cx:c/2,cy:c/2,r:j,fill:"none",strokeWidth:b};return(0,i.jsxs)("svg",{role:"progressbar",viewBox:`0 0 ${c} ${c}`,"aria-valuenow":h,"aria-valuemin":d,"aria-valuemax":e,style:{width:c,height:c,...f},...g,children:[(0,i.jsx)("circle",{...m,className:"stroke-current/25"}),(0,i.jsx)("circle",{...m,stroke:"currentColor",strokeDasharray:k,strokeDashoffset:k-l,strokeLinecap:"round",transform:`rotate(-90 ${c/2} ${c/2})`,className:"transition-all"})]})}function ai(a){return(0,i.jsx)($.Ke,{"data-toc-popover-content":"",...a,children:(0,i.jsx)("div",{className:"flex flex-col px-4 max-h-[50vh] md:px-6",children:a.children})})}var aj=c(51230);let ak=new WeakMap;function al(){let{root:a}=(0,g.tJ)(),b=ak.get(a);if(b)return b;let c=[];for(let b of a.children)!function a(b){if("folder"===b.type)for(let c of(b.index&&a(b.index),b.children))a(c);else"page"!==b.type||b.external||c.push(b)}(b);return ak.set(a,c),c}var am=c(84124);let an=(0,_.A)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);function ao({items:a,children:b,className:c,...d}){let e=al(),g=(0,am.a8)(),{previous:h,next:j}=(0,k.useMemo)(()=>{if(a)return a;let b=e.findIndex(a=>(0,aj.$)(a.url,g));return -1===b?{}:{previous:e[b-1],next:e[b+1]}},[e,a,g]);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:(0,f.QP)("@container grid gap-4",h&&j?"grid-cols-2":"grid-cols-1",c),...d,children:[h&&(0,i.jsx)(ap,{item:h,index:0}),j&&(0,i.jsx)(ap,{item:j,index:1})]}),b]})}function ap({item:a,index:b}){let c=(0,p.c3)(),d=0===b?an:j.A;return(0,i.jsxs)(h.default,{href:a.url,className:(0,f.QP)("flex flex-col gap-2 rounded-lg border p-4 text-sm transition-colors hover:bg-fd-accent/80 hover:text-fd-accent-foreground @max-lg:col-span-full",1===b&&"text-end"),children:[(0,i.jsxs)("div",{className:(0,f.QP)("inline-flex items-center gap-1.5 font-medium",1===b&&"flex-row-reverse"),children:[(0,i.jsx)(d,{className:"-mx-1 size-4 shrink-0 rtl:rotate-180"}),(0,i.jsx)("p",{children:a.name})]}),(0,i.jsx)("p",{className:"text-fd-muted-foreground truncate",children:a.description??(0===b?c.previousPage:c.nextPage)})]})}function aq(a){let{props:{full:b}}=aD();return(0,i.jsx)("article",{id:"nd-page","data-full":b,...a,className:(0,f.QP)("flex flex-col w-full max-w-[900px] mx-auto [grid-area:main] px-4 py-6 gap-4 md:px-6 md:pt-8 xl:px-8 xl:pt-14",b&&"max-w-[1168px]",a.className),children:a.children})}var ar=c(66036),as=c(58760),at=c(35471);let au=(0,_.A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);var av=c(90069),aw=c(99240);let ax=new Map;function ay({markdownUrl:a,...b}){let c=(0,p.c3)(),[d,e]=(0,k.useState)(!1),[g,h]=(0,ar.x)(async()=>{let b=ax.get(a);if(b)return navigator.clipboard.writeText(await b);e(!0);try{let b=fetch(a).then(a=>a.text());ax.set(a,b),await navigator.clipboard.write([new ClipboardItem({"text/plain":b})])}finally{e(!1)}});return(0,i.jsxs)("button",{disabled:d,onClick:h,...b,className:(0,f.QP)((0,o.r)({color:"secondary",size:"sm",className:"gap-2 [&_svg]:size-3.5 [&_svg]:text-fd-muted-foreground"}),b.className),children:[g?(0,i.jsx)(at.A,{}):(0,i.jsx)(au,{}),b.children??c.pageActionsCopyMarkdown]})}function az({markdownUrl:a,githubUrl:b,...c}){let d=(0,am.a8)(),e=(0,p.c3)(),g=(0,k.useMemo)(()=>{let c=(0,aw.Qd)(e.pageActionsOpenInLLMPrompt,{url:String(d)});return[b&&{title:e.pageActionsOpenGitHub,href:b,icon:(0,i.jsxs)("svg",{fill:"currentColor",role:"img",viewBox:"0 0 24 24",children:[(0,i.jsx)("title",{children:"GitHub"}),(0,i.jsx)("path",{d:"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"})]})},a&&{title:e.pageActionsViewMarkdown,href:a,icon:(0,i.jsx)(aa,{})},{title:e.pageActionsOpenScira,href:`https://scira.ai/?${new URLSearchParams({q:c})}`,icon:(0,i.jsxs)("svg",{width:"910",height:"934",viewBox:"0 0 910 934",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("title",{children:"Scira AI"}),(0,i.jsx)("path",{d:"M647.664 197.775C569.13 189.049 525.5 145.419 516.774 66.8849C508.048 145.419 464.418 189.049 385.884 197.775C464.418 206.501 508.048 250.131 516.774 328.665C525.5 250.131 569.13 206.501 647.664 197.775Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"8",strokeLinejoin:"round"}),(0,i.jsx)("path",{d:"M516.774 304.217C510.299 275.491 498.208 252.087 480.335 234.214C462.462 216.341 439.058 204.251 410.333 197.775C439.059 191.3 462.462 179.209 480.335 161.336C498.208 143.463 510.299 120.06 516.774 91.334C523.25 120.059 535.34 143.463 553.213 161.336C571.086 179.209 594.49 191.3 623.216 197.775C594.49 204.251 571.086 216.341 553.213 234.214C535.34 252.087 523.25 275.491 516.774 304.217Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"8",strokeLinejoin:"round"}),(0,i.jsx)("path",{d:"M857.5 508.116C763.259 497.644 710.903 445.288 700.432 351.047C689.961 445.288 637.605 497.644 543.364 508.116C637.605 518.587 689.961 570.943 700.432 665.184C710.903 570.943 763.259 518.587 857.5 508.116Z",stroke:"currentColor",strokeWidth:"20",strokeLinejoin:"round"}),(0,i.jsx)("path",{d:"M700.432 615.957C691.848 589.05 678.575 566.357 660.383 548.165C642.191 529.973 619.499 516.7 592.593 508.116C619.499 499.533 642.191 486.258 660.383 468.066C678.575 449.874 691.848 427.181 700.432 400.274C709.015 427.181 722.289 449.874 740.481 468.066C758.673 486.258 781.365 499.533 808.271 508.116C781.365 516.7 758.673 529.973 740.481 548.165C722.289 566.357 709.015 589.05 700.432 615.957Z",stroke:"currentColor",strokeWidth:"20",strokeLinejoin:"round"}),(0,i.jsx)("path",{d:"M889.949 121.237C831.049 114.692 798.326 81.9698 791.782 23.0692C785.237 81.9698 752.515 114.692 693.614 121.237C752.515 127.781 785.237 160.504 791.782 219.404C798.326 160.504 831.049 127.781 889.949 121.237Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"8",strokeLinejoin:"round"}),(0,i.jsx)("path",{d:"M791.782 196.795C786.697 176.937 777.869 160.567 765.16 147.858C752.452 135.15 736.082 126.322 716.226 121.237C736.082 116.152 752.452 107.324 765.16 94.6152C777.869 81.9065 786.697 65.5368 791.782 45.6797C796.867 65.5367 805.695 81.9066 818.403 94.6152C831.112 107.324 847.481 116.152 867.338 121.237C847.481 126.322 831.112 135.15 818.403 147.858C805.694 160.567 796.867 176.937 791.782 196.795Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"8",strokeLinejoin:"round"}),(0,i.jsx)("path",{d:"M760.632 764.337C720.719 814.616 669.835 855.1 611.872 882.692C553.91 910.285 490.404 924.255 426.213 923.533C362.022 922.812 298.846 907.419 241.518 878.531C184.19 849.643 134.228 808.026 95.4548 756.863C56.6815 705.7 30.1238 646.346 17.8129 583.343C5.50207 520.339 7.76433 455.354 24.4266 393.359C41.089 331.364 71.7099 274.001 113.947 225.658C156.184 177.315 208.919 139.273 268.117 114.442",stroke:"currentColor",strokeWidth:"30",strokeLinecap:"round",strokeLinejoin:"round"})]})},{title:e.pageActionsOpenChatGPT,href:`https://chatgpt.com/?${new URLSearchParams({hints:"search",q:c})}`,icon:(0,i.jsxs)("svg",{role:"img",viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("title",{children:"OpenAI"}),(0,i.jsx)("path",{d:"M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z"})]})},{title:e.pageActionsOpenClaude,href:`https://claude.ai/new?${new URLSearchParams({q:c})}`,icon:(0,i.jsxs)("svg",{fill:"currentColor",role:"img",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("title",{children:"Anthropic"}),(0,i.jsx)("path",{d:"M17.3041 3.541h-3.6718l6.696 16.918H24Zm-10.6082 0L0 20.459h3.7442l1.3693-3.5527h7.0052l1.3693 3.5528h3.7442L10.5363 3.5409Zm-.3712 10.2232 2.2914-5.9456 2.2914 5.9456Z"})]})},{title:e.pageActionsOpenCursor,icon:(0,i.jsxs)("svg",{fill:"currentColor",role:"img",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("title",{children:"Cursor"}),(0,i.jsx)("path",{d:"M11.503.131 1.891 5.678a.84.84 0 0 0-.42.726v11.188c0 .3.162.575.42.724l9.609 5.55a1 1 0 0 0 .998 0l9.61-5.55a.84.84 0 0 0 .42-.724V6.404a.84.84 0 0 0-.42-.726L12.497.131a1.01 1.01 0 0 0-.996 0M2.657 6.338h18.55c.263 0 .43.287.297.515L12.23 22.918c-.062.107-.229.064-.229-.06V12.335a.59.59 0 0 0-.295-.51l-9.11-5.257c-.109-.063-.064-.23.061-.23"})]}),href:`https://cursor.com/link/prompt?${new URLSearchParams({text:c})}`}].filter(a=>!!a)},[b,a,d,e]);return(0,i.jsxs)(as.AM,{children:[(0,i.jsxs)(as.Wv,{...c,className:(0,f.QP)((0,o.r)({color:"secondary",size:"sm"}),"gap-2 data-[state=open]:bg-fd-accent data-[state=open]:text-fd-accent-foreground",c.className),children:[c.children??e.pageActionsOpen,(0,i.jsx)(ab.A,{className:"size-3.5 text-fd-muted-foreground"})]}),(0,i.jsx)(as.hl,{className:"flex flex-col",children:g.map(a=>(0,i.jsxs)("a",{href:a.href,rel:"noreferrer noopener",target:"_blank",className:"text-sm p-2 rounded-lg inline-flex items-center gap-2 hover:text-fd-accent-foreground hover:bg-fd-accent [&_svg]:size-4",children:[a.icon,a.title,(0,i.jsx)(av.A,{className:"text-fd-muted-foreground size-3.5 ms-auto"})]},a.href))})]})}let aA=(0,_.A)("square-pen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);var aB=(0,n.I)({DocsBody:()=>aG,DocsDescription:()=>aH,DocsPage:()=>aE,DocsTitle:()=>aI,EditOnGitHub:()=>aF,MarkdownCopyButton:()=>ay,PageBreadcrumb:()=>m,PageFooter:()=>ao,PageLastUpdate:()=>aJ,ViewOptionsPopover:()=>az,useDocsPage:()=>aD});let aC=(0,k.createContext)(null);function aD(){let a=(0,k.use)(aC);if(!a)throw Error("Please use page components under <DocsPage /> (`fumadocs-ui/layouts/docs/page`).");return a}function aE({tableOfContent:{enabled:a,single:b,...c}={},tableOfContentPopover:{enabled:d,...e}={},breadcrumb:{enabled:f=!0,...g}={},footer:{enabled:h=!0,...j}={},full:k=!1,toc:l=[],slots:n={},children:o,...p}){a??=!!(!k&&(l.length>0||c.footer||c.header)),d??=!!(l.length>0||e.header||e.footer);let q={breadcrumb:n.breadcrumb??m,footer:n.footer??ao,toc:n.toc??{provider:ac,main:ad,popover:af},container:n.container??aq};return(0,i.jsx)(aC,{value:{props:{full:k},slots:q},children:(0,i.jsxs)(q.toc.provider,{single:b,toc:a||d?l:[],children:[d&&(e.component??(0,i.jsx)(q.toc.popover,{...e})),(0,i.jsxs)(q.container,{...p,children:[f&&(g.component??(0,i.jsx)(q.breadcrumb,{...g})),o,h&&(j.component??(0,i.jsx)(q.footer,{...j}))]}),a&&(c.component??(0,i.jsx)(q.toc.main,{...c}))]})})}function aF(a){return(0,i.jsx)("a",{target:"_blank",rel:"noreferrer noopener",...a,className:(0,f.QP)((0,o.r)({color:"secondary",size:"sm"}),"gap-1.5 not-prose",a.className),children:a.children??(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(aA,{className:"size-3.5"}),(0,i.jsx)(p.bN,{label:"editOnGithub"})]})})}function aG({children:a,className:b,...c}){return(0,i.jsx)("div",{...c,className:(0,f.QP)("prose flex-1",b),children:a})}function aH({children:a,className:b,...c}){return void 0===a?null:(0,i.jsx)("p",{...c,className:(0,f.QP)("mb-8 text-lg text-fd-muted-foreground",b),children:a})}function aI({children:a,className:b,...c}){return(0,i.jsx)("h1",{...c,className:(0,f.QP)("text-[1.75em] font-semibold",b),children:a})}function aJ({date:a,...b}){let c=(0,p.c3)(),[d,e]=(0,k.useState)("");return(0,i.jsxs)("p",{...b,className:(0,f.QP)("text-sm text-fd-muted-foreground",b.className),children:[c.lastUpdate," ",d]})}var aK=c(60791);c(70358),c(65936);var aL=c(90558),aM=c(69532),aN=c(51078);let aO=(0,c(6822).F)("relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{link:"transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors",button:"transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none"},highlight:{true:"data-[active=true]:before:content-[''] data-[active=true]:before:bg-fd-primary data-[active=true]:before:absolute data-[active=true]:before:w-px data-[active=true]:before:inset-y-2.5 data-[active=true]:before:inset-s-2.5"}}});function aP(a){return`calc(${2+3*a} * var(--spacing))`}let{useSidebar:aQ}=aL.eY;function aR(a){return(0,i.jsx)(aL.L_,{...a})}function aS({className:a,style:b,children:c,...d}){let e=(0,aL.zb)();return(0,i.jsx)(aL.uk,{className:(0,f.QP)(aO({variant:"link",highlight:e>=1}),a),style:{paddingInlineStart:aP(e),...b},...d,children:c})}function aT({className:a,style:b,...c}){let{depth:d,collapsible:e}=(0,aL.a4)();return(0,i.jsx)(aL.Bk,{className:(0,f.QP)(aO({variant:e?"button":null}),"w-full",a),style:{paddingInlineStart:aP(d-1),...b},...c,children:c.children})}function aU({className:a,style:b,...c}){let d=(0,aL.zb)();return(0,i.jsx)(aL.dJ,{className:(0,f.QP)(aO({variant:"link",highlight:d>1}),"w-full",a),style:{paddingInlineStart:aP(d-1),...b},...c,children:c.children})}function aV({className:a,children:b,...c}){return(0,i.jsx)(aL.SG,{className:(0,f.QP)("relative",1===(0,aL.zb)()&&"before:content-[''] before:absolute before:w-px before:inset-y-1 before:bg-fd-border before:inset-s-2.5",a),...c,children:(0,i.jsx)("div",{className:"flex flex-col gap-0.5 pt-0.5",children:b})})}(0,aM.B)({SidebarFolder:aR,SidebarFolderContent:aV,SidebarFolderLink:aU,SidebarFolderTrigger:aT,SidebarItem:aS,SidebarSeparator:function({className:a,style:b,children:c,...d}){let e=(0,aL.zb)();return(0,i.jsx)(aL.GX,{className:(0,f.QP)("inline-flex items-center gap-2 mb-1.5 px-2 mt-6 empty:mb-0 [&_svg]:size-4 [&_svg]:shrink-0",0===e&&"first:mt-0",a),style:{paddingInlineStart:aP(e),...b},...d,children:c})}}),(0,aN.L)({SidebarFolder:aR,SidebarFolderContent:aV,SidebarFolderLink:aU,SidebarFolderTrigger:aT,SidebarItem:aS});let{useProvider:aW}=(0,aK.baseSlots)({useProps:()=>aY().props}),aX=(0,k.createContext)(null);function aY(){let a=(0,k.use)(aX);if(!a)throw Error("Please use <DocsPage /> (`fumadocs-ui/layouts/notebook/page`) under <DocsLayout /> (`fumadocs-ui/layouts/notebook`).");return a}function aZ(a){return(0,i.jsx)(N,{...a})}function a$({container:a,header:b,footer:c,style:d="normal",list:e}){let g=J(),{TOCItems:h,TOCEmpty:j,TOCItem:k}="clerk"===d?U:P;return(0,i.jsxs)("div",{id:"nd-toc",...a,className:(0,f.QP)("sticky top-(--fd-docs-row-3) [grid-area:toc] h-[calc(var(--fd-docs-height)-var(--fd-docs-row-3))] flex flex-col w-(--fd-toc-width) pt-12 pe-4 pb-2 xl:layout:[--fd-toc-width:268px] max-xl:hidden",a?.className),children:[b,(0,i.jsxs)("h3",{id:"toc-title",className:"inline-flex items-center gap-1.5 text-sm text-fd-muted-foreground",children:[(0,i.jsx)(aa,{className:"size-4"}),(0,i.jsx)(p.bN,{label:"toc"})]}),(0,i.jsx)(O,{children:(0,i.jsxs)(h,{...e,children:[0===g.length&&(0,i.jsx)(j,{}),g.map(a=>(0,i.jsx)(k,{item:a},a.url))]})}),c]})}let a_=(0,k.createContext)(null);function a0({container:a,trigger:b,content:c,header:d,footer:e,style:g="normal",list:h}){let j=J(),l=(0,k.useRef)(null),[m,n]=(0,k.useState)(!1),{isNavTransparent:o}=aY(),{TOCItems:p,TOCItem:q,TOCEmpty:r}="clerk"===g?U:P;(0,k.useEffectEvent)(a=>{m&&a.target instanceof HTMLElement&&l.current&&!l.current.contains(a.target)&&n(!1)});let s=()=>{n(!1)};return(0,i.jsx)(a_,{value:(0,k.useMemo)(()=>({open:m,setOpen:n}),[n,m]),children:(0,i.jsx)($.Nt,{open:m,onOpenChange:n,"data-toc-popover":"",...a,className:(0,f.QP)("sticky top-(--fd-docs-row-2) z-10 [grid-area:toc-popover] h-(--fd-toc-popover-height) xl:hidden max-xl:layout:[--fd-toc-popover-height:--spacing(10)]",a?.className),children:(0,i.jsxs)("header",{ref:l,className:(0,f.QP)("border-b backdrop-blur-sm transition-colors",(!o||m)&&"bg-fd-background/80",m&&"shadow-lg"),children:[(0,i.jsx)(a1,{...b}),(0,i.jsxs)(a3,{...c,children:[d,(0,i.jsx)(O,{children:(0,i.jsxs)(p,{...h,children:[0===j.length&&(0,i.jsx)(r,{}),j.map(a=>(0,i.jsx)(q,{item:a,onClick:s},a.url))]})}),e]})]})})})}function a1({className:a,...b}){let c=(0,p.c3)(),{open:d}=(0,k.use)(a_),e=M(),h=e.findIndex(a=>a.active),j=(0,g.LU)().at(-1),l=-1!==h&&!d;return(0,i.jsxs)($.R6,{className:(0,f.QP)("flex w-full h-10 items-center text-sm text-fd-muted-foreground gap-2.5 px-4 py-2.5 text-start focus-visible:outline-none [&_svg]:size-4 md:px-6",a),"data-toc-popover-trigger":"",...b,children:[(0,i.jsx)(a2,{value:(e.findLastIndex(a=>a.active)+1)/Math.max(1,e.length),max:1,className:(0,f.QP)("shrink-0",d&&"text-fd-primary")}),(0,i.jsxs)("span",{className:"grid flex-1 *:my-auto *:row-start-1 *:col-start-1",children:[(0,i.jsx)("span",{className:(0,f.QP)("truncate transition-[opacity,translate,color]",d&&"text-fd-foreground",l&&"opacity-0 -translate-y-full pointer-events-none"),children:j?.name??c.toc}),(0,i.jsx)("span",{className:(0,f.QP)("truncate transition-[opacity,translate]",!l&&"opacity-0 translate-y-full pointer-events-none"),children:e[h]?.original.title})]}),(0,i.jsx)(ab.A,{className:(0,f.QP)("shrink-0 transition-transform mx-0.5",d&&"rotate-180")})]})}function a2({value:a,strokeWidth:b=1.5,size:c=18,min:d=0,max:e=100,style:f,...g}){let h=a<d?d:a>e?e:a,j=c/2-b,k=2*Math.PI*j,l=h/e*k,m={cx:c/2,cy:c/2,r:j,fill:"none",strokeWidth:b};return(0,i.jsxs)("svg",{role:"progressbar",viewBox:`0 0 ${c} ${c}`,"aria-valuenow":h,"aria-valuemin":d,"aria-valuemax":e,style:{width:c,height:c,...f},...g,children:[(0,i.jsx)("circle",{...m,className:"stroke-current/25"}),(0,i.jsx)("circle",{...m,stroke:"currentColor",strokeDasharray:k,strokeDashoffset:k-l,strokeLinecap:"round",transform:`rotate(-90 ${c/2} ${c/2})`,className:"transition-all"})]})}function a3(a){return(0,i.jsx)($.Ke,{"data-toc-popover-content":"",...a,children:(0,i.jsx)("div",{className:"flex flex-col px-4 max-h-[50vh] md:px-6",children:a.children})})}function a4({items:a,children:b,className:c,...d}){let e=al(),g=(0,am.a8)(),{previous:h,next:j}=(0,k.useMemo)(()=>{if(a)return a;let b=e.findIndex(a=>(0,aj.$)(a.url,g));return -1===b?{}:{previous:e[b-1],next:e[b+1]}},[e,a,g]);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:(0,f.QP)("@container grid gap-4",h&&j?"grid-cols-2":"grid-cols-1",c),...d,children:[h&&(0,i.jsx)(a5,{item:h,index:0}),j&&(0,i.jsx)(a5,{item:j,index:1})]}),b]})}function a5({item:a,index:b}){let c=(0,p.c3)(),d=0===b?an:j.A;return(0,i.jsxs)(h.default,{href:a.url,className:(0,f.QP)("flex flex-col gap-2 rounded-lg border p-4 text-sm transition-colors hover:bg-fd-accent/80 hover:text-fd-accent-foreground @max-lg:col-span-full",1===b&&"text-end"),children:[(0,i.jsxs)("div",{className:(0,f.QP)("inline-flex items-center gap-1.5 font-medium",1===b&&"flex-row-reverse"),children:[(0,i.jsx)(d,{className:"-mx-1 size-4 shrink-0 rtl:rotate-180"}),(0,i.jsx)("p",{children:a.name})]}),(0,i.jsx)("p",{className:"text-fd-muted-foreground truncate",children:a.description??(0===b?c.previousPage:c.nextPage)})]})}function a6({includeRoot:a,includeSeparator:b,includePage:c,...d}){let e=(0,g.LU)(),{root:m}=(0,g.tJ)(),n=(0,k.useMemo)(()=>(0,l.Pp)(m,e,{includePage:c,includeSeparator:b,includeRoot:a}),[c,a,b,e,m]);return 0===n.length?null:(0,i.jsx)("div",{...d,className:(0,f.QP)("flex items-center gap-1.5 text-sm text-fd-muted-foreground",d.className),children:n.map((a,b)=>{let c=(0,f.QP)("truncate",b===n.length-1&&"text-fd-primary font-medium");return(0,i.jsxs)(k.Fragment,{children:[0!==b&&(0,i.jsx)(j.A,{className:"size-3.5 shrink-0"}),a.url?(0,i.jsx)(h.default,{href:a.url,className:(0,f.QP)(c,"transition-opacity hover:opacity-80"),children:a.name}):(0,i.jsx)("span",{className:c,children:a.name})]},b)})})}function a7(a){let{props:{full:b}}=ba();return(0,i.jsx)("article",{id:"nd-page","data-full":b,...a,className:(0,f.QP)("flex flex-col [grid-area:main] px-4 py-6 gap-4 md:px-6 md:pt-8 xl:px-8 xl:pt-14 *:max-w-[900px]",b&&"*:max-w-[1285px]",a.className),children:a.children})}var a8=(0,n.I)({DocsBody:()=>bd,DocsDescription:()=>be,DocsPage:()=>bb,DocsTitle:()=>bf,EditOnGitHub:()=>bc,MarkdownCopyButton:()=>ay,PageBreadcrumb:()=>a6,PageFooter:()=>a4,PageLastUpdate:()=>bg,ViewOptionsPopover:()=>az,useDocsPage:()=>ba});let a9=(0,k.createContext)(null);function ba(){let a=(0,k.use)(a9);if(!a)throw Error("Please use page components under <DocsPage /> (`fumadocs-ui/layouts/notebook/page`).");return a}function bb({tableOfContent:{enabled:a,single:b,...c}={},tableOfContentPopover:{enabled:d,...e}={},breadcrumb:{enabled:f=!0,...g}={},footer:{enabled:h=!0,...j}={},full:k=!1,toc:l=[],slots:m={},children:n,...o}){a??=!!(!k&&(l.length>0||c.footer||c.header)),d??=!!(l.length>0||e.header||e.footer);let p={breadcrumb:m.breadcrumb??a6,footer:m.footer??a4,toc:m.toc??{provider:aZ,main:a$,popover:a0},container:m.container??a7};return(0,i.jsx)(a9,{value:{props:{full:k},slots:p},children:(0,i.jsxs)(p.toc.provider,{single:b,toc:a||d?l:[],children:[d&&(e.component??(0,i.jsx)(p.toc.popover,{...e})),(0,i.jsxs)(p.container,{...o,children:[f&&(g.component??(0,i.jsx)(p.breadcrumb,{...g})),n,h&&(j.component??(0,i.jsx)(p.footer,{...j}))]}),a&&(c.component??(0,i.jsx)(p.toc.main,{...c}))]})})}function bc(a){return(0,i.jsx)("a",{target:"_blank",rel:"noreferrer noopener",...a,className:(0,f.QP)((0,o.r)({color:"secondary",size:"sm"}),"gap-1.5 not-prose",a.className),children:a.children??(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(aA,{className:"size-3.5"}),(0,i.jsx)(p.bN,{label:"editOnGithub"})]})})}function bd({children:a,className:b,...c}){return(0,i.jsx)("div",{...c,className:(0,f.QP)("prose flex-1",b),children:a})}function be({children:a,className:b,...c}){return void 0===a?null:(0,i.jsx)("p",{...c,className:(0,f.QP)("mb-8 text-lg text-fd-muted-foreground",b),children:a})}function bf({children:a,className:b,...c}){return(0,i.jsx)("h1",{...c,className:(0,f.QP)("text-[1.75em] font-semibold",b),children:a})}function bg({date:a,...b}){let c=(0,p.c3)(),[d,e]=(0,k.useState)("");return(0,i.jsxs)("p",{...b,className:(0,f.QP)("text-sm text-fd-muted-foreground",b.className),children:[c.lastUpdate," ",d]})}function bh({lastUpdate:a,editOnGithub:b,children:c,...d}){let{DocsPage:f,EditOnGitHub:g,PageLastUpdate:h}=(0,e.b)()?aB:a8;return(0,i.jsxs)(f,{...d,children:[c,(0,i.jsxs)("div",{className:"flex flex-row flex-wrap items-center justify-between gap-4 empty:hidden",children:[b&&(0,i.jsx)(g,{href:`https://github.com/${b.owner}/${b.repo}/blob/${b.sha}/${b.path.startsWith("/")?b.path.slice(1):b.path}`}),a&&(0,i.jsx)(h,{date:new Date(a)})]})]})}},21445:(a,b,c)=>{"use strict";c.d(b,{E:()=>e});var d=c(76760);function e(a={}){let{doc:{passthroughs:b=[]}={}}=a;function c(a,b){return a.startsWith("./")&&(a=a.slice(2)),{path:a,fullPath:d.join(b,a)}}function h(a){let c={body:a.default,toc:a.toc,structuredData:a.structuredData,_exports:a};for(let d of b)c[d]=a[d];return c}return{doc:async(a,b,d)=>await Promise.all(Object.entries(d).map(async([a,d])=>{let e="function"==typeof d?await d():d;return{...h(e),...e.frontmatter,...g(c(a,b),()=>e)}})),docLazy:async(a,b,d,e)=>await Promise.all(Object.entries(d).map(async([a,d])=>{let f="function"==typeof d?await d():d,i=e[a];return{...f,...g(c(a,b),i),load:async()=>h(await i()),structuredData:async()=>(await i()).structuredData}})),meta:async(a,b,d)=>await Promise.all(Object.entries(d).map(async([a,d])=>{let e="function"==typeof d?await d():d;return{info:c(a,b),...e}})),async docs(a,b,c,d){return{docs:await this.doc(a,b,d),meta:await this.meta(a,b,c),toFumadocsSource(a){return f(this.docs,this.meta,a)}}},async docsLazy(a,b,c,d,e){return{docs:await this.docLazy(a,b,d,e),meta:await this.meta(a,b,c),toFumadocsSource(a){return f(this.docs,this.meta,a)}}}}}function f(a,b,c){let e=c?.baseDir,f=[];for(let b of a)f.push({type:"page",path:e?d.join(e,b.info.path):b.info.path,absolutePath:b.info.fullPath,data:b});for(let a of b)f.push({type:"meta",path:e?d.join(e,a.info.path):a.info.path,absolutePath:a.info.fullPath,data:a});return{files:f}}function g(a,b){return{info:a,async getText(d){if("raw"===d)return await (await Promise.resolve().then(c.t.bind(c,73836,19))).readFile(a.fullPath,"utf-8");let e=await b();if("string"!=typeof e._markdown)throw Error("getText('processed') requires `includeProcessedMarkdown` to be enabled in your collection config.");return e._markdown},async getMDAST(){let a=await b();if(!a._mdast)throw Error("getMDAST() requires `includeMDAST` to be enabled in your collection config.");return JSON.parse(a._mdast)}}}},23918:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(44398).A)("panels-top-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M9 21V9",key:"1oto5p"}]])},26323:(a,b,c)=>{"use strict";c.d(b,{Pp:()=>e,oe:()=>f});var d=c(36221);function e(a,b,c){let{includePage:d=!1,includeSeparator:e=!1,includeRoot:f=!1}=c,g=[];for(let c=0;c<b.length;c++){let h=b[c];switch(h.type){case"page":d&&g.push({name:h.name,url:h.url});break;case"folder":if(h.root){g=[],f&&g.push({name:a.name,url:"object"==typeof f?f.url:h.index?.url});break}(c===b.length-1||h.index!==b[c+1])&&g.push({name:h.name,url:h.index?.url});break;case"separator":h.name&&e&&g.push({name:h.name})}}return g}function f(a,b){var c;let e=((c=b).startsWith("http://")||c.startsWith("https://")||(c.startsWith("/")||(c="/"+c),c.length>1&&c.endsWith("/")&&(c=c.slice(0,-1))),c);return(0,d.r)(a,a=>"page"===a.type&&a.url===e)}c(67484)},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},28530:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>j});var e=c(5735),f=c(14777),g=c(57614),h=c(5847),i=a([h]);function j({children:a}){return(0,e.jsx)(f.M,{tree:h.s.pageTree,...(0,g.k)(),children:a})}h=(i.then?(await i)():i)[0],d()}catch(a){d(a)}})},28841:(a,b,c)=>{"use strict";c.r(b),c.d(b,{_markdown:()=>f,default:()=>j,frontmatter:()=>e,structuredData:()=>g,toc:()=>h});var d=c(5735);let e={title:"Quick Start",description:"安装并启动 annodex。"},f="\n\n## 安装 [#安装]\n\n```bash\nnpm i -g @seqyuan/annodex\n```\n\n## 启动 [#启动]\n\n```bash\nannodex\n```\n\n默认情况下,annodex 站点运行在 `http://localhost:30121`,工作台入口为 `http://localhost:30121/workspace`。\n\n如果启用了密码保护,进入工作台时会先跳转到 `/login`。\n\n## 你会得到什么 [#你会得到什么]\n\n启动后,你可以:\n\n1. 选择或浏览项目目录\n2. 创建新会话并与 agent 对话\n3. 查看文件树、结果文件与历史会话\n4. 切换模型、provider、thinking level 与工具预设\n5. 通过 SSE 观察实时运行状态\n\n## 适合的任务类型 [#适合的任务类型]\n\n* AI coding\n* 生物信息学分析整理\n* 项目巡检与总结\n* 报告草拟与知识工作流\n",g={contents:[{heading:"启动",content:"默认情况下,annodex 站点运行在 `http://localhost:30121`,工作台入口为 `http://localhost:30121/workspace`。"},{heading:"启动",content:"如果启用了密码保护,进入工作台时会先跳转到 `/login`。"},{heading:"你会得到什么",content:"启动后,你可以:"},{heading:"你会得到什么",content:"选择或浏览项目目录"},{heading:"你会得到什么",content:"创建新会话并与 agent 对话"},{heading:"你会得到什么",content:"查看文件树、结果文件与历史会话"},{heading:"你会得到什么",content:"切换模型、provider、thinking level 与工具预设"},{heading:"你会得到什么",content:"通过 SSE 观察实时运行状态"},{heading:"适合的任务类型",content:"AI coding"},{heading:"适合的任务类型",content:"生物信息学分析整理"},{heading:"适合的任务类型",content:"项目巡检与总结"},{heading:"适合的任务类型",content:"报告草拟与知识工作流"}],headings:[{id:"安装",content:"安装"},{id:"启动",content:"启动"},{id:"你会得到什么",content:"你会得到什么"},{id:"适合的任务类型",content:"适合的任务类型"}]},h=[{depth:2,url:"#安装",title:(0,d.jsx)(d.Fragment,{children:"安装"})},{depth:2,url:"#启动",title:(0,d.jsx)(d.Fragment,{children:"启动"})},{depth:2,url:"#你会得到什么",title:(0,d.jsx)(d.Fragment,{children:"你会得到什么"})},{depth:2,url:"#适合的任务类型",title:(0,d.jsx)(d.Fragment,{children:"适合的任务类型"})}];function i(a){let b={code:"code",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",ul:"ul",...a.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(b.h2,{id:"安装",children:"安装"}),"\n",(0,d.jsx)(d.Fragment,{children:(0,d.jsx)(b.pre,{className:"shiki shiki-themes github-light github-dark",style:{"--shiki-light":"#24292e","--shiki-dark":"#e1e4e8","--shiki-light-bg":"#fff","--shiki-dark-bg":"#24292e"},tabIndex:"0",icon:'<svg viewBox="0 0 24 24"><path d="m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z" fill="currentColor" /></svg>',children:(0,d.jsx)(b.code,{children:(0,d.jsxs)(b.span,{className:"line",children:[(0,d.jsx)(b.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"npm"}),(0,d.jsx)(b.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" i"}),(0,d.jsx)(b.span,{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},children:" -g"}),(0,d.jsx)(b.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" @seqyuan/annodex"})]})})})}),"\n",(0,d.jsx)(b.h2,{id:"启动",children:"启动"}),"\n",(0,d.jsx)(d.Fragment,{children:(0,d.jsx)(b.pre,{className:"shiki shiki-themes github-light github-dark",style:{"--shiki-light":"#24292e","--shiki-dark":"#e1e4e8","--shiki-light-bg":"#fff","--shiki-dark-bg":"#24292e"},tabIndex:"0",icon:'<svg viewBox="0 0 24 24"><path d="m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z" fill="currentColor" /></svg>',children:(0,d.jsx)(b.code,{children:(0,d.jsx)(b.span,{className:"line",children:(0,d.jsx)(b.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"annodex"})})})})}),"\n",(0,d.jsxs)(b.p,{children:["默认情况下,annodex 站点运行在 ",(0,d.jsx)(b.code,{children:"http://localhost:30121"}),",工作台入口为 ",(0,d.jsx)(b.code,{children:"http://localhost:30121/workspace"}),"。"]}),"\n",(0,d.jsxs)(b.p,{children:["如果启用了密码保护,进入工作台时会先跳转到 ",(0,d.jsx)(b.code,{children:"/login"}),"。"]}),"\n",(0,d.jsx)(b.h2,{id:"你会得到什么",children:"你会得到什么"}),"\n",(0,d.jsx)(b.p,{children:"启动后,你可以:"}),"\n",(0,d.jsxs)(b.ol,{children:["\n",(0,d.jsx)(b.li,{children:"选择或浏览项目目录"}),"\n",(0,d.jsx)(b.li,{children:"创建新会话并与 agent 对话"}),"\n",(0,d.jsx)(b.li,{children:"查看文件树、结果文件与历史会话"}),"\n",(0,d.jsx)(b.li,{children:"切换模型、provider、thinking level 与工具预设"}),"\n",(0,d.jsx)(b.li,{children:"通过 SSE 观察实时运行状态"}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"适合的任务类型",children:"适合的任务类型"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"AI coding"}),"\n",(0,d.jsx)(b.li,{children:"生物信息学分析整理"}),"\n",(0,d.jsx)(b.li,{children:"项目巡检与总结"}),"\n",(0,d.jsx)(b.li,{children:"报告草拟与知识工作流"}),"\n"]})]})}function j(a={}){let{wrapper:b}=a.components||{};return b?(0,d.jsx)(b,{...a,children:(0,d.jsx)(i,{...a})}):i(a)}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29973:(a,b,c)=>{"use strict";function d(...a){return b=>{a.forEach(a=>{"function"==typeof a?a(b):a&&(a.current=b)})}}c.d(b,{P:()=>d})},30576:(a,b,c)=>{"use strict";c.r(b),c.d(b,{_markdown:()=>f,default:()=>j,frontmatter:()=>e,structuredData:()=>g,toc:()=>h});var d=c(5735);let e={title:"Architecture",description:"annodex 的核心结构与数据流。"},f="\n\n## 核心结构 [#核心结构]\n\n系统由三部分组成:\n\n1. **Browser UI** — 负责聊天、文件浏览、会话切换与状态展示\n2. **Next.js Server** — 负责 API、SSE、会话包装与配置管理\n3. **Codex app-server** — 提供底层线程与 turn 协议能力\n\n## 数据流 [#数据流]\n\n```text\nBrowser -> Next.js API -> Codex app-server\n <- SSE <-\n```\n\n## 关键模块 [#关键模块]\n\n* `lib/codex-server.ts`: 启动或连接 Codex app-server\n* `lib/codex-session.ts`: 将 Codex 事件映射为前端可消费事件\n* `lib/rpc-manager.ts`: 管理活跃 session wrapper 生命周期\n* `lib/session-reader.ts`: 读取线程、turn 与会话历史\n\n## 设计重点 [#设计重点]\n\n* 让项目成为组织会话的基本单位\n* 让运行状态对用户可见\n* 让文件查看与聊天协作发生在同一界面\n* 保持对多 provider / model 配置的兼容\n",g={contents:[{heading:"核心结构",content:"系统由三部分组成:"},{heading:"核心结构",content:"**Browser UI** — 负责聊天、文件浏览、会话切换与状态展示"},{heading:"核心结构",content:"**Next.js Server** — 负责 API、SSE、会话包装与配置管理"},{heading:"核心结构",content:"**Codex app-server** — 提供底层线程与 turn 协议能力"},{heading:"关键模块",content:"`lib/codex-server.ts`: 启动或连接 Codex app-server"},{heading:"关键模块",content:"`lib/codex-session.ts`: 将 Codex 事件映射为前端可消费事件"},{heading:"关键模块",content:"`lib/rpc-manager.ts`: 管理活跃 session wrapper 生命周期"},{heading:"关键模块",content:"`lib/session-reader.ts`: 读取线程、turn 与会话历史"},{heading:"设计重点",content:"让项目成为组织会话的基本单位"},{heading:"设计重点",content:"让运行状态对用户可见"},{heading:"设计重点",content:"让文件查看与聊天协作发生在同一界面"},{heading:"设计重点",content:"保持对多 provider / model 配置的兼容"}],headings:[{id:"核心结构",content:"核心结构"},{id:"数据流",content:"数据流"},{id:"关键模块",content:"关键模块"},{id:"设计重点",content:"设计重点"}]},h=[{depth:2,url:"#核心结构",title:(0,d.jsx)(d.Fragment,{children:"核心结构"})},{depth:2,url:"#数据流",title:(0,d.jsx)(d.Fragment,{children:"数据流"})},{depth:2,url:"#关键模块",title:(0,d.jsx)(d.Fragment,{children:"关键模块"})},{depth:2,url:"#设计重点",title:(0,d.jsx)(d.Fragment,{children:"设计重点"})}];function i(a){let b={code:"code",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",strong:"strong",ul:"ul",...a.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(b.h2,{id:"核心结构",children:"核心结构"}),"\n",(0,d.jsx)(b.p,{children:"系统由三部分组成:"}),"\n",(0,d.jsxs)(b.ol,{children:["\n",(0,d.jsxs)(b.li,{children:[(0,d.jsx)(b.strong,{children:"Browser UI"})," — 负责聊天、文件浏览、会话切换与状态展示"]}),"\n",(0,d.jsxs)(b.li,{children:[(0,d.jsx)(b.strong,{children:"Next.js Server"})," — 负责 API、SSE、会话包装与配置管理"]}),"\n",(0,d.jsxs)(b.li,{children:[(0,d.jsx)(b.strong,{children:"Codex app-server"})," — 提供底层线程与 turn 协议能力"]}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"数据流",children:"数据流"}),"\n",(0,d.jsx)(d.Fragment,{children:(0,d.jsx)(b.pre,{className:"shiki shiki-themes github-light github-dark",style:{"--shiki-light":"#24292e","--shiki-dark":"#e1e4e8","--shiki-light-bg":"#fff","--shiki-dark-bg":"#24292e"},tabIndex:"0",icon:'<svg viewBox="0 0 24 24"><path d="M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z" fill="currentColor" /></svg>',children:(0,d.jsxs)(b.code,{children:[(0,d.jsx)(b.span,{className:"line",children:(0,d.jsx)(b.span,{children:"Browser -> Next.js API -> Codex app-server"})}),"\n",(0,d.jsx)(b.span,{className:"line",children:(0,d.jsx)(b.span,{children:" <- SSE <-"})})]})})}),"\n",(0,d.jsx)(b.h2,{id:"关键模块",children:"关键模块"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsxs)(b.li,{children:[(0,d.jsx)(b.code,{children:"lib/codex-server.ts"}),": 启动或连接 Codex app-server"]}),"\n",(0,d.jsxs)(b.li,{children:[(0,d.jsx)(b.code,{children:"lib/codex-session.ts"}),": 将 Codex 事件映射为前端可消费事件"]}),"\n",(0,d.jsxs)(b.li,{children:[(0,d.jsx)(b.code,{children:"lib/rpc-manager.ts"}),": 管理活跃 session wrapper 生命周期"]}),"\n",(0,d.jsxs)(b.li,{children:[(0,d.jsx)(b.code,{children:"lib/session-reader.ts"}),": 读取线程、turn 与会话历史"]}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"设计重点",children:"设计重点"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"让项目成为组织会话的基本单位"}),"\n",(0,d.jsx)(b.li,{children:"让运行状态对用户可见"}),"\n",(0,d.jsx)(b.li,{children:"让文件查看与聊天协作发生在同一界面"}),"\n",(0,d.jsx)(b.li,{children:"保持对多 provider / model 配置的兼容"}),"\n"]})]})}function j(a={}){let{wrapper:b}=a.components||{};return b?(0,d.jsx)(b,{...a,children:(0,d.jsx)(i,{...a})}):i(a)}},30846:(a,b,c)=>{"use strict";c.d(b,{Image:()=>e});var d=c(77943);(0,d.registerClientReference)(function(){throw Error("Attempted to call FrameworkProvider() from the server but FrameworkProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-core/dist/framework/index.js","FrameworkProvider");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call Image() from the server but Image is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-core/dist/framework/index.js","Image");(0,d.registerClientReference)(function(){throw Error("Attempted to call Link() from the server but Link is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-core/dist/framework/index.js","Link"),(0,d.registerClientReference)(function(){throw Error("Attempted to call useParams() from the server but useParams is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-core/dist/framework/index.js","useParams"),(0,d.registerClientReference)(function(){throw Error("Attempted to call usePathname() from the server but usePathname is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-core/dist/framework/index.js","usePathname"),(0,d.registerClientReference)(function(){throw Error("Attempted to call useRouter() from the server but useRouter is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-core/dist/framework/index.js","useRouter")},32056:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i,metadata:()=>h});var d=c(5735),e=c(59452),f=c.n(e),g=c(15185);c(82704);let h={title:c(65833).C3,description:"AI-native bioinformatics workspace by Annoroad",icons:{icon:[{url:"/favicon.svg",type:"image/svg+xml"}],shortcut:[{url:"/favicon.svg",type:"image/svg+xml"}]}};function i({children:a}){return(0,d.jsxs)("html",{lang:"en",className:f().variable,suppressHydrationWarning:!0,children:[(0,d.jsx)("head",{children:(0,d.jsx)("script",{dangerouslySetInnerHTML:{__html:'(function(){try{var t=localStorage.getItem("annodex-theme");if(t==="dark")document.documentElement.classList.add("dark")}catch(e){}})();'}})}),(0,d.jsx)("body",{style:{minHeight:"100dvh",display:"flex",flexDirection:"column"},children:(0,d.jsx)(g.RootProvider,{children:a})})]})}},32171:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getRedirectError:function(){return i},getRedirectStatusCodeFromError:function(){return n},getRedirectTypeFromError:function(){return m},getURLFromRedirectError:function(){return l},permanentRedirect:function(){return k},redirect:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(81494),g=c(52220),h=c(19121).actionAsyncStorage;function i(a,b,c=f.RedirectStatusCode.TemporaryRedirect){let d=Object.defineProperty(Error(g.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return d.digest=`${g.REDIRECT_ERROR_CODE};${b};${a};${c};`,d}function j(a,b){throw i(a,b??=h?.getStore()?.isAction?"push":"replace",f.RedirectStatusCode.TemporaryRedirect)}function k(a,b="replace"){throw i(a,b,f.RedirectStatusCode.PermanentRedirect)}function l(a){return(0,g.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function m(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function n(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},33083:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>k,generateMetadata:()=>m,generateStaticParams:()=>l});var e=c(5735),f=c(91970),g=c(48475),h=c(5847),i=c(20605),j=a([h]);async function k(a){let b=await a.params,c=h.s.getPage(b.slug);c||(0,f.notFound)();let d=c.data.body;return(0,e.jsxs)(g.DocsPage,{toc:c.data.toc,full:c.data.full,children:[(0,e.jsx)(g.DocsTitle,{children:c.data.title}),(0,e.jsx)(g.DocsDescription,{children:c.data.description}),(0,e.jsx)(g.DocsBody,{children:(0,e.jsx)(d,{components:(0,i.k)()})})]})}async function l(){return h.s.generateParams()}async function m(a){let b=await a.params,c=h.s.getPage(b.slug);return c||(0,f.notFound)(),{title:c.data.title,description:c.data.description}}h=(j.then?(await j)():j)[0],d()}catch(a){d(a)}})},33873:a=>{"use strict";a.exports=require("path")},35471:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(64686).A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},36221:(a,b,c)=>{"use strict";function d(a,b,c={}){let{includeSeparator:e=!0}=c;return function a(c){let d;for(let f of c){if(b(f)){let a=[];return d&&a.push(d),a.push(f),a}if("separator"===f.type&&e){d=f;continue}if("folder"===f.type){let c=f.index&&b(f.index)?[f.index]:a(f.children);if(c)return c.unshift(f),d&&c.unshift(d),c}}}(a)??null}c.d(b,{r:()=>d}),Symbol("VisitBreak")},36240:(a,b,c)=>{Promise.resolve().then(c.bind(c,20189)),Promise.resolve().then(c.bind(c,46731)),Promise.resolve().then(c.bind(c,47613))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41083:(a,b,c)=>{"use strict";c.r(b),c.d(b,{_markdown:()=>f,default:()=>j,frontmatter:()=>e,structuredData:()=>g,toc:()=>h});var d=c(5735);let e={title:"Annodex",description:"浏览器原生的 Codex 工作台。"},f="\n\n## 概览 [#概览]\n\nannodex 是一个围绕 Codex 构建的浏览器工作台。\n\n它将以下能力整合到同一界面中:\n\n* 项目级会话管理\n* 文件浏览与审阅\n* 模型、provider 与工具配置\n* SSE 实时事件与运行态反馈\n* 面向分析工作的多文件查看体验\n\n## 为什么存在 [#为什么存在]\n\nCodex 的底层能力很强,但日常工作并不只需要“发送一条命令”。\n\n团队通常还需要:\n\n* 在多个项目之间切换\n* 保留与项目绑定的会话上下文\n* 直接查看代码、Markdown、图片、PDF 与表格\n* 观察 agent 是否仍在运行,以及当前运行了什么工具\n\nannodex 的目标,是补足这一层产品体验。\n\n## 阅读路径 [#阅读路径]\n\n如果你是第一次接触 annodex,建议按以下顺序阅读:\n\n1. [Quick Start](/docs/quick-start)\n2. [Installation and Deployment](/docs/installation-and-deployment)\n3. [Configuration](/docs/configuration)\n4. [Architecture](/docs/architecture)\n5. [Workspace](/docs/workspace)\n6. [Sessions and Projects](/docs/sessions-and-projects)\n7. [Models and Tools](/docs/models-and-tools)\n8. [Runtime and SSE](/docs/runtime-and-sse)\n9. [File Viewing and Outputs](/docs/file-and-report-viewing)\n\n## 快速入口 [#快速入口]\n\n* 进入 [/workspace](/workspace) 打开工作台\n* 查看 [Quick Start](/docs/quick-start)\n* 了解 [Architecture](/docs/architecture)\n",g={contents:[{heading:"概览",content:"annodex 是一个围绕 Codex 构建的浏览器工作台。"},{heading:"概览",content:"它将以下能力整合到同一界面中:"},{heading:"概览",content:"项目级会话管理"},{heading:"概览",content:"文件浏览与审阅"},{heading:"概览",content:"模型、provider 与工具配置"},{heading:"概览",content:"SSE 实时事件与运行态反馈"},{heading:"概览",content:"面向分析工作的多文件查看体验"},{heading:"为什么存在",content:"Codex 的底层能力很强,但日常工作并不只需要“发送一条命令”。"},{heading:"为什么存在",content:"团队通常还需要:"},{heading:"为什么存在",content:"在多个项目之间切换"},{heading:"为什么存在",content:"保留与项目绑定的会话上下文"},{heading:"为什么存在",content:"直接查看代码、Markdown、图片、PDF 与表格"},{heading:"为什么存在",content:"观察 agent 是否仍在运行,以及当前运行了什么工具"},{heading:"为什么存在",content:"annodex 的目标,是补足这一层产品体验。"},{heading:"阅读路径",content:"如果你是第一次接触 annodex,建议按以下顺序阅读:"},{heading:"阅读路径",content:"Quick Start"},{heading:"阅读路径",content:"Installation and Deployment"},{heading:"阅读路径",content:"Configuration"},{heading:"阅读路径",content:"Architecture"},{heading:"阅读路径",content:"Workspace"},{heading:"阅读路径",content:"Sessions and Projects"},{heading:"阅读路径",content:"Models and Tools"},{heading:"阅读路径",content:"Runtime and SSE"},{heading:"阅读路径",content:"File Viewing and Outputs"},{heading:"快速入口",content:"进入 /workspace 打开工作台"},{heading:"快速入口",content:"查看 Quick Start"},{heading:"快速入口",content:"了解 Architecture"}],headings:[{id:"概览",content:"概览"},{id:"为什么存在",content:"为什么存在"},{id:"阅读路径",content:"阅读路径"},{id:"快速入口",content:"快速入口"}]},h=[{depth:2,url:"#概览",title:(0,d.jsx)(d.Fragment,{children:"概览"})},{depth:2,url:"#为什么存在",title:(0,d.jsx)(d.Fragment,{children:"为什么存在"})},{depth:2,url:"#阅读路径",title:(0,d.jsx)(d.Fragment,{children:"阅读路径"})},{depth:2,url:"#快速入口",title:(0,d.jsx)(d.Fragment,{children:"快速入口"})}];function i(a){let b={a:"a",h2:"h2",li:"li",ol:"ol",p:"p",ul:"ul",...a.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(b.h2,{id:"概览",children:"概览"}),"\n",(0,d.jsx)(b.p,{children:"annodex 是一个围绕 Codex 构建的浏览器工作台。"}),"\n",(0,d.jsx)(b.p,{children:"它将以下能力整合到同一界面中:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"项目级会话管理"}),"\n",(0,d.jsx)(b.li,{children:"文件浏览与审阅"}),"\n",(0,d.jsx)(b.li,{children:"模型、provider 与工具配置"}),"\n",(0,d.jsx)(b.li,{children:"SSE 实时事件与运行态反馈"}),"\n",(0,d.jsx)(b.li,{children:"面向分析工作的多文件查看体验"}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"为什么存在",children:"为什么存在"}),"\n",(0,d.jsx)(b.p,{children:"Codex 的底层能力很强,但日常工作并不只需要“发送一条命令”。"}),"\n",(0,d.jsx)(b.p,{children:"团队通常还需要:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"在多个项目之间切换"}),"\n",(0,d.jsx)(b.li,{children:"保留与项目绑定的会话上下文"}),"\n",(0,d.jsx)(b.li,{children:"直接查看代码、Markdown、图片、PDF 与表格"}),"\n",(0,d.jsx)(b.li,{children:"观察 agent 是否仍在运行,以及当前运行了什么工具"}),"\n"]}),"\n",(0,d.jsx)(b.p,{children:"annodex 的目标,是补足这一层产品体验。"}),"\n",(0,d.jsx)(b.h2,{id:"阅读路径",children:"阅读路径"}),"\n",(0,d.jsx)(b.p,{children:"如果你是第一次接触 annodex,建议按以下顺序阅读:"}),"\n",(0,d.jsxs)(b.ol,{children:["\n",(0,d.jsx)(b.li,{children:(0,d.jsx)(b.a,{href:"/docs/quick-start",children:"Quick Start"})}),"\n",(0,d.jsx)(b.li,{children:(0,d.jsx)(b.a,{href:"/docs/installation-and-deployment",children:"Installation and Deployment"})}),"\n",(0,d.jsx)(b.li,{children:(0,d.jsx)(b.a,{href:"/docs/configuration",children:"Configuration"})}),"\n",(0,d.jsx)(b.li,{children:(0,d.jsx)(b.a,{href:"/docs/architecture",children:"Architecture"})}),"\n",(0,d.jsx)(b.li,{children:(0,d.jsx)(b.a,{href:"/docs/workspace",children:"Workspace"})}),"\n",(0,d.jsx)(b.li,{children:(0,d.jsx)(b.a,{href:"/docs/sessions-and-projects",children:"Sessions and Projects"})}),"\n",(0,d.jsx)(b.li,{children:(0,d.jsx)(b.a,{href:"/docs/models-and-tools",children:"Models and Tools"})}),"\n",(0,d.jsx)(b.li,{children:(0,d.jsx)(b.a,{href:"/docs/runtime-and-sse",children:"Runtime and SSE"})}),"\n",(0,d.jsx)(b.li,{children:(0,d.jsx)(b.a,{href:"/docs/file-and-report-viewing",children:"File Viewing and Outputs"})}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"快速入口",children:"快速入口"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsxs)(b.li,{children:["进入 ",(0,d.jsx)(b.a,{href:"/workspace",children:"/workspace"})," 打开工作台"]}),"\n",(0,d.jsxs)(b.li,{children:["查看 ",(0,d.jsx)(b.a,{href:"/docs/quick-start",children:"Quick Start"})]}),"\n",(0,d.jsxs)(b.li,{children:["了解 ",(0,d.jsx)(b.a,{href:"/docs/architecture",children:"Architecture"})]}),"\n"]})]})}function j(a={}){let{wrapper:b}=a.components||{};return b?(0,d.jsx)(b,{...a,children:(0,d.jsx)(i,{...a})}):i(a)}},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},44057:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unauthorized",{enumerable:!0,get:function(){return d}}),c(7638).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},44398:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(91986);let e=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)};var f=c(47613);let g=(a,b)=>{let c=(0,d.forwardRef)(({className:c,...g},h)=>(0,d.createElement)(f.default,{ref:h,iconNode:b,className:((...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim())(`lucide-${e(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,c),...g}));return c.displayName=e(a),c}},45968:(a,b,c)=>{Promise.resolve().then(c.bind(c,85759)),Promise.resolve().then(c.bind(c,60791)),Promise.resolve().then(c.bind(c,90900))},46731:(a,b,c)=>{"use strict";c.d(b,{LinkItem:()=>e,baseSlots:()=>f});var d=c(77943);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call LinkItem() from the server but LinkItem is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/layouts/shared/client.js","LinkItem"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call baseSlots() from the server but baseSlots is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/layouts/shared/client.js","baseSlots")},47613:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/annodex/annodex/node_modules/lucide-react/dist/esm/Icon.mjs\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/lucide-react/dist/esm/Icon.mjs","default")},48475:(a,b,c)=>{"use strict";c.d(b,{DocsBody:()=>e,DocsDescription:()=>f,DocsPage:()=>g,DocsTitle:()=>h});var d=c(77943);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call DocsBody() from the server but DocsBody is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/page.js","DocsBody"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call DocsDescription() from the server but DocsDescription is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/page.js","DocsDescription"),g=(0,d.registerClientReference)(function(){throw Error("Attempted to call DocsPage() from the server but DocsPage is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/page.js","DocsPage"),h=(0,d.registerClientReference)(function(){throw Error("Attempted to call DocsTitle() from the server but DocsTitle is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/page.js","DocsTitle");(0,d.registerClientReference)(function(){throw Error("Attempted to call EditOnGitHub() from the server but EditOnGitHub is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/page.js","EditOnGitHub"),(0,d.registerClientReference)(function(){throw Error("Attempted to call PageBreadcrumb() from the server but PageBreadcrumb is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/page.js","PageBreadcrumb"),(0,d.registerClientReference)(function(){throw Error("Attempted to call PageLastUpdate() from the server but PageLastUpdate is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/page.js","PageLastUpdate"),(0,d.registerClientReference)(function(){throw Error("Attempted to call withArticle() from the server but withArticle is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annodex/annodex/node_modules/fumadocs-ui/dist/page.js","withArticle")},49652:(a,b,c)=>{"use strict";c.d(b,{Heading:()=>l});var d=c(96862),e=c(19598),f=c(66036),g=c(89817),h=c(48249),i=c(64686);let j=(0,i.A)("copy-check",[["path",{d:"m12 15 2 2 4-4",key:"2c609p"}],["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),k=(0,i.A)("link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);function l({as:a,...b}){let c=a??"h1",i=(0,g.c3)(),[m,n]=(0,f.x)(()=>{if(!b.id)return;let a=new URL(window.location.href);return a.hash=b.id,navigator.clipboard.writeText(a.href)});return b.id?(0,h.jsxs)(c,{...b,className:(0,d.QP)("group/heading flex scroll-m-28 flex-row items-center gap-1",b.className),children:[(0,h.jsx)("a",{"data-card":"",href:`#${b.id}`,children:b.children}),(0,h.jsx)("button",{"aria-label":i.headingCopyAnchor,className:(0,d.QP)((0,e.r)({variant:"ghost",size:"icon-xs"}),"not-prose shrink-0 text-fd-muted-foreground opacity-0 transition-opacity group-hover/heading:opacity-100"),onClick:n,children:m?(0,h.jsx)(j,{}):(0,h.jsx)(k,{})})]}):(0,h.jsx)(c,{...b})}},50723:(a,b,c)=>{"use strict";c.d(b,{c:()=>e});let d=Symbol("VisitBreak");function e(a,b){try{return function a(c,e){let f=b(c,e);switch(f){case"skip":return c;case"break":throw d;default:f&&(c=f)}if("index"in c&&c.index&&(c.index=a(c.index,c)),"fallback"in c&&c.fallback&&(c.fallback=a(c.fallback,c)),"children"in c)for(let b=0;b<c.children.length;b++)c.children[b]=a(c.children[b],c);return c}(a)}catch(b){if(b===d)return a;throw b}}},50737:(a,b,c)=>{"use strict";c.r(b),c.d(b,{_markdown:()=>f,default:()=>j,frontmatter:()=>e,structuredData:()=>g,toc:()=>h});var d=c(5735);let e={title:"Configuration",description:"annodex 的配置位置与主要配置对象。"},f="\n\n## 配置目录 [#配置目录]\n\nannodex 相关配置主要位于:\n\n* `~/.config/annodex`\n* `~/.config/annodex/providers.json`\n* `~/.config/annodex/annodex-projects.json`\n\n## 配置关注点 [#配置关注点]\n\n常见配置包括:\n\n* provider / model 列表\n* 默认项目目录\n* 项目注册信息\n* 运行时设置\n\n## 为什么集中配置很重要 [#为什么集中配置很重要]\n\n如果 provider、模型、项目与运行偏好散落在多个地方,系统会变得难以维护,尤其对团队用户而言更不透明。\n\nannodex 的设计目标之一,就是让这些配置尽量在同一工作台中可发现、可理解。\n\n## 团队使用建议 [#团队使用建议]\n\n如果多人共享使用环境,建议:\n\n* 统一 provider 配置来源\n* 明确默认项目目录规则\n* 避免在运行态状态文件中混入长期用户偏好\n* 为关键设置保留可审计的保存位置\n",g={contents:[{heading:"配置目录",content:"annodex 相关配置主要位于:"},{heading:"配置目录",content:"`~/.config/annodex`"},{heading:"配置目录",content:"`~/.config/annodex/providers.json`"},{heading:"配置目录",content:"`~/.config/annodex/annodex-projects.json`"},{heading:"配置关注点",content:"常见配置包括:"},{heading:"配置关注点",content:"provider / model 列表"},{heading:"配置关注点",content:"默认项目目录"},{heading:"配置关注点",content:"项目注册信息"},{heading:"配置关注点",content:"运行时设置"},{heading:"为什么集中配置很重要",content:"如果 provider、模型、项目与运行偏好散落在多个地方,系统会变得难以维护,尤其对团队用户而言更不透明。"},{heading:"为什么集中配置很重要",content:"annodex 的设计目标之一,就是让这些配置尽量在同一工作台中可发现、可理解。"},{heading:"团队使用建议",content:"如果多人共享使用环境,建议:"},{heading:"团队使用建议",content:"统一 provider 配置来源"},{heading:"团队使用建议",content:"明确默认项目目录规则"},{heading:"团队使用建议",content:"避免在运行态状态文件中混入长期用户偏好"},{heading:"团队使用建议",content:"为关键设置保留可审计的保存位置"}],headings:[{id:"配置目录",content:"配置目录"},{id:"配置关注点",content:"配置关注点"},{id:"为什么集中配置很重要",content:"为什么集中配置很重要"},{id:"团队使用建议",content:"团队使用建议"}]},h=[{depth:2,url:"#配置目录",title:(0,d.jsx)(d.Fragment,{children:"配置目录"})},{depth:2,url:"#配置关注点",title:(0,d.jsx)(d.Fragment,{children:"配置关注点"})},{depth:2,url:"#为什么集中配置很重要",title:(0,d.jsx)(d.Fragment,{children:"为什么集中配置很重要"})},{depth:2,url:"#团队使用建议",title:(0,d.jsx)(d.Fragment,{children:"团队使用建议"})}];function i(a){let b={code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...a.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(b.h2,{id:"配置目录",children:"配置目录"}),"\n",(0,d.jsx)(b.p,{children:"annodex 相关配置主要位于:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:(0,d.jsx)(b.code,{children:"~/.config/annodex"})}),"\n",(0,d.jsx)(b.li,{children:(0,d.jsx)(b.code,{children:"~/.config/annodex/providers.json"})}),"\n",(0,d.jsx)(b.li,{children:(0,d.jsx)(b.code,{children:"~/.config/annodex/annodex-projects.json"})}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"配置关注点",children:"配置关注点"}),"\n",(0,d.jsx)(b.p,{children:"常见配置包括:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"provider / model 列表"}),"\n",(0,d.jsx)(b.li,{children:"默认项目目录"}),"\n",(0,d.jsx)(b.li,{children:"项目注册信息"}),"\n",(0,d.jsx)(b.li,{children:"运行时设置"}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"为什么集中配置很重要",children:"为什么集中配置很重要"}),"\n",(0,d.jsx)(b.p,{children:"如果 provider、模型、项目与运行偏好散落在多个地方,系统会变得难以维护,尤其对团队用户而言更不透明。"}),"\n",(0,d.jsx)(b.p,{children:"annodex 的设计目标之一,就是让这些配置尽量在同一工作台中可发现、可理解。"}),"\n",(0,d.jsx)(b.h2,{id:"团队使用建议",children:"团队使用建议"}),"\n",(0,d.jsx)(b.p,{children:"如果多人共享使用环境,建议:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"统一 provider 配置来源"}),"\n",(0,d.jsx)(b.li,{children:"明确默认项目目录规则"}),"\n",(0,d.jsx)(b.li,{children:"避免在运行态状态文件中混入长期用户偏好"}),"\n",(0,d.jsx)(b.li,{children:"为关键设置保留可审计的保存位置"}),"\n"]})]})}function j(a={}){let{wrapper:b}=a.components||{};return b?(0,d.jsx)(b,{...a,children:(0,d.jsx)(i,{...a})}):i(a)}},51078:(a,b,c)=>{"use strict";c.d(b,{L:()=>g});var d=c(70358),e=c(84124),f=c(48249);function g({SidebarFolder:a,SidebarFolderContent:b,SidebarFolderLink:c,SidebarFolderTrigger:h,SidebarItem:i}){return function g({item:j,...k}){let l=(0,d.Og)(j,(0,e.a8)());return"custom"===j.type?(0,f.jsx)("div",{...k,children:j.children}):"menu"===j.type?(0,f.jsxs)(a,{...k,children:[j.url?(0,f.jsxs)(c,{href:j.url,active:l,external:j.external,children:[j.icon,j.text]}):(0,f.jsxs)(h,{children:[j.icon,j.text]}),(0,f.jsx)(b,{children:j.items.map((a,b)=>(0,f.jsx)(g,{item:a},b))})]}):(0,f.jsx)(i,{href:j.url,icon:j.icon,external:j.external,active:l,...k,children:j.text})}}},51230:(a,b,c)=>{"use strict";function d(a){return a.length>1&&a.endsWith("/")?a.slice(0,-1):a}function e(a,b,c=!1){return(a=d(a))===(b=d(b))||c&&b.startsWith(`${a}/`)}c.d(b,{$:()=>e,S:()=>d})},52283:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"notFound",{enumerable:!0,get:function(){return f}});let d=c(7638),e=`${d.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function f(){let a=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E1041",enumerable:!1,configurable:!0});throw a.digest=e,a}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},56563:(a,b,c)=>{"use strict";c.r(b),c.d(b,{_markdown:()=>f,default:()=>j,frontmatter:()=>e,structuredData:()=>g,toc:()=>h});var d=c(5735);let e={title:"Installation and Deployment",description:"如何安装、启动并部署 annodex。"},f="\n\n## 本地安装 [#本地安装]\n\n最直接的使用方式是全局安装:\n\n```bash\nnpm i -g @seqyuan/annodex\n```\n\n安装后可直接运行:\n\n```bash\nannodex\n```\n\n启动后,项目说明首页位于 `/`,实际工作台入口位于 `/workspace`。\n\n## 开发模式 [#开发模式]\n\n在源码目录中,推荐使用:\n\n```bash\nnpm run dev\n```\n\n默认端口为 `30121`。\n\n## 部署思路 [#部署思路]\n\nannodex 的核心是本地或受控环境中的浏览器工作台,因此更适合:\n\n* 本机个人使用\n* 局域网内部部署\n* 团队内受控节点或开发服务器\n\n## 部署注意事项 [#部署注意事项]\n\n使用时应考虑:\n\n* Codex app-server 的可访问性\n* provider 配置来源\n* 本地文件系统权限\n* 团队是否需要统一默认目录与项目注册\n* 是否启用密码保护以及谁可以访问 `/workspace`\n\n## 建议 [#建议]\n\n如果目标是先验证产品体验,最好的方式不是复杂部署,而是先在本机跑通完整流程。\n",g={contents:[{heading:"本地安装",content:"最直接的使用方式是全局安装:"},{heading:"本地安装",content:"安装后可直接运行:"},{heading:"本地安装",content:"启动后,项目说明首页位于 `/`,实际工作台入口位于 `/workspace`。"},{heading:"开发模式",content:"在源码目录中,推荐使用:"},{heading:"开发模式",content:"默认端口为 `30121`。"},{heading:"部署思路",content:"annodex 的核心是本地或受控环境中的浏览器工作台,因此更适合:"},{heading:"部署思路",content:"本机个人使用"},{heading:"部署思路",content:"局域网内部部署"},{heading:"部署思路",content:"团队内受控节点或开发服务器"},{heading:"部署注意事项",content:"使用时应考虑:"},{heading:"部署注意事项",content:"Codex app-server 的可访问性"},{heading:"部署注意事项",content:"provider 配置来源"},{heading:"部署注意事项",content:"本地文件系统权限"},{heading:"部署注意事项",content:"团队是否需要统一默认目录与项目注册"},{heading:"部署注意事项",content:"是否启用密码保护以及谁可以访问 `/workspace`"},{heading:"建议",content:"如果目标是先验证产品体验,最好的方式不是复杂部署,而是先在本机跑通完整流程。"}],headings:[{id:"本地安装",content:"本地安装"},{id:"开发模式",content:"开发模式"},{id:"部署思路",content:"部署思路"},{id:"部署注意事项",content:"部署注意事项"},{id:"建议",content:"建议"}]},h=[{depth:2,url:"#本地安装",title:(0,d.jsx)(d.Fragment,{children:"本地安装"})},{depth:2,url:"#开发模式",title:(0,d.jsx)(d.Fragment,{children:"开发模式"})},{depth:2,url:"#部署思路",title:(0,d.jsx)(d.Fragment,{children:"部署思路"})},{depth:2,url:"#部署注意事项",title:(0,d.jsx)(d.Fragment,{children:"部署注意事项"})},{depth:2,url:"#建议",title:(0,d.jsx)(d.Fragment,{children:"建议"})}];function i(a){let b={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",span:"span",ul:"ul",...a.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(b.h2,{id:"本地安装",children:"本地安装"}),"\n",(0,d.jsx)(b.p,{children:"最直接的使用方式是全局安装:"}),"\n",(0,d.jsx)(d.Fragment,{children:(0,d.jsx)(b.pre,{className:"shiki shiki-themes github-light github-dark",style:{"--shiki-light":"#24292e","--shiki-dark":"#e1e4e8","--shiki-light-bg":"#fff","--shiki-dark-bg":"#24292e"},tabIndex:"0",icon:'<svg viewBox="0 0 24 24"><path d="m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z" fill="currentColor" /></svg>',children:(0,d.jsx)(b.code,{children:(0,d.jsxs)(b.span,{className:"line",children:[(0,d.jsx)(b.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"npm"}),(0,d.jsx)(b.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" i"}),(0,d.jsx)(b.span,{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},children:" -g"}),(0,d.jsx)(b.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" @seqyuan/annodex"})]})})})}),"\n",(0,d.jsx)(b.p,{children:"安装后可直接运行:"}),"\n",(0,d.jsx)(d.Fragment,{children:(0,d.jsx)(b.pre,{className:"shiki shiki-themes github-light github-dark",style:{"--shiki-light":"#24292e","--shiki-dark":"#e1e4e8","--shiki-light-bg":"#fff","--shiki-dark-bg":"#24292e"},tabIndex:"0",icon:'<svg viewBox="0 0 24 24"><path d="m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z" fill="currentColor" /></svg>',children:(0,d.jsx)(b.code,{children:(0,d.jsx)(b.span,{className:"line",children:(0,d.jsx)(b.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"annodex"})})})})}),"\n",(0,d.jsxs)(b.p,{children:["启动后,项目说明首页位于 ",(0,d.jsx)(b.code,{children:"/"}),",实际工作台入口位于 ",(0,d.jsx)(b.code,{children:"/workspace"}),"。"]}),"\n",(0,d.jsx)(b.h2,{id:"开发模式",children:"开发模式"}),"\n",(0,d.jsx)(b.p,{children:"在源码目录中,推荐使用:"}),"\n",(0,d.jsx)(d.Fragment,{children:(0,d.jsx)(b.pre,{className:"shiki shiki-themes github-light github-dark",style:{"--shiki-light":"#24292e","--shiki-dark":"#e1e4e8","--shiki-light-bg":"#fff","--shiki-dark-bg":"#24292e"},tabIndex:"0",icon:'<svg viewBox="0 0 24 24"><path d="m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z" fill="currentColor" /></svg>',children:(0,d.jsx)(b.code,{children:(0,d.jsxs)(b.span,{className:"line",children:[(0,d.jsx)(b.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"npm"}),(0,d.jsx)(b.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" run"}),(0,d.jsx)(b.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" dev"})]})})})}),"\n",(0,d.jsxs)(b.p,{children:["默认端口为 ",(0,d.jsx)(b.code,{children:"30121"}),"。"]}),"\n",(0,d.jsx)(b.h2,{id:"部署思路",children:"部署思路"}),"\n",(0,d.jsx)(b.p,{children:"annodex 的核心是本地或受控环境中的浏览器工作台,因此更适合:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"本机个人使用"}),"\n",(0,d.jsx)(b.li,{children:"局域网内部部署"}),"\n",(0,d.jsx)(b.li,{children:"团队内受控节点或开发服务器"}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"部署注意事项",children:"部署注意事项"}),"\n",(0,d.jsx)(b.p,{children:"使用时应考虑:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"Codex app-server 的可访问性"}),"\n",(0,d.jsx)(b.li,{children:"provider 配置来源"}),"\n",(0,d.jsx)(b.li,{children:"本地文件系统权限"}),"\n",(0,d.jsx)(b.li,{children:"团队是否需要统一默认目录与项目注册"}),"\n",(0,d.jsxs)(b.li,{children:["是否启用密码保护以及谁可以访问 ",(0,d.jsx)(b.code,{children:"/workspace"})]}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"建议",children:"建议"}),"\n",(0,d.jsx)(b.p,{children:"如果目标是先验证产品体验,最好的方式不是复杂部署,而是先在本机跑通完整流程。"})]})}function j(a={}){let{wrapper:b}=a.components||{};return b?(0,d.jsx)(b,{...a,children:(0,d.jsx)(i,{...a})}):i(a)}},57614:(a,b,c)=>{"use strict";c.d(b,{k:()=>h});var d=c(5735),e=c(23918);let f=(0,c(44398).A)("book-open-text",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M16 12h2",key:"7q9ll5"}],["path",{d:"M16 8h2",key:"msurwy"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}],["path",{d:"M6 12h2",key:"32wvfc"}],["path",{d:"M6 8h2",key:"30oboj"}]]);var g=c(12167);function h(){return{nav:{title:(0,d.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:10,fontWeight:700},children:[(0,d.jsx)(e.A,{size:18}),"annodex"]})},links:[{text:"Docs",url:"/docs",icon:(0,d.jsx)(f,{size:16}),active:"nested-url"},{text:"Workspace",url:"/workspace",icon:(0,d.jsx)(g.A,{size:16}),active:"nested-url"},{text:"GitHub",url:"https://github.com/seqyuan/annodex",external:!0}]}}},58760:(a,b,c)=>{"use strict";let d;c.d(b,{AM:()=>bs,hl:()=>bu,Wv:()=>bt});var e=c(96862),f=c(48249),g=c(67484),h=c(39471),i=c(58221),j=c(50307),k=c(65481),l=c(57277),m=c(9181),n=c(333);let o=["top","right","bottom","left"],p=Math.min,q=Math.max,r=Math.round,s=Math.floor,t=a=>({x:a,y:a}),u={left:"right",right:"left",bottom:"top",top:"bottom"};function w(a,b){return"function"==typeof a?a(b):a}function x(a){return a.split("-")[0]}function y(a){return a.split("-")[1]}function z(a){return"x"===a?"y":"x"}function A(a){return"y"===a?"height":"width"}function B(a){let b=a[0];return"t"===b||"b"===b?"y":"x"}function C(a){return a.includes("start")?a.replace("start","end"):a.replace("end","start")}let D=["left","right"],E=["right","left"],F=["top","bottom"],G=["bottom","top"];function H(a){let b=x(a);return u[b]+a.slice(b.length)}function I(a){return"number"!=typeof a?{top:0,right:0,bottom:0,left:0,...a}:{top:a,right:a,bottom:a,left:a}}function J(a){let{x:b,y:c,width:d,height:e}=a;return{width:d,height:e,top:c,left:b,right:b+d,bottom:c+e,x:b,y:c}}function K(a,b,c){let d,{reference:e,floating:f}=a,g=B(b),h=z(B(b)),i=A(h),j=x(b),k="y"===g,l=e.x+e.width/2-f.width/2,m=e.y+e.height/2-f.height/2,n=e[i]/2-f[i]/2;switch(j){case"top":d={x:l,y:e.y-f.height};break;case"bottom":d={x:l,y:e.y+e.height};break;case"right":d={x:e.x+e.width,y:m};break;case"left":d={x:e.x-f.width,y:m};break;default:d={x:e.x,y:e.y}}switch(y(b)){case"start":d[h]-=n*(c&&k?-1:1);break;case"end":d[h]+=n*(c&&k?-1:1)}return d}async function L(a,b){var c;void 0===b&&(b={});let{x:d,y:e,platform:f,rects:g,elements:h,strategy:i}=a,{boundary:j="clippingAncestors",rootBoundary:k="viewport",elementContext:l="floating",altBoundary:m=!1,padding:n=0}=w(b,a),o=I(n),p=h[m?"floating"===l?"reference":"floating":l],q=J(await f.getClippingRect({element:null==(c=await (null==f.isElement?void 0:f.isElement(p)))||c?p:p.contextElement||await (null==f.getDocumentElement?void 0:f.getDocumentElement(h.floating)),boundary:j,rootBoundary:k,strategy:i})),r="floating"===l?{x:d,y:e,width:g.floating.width,height:g.floating.height}:g.reference,s=await (null==f.getOffsetParent?void 0:f.getOffsetParent(h.floating)),t=await (null==f.isElement?void 0:f.isElement(s))&&await (null==f.getScale?void 0:f.getScale(s))||{x:1,y:1},u=J(f.convertOffsetParentRelativeRectToViewportRelativeRect?await f.convertOffsetParentRelativeRectToViewportRelativeRect({elements:h,rect:r,offsetParent:s,strategy:i}):r);return{top:(q.top-u.top+o.top)/t.y,bottom:(u.bottom-q.bottom+o.bottom)/t.y,left:(q.left-u.left+o.left)/t.x,right:(u.right-q.right+o.right)/t.x}}let M=async(a,b,c)=>{let{placement:d="bottom",strategy:e="absolute",middleware:f=[],platform:g}=c,h=g.detectOverflow?g:{...g,detectOverflow:L},i=await (null==g.isRTL?void 0:g.isRTL(b)),j=await g.getElementRects({reference:a,floating:b,strategy:e}),{x:k,y:l}=K(j,d,i),m=d,n=0,o={};for(let c=0;c<f.length;c++){let p=f[c];if(!p)continue;let{name:q,fn:r}=p,{x:s,y:t,data:u,reset:w}=await r({x:k,y:l,initialPlacement:d,placement:m,strategy:e,middlewareData:o,rects:j,platform:h,elements:{reference:a,floating:b}});k=null!=s?s:k,l=null!=t?t:l,o[q]={...o[q],...u},w&&n<50&&(n++,"object"==typeof w&&(w.placement&&(m=w.placement),w.rects&&(j=!0===w.rects?await g.getElementRects({reference:a,floating:b,strategy:e}):w.rects),{x:k,y:l}=K(j,m,i)),c=-1)}return{x:k,y:l,placement:m,strategy:e,middlewareData:o}};function N(a,b){return{top:a.top-b.height,right:a.right-b.width,bottom:a.bottom-b.height,left:a.left-b.width}}function O(a){return o.some(b=>a[b]>=0)}let P=new Set(["left","top"]);async function Q(a,b){let{placement:c,platform:d,elements:e}=a,f=await (null==d.isRTL?void 0:d.isRTL(e.floating)),g=x(c),h=y(c),i="y"===B(c),j=P.has(g)?-1:1,k=f&&i?-1:1,l=w(b,a),{mainAxis:m,crossAxis:n,alignmentAxis:o}="number"==typeof l?{mainAxis:l,crossAxis:0,alignmentAxis:null}:{mainAxis:l.mainAxis||0,crossAxis:l.crossAxis||0,alignmentAxis:l.alignmentAxis};return h&&"number"==typeof o&&(n="end"===h?-1*o:o),i?{x:n*k,y:m*j}:{x:m*j,y:n*k}}function R(){return"u">typeof window}function S(a){return V(a)?(a.nodeName||"").toLowerCase():"#document"}function T(a){var b;return(null==a||null==(b=a.ownerDocument)?void 0:b.defaultView)||window}function U(a){var b;return null==(b=(V(a)?a.ownerDocument:a.document)||window.document)?void 0:b.documentElement}function V(a){return!!R()&&(a instanceof Node||a instanceof T(a).Node)}function W(a){return!!R()&&(a instanceof Element||a instanceof T(a).Element)}function X(a){return!!R()&&(a instanceof HTMLElement||a instanceof T(a).HTMLElement)}function Y(a){return!(!R()||"u"<typeof ShadowRoot)&&(a instanceof ShadowRoot||a instanceof T(a).ShadowRoot)}function Z(a){let{overflow:b,overflowX:c,overflowY:d,display:e}=af(a);return/auto|scroll|overlay|hidden|clip/.test(b+d+c)&&"inline"!==e&&"contents"!==e}function $(a){try{if(a.matches(":popover-open"))return!0}catch(a){}try{return a.matches(":modal")}catch(a){return!1}}let _=/transform|translate|scale|rotate|perspective|filter/,aa=/paint|layout|strict|content/,ab=a=>!!a&&"none"!==a;function ac(a){let b=W(a)?af(a):a;return ab(b.transform)||ab(b.translate)||ab(b.scale)||ab(b.rotate)||ab(b.perspective)||!ad()&&(ab(b.backdropFilter)||ab(b.filter))||_.test(b.willChange||"")||aa.test(b.contain||"")}function ad(){return null==d&&(d="u">typeof CSS&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),d}function ae(a){return/^(html|body|#document)$/.test(S(a))}function af(a){return T(a).getComputedStyle(a)}function ag(a){return W(a)?{scrollLeft:a.scrollLeft,scrollTop:a.scrollTop}:{scrollLeft:a.scrollX,scrollTop:a.scrollY}}function ah(a){if("html"===S(a))return a;let b=a.assignedSlot||a.parentNode||Y(a)&&a.host||U(a);return Y(b)?b.host:b}function ai(a,b,c){var d;void 0===b&&(b=[]),void 0===c&&(c=!0);let e=function a(b){let c=ah(b);return ae(c)?b.ownerDocument?b.ownerDocument.body:b.body:X(c)&&Z(c)?c:a(c)}(a),f=e===(null==(d=a.ownerDocument)?void 0:d.body),g=T(e);if(!f)return b.concat(e,ai(e,[],c));{let a=aj(g);return b.concat(g,g.visualViewport||[],Z(e)?e:[],a&&c?ai(a):[])}}function aj(a){return a.parent&&Object.getPrototypeOf(a.parent)?a.frameElement:null}function ak(a){let b=af(a),c=parseFloat(b.width)||0,d=parseFloat(b.height)||0,e=X(a),f=e?a.offsetWidth:c,g=e?a.offsetHeight:d,h=r(c)!==f||r(d)!==g;return h&&(c=f,d=g),{width:c,height:d,$:h}}function al(a){return W(a)?a:a.contextElement}function am(a){let b=al(a);if(!X(b))return t(1);let c=b.getBoundingClientRect(),{width:d,height:e,$:f}=ak(b),g=(f?r(c.width):c.width)/d,h=(f?r(c.height):c.height)/e;return g&&Number.isFinite(g)||(g=1),h&&Number.isFinite(h)||(h=1),{x:g,y:h}}let an=t(0);function ao(a){let b=T(a);return ad()&&b.visualViewport?{x:b.visualViewport.offsetLeft,y:b.visualViewport.offsetTop}:an}function ap(a,b,c,d){var e;void 0===b&&(b=!1),void 0===c&&(c=!1);let f=a.getBoundingClientRect(),g=al(a),h=t(1);b&&(d?W(d)&&(h=am(d)):h=am(a));let i=(void 0===(e=c)&&(e=!1),d&&(!e||d===T(g))&&e)?ao(g):t(0),j=(f.left+i.x)/h.x,k=(f.top+i.y)/h.y,l=f.width/h.x,m=f.height/h.y;if(g){let a=T(g),b=d&&W(d)?T(d):d,c=a,e=aj(c);for(;e&&d&&b!==c;){let a=am(e),b=e.getBoundingClientRect(),d=af(e),f=b.left+(e.clientLeft+parseFloat(d.paddingLeft))*a.x,g=b.top+(e.clientTop+parseFloat(d.paddingTop))*a.y;j*=a.x,k*=a.y,l*=a.x,m*=a.y,j+=f,k+=g,e=aj(c=T(e))}}return J({width:l,height:m,x:j,y:k})}function aq(a,b){let c=ag(a).scrollLeft;return b?b.left+c:ap(U(a)).left+c}function ar(a,b){let c=a.getBoundingClientRect();return{x:c.left+b.scrollLeft-aq(a,c),y:c.top+b.scrollTop}}function as(a,b,c){var d;let e;if("viewport"===b)e=function(a,b){let c=T(a),d=U(a),e=c.visualViewport,f=d.clientWidth,g=d.clientHeight,h=0,i=0;if(e){f=e.width,g=e.height;let a=ad();(!a||a&&"fixed"===b)&&(h=e.offsetLeft,i=e.offsetTop)}let j=aq(d);if(j<=0){let a=d.ownerDocument,b=a.body,c=getComputedStyle(b),e="CSS1Compat"===a.compatMode&&parseFloat(c.marginLeft)+parseFloat(c.marginRight)||0,g=Math.abs(d.clientWidth-b.clientWidth-e);g<=25&&(f-=g)}else j<=25&&(f+=j);return{width:f,height:g,x:h,y:i}}(a,c);else if("document"===b){let b,c,f,g,h,i,j;d=U(a),b=U(d),c=ag(d),f=d.ownerDocument.body,g=q(b.scrollWidth,b.clientWidth,f.scrollWidth,f.clientWidth),h=q(b.scrollHeight,b.clientHeight,f.scrollHeight,f.clientHeight),i=-c.scrollLeft+aq(d),j=-c.scrollTop,"rtl"===af(f).direction&&(i+=q(b.clientWidth,f.clientWidth)-g),e={width:g,height:h,x:i,y:j}}else if(W(b)){let a,d,f,g,h,i;d=(a=ap(b,!0,"fixed"===c)).top+b.clientTop,f=a.left+b.clientLeft,g=X(b)?am(b):t(1),h=b.clientWidth*g.x,i=b.clientHeight*g.y,e={width:h,height:i,x:f*g.x,y:d*g.y}}else{let c=ao(a);e={x:b.x-c.x,y:b.y-c.y,width:b.width,height:b.height}}return J(e)}function at(a){return"static"===af(a).position}function au(a,b){if(!X(a)||"fixed"===af(a).position)return null;if(b)return b(a);let c=a.offsetParent;return U(a)===c&&(c=c.ownerDocument.body),c}function av(a,b){var c;let d=T(a);if($(a))return d;if(!X(a)){let b=ah(a);for(;b&&!ae(b);){if(W(b)&&!at(b))return b;b=ah(b)}return d}let e=au(a,b);for(;e&&(c=e,/^(table|td|th)$/.test(S(c)))&&at(e);)e=au(e,b);return e&&ae(e)&&at(e)&&!ac(e)?d:e||function(a){let b=ah(a);for(;X(b)&&!ae(b);){if(ac(b))return b;if($(b))break;b=ah(b)}return null}(a)||d}let aw=async function(a){let b=this.getOffsetParent||av,c=this.getDimensions,d=await c(a.floating);return{reference:function(a,b,c){let d=X(b),e=U(b),f="fixed"===c,g=ap(a,!0,f,b),h={scrollLeft:0,scrollTop:0},i=t(0);if(d||!d&&!f)if(("body"!==S(b)||Z(e))&&(h=ag(b)),d){let a=ap(b,!0,f,b);i.x=a.x+b.clientLeft,i.y=a.y+b.clientTop}else e&&(i.x=aq(e));f&&!d&&e&&(i.x=aq(e));let j=!e||d||f?t(0):ar(e,h);return{x:g.left+h.scrollLeft-i.x-j.x,y:g.top+h.scrollTop-i.y-j.y,width:g.width,height:g.height}}(a.reference,await b(a.floating),a.strategy),floating:{x:0,y:0,width:d.width,height:d.height}}},ax={convertOffsetParentRelativeRectToViewportRelativeRect:function(a){let{elements:b,rect:c,offsetParent:d,strategy:e}=a,f="fixed"===e,g=U(d),h=!!b&&$(b.floating);if(d===g||h&&f)return c;let i={scrollLeft:0,scrollTop:0},j=t(1),k=t(0),l=X(d);if((l||!l&&!f)&&(("body"!==S(d)||Z(g))&&(i=ag(d)),l)){let a=ap(d);j=am(d),k.x=a.x+d.clientLeft,k.y=a.y+d.clientTop}let m=!g||l||f?t(0):ar(g,i);return{width:c.width*j.x,height:c.height*j.y,x:c.x*j.x-i.scrollLeft*j.x+k.x+m.x,y:c.y*j.y-i.scrollTop*j.y+k.y+m.y}},getDocumentElement:U,getClippingRect:function(a){let{element:b,boundary:c,rootBoundary:d,strategy:e}=a,f=[..."clippingAncestors"===c?$(b)?[]:function(a,b){let c=b.get(a);if(c)return c;let d=ai(a,[],!1).filter(a=>W(a)&&"body"!==S(a)),e=null,f="fixed"===af(a).position,g=f?ah(a):a;for(;W(g)&&!ae(g);){let b=af(g),c=ac(g);c||"fixed"!==b.position||(e=null),(f?c||e:!(!c&&"static"===b.position&&e&&("absolute"===e.position||"fixed"===e.position)||Z(g)&&!c&&function a(b,c){let d=ah(b);return!(d===c||!W(d)||ae(d))&&("fixed"===af(d).position||a(d,c))}(a,g)))?e=b:d=d.filter(a=>a!==g),g=ah(g)}return b.set(a,d),d}(b,this._c):[].concat(c),d],g=as(b,f[0],e),h=g.top,i=g.right,j=g.bottom,k=g.left;for(let a=1;a<f.length;a++){let c=as(b,f[a],e);h=q(c.top,h),i=p(c.right,i),j=p(c.bottom,j),k=q(c.left,k)}return{width:i-k,height:j-h,x:k,y:h}},getOffsetParent:av,getElementRects:aw,getClientRects:function(a){return Array.from(a.getClientRects())},getDimensions:function(a){let{width:b,height:c}=ak(a);return{width:b,height:c}},getScale:am,isElement:W,isRTL:function(a){return"rtl"===af(a).direction}};function ay(a,b){return a.x===b.x&&a.y===b.y&&a.width===b.width&&a.height===b.height}let az=a=>({name:"arrow",options:a,async fn(b){let{x:c,y:d,placement:e,rects:f,platform:g,elements:h,middlewareData:i}=b,{element:j,padding:k=0}=w(a,b)||{};if(null==j)return{};let l=I(k),m={x:c,y:d},n=z(B(e)),o=A(n),r=await g.getDimensions(j),s="y"===n,t=s?"clientHeight":"clientWidth",u=f.reference[o]+f.reference[n]-m[n]-f.floating[o],x=m[n]-f.reference[n],C=await (null==g.getOffsetParent?void 0:g.getOffsetParent(j)),D=C?C[t]:0;D&&await (null==g.isElement?void 0:g.isElement(C))||(D=h.floating[t]||f.floating[o]);let E=D/2-r[o]/2-1,F=p(l[s?"top":"left"],E),G=p(l[s?"bottom":"right"],E),H=D-r[o]-G,J=D/2-r[o]/2+(u/2-x/2),K=q(F,p(J,H)),L=!i.arrow&&null!=y(e)&&J!==K&&f.reference[o]/2-(J<F?F:G)-r[o]/2<0,M=L?J<F?J-F:J-H:0;return{[n]:m[n]+M,data:{[n]:K,centerOffset:J-K-M,...L&&{alignmentOffset:M}},reset:L}}});var aA=c(74429),aB="u">typeof document?g.useLayoutEffect:function(){};function aC(a,b){let c,d,e;if(a===b)return!0;if(typeof a!=typeof b)return!1;if("function"==typeof a&&a.toString()===b.toString())return!0;if(a&&b&&"object"==typeof a){if(Array.isArray(a)){if((c=a.length)!==b.length)return!1;for(d=c;0!=d--;)if(!aC(a[d],b[d]))return!1;return!0}if((c=(e=Object.keys(a)).length)!==Object.keys(b).length)return!1;for(d=c;0!=d--;)if(!({}).hasOwnProperty.call(b,e[d]))return!1;for(d=c;0!=d--;){let c=e[d];if(("_owner"!==c||!a.$$typeof)&&!aC(a[c],b[c]))return!1}return!0}return a!=a&&b!=b}function aD(a){return"u"<typeof window?1:(a.ownerDocument.defaultView||window).devicePixelRatio||1}function aE(a,b){let c=aD(a);return Math.round(b*c)/c}function aF(a){let b=g.useRef(a);return aB(()=>{b.current=a}),b}var aG=c(36177),aH=g.forwardRef((a,b)=>{let{children:c,width:d=10,height:e=5,...g}=a;return(0,f.jsx)(aG.sG.svg,{...g,ref:b,width:d,height:e,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:a.asChild?c:(0,f.jsx)("polygon",{points:"0,0 30,0 15,10"})})});aH.displayName="Arrow";var aI=c(76293),aJ=c(69134),aK="Popper",[aL,aM]=(0,j.A)(aK),[aN,aO]=aL(aK),aP=a=>{let{__scopePopper:b,children:c}=a,[d,e]=g.useState(null),[h,i]=g.useState(void 0);return(0,f.jsx)(aN,{scope:b,anchor:d,onAnchorChange:e,placementState:h,setPlacementState:i,children:c})};aP.displayName=aK;var aQ="PopperAnchor",aR=g.forwardRef((a,b)=>{let{__scopePopper:c,virtualRef:d,...e}=a,h=aO(aQ,c),j=g.useRef(null),k=h.onAnchorChange,l=g.useCallback(a=>{j.current=a,a&&k(a)},[k]),m=(0,i.s)(b,l),n=g.useRef(null);g.useEffect(()=>{if(!d)return;let a=n.current;n.current=d.current,a!==n.current&&k(n.current)});let o=h.placementState&&a_(h.placementState),p=o?.[0],q=o?.[1];return d?null:(0,f.jsx)(aG.sG.div,{"data-radix-popper-side":p,"data-radix-popper-align":q,...e,ref:m})});aR.displayName=aQ;var aS="PopperContent",[aT,aU]=aL(aS),aV=g.forwardRef((a,b)=>{var c,d,e,h,j,k,l,m,n,o,r,t,u;let I,J,K,L,R,S,{__scopePopper:T,side:V="bottom",sideOffset:W=0,align:X="center",alignOffset:Y=0,arrowPadding:Z=0,avoidCollisions:$=!0,collisionBoundary:_,collisionPadding:aa=0,sticky:ab="partial",hideWhenDetached:ac=!1,updatePositionStrategy:ad="optimized",onPlaced:ae,...af}=a,ag=aO(aS,T),[ah,aj]=g.useState(null),ak=(0,i.s)(b,a=>aj(a)),[am,an]=g.useState(null),ao=function(a){let[b,c]=g.useState(void 0);return(0,aJ.N)(()=>{if(a){c({width:a.offsetWidth,height:a.offsetHeight});let b=new ResizeObserver(b=>{let d,e;if(!Array.isArray(b)||!b.length)return;let f=b[0];if("borderBoxSize"in f){let a=f.borderBoxSize,b=Array.isArray(a)?a[0]:a;d=b.inlineSize,e=b.blockSize}else d=a.offsetWidth,e=a.offsetHeight;c({width:d,height:e})});return b.observe(a,{box:"border-box"}),()=>b.unobserve(a)}c(void 0)},[a]),b}(am),aq=ao?.width??0,ar=ao?.height??0,as="number"==typeof aa?aa:{top:0,right:0,bottom:0,left:0,...aa},at=_?Array.isArray(_)?_:[_]:void 0,au=void 0!==at&&at.length>0,av={padding:as,boundary:at?.filter(aZ),altBoundary:au},{refs:aw,floatingStyles:aH,placement:aK,isPositioned:aL,middlewareData:aM}=function(a){void 0===a&&(a={});let{placement:b="bottom",strategy:c="absolute",middleware:d=[],platform:e,elements:{reference:f,floating:h}={},transform:i=!0,whileElementsMounted:j,open:k}=a,[l,m]=g.useState({x:0,y:0,strategy:c,placement:b,middlewareData:{},isPositioned:!1}),[n,o]=g.useState(d);aC(n,d)||o(d);let[p,q]=g.useState(null),[r,s]=g.useState(null),t=g.useCallback(a=>{a!==y.current&&(y.current=a,q(a))},[]),u=g.useCallback(a=>{a!==z.current&&(z.current=a,s(a))},[]),w=f||p,x=h||r,y=g.useRef(null),z=g.useRef(null),A=g.useRef(l),B=null!=j,C=aF(j),D=aF(e),E=aF(k),F=g.useCallback(()=>{var a,d;let e,f,g;if(!y.current||!z.current)return;let h={placement:b,strategy:c,middleware:n};D.current&&(h.platform=D.current),(a=y.current,d=z.current,e=new Map,g={...(f={platform:ax,...h}).platform,_c:e},M(a,d,{...f,platform:g})).then(a=>{let b={...a,isPositioned:!1!==E.current};G.current&&!aC(A.current,b)&&(A.current=b,aA.flushSync(()=>{m(b)}))})},[n,b,c,D,E]);aB(()=>{!1===k&&A.current.isPositioned&&(A.current.isPositioned=!1,m(a=>({...a,isPositioned:!1})))},[k]);let G=g.useRef(!1);aB(()=>(G.current=!0,()=>{G.current=!1}),[]),aB(()=>{if(w&&(y.current=w),x&&(z.current=x),w&&x){if(C.current)return C.current(w,x,F);F()}},[w,x,F,C,B]);let H=g.useMemo(()=>({reference:y,floating:z,setReference:t,setFloating:u}),[t,u]),I=g.useMemo(()=>({reference:w,floating:x}),[w,x]),J=g.useMemo(()=>{let a={position:c,left:0,top:0};if(!I.floating)return a;let b=aE(I.floating,l.x),d=aE(I.floating,l.y);return i?{...a,transform:"translate("+b+"px, "+d+"px)",...aD(I.floating)>=1.5&&{willChange:"transform"}}:{position:c,left:b,top:d}},[c,i,I.floating,l.x,l.y]);return g.useMemo(()=>({...l,update:F,refs:H,elements:I,floatingStyles:J}),[l,F,H,I,J])}({strategy:"fixed",placement:V+("center"!==X?"-"+X:""),whileElementsMounted:(...a)=>(function(a,b,c,d){let e;void 0===d&&(d={});let{ancestorScroll:f=!0,ancestorResize:g=!0,elementResize:h="function"==typeof ResizeObserver,layoutShift:i="function"==typeof IntersectionObserver,animationFrame:j=!1}=d,k=al(a),l=f||g?[...k?ai(k):[],...b?ai(b):[]]:[];l.forEach(a=>{f&&a.addEventListener("scroll",c,{passive:!0}),g&&a.addEventListener("resize",c)});let m=k&&i?function(a,b){let c,d=null,e=U(a);function f(){var a;clearTimeout(c),null==(a=d)||a.disconnect(),d=null}return!function g(h,i){void 0===h&&(h=!1),void 0===i&&(i=1),f();let j=a.getBoundingClientRect(),{left:k,top:l,width:m,height:n}=j;if(h||b(),!m||!n)return;let o={rootMargin:-s(l)+"px "+-s(e.clientWidth-(k+m))+"px "+-s(e.clientHeight-(l+n))+"px "+-s(k)+"px",threshold:q(0,p(1,i))||1},r=!0;function t(b){let d=b[0].intersectionRatio;if(d!==i){if(!r)return g();d?g(!1,d):c=setTimeout(()=>{g(!1,1e-7)},1e3)}1!==d||ay(j,a.getBoundingClientRect())||g(),r=!1}try{d=new IntersectionObserver(t,{...o,root:e.ownerDocument})}catch(a){d=new IntersectionObserver(t,o)}d.observe(a)}(!0),f}(k,c):null,n=-1,o=null;h&&(o=new ResizeObserver(a=>{let[d]=a;d&&d.target===k&&o&&b&&(o.unobserve(b),cancelAnimationFrame(n),n=requestAnimationFrame(()=>{var a;null==(a=o)||a.observe(b)})),c()}),k&&!j&&o.observe(k),b&&o.observe(b));let r=j?ap(a):null;return j&&function b(){let d=ap(a);r&&!ay(r,d)&&c(),r=d,e=requestAnimationFrame(b)}(),c(),()=>{var a;l.forEach(a=>{f&&a.removeEventListener("scroll",c),g&&a.removeEventListener("resize",c)}),null==m||m(),null==(a=o)||a.disconnect(),o=null,j&&cancelAnimationFrame(e)}})(...a,{animationFrame:"always"===ad}),elements:{reference:ag.anchor},middleware:[{name:(I={name:"offset",options:d=c={mainAxis:W+ar,alignmentAxis:Y},async fn(a){var b,c;let{x:e,y:f,placement:g,middlewareData:h}=a,i=await Q(a,d);return g===(null==(b=h.offset)?void 0:b.placement)&&null!=(c=h.arrow)&&c.alignmentOffset?{}:{x:e+i.x,y:f+i.y,data:{...i,placement:g}}}}).name,fn:I.fn,options:[c,void 0]},$&&{name:(J={name:"shift",options:j=h={mainAxis:!0,crossAxis:!1,limiter:"partial"===ab?{fn:(e=void 0,{options:e={},fn(a){let{x:b,y:c,placement:d,rects:f,middlewareData:g}=a,{offset:h=0,mainAxis:i=!0,crossAxis:j=!0}=w(e,a),k={x:b,y:c},l=B(d),m=z(l),n=k[m],o=k[l],p=w(h,a),q="number"==typeof p?{mainAxis:p,crossAxis:0}:{mainAxis:0,crossAxis:0,...p};if(i){let a="y"===m?"height":"width",b=f.reference[m]-f.floating[a]+q.mainAxis,c=f.reference[m]+f.reference[a]-q.mainAxis;n<b?n=b:n>c&&(n=c)}if(j){var r,s;let a="y"===m?"width":"height",b=P.has(x(d)),c=f.reference[l]-f.floating[a]+(b&&(null==(r=g.offset)?void 0:r[l])||0)+(b?0:q.crossAxis),e=f.reference[l]+f.reference[a]+(b?0:(null==(s=g.offset)?void 0:s[l])||0)-(b?q.crossAxis:0);o<c?o=c:o>e&&(o=e)}return{[m]:n,[l]:o}}}).fn,options:[void 0,void 0]}:void 0,...av},async fn(a){let{x:b,y:c,placement:d,platform:e}=a,{mainAxis:f=!0,crossAxis:g=!1,limiter:h={fn:a=>{let{x:b,y:c}=a;return{x:b,y:c}}},...i}=w(j,a),k={x:b,y:c},l=await e.detectOverflow(a,i),m=B(x(d)),n=z(m),o=k[n],r=k[m];if(f){let a="y"===n?"top":"left",b="y"===n?"bottom":"right",c=o+l[a],d=o-l[b];o=q(c,p(o,d))}if(g){let a="y"===m?"top":"left",b="y"===m?"bottom":"right",c=r+l[a],d=r-l[b];r=q(c,p(r,d))}let s=h.fn({...a,[n]:o,[m]:r});return{...s,data:{x:s.x-b,y:s.y-c,enabled:{[n]:f,[m]:g}}}}}).name,fn:J.fn,options:[h,void 0]},$&&{name:(K={name:"flip",options:l=k={...av},async fn(a){var b,c,d,e,f,g,h,i;let j,k,m,{placement:n,middlewareData:o,rects:p,initialPlacement:q,platform:r,elements:s}=a,{mainAxis:t=!0,crossAxis:u=!0,fallbackPlacements:I,fallbackStrategy:J="bestFit",fallbackAxisSideDirection:K="none",flipAlignment:L=!0,...M}=w(l,a);if(null!=(b=o.arrow)&&b.alignmentOffset)return{};let N=x(n),O=B(q),P=x(q)===q,Q=await (null==r.isRTL?void 0:r.isRTL(s.floating)),R=I||(P||!L?[H(q)]:(j=H(q),[C(q),j,C(j)])),S="none"!==K;!I&&S&&R.push(...(k=y(q),m=function(a,b,c){switch(a){case"top":case"bottom":if(c)return b?E:D;return b?D:E;case"left":case"right":return b?F:G;default:return[]}}(x(q),"start"===K,Q),k&&(m=m.map(a=>a+"-"+k),L&&(m=m.concat(m.map(C)))),m));let T=[q,...R],U=await r.detectOverflow(a,M),V=[],W=(null==(c=o.flip)?void 0:c.overflows)||[];if(t&&V.push(U[N]),u){let a,b,c,d,e=(g=n,h=p,void 0===(i=Q)&&(i=!1),a=y(g),c=A(b=z(B(g))),d="x"===b?a===(i?"end":"start")?"right":"left":"start"===a?"bottom":"top",h.reference[c]>h.floating[c]&&(d=H(d)),[d,H(d)]);V.push(U[e[0]],U[e[1]])}if(W=[...W,{placement:n,overflows:V}],!V.every(a=>a<=0)){let a=((null==(d=o.flip)?void 0:d.index)||0)+1,b=T[a];if(b&&("alignment"!==u||O===B(b)||W.every(a=>B(a.placement)!==O||a.overflows[0]>0)))return{data:{index:a,overflows:W},reset:{placement:b}};let c=null==(e=W.filter(a=>a.overflows[0]<=0).sort((a,b)=>a.overflows[1]-b.overflows[1])[0])?void 0:e.placement;if(!c)switch(J){case"bestFit":{let a=null==(f=W.filter(a=>{if(S){let b=B(a.placement);return b===O||"y"===b}return!0}).map(a=>[a.placement,a.overflows.filter(a=>a>0).reduce((a,b)=>a+b,0)]).sort((a,b)=>a[1]-b[1])[0])?void 0:f[0];a&&(c=a);break}case"initialPlacement":c=q}if(n!==c)return{reset:{placement:c}}}return{}}}).name,fn:K.fn,options:[k,void 0]},{name:(L={name:"size",options:n=m={...av,apply:({elements:a,rects:b,availableWidth:c,availableHeight:d})=>{let{width:e,height:f}=b.reference,g=a.floating.style;g.setProperty("--radix-popper-available-width",`${c}px`),g.setProperty("--radix-popper-available-height",`${d}px`),g.setProperty("--radix-popper-anchor-width",`${e}px`),g.setProperty("--radix-popper-anchor-height",`${f}px`)}},async fn(a){var b,c;let d,e,{placement:f,rects:g,platform:h,elements:i}=a,{apply:j=()=>{},...k}=w(n,a),l=await h.detectOverflow(a,k),m=x(f),o=y(f),r="y"===B(f),{width:s,height:t}=g.floating;"top"===m||"bottom"===m?(d=m,e=o===(await (null==h.isRTL?void 0:h.isRTL(i.floating))?"start":"end")?"left":"right"):(e=m,d="end"===o?"top":"bottom");let u=t-l.top-l.bottom,z=s-l.left-l.right,A=p(t-l[d],u),C=p(s-l[e],z),D=!a.middlewareData.shift,E=A,F=C;if(null!=(b=a.middlewareData.shift)&&b.enabled.x&&(F=z),null!=(c=a.middlewareData.shift)&&c.enabled.y&&(E=u),D&&!o){let a=q(l.left,0),b=q(l.right,0),c=q(l.top,0),d=q(l.bottom,0);r?F=s-2*(0!==a||0!==b?a+b:q(l.left,l.right)):E=t-2*(0!==c||0!==d?c+d:q(l.top,l.bottom))}await j({...a,availableWidth:F,availableHeight:E});let G=await h.getDimensions(i.floating);return s!==G.width||t!==G.height?{reset:{rects:!0}}:{}}}).name,fn:L.fn,options:[m,void 0]},am&&{name:(R={name:"arrow",options:r=o={element:am,padding:Z},fn(a){let{element:b,padding:c}="function"==typeof r?r(a):r;return b&&({}).hasOwnProperty.call(b,"current")?null!=b.current?az({element:b.current,padding:c}).fn(a):{}:b?az({element:b,padding:c}).fn(a):{}}}).name,fn:R.fn,options:[o,void 0]},a$({arrowWidth:aq,arrowHeight:ar}),ac&&{name:(S={name:"hide",options:u=t={strategy:"referenceHidden",...av},async fn(a){let{rects:b,platform:c}=a,{strategy:d="referenceHidden",...e}=w(u,a);switch(d){case"referenceHidden":{let d=N(await c.detectOverflow(a,{...e,elementContext:"reference"}),b.reference);return{data:{referenceHiddenOffsets:d,referenceHidden:O(d)}}}case"escaped":{let d=N(await c.detectOverflow(a,{...e,altBoundary:!0}),b.floating);return{data:{escapedOffsets:d,escaped:O(d)}}}default:return{}}}}).name,fn:S.fn,options:[t,void 0]}]}),aN=ag.setPlacementState;(0,aJ.N)(()=>(aN(aK),()=>{aN(void 0)}),[aK,aN]);let[aP,aQ]=a_(aK),aR=(0,aI.c)(ae);(0,aJ.N)(()=>{aL&&aR?.()},[aL,aR]);let aU=aM.arrow?.x,aV=aM.arrow?.y,aW=aM.arrow?.centerOffset!==0,[aX,aY]=g.useState();return(0,aJ.N)(()=>{ah&&aY(window.getComputedStyle(ah).zIndex)},[ah]),(0,f.jsx)("div",{ref:aw.setFloating,"data-radix-popper-content-wrapper":"",style:{...aH,transform:aL?aH.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:aX,"--radix-popper-transform-origin":[aM.transformOrigin?.x,aM.transformOrigin?.y].join(" "),...aM.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:a.dir,children:(0,f.jsx)(aT,{scope:T,placedSide:aP,placedAlign:aQ,onArrowChange:an,arrowX:aU,arrowY:aV,shouldHideArrow:aW,children:(0,f.jsx)(aG.sG.div,{"data-side":aP,"data-align":aQ,...af,ref:ak,style:{...af.style,animation:aL?void 0:"none"}})})})});aV.displayName=aS;var aW="PopperArrow",aX={top:"bottom",right:"left",bottom:"top",left:"right"},aY=g.forwardRef(function(a,b){let{__scopePopper:c,...d}=a,e=aU(aW,c),g=aX[e.placedSide];return(0,f.jsx)("span",{ref:e.onArrowChange,style:{position:"absolute",left:e.arrowX,top:e.arrowY,[g]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[e.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[e.placedSide],visibility:e.shouldHideArrow?"hidden":void 0},children:(0,f.jsx)(aH,{...d,ref:b,style:{...d.style,display:"block"}})})});function aZ(a){return null!==a}aY.displayName=aW;var a$=a=>({name:"transformOrigin",options:a,fn(b){let{placement:c,rects:d,middlewareData:e}=b,f=e.arrow?.centerOffset!==0,g=f?0:a.arrowWidth,h=f?0:a.arrowHeight,[i,j]=a_(c),k={start:"0%",center:"50%",end:"100%"}[j],l=(e.arrow?.x??0)+g/2,m=(e.arrow?.y??0)+h/2,n="",o="";return"bottom"===i?(n=f?k:`${l}px`,o=`${-h}px`):"top"===i?(n=f?k:`${l}px`,o=`${d.floating.height+h}px`):"right"===i?(n=`${-h}px`,o=f?k:`${m}px`):"left"===i&&(n=`${d.floating.width+h}px`,o=f?k:`${m}px`),{data:{x:n,y:o}}}});function a_(a){let[b,c="center"]=a.split("-");return[b,c]}var a0=c(67662),a1=c(70085),a2=c(43980),a3=c(14929),a4=c(14206),a5=c(86709),a6="Popover",[a7,a8]=(0,j.A)(a6,[aM]),a9=aM(),[ba,bb]=a7(a6),bc=a=>{let{__scopePopover:b,children:c,open:d,defaultOpen:e,onOpenChange:h,modal:i=!1}=a,j=a9(b),k=g.useRef(null),[l,m]=g.useState(!1),[o,p]=(0,a3.i)({prop:d,defaultProp:e??!1,onChange:h,caller:a6});return(0,f.jsx)(aP,{...j,children:(0,f.jsx)(ba,{scope:b,contentId:(0,n.B)(),triggerRef:k,open:o,onOpenChange:p,onOpenToggle:g.useCallback(()=>p(a=>!a),[p]),hasCustomAnchor:l,onCustomAnchorAdd:g.useCallback(()=>m(!0),[]),onCustomAnchorRemove:g.useCallback(()=>m(!1),[]),modal:i,children:c})})};bc.displayName=a6;var bd="PopoverAnchor";g.forwardRef((a,b)=>{let{__scopePopover:c,...d}=a,e=bb(bd,c),h=a9(c),{onCustomAnchorAdd:i,onCustomAnchorRemove:j}=e;return g.useEffect(()=>(i(),()=>j()),[i,j]),(0,f.jsx)(aR,{...h,...d,ref:b})}).displayName=bd;var be="PopoverTrigger",bf=g.forwardRef((a,b)=>{let{__scopePopover:c,...d}=a,e=bb(be,c),g=a9(c),j=(0,i.s)(b,e.triggerRef),k=(0,f.jsx)(aG.sG.button,{type:"button","aria-haspopup":"dialog","aria-expanded":e.open,"aria-controls":e.open?e.contentId:void 0,"data-state":br(e.open),...d,ref:j,onClick:(0,h.mK)(a.onClick,e.onOpenToggle)});return e.hasCustomAnchor?k:(0,f.jsx)(aR,{asChild:!0,...g,children:k})});bf.displayName=be;var bg="PopoverPortal",[bh,bi]=a7(bg,{forceMount:void 0}),bj=a=>{let{__scopePopover:b,forceMount:c,children:d,container:e}=a,g=bb(bg,b);return(0,f.jsx)(bh,{scope:b,forceMount:c,children:(0,f.jsx)(a1.C,{present:c||g.open,children:(0,f.jsx)(a0.Z,{asChild:!0,container:e,children:d})})})};bj.displayName=bg;var bk="PopoverContent",bl=g.forwardRef((a,b)=>{let c=bi(bk,a.__scopePopover),{forceMount:d=c.forceMount,...e}=a,g=bb(bk,a.__scopePopover);return(0,f.jsx)(a1.C,{present:d||g.open,children:g.modal?(0,f.jsx)(bn,{...e,ref:b}):(0,f.jsx)(bo,{...e,ref:b})})});bl.displayName=bk;var bm=(0,a2.TL)("PopoverContent.RemoveScroll"),bn=g.forwardRef((a,b)=>{let c=bb(bk,a.__scopePopover),d=g.useRef(null),e=(0,i.s)(b,d),j=g.useRef(!1);return g.useEffect(()=>{let a=d.current;if(a)return(0,a4.Eq)(a)},[]),(0,f.jsx)(a5.A,{as:bm,allowPinchZoom:!0,children:(0,f.jsx)(bp,{...a,ref:e,trapFocus:c.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,h.mK)(a.onCloseAutoFocus,a=>{a.preventDefault(),j.current||c.triggerRef.current?.focus()}),onPointerDownOutside:(0,h.mK)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;j.current=2===b.button||c},{checkForDefaultPrevented:!1}),onFocusOutside:(0,h.mK)(a.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),bo=g.forwardRef((a,b)=>{let c=bb(bk,a.__scopePopover),d=g.useRef(!1),e=g.useRef(!1);return(0,f.jsx)(bp,{...a,ref:b,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(d.current||c.triggerRef.current?.focus(),b.preventDefault()),d.current=!1,e.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(d.current=!0,"pointerdown"===b.detail.originalEvent.type&&(e.current=!0));let f=b.target;c.triggerRef.current?.contains(f)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&e.current&&b.preventDefault()}})}),bp=g.forwardRef((a,b)=>{let{__scopePopover:c,trapFocus:d,onOpenAutoFocus:e,onCloseAutoFocus:g,disableOutsidePointerEvents:h,onEscapeKeyDown:i,onPointerDownOutside:j,onFocusOutside:n,onInteractOutside:o,...p}=a,q=bb(bk,c),r=a9(c);return(0,l.Oh)(),(0,f.jsx)(m.n,{asChild:!0,loop:!0,trapped:d,onMountAutoFocus:e,onUnmountAutoFocus:g,children:(0,f.jsx)(k.qW,{asChild:!0,disableOutsidePointerEvents:h,onInteractOutside:o,onEscapeKeyDown:i,onPointerDownOutside:j,onFocusOutside:n,onDismiss:()=>q.onOpenChange(!1),children:(0,f.jsx)(aV,{"data-state":br(q.open),role:"dialog",id:q.contentId,...r,...p,ref:b,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),bq="PopoverClose";function br(a){return a?"open":"closed"}g.forwardRef((a,b)=>{let{__scopePopover:c,...d}=a,e=bb(bq,c);return(0,f.jsx)(aG.sG.button,{type:"button",...d,ref:b,onClick:(0,h.mK)(a.onClick,()=>e.onOpenChange(!1))})}).displayName=bq,g.forwardRef((a,b)=>{let{__scopePopover:c,...d}=a,e=a9(c);return(0,f.jsx)(aY,{...e,...d,ref:b})}).displayName="PopoverArrow";let bs=bc,bt=bf;function bu({className:a,align:b="center",sideOffset:c=4,...d}){return(0,f.jsx)(bj,{children:(0,f.jsx)(bl,{align:b,sideOffset:c,side:"bottom",className:(0,e.QP)("z-50 origin-(--radix-popover-content-transform-origin) overflow-y-auto max-h-(--radix-popover-content-available-height) min-w-[240px] max-w-[98vw] rounded-xl border bg-fd-popover/60 backdrop-blur-lg p-2 text-sm text-fd-popover-foreground shadow-lg focus-visible:outline-none data-[state=closed]:animate-fd-popover-out data-[state=open]:animate-fd-popover-in",a),...d})})}},59476:(a,b,c)=>{Promise.resolve().then(c.bind(c,30846)),Promise.resolve().then(c.bind(c,9253)),Promise.resolve().then(c.bind(c,6933)),Promise.resolve().then(c.bind(c,13017)),Promise.resolve().then(c.bind(c,48475)),Promise.resolve().then(c.bind(c,115)),Promise.resolve().then(c.bind(c,47613))},60674:a=>{"use strict";a.exports=require("next/dist/compiled/react-dom/cjs/react-dom-server.node.production.js")},60791:(a,b,c)=>{"use strict";c.d(b,{LinkItem:()=>z,baseSlots:()=>A});var d=c(89817),e=c(96862),f=c(19598),g=c(58760),h=c(48249);function i({className:a,variant:b="ghost",children:c,...j}){let k=(0,d.s9)();if(!k.locales)throw Error("Missing `<I18nProvider />`");return(0,h.jsxs)(g.AM,{children:[(0,h.jsx)(g.Wv,{"aria-label":k.text.chooseLanguage,className:(0,e.QP)((0,f.r)({variant:b}),"gap-1.5 p-1.5 data-[state=open]:bg-fd-accent",a),...j,children:c}),(0,h.jsxs)(g.hl,{className:"flex flex-col gap-0.5 p-1",children:[(0,h.jsx)("p",{className:"p-2 text-xs font-medium text-fd-muted-foreground",children:k.text.chooseLanguage}),k.locales.map(a=>(0,h.jsx)("button",{type:"button",className:(0,e.QP)("px-2 py-1.5 text-start text-sm rounded-lg transition-colors",a.locale===k.locale?"bg-fd-primary/10 text-fd-primary":"text-fd-muted-foreground hover:bg-fd-accent hover:text-fd-accent-foreground"),onClick:()=>{k.onChange?.(a.locale)},children:a.name},a.locale))]})]})}function j(a){let{locales:b,locale:c}=(0,d.s9)(),e=b?.find(a=>a.locale===c)?.name;return(0,h.jsx)("span",{...a,children:e})}var k=c(83257),l=c(64686);let m=(0,l.A)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),n=(0,l.A)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),o=(0,l.A)("airplay",[["path",{d:"M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1",key:"ns4c3b"}],["path",{d:"m12 15 5 6H7Z",key:"14qnn2"}]]);var p=c(6822),q=c(67484),r=c(8696);let s=(0,p.F)("size-6.5 p-1.5 text-fd-muted-foreground",{variants:{active:{true:"bg-fd-accent text-fd-accent-foreground",false:"text-fd-muted-foreground"}}}),t=[["light",m,"themeLight"],["dark",n,"themeDark"],["system",o,"themeSystem"]];function u({className:a,mode:b="light-dark",...c}){let{setTheme:f,theme:g,resolvedTheme:i}=(0,r.D)(),[j,k]=(0,q.useState)(!1),l=(0,d.c3)(),m=(0,e.QP)("inline-flex items-center rounded-full border p-1 overflow-hidden *:rounded-full",a);if("light-dark"===b){let a=j?i:null;return(0,h.jsx)("button",{className:m,"aria-label":l.themeToggle,onClick:()=>f("light"===a?"dark":"light"),"data-theme-toggle":"",children:t.map(([b,c])=>{if("system"!==b)return(0,h.jsx)(c,{fill:"currentColor",className:(0,e.QP)(s({active:a===b}))},b)})})}let n=j?g:null;return(0,h.jsx)("div",{className:m,"data-theme-toggle":"",...c,children:t.map(([a,b,c])=>(0,h.jsx)("button",{"aria-label":l[c],className:(0,e.QP)(s({active:n===a})),onClick:()=>f(a),children:(0,h.jsx)(b,{className:"size-full",fill:"currentColor"})},a))})}var w=c(70358),x=c(8423),y=c(84124);function z({ref:a,item:b,...c}){let d=(0,w.Og)(b,(0,y.a8)());return(0,h.jsx)(x.default,{ref:a,href:b.url,external:b.external,...c,"data-active":d,children:c.children})}function A({useProps:a}){function b(b){let{themeSwitch:c}=a();return c.component?c.component:(0,h.jsx)(u,{...b,...c})}function c(b){let{searchToggle:c}=a();return c.components?.sm?c.components.sm:(0,h.jsx)(k.H,{...b,...c.sm})}function e(b){let{searchToggle:c}=a();return c.components?.lg?c.components.lg:(0,h.jsx)(k.K,{...b,...c.full})}function f({href:b="/",...c}){let{url:d=b,title:e}=a().nav??{};return"function"==typeof e?e({href:d,...c}):(0,h.jsx)(x.default,{href:d,...c,children:e})}return{useProvider(a){let{locales:g=[]}=(0,d.s9)(),{nav:h,slots:k={},i18n:l=g.length>1,searchToggle:{enabled:m=!0,...n}={},themeSwitch:{enabled:o=!0,...p}={}}=a;return{baseSlots:{navTitle:k.navTitle??f,themeSwitch:o&&(k.themeSwitch??b),languageSelect:!!l&&(k.languageSelect??{root:i,text:j}),searchTrigger:m&&(k.searchTrigger??{sm:c,full:e})},baseProps:{nav:h,searchToggle:n,themeSwitch:p}}}}}},62108:a=>{"use strict";a.exports=JSON.parse('{"title":"Documentation","pages":["index","quick-start","installation-and-deployment","configuration","architecture","workspace","sessions-and-projects","models-and-tools","runtime-and-sse","file-and-report-viewing"]}')},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},65833:(a,b,c)=>{"use strict";c.d(b,{AQ:()=>f,C3:()=>d,JD:()=>e});let d="annodex",e="@seqyuan/annodex",f="annodex update"},65936:(a,b,c)=>{"use strict";c.d(b,{u:()=>e});var d=c(67484);function e({enabled:a=!0}){let[b,c]=(0,d.useState)();return b}},66036:(a,b,c)=>{"use strict";c.d(b,{x:()=>e});var d=c(67484);function e(a){let[b,c]=(0,d.useState)(!1),e=(0,d.useRef)(a),f=(0,d.useRef)(null);return e.current=a,[b,(0,d.useCallback)(()=>{f.current&&window.clearTimeout(f.current),Promise.resolve(e.current()).then(()=>{c(!0),f.current=window.setTimeout(()=>{c(!1)},1500)})},[])]}},66593:(a,b,c)=>{"use strict";c.d(b,{LU:()=>k,X3:()=>j,tJ:()=>l});var d=c(84124),e=c(48249),f=c(67484),g=c(26323);let h=(0,f.createContext)(null),i=(0,f.createContext)([]);function j({tree:a,children:b}){let c=(0,f.useRef)(0),k=(0,d.a8)(),l=(0,f.useMemo)(()=>a,[a.$id??a]),m=(0,f.useMemo)(()=>(0,g.oe)(l.children,k)??(l.fallback?(0,g.oe)(l.fallback.children,k):null)??[],[l,k]),n=m.findLast(a=>"folder"===a.type&&a.root)??l;return n.$id??=String(c.current++),(0,e.jsx)(h,{value:(0,f.useMemo)(()=>({root:n,full:l}),[n,l]),children:(0,e.jsx)(i,{value:m,children:b})})}function k(){return(0,f.use)(i)}function l(){let a=(0,f.use)(h);if(!a)throw Error("You must wrap this component under <DocsLayout />");return a}},66610:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={ReadonlyURLSearchParams:function(){return f.ReadonlyURLSearchParams},RedirectType:function(){return m},forbidden:function(){return i.forbidden},notFound:function(){return h.notFound},permanentRedirect:function(){return g.permanentRedirect},redirect:function(){return g.redirect},unauthorized:function(){return j.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return k.unstable_rethrow}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(10381),g=c(32171),h=c(52283),i=c(92606),j=c(44057),k=c(98621);function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}let m={push:"push",replace:"replace"};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},69532:(a,b,c)=>{"use strict";c.d(b,{B:()=>j});var d=c(66593),e=c(51230),f=c(84124),g=c(48249),h=c(67484);let i=(0,h.createContext)(null);function j({SidebarFolder:a,SidebarFolderContent:b,SidebarFolderLink:c,SidebarFolderTrigger:k,SidebarSeparator:l,SidebarItem:m}){function n(a){return a.map((a,b)=>(0,g.jsx)(o,{node:a},b))}function o({node:f}){let{Separator:j,Item:p,Folder:q,pathname:r}=(0,h.use)(i);if("separator"===f.type)return j?(0,g.jsx)(j,{item:f}):(0,g.jsxs)(l,{children:[f.icon,f.name]});if("folder"===f.type){let h=(0,d.LU)();return q?(0,g.jsx)(q,{item:f,children:n(f.children)}):(0,g.jsxs)(a,{collapsible:f.collapsible,active:h.includes(f),defaultOpen:f.defaultOpen,children:[f.index?(0,g.jsxs)(c,{href:f.index.url,active:(0,e.$)(f.index.url,r),external:f.index.external,children:[f.icon,f.name]}):(0,g.jsxs)(k,{children:[f.icon,f.name]}),(0,g.jsx)(b,{children:n(f.children)})]})}return p?(0,g.jsx)(p,{item:f}):(0,g.jsx)(m,{href:f.url,external:f.external,active:(0,e.$)(f.url,r),icon:f.icon,children:f.name})}return function(a){let{Folder:b,Item:c,Separator:e}=a,{root:j}=(0,d.tJ)(),k=(0,f.a8)();return(0,g.jsx)(i,{value:(0,h.useMemo)(()=>({Folder:b,Item:c,Separator:e,pathname:k}),[b,c,e,k]),children:(0,g.jsx)(h.Fragment,{children:n(j.children)},j.$id)})}}},69556:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23))},69627:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(64686).A)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},70358:(a,b,c)=>{"use strict";c.d(b,{So:()=>h,Og:()=>j,u2:()=>i});var d=c(51230);c(60791);var e=c(48249),f=c(67484),g=c(36221);function h(a,b){return a.$folder?null!==g.r(a.$folder.children,a=>"page"===a.type&&(0,d.$)(a.url,b)):a.urls?a.urls.has((0,d.S)(b)):(0,d.$)(a.url,b,!0)}function i({githubUrl:a,links:b}){return(0,f.useMemo)(()=>{let c=function({links:a=[],githubUrl:b}){let c=[...a];return b&&c.push({type:"icon",url:b,text:"Github",label:"GitHub",icon:(0,e.jsx)("svg",{role:"img",viewBox:"0 0 24 24",fill:"currentColor",children:(0,e.jsx)("path",{d:"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"})}),external:!0}),c}({links:b,githubUrl:a}),d=[],f=[];for(let a of c)switch(a.on){case"menu":f.push(a);break;case"nav":d.push(a);break;default:d.push(a),f.push(a)}return{navItems:d,menuItems:f,all:c}},[b,a])}function j(a,b){return"custom"!==a.type&&!!a.url&&"none"!==a.active&&(0,d.$)(a.url,b,"nested-url"===a.active)}},70588:(a,b,c)=>{"use strict";c.r(b),c.d(b,{_markdown:()=>f,default:()=>j,frontmatter:()=>e,structuredData:()=>g,toc:()=>h});var d=c(5735);let e={title:"Workspace",description:"annodex 工作台的主要界面组成。"},f="\n\n## 工作台包含什么 [#工作台包含什么]\n\nannodex 的主界面并不只是一个聊天框,而是由多个协作区域组成:\n\n* 会话窗口\n* 项目与会话侧边栏\n* 文件浏览器\n* 文件预览与结果查看区域\n* 工具/模型/思考强度等控制项\n\n## 设计目标 [#设计目标]\n\n核心目标是减少以下摩擦:\n\n* 在终端、文件浏览器、结果文件和聊天记录之间来回切换\n* 很难知道 agent 是否仍在运行\n* 很难理解当前对话绑定的是哪个项目上下文\n* 很难让非工程用户理解系统在做什么\n\n## 适合的交互方式 [#适合的交互方式]\n\n最常见的使用模式是:\n\n1. 选择项目目录\n2. 新建或继续一个会话\n3. 让 agent 检查目录、读取结果、总结状态\n4. 同时查看文件与回复内容\n5. 导出说明、结果摘要或下一步建议\n",g={contents:[{heading:"工作台包含什么",content:"annodex 的主界面并不只是一个聊天框,而是由多个协作区域组成:"},{heading:"工作台包含什么",content:"会话窗口"},{heading:"工作台包含什么",content:"项目与会话侧边栏"},{heading:"工作台包含什么",content:"文件浏览器"},{heading:"工作台包含什么",content:"文件预览与结果查看区域"},{heading:"工作台包含什么",content:"工具/模型/思考强度等控制项"},{heading:"设计目标",content:"核心目标是减少以下摩擦:"},{heading:"设计目标",content:"在终端、文件浏览器、结果文件和聊天记录之间来回切换"},{heading:"设计目标",content:"很难知道 agent 是否仍在运行"},{heading:"设计目标",content:"很难理解当前对话绑定的是哪个项目上下文"},{heading:"设计目标",content:"很难让非工程用户理解系统在做什么"},{heading:"适合的交互方式",content:"最常见的使用模式是:"},{heading:"适合的交互方式",content:"选择项目目录"},{heading:"适合的交互方式",content:"新建或继续一个会话"},{heading:"适合的交互方式",content:"让 agent 检查目录、读取结果、总结状态"},{heading:"适合的交互方式",content:"同时查看文件与回复内容"},{heading:"适合的交互方式",content:"导出说明、结果摘要或下一步建议"}],headings:[{id:"工作台包含什么",content:"工作台包含什么"},{id:"设计目标",content:"设计目标"},{id:"适合的交互方式",content:"适合的交互方式"}]},h=[{depth:2,url:"#工作台包含什么",title:(0,d.jsx)(d.Fragment,{children:"工作台包含什么"})},{depth:2,url:"#设计目标",title:(0,d.jsx)(d.Fragment,{children:"设计目标"})},{depth:2,url:"#适合的交互方式",title:(0,d.jsx)(d.Fragment,{children:"适合的交互方式"})}];function i(a){let b={h2:"h2",li:"li",ol:"ol",p:"p",ul:"ul",...a.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(b.h2,{id:"工作台包含什么",children:"工作台包含什么"}),"\n",(0,d.jsx)(b.p,{children:"annodex 的主界面并不只是一个聊天框,而是由多个协作区域组成:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"会话窗口"}),"\n",(0,d.jsx)(b.li,{children:"项目与会话侧边栏"}),"\n",(0,d.jsx)(b.li,{children:"文件浏览器"}),"\n",(0,d.jsx)(b.li,{children:"文件预览与结果查看区域"}),"\n",(0,d.jsx)(b.li,{children:"工具/模型/思考强度等控制项"}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"设计目标",children:"设计目标"}),"\n",(0,d.jsx)(b.p,{children:"核心目标是减少以下摩擦:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"在终端、文件浏览器、结果文件和聊天记录之间来回切换"}),"\n",(0,d.jsx)(b.li,{children:"很难知道 agent 是否仍在运行"}),"\n",(0,d.jsx)(b.li,{children:"很难理解当前对话绑定的是哪个项目上下文"}),"\n",(0,d.jsx)(b.li,{children:"很难让非工程用户理解系统在做什么"}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"适合的交互方式",children:"适合的交互方式"}),"\n",(0,d.jsx)(b.p,{children:"最常见的使用模式是:"}),"\n",(0,d.jsxs)(b.ol,{children:["\n",(0,d.jsx)(b.li,{children:"选择项目目录"}),"\n",(0,d.jsx)(b.li,{children:"新建或继续一个会话"}),"\n",(0,d.jsx)(b.li,{children:"让 agent 检查目录、读取结果、总结状态"}),"\n",(0,d.jsx)(b.li,{children:"同时查看文件与回复内容"}),"\n",(0,d.jsx)(b.li,{children:"导出说明、结果摘要或下一步建议"}),"\n"]})]})}function j(a={}){let{wrapper:b}=a.components||{};return b?(0,d.jsx)(b,{...a,children:(0,d.jsx)(i,{...a})}):i(a)}},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73136:a=>{"use strict";a.exports=require("node:url")},73560:(a,b,c)=>{"use strict";c.d(b,{Nt:()=>B,Ke:()=>D,R6:()=>C});var d=c(96862),e=c(48249),f=c(67484),g=c(39471),h=c(50307),i=c(14929),j=c(69134),k=c(58221),l=c(36177),m=c(70085),n=c(333),o="Collapsible",[p,q]=(0,h.A)(o),[r,s]=p(o),t=f.forwardRef((a,b)=>{let{__scopeCollapsible:c,open:d,defaultOpen:g,disabled:h,onOpenChange:j,...k}=a,[m,p]=(0,i.i)({prop:d,defaultProp:g??!1,onChange:j,caller:o});return(0,e.jsx)(r,{scope:c,disabled:h,contentId:(0,n.B)(),open:m,onOpenToggle:f.useCallback(()=>p(a=>!a),[p]),children:(0,e.jsx)(l.sG.div,{"data-state":A(m),"data-disabled":h?"":void 0,...k,ref:b})})});t.displayName=o;var u="CollapsibleTrigger",w=f.forwardRef((a,b)=>{let{__scopeCollapsible:c,...d}=a,f=s(u,c);return(0,e.jsx)(l.sG.button,{type:"button","aria-controls":f.open?f.contentId:void 0,"aria-expanded":f.open||!1,"data-state":A(f.open),"data-disabled":f.disabled?"":void 0,disabled:f.disabled,...d,ref:b,onClick:(0,g.mK)(a.onClick,f.onOpenToggle)})});w.displayName=u;var x="CollapsibleContent",y=f.forwardRef((a,b)=>{let{forceMount:c,...d}=a,f=s(x,a.__scopeCollapsible);return(0,e.jsx)(m.C,{present:c||f.open,children:({present:a})=>(0,e.jsx)(z,{...d,ref:b,present:a})})});y.displayName=x;var z=f.forwardRef((a,b)=>{let{__scopeCollapsible:c,present:d,children:g,...h}=a,i=s(x,c),[m,n]=f.useState(d),o=f.useRef(null),p=(0,k.s)(b,o),q=f.useRef(0),r=q.current,t=f.useRef(0),u=t.current,w=i.open||m,y=f.useRef(w),z=f.useRef(void 0);return f.useEffect(()=>{let a=requestAnimationFrame(()=>y.current=!1);return()=>cancelAnimationFrame(a)},[]),(0,j.N)(()=>{let a=o.current;if(a){z.current=z.current||{transitionDuration:a.style.transitionDuration,animationName:a.style.animationName},a.style.transitionDuration="0s",a.style.animationName="none";let b=a.getBoundingClientRect();q.current=b.height,t.current=b.width,y.current||(a.style.transitionDuration=z.current.transitionDuration,a.style.animationName=z.current.animationName),n(d)}},[i.open,d]),(0,e.jsx)(l.sG.div,{"data-state":A(i.open),"data-disabled":i.disabled?"":void 0,id:i.contentId,hidden:!w,...h,ref:p,style:{"--radix-collapsible-content-height":r?`${r}px`:void 0,"--radix-collapsible-content-width":u?`${u}px`:void 0,...a.style},children:w&&g})});function A(a){return a?"open":"closed"}let B=t,C=w;function D({children:a,...b}){let[c,g]=(0,f.useState)(!1);return(0,e.jsx)(y,{...b,className:(0,d.QP)("overflow-hidden",c&&"data-[state=closed]:animate-fd-collapsible-up data-[state=open]:animate-fd-collapsible-down",b.className),children:a})}},73836:a=>{"use strict";a.exports=require("node:fs/promises")},75647:(a,b,c)=>{"use strict";c.r(b),c.d(b,{_markdown:()=>f,default:()=>j,frontmatter:()=>e,structuredData:()=>g,toc:()=>h});var d=c(5735);let e={title:"Runtime and SSE",description:"annodex 如何显示 agent 的运行态与实时事件。"},f="\n\n## 为什么运行态很重要 [#为什么运行态很重要]\n\n很多 AI 界面只显示“最后回答了什么”,却不显示“现在正在做什么”。\n\nannodex 关注的是工作过程,因此运行态信息被视为一等公民。\n\n## 界面通常会体现什么 [#界面通常会体现什么]\n\n* 当前会话是否仍在运行\n* 是否正在调用工具\n* 是否处于等待模型阶段\n* SSE 是否保持连接\n* 停止按钮是否应该出现\n\n## SSE 的作用 [#sse-的作用]\n\nSSE 用于将服务端事件持续推送到前端,使界面可以及时反映:\n\n* 新的 assistant 输出\n* 工具执行反馈\n* turn 生命周期变化\n* 重连与运行状态变化\n\n## 用户收益 [#用户收益]\n\n这带来的收益并不只是“更炫”,而是:\n\n* 降低误判为“卡死”的概率\n* 更容易理解 agent 当前阶段\n* 更容易决定何时等待、何时停止、何时继续追问\n",g={contents:[{heading:"为什么运行态很重要",content:"很多 AI 界面只显示“最后回答了什么”,却不显示“现在正在做什么”。"},{heading:"为什么运行态很重要",content:"annodex 关注的是工作过程,因此运行态信息被视为一等公民。"},{heading:"界面通常会体现什么",content:"当前会话是否仍在运行"},{heading:"界面通常会体现什么",content:"是否正在调用工具"},{heading:"界面通常会体现什么",content:"是否处于等待模型阶段"},{heading:"界面通常会体现什么",content:"SSE 是否保持连接"},{heading:"界面通常会体现什么",content:"停止按钮是否应该出现"},{heading:"sse-的作用",content:"SSE 用于将服务端事件持续推送到前端,使界面可以及时反映:"},{heading:"sse-的作用",content:"新的 assistant 输出"},{heading:"sse-的作用",content:"工具执行反馈"},{heading:"sse-的作用",content:"turn 生命周期变化"},{heading:"sse-的作用",content:"重连与运行状态变化"},{heading:"用户收益",content:"这带来的收益并不只是“更炫”,而是:"},{heading:"用户收益",content:"降低误判为“卡死”的概率"},{heading:"用户收益",content:"更容易理解 agent 当前阶段"},{heading:"用户收益",content:"更容易决定何时等待、何时停止、何时继续追问"}],headings:[{id:"为什么运行态很重要",content:"为什么运行态很重要"},{id:"界面通常会体现什么",content:"界面通常会体现什么"},{id:"sse-的作用",content:"SSE 的作用"},{id:"用户收益",content:"用户收益"}]},h=[{depth:2,url:"#为什么运行态很重要",title:(0,d.jsx)(d.Fragment,{children:"为什么运行态很重要"})},{depth:2,url:"#界面通常会体现什么",title:(0,d.jsx)(d.Fragment,{children:"界面通常会体现什么"})},{depth:2,url:"#sse-的作用",title:(0,d.jsx)(d.Fragment,{children:"SSE 的作用"})},{depth:2,url:"#用户收益",title:(0,d.jsx)(d.Fragment,{children:"用户收益"})}];function i(a){let b={h2:"h2",li:"li",p:"p",ul:"ul",...a.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(b.h2,{id:"为什么运行态很重要",children:"为什么运行态很重要"}),"\n",(0,d.jsx)(b.p,{children:"很多 AI 界面只显示“最后回答了什么”,却不显示“现在正在做什么”。"}),"\n",(0,d.jsx)(b.p,{children:"annodex 关注的是工作过程,因此运行态信息被视为一等公民。"}),"\n",(0,d.jsx)(b.h2,{id:"界面通常会体现什么",children:"界面通常会体现什么"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"当前会话是否仍在运行"}),"\n",(0,d.jsx)(b.li,{children:"是否正在调用工具"}),"\n",(0,d.jsx)(b.li,{children:"是否处于等待模型阶段"}),"\n",(0,d.jsx)(b.li,{children:"SSE 是否保持连接"}),"\n",(0,d.jsx)(b.li,{children:"停止按钮是否应该出现"}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"sse-的作用",children:"SSE 的作用"}),"\n",(0,d.jsx)(b.p,{children:"SSE 用于将服务端事件持续推送到前端,使界面可以及时反映:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"新的 assistant 输出"}),"\n",(0,d.jsx)(b.li,{children:"工具执行反馈"}),"\n",(0,d.jsx)(b.li,{children:"turn 生命周期变化"}),"\n",(0,d.jsx)(b.li,{children:"重连与运行状态变化"}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"用户收益",children:"用户收益"}),"\n",(0,d.jsx)(b.p,{children:"这带来的收益并不只是“更炫”,而是:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"降低误判为“卡死”的概率"}),"\n",(0,d.jsx)(b.li,{children:"更容易理解 agent 当前阶段"}),"\n",(0,d.jsx)(b.li,{children:"更容易决定何时等待、何时停止、何时继续追问"}),"\n"]})]})}function j(a={}){let{wrapper:b}=a.components||{};return b?(0,d.jsx)(b,{...a,children:(0,d.jsx)(i,{...a})}):i(a)}},75890:(a,b,c)=>{"use strict";c.d(b,{CodeBlock:()=>aj,CodeBlockTab:()=>ao,CodeBlockTabs:()=>al,CodeBlockTabsList:()=>am,CodeBlockTabsTrigger:()=>an,Pre:()=>ai});var d=c(96862),e=c(19598),f=c(66036),g=c(89817),h=c(29973),i=c(48249),j=c(67484),k=c(39471),l=c(50307),m=c(58221),n=c(43980),o=new WeakMap;function p(a,b){var c,d;let e,f,g;if("at"in Array.prototype)return Array.prototype.at.call(a,b);let h=(c=a,d=b,e=c.length,(g=(f=q(d))>=0?f:e+f)<0||g>=e?-1:g);return -1===h?void 0:a[h]}function q(a){return a!=a||0===a?0:Math.trunc(a)}(class a extends Map{#a;constructor(a){super(a),this.#a=[...super.keys()],o.set(this,!0)}set(a,b){return o.get(this)&&(this.has(a)?this.#a[this.#a.indexOf(a)]=a:this.#a.push(a)),super.set(a,b),this}insert(a,b,c){let d,e=this.has(b),f=this.#a.length,g=q(a),h=g>=0?g:f+g,i=h<0||h>=f?-1:h;if(i===this.size||e&&i===this.size-1||-1===i)return this.set(b,c),this;let j=this.size+ +!e;g<0&&h++;let k=[...this.#a],l=!1;for(let a=h;a<j;a++)if(h===a){let f=k[a];k[a]===b&&(f=k[a+1]),e&&this.delete(b),d=this.get(f),this.set(b,c)}else{l||k[a-1]!==b||(l=!0);let c=k[l?a:a-1],e=d;d=this.get(c),this.delete(c),this.set(c,e)}return this}with(b,c,d){let e=new a(this);return e.insert(b,c,d),e}before(a){let b=this.#a.indexOf(a)-1;if(!(b<0))return this.entryAt(b)}setBefore(a,b,c){let d=this.#a.indexOf(a);return -1===d?this:this.insert(d,b,c)}after(a){let b=this.#a.indexOf(a);if(-1!==(b=-1===b||b===this.size-1?-1:b+1))return this.entryAt(b)}setAfter(a,b,c){let d=this.#a.indexOf(a);return -1===d?this:this.insert(d+1,b,c)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#a=[],super.clear()}delete(a){let b=super.delete(a);return b&&this.#a.splice(this.#a.indexOf(a),1),b}deleteAt(a){let b=this.keyAt(a);return void 0!==b&&this.delete(b)}at(a){let b=p(this.#a,a);if(void 0!==b)return this.get(b)}entryAt(a){let b=p(this.#a,a);if(void 0!==b)return[b,this.get(b)]}indexOf(a){return this.#a.indexOf(a)}keyAt(a){return p(this.#a,a)}from(a,b){let c=this.indexOf(a);if(-1===c)return;let d=c+b;return d<0&&(d=0),d>=this.size&&(d=this.size-1),this.at(d)}keyFrom(a,b){let c=this.indexOf(a);if(-1===c)return;let d=c+b;return d<0&&(d=0),d>=this.size&&(d=this.size-1),this.keyAt(d)}find(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return d;c++}}findIndex(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return c;c++}return -1}filter(b,c){let d=[],e=0;for(let a of this)Reflect.apply(b,c,[a,e,this])&&d.push(a),e++;return new a(d)}map(b,c){let d=[],e=0;for(let a of this)d.push([a[0],Reflect.apply(b,c,[a,e,this])]),e++;return new a(d)}reduce(...a){let[b,c]=a,d=0,e=c??this.at(0);for(let c of this)e=0===d&&1===a.length?c:Reflect.apply(b,this,[e,c,d,this]),d++;return e}reduceRight(...a){let[b,c]=a,d=c??this.at(-1);for(let c=this.size-1;c>=0;c--){let e=this.at(c);d=c===this.size-1&&1===a.length?e:Reflect.apply(b,this,[d,e,c,this])}return d}toSorted(b){return new a([...this.entries()].sort(b))}toReversed(){let b=new a;for(let a=this.size-1;a>=0;a--){let c=this.keyAt(a),d=this.get(c);b.set(c,d)}return b}toSpliced(...b){let c=[...this.entries()];return c.splice(...b),new a(c)}slice(b,c){let d=new a,e=this.size-1;if(void 0===b)return d;b<0&&(b+=this.size),void 0!==c&&c>0&&(e=c-1);for(let a=b;a<=e;a++){let b=this.keyAt(a),c=this.get(b);d.set(b,c)}return d}every(a,b){let c=0;for(let d of this){if(!Reflect.apply(a,b,[d,c,this]))return!1;c++}return!0}some(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return!0;c++}return!1}});var r=c(333),s=c(36177),t=c(76293),u=c(14929),w=c(45433),x="rovingFocusGroup.onEntryFocus",y={bubbles:!1,cancelable:!0},z="RovingFocusGroup",[A,B,C]=function(a){let b=a+"CollectionProvider",[c,d]=(0,l.A)(b),[e,f]=c(b,{collectionRef:{current:null},itemMap:new Map}),g=a=>{let{scope:b,children:c}=a,d=j.useRef(null),f=j.useRef(new Map).current;return(0,i.jsx)(e,{scope:b,itemMap:f,collectionRef:d,children:c})};g.displayName=b;let h=a+"CollectionSlot",k=(0,n.TL)(h),o=j.forwardRef((a,b)=>{let{scope:c,children:d}=a,e=f(h,c),g=(0,m.s)(b,e.collectionRef);return(0,i.jsx)(k,{ref:g,children:d})});o.displayName=h;let p=a+"CollectionItemSlot",q="data-radix-collection-item",r=(0,n.TL)(p),s=j.forwardRef((a,b)=>{let{scope:c,children:d,...e}=a,g=j.useRef(null),h=(0,m.s)(b,g),k=f(p,c);return j.useEffect(()=>(k.itemMap.set(g,{ref:g,...e}),()=>void k.itemMap.delete(g))),(0,i.jsx)(r,{...{[q]:""},ref:h,children:d})});return s.displayName=p,[{Provider:g,Slot:o,ItemSlot:s},function(b){let c=f(a+"CollectionConsumer",b);return j.useCallback(()=>{let a=c.collectionRef.current;if(!a)return[];let b=Array.from(a.querySelectorAll(`[${q}]`));return Array.from(c.itemMap.values()).sort((a,c)=>b.indexOf(a.ref.current)-b.indexOf(c.ref.current))},[c.collectionRef,c.itemMap])},d]}(z),[D,E]=(0,l.A)(z,[C]),[F,G]=D(z),H=j.forwardRef((a,b)=>(0,i.jsx)(A.Provider,{scope:a.__scopeRovingFocusGroup,children:(0,i.jsx)(A.Slot,{scope:a.__scopeRovingFocusGroup,children:(0,i.jsx)(I,{...a,ref:b})})}));H.displayName=z;var I=j.forwardRef((a,b)=>{let{__scopeRovingFocusGroup:c,orientation:d,loop:e=!1,dir:f,currentTabStopId:g,defaultCurrentTabStopId:h,onCurrentTabStopIdChange:l,onEntryFocus:n,preventScrollOnEntryFocus:o=!1,...p}=a,q=j.useRef(null),r=(0,m.s)(b,q),A=(0,w.jH)(f),[C,D]=(0,u.i)({prop:g,defaultProp:h??null,onChange:l,caller:z}),[E,G]=j.useState(!1),H=(0,t.c)(n),I=B(c),J=j.useRef(!1),[K,L]=j.useState(0);return j.useEffect(()=>{let a=q.current;if(a)return a.addEventListener(x,H),()=>a.removeEventListener(x,H)},[H]),(0,i.jsx)(F,{scope:c,orientation:d,dir:A,loop:e,currentTabStopId:C,onItemFocus:j.useCallback(a=>D(a),[D]),onItemShiftTab:j.useCallback(()=>G(!0),[]),onFocusableItemAdd:j.useCallback(()=>L(a=>a+1),[]),onFocusableItemRemove:j.useCallback(()=>L(a=>a-1),[]),children:(0,i.jsx)(s.sG.div,{tabIndex:E||0===K?-1:0,"data-orientation":d,...p,ref:r,style:{outline:"none",...a.style},onMouseDown:(0,k.mK)(a.onMouseDown,()=>{J.current=!0}),onFocus:(0,k.mK)(a.onFocus,a=>{let b=!J.current;if(a.target===a.currentTarget&&b&&!E){let b=new CustomEvent(x,y);if(a.currentTarget.dispatchEvent(b),!b.defaultPrevented){let a=I().filter(a=>a.focusable);M([a.find(a=>a.active),a.find(a=>a.id===C),...a].filter(Boolean).map(a=>a.ref.current),o)}}J.current=!1}),onBlur:(0,k.mK)(a.onBlur,()=>G(!1))})})}),J="RovingFocusGroupItem",K=j.forwardRef((a,b)=>{let{__scopeRovingFocusGroup:c,focusable:d=!0,active:e=!1,tabStopId:f,children:g,...h}=a,l=(0,r.B)(),m=f||l,n=G(J,c),o=n.currentTabStopId===m,p=B(c),{onFocusableItemAdd:q,onFocusableItemRemove:t,currentTabStopId:u}=n;return j.useEffect(()=>{if(d)return q(),()=>t()},[d,q,t]),(0,i.jsx)(A.ItemSlot,{scope:c,id:m,focusable:d,active:e,children:(0,i.jsx)(s.sG.span,{tabIndex:o?0:-1,"data-orientation":n.orientation,...h,ref:b,onMouseDown:(0,k.mK)(a.onMouseDown,a=>{d?n.onItemFocus(m):a.preventDefault()}),onFocus:(0,k.mK)(a.onFocus,()=>n.onItemFocus(m)),onKeyDown:(0,k.mK)(a.onKeyDown,a=>{if("Tab"===a.key&&a.shiftKey)return void n.onItemShiftTab();if(a.target!==a.currentTarget)return;let b=function(a,b,c){var d;let e=(d=a.key,"rtl"!==c?d:"ArrowLeft"===d?"ArrowRight":"ArrowRight"===d?"ArrowLeft":d);if(!("vertical"===b&&["ArrowLeft","ArrowRight"].includes(e))&&!("horizontal"===b&&["ArrowUp","ArrowDown"].includes(e)))return L[e]}(a,n.orientation,n.dir);if(void 0!==b){if(a.metaKey||a.ctrlKey||a.altKey||a.shiftKey)return;a.preventDefault();let e=p().filter(a=>a.focusable).map(a=>a.ref.current);if("last"===b)e.reverse();else if("prev"===b||"next"===b){var c,d;"prev"===b&&e.reverse();let f=e.indexOf(a.currentTarget);e=n.loop?(c=e,d=f+1,c.map((a,b)=>c[(d+b)%c.length])):e.slice(f+1)}setTimeout(()=>M(e))}}),children:"function"==typeof g?g({isCurrentTabStop:o,hasTabStop:null!=u}):g})})});K.displayName=J;var L={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function M(a,b=!1){let c=document.activeElement;for(let d of a)if(d===c||(d.focus({preventScroll:b}),document.activeElement!==c))return}var N=c(70085),O="Tabs",[P,Q]=(0,l.A)(O,[E]),R=E(),[S,T]=P(O),U=j.forwardRef((a,b)=>{let{__scopeTabs:c,value:d,onValueChange:e,defaultValue:f,orientation:g="horizontal",dir:h,activationMode:j="automatic",...k}=a,l=(0,w.jH)(h),[m,n]=(0,u.i)({prop:d,onChange:e,defaultProp:f??"",caller:O});return(0,i.jsx)(S,{scope:c,baseId:(0,r.B)(),value:m,onValueChange:n,orientation:g,dir:l,activationMode:j,children:(0,i.jsx)(s.sG.div,{dir:l,"data-orientation":g,...k,ref:b})})});U.displayName=O;var V="TabsList",W=j.forwardRef((a,b)=>{let{__scopeTabs:c,loop:d=!0,...e}=a,f=T(V,c),g=R(c);return(0,i.jsx)(H,{asChild:!0,...g,orientation:f.orientation,dir:f.dir,loop:d,children:(0,i.jsx)(s.sG.div,{role:"tablist","aria-orientation":f.orientation,...e,ref:b})})});W.displayName=V;var X="TabsTrigger",Y=j.forwardRef((a,b)=>{let{__scopeTabs:c,value:d,disabled:e=!1,...f}=a,g=T(X,c),h=R(c),j=_(g.baseId,d),l=aa(g.baseId,d),m=d===g.value;return(0,i.jsx)(K,{asChild:!0,...h,focusable:!e,active:m,children:(0,i.jsx)(s.sG.button,{type:"button",role:"tab","aria-selected":m,"aria-controls":l,"data-state":m?"active":"inactive","data-disabled":e?"":void 0,disabled:e,id:j,...f,ref:b,onMouseDown:(0,k.mK)(a.onMouseDown,a=>{e||0!==a.button||!1!==a.ctrlKey?a.preventDefault():g.onValueChange(d)}),onKeyDown:(0,k.mK)(a.onKeyDown,a=>{[" ","Enter"].includes(a.key)&&g.onValueChange(d)}),onFocus:(0,k.mK)(a.onFocus,()=>{let a="manual"!==g.activationMode;m||e||!a||g.onValueChange(d)})})})});Y.displayName=X;var Z="TabsContent",$=j.forwardRef((a,b)=>{let{__scopeTabs:c,value:d,forceMount:e,children:f,...g}=a,h=T(Z,c),k=_(h.baseId,d),l=aa(h.baseId,d),m=d===h.value,n=j.useRef(m);return j.useEffect(()=>{let a=requestAnimationFrame(()=>n.current=!1);return()=>cancelAnimationFrame(a)},[]),(0,i.jsx)(N.C,{present:e||m,children:({present:c})=>(0,i.jsx)(s.sG.div,{"data-state":m?"active":"inactive","data-orientation":h.orientation,role:"tabpanel","aria-labelledby":k,hidden:!c,id:l,tabIndex:0,...g,ref:b,style:{...a.style,animationDuration:n.current?"0s":void 0},children:c&&f})})});function _(a,b){return`${a}-trigger-${b}`}function aa(a,b){return`${a}-content-${b}`}$.displayName=Z;let ab=new Map,ac=(0,j.createContext)(null);function ad({ref:a,groupId:b,persist:c=!1,updateAnchor:d=!1,defaultValue:e,value:f,onValueChange:g,...k}){let l=(0,j.useRef)(null),m=(0,j.useMemo)(()=>new Map,[]),[n,o]=void 0===f?(0,j.useState)(e):[f,(0,j.useEffectEvent)(a=>g?.(a))];return(0,i.jsx)(U,{ref:(0,h.P)(a,l),value:n,onValueChange:a=>{if(d){let b=m.get(a);b&&window.history.replaceState(null,"",`#${b}`)}if(b){let d=ab.get(b);if(d)for(let b of d)b(a);sessionStorage.setItem(b,a),c&&localStorage.setItem(b,a)}else o(a)},...k,children:(0,i.jsx)(ac,{value:(0,j.useMemo)(()=>({valueToIdMap:m}),[m]),children:k.children})})}function ae({value:a,...b}){let{valueToIdMap:c}=function(){let a=(0,j.use)(ac);if(!a)throw Error("You must wrap your component in <Tabs>");return a}();return b.id&&c.set(a,b.id),(0,i.jsx)($,{value:a,...b,children:b.children})}var af=c(35471);let ag=(0,c(64686).A)("clipboard",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}]]),ah=(0,j.createContext)(null);function ai(a){return(0,i.jsx)("pre",{...a,className:(0,d.QP)("min-w-full w-max *:flex *:flex-col",a.className),children:a.children})}function aj({ref:a,title:b,allowCopy:c=!0,keepBackground:e=!1,icon:f,viewportProps:g={},children:h,Actions:k=a=>(0,i.jsx)("div",{...a,className:(0,d.QP)("empty:hidden",a.className)}),...l}){let m=null!==(0,j.use)(ah),n=(0,j.useRef)(null);return(0,i.jsxs)("figure",{ref:a,dir:"ltr",...l,tabIndex:-1,className:(0,d.QP)(m?"bg-fd-secondary -mx-px -mb-px last:rounded-b-xl":"my-4 bg-fd-card rounded-xl",e&&"bg-(--shiki-light-bg) dark:bg-(--shiki-dark-bg)","shiki relative border shadow-sm not-prose overflow-hidden text-sm",l.className),children:[b?(0,i.jsxs)("div",{className:"flex text-fd-muted-foreground items-center gap-2 h-9.5 border-b px-4",children:["string"==typeof f?(0,i.jsx)("div",{className:"[&_svg]:size-3.5",dangerouslySetInnerHTML:{__html:f}}):f,(0,i.jsx)("figcaption",{className:"flex-1 truncate",children:b}),k({className:"-me-2",children:c&&(0,i.jsx)(ak,{containerRef:n})})]}):k({className:"absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground",children:c&&(0,i.jsx)(ak,{containerRef:n})}),(0,i.jsx)("div",{ref:n,...g,role:"region",tabIndex:0,className:(0,d.QP)("text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring",g.className),style:{"--padding-right":b?void 0:"calc(var(--spacing) * 8)",counterSet:l["data-line-numbers"]?`line ${Number(l["data-line-numbers-start"]??1)-1}`:void 0,...g.style},children:h})]})}function ak({className:a,containerRef:b,...c}){let h=(0,g.c3)(),[j,k]=(0,f.x)(()=>{let a=b.current?.getElementsByTagName("pre").item(0);if(!a)return;let c=a.cloneNode(!0);c.querySelectorAll(".nd-copy-ignore").forEach(a=>{a.replaceWith("\n")}),navigator.clipboard.writeText(c.textContent??"")});return(0,i.jsx)("button",{type:"button","data-checked":j||void 0,className:(0,d.QP)((0,e.r)({className:"hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground",size:"icon-xs"}),a),"aria-label":j?h.codeBlockCopied:h.codeBlockCopy,onClick:k,...c,children:j?(0,i.jsx)(af.A,{}):(0,i.jsx)(ag,{})})}function al({ref:a,...b}){let c=(0,j.useRef)(null),e=null!==(0,j.use)(ah);return(0,i.jsx)(ad,{ref:(0,h.P)(c,a),...b,className:(0,d.QP)("bg-fd-card rounded-xl border",!e&&"my-4",b.className),children:(0,i.jsx)(ah,{value:(0,j.useMemo)(()=>({containerRef:c,nested:e}),[e]),children:b.children})})}function am(a){return(0,i.jsx)(W,{...a,className:(0,d.QP)("flex flex-row px-2 overflow-x-auto text-fd-muted-foreground",a.className),children:a.children})}function an({children:a,...b}){return(0,i.jsxs)(Y,{...b,className:(0,d.QP)("relative group inline-flex text-sm font-medium text-nowrap items-center transition-colors gap-2 px-2 py-1.5 hover:text-fd-accent-foreground data-[state=active]:text-fd-primary [&_svg]:size-3.5",b.className),children:[(0,i.jsx)("div",{className:"absolute inset-x-2 bottom-0 h-px group-data-[state=active]:bg-fd-primary"}),a]})}function ao(a){return(0,i.jsx)(ae,{...a})}},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},78335:()=>{},79384:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23)),Promise.resolve().then(c.t.bind(c,15098,23)),Promise.resolve().then(c.t.bind(c,47644,23)),Promise.resolve().then(c.t.bind(c,33859,23)),Promise.resolve().then(c.t.bind(c,98099,23)),Promise.resolve().then(c.t.bind(c,16237,23)),Promise.resolve().then(c.t.bind(c,98562,23)),Promise.resolve().then(c.t.bind(c,36675,23))},82644:(a,b,c)=>{"use strict";c.r(b),c.d(b,{_markdown:()=>f,default:()=>j,frontmatter:()=>e,structuredData:()=>g,toc:()=>h});var d=c(5735);let e={title:"File Viewing and Outputs",description:"annodex 如何让文件审阅与结果产物查看发生在同一界面。"},f="\n\n## 文件查看为什么重要 [#文件查看为什么重要]\n\n许多真实任务并不是“问一个问题就结束”,而是需要反复查看文件、结果与中间产物。\n\nannodex 因此强调文件与结果的同屏查看能力。\n\n## 常见查看对象 [#常见查看对象]\n\n* 代码文件\n* Markdown 文档\n* 图片\n* PDF\n* 表格\n* 生成的结果产物\n\n## 设计价值 [#设计价值]\n\n当聊天、文件与结果产物分离时,用户会不断丢失上下文。\n\n而把它们放在同一工作区中,可以:\n\n* 让 agent 建议与实际文件互相验证\n* 更快从“发现问题”切换到“查看证据”\n* 更容易把过程整理为对外输出的说明\n\n## 适合的场景 [#适合的场景]\n\n* 分析结果复核\n* 结果整理与说明撰写\n* 项目巡检\n* 多文件协同理解\n",g={contents:[{heading:"文件查看为什么重要",content:"许多真实任务并不是“问一个问题就结束”,而是需要反复查看文件、结果与中间产物。"},{heading:"文件查看为什么重要",content:"annodex 因此强调文件与结果的同屏查看能力。"},{heading:"常见查看对象",content:"代码文件"},{heading:"常见查看对象",content:"Markdown 文档"},{heading:"常见查看对象",content:"图片"},{heading:"常见查看对象",content:"PDF"},{heading:"常见查看对象",content:"表格"},{heading:"常见查看对象",content:"生成的结果产物"},{heading:"设计价值",content:"当聊天、文件与结果产物分离时,用户会不断丢失上下文。"},{heading:"设计价值",content:"而把它们放在同一工作区中,可以:"},{heading:"设计价值",content:"让 agent 建议与实际文件互相验证"},{heading:"设计价值",content:"更快从“发现问题”切换到“查看证据”"},{heading:"设计价值",content:"更容易把过程整理为对外输出的说明"},{heading:"适合的场景",content:"分析结果复核"},{heading:"适合的场景",content:"结果整理与说明撰写"},{heading:"适合的场景",content:"项目巡检"},{heading:"适合的场景",content:"多文件协同理解"}],headings:[{id:"文件查看为什么重要",content:"文件查看为什么重要"},{id:"常见查看对象",content:"常见查看对象"},{id:"设计价值",content:"设计价值"},{id:"适合的场景",content:"适合的场景"}]},h=[{depth:2,url:"#文件查看为什么重要",title:(0,d.jsx)(d.Fragment,{children:"文件查看为什么重要"})},{depth:2,url:"#常见查看对象",title:(0,d.jsx)(d.Fragment,{children:"常见查看对象"})},{depth:2,url:"#设计价值",title:(0,d.jsx)(d.Fragment,{children:"设计价值"})},{depth:2,url:"#适合的场景",title:(0,d.jsx)(d.Fragment,{children:"适合的场景"})}];function i(a){let b={h2:"h2",li:"li",p:"p",ul:"ul",...a.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(b.h2,{id:"文件查看为什么重要",children:"文件查看为什么重要"}),"\n",(0,d.jsx)(b.p,{children:"许多真实任务并不是“问一个问题就结束”,而是需要反复查看文件、结果与中间产物。"}),"\n",(0,d.jsx)(b.p,{children:"annodex 因此强调文件与结果的同屏查看能力。"}),"\n",(0,d.jsx)(b.h2,{id:"常见查看对象",children:"常见查看对象"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"代码文件"}),"\n",(0,d.jsx)(b.li,{children:"Markdown 文档"}),"\n",(0,d.jsx)(b.li,{children:"图片"}),"\n",(0,d.jsx)(b.li,{children:"PDF"}),"\n",(0,d.jsx)(b.li,{children:"表格"}),"\n",(0,d.jsx)(b.li,{children:"生成的结果产物"}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"设计价值",children:"设计价值"}),"\n",(0,d.jsx)(b.p,{children:"当聊天、文件与结果产物分离时,用户会不断丢失上下文。"}),"\n",(0,d.jsx)(b.p,{children:"而把它们放在同一工作区中,可以:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"让 agent 建议与实际文件互相验证"}),"\n",(0,d.jsx)(b.li,{children:"更快从“发现问题”切换到“查看证据”"}),"\n",(0,d.jsx)(b.li,{children:"更容易把过程整理为对外输出的说明"}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"适合的场景",children:"适合的场景"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"分析结果复核"}),"\n",(0,d.jsx)(b.li,{children:"结果整理与说明撰写"}),"\n",(0,d.jsx)(b.li,{children:"项目巡检"}),"\n",(0,d.jsx)(b.li,{children:"多文件协同理解"}),"\n"]})]})}function j(a={}){let{wrapper:b}=a.components||{};return b?(0,d.jsx)(b,{...a,children:(0,d.jsx)(i,{...a})}):i(a)}},82704:()=>{},83257:(a,b,c)=>{"use strict";c.d(b,{H:()=>j,K:()=>k});var d=c(96862),e=c(19598),f=c(89817),g=c(80477),h=c(48249),i=c(29813);function j({hideIfDisabled:a,size:b="icon-sm",color:c="ghost",...k}){let{setOpenSearch:l,enabled:m}=(0,g.$A)(),n=(0,f.c3)();return a&&!m?null:(0,h.jsx)("button",{type:"button",className:(0,d.QP)((0,e.r)({size:b,color:c}),k.className),"data-search":"","aria-label":n.searchOpen,onClick:()=>{l(!0)},children:(0,h.jsx)(i.A,{})})}function k({hideIfDisabled:a,...b}){let{enabled:c,hotKey:e,setOpenSearch:j}=(0,g.$A)(),l=(0,f.c3)();return a&&!c?null:(0,h.jsxs)("button",{type:"button","data-search-full":"",...b,className:(0,d.QP)("inline-flex items-center gap-2 rounded-lg border bg-fd-secondary/50 p-1.5 ps-2 text-sm text-fd-muted-foreground transition-colors hover:bg-fd-accent hover:text-fd-accent-foreground",b.className),onClick:()=>{j(!0)},children:[(0,h.jsx)(i.A,{className:"size-4"}),l.search,(0,h.jsx)("div",{className:"ms-auto inline-flex gap-0.5",children:e.map((a,b)=>(0,h.jsx)("kbd",{className:"rounded-md border bg-fd-background px-1.5",children:a.display},b))})]})}},85759:(a,b,c)=>{"use strict";c.d(b,{LayoutBody:()=>Y,useDocsLayout:()=>X,b:()=>W});var d=c(96862),e=c(66593),f=c(60791),g=c(70358),h=c(65936),i=c(19598),j=c(29973),k=c(58760),l=c(83257),m=c(90558),n=c(69532),o=c(51078),p=c(8423),q=c(84124),r=c(48249),s=c(64686);let t=(0,s.A)("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]),u=(0,s.A)("languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]);var w=c(69627);let x=(0,s.A)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var y=c(35471),z=c(6822),A=c(67484);let B=(0,z.F)("relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{link:"transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors",button:"transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none"},highlight:{true:"data-[active=true]:before:content-[''] data-[active=true]:before:bg-fd-primary data-[active=true]:before:absolute data-[active=true]:before:w-px data-[active=true]:before:inset-y-2.5 data-[active=true]:before:inset-s-2.5"}}}),{useSidebar:C}=m.eY;function D(a){return(0,r.jsx)(m.GB,{...a})}function E({footer:a,banner:b,collapsible:c=!0,components:e,...g}){let{menuItems:h,slots:j,props:{tabs:k,nav:l,tabMode:n}}=X(),o=h.filter(a=>"icon"===a.type),p=(0,r.jsxs)(m.dw,{children:[h.filter(a=>"icon"!==a.type).map((a,b,c)=>(0,r.jsx)(R,{item:a,className:(0,d.QP)(b===c.length-1&&"mb-4")},b)),(0,r.jsx)(Q,{...e})]});return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(I,{...g,children:[(0,r.jsxs)("div",{className:"flex flex-col gap-3 p-4 pb-2",children:[(0,r.jsxs)("div",{className:"flex",children:[j.navTitle&&(0,r.jsx)(j.navTitle,{className:"inline-flex text-[0.9375rem] items-center gap-2.5 font-medium me-auto"}),l?.children,c&&(0,r.jsx)(G,{className:(0,d.QP)((0,i.r)({color:"ghost",size:"icon-sm",className:"mb-auto text-fd-muted-foreground"})),children:(0,r.jsx)(t,{})})]}),j.searchTrigger&&(0,r.jsx)(j.searchTrigger.full,{hideIfDisabled:!0}),k.length>0&&"auto"===n&&(0,r.jsx)(O,{tabs:k}),b]}),p,(j.languageSelect||o.length>0||j.themeSwitch||a)&&(0,r.jsxs)("div",{className:"flex flex-col p-4 pt-2",children:[j.languageSelect&&(0,r.jsxs)(j.languageSelect.root,{variant:"secondary",className:"text-fd-muted-foreground text-start justify-start bg-fd-secondary/50 mb-2",children:[(0,r.jsx)(u,{className:"size-4.5"}),(0,r.jsx)(j.languageSelect.text,{}),(0,r.jsx)(w.A,{className:"ms-auto size-3.5"})]}),(0,r.jsxs)("div",{className:"flex text-fd-muted-foreground items-center border bg-fd-secondary/50 p-0.5 pe-0 rounded-lg empty:hidden",children:[o.map((a,b)=>(0,r.jsx)(f.LinkItem,{item:a,className:(0,d.QP)((0,i.r)({size:"icon-sm",color:"ghost"})),"aria-label":a.label,children:a.icon},b)),j.themeSwitch&&(0,r.jsx)(j.themeSwitch,{className:"px-1 py-0 border-y-0 border-e-0 rounded-none ms-auto *:rounded-md"})]}),a]})]}),(0,r.jsxs)(J,{children:[(0,r.jsxs)("div",{className:"flex flex-col gap-3 p-4 pb-2",children:[(0,r.jsxs)("div",{className:"flex text-fd-muted-foreground items-center gap-1.5",children:[(0,r.jsx)("div",{className:"flex flex-1",children:o.map((a,b)=>(0,r.jsx)(f.LinkItem,{item:a,className:(0,d.QP)((0,i.r)({size:"icon-sm",color:"ghost",className:"p-2"})),"aria-label":a.label,children:a.icon},b))}),j.languageSelect&&(0,r.jsxs)(j.languageSelect.root,{children:[(0,r.jsx)(u,{className:"size-4.5"}),(0,r.jsx)(j.languageSelect.text,{})]}),j.themeSwitch&&(0,r.jsx)(j.themeSwitch,{className:"p-0"}),(0,r.jsx)(H,{className:(0,d.QP)((0,i.r)({color:"ghost",size:"icon-sm",className:"p-2"})),children:(0,r.jsx)(t,{})})]}),k.length>0&&(0,r.jsx)(O,{tabs:k}),b]}),p,(0,r.jsx)("div",{className:"flex flex-col border-t p-4 pt-2 empty:hidden",children:a})]})]})}function F(a){return(0,r.jsx)(m.L_,{...a})}function G(a){return(0,r.jsx)(m.q4,{...a})}function H(a){return(0,r.jsx)(m.x2,{...a})}function I({ref:a,className:b,children:c,...e}){let f=(0,A.useRef)(null);return(0,r.jsx)(m.Yv,{children:({collapsed:g,hovered:h,ref:k,...n})=>(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{"data-sidebar-placeholder":"",className:"sticky top-(--fd-docs-row-1) z-20 [grid-area:sidebar] pointer-events-none *:pointer-events-auto h-[calc(var(--fd-docs-height)-var(--fd-docs-row-1))] md:layout:[--fd-sidebar-width:268px] max-md:hidden",children:[g&&(0,r.jsx)("div",{className:"absolute inset-s-0 inset-y-0 w-4",...n}),(0,r.jsx)("aside",{id:"nd-sidebar",ref:(0,j.P)(f,a,k),"data-collapsed":g,"data-hovered":g&&h,className:(0,d.QP)("absolute flex flex-col w-full inset-s-0 inset-y-0 items-end bg-fd-card text-sm border-e duration-250 *:w-(--fd-sidebar-width)",g&&["inset-y-2 rounded-xl transition-transform border w-(--fd-sidebar-width)",h?"shadow-lg translate-x-2 rtl:-translate-x-2":"-translate-x-(--fd-sidebar-width) rtl:translate-x-full"],f.current&&"true"===f.current.getAttribute("data-collapsed")!==g&&"transition-[width,inset-block,translate,background-color]",b),...e,...n,children:c})]}),(0,r.jsxs)("div",{"data-sidebar-panel":"",className:(0,d.QP)("fixed flex top-[calc(--spacing(4)+var(--fd-docs-row-3))] inset-s-4 shadow-lg transition-opacity rounded-xl p-0.5 border bg-fd-muted text-fd-muted-foreground z-10",(!g||h)&&"pointer-events-none opacity-0"),children:[(0,r.jsx)(m.q4,{className:(0,d.QP)((0,i.r)({color:"ghost",size:"icon-sm",className:"rounded-lg"})),children:(0,r.jsx)(t,{})}),(0,r.jsx)(l.H,{className:"rounded-lg",hideIfDisabled:!0})]})]})})}function J({children:a,className:b,...c}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(m.se,{className:"fixed z-40 inset-0 backdrop-blur-xs data-[state=open]:animate-fd-fade-in data-[state=closed]:animate-fd-fade-out"}),(0,r.jsx)(m.BV,{className:(0,d.QP)("fixed text-[0.9375rem] flex flex-col shadow-lg border-s inset-e-0 inset-y-0 w-[85%] max-w-[380px] z-40 bg-fd-background data-[state=open]:animate-fd-sidebar-in data-[state=closed]:animate-fd-sidebar-out",b),...c,children:a})]})}function K({className:a,style:b,children:c,...e}){let f=(0,m.zb)();return(0,r.jsx)(m.uk,{className:(0,d.QP)(B({variant:"link",highlight:f>=1}),a),style:{paddingInlineStart:P(f),...b},...e,children:c})}function L({className:a,style:b,...c}){let{depth:e,collapsible:f}=(0,m.a4)();return(0,r.jsx)(m.Bk,{className:(0,d.QP)(B({variant:f?"button":null}),"w-full",a),style:{paddingInlineStart:P(e-1),...b},...c,children:c.children})}function M({className:a,style:b,...c}){let e=(0,m.zb)();return(0,r.jsx)(m.dJ,{className:(0,d.QP)(B({variant:"link",highlight:e>1}),"w-full",a),style:{paddingInlineStart:P(e-1),...b},...c,children:c.children})}function N({className:a,children:b,...c}){return(0,r.jsx)(m.SG,{className:(0,d.QP)("relative",1===(0,m.zb)()&&"before:content-[''] before:absolute before:w-px before:inset-y-1 before:bg-fd-border before:inset-s-2.5",a),...c,children:(0,r.jsx)("div",{className:"flex flex-col gap-0.5 pt-0.5",children:b})})}function O({tabs:a,placeholder:b,...c}){let[e,f]=(0,A.useState)(!1),{closeOnRedirect:h}=C(),i=(0,q.a8)(),j=(0,A.useMemo)(()=>a.findLast(a=>(0,g.So)(a,i)),[a,i]),l=()=>{h.current=!1,f(!1)},m=j?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"size-9 shrink-0 empty:hidden md:size-5",children:j.icon}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium",children:j.title}),(0,r.jsx)("p",{className:"text-sm text-fd-muted-foreground empty:hidden md:hidden",children:j.description})]})]}):b;return(0,r.jsxs)(k.AM,{open:e,onOpenChange:f,children:[m&&(0,r.jsxs)(k.Wv,{...c,className:(0,d.QP)("flex items-center gap-2 rounded-lg p-2 border bg-fd-secondary/50 text-start text-fd-secondary-foreground transition-colors hover:bg-fd-accent data-[state=open]:bg-fd-accent data-[state=open]:text-fd-accent-foreground",c.className),children:[m,(0,r.jsx)(x,{className:"shrink-0 ms-auto size-4 text-fd-muted-foreground"})]}),(0,r.jsx)(k.hl,{className:"flex flex-col gap-1 w-(--radix-popover-trigger-width) p-1 fd-scroll-container",children:a.map(a=>{let b=j&&a.url===j.url;if(b||!a.unlisted)return(0,r.jsxs)(p.default,{href:a.url,onClick:l,...a.props,className:(0,d.QP)("flex items-center gap-2 rounded-lg p-1.5 hover:bg-fd-accent hover:text-fd-accent-foreground",a.props?.className),children:[(0,r.jsx)("div",{className:"shrink-0 size-9 md:mb-auto md:size-5 empty:hidden",children:a.icon}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium leading-none",children:a.title}),(0,r.jsx)("p",{className:"text-[0.8125rem] text-fd-muted-foreground mt-1 empty:hidden",children:a.description})]}),(0,r.jsx)(y.A,{className:(0,d.QP)("shrink-0 ms-auto size-3.5 text-fd-primary",!b&&"invisible")})]},a.url)})})]})}function P(a){return`calc(${2+3*a} * var(--spacing))`}let Q=(0,n.B)({SidebarFolder:F,SidebarFolderContent:N,SidebarFolderLink:M,SidebarFolderTrigger:L,SidebarItem:K,SidebarSeparator:function({className:a,style:b,children:c,...e}){let f=(0,m.zb)();return(0,r.jsx)(m.GX,{className:(0,d.QP)("inline-flex items-center gap-2 mb-1 px-2 mt-6 empty:mb-0 [&_svg]:size-4 [&_svg]:shrink-0",0===f&&"first:mt-0",a),style:{paddingInlineStart:P(f),...b},...e,children:c})}}),R=(0,o.L)({SidebarFolder:F,SidebarFolderContent:N,SidebarFolderLink:M,SidebarFolderTrigger:L,SidebarItem:K});function S(a){let{isNavTransparent:b,slots:c,props:{nav:e}}=X();return e?.component?e.component:(0,r.jsxs)("header",{id:"nd-subnav","data-transparent":b,...a,className:(0,d.QP)("[grid-area:header] sticky top-(--fd-docs-row-1) z-30 flex items-center ps-4 pe-2.5 border-b transition-colors backdrop-blur-sm h-(--fd-header-height) md:hidden max-md:layout:[--fd-header-height:--spacing(14)] data-[transparent=false]:bg-fd-background/80",a.className),children:[c.navTitle&&(0,r.jsx)(c.navTitle,{className:"inline-flex items-center gap-2.5 font-semibold"}),(0,r.jsx)("div",{className:"flex-1",children:e?.children}),c.searchTrigger&&(0,r.jsx)(c.searchTrigger.sm,{hideIfDisabled:!0,className:"p-2"}),c.sidebar&&(0,r.jsx)(c.sidebar.trigger,{className:(0,d.QP)((0,i.r)({color:"ghost",size:"icon-sm",className:"p-2"})),children:(0,r.jsx)(t,{})})]})}function T(a){let{slots:b}=X(),{collapsed:c}=b.sidebar.useSidebar(),[e,f]=(0,A.useState)(c),g=e!==c;return(0,r.jsx)("div",{id:"nd-docs-layout","data-sidebar-collapsed":c,"data-column-changed":g,...a,style:{gridTemplate:`"sidebar sidebar header toc toc"
|
|
3
|
+
"sidebar sidebar toc-popover toc toc"
|
|
4
|
+
"sidebar sidebar main toc toc" 1fr / minmax(min-content, 1fr) var(--fd-sidebar-col) minmax(0, calc(var(--fd-layout-width,97rem) - var(--fd-sidebar-width) - var(--fd-toc-width))) var(--fd-toc-width) minmax(min-content, 1fr)`,"--fd-docs-row-1":"var(--fd-banner-height, 0px)","--fd-docs-row-2":"calc(var(--fd-docs-row-1) + var(--fd-header-height))","--fd-docs-row-3":"calc(var(--fd-docs-row-2) + var(--fd-toc-popover-height))","--fd-sidebar-col":c?"0px":"var(--fd-sidebar-width)",...a.style},className:(0,d.QP)("grid overflow-x-clip min-h-(--fd-docs-height) [--fd-docs-height:100dvh] [--fd-header-height:0px] [--fd-toc-popover-height:0px] [--fd-sidebar-width:0px] [--fd-toc-width:0px] data-[column-changed=true]:transition-[grid-template-columns]",a.className),children:a.children})}c(14114);let{useProvider:U}=(0,f.baseSlots)({useProps:()=>X().props}),V=(0,A.createContext)(null);function W(){return null!==(0,A.use)(V)}function X(){let a=(0,A.use)(V);if(!a)throw Error("Please use <DocsPage /> (`fumadocs-ui/layouts/docs/page`) under <DocsLayout /> (`fumadocs-ui/layouts/docs`).");return a}function Y(a){let{nav:{enabled:b=!0,transparentMode:c="none"}={},sidebar:{enabled:d=!0,defaultOpenLevel:f,prefetch:i,...j}={},slots:k,tabs:l,tabMode:m="auto",tree:n,containerProps:o,children:p}=a,q=(0,h.u)({enabled:"top"===c})??!0,{baseSlots:s,baseProps:t}=U(a),u=(0,g.u2)(a),w={...s,header:k?.header??S,container:k?.container??T,sidebar:k?.sidebar??{provider:D,root:E,trigger:H,useSidebar:C}};return(0,r.jsx)(e.X3,{tree:n,children:(0,r.jsx)(V,{value:{props:{tabMode:m,tabs:l,...t},isNavTransparent:"top"===c?q:"always"===c,slots:w,...u},children:(0,r.jsx)(w.sidebar.provider,{defaultOpenLevel:f,prefetch:i,children:(0,r.jsxs)(w.container,{...o,children:[b&&(0,r.jsx)(w.header,{}),d&&(0,r.jsx)(w.sidebar.root,{...j}),"top"===m&&l.length>0&&(0,r.jsx)(Z,{tabs:l,className:"z-10 bg-fd-background border-b px-6 pt-3 xl:px-8 max-md:hidden"}),p]})})})})}function Z({tabs:a,...b}){let c=(0,q.a8)(),e=(0,A.useMemo)(()=>a.findLast(a=>(0,g.So)(a,c)),[a,c]);return(0,r.jsx)("div",{...b,className:(0,d.QP)("flex flex-row items-end gap-6 overflow-auto [grid-area:main]",b.className),children:a.map((a,b)=>(0,r.jsx)(p.default,{href:a.url,className:(0,d.QP)("inline-flex border-b-2 border-transparent transition-colors items-center pb-1.5 font-medium gap-2 text-fd-muted-foreground text-sm text-nowrap hover:text-fd-accent-foreground",a.unlisted&&e!==a&&"hidden",e===a&&"border-fd-primary text-fd-primary"),children:a.title},b))})}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89112:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23)),Promise.resolve().then(c.t.bind(c,60440,23)),Promise.resolve().then(c.t.bind(c,84342,23)),Promise.resolve().then(c.t.bind(c,82265,23)),Promise.resolve().then(c.t.bind(c,35421,23)),Promise.resolve().then(c.t.bind(c,61335,23)),Promise.resolve().then(c.t.bind(c,70664,23)),Promise.resolve().then(c.bind(c,74661))},90069:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(64686).A)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]])},90558:(a,b,c)=>{"use strict";c.d(b,{q4:()=>ax,Yv:()=>am,BV:()=>ap,se:()=>ao,L_:()=>as,SG:()=>av,dJ:()=>au,Bk:()=>at,uk:()=>ar,GB:()=>ai,GX:()=>aq,x2:()=>aw,dw:()=>an,eY:()=>af,a4:()=>ak,zb:()=>al});var d=c(19708),e=c(96862),f=c(89817),g=c(73560),h=c(48249),i=c(67484),j=c(36177),k=c(70085),l=c(50307),m=c(58221),n=c(76293),o=c(45433),p=c(69134),q=c(39471),r="ScrollArea",[s,t]=(0,l.A)(r),[u,w]=s(r),x=i.forwardRef((a,b)=>{let{__scopeScrollArea:c,type:d="hover",dir:e,scrollHideDelay:f=600,...g}=a,[k,l]=i.useState(null),[n,p]=i.useState(null),[q,r]=i.useState(null),[s,t]=i.useState(null),[w,x]=i.useState(null),[y,z]=i.useState(0),[A,B]=i.useState(0),[C,D]=i.useState(!1),[E,F]=i.useState(!1),G=(0,m.s)(b,a=>l(a)),H=(0,o.jH)(e);return(0,h.jsx)(u,{scope:c,type:d,dir:H,scrollHideDelay:f,scrollArea:k,viewport:n,onViewportChange:p,content:q,onContentChange:r,scrollbarX:s,onScrollbarXChange:t,scrollbarXEnabled:C,onScrollbarXEnabledChange:D,scrollbarY:w,onScrollbarYChange:x,scrollbarYEnabled:E,onScrollbarYEnabledChange:F,onCornerWidthChange:z,onCornerHeightChange:B,children:(0,h.jsx)(j.sG.div,{dir:H,...g,ref:G,style:{position:"relative","--radix-scroll-area-corner-width":y+"px","--radix-scroll-area-corner-height":A+"px",...a.style}})})});x.displayName=r;var y="ScrollAreaViewport",z=i.forwardRef((a,b)=>{let{__scopeScrollArea:c,children:d,nonce:e,...f}=a,g=w(y,c),k=i.useRef(null),l=(0,m.s)(b,k,g.onViewportChange);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:e}),(0,h.jsx)(j.sG.div,{"data-radix-scroll-area-viewport":"",...f,ref:l,style:{overflowX:g.scrollbarXEnabled?"scroll":"hidden",overflowY:g.scrollbarYEnabled?"scroll":"hidden",...a.style},children:(0,h.jsx)("div",{ref:g.onContentChange,style:{minWidth:"100%",display:"table"},children:d})})]})});z.displayName=y;var A="ScrollAreaScrollbar",B=i.forwardRef((a,b)=>{let{forceMount:c,...d}=a,e=w(A,a.__scopeScrollArea),{onScrollbarXEnabledChange:f,onScrollbarYEnabledChange:g}=e,j="horizontal"===a.orientation;return i.useEffect(()=>(j?f(!0):g(!0),()=>{j?f(!1):g(!1)}),[j,f,g]),"hover"===e.type?(0,h.jsx)(C,{...d,ref:b,forceMount:c}):"scroll"===e.type?(0,h.jsx)(D,{...d,ref:b,forceMount:c}):"auto"===e.type?(0,h.jsx)(E,{...d,ref:b,forceMount:c}):"always"===e.type?(0,h.jsx)(F,{...d,ref:b,"data-state":"visible"}):null});B.displayName=A;var C=i.forwardRef((a,b)=>{let{forceMount:c,...d}=a,e=w(A,a.__scopeScrollArea),[f,g]=i.useState(!1);return i.useEffect(()=>{let a=e.scrollArea,b=0;if(a){let c=()=>{window.clearTimeout(b),g(!0)},d=()=>{b=window.setTimeout(()=>g(!1),e.scrollHideDelay)};return a.addEventListener("pointerenter",c),a.addEventListener("pointerleave",d),()=>{window.clearTimeout(b),a.removeEventListener("pointerenter",c),a.removeEventListener("pointerleave",d)}}},[e.scrollArea,e.scrollHideDelay]),(0,h.jsx)(k.C,{present:c||f,children:(0,h.jsx)(E,{"data-state":f?"visible":"hidden",...d,ref:b})})}),D=i.forwardRef((a,b)=>{var c;let{forceMount:d,...e}=a,f=w(A,a.__scopeScrollArea),g="horizontal"===a.orientation,j=X(()=>m("SCROLL_END"),100),[l,m]=(c={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},i.useReducer((a,b)=>c[a][b]??a,"hidden"));return i.useEffect(()=>{if("idle"===l){let a=window.setTimeout(()=>m("HIDE"),f.scrollHideDelay);return()=>window.clearTimeout(a)}},[l,f.scrollHideDelay,m]),i.useEffect(()=>{let a=f.viewport,b=g?"scrollLeft":"scrollTop";if(a){let c=a[b],d=()=>{let d=a[b];c!==d&&(m("SCROLL"),j()),c=d};return a.addEventListener("scroll",d),()=>a.removeEventListener("scroll",d)}},[f.viewport,g,m,j]),(0,h.jsx)(k.C,{present:d||"hidden"!==l,children:(0,h.jsx)(F,{"data-state":"hidden"===l?"hidden":"visible",...e,ref:b,onPointerEnter:(0,q.mK)(a.onPointerEnter,()=>m("POINTER_ENTER")),onPointerLeave:(0,q.mK)(a.onPointerLeave,()=>m("POINTER_LEAVE"))})})}),E=i.forwardRef((a,b)=>{let c=w(A,a.__scopeScrollArea),{forceMount:d,...e}=a,[f,g]=i.useState(!1),j="horizontal"===a.orientation,l=X(()=>{if(c.viewport){let a=c.viewport.offsetWidth<c.viewport.scrollWidth,b=c.viewport.offsetHeight<c.viewport.scrollHeight;g(j?a:b)}},10);return Y(c.viewport,l),Y(c.content,l),(0,h.jsx)(k.C,{present:d||f,children:(0,h.jsx)(F,{"data-state":f?"visible":"hidden",...e,ref:b})})}),F=i.forwardRef((a,b)=>{let{orientation:c="vertical",...d}=a,e=w(A,a.__scopeScrollArea),f=i.useRef(null),g=i.useRef(0),[j,k]=i.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=S(j.viewport,j.content),m={...d,sizes:j,onSizesChange:k,hasThumb:!!(l>0&&l<1),onThumbChange:a=>f.current=a,onThumbPointerUp:()=>g.current=0,onThumbPointerDown:a=>g.current=a};function n(a,b){return function(a,b,c,d="ltr"){let e=T(c),f=b||e/2,g=c.scrollbar.paddingStart+f,h=c.scrollbar.size-c.scrollbar.paddingEnd-(e-f),i=c.content-c.viewport;return V([g,h],"ltr"===d?[0,i]:[-1*i,0])(a)}(a,g.current,j,b)}return"horizontal"===c?(0,h.jsx)(G,{...m,ref:b,onThumbPositionChange:()=>{if(e.viewport&&f.current){let a=U(e.viewport.scrollLeft,j,e.dir);f.current.style.transform=`translate3d(${a}px, 0, 0)`}},onWheelScroll:a=>{e.viewport&&(e.viewport.scrollLeft=a)},onDragScroll:a=>{e.viewport&&(e.viewport.scrollLeft=n(a,e.dir))}}):"vertical"===c?(0,h.jsx)(H,{...m,ref:b,onThumbPositionChange:()=>{if(e.viewport&&f.current){let a=U(e.viewport.scrollTop,j);f.current.style.transform=`translate3d(0, ${a}px, 0)`}},onWheelScroll:a=>{e.viewport&&(e.viewport.scrollTop=a)},onDragScroll:a=>{e.viewport&&(e.viewport.scrollTop=n(a))}}):null}),G=i.forwardRef((a,b)=>{let{sizes:c,onSizesChange:d,...e}=a,f=w(A,a.__scopeScrollArea),[g,j]=i.useState(),k=i.useRef(null),l=(0,m.s)(b,k,f.onScrollbarXChange);return i.useEffect(()=>{k.current&&j(getComputedStyle(k.current))},[k]),(0,h.jsx)(K,{"data-orientation":"horizontal",...e,ref:l,sizes:c,style:{bottom:0,left:"rtl"===f.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===f.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":T(c)+"px",...a.style},onThumbPointerDown:b=>a.onThumbPointerDown(b.x),onDragScroll:b=>a.onDragScroll(b.x),onWheelScroll:(b,c)=>{if(f.viewport){var d,e;let g=f.viewport.scrollLeft+b.deltaX;a.onWheelScroll(g),d=g,e=c,d>0&&d<e&&b.preventDefault()}},onResize:()=>{k.current&&f.viewport&&g&&d({content:f.viewport.scrollWidth,viewport:f.viewport.offsetWidth,scrollbar:{size:k.current.clientWidth,paddingStart:R(g.paddingLeft),paddingEnd:R(g.paddingRight)}})}})}),H=i.forwardRef((a,b)=>{let{sizes:c,onSizesChange:d,...e}=a,f=w(A,a.__scopeScrollArea),[g,j]=i.useState(),k=i.useRef(null),l=(0,m.s)(b,k,f.onScrollbarYChange);return i.useEffect(()=>{k.current&&j(getComputedStyle(k.current))},[k]),(0,h.jsx)(K,{"data-orientation":"vertical",...e,ref:l,sizes:c,style:{top:0,right:"ltr"===f.dir?0:void 0,left:"rtl"===f.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":T(c)+"px",...a.style},onThumbPointerDown:b=>a.onThumbPointerDown(b.y),onDragScroll:b=>a.onDragScroll(b.y),onWheelScroll:(b,c)=>{if(f.viewport){var d,e;let g=f.viewport.scrollTop+b.deltaY;a.onWheelScroll(g),d=g,e=c,d>0&&d<e&&b.preventDefault()}},onResize:()=>{k.current&&f.viewport&&g&&d({content:f.viewport.scrollHeight,viewport:f.viewport.offsetHeight,scrollbar:{size:k.current.clientHeight,paddingStart:R(g.paddingTop),paddingEnd:R(g.paddingBottom)}})}})}),[I,J]=s(A),K=i.forwardRef((a,b)=>{let{__scopeScrollArea:c,sizes:d,hasThumb:e,onThumbChange:f,onThumbPointerUp:g,onThumbPointerDown:k,onThumbPositionChange:l,onDragScroll:o,onWheelScroll:p,onResize:r,...s}=a,t=w(A,c),[u,x]=i.useState(null),y=(0,m.s)(b,a=>x(a)),z=i.useRef(null),B=i.useRef(""),C=t.viewport,D=d.content-d.viewport,E=(0,n.c)(p),F=(0,n.c)(l),G=X(r,10);function H(a){z.current&&o({x:a.clientX-z.current.left,y:a.clientY-z.current.top})}return i.useEffect(()=>{let a=a=>{let b=a.target;u?.contains(b)&&E(a,D)};return document.addEventListener("wheel",a,{passive:!1}),()=>document.removeEventListener("wheel",a,{passive:!1})},[C,u,D,E]),i.useEffect(F,[d,F]),Y(u,G),Y(t.content,G),(0,h.jsx)(I,{scope:c,scrollbar:u,hasThumb:e,onThumbChange:(0,n.c)(f),onThumbPointerUp:(0,n.c)(g),onThumbPositionChange:F,onThumbPointerDown:(0,n.c)(k),children:(0,h.jsx)(j.sG.div,{...s,ref:y,style:{position:"absolute",...s.style},onPointerDown:(0,q.mK)(a.onPointerDown,a=>{0===a.button&&(a.target.setPointerCapture(a.pointerId),z.current=u.getBoundingClientRect(),B.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",t.viewport&&(t.viewport.style.scrollBehavior="auto"),H(a))}),onPointerMove:(0,q.mK)(a.onPointerMove,H),onPointerUp:(0,q.mK)(a.onPointerUp,a=>{let b=a.target;b.hasPointerCapture(a.pointerId)&&b.releasePointerCapture(a.pointerId),document.body.style.webkitUserSelect=B.current,t.viewport&&(t.viewport.style.scrollBehavior=""),z.current=null})})})}),L="ScrollAreaThumb",M=i.forwardRef((a,b)=>{let{forceMount:c,...d}=a,e=J(L,a.__scopeScrollArea);return(0,h.jsx)(k.C,{present:c||e.hasThumb,children:(0,h.jsx)(N,{ref:b,...d})})}),N=i.forwardRef((a,b)=>{let{__scopeScrollArea:c,style:d,...e}=a,f=w(L,c),g=J(L,c),{onThumbPositionChange:k}=g,l=(0,m.s)(b,a=>g.onThumbChange(a)),n=i.useRef(void 0),o=X(()=>{n.current&&(n.current(),n.current=void 0)},100);return i.useEffect(()=>{let a=f.viewport;if(a){let b=()=>{o(),n.current||(n.current=W(a,k),k())};return k(),a.addEventListener("scroll",b),()=>a.removeEventListener("scroll",b)}},[f.viewport,o,k]),(0,h.jsx)(j.sG.div,{"data-state":g.hasThumb?"visible":"hidden",...e,ref:l,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...d},onPointerDownCapture:(0,q.mK)(a.onPointerDownCapture,a=>{let b=a.target.getBoundingClientRect(),c=a.clientX-b.left,d=a.clientY-b.top;g.onThumbPointerDown({x:c,y:d})}),onPointerUp:(0,q.mK)(a.onPointerUp,g.onThumbPointerUp)})});M.displayName=L;var O="ScrollAreaCorner",P=i.forwardRef((a,b)=>{let c=w(O,a.__scopeScrollArea),d=!!(c.scrollbarX&&c.scrollbarY);return"scroll"!==c.type&&d?(0,h.jsx)(Q,{...a,ref:b}):null});P.displayName=O;var Q=i.forwardRef((a,b)=>{let{__scopeScrollArea:c,...d}=a,e=w(O,c),[f,g]=i.useState(0),[k,l]=i.useState(0),m=!!(f&&k);return Y(e.scrollbarX,()=>{let a=e.scrollbarX?.offsetHeight||0;e.onCornerHeightChange(a),l(a)}),Y(e.scrollbarY,()=>{let a=e.scrollbarY?.offsetWidth||0;e.onCornerWidthChange(a),g(a)}),m?(0,h.jsx)(j.sG.div,{...d,ref:b,style:{width:f,height:k,position:"absolute",right:"ltr"===e.dir?0:void 0,left:"rtl"===e.dir?0:void 0,bottom:0,...a.style}}):null});function R(a){return a?parseInt(a,10):0}function S(a,b){let c=a/b;return isNaN(c)?0:c}function T(a){let b=S(a.viewport,a.content),c=a.scrollbar.paddingStart+a.scrollbar.paddingEnd;return Math.max((a.scrollbar.size-c)*b,18)}function U(a,b,c="ltr"){let d=T(b),e=b.scrollbar.paddingStart+b.scrollbar.paddingEnd,f=b.scrollbar.size-e,g=b.content-b.viewport,h=function(a,[b,c]){return Math.min(c,Math.max(b,a))}(a,"ltr"===c?[0,g]:[-1*g,0]);return V([0,g],[0,f-d])(h)}function V(a,b){return c=>{if(a[0]===a[1]||b[0]===b[1])return b[0];let d=(b[1]-b[0])/(a[1]-a[0]);return b[0]+d*(c-a[0])}}var W=(a,b=()=>{})=>{let c={left:a.scrollLeft,top:a.scrollTop},d=0;return!function e(){let f={left:a.scrollLeft,top:a.scrollTop},g=c.left!==f.left,h=c.top!==f.top;(g||h)&&b(),c=f,d=window.requestAnimationFrame(e)}(),()=>window.cancelAnimationFrame(d)};function X(a,b){let c=(0,n.c)(a),d=i.useRef(0);return i.useEffect(()=>()=>window.clearTimeout(d.current),[]),i.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(c,b)},[c,b])}function Y(a,b){let c=(0,n.c)(b);(0,p.N)(()=>{let b=0;if(a){let d=new ResizeObserver(()=>{cancelAnimationFrame(b),b=window.requestAnimationFrame(c)});return d.observe(a),()=>{window.cancelAnimationFrame(b),d.unobserve(a)}}},[a,c])}function Z({className:a,children:b,...c}){return(0,h.jsxs)(x,{type:"scroll",className:(0,e.QP)("overflow-hidden",a),...c,children:[b,(0,h.jsx)(P,{}),(0,h.jsx)(_,{orientation:"vertical"})]})}function $({className:a,children:b,...c}){return(0,h.jsx)(z,{className:(0,e.QP)("size-full rounded-[inherit]",a),...c,children:b})}function _({className:a,orientation:b="vertical",...c}){return(0,h.jsx)(B,{orientation:b,className:(0,e.QP)("flex select-none data-[state=hidden]:animate-fd-fade-out","vertical"===b&&"h-full w-1.5","horizontal"===b&&"h-1.5 flex-col",a),...c,children:(0,h.jsx)(M,{className:"relative flex-1 rounded-full bg-fd-border"})})}var aa=c(8423),ab=c(84124),ac=c(90069),ad=c(69627),ae=c(50911);c(34856);var af=(0,d.I)({SidebarCollapseTrigger:()=>ax,SidebarContent:()=>am,SidebarDrawerContent:()=>ap,SidebarDrawerOverlay:()=>ao,SidebarFolder:()=>as,SidebarFolderContent:()=>av,SidebarFolderLink:()=>au,SidebarFolderTrigger:()=>at,SidebarItem:()=>ar,SidebarProvider:()=>ai,SidebarSeparator:()=>aq,SidebarTrigger:()=>aw,SidebarViewport:()=>an,useAutoScroll:()=>ay,useFolder:()=>ak,useFolderDepth:()=>al,useSidebar:()=>aj});let ag=(0,i.createContext)(null),ah=(0,i.createContext)(null);function ai({defaultOpenLevel:a=0,prefetch:b,children:c}){let d=(0,i.useRef)(!0),[e,f]=(0,i.useState)(!1),[g,j]=(0,i.useState)(!1),k=(0,ab.a8)(),l=!function(a,b=!1){let[c,d]=(0,i.useState)(null);return(0,i.useEffect)(()=>{if(b)return;let c=window.matchMedia(a),e=()=>{d(c.matches)};return e(),c.addEventListener("change",e),()=>{c.removeEventListener("change",e)}},[b,a]),c}("(width < 768px)")?"full":"drawer";return(0,ae.T)(k,()=>{d.current&&f(!1),d.current=!0}),(0,h.jsx)(ag,{value:(0,i.useMemo)(()=>({open:e,setOpen:f,collapsed:g,setCollapsed:j,closeOnRedirect:d,defaultOpenLevel:a,prefetch:b,mode:l}),[e,g,a,b,l]),children:c})}function aj(){let a=(0,i.use)(ag);if(!a)throw Error("Missing SidebarContext, make sure you have wrapped the component in <DocsLayout /> and the context is available.");return a}function ak(){return(0,i.use)(ah)}function al(){return(0,i.use)(ah)?.depth??0}function am({mode:a="full",children:b}){let{collapsed:c,mode:d}=aj(),[e,f]=(0,i.useState)(!1),g=(0,i.useRef)(null),h=(0,i.useRef)(0);if((0,ae.T)(c,()=>{c&&f(!1)}),!0===a||a===d)return b({ref:g,collapsed:c,hovered:e,onPointerEnter(a){j(a)||(window.clearTimeout(h.current),f(!0))},onPointerLeave(a){j(a)||(window.clearTimeout(h.current),h.current=window.setTimeout(()=>f(!1),Math.min(a.clientX,document.body.clientWidth-a.clientX)>100?0:500))}});function j(a){let b=g.current;return!b||!c||"touch"===a.pointerType||b.getAnimations().length>0}}function an({area:a,viewport:b,children:c}){return(0,h.jsx)(Z,{...a,className:(0,e.QP)("min-h-0 flex-1",a?.className),children:(0,h.jsx)($,{...b,className:(0,e.QP)("*:flex! *:flex-col! *:gap-0.5! p-4 overscroll-contain mask-[linear-gradient(to_bottom,transparent,white_12px,white_calc(100%-12px),transparent)]",b?.className),children:c})})}function ao(a){let{open:b,setOpen:c,mode:d}=aj();if("drawer"===d)return(0,h.jsx)(k.C,{present:b,children:(0,h.jsx)("div",{"data-state":b?"open":"closed",onClick:()=>c(!1),...a})})}function ap({className:a,children:b,...c}){let{open:d,mode:f}=aj(),g=d?"open":"closed";if("drawer"===f)return(0,h.jsx)(k.C,{present:d,children:({present:d})=>(0,h.jsx)("aside",{id:"nd-sidebar-mobile","data-state":g,className:(0,e.QP)(!d&&"invisible",a),...c,children:b})})}function aq(a){return(0,h.jsx)("p",{...a})}function ar({icon:a,active:b=!1,children:c,...d}){let e=(0,i.useRef)(null),{prefetch:f}=aj();return ay(b,e),(0,h.jsxs)(aa.default,{ref:e,"data-active":b,prefetch:f,...d,children:[a??(d.external?(0,h.jsx)(ac.A,{}):null),c]})}function as({defaultOpen:a,collapsible:b=!0,active:c=!1,children:d,...e}){let{defaultOpenLevel:f}=aj(),j=al()+1,k=!1===b||c||(a??f>=j),[l,m]=(0,i.useState)(k);return(0,ae.T)(k,a=>{a&&m(a)}),(0,h.jsx)(g.Nt,{open:l,onOpenChange:m,disabled:!b,...e,children:(0,h.jsx)(ah,{value:(0,i.useMemo)(()=>({open:l,setOpen:m,depth:j,collapsible:b}),[b,j,l]),children:d})})}function at({children:a,...b}){let{open:c,collapsible:d}=(0,i.use)(ah);return d?(0,h.jsxs)(g.R6,{...b,children:[a,(0,h.jsx)(ad.A,{"data-icon":!0,className:(0,e.QP)("ms-auto transition-transform",!c&&"-rotate-90 rtl:rotate-90")})]}):(0,h.jsx)("div",{...b,children:a})}function au({children:a,active:b=!1,...c}){let d=(0,i.useRef)(null),{open:f,setOpen:g,collapsible:j}=(0,i.use)(ah),{prefetch:k}=aj();return ay(b,d),(0,h.jsxs)(aa.default,{ref:d,"data-active":b,onClick:a=>{j&&(a.target instanceof Element&&a.target.matches("[data-icon], [data-icon] *")?(g(!f),a.preventDefault()):g(!b||!f))},prefetch:k,...c,children:[a,j&&(0,h.jsx)(ad.A,{"data-icon":!0,className:(0,e.QP)("ms-auto transition-transform",!f&&"-rotate-90 rtl:rotate-90")})]})}function av(a){return(0,h.jsx)(g.Ke,{...a,children:a.children})}function aw({children:a,...b}){let{setOpen:c}=aj();return(0,h.jsx)("button",{"aria-label":(0,f.c3)().sidebarOpen,onClick:()=>c(a=>!a),...b,children:a})}function ax(a){let{collapsed:b,setCollapsed:c}=aj();return(0,h.jsx)("button",{type:"button","aria-label":(0,f.c3)().sidebarCollapse,"data-collapsed":b,onClick:()=>{c(a=>!a)},...a,children:a.children})}function ay(a,b){let{mode:c}=aj()}},91970:(a,b,c)=>{"use strict";var d=c(66610);c.o(d,"notFound")&&c.d(b,{notFound:function(){return d.notFound}})},92606:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"forbidden",{enumerable:!0,get:function(){return d}}),c(7638).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},93442:(a,b,c)=>{"use strict";c.d(b,{wG:()=>A});function d(a,b){let c=a.lastIndexOf("/");return a.substring(-1===c?0:c+1,b?a.length-b.length:a.length)}function e(a){for(let b=a.length-1;b>=0;b--){let c=a[b];if("."===c)return a.substring(b);if("/"===c)break}return""}function f(a){let b=a.lastIndexOf("/");return -1===b?"":a.substring(0,b)}function g(...a){let b=[];for(let c of a)for(let a of c.split("/"))switch(a){case"..":b.pop();break;case"":case".":break;default:b.push(a)}return b.join("/")}function h(a){let b=a.split(/\/|\\/).filter(a=>a.length>0);if("."===b[0]||".."===b[0])throw Error("It must not start with './' or '../'");return b.join("/")}Object.prototype.hasOwnProperty;var i=c(50723);let j=/^\(.+\)$/;function k(a){let b=f(a),c=d(a,e(a)),g=[];for(let a of b.split("/"))a.length>0&&!j.test(a)&&g.push(encodeURI(a));if(j.test(c))throw Error(`Cannot use folder group in file names: ${a}`);return"index"!==c&&g.push(encodeURI(c)),g}var l=c(76760),m=class{constructor(a){if(this.files=new Map,this.folders=new Map,a){for(const[b,c]of a.folders)this.folders.set(b,c);for(const[b,c]of a.files)this.files.set(b,c)}else this.folders.set("",[])}read(a){return this.files.get(a)}readDir(a){return this.folders.get(a)}write(a,b){if(!this.files.has(a)){let b=f(a);this.makeDir(b),this.readDir(b)?.push(a)}this.files.set(a,b)}delete(a,b=!1){if(this.files.delete(a))return!0;if(b){let b=this.folders.get(a);if(!b)return!1;for(let c of(this.folders.delete(a),b))this.delete(c);return!0}return!1}getFiles(){return Array.from(this.files.keys())}makeDir(a){let b=[],c="";for(let d of a.split("/")){b.push(d);let a=b.join("/");this.folders.has(a)||(this.folders.set(a,[]),this.folders.get(c).push(a)),c=a}}};let n=Symbol();function o(a){let b,{input:c,plugins:d,i18n:e}=a;if(e)if("dir"===e.parser){let a=new Set(e.languages);b=b=>{let[c,...d]=b.split("/");return c&&0!==d.length?a.has(c)?[d.join("/"),c]:"$"===c?[d.join("/"),e.languages]:[b]:[b]}}else{let a=new Set(e.languages);b=b=>{let c=b.split("/"),d=c.pop();if(!d)return[b];let f=d.split(".");if(f.length<3)return[b];let[g]=f.splice(f.length-2,1);return(c.push(f.join(".")),a.has(g))?[c.join("/"),g]:"$"===g?[c.join("/"),e.languages]:[b]}}else b=a=>[a];let f=new Map;function g(a,c){for(let d of c.files){let c;c="page"===d.type?{format:"page",type:a,path:h(d.path),slugs:d.slugs,data:d.data,absolutePath:d.absolutePath}:{format:"meta",type:a,path:h(d.path),absolutePath:d.absolutePath,data:d.data};let[g,i=e?e.defaultLanguage:n]=b(c.path),j=[g,c];if(Array.isArray(i))for(let a of i)p(f,a,j);else p(f,i,j)}}if("files"in c&&Array.isArray(c.files))g(void 0,c);else for(let a in c)g(a,c[a]);function i(a,b){let c=new m(b);for(let[b,d]of f.get(a)??[])c.write(b,d);let e={storage:c};for(let a of d)a.transformStorage?.(e);return c}return{i18n(){let a={};if(!e)return a;let b=null!==e.fallbackLanguage?e.fallbackLanguage??e.defaultLanguage:null;for(let c of e.languages)!function c(d){return a[d]?a[d]:a[d]=i(d,b&&b!==d?c(b):void 0)}(c);return a},single:()=>i(n)}}function p(a,b,c){let d=a.get(b);d||(d=[],a.set(b,d)),d.push(c)}let q=/^\((?<name>.+)\)$/,r=/^(?<external>external:)?(?:\[(?<icon>[^\]]+)])?\[(?<name>[^\]]+)]\((?<url>[^)]+)\)$/,s=/^---(?:\[(?<icon>[^\]]+)])?(?<name>.+)---|^---$/,t="z...a",u=Symbol("unfinished"),w=Symbol("name"),x=Symbol("owner");function y(a,b){let c,f=new Map,h=[],i=new Map,j=0,{noRef:k=!1,idPrefix:l,url:n,generateFallback:o=!0,sort:{by:p="path",locales:A,options:B}={}}=b;if(b.transformers&&h.push(...b.transformers),o&&h.push(function(){let a=new Set;function b(a){return a.custom?._fallback===!0}return{root(c){if(b(this))return c;let d=new m;if(a.size===this.storage.files.size)return c;for(let b of this.storage.getFiles())a.has(b)||d.write(b,this.storage.read(b));return c.fallback=y(d,{...this.options,idPrefix:this.options.idPrefix?`fallback:${this.options.idPrefix}`:"fallback",generateFallback:!1,context:{...this.custom,_fallback:!0}}).root(),a.clear(),c},file(c,d){return b(this)||d&&a.add(d),c},folder(c,d,e){return b(this)||e&&a.add(e),c}}}()),Array.isArray(a)){let[d,e]=a;c={get builder(){return L},storage:e[d],storages:e,locale:d,transformers:h,custom:b.context,options:b}}else c={get builder(){return L},storage:a,transformers:h,custom:b.context,options:b};let{storage:C,locale:D}=c;for(let a of C.getFiles()){let b=C.read(a),c=a.substring(0,a.length-e(a).length);f.set(c+"."+b.format,a)}function E(a,b){return f.get(a+"."+b)??a}function F(a,b,c){if(b[u])return!1;let d=b[x];if(!d)return b[x]={owner:a,priority:c},!0;if(d.owner===a)return d.priority=Math.max(d.priority,c),!0;if(d.priority>=c)return!1;let e=i.get(d.owner);if(e&&"folder"===e.type)if(e.index===b)delete e.index;else{let a=e.children.indexOf(b);-1!==a&&e.children.splice(a,1)}return d.owner=a,d.priority=c,!0}function G(a=`_${j++}`){let b=a;return D&&(b=`${D}:${b}`),l&&(b=`${l}:${b}`),b}function H(a,b,c=!1){let f,g=[];for(let c of a){if(b&&!b(c))continue;let a=K(c);if(a){g.push(a),f||"index"!==d(c,e(c))||(f=a);continue}let h=J(c);h&&g.push(h)}let h=c?-1:1,i="name"===p;return g.sort((a,b)=>{if(a===f)return -100;if(b===f)return 100;let c=i&&a[w]||("folder"===a.type?a.$ref.folder:a.$ref),d=i&&b[w]||("folder"===b.type?b.$ref.folder:b.$ref),e=10*("folder"===a.type),g=10*("folder"===b.type);return h*(c.localeCompare(d,A,B)+(e-g))})}function I(a){let b=r.exec(a);if(!b?.groups)return;let{icon:d,url:e,name:f,external:g}=b.groups,i={$id:G(),type:"page",icon:d,name:f,url:e,external:!!g||void 0};for(let a of h)a.file&&(i=a.file.call(c,i));return i}function J(a,b=!1){let e,f=i.get(a);if(f)return f;let j=C.readDir(a);if(!j)return;let k=E(g(a,"meta"),"meta"),l=C.read(k);l&&"meta"===l.format||(l=void 0,k=void 0);let m=l?.data??{},n=m.root??b,o={type:"folder",name:null,root:m.root,defaultOpen:m.defaultOpen,description:m.description,collapsible:m.collapsible,children:[],$id:G(a),$ref:{folder:a,meta:k},[u]:!0};if(i.set(a,o),m.pagesIndex){let b=E(g(a,m.pagesIndex),"page"),c=K(b);c&&F(a,c,3)?(e=b,o.index=c):o.index=I(m.pagesIndex)}else if(!n){let b=E(g(a,"index"),"page"),c=K(b);c&&F(a,c,0)&&(e=b,o.index=c)}if(m.pages){let b=[],d=new Set;for(let e of m.pages)!function(a,b,d,e){if("..."===b||b===t)return d.push(b);let f=function(a){let b=s.exec(a);if(!b?.groups)return;let d={$id:G(),type:"separator",icon:b.groups.icon,name:b.groups.name};for(let a of h)a.separator&&(d=a.separator.call(c,d));return d}(b);if(f)return d.push(f);let i=I(b);if(i)return d.push(i);if(b.startsWith("!")){let c=g(a,b.slice(1));e.add(c),e.add(E(c,"page"));return}if(b.startsWith("...")){let c=g(a,b.slice(3)),f=J(c);if(!f)return;let h=f.index?[f.index,...f.children]:f.children;if(F(a,f,2)){for(let b of h)!function(a,b){let c=b[x];c&&(c.owner=a)}(a,b),d.push(b);e.add(c)}else for(let b of h)F(a,b,2)&&d.push(b);return}let j=g(a,b),k=J(j);k||(k=K(j=E(j,"page"))),k&&F(a,k,2)&&(d.push(k),e.add(j))}(a,e,b,d);for(let c of(e&&(d.has(e)?delete o.index:d.add(e)),b)){if("..."!==c&&c!==t){o.children.push(c);continue}for(let b of H(j,a=>!d.has(a),c===t))F(a,b,0)&&o.children.push(b)}}else for(let b of H(j,e?a=>a!==e:void 0))F(a,b,0)&&o.children.push(b);if(o.icon=m.icon??o.index?.icon,o.name=m.title??o.index?.name,o[w]=m.title??o.index?.[w],!o.name){let b=d(a);o.name=z(q.exec(b)?.[1]??b)}for(let b of h)b.folder&&(o=b.folder.call(c,o,a,k));return i.set(a,o),delete o[u],o}function K(a){let b=i.get(a);if(b)return b;let f=C.read(a);if(!f||"page"!==f.format)return;let{title:g,description:j,icon:k}=f.data,l={$id:G(a),type:"page",name:g??z(d(a,e(a))),description:j,icon:k,url:n(f.slugs,c.locale),$ref:a,[w]:g};for(let b of h)b.file&&(l=b.file.call(c,l,a));return i.set(a,l),l}let L={resolveFlattenPath:E,root(a="root",b=""){let d=J(b,!0);for(let a of i.values())delete a[w],delete a[x],k&&"$ref"in a&&delete a.$ref;let e={type:"root",$ref:d?.$ref,$id:G(a),name:d?.name||"Docs",description:d?.description,children:d?d.children:[]};for(let a of h)a.root&&(e=a.root.call(c,e));return e}};return L}function z(a){let b=[];for(let c of a)0===b.length?b.push(c.toLocaleUpperCase()):"-"===c?b.push(" "):b.push(c);return b.join("")}function A(...a){let b,d=2===a.length?B(a[0],a[1]):B(a[0].source,a[0]),{i18n:e}=d,f=e?o(d).i18n():o(d).single(),h=function({url:a}){let b=new Map,c=new Map,d=new Map;return{scan(e,f){for(let g of e.getFiles()){let h=e.read(g),i=f?`${f}.`:".",j=i+g;if("meta"===h.format){c.set(j,{type:h.type,path:h.path,absolutePath:h.absolutePath,data:h.data});continue}let k={type:h.type,path:h.path,absolutePath:h.absolutePath,url:a(h.slugs,f),slugs:h.slugs,data:h.data,locale:f};d.set(j,k),b.set(i+k.slugs.join("/"),k)}},getPage:(a,b="")=>d.get(`${b}.${a}`),getMeta:(a,b="")=>c.get(`${b}.${a}`),getPageBySlugs(a,c=""){let d=b.get(`${c}.${a.join("/")}`);if(d||(d=b.get(`${c}.${a.map(decodeURI).join("/")}`)))return d},getPages(a){let c=[];for(let[d,e]of b.entries())(void 0===a||d.startsWith(`${a}.`))&&c.push(e);return c}}}(d);if(f instanceof m)h.scan(f);else for(let a in f)h.scan(f[a],a);function j(){if(b)return b;let{plugins:a,url:c,pageTree:e}=d,g=[];for(let b of(e?.transformers&&g.push(...e.transformers),a))b.transformPageTree&&g.push(b.transformPageTree);let h={url:c,...e,transformers:g};if(f instanceof m)return b=y(f,h).root();{let a={};for(let b in f)a[b]=y([b,f],h).root();return b=a}}return{_i18n:e,get pageTree(){return j()},set pageTree(v){b=v},getPageByHref(a,{dir:b="",language:c=e?.defaultLanguage}={}){let d,[f,i]=a.split("#",2);if(f.startsWith("./")||f.startsWith("../")){let a=g(b,f);d=h.getPage(a,c)}else d=this.getPages(c).find(a=>a.url===f);if(d)return{page:d,hash:i}},resolveHref(a,b){if(a.startsWith("./")||a.startsWith("../")){let c=this.getPageByHref(a,{dir:l.dirname(b.path),language:b.locale});if(c)return c.hash?`${c.page.url}#${c.hash}`:c.page.url}return a},getPages:a=>h.getPages(a),getLanguages(){let a=[];if(!e)return a;for(let b of e.languages)a.push({language:b,pages:this.getPages(b)});return a},getPage:(a=[],b=e?.defaultLanguage)=>h.getPageBySlugs(a,b),getNodeMeta(a,b=e?.defaultLanguage){let c=a.$ref;if(c?.meta)return h.getMeta(c.meta,b)},getNodePage(a,b=e?.defaultLanguage){let c=a.$ref;if(c)return h.getPage(c,b)},getPageTree(a){if(e){let b=j();return a&&b[a]?b[a]:b[e.defaultLanguage]}return j()},generateParams(a,b){return e?this.getLanguages().flatMap(c=>c.pages.map(d=>({[a??"slug"]:d.slugs,[b??"lang"]:c.language}))):this.getPages().map(b=>({[a??"slug"]:b.slugs}))},async serializePageTree(a){let{renderToString:b}=await c.e(76).then(c.t.bind(c,80076,19));return{$fumadocs_loader:"page-tree",data:(0,i.c)(a,a=>("icon"in(a={...a})&&a.icon&&(a.icon=b(a.icon)),a.name&&(a.name=b(a.name)),"children"in a&&(a.children=[...a.children]),a))}}}}function B(a,{slugs:b,icon:c,plugins:f=[],baseUrl:g,url:h,...i}){var j;let l,m={...i,url:h?(...a)=>{var b;return(b=h(...a)).startsWith("http://")||b.startsWith("https://")||(b.startsWith("/")||(b="/"+b),b.length>1&&b.endsWith("/")&&(b=b.slice(0,-1))),b}:(j=i.i18n,l=g.split("/"),(a,b)=>{let c,d=j?.hideLocale??"never";"never"===d?c=b:"default-locale"===d&&b!==j?.defaultLanguage&&(c=b);let e=[...l,...a];return c&&e.unshift(c),`/${e.filter(a=>a.length>0).join("/")}`}),input:a,plugins:function a(b,c=!0){let d=[];for(let c of b)Array.isArray(c)?d.push(...a(c,!1)):c&&d.push(c);return c?d.sort((a,b)=>C[b.enforce??"default"]-C[a.enforce??"default"]):d}([c&&function(a){function b(b){return(void 0===b.icon||"string"==typeof b.icon)&&(b.icon=a(b.icon)),b}return{name:"fumadocs:icon",transformPageTree:{file:b,folder:b,separator:b}}}(c),..."function"==typeof f?f({typedPlugin:a=>a}):f,{name:"fumadocs:slugs",transformStorage({storage:a}){let c=[],f=new Set;for(let g of a.getFiles()){let h=a.read(g);if(!h||"page"!==h.format||h.slugs)continue;let i=b?.(h);if(void 0===i&&"index"===d(g,e(g))){c.push(g);continue}h.slugs=i??k(g);let j=h.slugs.join("/");if(f.has(j))throw Error(`Duplicated slugs: ${j}`);f.add(j)}for(let b of c){let c=a.read(b);c?.format==="page"&&(c.slugs=k(b),f.has(c.slugs.join("/"))&&c.slugs.push("index"))}}}])};for(let a of m.plugins){let b=a.config?.(m);b&&(m=b)}return m}let C={pre:1,default:0,post:-1}},95565:(a,b,c)=>{"use strict";c.r(b),c.d(b,{_markdown:()=>f,default:()=>j,frontmatter:()=>e,structuredData:()=>g,toc:()=>h});var d=c(5735);let e={title:"Models and Tools",description:"provider、模型、thinking level 与工具预设的作用。"},f="\n\n## 模型层 [#模型层]\n\nannodex 将模型选择显式暴露在界面中,而不是埋在命令行参数里。\n\n你通常可以调整:\n\n* provider\n* model\n* thinking level\n* 工具可用范围\n\n## 为什么这很重要 [#为什么这很重要]\n\n在真实项目中,不同任务对模型要求并不相同:\n\n* 快速总结适合轻量配置\n* 代码修改可能需要更强推理\n* 文件巡检可能更依赖工具权限\n* 长流程分析可能更需要稳定的运行反馈\n\n## 工具层 [#工具层]\n\nannodex 关注的不只是“模型说了什么”,还关注“模型做了什么”。\n\n因此界面会尽量显式展示:\n\n* 当前工具是否可用\n* 工具调用是否正在发生\n* 是否处于运行中 / 忙碌中\n* 停止按钮是否应该出现\n\n这也是它比纯聊天 UI 更适合作为工作台的原因之一。\n",g={contents:[{heading:"模型层",content:"annodex 将模型选择显式暴露在界面中,而不是埋在命令行参数里。"},{heading:"模型层",content:"你通常可以调整:"},{heading:"模型层",content:"provider"},{heading:"模型层",content:"model"},{heading:"模型层",content:"thinking level"},{heading:"模型层",content:"工具可用范围"},{heading:"为什么这很重要",content:"在真实项目中,不同任务对模型要求并不相同:"},{heading:"为什么这很重要",content:"快速总结适合轻量配置"},{heading:"为什么这很重要",content:"代码修改可能需要更强推理"},{heading:"为什么这很重要",content:"文件巡检可能更依赖工具权限"},{heading:"为什么这很重要",content:"长流程分析可能更需要稳定的运行反馈"},{heading:"工具层",content:"annodex 关注的不只是“模型说了什么”,还关注“模型做了什么”。"},{heading:"工具层",content:"因此界面会尽量显式展示:"},{heading:"工具层",content:"当前工具是否可用"},{heading:"工具层",content:"工具调用是否正在发生"},{heading:"工具层",content:"是否处于运行中 / 忙碌中"},{heading:"工具层",content:"停止按钮是否应该出现"},{heading:"工具层",content:"这也是它比纯聊天 UI 更适合作为工作台的原因之一。"}],headings:[{id:"模型层",content:"模型层"},{id:"为什么这很重要",content:"为什么这很重要"},{id:"工具层",content:"工具层"}]},h=[{depth:2,url:"#模型层",title:(0,d.jsx)(d.Fragment,{children:"模型层"})},{depth:2,url:"#为什么这很重要",title:(0,d.jsx)(d.Fragment,{children:"为什么这很重要"})},{depth:2,url:"#工具层",title:(0,d.jsx)(d.Fragment,{children:"工具层"})}];function i(a){let b={h2:"h2",li:"li",p:"p",ul:"ul",...a.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(b.h2,{id:"模型层",children:"模型层"}),"\n",(0,d.jsx)(b.p,{children:"annodex 将模型选择显式暴露在界面中,而不是埋在命令行参数里。"}),"\n",(0,d.jsx)(b.p,{children:"你通常可以调整:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"provider"}),"\n",(0,d.jsx)(b.li,{children:"model"}),"\n",(0,d.jsx)(b.li,{children:"thinking level"}),"\n",(0,d.jsx)(b.li,{children:"工具可用范围"}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"为什么这很重要",children:"为什么这很重要"}),"\n",(0,d.jsx)(b.p,{children:"在真实项目中,不同任务对模型要求并不相同:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"快速总结适合轻量配置"}),"\n",(0,d.jsx)(b.li,{children:"代码修改可能需要更强推理"}),"\n",(0,d.jsx)(b.li,{children:"文件巡检可能更依赖工具权限"}),"\n",(0,d.jsx)(b.li,{children:"长流程分析可能更需要稳定的运行反馈"}),"\n"]}),"\n",(0,d.jsx)(b.h2,{id:"工具层",children:"工具层"}),"\n",(0,d.jsx)(b.p,{children:"annodex 关注的不只是“模型说了什么”,还关注“模型做了什么”。"}),"\n",(0,d.jsx)(b.p,{children:"因此界面会尽量显式展示:"}),"\n",(0,d.jsxs)(b.ul,{children:["\n",(0,d.jsx)(b.li,{children:"当前工具是否可用"}),"\n",(0,d.jsx)(b.li,{children:"工具调用是否正在发生"}),"\n",(0,d.jsx)(b.li,{children:"是否处于运行中 / 忙碌中"}),"\n",(0,d.jsx)(b.li,{children:"停止按钮是否应该出现"}),"\n"]}),"\n",(0,d.jsx)(b.p,{children:"这也是它比纯聊天 UI 更适合作为工作台的原因之一。"})]})}function j(a={}){let{wrapper:b}=a.components||{};return b?(0,d.jsx)(b,{...a,children:(0,d.jsx)(i,{...a})}):i(a)}},96487:()=>{},98621:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=c(108).unstable_rethrow;("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},98981:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{m:()=>q});var e=c(70588),f=c(15833),g=c(75647),h=c(28841),i=c(95565),j=c(56563),k=c(41083),l=c(82644),m=c(50737),n=c(30576),o=c(62108),p=c(21445);let a=(0,p.E)({doc:{passthroughs:["extractedReferences"]}}),q=await a.docs("docs","content/docs",{"meta.json":o},{"architecture.mdx":n,"configuration.mdx":m,"file-and-report-viewing.mdx":l,"index.mdx":k,"installation-and-deployment.mdx":j,"models-and-tools.mdx":i,"quick-start.mdx":h,"runtime-and-sse.mdx":g,"sessions-and-projects.mdx":f,"workspace.mdx":e});d()}catch(a){d(a)}},1)},99905:(a,b,c)=>{Promise.resolve().then(c.bind(c,15185))}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,63,4443,2098],()=>b(b.s=7063));module.exports=c})();
|