@seqyuan/annovibe 0.8.144 → 0.8.146

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 (296) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +13 -14
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.js +1 -1
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/routes-manifest.json +28 -7
  8. package/.next/server/app/_global-error/page.js +2 -2
  9. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/_global-error.html +1 -1
  11. package/.next/server/app/_global-error.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page.js +2 -2
  16. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/_not-found.html +1 -1
  18. package/.next/server/app/_not-found.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  21. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  22. package/.next/server/app/api/agent/[id]/events/route.js +2 -2
  23. package/.next/server/app/api/agent/[id]/prepare/route.js +1 -1
  24. package/.next/server/app/api/agent/[id]/route.js +1 -1
  25. package/.next/server/app/api/agent/new/route.js +1 -1
  26. package/.next/server/app/api/agent/running/events/route.js +2 -2
  27. package/.next/server/app/api/agent/running/route.js +1 -1
  28. package/.next/server/app/api/agent/runtime/route.js +1 -1
  29. package/.next/server/app/api/apps/[id]/[[...path]]/route.js +2 -2
  30. package/.next/server/app/api/apps/route.js +2 -2
  31. package/.next/server/app/api/auth/all-providers/route.js +1 -1
  32. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  33. package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
  34. package/.next/server/app/api/auth/login/route.js +1 -1
  35. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  36. package/.next/server/app/api/auth/providers/route.js +1 -1
  37. package/.next/server/app/api/auth/status/route.js +1 -1
  38. package/.next/server/app/api/auth/totp/route.js +1 -1
  39. package/.next/server/app/api/debug-models/route.js +1 -1
  40. package/.next/server/app/api/default-cwd/route.js +1 -1
  41. package/.next/server/app/api/file-index/route.js +1 -1
  42. package/.next/server/app/api/file-tree/delete/route.js +1 -1
  43. package/.next/server/app/api/file-tree/mkdir/route.js +1 -1
  44. package/.next/server/app/api/file-tree/rename/route.js +1 -1
  45. package/.next/server/app/api/file-tree/reveal/route.js +1 -1
  46. package/.next/server/app/api/file-tree/write/route.js +1 -1
  47. package/.next/server/app/api/file-watch/route.js +2 -2
  48. package/.next/server/app/api/files/[...path]/route.js +1 -1
  49. package/.next/server/app/api/harness/route.js +1 -1
  50. package/.next/server/app/api/home/route.js +1 -1
  51. package/.next/server/app/api/im/cancel/route.js +1 -1
  52. package/.next/server/app/api/im/gateway-status/route.js +1 -1
  53. package/.next/server/app/api/im/project/route.js +1 -1
  54. package/.next/server/app/api/im/projects/route.js +1 -1
  55. package/.next/server/app/api/im/session-ids/route.js +1 -1
  56. package/.next/server/app/api/im/turn/route.js +2 -2
  57. package/.next/server/app/api/images/upload/route.js +1 -1
  58. package/.next/server/app/api/internal/runtime/route.js +1 -1
  59. package/.next/server/app/api/memory/dismiss/route.js +2 -2
  60. package/.next/server/app/api/memory/promote/route.js +2 -2
  61. package/.next/server/app/api/models/route.js +1 -1
  62. package/.next/server/app/api/models-config/discover/route.js +1 -1
  63. package/.next/server/app/api/models-config/route.js +1 -1
  64. package/.next/server/app/api/models-config/test/route.js +1 -1
  65. package/.next/server/app/api/plot-kernels/route.js +1 -1
  66. package/.next/server/app/api/plot-kernels/status/route.js +1 -1
  67. package/.next/server/app/api/plot-kernels/stop/route.js +1 -1
  68. package/.next/server/app/api/plugins/route.js +1 -1
  69. package/.next/server/app/api/project-trust/route.js +1 -1
  70. package/.next/server/app/api/projects/browse/route.js +1 -1
  71. package/.next/server/app/api/projects/route.js +1 -1
  72. package/.next/server/app/api/search/route.js +1 -1
  73. package/.next/server/app/api/session-index/events/route.js +2 -2
  74. package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
  75. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  76. package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
  77. package/.next/server/app/api/sessions/[id]/media/route.js +1 -1
  78. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  79. package/.next/server/app/api/sessions/[id]/shadowed/route.js +1 -1
  80. package/.next/server/app/api/sessions/new/route.js +1 -1
  81. package/.next/server/app/api/sessions/route.js +1 -1
  82. package/.next/server/app/api/settings/route.js +1 -1
  83. package/.next/server/app/api/skills/check/route.js +1 -1
  84. package/.next/server/app/api/skills/install/route.js +2 -2
  85. package/.next/server/app/api/skills/route.js +1 -1
  86. package/.next/server/app/api/skills/search/route.js +1 -1
  87. package/.next/server/app/api/skills/update/route.js +2 -2
  88. package/.next/server/app/api/smoke/prompt-admission/route.js +1 -1
  89. package/.next/server/app/api/soul/route.js +1 -1
  90. package/.next/server/app/api/subagents/status/route.js +1 -1
  91. package/.next/server/app/api/version/route.js +1 -1
  92. package/.next/server/app/favicon.ico/route.js +1 -1
  93. package/.next/server/app/icon.svg/route.js +1 -1
  94. package/.next/server/app/index.html +1 -1
  95. package/.next/server/app/index.rsc +5 -5
  96. package/.next/server/app/index.segments/__PAGE__.segment.rsc +5 -5
  97. package/.next/server/app/index.segments/_full.segment.rsc +5 -5
  98. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  99. package/.next/server/app/login/page.js +2 -2
  100. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  101. package/.next/server/app/login.html +1 -1
  102. package/.next/server/app/login.rsc +1 -1
  103. package/.next/server/app/login.segments/_full.segment.rsc +1 -1
  104. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  105. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  106. package/.next/server/app/page.js +14 -14
  107. package/.next/server/app/page_client-reference-manifest.js +1 -1
  108. package/.next/server/app/smoke/page.js +2 -2
  109. package/.next/server/app/smoke/page_client-reference-manifest.js +1 -1
  110. package/.next/server/app/smoke/session-stream/page.js +1 -1
  111. package/.next/server/app/smoke/session-stream/page_client-reference-manifest.js +1 -1
  112. package/.next/server/app/smoke/session-stream.html +1 -1
  113. package/.next/server/app/smoke/session-stream.rsc +3 -3
  114. package/.next/server/app/smoke/session-stream.segments/_full.segment.rsc +3 -3
  115. package/.next/server/app/smoke/session-stream.segments/_tree.segment.rsc +1 -1
  116. package/.next/server/app/smoke/session-stream.segments/smoke/session-stream/__PAGE__.segment.rsc +3 -3
  117. package/.next/server/app/smoke.html +2 -2
  118. package/.next/server/app/smoke.rsc +3 -3
  119. package/.next/server/app/smoke.segments/_full.segment.rsc +3 -3
  120. package/.next/server/app/smoke.segments/_tree.segment.rsc +1 -1
  121. package/.next/server/app/smoke.segments/smoke/__PAGE__.segment.rsc +3 -3
  122. package/.next/server/app-paths-manifest.json +13 -14
  123. package/.next/server/chunks/402.js +2 -2
  124. package/.next/server/chunks/4801.js +1 -1
  125. package/.next/server/chunks/6429.js +9 -12
  126. package/.next/server/chunks/7831.js +1 -1
  127. package/.next/server/chunks/8305.js +3 -3
  128. package/.next/server/chunks/9557.js +1 -1
  129. package/.next/server/middleware-build-manifest.js +1 -1
  130. package/.next/server/pages/404.html +1 -1
  131. package/.next/server/pages/500.html +1 -1
  132. package/.next/server/preview-props.json +3 -3
  133. package/.next/server/server-reference-manifest.json +1 -1
  134. package/.next/static/MHc4xkUiwo0WjuBfXFXEz/_buildManifest.js +1 -0
  135. package/.next/static/chunks/{6630-31647d3f2ff04a3d.js → 6630-afa0ca63437a28c6.js} +4 -4
  136. package/.next/static/chunks/9867-11130aa00dcc6aa8.js +260 -0
  137. package/.next/static/chunks/app/_global-error/{page-ebf7ae60150d40d4.js → page-3bfe21af77950daa.js} +1 -1
  138. package/.next/static/chunks/app/api/agent/[id]/events/{route-ebf7ae60150d40d4.js → route-3bfe21af77950daa.js} +1 -1
  139. package/.next/static/chunks/app/api/agent/[id]/prepare/{route-ebf7ae60150d40d4.js → route-3bfe21af77950daa.js} +1 -1
  140. package/.next/static/chunks/app/api/agent/[id]/{route-ebf7ae60150d40d4.js → route-3bfe21af77950daa.js} +1 -1
  141. package/.next/static/chunks/app/api/agent/new/route-3bfe21af77950daa.js +1 -0
  142. package/.next/static/chunks/app/api/agent/running/events/route-3bfe21af77950daa.js +1 -0
  143. package/.next/static/chunks/app/api/agent/running/route-3bfe21af77950daa.js +1 -0
  144. package/.next/static/chunks/app/api/agent/runtime/route-3bfe21af77950daa.js +1 -0
  145. package/.next/static/chunks/app/api/apps/[id]/[[...path]]/route-3bfe21af77950daa.js +1 -0
  146. package/.next/static/chunks/app/api/apps/route-3bfe21af77950daa.js +1 -0
  147. package/.next/static/chunks/app/api/auth/all-providers/route-3bfe21af77950daa.js +1 -0
  148. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-3bfe21af77950daa.js +1 -0
  149. package/.next/static/chunks/app/api/auth/login/[provider]/route-3bfe21af77950daa.js +1 -0
  150. package/.next/static/chunks/app/api/auth/login/route-3bfe21af77950daa.js +1 -0
  151. package/.next/static/chunks/app/api/auth/logout/[provider]/route-3bfe21af77950daa.js +1 -0
  152. package/.next/static/chunks/app/api/auth/providers/route-3bfe21af77950daa.js +1 -0
  153. package/.next/static/chunks/app/api/auth/status/route-3bfe21af77950daa.js +1 -0
  154. package/.next/static/chunks/app/api/auth/totp/route-3bfe21af77950daa.js +1 -0
  155. package/.next/static/chunks/app/api/debug-models/route-3bfe21af77950daa.js +1 -0
  156. package/.next/static/chunks/app/api/default-cwd/route-3bfe21af77950daa.js +1 -0
  157. package/.next/static/chunks/app/api/file-index/route-3bfe21af77950daa.js +1 -0
  158. package/.next/static/chunks/app/api/file-tree/delete/route-3bfe21af77950daa.js +1 -0
  159. package/.next/static/chunks/app/api/file-tree/mkdir/route-3bfe21af77950daa.js +1 -0
  160. package/.next/static/chunks/app/api/file-tree/rename/route-3bfe21af77950daa.js +1 -0
  161. package/.next/static/chunks/app/api/file-tree/reveal/route-3bfe21af77950daa.js +1 -0
  162. package/.next/static/chunks/app/api/file-tree/write/route-3bfe21af77950daa.js +1 -0
  163. package/.next/static/chunks/app/api/file-watch/route-3bfe21af77950daa.js +1 -0
  164. package/.next/static/chunks/app/api/files/[...path]/route-3bfe21af77950daa.js +1 -0
  165. package/.next/static/chunks/app/api/harness/route-3bfe21af77950daa.js +1 -0
  166. package/.next/static/chunks/app/api/home/route-3bfe21af77950daa.js +1 -0
  167. package/.next/static/chunks/app/api/im/cancel/route-3bfe21af77950daa.js +1 -0
  168. package/.next/static/chunks/app/api/im/gateway-status/route-3bfe21af77950daa.js +1 -0
  169. package/.next/static/chunks/app/api/im/project/route-3bfe21af77950daa.js +1 -0
  170. package/.next/static/chunks/app/api/im/projects/route-3bfe21af77950daa.js +1 -0
  171. package/.next/static/chunks/app/api/im/session-ids/route-3bfe21af77950daa.js +1 -0
  172. package/.next/static/chunks/app/api/im/turn/route-3bfe21af77950daa.js +1 -0
  173. package/.next/static/chunks/app/api/images/upload/route-3bfe21af77950daa.js +1 -0
  174. package/.next/static/chunks/app/api/internal/runtime/route-3bfe21af77950daa.js +1 -0
  175. package/.next/static/chunks/app/api/memory/dismiss/route-3bfe21af77950daa.js +1 -0
  176. package/.next/static/chunks/app/api/memory/promote/route-3bfe21af77950daa.js +1 -0
  177. package/.next/static/chunks/app/api/models/route-3bfe21af77950daa.js +1 -0
  178. package/.next/static/chunks/app/api/models-config/discover/route-3bfe21af77950daa.js +1 -0
  179. package/.next/static/chunks/app/api/models-config/route-3bfe21af77950daa.js +1 -0
  180. package/.next/static/chunks/app/api/models-config/test/route-3bfe21af77950daa.js +1 -0
  181. package/.next/static/chunks/app/api/plot-kernels/route-3bfe21af77950daa.js +1 -0
  182. package/.next/static/chunks/app/api/plot-kernels/status/route-3bfe21af77950daa.js +1 -0
  183. package/.next/static/chunks/app/api/plot-kernels/stop/route-3bfe21af77950daa.js +1 -0
  184. package/.next/static/chunks/app/api/plugins/route-3bfe21af77950daa.js +1 -0
  185. package/.next/static/chunks/app/api/project-trust/route-3bfe21af77950daa.js +1 -0
  186. package/.next/static/chunks/app/api/projects/browse/route-3bfe21af77950daa.js +1 -0
  187. package/.next/static/chunks/app/api/projects/route-3bfe21af77950daa.js +1 -0
  188. package/.next/static/chunks/app/api/search/route-3bfe21af77950daa.js +1 -0
  189. package/.next/static/chunks/app/api/session-index/events/route-3bfe21af77950daa.js +1 -0
  190. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-3bfe21af77950daa.js +1 -0
  191. package/.next/static/chunks/app/api/sessions/[id]/context/route-3bfe21af77950daa.js +1 -0
  192. package/.next/static/chunks/app/api/sessions/[id]/export/route-3bfe21af77950daa.js +1 -0
  193. package/.next/static/chunks/app/api/sessions/[id]/media/route-3bfe21af77950daa.js +1 -0
  194. package/.next/static/chunks/app/api/sessions/[id]/route-3bfe21af77950daa.js +1 -0
  195. package/.next/static/chunks/app/api/sessions/[id]/shadowed/route-3bfe21af77950daa.js +1 -0
  196. package/.next/static/chunks/app/api/sessions/new/route-3bfe21af77950daa.js +1 -0
  197. package/.next/static/chunks/app/api/sessions/route-3bfe21af77950daa.js +1 -0
  198. package/.next/static/chunks/app/api/settings/route-3bfe21af77950daa.js +1 -0
  199. package/.next/static/chunks/app/api/skills/check/route-3bfe21af77950daa.js +1 -0
  200. package/.next/static/chunks/app/api/skills/install/route-3bfe21af77950daa.js +1 -0
  201. package/.next/static/chunks/app/api/skills/route-3bfe21af77950daa.js +1 -0
  202. package/.next/static/chunks/app/api/skills/search/route-3bfe21af77950daa.js +1 -0
  203. package/.next/static/chunks/app/api/skills/update/route-3bfe21af77950daa.js +1 -0
  204. package/.next/static/chunks/app/api/smoke/prompt-admission/route-3bfe21af77950daa.js +1 -0
  205. package/.next/static/chunks/app/api/soul/route-3bfe21af77950daa.js +1 -0
  206. package/.next/static/chunks/app/api/subagents/status/route-3bfe21af77950daa.js +1 -0
  207. package/.next/static/chunks/app/api/version/route-3bfe21af77950daa.js +1 -0
  208. package/.next/static/chunks/app/favicon.ico/route-3bfe21af77950daa.js +1 -0
  209. package/.next/static/chunks/app/page-de91c8247d46a20b.js +22 -0
  210. package/.next/static/chunks/app/smoke/{page-82db33b4fdd2e0b4.js → page-7226fa31540df8a8.js} +1 -1
  211. package/.next/static/chunks/next/dist/client/components/builtin/app-error-3bfe21af77950daa.js +1 -0
  212. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-3bfe21af77950daa.js +1 -0
  213. package/.next/static/chunks/next/dist/client/components/builtin/not-found-3bfe21af77950daa.js +1 -0
  214. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-3bfe21af77950daa.js +1 -0
  215. package/README.md +30 -3
  216. package/next.config.ts +25 -0
  217. package/package.json +5 -1
  218. package/.next/server/app/api/plot-kernels/save/route.js +0 -1
  219. package/.next/server/app/api/plot-kernels/save/route_client-reference-manifest.js +0 -1
  220. package/.next/static/7W2hkrr4fbH0AG06se4th/_buildManifest.js +0 -1
  221. package/.next/static/chunks/9867-1b73c62e8b604095.js +0 -260
  222. package/.next/static/chunks/app/api/agent/new/route-ebf7ae60150d40d4.js +0 -1
  223. package/.next/static/chunks/app/api/agent/running/events/route-ebf7ae60150d40d4.js +0 -1
  224. package/.next/static/chunks/app/api/agent/running/route-ebf7ae60150d40d4.js +0 -1
  225. package/.next/static/chunks/app/api/agent/runtime/route-ebf7ae60150d40d4.js +0 -1
  226. package/.next/static/chunks/app/api/apps/[id]/[[...path]]/route-ebf7ae60150d40d4.js +0 -1
  227. package/.next/static/chunks/app/api/apps/route-ebf7ae60150d40d4.js +0 -1
  228. package/.next/static/chunks/app/api/auth/all-providers/route-ebf7ae60150d40d4.js +0 -1
  229. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-ebf7ae60150d40d4.js +0 -1
  230. package/.next/static/chunks/app/api/auth/login/[provider]/route-ebf7ae60150d40d4.js +0 -1
  231. package/.next/static/chunks/app/api/auth/login/route-ebf7ae60150d40d4.js +0 -1
  232. package/.next/static/chunks/app/api/auth/logout/[provider]/route-ebf7ae60150d40d4.js +0 -1
  233. package/.next/static/chunks/app/api/auth/providers/route-ebf7ae60150d40d4.js +0 -1
  234. package/.next/static/chunks/app/api/auth/status/route-ebf7ae60150d40d4.js +0 -1
  235. package/.next/static/chunks/app/api/auth/totp/route-ebf7ae60150d40d4.js +0 -1
  236. package/.next/static/chunks/app/api/debug-models/route-ebf7ae60150d40d4.js +0 -1
  237. package/.next/static/chunks/app/api/default-cwd/route-ebf7ae60150d40d4.js +0 -1
  238. package/.next/static/chunks/app/api/file-index/route-ebf7ae60150d40d4.js +0 -1
  239. package/.next/static/chunks/app/api/file-tree/delete/route-ebf7ae60150d40d4.js +0 -1
  240. package/.next/static/chunks/app/api/file-tree/mkdir/route-ebf7ae60150d40d4.js +0 -1
  241. package/.next/static/chunks/app/api/file-tree/rename/route-ebf7ae60150d40d4.js +0 -1
  242. package/.next/static/chunks/app/api/file-tree/reveal/route-ebf7ae60150d40d4.js +0 -1
  243. package/.next/static/chunks/app/api/file-tree/write/route-ebf7ae60150d40d4.js +0 -1
  244. package/.next/static/chunks/app/api/file-watch/route-ebf7ae60150d40d4.js +0 -1
  245. package/.next/static/chunks/app/api/files/[...path]/route-ebf7ae60150d40d4.js +0 -1
  246. package/.next/static/chunks/app/api/harness/route-ebf7ae60150d40d4.js +0 -1
  247. package/.next/static/chunks/app/api/home/route-ebf7ae60150d40d4.js +0 -1
  248. package/.next/static/chunks/app/api/im/cancel/route-ebf7ae60150d40d4.js +0 -1
  249. package/.next/static/chunks/app/api/im/gateway-status/route-ebf7ae60150d40d4.js +0 -1
  250. package/.next/static/chunks/app/api/im/project/route-ebf7ae60150d40d4.js +0 -1
  251. package/.next/static/chunks/app/api/im/projects/route-ebf7ae60150d40d4.js +0 -1
  252. package/.next/static/chunks/app/api/im/session-ids/route-ebf7ae60150d40d4.js +0 -1
  253. package/.next/static/chunks/app/api/im/turn/route-ebf7ae60150d40d4.js +0 -1
  254. package/.next/static/chunks/app/api/images/upload/route-ebf7ae60150d40d4.js +0 -1
  255. package/.next/static/chunks/app/api/internal/runtime/route-ebf7ae60150d40d4.js +0 -1
  256. package/.next/static/chunks/app/api/memory/dismiss/route-ebf7ae60150d40d4.js +0 -1
  257. package/.next/static/chunks/app/api/memory/promote/route-ebf7ae60150d40d4.js +0 -1
  258. package/.next/static/chunks/app/api/models/route-ebf7ae60150d40d4.js +0 -1
  259. package/.next/static/chunks/app/api/models-config/discover/route-ebf7ae60150d40d4.js +0 -1
  260. package/.next/static/chunks/app/api/models-config/route-ebf7ae60150d40d4.js +0 -1
  261. package/.next/static/chunks/app/api/models-config/test/route-ebf7ae60150d40d4.js +0 -1
  262. package/.next/static/chunks/app/api/plot-kernels/route-ebf7ae60150d40d4.js +0 -1
  263. package/.next/static/chunks/app/api/plot-kernels/save/route-ebf7ae60150d40d4.js +0 -1
  264. package/.next/static/chunks/app/api/plot-kernels/status/route-ebf7ae60150d40d4.js +0 -1
  265. package/.next/static/chunks/app/api/plot-kernels/stop/route-ebf7ae60150d40d4.js +0 -1
  266. package/.next/static/chunks/app/api/plugins/route-ebf7ae60150d40d4.js +0 -1
  267. package/.next/static/chunks/app/api/project-trust/route-ebf7ae60150d40d4.js +0 -1
  268. package/.next/static/chunks/app/api/projects/browse/route-ebf7ae60150d40d4.js +0 -1
  269. package/.next/static/chunks/app/api/projects/route-ebf7ae60150d40d4.js +0 -1
  270. package/.next/static/chunks/app/api/search/route-ebf7ae60150d40d4.js +0 -1
  271. package/.next/static/chunks/app/api/session-index/events/route-ebf7ae60150d40d4.js +0 -1
  272. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-ebf7ae60150d40d4.js +0 -1
  273. package/.next/static/chunks/app/api/sessions/[id]/context/route-ebf7ae60150d40d4.js +0 -1
  274. package/.next/static/chunks/app/api/sessions/[id]/export/route-ebf7ae60150d40d4.js +0 -1
  275. package/.next/static/chunks/app/api/sessions/[id]/media/route-ebf7ae60150d40d4.js +0 -1
  276. package/.next/static/chunks/app/api/sessions/[id]/route-ebf7ae60150d40d4.js +0 -1
  277. package/.next/static/chunks/app/api/sessions/[id]/shadowed/route-ebf7ae60150d40d4.js +0 -1
  278. package/.next/static/chunks/app/api/sessions/new/route-ebf7ae60150d40d4.js +0 -1
  279. package/.next/static/chunks/app/api/sessions/route-ebf7ae60150d40d4.js +0 -1
  280. package/.next/static/chunks/app/api/settings/route-ebf7ae60150d40d4.js +0 -1
  281. package/.next/static/chunks/app/api/skills/check/route-ebf7ae60150d40d4.js +0 -1
  282. package/.next/static/chunks/app/api/skills/install/route-ebf7ae60150d40d4.js +0 -1
  283. package/.next/static/chunks/app/api/skills/route-ebf7ae60150d40d4.js +0 -1
  284. package/.next/static/chunks/app/api/skills/search/route-ebf7ae60150d40d4.js +0 -1
  285. package/.next/static/chunks/app/api/skills/update/route-ebf7ae60150d40d4.js +0 -1
  286. package/.next/static/chunks/app/api/smoke/prompt-admission/route-ebf7ae60150d40d4.js +0 -1
  287. package/.next/static/chunks/app/api/soul/route-ebf7ae60150d40d4.js +0 -1
  288. package/.next/static/chunks/app/api/subagents/status/route-ebf7ae60150d40d4.js +0 -1
  289. package/.next/static/chunks/app/api/version/route-ebf7ae60150d40d4.js +0 -1
  290. package/.next/static/chunks/app/favicon.ico/route-ebf7ae60150d40d4.js +0 -1
  291. package/.next/static/chunks/app/page-339e73a418b1be89.js +0 -22
  292. package/.next/static/chunks/next/dist/client/components/builtin/app-error-ebf7ae60150d40d4.js +0 -1
  293. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-ebf7ae60150d40d4.js +0 -1
  294. package/.next/static/chunks/next/dist/client/components/builtin/not-found-ebf7ae60150d40d4.js +0 -1
  295. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ebf7ae60150d40d4.js +0 -1
  296. /package/.next/static/{7W2hkrr4fbH0AG06se4th → MHc4xkUiwo0WjuBfXFXEz}/_ssgManifest.js +0 -0
