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
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,92566,e=>{"use strict";var t=e.i(18050),r=e.i(71645),n=e.i(64659),s=e.i(63059);let i=(0,e.i(75254).default)("Layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);var a=e.i(23614),o=e.i(40484);let l={"spec-review-loop":"Spec-review loop","chunk-implementation":"Chunk implementation","research-then-build":"Research-then-build","reviewer-triad":"Reviewer triad","background-coordinated":"Background-coordinated","solo-continuation":"Solo continuation","solo-design":"Solo design","solo-build":"Solo build",mixed:"Mixed"},d={teammate:"<teammate-message>","task-notification":"<task-notification>","local-command-caveat":"<local-command-caveat>","image-attached":"[Image #N]","slash-command":"/command","handoff-prose":"Handoff prose"};function c({digest:e,entries:i,aiEnabled:l,actions:d}){let[u,g]=(0,r.useState)(!1),m=new Date(`${e.key}T12:00:00`).toLocaleDateString("en-US",{weekday:"long",month:"short",day:"numeric",year:"numeric"}),b=e.agent_min/60,v=b>=1?`${b.toFixed(1)}h`:`${Math.round(e.agent_min)}m`,j=[...i].sort((e,t)=>Date.parse(t.start_iso)-Date.parse(e.start_iso));return(0,t.jsxs)("div",{style:{maxWidth:980,margin:"0 auto",padding:"24px 40px"},children:[(0,t.jsxs)("header",{style:{marginBottom:28},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:8,fontSize:12,color:"var(--af-text-tertiary)",fontWeight:500,flexWrap:"wrap"},children:[(0,t.jsx)("span",{children:m}),(0,t.jsx)(a.OutcomePill,{outcome:e.outcome_day,size:"lg"}),(0,t.jsx)("span",{style:{color:"var(--af-text-tertiary)"},children:"·"}),(0,t.jsxs)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--af-text-secondary)"},children:[v," agent time · ",e.projects.length," project",1===e.projects.length?"":"s"," · ",e.shipped.length," PR",1===e.shipped.length?"":"s"," shipped",e.concurrency_peak>1&&` \xb7 peak concurrency \xd7${e.concurrency_peak}`]}),d&&(0,t.jsx)("div",{style:{marginLeft:"auto",display:"inline-flex",alignItems:"center",gap:8},children:d})]}),e.headline?(0,t.jsx)("h1",{style:{fontSize:26,fontWeight:700,lineHeight:1.3,letterSpacing:"-0.02em",margin:"0 0 8px",maxWidth:820,color:"var(--af-text)"},children:e.headline}):(0,t.jsx)("h1",{style:{fontSize:20,color:"var(--af-text-secondary)",margin:"0 0 14px"},children:l?"No narrative yet — click Regenerate.":`Worked ${v} across ${e.projects.length} project${1===e.projects.length?"":"s"}.`}),e.day_signature&&(0,t.jsx)("p",{style:{margin:"0 0 14px",fontSize:14,fontStyle:"italic",color:"var(--af-text-secondary)",maxWidth:820,lineHeight:1.5},children:e.day_signature})]}),!l&&(0,t.jsxs)("div",{style:{padding:14,marginBottom:24,background:"var(--af-accent-subtle)",borderRadius:8,fontSize:13,color:"var(--af-text)"},children:["Enable AI features in ",(0,t.jsx)("a",{href:"/settings",style:{color:"var(--af-accent)"},children:"Settings"})," to see daily narratives."]}),e.day_signals&&(0,t.jsx)(h,{signals:e.day_signals}),(e.what_went_well||e.what_hit_friction)&&(0,t.jsxs)("section",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:24,marginBottom:28},children:[(0,t.jsx)(x,{glyph:"✓",color:"#48bb78",text:e.what_went_well,emptyLabel:"(smooth)"}),(0,t.jsx)(x,{glyph:"⚠",color:"#ed8936",text:e.what_hit_friction,emptyLabel:"(no friction)"})]}),e.narrative&&(0,t.jsx)("section",{style:{marginBottom:28,padding:"4px 0",fontSize:15,lineHeight:1.6,color:"var(--af-text)",maxWidth:760},children:e.narrative}),(0,t.jsx)("div",{style:{marginBottom:18},children:(0,t.jsxs)("button",{type:"button",onClick:()=>g(e=>!e),style:{display:"inline-flex",alignItems:"center",gap:6,padding:"5px 10px",background:"transparent",border:"1px solid var(--af-border-subtle)",borderRadius:6,fontSize:11,color:"var(--af-text-secondary)",cursor:"pointer"},children:[u?(0,t.jsx)(n.ChevronDown,{size:12}):(0,t.jsx)(s.ChevronRight,{size:12}),u?"Hide details":"Show more details"]})}),u&&(0,t.jsxs)(t.Fragment,{children:[e.suggestion&&(0,t.jsxs)("section",{style:{borderLeft:"3px solid var(--af-accent)",paddingLeft:16,marginBottom:32},children:[(0,t.jsx)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.06em",fontWeight:600,marginBottom:6},children:"Tomorrow"}),(0,t.jsx)("div",{style:{fontSize:15,fontWeight:600,marginBottom:4,color:"var(--af-text)"},children:e.suggestion.headline}),(0,t.jsx)("div",{style:{fontSize:13,color:"var(--af-text-secondary)",lineHeight:1.5,maxWidth:760},children:e.suggestion.body})]}),e.projects.length>0&&(0,t.jsxs)("section",{style:{marginBottom:32},children:[(0,t.jsx)(p,{children:"Work breakdown"}),(0,t.jsx)("div",{style:{display:"grid",gap:6},children:e.projects.map(r=>{let n=e.shipped.filter(e=>e.project===r.display_name);return(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"140px 1fr 56px 72px",gap:12,alignItems:"center",padding:"6px 0",borderBottom:"1px solid var(--af-border-subtle)",fontSize:13},children:[(0,t.jsx)("span",{title:r.name,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r.display_name}),(0,t.jsx)(f,{pct:r.share_pct}),(0,t.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--af-text-tertiary)",textAlign:"right"},children:[r.share_pct.toFixed(0),"%"]}),(0,t.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)",textAlign:"right"},children:n.length>0?`${n.length} PR${1===n.length?"":"s"}`:"—"})]},r.name)})})]}),e.shipped.length>0&&(0,t.jsxs)("section",{style:{marginBottom:32},children:[(0,t.jsx)(p,{children:"Shipped"}),(0,t.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none"},children:e.shipped.map((e,r)=>(0,t.jsxs)("li",{style:{padding:"6px 0",fontSize:13,borderBottom:"1px solid var(--af-border-subtle)",display:"flex",gap:10,alignItems:"baseline"},children:[(0,t.jsx)("span",{style:{color:"#48bb78",fontSize:12},children:"✓"}),(0,t.jsx)("span",{style:{flex:1},children:e.title}),(0,t.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)"},children:e.project})]},r))})]}),j.length>0&&(0,t.jsxs)("section",{style:{marginBottom:32},children:[(0,t.jsxs)(p,{children:["Sessions · ",j.length]}),(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column"},children:j.map(e=>(0,t.jsx)(y,{entry:e},e.session_id))})]}),e.top_goal_categories.length>0&&(0,t.jsxs)("section",{style:{marginTop:40,paddingTop:20,borderTop:"1px solid var(--af-border-subtle)"},children:[(0,t.jsx)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",marginBottom:6},children:"Goal mix"}),(0,t.jsx)(o.GoalBar,{goals:e.top_goal_categories,total:e.agent_min})]})]})]})}function p({children:e}){return(0,t.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.08em",fontWeight:600,marginBottom:10},children:e})}function x({glyph:e,color:r,text:n,emptyLabel:s}){return(0,t.jsxs)("div",{style:{fontSize:14,lineHeight:1.55,display:"flex",gap:8,alignItems:"flex-start"},children:[(0,t.jsx)("span",{style:{fontSize:16,color:r,lineHeight:1.4,flexShrink:0},children:e}),n?(0,t.jsx)("span",{style:{color:"var(--af-text)"},children:n}):(0,t.jsx)("span",{style:{color:"var(--af-text-tertiary)",fontStyle:"italic"},children:s})]})}function f({pct:e}){return(0,t.jsx)("div",{style:{height:6,background:"var(--af-border-subtle)",borderRadius:99,overflow:"hidden"},children:(0,t.jsx)("div",{style:{width:`${Math.min(100,Math.max(0,e))}%`,height:"100%",background:"var(--af-accent)",transition:"width 0.2s"}})})}function h({signals:e}){let r=null!==e.dominant_shape,n=Object.keys(e.shape_distribution).length>0,s=e.user_authored_subagents_used.length>0||Object.keys(e.shape_distribution).length>0,i=e.skills_loaded.filter(e=>"stock"===e.origin),a=e.skills_loaded.filter(e=>"user"===e.origin),o=e.prompt_frames.filter(e=>"claude-feature"===e.origin),c=e.prompt_frames.filter(e=>"personal-habit"===e.origin),p=e.comm_style,x=p.verbosity_distribution.short+p.verbosity_distribution.medium+p.verbosity_distribution.long+p.verbosity_distribution.very_long,f=p.steering.interrupts+p.steering.frustrated+p.steering.dissatisfied;return r||n||0!==i.length||0!==a.length||0!==e.user_authored_subagents_used.length||0!==o.length||0!==c.length||0!==x||0!==p.external_refs.length||0!==f||0!==e.brainstorm_warmup_session_count||0!==e.todo_ops_total||e.plan_mode_used?(0,t.jsxs)("section",{style:{marginBottom:28,padding:"14px 16px",borderRadius:8,background:"var(--af-surface)",border:"1px solid var(--af-border-subtle)"},children:[(0,t.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.08em",fontWeight:600,marginBottom:10},children:"How today worked"}),r&&(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap",marginBottom:8},children:[(0,t.jsx)("span",{style:{display:"inline-flex",alignItems:"center",padding:"3px 10px",borderRadius:999,fontSize:12,fontWeight:600,background:"var(--af-accent-subtle)",color:"var(--af-accent)"},children:l[e.dominant_shape]??e.dominant_shape}),n&&(0,t.jsx)("span",{style:{fontSize:12,color:"var(--af-text-secondary)",fontFamily:"var(--font-mono)"},children:Object.entries(e.shape_distribution).sort((e,t)=>t[1]-e[1]).map(([e,t])=>`${t} ${e}`).join(" · ")})]}),s&&e.user_authored_subagents_used.length>0&&(0,t.jsx)(u,{label:"Your subagents",children:e.user_authored_subagents_used.slice(0,4).map(e=>(0,t.jsxs)(g,{title:e.sample_prompt_preview,children:[e.type,e.count>1?` \xd7${e.count}`:""]},e.type))}),(i.length>0||a.length>0)&&(0,t.jsxs)(u,{label:"Skills loaded",children:[a.slice(0,4).map(e=>(0,t.jsxs)(g,{tone:"user",children:[e.skill,e.count>1?` \xd7${e.count}`:""]},e.skill)),i.slice(0,4).map(e=>(0,t.jsxs)(g,{tone:"stock",children:[e.skill,e.count>1?` \xd7${e.count}`:""]},e.skill))]}),(o.length>0||c.length>0)&&(0,t.jsxs)(u,{label:"Prompt frames",children:[c.map(e=>(0,t.jsxs)(g,{tone:"user",children:[d[e.frame]??e.frame,e.count>1?` \xd7${e.count}`:""]},e.frame)),o.map(e=>(0,t.jsxs)(g,{tone:"stock",children:[d[e.frame]??e.frame,e.count>1?` \xd7${e.count}`:""]},e.frame))]}),(x>0||p.external_refs.length>0||f>0)&&(0,t.jsxs)(u,{label:"Comm style",children:[x>0&&(0,t.jsx)("span",{style:{fontSize:12,color:"var(--af-text-secondary)",fontFamily:"var(--font-mono)"},children:[p.verbosity_distribution.short&&`${p.verbosity_distribution.short} short`,p.verbosity_distribution.medium&&`${p.verbosity_distribution.medium} med`,p.verbosity_distribution.long&&`${p.verbosity_distribution.long} long`,p.verbosity_distribution.very_long&&`${p.verbosity_distribution.very_long} v.long`].filter(Boolean).join(" · ")}),p.external_refs.length>0&&(0,t.jsxs)(g,{children:[p.external_refs.length," external ref",1===p.external_refs.length?"":"s"]}),p.steering.interrupts>0&&(0,t.jsxs)(g,{children:[p.steering.interrupts," interrupts"]}),p.steering.sessions_with_mid_run_redirect>0&&(0,t.jsxs)(g,{children:[p.steering.sessions_with_mid_run_redirect," mid-run redirect",1===p.steering.sessions_with_mid_run_redirect?"":"s"]})]}),(e.brainstorm_warmup_session_count>0||e.todo_ops_total>0||e.plan_mode_used)&&(0,t.jsxs)(u,{label:"Discipline",children:[e.brainstorm_warmup_session_count>0&&(0,t.jsxs)(g,{children:["brainstorm warmup ×",e.brainstorm_warmup_session_count]}),e.todo_ops_total>0&&(0,t.jsxs)(g,{children:[e.todo_ops_total," TodoWrite ops"]}),e.plan_mode_used&&(0,t.jsx)(g,{tone:"user",children:"Plan Mode used"})]})]}):null}function u({label:e,children:r}){return(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap",padding:"4px 0",fontSize:12},children:[(0,t.jsx)("span",{style:{minWidth:100,color:"var(--af-text-tertiary)",fontWeight:500,fontSize:11,textTransform:"uppercase",letterSpacing:"0.04em"},children:e}),(0,t.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",flex:1},children:r})]})}function g({children:e,tone:r,title:n}){return(0,t.jsx)("span",{title:n,style:{display:"inline-flex",alignItems:"center",padding:"2px 8px",borderRadius:999,fontSize:11,fontFamily:"var(--font-mono)",background:"user"===r?"var(--af-accent-subtle)":"var(--af-border-subtle)",color:"user"===r?"var(--af-accent)":"var(--af-text-secondary)",whiteSpace:"nowrap",maxWidth:280,overflow:"hidden",textOverflow:"ellipsis"},children:e})}function y({entry:e}){let r=new Date(e.start_iso).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}),n=Math.round(e.numbers.active_min),s=e.project.split("/").filter(Boolean).slice(-1)[0]??e.project,i=e.enrichment.outcome,o=e.enrichment.brief_summary;return(0,t.jsxs)("a",{href:`/sessions/${e.session_id}`,style:{display:"block",padding:"8px 0",borderBottom:"1px solid var(--af-border-subtle)",fontSize:13,color:"var(--af-text)",textDecoration:"none"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10},children:[(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--af-text-tertiary)",width:48},children:r}),(0,t.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)",minWidth:110,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:s}),(0,t.jsxs)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:"var(--af-text-tertiary)",width:40,textAlign:"right"},children:[n,"m"]}),i&&(0,t.jsx)(a.OutcomePill,{outcome:i,size:"sm",label:"text",agent:e.agent})]}),o&&(0,t.jsx)("div",{style:{marginTop:3,marginLeft:58,fontSize:13,color:"var(--af-text-secondary)",lineHeight:1.45,maxWidth:820},children:o})]})}function m({initial:e,entries:n,date:s,aiEnabled:i}){let[a,o]=(0,r.useState)(e),[l,d]=(0,r.useState)("idle"),[p,x]=(0,r.useState)(""),f=(0,r.useCallback)(async(e=!1)=>{d("streaming"),x("Starting...");let t=`/api/digest/day/${s}${e?"?force=1":""}`,r=await fetch(t,{method:"POST"});if(!r.ok||!r.body){d("error"),x(`Error ${r.status}`);return}let n=r.body.getReader(),i=new TextDecoder,a="";for(;;){let{done:e,value:t}=await n.read();if(e)break;let r=(a+=i.decode(t,{stream:!0})).split("\n\n");for(let e of(a=r.pop()??"",r)){let t=e.split("\n").find(e=>e.startsWith("data: "));if(t)try{let e=JSON.parse(t.slice(6));if("status"===e.type)x(e.text);else if("entry"===e.type)x(`Enriching ${e.index}/${e.total}${e.cost_usd?` \xb7 $${e.cost_usd.toFixed(4)}`:""}...`);else if("progress"===e.type){let t=Math.round(e.elapsed_ms/1e3),r=(e.bytes/1024).toFixed(1);x(`Claude composing… ${e.bytes.toLocaleString()} chars (${r} KB \xb7 ${t}s)`)}else if("digest"===e.type)o(e.digest),x("Rendering...");else if("saved"===e.type)x("Saved.");else if("error"===e.type){d("error"),x(e.message);return}}catch{}}}d("done"),x("")},[s]),h="streaming"===l,u=!!a?.headline,g=(0,r.useMemo)(()=>0!==n.length&&n.every(e=>"skipped_trivial"===e.enrichment.status),[n]),y=0===n.length,b=null;return(y||g||(b=y||g||u?(0,t.jsxs)("span",{style:{fontSize:10,color:"var(--af-text-tertiary)",display:"inline-flex",alignItems:"center",gap:6},children:["✓ Up to date",(0,t.jsx)("button",{onClick:()=>f(!0),disabled:h,title:"Re-roll the narrative without re-enriching capsules",style:{padding:"2px 7px",background:"transparent",border:"1px solid var(--af-border-subtle)",borderRadius:4,fontSize:10,color:"var(--af-text-secondary)",cursor:h?"default":"pointer",opacity:h?.6:1},children:h?"...":"Re-roll"})]}):(0,t.jsx)("button",{onClick:()=>f(!1),disabled:h,style:{padding:"4px 10px",background:"var(--af-accent)",color:"white",border:"none",borderRadius:5,cursor:h?"default":"pointer",fontSize:11,fontWeight:600,opacity:h?.6:1},children:h?"Generating...":a?"Generate (catch up)":"Generate digest"}),p&&(b=(0,t.jsxs)(t.Fragment,{children:[b,(0,t.jsx)("span",{style:{fontSize:10,color:"var(--af-text-tertiary)"},children:p})]}))),a)?(0,t.jsx)(c,{digest:a,entries:n,aiEnabled:i,actions:b}):(0,t.jsxs)(t.Fragment,{children:[b&&(0,t.jsx)("div",{style:{display:"flex",gap:10,padding:"14px 40px 0",alignItems:"center",flexWrap:"wrap"},children:b}),y?(0,t.jsx)("div",{style:{padding:28,textAlign:"center",color:"var(--af-text-tertiary)",fontSize:13},children:"No entries on this day."}):g?(0,t.jsx)("div",{style:{padding:28,textAlign:"center",color:"var(--af-text-tertiary)",fontSize:13},children:"💤 Warm-up only — every session was under a minute. No narrative needed."}):(0,t.jsx)("div",{style:{padding:28,textAlign:"center",color:"var(--af-text-secondary)",fontSize:13},children:"No digest generated yet — click Generate above."})]})}var b=e.i(22016);e.i(74472);var v=e.i(98572),j=e.i(56324),w=e.i(41783);let S=["rgba(45, 212, 191, 0.75)","rgba(167, 139, 250, 0.75)","rgba(248, 113, 113, 0.75)","rgba(52, 211, 153, 0.75)","rgba(251, 191, 36, 0.75)","rgba(236, 72, 153, 0.75)","rgba(34, 211, 238, 0.75)","rgba(168, 85, 247, 0.75)","rgba(244, 114, 82, 0.75)","rgba(96, 165, 250, 0.75)"];function k(e){let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r)|0;return S[Math.abs(t)%S.length]}function z(e){return k((0,v.canonicalProjectName)(e.projectName))}function _(e){return e.replace(/<[^>]+>/g,"").replace(/\s+/g," ").trim()}function M(e){let t=new Date(e);return`${t.getHours().toString().padStart(2,"0")}:${t.getMinutes().toString().padStart(2,"0")}`}function W({gantt:e,bursts:n=[],sessionEntries:s={}}){let i,[o,l]=(0,r.useState)(null),[d,c]=(0,r.useState)(null),[p,x]=(0,r.useState)(null),[f,h]=(0,r.useState)(!1),[u,g]=(0,r.useState)(null),[y,m]=(0,r.useState)(!1),S=(0,r.useRef)(null),T=p??d,I=(0,r.useMemo)(()=>{if(null===T)return null;let e=n[T];return e?new Set(e.sessionIds):null},[T,n]),R=(0,r.useMemo)(()=>{let t=new Map;for(let r of e.sessions){let e=(0,v.canonicalProjectName)(r.projectName),n=t.get(e);n?n.count++:t.set(e,{name:(0,j.prettyProjectName)(e),color:k(e),count:1})}return Array.from(t.values()).sort((e,t)=>t.count-e.count)},[e.sessions]),{rangeStartMs:B,rangeEndMs:D,hourMarks:P}=(0,r.useMemo)(()=>{if(0===e.sessions.length)return{rangeStartMs:e.dayStartMs,rangeEndMs:e.dayEndMs,hourMarks:[]};let t=1/0,r=-1/0;for(let n of e.sessions)for(let e of n.segments)e.startMs<t&&(t=e.startMs),e.endMs>r&&(r=e.endMs);let n=r+18e5,s=new Date(t-18e5);s.setMinutes(0,0,0);let i=new Date(n);i.setMinutes(0,0,0),i.setHours(i.getHours()+1);let a=Math.max(s.getTime(),e.dayStartMs),o=Math.min(i.getTime(),e.dayEndMs),l=[],d=new Date(a);for(d.setMinutes(0,0,0),d.getTime()<a&&d.setHours(d.getHours()+1);d.getTime()<=o;)l.push(d.getTime()),d.setHours(d.getHours()+1);return{rangeStartMs:a,rangeEndMs:o,hourMarks:l}},[e]),H=D-B,A=Math.max(700,Math.ceil(H/36e5*80)),F=33*e.sessions.length+3+8,E=e=>(e-B)/H*A,N="var(--af-surface)",L=y?n:n.slice(0,3),O=n.length-L.length;return(0,t.jsxs)(t.Fragment,{children:[n.length>0&&(0,t.jsxs)("div",{className:"af-panel",style:{marginBottom:16},children:[(0,t.jsxs)("div",{className:"af-panel-header",children:[(0,t.jsx)("span",{children:"Concurrency"}),(0,t.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontWeight:400},children:"periods when ≥2 agents were actively working at once"}),(0,t.jsxs)("button",{type:"button",onClick:()=>h(!0),"aria-label":"How concurrency is detected",style:{marginLeft:"auto",display:"inline-flex",alignItems:"center",gap:5,padding:"3px 9px",background:"transparent",border:"1px solid var(--af-border-subtle)",borderRadius:100,fontSize:10,color:"var(--af-text-tertiary)",cursor:"pointer",fontWeight:500},children:[(0,t.jsx)("span",{style:{fontSize:11,lineHeight:1},children:"ⓘ"}),"How this is measured"]})]}),(0,t.jsxs)("div",{children:[L.map((r,n)=>{let s=p===n,i=d===n,a=r.projectDirs.map(t=>{let r=e.sessions.find(e=>e.projectDir===t);return r?(0,j.prettyProjectName)(r.projectName):t}).map(e=>{let t=e.split("/").filter(Boolean);return t.length>2?"…/"+t.slice(-2).join("/"):e});return(0,t.jsxs)("div",{onMouseEnter:()=>c(n),onMouseLeave:()=>c(null),onClick:()=>g(n),style:{display:"grid",gridTemplateColumns:"auto auto auto 1fr auto",gap:14,padding:"10px 18px",fontSize:12,borderBottom:"1px solid var(--af-border-subtle)",cursor:"pointer",background:s||i?"var(--af-surface-hover)":"transparent",alignItems:"center",transition:"background 0.12s"},title:"Open burst detail",children:[(0,t.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--af-text-secondary)",minWidth:110},children:[M(r.startMs),"–",M(r.endMs)]}),(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",padding:"2px 8px",borderRadius:10,fontFamily:"var(--font-mono)",fontSize:10,fontWeight:700,color:"white",background:r.crossProject?"rgba(167, 139, 250, 0.9)":"rgba(45, 212, 191, 0.9)",minWidth:28,justifyContent:"center"},children:["×",r.peak]}),r.crossProject?(0,t.jsx)("span",{style:{fontSize:9,color:"rgba(167, 139, 250, 1)",textTransform:"uppercase",letterSpacing:"0.04em",fontWeight:600},children:"cross-project"}):(0,t.jsx)("span",{}),(0,t.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a.join(", "),children:a.join(" · ")}),(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--af-text-secondary)",minWidth:60,textAlign:"right"},children:(0,j.formatDuration)(r.endMs-r.startMs)})]},`burst-row-${n}`)}),n.length>3&&(0,t.jsx)("button",{type:"button",onClick:()=>m(e=>!e),style:{width:"100%",padding:"10px 18px",background:"transparent",border:"none",borderTop:"1px solid var(--af-border-subtle)",fontSize:11,color:"var(--af-text-secondary)",cursor:"pointer",fontWeight:500,textAlign:"center"},children:y?"Show fewer (first 3) ↑":`Show all ${n.length} bursts (+${O} more) ↓`})]})]}),(0,t.jsxs)("div",{className:"af-panel",style:{overflow:"hidden"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"10px 16px",borderBottom:"1px solid var(--af-border-subtle)",fontSize:11,color:"var(--af-text-secondary)",flexWrap:"wrap"},children:[R.map(e=>{let r=e.name.split("/").filter(Boolean),n=r.length>2?"…/"+r.slice(-2).join("/"):e.name;return(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5,cursor:"default"},title:`${e.name} — ${e.count} session${1===e.count?"":"s"} on this day`,children:[(0,t.jsx)("span",{style:{width:8,height:8,borderRadius:2,background:e.color,flexShrink:0}}),(0,t.jsx)("span",{style:{maxWidth:160,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n}),(0,t.jsxs)("span",{style:{color:"var(--af-text-tertiary)",fontSize:10},children:["(",e.count,")"]})]},e.name)}),(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5,marginLeft:8,color:"var(--af-text-tertiary)",cursor:"default"},title:"Idle gap — the session was open but the agent was not actively working (gap > 3 minutes between events)",children:[(0,t.jsx)("span",{style:{width:16,height:8,borderRadius:2,background:"repeating-linear-gradient(45deg, var(--af-surface-hover), var(--af-surface-hover) 2px, var(--af-border-subtle) 2px, var(--af-border-subtle) 4px)",flexShrink:0}}),"idle"]})]}),(0,t.jsxs)("div",{ref:S,style:{overflow:"auto",maxHeight:"calc(100vh - 240px)",position:"relative"},onMouseLeave:()=>l(null),children:[(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:`220px ${A}px`,gridTemplateRows:`50px ${F}px`,width:220+A},children:[(0,t.jsxs)("div",{style:{position:"sticky",top:0,left:0,zIndex:3,background:N,borderBottom:"1px solid var(--af-border-subtle)",borderRight:"1px solid var(--af-border-subtle)",display:"flex",flexDirection:"column"},children:[(0,t.jsx)("div",{style:{height:24,display:"flex",alignItems:"center",justifyContent:"flex-end",padding:"0 10px",fontSize:9,color:"var(--af-text-tertiary)",letterSpacing:"0.04em",textTransform:"uppercase",fontWeight:600},children:n.length>0?"Concurrency":""}),(0,t.jsx)("div",{style:{height:26}})]}),(0,t.jsxs)("div",{style:{position:"sticky",top:0,zIndex:2,background:N,borderBottom:"1px solid var(--af-border-subtle)"},children:[(0,t.jsx)("svg",{width:A,height:24,style:{display:"block"},children:n.map((e,r)=>{let n=E(e.startMs),s=E(e.endMs)-n,i=Math.max(s,26),a=s<26?n+s/2-13:n,o=T===r,l=null!==T&&!o,x=e.crossProject?"rgba(167, 139, 250, 0.9)":"rgba(45, 212, 191, 0.9)";return(0,t.jsxs)("g",{children:[(0,t.jsx)("rect",{x:a,y:4,width:i,height:14,fill:x,rx:4,opacity:l?.3:1,stroke:p===r?"var(--af-text)":d===r?"var(--af-text-secondary)":"none",strokeWidth:p===r?1.5:1,style:{cursor:"pointer",transition:"opacity 0.12s"},onMouseEnter:()=>c(r),onMouseLeave:()=>c(null),onClick:()=>g(r),children:(0,t.jsx)("title",{children:`\xd7${e.peak} ${e.crossProject?"cross-project":"same-project"} \xb7 ${M(e.startMs)}–${M(e.endMs)} \xb7 ${(0,j.formatDuration)(e.endMs-e.startMs)} — click for detail`})}),(0,t.jsxs)("text",{x:a+i/2,y:15,textAnchor:"middle",fontSize:9,fontWeight:700,fill:"white",opacity:l?.3:1,style:{pointerEvents:"none"},children:["×",e.peak]})]},`burst-${r}`)})}),(0,t.jsx)("svg",{width:A,height:26,style:{display:"block"},children:P.map(e=>{let r=E(e),n=new Date(e).getHours()%3==0;return(0,t.jsx)("text",{x:r,y:18,textAnchor:"middle",fontSize:10,fill:n?"var(--af-text-secondary)":"var(--af-text-tertiary)",fontWeight:n?600:400,children:M(e)},e)})})]}),(0,t.jsx)("div",{style:{position:"sticky",left:0,zIndex:1,background:N,borderRight:"1px solid var(--af-border-subtle)"},children:(0,t.jsx)("div",{style:{paddingTop:3},children:e.sessions.map((e,r)=>{let n=z(e),s=e.firstUserPreview?_(e.firstUserPreview).slice(0,45):(0,j.prettyProjectName)(e.projectName),i=(0,j.prettyProjectName)(e.projectName),a=null!==I&&!I.has(e.id);return(0,t.jsxs)("div",{style:{height:30,marginBottom:3,display:"flex",alignItems:"center",gap:6,padding:"0 8px 0 6px",background:r%2==1?"var(--af-surface-hover)":"transparent",opacity:a?.3:1,transition:"opacity 0.12s"},children:[(0,t.jsx)("span",{style:{width:6,height:6,borderRadius:2,background:n,flexShrink:0}}),(0,t.jsx)(w.AgentIcon,{agent:e.agent,size:11}),(0,t.jsx)(b.default,{href:`/sessions/${e.id}`,style:{fontSize:10.5,color:"var(--af-text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:1.2,textDecoration:"none"},title:`${_(e.firstUserPreview??"")} — ${i}`,children:s})]},`label-${e.id}-${r}`)})})}),(0,t.jsx)("div",{children:(0,t.jsxs)("svg",{width:A,height:F,style:{display:"block"},children:[(0,t.jsx)("defs",{children:(0,t.jsxs)("pattern",{id:"gantt-idle-stripes",patternUnits:"userSpaceOnUse",width:"6",height:"6",patternTransform:"rotate(45)",children:[(0,t.jsx)("rect",{width:"6",height:"6",fill:"var(--af-surface-hover)"}),(0,t.jsx)("line",{x1:"0",y1:"0",x2:"0",y2:"6",stroke:"var(--af-border-subtle)",strokeWidth:"1.5"})]})}),P.map(e=>{let r=E(e),n=new Date(e).getHours()%3==0;return(0,t.jsx)("line",{x1:r,y1:0,x2:r,y2:F,stroke:"var(--af-border-subtle)",strokeWidth:n?.8:.4,strokeDasharray:n?void 0:"2 4"},e)}),e.sessions.map((e,r)=>{let n=33*r+3,s=z(e),i=null!==I&&!I.has(e.id);return(0,t.jsxs)("g",{opacity:i?.25:1,style:{transition:"opacity 0.12s"},children:[r%2==1&&(0,t.jsx)("rect",{x:0,y:n,width:A,height:30,fill:"var(--af-surface-hover)",opacity:.25}),e.segments.map((r,i)=>{let a=E(r.startMs),o=Math.max(E(r.endMs)-a,4);return(0,t.jsx)("rect",{x:a,y:n+5,width:o,height:20,fill:s,rx:3,style:{cursor:"pointer"},onMouseEnter:t=>{let r=t.currentTarget.closest("svg").getBoundingClientRect();l({session:e,x:t.clientX-r.left+220,y:n+30+24+26+4})}},i)}),e.segments.length>1&&e.segments.slice(0,-1).map((r,s)=>{let i=e.segments[s+1],a=E(r.endMs),o=E(i.startMs);return o-a<4?null:(0,t.jsx)("rect",{x:a+1,y:n+7,width:o-a-2,height:16,fill:"url(#gantt-idle-stripes)",rx:2,opacity:.7},`idle-${s}`)}),(0,t.jsxs)("text",{x:Math.min(E(e.endMs)+8,A-100),y:n+15+3.5,fontSize:9,fill:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",children:[(0,j.formatDuration)(e.activeMs)," · ",M(e.startMs),"–",M(e.endMs)]})]},`row-${e.id}-${r}`)})]})})]}),o&&(0,t.jsxs)("div",{style:{position:"absolute",left:Math.max(8,Math.min(o.x,220+A-340)),top:Math.min(o.y,50+F-100),zIndex:50,background:"var(--af-surface-elevated)",border:"1px solid var(--af-border-subtle)",borderRadius:8,padding:"10px 14px",fontSize:11,color:"var(--af-text)",pointerEvents:"none",boxShadow:"0 4px 12px rgba(0,0,0,0.15)",maxWidth:340,lineHeight:1.45},children:[(i=s[o.session.id])?i.outcome?(0,t.jsx)("div",{style:{marginBottom:6},children:(0,t.jsx)(a.OutcomePill,{outcome:i.outcome,size:"sm",agent:o.session.agent})}):"done"!==i.enrichmentStatus&&"skipped_trivial"!==i.enrichmentStatus?(0,t.jsx)("div",{style:{marginBottom:6},children:(0,t.jsx)(a.OutcomePill,{outcome:null,pending:!0,sessionId:o.session.id,localDay:i.localDay,size:"sm",agent:o.session.agent})}):null:null,(0,t.jsx)("div",{style:{fontWeight:600,marginBottom:4},children:s[o.session.id]?.briefSummary||_(o.session.firstUserPreview??"").slice(0,100)||(0,j.prettyProjectName)(o.session.projectName)}),(0,t.jsxs)("div",{style:{fontSize:10,color:"var(--af-text-secondary)",marginBottom:6,fontFamily:"var(--font-mono)"},children:[(0,j.prettyProjectName)(o.session.projectName),o.session.model&&` \xb7 ${o.session.model}`]}),(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"3px 12px",fontSize:10,color:"var(--af-text-secondary)"},children:[(0,t.jsxs)("span",{children:["Active: ",(0,t.jsx)("strong",{children:(0,j.formatDuration)(o.session.activeMs)})]}),(0,t.jsxs)("span",{children:["Segments: ",o.session.segments.length]}),(0,t.jsxs)("span",{children:["Range: ",M(o.session.startMs),"–",M(o.session.endMs)]}),(0,t.jsxs)("span",{children:["Tokens:"," ",(0,j.formatTokens)(o.session.totalUsage.input+o.session.totalUsage.cacheRead+o.session.totalUsage.cacheWrite),"/",(0,j.formatTokens)(o.session.totalUsage.output)]})]})]})]})]}),f&&(0,t.jsx)($,{onClose:()=>h(!1)}),null!==u&&n[u]&&(0,t.jsx)(C,{burst:n[u],gantt:e,sessionEntries:s,onClose:()=>g(null),onShowInTimeline:()=>{g(null),null!==u&&(e=>{x(t=>t===e?null:e);let t=n[e],r=S.current;if(!t||!r)return;let s=220+(E(t.startMs)+E(t.endMs))/2-r.clientWidth/2;r.scrollTo({left:Math.max(0,s),behavior:"smooth"})})(u)}})]})}function $({onClose:e}){return(0,r.useEffect)(()=>{let t=t=>{"Escape"===t.key&&e()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e]),(0,t.jsx)("div",{role:"dialog","aria-modal":"true","aria-labelledby":"concurrency-modal-title",onClick:e,style:{position:"fixed",inset:0,zIndex:200,background:"rgba(0, 0, 0, 0.5)",backdropFilter:"blur(4px)",WebkitBackdropFilter:"blur(4px)",display:"flex",alignItems:"center",justifyContent:"center",padding:20},children:(0,t.jsxs)("div",{onClick:e=>e.stopPropagation(),style:{background:"var(--af-surface-elevated)",border:"1px solid var(--af-border-subtle)",borderRadius:12,maxWidth:560,width:"100%",maxHeight:"85vh",overflow:"auto",boxShadow:"0 16px 48px rgba(0, 0, 0, 0.3)"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"18px 22px",borderBottom:"1px solid var(--af-border-subtle)"},children:[(0,t.jsx)("h2",{id:"concurrency-modal-title",style:{margin:0,fontSize:16,fontWeight:700,letterSpacing:"-0.01em"},children:"How concurrency is measured"}),(0,t.jsx)("button",{type:"button",onClick:e,"aria-label":"Close",style:{background:"transparent",border:"none",color:"var(--af-text-tertiary)",fontSize:22,lineHeight:1,cursor:"pointer",padding:0,width:28,height:28},children:"×"})]}),(0,t.jsxs)("div",{style:{padding:"18px 22px",fontSize:13,color:"var(--af-text-secondary)",lineHeight:1.55},children:[(0,t.jsxs)("p",{style:{margin:"0 0 14px"},children:["A ",(0,t.jsx)("strong",{style:{color:"var(--af-text)"},children:"concurrency burst"})," ","is a window of time when two or more Claude Code sessions were actively working in parallel. The goal is to surface moments when you were running a multi-agent fleet — not every accidental tab overlap."]}),(0,t.jsx)("h3",{style:{margin:"18px 0 8px",fontSize:12,fontWeight:700,color:"var(--af-text)",textTransform:"uppercase",letterSpacing:"0.04em"},children:'1. What counts as "active"'}),(0,t.jsxs)("p",{style:{margin:"0 0 6px"},children:["Each session's events are split into"," ",(0,t.jsx)("strong",{style:{color:"var(--af-text)"},children:"active segments"})," — stretches of time where no gap between consecutive events exceeds"," ",(0,t.jsx)("strong",{style:{color:"var(--af-text)"},children:"3 minutes"}),". Any longer gap (walked away, laptop closed, thinking) splits the session into separate segments."]}),(0,t.jsx)("p",{style:{margin:"0 0 6px",fontSize:12,color:"var(--af-text-tertiary)"},children:'This is the same definition used for the "active time" metric on the dashboard, so numbers stay consistent.'}),(0,t.jsx)("h3",{style:{margin:"18px 0 8px",fontSize:12,fontWeight:700,color:"var(--af-text)",textTransform:"uppercase",letterSpacing:"0.04em"},children:"2. Detecting overlap"}),(0,t.jsxs)("p",{style:{margin:"0 0 6px"},children:["A sweep-line walks every segment start/end across all sessions. Whenever the active count is ≥2, that stretch becomes a raw overlap. The ",(0,t.jsx)("strong",{style:{color:"var(--af-text)"},children:"peak"})," ","reported on each burst is the maximum active count reached anywhere inside it."]}),(0,t.jsx)("h3",{style:{margin:"18px 0 8px",fontSize:12,fontWeight:700,color:"var(--af-text)",textTransform:"uppercase",letterSpacing:"0.04em"},children:"3. Cleaning up noise"}),(0,t.jsx)("p",{style:{margin:"0 0 6px"},children:"Raw overlaps are noisy — a typical day produces dozens of sub-minute artifacts from switching between sessions. Two rules collapse them into human-readable bursts:"}),(0,t.jsxs)("ul",{style:{margin:"6px 0 0 0",paddingLeft:22},children:[(0,t.jsxs)("li",{style:{marginBottom:4},children:[(0,t.jsx)("strong",{style:{color:"var(--af-text)"},children:"Drop under 1 minute"})," — overlaps shorter than that are almost always tab-switch artifacts, not real parallel work."]}),(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{style:{color:"var(--af-text)"},children:"Merge within 10 minutes"})," — two overlaps separated by less than 10 minutes of idle time fuse into a single burst. A morning of back-and-forth agent work becomes one burst, not forty."]})]}),(0,t.jsx)("h3",{style:{margin:"18px 0 8px",fontSize:12,fontWeight:700,color:"var(--af-text)",textTransform:"uppercase",letterSpacing:"0.04em"},children:"4. Same-project vs cross-project"}),(0,t.jsxs)("p",{style:{margin:"0 0 6px"},children:["Bursts are colored by whether the involved sessions span more than one project directory."," ",(0,t.jsx)("span",{style:{color:"rgba(167, 139, 250, 1)",fontWeight:600},children:"Purple = cross-project"})," ","— different repos running at once, usually genuine fleet work."," ",(0,t.jsx)("span",{style:{color:"rgba(45, 212, 191, 1)",fontWeight:600},children:"Teal = same-project"})," ","— multiple sessions in one repo, usually context-switching inside a single task."]}),(0,t.jsx)("h3",{style:{margin:"18px 0 8px",fontSize:12,fontWeight:700,color:"var(--af-text)",textTransform:"uppercase",letterSpacing:"0.04em"},children:"Why bursts, not runs"}),(0,t.jsx)("p",{style:{margin:"0 0 6px"},children:'An earlier version reported every raw overlap as a separate "parallel run". On a busy day that produced 40–80 entries, most of them seconds long, most of them meaningless. Bursts are the unit humans actually think in: "this morning I was running 3 agents at once for about 20 minutes."'})]})]})})}function C({burst:e,gantt:n,sessionEntries:s,onClose:i,onShowInTimeline:o}){(0,r.useEffect)(()=>{let e=e=>{"Escape"===e.key&&i()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[i]);let[l,d]=(0,r.useState)(null),c=(0,r.useRef)(new Map),p=(0,r.useMemo)(()=>{let e=new Map;for(let t of n.sessions)e.set(t.id,t);return e},[n]),x=e.sessionIds.map(e=>p.get(e)).filter(e=>!!e);x.sort((e,t)=>e.startMs-t.startMs);let f=e=>{d(e);let t=c.current.get(e);t&&t.scrollIntoView({behavior:"smooth",block:"center"})},h=Math.min(e.startMs,...x.map(e=>e.startMs)),u=Math.max(e.endMs,...x.map(e=>e.endMs)),g=h-9e5,y=u+9e5,m=y-g,v=22+(25*x.length-3)+6,w=e=>(e-g)/m*510,S=[];{let e=new Date(g);for(e.setMinutes(0,0,0),e.getTime()<g&&e.setHours(e.getHours()+1);e.getTime()<=y;)S.push(e.getTime()),e.setHours(e.getHours()+1)}let k=w(e.startMs),W=w(e.endMs),$=e.endMs-e.startMs;return(0,t.jsx)("div",{role:"dialog","aria-modal":"true","aria-labelledby":"burst-detail-title",onClick:i,style:{position:"fixed",inset:0,zIndex:200,background:"rgba(0, 0, 0, 0.55)",backdropFilter:"blur(4px)",WebkitBackdropFilter:"blur(4px)",display:"flex",alignItems:"center",justifyContent:"center",padding:20},children:(0,t.jsxs)("div",{onClick:e=>e.stopPropagation(),style:{background:"var(--af-surface-elevated)",border:"1px solid var(--af-border-subtle)",borderRadius:12,width:"min(720px, 100%)",maxHeight:"90vh",display:"flex",flexDirection:"column",boxShadow:"0 20px 60px rgba(0, 0, 0, 0.4)"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"16px 22px",borderBottom:"1px solid var(--af-border-subtle)"},children:[(0,t.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:4},children:[(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",padding:"3px 10px",borderRadius:10,fontFamily:"var(--font-mono)",fontSize:11,fontWeight:700,color:"white",background:e.crossProject?"rgba(167, 139, 250, 0.95)":"rgba(45, 212, 191, 0.95)"},children:["×",e.peak," peak"]}),e.crossProject&&(0,t.jsx)("span",{style:{fontSize:9,color:"rgba(167, 139, 250, 1)",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:700},children:"cross-project"})]}),(0,t.jsxs)("h2",{id:"burst-detail-title",style:{margin:0,fontSize:16,fontWeight:700,letterSpacing:"-0.01em",display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,t.jsxs)("span",{style:{fontFamily:"var(--font-mono)"},children:[M(e.startMs),"–",M(e.endMs)]}),(0,t.jsx)("span",{style:{fontSize:12,fontWeight:400,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:(0,j.formatDuration)($)}),(0,t.jsxs)("span",{style:{fontSize:12,fontWeight:400,color:"var(--af-text-tertiary)"},children:["· ",x.length," session",1===x.length?"":"s"]})]})]}),(0,t.jsx)("button",{type:"button",onClick:o,style:{padding:"6px 12px",background:"transparent",border:"1px solid var(--af-border-subtle)",borderRadius:6,fontSize:11,color:"var(--af-text-secondary)",cursor:"pointer",fontWeight:500,whiteSpace:"nowrap"},title:"Pin this burst on the main timeline and close",children:"Show in timeline →"}),(0,t.jsx)("button",{type:"button",onClick:i,"aria-label":"Close",style:{background:"transparent",border:"none",color:"var(--af-text-tertiary)",fontSize:24,lineHeight:1,cursor:"pointer",padding:0,width:28,height:28},children:"×"})]}),(0,t.jsxs)("div",{style:{overflow:"auto",padding:"18px 22px"},children:[(0,t.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:8,fontWeight:600},children:"Timeline (shaded = burst window)"}),(0,t.jsx)("div",{style:{background:"var(--af-surface)",border:"1px solid var(--af-border-subtle)",borderRadius:8,padding:"8px 10px",overflow:"auto"},children:(0,t.jsxs)("svg",{width:534,height:v,style:{display:"block"},children:[x.map((e,r)=>{let n=22+25*r+11,s=z(e),i=l===e.id;return(0,t.jsxs)("g",{onClick:()=>f(e.id),style:{cursor:"pointer"},children:[(0,t.jsx)("title",{children:`Track ${r+1} — click to focus in list below`}),(0,t.jsx)("circle",{cx:12,cy:n,r:9,fill:i?s:"var(--af-surface-elevated)",stroke:s,strokeWidth:i?2:1.5}),(0,t.jsx)("text",{x:12,y:n+3.5,textAnchor:"middle",fontSize:10,fontWeight:700,fill:i?"#fff":"var(--af-text)",style:{pointerEvents:"none"},children:r+1})]},`num-${e.id}`)}),(0,t.jsxs)("g",{transform:"translate(24, 0)",children:[(0,t.jsx)("rect",{x:k,y:0,width:Math.max(W-k,2),height:v,fill:e.crossProject?"rgba(167, 139, 250, 0.14)":"rgba(45, 212, 191, 0.14)"}),(0,t.jsx)("line",{x1:k,x2:k,y1:0,y2:v,stroke:e.crossProject?"rgba(167, 139, 250, 0.7)":"rgba(45, 212, 191, 0.7)",strokeWidth:1,strokeDasharray:"3 2"}),(0,t.jsx)("line",{x1:W,x2:W,y1:0,y2:v,stroke:e.crossProject?"rgba(167, 139, 250, 0.7)":"rgba(45, 212, 191, 0.7)",strokeWidth:1,strokeDasharray:"3 2"}),S.map(e=>{let r=w(e);return(0,t.jsxs)("g",{children:[(0,t.jsx)("line",{x1:r,x2:r,y1:22,y2:v,stroke:"var(--af-border-subtle)",strokeWidth:.5,strokeDasharray:"2 3"}),(0,t.jsx)("text",{x:r,y:16,textAnchor:"middle",fontSize:9,fill:"var(--af-text-tertiary)",children:M(e)})]},`mini-hm-${e}`)}),x.map((e,r)=>{let n=22+25*r,s=z(e),i=l===e.id;return(0,t.jsxs)("g",{children:[(0,t.jsx)("rect",{x:0,y:n,width:510,height:22,fill:i?"rgba(255,255,255,0.05)":"transparent",onClick:()=>f(e.id),style:{cursor:"pointer"}}),e.segments.map((e,r)=>{let a=w(e.startMs),o=Math.max(w(e.endMs)-a,2);return(0,t.jsx)("rect",{x:a,y:n+3,width:o,height:16,fill:s,rx:2,stroke:i?"var(--af-text)":"none",strokeWidth:+!!i,style:{pointerEvents:"none"}},`mini-seg-${r}`)})]},`mini-row-${e.id}`)})]})]})}),(0,t.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",margin:"18px 0 8px",fontWeight:600},children:"Sessions in this burst"}),(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:x.map((r,n)=>{let i,o,d,p=z(r),x=(t=>{let r=0;for(let n of t.segments){let t=Math.max(n.startMs,e.startMs),s=Math.min(n.endMs,e.endMs);s>t&&(r+=s-t)}return r})(r),f=$>0?Math.round(x/$*100):0,h=l===r.id;return(0,t.jsx)(b.default,{href:`/sessions/${r.id}`,ref:e=>{e?c.current.set(r.id,e):c.current.delete(r.id)},style:{display:"block",padding:"11px 14px",background:h?"var(--af-surface-hover)":"var(--af-surface)",border:h?"1px solid var(--af-text-tertiary)":"1px solid var(--af-border-subtle)",borderLeft:`3px solid ${p}`,borderRadius:8,textDecoration:"none",color:"var(--af-text)",fontSize:12,lineHeight:1.45,transition:"background 0.15s, border-color 0.15s",boxShadow:h?`0 0 0 2px ${p}`:"none"},children:(0,t.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:10},children:[(0,t.jsx)("span",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:20,height:20,borderRadius:"50%",background:h?p:"transparent",border:`1.5px solid ${p}`,color:h?"#fff":"var(--af-text)",fontSize:10,fontWeight:700,flexShrink:0,marginTop:2},"aria-label":`Track ${n+1}`,children:n+1}),(0,t.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,t.jsx)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",marginBottom:3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:(0,j.prettyProjectName)(r.projectName),children:(o=(i=(0,j.prettyProjectName)(r.projectName)).split("/").filter(Boolean)).length>2?"…/"+o.slice(-2).join("/"):i}),(0,t.jsx)("div",{style:{fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:_(r.firstUserPreview??""),children:_(r.firstUserPreview??"")||(0,t.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"(no user message)"})}),r.lastAgentPreview&&(0,t.jsxs)("div",{style:{fontSize:11,color:"var(--af-text-secondary)",marginTop:3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontStyle:"italic"},title:_(r.lastAgentPreview),children:["↳ ",_(r.lastAgentPreview)]})]}),(0,t.jsxs)("div",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"var(--af-text-tertiary)",textAlign:"right",whiteSpace:"nowrap",flexShrink:0,display:"flex",flexDirection:"column",alignItems:"flex-end",gap:4},children:[(d=s[r.id],d?.outcome?(0,t.jsx)(a.OutcomePill,{outcome:d.outcome,size:"sm",label:"text",agent:r.agent}):null),(0,t.jsxs)("div",{style:{color:"var(--af-text-secondary)"},children:[(0,j.formatDuration)(x)," ",(0,t.jsxs)("span",{style:{opacity:.6},children:["(",f,"%)"]})]}),(0,t.jsx)("div",{style:{fontSize:9,marginTop:2},children:"in burst"})]})]})},`burst-session-${r.id}`)})})]})]})})}function T({open:e,onClose:n,rows:s,aiEnabled:i}){let[a,o]=(0,r.useState)(new Set),[l,d]=(0,r.useState)(!1),[c,p]=(0,r.useState)(!1);(0,r.useEffect)(()=>{if(!e)return;let t=e=>{"Escape"===e.key&&n()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e,n]);let x=async()=>{if(0===a.size)return;d(!0);let e=Array.from(a).sort().reverse();try{for(let t of e){let e=`/api/digest/day/${t}${c?"?force=1":""}`,r=await fetch(e,{method:"POST"});if(r.body){let e=r.body.getReader();for(;!(await e.read()).done;);}}}finally{d(!1),o(new Set)}};return e?(0,t.jsx)("div",{style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.4)",zIndex:200,display:"flex",justifyContent:"flex-end"},onClick:n,children:(0,t.jsxs)("div",{onClick:e=>e.stopPropagation(),style:{width:"min(440px, 100%)",height:"100%",background:"var(--af-surface-elevated)",borderLeft:"1px solid var(--af-border-subtle)",display:"flex",flexDirection:"column",boxShadow:"-12px 0 32px rgba(0,0,0,0.25)"},children:[(0,t.jsxs)("header",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 18px",borderBottom:"1px solid var(--af-border-subtle)"},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{style:{fontSize:15,fontWeight:700,margin:0},children:"Backfill digests"}),(0,t.jsx)("p",{style:{fontSize:11,color:"var(--af-text-tertiary)",margin:"2px 0 0"},children:"Each selected day enqueues a job. You can close this drawer."})]}),(0,t.jsx)("button",{type:"button",onClick:n,"aria-label":"Close",style:{background:"transparent",border:"none",color:"var(--af-text-tertiary)",fontSize:22,cursor:"pointer"},children:"×"})]}),!i&&(0,t.jsx)("div",{style:{padding:12,margin:18,background:"rgba(237,137,54,0.1)",borderRadius:6,fontSize:12,color:"var(--af-text)"},children:"AI features are off — only deterministic digests will be written. Enable AI in Settings to generate narratives."}),(0,t.jsxs)("div",{style:{display:"flex",gap:6,padding:"10px 18px",borderBottom:"1px solid var(--af-border-subtle)",flexWrap:"wrap",fontSize:11},children:[(0,t.jsx)(I,{onClick:()=>o(new Set(s.filter(e=>"pending"===e.status).map(e=>e.date))),children:"Select pending"}),(0,t.jsx)(I,{onClick:()=>o(new Set(s.filter(e=>"empty"!==e.status).map(e=>e.date))),children:"Select all with entries"}),(0,t.jsx)(I,{onClick:()=>o(new Set),children:"Clear"}),(0,t.jsxs)("label",{style:{marginLeft:"auto",display:"inline-flex",alignItems:"center",gap:4,fontSize:11,color:"var(--af-text-secondary)",cursor:"pointer"},children:[(0,t.jsx)("input",{type:"checkbox",checked:c,onChange:e=>p(e.target.checked)}),"force regen"]})]}),(0,t.jsx)("div",{style:{flex:1,overflowY:"auto"},children:s.map(e=>(0,t.jsxs)("label",{style:{display:"grid",gridTemplateColumns:"auto 110px 80px 1fr",gap:10,alignItems:"center",padding:"8px 18px",borderBottom:"1px solid var(--af-border-subtle)",fontSize:12,cursor:"empty"===e.status?"default":"pointer",opacity:"empty"===e.status?.5:1},children:[(0,t.jsx)("input",{type:"checkbox",disabled:"empty"===e.status,checked:a.has(e.date),onChange:()=>{var t;return t=e.date,void o(e=>{let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r})}}),(0,t.jsx)("span",{children:e.day_label}),(0,t.jsx)("span",{style:{fontSize:10,color:"generated"===e.status?"#48bb78":"pending"===e.status?"#ed8936":"var(--af-text-tertiary)"},children:"generated"===e.status?"✓ ready":"pending"===e.status?"• pending":"—"}),(0,t.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"var(--af-text-tertiary)",textAlign:"right"},children:[e.entry_count>0?`${e.entry_count} sess`:"",e.pr_count>0?` \xb7 ${e.pr_count} PR`:""]})]},e.date))}),(0,t.jsxs)("footer",{style:{padding:"12px 18px",borderTop:"1px solid var(--af-border-subtle)",display:"flex",gap:10,alignItems:"center"},children:[(0,t.jsxs)("span",{style:{fontSize:12,color:"var(--af-text-secondary)",flex:1},children:[a.size," day",1===a.size?"":"s"," selected"]}),(0,t.jsx)("button",{type:"button",onClick:n,style:{padding:"6px 12px",background:"transparent",border:"1px solid var(--af-border-subtle)",borderRadius:6,fontSize:12,cursor:"pointer"},children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:x,disabled:l||0===a.size,style:{padding:"6px 14px",background:"var(--af-accent)",color:"white",border:"none",borderRadius:6,fontSize:12,fontWeight:600,cursor:l||0===a.size?"default":"pointer",opacity:l||0===a.size?.6:1},children:l?`Enqueueing… (${a.size})`:`Generate ${a.size}`})]})]})}):null}function I({onClick:e,children:r}){return(0,t.jsx)("button",{type:"button",onClick:e,style:{padding:"3px 10px",background:"transparent",border:"1px solid var(--af-border-subtle)",borderRadius:5,fontSize:11,color:"var(--af-text-secondary)",cursor:"pointer"},children:r})}var R=e.i(18566);function B(e){if(e<6e4)return`${Math.round(e/1e3)}s`;let t=Math.round(e/6e4);if(t<60)return`${t}m`;let r=Math.floor(t/60),n=t%60;return n?`${r}h ${n}m`:`${r}h`}function D({date:e,today:n,prevDay:s,nextDay:i,dayStats:a,hrefForDate:o=e=>`/day/${e}`}){let l,d,c,p,x,f,h=(0,R.useRouter)(),[u,g]=(0,r.useState)(!1),[y,m]=(0,r.useMemo)(()=>{let[t,r]=e.split("-").map(Number);return[t,r]},[e]),[v,j]=(0,r.useState)(y),[w,S]=(0,r.useState)(m),[k,z]=(0,r.useState)(null),[_,M]=(0,r.useState)(null),W=(0,r.useMemo)(()=>{let e=new Map;for(let t of a)e.set(t.date,t);return e},[a]),$=(0,r.useMemo)(()=>{let e=new Date(v,w-1,1).getDay(),t=new Date(v,w,0).getDate(),r=[];for(let t=0;t<e;t++)r.push(null);for(let e=1;e<=t;e++){let t=String(w).padStart(2,"0"),n=String(e).padStart(2,"0");r.push(`${v}-${t}-${n}`)}return r},[v,w]),C=(0,r.useMemo)(()=>{let e=0;for(let t of a)t.airTimeMs>e&&(e=t.airTimeMs);return e},[a]),T=new Date(v,w-1).toLocaleString(void 0,{month:"long",year:"numeric"}),I=e=>{let t=w+e,r=v;t<1&&(t=12,r--),t>12&&(t=1,r++),S(t),j(r)};return(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",position:"relative"},children:[s?(0,t.jsx)(b.default,{href:o(s),style:{padding:"5px 10px",border:"1px solid var(--af-border-subtle)",borderRadius:6,fontSize:11,color:"var(--af-text-secondary)"},children:"←"}):(0,t.jsx)("span",{style:{padding:"5px 10px",opacity:.3,fontSize:11,color:"var(--af-text-tertiary)"},children:"←"}),(0,t.jsx)("button",{type:"button",onClick:()=>{j(y),S(m),g(e=>!e)},style:{padding:"5px 12px",fontSize:12,fontFamily:"var(--font-mono)",border:"1px solid var(--af-border-subtle)",borderRadius:6,background:u?"var(--af-accent-subtle)":"transparent",color:u?"var(--af-accent)":"var(--af-text)",cursor:"pointer",fontWeight:500,minWidth:120,textAlign:"center"},children:e}),i?(0,t.jsx)(b.default,{href:o(i),style:{padding:"5px 10px",border:"1px solid var(--af-border-subtle)",borderRadius:6,fontSize:11,color:"var(--af-text-secondary)"},children:"→"}):(0,t.jsx)("span",{style:{padding:"5px 10px",opacity:.3,fontSize:11,color:"var(--af-text-tertiary)"},children:"→"}),(0,t.jsx)(b.default,{href:o(n),style:{padding:"5px 12px",border:"1px solid var(--af-border-subtle)",borderRadius:6,fontSize:11,color:e===n?"var(--af-accent)":"var(--af-text-secondary)",background:e===n?"var(--af-accent-subtle)":"transparent",fontWeight:500},children:"Today"}),u&&(0,t.jsxs)("div",{style:{position:"absolute",top:"calc(100% + 8px)",left:0,zIndex:60,background:"var(--af-surface)",border:"1px solid var(--af-border-subtle)",borderRadius:10,padding:"12px 14px",boxShadow:"0 8px 28px rgba(0,0,0,0.18)",minWidth:300},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:10},children:[(0,t.jsx)("button",{type:"button",onClick:()=>I(-1),style:{background:"transparent",border:"none",cursor:"pointer",color:"var(--af-text-secondary)",fontSize:14,padding:"2px 8px",borderRadius:4},children:"‹"}),(0,t.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"var(--af-text)"},children:T}),(0,t.jsx)("button",{type:"button",onClick:()=>I(1),style:{background:"transparent",border:"none",cursor:"pointer",color:"var(--af-text-secondary)",fontSize:14,padding:"2px 8px",borderRadius:4},children:"›"})]}),(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(7, 1fr)",gap:2,marginBottom:4},children:["Su","Mo","Tu","We","Th","Fr","Sa"].map(e=>(0,t.jsx)("div",{style:{textAlign:"center",fontSize:9,color:"var(--af-text-tertiary)",fontWeight:600,padding:"2px 0"},children:e},e))}),(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(7, 1fr)",gap:2},children:$.map((r,s)=>{if(!r)return(0,t.jsx)("div",{},`blank-${s}`);let i=W.get(r),a=i?.airTimeMs??0,l=i?.burstCount??0,d=r===e,c=r===n,p=r>n,x=a>0&&C>0?Math.min(1,a/C):0,f=parseInt(r.split("-")[2],10);return(0,t.jsxs)("button",{type:"button",onClick:()=>{g(!1),h.push(o(r))},disabled:p,onMouseEnter:e=>{if(p)return;let t=e.currentTarget.getBoundingClientRect(),n=e.currentTarget.offsetParent?.getBoundingClientRect()??t;z(r),M({x:t.left-n.left+t.width/2,y:t.bottom-n.top+6})},onMouseLeave:()=>{z(null),M(null)},style:{position:"relative",width:40,height:40,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:1,border:d?"2px solid var(--af-accent)":c?"1px solid var(--af-text-tertiary)":"1px solid transparent",borderRadius:6,background:x>0?`rgba(45, 212, 191, ${.08+.35*x})`:"transparent",color:p?"var(--af-text-tertiary)":d?"var(--af-accent)":"var(--af-text)",cursor:p?"not-allowed":"pointer",fontSize:11,fontWeight:d?700:400,fontFamily:"var(--font-mono)",padding:0,opacity:p?.4:1},children:[(0,t.jsx)("span",{style:{lineHeight:1},children:f}),a>0&&(0,t.jsx)("span",{style:{fontSize:8,color:d?"var(--af-accent)":"var(--af-text-tertiary)",lineHeight:1,fontWeight:600,marginTop:2},children:B(a)}),l>0&&(0,t.jsx)("span",{style:{position:"absolute",top:3,right:3,width:5,height:5,borderRadius:"50%",background:"rgba(167, 139, 250, 0.95)",boxShadow:"0 0 0 1px var(--af-surface)"}})]},r)})}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10,marginTop:10,paddingTop:8,borderTop:"1px solid var(--af-border-subtle)",fontSize:9,color:"var(--af-text-tertiary)"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5},children:[(0,t.jsx)("span",{children:"less"}),(0,t.jsx)("div",{style:{display:"flex",gap:2},children:[0,.15,.3,.5,.8].map((e,r)=>(0,t.jsx)("span",{style:{width:10,height:10,borderRadius:2,background:0===e?"var(--af-border-subtle)":`rgba(45, 212, 191, ${.08+.35*e})`}},r))}),(0,t.jsx)("span",{children:"more active"})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5},title:"Days with at least one concurrency burst",children:[(0,t.jsx)("span",{style:{width:5,height:5,borderRadius:"50%",background:"rgba(167, 139, 250, 0.95)"}}),"parallel"]})]}),k&&_&&(l=W.get(k),d=l?.sessions??0,c=l?.airTimeMs??0,p=l?.parallelMs??0,x=l?.burstCount??0,f=l?.peakConcurrency??0,(0,t.jsxs)("div",{style:{position:"absolute",left:Math.max(10,Math.min(_.x-110,290)),top:_.y,width:220,pointerEvents:"none",background:"var(--af-surface-elevated)",border:"1px solid var(--af-border-subtle)",borderRadius:8,padding:"9px 12px",boxShadow:"0 6px 22px rgba(0,0,0,0.22)",fontSize:11,color:"var(--af-text)",zIndex:65,lineHeight:1.5},children:[(0,t.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontWeight:700,fontSize:11,marginBottom:4},children:k}),0===d&&0===c&&0===p?(0,t.jsx)("div",{style:{color:"var(--af-text-tertiary)",fontSize:10},children:"no activity"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(P,{label:"sessions",value:String(d)}),(0,t.jsx)(P,{label:"active time",value:c>0?B(c):"—"}),p>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{style:{marginTop:4,paddingTop:4,borderTop:"1px dashed var(--af-border-subtle)"}}),(0,t.jsx)(P,{label:"parallel time",value:B(p)}),(0,t.jsx)(P,{label:"peak concurrency",value:`\xd7${f}`,accent:!0}),(0,t.jsx)(P,{label:"bursts",value:String(x)})]})]})]}))]})]})}function P({label:e,value:r,accent:n}){return(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",color:"var(--af-text-secondary)",fontSize:10},children:[(0,t.jsx)("span",{children:e}),(0,t.jsx)("strong",{style:{color:n?"rgba(167, 139, 250, 1)":"var(--af-text)"},children:r})]})}function H({label:e,defaultOpen:i=!0,children:a}){let[o,l]=(0,r.useState)(i);return(0,t.jsxs)("div",{style:{borderBottom:"1px solid var(--af-border-subtle)"},children:[(0,t.jsxs)("button",{type:"button",onClick:()=>l(e=>!e),style:{width:"100%",padding:"12px 40px",background:"transparent",border:"none",textAlign:"left",display:"flex",alignItems:"center",gap:8,cursor:"pointer",fontSize:11,fontWeight:700,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.08em"},children:[o?(0,t.jsx)(n.ChevronDown,{size:13}):(0,t.jsx)(s.ChevronRight,{size:13}),e]}),o&&(0,t.jsx)("div",{children:a})]})}e.s(["DayView",0,function({date:e,today:n,prev:s,next:a,initial:o,entries:l,aiEnabled:d,gantt:c,bursts:p,sessionEntries:x,backfillRows:f,dayStats:h}){let[u,g]=(0,r.useState)(!1),y=l.length>0&&l.every(e=>"skipped_trivial"===e.enrichment.status),b=l.length>0&&!y,v=c.sessions.length>0,j=new Date(`${e}T12:00:00`).toLocaleDateString("en-US",{weekday:"long",month:"long",day:"numeric",year:"numeric"}),w=f.filter(e=>"pending"===e.status).length;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("nav",{style:{padding:"14px 40px",display:"flex",gap:12,fontSize:12,borderBottom:"1px solid var(--af-border-subtle)",alignItems:"center",flexWrap:"wrap"},children:[(0,t.jsx)(D,{date:e,today:n,prevDay:s,nextDay:a??void 0,dayStats:h}),(0,t.jsxs)("button",{type:"button",onClick:()=>g(!0),style:{marginLeft:"auto",display:"inline-flex",alignItems:"center",gap:5,padding:"5px 10px",background:"transparent",border:"1px solid var(--af-border-subtle)",borderRadius:6,fontSize:11,color:"var(--af-text-secondary)",cursor:"pointer"},title:"Open the backfill multi-select drawer",children:[(0,t.jsx)(i,{size:12}),"Backfill digests",w>0&&(0,t.jsx)("span",{style:{fontSize:10,color:"#ed8936",fontWeight:700},children:w})]})]}),b||v?(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:0},children:[b&&(0,t.jsx)(H,{label:"Narrative",defaultOpen:!0,children:(0,t.jsx)(m,{initial:o,entries:l,date:e,aiEnabled:d})}),v&&(0,t.jsx)(H,{label:"Timeline & concurrency",defaultOpen:!0,children:(0,t.jsx)("div",{style:{padding:"8px 40px 40px"},children:(0,t.jsx)(W,{gantt:c,bursts:p,sessionEntries:x})})})]}):(0,t.jsxs)("div",{style:{padding:"60px 40px",textAlign:"center",color:"var(--af-text-secondary)"},children:[(0,t.jsx)("div",{style:{fontSize:14,marginBottom:6},children:j}),(0,t.jsx)("div",{style:{fontSize:13,color:"var(--af-text-tertiary)"},children:"No Claude Code activity on this day."})]}),(0,t.jsx)(T,{open:u,onClose:()=>g(!1),rows:f,aiEnabled:d})]})}],92566)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,25063,e=>{"use strict";let t=(0,e.i(75254).default)("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);e.s(["ArrowDown",0,t],25063)},55898,78360,e=>{"use strict";var t=e.i(18050),r=e.i(71645),o=e.i(75254);let a=(0,o.default)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var i=e.i(25063);let s=(0,o.default)("ArrowUpDown",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]);e.s(["DataTable",0,function({rows:e,columns:o,getRowKey:n,onRowClick:l,defaultSortKey:c,defaultSortDir:d="desc"}){let[p,u]=(0,r.useState)(c??null),[f,h]=(0,r.useState)(d),x=(0,r.useMemo)(()=>{if(!p)return e;let t=o.find(e=>e.key===p);if(!t||!t.sortValue)return e;let r="asc"===f?1:-1;return[...e].sort((e,o)=>{let a=t.sortValue(e),i=t.sortValue(o);return"number"==typeof a&&"number"==typeof i?(a-i)*r:String(a).localeCompare(String(i))*r})},[e,o,p,f]);return(0,t.jsx)("div",{style:{overflowX:"auto",border:"1px solid var(--af-border-subtle)",borderRadius:8,background:"var(--af-surface)"},children:(0,t.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:12,color:"var(--af-text)"},children:[(0,t.jsx)("thead",{children:(0,t.jsx)("tr",{children:o.map(e=>{let r=p===e.key,o=!1!==e.sortable&&!!e.sortValue;return(0,t.jsx)("th",{onClick:()=>{!1!==e.sortable&&e.sortValue&&(p===e.key?h(e=>"asc"===e?"desc":"asc"):(u(e.key),h("desc")))},style:{textAlign:e.align??"left",fontSize:10,fontWeight:600,color:r?"var(--af-accent)":"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",padding:"10px 12px",borderBottom:"1px solid var(--af-border-subtle)",cursor:o?"pointer":"default",userSelect:"none",whiteSpace:"nowrap",width:e.width,background:"var(--af-surface)",position:"sticky",top:0},children:(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,verticalAlign:"middle"},children:[e.header,o&&(0,t.jsx)("span",{style:{display:"inline-flex",opacity:r?1:.35},children:r?"asc"===f?(0,t.jsx)(a,{size:10}):(0,t.jsx)(i.ArrowDown,{size:10}):(0,t.jsx)(s,{size:10})})]})},e.key)})})}),(0,t.jsxs)("tbody",{children:[x.map(e=>(0,t.jsx)("tr",{onClick:()=>l?.(e),style:{cursor:l?"pointer":"default",borderBottom:"1px solid var(--af-border-subtle)",transition:"background 0.1s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--af-surface-hover)"},onMouseLeave:e=>{e.currentTarget.style.background=""},children:o.map(r=>(0,t.jsx)("td",{style:{padding:"10px 12px",textAlign:r.align??"left",whiteSpace:"right"===r.align?"nowrap":void 0,verticalAlign:"top"},children:r.render(e)},r.key))},n(e))),0===x.length&&(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:o.length,style:{padding:"32px 16px",textAlign:"center",fontSize:12,color:"var(--af-text-tertiary)"},children:"No rows to display."})})]})]})})}],55898);let n=(0,o.default)("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),l=(0,o.default)("Table",[["path",{d:"M12 3v18",key:"108xh3"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}]]);var c=e.i(86619);function d({active:e,onClick:r,label:o,icon:a,rightEdge:i}){return(0,t.jsxs)("button",{type:"button",onClick:r,style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",fontSize:11,fontWeight:500,background:e?"var(--af-accent-subtle)":"transparent",color:e?"var(--af-accent)":"var(--af-text-secondary)",border:"none",borderRight:i?"none":"1px solid var(--af-border-subtle)",cursor:"pointer",letterSpacing:"0.02em"},children:[a,o]})}e.s(["useViewToggle",0,function(e,r="cards"){let[o,a,i]=(0,c.usePersistentBoolean)(e,"table"===r);return{mode:o?"table":"cards",toggle:(0,t.jsxs)("div",{style:{display:"inline-flex",border:"1px solid var(--af-border-subtle)",borderRadius:6,overflow:"hidden"},children:[(0,t.jsx)(d,{active:!o,onClick:()=>a(!1),label:"Cards",icon:(0,t.jsx)(n,{size:12})}),(0,t.jsx)(d,{active:o,onClick:()=>a(!0),label:"Table",icon:(0,t.jsx)(l,{size:12}),rightEdge:!0})]}),hydrated:i}}],78360)},57983,e=>{"use strict";var t=e.i(18050),r=e.i(22016),o=e.i(18566),a=e.i(56324),i=e.i(55898),s=e.i(78360),n=e.i(23614);function l({days:e,size:r="sm"}){return(0,t.jsx)("div",{style:{display:"inline-flex",gap:3,alignItems:"center"},children:e.map(e=>e.outcome?(0,t.jsx)(n.OutcomePill,{outcome:e.outcome,size:r,label:"icon"},e.date):(0,t.jsx)("span",{title:`${e.date} — no entries`,style:{display:"inline-block",width:"sm"===r?14:18,height:"sm"===r?14:18,borderRadius:99,background:"var(--af-border-subtle)",opacity:.5}},e.date))})}let c=[{key:"name",header:"Project",sortValue:e=>e.project.projectName,render:e=>(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{fontWeight:500,display:"inline-flex",alignItems:"center",gap:6},children:[(0,a.prettyProjectName)(e.project.projectName),e.project.worktreeCount>0&&(0,t.jsx)(p,{count:e.project.worktreeCount})]}),(0,t.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",maxWidth:320,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.project.projectName,children:e.project.projectName})]})},{key:"recent",header:"Recent (7d)",sortable:!1,render:e=>(0,t.jsx)(l,{days:e.recentDays})},{key:"sessions",header:"Sessions",sortValue:e=>e.project.metrics.sessionCount,align:"right",render:e=>(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:e.project.metrics.sessionCount.toLocaleString()})},{key:"turns",header:"Turns",sortValue:e=>e.project.metrics.totalTurns,align:"right",render:e=>(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:e.project.metrics.totalTurns.toLocaleString()})},{key:"tools",header:"Tool calls",sortValue:e=>e.project.metrics.totalToolCalls,align:"right",render:e=>(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:e.project.metrics.totalToolCalls.toLocaleString()})},{key:"airtime",header:"Agent time",sortValue:e=>e.project.metrics.totalAirTimeMs,align:"right",render:e=>(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,a.formatDuration)(e.project.metrics.totalAirTimeMs)})},{key:"tokens",header:"Tokens",sortValue:e=>e.project.metrics.totalTokens.input+e.project.metrics.totalTokens.output+e.project.metrics.totalTokens.cacheRead+e.project.metrics.totalTokens.cacheWrite,align:"right",render:e=>{let r=e.project.metrics.totalTokens.input+e.project.metrics.totalTokens.output+e.project.metrics.totalTokens.cacheRead+e.project.metrics.totalTokens.cacheWrite;return(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,a.formatTokens)(r)})}},{key:"lastActive",header:"Last active",sortValue:e=>e.project.lastActiveMs??0,align:"right",render:e=>(0,t.jsx)("span",{suppressHydrationWarning:!0,style:{fontFamily:"var(--font-mono)",fontSize:11},children:e.project.lastActiveMs?(0,a.formatRelative)(new Date(e.project.lastActiveMs).toISOString()):"—"})}];function d({row:e}){let o=e.project,i=o.metrics.totalTokens.input+o.metrics.totalTokens.output+o.metrics.totalTokens.cacheRead+o.metrics.totalTokens.cacheWrite,s=e.recentDays.some(e=>null!==e.outcome);return(0,t.jsxs)(r.default,{href:`/projects/${encodeURIComponent(o.projectDir)}`,className:"af-card",style:{display:"flex",flexDirection:"column",gap:10},children:[(0,t.jsxs)("div",{style:{fontSize:14,fontWeight:600,color:"var(--af-text)",display:"flex",alignItems:"center",gap:8},children:[(0,t.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:(0,a.prettyProjectName)(o.projectName)}),o.worktreeCount>0&&(0,t.jsx)(p,{count:o.worktreeCount})]}),(0,t.jsx)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:o.projectName}),s&&(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:10,color:"var(--af-text-tertiary)"},children:[(0,t.jsx)("span",{children:"recent:"}),(0,t.jsx)(l,{days:e.recentDays})]}),(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:6,marginTop:6,fontSize:11,color:"var(--af-text-secondary)"},children:[(0,t.jsx)(u,{label:"Sessions",value:String(o.metrics.sessionCount)}),(0,t.jsx)(u,{label:"Turns",value:String(o.metrics.totalTurns)}),(0,t.jsx)(u,{label:"Tools",value:String(o.metrics.totalToolCalls)}),(0,t.jsx)(u,{label:"Agent time",value:(0,a.formatDuration)(o.metrics.totalAirTimeMs)}),(0,t.jsx)(u,{label:"Tokens",value:(0,a.formatTokens)(i)}),(0,t.jsx)(u,{label:"Last",value:o.lastActiveMs?(0,a.formatRelative)(new Date(o.lastActiveMs).toISOString()):"—"})]})]})}function p({count:e}){return(0,t.jsxs)("span",{style:{fontSize:9,fontWeight:700,padding:"2px 7px",borderRadius:100,background:"rgba(167, 139, 250, 0.15)",color:"rgba(167, 139, 250, 1)",textTransform:"uppercase",letterSpacing:"0.04em",flexShrink:0},title:`${e} git worktree${1===e?"":"s"} rolled up into this project`,children:["+",e," wt"]})}function u({label:e,value:r}){return(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{fontSize:9,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.04em",fontWeight:600},children:e}),(0,t.jsx)("div",{style:{fontFamily:"var(--font-mono)",marginTop:2},suppressHydrationWarning:!0,children:r})]})}e.s(["ProjectsView",0,function({rows:e}){let r=(0,o.useRouter)(),{mode:a,toggle:n}=(0,s.useViewToggle)("cclens:projects:view");return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:14},children:n}),"table"===a?(0,t.jsx)(i.DataTable,{rows:e,getRowKey:e=>e.project.projectDir,onRowClick:e=>r.push(`/projects/${encodeURIComponent(e.project.projectDir)}`),defaultSortKey:"lastActive",defaultSortDir:"desc",columns:c}):(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(320px, 1fr))",gap:14},children:e.map(e=>(0,t.jsx)(d,{row:e},e.project.projectDir))})]})}],57983)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,25063,e=>{"use strict";let t=(0,e.i(75254).default)("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);e.s(["ArrowDown",0,t],25063)},55898,78360,e=>{"use strict";var t=e.i(18050),r=e.i(71645),o=e.i(75254);let a=(0,o.default)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var n=e.i(25063);let i=(0,o.default)("ArrowUpDown",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]);e.s(["DataTable",0,function({rows:e,columns:o,getRowKey:s,onRowClick:l,defaultSortKey:c,defaultSortDir:d="desc"}){let[p,u]=(0,r.useState)(c??null),[f,h]=(0,r.useState)(d),x=(0,r.useMemo)(()=>{if(!p)return e;let t=o.find(e=>e.key===p);if(!t||!t.sortValue)return e;let r="asc"===f?1:-1;return[...e].sort((e,o)=>{let a=t.sortValue(e),n=t.sortValue(o);return"number"==typeof a&&"number"==typeof n?(a-n)*r:String(a).localeCompare(String(n))*r})},[e,o,p,f]);return(0,t.jsx)("div",{style:{overflowX:"auto",border:"1px solid var(--af-border-subtle)",borderRadius:8,background:"var(--af-surface)"},children:(0,t.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:12,color:"var(--af-text)"},children:[(0,t.jsx)("thead",{children:(0,t.jsx)("tr",{children:o.map(e=>{let r=p===e.key,o=!1!==e.sortable&&!!e.sortValue;return(0,t.jsx)("th",{onClick:()=>{!1!==e.sortable&&e.sortValue&&(p===e.key?h(e=>"asc"===e?"desc":"asc"):(u(e.key),h("desc")))},style:{textAlign:e.align??"left",fontSize:10,fontWeight:600,color:r?"var(--af-accent)":"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",padding:"10px 12px",borderBottom:"1px solid var(--af-border-subtle)",cursor:o?"pointer":"default",userSelect:"none",whiteSpace:"nowrap",width:e.width,background:"var(--af-surface)",position:"sticky",top:0},children:(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,verticalAlign:"middle"},children:[e.header,o&&(0,t.jsx)("span",{style:{display:"inline-flex",opacity:r?1:.35},children:r?"asc"===f?(0,t.jsx)(a,{size:10}):(0,t.jsx)(n.ArrowDown,{size:10}):(0,t.jsx)(i,{size:10})})]})},e.key)})})}),(0,t.jsxs)("tbody",{children:[x.map(e=>(0,t.jsx)("tr",{onClick:()=>l?.(e),style:{cursor:l?"pointer":"default",borderBottom:"1px solid var(--af-border-subtle)",transition:"background 0.1s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--af-surface-hover)"},onMouseLeave:e=>{e.currentTarget.style.background=""},children:o.map(r=>(0,t.jsx)("td",{style:{padding:"10px 12px",textAlign:r.align??"left",whiteSpace:"right"===r.align?"nowrap":void 0,verticalAlign:"top"},children:r.render(e)},r.key))},s(e))),0===x.length&&(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:o.length,style:{padding:"32px 16px",textAlign:"center",fontSize:12,color:"var(--af-text-tertiary)"},children:"No rows to display."})})]})]})})}],55898);let s=(0,o.default)("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),l=(0,o.default)("Table",[["path",{d:"M12 3v18",key:"108xh3"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}]]);var c=e.i(86619);function d({active:e,onClick:r,label:o,icon:a,rightEdge:n}){return(0,t.jsxs)("button",{type:"button",onClick:r,style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",fontSize:11,fontWeight:500,background:e?"var(--af-accent-subtle)":"transparent",color:e?"var(--af-accent)":"var(--af-text-secondary)",border:"none",borderRight:n?"none":"1px solid var(--af-border-subtle)",cursor:"pointer",letterSpacing:"0.02em"},children:[a,o]})}e.s(["useViewToggle",0,function(e,r="cards"){let[o,a,n]=(0,c.usePersistentBoolean)(e,"table"===r);return{mode:o?"table":"cards",toggle:(0,t.jsxs)("div",{style:{display:"inline-flex",border:"1px solid var(--af-border-subtle)",borderRadius:6,overflow:"hidden"},children:[(0,t.jsx)(d,{active:!o,onClick:()=>a(!1),label:"Cards",icon:(0,t.jsx)(s,{size:12})}),(0,t.jsx)(d,{active:o,onClick:()=>a(!0),label:"Table",icon:(0,t.jsx)(l,{size:12}),rightEdge:!0})]}),hydrated:n}}],78360)},57983,e=>{"use strict";var t=e.i(18050),r=e.i(22016),o=e.i(18566),a=e.i(56324),n=e.i(55898),i=e.i(78360),s=e.i(23614);function l({days:e,size:r="sm"}){return(0,t.jsx)("div",{style:{display:"inline-flex",gap:3,alignItems:"center"},children:e.map(e=>e.outcome?(0,t.jsx)(s.OutcomePill,{outcome:e.outcome,size:r,label:"icon"},e.date):(0,t.jsx)("span",{title:`${e.date} — no entries`,style:{display:"inline-block",width:"sm"===r?14:18,height:"sm"===r?14:18,borderRadius:99,background:"var(--af-border-subtle)",opacity:.5}},e.date))})}e.i(74472);var c=e.i(33815);function d({perAgent:e}){return e.length<2?null:(0,t.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:e.map((e,r)=>{let o=(0,c.getAgentMetadata)(e.agent),a=o?.shortLabel??e.agent,n=o?.accentColor??"inherit";return(0,t.jsxs)("span",{children:[r>0&&(0,t.jsx)("span",{style:{margin:"0 4px",opacity:.5},children:"·"}),(0,t.jsx)("span",{style:{color:n,fontWeight:600},children:e.sessions})," ",a]},e.agent)})})}let p=[{key:"name",header:"Project",sortValue:e=>e.project.projectName,render:e=>(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{fontWeight:500,display:"inline-flex",alignItems:"center",gap:6},children:[(0,a.prettyProjectName)(e.project.projectName),e.project.worktreeCount>0&&(0,t.jsx)(f,{count:e.project.worktreeCount}),(0,t.jsx)(d,{perAgent:e.project.perAgent})]}),(0,t.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",maxWidth:320,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.project.projectName,children:e.project.projectName})]})},{key:"recent",header:"Recent (7d)",sortable:!1,render:e=>(0,t.jsx)(l,{days:e.recentDays})},{key:"sessions",header:"Sessions",sortValue:e=>e.project.metrics.sessionCount,align:"right",render:e=>(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:e.project.metrics.sessionCount.toLocaleString()})},{key:"turns",header:"Turns",sortValue:e=>e.project.metrics.totalTurns,align:"right",render:e=>(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:e.project.metrics.totalTurns.toLocaleString()})},{key:"tools",header:"Tool calls",sortValue:e=>e.project.metrics.totalToolCalls,align:"right",render:e=>(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:e.project.metrics.totalToolCalls.toLocaleString()})},{key:"airtime",header:"Agent time",sortValue:e=>e.project.metrics.totalAirTimeMs,align:"right",render:e=>(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,a.formatDuration)(e.project.metrics.totalAirTimeMs)})},{key:"tokens",header:"Tokens",sortValue:e=>e.project.metrics.totalTokens.input+e.project.metrics.totalTokens.output+e.project.metrics.totalTokens.cacheRead+e.project.metrics.totalTokens.cacheWrite,align:"right",render:e=>{let r=e.project.metrics.totalTokens.input+e.project.metrics.totalTokens.output+e.project.metrics.totalTokens.cacheRead+e.project.metrics.totalTokens.cacheWrite;return(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,a.formatTokens)(r)})}},{key:"lastActive",header:"Last active",sortValue:e=>e.project.lastActiveMs??0,align:"right",render:e=>(0,t.jsx)("span",{suppressHydrationWarning:!0,style:{fontFamily:"var(--font-mono)",fontSize:11},children:e.project.lastActiveMs?(0,a.formatRelative)(new Date(e.project.lastActiveMs).toISOString()):"—"})}];function u({row:e}){let o=e.project,n=o.metrics.totalTokens.input+o.metrics.totalTokens.output+o.metrics.totalTokens.cacheRead+o.metrics.totalTokens.cacheWrite,i=e.recentDays.some(e=>null!==e.outcome);return(0,t.jsxs)(r.default,{href:`/projects/${encodeURIComponent(o.projectDir)}`,className:"af-card",style:{display:"flex",flexDirection:"column",gap:10},children:[(0,t.jsxs)("div",{style:{fontSize:14,fontWeight:600,color:"var(--af-text)",display:"flex",alignItems:"center",gap:8},children:[(0,t.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:(0,a.prettyProjectName)(o.projectName)}),o.worktreeCount>0&&(0,t.jsx)(f,{count:o.worktreeCount}),(0,t.jsx)(d,{perAgent:o.perAgent})]}),(0,t.jsx)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:o.projectName}),i&&(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:10,color:"var(--af-text-tertiary)"},children:[(0,t.jsx)("span",{children:"recent:"}),(0,t.jsx)(l,{days:e.recentDays})]}),(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:6,marginTop:6,fontSize:11,color:"var(--af-text-secondary)"},children:[(0,t.jsx)(h,{label:"Sessions",value:String(o.metrics.sessionCount)}),(0,t.jsx)(h,{label:"Turns",value:String(o.metrics.totalTurns)}),(0,t.jsx)(h,{label:"Tools",value:String(o.metrics.totalToolCalls)}),(0,t.jsx)(h,{label:"Agent time",value:(0,a.formatDuration)(o.metrics.totalAirTimeMs)}),(0,t.jsx)(h,{label:"Tokens",value:(0,a.formatTokens)(n)}),(0,t.jsx)(h,{label:"Last",value:o.lastActiveMs?(0,a.formatRelative)(new Date(o.lastActiveMs).toISOString()):"—"})]})]})}function f({count:e}){return(0,t.jsxs)("span",{style:{fontSize:9,fontWeight:700,padding:"2px 7px",borderRadius:100,background:"rgba(167, 139, 250, 0.15)",color:"rgba(167, 139, 250, 1)",textTransform:"uppercase",letterSpacing:"0.04em",flexShrink:0},title:`${e} git worktree${1===e?"":"s"} rolled up into this project`,children:["+",e," wt"]})}function h({label:e,value:r}){return(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{fontSize:9,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.04em",fontWeight:600},children:e}),(0,t.jsx)("div",{style:{fontFamily:"var(--font-mono)",marginTop:2},suppressHydrationWarning:!0,children:r})]})}e.s(["ProjectsView",0,function({rows:e}){let r=(0,o.useRouter)(),{mode:a,toggle:s}=(0,i.useViewToggle)("cclens:projects:view");return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:14},children:s}),"table"===a?(0,t.jsx)(n.DataTable,{rows:e,getRowKey:e=>e.project.projectDir,onRowClick:e=>r.push(`/projects/${encodeURIComponent(e.project.projectDir)}`),defaultSortKey:"lastActive",defaultSortDir:"desc",columns:p}):(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(320px, 1fr))",gap:14},children:e.map(e=>(0,t.jsx)(u,{row:e},e.project.projectDir))})]})}],57983)}]);
@@ -0,0 +1,14 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return l},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function i(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function o(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,o(e));else t.set(r,o(n));return t}function l(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},18967,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return x},MiddlewareNotFoundError:function(){return j},MissingStaticPage:function(){return v},NormalizeError:function(){return y},PageNotFoundError:function(){return b},SP:function(){return g},ST:function(){return m},WEB_VITALS:function(){return i},execOnce:function(){return o},getDisplayName:function(){return u},getLocationOrigin:function(){return c},getURL:function(){return d},isAbsoluteUrl:function(){return l},isResSent:function(){return f},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return w}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function o(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>s.test(e);function c(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function d(){let{href:e}=window.location,t=c();return e.substring(t.length)}function u(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${u(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let g="u">typeof performance,m=g&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class x extends Error{}class y extends Error{}class b extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class v extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class j extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function w(e){return JSON.stringify({message:e.message,stack:e.stack})}},33525,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},69198,e=>{"use strict";var t=e.i(18050);e.i(74472);var r=e.i(33815);e.s(["AgentBadge",0,function({agent:e}){if(!e||"claude-code"===e)return null;let n=(0,r.getAgentMetadata)(e);return n?(0,t.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:n.accentColor,background:`color-mix(in srgb, ${n.accentColor} 12%, transparent)`,border:`1px solid color-mix(in srgb, ${n.accentColor} 30%, transparent)`},title:`Source: ${n.displayName}`,children:n.shortLabel}):null}])},43531,e=>{"use strict";let t=(0,e.i(75254).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],43531)},3116,e=>{"use strict";let t=(0,e.i(75254).default)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);e.s(["Clock",0,t],3116)},41240,63639,e=>{"use strict";var t=e.i(75254);let r=(0,t.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"}]]);e.s(["Lightbulb",0,r],41240);let n=(0,t.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"}]]);e.s(["Radio",0,n],63639)},31278,e=>{"use strict";let t=(0,e.i(75254).default)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",0,t],31278)},54611,e=>{"use strict";let t=/^##\s+\[([^\]]+)\](?:\s+[—\-–]\s+(\S+))?\s*$/,r=/^###\s+(.+?)\s*$/,n=/^[-*]\s+(.+?)\s*$/,a=function(e){let a=e.split(/\r?\n/),i=[],o=null,s=null,l=[];function c(){s&&l.length>0&&(s.bullets.push(l.join(" ").trim()),l=[])}for(let e of a){let a=t.exec(e);if(a){c(),s=null,o={version:a[1].trim(),date:a[2]?.trim()??null,sections:[]},i.push(o);continue}if(!o)continue;let d=r.exec(e);if(d){c(),s={kind:d[1].trim(),bullets:[]},o.sections.push(s);continue}let u=n.exec(e);if(u){c(),l=[u[1]];continue}l.length>0&&e.trim().length>0&&l.push(e.trim())}return c(),i}("# 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");a[0]?.version,e.s(["STORAGE_KEY",0,"cclens:changelog-last-seen"],54611)},86619,e=>{"use strict";var t=e.i(71645);e.s(["usePersistentBoolean",0,function(e,r){let[n,a]=(0,t.useState)(r),[i,o]=(0,t.useState)(!1);return(0,t.useEffect)(()=>{try{let t=window.localStorage.getItem(e);"1"===t?a(!0):"0"===t&&a(!1)}catch{}o(!0)},[e]),(0,t.useEffect)(()=>{let t=t=>{let r=t.detail;r?.key===e&&"boolean"==typeof r.value&&a(r.value)},r=t=>{t.key===e&&("1"===t.newValue?a(!0):"0"===t.newValue&&a(!1))};return window.addEventListener("cclens:persistent-boolean",t),window.addEventListener("storage",r),()=>{window.removeEventListener("cclens:persistent-boolean",t),window.removeEventListener("storage",r)}},[e]),[n,(0,t.useCallback)(t=>{a(t);try{window.localStorage.setItem(e,t?"1":"0")}catch{}window.dispatchEvent(new CustomEvent("cclens:persistent-boolean",{detail:{key:e,value:t}}))},[e]),i]}])},95057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return s},formatWithValidation:function(){return c},urlObjectKeys:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(90809)._(e.r(98183)),o=/https?|ftp|gopher|file/;function s(e){let{auth:t,hostname:r}=e,n=e.protocol||"",a=e.pathname||"",s=e.hash||"",l=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),l&&"object"==typeof l&&(l=String(i.urlQueryToSearchParams(l)));let d=e.search||l&&`?${l}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||o.test(n))&&!1!==c?(c="//"+(c||""),a&&"/"!==a[0]&&(a="/"+a)):c||(c=""),s&&"#"!==s[0]&&(s="#"+s),d&&"?"!==d[0]&&(d="?"+d),a=a.replace(/[?#]/g,encodeURIComponent),d=d.replace("#","%23"),`${n}${c}${a}${d}${s}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return s(e)}},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return a}});let n=e.r(71645);function a(e,t){let r=(0,n.useRef)(null),a=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=a.current;t&&(a.current=null,t())}else e&&(r.current=i(e,n)),t&&(a.current=i(t,n))},[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return i}});let n=e.r(18967),a=e.r(52817);function i(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,a.hasBasePath)(r.pathname)}catch(e){return!1}}},84508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},22016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return x},useLinkStatus:function(){return b}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(90809),o=e.r(18050),s=i._(e.r(71645)),l=e.r(95057),c=e.r(8372),d=e.r(18581),u=e.r(18967),f=e.r(5550);e.r(33525);let p=e.r(88540),h=e.r(91949),g=e.r(73668),m=e.r(9396);function x(t){var r,n;let a,i,x,[b,v]=(0,s.useOptimistic)(h.IDLE_LINK_STATUS),j=(0,s.useRef)(null),{href:w,as:k,children:S,prefetch:$=null,passHref:M,replace:C,shallow:z,scroll:T,onClick:P,onMouseEnter:R,onTouchStart:E,legacyBehavior:I=!1,onNavigate:O,transitionTypes:A,ref:L,unstable_dynamicOnHover:N,...D}=t;a=S,I&&("string"==typeof a||"number"==typeof a)&&(a=(0,o.jsx)("a",{children:a}));let W=s.default.useContext(c.AppRouterContext),_=!1!==$,F=!1!==$?null===(n=$)||"auto"===n?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,B="string"==typeof(r=k||w)?r:(0,l.formatUrl)(r);if(I){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});i=s.default.Children.only(a)}let U=I?i&&"object"==typeof i&&i.ref:L,H=s.default.useCallback(e=>(null!==W&&(j.current=(0,h.mountLinkInstance)(e,B,W,F,_,v)),()=>{j.current&&((0,h.unmountLinkForCurrentNavigation)(j.current),j.current=null),(0,h.unmountPrefetchableInstance)(e)}),[_,B,W,F,v]),V={ref:(0,d.useMergedRef)(H,U),onClick(t){I||"function"!=typeof P||P(t),I&&i.props&&"function"==typeof i.props.onClick&&i.props.onClick(t),!W||t.defaultPrevented||function(t,r,n,a,i,o,l){if("u">typeof window){let c,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,g.isLocalURL)(r)){a&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:u}=e.r(99781);s.default.startTransition(()=>{u(r,a?"replace":"push",!1===i?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,n.current,l)})}}(t,B,j,C,T,O,A)},onMouseEnter(e){I||"function"!=typeof R||R(e),I&&i.props&&"function"==typeof i.props.onMouseEnter&&i.props.onMouseEnter(e),W&&_&&(0,h.onNavigationIntent)(e.currentTarget,!0===N)},onTouchStart:function(e){I||"function"!=typeof E||E(e),I&&i.props&&"function"==typeof i.props.onTouchStart&&i.props.onTouchStart(e),W&&_&&(0,h.onNavigationIntent)(e.currentTarget,!0===N)}};return(0,u.isAbsoluteUrl)(B)?V.href=B:I&&!M&&("a"!==i.type||"href"in i.props)||(V.href=(0,f.addBasePath)(B)),x=I?s.default.cloneElement(i,V):(0,o.jsx)("a",{...D,...V,children:a}),(0,o.jsx)(y.Provider,{value:b,children:x})}e.r(84508);let y=(0,s.createContext)(h.IDLE_LINK_STATUS),b=()=>(0,s.useContext)(y);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},75254,e=>{"use strict";var t=e.i(71645);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var n={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 a=(0,t.forwardRef)(({color:e="currentColor",size:a=24,strokeWidth:i=2,absoluteStrokeWidth:o,className:s="",children:l,iconNode:c,...d},u)=>(0,t.createElement)("svg",{ref:u,...n,width:a,height:a,stroke:e,strokeWidth:o?24*Number(i)/Number(a):i,className:r("lucide",s),...d},[...c.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(l)?l:[l]]));e.s(["default",0,(e,n)=>{let i=(0,t.forwardRef)(({className:i,...o},s)=>(0,t.createElement)(a,{ref:s,iconNode:n,className:r(`lucide-${e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,i),...o}));return i.displayName=`${e}`,i}],75254)},74472,33815,e=>{"use strict";let t=[{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:"◆"}],r=new Set(t.map(e=>e.kind));e.s(["getAgentMetadata",0,function(e){return t.find(t=>t.kind===e)},"isAgentKind",0,function(e){return"string"==typeof e&&r.has(e)}],33815),e.s([],74472)},23614,41783,e=>{"use strict";var t=e.i(18050),r=e.i(22016);e.i(74472);var n=e.i(33815);function a({agent:e,size:r=11,title:i}){if(!e)return null;let o=(0,n.getAgentMetadata)(e);return o?(0,t.jsx)("span",{"aria-hidden":!0,title:i??o.displayName,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,width:r+2,height:r+2,fontSize:r,lineHeight:1,color:o.accentColor},children:o.iconChar}):null}e.s(["AgentIcon",0,a],41783);let i={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:"—"}},o={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}},s={shipped:6,partial:5,blocked:4,exploratory:3,trivial:2,idle:1};e.s(["OUTCOME_STYLES",0,i,"OutcomePill",0,function(e){let n=o[e.size??"md"],s=n.fontSize+1;if("pending"in e&&e.pending){let i={display:"inline-flex",alignItems:"center",gap:n.iconGap,padding:n.padding,borderRadius:n.borderRadius,fontSize:n.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,t.jsxs)(r.default,{href:`/digest/${e.localDay}`,style:i,title:`Generate ${e.localDay} digest →`,children:[e.agent&&(0,t.jsx)(a,{agent:e.agent,size:s}),(0,t.jsx)("span",{"aria-hidden":!0,style:{lineHeight:1},children:"⋯"}),(0,t.jsx)("span",{children:"pending"})]})}let l=i[e.outcome],c=e.label??"both",d={display:"inline-flex",alignItems:"center",gap:n.iconGap,padding:n.padding,borderRadius:n.borderRadius,fontSize:n.fontSize,fontWeight:600,background:l.bg,color:l.fg,whiteSpace:"nowrap"};return(0,t.jsxs)("span",{style:d,title:l.label,children:[e.agent&&(0,t.jsx)(a,{agent:e.agent,size:s}),("icon"===c||"both"===c)&&(0,t.jsx)("span",{"aria-hidden":!0,style:{lineHeight:1},children:l.icon}),("text"===c||"both"===c)&&(0,t.jsx)("span",{children:l.label})]})},"outcomePriority",0,function(e){return e?s[e]:0}],23614)},18566,(e,t,r)=>{t.exports=e.r(76562)},56324,e=>{"use strict";let t={input:1,output:5,cacheRead:.1,cacheWrite:1.25},r={input:3,output:15,cacheRead:.3,cacheWrite:3.75},n={input:5,output:25,cacheRead:.5,cacheWrite:6.25};e.s(["estimateCost",0,function(e,a){let i=function(e){if(!e)return n;let a=e.toLowerCase();return a.includes("haiku")?t:a.includes("sonnet")?r:n}(a);return e.input/1e6*i.input+e.output/1e6*i.output+e.cacheRead/1e6*i.cacheRead+e.cacheWrite/1e6*i.cacheWrite},"formatCost",0,function(e){return e<.01?"<$0.01":e<1||e<100?`$${e.toFixed(2)}`:e<1e3?`$${e.toFixed(1)}`:`$${e.toLocaleString(void 0,{maximumFractionDigits:0})}`},"formatDuration",0,function(e){if(void 0===e)return"—";if(e<1e3)return`${e}ms`;let t=Math.round(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60),n=t%60;if(r<60)return n?`${r}m ${n}s`:`${r}m`;let a=Math.floor(r/60),i=r%60;return i?`${a}h ${i}m`:`${a}h`},"formatGap",0,function(e){if(e<1e3)return`${e}ms`;let t=e/1e3;if(t<60)return`${t.toFixed(1)}s`;let r=Math.floor(t/60);if(r<60){let e=Math.round(t%60);return`${r}m ${e}s`}let n=Math.floor(r/60),a=r%60;if(n<24)return a?`${n}h ${a}m`:`${n}h`;let i=Math.floor(n/24),o=n%24;return o?`${i}d ${o}h`:`${i}d`},"formatOffset",0,function(e){if(void 0===e||e<0)return"—";let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=String(Math.floor(t%3600/60)).padStart(2,"0"),a=String(t%60).padStart(2,"0");return`${r}:${n}:${a}`},"formatRelative",0,function(e){let t=Date.parse(e);if(Number.isNaN(t))return e;let r=Math.round((Date.now()-t)/1e3);if(r<60)return`${r}s ago`;let n=Math.round(r/60);if(n<60)return`${n}m ago`;let a=Math.round(n/60);if(a<24)return`${a}h ago`;let i=Math.round(a/24);return`${i}d ago`},"formatTokens",0,function(e){return e<1e3?String(e):e<1e4?(e/1e3).toFixed(1)+"k":e<1e6?Math.round(e/1e3)+"k":e<1e7?(e/1e6).toFixed(2)+"M":(e/1e6).toFixed(1)+"M"},"prettyProjectName",0,function(e,t=35){let r=e.split("/").filter(Boolean),n=r.lastIndexOf(".worktrees");if(n>0&&n<r.length-1){let e=r[n-1],a=r[n+1],i=`${e}/${a}`;return i.length<=t?i:"…"+i.slice(i.length-t+1)}let a=r.length>=2?`${r[r.length-2]}/${r[r.length-1]}`:r[r.length-1]??e;return a.length<=t?a:"…"+a.slice(a.length-t+1)},"shortId",0,function(e){return e.length<=10?e:e.slice(0,6)+"…"+e.slice(-4)}])},55436,e=>{"use strict";let t=(0,e.i(75254).default)("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);e.s(["Search",0,t],55436)},56004,e=>{"use strict";var t=e.i(18050),r=e.i(22016);let n={display:"inline-flex",alignItems:"center",borderRadius:4,padding:"2px 6px",fontSize:10,letterSpacing:"0.04em",textTransform:"uppercase",whiteSpace:"nowrap"};e.s(["TeamBadge",0,function({session:e,linkable:a=!0}){if(!e.teamName)return null;let i=!0===e.isTeamLead,o=void 0!==e.agentName;return i||o?i&&a?(0,t.jsx)(r.default,{href:`/sessions/${e.id}`,style:{...n,fontWeight:600,background:"var(--af-warning-subtle)",color:"var(--af-warning)",border:"1px solid var(--af-warning-subtle)",textDecoration:"none"},title:`Team lead — ${e.teamName}`,children:"Team Lead"}):i?(0,t.jsx)("span",{style:{...n,fontWeight:600,background:"var(--af-warning-subtle)",color:"var(--af-warning)",border:"1px solid var(--af-warning-subtle)"},title:`Team lead — ${e.teamName}`,children:"Team Lead"}):(0,t.jsx)("span",{style:{...n,fontWeight:500,background:"var(--af-surface-hover)",color:"var(--af-text-tertiary)",border:"1px solid var(--af-border-subtle)"},title:`Team member — ${e.teamName} \xb7 ${e.agentName}`,children:"Team Member"}):null}])},86566,e=>{"use strict";var t=e.i(18050),r=e.i(22016),n=e.i(18566),a=e.i(71645),i=e.i(75254);let o=(0,i.default)("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]),s=(0,i.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"}]]),l=(0,i.default)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]),c=(0,i.default)("Pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),d=(0,i.default)("PinOff",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]);var u=e.i(55436);let f=(0,i.default)("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]),p=(0,i.default)("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);var h=e.i(41240),g=e.i(63639);let m=(0,i.default)("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),x=(0,i.default)("CalendarDays",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]]);var y=e.i(56324);let b=(0,i.default)("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]),v=(0,i.default)("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),j="claude-lens:theme";function w(e){if("u">typeof document){document.documentElement.setAttribute("data-theme",e);try{document.cookie=`claude-lens-theme=${e};path=/;max-age=31536000;samesite=lax`}catch{}}}function k(){let[e,r]=(0,a.useState)("dark"),[n,i]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=document.documentElement.getAttribute("data-theme");if("light"===e||"dark"===e)r(e);else{let e=function(){try{let e=window.localStorage.getItem(j);if("light"===e||"dark"===e)return e}catch{}return null}()??(window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark");r(e),w(e)}i(!0)},[]),(0,t.jsx)("button",{type:"button",onClick:()=>{let t="dark"===e?"light":"dark";r(t),w(t);try{window.localStorage.setItem(j,t)}catch{}},"aria-label":"dark"===e?"Switch to light mode":"Switch to dark mode",title:"dark"===e?"Switch to light mode":"Switch to dark mode",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:28,height:28,borderRadius:6,background:"transparent",border:"1px solid var(--af-border-subtle)",color:"var(--af-text-secondary)",cursor:"pointer",transition:"all 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--af-surface-hover)",e.currentTarget.style.color="var(--af-text)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.color="var(--af-text-secondary)"},children:n?"dark"===e?(0,t.jsx)(v,{size:14}):(0,t.jsx)(b,{size:14}):null})}var S=e.i(86619);function $({snapshot:e}){let n,a,[i,,o]=(0,S.usePersistentBoolean)("cclens:usage:show-sonnet",!1);if(!e)return(0,t.jsxs)("div",{style:{padding:"10px 16px 12px",borderTop:"1px solid var(--af-border-subtle)",fontSize:10,color:"var(--af-text-tertiary)",lineHeight:1.4},children:[(0,t.jsx)("div",{style:{textTransform:"uppercase",letterSpacing:"0.06em",fontWeight:600,marginBottom:4},children:"Usage"}),(0,t.jsxs)("div",{children:["Run ",(0,t.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:"cclens daemon start"})," to collect metrics."]})]});let s=[{label:"5h",window:e.five_hour},{label:"7d",window:e.seven_day}];return o&&i&&s.push({label:"Sonnet 7d",window:e.seven_day_sonnet}),(0,t.jsxs)(r.default,{href:"/usage",style:{display:"block",padding:"10px 16px 12px",borderTop:"1px solid var(--af-border-subtle)",textDecoration:"none",color:"inherit"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",fontSize:10,fontWeight:600,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:8},children:[(0,t.jsx)("span",{children:"Current usage"}),(0,t.jsx)("span",{suppressHydrationWarning:!0,style:{fontWeight:500,textTransform:"none",letterSpacing:0},children:(n=new Date(e.captured_at).getTime(),(a=Math.round((Date.now()-n)/1e3))<60?`${a}s ago`:a<3600?`${Math.floor(a/60)}m ago`:a<86400?`${Math.floor(a/3600)}h ago`:`${Math.floor(a/86400)}d ago`)})]}),(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:s.map(e=>(0,t.jsx)(M,{...e},e.label))})]})}function M({label:e,window:r}){let n=r?.utilization??null,a=null!==n,i=a?Math.max(0,Math.min(100,n)):0,o=i>=90?"var(--af-danger)":i>=70?"var(--af-warning)":"var(--af-success)";return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6,fontSize:10,color:"var(--af-text-secondary)",marginBottom:2,fontVariantNumeric:"tabular-nums"},children:[(0,t.jsx)("span",{children:e}),r?.resets_at&&(0,t.jsxs)("span",{suppressHydrationWarning:!0,style:{fontSize:9,color:"var(--af-text-tertiary)",flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["resets ",function(e){let t,r=Math.round((new Date(e).getTime()-Date.now())/1e3),n=Math.abs(r);if(n<60)t=`${n}s`;else if(n<3600)t=`${Math.floor(n/60)}m`;else if(n<86400){let e=Math.floor(n/3600),r=Math.floor(n%3600/60);t=r>0?`${e}h${r}m`:`${e}h`}else{let e=Math.floor(n/86400),r=Math.floor(n%86400/3600);t=r>0?`${e}d${r}h`:`${e}d`}return r<0?`${t} ago`:`in ${t}`}(r.resets_at)]}),(0,t.jsx)("span",{style:{fontWeight:600,color:"var(--af-text)",marginLeft:"auto"},children:a?`${i.toFixed(0)}%`:"—"})]}),(0,t.jsx)("div",{style:{height:4,background:"var(--af-border-subtle)",borderRadius:999,overflow:"hidden"},children:(0,t.jsx)("div",{style:{height:"100%",width:a?`${i}%`:"0%",background:o,borderRadius:999,transition:"width 0.24s ease"}})})]})}let C=(0,i.default)("Megaphone",[["path",{d:"m3 11 18-5v12L3 14v-3z",key:"n962bs"}],["path",{d:"M11.6 16.8a3 3 0 1 1-5.8-1.6",key:"1yl0tm"}]]);var z=e.i(54611);function T({latestVersion:e,active:n}){let[i,o]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{if(!e)return void o(!1);try{let t=window.localStorage.getItem(z.STORAGE_KEY);o(t!==e)}catch{o(!1)}},[e]),(0,t.jsxs)(r.default,{href:"/changelog","aria-label":i?"Changelog (new entries)":"Changelog",title:i?`What's new in v${e}`:"Changelog",style:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",width:24,height:24,borderRadius:6,color:n?"var(--af-text)":"var(--af-text-tertiary)",background:n?"var(--af-surface-hover)":"transparent",textDecoration:"none"},children:[(0,t.jsx)(C,{size:14}),i&&(0,t.jsx)("span",{"aria-hidden":!0,style:{position:"absolute",top:3,right:3,width:7,height:7,borderRadius:"50%",background:"#ef4444",border:"1.5px solid var(--af-surface)"}})]})}let P="claude-lens:pinned-projects:v1";function R({href:e,active:n,icon:a,trailing:i,children:o}){return(0,t.jsxs)(r.default,{href:e,style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",borderRadius:7,fontSize:13,fontWeight:500,color:n?"var(--af-accent)":"var(--af-text-secondary)",background:n?"var(--af-accent-subtle)":"transparent",transition:"all 0.12s"},children:[a,(0,t.jsx)("span",{style:{flex:1},children:o}),i&&(0,t.jsx)("span",{style:{fontSize:10,color:n?"var(--af-accent)":"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:i})]})}function E({label:e,items:n,pathname:a,isPinned:i,onTogglePin:o}){return 0===n.length?null:(0,t.jsxs)("div",{style:{marginTop:10},children:[(0,t.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.06em",padding:"0 10px 6px",fontWeight:600},children:e}),(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column"},children:n.map(e=>{let n=`/projects/${encodeURIComponent(e.projectDir)}`,s=a===n,l=(0,y.prettyProjectName)(e.projectName);return(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"5px 6px 5px 10px",borderRadius:6,background:s?"var(--af-accent-subtle)":"transparent",color:s?"var(--af-accent)":"var(--af-text-secondary)"},children:[(0,t.jsxs)(r.default,{href:n,style:{flex:1,minWidth:0,fontSize:12,color:"inherit",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"flex",alignItems:"center",gap:5},title:(e.worktreeCount??0)>0?`${e.projectName} — ${e.worktreeCount} worktree${1===e.worktreeCount?"":"s"}`:e.projectName,children:[(0,t.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:l}),(e.worktreeCount??0)>0&&(0,t.jsxs)("span",{style:{fontSize:9,fontWeight:600,padding:"1px 5px",borderRadius:100,background:"rgba(167, 139, 250, 0.15)",color:"rgba(167, 139, 250, 1)",flexShrink:0},children:["+",e.worktreeCount," wt"]})]}),(0,t.jsx)("span",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",marginLeft:4},children:e.sessionCount}),(0,t.jsx)("button",{type:"button",onClick:t=>{t.preventDefault(),t.stopPropagation(),o(e.projectDir)},"aria-label":i(e.projectDir)?"Unpin project":"Pin project",title:i(e.projectDir)?"Unpin":"Pin",style:{background:"transparent",border:"none",padding:3,borderRadius:4,color:i(e.projectDir)?"var(--af-accent)":"var(--af-text-tertiary)",display:"flex",alignItems:"center"},children:i(e.projectDir)?(0,t.jsx)(d,{size:12}):(0,t.jsx)(c,{size:12})}),e.lastActiveMs&&(0,t.jsx)("span",{style:{fontSize:9,color:"var(--af-text-tertiary)",marginLeft:2,minWidth:32,textAlign:"right"},title:new Date(e.lastActiveMs).toISOString(),suppressHydrationWarning:!0,children:(0,y.formatRelative)(new Date(e.lastActiveMs).toISOString())})]},e.projectDir)})})]})}e.s(["Sidebar",0,function({projects:e,totalSessions:i,currentUsage:c,version:d,latestChangelogVersion:y}){let b=(0,n.usePathname)(),[v,j]=(0,a.useState)(new Set),[w,S]=(0,a.useState)(!1),[M,C]=(0,a.useState)("");(0,a.useEffect)(()=>{j(function(){try{let e=window.localStorage.getItem(P);if(!e)return new Set;let t=JSON.parse(e);return new Set(Array.isArray(t)?t:[])}catch{return new Set}}()),S(!0)},[]);let z=e=>{j(t=>{let r=new Set(t);r.has(e)?r.delete(e):r.add(e);try{window.localStorage.setItem(P,JSON.stringify(Array.from(r)))}catch{}return r})},I=(0,a.useMemo)(()=>{if(!M.trim())return e;let t=M.toLowerCase();return e.filter(e=>e.projectName.toLowerCase().includes(t))},[e,M]),O=I.filter(e=>v.has(e.projectDir)),A=I.filter(e=>!v.has(e.projectDir));return(0,t.jsxs)("aside",{style:{width:260,flexShrink:0,borderRight:"1px solid var(--af-border-subtle)",background:"var(--af-surface)",display:"flex",flexDirection:"column",position:"sticky",top:0,height:"100vh"},children:[(0,t.jsx)("div",{style:{padding:"18px 20px 12px",borderBottom:"1px solid var(--af-border-subtle)"},children:(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,t.jsx)("div",{style:{width:28,height:28,borderRadius:7,background:"var(--af-accent-subtle)",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--af-accent)"},children:(0,t.jsx)(f,{size:16,strokeWidth:2.25})}),(0,t.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6},children:[(0,t.jsx)("span",{style:{fontSize:14,fontWeight:700,letterSpacing:"-0.01em"},children:"Fleetlens"}),(0,t.jsxs)("span",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",fontWeight:500},title:`fleetlens ${d}`,children:["v",d]})]}),(0,t.jsx)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)"},children:"Multi-agent fleet analytics"})]})]})}),(0,t.jsxs)("nav",{style:{padding:"10px 10px 6px",display:"flex",flexDirection:"column",gap:2},children:[(0,t.jsx)(R,{href:"/",active:"/"===b,icon:(0,t.jsx)(o,{size:15}),children:"Overview"}),(0,t.jsx)(R,{href:"/sessions",active:"/sessions"===b||b.startsWith("/sessions/"),icon:(0,t.jsx)(s,{size:15}),trailing:i>0?String(i):void 0,children:"All sessions"}),(0,t.jsx)(R,{href:"/projects",active:"/projects"===b,icon:(0,t.jsx)(l,{size:15}),trailing:e.length>0?String(e.length):void 0,children:"Projects"}),(0,t.jsx)(R,{href:"/day",active:"/day"===b||b.startsWith("/day/")||"/digest"===b||b.startsWith("/digest/")||"/parallelism"===b,icon:(0,t.jsx)(x,{size:15}),children:"Day"}),(0,t.jsx)(R,{href:"/usage",active:"/usage"===b,icon:(0,t.jsx)(p,{size:15}),children:"Usage"}),(0,t.jsx)(R,{href:"/insights",active:"/insights"===b,icon:(0,t.jsx)(h.Lightbulb,{size:15}),children:"Insights"}),(0,t.jsx)(R,{href:"/runs",active:"/runs"===b||b.startsWith("/runs/"),icon:(0,t.jsx)(g.Radio,{size:15}),children:"Runs"})]}),(0,t.jsxs)("div",{style:{margin:"0 14px",padding:"8px 0",borderTop:"1px solid var(--af-border-subtle)",borderBottom:"1px solid var(--af-border-subtle)",display:"flex",alignItems:"center",gap:6},children:[(0,t.jsx)(u.Search,{size:13,color:"var(--af-text-tertiary)"}),(0,t.jsx)("input",{type:"text",placeholder:"Search projects",value:M,onChange:e=>C(e.target.value),style:{flex:1,background:"transparent",border:"none",padding:"4px 0",fontSize:12,color:"var(--af-text)"}})]}),(0,t.jsxs)("div",{style:{flex:1,overflow:"auto",padding:"4px 8px 20px"},children:[w&&O.length>0&&(0,t.jsx)(E,{label:"Pinned",items:O,pathname:b,isPinned:e=>v.has(e),onTogglePin:z}),(0,t.jsx)(E,{label:"Projects",items:A,pathname:b,isPinned:e=>v.has(e),onTogglePin:z})]}),(0,t.jsx)($,{snapshot:c}),(0,t.jsxs)("div",{style:{padding:"10px 16px 10px 20px",fontSize:10,color:"var(--af-text-tertiary)",borderTop:"1px solid var(--af-border-subtle)",display:"flex",alignItems:"center",gap:8},children:[(0,t.jsxs)("span",{style:{flex:1,minWidth:0},children:[i," sessions · ",e.length," projects"]}),(0,t.jsx)(T,{latestVersion:y,active:"/changelog"===b}),(0,t.jsx)(r.default,{href:"/settings","aria-label":"Settings",title:"Settings",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:24,height:24,borderRadius:6,color:"/settings"===b?"var(--af-text)":"var(--af-text-tertiary)",background:"/settings"===b?"var(--af-surface-hover)":"transparent",textDecoration:"none"},children:(0,t.jsx)(m,{size:14})}),(0,t.jsx)(k,{})]})]})}],86566)},51878,e=>{"use strict";var t=e.i(18566),r=e.i(71645);e.s(["LiveRefresher",0,function(){let e,n=(0,t.useRouter)(),a=(e=(0,t.usePathname)(),e?.includes("/insights/print/")??!1),i=(0,r.useRef)(null),o=(0,r.useRef)({session:0,usage:0});return!function(e,t={}){let{enabled:n=!0}=t,a=(0,r.useRef)(e);(0,r.useEffect)(()=>{a.current=e},[e]),(0,r.useEffect)(()=>{if(!n)return;let e=new EventSource("/api/events");return e.onmessage=e=>{try{let t=JSON.parse(e.data);("session-updated"===t.type||"usage-updated"===t.type)&&a.current(t)}catch{}},e.onerror=()=>{},()=>{e.close()}},[n])}((0,r.useCallback)(e=>{let t="usage-updated"===e.type?"usage":"session";e.mtimeMs<=(o.current[t]??0)||(o.current[t]=e.mtimeMs,i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{n.refresh()},400))},[n]),{enabled:!a}),(0,r.useEffect)(()=>()=>{i.current&&clearTimeout(i.current)},[]),null}],51878)},23884,e=>{"use strict";var t=e.i(18050),r=e.i(71645),n=e.i(18566),a=e.i(22016),i=e.i(56324),o=e.i(56004),s=e.i(69198),l=e.i(23614);let c="cclens-live-widget-expanded";e.s(["LiveSessionsWidget",0,function({sessions:e,entrySummaries:d={}}){let u=(0,n.usePathname)(),[f,p]=(0,r.useState)(()=>Date.now()),[h,g]=(0,r.useState)(!1);if((0,r.useEffect)(()=>{try{let e=localStorage.getItem(c);null!==e&&g("true"===e)}catch{}},[]),(0,r.useEffect)(()=>{let e=setInterval(()=>p(Date.now()),1e4);return()=>clearInterval(e)},[]),u&&/^\/sessions\/[^/]+$/.test(u))return null;let m=e.filter(e=>{if(!e.lastTimestamp)return!1;let t=Date.parse(e.lastTimestamp);return!Number.isNaN(t)&&f-t<=45e3}).slice().sort((e,t)=>{let r=e.firstTimestamp?Date.parse(e.firstTimestamp):0;return(t.firstTimestamp?Date.parse(t.firstTimestamp):0)-r});if(0===m.length)return null;let x=h?m.slice(0,5):[],y=h?m.length-x.length:0;return(0,t.jsxs)("div",{style:{position:"fixed",right:20,bottom:20,zIndex:100,display:"flex",flexDirection:"column-reverse",gap:6,maxWidth:320,pointerEvents:"auto"},children:[(0,t.jsxs)("button",{type:"button",onClick:()=>{var e;return e=e=>!e,void g(t=>{let r=e(t);try{localStorage.setItem(c,String(r))}catch{}return r})},style:{display:"inline-flex",alignItems:"center",gap:6,padding:"5px 11px 5px 9px",background:"rgba(239, 68, 68, 0.14)",border:"1px solid rgba(239, 68, 68, 0.4)",borderRadius:100,fontSize:10,fontWeight:700,color:"#ef4444",letterSpacing:"0.06em",textTransform:"uppercase",alignSelf:"flex-end",cursor:"pointer",userSelect:"none",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)",boxShadow:"0 2px 10px rgba(239, 68, 68, 0.15)"},title:h?"Collapse":`Show ${m.length} live session${1===m.length?"":"s"}`,children:[(0,t.jsx)("span",{style:{display:"inline-block",width:6,height:6,borderRadius:"50%",background:"#ef4444",animation:"cs-live-pulse 1.6s ease-in-out infinite"}}),"Live · ",m.length]}),h&&y>0&&(0,t.jsxs)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",padding:"0 4px",textAlign:"right"},children:["+",y," more live"]}),x.map(e=>{let r=d[e.id];return(0,t.jsxs)(a.default,{href:`/sessions/${e.id}`,style:{display:"block",padding:"10px 12px",background:"var(--af-surface-elevated)",border:"1px solid var(--af-border-subtle)",borderLeft:"2px solid #ef4444",borderRadius:8,boxShadow:"0 4px 16px rgba(0, 0, 0, 0.12)",textDecoration:"none",color:"var(--af-text)",fontSize:11,lineHeight:1.35,backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)"},title:(e.lastUserPreview||e.firstUserPreview||e.lastAgentPreview)??(0,i.prettyProjectName)(e.projectName),children:[r&&(0,t.jsx)("div",{onClick:e=>e.stopPropagation(),style:{marginBottom:4},children:r.outcome?(0,t.jsx)(l.OutcomePill,{outcome:r.outcome,size:"sm",label:"text",agent:e.agent}):"skipped_trivial"!==r.enrichmentStatus?(0,t.jsx)(l.OutcomePill,{outcome:null,pending:!0,sessionId:e.id,localDay:r.localDay,size:"sm",agent:e.agent}):null}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,fontWeight:500,color:"var(--af-text)",minWidth:0},children:[(0,t.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:e.lastUserPreview||e.firstUserPreview||(0,t.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"(no user message)"})}),(0,t.jsx)(o.TeamBadge,{session:e,linkable:!1}),(0,t.jsx)(s.AgentBadge,{agent:e.agent})]}),(0,t.jsx)("div",{style:{fontSize:10,color:"var(--af-text-secondary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:3,fontStyle:"italic"},children:e.lastAgentPreview?(0,t.jsxs)(t.Fragment,{children:["↳ ",e.lastAgentPreview]}):(0,t.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"waiting…"})}),(0,t.jsx)("div",{style:{fontSize:9,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",marginTop:4,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(0,i.prettyProjectName)(e.projectName)})]},e.id)}),(0,t.jsx)("style",{children:`
2
+ @keyframes cs-live-pulse {
3
+ 0%, 100% { opacity: 1; transform: scale(1); }
4
+ 50% { opacity: 0.4; transform: scale(0.85); }
5
+ }
6
+ `})]})}])},62887,e=>{"use strict";var t=e.i(18050),r=e.i(71645),n=e.i(43531);let a=(0,e.i(75254).default)("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);var i=e.i(31278),o=e.i(3116),s=e.i(22016);let l="cclens-jobs-widget-expanded";function c({children:e}){return(0,t.jsx)("div",{style:{padding:"6px 14px",fontSize:9,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.08em",fontWeight:700,background:"var(--af-surface)"},children:e})}function d({job:e}){let r="running"===e.status?i.Loader2:"queued"===e.status?o.Clock:"error"===e.status?a:n.Check,l="running"===e.status?"#4299e1":"queued"===e.status?"var(--af-text-tertiary)":"error"===e.status?"#f56565":"#48bb78",c=e.resultUrl&&("done"===e.status||"running"===e.status),u=c?s.default:"div",f=c?{href:e.resultUrl}:{};return(0,t.jsxs)(u,{...f,style:{display:"flex",alignItems:"flex-start",gap:10,padding:"10px 14px",borderBottom:"1px solid var(--af-border-subtle)",textDecoration:"none",color:"var(--af-text)",fontSize:11.5,cursor:c?"pointer":"default"},children:[(0,t.jsx)(r,{size:13,className:"running"===e.status?"cs-job-spin":"",style:{color:l,marginTop:2,flexShrink:0}}),(0,t.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,t.jsx)("div",{style:{fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.label}),e.progress&&(0,t.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",marginTop:2,fontFamily:"var(--font-mono)"},children:function(e){if(void 0!==e.index&&void 0!==e.total)return`${e.phase} ${e.index}/${e.total}`;if(void 0!==e.bytes){let t=(e.bytes/1024).toFixed(1);return`${e.phase} \xb7 ${t}k`}return e.text?`${e.phase} \xb7 ${e.text}`:e.phase}(e.progress)}),"error"===e.status&&e.error&&(0,t.jsx)("div",{style:{fontSize:10,color:"#f56565",marginTop:2},children:e.error.length>60?e.error.slice(0,60)+"…":e.error}),"done"===e.status&&e.resultUrl&&(0,t.jsx)("div",{style:{fontSize:10,color:"var(--af-accent)",marginTop:2},children:"View →"})]})]})}e.s(["JobQueueWidget",0,function(){let[e,n]=(0,r.useState)([]),[a,o]=(0,r.useState)(!1);(0,r.useEffect)(()=>{try{let e=localStorage.getItem(l);null!==e&&o("true"===e)}catch{}},[]),(0,r.useEffect)(()=>{let t=!0,r=null,a=async()=>{try{let e=await fetch("/api/jobs",{cache:"no-store"});if(!e.ok)return;let r=await e.json();t&&n(r.jobs)}catch{}},i=()=>{t&&(r=setTimeout(async()=>{await a(),i()},e.some(e=>"running"===e.status||"queued"===e.status)?1500:6e3))};return a(),i(),()=>{t=!1,r&&clearTimeout(r)}},[e]);let s=e.filter(e=>"running"===e.status||"queued"===e.status),u=e.filter(e=>"done"===e.status||"error"===e.status||"cancelled"===e.status).slice(0,8);return 0===s.length?null:(0,t.jsxs)("div",{style:{position:"fixed",right:140,bottom:20,zIndex:99,display:"flex",flexDirection:"column-reverse",gap:6,maxWidth:320,alignItems:"flex-end"},children:[(0,t.jsxs)("button",{type:"button",onClick:()=>{var e;return e=e=>!e,void o(t=>{let r=e(t);try{localStorage.setItem(l,String(r))}catch{}return r})},title:`${s.length} job${1===s.length?"":"s"} running — click to ${a?"collapse":"expand"}`,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"5px 11px 5px 9px",background:"rgba(66, 153, 225, 0.14)",border:"1px solid rgba(66, 153, 225, 0.4)",borderRadius:100,fontSize:10,fontWeight:700,color:"#4299e1",letterSpacing:"0.06em",textTransform:"uppercase",cursor:"pointer",userSelect:"none",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)",boxShadow:"0 2px 10px rgba(66, 153, 225, 0.15)",alignSelf:"flex-end"},children:[(0,t.jsx)(i.Loader2,{size:11,className:"cs-job-spin",style:{flexShrink:0}}),"Jobs · ",s.length]}),a&&(0,t.jsxs)("div",{style:{width:320,maxHeight:360,overflowY:"auto",background:"var(--af-surface-elevated)",border:"1px solid var(--af-border-subtle)",borderRadius:10,boxShadow:"0 8px 24px rgba(0,0,0,0.18)",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)"},children:[s.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)(c,{children:"Running"}),s.map(e=>(0,t.jsx)(d,{job:e},e.id))]}),u.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)(c,{children:"Recent"}),u.map(e=>(0,t.jsx)(d,{job:e},e.id))]})]}),(0,t.jsx)("style",{children:`
7
+ @keyframes cs-job-spin {
8
+ from { transform: rotate(0deg); }
9
+ to { transform: rotate(360deg); }
10
+ }
11
+ .cs-job-spin {
12
+ animation: cs-job-spin 1s linear infinite;
13
+ }
14
+ `})]})}],62887)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/0mykrrv810ra-.js","static/chunks/073081qv4uyn8.js","static/chunks/0l4e3as18eexy.js","static/chunks/0257pdz1-imal.js"],runtimeModuleIds:[94553]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),n=["NEXT_DEPLOYMENT_ID","NEXT_CLIENT_ASSET_SUFFIX"];var o,i=((o=i||{})[o.Runtime=0]="Runtime",o[o.Parent=1]="Parent",o[o.Update=2]="Update",o);let l=new WeakMap;function s(e,t){this.m=e,this.e=t}let u=s.prototype,a=Object.prototype.hasOwnProperty,c="u">typeof Symbol&&Symbol.toStringTag;function f(e,t,r){a.call(e,t)||Object.defineProperty(e,t,r)}function p(e,t){let r=e[t];return r||(r=h(t),e[t]=r),r}function h(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function d(e,t){f(e,"__esModule",{value:!0}),c&&f(e,c,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)f(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?f(e,n,{get:o,set:t[r++],enumerable:!0}):f(e,n,{get:o,enumerable:!0})}Object.seal(e)}function m(e,t){(null!=t?p(this.c,t):this.m).exports=e}u.s=function(e,t){let r,n;null!=t?n=(r=p(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,d(n,e)},u.j=function(e,t){var r,n;let o,i,s;null!=t?i=(o=p(this.c,t)).exports:(o=this.m,i=this.e);let u=(r=o,n=i,(s=l.get(r))||(l.set(r,s=[]),r.exports=r.namespaceObject=new Proxy(n,{get(e,t){if(a.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of s){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of s)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),s);"object"==typeof e&&null!==e&&u.push(e)},u.v=m,u.n=function(e,t){let r;(r=null!=t?p(this.c,t):this.m).exports=r.namespaceObject=e};let b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y=[null,b({}),b([]),b(b)];function g(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!y.includes(t);t=b(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),d(t,n),t}function O(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=g(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function w(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function k(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}u.i=O,u.A=function(e){return this.r(e)(O.bind(this))},u.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},u.r=function(e){return B(e,this.m).exports},u.f=function(e){function t(t){if(t=w(t),a.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=w(t),a.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let j=Symbol("turbopack queues"),v=Symbol("turbopack exports"),U=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}u.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:s}=k(),u=Object.assign(s,{[v]:r.exports,[j]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[v]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(j in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[v]:{},[j]:e=>e(t)};return e.then(e=>{r[v]=e,C(t)},e=>{r[U]=e,C(t)}),r}}return{[v]:e,[j]:()=>{}}}),r=()=>t.map(e=>{if(e[U])throw e[U];return e[v]}),{promise:i,resolve:l}=k(),s=Object.assign(()=>l(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[j](u)),s.queueCount?i:r()},function(e){e?l(u[U]=e):i(u[v]),C(n)}),n&&-1===n.status&&(n.status=0)};let P=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function R(e,t){throw Error(`Invariant: ${t(e)}`)}P.prototype=URL.prototype,u.U=P,u.z=function(e){throw Error("dynamic usage of require is not supported")},u.g=globalThis;let S=s.prototype,$=new Map;u.M=$;let E=new Map,_=new Map;async function T(e,t,r){let n;if("string"==typeof r)return M(e,t,N(r));let o=r.included||[],i=o.map(e=>!!$.has(e)||E.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],s=l.map(e=>_.get(e)).filter(e=>e);if(s.length>0){if(s.length===l.length)return void await Promise.all(s);let r=new Set;for(let e of l)_.has(e)||r.add(e);for(let n of r){let r=M(e,t,N(n));_.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=M(e,t,N(r.path)),l))_.has(o)||_.set(o,n)}for(let e of o)E.has(e)||E.set(e,n);await n}S.l=function(e){return T(i.Parent,this.m.id,e)};let A=Promise.resolve(void 0),x=new WeakMap;function M(t,r,n){let o=e.loadChunkCached(t,n),l=x.get(o);if(void 0===l){let e=x.set.bind(x,o,A);l=o.then(e).catch(e=>{let o;switch(t){case i.Runtime:o=`as a runtime dependency of chunk ${r}`;break;case i.Parent:o=`from module ${r}`;break;case i.Update:o="from an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),x.set(o,l)}return l}function N(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}S.L=function(e){return M(i.Parent,this.m.id,e)},S.R=function(e){let t=this.r(e);return t?.default??t},S.P=function(e){return`/ROOT/${e??""}`},S.q=function(e,t){m.call(this,`${e}${r}`,t)},S.b=function(e,t,o,i){let l="SharedWorker"===e.name,s=[o.map(e=>N(e)).reverse(),r];for(let e of n)s.push(globalThis[e]);let u=new URL(N(t),location.origin),a=JSON.stringify(s);return l?u.searchParams.set("params",a):u.hash="#params="+encodeURIComponent(a),new e(u,i?{...i,type:void 0}:void 0)};let q=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function L(e){return K.test(e)}u.w=function(t,r,n){return e.loadWebAssembly(i.Parent,this.m.id,t,r,n)},u.u=function(t,r){return e.loadWebAssemblyModule(i.Parent,this.m.id,t,r)};let I={};u.c=I;let B=(e,t)=>{let r=I[e];if(r){if(r.error)throw r.error;return r}return W(e,i.Parent,t.id)};function W(e,t,r){let n=$.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=h(e),i=o.exports;I[e]=o;let l=new s(o,i);try{n(l,o,i)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&g(o.exports,o.namespaceObject),o}function F(t){let r,n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let i=e[o];for(let i=r;i<o;i++){let r=e[i],o=t.get(r);if(o){n=o;break}}let l=n??i,s=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(s||(l===i&&Object.defineProperty(i,"name",{value:"module evaluation"}),s=!0),t.set(r,l))}r=o+1}}(t,$)),e.registerChunk(n,r)}let X=new Map;function D(e){let t=X.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},X.set(e,t)}return t}e={async registerChunk(e,r){let n=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(e.src.replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(e);if(D("string"==typeof e?N(e):e.src).resolve(),null!=r){for(let e of r.otherChunks)D(N("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(e=>T(i.Runtime,n,e))),r.runtimeModuleIds.length>0)for(let e of r.runtimeModuleIds)!function(e,t){let r=I[t];if(r){if(r.error)throw r.error;return}W(t,i.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>(function(e,t){let r=D(t);if(r.loadingStarted)return r.promise;if(e===i.Runtime)return r.loadingStarted=!0,L(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(L(t));else if(q.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(L(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(q.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let i=fetch(N(r)),{instance:l}=await WebAssembly.instantiateStreaming(i,o);return l.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(N(r));return await WebAssembly.compileStreaming(o)}};let H=globalThis.TURBOPACK;globalThis.TURBOPACK={push:F},H.forEach(F)})();
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/0kjot8367asxe.js","static/chunks/073081qv4uyn8.js","static/chunks/0l4e3as18eexy.js","static/chunks/0257pdz1-imal.js"],runtimeModuleIds:[94553]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),n=["NEXT_DEPLOYMENT_ID","NEXT_CLIENT_ASSET_SUFFIX"];var o,i=((o=i||{})[o.Runtime=0]="Runtime",o[o.Parent=1]="Parent",o[o.Update=2]="Update",o);let l=new WeakMap;function s(e,t){this.m=e,this.e=t}let u=s.prototype,a=Object.prototype.hasOwnProperty,c="u">typeof Symbol&&Symbol.toStringTag;function f(e,t,r){a.call(e,t)||Object.defineProperty(e,t,r)}function p(e,t){let r=e[t];return r||(r=h(t),e[t]=r),r}function h(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function d(e,t){f(e,"__esModule",{value:!0}),c&&f(e,c,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)f(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?f(e,n,{get:o,set:t[r++],enumerable:!0}):f(e,n,{get:o,enumerable:!0})}Object.seal(e)}function m(e,t){(null!=t?p(this.c,t):this.m).exports=e}u.s=function(e,t){let r,n;null!=t?n=(r=p(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,d(n,e)},u.j=function(e,t){var r,n;let o,i,s;null!=t?i=(o=p(this.c,t)).exports:(o=this.m,i=this.e);let u=(r=o,n=i,(s=l.get(r))||(l.set(r,s=[]),r.exports=r.namespaceObject=new Proxy(n,{get(e,t){if(a.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of s){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of s)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),s);"object"==typeof e&&null!==e&&u.push(e)},u.v=m,u.n=function(e,t){let r;(r=null!=t?p(this.c,t):this.m).exports=r.namespaceObject=e};let b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y=[null,b({}),b([]),b(b)];function g(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!y.includes(t);t=b(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),d(t,n),t}function O(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=g(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function w(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function j(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}u.i=O,u.A=function(e){return this.r(e)(O.bind(this))},u.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},u.r=function(e){return B(e,this.m).exports},u.f=function(e){function t(t){if(t=w(t),a.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=w(t),a.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let k=Symbol("turbopack queues"),U=Symbol("turbopack exports"),v=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}u.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:s}=j(),u=Object.assign(s,{[U]:r.exports,[k]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[U]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(k in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[U]:{},[k]:e=>e(t)};return e.then(e=>{r[U]=e,C(t)},e=>{r[v]=e,C(t)}),r}}return{[U]:e,[k]:()=>{}}}),r=()=>t.map(e=>{if(e[v])throw e[v];return e[U]}),{promise:i,resolve:l}=j(),s=Object.assign(()=>l(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[k](u)),s.queueCount?i:r()},function(e){e?l(u[v]=e):i(u[U]),C(n)}),n&&-1===n.status&&(n.status=0)};let P=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function R(e,t){throw Error(`Invariant: ${t(e)}`)}P.prototype=URL.prototype,u.U=P,u.z=function(e){throw Error("dynamic usage of require is not supported")},u.g=globalThis;let S=s.prototype,$=new Map;u.M=$;let E=new Map,_=new Map;async function T(e,t,r){let n;if("string"==typeof r)return M(e,t,N(r));let o=r.included||[],i=o.map(e=>!!$.has(e)||E.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],s=l.map(e=>_.get(e)).filter(e=>e);if(s.length>0){if(s.length===l.length)return void await Promise.all(s);let r=new Set;for(let e of l)_.has(e)||r.add(e);for(let n of r){let r=M(e,t,N(n));_.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=M(e,t,N(r.path)),l))_.has(o)||_.set(o,n)}for(let e of o)E.has(e)||E.set(e,n);await n}S.l=function(e){return T(i.Parent,this.m.id,e)};let A=Promise.resolve(void 0),x=new WeakMap;function M(t,r,n){let o=e.loadChunkCached(t,n),l=x.get(o);if(void 0===l){let e=x.set.bind(x,o,A);l=o.then(e).catch(e=>{let o;switch(t){case i.Runtime:o=`as a runtime dependency of chunk ${r}`;break;case i.Parent:o=`from module ${r}`;break;case i.Update:o="from an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),x.set(o,l)}return l}function N(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}S.L=function(e){return M(i.Parent,this.m.id,e)},S.R=function(e){let t=this.r(e);return t?.default??t},S.P=function(e){return`/ROOT/${e??""}`},S.q=function(e,t){m.call(this,`${e}${r}`,t)},S.b=function(e,t,o,i){let l="SharedWorker"===e.name,s=[o.map(e=>N(e)).reverse(),r];for(let e of n)s.push(globalThis[e]);let u=new URL(N(t),location.origin),a=JSON.stringify(s);return l?u.searchParams.set("params",a):u.hash="#params="+encodeURIComponent(a),new e(u,i?{...i,type:void 0}:void 0)};let q=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function L(e){return K.test(e)}u.w=function(t,r,n){return e.loadWebAssembly(i.Parent,this.m.id,t,r,n)},u.u=function(t,r){return e.loadWebAssemblyModule(i.Parent,this.m.id,t,r)};let I={};u.c=I;let B=(e,t)=>{let r=I[e];if(r){if(r.error)throw r.error;return r}return W(e,i.Parent,t.id)};function W(e,t,r){let n=$.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=h(e),i=o.exports;I[e]=o;let l=new s(o,i);try{n(l,o,i)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&g(o.exports,o.namespaceObject),o}function F(t){let r,n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let i=e[o];for(let i=r;i<o;i++){let r=e[i],o=t.get(r);if(o){n=o;break}}let l=n??i,s=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(s||(l===i&&Object.defineProperty(i,"name",{value:"module evaluation"}),s=!0),t.set(r,l))}r=o+1}}(t,$)),e.registerChunk(n,r)}let X=new Map;function D(e){let t=X.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},X.set(e,t)}return t}e={async registerChunk(e,r){let n=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(e.src.replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(e);if(D("string"==typeof e?N(e):e.src).resolve(),null!=r){for(let e of r.otherChunks)D(N("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(e=>T(i.Runtime,n,e))),r.runtimeModuleIds.length>0)for(let e of r.runtimeModuleIds)!function(e,t){let r=I[t];if(r){if(r.error)throw r.error;return}W(t,i.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>(function(e,t){let r=D(t);if(r.loadingStarted)return r.promise;if(e===i.Runtime)return r.loadingStarted=!0,L(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(L(t));else if(q.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(L(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(q.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let i=fetch(N(r)),{instance:l}=await WebAssembly.instantiateStreaming(i,o);return l.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(N(r));return await WebAssembly.compileStreaming(o)}};let H=globalThis.TURBOPACK;globalThis.TURBOPACK={push:F},H.forEach(F)})();
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Ask Claude about a session.
2
+ * Ask an LLM about a session.
3
3
  *
4
4
  * POST /api/ask
5
5
  * { sessionId: string, question: string, model?: "haiku" | "sonnet" | "opus" }
@@ -39,7 +39,8 @@ export async function GET(_req: Request, ctx: Params) {
39
39
 
40
40
  const isCurrent = monday === currentWeekMonday();
41
41
  if (isCurrent) {
42
- const cached = getCurrentWeekDigestFromCache(monday, Date.now());
42
+ const cached =
43
+ getCurrentWeekDigestFromCache(monday, Date.now()) ?? readWeekDigest(monday);
43
44
  if (cached) {
44
45
  return new Response(JSON.stringify(cached), {
45
46
  status: 200, headers: { "content-type": "application/json" },
@@ -34,6 +34,7 @@ export async function PUT(req: Request) {
34
34
  ...current.ai_features,
35
35
  ...(update.enabled !== undefined ? { enabled: update.enabled } : {}),
36
36
  ...(update.autoBackfillLastWeek !== undefined ? { autoBackfillLastWeek: update.autoBackfillLastWeek } : {}),
37
+ ...(update.autoBackfillYesterday !== undefined ? { autoBackfillYesterday: update.autoBackfillYesterday } : {}),
37
38
  },
38
39
  });
39
40
  return NextResponse.json({ ok: true });