fleetlens 0.6.4 → 0.7.1

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 (226) hide show
  1. package/app/apps/web/.next/BUILD_ID +1 -1
  2. package/app/apps/web/.next/app-path-routes-manifest.json +1 -0
  3. package/app/apps/web/.next/build-manifest.json +5 -5
  4. package/app/apps/web/.next/prerender-manifest.json +3 -3
  5. package/app/apps/web/.next/routes-manifest.json +6 -0
  6. package/app/apps/web/.next/server/app/_global-error/page/build-manifest.json +2 -2
  7. package/app/apps/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/app/apps/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/app/apps/web/.next/server/app/_global-error.html +1 -1
  10. package/app/apps/web/.next/server/app/_global-error.rsc +1 -1
  11. package/app/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/app/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/app/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/app/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/app/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/app/apps/web/.next/server/app/_not-found/page/build-manifest.json +2 -2
  17. package/app/apps/web/.next/server/app/_not-found/page.js +3 -3
  18. package/app/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/app/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/app/apps/web/.next/server/app/api/ask/route.js +2 -2
  21. package/app/apps/web/.next/server/app/api/ask/route.js.nft.json +1 -1
  22. package/app/apps/web/.next/server/app/api/digest/day/[date]/route.js +3 -3
  23. package/app/apps/web/.next/server/app/api/digest/day/[date]/route.js.nft.json +1 -1
  24. package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js +3 -3
  25. package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js.nft.json +1 -1
  26. package/app/apps/web/.next/server/app/api/digest/month-index/route.js +1 -1
  27. package/app/apps/web/.next/server/app/api/digest/month-index/route.js.nft.json +1 -1
  28. package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js +3 -3
  29. package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js.nft.json +1 -1
  30. package/app/apps/web/.next/server/app/api/digest/week-index/route.js +1 -1
  31. package/app/apps/web/.next/server/app/api/digest/week-index/route.js.nft.json +1 -1
  32. package/app/apps/web/.next/server/app/api/events/route.js +2 -2
  33. package/app/apps/web/.next/server/app/api/events/route.js.nft.json +1 -1
  34. package/app/apps/web/.next/server/app/api/jobs/route.js.nft.json +1 -1
  35. package/app/apps/web/.next/server/app/api/runs/[runId]/route.js.nft.json +1 -1
  36. package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route.js.nft.json +1 -1
  37. package/app/apps/web/.next/server/app/api/settings/route.js +3 -3
  38. package/app/apps/web/.next/server/app/api/settings/route.js.nft.json +1 -1
  39. package/app/apps/web/.next/server/app/changelog/page/app-paths-manifest.json +3 -0
  40. package/app/apps/web/.next/server/app/changelog/page/build-manifest.json +17 -0
  41. package/app/apps/web/.next/server/app/changelog/page/next-font-manifest.json +6 -0
  42. package/app/apps/web/.next/server/app/changelog/page/react-loadable-manifest.json +1 -0
  43. package/app/apps/web/.next/server/app/changelog/page/server-reference-manifest.json +4 -0
  44. package/app/apps/web/.next/server/app/changelog/page.js +17 -0
  45. package/app/apps/web/.next/server/app/changelog/page.js.map +5 -0
  46. package/app/apps/web/.next/server/app/changelog/page.js.nft.json +1 -0
  47. package/app/apps/web/.next/server/app/changelog/page_client-reference-manifest.js +3 -0
  48. package/app/apps/web/.next/server/app/day/[date]/page/build-manifest.json +2 -2
  49. package/app/apps/web/.next/server/app/day/[date]/page.js +4 -4
  50. package/app/apps/web/.next/server/app/day/[date]/page.js.nft.json +1 -1
  51. package/app/apps/web/.next/server/app/day/[date]/page_client-reference-manifest.js +1 -1
  52. package/app/apps/web/.next/server/app/day/page/build-manifest.json +2 -2
  53. package/app/apps/web/.next/server/app/day/page.js +3 -3
  54. package/app/apps/web/.next/server/app/day/page.js.nft.json +1 -1
  55. package/app/apps/web/.next/server/app/day/page_client-reference-manifest.js +1 -1
  56. package/app/apps/web/.next/server/app/digest/[date]/page/build-manifest.json +2 -2
  57. package/app/apps/web/.next/server/app/digest/[date]/page.js +3 -3
  58. package/app/apps/web/.next/server/app/digest/[date]/page.js.nft.json +1 -1
  59. package/app/apps/web/.next/server/app/digest/[date]/page_client-reference-manifest.js +1 -1
  60. package/app/apps/web/.next/server/app/digest/page/build-manifest.json +2 -2
  61. package/app/apps/web/.next/server/app/digest/page.js +3 -3
  62. package/app/apps/web/.next/server/app/digest/page.js.nft.json +1 -1
  63. package/app/apps/web/.next/server/app/digest/page_client-reference-manifest.js +1 -1
  64. package/app/apps/web/.next/server/app/insights/[key]/page/build-manifest.json +2 -2
  65. package/app/apps/web/.next/server/app/insights/[key]/page.js +3 -3
  66. package/app/apps/web/.next/server/app/insights/[key]/page.js.nft.json +1 -1
  67. package/app/apps/web/.next/server/app/insights/[key]/page_client-reference-manifest.js +1 -1
  68. package/app/apps/web/.next/server/app/insights/page/build-manifest.json +2 -2
  69. package/app/apps/web/.next/server/app/insights/page.js +3 -3
  70. package/app/apps/web/.next/server/app/insights/page.js.nft.json +1 -1
  71. package/app/apps/web/.next/server/app/insights/page_client-reference-manifest.js +1 -1
  72. package/app/apps/web/.next/server/app/page/build-manifest.json +2 -2
  73. package/app/apps/web/.next/server/app/page.js +4 -4
  74. package/app/apps/web/.next/server/app/page.js.nft.json +1 -1
  75. package/app/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  76. package/app/apps/web/.next/server/app/parallelism/page/build-manifest.json +2 -2
  77. package/app/apps/web/.next/server/app/parallelism/page.js +3 -3
  78. package/app/apps/web/.next/server/app/parallelism/page.js.nft.json +1 -1
  79. package/app/apps/web/.next/server/app/parallelism/page_client-reference-manifest.js +1 -1
  80. package/app/apps/web/.next/server/app/projects/[slug]/page/build-manifest.json +2 -2
  81. package/app/apps/web/.next/server/app/projects/[slug]/page.js +4 -4
  82. package/app/apps/web/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  83. package/app/apps/web/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  84. package/app/apps/web/.next/server/app/projects/page/build-manifest.json +2 -2
  85. package/app/apps/web/.next/server/app/projects/page.js +4 -4
  86. package/app/apps/web/.next/server/app/projects/page.js.nft.json +1 -1
  87. package/app/apps/web/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  88. package/app/apps/web/.next/server/app/runs/page/build-manifest.json +2 -2
  89. package/app/apps/web/.next/server/app/runs/page.js +3 -3
  90. package/app/apps/web/.next/server/app/runs/page.js.nft.json +1 -1
  91. package/app/apps/web/.next/server/app/runs/page_client-reference-manifest.js +1 -1
  92. package/app/apps/web/.next/server/app/sessions/[id]/page/build-manifest.json +2 -2
  93. package/app/apps/web/.next/server/app/sessions/[id]/page.js +4 -4
  94. package/app/apps/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  95. package/app/apps/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  96. package/app/apps/web/.next/server/app/sessions/page/build-manifest.json +2 -2
  97. package/app/apps/web/.next/server/app/sessions/page.js +4 -4
  98. package/app/apps/web/.next/server/app/sessions/page.js.nft.json +1 -1
  99. package/app/apps/web/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  100. package/app/apps/web/.next/server/app/settings/page/build-manifest.json +2 -2
  101. package/app/apps/web/.next/server/app/settings/page.js +3 -3
  102. package/app/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
  103. package/app/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  104. package/app/apps/web/.next/server/app/usage/page/build-manifest.json +2 -2
  105. package/app/apps/web/.next/server/app/usage/page.js +3 -3
  106. package/app/apps/web/.next/server/app/usage/page.js.nft.json +1 -1
  107. package/app/apps/web/.next/server/app/usage/page_client-reference-manifest.js +1 -1
  108. package/app/apps/web/.next/server/app-paths-manifest.json +1 -0
  109. package/app/apps/web/.next/server/chunks/{[externals]__0o43ejh._.js → [externals]__0fpbr8-._.js} +2 -2
  110. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0-vgrh1._.js +1 -1
  111. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0.z48ue._.js +3 -0
  112. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0dctov1._.js +5 -0
  113. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0e8n_x4._.js +1 -1
  114. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0jprdks._.js +2 -2
  115. package/app/apps/web/.next/server/chunks/node_modules_next_036my~r._.js +1 -1
  116. package/app/apps/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0ck.78s.js +1 -1
  117. package/app/apps/web/.next/server/chunks/packages_09hmrqx._.js +3 -0
  118. package/app/apps/web/.next/server/chunks/packages_118y1lp._.js +3 -0
  119. package/app/apps/web/.next/server/chunks/packages_entries_dist_node_0bckr7-.js +26 -17
  120. package/app/apps/web/.next/server/chunks/packages_parser_dist_fs_122oe0-.js +3 -0
  121. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0vvlth5._.js → [root-of-the-server]__02~v50d._.js} +2 -2
  122. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__04eq6z2._.js +3 -0
  123. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__09rjz7_._.js +3 -0
  124. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0e.gxk3._.js +3 -0
  125. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0p1x6v2._.js +3 -0
  126. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0r4tks8._.js +1 -1
  127. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0rvzdnx._.js +1 -1
  128. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0sp6.jt._.js +3 -0
  129. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0tejjy_._.js +3 -0
  130. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0w52fbc._.js +3 -3
  131. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0wwa6gh._.js +1 -1
  132. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0ytdqxt._.js +3 -0
  133. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0yv-a8z._.js +12 -0
  134. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__10~b4bf._.js +12 -0
  135. package/app/apps/web/.next/server/chunks/ssr/_02s1n-x._.js +1 -1
  136. package/app/apps/web/.next/server/chunks/ssr/_0woap-3._.js +1 -1
  137. package/app/apps/web/.next/server/chunks/ssr/_0xu2pvc._.js +1 -1
  138. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_changelog_page_actions_12_04gy.js +3 -0
  139. package/app/apps/web/.next/server/chunks/ssr/apps_web_app_day_[date]_day-view_tsx_0wjoe1u._.js +1 -1
  140. package/app/apps/web/.next/server/chunks/ssr/apps_web_app_settings_ai-features-form_tsx_01p699p._.js +1 -1
  141. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0ly1xes._.js +1 -1
  142. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0txtsv5._.js +1 -1
  143. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_changelog-mark-read_tsx_0hm41sv._.js +3 -0
  144. package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_0m67-xi._.js +3 -0
  145. package/app/apps/web/.next/server/chunks/ssr/{node_modules_0i2xw~e._.js → node_modules_0fx6-.x._.js} +2 -2
  146. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0uwo3v3.js +4 -0
  147. package/app/apps/web/.next/server/chunks/ssr/packages_entries_dist_node_0_271yr.js +1 -1
  148. package/app/apps/web/.next/server/chunks/ssr/packages_parser_dist_10_oegc._.js +3 -0
  149. package/app/apps/web/.next/server/middleware-build-manifest.js +5 -5
  150. package/app/apps/web/.next/server/pages/500.html +1 -1
  151. package/app/apps/web/.next/server/server-reference-manifest.js +1 -1
  152. package/app/apps/web/.next/server/server-reference-manifest.json +1 -1
  153. package/app/apps/web/.next/static/chunks/0.3mqbj24kwtc.js +6 -0
  154. package/app/apps/web/.next/static/chunks/05b689hq3x49w.js +1 -0
  155. package/app/apps/web/.next/static/chunks/07-fq4im3pmjp.js +4 -0
  156. package/app/apps/web/.next/static/chunks/{0mykrrv810ra-.js → 0kjot8367asxe.js} +1 -1
  157. package/app/apps/web/.next/static/chunks/0n3-prt61k7pr.js +1 -0
  158. package/app/apps/web/.next/static/chunks/{0_7303jr0sf0w.js → 0q2vd~aj.1hpz.js} +3 -3
  159. package/app/apps/web/.next/static/chunks/0qmh5da6gfm56.js +1 -0
  160. package/app/apps/web/.next/static/chunks/{0k9pksi_i.odf.js → 111-bgx08j2nq.js} +1 -1
  161. package/app/apps/web/.next/static/chunks/179_t_igg8ghh.js +14 -0
  162. package/app/apps/web/.next/static/chunks/{turbopack-0_p36yduv.waj.js → turbopack-00w.w1u3c~d-6.js} +1 -1
  163. package/app/apps/web/app/api/ask/route.ts +1 -1
  164. package/app/apps/web/app/api/digest/week/[startDate]/route.ts +2 -1
  165. package/app/apps/web/app/api/settings/route.ts +1 -0
  166. package/app/apps/web/app/changelog/page.tsx +238 -0
  167. package/app/apps/web/app/insights/[key]/page.tsx +8 -2
  168. package/app/apps/web/app/layout.tsx +12 -7
  169. package/app/apps/web/app/page.tsx +19 -15
  170. package/app/apps/web/app/parallelism/gantt-chart.tsx +7 -18
  171. package/app/apps/web/app/projects/projects-view.tsx +3 -0
  172. package/app/apps/web/app/sessions/[id]/session-view.tsx +168 -41
  173. package/app/apps/web/app/sessions/page.tsx +22 -12
  174. package/app/apps/web/app/sessions/sessions-grid.tsx +82 -9
  175. package/app/apps/web/app/settings/ai-features-form.tsx +20 -1
  176. package/app/apps/web/app/settings/page.tsx +1 -0
  177. package/app/apps/web/app/usage/page.tsx +161 -52
  178. package/app/apps/web/components/agent-badge.tsx +43 -0
  179. package/app/apps/web/components/agent-icon.tsx +38 -0
  180. package/app/apps/web/components/agent-mix-chip.tsx +42 -0
  181. package/app/apps/web/components/{ask-claude.tsx → ask.tsx} +13 -12
  182. package/app/apps/web/components/changelog-icon.tsx +62 -0
  183. package/app/apps/web/components/changelog-mark-read.tsx +12 -0
  184. package/app/apps/web/components/day-digest.tsx +1 -1
  185. package/app/apps/web/components/live-sessions-widget.tsx +5 -1
  186. package/app/apps/web/components/outcome-pill.tsx +7 -2
  187. package/app/apps/web/components/sidebar.tsx +8 -1
  188. package/app/apps/web/components/week-digest.tsx +2 -0
  189. package/app/apps/web/lib/ai/session-summary.ts +1 -1
  190. package/app/apps/web/lib/calibration-data.ts +4 -64
  191. package/app/apps/web/lib/changelog-data.generated.ts +3 -0
  192. package/app/apps/web/lib/changelog.ts +67 -0
  193. package/app/apps/web/lib/cycle-peaks.test.ts +185 -0
  194. package/app/apps/web/lib/cycle-peaks.ts +104 -0
  195. package/app/apps/web/lib/data.ts +7 -8
  196. package/app/apps/web/lib/date-range.ts +9 -2
  197. package/app/apps/web/lib/usage-data.ts +24 -1
  198. package/app/apps/web/lib/validate-settings.ts +1 -0
  199. package/app/apps/web/package.json +1 -1
  200. package/app/apps/web/tsconfig.tsbuildinfo +1 -1
  201. package/dist/daemon-worker.js +3162 -2354
  202. package/dist/index.js +4419 -3742
  203. package/package.json +1 -1
  204. package/app/apps/web/.next/server/chunks/[externals]__0_xztrf._.js +0 -3
  205. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0455vu3._.js +0 -5
  206. package/app/apps/web/.next/server/chunks/packages_0e7q9u_._.js +0 -3
  207. package/app/apps/web/.next/server/chunks/packages_0n6p2ot._.js +0 -3
  208. package/app/apps/web/.next/server/chunks/packages_parser_dist_fs_0bc7ptm.js +0 -3
  209. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0-94ji~._.js +0 -3
  210. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0_6.inc._.js +0 -3
  211. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0gio_ck._.js +0 -3
  212. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0jdyefm._.js +0 -12
  213. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0ln9jsw._.js +0 -3
  214. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0u5d7de._.js +0 -12
  215. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0~_8vff._.js +0 -3
  216. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__11v.eqw._.js +0 -3
  217. package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_usage-data_ts_0xtv99n._.js +0 -3
  218. package/app/apps/web/.next/server/chunks/ssr/packages_parser_dist_0-jvt~a._.js +0 -3
  219. package/app/apps/web/.next/static/chunks/04m3slg_5ph02.js +0 -1
  220. package/app/apps/web/.next/static/chunks/0coa1800xqgfj.js +0 -1
  221. package/app/apps/web/.next/static/chunks/0k1psab.bybh9.js +0 -14
  222. package/app/apps/web/.next/static/chunks/0xfu09fn_358k.js +0 -4
  223. package/app/apps/web/.next/static/chunks/17u2ww8ya5dv1.js +0 -6
  224. /package/app/apps/web/.next/static/{2jcMG-92q2XKei8dN7BMd → tiK9aMHXkgnKLNmxj9J1P}/_buildManifest.js +0 -0
  225. /package/app/apps/web/.next/static/{2jcMG-92q2XKei8dN7BMd → tiK9aMHXkgnKLNmxj9J1P}/_clientMiddlewareManifest.js +0 -0
  226. /package/app/apps/web/.next/static/{2jcMG-92q2XKei8dN7BMd → tiK9aMHXkgnKLNmxj9J1P}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},71306,(a,b,c)=>{b.exports=a.r(18622)},79847,a=>{a.n(a.i(3343))},9185,a=>{a.n(a.i(29432))},72842,a=>{a.n(a.i(75164))},54897,a=>{a.n(a.i(30106))},56157,a=>{a.n(a.i(18970))},94331,a=>{a.n(a.i(60644))},15988,a=>{a.n(a.i(56952))},25766,a=>{a.n(a.i(77341))},29725,a=>{a.n(a.i(94290))},5785,a=>{a.n(a.i(90588))},74793,a=>{a.n(a.i(33169))},85826,a=>{a.n(a.i(37111))},21565,a=>{a.n(a.i(41763))},65911,a=>{a.n(a.i(8950))},25128,a=>{a.n(a.i(91562))},40781,a=>{a.n(a.i(49670))},69411,a=>{a.n(a.i(75700))},63081,a=>{a.n(a.i(276))},62837,a=>{a.n(a.i(40795))},34607,a=>{a.n(a.i(11614))},96338,a=>{a.n(a.i(21751))},50642,a=>{a.n(a.i(12213))},32242,a=>{a.n(a.i(22693))},88530,a=>{a.n(a.i(10531))},8583,a=>{a.n(a.i(1082))},38534,a=>{a.n(a.i(98175))},70408,a=>{a.n(a.i(9095))},22922,a=>{a.n(a.i(96772))},78294,a=>{a.n(a.i(71717))},16625,a=>{a.n(a.i(85034))},88648,a=>{a.n(a.i(68113))},51914,a=>{a.n(a.i(66482))},25466,a=>{a.n(a.i(91505))},74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},29884,a=>{"use strict";a.s(["AiFeaturesForm",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call AiFeaturesForm() from the server but AiFeaturesForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/app/settings/ai-features-form.tsx <module evaluation>","AiFeaturesForm")},32669,a=>{"use strict";a.s(["AiFeaturesForm",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call AiFeaturesForm() from the server but AiFeaturesForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/app/settings/ai-features-form.tsx","AiFeaturesForm")},60496,a=>{"use strict";a.i(29884);var b=a.i(32669);a.n(b)},50910,a=>{"use strict";var b=a.i(7997);a.i(37075);var c=a.i(68787),d=a.i(60496);a.s(["default",0,function(){let a=(0,c.readSettings)();return(0,b.jsxs)("main",{className:"mx-auto max-w-2xl p-6 space-y-8",children:[(0,b.jsx)("h1",{className:"text-2xl font-semibold",children:"Fleetlens Settings"}),(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:"text-lg font-medium mb-2",children:"AI Features"}),(0,b.jsxs)("p",{className:"text-sm text-gray-500 mb-4",children:["When enabled, Fleetlens synthesizes daily digests and per-entry narratives by spawning your local ",(0,b.jsx)("code",{children:"claude"})," CLI (uses your existing Claude Code auth — no API key required)."]}),(0,b.jsx)(d.AiFeaturesForm,{initial:{enabled:a.ai_features.enabled,autoBackfillLastWeek:a.ai_features.autoBackfillLastWeek}})]})]})}])},58019,a=>{a.n(a.i(50910))}];
