fleetlens 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/app/apps/web/.next/BUILD_ID +1 -1
  2. package/app/apps/web/.next/app-path-routes-manifest.json +16 -7
  3. package/app/apps/web/.next/build-manifest.json +7 -7
  4. package/app/apps/web/.next/prerender-manifest.json +3 -3
  5. package/app/apps/web/.next/required-server-files.json +2 -1
  6. package/app/apps/web/.next/routes-manifest.json +86 -24
  7. package/app/apps/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  8. package/app/apps/web/.next/server/app/_global-error/page.js +1 -1
  9. package/app/apps/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  10. package/app/apps/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/app/apps/web/.next/server/app/_global-error.html +1 -1
  12. package/app/apps/web/.next/server/app/_global-error.rsc +7 -7
  13. package/app/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  14. package/app/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  15. package/app/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  16. package/app/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  17. package/app/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/app/apps/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  19. package/app/apps/web/.next/server/app/_not-found/page.js +5 -4
  20. package/app/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  21. package/app/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  22. package/app/apps/web/.next/server/app/api/digest/day/[date]/route/app-paths-manifest.json +3 -0
  23. package/app/apps/web/.next/server/app/api/digest/day/[date]/route.js +9 -0
  24. package/app/apps/web/.next/server/app/api/{insights/saved/[key] → digest/day/[date]}/route.js.nft.json +1 -1
  25. package/app/apps/web/.next/server/app/api/digest/day/[date]/route_client-reference-manifest.js +3 -0
  26. package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route/app-paths-manifest.json +3 -0
  27. package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js +9 -0
  28. package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js.nft.json +1 -0
  29. package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route_client-reference-manifest.js +3 -0
  30. package/app/apps/web/.next/server/app/api/digest/month-index/route/app-paths-manifest.json +3 -0
  31. package/app/apps/web/.next/server/app/api/digest/month-index/route.js +7 -0
  32. package/app/apps/web/.next/server/app/api/{insights/months-index → digest/month-index}/route.js.nft.json +1 -1
  33. package/app/apps/web/.next/server/app/api/{insights/pdf/[key] → digest/month-index}/route_client-reference-manifest.js +1 -1
  34. package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route/app-paths-manifest.json +3 -0
  35. package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js +9 -0
  36. package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js.nft.json +1 -0
  37. package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route_client-reference-manifest.js +3 -0
  38. package/app/apps/web/.next/server/app/api/digest/week-index/route/app-paths-manifest.json +3 -0
  39. package/app/apps/web/.next/server/app/api/digest/week-index/route.js +7 -0
  40. package/app/apps/web/.next/server/app/api/{insights/weeks-index → digest/week-index}/route.js.nft.json +1 -1
  41. package/app/apps/web/.next/server/app/api/digest/week-index/route_client-reference-manifest.js +3 -0
  42. package/app/apps/web/.next/server/app/api/jobs/route/app-paths-manifest.json +3 -0
  43. package/app/apps/web/.next/server/app/api/jobs/route.js +6 -0
  44. package/app/apps/web/.next/server/app/api/jobs/route.js.nft.json +1 -0
  45. package/app/apps/web/.next/server/app/api/jobs/route_client-reference-manifest.js +3 -0
  46. package/app/apps/web/.next/server/app/api/runs/[runId]/route/app-paths-manifest.json +3 -0
  47. package/app/apps/web/.next/server/app/api/runs/[runId]/route/build-manifest.json +9 -0
  48. package/app/apps/web/.next/server/app/api/runs/[runId]/route.js +6 -0
  49. package/app/apps/web/.next/server/app/api/{insights/saved → runs/[runId]}/route.js.nft.json +1 -1
  50. package/app/apps/web/.next/server/app/api/runs/[runId]/route_client-reference-manifest.js +3 -0
  51. package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route/app-paths-manifest.json +3 -0
  52. package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route/build-manifest.json +9 -0
  53. package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route/server-reference-manifest.json +4 -0
  54. package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route.js +6 -0
  55. package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route.js.map +5 -0
  56. package/app/apps/web/.next/server/app/api/{insights/pdf/[key] → runs/[runId]/stream}/route.js.nft.json +1 -1
  57. package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route_client-reference-manifest.js +3 -0
  58. package/app/apps/web/.next/server/app/api/runs/route/app-paths-manifest.json +3 -0
  59. package/app/apps/web/.next/server/app/api/runs/route/build-manifest.json +9 -0
  60. package/app/apps/web/.next/server/app/api/runs/route/server-reference-manifest.json +4 -0
  61. package/app/apps/web/.next/server/app/api/runs/route.js +6 -0
  62. package/app/apps/web/.next/server/app/api/runs/route.js.map +5 -0
  63. package/app/apps/web/.next/server/app/api/{insights → runs}/route.js.nft.json +1 -1
  64. package/app/apps/web/.next/server/app/api/runs/route_client-reference-manifest.js +3 -0
  65. package/app/apps/web/.next/server/app/api/settings/route/app-paths-manifest.json +3 -0
  66. package/app/apps/web/.next/server/app/api/settings/route/build-manifest.json +9 -0
  67. package/app/apps/web/.next/server/app/api/settings/route/server-reference-manifest.json +4 -0
  68. package/app/apps/web/.next/server/app/api/settings/route.js +10 -0
  69. package/app/apps/web/.next/server/app/api/settings/route.js.map +5 -0
  70. package/app/apps/web/.next/server/app/api/settings/route.js.nft.json +1 -0
  71. package/app/apps/web/.next/server/app/api/{insights → settings}/route_client-reference-manifest.js +1 -1
  72. package/app/apps/web/.next/server/app/day/[date]/page/app-paths-manifest.json +3 -0
  73. package/app/apps/web/.next/server/app/{insights/print/[key] → day/[date]}/page/build-manifest.json +4 -4
  74. package/app/apps/web/.next/server/app/day/[date]/page/server-reference-manifest.json +4 -0
  75. package/app/apps/web/.next/server/app/day/[date]/page.js +18 -0
  76. package/app/apps/web/.next/server/app/day/[date]/page.js.map +5 -0
  77. package/app/apps/web/.next/server/app/day/[date]/page.js.nft.json +1 -0
  78. package/app/apps/web/.next/server/app/day/[date]/page_client-reference-manifest.js +3 -0
  79. package/app/apps/web/.next/server/app/day/page/app-paths-manifest.json +3 -0
  80. package/app/apps/web/.next/server/app/day/page/build-manifest.json +17 -0
  81. package/app/apps/web/.next/server/app/day/page/next-font-manifest.json +6 -0
  82. package/app/apps/web/.next/server/app/day/page/react-loadable-manifest.json +1 -0
  83. package/app/apps/web/.next/server/app/day/page/server-reference-manifest.json +4 -0
  84. package/app/apps/web/.next/server/app/{insights/print/[key] → day}/page.js +11 -10
  85. package/app/apps/web/.next/server/app/day/page.js.map +5 -0
  86. package/app/apps/web/.next/server/app/day/page.js.nft.json +1 -0
  87. package/app/apps/web/.next/server/app/day/page_client-reference-manifest.js +3 -0
  88. package/app/apps/web/.next/server/app/digest/[date]/page/app-paths-manifest.json +3 -0
  89. package/app/apps/web/.next/server/app/digest/[date]/page/build-manifest.json +17 -0
  90. package/app/apps/web/.next/server/app/digest/[date]/page/next-font-manifest.json +6 -0
  91. package/app/apps/web/.next/server/app/digest/[date]/page/react-loadable-manifest.json +1 -0
  92. package/app/apps/web/.next/server/app/digest/[date]/page/server-reference-manifest.json +4 -0
  93. package/app/apps/web/.next/server/app/digest/[date]/page.js +17 -0
  94. package/app/apps/web/.next/server/app/digest/[date]/page.js.map +5 -0
  95. package/app/apps/web/.next/server/app/digest/[date]/page.js.nft.json +1 -0
  96. package/app/apps/web/.next/server/app/digest/[date]/page_client-reference-manifest.js +3 -0
  97. package/app/apps/web/.next/server/app/digest/page/app-paths-manifest.json +3 -0
  98. package/app/apps/web/.next/server/app/digest/page/build-manifest.json +17 -0
  99. package/app/apps/web/.next/server/app/digest/page/next-font-manifest.json +6 -0
  100. package/app/apps/web/.next/server/app/digest/page/react-loadable-manifest.json +1 -0
  101. package/app/apps/web/.next/server/app/digest/page/server-reference-manifest.json +4 -0
  102. package/app/apps/web/.next/server/app/digest/page.js +17 -0
  103. package/app/apps/web/.next/server/app/digest/page.js.map +5 -0
  104. package/app/apps/web/.next/server/app/digest/page.js.nft.json +1 -0
  105. package/app/apps/web/.next/server/app/digest/page_client-reference-manifest.js +3 -0
  106. package/app/apps/web/.next/server/app/insights/[key]/page/build-manifest.json +4 -4
  107. package/app/apps/web/.next/server/app/insights/[key]/page.js +7 -5
  108. package/app/apps/web/.next/server/app/insights/[key]/page.js.nft.json +1 -1
  109. package/app/apps/web/.next/server/app/insights/[key]/page_client-reference-manifest.js +1 -1
  110. package/app/apps/web/.next/server/app/insights/page/build-manifest.json +4 -4
  111. package/app/apps/web/.next/server/app/insights/page.js +7 -5
  112. package/app/apps/web/.next/server/app/insights/page.js.nft.json +1 -1
  113. package/app/apps/web/.next/server/app/insights/page_client-reference-manifest.js +1 -1
  114. package/app/apps/web/.next/server/app/page/build-manifest.json +4 -4
  115. package/app/apps/web/.next/server/app/page.js +7 -6
  116. package/app/apps/web/.next/server/app/page.js.nft.json +1 -1
  117. package/app/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  118. package/app/apps/web/.next/server/app/parallelism/page/build-manifest.json +4 -4
  119. package/app/apps/web/.next/server/app/parallelism/page.js +6 -5
  120. package/app/apps/web/.next/server/app/parallelism/page.js.nft.json +1 -1
  121. package/app/apps/web/.next/server/app/parallelism/page_client-reference-manifest.js +1 -1
  122. package/app/apps/web/.next/server/app/projects/[slug]/page/build-manifest.json +4 -4
  123. package/app/apps/web/.next/server/app/projects/[slug]/page.js +6 -5
  124. package/app/apps/web/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  125. package/app/apps/web/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  126. package/app/apps/web/.next/server/app/projects/page/build-manifest.json +4 -4
  127. package/app/apps/web/.next/server/app/projects/page.js +5 -4
  128. package/app/apps/web/.next/server/app/projects/page.js.nft.json +1 -1
  129. package/app/apps/web/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  130. package/app/apps/web/.next/server/app/runs/page/app-paths-manifest.json +3 -0
  131. package/app/apps/web/.next/server/app/runs/page/build-manifest.json +17 -0
  132. package/app/apps/web/.next/server/app/runs/page/next-font-manifest.json +6 -0
  133. package/app/apps/web/.next/server/app/runs/page/react-loadable-manifest.json +1 -0
  134. package/app/apps/web/.next/server/app/runs/page/server-reference-manifest.json +4 -0
  135. package/app/apps/web/.next/server/app/runs/page.js +17 -0
  136. package/app/apps/web/.next/server/app/runs/page.js.map +5 -0
  137. package/app/apps/web/.next/server/app/runs/page.js.nft.json +1 -0
  138. package/app/apps/web/.next/server/app/runs/page_client-reference-manifest.js +3 -0
  139. package/app/apps/web/.next/server/app/sessions/[id]/page/build-manifest.json +4 -4
  140. package/app/apps/web/.next/server/app/sessions/[id]/page.js +5 -4
  141. package/app/apps/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  142. package/app/apps/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  143. package/app/apps/web/.next/server/app/sessions/page/build-manifest.json +4 -4
  144. package/app/apps/web/.next/server/app/sessions/page.js +5 -4
  145. package/app/apps/web/.next/server/app/sessions/page.js.nft.json +1 -1
  146. package/app/apps/web/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  147. package/app/apps/web/.next/server/app/settings/page/app-paths-manifest.json +3 -0
  148. package/app/apps/web/.next/server/app/settings/page/build-manifest.json +17 -0
  149. package/app/apps/web/.next/server/app/settings/page/next-font-manifest.json +6 -0
  150. package/app/apps/web/.next/server/app/settings/page/react-loadable-manifest.json +1 -0
  151. package/app/apps/web/.next/server/app/settings/page/server-reference-manifest.json +4 -0
  152. package/app/apps/web/.next/server/app/settings/page.js +18 -0
  153. package/app/apps/web/.next/server/app/settings/page.js.map +5 -0
  154. package/app/apps/web/.next/server/app/settings/page.js.nft.json +1 -0
  155. package/app/apps/web/.next/server/app/settings/page_client-reference-manifest.js +3 -0
  156. package/app/apps/web/.next/server/app/usage/page/build-manifest.json +4 -4
  157. package/app/apps/web/.next/server/app/usage/page.js +6 -5
  158. package/app/apps/web/.next/server/app/usage/page.js.nft.json +1 -1
  159. package/app/apps/web/.next/server/app/usage/page_client-reference-manifest.js +1 -1
  160. package/app/apps/web/.next/server/app-paths-manifest.json +16 -7
  161. package/app/apps/web/.next/server/chunks/02dz_web__next-internal_server_app_api_digest_week_[startDate]_route_actions_0klqqsh.js +3 -0
  162. package/app/apps/web/.next/server/chunks/09og__next-internal_server_app_api_digest_month_[yearMonth]_route_actions_0i4ielu.js +3 -0
  163. package/app/apps/web/.next/server/chunks/[externals]__0o43ejh._.js +3 -0
  164. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0-vgrh1._.js +3 -0
  165. package/app/apps/web/.next/server/chunks/[root-of-the-server]__00n3f9y._.js +3 -0
  166. package/app/apps/web/.next/server/chunks/[root-of-the-server]__02zukjw._.js +3 -0
  167. package/app/apps/web/.next/server/chunks/[root-of-the-server]__067~im1._.js +6 -0
  168. package/app/apps/web/.next/server/chunks/[root-of-the-server]__06b4cj-._.js +3 -0
  169. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0_8zh-i._.js +9 -0
  170. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0e8n_x4._.js +3 -0
  171. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0ej_p3s._.js +9 -0
  172. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0jprdks._.js +9 -0
  173. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_digest_day_[date]_route_actions_09sxie5.js +3 -0
  174. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_digest_month-index_route_actions_0wldpbu.js +3 -0
  175. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_digest_week-index_route_actions_12c2wj2.js +3 -0
  176. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_jobs_route_actions_08kx~8-.js +3 -0
  177. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_runs_[runId]_route_actions_0dfcghc.js +3 -0
  178. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_runs_[runId]_stream_route_actions_0.8e8-k.js +3 -0
  179. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_runs_route_actions_0xyx82f.js +3 -0
  180. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_settings_route_actions_0.xv7sx.js +3 -0
  181. package/app/apps/web/.next/server/chunks/node_modules_next_036my~r._.js +49 -0
  182. package/app/apps/web/.next/server/chunks/packages_0e7q9u_._.js +3 -0
  183. package/app/apps/web/.next/server/chunks/packages_0n6p2ot._.js +3 -0
  184. package/app/apps/web/.next/server/chunks/packages_entries_dist_node_0bckr7-.js +379 -0
  185. package/app/apps/web/.next/server/chunks/packages_parser_dist_fs_0bc7ptm.js +1 -1
  186. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0-1_njm._.js +3 -0
  187. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0-94ji~._.js +3 -0
  188. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__13xpdx0._.js → [root-of-the-server]__03uoeiw._.js} +2 -2
  189. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0_6.inc._.js +1 -1
  190. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0d~2~le._.js +8 -0
  191. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0gio_ck._.js +1 -1
  192. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__08.d5ia._.js → [root-of-the-server]__0jdyefm._.js} +10 -10
  193. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0ln9jsw._.js +3 -0
  194. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0z45d0g._.js → [root-of-the-server]__0lz4a~g._.js} +2 -48
  195. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0o1_g.~._.js +3 -0
  196. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0r4tks8._.js +3 -0
  197. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0rvzdnx._.js +3 -0
  198. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0euu8sa._.js → [root-of-the-server]__0u39afl._.js} +2 -2
  199. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0u5d7de._.js +12 -0
  200. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0w52fbc._.js +3 -3
  201. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0wwa6gh._.js +3 -0
  202. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0xy1qim._.js +3 -0
  203. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0~_8vff._.js +3 -0
  204. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__10srpu0._.js +3 -0
  205. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__11v.eqw._.js +1 -1
  206. package/app/apps/web/.next/server/chunks/ssr/_02s1n-x._.js +8 -0
  207. package/app/apps/web/.next/server/chunks/ssr/_0fjbf--._.js +3 -0
  208. package/app/apps/web/.next/server/chunks/ssr/_0jw2sm7._.js +3 -0
  209. package/app/apps/web/.next/server/chunks/ssr/_0wj750k._.js +3 -0
  210. package/app/apps/web/.next/server/chunks/ssr/_0woap-3._.js +1 -1
  211. package/app/apps/web/.next/server/chunks/ssr/{_0xies90._.js → _0xu2pvc._.js} +2 -2
  212. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_day_[date]_page_actions_0u2kxb..js +3 -0
  213. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_day_page_actions_1042maj.js +3 -0
  214. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_digest_[date]_page_actions_0olu967.js +3 -0
  215. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_digest_page_actions_0bl.eil.js +3 -0
  216. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_runs_page_actions_0485qy7.js +3 -0
  217. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_settings_page_actions_0f6epye.js +3 -0
  218. package/app/apps/web/.next/server/chunks/ssr/apps_web_app_day_[date]_day-view_tsx_0wjoe1u._.js +3 -0
  219. package/app/apps/web/.next/server/chunks/ssr/apps_web_app_settings_ai-features-form_tsx_01p699p._.js +3 -0
  220. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0b-4-4j._.js +1 -1
  221. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0ly1xes._.js +6 -0
  222. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0txtsv5._.js +16 -0
  223. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0xs658s._.js +10 -0
  224. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_runs-live-board_tsx_0r6dkdq._.js +3 -0
  225. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_usage-charts-dashboard_tsx_0bgr_uv._.js +1 -1
  226. package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_usage-data_ts_0xtv99n._.js +3 -0
  227. package/app/apps/web/.next/server/chunks/ssr/node_modules_0i2xw~e._.js +3 -0
  228. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_0e1izl_._.js +1 -1
  229. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0d3d4wn.js +4 -0
  230. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0edz1ko.js +4 -0
  231. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0eq.n-n.js +4 -0
  232. package/app/apps/web/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0vz7_px.js → node_modules_next_dist_esm_build_templates_app-page_0hcvt-s.js} +3 -3
  233. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0nd5zu0.js +4 -0
  234. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11j1qy0.js +4 -0
  235. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_12n1lw_.js +1 -1
  236. package/app/apps/web/.next/server/chunks/ssr/packages_entries_dist_node_0_271yr.js +3 -0
  237. package/app/apps/web/.next/server/chunks/ssr/packages_parser_dist_0-jvt~a._.js +1 -1
  238. package/app/apps/web/.next/server/functions-config-manifest.json +11 -6
  239. package/app/apps/web/.next/server/middleware-build-manifest.js +7 -7
  240. package/app/apps/web/.next/server/pages/500.html +1 -1
  241. package/app/apps/web/.next/server/server-reference-manifest.js +1 -1
  242. package/app/apps/web/.next/server/server-reference-manifest.json +1 -1
  243. package/app/apps/web/.next/static/chunks/0-yc2_pjxwwuq.js +1 -0
  244. package/app/apps/web/.next/static/chunks/0257pdz1-imal.js +2 -0
  245. package/app/apps/web/.next/static/chunks/05m.oz3kmf1p7.js +1 -0
  246. package/app/apps/web/.next/static/chunks/{0pqt~8bl3ukh4.js → 073081qv4uyn8.js} +1 -1
  247. package/app/apps/web/.next/static/chunks/{0018dy-m-kusj.js → 07lbm-sdh9c2j.js} +1 -1
  248. package/app/apps/web/.next/static/chunks/0858bgw2i4vob.js +1 -0
  249. package/app/apps/web/.next/static/chunks/0_7303jr0sf0w.js +10 -0
  250. package/app/apps/web/.next/static/chunks/0byz8fqw.exef.js +1 -0
  251. package/app/apps/web/.next/static/chunks/0coa1800xqgfj.js +1 -0
  252. package/app/apps/web/.next/static/chunks/0fs3gxea5h0s3.css +1 -0
  253. package/app/apps/web/.next/static/chunks/0k1psab.bybh9.js +14 -0
  254. package/app/apps/web/.next/static/chunks/0k9pksi_i.odf.js +1 -0
  255. package/app/apps/web/.next/static/chunks/0m62vx92~0_0d.js +1 -0
  256. package/app/apps/web/.next/static/chunks/0mc8aa8z.0-5l.js +8 -0
  257. package/app/apps/web/.next/static/chunks/0mykrrv810ra-.js +31 -0
  258. package/app/apps/web/.next/static/chunks/0o9ayt8sknubd.js +1 -0
  259. package/app/apps/web/.next/static/chunks/0osdgl2.9cl1q.js +6 -0
  260. package/app/apps/web/.next/static/chunks/0xfu09fn_358k.js +4 -0
  261. package/app/apps/web/.next/static/chunks/171za22fv684..js +6 -0
  262. package/app/apps/web/.next/static/chunks/17u2ww8ya5dv1.js +6 -0
  263. package/app/apps/web/.next/static/chunks/{turbopack-169w-1._23ra_.js → turbopack-0_p36yduv.waj.js} +1 -1
  264. package/app/apps/web/app/api/digest/day/[date]/route.ts +152 -0
  265. package/app/apps/web/app/api/digest/month/[yearMonth]/route.ts +147 -0
  266. package/app/apps/web/app/api/digest/month-index/route.ts +103 -0
  267. package/app/apps/web/app/api/digest/week/[startDate]/route.ts +149 -0
  268. package/app/apps/web/app/api/{insights/weeks-index → digest/week-index}/route.ts +45 -33
  269. package/app/apps/web/app/api/jobs/route.ts +8 -0
  270. package/app/apps/web/app/api/runs/[runId]/route.ts +64 -0
  271. package/app/apps/web/app/api/runs/[runId]/stream/route.ts +154 -0
  272. package/app/apps/web/app/api/runs/route.ts +266 -0
  273. package/app/apps/web/app/api/settings/route.ts +35 -0
  274. package/app/apps/web/app/day/[date]/day-view.tsx +193 -0
  275. package/app/apps/web/app/day/[date]/page.tsx +175 -0
  276. package/app/apps/web/app/day/page.tsx +8 -0
  277. package/app/apps/web/app/digest/[date]/page.tsx +15 -0
  278. package/app/apps/web/app/digest/page.tsx +7 -0
  279. package/app/apps/web/app/insights/[key]/page.tsx +106 -48
  280. package/app/apps/web/app/insights/page.tsx +133 -3
  281. package/app/apps/web/app/layout.tsx +23 -3
  282. package/app/apps/web/app/page.tsx +33 -4
  283. package/app/apps/web/app/parallelism/gantt-chart.tsx +67 -1
  284. package/app/apps/web/app/parallelism/page.tsx +8 -278
  285. package/app/apps/web/app/projects/[slug]/page.tsx +153 -0
  286. package/app/apps/web/app/projects/page.tsx +49 -4
  287. package/app/apps/web/app/projects/projects-view.tsx +79 -68
  288. package/app/apps/web/app/runs/page.tsx +21 -0
  289. package/app/apps/web/app/sessions/[id]/page.tsx +12 -1
  290. package/app/apps/web/app/sessions/[id]/session-view.tsx +569 -21
  291. package/app/apps/web/app/sessions/page.tsx +19 -3
  292. package/app/apps/web/app/sessions/sessions-grid.tsx +172 -131
  293. package/app/apps/web/app/settings/ai-features-form.tsx +45 -0
  294. package/app/apps/web/app/settings/page.tsx +20 -0
  295. package/app/apps/web/app/usage/page.tsx +45 -3
  296. package/app/apps/web/components/auto-generate-yesterday.tsx +96 -0
  297. package/app/apps/web/components/backfill-drawer.tsx +309 -0
  298. package/app/apps/web/components/dashboard-view.tsx +4 -2
  299. package/app/apps/web/components/date-nav.tsx +385 -0
  300. package/app/apps/web/components/day-digest-view.tsx +180 -0
  301. package/app/apps/web/components/day-digest.tsx +489 -0
  302. package/app/apps/web/components/flag-chip.tsx +54 -0
  303. package/app/apps/web/components/goal-bar.tsx +63 -0
  304. package/app/apps/web/components/heatmap.tsx +78 -1
  305. package/app/apps/web/components/helpfulness-sparkline.tsx +82 -0
  306. package/app/apps/web/components/insights-history.tsx +211 -0
  307. package/app/apps/web/components/insights-top-bar.tsx +216 -0
  308. package/app/apps/web/components/job-queue-widget.tsx +274 -0
  309. package/app/apps/web/components/live-sessions-widget.tsx +38 -3
  310. package/app/apps/web/components/month-digest-view.tsx +138 -0
  311. package/app/apps/web/components/month-digest.tsx +216 -0
  312. package/app/apps/web/components/outcome-mix-row.tsx +37 -0
  313. package/app/apps/web/components/outcome-pill.tsx +101 -0
  314. package/app/apps/web/components/previous-cycles-trend.tsx +155 -0
  315. package/app/apps/web/components/recent-days-panel.tsx +83 -0
  316. package/app/apps/web/components/runs-live-board.tsx +513 -0
  317. package/app/apps/web/components/sidebar.tsx +38 -4
  318. package/app/apps/web/components/usage-chart-range.tsx +58 -6
  319. package/app/apps/web/components/usage-chart.tsx +94 -7
  320. package/app/apps/web/components/usage-charts-dashboard.tsx +20 -1
  321. package/app/apps/web/components/week-digest-view.tsx +226 -0
  322. package/app/apps/web/components/week-digest.tsx +2128 -0
  323. package/app/apps/web/components/yesterday-hero.tsx +110 -0
  324. package/app/apps/web/lib/auto-week-fire.ts +37 -0
  325. package/app/apps/web/lib/calibration-data.ts +171 -0
  326. package/app/apps/web/lib/entries-index.ts +174 -0
  327. package/app/apps/web/lib/entries.ts +72 -0
  328. package/app/apps/web/lib/inflight-coalesce.test.ts +43 -0
  329. package/app/apps/web/lib/inflight-coalesce.ts +19 -0
  330. package/app/apps/web/lib/jobs.ts +170 -0
  331. package/app/apps/web/lib/usage-data.ts +37 -0
  332. package/app/apps/web/lib/validate-settings.test.ts +25 -0
  333. package/app/apps/web/lib/validate-settings.ts +9 -0
  334. package/app/apps/web/next.config.ts +1 -1
  335. package/app/apps/web/package.json +4 -2
  336. package/app/apps/web/server.js +1 -1
  337. package/app/apps/web/tsconfig.tsbuildinfo +1 -1
  338. package/app/apps/web/vitest.config.ts +9 -0
  339. package/dist/daemon-worker.js +1758 -713
  340. package/dist/index.js +11308 -1888
  341. package/package.json +4 -1
  342. package/app/apps/web/.next/server/app/api/insights/months-index/route/app-paths-manifest.json +0 -3
  343. package/app/apps/web/.next/server/app/api/insights/months-index/route.js +0 -7
  344. package/app/apps/web/.next/server/app/api/insights/months-index/route_client-reference-manifest.js +0 -3
  345. package/app/apps/web/.next/server/app/api/insights/pdf/[key]/route/app-paths-manifest.json +0 -3
  346. package/app/apps/web/.next/server/app/api/insights/pdf/[key]/route.js +0 -6
  347. package/app/apps/web/.next/server/app/api/insights/route/app-paths-manifest.json +0 -3
  348. package/app/apps/web/.next/server/app/api/insights/route.js +0 -8
  349. package/app/apps/web/.next/server/app/api/insights/saved/[key]/route/app-paths-manifest.json +0 -3
  350. package/app/apps/web/.next/server/app/api/insights/saved/[key]/route.js +0 -6
  351. package/app/apps/web/.next/server/app/api/insights/saved/[key]/route_client-reference-manifest.js +0 -3
  352. package/app/apps/web/.next/server/app/api/insights/saved/route/app-paths-manifest.json +0 -3
  353. package/app/apps/web/.next/server/app/api/insights/saved/route.js +0 -6
  354. package/app/apps/web/.next/server/app/api/insights/saved/route_client-reference-manifest.js +0 -3
  355. package/app/apps/web/.next/server/app/api/insights/weeks-index/route/app-paths-manifest.json +0 -3
  356. package/app/apps/web/.next/server/app/api/insights/weeks-index/route.js +0 -7
  357. package/app/apps/web/.next/server/app/api/insights/weeks-index/route_client-reference-manifest.js +0 -3
  358. package/app/apps/web/.next/server/app/insights/print/[key]/page/app-paths-manifest.json +0 -3
  359. package/app/apps/web/.next/server/app/insights/print/[key]/page.js.nft.json +0 -1
  360. package/app/apps/web/.next/server/app/insights/print/[key]/page_client-reference-manifest.js +0 -3
  361. package/app/apps/web/.next/server/chunks/02dz_web__next-internal_server_app_api_insights_months-index_route_actions_0~h~zci.js +0 -3
  362. package/app/apps/web/.next/server/chunks/02dz_web__next-internal_server_app_api_insights_saved_[key]_route_actions_0a5j9yw.js +0 -3
  363. package/app/apps/web/.next/server/chunks/02dz_web__next-internal_server_app_api_insights_weeks-index_route_actions_0hh-1c7.js +0 -3
  364. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0.hmj0z._.js +0 -3
  365. package/app/apps/web/.next/server/chunks/[root-of-the-server]__01h_g-p._.js +0 -3
  366. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0nh-z10._.js +0 -3
  367. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0ri7q~r._.js +0 -3
  368. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0rr1~~x._.js +0 -3
  369. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0s0gv.0._.js +0 -3
  370. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_insights_pdf_[key]_route_actions_0lu-lnx.js +0 -3
  371. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_insights_route_actions_0h8l5lz.js +0 -3
  372. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_insights_saved_route_actions_13rlblw.js +0 -3
  373. package/app/apps/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_00t2xj6.js +0 -68
  374. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0.tsxpj._.js +0 -3
  375. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__00z7zlm._.js +0 -3
  376. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__08pen0k._.js +0 -3
  377. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0b323~k._.js +0 -8
  378. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0gx-4qa._.js +0 -3
  379. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0wv27wt._.js +0 -3
  380. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__13itnvx._.js +0 -3
  381. package/app/apps/web/.next/server/chunks/ssr/_09n75_5._.js +0 -8
  382. package/app/apps/web/.next/server/chunks/ssr/_0r~__0v._.js +0 -12
  383. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_insights_print_[key]_page_actions_0a853fw.js +0 -3
  384. package/app/apps/web/.next/server/chunks/ssr/apps_web_app_parallelism_08vub.0._.js +0 -3
  385. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_06j3c.0._.js +0 -8
  386. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0bbo_pd._.js +0 -8
  387. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_insight-report_tsx_13q2a-c._.js +0 -12
  388. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_insights-view_tsx_11730ta._.js +0 -6
  389. package/app/apps/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_0nqz8dw._.js +0 -3
  390. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_0t-hj0x._.js +0 -3
  391. package/app/apps/web/.next/server/chunks/ssr/packages_parser_dist_analytics_0k4dgst.js +0 -3
  392. package/app/apps/web/.next/static/chunks/028_pmk40b69_.js +0 -6
  393. package/app/apps/web/.next/static/chunks/03.mv4y4.w-vb.js +0 -6
  394. package/app/apps/web/.next/static/chunks/03_7xtpi9sv4g.js +0 -4
  395. package/app/apps/web/.next/static/chunks/03g5dw5eskotd.js +0 -6
  396. package/app/apps/web/.next/static/chunks/063oimt30jeo9.js +0 -10
  397. package/app/apps/web/.next/static/chunks/08c1pcrocqq5s.js +0 -6
  398. package/app/apps/web/.next/static/chunks/0e-wrhqh4h3r5.js +0 -2
  399. package/app/apps/web/.next/static/chunks/0fc6dk2qtokwh.js +0 -1
  400. package/app/apps/web/.next/static/chunks/0i7er7_bfab36.js +0 -10
  401. package/app/apps/web/.next/static/chunks/0ipytyi01h0ta.js +0 -1
  402. package/app/apps/web/.next/static/chunks/0lsznd4_avzhv.js +0 -6
  403. package/app/apps/web/.next/static/chunks/0lty3v_i9mde7.js +0 -1
  404. package/app/apps/web/.next/static/chunks/0vekjjj4pidlz.css +0 -1
  405. package/app/apps/web/.next/static/chunks/137uw2-qbro07.js +0 -31
  406. package/app/apps/web/app/api/insights/months-index/route.ts +0 -80
  407. package/app/apps/web/app/api/insights/pdf/[key]/route.ts +0 -45
  408. package/app/apps/web/app/api/insights/route.ts +0 -508
  409. package/app/apps/web/app/api/insights/saved/[key]/route.ts +0 -11
  410. package/app/apps/web/app/api/insights/saved/route.ts +0 -9
  411. package/app/apps/web/app/insights/print/[key]/page.tsx +0 -73
  412. package/app/apps/web/components/insight-report.tsx +0 -1031
  413. package/app/apps/web/components/insights-view.tsx +0 -647
  414. package/app/apps/web/lib/ai/insights-prompt.ts +0 -71
  415. package/app/apps/web/lib/ai/saved-reports.ts +0 -83
  416. /package/app/apps/web/.next/server/app/api/{insights/months-index → digest/day/[date]}/route/build-manifest.json +0 -0
  417. /package/app/apps/web/.next/server/app/api/{insights/months-index → digest/day/[date]}/route/server-reference-manifest.json +0 -0
  418. /package/app/apps/web/.next/server/app/api/{insights/months-index → digest/day/[date]}/route.js.map +0 -0
  419. /package/app/apps/web/.next/server/app/api/{insights → digest/month/[yearMonth]}/route/build-manifest.json +0 -0
  420. /package/app/apps/web/.next/server/app/api/{insights → digest/month/[yearMonth]}/route/server-reference-manifest.json +0 -0
  421. /package/app/apps/web/.next/server/app/api/{insights → digest/month/[yearMonth]}/route.js.map +0 -0
  422. /package/app/apps/web/.next/server/app/api/{insights/pdf/[key] → digest/month-index}/route/build-manifest.json +0 -0
  423. /package/app/apps/web/.next/server/app/api/{insights/pdf/[key] → digest/month-index}/route/server-reference-manifest.json +0 -0
  424. /package/app/apps/web/.next/server/app/api/{insights/pdf/[key] → digest/month-index}/route.js.map +0 -0
  425. /package/app/apps/web/.next/server/app/api/{insights/saved → digest/week/[startDate]}/route/build-manifest.json +0 -0
  426. /package/app/apps/web/.next/server/app/api/{insights/saved → digest/week/[startDate]}/route/server-reference-manifest.json +0 -0
  427. /package/app/apps/web/.next/server/app/api/{insights/saved → digest/week/[startDate]}/route.js.map +0 -0
  428. /package/app/apps/web/.next/server/app/api/{insights/saved/[key] → digest/week-index}/route/build-manifest.json +0 -0
  429. /package/app/apps/web/.next/server/app/api/{insights/saved/[key] → digest/week-index}/route/server-reference-manifest.json +0 -0
  430. /package/app/apps/web/.next/server/app/api/{insights/saved/[key] → digest/week-index}/route.js.map +0 -0
  431. /package/app/apps/web/.next/server/app/api/{insights/weeks-index → jobs}/route/build-manifest.json +0 -0
  432. /package/app/apps/web/.next/server/app/api/{insights/weeks-index → jobs}/route/server-reference-manifest.json +0 -0
  433. /package/app/apps/web/.next/server/app/api/{insights/weeks-index → jobs}/route.js.map +0 -0
  434. /package/app/apps/web/.next/server/app/{insights/print/[key]/page → api/runs/[runId]/route}/server-reference-manifest.json +0 -0
  435. /package/app/apps/web/.next/server/app/{insights/print/[key]/page.js.map → api/runs/[runId]/route.js.map} +0 -0
  436. /package/app/apps/web/.next/server/app/{insights/print/[key] → day/[date]}/page/next-font-manifest.json +0 -0
  437. /package/app/apps/web/.next/server/app/{insights/print/[key] → day/[date]}/page/react-loadable-manifest.json +0 -0
  438. /package/app/apps/web/.next/static/{G_4ofKI9v9ARC_lb9JILZ → 8tTWPvUhtatZEoocIhamh}/_buildManifest.js +0 -0
  439. /package/app/apps/web/.next/static/{G_4ofKI9v9ARC_lb9JILZ → 8tTWPvUhtatZEoocIhamh}/_clientMiddlewareManifest.js +0 -0
  440. /package/app/apps/web/.next/static/{G_4ofKI9v9ARC_lb9JILZ → 8tTWPvUhtatZEoocIhamh}/_ssgManifest.js +0 -0
