@claudeye/linux-x64 1.0.0-beta.6

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 (1466) hide show
  1. package/assets/public/exospheresmall-dark.png +0 -0
  2. package/assets/public/exospheresmall.png +0 -0
  3. package/assets/standalone/.next/BUILD_ID +1 -0
  4. package/assets/standalone/.next/app-path-routes-manifest.json +16 -0
  5. package/assets/standalone/.next/build-manifest.json +21 -0
  6. package/assets/standalone/.next/package.json +1 -0
  7. package/assets/standalone/.next/prerender-manifest.json +114 -0
  8. package/assets/standalone/.next/required-server-files.json +321 -0
  9. package/assets/standalone/.next/routes-manifest.json +139 -0
  10. package/assets/standalone/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  11. package/assets/standalone/.next/server/app/_global-error/page/build-manifest.json +18 -0
  12. package/assets/standalone/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  13. package/assets/standalone/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  14. package/assets/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  15. package/assets/standalone/.next/server/app/_global-error/page.js +10 -0
  16. package/assets/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +2 -0
  17. package/assets/standalone/.next/server/app/_global-error.html +2 -0
  18. package/assets/standalone/.next/server/app/_global-error.meta +15 -0
  19. package/assets/standalone/.next/server/app/_global-error.rsc +12 -0
  20. package/assets/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
  21. package/assets/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +12 -0
  22. package/assets/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
  23. package/assets/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +4 -0
  24. package/assets/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  25. package/assets/standalone/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  26. package/assets/standalone/.next/server/app/_not-found/page/build-manifest.json +18 -0
  27. package/assets/standalone/.next/server/app/_not-found/page/next-font-manifest.json +6 -0
  28. package/assets/standalone/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  29. package/assets/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +20 -0
  30. package/assets/standalone/.next/server/app/_not-found/page.js +19 -0
  31. package/assets/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +2 -0
  32. package/assets/standalone/.next/server/app/_not-found.html +30 -0
  33. package/assets/standalone/.next/server/app/_not-found.meta +16 -0
  34. package/assets/standalone/.next/server/app/_not-found.rsc +23 -0
  35. package/assets/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +23 -0
  36. package/assets/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
  37. package/assets/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +14 -0
  38. package/assets/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  39. package/assets/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +4 -0
  40. package/assets/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
  41. package/assets/standalone/.next/server/app/api/completed-history/route/app-paths-manifest.json +3 -0
  42. package/assets/standalone/.next/server/app/api/completed-history/route/build-manifest.json +11 -0
  43. package/assets/standalone/.next/server/app/api/completed-history/route/server-reference-manifest.json +4 -0
  44. package/assets/standalone/.next/server/app/api/completed-history/route.js +9 -0
  45. package/assets/standalone/.next/server/app/api/completed-history/route_client-reference-manifest.js +2 -0
  46. package/assets/standalone/.next/server/app/api/download/[project]/[session]/route/app-paths-manifest.json +3 -0
  47. package/assets/standalone/.next/server/app/api/download/[project]/[session]/route/build-manifest.json +11 -0
  48. package/assets/standalone/.next/server/app/api/download/[project]/[session]/route/server-reference-manifest.json +4 -0
  49. package/assets/standalone/.next/server/app/api/download/[project]/[session]/route.js +7 -0
  50. package/assets/standalone/.next/server/app/api/download/[project]/[session]/route_client-reference-manifest.js +2 -0
  51. package/assets/standalone/.next/server/app/api/queue-item/route/app-paths-manifest.json +3 -0
  52. package/assets/standalone/.next/server/app/api/queue-item/route/build-manifest.json +11 -0
  53. package/assets/standalone/.next/server/app/api/queue-item/route/server-reference-manifest.json +4 -0
  54. package/assets/standalone/.next/server/app/api/queue-item/route.js +10 -0
  55. package/assets/standalone/.next/server/app/api/queue-item/route_client-reference-manifest.js +2 -0
  56. package/assets/standalone/.next/server/app/api/queue-status/route/app-paths-manifest.json +3 -0
  57. package/assets/standalone/.next/server/app/api/queue-status/route/build-manifest.json +11 -0
  58. package/assets/standalone/.next/server/app/api/queue-status/route/server-reference-manifest.json +4 -0
  59. package/assets/standalone/.next/server/app/api/queue-status/route.js +9 -0
  60. package/assets/standalone/.next/server/app/api/queue-status/route_client-reference-manifest.js +2 -0
  61. package/assets/standalone/.next/server/app/dashboard/[viewName]/page/app-paths-manifest.json +3 -0
  62. package/assets/standalone/.next/server/app/dashboard/[viewName]/page/build-manifest.json +18 -0
  63. package/assets/standalone/.next/server/app/dashboard/[viewName]/page/next-font-manifest.json +6 -0
  64. package/assets/standalone/.next/server/app/dashboard/[viewName]/page/react-loadable-manifest.json +1 -0
  65. package/assets/standalone/.next/server/app/dashboard/[viewName]/page/server-reference-manifest.json +65 -0
  66. package/assets/standalone/.next/server/app/dashboard/[viewName]/page.js +27 -0
  67. package/assets/standalone/.next/server/app/dashboard/[viewName]/page_client-reference-manifest.js +2 -0
  68. package/assets/standalone/.next/server/app/dashboard/page/app-paths-manifest.json +3 -0
  69. package/assets/standalone/.next/server/app/dashboard/page/build-manifest.json +18 -0
  70. package/assets/standalone/.next/server/app/dashboard/page/next-font-manifest.json +6 -0
  71. package/assets/standalone/.next/server/app/dashboard/page/react-loadable-manifest.json +1 -0
  72. package/assets/standalone/.next/server/app/dashboard/page/server-reference-manifest.json +65 -0
  73. package/assets/standalone/.next/server/app/dashboard/page.js +25 -0
  74. package/assets/standalone/.next/server/app/dashboard/page_client-reference-manifest.js +2 -0
  75. package/assets/standalone/.next/server/app/icon.png/route/app-paths-manifest.json +3 -0
  76. package/assets/standalone/.next/server/app/icon.png/route/build-manifest.json +11 -0
  77. package/assets/standalone/.next/server/app/icon.png/route.js +8 -0
  78. package/assets/standalone/.next/server/app/icon.png.body +0 -0
  79. package/assets/standalone/.next/server/app/icon.png.meta +1 -0
  80. package/assets/standalone/.next/server/app/login/page/app-paths-manifest.json +3 -0
  81. package/assets/standalone/.next/server/app/login/page/build-manifest.json +18 -0
  82. package/assets/standalone/.next/server/app/login/page/next-font-manifest.json +6 -0
  83. package/assets/standalone/.next/server/app/login/page/react-loadable-manifest.json +1 -0
  84. package/assets/standalone/.next/server/app/login/page/server-reference-manifest.json +35 -0
  85. package/assets/standalone/.next/server/app/login/page.js +21 -0
  86. package/assets/standalone/.next/server/app/login/page_client-reference-manifest.js +2 -0
  87. package/assets/standalone/.next/server/app/login.html +30 -0
  88. package/assets/standalone/.next/server/app/login.meta +15 -0
  89. package/assets/standalone/.next/server/app/login.rsc +24 -0
  90. package/assets/standalone/.next/server/app/login.segments/_full.segment.rsc +24 -0
  91. package/assets/standalone/.next/server/app/login.segments/_head.segment.rsc +6 -0
  92. package/assets/standalone/.next/server/app/login.segments/_index.segment.rsc +14 -0
  93. package/assets/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -0
  94. package/assets/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +9 -0
  95. package/assets/standalone/.next/server/app/login.segments/login.segment.rsc +4 -0
  96. package/assets/standalone/.next/server/app/page/app-paths-manifest.json +3 -0
  97. package/assets/standalone/.next/server/app/page/build-manifest.json +18 -0
  98. package/assets/standalone/.next/server/app/page/next-font-manifest.json +6 -0
  99. package/assets/standalone/.next/server/app/page/react-loadable-manifest.json +1 -0
  100. package/assets/standalone/.next/server/app/page/server-reference-manifest.json +20 -0
  101. package/assets/standalone/.next/server/app/page.js +21 -0
  102. package/assets/standalone/.next/server/app/page_client-reference-manifest.js +2 -0
  103. package/assets/standalone/.next/server/app/project/[name]/page/app-paths-manifest.json +3 -0
  104. package/assets/standalone/.next/server/app/project/[name]/page/build-manifest.json +18 -0
  105. package/assets/standalone/.next/server/app/project/[name]/page/next-font-manifest.json +6 -0
  106. package/assets/standalone/.next/server/app/project/[name]/page/react-loadable-manifest.json +1 -0
  107. package/assets/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +20 -0
  108. package/assets/standalone/.next/server/app/project/[name]/page.js +24 -0
  109. package/assets/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +2 -0
  110. package/assets/standalone/.next/server/app/project/[name]/session/[sessionId]/page/app-paths-manifest.json +3 -0
  111. package/assets/standalone/.next/server/app/project/[name]/session/[sessionId]/page/build-manifest.json +18 -0
  112. package/assets/standalone/.next/server/app/project/[name]/session/[sessionId]/page/next-font-manifest.json +6 -0
  113. package/assets/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +9 -0
  114. package/assets/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +125 -0
  115. package/assets/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js +27 -0
  116. package/assets/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +2 -0
  117. package/assets/standalone/.next/server/app/queue/page/app-paths-manifest.json +3 -0
  118. package/assets/standalone/.next/server/app/queue/page/build-manifest.json +18 -0
  119. package/assets/standalone/.next/server/app/queue/page/next-font-manifest.json +6 -0
  120. package/assets/standalone/.next/server/app/queue/page/react-loadable-manifest.json +1 -0
  121. package/assets/standalone/.next/server/app/queue/page/server-reference-manifest.json +50 -0
  122. package/assets/standalone/.next/server/app/queue/page.js +23 -0
  123. package/assets/standalone/.next/server/app/queue/page_client-reference-manifest.js +2 -0
  124. package/assets/standalone/.next/server/app-paths-manifest.json +16 -0
  125. package/assets/standalone/.next/server/chunks/[externals]_next_dist_86eb7852._.js +3 -0
  126. package/assets/standalone/.next/server/chunks/[externals]_next_dist_db0236a7._.js +3 -0
  127. package/assets/standalone/.next/server/chunks/[root-of-the-server]__2074634c._.js +3 -0
  128. package/assets/standalone/.next/server/chunks/[root-of-the-server]__32353857._.js +3 -0
  129. package/assets/standalone/.next/server/chunks/[root-of-the-server]__57118d1a._.js +3 -0
  130. package/assets/standalone/.next/server/chunks/[root-of-the-server]__8af5473b._.js +3 -0
  131. package/assets/standalone/.next/server/chunks/[root-of-the-server]__93f96cbe._.js +3 -0
  132. package/assets/standalone/.next/server/chunks/[root-of-the-server]__a0230ba0._.js +3 -0
  133. package/assets/standalone/.next/server/chunks/[root-of-the-server]__a53c6c2f._.js +3 -0
  134. package/assets/standalone/.next/server/chunks/[root-of-the-server]__b18c2f99._.js +4 -0
  135. package/assets/standalone/.next/server/chunks/[root-of-the-server]__bf0c3d33._.js +28 -0
  136. package/assets/standalone/.next/server/chunks/[root-of-the-server]__d7355d04._.js +18 -0
  137. package/assets/standalone/.next/server/chunks/[turbopack]_runtime.js +795 -0
  138. package/assets/standalone/.next/server/chunks/_5ab69e50._.js +3 -0
  139. package/assets/standalone/.next/server/chunks/_63727770._.js +3 -0
  140. package/assets/standalone/.next/server/chunks/_6a9d92e6._.js +3 -0
  141. package/assets/standalone/.next/server/chunks/_7cb7a702._.js +3 -0
  142. package/assets/standalone/.next/server/chunks/_d3c87a9f._.js +4 -0
  143. package/assets/standalone/.next/server/chunks/_fb07f1d4._.js +4 -0
  144. package/assets/standalone/.next/server/chunks/_next-internal_server_app_api_completed-history_route_actions_0de2026b.js +3 -0
  145. package/assets/standalone/.next/server/chunks/_next-internal_server_app_api_queue-item_route_actions_cbc26b12.js +3 -0
  146. package/assets/standalone/.next/server/chunks/_next-internal_server_app_api_queue-status_route_actions_6b153b6b.js +3 -0
  147. package/assets/standalone/.next/server/chunks/_next-internal_server_app_icon_png_route_actions_fa3562e2.js +3 -0
  148. package/assets/standalone/.next/server/chunks/ce889_server_app_api_download_[project]_[session]_route_actions_bbdd823f.js +3 -0
  149. package/assets/standalone/.next/server/chunks/lib_6cff0ca5._.js +3 -0
  150. package/assets/standalone/.next/server/chunks/lib_74f62736._.js +3 -0
  151. package/assets/standalone/.next/server/chunks/lib_auth_ts_22c348a0._.js +3 -0
  152. package/assets/standalone/.next/server/chunks/lib_auth_ts_cfe39263._.js +3 -0
  153. package/assets/standalone/.next/server/chunks/lib_eval-queue_ts_32d171f8._.js +3 -0
  154. package/assets/standalone/.next/server/chunks/lib_eval-queue_ts_642b3543._.js +3 -0
  155. package/assets/standalone/.next/server/chunks/lib_evals_33da2596._.js +3 -0
  156. package/assets/standalone/.next/server/chunks/lib_evals_8f3357ca._.js +3 -0
  157. package/assets/standalone/.next/server/chunks/node_modules_next_286d3fa3._.js +6 -0
  158. package/assets/standalone/.next/server/chunks/node_modules_next_dist_10532d00._.js +6 -0
  159. package/assets/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_64175717.js +3 -0
  160. package/assets/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7a66d362.js +3 -0
  161. package/assets/standalone/.next/server/chunks/node_modules_next_f5199d09._.js +3 -0
  162. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__0530a7f6._.js +3 -0
  163. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b2008e0._.js +3 -0
  164. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b4b7267._.js +3 -0
  165. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__1690ee0d._.js +10 -0
  166. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__35a929f8._.js +3 -0
  167. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__3bc7ad0a._.js +3 -0
  168. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__4532b0f3._.js +3 -0
  169. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__645dade4._.js +3 -0
  170. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__6a70107b._.js +3 -0
  171. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__7595cbf0._.js +3 -0
  172. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__798114ce._.js +3 -0
  173. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__95fd3969._.js +3 -0
  174. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__9833974c._.js +3 -0
  175. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__a457c799._.js +3 -0
  176. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__cb11b5eb._.js +4 -0
  177. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__cf373db0._.js +3 -0
  178. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__da7d7793._.js +3 -0
  179. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__e2e52c6e._.js +3 -0
  180. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__eee26df8._.js +3 -0
  181. package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__f758248a._.js +3 -0
  182. package/assets/standalone/.next/server/chunks/ssr/[turbopack]_runtime.js +795 -0
  183. package/assets/standalone/.next/server/chunks/ssr/_134e1a0e._.js +4 -0
  184. package/assets/standalone/.next/server/chunks/ssr/_1d335924._.js +3 -0
  185. package/assets/standalone/.next/server/chunks/ssr/_1e78350c._.js +3 -0
  186. package/assets/standalone/.next/server/chunks/ssr/_200ed8e0._.js +3 -0
  187. package/assets/standalone/.next/server/chunks/ssr/_22a08fac._.js +4 -0
  188. package/assets/standalone/.next/server/chunks/ssr/_265df3ed._.js +3 -0
  189. package/assets/standalone/.next/server/chunks/ssr/_27192124._.js +32 -0
  190. package/assets/standalone/.next/server/chunks/ssr/_34abf048._.js +4 -0
  191. package/assets/standalone/.next/server/chunks/ssr/_3e6c3cad._.js +4 -0
  192. package/assets/standalone/.next/server/chunks/ssr/_3f1ddd0f._.js +4 -0
  193. package/assets/standalone/.next/server/chunks/ssr/_40b9779b._.js +4 -0
  194. package/assets/standalone/.next/server/chunks/ssr/_472a5ae2._.js +4 -0
  195. package/assets/standalone/.next/server/chunks/ssr/_4b5e7c6a._.js +4 -0
  196. package/assets/standalone/.next/server/chunks/ssr/_76ab933f._.js +3 -0
  197. package/assets/standalone/.next/server/chunks/ssr/_87e025a1._.js +3 -0
  198. package/assets/standalone/.next/server/chunks/ssr/_a13bff7c._.js +5 -0
  199. package/assets/standalone/.next/server/chunks/ssr/_ab8d6b5e._.js +4 -0
  200. package/assets/standalone/.next/server/chunks/ssr/_bcadf6ce._.js +4 -0
  201. package/assets/standalone/.next/server/chunks/ssr/_cce5033e._.js +4 -0
  202. package/assets/standalone/.next/server/chunks/ssr/_d7141734._.js +4 -0
  203. package/assets/standalone/.next/server/chunks/ssr/_d982b289._.js +4 -0
  204. package/assets/standalone/.next/server/chunks/ssr/_dec9649b._.js +4 -0
  205. package/assets/standalone/.next/server/chunks/ssr/_f7ec0663._.js +4 -0
  206. package/assets/standalone/.next/server/chunks/ssr/_fd9b1ff7._.js +3 -0
  207. package/assets/standalone/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_75761787.js +3 -0
  208. package/assets/standalone/.next/server/chunks/ssr/app_1b1faab9._.js +3 -0
  209. package/assets/standalone/.next/server/chunks/ssr/app_1f418324._.js +3 -0
  210. package/assets/standalone/.next/server/chunks/ssr/app_2b7e6da0._.js +3 -0
  211. package/assets/standalone/.next/server/chunks/ssr/app_actions_compute-dashboard_ts_fc151dbb._.js +3 -0
  212. package/assets/standalone/.next/server/chunks/ssr/app_b23818c3._.js +3 -0
  213. package/assets/standalone/.next/server/chunks/ssr/app_dashboard_[viewName]_error_tsx_1abd8d36._.js +3 -0
  214. package/assets/standalone/.next/server/chunks/ssr/app_dashboard_[viewName]_loading_tsx_22dfcb19._.js +3 -0
  215. package/assets/standalone/.next/server/chunks/ssr/app_dashboard_error_tsx_9bf3f9ca._.js +3 -0
  216. package/assets/standalone/.next/server/chunks/ssr/app_dashboard_loading_tsx_05176847._.js +3 -0
  217. package/assets/standalone/.next/server/chunks/ssr/app_e744e06a._.js +3 -0
  218. package/assets/standalone/.next/server/chunks/ssr/app_error_tsx_5275429f._.js +3 -0
  219. package/assets/standalone/.next/server/chunks/ssr/app_fc7a5b13._.js +3 -0
  220. package/assets/standalone/.next/server/chunks/ssr/app_loading_tsx_b05711b0._.js +3 -0
  221. package/assets/standalone/.next/server/chunks/ssr/app_login_page_tsx_ccc0019b._.js +3 -0
  222. package/assets/standalone/.next/server/chunks/ssr/app_project_[name]_error_tsx_34bf44cf._.js +3 -0
  223. package/assets/standalone/.next/server/chunks/ssr/app_project_[name]_loading_tsx_cdac5755._.js +3 -0
  224. package/assets/standalone/.next/server/chunks/ssr/app_project_[name]_session_[sessionId]_error_tsx_89602adf._.js +3 -0
  225. package/assets/standalone/.next/server/chunks/ssr/app_project_[name]_session_[sessionId]_loading_tsx_2afb91a2._.js +3 -0
  226. package/assets/standalone/.next/server/chunks/ssr/app_queue_queue-client_tsx_45f040f7._.js +3 -0
  227. package/assets/standalone/.next/server/chunks/ssr/components_navbar_tsx_e9e361f1._.js +3 -0
  228. package/assets/standalone/.next/server/chunks/ssr/lib_cache_index_ts_35dfbe77._.js +3 -0
  229. package/assets/standalone/.next/server/chunks/ssr/lib_eval-queue_ts_e2258485._.js +3 -0
  230. package/assets/standalone/.next/server/chunks/ssr/lib_utils_ts_2428e286._.js +3 -0
  231. package/assets/standalone/.next/server/chunks/ssr/node_modules_154d37b3._.js +3 -0
  232. package/assets/standalone/.next/server/chunks/ssr/node_modules_next_99977b66._.js +3 -0
  233. package/assets/standalone/.next/server/chunks/ssr/node_modules_next_dist_08570d7f._.js +4 -0
  234. package/assets/standalone/.next/server/chunks/ssr/node_modules_next_dist_274ac3eb._.js +3 -0
  235. package/assets/standalone/.next/server/chunks/ssr/node_modules_next_dist_2df23979._.js +3 -0
  236. package/assets/standalone/.next/server/chunks/ssr/node_modules_next_dist_65e60196._.js +3 -0
  237. package/assets/standalone/.next/server/chunks/ssr/node_modules_next_dist_981dc6eb._.js +6 -0
  238. package/assets/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_9774470f._.js +3 -0
  239. package/assets/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_45780354.js +3 -0
  240. package/assets/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_ece394eb.js +3 -0
  241. package/assets/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_15817684.js +3 -0
  242. package/assets/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_e3d6f561.js +4 -0
  243. package/assets/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js +6 -0
  244. package/assets/standalone/.next/server/chunks/ssr/node_modules_next_f2865b38._.js +6 -0
  245. package/assets/standalone/.next/server/functions-config-manifest.json +14 -0
  246. package/assets/standalone/.next/server/instrumentation.js +4 -0
  247. package/assets/standalone/.next/server/middleware-build-manifest.js +22 -0
  248. package/assets/standalone/.next/server/middleware-manifest.json +6 -0
  249. package/assets/standalone/.next/server/middleware.js +5 -0
  250. package/assets/standalone/.next/server/next-font-manifest.js +1 -0
  251. package/assets/standalone/.next/server/next-font-manifest.json +6 -0
  252. package/assets/standalone/.next/server/pages/404.html +30 -0
  253. package/assets/standalone/.next/server/pages/500.html +2 -0
  254. package/assets/standalone/.next/server/pages-manifest.json +4 -0
  255. package/assets/standalone/.next/server/server-reference-manifest.js +1 -0
  256. package/assets/standalone/.next/server/server-reference-manifest.json +286 -0
  257. package/assets/standalone/.next/static/13xAqFfyzq5c7ZCSmzH2c/_buildManifest.js +11 -0
  258. package/assets/standalone/.next/static/13xAqFfyzq5c7ZCSmzH2c/_clientMiddlewareManifest.json +6 -0
  259. package/assets/standalone/.next/static/13xAqFfyzq5c7ZCSmzH2c/_ssgManifest.js +1 -0
  260. package/assets/standalone/.next/static/chunks/05525d53710bbee3.js +1 -0
  261. package/assets/standalone/.next/static/chunks/0fc2a7130f591324.js +1 -0
  262. package/assets/standalone/.next/static/chunks/37a97314f1b17b22.js +1 -0
  263. package/assets/standalone/.next/static/chunks/45475654848dd556.js +1 -0
  264. package/assets/standalone/.next/static/chunks/6049e484c84c341e.js +1 -0
  265. package/assets/standalone/.next/static/chunks/7a046386767828e7.js +4 -0
  266. package/assets/standalone/.next/static/chunks/7fd5fd158118e843.js +3 -0
  267. package/assets/standalone/.next/static/chunks/84a96b6d1f18f7b2.js +1 -0
  268. package/assets/standalone/.next/static/chunks/9609f2e5c7c76a3e.js +1 -0
  269. package/assets/standalone/.next/static/chunks/97c295191089a1c2.js +1 -0
  270. package/assets/standalone/.next/static/chunks/a6dad97d9634a72d.js +1 -0
  271. package/assets/standalone/.next/static/chunks/aee6c7720838f8a2.js +1 -0
  272. package/assets/standalone/.next/static/chunks/b7a9e6ef231e2f28.js +1 -0
  273. package/assets/standalone/.next/static/chunks/c070cdf14f593154.js +1 -0
  274. package/assets/standalone/.next/static/chunks/cb4c7d89be14d280.js +1 -0
  275. package/assets/standalone/.next/static/chunks/d2be314c3ece3fbe.js +1 -0
  276. package/assets/standalone/.next/static/chunks/d61413cf4f8738b1.js +1 -0
  277. package/assets/standalone/.next/static/chunks/dbd7b157081058a6.js +1 -0
  278. package/assets/standalone/.next/static/chunks/e4aca2c4ff14a715.js +1 -0
  279. package/assets/standalone/.next/static/chunks/e62e0e2c8b367c21.css +1 -0
  280. package/assets/standalone/.next/static/chunks/ed79e3f8aab4a1ea.js +2 -0
  281. package/assets/standalone/.next/static/chunks/ed89f0fc8882380f.js +1 -0
  282. package/assets/standalone/.next/static/chunks/f091501564eb2ea3.js +4 -0
  283. package/assets/standalone/.next/static/chunks/ff1a16fafef87110.js +1 -0
  284. package/assets/standalone/.next/static/chunks/turbopack-3c0c6df5293bf0da.js +4 -0
  285. package/assets/standalone/.next/static/media/icon.112bf269.png +0 -0
  286. package/assets/standalone/CONTRIBUTING.md +84 -0
  287. package/assets/standalone/LICENSE +42 -0
  288. package/assets/standalone/README.md +2111 -0
  289. package/assets/standalone/node_modules/@next/env/dist/index.js +1 -0
  290. package/assets/standalone/node_modules/@next/env/package.json +36 -0
  291. package/assets/standalone/node_modules/@swc/helpers/cjs/_interop_require_default.cjs +6 -0
  292. package/assets/standalone/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs +38 -0
  293. package/assets/standalone/node_modules/@swc/helpers/package.json +471 -0
  294. package/assets/standalone/node_modules/client-only/index.js +0 -0
  295. package/assets/standalone/node_modules/client-only/package.json +19 -0
  296. package/assets/standalone/node_modules/next/dist/build/adapter/build-complete.js +993 -0
  297. package/assets/standalone/node_modules/next/dist/build/after-production-compile.js +95 -0
  298. package/assets/standalone/node_modules/next/dist/build/analysis/extract-const-value.js +205 -0
  299. package/assets/standalone/node_modules/next/dist/build/analysis/get-page-static-info.js +601 -0
  300. package/assets/standalone/node_modules/next/dist/build/analysis/parse-module.js +20 -0
  301. package/assets/standalone/node_modules/next/dist/build/analyze/index.js +242 -0
  302. package/assets/standalone/node_modules/next/dist/build/babel/loader/get-config.js +429 -0
  303. package/assets/standalone/node_modules/next/dist/build/babel/loader/index.js +56 -0
  304. package/assets/standalone/node_modules/next/dist/build/babel/loader/transform.js +103 -0
  305. package/assets/standalone/node_modules/next/dist/build/babel/loader/util.js +20 -0
  306. package/assets/standalone/node_modules/next/dist/build/babel/plugins/commonjs.js +42 -0
  307. package/assets/standalone/node_modules/next/dist/build/babel/plugins/jsx-pragma.js +74 -0
  308. package/assets/standalone/node_modules/next/dist/build/babel/plugins/next-font-unsupported.js +36 -0
  309. package/assets/standalone/node_modules/next/dist/build/babel/plugins/next-page-config.js +104 -0
  310. package/assets/standalone/node_modules/next/dist/build/babel/plugins/next-page-disallow-re-export-all-exports.js +29 -0
  311. package/assets/standalone/node_modules/next/dist/build/babel/plugins/next-ssg-transform.js +345 -0
  312. package/assets/standalone/node_modules/next/dist/build/babel/plugins/optimize-hook-destructuring.js +60 -0
  313. package/assets/standalone/node_modules/next/dist/build/babel/plugins/react-loadable-plugin.js +145 -0
  314. package/assets/standalone/node_modules/next/dist/build/babel/preset.js +250 -0
  315. package/assets/standalone/node_modules/next/dist/build/build-context.js +58 -0
  316. package/assets/standalone/node_modules/next/dist/build/collect-build-traces.js +536 -0
  317. package/assets/standalone/node_modules/next/dist/build/compiler.js +88 -0
  318. package/assets/standalone/node_modules/next/dist/build/create-compiler-aliases.js +436 -0
  319. package/assets/standalone/node_modules/next/dist/build/define-env.js +237 -0
  320. package/assets/standalone/node_modules/next/dist/build/duration-to-string.js +99 -0
  321. package/assets/standalone/node_modules/next/dist/build/entries.js +798 -0
  322. package/assets/standalone/node_modules/next/dist/build/generate-build-id.js +31 -0
  323. package/assets/standalone/node_modules/next/dist/build/generate-routes-manifest.js +91 -0
  324. package/assets/standalone/node_modules/next/dist/build/get-babel-config-file.js +35 -0
  325. package/assets/standalone/node_modules/next/dist/build/get-babel-loader-config.js +109 -0
  326. package/assets/standalone/node_modules/next/dist/build/get-static-info-including-layouts.js +81 -0
  327. package/assets/standalone/node_modules/next/dist/build/handle-entrypoints.js +176 -0
  328. package/assets/standalone/node_modules/next/dist/build/handle-externals.js +290 -0
  329. package/assets/standalone/node_modules/next/dist/build/index.js +2683 -0
  330. package/assets/standalone/node_modules/next/dist/build/is-writeable.js +26 -0
  331. package/assets/standalone/node_modules/next/dist/build/jest/__mocks__/empty.js +10 -0
  332. package/assets/standalone/node_modules/next/dist/build/jest/__mocks__/fileMock.js +15 -0
  333. package/assets/standalone/node_modules/next/dist/build/jest/__mocks__/nextFontMock.js +20 -0
  334. package/assets/standalone/node_modules/next/dist/build/jest/__mocks__/styleMock.js +10 -0
  335. package/assets/standalone/node_modules/next/dist/build/jest/jest.js +227 -0
  336. package/assets/standalone/node_modules/next/dist/build/jest/object-proxy.js +50 -0
  337. package/assets/standalone/node_modules/next/dist/build/load-entrypoint.js +30 -0
  338. package/assets/standalone/node_modules/next/dist/build/load-jsconfig.js +162 -0
  339. package/assets/standalone/node_modules/next/dist/build/lockfile.js +160 -0
  340. package/assets/standalone/node_modules/next/dist/build/manifests/formatter/format-manifest.js +19 -0
  341. package/assets/standalone/node_modules/next/dist/build/next-config-ts/require-hook.js +85 -0
  342. package/assets/standalone/node_modules/next/dist/build/next-config-ts/transpile-config.js +172 -0
  343. package/assets/standalone/node_modules/next/dist/build/next-dir-paths.js +37 -0
  344. package/assets/standalone/node_modules/next/dist/build/normalize-catchall-routes.js +76 -0
  345. package/assets/standalone/node_modules/next/dist/build/output/format.js +84 -0
  346. package/assets/standalone/node_modules/next/dist/build/output/index.js +186 -0
  347. package/assets/standalone/node_modules/next/dist/build/output/log.js +135 -0
  348. package/assets/standalone/node_modules/next/dist/build/output/store.js +204 -0
  349. package/assets/standalone/node_modules/next/dist/build/page-extensions-type.js +6 -0
  350. package/assets/standalone/node_modules/next/dist/build/polyfills/fetch/index.js +6 -0
  351. package/assets/standalone/node_modules/next/dist/build/polyfills/fetch/whatwg-fetch.js +7 -0
  352. package/assets/standalone/node_modules/next/dist/build/polyfills/object-assign.js +6 -0
  353. package/assets/standalone/node_modules/next/dist/build/polyfills/object.assign/auto.js +4 -0
  354. package/assets/standalone/node_modules/next/dist/build/polyfills/object.assign/implementation.js +4 -0
  355. package/assets/standalone/node_modules/next/dist/build/polyfills/object.assign/index.js +19 -0
  356. package/assets/standalone/node_modules/next/dist/build/polyfills/object.assign/polyfill.js +6 -0
  357. package/assets/standalone/node_modules/next/dist/build/polyfills/object.assign/shim.js +6 -0
  358. package/assets/standalone/node_modules/next/dist/build/polyfills/polyfill-module.js +1 -0
  359. package/assets/standalone/node_modules/next/dist/build/polyfills/polyfill-nomodule.js +1 -0
  360. package/assets/standalone/node_modules/next/dist/build/polyfills/process.js +5 -0
  361. package/assets/standalone/node_modules/next/dist/build/preview-key-utils.js +91 -0
  362. package/assets/standalone/node_modules/next/dist/build/progress.js +151 -0
  363. package/assets/standalone/node_modules/next/dist/build/rendering-mode.js +26 -0
  364. package/assets/standalone/node_modules/next/dist/build/segment-config/app/app-segment-config.js +145 -0
  365. package/assets/standalone/node_modules/next/dist/build/segment-config/app/app-segments.js +137 -0
  366. package/assets/standalone/node_modules/next/dist/build/segment-config/app/collect-root-param-keys.js +52 -0
  367. package/assets/standalone/node_modules/next/dist/build/segment-config/middleware/middleware-config.js +121 -0
  368. package/assets/standalone/node_modules/next/dist/build/segment-config/pages/pages-segment-config.js +62 -0
  369. package/assets/standalone/node_modules/next/dist/build/sort-by-page-exts.js +30 -0
  370. package/assets/standalone/node_modules/next/dist/build/spinner.js +138 -0
  371. package/assets/standalone/node_modules/next/dist/build/static-paths/app/extract-pathname-route-param-segments-from-loader-tree.js +137 -0
  372. package/assets/standalone/node_modules/next/dist/build/static-paths/app.js +682 -0
  373. package/assets/standalone/node_modules/next/dist/build/static-paths/pages.js +169 -0
  374. package/assets/standalone/node_modules/next/dist/build/static-paths/types.js +6 -0
  375. package/assets/standalone/node_modules/next/dist/build/static-paths/utils.js +119 -0
  376. package/assets/standalone/node_modules/next/dist/build/swc/helpers.js +15 -0
  377. package/assets/standalone/node_modules/next/dist/build/swc/index.js +1271 -0
  378. package/assets/standalone/node_modules/next/dist/build/swc/install-bindings.js +30 -0
  379. package/assets/standalone/node_modules/next/dist/build/swc/jest-transformer.js +75 -0
  380. package/assets/standalone/node_modules/next/dist/build/swc/options.js +386 -0
  381. package/assets/standalone/node_modules/next/dist/build/swc/types.js +6 -0
  382. package/assets/standalone/node_modules/next/dist/build/templates/app-page.js +1073 -0
  383. package/assets/standalone/node_modules/next/dist/build/templates/app-route.js +420 -0
  384. package/assets/standalone/node_modules/next/dist/build/templates/edge-app-route.js +85 -0
  385. package/assets/standalone/node_modules/next/dist/build/templates/edge-ssr-app.js +311 -0
  386. package/assets/standalone/node_modules/next/dist/build/templates/edge-ssr.js +335 -0
  387. package/assets/standalone/node_modules/next/dist/build/templates/edge-wrapper.js +24 -0
  388. package/assets/standalone/node_modules/next/dist/build/templates/helpers.js +36 -0
  389. package/assets/standalone/node_modules/next/dist/build/templates/middleware.js +115 -0
  390. package/assets/standalone/node_modules/next/dist/build/templates/pages-api.js +194 -0
  391. package/assets/standalone/node_modules/next/dist/build/templates/pages-edge-api.js +39 -0
  392. package/assets/standalone/node_modules/next/dist/build/templates/pages.js +155 -0
  393. package/assets/standalone/node_modules/next/dist/build/turbopack-analyze/index.js +116 -0
  394. package/assets/standalone/node_modules/next/dist/build/turbopack-build/impl.js +244 -0
  395. package/assets/standalone/node_modules/next/dist/build/turbopack-build/index.js +85 -0
  396. package/assets/standalone/node_modules/next/dist/build/turborepo-access-trace/env.js +29 -0
  397. package/assets/standalone/node_modules/next/dist/build/turborepo-access-trace/helpers.js +104 -0
  398. package/assets/standalone/node_modules/next/dist/build/turborepo-access-trace/index.js +30 -0
  399. package/assets/standalone/node_modules/next/dist/build/turborepo-access-trace/result.js +51 -0
  400. package/assets/standalone/node_modules/next/dist/build/turborepo-access-trace/tcp.js +41 -0
  401. package/assets/standalone/node_modules/next/dist/build/turborepo-access-trace/types.js +8 -0
  402. package/assets/standalone/node_modules/next/dist/build/type-check.js +151 -0
  403. package/assets/standalone/node_modules/next/dist/build/utils.js +1261 -0
  404. package/assets/standalone/node_modules/next/dist/build/validate-app-paths.js +242 -0
  405. package/assets/standalone/node_modules/next/dist/build/webpack/alias/react-dom-server-experimental.js +32 -0
  406. package/assets/standalone/node_modules/next/dist/build/webpack/alias/react-dom-server.js +32 -0
  407. package/assets/standalone/node_modules/next/dist/build/webpack/cache-invalidation.js +91 -0
  408. package/assets/standalone/node_modules/next/dist/build/webpack/config/blocks/base.js +82 -0
  409. package/assets/standalone/node_modules/next/dist/build/webpack/config/blocks/css/index.js +562 -0
  410. package/assets/standalone/node_modules/next/dist/build/webpack/config/blocks/css/loaders/client.js +49 -0
  411. package/assets/standalone/node_modules/next/dist/build/webpack/config/blocks/css/loaders/file-resolve.js +21 -0
  412. package/assets/standalone/node_modules/next/dist/build/webpack/config/blocks/css/loaders/getCssModuleLocalIdent.js +37 -0
  413. package/assets/standalone/node_modules/next/dist/build/webpack/config/blocks/css/loaders/global.js +65 -0
  414. package/assets/standalone/node_modules/next/dist/build/webpack/config/blocks/css/loaders/index.js +22 -0
  415. package/assets/standalone/node_modules/next/dist/build/webpack/config/blocks/css/loaders/modules.js +86 -0
  416. package/assets/standalone/node_modules/next/dist/build/webpack/config/blocks/css/loaders/next-font.js +62 -0
  417. package/assets/standalone/node_modules/next/dist/build/webpack/config/blocks/css/messages.js +45 -0
  418. package/assets/standalone/node_modules/next/dist/build/webpack/config/blocks/css/plugins.js +190 -0
  419. package/assets/standalone/node_modules/next/dist/build/webpack/config/blocks/images/index.js +42 -0
  420. package/assets/standalone/node_modules/next/dist/build/webpack/config/blocks/images/messages.js +16 -0
  421. package/assets/standalone/node_modules/next/dist/build/webpack/config/helpers.js +78 -0
  422. package/assets/standalone/node_modules/next/dist/build/webpack/config/index.js +46 -0
  423. package/assets/standalone/node_modules/next/dist/build/webpack/config/utils.js +13 -0
  424. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/css-loader/src/CssSyntaxError.js +32 -0
  425. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/css-loader/src/camelcase.js +93 -0
  426. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js +287 -0
  427. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/css-loader/src/plugins/index.js +36 -0
  428. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/css-loader/src/plugins/postcss-icss-parser.js +105 -0
  429. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/css-loader/src/plugins/postcss-import-parser.js +220 -0
  430. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/css-loader/src/plugins/postcss-url-parser.js +307 -0
  431. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js +83 -0
  432. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js +23 -0
  433. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/css-loader/src/utils.js +459 -0
  434. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/devtool/devtool-style-inject.js +129 -0
  435. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/empty-loader.js +14 -0
  436. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/error-loader.js +36 -0
  437. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/get-module-build-info.js +15 -0
  438. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/codegen.js +156 -0
  439. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/index.js +27 -0
  440. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/interface.js +17 -0
  441. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/loader.js +429 -0
  442. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/minify.js +94 -0
  443. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/utils.js +58 -0
  444. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/metadata/discover.js +122 -0
  445. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/metadata/resolve-route-data.js +171 -0
  446. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/metadata/types.js +7 -0
  447. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/modularize-import-loader.js +39 -0
  448. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-app-loader/create-app-route-code.js +65 -0
  449. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js +765 -0
  450. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-barrel-loader.js +268 -0
  451. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js +37 -0
  452. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-edge-app-route-loader/index.js +51 -0
  453. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-edge-function-loader.js +52 -0
  454. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js +93 -0
  455. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-error-browser-binary-loader.js +21 -0
  456. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js +32 -0
  457. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js +45 -0
  458. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-flight-client-module-loader.js +49 -0
  459. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-flight-css-loader.js +56 -0
  460. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-client-wrapper.js +33 -0
  461. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-validate.js +27 -0
  462. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-flight-loader/cache-wrapper.js +13 -0
  463. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-flight-loader/index.js +211 -0
  464. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js +14 -0
  465. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-flight-loader/server-reference.js +13 -0
  466. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-flight-loader/track-dynamic-import.js +13 -0
  467. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-flight-server-reference-proxy-loader.js +29 -0
  468. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js +133 -0
  469. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-font-loader/postcss-next-font.js +169 -0
  470. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-image-loader/blur.js +73 -0
  471. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-image-loader/index.js +80 -0
  472. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-invalid-import-error-loader.js +28 -0
  473. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js +158 -0
  474. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-metadata-route-loader.js +342 -0
  475. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-middleware-asset-loader.js +46 -0
  476. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-middleware-loader.js +59 -0
  477. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-middleware-wasm-loader.js +46 -0
  478. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-root-params-loader.js +164 -0
  479. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js +141 -0
  480. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-style-loader/index.js +220 -0
  481. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoLinkTag.js +61 -0
  482. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js +221 -0
  483. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/isEqualLocals.js +27 -0
  484. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/next-swc-loader.js +241 -0
  485. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/Error.js +40 -0
  486. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/Warning.js +35 -0
  487. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js +125 -0
  488. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/utils.js +86 -0
  489. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/index.js +101 -0
  490. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/lib/file-protocol.js +78 -0
  491. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/lib/join-function.js +190 -0
  492. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/lib/postcss.js +92 -0
  493. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/lib/value-processor.js +97 -0
  494. package/assets/standalone/node_modules/next/dist/build/webpack/loaders/utils.js +100 -0
  495. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/build-manifest-plugin-utils.js +79 -0
  496. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/build-manifest-plugin.js +183 -0
  497. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/copy-file-plugin.js +67 -0
  498. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/css-chunking-plugin.js +277 -0
  499. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/css-minimizer-plugin.js +92 -0
  500. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/devtools-ignore-list-plugin.js +78 -0
  501. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/eval-source-map-dev-tool-plugin.js +191 -0
  502. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/flight-client-entry-plugin.js +793 -0
  503. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.js +420 -0
  504. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/force-complete-runtime.js +42 -0
  505. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/jsconfig-paths-plugin.js +219 -0
  506. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/memory-with-gc-cache-plugin.js +114 -0
  507. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/middleware-plugin.js +614 -0
  508. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/mini-css-extract-plugin.js +24 -0
  509. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/minify-webpack-plugin/src/index.js +188 -0
  510. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.js +120 -0
  511. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/next-trace-entrypoints-plugin.js +542 -0
  512. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/next-types-plugin/index.js +428 -0
  513. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/next-types-plugin/shared.js +14 -0
  514. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/nextjs-require-cache-hot-reloader.js +57 -0
  515. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/optional-peer-dependency-resolve-plugin.js +45 -0
  516. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.js +146 -0
  517. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/profiling-plugin.js +282 -0
  518. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/react-loadable-plugin.js +169 -0
  519. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/rspack-flight-client-entry-plugin.js +97 -0
  520. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/rspack-profiling-plugin.js +62 -0
  521. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/slow-module-detection-plugin.js +190 -0
  522. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.js +62 -0
  523. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.js +188 -0
  524. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/telemetry-plugin/update-telemetry-loader-context-from-swc.js +28 -0
  525. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.js +43 -0
  526. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/getModuleTrace.js +89 -0
  527. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js +43 -0
  528. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parse-dynamic-code-evaluation-error.js +19 -0
  529. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseBabel.js +29 -0
  530. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseCss.js +29 -0
  531. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNextAppLoaderError.js +26 -0
  532. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNextFontError.js +33 -0
  533. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNextInvalidImportError.js +26 -0
  534. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNotFoundError.js +166 -0
  535. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseScss.js +42 -0
  536. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/simpleWebpackError.js +18 -0
  537. package/assets/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/webpackModuleError.js +138 -0
  538. package/assets/standalone/node_modules/next/dist/build/webpack/stringify-request.js +15 -0
  539. package/assets/standalone/node_modules/next/dist/build/webpack/utils.js +109 -0
  540. package/assets/standalone/node_modules/next/dist/build/webpack-build/impl.js +381 -0
  541. package/assets/standalone/node_modules/next/dist/build/webpack-build/index.js +179 -0
  542. package/assets/standalone/node_modules/next/dist/build/webpack-config-rules/resolve.js +55 -0
  543. package/assets/standalone/node_modules/next/dist/build/webpack-config.js +2343 -0
  544. package/assets/standalone/node_modules/next/dist/build/worker.js +35 -0
  545. package/assets/standalone/node_modules/next/dist/build/write-build-id.js +19 -0
  546. package/assets/standalone/node_modules/next/dist/cli/next-test.js +169 -0
  547. package/assets/standalone/node_modules/next/dist/client/add-base-path.js +24 -0
  548. package/assets/standalone/node_modules/next/dist/client/app-build-id.js +49 -0
  549. package/assets/standalone/node_modules/next/dist/client/app-call-server.js +34 -0
  550. package/assets/standalone/node_modules/next/dist/client/app-find-source-map-url.js +38 -0
  551. package/assets/standalone/node_modules/next/dist/client/assign-location.js +29 -0
  552. package/assets/standalone/node_modules/next/dist/client/components/app-router-announcer.js +78 -0
  553. package/assets/standalone/node_modules/next/dist/client/components/app-router-headers.js +128 -0
  554. package/assets/standalone/node_modules/next/dist/client/components/app-router-instance.js +319 -0
  555. package/assets/standalone/node_modules/next/dist/client/components/app-router-utils.js +62 -0
  556. package/assets/standalone/node_modules/next/dist/client/components/app-router.js +495 -0
  557. package/assets/standalone/node_modules/next/dist/client/components/builtin/default.js +35 -0
  558. package/assets/standalone/node_modules/next/dist/client/components/builtin/global-error.js +82 -0
  559. package/assets/standalone/node_modules/next/dist/client/components/dev-root-http-access-fallback-boundary.js +52 -0
  560. package/assets/standalone/node_modules/next/dist/client/components/error-boundary.js +134 -0
  561. package/assets/standalone/node_modules/next/dist/client/components/errors/graceful-degrade-boundary.js +86 -0
  562. package/assets/standalone/node_modules/next/dist/client/components/errors/root-error-boundary.js +41 -0
  563. package/assets/standalone/node_modules/next/dist/client/components/forbidden.js +48 -0
  564. package/assets/standalone/node_modules/next/dist/client/components/handle-isr-error.js +31 -0
  565. package/assets/standalone/node_modules/next/dist/client/components/hooks-server-context.js +42 -0
  566. package/assets/standalone/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js +125 -0
  567. package/assets/standalone/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js +72 -0
  568. package/assets/standalone/node_modules/next/dist/client/components/is-next-router-error.js +23 -0
  569. package/assets/standalone/node_modules/next/dist/client/components/links.js +292 -0
  570. package/assets/standalone/node_modules/next/dist/client/components/match-segments.js +32 -0
  571. package/assets/standalone/node_modules/next/dist/client/components/nav-failure-handler.js +61 -0
  572. package/assets/standalone/node_modules/next/dist/client/components/navigation-devtools.js +126 -0
  573. package/assets/standalone/node_modules/next/dist/client/components/navigation-untracked.js +65 -0
  574. package/assets/standalone/node_modules/next/dist/client/components/navigation.js +198 -0
  575. package/assets/standalone/node_modules/next/dist/client/components/navigation.react-server.js +72 -0
  576. package/assets/standalone/node_modules/next/dist/client/components/not-found.js +42 -0
  577. package/assets/standalone/node_modules/next/dist/client/components/readonly-url-search-params.js +41 -0
  578. package/assets/standalone/node_modules/next/dist/client/components/redirect-boundary.js +107 -0
  579. package/assets/standalone/node_modules/next/dist/client/components/redirect-error.js +52 -0
  580. package/assets/standalone/node_modules/next/dist/client/components/redirect-status-code.js +24 -0
  581. package/assets/standalone/node_modules/next/dist/client/components/redirect.js +91 -0
  582. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/compute-changed-path.js +128 -0
  583. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/create-href-from-url.js +21 -0
  584. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +59 -0
  585. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js +32 -0
  586. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js +340 -0
  587. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/handle-mutable.js +66 -0
  588. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js +51 -0
  589. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js +1129 -0
  590. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js +64 -0
  591. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js +38 -0
  592. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js +23 -0
  593. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js +168 -0
  594. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +68 -0
  595. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +78 -0
  596. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +292 -0
  597. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +56 -0
  598. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/router-reducer-types.js +61 -0
  599. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/router-reducer.js +66 -0
  600. package/assets/standalone/node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js +60 -0
  601. package/assets/standalone/node_modules/next/dist/client/components/segment-cache/cache-key.js +28 -0
  602. package/assets/standalone/node_modules/next/dist/client/components/segment-cache/cache-map.js +305 -0
  603. package/assets/standalone/node_modules/next/dist/client/components/segment-cache/cache.js +1432 -0
  604. package/assets/standalone/node_modules/next/dist/client/components/segment-cache/lru.js +145 -0
  605. package/assets/standalone/node_modules/next/dist/client/components/segment-cache/navigation.js +459 -0
  606. package/assets/standalone/node_modules/next/dist/client/components/segment-cache/prefetch.js +31 -0
  607. package/assets/standalone/node_modules/next/dist/client/components/segment-cache/scheduler.js +1150 -0
  608. package/assets/standalone/node_modules/next/dist/client/components/segment-cache/types.js +69 -0
  609. package/assets/standalone/node_modules/next/dist/client/components/segment-cache/vary-path.js +216 -0
  610. package/assets/standalone/node_modules/next/dist/client/components/static-generation-bailout.js +42 -0
  611. package/assets/standalone/node_modules/next/dist/client/components/unauthorized.js +49 -0
  612. package/assets/standalone/node_modules/next/dist/client/components/unrecognized-action-error.js +39 -0
  613. package/assets/standalone/node_modules/next/dist/client/components/unresolved-thenable.js +23 -0
  614. package/assets/standalone/node_modules/next/dist/client/components/unstable-rethrow.browser.js +28 -0
  615. package/assets/standalone/node_modules/next/dist/client/components/unstable-rethrow.js +25 -0
  616. package/assets/standalone/node_modules/next/dist/client/components/unstable-rethrow.server.js +32 -0
  617. package/assets/standalone/node_modules/next/dist/client/components/use-action-queue.js +102 -0
  618. package/assets/standalone/node_modules/next/dist/client/dev/debug-channel.js +72 -0
  619. package/assets/standalone/node_modules/next/dist/client/flight-data-helpers.js +219 -0
  620. package/assets/standalone/node_modules/next/dist/client/has-base-path.js +23 -0
  621. package/assets/standalone/node_modules/next/dist/client/lib/console.js +177 -0
  622. package/assets/standalone/node_modules/next/dist/client/normalize-trailing-slash.js +36 -0
  623. package/assets/standalone/node_modules/next/dist/client/remove-base-path.js +32 -0
  624. package/assets/standalone/node_modules/next/dist/client/route-params.js +230 -0
  625. package/assets/standalone/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js +339 -0
  626. package/assets/standalone/node_modules/next/dist/compiled/@edge-runtime/cookies/package.json +1 -0
  627. package/assets/standalone/node_modules/next/dist/compiled/@edge-runtime/ponyfill/index.js +46 -0
  628. package/assets/standalone/node_modules/next/dist/compiled/@edge-runtime/ponyfill/package.json +1 -0
  629. package/assets/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/abort-controller.js.text.js +1 -0
  630. package/assets/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/console.js.text.js +1 -0
  631. package/assets/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/events.js.text.js +1 -0
  632. package/assets/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/index.js +5 -0
  633. package/assets/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/load.js +18713 -0
  634. package/assets/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/package.json +1 -0
  635. package/assets/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/stream.js +44 -0
  636. package/assets/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/timers.js.text.js +1 -0
  637. package/assets/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/url.js.text.js +1 -0
  638. package/assets/standalone/node_modules/next/dist/compiled/@hapi/accept/index.js +1 -0
  639. package/assets/standalone/node_modules/next/dist/compiled/@hapi/accept/package.json +1 -0
  640. package/assets/standalone/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/index.js +1 -0
  641. package/assets/standalone/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/package.json +1 -0
  642. package/assets/standalone/node_modules/next/dist/compiled/@napi-rs/triples/index.js +1 -0
  643. package/assets/standalone/node_modules/next/dist/compiled/@napi-rs/triples/package.json +1 -0
  644. package/assets/standalone/node_modules/next/dist/compiled/@opentelemetry/api/index.js +1 -0
  645. package/assets/standalone/node_modules/next/dist/compiled/@opentelemetry/api/package.json +1 -0
  646. package/assets/standalone/node_modules/next/dist/compiled/async-retry/index.js +1 -0
  647. package/assets/standalone/node_modules/next/dist/compiled/async-retry/package.json +1 -0
  648. package/assets/standalone/node_modules/next/dist/compiled/async-sema/index.js +1 -0
  649. package/assets/standalone/node_modules/next/dist/compiled/async-sema/package.json +1 -0
  650. package/assets/standalone/node_modules/next/dist/compiled/babel/code-frame.js +1 -0
  651. package/assets/standalone/node_modules/next/dist/compiled/babel/package.json +1 -0
  652. package/assets/standalone/node_modules/next/dist/compiled/babel-code-frame/index.js +1 -0
  653. package/assets/standalone/node_modules/next/dist/compiled/babel-code-frame/package.json +1 -0
  654. package/assets/standalone/node_modules/next/dist/compiled/busboy/index.js +1 -0
  655. package/assets/standalone/node_modules/next/dist/compiled/busboy/package.json +1 -0
  656. package/assets/standalone/node_modules/next/dist/compiled/bytes/index.js +8 -0
  657. package/assets/standalone/node_modules/next/dist/compiled/bytes/package.json +1 -0
  658. package/assets/standalone/node_modules/next/dist/compiled/ci-info/index.js +1 -0
  659. package/assets/standalone/node_modules/next/dist/compiled/ci-info/package.json +1 -0
  660. package/assets/standalone/node_modules/next/dist/compiled/commander/index.js +1 -0
  661. package/assets/standalone/node_modules/next/dist/compiled/commander/package.json +1 -0
  662. package/assets/standalone/node_modules/next/dist/compiled/comment-json/index.js +7 -0
  663. package/assets/standalone/node_modules/next/dist/compiled/comment-json/package.json +1 -0
  664. package/assets/standalone/node_modules/next/dist/compiled/compression/index.js +58 -0
  665. package/assets/standalone/node_modules/next/dist/compiled/compression/package.json +1 -0
  666. package/assets/standalone/node_modules/next/dist/compiled/conf/index.js +15 -0
  667. package/assets/standalone/node_modules/next/dist/compiled/conf/package.json +1 -0
  668. package/assets/standalone/node_modules/next/dist/compiled/content-disposition/index.js +6 -0
  669. package/assets/standalone/node_modules/next/dist/compiled/content-disposition/package.json +1 -0
  670. package/assets/standalone/node_modules/next/dist/compiled/cookie/index.js +7 -0
  671. package/assets/standalone/node_modules/next/dist/compiled/cookie/package.json +1 -0
  672. package/assets/standalone/node_modules/next/dist/compiled/cross-spawn/index.js +1 -0
  673. package/assets/standalone/node_modules/next/dist/compiled/cross-spawn/package.json +1 -0
  674. package/assets/standalone/node_modules/next/dist/compiled/debug/index.js +1 -0
  675. package/assets/standalone/node_modules/next/dist/compiled/debug/package.json +1 -0
  676. package/assets/standalone/node_modules/next/dist/compiled/edge-runtime/index.js +1 -0
  677. package/assets/standalone/node_modules/next/dist/compiled/edge-runtime/package.json +1 -0
  678. package/assets/standalone/node_modules/next/dist/compiled/find-up/index.js +1 -0
  679. package/assets/standalone/node_modules/next/dist/compiled/find-up/package.json +1 -0
  680. package/assets/standalone/node_modules/next/dist/compiled/fresh/index.js +8 -0
  681. package/assets/standalone/node_modules/next/dist/compiled/fresh/package.json +1 -0
  682. package/assets/standalone/node_modules/next/dist/compiled/http-proxy/index.js +34 -0
  683. package/assets/standalone/node_modules/next/dist/compiled/http-proxy/package.json +1 -0
  684. package/assets/standalone/node_modules/next/dist/compiled/image-detector/detector.js +1 -0
  685. package/assets/standalone/node_modules/next/dist/compiled/image-size/index.js +1 -0
  686. package/assets/standalone/node_modules/next/dist/compiled/image-size/package.json +1 -0
  687. package/assets/standalone/node_modules/next/dist/compiled/ipaddr.js/ipaddr.js +1 -0
  688. package/assets/standalone/node_modules/next/dist/compiled/ipaddr.js/package.json +1 -0
  689. package/assets/standalone/node_modules/next/dist/compiled/is-animated/index.js +1 -0
  690. package/assets/standalone/node_modules/next/dist/compiled/is-animated/package.json +1 -0
  691. package/assets/standalone/node_modules/next/dist/compiled/is-docker/index.js +1 -0
  692. package/assets/standalone/node_modules/next/dist/compiled/is-docker/package.json +1 -0
  693. package/assets/standalone/node_modules/next/dist/compiled/is-wsl/index.js +1 -0
  694. package/assets/standalone/node_modules/next/dist/compiled/is-wsl/package.json +1 -0
  695. package/assets/standalone/node_modules/next/dist/compiled/jsonwebtoken/index.js +11 -0
  696. package/assets/standalone/node_modules/next/dist/compiled/jsonwebtoken/package.json +1 -0
  697. package/assets/standalone/node_modules/next/dist/compiled/nanoid/index.cjs +1 -0
  698. package/assets/standalone/node_modules/next/dist/compiled/nanoid/package.json +1 -0
  699. package/assets/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +24 -0
  700. package/assets/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +24 -0
  701. package/assets/standalone/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +6 -0
  702. package/assets/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +20 -0
  703. package/assets/standalone/node_modules/next/dist/compiled/p-limit/index.js +1 -0
  704. package/assets/standalone/node_modules/next/dist/compiled/p-limit/package.json +1 -0
  705. package/assets/standalone/node_modules/next/dist/compiled/p-queue/index.js +1 -0
  706. package/assets/standalone/node_modules/next/dist/compiled/p-queue/package.json +1 -0
  707. package/assets/standalone/node_modules/next/dist/compiled/path-browserify/index.js +1 -0
  708. package/assets/standalone/node_modules/next/dist/compiled/path-browserify/package.json +1 -0
  709. package/assets/standalone/node_modules/next/dist/compiled/path-to-regexp/index.js +1 -0
  710. package/assets/standalone/node_modules/next/dist/compiled/path-to-regexp/package.json +1 -0
  711. package/assets/standalone/node_modules/next/dist/compiled/picomatch/index.js +1 -0
  712. package/assets/standalone/node_modules/next/dist/compiled/picomatch/package.json +1 -0
  713. package/assets/standalone/node_modules/next/dist/compiled/react-is/cjs/react-is.development.js +133 -0
  714. package/assets/standalone/node_modules/next/dist/compiled/react-is/cjs/react-is.production.js +130 -0
  715. package/assets/standalone/node_modules/next/dist/compiled/react-is/index.js +7 -0
  716. package/assets/standalone/node_modules/next/dist/compiled/react-is/package.json +26 -0
  717. package/assets/standalone/node_modules/next/dist/compiled/regenerator-runtime/package.json +19 -0
  718. package/assets/standalone/node_modules/next/dist/compiled/regenerator-runtime/runtime.js +729 -0
  719. package/assets/standalone/node_modules/next/dist/compiled/semver/index.js +1 -0
  720. package/assets/standalone/node_modules/next/dist/compiled/semver/package.json +1 -0
  721. package/assets/standalone/node_modules/next/dist/compiled/send/index.js +70 -0
  722. package/assets/standalone/node_modules/next/dist/compiled/send/package.json +1 -0
  723. package/assets/standalone/node_modules/next/dist/compiled/source-map/package.json +1 -0
  724. package/assets/standalone/node_modules/next/dist/compiled/source-map/source-map.js +1 -0
  725. package/assets/standalone/node_modules/next/dist/compiled/stacktrace-parser/package.json +1 -0
  726. package/assets/standalone/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js +1 -0
  727. package/assets/standalone/node_modules/next/dist/compiled/string-hash/index.js +1 -0
  728. package/assets/standalone/node_modules/next/dist/compiled/string-hash/package.json +1 -0
  729. package/assets/standalone/node_modules/next/dist/compiled/strip-ansi/index.js +1 -0
  730. package/assets/standalone/node_modules/next/dist/compiled/strip-ansi/package.json +1 -0
  731. package/assets/standalone/node_modules/next/dist/compiled/superstruct/index.cjs +1 -0
  732. package/assets/standalone/node_modules/next/dist/compiled/superstruct/package.json +1 -0
  733. package/assets/standalone/node_modules/next/dist/compiled/tar/index.js +1 -0
  734. package/assets/standalone/node_modules/next/dist/compiled/tar/package.json +1 -0
  735. package/assets/standalone/node_modules/next/dist/compiled/text-table/index.js +1 -0
  736. package/assets/standalone/node_modules/next/dist/compiled/text-table/package.json +1 -0
  737. package/assets/standalone/node_modules/next/dist/compiled/watchpack/package.json +1 -0
  738. package/assets/standalone/node_modules/next/dist/compiled/watchpack/watchpack.js +1 -0
  739. package/assets/standalone/node_modules/next/dist/compiled/ws/index.js +1 -0
  740. package/assets/standalone/node_modules/next/dist/compiled/ws/package.json +1 -0
  741. package/assets/standalone/node_modules/next/dist/compiled/zod/index.cjs +1 -0
  742. package/assets/standalone/node_modules/next/dist/compiled/zod/package.json +1 -0
  743. package/assets/standalone/node_modules/next/dist/compiled/zod-validation-error/index.js +1 -0
  744. package/assets/standalone/node_modules/next/dist/compiled/zod-validation-error/package.json +1 -0
  745. package/assets/standalone/node_modules/next/dist/experimental/testmode/context.js +57 -0
  746. package/assets/standalone/node_modules/next/dist/experimental/testmode/fetch.js +142 -0
  747. package/assets/standalone/node_modules/next/dist/experimental/testmode/httpget.js +26 -0
  748. package/assets/standalone/node_modules/next/dist/experimental/testmode/server-edge.js +32 -0
  749. package/assets/standalone/node_modules/next/dist/experimental/testmode/server.js +62 -0
  750. package/assets/standalone/node_modules/next/dist/export/helpers/create-incremental-cache.js +61 -0
  751. package/assets/standalone/node_modules/next/dist/lib/batcher.js +65 -0
  752. package/assets/standalone/node_modules/next/dist/lib/build-custom-route.js +46 -0
  753. package/assets/standalone/node_modules/next/dist/lib/bundler.js +97 -0
  754. package/assets/standalone/node_modules/next/dist/lib/client-and-server-references.js +54 -0
  755. package/assets/standalone/node_modules/next/dist/lib/coalesced-function.js +39 -0
  756. package/assets/standalone/node_modules/next/dist/lib/compile-error.js +14 -0
  757. package/assets/standalone/node_modules/next/dist/lib/constants.js +405 -0
  758. package/assets/standalone/node_modules/next/dist/lib/create-client-router-filter.js +67 -0
  759. package/assets/standalone/node_modules/next/dist/lib/default-transpiled-packages.json +1 -0
  760. package/assets/standalone/node_modules/next/dist/lib/detached-promise.js +32 -0
  761. package/assets/standalone/node_modules/next/dist/lib/detect-typo.js +51 -0
  762. package/assets/standalone/node_modules/next/dist/lib/download-swc.js +183 -0
  763. package/assets/standalone/node_modules/next/dist/lib/error-telemetry-utils.js +42 -0
  764. package/assets/standalone/node_modules/next/dist/lib/fallback.js +100 -0
  765. package/assets/standalone/node_modules/next/dist/lib/fatal-error.js +14 -0
  766. package/assets/standalone/node_modules/next/dist/lib/file-exists.js +53 -0
  767. package/assets/standalone/node_modules/next/dist/lib/find-config.js +102 -0
  768. package/assets/standalone/node_modules/next/dist/lib/find-pages-dir.js +65 -0
  769. package/assets/standalone/node_modules/next/dist/lib/find-root.js +122 -0
  770. package/assets/standalone/node_modules/next/dist/lib/format-cli-help-output.js +84 -0
  771. package/assets/standalone/node_modules/next/dist/lib/format-dynamic-import-path.js +24 -0
  772. package/assets/standalone/node_modules/next/dist/lib/format-server-error.js +74 -0
  773. package/assets/standalone/node_modules/next/dist/lib/framework/boundary-components.js +62 -0
  774. package/assets/standalone/node_modules/next/dist/lib/framework/boundary-constants.js +36 -0
  775. package/assets/standalone/node_modules/next/dist/lib/fs/rename.js +87 -0
  776. package/assets/standalone/node_modules/next/dist/lib/fs/write-atomic.js +28 -0
  777. package/assets/standalone/node_modules/next/dist/lib/generate-interception-routes-rewrites.js +69 -0
  778. package/assets/standalone/node_modules/next/dist/lib/get-files-in-dir.js +33 -0
  779. package/assets/standalone/node_modules/next/dist/lib/get-network-host.js +44 -0
  780. package/assets/standalone/node_modules/next/dist/lib/get-package-version.js +118 -0
  781. package/assets/standalone/node_modules/next/dist/lib/get-project-dir.js +51 -0
  782. package/assets/standalone/node_modules/next/dist/lib/has-necessary-dependencies.js +49 -0
  783. package/assets/standalone/node_modules/next/dist/lib/helpers/get-cache-directory.js +66 -0
  784. package/assets/standalone/node_modules/next/dist/lib/helpers/get-npx-command.js +29 -0
  785. package/assets/standalone/node_modules/next/dist/lib/helpers/get-online.js +50 -0
  786. package/assets/standalone/node_modules/next/dist/lib/helpers/get-pkg-manager.js +63 -0
  787. package/assets/standalone/node_modules/next/dist/lib/helpers/get-registry.js +45 -0
  788. package/assets/standalone/node_modules/next/dist/lib/helpers/get-reserved-port.js +116 -0
  789. package/assets/standalone/node_modules/next/dist/lib/helpers/install.js +83 -0
  790. package/assets/standalone/node_modules/next/dist/lib/import-next-warning.js +50 -0
  791. package/assets/standalone/node_modules/next/dist/lib/inline-static-env.js +112 -0
  792. package/assets/standalone/node_modules/next/dist/lib/install-dependencies.js +40 -0
  793. package/assets/standalone/node_modules/next/dist/lib/interop-default.js +15 -0
  794. package/assets/standalone/node_modules/next/dist/lib/is-api-route.js +15 -0
  795. package/assets/standalone/node_modules/next/dist/lib/is-app-page-route.js +15 -0
  796. package/assets/standalone/node_modules/next/dist/lib/is-app-route-route.js +15 -0
  797. package/assets/standalone/node_modules/next/dist/lib/is-edge-runtime.js +16 -0
  798. package/assets/standalone/node_modules/next/dist/lib/is-error.js +78 -0
  799. package/assets/standalone/node_modules/next/dist/lib/is-internal-component.js +36 -0
  800. package/assets/standalone/node_modules/next/dist/lib/is-serializable-props.js +106 -0
  801. package/assets/standalone/node_modules/next/dist/lib/known-edge-safe-packages.json +1 -0
  802. package/assets/standalone/node_modules/next/dist/lib/load-custom-routes.js +550 -0
  803. package/assets/standalone/node_modules/next/dist/lib/memory/gc-observer.js +53 -0
  804. package/assets/standalone/node_modules/next/dist/lib/memory/shutdown.js +29 -0
  805. package/assets/standalone/node_modules/next/dist/lib/memory/startup.js +47 -0
  806. package/assets/standalone/node_modules/next/dist/lib/memory/trace.js +109 -0
  807. package/assets/standalone/node_modules/next/dist/lib/metadata/constants.js +40 -0
  808. package/assets/standalone/node_modules/next/dist/lib/metadata/default-metadata.js +82 -0
  809. package/assets/standalone/node_modules/next/dist/lib/metadata/generate/alternate.js +55 -0
  810. package/assets/standalone/node_modules/next/dist/lib/metadata/generate/basic.js +307 -0
  811. package/assets/standalone/node_modules/next/dist/lib/metadata/generate/icon-mark.js +22 -0
  812. package/assets/standalone/node_modules/next/dist/lib/metadata/generate/icons.js +64 -0
  813. package/assets/standalone/node_modules/next/dist/lib/metadata/generate/meta.js +123 -0
  814. package/assets/standalone/node_modules/next/dist/lib/metadata/generate/opengraph.js +478 -0
  815. package/assets/standalone/node_modules/next/dist/lib/metadata/generate/utils.js +52 -0
  816. package/assets/standalone/node_modules/next/dist/lib/metadata/get-metadata-route.js +114 -0
  817. package/assets/standalone/node_modules/next/dist/lib/metadata/is-metadata-route.js +221 -0
  818. package/assets/standalone/node_modules/next/dist/lib/metadata/metadata-context.js +18 -0
  819. package/assets/standalone/node_modules/next/dist/lib/metadata/metadata.js +243 -0
  820. package/assets/standalone/node_modules/next/dist/lib/metadata/resolve-metadata.js +859 -0
  821. package/assets/standalone/node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js +232 -0
  822. package/assets/standalone/node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js +56 -0
  823. package/assets/standalone/node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js +199 -0
  824. package/assets/standalone/node_modules/next/dist/lib/metadata/resolvers/resolve-title.js +40 -0
  825. package/assets/standalone/node_modules/next/dist/lib/metadata/resolvers/resolve-url.js +135 -0
  826. package/assets/standalone/node_modules/next/dist/lib/metadata/types/alternative-urls-types.js +7 -0
  827. package/assets/standalone/node_modules/next/dist/lib/metadata/types/extra-types.js +9 -0
  828. package/assets/standalone/node_modules/next/dist/lib/metadata/types/icons.js +6 -0
  829. package/assets/standalone/node_modules/next/dist/lib/metadata/types/manifest-types.js +6 -0
  830. package/assets/standalone/node_modules/next/dist/lib/metadata/types/metadata-interface.js +18 -0
  831. package/assets/standalone/node_modules/next/dist/lib/metadata/types/metadata-types.js +10 -0
  832. package/assets/standalone/node_modules/next/dist/lib/metadata/types/opengraph-types.js +6 -0
  833. package/assets/standalone/node_modules/next/dist/lib/metadata/types/resolvers.js +6 -0
  834. package/assets/standalone/node_modules/next/dist/lib/metadata/types/twitter-types.js +7 -0
  835. package/assets/standalone/node_modules/next/dist/lib/mime-type.js +20 -0
  836. package/assets/standalone/node_modules/next/dist/lib/mkcert.js +204 -0
  837. package/assets/standalone/node_modules/next/dist/lib/multi-file-writer.js +75 -0
  838. package/assets/standalone/node_modules/next/dist/lib/needs-experimental-react.js +16 -0
  839. package/assets/standalone/node_modules/next/dist/lib/non-nullable.js +15 -0
  840. package/assets/standalone/node_modules/next/dist/lib/normalize-path.js +21 -0
  841. package/assets/standalone/node_modules/next/dist/lib/oxford-comma-list.js +15 -0
  842. package/assets/standalone/node_modules/next/dist/lib/page-types.js +18 -0
  843. package/assets/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +185 -0
  844. package/assets/standalone/node_modules/next/dist/lib/pick.js +19 -0
  845. package/assets/standalone/node_modules/next/dist/lib/picocolors.js +177 -0
  846. package/assets/standalone/node_modules/next/dist/lib/pretty-bytes.js +74 -0
  847. package/assets/standalone/node_modules/next/dist/lib/realpath.js +20 -0
  848. package/assets/standalone/node_modules/next/dist/lib/recursive-copy.js +76 -0
  849. package/assets/standalone/node_modules/next/dist/lib/recursive-delete.js +137 -0
  850. package/assets/standalone/node_modules/next/dist/lib/recursive-readdir.js +124 -0
  851. package/assets/standalone/node_modules/next/dist/lib/redirect-status.js +46 -0
  852. package/assets/standalone/node_modules/next/dist/lib/require-instrumentation-client.js +26 -0
  853. package/assets/standalone/node_modules/next/dist/lib/resolve-build-paths.js +149 -0
  854. package/assets/standalone/node_modules/next/dist/lib/resolve-from.js +65 -0
  855. package/assets/standalone/node_modules/next/dist/lib/route-pattern-normalizer.js +107 -0
  856. package/assets/standalone/node_modules/next/dist/lib/scheduler.js +64 -0
  857. package/assets/standalone/node_modules/next/dist/lib/semver-noop.js +18 -0
  858. package/assets/standalone/node_modules/next/dist/lib/server-external-packages.jsonc +103 -0
  859. package/assets/standalone/node_modules/next/dist/lib/setup-exception-listeners.js +11 -0
  860. package/assets/standalone/node_modules/next/dist/lib/static-env.js +92 -0
  861. package/assets/standalone/node_modules/next/dist/lib/try-to-parse-path.js +68 -0
  862. package/assets/standalone/node_modules/next/dist/lib/turbopack-warning.js +186 -0
  863. package/assets/standalone/node_modules/next/dist/lib/typescript/diagnosticFormatter.js +240 -0
  864. package/assets/standalone/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js +73 -0
  865. package/assets/standalone/node_modules/next/dist/lib/typescript/getTypeScriptIntent.js +52 -0
  866. package/assets/standalone/node_modules/next/dist/lib/typescript/missingDependencyError.js +27 -0
  867. package/assets/standalone/node_modules/next/dist/lib/typescript/runTypeCheck.js +151 -0
  868. package/assets/standalone/node_modules/next/dist/lib/typescript/type-paths.js +56 -0
  869. package/assets/standalone/node_modules/next/dist/lib/typescript/writeAppTypeDeclarations.js +65 -0
  870. package/assets/standalone/node_modules/next/dist/lib/typescript/writeConfigurationDefaults.js +394 -0
  871. package/assets/standalone/node_modules/next/dist/lib/url.js +75 -0
  872. package/assets/standalone/node_modules/next/dist/lib/verify-partytown-setup.js +115 -0
  873. package/assets/standalone/node_modules/next/dist/lib/verify-root-layout.js +165 -0
  874. package/assets/standalone/node_modules/next/dist/lib/verify-typescript-setup.js +178 -0
  875. package/assets/standalone/node_modules/next/dist/lib/wait.js +19 -0
  876. package/assets/standalone/node_modules/next/dist/lib/with-promise-cache.js +24 -0
  877. package/assets/standalone/node_modules/next/dist/lib/worker.js +223 -0
  878. package/assets/standalone/node_modules/next/dist/next-devtools/server/shared.js +61 -0
  879. package/assets/standalone/node_modules/next/dist/server/ReactDOMServerPages.js +16 -0
  880. package/assets/standalone/node_modules/next/dist/server/accept-header.js +132 -0
  881. package/assets/standalone/node_modules/next/dist/server/after/after-context.js +140 -0
  882. package/assets/standalone/node_modules/next/dist/server/after/after.js +26 -0
  883. package/assets/standalone/node_modules/next/dist/server/after/awaiter.js +74 -0
  884. package/assets/standalone/node_modules/next/dist/server/after/builtin-request-context.js +38 -0
  885. package/assets/standalone/node_modules/next/dist/server/after/index.js +21 -0
  886. package/assets/standalone/node_modules/next/dist/server/after/run-with-after.js +35 -0
  887. package/assets/standalone/node_modules/next/dist/server/api-utils/get-cookie-parser.js +22 -0
  888. package/assets/standalone/node_modules/next/dist/server/api-utils/index.js +201 -0
  889. package/assets/standalone/node_modules/next/dist/server/api-utils/node/api-resolver.js +395 -0
  890. package/assets/standalone/node_modules/next/dist/server/api-utils/node/parse-body.js +79 -0
  891. package/assets/standalone/node_modules/next/dist/server/api-utils/node/try-get-preview-data.js +86 -0
  892. package/assets/standalone/node_modules/next/dist/server/api-utils/web.js +17 -0
  893. package/assets/standalone/node_modules/next/dist/server/app-render/action-async-storage-instance.js +14 -0
  894. package/assets/standalone/node_modules/next/dist/server/app-render/action-async-storage.external.js +13 -0
  895. package/assets/standalone/node_modules/next/dist/server/app-render/action-handler.js +952 -0
  896. package/assets/standalone/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js +14 -0
  897. package/assets/standalone/node_modules/next/dist/server/app-render/after-task-async-storage.external.js +13 -0
  898. package/assets/standalone/node_modules/next/dist/server/app-render/app-render-prerender-utils.js +249 -0
  899. package/assets/standalone/node_modules/next/dist/server/app-render/app-render-render-utils.js +112 -0
  900. package/assets/standalone/node_modules/next/dist/server/app-render/app-render-scheduling.js +188 -0
  901. package/assets/standalone/node_modules/next/dist/server/app-render/app-render.js +3526 -0
  902. package/assets/standalone/node_modules/next/dist/server/app-render/async-local-storage.js +76 -0
  903. package/assets/standalone/node_modules/next/dist/server/app-render/cache-signal.js +181 -0
  904. package/assets/standalone/node_modules/next/dist/server/app-render/collect-segment-data.js +276 -0
  905. package/assets/standalone/node_modules/next/dist/server/app-render/console-async-storage-instance.js +14 -0
  906. package/assets/standalone/node_modules/next/dist/server/app-render/console-async-storage.external.js +13 -0
  907. package/assets/standalone/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js +33 -0
  908. package/assets/standalone/node_modules/next/dist/server/app-render/create-component-tree.js +754 -0
  909. package/assets/standalone/node_modules/next/dist/server/app-render/create-error-handler.js +187 -0
  910. package/assets/standalone/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js +76 -0
  911. package/assets/standalone/node_modules/next/dist/server/app-render/csrf-protection.js +75 -0
  912. package/assets/standalone/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js +14 -0
  913. package/assets/standalone/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js +13 -0
  914. package/assets/standalone/node_modules/next/dist/server/app-render/dynamic-rendering.js +828 -0
  915. package/assets/standalone/node_modules/next/dist/server/app-render/encryption-utils-server.js +114 -0
  916. package/assets/standalone/node_modules/next/dist/server/app-render/encryption-utils.js +93 -0
  917. package/assets/standalone/node_modules/next/dist/server/app-render/encryption.js +238 -0
  918. package/assets/standalone/node_modules/next/dist/server/app-render/entry-base.js +237 -0
  919. package/assets/standalone/node_modules/next/dist/server/app-render/flight-render-result.js +28 -0
  920. package/assets/standalone/node_modules/next/dist/server/app-render/get-asset-query-string.js +29 -0
  921. package/assets/standalone/node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js +49 -0
  922. package/assets/standalone/node_modules/next/dist/server/app-render/get-layer-assets.js +65 -0
  923. package/assets/standalone/node_modules/next/dist/server/app-render/get-preloadable-fonts.js +39 -0
  924. package/assets/standalone/node_modules/next/dist/server/app-render/get-script-nonce-from-header.js +44 -0
  925. package/assets/standalone/node_modules/next/dist/server/app-render/get-short-dynamic-param-type.js +25 -0
  926. package/assets/standalone/node_modules/next/dist/server/app-render/has-loading-component-in-tree.js +19 -0
  927. package/assets/standalone/node_modules/next/dist/server/app-render/interop-default.js +17 -0
  928. package/assets/standalone/node_modules/next/dist/server/app-render/make-get-server-inserted-html.js +92 -0
  929. package/assets/standalone/node_modules/next/dist/server/app-render/manifests-singleton.js +257 -0
  930. package/assets/standalone/node_modules/next/dist/server/app-render/metadata-insertion/create-server-inserted-metadata.js +28 -0
  931. package/assets/standalone/node_modules/next/dist/server/app-render/module-loading/track-dynamic-import.js +57 -0
  932. package/assets/standalone/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js +32 -0
  933. package/assets/standalone/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js +66 -0
  934. package/assets/standalone/node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js +49 -0
  935. package/assets/standalone/node_modules/next/dist/server/app-render/postponed-state.js +156 -0
  936. package/assets/standalone/node_modules/next/dist/server/app-render/prospective-render-utils.js +73 -0
  937. package/assets/standalone/node_modules/next/dist/server/app-render/react-large-shell-error.js +17 -0
  938. package/assets/standalone/node_modules/next/dist/server/app-render/react-server.node.js +39 -0
  939. package/assets/standalone/node_modules/next/dist/server/app-render/render-css-resource.js +52 -0
  940. package/assets/standalone/node_modules/next/dist/server/app-render/required-scripts.js +76 -0
  941. package/assets/standalone/node_modules/next/dist/server/app-render/rsc/postpone.js +18 -0
  942. package/assets/standalone/node_modules/next/dist/server/app-render/rsc/preloads.js +74 -0
  943. package/assets/standalone/node_modules/next/dist/server/app-render/rsc/taint.js +79 -0
  944. package/assets/standalone/node_modules/next/dist/server/app-render/segment-explorer-path.js +103 -0
  945. package/assets/standalone/node_modules/next/dist/server/app-render/server-inserted-html.js +77 -0
  946. package/assets/standalone/node_modules/next/dist/server/app-render/staged-rendering.js +273 -0
  947. package/assets/standalone/node_modules/next/dist/server/app-render/staged-validation.js +32 -0
  948. package/assets/standalone/node_modules/next/dist/server/app-render/strip-flight-headers.js +18 -0
  949. package/assets/standalone/node_modules/next/dist/server/app-render/types.js +59 -0
  950. package/assets/standalone/node_modules/next/dist/server/app-render/use-flight-response.js +212 -0
  951. package/assets/standalone/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js +185 -0
  952. package/assets/standalone/node_modules/next/dist/server/app-render/work-async-storage-instance.js +14 -0
  953. package/assets/standalone/node_modules/next/dist/server/app-render/work-async-storage.external.js +13 -0
  954. package/assets/standalone/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js +14 -0
  955. package/assets/standalone/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js +252 -0
  956. package/assets/standalone/node_modules/next/dist/server/async-storage/draft-mode-provider.js +62 -0
  957. package/assets/standalone/node_modules/next/dist/server/async-storage/request-store.js +144 -0
  958. package/assets/standalone/node_modules/next/dist/server/async-storage/with-store.js +6 -0
  959. package/assets/standalone/node_modules/next/dist/server/async-storage/work-store.js +94 -0
  960. package/assets/standalone/node_modules/next/dist/server/base-http/helpers.js +36 -0
  961. package/assets/standalone/node_modules/next/dist/server/base-http/index.js +54 -0
  962. package/assets/standalone/node_modules/next/dist/server/base-http/node.js +147 -0
  963. package/assets/standalone/node_modules/next/dist/server/base-http/web.js +124 -0
  964. package/assets/standalone/node_modules/next/dist/server/base-server.js +1862 -0
  965. package/assets/standalone/node_modules/next/dist/server/body-streams.js +114 -0
  966. package/assets/standalone/node_modules/next/dist/server/cache-dir.js +26 -0
  967. package/assets/standalone/node_modules/next/dist/server/capsize-font-metrics.json +181516 -0
  968. package/assets/standalone/node_modules/next/dist/server/ci-info.js +41 -0
  969. package/assets/standalone/node_modules/next/dist/server/client-component-renderer-logger.js +70 -0
  970. package/assets/standalone/node_modules/next/dist/server/config-schema.js +632 -0
  971. package/assets/standalone/node_modules/next/dist/server/config-shared.js +319 -0
  972. package/assets/standalone/node_modules/next/dist/server/config-utils.js +185 -0
  973. package/assets/standalone/node_modules/next/dist/server/config.js +1474 -0
  974. package/assets/standalone/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js +96 -0
  975. package/assets/standalone/node_modules/next/dist/server/crypto-utils.js +70 -0
  976. package/assets/standalone/node_modules/next/dist/server/dev/browser-logs/file-logger.js +183 -0
  977. package/assets/standalone/node_modules/next/dist/server/dev/browser-logs/receive-logs.js +512 -0
  978. package/assets/standalone/node_modules/next/dist/server/dev/browser-logs/source-map.js +225 -0
  979. package/assets/standalone/node_modules/next/dist/server/dev/debug-channel.js +87 -0
  980. package/assets/standalone/node_modules/next/dist/server/dev/dev-indicator-server-state.js +15 -0
  981. package/assets/standalone/node_modules/next/dist/server/dev/get-source-map-from-file.js +100 -0
  982. package/assets/standalone/node_modules/next/dist/server/dev/hot-middleware.js +274 -0
  983. package/assets/standalone/node_modules/next/dist/server/dev/hot-reloader-rspack.js +171 -0
  984. package/assets/standalone/node_modules/next/dist/server/dev/hot-reloader-shared-utils.js +56 -0
  985. package/assets/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1247 -0
  986. package/assets/standalone/node_modules/next/dist/server/dev/hot-reloader-types.js +58 -0
  987. package/assets/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1382 -0
  988. package/assets/standalone/node_modules/next/dist/server/dev/log-requests.js +141 -0
  989. package/assets/standalone/node_modules/next/dist/server/dev/messages.js +74 -0
  990. package/assets/standalone/node_modules/next/dist/server/dev/middleware-turbopack.js +393 -0
  991. package/assets/standalone/node_modules/next/dist/server/dev/middleware-webpack.js +473 -0
  992. package/assets/standalone/node_modules/next/dist/server/dev/node-stack-frames.js +72 -0
  993. package/assets/standalone/node_modules/next/dist/server/dev/on-demand-entry-handler.js +704 -0
  994. package/assets/standalone/node_modules/next/dist/server/dev/parse-version-info.js +108 -0
  995. package/assets/standalone/node_modules/next/dist/server/dev/require-cache.js +49 -0
  996. package/assets/standalone/node_modules/next/dist/server/dev/serialized-errors.js +67 -0
  997. package/assets/standalone/node_modules/next/dist/server/dev/static-paths-worker.js +103 -0
  998. package/assets/standalone/node_modules/next/dist/server/dev/turbopack-utils.js +696 -0
  999. package/assets/standalone/node_modules/next/dist/server/dynamic-rendering-utils.js +86 -0
  1000. package/assets/standalone/node_modules/next/dist/server/font-utils.js +43 -0
  1001. package/assets/standalone/node_modules/next/dist/server/get-app-route-from-entrypoint.js +30 -0
  1002. package/assets/standalone/node_modules/next/dist/server/get-page-files.js +23 -0
  1003. package/assets/standalone/node_modules/next/dist/server/get-route-from-entrypoint.js +35 -0
  1004. package/assets/standalone/node_modules/next/dist/server/htmlescape.js +37 -0
  1005. package/assets/standalone/node_modules/next/dist/server/image-optimizer.js +1090 -0
  1006. package/assets/standalone/node_modules/next/dist/server/instrumentation/types.js +6 -0
  1007. package/assets/standalone/node_modules/next/dist/server/instrumentation/utils.js +21 -0
  1008. package/assets/standalone/node_modules/next/dist/server/internal-utils.js +39 -0
  1009. package/assets/standalone/node_modules/next/dist/server/is-private-ip.js +36 -0
  1010. package/assets/standalone/node_modules/next/dist/server/lib/app-dir-module.js +59 -0
  1011. package/assets/standalone/node_modules/next/dist/server/lib/app-info-log.js +154 -0
  1012. package/assets/standalone/node_modules/next/dist/server/lib/async-callback-set.js +29 -0
  1013. package/assets/standalone/node_modules/next/dist/server/lib/cache-control.js +22 -0
  1014. package/assets/standalone/node_modules/next/dist/server/lib/cache-handlers/default.external.js +18 -0
  1015. package/assets/standalone/node_modules/next/dist/server/lib/cache-handlers/default.js +160 -0
  1016. package/assets/standalone/node_modules/next/dist/server/lib/cache-handlers/types.js +8 -0
  1017. package/assets/standalone/node_modules/next/dist/server/lib/chrome-devtools-workspace.js +116 -0
  1018. package/assets/standalone/node_modules/next/dist/server/lib/clone-response.js +77 -0
  1019. package/assets/standalone/node_modules/next/dist/server/lib/cpu-profile.js +28 -0
  1020. package/assets/standalone/node_modules/next/dist/server/lib/decode-query-path-parameter.js +26 -0
  1021. package/assets/standalone/node_modules/next/dist/server/lib/dedupe-fetch.js +163 -0
  1022. package/assets/standalone/node_modules/next/dist/server/lib/dev-bundler-service.js +95 -0
  1023. package/assets/standalone/node_modules/next/dist/server/lib/etag.js +56 -0
  1024. package/assets/standalone/node_modules/next/dist/server/lib/experimental/create-env-definitions.js +48 -0
  1025. package/assets/standalone/node_modules/next/dist/server/lib/experimental/ppr.js +47 -0
  1026. package/assets/standalone/node_modules/next/dist/server/lib/find-page-file.js +127 -0
  1027. package/assets/standalone/node_modules/next/dist/server/lib/fix-mojibake.js +25 -0
  1028. package/assets/standalone/node_modules/next/dist/server/lib/format-hostname.js +16 -0
  1029. package/assets/standalone/node_modules/next/dist/server/lib/i18n-provider.js +129 -0
  1030. package/assets/standalone/node_modules/next/dist/server/lib/implicit-tags.js +77 -0
  1031. package/assets/standalone/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +333 -0
  1032. package/assets/standalone/node_modules/next/dist/server/lib/incremental-cache/index.js +479 -0
  1033. package/assets/standalone/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js +40 -0
  1034. package/assets/standalone/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js +73 -0
  1035. package/assets/standalone/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js +55 -0
  1036. package/assets/standalone/node_modules/next/dist/server/lib/is-ipv6.js +41 -0
  1037. package/assets/standalone/node_modules/next/dist/server/lib/lazy-result.js +46 -0
  1038. package/assets/standalone/node_modules/next/dist/server/lib/lru-cache.js +183 -0
  1039. package/assets/standalone/node_modules/next/dist/server/lib/match-next-data-pathname.js +18 -0
  1040. package/assets/standalone/node_modules/next/dist/server/lib/mock-request.js +416 -0
  1041. package/assets/standalone/node_modules/next/dist/server/lib/module-loader/module-loader.js +8 -0
  1042. package/assets/standalone/node_modules/next/dist/server/lib/module-loader/node-module-loader.js +25 -0
  1043. package/assets/standalone/node_modules/next/dist/server/lib/module-loader/route-module-loader.js +26 -0
  1044. package/assets/standalone/node_modules/next/dist/server/lib/node-fs-methods.js +28 -0
  1045. package/assets/standalone/node_modules/next/dist/server/lib/parse-stack.js +46 -0
  1046. package/assets/standalone/node_modules/next/dist/server/lib/patch-fetch.js +945 -0
  1047. package/assets/standalone/node_modules/next/dist/server/lib/patch-set-header.js +38 -0
  1048. package/assets/standalone/node_modules/next/dist/server/lib/render-server.js +152 -0
  1049. package/assets/standalone/node_modules/next/dist/server/lib/router-server.js +672 -0
  1050. package/assets/standalone/node_modules/next/dist/server/lib/router-utils/block-cross-site.js +76 -0
  1051. package/assets/standalone/node_modules/next/dist/server/lib/router-utils/build-data-route.js +48 -0
  1052. package/assets/standalone/node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.js +50 -0
  1053. package/assets/standalone/node_modules/next/dist/server/lib/router-utils/cache-life-type-utils.js +211 -0
  1054. package/assets/standalone/node_modules/next/dist/server/lib/router-utils/decode-path-params.js +42 -0
  1055. package/assets/standalone/node_modules/next/dist/server/lib/router-utils/filesystem.js +590 -0
  1056. package/assets/standalone/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js +89 -0
  1057. package/assets/standalone/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js +96 -0
  1058. package/assets/standalone/node_modules/next/dist/server/lib/router-utils/is-postpone.js +16 -0
  1059. package/assets/standalone/node_modules/next/dist/server/lib/router-utils/proxy-request.js +118 -0
  1060. package/assets/standalone/node_modules/next/dist/server/lib/router-utils/resolve-routes.js +608 -0
  1061. package/assets/standalone/node_modules/next/dist/server/lib/router-utils/route-types-utils.js +286 -0
  1062. package/assets/standalone/node_modules/next/dist/server/lib/router-utils/router-server-context.js +26 -0
  1063. package/assets/standalone/node_modules/next/dist/server/lib/router-utils/typegen.js +613 -0
  1064. package/assets/standalone/node_modules/next/dist/server/lib/router-utils/types.js +6 -0
  1065. package/assets/standalone/node_modules/next/dist/server/lib/server-action-request-meta.js +53 -0
  1066. package/assets/standalone/node_modules/next/dist/server/lib/server-ipc/utils.js +80 -0
  1067. package/assets/standalone/node_modules/next/dist/server/lib/source-maps.js +196 -0
  1068. package/assets/standalone/node_modules/next/dist/server/lib/start-server.js +460 -0
  1069. package/assets/standalone/node_modules/next/dist/server/lib/streaming-metadata.js +38 -0
  1070. package/assets/standalone/node_modules/next/dist/server/lib/to-route.js +37 -0
  1071. package/assets/standalone/node_modules/next/dist/server/lib/trace/constants.js +203 -0
  1072. package/assets/standalone/node_modules/next/dist/server/lib/trace/tracer.js +270 -0
  1073. package/assets/standalone/node_modules/next/dist/server/lib/trace/utils.js +16 -0
  1074. package/assets/standalone/node_modules/next/dist/server/lib/types.js +6 -0
  1075. package/assets/standalone/node_modules/next/dist/server/lib/utils.js +249 -0
  1076. package/assets/standalone/node_modules/next/dist/server/lib/worker-utils.js +36 -0
  1077. package/assets/standalone/node_modules/next/dist/server/load-components.js +177 -0
  1078. package/assets/standalone/node_modules/next/dist/server/load-default-error-components.js +41 -0
  1079. package/assets/standalone/node_modules/next/dist/server/load-manifest.external.js +97 -0
  1080. package/assets/standalone/node_modules/next/dist/server/match-bundle.js +25 -0
  1081. package/assets/standalone/node_modules/next/dist/server/mcp/get-mcp-middleware.js +49 -0
  1082. package/assets/standalone/node_modules/next/dist/server/mcp/get-or-create-mcp-server.js +41 -0
  1083. package/assets/standalone/node_modules/next/dist/server/mcp/mcp-telemetry-tracker.js +82 -0
  1084. package/assets/standalone/node_modules/next/dist/server/mcp/tools/get-errors.js +107 -0
  1085. package/assets/standalone/node_modules/next/dist/server/mcp/tools/get-logs.js +61 -0
  1086. package/assets/standalone/node_modules/next/dist/server/mcp/tools/get-page-metadata.js +180 -0
  1087. package/assets/standalone/node_modules/next/dist/server/mcp/tools/get-project-metadata.js +55 -0
  1088. package/assets/standalone/node_modules/next/dist/server/mcp/tools/get-routes.js +171 -0
  1089. package/assets/standalone/node_modules/next/dist/server/mcp/tools/get-server-action-by-id.js +113 -0
  1090. package/assets/standalone/node_modules/next/dist/server/mcp/tools/next-instance-error-state.js +31 -0
  1091. package/assets/standalone/node_modules/next/dist/server/mcp/tools/utils/browser-communication.js +90 -0
  1092. package/assets/standalone/node_modules/next/dist/server/mcp/tools/utils/format-errors.js +147 -0
  1093. package/assets/standalone/node_modules/next/dist/server/next-server.js +1459 -0
  1094. package/assets/standalone/node_modules/next/dist/server/next-typescript.js +13 -0
  1095. package/assets/standalone/node_modules/next/dist/server/next.js +452 -0
  1096. package/assets/standalone/node_modules/next/dist/server/node-environment-baseline.js +25 -0
  1097. package/assets/standalone/node_modules/next/dist/server/node-environment-extensions/console-dim.external.js +246 -0
  1098. package/assets/standalone/node_modules/next/dist/server/node-environment-extensions/console-exit.js +49 -0
  1099. package/assets/standalone/node_modules/next/dist/server/node-environment-extensions/console-file.js +56 -0
  1100. package/assets/standalone/node_modules/next/dist/server/node-environment-extensions/date.js +52 -0
  1101. package/assets/standalone/node_modules/next/dist/server/node-environment-extensions/error-inspect.js +8 -0
  1102. package/assets/standalone/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js +570 -0
  1103. package/assets/standalone/node_modules/next/dist/server/node-environment-extensions/global-behaviors.js +33 -0
  1104. package/assets/standalone/node_modules/next/dist/server/node-environment-extensions/node-crypto.js +103 -0
  1105. package/assets/standalone/node_modules/next/dist/server/node-environment-extensions/random.js +28 -0
  1106. package/assets/standalone/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.js +489 -0
  1107. package/assets/standalone/node_modules/next/dist/server/node-environment-extensions/utils.js +186 -0
  1108. package/assets/standalone/node_modules/next/dist/server/node-environment-extensions/web-crypto.js +45 -0
  1109. package/assets/standalone/node_modules/next/dist/server/node-environment.js +19 -0
  1110. package/assets/standalone/node_modules/next/dist/server/node-polyfill-crypto.js +21 -0
  1111. package/assets/standalone/node_modules/next/dist/server/normalizers/absolute-filename-normalizer.js +33 -0
  1112. package/assets/standalone/node_modules/next/dist/server/normalizers/built/app/app-bundle-path-normalizer.js +54 -0
  1113. package/assets/standalone/node_modules/next/dist/server/normalizers/built/app/app-filename-normalizer.js +22 -0
  1114. package/assets/standalone/node_modules/next/dist/server/normalizers/built/app/app-page-normalizer.js +40 -0
  1115. package/assets/standalone/node_modules/next/dist/server/normalizers/built/app/app-pathname-normalizer.js +55 -0
  1116. package/assets/standalone/node_modules/next/dist/server/normalizers/built/app/index.js +42 -0
  1117. package/assets/standalone/node_modules/next/dist/server/normalizers/built/pages/index.js +44 -0
  1118. package/assets/standalone/node_modules/next/dist/server/normalizers/built/pages/pages-bundle-path-normalizer.js +55 -0
  1119. package/assets/standalone/node_modules/next/dist/server/normalizers/built/pages/pages-filename-normalizer.js +22 -0
  1120. package/assets/standalone/node_modules/next/dist/server/normalizers/built/pages/pages-page-normalizer.js +19 -0
  1121. package/assets/standalone/node_modules/next/dist/server/normalizers/built/pages/pages-pathname-normalizer.js +19 -0
  1122. package/assets/standalone/node_modules/next/dist/server/normalizers/locale-route-normalizer.js +26 -0
  1123. package/assets/standalone/node_modules/next/dist/server/normalizers/normalizer.js +6 -0
  1124. package/assets/standalone/node_modules/next/dist/server/normalizers/normalizers.js +23 -0
  1125. package/assets/standalone/node_modules/next/dist/server/normalizers/prefixing-normalizer.js +26 -0
  1126. package/assets/standalone/node_modules/next/dist/server/normalizers/request/base-path.js +25 -0
  1127. package/assets/standalone/node_modules/next/dist/server/normalizers/request/next-data.js +38 -0
  1128. package/assets/standalone/node_modules/next/dist/server/normalizers/request/pathname-normalizer.js +6 -0
  1129. package/assets/standalone/node_modules/next/dist/server/normalizers/request/prefix.js +39 -0
  1130. package/assets/standalone/node_modules/next/dist/server/normalizers/request/rsc.js +19 -0
  1131. package/assets/standalone/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.js +32 -0
  1132. package/assets/standalone/node_modules/next/dist/server/normalizers/request/suffix.js +27 -0
  1133. package/assets/standalone/node_modules/next/dist/server/normalizers/underscore-normalizer.js +17 -0
  1134. package/assets/standalone/node_modules/next/dist/server/normalizers/wrap-normalizer-fn.js +17 -0
  1135. package/assets/standalone/node_modules/next/dist/server/og/image-response.js +53 -0
  1136. package/assets/standalone/node_modules/next/dist/server/patch-error-inspect.js +436 -0
  1137. package/assets/standalone/node_modules/next/dist/server/pipe-readable.js +140 -0
  1138. package/assets/standalone/node_modules/next/dist/server/post-process.js +39 -0
  1139. package/assets/standalone/node_modules/next/dist/server/render-result.js +195 -0
  1140. package/assets/standalone/node_modules/next/dist/server/render.js +1138 -0
  1141. package/assets/standalone/node_modules/next/dist/server/request/connection.js +111 -0
  1142. package/assets/standalone/node_modules/next/dist/server/request/cookies.js +220 -0
  1143. package/assets/standalone/node_modules/next/dist/server/request/draft-mode.js +207 -0
  1144. package/assets/standalone/node_modules/next/dist/server/request/fallback-params.js +69 -0
  1145. package/assets/standalone/node_modules/next/dist/server/request/headers.js +219 -0
  1146. package/assets/standalone/node_modules/next/dist/server/request/params.js +415 -0
  1147. package/assets/standalone/node_modules/next/dist/server/request/pathname.js +104 -0
  1148. package/assets/standalone/node_modules/next/dist/server/request/root-params.js +157 -0
  1149. package/assets/standalone/node_modules/next/dist/server/request/search-params.js +432 -0
  1150. package/assets/standalone/node_modules/next/dist/server/request/utils.js +51 -0
  1151. package/assets/standalone/node_modules/next/dist/server/request-meta.js +55 -0
  1152. package/assets/standalone/node_modules/next/dist/server/require-hook.js +71 -0
  1153. package/assets/standalone/node_modules/next/dist/server/require.js +109 -0
  1154. package/assets/standalone/node_modules/next/dist/server/response-cache/index.js +311 -0
  1155. package/assets/standalone/node_modules/next/dist/server/response-cache/types.js +41 -0
  1156. package/assets/standalone/node_modules/next/dist/server/response-cache/utils.js +103 -0
  1157. package/assets/standalone/node_modules/next/dist/server/response-cache/web.js +101 -0
  1158. package/assets/standalone/node_modules/next/dist/server/resume-data-cache/cache-store.js +84 -0
  1159. package/assets/standalone/node_modules/next/dist/server/resume-data-cache/resume-data-cache.js +115 -0
  1160. package/assets/standalone/node_modules/next/dist/server/revalidation-utils.js +152 -0
  1161. package/assets/standalone/node_modules/next/dist/server/route-definitions/app-page-route-definition.js +16 -0
  1162. package/assets/standalone/node_modules/next/dist/server/route-definitions/app-route-route-definition.js +6 -0
  1163. package/assets/standalone/node_modules/next/dist/server/route-definitions/locale-route-definition.js +6 -0
  1164. package/assets/standalone/node_modules/next/dist/server/route-definitions/pages-api-route-definition.js +6 -0
  1165. package/assets/standalone/node_modules/next/dist/server/route-definitions/pages-route-definition.js +6 -0
  1166. package/assets/standalone/node_modules/next/dist/server/route-definitions/route-definition.js +6 -0
  1167. package/assets/standalone/node_modules/next/dist/server/route-kind.js +32 -0
  1168. package/assets/standalone/node_modules/next/dist/server/route-matcher-managers/default-route-matcher-manager.js +239 -0
  1169. package/assets/standalone/node_modules/next/dist/server/route-matcher-managers/dev-route-matcher-manager.js +120 -0
  1170. package/assets/standalone/node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.js +6 -0
  1171. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js +55 -0
  1172. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/app-route-route-matcher-provider.js +43 -0
  1173. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.js +90 -0
  1174. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-route-route-matcher-provider.js +112 -0
  1175. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-api-route-matcher-provider.js +77 -0
  1176. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-route-matcher-provider.js +77 -0
  1177. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/dev/file-cache-route-matcher-provider.js +28 -0
  1178. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/batched-file-reader.js +106 -0
  1179. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/default-file-reader.js +42 -0
  1180. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/file-reader.js +6 -0
  1181. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/helpers/cached-route-matcher-provider.js +30 -0
  1182. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/manifest-loader.js +6 -0
  1183. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/node-manifest-loader.js +34 -0
  1184. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js +20 -0
  1185. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/manifest-route-matcher-provider.js +21 -0
  1186. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/pages-api-route-matcher-provider.js +55 -0
  1187. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/pages-route-matcher-provider.js +64 -0
  1188. package/assets/standalone/node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.js +6 -0
  1189. package/assets/standalone/node_modules/next/dist/server/route-matchers/app-page-route-matcher.js +18 -0
  1190. package/assets/standalone/node_modules/next/dist/server/route-matchers/app-route-route-matcher.js +15 -0
  1191. package/assets/standalone/node_modules/next/dist/server/route-matchers/locale-route-matcher.js +68 -0
  1192. package/assets/standalone/node_modules/next/dist/server/route-matchers/pages-api-route-matcher.js +30 -0
  1193. package/assets/standalone/node_modules/next/dist/server/route-matchers/pages-route-matcher.js +30 -0
  1194. package/assets/standalone/node_modules/next/dist/server/route-matchers/route-matcher.js +54 -0
  1195. package/assets/standalone/node_modules/next/dist/server/route-matches/app-page-route-match.js +6 -0
  1196. package/assets/standalone/node_modules/next/dist/server/route-matches/app-route-route-match.js +6 -0
  1197. package/assets/standalone/node_modules/next/dist/server/route-matches/locale-route-match.js +6 -0
  1198. package/assets/standalone/node_modules/next/dist/server/route-matches/pages-api-route-match.js +16 -0
  1199. package/assets/standalone/node_modules/next/dist/server/route-matches/pages-route-match.js +6 -0
  1200. package/assets/standalone/node_modules/next/dist/server/route-matches/route-match.js +6 -0
  1201. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.js +48 -0
  1202. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/module.compiled.js +36 -0
  1203. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/module.js +132 -0
  1204. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/module.render.js +24 -0
  1205. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js +4 -0
  1206. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.js +87 -0
  1207. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/head-manager-context.js +4 -0
  1208. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js +4 -0
  1209. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js +4 -0
  1210. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js +4 -0
  1211. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js +4 -0
  1212. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.js +140 -0
  1213. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-compiler-runtime.js +4 -0
  1214. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js +4 -0
  1215. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js +4 -0
  1216. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js +4 -0
  1217. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-server.js +4 -0
  1218. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-static.js +4 -0
  1219. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js +4 -0
  1220. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js +4 -0
  1221. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js +4 -0
  1222. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.js +125 -0
  1223. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-compiler-runtime.js +4 -0
  1224. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom-server.js +4 -0
  1225. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js +4 -0
  1226. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js +4 -0
  1227. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js +4 -0
  1228. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.js +4 -0
  1229. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js +4 -0
  1230. package/assets/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js +4 -0
  1231. package/assets/standalone/node_modules/next/dist/server/route-modules/app-route/helpers/auto-implement-methods.js +85 -0
  1232. package/assets/standalone/node_modules/next/dist/server/route-modules/app-route/helpers/clean-url.js +24 -0
  1233. package/assets/standalone/node_modules/next/dist/server/route-modules/app-route/helpers/get-pathname-from-absolute-path.js +29 -0
  1234. package/assets/standalone/node_modules/next/dist/server/route-modules/app-route/helpers/is-static-gen-enabled.js +15 -0
  1235. package/assets/standalone/node_modules/next/dist/server/route-modules/app-route/helpers/parsed-url-query-to-params.js +20 -0
  1236. package/assets/standalone/node_modules/next/dist/server/route-modules/app-route/module.compiled.js +36 -0
  1237. package/assets/standalone/node_modules/next/dist/server/route-modules/app-route/module.js +889 -0
  1238. package/assets/standalone/node_modules/next/dist/server/route-modules/app-route/shared-modules.js +56 -0
  1239. package/assets/standalone/node_modules/next/dist/server/route-modules/checks.js +45 -0
  1240. package/assets/standalone/node_modules/next/dist/server/route-modules/pages/builtin/_error.js +100 -0
  1241. package/assets/standalone/node_modules/next/dist/server/route-modules/pages/module.compiled.js +20 -0
  1242. package/assets/standalone/node_modules/next/dist/server/route-modules/pages/module.js +92 -0
  1243. package/assets/standalone/node_modules/next/dist/server/route-modules/pages/module.render.js +24 -0
  1244. package/assets/standalone/node_modules/next/dist/server/route-modules/pages/pages-handler.js +522 -0
  1245. package/assets/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/app-router-context.js +4 -0
  1246. package/assets/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.js +102 -0
  1247. package/assets/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js +4 -0
  1248. package/assets/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/hooks-client-context.js +4 -0
  1249. package/assets/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js +4 -0
  1250. package/assets/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/image-config-context.js +4 -0
  1251. package/assets/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable-context.js +4 -0
  1252. package/assets/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable.js +4 -0
  1253. package/assets/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/router-context.js +4 -0
  1254. package/assets/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/server-inserted-html.js +4 -0
  1255. package/assets/standalone/node_modules/next/dist/server/route-modules/pages-api/module.compiled.js +20 -0
  1256. package/assets/standalone/node_modules/next/dist/server/route-modules/pages-api/module.js +58 -0
  1257. package/assets/standalone/node_modules/next/dist/server/route-modules/route-module.js +597 -0
  1258. package/assets/standalone/node_modules/next/dist/server/runtime-reacts.external.js +46 -0
  1259. package/assets/standalone/node_modules/next/dist/server/send-payload.js +88 -0
  1260. package/assets/standalone/node_modules/next/dist/server/send-response.js +70 -0
  1261. package/assets/standalone/node_modules/next/dist/server/serve-static.js +66 -0
  1262. package/assets/standalone/node_modules/next/dist/server/server-route-utils.js +30 -0
  1263. package/assets/standalone/node_modules/next/dist/server/server-utils.js +323 -0
  1264. package/assets/standalone/node_modules/next/dist/server/setup-http-agent-env.js +31 -0
  1265. package/assets/standalone/node_modules/next/dist/server/stream-utils/encoded-tags.js +114 -0
  1266. package/assets/standalone/node_modules/next/dist/server/stream-utils/node-web-streams-helper.js +737 -0
  1267. package/assets/standalone/node_modules/next/dist/server/stream-utils/uint8array-helpers.js +69 -0
  1268. package/assets/standalone/node_modules/next/dist/server/typescript/constant.js +97 -0
  1269. package/assets/standalone/node_modules/next/dist/server/typescript/index.js +199 -0
  1270. package/assets/standalone/node_modules/next/dist/server/typescript/rules/client-boundary.js +97 -0
  1271. package/assets/standalone/node_modules/next/dist/server/typescript/rules/config.js +501 -0
  1272. package/assets/standalone/node_modules/next/dist/server/typescript/rules/entry.js +149 -0
  1273. package/assets/standalone/node_modules/next/dist/server/typescript/rules/error.js +38 -0
  1274. package/assets/standalone/node_modules/next/dist/server/typescript/rules/metadata.js +234 -0
  1275. package/assets/standalone/node_modules/next/dist/server/typescript/rules/server-boundary.js +115 -0
  1276. package/assets/standalone/node_modules/next/dist/server/typescript/rules/server.js +79 -0
  1277. package/assets/standalone/node_modules/next/dist/server/typescript/utils.js +212 -0
  1278. package/assets/standalone/node_modules/next/dist/server/use-cache/cache-life.js +161 -0
  1279. package/assets/standalone/node_modules/next/dist/server/use-cache/cache-tag.js +50 -0
  1280. package/assets/standalone/node_modules/next/dist/server/use-cache/constants.js +28 -0
  1281. package/assets/standalone/node_modules/next/dist/server/use-cache/handlers.js +121 -0
  1282. package/assets/standalone/node_modules/next/dist/server/use-cache/use-cache-errors.js +36 -0
  1283. package/assets/standalone/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1336 -0
  1284. package/assets/standalone/node_modules/next/dist/server/utils.js +73 -0
  1285. package/assets/standalone/node_modules/next/dist/server/web/adapter.js +388 -0
  1286. package/assets/standalone/node_modules/next/dist/server/web/edge-route-module-wrapper.js +122 -0
  1287. package/assets/standalone/node_modules/next/dist/server/web/error.js +54 -0
  1288. package/assets/standalone/node_modules/next/dist/server/web/exports/index.js +56 -0
  1289. package/assets/standalone/node_modules/next/dist/server/web/get-edge-preview-props.js +23 -0
  1290. package/assets/standalone/node_modules/next/dist/server/web/globals.js +128 -0
  1291. package/assets/standalone/node_modules/next/dist/server/web/http.js +39 -0
  1292. package/assets/standalone/node_modules/next/dist/server/web/internal-edge-wait-until.js +64 -0
  1293. package/assets/standalone/node_modules/next/dist/server/web/next-url.js +195 -0
  1294. package/assets/standalone/node_modules/next/dist/server/web/sandbox/context.js +462 -0
  1295. package/assets/standalone/node_modules/next/dist/server/web/sandbox/fetch-inline-assets.js +35 -0
  1296. package/assets/standalone/node_modules/next/dist/server/web/sandbox/index.js +28 -0
  1297. package/assets/standalone/node_modules/next/dist/server/web/sandbox/resource-managers.js +88 -0
  1298. package/assets/standalone/node_modules/next/dist/server/web/sandbox/sandbox.js +134 -0
  1299. package/assets/standalone/node_modules/next/dist/server/web/spec-extension/adapters/headers.js +192 -0
  1300. package/assets/standalone/node_modules/next/dist/server/web/spec-extension/adapters/next-request.js +142 -0
  1301. package/assets/standalone/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js +30 -0
  1302. package/assets/standalone/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js +211 -0
  1303. package/assets/standalone/node_modules/next/dist/server/web/spec-extension/cookies.js +29 -0
  1304. package/assets/standalone/node_modules/next/dist/server/web/spec-extension/fetch-event.js +98 -0
  1305. package/assets/standalone/node_modules/next/dist/server/web/spec-extension/image-response.js +22 -0
  1306. package/assets/standalone/node_modules/next/dist/server/web/spec-extension/request.js +99 -0
  1307. package/assets/standalone/node_modules/next/dist/server/web/spec-extension/response.js +136 -0
  1308. package/assets/standalone/node_modules/next/dist/server/web/spec-extension/revalidate.js +206 -0
  1309. package/assets/standalone/node_modules/next/dist/server/web/spec-extension/unstable-cache.js +284 -0
  1310. package/assets/standalone/node_modules/next/dist/server/web/spec-extension/unstable-no-store.js +49 -0
  1311. package/assets/standalone/node_modules/next/dist/server/web/spec-extension/url-pattern.js +14 -0
  1312. package/assets/standalone/node_modules/next/dist/server/web/spec-extension/user-agent.js +46 -0
  1313. package/assets/standalone/node_modules/next/dist/server/web/types.js +6 -0
  1314. package/assets/standalone/node_modules/next/dist/server/web/utils.js +151 -0
  1315. package/assets/standalone/node_modules/next/dist/server/web/web-on-close.js +87 -0
  1316. package/assets/standalone/node_modules/next/dist/shared/lib/action-revalidation-kind.js +31 -0
  1317. package/assets/standalone/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js +50 -0
  1318. package/assets/standalone/node_modules/next/dist/shared/lib/app-router-types.js +27 -0
  1319. package/assets/standalone/node_modules/next/dist/shared/lib/constants.js +448 -0
  1320. package/assets/standalone/node_modules/next/dist/shared/lib/deep-freeze.js +30 -0
  1321. package/assets/standalone/node_modules/next/dist/shared/lib/deployment-id.js +36 -0
  1322. package/assets/standalone/node_modules/next/dist/shared/lib/dset.js +34 -0
  1323. package/assets/standalone/node_modules/next/dist/shared/lib/encode-uri-path.js +15 -0
  1324. package/assets/standalone/node_modules/next/dist/shared/lib/entry-constants.js +36 -0
  1325. package/assets/standalone/node_modules/next/dist/shared/lib/error-source.js +36 -0
  1326. package/assets/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +39 -0
  1327. package/assets/standalone/node_modules/next/dist/shared/lib/errors/constants.js +19 -0
  1328. package/assets/standalone/node_modules/next/dist/shared/lib/errors/empty-generate-static-params-error.js +24 -0
  1329. package/assets/standalone/node_modules/next/dist/shared/lib/errors/hard-deprecated-config-error.js +20 -0
  1330. package/assets/standalone/node_modules/next/dist/shared/lib/escape-regexp.js +22 -0
  1331. package/assets/standalone/node_modules/next/dist/shared/lib/get-hostname.js +23 -0
  1332. package/assets/standalone/node_modules/next/dist/shared/lib/hash.js +42 -0
  1333. package/assets/standalone/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js +18 -0
  1334. package/assets/standalone/node_modules/next/dist/shared/lib/head.js +163 -0
  1335. package/assets/standalone/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js +60 -0
  1336. package/assets/standalone/node_modules/next/dist/shared/lib/html-context.shared-runtime.js +40 -0
  1337. package/assets/standalone/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js +25 -0
  1338. package/assets/standalone/node_modules/next/dist/shared/lib/i18n/get-locale-redirect.js +59 -0
  1339. package/assets/standalone/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js +54 -0
  1340. package/assets/standalone/node_modules/next/dist/shared/lib/image-blur-svg.js +22 -0
  1341. package/assets/standalone/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js +19 -0
  1342. package/assets/standalone/node_modules/next/dist/shared/lib/image-config.js +75 -0
  1343. package/assets/standalone/node_modules/next/dist/shared/lib/invariant-error.js +18 -0
  1344. package/assets/standalone/node_modules/next/dist/shared/lib/is-internal.js +39 -0
  1345. package/assets/standalone/node_modules/next/dist/shared/lib/is-plain-object.js +42 -0
  1346. package/assets/standalone/node_modules/next/dist/shared/lib/is-thenable.js +20 -0
  1347. package/assets/standalone/node_modules/next/dist/shared/lib/isomorphic/path.js +14 -0
  1348. package/assets/standalone/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js +37 -0
  1349. package/assets/standalone/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js +19 -0
  1350. package/assets/standalone/node_modules/next/dist/shared/lib/loadable.shared-runtime.js +246 -0
  1351. package/assets/standalone/node_modules/next/dist/shared/lib/magic-identifier.js +218 -0
  1352. package/assets/standalone/node_modules/next/dist/shared/lib/match-local-pattern.js +46 -0
  1353. package/assets/standalone/node_modules/next/dist/shared/lib/match-remote-pattern.js +63 -0
  1354. package/assets/standalone/node_modules/next/dist/shared/lib/modern-browserslist-target.js +15 -0
  1355. package/assets/standalone/node_modules/next/dist/shared/lib/no-fallback-error.external.js +18 -0
  1356. package/assets/standalone/node_modules/next/dist/shared/lib/normalized-asset-prefix.js +28 -0
  1357. package/assets/standalone/node_modules/next/dist/shared/lib/page-path/absolute-path-to-page.js +26 -0
  1358. package/assets/standalone/node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js +18 -0
  1359. package/assets/standalone/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js +18 -0
  1360. package/assets/standalone/node_modules/next/dist/shared/lib/page-path/get-page-paths.js +40 -0
  1361. package/assets/standalone/node_modules/next/dist/shared/lib/page-path/normalize-data-path.js +23 -0
  1362. package/assets/standalone/node_modules/next/dist/shared/lib/page-path/normalize-page-path.js +26 -0
  1363. package/assets/standalone/node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js +19 -0
  1364. package/assets/standalone/node_modules/next/dist/shared/lib/page-path/remove-page-path-tail.js +20 -0
  1365. package/assets/standalone/node_modules/next/dist/shared/lib/promise-with-resolvers.js +26 -0
  1366. package/assets/standalone/node_modules/next/dist/shared/lib/router/adapters.js +136 -0
  1367. package/assets/standalone/node_modules/next/dist/shared/lib/router/routes/app.js +122 -0
  1368. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/add-locale.js +28 -0
  1369. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js +20 -0
  1370. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js +20 -0
  1371. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/app-paths.js +51 -0
  1372. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js +17 -0
  1373. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js +24 -0
  1374. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +16 -0
  1375. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js +27 -0
  1376. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/format-url.js +111 -0
  1377. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js +167 -0
  1378. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js +52 -0
  1379. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/get-route-from-asset-path.js +25 -0
  1380. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/get-segment-param.js +90 -0
  1381. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/html-bots.js +17 -0
  1382. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/index.js +30 -0
  1383. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/interception-prefix-from-param-type.js +33 -0
  1384. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/interception-routes.js +108 -0
  1385. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/is-bot.js +57 -0
  1386. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/is-dynamic.js +26 -0
  1387. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.js +31 -0
  1388. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/parse-loader-tree.js +29 -0
  1389. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/parse-path.js +33 -0
  1390. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js +36 -0
  1391. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/parse-url.js +32 -0
  1392. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js +20 -0
  1393. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/path-match.js +49 -0
  1394. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/prepare-destination.js +292 -0
  1395. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/querystring.js +79 -0
  1396. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/relativize-url.js +40 -0
  1397. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js +39 -0
  1398. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js +21 -0
  1399. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/resolve-param-value.js +116 -0
  1400. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/route-match-utils.js +113 -0
  1401. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/route-matcher.js +45 -0
  1402. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/route-regex.js +256 -0
  1403. package/assets/standalone/node_modules/next/dist/shared/lib/router/utils/sorted-routes.js +244 -0
  1404. package/assets/standalone/node_modules/next/dist/shared/lib/router-context.shared-runtime.js +18 -0
  1405. package/assets/standalone/node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js +52 -0
  1406. package/assets/standalone/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js +99 -0
  1407. package/assets/standalone/node_modules/next/dist/shared/lib/segment.js +102 -0
  1408. package/assets/standalone/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js +35 -0
  1409. package/assets/standalone/node_modules/next/dist/shared/lib/server-reference-info.js +52 -0
  1410. package/assets/standalone/node_modules/next/dist/shared/lib/side-effect.js +63 -0
  1411. package/assets/standalone/node_modules/next/dist/shared/lib/size-limit.js +35 -0
  1412. package/assets/standalone/node_modules/next/dist/shared/lib/turbopack/internal-error.js +53 -0
  1413. package/assets/standalone/node_modules/next/dist/shared/lib/turbopack/utils.js +279 -0
  1414. package/assets/standalone/node_modules/next/dist/shared/lib/utils/warn-once.js +22 -0
  1415. package/assets/standalone/node_modules/next/dist/shared/lib/utils.js +207 -0
  1416. package/assets/standalone/node_modules/next/dist/shared/lib/zod.js +101 -0
  1417. package/assets/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +89 -0
  1418. package/assets/standalone/node_modules/next/dist/telemetry/detached-flush.js +56 -0
  1419. package/assets/standalone/node_modules/next/dist/telemetry/events/build.js +174 -0
  1420. package/assets/standalone/node_modules/next/dist/telemetry/events/index.js +41 -0
  1421. package/assets/standalone/node_modules/next/dist/telemetry/events/plugins.js +51 -0
  1422. package/assets/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +55 -0
  1423. package/assets/standalone/node_modules/next/dist/telemetry/events/version.js +66 -0
  1424. package/assets/standalone/node_modules/next/dist/telemetry/flush-telemetry.js +19 -0
  1425. package/assets/standalone/node_modules/next/dist/telemetry/post-telemetry-payload.js +48 -0
  1426. package/assets/standalone/node_modules/next/dist/telemetry/project-id.js +48 -0
  1427. package/assets/standalone/node_modules/next/dist/telemetry/storage.js +301 -0
  1428. package/assets/standalone/node_modules/next/dist/trace/index.js +54 -0
  1429. package/assets/standalone/node_modules/next/dist/trace/report/index.js +37 -0
  1430. package/assets/standalone/node_modules/next/dist/trace/report/to-json-build.js +137 -0
  1431. package/assets/standalone/node_modules/next/dist/trace/report/to-json.js +151 -0
  1432. package/assets/standalone/node_modules/next/dist/trace/report/to-telemetry.js +36 -0
  1433. package/assets/standalone/node_modules/next/dist/trace/shared.js +39 -0
  1434. package/assets/standalone/node_modules/next/dist/trace/trace.js +197 -0
  1435. package/assets/standalone/node_modules/next/package.json +380 -0
  1436. package/assets/standalone/node_modules/react/cjs/react-compiler-runtime.production.js +16 -0
  1437. package/assets/standalone/node_modules/react/cjs/react-jsx-dev-runtime.production.js +14 -0
  1438. package/assets/standalone/node_modules/react/cjs/react-jsx-runtime.production.js +34 -0
  1439. package/assets/standalone/node_modules/react/cjs/react.production.js +542 -0
  1440. package/assets/standalone/node_modules/react/compiler-runtime.js +14 -0
  1441. package/assets/standalone/node_modules/react/index.js +7 -0
  1442. package/assets/standalone/node_modules/react/jsx-dev-runtime.js +7 -0
  1443. package/assets/standalone/node_modules/react/jsx-runtime.js +7 -0
  1444. package/assets/standalone/node_modules/react/package.json +51 -0
  1445. package/assets/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +6603 -0
  1446. package/assets/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +6692 -0
  1447. package/assets/standalone/node_modules/react-dom/cjs/react-dom-server.browser.production.js +7410 -0
  1448. package/assets/standalone/node_modules/react-dom/cjs/react-dom-server.edge.production.js +7512 -0
  1449. package/assets/standalone/node_modules/react-dom/cjs/react-dom-server.node.production.js +7707 -0
  1450. package/assets/standalone/node_modules/react-dom/cjs/react-dom.production.js +210 -0
  1451. package/assets/standalone/node_modules/react-dom/index.js +38 -0
  1452. package/assets/standalone/node_modules/react-dom/package.json +117 -0
  1453. package/assets/standalone/node_modules/react-dom/server.browser.js +16 -0
  1454. package/assets/standalone/node_modules/react-dom/server.edge.js +17 -0
  1455. package/assets/standalone/node_modules/react-dom/server.node.js +18 -0
  1456. package/assets/standalone/node_modules/react-dom/static.node.js +14 -0
  1457. package/assets/standalone/node_modules/styled-jsx/dist/index/index.js +499 -0
  1458. package/assets/standalone/node_modules/styled-jsx/index.js +1 -0
  1459. package/assets/standalone/node_modules/styled-jsx/package.json +132 -0
  1460. package/assets/standalone/node_modules/styled-jsx/style.js +1 -0
  1461. package/assets/standalone/package.json +93 -0
  1462. package/assets/standalone/public/exospheresmall-dark.png +0 -0
  1463. package/assets/standalone/public/exospheresmall.png +0 -0
  1464. package/assets/standalone/server.js +38 -0
  1465. package/bin/claudeye +0 -0
  1466. package/package.json +21 -0