1
+ module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},71306,(a,b,c)=>{b.exports=a.r(18622)},79847,a=>{a.n(a.i(3343))},9185,a=>{a.n(a.i(29432))},72842,a=>{a.n(a.i(75164))},54897,a=>{a.n(a.i(30106))},56157,a=>{a.n(a.i(18970))},94331,a=>{a.n(a.i(60644))},15988,a=>{a.n(a.i(56952))},25766,a=>{a.n(a.i(77341))},29725,a=>{a.n(a.i(94290))},5785,a=>{a.n(a.i(90588))},74793,a=>{a.n(a.i(33169))},85826,a=>{a.n(a.i(37111))},21565,a=>{a.n(a.i(41763))},65911,a=>{a.n(a.i(8950))},25128,a=>{a.n(a.i(91562))},40781,a=>{a.n(a.i(49670))},69411,a=>{a.n(a.i(75700))},63081,a=>{a.n(a.i(276))},62837,a=>{a.n(a.i(40795))},34607,a=>{a.n(a.i(11614))},96338,a=>{a.n(a.i(21751))},50642,a=>{a.n(a.i(12213))},32242,a=>{a.n(a.i(22693))},88530,a=>{a.n(a.i(10531))},8583,a=>{a.n(a.i(1082))},38534,a=>{a.n(a.i(98175))},70408,a=>{a.n(a.i(9095))},22922,a=>{a.n(a.i(96772))},78294,a=>{a.n(a.i(71717))},16625,a=>{a.n(a.i(85034))},88648,a=>{a.n(a.i(68113))},51914,a=>{a.n(a.i(66482))},25466,a=>{a.n(a.i(91505))},74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},29884,a=>{"use strict";a.s(["AiFeaturesForm",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call AiFeaturesForm() from the server but AiFeaturesForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/app/settings/ai-features-form.tsx <module evaluation>","AiFeaturesForm")},32669,a=>{"use strict";a.s(["AiFeaturesForm",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call AiFeaturesForm() from the server but AiFeaturesForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/app/settings/ai-features-form.tsx","AiFeaturesForm")},60496,a=>{"use strict";a.i(29884);var b=a.i(32669);a.n(b)},50910,a=>{"use strict";var b=a.i(7997);a.i(37075);var c=a.i(68787),d=a.i(60496);a.s(["default",0,function(){let a=(0,c.readSettings)();return(0,b.jsxs)("main",{className:"mx-auto max-w-2xl p-6 space-y-8",children:[(0,b.jsx)("h1",{className:"text-2xl font-semibold",children:"Fleetlens Settings"}),(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:"text-lg font-medium mb-2",children:"AI Features"}),(0,b.jsxs)("p",{className:"text-sm text-gray-500 mb-4",children:["When enabled, Fleetlens synthesizes daily digests and per-entry narratives by spawning your local ",(0,b.jsx)("code",{children:"claude"})," CLI (uses your existing Claude Code auth — no API key required)."]}),(0,b.jsx)(d.AiFeaturesForm,{initial:{enabled:a.ai_features.enabled,autoBackfillLastWeek:a.ai_features.autoBackfillLastWeek,autoBackfillYesterday:a.ai_features.autoBackfillYesterday}})]})]})}])},58019,a=>{a.n(a.i(50910))}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0wwa6gh._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},42602,(a,b,c)=>{"use strict";b.exports=a.r(18622)},72131,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].React},87924,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactJsxRuntime},9270,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.AppRouterContext},38783,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactServerDOMTurbopackClient},36313,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.HooksClientContext},18341,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.ServerInsertedHtml},2591,a=>{"use strict";var b=a.i(72131);a.s(["usePersistentBoolean",0,function(a,c){let[d,e]=(0,b.useState)(c),[f,g]=(0,b.useState)(!1);return(0,b.useEffect)(()=>{try{let b=window.localStorage.getItem(a);"1"===b?e(!0):"0"===b&&e(!1)}catch{}g(!0)},[a]),(0,b.useEffect)(()=>{let b=b=>{let c=b.detail;c?.key===a&&"boolean"==typeof c.value&&e(c.value)},c=b=>{b.key===a&&("1"===b.newValue?e(!0):"0"===b.newValue&&e(!1))};return window.addEventListener("cclens:persistent-boolean",b),window.addEventListener("storage",c),()=>{window.removeEventListener("cclens:persistent-boolean",b),window.removeEventListener("storage",c)}},[a]),[d,(0,b.useCallback)(b=>{e(b);try{window.localStorage.setItem(a,b?"1":"0")}catch{}window.dispatchEvent(new CustomEvent("cclens:persistent-boolean",{detail:{key:a,value:b}}))},[a]),f]}])},99309,a=>{"use strict";var b=a.i(87924);a.i(99417);var c=a.i(69176);a.s(["AgentBadge",0,function({agent:a}){if(!a||"claude-code"===a)return null;let d=(0,c.getAgentMetadata)(a);return d?(0,b.jsx)("span",{style:{display:"inline-flex",alignItems:"center",borderRadius:4,padding:"2px 6px",fontSize:10,letterSpacing:"0.04em",textTransform:"uppercase",whiteSpace:"nowrap",fontWeight:600,color:d.accentColor,background:`color-mix(in srgb, ${d.accentColor} 12%, transparent)`,border:`1px solid color-mix(in srgb, ${d.accentColor} 30%, transparent)`},title:`Source: ${d.displayName}`,children:d.shortLabel}):null}])},33441,a=>{"use strict";let b=(0,a.i(70106).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["Check",0,b],33441)},87532,a=>{"use strict";let b=(0,a.i(70106).default)("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);a.s(["Search",0,b],87532)},76285,a=>{"use strict";var b=a.i(87924),c=a.i(38246);let d={display:"inline-flex",alignItems:"center",borderRadius:4,padding:"2px 6px",fontSize:10,letterSpacing:"0.04em",textTransform:"uppercase",whiteSpace:"nowrap"};a.s(["TeamBadge",0,function({session:a,linkable:e=!0}){if(!a.teamName)return null;let f=!0===a.isTeamLead,g=void 0!==a.agentName;return f||g?f&&e?(0,b.jsx)(c.default,{href:`/sessions/${a.id}`,style:{...d,fontWeight:600,background:"var(--af-warning-subtle)",color:"var(--af-warning)",border:"1px solid var(--af-warning-subtle)",textDecoration:"none"},title:`Team lead — ${a.teamName}`,children:"Team Lead"}):f?(0,b.jsx)("span",{style:{...d,fontWeight:600,background:"var(--af-warning-subtle)",color:"var(--af-warning)",border:"1px solid var(--af-warning-subtle)"},title:`Team lead — ${a.teamName}`,children:"Team Lead"}):(0,b.jsx)("span",{style:{...d,fontWeight:500,background:"var(--af-surface-hover)",color:"var(--af-text-tertiary)",border:"1px solid var(--af-border-subtle)"},title:`Team member — ${a.teamName} \xb7 ${a.agentName}`,children:"Team Member"}):null}])},2913,a=>{"use strict";let b=/^##\s+\[([^\]]+)\](?:\s+[—\-–]\s+(\S+))?\s*$/,c=/^###\s+(.+?)\s*$/,d=/^[-*]\s+(.+?)\s*$/,e=function(a){let e=a.split(/\r?\n/),f=[],g=null,h=null,i=[];function j(){h&&i.length>0&&(h.bullets.push(i.join(" ").trim()),i=[])}for(let a of e){let e=b.exec(a);if(e){j(),h=null,g={version:e[1].trim(),date:e[2]?.trim()??null,sections:[]},f.push(g);continue}if(!g)continue;let k=c.exec(a);if(k){j(),h={kind:k[1].trim(),bullets:[]},g.sections.push(h);continue}let l=d.exec(a);if(l){j(),i=[l[1]];continue}i.length>0&&a.trim().length>0&&i.push(a.trim())}return j(),f}("# Changelog\n\nAll notable user-facing changes to the Fleetlens CLI (`fleetlens` on npm) are\nrecorded here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).\nThe team-server has its own log at `packages/team-server/CHANGELOG.md`.\n\n## [0.7.1] — 2026-05-07\n\n### Fixed\n- Cycle-peaks trend no longer renders two bars labeled the same day. When Anthropic's rolling 7-day window slid its anchor between consecutive polls, the daemon's bucketer (hour-rounded) recorded both reset boundaries as distinct cycles. They're now merged within a 12 h tolerance — same fix in `apps/web/lib/cycle-peaks.ts` (used by `/usage`) and in `packages/cli/src/team/sync.ts` (the daemon's team-server push), so both the personal `/usage` chart and the team-server's plan-utilization view stay consistent. 5-hour cycles keep no merge tolerance (their anchor is stable; merging would collapse legitimate distinct cycles).\n\n## [0.6.4] — 2026-05-04\n\n### Fixed\n- Cached calibration events per-file so `/usage` warm renders complete in well under a second on large session histories.\n\n## [0.6.3] — 2026-05-04\n\n### Fixed\n- Dropped poisoned auto-week locks left behind by interrupted runs; backfill now gates on the live pipeline lock instead.\n\n## [0.6.2] — 2026-05-04\n\n### Added\n- Last week's digest auto-generates on launch when AI features are on. Disable in Settings → AI features.\n\n## [0.6.1] — 2026-05-04\n\n### Changed\n- Smaller install size — published bundle no longer drags in unused workspace metadata.\n\n## [0.6.0] — 2026-04-30\n\n### Added\n- V2 perception layer. Daily, weekly, and monthly digests synthesized from per-session entries via a strict hierarchical pipeline (entry → day → week → month). Past-period digests are immutable on disk; current-period digests use a 10-min in-memory TTL.\n- `/insights` route with on-demand week and month digest generation, picker history, and force-regen.\n- `fleetlens digest day | week | month [--json]` — CLI surface that reproduces the same digests served at `/insights`.\n- `fleetlens entries [--day | --session | --all] [--json]` — inspect the per-session entry primitive.\n\n### Changed\n- Renamed \"active time\" to \"agent time\" across the dashboard and CLI for clarity.\n\n## [0.4.1] — 2026-04-23\n\n### Added\n- Concurrency view on `/parallelism` page. Bursts colored teal for same-project and purple for cross-project (the genuinely interesting fleet-work signal).\n- Plan utilization sparkline on the sidebar, fed by the usage daemon's 5-min snapshots.\n\n### Fixed\n- Auto-update no longer leaves a zombie web server on the old binary; both server and daemon are torn down before re-exec.\n\n## [0.4.0] — 2026-04-18\n\n### Added\n- Usage daemon (`fleetlens daemon …`) polls `/api/oauth/usage` every 5 min and appends snapshots to `~/.cclens/usage.jsonl`. `fleetlens start` and `fleetlens stop` manage server + daemon together.\n- `fleetlens usage --history` for inspecting past plan utilization.\n\n## [0.3.0] — 2026-04-10\n\n### Added\n- Project rollups with worktree aggregation. Sessions inside `<project>/.worktrees/<name>` roll up under their parent canonical project with a `+N wt` badge.\n- Pinned projects in the sidebar (per-browser via localStorage).\n\n## [0.2.0] — 2026-04-01\n\n### Changed\n- Active-segment computation now uses all timestamped events (system + summary + sidechain + conversational) instead of conversational-only. Earlier filter undercounted by up to 100x on tool-heavy sessions.\n\n## [0.1.0] — 2026-03-15\n\n### Added\n- Initial release. Local-only dashboard for Claude Code sessions: timeline, projects, daily activity bucketing, parallelism detection, per-model cost estimation. Reads JSONL transcripts from `~/.claude/projects/`.\n");e[0]?.version,a.s(["STORAGE_KEY",0,"cclens:changelog-last-seen"],2913)},99417,69176,a=>{"use strict";let b=[{kind:"claude-code",displayName:"Claude Code",shortLabel:"Claude",accentColor:"var(--af-accent)",iconChar:"✦"},{kind:"codex",displayName:"Codex (OpenAI)",shortLabel:"Codex",accentColor:"rgb(16, 163, 127)",iconChar:"◆"}],c=new Set(b.map(a=>a.kind));a.s(["getAgentMetadata",0,function(a){return b.find(b=>b.kind===a)},"isAgentKind",0,function(a){return"string"==typeof a&&c.has(a)}],69176),a.s([],99417)},44220,2405,a=>{"use strict";var b=a.i(87924),c=a.i(38246);a.i(99417);var d=a.i(69176);function e({agent:a,size:c=11,title:f}){if(!a)return null;let g=(0,d.getAgentMetadata)(a);return g?(0,b.jsx)("span",{"aria-hidden":!0,title:f??g.displayName,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,width:c+2,height:c+2,fontSize:c,lineHeight:1,color:g.accentColor},children:g.iconChar}):null}a.s(["AgentIcon",0,e],2405);let f={shipped:{bg:"rgba(72, 187, 120, 0.12)",fg:"#48bb78",label:"Shipped",icon:"🚀"},partial:{bg:"rgba(66, 153, 225, 0.12)",fg:"#4299e1",label:"Partial",icon:"🔨"},blocked:{bg:"rgba(245, 101, 101, 0.12)",fg:"#f56565",label:"Blocked",icon:"🚧"},exploratory:{bg:"rgba(160, 174, 192, 0.12)",fg:"#a0aec0",label:"Exploratory",icon:"🧭"},trivial:{bg:"rgba(203, 213, 224, 0.12)",fg:"#a0aec0",label:"Warmup",icon:"💤"},idle:{bg:"rgba(203, 213, 224, 0.12)",fg:"#a0aec0",label:"Idle",icon:"—"}},g={sm:{fontSize:9,padding:"1px 6px",iconGap:3,borderRadius:99},md:{fontSize:10,padding:"2px 8px",iconGap:4,borderRadius:99},lg:{fontSize:11,padding:"3px 10px",iconGap:5,borderRadius:99}},h={shipped:6,partial:5,blocked:4,exploratory:3,trivial:2,idle:1};a.s(["OUTCOME_STYLES",0,f,"OutcomePill",0,function(a){let d=g[a.size??"md"],h=d.fontSize+1;if("pending"in a&&a.pending){let f={display:"inline-flex",alignItems:"center",gap:d.iconGap,padding:d.padding,borderRadius:d.borderRadius,fontSize:d.fontSize,fontWeight:600,background:"rgba(160, 174, 192, 0.08)",color:"var(--af-text-tertiary)",border:"1px dashed var(--af-border-subtle)",textDecoration:"none",whiteSpace:"nowrap"};return(0,b.jsxs)(c.default,{href:`/digest/${a.localDay}`,style:f,title:`Generate ${a.localDay} digest →`,children:[a.agent&&(0,b.jsx)(e,{agent:a.agent,size:h}),(0,b.jsx)("span",{"aria-hidden":!0,style:{lineHeight:1},children:"⋯"}),(0,b.jsx)("span",{children:"pending"})]})}let i=f[a.outcome],j=a.label??"both",k={display:"inline-flex",alignItems:"center",gap:d.iconGap,padding:d.padding,borderRadius:d.borderRadius,fontSize:d.fontSize,fontWeight:600,background:i.bg,color:i.fg,whiteSpace:"nowrap"};return(0,b.jsxs)("span",{style:k,title:i.label,children:[a.agent&&(0,b.jsx)(e,{agent:a.agent,size:h}),("icon"===j||"both"===j)&&(0,b.jsx)("span",{"aria-hidden":!0,style:{lineHeight:1},children:i.icon}),("text"===j||"both"===j)&&(0,b.jsx)("span",{children:i.label})]})},"outcomePriority",0,function(a){return a?h[a]:0}],44220)},3444,a=>{"use strict";let b={input:1,output:5,cacheRead:.1,cacheWrite:1.25},c={input:3,output:15,cacheRead:.3,cacheWrite:3.75},d={input:5,output:25,cacheRead:.5,cacheWrite:6.25};a.s(["estimateCost",0,function(a,e){let f=function(a){if(!a)return d;let e=a.toLowerCase();return e.includes("haiku")?b:e.includes("sonnet")?c:d}(e);return a.input/1e6*f.input+a.output/1e6*f.output+a.cacheRead/1e6*f.cacheRead+a.cacheWrite/1e6*f.cacheWrite},"formatCost",0,function(a){return a<.01?"<$0.01":a<1||a<100?`$${a.toFixed(2)}`:a<1e3?`$${a.toFixed(1)}`:`$${a.toLocaleString(void 0,{maximumFractionDigits:0})}`},"formatDuration",0,function(a){if(void 0===a)return"—";if(a<1e3)return`${a}ms`;let b=Math.round(a/1e3);if(b<60)return`${b}s`;let c=Math.floor(b/60),d=b%60;if(c<60)return d?`${c}m ${d}s`:`${c}m`;let e=Math.floor(c/60),f=c%60;return f?`${e}h ${f}m`:`${e}h`},"formatGap",0,function(a){if(a<1e3)return`${a}ms`;let b=a/1e3;if(b<60)return`${b.toFixed(1)}s`;let c=Math.floor(b/60);if(c<60){let a=Math.round(b%60);return`${c}m ${a}s`}let d=Math.floor(c/60),e=c%60;if(d<24)return e?`${d}h ${e}m`:`${d}h`;let f=Math.floor(d/24),g=d%24;return g?`${f}d ${g}h`:`${f}d`},"formatOffset",0,function(a){if(void 0===a||a<0)return"—";let b=Math.floor(a/1e3),c=Math.floor(b/3600),d=String(Math.floor(b%3600/60)).padStart(2,"0"),e=String(b%60).padStart(2,"0");return`${c}:${d}:${e}`},"formatRelative",0,function(a){let b=Date.parse(a);if(Number.isNaN(b))return a;let c=Math.round((Date.now()-b)/1e3);if(c<60)return`${c}s ago`;let d=Math.round(c/60);if(d<60)return`${d}m ago`;let e=Math.round(d/60);if(e<24)return`${e}h ago`;let f=Math.round(e/24);return`${f}d ago`},"formatTokens",0,function(a){return a<1e3?String(a):a<1e4?(a/1e3).toFixed(1)+"k":a<1e6?Math.round(a/1e3)+"k":a<1e7?(a/1e6).toFixed(2)+"M":(a/1e6).toFixed(1)+"M"},"prettyProjectName",0,function(a,b=35){let c=a.split("/").filter(Boolean),d=c.lastIndexOf(".worktrees");if(d>0&&d<c.length-1){let a=c[d-1],e=c[d+1],f=`${a}/${e}`;return f.length<=b?f:"…"+f.slice(f.length-b+1)}let e=c.length>=2?`${c[c.length-2]}/${c[c.length-1]}`:c[c.length-1]??a;return e.length<=b?e:"…"+e.slice(e.length-b+1)},"shortId",0,function(a){return a.length<=10?a:a.slice(0,6)+"…"+a.slice(-4)}])},41710,a=>{"use strict";let b=(0,a.i(70106).default)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);a.s(["Clock",0,b],41710)},69439,71727,a=>{"use strict";var b=a.i(70106);let c=(0,b.default)("Lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]);a.s(["Lightbulb",0,c],69439);let d=(0,b.default)("Radio",[["path",{d:"M4.9 19.1C1 15.2 1 8.8 4.9 4.9",key:"1vaf9d"}],["path",{d:"M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5",key:"u1ii0m"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5",key:"1j5fej"}],["path",{d:"M19.1 4.9C23 8.8 23 15.1 19.1 19",key:"10b0cb"}]]);a.s(["Radio",0,d],71727)},96221,a=>{"use strict";let b=(0,a.i(70106).default)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["Loader2",0,b],96221)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0ytdqxt._.js.map
@@ -0,0 +1,12 @@
1
+ module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},71306,(a,b,c)=>{b.exports=a.r(18622)},79847,a=>{a.n(a.i(3343))},9185,a=>{a.n(a.i(29432))},72842,a=>{a.n(a.i(75164))},54897,a=>{a.n(a.i(30106))},56157,a=>{a.n(a.i(18970))},94331,a=>{a.n(a.i(60644))},15988,a=>{a.n(a.i(56952))},25766,a=>{a.n(a.i(77341))},29725,a=>{a.n(a.i(94290))},5785,a=>{a.n(a.i(90588))},74793,a=>{a.n(a.i(33169))},85826,a=>{a.n(a.i(37111))},21565,a=>{a.n(a.i(41763))},65911,a=>{a.n(a.i(8950))},25128,a=>{a.n(a.i(91562))},40781,a=>{a.n(a.i(49670))},69411,a=>{a.n(a.i(75700))},63081,a=>{a.n(a.i(276))},62837,a=>{a.n(a.i(40795))},34607,a=>{a.n(a.i(11614))},96338,a=>{a.n(a.i(21751))},50642,a=>{a.n(a.i(12213))},32242,a=>{a.n(a.i(22693))},88530,a=>{a.n(a.i(10531))},8583,a=>{a.n(a.i(1082))},38534,a=>{a.n(a.i(98175))},70408,a=>{a.n(a.i(9095))},22922,a=>{a.n(a.i(96772))},78294,a=>{a.n(a.i(71717))},16625,a=>{a.n(a.i(85034))},88648,a=>{a.n(a.i(68113))},51914,a=>{a.n(a.i(66482))},25466,a=>{a.n(a.i(91505))},74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},85160,a=>{"use strict";function b(a){let b=new Date(a),c=b.getFullYear(),d=String(b.getMonth()+1).padStart(2,"0"),e=String(b.getDate()).padStart(2,"0");return`${c}-${d}-${e}`}function c(a=Date.now()){return b(a)}a.i(44104);let d=/^\d{4}-\d{2}-\d{2}$/;function e(a=Date.now()){var d;let f,g;return d=c(a),g=(f=new Date(`${d}T00:00:00`)).getDay(),f.setDate(f.getDate()+(0===g?-6:1-g)),b(f.getTime())}a.s(["currentWeekMonday",0,e,"currentYearMonth",0,function(a=Date.now()){return c(a).slice(0,7)},"isValidDate",0,function(a){return d.test(a)},"lastCompletedWeekMonday",0,function(a=Date.now()){let c=e(a),d=new Date(`${c}T00:00:00`);return d.setDate(d.getDate()-7),b(d.getTime())},"toLocalDay",0,b,"todayLocal",0,c,"yesterdayLocal",0,function(a=Date.now()){return b(a-864e5)}])},1269,a=>{"use strict";var b=a.i(717);let c=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim();var d={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let e=(0,b.forwardRef)(({color:a="currentColor",size:e=24,strokeWidth:f=2,absoluteStrokeWidth:g,className:h="",children:i,iconNode:j,...k},l)=>(0,b.createElement)("svg",{ref:l,...d,width:e,height:e,stroke:a,strokeWidth:g?24*Number(f)/Number(e):f,className:c("lucide",h),...k},[...j.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(i)?i:[i]]));a.s(["default",0,(a,d)=>{let f=(0,b.forwardRef)(({className:f,...g},h)=>(0,b.createElement)(e,{ref:h,iconNode:d,className:c(`lucide-${a.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,f),...g}));return f.displayName=`${a}`,f}],1269)},87067,a=>{"use strict";let b={input:1,output:5,cacheRead:.1,cacheWrite:1.25},c={input:3,output:15,cacheRead:.3,cacheWrite:3.75},d={input:5,output:25,cacheRead:.5,cacheWrite:6.25};a.s(["estimateCostMulti",0,function(a){return a.reduce((a,e)=>{var f;let g;return a+(f=e.totalUsage,g=function(a){if(!a)return d;let e=a.toLowerCase();return e.includes("haiku")?b:e.includes("sonnet")?c:d}(e.model),f.input/1e6*g.input+f.output/1e6*g.output+f.cacheRead/1e6*g.cacheRead+f.cacheWrite/1e6*g.cacheWrite)},0)},"formatCost",0,function(a){return a<.01?"<$0.01":a<1||a<100?`$${a.toFixed(2)}`:a<1e3?`$${a.toFixed(1)}`:`$${a.toLocaleString(void 0,{maximumFractionDigits:0})}`},"formatDuration",0,function(a){if(void 0===a)return"—";if(a<1e3)return`${a}ms`;let b=Math.round(a/1e3);if(b<60)return`${b}s`;let c=Math.floor(b/60),d=b%60;if(c<60)return d?`${c}m ${d}s`:`${c}m`;let e=Math.floor(c/60),f=c%60;return f?`${e}h ${f}m`:`${e}h`},"formatGap",0,function(a){if(a<1e3)return`${a}ms`;let b=a/1e3;if(b<60)return`${b.toFixed(1)}s`;let c=Math.floor(b/60);if(c<60){let a=Math.round(b%60);return`${c}m ${a}s`}let d=Math.floor(c/60),e=c%60;if(d<24)return e?`${d}h ${e}m`:`${d}h`;let f=Math.floor(d/24),g=d%24;return g?`${f}d ${g}h`:`${f}d`},"formatRelative",0,function(a){let b=Date.parse(a);if(Number.isNaN(b))return a;let c=Math.round((Date.now()-b)/1e3);if(c<60)return`${c}s ago`;let d=Math.round(c/60);if(d<60)return`${d}m ago`;let e=Math.round(d/60);if(e<24)return`${e}h ago`;let f=Math.round(e/24);return`${f}d ago`},"formatTokens",0,function(a){return a<1e3?String(a):a<1e4?(a/1e3).toFixed(1)+"k":a<1e6?Math.round(a/1e3)+"k":a<1e7?(a/1e6).toFixed(2)+"M":(a/1e6).toFixed(1)+"M"},"prettyProjectName",0,function(a,b=35){let c=a.split("/").filter(Boolean),d=c.lastIndexOf(".worktrees");if(d>0&&d<c.length-1){let a=c[d-1],e=c[d+1],f=`${a}/${e}`;return f.length<=b?f:"…"+f.slice(f.length-b+1)}let e=c.length>=2?`${c[c.length-2]}/${c[c.length-1]}`:c[c.length-1]??a;return e.length<=b?e:"…"+e.slice(e.length-b+1)}])},83885,a=>{"use strict";a.s(["Heatmap",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Heatmap() from the server but Heatmap is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/heatmap.tsx <module evaluation>","Heatmap")},44467,a=>{"use strict";a.s(["Heatmap",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Heatmap() from the server but Heatmap is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/heatmap.tsx","Heatmap")},54572,a=>{"use strict";a.i(83885);var b=a.i(44467);a.n(b)},70301,a=>{"use strict";a.s(["ActivityChart",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call ActivityChart() from the server but ActivityChart is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/activity-chart.tsx <module evaluation>","ActivityChart")},37964,a=>{"use strict";a.s(["ActivityChart",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call ActivityChart() from the server but ActivityChart is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/activity-chart.tsx","ActivityChart")},37707,a=>{"use strict";a.i(70301);var b=a.i(37964);a.n(b)},25581,a=>{"use strict";a.s(["MetricCard",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call MetricCard() from the server but MetricCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/metric-card.tsx <module evaluation>","MetricCard")},77267,a=>{"use strict";a.s(["MetricCard",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call MetricCard() from the server but MetricCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/metric-card.tsx","MetricCard")},94045,a=>{"use strict";a.i(25581);var b=a.i(77267);a.n(b)},4636,a=>{"use strict";var b=a.i(7997);a.i(9117);var c=a.i(48024),d=a.i(54572),e=a.i(37707),f=a.i(94045),g=a.i(87067),h=a.i(1269);let i=(0,h.default)("ListTree",[["path",{d:"M21 12h-8",key:"1bmf0i"}],["path",{d:"M21 6H8",key:"1pqkrb"}],["path",{d:"M21 18h-8",key:"1tm79t"}],["path",{d:"M3 6v4c0 1.1.9 2 2 2h3",key:"1ywdgy"}],["path",{d:"M3 10v6c0 1.1.9 2 2 2h3",key:"2wc746"}]]),j=(0,h.default)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]),k=(0,h.default)("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),l=(0,h.default)("DollarSign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);function m({line1:a,line2:c}){return(0,b.jsxs)("div",{style:{lineHeight:1.4},children:[(0,b.jsx)("div",{children:a}),(0,b.jsx)("div",{style:{color:"var(--af-text-tertiary)"},children:c})]})}function n(a){return a<1e3?String(a):a<1e6?(a/1e3).toFixed(1)+"k":(a/1e6).toFixed(1)+"M"}function o(a){return a<1e3?String(a):a<1e6?(a/1e3).toFixed(1)+"k":a<1e9?(a/1e6).toFixed(1)+"M":(a/1e9).toFixed(1)+"B"}a.s(["DashboardView",0,function({sessions:a,override:h,daySummaries:p}){let q=(0,c.highLevelMetrics)(a),r=(0,c.dailyActivity)(a),s=(0,c.summarizeBursts)((0,c.computeBurstsFromSessions)(a)),t=q.totalTokens.input+q.totalTokens.cacheRead+q.totalTokens.cacheWrite,u=h?.activeTimeMs??q.totalAirTimeMs,v=r.filter(a=>a.airTimeMs>0).length;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("section",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))",gap:12},children:[(0,b.jsx)(f.MetricCard,{label:"Sessions",value:q.sessionCount.toLocaleString(),sub:(0,b.jsx)(m,{line1:`${q.totalTurns.toLocaleString()} turns`,line2:`avg ${q.sessionCount?Math.round(q.totalTurns/q.sessionCount):0} / session`}),icon:(0,b.jsx)(i,{size:13}),tooltip:"Total Claude Code sessions (one JSONL file = one session). A 'turn' is one user message that starts an agent response cycle."}),(0,b.jsx)(f.MetricCard,{label:"Agent time",value:(0,g.formatDuration)(u),sub:v>0?(0,b.jsx)(m,{line1:`${(0,g.formatDuration)(u/v)} / day`,line2:`${v} active days`}):"no activity",icon:(0,b.jsx)(j,{size:13}),tooltip:"Sum of time the Claude agent was actively working across all sessions. Gaps longer than 3 minutes (user away, laptop lid closed) are excluded. This is NOT wall-clock duration. Per-day average is across days with any agent activity."}),(0,b.jsx)(f.MetricCard,{label:"Tool calls",value:q.totalToolCalls.toLocaleString(),sub:(0,b.jsx)(m,{line1:`avg ${q.sessionCount?Math.round(q.totalToolCalls/q.sessionCount):0} / session`,line2:`across ${q.sessionCount.toLocaleString()} sessions`}),icon:(0,b.jsx)(k,{size:13}),tooltip:"Total tool invocations (Bash, Read, Edit, Write, Grep, Glob, Agent, etc.) across all sessions."}),(0,b.jsx)(f.MetricCard,{label:"Parallelism",value:s.burstCount>0?(0,g.formatDuration)(s.totalParallelMs):"—",sub:s.burstCount>0?(0,b.jsx)(m,{line1:`peak \xd7${s.peakConcurrent}`,line2:`${Math.round(s.totalParallelMs/Math.max(1,u)*100)}% of active time`}):"no sustained parallelism",tooltip:`Total time ≥2 agents were working in parallel, with peak concurrency as the highest count in any single burst.
2
+
3
+ ${s.burstCount} burst${1===s.burstCount?"":"s"} \xb7 ${s.crossProjectBurstCount} spanned multiple projects.`}),(0,b.jsx)(f.MetricCard,{label:"Code changes",value:(0,b.jsxs)("span",{children:[(0,b.jsxs)("span",{style:{color:"var(--af-success)"},children:["+",n(q.totalLinesAdded)]})," ",(0,b.jsxs)("span",{style:{color:"var(--af-danger)"},children:["-",n(q.totalLinesRemoved)]})]}),sub:(0,b.jsx)(m,{line1:`${q.totalFilesEdited.toLocaleString()} files touched`,line2:`${n(q.totalLinesAdded+q.totalLinesRemoved)} total lines`}),tooltip:`Total lines added and removed across all Edit + Write tool calls.
4
+ +${q.totalLinesAdded.toLocaleString()} added
5
+ -${q.totalLinesRemoved.toLocaleString()} removed
6
+ ${q.totalFilesEdited.toLocaleString()} unique files touched`}),(0,b.jsx)(f.MetricCard,{label:"Est. cost",value:(0,g.formatCost)((0,g.estimateCostMulti)(a)),sub:(0,b.jsx)(m,{line1:`${o(t)} in`,line2:`${o(q.totalTokens.output)} out`}),icon:(0,b.jsx)(l,{size:13}),tooltip:`Estimated API spend priced per-model across all sessions.
7
+ Input: ${(0,g.formatTokens)(q.totalTokens.input)}
8
+ Output: ${(0,g.formatTokens)(q.totalTokens.output)}
9
+ Cache read: ${(0,g.formatTokens)(q.totalTokens.cacheRead)}
10
+ Cache write: ${(0,g.formatTokens)(q.totalTokens.cacheWrite)}`}),h?.extraCards]}),(0,b.jsxs)("section",{style:{display:"grid",gridTemplateColumns:"1fr 2fr",gap:16},children:[(0,b.jsxs)("div",{className:"af-panel",style:{display:"flex",flexDirection:"column"},children:[(0,b.jsxs)("div",{className:"af-panel-header",children:[(0,b.jsx)("span",{children:"Contribution heatmap"}),(0,b.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontWeight:400},children:"sessions / day"})]}),(0,b.jsx)("div",{style:{padding:18,flex:1,display:"flex",alignItems:"center",justifyContent:"center"},children:(0,b.jsx)(d.Heatmap,{buckets:r,valueKey:"sessions",daySummaries:p})})]}),(0,b.jsxs)("div",{className:"af-panel",children:[(0,b.jsxs)("div",{className:"af-panel-header",children:[(0,b.jsx)("span",{children:"Daily activity"}),(0,b.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontWeight:400},children:"click a metric to switch"})]}),(0,b.jsx)("div",{style:{padding:18},children:(0,b.jsx)(e.ActivityChart,{buckets:r})})]})]})]})}],4636)},41264,a=>{"use strict";a.s(["LiveBadge",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveBadge() from the server but LiveBadge is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-badge.tsx <module evaluation>","LiveBadge")},71475,a=>{"use strict";a.s(["LiveBadge",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveBadge() from the server but LiveBadge is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-badge.tsx","LiveBadge")},77708,a=>{"use strict";a.i(41264);var b=a.i(71475);a.n(b)},34476,a=>{"use strict";a.s(["DateRangeFilter",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call DateRangeFilter() from the server but DateRangeFilter is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/date-range-filter.tsx <module evaluation>","DateRangeFilter")},96491,a=>{"use strict";a.s(["DateRangeFilter",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call DateRangeFilter() from the server but DateRangeFilter is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/date-range-filter.tsx","DateRangeFilter")},67598,a=>{"use strict";a.i(34476);var b=a.i(96491);a.n(b)},31289,a=>{"use strict";a.s(["AutoGenerateYesterday",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call AutoGenerateYesterday() from the server but AutoGenerateYesterday is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/auto-generate-yesterday.tsx <module evaluation>","AutoGenerateYesterday")},98643,a=>{"use strict";a.s(["AutoGenerateYesterday",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call AutoGenerateYesterday() from the server but AutoGenerateYesterday is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/auto-generate-yesterday.tsx","AutoGenerateYesterday")},29893,a=>{"use strict";a.i(31289);var b=a.i(98643);a.n(b)},77739,a=>{"use strict";var b=a.i(7997);a.i(9117);var c=a.i(48024),d=a.i(30375),e=a.i(4636),f=a.i(67598),g=a.i(77708),h=a.i(95936),i=a.i(44104),j=a.i(47058);a.i(37075);var k=a.i(26111),l=a.i(68787),m=a.i(85160),n=a.i(29893);function o(a){if(!a)return null;let b=/^[^.!?]+[.!?]/.exec(a);return b?b[0]:a}function p(a,b){return a.length>b?a.slice(0,b-1)+"…":a}function q(){var a;let c=(0,l.readSettings)().ai_features.enabled,d=(0,m.yesterdayLocal)(),e=d,f=(0,i.listEntriesForDay)(d),g=!1;if(0===f.length){let a=function(){for(let a=1;a<=30;a++){let b=(0,m.toLocalDay)(Date.now()-864e5*a);if((0,i.listEntriesForDay)(b).length>0)return b}return null}();a&&(e=a,f=(0,i.listEntriesForDay)(a),g=!0)}if(0===f.length)return(0,b.jsx)("div",{className:"af-panel",style:{padding:24,textAlign:"center"},children:(0,b.jsx)("p",{style:{color:"var(--af-text-secondary)"},children:"No recent activity yet. Once you run some Claude Code sessions, your daily digest will appear here."})});let q=(0,j.readDayDigest)(e)??(0,k.buildDeterministicDigest)(e,f),r=c&&!g&&null===q.headline,s=q.headline??`Worked ${Math.round(q.agent_min)}m across ${q.projects.length} project${1===q.projects.length?"":"s"}${q.shipped.length>0?`; shipped ${q.shipped.length} PR${1===q.shipped.length?"":"s"}`:""}.`,t=o(q.what_went_well),u=o(q.what_hit_friction);return(0,b.jsxs)("div",{className:"af-panel",style:{padding:20,display:"flex",flexDirection:"column",gap:12},children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap",fontSize:11,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.08em",fontWeight:600},children:[(0,b.jsxs)("span",{children:[g?"Last active":"Yesterday"," · ",(a=e,new Date(`${a}T12:00:00`).toLocaleDateString("en-US",{weekday:"long",month:"short",day:"numeric"}))]}),(0,b.jsx)(n.AutoGenerateYesterday,{yesterdayDate:e,missing:r})]}),(0,b.jsx)("h2",{style:{fontSize:17,fontWeight:600,margin:"8px 0 0",lineHeight:1.35},children:p(s,180)})]}),(0,b.jsxs)("div",{style:{fontSize:12,color:"var(--af-text-secondary)",fontFamily:"var(--font-mono)"},children:[Math.round(q.agent_min),"m agent time · ",q.projects.length," project",1===q.projects.length?"":"s"," · ",q.shipped.length," PR",1===q.shipped.length?"":"s"," shipped"]}),(t||u)&&(0,b.jsxs)("div",{style:{fontSize:13,display:"flex",flexDirection:"column",gap:4},children:[t&&(0,b.jsxs)("div",{children:[(0,b.jsx)("span",{style:{color:"#48bb78"},children:"✓"})," ",p(t,160)]}),u&&(0,b.jsxs)("div",{children:[(0,b.jsx)("span",{style:{color:"#ed8936"},children:"⚠"})," ",p(u,160)]})]}),!c&&(0,b.jsxs)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)"},children:[(0,b.jsx)(h.default,{href:"/settings",style:{color:"var(--af-accent)"},children:"Enable AI features"})," to see daily narratives."]}),(0,b.jsxs)("div",{style:{display:"flex",gap:12,marginTop:4},children:[(0,b.jsx)(h.default,{href:`/digest/${e}`,style:{fontSize:12,color:"var(--af-accent)"},children:"Open full digest →"}),(0,b.jsx)(h.default,{href:"/insights",style:{fontSize:12,color:"var(--af-accent)"},children:"Weekly insight report →"})]})]})}function r(){let a=Date.now(),c=[];for(let b=0;b<5;b++){let d=(0,m.toLocalDay)(a-864e5*b),e=(0,i.listEntriesForDay)(d),f=e.reduce((a,b)=>a+b.numbers.active_min,0),g=e.reduce((a,b)=>a+b.pr_titles.length,0),h=(0,j.readDayDigest)(d),k=0===e.length?"empty":h&&h.headline?"generated":"pending",l=0===b?"Today":1===b?"Yesterday":new Date(`${d}T12:00:00`).toLocaleDateString("en-US",{weekday:"short",month:"short",day:"numeric"});c.push({date:d,label:l,agentMin:f,prs:g,status:k})}return(0,b.jsxs)("div",{className:"af-panel",children:[(0,b.jsxs)("div",{className:"af-panel-header",children:[(0,b.jsx)("span",{children:"Recent days"}),(0,b.jsx)(h.default,{href:"/digest",style:{fontSize:11,color:"var(--af-accent)",marginLeft:"auto"},children:"Backfill →"})]}),(0,b.jsx)("div",{children:c.map(a=>(0,b.jsxs)(h.default,{href:`/digest/${a.date}`,style:{display:"grid",gridTemplateColumns:"1fr auto auto auto",gap:10,padding:"10px 18px",fontSize:12,borderBottom:"1px solid var(--af-border-subtle)",alignItems:"center"},children:[(0,b.jsx)("span",{children:a.label}),(0,b.jsx)(s,{status:a.status}),(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--af-text-tertiary)",fontSize:11,minWidth:36,textAlign:"right"},children:a.agentMin>0?`${Math.round(a.agentMin)}m`:"—"}),(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--af-text-tertiary)",fontSize:11,minWidth:42,textAlign:"right"},children:a.prs>0?`${a.prs} PR${1===a.prs?"":"s"}`:""})]},a.date))})]})}function s({status:a}){let c={generated:{bg:"rgba(72,187,120,0.12)",fg:"#48bb78",text:"✓"},pending:{bg:"rgba(237,137,54,0.12)",fg:"#ed8936",text:"•"},empty:{bg:"transparent",fg:"var(--af-text-tertiary)",text:"—"}}[a];return(0,b.jsx)("span",{style:{fontSize:10,fontWeight:600,padding:"1px 7px",borderRadius:99,background:c.bg,color:c.fg,minWidth:22,textAlign:"center"},children:c.text})}var t=a.i(67116),u=a.i(76597),v=a.i(87067);async function w({searchParams:a}){let i,{range:j}=await a,k="7d"===(i=Array.isArray(j)?j[0]:j)||"30d"===i||"90d"===i||"all"===i?i:"90d",l=function(a,b=Date.now()){if("all"===a)return;let c=new Date(b);return c.setHours(0,0,0,0),c.setDate(c.getDate()-(("7d"===a?7:"30d"===a?30:90)-1)),c.getTime()}(k),[m,n,o]=await Promise.all([(0,t.listSessions)(),(0,u.buildEntriesIndex)(),(0,u.listCachedDayDigests)()]),p=void 0===l?m:m.filter(a=>{if(!a.firstTimestamp)return!1;let b=Date.parse(a.firstTimestamp);return!Number.isNaN(b)&&b>=l}),s=new Map;for(let[a,b]of n.dayOutcome)s.set(a,{outcome:b,headline:null,helpfulness:null});for(let[a,b]of o){let c=s.get(a)??{outcome:b.outcome_day,headline:null,helpfulness:null};s.set(a,{outcome:c.outcome??b.outcome_day,headline:b.headline,helpfulness:b.helpfulness_day})}let x=(0,c.groupByProject)(p).sort((a,b)=>{let c=a.metrics.totalTokens.input+a.metrics.totalTokens.output+a.metrics.totalTokens.cacheRead+a.metrics.totalTokens.cacheWrite,d=b.metrics.totalTokens.input+b.metrics.totalTokens.output+b.metrics.totalTokens.cacheRead+b.metrics.totalTokens.cacheWrite;return d!==c?d-c:b.metrics.sessionCount-a.metrics.sessionCount}).slice(0,8),y=p.slice(0,6);return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:28,maxWidth:1280,padding:"32px 40px"},children:[(0,b.jsxs)("header",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:18,flexWrap:"wrap"},children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{style:{fontSize:26,fontWeight:700,letterSpacing:"-0.02em",margin:0},children:"Overview"}),(0,b.jsxs)("p",{style:{fontSize:13,color:"var(--af-text-secondary)",marginTop:4},children:[p.length," of ",m.length," session",1===m.length?"":"s"," across"," ",(()=>{let a=new Map;for(let b of m){let c=b.agent??"claude-code";a.set(c,(a.get(c)??0)+1)}let b=d.agentMetadata.map(b=>{let c=a.get(b.kind)??0;return c>0?`${c} ${b.displayName}`:null}).filter(a=>null!==a);return b.length?b.join(" + "):"no observed agents yet"})(),"."]})]}),(0,b.jsx)(f.DateRangeFilter,{current:k})]}),(0,b.jsx)(q,{}),(0,b.jsx)(e.DashboardView,{sessions:p,daySummaries:s}),(0,b.jsxs)("section",{style:{display:"grid",gridTemplateColumns:"minmax(260px, 1fr) minmax(260px, 1.4fr) minmax(260px, 1fr)",gap:16},children:[(0,b.jsxs)("div",{className:"af-panel",children:[(0,b.jsxs)("div",{className:"af-panel-header",children:[(0,b.jsx)("span",{children:"Top projects"}),(0,b.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontWeight:400},children:"by total tokens"}),(0,b.jsx)(h.default,{href:"/projects",style:{fontSize:11,color:"var(--af-accent)",marginLeft:"auto"},children:"View all →"})]}),(0,b.jsx)("div",{children:0===x.length?(0,b.jsx)("div",{className:"af-empty",children:"No projects yet."}):x.map(a=>{let c=a.metrics.totalTokens.input+a.metrics.totalTokens.output+a.metrics.totalTokens.cacheRead+a.metrics.totalTokens.cacheWrite;return(0,b.jsxs)(h.default,{href:`/projects/${encodeURIComponent(a.projectDir)}`,style:{display:"grid",gridTemplateColumns:"1fr auto auto auto",gap:14,padding:"10px 18px",fontSize:12,borderBottom:"1px solid var(--af-border-subtle)",alignItems:"center"},children:[(0,b.jsx)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--af-text)"},title:a.projectName,children:(0,v.prettyProjectName)(a.projectName)}),(0,b.jsxs)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",minWidth:64,textAlign:"right"},children:[a.sessions.length," sess"]}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",minWidth:52,textAlign:"right"},title:`${c.toLocaleString()} tokens`,children:(0,v.formatTokens)(c)}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",minWidth:56,textAlign:"right"},suppressHydrationWarning:!0,children:a.lastActiveMs?(0,v.formatRelative)(new Date(a.lastActiveMs).toISOString()):"—"})]},a.projectDir)})})]}),(0,b.jsxs)("div",{className:"af-panel",children:[(0,b.jsxs)("div",{className:"af-panel-header",children:[(0,b.jsx)("span",{children:"Recent sessions"}),(0,b.jsx)(h.default,{href:"/sessions",style:{fontSize:11,color:"var(--af-accent)",marginLeft:"auto"},children:"View all →"})]}),(0,b.jsx)("div",{children:0===y.length?(0,b.jsx)("div",{className:"af-empty",children:"No sessions found from any registered agent source."}):y.map(a=>(0,b.jsxs)(h.default,{href:`/sessions/${a.id}`,style:{display:"grid",gridTemplateColumns:"1fr auto auto",gap:12,padding:"10px 18px",fontSize:12,borderBottom:"1px solid var(--af-border-subtle)",alignItems:"center"},children:[(0,b.jsxs)("div",{style:{minWidth:0},children:[(0,b.jsxs)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--af-text)",display:"flex",alignItems:"center",gap:6},children:[(0,b.jsx)(g.LiveBadge,{mtimeIso:a.lastTimestamp}),(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.firstUserPreview||(0,b.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"(no user message)"})})]}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",marginTop:2,fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(0,v.prettyProjectName)(a.projectName)})]}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",textAlign:"right",minWidth:54},title:"Agent time (filters out idle gaps)",children:(0,v.formatDuration)(a.airTimeMs??a.durationMs)}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",textAlign:"right",minWidth:54},children:a.firstTimestamp?(0,v.formatRelative)(a.firstTimestamp):"—"})]},`${a.projectDir}/${a.id}`))})]}),(0,b.jsx)(r,{})]})]})}a.s(["default",0,w,"dynamic",0,"force-dynamic"],77739)},67303,a=>{a.n(a.i(77739))}];
11
+
12
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0yv-a8z._.js.map
@@ -0,0 +1,12 @@
1
+ module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},71306,(a,b,c)=>{b.exports=a.r(18622)},79847,a=>{a.n(a.i(3343))},9185,a=>{a.n(a.i(29432))},72842,a=>{a.n(a.i(75164))},54897,a=>{a.n(a.i(30106))},56157,a=>{a.n(a.i(18970))},94331,a=>{a.n(a.i(60644))},15988,a=>{a.n(a.i(56952))},25766,a=>{a.n(a.i(77341))},29725,a=>{a.n(a.i(94290))},5785,a=>{a.n(a.i(90588))},74793,a=>{a.n(a.i(33169))},85826,a=>{a.n(a.i(37111))},21565,a=>{a.n(a.i(41763))},65911,a=>{a.n(a.i(8950))},25128,a=>{a.n(a.i(91562))},40781,a=>{a.n(a.i(49670))},69411,a=>{a.n(a.i(75700))},63081,a=>{a.n(a.i(276))},62837,a=>{a.n(a.i(40795))},34607,a=>{a.n(a.i(11614))},96338,a=>{a.n(a.i(21751))},50642,a=>{a.n(a.i(12213))},32242,a=>{a.n(a.i(22693))},88530,a=>{a.n(a.i(10531))},8583,a=>{a.n(a.i(1082))},38534,a=>{a.n(a.i(98175))},70408,a=>{a.n(a.i(9095))},22922,a=>{a.n(a.i(96772))},78294,a=>{a.n(a.i(71717))},16625,a=>{a.n(a.i(85034))},88648,a=>{a.n(a.i(68113))},51914,a=>{a.n(a.i(66482))},25466,a=>{a.n(a.i(91505))},20916,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return e}});class d extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class e extends URLSearchParams{append(){throw new d}delete(){throw new d}set(){throw new d}sort(){throw new d}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},21170,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"RedirectStatusCode",{enumerable:!0,get:function(){return e}});var d,e=((d={})[d.SeeOther=303]="SeeOther",d[d.TemporaryRedirect=307]="TemporaryRedirect",d[d.PermanentRedirect=308]="PermanentRedirect",d);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},28859,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={REDIRECT_ERROR_CODE:function(){return g},isRedirectError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(21170),g="NEXT_REDIRECT";function h(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,d]=b,e=b.slice(2,-2).join(";"),h=Number(b.at(-2));return c===g&&("replace"===d||"push"===d)&&"string"==typeof e&&!isNaN(h)&&h in f.RedirectStatusCode}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},44868,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getRedirectError:function(){return i},getRedirectStatusCodeFromError:function(){return n},getRedirectTypeFromError:function(){return m},getURLFromRedirectError:function(){return l},permanentRedirect:function(){return k},redirect:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(21170),g=a.r(28859),h=a.r(20635).actionAsyncStorage;function i(a,b,c=f.RedirectStatusCode.TemporaryRedirect){let d=Object.defineProperty(Error(g.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return d.digest=`${g.REDIRECT_ERROR_CODE};${b};${a};${c};`,d}function j(a,b){throw i(a,b??=h?.getStore()?.isAction?"push":"replace",f.RedirectStatusCode.TemporaryRedirect)}function k(a,b="replace"){throw i(a,b,f.RedirectStatusCode.PermanentRedirect)}function l(a){return(0,g.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function m(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function n(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},89798,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HTTPAccessErrorStatus:function(){return f},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return h},getAccessFallbackErrorTypeByStatus:function(){return k},getAccessFallbackHTTPStatus:function(){return j},isHTTPAccessFallbackError:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},g=new Set(Object.values(f)),h="NEXT_HTTP_ERROR_FALLBACK";function i(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let[b,c]=a.digest.split(";");return b===h&&g.has(Number(c))}function j(a){return Number(a.digest.split(";")[1])}function k(a){switch(a){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},16155,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"notFound",{enumerable:!0,get:function(){return f}});let d=a.r(89798),e=`${d.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function f(){let a=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E1041",enumerable:!1,configurable:!0});throw a.digest=e,a}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},34557,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"forbidden",{enumerable:!0,get:function(){return d}}),a.r(89798).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},93845,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unauthorized",{enumerable:!0,get:function(){return d}}),a.r(89798).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},73808,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isPostpone",{enumerable:!0,get:function(){return e}});let d=Symbol.for("react.postpone");function e(a){return"object"==typeof a&&null!==a&&a.$$typeof===d}},1567,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isNextRouterError",{enumerable:!0,get:function(){return f}});let d=a.r(89798),e=a.r(28859);function f(a){return(0,e.isRedirectError)(a)||(0,d.isHTTPAccessFallbackError)(a)}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},94783,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b)||(0,h.isPrerenderInterruptedError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=a.r(13091),e=a.r(73808),f=a.r(49640),g=a.r(1567),h=a.r(60384),i=a.r(96556);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},60968,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=a.r(94783).unstable_rethrow;("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},73727,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ReadonlyURLSearchParams:function(){return f.ReadonlyURLSearchParams},RedirectType:function(){return m},forbidden:function(){return i.forbidden},notFound:function(){return h.notFound},permanentRedirect:function(){return g.permanentRedirect},redirect:function(){return g.redirect},unauthorized:function(){return j.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return k.unstable_rethrow}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20916),g=a.r(44868),h=a.r(16155),i=a.r(34557),j=a.r(93845),k=a.r(60968);function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}let m={push:"push",replace:"replace"};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},70396,a=>{"use strict";a.i(73727),a.s([])},1269,a=>{"use strict";var b=a.i(717);let c=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim();var d={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let e=(0,b.forwardRef)(({color:a="currentColor",size:e=24,strokeWidth:f=2,absoluteStrokeWidth:g,className:h="",children:i,iconNode:j,...k},l)=>(0,b.createElement)("svg",{ref:l,...d,width:e,height:e,stroke:a,strokeWidth:g?24*Number(f)/Number(e):f,className:c("lucide",h),...k},[...j.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(i)?i:[i]]));a.s(["default",0,(a,d)=>{let f=(0,b.forwardRef)(({className:f,...g},h)=>(0,b.createElement)(e,{ref:h,iconNode:d,className:c(`lucide-${a.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,f),...g}));return f.displayName=`${a}`,f}],1269)},87067,a=>{"use strict";let b={input:1,output:5,cacheRead:.1,cacheWrite:1.25},c={input:3,output:15,cacheRead:.3,cacheWrite:3.75},d={input:5,output:25,cacheRead:.5,cacheWrite:6.25};a.s(["estimateCostMulti",0,function(a){return a.reduce((a,e)=>{var f;let g;return a+(f=e.totalUsage,g=function(a){if(!a)return d;let e=a.toLowerCase();return e.includes("haiku")?b:e.includes("sonnet")?c:d}(e.model),f.input/1e6*g.input+f.output/1e6*g.output+f.cacheRead/1e6*g.cacheRead+f.cacheWrite/1e6*g.cacheWrite)},0)},"formatCost",0,function(a){return a<.01?"<$0.01":a<1||a<100?`$${a.toFixed(2)}`:a<1e3?`$${a.toFixed(1)}`:`$${a.toLocaleString(void 0,{maximumFractionDigits:0})}`},"formatDuration",0,function(a){if(void 0===a)return"—";if(a<1e3)return`${a}ms`;let b=Math.round(a/1e3);if(b<60)return`${b}s`;let c=Math.floor(b/60),d=b%60;if(c<60)return d?`${c}m ${d}s`:`${c}m`;let e=Math.floor(c/60),f=c%60;return f?`${e}h ${f}m`:`${e}h`},"formatGap",0,function(a){if(a<1e3)return`${a}ms`;let b=a/1e3;if(b<60)return`${b.toFixed(1)}s`;let c=Math.floor(b/60);if(c<60){let a=Math.round(b%60);return`${c}m ${a}s`}let d=Math.floor(c/60),e=c%60;if(d<24)return e?`${d}h ${e}m`:`${d}h`;let f=Math.floor(d/24),g=d%24;return g?`${f}d ${g}h`:`${f}d`},"formatRelative",0,function(a){let b=Date.parse(a);if(Number.isNaN(b))return a;let c=Math.round((Date.now()-b)/1e3);if(c<60)return`${c}s ago`;let d=Math.round(c/60);if(d<60)return`${d}m ago`;let e=Math.round(d/60);if(e<24)return`${e}h ago`;let f=Math.round(e/24);return`${f}d ago`},"formatTokens",0,function(a){return a<1e3?String(a):a<1e4?(a/1e3).toFixed(1)+"k":a<1e6?Math.round(a/1e3)+"k":a<1e7?(a/1e6).toFixed(2)+"M":(a/1e6).toFixed(1)+"M"},"prettyProjectName",0,function(a,b=35){let c=a.split("/").filter(Boolean),d=c.lastIndexOf(".worktrees");if(d>0&&d<c.length-1){let a=c[d-1],e=c[d+1],f=`${a}/${e}`;return f.length<=b?f:"…"+f.slice(f.length-b+1)}let e=c.length>=2?`${c[c.length-2]}/${c[c.length-1]}`:c[c.length-1]??a;return e.length<=b?e:"…"+e.slice(e.length-b+1)}])},83885,a=>{"use strict";a.s(["Heatmap",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Heatmap() from the server but Heatmap is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/heatmap.tsx <module evaluation>","Heatmap")},44467,a=>{"use strict";a.s(["Heatmap",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Heatmap() from the server but Heatmap is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/heatmap.tsx","Heatmap")},54572,a=>{"use strict";a.i(83885);var b=a.i(44467);a.n(b)},70301,a=>{"use strict";a.s(["ActivityChart",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call ActivityChart() from the server but ActivityChart is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/activity-chart.tsx <module evaluation>","ActivityChart")},37964,a=>{"use strict";a.s(["ActivityChart",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call ActivityChart() from the server but ActivityChart is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/activity-chart.tsx","ActivityChart")},37707,a=>{"use strict";a.i(70301);var b=a.i(37964);a.n(b)},25581,a=>{"use strict";a.s(["MetricCard",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call MetricCard() from the server but MetricCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/metric-card.tsx <module evaluation>","MetricCard")},77267,a=>{"use strict";a.s(["MetricCard",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call MetricCard() from the server but MetricCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/metric-card.tsx","MetricCard")},94045,a=>{"use strict";a.i(25581);var b=a.i(77267);a.n(b)},4636,a=>{"use strict";var b=a.i(7997);a.i(9117);var c=a.i(48024),d=a.i(54572),e=a.i(37707),f=a.i(94045),g=a.i(87067),h=a.i(1269);let i=(0,h.default)("ListTree",[["path",{d:"M21 12h-8",key:"1bmf0i"}],["path",{d:"M21 6H8",key:"1pqkrb"}],["path",{d:"M21 18h-8",key:"1tm79t"}],["path",{d:"M3 6v4c0 1.1.9 2 2 2h3",key:"1ywdgy"}],["path",{d:"M3 10v6c0 1.1.9 2 2 2h3",key:"2wc746"}]]),j=(0,h.default)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]),k=(0,h.default)("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),l=(0,h.default)("DollarSign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);function m({line1:a,line2:c}){return(0,b.jsxs)("div",{style:{lineHeight:1.4},children:[(0,b.jsx)("div",{children:a}),(0,b.jsx)("div",{style:{color:"var(--af-text-tertiary)"},children:c})]})}function n(a){return a<1e3?String(a):a<1e6?(a/1e3).toFixed(1)+"k":(a/1e6).toFixed(1)+"M"}function o(a){return a<1e3?String(a):a<1e6?(a/1e3).toFixed(1)+"k":a<1e9?(a/1e6).toFixed(1)+"M":(a/1e9).toFixed(1)+"B"}a.s(["DashboardView",0,function({sessions:a,override:h,daySummaries:p}){let q=(0,c.highLevelMetrics)(a),r=(0,c.dailyActivity)(a),s=(0,c.summarizeBursts)((0,c.computeBurstsFromSessions)(a)),t=q.totalTokens.input+q.totalTokens.cacheRead+q.totalTokens.cacheWrite,u=h?.activeTimeMs??q.totalAirTimeMs,v=r.filter(a=>a.airTimeMs>0).length;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("section",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))",gap:12},children:[(0,b.jsx)(f.MetricCard,{label:"Sessions",value:q.sessionCount.toLocaleString(),sub:(0,b.jsx)(m,{line1:`${q.totalTurns.toLocaleString()} turns`,line2:`avg ${q.sessionCount?Math.round(q.totalTurns/q.sessionCount):0} / session`}),icon:(0,b.jsx)(i,{size:13}),tooltip:"Total Claude Code sessions (one JSONL file = one session). A 'turn' is one user message that starts an agent response cycle."}),(0,b.jsx)(f.MetricCard,{label:"Agent time",value:(0,g.formatDuration)(u),sub:v>0?(0,b.jsx)(m,{line1:`${(0,g.formatDuration)(u/v)} / day`,line2:`${v} active days`}):"no activity",icon:(0,b.jsx)(j,{size:13}),tooltip:"Sum of time the Claude agent was actively working across all sessions. Gaps longer than 3 minutes (user away, laptop lid closed) are excluded. This is NOT wall-clock duration. Per-day average is across days with any agent activity."}),(0,b.jsx)(f.MetricCard,{label:"Tool calls",value:q.totalToolCalls.toLocaleString(),sub:(0,b.jsx)(m,{line1:`avg ${q.sessionCount?Math.round(q.totalToolCalls/q.sessionCount):0} / session`,line2:`across ${q.sessionCount.toLocaleString()} sessions`}),icon:(0,b.jsx)(k,{size:13}),tooltip:"Total tool invocations (Bash, Read, Edit, Write, Grep, Glob, Agent, etc.) across all sessions."}),(0,b.jsx)(f.MetricCard,{label:"Parallelism",value:s.burstCount>0?(0,g.formatDuration)(s.totalParallelMs):"—",sub:s.burstCount>0?(0,b.jsx)(m,{line1:`peak \xd7${s.peakConcurrent}`,line2:`${Math.round(s.totalParallelMs/Math.max(1,u)*100)}% of active time`}):"no sustained parallelism",tooltip:`Total time ≥2 agents were working in parallel, with peak concurrency as the highest count in any single burst.
2
+
3
+ ${s.burstCount} burst${1===s.burstCount?"":"s"} \xb7 ${s.crossProjectBurstCount} spanned multiple projects.`}),(0,b.jsx)(f.MetricCard,{label:"Code changes",value:(0,b.jsxs)("span",{children:[(0,b.jsxs)("span",{style:{color:"var(--af-success)"},children:["+",n(q.totalLinesAdded)]})," ",(0,b.jsxs)("span",{style:{color:"var(--af-danger)"},children:["-",n(q.totalLinesRemoved)]})]}),sub:(0,b.jsx)(m,{line1:`${q.totalFilesEdited.toLocaleString()} files touched`,line2:`${n(q.totalLinesAdded+q.totalLinesRemoved)} total lines`}),tooltip:`Total lines added and removed across all Edit + Write tool calls.
4
+ +${q.totalLinesAdded.toLocaleString()} added
5
+ -${q.totalLinesRemoved.toLocaleString()} removed
6
+ ${q.totalFilesEdited.toLocaleString()} unique files touched`}),(0,b.jsx)(f.MetricCard,{label:"Est. cost",value:(0,g.formatCost)((0,g.estimateCostMulti)(a)),sub:(0,b.jsx)(m,{line1:`${o(t)} in`,line2:`${o(q.totalTokens.output)} out`}),icon:(0,b.jsx)(l,{size:13}),tooltip:`Estimated API spend priced per-model across all sessions.
7
+ Input: ${(0,g.formatTokens)(q.totalTokens.input)}
8
+ Output: ${(0,g.formatTokens)(q.totalTokens.output)}
9
+ Cache read: ${(0,g.formatTokens)(q.totalTokens.cacheRead)}
10
+ Cache write: ${(0,g.formatTokens)(q.totalTokens.cacheWrite)}`}),h?.extraCards]}),(0,b.jsxs)("section",{style:{display:"grid",gridTemplateColumns:"1fr 2fr",gap:16},children:[(0,b.jsxs)("div",{className:"af-panel",style:{display:"flex",flexDirection:"column"},children:[(0,b.jsxs)("div",{className:"af-panel-header",children:[(0,b.jsx)("span",{children:"Contribution heatmap"}),(0,b.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontWeight:400},children:"sessions / day"})]}),(0,b.jsx)("div",{style:{padding:18,flex:1,display:"flex",alignItems:"center",justifyContent:"center"},children:(0,b.jsx)(d.Heatmap,{buckets:r,valueKey:"sessions",daySummaries:p})})]}),(0,b.jsxs)("div",{className:"af-panel",children:[(0,b.jsxs)("div",{className:"af-panel-header",children:[(0,b.jsx)("span",{children:"Daily activity"}),(0,b.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontWeight:400},children:"click a metric to switch"})]}),(0,b.jsx)("div",{style:{padding:18},children:(0,b.jsx)(e.ActivityChart,{buckets:r})})]})]})]})}],4636)},41264,a=>{"use strict";a.s(["LiveBadge",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveBadge() from the server but LiveBadge is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-badge.tsx <module evaluation>","LiveBadge")},71475,a=>{"use strict";a.s(["LiveBadge",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveBadge() from the server but LiveBadge is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-badge.tsx","LiveBadge")},77708,a=>{"use strict";a.i(41264);var b=a.i(71475);a.n(b)},1632,a=>{"use strict";var b=a.i(7997);a.i(70396);var c=a.i(73727),d=a.i(95936),e=a.i(67116);a.i(9117);var f=a.i(48024),g=a.i(4636),h=a.i(77708);let i={display:"inline-flex",alignItems:"center",borderRadius:4,padding:"2px 6px",fontSize:10,letterSpacing:"0.04em",textTransform:"uppercase",whiteSpace:"nowrap"};function j({session:a,linkable:c=!0}){if(!a.teamName)return null;let e=!0===a.isTeamLead,f=void 0!==a.agentName;return e||f?e&&c?(0,b.jsx)(d.default,{href:`/sessions/${a.id}`,style:{...i,fontWeight:600,background:"var(--af-warning-subtle)",color:"var(--af-warning)",border:"1px solid var(--af-warning-subtle)",textDecoration:"none"},title:`Team lead — ${a.teamName}`,children:"Team Lead"}):e?(0,b.jsx)("span",{style:{...i,fontWeight:600,background:"var(--af-warning-subtle)",color:"var(--af-warning)",border:"1px solid var(--af-warning-subtle)"},title:`Team lead — ${a.teamName}`,children:"Team Lead"}):(0,b.jsx)("span",{style:{...i,fontWeight:500,background:"var(--af-surface-hover)",color:"var(--af-text-tertiary)",border:"1px solid var(--af-border-subtle)"},title:`Team member — ${a.teamName} \xb7 ${a.agentName}`,children:"Team Member"}):null}var k=a.i(72931);let l={essential:{height:"100%",color:"#48bb78",label:"Essential"},helpful:{height:"75%",color:"#4299e1",label:"Helpful"},neutral:{height:"50%",color:"#a0aec0",label:"Neutral"},unhelpful:{height:"25%",color:"#f56565",label:"Unhelpful"}};function m({days:a}){return(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{style:{display:"flex",alignItems:"flex-end",gap:4,height:36},children:a.map(a=>{let c=a.helpfulness?l[a.helpfulness]:null;return(0,b.jsx)("div",{title:c?`${a.date}: Claude ${c.label.toLowerCase()}`:a.cached?`${a.date}: no signal`:`${a.date}: not generated — open digest →`,style:{flex:1,height:"100%",display:"flex",alignItems:"flex-end",background:"rgba(160, 174, 192, 0.06)",borderRadius:3,overflow:"hidden",cursor:a.cached?"default":"pointer"},children:c?(0,b.jsx)("div",{style:{width:"100%",height:c.height,background:c.color}}):(0,b.jsx)("div",{style:{width:"100%",height:"10%",background:"var(--af-border-subtle)"}})},a.date)})}),(0,b.jsxs)("div",{style:{display:"flex",gap:12,marginTop:6,fontSize:10,color:"var(--af-text-tertiary)",flexWrap:"wrap"},children:[(0,b.jsxs)("span",{children:["mood (last ",a.length,"d):"]}),["essential","helpful","neutral","unhelpful"].map(a=>(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4},children:[(0,b.jsx)("span",{style:{width:8,height:8,borderRadius:1,background:l[a].color}}),l[a].label.toLowerCase()]},a))]})]})}var n=a.i(76597),o=a.i(87067);let p=(0,a.i(1269).default)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]),q={shipped:6,partial:5,blocked:4,exploratory:3,trivial:2,idle:1};async function r({params:a}){let{slug:i}=await a,l=decodeURIComponent(i),s=(await (0,e.listSessions)()).filter(a=>(0,f.canonicalProjectName)(a.projectName)===l);if(0===s.length)return(0,c.notFound)();let t=s.slice(0,50),u=await Promise.all(t.map(a=>(0,e.getSession)(a.id))),v=u.filter(a=>!!a).flatMap(a=>(0,f.detectPrMarkers)(a)),w=u.filter(a=>!!a).reduce((a,b)=>a+(0,f.sessionAirTimeMs)(b.events),0),x=s.slice(0,12),y=v.length>0,z=function(){let a=[],b=new Date;for(let c=6;c>=0;c--){let d=new Date(b);d.setDate(d.getDate()-c);let e=d.getFullYear(),f=String(d.getMonth()+1).padStart(2,"0"),g=String(d.getDate()).padStart(2,"0");a.push(`${e}-${f}-${g}`)}return a}(),[A,B]=await Promise.all([(0,n.buildEntriesIndex)(),(0,n.listCachedDayDigests)()]),C=A.byProject.get(l)??[],D=new Map;for(let a of C){let b=D.get(a.local_day);b?b.push(a):D.set(a.local_day,[a])}let E=z.map(a=>{let b=D.get(a)??[],c=null,d=0;for(let a of b){let b=a.enrichment.outcome;b&&(q[b]??0)>d&&(d=q[b]??0,c=b)}return{date:a,outcome:c,activeMin:b.reduce((a,b)=>a+(b.numbers.active_min??0),0),prCount:b.reduce((a,b)=>a+b.pr_titles.length,0)}}),F=z.map(a=>{let b=B.get(a);return{date:a,helpfulness:b?.helpfulness_day??null,cached:!!b}}),G=E.some(a=>null!==a.outcome);return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:28,maxWidth:1280,padding:"32px 40px"},children:[(0,b.jsx)("div",{style:{fontSize:12,color:"var(--af-text-tertiary)"},children:(0,b.jsxs)(d.default,{href:"/projects",style:{color:"var(--af-text-tertiary)",display:"inline-flex",alignItems:"center",gap:4},children:[(0,b.jsx)(p,{size:12})," Projects"]})}),(0,b.jsxs)("header",{children:[(0,b.jsx)("h1",{style:{fontSize:26,fontWeight:700,letterSpacing:"-0.02em",margin:0},children:(0,o.prettyProjectName)(l)}),(0,b.jsx)("p",{style:{fontSize:12,color:"var(--af-text-tertiary)",marginTop:4,fontFamily:"var(--font-mono)"},children:l})]}),(0,b.jsx)(g.DashboardView,{sessions:s,override:{activeTimeMs:w||void 0}}),G&&(0,b.jsxs)("section",{className:"af-panel",children:[(0,b.jsxs)("div",{className:"af-panel-header",children:[(0,b.jsx)("span",{children:"Recent days"}),(0,b.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontWeight:400},children:"last 7 local days"})]}),(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(7, 1fr)",gap:8,padding:14},children:E.map(a=>{let c=new Date(`${a.date}T12:00:00`),e=c.toLocaleDateString("en-US",{weekday:"short"}),f=c.toLocaleDateString("en-US",{month:"short",day:"numeric"});return(0,b.jsxs)(d.default,{href:`/digest/${a.date}`,style:{display:"flex",flexDirection:"column",gap:6,alignItems:"center",padding:"10px 8px",border:"1px solid var(--af-border-subtle)",borderRadius:8,background:"var(--af-surface)",textDecoration:"none",color:"var(--af-text)",fontSize:11},children:[(0,b.jsx)("span",{style:{fontWeight:600},children:e}),(0,b.jsx)("span",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:f}),a.outcome?(0,b.jsx)("span",{style:{fontSize:16,lineHeight:1},"aria-hidden":!0,children:k.OUTCOME_STYLES[a.outcome]?.icon??""}):(0,b.jsx)("span",{style:{fontSize:14,color:"var(--af-text-tertiary)"},children:"—"}),(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"var(--af-text-secondary)"},children:a.activeMin>0?`${Math.round(a.activeMin)}m`:"—"}),(0,b.jsx)("span",{style:{fontSize:9,color:"var(--af-text-tertiary)"},children:a.prCount>0?`${a.prCount} PR`:"—"})]},a.date)})}),(0,b.jsx)("div",{style:{padding:"12px 16px",borderTop:"1px solid var(--af-border-subtle)"},children:(0,b.jsx)(m,{days:F})})]}),(0,b.jsxs)("section",{style:{display:"grid",gridTemplateColumns:y?"1fr 1fr":"1fr",gap:16},children:[y&&(0,b.jsxs)("div",{className:"af-panel",children:[(0,b.jsxs)("div",{className:"af-panel-header",children:[(0,b.jsx)("span",{children:"Pull requests shipped"}),(0,b.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontWeight:400},children:"detected from `gh pr create` calls"})]}),(0,b.jsx)("div",{style:{padding:14,display:"flex",flexDirection:"column",gap:6},children:v.sort((a,b)=>Date.parse(b.timestamp)-Date.parse(a.timestamp)).slice(0,12).map((a,c)=>(0,b.jsxs)(d.default,{href:`/sessions/${a.sessionId}`,style:{display:"grid",gridTemplateColumns:"90px 1fr 60px",gap:10,padding:"10px 14px",border:"1px solid var(--af-border-subtle)",borderRadius:8,background:"var(--af-surface-hover)",fontSize:12,alignItems:"center"},children:[(0,b.jsx)("div",{style:{fontSize:11,color:"var(--af-text-secondary)",fontFamily:"var(--font-mono)"},suppressHydrationWarning:!0,children:(0,o.formatRelative)(a.timestamp)}),(0,b.jsx)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--af-text)"},title:a.command,children:a.title??a.command.replace(/^gh pr create /,"").slice(0,120)}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",textAlign:"right"},children:void 0!==a.positionInSession?`${Math.round(100*a.positionInSession)}% in`:"—"})]},c))})]}),(0,b.jsxs)("div",{className:"af-panel",children:[(0,b.jsxs)("div",{className:"af-panel-header",children:[(0,b.jsx)("span",{children:"Recent sessions"}),(0,b.jsx)(d.default,{href:"/sessions",style:{fontSize:11,color:"var(--af-accent)",marginLeft:"auto"},children:"View all →"})]}),(0,b.jsx)("div",{children:x.map(a=>(0,b.jsxs)(d.default,{href:`/sessions/${a.id}`,style:{display:"grid",gridTemplateColumns:"1fr auto auto",gap:12,padding:"10px 18px",fontSize:12,borderBottom:"1px solid var(--af-border-subtle)",alignItems:"center"},children:[(0,b.jsx)("div",{style:{minWidth:0},children:(0,b.jsxs)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--af-text)",display:"flex",alignItems:"center",gap:6},children:[(0,b.jsx)(h.LiveBadge,{mtimeIso:a.lastTimestamp}),(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.firstUserPreview||(0,b.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"(no user message)"})}),(0,b.jsx)(j,{session:a,linkable:!1})]})}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",textAlign:"right",minWidth:54},title:"Agent time (filters out idle gaps)",children:(0,o.formatDuration)(a.airTimeMs??a.durationMs)}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",textAlign:"right",minWidth:54},suppressHydrationWarning:!0,children:a.firstTimestamp?(0,o.formatRelative)(a.firstTimestamp):"—"})]},`${a.projectDir}/${a.id}`))})]})]})]})}a.s(["default",0,r,"dynamic",0,"force-dynamic"],1632)},35416,a=>{a.n(a.i(1632))}];
11
+
12
+ //# sourceMappingURL=%5Broot-of-the-server%5D__10~b4bf._.js.map
@@ -3,6 +3,6 @@ module.exports=[20555,a=>{"use strict";var b=a.i(87924),c=a.i(72131);a.s(["LiveB
3
3
  0%, 100% { opacity: 1; transform: scale(1); }
4
4
  50% { opacity: 0.4; transform: scale(0.85); }
5
5
  }
6
- `})]})}])},85668,a=>{"use strict";let b=(0,a.i(70106).default)("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);a.s(["ArrowDown",0,b],85668)},79808,a=>{"use strict";let b=(0,a.i(70106).default)("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);a.s(["Wrench",0,b],79808)},75235,12958,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(70106);let e=(0,d.default)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var f=a.i(85668);let g=(0,d.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"}]]);a.s(["DataTable",0,function({rows:a,columns:d,getRowKey:h,onRowClick:i,defaultSortKey:j,defaultSortDir:k="desc"}){let[l,m]=(0,c.useState)(j??null),[n,o]=(0,c.useState)(k),p=(0,c.useMemo)(()=>{if(!l)return a;let b=d.find(a=>a.key===l);if(!b||!b.sortValue)return a;let c="asc"===n?1:-1;return[...a].sort((a,d)=>{let e=b.sortValue(a),f=b.sortValue(d);return"number"==typeof e&&"number"==typeof f?(e-f)*c:String(e).localeCompare(String(f))*c})},[a,d,l,n]);return(0,b.jsx)("div",{style:{overflowX:"auto",border:"1px solid var(--af-border-subtle)",borderRadius:8,background:"var(--af-surface)"},children:(0,b.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:12,color:"var(--af-text)"},children:[(0,b.jsx)("thead",{children:(0,b.jsx)("tr",{children:d.map(a=>{let c=l===a.key,d=!1!==a.sortable&&!!a.sortValue;return(0,b.jsx)("th",{onClick:()=>{!1!==a.sortable&&a.sortValue&&(l===a.key?o(a=>"asc"===a?"desc":"asc"):(m(a.key),o("desc")))},style:{textAlign:a.align??"left",fontSize:10,fontWeight:600,color:c?"var(--af-accent)":"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",padding:"10px 12px",borderBottom:"1px solid var(--af-border-subtle)",cursor:d?"pointer":"default",userSelect:"none",whiteSpace:"nowrap",width:a.width,background:"var(--af-surface)",position:"sticky",top:0},children:(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,verticalAlign:"middle"},children:[a.header,d&&(0,b.jsx)("span",{style:{display:"inline-flex",opacity:c?1:.35},children:c?"asc"===n?(0,b.jsx)(e,{size:10}):(0,b.jsx)(f.ArrowDown,{size:10}):(0,b.jsx)(g,{size:10})})]})},a.key)})})}),(0,b.jsxs)("tbody",{children:[p.map(a=>(0,b.jsx)("tr",{onClick:()=>i?.(a),style:{cursor:i?"pointer":"default",borderBottom:"1px solid var(--af-border-subtle)",transition:"background 0.1s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--af-surface-hover)"},onMouseLeave:a=>{a.currentTarget.style.background=""},children:d.map(c=>(0,b.jsx)("td",{style:{padding:"10px 12px",textAlign:c.align??"left",whiteSpace:"right"===c.align?"nowrap":void 0,verticalAlign:"top"},children:c.render(a)},c.key))},h(a))),0===p.length&&(0,b.jsx)("tr",{children:(0,b.jsx)("td",{colSpan:d.length,style:{padding:"32px 16px",textAlign:"center",fontSize:12,color:"var(--af-text-tertiary)"},children:"No rows to display."})})]})]})})}],75235);let h=(0,d.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"}]]),i=(0,d.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 j=a.i(2591);function k({active:a,onClick:c,label:d,icon:e,rightEdge:f}){return(0,b.jsxs)("button",{type:"button",onClick:c,style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",fontSize:11,fontWeight:500,background:a?"var(--af-accent-subtle)":"transparent",color:a?"var(--af-accent)":"var(--af-text-secondary)",border:"none",borderRight:f?"none":"1px solid var(--af-border-subtle)",cursor:"pointer",letterSpacing:"0.02em"},children:[e,d]})}a.s(["useViewToggle",0,function(a,c="cards"){let[d,e,f]=(0,j.usePersistentBoolean)(a,"table"===c);return{mode:d?"table":"cards",toggle:(0,b.jsxs)("div",{style:{display:"inline-flex",border:"1px solid var(--af-border-subtle)",borderRadius:6,overflow:"hidden"},children:[(0,b.jsx)(k,{active:!d,onClick:()=>e(!1),label:"Cards",icon:(0,b.jsx)(h,{size:12})}),(0,b.jsx)(k,{active:d,onClick:()=>e(!0),label:"Table",icon:(0,b.jsx)(i,{size:12}),rightEdge:!0})]}),hydrated:f}}],12958)},23426,a=>{"use strict";var b=a.i(87924),c=a.i(38246),d=a.i(72131),e=a.i(50944),f=a.i(3444),g=a.i(87532),h=a.i(79808);let i=(0,a.i(70106).default)("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]);var j=a.i(41710),k=a.i(20555),l=a.i(76285),m=a.i(75235),n=a.i(12958),o=a.i(44220);let p=[{key:"outcome",header:"Outcome",sortValue:a=>(0,o.outcomePriority)(a.outcome),render:a=>(0,b.jsx)(q,{row:a})},{key:"project",header:"Project",sortValue:a=>a.session.projectName,render:a=>(0,b.jsxs)("div",{style:{maxWidth:180,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a.session.projectName,children:[(0,b.jsxs)("div",{style:{fontWeight:500,display:"flex",alignItems:"center",gap:6},children:[(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:(0,f.prettyProjectName)(a.session.projectName)}),(0,b.jsx)(l.TeamBadge,{session:a.session})]}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:(0,f.shortId)(a.session.id)})]})},{key:"preview",header:"Summary",sortable:!1,render:a=>{let c=a.briefSummary??a.session.firstUserPreview??"",d=!a.briefSummary;return(0,b.jsx)("div",{style:{maxWidth:360,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:d?"var(--af-text-tertiary)":"var(--af-text-secondary)",fontStyle:d?"italic":"normal"},title:d?`(raw user message) ${c}`:c,children:c||"—"})}},{key:"created",header:"Created",sortValue:a=>a.session.firstTimestamp?Date.parse(a.session.firstTimestamp):0,align:"right",render:a=>(0,b.jsx)("span",{suppressHydrationWarning:!0,style:{fontFamily:"var(--font-mono)",fontSize:11},children:a.session.firstTimestamp?(0,f.formatRelative)(a.session.firstTimestamp):"—"})},{key:"lastActive",header:"Last active",sortValue:a=>a.session.lastTimestamp?Date.parse(a.session.lastTimestamp):0,align:"right",render:a=>(0,b.jsx)("span",{suppressHydrationWarning:!0,style:{fontFamily:"var(--font-mono)",fontSize:11},children:a.session.lastTimestamp?(0,f.formatRelative)(a.session.lastTimestamp):"—"})},{key:"airtime",header:"Agent time",sortValue:a=>a.session.airTimeMs??a.session.durationMs??0,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,f.formatDuration)(a.session.airTimeMs??a.session.durationMs??0)})},{key:"turns",header:"Turns",sortValue:a=>a.session.turnCount??0,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(a.session.turnCount??0).toLocaleString()})},{key:"tools",header:"Tool calls",sortValue:a=>a.session.toolCallCount??0,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(a.session.toolCallCount??0).toLocaleString()})},{key:"tokens",header:"Tokens",sortValue:a=>a.session.totalUsage.input+a.session.totalUsage.output+a.session.totalUsage.cacheRead+a.session.totalUsage.cacheWrite,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,f.formatTokens)(a.session.totalUsage.input+a.session.totalUsage.output+a.session.totalUsage.cacheRead+a.session.totalUsage.cacheWrite)})},{key:"status",header:"Status",sortValue:a=>+("running"===a.session.status),align:"center",render:a=>"running"===a.session.status?(0,b.jsx)(k.LiveBadge,{}):(0,b.jsx)("span",{style:{opacity:.4},children:"—"})}];function q({row:a}){return a.outcome?(0,b.jsx)(o.OutcomePill,{outcome:a.outcome,size:"sm",label:"text"}):a.enrichmentStatus&&a.latestLocalDay&&"skipped_trivial"!==a.enrichmentStatus?(0,b.jsx)(o.OutcomePill,{outcome:null,pending:!0,sessionId:a.session.id,localDay:a.latestLocalDay,size:"sm"}):(0,b.jsx)("span",{style:{color:"var(--af-text-tertiary)",fontSize:10},children:"—"})}function r({row:a}){let{session:d,briefSummary:e,outcome:g,latestLocalDay:m,enrichmentStatus:n}=a,p=d.totalUsage.input+d.totalUsage.output+d.totalUsage.cacheRead+d.totalUsage.cacheWrite,q=!g&&n&&"skipped_trivial"!==n&&m,t=e??d.firstUserPreview??"",u=!e;return(0,b.jsxs)(c.default,{href:`/sessions/${d.id}`,className:"af-card",style:{display:"flex",flexDirection:"column",gap:10,padding:"14px 16px"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,b.jsxs)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"flex",alignItems:"center",gap:6,minWidth:0},title:d.projectName,children:[(0,b.jsx)(k.LiveBadge,{mtimeIso:d.lastTimestamp}),(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(0,f.prettyProjectName)(d.projectName)}),(0,b.jsx)(l.TeamBadge,{session:d,linkable:!1})]}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",flexShrink:0},suppressHydrationWarning:!0,children:d.firstTimestamp?(0,f.formatRelative)(d.firstTimestamp):"—"})]}),(g||q)&&(0,b.jsx)("div",{onClick:a=>a.stopPropagation(),children:g?(0,b.jsx)(o.OutcomePill,{outcome:g,size:"md"}):q?(0,b.jsx)(o.OutcomePill,{outcome:null,pending:!0,sessionId:d.id,localDay:m,size:"md"}):null}),(0,b.jsx)("div",{style:{fontSize:13,color:u?"var(--af-text-secondary)":"var(--af-text)",fontStyle:u?"italic":"normal",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",minHeight:36,lineHeight:1.4},title:u?`(raw user message) ${t}`:t,children:t||(0,b.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"(no user message)"})}),u&&(0,b.jsx)("div",{style:{fontSize:11.5,color:"var(--af-text-secondary)",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",lineHeight:1.4,paddingLeft:10,borderLeft:"2px solid var(--af-accent-subtle)"},title:d.lastAgentPreview,children:d.lastAgentPreview||(0,b.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"—"})}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,fontSize:10.5,color:"var(--af-text-tertiary)",paddingTop:8,borderTop:"1px solid var(--af-border-subtle)",fontFamily:"var(--font-mono)"},children:[(0,b.jsx)(s,{icon:(0,b.jsx)(i,{size:11}),label:`${d.turnCount??0} turn${1===d.turnCount?"":"s"}`}),(0,b.jsx)(s,{icon:(0,b.jsx)(h.Wrench,{size:11}),label:`${d.toolCallCount??0} tools`}),(0,b.jsx)(s,{icon:(0,b.jsx)(j.Clock,{size:11}),label:(0,f.formatDuration)(d.airTimeMs??d.durationMs)}),(0,b.jsx)("span",{style:{marginLeft:"auto"},children:(0,f.formatTokens)(p)})]})]})}function s({icon:a,label:c}){return(0,b.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[a,c]})}a.s(["SessionsGrid",0,function({rows:a}){let c=(0,e.useRouter)(),[h,i]=(0,d.useState)(""),[j,k]=(0,d.useState)("all"),[l,q]=(0,d.useState)("newest"),{mode:s,toggle:t}=(0,n.useViewToggle)("cclens:sessions:view"),u=(0,d.useMemo)(()=>["all",...Array.from(new Set(a.map(a=>a.session.projectName))).sort()],[a]),v=(0,d.useMemo)(()=>{let b=a.slice();if("all"!==j&&(b=b.filter(a=>a.session.projectName===j)),h){let a=h.toLowerCase();b=b.filter(({session:b,briefSummary:c})=>b.id.toLowerCase().includes(a)||(c??"").toLowerCase().includes(a)||(b.firstUserPreview??"").toLowerCase().includes(a)||(b.lastAgentPreview??"").toLowerCase().includes(a)||b.projectName.toLowerCase().includes(a))}return"newest"===l?b.sort((a,b)=>(b.session.firstTimestamp?Date.parse(b.session.firstTimestamp):0)-(a.session.firstTimestamp?Date.parse(a.session.firstTimestamp):0)):"longest"===l?b.sort((a,b)=>(b.session.airTimeMs??b.session.durationMs??0)-(a.session.airTimeMs??a.session.durationMs??0)):"most-tokens"===l?b.sort((a,b)=>b.session.totalUsage.input+b.session.totalUsage.output+b.session.totalUsage.cacheRead-(a.session.totalUsage.input+a.session.totalUsage.output+a.session.totalUsage.cacheRead)):"outcome"===l&&b.sort((a,b)=>(0,o.outcomePriority)(b.outcome)-(0,o.outcomePriority)(a.outcome)),b},[a,j,h,l]);return(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{style:{display:"flex",gap:10,marginBottom:16,flexWrap:"wrap",alignItems:"center"},children:[(0,b.jsxs)("div",{style:{position:"relative",flex:1,minWidth:260,maxWidth:480},children:[(0,b.jsx)(g.Search,{size:13,color:"var(--af-text-tertiary)",style:{position:"absolute",left:12,top:"50%",transform:"translateY(-50%)"}}),(0,b.jsx)("input",{type:"text",placeholder:"Search by message, project, or ID",value:h,onChange:a=>i(a.target.value),style:{width:"100%",paddingLeft:32}})]}),(0,b.jsx)("select",{value:j,onChange:a=>k(a.target.value),style:{maxWidth:260},children:u.map(a=>(0,b.jsx)("option",{value:a,children:"all"===a?"All projects":(0,f.prettyProjectName)(a)},a))}),(0,b.jsxs)("select",{value:l,onChange:a=>q(a.target.value),children:[(0,b.jsx)("option",{value:"newest",children:"Newest"}),(0,b.jsx)("option",{value:"longest",children:"Longest"}),(0,b.jsx)("option",{value:"most-tokens",children:"Most tokens"}),(0,b.jsx)("option",{value:"outcome",children:"Outcome"})]}),(0,b.jsx)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:v.length}),t]}),0===v.length?(0,b.jsx)("div",{className:"af-empty",children:"No sessions found."}):"table"===s?(0,b.jsx)(m.DataTable,{rows:v,getRowKey:a=>`${a.session.projectDir}/${a.session.id}`,onRowClick:a=>c.push(`/sessions/${a.session.id}`),defaultSortKey:"lastActive",defaultSortDir:"desc",columns:p}):(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(360px, 1fr))",gap:14},children:v.map(a=>(0,b.jsx)(r,{row:a},`${a.session.projectDir}/${a.session.id}`))})]})}],23426)}];
6
+ `})]})}])},85668,a=>{"use strict";let b=(0,a.i(70106).default)("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);a.s(["ArrowDown",0,b],85668)},79808,a=>{"use strict";let b=(0,a.i(70106).default)("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);a.s(["Wrench",0,b],79808)},75235,12958,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(70106);let e=(0,d.default)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var f=a.i(85668);let g=(0,d.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"}]]);a.s(["DataTable",0,function({rows:a,columns:d,getRowKey:h,onRowClick:i,defaultSortKey:j,defaultSortDir:k="desc"}){let[l,m]=(0,c.useState)(j??null),[n,o]=(0,c.useState)(k),p=(0,c.useMemo)(()=>{if(!l)return a;let b=d.find(a=>a.key===l);if(!b||!b.sortValue)return a;let c="asc"===n?1:-1;return[...a].sort((a,d)=>{let e=b.sortValue(a),f=b.sortValue(d);return"number"==typeof e&&"number"==typeof f?(e-f)*c:String(e).localeCompare(String(f))*c})},[a,d,l,n]);return(0,b.jsx)("div",{style:{overflowX:"auto",border:"1px solid var(--af-border-subtle)",borderRadius:8,background:"var(--af-surface)"},children:(0,b.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:12,color:"var(--af-text)"},children:[(0,b.jsx)("thead",{children:(0,b.jsx)("tr",{children:d.map(a=>{let c=l===a.key,d=!1!==a.sortable&&!!a.sortValue;return(0,b.jsx)("th",{onClick:()=>{!1!==a.sortable&&a.sortValue&&(l===a.key?o(a=>"asc"===a?"desc":"asc"):(m(a.key),o("desc")))},style:{textAlign:a.align??"left",fontSize:10,fontWeight:600,color:c?"var(--af-accent)":"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",padding:"10px 12px",borderBottom:"1px solid var(--af-border-subtle)",cursor:d?"pointer":"default",userSelect:"none",whiteSpace:"nowrap",width:a.width,background:"var(--af-surface)",position:"sticky",top:0},children:(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,verticalAlign:"middle"},children:[a.header,d&&(0,b.jsx)("span",{style:{display:"inline-flex",opacity:c?1:.35},children:c?"asc"===n?(0,b.jsx)(e,{size:10}):(0,b.jsx)(f.ArrowDown,{size:10}):(0,b.jsx)(g,{size:10})})]})},a.key)})})}),(0,b.jsxs)("tbody",{children:[p.map(a=>(0,b.jsx)("tr",{onClick:()=>i?.(a),style:{cursor:i?"pointer":"default",borderBottom:"1px solid var(--af-border-subtle)",transition:"background 0.1s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--af-surface-hover)"},onMouseLeave:a=>{a.currentTarget.style.background=""},children:d.map(c=>(0,b.jsx)("td",{style:{padding:"10px 12px",textAlign:c.align??"left",whiteSpace:"right"===c.align?"nowrap":void 0,verticalAlign:"top"},children:c.render(a)},c.key))},h(a))),0===p.length&&(0,b.jsx)("tr",{children:(0,b.jsx)("td",{colSpan:d.length,style:{padding:"32px 16px",textAlign:"center",fontSize:12,color:"var(--af-text-tertiary)"},children:"No rows to display."})})]})]})})}],75235);let h=(0,d.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"}]]),i=(0,d.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 j=a.i(2591);function k({active:a,onClick:c,label:d,icon:e,rightEdge:f}){return(0,b.jsxs)("button",{type:"button",onClick:c,style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",fontSize:11,fontWeight:500,background:a?"var(--af-accent-subtle)":"transparent",color:a?"var(--af-accent)":"var(--af-text-secondary)",border:"none",borderRight:f?"none":"1px solid var(--af-border-subtle)",cursor:"pointer",letterSpacing:"0.02em"},children:[e,d]})}a.s(["useViewToggle",0,function(a,c="cards"){let[d,e,f]=(0,j.usePersistentBoolean)(a,"table"===c);return{mode:d?"table":"cards",toggle:(0,b.jsxs)("div",{style:{display:"inline-flex",border:"1px solid var(--af-border-subtle)",borderRadius:6,overflow:"hidden"},children:[(0,b.jsx)(k,{active:!d,onClick:()=>e(!1),label:"Cards",icon:(0,b.jsx)(h,{size:12})}),(0,b.jsx)(k,{active:d,onClick:()=>e(!0),label:"Table",icon:(0,b.jsx)(i,{size:12}),rightEdge:!0})]}),hydrated:f}}],12958)},23426,a=>{"use strict";var b=a.i(87924),c=a.i(38246),d=a.i(72131),e=a.i(50944);a.i(99417);var f=a.i(69176),g=a.i(3444),h=a.i(87532),i=a.i(79808);let j=(0,a.i(70106).default)("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]);var k=a.i(41710),l=a.i(20555),m=a.i(76285),n=a.i(99309),o=a.i(75235),p=a.i(12958),q=a.i(44220);let r=["newest","longest","most-tokens","outcome"],s=[{key:"outcome",header:"Outcome",sortValue:a=>(0,q.outcomePriority)(a.outcome),render:a=>(0,b.jsx)(t,{row:a})},{key:"project",header:"Project",sortValue:a=>a.session.projectName,render:a=>(0,b.jsxs)("div",{style:{maxWidth:180,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a.session.projectName,children:[(0,b.jsxs)("div",{style:{fontWeight:500,display:"flex",alignItems:"center",gap:6},children:[(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:(0,g.prettyProjectName)(a.session.projectName)}),(0,b.jsx)(m.TeamBadge,{session:a.session}),(0,b.jsx)(n.AgentBadge,{agent:a.session.agent})]}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:(0,g.shortId)(a.session.id)})]})},{key:"preview",header:"Summary",sortable:!1,render:a=>{let c=a.briefSummary??a.session.firstUserPreview??"",d=!a.briefSummary;return(0,b.jsx)("div",{style:{maxWidth:360,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:d?"var(--af-text-tertiary)":"var(--af-text-secondary)",fontStyle:d?"italic":"normal"},title:d?`(raw user message) ${c}`:c,children:c||"—"})}},{key:"created",header:"Created",sortValue:a=>a.session.firstTimestamp?Date.parse(a.session.firstTimestamp):0,align:"right",render:a=>(0,b.jsx)("span",{suppressHydrationWarning:!0,style:{fontFamily:"var(--font-mono)",fontSize:11},children:a.session.firstTimestamp?(0,g.formatRelative)(a.session.firstTimestamp):"—"})},{key:"lastActive",header:"Last active",sortValue:a=>a.session.lastTimestamp?Date.parse(a.session.lastTimestamp):0,align:"right",render:a=>(0,b.jsx)("span",{suppressHydrationWarning:!0,style:{fontFamily:"var(--font-mono)",fontSize:11},children:a.session.lastTimestamp?(0,g.formatRelative)(a.session.lastTimestamp):"—"})},{key:"airtime",header:"Agent time",sortValue:a=>a.session.airTimeMs??a.session.durationMs??0,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,g.formatDuration)(a.session.airTimeMs??a.session.durationMs??0)})},{key:"turns",header:"Turns",sortValue:a=>a.session.turnCount??0,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(a.session.turnCount??0).toLocaleString()})},{key:"tools",header:"Tool calls",sortValue:a=>a.session.toolCallCount??0,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(a.session.toolCallCount??0).toLocaleString()})},{key:"tokens",header:"Tokens",sortValue:a=>a.session.totalUsage.input+a.session.totalUsage.output+a.session.totalUsage.cacheRead+a.session.totalUsage.cacheWrite,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,g.formatTokens)(a.session.totalUsage.input+a.session.totalUsage.output+a.session.totalUsage.cacheRead+a.session.totalUsage.cacheWrite)})},{key:"status",header:"Status",sortValue:a=>+("running"===a.session.status),align:"center",render:a=>"running"===a.session.status?(0,b.jsx)(l.LiveBadge,{}):(0,b.jsx)("span",{style:{opacity:.4},children:"—"})}];function t({row:a}){return a.outcome?(0,b.jsx)(q.OutcomePill,{outcome:a.outcome,size:"sm",label:"text",agent:a.session.agent}):a.enrichmentStatus&&a.latestLocalDay&&"skipped_trivial"!==a.enrichmentStatus?(0,b.jsx)(q.OutcomePill,{outcome:null,pending:!0,sessionId:a.session.id,localDay:a.latestLocalDay,size:"sm",agent:a.session.agent}):(0,b.jsx)("span",{style:{color:"var(--af-text-tertiary)",fontSize:10},children:"—"})}function u({row:a}){let{session:d,briefSummary:e,outcome:f,latestLocalDay:h,enrichmentStatus:o}=a,p=d.totalUsage.input+d.totalUsage.output+d.totalUsage.cacheRead+d.totalUsage.cacheWrite,r=!f&&o&&"skipped_trivial"!==o&&h,s=e??d.firstUserPreview??"",t=!e;return(0,b.jsxs)(c.default,{href:`/sessions/${d.id}`,className:"af-card",style:{display:"flex",flexDirection:"column",gap:10,padding:"14px 16px"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,b.jsxs)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"flex",alignItems:"center",gap:6,minWidth:0},title:d.projectName,children:[(0,b.jsx)(l.LiveBadge,{mtimeIso:d.lastTimestamp}),(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(0,g.prettyProjectName)(d.projectName)}),(0,b.jsx)(m.TeamBadge,{session:d,linkable:!1}),(0,b.jsx)(n.AgentBadge,{agent:d.agent})]}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",flexShrink:0},suppressHydrationWarning:!0,children:d.firstTimestamp?(0,g.formatRelative)(d.firstTimestamp):"—"})]}),(f||r)&&(0,b.jsx)("div",{onClick:a=>a.stopPropagation(),children:f?(0,b.jsx)(q.OutcomePill,{outcome:f,size:"md",agent:d.agent}):r?(0,b.jsx)(q.OutcomePill,{outcome:null,pending:!0,sessionId:d.id,localDay:h,size:"md",agent:d.agent}):null}),(0,b.jsx)("div",{style:{fontSize:13,color:t?"var(--af-text-secondary)":"var(--af-text)",fontStyle:t?"italic":"normal",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",minHeight:36,lineHeight:1.4},title:t?`(raw user message) ${s}`:s,children:s||(0,b.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"(no user message)"})}),t&&(0,b.jsx)("div",{style:{fontSize:11.5,color:"var(--af-text-secondary)",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",lineHeight:1.4,paddingLeft:10,borderLeft:"2px solid var(--af-accent-subtle)"},title:d.lastAgentPreview,children:d.lastAgentPreview||(0,b.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"—"})}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,fontSize:10.5,color:"var(--af-text-tertiary)",paddingTop:8,borderTop:"1px solid var(--af-border-subtle)",fontFamily:"var(--font-mono)"},children:[(0,b.jsx)(v,{icon:(0,b.jsx)(j,{size:11}),label:`${d.turnCount??0} turn${1===d.turnCount?"":"s"}`}),(0,b.jsx)(v,{icon:(0,b.jsx)(i.Wrench,{size:11}),label:`${d.toolCallCount??0} tools`}),(0,b.jsx)(v,{icon:(0,b.jsx)(k.Clock,{size:11}),label:(0,g.formatDuration)(d.airTimeMs??d.durationMs)}),(0,b.jsx)("span",{style:{marginLeft:"auto"},children:(0,g.formatTokens)(p)})]})]})}function v({icon:a,label:c}){return(0,b.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[a,c]})}a.s(["SessionsGrid",0,function({rows:a}){var c;let i=(0,e.useRouter)(),j=(0,e.usePathname)(),k=(0,e.useSearchParams)(),l=k.get("q")??"",m=k.get("project")??"all",n=k.get("agent"),t=(0,f.isAgentKind)(n)?n:"all",v=null!=(c=k.get("sort"))&&r.includes(c)?k.get("sort"):"newest",{mode:w,toggle:x}=(0,p.useViewToggle)("cclens:sessions:view"),y=(0,d.useCallback)((a,b,c)=>{let d=new URLSearchParams(k.toString());b&&b!==c?d.set(a,b):d.delete(a);let e=d.toString();i.replace(e?`${j}?${e}`:j,{scroll:!1})},[j,i,k]),z=(0,d.useMemo)(()=>["all",...Array.from(new Set(a.map(a=>a.session.projectName))).sort()],[a]),A=(0,d.useMemo)(()=>{let b=new Map;for(let c of a){let a=c.session.agent??"claude-code";b.set(a,(b.get(a)??0)+1)}return Array.from(b.entries()).sort((a,b)=>b[1]-a[1])},[a]),B=(0,d.useMemo)(()=>{let b=a.slice();if("all"!==m&&(b=b.filter(a=>a.session.projectName===m)),"all"!==t&&(b=b.filter(a=>(a.session.agent??"claude-code")===t)),l){let a=l.toLowerCase();b=b.filter(({session:b,briefSummary:c})=>b.id.toLowerCase().includes(a)||(c??"").toLowerCase().includes(a)||(b.firstUserPreview??"").toLowerCase().includes(a)||(b.lastAgentPreview??"").toLowerCase().includes(a)||b.projectName.toLowerCase().includes(a))}return"newest"===v?b.sort((a,b)=>(b.session.firstTimestamp?Date.parse(b.session.firstTimestamp):0)-(a.session.firstTimestamp?Date.parse(a.session.firstTimestamp):0)):"longest"===v?b.sort((a,b)=>(b.session.airTimeMs??b.session.durationMs??0)-(a.session.airTimeMs??a.session.durationMs??0)):"most-tokens"===v?b.sort((a,b)=>b.session.totalUsage.input+b.session.totalUsage.output+b.session.totalUsage.cacheRead-(a.session.totalUsage.input+a.session.totalUsage.output+a.session.totalUsage.cacheRead)):"outcome"===v&&b.sort((a,b)=>(0,q.outcomePriority)(b.outcome)-(0,q.outcomePriority)(a.outcome)),b},[a,m,t,l,v]);return(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{style:{display:"flex",gap:10,marginBottom:16,flexWrap:"wrap",alignItems:"center"},children:[(0,b.jsxs)("div",{style:{position:"relative",flex:1,minWidth:260,maxWidth:480},children:[(0,b.jsx)(h.Search,{size:13,color:"var(--af-text-tertiary)",style:{position:"absolute",left:12,top:"50%",transform:"translateY(-50%)"}}),(0,b.jsx)("input",{type:"text",placeholder:"Search by message, project, or ID",value:l,onChange:a=>y("q",a.target.value,""),style:{width:"100%",paddingLeft:32}})]}),(0,b.jsx)("select",{value:m,onChange:a=>y("project",a.target.value,"all"),style:{maxWidth:260},children:z.map(a=>(0,b.jsx)("option",{value:a,children:"all"===a?"All projects":(0,g.prettyProjectName)(a)},a))}),A.length>1&&(0,b.jsxs)("select",{value:t,onChange:a=>y("agent",a.target.value,"all"),title:"Filter by source agent",children:[(0,b.jsx)("option",{value:"all",children:"All agents"}),A.map(([a,c])=>{var d;return(0,b.jsxs)("option",{value:a,children:[(d=a,(0,f.getAgentMetadata)(d)?.displayName??d)," (",c,")"]},a)})]}),(0,b.jsxs)("select",{value:v,onChange:a=>y("sort",a.target.value,"newest"),children:[(0,b.jsx)("option",{value:"newest",children:"Newest"}),(0,b.jsx)("option",{value:"longest",children:"Longest"}),(0,b.jsx)("option",{value:"most-tokens",children:"Most tokens"}),(0,b.jsx)("option",{value:"outcome",children:"Outcome"})]}),(0,b.jsx)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:B.length}),x]}),0===B.length?(0,b.jsx)("div",{className:"af-empty",children:"No sessions found."}):"table"===w?(0,b.jsx)(o.DataTable,{rows:B,getRowKey:a=>`${a.session.projectDir}/${a.session.id}`,onRowClick:a=>i.push(`/sessions/${a.session.id}`),defaultSortKey:"lastActive",defaultSortDir:"desc",columns:s}):(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(360px, 1fr))",gap:14},children:B.map(a=>(0,b.jsx)(u,{row:a},`${a.session.projectDir}/${a.session.id}`))})]})}],23426)}];
7
7
 
