@seqyuan/annovibe 0.8.136 → 0.8.138

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 (437) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +11 -15
  3. package/.next/build-manifest.json +6 -6
  4. package/.next/diagnostics/framework.json +1 -1
  5. package/.next/prerender-manifest.json +33 -3
  6. package/.next/react-loadable-manifest.json +60 -60
  7. package/.next/required-server-files.js +45 -10
  8. package/.next/required-server-files.json +45 -10
  9. package/.next/routes-manifest.json +0 -30
  10. package/.next/server/app/_global-error/page.js +6 -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.meta +24 -5
  14. package/.next/server/app/_global-error.rsc +19 -12
  15. package/.next/server/app/_global-error.segments/_full.segment.rsc +19 -12
  16. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +25 -4
  17. package/.next/server/app/_global-error.segments/_tree.segment.rsc +3 -1
  18. package/.next/server/app/_not-found/page.js +5 -2
  19. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/.next/server/app/_not-found.html +1 -1
  21. package/.next/server/app/_not-found.meta +24 -5
  22. package/.next/server/app/_not-found.rsc +24 -16
  23. package/.next/server/app/_not-found.segments/_full.segment.rsc +24 -16
  24. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +30 -4
  25. package/.next/server/app/_not-found.segments/_tree.segment.rsc +4 -2
  26. package/.next/server/app/api/agent/[id]/events/route.js +2 -2
  27. package/.next/server/app/api/agent/[id]/prepare/route.js +1 -1
  28. package/.next/server/app/api/agent/[id]/route.js +1 -1
  29. package/.next/server/app/api/agent/new/route.js +2 -2
  30. package/.next/server/app/api/agent/running/events/route.js +2 -2
  31. package/.next/server/app/api/agent/running/route.js +1 -1
  32. package/.next/server/app/api/agent/runtime/route.js +1 -1
  33. package/.next/server/app/api/apps/[id]/[[...path]]/route.js +2 -2
  34. package/.next/server/app/api/apps/route.js +2 -2
  35. package/.next/server/app/api/auth/all-providers/route.js +1 -1
  36. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  37. package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
  38. package/.next/server/app/api/auth/login/route.js +1 -1
  39. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  40. package/.next/server/app/api/auth/providers/route.js +1 -1
  41. package/.next/server/app/api/auth/status/route.js +1 -1
  42. package/.next/server/app/api/auth/totp/route.js +1 -1
  43. package/.next/server/app/api/debug-models/route.js +1 -1
  44. package/.next/server/app/api/default-cwd/route.js +1 -1
  45. package/.next/server/app/api/file-index/route.js +1 -1
  46. package/.next/server/app/api/file-tree/delete/route.js +1 -1
  47. package/.next/server/app/api/file-tree/mkdir/route.js +1 -1
  48. package/.next/server/app/api/file-tree/rename/route.js +1 -1
  49. package/.next/server/app/api/file-tree/reveal/route.js +1 -1
  50. package/.next/server/app/api/file-tree/write/route.js +1 -1
  51. package/.next/server/app/api/file-watch/route.js +3 -3
  52. package/.next/server/app/api/files/[...path]/route.js +1 -1
  53. package/.next/server/app/api/harness/route.js +1 -1
  54. package/.next/server/app/api/home/route.js +1 -1
  55. package/.next/server/app/api/im/cancel/route.js +1 -1
  56. package/.next/server/app/api/im/gateway-status/route.js +1 -1
  57. package/.next/server/app/api/im/project/route.js +1 -1
  58. package/.next/server/app/api/im/projects/route.js +1 -1
  59. package/.next/server/app/api/im/session-ids/route.js +1 -1
  60. package/.next/server/app/api/im/turn/route.js +3 -3
  61. package/.next/server/app/api/images/upload/route.js +1 -1
  62. package/.next/server/app/api/internal/runtime/route.js +1 -1
  63. package/.next/server/app/api/memory/dismiss/route.js +3 -3
  64. package/.next/server/app/api/memory/promote/route.js +3 -3
  65. package/.next/server/app/api/models/route.js +1 -1
  66. package/.next/server/app/api/models-config/discover/route.js +1 -1
  67. package/.next/server/app/api/models-config/route.js +1 -1
  68. package/.next/server/app/api/models-config/test/route.js +1 -1
  69. package/.next/server/app/api/plot-kernels/route.js +1 -1
  70. package/.next/server/app/api/plot-kernels/save/route.js +1 -1
  71. package/.next/server/app/api/plot-kernels/status/route.js +1 -1
  72. package/.next/server/app/api/plot-kernels/stop/route.js +1 -1
  73. package/.next/server/app/api/plugins/route.js +1 -1
  74. package/.next/server/app/api/project-trust/route.js +1 -1
  75. package/.next/server/app/api/projects/browse/route.js +1 -1
  76. package/.next/server/app/api/projects/route.js +1 -1
  77. package/.next/server/app/api/search/route.js +1 -1
  78. package/.next/server/app/api/session-index/events/route.js +2 -2
  79. package/.next/server/app/api/sessions/[id]/auto-name/route.js +7 -8
  80. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  81. package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
  82. package/.next/server/app/api/sessions/[id]/media/route.js +1 -1
  83. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  84. package/.next/server/app/api/sessions/[id]/shadowed/route.js +1 -1
  85. package/.next/server/app/api/sessions/new/route.js +1 -1
  86. package/.next/server/app/api/sessions/route.js +1 -1
  87. package/.next/server/app/api/settings/route.js +1 -1
  88. package/.next/server/app/api/skills/check/route.js +1 -1
  89. package/.next/server/app/api/skills/install/route.js +5 -5
  90. package/.next/server/app/api/skills/route.js +5 -5
  91. package/.next/server/app/api/skills/search/route.js +1 -1
  92. package/.next/server/app/api/skills/update/route.js +2 -2
  93. package/.next/server/app/api/smoke/prompt-admission/route.js +1 -1
  94. package/.next/server/app/api/soul/route.js +1 -1
  95. package/.next/server/app/api/subagents/status/route.js +1 -1
  96. package/.next/server/app/api/version/route.js +1 -1
  97. package/.next/server/app/favicon.ico/route.js +1 -1
  98. package/.next/server/app/favicon.ico.meta +1 -1
  99. package/.next/server/app/icon.svg/route.js +1 -1
  100. package/.next/server/app/icon.svg.meta +1 -1
  101. package/.next/server/app/index.html +1 -1
  102. package/.next/server/app/index.meta +19 -4
  103. package/.next/server/app/index.rsc +33 -15
  104. package/.next/server/app/index.segments/__PAGE__.segment.rsc +38 -5
  105. package/.next/server/app/index.segments/_full.segment.rsc +33 -15
  106. package/.next/server/app/index.segments/_tree.segment.rsc +3 -2
  107. package/.next/server/app/login/page.js +5 -2
  108. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  109. package/.next/server/app/login.html +1 -1
  110. package/.next/server/app/login.meta +24 -5
  111. package/.next/server/app/login.rsc +29 -20
  112. package/.next/server/app/login.segments/_full.segment.rsc +29 -20
  113. package/.next/server/app/login.segments/_tree.segment.rsc +4 -2
  114. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +35 -8
  115. package/.next/server/app/page.js +14 -37
  116. package/.next/server/app/page_client-reference-manifest.js +1 -1
  117. package/.next/server/app/smoke/page.js +5 -6
  118. package/.next/server/app/smoke/page_client-reference-manifest.js +1 -1
  119. package/.next/server/app/smoke/session-stream/page.js +1 -2
  120. package/.next/server/app/smoke/session-stream/page_client-reference-manifest.js +1 -1
  121. package/.next/server/app/smoke/session-stream.html +1 -1
  122. package/.next/server/app/smoke/session-stream.meta +29 -6
  123. package/.next/server/app/smoke/session-stream.rsc +36 -20
  124. package/.next/server/app/smoke/session-stream.segments/_full.segment.rsc +36 -20
  125. package/.next/server/app/smoke/session-stream.segments/_tree.segment.rsc +5 -2
  126. package/.next/server/app/smoke/session-stream.segments/smoke/session-stream/__PAGE__.segment.rsc +43 -8
  127. package/.next/server/app/smoke.html +2 -2
  128. package/.next/server/app/smoke.meta +24 -5
  129. package/.next/server/app/smoke.rsc +37 -20
  130. package/.next/server/app/smoke.segments/_full.segment.rsc +37 -20
  131. package/.next/server/app/smoke.segments/_tree.segment.rsc +4 -2
  132. package/.next/server/app/smoke.segments/smoke/__PAGE__.segment.rsc +43 -8
  133. package/.next/server/app-paths-manifest.json +11 -15
  134. package/.next/server/chunks/1367.js +1 -1
  135. package/.next/server/chunks/1681.js +1 -1
  136. package/.next/server/chunks/1688.js +3 -3
  137. package/.next/server/chunks/1761.js +1 -1
  138. package/.next/server/chunks/1813.js +23 -1
  139. package/.next/server/chunks/2242.js +1 -1
  140. package/.next/server/chunks/2325.js +28 -28
  141. package/.next/server/chunks/2671.js +2 -2
  142. package/.next/server/chunks/2970.js +46 -0
  143. package/.next/server/chunks/402.js +1 -1
  144. package/.next/server/chunks/42.js +44 -44
  145. package/.next/server/chunks/4367.js +1 -1
  146. package/.next/server/chunks/4406.js +1 -1
  147. package/.next/server/chunks/4779.js +1 -0
  148. package/.next/server/chunks/4980.js +1 -1
  149. package/.next/server/chunks/5193.js +3 -3
  150. package/.next/server/chunks/5715.js +1 -1
  151. package/.next/server/chunks/5851.js +1 -1
  152. package/.next/server/chunks/6346.js +1 -1
  153. package/.next/server/chunks/6429.js +15 -15
  154. package/.next/server/chunks/6644.js +108 -0
  155. package/.next/server/chunks/707.js +1 -1
  156. package/.next/server/chunks/716.js +1 -1
  157. package/.next/server/chunks/7307.js +1 -1
  158. package/.next/server/chunks/7365.js +1 -1
  159. package/.next/server/chunks/7603.js +1 -0
  160. package/.next/server/chunks/7765.js +1 -1
  161. package/.next/server/chunks/7890.js +1 -1
  162. package/.next/server/chunks/8305.js +264 -0
  163. package/.next/server/chunks/8363.js +1 -1
  164. package/.next/server/chunks/8797.js +1 -1
  165. package/.next/server/chunks/8973.js +1 -1
  166. package/.next/server/chunks/9868.js +1 -1
  167. package/.next/server/chunks/static/media/pdf.worker.min.94f8ceaf.mjs +6 -0
  168. package/.next/server/functions-config-manifest.json +1 -1
  169. package/.next/server/middleware-build-manifest.js +1 -1
  170. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  171. package/.next/server/middleware.js +54 -6
  172. package/.next/server/pages/404.html +1 -1
  173. package/.next/server/pages/500.html +1 -1
  174. package/.next/server/prefetch-hints.json +86 -1
  175. package/.next/server/preview-props.json +5 -0
  176. package/.next/server/server-reference-manifest.json +1 -1
  177. package/.next/static/chunks/{0b9a0da7-9075af772487e743.js → 0b9a0da7-373b544740862358.js} +1 -1
  178. package/.next/static/chunks/{1209.6d037cb2674eafa2.js → 1209.4f7491c863d512f0.js} +1 -1
  179. package/.next/static/chunks/2170a4aa.4301f7c49f3f0a6e.js +1 -0
  180. package/.next/static/chunks/2254-db22997b60e1dc27.js +1 -0
  181. package/.next/static/chunks/2619.8f686be8e2479c20.js +1 -0
  182. package/.next/static/chunks/{2623.d20fabd8e18197c6.js → 2623.a6bf38491c50cb6e.js} +2 -2
  183. package/.next/static/chunks/2693-421c2e9d9c92a666.js +173 -0
  184. package/.next/static/chunks/{2774.0811cda036dfeb94.js → 2774.ba50ba9e8b3ebf4a.js} +1 -1
  185. package/.next/static/chunks/2821.d15f14bd03d9d290.js +1 -0
  186. package/.next/static/chunks/{291-bfdfc8bcf5d0a962.js → 291-e0c3c616f67fe126.js} +1 -1
  187. package/.next/static/chunks/{3307.e638f7fa43f28bac.js → 3307.c87aab94f4464604.js} +1 -1
  188. package/.next/static/chunks/363642f4-a09fcaca7af039e5.js +1 -0
  189. package/.next/static/chunks/{3689.0336d97dde6c9084.js → 3689.93592a22c737d185.js} +1 -1
  190. package/.next/static/chunks/3794-fba3f76785a3c234.js +52 -0
  191. package/.next/static/chunks/{425.9a3434a28926566a.js → 425.8fe80c34648b01ec.js} +1 -1
  192. package/.next/static/chunks/{4453.91a357dc43c21745.js → 4453.ba05c4805425ceeb.js} +1 -1
  193. package/.next/static/chunks/4936-799f05324bb5c236.js +1 -0
  194. package/.next/static/chunks/4bd1b696-8cd12253b448cc13.js +1 -0
  195. package/.next/static/chunks/51fb665c.b01d5a04c27e9091.js +45 -0
  196. package/.next/static/chunks/{547.902a733488cfe3f7.js → 547.0f08d4931c0f04a2.js} +1 -1
  197. package/.next/static/chunks/{5567.540d7fc108ad6ee5.js → 5567.6674301d1337d738.js} +1 -1
  198. package/.next/static/chunks/5618-8aecfc54df369be5.js +22 -0
  199. package/.next/static/chunks/{58bb9007.1ccb6bba34b4c635.js → 58bb9007.3d4e7356b1e96b6a.js} +28 -28
  200. package/.next/static/chunks/6121.333d793734b9abf7.js +1 -0
  201. package/.next/static/chunks/6586.775a449050e0e9cc.js +138 -0
  202. package/.next/static/chunks/{6696.a41aec266e657d54.js → 6696.345b3cd62db13cb6.js} +1 -1
  203. package/.next/static/chunks/{7874.8db6929b94cdf697.js → 7874.7faccf8fab087120.js} +1 -1
  204. package/.next/static/chunks/8489.514938fd5e801cf7.js +36 -0
  205. package/.next/static/chunks/{8863.8b769013468d83d4.js → 8863.2ae457485a63aa22.js} +1 -1
  206. package/.next/static/chunks/90542734.6b9fbcabf095d1a0.js +1 -0
  207. package/.next/static/chunks/9867-1b73c62e8b604095.js +260 -0
  208. package/.next/static/chunks/app/_global-error/page-ebf7ae60150d40d4.js +1 -0
  209. package/.next/static/chunks/app/api/agent/[id]/events/route-ebf7ae60150d40d4.js +1 -0
  210. package/.next/static/chunks/app/api/agent/[id]/prepare/route-ebf7ae60150d40d4.js +1 -0
  211. package/.next/static/chunks/app/api/agent/[id]/route-ebf7ae60150d40d4.js +1 -0
  212. package/.next/static/chunks/app/api/agent/new/route-ebf7ae60150d40d4.js +1 -0
  213. package/.next/static/chunks/app/api/agent/running/events/route-ebf7ae60150d40d4.js +1 -0
  214. package/.next/static/chunks/app/api/agent/running/route-ebf7ae60150d40d4.js +1 -0
  215. package/.next/static/chunks/app/api/agent/runtime/route-ebf7ae60150d40d4.js +1 -0
  216. package/.next/static/chunks/app/api/apps/[id]/[[...path]]/route-ebf7ae60150d40d4.js +1 -0
  217. package/.next/static/chunks/app/api/apps/route-ebf7ae60150d40d4.js +1 -0
  218. package/.next/static/chunks/app/api/auth/all-providers/route-ebf7ae60150d40d4.js +1 -0
  219. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-ebf7ae60150d40d4.js +1 -0
  220. package/.next/static/chunks/app/api/auth/login/[provider]/route-ebf7ae60150d40d4.js +1 -0
  221. package/.next/static/chunks/app/api/auth/login/route-ebf7ae60150d40d4.js +1 -0
  222. package/.next/static/chunks/app/api/auth/logout/[provider]/route-ebf7ae60150d40d4.js +1 -0
  223. package/.next/static/chunks/app/api/auth/providers/route-ebf7ae60150d40d4.js +1 -0
  224. package/.next/static/chunks/app/api/auth/status/route-ebf7ae60150d40d4.js +1 -0
  225. package/.next/static/chunks/app/api/auth/totp/route-ebf7ae60150d40d4.js +1 -0
  226. package/.next/static/chunks/app/api/debug-models/route-ebf7ae60150d40d4.js +1 -0
  227. package/.next/static/chunks/app/api/default-cwd/route-ebf7ae60150d40d4.js +1 -0
  228. package/.next/static/chunks/app/api/file-index/route-ebf7ae60150d40d4.js +1 -0
  229. package/.next/static/chunks/app/api/file-tree/delete/route-ebf7ae60150d40d4.js +1 -0
  230. package/.next/static/chunks/app/api/file-tree/mkdir/route-ebf7ae60150d40d4.js +1 -0
  231. package/.next/static/chunks/app/api/file-tree/rename/route-ebf7ae60150d40d4.js +1 -0
  232. package/.next/static/chunks/app/api/file-tree/reveal/route-ebf7ae60150d40d4.js +1 -0
  233. package/.next/static/chunks/app/api/file-tree/write/route-ebf7ae60150d40d4.js +1 -0
  234. package/.next/static/chunks/app/api/file-watch/route-ebf7ae60150d40d4.js +1 -0
  235. package/.next/static/chunks/app/api/files/[...path]/route-ebf7ae60150d40d4.js +1 -0
  236. package/.next/static/chunks/app/api/harness/route-ebf7ae60150d40d4.js +1 -0
  237. package/.next/static/chunks/app/api/home/route-ebf7ae60150d40d4.js +1 -0
  238. package/.next/static/chunks/app/api/im/cancel/route-ebf7ae60150d40d4.js +1 -0
  239. package/.next/static/chunks/app/api/im/gateway-status/route-ebf7ae60150d40d4.js +1 -0
  240. package/.next/static/chunks/app/api/im/project/route-ebf7ae60150d40d4.js +1 -0
  241. package/.next/static/chunks/app/api/im/projects/route-ebf7ae60150d40d4.js +1 -0
  242. package/.next/static/chunks/app/api/im/session-ids/route-ebf7ae60150d40d4.js +1 -0
  243. package/.next/static/chunks/app/api/im/turn/route-ebf7ae60150d40d4.js +1 -0
  244. package/.next/static/chunks/app/api/images/upload/route-ebf7ae60150d40d4.js +1 -0
  245. package/.next/static/chunks/app/api/internal/runtime/route-ebf7ae60150d40d4.js +1 -0
  246. package/.next/static/chunks/app/api/memory/dismiss/route-ebf7ae60150d40d4.js +1 -0
  247. package/.next/static/chunks/app/api/memory/promote/route-ebf7ae60150d40d4.js +1 -0
  248. package/.next/static/chunks/app/api/models/route-ebf7ae60150d40d4.js +1 -0
  249. package/.next/static/chunks/app/api/models-config/discover/route-ebf7ae60150d40d4.js +1 -0
  250. package/.next/static/chunks/app/api/models-config/route-ebf7ae60150d40d4.js +1 -0
  251. package/.next/static/chunks/app/api/models-config/test/route-ebf7ae60150d40d4.js +1 -0
  252. package/.next/static/chunks/app/api/plot-kernels/route-ebf7ae60150d40d4.js +1 -0
  253. package/.next/static/chunks/app/api/plot-kernels/save/route-ebf7ae60150d40d4.js +1 -0
  254. package/.next/static/chunks/app/api/plot-kernels/status/route-ebf7ae60150d40d4.js +1 -0
  255. package/.next/static/chunks/app/api/plot-kernels/stop/route-ebf7ae60150d40d4.js +1 -0
  256. package/.next/static/chunks/app/api/plugins/route-ebf7ae60150d40d4.js +1 -0
  257. package/.next/static/chunks/app/api/project-trust/route-ebf7ae60150d40d4.js +1 -0
  258. package/.next/static/chunks/app/api/projects/browse/route-ebf7ae60150d40d4.js +1 -0
  259. package/.next/static/chunks/app/api/projects/route-ebf7ae60150d40d4.js +1 -0
  260. package/.next/static/chunks/app/api/search/route-ebf7ae60150d40d4.js +1 -0
  261. package/.next/static/chunks/app/api/session-index/events/route-ebf7ae60150d40d4.js +1 -0
  262. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-ebf7ae60150d40d4.js +1 -0
  263. package/.next/static/chunks/app/api/sessions/[id]/context/route-ebf7ae60150d40d4.js +1 -0
  264. package/.next/static/chunks/app/api/sessions/[id]/export/route-ebf7ae60150d40d4.js +1 -0
  265. package/.next/static/chunks/app/api/sessions/[id]/media/route-ebf7ae60150d40d4.js +1 -0
  266. package/.next/static/chunks/app/api/sessions/[id]/route-ebf7ae60150d40d4.js +1 -0
  267. package/.next/static/chunks/app/api/sessions/[id]/shadowed/route-ebf7ae60150d40d4.js +1 -0
  268. package/.next/static/chunks/app/api/sessions/new/route-ebf7ae60150d40d4.js +1 -0
  269. package/.next/static/chunks/app/api/sessions/route-ebf7ae60150d40d4.js +1 -0
  270. package/.next/static/chunks/app/api/settings/route-ebf7ae60150d40d4.js +1 -0
  271. package/.next/static/chunks/app/api/skills/check/route-ebf7ae60150d40d4.js +1 -0
  272. package/.next/static/chunks/app/api/skills/install/route-ebf7ae60150d40d4.js +1 -0
  273. package/.next/static/chunks/app/api/skills/route-ebf7ae60150d40d4.js +1 -0
  274. package/.next/static/chunks/app/api/skills/search/route-ebf7ae60150d40d4.js +1 -0
  275. package/.next/static/chunks/app/api/skills/update/route-ebf7ae60150d40d4.js +1 -0
  276. package/.next/static/chunks/app/api/smoke/prompt-admission/route-ebf7ae60150d40d4.js +1 -0
  277. package/.next/static/chunks/app/api/soul/route-ebf7ae60150d40d4.js +1 -0
  278. package/.next/static/chunks/app/api/subagents/status/route-ebf7ae60150d40d4.js +1 -0
  279. package/.next/static/chunks/app/api/version/route-ebf7ae60150d40d4.js +1 -0
  280. package/.next/static/chunks/app/error-6309e3e4cdf79d40.js +3 -0
  281. package/.next/static/chunks/app/favicon.ico/route-ebf7ae60150d40d4.js +1 -0
  282. package/.next/static/chunks/app/global-error-7595c826cec2c048.js +3 -0
  283. package/.next/static/chunks/app/layout-31265427e43f6876.js +1 -0
  284. package/.next/static/chunks/app/page-2e2760a4cdaff534.js +22 -0
  285. package/.next/static/chunks/app/smoke/{page-32674afc320aa48b.js → page-82db33b4fdd2e0b4.js} +3 -3
  286. package/.next/static/chunks/framework-461b899b66554474.js +1 -0
  287. package/.next/static/chunks/main-4c5c62a3f03fc745.js +5 -0
  288. package/.next/static/chunks/main-app-a8a207cb34d209aa.js +1 -0
  289. package/.next/static/chunks/next/dist/client/components/builtin/app-error-ebf7ae60150d40d4.js +1 -0
  290. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-ebf7ae60150d40d4.js +1 -0
  291. package/.next/static/chunks/next/dist/client/components/builtin/not-found-ebf7ae60150d40d4.js +1 -0
  292. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ebf7ae60150d40d4.js +1 -0
  293. package/.next/static/chunks/{webpack-0d1f7348ddb20bdc.js → webpack-36fa69ae1e15e7ce.js} +1 -1
  294. package/.next/static/css/{738b0b1c24aae500.css → d68ecb6695873888.css} +1 -1
  295. package/.next/static/media/pdf.worker.min.7a62f52c.mjs +6 -0
  296. package/.next/static/r3Awszl0kNf_sRFX-3vDi/_buildManifest.js +1 -0
  297. package/bin/annovibe-im-gateway.js +98 -21
  298. package/bin/pi-web.js +16 -9
  299. package/package.json +3 -3
  300. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +0 -5
  301. package/.next/server/app/_global-error.segments/_head.segment.rsc +0 -5
  302. package/.next/server/app/_global-error.segments/_index.segment.rsc +0 -5
  303. package/.next/server/app/_not-found.segments/_head.segment.rsc +0 -6
  304. package/.next/server/app/_not-found.segments/_index.segment.rsc +0 -7
  305. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +0 -5
  306. package/.next/server/app/api/im/gateway-token/route.js +0 -1
  307. package/.next/server/app/api/im/gateway-token/route_client-reference-manifest.js +0 -1
  308. package/.next/server/app/api/sessions/[id]/kernel-state/route.js +0 -1
  309. package/.next/server/app/api/sessions/[id]/kernel-state/route_client-reference-manifest.js +0 -1
  310. package/.next/server/app/api/sessions/[id]/workbench-artifact/route.js +0 -1
  311. package/.next/server/app/api/sessions/[id]/workbench-artifact/route_client-reference-manifest.js +0 -1
  312. package/.next/server/app/api/sessions/[id]/workbench-review/route.js +0 -1
  313. package/.next/server/app/api/sessions/[id]/workbench-review/route_client-reference-manifest.js +0 -1
  314. package/.next/server/app/index.segments/_head.segment.rsc +0 -6
  315. package/.next/server/app/index.segments/_index.segment.rsc +0 -7
  316. package/.next/server/app/login.segments/_head.segment.rsc +0 -6
  317. package/.next/server/app/login.segments/_index.segment.rsc +0 -7
  318. package/.next/server/app/login.segments/login.segment.rsc +0 -5
  319. package/.next/server/app/smoke/session-stream.segments/_head.segment.rsc +0 -6
  320. package/.next/server/app/smoke/session-stream.segments/_index.segment.rsc +0 -7
  321. package/.next/server/app/smoke/session-stream.segments/smoke/session-stream.segment.rsc +0 -5
  322. package/.next/server/app/smoke/session-stream.segments/smoke.segment.rsc +0 -5
  323. package/.next/server/app/smoke.segments/_head.segment.rsc +0 -6
  324. package/.next/server/app/smoke.segments/_index.segment.rsc +0 -7
  325. package/.next/server/app/smoke.segments/smoke.segment.rsc +0 -5
  326. package/.next/server/chunks/2562.js +0 -12
  327. package/.next/server/chunks/4741.js +0 -18
  328. package/.next/server/chunks/63.js +0 -45
  329. package/.next/server/chunks/7303.js +0 -260
  330. package/.next/server/chunks/8304.js +0 -1
  331. package/.next/server/chunks/static/media/pdf.worker.min.c476e1a0.mjs +0 -6
  332. package/.next/static/chunks/2170a4aa.4213bb2183c9cdf9.js +0 -1
  333. package/.next/static/chunks/2254-fa3fcc88564ee18d.js +0 -1
  334. package/.next/static/chunks/2619.9aac8983f30c7c8a.js +0 -1
  335. package/.next/static/chunks/2693-52c358cf5d84b069.js +0 -173
  336. package/.next/static/chunks/2821.934bcf60fbdc28c6.js +0 -1
  337. package/.next/static/chunks/363642f4-dc35a7a659350f8e.js +0 -1
  338. package/.next/static/chunks/3794-123fdf632563f469.js +0 -32
  339. package/.next/static/chunks/4936-9558484c46c3ecc8.js +0 -1
  340. package/.next/static/chunks/4bd1b696-e356ca5ba0218e27.js +0 -1
  341. package/.next/static/chunks/51fb665c.e2bfdae35ef4d790.js +0 -45
  342. package/.next/static/chunks/5618-5e2e47e6ed401a75.js +0 -22
  343. package/.next/static/chunks/6121.f3f43f1896ea0cd9.js +0 -1
  344. package/.next/static/chunks/6586.8c2a88c2a55300d2.js +0 -138
  345. package/.next/static/chunks/8489.45f22859734f514f.js +0 -36
  346. package/.next/static/chunks/90542734.ecc36ada79772529.js +0 -1
  347. package/.next/static/chunks/9867-b1d15d9354f100e7.js +0 -260
  348. package/.next/static/chunks/app/_global-error/page-dcc4d4b28dc1e9eb.js +0 -1
  349. package/.next/static/chunks/app/api/agent/[id]/events/route-dcc4d4b28dc1e9eb.js +0 -1
  350. package/.next/static/chunks/app/api/agent/[id]/prepare/route-dcc4d4b28dc1e9eb.js +0 -1
  351. package/.next/static/chunks/app/api/agent/[id]/route-dcc4d4b28dc1e9eb.js +0 -1
  352. package/.next/static/chunks/app/api/agent/new/route-dcc4d4b28dc1e9eb.js +0 -1
  353. package/.next/static/chunks/app/api/agent/running/events/route-dcc4d4b28dc1e9eb.js +0 -1
  354. package/.next/static/chunks/app/api/agent/running/route-dcc4d4b28dc1e9eb.js +0 -1
  355. package/.next/static/chunks/app/api/agent/runtime/route-dcc4d4b28dc1e9eb.js +0 -1
  356. package/.next/static/chunks/app/api/apps/[id]/[[...path]]/route-dcc4d4b28dc1e9eb.js +0 -1
  357. package/.next/static/chunks/app/api/apps/route-dcc4d4b28dc1e9eb.js +0 -1
  358. package/.next/static/chunks/app/api/auth/all-providers/route-dcc4d4b28dc1e9eb.js +0 -1
  359. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-dcc4d4b28dc1e9eb.js +0 -1
  360. package/.next/static/chunks/app/api/auth/login/[provider]/route-dcc4d4b28dc1e9eb.js +0 -1
  361. package/.next/static/chunks/app/api/auth/login/route-dcc4d4b28dc1e9eb.js +0 -1
  362. package/.next/static/chunks/app/api/auth/logout/[provider]/route-dcc4d4b28dc1e9eb.js +0 -1
  363. package/.next/static/chunks/app/api/auth/providers/route-dcc4d4b28dc1e9eb.js +0 -1
  364. package/.next/static/chunks/app/api/auth/status/route-dcc4d4b28dc1e9eb.js +0 -1
  365. package/.next/static/chunks/app/api/auth/totp/route-dcc4d4b28dc1e9eb.js +0 -1
  366. package/.next/static/chunks/app/api/debug-models/route-dcc4d4b28dc1e9eb.js +0 -1
  367. package/.next/static/chunks/app/api/default-cwd/route-dcc4d4b28dc1e9eb.js +0 -1
  368. package/.next/static/chunks/app/api/file-index/route-dcc4d4b28dc1e9eb.js +0 -1
  369. package/.next/static/chunks/app/api/file-tree/delete/route-dcc4d4b28dc1e9eb.js +0 -1
  370. package/.next/static/chunks/app/api/file-tree/mkdir/route-dcc4d4b28dc1e9eb.js +0 -1
  371. package/.next/static/chunks/app/api/file-tree/rename/route-dcc4d4b28dc1e9eb.js +0 -1
  372. package/.next/static/chunks/app/api/file-tree/reveal/route-dcc4d4b28dc1e9eb.js +0 -1
  373. package/.next/static/chunks/app/api/file-tree/write/route-dcc4d4b28dc1e9eb.js +0 -1
  374. package/.next/static/chunks/app/api/file-watch/route-dcc4d4b28dc1e9eb.js +0 -1
  375. package/.next/static/chunks/app/api/files/[...path]/route-dcc4d4b28dc1e9eb.js +0 -1
  376. package/.next/static/chunks/app/api/harness/route-dcc4d4b28dc1e9eb.js +0 -1
  377. package/.next/static/chunks/app/api/home/route-dcc4d4b28dc1e9eb.js +0 -1
  378. package/.next/static/chunks/app/api/im/cancel/route-dcc4d4b28dc1e9eb.js +0 -1
  379. package/.next/static/chunks/app/api/im/gateway-status/route-dcc4d4b28dc1e9eb.js +0 -1
  380. package/.next/static/chunks/app/api/im/gateway-token/route-dcc4d4b28dc1e9eb.js +0 -1
  381. package/.next/static/chunks/app/api/im/project/route-dcc4d4b28dc1e9eb.js +0 -1
  382. package/.next/static/chunks/app/api/im/projects/route-dcc4d4b28dc1e9eb.js +0 -1
  383. package/.next/static/chunks/app/api/im/session-ids/route-dcc4d4b28dc1e9eb.js +0 -1
  384. package/.next/static/chunks/app/api/im/turn/route-dcc4d4b28dc1e9eb.js +0 -1
  385. package/.next/static/chunks/app/api/images/upload/route-dcc4d4b28dc1e9eb.js +0 -1
  386. package/.next/static/chunks/app/api/internal/runtime/route-dcc4d4b28dc1e9eb.js +0 -1
  387. package/.next/static/chunks/app/api/memory/dismiss/route-dcc4d4b28dc1e9eb.js +0 -1
  388. package/.next/static/chunks/app/api/memory/promote/route-dcc4d4b28dc1e9eb.js +0 -1
  389. package/.next/static/chunks/app/api/models/route-dcc4d4b28dc1e9eb.js +0 -1
  390. package/.next/static/chunks/app/api/models-config/discover/route-dcc4d4b28dc1e9eb.js +0 -1
  391. package/.next/static/chunks/app/api/models-config/route-dcc4d4b28dc1e9eb.js +0 -1
  392. package/.next/static/chunks/app/api/models-config/test/route-dcc4d4b28dc1e9eb.js +0 -1
  393. package/.next/static/chunks/app/api/plot-kernels/route-dcc4d4b28dc1e9eb.js +0 -1
  394. package/.next/static/chunks/app/api/plot-kernels/save/route-dcc4d4b28dc1e9eb.js +0 -1
  395. package/.next/static/chunks/app/api/plot-kernels/status/route-dcc4d4b28dc1e9eb.js +0 -1
  396. package/.next/static/chunks/app/api/plot-kernels/stop/route-dcc4d4b28dc1e9eb.js +0 -1
  397. package/.next/static/chunks/app/api/plugins/route-dcc4d4b28dc1e9eb.js +0 -1
  398. package/.next/static/chunks/app/api/project-trust/route-dcc4d4b28dc1e9eb.js +0 -1
  399. package/.next/static/chunks/app/api/projects/browse/route-dcc4d4b28dc1e9eb.js +0 -1
  400. package/.next/static/chunks/app/api/projects/route-dcc4d4b28dc1e9eb.js +0 -1
  401. package/.next/static/chunks/app/api/search/route-dcc4d4b28dc1e9eb.js +0 -1
  402. package/.next/static/chunks/app/api/session-index/events/route-dcc4d4b28dc1e9eb.js +0 -1
  403. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-dcc4d4b28dc1e9eb.js +0 -1
  404. package/.next/static/chunks/app/api/sessions/[id]/context/route-dcc4d4b28dc1e9eb.js +0 -1
  405. package/.next/static/chunks/app/api/sessions/[id]/export/route-dcc4d4b28dc1e9eb.js +0 -1
  406. package/.next/static/chunks/app/api/sessions/[id]/kernel-state/route-dcc4d4b28dc1e9eb.js +0 -1
  407. package/.next/static/chunks/app/api/sessions/[id]/media/route-dcc4d4b28dc1e9eb.js +0 -1
  408. package/.next/static/chunks/app/api/sessions/[id]/route-dcc4d4b28dc1e9eb.js +0 -1
  409. package/.next/static/chunks/app/api/sessions/[id]/shadowed/route-dcc4d4b28dc1e9eb.js +0 -1
  410. package/.next/static/chunks/app/api/sessions/[id]/workbench-artifact/route-dcc4d4b28dc1e9eb.js +0 -1
  411. package/.next/static/chunks/app/api/sessions/[id]/workbench-review/route-dcc4d4b28dc1e9eb.js +0 -1
  412. package/.next/static/chunks/app/api/sessions/new/route-dcc4d4b28dc1e9eb.js +0 -1
  413. package/.next/static/chunks/app/api/sessions/route-dcc4d4b28dc1e9eb.js +0 -1
  414. package/.next/static/chunks/app/api/settings/route-dcc4d4b28dc1e9eb.js +0 -1
  415. package/.next/static/chunks/app/api/skills/check/route-dcc4d4b28dc1e9eb.js +0 -1
  416. package/.next/static/chunks/app/api/skills/install/route-dcc4d4b28dc1e9eb.js +0 -1
  417. package/.next/static/chunks/app/api/skills/route-dcc4d4b28dc1e9eb.js +0 -1
  418. package/.next/static/chunks/app/api/skills/search/route-dcc4d4b28dc1e9eb.js +0 -1
  419. package/.next/static/chunks/app/api/skills/update/route-dcc4d4b28dc1e9eb.js +0 -1
  420. package/.next/static/chunks/app/api/smoke/prompt-admission/route-dcc4d4b28dc1e9eb.js +0 -1
  421. package/.next/static/chunks/app/api/soul/route-dcc4d4b28dc1e9eb.js +0 -1
  422. package/.next/static/chunks/app/api/subagents/status/route-dcc4d4b28dc1e9eb.js +0 -1
  423. package/.next/static/chunks/app/api/version/route-dcc4d4b28dc1e9eb.js +0 -1
  424. package/.next/static/chunks/app/favicon.ico/route-dcc4d4b28dc1e9eb.js +0 -1
  425. package/.next/static/chunks/app/layout-101c4ccdf12880f0.js +0 -1
  426. package/.next/static/chunks/app/page-703d91d8bff67f70.js +0 -44
  427. package/.next/static/chunks/framework-594babcea68f40f6.js +0 -1
  428. package/.next/static/chunks/main-0371fd3122de9512.js +0 -5
  429. package/.next/static/chunks/main-app-8d81a93b58bb990f.js +0 -1
  430. package/.next/static/chunks/next/dist/client/components/builtin/app-error-dcc4d4b28dc1e9eb.js +0 -1
  431. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-dcc4d4b28dc1e9eb.js +0 -1
  432. package/.next/static/chunks/next/dist/client/components/builtin/global-error-a7f3f044c72f9137.js +0 -1
  433. package/.next/static/chunks/next/dist/client/components/builtin/not-found-dcc4d4b28dc1e9eb.js +0 -1
  434. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-dcc4d4b28dc1e9eb.js +0 -1
  435. package/.next/static/media/pdf.worker.min.29aaf158.mjs +0 -6
  436. package/.next/static/zeWki1Z47rqBkR2ph5H6N/_buildManifest.js +0 -1
  437. /package/.next/static/{zeWki1Z47rqBkR2ph5H6N → r3Awszl0kNf_sRFX-3vDi}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ self.__BUILD_MANIFEST={__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:65,errorRate:1e-4,numBits:1247,numHashes:14,bitArray:[0,0,0,0,1,1,0,0,1,0,1,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,1,0,0,1,0,0,0,1,1,1,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,0,0,1,1,0,0,0,1,1,1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,1,1,0,1,1,1,1,0,0,0,0,1,1,0,1,1,1,0,1,0,0,1,0,1,1,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1,0,1,1,1,0,1,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,0,1,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,1,0,1,1,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,1,0,1,1,0,1,0,0,0,1,1,0,1,1,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,1,0,1,0,1,1,0,0,1,1,0,0,1,1,1,1,0,1,1,1,1,0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,0,0,1,0,1,1,0,1,1,1,1,0,1,1,1,1,0,1,0,1,0,1,1,1,0,1,0,0,1,1,0,0,0,1,1,1,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0,1,1,0,1,1,0,1,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,1,1,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,1,0,1,1,1,0,0,0,0,1,1,1,0,1,0,0,0,1,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,1,1,0,0,1,0,1,0,0,1,1,1,1,1,1,1,1,1,0,1,0,0,1,0,1,0,1,0,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,0,0,1,1,0,0,1,1,0,1,0,1,1,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,1,1,1,1,0,1,0,0,0,0,1,0,1,0,1,0,0,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,0,0,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,0,1,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,0,1,1,0,1,0,0,1,1,1,1,0,1,1,0,1,1,1,1,1,0,0,0,1,1,0,1,0,1,0,0,0,1,0,1,1,0,1,1,1,0,0,1,1,0,1,0,1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0,1,1,0,1,1,0,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,0,1,1,0,0,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,0,0,0,1,0,1,1,0,1,0,0,1,0,1,1,1,0,1,0,1,0,0,1,1,0,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,0,0,1,0,0,0,1,0,1,1,1,0,0,0,1,1,0,0,0,1,0,1,1,0,1,1,1,0,0,0,1,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,1,0,0,1,1,0,1,0,0,1,0,1,0,0,1,1,0,1,1,0,0,0,0,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,1,1,0,1,0,0,1,1,0,0,0,1,0,1,1,0,1,1,0,1,1,0,0,0,0,1,0,1,0,1,1,1,1,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,1,1,0,0,0,0,1,1,0,1,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,1,1,0]},__routerFilterDynamic:{numItems:7,errorRate:1e-4,numBits:135,numHashes:14,bitArray:[0,1,1,0,0,1,0,0,0,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,0,0,1,1,1,1,0,1,1,1,1,1,0,0,0,0,1,0,0,1,0,1,0,1,0,1,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,1,0,1,1,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,1,0,1,0,1]},sortedPages:["/_app"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -64,7 +64,11 @@ function envFirst(...names) {
64
64
  }
65
65
 
66
66
  function getAgentDir() {
67
- return envFirst("PI_AGENT_DIR") ?? path.join(os.homedir(), ".pi", "agent");
67
+ // Must mirror the server (pi's getAgentDir + lib/*): PI_CODING_AGENT_DIR is the
68
+ // documented relocation switch, PI_AGENT_DIR is the legacy name this file used
69
+ // to read. Diverging here splits gateway.json between two directories and makes
70
+ // every IM request fail with 401.
71
+ return envFirst("PI_CODING_AGENT_DIR", "PI_AGENT_DIR") ?? path.join(os.homedir(), ".pi", "agent");
68
72
  }
69
73
 
70
74
  function readAnnovibeState() {
@@ -105,9 +109,12 @@ function readGatewayToken() {
105
109
 
106
110
  function writeGatewayState(patch) {
107
111
  const statePath = getGatewayStatePath();
108
- try { fs.mkdirSync(path.dirname(statePath), { recursive: true }); } catch {}
112
+ try { fs.mkdirSync(path.dirname(statePath), { recursive: true, mode: 0o700 }); } catch {}
109
113
  const state = readGatewayState();
110
- fs.writeFileSync(statePath, JSON.stringify({ ...state, ...patch }, null, 2), "utf8");
114
+ const tmpPath = `${statePath}.${process.pid}.tmp`;
115
+ fs.writeFileSync(tmpPath, JSON.stringify({ ...state, ...patch }, null, 2), { encoding: "utf8", mode: 0o600 });
116
+ fs.renameSync(tmpPath, statePath);
117
+ try { fs.chmodSync(statePath, 0o600); } catch {}
111
118
  }
112
119
 
113
120
  // ── HTTP helpers ────────────────────────────────────────────────────
@@ -116,11 +123,11 @@ function getToken() {
116
123
  return process.env.ANNOVIBE_GATEWAY_TOKEN?.trim() || readGatewayToken();
117
124
  }
118
125
 
119
- function requestJsonRaw(method, pathname, body, options = {}) {
126
+ function requestJsonRaw(method, pathname, body) {
120
127
  const url = new URL(pathname, getBaseUrl());
121
128
  const payload = body === undefined ? undefined : JSON.stringify(body);
122
129
  const lib = url.protocol === "https:" ? https : http;
123
- const token = options.skipAuth ? "" : getToken();
130
+ const token = getToken();
124
131
 
125
132
  return new Promise((resolve, reject) => {
126
133
  const req = lib.request(
@@ -163,26 +170,14 @@ function requestJson(method, pathname, body) {
163
170
 
164
171
  function formatImApiError(statusCode, message) {
165
172
  if (statusCode === 401) {
166
- return `${message}. Ensure annovibe is running in this Linux account and gateway token is synced (restart annovibe-im-gateway after saving IM settings).`;
173
+ return `${message}. The gateway token in ~/.pi/agent/im/gateway.json does not match the one annovibe is using; restart \`annovibe restart\` to resync.`;
167
174
  }
168
175
  if (statusCode === 403) {
169
- return `${message}. annovibe-im-gateway must reach annovibe on localhost.`;
176
+ return `${message}. Request rejected by annovibe's host/origin check.`;
170
177
  }
171
178
  return message;
172
179
  }
173
180
 
174
- async function syncGatewayTokenFromServer() {
175
- try {
176
- const payload = await requestJsonRaw("GET", "/api/im/gateway-token", undefined, { skipAuth: true });
177
- const serverToken = typeof payload.token === "string" ? payload.token.trim() : "";
178
- if (!serverToken || readGatewayToken() === serverToken) return;
179
- writeGatewayState({ token: serverToken });
180
- console.error("[im] synced gateway token from annovibe server");
181
- } catch (error) {
182
- console.error(`[im] could not sync gateway token: ${String(error)}`);
183
- }
184
- }
185
-
186
181
  /**
187
182
  * Consume SSE turn stream, yielding deltas and status changes to callbacks.
188
183
  */
@@ -647,6 +642,72 @@ class ProjectWeComBridge {
647
642
  }
648
643
  }
649
644
 
645
+ // ── Single-instance lock ────────────────────────────────────────────
646
+ // Two gateways would fight over the same WeCom bot connection and clobber
647
+ // each other's state. `gateway.json`'s pid is written per start and goes stale,
648
+ // so the lock is a separate file created with O_EXCL plus a liveness + cmdline
649
+ // check on the recorded pid.
650
+
651
+ function getGatewayLockPath() {
652
+ return path.join(getAgentDir(), "im", "gateway.lock");
653
+ }
654
+
655
+ function readLockPid(lockPath) {
656
+ try {
657
+ const raw = JSON.parse(fs.readFileSync(lockPath, "utf8"));
658
+ const pid = Number(raw && raw.pid);
659
+ return Number.isInteger(pid) && pid > 0 ? pid : null;
660
+ } catch {
661
+ return null;
662
+ }
663
+ }
664
+
665
+ function isLiveGatewayPid(pid) {
666
+ if (!Number.isInteger(pid) || pid <= 0) return false;
667
+ try { process.kill(pid, 0); } catch { return false; }
668
+
669
+ let cmdline = "";
670
+ try { cmdline = fs.readFileSync(`/proc/${pid}/cmdline`, "utf8").replace(/\0/g, " "); } catch {}
671
+ if (!cmdline.trim()) {
672
+ try {
673
+ cmdline = require("child_process").execFileSync("ps", ["-p", String(pid), "-o", "command="], { encoding: "utf8" });
674
+ } catch {}
675
+ }
676
+ // Unreadable cmdline is rare; err on the side of "alive" so a double connect
677
+ // cannot happen silently.
678
+ if (!cmdline.trim()) return true;
679
+ return /annovibe-im-gateway|im-gateway/i.test(cmdline);
680
+ }
681
+
682
+ function acquireGatewayLock() {
683
+ const lockPath = getGatewayLockPath();
684
+ fs.mkdirSync(path.dirname(lockPath), { recursive: true, mode: 0o700 });
685
+ for (let attempt = 0; attempt < 2; attempt += 1) {
686
+ try {
687
+ const fd = fs.openSync(lockPath, "wx", 0o600);
688
+ try {
689
+ fs.writeSync(fd, JSON.stringify({ pid: process.pid, startedAt: new Date().toISOString() }));
690
+ } finally {
691
+ fs.closeSync(fd);
692
+ }
693
+ return { ok: true, lockPath };
694
+ } catch (error) {
695
+ if (error.code !== "EEXIST") throw error;
696
+ const holder = readLockPid(lockPath);
697
+ if (holder && isLiveGatewayPid(holder)) return { ok: false, holder };
698
+ try { fs.unlinkSync(lockPath); } catch {}
699
+ }
700
+ }
701
+ return { ok: false, holder: readLockPid(lockPath) };
702
+ }
703
+
704
+ function releaseGatewayLock() {
705
+ try {
706
+ const lockPath = getGatewayLockPath();
707
+ if (readLockPid(lockPath) === process.pid) fs.unlinkSync(lockPath);
708
+ } catch {}
709
+ }
710
+
650
711
  class ImGateway {
651
712
  constructor() {
652
713
  this.bridges = new Map();
@@ -657,6 +718,16 @@ class ImGateway {
657
718
  async start() {
658
719
  console.error("[im] Annovibe IM Gateway starting...");
659
720
 
721
+ const lock = acquireGatewayLock();
722
+ if (!lock.ok) {
723
+ if (process.env.ANNOVIBE_IM_GATEWAY_FORCE === "1") {
724
+ console.error(`[im] another gateway (pid ${lock.holder}) looks alive; starting anyway (ANNOVIBE_IM_GATEWAY_FORCE=1)`);
725
+ } else {
726
+ console.error(`[im] another gateway is already running (pid ${lock.holder}); exiting. Set ANNOVIBE_IM_GATEWAY_FORCE=1 to override.`);
727
+ process.exit(1);
728
+ }
729
+ }
730
+
660
731
  // Write gateway state
661
732
  const token = readGatewayToken() || crypto.randomBytes(32).toString("hex");
662
733
  writeGatewayState({ token, startedAt: new Date().toISOString(), pid: process.pid });
@@ -664,7 +735,8 @@ class ImGateway {
664
735
  console.error(`[im] Gateway token: ${token.slice(0, 8)}...`);
665
736
  console.error(`[im] Annovibe port: ${getAnnovibePort()}`);
666
737
 
667
- await syncGatewayTokenFromServer();
738
+ // No HTTP token sync: the token lives in ~/.pi/agent/im/gateway.json, which
739
+ // both this process and the annovibe server read on every request.
668
740
 
669
741
  // Start config poll
670
742
  await this.refreshProjects();
@@ -710,9 +782,13 @@ class ImGateway {
710
782
  }
711
783
  this.bridges.clear();
712
784
 
785
+ // Keep the token: it is a shared secret, not a liveness marker. Clearing it
786
+ // here made every IM request fail with 401 until someone reopened the IM
787
+ // settings panel (which is the only place that regenerates it).
713
788
  try {
714
- writeGatewayState({ token: "" });
789
+ writeGatewayState({ pid: 0, stoppedAt: new Date().toISOString() });
715
790
  } catch {}
791
+ releaseGatewayLock();
716
792
  }
717
793
  }
718
794
 
@@ -722,6 +798,7 @@ const gateway = new ImGateway();
722
798
 
723
799
  process.on("SIGINT", () => { void gateway.stop().then(() => process.exit(0)); });
724
800
  process.on("SIGTERM", () => { void gateway.stop().then(() => process.exit(0)); });
801
+ process.on("exit", releaseGatewayLock);
725
802
 
726
803
  void gateway.start();
727
804
 
package/bin/pi-web.js CHANGED
@@ -22,6 +22,19 @@ const VERSION = pkg.version;
22
22
  const PKG_NAME = pkg.name;
23
23
  const agentDir = process.env.PI_CODING_AGENT_DIR ?? path.join(os.homedir(), ".pi", "agent");
24
24
  const authFile = path.join(agentDir, "web-auth.json");
25
+ /**
26
+ * web-auth.json carries the bcrypt hash (+ TOTP secret once enabled). Write it
27
+ * atomically with 0600: the umask must not decide who can read it, and a crash
28
+ * mid-write must not leave a truncated file behind (that would disable auth).
29
+ */
30
+ function writeAuthFile(payload) {
31
+ const dir = path.dirname(authFile);
32
+ if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
33
+ const tmpPath = `${authFile}.${process.pid}.tmp`;
34
+ fs.writeFileSync(tmpPath, JSON.stringify(payload, null, 2), { encoding: "utf8", mode: 0o600 });
35
+ fs.renameSync(tmpPath, authFile);
36
+ try { fs.chmodSync(authFile, 0o600); } catch { /* best effort on odd filesystems */ }
37
+ }
25
38
  const stateFile = path.join(agentDir, "annovibe.json");
26
39
  const legacyStateFile = path.join(agentDir, "pidex.json");
27
40
  const logFile = path.join(agentDir, "annovibe.log");
@@ -880,9 +893,7 @@ if (firstPos === "passwd") {
880
893
  process.exit(0);
881
894
  }
882
895
  const hash = bcrypt.hashSync(pw, 10);
883
- const dir = path.dirname(authFile);
884
- if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
885
- fs.writeFileSync(authFile, JSON.stringify({ passwordHash: hash, enabled: true }, null, 2));
896
+ writeAuthFile({ passwordHash: hash, enabled: true });
886
897
  console.log(exists ? " ✅ Password changed.\n" : " ✅ Password set. Restart won't prompt.\n");
887
898
  rl.close();
888
899
  process.exit(0);
@@ -935,9 +946,7 @@ function promptPassword() {
935
946
  return;
936
947
  }
937
948
  const hash = bcrypt.hashSync(pw1, 10);
938
- const dir = path.dirname(authFile);
939
- if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
940
- fs.writeFileSync(authFile, JSON.stringify({ passwordHash: hash, enabled: true }, null, 2));
949
+ writeAuthFile({ passwordHash: hash, enabled: true });
941
950
  console.log(" ✅ Password set. Restart won't prompt.\n");
942
951
  rl.close();
943
952
  resolve(true);
@@ -950,9 +959,7 @@ async function maybeSetupAuth() {
950
959
  const password = process.env.ANNOVIBE_PASSWORD ?? process.env.PIDEX_PASSWORD;
951
960
  if (password) {
952
961
  const hash = bcrypt.hashSync(password, 10);
953
- const dir = path.dirname(authFile);
954
- if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
955
- fs.writeFileSync(authFile, JSON.stringify({ passwordHash: hash, enabled: true }, null, 2));
962
+ writeAuthFile({ passwordHash: hash, enabled: true });
956
963
  console.log(` 🔐 Password set from ${process.env.ANNOVIBE_PASSWORD ? "ANNOVIBE_PASSWORD" : "PIDEX_PASSWORD"} env var.`);
957
964
  return;
958
965
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seqyuan/annovibe",
3
- "version": "0.8.136",
3
+ "version": "0.8.138",
4
4
  "description": "AI-native bioinformatics workspace by Annoroad",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -41,7 +41,7 @@
41
41
  "@seqyuan/kernel-lite-core": "^0.2.1",
42
42
  "@seqyuan/pi-kernel-plot": "^0.2.1",
43
43
  "bcryptjs": "^3.0.3",
44
- "next": "16.2.1",
44
+ "next": "16.4.3",
45
45
  "otplib": "^13.4.1",
46
46
  "qrcode": "^1.5.4",
47
47
  "react": "^19.2.4",
@@ -80,7 +80,7 @@
80
80
  "codemirror": "^6.0.2",
81
81
  "docx-preview": "^0.3.7",
82
82
  "eslint": "^9",
83
- "eslint-config-next": "16.2.1",
83
+ "eslint-config-next": "16.4.3",
84
84
  "jszip": "^3.10.1",
85
85
  "mermaid": "^11.15.0",
86
86
  "pdfjs-dist": "^5.7.284",
@@ -1,5 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[57121,[],""]
3
- 3:I[74581,[],""]
4
- 4:[]
5
- 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"zeWki1Z47rqBkR2ph5H6N"}
@@ -1,5 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[90484,[],"ViewportBoundary"]
3
- 3:I[90484,[],"MetadataBoundary"]
4
- 4:"$Sreact.suspense"
5
- 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":[]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"zeWki1Z47rqBkR2ph5H6N"}
@@ -1,5 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[57121,[],""]
3
- 3:I[74581,[],""]
4
- 4:[]
5
- 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"zeWki1Z47rqBkR2ph5H6N"}
@@ -1,6 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[90484,[],"ViewportBoundary"]
3
- 3:I[90484,[],"MetadataBoundary"]
4
- 4:"$Sreact.suspense"
5
- 5:I[86869,[],"IconMark"]
6
- 0:{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$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":"AnnoVibe"}],["$","meta","1",{"name":"description","content":"AI-native bioinformatics workspace by Annoroad"}],["$","link","2",{"rel":"shortcut icon","href":"/icon.svg","type":"image/svg+xml"}],["$","link","3",{"rel":"icon","href":"/icon.svg","type":"image/svg+xml"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"zeWki1Z47rqBkR2ph5H6N"}
@@ -1,7 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[42593,["7177","static/chunks/app/layout-101c4ccdf12880f0.js"],""]
3
- 3:I[57121,[],""]
4
- 4:I[74581,[],""]
5
- :HL["/_next/static/css/9bcd6051db4f8890.css","style"]
6
- :HL["/_next/static/css/738b0b1c24aae500.css","style"]
7
- 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/9bcd6051db4f8890.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/738b0b1c24aae500.css","precedence":"next"}]],["$","html",null,{"lang":"en","className":"__variable_9e44ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","$L2",null,{"id":"theme-init","strategy":"beforeInteractive","children":"(function(){try{var t=localStorage.getItem(\"pi-theme\");if(t===\"dark\")document.documentElement.classList.add(\"dark\")}catch(e){}})();"}]}],["$","body",null,{"style":{"height":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"zeWki1Z47rqBkR2ph5H6N"}
@@ -1,5 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[57121,[],""]
3
- 3:I[74581,[],""]
4
- 4:[]
5
- 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"zeWki1Z47rqBkR2ph5H6N"}
@@ -1 +0,0 @@
1
- "use strict";(()=>{var a={};a.id=9815,a.ids=[9815],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31202:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>i,dynamic:()=>j});var e=c(23211),f=c(31761),g=c(81896),h=a([f,g]);[f,g]=h.then?(await h)():h;let j="force-dynamic";async function i(a){if(!(0,g.N)(a))return e.NextResponse.json({error:"Gateway token sync is localhost-only"},{status:403});let b=(0,f.SR)();return e.NextResponse.json({token:b?.token??""})}d()}catch(a){d(a)}})},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64094:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(31202),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/im/gateway-token/route",pathname:"/api/im/gateway-token",filename:"route",bundlePath:"app/api/im/gateway-token/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/im/gateway-token/route.ts",nextConfigOutput:"",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/im/gateway-token/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},81896:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{D:()=>h,N:()=>g});var e=c(31761),f=a([e]);function g(a){try{let b=new URL(a.url).hostname.toLowerCase();if("localhost"===b||"127.0.0.1"===b||"::1"===b)return!0}catch{}let b=(a.headers.get("host")??"").split(":")[0]?.toLowerCase()??"";if("localhost"===b||"127.0.0.1"===b||"::1"===b)return!0;let c=a.headers.get("x-forwarded-for");if(!c)return!1;let d=c.split(",")[0]?.trim();return"127.0.0.1"===d||"::1"===d}function h(a){let b=(0,e.SR)(),c=b?.token?.trim();if(!c)return g(a);let d=a.headers.get("authorization");if(!d)return!1;let f=d.match(/^Bearer\s+(.+)$/i);return!!f&&f[1].trim()===c}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,7831,402,1761],()=>b(b.s=64094));module.exports=c})();
@@ -1 +0,0 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/im/gateway-token/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/annovibe/annovibe/app/api/im/gateway-token/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1 +0,0 @@
1
- "use strict";(()=>{var a={};a.id=4055,a.ids=[4055],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19989:(a,b,c)=>{c.d(b,{X:()=>d});function d(a,b){let c=new Map;for(let a of b){let b=a.provenance.cellIndex;c.set(b,[...c.get(b)??[],a])}return a.map(a=>{let b,d=c.get(a.index)??[],e=d.map(a=>a.fileName).slice(0,4),f=(b=a.stdoutPreview.split("\n").map(a=>a.trim()).find(a=>a&&!a.startsWith("[")&&a.length>2))?b.slice(0,240):null,g=["succeeded"===a.status?"Completed":"failed"===a.status?"Failed":"Ran",a.title||`Cell #${a.index}`,e.length>0?`generated ${e.join(", ")}`:null,f?`Output: ${f}`:null].filter(Boolean);return{id:`cell-${a.index}`,cellIndex:a.index,title:a.title||`Cell #${a.index}`,status:a.status,summary:g.join(". "),artifactIds:d.map(a=>a.id),createdAt:a.createdAt}})}},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66214:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(78582),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sessions/[id]/kernel-state/route",pathname:"/api/sessions/[id]/kernel-state",filename:"route",bundlePath:"app/api/sessions/[id]/kernel-state/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/sessions/[id]/kernel-state/route.ts",nextConfigOutput:"",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/sessions/[id]/kernel-state/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},78582:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>l});var e=c(23211),f=c(40402),g=c(60103),h=c(59059),i=c(19989),j=c(12506),k=a([f]);async function l(a,{params:b}){try{let{id:a}=await b;if(!a)return e.NextResponse.json({error:"session id required"},{status:400});let c=await (0,f.os)(a);if(!c)return e.NextResponse.json({error:"session not found"},{status:404});let d=(0,g.f)(c);if(!d)return e.NextResponse.json({error:"no kernel state found"},{status:404});let k=(0,h.od)(a,d.cells),l=(0,i.X)(d.cells,k),m=(0,j.M$)(d,k);return e.NextResponse.json({...d,artifacts:k,notes:l,review:m})}catch(a){return e.NextResponse.json({error:String(a)},{status:500})}}f=(k.then?(await k)():k)[0],d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,7831,402,2562],()=>b(b.s=66214));module.exports=c})();
@@ -1 +0,0 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sessions/[id]/kernel-state/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/annovibe/annovibe/app/api/sessions/[id]/kernel-state/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1 +0,0 @@
1
- "use strict";(()=>{var a={};a.id=3098,a.ids=[3098],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76464:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(83533),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sessions/[id]/workbench-artifact/route",pathname:"/api/sessions/[id]/workbench-artifact",filename:"route",bundlePath:"app/api/sessions/[id]/workbench-artifact/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/sessions/[id]/workbench-artifact/route.ts",nextConfigOutput:"",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/sessions/[id]/workbench-artifact/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},83533:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>k});var e=c(23211),f=c(40402),g=c(60103),h=c(59059),i=c(12506),j=a([f]);async function k(a,{params:b}){try{let{id:c}=await b,d=a.nextUrl.searchParams.get("path");if(!c)return e.NextResponse.json({error:"session id required"},{status:400});if(!d)return e.NextResponse.json({error:"path is required"},{status:400});let j=await (0,f.os)(c);if(!j)return e.NextResponse.json({error:"session not found"},{status:404});let k=(0,g.f)(j);if(!k)return e.NextResponse.json({artifact:null,reviewIssues:[]});let l=(0,h.od)(c,k.cells),m=l.find(a=>a.path===d)??null,n=(0,i.M$)(k,l);return e.NextResponse.json({artifact:m,reviewIssues:m?n.issues.filter(a=>a.artifactId===m.id):[]})}catch(a){return e.NextResponse.json({error:String(a)},{status:500})}}f=(j.then?(await j)():j)[0],d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,7831,402,2562],()=>b(b.s=76464));module.exports=c})();
@@ -1 +0,0 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sessions/[id]/workbench-artifact/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/annovibe/annovibe/app/api/sessions/[id]/workbench-artifact/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1 +0,0 @@
1
- "use strict";(()=>{var a={};a.id=6700,a.ids=[6700],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},41719:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>k});var e=c(23211),f=c(40402),g=c(60103),h=c(59059),i=c(12506),j=a([f]);async function k(a,{params:b}){try{let{id:a}=await b;if(!a)return e.NextResponse.json({error:"session id required"},{status:400});let c=await (0,f.os)(a);if(!c)return e.NextResponse.json({error:"session not found"},{status:404});let d=(0,g.f)(c);if(!d)return e.NextResponse.json({error:"no kernel state found"},{status:404});let j=(0,h.od)(a,d.cells);return e.NextResponse.json((0,i.M$)(d,j))}catch(a){return e.NextResponse.json({error:String(a)},{status:500})}}f=(j.then?(await j)():j)[0],d()}catch(a){d(a)}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48280:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(41719),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sessions/[id]/workbench-review/route",pathname:"/api/sessions/[id]/workbench-review",filename:"route",bundlePath:"app/api/sessions/[id]/workbench-review/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/sessions/[id]/workbench-review/route.ts",nextConfigOutput:"",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/sessions/[id]/workbench-review/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,7831,402,2562],()=>b(b.s=48280));module.exports=c})();
@@ -1 +0,0 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sessions/[id]/workbench-review/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/annovibe/annovibe/app/api/sessions/[id]/workbench-review/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1,6 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[90484,[],"ViewportBoundary"]
3
- 3:I[90484,[],"MetadataBoundary"]
4
- 4:"$Sreact.suspense"
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":"AnnoVibe"}],["$","meta","1",{"name":"description","content":"AI-native bioinformatics workspace by Annoroad"}],["$","link","2",{"rel":"shortcut icon","href":"/icon.svg","type":"image/svg+xml"}],["$","link","3",{"rel":"icon","href":"/icon.svg","type":"image/svg+xml"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"zeWki1Z47rqBkR2ph5H6N"}
@@ -1,7 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[42593,["7177","static/chunks/app/layout-101c4ccdf12880f0.js"],""]
3
- 3:I[57121,[],""]
4
- 4:I[74581,[],""]
5
- :HL["/_next/static/css/9bcd6051db4f8890.css","style"]
6
- :HL["/_next/static/css/738b0b1c24aae500.css","style"]
7
- 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/9bcd6051db4f8890.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/738b0b1c24aae500.css","precedence":"next"}]],["$","html",null,{"lang":"en","className":"__variable_9e44ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","$L2",null,{"id":"theme-init","strategy":"beforeInteractive","children":"(function(){try{var t=localStorage.getItem(\"pi-theme\");if(t===\"dark\")document.documentElement.classList.add(\"dark\")}catch(e){}})();"}]}],["$","body",null,{"style":{"height":"100dvh","display":"flex","flexDirection":"column"},"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":"zeWki1Z47rqBkR2ph5H6N"}
@@ -1,6 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[90484,[],"ViewportBoundary"]
3
- 3:I[90484,[],"MetadataBoundary"]
4
- 4:"$Sreact.suspense"
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":"AnnoVibe"}],["$","meta","1",{"name":"description","content":"AI-native bioinformatics workspace by Annoroad"}],["$","link","2",{"rel":"shortcut icon","href":"/icon.svg","type":"image/svg+xml"}],["$","link","3",{"rel":"icon","href":"/icon.svg","type":"image/svg+xml"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"zeWki1Z47rqBkR2ph5H6N"}
@@ -1,7 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[42593,["7177","static/chunks/app/layout-101c4ccdf12880f0.js"],""]
3
- 3:I[57121,[],""]
4
- 4:I[74581,[],""]
5
- :HL["/_next/static/css/9bcd6051db4f8890.css","style"]
6
- :HL["/_next/static/css/738b0b1c24aae500.css","style"]
7
- 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/9bcd6051db4f8890.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/738b0b1c24aae500.css","precedence":"next"}]],["$","html",null,{"lang":"en","className":"__variable_9e44ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","$L2",null,{"id":"theme-init","strategy":"beforeInteractive","children":"(function(){try{var t=localStorage.getItem(\"pi-theme\");if(t===\"dark\")document.documentElement.classList.add(\"dark\")}catch(e){}})();"}]}],["$","body",null,{"style":{"height":"100dvh","display":"flex","flexDirection":"column"},"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":"zeWki1Z47rqBkR2ph5H6N"}
@@ -1,5 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[57121,[],""]
3
- 3:I[74581,[],""]
4
- 4:[]
5
- 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"zeWki1Z47rqBkR2ph5H6N"}
@@ -1,6 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[90484,[],"ViewportBoundary"]
3
- 3:I[90484,[],"MetadataBoundary"]
4
- 4:"$Sreact.suspense"
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":"AnnoVibe"}],["$","meta","1",{"name":"description","content":"AI-native bioinformatics workspace by Annoroad"}],["$","link","2",{"rel":"shortcut icon","href":"/icon.svg","type":"image/svg+xml"}],["$","link","3",{"rel":"icon","href":"/icon.svg","type":"image/svg+xml"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"zeWki1Z47rqBkR2ph5H6N"}
@@ -1,7 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[42593,["7177","static/chunks/app/layout-101c4ccdf12880f0.js"],""]
3
- 3:I[57121,[],""]
4
- 4:I[74581,[],""]
5
- :HL["/_next/static/css/9bcd6051db4f8890.css","style"]
6
- :HL["/_next/static/css/738b0b1c24aae500.css","style"]
7
- 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/9bcd6051db4f8890.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/738b0b1c24aae500.css","precedence":"next"}]],["$","html",null,{"lang":"en","className":"__variable_9e44ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","$L2",null,{"id":"theme-init","strategy":"beforeInteractive","children":"(function(){try{var t=localStorage.getItem(\"pi-theme\");if(t===\"dark\")document.documentElement.classList.add(\"dark\")}catch(e){}})();"}]}],["$","body",null,{"style":{"height":"100dvh","display":"flex","flexDirection":"column"},"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":"zeWki1Z47rqBkR2ph5H6N"}
@@ -1,5 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[57121,[],""]
3
- 3:I[74581,[],""]
4
- 4:[]
5
- 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"zeWki1Z47rqBkR2ph5H6N"}
@@ -1,5 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[57121,[],""]
3
- 3:I[74581,[],""]
4
- 4:[]
5
- 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"zeWki1Z47rqBkR2ph5H6N"}
@@ -1,6 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[90484,[],"ViewportBoundary"]
3
- 3:I[90484,[],"MetadataBoundary"]
4
- 4:"$Sreact.suspense"
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":"AnnoVibe"}],["$","meta","1",{"name":"description","content":"AI-native bioinformatics workspace by Annoroad"}],["$","link","2",{"rel":"shortcut icon","href":"/icon.svg","type":"image/svg+xml"}],["$","link","3",{"rel":"icon","href":"/icon.svg","type":"image/svg+xml"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"zeWki1Z47rqBkR2ph5H6N"}
@@ -1,7 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[42593,["7177","static/chunks/app/layout-101c4ccdf12880f0.js"],""]
3
- 3:I[57121,[],""]
4
- 4:I[74581,[],""]
5
- :HL["/_next/static/css/9bcd6051db4f8890.css","style"]
6
- :HL["/_next/static/css/738b0b1c24aae500.css","style"]
7
- 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/9bcd6051db4f8890.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/738b0b1c24aae500.css","precedence":"next"}]],["$","html",null,{"lang":"en","className":"__variable_9e44ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","$L2",null,{"id":"theme-init","strategy":"beforeInteractive","children":"(function(){try{var t=localStorage.getItem(\"pi-theme\");if(t===\"dark\")document.documentElement.classList.add(\"dark\")}catch(e){}})();"}]}],["$","body",null,{"style":{"height":"100dvh","display":"flex","flexDirection":"column"},"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":"zeWki1Z47rqBkR2ph5H6N"}
@@ -1,5 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[57121,[],""]
3
- 3:I[74581,[],""]
4
- 4:[]
5
- 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"zeWki1Z47rqBkR2ph5H6N"}