fleetlens 0.16.4 → 0.16.7

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 (232) hide show
  1. package/app/apps/web/.next/BUILD_ID +1 -1
  2. package/app/apps/web/.next/app-path-routes-manifest.json +1 -0
  3. package/app/apps/web/.next/build-manifest.json +3 -3
  4. package/app/apps/web/.next/prerender-manifest.json +32 -3
  5. package/app/apps/web/.next/routes-manifest.json +6 -0
  6. package/app/apps/web/.next/server/app/_global-error/page.js +2 -2
  7. package/app/apps/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/app/apps/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/app/apps/web/.next/server/app/_global-error.html +1 -1
  10. package/app/apps/web/.next/server/app/_global-error.rsc +7 -7
  11. package/app/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  12. package/app/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  13. package/app/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  14. package/app/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  15. package/app/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/app/apps/web/.next/server/app/_not-found/page.js +10 -9
  17. package/app/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  18. package/app/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/app/apps/web/.next/server/app/agent/page.js +10 -9
  20. package/app/apps/web/.next/server/app/agent/page.js.nft.json +1 -1
  21. package/app/apps/web/.next/server/app/agent/page_client-reference-manifest.js +1 -1
  22. package/app/apps/web/.next/server/app/api/agent/chats/[id]/messages/route.js.nft.json +1 -1
  23. package/app/apps/web/.next/server/app/api/agent/index/route.js.nft.json +1 -1
  24. package/app/apps/web/.next/server/app/api/agent/mcp/route.js.nft.json +1 -1
  25. package/app/apps/web/.next/server/app/api/agent/suggestions/route.js.nft.json +1 -1
  26. package/app/apps/web/.next/server/app/api/ask/route.js.nft.json +1 -1
  27. package/app/apps/web/.next/server/app/api/digest/day/[date]/route.js.nft.json +1 -1
  28. package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js.nft.json +1 -1
  29. package/app/apps/web/.next/server/app/api/digest/month-index/route.js.nft.json +1 -1
  30. package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js.nft.json +1 -1
  31. package/app/apps/web/.next/server/app/api/digest/week-index/route.js.nft.json +1 -1
  32. package/app/apps/web/.next/server/app/api/pdf/[key]/route.js.nft.json +1 -1
  33. package/app/apps/web/.next/server/app/api/projects/open-folder/route.js.nft.json +1 -1
  34. package/app/apps/web/.next/server/app/api/runs/[runId]/route.js.nft.json +1 -1
  35. package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route.js.nft.json +1 -1
  36. package/app/apps/web/.next/server/app/api/settings/credentials/route.js.nft.json +1 -1
  37. package/app/apps/web/.next/server/app/api/settings/route.js.nft.json +1 -1
  38. package/app/apps/web/.next/server/app/changelog/page.js +10 -9
  39. package/app/apps/web/.next/server/app/changelog/page.js.nft.json +1 -1
  40. package/app/apps/web/.next/server/app/changelog/page_client-reference-manifest.js +1 -1
  41. package/app/apps/web/.next/server/app/day/[date]/page.js +10 -9
  42. package/app/apps/web/.next/server/app/day/[date]/page.js.nft.json +1 -1
  43. package/app/apps/web/.next/server/app/day/[date]/page_client-reference-manifest.js +1 -1
  44. package/app/apps/web/.next/server/app/day/page.js +10 -9
  45. package/app/apps/web/.next/server/app/day/page.js.nft.json +1 -1
  46. package/app/apps/web/.next/server/app/day/page_client-reference-manifest.js +1 -1
  47. package/app/apps/web/.next/server/app/digest/[date]/page.js +10 -9
  48. package/app/apps/web/.next/server/app/digest/[date]/page.js.nft.json +1 -1
  49. package/app/apps/web/.next/server/app/digest/[date]/page_client-reference-manifest.js +1 -1
  50. package/app/apps/web/.next/server/app/digest/page.js +10 -9
  51. package/app/apps/web/.next/server/app/digest/page.js.nft.json +1 -1
  52. package/app/apps/web/.next/server/app/digest/page_client-reference-manifest.js +1 -1
  53. package/app/apps/web/.next/server/app/icon.svg/route/app-paths-manifest.json +3 -0
  54. package/app/apps/web/.next/server/app/icon.svg/route/build-manifest.json +9 -0
  55. package/app/apps/web/.next/server/app/icon.svg/route.js +7 -0
  56. package/app/apps/web/.next/server/app/icon.svg/route.js.map +5 -0
  57. package/app/apps/web/.next/server/app/icon.svg/route.js.nft.json +1 -0
  58. package/app/apps/web/.next/server/app/icon.svg.body +7 -0
  59. package/app/apps/web/.next/server/app/icon.svg.meta +1 -0
  60. package/app/apps/web/.next/server/app/insights/[key]/page.js +10 -9
  61. package/app/apps/web/.next/server/app/insights/[key]/page.js.nft.json +1 -1
  62. package/app/apps/web/.next/server/app/insights/[key]/page_client-reference-manifest.js +1 -1
  63. package/app/apps/web/.next/server/app/insights/page.js +10 -9
  64. package/app/apps/web/.next/server/app/insights/page.js.nft.json +1 -1
  65. package/app/apps/web/.next/server/app/insights/page_client-reference-manifest.js +1 -1
  66. package/app/apps/web/.next/server/app/page.js +10 -9
  67. package/app/apps/web/.next/server/app/page.js.nft.json +1 -1
  68. package/app/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  69. package/app/apps/web/.next/server/app/parallelism/page.js +10 -9
  70. package/app/apps/web/.next/server/app/parallelism/page.js.nft.json +1 -1
  71. package/app/apps/web/.next/server/app/parallelism/page_client-reference-manifest.js +1 -1
  72. package/app/apps/web/.next/server/app/print/[key]/page.js +10 -9
  73. package/app/apps/web/.next/server/app/print/[key]/page.js.nft.json +1 -1
  74. package/app/apps/web/.next/server/app/print/[key]/page_client-reference-manifest.js +1 -1
  75. package/app/apps/web/.next/server/app/projects/[slug]/page.js +10 -9
  76. package/app/apps/web/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  77. package/app/apps/web/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  78. package/app/apps/web/.next/server/app/projects/page.js +10 -9
  79. package/app/apps/web/.next/server/app/projects/page.js.nft.json +1 -1
  80. package/app/apps/web/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  81. package/app/apps/web/.next/server/app/runs/page.js +10 -9
  82. package/app/apps/web/.next/server/app/runs/page.js.nft.json +1 -1
  83. package/app/apps/web/.next/server/app/runs/page_client-reference-manifest.js +1 -1
  84. package/app/apps/web/.next/server/app/sessions/[id]/page.js +10 -9
  85. package/app/apps/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  86. package/app/apps/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  87. package/app/apps/web/.next/server/app/sessions/page.js +10 -9
  88. package/app/apps/web/.next/server/app/sessions/page.js.nft.json +1 -1
  89. package/app/apps/web/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  90. package/app/apps/web/.next/server/app/settings/page.js +10 -9
  91. package/app/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
  92. package/app/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  93. package/app/apps/web/.next/server/app/team/onboarding/page.js +10 -9
  94. package/app/apps/web/.next/server/app/team/onboarding/page.js.nft.json +1 -1
  95. package/app/apps/web/.next/server/app/team/onboarding/page_client-reference-manifest.js +1 -1
  96. package/app/apps/web/.next/server/app/team/page.js +10 -9
  97. package/app/apps/web/.next/server/app/team/page.js.nft.json +1 -1
  98. package/app/apps/web/.next/server/app/team/page_client-reference-manifest.js +1 -1
  99. package/app/apps/web/.next/server/app/usage/page.js +10 -9
  100. package/app/apps/web/.next/server/app/usage/page.js.nft.json +1 -1
  101. package/app/apps/web/.next/server/app/usage/page_client-reference-manifest.js +1 -1
  102. package/app/apps/web/.next/server/app-paths-manifest.json +1 -0
  103. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0o.75vf._.js +3 -0
  104. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_icon_svg_route_actions_09mu110.js +3 -0
  105. package/app/apps/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0sr4wr_.js +1 -1
  106. package/app/apps/web/.next/server/chunks/packages_parser_dist_06d9se1._.js +1 -1
  107. package/app/apps/web/.next/server/chunks/packages_parser_dist_10ihc3~._.js +1 -1
  108. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0-zxvif._.js +3 -0
  109. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__01etyrg._.js +3 -0
  110. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__01wj6p0._.js +3 -0
  111. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0lz4a~g._.js → [root-of-the-server]__021z658._.js} +2 -2
  112. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__07e35nb._.js +3 -0
  113. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__11xp-1u._.js → [root-of-the-server]__0a-_-_a._.js} +2 -2
  114. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0xy1qim._.js → [root-of-the-server]__0b6a93u._.js} +2 -2
  115. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0f3q8gt._.js +1 -1
  116. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0o1_g.~._.js → [root-of-the-server]__0fosdzf._.js} +2 -2
  117. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__04qodwp._.js → [root-of-the-server]__0h~6fzv._.js} +2 -2
  118. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0ix~bkq._.js +3 -0
  119. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0j3r6mu._.js +3 -0
  120. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__10srpu0._.js → [root-of-the-server]__0m3g~yv._.js} +2 -2
  121. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__07~kk2~._.js → [root-of-the-server]__0n3n~yr._.js} +2 -2
  122. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0kml6jt._.js → [root-of-the-server]__0omu7re._.js} +2 -2
  123. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0.zquoa._.js → [root-of-the-server]__0ovph2e._.js} +2 -2
  124. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0ar_8wr._.js → [root-of-the-server]__0tz4w46._.js} +3 -3
  125. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0u0n8z~._.js +3 -0
  126. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0ufi3.w._.js → [root-of-the-server]__0wraeyz._.js} +2 -2
  127. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0u39afl._.js → [root-of-the-server]__0wy2-yx._.js} +2 -2
  128. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0ygwqfa._.js +12 -0
  129. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0z0wa91._.js +12 -0
  130. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0~.gwld._.js +3 -0
  131. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0.wm54e._.js → [root-of-the-server]__12mxxlm._.js} +2 -2
  132. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__12s3gv9._.js +3 -0
  133. package/app/apps/web/.next/server/chunks/ssr/_0k8yioi._.js +1 -1
  134. package/app/apps/web/.next/server/chunks/ssr/_0sz8~hl._.js +3 -0
  135. package/app/apps/web/.next/server/chunks/ssr/apps_web_0epqfet._.js +1 -1
  136. package/app/apps/web/.next/server/chunks/ssr/apps_web_0~aj0~u._.js +1 -1
  137. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0x014hn._.js +2 -2
  138. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_usage-charts-dashboard_tsx_0bgr_uv._.js +1 -1
  139. package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_changelog_ts_0n7_p1d._.js +1 -1
  140. package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_changelog_ts_0nb5_-s._.js +1 -1
  141. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_06u0kr8._.js +3 -0
  142. package/app/apps/web/.next/server/chunks/ssr/{node_modules_next_dist_06c_2qf._.js → node_modules_next_dist_0ve2ws3._.js} +2 -2
  143. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00g~mhv.js +4 -0
  144. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_01.bezr.js +4 -0
  145. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0289ttk.js +4 -0
  146. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02eo3j_.js +4 -0
  147. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03vhmnm.js +4 -0
  148. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_07_oby5.js +4 -0
  149. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0bm6hj~.js +4 -0
  150. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dd8f-e.js +4 -0
  151. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0e-9-6e.js +4 -0
  152. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hvl-ct.js +4 -0
  153. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0i1kx1j.js +4 -0
  154. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0j8zf-y.js +4 -0
  155. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0kpe55j.js +4 -0
  156. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0q1syx3.js +4 -0
  157. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0q4~c_f.js +4 -0
  158. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0w_~1n4.js +4 -0
  159. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0wcoddw.js +4 -0
  160. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0wil2ok.js +4 -0
  161. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0z65c3i.js +4 -0
  162. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0zaz56w.js +4 -0
  163. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0~onns0.js +4 -0
  164. package/app/apps/web/.next/server/chunks/ssr/packages_parser_dist_0mx_509._.js +1 -1
  165. package/app/apps/web/.next/server/middleware-build-manifest.js +3 -3
  166. package/app/apps/web/.next/server/middleware-manifest.json +5 -5
  167. package/app/apps/web/.next/server/pages/500.html +1 -1
  168. package/app/apps/web/.next/server/server-reference-manifest.js +1 -1
  169. package/app/apps/web/.next/server/server-reference-manifest.json +1 -1
  170. package/app/apps/web/.next/static/chunks/0d~6j~aj2vr1t.js +1 -0
  171. package/app/apps/web/.next/static/chunks/0guxw7.w8n21l.js +14 -0
  172. package/app/apps/web/.next/static/chunks/{0389wb_f0j78j.js → 0n1d620va1z.z.js} +1 -1
  173. package/app/apps/web/.next/static/chunks/{0-z49mtd-zwgv.js → 0~opjw4gew2-w.js} +1 -1
  174. package/app/apps/web/.next/static/media/icon.0h9o_.fpzdvkq.svg +7 -0
  175. package/app/apps/web/app/icon.svg +7 -0
  176. package/app/apps/web/app/settings/page.tsx +1 -1
  177. package/app/apps/web/app/usage/page.tsx +157 -2
  178. package/app/apps/web/components/menubar-install-banner.tsx +1 -1
  179. package/app/apps/web/components/menubar-install.tsx +1 -1
  180. package/app/apps/web/components/sidebar.tsx +5 -11
  181. package/app/apps/web/components/usage-chart-range.tsx +9 -3
  182. package/app/apps/web/components/usage-chart.tsx +9 -3
  183. package/app/apps/web/components/usage-charts-dashboard.tsx +10 -3
  184. package/app/apps/web/lib/changelog-data.generated.ts +1 -1
  185. package/app/apps/web/lib/format.test.ts +10 -0
  186. package/app/apps/web/lib/format.ts +6 -4
  187. package/app/apps/web/lib/usage-data.ts +9 -0
  188. package/app/apps/web/package.json +1 -1
  189. package/app/apps/web/tsconfig.tsbuildinfo +1 -1
  190. package/dist/daemon-worker.js +1312 -365
  191. package/dist/index.js +1399 -440
  192. package/menubar/FleetlensMenubar.app/Contents/Info.plist +2 -2
  193. package/menubar/FleetlensMenubar.app/Contents/MacOS/FleetlensMenubar +0 -0
  194. package/package.json +1 -1
  195. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__04eq6z2._.js +0 -3
  196. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__09rjz7_._.js +0 -3
  197. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0_78i1t._.js +0 -3
  198. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0blm9gz._.js +0 -12
  199. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0d5y90m._.js +0 -3
  200. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0i.q-1h._.js +0 -3
  201. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0j683am._.js +0 -3
  202. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0lmftab._.js +0 -12
  203. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0p1x6v2._.js +0 -3
  204. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0stu~~r._.js +0 -3
  205. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0tejjy_._.js +0 -3
  206. package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_0k0tl52._.js +0 -3
  207. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02rcy0h.js +0 -4
  208. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0602nef.js +0 -4
  209. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_07orc4m.js +0 -4
  210. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09aewh9.js +0 -4
  211. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09rx8oz.js +0 -4
  212. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0d3d4wn.js +0 -4
  213. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0edz1ko.js +0 -4
  214. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0eq.n-n.js +0 -4
  215. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hcvt-s.js +0 -4
  216. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hshwu7.js +0 -4
  217. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hwycdb.js +0 -4
  218. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0jxvcfi.js +0 -4
  219. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0nd5zu0.js +0 -4
  220. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0s5yhs4.js +0 -4
  221. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0uwo3v3.js +0 -4
  222. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0~g07z5.js +0 -4
  223. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_10cdrh2.js +0 -4
  224. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_10op6u-.js +0 -4
  225. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11j1qy0.js +0 -4
  226. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_12n1lw_.js +0 -4
  227. package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_12r67~s.js +0 -4
  228. package/app/apps/web/.next/static/chunks/0rrcj195v1nd..js +0 -1
  229. package/app/apps/web/.next/static/chunks/13hdlcc0bj_zt.js +0 -14
  230. /package/app/apps/web/.next/static/{cKCY-h3trXN9_kNrMfxWd → Zna-9B0LUDyz-sTA_YAsM}/_buildManifest.js +0 -0
  231. /package/app/apps/web/.next/static/{cKCY-h3trXN9_kNrMfxWd → Zna-9B0LUDyz-sTA_YAsM}/_clientMiddlewareManifest.js +0 -0
  232. /package/app/apps/web/.next/static/{cKCY-h3trXN9_kNrMfxWd → Zna-9B0LUDyz-sTA_YAsM}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[63681,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={RequestCookies:function(){return f.RequestCookies},ResponseCookies:function(){return f.ResponseCookies},stringifyCookie:function(){return f.stringifyCookie}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(36226)},51409,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReflectAdapter",{enumerable:!0,get:function(){return d}});class d{static get(a,b,c){let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}static set(a,b,c,d){return Reflect.set(a,b,c,d)}static has(a,b){return Reflect.has(a,b)}static deleteProperty(a,b){return Reflect.deleteProperty(a,b)}}},4712,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ActionDidNotRevalidate:function(){return f},ActionDidRevalidateDynamicOnly:function(){return h},ActionDidRevalidateStaticAndDynamic:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=0,g=1,h=2},14896,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63681),g=a.r(51409),h=a.r(56704),i=a.r(4712);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},8018,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(a.r(717));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},86309,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={isRequestAPICallableInsideAfter:function(){return j},throwForSearchParamsAccessInUseCache:function(){return i},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(60312),g=a.r(24725);function h(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function i(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function j(){let a=g.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}},81740,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"cookies",{enumerable:!0,get:function(){return n}});let d=a.r(14896),e=a.r(63681),f=a.r(56704),g=a.r(32319),h=a.r(60384),i=a.r(60312),j=a.r(13091),k=a.r(8018),l=a.r(86309),m=a.r(50640);function n(){let a="cookies",b=f.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,l.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`cookies()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E843",enumerable:!1,configurable:!0});if(b.forceStatic)return p(d.RequestCookiesAdapter.seal(new e.RequestCookies(new Headers({}))));if(b.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E849",enumerable:!1,configurable:!0});if(c)switch(c.type){case"cache":let f=Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E831",enumerable:!1,configurable:!0});throw Error.captureStackTrace(f,n),b.invalidDynamicUsageError??=f,f;case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E846",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1123",enumerable:!1,configurable:!0});case"prerender":var k=b,q=c;let r=o.get(q);if(r)return r;let s=(0,j.makeHangingPromise)(q.renderSignal,k.route,"`cookies()`");return o.set(q,s),s;case"prerender-client":case"validation-client":let t="`cookies`";throw Object.defineProperty(new m.InvariantError(`${t} must not be used within a Client Component. Next.js should be preventing ${t} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1037",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,h.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,h.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,j.delayUntilRuntimeStage)(c,p(c.cookies));case"private-cache":return p(c.cookies);case"request":let u;if((0,h.trackDynamicDataInDynamicRender)(c),u=(0,d.areCookiesMutableInCurrentPhase)(c)?c.userspaceMutableCookies:c.cookies,!c.asyncApiPromises)return p(u);{let a=(0,g.isInEarlyRenderStage)(c);if(u===c.mutableCookies)return a?c.asyncApiPromises.earlyMutableCookies:c.asyncApiPromises.mutableCookies;return a?c.asyncApiPromises.earlyCookies:c.asyncApiPromises.cookies}}}(0,g.throwForMissingRequestStore)(a)}a.r(31382);let o=new WeakMap;function p(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),c}(0,k.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`cookies()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E830",enumerable:!1,configurable:!0})})},29927,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HeadersAdapter:function(){return h},ReadonlyHeadersError:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(51409);class g extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new g}}class h extends Headers{constructor(a){super(),this.headers=new Proxy(a,{get(b,c,d){if("symbol"==typeof c)return f.ReflectAdapter.get(b,c,d);let e=c.toLowerCase(),g=Object.keys(a).find(a=>a.toLowerCase()===e);if(void 0!==g)return f.ReflectAdapter.get(b,g,d)},set(b,c,d,e){if("symbol"==typeof c)return f.ReflectAdapter.set(b,c,d,e);let g=c.toLowerCase(),h=Object.keys(a).find(a=>a.toLowerCase()===g);return f.ReflectAdapter.set(b,h??c,d,e)},has(b,c){if("symbol"==typeof c)return f.ReflectAdapter.has(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0!==e&&f.ReflectAdapter.has(b,e)},deleteProperty(b,c){if("symbol"==typeof c)return f.ReflectAdapter.deleteProperty(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0===e||f.ReflectAdapter.deleteProperty(b,e)}})}static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"append":case"delete":case"set":return g.callable;default:return f.ReflectAdapter.get(a,b,c)}}})}merge(a){return Array.isArray(a)?a.join(", "):a}static from(a){return a instanceof Headers?a:new h(a)}append(a,b){let c=this.headers[a];"string"==typeof c?this.headers[a]=[c,b]:Array.isArray(c)?c.push(b):this.headers[a]=b}delete(a){delete this.headers[a]}get(a){let b=this.headers[a];return void 0!==b?this.merge(b):null}has(a){return void 0!==this.headers[a]}set(a,b){this.headers[a]=b}forEach(a,b){for(let[c,d]of this.entries())a.call(b,d,c,this)}*entries(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase(),c=this.get(b);yield[b,c]}}*keys(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase();yield b}}*values(){for(let a of Object.keys(this.headers)){let b=this.get(a);yield b}}[Symbol.iterator](){return this.entries()}}},35754,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"headers",{enumerable:!0,get:function(){return m}});let d=a.r(29927),e=a.r(56704),f=a.r(32319),g=a.r(60384),h=a.r(60312),i=a.r(13091),j=a.r(8018),k=a.r(86309),l=a.r(50640);function m(){let a="headers",b=e.workAsyncStorage.getStore(),c=f.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,k.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`headers()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E839",enumerable:!1,configurable:!0});if(b.forceStatic)return o(d.HeadersAdapter.seal(new Headers({})));if(c)switch(c.type){case"cache":{let a=Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E833",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),b.invalidDynamicUsageError??=a,a}case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E838",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1134",enumerable:!1,configurable:!0})}if(b.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E828",enumerable:!1,configurable:!0});if(c)switch(c.type){case"prerender":var j=b,p=c;let e=n.get(p);if(e)return e;let q=(0,i.makeHangingPromise)(p.renderSignal,j.route,"`headers()`");return n.set(p,q),q;case"prerender-client":case"validation-client":let r="`headers`";throw Object.defineProperty(new l.InvariantError(`${r} must not be used within a client component. Next.js should be preventing ${r} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1017",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,g.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,g.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,i.delayUntilRuntimeStage)(c,o(c.headers));case"private-cache":return o(c.headers);case"request":if((0,g.trackDynamicDataInDynamicRender)(c),c.asyncApiPromises)return(0,f.isInEarlyRenderStage)(c)?c.asyncApiPromises.earlyHeaders:c.asyncApiPromises.headers;return o(c.headers)}}(0,f.throwForMissingRequestStore)(a)}a.r(31382);let n=new WeakMap;function o(a){let b=n.get(a);if(b)return b;let c=Promise.resolve(a);return n.set(a,c),c}(0,j.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`headers()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E836",enumerable:!1,configurable:!0})})},51125,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"draftMode",{enumerable:!0,get:function(){return l}});let d=a.r(32319),e=a.r(56704),f=a.r(60384),g=a.r(8018),h=a.r(60312),i=a.r(96556),j=a.r(50640),k=a.r(13091);function l(){let a="draftMode",b=e.workAsyncStorage.getStore(),c=d.workUnitAsyncStorage.getStore();switch((!b||!c)&&(0,d.throwForMissingRequestStore)(a),c.type){case"prerender-runtime":return(0,k.delayUntilRuntimeStage)(c,m(c.draftMode,b));case"request":return m(c.draftMode,b);case"cache":case"private-cache":case"unstable-cache":let f=(0,d.getDraftModeProviderForCacheScope)(b,c);if(f)return m(f,b);case"prerender":case"prerender-ppr":case"prerender-legacy":return m(null,b);case"prerender-client":case"validation-client":{let a="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${a} must not be used within a Client Component. Next.js should be preventing ${a} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0})}case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`${a}()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1132",enumerable:!1,configurable:!0});default:return c}}function m(a,b){let c=o.get(a??n);return c||Promise.resolve(new p(a))}a.r(51409);let n={},o=new WeakMap;class p{constructor(a){this._provider=a}get isEnabled(){return null!==this._provider&&this._provider.isEnabled}enable(){q("draftMode().enable()",this.enable),null!==this._provider&&this._provider.enable()}disable(){q("draftMode().disable()",this.disable),null!==this._provider&&this._provider.disable()}}function q(a,b){let c=e.workAsyncStorage.getStore(),g=d.workUnitAsyncStorage.getStore();if(c){if((null==g?void 0:g.phase)==="after")throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside \`after()\`. The enabled status of \`draftMode()\` can be read inside \`after()\` but you cannot enable or disable \`draftMode()\`. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E845",enumerable:!1,configurable:!0});if(c.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${c.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(g)switch(g.type){case"cache":case"private-cache":{let d=Object.defineProperty(Error(`Route ${c.route} used "${a}" inside "use cache". The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E829",enumerable:!1,configurable:!0});throw Error.captureStackTrace(d,b),c.invalidDynamicUsageError??=d,d}case"unstable-cache":throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside a function cached with \`unstable_cache()\`. The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E844",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":{let b=Object.defineProperty(Error(`Route ${c.route} used ${a} without first calling \`await connection()\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`),"__NEXT_ERROR_CODE",{value:"E126",enumerable:!1,configurable:!0});return(0,f.abortAndThrowOnSynchronousRequestDataAccess)(c.route,a,b,g)}case"prerender-client":case"validation-client":let d="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${d} must not be used within a Client Component. Next.js should be preventing ${d} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,f.postponeWithTracking)(c.route,a,g.dynamicTracking);case"prerender-legacy":g.revalidate=0;let e=Object.defineProperty(new i.DynamicServerError(`Route ${c.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.dynamicUsageDescription=a,c.dynamicUsageStack=e.stack,e;case"request":(0,f.trackDynamicDataInDynamicRender)(g);break;case"generate-static-params":throw Object.defineProperty(Error(`Route ${c.route} used \`${a}\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1121",enumerable:!1,configurable:!0})}}}(0,g.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`draftMode()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E835",enumerable:!1,configurable:!0})})},5246,(a,b,c)=>{b.exports.cookies=a.r(81740).cookies,b.exports.headers=a.r(35754).headers,b.exports.draftMode=a.r(51125).draftMode},45017,a=>{"use strict";a.s(["Sidebar",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/sidebar.tsx <module evaluation>","Sidebar")},10398,a=>{"use strict";a.s(["Sidebar",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/sidebar.tsx","Sidebar")},23604,a=>{"use strict";a.i(45017);var b=a.i(10398);a.n(b)},59969,a=>{"use strict";a.s(["LiveRefresher",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveRefresher() from the server but LiveRefresher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-refresher.tsx <module evaluation>","LiveRefresher")},11272,a=>{"use strict";a.s(["LiveRefresher",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveRefresher() from the server but LiveRefresher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-refresher.tsx","LiveRefresher")},30642,a=>{"use strict";a.i(59969);var b=a.i(11272);a.n(b)},99153,a=>{"use strict";a.s(["LiveSessionsWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveSessionsWidget() from the server but LiveSessionsWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-sessions-widget.tsx <module evaluation>","LiveSessionsWidget")},62615,a=>{"use strict";a.s(["LiveSessionsWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveSessionsWidget() from the server but LiveSessionsWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-sessions-widget.tsx","LiveSessionsWidget")},9647,a=>{"use strict";a.i(99153);var b=a.i(62615);a.n(b)},14022,a=>{"use strict";a.s(["JobQueueWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call JobQueueWidget() from the server but JobQueueWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/job-queue-widget.tsx <module evaluation>","JobQueueWidget")},5900,a=>{"use strict";a.s(["JobQueueWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call JobQueueWidget() from the server but JobQueueWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/job-queue-widget.tsx","JobQueueWidget")},84829,a=>{"use strict";a.i(14022);var b=a.i(5900);a.n(b)},73842,a=>{"use strict";a.s(["MenubarInstallBanner",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call MenubarInstallBanner() from the server but MenubarInstallBanner is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/menubar-install-banner.tsx <module evaluation>","MenubarInstallBanner")},46147,a=>{"use strict";a.s(["MenubarInstallBanner",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call MenubarInstallBanner() from the server but MenubarInstallBanner is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/menubar-install-banner.tsx","MenubarInstallBanner")},73994,a=>{"use strict";a.i(73842);var b=a.i(46147);a.n(b)},28992,a=>{"use strict";var b=a.i(7997),c=a.i(5246),d=a.i(23604),e=a.i(30642),f=a.i(9647),g=a.i(84829),h=a.i(73994);a.i(9117);var i=a.i(48024),j=a.i(67116),k=a.i(70709),l=a.i(60511),m=a.i(76597),n=a.i(40095);async function o({children:a}){let p=await (0,c.headers)();if((p.get("x-fleetlens-pathname")??"").startsWith("/print/")){let d=p.get("x-fleetlens-theme"),e=await (0,c.cookies)(),f=e.get("claude-lens-theme")?.value;return(0,b.jsx)("html",{lang:"en","data-theme":"light"===d||"dark"===d?d:"light"===f||"dark"===f?f:"dark",suppressHydrationWarning:!0,children:(0,b.jsx)("body",{children:a})})}let[q,r]=await Promise.all([(0,j.listSessions)(),(0,m.buildEntriesIndex)()]),s=q.slice(0,20),t=q.length,u=(0,i.groupByProject)(q).map(a=>({projectDir:a.projectDir,projectName:a.projectName,sessionCount:a.sessions.length,lastActiveMs:a.lastActiveMs,worktreeCount:a.worktreeCount})),v=(0,k.latestUsageSnapshot)(),w=(0,l.readTeamConnection)(),x=s.map(a=>({id:a.id,projectName:a.projectName,firstUserPreview:a.firstUserPreview,lastUserPreview:a.lastUserPreview,lastAgentPreview:a.lastAgentPreview,firstTimestamp:a.firstTimestamp,lastTimestamp:a.lastTimestamp,lastActivityMs:a.lastActivityMs,teamName:a.teamName,agentName:a.agentName,agent:a.agent})),y={};for(let a of s){let b=r.bySession.get(a.id)??[];if(0===b.length)continue;let c=b[b.length-1];y[a.id]={outcome:c.enrichment.outcome??null,enrichmentStatus:c.enrichment.status,localDay:c.local_day}}let z=await (0,c.cookies)(),A=z.get("claude-lens-theme")?.value;return(0,b.jsx)("html",{lang:"en","data-theme":"light"===A||"dark"===A?A:"dark",suppressHydrationWarning:!0,children:(0,b.jsxs)("body",{children:[(0,b.jsx)(e.LiveRefresher,{}),(0,b.jsxs)("div",{style:{display:"flex",height:"100vh"},children:[(0,b.jsx)(d.Sidebar,{projects:u,totalSessions:t,currentUsage:v,version:"0.16.4",latestChangelogVersion:n.LATEST_VERSION,teamConnection:w}),(0,b.jsxs)("main",{style:{flex:1,minWidth:0,minHeight:0,padding:0,overflow:"auto"},children:[(0,b.jsx)(h.MenubarInstallBanner,{}),a]})]}),(0,b.jsx)(f.LiveSessionsWidget,{sessions:x,entrySummaries:y}),(0,b.jsx)(g.JobQueueWidget,{})]})})}a.s(["default",0,o,"dynamic",0,"force-dynamic","metadata",0,{title:"Fleetlens",description:"Multi-agent fleet analytics — local-only dashboard for Claude Code, Codex, and other coding-agent sessions."}],28992)},44665,a=>{a.n(a.i(28992))}];
1
+ module.exports=[63681,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={RequestCookies:function(){return f.RequestCookies},ResponseCookies:function(){return f.ResponseCookies},stringifyCookie:function(){return f.stringifyCookie}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(36226)},51409,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReflectAdapter",{enumerable:!0,get:function(){return d}});class d{static get(a,b,c){let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}static set(a,b,c,d){return Reflect.set(a,b,c,d)}static has(a,b){return Reflect.has(a,b)}static deleteProperty(a,b){return Reflect.deleteProperty(a,b)}}},4712,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ActionDidNotRevalidate:function(){return f},ActionDidRevalidateDynamicOnly:function(){return h},ActionDidRevalidateStaticAndDynamic:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=0,g=1,h=2},14896,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63681),g=a.r(51409),h=a.r(56704),i=a.r(4712);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},8018,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(a.r(717));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},86309,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={isRequestAPICallableInsideAfter:function(){return j},throwForSearchParamsAccessInUseCache:function(){return i},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(60312),g=a.r(24725);function h(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function i(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function j(){let a=g.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}},81740,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"cookies",{enumerable:!0,get:function(){return n}});let d=a.r(14896),e=a.r(63681),f=a.r(56704),g=a.r(32319),h=a.r(60384),i=a.r(60312),j=a.r(13091),k=a.r(8018),l=a.r(86309),m=a.r(50640);function n(){let a="cookies",b=f.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,l.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`cookies()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E843",enumerable:!1,configurable:!0});if(b.forceStatic)return p(d.RequestCookiesAdapter.seal(new e.RequestCookies(new Headers({}))));if(b.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E849",enumerable:!1,configurable:!0});if(c)switch(c.type){case"cache":let f=Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E831",enumerable:!1,configurable:!0});throw Error.captureStackTrace(f,n),b.invalidDynamicUsageError??=f,f;case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E846",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1123",enumerable:!1,configurable:!0});case"prerender":var k=b,q=c;let r=o.get(q);if(r)return r;let s=(0,j.makeHangingPromise)(q.renderSignal,k.route,"`cookies()`");return o.set(q,s),s;case"prerender-client":case"validation-client":let t="`cookies`";throw Object.defineProperty(new m.InvariantError(`${t} must not be used within a Client Component. Next.js should be preventing ${t} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1037",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,h.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,h.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,j.delayUntilRuntimeStage)(c,p(c.cookies));case"private-cache":return p(c.cookies);case"request":let u;if((0,h.trackDynamicDataInDynamicRender)(c),u=(0,d.areCookiesMutableInCurrentPhase)(c)?c.userspaceMutableCookies:c.cookies,!c.asyncApiPromises)return p(u);{let a=(0,g.isInEarlyRenderStage)(c);if(u===c.mutableCookies)return a?c.asyncApiPromises.earlyMutableCookies:c.asyncApiPromises.mutableCookies;return a?c.asyncApiPromises.earlyCookies:c.asyncApiPromises.cookies}}}(0,g.throwForMissingRequestStore)(a)}a.r(31382);let o=new WeakMap;function p(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),c}(0,k.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`cookies()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E830",enumerable:!1,configurable:!0})})},29927,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HeadersAdapter:function(){return h},ReadonlyHeadersError:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(51409);class g extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new g}}class h extends Headers{constructor(a){super(),this.headers=new Proxy(a,{get(b,c,d){if("symbol"==typeof c)return f.ReflectAdapter.get(b,c,d);let e=c.toLowerCase(),g=Object.keys(a).find(a=>a.toLowerCase()===e);if(void 0!==g)return f.ReflectAdapter.get(b,g,d)},set(b,c,d,e){if("symbol"==typeof c)return f.ReflectAdapter.set(b,c,d,e);let g=c.toLowerCase(),h=Object.keys(a).find(a=>a.toLowerCase()===g);return f.ReflectAdapter.set(b,h??c,d,e)},has(b,c){if("symbol"==typeof c)return f.ReflectAdapter.has(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0!==e&&f.ReflectAdapter.has(b,e)},deleteProperty(b,c){if("symbol"==typeof c)return f.ReflectAdapter.deleteProperty(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0===e||f.ReflectAdapter.deleteProperty(b,e)}})}static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"append":case"delete":case"set":return g.callable;default:return f.ReflectAdapter.get(a,b,c)}}})}merge(a){return Array.isArray(a)?a.join(", "):a}static from(a){return a instanceof Headers?a:new h(a)}append(a,b){let c=this.headers[a];"string"==typeof c?this.headers[a]=[c,b]:Array.isArray(c)?c.push(b):this.headers[a]=b}delete(a){delete this.headers[a]}get(a){let b=this.headers[a];return void 0!==b?this.merge(b):null}has(a){return void 0!==this.headers[a]}set(a,b){this.headers[a]=b}forEach(a,b){for(let[c,d]of this.entries())a.call(b,d,c,this)}*entries(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase(),c=this.get(b);yield[b,c]}}*keys(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase();yield b}}*values(){for(let a of Object.keys(this.headers)){let b=this.get(a);yield b}}[Symbol.iterator](){return this.entries()}}},35754,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"headers",{enumerable:!0,get:function(){return m}});let d=a.r(29927),e=a.r(56704),f=a.r(32319),g=a.r(60384),h=a.r(60312),i=a.r(13091),j=a.r(8018),k=a.r(86309),l=a.r(50640);function m(){let a="headers",b=e.workAsyncStorage.getStore(),c=f.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,k.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`headers()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E839",enumerable:!1,configurable:!0});if(b.forceStatic)return o(d.HeadersAdapter.seal(new Headers({})));if(c)switch(c.type){case"cache":{let a=Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E833",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),b.invalidDynamicUsageError??=a,a}case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E838",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1134",enumerable:!1,configurable:!0})}if(b.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E828",enumerable:!1,configurable:!0});if(c)switch(c.type){case"prerender":var j=b,p=c;let e=n.get(p);if(e)return e;let q=(0,i.makeHangingPromise)(p.renderSignal,j.route,"`headers()`");return n.set(p,q),q;case"prerender-client":case"validation-client":let r="`headers`";throw Object.defineProperty(new l.InvariantError(`${r} must not be used within a client component. Next.js should be preventing ${r} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1017",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,g.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,g.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,i.delayUntilRuntimeStage)(c,o(c.headers));case"private-cache":return o(c.headers);case"request":if((0,g.trackDynamicDataInDynamicRender)(c),c.asyncApiPromises)return(0,f.isInEarlyRenderStage)(c)?c.asyncApiPromises.earlyHeaders:c.asyncApiPromises.headers;return o(c.headers)}}(0,f.throwForMissingRequestStore)(a)}a.r(31382);let n=new WeakMap;function o(a){let b=n.get(a);if(b)return b;let c=Promise.resolve(a);return n.set(a,c),c}(0,j.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`headers()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E836",enumerable:!1,configurable:!0})})},51125,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"draftMode",{enumerable:!0,get:function(){return l}});let d=a.r(32319),e=a.r(56704),f=a.r(60384),g=a.r(8018),h=a.r(60312),i=a.r(96556),j=a.r(50640),k=a.r(13091);function l(){let a="draftMode",b=e.workAsyncStorage.getStore(),c=d.workUnitAsyncStorage.getStore();switch((!b||!c)&&(0,d.throwForMissingRequestStore)(a),c.type){case"prerender-runtime":return(0,k.delayUntilRuntimeStage)(c,m(c.draftMode,b));case"request":return m(c.draftMode,b);case"cache":case"private-cache":case"unstable-cache":let f=(0,d.getDraftModeProviderForCacheScope)(b,c);if(f)return m(f,b);case"prerender":case"prerender-ppr":case"prerender-legacy":return m(null,b);case"prerender-client":case"validation-client":{let a="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${a} must not be used within a Client Component. Next.js should be preventing ${a} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0})}case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`${a}()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1132",enumerable:!1,configurable:!0});default:return c}}function m(a,b){let c=o.get(a??n);return c||Promise.resolve(new p(a))}a.r(51409);let n={},o=new WeakMap;class p{constructor(a){this._provider=a}get isEnabled(){return null!==this._provider&&this._provider.isEnabled}enable(){q("draftMode().enable()",this.enable),null!==this._provider&&this._provider.enable()}disable(){q("draftMode().disable()",this.disable),null!==this._provider&&this._provider.disable()}}function q(a,b){let c=e.workAsyncStorage.getStore(),g=d.workUnitAsyncStorage.getStore();if(c){if((null==g?void 0:g.phase)==="after")throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside \`after()\`. The enabled status of \`draftMode()\` can be read inside \`after()\` but you cannot enable or disable \`draftMode()\`. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E845",enumerable:!1,configurable:!0});if(c.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${c.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(g)switch(g.type){case"cache":case"private-cache":{let d=Object.defineProperty(Error(`Route ${c.route} used "${a}" inside "use cache". The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E829",enumerable:!1,configurable:!0});throw Error.captureStackTrace(d,b),c.invalidDynamicUsageError??=d,d}case"unstable-cache":throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside a function cached with \`unstable_cache()\`. The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E844",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":{let b=Object.defineProperty(Error(`Route ${c.route} used ${a} without first calling \`await connection()\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`),"__NEXT_ERROR_CODE",{value:"E126",enumerable:!1,configurable:!0});return(0,f.abortAndThrowOnSynchronousRequestDataAccess)(c.route,a,b,g)}case"prerender-client":case"validation-client":let d="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${d} must not be used within a Client Component. Next.js should be preventing ${d} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,f.postponeWithTracking)(c.route,a,g.dynamicTracking);case"prerender-legacy":g.revalidate=0;let e=Object.defineProperty(new i.DynamicServerError(`Route ${c.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.dynamicUsageDescription=a,c.dynamicUsageStack=e.stack,e;case"request":(0,f.trackDynamicDataInDynamicRender)(g);break;case"generate-static-params":throw Object.defineProperty(Error(`Route ${c.route} used \`${a}\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1121",enumerable:!1,configurable:!0})}}}(0,g.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`draftMode()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E835",enumerable:!1,configurable:!0})})},5246,(a,b,c)=>{b.exports.cookies=a.r(81740).cookies,b.exports.headers=a.r(35754).headers,b.exports.draftMode=a.r(51125).draftMode},45017,a=>{"use strict";a.s(["Sidebar",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/sidebar.tsx <module evaluation>","Sidebar")},10398,a=>{"use strict";a.s(["Sidebar",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/sidebar.tsx","Sidebar")},23604,a=>{"use strict";a.i(45017);var b=a.i(10398);a.n(b)},59969,a=>{"use strict";a.s(["LiveRefresher",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveRefresher() from the server but LiveRefresher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-refresher.tsx <module evaluation>","LiveRefresher")},11272,a=>{"use strict";a.s(["LiveRefresher",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveRefresher() from the server but LiveRefresher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-refresher.tsx","LiveRefresher")},30642,a=>{"use strict";a.i(59969);var b=a.i(11272);a.n(b)},99153,a=>{"use strict";a.s(["LiveSessionsWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveSessionsWidget() from the server but LiveSessionsWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-sessions-widget.tsx <module evaluation>","LiveSessionsWidget")},62615,a=>{"use strict";a.s(["LiveSessionsWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveSessionsWidget() from the server but LiveSessionsWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-sessions-widget.tsx","LiveSessionsWidget")},9647,a=>{"use strict";a.i(99153);var b=a.i(62615);a.n(b)},14022,a=>{"use strict";a.s(["JobQueueWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call JobQueueWidget() from the server but JobQueueWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/job-queue-widget.tsx <module evaluation>","JobQueueWidget")},5900,a=>{"use strict";a.s(["JobQueueWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call JobQueueWidget() from the server but JobQueueWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/job-queue-widget.tsx","JobQueueWidget")},84829,a=>{"use strict";a.i(14022);var b=a.i(5900);a.n(b)},73842,a=>{"use strict";a.s(["MenubarInstallBanner",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call MenubarInstallBanner() from the server but MenubarInstallBanner is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/menubar-install-banner.tsx <module evaluation>","MenubarInstallBanner")},46147,a=>{"use strict";a.s(["MenubarInstallBanner",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call MenubarInstallBanner() from the server but MenubarInstallBanner is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/menubar-install-banner.tsx","MenubarInstallBanner")},73994,a=>{"use strict";a.i(73842);var b=a.i(46147);a.n(b)},28992,a=>{"use strict";var b=a.i(7997),c=a.i(5246),d=a.i(23604),e=a.i(30642),f=a.i(9647),g=a.i(84829),h=a.i(73994);a.i(9117);var i=a.i(48024),j=a.i(67116),k=a.i(70709),l=a.i(60511),m=a.i(76597),n=a.i(40095);async function o({children:a}){let p=await (0,c.headers)();if((p.get("x-fleetlens-pathname")??"").startsWith("/print/")){let d=p.get("x-fleetlens-theme"),e=await (0,c.cookies)(),f=e.get("claude-lens-theme")?.value;return(0,b.jsx)("html",{lang:"en","data-theme":"light"===d||"dark"===d?d:"light"===f||"dark"===f?f:"dark",suppressHydrationWarning:!0,children:(0,b.jsx)("body",{children:a})})}let[q,r]=await Promise.all([(0,j.listSessions)(),(0,m.buildEntriesIndex)()]),s=q.slice(0,20),t=q.length,u=(0,i.groupByProject)(q).map(a=>({projectDir:a.projectDir,projectName:a.projectName,sessionCount:a.sessions.length,lastActiveMs:a.lastActiveMs,worktreeCount:a.worktreeCount})),v=(0,k.latestUsageSnapshot)(),w=(0,l.readTeamConnection)(),x=s.map(a=>({id:a.id,projectName:a.projectName,firstUserPreview:a.firstUserPreview,lastUserPreview:a.lastUserPreview,lastAgentPreview:a.lastAgentPreview,firstTimestamp:a.firstTimestamp,lastTimestamp:a.lastTimestamp,lastActivityMs:a.lastActivityMs,teamName:a.teamName,agentName:a.agentName,agent:a.agent})),y={};for(let a of s){let b=r.bySession.get(a.id)??[];if(0===b.length)continue;let c=b[b.length-1];y[a.id]={outcome:c.enrichment.outcome??null,enrichmentStatus:c.enrichment.status,localDay:c.local_day}}let z=await (0,c.cookies)(),A=z.get("claude-lens-theme")?.value;return(0,b.jsx)("html",{lang:"en","data-theme":"light"===A||"dark"===A?A:"dark",suppressHydrationWarning:!0,children:(0,b.jsxs)("body",{children:[(0,b.jsx)(e.LiveRefresher,{}),(0,b.jsxs)("div",{style:{display:"flex",height:"100vh"},children:[(0,b.jsx)(d.Sidebar,{projects:u,totalSessions:t,currentUsage:v,version:"0.16.7",latestChangelogVersion:n.LATEST_VERSION,teamConnection:w}),(0,b.jsxs)("main",{style:{flex:1,minWidth:0,minHeight:0,padding:0,overflow:"auto"},children:[(0,b.jsx)(h.MenubarInstallBanner,{}),a]})]}),(0,b.jsx)(f.LiveSessionsWidget,{sessions:x,entrySummaries:y}),(0,b.jsx)(g.JobQueueWidget,{})]})})}a.s(["default",0,o,"dynamic",0,"force-dynamic","metadata",0,{title:"Fleetlens",description:"Multi-agent fleet analytics — local-only dashboard for Claude Code, Codex, and other coding-agent sessions."}],28992)},44665,a=>{a.n(a.i(28992))}];
2
2
 
3
3
  //# sourceMappingURL=_0k8yioi._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[50640,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},64240,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},60511,a=>{"use strict";var b=a.i(2157),c=a.i(50227),d=a.i(23895),e=a.i(43847);a.s(["readTeamConnection",0,function(){let a=(0,e.readTeamConfig)();if(!a)return{paired:!1};let f=function(){let a=(0,c.join)((0,d.cclensHome)(),"team-last-push.json");if(!(0,b.existsSync)(a))return null;try{return JSON.parse((0,b.readFileSync)(a,"utf8"))}catch{return null}}(),g=f?f.ok?{kind:"ok",at:f.pushedAt,payload:f.payload}:{kind:"error",at:f.pushedAt,error:f.error??"Unknown error",payload:f.payload}:{kind:"none"};return{paired:!0,team:{name:a.teamName??a.teamSlug,slug:a.teamSlug,serverUrl:a.serverUrl},member:{role:null,pairedAt:a.pairedAt},lastPush:g,health:function(a,b=Date.now()){if("none"===a.kind)return"amber";if("error"===a.kind)return"red";let c=b-Date.parse(a.at);return Number.isNaN(c)||c>36e5?"red":c>9e5?"amber":"green"}(g)}}],60511)},70709,a=>{"use strict";var b=a.i(717),c=a.i(2157),d=a.i(23895);let e=(0,b.cache)(()=>{let a=process.env.CCLENS_USAGE_LOG||(0,d.cclensPath)("usage.jsonl");if(!(0,c.existsSync)(a))return[];let b=(0,c.readFileSync)(a,"utf8"),e=[];for(let a of b.split("\n"))if(a.trim())try{e.push(JSON.parse(a))}catch{}return e}),f=(0,b.cache)(()=>{let a=e().filter(a=>(a.agent??"claude-code")==="claude-code");return a.length>0?a[a.length-1]:null}),g=(0,b.cache)(a=>{let b=e().filter(b=>(b.agent??"claude-code")===a);return b.length>0?b[b.length-1]:null}),h=(0,b.cache)(a=>e().filter(b=>(b.agent??"claude-code")===a)),i=(0,b.cache)(()=>{let a=process.env.CCLENS_PROFILE_CACHE||(0,d.cclensPath)("profile.json");if(!(0,c.existsSync)(a))return null;try{let b=JSON.parse((0,c.readFileSync)(a,"utf8"));if(!b.profile?.planTier)return null;return{planTier:b.profile.planTier,rateLimitTier:b.profile.rateLimitTier??null,organizationType:b.profile.organizationType??null,fetchedAtMs:"number"==typeof b.fetchedAtMs?b.fetchedAtMs:0}}catch{return null}});a.s(["PLAN_TIER_LABELS",0,{pro:{label:"Claude Pro",monthlyPriceUsd:20},"pro-max":{label:"Claude Pro Max",monthlyPriceUsd:100},"pro-max-20x":{label:"Claude Pro Max 20x",monthlyPriceUsd:200},custom:{label:"Custom plan",monthlyPriceUsd:0}},"latestUsageSnapshot",0,f,"latestUsageSnapshotByAgent",0,g,"readCachedPlanTier",0,i,"readUsageSnapshots",0,e,"readUsageSnapshotsByAgent",0,h])}];
2
+
3
+ //# sourceMappingURL=_0sz8~hl._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[43296,a=>{"use strict";a.s(["UsageChartsDashboard",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call UsageChartsDashboard() from the server but UsageChartsDashboard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/usage-charts-dashboard.tsx <module evaluation>","UsageChartsDashboard")},51071,a=>{"use strict";a.s(["UsageChartsDashboard",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call UsageChartsDashboard() from the server but UsageChartsDashboard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/usage-charts-dashboard.tsx","UsageChartsDashboard")},90268,a=>{"use strict";a.i(43296);var b=a.i(51071);a.n(b)},28664,a=>{"use strict";var b=a.i(7997),c=a.i(74091),d=a.i(95936),e=a.i(70709),f=a.i(717),g=a.i(2157),h=a.i(23895);let i=(0,h.cclensPath)("profile.json"),j="pro-max-20x",k=(0,f.cache)(async()=>{let a=function(){if(!(0,g.existsSync)(i))return j;try{let a=JSON.parse((0,g.readFileSync)(i,"utf8")),b=a?.profile?.planTier;if("pro"===b||"pro-max"===b||"pro-max-20x"===b||"custom"===b)return b}catch{}return j}(),b=await (0,h.loadCalibrationCurve)(a);return b?{curve:b.curve,rate_per_pct:b.rate_per_pct,rate_per_pct_5h:b.rate_per_pct_5h,rate_per_pct_7d:b.rate_per_pct_7d,rate_source_5h:b.rate_source_5h,rate_source_7d:b.rate_source_7d,cycles_used_5h:b.cycles_used_5h,cycles_used_7d:b.cycles_used_7d,tier:b.tier}:null});var l=a.i(90268);let m={"5h":18e6,"7d":6048e5};function n({windowLabel:a,cycles:c}){return 0===c.length?null:(0,b.jsxs)("section",{style:{border:"1px solid var(--af-border-subtle)",borderRadius:8,padding:"12px 16px",display:"flex",flexDirection:"column",gap:10},children:[(0,b.jsxs)("header",{style:{display:"flex",alignItems:"baseline",gap:10,flexWrap:"wrap"},children:[(0,b.jsxs)("h2",{style:{fontSize:13,margin:0,fontWeight:700},children:["Previous ",a," cycles"]}),(0,b.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)"},children:"peak utilization · oldest → newest"}),(0,b.jsx)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--af-text-tertiary)"},children:function(a){let b=a.filter(a=>!a.current);if(b.length<2)return"";let c=b[b.length-1].peakPct-b[b.length-2].peakPct;return 5>Math.abs(c)?`flat vs prior (${c>=0?"+":""}${c.toFixed(0)}pp)`:c>0?`↑ up ${c.toFixed(0)}pp from prior`:`↓ down ${Math.abs(c).toFixed(0)}pp from prior`}(c)})]}),(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:`repeat(${c.length}, minmax(0, 1fr))`,gap:8,alignItems:"end"},children:c.map((c,d)=>(0,b.jsx)(o,{cycle:c,windowLabel:a},d))})]})}function o({cycle:a,windowLabel:c}){let d=Math.max(0,Math.min(100,a.peakPct)),e=Math.max(0,a.peakPct),f=function(a){switch(a){case"success":return"var(--af-success)";case"warning":return"#b58400";case"danger":return"var(--af-danger)"}}(a.current?function(a,b,c,d=Date.now()){var e;return((e=100*Math.max(0,Math.min(1,(d-(b-c))/c))-a)<-15?{tone:"danger",label:"may exhaust early"}:e>15?{tone:"warning",label:"below pace"}:{tone:"success",label:"on pace"}).tone}(d,new Date(a.endsAt).getTime(),m[c]):d>=70?"success":d>=40?"warning":"danger"),g=new Date(a.endsAt),h=a.current?`ends ${g.toLocaleDateString(void 0,{month:"short",day:"numeric"})}`:g.toLocaleDateString(void 0,{month:"short",day:"numeric"});return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"stretch",gap:4},title:`${a.current?"Current cycle ends":"Cycle ended"} ${g.toLocaleString()}${"predicted"===a.source?" · estimated from JSONL":" · measured from daemon"}`,children:[(0,b.jsxs)("div",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:f,fontWeight:700,textAlign:"right",fontVariantNumeric:"tabular-nums"},children:[e.toFixed(0),"%"]}),(0,b.jsx)("div",{style:{height:80,display:"flex",flexDirection:"column",justifyContent:"flex-end",background:"var(--af-border-subtle)",borderRadius:4,opacity:a.current?.85:1,border:a.current?`1px dashed ${f}`:"none"},children:(0,b.jsx)("div",{style:{height:`${d}%`,background:f,borderRadius:4,opacity:"predicted"===a.source?.55:1,backgroundImage:"predicted"===a.source?"repeating-linear-gradient(45deg, transparent 0 4px, rgba(0,0,0,0.08) 4px 8px)":void 0}})}),(0,b.jsxs)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",textAlign:"center",fontFamily:"var(--font-mono)",letterSpacing:"0.02em"},children:[h,"predicted"===a.source&&(0,b.jsxs)(b.Fragment,{children:[" ",(0,b.jsx)("span",{style:{color:"#b58400"},children:"·est"})]})]})]})}a.i(9117);var p=a.i(30375);function q(a){return(0,p.getAgentMetadata)(a)?.displayName??a}function r(a){return(0,p.getAgentMetadata)(a)?.accentColor??"var(--af-text-tertiary)"}async function s({searchParams:a}){var d;let f=await a,g=(0,e.readUsageSnapshots)(),h=new Set;for(let a of g){let b=a.agent??"claude-code";h.add(b)}h.add("claude-code"),(0,p.getAgentMetadata)("grok")&&h.add("grok");let i=(0,p.isAgentKind)(f.agent)?f.agent:void 0,j=i&&h.has(i)?i:h.has("claude-code")?"claude-code":Array.from(h)[0],m=(0,e.readUsageSnapshotsByAgent)(j),o=(0,e.latestUsageSnapshotByAgent)(j),r="claude-code"===j?(0,e.readCachedPlanTier)():null,x="claude-code"===j?await k():null,y=x?(d=x)?{five_hour:d.curve.filter(a=>Number.isFinite(a.pred_5h)).map(a=>({capturedAt:new Date(a.ts).getTime(),util:Math.max(0,a.pred_5h)})),seven_day:d.curve.filter(a=>Number.isFinite(a.pred_7d)).map(a=>({capturedAt:new Date(a.ts).getTime(),util:Math.max(0,a.pred_7d)})),seven_day_sonnet:[]}:{five_hour:[],seven_day:[],seven_day_sonnet:[]}:null,z=x?function(a,b=6,c=Date.now()){if(!a||a.curve.length<2)return[];let d="real_7d",e=new Map;for(let b of a.curve){let a=b.cycle_end_7d;if(!a)continue;let c=Date.parse(a);if(Number.isNaN(c))continue;let d=36e5*Math.round(c/36e5),f=e.get(d)??[];f.push(b),e.set(d,f)}let f=function(a){let b=[];for(let[c,d]of Array.from(a.entries()).sort((a,b)=>a[0]-b[0])){let a=b[b.length-1];a&&c-a.endMs<=432e5?(a.endMs=c,a.points.push(...d)):b.push({endMs:c,points:[...d]})}return b}(e),g=[];for(let{endMs:a,points:b}of f){let e=a>c,f=e?function(a,b){if(a.length<2)return a;let c=[...a].sort((a,b)=>Date.parse(a.ts)-Date.parse(b.ts)),d=0;for(let a=1;a<c.length;a++){let e=c[a-1][b],f=c[a][b];"number"==typeof e&&"number"==typeof f&&e-f>=30&&(d=a)}return 0===d?c:c.slice(d)}(b,d):b,h=0,i="predicted";for(let a of f){let b=a[d];"number"==typeof b&&b>h&&(h=b,i="real");let c=Math.min(a.pred_7d??0,100);c>h&&(h=c,i="predicted")}g.push({endsAt:new Date(a).toISOString(),peakPct:Math.round(10*h)/10,source:i,current:e})}return g.slice(-b)}(x,12):[],A="grok"===j,B="codex"===j&&o?.five_hour?.utilization==null;return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:18,maxWidth:1400,padding:"20px 32px"},children:[(0,b.jsxs)("header",{style:{display:"flex",alignItems:"baseline",gap:14,flexWrap:"wrap"},children:[(0,b.jsxs)("h1",{style:{fontSize:20,fontWeight:700,letterSpacing:"-0.02em",margin:0,display:"flex",alignItems:"center",gap:8},children:[(0,b.jsx)(c.Activity,{size:18}),"Usage history"]}),(0,b.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)"},children:"historical plan utilization · current usage in sidebar"}),r&&"claude-code"===j&&(0,b.jsxs)("span",{style:{marginLeft:"auto",display:"inline-flex",alignItems:"center",gap:8,fontSize:12,padding:"4px 10px",border:"1px solid var(--af-border-subtle)",borderRadius:999,fontFamily:"var(--font-mono)"},title:r.rateLimitTier?`Anthropic rate_limit_tier: ${r.rateLimitTier}`:void 0,children:[(0,b.jsx)("span",{style:{color:"var(--af-text-tertiary)"},children:"plan"}),(0,b.jsx)("span",{style:{color:"var(--af-text)",fontWeight:600},children:e.PLAN_TIER_LABELS[r.planTier].label}),e.PLAN_TIER_LABELS[r.planTier].monthlyPriceUsd>0&&(0,b.jsxs)("span",{style:{color:"var(--af-text-tertiary)"},children:["· $",e.PLAN_TIER_LABELS[r.planTier].monthlyPriceUsd,"/mo"]})]}),"codex"===j&&o?.plan_type&&(0,b.jsxs)("span",{style:{marginLeft:"auto",display:"inline-flex",alignItems:"center",gap:8,fontSize:12,padding:"4px 10px",border:"1px solid var(--af-border-subtle)",borderRadius:999,fontFamily:"var(--font-mono)"},children:[(0,b.jsx)("span",{style:{color:"var(--af-text-tertiary)"},children:"plan"}),(0,b.jsxs)("span",{style:{color:"var(--af-text)",fontWeight:600},children:["Codex ",o.plan_type]})]}),"zai"===j&&o?.plan_type&&(0,b.jsxs)("span",{style:{marginLeft:"auto",display:"inline-flex",alignItems:"center",gap:8,fontSize:12,padding:"4px 10px",border:"1px solid var(--af-border-subtle)",borderRadius:999,fontFamily:"var(--font-mono)"},children:[(0,b.jsx)("span",{style:{color:"var(--af-text-tertiary)"},children:"plan"}),(0,b.jsx)("span",{style:{color:"var(--af-text)",fontWeight:600},children:o.plan_type})]})]}),(0,b.jsx)(u,{agents:Array.from(h),selected:j}),B&&(0,b.jsxs)("div",{className:"af-card",style:{padding:"12px 16px",fontSize:12,color:"var(--af-text-secondary)"},children:[(0,b.jsx)("strong",{style:{color:"var(--af-text)"},children:"Codex 5-hour limit removed."})," ","This account is reporting a single 7-day usage window, so Fleetlens hides the retired 5-hour meter."]}),o?(0,b.jsxs)(b.Fragment,{children:[A&&o.seven_day?.utilization!=null&&(0,b.jsx)(v,{utilization:o.seven_day.utilization,resetsAt:o.seven_day.resets_at,planType:o.plan_type}),z.length>0&&(0,b.jsx)(n,{windowLabel:"7d",cycles:z}),(0,b.jsx)(l.UsageChartsDashboard,{snapshots:m,predicted:y??void 0,windows:A?[{key:"seven_day",label:"7d utilization (weekly pool)",windowMs:6048e5,colorVar:"var(--af-accent)"}]:B?[{key:"seven_day",label:"7d utilization (current limit)",windowMs:6048e5,colorVar:"var(--af-accent)"}]:void 0,hideSonnet:A||"codex"===j}),"zai"===j&&o?.web_search_quota&&(0,b.jsx)(t,{quota:o.web_search_quota}),(0,b.jsxs)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},suppressHydrationWarning:!0,children:["Last ",q(j)," poll: ",new Date(o.captured_at).toLocaleString()," ·"," ",m.length," snapshot",1===m.length?"":"s"," on disk",A?" · weekly shared-pool % (no 5h window)":"",B?" · weekly-only Codex limit":""]})]}):(0,b.jsx)(w,{agent:j})]})}function t({quota:a}){let c=a.used??0;return(0,b.jsxs)("div",{className:"af-card",style:{padding:"16px 18px"},children:[(0,b.jsx)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:600},children:"Monthly web search"}),(0,b.jsxs)("div",{style:{fontSize:28,fontWeight:700,marginTop:8,letterSpacing:"-0.02em",lineHeight:1.1,fontVariantNumeric:"tabular-nums"},children:[Math.round(c),"%"]}),(0,b.jsx)("div",{style:{marginTop:10,height:6,width:"100%",background:"var(--af-border-subtle)",borderRadius:999,overflow:"hidden"},children:(0,b.jsx)("div",{style:{height:"100%",width:`${Math.min(100,c)}%`,background:"rgb(59, 130, 246)",borderRadius:999,transition:"width 0.24s ease"}})})]})}function u({agents:a,selected:c}){let e=[...a].sort((a,b)=>"claude-code"===a?-1:"claude-code"===b?1:a.localeCompare(b));return(0,b.jsx)("div",{role:"tablist",style:{display:"inline-flex",gap:4,padding:4,background:"var(--af-border-subtle)",borderRadius:8,alignSelf:"flex-start"},children:e.map(a=>{let e=a===c;return(0,b.jsxs)(d.default,{role:"tab","aria-selected":e,href:`/usage?agent=${a}`,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 14px",borderRadius:6,fontSize:12,fontWeight:600,letterSpacing:"0.01em",color:e?"var(--af-text)":"var(--af-text-tertiary)",background:e?"var(--af-surface)":"transparent",boxShadow:e?"0 1px 2px rgba(0,0,0,0.06)":"none",textDecoration:"none",transition:"all 0.12s ease"},children:[(0,b.jsx)("span",{style:{display:"inline-block",width:8,height:8,borderRadius:999,background:r(a),opacity:e?1:.6}}),q(a)]},a)})})}function v({utilization:a,resetsAt:c,planType:d}){let e=Math.round(Math.min(100,Math.max(0,a)));return(0,b.jsxs)("div",{className:"af-card",style:{padding:"16px 18px"},children:[(0,b.jsxs)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:600},children:["7-day weekly pool",d?(0,b.jsxs)("span",{style:{marginLeft:8,fontWeight:500,textTransform:"none"},children:["· ",d]}):null]}),(0,b.jsxs)("div",{style:{fontSize:28,fontWeight:700,marginTop:8,letterSpacing:"-0.02em",lineHeight:1.1,fontVariantNumeric:"tabular-nums"},children:[e,"%"]}),(0,b.jsx)("div",{style:{marginTop:10,height:8,borderRadius:999,background:"var(--af-border-subtle)",overflow:"hidden"},children:(0,b.jsx)("div",{style:{width:`${e}%`,height:"100%",borderRadius:999,background:r("grok")}})}),(0,b.jsxs)("p",{style:{fontSize:12,color:"var(--af-text-tertiary)",marginTop:10,marginBottom:0},children:["Grok unified-billing shared weekly pool (same source as the Grok CLI). There is no 5-hour window — only this 7-day limit.",c?(0,b.jsxs)(b.Fragment,{children:[" ","Resets ",new Date(c).toLocaleString(),"."]}):null]})]})}function w({agent:a}){return"grok"===a?(0,b.jsxs)("div",{className:"af-card",style:{padding:"48px 32px",textAlign:"center"},children:[(0,b.jsx)("div",{style:{fontSize:15,fontWeight:600,color:"var(--af-text)"},children:"No Grok weekly usage samples yet"}),(0,b.jsxs)("p",{style:{fontSize:12,color:"var(--af-text-tertiary)",marginTop:8,maxWidth:440,marginLeft:"auto",marginRight:"auto",lineHeight:1.5},children:["The daemon polls Grok's weekly shared-pool % (via the same billing API as the Grok CLI). Run ",(0,b.jsx)("code",{style:{fontSize:11},children:"grok login"})," if needed, then start the daemon."]}),(0,b.jsxs)("div",{style:{display:"flex",gap:10,justifyContent:"center",marginTop:16,flexWrap:"wrap"},children:[(0,b.jsx)("pre",{style:{display:"inline-block",background:"var(--background)",border:"1px solid var(--af-border-subtle)",padding:"8px 16px",borderRadius:6,fontSize:13,fontFamily:"var(--font-mono)",color:"var(--af-text)",margin:0},children:"fleetlens daemon start"}),(0,b.jsx)(d.default,{href:"/sessions?agent=grok",className:"af-btn af-btn-primary",style:{display:"inline-flex",alignItems:"center",fontSize:12,padding:"6px 14px"},children:"View Grok sessions"})]})]}):(0,b.jsxs)("div",{className:"af-card",style:{padding:"48px 32px",textAlign:"center"},children:[(0,b.jsxs)("div",{style:{fontSize:15,fontWeight:600,color:"var(--af-text)"},children:["No ",q(a)," usage data yet"]}),(0,b.jsx)("p",{style:{fontSize:12,color:"var(--af-text-tertiary)",marginTop:8},children:"claude-code"===a?"Start the polling daemon to begin collecting metrics every 5 minutes:":"zai"===a?"Save a Z.ai API key in Settings; the daemon (or a settings save) writes utilization snapshots here.":"The daemon picks up this agent's rate-limit windows from disk on every poll cycle. Run a session and the data will appear here within minutes."}),"claude-code"===a&&(0,b.jsx)("pre",{style:{display:"inline-block",marginTop:14,background:"var(--background)",border:"1px solid var(--af-border-subtle)",padding:"8px 16px",borderRadius:6,fontSize:13,fontFamily:"var(--font-mono)",color:"var(--af-text)"},children:"fleetlens daemon start"})]})}a.s(["default",0,s,"dynamic",0,"force-dynamic"],28664)},51443,a=>{a.n(a.i(28664))}];
1
+ module.exports=[43296,a=>{"use strict";a.s(["UsageChartsDashboard",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call UsageChartsDashboard() from the server but UsageChartsDashboard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/usage-charts-dashboard.tsx <module evaluation>","UsageChartsDashboard")},51071,a=>{"use strict";a.s(["UsageChartsDashboard",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call UsageChartsDashboard() from the server but UsageChartsDashboard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/usage-charts-dashboard.tsx","UsageChartsDashboard")},90268,a=>{"use strict";a.i(43296);var b=a.i(51071);a.n(b)},28664,a=>{"use strict";var b=a.i(7997),c=a.i(74091),d=a.i(95936),e=a.i(70709),f=a.i(717),g=a.i(2157),h=a.i(23895);let i=(0,h.cclensPath)("profile.json"),j="pro-max-20x",k=(0,f.cache)(async()=>{let a=function(){if(!(0,g.existsSync)(i))return j;try{let a=JSON.parse((0,g.readFileSync)(i,"utf8")),b=a?.profile?.planTier;if("pro"===b||"pro-max"===b||"pro-max-20x"===b||"custom"===b)return b}catch{}return j}(),b=await (0,h.loadCalibrationCurve)(a);return b?{curve:b.curve,rate_per_pct:b.rate_per_pct,rate_per_pct_5h:b.rate_per_pct_5h,rate_per_pct_7d:b.rate_per_pct_7d,rate_source_5h:b.rate_source_5h,rate_source_7d:b.rate_source_7d,cycles_used_5h:b.cycles_used_5h,cycles_used_7d:b.cycles_used_7d,tier:b.tier}:null});var l=a.i(90268);let m={"5h":18e6,"7d":6048e5};function n({windowLabel:a,cycles:c}){return 0===c.length?null:(0,b.jsxs)("section",{style:{border:"1px solid var(--af-border-subtle)",borderRadius:8,padding:"12px 16px",display:"flex",flexDirection:"column",gap:10},children:[(0,b.jsxs)("header",{style:{display:"flex",alignItems:"baseline",gap:10,flexWrap:"wrap"},children:[(0,b.jsxs)("h2",{style:{fontSize:13,margin:0,fontWeight:700},children:["Previous ",a," cycles"]}),(0,b.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)"},children:"peak utilization · oldest → newest"}),(0,b.jsx)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--af-text-tertiary)"},children:function(a){let b=a.filter(a=>!a.current);if(b.length<2)return"";let c=b[b.length-1].peakPct-b[b.length-2].peakPct;return 5>Math.abs(c)?`flat vs prior (${c>=0?"+":""}${c.toFixed(0)}pp)`:c>0?`↑ up ${c.toFixed(0)}pp from prior`:`↓ down ${Math.abs(c).toFixed(0)}pp from prior`}(c)})]}),(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:`repeat(${c.length}, minmax(0, 1fr))`,gap:8,alignItems:"end"},children:c.map((c,d)=>(0,b.jsx)(o,{cycle:c,windowLabel:a},d))})]})}function o({cycle:a,windowLabel:c}){let d=Math.max(0,Math.min(100,a.peakPct)),e=Math.max(0,a.peakPct),f=function(a){switch(a){case"success":return"var(--af-success)";case"warning":return"#b58400";case"danger":return"var(--af-danger)"}}(a.current?function(a,b,c,d=Date.now()){var e;return((e=100*Math.max(0,Math.min(1,(d-(b-c))/c))-a)<-15?{tone:"danger",label:"may exhaust early"}:e>15?{tone:"warning",label:"below pace"}:{tone:"success",label:"on pace"}).tone}(d,new Date(a.endsAt).getTime(),m[c]):d>=70?"success":d>=40?"warning":"danger"),g=new Date(a.endsAt),h=a.current?`ends ${g.toLocaleDateString(void 0,{month:"short",day:"numeric"})}`:g.toLocaleDateString(void 0,{month:"short",day:"numeric"});return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"stretch",gap:4},title:`${a.current?"Current cycle ends":"Cycle ended"} ${g.toLocaleString()}${"predicted"===a.source?" · estimated from JSONL":" · measured from daemon"}`,children:[(0,b.jsxs)("div",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:f,fontWeight:700,textAlign:"right",fontVariantNumeric:"tabular-nums"},children:[e.toFixed(0),"%"]}),(0,b.jsx)("div",{style:{height:80,display:"flex",flexDirection:"column",justifyContent:"flex-end",background:"var(--af-border-subtle)",borderRadius:4,opacity:a.current?.85:1,border:a.current?`1px dashed ${f}`:"none"},children:(0,b.jsx)("div",{style:{height:`${d}%`,background:f,borderRadius:4,opacity:"predicted"===a.source?.55:1,backgroundImage:"predicted"===a.source?"repeating-linear-gradient(45deg, transparent 0 4px, rgba(0,0,0,0.08) 4px 8px)":void 0}})}),(0,b.jsxs)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",textAlign:"center",fontFamily:"var(--font-mono)",letterSpacing:"0.02em"},children:[h,"predicted"===a.source&&(0,b.jsxs)(b.Fragment,{children:[" ",(0,b.jsx)("span",{style:{color:"#b58400"},children:"·est"})]})]})]})}a.i(9117);var p=a.i(30375);function q(a){return(0,p.getAgentMetadata)(a)?.displayName??a}function r(a){return(0,p.getAgentMetadata)(a)?.accentColor??"var(--af-text-tertiary)"}async function s({searchParams:a}){var d;let f=await a,g=(0,e.readUsageSnapshots)(),h=new Set;for(let a of g){let b=a.agent??"claude-code";h.add(b)}h.add("claude-code"),(0,p.getAgentMetadata)("grok")&&h.add("grok"),(0,p.getAgentMetadata)("copilot")&&h.add("copilot");let i=(0,p.isAgentKind)(f.agent)?f.agent:void 0,j=i&&h.has(i)?i:h.has("claude-code")?"claude-code":Array.from(h)[0],m=(0,e.readUsageSnapshotsByAgent)(j),o=(0,e.latestUsageSnapshotByAgent)(j),y="claude-code"===j?(0,e.readCachedPlanTier)():null,z="claude-code"===j?await k():null,A=z?(d=z)?{five_hour:d.curve.filter(a=>Number.isFinite(a.pred_5h)).map(a=>({capturedAt:new Date(a.ts).getTime(),util:Math.max(0,a.pred_5h)})),seven_day:d.curve.filter(a=>Number.isFinite(a.pred_7d)).map(a=>({capturedAt:new Date(a.ts).getTime(),util:Math.max(0,a.pred_7d)})),seven_day_sonnet:[]}:{five_hour:[],seven_day:[],seven_day_sonnet:[]}:null,B=z?function(a,b=6,c=Date.now()){if(!a||a.curve.length<2)return[];let d="real_7d",e=new Map;for(let b of a.curve){let a=b.cycle_end_7d;if(!a)continue;let c=Date.parse(a);if(Number.isNaN(c))continue;let d=36e5*Math.round(c/36e5),f=e.get(d)??[];f.push(b),e.set(d,f)}let f=function(a){let b=[];for(let[c,d]of Array.from(a.entries()).sort((a,b)=>a[0]-b[0])){let a=b[b.length-1];a&&c-a.endMs<=432e5?(a.endMs=c,a.points.push(...d)):b.push({endMs:c,points:[...d]})}return b}(e),g=[];for(let{endMs:a,points:b}of f){let e=a>c,f=e?function(a,b){if(a.length<2)return a;let c=[...a].sort((a,b)=>Date.parse(a.ts)-Date.parse(b.ts)),d=0;for(let a=1;a<c.length;a++){let e=c[a-1][b],f=c[a][b];"number"==typeof e&&"number"==typeof f&&e-f>=30&&(d=a)}return 0===d?c:c.slice(d)}(b,d):b,h=0,i="predicted";for(let a of f){let b=a[d];"number"==typeof b&&b>h&&(h=b,i="real");let c=Math.min(a.pred_7d??0,100);c>h&&(h=c,i="predicted")}g.push({endsAt:new Date(a).toISOString(),peakPct:Math.round(10*h)/10,source:i,current:e})}return g.slice(-b)}(z,12):[],C="grok"===j,D="copilot"===j,E="codex"===j&&o?.five_hour?.utilization==null;return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:18,maxWidth:1400,padding:"20px 32px"},children:[(0,b.jsxs)("header",{style:{display:"flex",alignItems:"baseline",gap:14,flexWrap:"wrap"},children:[(0,b.jsxs)("h1",{style:{fontSize:20,fontWeight:700,letterSpacing:"-0.02em",margin:0,display:"flex",alignItems:"center",gap:8},children:[(0,b.jsx)(c.Activity,{size:18}),"Usage history"]}),(0,b.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)"},children:"historical plan utilization · current usage in sidebar"}),y&&"claude-code"===j&&(0,b.jsxs)("span",{style:{marginLeft:"auto",display:"inline-flex",alignItems:"center",gap:8,fontSize:12,padding:"4px 10px",border:"1px solid var(--af-border-subtle)",borderRadius:999,fontFamily:"var(--font-mono)"},title:y.rateLimitTier?`Anthropic rate_limit_tier: ${y.rateLimitTier}`:void 0,children:[(0,b.jsx)("span",{style:{color:"var(--af-text-tertiary)"},children:"plan"}),(0,b.jsx)("span",{style:{color:"var(--af-text)",fontWeight:600},children:e.PLAN_TIER_LABELS[y.planTier].label}),e.PLAN_TIER_LABELS[y.planTier].monthlyPriceUsd>0&&(0,b.jsxs)("span",{style:{color:"var(--af-text-tertiary)"},children:["· $",e.PLAN_TIER_LABELS[y.planTier].monthlyPriceUsd,"/mo"]})]}),"codex"===j&&o?.plan_type&&(0,b.jsxs)("span",{style:{marginLeft:"auto",display:"inline-flex",alignItems:"center",gap:8,fontSize:12,padding:"4px 10px",border:"1px solid var(--af-border-subtle)",borderRadius:999,fontFamily:"var(--font-mono)"},children:[(0,b.jsx)("span",{style:{color:"var(--af-text-tertiary)"},children:"plan"}),(0,b.jsxs)("span",{style:{color:"var(--af-text)",fontWeight:600},children:["Codex ",o.plan_type]})]}),D&&o?.plan_type&&(0,b.jsxs)("span",{style:{marginLeft:"auto",display:"inline-flex",alignItems:"center",gap:8,fontSize:12,padding:"4px 10px",border:"1px solid var(--af-border-subtle)",borderRadius:999,fontFamily:"var(--font-mono)"},children:[(0,b.jsx)("span",{style:{color:"var(--af-text-tertiary)"},children:"allowance"}),(0,b.jsxs)("span",{style:{color:"var(--af-text)",fontWeight:600},children:["GitHub Copilot · ",o.plan_type]})]}),"zai"===j&&o?.plan_type&&(0,b.jsxs)("span",{style:{marginLeft:"auto",display:"inline-flex",alignItems:"center",gap:8,fontSize:12,padding:"4px 10px",border:"1px solid var(--af-border-subtle)",borderRadius:999,fontFamily:"var(--font-mono)"},children:[(0,b.jsx)("span",{style:{color:"var(--af-text-tertiary)"},children:"plan"}),(0,b.jsx)("span",{style:{color:"var(--af-text)",fontWeight:600},children:o.plan_type})]})]}),(0,b.jsx)(v,{agents:Array.from(h),selected:j}),E&&(0,b.jsxs)("div",{className:"af-card",style:{padding:"12px 16px",fontSize:12,color:"var(--af-text-secondary)"},children:[(0,b.jsx)("strong",{style:{color:"var(--af-text)"},children:"Codex 5-hour limit removed."})," ","This account is reporting a single 7-day usage window, so Fleetlens hides the retired 5-hour meter."]}),o?(0,b.jsxs)(b.Fragment,{children:[C&&o.seven_day?.utilization!=null&&(0,b.jsx)(w,{utilization:o.seven_day.utilization,resetsAt:o.seven_day.resets_at,planType:o.plan_type}),D&&o.monthly&&(0,b.jsx)(t,{window:o.monthly,quota:o.monthly_quota}),B.length>0&&(0,b.jsx)(n,{windowLabel:"7d",cycles:B}),(0,b.jsx)(l.UsageChartsDashboard,{snapshots:m,predicted:A??void 0,windows:C?[{key:"seven_day",label:"7d utilization (weekly pool)",windowMs:6048e5,colorVar:"var(--af-accent)"}]:D?[{key:"monthly",label:"Monthly AI-credit utilization",windowMs:2592e6,colorVar:r("copilot")}]:E?[{key:"seven_day",label:"7d utilization (current limit)",windowMs:6048e5,colorVar:"var(--af-accent)"}]:void 0,hideSonnet:C||D||"codex"===j}),"zai"===j&&o?.web_search_quota&&(0,b.jsx)(u,{quota:o.web_search_quota}),(0,b.jsxs)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},suppressHydrationWarning:!0,children:["Last ",q(j)," poll: ",new Date(o.captured_at).toLocaleString()," ·"," ",m.length," snapshot",1===m.length?"":"s"," on disk",C?" · weekly shared-pool % (no 5h window)":"",D?" · monthly AI-credit allowance (no 5h/7d windows)":"",E?" · weekly-only Codex limit":""]})]}):(0,b.jsx)(x,{agent:j})]})}function t({window:a,quota:c}){let d=a.utilization,e=c?.unit==="premium-requests"?"premium requests":"AI credits";return(0,b.jsxs)("div",{className:"af-card",style:{padding:"16px 18px"},children:[(0,b.jsxs)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:600},children:["Monthly ",e]}),(0,b.jsx)("div",{style:{fontSize:28,fontWeight:700,marginTop:8,letterSpacing:"-0.02em",lineHeight:1.1,fontVariantNumeric:"tabular-nums"},children:c?.unlimited?"Unlimited":null===d?"—":`${d.toFixed(1)}%`}),c&&!c.unlimited&&null!==c.used&&null!==c.limit&&(0,b.jsxs)("div",{style:{marginTop:6,fontSize:12,color:"var(--af-text-secondary)"},children:[c.used.toLocaleString()," of ",c.limit.toLocaleString()," ",e," used",null!==c.remaining?` \xb7 ${c.remaining.toLocaleString()} remaining`:""]}),null!==d&&(0,b.jsx)("div",{style:{marginTop:10,height:8,borderRadius:999,background:"var(--af-border-subtle)",overflow:"hidden"},children:(0,b.jsx)("div",{style:{width:`${Math.min(100,Math.max(0,d))}%`,height:"100%",borderRadius:999,background:r("copilot")}})}),(0,b.jsxs)("p",{style:{fontSize:12,color:"var(--af-text-tertiary)",marginTop:10,marginBottom:0},children:["Copilot reports a monthly allowance; it does not expose Codex-style 5-hour or 7-day windows.",a.resets_at?` Resets ${new Date(a.resets_at).toLocaleString()}.`:""]})]})}function u({quota:a}){let c=a.used??0;return(0,b.jsxs)("div",{className:"af-card",style:{padding:"16px 18px"},children:[(0,b.jsx)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:600},children:"Monthly web search"}),(0,b.jsxs)("div",{style:{fontSize:28,fontWeight:700,marginTop:8,letterSpacing:"-0.02em",lineHeight:1.1,fontVariantNumeric:"tabular-nums"},children:[Math.round(c),"%"]}),(0,b.jsx)("div",{style:{marginTop:10,height:6,width:"100%",background:"var(--af-border-subtle)",borderRadius:999,overflow:"hidden"},children:(0,b.jsx)("div",{style:{height:"100%",width:`${Math.min(100,c)}%`,background:"rgb(59, 130, 246)",borderRadius:999,transition:"width 0.24s ease"}})})]})}function v({agents:a,selected:c}){let e=[...a].sort((a,b)=>"claude-code"===a?-1:"claude-code"===b?1:a.localeCompare(b));return(0,b.jsx)("div",{role:"tablist",style:{display:"inline-flex",gap:4,padding:4,background:"var(--af-border-subtle)",borderRadius:8,alignSelf:"flex-start"},children:e.map(a=>{let e=a===c;return(0,b.jsxs)(d.default,{role:"tab","aria-selected":e,href:`/usage?agent=${a}`,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 14px",borderRadius:6,fontSize:12,fontWeight:600,letterSpacing:"0.01em",color:e?"var(--af-text)":"var(--af-text-tertiary)",background:e?"var(--af-surface)":"transparent",boxShadow:e?"0 1px 2px rgba(0,0,0,0.06)":"none",textDecoration:"none",transition:"all 0.12s ease"},children:[(0,b.jsx)("span",{style:{display:"inline-block",width:8,height:8,borderRadius:999,background:r(a),opacity:e?1:.6}}),q(a)]},a)})})}function w({utilization:a,resetsAt:c,planType:d}){let e=Math.round(Math.min(100,Math.max(0,a)));return(0,b.jsxs)("div",{className:"af-card",style:{padding:"16px 18px"},children:[(0,b.jsxs)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:600},children:["7-day weekly pool",d?(0,b.jsxs)("span",{style:{marginLeft:8,fontWeight:500,textTransform:"none"},children:["· ",d]}):null]}),(0,b.jsxs)("div",{style:{fontSize:28,fontWeight:700,marginTop:8,letterSpacing:"-0.02em",lineHeight:1.1,fontVariantNumeric:"tabular-nums"},children:[e,"%"]}),(0,b.jsx)("div",{style:{marginTop:10,height:8,borderRadius:999,background:"var(--af-border-subtle)",overflow:"hidden"},children:(0,b.jsx)("div",{style:{width:`${e}%`,height:"100%",borderRadius:999,background:r("grok")}})}),(0,b.jsxs)("p",{style:{fontSize:12,color:"var(--af-text-tertiary)",marginTop:10,marginBottom:0},children:["Grok unified-billing shared weekly pool (same source as the Grok CLI). There is no 5-hour window — only this 7-day limit.",c?(0,b.jsxs)(b.Fragment,{children:[" ","Resets ",new Date(c).toLocaleString(),"."]}):null]})]})}function x({agent:a}){return"copilot"===a?(0,b.jsxs)("div",{className:"af-card",style:{padding:"48px 32px",textAlign:"center"},children:[(0,b.jsx)("div",{style:{fontSize:15,fontWeight:600,color:"var(--af-text)"},children:"No GitHub Copilot usage samples yet"}),(0,b.jsxs)("p",{style:{fontSize:12,color:"var(--af-text-tertiary)",margin:"8px auto 0",maxWidth:520,lineHeight:1.5},children:["Run ",(0,b.jsx)("code",{style:{fontSize:11},children:"copilot login"}),", then start the Fleetlens daemon. Fleetlens reads the monthly AI-credit quota through Copilot CLI's authenticated local SDK server."]}),(0,b.jsx)("pre",{style:{display:"inline-block",marginTop:14,background:"var(--background)",border:"1px solid var(--af-border-subtle)",padding:"8px 16px",borderRadius:6,fontSize:13,fontFamily:"var(--font-mono)",color:"var(--af-text)"},children:"fleetlens daemon start"})]}):"grok"===a?(0,b.jsxs)("div",{className:"af-card",style:{padding:"48px 32px",textAlign:"center"},children:[(0,b.jsx)("div",{style:{fontSize:15,fontWeight:600,color:"var(--af-text)"},children:"No Grok weekly usage samples yet"}),(0,b.jsxs)("p",{style:{fontSize:12,color:"var(--af-text-tertiary)",marginTop:8,maxWidth:440,marginLeft:"auto",marginRight:"auto",lineHeight:1.5},children:["The daemon polls Grok's weekly shared-pool % (via the same billing API as the Grok CLI). Run ",(0,b.jsx)("code",{style:{fontSize:11},children:"grok login"})," if needed, then start the daemon."]}),(0,b.jsxs)("div",{style:{display:"flex",gap:10,justifyContent:"center",marginTop:16,flexWrap:"wrap"},children:[(0,b.jsx)("pre",{style:{display:"inline-block",background:"var(--background)",border:"1px solid var(--af-border-subtle)",padding:"8px 16px",borderRadius:6,fontSize:13,fontFamily:"var(--font-mono)",color:"var(--af-text)",margin:0},children:"fleetlens daemon start"}),(0,b.jsx)(d.default,{href:"/sessions?agent=grok",className:"af-btn af-btn-primary",style:{display:"inline-flex",alignItems:"center",fontSize:12,padding:"6px 14px"},children:"View Grok sessions"})]})]}):(0,b.jsxs)("div",{className:"af-card",style:{padding:"48px 32px",textAlign:"center"},children:[(0,b.jsxs)("div",{style:{fontSize:15,fontWeight:600,color:"var(--af-text)"},children:["No ",q(a)," usage data yet"]}),(0,b.jsx)("p",{style:{fontSize:12,color:"var(--af-text-tertiary)",marginTop:8},children:"claude-code"===a?"Start the polling daemon to begin collecting metrics every 5 minutes:":"zai"===a?"Save a Z.ai API key in Settings; the daemon (or a settings save) writes utilization snapshots here.":"The daemon picks up this agent's rate-limit windows from disk on every poll cycle. Run a session and the data will appear here within minutes."}),"claude-code"===a&&(0,b.jsx)("pre",{style:{display:"inline-block",marginTop:14,background:"var(--background)",border:"1px solid var(--af-border-subtle)",padding:"8px 16px",borderRadius:6,fontSize:13,fontFamily:"var(--font-mono)",color:"var(--af-text)"},children:"fleetlens daemon start"})]})}a.s(["default",0,s,"dynamic",0,"force-dynamic"],28664)},51443,a=>{a.n(a.i(28664))}];
2
2
 
3
3
  //# sourceMappingURL=apps_web_0epqfet._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[46522,a=>{"use strict";var b=a.i(87924),c=a.i(72131);a.s(["AiFeaturesForm",0,function({initial:a}){let[d,e]=(0,c.useState)(a.enabled),[f,g]=(0,c.useState)(a.autoBackfillLastWeek),[h,i]=(0,c.useState)(a.autoBackfillYesterday),[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(null);async function n(a){a.preventDefault(),k(!0),m(null);let b=await fetch("/api/settings",{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({ai_features:{enabled:d,autoBackfillLastWeek:f,autoBackfillYesterday:h}})});k(!1),m(b.ok?"Saved.":`Error: ${b.status}`)}return(0,b.jsxs)("form",{onSubmit:n,className:"space-y-4",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:d,onChange:a=>e(a.target.checked)}),(0,b.jsx)("span",{children:"Enable AI digests and enrichment"})]}),(0,b.jsxs)("label",{className:`flex items-start gap-2 ${d?"":"opacity-50"}`,children:[(0,b.jsx)("input",{type:"checkbox",checked:h,disabled:!d,onChange:a=>i(a.target.checked)}),(0,b.jsxs)("span",{children:["Auto-backfill yesterday's digest on daemon start",(0,b.jsx)("span",{className:"block text-xs text-gray-500 mt-0.5",children:"Generates yesterday's enriched entries and day digest. Runs once per daemon boot. Without this, yesterday's digest only appears after you load the homepage."})]})]}),(0,b.jsxs)("label",{className:`flex items-start gap-2 ${d?"":"opacity-50"}`,children:[(0,b.jsx)("input",{type:"checkbox",checked:f,disabled:!d,onChange:a=>g(a.target.checked)}),(0,b.jsxs)("span",{children:["Auto-backfill last week's narrative on daemon start",(0,b.jsx)("span",{className:"block text-xs text-gray-500 mt-0.5",children:"Generates enriched entries, day digests, and the weekly digest for the most recently completed ISO week. Runs once per ISO week."})]})]}),(0,b.jsx)("button",{type:"submit",disabled:j,className:"af-btn-primary",children:j?"Saving…":"Save"}),l&&(0,b.jsx)("p",{className:"text-sm",children:l})]})}])},36195,a=>{"use strict";var b=a.i(87924),c=a.i(72131);a.s(["AutostartToggle",0,function({initial:a}){let[d,e]=(0,c.useState)(a),[f,g]=(0,c.useState)(!1),[h,i]=(0,c.useState)(null);if(!d.supported)return(0,b.jsxs)("p",{className:"text-sm text-gray-500",children:["Auto-start uses a macOS LaunchAgent and is macOS-only for now. Add"," ",(0,b.jsx)("code",{className:"font-mono text-xs",children:"fleetlens daemon start"})," to your login items manually."]});async function j(a){g(!0),i(null);let b=await fetch("/api/team/autostart",{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({enabled:a})}),c=await b.json().catch(()=>null);(g(!1),b.ok)?e(c):i(c?.error??`Error ${b.status}`)}return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex cursor-pointer items-start gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",checked:d.installed,disabled:f,onChange:a=>void j(a.target.checked)}),(0,b.jsxs)("span",{children:["Start Fleetlens at login (dashboard + usage daemon)",(0,b.jsx)("span",{className:"mt-0.5 block text-xs text-gray-500",children:d.installed?"Enabled — the dashboard and reporting come back after a reboot.":d.optedOut?"Disabled — you opted out; joining a team won't re-enable it.":"Disabled — pairing with a team enables this automatically."})]})]}),h&&(0,b.jsx)("p",{className:"text-sm text-red-600",children:h})]})}])},43965,a=>{"use strict";var b=a.i(87924),c=a.i(72131);a.s(["MenubarInstall",0,function({initial:a}){let[d,e]=(0,c.useState)(a),[f,g]=(0,c.useState)(!1),[h,i]=(0,c.useState)(null),[j,k]=(0,c.useState)(null);if(!d.supported)return(0,b.jsx)("p",{className:"text-sm text-gray-500",children:"The menu bar widget is a native macOS app and isn't available on this platform."});async function l(a,b){g(!0),i(null),k(null);let c=await fetch("/api/menubar",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:a})}),d=await c.json().catch(()=>null);(g(!1),c.ok)?(e({supported:d.supported,installed:d.installed,running:d.running,bundled:d.bundled}),k(b)):i(d?.error??`Error ${c.status}`)}return(0,b.jsxs)("div",{className:"space-y-3",children:[!d.bundled&&(0,b.jsxs)("p",{className:"text-sm text-amber-600",children:["This build doesn't include the widget bundle. Run"," ",(0,b.jsx)("code",{className:"font-mono text-xs",children:"fleetlens menubar status"})," for details."]}),(0,b.jsx)("p",{className:"text-sm text-gray-500",children:d.installed?d.running?"Installed and running — check your menu bar.":"Installed but not running.":"Adds a live gauge to your menu bar showing Claude Code / Codex plan utilization, updated as the daemon polls."}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[!d.installed&&(0,b.jsx)("button",{type:"button",className:"af-btn af-btn-primary",disabled:f||!d.bundled,onClick:()=>void l("install","Installed — check your menu bar."),children:f?"Installing…":"Install widget"}),d.installed&&!d.running&&(0,b.jsx)("button",{type:"button",className:"af-btn af-btn-primary",disabled:f,onClick:()=>void l("open","Opened — check your menu bar."),children:f?"Opening…":"Open widget"}),d.installed&&(0,b.jsx)("button",{type:"button",className:"af-btn",disabled:f,onClick:()=>void l("uninstall","Widget removed."),children:f?"Removing…":"Uninstall"})]}),d.installed&&(0,b.jsxs)("p",{className:"text-xs text-gray-500",children:["To also launch it at login, run"," ",(0,b.jsx)("code",{className:"font-mono text-xs",children:"fleetlens menubar install"})," in your terminal."]}),j&&(0,b.jsx)("p",{className:"text-sm text-green-600",children:j}),h&&(0,b.jsx)("p",{className:"text-sm text-red-600",children:h})]})}])},70438,a=>{"use strict";var b=a.i(87924),c=a.i(72131);a.s(["ZaiCredentialsForm",0,function({initial:a}){let[d,e]=(0,c.useState)(""),[f,g]=(0,c.useState)(!1),[h,i]=(0,c.useState)(null),[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(a.zai?.configured??!1),[n,o]=(0,c.useState)(a.zai?.hint??null),[p,q]=(0,c.useState)(!1);async function r(a){a.preventDefault(),g(!0),i(null),k(!1);let b=await fetch("/api/settings/credentials",{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({api_key:d})}),c=await b.json().catch(()=>null);if(g(!1),!b.ok){k(!0),i(c?.error??`Error ${b.status}`);return}m(c.zai?.configured??!1),o(c.zai?.hint??null),e(""),q(!1),i(c.zai?.configured?"Z.ai API key saved.":"Z.ai API key removed.")}async function s(){e(""),i(null),k(!1);let a=await fetch("/api/settings/credentials",{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({api_key:""})}),b=await a.json().catch(()=>null);a.ok?(m(!1),o(null),i("Z.ai API key removed.")):(k(!0),i(b?.error??"Error removing key."))}return!p&&l?(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("p",{className:"text-sm text-gray-500",children:["Z.ai API key configured (",n,"). Used by the daemon to poll your GLM Coding Plan usage — data stays on this machine; the key is stored at ~/.cclens/credentials.json (owner-read/write only)."]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)("button",{type:"button",className:"af-btn",onClick:()=>q(!0),children:"Change key"}),(0,b.jsx)("button",{type:"button",className:"af-btn",onClick:s,children:"Remove key"})]}),h&&(0,b.jsx)("p",{className:"text-sm text-green-600",children:h})]}):(0,b.jsxs)("form",{onSubmit:r,className:"space-y-3",children:[(0,b.jsxs)("p",{className:"text-sm text-gray-500",children:["Enter your Z.ai API key to enable plan-usage tracking for the GLM Coding Plan. Get one from the"," ",(0,b.jsx)("a",{href:"https://z.ai/manage-apikey/apikey-list",target:"_blank",rel:"noreferrer",className:"underline",children:"Z.ai console"})," ","→ API Keys."]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"password",className:"af-input flex-1",placeholder:"Paste your API key",value:d,onChange:a=>e(a.target.value),autoFocus:!l}),(0,b.jsx)("button",{type:"submit",disabled:f,className:"af-btn af-btn-primary",children:f?"Saving…":"Save"}),l&&(0,b.jsx)("button",{type:"button",className:"af-btn",onClick:()=>{q(!1),e("")},children:"Cancel"})]}),h&&(0,b.jsx)("p",{className:`text-sm ${j?"text-red-600":"text-green-600"}`,children:h})]})}])}];
1
+ module.exports=[46522,a=>{"use strict";var b=a.i(87924),c=a.i(72131);a.s(["AiFeaturesForm",0,function({initial:a}){let[d,e]=(0,c.useState)(a.enabled),[f,g]=(0,c.useState)(a.autoBackfillLastWeek),[h,i]=(0,c.useState)(a.autoBackfillYesterday),[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(null);async function n(a){a.preventDefault(),k(!0),m(null);let b=await fetch("/api/settings",{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({ai_features:{enabled:d,autoBackfillLastWeek:f,autoBackfillYesterday:h}})});k(!1),m(b.ok?"Saved.":`Error: ${b.status}`)}return(0,b.jsxs)("form",{onSubmit:n,className:"space-y-4",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:d,onChange:a=>e(a.target.checked)}),(0,b.jsx)("span",{children:"Enable AI digests and enrichment"})]}),(0,b.jsxs)("label",{className:`flex items-start gap-2 ${d?"":"opacity-50"}`,children:[(0,b.jsx)("input",{type:"checkbox",checked:h,disabled:!d,onChange:a=>i(a.target.checked)}),(0,b.jsxs)("span",{children:["Auto-backfill yesterday's digest on daemon start",(0,b.jsx)("span",{className:"block text-xs text-gray-500 mt-0.5",children:"Generates yesterday's enriched entries and day digest. Runs once per daemon boot. Without this, yesterday's digest only appears after you load the homepage."})]})]}),(0,b.jsxs)("label",{className:`flex items-start gap-2 ${d?"":"opacity-50"}`,children:[(0,b.jsx)("input",{type:"checkbox",checked:f,disabled:!d,onChange:a=>g(a.target.checked)}),(0,b.jsxs)("span",{children:["Auto-backfill last week's narrative on daemon start",(0,b.jsx)("span",{className:"block text-xs text-gray-500 mt-0.5",children:"Generates enriched entries, day digests, and the weekly digest for the most recently completed ISO week. Runs once per ISO week."})]})]}),(0,b.jsx)("button",{type:"submit",disabled:j,className:"af-btn-primary",children:j?"Saving…":"Save"}),l&&(0,b.jsx)("p",{className:"text-sm",children:l})]})}])},36195,a=>{"use strict";var b=a.i(87924),c=a.i(72131);a.s(["AutostartToggle",0,function({initial:a}){let[d,e]=(0,c.useState)(a),[f,g]=(0,c.useState)(!1),[h,i]=(0,c.useState)(null);if(!d.supported)return(0,b.jsxs)("p",{className:"text-sm text-gray-500",children:["Auto-start uses a macOS LaunchAgent and is macOS-only for now. Add"," ",(0,b.jsx)("code",{className:"font-mono text-xs",children:"fleetlens daemon start"})," to your login items manually."]});async function j(a){g(!0),i(null);let b=await fetch("/api/team/autostart",{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({enabled:a})}),c=await b.json().catch(()=>null);(g(!1),b.ok)?e(c):i(c?.error??`Error ${b.status}`)}return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex cursor-pointer items-start gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",checked:d.installed,disabled:f,onChange:a=>void j(a.target.checked)}),(0,b.jsxs)("span",{children:["Start Fleetlens at login (dashboard + usage daemon)",(0,b.jsx)("span",{className:"mt-0.5 block text-xs text-gray-500",children:d.installed?"Enabled — the dashboard and reporting come back after a reboot.":d.optedOut?"Disabled — you opted out; joining a team won't re-enable it.":"Disabled — pairing with a team enables this automatically."})]})]}),h&&(0,b.jsx)("p",{className:"text-sm text-red-600",children:h})]})}])},43965,a=>{"use strict";var b=a.i(87924),c=a.i(72131);a.s(["MenubarInstall",0,function({initial:a}){let[d,e]=(0,c.useState)(a),[f,g]=(0,c.useState)(!1),[h,i]=(0,c.useState)(null),[j,k]=(0,c.useState)(null);if(!d.supported)return(0,b.jsx)("p",{className:"text-sm text-gray-500",children:"The menu bar widget is a native macOS app and isn't available on this platform."});async function l(a,b){g(!0),i(null),k(null);let c=await fetch("/api/menubar",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:a})}),d=await c.json().catch(()=>null);(g(!1),c.ok)?(e({supported:d.supported,installed:d.installed,running:d.running,bundled:d.bundled}),k(b)):i(d?.error??`Error ${c.status}`)}return(0,b.jsxs)("div",{className:"space-y-3",children:[!d.bundled&&(0,b.jsxs)("p",{className:"text-sm text-amber-600",children:["This build doesn't include the widget bundle. Run"," ",(0,b.jsx)("code",{className:"font-mono text-xs",children:"fleetlens menubar status"})," for details."]}),(0,b.jsx)("p",{className:"text-sm text-gray-500",children:d.installed?d.running?"Installed and running — check your menu bar.":"Installed but not running.":"Adds live Claude Code, Codex, Copilot, Z.ai, and Grok quota gauges to your menu bar, updated as the daemon polls."}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[!d.installed&&(0,b.jsx)("button",{type:"button",className:"af-btn af-btn-primary",disabled:f||!d.bundled,onClick:()=>void l("install","Installed — check your menu bar."),children:f?"Installing…":"Install widget"}),d.installed&&!d.running&&(0,b.jsx)("button",{type:"button",className:"af-btn af-btn-primary",disabled:f,onClick:()=>void l("open","Opened — check your menu bar."),children:f?"Opening…":"Open widget"}),d.installed&&(0,b.jsx)("button",{type:"button",className:"af-btn",disabled:f,onClick:()=>void l("uninstall","Widget removed."),children:f?"Removing…":"Uninstall"})]}),d.installed&&(0,b.jsxs)("p",{className:"text-xs text-gray-500",children:["To also launch it at login, run"," ",(0,b.jsx)("code",{className:"font-mono text-xs",children:"fleetlens menubar install"})," in your terminal."]}),j&&(0,b.jsx)("p",{className:"text-sm text-green-600",children:j}),h&&(0,b.jsx)("p",{className:"text-sm text-red-600",children:h})]})}])},70438,a=>{"use strict";var b=a.i(87924),c=a.i(72131);a.s(["ZaiCredentialsForm",0,function({initial:a}){let[d,e]=(0,c.useState)(""),[f,g]=(0,c.useState)(!1),[h,i]=(0,c.useState)(null),[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(a.zai?.configured??!1),[n,o]=(0,c.useState)(a.zai?.hint??null),[p,q]=(0,c.useState)(!1);async function r(a){a.preventDefault(),g(!0),i(null),k(!1);let b=await fetch("/api/settings/credentials",{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({api_key:d})}),c=await b.json().catch(()=>null);if(g(!1),!b.ok){k(!0),i(c?.error??`Error ${b.status}`);return}m(c.zai?.configured??!1),o(c.zai?.hint??null),e(""),q(!1),i(c.zai?.configured?"Z.ai API key saved.":"Z.ai API key removed.")}async function s(){e(""),i(null),k(!1);let a=await fetch("/api/settings/credentials",{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({api_key:""})}),b=await a.json().catch(()=>null);a.ok?(m(!1),o(null),i("Z.ai API key removed.")):(k(!0),i(b?.error??"Error removing key."))}return!p&&l?(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("p",{className:"text-sm text-gray-500",children:["Z.ai API key configured (",n,"). Used by the daemon to poll your GLM Coding Plan usage — data stays on this machine; the key is stored at ~/.cclens/credentials.json (owner-read/write only)."]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)("button",{type:"button",className:"af-btn",onClick:()=>q(!0),children:"Change key"}),(0,b.jsx)("button",{type:"button",className:"af-btn",onClick:s,children:"Remove key"})]}),h&&(0,b.jsx)("p",{className:"text-sm text-green-600",children:h})]}):(0,b.jsxs)("form",{onSubmit:r,className:"space-y-3",children:[(0,b.jsxs)("p",{className:"text-sm text-gray-500",children:["Enter your Z.ai API key to enable plan-usage tracking for the GLM Coding Plan. Get one from the"," ",(0,b.jsx)("a",{href:"https://z.ai/manage-apikey/apikey-list",target:"_blank",rel:"noreferrer",className:"underline",children:"Z.ai console"})," ","→ API Keys."]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"password",className:"af-input flex-1",placeholder:"Paste your API key",value:d,onChange:a=>e(a.target.value),autoFocus:!l}),(0,b.jsx)("button",{type:"submit",disabled:f,className:"af-btn af-btn-primary",children:f?"Saving…":"Save"}),l&&(0,b.jsx)("button",{type:"button",className:"af-btn",onClick:()=>{q(!1),e("")},children:"Cancel"})]}),h&&(0,b.jsx)("p",{className:`text-sm ${j?"text-red-600":"text-green-600"}`,children:h})]})}])}];
2
2
 
3
3
  //# sourceMappingURL=apps_web_0~aj0~u._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[44422,a=>{"use strict";var b=a.i(87924),c=a.i(38246),d=a.i(50944),e=a.i(72131),f=a.i(70106);let g=(0,f.default)("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]),h=(0,f.default)("ListTree",[["path",{d:"M21 12h-8",key:"1bmf0i"}],["path",{d:"M21 6H8",key:"1pqkrb"}],["path",{d:"M21 18h-8",key:"1tm79t"}],["path",{d:"M3 6v4c0 1.1.9 2 2 2h3",key:"1ywdgy"}],["path",{d:"M3 10v6c0 1.1.9 2 2 2h3",key:"2wc746"}]]);var i=a.i(96101);let j=(0,f.default)("Pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),k=(0,f.default)("PinOff",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]);var l=a.i(87532);let m=(0,f.default)("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);var n=a.i(69439);let o=(0,f.default)("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var p=a.i(60702),q=a.i(8406),r=a.i(3444);let s=(0,f.default)("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]),t=(0,f.default)("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);function u(a){if("u">typeof document){document.documentElement.setAttribute("data-theme",a);try{document.cookie=`claude-lens-theme=${a};path=/;max-age=31536000;samesite=lax`}catch{}}}function v(){let[a,c]=(0,e.useState)("dark"),[d,f]=(0,e.useState)(!1);return(0,e.useEffect)(()=>{let a=document.documentElement.getAttribute("data-theme");if("light"===a||"dark"===a)c(a);else{let a="dark";c(a),u(a)}f(!0)},[]),(0,b.jsx)("button",{type:"button",onClick:()=>{let b="dark"===a?"light":"dark";c(b),u(b);try{window.localStorage.setItem("claude-lens:theme",b)}catch{}},"aria-label":"dark"===a?"Switch to light mode":"Switch to dark mode",title:"dark"===a?"Switch to light mode":"Switch to dark mode",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:28,height:28,borderRadius:6,background:"transparent",border:"1px solid var(--af-border-subtle)",color:"var(--af-text-secondary)",cursor:"pointer",transition:"all 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--af-surface-hover)",a.currentTarget.style.color="var(--af-text)"},onMouseLeave:a=>{a.currentTarget.style.background="transparent",a.currentTarget.style.color="var(--af-text-secondary)"},children:d?"dark"===a?(0,b.jsx)(t,{size:14}):(0,b.jsx)(s,{size:14}):null})}var w=a.i(2591),x=a.i(55555);function y({snapshot:a}){let d,e,[f,,g]=(0,w.usePersistentBoolean)("cclens:usage:show-sonnet",!1);if(!a)return(0,b.jsxs)("div",{style:{padding:"10px 16px 12px",borderTop:"1px solid var(--af-border-subtle)",fontSize:10,color:"var(--af-text-tertiary)",lineHeight:1.4},children:[(0,b.jsx)("div",{style:{textTransform:"uppercase",letterSpacing:"0.06em",fontWeight:600,marginBottom:4},children:"Usage"}),(0,b.jsxs)("div",{children:["Run ",(0,b.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:"cclens daemon start"})," to collect metrics."]})]});let h=[{label:"5h",window:a.five_hour,windowMs:18e6},{label:"7d",window:a.seven_day,windowMs:6048e5}];return g&&f&&h.push({label:"Sonnet 7d",window:a.seven_day_sonnet,windowMs:6048e5}),(0,b.jsxs)(c.default,{href:"/usage",style:{display:"block",padding:"10px 16px 12px",borderTop:"1px solid var(--af-border-subtle)",textDecoration:"none",color:"inherit"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",fontSize:10,fontWeight:600,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:8},children:[(0,b.jsx)("span",{children:"Current usage"}),(0,b.jsx)("span",{suppressHydrationWarning:!0,style:{fontWeight:500,textTransform:"none",letterSpacing:0},children:(d=new Date(a.captured_at).getTime(),(e=Math.round((Date.now()-d)/1e3))<60?`${e}s ago`:e<3600?`${Math.floor(e/60)}m ago`:e<86400?`${Math.floor(e/3600)}h ago`:`${Math.floor(e/86400)}d ago`)})]}),(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:h.map(a=>(0,b.jsx)(z,{...a},a.label))})]})}function z({label:a,window:c,windowMs:d}){let e=c?.utilization??null,f=null!==e,g=f?Math.max(0,Math.min(100,e)):0,h=c?.resets_at?new Date(c.resets_at).getTime():null,i=f&&h?(0,x.toneVar)((0,x.paceToneForCycle)(g,h,d)):"var(--af-border-subtle)";return(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6,fontSize:10,color:"var(--af-text-secondary)",marginBottom:2,fontVariantNumeric:"tabular-nums"},children:[(0,b.jsx)("span",{children:a}),c?.resets_at&&(0,b.jsxs)("span",{suppressHydrationWarning:!0,style:{fontSize:9,color:"var(--af-text-tertiary)",flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["resets ",function(a){let b,c=Math.round((new Date(a).getTime()-Date.now())/1e3),d=Math.abs(c);if(d<60)b=`${d}s`;else if(d<3600)b=`${Math.floor(d/60)}m`;else if(d<86400){let a=Math.floor(d/3600),c=Math.floor(d%3600/60);b=c>0?`${a}h${c}m`:`${a}h`}else{let a=Math.floor(d/86400),c=Math.floor(d%86400/3600);b=c>0?`${a}d${c}h`:`${a}d`}return c<0?`${b} ago`:`in ${b}`}(c.resets_at)]}),(0,b.jsx)("span",{style:{fontWeight:600,color:"var(--af-text)",marginLeft:"auto"},children:f?`${g.toFixed(0)}%`:"—"})]}),(0,b.jsx)("div",{style:{height:4,background:"var(--af-border-subtle)",borderRadius:999,overflow:"hidden"},children:(0,b.jsx)("div",{style:{height:"100%",width:f?`${g}%`:"0%",background:i,borderRadius:999,transition:"width 0.24s ease"}})})]})}let A=(0,f.default)("Megaphone",[["path",{d:"m3 11 18-5v12L3 14v-3z",key:"n962bs"}],["path",{d:"M11.6 16.8a3 3 0 1 1-5.8-1.6",key:"1yl0tm"}]]);var B=a.i(2913);function C({latestVersion:a,active:d}){let[f,g]=(0,e.useState)(!1);return(0,e.useEffect)(()=>{if(!a)return void g(!1);try{let b=window.localStorage.getItem(B.STORAGE_KEY);g(b!==a)}catch{g(!1)}},[a]),(0,b.jsxs)(c.default,{href:"/changelog","aria-label":f?"Changelog (new entries)":"Changelog",title:f?`What's new in v${a}`:"Changelog",style:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",width:24,height:24,borderRadius:6,color:d?"var(--af-text)":"var(--af-text-tertiary)",background:d?"var(--af-surface-hover)":"transparent",textDecoration:"none"},children:[(0,b.jsx)(A,{size:14}),f&&(0,b.jsx)("span",{"aria-hidden":!0,style:{position:"absolute",top:3,right:3,width:7,height:7,borderRadius:"50%",background:"#ef4444",border:"1.5px solid var(--af-surface)"}})]})}let D={green:"var(--af-success, #10b981)",amber:"var(--af-warning, #f59e0b)",red:"var(--af-error, #ef4444)"};function E({connection:a}){let d,f,[g,h]=(0,e.useState)(()=>Date.now());if((0,e.useEffect)(()=>{if(!a.paired)return;let b=setInterval(()=>h(Date.now()),3e4);return()=>clearInterval(b)},[a.paired]),!a.paired)return null;let{team:i,lastPush:j}=a,k=D[function(a,b=Date.now()){if("none"===a.kind)return"amber";if("error"===a.kind)return"red";let c=b-Date.parse(a.at);return Number.isNaN(c)||c>36e5?"red":c>9e5?"amber":"green"}(j,g)];"none"===j.kind?(d="waiting…",f="Daemon pushes every 5 minutes"):(d="error"===j.kind?`failed ${(0,r.formatRelative)(j.at)}`:`synced ${(0,r.formatRelative)(j.at)}`,f=new Date(j.at).toLocaleString());let l=[`Team: ${i.name}`,f,"error"===j.kind?`Error: ${j.error}`:"Click to inspect what's synced."];return(0,b.jsxs)(c.default,{href:"/team",title:l.join("\n"),style:{display:"flex",alignItems:"center",gap:8,padding:"8px 16px 8px 20px",borderTop:"1px solid var(--af-border-subtle)",fontSize:11,color:"var(--af-text-secondary)",textDecoration:"none",minWidth:0},children:[(0,b.jsx)("span",{"aria-hidden":!0,suppressHydrationWarning:!0,style:{width:7,height:7,borderRadius:"50%",background:k,flexShrink:0,boxShadow:`0 0 0 2px color-mix(in srgb, ${k} 25%, transparent)`}}),(0,b.jsx)("span",{style:{flexShrink:0,fontWeight:500},children:"Team:"}),(0,b.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:i.name}),(0,b.jsx)("span",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",flexShrink:0},suppressHydrationWarning:!0,children:d})]})}function F({href:a,active:d,icon:e,trailing:f,children:g}){return(0,b.jsxs)(c.default,{href:a,style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",borderRadius:7,fontSize:13,fontWeight:500,color:d?"var(--af-accent)":"var(--af-text-secondary)",background:d?"var(--af-accent-subtle)":"transparent",transition:"all 0.12s"},children:[e,(0,b.jsx)("span",{style:{flex:1},children:g}),f&&(0,b.jsx)("span",{style:{fontSize:10,color:d?"var(--af-accent)":"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:f})]})}function G({label:a,items:d,pathname:e,isPinned:f,onTogglePin:g}){return 0===d.length?null:(0,b.jsxs)("div",{style:{marginTop:10},children:[(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.06em",padding:"0 10px 6px",fontWeight:600},children:a}),(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column"},children:d.map(a=>{let d=`/projects/${encodeURIComponent(a.projectDir)}`,h=e===d,i=(0,r.prettyProjectName)(a.projectName);return(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"5px 6px 5px 10px",borderRadius:6,background:h?"var(--af-accent-subtle)":"transparent",color:h?"var(--af-accent)":"var(--af-text-secondary)"},children:[(0,b.jsxs)(c.default,{href:d,style:{flex:1,minWidth:0,fontSize:12,color:"inherit",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"flex",alignItems:"center",gap:5},title:(a.worktreeCount??0)>0?`${a.projectName} — ${a.worktreeCount} worktree${1===a.worktreeCount?"":"s"}`:a.projectName,children:[(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:i}),(a.worktreeCount??0)>0&&(0,b.jsxs)("span",{style:{fontSize:9,fontWeight:600,padding:"1px 5px",borderRadius:100,background:"rgba(167, 139, 250, 0.15)",color:"rgba(167, 139, 250, 1)",flexShrink:0},children:["+",a.worktreeCount," wt"]})]}),(0,b.jsx)("span",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",marginLeft:4},children:a.sessionCount}),(0,b.jsx)("button",{type:"button",onClick:b=>{b.preventDefault(),b.stopPropagation(),g(a.projectDir)},"aria-label":f(a.projectDir)?"Unpin project":"Pin project",title:f(a.projectDir)?"Unpin":"Pin",style:{background:"transparent",border:"none",padding:3,borderRadius:4,color:f(a.projectDir)?"var(--af-accent)":"var(--af-text-tertiary)",display:"flex",alignItems:"center"},children:f(a.projectDir)?(0,b.jsx)(k,{size:12}):(0,b.jsx)(j,{size:12})}),a.lastActiveMs&&(0,b.jsx)("span",{style:{fontSize:9,color:"var(--af-text-tertiary)",marginLeft:2,minWidth:32,textAlign:"right"},title:new Date(a.lastActiveMs).toISOString(),suppressHydrationWarning:!0,children:(0,r.formatRelative)(new Date(a.lastActiveMs).toISOString())})]},a.projectDir)})})]})}a.s(["Sidebar",0,function({projects:a,totalSessions:f,currentUsage:j,version:k,latestChangelogVersion:r,teamConnection:s}){let t=(0,d.usePathname)(),[u,w]=(0,e.useState)(new Set),[x,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)("");(0,e.useEffect)(()=>{w(new Set),z(!0)},[]);let D=a=>{w(b=>{let c=new Set(b);c.has(a)?c.delete(a):c.add(a);try{window.localStorage.setItem("claude-lens:pinned-projects:v1",JSON.stringify(Array.from(c)))}catch{}return c})},H=(0,e.useMemo)(()=>{if(!A.trim())return a;let b=A.toLowerCase();return a.filter(a=>a.projectName.toLowerCase().includes(b))},[a,A]),I=H.filter(a=>u.has(a.projectDir)),J=H.filter(a=>!u.has(a.projectDir));return(0,b.jsxs)("aside",{style:{width:260,flexShrink:0,borderRight:"1px solid var(--af-border-subtle)",background:"var(--af-surface)",display:"flex",flexDirection:"column",position:"sticky",top:0,height:"100vh"},children:[(0,b.jsx)("div",{style:{padding:"18px 20px 12px",borderBottom:"1px solid var(--af-border-subtle)"},children:(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,b.jsx)("div",{style:{width:28,height:28,borderRadius:7,background:"var(--af-accent-subtle)",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--af-accent)"},children:(0,b.jsx)(m,{size:16,strokeWidth:2.25})}),(0,b.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6},children:[(0,b.jsx)("span",{style:{fontSize:14,fontWeight:700,letterSpacing:"-0.01em"},children:"Fleetlens"}),(0,b.jsxs)("span",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",fontWeight:500},title:`fleetlens ${k}`,children:["v",k]})]}),(0,b.jsx)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)"},children:"Multi-agent fleet analytics"})]})]})}),(0,b.jsxs)("nav",{style:{padding:"10px 10px 6px",display:"flex",flexDirection:"column",gap:2},children:[(0,b.jsx)(F,{href:"/",active:"/"===t,icon:(0,b.jsx)(g,{size:15}),children:"Overview"}),(0,b.jsx)(F,{href:"/sessions",active:"/sessions"===t||t.startsWith("/sessions/"),icon:(0,b.jsx)(h,{size:15}),trailing:f>0?String(f):void 0,children:"All sessions"}),(0,b.jsx)(F,{href:"/projects",active:"/projects"===t,icon:(0,b.jsx)(i.FolderOpen,{size:15}),trailing:a.length>0?String(a.length):void 0,children:"Projects"}),(0,b.jsx)(F,{href:"/day",active:"/day"===t||t.startsWith("/day/")||"/digest"===t||t.startsWith("/digest/")||"/parallelism"===t,icon:(0,b.jsx)(p.CalendarDays,{size:15}),children:"Day"}),(0,b.jsx)(F,{href:"/insights",active:"/insights"===t,icon:(0,b.jsx)(n.Lightbulb,{size:15}),children:"Insights"}),(0,b.jsx)(F,{href:"/agent",active:"/agent"===t||"/runs"===t||t.startsWith("/runs/"),icon:(0,b.jsx)(q.Sparkles,{size:15}),children:"Agent"})]}),(0,b.jsxs)("div",{style:{margin:"0 14px",padding:"8px 0",borderTop:"1px solid var(--af-border-subtle)",borderBottom:"1px solid var(--af-border-subtle)",display:"flex",alignItems:"center",gap:6},children:[(0,b.jsx)(l.Search,{size:13,color:"var(--af-text-tertiary)"}),(0,b.jsx)("input",{type:"text",placeholder:"Search projects",value:A,onChange:a=>B(a.target.value),style:{flex:1,background:"transparent",border:"none",padding:"4px 0",fontSize:12,color:"var(--af-text)"}})]}),(0,b.jsxs)("div",{style:{flex:1,overflow:"auto",padding:"4px 8px 20px"},children:[x&&I.length>0&&(0,b.jsx)(G,{label:"Pinned",items:I,pathname:t,isPinned:a=>u.has(a),onTogglePin:D}),(0,b.jsx)(G,{label:"Projects",items:J,pathname:t,isPinned:a=>u.has(a),onTogglePin:D})]}),(0,b.jsx)(y,{snapshot:j}),(0,b.jsx)(E,{connection:s}),(0,b.jsxs)("div",{style:{padding:"10px 16px 10px 20px",fontSize:10,color:"var(--af-text-tertiary)",borderTop:"1px solid var(--af-border-subtle)",display:"flex",alignItems:"center",gap:8},children:[(0,b.jsxs)("span",{style:{flex:1,minWidth:0},children:[f," sessions · ",a.length," projects"]}),(0,b.jsx)(C,{latestVersion:r,active:"/changelog"===t}),(0,b.jsx)(c.default,{href:"/settings","aria-label":"Settings",title:"Settings",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:24,height:24,borderRadius:6,color:"/settings"===t?"var(--af-text)":"var(--af-text-tertiary)",background:"/settings"===t?"var(--af-surface-hover)":"transparent",textDecoration:"none"},children:(0,b.jsx)(o,{size:14})}),(0,b.jsx)(v,{})]})]})}],44422)},46069,a=>{"use strict";var b=a.i(50944),c=a.i(72131);a.s(["LiveRefresher",0,function(){let a,d=(0,b.useRouter)(),e=(a=(0,b.usePathname)(),a?.includes("/insights/print/")??!1),f=(0,c.useRef)(null),g=(0,c.useRef)({session:0,usage:0,team:0});return!function(a,b={}){let{enabled:d=!0}=b,e=(0,c.useRef)(a);(0,c.useEffect)(()=>{e.current=a},[a]),(0,c.useEffect)(()=>{if(!d)return;let a=new EventSource("/api/events");return a.onmessage=a=>{try{let b=JSON.parse(a.data);("session-updated"===b.type||"usage-updated"===b.type||"team-push"===b.type)&&e.current(b)}catch{}},a.onerror=()=>{},()=>{a.close()}},[d])}((0,c.useCallback)(a=>{let b="usage-updated"===a.type?"usage":"team-push"===a.type?"team":"session";a.mtimeMs<=(g.current[b]??0)||(g.current[b]=a.mtimeMs,f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{d.refresh()},400))},[d]),{enabled:!e}),(0,c.useEffect)(()=>()=>{f.current&&clearTimeout(f.current)},[]),null}],46069)},1568,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(50944),e=a.i(38246),f=a.i(3444),g=a.i(76285),h=a.i(99309),i=a.i(44220);let j="cclens-live-widget-expanded";a.s(["LiveSessionsWidget",0,function({sessions:a,entrySummaries:k={}}){let l=(0,d.usePathname)(),[m,n]=(0,c.useState)(()=>Date.now()),[o,p]=(0,c.useState)(!1);if((0,c.useEffect)(()=>{try{let a=localStorage.getItem(j);null!==a&&p("true"===a)}catch{}},[]),(0,c.useEffect)(()=>{let a=setInterval(()=>n(Date.now()),1e4);return()=>clearInterval(a)},[]),l&&/^\/sessions\/[^/]+$/.test(l))return null;let q=a.filter(a=>{let b=a.lastTimestamp?Date.parse(a.lastTimestamp):NaN,c=Math.max(Number.isNaN(b)?0:b,a.lastActivityMs&&Number.isFinite(a.lastActivityMs)?a.lastActivityMs:0);return!(c<=0)&&m-c<=45e3}).slice().sort((a,b)=>{let c=a.firstTimestamp?Date.parse(a.firstTimestamp):0;return(b.firstTimestamp?Date.parse(b.firstTimestamp):0)-c});if(0===q.length)return null;let r=o?q.slice(0,5):[],s=o?q.length-r.length:0;return(0,b.jsxs)("div",{style:{position:"fixed",right:20,bottom:20,zIndex:100,display:"flex",flexDirection:"column-reverse",gap:6,maxWidth:320,pointerEvents:"auto"},children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{var a;return a=a=>!a,void p(b=>{let c=a(b);try{localStorage.setItem(j,String(c))}catch{}return c})},style:{display:"inline-flex",alignItems:"center",gap:6,padding:"5px 11px 5px 9px",background:"rgba(239, 68, 68, 0.14)",border:"1px solid rgba(239, 68, 68, 0.4)",borderRadius:100,fontSize:10,fontWeight:700,color:"#ef4444",letterSpacing:"0.06em",textTransform:"uppercase",alignSelf:"flex-end",cursor:"pointer",userSelect:"none",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)",boxShadow:"0 2px 10px rgba(239, 68, 68, 0.15)"},title:o?"Collapse":`Show ${q.length} live session${1===q.length?"":"s"}`,children:[(0,b.jsx)("span",{style:{display:"inline-block",width:6,height:6,borderRadius:"50%",background:"#ef4444",animation:"cs-live-pulse 1.6s ease-in-out infinite"}}),"Live · ",(0,b.jsx)("span",{suppressHydrationWarning:!0,children:q.length})]}),o&&s>0&&(0,b.jsxs)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",padding:"0 4px",textAlign:"right"},children:["+",s," more live"]}),r.map(a=>{let c=k[a.id];return(0,b.jsxs)(e.default,{href:`/sessions/${a.id}`,style:{display:"block",padding:"10px 12px",background:"var(--af-surface-elevated)",border:"1px solid var(--af-border-subtle)",borderLeft:"2px solid #ef4444",borderRadius:8,boxShadow:"0 4px 16px rgba(0, 0, 0, 0.12)",textDecoration:"none",color:"var(--af-text)",fontSize:11,lineHeight:1.35,backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)"},title:(a.lastUserPreview||a.firstUserPreview||a.lastAgentPreview)??(0,f.prettyProjectName)(a.projectName),children:[c&&(0,b.jsx)("div",{onClick:a=>a.stopPropagation(),style:{marginBottom:4},children:c.outcome?(0,b.jsx)(i.OutcomePill,{outcome:c.outcome,size:"sm",label:"text",agent:a.agent}):"skipped_trivial"!==c.enrichmentStatus?(0,b.jsx)(i.OutcomePill,{outcome:null,pending:!0,sessionId:a.id,localDay:c.localDay,size:"sm",agent:a.agent}):null}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,fontWeight:500,color:"var(--af-text)",minWidth:0},children:[(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:a.lastUserPreview||a.firstUserPreview||(0,b.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"(no user message)"})}),(0,b.jsx)(g.TeamBadge,{session:a,linkable:!1}),(0,b.jsx)(h.AgentBadge,{agent:a.agent})]}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-secondary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:3,fontStyle:"italic"},children:a.lastAgentPreview?(0,b.jsxs)(b.Fragment,{children:["↳ ",a.lastAgentPreview]}):(0,b.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"waiting…"})}),(0,b.jsx)("div",{style:{fontSize:9,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",marginTop:4,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(0,f.prettyProjectName)(a.projectName)})]},a.id)}),(0,b.jsx)("style",{children:`
1
+ module.exports=[44422,a=>{"use strict";var b=a.i(87924),c=a.i(38246),d=a.i(50944),e=a.i(72131),f=a.i(70106);let g=(0,f.default)("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]),h=(0,f.default)("ListTree",[["path",{d:"M21 12h-8",key:"1bmf0i"}],["path",{d:"M21 6H8",key:"1pqkrb"}],["path",{d:"M21 18h-8",key:"1tm79t"}],["path",{d:"M3 6v4c0 1.1.9 2 2 2h3",key:"1ywdgy"}],["path",{d:"M3 10v6c0 1.1.9 2 2 2h3",key:"2wc746"}]]);var i=a.i(96101);let j=(0,f.default)("Pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),k=(0,f.default)("PinOff",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]);var l=a.i(87532),m=a.i(69439);let n=(0,f.default)("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var o=a.i(60702),p=a.i(8406),q=a.i(3444);let r=(0,f.default)("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]),s=(0,f.default)("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);function t(a){if("u">typeof document){document.documentElement.setAttribute("data-theme",a);try{document.cookie=`claude-lens-theme=${a};path=/;max-age=31536000;samesite=lax`}catch{}}}function u(){let[a,c]=(0,e.useState)("dark"),[d,f]=(0,e.useState)(!1);return(0,e.useEffect)(()=>{let a=document.documentElement.getAttribute("data-theme");if("light"===a||"dark"===a)c(a);else{let a="dark";c(a),t(a)}f(!0)},[]),(0,b.jsx)("button",{type:"button",onClick:()=>{let b="dark"===a?"light":"dark";c(b),t(b);try{window.localStorage.setItem("claude-lens:theme",b)}catch{}},"aria-label":"dark"===a?"Switch to light mode":"Switch to dark mode",title:"dark"===a?"Switch to light mode":"Switch to dark mode",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:28,height:28,borderRadius:6,background:"transparent",border:"1px solid var(--af-border-subtle)",color:"var(--af-text-secondary)",cursor:"pointer",transition:"all 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--af-surface-hover)",a.currentTarget.style.color="var(--af-text)"},onMouseLeave:a=>{a.currentTarget.style.background="transparent",a.currentTarget.style.color="var(--af-text-secondary)"},children:d?"dark"===a?(0,b.jsx)(s,{size:14}):(0,b.jsx)(r,{size:14}):null})}var v=a.i(2591),w=a.i(55555);function x({snapshot:a}){let d,e,[f,,g]=(0,v.usePersistentBoolean)("cclens:usage:show-sonnet",!1);if(!a)return(0,b.jsxs)("div",{style:{padding:"10px 16px 12px",borderTop:"1px solid var(--af-border-subtle)",fontSize:10,color:"var(--af-text-tertiary)",lineHeight:1.4},children:[(0,b.jsx)("div",{style:{textTransform:"uppercase",letterSpacing:"0.06em",fontWeight:600,marginBottom:4},children:"Usage"}),(0,b.jsxs)("div",{children:["Run ",(0,b.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:"cclens daemon start"})," to collect metrics."]})]});let h=[{label:"5h",window:a.five_hour,windowMs:18e6},{label:"7d",window:a.seven_day,windowMs:6048e5}];return g&&f&&h.push({label:"Sonnet 7d",window:a.seven_day_sonnet,windowMs:6048e5}),(0,b.jsxs)(c.default,{href:"/usage",style:{display:"block",padding:"10px 16px 12px",borderTop:"1px solid var(--af-border-subtle)",textDecoration:"none",color:"inherit"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",fontSize:10,fontWeight:600,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:8},children:[(0,b.jsx)("span",{children:"Current usage"}),(0,b.jsx)("span",{suppressHydrationWarning:!0,style:{fontWeight:500,textTransform:"none",letterSpacing:0},children:(d=new Date(a.captured_at).getTime(),(e=Math.round((Date.now()-d)/1e3))<60?`${e}s ago`:e<3600?`${Math.floor(e/60)}m ago`:e<86400?`${Math.floor(e/3600)}h ago`:`${Math.floor(e/86400)}d ago`)})]}),(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:h.map(a=>(0,b.jsx)(y,{...a},a.label))})]})}function y({label:a,window:c,windowMs:d}){let e=c?.utilization??null,f=null!==e,g=f?Math.max(0,Math.min(100,e)):0,h=c?.resets_at?new Date(c.resets_at).getTime():null,i=f&&h?(0,w.toneVar)((0,w.paceToneForCycle)(g,h,d)):"var(--af-border-subtle)";return(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6,fontSize:10,color:"var(--af-text-secondary)",marginBottom:2,fontVariantNumeric:"tabular-nums"},children:[(0,b.jsx)("span",{children:a}),c?.resets_at&&(0,b.jsxs)("span",{suppressHydrationWarning:!0,style:{fontSize:9,color:"var(--af-text-tertiary)",flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["resets ",function(a){let b,c=Math.round((new Date(a).getTime()-Date.now())/1e3),d=Math.abs(c);if(d<60)b=`${d}s`;else if(d<3600)b=`${Math.floor(d/60)}m`;else if(d<86400){let a=Math.floor(d/3600),c=Math.floor(d%3600/60);b=c>0?`${a}h${c}m`:`${a}h`}else{let a=Math.floor(d/86400),c=Math.floor(d%86400/3600);b=c>0?`${a}d${c}h`:`${a}d`}return c<0?`${b} ago`:`in ${b}`}(c.resets_at)]}),(0,b.jsx)("span",{style:{fontWeight:600,color:"var(--af-text)",marginLeft:"auto"},children:f?`${g.toFixed(0)}%`:"—"})]}),(0,b.jsx)("div",{style:{height:4,background:"var(--af-border-subtle)",borderRadius:999,overflow:"hidden"},children:(0,b.jsx)("div",{style:{height:"100%",width:f?`${g}%`:"0%",background:i,borderRadius:999,transition:"width 0.24s ease"}})})]})}let z=(0,f.default)("Megaphone",[["path",{d:"m3 11 18-5v12L3 14v-3z",key:"n962bs"}],["path",{d:"M11.6 16.8a3 3 0 1 1-5.8-1.6",key:"1yl0tm"}]]);var A=a.i(2913);function B({latestVersion:a,active:d}){let[f,g]=(0,e.useState)(!1);return(0,e.useEffect)(()=>{if(!a)return void g(!1);try{let b=window.localStorage.getItem(A.STORAGE_KEY);g(b!==a)}catch{g(!1)}},[a]),(0,b.jsxs)(c.default,{href:"/changelog","aria-label":f?"Changelog (new entries)":"Changelog",title:f?`What's new in v${a}`:"Changelog",style:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",width:24,height:24,borderRadius:6,color:d?"var(--af-text)":"var(--af-text-tertiary)",background:d?"var(--af-surface-hover)":"transparent",textDecoration:"none"},children:[(0,b.jsx)(z,{size:14}),f&&(0,b.jsx)("span",{"aria-hidden":!0,style:{position:"absolute",top:3,right:3,width:7,height:7,borderRadius:"50%",background:"#ef4444",border:"1.5px solid var(--af-surface)"}})]})}let C={green:"var(--af-success, #10b981)",amber:"var(--af-warning, #f59e0b)",red:"var(--af-error, #ef4444)"};function D({connection:a}){let d,f,[g,h]=(0,e.useState)(()=>Date.now());if((0,e.useEffect)(()=>{if(!a.paired)return;let b=setInterval(()=>h(Date.now()),3e4);return()=>clearInterval(b)},[a.paired]),!a.paired)return null;let{team:i,lastPush:j}=a,k=C[function(a,b=Date.now()){if("none"===a.kind)return"amber";if("error"===a.kind)return"red";let c=b-Date.parse(a.at);return Number.isNaN(c)||c>36e5?"red":c>9e5?"amber":"green"}(j,g)];"none"===j.kind?(d="waiting…",f="Daemon pushes every 5 minutes"):(d="error"===j.kind?`failed ${(0,q.formatRelative)(j.at)}`:`synced ${(0,q.formatRelative)(j.at)}`,f=new Date(j.at).toLocaleString());let l=[`Team: ${i.name}`,f,"error"===j.kind?`Error: ${j.error}`:"Click to inspect what's synced."];return(0,b.jsxs)(c.default,{href:"/team",title:l.join("\n"),style:{display:"flex",alignItems:"center",gap:8,padding:"8px 16px 8px 20px",borderTop:"1px solid var(--af-border-subtle)",fontSize:11,color:"var(--af-text-secondary)",textDecoration:"none",minWidth:0},children:[(0,b.jsx)("span",{"aria-hidden":!0,suppressHydrationWarning:!0,style:{width:7,height:7,borderRadius:"50%",background:k,flexShrink:0,boxShadow:`0 0 0 2px color-mix(in srgb, ${k} 25%, transparent)`}}),(0,b.jsx)("span",{style:{flexShrink:0,fontWeight:500},children:"Team:"}),(0,b.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:i.name}),(0,b.jsx)("span",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",flexShrink:0},suppressHydrationWarning:!0,children:d})]})}function E({href:a,active:d,icon:e,trailing:f,children:g}){return(0,b.jsxs)(c.default,{href:a,style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",borderRadius:7,fontSize:13,fontWeight:500,color:d?"var(--af-accent)":"var(--af-text-secondary)",background:d?"var(--af-accent-subtle)":"transparent",transition:"all 0.12s"},children:[e,(0,b.jsx)("span",{style:{flex:1},children:g}),f&&(0,b.jsx)("span",{style:{fontSize:10,color:d?"var(--af-accent)":"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:f})]})}function F({label:a,items:d,pathname:e,isPinned:f,onTogglePin:g}){return 0===d.length?null:(0,b.jsxs)("div",{style:{marginTop:10},children:[(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.06em",padding:"0 10px 6px",fontWeight:600},children:a}),(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column"},children:d.map(a=>{let d=`/projects/${encodeURIComponent(a.projectDir)}`,h=e===d,i=(0,q.prettyProjectName)(a.projectName);return(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"5px 6px 5px 10px",borderRadius:6,background:h?"var(--af-accent-subtle)":"transparent",color:h?"var(--af-accent)":"var(--af-text-secondary)"},children:[(0,b.jsxs)(c.default,{href:d,style:{flex:1,minWidth:0,fontSize:12,color:"inherit",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"flex",alignItems:"center",gap:5},title:(a.worktreeCount??0)>0?`${a.projectName} — ${a.worktreeCount} worktree${1===a.worktreeCount?"":"s"}`:a.projectName,children:[(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:i}),(a.worktreeCount??0)>0&&(0,b.jsxs)("span",{style:{fontSize:9,fontWeight:600,padding:"1px 5px",borderRadius:100,background:"rgba(167, 139, 250, 0.15)",color:"rgba(167, 139, 250, 1)",flexShrink:0},children:["+",a.worktreeCount," wt"]})]}),(0,b.jsx)("span",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",marginLeft:4},children:a.sessionCount}),(0,b.jsx)("button",{type:"button",onClick:b=>{b.preventDefault(),b.stopPropagation(),g(a.projectDir)},"aria-label":f(a.projectDir)?"Unpin project":"Pin project",title:f(a.projectDir)?"Unpin":"Pin",style:{background:"transparent",border:"none",padding:3,borderRadius:4,color:f(a.projectDir)?"var(--af-accent)":"var(--af-text-tertiary)",display:"flex",alignItems:"center"},children:f(a.projectDir)?(0,b.jsx)(k,{size:12}):(0,b.jsx)(j,{size:12})}),a.lastActiveMs&&(0,b.jsx)("span",{style:{fontSize:9,color:"var(--af-text-tertiary)",marginLeft:2,minWidth:32,textAlign:"right"},title:new Date(a.lastActiveMs).toISOString(),suppressHydrationWarning:!0,children:(0,q.formatRelative)(new Date(a.lastActiveMs).toISOString())})]},a.projectDir)})})]})}a.s(["Sidebar",0,function({projects:a,totalSessions:f,currentUsage:j,version:k,latestChangelogVersion:q,teamConnection:r}){let s=(0,d.usePathname)(),[t,v]=(0,e.useState)(new Set),[w,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)("");(0,e.useEffect)(()=>{v(new Set),y(!0)},[]);let C=a=>{v(b=>{let c=new Set(b);c.has(a)?c.delete(a):c.add(a);try{window.localStorage.setItem("claude-lens:pinned-projects:v1",JSON.stringify(Array.from(c)))}catch{}return c})},G=(0,e.useMemo)(()=>{if(!z.trim())return a;let b=z.toLowerCase();return a.filter(a=>a.projectName.toLowerCase().includes(b))},[a,z]),H=G.filter(a=>t.has(a.projectDir)),I=G.filter(a=>!t.has(a.projectDir));return(0,b.jsxs)("aside",{style:{width:260,flexShrink:0,borderRight:"1px solid var(--af-border-subtle)",background:"var(--af-surface)",display:"flex",flexDirection:"column",position:"sticky",top:0,height:"100vh"},children:[(0,b.jsx)("div",{style:{padding:"18px 20px 12px",borderBottom:"1px solid var(--af-border-subtle)"},children:(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,b.jsx)("span",{"aria-hidden":"true",style:{width:28,height:28,flex:"0 0 auto",background:'url("/icon.svg") center / contain no-repeat'}}),(0,b.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6},children:[(0,b.jsx)("span",{style:{fontSize:14,fontWeight:700,letterSpacing:"-0.01em"},children:"Fleetlens"}),(0,b.jsxs)("span",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",fontWeight:500},title:`fleetlens ${k}`,children:["v",k]})]}),(0,b.jsx)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)"},children:"Multi-agent fleet analytics"})]})]})}),(0,b.jsxs)("nav",{style:{padding:"10px 10px 6px",display:"flex",flexDirection:"column",gap:2},children:[(0,b.jsx)(E,{href:"/",active:"/"===s,icon:(0,b.jsx)(g,{size:15}),children:"Overview"}),(0,b.jsx)(E,{href:"/sessions",active:"/sessions"===s||s.startsWith("/sessions/"),icon:(0,b.jsx)(h,{size:15}),trailing:f>0?String(f):void 0,children:"All sessions"}),(0,b.jsx)(E,{href:"/projects",active:"/projects"===s,icon:(0,b.jsx)(i.FolderOpen,{size:15}),trailing:a.length>0?String(a.length):void 0,children:"Projects"}),(0,b.jsx)(E,{href:"/day",active:"/day"===s||s.startsWith("/day/")||"/digest"===s||s.startsWith("/digest/")||"/parallelism"===s,icon:(0,b.jsx)(o.CalendarDays,{size:15}),children:"Day"}),(0,b.jsx)(E,{href:"/insights",active:"/insights"===s,icon:(0,b.jsx)(m.Lightbulb,{size:15}),children:"Insights"}),(0,b.jsx)(E,{href:"/agent",active:"/agent"===s||"/runs"===s||s.startsWith("/runs/"),icon:(0,b.jsx)(p.Sparkles,{size:15}),children:"Agent"})]}),(0,b.jsxs)("div",{style:{margin:"0 14px",padding:"8px 0",borderTop:"1px solid var(--af-border-subtle)",borderBottom:"1px solid var(--af-border-subtle)",display:"flex",alignItems:"center",gap:6},children:[(0,b.jsx)(l.Search,{size:13,color:"var(--af-text-tertiary)"}),(0,b.jsx)("input",{type:"text",placeholder:"Search projects",value:z,onChange:a=>A(a.target.value),style:{flex:1,background:"transparent",border:"none",padding:"4px 0",fontSize:12,color:"var(--af-text)"}})]}),(0,b.jsxs)("div",{style:{flex:1,overflow:"auto",padding:"4px 8px 20px"},children:[w&&H.length>0&&(0,b.jsx)(F,{label:"Pinned",items:H,pathname:s,isPinned:a=>t.has(a),onTogglePin:C}),(0,b.jsx)(F,{label:"Projects",items:I,pathname:s,isPinned:a=>t.has(a),onTogglePin:C})]}),(0,b.jsx)(x,{snapshot:j}),(0,b.jsx)(D,{connection:r}),(0,b.jsxs)("div",{style:{padding:"10px 16px 10px 20px",fontSize:10,color:"var(--af-text-tertiary)",borderTop:"1px solid var(--af-border-subtle)",display:"flex",alignItems:"center",gap:8},children:[(0,b.jsxs)("span",{style:{flex:1,minWidth:0},children:[f," sessions · ",a.length," projects"]}),(0,b.jsx)(B,{latestVersion:q,active:"/changelog"===s}),(0,b.jsx)(c.default,{href:"/settings","aria-label":"Settings",title:"Settings",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:24,height:24,borderRadius:6,color:"/settings"===s?"var(--af-text)":"var(--af-text-tertiary)",background:"/settings"===s?"var(--af-surface-hover)":"transparent",textDecoration:"none"},children:(0,b.jsx)(n,{size:14})}),(0,b.jsx)(u,{})]})]})}],44422)},46069,a=>{"use strict";var b=a.i(50944),c=a.i(72131);a.s(["LiveRefresher",0,function(){let a,d=(0,b.useRouter)(),e=(a=(0,b.usePathname)(),a?.includes("/insights/print/")??!1),f=(0,c.useRef)(null),g=(0,c.useRef)({session:0,usage:0,team:0});return!function(a,b={}){let{enabled:d=!0}=b,e=(0,c.useRef)(a);(0,c.useEffect)(()=>{e.current=a},[a]),(0,c.useEffect)(()=>{if(!d)return;let a=new EventSource("/api/events");return a.onmessage=a=>{try{let b=JSON.parse(a.data);("session-updated"===b.type||"usage-updated"===b.type||"team-push"===b.type)&&e.current(b)}catch{}},a.onerror=()=>{},()=>{a.close()}},[d])}((0,c.useCallback)(a=>{let b="usage-updated"===a.type?"usage":"team-push"===a.type?"team":"session";a.mtimeMs<=(g.current[b]??0)||(g.current[b]=a.mtimeMs,f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{d.refresh()},400))},[d]),{enabled:!e}),(0,c.useEffect)(()=>()=>{f.current&&clearTimeout(f.current)},[]),null}],46069)},1568,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(50944),e=a.i(38246),f=a.i(3444),g=a.i(76285),h=a.i(99309),i=a.i(44220);let j="cclens-live-widget-expanded";a.s(["LiveSessionsWidget",0,function({sessions:a,entrySummaries:k={}}){let l=(0,d.usePathname)(),[m,n]=(0,c.useState)(()=>Date.now()),[o,p]=(0,c.useState)(!1);if((0,c.useEffect)(()=>{try{let a=localStorage.getItem(j);null!==a&&p("true"===a)}catch{}},[]),(0,c.useEffect)(()=>{let a=setInterval(()=>n(Date.now()),1e4);return()=>clearInterval(a)},[]),l&&/^\/sessions\/[^/]+$/.test(l))return null;let q=a.filter(a=>{let b=a.lastTimestamp?Date.parse(a.lastTimestamp):NaN,c=Math.max(Number.isNaN(b)?0:b,a.lastActivityMs&&Number.isFinite(a.lastActivityMs)?a.lastActivityMs:0);return!(c<=0)&&m-c<=45e3}).slice().sort((a,b)=>{let c=a.firstTimestamp?Date.parse(a.firstTimestamp):0;return(b.firstTimestamp?Date.parse(b.firstTimestamp):0)-c});if(0===q.length)return null;let r=o?q.slice(0,5):[],s=o?q.length-r.length:0;return(0,b.jsxs)("div",{style:{position:"fixed",right:20,bottom:20,zIndex:100,display:"flex",flexDirection:"column-reverse",gap:6,maxWidth:320,pointerEvents:"auto"},children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{var a;return a=a=>!a,void p(b=>{let c=a(b);try{localStorage.setItem(j,String(c))}catch{}return c})},style:{display:"inline-flex",alignItems:"center",gap:6,padding:"5px 11px 5px 9px",background:"rgba(239, 68, 68, 0.14)",border:"1px solid rgba(239, 68, 68, 0.4)",borderRadius:100,fontSize:10,fontWeight:700,color:"#ef4444",letterSpacing:"0.06em",textTransform:"uppercase",alignSelf:"flex-end",cursor:"pointer",userSelect:"none",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)",boxShadow:"0 2px 10px rgba(239, 68, 68, 0.15)"},title:o?"Collapse":`Show ${q.length} live session${1===q.length?"":"s"}`,children:[(0,b.jsx)("span",{style:{display:"inline-block",width:6,height:6,borderRadius:"50%",background:"#ef4444",animation:"cs-live-pulse 1.6s ease-in-out infinite"}}),"Live · ",(0,b.jsx)("span",{suppressHydrationWarning:!0,children:q.length})]}),o&&s>0&&(0,b.jsxs)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",padding:"0 4px",textAlign:"right"},children:["+",s," more live"]}),r.map(a=>{let c=k[a.id];return(0,b.jsxs)(e.default,{href:`/sessions/${a.id}`,style:{display:"block",padding:"10px 12px",background:"var(--af-surface-elevated)",border:"1px solid var(--af-border-subtle)",borderLeft:"2px solid #ef4444",borderRadius:8,boxShadow:"0 4px 16px rgba(0, 0, 0, 0.12)",textDecoration:"none",color:"var(--af-text)",fontSize:11,lineHeight:1.35,backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)"},title:(a.lastUserPreview||a.firstUserPreview||a.lastAgentPreview)??(0,f.prettyProjectName)(a.projectName),children:[c&&(0,b.jsx)("div",{onClick:a=>a.stopPropagation(),style:{marginBottom:4},children:c.outcome?(0,b.jsx)(i.OutcomePill,{outcome:c.outcome,size:"sm",label:"text",agent:a.agent}):"skipped_trivial"!==c.enrichmentStatus?(0,b.jsx)(i.OutcomePill,{outcome:null,pending:!0,sessionId:a.id,localDay:c.localDay,size:"sm",agent:a.agent}):null}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,fontWeight:500,color:"var(--af-text)",minWidth:0},children:[(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:a.lastUserPreview||a.firstUserPreview||(0,b.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"(no user message)"})}),(0,b.jsx)(g.TeamBadge,{session:a,linkable:!1}),(0,b.jsx)(h.AgentBadge,{agent:a.agent})]}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-secondary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:3,fontStyle:"italic"},children:a.lastAgentPreview?(0,b.jsxs)(b.Fragment,{children:["↳ ",a.lastAgentPreview]}):(0,b.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"waiting…"})}),(0,b.jsx)("div",{style:{fontSize:9,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",marginTop:4,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(0,f.prettyProjectName)(a.projectName)})]},a.id)}),(0,b.jsx)("style",{children:`
2
2
  @keyframes cs-live-pulse {
3
3
  0%, 100% { opacity: 1; transform: scale(1); }
4
4
  50% { opacity: 0.4; transform: scale(0.85); }
@@ -11,6 +11,6 @@ module.exports=[44422,a=>{"use strict";var b=a.i(87924),c=a.i(38246),d=a.i(50944
11
11
  .cs-job-spin {
12
12
  animation: cs-job-spin 1s linear infinite;
13
13
  }
14
- `})]})}],22309)},10605,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d="fleetlens:menubar-banner-dismissed";a.s(["MenubarInstallBanner",0,function(){let[a,e]=(0,c.useState)(!0),[f,g]=(0,c.useState)(null),[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(null);if((0,c.useEffect)(()=>{let a=!1;return fetch("/api/menubar",{cache:"no-store"}).then(a=>a.json()).then(b=>{if(a)return;g(b);let c=window.localStorage.getItem(d);b.supported&&b.bundled&&!b.installed&&!c&&e(!1)}).catch(()=>{}),()=>{a=!0}},[]),(0,c.useEffect)(()=>{f?.installed&&e(!0)},[f?.installed]),a)return null;async function l(){i(!0),k(null);let a=await fetch("/api/menubar",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"install"})}),b=await a.json().catch(()=>null);(i(!1),a.ok)?g(b):k(b?.error??`Error ${a.status}`)}return(0,b.jsxs)("div",{role:"status",style:{padding:"10px 24px",background:"var(--af-accent-subtle)",borderBottom:"1px solid var(--af-accent)",color:"var(--af-text)",fontSize:13,display:"flex",gap:12,alignItems:"center"},children:[(0,b.jsxs)("span",{style:{flex:1},children:["Get live Claude Code / Codex / Z.ai plan usage in your menu bar (Grok sessions live on the dashboard) —"," ",(0,b.jsx)("strong",{children:"install the Fleetlens widget"}),"."]}),(0,b.jsx)("button",{type:"button",className:"af-btn af-btn-primary",disabled:h,onClick:()=>void l(),style:{fontSize:12,padding:"4px 12px"},children:h?"Installing…":"Install"}),(0,b.jsx)("button",{type:"button",onClick:()=>{window.localStorage.setItem(d,"1"),e(!0)},"aria-label":"Dismiss",style:{background:"transparent",border:"none",color:"var(--af-text-tertiary)",cursor:"pointer",fontSize:16,lineHeight:1,padding:"2px 6px"},children:"×"}),j&&(0,b.jsx)("span",{style:{color:"var(--af-danger, #dc2626)"},children:j})]})}])}];
14
+ `})]})}],22309)},10605,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d="fleetlens:menubar-banner-dismissed";a.s(["MenubarInstallBanner",0,function(){let[a,e]=(0,c.useState)(!0),[f,g]=(0,c.useState)(null),[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(null);if((0,c.useEffect)(()=>{let a=!1;return fetch("/api/menubar",{cache:"no-store"}).then(a=>a.json()).then(b=>{if(a)return;g(b);let c=window.localStorage.getItem(d);b.supported&&b.bundled&&!b.installed&&!c&&e(!1)}).catch(()=>{}),()=>{a=!0}},[]),(0,c.useEffect)(()=>{f?.installed&&e(!0)},[f?.installed]),a)return null;async function l(){i(!0),k(null);let a=await fetch("/api/menubar",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"install"})}),b=await a.json().catch(()=>null);(i(!1),a.ok)?g(b):k(b?.error??`Error ${a.status}`)}return(0,b.jsxs)("div",{role:"status",style:{padding:"10px 24px",background:"var(--af-accent-subtle)",borderBottom:"1px solid var(--af-accent)",color:"var(--af-text)",fontSize:13,display:"flex",gap:12,alignItems:"center"},children:[(0,b.jsxs)("span",{style:{flex:1},children:["Get live Claude Code / Codex / Copilot / Z.ai plan usage in your menu bar (Grok sessions live on the dashboard) —"," ",(0,b.jsx)("strong",{children:"install the Fleetlens widget"}),"."]}),(0,b.jsx)("button",{type:"button",className:"af-btn af-btn-primary",disabled:h,onClick:()=>void l(),style:{fontSize:12,padding:"4px 12px"},children:h?"Installing…":"Install"}),(0,b.jsx)("button",{type:"button",onClick:()=>{window.localStorage.setItem(d,"1"),e(!0)},"aria-label":"Dismiss",style:{background:"transparent",border:"none",color:"var(--af-text-tertiary)",cursor:"pointer",fontSize:16,lineHeight:1,padding:"2px 6px"},children:"×"}),j&&(0,b.jsx)("span",{style:{color:"var(--af-danger, #dc2626)"},children:j})]})}])}];
15
15
 
16
16
  //# sourceMappingURL=apps_web_components_0x014hn._.js.map