8
8
  //# sourceMappingURL=_02s1n-x._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[85668,a=>{"use strict";let b=(0,a.i(70106).default)("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);a.s(["ArrowDown",0,b],85668)},75235,12958,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(70106);let e=(0,d.default)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var f=a.i(85668);let g=(0,d.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"}]]);a.s(["DataTable",0,function({rows:a,columns:d,getRowKey:h,onRowClick:i,defaultSortKey:j,defaultSortDir:k="desc"}){let[l,m]=(0,c.useState)(j??null),[n,o]=(0,c.useState)(k),p=(0,c.useMemo)(()=>{if(!l)return a;let b=d.find(a=>a.key===l);if(!b||!b.sortValue)return a;let c="asc"===n?1:-1;return[...a].sort((a,d)=>{let e=b.sortValue(a),f=b.sortValue(d);return"number"==typeof e&&"number"==typeof f?(e-f)*c:String(e).localeCompare(String(f))*c})},[a,d,l,n]);return(0,b.jsx)("div",{style:{overflowX:"auto",border:"1px solid var(--af-border-subtle)",borderRadius:8,background:"var(--af-surface)"},children:(0,b.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:12,color:"var(--af-text)"},children:[(0,b.jsx)("thead",{children:(0,b.jsx)("tr",{children:d.map(a=>{let c=l===a.key,d=!1!==a.sortable&&!!a.sortValue;return(0,b.jsx)("th",{onClick:()=>{!1!==a.sortable&&a.sortValue&&(l===a.key?o(a=>"asc"===a?"desc":"asc"):(m(a.key),o("desc")))},style:{textAlign:a.align??"left",fontSize:10,fontWeight:600,color:c?"var(--af-accent)":"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",padding:"10px 12px",borderBottom:"1px solid var(--af-border-subtle)",cursor:d?"pointer":"default",userSelect:"none",whiteSpace:"nowrap",width:a.width,background:"var(--af-surface)",position:"sticky",top:0},children:(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,verticalAlign:"middle"},children:[a.header,d&&(0,b.jsx)("span",{style:{display:"inline-flex",opacity:c?1:.35},children:c?"asc"===n?(0,b.jsx)(e,{size:10}):(0,b.jsx)(f.ArrowDown,{size:10}):(0,b.jsx)(g,{size:10})})]})},a.key)})})}),(0,b.jsxs)("tbody",{children:[p.map(a=>(0,b.jsx)("tr",{onClick:()=>i?.(a),style:{cursor:i?"pointer":"default",borderBottom:"1px solid var(--af-border-subtle)",transition:"background 0.1s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--af-surface-hover)"},onMouseLeave:a=>{a.currentTarget.style.background=""},children:d.map(c=>(0,b.jsx)("td",{style:{padding:"10px 12px",textAlign:c.align??"left",whiteSpace:"right"===c.align?"nowrap":void 0,verticalAlign:"top"},children:c.render(a)},c.key))},h(a))),0===p.length&&(0,b.jsx)("tr",{children:(0,b.jsx)("td",{colSpan:d.length,style:{padding:"32px 16px",textAlign:"center",fontSize:12,color:"var(--af-text-tertiary)"},children:"No rows to display."})})]})]})})}],75235);let h=(0,d.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"}]]),i=(0,d.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 j=a.i(2591);function k({active:a,onClick:c,label:d,icon:e,rightEdge:f}){return(0,b.jsxs)("button",{type:"button",onClick:c,style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",fontSize:11,fontWeight:500,background:a?"var(--af-accent-subtle)":"transparent",color:a?"var(--af-accent)":"var(--af-text-secondary)",border:"none",borderRight:f?"none":"1px solid var(--af-border-subtle)",cursor:"pointer",letterSpacing:"0.02em"},children:[e,d]})}a.s(["useViewToggle",0,function(a,c="cards"){let[d,e,f]=(0,j.usePersistentBoolean)(a,"table"===c);return{mode:d?"table":"cards",toggle:(0,b.jsxs)("div",{style:{display:"inline-flex",border:"1px solid var(--af-border-subtle)",borderRadius:6,overflow:"hidden"},children:[(0,b.jsx)(k,{active:!d,onClick:()=>e(!1),label:"Cards",icon:(0,b.jsx)(h,{size:12})}),(0,b.jsx)(k,{active:d,onClick:()=>e(!0),label:"Table",icon:(0,b.jsx)(i,{size:12}),rightEdge:!0})]}),hydrated:f}}],12958)},40141,a=>{"use strict";var b=a.i(87924),c=a.i(38246),d=a.i(50944),e=a.i(3444),f=a.i(75235),g=a.i(12958),h=a.i(44220);function i({days:a,size:c="sm"}){return(0,b.jsx)("div",{style:{display:"inline-flex",gap:3,alignItems:"center"},children:a.map(a=>a.outcome?(0,b.jsx)(h.OutcomePill,{outcome:a.outcome,size:c,label:"icon"},a.date):(0,b.jsx)("span",{title:`${a.date} — no entries`,style:{display:"inline-block",width:"sm"===c?14:18,height:"sm"===c?14:18,borderRadius:99,background:"var(--af-border-subtle)",opacity:.5}},a.date))})}let j=[{key:"name",header:"Project",sortValue:a=>a.project.projectName,render:a=>(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{style:{fontWeight:500,display:"inline-flex",alignItems:"center",gap:6},children:[(0,e.prettyProjectName)(a.project.projectName),a.project.worktreeCount>0&&(0,b.jsx)(l,{count:a.project.worktreeCount})]}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",maxWidth:320,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a.project.projectName,children:a.project.projectName})]})},{key:"recent",header:"Recent (7d)",sortable:!1,render:a=>(0,b.jsx)(i,{days:a.recentDays})},{key:"sessions",header:"Sessions",sortValue:a=>a.project.metrics.sessionCount,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:a.project.metrics.sessionCount.toLocaleString()})},{key:"turns",header:"Turns",sortValue:a=>a.project.metrics.totalTurns,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:a.project.metrics.totalTurns.toLocaleString()})},{key:"tools",header:"Tool calls",sortValue:a=>a.project.metrics.totalToolCalls,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:a.project.metrics.totalToolCalls.toLocaleString()})},{key:"airtime",header:"Agent time",sortValue:a=>a.project.metrics.totalAirTimeMs,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,e.formatDuration)(a.project.metrics.totalAirTimeMs)})},{key:"tokens",header:"Tokens",sortValue:a=>a.project.metrics.totalTokens.input+a.project.metrics.totalTokens.output+a.project.metrics.totalTokens.cacheRead+a.project.metrics.totalTokens.cacheWrite,align:"right",render:a=>{let c=a.project.metrics.totalTokens.input+a.project.metrics.totalTokens.output+a.project.metrics.totalTokens.cacheRead+a.project.metrics.totalTokens.cacheWrite;return(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,e.formatTokens)(c)})}},{key:"lastActive",header:"Last active",sortValue:a=>a.project.lastActiveMs??0,align:"right",render:a=>(0,b.jsx)("span",{suppressHydrationWarning:!0,style:{fontFamily:"var(--font-mono)",fontSize:11},children:a.project.lastActiveMs?(0,e.formatRelative)(new Date(a.project.lastActiveMs).toISOString()):"—"})}];function k({row:a}){let d=a.project,f=d.metrics.totalTokens.input+d.metrics.totalTokens.output+d.metrics.totalTokens.cacheRead+d.metrics.totalTokens.cacheWrite,g=a.recentDays.some(a=>null!==a.outcome);return(0,b.jsxs)(c.default,{href:`/projects/${encodeURIComponent(d.projectDir)}`,className:"af-card",style:{display:"flex",flexDirection:"column",gap:10},children:[(0,b.jsxs)("div",{style:{fontSize:14,fontWeight:600,color:"var(--af-text)",display:"flex",alignItems:"center",gap:8},children:[(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:(0,e.prettyProjectName)(d.projectName)}),d.worktreeCount>0&&(0,b.jsx)(l,{count:d.worktreeCount})]}),(0,b.jsx)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:d.projectName}),g&&(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:10,color:"var(--af-text-tertiary)"},children:[(0,b.jsx)("span",{children:"recent:"}),(0,b.jsx)(i,{days:a.recentDays})]}),(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:6,marginTop:6,fontSize:11,color:"var(--af-text-secondary)"},children:[(0,b.jsx)(m,{label:"Sessions",value:String(d.metrics.sessionCount)}),(0,b.jsx)(m,{label:"Turns",value:String(d.metrics.totalTurns)}),(0,b.jsx)(m,{label:"Tools",value:String(d.metrics.totalToolCalls)}),(0,b.jsx)(m,{label:"Agent time",value:(0,e.formatDuration)(d.metrics.totalAirTimeMs)}),(0,b.jsx)(m,{label:"Tokens",value:(0,e.formatTokens)(f)}),(0,b.jsx)(m,{label:"Last",value:d.lastActiveMs?(0,e.formatRelative)(new Date(d.lastActiveMs).toISOString()):"—"})]})]})}function l({count:a}){return(0,b.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:`${a} git worktree${1===a?"":"s"} rolled up into this project`,children:["+",a," wt"]})}function m({label:a,value:c}){return(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{style:{fontSize:9,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.04em",fontWeight:600},children:a}),(0,b.jsx)("div",{style:{fontFamily:"var(--font-mono)",marginTop:2},suppressHydrationWarning:!0,children:c})]})}a.s(["ProjectsView",0,function({rows:a}){let c=(0,d.useRouter)(),{mode:e,toggle:h}=(0,g.useViewToggle)("cclens:projects:view");return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:14},children:h}),"table"===e?(0,b.jsx)(f.DataTable,{rows:a,getRowKey:a=>a.project.projectDir,onRowClick:a=>c.push(`/projects/${encodeURIComponent(a.project.projectDir)}`),defaultSortKey:"lastActive",defaultSortDir:"desc",columns:j}):(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(320px, 1fr))",gap:14},children:a.map(a=>(0,b.jsx)(k,{row:a},a.project.projectDir))})]})}],40141)}];
