fleetlens 1.0.1 → 1.0.3
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 +1 -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 +6 -0
- 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.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.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/agent/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/events/route.js +3 -1
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/events/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/messages/route.js +1 -1
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/messages/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/route.js +3 -1
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/stop/route.js +3 -1
- package/app/apps/web/.next/server/app/api/agent/chats/[id]/stop/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/agent/chats/route.js +3 -1
- package/app/apps/web/.next/server/app/api/agent/chats/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/agent/index/route.js +1 -1
- package/app/apps/web/.next/server/app/api/agent/index/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/agent/mcp/route.js +3 -3
- package/app/apps/web/.next/server/app/api/agent/mcp/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/agent/suggestions/route.js +1 -1
- package/app/apps/web/.next/server/app/api/agent/suggestions/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/ask/route.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/health/route/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/api/health/route/build-manifest.json +9 -0
- package/app/apps/web/.next/server/app/api/health/route/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/api/health/route.js +7 -0
- package/app/apps/web/.next/server/app/api/health/route.js.map +5 -0
- package/app/apps/web/.next/server/app/api/health/route.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/api/health/route_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/api/pdf/[key]/route.js +1 -1
- 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 +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/settings/credentials/route.js +1 -1
- 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 +1 -1
- package/app/apps/web/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/team/onboarding/start/route.js +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 +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/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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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 +1 -0
- package/app/apps/web/.next/server/chunks/{[root-of-the-server]__038-.1r._.js → [root-of-the-server]__0-09rjv._.js} +2 -2
- package/app/apps/web/.next/server/chunks/{[root-of-the-server]__0_5tf-2._.js → [root-of-the-server]__01oercw._.js} +5 -5
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__02.51sr._.js +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__057w7kr._.js +28 -0
- package/app/apps/web/.next/server/chunks/{[root-of-the-server]__0pirsh0._.js → [root-of-the-server]__07b5796._.js} +2 -2
- package/app/apps/web/.next/server/chunks/{[root-of-the-server]__02puo0u._.js → [root-of-the-server]__07xaqv3._.js} +2 -2
- package/app/apps/web/.next/server/chunks/{[root-of-the-server]__06xto5z._.js → [root-of-the-server]__08c24et._.js} +2 -2
- package/app/apps/web/.next/server/chunks/{[root-of-the-server]__0mvl0qn._.js → [root-of-the-server]__08m2h38._.js} +2 -2
- package/app/apps/web/.next/server/chunks/{[root-of-the-server]__0mx_9mb._.js → [root-of-the-server]__0c7ght_._.js} +2 -2
- package/app/apps/web/.next/server/chunks/{[root-of-the-server]__12iid50._.js → [root-of-the-server]__0l5i8nk._.js} +2 -2
- package/app/apps/web/.next/server/chunks/{[root-of-the-server]__04g-b-m._.js → [root-of-the-server]__0mcer3z._.js} +2 -2
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0o9lsie._.js +30 -0
- package/app/apps/web/.next/server/chunks/{[root-of-the-server]__0367vbv._.js → [root-of-the-server]__0ozooam._.js} +2 -2
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0uf_ch4._.js +28 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0uiom2m._.js +28 -0
- package/app/apps/web/.next/server/chunks/{[root-of-the-server]__096_llw._.js → [root-of-the-server]__0usaajs._.js} +2 -2
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0zyh554._.js +3 -0
- package/app/apps/web/.next/server/chunks/{[root-of-the-server]__0gvw6dk._.js → [root-of-the-server]__0~4wgaf._.js} +2 -2
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0~~bpcw._.js +3 -0
- package/app/apps/web/.next/server/chunks/{[root-of-the-server]__01~cgp8._.js → [root-of-the-server]__10.g-w1._.js} +2 -2
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__12vjv4c._.js +28 -0
- package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_health_route_actions_08i7v0h.js +3 -0
- package/app/apps/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0sr4wr_.js +3 -3
- package/app/apps/web/.next/server/chunks/packages_entries_dist_node_0bckr7-.js +19 -19
- package/app/apps/web/.next/server/chunks/ssr/_0k8yioi._.js +1 -1
- 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/functions-config-manifest.json +1 -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/0ntt~a0712~pv.js +14 -0
- package/app/apps/web/app/api/ask/route.ts +8 -2
- package/app/apps/web/app/api/health/route.ts +12 -0
- package/app/apps/web/lib/agent/run.ts +11 -2
- 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/dist/daemon-worker.js +377 -50
- package/dist/index.js +204 -114
- package/menubar/Fleetlens.app/Contents/Info.plist +2 -2
- package/menubar/Fleetlens.app/Contents/MacOS/FleetlensMenubar +0 -0
- package/package.json +1 -1
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__02faosk._.js +0 -30
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__02petpy._.js +0 -3
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__09cgmam._.js +0 -28
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0sbhe0s._.js +0 -3
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0tk8p3d._.js +0 -28
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0u6pamj._.js +0 -28
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__12jomao._.js +0 -28
- package/app/apps/web/.next/static/chunks/03vmnii5njgx2.js +0 -14
- /package/app/apps/web/.next/static/{3_tJh8qOJtVg59IUgLbCS → Shk_TH0B6lHs9cBZekkf5}/_buildManifest.js +0 -0
- /package/app/apps/web/.next/static/{3_tJh8qOJtVg59IUgLbCS → Shk_TH0B6lHs9cBZekkf5}/_clientMiddlewareManifest.js +0 -0
- /package/app/apps/web/.next/static/{3_tJh8qOJtVg59IUgLbCS → Shk_TH0B6lHs9cBZekkf5}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module.exports=[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"))},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"))},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"))},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 s(e=new Date){let t=new Date(e.getFullYear(),e.getMonth(),e.getDate()),n=t.getDay(),r=new Date(t);r.setDate(t.getDate()-(n+6)%7);let a=new Date(r);return a.setDate(r.getDate()+6),{start:r,end:a}}e.s(["aggregateConcurrency",0,function(e,t){let s,r=function(e,t){let n=[],s=new Date(e.getFullYear(),e.getMonth(),e.getDate()),r=new Date(t.getFullYear(),t.getMonth(),t.getDate());for(;s.getTime()<=r.getTime();)n.push(new Date(s)),s.setDate(s.getDate()+1);return n}(t.start,t.end),a=new Map;for(let e of r)a.set(n(e),{peak:0,has_cross_project:!1});for(let t of e){let e=n(new Date(t.startMs)),s=a.get(e);s&&(t.peak>s.peak&&(s.peak=t.peak),t.crossProject&&(s.has_cross_project=!0))}let o=r.map(e=>{let t=n(e),s=a.get(t);return{date:t,peak:s.peak,has_cross_project:s.has_cross_project}}),i=0,l=0,u=0;for(let e of o)e.peak>i&&(i=e.peak,s=e.date),e.peak>=3&&l++,e.has_cross_project&&u++;return{by_day:o,peak:i,peak_day:s,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,s,"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=s(e),n=new Date(t.start);n.setDate(t.start.getDate()-1);let r=new Date(n);return r.setDate(n.getDate()-6),{start:r,end:n}}])},45092,84497,84777,e=>{"use strict";var t=e.i(74533),n=e.i(2157),s=e.i(50227),r=e.i(66680),a=e.i(43427);e.i(82111);var o=e.i(81454);function i(){return(0,a.cclensPath)("agent-chats")}function l(e){return(0,s.join)(i(),`${e}.json`)}function u(e){(0,n.mkdirSync)(i(),{recursive:!0});let t=l(e.id),s=`${t}.tmp.${process.pid}`;(0,n.writeFileSync)(s,JSON.stringify(e),"utf8"),(0,n.renameSync)(s,t)}function d(e){if(!/^[a-zA-Z0-9-]+$/.test(e))return null;try{let t=JSON.parse((0,n.readFileSync)(l(e),"utf8"));return 1===t.version?t:null}catch{return null}}function c(){return{role:"assistant",segments:[]}}function p(e,t){if(t.seq<=e.lastSeq)return e;let n=[...e.messages],s=n[n.length-1];s&&"assistant"===s.role||(s=c(),n.push(s));let r={...s,segments:[...s.segments]};n[n.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:n,status:a,lastSeq:t.seq,updated_at:new Date().toISOString()}}function h(){let e=new Date,t=e.toLocaleDateString("en-CA"),n=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 ${n}, ${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,n.rmSync)(l(e),{force:!0})},"listChats",0,function(){if(!(0,n.existsSync)(i()))return[];let e=[];for(let t of(0,n.readdirSync)(i())){if(!t.endsWith(".json"))continue;let n=d(t.slice(0,-5));n&&e.push({id:n.id,title:n.title,updated_at:n.updated_at,status:n.status,messageCount:n.messages.length})}return e.sort((e,t)=>t.updated_at.localeCompare(e.updated_at)),e},"readChat",0,d,"writeChat",0,u],84497),e.s(["applyRunEvent",0,p,"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,c],84777);let g=globalThis.__fleetlensAgentRuns??={runs:new Map};e.s(["MAX_CONCURRENT_RUNS",0,3,"activeRunCount",0,function(){return g.runs.size},"discardRun",0,function(e){let t=g.runs.get(e);t&&(t.stoppedByUser=!0,t.discarded=!0,g.runs.delete(e),t.kill())},"getRun",0,function(e){return g.runs.get(e)},"killRun",0,function(e){let t=g.runs.get(e);t&&(t.stoppedByUser=!0,t.kill())},"reconcileChat",0,function(e){if("running"!==e.status||g.runs.has(e.id))return e;let t=p(e,{seq:e.lastSeq+1,type:"error",message:"run interrupted — the server restarted while it was working"});try{u(t)}catch{}return t},"startRun",0,function(e,i){if(g.runs.has(e.id))throw Error("run already active for this chat");let l=e.lastSeq,d=e,c=0,m={chatId:e.id,events:[],subscribers:new Set,stoppedByUser:!1,discarded:!1,kill:()=>{}};g.runs.set(e.id,m);let f=e=>{if(m.discarded)return;let t=Date.now();if(e||!(t-c<750)){c=t;try{u(d)}catch{}}},y=e=>{let t={seq:++l,...e};for(let e of(m.events.push(t),d=p(d,t),f("delta"!==t.type),m.subscribers))try{e(t)}catch{}},x=(0,a.cclensPath)("agent-runtime");(0,n.mkdirSync)(x,{recursive:!0});let _=(0,s.join)(x,"settings.json");(0,n.writeFileSync)(_,JSON.stringify({hooks:{SessionStart:[{hooks:[{type:"command",command:'node -e "setTimeout(()=>{},2000)"'}]}]}}));let w=["-p","--output-format","stream-json","--verbose","--include-partial-messages","--model",i.model,"--tools","","--disable-slash-commands","--no-session-persistence","--setting-sources","","--settings",_,"--strict-mcp-config","--mcp-config",JSON.stringify({mcpServers:{fleetlens:{type:"http",url:i.mcpUrl}}}),"--allowedTools","mcp__fleetlens__search_sessions","mcp__fleetlens__get_session","mcp__fleetlens__list_sessions","mcp__fleetlens__list_projects","--effort","medium","--append-system-prompt",h()],v=function(e){let t=e.slice(-12).map(e=>({role:e.role,text:e.text.length>4e3?e.text.slice(0,4e3)+"…":e.text})),n=t.pop();if(!n)return"";if(0===t.length)return n.text;let s=t.map(e=>`${"user"===e.role?"User":"You (assistant)"}: ${e.text}`).join("\n\n");return`Conversation so far:
|
|
21
|
+
|
|
22
|
+
${s}
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
User's new message: ${n.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())),k=setTimeout(()=>{y({type:"error",message:"timed out after 5 minutes"}),m.kill()},3e5),S=()=>{clearTimeout(k),f(!0),g.runs.delete(e.id)},R=e=>{var l,u,c;let p,g,f,_,k;if(m.stoppedByUser||"running"!==d.status){m.stoppedByUser&&"running"===d.status&&y({type:"error",message:"stopped by user"}),S();return}let D=(l=i.model,u=v.length,c=h(),g=(0,a.cclensPath)("llm-runs"),f=`${new Date().toISOString().replace(/[:.]/g,"-")}_agent_chat_${(0,r.randomUUID)().slice(0,8)}`,_=(0,s.join)(g,`${f}.jsonl`),(k=(e,t=!1)=>{try{let s=JSON.stringify(e)+"\n";t?((0,n.mkdirSync)(g,{recursive:!0}),(0,n.writeFileSync)(_,s)):(0,n.appendFileSync)(_,s)}catch{}})({_meta:{type:"start",run_id:f,kind:"agent_chat",model:l,ts:new Date().toISOString(),runtime:"detached",user_prompt_chars:u}},!0),k({_meta:{type:"payload",run_id:f,system_prompt:c,user_prompt:v}}),{line:e=>{try{(0,n.appendFileSync)(_,e+"\n")}catch{}},end:e=>k({_meta:{type:"end",run_id:f,ts:new Date().toISOString(),...e}})}),b=Date.now(),C=(0,o.resolveClaudeBin)();if(!C){let e=new o.ClaudeBinNotFoundError;y({type:"error",message:e.message}),D.end({runtime:"detached",elapsed_ms:0,exit_code:-1,error:e.message}),S();return}let E=(0,t.spawn)(C,w,{stdio:["pipe","pipe","pipe"],env:(0,o.claudeSpawnEnv)(C),cwd:x});m.kill=()=>{try{E.kill("SIGTERM")}catch{}},E.stdin.write(v),E.stdin.end();let A=!1,T="",N="",j=!1,q=new Set,O=new Map,M=t=>{let n;try{n=JSON.parse(t)}catch{return}if("stream_event"!==n.type&&D.line(t),"system"===n.type&&"init"===n.subtype){let t=n.mcp_servers,s=t?.find(e=>"fleetlens"===e.name);if(s&&"connected"!==s.status){A=!0,D.end({runtime:"detached",elapsed_ms:Date.now()-b,mcp_status:s.status,retried:e<3});try{E.kill("SIGTERM")}catch{}e<3?setTimeout(()=>R(e+1),750):(y({type:"error",message:`session tools failed to connect (mcp status: ${s.status}) — try again`}),S())}return}if("stream_event"===n.type){let e=n.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),y({type:"delta",text:t.text}))}return}if("assistant"===n.type){let e=n.message,t=e?.content;Array.isArray(t)&&t.forEach((e,t)=>{if("text"!==e.type||"string"!=typeof e.text||q.has(t)||y({type:"delta",text:e.text}),"tool_use"===e.type&&"string"==typeof e.name){var n;let t,s="string"==typeof e.id?e.id:"",r=e.name.replace(/^mcp__fleetlens__/,"");O.set(s,r),y({type:"tool",id:s,name:r,input:(t=JSON.stringify(n=e.input)??"{}").length<=300?n:{_truncated:t.slice(0,300)+"…"}})}}),q=new Set;return}if("user"===n.type){let e=n.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:"",n=e.content,s=Array.isArray(n)?n.map(e=>e&&"object"==typeof e&&"text"in e?String(e.text):"").join(""):"string"==typeof n?n:"";y({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`}(s),isError:!0===e.is_error})}return}"result"===n.type&&(j=!0,p=n.usage,y({type:"done",totalTokens:"number"==typeof p?.input_tokens&&"number"==typeof p?.output_tokens?p.input_tokens+p.output_tokens:void 0}))},U=new TextDecoder("utf-8");E.stdout.on("data",e=>{if(A)return;let t=(N+=U.decode(e,{stream:!0})).split("\n");for(let e of(N=t.pop()??"",t)){let t=e.trim();t&&!A&&M(t)}}),E.stderr.on("data",e=>{T.length<4e3&&(T+=e.toString("utf8"))}),E.on("close",e=>{A||(j||"running"!==d.status||y({type:"error",message:m.stoppedByUser?"stopped by user":T.trim().slice(0,400)||`claude exited with code ${e}`}),D.end({runtime:"detached",elapsed_ms:Date.now()-b,exit_code:e??0,input_tokens:p?.input_tokens,output_tokens:p?.output_tokens}),S())}),E.on("error",e=>{A||(y({type:"error",message:`Failed to spawn claude: ${e.message}`}),D.end({runtime:"detached",elapsed_ms:Date.now()-b,exit_code:-1,error:e.message}),S())})};R(1)}],45092)},1766,e=>{"use strict";var t=e.i(47909),n=e.i(74017),s=e.i(96250),r=e.i(59756),a=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),g=e.i(74838),m=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:n}=await t;return(0,x.killRun)(n),Response.json({ok:!0})}e.s(["POST",0,_,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],14733);var w=e.i(14733);let v=new t.AppRouteRouteModule({definition:{kind:n.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:w,...{}}),{workAsyncStorage:k,workUnitAsyncStorage:S,serverHooks:R}=v;async function D(e,t,s){s.requestMeta&&(0,r.setRequestMeta)(e,s.requestMeta),v.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/agent/chats/[id]/stop/route";x=x.replace(/\/index$/,"")||"/";let _=await v.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!_)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,params:k,nextConfig:S,parsedUrl:R,isDraftMode:D,prerenderManifest:b,routerServerContext:C,isOnDemandRevalidate:E,revalidateOnlyGenerated:A,resolvedPathname:T,clientReferenceManifest:N,serverActionsManifest:j}=_,q=(0,i.normalizeAppPath)(x),O=!!(b.dynamicRoutes[q]||b.routes[T]),M=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,R,!1):t.end("This page could not be found"),null);if(O&&!D){let e=!!b.routes[T],t=b.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(S.adapterPath)return await M();throw new f.NoFallbackError}}let U=null;!O||v.isDev||D||(U="/index"===(U=T)?"/":U);let I=!0===v.isDev||!O,$=O&&!I;j&&N&&(0,o.setManifestsSingleton)({page:x,clientReferenceManifest:N,serverActionsManifest:j});let P=e.method||"GET",F=(0,a.getTracer)(),H=F.getActiveScopeSpan(),B=!!(null==C?void 0:C.isWrappedByNextServer),L=!!(0,r.getRequestMeta)(e,"minimalMode"),Y=(0,r.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,S,b,L);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let W={params:k,previewProps:b.preview,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:I,incrementalCache:Y,cacheLifeProfiles:S.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,s,r)=>v.onRequestError(e,t,s,r,C)},sharedContext:{buildId:w}},J=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(J,(0,u.signalFromNodeResponse)(t));try{let r,o=async e=>v.handle(G,W).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 s=n.get("next.route");if(s){let t=`${P} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",s),r.updateName(t))}else e.updateName(`${P} ${x}`)}),i=async r=>{var a,i;let l=async({previousCacheEntry:n})=>{try{if(!L&&E&&A&&!n)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=W.renderOpts.fetchMetrics;let i=W.renderOpts.pendingWaitUntil;i&&s.waitUntil&&(s.waitUntil(i),i=void 0);let l=W.renderOpts.collectedTags;if(!O)return await (0,p.sendResponse)(J,K,a,W.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 n=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,s=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:s}}}}catch(t){throw(null==n?void 0:n.isStale)&&await v.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:E})},!1,C),t}},u=await v.handleResponse({req:e,nextConfig:S,cacheKey:U,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:A,responseGenerator:l,waitUntil:s.waitUntil,isMinimalMode:L});if(!O)return null;if((null==u||null==(a=u.value)?void 0:a.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",E?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),D&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&O||d.delete(m.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,p.sendResponse)(J,K,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};B&&H?await i(H):(r=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${P} ${x}`,kind:a.SpanKind.SERVER,attributes:{"http.method":P,"http.target":e.url}},i),void 0,!B))}catch(t){if(t instanceof f.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:E})},!1,C),O)throw t;return await (0,p.sendResponse)(J,K,new Response(null,{status:500})),null}}e.s(["handler",0,D,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:S})},"routeModule",0,v,"serverHooks",0,R,"workAsyncStorage",0,k,"workUnitAsyncStorage",0,S],1766)}];
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0uf_ch4._.js.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module.exports=[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"))},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"))},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"))},27174,e=>{"use strict";e.i(39587),e.s([])},30212,e=>{"use strict";var t=e.i(79357);function s(e){return(0,t.toLocalDay)(e.getTime())}function n(e=new Date){let t=new Date(e.getFullYear(),e.getMonth(),e.getDate()),s=t.getDay(),r=new Date(t);r.setDate(t.getDate()-(s+6)%7);let a=new Date(r);return a.setDate(r.getDate()+6),{start:r,end:a}}e.s(["aggregateConcurrency",0,function(e,t){let n,r=function(e,t){let s=[],n=new Date(e.getFullYear(),e.getMonth(),e.getDate()),r=new Date(t.getFullYear(),t.getMonth(),t.getDate());for(;n.getTime()<=r.getTime();)s.push(new Date(n)),n.setDate(n.getDate()+1);return s}(t.start,t.end),a=new Map;for(let e of r)a.set(s(e),{peak:0,has_cross_project:!1});for(let t of e){let e=s(new Date(t.startMs)),n=a.get(e);n&&(t.peak>n.peak&&(n.peak=t.peak),t.crossProject&&(n.has_cross_project=!0))}let o=r.map(e=>{let t=s(e),n=a.get(t);return{date:t,peak:n.peak,has_cross_project:n.has_cross_project}}),i=0,l=0,u=0;for(let e of o)e.peak>i&&(i=e.peak,n=e.date),e.peak>=3&&l++,e.has_cross_project&&u++;return{by_day:o,peak:i,peak_day:n,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,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),s=new Date(t.start);s.setDate(t.start.getDate()-1);let r=new Date(s);return r.setDate(s.getDate()-6),{start:r,end:s}}])},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);e.i(82111);var o=e.i(81454);function i(){return(0,a.cclensPath)("agent-chats")}function l(e){return(0,n.join)(i(),`${e}.json`)}function u(e){(0,s.mkdirSync)(i(),{recursive:!0});let t=l(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)(l(e),"utf8"));return 1===t.version?t:null}catch{return null}}function c(){return{role:"assistant",segments:[]}}function p(e,t){if(t.seq<=e.lastSeq)return e;let s=[...e.messages],n=s[s.length-1];n&&"assistant"===n.role||(n=c(),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 h(){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)(l(e),{force:!0})},"listChats",0,function(){if(!(0,s.existsSync)(i()))return[];let e=[];for(let t of(0,s.readdirSync)(i())){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,u],84497),e.s(["applyRunEvent",0,p,"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,c],84777);let g=globalThis.__fleetlensAgentRuns??={runs:new Map};e.s(["MAX_CONCURRENT_RUNS",0,3,"activeRunCount",0,function(){return g.runs.size},"discardRun",0,function(e){let t=g.runs.get(e);t&&(t.stoppedByUser=!0,t.discarded=!0,g.runs.delete(e),t.kill())},"getRun",0,function(e){return g.runs.get(e)},"killRun",0,function(e){let t=g.runs.get(e);t&&(t.stoppedByUser=!0,t.kill())},"reconcileChat",0,function(e){if("running"!==e.status||g.runs.has(e.id))return e;let t=p(e,{seq:e.lastSeq+1,type:"error",message:"run interrupted — the server restarted while it was working"});try{u(t)}catch{}return t},"startRun",0,function(e,i){if(g.runs.has(e.id))throw Error("run already active for this chat");let l=e.lastSeq,d=e,c=0,m={chatId:e.id,events:[],subscribers:new Set,stoppedByUser:!1,discarded:!1,kill:()=>{}};g.runs.set(e.id,m);let f=e=>{if(m.discarded)return;let t=Date.now();if(e||!(t-c<750)){c=t;try{u(d)}catch{}}},y=e=>{let t={seq:++l,...e};for(let e of(m.events.push(t),d=p(d,t),f("delta"!==t.type),m.subscribers))try{e(t)}catch{}},_=(0,a.cclensPath)("agent-runtime");(0,s.mkdirSync)(_,{recursive:!0});let x=(0,n.join)(_,"settings.json");(0,s.writeFileSync)(x,JSON.stringify({hooks:{SessionStart:[{hooks:[{type:"command",command:'node -e "setTimeout(()=>{},2000)"'}]}]}}));let w=["-p","--output-format","stream-json","--verbose","--include-partial-messages","--model",i.model,"--tools","","--disable-slash-commands","--no-session-persistence","--setting-sources","","--settings",x,"--strict-mcp-config","--mcp-config",JSON.stringify({mcpServers:{fleetlens:{type:"http",url:i.mcpUrl}}}),"--allowedTools","mcp__fleetlens__search_sessions","mcp__fleetlens__get_session","mcp__fleetlens__list_sessions","mcp__fleetlens__list_projects","--effort","medium","--append-system-prompt",h()],v=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())),R=setTimeout(()=>{y({type:"error",message:"timed out after 5 minutes"}),m.kill()},3e5),k=()=>{clearTimeout(R),f(!0),g.runs.delete(e.id)},S=e=>{var l,u,c;let p,g,f,x,R;if(m.stoppedByUser||"running"!==d.status){m.stoppedByUser&&"running"===d.status&&y({type:"error",message:"stopped by user"}),k();return}let C=(l=i.model,u=v.length,c=h(),g=(0,a.cclensPath)("llm-runs"),f=`${new Date().toISOString().replace(/[:.]/g,"-")}_agent_chat_${(0,r.randomUUID)().slice(0,8)}`,x=(0,n.join)(g,`${f}.jsonl`),(R=(e,t=!1)=>{try{let n=JSON.stringify(e)+"\n";t?((0,s.mkdirSync)(g,{recursive:!0}),(0,s.writeFileSync)(x,n)):(0,s.appendFileSync)(x,n)}catch{}})({_meta:{type:"start",run_id:f,kind:"agent_chat",model:l,ts:new Date().toISOString(),runtime:"detached",user_prompt_chars:u}},!0),R({_meta:{type:"payload",run_id:f,system_prompt:c,user_prompt:v}}),{line:e=>{try{(0,s.appendFileSync)(x,e+"\n")}catch{}},end:e=>R({_meta:{type:"end",run_id:f,ts:new Date().toISOString(),...e}})}),D=Date.now(),b=(0,o.resolveClaudeBin)();if(!b){let e=new o.ClaudeBinNotFoundError;y({type:"error",message:e.message}),C.end({runtime:"detached",elapsed_ms:0,exit_code:-1,error:e.message}),k();return}let E=(0,t.spawn)(b,w,{stdio:["pipe","pipe","pipe"],env:(0,o.claudeSpawnEnv)(b),cwd:_});m.kill=()=>{try{E.kill("SIGTERM")}catch{}},E.stdin.write(v),E.stdin.end();let A=!1,N="",T="",j=!1,O=new Set,q=new Map,U=t=>{let s;try{s=JSON.parse(t)}catch{return}if("stream_event"!==s.type&&C.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){A=!0,C.end({runtime:"detached",elapsed_ms:Date.now()-D,mcp_status:n.status,retried:e<3});try{E.kill("SIGTERM")}catch{}e<3?setTimeout(()=>S(e+1),750):(y({type:"error",message:`session tools failed to connect (mcp status: ${n.status}) — try again`}),k())}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&&O.add(e.index),y({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||O.has(t)||y({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__/,"");q.set(n,r),y({type:"tool",id:n,name:r,input:(t=JSON.stringify(s=e.input)??"{}").length<=300?s:{_truncated:t.slice(0,300)+"…"}})}}),O=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:"";y({type:"tool_result",id:t,name:q.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&&(j=!0,p=s.usage,y({type:"done",totalTokens:"number"==typeof p?.input_tokens&&"number"==typeof p?.output_tokens?p.input_tokens+p.output_tokens:void 0}))},M=new TextDecoder("utf-8");E.stdout.on("data",e=>{if(A)return;let t=(T+=M.decode(e,{stream:!0})).split("\n");for(let e of(T=t.pop()??"",t)){let t=e.trim();t&&!A&&U(t)}}),E.stderr.on("data",e=>{N.length<4e3&&(N+=e.toString("utf8"))}),E.on("close",e=>{A||(j||"running"!==d.status||y({type:"error",message:m.stoppedByUser?"stopped by user":N.trim().slice(0,400)||`claude exited with code ${e}`}),C.end({runtime:"detached",elapsed_ms:Date.now()-D,exit_code:e??0,input_tokens:p?.input_tokens,output_tokens:p?.output_tokens}),k())}),E.on("error",e=>{A||(y({type:"error",message:`Failed to spawn claude: ${e.message}`}),C.end({runtime:"detached",elapsed_ms:Date.now()-D,exit_code:-1,error:e.message}),k())})};S(1)}],45092)},48711,e=>{"use strict";var t=e.i(47909),s=e.i(74017),n=e.i(96250),r=e.i(59756),a=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),g=e.i(74838),m=e.i(10372),f=e.i(93695);e.i(52474);var y=e.i(220);e.i(82111);var _=e.i(56614),x=e.i(84497),w=e.i(84777),v=e.i(45092);async function R(e,{params:t}){let s,{id:n}=await t;try{s=await e.json()}catch{return Response.json({error:"invalid JSON"},{status:400})}let r=s.text?.trim();if(!r)return Response.json({error:"text is required"},{status:400});let a=(0,x.readChat)(n);if(!a)return Response.json({error:"not found"},{status:404});if(a=(0,v.reconcileChat)(a),(0,v.getRun)(n))return Response.json({error:"a run is already active for this chat"},{status:409});if((0,v.activeRunCount)()>=v.MAX_CONCURRENT_RUNS)return Response.json({error:`at most ${v.MAX_CONCURRENT_RUNS} chats can run at once`},{status:429});let o=!a.messages.some(e=>"user"===e.role);return a={...a,title:o?(0,w.chatTitle)(r):a.title,status:"running",updated_at:new Date().toISOString(),messages:[...a.messages,{role:"user",text:r},(0,w.newAssistantMessage)()]},(0,x.writeChat)(a),(0,v.startRun)(a,{model:s.model||(0,_.readSettings)().ai_features.model||"sonnet",mcpUrl:new URL("/api/agent/mcp",e.url).toString()}),Response.json(a,{status:202})}e.s(["POST",0,R,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],53749);var k=e.i(53749);let S=new t.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/agent/chats/[id]/messages/route",pathname:"/api/agent/chats/[id]/messages",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/agent/chats/[id]/messages/route.ts",nextConfigOutput:"standalone",userland:k,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:b}=S;async function E(e,t,n){n.requestMeta&&(0,r.setRequestMeta)(e,n.requestMeta),S.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let _="/api/agent/chats/[id]/messages/route";_=_.replace(/\/index$/,"")||"/";let x=await S.prepare(e,t,{srcPage:_,multiZoneDraftMode:!1});if(!x)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:w,params:v,nextConfig:R,parsedUrl:k,isDraftMode:C,prerenderManifest:D,routerServerContext:b,isOnDemandRevalidate:E,revalidateOnlyGenerated:A,resolvedPathname:N,clientReferenceManifest:T,serverActionsManifest:j}=x,O=(0,i.normalizeAppPath)(_),q=!!(D.dynamicRoutes[O]||D.routes[N]),U=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,k,!1):t.end("This page could not be found"),null);if(q&&!C){let e=!!D.routes[N],t=D.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(R.adapterPath)return await U();throw new f.NoFallbackError}}let M=null;!q||S.isDev||C||(M="/index"===(M=N)?"/":M);let I=!0===S.isDev||!q,$=q&&!I;j&&T&&(0,o.setManifestsSingleton)({page:_,clientReferenceManifest:T,serverActionsManifest:j});let P=e.method||"GET",F=(0,a.getTracer)(),H=F.getActiveScopeSpan(),B=!!(null==b?void 0:b.isWrappedByNextServer),L=!!(0,r.getRequestMeta)(e,"minimalMode"),Y=(0,r.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,R,D,L);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let J={params:v,previewProps:D.preview,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:I,incrementalCache:Y,cacheLifeProfiles:R.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,s,n,r)=>S.onRequestError(e,t,n,r,b)},sharedContext:{buildId:w}},W=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t));try{let r,o=async e=>S.handle(G,J).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")!==d.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=`${P} ${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(`${P} ${_}`)}),i=async r=>{var a,i;let l=async({previousCacheEntry:s})=>{try{if(!L&&E&&A&&!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=J.renderOpts.fetchMetrics;let i=J.renderOpts.pendingWaitUntil;i&&n.waitUntil&&(n.waitUntil(i),i=void 0);let l=J.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(W,K,a,J.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,n=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:J.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 S.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:E})},!1,b),t}},u=await S.handleResponse({req:e,nextConfig:R,cacheKey:M,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:D,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:A,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:L});if(!q)return null;if((null==u||null==(a=u.value)?void 0:a.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",E?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&q||d.delete(m.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,p.sendResponse)(W,K,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};B&&H?await i(H):(r=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${P} ${_}`,kind:a.SpanKind.SERVER,attributes:{"http.method":P,"http.target":e.url}},i),void 0,!B))}catch(t){if(t instanceof f.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:E})},!1,b),q)throw t;return await (0,p.sendResponse)(W,K,new Response(null,{status:500})),null}}e.s(["handler",0,E,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})},"routeModule",0,S,"serverHooks",0,b,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,D],48711)}];
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0uiom2m._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[
|
|
1
|
+
module.exports=[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"))},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"))},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"))},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}}),p=0,l=0,i=0;for(let e of o)e.peak>p&&(p=e.peak,a=e.date),e.peak>=3&&l++,e.has_cross_project&&i++;return{by_day:o,peak:p,peak_day:a,multi_agent_days:l,cross_project_days:i}},"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}}])}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0usaajs._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[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"))},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"))},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"))},27174,e=>{"use strict";e.i(39587),e.s([])},26996,e=>{"use strict";e.s(["default",0,{name:"@claude-lens/web",version:"1.0.3",private:!0,description:"Local-only dashboard for Claude Code sessions. Reads ~/.claude/projects/*.jsonl and visualizes agent activity.",license:"MIT",scripts:{dev:"next dev -p 3321",build:"next build",start:"next start -p 3321",lint:"eslint",typecheck:"tsc --noEmit",test:"vitest run --passWithNoTests",clean:"rm -rf .next .turbo dist *.tsbuildinfo","test:coverage":"vitest run --passWithNoTests --coverage"},dependencies:{"@claude-lens/entries":"workspace:^","@claude-lens/parser":"workspace:*","@tanstack/react-virtual":"^3.13.23",clsx:"^2.1.1","lucide-react":"^0.468.0",next:"16.2.2",react:"19.2.4","react-dom":"19.2.4","react-markdown":"^10.1.0",recharts:"^2.15.0","remark-gfm":"^4.0.1",zod:"^4.3.6"},devDependencies:{"@tailwindcss/postcss":"^4.1.0","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0",eslint:"^9.0.0","eslint-config-next":"16.2.2",tailwindcss:"^4.1.0",typescript:"^5.5.0",vitest:"^2.0.0"}}])},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 l(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 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 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 p(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 d,f=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 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 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}),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 s=l.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}));u.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){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(s.test(e)){u.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;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=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)){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 s=t.messageId?a.get(t.messageId)??[t]:[t];u.push({kind:"agent",event:t,groupedEvents:s,tOffsetMs:t.tOffsetMs,gapMs:t.gapMs});continue}}return u}(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,l=new Map,u=new Set,p={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&&!u.has(s)&&n&&(u.add(s),p.input+=n.input,p.output+=n.output,p.cacheRead+=n.cacheRead,p.cacheWrite+=n.cacheWrite)}else if("tool-group"===r.kind)for(let e of(i+=r.count,r.toolNames))l.set(e.name,(l.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 d=void 0!==e&&"agent"===s[e].kind?s[e].event.preview:void 0,f=void 0!==n&&"agent"===s[n].kind?s[n].event.preview:void 0,c=Array.from(l.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,v=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!==v&&v>=h?v-h:void 0,summary:{agentMessages:o,toolCalls:i,errors:a,firstAgentPreview:d,finalAgentPreview:f,firstAgentIndex:e,finalAgentIndex:n,toolNames:c,totalTokens:p}}),s=[]};for(let o of e)"user"===o.kind||"interrupt"===o.kind?(n(),t.push(o),r=o):s.push(o);return n(),t}(f),m=e.totalUsage.input+e.totalUsage.cacheRead+e.totalUsage.cacheWrite,g=e.totalUsage.cacheRead+e.totalUsage.cacheWrite,h=new Map;for(let e of f)if("tool-group"===e.kind)for(let t of e.toolNames)h.set(t.name,(h.get(t.name)??0)+t.count);let v=Array.from(h.entries()).sort((e,t)=>t[1]-e[1]).slice(0,8).map(([e,t])=>`${e}\xd7${t}`).join(", "),k=f.find(e=>"user"===e.kind&&!e.event.preview.startsWith("<command-name>")&&!e.event.preview.startsWith("Base directory for this skill:")),x=k?.kind==="user"?k.displayBlocks?.[0]?.type==="text"?k.displayBlocks[0].text:(d=k.event.blocks.find(e=>e?.type==="text"),d?.text??k.event.preview):"",M=f.filter(e=>"error"===e.kind),$=M.length>0?`${M.length} errors, first: "${p(M[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=p(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:l(e.tOffsetMs),line:`USER: ${t}`})}else if("turn"===e.kind){let t=e.summary,s=t.firstAgentPreview?p(t.firstAgentPreview,180):"",r=t.finalAgentPreview?p(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:l(e.tOffsetMs),line:`TURN (${i}${o?`, ${o}`:""}): ${a}`})}else"interrupt"===e.kind&&b.push({offset:l(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: ${u(e.durationMs)} | active: ${u(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}${v?` (${v})`:""}`),I.push(`turns: ${e.turnCount??0}`),e.firstTimestamp&&I.push(`started: ${e.firstTimestamp}`),I.push(""),x&&(I.push("## First user message"),I.push(p(x,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: ${p(e.titleOrCmd,160)}`);I.push("")}return I.push("## Errors encountered"),I.push($),I.push(""),O&&(I.push("## Final agent message"),I.push(p(O,800))),I.join("\n")}],86040)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0zyh554._.js.map
|
|
@@ -1,3 +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)}];
|
|
1
|
+
module.exports=[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"))},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"))},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"))},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
2
|
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0~4wgaf._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[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"))},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"))},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"))},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}}])},12057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},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"))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0~~bpcw._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[
|
|
1
|
+
module.exports=[24725,(e,t,r)=>{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,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"))},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"))},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"))},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,d=0;for(let e of o)e.peak>i&&(i=e.peak,a=e.date),e.peak>=3&&l++,e.has_cross_project&&d++;return{by_day:o,peak:i,peak_day:a,multi_agent_days:l,cross_project_days:d}},"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}}])},94359,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),d=e.i(87718),u=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),g=e.i(74838),x=e.i(10372),f=e.i(93695);e.i(52474);var w=e.i(220),v=e.i(89171);e.i(82111);var R=e.i(54832);async function y(){return v.NextResponse.json((0,R.readCredentialsMasked)())}async function m(e){let t=await e.json().catch(()=>({api_key:void 0}));if("string"!=typeof t.api_key)return v.NextResponse.json({error:'"api_key" (string) is required'},{status:400});let r=t.api_key.trim();if(r){try{await (0,R.validateAndSnapshotZaiKey)(r)}catch(e){return v.NextResponse.json({error:`Invalid Z.ai API key: ${e.message}`},{status:400})}(0,R.writeZaiKey)(r)}else(0,R.deleteZaiKeyAndPrune)();return v.NextResponse.json({ok:!0,...(0,R.readCredentialsMasked)()})}e.s(["GET",0,y,"PUT",0,m,"runtime",0,"nodejs"],33602);var D=e.i(33602);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/settings/credentials/route",pathname:"/api/settings/credentials",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/settings/credentials/route.ts",nextConfigOutput:"standalone",userland:D,...{}}),{workAsyncStorage:E,workUnitAsyncStorage:k,serverHooks:_}=C;async function A(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),C.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/settings/credentials/route";v=v.replace(/\/index$/,"")||"/";let R=await C.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,params:m,nextConfig:D,parsedUrl:E,isDraftMode:k,prerenderManifest:_,routerServerContext:A,isOnDemandRevalidate:b,revalidateOnlyGenerated:q,resolvedPathname:T,clientReferenceManifest:j,serverActionsManifest:N}=R,M=(0,i.normalizeAppPath)(v),P=!!(_.dynamicRoutes[M]||_.routes[T]),S=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,E,!1):t.end("This page could not be found"),null);if(P&&!k){let e=!!_.routes[T],t=_.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(D.adapterPath)return await S();throw new f.NoFallbackError}}let O=null;!P||C.isDev||k||(O="/index"===(O=T)?"/":O);let I=!0===C.isDev||!P,H=P&&!I;N&&j&&(0,o.setManifestsSingleton)({page:v,clientReferenceManifest:j,serverActionsManifest:N});let U=e.method||"GET",F=(0,s.getTracer)(),K=F.getActiveScopeSpan(),$=!!(null==A?void 0:A.isWrappedByNextServer),Y=!!(0,n.getRequestMeta)(e,"minimalMode"),B=(0,n.getRequestMeta)(e,"incrementalCache")||await C.getIncrementalCache(e,D,_,Y);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let L={params:m,previewProps:_.preview,renderOpts:{experimental:{authInterrupts:!!D.experimental.authInterrupts},cacheComponents:!!D.cacheComponents,supportsDynamicResponse:I,incrementalCache:B,cacheLifeProfiles:D.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>C.onRequestError(e,t,a,n,A)},sharedContext:{buildId:y}},W=new l.NodeNextRequest(e),Z=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(W,(0,d.signalFromNodeResponse)(t));try{let n,o=async e=>C.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.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 a=r.get("next.route");if(a){let t=`${U} ${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(`${U} ${v}`)}),i=async n=>{var s,i;let l=async({previousCacheEntry:r})=>{try{if(!Y&&b&&q&&!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=L.renderOpts.fetchMetrics;let i=L.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let l=L.renderOpts.collectedTags;if(!P)return await (0,c.sendResponse)(W,Z,s,L.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[x.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:L.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 C.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:b})},!1,A),t}},d=await C.handleResponse({req:e,nextConfig:D,cacheKey:O,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:q,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:Y});if(!P)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==w.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});Y||t.setHeader("x-nextjs-cache",b?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return Y&&P||u.delete(x.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,g.getCacheControlHeader)(d.cacheControl)),await (0,c.sendResponse)(W,Z,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};$&&K?await i(K):(n=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(u.BaseServerSpan.handleRequest,{spanName:`${U} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},i),void 0,!$))}catch(t){if(t instanceof f.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:b})},!1,A),P)throw t;return await (0,c.sendResponse)(W,Z,new Response(null,{status:500})),null}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:k})},"routeModule",0,C,"serverHooks",0,_,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,k],94359)}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__10.g-w1._.js.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module.exports=[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"))},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"))},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"))},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 s(e=new Date){let t=new Date(e.getFullYear(),e.getMonth(),e.getDate()),n=t.getDay(),r=new Date(t);r.setDate(t.getDate()-(n+6)%7);let a=new Date(r);return a.setDate(r.getDate()+6),{start:r,end:a}}e.s(["aggregateConcurrency",0,function(e,t){let s,r=function(e,t){let n=[],s=new Date(e.getFullYear(),e.getMonth(),e.getDate()),r=new Date(t.getFullYear(),t.getMonth(),t.getDate());for(;s.getTime()<=r.getTime();)n.push(new Date(s)),s.setDate(s.getDate()+1);return n}(t.start,t.end),a=new Map;for(let e of r)a.set(n(e),{peak:0,has_cross_project:!1});for(let t of e){let e=n(new Date(t.startMs)),s=a.get(e);s&&(t.peak>s.peak&&(s.peak=t.peak),t.crossProject&&(s.has_cross_project=!0))}let o=r.map(e=>{let t=n(e),s=a.get(t);return{date:t,peak:s.peak,has_cross_project:s.has_cross_project}}),i=0,l=0,u=0;for(let e of o)e.peak>i&&(i=e.peak,s=e.date),e.peak>=3&&l++,e.has_cross_project&&u++;return{by_day:o,peak:i,peak_day:s,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,s,"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=s(e),n=new Date(t.start);n.setDate(t.start.getDate()-1);let r=new Date(n);return r.setDate(n.getDate()-6),{start:r,end:n}}])},45092,84497,84777,e=>{"use strict";var t=e.i(74533),n=e.i(2157),s=e.i(50227),r=e.i(66680),a=e.i(43427);e.i(82111);var o=e.i(81454);function i(){return(0,a.cclensPath)("agent-chats")}function l(e){return(0,s.join)(i(),`${e}.json`)}function u(e){(0,n.mkdirSync)(i(),{recursive:!0});let t=l(e.id),s=`${t}.tmp.${process.pid}`;(0,n.writeFileSync)(s,JSON.stringify(e),"utf8"),(0,n.renameSync)(s,t)}function d(e){if(!/^[a-zA-Z0-9-]+$/.test(e))return null;try{let t=JSON.parse((0,n.readFileSync)(l(e),"utf8"));return 1===t.version?t:null}catch{return null}}function c(){return{role:"assistant",segments:[]}}function p(e,t){if(t.seq<=e.lastSeq)return e;let n=[...e.messages],s=n[n.length-1];s&&"assistant"===s.role||(s=c(),n.push(s));let r={...s,segments:[...s.segments]};n[n.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:n,status:a,lastSeq:t.seq,updated_at:new Date().toISOString()}}function h(){let e=new Date,t=e.toLocaleDateString("en-CA"),n=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 ${n}, ${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,n.rmSync)(l(e),{force:!0})},"listChats",0,function(){if(!(0,n.existsSync)(i()))return[];let e=[];for(let t of(0,n.readdirSync)(i())){if(!t.endsWith(".json"))continue;let n=d(t.slice(0,-5));n&&e.push({id:n.id,title:n.title,updated_at:n.updated_at,status:n.status,messageCount:n.messages.length})}return e.sort((e,t)=>t.updated_at.localeCompare(e.updated_at)),e},"readChat",0,d,"writeChat",0,u],84497),e.s(["applyRunEvent",0,p,"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,c],84777);let g=globalThis.__fleetlensAgentRuns??={runs:new Map};e.s(["MAX_CONCURRENT_RUNS",0,3,"activeRunCount",0,function(){return g.runs.size},"discardRun",0,function(e){let t=g.runs.get(e);t&&(t.stoppedByUser=!0,t.discarded=!0,g.runs.delete(e),t.kill())},"getRun",0,function(e){return g.runs.get(e)},"killRun",0,function(e){let t=g.runs.get(e);t&&(t.stoppedByUser=!0,t.kill())},"reconcileChat",0,function(e){if("running"!==e.status||g.runs.has(e.id))return e;let t=p(e,{seq:e.lastSeq+1,type:"error",message:"run interrupted — the server restarted while it was working"});try{u(t)}catch{}return t},"startRun",0,function(e,i){if(g.runs.has(e.id))throw Error("run already active for this chat");let l=e.lastSeq,d=e,c=0,m={chatId:e.id,events:[],subscribers:new Set,stoppedByUser:!1,discarded:!1,kill:()=>{}};g.runs.set(e.id,m);let f=e=>{if(m.discarded)return;let t=Date.now();if(e||!(t-c<750)){c=t;try{u(d)}catch{}}},y=e=>{let t={seq:++l,...e};for(let e of(m.events.push(t),d=p(d,t),f("delta"!==t.type),m.subscribers))try{e(t)}catch{}},x=(0,a.cclensPath)("agent-runtime");(0,n.mkdirSync)(x,{recursive:!0});let _=(0,s.join)(x,"settings.json");(0,n.writeFileSync)(_,JSON.stringify({hooks:{SessionStart:[{hooks:[{type:"command",command:'node -e "setTimeout(()=>{},2000)"'}]}]}}));let w=["-p","--output-format","stream-json","--verbose","--include-partial-messages","--model",i.model,"--tools","","--disable-slash-commands","--no-session-persistence","--setting-sources","","--settings",_,"--strict-mcp-config","--mcp-config",JSON.stringify({mcpServers:{fleetlens:{type:"http",url:i.mcpUrl}}}),"--allowedTools","mcp__fleetlens__search_sessions","mcp__fleetlens__get_session","mcp__fleetlens__list_sessions","mcp__fleetlens__list_projects","--effort","medium","--append-system-prompt",h()],v=function(e){let t=e.slice(-12).map(e=>({role:e.role,text:e.text.length>4e3?e.text.slice(0,4e3)+"…":e.text})),n=t.pop();if(!n)return"";if(0===t.length)return n.text;let s=t.map(e=>`${"user"===e.role?"User":"You (assistant)"}: ${e.text}`).join("\n\n");return`Conversation so far:
|
|
21
|
+
|
|
22
|
+
${s}
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
User's new message: ${n.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())),k=setTimeout(()=>{y({type:"error",message:"timed out after 5 minutes"}),m.kill()},3e5),R=()=>{clearTimeout(k),f(!0),g.runs.delete(e.id)},S=e=>{var l,u,c;let p,g,f,_,k;if(m.stoppedByUser||"running"!==d.status){m.stoppedByUser&&"running"===d.status&&y({type:"error",message:"stopped by user"}),R();return}let C=(l=i.model,u=v.length,c=h(),g=(0,a.cclensPath)("llm-runs"),f=`${new Date().toISOString().replace(/[:.]/g,"-")}_agent_chat_${(0,r.randomUUID)().slice(0,8)}`,_=(0,s.join)(g,`${f}.jsonl`),(k=(e,t=!1)=>{try{let s=JSON.stringify(e)+"\n";t?((0,n.mkdirSync)(g,{recursive:!0}),(0,n.writeFileSync)(_,s)):(0,n.appendFileSync)(_,s)}catch{}})({_meta:{type:"start",run_id:f,kind:"agent_chat",model:l,ts:new Date().toISOString(),runtime:"detached",user_prompt_chars:u}},!0),k({_meta:{type:"payload",run_id:f,system_prompt:c,user_prompt:v}}),{line:e=>{try{(0,n.appendFileSync)(_,e+"\n")}catch{}},end:e=>k({_meta:{type:"end",run_id:f,ts:new Date().toISOString(),...e}})}),D=Date.now(),b=(0,o.resolveClaudeBin)();if(!b){let e=new o.ClaudeBinNotFoundError;y({type:"error",message:e.message}),C.end({runtime:"detached",elapsed_ms:0,exit_code:-1,error:e.message}),R();return}let E=(0,t.spawn)(b,w,{stdio:["pipe","pipe","pipe"],env:(0,o.claudeSpawnEnv)(b),cwd:x});m.kill=()=>{try{E.kill("SIGTERM")}catch{}},E.stdin.write(v),E.stdin.end();let A=!1,T="",N="",j=!1,q=new Set,O=new Map,M=t=>{let n;try{n=JSON.parse(t)}catch{return}if("stream_event"!==n.type&&C.line(t),"system"===n.type&&"init"===n.subtype){let t=n.mcp_servers,s=t?.find(e=>"fleetlens"===e.name);if(s&&"connected"!==s.status){A=!0,C.end({runtime:"detached",elapsed_ms:Date.now()-D,mcp_status:s.status,retried:e<3});try{E.kill("SIGTERM")}catch{}e<3?setTimeout(()=>S(e+1),750):(y({type:"error",message:`session tools failed to connect (mcp status: ${s.status}) — try again`}),R())}return}if("stream_event"===n.type){let e=n.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),y({type:"delta",text:t.text}))}return}if("assistant"===n.type){let e=n.message,t=e?.content;Array.isArray(t)&&t.forEach((e,t)=>{if("text"!==e.type||"string"!=typeof e.text||q.has(t)||y({type:"delta",text:e.text}),"tool_use"===e.type&&"string"==typeof e.name){var n;let t,s="string"==typeof e.id?e.id:"",r=e.name.replace(/^mcp__fleetlens__/,"");O.set(s,r),y({type:"tool",id:s,name:r,input:(t=JSON.stringify(n=e.input)??"{}").length<=300?n:{_truncated:t.slice(0,300)+"…"}})}}),q=new Set;return}if("user"===n.type){let e=n.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:"",n=e.content,s=Array.isArray(n)?n.map(e=>e&&"object"==typeof e&&"text"in e?String(e.text):"").join(""):"string"==typeof n?n:"";y({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`}(s),isError:!0===e.is_error})}return}"result"===n.type&&(j=!0,p=n.usage,y({type:"done",totalTokens:"number"==typeof p?.input_tokens&&"number"==typeof p?.output_tokens?p.input_tokens+p.output_tokens:void 0}))},U=new TextDecoder("utf-8");E.stdout.on("data",e=>{if(A)return;let t=(N+=U.decode(e,{stream:!0})).split("\n");for(let e of(N=t.pop()??"",t)){let t=e.trim();t&&!A&&M(t)}}),E.stderr.on("data",e=>{T.length<4e3&&(T+=e.toString("utf8"))}),E.on("close",e=>{A||(j||"running"!==d.status||y({type:"error",message:m.stoppedByUser?"stopped by user":T.trim().slice(0,400)||`claude exited with code ${e}`}),C.end({runtime:"detached",elapsed_ms:Date.now()-D,exit_code:e??0,input_tokens:p?.input_tokens,output_tokens:p?.output_tokens}),R())}),E.on("error",e=>{A||(y({type:"error",message:`Failed to spawn claude: ${e.message}`}),C.end({runtime:"detached",elapsed_ms:Date.now()-D,exit_code:-1,error:e.message}),R())})};S(1)}],45092)},8043,e=>{"use strict";var t=e.i(47909),n=e.i(74017),s=e.i(96250),r=e.i(59756),a=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),g=e.i(74838),m=e.i(10372),f=e.i(93695);e.i(52474);var y=e.i(220),x=e.i(84497),_=e.i(84777),w=e.i(45092);e.s(["GET",0,function(){let e=(0,x.listChats)().map(e=>{if("running"===e.status&&!(0,w.getRun)(e.id)){let t=(0,x.readChat)(e.id);if(t){let n=(0,w.reconcileChat)(t);return{...e,status:n.status,updated_at:n.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 v=e.i(71415);let k=new t.AppRouteRouteModule({definition:{kind:n.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:v,...{}}),{workAsyncStorage:R,workUnitAsyncStorage:S,serverHooks:C}=k;async function D(e,t,s){s.requestMeta&&(0,r.setRequestMeta)(e,s.requestMeta),k.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/agent/chats/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==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,params:v,nextConfig:R,parsedUrl:S,isDraftMode:C,prerenderManifest:D,routerServerContext:b,isOnDemandRevalidate:E,revalidateOnlyGenerated:A,resolvedPathname:T,clientReferenceManifest:N,serverActionsManifest:j}=_,q=(0,i.normalizeAppPath)(x),O=!!(D.dynamicRoutes[q]||D.routes[T]),M=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,S,!1):t.end("This page could not be found"),null);if(O&&!C){let e=!!D.routes[T],t=D.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(R.adapterPath)return await M();throw new f.NoFallbackError}}let U=null;!O||k.isDev||C||(U="/index"===(U=T)?"/":U);let I=!0===k.isDev||!O,$=O&&!I;j&&N&&(0,o.setManifestsSingleton)({page:x,clientReferenceManifest:N,serverActionsManifest:j});let P=e.method||"GET",F=(0,a.getTracer)(),H=F.getActiveScopeSpan(),B=!!(null==b?void 0:b.isWrappedByNextServer),L=!!(0,r.getRequestMeta)(e,"minimalMode"),Y=(0,r.getRequestMeta)(e,"incrementalCache")||await k.getIncrementalCache(e,R,D,L);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let W={params:v,previewProps:D.preview,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:I,incrementalCache:Y,cacheLifeProfiles:R.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,s,r)=>k.onRequestError(e,t,s,r,b)},sharedContext:{buildId:w}},G=new l.NodeNextRequest(e),J=new l.NodeNextResponse(t),K=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let r,o=async e=>k.handle(K,W).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 s=n.get("next.route");if(s){let t=`${P} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",s),r.updateName(t))}else e.updateName(`${P} ${x}`)}),i=async r=>{var a,i;let l=async({previousCacheEntry:n})=>{try{if(!L&&E&&A&&!n)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=W.renderOpts.fetchMetrics;let i=W.renderOpts.pendingWaitUntil;i&&s.waitUntil&&(s.waitUntil(i),i=void 0);let l=W.renderOpts.collectedTags;if(!O)return await (0,p.sendResponse)(G,J,a,W.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 n=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,s=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:s}}}}catch(t){throw(null==n?void 0:n.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:E})},!1,b),t}},u=await k.handleResponse({req:e,nextConfig:R,cacheKey:U,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:D,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:A,responseGenerator:l,waitUntil:s.waitUntil,isMinimalMode:L});if(!O)return null;if((null==u||null==(a=u.value)?void 0:a.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",E?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&O||d.delete(m.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,p.sendResponse)(G,J,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};B&&H?await i(H):(r=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${P} ${x}`,kind:a.SpanKind.SERVER,attributes:{"http.method":P,"http.target":e.url}},i),void 0,!B))}catch(t){if(t instanceof f.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:E})},!1,b),O)throw t;return await (0,p.sendResponse)(G,J,new Response(null,{status:500})),null}}e.s(["handler",0,D,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:S})},"routeModule",0,k,"serverHooks",0,C,"workAsyncStorage",0,R,"workUnitAsyncStorage",0,S],8043)}];
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__12vjv4c._.js.map
|
|
@@ -1,13 +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
|
|
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),w=e.i(26996);function x(e,t){return{jsonrpc:"2.0",id:e,result:t}}function R(e,t,r){return{jsonrpc:"2.0",id:e,error:{code:t,message:r}}}async function v(e,t){if("object"!=typeof e||null===e||Array.isArray(e))return R(null,-32600,"invalid request");if("string"!=typeof e.method)return R(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 x(r,{protocolVersion:"string"==typeof t?t:"2025-06-18",capabilities:{tools:{}},serverInfo:{name:"fleetlens",version:w.default.version}})}case"ping":return x(r,{});case"tools/list":return x(r,{tools:t.defs});case"tools/call":{let s=e.params?.name,n=e.params?.arguments??{};if("string"!=typeof s)return R(r,-32602,"tools/call requires params.name");try{let e=await t.call(s,n);return x(r,{content:[{type:"text",text:e}]})}catch(e){return x(r,{content:[{type:"text",text:e.message}],isError:!0})}}default:return R(r,-32601,`method not found: ${e.method}`)}}var b=e.i(43427),j=e.i(86040),C=e.i(75550);let E={user:2,summary:3,agent:1};function _(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 A(e){let t=await (0,C.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+=(E[s.role]??1)*2,u.length<3&&u.push({role:s.role,text:_(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+=(E[s.role]??1)*(1+Math.log2(t)))>0&&u.length<3){let t=e.indexOf(r);u.push({role:s.role,text:_(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,C.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 S(e){let t=(await (0,C.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
2
|
project: ${t.project}
|
|
3
3
|
day: ${t.day}
|
|
4
4
|
agent: ${t.agent}
|
|
5
5
|
|
|
6
6
|
`;for(let e of t.chunks){let t=`[${e.role}] ${e.text}
|
|
7
7
|
|
|
8
|
-
`;if(r.length+t.length>48e3){r+="…(truncated)";break}r+=t}return r}let r=await (0,
|
|
8
|
+
`;if(r.length+t.length>48e3){r+="…(truncated)";break}r+=t}return r}let r=await (0,b.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
9
|
${s.join("\n")}
|
|
10
10
|
|
|
11
|
-
`:"")+(0,
|
|
11
|
+
`:"")+(0,j.summarizeSessionForAI)(r)}async function I(e){let t=await (0,C.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 M(){let e=await (0,C.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 N={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 A(t);case"get_session":return S(t);case"list_sessions":return I(t);case"list_projects":return M();default:throw Error(`unknown tool: ${e}`)}}};async function O(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 v(t,N);return null===r?new Response(null,{status:202}):Response.json(r)}e.s(["GET",0,function(){return new Response(null,{status:405})},"POST",0,O,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],68780);var T=e.i(68780);let q=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:T,...{}}),{workAsyncStorage:D,workUnitAsyncStorage:P,serverHooks:$}=q;async function k(e,t,s){s.requestMeta&&(0,n.setRequestMeta)(e,s.requestMeta),q.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/agent/mcp/route";w=w.replace(/\/index$/,"")||"/";let x=await q.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),T=!!(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(T&&!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;!T||q.isDev||C||(P="/index"===(P=I)?"/":P);let $=!0===q.isDev||!T,k=T&&!$;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 q.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)=>q.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=>q.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(!T)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 q.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:A})},!1,_),t}},c=await q.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(!T)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&&T||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 q.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:A})},!1,_),T)throw t;return await (0,p.sendResponse)(z,G,new Response(null,{status:500})),null}}e.s(["handler",0,k,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:P})},"routeModule",0,q,"serverHooks",0,$,"workAsyncStorage",0,D,"workUnitAsyncStorage",0,P],19173)}];
|
|
12
12
|
|
|
13
13
|
//# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_0sr4wr_.js.map
|