@seqyuan/annodex 0.1.28 → 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.
Files changed (298) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +7 -5
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/diagnostics/build-diagnostics.json +1 -1
  5. package/.next/prerender-manifest.json +297 -4
  6. package/.next/react-loadable-manifest.json +44 -0
  7. package/.next/required-server-files.js +50 -5
  8. package/.next/required-server-files.json +50 -5
  9. package/.next/routes-manifest.json +14 -0
  10. package/.next/server/app/_global-error/page.js +3 -3
  11. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/_global-error.html +1 -1
  13. package/.next/server/app/_global-error.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  17. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  18. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  19. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  20. package/.next/server/app/_not-found/page.js +2 -2
  21. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  22. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/_not-found.html +1 -1
  24. package/.next/server/app/_not-found.rsc +17 -15
  25. package/.next/server/app/_not-found.segments/_full.segment.rsc +17 -15
  26. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  27. package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -4
  28. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  29. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  30. package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -2
  31. package/.next/server/app/api/agent/[id]/events/route.js +2 -2
  32. package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
  33. package/.next/server/app/api/agent/[id]/route.js +1 -1
  34. package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
  35. package/.next/server/app/api/agent/new/route.js +1 -1
  36. package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
  37. package/.next/server/app/api/agent/runtime/route.js +1 -1
  38. package/.next/server/app/api/agent/runtime/route.js.nft.json +1 -1
  39. package/.next/server/app/api/auth/all-providers/route.js +1 -1
  40. package/.next/server/app/api/auth/all-providers/route.js.nft.json +1 -1
  41. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  42. package/.next/server/app/api/auth/api-key/[provider]/route.js.nft.json +1 -1
  43. package/.next/server/app/api/auth/login/[provider]/route.js +1 -1
  44. package/.next/server/app/api/auth/login/[provider]/route.js.nft.json +1 -1
  45. package/.next/server/app/api/auth/login/route.js +1 -1
  46. package/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  47. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  48. package/.next/server/app/api/auth/logout/[provider]/route.js.nft.json +1 -1
  49. package/.next/server/app/api/auth/providers/route.js +1 -1
  50. package/.next/server/app/api/auth/providers/route.js.nft.json +1 -1
  51. package/.next/server/app/api/auth/status/route.js +1 -1
  52. package/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  53. package/.next/server/app/api/default-cwd/route.js +1 -1
  54. package/.next/server/app/api/default-cwd/route.js.nft.json +1 -1
  55. package/.next/server/app/api/files/[...path]/route.js +1 -1
  56. package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -1
  57. package/.next/server/app/api/harness/route.js +1 -1
  58. package/.next/server/app/api/harness/route.js.nft.json +1 -1
  59. package/.next/server/app/api/home/route.js +1 -1
  60. package/.next/server/app/api/home/route.js.nft.json +1 -1
  61. package/.next/server/app/api/internal/runtime/route.js +1 -1
  62. package/.next/server/app/api/internal/runtime/route.js.nft.json +1 -1
  63. package/.next/server/app/api/models/route.js +1 -1
  64. package/.next/server/app/api/models/route.js.nft.json +1 -1
  65. package/.next/server/app/api/models-config/discover/route.js +1 -1
  66. package/.next/server/app/api/models-config/discover/route.js.nft.json +1 -1
  67. package/.next/server/app/api/models-config/route.js +1 -1
  68. package/.next/server/app/api/models-config/route.js.nft.json +1 -1
  69. package/.next/server/app/api/models-config/test/route.js +1 -1
  70. package/.next/server/app/api/models-config/test/route.js.nft.json +1 -1
  71. package/.next/server/app/api/projects/browse/route.js +1 -1
  72. package/.next/server/app/api/projects/browse/route.js.nft.json +1 -1
  73. package/.next/server/app/api/projects/route.js +1 -1
  74. package/.next/server/app/api/projects/route.js.nft.json +1 -1
  75. package/.next/server/app/api/search/route.js +1 -1
  76. package/.next/server/app/api/search/route.js.nft.json +1 -1
  77. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  78. package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
  79. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  80. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  81. package/.next/server/app/api/sessions/new/route.js +1 -1
  82. package/.next/server/app/api/sessions/new/route.js.nft.json +1 -1
  83. package/.next/server/app/api/sessions/route.js +1 -1
  84. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  85. package/.next/server/app/api/settings/route.js +1 -1
  86. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  87. package/.next/server/app/api/skills/install/route.js +2 -2
  88. package/.next/server/app/api/skills/install/route.js.nft.json +1 -1
  89. package/.next/server/app/api/skills/route.js +2 -2
  90. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  91. package/.next/server/app/api/skills/search/route.js +1 -1
  92. package/.next/server/app/api/skills/search/route.js.nft.json +1 -1
  93. package/.next/server/app/api/soul/route.js +1 -1
  94. package/.next/server/app/api/soul/route.js.nft.json +1 -1
  95. package/.next/server/app/api/version/route.js +1 -1
  96. package/.next/server/app/api/version/route.js.nft.json +1 -1
  97. package/.next/server/app/docs/[[...slug]]/page.js +4 -0
  98. package/.next/server/app/docs/[[...slug]]/page.js.nft.json +1 -0
  99. package/.next/server/app/docs/[[...slug]]/page_client-reference-manifest.js +1 -0
  100. package/.next/server/app/docs/architecture.html +26 -0
  101. package/.next/server/app/docs/architecture.meta +16 -0
  102. package/.next/server/app/docs/architecture.rsc +36 -0
  103. package/.next/server/app/docs/architecture.segments/_full.segment.rsc +36 -0
  104. package/.next/server/app/docs/architecture.segments/_head.segment.rsc +6 -0
  105. package/.next/server/app/docs/architecture.segments/_index.segment.rsc +7 -0
  106. package/.next/server/app/docs/architecture.segments/_tree.segment.rsc +5 -0
  107. package/.next/server/app/docs/architecture.segments/docs/$oc$slug/__PAGE__.segment.rsc +12 -0
  108. package/.next/server/app/docs/architecture.segments/docs/$oc$slug.segment.rsc +5 -0
  109. package/.next/server/app/docs/architecture.segments/docs.segment.rsc +6 -0
  110. package/.next/server/app/docs/configuration.html +28 -0
  111. package/.next/server/app/docs/configuration.meta +16 -0
  112. package/.next/server/app/docs/configuration.rsc +34 -0
  113. package/.next/server/app/docs/configuration.segments/_full.segment.rsc +34 -0
  114. package/.next/server/app/docs/configuration.segments/_head.segment.rsc +6 -0
  115. package/.next/server/app/docs/configuration.segments/_index.segment.rsc +7 -0
  116. package/.next/server/app/docs/configuration.segments/_tree.segment.rsc +5 -0
  117. package/.next/server/app/docs/configuration.segments/docs/$oc$slug/__PAGE__.segment.rsc +10 -0
  118. package/.next/server/app/docs/configuration.segments/docs/$oc$slug.segment.rsc +5 -0
  119. package/.next/server/app/docs/configuration.segments/docs.segment.rsc +6 -0
  120. package/.next/server/app/docs/file-and-report-viewing.html +29 -0
  121. package/.next/server/app/docs/file-and-report-viewing.meta +16 -0
  122. package/.next/server/app/docs/file-and-report-viewing.rsc +34 -0
  123. package/.next/server/app/docs/file-and-report-viewing.segments/_full.segment.rsc +34 -0
  124. package/.next/server/app/docs/file-and-report-viewing.segments/_head.segment.rsc +6 -0
  125. package/.next/server/app/docs/file-and-report-viewing.segments/_index.segment.rsc +7 -0
  126. package/.next/server/app/docs/file-and-report-viewing.segments/_tree.segment.rsc +5 -0
  127. package/.next/server/app/docs/file-and-report-viewing.segments/docs/$oc$slug/__PAGE__.segment.rsc +10 -0
  128. package/.next/server/app/docs/file-and-report-viewing.segments/docs/$oc$slug.segment.rsc +5 -0
  129. package/.next/server/app/docs/file-and-report-viewing.segments/docs.segment.rsc +6 -0
  130. package/.next/server/app/docs/installation-and-deployment.html +30 -0
  131. package/.next/server/app/docs/installation-and-deployment.meta +16 -0
  132. package/.next/server/app/docs/installation-and-deployment.rsc +39 -0
  133. package/.next/server/app/docs/installation-and-deployment.segments/_full.segment.rsc +39 -0
  134. package/.next/server/app/docs/installation-and-deployment.segments/_head.segment.rsc +6 -0
  135. package/.next/server/app/docs/installation-and-deployment.segments/_index.segment.rsc +7 -0
  136. package/.next/server/app/docs/installation-and-deployment.segments/_tree.segment.rsc +5 -0
  137. package/.next/server/app/docs/installation-and-deployment.segments/docs/$oc$slug/__PAGE__.segment.rsc +16 -0
  138. package/.next/server/app/docs/installation-and-deployment.segments/docs/$oc$slug.segment.rsc +5 -0
  139. package/.next/server/app/docs/installation-and-deployment.segments/docs.segment.rsc +6 -0
  140. package/.next/server/app/docs/models-and-tools.html +29 -0
  141. package/.next/server/app/docs/models-and-tools.meta +16 -0
  142. package/.next/server/app/docs/models-and-tools.rsc +34 -0
  143. package/.next/server/app/docs/models-and-tools.segments/_full.segment.rsc +34 -0
  144. package/.next/server/app/docs/models-and-tools.segments/_head.segment.rsc +6 -0
  145. package/.next/server/app/docs/models-and-tools.segments/_index.segment.rsc +7 -0
  146. package/.next/server/app/docs/models-and-tools.segments/_tree.segment.rsc +5 -0
  147. package/.next/server/app/docs/models-and-tools.segments/docs/$oc$slug/__PAGE__.segment.rsc +10 -0
  148. package/.next/server/app/docs/models-and-tools.segments/docs/$oc$slug.segment.rsc +5 -0
  149. package/.next/server/app/docs/models-and-tools.segments/docs.segment.rsc +6 -0
  150. package/.next/server/app/docs/quick-start.html +24 -0
  151. package/.next/server/app/docs/quick-start.meta +16 -0
  152. package/.next/server/app/docs/quick-start.rsc +36 -0
  153. package/.next/server/app/docs/quick-start.segments/_full.segment.rsc +36 -0
  154. package/.next/server/app/docs/quick-start.segments/_head.segment.rsc +6 -0
  155. package/.next/server/app/docs/quick-start.segments/_index.segment.rsc +7 -0
  156. package/.next/server/app/docs/quick-start.segments/_tree.segment.rsc +5 -0
  157. package/.next/server/app/docs/quick-start.segments/docs/$oc$slug/__PAGE__.segment.rsc +12 -0
  158. package/.next/server/app/docs/quick-start.segments/docs/$oc$slug.segment.rsc +5 -0
  159. package/.next/server/app/docs/quick-start.segments/docs.segment.rsc +6 -0
  160. package/.next/server/app/docs/runtime-and-sse.html +28 -0
  161. package/.next/server/app/docs/runtime-and-sse.meta +16 -0
  162. package/.next/server/app/docs/runtime-and-sse.rsc +34 -0
  163. package/.next/server/app/docs/runtime-and-sse.segments/_full.segment.rsc +34 -0
  164. package/.next/server/app/docs/runtime-and-sse.segments/_head.segment.rsc +6 -0
  165. package/.next/server/app/docs/runtime-and-sse.segments/_index.segment.rsc +7 -0
  166. package/.next/server/app/docs/runtime-and-sse.segments/_tree.segment.rsc +5 -0
  167. package/.next/server/app/docs/runtime-and-sse.segments/docs/$oc$slug/__PAGE__.segment.rsc +10 -0
  168. package/.next/server/app/docs/runtime-and-sse.segments/docs/$oc$slug.segment.rsc +5 -0
  169. package/.next/server/app/docs/runtime-and-sse.segments/docs.segment.rsc +6 -0
  170. package/.next/server/app/docs/sessions-and-projects.html +27 -0
  171. package/.next/server/app/docs/sessions-and-projects.meta +16 -0
  172. package/.next/server/app/docs/sessions-and-projects.rsc +34 -0
  173. package/.next/server/app/docs/sessions-and-projects.segments/_full.segment.rsc +34 -0
  174. package/.next/server/app/docs/sessions-and-projects.segments/_head.segment.rsc +6 -0
  175. package/.next/server/app/docs/sessions-and-projects.segments/_index.segment.rsc +7 -0
  176. package/.next/server/app/docs/sessions-and-projects.segments/_tree.segment.rsc +5 -0
  177. package/.next/server/app/docs/sessions-and-projects.segments/docs/$oc$slug/__PAGE__.segment.rsc +10 -0
  178. package/.next/server/app/docs/sessions-and-projects.segments/docs/$oc$slug.segment.rsc +5 -0
  179. package/.next/server/app/docs/sessions-and-projects.segments/docs.segment.rsc +6 -0
  180. package/.next/server/app/docs/workspace.html +28 -0
  181. package/.next/server/app/docs/workspace.meta +16 -0
  182. package/.next/server/app/docs/workspace.rsc +34 -0
  183. package/.next/server/app/docs/workspace.segments/_full.segment.rsc +34 -0
  184. package/.next/server/app/docs/workspace.segments/_head.segment.rsc +6 -0
  185. package/.next/server/app/docs/workspace.segments/_index.segment.rsc +7 -0
  186. package/.next/server/app/docs/workspace.segments/_tree.segment.rsc +5 -0
  187. package/.next/server/app/docs/workspace.segments/docs/$oc$slug/__PAGE__.segment.rsc +10 -0
  188. package/.next/server/app/docs/workspace.segments/docs/$oc$slug.segment.rsc +5 -0
  189. package/.next/server/app/docs/workspace.segments/docs.segment.rsc +6 -0
  190. package/.next/server/app/docs.html +41 -0
  191. package/.next/server/app/docs.meta +16 -0
  192. package/.next/server/app/docs.rsc +35 -0
  193. package/.next/server/app/docs.segments/_full.segment.rsc +35 -0
  194. package/.next/server/app/docs.segments/_head.segment.rsc +6 -0
  195. package/.next/server/app/docs.segments/_index.segment.rsc +7 -0
  196. package/.next/server/app/docs.segments/_tree.segment.rsc +5 -0
  197. package/.next/server/app/docs.segments/docs/$oc$slug/__PAGE__.segment.rsc +11 -0
  198. package/.next/server/app/docs.segments/docs/$oc$slug.segment.rsc +5 -0
  199. package/.next/server/app/docs.segments/docs.segment.rsc +6 -0
  200. package/.next/server/app/index.html +2 -1
  201. package/.next/server/app/index.rsc +28 -14
  202. package/.next/server/app/index.segments/__PAGE__.segment.rsc +14 -5
  203. package/.next/server/app/index.segments/_full.segment.rsc +28 -14
  204. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  205. package/.next/server/app/index.segments/_index.segment.rsc +6 -4
  206. package/.next/server/app/index.segments/_tree.segment.rsc +3 -2
  207. package/.next/server/app/login/page.js +2 -2
  208. package/.next/server/app/login/page.js.nft.json +1 -1
  209. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  210. package/.next/server/app/login.html +1 -1
  211. package/.next/server/app/login.rsc +21 -19
  212. package/.next/server/app/login.segments/_full.segment.rsc +21 -19
  213. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  214. package/.next/server/app/login.segments/_index.segment.rsc +6 -4
  215. package/.next/server/app/login.segments/_tree.segment.rsc +3 -2
  216. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  217. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  218. package/.next/server/app/page.js +3 -263
  219. package/.next/server/app/page.js.nft.json +1 -1
  220. package/.next/server/app/page_client-reference-manifest.js +1 -1
  221. package/.next/server/app/workspace/page.js +263 -0
  222. package/.next/server/app/workspace/page.js.nft.json +1 -0
  223. package/.next/server/app/workspace/page_client-reference-manifest.js +1 -0
  224. package/.next/server/app/workspace.html +1 -0
  225. package/.next/server/app/workspace.meta +15 -0
  226. package/.next/server/app/workspace.rsc +21 -0
  227. package/.next/server/app/workspace.segments/_full.segment.rsc +21 -0
  228. package/.next/server/app/workspace.segments/_head.segment.rsc +6 -0
  229. package/.next/server/app/workspace.segments/_index.segment.rsc +7 -0
  230. package/.next/server/app/workspace.segments/_tree.segment.rsc +5 -0
  231. package/.next/server/app/workspace.segments/workspace/__PAGE__.segment.rsc +6 -0
  232. package/.next/server/app/workspace.segments/workspace.segment.rsc +5 -0
  233. package/.next/server/app-paths-manifest.json +7 -5
  234. package/.next/server/chunks/1106.js +1 -0
  235. package/.next/server/chunks/1381.js +1 -1
  236. package/.next/server/chunks/1681.js +2 -2
  237. package/.next/server/chunks/1703.js +2 -2
  238. package/.next/server/chunks/2098.js +1 -0
  239. package/.next/server/chunks/2220.js +1 -0
  240. package/.next/server/chunks/3031.js +1 -1
  241. package/.next/server/chunks/3353.js +1 -0
  242. package/.next/server/chunks/3493.js +1 -1
  243. package/.next/server/chunks/402.js +1 -1
  244. package/.next/server/chunks/4035.js +1 -1
  245. package/.next/server/chunks/4091.js +5 -0
  246. package/.next/server/chunks/4443.js +3 -0
  247. package/.next/server/chunks/5293.js +2 -2
  248. package/.next/server/chunks/5488.js +1 -0
  249. package/.next/server/chunks/7073.js +1 -1
  250. package/.next/server/chunks/7526.js +1 -0
  251. package/.next/server/chunks/76.js +1 -0
  252. package/.next/server/chunks/8875.js +1 -0
  253. package/.next/server/chunks/8916.js +1 -1
  254. package/.next/server/chunks/9175.js +10 -0
  255. package/.next/server/chunks/9537.js +1 -1
  256. package/.next/server/chunks/966.js +1 -1
  257. package/.next/server/middleware-build-manifest.js +1 -1
  258. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  259. package/.next/server/middleware.js +1 -1
  260. package/.next/server/pages/404.html +1 -1
  261. package/.next/server/pages/500.html +1 -1
  262. package/.next/server/server-reference-manifest.json +1 -1
  263. package/.next/server/webpack-runtime.js +1 -1
  264. package/.next/static/chunks/2632.f12f984b8009d7f1.js +1 -0
  265. package/.next/static/chunks/2679.f76721dbd8ec617f.js +5 -0
  266. package/.next/static/chunks/4660.6d9fc47e6ed8e7e4.js +10 -0
  267. package/.next/static/chunks/4894-e27a35edd6176226.js +1 -0
  268. package/.next/static/chunks/5122-6e0d29bd15f079e1.js +3 -0
  269. package/.next/static/chunks/5166-58bbf85cbd32ad99.js +1 -0
  270. package/.next/static/chunks/6606.789f1fc26b9150dd.js +1 -0
  271. package/.next/static/chunks/6878.3d114dd7c83aa676.js +1 -0
  272. package/.next/static/chunks/7627-1f8c705195c83044.js +1 -0
  273. package/.next/static/chunks/8500-f62a38ff68ab7f42.js +1 -0
  274. package/.next/static/chunks/9211-21786f967f9c2826.js +1 -0
  275. package/.next/static/chunks/9278-58ee6294b32318a5.js +3 -0
  276. package/.next/static/chunks/9566.2b92edbd162fb97d.js +1 -0
  277. package/.next/static/chunks/9855.1127e644bd68ced0.js +1 -0
  278. package/.next/static/chunks/app/docs/[[...slug]]/page-d232277716ab7921.js +1 -0
  279. package/.next/static/chunks/app/docs/layout-4809bb9dd4b49bff.js +1 -0
  280. package/.next/static/chunks/app/layout-11cc1f48ff425fd0.js +1 -0
  281. package/.next/static/chunks/app/login/page-870e0ee50453c2ba.js +1 -0
  282. package/.next/static/chunks/app/page-eb62ac677a87b790.js +1 -0
  283. package/.next/static/chunks/app/{page-565250b6825f66ad.js → workspace/page-af7e4803e0815c0e.js} +5 -5
  284. package/.next/static/chunks/webpack-ced9e639bb94bd30.js +1 -0
  285. package/.next/static/css/876e881d7ba02ed2.css +1 -0
  286. package/.next/static/css/fddca953485158e4.css +1 -0
  287. package/.next/static/oIqDpdOWwl7oIU6o8NnNp/_buildManifest.js +1 -0
  288. package/.next/static/oIqDpdOWwl7oIU6o8NnNp/_ssgManifest.js +1 -0
  289. package/README.md +3 -3
  290. package/next.config.ts +4 -1
  291. package/package.json +6 -1
  292. package/.next/static/9Y_YDTnjV-FM3PWThKWpw/_buildManifest.js +0 -1
  293. package/.next/static/9Y_YDTnjV-FM3PWThKWpw/_ssgManifest.js +0 -1
  294. package/.next/static/chunks/8771-3e14b6810486df1f.js +0 -1
  295. package/.next/static/chunks/app/layout-be148b7ae915b22a.js +0 -1
  296. package/.next/static/chunks/app/login/page-ebf0e6de99062783.js +0 -1
  297. package/.next/static/chunks/webpack-fcf4a889ecbd753c.js +0 -1
  298. 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/df604d0d99136435.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-fcf4a889ecbd753c.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/363642f4-043c1475ab9af70e.js" async=""></script><script src="/_next/static/chunks/8771-3e14b6810486df1f.js" async=""></script><script src="/_next/static/chunks/app/page-565250b6825f66ad.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="height:100dvh;display:flex;flex-direction:column"><div hidden=""><!--$--><!--/$--></div><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><!--$--><!--/$--><script src="/_next/static/chunks/webpack-fcf4a889ecbd753c.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[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:\"$Sreact.suspense\"\n5:I[44660,[\"6079\",\"static/chunks/363642f4-043c1475ab9af70e.js\",\"8771\",\"static/chunks/8771-3e14b6810486df1f.js\",\"8974\",\"static/chunks/app/page-565250b6825f66ad.js\"],\"AppShell\"]\n6:I[90484,[],\"OutletBoundary\"]\n8:I[90484,[],\"ViewportBoundary\"]\na:I[90484,[],\"MetadataBoundary\"]\nc: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/df604d0d99136435.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/df604d0d99136435.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\":{\"height\":\"100dvh\",\"display\":\"flex\",\"flexDirection\":\"column\"},\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",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\":[[\"$\",\"$4\",null,{\"children\":[\"$\",\"$L5\",null,{}]}],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$4\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$4\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"9Y_YDTnjV-FM3PWThKWpw\"}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"d:I[86869,[],\"IconMark\"]\n7:null\nb:[[\"$\",\"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\"}],[\"$\",\"$Ld\",\"4\",{}]]\n"])</script></body></html>
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[57121,[],""]
3
- 3:I[74581,[],""]
4
- 4:"$Sreact.suspense"
5
- 5:I[44660,["6079","static/chunks/363642f4-043c1475ab9af70e.js","8771","static/chunks/8771-3e14b6810486df1f.js","8974","static/chunks/app/page-565250b6825f66ad.js"],"AppShell"]
6
- 6:I[90484,[],"OutletBoundary"]
7
- 8:I[90484,[],"ViewportBoundary"]
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/df604d0d99136435.css","style"]
13
- 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/df604d0d99136435.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":{"height":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",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":[["$","$4",null,{"children":["$","$L5",null,{}]}],null,["$","$L6",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"9Y_YDTnjV-FM3PWThKWpw"}
14
- 9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
15
- d:I[86869,[],"IconMark"]
16
- 7:null
17
- b:[["$","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"}],["$","$Ld","4",{}]]
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:"$Sreact.suspense"
3
- 3:I[44660,["6079","static/chunks/363642f4-043c1475ab9af70e.js","8771","static/chunks/8771-3e14b6810486df1f.js","8974","static/chunks/app/page-565250b6825f66ad.js"],"AppShell"]
4
- 4:I[90484,[],"OutletBoundary"]
5
- 0:{"rsc":["$","$1","c",{"children":[["$","$2",null,{"children":["$","$L3",null,{}]}],null,["$","$L4",null,{"children":["$","$2",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"9Y_YDTnjV-FM3PWThKWpw"}
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[57121,[],""]
3
- 3:I[74581,[],""]
4
- 4:"$Sreact.suspense"
5
- 5:I[44660,["6079","static/chunks/363642f4-043c1475ab9af70e.js","8771","static/chunks/8771-3e14b6810486df1f.js","8974","static/chunks/app/page-565250b6825f66ad.js"],"AppShell"]
6
- 6:I[90484,[],"OutletBoundary"]
7
- 8:I[90484,[],"ViewportBoundary"]
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/df604d0d99136435.css","style"]
13
- 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/df604d0d99136435.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":{"height":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",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":[["$","$4",null,{"children":["$","$L5",null,{}]}],null,["$","$L6",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"9Y_YDTnjV-FM3PWThKWpw"}
14
- 9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
15
- d:I[86869,[],"IconMark"]
16
- 7:null
17
- b:[["$","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"}],["$","$Ld","4",{}]]
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":"9Y_YDTnjV-FM3PWThKWpw"}
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[57121,[],""]
3
- 3:I[74581,[],""]
4
- :HL["/_next/static/css/df604d0d99136435.css","style"]
5
- 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/df604d0d99136435.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":{"height":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",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":"9Y_YDTnjV-FM3PWThKWpw"}
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/df604d0d99136435.css","style"]
4
- 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"9Y_YDTnjV-FM3PWThKWpw"}
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"}