fleetlens 0.4.0 → 0.6.0

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 (440) hide show
  1. package/app/apps/web/.next/BUILD_ID +1 -1
  2. package/app/apps/web/.next/app-path-routes-manifest.json +16 -7
  3. package/app/apps/web/.next/build-manifest.json +7 -7
  4. package/app/apps/web/.next/prerender-manifest.json +3 -3
  5. package/app/apps/web/.next/required-server-files.json +2 -1
  6. package/app/apps/web/.next/routes-manifest.json +86 -24
  7. package/app/apps/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  8. package/app/apps/web/.next/server/app/_global-error/page.js +1 -1
  9. package/app/apps/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  10. package/app/apps/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/app/apps/web/.next/server/app/_global-error.html +1 -1
  12. package/app/apps/web/.next/server/app/_global-error.rsc +7 -7
  13. package/app/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  14. package/app/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  15. package/app/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  16. package/app/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  17. package/app/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/app/apps/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  19. package/app/apps/web/.next/server/app/_not-found/page.js +5 -4
  20. package/app/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  21. package/app/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  22. package/app/apps/web/.next/server/app/api/digest/day/[date]/route/app-paths-manifest.json +3 -0
  23. package/app/apps/web/.next/server/app/api/digest/day/[date]/route.js +9 -0
  24. package/app/apps/web/.next/server/app/api/{insights/saved/[key] → digest/day/[date]}/route.js.nft.json +1 -1
  25. package/app/apps/web/.next/server/app/api/digest/day/[date]/route_client-reference-manifest.js +3 -0
  26. package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route/app-paths-manifest.json +3 -0
  27. package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js +9 -0
  28. package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js.nft.json +1 -0
  29. package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route_client-reference-manifest.js +3 -0
  30. package/app/apps/web/.next/server/app/api/digest/month-index/route/app-paths-manifest.json +3 -0
  31. package/app/apps/web/.next/server/app/api/digest/month-index/route.js +7 -0
  32. package/app/apps/web/.next/server/app/api/{insights/months-index → digest/month-index}/route.js.nft.json +1 -1
  33. package/app/apps/web/.next/server/app/api/{insights/pdf/[key] → digest/month-index}/route_client-reference-manifest.js +1 -1
  34. package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route/app-paths-manifest.json +3 -0
  35. package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js +9 -0
  36. package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js.nft.json +1 -0
  37. package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route_client-reference-manifest.js +3 -0
  38. package/app/apps/web/.next/server/app/api/digest/week-index/route/app-paths-manifest.json +3 -0
  39. package/app/apps/web/.next/server/app/api/digest/week-index/route.js +7 -0
  40. package/app/apps/web/.next/server/app/api/{insights/weeks-index → digest/week-index}/route.js.nft.json +1 -1
  41. package/app/apps/web/.next/server/app/api/digest/week-index/route_client-reference-manifest.js +3 -0
  42. package/app/apps/web/.next/server/app/api/jobs/route/app-paths-manifest.json +3 -0
  43. package/app/apps/web/.next/server/app/api/jobs/route.js +6 -0
  44. package/app/apps/web/.next/server/app/api/jobs/route.js.nft.json +1 -0
  45. package/app/apps/web/.next/server/app/api/jobs/route_client-reference-manifest.js +3 -0
  46. package/app/apps/web/.next/server/app/api/runs/[runId]/route/app-paths-manifest.json +3 -0
  47. package/app/apps/web/.next/server/app/api/runs/[runId]/route/build-manifest.json +9 -0
  48. package/app/apps/web/.next/server/app/api/runs/[runId]/route.js +6 -0
  49. package/app/apps/web/.next/server/app/api/{insights/saved → runs/[runId]}/route.js.nft.json +1 -1
  50. package/app/apps/web/.next/server/app/api/runs/[runId]/route_client-reference-manifest.js +3 -0
  51. package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route/app-paths-manifest.json +3 -0
  52. package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route/build-manifest.json +9 -0
  53. package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route/server-reference-manifest.json +4 -0
  54. package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route.js +6 -0
  55. package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route.js.map +5 -0
  56. package/app/apps/web/.next/server/app/api/{insights/pdf/[key] → runs/[runId]/stream}/route.js.nft.json +1 -1
  57. package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route_client-reference-manifest.js +3 -0
  58. package/app/apps/web/.next/server/app/api/runs/route/app-paths-manifest.json +3 -0
  59. package/app/apps/web/.next/server/app/api/runs/route/build-manifest.json +9 -0
  60. package/app/apps/web/.next/server/app/api/runs/route/server-reference-manifest.json +4 -0
  61. package/app/apps/web/.next/server/app/api/runs/route.js +6 -0
  62. package/app/apps/web/.next/server/app/api/runs/route.js.map +5 -0
  63. package/app/apps/web/.next/server/app/api/{insights → runs}/route.js.nft.json +1 -1
  64. package/app/apps/web/.next/server/app/api/runs/route_client-reference-manifest.js +3 -0
  65. package/app/apps/web/.next/server/app/api/settings/route/app-paths-manifest.json +3 -0
  66. package/app/apps/web/.next/server/app/api/settings/route/build-manifest.json +9 -0
  67. package/app/apps/web/.next/server/app/api/settings/route/server-reference-manifest.json +4 -0
  68. package/app/apps/web/.next/server/app/api/settings/route.js +10 -0
  69. package/app/apps/web/.next/server/app/api/settings/route.js.map +5 -0
  70. package/app/apps/web/.next/server/app/api/settings/route.js.nft.json +1 -0
  71. package/app/apps/web/.next/server/app/api/{insights → settings}/route_client-reference-manifest.js +1 -1
  72. package/app/apps/web/.next/server/app/day/[date]/page/app-paths-manifest.json +3 -0
  73. package/app/apps/web/.next/server/app/{insights/print/[key] → day/[date]}/page/build-manifest.json +4 -4
  74. package/app/apps/web/.next/server/app/day/[date]/page/server-reference-manifest.json +4 -0
  75. package/app/apps/web/.next/server/app/day/[date]/page.js +18 -0
  76. package/app/apps/web/.next/server/app/day/[date]/page.js.map +5 -0
  77. package/app/apps/web/.next/server/app/day/[date]/page.js.nft.json +1 -0
  78. package/app/apps/web/.next/server/app/day/[date]/page_client-reference-manifest.js +3 -0
  79. package/app/apps/web/.next/server/app/day/page/app-paths-manifest.json +3 -0
  80. package/app/apps/web/.next/server/app/day/page/build-manifest.json +17 -0
  81. package/app/apps/web/.next/server/app/day/page/next-font-manifest.json +6 -0
  82. package/app/apps/web/.next/server/app/day/page/react-loadable-manifest.json +1 -0
  83. package/app/apps/web/.next/server/app/day/page/server-reference-manifest.json +4 -0
  84. package/app/apps/web/.next/server/app/{insights/print/[key] → day}/page.js +11 -10
  85. package/app/apps/web/.next/server/app/day/page.js.map +5 -0
  86. package/app/apps/web/.next/server/app/day/page.js.nft.json +1 -0
  87. package/app/apps/web/.next/server/app/day/page_client-reference-manifest.js +3 -0
  88. package/app/apps/web/.next/server/app/digest/[date]/page/app-paths-manifest.json +3 -0
  89. package/app/apps/web/.next/server/app/digest/[date]/page/build-manifest.json +17 -0
  90. package/app/apps/web/.next/server/app/digest/[date]/page/next-font-manifest.json +6 -0
  91. package/app/apps/web/.next/server/app/digest/[date]/page/react-loadable-manifest.json +1 -0
  92. package/app/apps/web/.next/server/app/digest/[date]/page/server-reference-manifest.json +4 -0
  93. package/app/apps/web/.next/server/app/digest/[date]/page.js +17 -0
  94. package/app/apps/web/.next/server/app/digest/[date]/page.js.map +5 -0
  95. package/app/apps/web/.next/server/app/digest/[date]/page.js.nft.json +1 -0
  96. package/app/apps/web/.next/server/app/digest/[date]/page_client-reference-manifest.js +3 -0
  97. package/app/apps/web/.next/server/app/digest/page/app-paths-manifest.json +3 -0
  98. package/app/apps/web/.next/server/app/digest/page/build-manifest.json +17 -0
  99. package/app/apps/web/.next/server/app/digest/page/next-font-manifest.json +6 -0
  100. package/app/apps/web/.next/server/app/digest/page/react-loadable-manifest.json +1 -0
  101. package/app/apps/web/.next/server/app/digest/page/server-reference-manifest.json +4 -0
  102. package/app/apps/web/.next/server/app/digest/page.js +17 -0
  103. package/app/apps/web/.next/server/app/digest/page.js.map +5 -0
  104. package/app/apps/web/.next/server/app/digest/page.js.nft.json +1 -0
  105. package/app/apps/web/.next/server/app/digest/page_client-reference-manifest.js +3 -0
  106. package/app/apps/web/.next/server/app/insights/[key]/page/build-manifest.json +4 -4
  107. package/app/apps/web/.next/server/app/insights/[key]/page.js +7 -5
  108. package/app/apps/web/.next/server/app/insights/[key]/page.js.nft.json +1 -1
  109. package/app/apps/web/.next/server/app/insights/[key]/page_client-reference-manifest.js +1 -1
  110. package/app/apps/web/.next/server/app/insights/page/build-manifest.json +4 -4
  111. package/app/apps/web/.next/server/app/insights/page.js +7 -5
  112. package/app/apps/web/.next/server/app/insights/page.js.nft.json +1 -1
  113. package/app/apps/web/.next/server/app/insights/page_client-reference-manifest.js +1 -1
  114. package/app/apps/web/.next/server/app/page/build-manifest.json +4 -4
  115. package/app/apps/web/.next/server/app/page.js +7 -6
  116. package/app/apps/web/.next/server/app/page.js.nft.json +1 -1
  117. package/app/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  118. package/app/apps/web/.next/server/app/parallelism/page/build-manifest.json +4 -4
  119. package/app/apps/web/.next/server/app/parallelism/page.js +6 -5
  120. package/app/apps/web/.next/server/app/parallelism/page.js.nft.json +1 -1
  121. package/app/apps/web/.next/server/app/parallelism/page_client-reference-manifest.js +1 -1
  122. package/app/apps/web/.next/server/app/projects/[slug]/page/build-manifest.json +4 -4
  123. package/app/apps/web/.next/server/app/projects/[slug]/page.js +6 -5
  124. package/app/apps/web/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  125. package/app/apps/web/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  126. package/app/apps/web/.next/server/app/projects/page/build-manifest.json +4 -4
  127. package/app/apps/web/.next/server/app/projects/page.js +5 -4
  128. package/app/apps/web/.next/server/app/projects/page.js.nft.json +1 -1
  129. package/app/apps/web/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  130. package/app/apps/web/.next/server/app/runs/page/app-paths-manifest.json +3 -0
  131. package/app/apps/web/.next/server/app/runs/page/build-manifest.json +17 -0
  132. package/app/apps/web/.next/server/app/runs/page/next-font-manifest.json +6 -0
  133. package/app/apps/web/.next/server/app/runs/page/react-loadable-manifest.json +1 -0
  134. package/app/apps/web/.next/server/app/runs/page/server-reference-manifest.json +4 -0
  135. package/app/apps/web/.next/server/app/runs/page.js +17 -0
  136. package/app/apps/web/.next/server/app/runs/page.js.map +5 -0
  137. package/app/apps/web/.next/server/app/runs/page.js.nft.json +1 -0
  138. package/app/apps/web/.next/server/app/runs/page_client-reference-manifest.js +3 -0
  139. package/app/apps/web/.next/server/app/sessions/[id]/page/build-manifest.json +4 -4
  140. package/app/apps/web/.next/server/app/sessions/[id]/page.js +5 -4
  141. package/app/apps/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  142. package/app/apps/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  143. package/app/apps/web/.next/server/app/sessions/page/build-manifest.json +4 -4
  144. package/app/apps/web/.next/server/app/sessions/page.js +5 -4
  145. package/app/apps/web/.next/server/app/sessions/page.js.nft.json +1 -1
  146. package/app/apps/web/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  147. package/app/apps/web/.next/server/app/settings/page/app-paths-manifest.json +3 -0
  148. package/app/apps/web/.next/server/app/settings/page/build-manifest.json +17 -0
  149. package/app/apps/web/.next/server/app/settings/page/next-font-manifest.json +6 -0
  150. package/app/apps/web/.next/server/app/settings/page/react-loadable-manifest.json +1 -0
  151. package/app/apps/web/.next/server/app/settings/page/server-reference-manifest.json +4 -0
  152. package/app/apps/web/.next/server/app/settings/page.js +18 -0
  153. package/app/apps/web/.next/server/app/settings/page.js.map +5 -0
  154. package/app/apps/web/.next/server/app/settings/page.js.nft.json +1 -0
  155. package/app/apps/web/.next/server/app/settings/page_client-reference-manifest.js +3 -0
  156. package/app/apps/web/.next/server/app/usage/page/build-manifest.json +4 -4
  157. package/app/apps/web/.next/server/app/usage/page.js +6 -5
  158. package/app/apps/web/.next/server/app/usage/page.js.nft.json +1 -1
  159. package/app/apps/web/.next/server/app/usage/page_client-reference-manifest.js +1 -1
  160. package/app/apps/web/.next/server/app-paths-manifest.json +16 -7
  161. package/app/apps/web/.next/server/chunks/02dz_web__next-internal_server_app_api_digest_week_[startDate]_route_actions_0klqqsh.js +3 -0
  162. package/app/apps/web/.next/server/chunks/09og__next-internal_server_app_api_digest_month_[yearMonth]_route_actions_0i4ielu.js +3 -0
  163. package/app/apps/web/.next/server/chunks/[externals]__0o43ejh._.js +3 -0
  164. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0-vgrh1._.js +3 -0
  165. package/app/apps/web/.next/server/chunks/[root-of-the-server]__00n3f9y._.js +3 -0
  166. package/app/apps/web/.next/server/chunks/[root-of-the-server]__02zukjw._.js +3 -0
  167. package/app/apps/web/.next/server/chunks/[root-of-the-server]__067~im1._.js +6 -0
  168. package/app/apps/web/.next/server/chunks/[root-of-the-server]__06b4cj-._.js +3 -0
  169. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0_8zh-i._.js +9 -0
  170. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0e8n_x4._.js +3 -0
  171. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0ej_p3s._.js +9 -0
  172. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0jprdks._.js +9 -0
  173. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_digest_day_[date]_route_actions_09sxie5.js +3 -0
  174. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_digest_month-index_route_actions_0wldpbu.js +3 -0
  175. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_digest_week-index_route_actions_12c2wj2.js +3 -0
  176. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_jobs_route_actions_08kx~8-.js +3 -0
  177. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_runs_[runId]_route_actions_0dfcghc.js +3 -0
  178. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_runs_[runId]_stream_route_actions_0.8e8-k.js +3 -0
  179. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_runs_route_actions_0xyx82f.js +3 -0
  180. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_settings_route_actions_0.xv7sx.js +3 -0
  181. package/app/apps/web/.next/server/chunks/node_modules_next_036my~r._.js +49 -0
  182. package/app/apps/web/.next/server/chunks/packages_0e7q9u_._.js +3 -0
  183. package/app/apps/web/.next/server/chunks/packages_0n6p2ot._.js +3 -0
  184. package/app/apps/web/.next/server/chunks/packages_entries_dist_node_0bckr7-.js +379 -0
  185. package/app/apps/web/.next/server/chunks/packages_parser_dist_fs_0bc7ptm.js +1 -1
  186. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0-1_njm._.js +3 -0
  187. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0-94ji~._.js +3 -0
  188. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__13xpdx0._.js → [root-of-the-server]__03uoeiw._.js} +2 -2
  189. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0_6.inc._.js +1 -1
  190. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0d~2~le._.js +8 -0
  191. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0gio_ck._.js +1 -1
  192. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__08.d5ia._.js → [root-of-the-server]__0jdyefm._.js} +10 -10
  193. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0ln9jsw._.js +3 -0
  194. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0z45d0g._.js → [root-of-the-server]__0lz4a~g._.js} +2 -48
  195. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0o1_g.~._.js +3 -0
  196. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0r4tks8._.js +3 -0
  197. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0rvzdnx._.js +3 -0
  198. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0euu8sa._.js → [root-of-the-server]__0u39afl._.js} +2 -2
  199. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0u5d7de._.js +12 -0
  200. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0w52fbc._.js +3 -3
  201. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0wwa6gh._.js +3 -0
  202. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0xy1qim._.js +3 -0
  203. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0~_8vff._.js +3 -0
  204. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__10srpu0._.js +3 -0
  205. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__11v.eqw._.js +1 -1
  206. package/app/apps/web/.next/server/chunks/ssr/_02s1n-x._.js +8 -0
  207. package/app/apps/web/.next/server/chunks/ssr/_0fjbf--._.js +3 -0
  208. package/app/apps/web/.next/server/chunks/ssr/_0jw2sm7._.js +3 -0
  209. package/app/apps/web/.next/server/chunks/ssr/_0wj750k._.js +3 -0
  210. package/app/apps/web/.next/server/chunks/ssr/_0woap-3._.js +1 -1
  211. package/app/apps/web/.next/server/chunks/ssr/{_0xies90._.js → _0xu2pvc._.js} +2 -2
  212. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_day_[date]_page_actions_0u2kxb..js +3 -0
  213. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_day_page_actions_1042maj.js +3 -0
  214. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_digest_[date]_page_actions_0olu967.js +3 -0
  215. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_digest_page_actions_0bl.eil.js +3 -0
  216. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_runs_page_actions_0485qy7.js +3 -0
  217. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_settings_page_actions_0f6epye.js +3 -0
  218. package/app/apps/web/.next/server/chunks/ssr/apps_web_app_day_[date]_day-view_tsx_0wjoe1u._.js +3 -0
  219. package/app/apps/web/.next/server/chunks/ssr/apps_web_app_settings_ai-features-form_tsx_01p699p._.js +3 -0
  220. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0b-4-4j._.js +1 -1
  221. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0ly1xes._.js +6 -0
  222. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0txtsv5._.js +16 -0
  223. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0xs658s._.js +10 -0
  224. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_runs-live-board_tsx_0r6dkdq._.js +3 -0
  225. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_usage-charts-dashboard_tsx_0bgr_uv._.js +1 -1
  226. package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_usage-data_ts_0xtv99n._.js +3 -0
  227. package/app/apps/web/.next/server/chunks/ssr/node_modules_0i2xw~e._.js +3 -0
  228. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_0e1izl_._.js +1 -1
  229. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0d3d4wn.js +4 -0
  230. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0edz1ko.js +4 -0
  231. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0eq.n-n.js +4 -0
  232. package/app/apps/web/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0vz7_px.js → node_modules_next_dist_esm_build_templates_app-page_0hcvt-s.js} +3 -3
  233. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0nd5zu0.js +4 -0
  234. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11j1qy0.js +4 -0
  235. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_12n1lw_.js +1 -1
  236. package/app/apps/web/.next/server/chunks/ssr/packages_entries_dist_node_0_271yr.js +3 -0
  237. package/app/apps/web/.next/server/chunks/ssr/packages_parser_dist_0-jvt~a._.js +1 -1
  238. package/app/apps/web/.next/server/functions-config-manifest.json +11 -6
  239. package/app/apps/web/.next/server/middleware-build-manifest.js +7 -7
  240. package/app/apps/web/.next/server/pages/500.html +1 -1
  241. package/app/apps/web/.next/server/server-reference-manifest.js +1 -1
  242. package/app/apps/web/.next/server/server-reference-manifest.json +1 -1
  243. package/app/apps/web/.next/static/chunks/0-yc2_pjxwwuq.js +1 -0
  244. package/app/apps/web/.next/static/chunks/0257pdz1-imal.js +2 -0
  245. package/app/apps/web/.next/static/chunks/05m.oz3kmf1p7.js +1 -0
  246. package/app/apps/web/.next/static/chunks/{0pqt~8bl3ukh4.js → 073081qv4uyn8.js} +1 -1
  247. package/app/apps/web/.next/static/chunks/{0018dy-m-kusj.js → 07lbm-sdh9c2j.js} +1 -1
  248. package/app/apps/web/.next/static/chunks/0858bgw2i4vob.js +1 -0
  249. package/app/apps/web/.next/static/chunks/0_7303jr0sf0w.js +10 -0
  250. package/app/apps/web/.next/static/chunks/0byz8fqw.exef.js +1 -0
  251. package/app/apps/web/.next/static/chunks/0coa1800xqgfj.js +1 -0
  252. package/app/apps/web/.next/static/chunks/0fs3gxea5h0s3.css +1 -0
  253. package/app/apps/web/.next/static/chunks/0k1psab.bybh9.js +14 -0
  254. package/app/apps/web/.next/static/chunks/0k9pksi_i.odf.js +1 -0
  255. package/app/apps/web/.next/static/chunks/0m62vx92~0_0d.js +1 -0
  256. package/app/apps/web/.next/static/chunks/0mc8aa8z.0-5l.js +8 -0
  257. package/app/apps/web/.next/static/chunks/0mykrrv810ra-.js +31 -0
  258. package/app/apps/web/.next/static/chunks/0o9ayt8sknubd.js +1 -0
  259. package/app/apps/web/.next/static/chunks/0osdgl2.9cl1q.js +6 -0
  260. package/app/apps/web/.next/static/chunks/0xfu09fn_358k.js +4 -0
  261. package/app/apps/web/.next/static/chunks/171za22fv684..js +6 -0
  262. package/app/apps/web/.next/static/chunks/17u2ww8ya5dv1.js +6 -0
  263. package/app/apps/web/.next/static/chunks/{turbopack-169w-1._23ra_.js → turbopack-0_p36yduv.waj.js} +1 -1
  264. package/app/apps/web/app/api/digest/day/[date]/route.ts +152 -0
  265. package/app/apps/web/app/api/digest/month/[yearMonth]/route.ts +147 -0
  266. package/app/apps/web/app/api/digest/month-index/route.ts +103 -0
  267. package/app/apps/web/app/api/digest/week/[startDate]/route.ts +149 -0
  268. package/app/apps/web/app/api/{insights/weeks-index → digest/week-index}/route.ts +45 -33
  269. package/app/apps/web/app/api/jobs/route.ts +8 -0
  270. package/app/apps/web/app/api/runs/[runId]/route.ts +64 -0
  271. package/app/apps/web/app/api/runs/[runId]/stream/route.ts +154 -0
  272. package/app/apps/web/app/api/runs/route.ts +266 -0
  273. package/app/apps/web/app/api/settings/route.ts +35 -0
  274. package/app/apps/web/app/day/[date]/day-view.tsx +193 -0
  275. package/app/apps/web/app/day/[date]/page.tsx +175 -0
  276. package/app/apps/web/app/day/page.tsx +8 -0
  277. package/app/apps/web/app/digest/[date]/page.tsx +15 -0
  278. package/app/apps/web/app/digest/page.tsx +7 -0
  279. package/app/apps/web/app/insights/[key]/page.tsx +106 -48
  280. package/app/apps/web/app/insights/page.tsx +133 -3
  281. package/app/apps/web/app/layout.tsx +23 -3
  282. package/app/apps/web/app/page.tsx +33 -4
  283. package/app/apps/web/app/parallelism/gantt-chart.tsx +67 -1
  284. package/app/apps/web/app/parallelism/page.tsx +8 -278
  285. package/app/apps/web/app/projects/[slug]/page.tsx +153 -0
  286. package/app/apps/web/app/projects/page.tsx +49 -4
  287. package/app/apps/web/app/projects/projects-view.tsx +79 -68
  288. package/app/apps/web/app/runs/page.tsx +21 -0
  289. package/app/apps/web/app/sessions/[id]/page.tsx +12 -1
  290. package/app/apps/web/app/sessions/[id]/session-view.tsx +569 -21
  291. package/app/apps/web/app/sessions/page.tsx +19 -3
  292. package/app/apps/web/app/sessions/sessions-grid.tsx +172 -131
  293. package/app/apps/web/app/settings/ai-features-form.tsx +45 -0
  294. package/app/apps/web/app/settings/page.tsx +20 -0
  295. package/app/apps/web/app/usage/page.tsx +45 -3
  296. package/app/apps/web/components/auto-generate-yesterday.tsx +96 -0
  297. package/app/apps/web/components/backfill-drawer.tsx +309 -0
  298. package/app/apps/web/components/dashboard-view.tsx +4 -2
  299. package/app/apps/web/components/date-nav.tsx +385 -0
  300. package/app/apps/web/components/day-digest-view.tsx +180 -0
  301. package/app/apps/web/components/day-digest.tsx +489 -0
  302. package/app/apps/web/components/flag-chip.tsx +54 -0
  303. package/app/apps/web/components/goal-bar.tsx +63 -0
  304. package/app/apps/web/components/heatmap.tsx +78 -1
  305. package/app/apps/web/components/helpfulness-sparkline.tsx +82 -0
  306. package/app/apps/web/components/insights-history.tsx +211 -0
  307. package/app/apps/web/components/insights-top-bar.tsx +216 -0
  308. package/app/apps/web/components/job-queue-widget.tsx +274 -0
  309. package/app/apps/web/components/live-sessions-widget.tsx +38 -3
  310. package/app/apps/web/components/month-digest-view.tsx +138 -0
  311. package/app/apps/web/components/month-digest.tsx +216 -0
  312. package/app/apps/web/components/outcome-mix-row.tsx +37 -0
  313. package/app/apps/web/components/outcome-pill.tsx +101 -0
  314. package/app/apps/web/components/previous-cycles-trend.tsx +155 -0
  315. package/app/apps/web/components/recent-days-panel.tsx +83 -0
  316. package/app/apps/web/components/runs-live-board.tsx +513 -0
  317. package/app/apps/web/components/sidebar.tsx +38 -4
  318. package/app/apps/web/components/usage-chart-range.tsx +58 -6
  319. package/app/apps/web/components/usage-chart.tsx +94 -7
  320. package/app/apps/web/components/usage-charts-dashboard.tsx +20 -1
  321. package/app/apps/web/components/week-digest-view.tsx +226 -0
  322. package/app/apps/web/components/week-digest.tsx +2128 -0
  323. package/app/apps/web/components/yesterday-hero.tsx +110 -0
  324. package/app/apps/web/lib/auto-week-fire.ts +37 -0
  325. package/app/apps/web/lib/calibration-data.ts +171 -0
  326. package/app/apps/web/lib/entries-index.ts +174 -0
  327. package/app/apps/web/lib/entries.ts +72 -0
  328. package/app/apps/web/lib/inflight-coalesce.test.ts +43 -0
  329. package/app/apps/web/lib/inflight-coalesce.ts +19 -0
  330. package/app/apps/web/lib/jobs.ts +170 -0
  331. package/app/apps/web/lib/usage-data.ts +37 -0
  332. package/app/apps/web/lib/validate-settings.test.ts +25 -0
  333. package/app/apps/web/lib/validate-settings.ts +9 -0
  334. package/app/apps/web/next.config.ts +1 -1
  335. package/app/apps/web/package.json +4 -2
  336. package/app/apps/web/server.js +1 -1
  337. package/app/apps/web/tsconfig.tsbuildinfo +1 -1
  338. package/app/apps/web/vitest.config.ts +9 -0
  339. package/dist/daemon-worker.js +1758 -713
  340. package/dist/index.js +11308 -1888
  341. package/package.json +4 -1
  342. package/app/apps/web/.next/server/app/api/insights/months-index/route/app-paths-manifest.json +0 -3
  343. package/app/apps/web/.next/server/app/api/insights/months-index/route.js +0 -7
  344. package/app/apps/web/.next/server/app/api/insights/months-index/route_client-reference-manifest.js +0 -3
  345. package/app/apps/web/.next/server/app/api/insights/pdf/[key]/route/app-paths-manifest.json +0 -3
  346. package/app/apps/web/.next/server/app/api/insights/pdf/[key]/route.js +0 -6
  347. package/app/apps/web/.next/server/app/api/insights/route/app-paths-manifest.json +0 -3
  348. package/app/apps/web/.next/server/app/api/insights/route.js +0 -8
  349. package/app/apps/web/.next/server/app/api/insights/saved/[key]/route/app-paths-manifest.json +0 -3
  350. package/app/apps/web/.next/server/app/api/insights/saved/[key]/route.js +0 -6
  351. package/app/apps/web/.next/server/app/api/insights/saved/[key]/route_client-reference-manifest.js +0 -3
  352. package/app/apps/web/.next/server/app/api/insights/saved/route/app-paths-manifest.json +0 -3
  353. package/app/apps/web/.next/server/app/api/insights/saved/route.js +0 -6
  354. package/app/apps/web/.next/server/app/api/insights/saved/route_client-reference-manifest.js +0 -3
  355. package/app/apps/web/.next/server/app/api/insights/weeks-index/route/app-paths-manifest.json +0 -3
  356. package/app/apps/web/.next/server/app/api/insights/weeks-index/route.js +0 -7
  357. package/app/apps/web/.next/server/app/api/insights/weeks-index/route_client-reference-manifest.js +0 -3
  358. package/app/apps/web/.next/server/app/insights/print/[key]/page/app-paths-manifest.json +0 -3
  359. package/app/apps/web/.next/server/app/insights/print/[key]/page.js.nft.json +0 -1
  360. package/app/apps/web/.next/server/app/insights/print/[key]/page_client-reference-manifest.js +0 -3
  361. package/app/apps/web/.next/server/chunks/02dz_web__next-internal_server_app_api_insights_months-index_route_actions_0~h~zci.js +0 -3
  362. package/app/apps/web/.next/server/chunks/02dz_web__next-internal_server_app_api_insights_saved_[key]_route_actions_0a5j9yw.js +0 -3
  363. package/app/apps/web/.next/server/chunks/02dz_web__next-internal_server_app_api_insights_weeks-index_route_actions_0hh-1c7.js +0 -3
  364. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0.hmj0z._.js +0 -3
  365. package/app/apps/web/.next/server/chunks/[root-of-the-server]__01h_g-p._.js +0 -3
  366. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0nh-z10._.js +0 -3
  367. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0ri7q~r._.js +0 -3
  368. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0rr1~~x._.js +0 -3
  369. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0s0gv.0._.js +0 -3
  370. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_insights_pdf_[key]_route_actions_0lu-lnx.js +0 -3
  371. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_insights_route_actions_0h8l5lz.js +0 -3
  372. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_insights_saved_route_actions_13rlblw.js +0 -3
  373. package/app/apps/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_00t2xj6.js +0 -68
  374. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0.tsxpj._.js +0 -3
  375. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__00z7zlm._.js +0 -3
  376. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__08pen0k._.js +0 -3
  377. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0b323~k._.js +0 -8
  378. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0gx-4qa._.js +0 -3
  379. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0wv27wt._.js +0 -3
  380. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__13itnvx._.js +0 -3
  381. package/app/apps/web/.next/server/chunks/ssr/_09n75_5._.js +0 -8
  382. package/app/apps/web/.next/server/chunks/ssr/_0r~__0v._.js +0 -12
  383. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_insights_print_[key]_page_actions_0a853fw.js +0 -3
  384. package/app/apps/web/.next/server/chunks/ssr/apps_web_app_parallelism_08vub.0._.js +0 -3
  385. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_06j3c.0._.js +0 -8
  386. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0bbo_pd._.js +0 -8
  387. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_insight-report_tsx_13q2a-c._.js +0 -12
  388. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_insights-view_tsx_11730ta._.js +0 -6
  389. package/app/apps/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_0nqz8dw._.js +0 -3
  390. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_0t-hj0x._.js +0 -3
  391. package/app/apps/web/.next/server/chunks/ssr/packages_parser_dist_analytics_0k4dgst.js +0 -3
  392. package/app/apps/web/.next/static/chunks/028_pmk40b69_.js +0 -6
  393. package/app/apps/web/.next/static/chunks/03.mv4y4.w-vb.js +0 -6
  394. package/app/apps/web/.next/static/chunks/03_7xtpi9sv4g.js +0 -4
  395. package/app/apps/web/.next/static/chunks/03g5dw5eskotd.js +0 -6
  396. package/app/apps/web/.next/static/chunks/063oimt30jeo9.js +0 -10
  397. package/app/apps/web/.next/static/chunks/08c1pcrocqq5s.js +0 -6
  398. package/app/apps/web/.next/static/chunks/0e-wrhqh4h3r5.js +0 -2
  399. package/app/apps/web/.next/static/chunks/0fc6dk2qtokwh.js +0 -1
  400. package/app/apps/web/.next/static/chunks/0i7er7_bfab36.js +0 -10
  401. package/app/apps/web/.next/static/chunks/0ipytyi01h0ta.js +0 -1
  402. package/app/apps/web/.next/static/chunks/0lsznd4_avzhv.js +0 -6
  403. package/app/apps/web/.next/static/chunks/0lty3v_i9mde7.js +0 -1
  404. package/app/apps/web/.next/static/chunks/0vekjjj4pidlz.css +0 -1
  405. package/app/apps/web/.next/static/chunks/137uw2-qbro07.js +0 -31
  406. package/app/apps/web/app/api/insights/months-index/route.ts +0 -80
  407. package/app/apps/web/app/api/insights/pdf/[key]/route.ts +0 -45
  408. package/app/apps/web/app/api/insights/route.ts +0 -508
  409. package/app/apps/web/app/api/insights/saved/[key]/route.ts +0 -11
  410. package/app/apps/web/app/api/insights/saved/route.ts +0 -9
  411. package/app/apps/web/app/insights/print/[key]/page.tsx +0 -73
  412. package/app/apps/web/components/insight-report.tsx +0 -1031
  413. package/app/apps/web/components/insights-view.tsx +0 -647
  414. package/app/apps/web/lib/ai/insights-prompt.ts +0 -71
  415. package/app/apps/web/lib/ai/saved-reports.ts +0 -83
  416. /package/app/apps/web/.next/server/app/api/{insights/months-index → digest/day/[date]}/route/build-manifest.json +0 -0
  417. /package/app/apps/web/.next/server/app/api/{insights/months-index → digest/day/[date]}/route/server-reference-manifest.json +0 -0
  418. /package/app/apps/web/.next/server/app/api/{insights/months-index → digest/day/[date]}/route.js.map +0 -0
  419. /package/app/apps/web/.next/server/app/api/{insights → digest/month/[yearMonth]}/route/build-manifest.json +0 -0
  420. /package/app/apps/web/.next/server/app/api/{insights → digest/month/[yearMonth]}/route/server-reference-manifest.json +0 -0
  421. /package/app/apps/web/.next/server/app/api/{insights → digest/month/[yearMonth]}/route.js.map +0 -0
  422. /package/app/apps/web/.next/server/app/api/{insights/pdf/[key] → digest/month-index}/route/build-manifest.json +0 -0
  423. /package/app/apps/web/.next/server/app/api/{insights/pdf/[key] → digest/month-index}/route/server-reference-manifest.json +0 -0
  424. /package/app/apps/web/.next/server/app/api/{insights/pdf/[key] → digest/month-index}/route.js.map +0 -0
  425. /package/app/apps/web/.next/server/app/api/{insights/saved → digest/week/[startDate]}/route/build-manifest.json +0 -0
  426. /package/app/apps/web/.next/server/app/api/{insights/saved → digest/week/[startDate]}/route/server-reference-manifest.json +0 -0
  427. /package/app/apps/web/.next/server/app/api/{insights/saved → digest/week/[startDate]}/route.js.map +0 -0
  428. /package/app/apps/web/.next/server/app/api/{insights/saved/[key] → digest/week-index}/route/build-manifest.json +0 -0
  429. /package/app/apps/web/.next/server/app/api/{insights/saved/[key] → digest/week-index}/route/server-reference-manifest.json +0 -0
  430. /package/app/apps/web/.next/server/app/api/{insights/saved/[key] → digest/week-index}/route.js.map +0 -0
  431. /package/app/apps/web/.next/server/app/api/{insights/weeks-index → jobs}/route/build-manifest.json +0 -0
  432. /package/app/apps/web/.next/server/app/api/{insights/weeks-index → jobs}/route/server-reference-manifest.json +0 -0
  433. /package/app/apps/web/.next/server/app/api/{insights/weeks-index → jobs}/route.js.map +0 -0
  434. /package/app/apps/web/.next/server/app/{insights/print/[key]/page → api/runs/[runId]/route}/server-reference-manifest.json +0 -0
  435. /package/app/apps/web/.next/server/app/{insights/print/[key]/page.js.map → api/runs/[runId]/route.js.map} +0 -0
  436. /package/app/apps/web/.next/server/app/{insights/print/[key] → day/[date]}/page/next-font-manifest.json +0 -0
  437. /package/app/apps/web/.next/server/app/{insights/print/[key] → day/[date]}/page/react-loadable-manifest.json +0 -0
  438. /package/app/apps/web/.next/static/{G_4ofKI9v9ARC_lb9JILZ → 8tTWPvUhtatZEoocIhamh}/_buildManifest.js +0 -0
  439. /package/app/apps/web/.next/static/{G_4ofKI9v9ARC_lb9JILZ → 8tTWPvUhtatZEoocIhamh}/_clientMiddlewareManifest.js +0 -0
  440. /package/app/apps/web/.next/static/{G_4ofKI9v9ARC_lb9JILZ → 8tTWPvUhtatZEoocIhamh}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,63059,e=>{"use strict";let t=(0,e.i(75254).default)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",0,t],63059)},37727,e=>{"use strict";let t=(0,e.i(75254).default)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",0,t],37727)},64659,e=>{"use strict";let t=(0,e.i(75254).default)("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",0,t],64659)},36373,e=>{"use strict";var t=e.i(18050),r=e.i(71645),n=e.i(37727);let a=(0,e.i(75254).default)("Maximize2",[["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["polyline",{points:"9 21 3 21 3 15",key:"1avn1i"}],["line",{x1:"21",x2:"14",y1:"3",y2:"10",key:"ota7mn"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);function i({snapshots:e,seriesKey:n,windowMs:o,colorVar:d,onExpand:c}){let x=(0,r.useMemo)(()=>{let t=e.map(e=>({capturedAt:new Date(e.captured_at).getTime(),window:e[n]})).filter(e=>null!==e.window&&null!==e.window.utilization);if(0===t.length)return null;let r=t[t.length-1],a=r.window.resets_at?new Date(r.window.resets_at).getTime():null;if(!a)return null;let i=a-o,s=Date.now(),l=100-(r.window.utilization??0);return{points:t.filter(e=>e.capturedAt>=i&&e.capturedAt<=a).map(e=>[e.capturedAt,100-(e.window.utilization??0)]),windowStart:i,windowEnd:a,now:s,currentRemaining:l,latest:r}},[e,n,o]),u=1190,f=148,[p,h]=(0,r.useState)(null);if(!x)return(0,t.jsx)("div",{className:"af-card",style:{padding:"14px 18px",textAlign:"center",fontSize:12,color:"var(--af-text-tertiary)"},children:"No data for this window yet."});let{points:y,windowStart:g,windowEnd:v,now:m,currentRemaining:b,latest:w}=x,j=e=>64+(e-g)/(v-g)*u,k=e=>20+f-e/100*f,M=e=>Math.max(0,Math.min(100,100-(e-g)/(v-g)*100)),S=b-M(m),$=S<-10?"var(--af-danger)":S<0?"var(--af-warning)":"var(--af-success)",z=S<-10?"behind schedule":S<0?"slightly behind":"on track",D=y.length>0?y.map(([e,t],r)=>`${0===r?"M":"L"} ${j(e).toFixed(1)} ${k(t).toFixed(1)}`).join(" "):"",W=y.length>0?`${D} L ${j(y[y.length-1][0]).toFixed(1)} ${k(0).toFixed(1)} L ${j(y[0][0]).toFixed(1)} ${k(0).toFixed(1)} Z`:"";return(0,t.jsxs)("div",{className:"af-card",style:{padding:"14px 18px"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:14,flexWrap:"wrap",marginBottom:8},children:[(0,t.jsxs)("div",{style:{fontSize:18,fontWeight:700,letterSpacing:"-0.01em",color:d,fontVariantNumeric:"tabular-nums"},children:[b.toFixed(1),"%",(0,t.jsx)("span",{style:{fontSize:11,fontWeight:500,color:"var(--af-text-tertiary)",marginLeft:4,letterSpacing:0},children:"remaining"})]}),(0,t.jsxs)("div",{style:{fontSize:11,color:$,fontWeight:500},children:[z," (",S>=0?"+":"",S.toFixed(1),"%)"]}),(0,t.jsxs)("div",{suppressHydrationWarning:!0,style:{fontSize:11,color:"var(--af-text-tertiary)",marginLeft:"auto"},children:[function(e){let t=e/36e5;if(t<24)return`${t} hour${1===t?"":"s"}`;let r=t/24;return`${r} day${1===r?"":"s"}`}(o)," · resets"," ",l(new Date(v).toISOString())]}),c&&(0,t.jsx)("button",{type:"button",onClick:c,"aria-label":"Expand chart",title:"Expand",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:24,height:24,borderRadius:5,background:"transparent",border:"1px solid var(--af-border-subtle)",color:"var(--af-text-tertiary)",cursor:"pointer",marginLeft:4},children:(0,t.jsx)(a,{size:12})})]}),(0,t.jsxs)("div",{style:{position:"relative"},children:[(0,t.jsxs)("svg",{viewBox:"0 0 1280 200",style:{width:"100%",aspectRatio:"1280 / 200",display:"block"},onMouseMove:e=>{let t=e.currentTarget.getBoundingClientRect(),r=(e.clientX-t.left)/t.width*1280;if(r<64||r>1254)return void h(null);let n=g+(r-64)/u*(v-g),a=y[0],i=Math.abs(a[0]-n);for(let e of y){let t=Math.abs(e[0]-n);t<i&&(a=e,i=t)}h({x:j(a[0]),t:a[0],actual:a[1],ideal:M(a[0])})},onMouseLeave:()=>h(null),children:[[0,25,50,75,100].map(e=>{let r=k(e);return(0,t.jsxs)("g",{children:[(0,t.jsx)("line",{x1:64,x2:1254,y1:r,y2:r,stroke:"var(--af-border-subtle)",strokeWidth:"1"}),(0,t.jsxs)("text",{x:56,y:r+4,textAnchor:"end",fontSize:"13",fill:"var(--af-text-tertiary)",children:[e,"%"]})]},e)}),(0,t.jsx)("text",{x:14,y:20+f/2,textAnchor:"middle",transform:`rotate(-90, 14, ${20+f/2})`,fontSize:"12",fill:"var(--af-text-tertiary)",children:"Remaining budget (%)"}),(0,t.jsx)("text",{x:64,y:180,textAnchor:"start",fontSize:"12",fill:"var(--af-text-tertiary)",suppressHydrationWarning:!0,children:s(g)}),(0,t.jsx)("text",{x:1254,y:180,textAnchor:"end",fontSize:"12",fill:"var(--af-text-tertiary)",suppressHydrationWarning:!0,children:s(v)}),(0,t.jsx)("rect",{x:64,y:k(10),width:u,height:k(0)-k(10),fill:"var(--af-danger)",fillOpacity:"0.07"}),(0,t.jsx)("rect",{x:64,y:k(30),width:u,height:k(10)-k(30),fill:"var(--af-warning)",fillOpacity:"0.05"}),(0,t.jsx)("path",{d:W,fill:d,fillOpacity:"0.1"}),(0,t.jsx)("line",{x1:j(g),y1:k(100),x2:j(v),y2:k(0),stroke:"var(--af-text-tertiary)",strokeOpacity:"0.5",strokeWidth:"1.5",strokeDasharray:"4 3"}),m>=g&&m<=v&&(0,t.jsxs)("g",{children:[(0,t.jsx)("line",{x1:j(m),y1:20,x2:j(m),y2:20+f,stroke:"var(--af-text-secondary)",strokeOpacity:"0.5",strokeWidth:"1"}),(0,t.jsx)("text",{x:j(m),y:14,textAnchor:"middle",fontSize:"12",fontWeight:"600",fill:"var(--af-text-secondary)",children:"now"})]}),(0,t.jsx)("path",{d:D,fill:"none",stroke:d,strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"}),y.map(([e,r],n)=>(0,t.jsx)("circle",{cx:j(e),cy:k(r),r:"3",fill:d},n)),p&&(0,t.jsxs)("g",{children:[(0,t.jsx)("line",{x1:p.x,y1:20,x2:p.x,y2:20+f,stroke:"var(--af-text-secondary)",strokeOpacity:"0.7",strokeWidth:"1",strokeDasharray:"2 2"}),(0,t.jsx)("circle",{cx:p.x,cy:k(p.actual),r:"5",fill:d,stroke:"var(--af-surface)",strokeWidth:"1.5"})]})]}),p&&(0,t.jsxs)("div",{style:{pointerEvents:"none",position:"absolute",left:`${p.x/1280*100}%`,top:4,transform:"translateX(-50%)",background:"var(--af-surface-elevated)",border:"1px solid var(--af-border-subtle)",borderRadius:8,padding:"8px 12px",fontSize:11,boxShadow:"0 6px 24px rgba(0, 0, 0, 0.24)",whiteSpace:"nowrap",color:"var(--af-text)"},children:[(0,t.jsx)("div",{style:{fontWeight:600},children:new Date(p.t).toLocaleString()}),(0,t.jsxs)("div",{style:{marginTop:4,display:"flex",gap:12},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{style:{color:"var(--af-text-tertiary)"},children:"Actual"})," ",(0,t.jsxs)("span",{style:{fontWeight:600,fontVariantNumeric:"tabular-nums",color:d},children:[p.actual.toFixed(1),"%"]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{style:{color:"var(--af-text-tertiary)"},children:"Ideal"})," ",(0,t.jsxs)("span",{style:{fontWeight:600,fontVariantNumeric:"tabular-nums"},children:[p.ideal.toFixed(1),"%"]})]})]}),(0,t.jsxs)("div",{style:{marginTop:2,color:"var(--af-text-tertiary)"},children:["Δ ",p.actual-p.ideal>=0?"+":"",(p.actual-p.ideal).toFixed(1),"%"]})]})]}),(0,t.jsxs)("div",{style:{marginTop:4,fontSize:9,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",textAlign:"right"},suppressHydrationWarning:!0,children:[y.length," snapshot",1===y.length?"":"s"," · last"," ",l(new Date(w.capturedAt).toISOString())]})]})}function s(e){return new Date(e).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function l(e){let t,r=Math.round((new Date(e).getTime()-Date.now())/1e3),n=Math.abs(r);if(n<60)t=`${n}s`;else if(n<3600)t=`${Math.floor(n/60)}m`;else if(n<86400){let e=Math.floor(n/3600),r=Math.floor(n%3600/60);t=r>0?`${e}h${r}m`:`${e}h`}else{let e=Math.floor(n/86400),r=Math.floor(n%86400/3600);t=r>0?`${e}d${r}h`:`${e}d`}return r<0?`${t} ago`:`in ${t}`}function o({snapshots:e,seriesKey:n,startMs:a,endMs:i,windowMs:s,colorVar:l}){var x,u;let f,p,h,y,g=(0,r.useMemo)(()=>{let t=[];for(let r of e){let e=new Date(r.captured_at).getTime(),a=r[n];a&&null!==a.utilization&&t.push({t:e,u:a.utilization,resetsAt:a.resets_at})}if(0===t.length)return null;let r=new Map;for(let e of t){if(!e.resetsAt)continue;let t=e.resetsAt,n=r.get(t);n||(n=[],r.set(t,n)),n.push(e)}let l=[];for(let[e,t]of r){let r=new Date(e).getTime(),n=r-s;t.sort((e,t)=>e.t-t.t);let a=t.map(e=>({t:e.t,u:e.u,remaining:100-e.u})),i=0;for(let e=1;e<a.length;e++)a[e].u>a[i].u&&(i=e);l.push({resetsAtMs:r,startMs:n,points:a,peak:a[i].u,peakT:a[i].t})}let o=l.filter(e=>e.resetsAtMs>=a&&e.startMs<=i).sort((e,t)=>e.resetsAtMs-t.resetsAtMs);if(0===o.length)return null;let d=o.flatMap(e=>e.points),c=Math.max(...d.map(e=>e.u)),x=o.filter(e=>e.resetsAtMs<=i&&e.resetsAtMs<Date.now()).length,u=o.length>0?o.reduce((e,t)=>e+t.peak,0)/o.length:0;return{cycles:o,allPoints:d,peakOverall:c,avgPeak:u,completeCycles:x}},[e,n,a,i,s]),[v,m]=(0,r.useState)(null);if(!g)return(0,t.jsx)("div",{className:"af-card",style:{padding:"40px 32px",textAlign:"center",fontSize:12,color:"var(--af-text-tertiary)"},children:"No usage data in the selected range."});let{cycles:b,allPoints:w,peakOverall:j,avgPeak:k,completeCycles:M}=g,S=1188,$=252,z=e=>60+(e-a)/(i-a)*S,D=e=>24+$-e/100*$,W=e=>a+(e-60)/S*(i-a),A=e=>{let t=z(e);return t<60?60:t>1248?1248:t};return(0,t.jsxs)("div",{className:"af-card",style:{padding:"14px 18px",display:"flex",flexDirection:"column",gap:10},children:[(0,t.jsx)("div",{suppressHydrationWarning:!0,style:{fontSize:11,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:(x=a,u=i,p=new Date(x).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}),h=new Date(u).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}),f=(y=u-x)<36e5?`${Math.round(y/6e4)}m`:y<864e5?`${(y/36e5).toFixed(1).replace(/\.0$/,"")}h`:`${(y/864e5).toFixed(1).replace(/\.0$/,"")}d`,`${p} → ${h} (${f})`)}),(0,t.jsxs)("div",{style:{display:"flex",gap:28,fontSize:11,color:"var(--af-text-tertiary)",flexWrap:"wrap"},children:[(0,t.jsx)(d,{label:"Peak utilization",value:`${j.toFixed(1)}%`,color:l}),(0,t.jsx)(d,{label:"Avg peak / cycle",value:b.length>0?`${k.toFixed(1)}%`:"—",color:l}),(0,t.jsx)(d,{label:"Complete cycles",value:String(M),color:"var(--af-text)"}),(0,t.jsx)(d,{label:"Data points",value:String(w.length),color:"var(--af-text)"})]}),(0,t.jsxs)("div",{style:{position:"relative"},children:[(0,t.jsxs)("svg",{viewBox:"0 0 1280 320",style:{width:"100%",aspectRatio:"1280 / 320",display:"block"},onMouseMove:e=>{let t=e.currentTarget.getBoundingClientRect(),r=(e.clientX-t.left)/t.width*1280;if(r<60||r>1248)return void m(null);let n=W(r),a=w[0],i=Math.abs(a.t-n);for(let e of w){let t=Math.abs(e.t-n);t<i&&(a=e,i=t)}m({x:z(a.t),t:a.t,u:a.u,remaining:a.remaining})},onMouseLeave:()=>m(null),children:[[0,25,50,75,100].map(e=>{let r=D(e);return(0,t.jsxs)("g",{children:[(0,t.jsx)("line",{x1:60,x2:1248,y1:r,y2:r,stroke:"var(--af-border-subtle)",strokeWidth:"1"}),(0,t.jsxs)("text",{x:50,y:r+4,textAnchor:"end",fontSize:"12",fill:"var(--af-text-tertiary)",children:[e,"%"]})]},e)}),(0,t.jsx)("text",{x:16,y:24+$/2,textAnchor:"middle",transform:`rotate(-90, 16, ${24+$/2})`,fontSize:"12",fill:"var(--af-text-tertiary)",children:"Remaining budget (%)"}),(0,t.jsx)("rect",{x:60,y:D(10),width:S,height:D(0)-D(10),fill:"var(--af-danger)",fillOpacity:"0.07"}),(0,t.jsx)("rect",{x:60,y:D(30),width:S,height:D(10)-D(30),fill:"var(--af-warning)",fillOpacity:"0.05"}),b.map((e,r)=>{let n=A(e.startMs),o=A(e.resetsAtMs),d=D(100-100*(W(n)-e.startMs)/s),c=D(100-100*(W(o)-e.startMs)/s),x=e.points.filter(e=>e.t>=a&&e.t<=i),u=function(e,t,r){if(0===e.length)return"";let n=[],a=!1;for(let i=0;i<e.length;i++){let s=e[i],l=i>0?e[i-1]:null,o=!!l&&s.t-l.t>9e5,d=!a||o?"M":"L";n.push(`${d} ${t(s.t).toFixed(1)} ${r(s.remaining).toFixed(1)}`),a=!0}return n.join(" ")}(x,z,D),f=e.resetsAtMs>=a&&e.resetsAtMs<=i&&e.resetsAtMs<=Date.now();return(0,t.jsxs)("g",{children:[(0,t.jsx)("line",{x1:n,y1:d,x2:o,y2:c,stroke:"var(--af-text-tertiary)",strokeOpacity:"0.35",strokeWidth:"1",strokeDasharray:"3 3"}),u&&(0,t.jsx)("path",{d:u,fill:"none",stroke:l,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),x.map((e,n)=>(0,t.jsx)("circle",{cx:z(e.t),cy:D(e.remaining),r:"1.8",fill:l,fillOpacity:"0.9"},`${r}-${n}`)),e.peakT>=a&&e.peakT<=i&&(0,t.jsx)("circle",{cx:z(e.peakT),cy:D(100-e.peak),r:"3",fill:l,stroke:"var(--background)",strokeWidth:"1.5"}),f&&(0,t.jsx)("line",{x1:z(e.resetsAtMs),y1:24,x2:z(e.resetsAtMs),y2:24+$,stroke:"var(--af-text-tertiary)",strokeOpacity:"0.25",strokeWidth:"1",strokeDasharray:"1 3"})]},`cycle-${r}`)}),Date.now()>=a&&Date.now()<=i&&(0,t.jsx)("line",{x1:z(Date.now()),y1:24,x2:z(Date.now()),y2:24+$,stroke:"var(--af-text-secondary)",strokeOpacity:"0.5",strokeWidth:"1"}),v&&(0,t.jsxs)("g",{children:[(0,t.jsx)("line",{x1:v.x,y1:24,x2:v.x,y2:24+$,stroke:"var(--af-text-secondary)",strokeOpacity:"0.6",strokeWidth:"1",strokeDasharray:"2 2"}),(0,t.jsx)("circle",{cx:v.x,cy:D(v.remaining),r:"5",fill:l,stroke:"var(--background)",strokeWidth:"2"})]}),(0,t.jsx)("text",{x:60,y:300,textAnchor:"start",fontSize:"11",fill:"var(--af-text-tertiary)",suppressHydrationWarning:!0,children:c(a,i-a)}),(0,t.jsx)("text",{x:1248,y:300,textAnchor:"end",fontSize:"11",fill:"var(--af-text-tertiary)",suppressHydrationWarning:!0,children:c(i,i-a)}),(0,t.jsxs)("text",{x:60+S/2,y:314,textAnchor:"middle",fontSize:"11",fill:"var(--af-text-tertiary)",children:["Time · ",b.length," cycle",1===b.length?"":"s"," in view"]})]}),v&&(0,t.jsxs)("div",{suppressHydrationWarning:!0,style:{pointerEvents:"none",position:"absolute",left:`${v.x/1280*100}%`,top:6,transform:"translateX(-50%)",background:"var(--af-surface-elevated)",border:"1px solid var(--af-border-subtle)",borderRadius:8,padding:"8px 12px",fontSize:11,boxShadow:"0 6px 24px rgba(0, 0, 0, 0.24)",whiteSpace:"nowrap",color:"var(--af-text)"},children:[(0,t.jsx)("div",{style:{fontWeight:600},children:new Date(v.t).toLocaleString()}),(0,t.jsxs)("div",{style:{marginTop:2,display:"flex",gap:10},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{style:{color:"var(--af-text-tertiary)"},children:"Remaining"})," ",(0,t.jsxs)("span",{style:{fontWeight:600,fontVariantNumeric:"tabular-nums",color:l},children:[v.remaining.toFixed(1),"%"]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{style:{color:"var(--af-text-tertiary)"},children:"Used"})," ",(0,t.jsxs)("span",{style:{fontWeight:600,fontVariantNumeric:"tabular-nums"},children:[v.u.toFixed(1),"%"]})]})]})]})]})]})}function d({label:e,value:r,color:n}){return(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[(0,t.jsx)("span",{style:{fontSize:9,textTransform:"uppercase",letterSpacing:"0.06em",color:"var(--af-text-tertiary)",fontWeight:600},children:e}),(0,t.jsx)("span",{style:{fontSize:18,fontWeight:700,letterSpacing:"-0.01em",color:n,fontVariantNumeric:"tabular-nums"},children:r})]})}function c(e,t){let r=new Date(e);return t<=12096e5?r.toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):r.toLocaleDateString(void 0,{month:"short",day:"numeric"})}var x=e.i(64659),u=e.i(63059),f=e.i(86619);function p({storageKey:e,label:r,children:n}){let[a,i,s]=(0,f.usePersistentBoolean)(e,!1);return(0,t.jsxs)("div",{children:[(0,t.jsxs)("button",{type:"button",onClick:()=>i(!a),style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 10px",marginBottom:12*!!a,background:"transparent",border:"1px solid var(--af-border-subtle)",borderRadius:6,fontSize:11,fontWeight:600,color:"var(--af-text-secondary)",textTransform:"uppercase",letterSpacing:"0.04em",cursor:"pointer",transition:"background 0.12s, border-color 0.12s"},children:[a?(0,t.jsx)(x.ChevronDown,{size:12}):(0,t.jsx)(u.ChevronRight,{size:12}),a?`Hide ${r}`:`Show ${r}`]}),s&&a&&n]})}let h=[{key:"current",label:"Current cycle"},{key:"24h",label:"24H"},{key:"7d",label:"7D"},{key:"30d",label:"30D"},{key:"90d",label:"90D"},{key:"custom",label:"Custom"}];function y({value:e,onChange:n,windowType:a="short"}){let i="long"===a?h.filter(e=>"24h"!==e.key):h,[s,l]=(0,r.useState)(()=>v(e.startMs??Date.now()-6048e5)),[o,d]=(0,r.useState)(()=>v(e.endMs??Date.now()));return(0,r.useEffect)(()=>{if("custom"!==e.preset)return;let t=m(s),r=m(o);Number.isNaN(t)||Number.isNaN(r)||t>=r||(t!==e.startMs||r!==e.endMs)&&n({preset:"custom",startMs:t,endMs:r})},[s,o,e.preset]),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,t.jsx)("div",{style:{display:"inline-flex",borderRadius:6,border:"1px solid var(--af-border-subtle)",overflow:"hidden"},children:i.map((r,a)=>(0,t.jsx)("button",{type:"button",onClick:()=>{var e;"custom"===(e=r.key)?n({preset:e,startMs:m(s),endMs:m(o)}):n({preset:e})},style:{padding:"6px 12px",fontSize:11,fontWeight:500,background:e.preset===r.key?"var(--af-accent-subtle)":"transparent",color:e.preset===r.key?"var(--af-accent)":"var(--af-text-secondary)",border:"none",borderRight:a<i.length-1?"1px solid var(--af-border-subtle)":"none",cursor:"pointer",letterSpacing:"0.02em"},children:r.label},r.key))}),"custom"===e.preset&&(0,t.jsxs)("div",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[(0,t.jsx)("input",{type:"datetime-local",value:s,onChange:e=>l(e.target.value),style:g}),(0,t.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)"},children:"→"}),(0,t.jsx)("input",{type:"datetime-local",value:o,onChange:e=>d(e.target.value),style:g})]})]})}let g={padding:"5px 8px",fontSize:11,background:"var(--background)",color:"var(--af-text)",border:"1px solid var(--af-border-subtle)",borderRadius:5,fontFamily:"var(--font-mono)"};function v(e){let t=new Date(e),r=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0"),i=String(t.getHours()).padStart(2,"0"),s=String(t.getMinutes()).padStart(2,"0");return`${r}-${n}-${a}T${i}:${s}`}function m(e){return new Date(e).getTime()}let b=[{key:"seven_day",label:"7d utilization",windowMs:6048e5,colorVar:"var(--af-accent)"},{key:"five_hour",label:"5h utilization",windowMs:18e6,colorVar:"var(--af-success)"}],w={key:"seven_day_sonnet",label:"7d utilization (Sonnet)",windowMs:6048e5,colorVar:"var(--af-warning)"};function j({config:e,snapshots:a,onClose:i}){let[s,l]=(0,r.useState)({preset:"current"}),d=(0,r.useMemo)(()=>{for(let t=a.length-1;t>=0;t--){let r=a[t][e.key];if(r&&r.resets_at){let t=new Date(r.resets_at).getTime();return{startMs:t-e.windowMs,endMs:t}}}return null},[a,e.key,e.windowMs]),c=function(e){let t=Date.now();switch(e.preset){case"current":return{};case"24h":return{startMs:t-864e5,endMs:t};case"7d":return{startMs:t-6048e5,endMs:t};case"30d":return{startMs:t-2592e6,endMs:t};case"90d":return{startMs:t-7776e6,endMs:t};case"custom":return{startMs:e.startMs,endMs:e.endMs}}}(s),x="current"===s.preset&&d?d:c;return(0,t.jsx)("div",{onClick:i,style:{position:"fixed",inset:0,background:"rgba(0, 0, 0, 0.55)",backdropFilter:"blur(4px)",zIndex:100,display:"flex",alignItems:"center",justifyContent:"center",padding:32},children:(0,t.jsxs)("div",{onClick:e=>e.stopPropagation(),style:{width:"100%",maxWidth:1600,maxHeight:"calc(100vh - 64px)",background:"var(--background)",border:"1px solid var(--af-border-subtle)",borderRadius:12,boxShadow:"0 24px 64px rgba(0, 0, 0, 0.4)",display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:16,padding:"14px 20px",borderBottom:"1px solid var(--af-border-subtle)",flexWrap:"wrap"},children:[(0,t.jsx)("div",{style:{fontSize:14,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.04em",color:"var(--af-text)"},children:e.label}),(0,t.jsx)(y,{value:s,onChange:l,windowType:e.windowMs>=864e5?"long":"short"}),(0,t.jsx)("button",{type:"button",onClick:i,"aria-label":"Close",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:28,height:28,borderRadius:6,background:"transparent",border:"1px solid var(--af-border-subtle)",color:"var(--af-text-secondary)",cursor:"pointer"},children:(0,t.jsx)(n.X,{size:14})})]}),(0,t.jsx)("div",{style:{padding:20,overflow:"auto",flex:1},children:x.startMs&&x.endMs?(0,t.jsx)(o,{snapshots:a,seriesKey:e.key,startMs:x.startMs,endMs:x.endMs,windowMs:e.windowMs,colorVar:e.colorVar}):(0,t.jsx)("div",{className:"af-card",style:{padding:"40px 32px",textAlign:"center",fontSize:12,color:"var(--af-text-tertiary)"},children:"No data available for this window."})})]})})}function k({children:e}){return(0,t.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--af-text)",textTransform:"uppercase",letterSpacing:"0.04em"},children:e})}e.s(["UsageChartsDashboard",0,function({snapshots:e}){let[n,a]=(0,r.useState)(null);return(0,r.useEffect)(()=>{if(!n)return;let e=e=>{"Escape"===e.key&&a(null)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[n]),(0,r.useEffect)(()=>{if(!n)return;let e=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}},[n]),(0,t.jsxs)(t.Fragment,{children:[b.map(r=>(0,t.jsxs)("section",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,t.jsx)(k,{children:r.label}),(0,t.jsx)(i,{snapshots:e,seriesKey:r.key,windowMs:r.windowMs,colorVar:r.colorVar,onExpand:()=>a(r)})]},r.key)),(0,t.jsx)(p,{storageKey:"cclens:usage:show-sonnet",label:"Sonnet 7d utilization",children:(0,t.jsxs)("section",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,t.jsx)(k,{children:w.label}),(0,t.jsx)(i,{snapshots:e,seriesKey:w.key,windowMs:w.windowMs,colorVar:w.colorVar,onExpand:()=>a(w)})]})}),n&&(0,t.jsx)(j,{config:n,snapshots:e,onClose:()=>a(null)})]})}],36373)}]);