@@ -0,0 +1,2111 @@
1
+ ```
2
+ ____ _ _
3
+ / ___| | __ _ _ _ __| | ___ _ _ ___
4
+ | | | |/ _` | | | |/ _` |/ _ \ | | |/ _ \
5
+ | |___| | (_| | |_| | (_| | __/ |_| | __/
6
+ \____|_|\__,_|\__,_|\__,_|\___|\__, |\___|
7
+ |___/
8
+ ```
9
+
10
+ # Claudeye: Watchtower for Claude Code and Claude Agents SDK
11
+
12
+ **Uncover** what your agents did.
13
+ **Understand** where they struggle.
14
+ **Utilize** insights to improve.
15
+
16
+ [![npm version](https://img.shields.io/npm/v/claudeye)](https://www.npmjs.com/package/claudeye)
17
+ [![npm downloads](https://img.shields.io/npm/dm/claudeye)](https://www.npmjs.com/package/claudeye)
18
+ [![node](https://img.shields.io/node/v/claudeye)](https://nodejs.org)
19
+ [![TypeScript](https://img.shields.io/badge/Built%20with-TypeScript-blue)](https://www.typescriptlang.org/)
20
+ [![Discord](https://badgen.net/discord/members/zT92CAgvkj)](https://discord.com/invite/zT92CAgvkj)
21
+
22
+ ## Table of Contents
23
+
24
+ - [What is Claudeye?](#what-is-claudeye)
25
+ - [Quick Start](#quick-start)
26
+ - [Why Claudeye?](#why-claudeye)
27
+ - [Features](#features)
28
+ - [CLI Reference](#cli-reference)
29
+ - [Custom Evals & Enrichments](#custom-evals--enrichments)
30
+ - [API Reference](#api-reference)
31
+ - [`createApp()`](#createapp)
32
+ - [`app.condition(fn)`](#appconditionfn)
33
+ - [`app.queueCondition(fn, options?)`](#appqueueconditionfn-options)
34
+ - [`app.eval(name, fn, options?)`](#appevalname-fn-options)
35
+ - [`app.enrich(name, fn, options?)`](#appenrichname-fn-options)
36
+ - [`app.action(name, fn, options?)`](#appactionname-fn-options)
37
+ - [`app.alert(name, fn, options?)`](#appalertname-fn-options)
38
+ - [`app.dashboard.view(name, options?)`](#appdashboardviewname-options)
39
+ - [`app.dashboard.filter(name, fn, options?)`](#appdashboardfiltername-fn-options)
40
+ - [`app.dashboard.filter({ preBuilt })`](#appdashboardfilter-prebuilt-)
41
+ - [`app.dashboard.aggregate(name, definition, options?)`](#appdashboardaggregatename-definition-options)
42
+ - [`app.auth(options)`](#appauthoptions)
43
+ - [`app.listen(port?, options?)`](#applistenport-options)
44
+ - [Subagent Scope](#subagent-scope)
45
+ - [Evaluation Order](#evaluation-order)
46
+ - [UI Behavior](#ui-behavior)
47
+ - [Types](#types)
48
+ - [Examples](#examples)
49
+ - [Basic Evals & Enrichments](#example-basic-evals--enrichments)
50
+ - [Dashboard Filters](#example-dashboard-filters)
51
+ - [Multi-View Dashboard](#example-multi-view-dashboard)
52
+ - [Eval Score Filters (cachedOnly)](#example-eval-score-filters-cachedonly)
53
+ - [Actions](#example-actions)
54
+ - [Alerts](#example-alerts)
55
+ - [Minimal Filters Only](#example-minimal-filters-only)
56
+ - [Background Queue Processing](#background-queue-processing)
57
+ - [Caching](#caching)
58
+ - [Authentication](#authentication)
59
+ - [Deployment with PM2](#deployment-with-pm2)
60
+ - [How It Works](#how-it-works)
61
+ - [Community](#community)
62
+ - [License](#license)
63
+
64
+ ---
65
+
66
+ ## What is Claudeye?
67
+
68
+ One command. Full visibility into every Claude agent session.
69
+
70
+ Claudeye lets you replay agent executions, grade them with custom evals, and surface exactly where reliability breaks down, across both Claude Code and the Agents SDK. Deploy it locally or on your infrastructure. No setup, no config, just `claudeye` and you're in.
71
+
72
+ ## Quick Start
73
+
74
+ ```bash
75
+ npm install -g claudeye && claudeye
76
+ # or: bun install -g claudeye && claudeye
77
+ ```
78
+
79
+ Opens your browser at `localhost:8020`. Reads from `~/.claude/projects` by default.
80
+
81
+ Works with [Claude Code](https://docs.anthropic.com/en/docs/claude-code) sessions and [Claude Agents SDK](https://github.com/anthropics/anthropic-sdk-python) logs.
82
+
83
+ > **Note:** Claudeye is distributed as a compiled native binary per platform. When you install `claudeye`, npm automatically pulls the correct platform-specific package (`@claudeye/linux-x64`, `@claudeye/darwin-arm64`, etc.) as an optional dependency. Node.js >= 20.9.0 must be available on PATH for the dashboard server.
84
+
85
+ ## Why Claudeye?
86
+
87
+ | Feature | Claudeye | Langfuse | Dev-Agent-Lens | ccusage | Raw JSONL |
88
+ |---------|:--------:|:--------:|:--------------:|:-------:|:---------:|
89
+ | Local-first (no cloud) | **Yes** | Self-host option | Proxy required | Yes | Yes |
90
+ | Session replay | **Yes** | Traces only | Traces only | No | Manual |
91
+ | Custom evals | **Yes** | Limited | No | No | No |
92
+ | Subagent expansion | **Yes** | No | No | No | No |
93
+ | Zero config | **Yes** | Setup required | Proxy setup | Yes | N/A |
94
+ | Visual dashboard | **Yes** | Yes | Yes (Phoenix) | CLI only | No |
95
+
96
+ ## Features
97
+
98
+ ### Uncover
99
+
100
+ - **Projects & sessions browser** - filter by date range or keyword, paginated and sorted newest-first
101
+ - **Full execution trace viewer** - every message, tool call, thinking block, and system event
102
+ - **Nested subagent logs** - expand to see subagent executions inline, pre-loaded with the session
103
+ - **Virtual scrolling** - handles sessions with thousands of entries without performance issues
104
+
105
+ ### Understand
106
+
107
+ - **Session stats bar** - turns, tool calls, subagents, duration, and models at a glance
108
+ - **Custom evals** - grade sessions with pass/fail results and 0-1 scores
109
+ - **Per-eval recompute** - re-run a single eval without reprocessing all others
110
+ - **Conditional evals** - gate evals globally or per-item, with session/subagent scope control
111
+
112
+ ### Utilize
113
+
114
+ - **Custom enrichments** - compute metadata (token counts, quality signals, labels) as key-value pairs
115
+ - **Custom actions** - on-demand tasks triggered from the dashboard via `app.action()` — generate summaries, export metrics, or run side-effects with full access to eval and enrichment results
116
+ - **Alerts** - register callbacks via `app.alert()` that fire after all evals and enrichments complete (Slack webhooks, CI notifications, logging)
117
+ - **Dashboard views & filters** - organize filters into named views, each with focused filter tiles (boolean toggles, range sliders, multi-select dropdowns) and a filterable sessions table
118
+ - **Dashboard aggregates** - define cross-session summary tables with `app.dashboard.aggregate()`, using `{ collect, reduce }` for full control over output
119
+ - **Unified queue** - all evals and enrichments (session, subagent, UI, background) go through a single priority queue with bounded concurrency, live tracking at `/queue`
120
+ - **JSONL export** - download raw session logs
121
+ - **Auto-refresh** - monitor live sessions at 5s, 10s, or 30s intervals
122
+ - **Light/dark theme** - with system preference detection
123
+
124
+ ## CLI Reference
125
+
126
+ | Flag | Description | Default |
127
+ |------|-------------|---------|
128
+ | `--projects-path, -p <path>` | Path to Claude projects directory | `~/.claude/projects` |
129
+ | `--port <number>` | Port to bind | `8020` |
130
+ | `--host <address>` | Host to bind (`0.0.0.0` for LAN) | `localhost` |
131
+ | `--evals <path>` | Path to evals/enrichments file | - |
132
+ | `--auth-user <user:pass>` | Add an auth user (repeatable) | - |
133
+ | `--cache-path <path>` | Custom cache directory | `~/.claudeye/cache` |
134
+ | `--cache-clear` | Clear all cached results and exit | - |
135
+ | `--no-open` | Don't auto-open the browser | - |
136
+ | `--queue-interval <secs>` | Background scan interval in seconds | disabled |
137
+ | `--queue-concurrency <num>` | Max parallel items per batch | `2` |
138
+ | `--queue-history-ttl <secs>` | Seconds to keep completed items | `3600` |
139
+ | `--max-queue-items <num>` | Max items to enqueue per scan (0=unlimited) | `500` |
140
+ | `--logging <level>` | Log level: `info`, `warn`, `error` | `warn` |
141
+ | `-h, --help` | Show help | - |
142
+
143
+ ### CLI Examples
144
+
145
+ ```bash
146
+ # Custom projects path
147
+ claudeye --projects-path /path/to/projects
148
+
149
+ # Different port, no browser
150
+ claudeye --port 3000 --no-open
151
+
152
+ # LAN access
153
+ claudeye --host 0.0.0.0
154
+
155
+ # Load custom evals and enrichments
156
+ claudeye --evals ./my-evals.js
157
+
158
+ # Password-protect the dashboard
159
+ claudeye --auth-user admin:secret
160
+
161
+ # Multiple auth users
162
+ claudeye --auth-user admin:secret --auth-user viewer:readonly
163
+
164
+ # Clear cached results
165
+ claudeye --cache-clear
166
+
167
+ # Enable background queue processing (scan every 60 seconds)
168
+ claudeye --evals ./my-evals.js --queue-interval 60
169
+
170
+ # Background processing with higher concurrency
171
+ claudeye --evals ./my-evals.js --queue-interval 30 --queue-concurrency 5
172
+ ```
173
+
174
+ ## Custom Evals & Enrichments
175
+
176
+ Define evals and enrichments in a single JS file and load with `--evals`:
177
+
178
+ ```js
179
+ import { createApp } from 'claudeye';
180
+
181
+ const app = createApp();
182
+
183
+ // Evals: grade your sessions
184
+ app.eval('under-50-turns', ({ stats }) => ({
185
+ pass: stats.turnCount <= 50,
186
+ score: Math.max(0, 1 - stats.turnCount / 100),
187
+ message: `${stats.turnCount} turn(s)`,
188
+ }));
189
+
190
+ app.eval('tool-success', ({ entries }) => {
191
+ const results = entries.filter(e => e.type === 'tool_result');
192
+ const errors = results.filter(e => e.is_error);
193
+ const rate = results.length ? 1 - errors.length / results.length : 1;
194
+ return { pass: rate >= 0.9, score: rate };
195
+ });
196
+
197
+ // Enrichments: add metadata to sessions
198
+ app.enrich('session-summary', ({ entries, stats }) => ({
199
+ 'Total Tokens': entries.reduce((s, e) => s + (e.usage?.total_tokens || 0), 0),
200
+ 'Primary Model': stats.models[0] || 'unknown',
201
+ 'Tool Calls': stats.toolCallCount,
202
+ }));
203
+ ```
204
+
205
+ ```bash
206
+ claudeye --evals ./my-evals.js
207
+ ```
208
+
209
+ ---
210
+
211
+ ## API Reference
212
+
213
+ > **Distribution note (v1.0.0+):** Claudeye is distributed as a compiled native binary. The `claudeye` npm package is a thin JS wrapper that proxies `createApp()` calls to the binary via JSON IPC. User-defined functions (eval closures, enrich callbacks, etc.) remain in your Node.js process — they are never serialized into the binary. The public API surface is identical to previous versions; no code changes are required.
214
+
215
+ ### `createApp()`
216
+
217
+ Returns a `ClaudeyeApp` instance. All methods are chainable.
218
+
219
+ ```ts
220
+ import { createApp } from 'claudeye';
221
+ const app = createApp();
222
+ ```
223
+
224
+ ---
225
+
226
+ ### `app.condition(fn)`
227
+
228
+ Set a global condition that gates all evals, enrichments, and actions. Calling this multiple times replaces the previous condition.
229
+
230
+ ```ts
231
+ app.condition(({ entries, stats, projectName, sessionId }) => boolean | Promise<boolean>);
232
+ ```
233
+
234
+ If the global condition returns `false` (or throws), every registered eval, enrichment, and action is skipped.
235
+
236
+ #### Examples
237
+
238
+ ```js
239
+ // Only run for sessions with actual content
240
+ app.condition(({ entries }) => entries.length > 0);
241
+
242
+ // Only run for non-test projects
243
+ app.condition(({ projectName }) => !projectName.includes('test'));
244
+
245
+ // Only run for sessions longer than 5 turns
246
+ app.condition(({ stats }) => stats.turnCount >= 5);
247
+
248
+ // Async condition
249
+ app.condition(async ({ sessionId }) => {
250
+ // You could check an external service, database, etc.
251
+ return sessionId !== 'skip-this-one';
252
+ });
253
+ ```
254
+
255
+ #### Combining Global and Per-Item Conditions
256
+
257
+ Global and per-item conditions stack. The global condition runs first; if it passes, per-item conditions are checked individually:
258
+
259
+ ```js
260
+ const app = createApp();
261
+
262
+ // Global: skip everything for empty sessions
263
+ app.condition(({ entries }) => entries.length > 0);
264
+
265
+ // Per-eval: only check turn count for sessions with tool calls
266
+ app.eval('efficient-tools',
267
+ ({ stats }) => ({
268
+ pass: stats.toolCallCount <= stats.turnCount * 2,
269
+ score: Math.max(0, 1 - (stats.toolCallCount / (stats.turnCount * 4))),
270
+ }),
271
+ { condition: ({ stats }) => stats.toolCallCount > 0 }
272
+ );
273
+
274
+ // Per-enrichment: only compute model info for sessions that used a model
275
+ app.enrich('model-info',
276
+ ({ stats }) => ({
277
+ 'Primary Model': stats.models[0] || 'unknown',
278
+ 'Model Count': stats.models.length,
279
+ }),
280
+ { condition: ({ stats }) => stats.models.length > 0 }
281
+ );
282
+ ```
283
+
284
+ > **Note:** Calling `app.condition()` multiple times replaces the previous condition. Only the last one is active. The global condition applies to both evals and enrichments; there's no way to set separate global conditions for each.
285
+
286
+ ---
287
+
288
+ ### `app.queueCondition(fn, options?)`
289
+
290
+ Set a condition that gates **background queue processing**. This is separate from `app.condition()` — it only affects the background scanner (`scanAndEnqueue`), not UI-triggered runs.
291
+
292
+ ```ts
293
+ app.queueCondition(fn: ConditionFunction, options?: QueueConditionOptions): ClaudeyeApp;
294
+ ```
295
+
296
+ If the queue condition returns `false` (or throws), the session is skipped entirely — no evals or enrichments are enqueued for that session during background scanning.
297
+
298
+ #### Options
299
+
300
+ | Option | Type | Default | Description |
301
+ |--------|------|---------|-------------|
302
+ | `cacheable` | `boolean` | `false` | When `true`, condition results are cached per-session with hash-based invalidation. When `false` (default), the condition is evaluated fresh every scan cycle. |
303
+
304
+ #### Caching
305
+
306
+ By default (`cacheable: false`), the condition is re-evaluated every scan cycle. This is safe for time-dependent or external-state-dependent conditions (e.g., business hours, feature flags).
307
+
308
+ When `cacheable: true`, condition results are cached per-session. The cache auto-invalidates when:
309
+ - The **session file changes** (new content → different `contentHash`)
310
+ - The **condition function is edited** (different `conditionCodeHash` via `fn.toString()` → SHA-256)
311
+
312
+ Use `cacheable: true` only when the condition depends solely on session data.
313
+
314
+ Log parsing is **lazy** — only triggered when the condition is actually evaluated (every cycle when non-cacheable, or on cache miss when cacheable). The parsed session data comes from `getCachedSessionLog()` which is itself LRU-cached in memory.
315
+
316
+ #### Examples
317
+
318
+ ```js
319
+ // Only process sessions with actual content (evaluated fresh every cycle)
320
+ app.queueCondition(({ entries }) => entries.length > 5);
321
+
322
+ // Only process sessions from specific projects (safe to cache — depends only on session data)
323
+ app.queueCondition(({ projectName }) => projectName.startsWith('production'), { cacheable: true });
324
+
325
+ // Time-dependent condition — must not be cached
326
+ app.queueCondition(() => {
327
+ const hour = new Date().getHours();
328
+ return hour >= 9 && hour < 17; // business hours only
329
+ });
330
+
331
+ // Skip sessions that are too short to be meaningful (safe to cache)
332
+ app.queueCondition(({ stats }) => stats.turnCount >= 3, { cacheable: true });
333
+ ```
334
+
335
+ #### Difference from `app.condition()`
336
+
337
+ | | `app.condition()` | `app.queueCondition()` |
338
+ |---|---|---|
339
+ | **Scope** | Gates all evals/enrichments/actions | Gates background queue only |
340
+ | **Affects UI runs** | Yes | No |
341
+ | **Affects background scanner** | No | Yes |
342
+ | **Caching** | No (re-evaluated each run) | Opt-in via `{ cacheable: true }` |
343
+
344
+ Both can be set simultaneously. `app.queueCondition()` acts as a pre-filter for the background scanner; sessions that pass then go through the normal `app.condition()` check when individual items execute.
345
+
346
+ ---
347
+
348
+ ### `app.eval(name, fn, options?)`
349
+
350
+ Register an eval function. Evals grade sessions with a pass/fail result and an optional 0-1 score.
351
+
352
+ - **`name`** - unique string identifier for the eval
353
+ - **`fn`** - function receiving an `EvalContext` and returning an `EvalResult`
354
+ - **`options.condition`** - optional condition function to gate this eval
355
+ - **`options.scope`** - `'session'` (default), `'subagent'`, or `'both'`
356
+ - **`options.subagentType`** - only run for subagents of this type (e.g. `'Explore'`)
357
+
358
+ If a per-eval condition returns `false`, the eval is marked as **skipped** in the results panel. If the condition throws, the eval is marked as **errored** with the message `Condition error: <message>`.
359
+
360
+ #### `EvalResult`
361
+
362
+ ```ts
363
+ interface EvalResult {
364
+ pass: boolean; // Did the eval pass?
365
+ score?: number; // 0-1, clamped automatically (default: 1.0)
366
+ message?: string; // Shown in the UI
367
+ metadata?: Record<string, unknown>; // Arbitrary data
368
+ }
369
+ ```
370
+
371
+ #### Examples
372
+
373
+ ```js
374
+ // Simple: check if session stayed under a turn budget
375
+ app.eval('under-50-turns', ({ stats }) => ({
376
+ pass: stats.turnCount <= 50,
377
+ score: Math.max(0, 1 - stats.turnCount / 100),
378
+ message: `${stats.turnCount} turn(s)`,
379
+ }));
380
+
381
+ // Check tool success rate
382
+ app.eval('tool-success-rate', ({ entries }) => {
383
+ const toolResults = entries.filter(e =>
384
+ e.type === 'user' &&
385
+ Array.isArray(e.message?.content) &&
386
+ e.message.content.some(b => b.type === 'tool_result')
387
+ );
388
+ const errors = toolResults.filter(e =>
389
+ e.message?.content?.some(b => b.is_error === true)
390
+ );
391
+ const rate = toolResults.length > 0
392
+ ? 1 - (errors.length / toolResults.length)
393
+ : 1;
394
+ return {
395
+ pass: rate >= 0.9,
396
+ score: rate,
397
+ message: `${errors.length}/${toolResults.length} tool errors`,
398
+ };
399
+ });
400
+
401
+ // Check that the session ended with a text response
402
+ app.eval('has-completion', ({ entries }) => {
403
+ const lastAssistant = [...entries].reverse().find(e => e.type === 'assistant');
404
+ const hasText = lastAssistant?.message?.content?.some?.(b => b.type === 'text');
405
+ return {
406
+ pass: !!hasText,
407
+ score: hasText ? 1.0 : 0,
408
+ message: hasText ? 'Session completed with text response' : 'No final text response',
409
+ };
410
+ });
411
+
412
+ // With a per-eval condition: only run for longer sessions
413
+ app.eval('under-budget',
414
+ ({ stats }) => ({
415
+ pass: stats.turnCount <= 30,
416
+ score: Math.max(0, 1 - stats.turnCount / 60),
417
+ message: `${stats.turnCount} turns`,
418
+ }),
419
+ { condition: ({ stats }) => stats.turnCount >= 5 }
420
+ );
421
+
422
+ // Subagent-scoped eval
423
+ app.eval('explore-depth', ({ entries, source }) => {
424
+ const myEntries = entries.filter(e => e._source === source);
425
+ return {
426
+ pass: myEntries.length > 5,
427
+ score: Math.min(myEntries.length / 20, 1),
428
+ };
429
+ }, { scope: 'subagent', subagentType: 'Explore' });
430
+ ```
431
+
432
+ ---
433
+
434
+ ### `app.enrich(name, fn, options?)`
435
+
436
+ Register an enricher function. Enrichments compute key-value metadata displayed in the dashboard.
437
+
438
+ - **`name`** - unique string identifier for the enricher
439
+ - **`fn`** - function receiving an `EvalContext` and returning a `Record<string, string | number | boolean>`
440
+ - **`options.condition`** - optional condition function to gate this enricher
441
+ - **`options.scope`** - `'session'` (default), `'subagent'`, or `'both'`
442
+ - **`options.subagentType`** - only run for subagents of this type (e.g. `'Explore'`)
443
+
444
+ #### `EnrichmentResult`
445
+
446
+ ```ts
447
+ // Enrichers return a flat key-value map
448
+ type EnrichmentResult = Record<string, string | number | boolean>;
449
+ ```
450
+
451
+ #### Examples
452
+
453
+ ```js
454
+ // Session overview
455
+ app.enrich('overview', ({ stats }) => ({
456
+ 'Turns': stats.turnCount,
457
+ 'Tool Calls': stats.toolCallCount,
458
+ 'Duration': stats.duration,
459
+ 'Models': stats.models.join(', ') || 'none',
460
+ }));
461
+
462
+ // Token and cost breakdown
463
+ app.enrich('token-usage', ({ entries }) => {
464
+ const inputTokens = entries.reduce((s, e) => s + (e.usage?.input_tokens || 0), 0);
465
+ const outputTokens = entries.reduce((s, e) => s + (e.usage?.output_tokens || 0), 0);
466
+ return {
467
+ 'Input Tokens': inputTokens,
468
+ 'Output Tokens': outputTokens,
469
+ 'Total Tokens': inputTokens + outputTokens,
470
+ 'Est. Cost': `$${((inputTokens * 0.003 + outputTokens * 0.015) / 1000).toFixed(4)}`,
471
+ };
472
+ });
473
+
474
+ // Error analysis (only when errors exist)
475
+ app.enrich('error-analysis',
476
+ ({ entries }) => {
477
+ const errors = entries.filter(e => e.is_error === true);
478
+ return {
479
+ 'Total Errors': errors.length,
480
+ 'Error Rate': `${((errors.length / entries.length) * 100).toFixed(1)}%`,
481
+ };
482
+ },
483
+ { condition: ({ entries }) => entries.some(e => e.is_error === true) }
484
+ );
485
+
486
+ // Subagent info (only when subagents were spawned)
487
+ app.enrich('subagent-info',
488
+ ({ entries, stats }) => {
489
+ const subagentEntries = entries.filter(e => e.type === 'assistant' && e.parentUuid);
490
+ return {
491
+ 'Subagent Count': stats.subagentCount,
492
+ 'Subagent Entries': subagentEntries.length,
493
+ };
494
+ },
495
+ { condition: ({ stats }) => stats.subagentCount > 0 }
496
+ );
497
+
498
+ // Advanced metrics (async condition)
499
+ app.enrich('advanced-metrics',
500
+ ({ entries }) => ({
501
+ 'Entry Count': entries.length,
502
+ 'Avg Entry Size': Math.round(
503
+ entries.reduce((s, e) => s + JSON.stringify(e).length, 0) / entries.length
504
+ ),
505
+ }),
506
+ {
507
+ condition: async ({ entries }) => {
508
+ return entries.length > 10;
509
+ },
510
+ }
511
+ );
512
+ ```
513
+
514
+ ---
515
+
516
+ ### `app.action(name, fn, options?)`
517
+
518
+ Register a user-defined action. Actions are a flexible primitive for on-demand tasks — generating summaries, exporting metrics, running side-effects, or anything else that doesn't fit the eval (pass/fail) or enrichment (key-value) model. Actions are never auto-run; they are triggered manually from the dashboard.
519
+
520
+ - **`name`** - unique string identifier for the action
521
+ - **`fn`** - function receiving an `ActionContext` and returning an `ActionResult`
522
+ - **`options.condition`** - optional condition function to gate this action
523
+ - **`options.scope`** - `'session'` (default), `'subagent'`, or `'both'`
524
+ - **`options.subagentType`** - only run for subagents of this type (e.g. `'Explore'`)
525
+ - **`options.cache`** - cache results (default: `true`). Set to `false` for side-effect actions that should always re-run.
526
+
527
+ #### `ActionContext`
528
+
529
+ Actions receive an extended context that includes cached eval and enrichment results:
530
+
531
+ ```ts
532
+ interface ActionContext extends EvalContext {
533
+ evalResults: Record<string, EvalRunResult>; // Cached eval results for the session
534
+ enrichmentResults: Record<string, EnrichRunResult>; // Cached enrichment results
535
+ }
536
+ ```
537
+
538
+ This means actions can build on prior analysis — check which evals passed, read enrichment data, and combine it with raw session data.
539
+
540
+ #### `ActionResult`
541
+
542
+ ```ts
543
+ interface ActionResult {
544
+ output?: string; // Free-form text (rendered in monospace block with copy button)
545
+ status: 'success' | 'error'; // Action outcome
546
+ message?: string; // Short summary shown in the UI
547
+ }
548
+ ```
549
+
550
+ Return `output` for text. The output is rendered in a scrollable monospace block with a copy-to-clipboard button. The `status` field determines the icon in the results panel.
551
+
552
+ #### Examples
553
+
554
+ ```js
555
+ // Session summary: combine stats with eval results
556
+ app.action('session-summary', ({ stats, evalResults }) => {
557
+ const evalNames = Object.keys(evalResults);
558
+ const passCount = evalNames.filter(n => evalResults[n]?.pass).length;
559
+ return {
560
+ output: [
561
+ `Session: ${stats.turnCount} turns, ${stats.toolCallCount} tool calls`,
562
+ `Duration: ${stats.duration}`,
563
+ `Models: ${stats.models.join(', ') || 'unknown'}`,
564
+ `Evals: ${passCount}/${evalNames.length} passed`,
565
+ ].join('\n'),
566
+ status: 'success',
567
+ message: 'Summary generated',
568
+ };
569
+ });
570
+
571
+ // Export metrics: gather enrichment data into a text report
572
+ app.action('export-metrics', ({ stats, enrichmentResults }) => {
573
+ const enrichData = {};
574
+ for (const [name, result] of Object.entries(enrichmentResults)) {
575
+ if (result.data) Object.assign(enrichData, result.data);
576
+ }
577
+ const lines = [
578
+ ...Object.entries(enrichData).map(([k, v]) => `${k}: ${v}`),
579
+ `turnCount: ${stats.turnCount}`,
580
+ `toolCallCount: ${stats.toolCallCount}`,
581
+ ];
582
+ return {
583
+ output: lines.join('\n'),
584
+ status: 'success',
585
+ message: `Exported ${Object.keys(enrichData).length + 2} metrics`,
586
+ };
587
+ });
588
+
589
+ // Side-effect action: write results to a file (disable caching)
590
+ app.action('write-report', async ({ projectName, sessionId, stats, evalResults }) => {
591
+ const fs = await import('fs/promises');
592
+ const report = {
593
+ projectName, sessionId,
594
+ turns: stats.turnCount,
595
+ evals: Object.fromEntries(
596
+ Object.entries(evalResults).map(([name, r]) => [name, { pass: r.pass, score: r.score }])
597
+ ),
598
+ timestamp: new Date().toISOString(),
599
+ };
600
+ await fs.appendFile('session-reports.jsonl', JSON.stringify(report) + '\n');
601
+ return {
602
+ status: 'success',
603
+ message: `Report appended to session-reports.jsonl`,
604
+ output: 'Written to session-reports.jsonl',
605
+ };
606
+ }, { cache: false });
607
+
608
+ // Conditional action: only available for sessions with tool usage
609
+ app.action('tool-analysis', ({ entries, source }) => {
610
+ const toolUses = entries.filter(e =>
611
+ e._source === (source || 'session') &&
612
+ e.type === 'assistant' &&
613
+ Array.isArray(e.message?.content) &&
614
+ e.message.content.some(b => b.type === 'tool_use')
615
+ );
616
+ const toolNames = [...new Set(toolUses.flatMap(e =>
617
+ (e.message?.content || []).filter(b => b.type === 'tool_use').map(b => b.name)
618
+ ))];
619
+ return {
620
+ output: toolNames.length > 0
621
+ ? `Tools used: ${toolNames.join(', ')}`
622
+ : 'No tools used',
623
+ status: 'success',
624
+ };
625
+ }, { condition: ({ stats }) => stats.toolCallCount > 0 });
626
+
627
+ // Subagent-scoped action
628
+ app.action('agent-report', ({ entries, source, stats }) => {
629
+ const myEntries = entries.filter(e => e._source === source);
630
+ return {
631
+ output: [
632
+ `Source: ${source}`,
633
+ `Entries: ${myEntries.length}`,
634
+ `Turns: ${stats.turnCount}`,
635
+ `Tool calls: ${stats.toolCallCount}`,
636
+ ].join('\n'),
637
+ status: 'success',
638
+ message: `Agent ${source}: ${myEntries.length} entries`,
639
+ };
640
+ }, { scope: 'subagent' });
641
+ ```
642
+
643
+ #### Action UI Behavior
644
+
645
+ The Actions panel appears on session pages (and in expanded subagent cards for subagent-scoped actions) when matching actions are registered. The panel:
646
+
647
+ - Shows all registered actions as idle (not run) on initial load, with cached results displayed immediately
648
+ - Provides a **Run** button per action and a **Run All** button in the header
649
+ - Displays `output` in a scrollable monospace block with a copy-to-clipboard button
650
+ - Shows a "cached" badge for results served from cache
651
+ - Collapses by default (click the header to expand)
652
+ - Error count, success count, and loading spinners are visible in the header even when collapsed
653
+
654
+ #### Action Types
655
+
656
+ ```ts
657
+ type ActionFunction = (context: ActionContext) => ActionResult | Promise<ActionResult>;
658
+
659
+ interface RegisteredAction {
660
+ name: string;
661
+ fn: ActionFunction;
662
+ condition?: ConditionFunction;
663
+ scope: EvalScope; // 'session' | 'subagent' | 'both'
664
+ subagentType?: string;
665
+ cache: boolean; // default: true
666
+ }
667
+
668
+ interface ActionRunResult {
669
+ name: string;
670
+ output?: string;
671
+ status: 'success' | 'error';
672
+ message?: string;
673
+ durationMs: number;
674
+ error?: string; // Present when the action threw or its condition threw
675
+ skipped?: boolean; // Present when the global/per-action condition returned false
676
+ }
677
+
678
+ interface ActionRunSummary {
679
+ results: ActionRunResult[];
680
+ totalDurationMs: number;
681
+ errorCount: number;
682
+ skippedCount: number;
683
+ }
684
+ ```
685
+
686
+ ---
687
+
688
+ ### `app.alert(name, fn, options?)`
689
+
690
+ Register an alert callback that fires after all evals and enrichments complete for a session. Alerts are the hook point for Slack webhooks, CI notifications, logging, or any post-processing logic.
691
+
692
+ - **`name`** - unique string identifier for the alert (re-registering replaces the previous callback)
693
+ - **`fn`** - function receiving an `AlertContext` and returning `void | Promise<void>`
694
+ - **`options`** - optional `AlertOptions` object:
695
+ - **`suppressOnRecompute`** (default: `true`) — when `true`, this alert is suppressed during recomputes triggered by code changes (e.g., modifying an eval function). Alerts still fire when new session data arrives. Set to `false` for alerts that should always fire regardless of the trigger.
696
+
697
+ #### When Alerts Fire
698
+
699
+ Alerts fire **once per session content version** — the unified queue checks after each item completes whether all eval/enrichment work for that session is done (no pending or processing items remain). When the last item completes, a debounced check fires alerts if the dedup marker allows it.
700
+
701
+ | Trigger | Behavior |
702
+ |---------|----------|
703
+ | **Initial page load** | `queuePerItem()` per eval/enrichment → alerts fire when last item completes |
704
+ | **Background processing** | `scanAndEnqueue()` → individual items at LOW priority → alerts fire when last item completes |
705
+ | **Page reload (all cached)** | No items enter the queue → no alerts fire |
706
+ | **Re-run All** | Clears dedup marker first, then parallel `queuePerItem()` calls → alerts fire exactly once |
707
+ | **Re-run single** | `queuePerItem()` for one item → alerts do NOT re-fire (dedup marker still valid) |
708
+ | **Session content changes** | New `contentHash` invalidates the dedup marker → alerts fire again |
709
+ | **Alert registrations change** | New `alertsHash` invalidates the dedup marker → alerts fire again |
710
+
711
+ Each alert callback is individually try/caught via `Promise.allSettled`. A throwing alert never blocks other alerts or eval processing. Errors are logged to console.
712
+
713
+ #### `AlertContext`
714
+
715
+ ```ts
716
+ interface AlertContext {
717
+ projectName: string; // Encoded project folder name
718
+ sessionId: string; // Session UUID
719
+ evalSummary?: EvalRunSummary; // Present when evals registered & ran
720
+ enrichSummary?: EnrichRunSummary; // Present when enrichments registered & ran
721
+ }
722
+ ```
723
+
724
+ `evalSummary` and `enrichSummary` contain **all** results for the session — both cached and freshly computed. The alert always sees the complete picture.
725
+
726
+ #### Examples
727
+
728
+ ```js
729
+ // Slack webhook on eval failure
730
+ app.alert('slack-on-failure', async ({ projectName, sessionId, evalSummary }) => {
731
+ if (evalSummary && evalSummary.failCount > 0) {
732
+ await fetch('https://hooks.slack.com/services/T.../B.../xxx', {
733
+ method: 'POST',
734
+ headers: { 'Content-Type': 'application/json' },
735
+ body: JSON.stringify({
736
+ text: `${evalSummary.failCount} evals failed for ${projectName}/${sessionId}`,
737
+ }),
738
+ });
739
+ }
740
+ });
741
+
742
+ // Console logging
743
+ app.alert('log-results', ({ projectName, sessionId, evalSummary, enrichSummary }) => {
744
+ const evals = evalSummary
745
+ ? `${evalSummary.passCount} pass, ${evalSummary.failCount} fail, ${evalSummary.errorCount} error`
746
+ : 'no evals';
747
+ const enrichments = enrichSummary
748
+ ? `${enrichSummary.results.length} enrichments (${enrichSummary.errorCount} errors)`
749
+ : 'no enrichments';
750
+ console.log(`[ALERT] ${projectName}/${sessionId}: ${evals} | ${enrichments}`);
751
+ });
752
+
753
+ // Write results to a file for CI
754
+ app.alert('ci-report', async ({ projectName, sessionId, evalSummary }) => {
755
+ if (!evalSummary) return;
756
+ const fs = await import('fs/promises');
757
+ await fs.appendFile('eval-results.jsonl', JSON.stringify({
758
+ projectName,
759
+ sessionId,
760
+ passCount: evalSummary.passCount,
761
+ failCount: evalSummary.failCount,
762
+ results: evalSummary.results.map(r => ({ name: r.name, pass: r.pass, score: r.score })),
763
+ timestamp: new Date().toISOString(),
764
+ }) + '\n');
765
+ });
766
+
767
+ // Alert that fires even on code-change recomputes (e.g., audit logging)
768
+ app.alert('audit-log', ({ projectName, sessionId }) => {
769
+ console.log(`[AUDIT] Processed ${projectName}/${sessionId}`);
770
+ }, { suppressOnRecompute: false });
771
+ ```
772
+
773
+ #### Alert Types
774
+
775
+ ```ts
776
+ type AlertFunction = (context: AlertContext) => void | Promise<void>;
777
+
778
+ interface AlertOptions {
779
+ suppressOnRecompute?: boolean; // Default: true
780
+ }
781
+
782
+ interface RegisteredAlert {
783
+ name: string;
784
+ fn: AlertFunction;
785
+ suppressOnRecompute: boolean;
786
+ }
787
+
788
+ interface EvalRunSummary {
789
+ results: EvalRunResult[];
790
+ totalDurationMs: number;
791
+ passCount: number;
792
+ failCount: number;
793
+ errorCount: number;
794
+ skippedCount: number;
795
+ }
796
+
797
+ interface EnrichRunSummary {
798
+ results: EnrichRunResult[];
799
+ totalDurationMs: number;
800
+ errorCount: number;
801
+ skippedCount: number;
802
+ }
803
+ ```
804
+
805
+ ---
806
+
807
+ ### `app.dashboard.view(name, options?)`
808
+
809
+ Create a named dashboard view. Views group related filters into focused sets. Each view appears as a card on `/dashboard` and has its own route at `/dashboard/[viewName]`.
810
+
811
+ - **`name`** - unique string identifier for the view
812
+ - **`options.label`** - human-readable label displayed on the card (defaults to the name)
813
+ - **`options.cachedOnly`** - only show sessions with complete cache entries (default: `false`)
814
+
815
+ Returns a `DashboardViewBuilder` with chainable `.filter()` and `.aggregate()` methods.
816
+
817
+ #### `DashboardViewBuilder`
818
+
819
+ ```ts
820
+ interface DashboardViewBuilder {
821
+ filter(name: string, fn: FilterFunction, options?: FilterOptions): DashboardViewBuilder;
822
+ filter(options: { preBuilt: string[] }): DashboardViewBuilder;
823
+ aggregate(name: string, definition: AggregateDefinition, options?: AggregateOptions): DashboardViewBuilder;
824
+ }
825
+ ```
826
+
827
+ The view builder's `.filter()` returns the view builder (not the app), so you can chain multiple filters within a view:
828
+
829
+ ```js
830
+ app.dashboard.view('performance', { label: 'Performance Metrics' })
831
+ .filter('turn-count', ({ stats }) => stats.turnCount, { label: 'Turn Count' })
832
+ .filter('tool-calls', ({ stats }) => stats.toolCallCount, { label: 'Tool Calls' });
833
+ ```
834
+
835
+ #### `ViewOptions`
836
+
837
+ ```ts
838
+ interface ViewOptions {
839
+ label?: string; // Human-readable label (defaults to name)
840
+ cachedOnly?: boolean; // Only show sessions with complete cache entries (default: false)
841
+ }
842
+ ```
843
+
844
+ #### `cachedOnly` Views
845
+
846
+ When `cachedOnly: true`, uncached sessions are **pre-filtered** before any filter computation runs — sessions without complete cache entries are skipped entirely. This avoids expensive log parsing, eval cache reads, and filter function execution for uncached sessions. Sessions appear in the view as the background queue processes them.
847
+
848
+ Filter functions in `cachedOnly` views receive `ctx.evalResults` — a record of cached eval results keyed by eval name. Each entry has `pass`, `score`, and optional `error`/`message` fields. This lets you create per-eval score filters (range sliders) and composite boolean filters without re-running evals.
849
+
850
+ ```js
851
+ // Only show sessions that have been fully processed
852
+ app.dashboard.view('quality', { cachedOnly: true })
853
+ .filter('has-errors', ({ entries }) =>
854
+ entries.some(e => e.type === 'assistant' &&
855
+ Array.isArray(e.message?.content) &&
856
+ e.message.content.some(b => b.type === 'tool_use' && b.is_error)),
857
+ { label: 'Has Errors' });
858
+
859
+ // Per-eval score filters using evalResults
860
+ app.dashboard.view('eval-results', { cachedOnly: true, label: 'Eval Score Filters' })
861
+ .filter('quality-score', (ctx) => ctx.evalResults?.['quality']?.score ?? 0,
862
+ { label: 'Quality Score' })
863
+ .filter('all-passing', (ctx) => {
864
+ if (!ctx.evalResults) return false;
865
+ return Object.values(ctx.evalResults).every(r => r.pass);
866
+ }, { label: 'All Evals Passing' });
867
+ ```
868
+
869
+ #### Routing
870
+
871
+ | URL | Behavior |
872
+ |-----|----------|
873
+ | `/dashboard` | If named views exist, shows a view index (card grid). If only default filters, shows them directly. If nothing registered, shows an empty state. |
874
+ | `/dashboard/[viewName]` | Specific named view with its filters and sessions table. |
875
+
876
+ #### Examples
877
+
878
+ ```js
879
+ // Two focused views
880
+ app.dashboard.view('performance', { label: 'Performance Metrics' })
881
+ .filter('turn-count', ({ stats }) => stats.turnCount, { label: 'Turn Count' })
882
+ .filter('tool-calls', ({ stats }) => stats.toolCallCount, { label: 'Tool Calls' });
883
+
884
+ app.dashboard.view('quality', { label: 'Quality Checks' })
885
+ .filter('has-errors', ({ entries }) =>
886
+ entries.some(e => e.type === 'assistant' &&
887
+ Array.isArray(e.message?.content) &&
888
+ e.message.content.some(b => b.type === 'tool_use' && b.is_error)),
889
+ { label: 'Has Errors' })
890
+ .filter('primary-model', ({ stats }) => stats.models[0] || 'unknown',
891
+ { label: 'Primary Model' });
892
+
893
+ // Backward-compat: app.dashboard.filter() still works (goes to "default" view)
894
+ app.dashboard.filter('uses-subagents', ({ stats }) => stats.subagentCount > 0,
895
+ { label: 'Uses Subagents' }
896
+ );
897
+ ```
898
+
899
+ ---
900
+
901
+ ### `app.dashboard.filter(name, fn, options?)`
902
+
903
+ Register a dashboard filter on the **default** view. For organizing filters into named views, see `app.dashboard.view()` above.
904
+
905
+ - **`name`** - unique string identifier for the filter
906
+ - **`fn`** - function receiving an `EvalContext` and returning a `FilterValue` (`boolean`, `number`, or `string`)
907
+ - **`options.label`** - human-readable label for the filter tile (defaults to the name)
908
+ - **`options.condition`** - optional condition function to gate this filter
909
+
910
+ The return type auto-determines the UI control:
911
+
912
+ | Return type | UI control | Behavior |
913
+ |-------------|-----------|----------|
914
+ | `boolean` | Three-state toggle | Cycle: All &rarr; Yes &rarr; No &rarr; All |
915
+ | `number` | Range slider | Dual-handle slider with min/max inputs. Step auto-adapts: integer data uses steps of 1/5/10; float data uses 0.01 (range&le;1), 0.1 (range&le;10), or 1 |
916
+ | `string` | Multi-select dropdown | Checkboxes with Select All / Clear |
917
+
918
+ Filter values are computed server-side with an incremental index (only new/changed sessions are reprocessed). Filtering and pagination happen server-side, returning only the matching page of results.
919
+
920
+ #### Examples
921
+
922
+ ```js
923
+ // Boolean filter: toggle sessions that have tool errors
924
+ app.dashboard.filter('has-errors', ({ entries }) =>
925
+ entries.some(e =>
926
+ e.type === 'assistant' &&
927
+ Array.isArray(e.message?.content) &&
928
+ e.message.content.some(b => b.type === 'tool_use' && b.is_error)
929
+ ),
930
+ { label: 'Has Errors' }
931
+ );
932
+
933
+ // Number filter: range slider for turn count
934
+ app.dashboard.filter('turn-count', ({ stats }) => stats.turnCount,
935
+ { label: 'Turn Count' }
936
+ );
937
+
938
+ // String filter: multi-select for primary model
939
+ app.dashboard.filter('primary-model', ({ stats }) => stats.models[0] || 'unknown',
940
+ { label: 'Primary Model' }
941
+ );
942
+
943
+ // Number filter: range slider for tool call count
944
+ app.dashboard.filter('tool-calls', ({ stats }) => stats.toolCallCount,
945
+ { label: 'Tool Calls' }
946
+ );
947
+
948
+ // Boolean filter: sessions with subagents
949
+ app.dashboard.filter('uses-subagents', ({ stats }) => stats.subagentCount > 0,
950
+ { label: 'Uses Subagents' }
951
+ );
952
+
953
+ // String filter: session duration bucket
954
+ app.dashboard.filter('duration-bucket', ({ stats }) => {
955
+ const ms = parseInt(stats.duration) || 0;
956
+ if (ms < 60000) return 'Under 1m';
957
+ if (ms < 300000) return '1-5m';
958
+ if (ms < 900000) return '5-15m';
959
+ return 'Over 15m';
960
+ }, { label: 'Duration' });
961
+
962
+ // With a per-filter condition: only compute for non-empty sessions
963
+ app.dashboard.filter('avg-tools-per-turn',
964
+ ({ stats }) => stats.turnCount > 0
965
+ ? Math.round(stats.toolCallCount / stats.turnCount * 10) / 10
966
+ : 0,
967
+ {
968
+ label: 'Avg Tools/Turn',
969
+ condition: ({ entries }) => entries.length > 0,
970
+ }
971
+ );
972
+ ```
973
+
974
+ #### How Filters Work
975
+
976
+ 1. When the `/dashboard` page loads, the server action discovers all projects and sessions
977
+ 2. An incremental `DashboardIndex` diffs the discovered sessions against previously computed rows — only new or changed sessions are processed (unchanged sessions are skipped entirely)
978
+ 3. For new/changed sessions, it checks the per-session disk cache first, then falls back to parsing the JSONL log and running filters
979
+ 4. Filter metadata (min/max for numbers, unique values for strings) is rebuilt from accumulators only when the session set changes
980
+ 5. Server-side filtering and pagination are applied — only the matching page of results is sent to the client
981
+ 6. User interactions (toggle, slider, dropdown) trigger a debounced (300ms) server re-fetch with the new filter state
982
+
983
+ #### Global Condition
984
+
985
+ Dashboard filters respect the global condition set via `app.condition()`. If the global condition returns `false` for a session, all filters are skipped for that session.
986
+
987
+ ```js
988
+ // Skip empty sessions across evals, enrichments, AND dashboard filters
989
+ app.condition(({ entries }) => entries.length > 0);
990
+ ```
991
+
992
+ ---
993
+
994
+ ### `app.dashboard.filter({ preBuilt })`
995
+
996
+ Enable pre-built filters on the dashboard. Pre-built filters provide common filtering functionality with optimized UX — no custom filter function needed.
997
+
998
+ - **`preBuilt`** - array of pre-built filter names to enable
999
+
1000
+ #### Available Pre-Built Filters
1001
+
1002
+ | Name | UI control | Description |
1003
+ |------|-----------|-------------|
1004
+ | `'lastModified'` | Date range picker (from/to) | Filters sessions by their last modified date |
1005
+
1006
+ #### Examples
1007
+
1008
+ ```js
1009
+ // Enable on the default view
1010
+ app.dashboard.filter({ preBuilt: ['lastModified'] });
1011
+
1012
+ // Combine with custom filters
1013
+ app.dashboard.filter({ preBuilt: ['lastModified'] });
1014
+ app.dashboard.filter('model', ({ stats }) => stats.models[0] || 'unknown',
1015
+ { label: 'Model' });
1016
+
1017
+ // Enable on a named view
1018
+ app.dashboard.view('overview', { label: 'Overview' })
1019
+ .filter({ preBuilt: ['lastModified'] })
1020
+ .filter('turns', ({ stats }) => stats.turnCount, { label: 'Turns' });
1021
+ ```
1022
+
1023
+ Pre-built date filters operate directly on the `DashboardSessionRow.lastModified` field — they don't require parsing session logs or running a filter function. The date range (min/max) is computed from the observed session data. Filtering is done server-side using normalized server-local calendar dates.
1024
+
1025
+ ---
1026
+
1027
+ ### `app.dashboard.aggregate(name, definition, options?)`
1028
+
1029
+ Register a cross-session aggregate on the **default** view. For organizing aggregates into named views, use `app.dashboard.view().aggregate()`.
1030
+
1031
+ - **`name`** - unique string identifier for the aggregate
1032
+ - **`definition`** - a `{ collect, reduce }` object
1033
+ - **`options.label`** - human-readable label for the aggregate section (defaults to the name)
1034
+ - **`options.condition`** - optional condition function to gate this aggregate per session
1035
+
1036
+ Provide a `{ collect, reduce }` object. The `collect` function runs per session, and `reduce` transforms all collected values into your output table.
1037
+
1038
+ #### Examples
1039
+
1040
+ ```js
1041
+ // Eval pass rate summary table
1042
+ app.dashboard.aggregate('eval-summary', {
1043
+ collect: ({ evalResults }) => {
1044
+ const result = {};
1045
+ for (const [name, r] of Object.entries(evalResults)) {
1046
+ result[`${name}_pass`] = r.pass;
1047
+ result[`${name}_score`] = r.score;
1048
+ }
1049
+ return result;
1050
+ },
1051
+ reduce: (collected) => {
1052
+ const evalNames = new Set();
1053
+ for (const s of collected) {
1054
+ for (const key of Object.keys(s.values)) {
1055
+ if (key.endsWith('_pass')) evalNames.add(key.replace('_pass', ''));
1056
+ }
1057
+ }
1058
+ return Array.from(evalNames).map(name => ({
1059
+ 'Eval': name,
1060
+ 'Pass Rate': collected.filter(s => s.values[`${name}_pass`]).length / collected.length,
1061
+ 'Avg Score': collected.reduce((sum, s) => {
1062
+ const v = s.values[`${name}_score`];
1063
+ return sum + (typeof v === 'number' ? v : 0);
1064
+ }, 0) / collected.length,
1065
+ }));
1066
+ },
1067
+ });
1068
+
1069
+ // Aggregates on named views alongside filters
1070
+ app.dashboard.view('quality', { label: 'Quality' })
1071
+ .aggregate('session-metrics', {
1072
+ collect: ({ stats }) => ({
1073
+ turnCount: stats.turnCount,
1074
+ toolCalls: stats.toolCallCount,
1075
+ }),
1076
+ reduce: (collected) => {
1077
+ const n = collected.length || 1;
1078
+ let turns = 0, tools = 0;
1079
+ for (const s of collected) {
1080
+ turns += typeof s.values.turnCount === 'number' ? s.values.turnCount : 0;
1081
+ tools += typeof s.values.toolCalls === 'number' ? s.values.toolCalls : 0;
1082
+ }
1083
+ return [
1084
+ { Metric: 'Avg Turns', Value: +(turns / n).toFixed(1) },
1085
+ { Metric: 'Avg Tool Calls', Value: +(tools / n).toFixed(1) },
1086
+ ];
1087
+ },
1088
+ })
1089
+ .filter('turns', ({ stats }) => stats.turnCount, { label: 'Turns' });
1090
+ ```
1091
+
1092
+ #### `AggregateContext`
1093
+
1094
+ The collect function receives an extended context:
1095
+
1096
+ ```ts
1097
+ interface AggregateContext {
1098
+ entries: Record<string, unknown>[]; // Raw JSONL lines
1099
+ stats: EvalLogStats; // Computed stats
1100
+ projectName: string;
1101
+ sessionId: string;
1102
+ source: string;
1103
+ evalResults: Record<string, { pass: boolean; score: number; error?: string; message?: string }>;
1104
+ enrichResults: Record<string, Record<string, EnrichmentValue>>;
1105
+ filterValues: Record<string, FilterValue>;
1106
+ }
1107
+ ```
1108
+
1109
+ #### Aggregate Types
1110
+
1111
+ ```ts
1112
+ type AggregateValue = boolean | number | string;
1113
+
1114
+ type AggregateCollectFunction = (
1115
+ context: AggregateContext,
1116
+ ) => Record<string, AggregateValue> | Promise<Record<string, AggregateValue>>;
1117
+
1118
+ type AggregateReduceFunction = (
1119
+ collected: CollectedSession[],
1120
+ ) => AggregateTableRow[] | Promise<AggregateTableRow[]>;
1121
+
1122
+ type AggregateDefinition = {
1123
+ collect: AggregateCollectFunction;
1124
+ reduce: AggregateReduceFunction;
1125
+ };
1126
+
1127
+ interface AggregateOptions {
1128
+ label?: string;
1129
+ condition?: ConditionFunction;
1130
+ }
1131
+
1132
+ interface CollectedSession {
1133
+ projectName: string;
1134
+ sessionId: string;
1135
+ values: Record<string, AggregateValue>;
1136
+ }
1137
+
1138
+ type AggregateTableRow = Record<string, AggregateValue>;
1139
+
1140
+ interface AggregatePayload {
1141
+ aggregates: {
1142
+ name: string;
1143
+ label: string;
1144
+ rows: AggregateTableRow[];
1145
+ columns: string[];
1146
+ }[];
1147
+ totalSessions: number;
1148
+ totalDurationMs: number;
1149
+ }
1150
+ ```
1151
+
1152
+ ---
1153
+
1154
+ ### `app.auth(options)`
1155
+
1156
+ Configure username/password authentication. When at least one user is configured (via `app.auth()`, `--auth-user`, or `CLAUDEYE_AUTH_USERS` env var), all UI routes are protected by a login page. Users from all sources are merged.
1157
+
1158
+ - **`options.users`** - array of `{ username: string; password: string }` objects
1159
+
1160
+ ```ts
1161
+ app.auth({ users: [
1162
+ { username: 'admin', password: 'secret' },
1163
+ { username: 'viewer', password: 'readonly' },
1164
+ ] });
1165
+ ```
1166
+
1167
+ Chainable — returns the app instance:
1168
+
1169
+ ```js
1170
+ app
1171
+ .auth({ users: [{ username: 'admin', password: 'secret' }] })
1172
+ .eval('my-eval', fn)
1173
+ .listen();
1174
+ ```
1175
+
1176
+ When auth is active:
1177
+ - All UI routes redirect to `/login` for unauthenticated users
1178
+ - A signed HMAC-SHA256 session cookie (`claudeye_session`) is set on login, with 24h expiry
1179
+ - The navbar shows a **Sign out** button
1180
+ - If no users are configured, auth is completely disabled (no login page, no blocking)
1181
+
1182
+ #### Multiple Sources
1183
+
1184
+ Users from CLI, environment, and API are merged:
1185
+
1186
+ ```bash
1187
+ # CLI
1188
+ claudeye --evals ./my-evals.js --auth-user ops:pass123
1189
+
1190
+ # Environment (comma-separated user:password pairs)
1191
+ CLAUDEYE_AUTH_USERS=admin:secret claudeye --evals ./my-evals.js
1192
+
1193
+ # API (in my-evals.js)
1194
+ app.auth({ users: [{ username: 'dev', password: 'devpass' }] });
1195
+ ```
1196
+
1197
+ All three users (`ops`, `admin`, `dev`) would be valid.
1198
+
1199
+ ---
1200
+
1201
+ ### `app.listen(port?, options?)`
1202
+
1203
+ Start the Claudeye dashboard server.
1204
+
1205
+ - **`port`** - port number (default: 8020)
1206
+ - **`options.host`** - bind address (default: `"localhost"`, use `"0.0.0.0"` for LAN)
1207
+ - **`options.open`** - auto-open browser (default: `true`)
1208
+
1209
+ When the file is loaded via `--evals` or `CLAUDEYE_EVALS_MODULE`, `listen()` is a no-op. It won't spawn a duplicate server.
1210
+
1211
+ ```js
1212
+ const app = createApp();
1213
+
1214
+ app.eval('my-eval', fn);
1215
+ app.enrich('my-enricher', fn);
1216
+
1217
+ // Only starts a server when run directly with `node` or `bun`
1218
+ app.listen(3000, { host: '0.0.0.0', open: false });
1219
+ ```
1220
+
1221
+ You can also run your evals file directly with `bun my-evals.js` (or `node my-evals.js`) if you include `app.listen()`. This spawns the dashboard as a child process.
1222
+
1223
+ ---
1224
+
1225
+ ## Subagent Scope
1226
+
1227
+ Evals, enrichments, and actions run at the session level by default. Use the `scope` option to target subagent logs.
1228
+
1229
+ ### Scope Options
1230
+
1231
+ | Scope | Runs at session level | Runs at subagent level |
1232
+ |-------|:---:|:---:|
1233
+ | `'session'` (default) | Yes | No |
1234
+ | `'subagent'` | No | Yes |
1235
+ | `'both'` | Yes | Yes |
1236
+
1237
+ ### Subagent Context
1238
+
1239
+ When running at subagent level, the `EvalContext` includes additional metadata:
1240
+
1241
+ ```js
1242
+ app.eval('adaptive-eval', (ctx) => {
1243
+ if (ctx.source !== 'session') {
1244
+ // Running at subagent level — source is "agent-{id}"
1245
+ console.log(ctx.source); // e.g. 'agent-a1b2c3'
1246
+ console.log(ctx.subagentType); // e.g. 'Explore'
1247
+ console.log(ctx.subagentDescription); // e.g. 'Search for auth code'
1248
+ console.log(ctx.parentSessionId); // parent session ID
1249
+ }
1250
+ return { pass: true };
1251
+ }, { scope: 'both' });
1252
+ ```
1253
+
1254
+ ### Combined Data in Subagent Scope
1255
+
1256
+ Subagent-scoped evals and enrichments receive the full combined data (session + all subagents), not just the subagent's own entries. The `source` field in `EvalContext` directly matches the `_source` value on entries, so you can filter easily:
1257
+
1258
+ ```js
1259
+ // Subagent-scoped eval that filters to its own entries
1260
+ app.eval('explore-thoroughness', ({ entries, source }) => {
1261
+ const myEntries = entries.filter(e => e._source === source);
1262
+ return {
1263
+ pass: myEntries.length > 5,
1264
+ score: Math.min(myEntries.length / 20, 1),
1265
+ };
1266
+ }, { scope: 'subagent', subagentType: 'Explore' });
1267
+ ```
1268
+
1269
+ ### SubagentType Filtering
1270
+
1271
+ When you specify `subagentType`, the eval/enrichment only runs for subagents of that type. Subagents of other types will not see the eval panel at all.
1272
+
1273
+ ```js
1274
+ // Only runs for Explore subagents
1275
+ app.eval('explore-thoroughness', ({ entries, source }) => {
1276
+ const myEntries = entries.filter(e => e._source === source);
1277
+ return {
1278
+ pass: myEntries.length > 5,
1279
+ score: Math.min(myEntries.length / 20, 1),
1280
+ message: `${myEntries.length} entries explored`,
1281
+ };
1282
+ }, { scope: 'subagent', subagentType: 'Explore' });
1283
+
1284
+ // Runs for all subagent types
1285
+ app.eval('agent-efficiency', ({ stats }) => ({
1286
+ pass: stats.turnCount <= 10,
1287
+ score: Math.max(0, 1 - stats.turnCount / 20),
1288
+ message: `${stats.turnCount} turns`,
1289
+ }), { scope: 'subagent' });
1290
+
1291
+ // Subagent-scoped enrichment
1292
+ app.enrich('agent-summary',
1293
+ ({ stats, entries }) => ({
1294
+ 'Agent Turns': stats.turnCount,
1295
+ 'Agent Tool Calls': stats.toolCallCount,
1296
+ 'Agent Entries': entries.length,
1297
+ }),
1298
+ { scope: 'subagent' }
1299
+ );
1300
+
1301
+ // Scoped to both session and subagent level
1302
+ app.eval('quality-check', ({ stats, source }) => ({
1303
+ pass: stats.toolCallCount <= 20,
1304
+ score: Math.max(0, 1 - stats.toolCallCount / 40),
1305
+ message: `${source}: ${stats.toolCallCount} tool calls`,
1306
+ }), { scope: 'both' });
1307
+ ```
1308
+
1309
+ ---
1310
+
1311
+ ## Evaluation Order
1312
+
1313
+ When a session is loaded, conditions are evaluated in this order:
1314
+
1315
+ ```
1316
+ 1. Global condition checked
1317
+ |-- Returns false or throws -> ALL evals/enrichments marked "skipped"
1318
+ \-- Returns true -> proceed to step 2
1319
+
1320
+ 2. For each eval/enrichment:
1321
+ |-- Has per-item condition?
1322
+ | |-- Returns false -> that item marked "skipped"
1323
+ | |-- Throws -> that item marked "errored" (not skipped)
1324
+ | \-- Returns true -> run the function
1325
+ \-- No condition -> run the function
1326
+
1327
+ 3. Function executes
1328
+ |-- Returns result -> recorded normally
1329
+ \-- Throws -> marked "errored", other items still run
1330
+ ```
1331
+
1332
+ ---
1333
+
1334
+ ## UI Behavior
1335
+
1336
+ In the dashboard, conditional results appear as follows:
1337
+
1338
+ | Status | Evals Panel | Enrichments Panel |
1339
+ |--------|-------------|-------------------|
1340
+ | **Skipped** | Grayed-out row with "skipped" label | Grayed-out row with "skipped" label |
1341
+ | **Condition error** | Row with warning icon and error message | Row with warning icon and error message |
1342
+ | **Passed / Data** | Green check with score bar | Key-value pairs grouped by enricher |
1343
+ | **Failed** | Red X with score bar | N/A |
1344
+
1345
+ Skipped items are counted separately in the summary bar (e.g. "2 passed, 1 skipped").
1346
+
1347
+ ---
1348
+
1349
+ ## Types
1350
+
1351
+ All TypeScript types exported from `claudeye`:
1352
+
1353
+ ### `EvalContext`
1354
+
1355
+ Both evals and enrichers receive the same context object:
1356
+
1357
+ ```ts
1358
+ interface EvalContext {
1359
+ entries: Record<string, unknown>[]; // Combined session + subagent JSONL lines, each tagged with `_source`
1360
+ stats: EvalLogStats; // Computed stats across all entries (session + subagent)
1361
+ projectName: string; // Encoded project folder name
1362
+ sessionId: string; // Session UUID
1363
+ source: string; // "session" or "agent-{id}" — matches entry._source directly
1364
+ subagentType?: string; // e.g. 'Explore', 'Bash' (subagent scope only)
1365
+ subagentDescription?: string; // Short description (subagent scope only)
1366
+ parentSessionId?: string; // Parent session ID (subagent scope only)
1367
+ evalResults?: Record<string, { // Cached eval results (cachedOnly views only)
1368
+ pass: boolean;
1369
+ score: number;
1370
+ error?: string;
1371
+ message?: string;
1372
+ }>;
1373
+ }
1374
+ ```
1375
+
1376
+ `entries` contains the **raw JSONL data** from the session and all its subagents combined. Every line from the session log file and its subagent log files is parsed as JSON and included. Each entry has a `_source` field: `"session"` for main session entries, or `"agent-{id}"` for subagent entries. This means:
1377
+
1378
+ - Tool-result lines (which the display view merges into tool_use blocks) are present as separate entries
1379
+ - All entry types are included: `user`, `assistant`, `system`, `tool_result`, `queue-operation`, etc.
1380
+ - Properties are accessed directly (e.g. `e.usage?.total_tokens`) rather than through a `.raw` wrapper
1381
+ - Filter by `e._source === "session"` to get only main session data
1382
+ - Filter by `e._source` starting with `"agent-"` to get subagent data
1383
+
1384
+ ### `EvalLogEntry` (helper type)
1385
+
1386
+ `EvalLogEntry` is exported as a convenience type for describing the display-oriented parsed entries, but it is **not** the type of `EvalContext.entries`. The entries passed to evals and enrichments are raw JSONL objects (`Record<string, unknown>[]`).
1387
+
1388
+ ```ts
1389
+ interface EvalLogEntry {
1390
+ type: string;
1391
+ _source?: string; // "session" or "agent-{id}"
1392
+ uuid: string;
1393
+ parentUuid: string | null;
1394
+ timestamp: string;
1395
+ timestampMs: number;
1396
+ timestampFormatted: string;
1397
+ message?: {
1398
+ role: string;
1399
+ content: string | EvalContentBlock[];
1400
+ model?: string;
1401
+ };
1402
+ raw?: Record<string, unknown>;
1403
+ label?: string;
1404
+ }
1405
+ ```
1406
+
1407
+ ### `EvalLogStats`
1408
+
1409
+ > Stats are computed across all entries (session + subagent combined). Use `_source` filtering on entries before computing custom scoped metrics if needed.
1410
+
1411
+ ```ts
1412
+ interface EvalLogStats {
1413
+ turnCount: number; // Number of conversation turns
1414
+ userCount: number; // Number of user messages
1415
+ assistantCount: number; // Number of assistant responses
1416
+ toolCallCount: number; // Total tool invocations
1417
+ subagentCount: number; // Number of subagent spawns
1418
+ duration: string; // Formatted duration (e.g. "2m 15s")
1419
+ models: string[]; // Distinct model IDs used
1420
+ }
1421
+ ```
1422
+
1423
+ ### `EvalResult`
1424
+
1425
+ ```ts
1426
+ interface EvalResult {
1427
+ pass: boolean; // Did the eval pass?
1428
+ score?: number; // 0-1, clamped automatically (default: 1.0)
1429
+ message?: string; // Shown in the UI
1430
+ metadata?: Record<string, unknown>; // Arbitrary data
1431
+ }
1432
+ ```
1433
+
1434
+ ### `EnrichmentResult`
1435
+
1436
+ ```ts
1437
+ type EnrichmentResult = Record<string, string | number | boolean>;
1438
+ ```
1439
+
1440
+ ### `ConditionFunction`
1441
+
1442
+ ```ts
1443
+ type ConditionFunction = (context: EvalContext) => boolean | Promise<boolean>;
1444
+ ```
1445
+
1446
+ ### `FilterValue`
1447
+
1448
+ ```ts
1449
+ type FilterValue = boolean | number | string;
1450
+ ```
1451
+
1452
+ ### `FilterFunction`
1453
+
1454
+ ```ts
1455
+ type FilterFunction = (context: EvalContext) => FilterValue | Promise<FilterValue>;
1456
+ ```
1457
+
1458
+ ### `FilterOptions`
1459
+
1460
+ ```ts
1461
+ interface FilterOptions {
1462
+ label?: string; // Human-readable tile label (defaults to name)
1463
+ condition?: ConditionFunction; // Per-filter gate
1464
+ }
1465
+ ```
1466
+
1467
+ ### `FilterMeta`
1468
+
1469
+ Metadata auto-derived from computed filter values. Discriminated union by `type`:
1470
+
1471
+ ```ts
1472
+ type FilterMeta =
1473
+ | { type: 'boolean'; name: string; label: string }
1474
+ | { type: 'number'; name: string; label: string; min: number; max: number }
1475
+ | { type: 'string'; name: string; label: string; values: string[] }
1476
+ | { type: 'date'; name: string; label: string; min: string; max: string };
1477
+ ```
1478
+
1479
+ ### `DashboardPayload`
1480
+
1481
+ ```ts
1482
+ interface DashboardPayload {
1483
+ sessions: DashboardSessionRow[]; // One page of matching sessions
1484
+ filterMeta: FilterMeta[]; // One per registered filter
1485
+ totalDurationMs: number; // Server-side computation time
1486
+ totalCount: number; // Total sessions before filtering
1487
+ matchingCount: number; // Total sessions after filtering
1488
+ page: number; // Current page (1-based)
1489
+ pageSize: number; // Items per page
1490
+ }
1491
+
1492
+ interface DashboardSessionRow {
1493
+ projectName: string;
1494
+ sessionId: string;
1495
+ lastModified: string; // ISO 8601
1496
+ lastModifiedFormatted: string; // Human-readable
1497
+ filterValues: Record<string, FilterValue>;
1498
+ }
1499
+ ```
1500
+
1501
+ ### `EvalScope`
1502
+
1503
+ ```ts
1504
+ type EvalScope = 'session' | 'subagent' | 'both';
1505
+ ```
1506
+
1507
+ ---
1508
+
1509
+ ## Examples
1510
+
1511
+ Complete, runnable example files. Save any of these as a `.js` file and run with `claudeye --evals ./your-file.js`.
1512
+
1513
+ ### Example: Basic Evals & Enrichments
1514
+
1515
+ The quickstart example — define evals and enrichments in one file:
1516
+
1517
+ ```js
1518
+ import { createApp } from 'claudeye';
1519
+
1520
+ const app = createApp();
1521
+
1522
+ // ── Global condition ────────────────────────────────────────────
1523
+ // Skip empty sessions across evals, enrichments, AND dashboard filters.
1524
+ app.condition(({ entries }) => entries.length > 0);
1525
+
1526
+ // ── Evals ───────────────────────────────────────────────────────
1527
+
1528
+ app.eval('under-50-turns', ({ stats }) => ({
1529
+ pass: stats.turnCount <= 50,
1530
+ score: Math.max(0, 1 - stats.turnCount / 100),
1531
+ message: `${stats.turnCount} turn(s)`,
1532
+ }));
1533
+
1534
+ app.eval('has-completion', ({ entries }) => {
1535
+ const last = [...entries].reverse().find(e => e.type === 'assistant');
1536
+ const hasText = last?.message?.content?.some?.(b => b.type === 'text');
1537
+ return {
1538
+ pass: !!hasText,
1539
+ score: hasText ? 1.0 : 0,
1540
+ message: hasText ? 'Ended with text' : 'No final text response',
1541
+ };
1542
+ });
1543
+
1544
+ app.eval('session-tool-count', ({ entries }) => {
1545
+ const sessionTools = entries
1546
+ .filter(e => e._source === 'session' && e.type === 'assistant')
1547
+ .flatMap(e => (e.message?.content || []).filter(b => b.type === 'tool_use'));
1548
+ return {
1549
+ pass: sessionTools.length <= 100,
1550
+ score: Math.max(0, 1 - sessionTools.length / 200),
1551
+ message: `${sessionTools.length} session-level tool calls`,
1552
+ };
1553
+ });
1554
+
1555
+ // ── Enrichments ─────────────────────────────────────────────────
1556
+
1557
+ app.enrich('session-overview', ({ stats }) => ({
1558
+ 'Turns': stats.turnCount,
1559
+ 'Tool Calls': stats.toolCallCount,
1560
+ 'Subagents': stats.subagentCount,
1561
+ 'Duration': stats.duration,
1562
+ 'Models': stats.models.join(', ') || 'none',
1563
+ }));
1564
+
1565
+ app.listen();
1566
+ ```
1567
+
1568
+ ### Example: Dashboard Filters
1569
+
1570
+ Named dashboard views with focused filter sets, evals, and enrichments:
1571
+
1572
+ ```js
1573
+ import { createApp } from 'claudeye';
1574
+
1575
+ const app = createApp();
1576
+
1577
+ // ── Global condition ────────────────────────────────────────────
1578
+ app.condition(({ entries }) => entries.length > 0);
1579
+
1580
+ // ── Performance view ────────────────────────────────────────────
1581
+ app.dashboard.view('performance', { label: 'Performance Metrics' })
1582
+ .filter({ preBuilt: ['lastModified'] })
1583
+ .filter('turn-count', ({ stats }) => stats.turnCount, { label: 'Turn Count' })
1584
+ .filter('tool-calls', ({ stats }) => stats.toolCallCount, { label: 'Tool Calls' })
1585
+ .filter('avg-tools-per-turn',
1586
+ ({ stats }) => stats.turnCount > 0
1587
+ ? Math.round(stats.toolCallCount / stats.turnCount * 10) / 10
1588
+ : 0,
1589
+ {
1590
+ label: 'Avg Tools/Turn',
1591
+ condition: ({ stats }) => stats.toolCallCount > 0,
1592
+ }
1593
+ );
1594
+
1595
+ // ── Quality view ────────────────────────────────────────────────
1596
+ app.dashboard.view('quality', { label: 'Quality Checks' })
1597
+ .filter('has-errors', ({ entries }) =>
1598
+ entries.some(e =>
1599
+ e.type === 'assistant' &&
1600
+ Array.isArray(e.message?.content) &&
1601
+ e.message.content.some(b => b.type === 'tool_use' && b.is_error)
1602
+ ),
1603
+ { label: 'Has Errors' }
1604
+ )
1605
+ .filter('primary-model', ({ stats }) => stats.models[0] || 'unknown',
1606
+ { label: 'Primary Model' }
1607
+ )
1608
+ .filter('uses-subagents', ({ stats }) => stats.subagentCount > 0,
1609
+ { label: 'Uses Subagents' }
1610
+ );
1611
+
1612
+ // ── Evals ───────────────────────────────────────────────────────
1613
+
1614
+ app.eval('under-50-turns', ({ stats }) => ({
1615
+ pass: stats.turnCount <= 50,
1616
+ score: Math.max(0, 1 - stats.turnCount / 100),
1617
+ message: `${stats.turnCount} turn(s)`,
1618
+ }));
1619
+
1620
+ app.eval('has-completion', ({ entries }) => {
1621
+ const last = [...entries].reverse().find(e => e.type === 'assistant');
1622
+ const hasText = last?.message?.content?.some?.(b => b.type === 'text');
1623
+ return {
1624
+ pass: !!hasText,
1625
+ score: hasText ? 1.0 : 0,
1626
+ message: hasText ? 'Ended with text' : 'No final text response',
1627
+ };
1628
+ });
1629
+
1630
+ app.eval('session-tool-count', ({ entries }) => {
1631
+ const sessionTools = entries
1632
+ .filter(e => e._source === 'session' && e.type === 'assistant')
1633
+ .flatMap(e => (e.message?.content || []).filter(b => b.type === 'tool_use'));
1634
+ return {
1635
+ pass: sessionTools.length <= 100,
1636
+ score: Math.max(0, 1 - sessionTools.length / 200),
1637
+ message: `${sessionTools.length} session-level tool calls`,
1638
+ };
1639
+ });
1640
+
1641
+ // ── Enrichments ─────────────────────────────────────────────────
1642
+
1643
+ app.enrich('session-overview', ({ stats }) => ({
1644
+ 'Turns': stats.turnCount,
1645
+ 'Tool Calls': stats.toolCallCount,
1646
+ 'Subagents': stats.subagentCount,
1647
+ 'Duration': stats.duration,
1648
+ 'Models': stats.models.join(', ') || 'none',
1649
+ }));
1650
+
1651
+ app.listen();
1652
+ ```
1653
+
1654
+ ### Example: Multi-View Dashboard
1655
+
1656
+ Multiple named views with focused filter sets:
1657
+
1658
+ ```js
1659
+ import { createApp } from 'claudeye';
1660
+
1661
+ const app = createApp();
1662
+
1663
+ // ── Performance view ────────────────────────────────────────────
1664
+ // Metrics about session length and tool usage.
1665
+ app.dashboard.view('performance', { label: 'Performance Metrics' })
1666
+ .filter('turn-count', ({ stats }) => stats.turnCount,
1667
+ { label: 'Turn Count' })
1668
+ .filter('tool-calls', ({ stats }) => stats.toolCallCount,
1669
+ { label: 'Tool Calls' })
1670
+ .filter('uses-subagents', ({ stats }) => stats.subagentCount > 0,
1671
+ { label: 'Uses Subagents' });
1672
+
1673
+ // ── Quality view ────────────────────────────────────────────────
1674
+ // Error and model analysis.
1675
+ app.dashboard.view('quality', { label: 'Quality Checks' })
1676
+ .filter('has-errors', ({ entries }) =>
1677
+ entries.some(e =>
1678
+ e.type === 'assistant' &&
1679
+ Array.isArray(e.message?.content) &&
1680
+ e.message.content.some(b => b.type === 'tool_use' && b.is_error)
1681
+ ),
1682
+ { label: 'Has Errors' })
1683
+ .filter('primary-model', ({ stats }) => stats.models[0] || 'unknown',
1684
+ { label: 'Primary Model' });
1685
+
1686
+ // ── Backward-compatible default filter ──────────────────────────
1687
+ // app.dashboard.filter() still works — goes to the "default" view.
1688
+ // Default filters show below the view cards on /dashboard.
1689
+ app.dashboard.filter('model', ({ stats }) => stats.models[0] || 'unknown',
1690
+ { label: 'Model' }
1691
+ );
1692
+
1693
+ app.listen();
1694
+ ```
1695
+
1696
+ ### Example: Eval Score Filters (cachedOnly)
1697
+
1698
+ Per-eval score filters on a `cachedOnly` dashboard view. When a view uses `cachedOnly: true`, filter functions receive `ctx.evalResults` containing cached eval results:
1699
+
1700
+ ```js
1701
+ import { createApp } from 'claudeye';
1702
+
1703
+ const app = createApp();
1704
+
1705
+ // ── Register evals that produce scores ──────────────────────────
1706
+ app.eval('quality', ({ entries }) => {
1707
+ const assistantMsgs = entries.filter(e => e.type === 'assistant');
1708
+ const avgLength = assistantMsgs.reduce((sum, e) => {
1709
+ const content = typeof e.message?.content === 'string' ? e.message.content : '';
1710
+ return sum + content.length;
1711
+ }, 0) / (assistantMsgs.length || 1);
1712
+ const score = Math.min(avgLength / 500, 1);
1713
+ return { pass: score > 0.5, score };
1714
+ });
1715
+
1716
+ app.eval('speed', ({ stats }) => {
1717
+ const durationSec = parseFloat(stats.duration) || 60;
1718
+ const score = Math.max(0, 1 - durationSec / 120);
1719
+ return { pass: score > 0.3, score };
1720
+ });
1721
+
1722
+ // ── cachedOnly view with per-eval score filters ─────────────────
1723
+ app.dashboard.view('eval-results', { cachedOnly: true, label: 'Eval Score Filters' })
1724
+ .filter('quality-score',
1725
+ (ctx) => ctx.evalResults?.['quality']?.score ?? 0,
1726
+ { label: 'Quality Score' })
1727
+ .filter('speed-score',
1728
+ (ctx) => ctx.evalResults?.['speed']?.score ?? 0,
1729
+ { label: 'Speed Score' })
1730
+ .filter('all-passing', (ctx) => {
1731
+ if (!ctx.evalResults) return false;
1732
+ return Object.values(ctx.evalResults).every(r => r.pass);
1733
+ }, { label: 'All Evals Passing' });
1734
+
1735
+ app.listen();
1736
+ ```
1737
+
1738
+ ### Example: Actions
1739
+
1740
+ On-demand tasks triggered manually from the dashboard. Actions receive the full session context plus cached eval and enrichment results:
1741
+
1742
+ ```js
1743
+ import { createApp } from 'claudeye';
1744
+
1745
+ const app = createApp();
1746
+
1747
+ // ── Evals (actions can read these results) ──────────────────────
1748
+
1749
+ app.eval('under-50-turns', ({ stats }) => ({
1750
+ pass: stats.turnCount <= 50,
1751
+ score: Math.max(0, 1 - stats.turnCount / 100),
1752
+ message: `${stats.turnCount} turn(s)`,
1753
+ }));
1754
+
1755
+ app.eval('has-completion', ({ entries }) => {
1756
+ const last = [...entries].reverse().find(e => e.type === 'assistant');
1757
+ const hasText = last?.message?.content?.some?.(b => b.type === 'text');
1758
+ return {
1759
+ pass: !!hasText,
1760
+ score: hasText ? 1.0 : 0,
1761
+ message: hasText ? 'Ended with text' : 'No final text response',
1762
+ };
1763
+ });
1764
+
1765
+ // ── Enrichments (actions can read these results too) ────────────
1766
+
1767
+ app.enrich('overview', ({ stats }) => ({
1768
+ 'Turns': stats.turnCount,
1769
+ 'Tool Calls': stats.toolCallCount,
1770
+ 'Models': stats.models.join(', ') || 'none',
1771
+ }));
1772
+
1773
+ // ── Actions ─────────────────────────────────────────────────────
1774
+
1775
+ // Session summary: combines stats with eval pass counts
1776
+ app.action('session-summary', ({ stats, evalResults }) => {
1777
+ const evalNames = Object.keys(evalResults);
1778
+ const passCount = evalNames.filter(n => evalResults[n]?.pass).length;
1779
+ return {
1780
+ output: [
1781
+ `Session: ${stats.turnCount} turns, ${stats.toolCallCount} tool calls`,
1782
+ `Duration: ${stats.duration}`,
1783
+ `Models: ${stats.models.join(', ') || 'unknown'}`,
1784
+ `Evals: ${passCount}/${evalNames.length} passed`,
1785
+ ].join('\n'),
1786
+ status: 'success',
1787
+ message: 'Summary generated',
1788
+ };
1789
+ });
1790
+
1791
+ // Export metrics: gathers enrichment data into a text report
1792
+ app.action('export-metrics', ({ stats, enrichmentResults }) => {
1793
+ const enrichData = {};
1794
+ for (const [name, result] of Object.entries(enrichmentResults)) {
1795
+ if (result.data) Object.assign(enrichData, result.data);
1796
+ }
1797
+ const lines = [
1798
+ ...Object.entries(enrichData).map(([k, v]) => `${k}: ${v}`),
1799
+ `turnCount: ${stats.turnCount}`,
1800
+ `toolCallCount: ${stats.toolCallCount}`,
1801
+ ];
1802
+ return {
1803
+ output: lines.join('\n'),
1804
+ status: 'success',
1805
+ message: `Exported ${Object.keys(enrichData).length + 2} metrics`,
1806
+ };
1807
+ });
1808
+
1809
+ // Tool inventory: lists unique tools used in the session
1810
+ app.action('tool-inventory', ({ entries }) => {
1811
+ const toolUses = entries.filter(e =>
1812
+ e.type === 'assistant' &&
1813
+ Array.isArray(e.message?.content) &&
1814
+ e.message.content.some(b => b.type === 'tool_use')
1815
+ );
1816
+ const toolNames = [...new Set(toolUses.flatMap(e =>
1817
+ (e.message?.content || []).filter(b => b.type === 'tool_use').map(b => b.name)
1818
+ ))];
1819
+ return {
1820
+ output: toolNames.length > 0
1821
+ ? `Tools used:\n${toolNames.map(t => ` - ${t}`).join('\n')}`
1822
+ : 'No tools used in this session',
1823
+ status: 'success',
1824
+ };
1825
+ }, { condition: ({ stats }) => stats.toolCallCount > 0 });
1826
+
1827
+ // Side-effect action: always re-runs (cache: false)
1828
+ app.action('write-report', async ({ projectName, sessionId, stats }) => {
1829
+ const fs = await import('fs/promises');
1830
+ await fs.appendFile('session-reports.jsonl', JSON.stringify({
1831
+ projectName, sessionId, turns: stats.turnCount,
1832
+ timestamp: new Date().toISOString(),
1833
+ }) + '\n');
1834
+ return { status: 'success', message: 'Report appended' };
1835
+ }, { cache: false });
1836
+
1837
+ app.listen();
1838
+ ```
1839
+
1840
+ ### Example: Alerts
1841
+
1842
+ Callbacks that fire after all evals and enrichments complete for a session:
1843
+
1844
+ ```js
1845
+ import { createApp } from 'claudeye';
1846
+
1847
+ const app = createApp();
1848
+
1849
+ // ── Evals ───────────────────────────────────────────────────────
1850
+
1851
+ app.eval('under-50-turns', ({ stats }) => ({
1852
+ pass: stats.turnCount <= 50,
1853
+ score: Math.max(0, 1 - stats.turnCount / 100),
1854
+ message: `${stats.turnCount} turn(s)`,
1855
+ }));
1856
+
1857
+ app.eval('has-completion', ({ entries }) => {
1858
+ const last = [...entries].reverse().find(e => e.type === 'assistant');
1859
+ const hasText = last?.message?.content?.some?.(b => b.type === 'text');
1860
+ return {
1861
+ pass: !!hasText,
1862
+ score: hasText ? 1.0 : 0,
1863
+ message: hasText ? 'Ended with text' : 'No final text response',
1864
+ };
1865
+ });
1866
+
1867
+ // ── Enrichments ─────────────────────────────────────────────────
1868
+
1869
+ app.enrich('overview', ({ stats }) => ({
1870
+ 'Turns': stats.turnCount,
1871
+ 'Tool Calls': stats.toolCallCount,
1872
+ 'Models': stats.models.join(', ') || 'none',
1873
+ }));
1874
+
1875
+ // ── Alerts ──────────────────────────────────────────────────────
1876
+
1877
+ // Console log: always fires, logs a summary line
1878
+ app.alert('log-results', ({ projectName, sessionId, evalSummary, enrichSummary }) => {
1879
+ const evals = evalSummary
1880
+ ? `${evalSummary.passCount} pass, ${evalSummary.failCount} fail, ${evalSummary.errorCount} error`
1881
+ : 'no evals';
1882
+ const enrichments = enrichSummary
1883
+ ? `${enrichSummary.results.length} enrichments`
1884
+ : 'no enrichments';
1885
+ console.log(`[ALERT] ${projectName}/${sessionId}: ${evals} | ${enrichments}`);
1886
+ });
1887
+
1888
+ // Failure alert: only logs when evals fail
1889
+ app.alert('warn-on-failure', ({ projectName, sessionId, evalSummary }) => {
1890
+ if (evalSummary && evalSummary.failCount > 0) {
1891
+ const failedNames = evalSummary.results
1892
+ .filter(r => !r.error && !r.skipped && !r.pass)
1893
+ .map(r => r.name);
1894
+ console.warn(
1895
+ `[FAILURE] ${projectName}/${sessionId}: ${failedNames.join(', ')} failed`
1896
+ );
1897
+ }
1898
+ });
1899
+
1900
+ // Slack webhook example (uncomment and replace the URL to enable):
1901
+ // app.alert('slack-on-failure', async ({ projectName, sessionId, evalSummary }) => {
1902
+ // if (evalSummary && evalSummary.failCount > 0) {
1903
+ // await fetch('https://hooks.slack.com/services/T.../B.../xxx', {
1904
+ // method: 'POST',
1905
+ // headers: { 'Content-Type': 'application/json' },
1906
+ // body: JSON.stringify({
1907
+ // text: `${evalSummary.failCount} evals failed for ${projectName}/${sessionId}`,
1908
+ // }),
1909
+ // });
1910
+ // }
1911
+ // });
1912
+
1913
+ app.listen();
1914
+ ```
1915
+
1916
+ ### Example: Minimal Filters Only
1917
+
1918
+ A minimal example — a single named view with filters, no evals or enrichments:
1919
+
1920
+ ```js
1921
+ import { createApp } from 'claudeye';
1922
+
1923
+ const app = createApp();
1924
+
1925
+ app.dashboard.view('overview', { label: 'Session Overview' })
1926
+ .filter({ preBuilt: ['lastModified'] })
1927
+ .filter('model', ({ stats }) => stats.models[0] || 'unknown',
1928
+ { label: 'Model' })
1929
+ .filter('turns', ({ stats }) => stats.turnCount,
1930
+ { label: 'Turns' })
1931
+ .filter('used-tools', ({ stats }) => stats.toolCallCount > 0,
1932
+ { label: 'Used Tools' });
1933
+
1934
+ app.listen();
1935
+ ```
1936
+
1937
+ ---
1938
+
1939
+ ## Background Queue Processing
1940
+
1941
+ Enable background processing to automatically scan and evaluate all sessions on a timer:
1942
+
1943
+ ```bash
1944
+ claudeye --evals ./my-evals.js --queue-interval 60
1945
+ ```
1946
+
1947
+ Use `app.queueCondition()` to gate which sessions the background queue processes:
1948
+
1949
+ ```js
1950
+ // Only process sessions with more than 5 entries
1951
+ app.queueCondition(({ entries }) => entries.length > 5);
1952
+ ```
1953
+
1954
+ The condition receives the full `EvalContext` and returns a boolean. If false, the session is skipped entirely. Results are cached per-session and auto-invalidate when the session file or condition function changes.
1955
+
1956
+ ### How the Queue Works
1957
+
1958
+ The queue is **unified** — every individual eval and enrichment (session-scoped, subagent-scoped, UI-triggered, or background-scanned) passes through a single priority queue with bounded concurrency.
1959
+
1960
+ 1. **Foreground (always active):** When a session page loads or a re-run is triggered, each uncached eval/enrichment is enqueued at HIGH priority via `queuePerItem()` and processed immediately (up to the concurrency limit)
1961
+ 2. **Background (opt-in):** When `CLAUDEYE_QUEUE_INTERVAL` is set, a timer scans all projects for uncached sessions and enqueues individual uncached evals/enrichments at LOW priority
1962
+ 3. **Priority:** HIGH (foreground/UI) items are always processed before LOW (background) items
1963
+ 4. **Dedup:** If the same item is enqueued twice, the existing entry is upgraded to the higher priority
1964
+ 5. **Subagent support:** Subagent evals/enrichments go through the same queue. The session ID is encoded as `sessionId/agent-agentId` for tracking purposes
1965
+ 6. **Alerts:** After each successful item completes, the queue checks if any pending/processing work remains for that session. When no work remains, alerts fire once per content version
1966
+
1967
+ ### Queue Status UI
1968
+
1969
+ The queue status is visible in two places:
1970
+
1971
+ **Navbar dropdown** — shows current processing items (max 7) and pending items with priority badges. Badge count = pending + processing.
1972
+
1973
+ **`/queue` details page** — three tabs:
1974
+ - **In Queue** — pending items with type badge, item name, session link, priority, queued time
1975
+ - **Processing** — active items with spinner, type badge, item name, session link, started time
1976
+ - **Processed** — completed items with type badge, item name, session link, duration, success/fail icon, completed time. Data is loaded from disk via paginated JSONL files (25 entries per page), so history survives process restarts
1977
+
1978
+ **Dashboard panel** — collapsible panel showing queue state with processing and pending tables, background processor indicator, and error list.
1979
+
1980
+ All views auto-refresh and self-hide when there's no queue activity.
1981
+
1982
+ ### Environment Variables
1983
+
1984
+ | Variable | Description | Default |
1985
+ |----------|-------------|---------|
1986
+ | `CLAUDEYE_QUEUE_INTERVAL` | Background scan interval in seconds | disabled |
1987
+ | `CLAUDEYE_QUEUE_CONCURRENCY` | Max parallel items per batch | `2` |
1988
+ | `CLAUDEYE_QUEUE_HISTORY_TTL` | Seconds to keep completed items | `3600` |
1989
+ | `CLAUDEYE_QUEUE_MAX_ITEMS` | Max items to enqueue per scan (0=unlimited) | `500` |
1990
+ | `CLAUDEYE_LOG_LEVEL` | Log verbosity: `info`, `warn`, `error` | `warn` |
1991
+
1992
+ At `info` level, all log lines (including `ACTIVITY` lines for user actions) are emitted. At `warn` (default), only warnings and errors appear. At `error`, only errors are shown.
1993
+
1994
+ ---
1995
+
1996
+ ## Caching
1997
+
1998
+ Caching is **always on**. Results are cached to `~/.claudeye/cache/` and automatically invalidated when session logs or eval definitions change. Click **Re-run** in the dashboard to bypass the cache.
1999
+
2000
+ ```bash
2001
+ claudeye --cache-path /tmp/cc # Custom cache location
2002
+ claudeye --cache-clear # Clear cache and exit
2003
+ ```
2004
+
2005
+ ---
2006
+
2007
+ ## Authentication
2008
+
2009
+ Claudeye ships with **opt-in** username/password auth. When no users are configured, everything works exactly as before — no login page, no blocking.
2010
+
2011
+ ### Enable via CLI
2012
+
2013
+ ```bash
2014
+ # Single user
2015
+ claudeye --auth-user admin:secret
2016
+
2017
+ # Multiple users
2018
+ claudeye --auth-user admin:secret --auth-user viewer:readonly
2019
+ ```
2020
+
2021
+ ### Enable via environment variable
2022
+
2023
+ ```bash
2024
+ CLAUDEYE_AUTH_USERS=admin:secret claudeye
2025
+ CLAUDEYE_AUTH_USERS=admin:secret,viewer:readonly claudeye
2026
+ ```
2027
+
2028
+ ### Enable via the programmatic API
2029
+
2030
+ ```js
2031
+ import { createApp } from 'claudeye';
2032
+
2033
+ const app = createApp();
2034
+
2035
+ app.auth({ users: [
2036
+ { username: 'admin', password: 'secret' },
2037
+ { username: 'viewer', password: 'readonly' },
2038
+ ] });
2039
+
2040
+ app.listen();
2041
+ ```
2042
+
2043
+ All three methods can be combined — users from CLI flags, the env var, and `app.auth()` are merged together.
2044
+
2045
+ When auth is active, all UI routes redirect to `/login`. After signing in, a signed session cookie (24h expiry) grants access. A **Sign out** button appears in the navbar.
2046
+
2047
+ ---
2048
+
2049
+ ## Deployment with PM2
2050
+
2051
+ For production deployments, use PM2 with Bun as the interpreter:
2052
+
2053
+ ```js
2054
+ // ecosystem.config.cjs
2055
+ module.exports = {
2056
+ apps: [{
2057
+ name: 'claudeye',
2058
+ script: 'node_modules/.bin/next',
2059
+ args: 'start',
2060
+ interpreter: 'bun',
2061
+ cwd: '/path/to/claudeye',
2062
+ env: {
2063
+ PORT: 8020,
2064
+ HOSTNAME: '0.0.0.0',
2065
+ CLAUDE_PROJECTS_PATH: '/home/user/.claude/projects',
2066
+ CLAUDEYE_EVALS_MODULE: './my-evals.js',
2067
+ CLAUDEYE_QUEUE_INTERVAL: '60',
2068
+ },
2069
+ }],
2070
+ };
2071
+ ```
2072
+
2073
+ ```bash
2074
+ # Start
2075
+ pm2 start ecosystem.config.cjs
2076
+
2077
+ # Monitor
2078
+ pm2 monit
2079
+
2080
+ # Auto-restart on reboot
2081
+ pm2 startup
2082
+ pm2 save
2083
+ ```
2084
+
2085
+ ---
2086
+
2087
+ ## How It Works
2088
+
2089
+ 1. `createApp()` + `app.eval()` / `app.enrich()` / `app.action()` / `app.alert()` / `app.condition()` / `app.queueCondition()` / `app.dashboard.view()` / `app.dashboard.filter()` / `app.dashboard.aggregate()` register functions in global registries
2090
+ 2. When you run `claudeye --evals ./my-file.js`, the server dynamically imports your file, populating the registries
2091
+ 3. All eval/enrichment execution routes through a unified priority queue. Each individual eval and enrichment is a separate queue item. UI requests use HIGH priority; background scanning uses LOW priority
2092
+ 4. Each item runs through: cache check → execute if uncached → cache result → check if session complete → fire alerts if complete
2093
+ 5. The global condition is checked first. If it fails, everything is skipped
2094
+ 6. Per-item conditions are checked individually. Skipped items don't block others
2095
+ 7. Each function is individually error-isolated. If one throws, the others still run
2096
+ 8. After all evals and enrichments complete, registered alerts fire with the complete `AlertContext` (eval summary + enrichment summary)
2097
+ 9. Results are serialized and displayed in separate panels in the dashboard UI
2098
+ 10. Named dashboard views (`/dashboard`) show a view index; each view (`/dashboard/[viewName]`) computes filter values incrementally (only new/changed sessions are processed), then filters and paginates server-side for efficiency
2099
+ 11. Dashboard aggregates run a separate server action that collects per-session values (with eval/enrichment/filter results) and reduces them via user-defined reduce functions into sortable summary tables
2100
+ 12. When `CLAUDEYE_QUEUE_INTERVAL` is set, a background processor scans for uncached items on a timer. Track queue state at `/queue` or via the navbar dropdown
2101
+
2102
+ ---
2103
+
2104
+ ## Community
2105
+
2106
+ - [Discord](https://discord.com/invite/zT92CAgvkj) - get help and connect with other developers
2107
+ - [Issues](https://github.com/exospherehost/claudeye/issues) - bug reports and feature requests
2108
+
2109
+ ## License
2110
+
2111
+ MIT + Commons Clause. See [LICENSE](./LICENSE).