1
+ module.exports=[85668,a=>{"use strict";let b=(0,a.i(70106).default)("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);a.s(["ArrowDown",0,b],85668)},75235,12958,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(70106);let e=(0,d.default)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var f=a.i(85668);let g=(0,d.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"}]]);a.s(["DataTable",0,function({rows:a,columns:d,getRowKey:h,onRowClick:i,defaultSortKey:j,defaultSortDir:k="desc"}){let[l,m]=(0,c.useState)(j??null),[n,o]=(0,c.useState)(k),p=(0,c.useMemo)(()=>{if(!l)return a;let b=d.find(a=>a.key===l);if(!b||!b.sortValue)return a;let c="asc"===n?1:-1;return[...a].sort((a,d)=>{let e=b.sortValue(a),f=b.sortValue(d);return"number"==typeof e&&"number"==typeof f?(e-f)*c:String(e).localeCompare(String(f))*c})},[a,d,l,n]);return(0,b.jsx)("div",{style:{overflowX:"auto",border:"1px solid var(--af-border-subtle)",borderRadius:8,background:"var(--af-surface)"},children:(0,b.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:12,color:"var(--af-text)"},children:[(0,b.jsx)("thead",{children:(0,b.jsx)("tr",{children:d.map(a=>{let c=l===a.key,d=!1!==a.sortable&&!!a.sortValue;return(0,b.jsx)("th",{onClick:()=>{!1!==a.sortable&&a.sortValue&&(l===a.key?o(a=>"asc"===a?"desc":"asc"):(m(a.key),o("desc")))},style:{textAlign:a.align??"left",fontSize:10,fontWeight:600,color:c?"var(--af-accent)":"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",padding:"10px 12px",borderBottom:"1px solid var(--af-border-subtle)",cursor:d?"pointer":"default",userSelect:"none",whiteSpace:"nowrap",width:a.width,background:"var(--af-surface)",position:"sticky",top:0},children:(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,verticalAlign:"middle"},children:[a.header,d&&(0,b.jsx)("span",{style:{display:"inline-flex",opacity:c?1:.35},children:c?"asc"===n?(0,b.jsx)(e,{size:10}):(0,b.jsx)(f.ArrowDown,{size:10}):(0,b.jsx)(g,{size:10})})]})},a.key)})})}),(0,b.jsxs)("tbody",{children:[p.map(a=>(0,b.jsx)("tr",{onClick:()=>i?.(a),style:{cursor:i?"pointer":"default",borderBottom:"1px solid var(--af-border-subtle)",transition:"background 0.1s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--af-surface-hover)"},onMouseLeave:a=>{a.currentTarget.style.background=""},children:d.map(c=>(0,b.jsx)("td",{style:{padding:"10px 12px",textAlign:c.align??"left",whiteSpace:"right"===c.align?"nowrap":void 0,verticalAlign:"top"},children:c.render(a)},c.key))},h(a))),0===p.length&&(0,b.jsx)("tr",{children:(0,b.jsx)("td",{colSpan:d.length,style:{padding:"32px 16px",textAlign:"center",fontSize:12,color:"var(--af-text-tertiary)"},children:"No rows to display."})})]})]})})}],75235);let h=(0,d.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"}]]),i=(0,d.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 j=a.i(2591);function k({active:a,onClick:c,label:d,icon:e,rightEdge:f}){return(0,b.jsxs)("button",{type:"button",onClick:c,style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",fontSize:11,fontWeight:500,background:a?"var(--af-accent-subtle)":"transparent",color:a?"var(--af-accent)":"var(--af-text-secondary)",border:"none",borderRight:f?"none":"1px solid var(--af-border-subtle)",cursor:"pointer",letterSpacing:"0.02em"},children:[e,d]})}a.s(["useViewToggle",0,function(a,c="cards"){let[d,e,f]=(0,j.usePersistentBoolean)(a,"table"===c);return{mode:d?"table":"cards",toggle:(0,b.jsxs)("div",{style:{display:"inline-flex",border:"1px solid var(--af-border-subtle)",borderRadius:6,overflow:"hidden"},children:[(0,b.jsx)(k,{active:!d,onClick:()=>e(!1),label:"Cards",icon:(0,b.jsx)(h,{size:12})}),(0,b.jsx)(k,{active:d,onClick:()=>e(!0),label:"Table",icon:(0,b.jsx)(i,{size:12}),rightEdge:!0})]}),hydrated:f}}],12958)},40141,a=>{"use strict";var b=a.i(87924),c=a.i(38246),d=a.i(50944),e=a.i(3444),f=a.i(75235),g=a.i(12958),h=a.i(44220);function i({days:a,size:c="sm"}){return(0,b.jsx)("div",{style:{display:"inline-flex",gap:3,alignItems:"center"},children:a.map(a=>a.outcome?(0,b.jsx)(h.OutcomePill,{outcome:a.outcome,size:c,label:"icon"},a.date):(0,b.jsx)("span",{title:`${a.date} — no entries`,style:{display:"inline-block",width:"sm"===c?14:18,height:"sm"===c?14:18,borderRadius:99,background:"var(--af-border-subtle)",opacity:.5}},a.date))})}a.i(99417);var j=a.i(69176);function k({perAgent:a}){return a.length<2?null:(0,b.jsx)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:10,fontFamily:"var(--font-mono)",color:"var(--af-text-tertiary)",whiteSpace:"nowrap"},title:"Sessions split by source agent",children:a.map((a,c)=>{let d=(0,j.getAgentMetadata)(a.agent),e=d?.shortLabel??a.agent,f=d?.accentColor??"inherit";return(0,b.jsxs)("span",{children:[c>0&&(0,b.jsx)("span",{style:{margin:"0 4px",opacity:.5},children:"·"}),(0,b.jsx)("span",{style:{color:f,fontWeight:600},children:a.sessions})," ",e]},a.agent)})})}let l=[{key:"name",header:"Project",sortValue:a=>a.project.projectName,render:a=>(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{style:{fontWeight:500,display:"inline-flex",alignItems:"center",gap:6},children:[(0,e.prettyProjectName)(a.project.projectName),a.project.worktreeCount>0&&(0,b.jsx)(n,{count:a.project.worktreeCount}),(0,b.jsx)(k,{perAgent:a.project.perAgent})]}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",maxWidth:320,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a.project.projectName,children:a.project.projectName})]})},{key:"recent",header:"Recent (7d)",sortable:!1,render:a=>(0,b.jsx)(i,{days:a.recentDays})},{key:"sessions",header:"Sessions",sortValue:a=>a.project.metrics.sessionCount,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:a.project.metrics.sessionCount.toLocaleString()})},{key:"turns",header:"Turns",sortValue:a=>a.project.metrics.totalTurns,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:a.project.metrics.totalTurns.toLocaleString()})},{key:"tools",header:"Tool calls",sortValue:a=>a.project.metrics.totalToolCalls,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:a.project.metrics.totalToolCalls.toLocaleString()})},{key:"airtime",header:"Agent time",sortValue:a=>a.project.metrics.totalAirTimeMs,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,e.formatDuration)(a.project.metrics.totalAirTimeMs)})},{key:"tokens",header:"Tokens",sortValue:a=>a.project.metrics.totalTokens.input+a.project.metrics.totalTokens.output+a.project.metrics.totalTokens.cacheRead+a.project.metrics.totalTokens.cacheWrite,align:"right",render:a=>{let c=a.project.metrics.totalTokens.input+a.project.metrics.totalTokens.output+a.project.metrics.totalTokens.cacheRead+a.project.metrics.totalTokens.cacheWrite;return(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,e.formatTokens)(c)})}},{key:"lastActive",header:"Last active",sortValue:a=>a.project.lastActiveMs??0,align:"right",render:a=>(0,b.jsx)("span",{suppressHydrationWarning:!0,style:{fontFamily:"var(--font-mono)",fontSize:11},children:a.project.lastActiveMs?(0,e.formatRelative)(new Date(a.project.lastActiveMs).toISOString()):"—"})}];function m({row:a}){let d=a.project,f=d.metrics.totalTokens.input+d.metrics.totalTokens.output+d.metrics.totalTokens.cacheRead+d.metrics.totalTokens.cacheWrite,g=a.recentDays.some(a=>null!==a.outcome);return(0,b.jsxs)(c.default,{href:`/projects/${encodeURIComponent(d.projectDir)}`,className:"af-card",style:{display:"flex",flexDirection:"column",gap:10},children:[(0,b.jsxs)("div",{style:{fontSize:14,fontWeight:600,color:"var(--af-text)",display:"flex",alignItems:"center",gap:8},children:[(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:(0,e.prettyProjectName)(d.projectName)}),d.worktreeCount>0&&(0,b.jsx)(n,{count:d.worktreeCount}),(0,b.jsx)(k,{perAgent:d.perAgent})]}),(0,b.jsx)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:d.projectName}),g&&(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:10,color:"var(--af-text-tertiary)"},children:[(0,b.jsx)("span",{children:"recent:"}),(0,b.jsx)(i,{days:a.recentDays})]}),(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:6,marginTop:6,fontSize:11,color:"var(--af-text-secondary)"},children:[(0,b.jsx)(o,{label:"Sessions",value:String(d.metrics.sessionCount)}),(0,b.jsx)(o,{label:"Turns",value:String(d.metrics.totalTurns)}),(0,b.jsx)(o,{label:"Tools",value:String(d.metrics.totalToolCalls)}),(0,b.jsx)(o,{label:"Agent time",value:(0,e.formatDuration)(d.metrics.totalAirTimeMs)}),(0,b.jsx)(o,{label:"Tokens",value:(0,e.formatTokens)(f)}),(0,b.jsx)(o,{label:"Last",value:d.lastActiveMs?(0,e.formatRelative)(new Date(d.lastActiveMs).toISOString()):"—"})]})]})}function n({count:a}){return(0,b.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:`${a} git worktree${1===a?"":"s"} rolled up into this project`,children:["+",a," wt"]})}function o({label:a,value:c}){return(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{style:{fontSize:9,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.04em",fontWeight:600},children:a}),(0,b.jsx)("div",{style:{fontFamily:"var(--font-mono)",marginTop:2},suppressHydrationWarning:!0,children:c})]})}a.s(["ProjectsView",0,function({rows:a}){let c=(0,d.useRouter)(),{mode:e,toggle:h}=(0,g.useViewToggle)("cclens:projects:view");return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:14},children:h}),"table"===e?(0,b.jsx)(f.DataTable,{rows:a,getRowKey:a=>a.project.projectDir,onRowClick:a=>c.push(`/projects/${encodeURIComponent(a.project.projectDir)}`),defaultSortKey:"lastActive",defaultSortDir:"desc",columns:l}):(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(320px, 1fr))",gap:14},children:a.map(a=>(0,b.jsx)(m,{row:a},a.project.projectDir))})]})}],40141)}];
2
2
 