@@ -1,6 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,52535,e=>{"use strict";var t=e.i(18050),a=e.i(71645);e.s(["LiveBadge",0,function({mtimeIso:e,size:r="sm"}){let[n,l]=(0,a.useState)(()=>Date.now());if((0,a.useEffect)(()=>{let e=setInterval(()=>l(Date.now()),1e4);return()=>clearInterval(e)},[]),!e)return null;let i=Date.parse(e);if(Number.isNaN(i)||n-i>45e3)return null;let s="md"===r?8:6;return(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5,fontSize:"md"===r?10:9,fontWeight:700,letterSpacing:"0.04em",padding:"md"===r?"3px 9px":"2px 7px",borderRadius:100,background:"rgba(239, 68, 68, 0.12)",color:"#ef4444",textTransform:"uppercase"},title:`Last updated ${new Date(i).toLocaleTimeString()}`,children:[(0,t.jsx)("span",{style:{display:"inline-block",width:s,height:s,borderRadius:"50%",background:"#ef4444",animation:"cs-live-pulse 1.6s ease-in-out infinite"}}),"LIVE",(0,t.jsx)("style",{children:`
2
- @keyframes cs-live-pulse {
3
- 0%, 100% { opacity: 1; transform: scale(1); }
4
- 50% { opacity: 0.4; transform: scale(0.85); }
5
- }
6
- `})]})}])},33307,e=>{"use strict";var t=e.i(18050),a=e.i(71645);function r(e,t){if(e<=0||t<=0)return"var(--af-heatmap-0)";let a=Math.min(1,e/t),r=0;return a>.75?r=4:a>.5?r=3:a>.25?r=2:a>0&&(r=1),`var(--af-heatmap-${r})`}function n(e){let[t,a,r]=e.split("-").map(Number);return new Date(t,a-1,r)}function l(e){let t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return`${t}-${a}-${r}`}function i(e){return{date:e,sessions:0,toolCalls:0,turns:0,airTimeMs:0,tokens:{input:0,output:0,cacheRead:0,cacheWrite:0},durationMs:0,peakParallelism:0}}e.s(["Heatmap",0,function({buckets:e,valueKey:s="sessions",cellSize:o=13,cellGap:d=3}){let[c,u]=(0,a.useState)(null),{weeks:p,max:x}=(0,a.useMemo)(()=>{if(0===e.length)return{weeks:[],max:0};let t=new Date(n(e[0].date));t.setDate(t.getDate()-t.getDay());let a=new Map(e.map(e=>[e.date,e])),r=[],o=[],d=new Date,c=n(e[e.length-1].date),u=c>d?c:d,p=0;for(let e=new Date(t);e<=u;e.setDate(e.getDate()+1)){let t=l(e),n=a.get(t)??i(t),d=n[s];d>p&&(p=d),o.push(n),7===o.length&&(r.push(o),o=[])}if(o.length>0){for(;o.length<7;)o.push(i(l(new Date)));r.push(o)}return{weeks:r,max:p}},[e,s]);if(0===e.length)return(0,t.jsx)("div",{style:{padding:"32px 12px",color:"var(--af-text-tertiary)",fontSize:12,textAlign:"center"},children:"No activity yet."});let h=p.length*(o+d)+24,f=7*(o+d)+18;return(0,t.jsxs)("div",{style:{position:"relative",overflowX:"auto"},children:[(0,t.jsxs)("svg",{width:h,height:f,style:{display:"block"},children:[(0,t.jsx)("g",{fontSize:9,fill:"var(--af-text-tertiary)",children:["Mon","Wed","Fri"].map((e,a)=>(0,t.jsx)("text",{x:0,y:18+(1+2*a)*(o+d)+o-3,children:e},e))}),(0,t.jsx)("g",{transform:"translate(24, 18)",children:p.map((e,a)=>e.map((e,n)=>{let l=e[s],i=r(l,x);return(0,t.jsx)("rect",{x:a*(o+d),y:n*(o+d),width:o,height:o,rx:2.5,ry:2.5,stroke:l>0?"rgba(255,255,255,0.04)":"transparent",onMouseEnter:t=>{let a=t.currentTarget.getBoundingClientRect();u({bucket:e,x:a.left+a.width/2,y:a.top-6})},onMouseLeave:()=>u(null),style:{cursor:l>0?"pointer":"default",fill:i}},`${a}-${n}`)}))})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:6,fontSize:10,color:"var(--af-text-tertiary)",justifyContent:"flex-end"},children:[(0,t.jsx)("span",{children:"Less"}),[0,.25,.5,.75,1].map((e,a)=>(0,t.jsx)("span",{style:{width:11,height:11,borderRadius:2.5,background:r(Math.max(1,e*x),x),display:"inline-block"}},a)),(0,t.jsx)("span",{children:"More"})]}),c&&(0,t.jsxs)("div",{style:{position:"fixed",left:c.x,top:c.y,transform:"translate(-50%, -100%)",background:"var(--af-surface-elevated)",border:"1px solid var(--af-border-subtle)",borderRadius:6,padding:"6px 10px",fontSize:11,color:"var(--af-text)",whiteSpace:"nowrap",pointerEvents:"none",zIndex:100,boxShadow:"0 4px 12px rgba(0,0,0,0.3)"},children:[(0,t.jsx)("div",{style:{fontWeight:600},children:c.bucket.date}),(0,t.jsxs)("div",{style:{color:"var(--af-text-secondary)"},children:[c.bucket.sessions," session",1===c.bucket.sessions?"":"s",c.bucket.toolCalls>0&&` \xb7 ${c.bucket.toolCalls} tool calls`,c.bucket.peakParallelism>1&&` \xb7 peak \xd7${c.bucket.peakParallelism}`]})]})]})}])},15781,e=>{"use strict";var t=e.i(18050),a=e.i(71645);function r(e){if(e<1e3)return`${Math.round(e)}ms`;let t=Math.round(e/1e3);if(t<60)return`${t}s`;let a=Math.floor(t/60),r=t%60;if(a<60)return r?`${a}m ${r}s`:`${a}m`;let n=Math.floor(a/60),l=a%60;return l?`${n}h ${l}m`:`${n}h`}let n={airTime:{label:"Agent time",pluck:e=>e.airTimeMs,color:"rgba(45, 212, 191, 0.85)",unit:"ms"},sessions:{label:"Sessions",pluck:e=>e.sessions,color:"rgba(94, 234, 212, 0.85)"},toolCalls:{label:"Tool calls",pluck:e=>e.toolCalls,color:"rgba(167, 139, 250, 0.85)"},turns:{label:"Turns",pluck:e=>e.turns,color:"rgba(251, 191, 36, 0.85)"},input:{label:"Input tokens",pluck:e=>e.tokens.input,color:"rgba(52, 211, 153, 0.85)"},output:{label:"Output tokens",pluck:e=>e.tokens.output,color:"rgba(248, 113, 113, 0.85)"},cacheRead:{label:"Cache read",pluck:e=>e.tokens.cacheRead,color:"rgba(129, 104, 224, 0.85)"}};e.s(["ActivityChart",0,function({buckets:e,defaultMetric:l="sessions",height:i=160}){let[s,o]=(0,a.useState)(l),[d,c]=(0,a.useState)(null),u=n[s],{bars:p,maxVal:x}=(0,a.useMemo)(()=>{let t=0;return{bars:e.map(e=>{let a=u.pluck(e);return a>t&&(t=a),{bucket:e,value:a}}),maxVal:t}},[e,u]);if(0===e.length)return(0,t.jsx)("div",{style:{padding:"32px 12px",color:"var(--af-text-tertiary)",fontSize:12,textAlign:"center"},children:"No activity yet."});let h=Math.max(3,Math.floor((600-2*p.length)/Math.max(1,p.length))),f=48+Math.max(p.length*(h+2),600)+8,g=i-10-22;return(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{display:"flex",gap:4,background:"var(--background)",borderRadius:7,padding:3,marginBottom:10},children:Object.keys(n).map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>o(e),style:{fontSize:11,padding:"5px 10px",border:"none",borderRadius:5,background:s===e?"var(--af-surface-elevated)":"transparent",color:s===e?"var(--af-text)":"var(--af-text-tertiary)",fontWeight:500},children:n[e].label},e))}),(0,t.jsxs)("div",{style:{position:"relative",overflowX:"auto"},children:[d&&(0,t.jsxs)("div",{style:{position:"absolute",left:d.x,top:0,transform:"translateX(-50%)",background:"var(--af-surface-elevated)",border:"1px solid var(--af-border-subtle)",borderRadius:6,padding:"4px 8px",fontSize:11,color:"var(--af-text-secondary)",fontFamily:"var(--font-mono)",whiteSpace:"nowrap",pointerEvents:"none",zIndex:10,boxShadow:"0 2px 8px rgba(0,0,0,0.08)"},children:[d.bucket.date," ·"," ","ms"===u.unit?r(d.value):d.value.toLocaleString()]}),(0,t.jsxs)("svg",{width:f,height:i,style:{display:"block"},children:[(0,t.jsx)("g",{fontSize:10,fill:"var(--af-text-tertiary)",children:[0,.25,.5,.75,1].map(e=>{let a=10+(1-e)*g,n=x*e,l="ms"===u.unit?r(n):n>=1e6?`${(n/1e6).toFixed(1)}M`:n>=1e3?`${(n/1e3).toFixed(1)}k`:Math.round(n).toString();return(0,t.jsxs)("g",{children:[(0,t.jsx)("line",{x1:48,x2:f-8,y1:a,y2:a,stroke:"var(--af-border-subtle)",strokeDasharray:0===e?void 0:"2 3"}),(0,t.jsx)("text",{x:42,y:a+3,textAnchor:"end",children:l})]},e)})}),p.map((e,a)=>{let r=x>0?e.value/x*g:0,n=48+a*(h+2),l=d?.bucket.date===e.bucket.date;return(0,t.jsxs)("g",{children:[(0,t.jsx)("rect",{x:n,y:10,width:h,height:g,fill:"transparent",onMouseEnter:()=>c({bucket:e.bucket,value:e.value,x:n+h/2}),onMouseLeave:()=>c(null)}),(0,t.jsx)("rect",{x:n,y:10+g-r,width:h,height:Math.max(.5,r),fill:l?"var(--af-accent)":u.color,rx:1.5*(h>=6),ry:1.5*(h>=6),style:{pointerEvents:"none"}})]},e.bucket.date)}),(0,t.jsx)("g",{fontSize:10,fill:"var(--af-text-tertiary)",children:p.map((e,a)=>{let r=e.bucket.date,n=0===a,l=a===p.length-1,s="01"===r.slice(-2),o=p.length>3&&p.length<=31&&a===Math.floor(p.length/2)&&!p.some(e=>"01"===e.bucket.date.slice(-2));if(!n&&!l&&!s&&!o)return null;let d=48+a*(h+2)+h/2,c=new Date(`${r}T00:00:00`).toLocaleDateString(void 0,{month:"short",day:"numeric"});return(0,t.jsx)("text",{x:n?48:l?f-8:d,y:i-6,textAnchor:n?"start":l?"end":"middle",children:c},r)})})]})]})]})}])},74829,e=>{"use strict";var t=e.i(18050),a=e.i(71645);let r=(0,e.i(75254).default)("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);e.s(["MetricCard",0,function({label:e,value:n,sub:l,icon:i,tooltip:s}){let[o,d]=(0,a.useState)(!1);return(0,t.jsxs)("div",{className:"af-card",style:{padding:"16px 18px",position:"relative"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:11,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:600},children:[i,(0,t.jsx)("span",{children:e}),s&&(0,t.jsx)("span",{style:{marginLeft:"auto",cursor:"help",display:"inline-flex",color:"var(--af-text-tertiary)",opacity:.5,transition:"opacity 0.12s"},onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),onClick:()=>d(e=>!e),children:(0,t.jsx)(r,{size:12})})]}),(0,t.jsx)("div",{style:{fontSize:22,fontWeight:700,marginTop:8,letterSpacing:"-0.02em",lineHeight:1.1},children:n}),l&&(0,t.jsx)("div",{style:{fontSize:11,color:"var(--af-text-secondary)",marginTop:4},children:l}),o&&s&&(0,t.jsx)("div",{style:{position:"absolute",top:"calc(100% + 6px)",left:0,right:0,zIndex:50,background:"#0F172A",color:"#F1F5F9",borderRadius:8,padding:"10px 12px",fontSize:11,lineHeight:1.5,boxShadow:"0 6px 24px rgba(15,23,42,0.22)",pointerEvents:"none"},children:s.split("\n").map((e,a)=>(0,t.jsx)("div",{children:e},a))})]})}],74829)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,25063,e=>{"use strict";let t=(0,e.i(75254).default)("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);e.s(["ArrowDown",0,t],25063)},55898,78360,e=>{"use strict";var t=e.i(18050),r=e.i(71645),o=e.i(75254);let a=(0,o.default)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var i=e.i(25063);let s=(0,o.default)("ArrowUpDown",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]);e.s(["DataTable",0,function({rows:e,columns:o,getRowKey:n,onRowClick:l,defaultSortKey:c,defaultSortDir:d="desc"}){let[p,u]=(0,r.useState)(c??null),[f,h]=(0,r.useState)(d),x=(0,r.useMemo)(()=>{if(!p)return e;let t=o.find(e=>e.key===p);if(!t||!t.sortValue)return e;let r="asc"===f?1:-1;return[...e].sort((e,o)=>{let a=t.sortValue(e),i=t.sortValue(o);return"number"==typeof a&&"number"==typeof i?(a-i)*r:String(a).localeCompare(String(i))*r})},[e,o,p,f]);return(0,t.jsx)("div",{style:{overflowX:"auto",border:"1px solid var(--af-border-subtle)",borderRadius:8,background:"var(--af-surface)"},children:(0,t.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:12,color:"var(--af-text)"},children:[(0,t.jsx)("thead",{children:(0,t.jsx)("tr",{children:o.map(e=>{let r=p===e.key,o=!1!==e.sortable&&!!e.sortValue;return(0,t.jsx)("th",{onClick:()=>{!1!==e.sortable&&e.sortValue&&(p===e.key?h(e=>"asc"===e?"desc":"asc"):(u(e.key),h("desc")))},style:{textAlign:e.align??"left",fontSize:10,fontWeight:600,color:r?"var(--af-accent)":"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",padding:"10px 12px",borderBottom:"1px solid var(--af-border-subtle)",cursor:o?"pointer":"default",userSelect:"none",whiteSpace:"nowrap",width:e.width,background:"var(--af-surface)",position:"sticky",top:0},children:(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,verticalAlign:"middle"},children:[e.header,o&&(0,t.jsx)("span",{style:{display:"inline-flex",opacity:r?1:.35},children:r?"asc"===f?(0,t.jsx)(a,{size:10}):(0,t.jsx)(i.ArrowDown,{size:10}):(0,t.jsx)(s,{size:10})})]})},e.key)})})}),(0,t.jsxs)("tbody",{children:[x.map(e=>(0,t.jsx)("tr",{onClick:()=>l?.(e),style:{cursor:l?"pointer":"default",borderBottom:"1px solid var(--af-border-subtle)",transition:"background 0.1s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--af-surface-hover)"},onMouseLeave:e=>{e.currentTarget.style.background=""},children:o.map(r=>(0,t.jsx)("td",{style:{padding:"10px 12px",textAlign:r.align??"left",whiteSpace:"right"===r.align?"nowrap":void 0,verticalAlign:"top"},children:r.render(e)},r.key))},n(e))),0===x.length&&(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:o.length,style:{padding:"32px 16px",textAlign:"center",fontSize:12,color:"var(--af-text-tertiary)"},children:"No rows to display."})})]})]})})}],55898);let n=(0,o.default)("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),l=(0,o.default)("Table",[["path",{d:"M12 3v18",key:"108xh3"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}]]);var c=e.i(86619);function d({active:e,onClick:r,label:o,icon:a,rightEdge:i}){return(0,t.jsxs)("button",{type:"button",onClick:r,style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",fontSize:11,fontWeight:500,background:e?"var(--af-accent-subtle)":"transparent",color:e?"var(--af-accent)":"var(--af-text-secondary)",border:"none",borderRight:i?"none":"1px solid var(--af-border-subtle)",cursor:"pointer",letterSpacing:"0.02em"},children:[a,o]})}e.s(["useViewToggle",0,function(e,r="cards"){let[o,a,i]=(0,c.usePersistentBoolean)(e,"table"===r);return{mode:o?"table":"cards",toggle:(0,t.jsxs)("div",{style:{display:"inline-flex",border:"1px solid var(--af-border-subtle)",borderRadius:6,overflow:"hidden"},children:[(0,t.jsx)(d,{active:!o,onClick:()=>a(!1),label:"Cards",icon:(0,t.jsx)(n,{size:12})}),(0,t.jsx)(d,{active:o,onClick:()=>a(!0),label:"Table",icon:(0,t.jsx)(l,{size:12}),rightEdge:!0})]}),hydrated:i}}],78360)},57983,e=>{"use strict";var t=e.i(18050),r=e.i(22016),o=e.i(18566),a=e.i(56324),i=e.i(55898),s=e.i(78360);let n=[{key:"name",header:"Project",sortValue:e=>e.projectName,render:e=>(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{fontWeight:500,display:"inline-flex",alignItems:"center",gap:6},children:[(0,a.prettyProjectName)(e.projectName),e.worktreeCount>0&&(0,t.jsx)(c,{count:e.worktreeCount})]}),(0,t.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",maxWidth:320,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.projectName,children:e.projectName})]})},{key:"sessions",header:"Sessions",sortValue:e=>e.metrics.sessionCount,align:"right",render:e=>(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:e.metrics.sessionCount.toLocaleString()})},{key:"turns",header:"Turns",sortValue:e=>e.metrics.totalTurns,align:"right",render:e=>(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:e.metrics.totalTurns.toLocaleString()})},{key:"tools",header:"Tool calls",sortValue:e=>e.metrics.totalToolCalls,align:"right",render:e=>(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:e.metrics.totalToolCalls.toLocaleString()})},{key:"airtime",header:"Agent time",sortValue:e=>e.metrics.totalAirTimeMs,align:"right",render:e=>(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,a.formatDuration)(e.metrics.totalAirTimeMs)})},{key:"tokens",header:"Tokens",sortValue:e=>e.metrics.totalTokens.input+e.metrics.totalTokens.output+e.metrics.totalTokens.cacheRead+e.metrics.totalTokens.cacheWrite,align:"right",render:e=>{let r=e.metrics.totalTokens.input+e.metrics.totalTokens.output+e.metrics.totalTokens.cacheRead+e.metrics.totalTokens.cacheWrite;return(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,a.formatTokens)(r)})}},{key:"lastActive",header:"Last active",sortValue:e=>e.lastActiveMs??0,align:"right",render:e=>(0,t.jsx)("span",{suppressHydrationWarning:!0,style:{fontFamily:"var(--font-mono)",fontSize:11},children:e.lastActiveMs?(0,a.formatRelative)(new Date(e.lastActiveMs).toISOString()):"—"})}];function l({project:e}){let o=e.metrics.totalTokens.input+e.metrics.totalTokens.output+e.metrics.totalTokens.cacheRead+e.metrics.totalTokens.cacheWrite;return(0,t.jsxs)(r.default,{href:`/projects/${encodeURIComponent(e.projectDir)}`,className:"af-card",style:{display:"flex",flexDirection:"column",gap:10},children:[(0,t.jsxs)("div",{style:{fontSize:14,fontWeight:600,color:"var(--af-text)",display:"flex",alignItems:"center",gap:8},children:[(0,t.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:(0,a.prettyProjectName)(e.projectName)}),e.worktreeCount>0&&(0,t.jsx)(c,{count:e.worktreeCount})]}),(0,t.jsx)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:e.projectName}),(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:6,marginTop:6,fontSize:11,color:"var(--af-text-secondary)"},children:[(0,t.jsx)(d,{label:"Sessions",value:String(e.metrics.sessionCount)}),(0,t.jsx)(d,{label:"Turns",value:String(e.metrics.totalTurns)}),(0,t.jsx)(d,{label:"Tools",value:String(e.metrics.totalToolCalls)}),(0,t.jsx)(d,{label:"Agent time",value:(0,a.formatDuration)(e.metrics.totalAirTimeMs)}),(0,t.jsx)(d,{label:"Tokens",value:(0,a.formatTokens)(o)}),(0,t.jsx)(d,{label:"Last",value:e.lastActiveMs?(0,a.formatRelative)(new Date(e.lastActiveMs).toISOString()):"—"})]})]})}function c({count:e}){return(0,t.jsxs)("span",{style:{fontSize:9,fontWeight:700,padding:"2px 7px",borderRadius:100,background:"rgba(167, 139, 250, 0.15)",color:"rgba(167, 139, 250, 1)",textTransform:"uppercase",letterSpacing:"0.04em",flexShrink:0},title:`${e} git worktree${1===e?"":"s"} rolled up into this project`,children:["+",e," wt"]})}function d({label:e,value:r}){return(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{fontSize:9,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.04em",fontWeight:600},children:e}),(0,t.jsx)("div",{style:{fontFamily:"var(--font-mono)",marginTop:2},suppressHydrationWarning:!0,children:r})]})}e.s(["ProjectsView",0,function({projects:e}){let r=(0,o.useRouter)(),{mode:a,toggle:c}=(0,s.useViewToggle)("cclens:projects:view");return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:14},children:c}),"table"===a?(0,t.jsx)(i.DataTable,{rows:e,getRowKey:e=>e.projectDir,onRowClick:e=>r.push(`/projects/${encodeURIComponent(e.projectDir)}`),defaultSortKey:"lastActive",defaultSortDir:"desc",columns:n}):(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(320px, 1fr))",gap:14},children:e.map(e=>(0,t.jsx)(l,{project:e},e.projectDir))})]})}])}]);
@@ -1 +0,0 @@
1
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono:"SF Mono", "Fira Code", "JetBrains Mono", "Cascadia Code", monospace;--spacing:.25rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--default-mono-font-family:"SF Mono", "Fira Code", "JetBrains Mono", "Cascadia Code", monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.items-baseline{align-items:baseline}.items-center{align-items:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.border{border-style:var(--tw-border-style);border-width:1px}.break-all{word-break:break-all}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}}:root,[data-theme=dark]{--background:#1a1a1f;--foreground:#e8e8f0;--af-accent:#2dd4bf;--af-accent-hover:#5eead4;--af-accent-subtle:#2dd4bf1f;--af-success:#34d399;--af-success-subtle:#34d3991f;--af-warning:#fbbf24;--af-warning-subtle:#fbbf241a;--af-danger:#f87171;--af-danger-subtle:#f871711f;--af-info:#a78bfa;--af-info-subtle:#a78bfa1f;--af-surface:#2c2c33;--af-surface-hover:#333340;--af-surface-elevated:#38384a;--af-border-subtle:#2f2f38;--af-text:#e8e8f0;--af-text-secondary:#9090a0;--af-text-tertiary:#707078;--af-heatmap-0:#2f2f38;--af-heatmap-1:#2dd4bf2e;--af-heatmap-2:#2dd4bf59;--af-heatmap-3:#2dd4bf99;--af-heatmap-4:#2dd4bfe6}[data-theme=light]{--background:#fdfbf9;--foreground:#1a1a1a;--af-accent:#14b8a6;--af-accent-hover:#0d9488;--af-accent-subtle:#14b8a61f;--af-success:#059669;--af-success-subtle:#0596691f;--af-warning:#d97706;--af-warning-subtle:#d977061f;--af-danger:#c53030;--af-danger-subtle:#c530301f;--af-info:#8168e0;--af-info-subtle:#8168e01f;--af-surface:#f5f1ec;--af-surface-hover:#ede8e0;--af-surface-elevated:#e8e2da;--af-border-subtle:#e8e2da;--af-text:#1a1a1a;--af-text-secondary:#5a544e;--af-text-tertiary:#8a8580;--af-heatmap-0:#ede8e0;--af-heatmap-1:#14b8a638;--af-heatmap-2:#14b8a666;--af-heatmap-3:#14b8a6a6;--af-heatmap-4:#14b8a6f2}html,body{background:var(--background);color:var(--foreground);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:14px;line-height:1.6}body{min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}input:not([type=checkbox]):not([type=radio]),select,textarea{background:var(--background);border:1px solid var(--af-border-subtle);color:var(--af-text);border-radius:8px;outline:none;padding:9px 12px;font-size:13px;transition:border-color .15s}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:var(--af-accent);box-shadow:0 0 0 3px var(--af-accent-subtle)}input::placeholder{color:var(--af-text-tertiary)}.sl-compact-select{border-radius:6px!important;height:32px!important;padding:4px 28px 4px 10px!important;font-size:12px!important}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--af-border-subtle);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--af-surface-elevated)}.af-panel{background:var(--af-surface);border:1px solid var(--af-border-subtle);border-radius:12px;overflow:hidden}.af-panel-header{border-bottom:1px solid var(--af-border-subtle);align-items:center;gap:6px;padding:14px 18px;font-size:13px;font-weight:600;display:flex}.af-tag{border:none;border-radius:100px;padding:3px 10px;font-size:11px;font-weight:500;display:inline-block}.af-tag-default{background:var(--af-border-subtle);color:var(--af-text-secondary)}.af-tag-accent{background:var(--af-accent-subtle);color:var(--af-accent)}.af-tag-success{background:var(--af-success-subtle);color:var(--af-success)}.af-tag-warning{background:var(--af-warning-subtle);color:var(--af-warning)}.af-tag-danger{background:var(--af-danger-subtle);color:var(--af-danger)}.af-empty{text-align:center;color:var(--af-text-tertiary);padding:48px 32px;font-size:13px}.af-tabs{background:var(--background);border-radius:8px;gap:2px;padding:3px;display:inline-flex}.af-tab-btn{color:var(--af-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:7px 18px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s}.af-tab-btn:hover{color:var(--af-text)}.af-tab-btn.active{background:var(--af-surface-elevated);color:var(--af-text);box-shadow:0 1px 3px #0003}.flex{display:flex}.items-center{align-items:center}.items-baseline{align-items:baseline}.af-card{background:var(--af-surface);border:1px solid var(--af-border-subtle);border-radius:12px;padding:18px 20px;transition:border-color .12s}.af-card:hover{border-color:var(--af-surface-elevated)}.sl-prose{color:var(--af-text);word-break:break-word;font-size:13.5px;line-height:1.65}.sl-prose>:first-child{margin-top:0}.sl-prose>:last-child{margin-bottom:0}.sl-prose h1,.sl-prose h2,.sl-prose h3,.sl-prose h4{letter-spacing:-.01em;color:var(--af-text);margin:18px 0 8px;font-weight:700;line-height:1.25}.sl-prose h1{border-bottom:1px solid var(--af-border-subtle);padding-bottom:6px;font-size:20px}.sl-prose h2{font-size:16px}.sl-prose h3{font-size:14px}.sl-prose h4{color:var(--af-text-secondary);font-size:13px}.sl-prose p{margin:10px 0}.sl-prose strong{color:var(--af-text);font-weight:600}.sl-prose em{color:var(--af-text);font-style:italic}.sl-prose ul,.sl-prose ol{margin:10px 0;padding-left:22px}.sl-prose ul{list-style-type:disc}.sl-prose ol{list-style-type:decimal}.sl-prose li,.sl-prose li>p{margin:4px 0}.sl-prose blockquote{border-left:3px solid var(--af-accent);color:var(--af-text-secondary);background:var(--af-accent-subtle);border-radius:0 6px 6px 0;margin:12px 0;padding:4px 14px}.sl-prose code{font-family:var(--font-mono);background:var(--af-border-subtle);color:var(--af-text);border-radius:4px;padding:1px 5px;font-size:12px}.sl-prose pre{background:var(--background);border:1px solid var(--af-border-subtle);border-radius:8px;margin:12px 0;padding:12px 14px;font-size:12px;line-height:1.55;overflow-x:auto}.sl-prose pre code{font-size:inherit;background:0 0;border-radius:0;padding:0}.sl-prose table{border-collapse:collapse;width:100%;margin:12px 0;font-size:12px}.sl-prose th,.sl-prose td{border:1px solid var(--af-border-subtle);text-align:left;padding:6px 10px}.sl-prose th{background:var(--af-surface-hover);font-weight:600}.sl-prose hr{border:none;border-top:1px solid var(--af-border-subtle);margin:16px 0}.sl-prose a{color:var(--af-accent);text-underline-offset:2px;text-decoration:underline}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
@@ -1,31 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,35451,(e,t,r)=>{var n={229:function(e){var t,r,n,o=e.exports={};function u(){throw Error("setTimeout has not been defined")}function i(){throw Error("clearTimeout has not been defined")}try{t="function"==typeof setTimeout?setTimeout:u}catch(e){t=u}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(e){r=i}function a(e){if(t===setTimeout)return setTimeout(e,0);if((t===u||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}var l=[],s=!1,c=-1;function f(){s&&n&&(s=!1,n.length?l=n.concat(l):c=-1,l.length&&d())}function d(){if(!s){var e=a(f);s=!0;for(var t=l.length;t;){for(n=l,l=[];++c<t;)n&&n[c].run();c=-1,t=l.length}n=null,s=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===i||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function p(e,t){this.fun=e,this.array=t}function y(){}o.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];l.push(new p(e,t)),1!==l.length||s||a(d)},p.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=y,o.addListener=y,o.once=y,o.off=y,o.removeListener=y,o.removeAllListeners=y,o.emit=y,o.prependListener=y,o.prependOnceListener=y,o.listeners=function(e){return[]},o.binding=function(e){throw Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw Error("process.chdir is not supported")},o.umask=function(){return 0}}},o={};function u(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}},i=!0;try{n[e](r,r.exports,u),i=!1}finally{i&&delete o[e]}return r.exports}u.ab="/ROOT/node_modules/next/dist/compiled/process/",t.exports=u(229)},47167,(e,t,r)=>{"use strict";var n,o;t.exports=(null==(n=e.g.process)?void 0:n.env)&&"object"==typeof(null==(o=e.g.process)?void 0:o.env)?e.g.process:e.r(35451)},45689,(e,t,r)=>{"use strict";var n=Symbol.for("react.transitional.element");function o(e,t,r){var o=null;if(void 0!==r&&(o=""+r),void 0!==t.key&&(o=""+t.key),"key"in t)for(var u in r={},t)"key"!==u&&(r[u]=t[u]);else r=t;return{$$typeof:n,type:e,key:o,ref:void 0!==(t=r.ref)?t:null,props:r}}r.Fragment=Symbol.for("react.fragment"),r.jsx=o,r.jsxs=o},18050,(e,t,r)=>{"use strict";t.exports=e.r(45689)},50740,(e,t,r)=>{"use strict";var n=e.i(47167),o=Symbol.for("react.transitional.element"),u=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),c=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),_=Symbol.for("react.activity"),b=Symbol.for("react.view_transition"),h=Symbol.iterator,E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,v={};function m(e,t,r){this.props=e,this.context=t,this.refs=v,this.updater=r||E}function x(){}function R(e,t,r){this.props=e,this.context=t,this.refs=v,this.updater=r||E}m.prototype.isReactComponent={},m.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},m.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},x.prototype=m.prototype;var j=R.prototype=new x;j.constructor=R,g(j,m.prototype),j.isPureReactComponent=!0;var O=Array.isArray;function T(){}var S={H:null,A:null,T:null,S:null},P=Object.prototype.hasOwnProperty;function A(e,t,r){var n=r.ref;return{$$typeof:o,type:e,key:t,ref:void 0!==n?n:null,props:r}}function w(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var M=/\/+/g;function C(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function N(e,t,r){if(null==e)return e;var n=[],i=0;return!function e(t,r,n,i,a){var l,s,c,f=typeof t;("undefined"===f||"boolean"===f)&&(t=null);var d=!1;if(null===t)d=!0;else switch(f){case"bigint":case"string":case"number":d=!0;break;case"object":switch(t.$$typeof){case o:case u:d=!0;break;case y:return e((d=t._init)(t._payload),r,n,i,a)}}if(d)return a=a(t),d=""===i?"."+C(t,0):i,O(a)?(n="",null!=d&&(n=d.replace(M,"$&/")+"/"),e(a,r,n,"",function(e){return e})):null!=a&&(w(a)&&(l=a,s=n+(null==a.key||t&&t.key===a.key?"":(""+a.key).replace(M,"$&/")+"/")+d,a=A(l.type,s,l.props)),r.push(a)),1;d=0;var p=""===i?".":i+":";if(O(t))for(var _=0;_<t.length;_++)f=p+C(i=t[_],_),d+=e(i,r,n,f,a);else if("function"==typeof(_=null===(c=t)||"object"!=typeof c?null:"function"==typeof(c=h&&c[h]||c["@@iterator"])?c:null))for(t=_.call(t),_=0;!(i=t.next()).done;)f=p+C(i=i.value,_++),d+=e(i,r,n,f,a);else if("object"===f){if("function"==typeof t.then)return e(function(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch("string"==typeof e.status?e.then(T,T):(e.status="pending",e.then(function(t){"pending"===e.status&&(e.status="fulfilled",e.value=t)},function(t){"pending"===e.status&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}(t),r,n,i,a);throw Error("Objects are not valid as a React child (found: "+("[object Object]"===(r=String(t))?"object with keys {"+Object.keys(t).join(", ")+"}":r)+"). If you meant to render a collection of children, use an array instead.")}return d}(e,n,"","",function(e){return t.call(r,e,i++)}),n}function H(e){if(-1===e._status){var t=(0,e._result)();t.then(function(r){(0===e._status||-1===e._status)&&(e._status=1,e._result=r,void 0===t.status&&(t.status="fulfilled",t.value=r))},function(r){(0===e._status||-1===e._status)&&(e._status=2,e._result=r,void 0===t.status&&(t.status="rejected",t.reason=r))}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var D="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof n.default&&"function"==typeof n.default.emit)return void n.default.emit("uncaughtException",e);console.error(e)};function I(e){var t=S.T,r={};r.types=null!==t?t.types:null,S.T=r;try{var n=e(),o=S.S;null!==o&&o(r,n),"object"==typeof n&&null!==n&&"function"==typeof n.then&&n.then(T,D)}catch(e){D(e)}finally{null!==t&&null!==r.types&&(t.types=r.types),S.T=t}}function U(e){var t=S.T;if(null!==t){var r=t.types;null===r?t.types=[e]:-1===r.indexOf(e)&&r.push(e)}else I(U.bind(null,e))}r.Activity=_,r.Children={map:N,forEach:function(e,t,r){N(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return N(e,function(){t++}),t},toArray:function(e){return N(e,function(e){return e})||[]},only:function(e){if(!w(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},r.Component=m,r.Fragment=i,r.Profiler=l,r.PureComponent=R,r.StrictMode=a,r.Suspense=d,r.ViewTransition=b,r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=S,r.__COMPILER_RUNTIME={__proto__:null,c:function(e){return S.H.useMemoCache(e)}},r.addTransitionType=U,r.cache=function(e){return function(){return e.apply(null,arguments)}},r.cacheSignal=function(){return null},r.cloneElement=function(e,t,r){if(null==e)throw Error("The argument must be a React element, but you passed "+e+".");var n=g({},e.props),o=e.key;if(null!=t)for(u in void 0!==t.key&&(o=""+t.key),t)P.call(t,u)&&"key"!==u&&"__self"!==u&&"__source"!==u&&("ref"!==u||void 0!==t.ref)&&(n[u]=t[u]);var u=arguments.length-2;if(1===u)n.children=r;else if(1<u){for(var i=Array(u),a=0;a<u;a++)i[a]=arguments[a+2];n.children=i}return A(e.type,o,n)},r.createContext=function(e){return(e={$$typeof:c,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:s,_context:e},e},r.createElement=function(e,t,r){var n,o={},u=null;if(null!=t)for(n in void 0!==t.key&&(u=""+t.key),t)P.call(t,n)&&"key"!==n&&"__self"!==n&&"__source"!==n&&(o[n]=t[n]);var i=arguments.length-2;if(1===i)o.children=r;else if(1<i){for(var a=Array(i),l=0;l<i;l++)a[l]=arguments[l+2];o.children=a}if(e&&e.defaultProps)for(n in i=e.defaultProps)void 0===o[n]&&(o[n]=i[n]);return A(e,u,o)},r.createRef=function(){return{current:null}},r.forwardRef=function(e){return{$$typeof:f,render:e}},r.isValidElement=w,r.lazy=function(e){return{$$typeof:y,_payload:{_status:-1,_result:e},_init:H}},r.memo=function(e,t){return{$$typeof:p,type:e,compare:void 0===t?null:t}},r.startTransition=I,r.unstable_useCacheRefresh=function(){return S.H.useCacheRefresh()},r.use=function(e){return S.H.use(e)},r.useActionState=function(e,t,r){return S.H.useActionState(e,t,r)},r.useCallback=function(e,t){return S.H.useCallback(e,t)},r.useContext=function(e){return S.H.useContext(e)},r.useDebugValue=function(){},r.useDeferredValue=function(e,t){return S.H.useDeferredValue(e,t)},r.useEffect=function(e,t){return S.H.useEffect(e,t)},r.useEffectEvent=function(e){return S.H.useEffectEvent(e)},r.useId=function(){return S.H.useId()},r.useImperativeHandle=function(e,t,r){return S.H.useImperativeHandle(e,t,r)},r.useInsertionEffect=function(e,t){return S.H.useInsertionEffect(e,t)},r.useLayoutEffect=function(e,t){return S.H.useLayoutEffect(e,t)},r.useMemo=function(e,t){return S.H.useMemo(e,t)},r.useOptimistic=function(e,t){return S.H.useOptimistic(e,t)},r.useReducer=function(e,t,r){return S.H.useReducer(e,t,r)},r.useRef=function(e){return S.H.useRef(e)},r.useState=function(e){return S.H.useState(e)},r.useSyncExternalStore=function(e,t,r){return S.H.useSyncExternalStore(e,t,r)},r.useTransition=function(){return S.H.useTransition()},r.version="19.3.0-canary-3f0b9e61-20260317"},71645,(e,t,r)=>{"use strict";t.exports=e.r(50740)},55682,(e,t,r)=>{"use strict";r._=function(e){return e&&e.__esModule?e:{default:e}}},90317,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={bindSnapshot:function(){return s},createAsyncLocalStorage:function(){return l},createSnapshot:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class i{disable(){throw u}getStore(){}run(){throw u}exit(){throw u}enterWith(){throw u}static bind(e){return e}}let a="u">typeof globalThis&&globalThis.AsyncLocalStorage;function l(){return a?new a:new i}function s(e){return a?a.bind(e):i.bind(e)}function c(){return a?a.snapshot():function(e,...t){return e(...t)}}},12718,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"InvariantError",{enumerable:!0,get:function(){return n}});class n extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}},76963,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RedirectStatusCode",{enumerable:!0,get:function(){return o}});var n,o=((n={})[n.SeeOther=303]="SeeOther",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},68391,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={REDIRECT_ERROR_CODE:function(){return i},isRedirectError:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(76963),i="NEXT_REDIRECT";function a(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,n]=t,o=t.slice(2,-2).join(";"),a=Number(t.at(-2));return r===i&&("replace"===n||"push"===n)&&"string"==typeof o&&!isNaN(a)&&a in u.RedirectStatusCode}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},90809,(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}r._=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var o={__proto__:null},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=u?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(o,i,a):o[i]=e[i]}return o.default=e,r&&r.set(e,o),o}},21768,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_HEADER:function(){return i},FLIGHT_HEADERS:function(){return b},NEXT_ACTION_NOT_FOUND_HEADER:function(){return R},NEXT_ACTION_REVALIDATED_HEADER:function(){return T},NEXT_DID_POSTPONE_HEADER:function(){return g},NEXT_HMR_REFRESH_HASH_COOKIE:function(){return f},NEXT_HMR_REFRESH_HEADER:function(){return c},NEXT_HTML_REQUEST_ID_HEADER:function(){return O},NEXT_INSTANT_PREFETCH_HEADER:function(){return y},NEXT_INSTANT_TEST_COOKIE:function(){return _},NEXT_IS_PRERENDER_HEADER:function(){return x},NEXT_REQUEST_ID_HEADER:function(){return j},NEXT_REWRITTEN_PATH_HEADER:function(){return v},NEXT_REWRITTEN_QUERY_HEADER:function(){return m},NEXT_ROUTER_PREFETCH_HEADER:function(){return l},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return s},NEXT_ROUTER_STALE_TIME_HEADER:function(){return E},NEXT_ROUTER_STATE_TREE_HEADER:function(){return a},NEXT_RSC_UNION_QUERY:function(){return h},NEXT_URL:function(){return d},RSC_CONTENT_TYPE_HEADER:function(){return p},RSC_HEADER:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="rsc",i="next-action",a="next-router-state-tree",l="next-router-prefetch",s="next-router-segment-prefetch",c="next-hmr-refresh",f="__next_hmr_refresh_hash__",d="next-url",p="text/x-component",y="next-instant-navigation-testing-prefetch",_="next-instant-navigation-testing",b=[u,a,l,c,s],h="_rsc",E="x-nextjs-stale-time",g="x-nextjs-postponed",v="x-nextjs-rewritten-path",m="x-nextjs-rewritten-query",x="x-nextjs-prerender",R="x-nextjs-action-not-found",j="x-nextjs-request-id",O="x-nextjs-html-request-id",T="x-action-revalidated";("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},39470,(e,t,r)=>{"use strict";function n(){let e,t,r=new Promise((r,n)=>{e=r,t=n});return{resolve:e,reject:t,promise:r}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createPromiseWithResolvers",{enumerable:!0,get:function(){return n}})},8372,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={AppRouterContext:function(){return i},GlobalLayoutRouterContext:function(){return l},LayoutRouterContext:function(){return a},MissingSlotContext:function(){return c},TemplateContext:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(55682)._(e.r(71645)),i=u.default.createContext(null),a=u.default.createContext(null),l=u.default.createContext(null),s=u.default.createContext(null),c=u.default.createContext(new Set)},13258,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DEFAULT_SEGMENT_KEY:function(){return f},NOT_FOUND_SEGMENT_KEY:function(){return d},PAGE_SEGMENT_KEY:function(){return c},addSearchParamsIfPageSegment:function(){return l},computeSelectedLayoutSegment:function(){return s},getSegmentValue:function(){return u},getSelectedLayoutSegmentPath:function(){return function e(t,r,n=!0,o=[]){let i;if(n)i=t[1][r];else{let e=t[1];i=e.children??Object.values(e)[0]}if(!i)return o;let a=u(i[0]);return!a||a.startsWith(c)?o:(o.push(a),e(i,r,!1,o))}},isGroupSegment:function(){return i},isParallelRouteSegment:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){return Array.isArray(e)?e[1]:e}function i(e){return"("===e[0]&&e.endsWith(")")}function a(e){return e.startsWith("@")&&"@children"!==e}function l(e,t){if(e.includes(c)){let e=JSON.stringify(t);return"{}"!==e?c+"?"+e:c}return e}function s(e,t){if(!e||0===e.length)return null;let r="children"===t?e[0]:e[e.length-1];return r===f?null:r}let c="__PAGE__",f="__DEFAULT__",d="/_not-found"},92838,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={UnrecognizedActionError:function(){return u},unstable_isUnrecognizedActionError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});class u extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function i(e){return!!(e&&"object"==typeof e&&e instanceof u)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},34457,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},62266,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorage",{enumerable:!0,get:function(){return n.actionAsyncStorageInstance}});let n=e.r(34457)},24063,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getRedirectError:function(){return l},getRedirectStatusCodeFromError:function(){return p},getRedirectTypeFromError:function(){return d},getURLFromRedirectError:function(){return f},permanentRedirect:function(){return c},redirect:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(76963),i=e.r(68391),a="u"<typeof window?e.r(62266).actionAsyncStorage:void 0;function l(e,t,r=u.RedirectStatusCode.TemporaryRedirect){let n=Object.defineProperty(Error(i.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n.digest=`${i.REDIRECT_ERROR_CODE};${t};${e};${r};`,n}function s(e,t){throw l(e,t??=a?.getStore()?.isAction?"push":"replace",u.RedirectStatusCode.TemporaryRedirect)}function c(e,t="replace"){throw l(e,t,u.RedirectStatusCode.PermanentRedirect)}function f(e){return(0,i.isRedirectError)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function d(e){if(!(0,i.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function p(e){if(!(0,i.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},42344,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},63599,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=e.r(42344)},12354,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"handleISRError",{enumerable:!0,get:function(){return o}});let n="u"<typeof window?e.r(63599).workAsyncStorage:void 0;function o({error:e}){if(n){let t=n.getStore();if(t?.isStaticGeneration)throw e&&console.error(e),e}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},90373,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useUntrackedPathname",{enumerable:!0,get:function(){return u}});let n=e.r(71645),o=e.r(61994);function u(){return!function(){if("u"<typeof window){let{workUnitAsyncStorage:t}=e.r(62141),r=t.getStore();if(!r)return!1;switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":case"validation-client":let n=r.fallbackRouteParams;return!!n&&n.size>0}}return!1}()?(0,n.useContext)(o.PathnameContext):null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},78377,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={handleHardNavError:function(){return i},useNavFailureHandler:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});e.r(71645);let u=e.r(51191);function i(e){return!!(e&&"u">typeof window)&&!!window.next.__pendingUrl&&(0,u.createHrefFromUrl)(new URL(window.location.href))!==(0,u.createHrefFromUrl)(window.next.__pendingUrl)&&(console.error("Error occurred during navigation, falling back to hard navigation",e),window.location.href=window.next.__pendingUrl.toString(),!0)}function a(){}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},72383,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ErrorBoundary:function(){return _},ErrorBoundaryHandler:function(){return y}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809),i=e.r(18050),a=u._(e.r(71645)),l=e.r(90373),s=e.r(65713);e.r(78377);let c=e.r(12354),f=e.r(82604),d=e.r(8372),p="u">typeof window&&(0,f.isBot)(window.navigator.userAgent);class y extends a.default.Component{static{this.contextType=d.AppRouterContext}constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.unstable_retry=()=>{(0,a.startTransition)(()=>{this.context?.refresh(),this.reset()})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if((0,s.isNextRouterError)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error&&!p?((0,c.handleISRError)({error:this.state.error}),(0,i.jsxs)(i.Fragment,{children:[this.props.errorStyles,this.props.errorScripts,(0,i.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset,unstable_retry:this.unstable_retry})]})):this.props.children}}function _({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let o=(0,l.useUntrackedPathname)();return e?(0,i.jsx)(y,{pathname:o,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,i.jsx)(i.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},58442,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={RedirectBoundary:function(){return p},RedirectErrorBoundary:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809),i=e.r(18050),a=u._(e.r(71645)),l=e.r(76562),s=e.r(24063),c=e.r(68391);function f({redirect:e,reset:t,redirectType:r}){let n=(0,l.useRouter)();return(0,a.useEffect)(()=>{a.default.startTransition(()=>{"push"===r?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class d extends a.default.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if((0,c.isRedirectError)(e)){let t=(0,s.getURLFromRedirectError)(e),r=(0,s.getRedirectTypeFromError)(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,i.jsx)(f,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function p({children:e}){let t=(0,l.useRouter)();return(0,i.jsx)(d,{router:t,children:e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},70725,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRouterCacheKey",{enumerable:!0,get:function(){return o}});let n=e.r(13258);function o(e,t=!1){return Array.isArray(e)?`${e[0]}|${e[1]}|${e[2]}`:t&&e.startsWith(n.PAGE_SEGMENT_KEY)?n.PAGE_SEGMENT_KEY:e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},1244,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unresolvedThenable",{enumerable:!0,get:function(){return n}});let n={then:()=>{}};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},97367,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={MetadataBoundary:function(){return a},OutletBoundary:function(){return s},RootLayoutBoundary:function(){return c},ViewportBoundary:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(54839),i={[u.METADATA_BOUNDARY_NAME]:function({children:e}){return e},[u.VIEWPORT_BOUNDARY_NAME]:function({children:e}){return e},[u.OUTLET_BOUNDARY_NAME]:function({children:e}){return e},[u.ROOT_LAYOUT_BOUNDARY_NAME]:function({children:e}){return e}},a=i[u.METADATA_BOUNDARY_NAME.slice(0)],l=i[u.VIEWPORT_BOUNDARY_NAME.slice(0)],s=i[u.OUTLET_BOUNDARY_NAME.slice(0)],c=i[u.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]},18576,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={WarningIcon:function(){return l},errorStyles:function(){return i},errorThemeCss:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});e.r(55682);let u=e.r(18050);e.r(71645);let i={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},a=`
2
- :root {
3
- --next-error-bg: #fff;
4
- --next-error-text: #171717;
5
- --next-error-title: #171717;
6
- --next-error-message: #171717;
7
- --next-error-digest: #666666;
8
- --next-error-btn-text: #fff;
9
- --next-error-btn-bg: #171717;
10
- --next-error-btn-border: none;
11
- --next-error-btn-secondary-text: #171717;
12
- --next-error-btn-secondary-bg: transparent;
13
- --next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);
14
- }
15
- @media (prefers-color-scheme: dark) {
16
- :root {
17
- --next-error-bg: #0a0a0a;
18
- --next-error-text: #ededed;
19
- --next-error-title: #ededed;
20
- --next-error-message: #ededed;
21
- --next-error-digest: #a0a0a0;
22
- --next-error-btn-text: #0a0a0a;
23
- --next-error-btn-bg: #ededed;
24
- --next-error-btn-border: none;
25
- --next-error-btn-secondary-text: #ededed;
26
- --next-error-btn-secondary-bg: transparent;
27
- --next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);
28
- }
29
- }
30
- body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }
31
- `.replace(/\n\s*/g,"");function l(){return(0,u.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:i.icon,children:(0,u.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},68027,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return i}}),e.r(55682);let n=e.r(18050);e.r(71645);let o=e.r(12354),u=e.r(18576),i=function({error:e}){let t=e?.digest,r=!!t;return(0,o.handleISRError)({error:e}),(0,n.jsxs)("html",{id:"__next_error__",children:[(0,n.jsx)("head",{children:(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:u.errorThemeCss}})}),(0,n.jsxs)("body",{children:[(0,n.jsx)("div",{style:u.errorStyles.container,children:(0,n.jsxs)("div",{style:u.errorStyles.card,children:[(0,n.jsx)(u.WarningIcon,{}),(0,n.jsx)("h1",{style:u.errorStyles.title,children:"This page couldn’t load"}),(0,n.jsx)("p",{style:u.errorStyles.message,children:r?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,n.jsxs)("div",{style:u.errorStyles.buttonGroup,children:[(0,n.jsx)("form",{style:u.errorStyles.form,children:(0,n.jsx)("button",{type:"submit",style:u.errorStyles.button,children:"Reload"})}),!r&&(0,n.jsx)("button",{type:"button",style:u.errorStyles.buttonSecondary,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),t&&(0,n.jsxs)("p",{style:u.errorStyles.digestFooter,children:["ERROR ",t]})]})]})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]);
@@ -1,80 +0,0 @@
1
- /**
2
- * Months index — drives the month picker in /insights.
3
- *
4
- * Returns the last N calendar months (newest first), with session count
5
- * observed in that window, in_progress flag for the current month, and
6
- * saved_key lookup (`month-YYYY-MM-01` convention).
7
- */
8
- import { listSessions } from "@claude-lens/parser/fs";
9
- import { calendarMonth } from "@claude-lens/parser";
10
- import { listSavedReports, type SavedReportMeta } from "@/lib/ai/saved-reports";
11
-
12
- export const dynamic = "force-dynamic";
13
- export const runtime = "nodejs";
14
-
15
- type MonthRow = {
16
- year: number;
17
- month: number; // 1-12
18
- start: string; // "2026-03-01"
19
- end: string; // "2026-03-31"
20
- label: string; // "March 2026"
21
- sessions: number;
22
- in_progress: boolean;
23
- saved_key: string | null;
24
- archetype_label?: string;
25
- sessions_used?: number;
26
- prs?: number;
27
- };
28
-
29
- function isoDay(d: Date): string {
30
- const y = d.getFullYear();
31
- const m = String(d.getMonth() + 1).padStart(2, "0");
32
- const day = String(d.getDate()).padStart(2, "0");
33
- return `${y}-${m}-${day}`;
34
- }
35
-
36
- export async function GET(req: Request) {
37
- const url = new URL(req.url);
38
- const count = Math.min(24, Math.max(1, parseInt(url.searchParams.get("count") ?? "6", 10)));
39
-
40
- const [metas, saved] = await Promise.all([listSessions({ limit: 10000 }), listSavedReports()]);
41
- const savedByKey = new Map<string, SavedReportMeta>(saved.map((s) => [s.key, s]));
42
-
43
- const now = new Date();
44
- const currentMonth = calendarMonth(now);
45
-
46
- const months: MonthRow[] = [];
47
- for (let i = 0; i < count; i++) {
48
- const anchor = new Date(now.getFullYear(), now.getMonth() - i, 15);
49
- const { start, end } = calendarMonth(anchor);
50
- const in_progress =
51
- start.getFullYear() === currentMonth.start.getFullYear()
52
- && start.getMonth() === currentMonth.start.getMonth();
53
-
54
- const startMs = start.getTime();
55
- const endMs = new Date(end).setHours(23, 59, 59, 999);
56
- const sessions = metas.filter((m) => {
57
- if (!m.firstTimestamp) return false;
58
- const t = Date.parse(m.firstTimestamp);
59
- return !Number.isNaN(t) && t >= startMs && t <= endMs;
60
- }).length;
61
-
62
- const startKey = isoDay(start);
63
- const savedMeta = savedByKey.get(`month-${startKey}`);
64
- months.push({
65
- year: start.getFullYear(),
66
- month: start.getMonth() + 1,
67
- start: startKey,
68
- end: isoDay(end),
69
- label: start.toLocaleDateString("en-US", { month: "long", year: "numeric" }),
70
- sessions,
71
- in_progress,
72
- saved_key: savedMeta ? savedMeta.key : null,
73
- archetype_label: savedMeta?.archetype_label,
74
- sessions_used: savedMeta?.sessions_used,
75
- prs: savedMeta?.prs,
76
- });
77
- }
78
-
79
- return Response.json({ months });
80
- }
@@ -1,45 +0,0 @@
1
- /**
2
- * Renders a saved insight report to PDF via headless Chrome and streams
3
- * the bytes back. The actual HTML is served by
4
- * `/insights/print/[key]/page.tsx`; this route just drives the browser.
5
- */
6
- import { getSavedReport } from "@/lib/ai/saved-reports";
7
- import { renderPdf, findChrome } from "@/lib/ai/chrome-pdf";
8
-
9
- export const dynamic = "force-dynamic";
10
- export const runtime = "nodejs";
11
-
12
- export async function GET(
13
- req: Request,
14
- ctx: { params: Promise<{ key: string }> },
15
- ) {
16
- const { key } = await ctx.params;
17
- if (!/^[a-z0-9-]+$/i.test(key)) {
18
- return new Response("invalid key", { status: 400 });
19
- }
20
- const report = await getSavedReport(key);
21
- if (!report) return new Response("report not found", { status: 404 });
22
-
23
- if (!findChrome()) {
24
- return new Response(
25
- "No Chrome/Chromium binary found. Install Chrome or set the CHROME_BIN env var.",
26
- { status: 503 },
27
- );
28
- }
29
-
30
- const origin = new URL(req.url).origin;
31
- const printUrl = `${origin}/insights/print/${encodeURIComponent(key)}`;
32
-
33
- try {
34
- const bytes = await renderPdf(printUrl, key);
35
- return new Response(new Uint8Array(bytes), {
36
- headers: {
37
- "Content-Type": "application/pdf",
38
- "Content-Disposition": `attachment; filename="${key}.pdf"`,
39
- "Cache-Control": "no-store",
40
- },
41
- });
42
- } catch (err) {
43
- return new Response(`PDF render failed: ${(err as Error).message}`, { status: 500 });
44
- }
45
- }