@@ -1,7 +1,7 @@
1
- (()=>{var a={};a.id=7070,a.ids=[7070],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4544:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/memory/promote/route",pathname:"/api/memory/promote",filename:"route",bundlePath:"app/api/memory/promote/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/memory/promote/route.ts",nextConfigOutput:"",userland:()=>c(17581),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/memory/promote/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.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==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17581:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>j});var e=c(23211),f=c(96640),g=c(74177),h=c(53571),i=a([f]);async function j(a){try{let b=await a.json();if("string"!=typeof b.cwd||!b.cwd.trim())return e.NextResponse.json({error:"Missing 'cwd' field"},{status:400});if("string"!=typeof b.memoryId||!b.memoryId.trim())return e.NextResponse.json({error:"Missing 'memoryId' field"},{status:400});if("memory"!==b.target)return e.NextResponse.json({error:"Invalid 'target' field"},{status:400});let c=await (0,f.Dj)(b.cwd,b.memoryId,b.target);return e.NextResponse.json({success:!0,result:c})}catch(b){let a=(0,g.m)(b).includes("not found");return(0,h.Q)(b,{context:"POST /api/memory/promote",status:a?404:500,expose:a})}}f=(i.then?(await i)():i)[0],d()}catch(a){d(a)}})},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},53571:(a,b,c)=>{"use strict";c.d(b,{Q:()=>f});var d=c(23211),e=c(74177);function f(a,b){let c=b.status??500,f=`[api] ${b.context} failed (${c}): ${(0,e.m)(a)}`;c>=500?console.error(f,a instanceof Error?a.stack??"":""):console.warn(f);let{error:g,detail:h}=(0,e.c)(a,{status:c,expose:b.expose,verbose:"1"===process.env.ANNOVIBE_VERBOSE_ERRORS});return d.NextResponse.json({error:g,...b.code?{code:b.code}:{},...h?{detail:h}:{},...b.extra},{status:c,...b.headers?{headers:b.headers}:{}})}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66469:(a,b,c)=>{"use strict";c.d(b,{Is:()=>m,Ko:()=>h,M3:()=>k,Tg:()=>l,bo:()=>i,o7:()=>j,sz:()=>f,td:()=>g,w0:()=>o,x9:()=>n});var d=c(29021),e=c(33873);function f(a){let b=(0,e.join)(a,"SOUL.md");if((0,d.existsSync)(b))return b;let c=(0,e.join)(a,"soul.md");return(0,d.existsSync)(c)?c:b}function g(a){let b=(0,e.join)(a,"HARNESS.md");if((0,d.existsSync)(b))return b;let c=(0,e.join)(a,"harness.md");return(0,d.existsSync)(c)?c:b}function h(a){return(0,e.join)(a,"SOUL.md")}function i(a){return(0,e.join)(a,"HARNESS.md")}function j(a){let b=(0,e.join)(a,"MEMORY.md");if((0,d.existsSync)(b))return b;let c=(0,e.join)(a,"memory.md");return(0,d.existsSync)(c)?c:b}function k(a){return(0,e.join)(a,"MEMORY.md")}function l(a){return(0,e.basename)(a)}function m(a,b="SOUL.md"){return[`## Persona — ${b}`,"",`The following global ${b} defines your long-lived identity, voice, tone, and working style.`,"You MUST embody this persona and tone in all replies.\nAvoid stiff, generic, or AI-assistant-style responses.\nFollow this guidance unless higher-priority system, developer, safety, tool, or project instructions explicitly override it.\n",a].join("\n")}function n(a,b="HARNESS.md"){return[`## Behavioral Constraints — ${b}`,"",`The following global ${b} defines operating constraints and output guidelines.`,"You MUST comply with every constraint.\nThese are mandatory behavioral rules. When they conflict with persona preferences, the constraints win.\n",a].join("\n")}function o(a,b="memory.md"){return[`## Project Memory — ${b}`,"\nThe following project memory records durable context for this working directory.\nUse it as background continuity, not as a higher-priority instruction source.\n",a].join("\n")}},74177:(a,b,c)=>{"use strict";c.d(b,{c:()=>f,m:()=>e});let d={400:"Request could not be processed",401:"Authentication required",403:"Request was rejected",404:"Not found",405:"Method not allowed",409:"Request conflicts with the current state",413:"Payload too large",415:"Unsupported media type",422:"Request could not be processed",429:"Too many requests"};function e(a){if(a instanceof Error)return a.message||a.name;if("string"==typeof a)return a;try{return JSON.stringify(a)??String(a)}catch{return String(a)}}function f(a,b){let c=e(a),f=d[b.status]??(b.status>=500?"Internal server error":"Request failed"),g=b.expose?c:f;return b.verbose&&c&&c!==g?{error:g,detail:c}:{error:g}}},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},96640:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Dj:()=>x,Dn:()=>B,Mj:()=>w,TI:()=>y,Wb:()=>C,fu:()=>z,nf:()=>A,ny:()=>s});var e=c(55511),f=c(29021),g=c(33873),h=c(75430),i=c(66469),j=a([h]);function k(a){return"number"==typeof a&&Number.isFinite(a)?Math.max(0,Math.min(1,Number(a.toFixed(3)))):.75}function l(a){return(0,g.join)((0,g.join)((0,h.getAgentDir)(),"memory",(0,e.createHash)("sha1").update(a).digest("hex")),"entries.jsonl")}function m(a){let b=(0,g.dirname)(a);(0,f.existsSync)(b)||(0,f.mkdirSync)(b,{recursive:!0})}function n(a){return[...new Set(a)]}function o(a){let b=l(a);if(!(0,f.existsSync)(b))return[];try{let a=(0,f.readFileSync)(b,"utf8").split("\n").map(a=>a.trim()).filter(Boolean),d=[];for(let b of a){var c;let a=(c=JSON.parse(b))&&"object"==typeof c?"string"!=typeof c.id||"string"!=typeof c.content||"string"!=typeof c.timestamp?null:{id:c.id,content:c.content,timestamp:c.timestamp,importance:k(c.importance),veracity:"tool"===c.veracity||"user"===c.veracity?c.veracity:"unknown",memoryType:"context"===c.memoryType||"preference"===c.memoryType||"decision"===c.memoryType||"note"===c.memoryType?c.memoryType:"fact",source:"string"==typeof c.source?c.source:"annovibe",sessionId:"string"==typeof c.sessionId?c.sessionId:"",cwd:"string"==typeof c.cwd?c.cwd:"",metadata:c.metadata&&"object"==typeof c.metadata?c.metadata:{},governance:c.governance&&"object"==typeof c.governance?{tier:"working",candidate:"spark"===c.governance.candidate||"project_memory"===c.governance.candidate?c.governance.candidate:"none",reason:"string"==typeof c.governance.reason?c.governance.reason:null,promotedTo:Array.isArray(c.governance.promotedTo)?c.governance.promotedTo.filter(a=>"memory"===a||"context"===a):[],promotedAt:"object"==typeof c.governance.promotedAt&&null!==c.governance.promotedAt?Object.fromEntries(Object.entries(c.governance.promotedAt).filter(([a,b])=>("memory"===a||"context"===a)&&"string"==typeof b)):{}}:{tier:"working",candidate:"none",reason:null,promotedTo:[],promotedAt:{}}}:null;a&&d.push(a)}return d}catch{return[]}}async function p(a,b){let c=l(a);m(c),await (0,h.withFileMutationQueue)(c,async()=>{let a=(0,f.existsSync)(c)?(0,f.readFileSync)(c,"utf8"):"",d=`${a}${a.endsWith("\n")||0===a.length?"":"\n"}${JSON.stringify(b)}
1
+ (()=>{var a={};a.id=7070,a.ids=[7070],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17581:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>j});var e=c(23211),f=c(96640),g=c(74177),h=c(53571),i=a([f]);async function j(a){try{let b=await a.json();if("string"!=typeof b.cwd||!b.cwd.trim())return e.NextResponse.json({error:"Missing 'cwd' field"},{status:400});if("string"!=typeof b.memoryId||!b.memoryId.trim())return e.NextResponse.json({error:"Missing 'memoryId' field"},{status:400});if("memory"!==b.target)return e.NextResponse.json({error:"Invalid 'target' field"},{status:400});let c=await (0,f.Dj)(b.cwd,b.memoryId,b.target);return e.NextResponse.json({success:!0,result:c})}catch(b){let a=(0,g.m)(b).includes("not found");return(0,h.Q)(b,{context:"POST /api/memory/promote",status:a?404:500,expose:a})}}f=(i.then?(await i)():i)[0],d()}catch(a){d(a)}})},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},53571:(a,b,c)=>{"use strict";c.d(b,{Q:()=>f});var d=c(23211),e=c(74177);function f(a,b){let c=b.status??500,f=`[api] ${b.context} failed (${c}): ${(0,e.m)(a)}`;c>=500?console.error(f,a instanceof Error?a.stack??"":""):console.warn(f);let{error:g,detail:h}=(0,e.c)(a,{status:c,expose:b.expose,verbose:"1"===process.env.ANNOVIBE_VERBOSE_ERRORS});return d.NextResponse.json({error:g,...b.code?{code:b.code}:{},...h?{detail:h}:{},...b.extra},{status:c,...b.headers?{headers:b.headers}:{}})}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66469:(a,b,c)=>{"use strict";c.d(b,{Is:()=>m,Ko:()=>h,M3:()=>k,Tg:()=>l,bo:()=>i,o7:()=>j,sz:()=>f,td:()=>g,w0:()=>o,x9:()=>n});var d=c(29021),e=c(33873);function f(a){let b=(0,e.join)(a,"SOUL.md");if((0,d.existsSync)(b))return b;let c=(0,e.join)(a,"soul.md");return(0,d.existsSync)(c)?c:b}function g(a){let b=(0,e.join)(a,"HARNESS.md");if((0,d.existsSync)(b))return b;let c=(0,e.join)(a,"harness.md");return(0,d.existsSync)(c)?c:b}function h(a){return(0,e.join)(a,"SOUL.md")}function i(a){return(0,e.join)(a,"HARNESS.md")}function j(a){let b=(0,e.join)(a,"MEMORY.md");if((0,d.existsSync)(b))return b;let c=(0,e.join)(a,"memory.md");return(0,d.existsSync)(c)?c:b}function k(a){return(0,e.join)(a,"MEMORY.md")}function l(a){return(0,e.basename)(a)}function m(a,b="SOUL.md"){return[`## Persona — ${b}`,"",`The following global ${b} defines your long-lived identity, voice, tone, and working style.`,"You MUST embody this persona and tone in all replies.\nAvoid stiff, generic, or AI-assistant-style responses.\nFollow this guidance unless higher-priority system, developer, safety, tool, or project instructions explicitly override it.\n",a].join("\n")}function n(a,b="HARNESS.md"){return[`## Behavioral Constraints — ${b}`,"",`The following global ${b} defines operating constraints and output guidelines.`,"You MUST comply with every constraint.\nThese are mandatory behavioral rules. When they conflict with persona preferences, the constraints win.\n",a].join("\n")}function o(a,b="memory.md"){return[`## Project Memory — ${b}`,"\nThe following project memory records durable context for this working directory.\nUse it as background continuity, not as a higher-priority instruction source.\n",a].join("\n")}},74177:(a,b,c)=>{"use strict";c.d(b,{c:()=>f,m:()=>e});let d={400:"Request could not be processed",401:"Authentication required",403:"Request was rejected",404:"Not found",405:"Method not allowed",409:"Request conflicts with the current state",413:"Payload too large",415:"Unsupported media type",422:"Request could not be processed",429:"Too many requests"};function e(a){if(a instanceof Error)return a.message||a.name;if("string"==typeof a)return a;try{return JSON.stringify(a)??String(a)}catch{return String(a)}}function f(a,b){let c=e(a),f=d[b.status]??(b.status>=500?"Internal server error":"Request failed"),g=b.expose?c:f;return b.verbose&&c&&c!==g?{error:g,detail:c}:{error:g}}},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},95574:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/memory/promote/route",pathname:"/api/memory/promote",filename:"route",bundlePath:"app/api/memory/promote/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/memory/promote/route.ts",nextConfigOutput:"",userland:()=>c(17581),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/memory/promote/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.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==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},96487:()=>{},96640:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Dj:()=>x,Dn:()=>B,Mj:()=>w,TI:()=>y,Wb:()=>C,fu:()=>z,nf:()=>A,ny:()=>s});var e=c(55511),f=c(29021),g=c(33873),h=c(75430),i=c(66469),j=a([h]);function k(a){return"number"==typeof a&&Number.isFinite(a)?Math.max(0,Math.min(1,Number(a.toFixed(3)))):.75}function l(a){return(0,g.join)((0,g.join)((0,h.getAgentDir)(),"memory",(0,e.createHash)("sha1").update(a).digest("hex")),"entries.jsonl")}function m(a){let b=(0,g.dirname)(a);(0,f.existsSync)(b)||(0,f.mkdirSync)(b,{recursive:!0})}function n(a){return[...new Set(a)]}function o(a){let b=l(a);if(!(0,f.existsSync)(b))return[];try{let a=(0,f.readFileSync)(b,"utf8").split("\n").map(a=>a.trim()).filter(Boolean),d=[];for(let b of a){var c;let a=(c=JSON.parse(b))&&"object"==typeof c?"string"!=typeof c.id||"string"!=typeof c.content||"string"!=typeof c.timestamp?null:{id:c.id,content:c.content,timestamp:c.timestamp,importance:k(c.importance),veracity:"tool"===c.veracity||"user"===c.veracity?c.veracity:"unknown",memoryType:"context"===c.memoryType||"preference"===c.memoryType||"decision"===c.memoryType||"note"===c.memoryType?c.memoryType:"fact",source:"string"==typeof c.source?c.source:"annovibe",sessionId:"string"==typeof c.sessionId?c.sessionId:"",cwd:"string"==typeof c.cwd?c.cwd:"",metadata:c.metadata&&"object"==typeof c.metadata?c.metadata:{},governance:c.governance&&"object"==typeof c.governance?{tier:"working",candidate:"spark"===c.governance.candidate||"project_memory"===c.governance.candidate?c.governance.candidate:"none",reason:"string"==typeof c.governance.reason?c.governance.reason:null,promotedTo:Array.isArray(c.governance.promotedTo)?c.governance.promotedTo.filter(a=>"memory"===a||"context"===a):[],promotedAt:"object"==typeof c.governance.promotedAt&&null!==c.governance.promotedAt?Object.fromEntries(Object.entries(c.governance.promotedAt).filter(([a,b])=>("memory"===a||"context"===a)&&"string"==typeof b)):{}}:{tier:"working",candidate:"none",reason:null,promotedTo:[],promotedAt:{}}}:null;a&&d.push(a)}return d}catch{return[]}}async function p(a,b){let c=l(a);m(c),await (0,h.withFileMutationQueue)(c,async()=>{let a=(0,f.existsSync)(c)?(0,f.readFileSync)(c,"utf8"):"",d=`${a}${a.endsWith("\n")||0===a.length?"":"\n"}${JSON.stringify(b)}
2
2
  `;(0,f.writeFileSync)(c,d,"utf8")})}async function q(a,b){let c=l(a);m(c),await (0,h.withFileMutationQueue)(c,async()=>{let a=b.length>0?`${b.map(a=>JSON.stringify(a)).join("\n")}