@@ -0,0 +1,6 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,52535,e=>{"use strict";var t=e.i(18050),a=e.i(71645);e.s(["LiveBadge",0,function({mtimeIso:e,size:r="sm"}){let[n,l]=(0,a.useState)(()=>Date.now());if((0,a.useEffect)(()=>{let e=setInterval(()=>l(Date.now()),1e4);return()=>clearInterval(e)},[]),!e)return null;let i=Date.parse(e);if(Number.isNaN(i)||n-i>45e3)return null;let s="md"===r?8:6;return(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5,fontSize:"md"===r?10:9,fontWeight:700,letterSpacing:"0.04em",padding:"md"===r?"3px 9px":"2px 7px",borderRadius:100,background:"rgba(239, 68, 68, 0.12)",color:"#ef4444",textTransform:"uppercase"},title:`Last updated ${new Date(i).toLocaleTimeString()}`,children:[(0,t.jsx)("span",{style:{display:"inline-block",width:s,height:s,borderRadius:"50%",background:"#ef4444",animation:"cs-live-pulse 1.6s ease-in-out infinite"}}),"LIVE",(0,t.jsx)("style",{children:`
2
+ @keyframes cs-live-pulse {
3
+ 0%, 100% { opacity: 1; transform: scale(1); }
4
+ 50% { opacity: 0.4; transform: scale(0.85); }
5
+ }
6
+ `})]})}])},33307,e=>{"use strict";var t=e.i(18050),a=e.i(71645),r=e.i(18566),n=e.i(23614);function l(e,t){if(e<=0||t<=0)return"var(--af-heatmap-0)";let a=Math.min(1,e/t),r=0;return a>.75?r=4:a>.5?r=3:a>.25?r=2:a>0&&(r=1),`var(--af-heatmap-${r})`}function i(e){let[t,a,r]=e.split("-").map(Number);return new Date(t,a-1,r)}function s(e){let t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return`${t}-${a}-${r}`}function o(e){return{date:e,sessions:0,toolCalls:0,turns:0,airTimeMs:0,tokens:{input:0,output:0,cacheRead:0,cacheWrite:0},durationMs:0,peakParallelism:0}}e.s(["Heatmap",0,function({buckets:e,valueKey:d="sessions",cellSize:c=13,cellGap:u=3,daySummaries:p}){let x,h,f=(0,r.useRouter)(),[g,b]=(0,a.useState)(null),{weeks:m,max:y}=(0,a.useMemo)(()=>{if(0===e.length)return{weeks:[],max:0};let t=new Date(i(e[0].date));t.setDate(t.getDate()-t.getDay());let a=new Map(e.map(e=>[e.date,e])),r=[],n=[],l=new Date,c=i(e[e.length-1].date),u=c>l?c:l,p=0;for(let e=new Date(t);e<=u;e.setDate(e.getDate()+1)){let t=s(e),l=a.get(t)??o(t),i=l[d];i>p&&(p=i),n.push(l),7===n.length&&(r.push(n),n=[])}if(n.length>0){for(;n.length<7;)n.push(o(s(new Date)));r.push(n)}return{weeks:r,max:p}},[e,d]);if(0===e.length)return(0,t.jsx)("div",{style:{padding:"32px 12px",color:"var(--af-text-tertiary)",fontSize:12,textAlign:"center"},children:"No activity yet."});let v=m.length*(c+u)+24,k=7*(c+u)+18;return(0,t.jsxs)("div",{style:{position:"relative",overflowX:"auto"},children:[(0,t.jsxs)("svg",{width:v,height:k,style:{display:"block"},children:[(0,t.jsx)("g",{fontSize:9,fill:"var(--af-text-tertiary)",children:["Mon","Wed","Fri"].map((e,a)=>(0,t.jsx)("text",{x:0,y:18+(1+2*a)*(c+u)+c-3,children:e},e))}),(0,t.jsx)("g",{transform:"translate(24, 18)",children:m.map((e,a)=>e.map((e,r)=>{let n=e[d],i=l(n,y);return(0,t.jsx)("rect",{x:a*(c+u),y:r*(c+u),width:c,height:c,rx:2.5,ry:2.5,stroke:n>0?"rgba(255,255,255,0.04)":"transparent",onMouseEnter:t=>{let a=t.currentTarget.getBoundingClientRect();b({bucket:e,x:a.left+a.width/2,y:a.top-6})},onMouseLeave:()=>b(null),onClick:()=>{n>0&&f.push(`/digest/${e.date}`)},style:{cursor:n>0?"pointer":"default",fill:i}},`${a}-${r}`)}))})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:6,fontSize:10,color:"var(--af-text-tertiary)",justifyContent:"flex-end"},children:[(0,t.jsx)("span",{children:"Less"}),[0,.25,.5,.75,1].map((e,a)=>(0,t.jsx)("span",{style:{width:11,height:11,borderRadius:2.5,background:l(Math.max(1,e*y),y),display:"inline-block"}},a)),(0,t.jsx)("span",{children:"More"})]}),g&&(0,t.jsxs)("div",{style:{position:"fixed",left:g.x,top:g.y,transform:"translate(-50%, -100%)",background:"var(--af-surface-elevated)",border:"1px solid var(--af-border-subtle)",borderRadius:6,padding:"6px 10px",fontSize:11,color:"var(--af-text)",whiteSpace:"nowrap",pointerEvents:"none",zIndex:100,boxShadow:"0 4px 12px rgba(0,0,0,0.3)"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:2},children:[(0,t.jsx)("span",{style:{fontWeight:600},children:g.bucket.date}),(()=>{let e=p?.get(g.bucket.date);if(!e?.outcome)return null;let a=n.OUTCOME_STYLES[e.outcome];return(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:3,padding:"1px 6px",borderRadius:99,fontSize:9,fontWeight:600,background:a.bg,color:a.fg},children:[a.icon," ",a.label]})})()]}),(x=p?.get(g.bucket.date),x?.headline?(0,t.jsxs)("div",{style:{color:"var(--af-text)",fontSize:11,fontWeight:500,marginBottom:2,maxWidth:280,whiteSpace:"normal",lineHeight:1.35},children:["“",x.headline,"”"]}):null),(0,t.jsxs)("div",{style:{color:"var(--af-text-secondary)"},children:[g.bucket.sessions," session",1===g.bucket.sessions?"":"s",g.bucket.toolCalls>0&&` \xb7 ${g.bucket.toolCalls} tool calls`,g.bucket.peakParallelism>1&&` \xb7 peak \xd7${g.bucket.peakParallelism}`]}),(h=p?.get(g.bucket.date),h?.helpfulness?(0,t.jsxs)("div",{style:{color:"var(--af-text-tertiary)",fontSize:10,marginTop:2},children:["Claude: ",h.helpfulness]}):null)]})]})}])},15781,e=>{"use strict";var t=e.i(18050),a=e.i(71645);function r(e){if(e<1e3)return`${Math.round(e)}ms`;let t=Math.round(e/1e3);if(t<60)return`${t}s`;let a=Math.floor(t/60),r=t%60;if(a<60)return r?`${a}m ${r}s`:`${a}m`;let n=Math.floor(a/60),l=a%60;return l?`${n}h ${l}m`:`${n}h`}let n={airTime:{label:"Agent time",pluck:e=>e.airTimeMs,color:"rgba(45, 212, 191, 0.85)",unit:"ms"},sessions:{label:"Sessions",pluck:e=>e.sessions,color:"rgba(94, 234, 212, 0.85)"},toolCalls:{label:"Tool calls",pluck:e=>e.toolCalls,color:"rgba(167, 139, 250, 0.85)"},turns:{label:"Turns",pluck:e=>e.turns,color:"rgba(251, 191, 36, 0.85)"},input:{label:"Input tokens",pluck:e=>e.tokens.input,color:"rgba(52, 211, 153, 0.85)"},output:{label:"Output tokens",pluck:e=>e.tokens.output,color:"rgba(248, 113, 113, 0.85)"},cacheRead:{label:"Cache read",pluck:e=>e.tokens.cacheRead,color:"rgba(129, 104, 224, 0.85)"}};e.s(["ActivityChart",0,function({buckets:e,defaultMetric:l="sessions",height:i=160}){let[s,o]=(0,a.useState)(l),[d,c]=(0,a.useState)(null),u=n[s],{bars:p,maxVal:x}=(0,a.useMemo)(()=>{let t=0;return{bars:e.map(e=>{let a=u.pluck(e);return a>t&&(t=a),{bucket:e,value:a}}),maxVal:t}},[e,u]);if(0===e.length)return(0,t.jsx)("div",{style:{padding:"32px 12px",color:"var(--af-text-tertiary)",fontSize:12,textAlign:"center"},children:"No activity yet."});let h=Math.max(3,Math.floor((600-2*p.length)/Math.max(1,p.length))),f=48+Math.max(p.length*(h+2),600)+8,g=i-10-22;return(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{display:"flex",gap:4,background:"var(--background)",borderRadius:7,padding:3,marginBottom:10},children:Object.keys(n).map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>o(e),style:{fontSize:11,padding:"5px 10px",border:"none",borderRadius:5,background:s===e?"var(--af-surface-elevated)":"transparent",color:s===e?"var(--af-text)":"var(--af-text-tertiary)",fontWeight:500},children:n[e].label},e))}),(0,t.jsxs)("div",{style:{position:"relative",overflowX:"auto"},children:[d&&(0,t.jsxs)("div",{style:{position:"absolute",left:d.x,top:0,transform:"translateX(-50%)",background:"var(--af-surface-elevated)",border:"1px solid var(--af-border-subtle)",borderRadius:6,padding:"4px 8px",fontSize:11,color:"var(--af-text-secondary)",fontFamily:"var(--font-mono)",whiteSpace:"nowrap",pointerEvents:"none",zIndex:10,boxShadow:"0 2px 8px rgba(0,0,0,0.08)"},children:[d.bucket.date," ·"," ","ms"===u.unit?r(d.value):d.value.toLocaleString()]}),(0,t.jsxs)("svg",{width:f,height:i,style:{display:"block"},children:[(0,t.jsx)("g",{fontSize:10,fill:"var(--af-text-tertiary)",children:[0,.25,.5,.75,1].map(e=>{let a=10+(1-e)*g,n=x*e,l="ms"===u.unit?r(n):n>=1e6?`${(n/1e6).toFixed(1)}M`:n>=1e3?`${(n/1e3).toFixed(1)}k`:Math.round(n).toString();return(0,t.jsxs)("g",{children:[(0,t.jsx)("line",{x1:48,x2:f-8,y1:a,y2:a,stroke:"var(--af-border-subtle)",strokeDasharray:0===e?void 0:"2 3"}),(0,t.jsx)("text",{x:42,y:a+3,textAnchor:"end",children:l})]},e)})}),p.map((e,a)=>{let r=x>0?e.value/x*g:0,n=48+a*(h+2),l=d?.bucket.date===e.bucket.date;return(0,t.jsxs)("g",{children:[(0,t.jsx)("rect",{x:n,y:10,width:h,height:g,fill:"transparent",onMouseEnter:()=>c({bucket:e.bucket,value:e.value,x:n+h/2}),onMouseLeave:()=>c(null)}),(0,t.jsx)("rect",{x:n,y:10+g-r,width:h,height:Math.max(.5,r),fill:l?"var(--af-accent)":u.color,rx:1.5*(h>=6),ry:1.5*(h>=6),style:{pointerEvents:"none"}})]},e.bucket.date)}),(0,t.jsx)("g",{fontSize:10,fill:"var(--af-text-tertiary)",children:p.map((e,a)=>{let r=e.bucket.date,n=0===a,l=a===p.length-1,s="01"===r.slice(-2),o=p.length>3&&p.length<=31&&a===Math.floor(p.length/2)&&!p.some(e=>"01"===e.bucket.date.slice(-2));if(!n&&!l&&!s&&!o)return null;let d=48+a*(h+2)+h/2,c=new Date(`${r}T00:00:00`).toLocaleDateString(void 0,{month:"short",day:"numeric"});return(0,t.jsx)("text",{x:n?48:l?f-8:d,y:i-6,textAnchor:n?"start":l?"end":"middle",children:c},r)})})]})]})]})}])},74829,e=>{"use strict";var t=e.i(18050),a=e.i(71645);let r=(0,e.i(75254).default)("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);e.s(["MetricCard",0,function({label:e,value:n,sub:l,icon:i,tooltip:s}){let[o,d]=(0,a.useState)(!1);return(0,t.jsxs)("div",{className:"af-card",style:{padding:"16px 18px",position:"relative"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:11,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:600},children:[i,(0,t.jsx)("span",{children:e}),s&&(0,t.jsx)("span",{style:{marginLeft:"auto",cursor:"help",display:"inline-flex",color:"var(--af-text-tertiary)",opacity:.5,transition:"opacity 0.12s"},onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),onClick:()=>d(e=>!e),children:(0,t.jsx)(r,{size:12})})]}),(0,t.jsx)("div",{style:{fontSize:22,fontWeight:700,marginTop:8,letterSpacing:"-0.02em",lineHeight:1.1},children:n}),l&&(0,t.jsx)("div",{style:{fontSize:11,color:"var(--af-text-secondary)",marginTop:4},children:l}),o&&s&&(0,t.jsx)("div",{style:{position:"absolute",top:"calc(100% + 6px)",left:0,right:0,zIndex:50,background:"#0F172A",color:"#F1F5F9",borderRadius:8,padding:"10px 12px",fontSize:11,lineHeight:1.5,boxShadow:"0 6px 24px rgba(15,23,42,0.22)",pointerEvents:"none"},children:s.split("\n").map((e,a)=>(0,t.jsx)("div",{children:e},a))})]})}],74829)}]);
@@ -0,0 +1,4 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,1033,e=>{"use strict";var t=e.i(18050),r=e.i(71645),n=e.i(22016),i=e.i(43531),a=e.i(74886);let s={loop_suspected:{token:"loop_suspected",label:"consecutive-tool run",description:"The same tool was called 8 or more times in a row without interleaving — heuristic for a possible tool loop, but legitimate Read/Grep marathons also trigger it.",tone:"warn"},long_autonomous:{token:"long_autonomous",label:"long autonomous turn",description:"A single turn ran 20 minutes or longer without any user interruption.",tone:"info"},orchestrated:{token:"orchestrated",label:"subagent-orchestrated",description:"3 or more turns dispatched a subagent via the Task tool.",tone:"info"},fast_ship:{token:"fast_ship",label:"fast ship",description:"A PR shipped in under 5 minutes of agent time.",tone:"ok"},plan_used:{token:"plan_used",label:"plan mode",description:"Plan mode was entered at least once during this slice.",tone:"info"},interrupt_heavy:{token:"interrupt_heavy",label:"frequent interrupts",description:"You hit Esc or cancelled 3 or more times.",tone:"warn"},high_errors:{token:"high_errors",label:"high tool-error rate",description:"20 or more tool calls returned errors.",tone:"warn"}},o={warn:"#ed8936",info:"#4299e1",ok:"#48bb78"};function l({token:e,count:r}){let n=s[e]??{token:e,label:e.replace(/_/g," "),description:`Internal flag: ${e}.`,tone:"info"},i=o[n.tone];return(0,t.jsxs)("span",{title:`${n.token} — ${n.description}`,style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",borderRadius:999,background:`color-mix(in srgb, ${i} 12%, transparent)`,border:`1px solid color-mix(in srgb, ${i} 28%, transparent)`,fontSize:10,fontWeight:600,color:i,fontFamily:"var(--font-mono)",whiteSpace:"nowrap"},children:[n.label,"number"==typeof r&&(0,t.jsxs)("span",{style:{opacity:.7,fontWeight:500},children:["×",r]})]})}function d(e){let r,n=Object.keys(s),i=RegExp(`\\b(${n.join("|")})\\b`,"g"),a=[],o=0;for(;null!==(r=i.exec(e));)r.index>o&&a.push(e.slice(o,r.index)),a.push((0,t.jsx)(l,{token:r[1]},`${r.index}-${r[1]}`)),o=i.lastIndex;return o<e.length&&a.push(e.slice(o)),a.length>0?a:[e]}var c=e.i(40484);let p={essential:"#48bb78",helpful:"#4299e1",neutral:"#a0aec0",unhelpful:"#f56565"},h=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],x={"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"},f={"spec-review-loop":"#9f7aea","chunk-implementation":"#4299e1","research-then-build":"#38b2ac","reviewer-triad":"#ed64a6","background-coordinated":"#ecc94b","solo-continuation":"#a0aec0","solo-design":"#48bb78","solo-build":"#ed8936",mixed:"#a0aec0"},g={outlier:"Outlier","novel-use":"Novel use","user-built-tool":"User-built tool","cross-week-contrast":"Cross-week contrast"},u={"claude-md":"CLAUDE.md addition",skill:"Skill to build",hook:"Hook to wire",harness:"Harness extension",decision:"Decision to make"};function m({digest:e,aiEnabled:r,actions:i,priorDigest:a}){var s,o;let l,p,h,x,f,g=e.shipped.length,u=Object.values(e.outcome_mix).reduce((e,t)=>e+(t??0),0),v=e.agent_min_total/60,j=v>=1?`${v.toFixed(1)}h`:`${Math.round(e.agent_min_total)}m`,k=a?(s=e,o=a,l=s.shipped.length-o.shipped.length,h=(p=s.agent_min_total-o.agent_min_total)/60,x=`${l>0?"+":""}${l} PR${1===Math.abs(l)?"":"s"}`,f=Math.abs(h)>=1?`${h>0?"+":""}${h.toFixed(1)}h`:`${p>0?"+":""}${Math.round(p)}m`,`${x} \xb7 ${f}`):null;return(0,t.jsxs)("div",{style:{maxWidth:980,margin:"0 auto",padding:"24px 40px"},children:[(0,t.jsxs)("header",{style:{marginBottom:24},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.jsxs)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--af-text-secondary)"},children:[j," agent time · ",u," active day",1===u?"":"s"," · ",g," PR",1===g?"":"s"]}),k&&(0,t.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--af-text-tertiary)",padding:"1px 7px",borderRadius:999,border:"1px solid var(--af-border-subtle)"},title:"vs the prior calendar week",children:["vs last week: ",k]}),i&&(0,t.jsx)("div",{style:{marginLeft:"auto",display:"inline-flex",alignItems:"center",gap:8},children:i})]}),e.headline?(0,t.jsx)("h1",{style:{fontSize:26,fontWeight:700,lineHeight:1.3,letterSpacing:"-0.02em",margin:"0 0 6px",maxWidth:820,color:"var(--af-text)"},children:d(e.headline)}):(0,t.jsx)("h1",{style:{fontSize:20,color:"var(--af-text-secondary)",margin:"0 0 14px"},children:r?"No narrative yet.":`Worked ${j} across ${e.projects.length} project${1===e.projects.length?"":"s"}.`}),e.key_pattern&&(0,t.jsx)("p",{style:{fontSize:13,fontStyle:"italic",margin:0,lineHeight:1.5,color:"var(--af-text-secondary)",maxWidth:820},children:d(e.key_pattern)})]}),!r&&(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)(n.default,{href:"/settings",style:{color:"var(--af-accent)"},children:"Settings"})," to see weekly narratives."]}),(0,t.jsx)(b,{digest:e}),(0,t.jsx)(_,{digest:e}),e.top_goal_categories.length>0&&(0,t.jsx)(B,{title:"Goal mix",anchor:"goals",children:(0,t.jsx)(c.GoalBar,{goals:e.top_goal_categories,total:e.agent_min_total})}),(0,t.jsx)(z,{digest:e}),e.top_sessions&&e.top_sessions.length>0&&(0,t.jsx)(E,{sessions:e.top_sessions}),(0,t.jsx)(D,{title:"What worked",anchor:"what-worked",items:e.what_worked??[],tone:"#48bb78",sectionFallbackProse:null}),(0,t.jsx)(D,{title:"What stalled",anchor:"what-stalled",items:e.what_stalled??[],tone:"#ed8936",sectionFallbackProse:"No stalls stuck this week."}),(0,t.jsx)(M,{items:e.what_surprised??[]}),(0,t.jsx)(C,{items:e.where_to_lean??[]}),(0,t.jsx)(T,{shipped:e.shipped}),!e.working_shapes&&(0,t.jsx)(y,{digest:e})]})}function y({digest:e}){let r=e.recurring_themes??[],n=e.outcome_correlations??[],i=e.friction_categories??[],a=e.suggestions,s=e.on_the_horizon,o=e.fun_ending;return r.length>0||n.length>0||i.length>0||(a?.claude_md_additions?.length??0)>0||s||o?(0,t.jsxs)("div",{style:{padding:"14px 16px",marginTop:18,borderRadius:8,background:"color-mix(in srgb, var(--af-text-tertiary) 5%, var(--af-surface))",border:"1px dashed var(--af-border-subtle)",fontSize:12,color:"var(--af-text-secondary)",lineHeight:1.55},children:[(0,t.jsx)("strong",{style:{color:"var(--af-text)"},children:"Legacy digest:"})," this week was generated under a previous prompt. Re-roll the digest to refresh it under the new working-shapes narrative."]}):null}function b({digest:e}){let r=e.agent_min_total/60,i=r>=1?`${r.toFixed(1)}h`:`${Math.round(e.agent_min_total)}m`,a=function(e){let t=e.reduce((e,t)=>e+t,0);if(0===t)return null;for(let r=1;r<=24;r++){let n=0,i=0;for(let t=0;t<=24-r;t++){let a=0;for(let n=0;n<r;n++)a+=e[t+n]??0;a>n&&(n=a,i=t)}if(n/t>=.6)return{start:i,end:i+r,share_pct:n/t*100}}return null}(e.hours_distribution),s=new Map(e.days_active.map(e=>[e.date,e])),o=$(e.window.start),l=o.map(e=>s.get(e)?.agent_min??0),d=Math.max(...l,1),c=e.busiest_day?o.indexOf(e.busiest_day.date):-1,p=e.longest_run&&e.busiest_day?Math.min(1,e.longest_run.active_min/Math.max(1,e.busiest_day.agent_min)):0,h=[];return(h.push({label:"Agent time",primary:i,detail:`across ${e.days_active.length} day${1===e.days_active.length?"":"s"}`,visual:(0,t.jsx)(v,{values:l,max:d,highlight:-1})}),e.busiest_day&&h.push({label:"Busiest day",href:`/digest/${e.busiest_day.date}`,primary:`${H(e.busiest_day.date)} ${e.busiest_day.date.slice(5)}`,detail:`${Math.round(e.busiest_day.agent_min)}m \xb7 ${e.busiest_day.shipped_count} PR${1===e.busiest_day.shipped_count?"":"s"}`,visual:(0,t.jsx)(v,{values:l,max:d,highlight:c})}),e.longest_run&&h.push({label:"Longest single run",href:`/sessions/${e.longest_run.session_id}`,title:`Session ${e.longest_run.session_id.slice(0,8)}`,primary:`${Math.round(e.longest_run.active_min)}m`,detail:`${e.longest_run.project_display} \xb7 ${H(e.longest_run.date)} ${e.longest_run.date.slice(5)}`,visual:(0,t.jsx)(j,{ratio:p,caption:"vs busiest day"})}),a&&h.push({label:"Peak hours",title:`${w(a.start,a.end)} carried ${a.share_pct.toFixed(0)}% of the week's agent time`,primary:w(a.start,a.end),detail:`${a.share_pct.toFixed(0)}% of agent time`,visual:(0,t.jsx)(k,{hours:e.hours_distribution,peakStart:a.start,peakEnd:a.end})}),0===h.length)?null:(0,t.jsx)("section",{style:{display:"grid",gridTemplateColumns:`repeat(${Math.min(h.length,4)}, minmax(0, 1fr))`,gap:10,marginBottom:20},children:h.map((e,r)=>{let i=(0,t.jsxs)("div",{style:{padding:"12px 14px",borderRadius:10,background:"var(--af-surface)",border:"1px solid var(--af-border-subtle)",height:"100%",display:"flex",flexDirection:"column",justifyContent:"space-between",minHeight:90},title:e.title,children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{fontSize:9,fontWeight:700,letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--af-text-tertiary)",marginBottom:6},children:e.label}),(0,t.jsx)("div",{style:{fontSize:17,fontWeight:600,color:"var(--af-text)",letterSpacing:"-0.01em",lineHeight:1.2},children:e.primary}),(0,t.jsx)("div",{style:{fontSize:10.5,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",marginTop:3},children:e.detail})]}),e.visual&&(0,t.jsx)("div",{style:{marginTop:10},children:e.visual})]});return e.href?(0,t.jsx)(n.default,{href:e.href,style:{textDecoration:"none"},children:i},r):(0,t.jsx)("div",{children:i},r)})})}function v({values:e,max:r,highlight:n}){return(0,t.jsx)("div",{style:{display:"flex",gap:2,alignItems:"flex-end",height:18},children:e.map((e,i)=>{let a=r>0?Math.max(1,e/r*18):1,s=i===n;return(0,t.jsx)("div",{style:{flex:1,height:a,borderRadius:1,background:s?"var(--af-accent)":e>0?"color-mix(in srgb, var(--af-accent) 30%, transparent)":"var(--af-border-subtle)"}},i)})})}function j({ratio:e,caption:r}){let n=100*Math.max(0,Math.min(1,e));return(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{height:6,borderRadius:99,overflow:"hidden",background:"var(--af-border-subtle)"},children:(0,t.jsx)("div",{style:{width:`${n}%`,height:"100%",background:"var(--af-accent)"}})}),(0,t.jsxs)("div",{style:{fontSize:9,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",marginTop:3},children:[Math.round(n),"% ",r]})]})}function k({hours:e,peakStart:r,peakEnd:n}){let i=Math.max(...e,1);return(0,t.jsx)("div",{style:{display:"flex",gap:1,alignItems:"flex-end",height:18},children:e.map((e,a)=>{let s=a>=r&&a<=n,o=i>0?Math.max(1,e/i*18):1;return(0,t.jsx)("div",{style:{flex:1,height:o,borderRadius:1,background:s?"var(--af-accent)":e>0?"color-mix(in srgb, var(--af-accent) 22%, transparent)":"var(--af-border-subtle)"}},a)})})}function _({digest:e}){if(0===e.days_active.length)return null;let r=Math.max(...e.days_active.map(e=>e.agent_min)),i=new Map(e.days_active.map(e=>[e.date,e])),a=$(e.window.start);return(0,t.jsx)("section",{style:{display:"flex",gap:6,alignItems:"stretch",padding:"12px 0",marginBottom:24},children:a.map((e,a)=>{let s=i.get(e),o=s?.agent_min??0,l=r>0&&o>0?Math.max(8,o/r*100):0,d=s?S[s.outcome_day]:"var(--af-text-tertiary)",c=s?.helpfulness_day?p[s.helpfulness_day]:null;return(0,t.jsxs)(n.default,{href:s?`/digest/${e}`:"#",style:{flex:1,display:"flex",flexDirection:"column",alignItems:"stretch",gap:2,textDecoration:"none",pointerEvents:s?"auto":"none"},title:s?`${e} \xb7 ${Math.round(o)}m \xb7 ${s.outcome_day}${s.shipped_count>0?` \xb7 ${s.shipped_count} PR`:""}${s.helpfulness_day?` \xb7 helpfulness ${s.helpfulness_day}`:""}`:"no activity",children:[(0,t.jsxs)("div",{style:{height:56,borderRadius:4,position:"relative",background:"var(--af-surface)",border:`1px solid ${s?`color-mix(in srgb, ${d} 28%, var(--af-border-subtle))`:"var(--af-border-subtle)"}`,overflow:"hidden"},children:[s&&(0,t.jsx)("div",{style:{position:"absolute",bottom:0,left:0,right:0,height:`${l}%`,background:`color-mix(in srgb, ${d} 28%, transparent)`}}),s?.dominant_shape&&f[s.dominant_shape]&&(0,t.jsx)("div",{title:`${x[s.dominant_shape]??s.dominant_shape}`,style:{position:"absolute",top:0,left:0,right:0,height:3,background:f[s.dominant_shape]}}),c&&(0,t.jsx)("div",{style:{position:"absolute",top:4,right:4,width:6,height:6,borderRadius:999,background:c},title:s?.helpfulness_day??""})]}),(0,t.jsx)("div",{style:{fontSize:9,fontWeight:700,letterSpacing:"0.06em",color:"var(--af-text-tertiary)",textAlign:"center"},children:h[a]}),(0,t.jsx)("div",{style:{fontSize:9,fontFamily:"var(--font-mono)",color:s?"var(--af-text-secondary)":"var(--af-text-tertiary)",textAlign:"center"},children:s?`${Math.round(o)}m`:"—"})]},a)})})}let S={shipped:"#48bb78",partial:"#4299e1",blocked:"#f56565",exploratory:"#a0aec0",trivial:"#cbd5e0",idle:"#cbd5e0"};function w(e,t){let r=e=>`${e%12||12}${e<12||24===e?"am":"pm"}`;return`${r(e)}–${r(t)}`}function $(e){let t=[],r=new Date(e);for(let e=0;e<7;e++){let n=new Date(r);n.setDate(r.getDate()+e);let i=n.getFullYear(),a=String(n.getMonth()+1).padStart(2,"0"),s=String(n.getDate()).padStart(2,"0");t.push(`${i}-${a}-${s}`)}return t}function z({digest:e}){let r=e.trajectory&&e.trajectory.length>0,i=e.standout_days&&e.standout_days.length>0,a=e.projects.filter(e=>e.share_pct>=5||e.shipped_count>0),s=a.length>0;return r||i||s?(0,t.jsxs)(B,{title:"Through the week",anchor:"through-the-week",children:[(r||i)&&(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:r&&i?"minmax(0, 1.4fr) minmax(0, 1fr)":"1fr",gap:28,marginBottom:22*!!s},children:[r&&(0,t.jsxs)("div",{children:[(0,t.jsx)(W,{children:"Trajectory"}),(0,t.jsx)("ol",{style:{listStyle:"none",padding:0,margin:0,display:"flex",flexDirection:"column",gap:6},children:e.trajectory.map(e=>(0,t.jsxs)("li",{style:{display:"flex",gap:12,alignItems:"flex-start"},children:[(0,t.jsxs)(n.default,{href:`/digest/${e.date}`,style:{fontSize:10,fontWeight:600,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",flexShrink:0,width:64,paddingTop:3,textDecoration:"none"},children:[H(e.date)," ",e.date.slice(5)]}),(0,t.jsx)("span",{style:{fontSize:12.5,lineHeight:1.55,color:"var(--af-text-secondary)"},children:d(e.line)})]},e.date))})]}),i&&(0,t.jsxs)("div",{children:[(0,t.jsx)(W,{children:"Standout days"}),(0,t.jsx)("ul",{style:{listStyle:"none",padding:0,margin:0,display:"flex",flexDirection:"column",gap:8},children:e.standout_days.map(e=>(0,t.jsxs)("li",{style:{padding:"10px 12px",borderRadius:8,background:"var(--af-surface)",border:"1px solid var(--af-border-subtle)"},children:[(0,t.jsxs)(n.default,{href:`/digest/${e.date}`,style:{fontSize:11,fontWeight:600,color:"var(--af-accent)",textDecoration:"none",fontFamily:"var(--font-mono)",marginRight:8},children:[H(e.date)," ",e.date.slice(5)]}),(0,t.jsx)("span",{style:{fontSize:12.5,lineHeight:1.55,color:"var(--af-text)"},children:d(e.why)})]},e.date))})]})]}),s&&(0,t.jsxs)("div",{children:[(0,t.jsx)(W,{children:"Project areas"}),(0,t.jsx)("ul",{style:{listStyle:"none",padding:0,margin:0,display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(280px, 1fr))",gap:10},children:a.map(e=>(0,t.jsxs)("li",{style:{padding:"11px 13px",borderRadius:8,background:"var(--af-surface)",border:"1px solid var(--af-border-subtle)",display:"flex",flexDirection:"column"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,marginBottom:6*!!e.description},children:[(0,t.jsx)(n.default,{href:`/projects/${encodeURIComponent(e.name)}`,style:{fontSize:13,fontWeight:600,color:"var(--af-text)",textDecoration:"none",flex:1,minWidth:0,letterSpacing:"-0.01em"},children:e.display_name}),(0,t.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"var(--af-text-tertiary)"},children:[Math.round(e.agent_min),"m · ",e.share_pct.toFixed(0),"% · ",e.shipped_count," PR"]})]}),e.description&&(0,t.jsx)("p",{style:{fontSize:12,lineHeight:1.5,margin:0,color:"var(--af-text-secondary)"},children:e.description})]},e.name))})]})]}):null}function W({children:e}){return(0,t.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.08em",fontWeight:700,marginBottom:10},children:e})}function R({label:e,payload:n}){let[s,o]=(0,r.useState)(!1);return(0,t.jsxs)("div",{style:{position:"relative"},children:[(0,t.jsx)("pre",{style:{margin:0,padding:"10px 12px",paddingRight:96,borderRadius:6,background:"var(--af-surface-raised)",border:"1px solid var(--af-border-subtle)",fontSize:11,fontFamily:"var(--font-mono)",color:"var(--af-text)",whiteSpace:"pre-wrap",wordBreak:"break-word",lineHeight:1.55,overflowX:"auto",maxHeight:280,overflowY:"auto"},children:n}),(0,t.jsx)("button",{type:"button",onClick:async()=>{try{await navigator.clipboard.writeText(n),o(!0),setTimeout(()=>o(!1),1500)}catch{}},style:{position:"absolute",top:8,right:8,display:"inline-flex",alignItems:"center",gap:4,padding:"4px 8px",borderRadius:5,background:s?"color-mix(in srgb, #48bb78 18%, var(--af-surface))":"var(--af-surface)",border:`1px solid ${s?"#48bb78":"var(--af-border-subtle)"}`,color:s?"#48bb78":"var(--af-text-secondary)",fontSize:10,fontWeight:600,cursor:"pointer"},children:s?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.Check,{size:10})," Copied"]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(a.Copy,{size:10})," ",e]})})]})}function T({shipped:e}){let[i,a]=(0,r.useState)(!1);if(0===e.length)return null;let s=e.length>=10,o=s&&!i?e.slice(0,5):e,l=e.length-o.length;return(0,t.jsxs)(B,{title:`Shipped (${e.length})`,anchor:"shipped",children:[(0,t.jsx)("ul",{style:{listStyle:"none",padding:0,margin:0,display:"flex",flexDirection:"column",gap:4},children:o.map((e,r)=>(0,t.jsxs)("li",{style:{display:"flex",gap:10,alignItems:"baseline",padding:"6px 10px",borderRadius:6,fontSize:12,color:"var(--af-text)"},children:[(0,t.jsxs)(n.default,{href:`/digest/${e.date}`,style:{fontFamily:"var(--font-mono)",fontSize:10,color:"var(--af-text-tertiary)",flexShrink:0,width:56,textDecoration:"none"},children:[H(e.date)," ",e.date.slice(5)]}),(0,t.jsx)("span",{style:{flex:1,minWidth:0},children:e.title}),(0,t.jsx)("span",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:e.project})]},r))}),s&&l>0&&(0,t.jsxs)("button",{type:"button",onClick:()=>a(!0),style:{marginTop:6,padding:"4px 10px",borderRadius:5,background:"transparent",border:"1px solid var(--af-border-subtle)",fontSize:10,color:"var(--af-text-secondary)",cursor:"pointer",fontFamily:"var(--font-mono)"},children:["+",l," more"]}),s&&i&&(0,t.jsx)("button",{type:"button",onClick:()=>a(!1),style:{marginTop:6,padding:"4px 10px",borderRadius:5,background:"transparent",border:"1px solid var(--af-border-subtle)",fontSize:10,color:"var(--af-text-secondary)",cursor:"pointer",fontFamily:"var(--font-mono)"},children:"show less"})]})}function D({title:e,anchor:r,items:n,tone:i,sectionFallbackProse:a}){return n&&0!==n.length?(0,t.jsx)(B,{title:e,anchor:r,children:(0,t.jsx)("ul",{style:{listStyle:"none",padding:0,margin:0,display:"flex",flexDirection:"column",gap:10},children:n.map((e,r)=>(0,t.jsx)(F,{item:e,tone:i},r))})}):null===a?null:(0,t.jsx)(B,{title:e,anchor:r,children:(0,t.jsx)("p",{style:{fontSize:12,fontStyle:"italic",color:"var(--af-text-tertiary)",margin:0,padding:"8px 0"},children:a})})}function F({item:e,tone:r}){let i=I(e.anchor);return(0,t.jsxs)("li",{style:{padding:"12px 14px",borderRadius:10,background:`color-mix(in srgb, ${r} 6%, var(--af-surface))`,border:`1px solid color-mix(in srgb, ${r} 22%, var(--af-border))`},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:8,marginBottom:4,flexWrap:"wrap"},children:[(0,t.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"var(--af-text)",letterSpacing:"-0.01em",flex:1,minWidth:0},children:e.title}),(0,t.jsx)("span",{style:{fontSize:9,fontWeight:700,letterSpacing:"0.04em",textTransform:"uppercase",color:r,padding:"1px 7px",borderRadius:999,background:`color-mix(in srgb, ${r} 14%, transparent)`,border:`1px solid color-mix(in srgb, ${r} 28%, transparent)`,fontFamily:"var(--font-mono)"},title:`Anchor: ${e.anchor}`,children:i})]}),(0,t.jsx)("p",{style:{fontSize:12,lineHeight:1.6,margin:"0 0 8px",color:"var(--af-text)"},children:e.detail}),(0,t.jsxs)("div",{style:{padding:"6px 10px",borderRadius:6,background:"var(--af-surface-raised)",borderLeft:`2px solid color-mix(in srgb, ${r} 50%, transparent)`,display:"flex",gap:8,alignItems:"flex-start"},children:[(0,t.jsxs)(n.default,{href:`/digest/${e.evidence.date}`,style:{fontSize:10,fontWeight:600,color:r,fontFamily:"var(--font-mono)",flexShrink:0,textDecoration:"none",paddingTop:2},children:[H(e.evidence.date)," ",e.evidence.date.slice(5)]}),(0,t.jsxs)("span",{style:{fontSize:11,lineHeight:1.5,color:"var(--af-text)",fontStyle:"italic"},children:[(0,t.jsx)("span",{style:{color:"var(--af-text-tertiary)"},children:"“"}),e.evidence.quote,(0,t.jsx)("span",{style:{color:"var(--af-text-tertiary)"},children:"”"})]})]})]})}function I(e){return"plan-mode-gap"===e?"Plan-mode gap":e.startsWith("interaction_grammar.")?e.slice(20).replace(/_/g," "):x[e]??e}function M({items:e}){return e&&0!==e.length?(0,t.jsx)(B,{title:"What surprised",anchor:"what-surprised",children:(0,t.jsx)("ul",{style:{listStyle:"none",padding:0,margin:0,display:"flex",flexDirection:"column",gap:10},children:e.map((e,r)=>{let i="#b794f4";return(0,t.jsxs)("li",{style:{padding:"12px 14px",borderRadius:10,background:`color-mix(in srgb, ${i} 6%, var(--af-surface))`,border:`1px solid color-mix(in srgb, ${i} 22%, var(--af-border))`},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:8,marginBottom:4,flexWrap:"wrap"},children:[(0,t.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"var(--af-text)",letterSpacing:"-0.01em",flex:1,minWidth:0},children:e.title}),(0,t.jsx)("span",{style:{fontSize:9,fontWeight:700,letterSpacing:"0.04em",textTransform:"uppercase",color:i,padding:"1px 7px",borderRadius:999,background:`color-mix(in srgb, ${i} 14%, transparent)`,border:`1px solid color-mix(in srgb, ${i} 28%, transparent)`,fontFamily:"var(--font-mono)"},children:g[e.surprise_kind]??e.surprise_kind})]}),(0,t.jsx)("p",{style:{fontSize:12,lineHeight:1.6,margin:"0 0 8px",color:"var(--af-text)"},children:e.detail}),(0,t.jsxs)("div",{style:{padding:"6px 10px",borderRadius:6,background:"var(--af-surface-raised)",borderLeft:`2px solid color-mix(in srgb, ${i} 50%, transparent)`,display:"flex",gap:8,alignItems:"flex-start"},children:[(0,t.jsxs)(n.default,{href:`/digest/${e.evidence.date}`,style:{fontSize:10,fontWeight:600,color:i,fontFamily:"var(--font-mono)",flexShrink:0,textDecoration:"none",paddingTop:2},children:[H(e.evidence.date)," ",e.evidence.date.slice(5)]}),(0,t.jsxs)("span",{style:{fontSize:11,lineHeight:1.5,color:"var(--af-text)",fontStyle:"italic"},children:[(0,t.jsx)("span",{style:{color:"var(--af-text-tertiary)"},children:"“"}),e.evidence.quote,(0,t.jsx)("span",{style:{color:"var(--af-text-tertiary)"},children:"”"})]})]})]},r)})})}):null}function C({items:e}){return e&&0!==e.length?(0,t.jsx)(B,{title:"Where to lean",anchor:"where-to-lean",children:(0,t.jsx)("ul",{style:{listStyle:"none",padding:0,margin:0,display:"flex",flexDirection:"column",gap:12},children:e.map((e,r)=>{let i="var(--af-accent)",a=I(e.anchor);return(0,t.jsxs)("li",{style:{padding:"14px 16px",borderRadius:10,background:"var(--af-surface)",border:"1px solid var(--af-border-subtle)"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:8,marginBottom:6,flexWrap:"wrap"},children:[(0,t.jsx)("span",{style:{fontSize:9,fontWeight:700,letterSpacing:"0.06em",textTransform:"uppercase",color:i,padding:"1px 7px",borderRadius:999,background:`color-mix(in srgb, ${i} 14%, transparent)`,border:`1px solid color-mix(in srgb, ${i} 28%, transparent)`,fontFamily:"var(--font-mono)"},children:u[e.lean_kind]??e.lean_kind}),(0,t.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"var(--af-text)",flex:1,minWidth:0},children:e.title}),(0,t.jsxs)("span",{style:{fontSize:9,fontWeight:700,letterSpacing:"0.04em",textTransform:"uppercase",color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},title:`Anchor: ${e.anchor}`,children:["↳ ",a]})]}),(0,t.jsx)("p",{style:{fontSize:12,lineHeight:1.6,margin:"0 0 10px",color:"var(--af-text)"},children:e.detail}),e.copyable&&(0,t.jsx)(R,{label:`Copy ${"claude-md"===e.lean_kind?"block":"snippet"}`,payload:e.copyable}),(0,t.jsxs)("div",{style:{marginTop:8,fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:["Evidence · ",(0,t.jsxs)(n.default,{href:`/digest/${e.evidence.date}`,style:{color:"var(--af-text-tertiary)",textDecoration:"underline"},children:[H(e.evidence.date)," ",e.evidence.date.slice(5)]})," · “",e.evidence.quote.slice(0,100),e.evidence.quote.length>100?"…":"","”"]})]},r)})})}):null}function B({title:e,anchor:r,children:n}){return(0,t.jsxs)("section",{id:r,style:{marginBottom:28,scrollMarginTop:24},children:[(0,t.jsx)("h2",{style:{fontSize:11,fontWeight:700,letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--af-text-tertiary)",margin:"0 0 12px"},children:e}),n]})}function H(e){return new Date(`${e}T12:00:00`).toLocaleDateString("en-US",{weekday:"short"})}let L={"user-steering":"#ed8936","subagent-burst":"#9f7aea","long-autonomous":"#4299e1","plan-mode":"#38b2ac","pr-ship":"#48bb78","harness-chain":"#ed64a6",interrupt:"#f56565","brainstorm-loop":"#9f7aea","agent-loop":"#f56565"},P={"user-steering":"Steering","subagent-burst":"Subagents","long-autonomous":"Autonomous","plan-mode":"Plan","pr-ship":"Shipped","harness-chain":"Harness",interrupt:"Interrupt","brainstorm-loop":"Brainstorm","agent-loop":"Loop"};function E({sessions:e}){return(0,t.jsxs)(B,{title:`Top ${e.length} session${1===e.length?"":"s"} this week`,anchor:"top-sessions",children:[(0,t.jsx)("p",{style:{fontSize:12,color:"var(--af-text-tertiary)",marginTop:-4,marginBottom:14,fontStyle:"italic",lineHeight:1.5,maxWidth:720},children:"Picked by significance — active time × subagents × ships, capped to one per project. Each card walks the timeline with annotated moments to surface the texture of how you drove the agent."}),(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:e.map(e=>(0,t.jsx)(A,{session:e},e.session_id))})]})}function A({session:e}){let r=e.working_shape?x[e.working_shape]??e.working_shape:null,i=e.working_shape?f[e.working_shape]??"var(--af-text-tertiary)":"var(--af-text-tertiary)",a=e.wall_min/60,s=e.active_min/60,o=a>=1?`${a.toFixed(1)}h wall`:`${Math.round(e.wall_min)}m wall`,l=s>=1?`${s.toFixed(1)}h active`:`${Math.round(e.active_min)}m active`;return(0,t.jsx)("div",{style:{borderRadius:10,background:"var(--af-surface)",border:"1px solid var(--af-border-subtle)",borderTop:`3px solid ${i}`,overflow:"hidden"},children:(0,t.jsxs)("div",{style:{padding:"16px 18px"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:12,flexWrap:"wrap",marginBottom:6},children:[(0,t.jsx)(n.default,{href:`/sessions/${e.session_id}`,style:{fontSize:14,fontWeight:600,color:"var(--af-text)",letterSpacing:"-0.01em",textDecoration:"none"},children:e.project_display}),(0,t.jsxs)(n.default,{href:`/digest/${e.date}`,style:{fontSize:11,fontFamily:"var(--font-mono)",color:"var(--af-accent)",textDecoration:"none"},children:[H(e.date)," ",e.date.slice(5)]}),(0,t.jsxs)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:[l," · ",o," · ",e.turn_count," turns"]}),r&&(0,t.jsx)("span",{style:{padding:"2px 9px",borderRadius:999,fontSize:11,fontWeight:600,background:`color-mix(in srgb, ${i} 14%, transparent)`,color:i},children:r}),"shipped"===e.outcome&&e.shipped_prs.length>0&&(0,t.jsxs)("span",{style:{padding:"2px 9px",borderRadius:999,fontSize:11,fontWeight:600,background:"color-mix(in srgb, #48bb78 14%, transparent)",color:"#48bb78"},children:["✓ ",e.shipped_prs.length," PR",1===e.shipped_prs.length?"":"s"]})]}),e.day_signature&&(0,t.jsxs)("p",{style:{fontSize:12,fontStyle:"italic",color:"var(--af-text-secondary)",margin:"0 0 14px",lineHeight:1.5,maxWidth:760},children:["“",e.day_signature,"”"]}),(0,t.jsx)(G,{session:e}),e.steering_summary&&(0,t.jsxs)("p",{style:{fontSize:12,lineHeight:1.55,margin:"10px 0 12px",color:"var(--af-text-secondary)",maxWidth:780,paddingLeft:10,borderLeft:"2px solid var(--af-border-subtle)"},children:[(0,t.jsx)("span",{style:{fontSize:9,fontWeight:700,letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--af-text-tertiary)",marginRight:6},children:"steering"}),e.steering_summary]}),(0,t.jsx)(N,{session:e}),(0,t.jsx)(X,{session:e}),e.pins.length>0&&(0,t.jsx)("ol",{style:{listStyle:"none",padding:0,margin:"12px 0 0",display:"flex",flexDirection:"column",gap:6},children:e.pins.map((e,r)=>(0,t.jsx)(Y,{pin:e},r))})]})})}function G({session:e}){return e.why_picked||e.what_worked||e.what_hit_friction?(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10,margin:"0 0 6px"},children:[e.why_picked&&(0,t.jsx)(O,{label:"Why this session",tone:"var(--af-text-tertiary)",accent:"var(--af-text-tertiary)",text:e.why_picked}),e.session_summary&&(0,t.jsx)(O,{label:"What happened",tone:"var(--af-text)",accent:"var(--af-text-secondary)",text:e.session_summary,weight:500}),e.what_worked&&(0,t.jsx)(O,{label:"What worked",tone:"var(--af-text)",accent:"#48bb78",text:e.what_worked}),e.what_hit_friction&&(0,t.jsx)(O,{label:"What hit friction",tone:"var(--af-text)",accent:"#ed8936",text:e.what_hit_friction})]}):e.session_summary?(0,t.jsx)("p",{style:{fontSize:13,lineHeight:1.55,margin:"0 0 8px",color:"var(--af-text)",maxWidth:780},children:e.session_summary}):null}function O({label:e,tone:r,accent:n,text:i,weight:a=400}){return(0,t.jsxs)("div",{style:{display:"flex",gap:12,alignItems:"flex-start",maxWidth:800},children:[(0,t.jsx)("span",{style:{flexShrink:0,width:132,paddingTop:2,fontSize:9.5,fontWeight:700,letterSpacing:"0.06em",textTransform:"uppercase",color:n},children:e}),(0,t.jsx)("span",{style:{fontSize:13,lineHeight:1.55,color:r,fontWeight:a},children:i})]})}function N({session:e}){let{user_authored_skills:r,user_authored_subagents:n,stock_skills:i,top_tools:a}=e;return r.length>0||n.length>0||i.length>0||a.length>0?(0,t.jsxs)("div",{style:{marginBottom:4},children:[n.length>0&&(0,t.jsx)(U,{label:"Your subagents",children:n.map(e=>(0,t.jsxs)(q,{tone:"user",children:[e.type,e.count>1?` \xd7${e.count}`:""]},e.type))}),(r.length>0||i.length>0)&&(0,t.jsxs)(U,{label:"Skills loaded",children:[r.map(e=>(0,t.jsx)(q,{tone:"user",children:e},e)),i.slice(0,6).map(e=>(0,t.jsx)(q,{tone:"stock",children:e},e))]}),a.length>0&&(0,t.jsx)(U,{label:"Top tools",children:a.slice(0,4).map((e,r)=>(0,t.jsx)(q,{children:e},r))})]}):null}function U({label:e,children:r}){return(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",padding:"3px 0",fontSize:11},children:[(0,t.jsx)("span",{style:{minWidth:96,color:"var(--af-text-tertiary)",fontWeight:500,fontSize:10,textTransform:"uppercase",letterSpacing:"0.04em"},children:e}),(0,t.jsx)("div",{style:{display:"flex",gap:5,flexWrap:"wrap",flex:1},children:r})]})}function q({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:10,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 X({session:e}){let r=e.timeline.active_intervals,n=r.length>0?Math.max(...r.map(e=>e.end_min)):0,i=Math.max(1,e.timeline.duration_min,n);return(0,t.jsxs)("div",{style:{marginTop:10,marginBottom:4},children:[(0,t.jsxs)("div",{style:{position:"relative",width:"100%",height:28,background:"var(--af-border-subtle)",borderRadius:4},children:[r.map((e,r)=>{let n=e.start_min/i*100,a=Math.max(.6,(e.end_min-e.start_min)/i*100);return(0,t.jsx)("div",{style:{position:"absolute",top:6,bottom:6,left:`${n}%`,width:`${a}%`,background:"color-mix(in srgb, var(--af-accent) 30%, transparent)",borderRadius:2}},r)}),e.pins.map((e,r)=>{let n=Math.max(0,Math.min(100,e.start_min/i*100)),a=void 0!==e.end_min?Math.max(n+.5,Math.min(100,e.end_min/i*100)):n,s=void 0!==e.end_min&&a>n+.5,o=L[e.kind]??"var(--af-accent)";return(0,t.jsxs)("div",{children:[s&&(0,t.jsx)("div",{style:{position:"absolute",top:4,bottom:4,left:`${n}%`,width:`${a-n}%`,background:`color-mix(in srgb, ${o} 35%, transparent)`,border:`1px solid ${o}`,borderRadius:3},title:`${P[e.kind]}: ${e.label}`}),(0,t.jsx)("div",{style:{position:"absolute",top:-3,bottom:-3,left:`${n}%`,width:3,background:o,borderRadius:1,transform:"translateX(-1.5px)"},title:`${P[e.kind]}: ${e.label}`})]},r)})]}),(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",fontSize:9,fontFamily:"var(--font-mono)",color:"var(--af-text-tertiary)",marginTop:3},children:[(0,t.jsx)("span",{children:"0m"}),(0,t.jsx)("span",{children:K(i/2)}),(0,t.jsxs)("span",{children:[K(i)," wall"]})]})]})}function Y({pin:e}){let r=L[e.kind]??"var(--af-accent)",n=void 0!==e.end_min&&e.end_min>e.start_min+.5?`${K(e.start_min)}–${K(e.end_min)}`:K(e.start_min);return(0,t.jsxs)("li",{style:{display:"flex",gap:10,alignItems:"flex-start",fontSize:12,lineHeight:1.5},children:[(0,t.jsx)("span",{style:{flexShrink:0,width:3,height:3,marginTop:7,borderRadius:999,background:r}}),(0,t.jsx)("span",{style:{flexShrink:0,fontFamily:"var(--font-mono)",fontSize:10,color:"var(--af-text-tertiary)",paddingTop:1,minWidth:60},children:n}),(0,t.jsx)("span",{style:{flexShrink:0,padding:"1px 7px",borderRadius:999,fontSize:9,fontWeight:700,letterSpacing:"0.04em",textTransform:"uppercase",background:`color-mix(in srgb, ${r} 15%, transparent)`,color:r,marginTop:1},children:P[e.kind]??e.kind}),(0,t.jsx)("span",{style:{color:"var(--af-text)",maxWidth:640},children:e.label})]})}function K(e){if(e>=60){let t=Math.round(e),r=Math.floor(t/60),n=t%60;return`${r}h${n>0?` ${n}m`:""}`}return`${Math.round(10*e)/10}m`}function J({monday:e,isStreaming:r,aiEnabled:n,progress:i,onGenerate:a}){let s=new Date(`${e}T12:00:00`),o=new Date(s);o.setDate(s.getDate()+6);let l=e=>e.toLocaleDateString("en-US",{month:"short",day:"numeric"}),d=`${l(s)} — ${l(o)}`;return(0,t.jsx)("div",{style:{maxWidth:980,margin:"0 auto",padding:"60px 40px"},children:(0,t.jsxs)("div",{style:{margin:"0 auto",maxWidth:480,padding:"32px 28px",borderRadius:14,background:"var(--af-surface)",border:"1px dashed var(--af-border-subtle)",textAlign:"center"},children:[(0,t.jsx)("div",{style:{width:44,height:44,borderRadius:12,margin:"0 auto 16px",background:"var(--af-accent-subtle)",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--af-accent)",fontSize:20},children:"✦"}),(0,t.jsx)("h2",{style:{fontSize:16,fontWeight:600,margin:"0 0 6px",color:"var(--af-text)",letterSpacing:"-0.01em"},children:r?"Generating digest…":"No digest yet for this week"}),(0,t.jsx)("p",{style:{fontSize:12.5,lineHeight:1.55,margin:"0 0 18px",color:"var(--af-text-secondary)"},children:r?`Synthesizing ${d} from this week's day digests. This usually takes 5–10 minutes.`:n?`Once generated, this view shows top sessions, trajectory, findings, and project areas for ${d}.`:`Enable AI features in Settings to synthesize a weekly narrative for ${d}. Deterministic stats are still available below in the live digest as soon as data lands.`}),n&&(0,t.jsx)("button",{onClick:a,disabled:r,style:{padding:"9px 18px",borderRadius:8,background:r?"var(--af-border-subtle)":"var(--af-accent)",color:r?"var(--af-text-tertiary)":"white",border:"none",cursor:r?"default":"pointer",fontSize:13,fontWeight:600,letterSpacing:"-0.005em"},children:r?"Generating…":"Generate digest"}),i&&(0,t.jsx)("div",{style:{marginTop:12,fontSize:10.5,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:i})]})})}e.s(["WeekDigestView",0,function({initial:e,monday:n,aiEnabled:i,autoFire:a=!1,prior:s}){var o,l;let[d,c]=(0,r.useState)(e),[p,h]=(0,r.useState)("idle"),[x,f]=(0,r.useState)(""),g=(0,r.useRef)(!1),u=(0,r.useCallback)(async(e=!1)=>{h("streaming"),f("Starting...");let t=`/api/digest/week/${n}${e?"?force=1":""}`,r=await fetch(t,{method:"POST"});if(!r.ok||!r.body){h("error"),f(`Error ${r.status}`);return}let i=r.body.getReader(),a=new TextDecoder,s="";for(;;){let{done:e,value:t}=await i.read();if(e)break;let r=(s+=a.decode(t,{stream:!0})).split("\n\n");for(let e of(s=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)f(e.text);else if("dependency"===e.type)f(`${"day"===e.kind?"Day":"Week"} ${e.key} ${e.status}`);else if("entry"===e.type)f(`Enriching ${e.index}/${e.total}...`);else if("progress"===e.type){let t=Math.round(e.elapsed_ms/1e3);f(`Claude composing… ${e.bytes.toLocaleString()} chars (${t}s)`)}else if("digest"===e.type)e.digest&&"week"===e.digest.scope&&c(e.digest),f("Rendering...");else if("saved"===e.type)f("Saved.");else if("error"===e.type){h("error"),f(e.message);return}}catch{}}}h("done"),f("")},[n]);(0,r.useEffect)(()=>{a&&!g.current&&"idle"===p&&(g.current=!0,u(!1))},[a,p,u]);let y="streaming"===p,b=!!d?.headline,v=null;return(!b&&i?v=(0,t.jsx)("button",{onClick:()=>u(!1),disabled:y,style:{padding:"4px 10px",background:"var(--af-accent)",color:"white",border:"none",borderRadius:5,cursor:(o=y)?"default":"pointer",fontSize:11,fontWeight:600,opacity:o?.6:1},children:y?"Generating...":d?"Generate":"Generate digest"}):i&&(v=(0,t.jsxs)("span",{style:{fontSize:10,color:"var(--af-text-tertiary)",display:"inline-flex",gap:6,alignItems:"center"},children:["✓ Up to date",(0,t.jsx)("button",{onClick:()=>u(!0),disabled:y,title:"Re-roll the narrative for this week",style:{padding:"2px 7px",background:"transparent",border:"1px solid var(--af-border-subtle)",borderRadius:4,fontSize:10,color:"var(--af-text-secondary)",cursor:(l=y)?"default":"pointer",opacity:l?.6:1},children:y?"...":"Re-roll"})]})),x&&(v=(0,t.jsxs)(t.Fragment,{children:[v,(0,t.jsx)("span",{style:{fontSize:10,color:"var(--af-text-tertiary)"},children:x})]})),d)?(0,t.jsx)(m,{digest:d,aiEnabled:i,actions:v,priorDigest:s??null}):(0,t.jsx)(J,{monday:n,isStreaming:y,aiEnabled:i,progress:x,onGenerate:()=>u(!1)})}],1033)},57143,e=>{"use strict";var t=e.i(18050),r=e.i(22016),n=e.i(71645),i=e.i(73375),a=e.i(63059);let s=(0,e.i(75254).default)("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);var o=e.i(37727);function l({inDrawer:e=!1}={}){let[r,i]=(0,n.useState)("weeks"),[a,s]=(0,n.useState)(null),[o,g]=(0,n.useState)(null);return(0,n.useEffect)(()=>{fetch("/api/digest/week-index?count=12").then(e=>e.json()).then(e=>s(e.weeks)).catch(()=>s([])),fetch("/api/digest/month-index?count=6").then(e=>e.json()).then(e=>g(e.months)).catch(()=>g([]))},[]),(0,t.jsxs)("div",{style:e?{padding:"0 18px"}:{maxWidth:980,margin:"0 auto",padding:"28px 40px 0"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:e?14:18},children:[!e&&(0,t.jsx)("h2",{style:{fontSize:11,fontWeight:700,letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--af-text-tertiary)",margin:0,marginRight:4},children:"History"}),(0,t.jsx)("div",{style:h,children:["weeks","months"].map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>i(e),style:{...x,background:r===e?"var(--af-accent)":"transparent",color:r===e?"white":"var(--af-text-secondary)"},children:"weeks"===e?"Weeks":"Months"},e))})]}),"weeks"===r?null===a?(0,t.jsx)(p,{children:"Loading weeks…"}):0===a.length?(0,t.jsx)(p,{children:"No history yet."}):(0,t.jsx)("ul",{style:f,children:a.map(e=>(0,t.jsx)(d,{w:e},e.start))}):null===o?(0,t.jsx)(p,{children:"Loading months…"}):0===o.length?(0,t.jsx)(p,{children:"No history yet."}):(0,t.jsx)("ul",{style:f,children:o.map(e=>(0,t.jsx)(c,{m:e},e.start))})]})}function d({w:e}){let n=0===e.active_days&&!e.in_progress&&!e.saved_key,i=e.saved_key?`/insights/${e.saved_key}`:`/insights/week-${e.start}`,a=e.saved_key&&e.headline?e.headline:n?"no data":e.in_progress?"in progress · click to view":`${e.active_days} active day${1===e.active_days?"":"s"} \xb7 click to generate`;return(0,t.jsx)("li",{style:g(!!e.saved_key),children:(0,t.jsxs)(r.default,{href:i,style:{display:"flex",flexDirection:"column",gap:4,textDecoration:"none",flex:1,minWidth:0},children:[(0,t.jsxs)("div",{style:u,children:[(0,t.jsxs)("span",{style:{fontSize:13,fontWeight:600,color:"var(--af-text)",letterSpacing:"-0.01em"},children:["W",String(e.iso_week).padStart(2,"0")," · ",e.label]}),e.in_progress&&(0,t.jsx)("span",{style:y,children:"in progress"}),e.saved_key&&(0,t.jsxs)("span",{style:{fontSize:10,fontWeight:600,color:"var(--af-accent)",marginLeft:"auto"},children:[e.shipped_count," PR · ",e.agent_min,"m"]})]}),(0,t.jsx)("span",{style:m,children:a})]})})}function c({m:e}){let n=0===e.active_days&&!e.in_progress&&!e.saved_key,i=e.saved_key?`/insights/${e.saved_key}`:`/insights/month-${e.start.slice(0,7)}`,a=e.saved_key&&e.headline?e.headline:n?"no data":e.in_progress?"in progress · click to view":`${e.active_days} active day${1===e.active_days?"":"s"} \xb7 click to generate`;return(0,t.jsx)("li",{style:g(!!e.saved_key),children:(0,t.jsxs)(r.default,{href:i,style:{display:"flex",flexDirection:"column",gap:4,textDecoration:"none",flex:1,minWidth:0},children:[(0,t.jsxs)("div",{style:u,children:[(0,t.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"var(--af-text)",letterSpacing:"-0.01em"},children:e.label}),e.in_progress&&(0,t.jsx)("span",{style:y,children:"in progress"}),e.saved_key&&(0,t.jsxs)("span",{style:{fontSize:10,fontWeight:600,color:"var(--af-accent)",marginLeft:"auto"},children:[e.shipped_count," PR · ",e.agent_min,"m"]})]}),(0,t.jsx)("span",{style:m,children:a})]})})}function p({children:e}){return(0,t.jsx)("div",{style:{padding:"20px 18px",borderRadius:10,border:"1px dashed var(--af-border)",background:"var(--af-surface)",fontSize:13,color:"var(--af-text-tertiary)",lineHeight:1.55},children:e})}let h={display:"inline-flex",gap:3,border:"1px solid var(--af-border)",borderRadius:8,padding:2},x={padding:"5px 14px",fontSize:12,fontWeight:600,border:"none",borderRadius:6,cursor:"pointer"},f={listStyle:"none",padding:0,margin:0,display:"flex",flexDirection:"column",gap:4};function g(e){return{display:"flex",alignItems:"stretch",gap:14,padding:"10px 14px",borderRadius:10,border:`1px solid ${e?"color-mix(in srgb, var(--af-accent) 24%, var(--af-border))":"var(--af-border-subtle)"}`,background:e?"color-mix(in srgb, var(--af-accent) 6%, var(--af-surface))":"var(--af-surface)",transition:"border-color 0.15s"}}let u={display:"flex",alignItems:"center",gap:8,minWidth:0},m={fontSize:11,color:"var(--af-text-tertiary)",lineHeight:1.5,fontFamily:"var(--font-mono)"},y={fontSize:10,fontWeight:500,padding:"2px 6px",borderRadius:4,background:"color-mix(in srgb, #f5b445 18%, transparent)",color:"#c08a1f",letterSpacing:"0.02em"};function b({target:e,dir:n}){var s;let o="prev"===n?i.ChevronLeft:a.ChevronRight;return e?(0,t.jsxs)(r.default,{href:`/insights/${e.key}`,style:(s=e.cached,{display:"inline-flex",alignItems:"center",gap:4,padding:"5px 9px",borderRadius:6,border:`1px solid ${s?"color-mix(in srgb, var(--af-accent) 28%, var(--af-border))":"var(--af-border-subtle)"}`,background:s?"color-mix(in srgb, var(--af-accent) 6%, var(--af-surface))":"var(--af-surface)",color:s?"var(--af-accent)":"var(--af-text-secondary)",fontSize:11,fontWeight:500,fontFamily:"var(--font-mono)",textDecoration:"none"}),title:e.cached?`Saved digest \xb7 ${e.label}`:`${e.label} (no saved digest yet — will prompt to Generate)`,children:[(0,t.jsx)(o,{size:14}),(0,t.jsx)("span",{children:e.label})]}):(0,t.jsx)("span",{style:k,title:`No ${"prev"===n?"earlier":"later"} period`,children:(0,t.jsx)(o,{size:14})})}function v({onClose:e}){return(0,t.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"Insights history",style:{position:"fixed",inset:0,zIndex:200,display:"flex",justifyContent:"flex-end"},children:[(0,t.jsx)("div",{onClick:e,style:{position:"absolute",inset:0,background:"rgba(0,0,0,0.32)",animation:"fade-in 120ms ease-out"}}),(0,t.jsxs)("aside",{style:{position:"relative",width:"min(440px, 92vw)",height:"100vh",background:"var(--background)",borderLeft:"1px solid var(--af-border-subtle)",boxShadow:"-12px 0 40px rgba(0,0,0,0.32)",display:"flex",flexDirection:"column",animation:"slide-in 160ms cubic-bezier(0.2, 0.9, 0.3, 1)"},children:[(0,t.jsxs)("header",{style:{display:"flex",alignItems:"center",gap:10,padding:"14px 18px",borderBottom:"1px solid var(--af-border-subtle)"},children:[(0,t.jsx)("h2",{style:{fontSize:13,fontWeight:600,margin:0,color:"var(--af-text)"},children:"Browse insights history"}),(0,t.jsx)("button",{type:"button",onClick:e,"aria-label":"Close history",style:{marginLeft:"auto",width:26,height:26,display:"inline-flex",alignItems:"center",justifyContent:"center",border:"1px solid var(--af-border-subtle)",borderRadius:6,background:"transparent",color:"var(--af-text-secondary)",cursor:"pointer"},children:(0,t.jsx)(o.X,{size:14})})]}),(0,t.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"18px 0"},children:(0,t.jsx)(l,{inDrawer:!0})})]}),(0,t.jsx)("style",{children:`
2
+ @keyframes slide-in { from { transform: translateX(20px); opacity: 0 } to { transform: translateX(0); opacity: 1 } }
3
+ @keyframes fade-in { from { opacity: 0 } to { opacity: 1 } }
4
+ `})]})}let j={display:"inline-flex",alignItems:"center",gap:6,padding:"5px 11px",borderRadius:6,border:"1px solid var(--af-border-subtle)",background:"var(--af-surface)",color:"var(--af-text)",fontSize:11,fontWeight:500,cursor:"pointer",fontFamily:"inherit"},k={display:"inline-flex",alignItems:"center",gap:4,padding:"5px 9px",borderRadius:6,border:"1px solid var(--af-border-subtle)",background:"var(--af-surface)",color:"var(--af-text-tertiary)",fontSize:11,fontWeight:500,fontFamily:"var(--font-mono)",opacity:.45,cursor:"default"};e.s(["InsightsTopBar",0,function({scope:e,currentLabel:i,rangeLabel:a,prev:o,next:l}){let[d,c]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{if(!d)return;let e=e=>{"Escape"===e.key&&c(!1)};return window.addEventListener("keydown",e),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",e),document.body.style.overflow=""}},[d]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("header",{style:{position:"sticky",top:0,zIndex:50,background:"color-mix(in srgb, var(--background) 90%, transparent)",backdropFilter:"blur(10px)",WebkitBackdropFilter:"blur(10px)",borderBottom:"1px solid var(--af-border-subtle)"},className:"no-print",children:(0,t.jsxs)("div",{style:{maxWidth:980,margin:"0 auto",padding:"12px 40px",display:"flex",alignItems:"center",gap:14,minHeight:44},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,minWidth:0},children:[(0,t.jsx)(r.default,{href:"/insights",style:{fontSize:10,fontWeight:700,color:"var(--af-text-tertiary)",textDecoration:"none",textTransform:"uppercase",letterSpacing:"0.08em",flexShrink:0},title:"Latest week digest",children:"Insights"}),(0,t.jsx)("span",{style:{color:"var(--af-text-tertiary)",fontSize:11,flexShrink:0},children:"›"}),(0,t.jsx)("span",{style:{fontSize:14,fontWeight:600,color:"var(--af-text)",letterSpacing:"-0.01em",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:i}),a&&(0,t.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:"var(--af-text-tertiary)",flexShrink:0},children:a})]}),(0,t.jsxs)("div",{style:{marginLeft:"auto",display:"inline-flex",alignItems:"center",gap:6},children:[(0,t.jsx)(b,{target:o,dir:"prev"}),(0,t.jsx)(b,{target:l,dir:"next"}),(0,t.jsxs)("button",{type:"button",onClick:()=>c(!0),style:j,title:`Browse ${"week"===e?"weekly":"monthly"} history`,children:[(0,t.jsx)(s,{size:13}),(0,t.jsx)("span",{children:"Browse"})]})]})]})}),d&&(0,t.jsx)(v,{onClose:()=>c(!1)})]})}],57143)}]);
@@ -0,0 +1,6 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,52535,e=>{"use strict";var t=e.i(18050),s=e.i(71645);e.s(["LiveBadge",0,function({mtimeIso:e,size:i="sm"}){let[r,n]=(0,s.useState)(()=>Date.now());if((0,s.useEffect)(()=>{let e=setInterval(()=>n(Date.now()),1e4);return()=>clearInterval(e)},[]),!e)return null;let a=Date.parse(e);if(Number.isNaN(a)||r-a>45e3)return null;let l="md"===i?8:6;return(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5,fontSize:"md"===i?10:9,fontWeight:700,letterSpacing:"0.04em",padding:"md"===i?"3px 9px":"2px 7px",borderRadius:100,background:"rgba(239, 68, 68, 0.12)",color:"#ef4444",textTransform:"uppercase"},title:`Last updated ${new Date(a).toLocaleTimeString()}`,children:[(0,t.jsx)("span",{style:{display:"inline-block",width:l,height:l,borderRadius:"50%",background:"#ef4444",animation:"cs-live-pulse 1.6s ease-in-out infinite"}}),"LIVE",(0,t.jsx)("style",{children:`
2
+ @keyframes cs-live-pulse {
3
+ 0%, 100% { opacity: 1; transform: scale(1); }
4
+ 50% { opacity: 0.4; transform: scale(0.85); }
5
+ }
6
+ `})]})}])},63059,e=>{"use strict";let t=(0,e.i(75254).default)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",0,t],63059)},37727,e=>{"use strict";let t=(0,e.i(75254).default)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",0,t],37727)},74886,e=>{"use strict";let t=(0,e.i(75254).default)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",0,t],74886)},73375,e=>{"use strict";let t=(0,e.i(75254).default)("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",0,t],73375)},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)},95116,e=>{"use strict";let t=(0,e.i(75254).default)("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);e.s(["Wrench",0,t],95116)},64659,e=>{"use strict";let t=(0,e.i(75254).default)("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",0,t],64659)},98572,e=>{"use strict";let t=["/.claude/worktrees/","/.worktrees/","/claude/worktrees/"],s=/gh\s+pr\s+create\b/i,i=/#(\d+)/,r=/--title\s+["']([^"']+)["']/;e.s(["canonicalProjectName",0,function(e){let s=e.replace(/\/{2,}/g,"/"),i=function(e){for(let s of t){let t=e.lastIndexOf(s);if(t>=0)return{idx:t,marker:s}}return null}(s);return i?s.slice(0,i.idx):s},"detectPrMarkers",0,function(e){let t=[],n=e.durationMs??0;for(let a of e.events){if("tool-call"!==a.role||"Bash"!==a.toolName)continue;let l=a.blocks.find(e=>e&&"type"in e&&"tool_use"===e.type);if(!l||"tool_use"!==l.type)continue;let o=l.input,c="string"==typeof o?.command?o.command:"";if(!s.test(c))continue;let u=c.match(r),d=c.match(i);t.push({sessionId:e.id,timestamp:a.timestamp??e.firstTimestamp??"",tOffsetMs:a.tOffsetMs,positionInSession:n>0&&void 0!==a.tOffsetMs?Math.min(1,Math.max(0,a.tOffsetMs/n)):void 0,command:c.slice(0,300),prNumber:d?Number(d[1]):void 0,title:u?.[1]})}return t}])}]);
@@ -0,0 +1,6 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,52535,e=>{"use strict";var t=e.i(18050),s=e.i(71645);e.s(["LiveBadge",0,function({mtimeIso:e,size:i="sm"}){let[a,r]=(0,s.useState)(()=>Date.now());if((0,s.useEffect)(()=>{let e=setInterval(()=>r(Date.now()),1e4);return()=>clearInterval(e)},[]),!e)return null;let o=Date.parse(e);if(Number.isNaN(o)||a-o>45e3)return null;let n="md"===i?8:6;return(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5,fontSize:"md"===i?10:9,fontWeight:700,letterSpacing:"0.04em",padding:"md"===i?"3px 9px":"2px 7px",borderRadius:100,background:"rgba(239, 68, 68, 0.12)",color:"#ef4444",textTransform:"uppercase"},title:`Last updated ${new Date(o).toLocaleTimeString()}`,children:[(0,t.jsx)("span",{style:{display:"inline-block",width:n,height:n,borderRadius:"50%",background:"#ef4444",animation:"cs-live-pulse 1.6s ease-in-out infinite"}}),"LIVE",(0,t.jsx)("style",{children:`
2
+ @keyframes cs-live-pulse {
3
+ 0%, 100% { opacity: 1; transform: scale(1); }
4
+ 50% { opacity: 0.4; transform: scale(0.85); }
5
+ }
6
+ `})]})}])},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)},95116,e=>{"use strict";let t=(0,e.i(75254).default)("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);e.s(["Wrench",0,t],95116)},55898,78360,e=>{"use strict";var t=e.i(18050),s=e.i(71645),i=e.i(75254);let a=(0,i.default)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var r=e.i(25063);let o=(0,i.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:i,getRowKey:n,onRowClick:l,defaultSortKey:d,defaultSortDir:c="desc"}){let[p,u]=(0,s.useState)(d??null),[m,f]=(0,s.useState)(c),h=(0,s.useMemo)(()=>{if(!p)return e;let t=i.find(e=>e.key===p);if(!t||!t.sortValue)return e;let s="asc"===m?1:-1;return[...e].sort((e,i)=>{let a=t.sortValue(e),r=t.sortValue(i);return"number"==typeof a&&"number"==typeof r?(a-r)*s:String(a).localeCompare(String(r))*s})},[e,i,p,m]);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:i.map(e=>{let s=p===e.key,i=!1!==e.sortable&&!!e.sortValue;return(0,t.jsx)("th",{onClick:()=>{!1!==e.sortable&&e.sortValue&&(p===e.key?f(e=>"asc"===e?"desc":"asc"):(u(e.key),f("desc")))},style:{textAlign:e.align??"left",fontSize:10,fontWeight:600,color:s?"var(--af-accent)":"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",padding:"10px 12px",borderBottom:"1px solid var(--af-border-subtle)",cursor:i?"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,i&&(0,t.jsx)("span",{style:{display:"inline-flex",opacity:s?1:.35},children:s?"asc"===m?(0,t.jsx)(a,{size:10}):(0,t.jsx)(r.ArrowDown,{size:10}):(0,t.jsx)(o,{size:10})})]})},e.key)})})}),(0,t.jsxs)("tbody",{children:[h.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:i.map(s=>(0,t.jsx)("td",{style:{padding:"10px 12px",textAlign:s.align??"left",whiteSpace:"right"===s.align?"nowrap":void 0,verticalAlign:"top"},children:s.render(e)},s.key))},n(e))),0===h.length&&(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:i.length,style:{padding:"32px 16px",textAlign:"center",fontSize:12,color:"var(--af-text-tertiary)"},children:"No rows to display."})})]})]})})}],55898);let n=(0,i.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,i.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 d=e.i(86619);function c({active:e,onClick:s,label:i,icon:a,rightEdge:r}){return(0,t.jsxs)("button",{type:"button",onClick:s,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:r?"none":"1px solid var(--af-border-subtle)",cursor:"pointer",letterSpacing:"0.02em"},children:[a,i]})}e.s(["useViewToggle",0,function(e,s="cards"){let[i,a,r]=(0,d.usePersistentBoolean)(e,"table"===s);return{mode:i?"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)(c,{active:!i,onClick:()=>a(!1),label:"Cards",icon:(0,t.jsx)(n,{size:12})}),(0,t.jsx)(c,{active:i,onClick:()=>a(!0),label:"Table",icon:(0,t.jsx)(l,{size:12}),rightEdge:!0})]}),hydrated:r}}],78360)},86333,e=>{"use strict";var t=e.i(18050),s=e.i(22016),i=e.i(71645),a=e.i(18566),r=e.i(56324),o=e.i(55436),n=e.i(95116);let l=(0,e.i(75254).default)("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]);var d=e.i(3116),c=e.i(52535),p=e.i(56004),u=e.i(55898),m=e.i(78360),f=e.i(23614);let h=[{key:"outcome",header:"Outcome",sortValue:e=>(0,f.outcomePriority)(e.outcome),render:e=>(0,t.jsx)(x,{row:e})},{key:"project",header:"Project",sortValue:e=>e.session.projectName,render:e=>(0,t.jsxs)("div",{style:{maxWidth:180,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.session.projectName,children:[(0,t.jsxs)("div",{style:{fontWeight:500,display:"flex",alignItems:"center",gap:6},children:[(0,t.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:(0,r.prettyProjectName)(e.session.projectName)}),(0,t.jsx)(p.TeamBadge,{session:e.session})]}),(0,t.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:(0,r.shortId)(e.session.id)})]})},{key:"preview",header:"Summary",sortable:!1,render:e=>{let s=e.briefSummary??e.session.firstUserPreview??"",i=!e.briefSummary;return(0,t.jsx)("div",{style:{maxWidth:360,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:i?"var(--af-text-tertiary)":"var(--af-text-secondary)",fontStyle:i?"italic":"normal"},title:i?`(raw user message) ${s}`:s,children:s||"—"})}},{key:"created",header:"Created",sortValue:e=>e.session.firstTimestamp?Date.parse(e.session.firstTimestamp):0,align:"right",render:e=>(0,t.jsx)("span",{suppressHydrationWarning:!0,style:{fontFamily:"var(--font-mono)",fontSize:11},children:e.session.firstTimestamp?(0,r.formatRelative)(e.session.firstTimestamp):"—"})},{key:"lastActive",header:"Last active",sortValue:e=>e.session.lastTimestamp?Date.parse(e.session.lastTimestamp):0,align:"right",render:e=>(0,t.jsx)("span",{suppressHydrationWarning:!0,style:{fontFamily:"var(--font-mono)",fontSize:11},children:e.session.lastTimestamp?(0,r.formatRelative)(e.session.lastTimestamp):"—"})},{key:"airtime",header:"Agent time",sortValue:e=>e.session.airTimeMs??e.session.durationMs??0,align:"right",render:e=>(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,r.formatDuration)(e.session.airTimeMs??e.session.durationMs??0)})},{key:"turns",header:"Turns",sortValue:e=>e.session.turnCount??0,align:"right",render:e=>(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(e.session.turnCount??0).toLocaleString()})},{key:"tools",header:"Tool calls",sortValue:e=>e.session.toolCallCount??0,align:"right",render:e=>(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(e.session.toolCallCount??0).toLocaleString()})},{key:"tokens",header:"Tokens",sortValue:e=>e.session.totalUsage.input+e.session.totalUsage.output+e.session.totalUsage.cacheRead+e.session.totalUsage.cacheWrite,align:"right",render:e=>(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,r.formatTokens)(e.session.totalUsage.input+e.session.totalUsage.output+e.session.totalUsage.cacheRead+e.session.totalUsage.cacheWrite)})},{key:"status",header:"Status",sortValue:e=>+("running"===e.session.status),align:"center",render:e=>"running"===e.session.status?(0,t.jsx)(c.LiveBadge,{}):(0,t.jsx)("span",{style:{opacity:.4},children:"—"})}];function x({row:e}){return e.outcome?(0,t.jsx)(f.OutcomePill,{outcome:e.outcome,size:"sm",label:"text"}):e.enrichmentStatus&&e.latestLocalDay&&"skipped_trivial"!==e.enrichmentStatus?(0,t.jsx)(f.OutcomePill,{outcome:null,pending:!0,sessionId:e.session.id,localDay:e.latestLocalDay,size:"sm"}):(0,t.jsx)("span",{style:{color:"var(--af-text-tertiary)",fontSize:10},children:"—"})}function y({row:e}){let{session:i,briefSummary:a,outcome:o,latestLocalDay:u,enrichmentStatus:m}=e,h=i.totalUsage.input+i.totalUsage.output+i.totalUsage.cacheRead+i.totalUsage.cacheWrite,x=!o&&m&&"skipped_trivial"!==m&&u,v=a??i.firstUserPreview??"",j=!a;return(0,t.jsxs)(s.default,{href:`/sessions/${i.id}`,className:"af-card",style:{display:"flex",flexDirection:"column",gap:10,padding:"14px 16px"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,t.jsxs)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"flex",alignItems:"center",gap:6,minWidth:0},title:i.projectName,children:[(0,t.jsx)(c.LiveBadge,{mtimeIso:i.lastTimestamp}),(0,t.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(0,r.prettyProjectName)(i.projectName)}),(0,t.jsx)(p.TeamBadge,{session:i,linkable:!1})]}),(0,t.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",flexShrink:0},suppressHydrationWarning:!0,children:i.firstTimestamp?(0,r.formatRelative)(i.firstTimestamp):"—"})]}),(o||x)&&(0,t.jsx)("div",{onClick:e=>e.stopPropagation(),children:o?(0,t.jsx)(f.OutcomePill,{outcome:o,size:"md"}):x?(0,t.jsx)(f.OutcomePill,{outcome:null,pending:!0,sessionId:i.id,localDay:u,size:"md"}):null}),(0,t.jsx)("div",{style:{fontSize:13,color:j?"var(--af-text-secondary)":"var(--af-text)",fontStyle:j?"italic":"normal",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",minHeight:36,lineHeight:1.4},title:j?`(raw user message) ${v}`:v,children:v||(0,t.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"(no user message)"})}),j&&(0,t.jsx)("div",{style:{fontSize:11.5,color:"var(--af-text-secondary)",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",lineHeight:1.4,paddingLeft:10,borderLeft:"2px solid var(--af-accent-subtle)"},title:i.lastAgentPreview,children:i.lastAgentPreview||(0,t.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"—"})}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,fontSize:10.5,color:"var(--af-text-tertiary)",paddingTop:8,borderTop:"1px solid var(--af-border-subtle)",fontFamily:"var(--font-mono)"},children:[(0,t.jsx)(g,{icon:(0,t.jsx)(l,{size:11}),label:`${i.turnCount??0} turn${1===i.turnCount?"":"s"}`}),(0,t.jsx)(g,{icon:(0,t.jsx)(n.Wrench,{size:11}),label:`${i.toolCallCount??0} tools`}),(0,t.jsx)(g,{icon:(0,t.jsx)(d.Clock,{size:11}),label:(0,r.formatDuration)(i.airTimeMs??i.durationMs)}),(0,t.jsx)("span",{style:{marginLeft:"auto"},children:(0,r.formatTokens)(h)})]})]})}function g({icon:e,label:s}){return(0,t.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[e,s]})}e.s(["SessionsGrid",0,function({rows:e}){let s=(0,a.useRouter)(),[n,l]=(0,i.useState)(""),[d,c]=(0,i.useState)("all"),[p,x]=(0,i.useState)("newest"),{mode:g,toggle:v}=(0,m.useViewToggle)("cclens:sessions:view"),j=(0,i.useMemo)(()=>["all",...Array.from(new Set(e.map(e=>e.session.projectName))).sort()],[e]),w=(0,i.useMemo)(()=>{let t=e.slice();if("all"!==d&&(t=t.filter(e=>e.session.projectName===d)),n){let e=n.toLowerCase();t=t.filter(({session:t,briefSummary:s})=>t.id.toLowerCase().includes(e)||(s??"").toLowerCase().includes(e)||(t.firstUserPreview??"").toLowerCase().includes(e)||(t.lastAgentPreview??"").toLowerCase().includes(e)||t.projectName.toLowerCase().includes(e))}return"newest"===p?t.sort((e,t)=>(t.session.firstTimestamp?Date.parse(t.session.firstTimestamp):0)-(e.session.firstTimestamp?Date.parse(e.session.firstTimestamp):0)):"longest"===p?t.sort((e,t)=>(t.session.airTimeMs??t.session.durationMs??0)-(e.session.airTimeMs??e.session.durationMs??0)):"most-tokens"===p?t.sort((e,t)=>t.session.totalUsage.input+t.session.totalUsage.output+t.session.totalUsage.cacheRead-(e.session.totalUsage.input+e.session.totalUsage.output+e.session.totalUsage.cacheRead)):"outcome"===p&&t.sort((e,t)=>(0,f.outcomePriority)(t.outcome)-(0,f.outcomePriority)(e.outcome)),t},[e,d,n,p]);return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{display:"flex",gap:10,marginBottom:16,flexWrap:"wrap",alignItems:"center"},children:[(0,t.jsxs)("div",{style:{position:"relative",flex:1,minWidth:260,maxWidth:480},children:[(0,t.jsx)(o.Search,{size:13,color:"var(--af-text-tertiary)",style:{position:"absolute",left:12,top:"50%",transform:"translateY(-50%)"}}),(0,t.jsx)("input",{type:"text",placeholder:"Search by message, project, or ID",value:n,onChange:e=>l(e.target.value),style:{width:"100%",paddingLeft:32}})]}),(0,t.jsx)("select",{value:d,onChange:e=>c(e.target.value),style:{maxWidth:260},children:j.map(e=>(0,t.jsx)("option",{value:e,children:"all"===e?"All projects":(0,r.prettyProjectName)(e)},e))}),(0,t.jsxs)("select",{value:p,onChange:e=>x(e.target.value),children:[(0,t.jsx)("option",{value:"newest",children:"Newest"}),(0,t.jsx)("option",{value:"longest",children:"Longest"}),(0,t.jsx)("option",{value:"most-tokens",children:"Most tokens"}),(0,t.jsx)("option",{value:"outcome",children:"Outcome"})]}),(0,t.jsx)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:w.length}),v]}),0===w.length?(0,t.jsx)("div",{className:"af-empty",children:"No sessions found."}):"table"===g?(0,t.jsx)(u.DataTable,{rows:w,getRowKey:e=>`${e.session.projectDir}/${e.session.id}`,onRowClick:e=>s.push(`/sessions/${e.session.id}`),defaultSortKey:"lastActive",defaultSortDir:"desc",columns:h}):(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(360px, 1fr))",gap:14},children:w.map(e=>(0,t.jsx)(y,{row:e},`${e.session.projectDir}/${e.session.id}`))})]})}],86333)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/137uw2-qbro07.js","static/chunks/0pqt~8bl3ukh4.js","static/chunks/0l4e3as18eexy.js","static/chunks/0e-wrhqh4h3r5.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,l=((o=l||{})[o.Runtime=0]="Runtime",o[o.Parent=1]="Parent",o[o.Update=2]="Update",o);let i=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,l,s;null!=t?l=(o=p(this.c,t)).exports:(o=this.m,l=this.e);let u=(r=o,n=l,(s=i.get(r))||(i.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 w(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 O(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=w,u.A=function(e){return this.r(e)(w.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=O(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=O(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"),U=Symbol("turbopack exports"),C=Symbol("turbopack error");function P(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:l,reject:i,promise:s}=k(),u=Object.assign(s,{[U]:r.exports,[j]: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(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={[U]:{},[j]:e=>e(t)};return e.then(e=>{r[U]=e,P(t)},e=>{r[C]=e,P(t)}),r}}return{[U]:e,[j]:()=>{}}}),r=()=>t.map(e=>{if(e[C])throw e[C];return e[U]}),{promise:l,resolve:i}=k(),s=Object.assign(()=>i(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?l:r()},function(e){e?i(u[C]=e):l(u[U]),P(n)}),n&&-1===n.status&&(n.status=0)};let v=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)}`)}v.prototype=URL.prototype,u.U=v,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,q(r));let o=r.included||[],l=o.map(e=>!!$.has(e)||E.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>_.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)_.has(e)||r.add(e);for(let n of r){let r=M(e,t,q(n));_.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=M(e,t,q(r.path)),i))_.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(l.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),i=x.get(o);if(void 0===i){let e=x.set.bind(x,o,A);i=o.then(e).catch(e=>{let o;switch(t){case l.Runtime:o=`as a runtime dependency of chunk ${r}`;break;case l.Parent:o=`from module ${r}`;break;case l.Update:o="from an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}let i=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw i.name="ChunkLoadError",i}),x.set(o,i)}return i}function q(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}S.L=function(e){return M(l.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,l){let i="SharedWorker"===e.name,s=[o.map(e=>q(e)).reverse(),r];for(let e of n)s.push(globalThis[e]);let u=new URL(q(t),location.origin),a=JSON.stringify(s);return i?u.searchParams.set("params",a):u.hash="#params="+encodeURIComponent(a),new e(u,l?{...l,type:void 0}:void 0)};let N=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function L(e){return K.test(e)}u.w=function(t,r,n){return e.loadWebAssembly(l.Parent,this.m.id,t,r,n)},u.u=function(t,r){return e.loadWebAssemblyModule(l.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,l.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),l=o.exports;I[e]=o;let i=new s(o,l);try{n(i,o,l)}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 l=e[o];for(let l=r;l<o;l++){let r=e[l],o=t.get(r);if(o){n=o;break}}let i=n??l,s=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(s||(i===l&&Object.defineProperty(l,"name",{value:"module evaluation"}),s=!0),t.set(r,i))}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?q(e):e.src).resolve(),null!=r){for(let e of r.otherChunks)D(q("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(e=>T(l.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,l.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>(function(e,t){let r=D(t);if(r.loadingStarted)return r.promise;if(e===l.Runtime)return r.loadingStarted=!0,L(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(L(t));else if(N.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(N.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 l=fetch(q(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(q(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/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)})();
@@ -0,0 +1,152 @@
1
+ import {
2
+ runDayDigestPipeline, readSettings, getTodayDigestFromCache,
3
+ } from "@claude-lens/entries/node";
4
+ import type { PipelineEvent } from "@claude-lens/entries/node";
5
+ import { readDayDigest } from "@claude-lens/entries/fs";
6
+ import { InflightCoalescer } from "@/lib/inflight-coalesce";
7
+ import { isValidDate, todayLocal } from "@/lib/entries";
8
+ import { registerJob, updateJob, completeJob, failJob } from "@/lib/jobs";
9
+
10
+ export const runtime = "nodejs";
11
+ export const dynamic = "force-dynamic";
12
+
13
+ type Params = { params: Promise<{ date: string }> };
14
+
15
+ // Keyed by `${date}|${force ? 1 : 0}` — force=1 requests never coalesce
16
+ // with force=0 (different key), matching spec §S2.
17
+ const coalescer = new InflightCoalescer<string, void>();
18
+
19
+ function updateJobFromEvent(jobId: string, ev: PipelineEvent): void {
20
+ if (ev.type === "status") {
21
+ updateJob(jobId, { progress: { phase: ev.phase, text: ev.text } });
22
+ } else if (ev.type === "entry") {
23
+ updateJob(jobId, {
24
+ progress: { phase: "enrich", index: ev.index, total: ev.total },
25
+ });
26
+ } else if (ev.type === "progress") {
27
+ updateJob(jobId, {
28
+ progress: { phase: ev.phase, bytes: ev.bytes },
29
+ });
30
+ }
31
+ }
32
+
33
+ export async function GET(_req: Request, ctx: Params) {
34
+ const { date } = await ctx.params;
35
+ if (!isValidDate(date)) {
36
+ return new Response(JSON.stringify({ error: "invalid date" }), {
37
+ status: 400, headers: { "content-type": "application/json" },
38
+ });
39
+ }
40
+ if (date > todayLocal()) {
41
+ return new Response(JSON.stringify({ error: "future date" }), {
42
+ status: 400, headers: { "content-type": "application/json" },
43
+ });
44
+ }
45
+
46
+ if (date === todayLocal()) {
47
+ const cached = getTodayDigestFromCache(date, Date.now());
48
+ if (cached) {
49
+ return new Response(JSON.stringify(cached), {
50
+ status: 200, headers: { "content-type": "application/json" },
51
+ });
52
+ }
53
+ return new Response(JSON.stringify({ pending: true, today: true }), {
54
+ status: 200, headers: { "content-type": "application/json" },
55
+ });
56
+ }
57
+
58
+ const cached = readDayDigest(date);
59
+ if (cached) {
60
+ return new Response(JSON.stringify(cached), {
61
+ status: 200, headers: { "content-type": "application/json" },
62
+ });
63
+ }
64
+ return new Response(JSON.stringify({ pending: true }), {
65
+ status: 200, headers: { "content-type": "application/json" },
66
+ });
67
+ }
68
+
69
+ export async function POST(req: Request, ctx: Params) {
70
+ const { date } = await ctx.params;
71
+ if (!isValidDate(date)) {
72
+ return new Response(JSON.stringify({ error: "invalid date" }), { status: 400 });
73
+ }
74
+ if (date > todayLocal()) {
75
+ return new Response(JSON.stringify({ error: "future date" }), { status: 400 });
76
+ }
77
+
78
+ const url = new URL(req.url);
79
+ const force = url.searchParams.get("force") === "1";
80
+ const key = `day|${date}|${force ? 1 : 0}`;
81
+
82
+ const encoder = new TextEncoder();
83
+ const settings = readSettings();
84
+
85
+ const stream = new ReadableStream({
86
+ async start(controller) {
87
+ let closed = false;
88
+ function send(event: PipelineEvent) {
89
+ if (closed) return;
90
+ try {
91
+ controller.enqueue(
92
+ encoder.encode(`event: ${event.type}\ndata: ${JSON.stringify(event)}\n\n`),
93
+ );
94
+ } catch {
95
+ closed = true;
96
+ }
97
+ }
98
+ function finish() {
99
+ if (!closed) {
100
+ try { controller.close(); } catch { /* already */ }
101
+ closed = true;
102
+ }
103
+ }
104
+
105
+ const alreadyInflight = coalescer.inflight(key);
106
+ let jobId: string | null = null;
107
+
108
+ try {
109
+ await coalescer.run(key, async () => {
110
+ if (alreadyInflight) return;
111
+ jobId = registerJob({
112
+ kind: "digest.day",
113
+ label: `Day digest · ${date}`,
114
+ target: date,
115
+ caller: "user",
116
+ });
117
+ updateJob(jobId, { status: "running" });
118
+ for await (const ev of runDayDigestPipeline(date, {
119
+ settings: settings.ai_features,
120
+ force,
121
+ todayLocalDay: todayLocal(),
122
+ })) {
123
+ send(ev);
124
+ if (jobId) updateJobFromEvent(jobId, ev);
125
+ }
126
+ if (jobId) completeJob(jobId, `/day/${date}`);
127
+ });
128
+
129
+ if (alreadyInflight) {
130
+ const d = readDayDigest(date) ?? getTodayDigestFromCache(date, Date.now());
131
+ if (d) send({ type: "digest", digest: d });
132
+ send({ type: "status", phase: "persist", text: "coalesced with in-flight request" });
133
+ }
134
+ } catch (err) {
135
+ send({ type: "error", message: (err as Error).message });
136
+ if (jobId) failJob(jobId, (err as Error).message);
137
+ } finally {
138
+ try { controller.enqueue(encoder.encode(`event: done\ndata: {}\n\n`)); } catch { /* ignore */ }
139
+ finish();
140
+ }
141
+ },
142
+ });
143
+
144
+ return new Response(stream, {
145
+ headers: {
146
+ "Content-Type": "text/event-stream",
147
+ "Cache-Control": "no-cache, no-transform",
148
+ Connection: "keep-alive",
149
+ "X-Accel-Buffering": "no",
150
+ },
151
+ });
152
+ }
@@ -0,0 +1,147 @@
1
+ import {
2
+ runMonthDigestPipeline, readSettings,
3
+ readMonthDigest, getCurrentMonthDigestFromCache,
4
+ } from "@claude-lens/entries/node";
5
+ import type { PipelineEvent } from "@claude-lens/entries/node";
6
+ import { InflightCoalescer } from "@/lib/inflight-coalesce";
7
+ import {
8
+ isValidYearMonth, currentYearMonth, currentWeekMonday, todayLocal,
9
+ } from "@/lib/entries";
10
+ import { registerJob, updateJob, completeJob, failJob } from "@/lib/jobs";
11
+
12
+ export const runtime = "nodejs";
13
+ export const dynamic = "force-dynamic";
14
+
15
+ type Params = { params: Promise<{ yearMonth: string }> };
16
+
17
+ const coalescer = new InflightCoalescer<string, void>();
18
+
19
+ function updateJobFromEvent(jobId: string, ev: PipelineEvent): void {
20
+ if (ev.type === "status") {
21
+ updateJob(jobId, { progress: { phase: ev.phase, text: ev.text } });
22
+ } else if (ev.type === "entry") {
23
+ updateJob(jobId, { progress: { phase: "enrich", index: ev.index, total: ev.total } });
24
+ } else if (ev.type === "progress") {
25
+ updateJob(jobId, { progress: { phase: ev.phase, bytes: ev.bytes } });
26
+ }
27
+ }
28
+
29
+ export async function GET(_req: Request, ctx: Params) {
30
+ const { yearMonth } = await ctx.params;
31
+ if (!isValidYearMonth(yearMonth)) {
32
+ return new Response(JSON.stringify({ error: "invalid year-month" }), {
33
+ status: 400, headers: { "content-type": "application/json" },
34
+ });
35
+ }
36
+ if (yearMonth > currentYearMonth()) {
37
+ return new Response(JSON.stringify({ error: "future month" }), { status: 400 });
38
+ }
39
+
40
+ const isCurrent = yearMonth === currentYearMonth();
41
+ if (isCurrent) {
42
+ const cached = getCurrentMonthDigestFromCache(yearMonth, Date.now());
43
+ if (cached) {
44
+ return new Response(JSON.stringify(cached), {
45
+ status: 200, headers: { "content-type": "application/json" },
46
+ });
47
+ }
48
+ return new Response(JSON.stringify({ pending: true, current: true }), {
49
+ status: 200, headers: { "content-type": "application/json" },
50
+ });
51
+ }
52
+
53
+ const cached = readMonthDigest(yearMonth);
54
+ if (cached) {
55
+ return new Response(JSON.stringify(cached), {
56
+ status: 200, headers: { "content-type": "application/json" },
57
+ });
58
+ }
59
+ return new Response(JSON.stringify({ pending: true }), {
60
+ status: 200, headers: { "content-type": "application/json" },
61
+ });
62
+ }
63
+
64
+ export async function POST(req: Request, ctx: Params) {
65
+ const { yearMonth } = await ctx.params;
66
+ if (!isValidYearMonth(yearMonth)) {
67
+ return new Response(JSON.stringify({ error: "invalid year-month" }), { status: 400 });
68
+ }
69
+ if (yearMonth > currentYearMonth()) {
70
+ return new Response(JSON.stringify({ error: "future month" }), { status: 400 });
71
+ }
72
+
73
+ const url = new URL(req.url);
74
+ const force = url.searchParams.get("force") === "1";
75
+ const key = `month|${yearMonth}|${force ? 1 : 0}`;
76
+
77
+ const encoder = new TextEncoder();
78
+ const settings = readSettings();
79
+
80
+ const stream = new ReadableStream({
81
+ async start(controller) {
82
+ let closed = false;
83
+ function send(event: PipelineEvent) {
84
+ if (closed) return;
85
+ try {
86
+ controller.enqueue(
87
+ encoder.encode(`event: ${event.type}\ndata: ${JSON.stringify(event)}\n\n`),
88
+ );
89
+ } catch { closed = true; }
90
+ }
91
+ function finish() {
92
+ if (!closed) {
93
+ try { controller.close(); } catch { /* ignore */ }
94
+ closed = true;
95
+ }
96
+ }
97
+
98
+ const alreadyInflight = coalescer.inflight(key);
99
+ let jobId: string | null = null;
100
+
101
+ try {
102
+ await coalescer.run(key, async () => {
103
+ if (alreadyInflight) return;
104
+ jobId = registerJob({
105
+ kind: "monthly.synth",
106
+ label: `Month digest · ${yearMonth}`,
107
+ target: yearMonth,
108
+ caller: "user",
109
+ });
110
+ updateJob(jobId, { status: "running" });
111
+ for await (const ev of runMonthDigestPipeline(yearMonth, {
112
+ settings: settings.ai_features,
113
+ force,
114
+ currentYearMonth: currentYearMonth(),
115
+ currentWeekMonday: currentWeekMonday(),
116
+ todayLocalDay: todayLocal(),
117
+ })) {
118
+ send(ev);
119
+ if (jobId) updateJobFromEvent(jobId, ev);
120
+ }
121
+ if (jobId) completeJob(jobId, `/insights/month-${yearMonth}`);
122
+ });
123
+
124
+ if (alreadyInflight) {
125
+ const d = readMonthDigest(yearMonth) ?? getCurrentMonthDigestFromCache(yearMonth, Date.now());
126
+ if (d) send({ type: "digest", digest: d });
127
+ send({ type: "status", phase: "persist", text: "coalesced with in-flight request" });
128
+ }
129
+ } catch (err) {
130
+ send({ type: "error", message: (err as Error).message });
131
+ if (jobId) failJob(jobId, (err as Error).message);
132
+ } finally {
133
+ try { controller.enqueue(encoder.encode(`event: done\ndata: {}\n\n`)); } catch { /* ignore */ }
134
+ finish();
135
+ }
136
+ },
137
+ });
138
+
139
+ return new Response(stream, {
140
+ headers: {
141
+ "Content-Type": "text/event-stream",
142
+ "Cache-Control": "no-cache, no-transform",
143
+ Connection: "keep-alive",
144
+ "X-Accel-Buffering": "no",
145
+ },
146
+ });
147
+ }