fleetlens 0.15.7 → 0.16.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 +3 -3
- 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.js +1 -1
- package/app/apps/web/.next/server/app/_global-error/page.js.nft.json +1 -1
- 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.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/agent/page/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/agent/page/build-manifest.json +17 -0
- package/app/apps/web/.next/server/app/agent/page/next-font-manifest.json +6 -0
- package/app/apps/web/.next/server/app/agent/page/react-loadable-manifest.json +1 -0
- package/app/apps/web/.next/server/app/agent/page/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/agent/page.js +18 -0
- package/app/apps/web/.next/server/app/agent/page.js.map +5 -0
- package/app/apps/web/.next/server/app/agent/page.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/agent/page_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/events/route/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/events/route/build-manifest.json +9 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/events/route/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/events/route.js +7 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/events/route.js.map +5 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/events/route.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/events/route_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/messages/route/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/messages/route/build-manifest.json +9 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/messages/route/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/messages/route.js +9 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/messages/route.js.map +5 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/messages/route.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/messages/route_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/route/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/route/build-manifest.json +9 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/route/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/route.js +7 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/route.js.map +5 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/route.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/route_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/stop/route/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/stop/route/build-manifest.json +9 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/stop/route/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/stop/route.js +7 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/stop/route.js.map +5 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/stop/route.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/stop/route_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/api/agent/chats/route/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/api/agent/chats/route/build-manifest.json +9 -0
- package/app/apps/web/.next/server/app/api/agent/chats/route/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/api/agent/chats/route.js +7 -0
- package/app/apps/web/.next/server/app/api/agent/chats/route.js.map +5 -0
- package/app/apps/web/.next/server/app/api/agent/chats/route.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/api/agent/chats/route_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/api/agent/index/route/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/api/agent/index/route/build-manifest.json +9 -0
- package/app/apps/web/.next/server/app/api/agent/index/route/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/api/agent/index/route.js +9 -0
- package/app/apps/web/.next/server/app/api/agent/index/route.js.map +5 -0
- package/app/apps/web/.next/server/app/api/agent/index/route.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/api/agent/index/route_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/api/agent/mcp/route/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/api/agent/mcp/route/build-manifest.json +9 -0
- package/app/apps/web/.next/server/app/api/agent/mcp/route/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/api/agent/mcp/route.js +10 -0
- package/app/apps/web/.next/server/app/api/agent/mcp/route.js.map +5 -0
- package/app/apps/web/.next/server/app/api/agent/mcp/route.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/api/agent/mcp/route_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/api/agent/suggestions/route/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/api/agent/suggestions/route/build-manifest.json +9 -0
- package/app/apps/web/.next/server/app/api/agent/suggestions/route/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/api/agent/suggestions/route.js +12 -0
- package/app/apps/web/.next/server/app/api/agent/suggestions/route.js.map +5 -0
- package/app/apps/web/.next/server/app/api/agent/suggestions/route.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/api/agent/suggestions/route_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/api/ask/route.js +3 -4
- package/app/apps/web/.next/server/app/api/ask/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/day/[date]/route.js +4 -4
- package/app/apps/web/.next/server/app/api/digest/day/[date]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js +4 -4
- package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/month-index/route.js +2 -2
- package/app/apps/web/.next/server/app/api/digest/month-index/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js +4 -4
- package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/week-index/route.js +2 -2
- package/app/apps/web/.next/server/app/api/digest/week-index/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/events/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/jobs/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/pdf/[key]/route.js +3 -3
- package/app/apps/web/.next/server/app/api/pdf/[key]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/projects/open-folder/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/runs/[runId]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/runs/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/settings/credentials/route.js +5 -5
- package/app/apps/web/.next/server/app/api/settings/credentials/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/settings/route.js +3 -3
- package/app/apps/web/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/team/autostart/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/team/onboarding/start/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/team/sync-projects/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/workflow-agent/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/changelog/page.js +1 -1
- package/app/apps/web/.next/server/app/changelog/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/changelog/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/day/[date]/page.js +2 -2
- package/app/apps/web/.next/server/app/day/[date]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/day/[date]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/day/page.js +1 -1
- package/app/apps/web/.next/server/app/day/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/day/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/digest/[date]/page.js +1 -1
- package/app/apps/web/.next/server/app/digest/[date]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/digest/[date]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/digest/page.js +1 -1
- package/app/apps/web/.next/server/app/digest/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/digest/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/insights/[key]/page.js +2 -2
- package/app/apps/web/.next/server/app/insights/[key]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/insights/[key]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/insights/page.js +2 -2
- package/app/apps/web/.next/server/app/insights/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/insights/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/page.js +2 -2
- 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.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/print/[key]/page.js +2 -2
- package/app/apps/web/.next/server/app/print/[key]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/print/[key]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/projects/[slug]/page.js +1 -1
- 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.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/runs/page.js +1 -1
- package/app/apps/web/.next/server/app/runs/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/runs/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/sessions/[id]/page.js +1 -1
- 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.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/settings/page.js +2 -2
- package/app/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/team/onboarding/page.js +1 -1
- package/app/apps/web/.next/server/app/team/onboarding/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/team/onboarding/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/team/page.js +1 -1
- package/app/apps/web/.next/server/app/team/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/team/page_client-reference-manifest.js +1 -1
- 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_agent_chats_[id]_events_route_actions_0fkgl_r.js +3 -0
- package/app/apps/web/.next/server/chunks/02dz_web__next-internal_server_app_api_agent_chats_[id]_stop_route_actions_036fon_.js +3 -0
- package/app/apps/web/.next/server/chunks/09og__next-internal_server_app_api_agent_chats_[id]_messages_route_actions_0ubwh4q.js +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__01~cgp8._.js +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__02faosk._.js +30 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__02puo0u._.js +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0367vbv._.js +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__04g-b-m._.js +9 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__06xto5z._.js +9 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__096_llw._.js +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__09cgmam._.js +28 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0_5tf-2._.js +21 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0gvw6dk._.js +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0mx_9mb._.js +5 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0pirsh0._.js +9 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0sbhe0s._.js +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0tk8p3d._.js +28 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0u6pamj._.js +28 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__123tfcb._.js +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__12jomao._.js +28 -0
- package/app/apps/web/.next/server/chunks/_132c.4p._.js +3 -0
- package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_agent_chats_[id]_route_actions_0b95y8h.js +3 -0
- package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_agent_chats_route_actions_07b4w1x.js +3 -0
- package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_agent_index_route_actions_03~ylvr.js +3 -0
- package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_agent_mcp_route_actions_0-b30h..js +3 -0
- package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_agent_suggestions_route_actions_0r_5s~k.js +3 -0
- package/app/apps/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0sr4wr_.js +13 -0
- package/app/apps/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0z_xi9k.js +16 -0
- package/app/apps/web/.next/server/chunks/{packages_0o6.gpk._.js → packages_entries_dist_0-0s5ui._.js} +2 -2
- package/app/apps/web/.next/server/chunks/packages_entries_dist_0~0d7ku._.js +3 -0
- package/app/apps/web/.next/server/chunks/packages_entries_dist_node_0bckr7-.js +8 -8
- package/app/apps/web/.next/server/chunks/packages_parser_dist_06d9se1._.js +1 -1
- package/app/apps/web/.next/server/chunks/packages_parser_dist_10ihc3~._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0e.gxk3._.js → [root-of-the-server]__0.wm54e._.js} +2 -2
- package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__04il6m2._.js → [root-of-the-server]__04qodwp._.js} +2 -2
- package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0k1x-c9._.js → [root-of-the-server]__07~kk2~._.js} +2 -2
- package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__03uoeiw._.js → [root-of-the-server]__0_78i1t._.js} +2 -2
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0amklf0._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0nr2~y1._.js → [root-of-the-server]__0d5y90m._.js} +2 -2
- package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__03svi~4._.js → [root-of-the-server]__0iv286q._.js} +2 -2
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0j683am._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0rvzdnx._.js → [root-of-the-server]__0kml6jt._.js} +2 -2
- package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__08l86e-._.js → [root-of-the-server]__0lmftab._.js} +2 -2
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0ns6ydi._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0vo.r~s._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0~8.fgs._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/_0k8yioi._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/{_13jdm1g._.js → _0~r5ica._.js} +2 -2
- package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_agent_page_actions_0tuled1.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/apps_web_app_day_[date]_day-view_tsx_0wjoe1u._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_app_sessions_[id]_session-view_tsx_0-9t5~.._.js +12 -0
- package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0x014hn._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_components_agent-chat_tsx_0xbtx2n._.js +5 -0
- package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_changelog_ts_0n7_p1d._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_changelog_ts_0nb5_-s._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/{node_modules_0yrkyef._.js → node_modules_next_dist_0t-hj0x._.js} +2 -2
- package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0~g07z5.js +4 -0
- package/app/apps/web/.next/server/chunks/ssr/packages_parser_dist_0mx_509._.js +1 -1
- package/app/apps/web/.next/server/functions-config-manifest.json +8 -0
- package/app/apps/web/.next/server/middleware-build-manifest.js +3 -3
- package/app/apps/web/.next/server/middleware-manifest.json +5 -5
- 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/04feoajklmrl3.js +3 -0
- package/app/apps/web/.next/static/chunks/07bzlfv97o1ig.js +10 -0
- package/app/apps/web/.next/static/chunks/0d~7p_ye7v7_5.css +1 -0
- package/app/apps/web/.next/static/chunks/0iiqpl6d_3i5~.js +1 -0
- package/app/apps/web/.next/static/chunks/0mry~475v0fa3.js +14 -0
- package/app/apps/web/.next/static/chunks/0qwgm81o9o~um.js +1 -0
- package/app/apps/web/.next/static/chunks/{0y3448zrint0k.js → 0~rycwo36m~c3.js} +1 -1
- package/app/apps/web/.next/static/chunks/12zmbd3mlcbn_.js +1 -0
- package/app/apps/web/.next/static/chunks/16bapkvp5.x37.js +1 -0
- package/app/apps/web/app/agent/page.tsx +12 -0
- package/app/apps/web/app/api/agent/chats/[id]/events/route.ts +86 -0
- package/app/apps/web/app/api/agent/chats/[id]/messages/route.ts +47 -0
- package/app/apps/web/app/api/agent/chats/[id]/route.ts +19 -0
- package/app/apps/web/app/api/agent/chats/[id]/stop/route.ts +10 -0
- package/app/apps/web/app/api/agent/chats/route.ts +26 -0
- package/app/apps/web/app/api/agent/index/route.ts +56 -0
- package/app/apps/web/app/api/agent/mcp/route.ts +31 -0
- package/app/apps/web/app/api/agent/suggestions/route.ts +150 -0
- package/app/apps/web/components/agent-chat.tsx +940 -0
- package/app/apps/web/components/sidebar.tsx +8 -21
- package/app/apps/web/lib/agent/chat-model.ts +125 -0
- package/app/apps/web/lib/agent/chat-store.test.ts +125 -0
- package/app/apps/web/lib/agent/chat-store.ts +59 -0
- package/app/apps/web/lib/agent/extract.test.ts +141 -0
- package/app/apps/web/lib/agent/extract.ts +75 -0
- package/app/apps/web/lib/agent/index-store.ts +206 -0
- package/app/apps/web/lib/agent/links.test.ts +27 -0
- package/app/apps/web/lib/agent/links.ts +10 -0
- package/app/apps/web/lib/agent/mcp.test.ts +83 -0
- package/app/apps/web/lib/agent/mcp.ts +85 -0
- package/app/apps/web/lib/agent/prompt.test.ts +38 -0
- package/app/apps/web/lib/agent/prompt.ts +44 -0
- package/app/apps/web/lib/agent/run.ts +426 -0
- package/app/apps/web/lib/agent/search.test.ts +111 -0
- package/app/apps/web/lib/agent/search.ts +144 -0
- package/app/apps/web/lib/agent/suggestions.test.ts +156 -0
- package/app/apps/web/lib/agent/suggestions.ts +167 -0
- package/app/apps/web/lib/agent/tools.test.ts +98 -0
- package/app/apps/web/lib/agent/tools.ts +176 -0
- package/app/apps/web/lib/agent/types.ts +50 -0
- package/app/apps/web/lib/changelog-data.generated.ts +1 -1
- package/app/apps/web/package.json +1 -1
- package/app/apps/web/tsconfig.tsbuildinfo +1 -1
- package/app/apps/web/vitest.config.ts +4 -0
- package/dist/daemon-worker.js +9 -4
- package/dist/index.js +19 -12
- package/menubar/FleetlensMenubar.app/Contents/Info.plist +2 -2
- package/menubar/FleetlensMenubar.app/Contents/MacOS/FleetlensMenubar +0 -0
- package/package.json +1 -1
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__03ewxxu._.js +0 -9
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__03rmbz6._.js +0 -3
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__05z0pcw._.js +0 -3
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0acikq.._.js +0 -9
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0b5r~-1._.js +0 -3
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0jbc7tz._.js +0 -3
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0ow1kn1._.js +0 -9
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0t7i-hy._.js +0 -3
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0~xt99s._.js +0 -3
- package/app/apps/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0ck.78s.js +0 -21
- package/app/apps/web/.next/server/chunks/packages_09wmnv.._.js +0 -3
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0g-tomj._.js +0 -3
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0~.f_3z._.js +0 -12
- package/app/apps/web/.next/static/chunks/02xxpexzk3rf-.js +0 -1
- package/app/apps/web/.next/static/chunks/044mtrzh7d7va.js +0 -10
- package/app/apps/web/.next/static/chunks/05-k9oryi9wz1.js +0 -14
- package/app/apps/web/.next/static/chunks/05b0dn.r00hq1.js +0 -1
- package/app/apps/web/.next/static/chunks/0t2on1dhydyb2.css +0 -1
- package/app/apps/web/.next/static/chunks/0tliv91mhmrzn.js +0 -1
- /package/app/apps/web/.next/static/{5IC6kxw0JoPeCIPdnTpEp → bTww6lPxII4wde65VQDrF}/_buildManifest.js +0 -0
- /package/app/apps/web/.next/static/{5IC6kxw0JoPeCIPdnTpEp → bTww6lPxII4wde65VQDrF}/_clientMiddlewareManifest.js +0 -0
- /package/app/apps/web/.next/static/{5IC6kxw0JoPeCIPdnTpEp → bTww6lPxII4wde65VQDrF}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module.exports=[93695,(e,t,n)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,n)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},70406,(e,t,n)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},50227,(e,t,n)=>{t.exports=e.x("node:path",()=>require("node:path"))},2157,(e,t,n)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,n)=>{t.exports=e.x("node:os",()=>require("node:os"))},66680,(e,t,n)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},74533,(e,t,n)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},27174,e=>{"use strict";e.i(39587),e.s([])},30212,e=>{"use strict";var t=e.i(79357);function n(e){return(0,t.toLocalDay)(e.getTime())}function r(e=new Date){let t=new Date(e.getFullYear(),e.getMonth(),e.getDate()),n=t.getDay(),s=new Date(t);s.setDate(t.getDate()-(n+6)%7);let a=new Date(s);return a.setDate(s.getDate()+6),{start:s,end:a}}e.s(["aggregateConcurrency",0,function(e,t){let r,s=function(e,t){let n=[],r=new Date(e.getFullYear(),e.getMonth(),e.getDate()),s=new Date(t.getFullYear(),t.getMonth(),t.getDate());for(;r.getTime()<=s.getTime();)n.push(new Date(r)),r.setDate(r.getDate()+1);return n}(t.start,t.end),a=new Map;for(let e of s)a.set(n(e),{peak:0,has_cross_project:!1});for(let t of e){let e=n(new Date(t.startMs)),r=a.get(e);r&&(t.peak>r.peak&&(r.peak=t.peak),t.crossProject&&(r.has_cross_project=!0))}let o=s.map(e=>{let t=n(e),r=a.get(t);return{date:t,peak:r.peak,has_cross_project:r.has_cross_project}}),i=0,l=0,u=0;for(let e of o)e.peak>i&&(i=e.peak,r=e.date),e.peak>=3&&l++,e.has_cross_project&&u++;return{by_day:o,peak:i,peak_day:r,multi_agent_days:l,cross_project_days:u}},"calendarMonth",0,function(e=new Date){return{start:new Date(e.getFullYear(),e.getMonth(),1),end:new Date(e.getFullYear(),e.getMonth()+1,0)}},"calendarWeek",0,r,"priorCalendarMonth",0,function(e=new Date){return{start:new Date(e.getFullYear(),e.getMonth()-1,1),end:new Date(e.getFullYear(),e.getMonth(),0)}},"priorCalendarWeek",0,function(e=new Date){let t=r(e),n=new Date(t.start);n.setDate(t.start.getDate()-1);let s=new Date(n);return s.setDate(n.getDate()-6),{start:s,end:n}}])},86040,e=>{"use strict";e.i(27174);var t=e.i(36521);let n=/\[request interrupted|interrupted by user/i,r=/rate.?limit|overloaded_error|api error|Error sending message/i,s=/<command-name>(\/[^<\s]+)<\/command-name>(?:[\s\S]*?<command-args>([\s\S]*?)<\/command-args>)?/,a=/<task-notification>/;function o(e){for(let t of e)if(t?.type==="text")return t.text}function i(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 l(e){if(void 0===e||e<0)return"—";let t=Math.floor(e/1e3),n=Math.floor(t/3600),r=String(Math.floor(t%3600/60)).padStart(2,"0"),s=String(t%60).padStart(2,"0");return`${n}:${r}:${s}`}function u(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),r=t%60;if(n<60)return r?`${n}m ${r}s`:`${n}m`;let s=Math.floor(n/60),a=n%60;return a?`${s}h ${a}m`:`${s}h`}function d(e,t){if(!e)return"";let n=e.replace(/\s+/g," ").trim();return n.length>t?n.slice(0,t-1)+"…":n}e.s(["summarizeSessionForAI",0,function(e){let p,c=function(e){let i=new Map;for(let t of e){if(!t.messageId)continue;let e=i.get(t.messageId)??[];e.push(t),i.set(t.messageId,e)}let l=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 n=o(e.blocks)??"";if(0===e.blocks.length||!n.trim())return!1;if(s.test(n)||a.test(n))return!0;if((0,t.isFrameworkInjectedUserInput)(n))return!1}return!0}),u=[];for(let e=0;e<l.length;e++){let t=l[e];if("tool-call"===t.role){let t=e;for(;e+1<l.length&&"tool-call"===l[e+1].role;)e++;let n=l.slice(t,e+1),r=[],s=new Map;for(let e of n){let t=e.toolName??"tool";s.has(t)||r.push(t),s.set(t,(s.get(t)??0)+1)}let a=r.map(e=>({name:e,count:s.get(e)??1}));u.push({kind:"tool-group",toolNames:a,count:n.length,events:n,tOffsetMs:n[0].tOffsetMs,gapMs:n[0].gapMs});continue}if("user"===t.role){let e=o(t.blocks)??"",r=function(e){if(!a.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(),r="unknown";return"success"===n||"ok"===n||"done"===n||"completed"===n?r="success":"failed"===n||"error"===n||"fail"===n?r="failed":("running"===n||"in_progress"===n)&&(r="running"),{status:r,summary:t("summary")??"Background task notification",taskId:t("task-id"),toolUseId:t("tool-use-id"),outputFile:t("output-file")}}(e);if(r){u.push({kind:"task-notification",event:t,status:r.status,summary:r.summary,taskId:r.taskId,toolUseId:r.toolUseId,outputFile:r.outputFile,tOffsetMs:t.tOffsetMs,gapMs:t.gapMs});continue}if(n.test(e)){u.push({kind:"interrupt",event:t,tOffsetMs:t.tOffsetMs,gapMs:t.gapMs});continue}let i=e.match(s);if(i){let e=i[1],n=(i[2]??"").trim(),r=n?`${e} ${n}`:e;u.push({kind:"user",event:t,displayPreview:r,displayBlocks:[{type:"text",text:r}],tOffsetMs:t.tOffsetMs,gapMs:t.gapMs});continue}u.push({kind:"user",event:t,tOffsetMs:t.tOffsetMs,gapMs:t.gapMs});continue}if("agent"===t.role){let e=o(t.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}(t)){u.push({kind:"model",event:t,tOffsetMs:t.tOffsetMs,gapMs:t.gapMs}),r.test(e)&&e.length<500&&u.push({kind:"error",event:t,message:e,tOffsetMs:t.tOffsetMs,gapMs:0});continue}if(r.test(e)&&e.length<500){u.push({kind:"error",event:t,message:e,tOffsetMs:t.tOffsetMs,gapMs:t.gapMs});continue}let n=t.messageId?i.get(t.messageId)??[t]:[t];u.push({kind:"agent",event:t,groupedEvents:n,tOffsetMs:t.tOffsetMs,gapMs:t.gapMs});continue}}return u}(e.events),f=function(e){let t=[],n=[],r=null,s=()=>{let e,s;if(0===n.length)return;let a=0,o=0,i=0,l=new Map,u=new Set,d={input:0,output:0,cacheRead:0,cacheWrite:0};for(let t=0;t<n.length;t++){let r=n[t];if("agent"===r.kind){a++,void 0===e&&(e=t);let n=r.event.messageId,s=r.event.usage;n&&!u.has(n)&&s&&(u.add(n),d.input+=s.input,d.output+=s.output,d.cacheRead+=s.cacheRead,d.cacheWrite+=s.cacheWrite)}else if("tool-group"===r.kind)for(let e of(o+=r.count,r.toolNames))l.set(e.name,(l.get(e.name)??0)+e.count);else"error"===r.kind&&i++}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 p=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,f=Array.from(l.entries()).sort((e,t)=>t[1]-e[1]).map(([e,t])=>({name:e,count:t})),h=n[0],g=n[n.length-1],m=r?.tOffsetMs??h.tOffsetMs,v=g.tOffsetMs;t.push({kind:"turn",rows:n,firstPrimaryIndex:"tool-group"===h.kind?h.events[0].index:h.event.index,tOffsetMs:m,durationMs:void 0!==m&&void 0!==v&&v>=m?v-m:void 0,summary:{agentMessages:a,toolCalls:o,errors:i,firstAgentPreview:p,finalAgentPreview:c,firstAgentIndex:e,finalAgentIndex:s,toolNames:f,totalTokens:d}}),n=[]};for(let a of e)"user"===a.kind||"interrupt"===a.kind?(s(),t.push(a),r=a):n.push(a);return s(),t}(c),h=e.totalUsage.input+e.totalUsage.cacheRead+e.totalUsage.cacheWrite,g=e.totalUsage.cacheRead+e.totalUsage.cacheWrite,m=new Map;for(let e of c)if("tool-group"===e.kind)for(let t of e.toolNames)m.set(t.name,(m.get(t.name)??0)+t.count);let v=Array.from(m.entries()).sort((e,t)=>t[1]-e[1]).slice(0,8).map(([e,t])=>`${e}\xd7${t}`).join(", "),k=c.find(e=>"user"===e.kind&&!e.event.preview.startsWith("<command-name>")&&!e.event.preview.startsWith("Base directory for this skill:")),w=k?.kind==="user"?k.displayBlocks?.[0]?.type==="text"?k.displayBlocks[0].text:(p=k.event.blocks.find(e=>e?.type==="text"),p?.text??k.event.preview):"",x=c.filter(e=>"error"===e.kind),y=x.length>0?`${x.length} errors, first: "${d(x[0].message,160)}"`:"none",M=[],R=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 r=n.match(/--title\s+["']([^"']+)["']/),s=r?.[1]??n.replace(/^gh pr create /,"").slice(0,120),a=R>0&&void 0!==t.tOffsetMs?Math.round(t.tOffsetMs/R*100):0;M.push({offsetPct:a,titleOrCmd:s})}let $="";for(let e=f.length-1;e>=0;e--){let t=f[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);$=t?.text??e.event.preview;break}}}let E=[];for(let e of f){if(E.length>=40){E.push({offset:"...",line:`(+${f.length-E.length} more rows)`});break}if("user"===e.kind){let t=d(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>")||E.push({offset:l(e.tOffsetMs),line:`USER: ${t}`})}else if("turn"===e.kind){let t=e.summary,n=t.firstAgentPreview?d(t.firstAgentPreview,180):"",r=t.finalAgentPreview?d(t.finalAgentPreview,180):"",s=n&&r&&n===r,a=t.toolNames.slice(0,3).map(e=>e.count>1?`${e.name}\xd7${e.count}`:e.name).join(", "),o=`${t.agentMessages} msg, ${t.toolCalls} tools${t.errors>0?`, ${t.errors} err`:""}`,i=s||!r?n:`${n} → ${r}`;E.push({offset:l(e.tOffsetMs),line:`TURN (${o}${a?`, ${a}`:""}): ${i}`})}else"interrupt"===e.kind&&E.push({offset:l(e.tOffsetMs),line:"INTERRUPT"})}let b=[];for(let t of(b.push(`# Session ${e.id}`),b.push(`project: ${e.projectName}`),e.model&&b.push(`model: ${e.model}`),b.push(`duration: ${u(e.durationMs)} | active: ${u(e.airTimeMs??e.durationMs)}`),b.push(`events: ${e.eventCount} | tokens: ${i(h)} in / ${i(e.totalUsage.output)} out${g>0?` (+${i(g)} cached)`:""}`),b.push(`tool calls: ${e.toolCallCount??0}${v?` (${v})`:""}`),b.push(`turns: ${e.turnCount??0}`),e.firstTimestamp&&b.push(`started: ${e.firstTimestamp}`),b.push(""),w&&(b.push("## First user message"),b.push(d(w,1200)),b.push("")),b.push("## Timeline"),E))b.push(`[${t.offset}] ${t.line}`);if(b.push(""),M.length>0){for(let e of(b.push("## PRs shipped"),M))b.push(`- at ${e.offsetPct}% into session: ${d(e.titleOrCmd,160)}`);b.push("")}return b.push("## Errors encountered"),b.push(y),b.push(""),$&&(b.push("## Final agent message"),b.push(d($,800))),b.join("\n")}],86040)},62952,e=>{"use strict";var t=e.i(47909),n=e.i(74017),r=e.i(96250),s=e.i(59756),a=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),f=e.i(70101),h=e.i(74838),g=e.i(10372),m=e.i(93695);e.i(52474);var v=e.i(220);e.i(43427);var k=e.i(20629),w=e.i(86040),x=e.i(74533);e.i(82111);var y=e.i(95549);let M=`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
|
+
|
|
3
|
+
You will receive a structured summary of the session, then the user's question about it. Respond directly and concisely in markdown.
|
|
4
|
+
|
|
5
|
+
Some common tasks users ask about:
|
|
6
|
+
- **Identify errors**: Find all errors, exceptions, rate limits, or failed operations
|
|
7
|
+
- **Analyze performance**: Review tool execution times, token efficiency, caching ratio
|
|
8
|
+
- **Trace conversation flow**: Follow the logic and key decision points
|
|
9
|
+
- **Suggest improvements**: Recommend better prompting, tool usage, or workflow patterns
|
|
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 R(e){let t;try{t=await e.json()}catch{return Response.json({error:"invalid JSON"},{status:400})}let{sessionId:n,question:r,model:s="haiku"}=t;if(!n||!r)return Response.json({error:"sessionId and question are required"},{status:400});let a=await (0,k.getSession)(n);if(!a)return Response.json({error:"session not found"},{status:404});let o=(0,w.summarizeSessionForAI)(a),i=`Here is the session transcript summary:
|
|
12
|
+
|
|
13
|
+
${o}
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
User's question: ${r}`,l=new TextEncoder,u="1"!==process.env.FLEETLENS_FORCE_PRINT_MODE&&(0,y.tmuxRunnerAvailable)().ok,d=new ReadableStream({start(t){let n=!1;function r(e){if(!n)try{t.enqueue(l.encode(`data: ${JSON.stringify(e)}
|
|
18
|
+
|
|
19
|
+
`))}catch{n=!0}}function a(){if(!n){try{t.close()}catch{}n=!0}}(async()=>{let t,o;if(u)try{let t=await (0,y.runClaudeUnderTmux)({systemPrompt:M,model:s,userPrompt:i,onDelta:e=>r({type:"delta",text:e}),signal:e.signal});r({type:"done",totalTokens:t.input_tokens+t.output_tokens}),a();return}catch(e){e instanceof y.TmuxUnavailableError||e instanceof y.TmuxRunError||console.warn("[ask] tmux runner failed, falling back to -p:",e)}(t=(0,x.spawn)("claude",["-p","--output-format","stream-json","--verbose","--model",s,"--tools","","--disable-slash-commands","--no-session-persistence","--setting-sources","","--append-system-prompt",M],{stdio:["pipe","pipe","pipe"],env:{...process.env}})).stdin.write(i),t.stdin.end(),o="",t.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&&r({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;r({type:"done",totalTokens:n??void 0})}}catch{}}}),t.stderr.on("data",e=>{o+=e.toString("utf8")}),t.on("close",e=>{0===e||n||r({type:"error",message:o.trim().slice(0,300)||`claude exited with code ${e}`}),a()}),t.on("error",e=>{n||(r({type:"error",message:`Failed to spawn claude: ${e.message}`}),a())}),e.signal.addEventListener("abort",()=>{try{t.kill("SIGTERM")}catch{}a()})})()}});return new Response(d,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}e.s(["POST",0,R,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],10796);var $=e.i(10796);let E=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:$,...{}}),{workAsyncStorage:b,workUnitAsyncStorage:O,serverHooks:C}=E;async function T(e,t,r){r.requestMeta&&(0,s.setRequestMeta)(e,r.requestMeta),E.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let k="/api/ask/route";k=k.replace(/\/index$/,"")||"/";let w=await E.prepare(e,t,{srcPage:k,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:x,params:y,nextConfig:M,parsedUrl:R,isDraftMode:$,prerenderManifest:b,routerServerContext:O,isOnDemandRevalidate:C,revalidateOnlyGenerated:T,resolvedPathname:D,clientReferenceManifest:S,serverActionsManifest:A}=w,_=(0,i.normalizeAppPath)(k),I=!!(b.dynamicRoutes[_]||b.routes[D]),N=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,R,!1):t.end("This page could not be found"),null);if(I&&!$){let e=!!b.routes[D],t=b.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(M.adapterPath)return await N();throw new m.NoFallbackError}}let P=null;!I||E.isDev||$||(P="/index"===(P=D)?"/":P);let j=!0===E.isDev||!I,q=I&&!j;A&&S&&(0,o.setManifestsSingleton)({page:k,clientReferenceManifest:S,serverActionsManifest:A});let U=e.method||"GET",F=(0,a.getTracer)(),H=F.getActiveScopeSpan(),B=!!(null==O?void 0:O.isWrappedByNextServer),W=!!(0,s.getRequestMeta)(e,"minimalMode"),L=(0,s.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,M,b,W);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let Y={params:y,previewProps:b.preview,renderOpts:{experimental:{authInterrupts:!!M.experimental.authInterrupts},cacheComponents:!!M.cacheComponents,supportsDynamicResponse:j,incrementalCache:L,cacheLifeProfiles:M.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,s)=>E.onRequestError(e,t,r,s,O)},sharedContext:{buildId:x}},K=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let s,o=async e=>E.handle(G,Y).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=F.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 r=n.get("next.route");if(r){let t=`${U} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",r),s.updateName(t))}else e.updateName(`${U} ${k}`)}),i=async s=>{var a,i;let l=async({previousCacheEntry:n})=>{try{if(!W&&C&&T&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(s);e.fetchMetrics=Y.renderOpts.fetchMetrics;let i=Y.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let l=Y.renderOpts.collectedTags;if(!I)return await (0,c.sendResponse)(K,z,a,Y.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==Y.renderOpts.collectedRevalidate&&!(Y.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,r=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:Y.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:r}}}}catch(t){throw(null==n?void 0:n.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:C})},!1,O),t}},u=await E.handleResponse({req:e,nextConfig:M,cacheKey:P,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:W});if(!I)return null;if((null==u||null==(a=u.value)?void 0:a.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"),$&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return W&&I||d.delete(g.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,c.sendResponse)(K,z,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};B&&H?await i(H):(s=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${U} ${k}`,kind:a.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},i),void 0,!B))}catch(t){if(t instanceof m.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:C})},!1,O),I)throw t;return await (0,c.sendResponse)(K,z,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:O})},"routeModule",0,E,"serverHooks",0,C,"workAsyncStorage",0,b,"workUnitAsyncStorage",0,O],62952)}];
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0_5tf-2._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[93695,(e,t,a)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,a)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,a)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,a)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},70406,(e,t,a)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},24725,(e,t,a)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},50227,(e,t,a)=>{t.exports=e.x("node:path",()=>require("node:path"))},2157,(e,t,a)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,a)=>{t.exports=e.x("node:os",()=>require("node:os"))},66680,(e,t,a)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},74533,(e,t,a)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},27174,e=>{"use strict";e.i(39587),e.s([])},30212,e=>{"use strict";var t=e.i(79357);function a(e){return(0,t.toLocalDay)(e.getTime())}function r(e=new Date){let t=new Date(e.getFullYear(),e.getMonth(),e.getDate()),a=t.getDay(),n=new Date(t);n.setDate(t.getDate()-(a+6)%7);let s=new Date(n);return s.setDate(n.getDate()+6),{start:n,end:s}}e.s(["aggregateConcurrency",0,function(e,t){let r,n=function(e,t){let a=[],r=new Date(e.getFullYear(),e.getMonth(),e.getDate()),n=new Date(t.getFullYear(),t.getMonth(),t.getDate());for(;r.getTime()<=n.getTime();)a.push(new Date(r)),r.setDate(r.getDate()+1);return a}(t.start,t.end),s=new Map;for(let e of n)s.set(a(e),{peak:0,has_cross_project:!1});for(let t of e){let e=a(new Date(t.startMs)),r=s.get(e);r&&(t.peak>r.peak&&(r.peak=t.peak),t.crossProject&&(r.has_cross_project=!0))}let o=n.map(e=>{let t=a(e),r=s.get(t);return{date:t,peak:r.peak,has_cross_project:r.has_cross_project}}),i=0,l=0,u=0;for(let e of o)e.peak>i&&(i=e.peak,r=e.date),e.peak>=3&&l++,e.has_cross_project&&u++;return{by_day:o,peak:i,peak_day:r,multi_agent_days:l,cross_project_days:u}},"calendarMonth",0,function(e=new Date){return{start:new Date(e.getFullYear(),e.getMonth(),1),end:new Date(e.getFullYear(),e.getMonth()+1,0)}},"calendarWeek",0,r,"priorCalendarMonth",0,function(e=new Date){return{start:new Date(e.getFullYear(),e.getMonth()-1,1),end:new Date(e.getFullYear(),e.getMonth(),0)}},"priorCalendarWeek",0,function(e=new Date){let t=r(e),a=new Date(t.start);a.setDate(t.start.getDate()-1);let n=new Date(a);return n.setDate(a.getDate()-6),{start:n,end:a}}])},45571,e=>{"use strict";var t=e.i(47909),a=e.i(74017),r=e.i(96250),n=e.i(59756),s=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),g=e.i(74838),f=e.i(10372),x=e.i(93695);e.i(52474);var v=e.i(220),w=e.i(89171);e.i(82111);var R=e.i(56614),m=e.i(78325),y=e.i(83740);let k=y.z.object({ai_features:y.z.object({enabled:y.z.boolean().optional(),autoBackfillLastWeek:y.z.boolean().optional(),autoBackfillYesterday:y.z.boolean().optional()}).refine(e=>Object.keys(e).length>0,{message:"ai_features must include at least one field"})});async function D(){return w.NextResponse.json({settings:(0,R.readSettings)(),month_to_date_spend_usd:(0,m.monthToDateSpend)()})}async function _(e){let t;try{t=await e.json()}catch{return w.NextResponse.json({error:"invalid JSON body"},{status:400})}let a=k.safeParse(t);if(!a.success)return w.NextResponse.json({error:"schema validation failed",issues:a.error.issues},{status:400});let r=(0,R.readSettings)(),n=a.data.ai_features;return(0,R.writeSettings)({ai_features:{...r.ai_features,...void 0!==n.enabled?{enabled:n.enabled}:{},...void 0!==n.autoBackfillLastWeek?{autoBackfillLastWeek:n.autoBackfillLastWeek}:{},...void 0!==n.autoBackfillYesterday?{autoBackfillYesterday:n.autoBackfillYesterday}:{}}}),w.NextResponse.json({ok:!0})}e.s(["GET",0,D,"PUT",0,_,"runtime",0,"nodejs"],63405);var E=e.i(63405);let b=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/settings/route",pathname:"/api/settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/settings/route.ts",nextConfigOutput:"standalone",userland:E,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:j,serverHooks:A}=b;async function T(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),b.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/settings/route";w=w.replace(/\/index$/,"")||"/";let R=await b.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:m,params:y,nextConfig:k,parsedUrl:D,isDraftMode:_,prerenderManifest:E,routerServerContext:C,isOnDemandRevalidate:j,revalidateOnlyGenerated:A,resolvedPathname:T,clientReferenceManifest:N,serverActionsManifest:q}=R,P=(0,i.normalizeAppPath)(w),S=!!(E.dynamicRoutes[P]||E.routes[T]),M=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,D,!1):t.end("This page could not be found"),null);if(S&&!_){let e=!!E.routes[T],t=E.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(k.adapterPath)return await M();throw new x.NoFallbackError}}let O=null;!S||b.isDev||_||(O="/index"===(O=T)?"/":O);let H=!0===b.isDev||!S,U=S&&!H;q&&N&&(0,o.setManifestsSingleton)({page:w,clientReferenceManifest:N,serverActionsManifest:q});let I=e.method||"GET",F=(0,s.getTracer)(),B=F.getActiveScopeSpan(),Y=!!(null==C?void 0:C.isWrappedByNextServer),L=!!(0,n.getRequestMeta)(e,"minimalMode"),W=(0,n.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,k,E,L);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let $={params:y,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!k.experimental.authInterrupts},cacheComponents:!!k.cacheComponents,supportsDynamicResponse:H,incrementalCache:W,cacheLifeProfiles:k.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>b.onRequestError(e,t,r,n,C)},sharedContext:{buildId:m}},K=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let n,o=async e=>b.handle(G,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=F.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${I} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",r),n.updateName(t))}else e.updateName(`${I} ${w}`)}),i=async n=>{var s,i;let l=async({previousCacheEntry:a})=>{try{if(!L&&j&&A&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(n);e.fetchMetrics=$.renderOpts.fetchMetrics;let i=$.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let l=$.renderOpts.collectedTags;if(!S)return await (0,c.sendResponse)(K,z,s,$.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,r=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:j})},!1,C),t}},u=await b.handleResponse({req:e,nextConfig:k,cacheKey:O,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:A,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:L});if(!S)return null;if((null==u||null==(s=u.value)?void 0:s.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});L||t.setHeader("x-nextjs-cache",j?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&S||d.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,g.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(K,z,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};Y&&B?await i(B):(n=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${I} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":I,"http.target":e.url}},i),void 0,!Y))}catch(t){if(t instanceof x.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:j})},!1,C),S)throw t;return await (0,c.sendResponse)(K,z,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:j})},"routeModule",0,b,"serverHooks",0,A,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,j],45571)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0gvw6dk._.js.map
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
module.exports=[93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},27174,e=>{"use strict";e.i(39587),e.s([])},13207,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),o=e.i(61916),s=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),x=e.i(74838),R=e.i(10372),v=e.i(93695);e.i(52474);var g=e.i(220),f=e.i(75550);async function m(){let e=new TextEncoder;return new Response(new ReadableStream({start(t){let r=!1,n=n=>{if(!r)try{t.enqueue(e.encode(`data: ${JSON.stringify(n)}
|
|
2
|
+
|
|
3
|
+
`))}catch{r=!0}};(async()=>{try{let e=await (0,f.ensureIndex)(e=>n({type:"progress",...e}),{force:!0});n({type:"done",sessions:e.length})}catch(e){n({type:"error",message:e.message})}if(!r){try{t.close()}catch{}r=!0}})()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}e.s(["GET",0,function(){return Response.json((0,f.indexStats)())},"POST",0,m,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],66578);var w=e.i(66578);let y=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/agent/index/route",pathname:"/api/agent/index",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/agent/index/route.ts",nextConfigOutput:"standalone",userland:w,...{}}),{workAsyncStorage:E,workUnitAsyncStorage:C,serverHooks:A}=y;async function b(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),y.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/agent/index/route";f=f.replace(/\/index$/,"")||"/";let m=await y.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!m)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:C,parsedUrl:A,isDraftMode:b,prerenderManifest:T,routerServerContext:q,isOnDemandRevalidate:N,revalidateOnlyGenerated:S,resolvedPathname:P,clientReferenceManifest:O,serverActionsManifest:_}=m,k=(0,i.normalizeAppPath)(f),j=!!(T.dynamicRoutes[k]||T.routes[P]),H=async()=>((null==q?void 0:q.render404)?await q.render404(e,t,A,!1):t.end("This page could not be found"),null);if(j&&!b){let e=!!T.routes[P],t=T.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await H();throw new v.NoFallbackError}}let I=null;!j||y.isDev||b||(I="/index"===(I=P)?"/":I);let U=!0===y.isDev||!j,M=j&&!U;_&&O&&(0,s.setManifestsSingleton)({page:f,clientReferenceManifest:O,serverActionsManifest:_});let D=e.method||"GET",$=(0,o.getTracer)(),F=$.getActiveScopeSpan(),K=!!(null==q?void 0:q.isWrappedByNextServer),B=!!(0,a.getRequestMeta)(e,"minimalMode"),L=(0,a.getRequestMeta)(e,"incrementalCache")||await y.getIncrementalCache(e,C,T,B);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let G={params:E,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:U,incrementalCache:L,cacheLifeProfiles:C.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>y.onRequestError(e,t,n,a,q)},sharedContext:{buildId:w}},X=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),W=d.NextRequestAdapter.fromNodeNextRequest(X,(0,d.signalFromNodeResponse)(t));try{let a,s=async e=>y.handle(W,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${D} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),a&&a!==e&&(a.setAttribute("http.route",n),a.updateName(t))}else e.updateName(`${D} ${f}`)}),i=async a=>{var o,i;let l=async({previousCacheEntry:r})=>{try{if(!B&&N&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(a);e.fetchMetrics=G.renderOpts.fetchMetrics;let i=G.renderOpts.pendingWaitUntil;i&&n.waitUntil&&(n.waitUntil(i),i=void 0);let l=G.renderOpts.collectedTags;if(!j)return await (0,c.sendResponse)(X,V,o,G.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[R.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,n=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await y.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:N})},!1,q),t}},d=await y.handleResponse({req:e,nextConfig:C,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:S,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:B});if(!j)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",N?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return B&&j||u.delete(R.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,x.getCacheControlHeader)(d.cacheControl)),await (0,c.sendResponse)(X,V,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};K&&F?await i(F):(a=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${D} ${f}`,kind:o.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},i),void 0,!K))}catch(t){if(t instanceof v.NoFallbackError||await y.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:N})},!1,q),j)throw t;return await (0,c.sendResponse)(X,V,new Response(null,{status:500})),null}}e.s(["handler",0,b,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:C})},"routeModule",0,y,"serverHooks",0,A,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,C],13207)}];
|
|
4
|
+
|
|
5
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0mx_9mb._.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
module.exports=[93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},27174,e=>{"use strict";e.i(39587),e.s([])},30212,e=>{"use strict";var t=e.i(79357);function r(e){return(0,t.toLocalDay)(e.getTime())}function a(e=new Date){let t=new Date(e.getFullYear(),e.getMonth(),e.getDate()),r=t.getDay(),n=new Date(t);n.setDate(t.getDate()-(r+6)%7);let s=new Date(n);return s.setDate(n.getDate()+6),{start:n,end:s}}e.s(["aggregateConcurrency",0,function(e,t){let a,n=function(e,t){let r=[],a=new Date(e.getFullYear(),e.getMonth(),e.getDate()),n=new Date(t.getFullYear(),t.getMonth(),t.getDate());for(;a.getTime()<=n.getTime();)r.push(new Date(a)),a.setDate(a.getDate()+1);return r}(t.start,t.end),s=new Map;for(let e of n)s.set(r(e),{peak:0,has_cross_project:!1});for(let t of e){let e=r(new Date(t.startMs)),a=s.get(e);a&&(t.peak>a.peak&&(a.peak=t.peak),t.crossProject&&(a.has_cross_project=!0))}let o=n.map(e=>{let t=r(e),a=s.get(t);return{date:t,peak:a.peak,has_cross_project:a.has_cross_project}}),i=0,l=0,u=0;for(let e of o)e.peak>i&&(i=e.peak,a=e.date),e.peak>=3&&l++,e.has_cross_project&&u++;return{by_day:o,peak:i,peak_day:a,multi_agent_days:l,cross_project_days:u}},"calendarMonth",0,function(e=new Date){return{start:new Date(e.getFullYear(),e.getMonth(),1),end:new Date(e.getFullYear(),e.getMonth()+1,0)}},"calendarWeek",0,a,"priorCalendarMonth",0,function(e=new Date){return{start:new Date(e.getFullYear(),e.getMonth()-1,1),end:new Date(e.getFullYear(),e.getMonth(),0)}},"priorCalendarWeek",0,function(e=new Date){let t=a(e),r=new Date(t.start);r.setDate(t.start.getDate()-1);let n=new Date(r);return n.setDate(r.getDate()-6),{start:n,end:r}}])},75169,e=>{"use strict";function t(e){let t=new Date(e),r=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0");return`${r}-${a}-${n}`}function r(e=Date.now()){return t(e)}e.i(5737);let a=/^\d{4}-\d{2}-\d{2}$/;function n(e){return a.test(e)}let s=/^\d{4}-\d{2}$/;e.s(["asMonday",0,function(e){return n(e)&&1===new Date(`${e}T00:00:00`).getDay()?e:null},"currentWeekMonday",0,function(e=Date.now()){var a;let n,s;return a=r(e),s=(n=new Date(`${a}T00:00:00`)).getDay(),n.setDate(n.getDate()+(0===s?-6:1-s)),t(n.getTime())},"currentYearMonth",0,function(e=Date.now()){return r(e).slice(0,7)},"isValidDate",0,n,"isValidYearMonth",0,function(e){return s.test(e)},"todayLocal",0,r])},55459,e=>{"use strict";var t=e.i(2157),r=e.i(43427);function a(){return process.env.CCLENS_JOBS_FILE??(0,r.cclensPath)("jobs.jsonl")}function n(){let e=(0,r.cclensHome)();(0,t.existsSync)(e)||(0,t.mkdirSync)(e,{recursive:!0})}let s=null;function o(){n();let e=a();if(!(0,t.existsSync)(e))return new Map;let r=(0,t.statSync)(e).mtimeMs;if(s&&s.mtimeMs===r)return new Map(s.map);let o=new Map;for(let r of(0,t.readFileSync)(e,"utf8").split("\n"))if(r.trim())try{let e=JSON.parse(r);o.set(e.id,e)}catch{}return s={mtimeMs:r,map:new Map(o)},o}function i(e){n(),(0,t.appendFileSync)(a(),JSON.stringify(e)+"\n","utf8"),s=null}function l(e,t){let r=o().get(e);r&&i({...r,...t})}e.s(["completeJob",0,function(e,t=null){l(e,{status:"done",completedAt:new Date().toISOString(),resultUrl:t,progress:null})},"failJob",0,function(e,t){l(e,{status:"error",completedAt:new Date().toISOString(),error:t,progress:null})},"listRecentJobs",0,function(e=30){let t=o(),r=Date.now();for(let[e,a]of t)("running"===a.status||"queued"===a.status)&&r-Date.parse(a.startedAt)>18e5&&t.set(e,{...a,status:"error",error:"interrupted (server restart)"});let a=Array.from(t.values());return a.sort((e,t)=>{let r="queued"===e.status||"running"===e.status,a="queued"===t.status||"running"===t.status;if(r!==a)return r?-1:1;let n=r?Date.parse(e.startedAt):Date.parse(e.completedAt??e.startedAt);return(a?Date.parse(t.startedAt):Date.parse(t.completedAt??t.startedAt))-n}),a.slice(0,e)},"registerJob",0,function(e){let t=e.id??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`;return i({id:t,kind:e.kind,label:e.label,target:e.target,status:"queued",startedAt:new Date().toISOString(),completedAt:null,progress:null,resultUrl:null,error:null,caller:e.caller}),t},"updateJob",0,l])},24786,e=>{"use strict";class t{map=new Map;async run(e,t){let r=this.map.get(e);if(r)return r;let a=t();this.map.set(e,a);try{return await a}finally{this.map.delete(e)}}inflight(e){return this.map.has(e)}}var r=e.i(55459);let a=new t;function n(e,t){return new Response(JSON.stringify(e),{status:t,headers:{"content-type":"application/json"}})}e.s(["handleDigestGet",0,function(e){if(null===e.key)return e.invalidResponse;if(e.isFuture)return e.futureResponse;if(e.isCurrent){let t=e.currentFallsBackToPersisted?e.readCurrentCache()??e.readPersisted():e.readCurrentCache();return t?n(t,200):n(e.pendingCurrentPayload,200)}let t=e.readPersisted();return t?n(t,200):n({pending:!0},200)},"handleDigestPost",0,function(e){if(null===e.key)return e.invalidResponse;if(e.isFuture)return e.futureResponse;let t=`${e.coalesceScope}|${e.key}|${+!!e.force}`,n=new TextEncoder;return new Response(new ReadableStream({async start(s){let o=!1;function i(e){if(!o)try{s.enqueue(n.encode(`event: ${e.type}
|
|
2
|
+
data: ${JSON.stringify(e)}
|
|
3
|
+
|
|
4
|
+
`))}catch{o=!0}}let l=a.inflight(t),u=null;try{if(await a.run(t,async()=>{if(!l){for await(let a of(u=(0,r.registerJob)({kind:e.jobKind,label:e.jobLabel,target:e.key,caller:"user"}),(0,r.updateJob)(u,{status:"running"}),e.runPipeline())){var t;i(a),u&&(t=u,"status"===a.type?(0,r.updateJob)(t,{progress:{phase:a.phase,text:a.text}}):"entry"===a.type?(0,r.updateJob)(t,{progress:{phase:"enrich",index:a.index,total:a.total}}):"progress"===a.type&&(0,r.updateJob)(t,{progress:{phase:a.phase,bytes:a.bytes}}))}u&&(0,r.completeJob)(u,e.resultUrl)}}),l){let t=e.readDigestForCoalescedRequest();t&&i({type:"digest",digest:t}),i({type:"status",phase:"persist",text:"coalesced with in-flight request"})}}catch(e){i({type:"error",message:e.message}),u&&(0,r.failJob)(u,e.message)}finally{try{s.enqueue(n.encode(`event: done
|
|
5
|
+
data: {}
|
|
6
|
+
|
|
7
|
+
`))}catch{}if(!o){try{s.close()}catch{}o=!0}}}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})},"jsonResponse",0,n,"jsonResponseBare",0,function(e,t){return new Response(JSON.stringify(e),{status:t})}],24786)},57105,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),o=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),g=e.i(70101),f=e.i(74838),h=e.i(10372),y=e.i(93695);e.i(52474);var w=e.i(220);e.i(82111);var m=e.i(20441),D=e.i(56614),R=e.i(76956);e.i(5737);var x=e.i(75169),v=e.i(24786);async function C(e,t){let{date:r}=await t.params,a=(0,x.isValidDate)(r),n=a&&r>(0,x.todayLocal)();return(0,v.handleDigestGet)({key:a?r:null,invalidResponse:(0,v.jsonResponse)({error:"invalid date"},400),isFuture:n,futureResponse:(0,v.jsonResponse)({error:"future date"},400),isCurrent:a&&r===(0,x.todayLocal)(),readCurrentCache:()=>(0,R.getTodayDigestFromCache)(r,Date.now()),readPersisted:()=>(0,R.readDayDigest)(r),pendingCurrentPayload:{pending:!0,today:!0},currentFallsBackToPersisted:!1})}async function b(e,t){let{date:r}=await t.params,a=(0,x.isValidDate)(r),n=a&&r>(0,x.todayLocal)(),s="1"===new URL(e.url).searchParams.get("force"),o=(0,D.readSettings)();return(0,v.handleDigestPost)({key:a?r:null,invalidResponse:(0,v.jsonResponseBare)({error:"invalid date"},400),isFuture:n,futureResponse:(0,v.jsonResponseBare)({error:"future date"},400),coalesceScope:"day",force:s,jobKind:"digest.day",jobLabel:`Day digest \xb7 ${r}`,resultUrl:`/day/${r}`,runPipeline:()=>(0,m.runDayDigestPipeline)(r,{settings:o.ai_features,force:s,todayLocalDay:(0,x.todayLocal)()}),readDigestForCoalescedRequest:()=>(0,R.readDayDigest)(r)??(0,R.getTodayDigestFromCache)(r,Date.now())})}e.s(["GET",0,C,"POST",0,b,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],14127);var S=e.i(14127);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/digest/day/[date]/route",pathname:"/api/digest/day/[date]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/digest/day/[date]/route.ts",nextConfigOutput:"standalone",userland:S,...{}}),{workAsyncStorage:E,workUnitAsyncStorage:A,serverHooks:M}=k;async function P(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),k.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/digest/day/[date]/route";m=m.replace(/\/index$/,"")||"/";let D=await k.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!D)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:R,params:x,nextConfig:v,parsedUrl:C,isDraftMode:b,prerenderManifest:S,routerServerContext:E,isOnDemandRevalidate:A,revalidateOnlyGenerated:M,resolvedPathname:P,clientReferenceManifest:T,serverActionsManifest:q}=D,_=(0,i.normalizeAppPath)(m),j=!!(S.dynamicRoutes[_]||S.routes[P]),N=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,C,!1):t.end("This page could not be found"),null);if(j&&!b){let e=!!S.routes[P],t=S.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(v.adapterPath)return await N();throw new y.NoFallbackError}}let O=null;!j||k.isDev||b||(O="/index"===(O=P)?"/":O);let F=!0===k.isDev||!j,$=j&&!F;q&&T&&(0,o.setManifestsSingleton)({page:m,clientReferenceManifest:T,serverActionsManifest:q});let I=e.method||"GET",U=(0,s.getTracer)(),H=U.getActiveScopeSpan(),J=!!(null==E?void 0:E.isWrappedByNextServer),L=!!(0,n.getRequestMeta)(e,"minimalMode"),B=(0,n.getRequestMeta)(e,"incrementalCache")||await k.getIncrementalCache(e,v,S,L);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let K={params:x,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!v.experimental.authInterrupts},cacheComponents:!!v.cacheComponents,supportsDynamicResponse:F,incrementalCache:B,cacheLifeProfiles:v.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>k.onRequestError(e,t,a,n,E)},sharedContext:{buildId:R}},Y=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(Y,(0,u.signalFromNodeResponse)(t));try{let n,o=async e=>k.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=U.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${I} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${I} ${m}`)}),i=async n=>{var s,i;let l=async({previousCacheEntry:r})=>{try{if(!L&&A&&M&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let i=K.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let l=K.renderOpts.collectedTags;if(!j)return await (0,p.sendResponse)(Y,V,s,K.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[h.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:A})},!1,E),t}},u=await k.handleResponse({req:e,nextConfig:v,cacheKey:O,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:M,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!j)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==w.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",A?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&j||d.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(Y,V,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};J&&H?await i(H):(n=U.getActiveScopeSpan(),await U.withPropagatedContext(e.headers,()=>U.trace(d.BaseServerSpan.handleRequest,{spanName:`${I} ${m}`,kind:s.SpanKind.SERVER,attributes:{"http.method":I,"http.target":e.url}},i),void 0,!J))}catch(t){if(t instanceof y.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:A})},!1,E),j)throw t;return await (0,p.sendResponse)(Y,V,new Response(null,{status:500})),null}}e.s(["handler",0,P,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:A})},"routeModule",0,k,"serverHooks",0,M,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,A],57105)}];
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0pirsh0._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[93695,(e,t,s)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,s)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},70406,(e,t,s)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},50227,(e,t,s)=>{t.exports=e.x("node:path",()=>require("node:path"))},2157,(e,t,s)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,s)=>{t.exports=e.x("node:os",()=>require("node:os"))},66680,(e,t,s)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},27174,e=>{"use strict";e.i(39587),e.s([])},86040,e=>{"use strict";e.i(27174);var t=e.i(36521);let s=/\[request interrupted|interrupted by user/i,r=/rate.?limit|overloaded_error|api error|Error sending message/i,n=/<command-name>(\/[^<\s]+)<\/command-name>(?:[\s\S]*?<command-args>([\s\S]*?)<\/command-args>)?/,o=/<task-notification>/;function i(e){for(let t of e)if(t?.type==="text")return t.text}function a(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 u(e){if(void 0===e||e<0)return"—";let t=Math.floor(e/1e3),s=Math.floor(t/3600),r=String(Math.floor(t%3600/60)).padStart(2,"0"),n=String(t%60).padStart(2,"0");return`${s}:${r}:${n}`}function l(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 s=Math.floor(t/60),r=t%60;if(s<60)return r?`${s}m ${r}s`:`${s}m`;let n=Math.floor(s/60),o=s%60;return o?`${n}h ${o}m`:`${n}h`}function f(e,t){if(!e)return"";let s=e.replace(/\s+/g," ").trim();return s.length>t?s.slice(0,t-1)+"…":s}e.s(["summarizeSessionForAI",0,function(e){let p,d=function(e){let a=new Map;for(let t of e){if(!t.messageId)continue;let e=a.get(t.messageId)??[];e.push(t),a.set(t.messageId,e)}let u=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 s=i(e.blocks)??"";if(0===e.blocks.length||!s.trim())return!1;if(n.test(s)||o.test(s))return!0;if((0,t.isFrameworkInjectedUserInput)(s))return!1}return!0}),l=[];for(let e=0;e<u.length;e++){let t=u[e];if("tool-call"===t.role){let t=e;for(;e+1<u.length&&"tool-call"===u[e+1].role;)e++;let s=u.slice(t,e+1),r=[],n=new Map;for(let e of s){let t=e.toolName??"tool";n.has(t)||r.push(t),n.set(t,(n.get(t)??0)+1)}let o=r.map(e=>({name:e,count:n.get(e)??1}));l.push({kind:"tool-group",toolNames:o,count:s.length,events:s,tOffsetMs:s[0].tOffsetMs,gapMs:s[0].gapMs});continue}if("user"===t.role){let e=i(t.blocks)??"",r=function(e){if(!o.test(e))return null;let t=t=>{let s=e.match(RegExp(`<${t}>([\\s\\S]*?)<\\/${t}>`));return s?s[1].trim():void 0},s=(t("status")??"").toLowerCase(),r="unknown";return"success"===s||"ok"===s||"done"===s||"completed"===s?r="success":"failed"===s||"error"===s||"fail"===s?r="failed":("running"===s||"in_progress"===s)&&(r="running"),{status:r,summary:t("summary")??"Background task notification",taskId:t("task-id"),toolUseId:t("tool-use-id"),outputFile:t("output-file")}}(e);if(r){l.push({kind:"task-notification",event:t,status:r.status,summary:r.summary,taskId:r.taskId,toolUseId:r.toolUseId,outputFile:r.outputFile,tOffsetMs:t.tOffsetMs,gapMs:t.gapMs});continue}if(s.test(e)){l.push({kind:"interrupt",event:t,tOffsetMs:t.tOffsetMs,gapMs:t.gapMs});continue}let a=e.match(n);if(a){let e=a[1],s=(a[2]??"").trim(),r=s?`${e} ${s}`:e;l.push({kind:"user",event:t,displayPreview:r,displayBlocks:[{type:"text",text:r}],tOffsetMs:t.tOffsetMs,gapMs:t.gapMs});continue}l.push({kind:"user",event:t,tOffsetMs:t.tOffsetMs,gapMs:t.gapMs});continue}if("agent"===t.role){let e=i(t.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}(t)){l.push({kind:"model",event:t,tOffsetMs:t.tOffsetMs,gapMs:t.gapMs}),r.test(e)&&e.length<500&&l.push({kind:"error",event:t,message:e,tOffsetMs:t.tOffsetMs,gapMs:0});continue}if(r.test(e)&&e.length<500){l.push({kind:"error",event:t,message:e,tOffsetMs:t.tOffsetMs,gapMs:t.gapMs});continue}let s=t.messageId?a.get(t.messageId)??[t]:[t];l.push({kind:"agent",event:t,groupedEvents:s,tOffsetMs:t.tOffsetMs,gapMs:t.gapMs});continue}}return l}(e.events),c=function(e){let t=[],s=[],r=null,n=()=>{let e,n;if(0===s.length)return;let o=0,i=0,a=0,u=new Map,l=new Set,f={input:0,output:0,cacheRead:0,cacheWrite:0};for(let t=0;t<s.length;t++){let r=s[t];if("agent"===r.kind){o++,void 0===e&&(e=t);let s=r.event.messageId,n=r.event.usage;s&&!l.has(s)&&n&&(l.add(s),f.input+=n.input,f.output+=n.output,f.cacheRead+=n.cacheRead,f.cacheWrite+=n.cacheWrite)}else if("tool-group"===r.kind)for(let e of(i+=r.count,r.toolNames))u.set(e.name,(u.get(e.name)??0)+e.count);else"error"===r.kind&&a++}for(let e=s.length-1;e>=0;e--){if("agent"!==s[e].kind)continue;let t=s[e-1];if(t?.kind!=="task-notification"){n=e;break}}if(void 0===n){for(let e=s.length-1;e>=0;e--)if("agent"===s[e].kind){n=e;break}}let p=void 0!==e&&"agent"===s[e].kind?s[e].event.preview:void 0,d=void 0!==n&&"agent"===s[n].kind?s[n].event.preview:void 0,c=Array.from(u.entries()).sort((e,t)=>t[1]-e[1]).map(([e,t])=>({name:e,count:t})),m=s[0],g=s[s.length-1],h=r?.tOffsetMs??m.tOffsetMs,k=g.tOffsetMs;t.push({kind:"turn",rows:s,firstPrimaryIndex:"tool-group"===m.kind?m.events[0].index:m.event.index,tOffsetMs:h,durationMs:void 0!==h&&void 0!==k&&k>=h?k-h:void 0,summary:{agentMessages:o,toolCalls:i,errors:a,firstAgentPreview:p,finalAgentPreview:d,firstAgentIndex:e,finalAgentIndex:n,toolNames:c,totalTokens:f}}),s=[]};for(let o of e)"user"===o.kind||"interrupt"===o.kind?(n(),t.push(o),r=o):s.push(o);return n(),t}(d),m=e.totalUsage.input+e.totalUsage.cacheRead+e.totalUsage.cacheWrite,g=e.totalUsage.cacheRead+e.totalUsage.cacheWrite,h=new Map;for(let e of d)if("tool-group"===e.kind)for(let t of e.toolNames)h.set(t.name,(h.get(t.name)??0)+t.count);let k=Array.from(h.entries()).sort((e,t)=>t[1]-e[1]).slice(0,8).map(([e,t])=>`${e}\xd7${t}`).join(", "),v=d.find(e=>"user"===e.kind&&!e.event.preview.startsWith("<command-name>")&&!e.event.preview.startsWith("Base directory for this skill:")),M=v?.kind==="user"?v.displayBlocks?.[0]?.type==="text"?v.displayBlocks[0].text:(p=v.event.blocks.find(e=>e?.type==="text"),p?.text??v.event.preview):"",x=d.filter(e=>"error"===e.kind),$=x.length>0?`${x.length} errors, first: "${f(x[0].message,160)}"`:"none",y=[],w=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),s="string"==typeof e?.input?.command?e.input.command:"";if(!/gh\s+pr\s+create\b/i.test(s))continue;let r=s.match(/--title\s+["']([^"']+)["']/),n=r?.[1]??s.replace(/^gh pr create /,"").slice(0,120),o=w>0&&void 0!==t.tOffsetMs?Math.round(t.tOffsetMs/w*100):0;y.push({offsetPct:o,titleOrCmd:n})}let O="";for(let e=c.length-1;e>=0;e--){let t=c[e];if("turn"!==t.kind)continue;let s=t.summary.finalAgentIndex;if(void 0!==s){let e=t.rows[s];if(e?.kind==="agent"){let t=e.event.blocks.find(e=>e&&"text"===e.type);O=t?.text??e.event.preview;break}}}let b=[];for(let e of c){if(b.length>=40){b.push({offset:"...",line:`(+${c.length-b.length} more rows)`});break}if("user"===e.kind){let t=f(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>")||b.push({offset:u(e.tOffsetMs),line:`USER: ${t}`})}else if("turn"===e.kind){let t=e.summary,s=t.firstAgentPreview?f(t.firstAgentPreview,180):"",r=t.finalAgentPreview?f(t.finalAgentPreview,180):"",n=s&&r&&s===r,o=t.toolNames.slice(0,3).map(e=>e.count>1?`${e.name}\xd7${e.count}`:e.name).join(", "),i=`${t.agentMessages} msg, ${t.toolCalls} tools${t.errors>0?`, ${t.errors} err`:""}`,a=n||!r?s:`${s} → ${r}`;b.push({offset:u(e.tOffsetMs),line:`TURN (${i}${o?`, ${o}`:""}): ${a}`})}else"interrupt"===e.kind&&b.push({offset:u(e.tOffsetMs),line:"INTERRUPT"})}let I=[];for(let t of(I.push(`# Session ${e.id}`),I.push(`project: ${e.projectName}`),e.model&&I.push(`model: ${e.model}`),I.push(`duration: ${l(e.durationMs)} | active: ${l(e.airTimeMs??e.durationMs)}`),I.push(`events: ${e.eventCount} | tokens: ${a(m)} in / ${a(e.totalUsage.output)} out${g>0?` (+${a(g)} cached)`:""}`),I.push(`tool calls: ${e.toolCallCount??0}${k?` (${k})`:""}`),I.push(`turns: ${e.turnCount??0}`),e.firstTimestamp&&I.push(`started: ${e.firstTimestamp}`),I.push(""),M&&(I.push("## First user message"),I.push(f(M,1200)),I.push("")),I.push("## Timeline"),b))I.push(`[${t.offset}] ${t.line}`);if(I.push(""),y.length>0){for(let e of(I.push("## PRs shipped"),y))I.push(`- at ${e.offsetPct}% into session: ${f(e.titleOrCmd,160)}`);I.push("")}return I.push("## Errors encountered"),I.push($),I.push(""),O&&(I.push("## Final agent message"),I.push(f(O,800))),I.join("\n")}],86040)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0sbhe0s._.js.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module.exports=[93695,(e,t,s)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,s)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},70406,(e,t,s)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},50227,(e,t,s)=>{t.exports=e.x("node:path",()=>require("node:path"))},2157,(e,t,s)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,s)=>{t.exports=e.x("node:os",()=>require("node:os"))},66680,(e,t,s)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},74533,(e,t,s)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},45092,84497,84777,e=>{"use strict";var t=e.i(74533),s=e.i(2157),n=e.i(50227),r=e.i(66680),a=e.i(43427);function o(){return(0,a.cclensPath)("agent-chats")}function i(e){return(0,n.join)(o(),`${e}.json`)}function l(e){(0,s.mkdirSync)(o(),{recursive:!0});let t=i(e.id),n=`${t}.tmp.${process.pid}`;(0,s.writeFileSync)(n,JSON.stringify(e),"utf8"),(0,s.renameSync)(n,t)}function d(e){if(!/^[a-zA-Z0-9-]+$/.test(e))return null;try{let t=JSON.parse((0,s.readFileSync)(i(e),"utf8"));return 1===t.version?t:null}catch{return null}}function u(){return{role:"assistant",segments:[]}}function c(e,t){if(t.seq<=e.lastSeq)return e;let s=[...e.messages],n=s[s.length-1];n&&"assistant"===n.role||(n=u(),s.push(n));let r={...n,segments:[...n.segments]};s[s.length-1]=r;let a=e.status;switch(t.type){case"delta":{let e=r.segments[r.segments.length-1];e?.kind==="text"?r.segments[r.segments.length-1]={kind:"text",text:e.text+t.text}:r.segments.push({kind:"text",text:t.text});break}case"tool":r.segments.push({kind:"tool",id:t.id,name:t.name,input:t.input,done:!1});break;case"tool_result":r.segments=r.segments.map(e=>"tool"===e.kind&&e.id===t.id?{...e,brief:t.brief,isError:t.isError,done:!0}:e);break;case"done":a="idle",r.segments=r.segments.map(e=>"tool"!==e.kind||e.done?e:{...e,done:!0});break;case"error":a="error",r.segments=r.segments.map(e=>"tool"!==e.kind||e.done?e:{...e,done:!0}),r.segments.push({kind:"text",text:`
|
|
2
|
+
|
|
3
|
+
**Error:** ${t.message}`})}return{...e,messages:s,status:a,lastSeq:t.seq,updated_at:new Date().toISOString()}}function p(){let e=new Date,t=e.toLocaleDateString("en-CA"),s=e.toLocaleDateString("en-US",{weekday:"long"});return`You are the Fleetlens Agent. Fleetlens is a local, privacy-first dashboard over the user's coding-agent history: every Claude Code, Codex, Gemini (and other) session recorded on this machine. You have tools that search and read those sessions.
|
|
4
|
+
|
|
5
|
+
Today is ${s}, ${t}. All session data is local; nothing you do leaves this machine.
|
|
6
|
+
|
|
7
|
+
What users come to you for:
|
|
8
|
+
1. **Find** — locate past sessions: "where did I fix the daemon crash?", "what did I do last Tuesday?"
|
|
9
|
+
2. **Synthesize** — explain what happened across sessions: decisions made, approaches tried, gotchas hit.
|
|
10
|
+
3. **Draft a prompt** — package findings into a self-contained prompt the user can paste into a fresh coding-agent session as context for their next task.
|
|
11
|
+
|
|
12
|
+
Rules:
|
|
13
|
+
- Your ONLY tools are the four fleetlens session tools (search_sessions, get_session, list_sessions, list_projects). You have no filesystem, Bash, memory directory, or web access — never attempt Write, Edit, Read, or any other tool, and never claim you'll "update memory".
|
|
14
|
+
- Invoke tools through real tool calls only — never write function-call syntax or XML tags into your text response, and never simulate or invent tool output. If a tool fails or returns nothing, say so.
|
|
15
|
+
- Ground every claim about past work in tool results. Search before answering; if the first query is inconclusive, retry with different wording (synonyms, file names, error text). Never invent sessions or details.
|
|
16
|
+
- Don't re-fetch a session you already read this conversation — its content won't change.
|
|
17
|
+
- Cite sessions inline as markdown links using each hit's url, e.g. [fix daemon crash](/sessions/abc-123). Cite the sessions you actually drew from — not every hit. These session urls (and real web URLs from tool results) are the ONLY things you may link; never link file names, paths, or documents — mention them as plain text.
|
|
18
|
+
- When asked for a prompt / context pack / handoff, output it as a single fenced code block tagged \`prompt\` (\`\`\`prompt … \`\`\`). Make it self-contained: goal, relevant repo/file paths, decisions already made, known gotchas, and what to do next. No session links inside the block — the next agent can't open them.
|
|
19
|
+
- Be concise. Lead with the answer, then supporting detail. Don't narrate your tool use.
|
|
20
|
+
- If searches genuinely turn up nothing, say so plainly and suggest a better query.`}e.s(["deleteChat",0,function(e){/^[a-zA-Z0-9-]+$/.test(e)&&(0,s.rmSync)(i(e),{force:!0})},"listChats",0,function(){if(!(0,s.existsSync)(o()))return[];let e=[];for(let t of(0,s.readdirSync)(o())){if(!t.endsWith(".json"))continue;let s=d(t.slice(0,-5));s&&e.push({id:s.id,title:s.title,updated_at:s.updated_at,status:s.status,messageCount:s.messages.length})}return e.sort((e,t)=>t.updated_at.localeCompare(e.updated_at)),e},"readChat",0,d,"writeChat",0,l],84497),e.s(["applyRunEvent",0,c,"chatTitle",0,function(e){return e.replace(/\s+/g," ").trim().slice(0,80)},"createChat",0,function(){let e=new Date().toISOString();return{version:1,id:crypto.randomUUID(),title:"New conversation",created_at:e,updated_at:e,status:"idle",lastSeq:0,messages:[]}},"newAssistantMessage",0,u],84777);let h=globalThis.__fleetlensAgentRuns??={runs:new Map};e.s(["MAX_CONCURRENT_RUNS",0,3,"activeRunCount",0,function(){return h.runs.size},"discardRun",0,function(e){let t=h.runs.get(e);t&&(t.stoppedByUser=!0,t.discarded=!0,h.runs.delete(e),t.kill())},"getRun",0,function(e){return h.runs.get(e)},"killRun",0,function(e){let t=h.runs.get(e);t&&(t.stoppedByUser=!0,t.kill())},"reconcileChat",0,function(e){if("running"!==e.status||h.runs.has(e.id))return e;let t=c(e,{seq:e.lastSeq+1,type:"error",message:"run interrupted — the server restarted while it was working"});try{l(t)}catch{}return t},"startRun",0,function(e,o){if(h.runs.has(e.id))throw Error("run already active for this chat");let i=e.lastSeq,d=e,u=0,m={chatId:e.id,events:[],subscribers:new Set,stoppedByUser:!1,discarded:!1,kill:()=>{}};h.runs.set(e.id,m);let g=e=>{if(m.discarded)return;let t=Date.now();if(e||!(t-u<750)){u=t;try{l(d)}catch{}}},f=e=>{let t={seq:++i,...e};for(let e of(m.events.push(t),d=c(d,t),g("delta"!==t.type),m.subscribers))try{e(t)}catch{}},y=["-p","--output-format","stream-json","--verbose","--include-partial-messages","--model",o.model,"--tools","","--disable-slash-commands","--no-session-persistence","--setting-sources","","--strict-mcp-config","--mcp-config",JSON.stringify({mcpServers:{fleetlens:{type:"http",url:o.mcpUrl}}}),"--allowedTools","mcp__fleetlens__search_sessions","mcp__fleetlens__get_session","mcp__fleetlens__list_sessions","mcp__fleetlens__list_projects","--effort","medium","--append-system-prompt",p()],x=(0,a.cclensPath)("agent-runtime");(0,s.mkdirSync)(x,{recursive:!0});let _=function(e){let t=e.slice(-12).map(e=>({role:e.role,text:e.text.length>4e3?e.text.slice(0,4e3)+"…":e.text})),s=t.pop();if(!s)return"";if(0===t.length)return s.text;let n=t.map(e=>`${"user"===e.role?"User":"You (assistant)"}: ${e.text}`).join("\n\n");return`Conversation so far:
|
|
21
|
+
|
|
22
|
+
${n}
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
User's new message: ${s.text}`}(e.messages.map(e=>"user"===e.role?{role:"user",text:e.text}:{role:"assistant",text:e.segments.filter(e=>"text"===e.kind).map(e=>e.text).join("")}).filter(e=>e.text.trim())),v=setTimeout(()=>{f({type:"error",message:"timed out after 5 minutes"}),m.kill()},3e5),w=()=>{clearTimeout(v),g(!0),h.runs.delete(e.id)},R=e=>{var i,l,u;let c,h,g,v,k;if(m.stoppedByUser||"running"!==d.status){m.stoppedByUser&&"running"===d.status&&f({type:"error",message:"stopped by user"}),w();return}let S=(i=o.model,l=_.length,u=p(),h=(0,a.cclensPath)("llm-runs"),g=`${new Date().toISOString().replace(/[:.]/g,"-")}_agent_chat_${(0,r.randomUUID)().slice(0,8)}`,v=(0,n.join)(h,`${g}.jsonl`),(k=(e,t=!1)=>{try{let n=JSON.stringify(e)+"\n";t?((0,s.mkdirSync)(h,{recursive:!0}),(0,s.writeFileSync)(v,n)):(0,s.appendFileSync)(v,n)}catch{}})({_meta:{type:"start",run_id:g,kind:"agent_chat",model:i,ts:new Date().toISOString(),runtime:"detached",user_prompt_chars:l}},!0),k({_meta:{type:"payload",run_id:g,system_prompt:u,user_prompt:_}}),{line:e=>{try{(0,s.appendFileSync)(v,e+"\n")}catch{}},end:e=>k({_meta:{type:"end",run_id:g,ts:new Date().toISOString(),...e}})}),b=Date.now(),C=(0,t.spawn)("claude",y,{stdio:["pipe","pipe","pipe"],env:{...process.env},cwd:x});m.kill=()=>{try{C.kill("SIGTERM")}catch{}},C.stdin.write(_),C.stdin.end();let E=!1,A="",N="",T=!1,q=new Set,O=new Map,U=t=>{let s;try{s=JSON.parse(t)}catch{return}if("stream_event"!==s.type&&S.line(t),"system"===s.type&&"init"===s.subtype){let t=s.mcp_servers,n=t?.find(e=>"fleetlens"===e.name);if(n&&"connected"!==n.status){E=!0,S.end({runtime:"detached",elapsed_ms:Date.now()-b,mcp_status:n.status,retried:e<3});try{C.kill("SIGTERM")}catch{}e<3?setTimeout(()=>R(e+1),750):(f({type:"error",message:`session tools failed to connect (mcp status: ${n.status}) — try again`}),w())}return}if("stream_event"===s.type){let e=s.event;if(e?.type==="content_block_delta"){let t=e.delta;t?.type==="text_delta"&&"string"==typeof t.text&&("number"==typeof e.index&&q.add(e.index),f({type:"delta",text:t.text}))}return}if("assistant"===s.type){let e=s.message,t=e?.content;Array.isArray(t)&&t.forEach((e,t)=>{if("text"!==e.type||"string"!=typeof e.text||q.has(t)||f({type:"delta",text:e.text}),"tool_use"===e.type&&"string"==typeof e.name){var s;let t,n="string"==typeof e.id?e.id:"",r=e.name.replace(/^mcp__fleetlens__/,"");O.set(n,r),f({type:"tool",id:n,name:r,input:(t=JSON.stringify(s=e.input)??"{}").length<=300?s:{_truncated:t.slice(0,300)+"…"}})}}),q=new Set;return}if("user"===s.type){let e=s.message,t=e?.content;if(!Array.isArray(t))return;for(let e of t){if("tool_result"!==e.type)continue;let t="string"==typeof e.tool_use_id?e.tool_use_id:"",s=e.content,n=Array.isArray(s)?s.map(e=>e&&"object"==typeof e&&"text"in e?String(e.text):"").join(""):"string"==typeof s?s:"";f({type:"tool_result",id:t,name:O.get(t)??"tool",brief:function(e){try{let t=JSON.parse(e);if("number"==typeof t.total_matches)return`${t.total_matches} matching sessions`;if(Array.isArray(t.sessions))return`${t.total??t.sessions.length} sessions`;if(Array.isArray(t.projects))return`${t.projects.length} projects`}catch{}return`${e.length.toLocaleString()} chars`}(n),isError:!0===e.is_error})}return}"result"===s.type&&(T=!0,c=s.usage,f({type:"done",totalTokens:"number"==typeof c?.input_tokens&&"number"==typeof c?.output_tokens?c.input_tokens+c.output_tokens:void 0}))},j=new TextDecoder("utf-8");C.stdout.on("data",e=>{if(E)return;let t=(N+=j.decode(e,{stream:!0})).split("\n");for(let e of(N=t.pop()??"",t)){let t=e.trim();t&&!E&&U(t)}}),C.stderr.on("data",e=>{A.length<4e3&&(A+=e.toString("utf8"))}),C.on("close",e=>{E||(T||"running"!==d.status||f({type:"error",message:m.stoppedByUser?"stopped by user":A.trim().slice(0,400)||`claude exited with code ${e}`}),S.end({runtime:"detached",elapsed_ms:Date.now()-b,exit_code:e??0,input_tokens:c?.input_tokens,output_tokens:c?.output_tokens}),w())}),C.on("error",e=>{E||(f({type:"error",message:`Failed to spawn claude: ${e.message}`}),S.end({runtime:"detached",elapsed_ms:Date.now()-b,exit_code:-1,error:e.message}),w())})};R(1)}],45092)},1766,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),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),m=e.i(74838),g=e.i(10372),f=e.i(93695);e.i(52474);var y=e.i(220),x=e.i(45092);async function _(e,{params:t}){let{id:s}=await t;return(0,x.killRun)(s),Response.json({ok:!0})}e.s(["POST",0,_,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],14733);var v=e.i(14733);let w=new t.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/agent/chats/[id]/stop/route",pathname:"/api/agent/chats/[id]/stop",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/agent/chats/[id]/stop/route.ts",nextConfigOutput:"standalone",userland:v,...{}}),{workAsyncStorage:R,workUnitAsyncStorage:k,serverHooks:S}=w;async function b(e,t,n){n.requestMeta&&(0,r.setRequestMeta)(e,n.requestMeta),w.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/agent/chats/[id]/stop/route";x=x.replace(/\/index$/,"")||"/";let _=await w.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!_)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:v,params:R,nextConfig:k,parsedUrl:S,isDraftMode:b,prerenderManifest:C,routerServerContext:E,isOnDemandRevalidate:A,revalidateOnlyGenerated:N,resolvedPathname:T,clientReferenceManifest:q,serverActionsManifest:O}=_,U=(0,i.normalizeAppPath)(x),j=!!(C.dynamicRoutes[U]||C.routes[T]),D=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,S,!1):t.end("This page could not be found"),null);if(j&&!b){let e=!!C.routes[T],t=C.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(k.adapterPath)return await D();throw new f.NoFallbackError}}let I=null;!j||w.isDev||b||(I="/index"===(I=T)?"/":I);let $=!0===w.isDev||!j,P=j&&!$;O&&q&&(0,o.setManifestsSingleton)({page:x,clientReferenceManifest:q,serverActionsManifest:O});let M=e.method||"GET",F=(0,a.getTracer)(),H=F.getActiveScopeSpan(),B=!!(null==E?void 0:E.isWrappedByNextServer),L=!!(0,r.getRequestMeta)(e,"minimalMode"),K=(0,r.getRequestMeta)(e,"incrementalCache")||await w.getIncrementalCache(e,k,C,L);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let G={params:R,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!k.experimental.authInterrupts},cacheComponents:!!k.cacheComponents,supportsDynamicResponse:$,incrementalCache:K,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,E)},sharedContext:{buildId:v}},J=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),Y=d.NextRequestAdapter.fromNodeNextRequest(J,(0,d.signalFromNodeResponse)(t));try{let r,o=async e=>w.handle(Y,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=F.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==u.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=`${M} ${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(`${M} ${x}`)}),i=async r=>{var a,i;let l=async({previousCacheEntry:s})=>{try{if(!L&&A&&N&&!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=G.renderOpts.fetchMetrics;let i=G.renderOpts.pendingWaitUntil;i&&n.waitUntil&&(n.waitUntil(i),i=void 0);let l=G.renderOpts.collectedTags;if(!j)return await (0,p.sendResponse)(J,W,a,G.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,n=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:y.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:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:A})},!1,E),t}},d=await w.handleResponse({req:e,nextConfig:k,cacheKey:I,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:N,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:L});if(!j)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",A?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return L&&j||u.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(J,W,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};B&&H?await i(H):(r=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${x}`,kind:a.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},i),void 0,!B))}catch(t){if(t instanceof f.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:A})},!1,E),j)throw t;return await (0,p.sendResponse)(J,W,new Response(null,{status:500})),null}}e.s(["handler",0,b,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:k})},"routeModule",0,w,"serverHooks",0,S,"workAsyncStorage",0,R,"workUnitAsyncStorage",0,k],1766)}];
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0tk8p3d._.js.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module.exports=[93695,(e,t,s)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,s)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},70406,(e,t,s)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},50227,(e,t,s)=>{t.exports=e.x("node:path",()=>require("node:path"))},2157,(e,t,s)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,s)=>{t.exports=e.x("node:os",()=>require("node:os"))},66680,(e,t,s)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},74533,(e,t,s)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},45092,84497,84777,e=>{"use strict";var t=e.i(74533),s=e.i(2157),n=e.i(50227),r=e.i(66680),a=e.i(43427);function o(){return(0,a.cclensPath)("agent-chats")}function i(e){return(0,n.join)(o(),`${e}.json`)}function l(e){(0,s.mkdirSync)(o(),{recursive:!0});let t=i(e.id),n=`${t}.tmp.${process.pid}`;(0,s.writeFileSync)(n,JSON.stringify(e),"utf8"),(0,s.renameSync)(n,t)}function d(e){if(!/^[a-zA-Z0-9-]+$/.test(e))return null;try{let t=JSON.parse((0,s.readFileSync)(i(e),"utf8"));return 1===t.version?t:null}catch{return null}}function u(){return{role:"assistant",segments:[]}}function c(e,t){if(t.seq<=e.lastSeq)return e;let s=[...e.messages],n=s[s.length-1];n&&"assistant"===n.role||(n=u(),s.push(n));let r={...n,segments:[...n.segments]};s[s.length-1]=r;let a=e.status;switch(t.type){case"delta":{let e=r.segments[r.segments.length-1];e?.kind==="text"?r.segments[r.segments.length-1]={kind:"text",text:e.text+t.text}:r.segments.push({kind:"text",text:t.text});break}case"tool":r.segments.push({kind:"tool",id:t.id,name:t.name,input:t.input,done:!1});break;case"tool_result":r.segments=r.segments.map(e=>"tool"===e.kind&&e.id===t.id?{...e,brief:t.brief,isError:t.isError,done:!0}:e);break;case"done":a="idle",r.segments=r.segments.map(e=>"tool"!==e.kind||e.done?e:{...e,done:!0});break;case"error":a="error",r.segments=r.segments.map(e=>"tool"!==e.kind||e.done?e:{...e,done:!0}),r.segments.push({kind:"text",text:`
|
|
2
|
+
|
|
3
|
+
**Error:** ${t.message}`})}return{...e,messages:s,status:a,lastSeq:t.seq,updated_at:new Date().toISOString()}}function p(){let e=new Date,t=e.toLocaleDateString("en-CA"),s=e.toLocaleDateString("en-US",{weekday:"long"});return`You are the Fleetlens Agent. Fleetlens is a local, privacy-first dashboard over the user's coding-agent history: every Claude Code, Codex, Gemini (and other) session recorded on this machine. You have tools that search and read those sessions.
|
|
4
|
+
|
|
5
|
+
Today is ${s}, ${t}. All session data is local; nothing you do leaves this machine.
|
|
6
|
+
|
|
7
|
+
What users come to you for:
|
|
8
|
+
1. **Find** — locate past sessions: "where did I fix the daemon crash?", "what did I do last Tuesday?"
|
|
9
|
+
2. **Synthesize** — explain what happened across sessions: decisions made, approaches tried, gotchas hit.
|
|
10
|
+
3. **Draft a prompt** — package findings into a self-contained prompt the user can paste into a fresh coding-agent session as context for their next task.
|
|
11
|
+
|
|
12
|
+
Rules:
|
|
13
|
+
- Your ONLY tools are the four fleetlens session tools (search_sessions, get_session, list_sessions, list_projects). You have no filesystem, Bash, memory directory, or web access — never attempt Write, Edit, Read, or any other tool, and never claim you'll "update memory".
|
|
14
|
+
- Invoke tools through real tool calls only — never write function-call syntax or XML tags into your text response, and never simulate or invent tool output. If a tool fails or returns nothing, say so.
|
|
15
|
+
- Ground every claim about past work in tool results. Search before answering; if the first query is inconclusive, retry with different wording (synonyms, file names, error text). Never invent sessions or details.
|
|
16
|
+
- Don't re-fetch a session you already read this conversation — its content won't change.
|
|
17
|
+
- Cite sessions inline as markdown links using each hit's url, e.g. [fix daemon crash](/sessions/abc-123). Cite the sessions you actually drew from — not every hit. These session urls (and real web URLs from tool results) are the ONLY things you may link; never link file names, paths, or documents — mention them as plain text.
|
|
18
|
+
- When asked for a prompt / context pack / handoff, output it as a single fenced code block tagged \`prompt\` (\`\`\`prompt … \`\`\`). Make it self-contained: goal, relevant repo/file paths, decisions already made, known gotchas, and what to do next. No session links inside the block — the next agent can't open them.
|
|
19
|
+
- Be concise. Lead with the answer, then supporting detail. Don't narrate your tool use.
|
|
20
|
+
- If searches genuinely turn up nothing, say so plainly and suggest a better query.`}e.s(["deleteChat",0,function(e){/^[a-zA-Z0-9-]+$/.test(e)&&(0,s.rmSync)(i(e),{force:!0})},"listChats",0,function(){if(!(0,s.existsSync)(o()))return[];let e=[];for(let t of(0,s.readdirSync)(o())){if(!t.endsWith(".json"))continue;let s=d(t.slice(0,-5));s&&e.push({id:s.id,title:s.title,updated_at:s.updated_at,status:s.status,messageCount:s.messages.length})}return e.sort((e,t)=>t.updated_at.localeCompare(e.updated_at)),e},"readChat",0,d,"writeChat",0,l],84497),e.s(["applyRunEvent",0,c,"chatTitle",0,function(e){return e.replace(/\s+/g," ").trim().slice(0,80)},"createChat",0,function(){let e=new Date().toISOString();return{version:1,id:crypto.randomUUID(),title:"New conversation",created_at:e,updated_at:e,status:"idle",lastSeq:0,messages:[]}},"newAssistantMessage",0,u],84777);let h=globalThis.__fleetlensAgentRuns??={runs:new Map};e.s(["MAX_CONCURRENT_RUNS",0,3,"activeRunCount",0,function(){return h.runs.size},"discardRun",0,function(e){let t=h.runs.get(e);t&&(t.stoppedByUser=!0,t.discarded=!0,h.runs.delete(e),t.kill())},"getRun",0,function(e){return h.runs.get(e)},"killRun",0,function(e){let t=h.runs.get(e);t&&(t.stoppedByUser=!0,t.kill())},"reconcileChat",0,function(e){if("running"!==e.status||h.runs.has(e.id))return e;let t=c(e,{seq:e.lastSeq+1,type:"error",message:"run interrupted — the server restarted while it was working"});try{l(t)}catch{}return t},"startRun",0,function(e,o){if(h.runs.has(e.id))throw Error("run already active for this chat");let i=e.lastSeq,d=e,u=0,m={chatId:e.id,events:[],subscribers:new Set,stoppedByUser:!1,discarded:!1,kill:()=>{}};h.runs.set(e.id,m);let f=e=>{if(m.discarded)return;let t=Date.now();if(e||!(t-u<750)){u=t;try{l(d)}catch{}}},g=e=>{let t={seq:++i,...e};for(let e of(m.events.push(t),d=c(d,t),f("delta"!==t.type),m.subscribers))try{e(t)}catch{}},y=["-p","--output-format","stream-json","--verbose","--include-partial-messages","--model",o.model,"--tools","","--disable-slash-commands","--no-session-persistence","--setting-sources","","--strict-mcp-config","--mcp-config",JSON.stringify({mcpServers:{fleetlens:{type:"http",url:o.mcpUrl}}}),"--allowedTools","mcp__fleetlens__search_sessions","mcp__fleetlens__get_session","mcp__fleetlens__list_sessions","mcp__fleetlens__list_projects","--effort","medium","--append-system-prompt",p()],x=(0,a.cclensPath)("agent-runtime");(0,s.mkdirSync)(x,{recursive:!0});let _=function(e){let t=e.slice(-12).map(e=>({role:e.role,text:e.text.length>4e3?e.text.slice(0,4e3)+"…":e.text})),s=t.pop();if(!s)return"";if(0===t.length)return s.text;let n=t.map(e=>`${"user"===e.role?"User":"You (assistant)"}: ${e.text}`).join("\n\n");return`Conversation so far:
|
|
21
|
+
|
|
22
|
+
${n}
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
User's new message: ${s.text}`}(e.messages.map(e=>"user"===e.role?{role:"user",text:e.text}:{role:"assistant",text:e.segments.filter(e=>"text"===e.kind).map(e=>e.text).join("")}).filter(e=>e.text.trim())),v=setTimeout(()=>{g({type:"error",message:"timed out after 5 minutes"}),m.kill()},3e5),w=()=>{clearTimeout(v),f(!0),h.runs.delete(e.id)},R=e=>{var i,l,u;let c,h,f,v,k;if(m.stoppedByUser||"running"!==d.status){m.stoppedByUser&&"running"===d.status&&g({type:"error",message:"stopped by user"}),w();return}let S=(i=o.model,l=_.length,u=p(),h=(0,a.cclensPath)("llm-runs"),f=`${new Date().toISOString().replace(/[:.]/g,"-")}_agent_chat_${(0,r.randomUUID)().slice(0,8)}`,v=(0,n.join)(h,`${f}.jsonl`),(k=(e,t=!1)=>{try{let n=JSON.stringify(e)+"\n";t?((0,s.mkdirSync)(h,{recursive:!0}),(0,s.writeFileSync)(v,n)):(0,s.appendFileSync)(v,n)}catch{}})({_meta:{type:"start",run_id:f,kind:"agent_chat",model:i,ts:new Date().toISOString(),runtime:"detached",user_prompt_chars:l}},!0),k({_meta:{type:"payload",run_id:f,system_prompt:u,user_prompt:_}}),{line:e=>{try{(0,s.appendFileSync)(v,e+"\n")}catch{}},end:e=>k({_meta:{type:"end",run_id:f,ts:new Date().toISOString(),...e}})}),b=Date.now(),C=(0,t.spawn)("claude",y,{stdio:["pipe","pipe","pipe"],env:{...process.env},cwd:x});m.kill=()=>{try{C.kill("SIGTERM")}catch{}},C.stdin.write(_),C.stdin.end();let E=!1,A="",T="",N=!1,q=new Set,O=new Map,j=t=>{let s;try{s=JSON.parse(t)}catch{return}if("stream_event"!==s.type&&S.line(t),"system"===s.type&&"init"===s.subtype){let t=s.mcp_servers,n=t?.find(e=>"fleetlens"===e.name);if(n&&"connected"!==n.status){E=!0,S.end({runtime:"detached",elapsed_ms:Date.now()-b,mcp_status:n.status,retried:e<3});try{C.kill("SIGTERM")}catch{}e<3?setTimeout(()=>R(e+1),750):(g({type:"error",message:`session tools failed to connect (mcp status: ${n.status}) — try again`}),w())}return}if("stream_event"===s.type){let e=s.event;if(e?.type==="content_block_delta"){let t=e.delta;t?.type==="text_delta"&&"string"==typeof t.text&&("number"==typeof e.index&&q.add(e.index),g({type:"delta",text:t.text}))}return}if("assistant"===s.type){let e=s.message,t=e?.content;Array.isArray(t)&&t.forEach((e,t)=>{if("text"!==e.type||"string"!=typeof e.text||q.has(t)||g({type:"delta",text:e.text}),"tool_use"===e.type&&"string"==typeof e.name){var s;let t,n="string"==typeof e.id?e.id:"",r=e.name.replace(/^mcp__fleetlens__/,"");O.set(n,r),g({type:"tool",id:n,name:r,input:(t=JSON.stringify(s=e.input)??"{}").length<=300?s:{_truncated:t.slice(0,300)+"…"}})}}),q=new Set;return}if("user"===s.type){let e=s.message,t=e?.content;if(!Array.isArray(t))return;for(let e of t){if("tool_result"!==e.type)continue;let t="string"==typeof e.tool_use_id?e.tool_use_id:"",s=e.content,n=Array.isArray(s)?s.map(e=>e&&"object"==typeof e&&"text"in e?String(e.text):"").join(""):"string"==typeof s?s:"";g({type:"tool_result",id:t,name:O.get(t)??"tool",brief:function(e){try{let t=JSON.parse(e);if("number"==typeof t.total_matches)return`${t.total_matches} matching sessions`;if(Array.isArray(t.sessions))return`${t.total??t.sessions.length} sessions`;if(Array.isArray(t.projects))return`${t.projects.length} projects`}catch{}return`${e.length.toLocaleString()} chars`}(n),isError:!0===e.is_error})}return}"result"===s.type&&(N=!0,c=s.usage,g({type:"done",totalTokens:"number"==typeof c?.input_tokens&&"number"==typeof c?.output_tokens?c.input_tokens+c.output_tokens:void 0}))},D=new TextDecoder("utf-8");C.stdout.on("data",e=>{if(E)return;let t=(T+=D.decode(e,{stream:!0})).split("\n");for(let e of(T=t.pop()??"",t)){let t=e.trim();t&&!E&&j(t)}}),C.stderr.on("data",e=>{A.length<4e3&&(A+=e.toString("utf8"))}),C.on("close",e=>{E||(N||"running"!==d.status||g({type:"error",message:m.stoppedByUser?"stopped by user":A.trim().slice(0,400)||`claude exited with code ${e}`}),S.end({runtime:"detached",elapsed_ms:Date.now()-b,exit_code:e??0,input_tokens:c?.input_tokens,output_tokens:c?.output_tokens}),w())}),C.on("error",e=>{E||(g({type:"error",message:`Failed to spawn claude: ${e.message}`}),S.end({runtime:"detached",elapsed_ms:Date.now()-b,exit_code:-1,error:e.message}),w())})};R(1)}],45092)},33689,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),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),m=e.i(74838),f=e.i(10372),g=e.i(93695);e.i(52474);var y=e.i(220),x=e.i(84497),_=e.i(45092);async function v(e,{params:t}){let{id:s}=await t,n=(0,x.readChat)(s);return n?Response.json((0,_.reconcileChat)(n)):Response.json({error:"not found"},{status:404})}async function w(e,{params:t}){let{id:s}=await t;return(0,_.discardRun)(s),(0,x.deleteChat)(s),new Response(null,{status:204})}e.s(["DELETE",0,w,"GET",0,v,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],46527);var R=e.i(46527);let k=new t.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/agent/chats/[id]/route",pathname:"/api/agent/chats/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/agent/chats/[id]/route.ts",nextConfigOutput:"standalone",userland:R,...{}}),{workAsyncStorage:S,workUnitAsyncStorage:b,serverHooks:C}=k;async function E(e,t,n){n.requestMeta&&(0,r.setRequestMeta)(e,n.requestMeta),k.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/agent/chats/[id]/route";x=x.replace(/\/index$/,"")||"/";let _=await k.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!_)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:v,params:w,nextConfig:R,parsedUrl:S,isDraftMode:b,prerenderManifest:C,routerServerContext:E,isOnDemandRevalidate:A,revalidateOnlyGenerated:T,resolvedPathname:N,clientReferenceManifest:q,serverActionsManifest:O}=_,j=(0,i.normalizeAppPath)(x),D=!!(C.dynamicRoutes[j]||C.routes[N]),U=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,S,!1):t.end("This page could not be found"),null);if(D&&!b){let e=!!C.routes[N],t=C.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(R.adapterPath)return await U();throw new g.NoFallbackError}}let I=null;!D||k.isDev||b||(I="/index"===(I=N)?"/":I);let $=!0===k.isDev||!D,P=D&&!$;O&&q&&(0,o.setManifestsSingleton)({page:x,clientReferenceManifest:q,serverActionsManifest:O});let M=e.method||"GET",F=(0,a.getTracer)(),H=F.getActiveScopeSpan(),B=!!(null==E?void 0:E.isWrappedByNextServer),L=!!(0,r.getRequestMeta)(e,"minimalMode"),G=(0,r.getRequestMeta)(e,"incrementalCache")||await k.getIncrementalCache(e,R,C,L);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let K={params:w,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:$,incrementalCache:G,cacheLifeProfiles:R.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,s,n,r)=>k.onRequestError(e,t,n,r,E)},sharedContext:{buildId:v}},J=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),Y=d.NextRequestAdapter.fromNodeNextRequest(J,(0,d.signalFromNodeResponse)(t));try{let r,o=async e=>k.handle(Y,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=F.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==u.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=`${M} ${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(`${M} ${x}`)}),i=async r=>{var a,i;let l=async({previousCacheEntry:s})=>{try{if(!L&&A&&T&&!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=K.renderOpts.fetchMetrics;let i=K.renderOpts.pendingWaitUntil;i&&n.waitUntil&&(n.waitUntil(i),i=void 0);let l=K.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(J,W,a,K.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:y.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 k.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:A})},!1,E),t}},d=await k.handleResponse({req:e,nextConfig:R,cacheKey:I,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:L});if(!D)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",A?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return L&&D||u.delete(f.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(J,W,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};B&&H?await i(H):(r=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${x}`,kind:a.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},i),void 0,!B))}catch(t){if(t instanceof g.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:A})},!1,E),D)throw t;return await (0,p.sendResponse)(J,W,new Response(null,{status:500})),null}}e.s(["handler",0,E,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:b})},"routeModule",0,k,"serverHooks",0,C,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,b],33689)}];
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0u6pamj._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},27174,e=>{"use strict";e.i(39587),e.s([])},30212,e=>{"use strict";var t=e.i(79357);function r(e){return(0,t.toLocalDay)(e.getTime())}function n(e=new Date){let t=new Date(e.getFullYear(),e.getMonth(),e.getDate()),r=t.getDay(),a=new Date(t);a.setDate(t.getDate()-(r+6)%7);let o=new Date(a);return o.setDate(a.getDate()+6),{start:a,end:o}}e.s(["aggregateConcurrency",0,function(e,t){let n,a=function(e,t){let r=[],n=new Date(e.getFullYear(),e.getMonth(),e.getDate()),a=new Date(t.getFullYear(),t.getMonth(),t.getDate());for(;n.getTime()<=a.getTime();)r.push(new Date(n)),n.setDate(n.getDate()+1);return r}(t.start,t.end),o=new Map;for(let e of a)o.set(r(e),{peak:0,has_cross_project:!1});for(let t of e){let e=r(new Date(t.startMs)),n=o.get(e);n&&(t.peak>n.peak&&(n.peak=t.peak),t.crossProject&&(n.has_cross_project=!0))}let s=a.map(e=>{let t=r(e),n=o.get(t);return{date:t,peak:n.peak,has_cross_project:n.has_cross_project}}),i=0,p=0,l=0;for(let e of s)e.peak>i&&(i=e.peak,n=e.date),e.peak>=3&&p++,e.has_cross_project&&l++;return{by_day:s,peak:i,peak_day:n,multi_agent_days:p,cross_project_days:l}},"calendarMonth",0,function(e=new Date){return{start:new Date(e.getFullYear(),e.getMonth(),1),end:new Date(e.getFullYear(),e.getMonth()+1,0)}},"calendarWeek",0,n,"priorCalendarMonth",0,function(e=new Date){return{start:new Date(e.getFullYear(),e.getMonth()-1,1),end:new Date(e.getFullYear(),e.getMonth(),0)}},"priorCalendarWeek",0,function(e=new Date){let t=n(e),r=new Date(t.start);r.setDate(t.start.getDate()-1);let a=new Date(r);return a.setDate(r.getDate()-6),{start:a,end:r}}])},75169,e=>{"use strict";function t(e){let t=new Date(e),r=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0");return`${r}-${n}-${a}`}function r(e=Date.now()){return t(e)}e.i(5737);let n=/^\d{4}-\d{2}-\d{2}$/;function a(e){return n.test(e)}let o=/^\d{4}-\d{2}$/;e.s(["asMonday",0,function(e){return a(e)&&1===new Date(`${e}T00:00:00`).getDay()?e:null},"currentWeekMonday",0,function(e=Date.now()){var n;let a,o;return n=r(e),o=(a=new Date(`${n}T00:00:00`)).getDay(),a.setDate(a.getDate()+(0===o?-6:1-o)),t(a.getTime())},"currentYearMonth",0,function(e=Date.now()){return r(e).slice(0,7)},"isValidDate",0,a,"isValidYearMonth",0,function(e){return o.test(e)},"todayLocal",0,r])},59639,(e,t,r)=>{t.exports=e.x("node:process",()=>require("node:process"))},12057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__123tfcb._.js.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module.exports=[93695,(e,t,s)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,s)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},70406,(e,t,s)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},50227,(e,t,s)=>{t.exports=e.x("node:path",()=>require("node:path"))},2157,(e,t,s)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,s)=>{t.exports=e.x("node:os",()=>require("node:os"))},66680,(e,t,s)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},74533,(e,t,s)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},45092,84497,84777,e=>{"use strict";var t=e.i(74533),s=e.i(2157),n=e.i(50227),r=e.i(66680),a=e.i(43427);function o(){return(0,a.cclensPath)("agent-chats")}function i(e){return(0,n.join)(o(),`${e}.json`)}function l(e){(0,s.mkdirSync)(o(),{recursive:!0});let t=i(e.id),n=`${t}.tmp.${process.pid}`;(0,s.writeFileSync)(n,JSON.stringify(e),"utf8"),(0,s.renameSync)(n,t)}function d(e){if(!/^[a-zA-Z0-9-]+$/.test(e))return null;try{let t=JSON.parse((0,s.readFileSync)(i(e),"utf8"));return 1===t.version?t:null}catch{return null}}function u(){return{role:"assistant",segments:[]}}function c(e,t){if(t.seq<=e.lastSeq)return e;let s=[...e.messages],n=s[s.length-1];n&&"assistant"===n.role||(n=u(),s.push(n));let r={...n,segments:[...n.segments]};s[s.length-1]=r;let a=e.status;switch(t.type){case"delta":{let e=r.segments[r.segments.length-1];e?.kind==="text"?r.segments[r.segments.length-1]={kind:"text",text:e.text+t.text}:r.segments.push({kind:"text",text:t.text});break}case"tool":r.segments.push({kind:"tool",id:t.id,name:t.name,input:t.input,done:!1});break;case"tool_result":r.segments=r.segments.map(e=>"tool"===e.kind&&e.id===t.id?{...e,brief:t.brief,isError:t.isError,done:!0}:e);break;case"done":a="idle",r.segments=r.segments.map(e=>"tool"!==e.kind||e.done?e:{...e,done:!0});break;case"error":a="error",r.segments=r.segments.map(e=>"tool"!==e.kind||e.done?e:{...e,done:!0}),r.segments.push({kind:"text",text:`
|
|
2
|
+
|
|
3
|
+
**Error:** ${t.message}`})}return{...e,messages:s,status:a,lastSeq:t.seq,updated_at:new Date().toISOString()}}function p(){let e=new Date,t=e.toLocaleDateString("en-CA"),s=e.toLocaleDateString("en-US",{weekday:"long"});return`You are the Fleetlens Agent. Fleetlens is a local, privacy-first dashboard over the user's coding-agent history: every Claude Code, Codex, Gemini (and other) session recorded on this machine. You have tools that search and read those sessions.
|
|
4
|
+
|
|
5
|
+
Today is ${s}, ${t}. All session data is local; nothing you do leaves this machine.
|
|
6
|
+
|
|
7
|
+
What users come to you for:
|
|
8
|
+
1. **Find** — locate past sessions: "where did I fix the daemon crash?", "what did I do last Tuesday?"
|
|
9
|
+
2. **Synthesize** — explain what happened across sessions: decisions made, approaches tried, gotchas hit.
|
|
10
|
+
3. **Draft a prompt** — package findings into a self-contained prompt the user can paste into a fresh coding-agent session as context for their next task.
|
|
11
|
+
|
|
12
|
+
Rules:
|
|
13
|
+
- Your ONLY tools are the four fleetlens session tools (search_sessions, get_session, list_sessions, list_projects). You have no filesystem, Bash, memory directory, or web access — never attempt Write, Edit, Read, or any other tool, and never claim you'll "update memory".
|
|
14
|
+
- Invoke tools through real tool calls only — never write function-call syntax or XML tags into your text response, and never simulate or invent tool output. If a tool fails or returns nothing, say so.
|
|
15
|
+
- Ground every claim about past work in tool results. Search before answering; if the first query is inconclusive, retry with different wording (synonyms, file names, error text). Never invent sessions or details.
|
|
16
|
+
- Don't re-fetch a session you already read this conversation — its content won't change.
|
|
17
|
+
- Cite sessions inline as markdown links using each hit's url, e.g. [fix daemon crash](/sessions/abc-123). Cite the sessions you actually drew from — not every hit. These session urls (and real web URLs from tool results) are the ONLY things you may link; never link file names, paths, or documents — mention them as plain text.
|
|
18
|
+
- When asked for a prompt / context pack / handoff, output it as a single fenced code block tagged \`prompt\` (\`\`\`prompt … \`\`\`). Make it self-contained: goal, relevant repo/file paths, decisions already made, known gotchas, and what to do next. No session links inside the block — the next agent can't open them.
|
|
19
|
+
- Be concise. Lead with the answer, then supporting detail. Don't narrate your tool use.
|
|
20
|
+
- If searches genuinely turn up nothing, say so plainly and suggest a better query.`}e.s(["deleteChat",0,function(e){/^[a-zA-Z0-9-]+$/.test(e)&&(0,s.rmSync)(i(e),{force:!0})},"listChats",0,function(){if(!(0,s.existsSync)(o()))return[];let e=[];for(let t of(0,s.readdirSync)(o())){if(!t.endsWith(".json"))continue;let s=d(t.slice(0,-5));s&&e.push({id:s.id,title:s.title,updated_at:s.updated_at,status:s.status,messageCount:s.messages.length})}return e.sort((e,t)=>t.updated_at.localeCompare(e.updated_at)),e},"readChat",0,d,"writeChat",0,l],84497),e.s(["applyRunEvent",0,c,"chatTitle",0,function(e){return e.replace(/\s+/g," ").trim().slice(0,80)},"createChat",0,function(){let e=new Date().toISOString();return{version:1,id:crypto.randomUUID(),title:"New conversation",created_at:e,updated_at:e,status:"idle",lastSeq:0,messages:[]}},"newAssistantMessage",0,u],84777);let h=globalThis.__fleetlensAgentRuns??={runs:new Map};e.s(["MAX_CONCURRENT_RUNS",0,3,"activeRunCount",0,function(){return h.runs.size},"discardRun",0,function(e){let t=h.runs.get(e);t&&(t.stoppedByUser=!0,t.discarded=!0,h.runs.delete(e),t.kill())},"getRun",0,function(e){return h.runs.get(e)},"killRun",0,function(e){let t=h.runs.get(e);t&&(t.stoppedByUser=!0,t.kill())},"reconcileChat",0,function(e){if("running"!==e.status||h.runs.has(e.id))return e;let t=c(e,{seq:e.lastSeq+1,type:"error",message:"run interrupted — the server restarted while it was working"});try{l(t)}catch{}return t},"startRun",0,function(e,o){if(h.runs.has(e.id))throw Error("run already active for this chat");let i=e.lastSeq,d=e,u=0,m={chatId:e.id,events:[],subscribers:new Set,stoppedByUser:!1,discarded:!1,kill:()=>{}};h.runs.set(e.id,m);let g=e=>{if(m.discarded)return;let t=Date.now();if(e||!(t-u<750)){u=t;try{l(d)}catch{}}},f=e=>{let t={seq:++i,...e};for(let e of(m.events.push(t),d=c(d,t),g("delta"!==t.type),m.subscribers))try{e(t)}catch{}},y=["-p","--output-format","stream-json","--verbose","--include-partial-messages","--model",o.model,"--tools","","--disable-slash-commands","--no-session-persistence","--setting-sources","","--strict-mcp-config","--mcp-config",JSON.stringify({mcpServers:{fleetlens:{type:"http",url:o.mcpUrl}}}),"--allowedTools","mcp__fleetlens__search_sessions","mcp__fleetlens__get_session","mcp__fleetlens__list_sessions","mcp__fleetlens__list_projects","--effort","medium","--append-system-prompt",p()],x=(0,a.cclensPath)("agent-runtime");(0,s.mkdirSync)(x,{recursive:!0});let _=function(e){let t=e.slice(-12).map(e=>({role:e.role,text:e.text.length>4e3?e.text.slice(0,4e3)+"…":e.text})),s=t.pop();if(!s)return"";if(0===t.length)return s.text;let n=t.map(e=>`${"user"===e.role?"User":"You (assistant)"}: ${e.text}`).join("\n\n");return`Conversation so far:
|
|
21
|
+
|
|
22
|
+
${n}
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
User's new message: ${s.text}`}(e.messages.map(e=>"user"===e.role?{role:"user",text:e.text}:{role:"assistant",text:e.segments.filter(e=>"text"===e.kind).map(e=>e.text).join("")}).filter(e=>e.text.trim())),v=setTimeout(()=>{f({type:"error",message:"timed out after 5 minutes"}),m.kill()},3e5),w=()=>{clearTimeout(v),g(!0),h.runs.delete(e.id)},R=e=>{var i,l,u;let c,h,g,v,S;if(m.stoppedByUser||"running"!==d.status){m.stoppedByUser&&"running"===d.status&&f({type:"error",message:"stopped by user"}),w();return}let k=(i=o.model,l=_.length,u=p(),h=(0,a.cclensPath)("llm-runs"),g=`${new Date().toISOString().replace(/[:.]/g,"-")}_agent_chat_${(0,r.randomUUID)().slice(0,8)}`,v=(0,n.join)(h,`${g}.jsonl`),(S=(e,t=!1)=>{try{let n=JSON.stringify(e)+"\n";t?((0,s.mkdirSync)(h,{recursive:!0}),(0,s.writeFileSync)(v,n)):(0,s.appendFileSync)(v,n)}catch{}})({_meta:{type:"start",run_id:g,kind:"agent_chat",model:i,ts:new Date().toISOString(),runtime:"detached",user_prompt_chars:l}},!0),S({_meta:{type:"payload",run_id:g,system_prompt:u,user_prompt:_}}),{line:e=>{try{(0,s.appendFileSync)(v,e+"\n")}catch{}},end:e=>S({_meta:{type:"end",run_id:g,ts:new Date().toISOString(),...e}})}),b=Date.now(),C=(0,t.spawn)("claude",y,{stdio:["pipe","pipe","pipe"],env:{...process.env},cwd:x});m.kill=()=>{try{C.kill("SIGTERM")}catch{}},C.stdin.write(_),C.stdin.end();let E=!1,A="",T="",N=!1,q=new Set,O=new Map,j=t=>{let s;try{s=JSON.parse(t)}catch{return}if("stream_event"!==s.type&&k.line(t),"system"===s.type&&"init"===s.subtype){let t=s.mcp_servers,n=t?.find(e=>"fleetlens"===e.name);if(n&&"connected"!==n.status){E=!0,k.end({runtime:"detached",elapsed_ms:Date.now()-b,mcp_status:n.status,retried:e<3});try{C.kill("SIGTERM")}catch{}e<3?setTimeout(()=>R(e+1),750):(f({type:"error",message:`session tools failed to connect (mcp status: ${n.status}) — try again`}),w())}return}if("stream_event"===s.type){let e=s.event;if(e?.type==="content_block_delta"){let t=e.delta;t?.type==="text_delta"&&"string"==typeof t.text&&("number"==typeof e.index&&q.add(e.index),f({type:"delta",text:t.text}))}return}if("assistant"===s.type){let e=s.message,t=e?.content;Array.isArray(t)&&t.forEach((e,t)=>{if("text"!==e.type||"string"!=typeof e.text||q.has(t)||f({type:"delta",text:e.text}),"tool_use"===e.type&&"string"==typeof e.name){var s;let t,n="string"==typeof e.id?e.id:"",r=e.name.replace(/^mcp__fleetlens__/,"");O.set(n,r),f({type:"tool",id:n,name:r,input:(t=JSON.stringify(s=e.input)??"{}").length<=300?s:{_truncated:t.slice(0,300)+"…"}})}}),q=new Set;return}if("user"===s.type){let e=s.message,t=e?.content;if(!Array.isArray(t))return;for(let e of t){if("tool_result"!==e.type)continue;let t="string"==typeof e.tool_use_id?e.tool_use_id:"",s=e.content,n=Array.isArray(s)?s.map(e=>e&&"object"==typeof e&&"text"in e?String(e.text):"").join(""):"string"==typeof s?s:"";f({type:"tool_result",id:t,name:O.get(t)??"tool",brief:function(e){try{let t=JSON.parse(e);if("number"==typeof t.total_matches)return`${t.total_matches} matching sessions`;if(Array.isArray(t.sessions))return`${t.total??t.sessions.length} sessions`;if(Array.isArray(t.projects))return`${t.projects.length} projects`}catch{}return`${e.length.toLocaleString()} chars`}(n),isError:!0===e.is_error})}return}"result"===s.type&&(N=!0,c=s.usage,f({type:"done",totalTokens:"number"==typeof c?.input_tokens&&"number"==typeof c?.output_tokens?c.input_tokens+c.output_tokens:void 0}))},U=new TextDecoder("utf-8");C.stdout.on("data",e=>{if(E)return;let t=(T+=U.decode(e,{stream:!0})).split("\n");for(let e of(T=t.pop()??"",t)){let t=e.trim();t&&!E&&j(t)}}),C.stderr.on("data",e=>{A.length<4e3&&(A+=e.toString("utf8"))}),C.on("close",e=>{E||(N||"running"!==d.status||f({type:"error",message:m.stoppedByUser?"stopped by user":A.trim().slice(0,400)||`claude exited with code ${e}`}),k.end({runtime:"detached",elapsed_ms:Date.now()-b,exit_code:e??0,input_tokens:c?.input_tokens,output_tokens:c?.output_tokens}),w())}),C.on("error",e=>{E||(f({type:"error",message:`Failed to spawn claude: ${e.message}`}),k.end({runtime:"detached",elapsed_ms:Date.now()-b,exit_code:-1,error:e.message}),w())})};R(1)}],45092)},8043,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),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),m=e.i(74838),g=e.i(10372),f=e.i(93695);e.i(52474);var y=e.i(220),x=e.i(84497),_=e.i(84777),v=e.i(45092);e.s(["GET",0,function(){let e=(0,x.listChats)().map(e=>{if("running"===e.status&&!(0,v.getRun)(e.id)){let t=(0,x.readChat)(e.id);if(t){let s=(0,v.reconcileChat)(t);return{...e,status:s.status,updated_at:s.updated_at}}}return e});return Response.json({chats:e})},"POST",0,function(){let e=(0,_.createChat)();return(0,x.writeChat)(e),Response.json({id:e.id},{status:201})},"dynamic",0,"force-dynamic","runtime",0,"nodejs"],71415);var w=e.i(71415);let R=new t.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/agent/chats/route",pathname:"/api/agent/chats",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/agent/chats/route.ts",nextConfigOutput:"standalone",userland:w,...{}}),{workAsyncStorage:S,workUnitAsyncStorage:k,serverHooks:b}=R;async function C(e,t,n){n.requestMeta&&(0,r.setRequestMeta)(e,n.requestMeta),R.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/agent/chats/route";x=x.replace(/\/index$/,"")||"/";let _=await R.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!_)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:v,params:w,nextConfig:S,parsedUrl:k,isDraftMode:b,prerenderManifest:C,routerServerContext:E,isOnDemandRevalidate:A,revalidateOnlyGenerated:T,resolvedPathname:N,clientReferenceManifest:q,serverActionsManifest:O}=_,j=(0,i.normalizeAppPath)(x),U=!!(C.dynamicRoutes[j]||C.routes[N]),D=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,k,!1):t.end("This page could not be found"),null);if(U&&!b){let e=!!C.routes[N],t=C.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(S.adapterPath)return await D();throw new f.NoFallbackError}}let I=null;!U||R.isDev||b||(I="/index"===(I=N)?"/":I);let $=!0===R.isDev||!U,P=U&&!$;O&&q&&(0,o.setManifestsSingleton)({page:x,clientReferenceManifest:q,serverActionsManifest:O});let M=e.method||"GET",F=(0,a.getTracer)(),H=F.getActiveScopeSpan(),B=!!(null==E?void 0:E.isWrappedByNextServer),L=!!(0,r.getRequestMeta)(e,"minimalMode"),G=(0,r.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,S,C,L);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let K={params:w,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:$,incrementalCache:G,cacheLifeProfiles:S.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,s,n,r)=>R.onRequestError(e,t,n,r,E)},sharedContext:{buildId:v}},J=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),Y=d.NextRequestAdapter.fromNodeNextRequest(J,(0,d.signalFromNodeResponse)(t));try{let r,o=async e=>R.handle(Y,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=F.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==u.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=`${M} ${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(`${M} ${x}`)}),i=async r=>{var a,i;let l=async({previousCacheEntry:s})=>{try{if(!L&&A&&T&&!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=K.renderOpts.fetchMetrics;let i=K.renderOpts.pendingWaitUntil;i&&n.waitUntil&&(n.waitUntil(i),i=void 0);let l=K.renderOpts.collectedTags;if(!U)return await (0,p.sendResponse)(J,W,a,K.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:y.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 R.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:A})},!1,E),t}},d=await R.handleResponse({req:e,nextConfig:S,cacheKey:I,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:L});if(!U)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",A?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return L&&U||u.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(J,W,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};B&&H?await i(H):(r=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${x}`,kind:a.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},i),void 0,!B))}catch(t){if(t instanceof f.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:A})},!1,E),U)throw t;return await (0,p.sendResponse)(J,W,new Response(null,{status:500})),null}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:k})},"routeModule",0,R,"serverHooks",0,b,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,k],8043)}];
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__12jomao._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[96735,e=>{"use strict";e.i(91530),e.s([],96735)},75550,e=>{"use strict";var t=e.i(2157),s=e.i(50227),i=e.i(43427);e.i(96735);var r=e.i(54853),n=e.i(5737);e.i(27174);var o=e.i(79357);let l=["<command-name>","<local-command","Base directory for this skill:","<task-notification>","[SYSTEM NOTIFICATION","Caveat: the messages below"];function a(){return(0,i.cclensPath)("agent-index")}function m(e){return(0,s.join)(a(),`${e}.json`)}let c=globalThis.__fleetlensAgentIndex??={memory:new Map,lastRefreshMs:null,inflight:null,progressListeners:new Set};async function f(e){let f=await Promise.all(i.agentSources.map(e=>e.listSessions().catch(()=>[]))),u=new Set,d=[],y=0;for(let e=0;e<i.agentSources.length;e++)for(let s of f[e]){let r;u.add(s.id);try{r=(0,t.statSync)(s.filePath)}catch{continue}let n=c.memory.get(s.id)??function(e){try{let s=(0,t.readFileSync)(m(e),"utf8"),i=JSON.parse(s);return 2===i.version?i:null}catch{return null}}(s.id);if(n&&2===n.version&&n.mtimeMs===r.mtimeMs&&n.sizeBytes===r.size){c.memory.set(s.id,n),y++;continue}d.push({meta:s,source:i.agentSources[e],mtimeMs:r.mtimeMs,sizeBytes:r.size})}for(let e of c.memory.keys())u.has(e)||c.memory.delete(e);try{for(let e of(0,t.readdirSync)(a())){if(!e.endsWith(".json"))continue;let i=e.slice(0,-5);u.has(i)||(0,t.rmSync)((0,s.join)(a(),e),{force:!0})}}catch{}let h=d.length+y,g=function(e){let t=new Map;if(0===e.size)return t;for(let s of(0,n.listEntryKeys)()){let i=(0,r.parseEntryKey)(s);if(!i||!e.has(i.session_id))continue;let o=(0,n.readEntry)(i.session_id,i.local_day),l=o?.enrichment?.brief_summary;if(!l)continue;let a=t.get(i.session_id)??[];a.push(l),t.set(i.session_id,a)}return t}(new Set(d.map(e=>e.meta.id))),p=0;for(let{meta:s,source:r,mtimeMs:n,sizeBytes:f}of(e?.({built:p,reused:y,total:h}),d)){try{let e=await r.getSession(s.id);if(!e)continue;let u=function(e,t){let s=[],i=0,r=!1;for(let t of e.events)if(("user"===t.role||"agent"===t.role)&&("user"!==t.role||!t.teammateMessage)){for(let e of t.blocks){if("text"!==e.type||"string"!=typeof e.text||l.some(t=>e.text.startsWith(t)))continue;let n=e.text.replace(/<system-reminder>[\s\S]*?<\/system-reminder>/g,"").trimEnd();if(n.trim()){if(n.length>4e3&&(n=n.slice(0,4e3),r=!0),i+n.length>3e5){r=!0;break}i+=n.length,s.push({role:t.role,text:n,idx:t.index})}}if(i>=3e5)break}let n=s.find(e=>"user"===e.role),a=(e.firstUserPreview?.trim()||n?.text.trim()||"(untitled session)").replace(/\s+/g," ").slice(0,120),m=e.firstTimestamp?Date.parse(e.firstTimestamp):NaN;return{version:2,sessionId:e.id,agent:e.agent??"claude-code",project:(0,o.canonicalProjectName)(e.projectName),...e.repoName?{repoName:e.repoName}:{},day:Number.isNaN(m)?"":(0,o.toLocalDay)(m),startIso:e.firstTimestamp,endIso:e.lastTimestamp,title:a,chunks:s,...r?{truncated:r}:{},mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes}}(e,{mtimeMs:n,sizeBytes:f});for(let e of g.get(s.id)??[])u.chunks.unshift({role:"summary",text:e});!function(e){(0,t.mkdirSync)(a(),{recursive:!0});let s=m(e.sessionId),i=`${s}.tmp.${process.pid}`;(0,t.writeFileSync)(i,JSON.stringify(e),"utf8"),(0,t.renameSync)(i,s)}(u),c.memory.set(s.id,u),(0,i.invalidateFile)(s.filePath)}catch{}(++p%20==0||p===d.length)&&e?.({built:p,reused:y,total:h})}return c.lastRefreshMs=Date.now(),Array.from(c.memory.values())}e.s(["ensureIndex",0,function(e,t){return(e&&c.progressListeners.add(e),c.inflight)?c.inflight:!t?.force&&c.memory.size>0&&null!==c.lastRefreshMs&&Date.now()-c.lastRefreshMs<15e3?(e&&c.progressListeners.delete(e),Promise.resolve(Array.from(c.memory.values()))):(c.inflight=f(e=>{for(let t of c.progressListeners)try{t(e)}catch{}}).finally(()=>{c.inflight=null,c.progressListeners.clear()}),c.inflight)},"indexIsEmpty",0,function(){return 0===c.memory.size&&!(0,t.existsSync)(a())},"indexStats",0,function(){let e=c.memory.size;if(0===e)try{e=(0,t.readdirSync)(a()).filter(e=>e.endsWith(".json")).length}catch{e=0}return{sessions:e,lastRefreshMs:c.lastRefreshMs,building:null!==c.inflight}},"peekDocs",0,function(){return Array.from(c.memory.values())}],75550)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_132c.4p._.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module.exports=[19173,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),h=e.i(70101),f=e.i(74838),m=e.i(10372),g=e.i(93695);e.i(52474);var y=e.i(220);function w(e,t){return{jsonrpc:"2.0",id:e,result:t}}function x(e,t,r){return{jsonrpc:"2.0",id:e,error:{code:t,message:r}}}async function R(e,t){if("object"!=typeof e||null===e||Array.isArray(e))return x(null,-32600,"invalid request");if("string"!=typeof e.method)return x(e.id??null,-32600,"invalid request");if(void 0===e.id)return null;let r=e.id??null;switch(e.method){case"initialize":{let t=e.params?.protocolVersion;return w(r,{protocolVersion:"string"==typeof t?t:"2025-06-18",capabilities:{tools:{}},serverInfo:{name:"fleetlens",version:"0.16.0"}})}case"ping":return w(r,{});case"tools/list":return w(r,{tools:t.defs});case"tools/call":{let s=e.params?.name,n=e.params?.arguments??{};if("string"!=typeof s)return x(r,-32602,"tools/call requires params.name");try{let e=await t.call(s,n);return w(r,{content:[{type:"text",text:e}]})}catch(e){return w(r,{content:[{type:"text",text:e.message}],isError:!0})}}default:return x(r,-32601,`method not found: ${e.method}`)}}var v=e.i(43427),b=e.i(86040),j=e.i(75550);let C={user:2,summary:3,agent:1};function E(e,t,r){let s=Math.max(0,t-120),n=Math.min(e.length,t+r+120),a=e.slice(s,n).replace(/\s+/g," ").trim();return`${s>0?"…":""}${a}${n<e.length?"…":""}`}async function _(e){let t=await (0,j.ensureIndex)(),r=Math.min(Math.max(1,e.limit??10),25),{hits:s,total:n}=function(e,t,r={}){let s,{terms:n,phrases:a}=(s=[],{terms:Array.from(new Set(t.replace(/"([^"]+)"/g,(e,t)=>(s.push(t.toLowerCase())," ")).toLowerCase().split(/[^\p{L}\p{N}_./-]+/u).filter(e=>e.length>=2))),phrases:s});if(0===n.length&&0===a.length)return{hits:[],total:0};let i=Date.now(),o=[];for(let t of e){var l;if((l=r.filters)&&(l.project&&t.project!==l.project||l.agent&&t.agent!==l.agent||l.after&&t.day<l.after||l.before&&t.day>l.before))continue;let e=t.title.toLowerCase(),s=new Set,c=0,u=[],d=!0;for(let r of a){let n=!1;for(let s of(e.includes(r)&&(n=!0,c+=8),t.chunks)){let e=s.text.toLowerCase().indexOf(r);-1!==e&&(n=!0,c+=(C[s.role]??1)*2,u.length<3&&u.push({role:s.role,text:E(s.text,e,r.length)}))}if(!n){d=!1;break}s.add(`"${r}"`)}if(!d)continue;for(let r of n){let n=0;for(let s of(e.includes(r)&&(n+=4),t.chunks)){let e=s.text.toLowerCase(),t=function(e,t){let r=0,s=e.indexOf(t);for(;-1!==s;)r++,s=e.indexOf(t,s+t.length);return r}(e,r);if(0!==t&&(n+=(C[s.role]??1)*(1+Math.log2(t)))>0&&u.length<3){let t=e.indexOf(r);u.push({role:s.role,text:E(s.text,t,r.length)})}}n>0&&(s.add(r),c+=n)}if(0===s.size)continue;let p=t.startIso?Date.parse(t.startIso):NaN,h=Math.pow(.5,(Number.isNaN(p)?5184e6:Math.max(0,i-p))/5184e6),f=+(s.size===n.length+a.length);o.push({sessionId:t.sessionId,agent:t.agent,project:t.project,day:t.day,title:t.title,score:1e6*f+c*(.25+.75*h),matchedTerms:Array.from(s),snippets:u.slice(0,3)})}o.sort((e,t)=>t.score-e.score||t.day.localeCompare(e.day));let c=r.limit??10;return{hits:o.slice(0,c),total:o.length}}(t,e.query,{limit:r,filters:{project:e.project,agent:e.agent,after:e.after,before:e.before}});return JSON.stringify({indexed_sessions:(0,j.indexStats)().sessions,total_matches:n,hits:s.map(e=>({session_id:e.sessionId,url:`/sessions/${e.sessionId}`,agent:e.agent,project:e.project,day:e.day,title:e.title,matched_terms:e.matchedTerms,snippets:e.snippets}))})}async function A(e){let t=(await (0,j.ensureIndex)()).find(t=>t.sessionId===e.session_id);if("full_text"===e.mode){if(!t)throw Error(`session not found in index: ${e.session_id}`);let r=`# Session ${t.sessionId}
|
|
2
|
+
project: ${t.project}
|
|
3
|
+
day: ${t.day}
|
|
4
|
+
agent: ${t.agent}
|
|
5
|
+
|
|
6
|
+
`;for(let e of t.chunks){let t=`[${e.role}] ${e.text}
|
|
7
|
+
|
|
8
|
+
`;if(r.length+t.length>48e3){r+="…(truncated)";break}r+=t}return r}let r=await (0,v.getAnySession)(e.session_id);if(!r)throw Error(`session not found: ${e.session_id}`);let s=t?.chunks.filter(e=>"summary"===e.role).map(e=>e.text)??[];return(s.length?`## AI summary
|
|
9
|
+
${s.join("\n")}
|
|
10
|
+
|
|
11
|
+
`:"")+(0,b.summarizeSessionForAI)(r)}async function S(e){let t=await (0,j.ensureIndex)(),r=Math.min(Math.max(1,e.limit??20),100),s=t.filter(t=>(!e.project||t.project===e.project)&&(!e.agent||t.agent===e.agent)&&(!e.after||t.day>=e.after)&&(!e.before||t.day<=e.before)).sort((e,t)=>(t.startIso??"").localeCompare(e.startIso??""));return JSON.stringify({total:s.length,sessions:s.slice(0,r).map(e=>({session_id:e.sessionId,url:`/sessions/${e.sessionId}`,agent:e.agent,project:e.project,day:e.day,title:e.title}))})}async function I(){let e=await (0,j.ensureIndex)(),t=new Map;for(let r of e){let e=t.get(r.project)??{sessions:0,lastDay:""};e.sessions++,r.day>e.lastDay&&(e.lastDay=r.day),t.set(r.project,e)}return JSON.stringify({projects:Array.from(t.entries()).map(([e,t])=>({project:e,...t})).sort((e,t)=>t.lastDay.localeCompare(e.lastDay))})}let M={defs:[{name:"search_sessions",description:"Full-text search across every locally recorded coding-agent session (Claude Code, Codex, Gemini, …). Searches what the user and the agent actually said, plus AI-written session summaries. Multi-word queries are ranked-OR (sessions matching all words rank first); wrap a phrase in double quotes for exact match. Returns ranked hits with snippets and a dashboard url per session. Run several differently-worded searches when the first one isn't conclusive.",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search terms. Quote phrases for exact match."},project:{type:"string",description:"Exact canonical project path filter, e.g. /Users/me/Repo/foo"},agent:{type:"string",description:"Agent source filter: claude-code | codex | gemini-cli | …"},after:{type:"string",description:"Only sessions starting on/after this local day (YYYY-MM-DD)"},before:{type:"string",description:"Only sessions starting on/before this local day (YYYY-MM-DD)"},limit:{type:"number",description:"Max hits to return (default 10, max 25)"}},required:["query"]}},{name:"get_session",description:"Fetch one session by id. mode=summary (default) returns a compact structured digest: metadata, first user message, turn-by-turn timeline, PRs shipped, errors, final message. mode=full_text returns the raw conversational text (user + agent messages, capped). Use summary first; full_text only when you need exact wording.",inputSchema:{type:"object",properties:{session_id:{type:"string"},mode:{type:"string",enum:["summary","full_text"]}},required:["session_id"]}},{name:"list_sessions",description:"List recent sessions (newest first) with title, project, day, and agent. Use for time- or project-scoped questions like 'what did I work on last Tuesday' — filter with after/before/project.",inputSchema:{type:"object",properties:{project:{type:"string",description:"Exact canonical project path filter"},agent:{type:"string"},after:{type:"string",description:"YYYY-MM-DD inclusive"},before:{type:"string",description:"YYYY-MM-DD inclusive"},limit:{type:"number",description:"Default 20, max 100"}}}},{name:"list_projects",description:"List every project that has recorded sessions, with session counts and the most recent activity day.",inputSchema:{type:"object",properties:{}}}],call:async(e,t)=>{switch(e){case"search_sessions":return _(t);case"get_session":return A(t);case"list_sessions":return S(t);case"list_projects":return I();default:throw Error(`unknown tool: ${e}`)}}};async function N(e){let t;try{t=await e.json()}catch{return Response.json({jsonrpc:"2.0",id:null,error:{code:-32700,message:"parse error"}},{status:400})}let r=await R(t,M);return null===r?new Response(null,{status:202}):Response.json(r)}e.s(["GET",0,function(){return new Response(null,{status:405})},"POST",0,N,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],68780);var O=e.i(68780);let T=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/agent/mcp/route",pathname:"/api/agent/mcp",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/agent/mcp/route.ts",nextConfigOutput:"standalone",userland:O,...{}}),{workAsyncStorage:q,workUnitAsyncStorage:D,serverHooks:P}=T;async function $(e,t,s){s.requestMeta&&(0,n.setRequestMeta)(e,s.requestMeta),T.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/agent/mcp/route";w=w.replace(/\/index$/,"")||"/";let x=await T.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!x)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:R,params:v,nextConfig:b,parsedUrl:j,isDraftMode:C,prerenderManifest:E,routerServerContext:_,isOnDemandRevalidate:A,revalidateOnlyGenerated:S,resolvedPathname:I,clientReferenceManifest:M,serverActionsManifest:N}=x,O=(0,o.normalizeAppPath)(w),q=!!(E.dynamicRoutes[O]||E.routes[I]),D=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,j,!1):t.end("This page could not be found"),null);if(q&&!C){let e=!!E.routes[I],t=E.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await D();throw new g.NoFallbackError}}let P=null;!q||T.isDev||C||(P="/index"===(P=I)?"/":P);let $=!0===T.isDev||!q,k=q&&!$;N&&M&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:M,serverActionsManifest:N});let U=e.method||"GET",H=(0,a.getTracer)(),Y=H.getActiveScopeSpan(),L=!!(null==_?void 0:_.isWrappedByNextServer),F=!!(0,n.getRequestMeta)(e,"minimalMode"),K=(0,n.getRequestMeta)(e,"incrementalCache")||await T.getIncrementalCache(e,b,E,F);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let B={params:v,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:$,incrementalCache:K,cacheLifeProfiles:b.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>T.onRequestError(e,t,s,n,_)},sharedContext:{buildId:R}},z=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),V=c.NextRequestAdapter.fromNodeNextRequest(z,(0,c.signalFromNodeResponse)(t));try{let n,i=async e=>T.handle(V,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${U} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",s),n.updateName(t))}else e.updateName(`${U} ${w}`)}),o=async n=>{var a,o;let l=async({previousCacheEntry:r})=>{try{if(!F&&A&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=B.renderOpts.fetchMetrics;let o=B.renderOpts.pendingWaitUntil;o&&s.waitUntil&&(s.waitUntil(o),o=void 0);let l=B.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(z,G,a,B.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 r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,s=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await T.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:A})},!1,_),t}},c=await T.handleResponse({req:e,nextConfig:b,cacheKey:P,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:S,responseGenerator:l,waitUntil:s.waitUntil,isMinimalMode:F});if(!q)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(o=c.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});F||t.setHeader("x-nextjs-cache",A?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return F&&q||u.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,f.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(z,G,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};L&&Y?await o(Y):(n=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${U} ${w}`,kind:a.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},o),void 0,!L))}catch(t){if(t instanceof g.NoFallbackError||await T.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:A})},!1,_),q)throw t;return await (0,p.sendResponse)(z,G,new Response(null,{status:500})),null}}e.s(["handler",0,$,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:q,workUnitAsyncStorage:D})},"routeModule",0,T,"serverHooks",0,P,"workAsyncStorage",0,q,"workUnitAsyncStorage",0,D],19173)}];
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_0sr4wr_.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module.exports=[50966,e=>{"use strict";var t=e.i(47909),n=e.i(74017),s=e.i(96250),a=e.i(59756),r=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),c=e.i(95169),d=e.i(47587),p=e.i(66012),h=e.i(70101),g=e.i(74838),f=e.i(10372),m=e.i(93695);e.i(52474);var y=e.i(220),w=e.i(2157),R=e.i(50227),v=e.i(43427);e.i(82111);var b=e.i(86291),C=e.i(56614),x=e.i(90555),E=e.i(75550),A=e.i(83740);let S=[{label:"What did I work on yesterday?",category:"recap"},{label:"Find the sessions behind my most recent fix",category:"find"},{label:"Which projects did I touch this week, and what happened in each?",category:"synthesize"},{label:"Draft a prompt to continue my most recent feature work, with full context",category:"handoff"}];function k(e){let t=e.split("/").filter(Boolean);return t[t.length-1]??e}function N(e,t){let n=t-6048e5,s=new Map;for(let t of e){let e=t.startIso?Date.parse(t.startIso):NaN;if(Number.isNaN(e)||e<n)continue;let a=s.get(t.project)??{display:k(t.project),sessions:0,lastDay:""};a.sessions++,t.day>a.lastDay&&(a.lastDay=t.day),t.repoName&&(a.display=t.repoName),s.set(t.project,a)}return Array.from(s.entries()).map(([e,t])=>({project:e,...t})).sort((e,t)=>t.lastDay.localeCompare(e.lastDay)||t.sessions-e.sessions)}function D(e,t){let n=N(e,t),s=n[0];if(!s)return S;let a=n[1];return[{label:"What did I work on yesterday?",category:"recap"},a?{label:`Find the sessions where I worked on ${a.display}`,category:"find"}:{label:"Find the sessions behind my most recent fix",category:"find"},{label:`Summarize this week's work on ${s.display}`,category:"synthesize"},{label:`Draft a prompt to continue my latest ${s.display} work, with full context`,category:"handoff"}]}let I=`You write the four suggestion chips shown on the empty state of an agent that searches the user's local coding-agent session history (their own past Claude Code / Codex / Gemini conversations).
|
|
2
|
+
|
|
3
|
+
You will receive a digest of their recent activity. Produce EXACTLY four chips, one per category:
|
|
4
|
+
- "recap" — a time-scoped "what happened" question (yesterday / this week)
|
|
5
|
+
- "find" — locate specific past sessions about a concrete thing they worked on
|
|
6
|
+
- "synthesize" — a cross-session summary or comparison
|
|
7
|
+
- "handoff" — draft a context-pack prompt to continue their current work in a fresh agent session
|
|
8
|
+
|
|
9
|
+
Rules:
|
|
10
|
+
- Write in the user's first-person voice, as something they would click ("What did I…", "Find…", "Draft a prompt…").
|
|
11
|
+
- Anchor chips in CONCRETE topics from the session titles and summaries — the feature, bug, or artifact itself ("the usage daemon fix", "the onboarding wizard"), not just repository names. A project name may appear in at most two of the four labels; a label with a topic and no project name is often better.
|
|
12
|
+
- Use project display names exactly as given in the digest.
|
|
13
|
+
- Specific and tempting beats generic. ≤ 90 characters per label.
|
|
14
|
+
- Output ONLY a JSON array: [{"label": "...", "category": "recap|find|synthesize|handoff"}, ...] — no prose, no markdown fence.`,O=A.z.array(A.z.object({label:A.z.string().min(1),category:A.z.enum(["recap","find","synthesize","handoff"])})).length(4).refine(e=>4===new Set(e.map(e=>e.category)).size);function T(){return(0,v.cclensPath)("agent-suggestions.json")}let P=globalThis.__fleetlensAgentSuggestions??={refreshing:null,lastAttemptMs:0};e.s(["GET",0,function(){var e;let t=function(){try{let e=JSON.parse((0,w.readFileSync)(T(),"utf8"));return 1===e.version&&Array.isArray(e.suggestions)&&4===e.suggestions.length?e:null}catch{return null}}();if((0,E.indexIsEmpty)())return Response.json({suggestions:t?.suggestions??S,source:t?"llm-stale":"fallback",refreshing:!1});let n=(0,E.peekDocs)();if(0===n.length||(0,E.indexStats)().building)return 0===n.length&&(0,E.ensureIndex)().catch(()=>{}),Response.json({suggestions:t?.suggestions??(n.length?D(n,Date.now()):S),source:t?"llm-stale":"fallback",refreshing:!0});let s=D(n,Date.now());if(!(0,C.readSettings)().ai_features.enabled)return Response.json({suggestions:s,source:"deterministic",refreshing:!1});let a=function(e){let t="",n="";for(let s of e){let e=s.startIso??"";e>t&&(t=e,n=s.sessionId)}return`${n}|${t}|${e.length}`}(n);return null!==t&&t.input_key===a&&Date.now()-Date.parse(t.generated_at)<864e5?Response.json({suggestions:t.suggestions,source:"llm",refreshing:!1}):(e=function(e,t){let n=new Date(t),s=[];s.push(`Today: ${n.toLocaleDateString("en-CA")} (${n.toLocaleDateString("en-US",{weekday:"long"})})`);let a=N(e,t).slice(0,3);for(let e of(s.push("","Most active projects (last 7 days):"),a))s.push(`- ${e.display} — ${e.sessions} sessions, last active ${e.lastDay}`);let r=e=>e.repoName??k(e.project),o=[...e].sort((e,t)=>(t.startIso??"").localeCompare(e.startIso??"")).slice(0,8);for(let e of(s.push("","Most recent sessions:"),o))s.push(`- [${e.day}] ${r(e)}: ${e.title}`);let i=[];for(let e of o){for(let t of e.chunks)if("summary"===t.role&&(i.push(`- ${r(e)}: ${t.text}`),i.length>=6))break;if(i.length>=6)break}return i.length>0&&(s.push("","AI summaries of recent sessions:"),s.push(...i)),s.join("\n")}(n,Date.now()),P.refreshing||Date.now()-P.lastAttemptMs<3e5||(0,b.interactiveLockFresh)(Date.now())||(P.lastAttemptMs=Date.now(),P.refreshing=(async()=>{try{var t;let n,s,r=await (0,x.runClaudeSubprocess)({systemPrompt:I,model:"haiku",userPrompt:e}),o=function(e){let t=e.indexOf("[");if(-1===t)return null;for(let n=e.lastIndexOf("]");n>t;n=e.lastIndexOf("]",n-1))try{let s=O.safeParse(JSON.parse(e.slice(t,n+1)));if(!s.success)return null;return s.data.map(e=>({...e,label:e.label.slice(0,120)}))}catch{}return null}(r.content);o&&(t={version:1,generated_at:new Date().toISOString(),input_key:a,model:r.model,suggestions:o},n=T(),(0,w.mkdirSync)((0,R.dirname)(n),{recursive:!0}),s=`${n}.tmp.${process.pid}`,(0,w.writeFileSync)(s,JSON.stringify(t,null,2),"utf8"),(0,w.renameSync)(s,n))}catch{}})().finally(()=>{P.refreshing=null})),Response.json({suggestions:t?.suggestions??s,source:t?"llm-stale":"deterministic",refreshing:null!==P.refreshing}))},"dynamic",0,"force-dynamic","runtime",0,"nodejs"],66807);var _=e.i(66807);let $=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/agent/suggestions/route",pathname:"/api/agent/suggestions",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/agent/suggestions/route.ts",nextConfigOutput:"standalone",userland:_,...{}}),{workAsyncStorage:j,workUnitAsyncStorage:M,serverHooks:q}=$;async function U(e,t,s){s.requestMeta&&(0,a.setRequestMeta)(e,s.requestMeta),$.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/agent/suggestions/route";w=w.replace(/\/index$/,"")||"/";let R=await $.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:v,params:b,nextConfig:C,parsedUrl:x,isDraftMode:E,prerenderManifest:A,routerServerContext:S,isOnDemandRevalidate:k,revalidateOnlyGenerated:N,resolvedPathname:D,clientReferenceManifest:I,serverActionsManifest:O}=R,T=(0,i.normalizeAppPath)(w),P=!!(A.dynamicRoutes[T]||A.routes[D]),_=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,x,!1):t.end("This page could not be found"),null);if(P&&!E){let e=!!A.routes[D],t=A.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await _();throw new m.NoFallbackError}}let j=null;!P||$.isDev||E||(j="/index"===(j=D)?"/":j);let M=!0===$.isDev||!P,q=P&&!M;O&&I&&(0,o.setManifestsSingleton)({page:w,clientReferenceManifest:I,serverActionsManifest:O});let U=e.method||"GET",H=(0,r.getTracer)(),F=H.getActiveScopeSpan(),z=!!(null==S?void 0:S.isWrappedByNextServer),L=!!(0,a.getRequestMeta)(e,"minimalMode"),K=(0,a.getRequestMeta)(e,"incrementalCache")||await $.getIncrementalCache(e,C,A,L);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let W={params:b,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:M,incrementalCache:K,cacheLifeProfiles:C.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,s,a)=>$.onRequestError(e,t,s,a,S)},sharedContext:{buildId:v}},B=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let a,o=async e=>$.handle(J,W).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")!==c.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=`${U} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t),a&&a!==e&&(a.setAttribute("http.route",s),a.updateName(t))}else e.updateName(`${U} ${w}`)}),i=async a=>{var r,i;let l=async({previousCacheEntry:n})=>{try{if(!L&&k&&N&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await o(a);e.fetchMetrics=W.renderOpts.fetchMetrics;let i=W.renderOpts.pendingWaitUntil;i&&s.waitUntil&&(s.waitUntil(i),i=void 0);let l=W.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(B,G,r,W.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(r.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,s=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:s}}}}catch(t){throw(null==n?void 0:n.isStale)&&await $.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:k})},!1,S),t}},u=await $.handleResponse({req:e,nextConfig:C,cacheKey:j,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:N,responseGenerator:l,waitUntil:s.waitUntil,isMinimalMode:L});if(!P)return null;if((null==u||null==(r=u.value)?void 0:r.kind)!==y.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",k?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&P||c.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,g.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(B,G,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};z&&F?await i(F):(a=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(c.BaseServerSpan.handleRequest,{spanName:`${U} ${w}`,kind:r.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},i),void 0,!z))}catch(t){if(t instanceof m.NoFallbackError||await $.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:k})},!1,S),P)throw t;return await (0,p.sendResponse)(B,G,new Response(null,{status:500})),null}}e.s(["handler",0,U,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:M})},"routeModule",0,$,"serverHooks",0,q,"workAsyncStorage",0,j,"workUnitAsyncStorage",0,M],50966)}];
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_0z_xi9k.js.map
|