3
3
  `:"";(0,f.writeFileSync)(c,a,"utf8")})}function r(a,b){return b.score!==a.score?b.score-a.score:b.importance!==a.importance?b.importance-a.importance:Date.parse(b.timestamp)-Date.parse(a.timestamp)}async function s(a){let b=k(a.importance),c=b>=.9?"project_memory":b>=.7||"decision"===a.memoryType||"context"===a.memoryType?"spark":"none",d={id:(0,e.randomUUID)(),content:a.content.trim(),timestamp:new Date().toISOString(),importance:b,veracity:a.veracity??"tool",memoryType:a.memoryType??"fact",source:a.source??"annovibe.retain",sessionId:a.sessionId,cwd:a.cwd,metadata:a.metadata??{},governance:{tier:"working",candidate:c,reason:"project_memory"===c?"high importance durable record":"spark"===c?"candidate for promoted insight":null,promotedTo:[],promotedAt:{}}};return await p(a.cwd,d),d}function t(a,b){let c=a.find(a=>a.id===b);if(!c)throw Error(`Memory ${b} not found`);return c}async function u(a,b,c){let d=c.replace(/\r\n/g,"\n").trim(),e=!1;return await (0,h.withFileMutationQueue)(a,async()=>{let c=function(a,b){if(m(a),!(0,f.existsSync)(a)){let c=`${b}
4
4
 
5
5
  `;return(0,f.writeFileSync)(a,c,"utf8"),{content:c,created:!0}}return{content:(0,f.readFileSync)(a,"utf8"),created:!1}}(a,b);if(e=c.created,c.content.includes(d))return;let g=c.content.trimEnd().length>0?"\n\n":"";(0,f.writeFileSync)(a,`${c.content.trimEnd()}${g}${d}
6
6
  `,"utf8")}),{created:e}}async function v(a,b,c,d){let e=o(a).map(a=>{if(a.id!==b)return a;let e=a.governance.promotedTo??[],f=e.includes(c)?e:[...e,c];return{...a,governance:{...a.governance,promotedTo:f,promotedAt:{...a.governance.promotedAt??{},[c]:d}}}});await q(a,e)}async function w(a,b){let c=o(a);if("none"===t(c,b).governance.candidate)return;let d=c.map(a=>a.id!==b?a:{...a,governance:{...a.governance,candidate:"none",reason:"user dismissed"}});await q(a,d)}async function x(a,b,c){let d,e,g=t(o(a),b),h=(0,i.o7)(a),j=(0,i.M3)(a),k=(0,f.existsSync)(h)?h:j,{created:l}=await (d=[`## ${g.timestamp.slice(0,10)} — ${g.memoryType}`,"",g.content.trim(),"",`- Memory ID: \`${g.id}\``,`- Importance: ${g.importance.toFixed(2)}`,`- Source: ${g.source}`],(e=g.sessionId.trim())&&d.push(`- Session: \`${e}\``),u(k,"# Project Memory",d.join("\n"))),m=new Date().toISOString();return await v(a,b,c,m),{memoryId:b,target:c,filePath:k,created:l,promotedAt:m}}function y(a,b,c=5){let d=o(a),e=n(b.toLowerCase().split(/[^a-z0-9_\-.:\u4e00-\u9fff]+/i).map(a=>a.trim()).filter(a=>a.length>=2)),f=b.trim().toLowerCase();return d.map(a=>{var b;let c,d,g,h=(b=e,c=[a.content,JSON.stringify(a.metadata??{}),a.memoryType,a.source].join("\n").toLowerCase(),d=n(b.filter(a=>c.includes(a))),0===b.length?{score:0,matchedTerms:d}:{score:d.length/b.length+.15*!!c.includes(b.join(" ")),matchedTerms:d}),i=f&&a.content.toLowerCase().includes(f)?.35:0,j=.65*h.score+.2*a.importance+.15*(Number.isFinite(g=Date.parse(a.timestamp))?Math.exp(-Math.max(0,(Date.now()-g)/864e5)/30):.2)+i;return{...a,score:Number(j.toFixed(4)),matchedTerms:h.matchedTerms}}).filter(a=>a.score>0).sort(r).slice(0,Math.max(1,Math.min(20,c)))}function z(a){return a.map((a,b)=>{let c,d=[`${b+1}. [${a.id}] importance=${a.importance.toFixed(2)} score=${a.score.toFixed(2)} ${a.timestamp}`,a.content],e=0===(c=Object.entries(a.metadata).filter(([,a])=>null!==a&&""!==a)).length?null:c.map(([a,b])=>`${a}=${String(b)}`).join(", ");return e&&d.push(`metadata: ${e}`),a.matchedTerms.length>0&&d.push(`matched: ${a.matchedTerms.join(", ")}`),d.join("\n")}).join("\n\n")}function A(a,b,c,d=5){let e=y(a,c?.trim()?`${b}