3
3
  //# sourceMappingURL=_0woap-3._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[63681,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={RequestCookies:function(){return f.RequestCookies},ResponseCookies:function(){return f.ResponseCookies},stringifyCookie:function(){return f.stringifyCookie}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(36226)},51409,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReflectAdapter",{enumerable:!0,get:function(){return d}});class d{static get(a,b,c){let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}static set(a,b,c,d){return Reflect.set(a,b,c,d)}static has(a,b){return Reflect.has(a,b)}static deleteProperty(a,b){return Reflect.deleteProperty(a,b)}}},4712,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ActionDidNotRevalidate:function(){return f},ActionDidRevalidateDynamicOnly:function(){return h},ActionDidRevalidateStaticAndDynamic:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=0,g=1,h=2},14896,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63681),g=a.r(51409),h=a.r(56704),i=a.r(4712);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},8018,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(a.r(717));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},86309,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={isRequestAPICallableInsideAfter:function(){return j},throwForSearchParamsAccessInUseCache:function(){return i},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(60312),g=a.r(24725);function h(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function i(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function j(){let a=g.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}},81740,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"cookies",{enumerable:!0,get:function(){return n}});let d=a.r(14896),e=a.r(63681),f=a.r(56704),g=a.r(32319),h=a.r(60384),i=a.r(60312),j=a.r(13091),k=a.r(8018),l=a.r(86309),m=a.r(50640);function n(){let a="cookies",b=f.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,l.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`cookies()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E843",enumerable:!1,configurable:!0});if(b.forceStatic)return p(d.RequestCookiesAdapter.seal(new e.RequestCookies(new Headers({}))));if(b.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E849",enumerable:!1,configurable:!0});if(c)switch(c.type){case"cache":let f=Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E831",enumerable:!1,configurable:!0});throw Error.captureStackTrace(f,n),b.invalidDynamicUsageError??=f,f;case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E846",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1123",enumerable:!1,configurable:!0});case"prerender":var k=b,q=c;let r=o.get(q);if(r)return r;let s=(0,j.makeHangingPromise)(q.renderSignal,k.route,"`cookies()`");return o.set(q,s),s;case"prerender-client":case"validation-client":let t="`cookies`";throw Object.defineProperty(new m.InvariantError(`${t} must not be used within a Client Component. Next.js should be preventing ${t} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1037",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,h.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,h.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,j.delayUntilRuntimeStage)(c,p(c.cookies));case"private-cache":return p(c.cookies);case"request":let u;if((0,h.trackDynamicDataInDynamicRender)(c),u=(0,d.areCookiesMutableInCurrentPhase)(c)?c.userspaceMutableCookies:c.cookies,!c.asyncApiPromises)return p(u);{let a=(0,g.isInEarlyRenderStage)(c);if(u===c.mutableCookies)return a?c.asyncApiPromises.earlyMutableCookies:c.asyncApiPromises.mutableCookies;return a?c.asyncApiPromises.earlyCookies:c.asyncApiPromises.cookies}}}(0,g.throwForMissingRequestStore)(a)}a.r(31382);let o=new WeakMap;function p(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),c}(0,k.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`cookies()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E830",enumerable:!1,configurable:!0})})},29927,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HeadersAdapter:function(){return h},ReadonlyHeadersError:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(51409);class g extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new g}}class h extends Headers{constructor(a){super(),this.headers=new Proxy(a,{get(b,c,d){if("symbol"==typeof c)return f.ReflectAdapter.get(b,c,d);let e=c.toLowerCase(),g=Object.keys(a).find(a=>a.toLowerCase()===e);if(void 0!==g)return f.ReflectAdapter.get(b,g,d)},set(b,c,d,e){if("symbol"==typeof c)return f.ReflectAdapter.set(b,c,d,e);let g=c.toLowerCase(),h=Object.keys(a).find(a=>a.toLowerCase()===g);return f.ReflectAdapter.set(b,h??c,d,e)},has(b,c){if("symbol"==typeof c)return f.ReflectAdapter.has(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0!==e&&f.ReflectAdapter.has(b,e)},deleteProperty(b,c){if("symbol"==typeof c)return f.ReflectAdapter.deleteProperty(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0===e||f.ReflectAdapter.deleteProperty(b,e)}})}static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"append":case"delete":case"set":return g.callable;default:return f.ReflectAdapter.get(a,b,c)}}})}merge(a){return Array.isArray(a)?a.join(", "):a}static from(a){return a instanceof Headers?a:new h(a)}append(a,b){let c=this.headers[a];"string"==typeof c?this.headers[a]=[c,b]:Array.isArray(c)?c.push(b):this.headers[a]=b}delete(a){delete this.headers[a]}get(a){let b=this.headers[a];return void 0!==b?this.merge(b):null}has(a){return void 0!==this.headers[a]}set(a,b){this.headers[a]=b}forEach(a,b){for(let[c,d]of this.entries())a.call(b,d,c,this)}*entries(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase(),c=this.get(b);yield[b,c]}}*keys(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase();yield b}}*values(){for(let a of Object.keys(this.headers)){let b=this.get(a);yield b}}[Symbol.iterator](){return this.entries()}}},35754,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"headers",{enumerable:!0,get:function(){return m}});let d=a.r(29927),e=a.r(56704),f=a.r(32319),g=a.r(60384),h=a.r(60312),i=a.r(13091),j=a.r(8018),k=a.r(86309),l=a.r(50640);function m(){let a="headers",b=e.workAsyncStorage.getStore(),c=f.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,k.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`headers()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E839",enumerable:!1,configurable:!0});if(b.forceStatic)return o(d.HeadersAdapter.seal(new Headers({})));if(c)switch(c.type){case"cache":{let a=Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E833",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),b.invalidDynamicUsageError??=a,a}case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E838",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1134",enumerable:!1,configurable:!0})}if(b.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E828",enumerable:!1,configurable:!0});if(c)switch(c.type){case"prerender":var j=b,p=c;let e=n.get(p);if(e)return e;let q=(0,i.makeHangingPromise)(p.renderSignal,j.route,"`headers()`");return n.set(p,q),q;case"prerender-client":case"validation-client":let r="`headers`";throw Object.defineProperty(new l.InvariantError(`${r} must not be used within a client component. Next.js should be preventing ${r} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1017",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,g.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,g.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,i.delayUntilRuntimeStage)(c,o(c.headers));case"private-cache":return o(c.headers);case"request":if((0,g.trackDynamicDataInDynamicRender)(c),c.asyncApiPromises)return(0,f.isInEarlyRenderStage)(c)?c.asyncApiPromises.earlyHeaders:c.asyncApiPromises.headers;return o(c.headers)}}(0,f.throwForMissingRequestStore)(a)}a.r(31382);let n=new WeakMap;function o(a){let b=n.get(a);if(b)return b;let c=Promise.resolve(a);return n.set(a,c),c}(0,j.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`headers()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E836",enumerable:!1,configurable:!0})})},51125,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"draftMode",{enumerable:!0,get:function(){return l}});let d=a.r(32319),e=a.r(56704),f=a.r(60384),g=a.r(8018),h=a.r(60312),i=a.r(96556),j=a.r(50640),k=a.r(13091);function l(){let a="draftMode",b=e.workAsyncStorage.getStore(),c=d.workUnitAsyncStorage.getStore();switch((!b||!c)&&(0,d.throwForMissingRequestStore)(a),c.type){case"prerender-runtime":return(0,k.delayUntilRuntimeStage)(c,m(c.draftMode,b));case"request":return m(c.draftMode,b);case"cache":case"private-cache":case"unstable-cache":let f=(0,d.getDraftModeProviderForCacheScope)(b,c);if(f)return m(f,b);case"prerender":case"prerender-ppr":case"prerender-legacy":return m(null,b);case"prerender-client":case"validation-client":{let a="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${a} must not be used within a Client Component. Next.js should be preventing ${a} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0})}case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`${a}()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1132",enumerable:!1,configurable:!0});default:return c}}function m(a,b){let c=o.get(a??n);return c||Promise.resolve(new p(a))}a.r(51409);let n={},o=new WeakMap;class p{constructor(a){this._provider=a}get isEnabled(){return null!==this._provider&&this._provider.isEnabled}enable(){q("draftMode().enable()",this.enable),null!==this._provider&&this._provider.enable()}disable(){q("draftMode().disable()",this.disable),null!==this._provider&&this._provider.disable()}}function q(a,b){let c=e.workAsyncStorage.getStore(),g=d.workUnitAsyncStorage.getStore();if(c){if((null==g?void 0:g.phase)==="after")throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside \`after()\`. The enabled status of \`draftMode()\` can be read inside \`after()\` but you cannot enable or disable \`draftMode()\`. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E845",enumerable:!1,configurable:!0});if(c.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${c.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(g)switch(g.type){case"cache":case"private-cache":{let d=Object.defineProperty(Error(`Route ${c.route} used "${a}" inside "use cache". The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E829",enumerable:!1,configurable:!0});throw Error.captureStackTrace(d,b),c.invalidDynamicUsageError??=d,d}case"unstable-cache":throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside a function cached with \`unstable_cache()\`. The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E844",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":{let b=Object.defineProperty(Error(`Route ${c.route} used ${a} without first calling \`await connection()\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`),"__NEXT_ERROR_CODE",{value:"E126",enumerable:!1,configurable:!0});return(0,f.abortAndThrowOnSynchronousRequestDataAccess)(c.route,a,b,g)}case"prerender-client":case"validation-client":let d="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${d} must not be used within a Client Component. Next.js should be preventing ${d} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,f.postponeWithTracking)(c.route,a,g.dynamicTracking);case"prerender-legacy":g.revalidate=0;let e=Object.defineProperty(new i.DynamicServerError(`Route ${c.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.dynamicUsageDescription=a,c.dynamicUsageStack=e.stack,e;case"request":(0,f.trackDynamicDataInDynamicRender)(g);break;case"generate-static-params":throw Object.defineProperty(Error(`Route ${c.route} used \`${a}\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1121",enumerable:!1,configurable:!0})}}}(0,g.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`draftMode()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E835",enumerable:!1,configurable:!0})})},5246,(a,b,c)=>{b.exports.cookies=a.r(81740).cookies,b.exports.headers=a.r(35754).headers,b.exports.draftMode=a.r(51125).draftMode},45017,a=>{"use strict";a.s(["Sidebar",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/sidebar.tsx <module evaluation>","Sidebar")},10398,a=>{"use strict";a.s(["Sidebar",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/sidebar.tsx","Sidebar")},23604,a=>{"use strict";a.i(45017);var b=a.i(10398);a.n(b)},59969,a=>{"use strict";a.s(["LiveRefresher",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveRefresher() from the server but LiveRefresher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-refresher.tsx <module evaluation>","LiveRefresher")},11272,a=>{"use strict";a.s(["LiveRefresher",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveRefresher() from the server but LiveRefresher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-refresher.tsx","LiveRefresher")},30642,a=>{"use strict";a.i(59969);var b=a.i(11272);a.n(b)},99153,a=>{"use strict";a.s(["LiveSessionsWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveSessionsWidget() from the server but LiveSessionsWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-sessions-widget.tsx <module evaluation>","LiveSessionsWidget")},62615,a=>{"use strict";a.s(["LiveSessionsWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveSessionsWidget() from the server but LiveSessionsWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-sessions-widget.tsx","LiveSessionsWidget")},9647,a=>{"use strict";a.i(99153);var b=a.i(62615);a.n(b)},14022,a=>{"use strict";a.s(["JobQueueWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call JobQueueWidget() from the server but JobQueueWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/job-queue-widget.tsx <module evaluation>","JobQueueWidget")},5900,a=>{"use strict";a.s(["JobQueueWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call JobQueueWidget() from the server but JobQueueWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/job-queue-widget.tsx","JobQueueWidget")},84829,a=>{"use strict";a.i(14022);var b=a.i(5900);a.n(b)},28992,a=>{"use strict";var b=a.i(7997),c=a.i(5246),d=a.i(23604),e=a.i(30642),f=a.i(9647),g=a.i(84829),h=a.i(50785),i=a.i(70709),j=a.i(76597);async function k({children:a}){let[l,m,n,o]=await Promise.all([(0,h.listProjects)(),(0,h.walkJsonlFiles)(),(0,h.listSessions)({limit:20}),(0,j.buildEntriesIndex)()]),p=m.length,q=(0,i.latestUsageSnapshot)(),r=n.map(a=>({id:a.id,projectName:a.projectName,firstUserPreview:a.firstUserPreview,lastUserPreview:a.lastUserPreview,lastAgentPreview:a.lastAgentPreview,firstTimestamp:a.firstTimestamp,lastTimestamp:a.lastTimestamp,teamName:a.teamName,agentName:a.agentName})),s={};for(let a of n){let b=o.bySession.get(a.id)??[];if(0===b.length)continue;let c=b[b.length-1];s[a.id]={outcome:c.enrichment.outcome??null,enrichmentStatus:c.enrichment.status,localDay:c.local_day}}let t=await (0,c.cookies)(),u=t.get("claude-lens-theme")?.value;return(0,b.jsx)("html",{lang:"en","data-theme":"light"===u||"dark"===u?u:"dark",suppressHydrationWarning:!0,children:(0,b.jsxs)("body",{children:[(0,b.jsx)(e.LiveRefresher,{}),(0,b.jsxs)("div",{style:{display:"flex",height:"100vh"},children:[(0,b.jsx)(d.Sidebar,{projects:l,totalSessions:p,currentUsage:q,version:"0.6.4"}),(0,b.jsx)("main",{style:{flex:1,minWidth:0,minHeight:0,padding:0,overflow:"auto"},children:a})]}),(0,b.jsx)(f.LiveSessionsWidget,{sessions:r,entrySummaries:s}),(0,b.jsx)(g.JobQueueWidget,{})]})})}a.s(["default",0,k,"dynamic",0,"force-dynamic","metadata",0,{title:"Fleetlens",description:"Claude Code fleet analytics — local-only dashboard for sessions and agent fleets."}],28992)},44665,a=>{a.n(a.i(28992))}];
