fleetlens 0.2.9 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/apps/web/.next/BUILD_ID +1 -1
- package/app/apps/web/.next/app-path-routes-manifest.json +9 -0
- package/app/apps/web/.next/build-manifest.json +6 -6
- package/app/apps/web/.next/prerender-manifest.json +3 -3
- package/app/apps/web/.next/routes-manifest.json +62 -0
- package/app/apps/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/app/apps/web/.next/server/app/_global-error.html +1 -1
- package/app/apps/web/.next/server/app/_global-error.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/app/apps/web/.next/server/app/_not-found/page.js +1 -1
- package/app/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/api/ask/route.js +3 -2
- package/app/apps/web/.next/server/app/api/ask/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/events/route.js +1 -0
- package/app/apps/web/.next/server/app/api/events/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/insights/months-index/route/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/api/insights/months-index/route/build-manifest.json +9 -0
- package/app/apps/web/.next/server/app/api/insights/months-index/route/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/api/insights/months-index/route.js +7 -0
- package/app/apps/web/.next/server/app/api/insights/months-index/route.js.map +5 -0
- package/app/apps/web/.next/server/app/api/insights/months-index/route.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/api/insights/months-index/route_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/api/insights/pdf/[key]/route/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/api/insights/pdf/[key]/route/build-manifest.json +9 -0
- package/app/apps/web/.next/server/app/api/insights/pdf/[key]/route/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/api/insights/pdf/[key]/route.js +6 -0
- package/app/apps/web/.next/server/app/api/insights/pdf/[key]/route.js.map +5 -0
- package/app/apps/web/.next/server/app/api/insights/pdf/[key]/route.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/api/insights/pdf/[key]/route_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/api/insights/route/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/api/insights/route/build-manifest.json +9 -0
- package/app/apps/web/.next/server/app/api/insights/route/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/api/insights/route.js +8 -0
- package/app/apps/web/.next/server/app/api/insights/route.js.map +5 -0
- package/app/apps/web/.next/server/app/api/insights/route.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/api/insights/route_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/api/insights/saved/[key]/route/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/api/insights/saved/[key]/route/build-manifest.json +9 -0
- package/app/apps/web/.next/server/app/api/insights/saved/[key]/route/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/api/insights/saved/[key]/route.js +6 -0
- package/app/apps/web/.next/server/app/api/insights/saved/[key]/route.js.map +5 -0
- package/app/apps/web/.next/server/app/api/insights/saved/[key]/route.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/api/insights/saved/[key]/route_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/api/insights/saved/route/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/api/insights/saved/route/build-manifest.json +9 -0
- package/app/apps/web/.next/server/app/api/insights/saved/route/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/api/insights/saved/route.js +6 -0
- package/app/apps/web/.next/server/app/api/insights/saved/route.js.map +5 -0
- package/app/apps/web/.next/server/app/api/insights/saved/route.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/api/insights/saved/route_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/api/insights/weeks-index/route/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/api/insights/weeks-index/route/build-manifest.json +9 -0
- package/app/apps/web/.next/server/app/api/insights/weeks-index/route/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/api/insights/weeks-index/route.js +7 -0
- package/app/apps/web/.next/server/app/api/insights/weeks-index/route.js.map +5 -0
- package/app/apps/web/.next/server/app/api/insights/weeks-index/route.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/api/insights/weeks-index/route_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/insights/[key]/page/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/insights/[key]/page/build-manifest.json +17 -0
- package/app/apps/web/.next/server/app/insights/[key]/page/next-font-manifest.json +6 -0
- package/app/apps/web/.next/server/app/insights/[key]/page/react-loadable-manifest.json +1 -0
- package/app/apps/web/.next/server/app/insights/[key]/page/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/insights/[key]/page.js +16 -0
- package/app/apps/web/.next/server/app/insights/[key]/page.js.map +5 -0
- package/app/apps/web/.next/server/app/insights/[key]/page.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/insights/[key]/page_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/insights/page/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/insights/page/build-manifest.json +17 -0
- package/app/apps/web/.next/server/app/insights/page/next-font-manifest.json +6 -0
- package/app/apps/web/.next/server/app/insights/page/react-loadable-manifest.json +1 -0
- package/app/apps/web/.next/server/app/insights/page/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/insights/page.js +16 -0
- package/app/apps/web/.next/server/app/insights/page.js.map +5 -0
- package/app/apps/web/.next/server/app/insights/page.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/insights/page_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/insights/print/[key]/page/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/insights/print/[key]/page/build-manifest.json +17 -0
- package/app/apps/web/.next/server/app/insights/print/[key]/page/next-font-manifest.json +6 -0
- package/app/apps/web/.next/server/app/insights/print/[key]/page/react-loadable-manifest.json +1 -0
- package/app/apps/web/.next/server/app/insights/print/[key]/page/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/insights/print/[key]/page.js +16 -0
- package/app/apps/web/.next/server/app/insights/print/[key]/page.js.map +5 -0
- package/app/apps/web/.next/server/app/insights/print/[key]/page.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/insights/print/[key]/page_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/page/build-manifest.json +3 -3
- package/app/apps/web/.next/server/app/page.js +3 -3
- package/app/apps/web/.next/server/app/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/parallelism/page/build-manifest.json +3 -3
- package/app/apps/web/.next/server/app/parallelism/page.js +1 -1
- package/app/apps/web/.next/server/app/parallelism/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/parallelism/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/projects/[slug]/page/build-manifest.json +3 -3
- package/app/apps/web/.next/server/app/projects/[slug]/page.js +2 -3
- package/app/apps/web/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/projects/page/build-manifest.json +3 -3
- package/app/apps/web/.next/server/app/projects/page.js +1 -1
- package/app/apps/web/.next/server/app/projects/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/sessions/[id]/page/build-manifest.json +3 -3
- package/app/apps/web/.next/server/app/sessions/[id]/page.js +2 -2
- package/app/apps/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/sessions/page/build-manifest.json +3 -3
- package/app/apps/web/.next/server/app/sessions/page.js +1 -1
- package/app/apps/web/.next/server/app/sessions/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/usage/page/build-manifest.json +3 -3
- package/app/apps/web/.next/server/app/usage/page.js +1 -1
- package/app/apps/web/.next/server/app/usage/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/usage/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app-paths-manifest.json +9 -0
- package/app/apps/web/.next/server/chunks/02dz_web__next-internal_server_app_api_insights_months-index_route_actions_0~h~zci.js +3 -0
- package/app/apps/web/.next/server/chunks/02dz_web__next-internal_server_app_api_insights_saved_[key]_route_actions_0a5j9yw.js +3 -0
- package/app/apps/web/.next/server/chunks/02dz_web__next-internal_server_app_api_insights_weeks-index_route_actions_0hh-1c7.js +3 -0
- package/app/apps/web/.next/server/chunks/{[externals]__0rv9ct5._.js → [externals]__0_xztrf._.js} +2 -2
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0.hmj0z._.js +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__01h_g-p._.js +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0nh-z10._.js +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0op9af~._.js +1 -1
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0ri7q~r._.js +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0rr1~~x._.js +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0s0gv.0._.js +3 -0
- package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_insights_pdf_[key]_route_actions_0lu-lnx.js +3 -0
- package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_insights_route_actions_0h8l5lz.js +3 -0
- package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_insights_saved_route_actions_13rlblw.js +3 -0
- package/app/apps/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_00t2xj6.js +68 -0
- package/app/apps/web/.next/server/chunks/{[root-of-the-server]__0sgyieh._.js → node_modules_next_dist_esm_build_templates_app-route_0ck.78s.js} +5 -5
- package/app/apps/web/.next/server/chunks/packages_parser_dist_fs_0bc7ptm.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__00z7zlm._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__08.d5ia._.js +12 -0
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0b323~k._.js +8 -0
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0euu8sa._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0gio_ck._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0gx-4qa._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0w52fbc._.js +3 -3
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0z45d0g._.js +49 -0
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__13itnvx._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/_09n75_5._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/_0r~__0v._.js +12 -0
- package/app/apps/web/.next/server/chunks/ssr/_0xies90._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_insights_[key]_page_actions_0_z2~e_.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_insights_page_actions_0zjdm~n.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_insights_print_[key]_page_actions_0a853fw.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/apps_web_components_06j3c.0._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_components_insight-report_tsx_13q2a-c._.js +12 -0
- package/app/apps/web/.next/server/chunks/ssr/apps_web_components_insights-view_tsx_11730ta._.js +6 -0
- package/app/apps/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_0-lmm4p._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_0nqz8dw._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_0t-hj0x._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0vz7_px.js +4 -0
- package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_10cdrh2.js +4 -0
- package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_12n1lw_.js +4 -0
- package/app/apps/web/.next/server/chunks/ssr/packages_parser_dist_0-jvt~a._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/packages_parser_dist_analytics_0k4dgst.js +1 -1
- package/app/apps/web/.next/server/functions-config-manifest.json +7 -1
- package/app/apps/web/.next/server/middleware-build-manifest.js +6 -6
- package/app/apps/web/.next/server/pages/500.html +1 -1
- package/app/apps/web/.next/server/server-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/server-reference-manifest.json +1 -1
- package/app/apps/web/.next/static/chunks/03.mv4y4.w-vb.js +6 -0
- package/app/apps/web/.next/static/chunks/03_7xtpi9sv4g.js +4 -0
- package/app/apps/web/.next/static/chunks/03g5dw5eskotd.js +6 -0
- package/app/apps/web/.next/static/chunks/063oimt30jeo9.js +10 -0
- package/app/apps/web/.next/static/chunks/08c1pcrocqq5s.js +6 -0
- package/app/apps/web/.next/static/chunks/0e-wrhqh4h3r5.js +2 -0
- package/app/apps/web/.next/static/chunks/0fc6dk2qtokwh.js +1 -0
- package/app/apps/web/.next/static/chunks/0i7er7_bfab36.js +10 -0
- package/app/apps/web/.next/static/chunks/0ipytyi01h0ta.js +1 -0
- package/app/apps/web/.next/static/chunks/137uw2-qbro07.js +31 -0
- package/app/apps/web/.next/static/chunks/{turbopack-17n9y8y0h4q9f.js → turbopack-169w-1._23ra_.js} +1 -1
- package/app/apps/web/app/api/insights/months-index/route.ts +80 -0
- package/app/apps/web/app/api/insights/pdf/[key]/route.ts +45 -0
- package/app/apps/web/app/api/insights/route.ts +508 -0
- package/app/apps/web/app/api/insights/saved/[key]/route.ts +11 -0
- package/app/apps/web/app/api/insights/saved/route.ts +9 -0
- package/app/apps/web/app/api/insights/weeks-index/route.ts +95 -0
- package/app/apps/web/app/insights/[key]/page.tsx +59 -0
- package/app/apps/web/app/insights/page.tsx +7 -0
- package/app/apps/web/app/insights/print/[key]/page.tsx +73 -0
- package/app/apps/web/app/layout.tsx +2 -0
- package/app/apps/web/app/projects/[slug]/page.tsx +2 -0
- package/app/apps/web/app/sessions/[id]/page.tsx +27 -1
- package/app/apps/web/app/sessions/[id]/session-view.tsx +372 -793
- package/app/apps/web/app/sessions/[id]/team-tab/adapter.ts +633 -0
- package/app/apps/web/app/sessions/[id]/team-tab/format.ts +20 -0
- package/app/apps/web/app/sessions/[id]/team-tab/team-minimap.tsx +682 -0
- package/app/apps/web/app/sessions/[id]/team-tab/team-tab-client.tsx +78 -0
- package/app/apps/web/app/sessions/[id]/team-tab/team-table.tsx +796 -0
- package/app/apps/web/app/sessions/[id]/team-tab/turn-drawer.tsx +805 -0
- package/app/apps/web/app/sessions/[id]/tool-cards.tsx +461 -0
- package/app/apps/web/app/sessions/[id]/turn-steps.tsx +306 -0
- package/app/apps/web/app/sessions/sessions-grid.tsx +36 -5
- package/app/apps/web/components/insight-report.tsx +1031 -0
- package/app/apps/web/components/insights-view.tsx +647 -0
- package/app/apps/web/components/live-refresher.tsx +11 -2
- package/app/apps/web/components/live-sessions-widget.tsx +20 -6
- package/app/apps/web/components/sidebar.tsx +8 -0
- package/app/apps/web/components/team-badge.tsx +90 -0
- package/app/apps/web/eslint.config.mjs +2 -0
- package/app/apps/web/lib/ai/chrome-pdf.ts +64 -0
- package/app/apps/web/lib/ai/insights-prompt.ts +71 -0
- package/app/apps/web/lib/ai/saved-reports.ts +83 -0
- package/app/apps/web/lib/date-range.ts +11 -2
- package/app/apps/web/lib/use-live-events.ts +7 -2
- package/app/apps/web/package.json +3 -2
- package/app/apps/web/tsconfig.tsbuildinfo +1 -1
- package/dist/daemon-worker.js +2765 -11
- package/dist/index.js +3047 -253
- package/package.json +5 -3
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__08cr2u9._.js +0 -3
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0b..h_8._.js +0 -3
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0cdd~8n._.js +0 -3
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0ms7h0~._.js +0 -8
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0~a~v00._.js +0 -3
- package/app/apps/web/.next/server/chunks/ssr/_0zv~jv-._.js +0 -12
- package/app/apps/web/.next/server/chunks/ssr/_12dtryh._.js +0 -12
- package/app/apps/web/.next/server/chunks/ssr/node_modules_0i2xw~e._.js +0 -3
- package/app/apps/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_0.knjn.._.js +0 -3
- package/app/apps/web/.next/static/chunks/0257pdz1-imal.js +0 -2
- package/app/apps/web/.next/static/chunks/03fw7f2obcvq~.js +0 -6
- package/app/apps/web/.next/static/chunks/07oyxajlp3dvb.js +0 -6
- package/app/apps/web/.next/static/chunks/0a24elrqoqqep.js +0 -10
- package/app/apps/web/.next/static/chunks/0i4zodv86~~~i.js +0 -1
- package/app/apps/web/.next/static/chunks/0qmh881w772ef.js +0 -31
- package/app/apps/web/.next/static/chunks/0rbm60-qyshdm.js +0 -6
- package/app/apps/web/.next/static/chunks/0wdga7zbwvg70.js +0 -1
- /package/app/apps/web/.next/static/{2rEsiJssG30QsuNT0Lp9S → G_4ofKI9v9ARC_lb9JILZ}/_buildManifest.js +0 -0
- /package/app/apps/web/.next/static/{2rEsiJssG30QsuNT0Lp9S → G_4ofKI9v9ARC_lb9JILZ}/_clientMiddlewareManifest.js +0 -0
- /package/app/apps/web/.next/static/{2rEsiJssG30QsuNT0Lp9S → G_4ofKI9v9ARC_lb9JILZ}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
module.exports=[6156,e=>{"use strict";var t=e.i(47909),s=e.i(74017),n=e.i(96250),r=e.i(59756),a=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),p=e.i(95169),c=e.i(47587),d=e.i(66012),h=e.i(70101),g=e.i(74838),m=e.i(10372),_=e.i(93695);e.i(52474);var f=e.i(220),y=e.i(66536);let w=/\[request interrupted|interrupted by user/i,b=/(?<=[.!?])\s+(?=[A-Z[`])/,v=/\[Image:\s*source:\s*[^\]]+\]/g,k=/--title\s+["']([^"']+)["']/,T=/\|\||&&|;|\|/,x=new Set(["sudo","time","nohup","nice","env","exec"]);function M(e,t){if(!e)return"";let s=e.replace(/\s+/g," ").trim();return s.length<=t?s:s.slice(0,t-1)+"…"}function S(e){if(!e)return e;let t=0;return e.replace(v,()=>`[Image #${++t}]`)}function R(e){if(!e)return"?";let t=e.split(T,1)[0].trim();if(t.startsWith("cd ")||"cd"===t){let s=e.split(/&&|;/,3);s.length>=2&&(t=s[1].trim())}let s=t.split(/\s+/).filter(Boolean);for(;s.length&&x.has(s[0]);)s.shift();if(!s.length)return"?";let n=s[0];if(n.includes("=")&&!n.startsWith("/")){if(s.shift(),!s.length)return"?";n=s[0]}return n.includes("/")&&!n.startsWith("./")&&(n=n.replace(/\/+$/,"").split("/").pop()),n.replace(/^["']|["']$/g,"")||"?"}function C(e,t){let s=[...e.eventTs].sort((e,t)=>e-t),n=0;for(let e=1;e<s.length;e++){let t=s[e]-s[e-1];t<18e4&&(n+=t)}let r=void 0!==e.startMs&&void 0!==e.lastMs?e.lastMs-e.startMs:0;t.push({startMs:e.startMs??0,activeMs:n,wallMs:r,userInput:e.userInput,firstAgentText:e.firstAgentText,lastAgentText:e.lastAgentText,firstToolsIfNoText:e.firstToolsIfNoText,toolsTotal:e.toolsTotal,toolMix:e.toolMix,bashVerbs:e.bashVerbs,skills:e.skills,subagents:e.subagents,taskOps:e.taskOps,toolErrors:e.toolErrors,consecSameToolMax:e.consecSameToolMax,endedInInterrupt:e.endedInInterrupt,models:e.models,totalTokens:e.tokensIn+e.tokensOut+e.tokensCacheR+e.tokensCacheW})}var A=e.i(30212),N=e.i(79357);let E=`You are the Insights analyst for Fleetlens, a dashboard for Claude Code sessions.
|
|
2
|
+
|
|
3
|
+
You receive a JSON payload summarising one calendar period (week or 4-weeks). The numbers are already computed — you do NOT do arithmetic, you interpret and name patterns.
|
|
4
|
+
|
|
5
|
+
## Your output
|
|
6
|
+
|
|
7
|
+
Return EXACTLY ONE JSON object inside a \`\`\`json fenced code block. No prose before or after. Schema:
|
|
8
|
+
|
|
9
|
+
{
|
|
10
|
+
"archetype": {
|
|
11
|
+
"label": "Orchestration Conductor" | "Deep-dive Conversationalist" | "Fire-and-go Operator" | "Solo Builder" | "Context Switcher" | "Research Explorer",
|
|
12
|
+
"icon": "Network" | "BrainCircuit" | "Zap" | "Compass" | "Layers3" | "Sparkles",
|
|
13
|
+
"tagline": "… short phrase, ≤ 70 chars, describing working style …",
|
|
14
|
+
"why": "… 1-2 sentences grounded in aggregate numbers (e.g. 'You ran X subagent dispatches across Y turns…') …",
|
|
15
|
+
"vs_usual": "… OPTIONAL: only populate if \`prior\` is non-empty. 1 sentence contrasting this week's archetype + behaviour with the baseline (e.g. 'More orchestrated than the last 4 weeks (usual: Solo Builder)'). Omit the key entirely otherwise."
|
|
16
|
+
},
|
|
17
|
+
"theme_headline": "3-7 words capturing the period's dominant theme",
|
|
18
|
+
"shipped_summaries": {
|
|
19
|
+
"<session_id>": "1-sentence characterisation of the shipped work"
|
|
20
|
+
},
|
|
21
|
+
"patterns": [
|
|
22
|
+
{ "icon": "Repeat" | "ClipboardList" | "GitCommit" | "Network" | "BrainCircuit" | "Zap" | "TrendingUp" | "TrendingDown",
|
|
23
|
+
"title": "…",
|
|
24
|
+
"stat": "…",
|
|
25
|
+
"note": "1 short sentence" }
|
|
26
|
+
// 2-4 patterns total
|
|
27
|
+
],
|
|
28
|
+
"concurrency_insight": "1-2 sentences about parallelism shape. Empty string if no concurrency data.",
|
|
29
|
+
"concurrency_suggestion": "1 sentence, actionable. Empty string if nothing useful.",
|
|
30
|
+
"outlier_notes": {
|
|
31
|
+
"longest_run": "1 line takeaway",
|
|
32
|
+
"fastest_ship": "…",
|
|
33
|
+
"most_errors": "…",
|
|
34
|
+
"wandered": "…"
|
|
35
|
+
},
|
|
36
|
+
"suggestion_headline": "bold, imperative, ≤ 70 chars",
|
|
37
|
+
"suggestion_body": "2-3 sentences. Grounded in what you saw. Actionable."
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
## Archetype guide
|
|
41
|
+
|
|
42
|
+
- **Orchestration Conductor** — heavy subagent_calls, long unsupervised turns, planning unfolds in-session.
|
|
43
|
+
- **Deep-dive Conversationalist** — high turn_count per session, rapid user↔agent ping-pong, low subagent use.
|
|
44
|
+
- **Fire-and-go Operator** — few user turns per session, long autonomous runs, minimal interruption.
|
|
45
|
+
- **Solo Builder** — mid-length sessions, steady cadence, low subagent use, high direct edit/bash ratio.
|
|
46
|
+
- **Context Switcher** — many short sessions across many projects, high cross-project count.
|
|
47
|
+
- **Research Explorer** — Grep/Read/WebFetch heavy, low commits, exploratory outcomes.
|
|
48
|
+
|
|
49
|
+
Pick exactly one. If borderline, pick the closer fit and say so in the \`why\`.
|
|
50
|
+
|
|
51
|
+
## Rules
|
|
52
|
+
|
|
53
|
+
1. **Ground every claim** — every sentence you write must reference a number or fact in the data. Never invent. Never include unreferenced general advice.
|
|
54
|
+
2. **No vanity metrics** — don't quote total tokens, total cost, total sessions as headline claims. Use behavioural signals (subagent_calls, session length distribution, plan mode use, interrupt rate, concurrency peak).
|
|
55
|
+
3. **Short and concrete** — no filler words. "You ran X this week" not "This past week saw the user running X."
|
|
56
|
+
4. **Valid JSON** — strict. No trailing commas. No comments in the output. No text outside the fence.
|
|
57
|
+
5. **Shipped summaries** — if capsules have pr_titles, write one summary per session_id that shipped. Use capsule first_user / final_agent / flags for texture.
|
|
58
|
+
6. **Pattern selection** — pick 2-4 patterns where the signal is strongest. Don't pad. If plan_mode usage is zero and it's a busy week, say so. If loop_suspected flags correlate with shipping, call that out.`;var O=e.i(41673),I=e.i(74533);let D=["BrainCircuit","ClipboardList","Compass","GitCommit","Layers3","Network","Repeat","Rocket","Sparkles","TrendingDown","TrendingUp","Users","Zap"];function $(e){return D.includes(e)?e:"Sparkles"}async function j(e){let t;try{t=await e.json()}catch{return Response.json({error:"invalid JSON"},{status:400})}let s=new TextEncoder,n=new ReadableStream({async start(e){let n=!1;function r(t){if(!n)try{e.enqueue(s.encode(`data: ${JSON.stringify(t)}
|
|
59
|
+
|
|
60
|
+
`))}catch{n=!0}}let a=(e,t)=>r({type:"status",phase:e,text:t});function o(){if(!n){try{e.close()}catch{}n=!0}}let i=Date.now();try{var l,u,p,c,d;let e,s,n,h,g,m,_,f,v=function(e){switch(e.range_type){case"prior_week":return{...(0,A.priorCalendarWeek)(),range_type:"week",in_progress:!1};case"4weeks_completed":return{...(0,A.last4CompletedWeeks)(),range_type:"4weeks",in_progress:!1};case"4weeks":{let e=(0,A.calendarWeek)().end,t=new Date(e);return t.setDate(e.getDate()-27),{start:t,end:e,range_type:"4weeks",in_progress:!0}}case"prior_month":return{...(0,A.priorCalendarMonth)(),range_type:"month",in_progress:!1};case"month":return{...(0,A.calendarMonth)(),range_type:"month",in_progress:!0};case"custom":{if(!e.since||!e.until)throw Error("custom range requires since + until");let t=new Date(e.since),s=new Date(e.until),n=7===Math.round((s.getTime()-t.getTime())/864e5)+1&&1===t.getDay(),r=new Date(t.getFullYear(),t.getMonth()+1,0),a=1===t.getDate()&&s.getFullYear()===r.getFullYear()&&s.getMonth()===r.getMonth()&&s.getDate()===r.getDate();return{start:t,end:s,range_type:n?"week":a?"month":"custom",in_progress:!1}}default:return{...(0,A.calendarWeek)(),range_type:"week",in_progress:!0}}}(t),T="week"===v.range_type?v.in_progress?"this week (in progress)":"last week":"4weeks"===v.range_type?v.in_progress?"last 4 weeks (incl. current)":"last 4 completed weeks":"month"===v.range_type?v.in_progress?"this month (in progress)":"last month":"custom range";a("data",`Window: ${T}`);let x=(await (0,y.listSessions)({limit:1e4})).filter(e=>{if(!e.firstTimestamp)return!1;let t=new Date(e.firstTimestamp).getTime();return t>=v.start.getTime()&&t<=v.end.getTime()});a("data",`${x.length} sessions found in range`);let E=[],I=0;for(let e=0;e<x.length;e+=8){let t=x.slice(e,e+8);for(let e of(await Promise.all(t.map(async e=>{try{let t=await (0,y.getSession)(e.id);if(!t)return null;return function(e,t={}){let s,n,r,a,o,i,{compact:l=!1}=t,u=[],p=0,c=0,d=new Map,h=0,g=0,m=0,_=0,f=[],y=[];for(let t of e.events){let e=function(e){if(!e)return;let t=Date.parse(e);return Number.isNaN(t)?void 0:t}(t.timestamp);void 0!==e&&((void 0===a||e<a)&&(a=e),(void 0===o||e>o)&&(o=e),y.push(e));let i=t.rawType,l=t.raw,b=l?.message??{},v=b.content;if("user"===i)if(Array.isArray(v)&&v.length>0&&v.every(e=>e&&"object"==typeof e&&"tool_result"===e.type)){if(Array.isArray(v))for(let e of v)e&&"object"==typeof e&&"tool_result"===e.type&&e.is_error&&(h++,r&&r.toolErrors++);r&&void 0!==e&&(r.eventTs.push(e),r.lastMs=e)}else{let t=function(e){if(!Array.isArray(e))return"";for(let t of e)if(t&&"object"==typeof t&&"text"===t.type)return String(t.text??"");return""}(v)||("string"==typeof v?v:"");r&&(t&&w.test(t)&&(r.endedInInterrupt=!0,g++),C(r,f)),r=function(e,t=""){return{startMs:e,lastMs:e,eventTs:void 0!==e?[e]:[],userInput:t,firstToolsIfNoText:[],toolsTotal:0,toolMix:new Map,bashVerbs:new Map,skills:new Map,subagents:[],taskOps:0,toolErrors:0,consecSameToolMax:0,consec:0,endedInInterrupt:!1,models:new Map,tokensIn:0,tokensOut:0,tokensCacheR:0,tokensCacheW:0,seenMsgIds:new Set}}(e,t),s||!t||t.startsWith("<command-name>")||(s=t)}else if("assistant"===i){r&&void 0!==e&&(r.eventTs.push(e),r.lastMs=e);let t=b.model;t&&(d.set(t,(d.get(t)??0)+1),r&&r.models.set(t,(r.models.get(t)??0)+1));let s=b.id,a=b.usage;if(r&&s&&!r.seenMsgIds.has(s)&&a&&(r.seenMsgIds.add(s),r.tokensIn+=a.input_tokens??0,r.tokensOut+=a.output_tokens??0,r.tokensCacheR+=a.cache_read_input_tokens??0,r.tokensCacheW+=a.cache_creation_input_tokens??0),Array.isArray(v)){for(let e of v)if(e&&"object"==typeof e){if("text"===e.type&&e.text)n=e.text,r&&(void 0===r.firstAgentText&&(r.firstAgentText=e.text),r.lastAgentText=e.text);else if("tool_use"===e.type){let t=e.name??"unknown";if(r){if(r.toolsTotal++,r.toolMix.set(t,(r.toolMix.get(t)??0)+1),void 0===r.firstAgentText&&r.firstToolsIfNoText.length<3&&r.firstToolsIfNoText.push(t),t===r.lastTool?r.consec++:(r.lastTool=t,r.consec=1),r.consec>r.consecSameToolMax&&(r.consecSameToolMax=r.consec),"Skill"===t){let t=String(e.input?.skill??"unknown");r.skills.set(t,(r.skills.get(t)??0)+1)}else if("ToolSearch"===t){let t=String(e.input?.query??""),s=`(ToolSearch: ${M(t,60)})`;r.skills.set(s,(r.skills.get(s)??0)+1)}if("Agent"===t){let t=e.input??{};r.subagents.push({type:String(t.subagent_type??"general-purpose"),model:"string"==typeof t.model?t.model:void 0,description:M(String(t.description??""),80),prompt_preview:M(String(t.prompt??""),240),background:!!t.run_in_background})}"ExitPlanMode"===t&&m++,("TodoWrite"===t||"TaskCreate"===t||"TaskUpdate"===t)&&(r.taskOps++,_++)}if("Bash"===t){let t=String(e.input?.command??"");if(r&&r.bashVerbs.set(R(t),(r.bashVerbs.get(R(t))??0)+1),/\bgh\s+pr\s+create\b/.test(t)){let e=t.match(k);u.push(e?.[1]??t.slice(0,120))}/\bgit\s+commit\b/.test(t)&&p++,/\bgit\s+push\b/.test(t)&&c++}}}}}}r&&C(r,f);let v=[...y].sort((e,t)=>e-t),T=0;for(let e=1;e<v.length;e++){let t=v[e]-v[e-1];t<18e4&&(T+=t)}let x=f.map(e=>e.activeMs),A=f.map(e=>e.toolsTotal),N=f.map(e=>e.totalTokens),E=f.filter(e=>e.subagents.length>0).length,O=[...d.entries()].sort((e,t)=>t[1]-e[1])[0]?.[0],I=Math.max(0,...f.map(e=>e.consecSameToolMax)),D=Math.max(0,...x),$=new Map,j=[];for(let e of f){for(let[t,s]of e.skills)$.set(t,($.get(t)??0)+s);j.push(...e.subagents)}let P=[...$.values()].reduce((e,t)=>e+t,0),U=u.length;i=U>0?"shipped":p>0&&c>0?"shipped-no-pr":p>0?"partial":T<12e4&&f.length<3?"trivial":"exploratory";let q=[];g>=3&&q.push("interrupt_heavy"),h>=20&&q.push("high_errors"),I>=8&&q.push("loop_suspected"),T<3e5&&U>=1&&q.push("fast_ship"),m>0&&q.push("plan_used"),E>=3&&q.push("orchestrated"),D>=12e5&&0===g&&q.push("long_autonomous");let B=Math.max(1,...N),W=Math.max(1,...A);function F(e){return .5*(e.totalTokens/B)+.5*(e.toolsTotal/W)}let L=f.filter(e=>e.activeMs>=15e3||e.toolsTotal>=1),H=f.length-L.length;L.length>25&&(L=[...L].sort((e,t)=>F(t)-F(e)).slice(0,25)),L.sort((e,t)=>(e.startMs??0)-(t.startMs??0));let V={session_id:e.id,project:e.projectName,start_iso:e.firstTimestamp,end_iso:e.lastTimestamp,outcome:i,flags:q,primary_model:O,model_mix:Object.fromEntries(d),numbers:{active_min:Math.round(T/6e3)/10,turn_count:f.length,longest_turn_min:Math.round(D/6e3)/10,median_turn_min:Math.round(function(e){if(0===e.length)return 0;let t=[...e].sort((e,t)=>e-t),s=t.length;return s%2?t[s>>1]:(t[(s>>1)-1]+t[s>>1])/2}(x)/6e3)/10,p90_turn_min:Math.round(function(e){if(0===e.length)return 0;let t=[...e].sort((e,t)=>e-t);return t[Math.min(Math.floor(.9*t.length),t.length-1)]}(x)/6e3)/10,tools_total:A.reduce((e,t)=>e+t,0),tokens_total:N.reduce((e,t)=>e+t,0),subagent_turns:E,subagent_calls:j.length,skill_calls:P,task_ops:_,interrupts:g,tool_errors:h,consec_same_tool_max:I,exit_plan_calls:m,prs:U,commits:p,pushes:c},pr_titles:u,first_user:M(S(s??""),400),final_agent:M(S(n??""),400)};return $.size>0&&(V.skills=Object.fromEntries($)),j.length>0&&(V.subagents=j),l||(V.numbers.turns_in_capsule=L.length,V.numbers.trivial_turns_dropped=H,V.turns=L.map(function(e){let t=e.startMs&&a?(e.startMs-a)/1e3:0,s=[];for(let[t,n]of[...e.toolMix.entries()].sort((e,t)=>t[1]-e[1]).slice(0,3))if("Bash"===t&&e.bashVerbs.size>0){let t=[...e.bashVerbs.entries()].sort((e,t)=>t[1]-e[1]).slice(0,3).map(([e,t])=>t>1?`${e}\xd7${t}`:e).join(", ");s.push(`Bash\xd7${n} (${t})`)}else s.push(n>1?`${t}\xd7${n}`:t);let n=e.firstAgentText??(e.firstToolsIfNoText.length>0?`(tools only: ${e.firstToolsIfNoText.join(", ")})`:""),r=M(S(n),260),o=function(e,t=3,s=500){if(!e)return"";let n=e.replace(/\s+/g," ").trim().split(b).slice(0,t).join(" ").trim();return n.length>s?n.slice(0,s-1)+"…":n}(S(e.lastAgentText??""),3,500),i=e.endedInInterrupt?"interrupt":e.lastAgentText?"text":"tool-in-flight",l=[...e.models.entries()].sort((e,t)=>t[1]-e[1])[0]?.[0],u={t_offset_min:Math.round(t/6)/10,active_min:Math.round(e.activeMs/6e3)/10,wall_min:Math.round(e.wallMs/6e3)/10,user_input:M(S(e.userInput),300),tools_total:e.toolsTotal,top_tools:s,tokens:e.totalTokens,errors:e.toolErrors,consec_same_tool_max:e.consecSameToolMax,ended:i,model:l};return r&&o&&r===o?u.agent=r:n&&e.lastAgentText&&e.firstAgentText===e.lastAgentText?u.agent=o:(u.first_agent=r,u.final_agent=o),e.skills.size>0&&(u.skills=Object.fromEntries(e.skills)),e.subagents.length>0&&(u.subagents=e.subagents),u})),V}(t,{compact:!0})}catch{return null}}))))e&&("trivial"===e.outcome?I++:E.push(e));a("data",`Built ${E.length}/${x.length} capsules (${I} trivial)`)}a("data",`Aggregating ${E.length} sessions over ${Math.round((v.end.getTime()-v.start.getTime())/864e5)+1} days`);let D=(0,A.buildPeriodBundle)(E,{period:v,trivial_dropped:I,sessions_total:x.length});a("data","Computing concurrency bursts"),D.concurrency=(0,A.aggregateConcurrency)((0,N.computeBurstsFromSessions)(x),v),a("data","Loading license utilization");try{D.usage=await (0,y.loadUsageByDay)(v.start,v.end)}catch{}a("data","Loading prior reports for baseline comparison");let j=await U(4),B=JSON.stringify({period:D.period,aggregates:D,capsules:E,prior:j}),W=Math.round(B.length/1024);a("analyst",`Sending ${W} KB to Claude (sonnet)`);let F=await P(B,a);if(!F){r({type:"error",message:"Analyst returned no parseable JSON."}),o();return}a("compose","Merging aggregates + narrative");let L=(l=D,u=F,p=v,c=W,d=j,e=Object.entries(l.skills_total).sort((e,t)=>t[1]-e[1]).slice(0,6).map(([e,t])=>({name:e,count:t})),s=l.by_day.map((e,t)=>{let s=l.concurrency?.by_day[t],n=l.usage?.by_day.find(t=>t.date===e.date);return{day_name:e.day_name,date_label:new Date(e.date).toLocaleDateString("en-US",{month:"short",day:"numeric"}),agent_minutes:Math.round(e.agent_min),sessions:e.sessions,concurrency_peak:s?.peak??0,has_cross_project:!!s?.has_cross_project,plan_util_pct:n?.peak_util_pct??0,is_partial:new Date(e.date).getTime()>Date.now()}}),n=l.project_shares.map(e=>({name:e.name,display_name:e.display_name,agent_minutes:Math.round(e.agent_min),share_pct:e.share_pct,prs:e.prs,commits:e.commits})),h=l.shipped_prs.map(e=>({title:e.title,project:e.project,duration_label:q(e.active_min),commits:e.commits,subagents:e.subagents,flags:e.flags,summary:u.shipped_summaries[e.session_id]??""})),g=[],l.outliers.longest_run&&g.push({label:"Longest run",detail:q(l.outliers.longest_run.active_min),note:u.outlier_notes.longest_run??l.outliers.longest_run.project}),l.outliers.fastest_ship&&g.push({label:"Fastest ship",detail:q(l.outliers.fastest_ship.active_min),note:u.outlier_notes.fastest_ship??l.outliers.fastest_ship.pr_title}),l.outliers.most_errors&&g.push({label:"Most errors",detail:String(l.outliers.most_errors.tool_errors),note:u.outlier_notes.most_errors??l.outliers.most_errors.project}),l.outliers.wandered&&g.push({label:"Wandered",detail:q(l.outliers.wandered.active_min),note:u.outlier_notes.wandered??l.outliers.wandered.project}),m=p.in_progress?" · in progress":"",_="4weeks"===l.period.range_type?"Last 4 weeks ·":"month"===l.period.range_type?"Month of":"Week of",f="4weeks"===l.period.range_type?"Calendar 4-week rollup":"month"===l.period.range_type?"Calendar month":"Calendar week · Mon–Sun",{period_label:`${_} ${l.period.label}`,period_sublabel:`${f}${m}`,range_type:l.period.range_type,archetype:{label:u.archetype.label,icon:$(u.archetype.icon),tagline:u.archetype.tagline,why:u.archetype.why,vs_usual:u.archetype.vs_usual},top_skills:e,days:s,theme_headline:u.theme_headline,projects:n,shipped:h,patterns:u.patterns.map(e=>({icon:$(e.icon),title:e.title,stat:e.stat,note:e.note})),concurrency:{multi_agent_days:l.concurrency?.multi_agent_days??0,peak:l.concurrency?.peak??0,peak_day:l.concurrency?.peak_day?new Date(l.concurrency.peak_day).toLocaleDateString("en-US",{weekday:"short",month:"short",day:"numeric"}):"—",cross_project_days:l.concurrency?.cross_project_days??0,insight:u.concurrency_insight,suggestion:u.concurrency_suggestion},outliers:g,suggestion_headline:u.suggestion_headline,suggestion_body:u.suggestion_body,prior_weeks:d,saved_reports:[],meta:{generated_at:new Date().toISOString().replace("T"," ").slice(0,16),sessions_total:l.counts.sessions_total,sessions_used:l.counts.substantive,trivial_dropped:l.counts.trivial_dropped,model:"claude-sonnet-4-6",pipeline_ms:0,context_kb:c}});if(L.meta.pipeline_ms=Date.now()-i,r({type:"report",report:L}),!v.in_progress){a("compose","Saving report to disk");let e=(0,O.keyForRange)(v.range_type,D.period.start);try{await (0,O.saveReport)(e,L),r({type:"saved",key:e,saved_at:new Date().toISOString()})}catch(e){r({type:"status",phase:"compose",text:`(save failed: ${e.message})`})}}r({type:"done"}),o()}catch(e){r({type:"error",message:e.message}),o()}}});return new Response(n,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}async function P(e,t){let s=`Period payload:
|
|
61
|
+
|
|
62
|
+
${e}
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
Return the JSON per your system instructions.`;return new Promise(e=>{let n=(0,I.spawn)("claude",["-p","--output-format","stream-json","--verbose","--model","sonnet","--tools","","--disable-slash-commands","--no-session-persistence","--setting-sources","","--append-system-prompt",E],{stdio:["pipe","pipe","pipe"],env:{...process.env}});n.stdin.write(s),n.stdin.end();let r="",a=-1,o=Date.now();n.stdout.on("data",e=>{for(let s of e.toString("utf8").split("\n")){let e=s.trim();if(e)try{let s=JSON.parse(e);if("assistant"===s.type){let e=s.message,n=e?.content;if(Array.isArray(n)){for(let e of n)if("text"===e.type&&"string"==typeof e.text){r+=e.text;let s=Math.floor(r.length/1024);if(s>a){a=s;let e=Math.round((Date.now()-o)/1e3);t("analyst",`Claude composing… ${r.length.toLocaleString()} chars (${e}s)`)}}}}}catch{}}}),n.on("close",()=>{let t=function(e){let t=/```json\s*([\s\S]*?)```/m.exec(e);if(t)return t[1].trim();let s=e.indexOf("{"),n=e.lastIndexOf("}");return -1!==s&&n>s?e.slice(s,n+1):null}(r);if(!t)return void e(null);try{e(JSON.parse(t))}catch{e(null)}}),n.on("error",()=>e(null))})}async function U(e){let t=(await (0,O.listSavedReports)()).filter(e=>e.key.startsWith("week-")).slice(0,e),s=[];for(let e of t){let t=await (0,O.getSavedReport)(e.key);t&&s.push({period_label:t.period_label,archetype:t.archetype.label,sessions:t.meta.sessions_used,prs:t.shipped.length,subagents:t.concurrency.peak,agent_minutes:t.days.reduce((e,t)=>e+t.agent_minutes,0)})}return s}function q(e){if(e<60){let t=Math.floor(e),s=Math.round((e-t)*60);return 0===t&&s>0?`${s}s`:0===s?`${t}m`:`${t}m ${s}s`}let t=Math.floor(e/60),s=Math.round(e-60*t);return`${t}h ${s}m`}e.s(["POST",0,j,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],63696);var B=e.i(63696);let W=new t.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/insights/route",pathname:"/api/insights",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/insights/route.ts",nextConfigOutput:"standalone",userland:B,...{}}),{workAsyncStorage:F,workUnitAsyncStorage:L,serverHooks:H}=W;async function V(e,t,n){n.requestMeta&&(0,r.setRequestMeta)(e,n.requestMeta),W.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/insights/route";y=y.replace(/\/index$/,"")||"/";let w=await W.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:b,params:v,nextConfig:k,parsedUrl:T,isDraftMode:x,prerenderManifest:M,routerServerContext:S,isOnDemandRevalidate:R,revalidateOnlyGenerated:C,resolvedPathname:A,clientReferenceManifest:N,serverActionsManifest:E}=w,O=(0,i.normalizeAppPath)(y),I=!!(M.dynamicRoutes[O]||M.routes[A]),D=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,T,!1):t.end("This page could not be found"),null);if(I&&!x){let e=!!M.routes[A],t=M.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(k.adapterPath)return await D();throw new _.NoFallbackError}}let $=null;!I||W.isDev||x||($="/index"===($=A)?"/":$);let j=!0===W.isDev||!I,P=I&&!j;E&&N&&(0,o.setManifestsSingleton)({page:y,clientReferenceManifest:N,serverActionsManifest:E});let U=e.method||"GET",q=(0,a.getTracer)(),B=q.getActiveScopeSpan(),F=!!(null==S?void 0:S.isWrappedByNextServer),L=!!(0,r.getRequestMeta)(e,"minimalMode"),H=(0,r.getRequestMeta)(e,"incrementalCache")||await W.getIncrementalCache(e,k,M,L);null==H||H.resetRequestCache(),globalThis.__incrementalCache=H;let V={params:v,previewProps:M.preview,renderOpts:{experimental:{authInterrupts:!!k.experimental.authInterrupts},cacheComponents:!!k.cacheComponents,supportsDynamicResponse:j,incrementalCache:H,cacheLifeProfiles:k.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,s,n,r)=>W.onRequestError(e,t,n,r,S)},sharedContext:{buildId:b}},J=new l.NodeNextRequest(e),Y=new l.NodeNextResponse(t),K=u.NextRequestAdapter.fromNodeNextRequest(J,(0,u.signalFromNodeResponse)(t));try{let r,o=async e=>W.handle(K,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=q.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=s.get("next.route");if(n){let t=`${U} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",n),r.updateName(t))}else e.updateName(`${U} ${y}`)}),i=async r=>{var a,i;let l=async({previousCacheEntry:s})=>{try{if(!L&&R&&C&&!s)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(r);e.fetchMetrics=V.renderOpts.fetchMetrics;let i=V.renderOpts.pendingWaitUntil;i&&n.waitUntil&&(n.waitUntil(i),i=void 0);let l=V.renderOpts.collectedTags;if(!I)return await (0,d.sendResponse)(J,Y,a,V.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,n=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:s,expire:n}}}}catch(t){throw(null==s?void 0:s.isStale)&&await W.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:R})},!1,S),t}},u=await W.handleResponse({req:e,nextConfig:k,cacheKey:$,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:M,isRoutePPREnabled:!1,isOnDemandRevalidate:R,revalidateOnlyGenerated:C,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:L});if(!I)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(i=u.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",R?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&I||p.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(u.cacheControl)),await (0,d.sendResponse)(J,Y,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};F&&B?await i(B):(r=q.getActiveScopeSpan(),await q.withPropagatedContext(e.headers,()=>q.trace(p.BaseServerSpan.handleRequest,{spanName:`${U} ${y}`,kind:a.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},i),void 0,!F))}catch(t){if(t instanceof _.NoFallbackError||await W.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:R})},!1,S),I)throw t;return await (0,d.sendResponse)(J,Y,new Response(null,{status:500})),null}}e.s(["handler",0,V,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:F,workUnitAsyncStorage:L})},"routeModule",0,W,"serverHooks",0,H,"workAsyncStorage",0,F,"workUnitAsyncStorage",0,L],6156)}];
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_00t2xj6.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[
|
|
1
|
+
module.exports=[62952,e=>{"use strict";var t=e.i(47909),n=e.i(74017),s=e.i(96250),r=e.i(59756),o=e.i(61916),a=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),m=e.i(10372),g=e.i(93695);e.i(52474);var v=e.i(220),k=e.i(66536);let y=/\[request interrupted|interrupted by user/i,w=/rate.?limit|overloaded_error|api error|Error sending message/i,R=/^Base directory for this skill:/,M=/<command-name>(\/[^<\s]+)<\/command-name>(?:[\s\S]*?<command-args>([\s\S]*?)<\/command-args>)?/,$=/<task-notification>/;function x(e){for(let t of e)if(t?.type==="text")return t.text}function O(e){return e<1e3?String(e):e<1e4?(e/1e3).toFixed(1)+"k":e<1e6?Math.round(e/1e3)+"k":e<1e7?(e/1e6).toFixed(2)+"M":(e/1e6).toFixed(1)+"M"}function E(e){if(void 0===e||e<0)return"—";let t=Math.floor(e/1e3),n=Math.floor(t/3600),s=String(Math.floor(t%3600/60)).padStart(2,"0"),r=String(t%60).padStart(2,"0");return`${n}:${s}:${r}`}function C(e){if(void 0===e)return"—";if(e<1e3)return`${e}ms`;let t=Math.round(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60),s=t%60;if(n<60)return s?`${n}m ${s}s`:`${n}m`;let r=Math.floor(n/60),o=n%60;return o?`${r}h ${o}m`:`${r}h`}function b(e,t){if(!e)return"";let n=e.replace(/\s+/g," ").trim();return n.length>t?n.slice(0,t-1)+"…":n}var S=e.i(74533);let A=`You are a session analyst for Claude Code transcripts. The user is viewing a session in the fleetlens dashboard and wants your help understanding it.
|
|
2
2
|
|
|
3
3
|
You will receive a structured summary of the session, then the user's question about it. Respond directly and concisely in markdown.
|
|
4
4
|
|
|
@@ -8,14 +8,14 @@ Some common tasks users ask about:
|
|
|
8
8
|
- **Trace conversation flow**: Follow the logic and key decision points
|
|
9
9
|
- **Suggest improvements**: Recommend better prompting, tool usage, or workflow patterns
|
|
10
10
|
|
|
11
|
-
Be specific — cite timestamps, tool names, and event counts from the session data. Avoid generic advice. If the session data doesn't contain enough information to answer confidently, say so.`;async function T(e){let t;try{t=await e.json()}catch{return Response.json({error:"invalid JSON"},{status:400})}let{sessionId:
|
|
11
|
+
Be specific — cite timestamps, tool names, and event counts from the session data. Avoid generic advice. If the session data doesn't contain enough information to answer confidently, say so.`;async function T(e){let t;try{t=await e.json()}catch{return Response.json({error:"invalid JSON"},{status:400})}let{sessionId:n,question:s,model:r="haiku"}=t;if(!n||!s)return Response.json({error:"sessionId and question are required"},{status:400});let o=await (0,k.getSession)(n);if(!o)return Response.json({error:"session not found"},{status:404});let a=function(e){let t,n=function(e){let t=new Map;for(let n of e){if(!n.messageId)continue;let e=t.get(n.messageId)??[];e.push(n),t.set(n.messageId,e)}let n=e.filter(e=>{if("system"===e.role||"meta"===e.role||"tool-result"===e.role||"agent-thinking"===e.role)return!1;if("user"===e.role){let t=x(e.blocks)??"";if(R.test(t))return!1}return!0}),s=[];for(let e=0;e<n.length;e++){let r=n[e];if("tool-call"===r.role){let t=e;for(;e+1<n.length&&"tool-call"===n[e+1].role;)e++;let r=n.slice(t,e+1),o=[],a=new Map;for(let e of r){let t=e.toolName??"tool";a.has(t)||o.push(t),a.set(t,(a.get(t)??0)+1)}let i=o.map(e=>({name:e,count:a.get(e)??1}));s.push({kind:"tool-group",toolNames:i,count:r.length,events:r,tOffsetMs:r[0].tOffsetMs,gapMs:r[0].gapMs});continue}if("user"===r.role){let e=x(r.blocks)??"",t=function(e){if(!$.test(e))return null;let t=t=>{let n=e.match(RegExp(`<${t}>([\\s\\S]*?)<\\/${t}>`));return n?n[1].trim():void 0},n=(t("status")??"").toLowerCase(),s="unknown";return"success"===n||"ok"===n||"done"===n||"completed"===n?s="success":"failed"===n||"error"===n||"fail"===n?s="failed":("running"===n||"in_progress"===n)&&(s="running"),{status:s,summary:t("summary")??"Background task notification",taskId:t("task-id"),toolUseId:t("tool-use-id"),outputFile:t("output-file")}}(e);if(t){s.push({kind:"task-notification",event:r,status:t.status,summary:t.summary,taskId:t.taskId,toolUseId:t.toolUseId,outputFile:t.outputFile,tOffsetMs:r.tOffsetMs,gapMs:r.gapMs});continue}if(y.test(e)){s.push({kind:"interrupt",event:r,tOffsetMs:r.tOffsetMs,gapMs:r.gapMs});continue}let n=e.match(M);if(n){let e=n[1],t=(n[2]??"").trim(),o=t?`${e} ${t}`:e;s.push({kind:"user",event:r,displayPreview:o,displayBlocks:[{type:"text",text:o}],tOffsetMs:r.tOffsetMs,gapMs:r.gapMs});continue}s.push({kind:"user",event:r,tOffsetMs:r.tOffsetMs,gapMs:r.gapMs});continue}if("agent"===r.role){let e=x(r.blocks)??"";if(function(e){if(!e.usage)return!1;let t=e.usage;return 0===t.input&&0===t.output&&0===t.cacheRead&&0===t.cacheWrite}(r)){s.push({kind:"model",event:r,tOffsetMs:r.tOffsetMs,gapMs:r.gapMs}),w.test(e)&&e.length<500&&s.push({kind:"error",event:r,message:e,tOffsetMs:r.tOffsetMs,gapMs:0});continue}if(w.test(e)&&e.length<500){s.push({kind:"error",event:r,message:e,tOffsetMs:r.tOffsetMs,gapMs:r.gapMs});continue}let n=r.messageId?t.get(r.messageId)??[r]:[r];s.push({kind:"agent",event:r,groupedEvents:n,tOffsetMs:r.tOffsetMs,gapMs:r.gapMs});continue}}return s}(e.events),s=function(e){let t=[],n=[],s=()=>{let e,s;if(0===n.length)return;let r=0,o=0,a=0,i=new Map,l=new Set,u={input:0,output:0,cacheRead:0,cacheWrite:0};for(let t=0;t<n.length;t++){let s=n[t];if("agent"===s.kind){r++,void 0===e&&(e=t);let n=s.event.messageId,o=s.event.usage;n&&!l.has(n)&&o&&(l.add(n),u.input+=o.input,u.output+=o.output,u.cacheRead+=o.cacheRead,u.cacheWrite+=o.cacheWrite)}else if("tool-group"===s.kind)for(let e of(o+=s.count,s.toolNames))i.set(e.name,(i.get(e.name)??0)+e.count);else"error"===s.kind&&a++}for(let e=n.length-1;e>=0;e--){if("agent"!==n[e].kind)continue;let t=n[e-1];if(t?.kind!=="task-notification"){s=e;break}}if(void 0===s){for(let e=n.length-1;e>=0;e--)if("agent"===n[e].kind){s=e;break}}let d=void 0!==e&&"agent"===n[e].kind?n[e].event.preview:void 0,c=void 0!==s&&"agent"===n[s].kind?n[s].event.preview:void 0,p=Array.from(i.entries()).sort((e,t)=>t[1]-e[1]).map(([e,t])=>({name:e,count:t})),f=n[0],h=n[n.length-1],m=f.tOffsetMs,g=h.tOffsetMs;t.push({kind:"turn",rows:n,firstPrimaryIndex:"tool-group"===f.kind?f.events[0].index:f.event.index,tOffsetMs:m,durationMs:void 0!==m&&void 0!==g?g-m:void 0,summary:{agentMessages:r,toolCalls:o,errors:a,firstAgentPreview:d,finalAgentPreview:c,firstAgentIndex:e,finalAgentIndex:s,toolNames:p,totalTokens:u}}),n=[]};for(let r of e)"user"===r.kind||"interrupt"===r.kind?(s(),t.push(r)):n.push(r);return s(),t}(n),r=e.totalUsage.input+e.totalUsage.cacheRead+e.totalUsage.cacheWrite,o=e.totalUsage.cacheRead+e.totalUsage.cacheWrite,a=new Map;for(let e of n)if("tool-group"===e.kind)for(let t of e.toolNames)a.set(t.name,(a.get(t.name)??0)+t.count);let i=Array.from(a.entries()).sort((e,t)=>t[1]-e[1]).slice(0,8).map(([e,t])=>`${e}\xd7${t}`).join(", "),l=n.find(e=>"user"===e.kind&&!e.event.preview.startsWith("<command-name>")&&!e.event.preview.startsWith("Base directory for this skill:")),u=l?.kind==="user"?l.displayBlocks?.[0]?.type==="text"?l.displayBlocks[0].text:(t=l.event.blocks.find(e=>e?.type==="text"),t?.text??l.event.preview):"",d=n.filter(e=>"error"===e.kind),c=d.length>0?`${d.length} errors, first: "${b(d[0].message,160)}"`:"none",p=[],f=e.durationMs??0;for(let t of e.events){if("tool-call"!==t.role||"Bash"!==t.toolName)continue;let e=t.blocks.find(e=>e&&"tool_use"===e.type),n="string"==typeof e?.input?.command?e.input.command:"";if(!/gh\s+pr\s+create\b/i.test(n))continue;let s=n.match(/--title\s+["']([^"']+)["']/),r=s?.[1]??n.replace(/^gh pr create /,"").slice(0,120),o=f>0&&void 0!==t.tOffsetMs?Math.round(t.tOffsetMs/f*100):0;p.push({offsetPct:o,titleOrCmd:r})}let h="";for(let e=s.length-1;e>=0;e--){let t=s[e];if("turn"!==t.kind)continue;let n=t.summary.finalAgentIndex;if(void 0!==n){let e=t.rows[n];if(e?.kind==="agent"){let t=e.event.blocks.find(e=>e&&"text"===e.type);h=t?.text??e.event.preview;break}}}let m=[];for(let e of s){if(m.length>=40){m.push({offset:"...",line:`(+${s.length-m.length} more rows)`});break}if("user"===e.kind){let t=b(function(e){switch(e.kind){case"user":return e.displayPreview??e.event.preview;case"agent":return e.event.preview;case"tool-group":return e.toolNames.slice(0,4).map(e=>e.count>1?`${e.name} \xd7${e.count}`:e.name).join(", ");case"interrupt":return"[interrupted]";case"model":return"[zero-usage response]";case"error":return`ERROR: ${e.message}`;case"task-notification":return`BG task ${e.status}: ${e.summary}`;default:return""}}(e),180);t.startsWith("<command-name>")||m.push({offset:E(e.tOffsetMs),line:`USER: ${t}`})}else if("turn"===e.kind){let t=e.summary,n=t.firstAgentPreview?b(t.firstAgentPreview,180):"",s=t.finalAgentPreview?b(t.finalAgentPreview,180):"",r=n&&s&&n===s,o=t.toolNames.slice(0,3).map(e=>e.count>1?`${e.name}\xd7${e.count}`:e.name).join(", "),a=`${t.agentMessages} msg, ${t.toolCalls} tools${t.errors>0?`, ${t.errors} err`:""}`,i=r||!s?n:`${n} → ${s}`;m.push({offset:E(e.tOffsetMs),line:`TURN (${a}${o?`, ${o}`:""}): ${i}`})}else"interrupt"===e.kind&&m.push({offset:E(e.tOffsetMs),line:"INTERRUPT"})}let g=[];for(let t of(g.push(`# Session ${e.id}`),g.push(`project: ${e.projectName}`),e.model&&g.push(`model: ${e.model}`),g.push(`duration: ${C(e.durationMs)} | active: ${C(e.airTimeMs??e.durationMs)}`),g.push(`events: ${e.eventCount} | tokens: ${O(r)} in / ${O(e.totalUsage.output)} out${o>0?` (+${O(o)} cached)`:""}`),g.push(`tool calls: ${e.toolCallCount??0}${i?` (${i})`:""}`),g.push(`turns: ${e.turnCount??0}`),e.firstTimestamp&&g.push(`started: ${e.firstTimestamp}`),g.push(""),u&&(g.push("## First user message"),g.push(b(u,1200)),g.push("")),g.push("## Timeline"),m))g.push(`[${t.offset}] ${t.line}`);if(g.push(""),p.length>0){for(let e of(g.push("## PRs shipped"),p))g.push(`- at ${e.offsetPct}% into session: ${b(e.titleOrCmd,160)}`);g.push("")}return g.push("## Errors encountered"),g.push(c),g.push(""),h&&(g.push("## Final agent message"),g.push(b(h,800))),g.join("\n")}(o),i=`Here is the session transcript summary:
|
|
12
12
|
|
|
13
13
|
${a}
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
|
|
17
|
-
User's question: ${
|
|
17
|
+
User's question: ${s}`,l=new TextEncoder;return new Response(new ReadableStream({start(t){let n=!1;function s(e){if(!n)try{t.enqueue(l.encode(`data: ${JSON.stringify(e)}
|
|
18
18
|
|
|
19
|
-
`))}catch{
|
|
19
|
+
`))}catch{n=!0}}let o=(0,S.spawn)("claude",["-p","--output-format","stream-json","--verbose","--model",r,"--tools","","--disable-slash-commands","--no-session-persistence","--setting-sources","","--append-system-prompt",A],{stdio:["pipe","pipe","pipe"],env:{...process.env}});o.stdin.write(i),o.stdin.end();let a="";o.stdout.on("data",e=>{for(let t of e.toString("utf8").split("\n")){let e=t.trim();if(e)try{let t=JSON.parse(e);if("assistant"===t.type){let e=t.message,n=e?.content;if(Array.isArray(n))for(let e of n)"text"===e.type&&"string"==typeof e.text&&s({type:"delta",text:e.text})}if("result"===t.type){let e=t.usage,n="number"==typeof e?.input_tokens&&"number"==typeof e?.output_tokens?e.input_tokens+e.output_tokens:void 0;s({type:"done",totalTokens:n??void 0})}}catch{}}}),o.stderr.on("data",e=>{a+=e.toString("utf8")}),o.on("close",e=>{if(0===e||n||s({type:"error",message:a.trim().slice(0,300)||`claude exited with code ${e}`}),!n){try{t.close()}catch{}n=!0}}),o.on("error",e=>{if(!n){s({type:"error",message:`Failed to spawn claude: ${e.message}`});try{t.close()}catch{}n=!0}}),e.signal.addEventListener("abort",()=>{try{o.kill("SIGTERM")}catch{}if(!n){try{t.close()}catch{}n=!0}})}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}e.s(["POST",0,T,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],10796);var N=e.i(10796);let I=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/ask/route",pathname:"/api/ask",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/ask/route.ts",nextConfigOutput:"standalone",userland:N,...{}}),{workAsyncStorage:P,workUnitAsyncStorage:U,serverHooks:_}=I;async function q(e,t,s){s.requestMeta&&(0,r.setRequestMeta)(e,s.requestMeta),I.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let k="/api/ask/route";k=k.replace(/\/index$/,"")||"/";let y=await I.prepare(e,t,{srcPage:k,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:M,parsedUrl:$,isDraftMode:x,prerenderManifest:O,routerServerContext:E,isOnDemandRevalidate:C,revalidateOnlyGenerated:b,resolvedPathname:S,clientReferenceManifest:A,serverActionsManifest:T}=y,N=(0,i.normalizeAppPath)(k),P=!!(O.dynamicRoutes[N]||O.routes[S]),U=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,$,!1):t.end("This page could not be found"),null);if(P&&!x){let e=!!O.routes[S],t=O.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(M.adapterPath)return await U();throw new g.NoFallbackError}}let _=null;!P||I.isDev||x||(_="/index"===(_=S)?"/":_);let q=!0===I.isDev||!P,j=P&&!q;T&&A&&(0,a.setManifestsSingleton)({page:k,clientReferenceManifest:A,serverActionsManifest:T});let F=e.method||"GET",H=(0,o.getTracer)(),B=H.getActiveScopeSpan(),D=!!(null==E?void 0:E.isWrappedByNextServer),W=!!(0,r.getRequestMeta)(e,"minimalMode"),K=(0,r.getRequestMeta)(e,"incrementalCache")||await I.getIncrementalCache(e,M,O,W);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let L={params:R,previewProps:O.preview,renderOpts:{experimental:{authInterrupts:!!M.experimental.authInterrupts},cacheComponents:!!M.cacheComponents,supportsDynamicResponse:q,incrementalCache:K,cacheLifeProfiles:M.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,s,r)=>I.onRequestError(e,t,s,r,E)},sharedContext:{buildId:w}},G=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let r,a=async e=>I.handle(z,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=H.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=n.get("next.route");if(s){let t=`${F} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",s),r.updateName(t))}else e.updateName(`${F} ${k}`)}),i=async r=>{var o,i;let l=async({previousCacheEntry:n})=>{try{if(!W&&C&&b&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await a(r);e.fetchMetrics=L.renderOpts.fetchMetrics;let i=L.renderOpts.pendingWaitUntil;i&&s.waitUntil&&(s.waitUntil(i),i=void 0);let l=L.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(G,X,o,L.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:s}}}}catch(t){throw(null==n?void 0:n.isStale)&&await I.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:C})},!1,E),t}},u=await I.handleResponse({req:e,nextConfig:M,cacheKey:_,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:b,responseGenerator:l,waitUntil:s.waitUntil,isMinimalMode:W});if(!P)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(i=u.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",C?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return W&&P||d.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(G,X,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};D&&B?await i(B):(r=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${k}`,kind:o.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},i),void 0,!D))}catch(t){if(t instanceof g.NoFallbackError||await I.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:C})},!1,E),P)throw t;return await (0,p.sendResponse)(G,X,new Response(null,{status:500})),null}}e.s(["handler",0,q,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:P,workUnitAsyncStorage:U})},"routeModule",0,I,"serverHooks",0,_,"workAsyncStorage",0,P,"workUnitAsyncStorage",0,U],62952)}];
|
|
20
20
|
|
|
21
|
-
//# sourceMappingURL
|
|
21
|
+
//# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_0ck.78s.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[66536,79357,t=>{"use strict";var e=t.i(2157),s=t.i(60526),i=t.i(50227);let a={input:0,output:0,cacheRead:0,cacheWrite:0};function n(t,e=200){let s=t.replace(/<[^>]+>/g,"").replace(/\s+/g," ").trim();return s.length>e?s.slice(0,e-1)+"…":s}let r=/^\s*<teammate-message\s+teammate_id="([^"]+)"[^>]*>([\s\S]*?)<\/teammate-message>/;function o(t){let e=t.match(r);if(!e)return;let s=e[1],i=e[2].trim(),a="message";if(i.startsWith("{"))try{let t=JSON.parse(i);"idle_notification"===t.type?a="idle-notification":"shutdown_request"===t.type?a="shutdown-request":"shutdown_approved"===t.type?a="shutdown-approved":"task_assignment"===t.type?a="task-assignment":"teammate_terminated"===t.type&&(a="teammate-terminated")}catch{}return{teammateId:s,body:i,kind:a}}function l(t){if(!t||"object"!=typeof t)return;let e=t=>"number"==typeof t?t:0;return{input:e(t.input_tokens),output:e(t.output_tokens),cacheRead:e(t.cache_read_input_tokens),cacheWrite:e(t.cache_creation_input_tokens)}}function u(t){let e,s,i,r,u,d,p,m,f=[];for(let e=0;e<t.length;e++){let s=function(t,e){if(!t||"object"!=typeof t)return null;let s=String(t.type??""),i=t.uuid,a=t.parentUuid??null,r=t.timestamp;if("assistant"===s){let o,u,d,p=t.message??{},m=p.content??[],f=l(p.usage),c=p.model,g=t.requestId,y=p.id,h=p.stop_reason,M=m[0],v="agent";return M?.type==="thinking"?(v="agent-thinking",o="[thinking] "+n(M.thinking,140)):M?.type==="tool_use"?(v="tool-call",u=M.name,d=M.id,o=`${M.name} `+n(JSON.stringify(M.input??{}),100)):o=M?.type==="text"?n(M.text,200):`<assistant:${M?.type??"empty"}>`,{index:e,uuid:i,parentUuid:a,timestamp:r,role:v,rawType:s,preview:o,blocks:m,usage:f,model:c,requestId:g,messageId:y,stopReason:h,toolName:u,toolUseId:d,raw:t}}if("user"===s){let l=(t.message??{}).content;if("string"==typeof l){let u=o(l);return{index:e,uuid:i,parentUuid:a,timestamp:r,role:"user",rawType:s,preview:n(l,200),blocks:[{type:"text",text:l}],raw:t,teammateMessage:u}}if(Array.isArray(l)){let u=l[0];if(u?.type==="tool_result")return{index:e,uuid:i,parentUuid:a,timestamp:r,role:"tool-result",rawType:s,preview:n("string"==typeof u.content?u.content:JSON.stringify(u.content),200),blocks:l,toolUseId:u.tool_use_id,toolResult:t.toolUseResult,raw:t};let d=l.find(t=>t?.type==="text"),p=d?o(d.text):void 0;return{index:e,uuid:i,parentUuid:a,timestamp:r,role:"user",rawType:s,preview:d?n(d.text,200):n(JSON.stringify(l),200),blocks:l,raw:t,teammateMessage:p}}}if("attachment"===s){let o=t.attachment??{},l=String(o.type??"attachment"),u=`<attachment: ${l}>`;return"string"==typeof o.content&&o.content.length>0?u=`[${l}] `+n(o.content,140):Array.isArray(o.addedNames)&&(u=`[${l}] +${o.addedNames.length} names`),{index:e,uuid:i,parentUuid:a,timestamp:r,role:"system",rawType:s,preview:u,blocks:[{type:"text",text:JSON.stringify(o,null,2)}],attachmentType:l,raw:t}}return{index:e,uuid:i,parentUuid:a,timestamp:r,role:"meta",rawType:s||"unknown",preview:`${s}: ${n(JSON.stringify(t),140)}`,blocks:[{type:"text",text:JSON.stringify(t,null,2)}],raw:t}}(t[e],e);s&&f.push(s)}let c=f.map(t=>t.timestamp?Date.parse(t.timestamp):void 0).filter(t=>"number"==typeof t&&!Number.isNaN(t)),g=c.length?Math.min(...c):void 0,y=c.length?Math.max(...c):void 0,h=void 0!==g?new Date(g).toISOString():void 0,M=void 0!==y?new Date(y).toISOString():void 0;for(let t of f){if(!t.timestamp)continue;let e=Date.parse(t.timestamp);Number.isNaN(e)||void 0!==g&&(t.tOffsetMs=Math.max(0,e-g))}let v=f.filter(t=>{let e;return t.timestamp&&("user"===(e=t.role)||"agent"===e||"agent-thinking"===e||"tool-call"===e||"tool-result"===e)}).map(t=>({e:t,ms:Date.parse(t.timestamp)})).filter(t=>!Number.isNaN(t.ms)).sort((t,e)=>t.ms-e.ms);for(let t=1;t<v.length;t++)v[t].e.gapMs=Math.max(0,v[t].ms-v[t-1].ms);let w=f.filter(t=>t.timestamp).map(t=>Date.parse(t.timestamp)).filter(t=>!Number.isNaN(t)).sort((t,e)=>t-e),_=[],k=0;if(w.length>0){let t=w[0],e=w[0];for(let s=1;s<w.length;s++){let i=w[s],a=i-e;a>18e4?(_.push({startMs:t,endMs:e}),t=i):a>0&&(k+=a),e=i}_.push({startMs:t,endMs:e})}let N={...a},D=new Set,j="",I=!1,S=!1,b=0,x=0,P=0,T=0,$=new Set;for(let t of f){if("tool-call"===t.role){b++;let e=t.blocks.find(t=>t&&"tool_use"===t.type);if(e){let t=e.input??{};if("TeamCreate"===e.name&&(I=!0),"SendMessage"===e.name){let e="string"==typeof t.to?t.to:"";e&&"team-lead"!==e&&(S=!0)}let s="string"==typeof t.file_path?t.file_path:void 0;if("Edit"===e.name&&s){$.add(s);let e="string"==typeof t.old_string?t.old_string:"",i="string"==typeof t.new_string?t.new_string:"",a=e?e.split("\n").length:0,n=i?i.split("\n").length:0;P+=Math.max(0,n-a),T+=Math.max(0,a-n)}else if("Write"===e.name&&s){$.add(s);let e="string"==typeof t.content?t.content:"";P+=e?e.split("\n").length:0}}}if("user"===t.role){let e=t.raw?.message,s="string"==typeof e?.content?e.content:"",i=s.startsWith("<command-name>")||s.startsWith("<local-command-caveat>")||s.startsWith("Base directory for this skill:")||s.startsWith("<task-notification>"),a=void 0!==t.teammateMessage&&!u;i||a||(d||(d=t.teammateMessage?t.teammateMessage.body:t.preview),x++,m=t.preview)}"agent"===t.role&&(p=t.preview)}for(let a of t)if(a&&"object"==typeof a&&("string"!=typeof a.sessionId||j||(j=a.sessionId),"string"!=typeof a.cwd||s||(s=a.cwd),"string"!=typeof a.gitBranch||i||(i=a.gitBranch),"string"!=typeof a.teamName||r||(r=a.teamName),"string"!=typeof a.agentName||u||(u=a.agentName),"assistant"===a.type)){let t=a.message;if(t){"string"!=typeof t.model||e||(e=t.model);let s="string"==typeof t.id?t.id:void 0,i="string"==typeof a.requestId?a.requestId:void 0,n=null!=s?`${s}:${i??""}`:void 0;if(n&&D.has(n))continue;n&&D.add(n);let r=l(t.usage);r&&(N.input+=r.input,N.output+=r.output,N.cacheRead+=r.cacheRead,N.cacheWrite+=r.cacheWrite)}}return{events:f,meta:{sessionId:j,firstTimestamp:h,lastTimestamp:M,durationMs:void 0!==g&&void 0!==y?y-g:void 0,eventCount:f.length,model:e,cwd:s,gitBranch:i,totalUsage:N,status:"idle",firstUserPreview:d,lastUserPreview:m,lastAgentPreview:p,toolCallCount:b,turnCount:x,airTimeMs:k,activeSegments:_,linesAdded:P,linesRemoved:T,filesEdited:$.size,teamName:r,agentName:u,isTeamLead:void 0!==r&&void 0===u&&(I||S)}}}function d(t){let e=new Date(t),s=e.getFullYear(),i=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0");return`${s}-${i}-${a}`}let p=["/.claude/worktrees/","/.worktrees/"];t.s(["canonicalProjectName",0,function(t){let e=function(t){for(let e of p){let s=t.lastIndexOf(e);if(s>=0)return{idx:s,marker:e}}return null}(t);return e?t.slice(0,e.idx):t},"computeBurstsFromSessions",0,function(t,e={}){let s=[];for(let e of t)e.activeSegments&&0!==e.activeSegments.length&&s.push({id:e.id,projectDir:e.projectDir,segments:e.activeSegments});return function(t,e){let s=e.minDurationMs??6e4,i=e.mergeGapMs??6e5,a=e.minActive??2,n=[];for(let e of t)for(let t of e.segments)t.endMs<=t.startMs||(n.push({ms:t.startMs,delta:1,sessionId:e.id}),n.push({ms:t.endMs,delta:-1,sessionId:e.id}));n.sort((t,e)=>t.ms-e.ms||e.delta-t.delta);let r=new Map,o=[],l=null;for(let t of n){if(1===t.delta)r.set(t.sessionId,(r.get(t.sessionId)??0)+1);else{let e=(r.get(t.sessionId)??0)-1;e<=0?r.delete(t.sessionId):r.set(t.sessionId,e)}let e=r.size;if(e>=a)if(l)for(let s of(l.endMs=t.ms,e>l.peak&&(l.peak=e),r.keys()))l.sessionIds.add(s);else l={startMs:t.ms,endMs:t.ms,peak:e,sessionIds:new Set(r.keys())};else l&&(l.endMs=t.ms,o.push(l),l=null)}l&&o.push(l);let u=o.filter(t=>t.endMs-t.startMs>=s),d=[];for(let t of u){let e=d[d.length-1];if(e&&t.startMs-e.endMs<=i)for(let s of(e.endMs=t.endMs,t.peak>e.peak&&(e.peak=t.peak),t.sessionIds))e.sessionIds.add(s);else d.push({startMs:t.startMs,endMs:t.endMs,peak:t.peak,sessionIds:new Set(t.sessionIds)})}let p=new Map;for(let e of t)p.set(e.id,e.projectDir);return d.map(t=>{let e=Array.from(new Set(Array.from(t.sessionIds).map(t=>p.get(t)).filter(t=>!!t)));return{startMs:t.startMs,endMs:t.endMs,peak:t.peak,sessionIds:Array.from(t.sessionIds),projectDirs:e,crossProject:e.length>1}})}(s,e)},"toLocalDay",0,d],79357);let m=i.default.join(s.default.homedir(),".claude","projects");function f(t){return t.startsWith("-")?"/"+t.slice(1).replace(/-/g,"/"):t}async function c(t){let s=await e.promises.readFile(t,"utf8"),i=[];for(let t of s.split("\n")){let e=t.trim();if(e)try{i.push(JSON.parse(e))}catch{}}return i}let g=new Map,y=new Map,h=null;async function M(t=m){let s;if(h&&h.root===t&&Date.now()-h.capturedAtMs<1e3)return h.files;try{s=await e.promises.readdir(t,{withFileTypes:!0})}catch{return[]}let a=s.filter(t=>t.isDirectory()).map(t=>t.name),n=(await Promise.all(a.map(async s=>{let a,n=i.default.join(t,s);try{a=await e.promises.readdir(n)}catch{return[]}let r=a.filter(t=>t.endsWith(".jsonl"));return(await Promise.all(r.map(async t=>{let a=i.default.join(n,t);try{let i=await e.promises.stat(a);return{projectDir:s,fileName:t,fullPath:a,mtimeMs:i.mtimeMs,sizeBytes:i.size}}catch{return null}}))).filter(t=>null!==t)}))).flat();return h={files:n,capturedAtMs:Date.now(),root:t},n}function v(t){return t.replace(/\.jsonl$/i,"")}function w(t,e,s){for(let i of t){if(!i||"object"!=typeof i||"assistant"!==i.type)continue;let t=i.message;if(!t)continue;let a="string"==typeof t.id?t.id:void 0,n="string"==typeof i.requestId?i.requestId:void 0,r=null!=a&&null!=n?`${a}:${n}`:void 0;if(r&&e.has(r))continue;r&&e.add(r);let o=t.usage;if(o){let t=t=>"number"==typeof t?t:0;s.input+=t(o.input_tokens),s.output+=t(o.output_tokens),s.cacheRead+=t(o.cache_read_input_tokens),s.cacheWrite+=t(o.cache_creation_input_tokens)}}}async function _(t,s,a){let n,r={...I},o=new Set;w(t,o,r);let l=i.default.join(s,a,"subagents");try{n=await e.promises.readdir(l)}catch{return r}let u=n.filter(t=>t.endsWith(".jsonl"));return 0===u.length||await Promise.all(u.map(async t=>{try{let e=await c(i.default.join(l,t));w(e,o,r)}catch{}})),r}async function k(t){let e=g.get(t.fullPath);if(e&&e.mtimeMs===t.mtimeMs&&e.sizeBytes===t.sizeBytes)return e.meta;try{let e=await c(t.fullPath),{meta:s}=u(e),a=v(t.fileName),n=i.default.dirname(t.fullPath);s.totalUsage=await _(e,n,a);let r={...s,id:a,filePath:t.fullPath,projectDir:t.projectDir,projectName:s.cwd??f(t.projectDir)};return g.set(t.fullPath,{meta:r,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes}),r}catch{return null}}async function N(t){let e=y.get(t.fullPath);if(e&&e.mtimeMs===t.mtimeMs&&e.sizeBytes===t.sizeBytes)return e.detail;try{let e=await c(t.fullPath),{meta:s,events:i}=u(e),a={...s,id:v(t.fileName),filePath:t.fullPath,projectDir:t.projectDir,projectName:s.cwd??f(t.projectDir),events:i};y.set(t.fullPath,{detail:a,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes});let n={...a};return delete n.events,g.set(t.fullPath,{meta:n,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes}),a}catch{return null}}async function D(t={}){let{root:e=m,limit:s=500,projectDir:i}=t,a=await M(e);i&&(a=a.filter(t=>t.projectDir===i)),a.sort((t,e)=>e.mtimeMs-t.mtimeMs);let n=a.slice(0,s);return(await Promise.all(n.map(t=>k(t)))).filter(t=>null!==t)}async function j(t,e={}){let{root:s=m}=e,a=(await M(s)).find(e=>v(e.fileName)===t);if(!a)return null;let n=await N(a);if(!n)return n;let r=n.firstTimestamp?Date.parse(n.firstTimestamp):void 0,o=i.default.join(i.default.dirname(a.fullPath),v(a.fileName),"subagents"),l=await S(o,r,n.events);return{...n,subagents:l}}let I={input:0,output:0,cacheRead:0,cacheWrite:0};async function S(t,s,a){let n;try{n=await e.promises.readdir(t)}catch{return[]}let r=new Map,o=[];for(let t of a)if("tool-call"===t.role&&"Agent"===t.toolName)for(let e of t.blocks){if(e?.type!=="tool_use"||"Agent"!==e.name)continue;let s=e.input??{},i="string"==typeof s.description?s.description:void 0,a=t.timestamp?Date.parse(t.timestamp):void 0,n={toolUseId:e.id,parentUuid:t.uuid??"",runInBackground:!0===s.run_in_background,prompt:"string"==typeof s.prompt?s.prompt:void 0,tsMs:a};i&&r.set(i,n),void 0!==a&&o.push(n)}o.sort((t,e)=>(t.tsMs??0)-(e.tsMs??0));let l=n.filter(t=>t.startsWith("agent-")&&t.endsWith(".jsonl"));return(await Promise.all(l.map(async a=>{let n,l=a.replace(/^agent-/,"").replace(/\.jsonl$/,""),u=i.default.join(t,a),d=i.default.join(t,`agent-${l}.meta.json`),p={};try{let t=await e.promises.readFile(d,"utf8");p=JSON.parse(t)}catch{}try{n=await c(u)}catch{return null}let m=function(t){let e,s,i,a,n,r={...I},o=new Set,l=0,u=0,d=0,p=new Map;for(let m of t){if(!m||"object"!=typeof m)continue;l++;let t="string"==typeof m.timestamp?Date.parse(m.timestamp):NaN;if(!Number.isNaN(t)&&((void 0===e||t<e)&&(e=t),(void 0===s||t>s)&&(s=t)),void 0===n&&"user"===m.type&&(null===m.parentUuid||void 0===m.parentUuid)){let t=m.message,e=t?.content;if("string"==typeof e)n=e;else if(Array.isArray(e)){let t=e.find(t=>t&&"object"==typeof t&&"text"===t.type);t?.text&&(n=t.text)}}if("assistant"===m.type){let t=m.message;if(!t)continue;a||"string"!=typeof t.model||(a=t.model);let e="string"==typeof t.id?t.id:void 0,s="string"==typeof m.requestId?m.requestId:void 0,n=null!=e&&null!=s?`${e}:${s}`:void 0,l=!n||!o.has(n);if(n&&l&&o.add(n),l){u++;let e=t.usage;if(e){let t=t=>"number"==typeof t?t:0;r.input+=t(e.input_tokens),r.output+=t(e.output_tokens),r.cacheRead+=t(e.cache_read_input_tokens),r.cacheWrite+=t(e.cache_creation_input_tokens)}}let f=t.content;if(Array.isArray(f))for(let t of f)t&&"object"==typeof t&&("text"===t.type&&"string"==typeof t.text?i=t.text:"tool_use"===t.type&&"string"==typeof t.name&&(d++,p.set(t.name,(p.get(t.name)??0)+1)))}}let m=Array.from(p.entries()).map(([t,e])=>({name:t,count:e})).sort((t,e)=>e.count-t.count);return{startMs:e,endMs:s,totalUsage:r,eventCount:l,finalPreview:void 0!==i?i.replace(/\s+/g," ").trim().slice(0,240):void 0,finalText:i,model:a,toolCalls:m,toolCallCount:d,assistantMessageCount:u,initialPrompt:n}}(n),f=p.description&&p.description.trim().length>0?p.description:void 0,g=f?r.get(f):function(t){let e;if(void 0===t)return;let s=1/0;for(let i of o){if(void 0===i.tsMs)continue;let a=Math.abs(t-i.tsMs);a<s&&a<=2e3&&(e=i,s=a)}return e}(m.startMs),y=f??(m.initialPrompt?m.initialPrompt.replace(/\s+/g," ").trim().slice(0,80):"(no description)"),h=g?.prompt??m.initialPrompt,M=void 0!==s&&void 0!==m.startMs?Math.max(0,m.startMs-s):void 0,v=void 0!==s&&void 0!==m.endMs?Math.max(0,m.endMs-s):void 0,w=void 0!==m.startMs&&void 0!==m.endMs?m.endMs-m.startMs:void 0;return{agentId:l,agentType:p.agentType??"unknown",description:y,startMs:m.startMs,endMs:m.endMs,durationMs:w,startTOffsetMs:M,endTOffsetMs:v,eventCount:m.eventCount,totalUsage:m.totalUsage,parentUuid:g?.parentUuid,parentToolUseId:g?.toolUseId,runInBackground:g?.runInBackground,prompt:h,finalPreview:m.finalPreview,finalText:m.finalText,model:m.model,toolCalls:m.toolCalls,toolCallCount:m.toolCallCount,assistantMessageCount:m.assistantMessageCount}}))).filter(t=>null!==t).sort((t,e)=>(t.startMs??0)-(e.startMs??0))}let b=i.default.join(s.default.homedir(),".cclens","usage.jsonl");async function x(t,s){let i;try{i=await e.promises.readFile(b,"utf8")}catch{return{by_day:[]}}let a=new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime(),n=new Date(s.getFullYear(),s.getMonth(),s.getDate(),23,59,59,999).getTime(),r=new Map;for(let t of i.split("\n")){let e=t.trim();if(e)try{let t=JSON.parse(e);if(!t.captured_at)continue;let s=Date.parse(t.captured_at);if(Number.isNaN(s)||s<a)continue;if(s>n)break;let i=d(s),o=t.five_hour?.utilization??0,l=r.get(i)??0;o>l&&r.set(i,o)}catch{}}let o=[],l=new Date(t.getFullYear(),t.getMonth(),t.getDate()),u=new Date(s.getFullYear(),s.getMonth(),s.getDate());for(;l.getTime()<=u.getTime();){let t=d(l.getTime());o.push({date:t,peak_util_pct:r.get(t)??0}),l.setDate(l.getDate()+1)}return{by_day:o}}t.s(["DEFAULT_ROOT",0,m,"getSession",0,j,"invalidateFile",0,function(t){g.delete(t),y.delete(t),h=null},"listSessions",0,D,"loadUsageByDay",0,x],66536)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=packages_parser_dist_fs_0bc7ptm.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},71306,(a,b,c)=>{b.exports=a.r(18622)},79847,a=>{a.n(a.i(3343))},9185,a=>{a.n(a.i(29432))},72842,a=>{a.n(a.i(75164))},54897,a=>{a.n(a.i(30106))},56157,a=>{a.n(a.i(18970))},94331,a=>{a.n(a.i(60644))},15988,a=>{a.n(a.i(56952))},25766,a=>{a.n(a.i(77341))},29725,a=>{a.n(a.i(94290))},5785,a=>{a.n(a.i(90588))},74793,a=>{a.n(a.i(33169))},85826,a=>{a.n(a.i(37111))},21565,a=>{a.n(a.i(41763))},65911,a=>{a.n(a.i(8950))},25128,a=>{a.n(a.i(91562))},40781,a=>{a.n(a.i(49670))},69411,a=>{a.n(a.i(75700))},63081,a=>{a.n(a.i(276))},62837,a=>{a.n(a.i(40795))},34607,a=>{a.n(a.i(11614))},96338,a=>{a.n(a.i(21751))},50642,a=>{a.n(a.i(12213))},32242,a=>{a.n(a.i(22693))},88530,a=>{a.n(a.i(10531))},8583,a=>{a.n(a.i(1082))},38534,a=>{a.n(a.i(98175))},70408,a=>{a.n(a.i(9095))},22922,a=>{a.n(a.i(96772))},78294,a=>{a.n(a.i(71717))},16625,a=>{a.n(a.i(85034))},88648,a=>{a.n(a.i(68113))},51914,a=>{a.n(a.i(66482))},25466,a=>{a.n(a.i(91505))},34476,a=>{"use strict";a.s(["DateRangeFilter",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call DateRangeFilter() from the server but DateRangeFilter is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/date-range-filter.tsx <module evaluation>","DateRangeFilter")},96491,a=>{"use strict";a.s(["DateRangeFilter",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call DateRangeFilter() from the server but DateRangeFilter is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/date-range-filter.tsx","DateRangeFilter")},67598,a=>{"use strict";a.i(34476);var b=a.i(96491);a.n(b)},77739,a=>{"use strict";var b=a.i(7997),c=a.i(48024),d=a.i(4636),e=a.i(67598),f=a.i(77708),g=a.i(67116),h=a.i(87067),i=a.i(95936);async function j({searchParams:a}){let k,{range:l}=await a,m="7d"===(k=Array.isArray(l)?l[0]:l)||"30d"===k||"90d"===k||"all"===k?k:"all",n=function(a,b=Date.now()){if("all"===a)return;let c=new Date(b);return c.setHours(0,0,0,0),c.setDate(c.getDate()-(("7d"===a?7:"30d"===a?30:90)-1)),c.getTime()}(m),o=await (0,g.listSessions)(),p=void 0===n?o:o.filter(a=>{if(!a.firstTimestamp)return!1;let b=Date.parse(a.firstTimestamp);return!Number.isNaN(b)&&b>=n}),q=(0,c.groupByProject)(p).sort((a,b)=>{let c=a.metrics.totalTokens.input+a.metrics.totalTokens.output+a.metrics.totalTokens.cacheRead+a.metrics.totalTokens.cacheWrite,d=b.metrics.totalTokens.input+b.metrics.totalTokens.output+b.metrics.totalTokens.cacheRead+b.metrics.totalTokens.cacheWrite;return d!==c?d-c:b.metrics.sessionCount-a.metrics.sessionCount}).slice(0,8),r=p.slice(0,6);return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:28,maxWidth:1280,padding:"32px 40px"},children:[(0,b.jsxs)("header",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:18,flexWrap:"wrap"},children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{style:{fontSize:26,fontWeight:700,letterSpacing:"-0.02em",margin:0},children:"Overview"}),(0,b.jsxs)("p",{style:{fontSize:13,color:"var(--af-text-secondary)",marginTop:4},children:[p.length," of ",o.length," session",1===o.length?"":"s",", read from"," ",(0,b.jsx)("code",{style:{fontFamily:"var(--font-mono)",fontSize:11,background:"var(--af-border-subtle)",padding:"1px 6px",borderRadius:4},children:"~/.claude/projects"}),"."]})]}),(0,b.jsx)(e.DateRangeFilter,{current:m})]}),(0,b.jsx)(d.DashboardView,{sessions:p}),(0,b.jsxs)("section",{style:{display:"grid",gridTemplateColumns:"1fr 1.4fr",gap:16},children:[(0,b.jsxs)("div",{className:"af-panel",children:[(0,b.jsxs)("div",{className:"af-panel-header",children:[(0,b.jsx)("span",{children:"Top projects"}),(0,b.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontWeight:400},children:"by total tokens"}),(0,b.jsx)(i.default,{href:"/projects",style:{fontSize:11,color:"var(--af-accent)",marginLeft:"auto"},children:"View all →"})]}),(0,b.jsx)("div",{children:0===q.length?(0,b.jsx)("div",{className:"af-empty",children:"No projects yet."}):q.map(a=>{let c=a.metrics.totalTokens.input+a.metrics.totalTokens.output+a.metrics.totalTokens.cacheRead+a.metrics.totalTokens.cacheWrite;return(0,b.jsxs)(i.default,{href:`/projects/${encodeURIComponent(a.projectDir)}`,style:{display:"grid",gridTemplateColumns:"1fr auto auto auto",gap:14,padding:"10px 18px",fontSize:12,borderBottom:"1px solid var(--af-border-subtle)",alignItems:"center"},children:[(0,b.jsx)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--af-text)"},title:a.projectName,children:(0,h.prettyProjectName)(a.projectName)}),(0,b.jsxs)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",minWidth:64,textAlign:"right"},children:[a.sessions.length," sess"]}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",minWidth:52,textAlign:"right"},title:`${c.toLocaleString()} tokens`,children:(0,h.formatTokens)(c)}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",minWidth:56,textAlign:"right"},suppressHydrationWarning:!0,children:a.lastActiveMs?(0,h.formatRelative)(new Date(a.lastActiveMs).toISOString()):"—"})]},a.projectDir)})})]}),(0,b.jsxs)("div",{className:"af-panel",children:[(0,b.jsxs)("div",{className:"af-panel-header",children:[(0,b.jsx)("span",{children:"Recent sessions"}),(0,b.jsx)(i.default,{href:"/sessions",style:{fontSize:11,color:"var(--af-accent)",marginLeft:"auto"},children:"View all →"})]}),(0,b.jsx)("div",{children:0===r.length?(0,b.jsx)("div",{className:"af-empty",children:"No sessions found in ~/.claude/projects"}):r.map(a=>(0,b.jsxs)(i.default,{href:`/sessions/${a.id}`,style:{display:"grid",gridTemplateColumns:"1fr auto auto",gap:12,padding:"10px 18px",fontSize:12,borderBottom:"1px solid var(--af-border-subtle)",alignItems:"center"},children:[(0,b.jsxs)("div",{style:{minWidth:0},children:[(0,b.jsxs)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--af-text)",display:"flex",alignItems:"center",gap:6},children:[(0,b.jsx)(f.LiveBadge,{mtimeIso:a.lastTimestamp}),(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.firstUserPreview||(0,b.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"(no user message)"})})]}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",marginTop:2,fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(0,h.prettyProjectName)(a.projectName)})]}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",textAlign:"right",minWidth:54},title:"Agent time (filters out idle gaps)",children:(0,h.formatDuration)(a.airTimeMs??a.durationMs)}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",textAlign:"right",minWidth:54},children:a.firstTimestamp?(0,h.formatRelative)(a.firstTimestamp):"—"})]},`${a.projectDir}/${a.id}`))})]})]})]})}a.s(["default",0,j,"dynamic",0,"force-dynamic"],77739)},67303,a=>{a.n(a.i(77739))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__00z7zlm._.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},71306,(a,b,c)=>{b.exports=a.r(18622)},79847,a=>{a.n(a.i(3343))},9185,a=>{a.n(a.i(29432))},72842,a=>{a.n(a.i(75164))},54897,a=>{a.n(a.i(30106))},56157,a=>{a.n(a.i(18970))},94331,a=>{a.n(a.i(60644))},15988,a=>{a.n(a.i(56952))},25766,a=>{a.n(a.i(77341))},29725,a=>{a.n(a.i(94290))},5785,a=>{a.n(a.i(90588))},74793,a=>{a.n(a.i(33169))},85826,a=>{a.n(a.i(37111))},21565,a=>{a.n(a.i(41763))},65911,a=>{a.n(a.i(8950))},25128,a=>{a.n(a.i(91562))},40781,a=>{a.n(a.i(49670))},69411,a=>{a.n(a.i(75700))},63081,a=>{a.n(a.i(276))},62837,a=>{a.n(a.i(40795))},34607,a=>{a.n(a.i(11614))},96338,a=>{a.n(a.i(21751))},50642,a=>{a.n(a.i(12213))},32242,a=>{a.n(a.i(22693))},88530,a=>{a.n(a.i(10531))},8583,a=>{a.n(a.i(1082))},38534,a=>{a.n(a.i(98175))},70408,a=>{a.n(a.i(9095))},22922,a=>{a.n(a.i(96772))},78294,a=>{a.n(a.i(71717))},16625,a=>{a.n(a.i(85034))},88648,a=>{a.n(a.i(68113))},51914,a=>{a.n(a.i(66482))},25466,a=>{a.n(a.i(91505))},20916,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return e}});class d extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class e extends URLSearchParams{append(){throw new d}delete(){throw new d}set(){throw new d}sort(){throw new d}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},21170,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"RedirectStatusCode",{enumerable:!0,get:function(){return e}});var d,e=((d={})[d.SeeOther=303]="SeeOther",d[d.TemporaryRedirect=307]="TemporaryRedirect",d[d.PermanentRedirect=308]="PermanentRedirect",d);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},28859,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={REDIRECT_ERROR_CODE:function(){return g},isRedirectError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(21170),g="NEXT_REDIRECT";function h(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,d]=b,e=b.slice(2,-2).join(";"),h=Number(b.at(-2));return c===g&&("replace"===d||"push"===d)&&"string"==typeof e&&!isNaN(h)&&h in f.RedirectStatusCode}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},44868,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getRedirectError:function(){return i},getRedirectStatusCodeFromError:function(){return n},getRedirectTypeFromError:function(){return m},getURLFromRedirectError:function(){return l},permanentRedirect:function(){return k},redirect:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(21170),g=a.r(28859),h=a.r(20635).actionAsyncStorage;function i(a,b,c=f.RedirectStatusCode.TemporaryRedirect){let d=Object.defineProperty(Error(g.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return d.digest=`${g.REDIRECT_ERROR_CODE};${b};${a};${c};`,d}function j(a,b){throw i(a,b??=h?.getStore()?.isAction?"push":"replace",f.RedirectStatusCode.TemporaryRedirect)}function k(a,b="replace"){throw i(a,b,f.RedirectStatusCode.PermanentRedirect)}function l(a){return(0,g.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function m(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function n(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},89798,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HTTPAccessErrorStatus:function(){return f},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return h},getAccessFallbackErrorTypeByStatus:function(){return k},getAccessFallbackHTTPStatus:function(){return j},isHTTPAccessFallbackError:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},g=new Set(Object.values(f)),h="NEXT_HTTP_ERROR_FALLBACK";function i(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let[b,c]=a.digest.split(";");return b===h&&g.has(Number(c))}function j(a){return Number(a.digest.split(";")[1])}function k(a){switch(a){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},16155,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"notFound",{enumerable:!0,get:function(){return f}});let d=a.r(89798),e=`${d.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function f(){let a=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E1041",enumerable:!1,configurable:!0});throw a.digest=e,a}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},34557,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"forbidden",{enumerable:!0,get:function(){return d}}),a.r(89798).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},93845,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unauthorized",{enumerable:!0,get:function(){return d}}),a.r(89798).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},73808,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isPostpone",{enumerable:!0,get:function(){return e}});let d=Symbol.for("react.postpone");function e(a){return"object"==typeof a&&null!==a&&a.$$typeof===d}},1567,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isNextRouterError",{enumerable:!0,get:function(){return f}});let d=a.r(89798),e=a.r(28859);function f(a){return(0,e.isRedirectError)(a)||(0,d.isHTTPAccessFallbackError)(a)}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},94783,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b)||(0,h.isPrerenderInterruptedError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=a.r(13091),e=a.r(73808),f=a.r(49640),g=a.r(1567),h=a.r(60384),i=a.r(96556);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},60968,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=a.r(94783).unstable_rethrow;("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},73727,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ReadonlyURLSearchParams:function(){return f.ReadonlyURLSearchParams},RedirectType:function(){return m},forbidden:function(){return i.forbidden},notFound:function(){return h.notFound},permanentRedirect:function(){return g.permanentRedirect},redirect:function(){return g.redirect},unauthorized:function(){return j.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return k.unstable_rethrow}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20916),g=a.r(44868),h=a.r(16155),i=a.r(34557),j=a.r(93845),k=a.r(60968);function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}let m={push:"push",replace:"replace"};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},70396,a=>{"use strict";a.i(73727),a.s([])},1269,a=>{"use strict";var b=a.i(717);let c=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim();var d={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let e=(0,b.forwardRef)(({color:a="currentColor",size:e=24,strokeWidth:f=2,absoluteStrokeWidth:g,className:h="",children:i,iconNode:j,...k},l)=>(0,b.createElement)("svg",{ref:l,...d,width:e,height:e,stroke:a,strokeWidth:g?24*Number(f)/Number(e):f,className:c("lucide",h),...k},[...j.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(i)?i:[i]]));a.s(["default",0,(a,d)=>{let f=(0,b.forwardRef)(({className:f,...g},h)=>(0,b.createElement)(e,{ref:h,iconNode:d,className:c(`lucide-${a.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,f),...g}));return f.displayName=`${a}`,f}],1269)},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}},790,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js <module evaluation>"))},84707,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js"))},97647,a=>{"use strict";a.i(790);var b=a.i(84707);a.n(b)},95936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(64240),g=a.r(7997),h=f._(a.r(97647));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},13743,a=>{"use strict";let b=(0,a.i(1269).default)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);a.s(["ArrowLeft",0,b],13743)},67116,a=>{"use strict";var b=a.i(717),c=a.i(50785);let d=process.env.CCLENS_DATA_DIR||void 0,e=(0,b.cache)(async()=>(0,c.listSessions)({limit:1e3,root:d})),f=(0,b.cache)(async a=>(0,c.getSession)(a,{root:d}));a.s(["getSession",0,f,"listSessions",0,e])},87067,a=>{"use strict";let b={input:1,output:5,cacheRead:.1,cacheWrite:1.25},c={input:3,output:15,cacheRead:.3,cacheWrite:3.75},d={input:5,output:25,cacheRead:.5,cacheWrite:6.25};a.s(["estimateCostMulti",0,function(a){return a.reduce((a,e)=>{var f;let g;return a+(f=e.totalUsage,g=function(a){if(!a)return d;let e=a.toLowerCase();return e.includes("haiku")?b:e.includes("sonnet")?c:d}(e.model),f.input/1e6*g.input+f.output/1e6*g.output+f.cacheRead/1e6*g.cacheRead+f.cacheWrite/1e6*g.cacheWrite)},0)},"formatCost",0,function(a){return a<.01?"<$0.01":a<1||a<100?`$${a.toFixed(2)}`:a<1e3?`$${a.toFixed(1)}`:`$${a.toLocaleString(void 0,{maximumFractionDigits:0})}`},"formatDuration",0,function(a){if(void 0===a)return"—";if(a<1e3)return`${a}ms`;let b=Math.round(a/1e3);if(b<60)return`${b}s`;let c=Math.floor(b/60),d=b%60;if(c<60)return d?`${c}m ${d}s`:`${c}m`;let e=Math.floor(c/60),f=c%60;return f?`${e}h ${f}m`:`${e}h`},"formatGap",0,function(a){if(a<1e3)return`${a}ms`;let b=a/1e3;if(b<60)return`${b.toFixed(1)}s`;let c=Math.floor(b/60);if(c<60){let a=Math.round(b%60);return`${c}m ${a}s`}let d=Math.floor(c/60),e=c%60;if(d<24)return e?`${d}h ${e}m`:`${d}h`;let f=Math.floor(d/24),g=d%24;return g?`${f}d ${g}h`:`${f}d`},"formatRelative",0,function(a){let b=Date.parse(a);if(Number.isNaN(b))return a;let c=Math.round((Date.now()-b)/1e3);if(c<60)return`${c}s ago`;let d=Math.round(c/60);if(d<60)return`${d}m ago`;let e=Math.round(d/60);if(e<24)return`${e}h ago`;let f=Math.round(e/24);return`${f}d ago`},"formatTokens",0,function(a){return a<1e3?String(a):a<1e4?(a/1e3).toFixed(1)+"k":a<1e6?Math.round(a/1e3)+"k":a<1e7?(a/1e6).toFixed(2)+"M":(a/1e6).toFixed(1)+"M"},"prettyProjectName",0,function(a,b=35){let c=a.split("/").filter(Boolean),d=c.lastIndexOf(".worktrees");if(d>0&&d<c.length-1){let a=c[d-1],e=c[d+1],f=`${a}/${e}`;return f.length<=b?f:"…"+f.slice(f.length-b+1)}let e=c.length>=2?`${c[c.length-2]}/${c[c.length-1]}`:c[c.length-1]??a;return e.length<=b?e:"…"+e.slice(e.length-b+1)}])},83885,a=>{"use strict";a.s(["Heatmap",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Heatmap() from the server but Heatmap is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/heatmap.tsx <module evaluation>","Heatmap")},44467,a=>{"use strict";a.s(["Heatmap",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Heatmap() from the server but Heatmap is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/heatmap.tsx","Heatmap")},54572,a=>{"use strict";a.i(83885);var b=a.i(44467);a.n(b)},70301,a=>{"use strict";a.s(["ActivityChart",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call ActivityChart() from the server but ActivityChart is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/activity-chart.tsx <module evaluation>","ActivityChart")},37964,a=>{"use strict";a.s(["ActivityChart",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call ActivityChart() from the server but ActivityChart is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/activity-chart.tsx","ActivityChart")},37707,a=>{"use strict";a.i(70301);var b=a.i(37964);a.n(b)},25581,a=>{"use strict";a.s(["MetricCard",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call MetricCard() from the server but MetricCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/metric-card.tsx <module evaluation>","MetricCard")},77267,a=>{"use strict";a.s(["MetricCard",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call MetricCard() from the server but MetricCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/metric-card.tsx","MetricCard")},94045,a=>{"use strict";a.i(25581);var b=a.i(77267);a.n(b)},4636,a=>{"use strict";var b=a.i(7997),c=a.i(48024),d=a.i(54572),e=a.i(37707),f=a.i(94045),g=a.i(87067),h=a.i(1269);let i=(0,h.default)("ListTree",[["path",{d:"M21 12h-8",key:"1bmf0i"}],["path",{d:"M21 6H8",key:"1pqkrb"}],["path",{d:"M21 18h-8",key:"1tm79t"}],["path",{d:"M3 6v4c0 1.1.9 2 2 2h3",key:"1ywdgy"}],["path",{d:"M3 10v6c0 1.1.9 2 2 2h3",key:"2wc746"}]]),j=(0,h.default)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]),k=(0,h.default)("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),l=(0,h.default)("DollarSign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);function m({line1:a,line2:c}){return(0,b.jsxs)("div",{style:{lineHeight:1.4},children:[(0,b.jsx)("div",{children:a}),(0,b.jsx)("div",{style:{color:"var(--af-text-tertiary)"},children:c})]})}function n(a){return a<1e3?String(a):a<1e6?(a/1e3).toFixed(1)+"k":(a/1e6).toFixed(1)+"M"}function o(a){return a<1e3?String(a):a<1e6?(a/1e3).toFixed(1)+"k":a<1e9?(a/1e6).toFixed(1)+"M":(a/1e9).toFixed(1)+"B"}a.s(["DashboardView",0,function({sessions:a,override:h}){let p=(0,c.highLevelMetrics)(a),q=(0,c.dailyActivity)(a),r=(0,c.summarizeBursts)((0,c.computeBurstsFromSessions)(a)),s=p.totalTokens.input+p.totalTokens.cacheRead+p.totalTokens.cacheWrite,t=h?.activeTimeMs??p.totalAirTimeMs,u=q.filter(a=>a.airTimeMs>0).length;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("section",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))",gap:12},children:[(0,b.jsx)(f.MetricCard,{label:"Sessions",value:p.sessionCount.toLocaleString(),sub:(0,b.jsx)(m,{line1:`${p.totalTurns.toLocaleString()} turns`,line2:`avg ${p.sessionCount?Math.round(p.totalTurns/p.sessionCount):0} / session`}),icon:(0,b.jsx)(i,{size:13}),tooltip:"Total Claude Code sessions (one JSONL file = one session). A 'turn' is one user message that starts an agent response cycle."}),(0,b.jsx)(f.MetricCard,{label:"Agent time",value:(0,g.formatDuration)(t),sub:u>0?(0,b.jsx)(m,{line1:`${(0,g.formatDuration)(t/u)} / day`,line2:`${u} active days`}):"no activity",icon:(0,b.jsx)(j,{size:13}),tooltip:"Sum of time the Claude agent was actively working across all sessions. Gaps longer than 3 minutes (user away, laptop lid closed) are excluded. This is NOT wall-clock duration. Per-day average is across days with any agent activity."}),(0,b.jsx)(f.MetricCard,{label:"Tool calls",value:p.totalToolCalls.toLocaleString(),sub:(0,b.jsx)(m,{line1:`avg ${p.sessionCount?Math.round(p.totalToolCalls/p.sessionCount):0} / session`,line2:`across ${p.sessionCount.toLocaleString()} sessions`}),icon:(0,b.jsx)(k,{size:13}),tooltip:"Total tool invocations (Bash, Read, Edit, Write, Grep, Glob, Agent, etc.) across all sessions."}),(0,b.jsx)(f.MetricCard,{label:"Parallelism",value:r.burstCount>0?(0,g.formatDuration)(r.totalParallelMs):"—",sub:r.burstCount>0?(0,b.jsx)(m,{line1:`peak \xd7${r.peakConcurrent}`,line2:`${Math.round(r.totalParallelMs/Math.max(1,t)*100)}% of active time`}):"no sustained parallelism",tooltip:`Total time ≥2 agents were working in parallel, with peak concurrency as the highest count in any single burst.
|
|
2
|
+
|
|
3
|
+
${r.burstCount} burst${1===r.burstCount?"":"s"} \xb7 ${r.crossProjectBurstCount} spanned multiple projects.`}),(0,b.jsx)(f.MetricCard,{label:"Code changes",value:(0,b.jsxs)("span",{children:[(0,b.jsxs)("span",{style:{color:"var(--af-success)"},children:["+",n(p.totalLinesAdded)]})," ",(0,b.jsxs)("span",{style:{color:"var(--af-danger)"},children:["-",n(p.totalLinesRemoved)]})]}),sub:(0,b.jsx)(m,{line1:`${p.totalFilesEdited.toLocaleString()} files touched`,line2:`${n(p.totalLinesAdded+p.totalLinesRemoved)} total lines`}),tooltip:`Total lines added and removed across all Edit + Write tool calls.
|
|
4
|
+
+${p.totalLinesAdded.toLocaleString()} added
|
|
5
|
+
-${p.totalLinesRemoved.toLocaleString()} removed
|
|
6
|
+
${p.totalFilesEdited.toLocaleString()} unique files touched`}),(0,b.jsx)(f.MetricCard,{label:"Est. cost",value:(0,g.formatCost)((0,g.estimateCostMulti)(a)),sub:(0,b.jsx)(m,{line1:`${o(s)} in`,line2:`${o(p.totalTokens.output)} out`}),icon:(0,b.jsx)(l,{size:13}),tooltip:`Estimated API spend priced per-model across all sessions.
|
|
7
|
+
Input: ${(0,g.formatTokens)(p.totalTokens.input)}
|
|
8
|
+
Output: ${(0,g.formatTokens)(p.totalTokens.output)}
|
|
9
|
+
Cache read: ${(0,g.formatTokens)(p.totalTokens.cacheRead)}
|
|
10
|
+
Cache write: ${(0,g.formatTokens)(p.totalTokens.cacheWrite)}`}),h?.extraCards]}),(0,b.jsxs)("section",{style:{display:"grid",gridTemplateColumns:"1fr 2fr",gap:16},children:[(0,b.jsxs)("div",{className:"af-panel",style:{display:"flex",flexDirection:"column"},children:[(0,b.jsxs)("div",{className:"af-panel-header",children:[(0,b.jsx)("span",{children:"Contribution heatmap"}),(0,b.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontWeight:400},children:"sessions / day"})]}),(0,b.jsx)("div",{style:{padding:18,flex:1,display:"flex",alignItems:"center",justifyContent:"center"},children:(0,b.jsx)(d.Heatmap,{buckets:q,valueKey:"sessions"})})]}),(0,b.jsxs)("div",{className:"af-panel",children:[(0,b.jsxs)("div",{className:"af-panel-header",children:[(0,b.jsx)("span",{children:"Daily activity"}),(0,b.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontWeight:400},children:"click a metric to switch"})]}),(0,b.jsx)("div",{style:{padding:18},children:(0,b.jsx)(e.ActivityChart,{buckets:q})})]})]})]})}],4636)},41264,a=>{"use strict";a.s(["LiveBadge",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveBadge() from the server but LiveBadge is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-badge.tsx <module evaluation>","LiveBadge")},71475,a=>{"use strict";a.s(["LiveBadge",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveBadge() from the server but LiveBadge is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-badge.tsx","LiveBadge")},77708,a=>{"use strict";a.i(41264);var b=a.i(71475);a.n(b)},1632,a=>{"use strict";var b=a.i(7997);a.i(70396);var c=a.i(73727),d=a.i(95936),e=a.i(67116),f=a.i(48024),g=a.i(4636),h=a.i(77708);let i={display:"inline-flex",alignItems:"center",borderRadius:4,padding:"2px 6px",fontSize:10,letterSpacing:"0.04em",textTransform:"uppercase",whiteSpace:"nowrap"};function j({session:a,linkable:c=!0}){if(!a.teamName)return null;let e=!0===a.isTeamLead,f=void 0!==a.agentName;return e||f?e&&c?(0,b.jsx)(d.default,{href:`/sessions/${a.id}`,style:{...i,fontWeight:600,background:"var(--af-warning-subtle)",color:"var(--af-warning)",border:"1px solid var(--af-warning-subtle)",textDecoration:"none"},title:`Team lead — ${a.teamName}`,children:"Team Lead"}):e?(0,b.jsx)("span",{style:{...i,fontWeight:600,background:"var(--af-warning-subtle)",color:"var(--af-warning)",border:"1px solid var(--af-warning-subtle)"},title:`Team lead — ${a.teamName}`,children:"Team Lead"}):(0,b.jsx)("span",{style:{...i,fontWeight:500,background:"var(--af-surface-hover)",color:"var(--af-text-tertiary)",border:"1px solid var(--af-border-subtle)"},title:`Team member — ${a.teamName} \xb7 ${a.agentName}`,children:"Team Member"}):null}var k=a.i(87067),l=a.i(13743);async function m({params:a}){let{slug:i}=await a,n=decodeURIComponent(i),o=(await (0,e.listSessions)()).filter(a=>(0,f.canonicalProjectName)(a.projectName)===n);if(0===o.length)return(0,c.notFound)();let p=o.slice(0,50),q=await Promise.all(p.map(a=>(0,e.getSession)(a.id))),r=q.filter(a=>!!a).flatMap(a=>(0,f.detectPrMarkers)(a)),s=q.filter(a=>!!a).reduce((a,b)=>a+(0,f.sessionAirTimeMs)(b.events),0),t=o.slice(0,12),u=r.length>0;return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:28,maxWidth:1280,padding:"32px 40px"},children:[(0,b.jsx)("div",{style:{fontSize:12,color:"var(--af-text-tertiary)"},children:(0,b.jsxs)(d.default,{href:"/projects",style:{color:"var(--af-text-tertiary)",display:"inline-flex",alignItems:"center",gap:4},children:[(0,b.jsx)(l.ArrowLeft,{size:12})," Projects"]})}),(0,b.jsxs)("header",{children:[(0,b.jsx)("h1",{style:{fontSize:26,fontWeight:700,letterSpacing:"-0.02em",margin:0},children:(0,k.prettyProjectName)(n)}),(0,b.jsx)("p",{style:{fontSize:12,color:"var(--af-text-tertiary)",marginTop:4,fontFamily:"var(--font-mono)"},children:n})]}),(0,b.jsx)(g.DashboardView,{sessions:o,override:{activeTimeMs:s||void 0}}),(0,b.jsxs)("section",{style:{display:"grid",gridTemplateColumns:u?"1fr 1fr":"1fr",gap:16},children:[u&&(0,b.jsxs)("div",{className:"af-panel",children:[(0,b.jsxs)("div",{className:"af-panel-header",children:[(0,b.jsx)("span",{children:"Pull requests shipped"}),(0,b.jsx)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontWeight:400},children:"detected from `gh pr create` calls"})]}),(0,b.jsx)("div",{style:{padding:14,display:"flex",flexDirection:"column",gap:6},children:r.sort((a,b)=>Date.parse(b.timestamp)-Date.parse(a.timestamp)).slice(0,12).map((a,c)=>(0,b.jsxs)(d.default,{href:`/sessions/${a.sessionId}`,style:{display:"grid",gridTemplateColumns:"90px 1fr 60px",gap:10,padding:"10px 14px",border:"1px solid var(--af-border-subtle)",borderRadius:8,background:"var(--af-surface-hover)",fontSize:12,alignItems:"center"},children:[(0,b.jsx)("div",{style:{fontSize:11,color:"var(--af-text-secondary)",fontFamily:"var(--font-mono)"},suppressHydrationWarning:!0,children:(0,k.formatRelative)(a.timestamp)}),(0,b.jsx)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--af-text)"},title:a.command,children:a.title??a.command.replace(/^gh pr create /,"").slice(0,120)}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",textAlign:"right"},children:void 0!==a.positionInSession?`${Math.round(100*a.positionInSession)}% in`:"—"})]},c))})]}),(0,b.jsxs)("div",{className:"af-panel",children:[(0,b.jsxs)("div",{className:"af-panel-header",children:[(0,b.jsx)("span",{children:"Recent sessions"}),(0,b.jsx)(d.default,{href:"/sessions",style:{fontSize:11,color:"var(--af-accent)",marginLeft:"auto"},children:"View all →"})]}),(0,b.jsx)("div",{children:t.map(a=>(0,b.jsxs)(d.default,{href:`/sessions/${a.id}`,style:{display:"grid",gridTemplateColumns:"1fr auto auto",gap:12,padding:"10px 18px",fontSize:12,borderBottom:"1px solid var(--af-border-subtle)",alignItems:"center"},children:[(0,b.jsx)("div",{style:{minWidth:0},children:(0,b.jsxs)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--af-text)",display:"flex",alignItems:"center",gap:6},children:[(0,b.jsx)(h.LiveBadge,{mtimeIso:a.lastTimestamp}),(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.firstUserPreview||(0,b.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"(no user message)"})}),(0,b.jsx)(j,{session:a,linkable:!1})]})}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",textAlign:"right",minWidth:54},title:"Agent time (filters out idle gaps)",children:(0,k.formatDuration)(a.airTimeMs??a.durationMs)}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",textAlign:"right",minWidth:54},suppressHydrationWarning:!0,children:a.firstTimestamp?(0,k.formatRelative)(a.firstTimestamp):"—"})]},`${a.projectDir}/${a.id}`))})]})]})]})}a.s(["default",0,m,"dynamic",0,"force-dynamic"],1632)},35416,a=>{a.n(a.i(1632))}];
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__08.d5ia._.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
module.exports=[50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},20555,a=>{"use strict";var b=a.i(87924),c=a.i(72131);a.s(["LiveBadge",0,function({mtimeIso:a,size:d="sm"}){let[e,f]=(0,c.useState)(()=>Date.now());if((0,c.useEffect)(()=>{let a=setInterval(()=>f(Date.now()),1e4);return()=>clearInterval(a)},[]),!a)return null;let g=Date.parse(a);if(Number.isNaN(g)||e-g>45e3)return null;let h="md"===d?8:6;return(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5,fontSize:"md"===d?10:9,fontWeight:700,letterSpacing:"0.04em",padding:"md"===d?"3px 9px":"2px 7px",borderRadius:100,background:"rgba(239, 68, 68, 0.12)",color:"#ef4444",textTransform:"uppercase"},title:`Last updated ${new Date(g).toLocaleTimeString()}`,children:[(0,b.jsx)("span",{style:{display:"inline-block",width:h,height:h,borderRadius:"50%",background:"#ef4444",animation:"cs-live-pulse 1.6s ease-in-out infinite"}}),"LIVE",(0,b.jsx)("style",{children:`
|
|
2
|
+
@keyframes cs-live-pulse {
|
|
3
|
+
0%, 100% { opacity: 1; transform: scale(1); }
|
|
4
|
+
50% { opacity: 0.4; transform: scale(0.85); }
|
|
5
|
+
}
|
|
6
|
+
`})]})}])},50522,a=>{"use strict";let b=(0,a.i(70106).default)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["ChevronRight",0,b],50522)},96221,a=>{"use strict";let b=(0,a.i(70106).default)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["Loader2",0,b],96221)},5784,a=>{"use strict";let b=(0,a.i(70106).default)("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["ChevronDown",0,b],5784)},33508,a=>{"use strict";let b=(0,a.i(70106).default)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);a.s(["X",0,b],33508)},85668,a=>{"use strict";let b=(0,a.i(70106).default)("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);a.s(["ArrowDown",0,b],85668)},41710,a=>{"use strict";let b=(0,a.i(70106).default)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);a.s(["Clock",0,b],41710)},79808,a=>{"use strict";let b=(0,a.i(70106).default)("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);a.s(["Wrench",0,b],79808)},12544,a=>{"use strict";let b=["/.claude/worktrees/","/.worktrees/"],c=/gh\s+pr\s+create\b/i,d=/#(\d+)/,e=/--title\s+["']([^"']+)["']/;a.s(["canonicalProjectName",0,function(a){let c=function(a){for(let c of b){let b=a.lastIndexOf(c);if(b>=0)return{idx:b,marker:c}}return null}(a);return c?a.slice(0,c.idx):a},"detectPrMarkers",0,function(a){let b=[],f=a.durationMs??0;for(let g of a.events){if("tool-call"!==g.role||"Bash"!==g.toolName)continue;let h=g.blocks.find(a=>a&&"type"in a&&"tool_use"===a.type);if(!h||"tool_use"!==h.type)continue;let i=h.input,j="string"==typeof i?.command?i.command:"";if(!c.test(j))continue;let k=j.match(e),l=j.match(d);b.push({sessionId:a.id,timestamp:g.timestamp??a.firstTimestamp??"",tOffsetMs:g.tOffsetMs,positionInSession:f>0&&void 0!==g.tOffsetMs?Math.min(1,Math.max(0,g.tOffsetMs/f)):void 0,command:j.slice(0,300),prNumber:l?Number(l[1]):void 0,title:k?.[1]})}return b}])}];
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0b323~k._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},71306,(a,b,c)=>{b.exports=a.r(18622)},79847,a=>{a.n(a.i(3343))},9185,a=>{a.n(a.i(29432))},72842,a=>{a.n(a.i(75164))},54897,a=>{a.n(a.i(30106))},56157,a=>{a.n(a.i(18970))},94331,a=>{a.n(a.i(60644))},15988,a=>{a.n(a.i(56952))},25766,a=>{a.n(a.i(77341))},29725,a=>{a.n(a.i(94290))},5785,a=>{a.n(a.i(90588))},74793,a=>{a.n(a.i(33169))},85826,a=>{a.n(a.i(37111))},21565,a=>{a.n(a.i(41763))},65911,a=>{a.n(a.i(8950))},25128,a=>{a.n(a.i(91562))},40781,a=>{a.n(a.i(49670))},69411,a=>{a.n(a.i(75700))},63081,a=>{a.n(a.i(276))},62837,a=>{a.n(a.i(40795))},34607,a=>{a.n(a.i(11614))},96338,a=>{a.n(a.i(21751))},50642,a=>{a.n(a.i(12213))},32242,a=>{a.n(a.i(22693))},88530,a=>{a.n(a.i(10531))},8583,a=>{a.n(a.i(1082))},38534,a=>{a.n(a.i(98175))},70408,a=>{a.n(a.i(9095))},22922,a=>{a.n(a.i(96772))},78294,a=>{a.n(a.i(71717))},16625,a=>{a.n(a.i(85034))},88648,a=>{a.n(a.i(68113))},51914,a=>{a.n(a.i(66482))},25466,a=>{a.n(a.i(91505))},20916,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return e}});class d extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class e extends URLSearchParams{append(){throw new d}delete(){throw new d}set(){throw new d}sort(){throw new d}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},21170,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"RedirectStatusCode",{enumerable:!0,get:function(){return e}});var d,e=((d={})[d.SeeOther=303]="SeeOther",d[d.TemporaryRedirect=307]="TemporaryRedirect",d[d.PermanentRedirect=308]="PermanentRedirect",d);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},28859,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={REDIRECT_ERROR_CODE:function(){return g},isRedirectError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(21170),g="NEXT_REDIRECT";function h(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,d]=b,e=b.slice(2,-2).join(";"),h=Number(b.at(-2));return c===g&&("replace"===d||"push"===d)&&"string"==typeof e&&!isNaN(h)&&h in f.RedirectStatusCode}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},44868,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getRedirectError:function(){return i},getRedirectStatusCodeFromError:function(){return n},getRedirectTypeFromError:function(){return m},getURLFromRedirectError:function(){return l},permanentRedirect:function(){return k},redirect:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(21170),g=a.r(28859),h=a.r(20635).actionAsyncStorage;function i(a,b,c=f.RedirectStatusCode.TemporaryRedirect){let d=Object.defineProperty(Error(g.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return d.digest=`${g.REDIRECT_ERROR_CODE};${b};${a};${c};`,d}function j(a,b){throw i(a,b??=h?.getStore()?.isAction?"push":"replace",f.RedirectStatusCode.TemporaryRedirect)}function k(a,b="replace"){throw i(a,b,f.RedirectStatusCode.PermanentRedirect)}function l(a){return(0,g.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function m(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function n(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},89798,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HTTPAccessErrorStatus:function(){return f},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return h},getAccessFallbackErrorTypeByStatus:function(){return k},getAccessFallbackHTTPStatus:function(){return j},isHTTPAccessFallbackError:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},g=new Set(Object.values(f)),h="NEXT_HTTP_ERROR_FALLBACK";function i(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let[b,c]=a.digest.split(";");return b===h&&g.has(Number(c))}function j(a){return Number(a.digest.split(";")[1])}function k(a){switch(a){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},16155,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"notFound",{enumerable:!0,get:function(){return f}});let d=a.r(89798),e=`${d.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function f(){let a=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E1041",enumerable:!1,configurable:!0});throw a.digest=e,a}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},34557,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"forbidden",{enumerable:!0,get:function(){return d}}),a.r(89798).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},93845,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unauthorized",{enumerable:!0,get:function(){return d}}),a.r(89798).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},73808,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isPostpone",{enumerable:!0,get:function(){return e}});let d=Symbol.for("react.postpone");function e(a){return"object"==typeof a&&null!==a&&a.$$typeof===d}},1567,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isNextRouterError",{enumerable:!0,get:function(){return f}});let d=a.r(89798),e=a.r(28859);function f(a){return(0,e.isRedirectError)(a)||(0,d.isHTTPAccessFallbackError)(a)}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},94783,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b)||(0,h.isPrerenderInterruptedError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=a.r(13091),e=a.r(73808),f=a.r(49640),g=a.r(1567),h=a.r(60384),i=a.r(96556);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},60968,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=a.r(94783).unstable_rethrow;("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},73727,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ReadonlyURLSearchParams:function(){return f.ReadonlyURLSearchParams},RedirectType:function(){return m},forbidden:function(){return i.forbidden},notFound:function(){return h.notFound},permanentRedirect:function(){return g.permanentRedirect},redirect:function(){return g.redirect},unauthorized:function(){return j.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return k.unstable_rethrow}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20916),g=a.r(44868),h=a.r(16155),i=a.r(34557),j=a.r(93845),k=a.r(60968);function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}let m={push:"push",replace:"replace"};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},70396,a=>{"use strict";a.i(73727),a.s([])},50888,a=>{"use strict";a.s(["InsightReport",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call InsightReport() from the server but InsightReport 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/insight-report.tsx <module evaluation>","InsightReport")},90991,a=>{"use strict";a.s(["InsightReport",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call InsightReport() from the server but InsightReport 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/insight-report.tsx","InsightReport")},72614,a=>{"use strict";a.i(50888);var b=a.i(90991);a.n(b)},72007,a=>{"use strict";var b=a.i(2157),c=a.i(50227),d=a.i(60526);let e=(0,c.join)((0,d.homedir)(),".cclens","insights");async function f(a){if(!/^[a-z0-9-]+$/i.test(a))return null;try{let d=await b.promises.readFile((0,c.join)(e,`${a}.json`),"utf8");return JSON.parse(d).report}catch{return null}}a.s(["getSavedReport",0,f])},1269,a=>{"use strict";var b=a.i(717);let c=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim();var d={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let e=(0,b.forwardRef)(({color:a="currentColor",size:e=24,strokeWidth:f=2,absoluteStrokeWidth:g,className:h="",children:i,iconNode:j,...k},l)=>(0,b.createElement)("svg",{ref:l,...d,width:e,height:e,stroke:a,strokeWidth:g?24*Number(f)/Number(e):f,className:c("lucide",h),...k},[...j.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(i)?i:[i]]));a.s(["default",0,(a,d)=>{let f=(0,b.forwardRef)(({className:f,...g},h)=>(0,b.createElement)(e,{ref:h,iconNode:d,className:c(`lucide-${a.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,f),...g}));return f.displayName=`${a}`,f}],1269)},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}},790,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js <module evaluation>"))},84707,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js"))},97647,a=>{"use strict";a.i(790);var b=a.i(84707);a.n(b)},95936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(64240),g=a.r(7997),h=f._(a.r(97647));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},13743,a=>{"use strict";let b=(0,a.i(1269).default)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);a.s(["ArrowLeft",0,b],13743)},45449,a=>{"use strict";var b=a.i(7997),c=a.i(95936);a.i(70396);var d=a.i(73727),e=a.i(13743),f=a.i(72614),g=a.i(72007);async function h({params:a}){let{key:k}=await a,l=await (0,g.getSavedReport)(k);return l||(0,d.notFound)(),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"no-print",style:i,children:[(0,b.jsxs)(c.default,{href:"/insights",style:j,children:[(0,b.jsx)(e.ArrowLeft,{size:12})," Reports"]}),(0,b.jsxs)("span",{style:{fontSize:11,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:["saved · key: ",k]})]}),(0,b.jsx)(f.InsightReport,{data:l,savedKey:k})]})}let i={maxWidth:980,margin:"0 auto",padding:"16px 44px 0",display:"flex",alignItems:"center",gap:12},j={display:"inline-flex",alignItems:"center",gap:6,padding:"7px 12px",border:"1px solid var(--af-border)",borderRadius:8,background:"var(--af-surface)",color:"var(--af-text)",fontSize:12,fontWeight:500,textDecoration:"none"};a.s(["default",0,h,"dynamic",0,"force-dynamic"])},93896,a=>{a.n(a.i(45449))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0euu8sa._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},71306,(a,b,c)=>{b.exports=a.r(18622)},79847,a=>{a.n(a.i(3343))},9185,a=>{a.n(a.i(29432))},72842,a=>{a.n(a.i(75164))},54897,a=>{a.n(a.i(30106))},56157,a=>{a.n(a.i(18970))},94331,a=>{a.n(a.i(60644))},15988,a=>{a.n(a.i(56952))},25766,a=>{a.n(a.i(77341))},29725,a=>{a.n(a.i(94290))},5785,a=>{a.n(a.i(90588))},74793,a=>{a.n(a.i(33169))},85826,a=>{a.n(a.i(37111))},21565,a=>{a.n(a.i(41763))},65911,a=>{a.n(a.i(8950))},25128,a=>{a.n(a.i(91562))},40781,a=>{a.n(a.i(49670))},69411,a=>{a.n(a.i(75700))},63081,a=>{a.n(a.i(276))},62837,a=>{a.n(a.i(40795))},34607,a=>{a.n(a.i(11614))},96338,a=>{a.n(a.i(21751))},50642,a=>{a.n(a.i(12213))},32242,a=>{a.n(a.i(22693))},88530,a=>{a.n(a.i(10531))},8583,a=>{a.n(a.i(1082))},38534,a=>{a.n(a.i(98175))},70408,a=>{a.n(a.i(9095))},22922,a=>{a.n(a.i(96772))},78294,a=>{a.n(a.i(71717))},16625,a=>{a.n(a.i(85034))},88648,a=>{a.n(a.i(68113))},51914,a=>{a.n(a.i(66482))},25466,a=>{a.n(a.i(91505))},20916,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return e}});class d extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class e extends URLSearchParams{append(){throw new d}delete(){throw new d}set(){throw new d}sort(){throw new d}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},21170,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"RedirectStatusCode",{enumerable:!0,get:function(){return e}});var d,e=((d={})[d.SeeOther=303]="SeeOther",d[d.TemporaryRedirect=307]="TemporaryRedirect",d[d.PermanentRedirect=308]="PermanentRedirect",d);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},28859,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={REDIRECT_ERROR_CODE:function(){return g},isRedirectError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(21170),g="NEXT_REDIRECT";function h(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,d]=b,e=b.slice(2,-2).join(";"),h=Number(b.at(-2));return c===g&&("replace"===d||"push"===d)&&"string"==typeof e&&!isNaN(h)&&h in f.RedirectStatusCode}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},44868,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getRedirectError:function(){return i},getRedirectStatusCodeFromError:function(){return n},getRedirectTypeFromError:function(){return m},getURLFromRedirectError:function(){return l},permanentRedirect:function(){return k},redirect:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(21170),g=a.r(28859),h=a.r(20635).actionAsyncStorage;function i(a,b,c=f.RedirectStatusCode.TemporaryRedirect){let d=Object.defineProperty(Error(g.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return d.digest=`${g.REDIRECT_ERROR_CODE};${b};${a};${c};`,d}function j(a,b){throw i(a,b??=h?.getStore()?.isAction?"push":"replace",f.RedirectStatusCode.TemporaryRedirect)}function k(a,b="replace"){throw i(a,b,f.RedirectStatusCode.PermanentRedirect)}function l(a){return(0,g.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function m(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function n(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},89798,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HTTPAccessErrorStatus:function(){return f},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return h},getAccessFallbackErrorTypeByStatus:function(){return k},getAccessFallbackHTTPStatus:function(){return j},isHTTPAccessFallbackError:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},g=new Set(Object.values(f)),h="NEXT_HTTP_ERROR_FALLBACK";function i(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let[b,c]=a.digest.split(";");return b===h&&g.has(Number(c))}function j(a){return Number(a.digest.split(";")[1])}function k(a){switch(a){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},16155,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"notFound",{enumerable:!0,get:function(){return f}});let d=a.r(89798),e=`${d.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function f(){let a=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E1041",enumerable:!1,configurable:!0});throw a.digest=e,a}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},34557,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"forbidden",{enumerable:!0,get:function(){return d}}),a.r(89798).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},93845,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unauthorized",{enumerable:!0,get:function(){return d}}),a.r(89798).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},73808,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isPostpone",{enumerable:!0,get:function(){return e}});let d=Symbol.for("react.postpone");function e(a){return"object"==typeof a&&null!==a&&a.$$typeof===d}},1567,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isNextRouterError",{enumerable:!0,get:function(){return f}});let d=a.r(89798),e=a.r(28859);function f(a){return(0,e.isRedirectError)(a)||(0,d.isHTTPAccessFallbackError)(a)}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},94783,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b)||(0,h.isPrerenderInterruptedError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=a.r(13091),e=a.r(73808),f=a.r(49640),g=a.r(1567),h=a.r(60384),i=a.r(96556);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},60968,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=a.r(94783).unstable_rethrow;("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},73727,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ReadonlyURLSearchParams:function(){return f.ReadonlyURLSearchParams},RedirectType:function(){return m},forbidden:function(){return i.forbidden},notFound:function(){return h.notFound},permanentRedirect:function(){return g.permanentRedirect},redirect:function(){return g.redirect},unauthorized:function(){return j.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return k.unstable_rethrow}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20916),g=a.r(44868),h=a.r(16155),i=a.r(34557),j=a.r(93845),k=a.r(60968);function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}let m={push:"push",replace:"replace"};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},70396,a=>{"use strict";a.i(73727),a.s([])},67116,a=>{"use strict";var b=a.i(717),c=a.i(50785);let d=process.env.CCLENS_DATA_DIR||void 0,e=(0,b.cache)(async()=>(0,c.listSessions)({limit:1e3,root:d})),f=(0,b.cache)(async a=>(0,c.getSession)(a,{root:d}));a.s(["getSession",0,f,"listSessions",0,e])},87067,a=>{"use strict";let b={input:1,output:5,cacheRead:.1,cacheWrite:1.25},c={input:3,output:15,cacheRead:.3,cacheWrite:3.75},d={input:5,output:25,cacheRead:.5,cacheWrite:6.25};a.s(["estimateCostMulti",0,function(a){return a.reduce((a,e)=>{var f;let g;return a+(f=e.totalUsage,g=function(a){if(!a)return d;let e=a.toLowerCase();return e.includes("haiku")?b:e.includes("sonnet")?c:d}(e.model),f.input/1e6*g.input+f.output/1e6*g.output+f.cacheRead/1e6*g.cacheRead+f.cacheWrite/1e6*g.cacheWrite)},0)},"formatCost",0,function(a){return a<.01?"<$0.01":a<1||a<100?`$${a.toFixed(2)}`:a<1e3?`$${a.toFixed(1)}`:`$${a.toLocaleString(void 0,{maximumFractionDigits:0})}`},"formatDuration",0,function(a){if(void 0===a)return"—";if(a<1e3)return`${a}ms`;let b=Math.round(a/1e3);if(b<60)return`${b}s`;let c=Math.floor(b/60),d=b%60;if(c<60)return d?`${c}m ${d}s`:`${c}m`;let e=Math.floor(c/60),f=c%60;return f?`${e}h ${f}m`:`${e}h`},"formatGap",0,function(a){if(a<1e3)return`${a}ms`;let b=a/1e3;if(b<60)return`${b.toFixed(1)}s`;let c=Math.floor(b/60);if(c<60){let a=Math.round(b%60);return`${c}m ${a}s`}let d=Math.floor(c/60),e=c%60;if(d<24)return e?`${d}h ${e}m`:`${d}h`;let f=Math.floor(d/24),g=d%24;return g?`${f}d ${g}h`:`${f}d`},"formatRelative",0,function(a){let b=Date.parse(a);if(Number.isNaN(b))return a;let c=Math.round((Date.now()-b)/1e3);if(c<60)return`${c}s ago`;let d=Math.round(c/60);if(d<60)return`${d}m ago`;let e=Math.round(d/60);if(e<24)return`${e}h ago`;let f=Math.round(e/24);return`${f}d ago`},"formatTokens",0,function(a){return a<1e3?String(a):a<1e4?(a/1e3).toFixed(1)+"k":a<1e6?Math.round(a/1e3)+"k":a<1e7?(a/1e6).toFixed(2)+"M":(a/1e6).toFixed(1)+"M"},"prettyProjectName",0,function(a,b=35){let c=a.split("/").filter(Boolean),d=c.lastIndexOf(".worktrees");if(d>0&&d<c.length-1){let a=c[d-1],e=c[d+1],f=`${a}/${e}`;return f.length<=b?f:"…"+f.slice(f.length-b+1)}let e=c.length>=2?`${c[c.length-2]}/${c[c.length-1]}`:c[c.length-1]??a;return e.length<=b?e:"…"+e.slice(e.length-b+1)}])},30237,a=>{"use strict";a.s(["SessionView",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call SessionView() from the server but SessionView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/app/sessions/[id]/session-view.tsx <module evaluation>","SessionView")},41422,a=>{"use strict";a.s(["SessionView",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call SessionView() from the server but SessionView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/app/sessions/[id]/session-view.tsx","SessionView")},12099,a=>{"use strict";a.i(30237);var b=a.i(41422);a.n(b)},83884,a=>{"use strict";var b=a.i(7997);a.i(70396);var c=a.i(73727),d=a.i(67116),e=a.i(50785),f=a.i(87067);let g=/\[request interrupted|interrupted by user/i,h=/rate.?limit|overloaded_error|api error|Error sending message/i,i=/^Base directory for this skill:/,j=/<command-name>(\/[^<\s]+)<\/command-name>(?:[\s\S]*?<command-args>([\s\S]*?)<\/command-args>)?/,k=/<task-notification>/;function l(a){for(let b of a)if(b?.type==="text")return b.text}let m=["#58a6ff","#b58cf0","#3fb950","#f85149","#db6d28","#ff7b72","#56d364"];function n(a){let b=[...a].sort((a,b)=>a.startMs-b.startMs),c=[];for(let a of b){let b=c[c.length-1];b&&a.startMs<=b.endMs?a.endMs>b.endMs&&(b.endMs=a.endMs):c.push({startMs:a.startMs,endMs:a.endMs})}return c}function o(a,b,c,d){let e,f=a.firstTimestamp?Date.parse(a.firstTimestamp):0,m=function(a){let b=new Map;for(let c of a){if(!c.messageId)continue;let a=b.get(c.messageId)??[];a.push(c),b.set(c.messageId,a)}let c=a.filter(a=>{if("system"===a.role||"meta"===a.role||"tool-result"===a.role||"agent-thinking"===a.role)return!1;if("user"===a.role){let b=l(a.blocks)??"";if(i.test(b))return!1}return!0}),d=[];for(let a=0;a<c.length;a++){let e=c[a];if("tool-call"===e.role){let b=a;for(;a+1<c.length&&"tool-call"===c[a+1].role;)a++;let e=c.slice(b,a+1),f=[],g=new Map;for(let a of e){let b=a.toolName??"tool";g.has(b)||f.push(b),g.set(b,(g.get(b)??0)+1)}let h=f.map(a=>({name:a,count:g.get(a)??1}));d.push({kind:"tool-group",toolNames:h,count:e.length,events:e,tOffsetMs:e[0].tOffsetMs,gapMs:e[0].gapMs});continue}if("user"===e.role){let a=l(e.blocks)??"",b=function(a){if(!k.test(a))return null;let b=b=>{let c=a.match(RegExp(`<${b}>([\\s\\S]*?)<\\/${b}>`));return c?c[1].trim():void 0},c=(b("status")??"").toLowerCase(),d="unknown";return"success"===c||"ok"===c||"done"===c||"completed"===c?d="success":"failed"===c||"error"===c||"fail"===c?d="failed":("running"===c||"in_progress"===c)&&(d="running"),{status:d,summary:b("summary")??"Background task notification",taskId:b("task-id"),toolUseId:b("tool-use-id"),outputFile:b("output-file")}}(a);if(b){d.push({kind:"task-notification",event:e,status:b.status,summary:b.summary,taskId:b.taskId,toolUseId:b.toolUseId,outputFile:b.outputFile,tOffsetMs:e.tOffsetMs,gapMs:e.gapMs});continue}if(g.test(a)){d.push({kind:"interrupt",event:e,tOffsetMs:e.tOffsetMs,gapMs:e.gapMs});continue}let c=a.match(j);if(c){let a=c[1],b=(c[2]??"").trim(),f=b?`${a} ${b}`:a;d.push({kind:"user",event:e,displayPreview:f,displayBlocks:[{type:"text",text:f}],tOffsetMs:e.tOffsetMs,gapMs:e.gapMs});continue}d.push({kind:"user",event:e,tOffsetMs:e.tOffsetMs,gapMs:e.gapMs});continue}if("agent"===e.role){let a=l(e.blocks)??"";if(function(a){if(!a.usage)return!1;let b=a.usage;return 0===b.input&&0===b.output&&0===b.cacheRead&&0===b.cacheWrite}(e)){d.push({kind:"model",event:e,tOffsetMs:e.tOffsetMs,gapMs:e.gapMs}),h.test(a)&&a.length<500&&d.push({kind:"error",event:e,message:a,tOffsetMs:e.tOffsetMs,gapMs:0});continue}if(h.test(a)&&a.length<500){d.push({kind:"error",event:e,message:a,tOffsetMs:e.tOffsetMs,gapMs:e.gapMs});continue}let c=e.messageId?b.get(e.messageId)??[e]:[e];d.push({kind:"agent",event:e,groupedEvents:c,tOffsetMs:e.tOffsetMs,gapMs:e.gapMs});continue}}return d}(a.events),n=function(a){let b=[],c=[],d=()=>{let a,d;if(0===c.length)return;let e=0,f=0,g=0,h=new Map,i=new Set,j={input:0,output:0,cacheRead:0,cacheWrite:0};for(let b=0;b<c.length;b++){let d=c[b];if("agent"===d.kind){e++,void 0===a&&(a=b);let c=d.event.messageId,f=d.event.usage;c&&!i.has(c)&&f&&(i.add(c),j.input+=f.input,j.output+=f.output,j.cacheRead+=f.cacheRead,j.cacheWrite+=f.cacheWrite)}else if("tool-group"===d.kind)for(let a of(f+=d.count,d.toolNames))h.set(a.name,(h.get(a.name)??0)+a.count);else"error"===d.kind&&g++}for(let a=c.length-1;a>=0;a--){if("agent"!==c[a].kind)continue;let b=c[a-1];if(b?.kind!=="task-notification"){d=a;break}}if(void 0===d){for(let a=c.length-1;a>=0;a--)if("agent"===c[a].kind){d=a;break}}let k=void 0!==a&&"agent"===c[a].kind?c[a].event.preview:void 0,l=void 0!==d&&"agent"===c[d].kind?c[d].event.preview:void 0,m=Array.from(h.entries()).sort((a,b)=>b[1]-a[1]).map(([a,b])=>({name:a,count:b})),n=c[0],o=c[c.length-1],p=n.tOffsetMs,q=o.tOffsetMs;b.push({kind:"turn",rows:c,firstPrimaryIndex:"tool-group"===n.kind?n.events[0].index:n.event.index,tOffsetMs:p,durationMs:void 0!==p&&void 0!==q?q-p:void 0,summary:{agentMessages:e,toolCalls:f,errors:g,firstAgentPreview:k,finalAgentPreview:l,firstAgentIndex:a,finalAgentIndex:d,toolNames:m,totalTokens:j}}),c=[]};for(let e of a)"user"===e.kind||"interrupt"===e.kind?(d(),b.push(e)):c.push(e);return d(),b}(m),o=[],p=0;for(let b of n){if("user"===b.kind){e=b;continue}if("turn"!==b.kind||void 0===b.tOffsetMs||void 0===b.durationMs)continue;let c=f+b.tOffsetMs,d=Math.max(1e3,b.durationMs);o.push({id:`${a.sessionId}:${p++}`,trackId:a.sessionId,startMs:c,endMs:c+d,megaRow:b,durationMs:d,userPrompt:e})}return{id:a.sessionId,label:b,color:c,isLead:d,presentationRows:m,subagents:a.subagents??[],sessionStartMs:f,turns:o}}function p(a){return a<6e4?2e4:a<6e5?4e4:a<36e5?6e4:a<216e5?8e4:1e5}function q(a,b,c,d){if(0===a.length||c<=b)return{xAnchors:[{tsMs:b,xFrac:0},{tsMs:c,xFrac:1}],minimapIdleBands:[]};let e=n(a),g=[],h=b;for(let a of e){if(a.startMs>h){let b=a.startMs-h;g.push({startMs:h,endMs:a.startMs,isIdle:b>=3e4,weight:b>=3e4?p(b):Math.max(45e3,b)})}let b=a.endMs-a.startMs;g.push({startMs:a.startMs,endMs:a.endMs,isIdle:!1,weight:Math.max(45e3,b)}),h=a.endMs}if(h<c){let a=c-h;g.push({startMs:h,endMs:c,isIdle:a>=3e4,weight:a>=3e4?p(a):Math.max(45e3,a)})}let i=g.reduce((a,b)=>a+b.weight,0)||1,j=[{tsMs:b,xFrac:0}],k=0;for(let a of g)k+=a.weight,j.push({tsMs:a.endMs,xFrac:k/i});let l=[],m=0;for(let a of g){let b=m/i,c=(m+=a.weight)/i;a.isIdle&&l.push({startMs:a.startMs,endMs:a.endMs,durationMs:a.endMs-a.startMs,xFracStart:b,xFracEnd:c,label:function(a,b,c){let d=`${(0,f.formatGap)(b-a)} idle`;if(!c)return d;let e=new Date(a),g=new Date(b);if(e.getFullYear()===g.getFullYear()&&e.getMonth()===g.getMonth()&&e.getDate()===g.getDate())return d;let h=g.toLocaleDateString([],{month:"short",day:"numeric"});return`${d} → ${h}`}(a.startMs,a.endMs,d)})}return{xAnchors:j,minimapIdleBands:l}}var r=a.i(12099);async function s({params:a}){let{id:f}=await a,g=await (0,d.getSession)(f);if(!g)return(0,c.notFound)();let h=null;if(g.isTeamLead){let a=await (0,e.loadTeamForSession)(f);a&&(h={...function(a,b){var c,d;let e,f,g=[],h=b.get(a.leadSessionId);h&&g.push(o(h,"LEAD","#f0b429",!0)),a.memberSessionIds.forEach((c,d)=>{let e=b.get(c);if(!e)return;let f=a.agentNameBySessionId.get(c)??c.slice(0,8);g.push(o(e,f,m[d%m.length],!1))});let i=g.flatMap(a=>a.turns);i.sort((a,b)=>a.startMs-b.startMs);let{yAnchors:j,idleBands:k,totalHeightPx:l,timeTicks:p}=function(a,b,c){if(0===a.length)return{yAnchors:[{tsMs:b,yPx:0},{tsMs:c,yPx:0}],idleBands:[],totalHeightPx:0,timeTicks:[]};let d=n(a),e=new Set;for(let a of(e.add(b),e.add(c),d))e.add(a.startMs),e.add(a.endMs);for(let b of a)e.add(b.startMs),e.add(b.endMs);let f=[...e].sort((a,b)=>a-b),g=[];for(let b=0;b<f.length-1;b++){let c=f[b],e=f[b+1],h=e-c;if(h<=0)continue;if(!d.some(a=>a.startMs<=c&&a.endMs>=e)&&h>=3e4){g.push({startMs:c,endMs:e,isIdle:!0,heightPx:h<1e4?6:h<6e4?18:h<6e5?24:h<36e5?32:44});continue}let i=24;for(let b of a){let a=Math.min(b.endMs,e)-Math.max(b.startMs,c);if(a<=0)continue;let d=a/b.durationMs,f=(140+Math.min(220,80*Math.log10(b.durationMs/6e4+1)))*d;f>i&&(i=f)}g.push({startMs:c,endMs:e,isIdle:!1,heightPx:i})}let h=[{tsMs:f[0],yPx:0}],i=0;for(let a=0;a<g.length;a++)i+=g[a].heightPx,h.push({tsMs:g[a].endMs,yPx:i});let j=i,k=[],l=0;for(let a of g)a.isIdle&&k.push({kind:"idle",startMs:a.startMs,endMs:a.endMs,durationMs:a.endMs-a.startMs,yPx:l,heightPx:a.heightPx}),l+=a.heightPx;let m=h.map(a=>({tsMs:a.tsMs,yPx:a.yPx,label:new Date(a.tsMs).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}));return{yAnchors:h,idleBands:k,totalHeightPx:j,timeTicks:m}}(i,a.firstEventMs,a.lastEventMs),r=(c=a.firstEventMs,d=a.lastEventMs,e=new Date(c),f=new Date(d),e.getFullYear()!==f.getFullYear()||e.getMonth()!==f.getMonth()||e.getDate()!==f.getDate()),{xAnchors:s,minimapIdleBands:t}=q(i,a.firstEventMs,a.lastEventMs,r),u=a.lastEventMs-a.firstEventMs>864e5?function(a,b,c,d){let e=new Date(b),f=new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime(),g=[],h=f;for(;h<c;){let e=h,f=Math.min(c,h+864e5),i=Math.max(e,b),j=a.filter(a=>a.endMs>=i&&a.startMs<=f);if(0===j.length){h+=864e5;continue}let{xAnchors:k,minimapIdleBands:l}=q(j,i,f,d);g.push({startMs:i,endMs:f,label:new Date(e).toLocaleDateString([],{month:"short",day:"numeric"}),xAnchors:k,minimapIdleBands:l}),h+=864e5}return g}(i,a.firstEventMs,a.lastEventMs,r):void 0;return{tracks:g,yAnchors:j,idleBands:k,totalHeightPx:l,firstEventMs:a.firstEventMs,lastEventMs:a.lastEventMs,timeTicks:p,xAnchors:s,minimapIdleBands:t,multiDay:r,dayPages:u}}(a.view,a.details),teamName:a.view.teamName})}let i=null;!g.isTeamLead&&g.teamName&&g.agentName&&(i=await (0,e.findTeamLead)(f));let j={...g,events:g.events.map(a=>({...a,raw:void 0}))};return(0,b.jsx)(r.SessionView,{session:j,team:h,teamLead:i})}a.s(["default",0,s,"dynamic",0,"force-dynamic"],83884)},29800,a=>{a.n(a.i(83884))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0gio_ck._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},71306,(a,b,c)=>{b.exports=a.r(18622)},79847,a=>{a.n(a.i(3343))},9185,a=>{a.n(a.i(29432))},72842,a=>{a.n(a.i(75164))},54897,a=>{a.n(a.i(30106))},56157,a=>{a.n(a.i(18970))},94331,a=>{a.n(a.i(60644))},15988,a=>{a.n(a.i(56952))},25766,a=>{a.n(a.i(77341))},29725,a=>{a.n(a.i(94290))},5785,a=>{a.n(a.i(90588))},74793,a=>{a.n(a.i(33169))},85826,a=>{a.n(a.i(37111))},21565,a=>{a.n(a.i(41763))},65911,a=>{a.n(a.i(8950))},25128,a=>{a.n(a.i(91562))},40781,a=>{a.n(a.i(49670))},69411,a=>{a.n(a.i(75700))},63081,a=>{a.n(a.i(276))},62837,a=>{a.n(a.i(40795))},34607,a=>{a.n(a.i(11614))},96338,a=>{a.n(a.i(21751))},50642,a=>{a.n(a.i(12213))},32242,a=>{a.n(a.i(22693))},88530,a=>{a.n(a.i(10531))},8583,a=>{a.n(a.i(1082))},38534,a=>{a.n(a.i(98175))},70408,a=>{a.n(a.i(9095))},22922,a=>{a.n(a.i(96772))},78294,a=>{a.n(a.i(71717))},16625,a=>{a.n(a.i(85034))},88648,a=>{a.n(a.i(68113))},51914,a=>{a.n(a.i(66482))},25466,a=>{a.n(a.i(91505))},28533,a=>{"use strict";a.s(["InsightsView",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call InsightsView() from the server but InsightsView 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/insights-view.tsx <module evaluation>","InsightsView")},77220,a=>{"use strict";a.s(["InsightsView",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call InsightsView() from the server but InsightsView 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/insights-view.tsx","InsightsView")},13658,a=>{"use strict";a.i(28533);var b=a.i(77220);a.n(b)},73855,a=>{"use strict";var b=a.i(7997),c=a.i(13658);a.s(["default",0,function(){return(0,b.jsx)(c.InsightsView,{})},"dynamic",0,"force-dynamic"])},77015,a=>{a.n(a.i(73855))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0gx-4qa._.js.map
|