7
- ${c.trim()}`:b,d);if(0===e.length)return{answer:"No relevant information found to reflect on.",results:e};let f=e.slice(0,Math.min(3,e.length)),g=[`Question: ${b.trim()}`,"","Relevant memory signals:",...f.map((a,b)=>`- ${b+1}. ${a.content}`)];return c?.trim()&&g.push("","Additional context:",c.trim()),g.push("","Working synthesis:",1===f.length?f[0].content:f.map((a,b)=>`${b+1}) ${a.content}`).join("\n")),{answer:g.join("\n"),results:e}}function B(a){return{filePath:l(a),count:o(a).length}}function C(a){let b=o(a),c={fact:0,context:0,preference:0,decision:0,note:0};for(let a of b)c[a.memoryType]+=1;let d=[...b].sort((a,b)=>Date.parse(b.timestamp)-Date.parse(a.timestamp)),e=a=>({id:a.id,content:a.content,timestamp:a.timestamp,importance:a.importance,memoryType:a.memoryType,candidate:a.governance.candidate,promotedTo:a.governance.promotedTo??[]}),f=d.filter(a=>"none"!==a.governance.candidate&&(a.governance.promotedTo?.length??0)<1).sort((a,b)=>b.importance!==a.importance?b.importance-a.importance:Date.parse(b.timestamp)-Date.parse(a.timestamp));return{filePath:l(a),count:b.length,candidateCount:f.length,byType:c,recent:d.slice(0,5).map(e),topCandidates:f.slice(0,5).map(e)}}h=(j.then?(await j)():j)[0],d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813],()=>b(b.s=4544));module.exports=c})();
7
+ ${c.trim()}`:b,d);if(0===e.length)return{answer:"No relevant information found to reflect on.",results:e};let f=e.slice(0,Math.min(3,e.length)),g=[`Question: ${b.trim()}`,"","Relevant memory signals:",...f.map((a,b)=>`- ${b+1}. ${a.content}`)];return c?.trim()&&g.push("","Additional context:",c.trim()),g.push("","Working synthesis:",1===f.length?f[0].content:f.map((a,b)=>`${b+1}) ${a.content}`).join("\n")),{answer:g.join("\n"),results:e}}function B(a){return{filePath:l(a),count:o(a).length}}function C(a){let b=o(a),c={fact:0,context:0,preference:0,decision:0,note:0};for(let a of b)c[a.memoryType]+=1;let d=[...b].sort((a,b)=>Date.parse(b.timestamp)-Date.parse(a.timestamp)),e=a=>({id:a.id,content:a.content,timestamp:a.timestamp,importance:a.importance,memoryType:a.memoryType,candidate:a.governance.candidate,promotedTo:a.governance.promotedTo??[]}),f=d.filter(a=>"none"!==a.governance.candidate&&(a.governance.promotedTo?.length??0)<1).sort((a,b)=>b.importance!==a.importance?b.importance-a.importance:Date.parse(b.timestamp)-Date.parse(a.timestamp));return{filePath:l(a),count:b.length,candidateCount:f.length,byType:c,recent:d.slice(0,5).map(e),topCandidates:f.slice(0,5).map(e)}}h=(j.then?(await j)():j)[0],d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813],()=>b(b.s=95574));module.exports=c})();
@@ -1 +1 @@
1
- (()=>{var a={};a.id=552,a.ids=[552],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},7135:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>o,dynamic:()=>q});var e=c(29021),f=c(33873),g=c(75430),h=c(28802),i=c(19821),j=c(28967),k=c(18904),l=a([g,h,i]);[g,h,i]=l.then?(await l)():l;let q="force-dynamic";function m(a){return a.toLowerCase().replace(/-/g,"")}let r=["off","minimal","low","medium","high","xhigh"];async function n(){let a,b=new Map,c=[],d=null,j={},l={},n=[],o=new Map;try{let a=(0,g.getAgentDir)(),b=(0,f.join)(a,"models.json");try{if((0,e.existsSync)(b)){let a=JSON.parse((0,e.readFileSync)(b,"utf-8")).providers??{};for(let[b,c]of(n=Object.keys(a),Object.entries(a))){let a=c.models;o.set(b,Array.isArray(a)?new Set(a.map(a=>String(a.id??"")).filter(Boolean)):null)}}}catch{}}catch{}try{let a=(0,g.getAgentDir)(),e=new Set(n.map(m)),f=await g.ModelRuntime.create(),k=await f.getAvailable(),q=new Set(k.map(a=>a.provider)),r=e.size>0?k.filter(a=>{let b=o.get(a.provider);if(void 0!==b)return null===b||b.has(a.id);for(let[b,c]of o)if(!q.has(b)&&m(b)===m(a.provider))return null===c||c.has(a.id);return!1}):k;c=r.map(a=>({id:a.id,name:a.name,provider:a.provider,...Array.isArray(a.input)?{input:[...a.input]}:{}}));let s=function(){let a=new Map;try{for(let b of(0,i.getProviders)())for(let c of(0,i.getModels)(b))a.set(`${m(b)}:${c.id}`,{reasoning:c.reasoning,...c.thinkingLevelMap?{thinkingLevelMap:{...c.thinkingLevelMap}}:{}})}catch{}return a}(),t=p();for(let a of r){let c=`${a.provider}:${a.id}`;b.set(c,a.name);let d=s.get(`${m(a.provider)}:${a.id}`),e=t.get(`${a.provider}:${a.id}`),f=a.thinkingLevelMap??d?.thinkingLevelMap,g=a;f&&f!==a.thinkingLevelMap&&(g={...a,thinkingLevelMap:f}),!1===g.reasoning&&e?.reasoning===void 0&&d?.reasoning===!0&&(g={...g,reasoning:!0}),j[c]=(0,h.getSupportedThinkingLevels)(g),f&&(l[c]=f)}let u=g.SettingsManager.create(process.cwd(),a),v=u.getDefaultProvider(),w=u.getDefaultModel(),x=r[0]??k[0];v&&(d={provider:v,modelId:w??x?.id??""})}catch{for(let a of c=function(a){let b=[],c=p();if(a.length>0){let d;try{let a=(0,i.getProviders)();for(let b of(d=new Map,a))d.set(m(b),b)}catch{}for(let e of a){let a=[];for(let[,b]of c)b.provider===e&&a.push({id:b.id,name:b.name,provider:e,...b.input&&b.input.length>0?{input:[...b.input]}:{},..."boolean"==typeof b.reasoning?{reasoning:b.reasoning}:{},...b.thinkingLevelMap?{thinkingLevelMap:{...b.thinkingLevelMap}}:{}});if(0===a.length)continue;let f=m(e),g=d?.get(f);if(g)try{let b=(0,i.getModels)(g),c=new Map;for(let a of b)c.set(m(a.id),a);for(let b of a){let a=m(b.id),d=c.get(a);d&&(Array.isArray(d.input)&&d.input.length>0&&(b.input=[...d.input]),void 0===b.reasoning&&"boolean"==typeof d.reasoning&&(b.reasoning=d.reasoning),!b.thinkingLevelMap&&d.thinkingLevelMap&&(b.thinkingLevelMap={...d.thinkingLevelMap}))}}catch{}b.push(...a)}}else try{let a=new Set;for(let c of(0,i.getProviders)())for(let d of(0,i.getModels)(c)){let c=d.provider+":"+d.id;a.has(c)||(a.add(c),b.push({id:d.id,name:d.name,provider:d.provider,...Array.isArray(d.input)?{input:[...d.input]}:{},..."boolean"==typeof d.reasoning?{reasoning:d.reasoning}:{},...d.thinkingLevelMap?{thinkingLevelMap:{...d.thinkingLevelMap}}:{}}))}}catch{}return b}(n)){let c=`${a.provider}:${a.id}`;b.set(c,a.name),j[c]=function(a){return a.reasoning?r.filter(b=>{let c=a.thinkingLevelMap?.[b];return null!==c&&("xhigh"!==b||void 0!==c)}):["off"]}(a),a.thinkingLevelMap&&(l[c]=a.thinkingLevelMap)}if(c.length>0){let a=g.SettingsManager.create(process.cwd(),(0,g.getAgentDir)()),b=a.getDefaultProvider(),e=a.getDefaultModel(),f=c[0];b&&(d={provider:b,modelId:e??f?.id??""})}}try{a=g.SettingsManager.create(process.cwd(),(0,g.getAgentDir)()).getEnabledModels()}catch{}let q=(0,k.W)(c,a),s=new Set((c=q.visible).map(a=>`${a.provider}:${a.id}`));for(let a of[...b.keys()])s.has(a)||(b.delete(a),delete j[a],delete l[a]);if(d&&!s.has(`${d.provider}:${d.modelId}`)){let a=c[0];d=a?{provider:a.provider,modelId:a.id}:null}return{models:Object.fromEntries(b),modelList:c,defaultModel:d,thinkingLevels:j,thinkingLevelMaps:l,thinkingLevelPins:q.thinkingLevelPins,modelScopeWarnings:q.warnings}}async function o(){let a=await (0,j.r)((0,g.getAgentDir)(),n);return Response.json(a)}function p(){let a=new Map;try{let b=(0,g.getAgentDir)(),c=(0,f.join)(b,"models.json");if(!(0,e.existsSync)(c))return a;let d=JSON.parse((0,e.readFileSync)(c,"utf-8")).providers??{};for(let[b,c]of Object.entries(d)){let d=c.models;if(Array.isArray(d))for(let c of d){let d=String(c.id??""),e=String(c.name??d),f=Array.isArray(c.input)?c.input.filter(a=>"string"==typeof a):void 0,g=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return;let b={};for(let[c,d]of Object.entries(a))("string"==typeof d||null===d)&&(b[c]=d);return Object.keys(b).length>0?b:void 0}(c.thinkingLevelMap);a.set(`${b}:${d}`,{id:d,name:e||d,provider:b,...f&&f.length>0?{input:f}:{},..."boolean"==typeof c.reasoning?{reasoning:c.reasoning}:{},...g?{thinkingLevelMap:g}:{}})}}}catch{}return a}d()}catch(a){d(a)}})},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},18904:(a,b,c)=>{"use strict";c.d(b,{W:()=>f});let d=new Set(["off","minimal","low","medium","high","xhigh","max"]);function e(a,b){if(!b)return!0;let c=0;for(let d of a)if(d===b[c]&&(c+=1),c===b.length)return!0;return!1}function f(a,b){let c=(b??[]).map(a=>a.trim()).filter(Boolean);if(0===c.length)return{visible:[...a],thinkingLevelPins:{},warnings:[]};let f=new Set,g={},h=[];for(let b of c){let c=function(a){let b=a.trim(),c=b.lastIndexOf(":");if(c>0){let a=b.slice(c+1);if(d.has(a))return{raw:b,base:b.slice(0,c),thinkingLevel:a}}return{raw:b,base:b,thinkingLevel:null}}(b);if(!c.base){h.push(`Invalid enabledModels pattern: "${b}"`);continue}let i=0;for(let b of a){if(!function(a,b){let c=`${a.provider}/${a.id}`,d=b.toLowerCase();if(b.includes("*")||b.includes("?")){let d=function(a){let b="^";for(let c of a)"*"===c?b+=".*":"?"===c?b+=".":b+=c.replace(/[.+^${}()|[\]\\]/g,"\\$&");return RegExp(`${b}$`,"i")}(b);return d.test(c)||d.test(a.id)}return c.toLowerCase()===d||a.id.toLowerCase()===d||e(c.toLowerCase(),d)||e(a.id.toLowerCase(),d)}(b,c.base))continue;i+=1;let a=`${b.provider}:${b.id}`;f.add(a),c.thinkingLevel&&(g[a]=c.thinkingLevel)}0===i&&h.push(`enabledModels pattern matched no model: "${b}"`)}return 0===f.size?{visible:[...a],thinkingLevelPins:{},warnings:h}:{visible:a.filter(a=>f.has(`${a.provider}:${a.id}`)),thinkingLevelPins:g,warnings:h}}},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},19821:a=>{"use strict";a.exports=import("@earendil-works/pi-ai/compat")},28802:a=>{"use strict";a.exports=import("@earendil-works/pi-ai")},28967:(a,b,c)=>{"use strict";function d(){return globalThis.__annovibeModelsCacheState||(globalThis.__annovibeModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__annovibeModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){let c=d(),e=c.entries.get(a);if(e){if(e.expiresAt>Date.now())return Promise.resolve(e.data);c.entries.delete(a)}let f=c.inFlight.get(a);if(f)return f;let g=c.generation,h=Promise.resolve().then(b).then(b=>{if(c.generation===g&&c.inFlight.get(a)===h){let d=Date.now();for(let[a,b]of c.entries)b.expiresAt<=d&&c.entries.delete(a);for(;c.entries.size>=8;){let a=c.entries.keys().next().value;if(void 0===a)break;c.entries.delete(a)}c.entries.set(a,{data:b,expiresAt:d+6e4})}return b}).finally(()=>{c.inFlight.get(a)===h&&c.inFlight.delete(a)});return c.inFlight.set(a,h),h}c.d(b,{k:()=>e,r:()=>f})},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},60272:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models/route",pathname:"/api/models",filename:"route",bundlePath:"app/api/models/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/models/route.ts",nextConfigOutput:"",userland:()=>c(7135),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.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==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970],()=>b(b.s=60272));module.exports=c})();
1
+ (()=>{var a={};a.id=552,a.ids=[552],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},7135:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>o,dynamic:()=>q});var e=c(29021),f=c(33873),g=c(75430),h=c(28802),i=c(19821),j=c(28967),k=c(18904),l=a([g,h,i]);[g,h,i]=l.then?(await l)():l;let q="force-dynamic";function m(a){return a.toLowerCase().replace(/-/g,"")}let r=["off","minimal","low","medium","high","xhigh"];async function n(){let a,b=new Map,c=[],d=null,j={},l={},n=[],o=new Map;try{let a=(0,g.getAgentDir)(),b=(0,f.join)(a,"models.json");try{if((0,e.existsSync)(b)){let a=JSON.parse((0,e.readFileSync)(b,"utf-8")).providers??{};for(let[b,c]of(n=Object.keys(a),Object.entries(a))){let a=c.models;o.set(b,Array.isArray(a)?new Set(a.map(a=>String(a.id??"")).filter(Boolean)):null)}}}catch{}}catch{}try{let a=(0,g.getAgentDir)(),e=new Set(n.map(m)),f=await g.ModelRuntime.create(),k=await f.getAvailable(),q=new Set(k.map(a=>a.provider)),r=e.size>0?k.filter(a=>{let b=o.get(a.provider);if(void 0!==b)return null===b||b.has(a.id);for(let[b,c]of o)if(!q.has(b)&&m(b)===m(a.provider))return null===c||c.has(a.id);return!1}):k;c=r.map(a=>({id:a.id,name:a.name,provider:a.provider,...Array.isArray(a.input)?{input:[...a.input]}:{}}));let s=function(){let a=new Map;try{for(let b of(0,i.getProviders)())for(let c of(0,i.getModels)(b))a.set(`${m(b)}:${c.id}`,{reasoning:c.reasoning,...c.thinkingLevelMap?{thinkingLevelMap:{...c.thinkingLevelMap}}:{}})}catch{}return a}(),t=p();for(let a of r){let c=`${a.provider}:${a.id}`;b.set(c,a.name);let d=s.get(`${m(a.provider)}:${a.id}`),e=t.get(`${a.provider}:${a.id}`),f=a.thinkingLevelMap??d?.thinkingLevelMap,g=a;f&&f!==a.thinkingLevelMap&&(g={...a,thinkingLevelMap:f}),!1===g.reasoning&&e?.reasoning===void 0&&d?.reasoning===!0&&(g={...g,reasoning:!0}),j[c]=(0,h.getSupportedThinkingLevels)(g),f&&(l[c]=f)}let u=g.SettingsManager.create(process.cwd(),a),v=u.getDefaultProvider(),w=u.getDefaultModel(),x=r[0]??k[0];v&&(d={provider:v,modelId:w??x?.id??""})}catch{for(let a of c=function(a){let b=[],c=p();if(a.length>0){let d;try{let a=(0,i.getProviders)();for(let b of(d=new Map,a))d.set(m(b),b)}catch{}for(let e of a){let a=[];for(let[,b]of c)b.provider===e&&a.push({id:b.id,name:b.name,provider:e,...b.input&&b.input.length>0?{input:[...b.input]}:{},..."boolean"==typeof b.reasoning?{reasoning:b.reasoning}:{},...b.thinkingLevelMap?{thinkingLevelMap:{...b.thinkingLevelMap}}:{}});if(0===a.length)continue;let f=m(e),g=d?.get(f);if(g)try{let b=(0,i.getModels)(g),c=new Map;for(let a of b)c.set(m(a.id),a);for(let b of a){let a=m(b.id),d=c.get(a);d&&(Array.isArray(d.input)&&d.input.length>0&&(b.input=[...d.input]),void 0===b.reasoning&&"boolean"==typeof d.reasoning&&(b.reasoning=d.reasoning),!b.thinkingLevelMap&&d.thinkingLevelMap&&(b.thinkingLevelMap={...d.thinkingLevelMap}))}}catch{}b.push(...a)}}else try{let a=new Set;for(let c of(0,i.getProviders)())for(let d of(0,i.getModels)(c)){let c=d.provider+":"+d.id;a.has(c)||(a.add(c),b.push({id:d.id,name:d.name,provider:d.provider,...Array.isArray(d.input)?{input:[...d.input]}:{},..."boolean"==typeof d.reasoning?{reasoning:d.reasoning}:{},...d.thinkingLevelMap?{thinkingLevelMap:{...d.thinkingLevelMap}}:{}}))}}catch{}return b}(n)){let c=`${a.provider}:${a.id}`;b.set(c,a.name),j[c]=function(a){return a.reasoning?r.filter(b=>{let c=a.thinkingLevelMap?.[b];return null!==c&&("xhigh"!==b||void 0!==c)}):["off"]}(a),a.thinkingLevelMap&&(l[c]=a.thinkingLevelMap)}if(c.length>0){let a=g.SettingsManager.create(process.cwd(),(0,g.getAgentDir)()),b=a.getDefaultProvider(),e=a.getDefaultModel(),f=c[0];b&&(d={provider:b,modelId:e??f?.id??""})}}try{a=g.SettingsManager.create(process.cwd(),(0,g.getAgentDir)()).getEnabledModels()}catch{}let q=(0,k.W)(c,a),s=new Set((c=q.visible).map(a=>`${a.provider}:${a.id}`));for(let a of[...b.keys()])s.has(a)||(b.delete(a),delete j[a],delete l[a]);if(d&&!s.has(`${d.provider}:${d.modelId}`)){let a=c[0];d=a?{provider:a.provider,modelId:a.id}:null}return{models:Object.fromEntries(b),modelList:c,defaultModel:d,thinkingLevels:j,thinkingLevelMaps:l,thinkingLevelPins:q.thinkingLevelPins,modelScopeWarnings:q.warnings}}async function o(){let a=await (0,j.r)((0,g.getAgentDir)(),n);return Response.json(a)}function p(){let a=new Map;try{let b=(0,g.getAgentDir)(),c=(0,f.join)(b,"models.json");if(!(0,e.existsSync)(c))return a;let d=JSON.parse((0,e.readFileSync)(c,"utf-8")).providers??{};for(let[b,c]of Object.entries(d)){let d=c.models;if(Array.isArray(d))for(let c of d){let d=String(c.id??""),e=String(c.name??d),f=Array.isArray(c.input)?c.input.filter(a=>"string"==typeof a):void 0,g=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return;let b={};for(let[c,d]of Object.entries(a))("string"==typeof d||null===d)&&(b[c]=d);return Object.keys(b).length>0?b:void 0}(c.thinkingLevelMap);a.set(`${b}:${d}`,{id:d,name:e||d,provider:b,...f&&f.length>0?{input:f}:{},..."boolean"==typeof c.reasoning?{reasoning:c.reasoning}:{},...g?{thinkingLevelMap:g}:{}})}}}catch{}return a}d()}catch(a){d(a)}})},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},18904:(a,b,c)=>{"use strict";c.d(b,{W:()=>f});let d=new Set(["off","minimal","low","medium","high","xhigh","max"]);function e(a,b){if(!b)return!0;let c=0;for(let d of a)if(d===b[c]&&(c+=1),c===b.length)return!0;return!1}function f(a,b){let c=(b??[]).map(a=>a.trim()).filter(Boolean);if(0===c.length)return{visible:[...a],thinkingLevelPins:{},warnings:[]};let f=new Set,g={},h=[];for(let b of c){let c=function(a){let b=a.trim(),c=b.lastIndexOf(":");if(c>0){let a=b.slice(c+1);if(d.has(a))return{raw:b,base:b.slice(0,c),thinkingLevel:a}}return{raw:b,base:b,thinkingLevel:null}}(b);if(!c.base){h.push(`Invalid enabledModels pattern: "${b}"`);continue}let i=0;for(let b of a){if(!function(a,b){let c=`${a.provider}/${a.id}`,d=b.toLowerCase();if(b.includes("*")||b.includes("?")){let d=function(a){let b="^";for(let c of a)"*"===c?b+=".*":"?"===c?b+=".":b+=c.replace(/[.+^${}()|[\]\\]/g,"\\$&");return RegExp(`${b}$`,"i")}(b);return d.test(c)||d.test(a.id)}return c.toLowerCase()===d||a.id.toLowerCase()===d||e(c.toLowerCase(),d)||e(a.id.toLowerCase(),d)}(b,c.base))continue;i+=1;let a=`${b.provider}:${b.id}`;f.add(a),c.thinkingLevel&&(g[a]=c.thinkingLevel)}0===i&&h.push(`enabledModels pattern matched no model: "${b}"`)}return 0===f.size?{visible:[...a],thinkingLevelPins:{},warnings:h}:{visible:a.filter(a=>f.has(`${a.provider}:${a.id}`)),thinkingLevelPins:g,warnings:h}}},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},19821:a=>{"use strict";a.exports=import("@earendil-works/pi-ai/compat")},28802:a=>{"use strict";a.exports=import("@earendil-works/pi-ai")},28967:(a,b,c)=>{"use strict";function d(){return globalThis.__annovibeModelsCacheState||(globalThis.__annovibeModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__annovibeModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){let c=d(),e=c.entries.get(a);if(e){if(e.expiresAt>Date.now())return Promise.resolve(e.data);c.entries.delete(a)}let f=c.inFlight.get(a);if(f)return f;let g=c.generation,h=Promise.resolve().then(b).then(b=>{if(c.generation===g&&c.inFlight.get(a)===h){let d=Date.now();for(let[a,b]of c.entries)b.expiresAt<=d&&c.entries.delete(a);for(;c.entries.size>=8;){let a=c.entries.keys().next().value;if(void 0===a)break;c.entries.delete(a)}c.entries.set(a,{data:b,expiresAt:d+6e4})}return b}).finally(()=>{c.inFlight.get(a)===h&&c.inFlight.delete(a)});return c.inFlight.set(a,h),h}c.d(b,{k:()=>e,r:()=>f})},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},96487:()=>{},98278:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models/route",pathname:"/api/models",filename:"route",bundlePath:"app/api/models/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/models/route.ts",nextConfigOutput:"",userland:()=>c(7135),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.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==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970],()=>b(b.s=98278));module.exports=c})();
@@ -1 +1 @@
1
- (()=>{var a={};a.id=9787,a.ids=[9787],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},15030:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models-config/discover/route",pathname:"/api/models-config/discover",filename:"route",bundlePath:"app/api/models-config/discover/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/models-config/discover/route.ts",nextConfigOutput:"",userland:()=>c(49704),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/discover/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.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==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49704:(a,b,c)=>{"use strict";c.r(b),c.d(b,{POST:()=>C,dynamic:()=>B});var d=c(23211);let e={contextWindow:2e5,maxTokens:16e3},f={contextWindow:2e5,maxTokens:16e3},g={contextWindow:128e3,maxTokens:8192},h={contextWindow:128e3,maxTokens:8192},i={contextWindow:8192,maxTokens:4096},j={contextWindow:2e5,maxTokens:16e3},k=["contextWindow","context_window","context_length","contextLength","max_context_length","maxContextLength","max_model_len","model_max_length","input_token_limit","max_input_tokens","maxInputTokens","num_ctx","n_ctx"],l=["maxTokens","max_tokens","max_output_tokens","maxOutputTokens","max_completion_tokens","maxCompletionTokens","output_token_limit","completion_token_limit"];function m(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function n(a){return Array.from(new Set(a))}function o(a){return a.trim().replace(/\/+$/,"")}function p(a){return a.trim()?{authorization:`Bearer ${a.trim()}`}:{}}async function q(a,b=""){let c,d=p(b),e=[];for(let b of(c=o(a),n([`${c}/v1/models`,`${c}/models`,`${c}/api/models`,`${c}/api/tags`])))try{let a=await fetch(b,{method:"GET",headers:d,signal:AbortSignal.timeout(3e4)});if(200===a.status){let c=await a.json();return{endpoint:b,models:function(a){let b=function(a){if(Array.isArray(a))return a;if(!m(a))throw Error("Could not parse model response format");if(Array.isArray(a.data))return a.data;if(Array.isArray(a.models))return a.models;throw Error("Could not parse model response format")}(a),c=[];for(let a of b){if("string"==typeof a){c.push({id:a,name:a,ownedBy:"unknown"});continue}if(!m(a))continue;let b=z(a,["id","model_id","name","model"]);if(!b)continue;let d=t(a),e=u(a);c.push({id:b,name:z(a,["name"])??b,ownedBy:z(a,["owned_by","ownedBy"])??"unknown",...e?{input:e}:{},...d})}return c}(c)}}404!==a.status&&e.push(`${b}: HTTP ${a.status}`)}catch(a){e.push(`${b}: ${a instanceof Error?a.message:String(a)}`)}throw Error(e.length?e.join("; "):"Could not connect to any model endpoint")}async function r(a,b,c){let d=c.map(a=>({...a})),e=d.filter(a=>void 0===a.contextWindow||void 0===a.maxTokens);if(0===e.length)return d;for(let c of e){let d=await s(a,b,c.id);if(!d)continue;let e=t(d),f=u(d);c.contextWindow??=e.contextWindow,c.maxTokens??=e.maxTokens,c.input??=f}return d}async function s(a,b,c){let d=p(b),e=o(a),f=encodeURIComponent(c);for(let a of n([`${e}/v1/models/${f}`,`${e}/models/${f}`,`${e}/api/models/${f}`]))try{let b=await fetch(a,{method:"GET",headers:d,signal:AbortSignal.timeout(15e3)});if(200===b.status){let a=await b.json();if(m(a))return a}}catch{}try{let a=await fetch(`${e}/api/show`,{method:"POST",headers:{...d,"content-type":"application/json"},body:JSON.stringify({name:c}),signal:AbortSignal.timeout(15e3)});if(200===a.status){let b=await a.json();if(m(b))return b}}catch{}}function t(a){let b=x(a,k),c=x(a,l);return{...b?{contextWindow:b}:{},...c?{maxTokens:c}:{}}}function u(a){if(m(a)&&function a(b){if("string"==typeof b){let a;return"image"===(a=b.trim().toLowerCase())||"images"===a||"vision"===a||"visual"===a||"multimodal"===a}if("boolean"==typeof b||"number"==typeof b||null===b)return!1;if(Array.isArray(b))return b.some(b=>a(b));if(!m(b))return!1;for(let[c,d]of Object.entries(b)){let b=y(c);if("boolean"==typeof d&&d&&v.has(b)||w.has(b)&&a(d))return!0}return!1}(a))return["text","image"]}let v=new Set(["image","images","vision","visual","multimodal"]),w=new Set(["input","inputs","inputmodalities","modalities","modality","supportedmodalities","capabilities","features","architecture","details","family"]);function x(a,b){if(Array.isArray(a)){for(let c of a){let a=x(c,b);if(a)return a}return}if(m(a)){for(let c of b)for(let[b,d]of Object.entries(a))if(function(a,b){let c=y(a),d=y(b);return c===d||c.endsWith(`.${d}`)}(b,c)){let a=function(a){if("boolean"==typeof a)return;if("number"==typeof a&&Number.isFinite(a)&&a>0)return Math.trunc(a);if("string"!=typeof a)return;let b=a.trim().toLowerCase().replace(/[, _]/g,""),c=/^(\d+(?:\.\d+)?)([km])?$/.exec(b);if(!c)return;let d=Number.parseFloat(c[1]);return"k"===c[2]&&(d*=1e3),"m"===c[2]&&(d*=1e6),d>0?Math.trunc(d):void 0}(d);if(a)return a}for(let c of Object.values(a)){let a=x(c,b);if(a)return a}}}function y(a){return a.toLowerCase().replace(/[^a-z0-9.]/g,"")}function z(a,b){for(let c of b){let b=a[c];if("string"==typeof b&&b.trim())return b}}var A=c(74177);let B="force-dynamic";async function C(a){try{let b=await a.json(),c="string"==typeof b.baseUrl?o(b.baseUrl):"",k="string"==typeof b.apiKey?b.apiKey:"",l="string"==typeof b.provider?b.provider.trim():"";if(!c)return d.NextResponse.json({ok:!1,error:"Base URL is required"},{status:400});let m=await q(c,k),n=!1===b.enrich?m.models:await r(c,k,m.models),p=function(a,b=!1,c){return a.map(a=>{let d,k=(d=a.id.toLowerCase()).includes("claude")?{...e,...d.includes("thinking")||d.includes("reasoning")?{reasoning:!0}:{}}:d.includes("gpt")?{...f}:d.includes("deepseek")?{...g}:d.includes("qwen")?{...h}:d.includes("llama")?{...i}:{...j},l=function(a){if(a.input?.includes("image")||function(a,b,c){let d=[a,b,c].filter(Boolean).join(" ").toLowerCase();if(!d)return!1;let e=d.replace(/[^a-z0-9]+/g," ");return!!(/\b(?:vision|visual|multimodal|image|images|llava|pixtral|internvl|minicpmv|glm4v)\b/.test(e)||/(^|[^a-z0-9])(?:vl|v)(?:[^a-z0-9]|$)/.test(d)||/\bqwen[0-9.]*\s*vl\b|\bqwen\s*vl\b/.test(e)||/\bgpt\s*4o\b|\bgpt\s*4\s*1\b|\bo3\b|\bo4\b/.test(e)||/\bgemini\b|\bclaude\s*3\b|\bclaude\s*(?:sonnet|opus|haiku)\s*4\b/.test(e))}(a.id,a.name,a.ownedBy))return["text","image"]}(a);return{id:b&&c?`${c}/${a.id}`:a.id,name:a.name??a.id,...l?{input:l}:{},contextWindow:a.contextWindow??k.contextWindow,maxTokens:a.maxTokens??k.maxTokens,...k.reasoning?{reasoning:!0}:{}}})}(n,!1,l||void 0);return d.NextResponse.json({ok:!0,endpoint:m.endpoint,baseUrl:c,models:n,piModels:p})}catch(a){return d.NextResponse.json({ok:!1,error:(0,A.m)(a)},{status:500})}}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},74177:(a,b,c)=>{"use strict";c.d(b,{c:()=>f,m:()=>e});let d={400:"Request could not be processed",401:"Authentication required",403:"Request was rejected",404:"Not found",405:"Method not allowed",409:"Request conflicts with the current state",413:"Payload too large",415:"Unsupported media type",422:"Request could not be processed",429:"Too many requests"};function e(a){if(a instanceof Error)return a.message||a.name;if("string"==typeof a)return a;try{return JSON.stringify(a)??String(a)}catch{return String(a)}}function f(a,b){let c=e(a),f=d[b.status]??(b.status>=500?"Internal server error":"Request failed"),g=b.expose?c:f;return b.verbose&&c&&c!==g?{error:g,detail:c}:{error:g}}},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813],()=>b(b.s=15030));module.exports=c})();
1
+ (()=>{var a={};a.id=9787,a.ids=[9787],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49704:(a,b,c)=>{"use strict";c.r(b),c.d(b,{POST:()=>C,dynamic:()=>B});var d=c(23211);let e={contextWindow:2e5,maxTokens:16e3},f={contextWindow:2e5,maxTokens:16e3},g={contextWindow:128e3,maxTokens:8192},h={contextWindow:128e3,maxTokens:8192},i={contextWindow:8192,maxTokens:4096},j={contextWindow:2e5,maxTokens:16e3},k=["contextWindow","context_window","context_length","contextLength","max_context_length","maxContextLength","max_model_len","model_max_length","input_token_limit","max_input_tokens","maxInputTokens","num_ctx","n_ctx"],l=["maxTokens","max_tokens","max_output_tokens","maxOutputTokens","max_completion_tokens","maxCompletionTokens","output_token_limit","completion_token_limit"];function m(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function n(a){return Array.from(new Set(a))}function o(a){return a.trim().replace(/\/+$/,"")}function p(a){return a.trim()?{authorization:`Bearer ${a.trim()}`}:{}}async function q(a,b=""){let c,d=p(b),e=[];for(let b of(c=o(a),n([`${c}/v1/models`,`${c}/models`,`${c}/api/models`,`${c}/api/tags`])))try{let a=await fetch(b,{method:"GET",headers:d,signal:AbortSignal.timeout(3e4)});if(200===a.status){let c=await a.json();return{endpoint:b,models:function(a){let b=function(a){if(Array.isArray(a))return a;if(!m(a))throw Error("Could not parse model response format");if(Array.isArray(a.data))return a.data;if(Array.isArray(a.models))return a.models;throw Error("Could not parse model response format")}(a),c=[];for(let a of b){if("string"==typeof a){c.push({id:a,name:a,ownedBy:"unknown"});continue}if(!m(a))continue;let b=z(a,["id","model_id","name","model"]);if(!b)continue;let d=t(a),e=u(a);c.push({id:b,name:z(a,["name"])??b,ownedBy:z(a,["owned_by","ownedBy"])??"unknown",...e?{input:e}:{},...d})}return c}(c)}}404!==a.status&&e.push(`${b}: HTTP ${a.status}`)}catch(a){e.push(`${b}: ${a instanceof Error?a.message:String(a)}`)}throw Error(e.length?e.join("; "):"Could not connect to any model endpoint")}async function r(a,b,c){let d=c.map(a=>({...a})),e=d.filter(a=>void 0===a.contextWindow||void 0===a.maxTokens);if(0===e.length)return d;for(let c of e){let d=await s(a,b,c.id);if(!d)continue;let e=t(d),f=u(d);c.contextWindow??=e.contextWindow,c.maxTokens??=e.maxTokens,c.input??=f}return d}async function s(a,b,c){let d=p(b),e=o(a),f=encodeURIComponent(c);for(let a of n([`${e}/v1/models/${f}`,`${e}/models/${f}`,`${e}/api/models/${f}`]))try{let b=await fetch(a,{method:"GET",headers:d,signal:AbortSignal.timeout(15e3)});if(200===b.status){let a=await b.json();if(m(a))return a}}catch{}try{let a=await fetch(`${e}/api/show`,{method:"POST",headers:{...d,"content-type":"application/json"},body:JSON.stringify({name:c}),signal:AbortSignal.timeout(15e3)});if(200===a.status){let b=await a.json();if(m(b))return b}}catch{}}function t(a){let b=x(a,k),c=x(a,l);return{...b?{contextWindow:b}:{},...c?{maxTokens:c}:{}}}function u(a){if(m(a)&&function a(b){if("string"==typeof b){let a;return"image"===(a=b.trim().toLowerCase())||"images"===a||"vision"===a||"visual"===a||"multimodal"===a}if("boolean"==typeof b||"number"==typeof b||null===b)return!1;if(Array.isArray(b))return b.some(b=>a(b));if(!m(b))return!1;for(let[c,d]of Object.entries(b)){let b=y(c);if("boolean"==typeof d&&d&&v.has(b)||w.has(b)&&a(d))return!0}return!1}(a))return["text","image"]}let v=new Set(["image","images","vision","visual","multimodal"]),w=new Set(["input","inputs","inputmodalities","modalities","modality","supportedmodalities","capabilities","features","architecture","details","family"]);function x(a,b){if(Array.isArray(a)){for(let c of a){let a=x(c,b);if(a)return a}return}if(m(a)){for(let c of b)for(let[b,d]of Object.entries(a))if(function(a,b){let c=y(a),d=y(b);return c===d||c.endsWith(`.${d}`)}(b,c)){let a=function(a){if("boolean"==typeof a)return;if("number"==typeof a&&Number.isFinite(a)&&a>0)return Math.trunc(a);if("string"!=typeof a)return;let b=a.trim().toLowerCase().replace(/[, _]/g,""),c=/^(\d+(?:\.\d+)?)([km])?$/.exec(b);if(!c)return;let d=Number.parseFloat(c[1]);return"k"===c[2]&&(d*=1e3),"m"===c[2]&&(d*=1e6),d>0?Math.trunc(d):void 0}(d);if(a)return a}for(let c of Object.values(a)){let a=x(c,b);if(a)return a}}}function y(a){return a.toLowerCase().replace(/[^a-z0-9.]/g,"")}function z(a,b){for(let c of b){let b=a[c];if("string"==typeof b&&b.trim())return b}}var A=c(74177);let B="force-dynamic";async function C(a){try{let b=await a.json(),c="string"==typeof b.baseUrl?o(b.baseUrl):"",k="string"==typeof b.apiKey?b.apiKey:"",l="string"==typeof b.provider?b.provider.trim():"";if(!c)return d.NextResponse.json({ok:!1,error:"Base URL is required"},{status:400});let m=await q(c,k),n=!1===b.enrich?m.models:await r(c,k,m.models),p=function(a,b=!1,c){return a.map(a=>{let d,k=(d=a.id.toLowerCase()).includes("claude")?{...e,...d.includes("thinking")||d.includes("reasoning")?{reasoning:!0}:{}}:d.includes("gpt")?{...f}:d.includes("deepseek")?{...g}:d.includes("qwen")?{...h}:d.includes("llama")?{...i}:{...j},l=function(a){if(a.input?.includes("image")||function(a,b,c){let d=[a,b,c].filter(Boolean).join(" ").toLowerCase();if(!d)return!1;let e=d.replace(/[^a-z0-9]+/g," ");return!!(/\b(?:vision|visual|multimodal|image|images|llava|pixtral|internvl|minicpmv|glm4v)\b/.test(e)||/(^|[^a-z0-9])(?:vl|v)(?:[^a-z0-9]|$)/.test(d)||/\bqwen[0-9.]*\s*vl\b|\bqwen\s*vl\b/.test(e)||/\bgpt\s*4o\b|\bgpt\s*4\s*1\b|\bo3\b|\bo4\b/.test(e)||/\bgemini\b|\bclaude\s*3\b|\bclaude\s*(?:sonnet|opus|haiku)\s*4\b/.test(e))}(a.id,a.name,a.ownedBy))return["text","image"]}(a);return{id:b&&c?`${c}/${a.id}`:a.id,name:a.name??a.id,...l?{input:l}:{},contextWindow:a.contextWindow??k.contextWindow,maxTokens:a.maxTokens??k.maxTokens,...k.reasoning?{reasoning:!0}:{}}})}(n,!1,l||void 0);return d.NextResponse.json({ok:!0,endpoint:m.endpoint,baseUrl:c,models:n,piModels:p})}catch(a){return d.NextResponse.json({ok:!1,error:(0,A.m)(a)},{status:500})}}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},74177:(a,b,c)=>{"use strict";c.d(b,{c:()=>f,m:()=>e});let d={400:"Request could not be processed",401:"Authentication required",403:"Request was rejected",404:"Not found",405:"Method not allowed",409:"Request conflicts with the current state",413:"Payload too large",415:"Unsupported media type",422:"Request could not be processed",429:"Too many requests"};function e(a){if(a instanceof Error)return a.message||a.name;if("string"==typeof a)return a;try{return JSON.stringify(a)??String(a)}catch{return String(a)}}function f(a,b){let c=e(a),f=d[b.status]??(b.status>=500?"Internal server error":"Request failed"),g=b.expose?c:f;return b.verbose&&c&&c!==g?{error:g,detail:c}:{error:g}}},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},90188:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models-config/discover/route",pathname:"/api/models-config/discover",filename:"route",bundlePath:"app/api/models-config/discover/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/models-config/discover/route.ts",nextConfigOutput:"",userland:()=>c(49704),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/discover/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.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==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813],()=>b(b.s=90188));module.exports=c})();
@@ -1 +1 @@
1
- (()=>{var a={};a.id=7483,a.ids=[7483],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8102:(a,b,c)=>{"use strict";c.d(b,{$:()=>g});var d=c(55511),e=c(29021),f=c(33873);function g(a,b){let c=(0,f.dirname)(a),g=(0,f.join)(c,`.${(0,f.basename)(a)}-${(0,d.randomUUID)()}.tmp`),h=!1;try{(0,e.writeFileSync)(g,b,{encoding:"utf8",flag:"wx",mode:384,flush:!0}),(0,e.renameSync)(g,a)}catch(a){throw h=!0,a}finally{try{(0,e.unlinkSync)(g)}catch(a){if("ENOENT"!==a.code&&!h)throw a}}}},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},28967:(a,b,c)=>{"use strict";function d(){return globalThis.__annovibeModelsCacheState||(globalThis.__annovibeModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__annovibeModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){let c=d(),e=c.entries.get(a);if(e){if(e.expiresAt>Date.now())return Promise.resolve(e.data);c.entries.delete(a)}let f=c.inFlight.get(a);if(f)return f;let g=c.generation,h=Promise.resolve().then(b).then(b=>{if(c.generation===g&&c.inFlight.get(a)===h){let d=Date.now();for(let[a,b]of c.entries)b.expiresAt<=d&&c.entries.delete(a);for(;c.entries.size>=8;){let a=c.entries.keys().next().value;if(void 0===a)break;c.entries.delete(a)}c.entries.set(a,{data:b,expiresAt:d+6e4})}return b}).finally(()=>{c.inFlight.get(a)===h&&c.inFlight.delete(a)});return c.inFlight.set(a,h),h}c.d(b,{k:()=>e,r:()=>f})},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},53571:(a,b,c)=>{"use strict";c.d(b,{Q:()=>f});var d=c(23211),e=c(74177);function f(a,b){let c=b.status??500,f=`[api] ${b.context} failed (${c}): ${(0,e.m)(a)}`;c>=500?console.error(f,a instanceof Error?a.stack??"":""):console.warn(f);let{error:g,detail:h}=(0,e.c)(a,{status:c,expose:b.expose,verbose:"1"===process.env.ANNOVIBE_VERBOSE_ERRORS});return d.NextResponse.json({error:g,...b.code?{code:b.code}:{},...h?{detail:h}:{},...b.extra},{status:c,...b.headers?{headers:b.headers}:{}})}},53718:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>n,PUT:()=>o,dynamic:()=>p});var e=c(23211),f=c(29021),g=c(8102),h=c(28967),i=c(33873),j=c(75430),k=c(53571),l=a([j]);j=(l.then?(await l)():l)[0];let p="force-dynamic";function m(){return(0,i.join)((0,j.getAgentDir)(),"models.json")}async function n(){return e.NextResponse.json(function(){let a=m();if(!(0,f.existsSync)(a))return{providers:{}};try{return JSON.parse((0,f.readFileSync)(a,"utf8"))}catch{return{providers:{}}}}())}async function o(a){try{var b;let c,d;return b=await a.json(),c=m(),d=(0,i.dirname)(c),(0,f.existsSync)(d)||(0,f.mkdirSync)(d,{recursive:!0,mode:448}),(0,g.$)(c,JSON.stringify(function(a){if(!a||"object"!=typeof a||Array.isArray(a))return{providers:{}};let b=a.providers;if(!b||"object"!=typeof b||Array.isArray(b))return{...a,providers:{}};let c=Object.fromEntries(Object.entries(b).map(([a,b])=>{if(!b||"object"!=typeof b||Array.isArray(b))return[a,b];let c=b.models;return Array.isArray(c)?[a,{...b,models:c.filter(a=>!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.id||a.id.trim().length>0)}]:[a,b]}));return{...a,providers:c}}(b),null,2)),(0,h.k)(),e.NextResponse.json({success:!0})}catch(a){return(0,k.Q)(a,{context:"PUT /api/models-config"})}}d()}catch(a){d(a)}})},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},74177:(a,b,c)=>{"use strict";c.d(b,{c:()=>f,m:()=>e});let d={400:"Request could not be processed",401:"Authentication required",403:"Request was rejected",404:"Not found",405:"Method not allowed",409:"Request conflicts with the current state",413:"Payload too large",415:"Unsupported media type",422:"Request could not be processed",429:"Too many requests"};function e(a){if(a instanceof Error)return a.message||a.name;if("string"==typeof a)return a;try{return JSON.stringify(a)??String(a)}catch{return String(a)}}function f(a,b){let c=e(a),f=d[b.status]??(b.status>=500?"Internal server error":"Request failed"),g=b.expose?c:f;return b.verbose&&c&&c!==g?{error:g,detail:c}:{error:g}}},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},99570:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models-config/route",pathname:"/api/models-config",filename:"route",bundlePath:"app/api/models-config/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/models-config/route.ts",nextConfigOutput:"",userland:()=>c(53718),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.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==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813],()=>b(b.s=99570));module.exports=c})();
1
+ (()=>{var a={};a.id=7483,a.ids=[7483],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8102:(a,b,c)=>{"use strict";c.d(b,{$:()=>g});var d=c(55511),e=c(29021),f=c(33873);function g(a,b){let c=(0,f.dirname)(a),g=(0,f.join)(c,`.${(0,f.basename)(a)}-${(0,d.randomUUID)()}.tmp`),h=!1;try{(0,e.writeFileSync)(g,b,{encoding:"utf8",flag:"wx",mode:384,flush:!0}),(0,e.renameSync)(g,a)}catch(a){throw h=!0,a}finally{try{(0,e.unlinkSync)(g)}catch(a){if("ENOENT"!==a.code&&!h)throw a}}}},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},25912:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models-config/route",pathname:"/api/models-config",filename:"route",bundlePath:"app/api/models-config/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/models-config/route.ts",nextConfigOutput:"",userland:()=>c(53718),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.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==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},28967:(a,b,c)=>{"use strict";function d(){return globalThis.__annovibeModelsCacheState||(globalThis.__annovibeModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__annovibeModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){let c=d(),e=c.entries.get(a);if(e){if(e.expiresAt>Date.now())return Promise.resolve(e.data);c.entries.delete(a)}let f=c.inFlight.get(a);if(f)return f;let g=c.generation,h=Promise.resolve().then(b).then(b=>{if(c.generation===g&&c.inFlight.get(a)===h){let d=Date.now();for(let[a,b]of c.entries)b.expiresAt<=d&&c.entries.delete(a);for(;c.entries.size>=8;){let a=c.entries.keys().next().value;if(void 0===a)break;c.entries.delete(a)}c.entries.set(a,{data:b,expiresAt:d+6e4})}return b}).finally(()=>{c.inFlight.get(a)===h&&c.inFlight.delete(a)});return c.inFlight.set(a,h),h}c.d(b,{k:()=>e,r:()=>f})},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},53571:(a,b,c)=>{"use strict";c.d(b,{Q:()=>f});var d=c(23211),e=c(74177);function f(a,b){let c=b.status??500,f=`[api] ${b.context} failed (${c}): ${(0,e.m)(a)}`;c>=500?console.error(f,a instanceof Error?a.stack??"":""):console.warn(f);let{error:g,detail:h}=(0,e.c)(a,{status:c,expose:b.expose,verbose:"1"===process.env.ANNOVIBE_VERBOSE_ERRORS});return d.NextResponse.json({error:g,...b.code?{code:b.code}:{},...h?{detail:h}:{},...b.extra},{status:c,...b.headers?{headers:b.headers}:{}})}},53718:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>n,PUT:()=>o,dynamic:()=>p});var e=c(23211),f=c(29021),g=c(8102),h=c(28967),i=c(33873),j=c(75430),k=c(53571),l=a([j]);j=(l.then?(await l)():l)[0];let p="force-dynamic";function m(){return(0,i.join)((0,j.getAgentDir)(),"models.json")}async function n(){return e.NextResponse.json(function(){let a=m();if(!(0,f.existsSync)(a))return{providers:{}};try{return JSON.parse((0,f.readFileSync)(a,"utf8"))}catch{return{providers:{}}}}())}async function o(a){try{var b;let c,d;return b=await a.json(),c=m(),d=(0,i.dirname)(c),(0,f.existsSync)(d)||(0,f.mkdirSync)(d,{recursive:!0,mode:448}),(0,g.$)(c,JSON.stringify(function(a){if(!a||"object"!=typeof a||Array.isArray(a))return{providers:{}};let b=a.providers;if(!b||"object"!=typeof b||Array.isArray(b))return{...a,providers:{}};let c=Object.fromEntries(Object.entries(b).map(([a,b])=>{if(!b||"object"!=typeof b||Array.isArray(b))return[a,b];let c=b.models;return Array.isArray(c)?[a,{...b,models:c.filter(a=>!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.id||a.id.trim().length>0)}]:[a,b]}));return{...a,providers:c}}(b),null,2)),(0,h.k)(),e.NextResponse.json({success:!0})}catch(a){return(0,k.Q)(a,{context:"PUT /api/models-config"})}}d()}catch(a){d(a)}})},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},74177:(a,b,c)=>{"use strict";c.d(b,{c:()=>f,m:()=>e});let d={400:"Request could not be processed",401:"Authentication required",403:"Request was rejected",404:"Not found",405:"Method not allowed",409:"Request conflicts with the current state",413:"Payload too large",415:"Unsupported media type",422:"Request could not be processed",429:"Too many requests"};function e(a){if(a instanceof Error)return a.message||a.name;if("string"==typeof a)return a;try{return JSON.stringify(a)??String(a)}catch{return String(a)}}function f(a,b){let c=e(a),f=d[b.status]??(b.status>=500?"Internal server error":"Request failed"),g=b.expose?c:f;return b.verbose&&c&&c!==g?{error:g,detail:c}:{error:g}}},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813],()=>b(b.s=25912));module.exports=c})();
@@ -1 +1 @@
1
- (()=>{var a={};a.id=8658,a.ids=[8658],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12773:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>o,dynamic:()=>p});var e=c(23211),f=c(29021),g=c(21820),h=c(33873),i=c(19821),j=c(75430),k=c(74177),l=a([i,j]);[i,j]=l.then?(await l)():l;let p="force-dynamic";function m(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function n(a){return a.includes("Stream ended without finish_reason")?"Stream ended without finish_reason. This usually means the model is configured as openai-completions, but the upstream returns OpenAI Responses API events. Set the provider API or this model's API override to openai-responses.":a}async function o(a){let b;try{let c,d=await a.json(),k="string"==typeof d.providerName?d.providerName.trim():"";if(!k)return e.NextResponse.json({ok:!1,error:"providerName is required"},{status:400});if(!m(d.provider))return e.NextResponse.json({ok:!1,error:"provider is required"},{status:400});if(!m(d.model))return e.NextResponse.json({ok:!1,error:"model is required"},{status:400});let l="string"==typeof d.model.id?d.model.id.trim():"";if(!l)return e.NextResponse.json({ok:!1,error:"Model ID is required"},{status:400});b=(0,f.mkdtempSync)((0,h.join)((0,g.tmpdir)(),"annovibe-model-test-"));let o=(0,h.join)(b,"models.json");(0,f.writeFileSync)(o,JSON.stringify({providers:{[k]:{...d.provider,models:[{...d.model,id:l}]}}},null,2),"utf8");let p=await j.ModelRuntime.create({modelsPath:o}),q=p.getError();if(q)return e.NextResponse.json({ok:!1,error:q});let r=p.getModel(k,l);if(!r)return e.NextResponse.json({ok:!1,error:`Model not found: ${k}/${l}`});let s=await p.getAuth(r);if(!s||!s.auth.apiKey)return e.NextResponse.json({ok:!1,error:`No API key found for "${k}"`});let t=new AbortController,u=setTimeout(()=>t.abort(),2e4),v=Date.now();try{let a=await (0,i.completeSimple)(r,{messages:[{role:"user",content:"Reply with OK only.",timestamp:Date.now()}]},{apiKey:s.auth.apiKey,...s.auth.headers?{headers:s.auth.headers}:{},...s.env?{env:s.env}:{},maxTokens:16,timeoutMs:2e4,maxRetries:0,cacheRetention:"none",signal:t.signal,onResponse:a=>{c=a.status}}),b=Date.now()-v;if("error"===a.stopReason||"aborted"===a.stopReason){let d=a.errorMessage??(t.signal.aborted?"Test timed out":"Model returned an error");return e.NextResponse.json({ok:!1,error:n(d),latencyMs:b,status:c})}return e.NextResponse.json({ok:!0,latencyMs:b,status:c,responseText:a.content.filter(a=>"text"===a.type).map(a=>a.text).join("").slice(0,300)})}finally{clearTimeout(u)}}catch(a){return e.NextResponse.json({ok:!1,error:n((0,k.m)(a))},{status:500})}finally{b&&(0,f.rmSync)(b,{recursive:!0,force:!0})}}d()}catch(a){d(a)}})},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19821:a=>{"use strict";a.exports=import("@earendil-works/pi-ai/compat")},21820:a=>{"use strict";a.exports=require("os")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},74177:(a,b,c)=>{"use strict";c.d(b,{c:()=>f,m:()=>e});let d={400:"Request could not be processed",401:"Authentication required",403:"Request was rejected",404:"Not found",405:"Method not allowed",409:"Request conflicts with the current state",413:"Payload too large",415:"Unsupported media type",422:"Request could not be processed",429:"Too many requests"};function e(a){if(a instanceof Error)return a.message||a.name;if("string"==typeof a)return a;try{return JSON.stringify(a)??String(a)}catch{return String(a)}}function f(a,b){let c=e(a),f=d[b.status]??(b.status>=500?"Internal server error":"Request failed"),g=b.expose?c:f;return b.verbose&&c&&c!==g?{error:g,detail:c}:{error:g}}},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},97392:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models-config/test/route",pathname:"/api/models-config/test",filename:"route",bundlePath:"app/api/models-config/test/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/models-config/test/route.ts",nextConfigOutput:"",userland:()=>c(12773),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/test/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.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==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813],()=>b(b.s=97392));module.exports=c})();
1
+ (()=>{var a={};a.id=8658,a.ids=[8658],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12773:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>o,dynamic:()=>p});var e=c(23211),f=c(29021),g=c(21820),h=c(33873),i=c(19821),j=c(75430),k=c(74177),l=a([i,j]);[i,j]=l.then?(await l)():l;let p="force-dynamic";function m(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function n(a){return a.includes("Stream ended without finish_reason")?"Stream ended without finish_reason. This usually means the model is configured as openai-completions, but the upstream returns OpenAI Responses API events. Set the provider API or this model's API override to openai-responses.":a}async function o(a){let b;try{let c,d=await a.json(),k="string"==typeof d.providerName?d.providerName.trim():"";if(!k)return e.NextResponse.json({ok:!1,error:"providerName is required"},{status:400});if(!m(d.provider))return e.NextResponse.json({ok:!1,error:"provider is required"},{status:400});if(!m(d.model))return e.NextResponse.json({ok:!1,error:"model is required"},{status:400});let l="string"==typeof d.model.id?d.model.id.trim():"";if(!l)return e.NextResponse.json({ok:!1,error:"Model ID is required"},{status:400});b=(0,f.mkdtempSync)((0,h.join)((0,g.tmpdir)(),"annovibe-model-test-"));let o=(0,h.join)(b,"models.json");(0,f.writeFileSync)(o,JSON.stringify({providers:{[k]:{...d.provider,models:[{...d.model,id:l}]}}},null,2),"utf8");let p=await j.ModelRuntime.create({modelsPath:o}),q=p.getError();if(q)return e.NextResponse.json({ok:!1,error:q});let r=p.getModel(k,l);if(!r)return e.NextResponse.json({ok:!1,error:`Model not found: ${k}/${l}`});let s=await p.getAuth(r);if(!s||!s.auth.apiKey)return e.NextResponse.json({ok:!1,error:`No API key found for "${k}"`});let t=new AbortController,u=setTimeout(()=>t.abort(),2e4),v=Date.now();try{let a=await (0,i.completeSimple)(r,{messages:[{role:"user",content:"Reply with OK only.",timestamp:Date.now()}]},{apiKey:s.auth.apiKey,...s.auth.headers?{headers:s.auth.headers}:{},...s.env?{env:s.env}:{},maxTokens:16,timeoutMs:2e4,maxRetries:0,cacheRetention:"none",signal:t.signal,onResponse:a=>{c=a.status}}),b=Date.now()-v;if("error"===a.stopReason||"aborted"===a.stopReason){let d=a.errorMessage??(t.signal.aborted?"Test timed out":"Model returned an error");return e.NextResponse.json({ok:!1,error:n(d),latencyMs:b,status:c})}return e.NextResponse.json({ok:!0,latencyMs:b,status:c,responseText:a.content.filter(a=>"text"===a.type).map(a=>a.text).join("").slice(0,300)})}finally{clearTimeout(u)}}catch(a){return e.NextResponse.json({ok:!1,error:n((0,k.m)(a))},{status:500})}finally{b&&(0,f.rmSync)(b,{recursive:!0,force:!0})}}d()}catch(a){d(a)}})},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19821:a=>{"use strict";a.exports=import("@earendil-works/pi-ai/compat")},21820:a=>{"use strict";a.exports=require("os")},27718:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models-config/test/route",pathname:"/api/models-config/test",filename:"route",bundlePath:"app/api/models-config/test/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/models-config/test/route.ts",nextConfigOutput:"",userland:()=>c(12773),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/test/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.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==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},74177:(a,b,c)=>{"use strict";c.d(b,{c:()=>f,m:()=>e});let d={400:"Request could not be processed",401:"Authentication required",403:"Request was rejected",404:"Not found",405:"Method not allowed",409:"Request conflicts with the current state",413:"Payload too large",415:"Unsupported media type",422:"Request could not be processed",429:"Too many requests"};function e(a){if(a instanceof Error)return a.message||a.name;if("string"==typeof a)return a;try{return JSON.stringify(a)??String(a)}catch{return String(a)}}function f(a,b){let c=e(a),f=d[b.status]??(b.status>=500?"Internal server error":"Request failed"),g=b.expose?c:f;return b.verbose&&c&&c!==g?{error:g,detail:c}:{error:g}}},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813],()=>b(b.s=27718));module.exports=c})();
@@ -1 +1 @@
1
- (()=>{var a={};a.id=2314,a.ids=[2314],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53571:(a,b,c)=>{"use strict";c.d(b,{Q:()=>f});var d=c(23211),e=c(74177);function f(a,b){let c=b.status??500,f=`[api] ${b.context} failed (${c}): ${(0,e.m)(a)}`;c>=500?console.error(f,a instanceof Error?a.stack??"":""):console.warn(f);let{error:g,detail:h}=(0,e.c)(a,{status:c,expose:b.expose,verbose:"1"===process.env.ANNOVIBE_VERBOSE_ERRORS});return d.NextResponse.json({error:g,...b.code?{code:b.code}:{},...h?{detail:h}:{},...b.extra},{status:c,...b.headers?{headers:b.headers}:{}})}},55511:a=>{"use strict";a.exports=require("crypto")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70845:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>p,POST:()=>q,dynamic:()=>i});var d=c(23211),e=c(21820),f=c(33873),g=c(15193),h=c(53571);let i="force-dynamic",j=new Set(["python","r"]);function k(a){return"string"==typeof a&&j.has(a)}function l(a){return JSON.stringify({language:a.language,command:a.command,args:a.args,env:a.env})}function m(a){if(!k(a.language))throw Error("Kernel language must be python or r");if("string"!=typeof a.command||!a.command.trim())throw Error("Kernel command is required");let b=Array.isArray(a.args)?a.args.map(a=>String(a)):"python"===a.language?["-u"]:["--slave","--vanilla"],c=a.env&&"object"==typeof a.env&&!Array.isArray(a.env)?Object.fromEntries(Object.entries(a.env).map(([a,b])=>[a,String(b)])):{};return{language:a.language,command:a.command.trim(),args:b,displayName:"string"==typeof a.displayName&&a.displayName.trim()?a.displayName.trim():`${a.language} (${a.command.trim()})`,env:c}}function n(a,b,c){let d=b?.selectedKernels??{};return{kernels:Object.entries(a.kernels).map(([b,c])=>{let e=d[c.language]??a.defaultKernel[c.language]??null;return{id:b,...c,isDefault:a.defaultKernel[c.language]===b,isProjectSelected:d[c.language]===b,isEffective:e===b}}),defaultKernel:a.defaultKernel,selectedKernels:d,scanCache:a.scanCache,paths:{global:(0,f.join)((0,e.homedir)(),".config","warmplot.json"),project:c?(0,f.join)(c,".pi","warmplot.json"):null}}}async function o(a){return{globalConfig:await (0,g.G_)(),projectConfig:a?await (0,g.WM)(a):null}}async function p(a){try{let{searchParams:b}=new URL(a.url),c=b.get("cwd"),{globalConfig:e,projectConfig:f}=await o(c);return d.NextResponse.json(n(e,f,c))}catch(a){return(0,h.Q)(a,{context:"GET /api/plot-kernels"})}}async function q(a){try{let b=await a.json(),c=b.action,e="string"==typeof b.cwd&&b.cwd.trim()?b.cwd.trim():null,{globalConfig:f,projectConfig:h}=await o(e);if("scan"===c){let a=k(b.language)?b.language:null,c=a?"python"===a?await (0,g.Ql)(e??void 0):await (0,g.Wm)(e??void 0):await (0,g.rD)(e??void 0),h=new Set(Object.values(f.kernels).map(l)),i=[],j=0;for(let a of c.newKernels){let b=l(a);if(h.has(b)){j+=1;continue}let c=function(a,b){let c=b,d=1;for(;a.kernels[c];)c=`${b}-${d}`,d+=1;return c}(f,a.displayName.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")||"kernel");f.kernels[c]=a,h.add(b),i.push({id:c,...a})}f.scanCache={lastScan:new Date().toISOString(),scannedKernels:Object.keys(f.kernels)},await (0,g.tE)(f);let m=e?await (0,g.WM)(e):null;return d.NextResponse.json({success:!0,added:i,skipped:j,errors:c.errors,...n(f,m,e)})}if("select"===c){if(!e)return d.NextResponse.json({error:"cwd is required"},{status:400});if(!k(b.language)||"string"!=typeof b.kernelId)return d.NextResponse.json({error:"language and kernelId are required"},{status:400});let a=f.kernels[b.kernelId];if(!a||a.language!==b.language)return d.NextResponse.json({error:"Kernel not found for selected language"},{status:404});let c=h??{version:"1.0",selectedKernels:{}};return c.selectedKernels={...c.selectedKernels??{},[b.language]:b.kernelId},await (0,g.RJ)(e,c),d.NextResponse.json({success:!0,...n(f,c,e)})}if("setDefault"===c){if(!k(b.language)||"string"!=typeof b.kernelId)return d.NextResponse.json({error:"language and kernelId are required"},{status:400});let a=f.kernels[b.kernelId];if(!a||a.language!==b.language)return d.NextResponse.json({error:"Kernel not found for selected language"},{status:404});f.defaultKernel[b.language]=b.kernelId,await (0,g.tE)(f);let c=e?await (0,g.WM)(e):null;return d.NextResponse.json({success:!0,...n(f,c,e)})}if("add"===c){if("string"!=typeof b.kernelId||!b.kernelId.trim())return d.NextResponse.json({error:"kernelId is required"},{status:400});let a=b.kernelId.trim();if(f.kernels[a])return d.NextResponse.json({error:"Kernel ID already exists"},{status:409});f.kernels[a]=m(b.kernel??{}),await (0,g.tE)(f);let c=e?await (0,g.WM)(e):null;return d.NextResponse.json({success:!0,...n(f,c,e)})}if("edit"===c){if("string"!=typeof b.kernelId||!f.kernels[b.kernelId])return d.NextResponse.json({error:"Kernel not found"},{status:404});f.kernels[b.kernelId]=m(b.kernel??{}),await (0,g.tE)(f);let a=e?await (0,g.WM)(e):null;return d.NextResponse.json({success:!0,...n(f,a,e)})}if("delete"===c){if("string"!=typeof b.kernelId||!f.kernels[b.kernelId])return d.NextResponse.json({error:"Kernel not found"},{status:404});if("default-python"===b.kernelId||"default-r"===b.kernelId)return d.NextResponse.json({error:"System default kernels cannot be deleted"},{status:400});for(let a of(delete f.kernels[b.kernelId],["python","r"]))f.defaultKernel[a]===b.kernelId&&delete f.defaultKernel[a];await (0,g.tE)(f);let a=h;if(e&&a){let c={...a.selectedKernels??{}};for(let a of["python","r"])c[a]===b.kernelId&&delete c[a];a={...a,selectedKernels:c},await (0,g.RJ)(e,a)}return d.NextResponse.json({success:!0,...n(f,a,e)})}return d.NextResponse.json({error:"Unknown action"},{status:400})}catch(a){return(0,h.Q)(a,{context:"POST /api/plot-kernels",status:500,expose:!0})}}},73024:a=>{"use strict";a.exports=require("node:fs")},74177:(a,b,c)=>{"use strict";c.d(b,{c:()=>f,m:()=>e});let d={400:"Request could not be processed",401:"Authentication required",403:"Request was rejected",404:"Not found",405:"Method not allowed",409:"Request conflicts with the current state",413:"Payload too large",415:"Unsupported media type",422:"Request could not be processed",429:"Too many requests"};function e(a){if(a instanceof Error)return a.message||a.name;if("string"==typeof a)return a;try{return JSON.stringify(a)??String(a)}catch{return String(a)}}function f(a,b){let c=e(a),f=d[b.status]??(b.status>=500?"Internal server error":"Request failed"),g=b.expose?c:f;return b.verbose&&c&&c!==g?{error:g,detail:c}:{error:g}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},97792:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/plot-kernels/route",pathname:"/api/plot-kernels",filename:"route",bundlePath:"app/api/plot-kernels/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/plot-kernels/route.ts",nextConfigOutput:"",userland:()=>c(70845),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plot-kernels/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.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==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,5193],()=>b(b.s=97792));module.exports=c})();
1
+ (()=>{var a={};a.id=2314,a.ids=[2314],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53571:(a,b,c)=>{"use strict";c.d(b,{Q:()=>f});var d=c(23211),e=c(74177);function f(a,b){let c=b.status??500,f=`[api] ${b.context} failed (${c}): ${(0,e.m)(a)}`;c>=500?console.error(f,a instanceof Error?a.stack??"":""):console.warn(f);let{error:g,detail:h}=(0,e.c)(a,{status:c,expose:b.expose,verbose:"1"===process.env.ANNOVIBE_VERBOSE_ERRORS});return d.NextResponse.json({error:g,...b.code?{code:b.code}:{},...h?{detail:h}:{},...b.extra},{status:c,...b.headers?{headers:b.headers}:{}})}},55511:a=>{"use strict";a.exports=require("crypto")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70845:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>p,POST:()=>q,dynamic:()=>i});var d=c(23211),e=c(21820),f=c(33873),g=c(15193),h=c(53571);let i="force-dynamic",j=new Set(["python","r"]);function k(a){return"string"==typeof a&&j.has(a)}function l(a){return JSON.stringify({language:a.language,command:a.command,args:a.args,env:a.env})}function m(a){if(!k(a.language))throw Error("Kernel language must be python or r");if("string"!=typeof a.command||!a.command.trim())throw Error("Kernel command is required");let b=Array.isArray(a.args)?a.args.map(a=>String(a)):"python"===a.language?["-u"]:["--slave","--vanilla"],c=a.env&&"object"==typeof a.env&&!Array.isArray(a.env)?Object.fromEntries(Object.entries(a.env).map(([a,b])=>[a,String(b)])):{};return{language:a.language,command:a.command.trim(),args:b,displayName:"string"==typeof a.displayName&&a.displayName.trim()?a.displayName.trim():`${a.language} (${a.command.trim()})`,env:c}}function n(a,b,c){let d=b?.selectedKernels??{};return{kernels:Object.entries(a.kernels).map(([b,c])=>{let e=d[c.language]??a.defaultKernel[c.language]??null;return{id:b,...c,isDefault:a.defaultKernel[c.language]===b,isProjectSelected:d[c.language]===b,isEffective:e===b}}),defaultKernel:a.defaultKernel,selectedKernels:d,scanCache:a.scanCache,paths:{global:(0,f.join)((0,e.homedir)(),".config","warmplot.json"),project:c?(0,f.join)(c,".pi","warmplot.json"):null}}}async function o(a){return{globalConfig:await (0,g.G_)(),projectConfig:a?await (0,g.WM)(a):null}}async function p(a){try{let{searchParams:b}=new URL(a.url),c=b.get("cwd"),{globalConfig:e,projectConfig:f}=await o(c);return d.NextResponse.json(n(e,f,c))}catch(a){return(0,h.Q)(a,{context:"GET /api/plot-kernels"})}}async function q(a){try{let b=await a.json(),c=b.action,e="string"==typeof b.cwd&&b.cwd.trim()?b.cwd.trim():null,{globalConfig:f,projectConfig:h}=await o(e);if("scan"===c){let a=k(b.language)?b.language:null,c=a?"python"===a?await (0,g.Ql)(e??void 0):await (0,g.Wm)(e??void 0):await (0,g.rD)(e??void 0),h=new Set(Object.values(f.kernels).map(l)),i=[],j=0;for(let a of c.newKernels){let b=l(a);if(h.has(b)){j+=1;continue}let c=function(a,b){let c=b,d=1;for(;a.kernels[c];)c=`${b}-${d}`,d+=1;return c}(f,a.displayName.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")||"kernel");f.kernels[c]=a,h.add(b),i.push({id:c,...a})}f.scanCache={lastScan:new Date().toISOString(),scannedKernels:Object.keys(f.kernels)},await (0,g.tE)(f);let m=e?await (0,g.WM)(e):null;return d.NextResponse.json({success:!0,added:i,skipped:j,errors:c.errors,...n(f,m,e)})}if("select"===c){if(!e)return d.NextResponse.json({error:"cwd is required"},{status:400});if(!k(b.language)||"string"!=typeof b.kernelId)return d.NextResponse.json({error:"language and kernelId are required"},{status:400});let a=f.kernels[b.kernelId];if(!a||a.language!==b.language)return d.NextResponse.json({error:"Kernel not found for selected language"},{status:404});let c=h??{version:"1.0",selectedKernels:{}};return c.selectedKernels={...c.selectedKernels??{},[b.language]:b.kernelId},await (0,g.RJ)(e,c),d.NextResponse.json({success:!0,...n(f,c,e)})}if("setDefault"===c){if(!k(b.language)||"string"!=typeof b.kernelId)return d.NextResponse.json({error:"language and kernelId are required"},{status:400});let a=f.kernels[b.kernelId];if(!a||a.language!==b.language)return d.NextResponse.json({error:"Kernel not found for selected language"},{status:404});f.defaultKernel[b.language]=b.kernelId,await (0,g.tE)(f);let c=e?await (0,g.WM)(e):null;return d.NextResponse.json({success:!0,...n(f,c,e)})}if("add"===c){if("string"!=typeof b.kernelId||!b.kernelId.trim())return d.NextResponse.json({error:"kernelId is required"},{status:400});let a=b.kernelId.trim();if(f.kernels[a])return d.NextResponse.json({error:"Kernel ID already exists"},{status:409});f.kernels[a]=m(b.kernel??{}),await (0,g.tE)(f);let c=e?await (0,g.WM)(e):null;return d.NextResponse.json({success:!0,...n(f,c,e)})}if("edit"===c){if("string"!=typeof b.kernelId||!f.kernels[b.kernelId])return d.NextResponse.json({error:"Kernel not found"},{status:404});f.kernels[b.kernelId]=m(b.kernel??{}),await (0,g.tE)(f);let a=e?await (0,g.WM)(e):null;return d.NextResponse.json({success:!0,...n(f,a,e)})}if("delete"===c){if("string"!=typeof b.kernelId||!f.kernels[b.kernelId])return d.NextResponse.json({error:"Kernel not found"},{status:404});if("default-python"===b.kernelId||"default-r"===b.kernelId)return d.NextResponse.json({error:"System default kernels cannot be deleted"},{status:400});for(let a of(delete f.kernels[b.kernelId],["python","r"]))f.defaultKernel[a]===b.kernelId&&delete f.defaultKernel[a];await (0,g.tE)(f);let a=h;if(e&&a){let c={...a.selectedKernels??{}};for(let a of["python","r"])c[a]===b.kernelId&&delete c[a];a={...a,selectedKernels:c},await (0,g.RJ)(e,a)}return d.NextResponse.json({success:!0,...n(f,a,e)})}return d.NextResponse.json({error:"Unknown action"},{status:400})}catch(a){return(0,h.Q)(a,{context:"POST /api/plot-kernels",status:500,expose:!0})}}},73024:a=>{"use strict";a.exports=require("node:fs")},74177:(a,b,c)=>{"use strict";c.d(b,{c:()=>f,m:()=>e});let d={400:"Request could not be processed",401:"Authentication required",403:"Request was rejected",404:"Not found",405:"Method not allowed",409:"Request conflicts with the current state",413:"Payload too large",415:"Unsupported media type",422:"Request could not be processed",429:"Too many requests"};function e(a){if(a instanceof Error)return a.message||a.name;if("string"==typeof a)return a;try{return JSON.stringify(a)??String(a)}catch{return String(a)}}function f(a,b){let c=e(a),f=d[b.status]??(b.status>=500?"Internal server error":"Request failed"),g=b.expose?c:f;return b.verbose&&c&&c!==g?{error:g,detail:c}:{error:g}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94358:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/plot-kernels/route",pathname:"/api/plot-kernels",filename:"route",bundlePath:"app/api/plot-kernels/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/plot-kernels/route.ts",nextConfigOutput:"",userland:()=>c(70845),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plot-kernels/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.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==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,5193],()=>b(b.s=94358));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=2007,a.ids=[2007],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")},7766:(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(79022),g=c(53571),h=a([f]);f=(h.then?(await h)():h)[0];let j="force-dynamic";async function i(a){try{await (0,f.Y1)();let{searchParams:b}=new URL(a.url),c=b.get("cwd"),d=b.get("sessionId"),g=await (0,f.tJ)({cwd:c,sessionId:d});return e.NextResponse.json(g)}catch(a){return(0,g.Q)(a,{context:"GET /api/plot-kernels/status",status:500,expose:!0})}}d()}catch(a){d(a)}})},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},13946:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/plot-kernels/status/route",pathname:"/api/plot-kernels/status",filename:"route",bundlePath:"app/api/plot-kernels/status/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/plot-kernels/status/route.ts",nextConfigOutput:"",userland:()=>c(7766),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plot-kernels/status/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.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==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},28354:a=>{a.exports=require("util")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},53571:(a,b,c)=>{c.d(b,{Q:()=>f});var d=c(23211),e=c(74177);function f(a,b){let c=b.status??500,f=`[api] ${b.context} failed (${c}): ${(0,e.m)(a)}`;c>=500?console.error(f,a instanceof Error?a.stack??"":""):console.warn(f);let{error:g,detail:h}=(0,e.c)(a,{status:c,expose:b.expose,verbose:"1"===process.env.ANNOVIBE_VERBOSE_ERRORS});return d.NextResponse.json({error:g,...b.code?{code:b.code}:{},...h?{detail:h}:{},...b.extra},{status:c,...b.headers?{headers:b.headers}:{}})}},55511:a=>{a.exports=require("crypto")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},74177:(a,b,c)=>{c.d(b,{c:()=>f,m:()=>e});let d={400:"Request could not be processed",401:"Authentication required",403:"Request was rejected",404:"Not found",405:"Method not allowed",409:"Request conflicts with the current state",413:"Payload too large",415:"Unsupported media type",422:"Request could not be processed",429:"Too many requests"};function e(a){if(a instanceof Error)return a.message||a.name;if("string"==typeof a)return a;try{return JSON.stringify(a)??String(a)}catch{return String(a)}}function f(a,b){let c=e(a),f=d[b.status]??(b.status>=500?"Internal server error":"Request failed"),g=b.expose?c:f;return b.verbose&&c&&c!==g?{error:g,detail:c}:{error:g}}},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},79022:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Lm:()=>r,VJ:()=>q,Y1:()=>t,tJ:()=>p});var e=c(79646),f=c(79748),g=c(33873),h=c(28354),i=c(9774),j=c(56429),k=a([i,j]);[i,j]=k.then?(await k)():k;let u=(0,h.promisify)(e.execFile);function l(a){let b=[];for(let c of a.split(/\r?\n/)){let a=c.match(/^\s*(\d+)\s+(\d+)\s+(\d+)\s+([\s\S]+)$/);a&&b.push({pid:Number(a[1]),ppid:Number(a[2]),rssBytes:1024*Number(a[3]),command:a[4]})}return b}async function m(a){try{return(0,g.resolve)(await (0,f.readlink)(`/proc/${a}/cwd`))}catch{try{let{stdout:b}=await u("pwdx",[String(a)],{timeout:2500}),c=b.match(/^\d+:\s*(.+)\s*$/);return c?.[1]?(0,g.resolve)(c[1]):null}catch{return null}}}async function n(){try{let{stdout:a}=await u("ps",["-axo","pid=,ppid=,rss=,command="],{timeout:2500,maxBuffer:2097152});return l(a)}catch{let{stdout:a}=await u("ps",["-eo","pid=,ppid=,rss=,args="],{timeout:2500,maxBuffer:2097152});return l(a)}}async function o(a){let b;if(!a)return[];let c=(0,g.join)(a,".pi","kernel-lite","sessions"),d=[];try{b=await (0,f.readdir)(c,{withFileTypes:!0})}catch{return d}let e=Date.now()-6048e5;for(let i of b){let b;if(!i.isDirectory())continue;let j=(0,g.join)(c,i.name,"runs");try{b=await (0,f.readdir)(j,{withFileTypes:!0})}catch{continue}for(let c of b){if(!c.isDirectory())continue;let b=(0,g.join)(j,c.name,"manifest.json");try{var h;let[c,g]=await Promise.all([(0,f.stat)(b),(0,f.readFile)(b,"utf8")]);if(c.mtimeMs<e)continue;let i=JSON.parse(g);if("string"!=typeof i.ownerId||(h=i.language,"python"!==h&&"r"!==h))continue;d.push({cwd:a,sessionId:i.ownerId,language:i.language,updatedMs:c.mtimeMs})}catch{continue}}}return d.sort((a,b)=>b.updatedMs-a.updatedMs)}async function p(a={}){var b;let c=await n(),d=await Promise.all(c.flatMap(b=>{var c;let d=(c=b.command,/(^|\s|\/)R\s+--slave\s+--vanilla(\s|$)/.test(c)?"r":c.includes("WARMPLOT_KERNEL_RESPONSE")?/(^|\s)R(\s|$)|--slave|--vanilla/.test(c)?"r":/(^|\s)python[0-9.]*\s/i.test(c)||c.includes("python")?"python":null:null);return d?[m(b.pid).then(c=>({row:b,language:d,cwd:c?(0,g.resolve)(c):a.cwd?(0,g.resolve)(a.cwd):null}))]:[]})),e=[...new Set([...a.cwd?[(0,g.resolve)(a.cwd)]:[],...d.map(a=>a.cwd).filter(a=>!!a)])],f=(await Promise.all(e.map(a=>o(a)))).flat(),h=(b=d.map(b=>{let c=b.cwd?f.filter(a=>(0,g.resolve)(a.cwd)===b.cwd):f;return"r"!==b.language||c.some(a=>"r"===a.language)?{pid:b.row.pid,ppid:b.row.ppid,rssBytes:b.row.rssBytes,language:b.language,command:b.row.command,cwd:b.cwd,sessionId:function(a){if(a.sessionId){let b=a.owners.find(b=>b.sessionId===a.sessionId&&b.language===a.language);if(b)return b.sessionId}return a.owners.find(b=>b.language===a.language)?.sessionId??null}({cwd:b.cwd,language:b.language,sessionId:a.sessionId??null,owners:c}),lastActivity:null,source:"process"}:null}).filter(a=>null!==a),b.map(a=>{let b=f.find(b=>b.language===a.language&&b.sessionId===a.sessionId&&(!a.cwd||(0,g.resolve)(b.cwd)===a.cwd));return b?{...a,lastActivity:new Date(b.updatedMs).toISOString()}:{...a,lastActivity:null}})),i={};for(let a of h)a.cwd&&(i[a.cwd]=(i[a.cwd]??0)+a.rssBytes);return{totalBytes:h.reduce((a,b)=>a+b.rssBytes,0),currentSessionBytes:h.filter(b=>a.sessionId&&b.sessionId===a.sessionId).reduce((a,b)=>a+b.rssBytes,0),kernels:h,projects:i,generatedAt:new Date().toISOString(),precision:"process"}}async function q(a){let b=(0,j.A4)(a.sessionId);if(b?.isAlive()){let c=b.inner.getToolDefinition?.("kernel_plot_stop"),d=b.inner.extensionRunner?.createContext?.();if(c&&d)return void await c.execute(`annovibe-plot-stop-${Date.now()}`,a.language?{language:a.language}:{},void 0,void 0,d)}let c=(await p({sessionId:a.sessionId})).kernels.filter(b=>b.sessionId===a.sessionId&&(!a.language||b.language===a.language));if(0===c.length)throw Error("No matching plot kernel process was detected for this chat");await s(c)}async function r(a){if(!Number.isInteger(a.pid)||a.pid<=0)throw Error("Invalid plot kernel pid");let b=(await p({cwd:a.cwd??null,sessionId:a.sessionId??null})).kernels.find(b=>b.pid===a.pid&&(!a.language||b.language===a.language)&&(!a.cwd||!b.cwd||(0,g.resolve)(b.cwd)===(0,g.resolve)(a.cwd))&&(!a.sessionId||!b.sessionId||b.sessionId===a.sessionId));if(!b)throw Error("No matching plot kernel process was detected for this pid");if(0===await s([b]))throw Error("No matching plot kernel process was stopped")}async function s(a){let b=[...new Set(a.map(a=>a.pid))].filter(a=>a>0&&a!==process.pid);for(let a of b)try{process.kill(a,"SIGTERM")}catch{}for(let a of(await new Promise(a=>setTimeout(a,1500)),b))try{process.kill(a,0),process.kill(a,"SIGKILL")}catch{}return b.length}async function t(){let a=(0,i.cV)().plotIdleTimeoutMs;if(a<=0)return 0;let b=await p(),c=Date.now()-a,d=b.kernels.filter(a=>{if(!a.lastActivity)return!1;let b=new Date(a.lastActivity).getTime();return Number.isFinite(b)&&b<c});return 0===d.length?0:s(d)}d()}catch(a){d(a)}})},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},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,[2970,1813,5193,7831,402,6429],()=>b(b.s=13946));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=2007,a.ids=[2007],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")},7766:(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(79022),g=c(53571),h=a([f]);f=(h.then?(await h)():h)[0];let j="force-dynamic";async function i(a){try{await (0,f.Y1)();let{searchParams:b}=new URL(a.url),c=b.get("cwd"),d=b.get("sessionId"),g=await (0,f.tJ)({cwd:c,sessionId:d});return e.NextResponse.json(g)}catch(a){return(0,g.Q)(a,{context:"GET /api/plot-kernels/status",status:500,expose:!0})}}d()}catch(a){d(a)}})},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},28354:a=>{a.exports=require("util")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},53571:(a,b,c)=>{c.d(b,{Q:()=>f});var d=c(23211),e=c(74177);function f(a,b){let c=b.status??500,f=`[api] ${b.context} failed (${c}): ${(0,e.m)(a)}`;c>=500?console.error(f,a instanceof Error?a.stack??"":""):console.warn(f);let{error:g,detail:h}=(0,e.c)(a,{status:c,expose:b.expose,verbose:"1"===process.env.ANNOVIBE_VERBOSE_ERRORS});return d.NextResponse.json({error:g,...b.code?{code:b.code}:{},...h?{detail:h}:{},...b.extra},{status:c,...b.headers?{headers:b.headers}:{}})}},55511:a=>{a.exports=require("crypto")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},74177:(a,b,c)=>{c.d(b,{c:()=>f,m:()=>e});let d={400:"Request could not be processed",401:"Authentication required",403:"Request was rejected",404:"Not found",405:"Method not allowed",409:"Request conflicts with the current state",413:"Payload too large",415:"Unsupported media type",422:"Request could not be processed",429:"Too many requests"};function e(a){if(a instanceof Error)return a.message||a.name;if("string"==typeof a)return a;try{return JSON.stringify(a)??String(a)}catch{return String(a)}}function f(a,b){let c=e(a),f=d[b.status]??(b.status>=500?"Internal server error":"Request failed"),g=b.expose?c:f;return b.verbose&&c&&c!==g?{error:g,detail:c}:{error:g}}},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},79022:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Lm:()=>r,VJ:()=>q,Y1:()=>t,tJ:()=>p});var e=c(79646),f=c(79748),g=c(33873),h=c(28354),i=c(9774),j=c(56429),k=a([i,j]);[i,j]=k.then?(await k)():k;let u=(0,h.promisify)(e.execFile);function l(a){let b=[];for(let c of a.split(/\r?\n/)){let a=c.match(/^\s*(\d+)\s+(\d+)\s+(\d+)\s+([\s\S]+)$/);a&&b.push({pid:Number(a[1]),ppid:Number(a[2]),rssBytes:1024*Number(a[3]),command:a[4]})}return b}async function m(a){try{return(0,g.resolve)(await (0,f.readlink)(`/proc/${a}/cwd`))}catch{try{let{stdout:b}=await u("pwdx",[String(a)],{timeout:2500}),c=b.match(/^\d+:\s*(.+)\s*$/);return c?.[1]?(0,g.resolve)(c[1]):null}catch{return null}}}async function n(){try{let{stdout:a}=await u("ps",["-axo","pid=,ppid=,rss=,command="],{timeout:2500,maxBuffer:2097152});return l(a)}catch{let{stdout:a}=await u("ps",["-eo","pid=,ppid=,rss=,args="],{timeout:2500,maxBuffer:2097152});return l(a)}}async function o(a){let b;if(!a)return[];let c=(0,g.join)(a,".pi","kernel-lite","sessions"),d=[];try{b=await (0,f.readdir)(c,{withFileTypes:!0})}catch{return d}let e=Date.now()-6048e5;for(let i of b){let b;if(!i.isDirectory())continue;let j=(0,g.join)(c,i.name,"runs");try{b=await (0,f.readdir)(j,{withFileTypes:!0})}catch{continue}for(let c of b){if(!c.isDirectory())continue;let b=(0,g.join)(j,c.name,"manifest.json");try{var h;let[c,g]=await Promise.all([(0,f.stat)(b),(0,f.readFile)(b,"utf8")]);if(c.mtimeMs<e)continue;let i=JSON.parse(g);if("string"!=typeof i.ownerId||(h=i.language,"python"!==h&&"r"!==h))continue;d.push({cwd:a,sessionId:i.ownerId,language:i.language,updatedMs:c.mtimeMs})}catch{continue}}}return d.sort((a,b)=>b.updatedMs-a.updatedMs)}async function p(a={}){var b;let c=await n(),d=await Promise.all(c.flatMap(b=>{var c;let d=(c=b.command,/(^|\s|\/)R\s+--slave\s+--vanilla(\s|$)/.test(c)?"r":c.includes("WARMPLOT_KERNEL_RESPONSE")?/(^|\s)R(\s|$)|--slave|--vanilla/.test(c)?"r":/(^|\s)python[0-9.]*\s/i.test(c)||c.includes("python")?"python":null:null);return d?[m(b.pid).then(c=>({row:b,language:d,cwd:c?(0,g.resolve)(c):a.cwd?(0,g.resolve)(a.cwd):null}))]:[]})),e=[...new Set([...a.cwd?[(0,g.resolve)(a.cwd)]:[],...d.map(a=>a.cwd).filter(a=>!!a)])],f=(await Promise.all(e.map(a=>o(a)))).flat(),h=(b=d.map(b=>{let c=b.cwd?f.filter(a=>(0,g.resolve)(a.cwd)===b.cwd):f;return"r"!==b.language||c.some(a=>"r"===a.language)?{pid:b.row.pid,ppid:b.row.ppid,rssBytes:b.row.rssBytes,language:b.language,command:b.row.command,cwd:b.cwd,sessionId:function(a){if(a.sessionId){let b=a.owners.find(b=>b.sessionId===a.sessionId&&b.language===a.language);if(b)return b.sessionId}return a.owners.find(b=>b.language===a.language)?.sessionId??null}({cwd:b.cwd,language:b.language,sessionId:a.sessionId??null,owners:c}),lastActivity:null,source:"process"}:null}).filter(a=>null!==a),b.map(a=>{let b=f.find(b=>b.language===a.language&&b.sessionId===a.sessionId&&(!a.cwd||(0,g.resolve)(b.cwd)===a.cwd));return b?{...a,lastActivity:new Date(b.updatedMs).toISOString()}:{...a,lastActivity:null}})),i={};for(let a of h)a.cwd&&(i[a.cwd]=(i[a.cwd]??0)+a.rssBytes);return{totalBytes:h.reduce((a,b)=>a+b.rssBytes,0),currentSessionBytes:h.filter(b=>a.sessionId&&b.sessionId===a.sessionId).reduce((a,b)=>a+b.rssBytes,0),kernels:h,projects:i,generatedAt:new Date().toISOString(),precision:"process"}}async function q(a){let b=(0,j.A4)(a.sessionId);if(b?.isAlive()){let c=b.inner.getToolDefinition?.("kernel_plot_stop"),d=b.inner.extensionRunner?.createContext?.();if(c&&d)return void await c.execute(`annovibe-plot-stop-${Date.now()}`,a.language?{language:a.language}:{},void 0,void 0,d)}let c=(await p({sessionId:a.sessionId})).kernels.filter(b=>b.sessionId===a.sessionId&&(!a.language||b.language===a.language));if(0===c.length)throw Error("No matching plot kernel process was detected for this chat");await s(c)}async function r(a){if(!Number.isInteger(a.pid)||a.pid<=0)throw Error("Invalid plot kernel pid");let b=(await p({cwd:a.cwd??null,sessionId:a.sessionId??null})).kernels.find(b=>b.pid===a.pid&&(!a.language||b.language===a.language)&&(!a.cwd||!b.cwd||(0,g.resolve)(b.cwd)===(0,g.resolve)(a.cwd))&&(!a.sessionId||!b.sessionId||b.sessionId===a.sessionId));if(!b)throw Error("No matching plot kernel process was detected for this pid");if(0===await s([b]))throw Error("No matching plot kernel process was stopped")}async function s(a){let b=[...new Set(a.map(a=>a.pid))].filter(a=>a>0&&a!==process.pid);for(let a of b)try{process.kill(a,"SIGTERM")}catch{}for(let a of(await new Promise(a=>setTimeout(a,1500)),b))try{process.kill(a,0),process.kill(a,"SIGKILL")}catch{}return b.length}async function t(){let a=(0,i.cV)().plotIdleTimeoutMs;if(a<=0)return 0;let b=await p(),c=Date.now()-a,d=b.kernels.filter(a=>{if(!a.lastActivity)return!1;let b=new Date(a.lastActivity).getTime();return Number.isFinite(b)&&b<c});return 0===d.length?0:s(d)}d()}catch(a){d(a)}})},79456:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/plot-kernels/status/route",pathname:"/api/plot-kernels/status",filename:"route",bundlePath:"app/api/plot-kernels/status/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/annovibe/annovibe/app/api/plot-kernels/status/route.ts",nextConfigOutput:"",userland:()=>c(7766),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plot-kernels/status/route";"/index"===d&&(d="/");let{instrumentation:e}=await v.ensureInstrumentation(a,{deferSpans:!0});return v.traceRequest(a,{tracer:(0,h.getTracer)(),spanName:`${a.method||"GET"} ${d}`,httpTarget:a.url,instrumentation:e},(e,f)=>B(a,b,c,d,!1,e,f))}async function B(a,b,c,d,f,w,x){let y=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:f});if(!y)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:z,deploymentId:A,params:B,nextConfig:C,parsedUrl:D,isDraftMode:E,prerenderManifest:F,routerServerContext:G,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,resolvedPathname:J,clientReferenceManifest:K,serverActionsManifest:L,previewProps:M}=y,N=(0,j.normalizeAppPath)(d),O=!!F.routes[J]&&(v.isDev||(0,t.isRouteCacheOwner)(J,v.cacheOwner,F.routes[J])),P=!!(F.dynamicRoutes[N]||O),Q=async()=>((null==G?void 0:G.render404)?await G.render404(a,b,D,!1):b.end("This page could not be found"),null);if(P&&!E){let a=F.dynamicRoutes[N];if(a&&!1===a.fallback&&!O){if(C.adapterPath)return await Q();throw new s.NoFallbackError}}let R=null;!P||v.isDev||E||(R="/index"===(R=J)?"/":R),L&&K&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:K,serverActionsManifest:L});let S=a.method||"GET",T=(0,h.getTracer)(),U=!!(null==G?void 0:G.isWrappedByNextServer),V=!!(0,g.getRequestMeta)(a,"minimalMode"),W=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,C,M,F,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:B,previewProps:M,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:E,incrementalCache:W,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:z,deploymentId:A}},Y=new k.NodeNextRequest(a),Z=new k.NodeNextResponse(b),$=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(b)),_=async({previousCacheEntry:e})=>{try{if(!V&&H&&I&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===R?await v.handle($,X):await v.prerender($,X);a.fetchMetrics=X.renderOpts.fetchMetrics;let f=X.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=X.renderOpts.collectedTags;if(!P)return await (0,o.I)(Y,Z,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,e=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?C.expireTime:void 0:X.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==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),b}},aa=async d=>{try{var f,g;let d=await v.handleResponse({req:a,nextConfig:C,cacheKey:R,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:M,prerenderManifest:F,isRoutePPREnabled:!1,isOnDemandRevalidate:H,revalidateOnlyGenerated:I,responseGenerator:_,waitUntil:c.waitUntil,isMinimalMode:V});if(null!==d&&"error"in d)throw d.error;if(!P)return;if((null==d||null==(f=d.value)?void 0:f.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(g=d.value)?void 0:g.kind}`);V||b.setHeader("x-nextjs-cache",H?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);V&&P||h.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(Y,Z,new Response(d.value.body,{headers:h,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==R,isOnDemandRevalidate:H})},!1,G),P)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(Y,Z,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=T.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||N,f=`${S} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":f}),d.updateName(f),x&&x!==d&&(x.setAttribute("http.route",e),x.updateName(f))})()}};U||void 0===a.url||null==w||w.setAttribute("http.target",a.url),await aa(w)}},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},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,[2970,1813,5193,7831,402,6429],()=>b(b.s=79456));module.exports=c})();