1
+ module.exports=[63681,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={RequestCookies:function(){return f.RequestCookies},ResponseCookies:function(){return f.ResponseCookies},stringifyCookie:function(){return f.stringifyCookie}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(36226)},51409,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReflectAdapter",{enumerable:!0,get:function(){return d}});class d{static get(a,b,c){let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}static set(a,b,c,d){return Reflect.set(a,b,c,d)}static has(a,b){return Reflect.has(a,b)}static deleteProperty(a,b){return Reflect.deleteProperty(a,b)}}},4712,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ActionDidNotRevalidate:function(){return f},ActionDidRevalidateDynamicOnly:function(){return h},ActionDidRevalidateStaticAndDynamic:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=0,g=1,h=2},14896,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63681),g=a.r(51409),h=a.r(56704),i=a.r(4712);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},8018,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(a.r(717));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},86309,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={isRequestAPICallableInsideAfter:function(){return j},throwForSearchParamsAccessInUseCache:function(){return i},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(60312),g=a.r(24725);function h(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function i(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function j(){let a=g.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}},81740,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"cookies",{enumerable:!0,get:function(){return n}});let d=a.r(14896),e=a.r(63681),f=a.r(56704),g=a.r(32319),h=a.r(60384),i=a.r(60312),j=a.r(13091),k=a.r(8018),l=a.r(86309),m=a.r(50640);function n(){let a="cookies",b=f.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,l.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`cookies()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E843",enumerable:!1,configurable:!0});if(b.forceStatic)return p(d.RequestCookiesAdapter.seal(new e.RequestCookies(new Headers({}))));if(b.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E849",enumerable:!1,configurable:!0});if(c)switch(c.type){case"cache":let f=Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E831",enumerable:!1,configurable:!0});throw Error.captureStackTrace(f,n),b.invalidDynamicUsageError??=f,f;case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E846",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1123",enumerable:!1,configurable:!0});case"prerender":var k=b,q=c;let r=o.get(q);if(r)return r;let s=(0,j.makeHangingPromise)(q.renderSignal,k.route,"`cookies()`");return o.set(q,s),s;case"prerender-client":case"validation-client":let t="`cookies`";throw Object.defineProperty(new m.InvariantError(`${t} must not be used within a Client Component. Next.js should be preventing ${t} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1037",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,h.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,h.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,j.delayUntilRuntimeStage)(c,p(c.cookies));case"private-cache":return p(c.cookies);case"request":let u;if((0,h.trackDynamicDataInDynamicRender)(c),u=(0,d.areCookiesMutableInCurrentPhase)(c)?c.userspaceMutableCookies:c.cookies,!c.asyncApiPromises)return p(u);{let a=(0,g.isInEarlyRenderStage)(c);if(u===c.mutableCookies)return a?c.asyncApiPromises.earlyMutableCookies:c.asyncApiPromises.mutableCookies;return a?c.asyncApiPromises.earlyCookies:c.asyncApiPromises.cookies}}}(0,g.throwForMissingRequestStore)(a)}a.r(31382);let o=new WeakMap;function p(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),c}(0,k.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`cookies()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E830",enumerable:!1,configurable:!0})})},29927,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HeadersAdapter:function(){return h},ReadonlyHeadersError:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(51409);class g extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new g}}class h extends Headers{constructor(a){super(),this.headers=new Proxy(a,{get(b,c,d){if("symbol"==typeof c)return f.ReflectAdapter.get(b,c,d);let e=c.toLowerCase(),g=Object.keys(a).find(a=>a.toLowerCase()===e);if(void 0!==g)return f.ReflectAdapter.get(b,g,d)},set(b,c,d,e){if("symbol"==typeof c)return f.ReflectAdapter.set(b,c,d,e);let g=c.toLowerCase(),h=Object.keys(a).find(a=>a.toLowerCase()===g);return f.ReflectAdapter.set(b,h??c,d,e)},has(b,c){if("symbol"==typeof c)return f.ReflectAdapter.has(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0!==e&&f.ReflectAdapter.has(b,e)},deleteProperty(b,c){if("symbol"==typeof c)return f.ReflectAdapter.deleteProperty(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0===e||f.ReflectAdapter.deleteProperty(b,e)}})}static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"append":case"delete":case"set":return g.callable;default:return f.ReflectAdapter.get(a,b,c)}}})}merge(a){return Array.isArray(a)?a.join(", "):a}static from(a){return a instanceof Headers?a:new h(a)}append(a,b){let c=this.headers[a];"string"==typeof c?this.headers[a]=[c,b]:Array.isArray(c)?c.push(b):this.headers[a]=b}delete(a){delete this.headers[a]}get(a){let b=this.headers[a];return void 0!==b?this.merge(b):null}has(a){return void 0!==this.headers[a]}set(a,b){this.headers[a]=b}forEach(a,b){for(let[c,d]of this.entries())a.call(b,d,c,this)}*entries(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase(),c=this.get(b);yield[b,c]}}*keys(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase();yield b}}*values(){for(let a of Object.keys(this.headers)){let b=this.get(a);yield b}}[Symbol.iterator](){return this.entries()}}},35754,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"headers",{enumerable:!0,get:function(){return m}});let d=a.r(29927),e=a.r(56704),f=a.r(32319),g=a.r(60384),h=a.r(60312),i=a.r(13091),j=a.r(8018),k=a.r(86309),l=a.r(50640);function m(){let a="headers",b=e.workAsyncStorage.getStore(),c=f.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,k.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`headers()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E839",enumerable:!1,configurable:!0});if(b.forceStatic)return o(d.HeadersAdapter.seal(new Headers({})));if(c)switch(c.type){case"cache":{let a=Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E833",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),b.invalidDynamicUsageError??=a,a}case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E838",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1134",enumerable:!1,configurable:!0})}if(b.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E828",enumerable:!1,configurable:!0});if(c)switch(c.type){case"prerender":var j=b,p=c;let e=n.get(p);if(e)return e;let q=(0,i.makeHangingPromise)(p.renderSignal,j.route,"`headers()`");return n.set(p,q),q;case"prerender-client":case"validation-client":let r="`headers`";throw Object.defineProperty(new l.InvariantError(`${r} must not be used within a client component. Next.js should be preventing ${r} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1017",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,g.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,g.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,i.delayUntilRuntimeStage)(c,o(c.headers));case"private-cache":return o(c.headers);case"request":if((0,g.trackDynamicDataInDynamicRender)(c),c.asyncApiPromises)return(0,f.isInEarlyRenderStage)(c)?c.asyncApiPromises.earlyHeaders:c.asyncApiPromises.headers;return o(c.headers)}}(0,f.throwForMissingRequestStore)(a)}a.r(31382);let n=new WeakMap;function o(a){let b=n.get(a);if(b)return b;let c=Promise.resolve(a);return n.set(a,c),c}(0,j.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`headers()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E836",enumerable:!1,configurable:!0})})},51125,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"draftMode",{enumerable:!0,get:function(){return l}});let d=a.r(32319),e=a.r(56704),f=a.r(60384),g=a.r(8018),h=a.r(60312),i=a.r(96556),j=a.r(50640),k=a.r(13091);function l(){let a="draftMode",b=e.workAsyncStorage.getStore(),c=d.workUnitAsyncStorage.getStore();switch((!b||!c)&&(0,d.throwForMissingRequestStore)(a),c.type){case"prerender-runtime":return(0,k.delayUntilRuntimeStage)(c,m(c.draftMode,b));case"request":return m(c.draftMode,b);case"cache":case"private-cache":case"unstable-cache":let f=(0,d.getDraftModeProviderForCacheScope)(b,c);if(f)return m(f,b);case"prerender":case"prerender-ppr":case"prerender-legacy":return m(null,b);case"prerender-client":case"validation-client":{let a="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${a} must not be used within a Client Component. Next.js should be preventing ${a} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0})}case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`${a}()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1132",enumerable:!1,configurable:!0});default:return c}}function m(a,b){let c=o.get(a??n);return c||Promise.resolve(new p(a))}a.r(51409);let n={},o=new WeakMap;class p{constructor(a){this._provider=a}get isEnabled(){return null!==this._provider&&this._provider.isEnabled}enable(){q("draftMode().enable()",this.enable),null!==this._provider&&this._provider.enable()}disable(){q("draftMode().disable()",this.disable),null!==this._provider&&this._provider.disable()}}function q(a,b){let c=e.workAsyncStorage.getStore(),g=d.workUnitAsyncStorage.getStore();if(c){if((null==g?void 0:g.phase)==="after")throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside \`after()\`. The enabled status of \`draftMode()\` can be read inside \`after()\` but you cannot enable or disable \`draftMode()\`. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E845",enumerable:!1,configurable:!0});if(c.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${c.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(g)switch(g.type){case"cache":case"private-cache":{let d=Object.defineProperty(Error(`Route ${c.route} used "${a}" inside "use cache". The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E829",enumerable:!1,configurable:!0});throw Error.captureStackTrace(d,b),c.invalidDynamicUsageError??=d,d}case"unstable-cache":throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside a function cached with \`unstable_cache()\`. The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E844",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":{let b=Object.defineProperty(Error(`Route ${c.route} used ${a} without first calling \`await connection()\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`),"__NEXT_ERROR_CODE",{value:"E126",enumerable:!1,configurable:!0});return(0,f.abortAndThrowOnSynchronousRequestDataAccess)(c.route,a,b,g)}case"prerender-client":case"validation-client":let d="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${d} must not be used within a Client Component. Next.js should be preventing ${d} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,f.postponeWithTracking)(c.route,a,g.dynamicTracking);case"prerender-legacy":g.revalidate=0;let e=Object.defineProperty(new i.DynamicServerError(`Route ${c.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.dynamicUsageDescription=a,c.dynamicUsageStack=e.stack,e;case"request":(0,f.trackDynamicDataInDynamicRender)(g);break;case"generate-static-params":throw Object.defineProperty(Error(`Route ${c.route} used \`${a}\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1121",enumerable:!1,configurable:!0})}}}(0,g.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`draftMode()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E835",enumerable:!1,configurable:!0})})},5246,(a,b,c)=>{b.exports.cookies=a.r(81740).cookies,b.exports.headers=a.r(35754).headers,b.exports.draftMode=a.r(51125).draftMode},45017,a=>{"use strict";a.s(["Sidebar",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/sidebar.tsx <module evaluation>","Sidebar")},10398,a=>{"use strict";a.s(["Sidebar",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/sidebar.tsx","Sidebar")},23604,a=>{"use strict";a.i(45017);var b=a.i(10398);a.n(b)},59969,a=>{"use strict";a.s(["LiveRefresher",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveRefresher() from the server but LiveRefresher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-refresher.tsx <module evaluation>","LiveRefresher")},11272,a=>{"use strict";a.s(["LiveRefresher",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveRefresher() from the server but LiveRefresher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-refresher.tsx","LiveRefresher")},30642,a=>{"use strict";a.i(59969);var b=a.i(11272);a.n(b)},99153,a=>{"use strict";a.s(["LiveSessionsWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveSessionsWidget() from the server but LiveSessionsWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-sessions-widget.tsx <module evaluation>","LiveSessionsWidget")},62615,a=>{"use strict";a.s(["LiveSessionsWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveSessionsWidget() from the server but LiveSessionsWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-sessions-widget.tsx","LiveSessionsWidget")},9647,a=>{"use strict";a.i(99153);var b=a.i(62615);a.n(b)},14022,a=>{"use strict";a.s(["JobQueueWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call JobQueueWidget() from the server but JobQueueWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/job-queue-widget.tsx <module evaluation>","JobQueueWidget")},5900,a=>{"use strict";a.s(["JobQueueWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call JobQueueWidget() from the server but JobQueueWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/job-queue-widget.tsx","JobQueueWidget")},84829,a=>{"use strict";a.i(14022);var b=a.i(5900);a.n(b)},28992,a=>{"use strict";var b=a.i(7997),c=a.i(5246),d=a.i(23604),e=a.i(30642),f=a.i(9647),g=a.i(84829);a.i(23895);var h=a.i(88522),i=a.i(67116),j=a.i(70709),k=a.i(76597),l=a.i(40095);async function m({children:a}){let[n,o,p,q]=await Promise.all([(0,h.listProjects)(),(0,h.walkJsonlFiles)(),(0,i.listSessions)(),(0,k.buildEntriesIndex)()]),r=p.slice(0,20),s=p.length,t=(0,j.latestUsageSnapshot)(),u=r.map(a=>({id:a.id,projectName:a.projectName,firstUserPreview:a.firstUserPreview,lastUserPreview:a.lastUserPreview,lastAgentPreview:a.lastAgentPreview,firstTimestamp:a.firstTimestamp,lastTimestamp:a.lastTimestamp,teamName:a.teamName,agentName:a.agentName,agent:a.agent})),v={};for(let a of r){let b=q.bySession.get(a.id)??[];if(0===b.length)continue;let c=b[b.length-1];v[a.id]={outcome:c.enrichment.outcome??null,enrichmentStatus:c.enrichment.status,localDay:c.local_day}}let w=await (0,c.cookies)(),x=w.get("claude-lens-theme")?.value;return(0,b.jsx)("html",{lang:"en","data-theme":"light"===x||"dark"===x?x:"dark",suppressHydrationWarning:!0,children:(0,b.jsxs)("body",{children:[(0,b.jsx)(e.LiveRefresher,{}),(0,b.jsxs)("div",{style:{display:"flex",height:"100vh"},children:[(0,b.jsx)(d.Sidebar,{projects:n,totalSessions:s,currentUsage:t,version:"0.7.1",latestChangelogVersion:l.LATEST_VERSION}),(0,b.jsx)("main",{style:{flex:1,minWidth:0,minHeight:0,padding:0,overflow:"auto"},children:a})]}),(0,b.jsx)(f.LiveSessionsWidget,{sessions:u,entrySummaries:v}),(0,b.jsx)(g.JobQueueWidget,{})]})})}a.s(["default",0,m,"dynamic",0,"force-dynamic","metadata",0,{title:"Fleetlens",description:"Multi-agent fleet analytics — local-only dashboard for Claude Code, Codex, and other coding-agent sessions."}],28992)},44665,a=>{a.n(a.i(28992))}];
2
2
 
3
3
  //# sourceMappingURL=_0xu2pvc._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[12203,(a,b,c)=>{}];
2
+
3
+ //# sourceMappingURL=apps_web__next-internal_server_app_changelog_page_actions_12_04gy.js.map