@seqyuan/annodex 0.1.29 → 0.1.30
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 +50 -5
- package/.next/required-server-files.json +50 -5
- 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/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-af7e4803e0815c0e.js} +4 -4
- 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/.next/static/oIqDpdOWwl7oIU6o8NnNp/_buildManifest.js +1 -0
- package/.next/static/oIqDpdOWwl7oIU6o8NnNp/_ssgManifest.js +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
|
@@ -1 +1,2 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="__variable_66b8ca"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/7deddc85b7ffd1dc-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/ec14413c594b3356-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="__variable_66b8ca"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/7deddc85b7ffd1dc-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/ec14413c594b3356-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/fddca953485158e4.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/876e881d7ba02ed2.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-ced9e639bb94bd30.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-123fdf632563f469.js" async=""></script><script src="/_next/static/chunks/main-app-45a0f19af99d61b6.js" async=""></script><script src="/_next/static/chunks/8500-f62a38ff68ab7f42.js" async=""></script><script src="/_next/static/chunks/5122-6e0d29bd15f079e1.js" async=""></script><script src="/_next/static/chunks/app/layout-11cc1f48ff425fd0.js" async=""></script><script src="/_next/static/chunks/app/page-eb62ac677a87b790.js" async=""></script><meta name="next-size-adjust" content=""/><title>annodex</title><meta name="description" content="AI-native bioinformatics workspace by Annoroad"/><link rel="shortcut icon" href="/favicon.svg" type="image/svg+xml"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><script>(function(){try{var t=localStorage.getItem("annodex-theme");if(t==="dark")document.documentElement.classList.add("dark")}catch(e){}})();</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body style="min-height:100dvh;display:flex;flex-direction:column"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script><!--$--><div class="bg-fd-secondary/50 p-3 empty:hidden"></div><!--/$--><main class="fd-container annodex-home"><section class="annodex-hero"><div class="annodex-hero-copy"><div class="annodex-eyebrow">@seqyuan/annodex · browser-native Codex workspace</div><h1>让 Codex 成为真正可用的工作台</h1><p class="annodex-lead">annodex 将项目、会话、文件、工具运行态和模型配置收敛到一个浏览器界面中, 为 AI 编程与分析工作流补上产品层。</p><p class="annodex-sublead">它不是替代 Codex,而是让 Codex 更适合真实团队、真实项目和真实迭代过程。</p><div class="annodex-actions"><a class="annodex-button annodex-button-primary" href="/docs">阅读文档 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><a class="annodex-button annodex-button-secondary" href="/workspace">打开工作台 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-square-terminal" aria-hidden="true"><path d="m7 11 2-2-2-2"></path><path d="M11 13h4"></path><rect width="18" height="18" x="3" y="3" rx="2" ry="2"></rect></svg></a></div><div class="annodex-install"><span>Quick start</span><pre><code>npm i -g @seqyuan/annodex<!-- -->
|
|
2
|
+
<!-- -->annodex</code></pre></div></div><div class="annodex-preview" aria-label="Annodex workspace preview"><div class="annodex-preview-bar"><span></span><span></span><span></span><div>localhost:30121</div></div><div class="annodex-preview-body"><aside><div class="annodex-preview-title">Projects</div><div class="annodex-preview-item annodex-preview-item-active">rna-seq-atlas</div><div class="annodex-preview-item">single-cell-qc</div><div class="annodex-preview-item">variant-review</div></aside><section><div class="annodex-preview-chips"><span>deepseek-chat</span><span>tools: full</span><span>thinking: medium</span></div><div class="annodex-bubble annodex-bubble-assistant">我可以检查这个项目目录,总结当前分析进度,并起草发给同事的说明。</div><div class="annodex-bubble annodex-bubble-tool"><strong>Running tools</strong><div class="annodex-tool-flow"><span>read</span><span>grep</span><span>bash</span></div></div><div class="annodex-bubble annodex-bubble-user">顺便整理成一份简洁的项目更新。</div></section></div></div></section><section class="annodex-section"><div class="annodex-section-head"><div class="annodex-kicker">Why annodex</div><h2>不是又一个聊天框,而是可工作的壳层</h2><p>CLI 强于执行,却不擅长文件审阅、状态追踪与多项目操作。annodex 的职责, 是把底层 agent 能力包装成更适合日常工作的界面。</p></div><div class="annodex-grid"><article class="annodex-card"><div class="annodex-card-icon"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-tree" aria-hidden="true"><path d="M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z"></path><path d="M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z"></path><path d="M3 5a2 2 0 0 0 2 2h3"></path><path d="M3 3v13a2 2 0 0 0 2 2h3"></path></svg></div><h3>项目驱动的会话管理</h3><p>按项目组织聊天、文件与上下文,而不是把工作散落在终端历史里。</p></article><article class="annodex-card"><div class="annodex-card-icon"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg></div><h3>实时运行态可见</h3><p>工具执行、SSE 流、模型忙碌状态、停止按钮与进度反馈都可以直接观察。</p></article><article class="annodex-card"><div class="annodex-card-icon"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot" aria-hidden="true"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg></div><h3>模型与工具配置统一</h3><p>在浏览器中切换 provider、model、thinking level 与工具预设,降低使用门槛。</p></article><article class="annodex-card"><div class="annodex-card-icon"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-flask-conical" aria-hidden="true"><path d="M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2"></path><path d="M6.453 15h11.094"></path><path d="M8.5 2h7"></path></svg></div><h3>适合分析型工作流</h3><p>代码、Markdown、图像、PDF、表格与报告在同一工作区中查看与整理。</p></article></div></section><section class="annodex-section annodex-section-alt"><div class="annodex-section-head"><div class="annodex-kicker">Architecture</div><h2>围绕 Codex app-server 构建的 Web 工作流</h2><p>浏览器负责交互,Next.js 负责 API 与会话包装,Codex app-server 负责底层线程与 turn 协议。</p></div><div class="annodex-architecture"><div><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panels-top-left" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M3 9h18"></path><path d="M9 21V9"></path></svg> Browser UI</div><span>→</span><div>Next.js Server</div><span>→</span><div>Codex app-server</div></div></section><section class="annodex-section"><div class="annodex-section-head"><div class="annodex-kicker">Capabilities</div><h2>核心能力</h2><p>annodex 关注的不是单次提问,而是项目生命周期中的连续工作体验。</p></div><div class="annodex-grid annodex-grid-three"><article class="annodex-card"><div class="annodex-card-icon"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-workflow" aria-hidden="true"><rect width="8" height="8" x="3" y="3" rx="2"></rect><path d="M7 11v4a2 2 0 0 0 2 2h4"></path><rect width="8" height="8" x="13" y="13" rx="2"></rect></svg></div><h3>会话、文件与结果同屏协作</h3><p>在同一工作台中切换聊天、文件树、预览面板与分支导航,减少上下文切换成本。</p></article><article class="annodex-card"><div class="annodex-card-icon"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-radio" aria-hidden="true"><path d="M16.247 7.761a6 6 0 0 1 0 8.478"></path><path d="M19.075 4.933a10 10 0 0 1 0 14.134"></path><path d="M4.925 19.067a10 10 0 0 1 0-14.134"></path><path d="M7.753 16.239a6 6 0 0 1 0-8.478"></path><circle cx="12" cy="12" r="2"></circle></svg></div><h3>SSE 事件流与运行反馈</h3><p>不只显示回答文本,也显示 agent 当前是否仍在工作、是否正在调用工具、是否需要重连。</p></article><article class="annodex-card"><div class="annodex-card-icon"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server-cog" aria-hidden="true"><path d="m10.852 14.772-.383.923"></path><path d="M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923"></path><path d="m13.148 9.228.383-.923"></path><path d="m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544"></path><path d="m14.772 10.852.923-.383"></path><path d="m14.772 13.148.923.383"></path><path d="M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5"></path><path d="M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5"></path><path d="M6 18h.01"></path><path d="M6 6h.01"></path><path d="m9.228 10.852-.923-.383"></path><path d="m9.228 13.148-.923.383"></path></svg></div><h3>Codex app-server 的产品外壳</h3><p>保留底层 thread / turn 能力,同时在浏览器提供更友好的交互层与会话包装。</p></article><article class="annodex-card"><div class="annodex-card-icon"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-git-branch" aria-hidden="true"><path d="M15 6a9 9 0 0 0-9 9V3"></path><circle cx="18" cy="6" r="3"></circle><circle cx="6" cy="18" r="3"></circle></svg></div><h3>面向探索型工作的分支体验</h3><p>支持对话分支、历史导航与项目级上下文回看,适合多轮分析与方案比较。</p></article><article class="annodex-card"><div class="annodex-card-icon"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg></div><h3>对文档型工作更友好</h3><p>不仅适合 coding,也适合读报告、写说明、整理分析结果与输出结构化总结。</p></article><article class="annodex-card"><div class="annodex-card-icon"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-square-terminal" aria-hidden="true"><path d="m7 11 2-2-2-2"></path><path d="M11 13h4"></path><rect width="18" height="18" x="3" y="3" rx="2" ry="2"></rect></svg></div><h3>降低非 CLI 用户门槛</h3><p>让团队成员无需长期停留在终端,也能理解 agent 在做什么、结果产出在哪里。</p></article></div></section><section class="annodex-section annodex-section-alt"><div class="annodex-section-head"><div class="annodex-kicker">Workflow</div><h2>典型使用路径</h2></div><div class="annodex-workflow"><div class="annodex-workflow-step"><div class="annodex-workflow-index">0<!-- -->1</div><div>选择项目目录</div></div><div class="annodex-workflow-step"><div class="annodex-workflow-index">0<!-- -->2</div><div>创建或继续会话</div></div><div class="annodex-workflow-step"><div class="annodex-workflow-index">0<!-- -->3</div><div>查看文件与上下文</div></div><div class="annodex-workflow-step"><div class="annodex-workflow-index">0<!-- -->4</div><div>观察工具运行态</div></div><div class="annodex-workflow-step"><div class="annodex-workflow-index">0<!-- -->5</div><div>输出结果或结论</div></div></div></section><section class="annodex-section"><div class="annodex-section-head"><div class="annodex-kicker">Use cases</div><h2>适合哪些团队与任务</h2></div><div class="annodex-usecases"><div class="annodex-usecase">生物信息学与数据分析项目</div><div class="annodex-usecase">Codex / agent 工作流的浏览器前端</div><div class="annodex-usecase">团队演示、培训与非 CLI 用户接入</div><div class="annodex-usecase">多项目知识工作与持续迭代协作</div></div></section><section class="annodex-section annodex-cta-section"><div class="annodex-cta-card"><div><div class="annodex-kicker">Start</div><h2>先读文档,再进入工作台</h2><p>如果你希望把 Codex 接入更稳定的浏览器工作流,最合理的起点是先了解结构,再开始使用。</p></div><div class="annodex-actions"><a class="annodex-button annodex-button-primary" href="/docs">查看文档</a><a class="annodex-button annodex-button-secondary" href="/workspace">进入工作台</a></div></div></section></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-ced9e639bb94bd30.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[67504,[\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"5122\",\"static/chunks/5122-6e0d29bd15f079e1.js\",\"7177\",\"static/chunks/app/layout-11cc1f48ff425fd0.js\"],\"RootProvider\"]\n3:I[57121,[],\"\"]\n4:I[74581,[],\"\"]\n5:I[98500,[\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"8974\",\"static/chunks/app/page-eb62ac677a87b790.js\"],\"\"]\n6:I[99535,[\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"8974\",\"static/chunks/app/page-eb62ac677a87b790.js\"],\"default\"]\n12:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/7deddc85b7ffd1dc-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/ec14413c594b3356-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/fddca953485158e4.css\",\"style\"]\n:HL[\"/_next/static/css/876e881d7ba02ed2.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/fddca953485158e4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/876e881d7ba02ed2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_66b8ca\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem(\\\"annodex-theme\\\");if(t===\\\"dark\\\")document.documentElement.classList.add(\\\"dark\\\")}catch(e){}})();\"}}]}],[\"$\",\"body\",null,{\"style\":{\"minHeight\":\"100dvh\",\"display\":\"flex\",\"flexDirection\":\"column\"},\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"main\",null,{\"className\":\"fd-container annodex-home\",\"children\":[[\"$\",\"section\",null,{\"className\":\"annodex-hero\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-hero-copy\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-eyebrow\",\"children\":\"@seqyuan/annodex · browser-native Codex workspace\"}],[\"$\",\"h1\",null,{\"children\":\"让 Codex 成为真正可用的工作台\"}],[\"$\",\"p\",null,{\"className\":\"annodex-lead\",\"children\":\"annodex 将项目、会话、文件、工具运行态和模型配置收敛到一个浏览器界面中, 为 AI 编程与分析工作流补上产品层。\"}],[\"$\",\"p\",null,{\"className\":\"annodex-sublead\",\"children\":\"它不是替代 Codex,而是让 Codex 更适合真实团队、真实项目和真实迭代过程。\"}],[\"$\",\"div\",null,{\"className\":\"annodex-actions\",\"children\":[[\"$\",\"$L5\",null,{\"href\":\"/docs\",\"className\":\"annodex-button annodex-button-primary\",\"children\":[\"阅读文档 \",[\"$\",\"$L6\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M5 12h14\",\"key\":\"1ays0h\"}],[\"path\",{\"d\":\"m12 5 7 7-7 7\",\"key\":\"xquz4c\"}]],\"className\":\"lucide-arrow-right\",\"size\":16}]]}],[\"$\",\"$L5\",null,{\"href\":\"/workspace\",\"className\":\"annodex-button annodex-button-secondary\",\"children\":[\"打开工作台 \",[\"$\",\"$L6\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"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\"}]],\"className\":\"lucide-square-terminal\",\"size\":16}]]}]]}],[\"$\",\"div\",null,{\"className\":\"annodex-install\",\"children\":[[\"$\",\"span\",null,{\"children\":\"Quick start\"}],[\"$\",\"pre\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"npm i -g @seqyuan/annodex\",\"\\n\",\"annodex\"]}]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"annodex-preview\",\"aria-label\":\"Annodex workspace preview\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-preview-bar\",\"children\":[[\"$\",\"span\",null,{}],[\"$\",\"span\",null,{}],[\"$\",\"span\",null,{}],[\"$\",\"div\",null,{\"children\":\"localhost:30121\"}]]}],[\"$\",\"div\",null,{\"className\":\"annodex-preview-body\",\"children\":[[\"$\",\"aside\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-preview-title\",\"children\":\"Projects\"}],[\"$\",\"div\",null,{\"className\":\"annodex-preview-item annodex-preview-item-active\",\"children\":\"rna-seq-atlas\"}],[\"$\",\"div\",null,{\"className\":\"annodex-preview-item\",\"children\":\"single-cell-qc\"}],[\"$\",\"div\",null,{\"className\":\"annodex-preview-item\",\"children\":\"variant-review\"}]]}],[\"$\",\"section\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-preview-chips\",\"children\":[[\"$\",\"span\",null,{\"children\":\"deepseek-chat\"}],[\"$\",\"span\",null,{\"children\":\"tools: full\"}],[\"$\",\"span\",null,{\"children\":\"thinking: medium\"}]]}],\"$L7\",\"$L8\",\"$L9\"]}]]}]]}]]}],\"$La\",\"$Lb\",\"$Lc\",\"$Ld\",\"$Le\",\"$Lf\"]}],null,\"$L10\"]}],{},null,false,null]},null,false,null],\"$L11\",false]],\"m\":\"$undefined\",\"G\":[\"$12\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"oIqDpdOWwl7oIU6o8NnNp\"}\n"])</script><script>self.__next_f.push([1,"13:I[90484,[],\"OutletBoundary\"]\n14:\"$Sreact.suspense\"\n16:I[90484,[],\"ViewportBoundary\"]\n18:I[90484,[],\"MetadataBoundary\"]\n7:[\"$\",\"div\",null,{\"className\":\"annodex-bubble annodex-bubble-assistant\",\"children\":\"我可以检查这个项目目录,总结当前分析进度,并起草发给同事的说明。\"}]\n8:[\"$\",\"div\",null,{\"className\":\"annodex-bubble annodex-bubble-tool\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Running tools\"}],[\"$\",\"div\",null,{\"className\":\"annodex-tool-flow\",\"children\":[[\"$\",\"span\",null,{\"children\":\"read\"}],[\"$\",\"span\",null,{\"children\":\"grep\"}],[\"$\",\"span\",null,{\"children\":\"bash\"}]]}]]}]\n9:[\"$\",\"div\",null,{\"className\":\"annodex-bubble annodex-bubble-user\",\"children\":\"顺便整理成一份简洁的项目更新。\"}]\n"])</script><script>self.__next_f.push([1,"a:[\"$\",\"section\",null,{\"className\":\"annodex-section\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-section-head\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-kicker\",\"children\":\"Why annodex\"}],[\"$\",\"h2\",null,{\"children\":\"不是又一个聊天框,而是可工作的壳层\"}],[\"$\",\"p\",null,{\"children\":\"CLI 强于执行,却不擅长文件审阅、状态追踪与多项目操作。annodex 的职责, 是把底层 agent 能力包装成更适合日常工作的界面。\"}]]}],[\"$\",\"div\",null,{\"className\":\"annodex-grid\",\"children\":[[\"$\",\"article\",\"项目驱动的会话管理\",{\"className\":\"annodex-card\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-card-icon\",\"children\":[\"$\",\"$L6\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z\",\"key\":\"hod4my\"}],[\"path\",{\"d\":\"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z\",\"key\":\"w4yl2u\"}],[\"path\",{\"d\":\"M3 5a2 2 0 0 0 2 2h3\",\"key\":\"f2jnh7\"}],[\"path\",{\"d\":\"M3 3v13a2 2 0 0 0 2 2h3\",\"key\":\"k8epm1\"}]],\"className\":\"lucide-folder-tree\",\"size\":18}]}],[\"$\",\"h3\",null,{\"children\":\"项目驱动的会话管理\"}],[\"$\",\"p\",null,{\"children\":\"按项目组织聊天、文件与上下文,而不是把工作散落在终端历史里。\"}]]}],[\"$\",\"article\",\"实时运行态可见\",{\"className\":\"annodex-card\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-card-icon\",\"children\":[\"$\",\"$L6\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2\",\"key\":\"169zse\"}]],\"className\":\"lucide-activity\",\"size\":18}]}],[\"$\",\"h3\",null,{\"children\":\"实时运行态可见\"}],[\"$\",\"p\",null,{\"children\":\"工具执行、SSE 流、模型忙碌状态、停止按钮与进度反馈都可以直接观察。\"}]]}],[\"$\",\"article\",\"模型与工具配置统一\",{\"className\":\"annodex-card\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-card-icon\",\"children\":[\"$\",\"$L6\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M12 8V4H8\",\"key\":\"hb8ula\"}],[\"rect\",{\"width\":\"16\",\"height\":\"12\",\"x\":\"4\",\"y\":\"8\",\"rx\":\"2\",\"key\":\"enze0r\"}],[\"path\",{\"d\":\"M2 14h2\",\"key\":\"vft8re\"}],[\"path\",{\"d\":\"M20 14h2\",\"key\":\"4cs60a\"}],[\"path\",{\"d\":\"M15 13v2\",\"key\":\"1xurst\"}],[\"path\",{\"d\":\"M9 13v2\",\"key\":\"rq6x2g\"}]],\"className\":\"lucide-bot\",\"size\":18}]}],[\"$\",\"h3\",null,{\"children\":\"模型与工具配置统一\"}],[\"$\",\"p\",null,{\"children\":\"在浏览器中切换 provider、model、thinking level 与工具预设,降低使用门槛。\"}]]}],[\"$\",\"article\",\"适合分析型工作流\",{\"className\":\"annodex-card\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-card-icon\",\"children\":[\"$\",\"$L6\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2\",\"key\":\"18mbvz\"}],[\"path\",{\"d\":\"M6.453 15h11.094\",\"key\":\"3shlmq\"}],[\"path\",{\"d\":\"M8.5 2h7\",\"key\":\"csnxdl\"}]],\"className\":\"lucide-flask-conical\",\"size\":18}]}],[\"$\",\"h3\",null,{\"children\":\"适合分析型工作流\"}],[\"$\",\"p\",null,{\"children\":\"代码、Markdown、图像、PDF、表格与报告在同一工作区中查看与整理。\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"b:[\"$\",\"section\",null,{\"className\":\"annodex-section annodex-section-alt\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-section-head\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-kicker\",\"children\":\"Architecture\"}],[\"$\",\"h2\",null,{\"children\":\"围绕 Codex app-server 构建的 Web 工作流\"}],[\"$\",\"p\",null,{\"children\":\"浏览器负责交互,Next.js 负责 API 与会话包装,Codex app-server 负责底层线程与 turn 协议。\"}]]}],[\"$\",\"div\",null,{\"className\":\"annodex-architecture\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"$L6\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"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\"}]],\"className\":\"lucide-panels-top-left\",\"size\":18}],\" Browser UI\"]}],[\"$\",\"span\",null,{\"children\":\"→\"}],[\"$\",\"div\",null,{\"children\":\"Next.js Server\"}],[\"$\",\"span\",null,{\"children\":\"→\"}],[\"$\",\"div\",null,{\"children\":\"Codex app-server\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"c:[\"$\",\"section\",null,{\"className\":\"annodex-section\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-section-head\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-kicker\",\"children\":\"Capabilities\"}],[\"$\",\"h2\",null,{\"children\":\"核心能力\"}],[\"$\",\"p\",null,{\"children\":\"annodex 关注的不是单次提问,而是项目生命周期中的连续工作体验。\"}]]}],[\"$\",\"div\",null,{\"className\":\"annodex-grid annodex-grid-three\",\"children\":[[\"$\",\"article\",\"会话、文件与结果同屏协作\",{\"className\":\"annodex-card\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-card-icon\",\"children\":[\"$\",\"$L6\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"rect\",{\"width\":\"8\",\"height\":\"8\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\",\"key\":\"by2w9f\"}],[\"path\",{\"d\":\"M7 11v4a2 2 0 0 0 2 2h4\",\"key\":\"xkn7yn\"}],[\"rect\",{\"width\":\"8\",\"height\":\"8\",\"x\":\"13\",\"y\":\"13\",\"rx\":\"2\",\"key\":\"1cgmvn\"}]],\"className\":\"lucide-workflow\",\"size\":18}]}],[\"$\",\"h3\",null,{\"children\":\"会话、文件与结果同屏协作\"}],[\"$\",\"p\",null,{\"children\":\"在同一工作台中切换聊天、文件树、预览面板与分支导航,减少上下文切换成本。\"}]]}],[\"$\",\"article\",\"SSE 事件流与运行反馈\",{\"className\":\"annodex-card\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-card-icon\",\"children\":[\"$\",\"$L6\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M16.247 7.761a6 6 0 0 1 0 8.478\",\"key\":\"1fwjs5\"}],[\"path\",{\"d\":\"M19.075 4.933a10 10 0 0 1 0 14.134\",\"key\":\"ehdyv1\"}],[\"path\",{\"d\":\"M4.925 19.067a10 10 0 0 1 0-14.134\",\"key\":\"1q22gi\"}],[\"path\",{\"d\":\"M7.753 16.239a6 6 0 0 1 0-8.478\",\"key\":\"r2q7qm\"}],[\"circle\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\",\"key\":\"1c9p78\"}]],\"className\":\"lucide-radio\",\"size\":18}]}],[\"$\",\"h3\",null,{\"children\":\"SSE 事件流与运行反馈\"}],[\"$\",\"p\",null,{\"children\":\"不只显示回答文本,也显示 agent 当前是否仍在工作、是否正在调用工具、是否需要重连。\"}]]}],[\"$\",\"article\",\"Codex app-server 的产品外壳\",{\"className\":\"annodex-card\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-card-icon\",\"children\":[\"$\",\"$L6\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"m10.852 14.772-.383.923\",\"key\":\"11vil6\"}],[\"path\",{\"d\":\"M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923\",\"key\":\"1v3clb\"}],[\"path\",{\"d\":\"m13.148 9.228.383-.923\",\"key\":\"t2zzyc\"}],[\"path\",{\"d\":\"m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544\",\"key\":\"1bxfiv\"}],[\"path\",{\"d\":\"m14.772 10.852.923-.383\",\"key\":\"k9m8cz\"}],[\"path\",{\"d\":\"m14.772 13.148.923.383\",\"key\":\"1xvhww\"}],[\"path\",{\"d\":\"M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5\",\"key\":\"tn8das\"}],[\"path\",{\"d\":\"M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5\",\"key\":\"1g2pve\"}],[\"path\",{\"d\":\"M6 18h.01\",\"key\":\"uhywen\"}],[\"path\",{\"d\":\"M6 6h.01\",\"key\":\"1utrut\"}],[\"path\",{\"d\":\"m9.228 10.852-.923-.383\",\"key\":\"1wtb30\"}],[\"path\",{\"d\":\"m9.228 13.148-.923.383\",\"key\":\"1a830x\"}]],\"className\":\"lucide-server-cog\",\"size\":18}]}],[\"$\",\"h3\",null,{\"children\":\"Codex app-server 的产品外壳\"}],[\"$\",\"p\",null,{\"children\":\"保留底层 thread / turn 能力,同时在浏览器提供更友好的交互层与会话包装。\"}]]}],[\"$\",\"article\",\"面向探索型工作的分支体验\",{\"className\":\"annodex-card\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-card-icon\",\"children\":[\"$\",\"$L6\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M15 6a9 9 0 0 0-9 9V3\",\"key\":\"1cii5b\"}],[\"circle\",{\"cx\":\"18\",\"cy\":\"6\",\"r\":\"3\",\"key\":\"1h7g24\"}],[\"circle\",{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\",\"key\":\"fqmcym\"}]],\"className\":\"lucide-git-branch\",\"size\":18}]}],[\"$\",\"h3\",null,{\"children\":\"面向探索型工作的分支体验\"}],[\"$\",\"p\",null,{\"children\":\"支持对话分支、历史导航与项目级上下文回看,适合多轮分析与方案比较。\"}]]}],[\"$\",\"article\",\"对文档型工作更友好\",{\"className\":\"annodex-card\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-card-icon\",\"children\":[\"$\",\"$L6\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\",\"key\":\"1oefj6\"}],[\"path\",{\"d\":\"M14 2v5a1 1 0 0 0 1 1h5\",\"key\":\"wfsgrz\"}],[\"path\",{\"d\":\"M10 9H8\",\"key\":\"b1mrlr\"}],[\"path\",{\"d\":\"M16 13H8\",\"key\":\"t4e002\"}],[\"path\",{\"d\":\"M16 17H8\",\"key\":\"z1uh3a\"}]],\"className\":\"lucide-file-text\",\"size\":18}]}],[\"$\",\"h3\",null,{\"children\":\"对文档型工作更友好\"}],[\"$\",\"p\",null,{\"children\":\"不仅适合 coding,也适合读报告、写说明、整理分析结果与输出结构化总结。\"}]]}],[\"$\",\"article\",\"降低非 CLI 用户门槛\",{\"className\":\"annodex-card\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-card-icon\",\"children\":[\"$\",\"$L6\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$0:f:0:1:1:children:0:props:children:0:props:children:0:props:children:0:props:children:4:props:children:1:props:children:1:props:iconNode\",\"className\":\"lucide-square-terminal\",\"size\":18}]}],[\"$\",\"h3\",null,{\"children\":\"降低非 CLI 用户门槛\"}],[\"$\",\"p\",null,{\"children\":\"让团队成员无需长期停留在终端,也能理解 agent 在做什么、结果产出在哪里。\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"d:[\"$\",\"section\",null,{\"className\":\"annodex-section annodex-section-alt\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-section-head\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-kicker\",\"children\":\"Workflow\"}],[\"$\",\"h2\",null,{\"children\":\"典型使用路径\"}]]}],[\"$\",\"div\",null,{\"className\":\"annodex-workflow\",\"children\":[[\"$\",\"div\",\"选择项目目录\",{\"className\":\"annodex-workflow-step\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-workflow-index\",\"children\":[\"0\",1]}],[\"$\",\"div\",null,{\"children\":\"选择项目目录\"}]]}],[\"$\",\"div\",\"创建或继续会话\",{\"className\":\"annodex-workflow-step\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-workflow-index\",\"children\":[\"0\",2]}],[\"$\",\"div\",null,{\"children\":\"创建或继续会话\"}]]}],[\"$\",\"div\",\"查看文件与上下文\",{\"className\":\"annodex-workflow-step\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-workflow-index\",\"children\":[\"0\",3]}],[\"$\",\"div\",null,{\"children\":\"查看文件与上下文\"}]]}],[\"$\",\"div\",\"观察工具运行态\",{\"className\":\"annodex-workflow-step\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-workflow-index\",\"children\":[\"0\",4]}],[\"$\",\"div\",null,{\"children\":\"观察工具运行态\"}]]}],[\"$\",\"div\",\"输出结果或结论\",{\"className\":\"annodex-workflow-step\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-workflow-index\",\"children\":[\"0\",5]}],[\"$\",\"div\",null,{\"children\":\"输出结果或结论\"}]]}]]}]]}]\ne:[\"$\",\"section\",null,{\"className\":\"annodex-section\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-section-head\",\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-kicker\",\"children\":\"Use cases\"}],[\"$\",\"h2\",null,{\"children\":\"适合哪些团队与任务\"}]]}],[\"$\",\"div\",null,{\"className\":\"annodex-usecases\",\"children\":[[\"$\",\"div\",\"生物信息学与数据分析项目\",{\"className\":\"annodex-usecase\",\"children\":\"生物信息学与数据分析项目\"}],[\"$\",\"div\",\"Codex / agent 工作流的浏览器前端\",{\"className\":\"annodex-usecase\",\"children\":\"Codex / agent 工作流的浏览器前端\"}],[\"$\",\"div\",\"团队演示、培训与非 CLI 用户接入\",{\"className\":\"annodex-usecase\",\"children\":\"团队演示、培训与非 CLI 用户接入\"}],[\"$\",\"div\",\"多项目知识工作与持续迭代协作\",{\"className\":\"annodex-usecase\",\"children\":\"多项目知识工作与持续迭代协作\"}]]}]]}]\nf:[\"$\",\"section\",null,{\"className\":\"annodex-section annodex-cta-section\",\"children\":[\"$\",\"div\",null,{\"className\":\"annodex-cta-card\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"annodex-kicker\",\"children\":\"Start\"}],[\"$\",\"h2\",null,{\"children\":\"先读文档,再进入工作台\"}],[\"$\",\"p\",null,{\"children\":\"如果你希望把 Codex 接入更稳定的浏览器工作流,最合理的起点是先了解结构,再开始使用。\"}]]}],[\"$\",\"div\",null,{\"className\":\"annodex-actions\",\"children\":[[\"$\",\"$L5\",null,{\"href\":\"/docs\",\"className\":\"annodex-button annodex-button-primary\",\"children\":\"查看文档\"}],[\"$\",\"$L5\",null,{\"href\":\"/workspace\",\"className\":\"annodex-button annodex-button-secondary\",\"children\":\"进入工作台\"}]]}]]}]}]\n10:[\"$\",\"$L13\",null,{\"children\":[\"$\",\"$14\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@15\"}]}]\n11:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L16\",null,{\"children\":\"$L17\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L18\",null,{\"children\":[\"$\",\"$14\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L19\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script><script>self.__next_f.push([1,"17:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"1a:I[86869,[],\"IconMark\"]\n15:null\n19:[[\"$\",\"title\",\"0\",{\"children\":\"annodex\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI-native bioinformatics workspace by Annoroad\"}],[\"$\",\"link\",\"2\",{\"rel\":\"shortcut icon\",\"href\":\"/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"$L1a\",\"4\",{}]]\n"])</script></body></html>
|
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[
|
|
3
|
-
3:I[
|
|
4
|
-
4:"
|
|
5
|
-
5:I[
|
|
6
|
-
6:I[
|
|
7
|
-
|
|
8
|
-
a:I[90484,[],"MetadataBoundary"]
|
|
9
|
-
c:I[27123,[],"default",1]
|
|
2
|
+
2:I[67504,["8500","static/chunks/8500-f62a38ff68ab7f42.js","5122","static/chunks/5122-6e0d29bd15f079e1.js","7177","static/chunks/app/layout-11cc1f48ff425fd0.js"],"RootProvider"]
|
|
3
|
+
3:I[57121,[],""]
|
|
4
|
+
4:I[74581,[],""]
|
|
5
|
+
5:I[98500,["8500","static/chunks/8500-f62a38ff68ab7f42.js","8974","static/chunks/app/page-eb62ac677a87b790.js"],""]
|
|
6
|
+
6:I[99535,["8500","static/chunks/8500-f62a38ff68ab7f42.js","8974","static/chunks/app/page-eb62ac677a87b790.js"],"default"]
|
|
7
|
+
12:I[27123,[],"default",1]
|
|
10
8
|
:HL["/_next/static/media/7deddc85b7ffd1dc-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
11
9
|
:HL["/_next/static/media/ec14413c594b3356-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
12
|
-
:HL["/_next/static/css/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
:HL["/_next/static/css/fddca953485158e4.css","style"]
|
|
11
|
+
:HL["/_next/static/css/876e881d7ba02ed2.css","style"]
|
|
12
|
+
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/fddca953485158e4.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/876e881d7ba02ed2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"__variable_66b8ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var t=localStorage.getItem(\"annodex-theme\");if(t===\"dark\")document.documentElement.classList.add(\"dark\")}catch(e){}})();"}}]}],["$","body",null,{"style":{"minHeight":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","main",null,{"className":"fd-container annodex-home","children":[["$","section",null,{"className":"annodex-hero","children":[["$","div",null,{"className":"annodex-hero-copy","children":[["$","div",null,{"className":"annodex-eyebrow","children":"@seqyuan/annodex · browser-native Codex workspace"}],["$","h1",null,{"children":"让 Codex 成为真正可用的工作台"}],["$","p",null,{"className":"annodex-lead","children":"annodex 将项目、会话、文件、工具运行态和模型配置收敛到一个浏览器界面中, 为 AI 编程与分析工作流补上产品层。"}],["$","p",null,{"className":"annodex-sublead","children":"它不是替代 Codex,而是让 Codex 更适合真实团队、真实项目和真实迭代过程。"}],["$","div",null,{"className":"annodex-actions","children":[["$","$L5",null,{"href":"/docs","className":"annodex-button annodex-button-primary","children":["阅读文档 ",["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"M5 12h14","key":"1ays0h"}],["path",{"d":"m12 5 7 7-7 7","key":"xquz4c"}]],"className":"lucide-arrow-right","size":16}]]}],["$","$L5",null,{"href":"/workspace","className":"annodex-button annodex-button-secondary","children":["打开工作台 ",["$","$L6",null,{"ref":"$undefined","iconNode":[["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"}]],"className":"lucide-square-terminal","size":16}]]}]]}],["$","div",null,{"className":"annodex-install","children":[["$","span",null,{"children":"Quick start"}],["$","pre",null,{"children":["$","code",null,{"children":["npm i -g @seqyuan/annodex","\n","annodex"]}]}]]}]]}],["$","div",null,{"className":"annodex-preview","aria-label":"Annodex workspace preview","children":[["$","div",null,{"className":"annodex-preview-bar","children":[["$","span",null,{}],["$","span",null,{}],["$","span",null,{}],["$","div",null,{"children":"localhost:30121"}]]}],["$","div",null,{"className":"annodex-preview-body","children":[["$","aside",null,{"children":[["$","div",null,{"className":"annodex-preview-title","children":"Projects"}],["$","div",null,{"className":"annodex-preview-item annodex-preview-item-active","children":"rna-seq-atlas"}],["$","div",null,{"className":"annodex-preview-item","children":"single-cell-qc"}],["$","div",null,{"className":"annodex-preview-item","children":"variant-review"}]]}],["$","section",null,{"children":[["$","div",null,{"className":"annodex-preview-chips","children":[["$","span",null,{"children":"deepseek-chat"}],["$","span",null,{"children":"tools: full"}],["$","span",null,{"children":"thinking: medium"}]]}],"$L7","$L8","$L9"]}]]}]]}]]}],"$La","$Lb","$Lc","$Ld","$Le","$Lf"]}],null,"$L10"]}],{},null,false,null]},null,false,null],"$L11",false]],"m":"$undefined","G":["$12",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"oIqDpdOWwl7oIU6o8NnNp"}
|
|
13
|
+
13:I[90484,[],"OutletBoundary"]
|
|
14
|
+
14:"$Sreact.suspense"
|
|
15
|
+
16:I[90484,[],"ViewportBoundary"]
|
|
16
|
+
18:I[90484,[],"MetadataBoundary"]
|
|
17
|
+
7:["$","div",null,{"className":"annodex-bubble annodex-bubble-assistant","children":"我可以检查这个项目目录,总结当前分析进度,并起草发给同事的说明。"}]
|
|
18
|
+
8:["$","div",null,{"className":"annodex-bubble annodex-bubble-tool","children":[["$","strong",null,{"children":"Running tools"}],["$","div",null,{"className":"annodex-tool-flow","children":[["$","span",null,{"children":"read"}],["$","span",null,{"children":"grep"}],["$","span",null,{"children":"bash"}]]}]]}]
|
|
19
|
+
9:["$","div",null,{"className":"annodex-bubble annodex-bubble-user","children":"顺便整理成一份简洁的项目更新。"}]
|
|
20
|
+
a:["$","section",null,{"className":"annodex-section","children":[["$","div",null,{"className":"annodex-section-head","children":[["$","div",null,{"className":"annodex-kicker","children":"Why annodex"}],["$","h2",null,{"children":"不是又一个聊天框,而是可工作的壳层"}],["$","p",null,{"children":"CLI 强于执行,却不擅长文件审阅、状态追踪与多项目操作。annodex 的职责, 是把底层 agent 能力包装成更适合日常工作的界面。"}]]}],["$","div",null,{"className":"annodex-grid","children":[["$","article","项目驱动的会话管理",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z","key":"hod4my"}],["path",{"d":"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z","key":"w4yl2u"}],["path",{"d":"M3 5a2 2 0 0 0 2 2h3","key":"f2jnh7"}],["path",{"d":"M3 3v13a2 2 0 0 0 2 2h3","key":"k8epm1"}]],"className":"lucide-folder-tree","size":18}]}],["$","h3",null,{"children":"项目驱动的会话管理"}],["$","p",null,{"children":"按项目组织聊天、文件与上下文,而不是把工作散落在终端历史里。"}]]}],["$","article","实时运行态可见",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2","key":"169zse"}]],"className":"lucide-activity","size":18}]}],["$","h3",null,{"children":"实时运行态可见"}],["$","p",null,{"children":"工具执行、SSE 流、模型忙碌状态、停止按钮与进度反馈都可以直接观察。"}]]}],["$","article","模型与工具配置统一",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"M12 8V4H8","key":"hb8ula"}],["rect",{"width":"16","height":"12","x":"4","y":"8","rx":"2","key":"enze0r"}],["path",{"d":"M2 14h2","key":"vft8re"}],["path",{"d":"M20 14h2","key":"4cs60a"}],["path",{"d":"M15 13v2","key":"1xurst"}],["path",{"d":"M9 13v2","key":"rq6x2g"}]],"className":"lucide-bot","size":18}]}],["$","h3",null,{"children":"模型与工具配置统一"}],["$","p",null,{"children":"在浏览器中切换 provider、model、thinking level 与工具预设,降低使用门槛。"}]]}],["$","article","适合分析型工作流",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2","key":"18mbvz"}],["path",{"d":"M6.453 15h11.094","key":"3shlmq"}],["path",{"d":"M8.5 2h7","key":"csnxdl"}]],"className":"lucide-flask-conical","size":18}]}],["$","h3",null,{"children":"适合分析型工作流"}],["$","p",null,{"children":"代码、Markdown、图像、PDF、表格与报告在同一工作区中查看与整理。"}]]}]]}]]}]
|
|
21
|
+
b:["$","section",null,{"className":"annodex-section annodex-section-alt","children":[["$","div",null,{"className":"annodex-section-head","children":[["$","div",null,{"className":"annodex-kicker","children":"Architecture"}],["$","h2",null,{"children":"围绕 Codex app-server 构建的 Web 工作流"}],["$","p",null,{"children":"浏览器负责交互,Next.js 负责 API 与会话包装,Codex app-server 负责底层线程与 turn 协议。"}]]}],["$","div",null,{"className":"annodex-architecture","children":[["$","div",null,{"children":[["$","$L6",null,{"ref":"$undefined","iconNode":[["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"}]],"className":"lucide-panels-top-left","size":18}]," Browser UI"]}],["$","span",null,{"children":"→"}],["$","div",null,{"children":"Next.js Server"}],["$","span",null,{"children":"→"}],["$","div",null,{"children":"Codex app-server"}]]}]]}]
|
|
22
|
+
c:["$","section",null,{"className":"annodex-section","children":[["$","div",null,{"className":"annodex-section-head","children":[["$","div",null,{"className":"annodex-kicker","children":"Capabilities"}],["$","h2",null,{"children":"核心能力"}],["$","p",null,{"children":"annodex 关注的不是单次提问,而是项目生命周期中的连续工作体验。"}]]}],["$","div",null,{"className":"annodex-grid annodex-grid-three","children":[["$","article","会话、文件与结果同屏协作",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["rect",{"width":"8","height":"8","x":"3","y":"3","rx":"2","key":"by2w9f"}],["path",{"d":"M7 11v4a2 2 0 0 0 2 2h4","key":"xkn7yn"}],["rect",{"width":"8","height":"8","x":"13","y":"13","rx":"2","key":"1cgmvn"}]],"className":"lucide-workflow","size":18}]}],["$","h3",null,{"children":"会话、文件与结果同屏协作"}],["$","p",null,{"children":"在同一工作台中切换聊天、文件树、预览面板与分支导航,减少上下文切换成本。"}]]}],["$","article","SSE 事件流与运行反馈",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"M16.247 7.761a6 6 0 0 1 0 8.478","key":"1fwjs5"}],["path",{"d":"M19.075 4.933a10 10 0 0 1 0 14.134","key":"ehdyv1"}],["path",{"d":"M4.925 19.067a10 10 0 0 1 0-14.134","key":"1q22gi"}],["path",{"d":"M7.753 16.239a6 6 0 0 1 0-8.478","key":"r2q7qm"}],["circle",{"cx":"12","cy":"12","r":"2","key":"1c9p78"}]],"className":"lucide-radio","size":18}]}],["$","h3",null,{"children":"SSE 事件流与运行反馈"}],["$","p",null,{"children":"不只显示回答文本,也显示 agent 当前是否仍在工作、是否正在调用工具、是否需要重连。"}]]}],["$","article","Codex app-server 的产品外壳",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"m10.852 14.772-.383.923","key":"11vil6"}],["path",{"d":"M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923","key":"1v3clb"}],["path",{"d":"m13.148 9.228.383-.923","key":"t2zzyc"}],["path",{"d":"m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544","key":"1bxfiv"}],["path",{"d":"m14.772 10.852.923-.383","key":"k9m8cz"}],["path",{"d":"m14.772 13.148.923.383","key":"1xvhww"}],["path",{"d":"M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5","key":"tn8das"}],["path",{"d":"M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5","key":"1g2pve"}],["path",{"d":"M6 18h.01","key":"uhywen"}],["path",{"d":"M6 6h.01","key":"1utrut"}],["path",{"d":"m9.228 10.852-.923-.383","key":"1wtb30"}],["path",{"d":"m9.228 13.148-.923.383","key":"1a830x"}]],"className":"lucide-server-cog","size":18}]}],["$","h3",null,{"children":"Codex app-server 的产品外壳"}],["$","p",null,{"children":"保留底层 thread / turn 能力,同时在浏览器提供更友好的交互层与会话包装。"}]]}],["$","article","面向探索型工作的分支体验",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"M15 6a9 9 0 0 0-9 9V3","key":"1cii5b"}],["circle",{"cx":"18","cy":"6","r":"3","key":"1h7g24"}],["circle",{"cx":"6","cy":"18","r":"3","key":"fqmcym"}]],"className":"lucide-git-branch","size":18}]}],["$","h3",null,{"children":"面向探索型工作的分支体验"}],["$","p",null,{"children":"支持对话分支、历史导航与项目级上下文回看,适合多轮分析与方案比较。"}]]}],["$","article","对文档型工作更友好",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z","key":"1oefj6"}],["path",{"d":"M14 2v5a1 1 0 0 0 1 1h5","key":"wfsgrz"}],["path",{"d":"M10 9H8","key":"b1mrlr"}],["path",{"d":"M16 13H8","key":"t4e002"}],["path",{"d":"M16 17H8","key":"z1uh3a"}]],"className":"lucide-file-text","size":18}]}],["$","h3",null,{"children":"对文档型工作更友好"}],["$","p",null,{"children":"不仅适合 coding,也适合读报告、写说明、整理分析结果与输出结构化总结。"}]]}],["$","article","降低非 CLI 用户门槛",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":"$0:f:0:1:1:children:0:props:children:0:props:children:0:props:children:0:props:children:4:props:children:1:props:children:1:props:iconNode","className":"lucide-square-terminal","size":18}]}],["$","h3",null,{"children":"降低非 CLI 用户门槛"}],["$","p",null,{"children":"让团队成员无需长期停留在终端,也能理解 agent 在做什么、结果产出在哪里。"}]]}]]}]]}]
|
|
23
|
+
d:["$","section",null,{"className":"annodex-section annodex-section-alt","children":[["$","div",null,{"className":"annodex-section-head","children":[["$","div",null,{"className":"annodex-kicker","children":"Workflow"}],["$","h2",null,{"children":"典型使用路径"}]]}],["$","div",null,{"className":"annodex-workflow","children":[["$","div","选择项目目录",{"className":"annodex-workflow-step","children":[["$","div",null,{"className":"annodex-workflow-index","children":["0",1]}],["$","div",null,{"children":"选择项目目录"}]]}],["$","div","创建或继续会话",{"className":"annodex-workflow-step","children":[["$","div",null,{"className":"annodex-workflow-index","children":["0",2]}],["$","div",null,{"children":"创建或继续会话"}]]}],["$","div","查看文件与上下文",{"className":"annodex-workflow-step","children":[["$","div",null,{"className":"annodex-workflow-index","children":["0",3]}],["$","div",null,{"children":"查看文件与上下文"}]]}],["$","div","观察工具运行态",{"className":"annodex-workflow-step","children":[["$","div",null,{"className":"annodex-workflow-index","children":["0",4]}],["$","div",null,{"children":"观察工具运行态"}]]}],["$","div","输出结果或结论",{"className":"annodex-workflow-step","children":[["$","div",null,{"className":"annodex-workflow-index","children":["0",5]}],["$","div",null,{"children":"输出结果或结论"}]]}]]}]]}]
|
|
24
|
+
e:["$","section",null,{"className":"annodex-section","children":[["$","div",null,{"className":"annodex-section-head","children":[["$","div",null,{"className":"annodex-kicker","children":"Use cases"}],["$","h2",null,{"children":"适合哪些团队与任务"}]]}],["$","div",null,{"className":"annodex-usecases","children":[["$","div","生物信息学与数据分析项目",{"className":"annodex-usecase","children":"生物信息学与数据分析项目"}],["$","div","Codex / agent 工作流的浏览器前端",{"className":"annodex-usecase","children":"Codex / agent 工作流的浏览器前端"}],["$","div","团队演示、培训与非 CLI 用户接入",{"className":"annodex-usecase","children":"团队演示、培训与非 CLI 用户接入"}],["$","div","多项目知识工作与持续迭代协作",{"className":"annodex-usecase","children":"多项目知识工作与持续迭代协作"}]]}]]}]
|
|
25
|
+
f:["$","section",null,{"className":"annodex-section annodex-cta-section","children":["$","div",null,{"className":"annodex-cta-card","children":[["$","div",null,{"children":[["$","div",null,{"className":"annodex-kicker","children":"Start"}],["$","h2",null,{"children":"先读文档,再进入工作台"}],["$","p",null,{"children":"如果你希望把 Codex 接入更稳定的浏览器工作流,最合理的起点是先了解结构,再开始使用。"}]]}],["$","div",null,{"className":"annodex-actions","children":[["$","$L5",null,{"href":"/docs","className":"annodex-button annodex-button-primary","children":"查看文档"}],["$","$L5",null,{"href":"/workspace","className":"annodex-button annodex-button-secondary","children":"进入工作台"}]]}]]}]}]
|
|
26
|
+
10:["$","$L13",null,{"children":["$","$14",null,{"name":"Next.MetadataOutlet","children":"$@15"}]}]
|
|
27
|
+
11:["$","$1","h",{"children":[null,["$","$L16",null,{"children":"$L17"}],["$","div",null,{"hidden":true,"children":["$","$L18",null,{"children":["$","$14",null,{"name":"Next.Metadata","children":"$L19"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}]
|
|
28
|
+
17:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
29
|
+
1a:I[86869,[],"IconMark"]
|
|
30
|
+
15:null
|
|
31
|
+
19:[["$","title","0",{"children":"annodex"}],["$","meta","1",{"name":"description","content":"AI-native bioinformatics workspace by Annoroad"}],["$","link","2",{"rel":"shortcut icon","href":"/favicon.svg","type":"image/svg+xml"}],["$","link","3",{"rel":"icon","href":"/favicon.svg","type":"image/svg+xml"}],["$","$L1a","4",{}]]
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:"
|
|
3
|
-
3:I[
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
5:null
|
|
2
|
+
2:I[98500,["8500","static/chunks/8500-f62a38ff68ab7f42.js","8974","static/chunks/app/page-eb62ac677a87b790.js"],""]
|
|
3
|
+
3:I[99535,["8500","static/chunks/8500-f62a38ff68ab7f42.js","8974","static/chunks/app/page-eb62ac677a87b790.js"],"default"]
|
|
4
|
+
c:I[90484,[],"OutletBoundary"]
|
|
5
|
+
d:"$Sreact.suspense"
|
|
6
|
+
0:{"rsc":["$","$1","c",{"children":[["$","main",null,{"className":"fd-container annodex-home","children":[["$","section",null,{"className":"annodex-hero","children":[["$","div",null,{"className":"annodex-hero-copy","children":[["$","div",null,{"className":"annodex-eyebrow","children":"@seqyuan/annodex · browser-native Codex workspace"}],["$","h1",null,{"children":"让 Codex 成为真正可用的工作台"}],["$","p",null,{"className":"annodex-lead","children":"annodex 将项目、会话、文件、工具运行态和模型配置收敛到一个浏览器界面中, 为 AI 编程与分析工作流补上产品层。"}],["$","p",null,{"className":"annodex-sublead","children":"它不是替代 Codex,而是让 Codex 更适合真实团队、真实项目和真实迭代过程。"}],["$","div",null,{"className":"annodex-actions","children":[["$","$L2",null,{"href":"/docs","className":"annodex-button annodex-button-primary","children":["阅读文档 ",["$","$L3",null,{"iconNode":[["path",{"d":"M5 12h14","key":"1ays0h"}],["path",{"d":"m12 5 7 7-7 7","key":"xquz4c"}]],"className":"lucide-arrow-right","size":16}]]}],["$","$L2",null,{"href":"/workspace","className":"annodex-button annodex-button-secondary","children":["打开工作台 ",["$","$L3",null,{"iconNode":[["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"}]],"className":"lucide-square-terminal","size":16}]]}]]}],["$","div",null,{"className":"annodex-install","children":[["$","span",null,{"children":"Quick start"}],["$","pre",null,{"children":["$","code",null,{"children":["npm i -g @seqyuan/annodex","\n","annodex"]}]}]]}]]}],["$","div",null,{"className":"annodex-preview","aria-label":"Annodex workspace preview","children":[["$","div",null,{"className":"annodex-preview-bar","children":[["$","span",null,{}],["$","span",null,{}],["$","span",null,{}],["$","div",null,{"children":"localhost:30121"}]]}],["$","div",null,{"className":"annodex-preview-body","children":[["$","aside",null,{"children":[["$","div",null,{"className":"annodex-preview-title","children":"Projects"}],["$","div",null,{"className":"annodex-preview-item annodex-preview-item-active","children":"rna-seq-atlas"}],["$","div",null,{"className":"annodex-preview-item","children":"single-cell-qc"}],["$","div",null,{"className":"annodex-preview-item","children":"variant-review"}]]}],["$","section",null,{"children":[["$","div",null,{"className":"annodex-preview-chips","children":[["$","span",null,{"children":"deepseek-chat"}],["$","span",null,{"children":"tools: full"}],["$","span",null,{"children":"thinking: medium"}]]}],["$","div",null,{"className":"annodex-bubble annodex-bubble-assistant","children":"我可以检查这个项目目录,总结当前分析进度,并起草发给同事的说明。"}],["$","div",null,{"className":"annodex-bubble annodex-bubble-tool","children":[["$","strong",null,{"children":"Running tools"}],["$","div",null,{"className":"annodex-tool-flow","children":[["$","span",null,{"children":"read"}],["$","span",null,{"children":"grep"}],["$","span",null,{"children":"bash"}]]}]]}],["$","div",null,{"className":"annodex-bubble annodex-bubble-user","children":"顺便整理成一份简洁的项目更新。"}]]}]]}]]}]]}],["$","section",null,{"className":"annodex-section","children":[["$","div",null,{"className":"annodex-section-head","children":[["$","div",null,{"className":"annodex-kicker","children":"Why annodex"}],["$","h2",null,{"children":"不是又一个聊天框,而是可工作的壳层"}],["$","p",null,{"children":"CLI 强于执行,却不擅长文件审阅、状态追踪与多项目操作。annodex 的职责, 是把底层 agent 能力包装成更适合日常工作的界面。"}]]}],["$","div",null,{"className":"annodex-grid","children":[["$","article","项目驱动的会话管理",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L3",null,{"iconNode":[["path",{"d":"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z","key":"hod4my"}],["path",{"d":"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z","key":"w4yl2u"}],["path",{"d":"M3 5a2 2 0 0 0 2 2h3","key":"f2jnh7"}],["path",{"d":"M3 3v13a2 2 0 0 0 2 2h3","key":"k8epm1"}]],"className":"lucide-folder-tree","size":18}]}],["$","h3",null,{"children":"项目驱动的会话管理"}],["$","p",null,{"children":"按项目组织聊天、文件与上下文,而不是把工作散落在终端历史里。"}]]}],["$","article","实时运行态可见",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L3",null,{"iconNode":[["path",{"d":"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2","key":"169zse"}]],"className":"lucide-activity","size":18}]}],["$","h3",null,{"children":"实时运行态可见"}],["$","p",null,{"children":"工具执行、SSE 流、模型忙碌状态、停止按钮与进度反馈都可以直接观察。"}]]}],"$L4","$L5"]}]]}],"$L6","$L7","$L8","$L9","$La"]}],null,"$Lb"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"oIqDpdOWwl7oIU6o8NnNp"}
|
|
7
|
+
4:["$","article","模型与工具配置统一",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L3",null,{"iconNode":[["path",{"d":"M12 8V4H8","key":"hb8ula"}],["rect",{"width":"16","height":"12","x":"4","y":"8","rx":"2","key":"enze0r"}],["path",{"d":"M2 14h2","key":"vft8re"}],["path",{"d":"M20 14h2","key":"4cs60a"}],["path",{"d":"M15 13v2","key":"1xurst"}],["path",{"d":"M9 13v2","key":"rq6x2g"}]],"className":"lucide-bot","size":18}]}],["$","h3",null,{"children":"模型与工具配置统一"}],["$","p",null,{"children":"在浏览器中切换 provider、model、thinking level 与工具预设,降低使用门槛。"}]]}]
|
|
8
|
+
5:["$","article","适合分析型工作流",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L3",null,{"iconNode":[["path",{"d":"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2","key":"18mbvz"}],["path",{"d":"M6.453 15h11.094","key":"3shlmq"}],["path",{"d":"M8.5 2h7","key":"csnxdl"}]],"className":"lucide-flask-conical","size":18}]}],["$","h3",null,{"children":"适合分析型工作流"}],["$","p",null,{"children":"代码、Markdown、图像、PDF、表格与报告在同一工作区中查看与整理。"}]]}]
|
|
9
|
+
6:["$","section",null,{"className":"annodex-section annodex-section-alt","children":[["$","div",null,{"className":"annodex-section-head","children":[["$","div",null,{"className":"annodex-kicker","children":"Architecture"}],["$","h2",null,{"children":"围绕 Codex app-server 构建的 Web 工作流"}],["$","p",null,{"children":"浏览器负责交互,Next.js 负责 API 与会话包装,Codex app-server 负责底层线程与 turn 协议。"}]]}],["$","div",null,{"className":"annodex-architecture","children":[["$","div",null,{"children":[["$","$L3",null,{"iconNode":[["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"}]],"className":"lucide-panels-top-left","size":18}]," Browser UI"]}],["$","span",null,{"children":"→"}],["$","div",null,{"children":"Next.js Server"}],["$","span",null,{"children":"→"}],["$","div",null,{"children":"Codex app-server"}]]}]]}]
|
|
10
|
+
7:["$","section",null,{"className":"annodex-section","children":[["$","div",null,{"className":"annodex-section-head","children":[["$","div",null,{"className":"annodex-kicker","children":"Capabilities"}],["$","h2",null,{"children":"核心能力"}],["$","p",null,{"children":"annodex 关注的不是单次提问,而是项目生命周期中的连续工作体验。"}]]}],["$","div",null,{"className":"annodex-grid annodex-grid-three","children":[["$","article","会话、文件与结果同屏协作",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L3",null,{"iconNode":[["rect",{"width":"8","height":"8","x":"3","y":"3","rx":"2","key":"by2w9f"}],["path",{"d":"M7 11v4a2 2 0 0 0 2 2h4","key":"xkn7yn"}],["rect",{"width":"8","height":"8","x":"13","y":"13","rx":"2","key":"1cgmvn"}]],"className":"lucide-workflow","size":18}]}],["$","h3",null,{"children":"会话、文件与结果同屏协作"}],["$","p",null,{"children":"在同一工作台中切换聊天、文件树、预览面板与分支导航,减少上下文切换成本。"}]]}],["$","article","SSE 事件流与运行反馈",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L3",null,{"iconNode":[["path",{"d":"M16.247 7.761a6 6 0 0 1 0 8.478","key":"1fwjs5"}],["path",{"d":"M19.075 4.933a10 10 0 0 1 0 14.134","key":"ehdyv1"}],["path",{"d":"M4.925 19.067a10 10 0 0 1 0-14.134","key":"1q22gi"}],["path",{"d":"M7.753 16.239a6 6 0 0 1 0-8.478","key":"r2q7qm"}],["circle",{"cx":"12","cy":"12","r":"2","key":"1c9p78"}]],"className":"lucide-radio","size":18}]}],["$","h3",null,{"children":"SSE 事件流与运行反馈"}],["$","p",null,{"children":"不只显示回答文本,也显示 agent 当前是否仍在工作、是否正在调用工具、是否需要重连。"}]]}],["$","article","Codex app-server 的产品外壳",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L3",null,{"iconNode":[["path",{"d":"m10.852 14.772-.383.923","key":"11vil6"}],["path",{"d":"M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923","key":"1v3clb"}],["path",{"d":"m13.148 9.228.383-.923","key":"t2zzyc"}],["path",{"d":"m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544","key":"1bxfiv"}],["path",{"d":"m14.772 10.852.923-.383","key":"k9m8cz"}],["path",{"d":"m14.772 13.148.923.383","key":"1xvhww"}],["path",{"d":"M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5","key":"tn8das"}],["path",{"d":"M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5","key":"1g2pve"}],["path",{"d":"M6 18h.01","key":"uhywen"}],["path",{"d":"M6 6h.01","key":"1utrut"}],["path",{"d":"m9.228 10.852-.923-.383","key":"1wtb30"}],["path",{"d":"m9.228 13.148-.923.383","key":"1a830x"}]],"className":"lucide-server-cog","size":18}]}],["$","h3",null,{"children":"Codex app-server 的产品外壳"}],["$","p",null,{"children":"保留底层 thread / turn 能力,同时在浏览器提供更友好的交互层与会话包装。"}]]}],["$","article","面向探索型工作的分支体验",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L3",null,{"iconNode":[["path",{"d":"M15 6a9 9 0 0 0-9 9V3","key":"1cii5b"}],["circle",{"cx":"18","cy":"6","r":"3","key":"1h7g24"}],["circle",{"cx":"6","cy":"18","r":"3","key":"fqmcym"}]],"className":"lucide-git-branch","size":18}]}],["$","h3",null,{"children":"面向探索型工作的分支体验"}],["$","p",null,{"children":"支持对话分支、历史导航与项目级上下文回看,适合多轮分析与方案比较。"}]]}],["$","article","对文档型工作更友好",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L3",null,{"iconNode":[["path",{"d":"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z","key":"1oefj6"}],["path",{"d":"M14 2v5a1 1 0 0 0 1 1h5","key":"wfsgrz"}],["path",{"d":"M10 9H8","key":"b1mrlr"}],["path",{"d":"M16 13H8","key":"t4e002"}],["path",{"d":"M16 17H8","key":"z1uh3a"}]],"className":"lucide-file-text","size":18}]}],["$","h3",null,{"children":"对文档型工作更友好"}],["$","p",null,{"children":"不仅适合 coding,也适合读报告、写说明、整理分析结果与输出结构化总结。"}]]}],["$","article","降低非 CLI 用户门槛",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L3",null,{"iconNode":"$0:rsc:props:children:0:props:children:0:props:children:0:props:children:4:props:children:1:props:children:1:props:iconNode","className":"lucide-square-terminal","size":18}]}],["$","h3",null,{"children":"降低非 CLI 用户门槛"}],["$","p",null,{"children":"让团队成员无需长期停留在终端,也能理解 agent 在做什么、结果产出在哪里。"}]]}]]}]]}]
|
|
11
|
+
8:["$","section",null,{"className":"annodex-section annodex-section-alt","children":[["$","div",null,{"className":"annodex-section-head","children":[["$","div",null,{"className":"annodex-kicker","children":"Workflow"}],["$","h2",null,{"children":"典型使用路径"}]]}],["$","div",null,{"className":"annodex-workflow","children":[["$","div","选择项目目录",{"className":"annodex-workflow-step","children":[["$","div",null,{"className":"annodex-workflow-index","children":["0",1]}],["$","div",null,{"children":"选择项目目录"}]]}],["$","div","创建或继续会话",{"className":"annodex-workflow-step","children":[["$","div",null,{"className":"annodex-workflow-index","children":["0",2]}],["$","div",null,{"children":"创建或继续会话"}]]}],["$","div","查看文件与上下文",{"className":"annodex-workflow-step","children":[["$","div",null,{"className":"annodex-workflow-index","children":["0",3]}],["$","div",null,{"children":"查看文件与上下文"}]]}],["$","div","观察工具运行态",{"className":"annodex-workflow-step","children":[["$","div",null,{"className":"annodex-workflow-index","children":["0",4]}],["$","div",null,{"children":"观察工具运行态"}]]}],["$","div","输出结果或结论",{"className":"annodex-workflow-step","children":[["$","div",null,{"className":"annodex-workflow-index","children":["0",5]}],["$","div",null,{"children":"输出结果或结论"}]]}]]}]]}]
|
|
12
|
+
9:["$","section",null,{"className":"annodex-section","children":[["$","div",null,{"className":"annodex-section-head","children":[["$","div",null,{"className":"annodex-kicker","children":"Use cases"}],["$","h2",null,{"children":"适合哪些团队与任务"}]]}],["$","div",null,{"className":"annodex-usecases","children":[["$","div","生物信息学与数据分析项目",{"className":"annodex-usecase","children":"生物信息学与数据分析项目"}],["$","div","Codex / agent 工作流的浏览器前端",{"className":"annodex-usecase","children":"Codex / agent 工作流的浏览器前端"}],["$","div","团队演示、培训与非 CLI 用户接入",{"className":"annodex-usecase","children":"团队演示、培训与非 CLI 用户接入"}],["$","div","多项目知识工作与持续迭代协作",{"className":"annodex-usecase","children":"多项目知识工作与持续迭代协作"}]]}]]}]
|
|
13
|
+
a:["$","section",null,{"className":"annodex-section annodex-cta-section","children":["$","div",null,{"className":"annodex-cta-card","children":[["$","div",null,{"children":[["$","div",null,{"className":"annodex-kicker","children":"Start"}],["$","h2",null,{"children":"先读文档,再进入工作台"}],["$","p",null,{"children":"如果你希望把 Codex 接入更稳定的浏览器工作流,最合理的起点是先了解结构,再开始使用。"}]]}],["$","div",null,{"className":"annodex-actions","children":[["$","$L2",null,{"href":"/docs","className":"annodex-button annodex-button-primary","children":"查看文档"}],["$","$L2",null,{"href":"/workspace","className":"annodex-button annodex-button-secondary","children":"进入工作台"}]]}]]}]}]
|
|
14
|
+
b:["$","$Lc",null,{"children":["$","$d",null,{"name":"Next.MetadataOutlet","children":"$@e"}]}]
|
|
15
|
+
e:null
|
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[
|
|
3
|
-
3:I[
|
|
4
|
-
4:"
|
|
5
|
-
5:I[
|
|
6
|
-
6:I[
|
|
7
|
-
|
|
8
|
-
a:I[90484,[],"MetadataBoundary"]
|
|
9
|
-
c:I[27123,[],"default",1]
|
|
2
|
+
2:I[67504,["8500","static/chunks/8500-f62a38ff68ab7f42.js","5122","static/chunks/5122-6e0d29bd15f079e1.js","7177","static/chunks/app/layout-11cc1f48ff425fd0.js"],"RootProvider"]
|
|
3
|
+
3:I[57121,[],""]
|
|
4
|
+
4:I[74581,[],""]
|
|
5
|
+
5:I[98500,["8500","static/chunks/8500-f62a38ff68ab7f42.js","8974","static/chunks/app/page-eb62ac677a87b790.js"],""]
|
|
6
|
+
6:I[99535,["8500","static/chunks/8500-f62a38ff68ab7f42.js","8974","static/chunks/app/page-eb62ac677a87b790.js"],"default"]
|
|
7
|
+
12:I[27123,[],"default",1]
|
|
10
8
|
:HL["/_next/static/media/7deddc85b7ffd1dc-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
11
9
|
:HL["/_next/static/media/ec14413c594b3356-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
12
|
-
:HL["/_next/static/css/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
:HL["/_next/static/css/fddca953485158e4.css","style"]
|
|
11
|
+
:HL["/_next/static/css/876e881d7ba02ed2.css","style"]
|
|
12
|
+
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/fddca953485158e4.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/876e881d7ba02ed2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"__variable_66b8ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var t=localStorage.getItem(\"annodex-theme\");if(t===\"dark\")document.documentElement.classList.add(\"dark\")}catch(e){}})();"}}]}],["$","body",null,{"style":{"minHeight":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","main",null,{"className":"fd-container annodex-home","children":[["$","section",null,{"className":"annodex-hero","children":[["$","div",null,{"className":"annodex-hero-copy","children":[["$","div",null,{"className":"annodex-eyebrow","children":"@seqyuan/annodex · browser-native Codex workspace"}],["$","h1",null,{"children":"让 Codex 成为真正可用的工作台"}],["$","p",null,{"className":"annodex-lead","children":"annodex 将项目、会话、文件、工具运行态和模型配置收敛到一个浏览器界面中, 为 AI 编程与分析工作流补上产品层。"}],["$","p",null,{"className":"annodex-sublead","children":"它不是替代 Codex,而是让 Codex 更适合真实团队、真实项目和真实迭代过程。"}],["$","div",null,{"className":"annodex-actions","children":[["$","$L5",null,{"href":"/docs","className":"annodex-button annodex-button-primary","children":["阅读文档 ",["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"M5 12h14","key":"1ays0h"}],["path",{"d":"m12 5 7 7-7 7","key":"xquz4c"}]],"className":"lucide-arrow-right","size":16}]]}],["$","$L5",null,{"href":"/workspace","className":"annodex-button annodex-button-secondary","children":["打开工作台 ",["$","$L6",null,{"ref":"$undefined","iconNode":[["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"}]],"className":"lucide-square-terminal","size":16}]]}]]}],["$","div",null,{"className":"annodex-install","children":[["$","span",null,{"children":"Quick start"}],["$","pre",null,{"children":["$","code",null,{"children":["npm i -g @seqyuan/annodex","\n","annodex"]}]}]]}]]}],["$","div",null,{"className":"annodex-preview","aria-label":"Annodex workspace preview","children":[["$","div",null,{"className":"annodex-preview-bar","children":[["$","span",null,{}],["$","span",null,{}],["$","span",null,{}],["$","div",null,{"children":"localhost:30121"}]]}],["$","div",null,{"className":"annodex-preview-body","children":[["$","aside",null,{"children":[["$","div",null,{"className":"annodex-preview-title","children":"Projects"}],["$","div",null,{"className":"annodex-preview-item annodex-preview-item-active","children":"rna-seq-atlas"}],["$","div",null,{"className":"annodex-preview-item","children":"single-cell-qc"}],["$","div",null,{"className":"annodex-preview-item","children":"variant-review"}]]}],["$","section",null,{"children":[["$","div",null,{"className":"annodex-preview-chips","children":[["$","span",null,{"children":"deepseek-chat"}],["$","span",null,{"children":"tools: full"}],["$","span",null,{"children":"thinking: medium"}]]}],"$L7","$L8","$L9"]}]]}]]}]]}],"$La","$Lb","$Lc","$Ld","$Le","$Lf"]}],null,"$L10"]}],{},null,false,null]},null,false,null],"$L11",false]],"m":"$undefined","G":["$12",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"oIqDpdOWwl7oIU6o8NnNp"}
|
|
13
|
+
13:I[90484,[],"OutletBoundary"]
|
|
14
|
+
14:"$Sreact.suspense"
|
|
15
|
+
16:I[90484,[],"ViewportBoundary"]
|
|
16
|
+
18:I[90484,[],"MetadataBoundary"]
|
|
17
|
+
7:["$","div",null,{"className":"annodex-bubble annodex-bubble-assistant","children":"我可以检查这个项目目录,总结当前分析进度,并起草发给同事的说明。"}]
|
|
18
|
+
8:["$","div",null,{"className":"annodex-bubble annodex-bubble-tool","children":[["$","strong",null,{"children":"Running tools"}],["$","div",null,{"className":"annodex-tool-flow","children":[["$","span",null,{"children":"read"}],["$","span",null,{"children":"grep"}],["$","span",null,{"children":"bash"}]]}]]}]
|
|
19
|
+
9:["$","div",null,{"className":"annodex-bubble annodex-bubble-user","children":"顺便整理成一份简洁的项目更新。"}]
|
|
20
|
+
a:["$","section",null,{"className":"annodex-section","children":[["$","div",null,{"className":"annodex-section-head","children":[["$","div",null,{"className":"annodex-kicker","children":"Why annodex"}],["$","h2",null,{"children":"不是又一个聊天框,而是可工作的壳层"}],["$","p",null,{"children":"CLI 强于执行,却不擅长文件审阅、状态追踪与多项目操作。annodex 的职责, 是把底层 agent 能力包装成更适合日常工作的界面。"}]]}],["$","div",null,{"className":"annodex-grid","children":[["$","article","项目驱动的会话管理",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z","key":"hod4my"}],["path",{"d":"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z","key":"w4yl2u"}],["path",{"d":"M3 5a2 2 0 0 0 2 2h3","key":"f2jnh7"}],["path",{"d":"M3 3v13a2 2 0 0 0 2 2h3","key":"k8epm1"}]],"className":"lucide-folder-tree","size":18}]}],["$","h3",null,{"children":"项目驱动的会话管理"}],["$","p",null,{"children":"按项目组织聊天、文件与上下文,而不是把工作散落在终端历史里。"}]]}],["$","article","实时运行态可见",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2","key":"169zse"}]],"className":"lucide-activity","size":18}]}],["$","h3",null,{"children":"实时运行态可见"}],["$","p",null,{"children":"工具执行、SSE 流、模型忙碌状态、停止按钮与进度反馈都可以直接观察。"}]]}],["$","article","模型与工具配置统一",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"M12 8V4H8","key":"hb8ula"}],["rect",{"width":"16","height":"12","x":"4","y":"8","rx":"2","key":"enze0r"}],["path",{"d":"M2 14h2","key":"vft8re"}],["path",{"d":"M20 14h2","key":"4cs60a"}],["path",{"d":"M15 13v2","key":"1xurst"}],["path",{"d":"M9 13v2","key":"rq6x2g"}]],"className":"lucide-bot","size":18}]}],["$","h3",null,{"children":"模型与工具配置统一"}],["$","p",null,{"children":"在浏览器中切换 provider、model、thinking level 与工具预设,降低使用门槛。"}]]}],["$","article","适合分析型工作流",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2","key":"18mbvz"}],["path",{"d":"M6.453 15h11.094","key":"3shlmq"}],["path",{"d":"M8.5 2h7","key":"csnxdl"}]],"className":"lucide-flask-conical","size":18}]}],["$","h3",null,{"children":"适合分析型工作流"}],["$","p",null,{"children":"代码、Markdown、图像、PDF、表格与报告在同一工作区中查看与整理。"}]]}]]}]]}]
|
|
21
|
+
b:["$","section",null,{"className":"annodex-section annodex-section-alt","children":[["$","div",null,{"className":"annodex-section-head","children":[["$","div",null,{"className":"annodex-kicker","children":"Architecture"}],["$","h2",null,{"children":"围绕 Codex app-server 构建的 Web 工作流"}],["$","p",null,{"children":"浏览器负责交互,Next.js 负责 API 与会话包装,Codex app-server 负责底层线程与 turn 协议。"}]]}],["$","div",null,{"className":"annodex-architecture","children":[["$","div",null,{"children":[["$","$L6",null,{"ref":"$undefined","iconNode":[["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"}]],"className":"lucide-panels-top-left","size":18}]," Browser UI"]}],["$","span",null,{"children":"→"}],["$","div",null,{"children":"Next.js Server"}],["$","span",null,{"children":"→"}],["$","div",null,{"children":"Codex app-server"}]]}]]}]
|
|
22
|
+
c:["$","section",null,{"className":"annodex-section","children":[["$","div",null,{"className":"annodex-section-head","children":[["$","div",null,{"className":"annodex-kicker","children":"Capabilities"}],["$","h2",null,{"children":"核心能力"}],["$","p",null,{"children":"annodex 关注的不是单次提问,而是项目生命周期中的连续工作体验。"}]]}],["$","div",null,{"className":"annodex-grid annodex-grid-three","children":[["$","article","会话、文件与结果同屏协作",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["rect",{"width":"8","height":"8","x":"3","y":"3","rx":"2","key":"by2w9f"}],["path",{"d":"M7 11v4a2 2 0 0 0 2 2h4","key":"xkn7yn"}],["rect",{"width":"8","height":"8","x":"13","y":"13","rx":"2","key":"1cgmvn"}]],"className":"lucide-workflow","size":18}]}],["$","h3",null,{"children":"会话、文件与结果同屏协作"}],["$","p",null,{"children":"在同一工作台中切换聊天、文件树、预览面板与分支导航,减少上下文切换成本。"}]]}],["$","article","SSE 事件流与运行反馈",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"M16.247 7.761a6 6 0 0 1 0 8.478","key":"1fwjs5"}],["path",{"d":"M19.075 4.933a10 10 0 0 1 0 14.134","key":"ehdyv1"}],["path",{"d":"M4.925 19.067a10 10 0 0 1 0-14.134","key":"1q22gi"}],["path",{"d":"M7.753 16.239a6 6 0 0 1 0-8.478","key":"r2q7qm"}],["circle",{"cx":"12","cy":"12","r":"2","key":"1c9p78"}]],"className":"lucide-radio","size":18}]}],["$","h3",null,{"children":"SSE 事件流与运行反馈"}],["$","p",null,{"children":"不只显示回答文本,也显示 agent 当前是否仍在工作、是否正在调用工具、是否需要重连。"}]]}],["$","article","Codex app-server 的产品外壳",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"m10.852 14.772-.383.923","key":"11vil6"}],["path",{"d":"M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923","key":"1v3clb"}],["path",{"d":"m13.148 9.228.383-.923","key":"t2zzyc"}],["path",{"d":"m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544","key":"1bxfiv"}],["path",{"d":"m14.772 10.852.923-.383","key":"k9m8cz"}],["path",{"d":"m14.772 13.148.923.383","key":"1xvhww"}],["path",{"d":"M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5","key":"tn8das"}],["path",{"d":"M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5","key":"1g2pve"}],["path",{"d":"M6 18h.01","key":"uhywen"}],["path",{"d":"M6 6h.01","key":"1utrut"}],["path",{"d":"m9.228 10.852-.923-.383","key":"1wtb30"}],["path",{"d":"m9.228 13.148-.923.383","key":"1a830x"}]],"className":"lucide-server-cog","size":18}]}],["$","h3",null,{"children":"Codex app-server 的产品外壳"}],["$","p",null,{"children":"保留底层 thread / turn 能力,同时在浏览器提供更友好的交互层与会话包装。"}]]}],["$","article","面向探索型工作的分支体验",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"M15 6a9 9 0 0 0-9 9V3","key":"1cii5b"}],["circle",{"cx":"18","cy":"6","r":"3","key":"1h7g24"}],["circle",{"cx":"6","cy":"18","r":"3","key":"fqmcym"}]],"className":"lucide-git-branch","size":18}]}],["$","h3",null,{"children":"面向探索型工作的分支体验"}],["$","p",null,{"children":"支持对话分支、历史导航与项目级上下文回看,适合多轮分析与方案比较。"}]]}],["$","article","对文档型工作更友好",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":[["path",{"d":"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z","key":"1oefj6"}],["path",{"d":"M14 2v5a1 1 0 0 0 1 1h5","key":"wfsgrz"}],["path",{"d":"M10 9H8","key":"b1mrlr"}],["path",{"d":"M16 13H8","key":"t4e002"}],["path",{"d":"M16 17H8","key":"z1uh3a"}]],"className":"lucide-file-text","size":18}]}],["$","h3",null,{"children":"对文档型工作更友好"}],["$","p",null,{"children":"不仅适合 coding,也适合读报告、写说明、整理分析结果与输出结构化总结。"}]]}],["$","article","降低非 CLI 用户门槛",{"className":"annodex-card","children":[["$","div",null,{"className":"annodex-card-icon","children":["$","$L6",null,{"ref":"$undefined","iconNode":"$0:f:0:1:1:children:0:props:children:0:props:children:0:props:children:0:props:children:4:props:children:1:props:children:1:props:iconNode","className":"lucide-square-terminal","size":18}]}],["$","h3",null,{"children":"降低非 CLI 用户门槛"}],["$","p",null,{"children":"让团队成员无需长期停留在终端,也能理解 agent 在做什么、结果产出在哪里。"}]]}]]}]]}]
|
|
23
|
+
d:["$","section",null,{"className":"annodex-section annodex-section-alt","children":[["$","div",null,{"className":"annodex-section-head","children":[["$","div",null,{"className":"annodex-kicker","children":"Workflow"}],["$","h2",null,{"children":"典型使用路径"}]]}],["$","div",null,{"className":"annodex-workflow","children":[["$","div","选择项目目录",{"className":"annodex-workflow-step","children":[["$","div",null,{"className":"annodex-workflow-index","children":["0",1]}],["$","div",null,{"children":"选择项目目录"}]]}],["$","div","创建或继续会话",{"className":"annodex-workflow-step","children":[["$","div",null,{"className":"annodex-workflow-index","children":["0",2]}],["$","div",null,{"children":"创建或继续会话"}]]}],["$","div","查看文件与上下文",{"className":"annodex-workflow-step","children":[["$","div",null,{"className":"annodex-workflow-index","children":["0",3]}],["$","div",null,{"children":"查看文件与上下文"}]]}],["$","div","观察工具运行态",{"className":"annodex-workflow-step","children":[["$","div",null,{"className":"annodex-workflow-index","children":["0",4]}],["$","div",null,{"children":"观察工具运行态"}]]}],["$","div","输出结果或结论",{"className":"annodex-workflow-step","children":[["$","div",null,{"className":"annodex-workflow-index","children":["0",5]}],["$","div",null,{"children":"输出结果或结论"}]]}]]}]]}]
|
|
24
|
+
e:["$","section",null,{"className":"annodex-section","children":[["$","div",null,{"className":"annodex-section-head","children":[["$","div",null,{"className":"annodex-kicker","children":"Use cases"}],["$","h2",null,{"children":"适合哪些团队与任务"}]]}],["$","div",null,{"className":"annodex-usecases","children":[["$","div","生物信息学与数据分析项目",{"className":"annodex-usecase","children":"生物信息学与数据分析项目"}],["$","div","Codex / agent 工作流的浏览器前端",{"className":"annodex-usecase","children":"Codex / agent 工作流的浏览器前端"}],["$","div","团队演示、培训与非 CLI 用户接入",{"className":"annodex-usecase","children":"团队演示、培训与非 CLI 用户接入"}],["$","div","多项目知识工作与持续迭代协作",{"className":"annodex-usecase","children":"多项目知识工作与持续迭代协作"}]]}]]}]
|
|
25
|
+
f:["$","section",null,{"className":"annodex-section annodex-cta-section","children":["$","div",null,{"className":"annodex-cta-card","children":[["$","div",null,{"children":[["$","div",null,{"className":"annodex-kicker","children":"Start"}],["$","h2",null,{"children":"先读文档,再进入工作台"}],["$","p",null,{"children":"如果你希望把 Codex 接入更稳定的浏览器工作流,最合理的起点是先了解结构,再开始使用。"}]]}],["$","div",null,{"className":"annodex-actions","children":[["$","$L5",null,{"href":"/docs","className":"annodex-button annodex-button-primary","children":"查看文档"}],["$","$L5",null,{"href":"/workspace","className":"annodex-button annodex-button-secondary","children":"进入工作台"}]]}]]}]}]
|
|
26
|
+
10:["$","$L13",null,{"children":["$","$14",null,{"name":"Next.MetadataOutlet","children":"$@15"}]}]
|
|
27
|
+
11:["$","$1","h",{"children":[null,["$","$L16",null,{"children":"$L17"}],["$","div",null,{"hidden":true,"children":["$","$L18",null,{"children":["$","$14",null,{"name":"Next.Metadata","children":"$L19"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}]
|
|
28
|
+
17:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
29
|
+
1a:I[86869,[],"IconMark"]
|
|
30
|
+
15:null
|
|
31
|
+
19:[["$","title","0",{"children":"annodex"}],["$","meta","1",{"name":"description","content":"AI-native bioinformatics workspace by Annoroad"}],["$","link","2",{"rel":"shortcut icon","href":"/favicon.svg","type":"image/svg+xml"}],["$","link","3",{"rel":"icon","href":"/favicon.svg","type":"image/svg+xml"}],["$","$L1a","4",{}]]
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
3:I[90484,[],"MetadataBoundary"]
|
|
4
4
|
4:"$Sreact.suspense"
|
|
5
5
|
5:I[86869,[],"IconMark"]
|
|
6
|
-
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"annodex"}],["$","meta","1",{"name":"description","content":"AI-native bioinformatics workspace by Annoroad"}],["$","link","2",{"rel":"shortcut icon","href":"/favicon.svg","type":"image/svg+xml"}],["$","link","3",{"rel":"icon","href":"/favicon.svg","type":"image/svg+xml"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
6
|
+
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"annodex"}],["$","meta","1",{"name":"description","content":"AI-native bioinformatics workspace by Annoroad"}],["$","link","2",{"rel":"shortcut icon","href":"/favicon.svg","type":"image/svg+xml"}],["$","link","3",{"rel":"icon","href":"/favicon.svg","type":"image/svg+xml"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"oIqDpdOWwl7oIU6o8NnNp"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[
|
|
3
|
-
3:I[
|
|
4
|
-
:
|
|
5
|
-
|
|
2
|
+
2:I[67504,["8500","static/chunks/8500-f62a38ff68ab7f42.js","5122","static/chunks/5122-6e0d29bd15f079e1.js","7177","static/chunks/app/layout-11cc1f48ff425fd0.js"],"RootProvider"]
|
|
3
|
+
3:I[57121,[],""]
|
|
4
|
+
4:I[74581,[],""]
|
|
5
|
+
:HL["/_next/static/css/fddca953485158e4.css","style"]
|
|
6
|
+
:HL["/_next/static/css/876e881d7ba02ed2.css","style"]
|
|
7
|
+
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/fddca953485158e4.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/876e881d7ba02ed2.css","precedence":"next"}]],["$","html",null,{"lang":"en","className":"__variable_66b8ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var t=localStorage.getItem(\"annodex-theme\");if(t===\"dark\")document.documentElement.classList.add(\"dark\")}catch(e){}})();"}}]}],["$","body",null,{"style":{"minHeight":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"oIqDpdOWwl7oIU6o8NnNp"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
:HL["/_next/static/media/7deddc85b7ffd1dc-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
2
2
|
:HL["/_next/static/media/ec14413c594b3356-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
3
|
-
:HL["/_next/static/css/
|
|
4
|
-
|
|
3
|
+
:HL["/_next/static/css/fddca953485158e4.css","style"]
|
|
4
|
+
:HL["/_next/static/css/876e881d7ba02ed2.css","style"]
|
|
5
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"oIqDpdOWwl7oIU6o8NnNp"}
|