fleetlens 0.16.1 → 0.16.2
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/build-manifest.json +3 -3
- package/app/apps/web/.next/prerender-manifest.json +3 -3
- package/app/apps/web/.next/server/app/_global-error.html +1 -1
- package/app/apps/web/.next/server/app/_global-error.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/agent/page_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/usage/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__02faosk._.js +3 -3
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__09cgmam._.js +2 -2
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0tk8p3d._.js +2 -2
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0u6pamj._.js +2 -2
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__12jomao._.js +2 -2
- package/app/apps/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0sr4wr_.js +1 -1
- package/app/apps/web/.next/server/chunks/packages_parser_dist_06d9se1._.js +1 -1
- package/app/apps/web/.next/server/chunks/packages_parser_dist_10ihc3~._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/_0k8yioi._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_app_sessions_[id]_session-view_tsx_0-9t5~.._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_app_sessions_sessions-grid_tsx_0bri5x.._.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/chunks/ssr/packages_parser_dist_0mx_509._.js +1 -1
- 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/0jes0m38a9ib_.js +14 -0
- package/app/apps/web/.next/static/chunks/{07bzlfv97o1ig.js → 0p5ee8wje3zi~.js} +1 -1
- package/app/apps/web/.next/static/chunks/{0awkd5df28gvj.js → 0~uugvb4izjd2.js} +1 -1
- package/app/apps/web/app/sessions/[id]/session-view.tsx +6 -2
- package/app/apps/web/app/sessions/sessions-grid.tsx +5 -1
- package/app/apps/web/lib/agent/run.ts +24 -5
- 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 +140 -17
- package/dist/index.js +148 -25
- package/menubar/FleetlensMenubar.app/Contents/Info.plist +2 -2
- package/menubar/FleetlensMenubar.app/Contents/MacOS/FleetlensMenubar +0 -0
- package/package.json +1 -1
- package/app/apps/web/.next/static/chunks/0at6brbse8wn2.js +0 -14
- /package/app/apps/web/.next/static/{d1mwRtSMG-R7wb8o9KxM3 → q_fQaCe85j7F9VawBRe81}/_buildManifest.js +0 -0
- /package/app/apps/web/.next/static/{d1mwRtSMG-R7wb8o9KxM3 → q_fQaCe85j7F9VawBRe81}/_clientMiddlewareManifest.js +0 -0
- /package/app/apps/web/.next/static/{d1mwRtSMG-R7wb8o9KxM3 → q_fQaCe85j7F9VawBRe81}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[39587,t=>{"use strict";let e={kind:"claude-code",displayName:"Claude Code",shortLabel:"Claude",accentColor:"var(--af-accent)",iconChar:"✦"},i={kind:"codex",displayName:"Codex (OpenAI)",shortLabel:"Codex",accentColor:"rgb(16, 163, 127)",iconChar:"◆"},s={kind:"gemini",displayName:"Gemini CLI",shortLabel:"Gemini",accentColor:"rgb(124, 92, 246)",iconChar:"✺"},n={kind:"antigravity",displayName:"Antigravity",shortLabel:"Agy",accentColor:"rgb(236, 72, 153)",iconChar:"⏃"},a={kind:"cowork",displayName:"Cowork",shortLabel:"Cowork",accentColor:"rgb(217, 119, 87)",iconChar:"⌘"},o={kind:"grok",displayName:"Grok Build",shortLabel:"Grok",accentColor:"rgb(100, 116, 139)",iconChar:"◈"},r=[e,i,s,n,a,{kind:"zai",displayName:"Z.ai",shortLabel:"Z.ai",accentColor:"rgb(59, 130, 246)",iconChar:"Z"},o];r.map(t=>t.kind),t.s(["ANTIGRAVITY_METADATA",0,n,"CLAUDE_CODE_METADATA",0,e,"CODEX_METADATA",0,i,"COWORK_METADATA",0,a,"GEMINI_METADATA",0,s,"GROK_METADATA",0,o,"agentMetadata",0,r])},36521,t=>{"use strict";let e=[/<system_instruction\b[^>]*>[\s\S]*?<\/system_instruction>\s*/gi],i=["<command-name>","<local-command-stdout>","<local-command-caveat>","<task-notification>","Base directory for this skill:","This session is being continued from a previous conversation","A session-scoped Stop hook is now active"];function s(t){if(!t)return t;let i=t;for(let t of e)i=i.replace(t,"");return i.trim()}t.s(["isFrameworkInjectedUserInput",0,function(t){if(!t)return!1;let e=s(t);if(!e)return!0;for(let t of i)if(e.startsWith(t))return!0;return!1},"stripFrameworkBoilerplate",0,s])},79357,t=>{"use strict";let e={input:0,output:0,cacheRead:0,cacheWrite:0},i=["/.claude/worktrees/","/.worktrees/","/claude/worktrees/"],s=/\/conductor\/workspaces\/[^/]+\/([^/]+)(?:\/|$)/;function n(t){for(let e of i){let i=t.lastIndexOf(e);if(i>=0)return{idx:i,marker:e}}return null}function a(t){let e=s.exec(t);if(!e)return null;let i=e[1],n=+!!e[0].endsWith("/");return{canonicalEndIdx:e.index+e[0].length-i.length-1-n,workspaceName:i}}let o="/.superset/worktrees/",r=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;function l(t){let e=t.indexOf(o);if(e<0)return null;let i=t.slice(e+o.length).split("/").filter(Boolean);if(0===i.length)return null;let s=r.test(i[0])?i[1]??i[0]:i[0];return{canonical:t.slice(0,e)+o+s,workspaceName:s}}function u(t){let e=t.replace(/\/{2,}/g,"/"),i=n(e);if(i)return e.slice(0,i.idx);let s=a(e);if(s)return e.slice(0,s.canonicalEndIdx);let o=l(e);return o?o.canonical:e}function c(t){let e=t.replace(/\/{2,}/g,"/"),i=n(e);if(i){let t=e.slice(i.idx+i.marker.length),s=t.indexOf("/");return s>=0?t.slice(0,s):t}let s=a(e);if(s)return s.workspaceName;let o=l(e);return o?o.workspaceName:null}function p(t){let e=u(t),i=e.replace(/\/+$/,"").split("/").filter(Boolean);return i[i.length-1]||e}function d(t){let i={sessionCount:t.length,totalDurationMs:0,totalAirTimeMs:0,totalTokens:{...e},totalToolCalls:0,totalTurns:0,avgTurnsPerSession:0,avgDurationMs:0,totalLinesAdded:0,totalLinesRemoved:0,totalFilesEdited:0};for(let e of t)i.totalDurationMs+=e.durationMs??0,i.totalAirTimeMs+=e.airTimeMs??e.durationMs??0,i.totalTokens.input+=e.totalUsage.input,i.totalTokens.output+=e.totalUsage.output,i.totalTokens.cacheRead+=e.totalUsage.cacheRead,i.totalTokens.cacheWrite+=e.totalUsage.cacheWrite,i.totalToolCalls+=e.toolCallCount??0,i.totalTurns+=e.turnCount??0,i.totalLinesAdded+=e.linesAdded??0,i.totalLinesRemoved+=e.linesRemoved??0,i.totalFilesEdited+=e.filesEdited??0;return t.length>0&&(i.avgTurnsPerSession=i.totalTurns/t.length,i.avgDurationMs=i.totalDurationMs/t.length),i}t.s(["canonicalProjectName",0,u,"computeBurstsFromSessions",0,function(t,e={}){let i=[];for(let e of t)e.activeSegments&&0!==e.activeSegments.length&&i.push({id:e.id,projectDir:e.projectDir,segments:e.activeSegments});return function(t,e){let i=e.minDurationMs??6e4,s=e.mergeGapMs??6e5,n=e.minActive??2,a=[];for(let e of t)for(let t of e.segments)t.endMs<=t.startMs||(a.push({ms:t.startMs,delta:1,sessionId:e.id}),a.push({ms:t.endMs,delta:-1,sessionId:e.id}));a.sort((t,e)=>t.ms-e.ms||e.delta-t.delta);let o=new Map,r=[],l=null;for(let t of a){if(1===t.delta)o.set(t.sessionId,(o.get(t.sessionId)??0)+1);else{let e=(o.get(t.sessionId)??0)-1;e<=0?o.delete(t.sessionId):o.set(t.sessionId,e)}let e=o.size;if(e>=n)if(l)for(let i of(l.endMs=t.ms,e>l.peak&&(l.peak=e),o.keys()))l.sessionIds.add(i);else l={startMs:t.ms,endMs:t.ms,peak:e,sessionIds:new Set(o.keys())};else l&&(l.endMs=t.ms,r.push(l),l=null)}l&&r.push(l);let u=r.filter(t=>t.endMs-t.startMs>=i),c=[];for(let t of u){let e=c[c.length-1];if(e&&t.startMs-e.endMs<=s)for(let i of(e.endMs=t.endMs,t.peak>e.peak&&(e.peak=t.peak),t.sessionIds))e.sessionIds.add(i);else c.push({startMs:t.startMs,endMs:t.endMs,peak:t.peak,sessionIds:new Set(t.sessionIds)})}let p=new Map;for(let e of t)p.set(e.id,e.projectDir);return c.map(t=>{let e=Array.from(new Set(Array.from(t.sessionIds).map(t=>p.get(t)).filter(t=>!!t)));return{startMs:t.startMs,endMs:t.endMs,peak:t.peak,sessionIds:Array.from(t.sessionIds),projectDirs:e,crossProject:e.length>1}})}(i,e)},"groupByProject",0,function(t){let e=new Map,i=function(t){let e=new Map;for(let i of t)i.repoName&&e.set(p(i.projectName),i.repoName);return t=>t.repoName??e.get(p(t.projectName))??p(t.projectName)}(t);for(let s of t){let t=i(s),n=e.get(t);n||(n={projectDir:t,projectName:t,sessions:[],rawProjectDirs:[],worktreeCount:0,metrics:d([]),perAgent:[],lastActiveMs:void 0},e.set(t,n)),n.sessions.push(s),n.rawProjectDirs.includes(s.projectDir)||n.rawProjectDirs.push(s.projectDir);let a=s.lastTimestamp?Date.parse(s.lastTimestamp):void 0;a&&(!n.lastActiveMs||a>n.lastActiveMs)&&(n.lastActiveMs=a)}for(let t of e.values()){t.metrics=d(t.sessions);let e=new Set;for(let i of t.sessions){let t=i.worktreeName??c(i.projectName)??(i.cwd?c(i.cwd):null);t&&e.add(t)}t.worktreeCount=e.size;let i=new Map;for(let e of t.sessions){let t=e.agent??"claude-code",s=i.get(t);s||(s={agent:t,sessions:0},i.set(t,s)),s.sessions+=1}t.perAgent=Array.from(i.values()).sort((t,e)=>e.sessions-t.sessions)}return Array.from(e.values()).sort((t,e)=>(e.lastActiveMs??0)-(t.lastActiveMs??0))},"projectKey",0,p,"toLocalDay",0,function(t){let e=new Date(t),i=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return`${i}-${s}-${n}`},"worktreeName",0,c])},43427,20629,t=>{"use strict";let e;t.s(["agentSources",()=>es,"appendUsageSnapshot",()=>er,"cclensHome",()=>et,"cclensPath",()=>ee,"getAnySession",()=>ea,"invalidateFile",()=>ei,"listAllSessions",()=>en,"pruneUsageAgent",()=>el],43427);var i=t.i(2157),s=t.i(60526),n=t.i(50227),a=t.i(39587),o=t.i(36521),r=t.i(79357);let l={input:0,output:0,cacheRead:0,cacheWrite:0};function u(t,e=200){let i=t.replace(/<[^>]+>/g,"").replace(/\s+/g," ").trim();return i.length>e?i.slice(0,e-1)+"…":i}let c=/^\s*<teammate-message\s+teammate_id="([^"]+)"[^>]*>([\s\S]*?)<\/teammate-message>/;function p(t){let e=t.match(c);if(!e)return;let i=e[1],s=e[2].trim(),n="message";if(s.startsWith("{"))try{let t=JSON.parse(s);"idle_notification"===t.type?n="idle-notification":"shutdown_request"===t.type?n="shutdown-request":"shutdown_approved"===t.type?n="shutdown-approved":"task_assignment"===t.type?n="task-assignment":"teammate_terminated"===t.type&&(n="teammate-terminated")}catch{}return{teammateId:i,body:s,kind:n}}function d(t){if(!t||"object"!=typeof t)return;let e=t=>"number"==typeof t?t:0;return{input:e(t.input_tokens),output:e(t.output_tokens),cacheRead:e(t.cache_read_input_tokens),cacheWrite:e(t.cache_creation_input_tokens)}}function m(t){let e,i,s,n,a,c,m,f,g,y,h,w=[];for(let e=0;e<t.length;e++){let i=function(t,e){if(!t||"object"!=typeof t)return null;let i=String(t.type??""),s=t.uuid,n=t.parentUuid??null,a=t.timestamp;if("assistant"===i){let o,r,l,c=t.message??{},p=c.content??[],m=d(c.usage),f=c.model,g=t.requestId,y=c.id,h=c.stop_reason,w=p[0],M="agent";return w?.type==="thinking"?(M="agent-thinking",o="[thinking] "+u(w.thinking,140)):w?.type==="tool_use"?(M="tool-call",r=w.name,l=w.id,o=`${w.name} `+u(JSON.stringify(w.input??{}),100)):o=w?.type==="text"?u(w.text,200):`<assistant:${w?.type??"empty"}>`,{index:e,uuid:s,parentUuid:n,timestamp:a,role:M,rawType:i,preview:o,blocks:p,usage:m,model:f,requestId:g,messageId:y,stopReason:h,toolName:r,toolUseId:l,raw:t}}if("user"===i){let r=(t.message??{}).content;if("string"==typeof r){let l=(0,o.stripFrameworkBoilerplate)(r),c=p(l);return{index:e,uuid:s,parentUuid:n,timestamp:a,role:"user",rawType:i,preview:u(l,200),blocks:l?[{type:"text",text:l}]:[],raw:t,teammateMessage:c}}if(Array.isArray(r)){let l=r[0];if(l?.type==="tool_result")return{index:e,uuid:s,parentUuid:n,timestamp:a,role:"tool-result",rawType:i,preview:u("string"==typeof l.content?l.content:JSON.stringify(l.content),200),blocks:r,toolUseId:l.tool_use_id,toolResult:t.toolUseResult,raw:t};let c=r.find(t=>t?.type==="text"),d=c?(0,o.stripFrameworkBoilerplate)(c.text):"",m=c?r.map(t=>t===c?{type:"text",text:d}:t):r,f=d?p(d):void 0;return{index:e,uuid:s,parentUuid:n,timestamp:a,role:"user",rawType:i,preview:d?u(d,200):u(JSON.stringify(r),200),blocks:m,raw:t,teammateMessage:f}}}if("attachment"===i){let o=t.attachment??{},r=String(o.type??"attachment"),l=`<attachment: ${r}>`;return"string"==typeof o.content&&o.content.length>0?l=`[${r}] `+u(o.content,140):Array.isArray(o.addedNames)&&(l=`[${r}] +${o.addedNames.length} names`),{index:e,uuid:s,parentUuid:n,timestamp:a,role:"system",rawType:i,preview:l,blocks:[{type:"text",text:JSON.stringify(o,null,2)}],attachmentType:r,raw:t}}return{index:e,uuid:s,parentUuid:n,timestamp:a,role:"meta",rawType:i||"unknown",preview:`${i}: ${u(JSON.stringify(t),140)}`,blocks:[{type:"text",text:JSON.stringify(t,null,2)}],raw:t}}(t[e],e);i&&w.push(i)}for(let t of w){if(!t.timestamp)continue;let s=Date.parse(t.timestamp);!Number.isNaN(s)&&((void 0===e||s<e)&&(e=s),(void 0===i||s>i)&&(i=s))}let M=void 0!==e?new Date(e).toISOString():void 0,v=void 0!==i?new Date(i).toISOString():void 0;for(let t of w){if(!t.timestamp)continue;let i=Date.parse(t.timestamp);Number.isNaN(i)||void 0!==e&&(t.tOffsetMs=Math.max(0,i-e))}let _=w.filter(t=>{let e;return t.timestamp&&("user"===(e=t.role)||"agent"===e||"agent-thinking"===e||"tool-call"===e||"tool-result"===e)}).map(t=>({e:t,ms:Date.parse(t.timestamp)})).filter(t=>!Number.isNaN(t.ms)).sort((t,e)=>t.ms-e.ms);for(let t=1;t<_.length;t++)_[t].e.gapMs=Math.max(0,_[t].ms-_[t-1].ms);let k=w.filter(t=>t.timestamp).map(t=>Date.parse(t.timestamp)).filter(t=>!Number.isNaN(t)).sort((t,e)=>t-e),j=[],N=0;if(k.length>0){let t=k[0],e=k[0];for(let i=1;i<k.length;i++){let s=k[i],n=s-e;n>18e4?(j.push({startMs:t,endMs:e}),t=s):n>0&&(N+=n),e=s}j.push({startMs:t,endMs:e})}let b=new Map,T=[];for(let t of w){if(!t.timestamp)continue;let e=Date.parse(t.timestamp);if(!Number.isNaN(e)){if("assistant"===t.rawType&&t.usage&&t.messageId){let i=b.get(t.messageId);i?(i.siblings.push(t),e<i.ms&&(i.rep=t,i.ms=e)):b.set(t.messageId,{rep:t,ms:e,siblings:[t]})}else if("system"===t.rawType){let i=t.raw;if(i?.subtype!=="compact_boundary")continue;let s=i.compactMetadata??{};T.push({ms:e,trigger:"manual"===s.trigger?"manual":"auto",preTokens:"number"==typeof s.preTokens?s.preTokens:0})}}}let x=[...b.values()].sort((t,e)=>t.ms-e.ms);T.sort((t,e)=>t.ms-e.ms);let I=0,A=0,C=(t,e)=>{for(let i of t.siblings)i.coldResume=e;I++,A+=e.writeTokens},S=new Set;for(let t of T){let e,i=x.find(e=>e.ms>t.ms&&(e.rep.usage?.cacheWrite??0)>=1e3);if(!i)continue;for(let i=x.length-1;i>=0;i--)if(x[i].ms<=t.ms){e=x[i].ms;break}let s=i.rep.usage,n=s.cacheWrite+s.cacheRead;C(i,{trigger:"compact",gapMs:void 0!==e?i.ms-e:0,writeTokens:s.cacheWrite,writeRatio:n>0?s.cacheWrite/n:0,compact:{trigger:t.trigger,preTokens:t.preTokens}}),S.add(i.rep.messageId)}for(let t=1;t<x.length;t++){let e=x[t-1],i=x[t];if(S.has(i.rep.messageId))continue;let s=i.rep.usage,n=s.cacheWrite+s.cacheRead,a=n>0?s.cacheWrite/n:0,o=i.ms-e.ms;o>3e5&&s.cacheWrite>=1e3&&a>=.3&&C(i,{trigger:"idle",gapMs:o,writeTokens:s.cacheWrite,writeRatio:a})}let D={...l},P=new Set,R="",U=!1,O=!1,F=0,B=0,z=0,$=0,W=new Set,E=new Map,J=void 0!==e?(0,r.toLocalDay)(e):void 0,L=t=>{let e;if(t){let i=Date.parse(t);Number.isNaN(i)||(e=(0,r.toLocalDay)(i))}if(!(e=e??J))return;let i=E.get(e);return i||(i={toolCalls:0,turns:0,tokens:{...l}},E.set(e,i)),i};for(let t of w){if("tool-call"===t.role){F++;let e=L(t.timestamp);e&&e.toolCalls++;let i=t.blocks.find(t=>t&&"tool_use"===t.type);if(i){let t=i.input??{};if("TeamCreate"===i.name&&(U=!0),"SendMessage"===i.name){let e="string"==typeof t.to?t.to:"";e&&"team-lead"!==e&&(O=!0)}let e="string"==typeof t.file_path?t.file_path:void 0;if("Edit"===i.name&&e){W.add(e);let i="string"==typeof t.old_string?t.old_string:"",s="string"==typeof t.new_string?t.new_string:"",n=i?i.split("\n").length:0,a=s?s.split("\n").length:0;z+=Math.max(0,a-n),$+=Math.max(0,n-a)}else if("Write"===i.name&&e){W.add(e);let i="string"==typeof t.content?t.content:"";z+=i?i.split("\n").length:0}}}if("user"===t.role){let e=function(t){let e=t?.content;if("string"==typeof e)return e;if(Array.isArray(e)){for(let t of e)if(t&&"object"==typeof t&&"text"===t.type&&"string"==typeof t.text)return t.text}return""}(t.raw?.message),i=(0,o.isFrameworkInjectedUserInput)(e),s=void 0!==t.teammateMessage&&!f;if(!i&&!s){g||(g=t.teammateMessage?t.teammateMessage.body:t.preview),B++;let e=L(t.timestamp);e&&e.turns++,h=t.preview}}"agent"===t.role&&(y=t.preview)}for(let e of t)if(e&&"object"==typeof e&&("string"!=typeof e.sessionId||R||(R=e.sessionId),"string"!=typeof e.cwd||n||(n=e.cwd),"string"!=typeof e.gitBranch||a||(a=e.gitBranch),"string"!=typeof e.entrypoint||c||(c=e.entrypoint),"string"!=typeof e.teamName||m||(m=e.teamName),"string"!=typeof e.agentName||f||(f=e.agentName),"assistant"===e.type)){let t=e.message;if(t){"string"!=typeof t.model||s||(s=t.model);let i="string"==typeof t.id?t.id:void 0;if(i&&P.has(i))continue;i&&P.add(i);let n=d(t.usage);if(n){D.input+=n.input,D.output+=n.output,D.cacheRead+=n.cacheRead,D.cacheWrite+=n.cacheWrite;let t=L("string"==typeof e.timestamp?e.timestamp:void 0);t&&(t.tokens.input+=n.input,t.tokens.output+=n.output,t.tokens.cacheRead+=n.cacheRead,t.tokens.cacheWrite+=n.cacheWrite)}}}return{events:w,meta:{sessionId:R,firstTimestamp:M,lastTimestamp:v,durationMs:void 0!==e&&void 0!==i?i-e:void 0,eventCount:w.length,model:s,cwd:n,gitBranch:a,entrypoint:c,totalUsage:D,status:"idle",firstUserPreview:g,lastUserPreview:h,lastAgentPreview:y,toolCallCount:F,turnCount:B,dailyBreakdown:Array.from(E.entries()).map(([t,e])=>({day:t,toolCalls:e.toolCalls,turns:e.turns,tokens:e.tokens})).sort((t,e)=>t.day.localeCompare(e.day)),airTimeMs:N,activeSegments:j,linesAdded:z,linesRemoved:$,filesEdited:W.size,coldResumeCount:I,cacheRebuildTokens:A,teamName:m,agentName:f,isTeamLead:void 0!==m&&void 0===f&&(U||O)}}}let f=/^(?:(?:https?|ssh|git):\/\/)?(?:[^@/]+@)?([^/:]+)[:/](.+?)(?:\.git)?\/?$/;function g(t){try{return(0,i.realpathSync)(t)}catch{return t}}function y(t){let e=g(t.replace(/\/{2,}/g,"/"));try{let t=function(t){let e;if(!t||!(0,n.isAbsolute)(t))return null;let a=(e=g((0,s.homedir)()),t===e||t.startsWith(`${e}/`)?e:void 0);for(let e=t.replace(/\/+$/,"")||t;;e=(0,n.dirname)(e)){if(e===a)return null;let t=function(t){let e=(0,n.join)(t,".git"),s=(0,i.statSync)(e,{throwIfNoEntry:!1});if(!s)return null;if(s.isDirectory())return{root:t,gitDir:e,commonDir:e};let a=function(t,e){let i=e.match(/^gitdir:\s*(.+)\s*$/m);if(!i)return;let s=i[1].trim();return(0,n.isAbsolute)(s)?s:(0,n.resolve)(t,s)}(t,(0,i.readFileSync)(e,"utf8"));return a?{root:t,gitDir:a,commonDir:function(t){let e=(0,n.join)(t,"commondir");if(!(0,i.existsSync)(e))return;let s=(0,i.readFileSync)(e,"utf8").trim();if(s)return(0,n.isAbsolute)(s)?s:(0,n.resolve)(t,s)}(a)}:{root:t}}(e);if(t)return t;if((0,n.dirname)(e)===e)return null}}(e);if(t){let s=g(function(t){if(t)return".git"===(0,n.basename)(t)?(0,n.dirname)(t):void 0}(t.commonDir)??t.root),a=g(t.root),o=s!==a?(0,r.worktreeName)(e)??(0,n.basename)(t.root):void 0,l={projectName:s};o&&(l.worktreeName=o);let u=function(t){let e=t.commonDir??t.gitDir;if(!e)return;let s=(0,n.join)(e,"config");if(!(0,i.existsSync)(s))return;let a=function(t){let e=!1;for(let i of t.split("\n")){let t=i.trim();if(t.startsWith("[")){e=/^\[remote\s+"origin"\]/.test(t);continue}if(!e)continue;let s=t.match(/^url\s*=\s*(.+)$/);if(s)return s[1].trim()}}((0,i.readFileSync)(s,"utf8"));return a?function(t){let e=t.match(f);if(!e)return;let i=e[1],s=e[2].split("/").filter(Boolean);if(s.length<2)return;let n=s[s.length-1],a=s.slice(0,-1).join("/");return{host:i,owner:a,name:n,url:t,webUrl:`https://${i}/${a}/${n}`}}(a):void 0}(t);return u&&(l.remote=u,l.repoName=u.name),l}}catch{}let a=(0,r.canonicalProjectName)(e),o=(0,r.worktreeName)(e)??void 0;return o?{projectName:a,worktreeName:o}:{projectName:a}}let h=n.default.join(s.default.homedir(),".claude","projects");function w(t){return t.startsWith("-")?"/"+t.slice(1).replace(/-/g,"/"):t}let M=n.default.join(s.default.homedir(),".cclens","runtime").replace(/[/.]/g,"-");async function v(t){let e=await i.promises.readFile(t,"utf8"),s=[];for(let t of e.split("\n")){let e=t.trim();if(e)try{s.push(JSON.parse(e))}catch{}}return s}function _(t){return t.replace(/\.jsonl$/i,"")}let k=new Map,j=new Map,N=new Map,b=null;function T(t){k.delete(t),j.delete(t),N.delete(t),b=null}async function x(t=h){let e;if(b&&b.root===t&&Date.now()-b.capturedAtMs<1e3)return b.files;try{e=await i.promises.readdir(t,{withFileTypes:!0})}catch{return[]}let s=e.filter(t=>t.isDirectory()&&t.name!==M).map(t=>t.name),a=(await Promise.all(s.map(async e=>{let s,a=n.default.join(t,e);try{s=await i.promises.readdir(a)}catch{return[]}let o=s.filter(t=>t.endsWith(".jsonl"));return(await Promise.all(o.map(async t=>{let s=n.default.join(a,t);try{let n=await i.promises.stat(s);return{projectDir:e,fileName:t,fullPath:s,mtimeMs:n.mtimeMs,sizeBytes:n.size}}catch{return null}}))).filter(t=>null!==t)}))).flat();return b={files:a,capturedAtMs:Date.now(),root:t},a}let I={input:0,output:0,cacheRead:0,cacheWrite:0};function A(t,e,i,s,n){for(let a of t){if(!a||"object"!=typeof a||"assistant"!==a.type)continue;let t=a.message;if(!t)continue;let o="string"==typeof t.id?t.id:void 0,l="string"==typeof a.requestId?a.requestId:void 0,u=null!=o&&null!=l?`${o}:${l}`:void 0;if(u&&e.has(u))continue;u&&e.add(u);let c=t.usage;if(c){let t=t=>"number"==typeof t?t:0,e=t(c.input_tokens),o=t(c.output_tokens),l=t(c.cache_read_input_tokens),u=t(c.cache_creation_input_tokens);if(i.input+=e,i.output+=o,i.cacheRead+=l,i.cacheWrite+=u,s){let t,i="string"==typeof a.timestamp?a.timestamp:void 0;if(i){let e=Date.parse(i);Number.isNaN(e)||(t=(0,r.toLocalDay)(e))}if(t=t??n){let i=s.get(t);i||(i={...I},s.set(t,i)),i.input+=e,i.output+=o,i.cacheRead+=l,i.cacheWrite+=u}}}}}async function C(t,e,s,a){let o,r={...I},l=new Set,u=new Map;A(t,l,r,u,a);let c=n.default.join(e,s,"subagents");try{o=await i.promises.readdir(c)}catch{return{usage:r,perDay:u}}let p=o.filter(t=>t.endsWith(".jsonl"));return 0===p.length||await Promise.all(p.map(async t=>{try{let e=await v(n.default.join(c,t));A(e,l,r,u,a)}catch{}})),{usage:r,perDay:u}}async function S(t,e){let s,a=n.default.join(t,e,"workflows");try{s=await i.promises.readdir(a)}catch{return{workflowCount:0,spawnedAgentCount:0,spans:[]}}let o=s.filter(t=>t.startsWith("wf_")&&t.endsWith(".json"));if(0===o.length)return{workflowCount:0,spawnedAgentCount:0,spans:[]};let r=0,l=[];return{workflowCount:(await Promise.all(o.map(async t=>{try{let e=JSON.parse(await i.promises.readFile(n.default.join(a,t),"utf8"));return"number"==typeof e.agentCount&&(r+=e.agentCount),"number"==typeof e.startTime&&"number"==typeof e.durationMs&&e.durationMs>0&&l.push({startMs:e.startTime,endMs:e.startTime+e.durationMs}),!0}catch{return!1}}))).filter(Boolean).length,spawnedAgentCount:r,spans:l}}async function D(t,e){let s;try{s=await i.promises.readdir(t,{withFileTypes:!0})}catch{return 0}return(await Promise.all(s.map(async s=>{let a=n.default.join(t,s.name);try{if(s.isDirectory())return e>0?await D(a,e-1):0;return(await i.promises.stat(a)).mtimeMs}catch{return 0}}))).reduce((t,e)=>Math.max(t,e),0)}async function P(t,e){let i=n.default.join(t,e),[s,a]=await Promise.all([D(n.default.join(i,"subagents"),2),D(n.default.join(i,"workflows"),0)]),o=Math.max(s,a);return o>0?o:void 0}async function R(t,e){let i=await P(n.default.dirname(e.fullPath),t.id),s=t.lastTimestamp?Date.parse(t.lastTimestamp):0,a=Math.max(Number.isFinite(s)?s:0,i??0);return a>0?{...t,lastActivityMs:a}:t}function U(t,e){if(0===e.length)return{};let i=[...t??[],...e].filter(t=>t.endMs>t.startMs).sort((t,e)=>t.startMs-e.startMs);if(0===i.length)return{};let s=[{...i[0]}];for(let t=1;t<i.length;t++){let e=i[t],n=s[s.length-1];e.startMs<=n.endMs?n.endMs=Math.max(n.endMs,e.endMs):s.push({...e})}let n=s.reduce((t,e)=>t+(e.endMs-e.startMs),0);return{activeSegments:s,airTimeMs:n}}async function O(t,e,i){let s=_(i.fileName),a=n.default.dirname(i.fullPath),o=t.firstTimestamp?(0,r.toLocalDay)(Date.parse(t.firstTimestamp)):void 0,{usage:l,perDay:u}=await C(e,a,s,o);t.totalUsage=l,t.dailyBreakdown=function(t,e,i){let s=new Map((t??[]).map(t=>[t.day,t])),n=[...new Set([...s.keys(),...e.keys()])].sort((t,e)=>t.localeCompare(e)).map(t=>({day:t,toolCalls:s.get(t)?.toolCalls??0,turns:s.get(t)?.turns??0,tokens:{...e.get(t)??I}}));if(n.length>0){let t=n.reduce((t,e)=>({input:t.input+e.tokens.input,output:t.output+e.tokens.output,cacheRead:t.cacheRead+e.tokens.cacheRead,cacheWrite:t.cacheWrite+e.tokens.cacheWrite}),{...I}),e=n[0].tokens;e.input+=i.input-t.input,e.output+=i.output-t.output,e.cacheRead+=i.cacheRead-t.cacheRead,e.cacheWrite+=i.cacheWrite-t.cacheWrite}return n}(t.dailyBreakdown,u,l)}async function F(t){let e=k.get(t.fullPath);if(e&&e.mtimeMs===t.mtimeMs&&e.sizeBytes===t.sizeBytes)return e.meta;try{let e=await v(t.fullPath),{meta:i}=m(e);await O(i,e,t);let s=_(t.fileName),a=n.default.dirname(t.fullPath),o=await S(a,s),r=i.cwd??w(t.projectDir),l=y(r),u={...i,id:s,filePath:t.fullPath,projectDir:t.projectDir,projectName:l.projectName,worktreeName:l.worktreeName,repoName:l.repoName,...o.workflowCount>0?{workflowCount:o.workflowCount,spawnedAgentCount:o.spawnedAgentCount}:{},...U(i.activeSegments,o.spans)};return k.set(t.fullPath,{meta:u,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes}),u}catch{return null}}async function B(t){let e=j.get(t.fullPath);if(e&&e.mtimeMs===t.mtimeMs&&e.sizeBytes===t.sizeBytes)return e.detail;try{let e=await v(t.fullPath),{meta:i,events:s}=m(e),a=_(t.fileName);await O(i,e,t);let o=await S(n.default.dirname(t.fullPath),a),r=i.cwd??w(t.projectDir),l=y(r),u={...i,id:a,filePath:t.fullPath,projectDir:t.projectDir,projectName:l.projectName,worktreeName:l.worktreeName,repoName:l.repoName,events:s,...o.workflowCount>0?{workflowCount:o.workflowCount,spawnedAgentCount:o.spawnedAgentCount}:{},...U(i.activeSegments,o.spans)};j.set(t.fullPath,{detail:u,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes});let c={...u};return delete c.events,k.set(t.fullPath,{meta:c,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes}),u}catch{return null}}async function z(t={}){let{root:e=h,limit:i=500,projectDir:s}=t,n=await x(e);s&&(n=n.filter(t=>t.projectDir===s)),n.sort((t,e)=>e.mtimeMs-t.mtimeMs);let a=n.slice(0,i);return(await Promise.all(a.map(async t=>{let e=await F(t);return e?R(e,t):null}))).filter(t=>null!==t)}async function $(t,e={}){let{root:i=h}=e,s=(await x(i)).find(e=>_(e.fileName)===t);if(!s)return null;let a=await B(s);if(!a)return a;let o=a.firstTimestamp?Date.parse(a.firstTimestamp):void 0,r=n.default.join(n.default.dirname(s.fullPath),_(s.fileName),"subagents"),l=n.default.join(n.default.dirname(s.fullPath),_(s.fileName),"workflows"),[u,c]=await Promise.all([E(r,o,a.events),J(l,o,a.events)]),p=c.reduce((t,e)=>t+e.agentCount,0);return R({...a,subagents:u,workflows:c,...c.length>0?{workflowCount:c.length,spawnedAgentCount:p}:{}},s)}function W(t){let e,i,s,n,a,o={...I},r=new Set,l=0,u=0,c=0,p=new Map;for(let d of t){if(!d||"object"!=typeof d)continue;l++;let t="string"==typeof d.timestamp?Date.parse(d.timestamp):NaN;if(!Number.isNaN(t)&&((void 0===e||t<e)&&(e=t),(void 0===i||t>i)&&(i=t)),void 0===a&&"user"===d.type&&(null===d.parentUuid||void 0===d.parentUuid)){let t=d.message,e=t?.content;if("string"==typeof e)a=e;else if(Array.isArray(e)){let t=e.find(t=>t&&"object"==typeof t&&"text"===t.type);t?.text&&(a=t.text)}}if("assistant"===d.type){let t=d.message;if(!t)continue;n||"string"!=typeof t.model||(n=t.model);let e="string"==typeof t.id?t.id:void 0,i="string"==typeof d.requestId?d.requestId:void 0,a=null!=e&&null!=i?`${e}:${i}`:void 0,l=!a||!r.has(a);if(a&&l&&r.add(a),l){u++;let e=t.usage;if(e){let t=t=>"number"==typeof t?t:0;o.input+=t(e.input_tokens),o.output+=t(e.output_tokens),o.cacheRead+=t(e.cache_read_input_tokens),o.cacheWrite+=t(e.cache_creation_input_tokens)}}let m=t.content;if(Array.isArray(m))for(let t of m)t&&"object"==typeof t&&("text"===t.type&&"string"==typeof t.text?s=t.text:"tool_use"===t.type&&"string"==typeof t.name&&(c++,p.set(t.name,(p.get(t.name)??0)+1)))}}let d=Array.from(p.entries()).map(([t,e])=>({name:t,count:e})).sort((t,e)=>e.count-t.count);return{startMs:e,endMs:i,totalUsage:o,eventCount:l,finalPreview:void 0!==s?s.replace(/\s+/g," ").trim().slice(0,240):void 0,finalText:s,model:n,toolCalls:d,toolCallCount:c,assistantMessageCount:u,initialPrompt:a}}async function E(t,e,s){let a;try{a=await i.promises.readdir(t)}catch{return[]}let o=new Map,r=[];for(let t of s)if("tool-call"===t.role&&"Agent"===t.toolName)for(let e of t.blocks){if(e?.type!=="tool_use"||"Agent"!==e.name)continue;let i=e.input??{},s="string"==typeof i.description?i.description:void 0,n=t.timestamp?Date.parse(t.timestamp):void 0,a={toolUseId:e.id,parentUuid:t.uuid??"",runInBackground:!0===i.run_in_background,prompt:"string"==typeof i.prompt?i.prompt:void 0,tsMs:n};s&&o.set(s,a),void 0!==n&&r.push(a)}r.sort((t,e)=>(t.tsMs??0)-(e.tsMs??0));let l=a.filter(t=>t.startsWith("agent-")&&t.endsWith(".jsonl"));return(await Promise.all(l.map(async s=>{let a,l=s.replace(/^agent-/,"").replace(/\.jsonl$/,""),u=n.default.join(t,s),c=n.default.join(t,`agent-${l}.meta.json`),p={};try{let t=await i.promises.readFile(c,"utf8");p=JSON.parse(t)}catch{}try{a=await v(u)}catch{return null}let d=W(a),m=p.description&&p.description.trim().length>0?p.description:void 0,f=m?o.get(m):function(t){let e;if(void 0===t)return;let i=1/0;for(let s of r){if(void 0===s.tsMs)continue;let n=Math.abs(t-s.tsMs);n<i&&n<=2e3&&(e=s,i=n)}return e}(d.startMs),g=m??(d.initialPrompt?d.initialPrompt.replace(/\s+/g," ").trim().slice(0,80):"(no description)"),y=f?.prompt??d.initialPrompt,h=void 0!==e&&void 0!==d.startMs?Math.max(0,d.startMs-e):void 0,w=void 0!==e&&void 0!==d.endMs?Math.max(0,d.endMs-e):void 0,M=void 0!==d.startMs&&void 0!==d.endMs?d.endMs-d.startMs:void 0;return{agentId:l,agentType:p.agentType??"unknown",description:g,startMs:d.startMs,endMs:d.endMs,durationMs:M,startTOffsetMs:h,endTOffsetMs:w,eventCount:d.eventCount,totalUsage:d.totalUsage,parentUuid:f?.parentUuid,parentToolUseId:f?.toolUseId,runInBackground:f?.runInBackground,prompt:y,finalPreview:d.finalPreview,finalText:d.finalText,model:d.model,toolCalls:d.toolCalls,toolCallCount:d.toolCallCount,assistantMessageCount:d.assistantMessageCount}}))).filter(t=>null!==t).sort((t,e)=>(t.startMs??0)-(e.startMs??0))}async function J(t,e,s){let a;try{a=await i.promises.readdir(t)}catch{return[]}let o=a.filter(t=>t.startsWith("wf_")&&t.endsWith(".json"));if(0===o.length)return[];let r=[];for(let t of s){if("tool-call"!==t.role||"Workflow"!==t.toolName)continue;let e=t.timestamp?Date.parse(t.timestamp):NaN;if(!Number.isNaN(e))for(let i of t.blocks)i?.type==="tool_use"&&"Workflow"===i.name&&r.push({toolUseId:i.id,parentUuid:t.uuid??"",tsMs:e})}r.sort((t,e)=>t.tsMs-e.tsMs);let l=t=>"number"==typeof t?t:void 0,u=t=>"string"==typeof t&&t.length>0?t:void 0;return(await Promise.all(o.map(async s=>{let a;try{a=JSON.parse(await i.promises.readFile(n.default.join(t,s),"utf8"))}catch{return null}let o=u(a.runId)??s.replace(/\.json$/,""),c=l(a.startTime),p=l(a.durationMs),d=void 0!==c&&void 0!==p?c+p:void 0,m=void 0!==e&&void 0!==c?Math.max(0,c-e):void 0,f=void 0!==e&&void 0!==d?Math.max(0,d-e):void 0,g=Array.isArray(a.phases)?a.phases.filter(t=>!!t&&"object"==typeof t&&"string"==typeof t.title).map(t=>({title:t.title,detail:u(t.detail)})):[],y=Array.isArray(a.logs)?a.logs.filter(t=>"string"==typeof t):[],h=(t,e)=>{let i=u(t);return void 0===i?void 0:i.length>e?i.slice(0,e)+"…":i},w=(Array.isArray(a.workflowProgress)?a.workflowProgress:[]).filter(t=>!!t&&"object"==typeof t&&"workflow_agent"===t.type).map(t=>({index:l(t.index)??0,label:u(t.label)??"(agent)",phaseIndex:l(t.phaseIndex),phaseTitle:u(t.phaseTitle),agentId:u(t.agentId),model:u(t.model),state:u(t.state),startedAt:l(t.startedAt),durationMs:l(t.durationMs),tokens:l(t.tokens),toolCalls:l(t.toolCalls),lastToolSummary:h(t.lastToolSummary,200),promptPreview:h(t.promptPreview,600),resultPreview:h(t.resultPreview,600)})).sort((t,e)=>t.index-e.index),M=(t=>{let e,i;if(void 0===t||0===r.length)return;let s=1/0,n=1/0;for(let a of r){let o=Math.abs(t-a.tsMs);!(o>6e4)&&(o<n&&(i=a,n=o),a.tsMs<=t&&o<s&&(e=a,s=o))}return e??i})(c);return{runId:o,name:u(a.workflowName)??o,description:u(a.summary),status:u(a.status)??"unknown",agentCount:l(a.agentCount)??0,toolCallCount:l(a.totalToolCalls)??0,totalTokens:l(a.totalTokens)??0,durationMs:p,startMs:c,endMs:d,startTOffsetMs:m,endTOffsetMs:f,model:u(a.defaultModel),phases:g,logs:y,agents:w,parentToolUseId:M?.toolUseId,parentUuid:M?.parentUuid}}))).filter(t=>null!==t).sort((t,e)=>(t.startMs??0)-(e.startMs??0))}async function L(t,e,i,s={}){let a,o,r,l,u,c,{root:p=h}=s;if(!/^[\w.-]+$/.test(e)||!/^[\w.-]+$/.test(i))return null;let d=(await x(p)).find(e=>_(e.fileName)===t);if(!d)return null;let m=n.default.join(n.default.dirname(d.fullPath),t,"subagents","workflows",e,`agent-${i}.jsonl`);try{a=await v(m)}catch{return null}let f=new Set;for(let t of a){if(!t||"object"!=typeof t)continue;let e=t.message?.content;if(Array.isArray(e))for(let t of e)t&&"object"==typeof t&&"tool_result"===t.type&&!0===t.is_error&&"string"==typeof t.tool_use_id&&f.add(t.tool_use_id)}let g=[],y=new Map,w={...I},M=new Set,k=0,j=0;for(let t of a){if(!t||"object"!=typeof t)continue;j++;let e="string"==typeof t.timestamp?Date.parse(t.timestamp):NaN;if(!Number.isNaN(e)&&((void 0===u||e<u)&&(u=e),(void 0===c||e>c)&&(c=e)),void 0===o&&"user"===t.type&&(null===t.parentUuid||void 0===t.parentUuid)){let e=t.message?.content;if("string"==typeof e)o=e;else if(Array.isArray(e)){let t=e.find(t=>t&&"object"==typeof t&&"text"===t.type);t?.text&&(o=t.text)}}if("assistant"!==t.type)continue;let i=t.message;if(!i)continue;l||"string"!=typeof i.model||(l=i.model);let s="string"==typeof i.id?i.id:void 0,n="string"==typeof t.requestId?t.requestId:void 0,a=null!=s&&null!=n?`${s}:${n}`:void 0,p=!a||!M.has(a);if(a&&p&&M.add(a),p){k++;let t=i.usage;if(t){let e=t=>"number"==typeof t?t:0;w.input+=e(t.input_tokens),w.output+=e(t.output_tokens),w.cacheRead+=e(t.cache_read_input_tokens),w.cacheWrite+=e(t.cache_creation_input_tokens)}}let d=i.content;if(Array.isArray(d)){for(let t of d)if(t&&"object"==typeof t){if("text"===t.type&&"string"==typeof t.text)r=t.text;else if("tool_use"===t.type&&"string"==typeof t.name&&(y.set(t.name,(y.get(t.name)??0)+1),g.length<2e3)){let e=function(t){if(!t||"object"!=typeof t)return"";let e=e=>"string"==typeof t[e]?t[e]:void 0;return e("command")??e("file_path")??e("path")??e("pattern")??e("url")??e("description")??e("query")??e("prompt")??e("old_string")??JSON.stringify(t)}(t.input),i=e.replace(/\s+/g," ").trim().slice(0,160),s=e.length>4e3?e.slice(0,4e3)+"…":e;g.push({index:g.length+1,tool:t.name,preview:i,full:s.length>i.length||s.includes("\n")?s:void 0,isError:"string"==typeof t.id&&f.has(t.id)})}}}}return{agentId:i,prompt:o,finalText:r,steps:g,toolCalls:Array.from(y.entries()).map(([t,e])=>({name:t,count:e})).sort((t,e)=>e.count-t.count),toolCallCount:g.length,assistantMessageCount:k,eventCount:j,totalUsage:w,model:l,durationMs:void 0!==u&&void 0!==c?c-u:void 0}}let G={...a.CLAUDE_CODE_METADATA,defaultRoot:h,async listSessions(t){let e=await z(t);for(let t of e)t.agent||(t.agent="claude-code");return e},async getSession(t,e){let i=await $(t,e);return i&&!i.agent&&(i.agent="claude-code"),i}};t.s(["DEFAULT_ROOT",0,h,"claudeCodeSource",0,G,"getSession",0,$,"invalidateClaudeCodeFile",0,T,"listSessions",0,z,"loadWorkflowAgentDetail",0,L,"summarizeSubagentLines",0,W],20629);let q=n.default.join(s.default.homedir(),".codex","sessions"),H=/^rollout-(\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2})-([0-9a-f-]+)\.jsonl$/;async function K(t){return i.promises.readdir(t).catch(()=>[])}async function Y(t){let e=[];for(let s of(await K(t))){if(!/^\d{4}$/.test(s))continue;let a=n.default.join(t,s);for(let t of(await K(a))){if(!/^\d{2}$/.test(t))continue;let s=n.default.join(a,t);for(let t of(await K(s))){if(!/^\d{2}$/.test(t))continue;let a=n.default.join(s,t);for(let t of(await K(a))){let s=H.exec(t);if(!s)continue;let o=n.default.join(a,t),r=await i.promises.stat(o).catch(()=>null);r&&e.push({filePath:o,sessionId:s[2],mtimeMs:r.mtimeMs,sizeBytes:r.size})}}}}return e}async function Z(t){let e=await i.promises.readFile(t,"utf8"),s=[];for(let t of e.split("\n")){let e=t.trim();if(e)try{s.push(JSON.parse(e))}catch{}}return s}function Q(t){return t.replace(/\s+/g," ").trim().slice(0,200)}function V(t,e){let i,s,n,a,r,l,u,c=[],p={input:0,output:0,cacheRead:0,cacheWrite:0},d=0,m=0,f=[],g=0;for(let t of e){if("object"!=typeof t||null===t)continue;let e="string"==typeof t.timestamp?t.timestamp:void 0;if(e){i||(i=e),s=e;let t=Date.parse(e);Number.isFinite(t)&&f.push(t)}let y="string"==typeof t.type?t.type:"",w=t.payload??{},M="string"==typeof w.type?w.type:"";if("session_meta"===y){"string"==typeof w.cwd&&(n=w.cwd);continue}if("turn_context"===y){"string"==typeof w.cwd&&(n=w.cwd),"string"==typeof w.model&&(a=w.model);continue}if("event_msg"===y&&"token_count"===M){let t=w.info??null,e=t?.total_token_usage??null;e&&(p.input=X(e.input_tokens)??p.input,p.output=X(e.output_tokens)??p.output,p.cacheRead=X(e.cached_input_tokens)??p.cacheRead);continue}if("event_msg"===y&&"user_message"===M){let i="string"==typeof w.message?w.message:"",s=Q(i),n=(0,o.isFrameworkInjectedUserInput)(i);i&&!n&&(r||(r=s),l=s,m+=1),c.push({index:g++,timestamp:e,role:"user",rawType:"event_msg/user_message",preview:s,blocks:i?[{type:"text",text:i}]:[],raw:t});continue}if("event_msg"===y&&"agent_message"===M){let i="string"==typeof w.message?w.message:"",s=Q(i);i&&(u=s),c.push({index:g++,timestamp:e,role:"agent",rawType:"event_msg/agent_message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:a,raw:t});continue}if("response_item"===y&&"reasoning"===M){let i=(w.summary??[]).map(t=>"string"==typeof t.text?t.text:"").join("\n").trim();c.push({index:g++,timestamp:e,role:"agent-thinking",rawType:"response_item/reasoning",preview:Q(i),blocks:i?[{type:"thinking",thinking:i}]:[],model:a,raw:t});continue}if("response_item"===y&&"message"===M&&"assistant"===w.role){let i=(w.content??[]).map(t=>"string"==typeof t.text?t.text:"").join("\n").trim(),s=Q(i);i&&(u=s),c.push({index:g++,timestamp:e,role:"agent",rawType:"response_item/message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:a,raw:t});continue}if("response_item"===y&&"function_call"===M){var h;let i="string"==typeof w.name?w.name:"(unknown)",s="string"==typeof w.call_id?w.call_id:void 0,n="string"==typeof w.arguments?w.arguments:"",o=function(t){if(!t)return null;try{return JSON.parse(t)}catch{return t}}(n);d+=1,c.push({index:g++,timestamp:e,role:"tool-call",rawType:"response_item/function_call",preview:`${i}(${(h=n).length<=80?h:h.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:s??`codex-${g}`,name:i,input:o}],toolName:i,toolUseId:s,model:a,raw:t});continue}if("response_item"===y&&"function_call_output"===M){let i="string"==typeof w.call_id?w.call_id:void 0,s="string"==typeof w.output?w.output:"",n=/process exited with code [1-9]/i.test(s);c.push({index:g++,timestamp:e,role:"tool-result",rawType:"response_item/function_call_output",preview:Q(s),blocks:[{type:"tool_result",tool_use_id:i??"",content:s,is_error:n}],toolUseId:i,toolResult:s,raw:t});continue}c.push({index:g++,timestamp:e,role:"meta",rawType:M?`${y}/${M}`:y,preview:"",blocks:[],raw:t})}if(p.input>0||p.output>0){let e=-1;for(let t=c.length-1;t>=0;t--){let i=c[t].role;if("agent"===i||"agent-thinking"===i||"tool-call"===i){e=t;break}}if(e>=0){let i=c[e];i.messageId=`codex-${t.sessionId}-total`,i.usage={input:p.input,output:p.output,cacheRead:p.cacheRead,cacheWrite:0}}}let w=i?Date.parse(i):void 0;if(void 0!==w&&Number.isFinite(w)){let t;for(let e of c){if(!e.timestamp)continue;let i=Date.parse(e.timestamp);Number.isFinite(i)&&(e.tOffsetMs=Math.max(0,i-w),void 0!==t&&(e.gapMs=Math.max(0,i-t)),t=i)}}let M=function(t){if(0===t.length)return[];let e=[...t].sort((t,e)=>t-e),i=[],s=e[0],n=e[0];for(let t=1;t<e.length;t++)e[t]-n>18e4&&(i.push({startMs:s,endMs:n}),s=e[t]),n=e[t];return i.push({startMs:s,endMs:n}),i}(f),v=M.reduce((t,e)=>t+(e.endMs-e.startMs),0),_=i&&s?Date.parse(s)-Date.parse(i):void 0,k=n?y(n):void 0,j=k?.projectName??"(unknown)",N=n?n.replace(/^\//,"-").replace(/\//g,"-"):"(unknown)";return{meta:{agent:"codex",id:t.sessionId,filePath:t.filePath,projectName:j,worktreeName:k?.worktreeName,repoName:k?.repoName,projectDir:N,sessionId:t.sessionId,firstTimestamp:i,lastTimestamp:s,durationMs:_&&Number.isFinite(_)?_:void 0,eventCount:c.length,model:a,cwd:n,totalUsage:p,status:"idle",firstUserPreview:r,lastUserPreview:l,lastAgentPreview:u,toolCallCount:d,turnCount:m,airTimeMs:v,activeSegments:M},events:c}}function X(t){return"number"==typeof t&&Number.isFinite(t)?t:void 0}let tt=new Map,te=new Map;async function ti(t={}){let e=t.root??q,i=await Y(e),s=[];for(let t of i){let e=tt.get(t.filePath);if(e&&e.mtimeMs===t.mtimeMs&&e.sizeBytes===t.sizeBytes){s.push(e.meta);continue}try{let e=await Z(t.filePath),{meta:i}=V(t,e);tt.set(t.filePath,{meta:i,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes}),s.push(i)}catch{}}return(s.sort((t,e)=>(e.firstTimestamp??"").localeCompare(t.firstTimestamp??"")),void 0!==t.limit)?s.slice(0,t.limit):s}async function ts(t,e={}){let i=e.root??q,s=(await Y(i)).find(e=>e.sessionId===t);if(!s)return null;let n=te.get(s.filePath);if(n&&n.mtimeMs===s.mtimeMs&&n.sizeBytes===s.sizeBytes)return n.detail;let a=await Z(s.filePath),{meta:o,events:r}=V(s,a),l={...o,events:r};return te.set(s.filePath,{detail:l,mtimeMs:s.mtimeMs,sizeBytes:s.sizeBytes}),l}async function tn(t={}){let e=t.root??q,i=await Y(e);if(0===i.length)return null;for(let t of(i.sort((t,e)=>e.mtimeMs-t.mtimeMs),i)){let e=await Z(t.filePath);for(let i=e.length-1;i>=0;i--){let s=e[i];if("object"!=typeof s||null===s||"event_msg"!==s.type)continue;let n=s.payload??{};if("token_count"!==n.type)continue;let a=n.rate_limits??null;if(!a)continue;let o=a.primary??null,r=a.secondary??null;if(void 0===X(o?.used_percent)&&void 0===X(r?.used_percent))continue;let l=X(o?.used_percent),u=X(r?.used_percent),c=X(o?.resets_at),p=X(r?.resets_at),d="string"==typeof a.plan_type?a.plan_type:null,m=Date.now(),f=void 0!==c&&m>1e3*c,g=void 0!==p&&m>1e3*p;return{five_hour:{utilization:f?0:l??null,resets_at:void 0!==c?new Date(1e3*c).toISOString():null},seven_day:{utilization:g?0:u??null,resets_at:void 0!==p?new Date(1e3*p).toISOString():null},plan_type:d,source_path:t.filePath}}}return null}let ta=n.default.join(s.default.homedir(),".gemini","tmp"),to=n.default.join(s.default.homedir(),".gemini","projects.json"),tr=/^session-.+\.(jsonl|json)$/;async function tl(t){return i.promises.readdir(t).catch(()=>[])}async function tu(t){let e=[];for(let s of(await tl(t))){let a=n.default.join(t,s,"chats");for(let t of(await tl(a))){if(!tr.test(t))continue;let o=n.default.join(a,t),r=await i.promises.stat(o).catch(()=>null);if(!r||!r.isFile())continue;let l=t.replace(/\.(jsonl|json)$/,"").split("-").pop()??t;e.push({filePath:o,slug:s,filenameId:l,format:t.endsWith(".jsonl")?"jsonl":"legacy-json",mtimeMs:r.mtimeMs,sizeBytes:r.size})}}return e}let tc=null;async function tp(){let t,e=await i.promises.stat(to).catch(()=>null);if(!e)return new Map;if(tc&&tc.mtimeMs===e.mtimeMs)return tc.slugToCwd;let s=await i.promises.readFile(to,"utf8").catch(()=>"");try{t=JSON.parse(s)}catch{t={}}let n=new Map;for(let[e,i]of Object.entries(t.projects??{}))"string"==typeof i&&n.set(i,e);return tc={mtimeMs:e.mtimeMs,slugToCwd:n},n}function td(t){return!!t&&"object"==typeof t&&"string"==typeof t.id&&"string"==typeof t.type}async function tm(t){let e=await i.promises.readFile(t.filePath,"utf8");if("legacy-json"===t.format){let t;try{t=JSON.parse(e)}catch{return{meta:{},messages:[]}}return{meta:{sessionId:"string"==typeof t.sessionId?t.sessionId:void 0,projectHash:"string"==typeof t.projectHash?t.projectHash:void 0,startTime:"string"==typeof t.startTime?t.startTime:void 0,lastUpdated:"string"==typeof t.lastUpdated?t.lastUpdated:void 0,summary:"string"==typeof t.summary?t.summary:void 0},messages:(Array.isArray(t.messages)?t.messages:[]).filter(td)}}let s={},n=new Map,a=[];for(let t of e.split("\n")){let e,i=t.trim();if(i){var o,r;try{e=JSON.parse(i)}catch{continue}if((o=e)&&"object"==typeof o&&"$rewindTo"in o){let t=e.$rewindTo,i=a.indexOf(t);if(i>=0){for(let t of a.slice(i))n.delete(t);a.length=i}continue}if((r=e)&&"object"==typeof r&&"$set"in r){Object.assign(s,e.$set);continue}if(td(e)){n.has(e.id)||a.push(e.id),n.set(e.id,e);continue}if("object"==typeof e&&null!==e){let t=e;"string"!=typeof t.sessionId||s.sessionId||(s.sessionId=t.sessionId,"string"==typeof t.projectHash&&(s.projectHash=t.projectHash),"string"==typeof t.startTime&&(s.startTime=t.startTime),"string"==typeof t.lastUpdated&&(s.lastUpdated=t.lastUpdated),"string"==typeof t.summary&&(s.summary=t.summary))}}}let l=[];for(let t of a){let e=n.get(t);e&&l.push(e)}return{meta:s,messages:l}}function tf(t){return t.replace(/\s+/g," ").trim().slice(0,200)}function tg(t){if(!t)return"";if("string"==typeof t)return t;let e=Array.isArray(t)?t:[t],i=[];for(let t of e){if(!t||"object"!=typeof t)continue;if("string"==typeof t.text){i.push(t.text);continue}let e=t.functionResponse;if(e){let t=e.response;"string"==typeof t?i.push(t):t&&"object"==typeof t&&("string"==typeof t.output?i.push(t.output):"string"==typeof t.error?i.push(`error: ${t.error}`):i.push(JSON.stringify(t)))}}return i.join("\n")}async function ty(t){let e,i,s,n,a,r,{meta:l,messages:u}=await tm(t),c=(await tp()).get(t.slug),p=[],d={input:0,output:0,cacheRead:0,cacheWrite:0},m=0,f=0,g=[],h=0;function w(t){if(p.push(t),t.timestamp&&"meta"!==t.role){e||(e=t.timestamp),i=t.timestamp;let s=Date.parse(t.timestamp);Number.isFinite(s)&&g.push(s)}}for(let t of u){let e=t.timestamp;if("user"===t.type){let i=tg(t.displayContent??t.content),s=tf(i),r=(0,o.isFrameworkInjectedUserInput)(i);i&&!r&&(n||(n=s),a=s,f+=1),w({index:h++,timestamp:e,role:"user",rawType:"gemini/user",preview:s,blocks:i?[{type:"text",text:i}]:[],messageId:t.id,raw:t});continue}if("gemini"===t.type){let i;"string"==typeof t.model&&(s=t.model);let n=tg(t.content),a=tf(n);if(n&&(r=a),t.tokens){let e=t.tokens,s={input:e.input??0,output:e.output??0,cacheRead:e.cached??0,cacheWrite:0};i=s,d.input+=s.input,d.output+=s.output,d.cacheRead+=s.cacheRead}for(let i of t.thoughts??[]){let t=[i.subject,i.description].filter(Boolean).join(": ");t&&w({index:h++,timestamp:i.timestamp??e,role:"agent-thinking",rawType:"gemini/thought",preview:tf(t),blocks:[{type:"thinking",thinking:t}],model:s,raw:i})}for(let o of(n?w({index:h++,timestamp:e,role:"agent",rawType:"gemini/agent",preview:a,blocks:[{type:"text",text:n}],messageId:t.id,model:s,usage:i,raw:t}):i&&w({index:h++,timestamp:e,role:"agent",rawType:"gemini/agent",preview:"",blocks:[],messageId:t.id,model:s,usage:i,raw:t}),t.toolCalls??[])){m+=1;let t=o.args?JSON.stringify(o.args):"";w({index:h++,timestamp:o.timestamp??e,role:"tool-call",rawType:"gemini/tool_call",preview:`${o.name}(${t.length<=80?t:t.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:o.id,name:o.name,input:o.args??{}}],toolName:o.name,toolUseId:o.id,model:s,raw:o});let i=(o.status??"").toLowerCase();if("success"===i||"error"===i||"cancelled"===i){let t=tg(o.result);w({index:h++,timestamp:o.timestamp??e,role:"tool-result",rawType:"gemini/tool_result",preview:tf(t),blocks:[{type:"tool_result",tool_use_id:o.id,content:t,is_error:"error"===i||"cancelled"===i}],toolUseId:o.id,toolResult:t,raw:o})}}continue}if("info"===t.type||"warning"===t.type||"error"===t.type){let i=tg(t.content);w({index:h++,timestamp:e,role:"meta",rawType:`gemini/${t.type}`,preview:tf(i),blocks:i?[{type:"text",text:i}]:[],raw:t});continue}}let M=e?Date.parse(e):void 0;if(void 0!==M&&Number.isFinite(M)){let t;for(let e of p){if(!e.timestamp)continue;let i=Date.parse(e.timestamp);Number.isFinite(i)&&(e.tOffsetMs=Math.max(0,i-M),void 0!==t&&(e.gapMs=Math.max(0,i-t)),t=i)}}let v=function(t){if(0===t.length)return[];let e=[...t].sort((t,e)=>t-e),i=[],s=e[0],n=e[0];for(let t=1;t<e.length;t++)e[t]-n>18e4&&(i.push({startMs:s,endMs:n}),s=e[t]),n=e[t];return i.push({startMs:s,endMs:n}),i}(g),_=v.reduce((t,e)=>t+(e.endMs-e.startMs),0),k=e&&i?Date.parse(i)-Date.parse(e):void 0,j=l.sessionId??t.filenameId,N=c?y(c):void 0,b=N?.projectName??t.slug,T=c?c.replace(/^\//,"-").replace(/\//g,"-"):t.slug;return{meta:{agent:"gemini",id:j,filePath:t.filePath,projectName:b,worktreeName:N?.worktreeName,repoName:N?.repoName,projectDir:T,sessionId:j,firstTimestamp:e,lastTimestamp:i,durationMs:k&&Number.isFinite(k)?k:void 0,eventCount:p.length,model:s,cwd:c,totalUsage:d,status:"idle",firstUserPreview:n,lastUserPreview:a,lastAgentPreview:r,toolCallCount:m,turnCount:f,airTimeMs:_,activeSegments:v},events:p}}let th=new Map,tw=new Map;async function tM(t={}){let e=t.root??ta,i=await tu(e),s=[];for(let t of i){let e=th.get(t.filePath);if(e&&e.mtimeMs===t.mtimeMs&&e.sizeBytes===t.sizeBytes){s.push(e.meta);continue}try{let{meta:e}=await ty(t);th.set(t.filePath,{meta:e,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes}),s.push(e)}catch{}}return(s.sort((t,e)=>(e.firstTimestamp??"").localeCompare(t.firstTimestamp??"")),void 0!==t.limit)?s.slice(0,t.limit):s}async function tv(t,e={}){let i,s=e.root??ta,n=await tu(s);for(let e of n)if(e.filenameId===t||t.startsWith(e.filenameId)){i=e;break}if(!i)for(let e of n){let{meta:s}=await ty(e).catch(()=>({meta:{id:""}}));if(s.id===t){i=e;break}}if(!i)return null;let a=tw.get(i.filePath);if(a&&a.mtimeMs===i.mtimeMs&&a.sizeBytes===i.sizeBytes)return a.detail;let{meta:o,events:r}=await ty(i),l={...o,events:r};return tw.set(i.filePath,{detail:l,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes}),l}let t_=n.default.join(s.default.homedir(),".gemini","antigravity-cli");async function tk(t){return i.promises.readdir(t).catch(()=>[])}let tj=null;async function tN(t){let e=n.default.join(t,"history.jsonl"),s=await i.promises.stat(e).catch(()=>null);if(!s)return new Map;if(tj&&tj.mtimeMs===s.mtimeMs)return tj.slugToCwd;let a=await i.promises.readFile(e,"utf8").catch(()=>""),o=new Map;for(let t of a.split("\n")){let e=t.trim();if(e)try{let t=JSON.parse(e);t.conversationId&&t.workspace&&o.set(t.conversationId,t.workspace)}catch{}}return tj={mtimeMs:s.mtimeMs,slugToCwd:o},o}async function tb(t){let e=await tN(t),s=[],a=n.default.join(t,"brain");for(let t of(await tk(a))){let o=n.default.join(a,t,".system_generated","logs","transcript.jsonl"),r=await i.promises.stat(o).catch(()=>null);r&&r.isFile()&&s.push({filePath:o,conversationId:t,cwd:e.get(t),mtimeMs:r.mtimeMs,sizeBytes:r.size})}return s}function tT(t){return t.replace(/\s+/g," ").trim().slice(0,200)}async function tx(t){let e,s,n,a,r,l,u=await i.promises.readFile(t.filePath,"utf8"),c=[],p=0,d=0,m=[],f=0;function g(t){if(c.push(t),t.timestamp&&"meta"!==t.role){e||(e=t.timestamp),s=t.timestamp;let i=Date.parse(t.timestamp);Number.isFinite(i)&&m.push(i)}}let h=[],w=[],M=new Map;for(let t of u.split("\n")){let e=t.trim();if(e)try{let t=JSON.parse(e),i=t.step_index;"number"==typeof i?M.has(i)?w[M.get(i)]=t:(M.set(i,w.length),w.push(t)):w.push(t)}catch{}}for(let t of w){let e=t.created_at||t.timestamp;if("USER_INPUT"===t.type){if("string"==typeof t.content){let e=t.content.match(/Model Selection` from .*? to (.*?)\.\s*No need to/);if(e){let t=e[1].trim();n=t=t.replace(/\s*\(.*?\)\s*$/,"").trim()}else{let e=t.content.match(/Model Selection` from .*? to ([^\n]+)/);if(e){let t=e[1].trim();t.endsWith(".")&&(t=t.slice(0,-1).trim()),n=t=t.replace(/\s*\(.*?\)\s*$/,"").trim()}}}let i=t.content||"",s=i.match(/<USER_REQUEST>([\s\S]*?)<\/USER_REQUEST>/);s&&(i=s[1].trim());let l=tT(i),u=(0,o.isFrameworkInjectedUserInput)(i);i&&!u&&(a||(a=l),r=l,d+=1),g({index:f++,timestamp:e,role:"user",rawType:"antigravity/user",preview:l,blocks:i?[{type:"text",text:i}]:[],messageId:t.step_index?.toString(),raw:t});continue}if("PLANNER_RESPONSE"===t.type){let i=t.thinking,s=t.content;if(i&&g({index:f++,timestamp:e,role:"agent-thinking",rawType:"antigravity/thought",preview:tT(i),blocks:[{type:"thinking",thinking:i}],model:n,raw:t}),s){let i=tT(s);l=i,g({index:f++,timestamp:e,role:"agent",rawType:"antigravity/agent",preview:i,blocks:[{type:"text",text:s}],messageId:t.step_index?.toString(),model:n,raw:t})}let a=t.tool_calls||[];for(let i=0;i<a.length;i++){let s=a[i];p+=1;let o=`tool-${t.step_index}-${i}`,r=s.args?JSON.stringify(s.args):"";h.push({id:o,name:s.name}),g({index:f++,timestamp:e,role:"tool-call",rawType:"antigravity/tool_call",preview:`${s.name}(${r.length<=80?r:r.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:o,name:s.name,input:s.args||{}}],toolName:s.name,toolUseId:o,model:n,raw:s})}continue}if("MODEL"===t.source&&"PLANNER_RESPONSE"!==t.type&&"ERROR_MESSAGE"!==t.type&&h.length>0){let i=h.shift(),s=i?i.id:`tool-${t.step_index}-unknown`,n="string"==typeof t.content?t.content:JSON.stringify(t.content||""),a="ERROR"===t.status||"FAILED"===t.status||"CANCELED"===t.status||!!t.error;g({index:f++,timestamp:e,role:"tool-result",rawType:"antigravity/tool_result",preview:tT(n),blocks:[{type:"tool_result",tool_use_id:s,content:n,is_error:a}],toolUseId:s,toolResult:n,raw:t});continue}let i=t.content||t.error||"";g({index:f++,timestamp:e,role:"meta",rawType:`antigravity/${t.type?.toLowerCase()||"unknown"}`,preview:tT(i),blocks:i?[{type:"text",text:i}]:[],raw:t})}let v=e?Date.parse(e):void 0;if(void 0!==v&&Number.isFinite(v)){let t;for(let e of c){if(!e.timestamp)continue;let i=Date.parse(e.timestamp);Number.isFinite(i)&&(e.tOffsetMs=Math.max(0,i-v),void 0!==t&&(e.gapMs=Math.max(0,i-t)),t=i)}}let _=function(t){if(0===t.length)return[];let e=[...t].sort((t,e)=>t-e),i=[],s=e[0],n=e[0];for(let t=1;t<e.length;t++)e[t]-n>18e4&&(i.push({startMs:s,endMs:n}),s=e[t]),n=e[t];return i.push({startMs:s,endMs:n}),i}(m),k=_.reduce((t,e)=>t+(e.endMs-e.startMs),0),j=e&&s?Date.parse(s)-Date.parse(e):void 0,N=t.conversationId,b=t.cwd,T=b?y(b):void 0,x=T?.projectName??t.conversationId,I=b?b.replace(/^\//,"-").replace(/\//g,"-"):t.conversationId;return{meta:{agent:"antigravity",id:N,filePath:t.filePath,projectName:x,worktreeName:T?.worktreeName,repoName:T?.repoName,projectDir:I,sessionId:N,firstTimestamp:e,lastTimestamp:s,durationMs:j&&Number.isFinite(j)?j:void 0,eventCount:c.length,model:n,cwd:b,totalUsage:{input:0,output:0,cacheRead:0,cacheWrite:0},status:"idle",firstUserPreview:a,lastUserPreview:r,lastAgentPreview:l,toolCallCount:p,turnCount:d,airTimeMs:k,activeSegments:_},events:c}}let tI=new Map,tA=new Map;async function tC(t={}){let e=t.root??t_,i=await tb(e),s=[];for(let t of i){let e=tI.get(t.filePath);if(e&&e.mtimeMs===t.mtimeMs&&e.sizeBytes===t.sizeBytes&&e.cwd===t.cwd){s.push(e.meta);continue}try{let{meta:e}=await tx(t);tI.set(t.filePath,{meta:e,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes,cwd:t.cwd}),s.push(e)}catch{}}return(s.sort((t,e)=>(e.firstTimestamp??"").localeCompare(t.firstTimestamp??"")),void 0!==t.limit)?s.slice(0,t.limit):s}async function tS(t,e={}){let i,s=e.root??t_;for(let e of(await tb(s)))if(e.conversationId===t){i=e;break}if(!i)return null;let n=tA.get(i.filePath);if(n&&n.mtimeMs===i.mtimeMs&&n.sizeBytes===i.sizeBytes&&n.cwd===i.cwd)return n.detail;let{meta:a,events:o}=await tx(i),r={...a,events:o};return tA.set(i.filePath,{detail:r,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes,cwd:i.cwd}),r}let tD=(e=s.default.homedir(),n.default.join(e,".config","Claude","local-agent-mode-sessions")),tP=/^local_[0-9a-f-]+$/;async function tR(t){return i.promises.readdir(t).catch(()=>[])}async function tU(t){let e=await i.promises.stat(t).catch(()=>null);return e?e.mtimeMs:0}async function tO(t){let e=[];for(let s of(await tR(t))){let a=n.default.join(t,s);for(let t of(await tR(a))){let s=n.default.join(a,t),o=await tU(n.default.join(s,"spaces.json"));for(let t of(await tR(s))){if(!tP.test(t))continue;let a=n.default.join(s,t,"audit.jsonl"),r=await i.promises.stat(a).catch(()=>null);if(!r||!r.isFile()||0===r.size)continue;let l=n.default.join(s,`${t}.json`),u=await tU(l);e.push({sessionId:t,auditPath:a,metaPath:l,workspaceDir:s,auditMtimeMs:r.mtimeMs,auditSize:r.size,metaMtimeMs:u,spacesMtimeMs:o})}}}return e}let tF=new Map;async function tB(t){let e=n.default.join(t,"spaces.json"),s=await i.promises.stat(e).catch(()=>null);if(!s)return new Map;let a=tF.get(t);if(a&&a.mtimeMs===s.mtimeMs)return a.spaceIdToPath;let o=await i.promises.readFile(e,"utf8").catch(()=>""),r=new Map;try{for(let t of JSON.parse(o).spaces??[]){let e="string"==typeof t.id?t.id:void 0,i=(Array.isArray(t.folders)?t.folders:[])[0],s="string"==typeof i?.path?i.path:void 0;e&&s&&r.set(e,s)}}catch{}return tF.set(t,{mtimeMs:s.mtimeMs,spaceIdToPath:r}),r}async function tz(t){let e=await i.promises.readFile(t,"utf8").catch(()=>"");if(!e)return{};try{let t=JSON.parse(e);return{spaceId:"string"==typeof t.spaceId?t.spaceId:void 0,userSelectedFolders:Array.isArray(t.userSelectedFolders)?t.userSelectedFolders.filter(t=>"string"==typeof t):void 0,cwd:"string"==typeof t.cwd?t.cwd:void 0,model:"string"==typeof t.model?t.model:void 0,title:"string"==typeof t.title?t.title:void 0,createdAt:"number"==typeof t.createdAt?t.createdAt:void 0,lastActivityAt:"number"==typeof t.lastActivityAt?t.lastActivityAt:void 0}}catch{return{}}}async function t$(t){let e=await i.promises.readFile(t,"utf8"),s=[];for(let t of e.split("\n")){let e=t.trim();if(e)try{s.push(JSON.parse(e))}catch{}}return s}async function tW(t){let e,[i,s,n]=await Promise.all([t$(t.auditPath),tz(t.metaPath),tB(t.workspaceDir)]),a=(e=new Map,i.forEach((t,s)=>{if("string"!=typeof t.uuid)return;let n=e.get(t.uuid);void 0===n?e.set(t.uuid,s):void 0===i[n].timestamp&&void 0!==t.timestamp&&e.set(t.uuid,s)}),i.filter((t,i)=>"string"!=typeof t.uuid||e.get(t.uuid)===i)),{mainLines:o,subagentGroups:r}=function(t){let e=[],i=new Map;for(let s of t){let t=s.parent_tool_use_id;if("string"==typeof t){let e=i.get(t);e?e.push(s):i.set(t,[s])}else e.push(s)}return{mainLines:e,subagentGroups:i}}(a),{meta:l,events:u}=m(o),c=function(t,e,i){if(0===t.size)return[];let s=new Map;for(let i of e){let e=i.message?.content;if(Array.isArray(e)){for(let n of e)if(n&&"object"==typeof n){if("tool_use"===n.type&&"Agent"===n.name&&"string"==typeof n.id){let t=n.input??{},e=s.get(n.id)??{};"string"==typeof i.uuid&&(e.parentUuid=i.uuid),"string"==typeof t.description&&(e.description=t.description),"string"==typeof t.subagent_type&&(e.agentType=t.subagent_type),"string"==typeof t.prompt&&(e.prompt=t.prompt),s.set(n.id,e)}else if("tool_result"===n.type&&"string"==typeof n.tool_use_id&&t.has(n.tool_use_id)){let t=s.get(n.tool_use_id)??{};t.finalText=function(t){if("string"==typeof t)return t;if(Array.isArray(t)){let e=[];for(let i of t)if(i&&"object"==typeof i&&"text"===i.type){let t=i.text;"string"==typeof t&&e.push(t)}if(e.length)return e.join("\n")}}(n.content)??t.finalText,s.set(n.tool_use_id,t)}}}}let n=[];for(let[e,a]of t){let t=W(a),o=s.get(e)??{},r=o.finalText??t.finalText,l=r?r.replace(/\s+/g," ").trim().slice(0,240):t.finalPreview,u=void 0!==i&&void 0!==t.startMs?Math.max(0,t.startMs-i):void 0,c=void 0!==i&&void 0!==t.endMs?Math.max(0,t.endMs-i):void 0,p=void 0!==t.startMs&&void 0!==t.endMs?t.endMs-t.startMs:void 0;n.push({agentId:e,agentType:o.agentType??"unknown",description:o.description??(o.prompt?o.prompt.replace(/\s+/g," ").trim().slice(0,80):"(no description)"),startMs:t.startMs,endMs:t.endMs,durationMs:p,startTOffsetMs:u,endTOffsetMs:c,eventCount:t.eventCount,totalUsage:t.totalUsage,parentUuid:o.parentUuid,parentToolUseId:e,runInBackground:!1,finalPreview:l,finalText:r,prompt:o.prompt,model:t.model,toolCalls:t.toolCalls,toolCallCount:t.toolCallCount,assistantMessageCount:t.assistantMessageCount})}return n.sort((t,e)=>(t.startMs??0)-(e.startMs??0)),n}(r,a,l.firstTimestamp?Date.parse(l.firstTimestamp):void 0),{projectName:p,projectDir:d,cwd:f}=function(t,e){let i;if(t.spaceId&&(i=e.get(t.spaceId)),!i&&t.userSelectedFolders&&t.userSelectedFolders.length>0&&(i=t.userSelectedFolders[0]),!i)return{projectName:"cowork:unspaced",projectDir:"cowork-unspaced"};let s=y(i);return{projectName:s.projectName,worktreeName:s.worktreeName,projectDir:i.replace(/^\//,"-").replace(/\//g,"-"),cwd:i}}(s,n);return{meta:{...l,agent:"cowork",id:t.sessionId,sessionId:t.sessionId,filePath:t.auditPath,projectName:p,projectDir:d,cwd:f??l.cwd,model:l.model??s.model},events:u,subagents:c}}function tE(t){return{auditMtimeMs:t.auditMtimeMs,auditSize:t.auditSize,metaMtimeMs:t.metaMtimeMs,spacesMtimeMs:t.spacesMtimeMs}}function tJ(t,e){return t.auditMtimeMs===e.auditMtimeMs&&t.auditSize===e.auditSize&&t.metaMtimeMs===e.metaMtimeMs&&t.spacesMtimeMs===e.spacesMtimeMs}let tL=new Map,tG=new Map;async function tq(t={}){let e=t.root??tD,i=await tO(e),s=[];for(let t of i){let e=tE(t),i=tL.get(t.auditPath);if(i&&tJ(i.key,e)){s.push(i.meta);continue}try{let{meta:i}=await tW(t);tL.set(t.auditPath,{meta:i,key:e}),s.push(i)}catch{}}return(s.sort((t,e)=>(e.firstTimestamp??"").localeCompare(t.firstTimestamp??"")),void 0!==t.limit)?s.slice(0,t.limit):s}async function tH(t,e={}){let i=e.root??tD,s=(await tO(i)).find(e=>e.sessionId===t);if(!s)return null;let n=tE(s),a=tG.get(s.auditPath);if(a&&tJ(a.key,n))return a.detail;let{meta:o,events:r,subagents:l}=await tW(s),u={...o,events:r,...l.length?{subagents:l}:{}};return tG.set(s.auditPath,{detail:u,key:n}),u}function tK(){let t=process.env.GROK_HOME||n.default.join(s.default.homedir(),".grok");return n.default.join(t,"sessions")}let tY=n.default.join(s.default.homedir(),".grok","sessions");async function tZ(t){return i.promises.readdir(t).catch(()=>[])}async function tQ(t){let e=await i.promises.readFile(t,"utf8").catch(()=>null);if(null==e)return null;try{return JSON.parse(e)}catch{return null}}async function tV(t,e){let s=n.default.join(t,".cwd"),a=await i.promises.readFile(s,"utf8").catch(()=>null);if(a&&a.trim())return a.trim();try{return decodeURIComponent(e)}catch{return e}}async function tX(t){let e=[];for(let s of(await tZ(t))){if("session_search.sqlite"===s||s.startsWith("."))continue;let a=n.default.join(t,s),o=await i.promises.stat(a).catch(()=>null);if(!o?.isDirectory())continue;let r=await tV(a,s);for(let t of(await tZ(a))){if("prompt_history.jsonl"===t||t.startsWith("."))continue;let o=n.default.join(a,t),l=n.default.join(o,"summary.json"),u=n.default.join(o,"updates.jsonl"),c=n.default.join(o,"signals.json"),[p,d,m]=await Promise.all([i.promises.stat(l).catch(()=>null),i.promises.stat(u).catch(()=>null),i.promises.stat(c).catch(()=>null)]);if(!p?.isFile())continue;let f=Math.max(p.mtimeMs,d?.mtimeMs??0),g=(d?.size??0)+p.size;e.push({dirPath:o,updatesPath:u,summaryPath:l,signalsPath:m?.isFile()?c:null,sessionId:t,groupName:s,decodedCwd:r,mtimeMs:f,sizeBytes:g})}}return e}function t0(){return{input:0,output:0,cacheRead:0,cacheWrite:0}}function t1(t){return t.replace(/\s+/g," ").trim().slice(0,200)}function t2(t){return t?"string"==typeof t?t:"string"==typeof t.text?t.text:"":""}async function t8(t){let e,s,n,a,r,[l,u,c]=await Promise.all([tQ(t.summaryPath),t.signalsPath?tQ(t.signalsPath):Promise.resolve(null),i.promises.readFile(t.updatesPath,"utf8").catch(()=>"")]),p=l?.info?.id??t.sessionId,d=l?.info?.cwd??t.decodedCwd,m=l?.current_model_id??u?.primaryModelId??u?.modelsUsed?.[0],f=[],g=t0();u?.contextTokensUsed&&u.contextTokensUsed>0&&(g.input=u.contextTokensUsed);let h=0,w=0,M=[],v=0,_=new Set,k=0;function j(t){f.push(t),function(t,i){if(!t||"meta"===i)return;e||(e=t),s=t;let n=Date.parse(t);Number.isFinite(n)&&M.push(n)}(t.timestamp,t.role)}let N=null;function b(){if(!N)return;let t=N.texts.join(""),e=t1(t);if("user"===N.kind){let i=!t||(0,o.isFrameworkInjectedUserInput)(t);t&&!i&&(n||(n=e),a=e,w+=1),t&&j({index:v++,timestamp:N.firstTs,role:"user",rawType:"grok/user_message",preview:e,blocks:[{type:"text",text:t}],messageId:N.promptId,raw:1===N.raw.length?N.raw[0]:N.raw})}else"agent"===N.kind?(t&&(r=e),t&&j({index:v++,timestamp:N.firstTs,role:"agent",rawType:"grok/agent_message",preview:e,blocks:[{type:"text",text:t}],messageId:N.promptId,model:N.model??m,raw:1===N.raw.length?N.raw[0]:N.raw})):"thought"===N.kind&&t&&j({index:v++,timestamp:N.firstTs,role:"agent-thinking",rawType:"grok/agent_thought",preview:e,blocks:[{type:"thinking",thinking:t}],messageId:N.promptId,model:N.model??m,raw:1===N.raw.length?N.raw[0]:N.raw});N=null}function T(t,e,i,s,n,a){(e||"user"!==t)&&(N&&N.kind!==t&&b(),N||(N={kind:t,texts:[],firstTs:i,lastTs:i,model:n,promptId:s,raw:[]}),e&&N.texts.push(e),N.lastTs=i??N.lastTs,n&&(N.model=n),s&&(N.promptId=s),N.raw.push(a))}for(let t of c.split("\n")){let e,i=t.trim();if(!i)continue;try{e=JSON.parse(i)}catch{continue}let s=e.params?.update;if(!s||"object"!=typeof s)continue;let n=s.sessionUpdate;if(!n)continue;let a=function(t){let e=t.params?._meta,i=e&&"number"==typeof e.agentTimestampMs?e.agentTimestampMs:void 0;if(null!=i&&Number.isFinite(i))return new Date(i).toISOString();let s=t.timestamp;if("number"==typeof s&&Number.isFinite(s))return new Date(s>1e12?s:1e3*s).toISOString()}(e),o=e.params?._meta??{},r=s._meta??{},l="string"==typeof o.promptId&&o.promptId||"string"==typeof r.promptId&&r.promptId||void 0,u="string"==typeof r.modelId&&r.modelId||"string"==typeof o.modelId&&o.modelId||void 0;u&&(m=u);let c=o.totalTokens;if("number"==typeof c&&c>k&&(k=c),"user_message_chunk"===n){T("user",t2(s.content),a,l,u,e);continue}if("agent_message_chunk"===n){T("agent",t2(s.content),a,l,u,e);continue}if("agent_thought_chunk"===n){T("thought",t2(s.content),a,l,u,e);continue}if(b(),"tool_call"===n){let t="string"==typeof s.toolCallId?s.toolCallId:`grok-${v}`,i=function(t){let e=t._meta;if(e&&"object"==typeof e){let t=e["x.ai/tool"];if(t&&"object"==typeof t){let e=t.name;if("string"==typeof e&&e)return e}}return"string"==typeof t.title&&t.title?(!t.title.includes(" ")&&!t.title.includes("`"),t.title):"tool"}(s),n=s.rawInput??{},o=n?JSON.stringify(n):"";h+=1,j({index:v++,timestamp:a,role:"tool-call",rawType:"grok/tool_call",preview:`${i}(${o.length<=80?o:o.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:t,name:i,input:n}],toolName:i,toolUseId:t,model:m,raw:e});continue}if("tool_call_update"===n){let t=function(t){let e=t.status;return"string"==typeof e?e:e&&"object"==typeof e&&"string"==typeof e.status?e.status:void 0}(s);if("completed"!==t&&"failed"!==t&&"error"!==t&&"cancelled"!==t)continue;let i="string"==typeof s.toolCallId?s.toolCallId:"";if(i&&_.has(i))continue;i&&_.add(i);let n=function(t){let e=t.content;if(Array.isArray(e)){let t=[];for(let i of e){if(!i||"object"!=typeof i)continue;if("string"==typeof i.text&&i.text){t.push(i.text);continue}let e=i.content;"string"==typeof e&&e?t.push(e):e&&"object"==typeof e&&"string"==typeof e.text&&t.push(e.text)}if(t.length)return t.join("\n")}let i=t.rawOutput;if(null==i)return"";if("string"==typeof i)return i;if("object"==typeof i){if("string"==typeof i.output_for_prompt)return i.output_for_prompt;if("string"==typeof i.summary_for_prompt)return i.summary_for_prompt;if(i.Content&&"object"==typeof i.Content){let t=i.Content;if("string"==typeof t.content)return t.content}if(i.TodosUpdated&&"object"==typeof i.TodosUpdated){let t=i.TodosUpdated;if("string"==typeof t.summary_for_prompt)return t.summary_for_prompt}if(Array.isArray(i.stdout)||Array.isArray(i.output))try{return JSON.stringify({type:i.type,exit_code:i.exit_code,note:"binary/stdout omitted"})}catch{return""}try{return JSON.stringify(i)}catch{return""}}return String(i)}(s),o="failed"===t||"error"===t||"cancelled"===t;j({index:v++,timestamp:a,role:"tool-result",rawType:"grok/tool_result",preview:t1(n),blocks:[{type:"tool_result",tool_use_id:i,content:n,is_error:o||void 0}],toolUseId:i||void 0,toolResult:n,raw:e});continue}if("turn_completed"===n)continue}b(),0===g.input&&k>0&&(g.input=k),!e&&l?.created_at&&(e=l.created_at),s||(s=l?.last_active_at??l?.updated_at??e),u?.toolCallCount!=null&&u.toolCallCount>h&&(h=u.toolCallCount),u?.turnCount!=null&&u.turnCount>w&&(w=u.turnCount);let x=e?Date.parse(e):void 0;if(void 0!==x&&Number.isFinite(x)){let t;for(let e of f){if(!e.timestamp)continue;let i=Date.parse(e.timestamp);Number.isFinite(i)&&(e.tOffsetMs=Math.max(0,i-x),void 0!==t&&(e.gapMs=Math.max(0,i-t)),t=i)}}let I=function(t){if(0===t.length)return[];let e=[...t].sort((t,e)=>t-e),i=[],s=e[0],n=e[0];for(let t=1;t<e.length;t++){let a=e[t];a-n>18e4&&(i.push({startMs:s,endMs:n}),s=a),n=a}return i.push({startMs:s,endMs:n}),i}(M),A=I.reduce((t,e)=>t+(e.endMs-e.startMs),0),C=e&&s?Date.parse(s)-Date.parse(e):void 0,S=d?y(d):void 0,D=S?.projectName??d??t.decodedCwd,P=t.groupName||(d?encodeURIComponent(d):"(unknown)");if(!n){let t=l?.generated_title||l?.session_summary;t&&(n=t1(t))}let R=await t3(t.dirPath);return{meta:{agent:"grok",id:p,filePath:t.updatesPath,projectName:D,worktreeName:S?.worktreeName,repoName:S?.repoName,projectDir:P,sessionId:p,firstTimestamp:e,lastTimestamp:s,lastActivityMs:s?Date.parse(s):void 0,durationMs:C&&Number.isFinite(C)?C:void 0,eventCount:f.length,model:m,cwd:d,gitBranch:l?.head_branch,agentName:l?.agent_name,totalUsage:g,status:"idle",firstUserPreview:n,lastUserPreview:a,lastAgentPreview:r,toolCallCount:h,turnCount:w,linesAdded:u?.agentLinesAdded,linesRemoved:u?.agentLinesRemoved,airTimeMs:A,activeSegments:I,...R>0?{spawnedAgentCount:R}:{}},events:f,sessionKind:l?.session_kind}}async function t3(t){let e=n.default.join(t,"subagents"),s=await tZ(e),a=0;for(let t of s){let s=await i.promises.stat(n.default.join(e,t)).catch(()=>null);s?.isDirectory()&&(a+=1)}return a}async function t4(t,e){let i=n.default.join(t.dirPath,"subagents"),s=await tZ(i),a=n.default.dirname(t.dirPath),o=[];for(let t of s){let s=n.default.join(i,t,"meta.json"),r=await tQ(s);if(!r)continue;let l=r.child_session_id??r.subagent_id??t,u=n.default.join(a,l),[c,p]=await Promise.all([tQ(n.default.join(u,"summary.json")),tQ(n.default.join(u,"signals.json"))]),d=c?.created_at?Date.parse(c.created_at):void 0,m=c?.last_active_at??c?.updated_at,f=m?Date.parse(m):void 0,g=void 0!==d&&Number.isFinite(d)?d:void 0,y=void 0!==f&&Number.isFinite(f)?f:void 0,h=t0();p?.contextTokensUsed&&(h.input=p.contextTokensUsed),o.push({agentId:l,agentType:r.subagent_type??c?.agent_name??"subagent",description:r.description&&r.description.trim()||c?.generated_title||c?.session_summary||l,startMs:g,endMs:y,durationMs:void 0!==g&&void 0!==y?Math.max(0,y-g):void 0,startTOffsetMs:void 0!==e&&void 0!==g?Math.max(0,g-e):void 0,endTOffsetMs:void 0!==e&&void 0!==y?Math.max(0,y-e):void 0,eventCount:c?.num_messages??c?.num_chat_messages??0,totalUsage:h,prompt:"string"==typeof r.prompt?r.prompt:void 0,model:c?.current_model_id??p?.primaryModelId,toolCallCount:p?.toolCallCount})}return o.sort((t,e)=>(t.startMs??0)-(e.startMs??0)),o}let t9=new Map,t6=new Map;async function t7(t={}){let e=t.root??tK(),i=await tX(e),s=[];for(let t of i){let e=await tQ(t.summaryPath);if(e?.session_kind==="subagent")continue;let i=t9.get(t.dirPath);if(i&&i.mtimeMs===t.mtimeMs&&i.sizeBytes===t.sizeBytes){s.push(i.meta);continue}try{let{meta:e,sessionKind:i}=await t8(t);if("subagent"===i)continue;t9.set(t.dirPath,{meta:e,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes}),s.push(e)}catch{}}return(s.sort((t,e)=>(e.firstTimestamp??"").localeCompare(t.firstTimestamp??"")),void 0!==t.limit)?s.slice(0,t.limit):s}async function t5(t,e={}){let i=e.root??tK(),s=await tX(i),n=s.find(e=>e.sessionId===t);if(!n){for(let e of s)try{let{meta:i,events:s}=await t8(e);if(i.id===t){let t={...i,events:s};return t6.set(e.dirPath,{detail:t,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),t}}catch{}return null}let a=t6.get(n.dirPath);if(a&&a.mtimeMs===n.mtimeMs&&a.sizeBytes===n.sizeBytes)return a.detail;let{meta:o,events:r}=await t8(n),l=o.firstTimestamp?Date.parse(o.firstTimestamp):void 0,u=await t4(n,void 0!==l&&Number.isFinite(l)?l:void 0),c={...o,events:r,...u.length>0?{subagents:u,spawnedAgentCount:u.length}:{}};return t6.set(n.dirPath,{detail:c,mtimeMs:n.mtimeMs,sizeBytes:n.sizeBytes}),t9.set(n.dirPath,{meta:{...o,...u.length>0?{spawnedAgentCount:u.length}:{}},mtimeMs:n.mtimeMs,sizeBytes:n.sizeBytes}),c}function et(){return process.env.CCLENS_HOME||n.default.join(s.default.homedir(),".cclens")}function ee(...t){return n.default.join(et(),...t)}function ei(t){T(t)}let es=[G,{...a.CODEX_METADATA,defaultRoot:q,listSessions:async t=>ti(t),getSession:async t=>ts(t),async usagePoller(){let t=await tn();return t?{captured_at:new Date().toISOString(),agent:"codex",five_hour:t.five_hour,seven_day:t.seven_day}:null}},{...a.GEMINI_METADATA,defaultRoot:ta,listSessions:async t=>tM(t),getSession:async t=>tv(t)},{...a.ANTIGRAVITY_METADATA,defaultRoot:t_,listSessions:async t=>tC(t),getSession:async t=>tS(t)},{...a.COWORK_METADATA,defaultRoot:tD,listSessions:async t=>tq(t),getSession:async t=>tH(t)},{...a.GROK_METADATA,defaultRoot:tY,listSessions:async t=>t7(t),getSession:async(t,e)=>t5(t,e)}];async function en(t={}){let e=await Promise.all(es.map(e=>e.listSessions(t))),i=[];for(let t of e)i.push(...t);return(i.sort((t,e)=>(e.firstTimestamp??"").localeCompare(t.firstTimestamp??"")),void 0!==t.limit)?i.slice(0,t.limit):i}async function ea(t){for(let e of es){let i=await e.getSession(t);if(i)return i}return null}function eo(){return ee("usage.jsonl")}function er(t){let e=eo();(0,i.mkdirSync)(n.default.dirname(e),{recursive:!0}),(0,i.appendFileSync)(e,JSON.stringify(t)+"\n","utf8")}function el(t){let e=eo();if(!(0,i.existsSync)(e))return;let s=(0,i.readFileSync)(e,"utf8").split("\n").filter(e=>{if(!e.trim())return!1;try{return JSON.parse(e).agent!==t}catch{return!0}});(0,i.mkdirSync)(n.default.dirname(e),{recursive:!0}),(0,i.writeFileSync)(e,s.join("\n")+(s.length?"\n":""),"utf8")}}];
|
|
1
|
+
module.exports=[39587,t=>{"use strict";let e={kind:"claude-code",displayName:"Claude Code",shortLabel:"Claude",accentColor:"var(--af-accent)",iconChar:"✦"},i={kind:"codex",displayName:"Codex (OpenAI)",shortLabel:"Codex",accentColor:"rgb(16, 163, 127)",iconChar:"◆"},s={kind:"gemini",displayName:"Gemini CLI",shortLabel:"Gemini",accentColor:"rgb(124, 92, 246)",iconChar:"✺"},a={kind:"antigravity",displayName:"Antigravity",shortLabel:"Agy",accentColor:"rgb(236, 72, 153)",iconChar:"⏃"},n={kind:"cowork",displayName:"Cowork",shortLabel:"Cowork",accentColor:"rgb(217, 119, 87)",iconChar:"⌘"},o={kind:"grok",displayName:"Grok Build",shortLabel:"Grok",accentColor:"rgb(100, 116, 139)",iconChar:"◈"},r=[e,i,s,a,n,{kind:"zai",displayName:"Z.ai",shortLabel:"Z.ai",accentColor:"rgb(59, 130, 246)",iconChar:"Z"},o];r.map(t=>t.kind),t.s(["ANTIGRAVITY_METADATA",0,a,"CLAUDE_CODE_METADATA",0,e,"CODEX_METADATA",0,i,"COWORK_METADATA",0,n,"GEMINI_METADATA",0,s,"GROK_METADATA",0,o,"agentMetadata",0,r])},36521,t=>{"use strict";let e=[/<system_instruction\b[^>]*>[\s\S]*?<\/system_instruction>\s*/gi],i=["<command-name>","<local-command-stdout>","<local-command-caveat>","<task-notification>","Base directory for this skill:","This session is being continued from a previous conversation","A session-scoped Stop hook is now active"];function s(t){if(!t)return t;let i=t;for(let t of e)i=i.replace(t,"");return i.trim()}t.s(["isFrameworkInjectedUserInput",0,function(t){if(!t)return!1;let e=s(t);if(!e)return!0;for(let t of i)if(e.startsWith(t))return!0;return!1},"stripFrameworkBoilerplate",0,s])},79357,t=>{"use strict";let e={input:0,output:0,cacheRead:0,cacheWrite:0},i=["/.claude/worktrees/","/.worktrees/","/claude/worktrees/"],s=/\/conductor\/workspaces\/[^/]+\/([^/]+)(?:\/|$)/;function a(t){for(let e of i){let i=t.lastIndexOf(e);if(i>=0)return{idx:i,marker:e}}return null}function n(t){let e=s.exec(t);if(!e)return null;let i=e[1],a=+!!e[0].endsWith("/");return{canonicalEndIdx:e.index+e[0].length-i.length-1-a,workspaceName:i}}let o="/.superset/worktrees/",r=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;function l(t){let e=t.indexOf(o);if(e<0)return null;let i=t.slice(e+o.length).split("/").filter(Boolean);if(0===i.length)return null;let s=r.test(i[0])?i[1]??i[0]:i[0];return{canonical:t.slice(0,e)+o+s,workspaceName:s}}function u(t){let e=t.replace(/\/{2,}/g,"/"),i=a(e);if(i)return e.slice(0,i.idx);let s=n(e);if(s)return e.slice(0,s.canonicalEndIdx);let o=l(e);return o?o.canonical:e}function d(t){let e=t.replace(/\/{2,}/g,"/"),i=a(e);if(i){let t=e.slice(i.idx+i.marker.length),s=t.indexOf("/");return s>=0?t.slice(0,s):t}let s=n(e);if(s)return s.workspaceName;let o=l(e);return o?o.workspaceName:null}function c(t){let e=u(t),i=e.replace(/\/+$/,"").split("/").filter(Boolean);return i[i.length-1]||e}function p(t){let i={sessionCount:t.length,totalDurationMs:0,totalAirTimeMs:0,totalTokens:{...e},totalToolCalls:0,totalTurns:0,avgTurnsPerSession:0,avgDurationMs:0,totalLinesAdded:0,totalLinesRemoved:0,totalFilesEdited:0};for(let e of t)i.totalDurationMs+=e.durationMs??0,i.totalAirTimeMs+=e.airTimeMs??e.durationMs??0,i.totalTokens.input+=e.totalUsage.input,i.totalTokens.output+=e.totalUsage.output,i.totalTokens.cacheRead+=e.totalUsage.cacheRead,i.totalTokens.cacheWrite+=e.totalUsage.cacheWrite,i.totalToolCalls+=e.toolCallCount??0,i.totalTurns+=e.turnCount??0,i.totalLinesAdded+=e.linesAdded??0,i.totalLinesRemoved+=e.linesRemoved??0,i.totalFilesEdited+=e.filesEdited??0;return t.length>0&&(i.avgTurnsPerSession=i.totalTurns/t.length,i.avgDurationMs=i.totalDurationMs/t.length),i}t.s(["canonicalProjectName",0,u,"computeBurstsFromSessions",0,function(t,e={}){let i=[];for(let e of t)e.activeSegments&&0!==e.activeSegments.length&&i.push({id:e.id,projectDir:e.projectDir,segments:e.activeSegments});return function(t,e){let i=e.minDurationMs??6e4,s=e.mergeGapMs??6e5,a=e.minActive??2,n=[];for(let e of t)for(let t of e.segments)t.endMs<=t.startMs||(n.push({ms:t.startMs,delta:1,sessionId:e.id}),n.push({ms:t.endMs,delta:-1,sessionId:e.id}));n.sort((t,e)=>t.ms-e.ms||e.delta-t.delta);let o=new Map,r=[],l=null;for(let t of n){if(1===t.delta)o.set(t.sessionId,(o.get(t.sessionId)??0)+1);else{let e=(o.get(t.sessionId)??0)-1;e<=0?o.delete(t.sessionId):o.set(t.sessionId,e)}let e=o.size;if(e>=a)if(l)for(let i of(l.endMs=t.ms,e>l.peak&&(l.peak=e),o.keys()))l.sessionIds.add(i);else l={startMs:t.ms,endMs:t.ms,peak:e,sessionIds:new Set(o.keys())};else l&&(l.endMs=t.ms,r.push(l),l=null)}l&&r.push(l);let u=r.filter(t=>t.endMs-t.startMs>=i),d=[];for(let t of u){let e=d[d.length-1];if(e&&t.startMs-e.endMs<=s)for(let i of(e.endMs=t.endMs,t.peak>e.peak&&(e.peak=t.peak),t.sessionIds))e.sessionIds.add(i);else d.push({startMs:t.startMs,endMs:t.endMs,peak:t.peak,sessionIds:new Set(t.sessionIds)})}let c=new Map;for(let e of t)c.set(e.id,e.projectDir);return d.map(t=>{let e=Array.from(new Set(Array.from(t.sessionIds).map(t=>c.get(t)).filter(t=>!!t)));return{startMs:t.startMs,endMs:t.endMs,peak:t.peak,sessionIds:Array.from(t.sessionIds),projectDirs:e,crossProject:e.length>1}})}(i,e)},"groupByProject",0,function(t){let e=new Map,i=function(t){let e=new Map;for(let i of t)i.repoName&&e.set(c(i.projectName),i.repoName);return t=>t.repoName??e.get(c(t.projectName))??c(t.projectName)}(t);for(let s of t){let t=i(s),a=e.get(t);a||(a={projectDir:t,projectName:t,sessions:[],rawProjectDirs:[],worktreeCount:0,metrics:p([]),perAgent:[],lastActiveMs:void 0},e.set(t,a)),a.sessions.push(s),a.rawProjectDirs.includes(s.projectDir)||a.rawProjectDirs.push(s.projectDir);let n=s.lastTimestamp?Date.parse(s.lastTimestamp):void 0;n&&(!a.lastActiveMs||n>a.lastActiveMs)&&(a.lastActiveMs=n)}for(let t of e.values()){t.metrics=p(t.sessions);let e=new Set;for(let i of t.sessions){let t=i.worktreeName??d(i.projectName)??(i.cwd?d(i.cwd):null);t&&e.add(t)}t.worktreeCount=e.size;let i=new Map;for(let e of t.sessions){let t=e.agent??"claude-code",s=i.get(t);s||(s={agent:t,sessions:0},i.set(t,s)),s.sessions+=1}t.perAgent=Array.from(i.values()).sort((t,e)=>e.sessions-t.sessions)}return Array.from(e.values()).sort((t,e)=>(e.lastActiveMs??0)-(t.lastActiveMs??0))},"projectKey",0,c,"toLocalDay",0,function(t){let e=new Date(t),i=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0");return`${i}-${s}-${a}`},"worktreeName",0,d])},43427,20629,t=>{"use strict";let e;t.s(["agentSources",()=>ea,"appendUsageSnapshot",()=>el,"cclensHome",()=>ee,"cclensPath",()=>ei,"getAnySession",()=>eo,"invalidateFile",()=>es,"listAllSessions",()=>en,"pruneUsageAgent",()=>eu],43427);var i=t.i(2157),s=t.i(60526),a=t.i(50227),n=t.i(39587),o=t.i(36521),r=t.i(79357);let l={input:0,output:0,cacheRead:0,cacheWrite:0};function u(t,e=200){let i=t.replace(/<[^>]+>/g,"").replace(/\s+/g," ").trim();return i.length>e?i.slice(0,e-1)+"…":i}let d=/^\s*<teammate-message\s+teammate_id="([^"]+)"[^>]*>([\s\S]*?)<\/teammate-message>/;function c(t){let e=t.match(d);if(!e)return;let i=e[1],s=e[2].trim(),a="message";if(s.startsWith("{"))try{let t=JSON.parse(s);"idle_notification"===t.type?a="idle-notification":"shutdown_request"===t.type?a="shutdown-request":"shutdown_approved"===t.type?a="shutdown-approved":"task_assignment"===t.type?a="task-assignment":"teammate_terminated"===t.type&&(a="teammate-terminated")}catch{}return{teammateId:i,body:s,kind:a}}function p(t){if(!t||"object"!=typeof t)return;let e=t=>"number"==typeof t?t:0;return{input:e(t.input_tokens),output:e(t.output_tokens),cacheRead:e(t.cache_read_input_tokens),cacheWrite:e(t.cache_creation_input_tokens)}}function m(t){let e,i,s,a,n,d,m,f,g,y,h,w=[];for(let e=0;e<t.length;e++){let i=function(t,e){if(!t||"object"!=typeof t)return null;let i=String(t.type??""),s=t.uuid,a=t.parentUuid??null,n=t.timestamp;if("assistant"===i){let o,r,l,d=t.message??{},c=d.content??[],m=p(d.usage),f=d.model,g=t.requestId,y=d.id,h=d.stop_reason,w=c[0],M="agent";return w?.type==="thinking"?(M="agent-thinking",o="[thinking] "+u(w.thinking,140)):w?.type==="tool_use"?(M="tool-call",r=w.name,l=w.id,o=`${w.name} `+u(JSON.stringify(w.input??{}),100)):o=w?.type==="text"?u(w.text,200):`<assistant:${w?.type??"empty"}>`,{index:e,uuid:s,parentUuid:a,timestamp:n,role:M,rawType:i,preview:o,blocks:c,usage:m,model:f,requestId:g,messageId:y,stopReason:h,toolName:r,toolUseId:l,raw:t}}if("user"===i){let r=(t.message??{}).content;if("string"==typeof r){let l=(0,o.stripFrameworkBoilerplate)(r),d=c(l);return{index:e,uuid:s,parentUuid:a,timestamp:n,role:"user",rawType:i,preview:u(l,200),blocks:l?[{type:"text",text:l}]:[],raw:t,teammateMessage:d}}if(Array.isArray(r)){let l=r[0];if(l?.type==="tool_result")return{index:e,uuid:s,parentUuid:a,timestamp:n,role:"tool-result",rawType:i,preview:u("string"==typeof l.content?l.content:JSON.stringify(l.content),200),blocks:r,toolUseId:l.tool_use_id,toolResult:t.toolUseResult,raw:t};let d=r.find(t=>t?.type==="text"),p=d?(0,o.stripFrameworkBoilerplate)(d.text):"",m=d?r.map(t=>t===d?{type:"text",text:p}:t):r,f=p?c(p):void 0;return{index:e,uuid:s,parentUuid:a,timestamp:n,role:"user",rawType:i,preview:p?u(p,200):u(JSON.stringify(r),200),blocks:m,raw:t,teammateMessage:f}}}if("attachment"===i){let o=t.attachment??{},r=String(o.type??"attachment"),l=`<attachment: ${r}>`;return"string"==typeof o.content&&o.content.length>0?l=`[${r}] `+u(o.content,140):Array.isArray(o.addedNames)&&(l=`[${r}] +${o.addedNames.length} names`),{index:e,uuid:s,parentUuid:a,timestamp:n,role:"system",rawType:i,preview:l,blocks:[{type:"text",text:JSON.stringify(o,null,2)}],attachmentType:r,raw:t}}return{index:e,uuid:s,parentUuid:a,timestamp:n,role:"meta",rawType:i||"unknown",preview:`${i}: ${u(JSON.stringify(t),140)}`,blocks:[{type:"text",text:JSON.stringify(t,null,2)}],raw:t}}(t[e],e);i&&w.push(i)}for(let t of w){if(!t.timestamp)continue;let s=Date.parse(t.timestamp);!Number.isNaN(s)&&((void 0===e||s<e)&&(e=s),(void 0===i||s>i)&&(i=s))}let M=void 0!==e?new Date(e).toISOString():void 0,v=void 0!==i?new Date(i).toISOString():void 0;for(let t of w){if(!t.timestamp)continue;let i=Date.parse(t.timestamp);Number.isNaN(i)||void 0!==e&&(t.tOffsetMs=Math.max(0,i-e))}let _=w.filter(t=>{let e;return t.timestamp&&("user"===(e=t.role)||"agent"===e||"agent-thinking"===e||"tool-call"===e||"tool-result"===e)}).map(t=>({e:t,ms:Date.parse(t.timestamp)})).filter(t=>!Number.isNaN(t.ms)).sort((t,e)=>t.ms-e.ms);for(let t=1;t<_.length;t++)_[t].e.gapMs=Math.max(0,_[t].ms-_[t-1].ms);let k=w.filter(t=>t.timestamp).map(t=>Date.parse(t.timestamp)).filter(t=>!Number.isNaN(t)).sort((t,e)=>t-e),N=[],T=0;if(k.length>0){let t=k[0],e=k[0];for(let i=1;i<k.length;i++){let s=k[i],a=s-e;a>18e4?(N.push({startMs:t,endMs:e}),t=s):a>0&&(T+=a),e=s}N.push({startMs:t,endMs:e})}let j=new Map,b=[];for(let t of w){if(!t.timestamp)continue;let e=Date.parse(t.timestamp);if(!Number.isNaN(e)){if("assistant"===t.rawType&&t.usage&&t.messageId){let i=j.get(t.messageId);i?(i.siblings.push(t),e<i.ms&&(i.rep=t,i.ms=e)):j.set(t.messageId,{rep:t,ms:e,siblings:[t]})}else if("system"===t.rawType){let i=t.raw;if(i?.subtype!=="compact_boundary")continue;let s=i.compactMetadata??{};b.push({ms:e,trigger:"manual"===s.trigger?"manual":"auto",preTokens:"number"==typeof s.preTokens?s.preTokens:0})}}}let I=[...j.values()].sort((t,e)=>t.ms-e.ms);b.sort((t,e)=>t.ms-e.ms);let S=0,C=0,x=(t,e)=>{for(let i of t.siblings)i.coldResume=e;S++,C+=e.writeTokens},A=new Set;for(let t of b){let e,i=I.find(e=>e.ms>t.ms&&(e.rep.usage?.cacheWrite??0)>=1e3);if(!i)continue;for(let i=I.length-1;i>=0;i--)if(I[i].ms<=t.ms){e=I[i].ms;break}let s=i.rep.usage,a=s.cacheWrite+s.cacheRead;x(i,{trigger:"compact",gapMs:void 0!==e?i.ms-e:0,writeTokens:s.cacheWrite,writeRatio:a>0?s.cacheWrite/a:0,compact:{trigger:t.trigger,preTokens:t.preTokens}}),A.add(i.rep.messageId)}for(let t=1;t<I.length;t++){let e=I[t-1],i=I[t];if(A.has(i.rep.messageId))continue;let s=i.rep.usage,a=s.cacheWrite+s.cacheRead,n=a>0?s.cacheWrite/a:0,o=i.ms-e.ms;o>3e5&&s.cacheWrite>=1e3&&n>=.3&&x(i,{trigger:"idle",gapMs:o,writeTokens:s.cacheWrite,writeRatio:n})}let P={...l},D=new Set,U="",R=!1,O=!1,B=0,F=0,z=0,$=0,W=new Set,E=new Map,J=void 0!==e?(0,r.toLocalDay)(e):void 0,L=t=>{let e;if(t){let i=Date.parse(t);Number.isNaN(i)||(e=(0,r.toLocalDay)(i))}if(!(e=e??J))return;let i=E.get(e);return i||(i={toolCalls:0,turns:0,tokens:{...l}},E.set(e,i)),i};for(let t of w){if("tool-call"===t.role){B++;let e=L(t.timestamp);e&&e.toolCalls++;let i=t.blocks.find(t=>t&&"tool_use"===t.type);if(i){let t=i.input??{};if("TeamCreate"===i.name&&(R=!0),"SendMessage"===i.name){let e="string"==typeof t.to?t.to:"";e&&"team-lead"!==e&&(O=!0)}let e="string"==typeof t.file_path?t.file_path:void 0;if("Edit"===i.name&&e){W.add(e);let i="string"==typeof t.old_string?t.old_string:"",s="string"==typeof t.new_string?t.new_string:"",a=i?i.split("\n").length:0,n=s?s.split("\n").length:0;z+=Math.max(0,n-a),$+=Math.max(0,a-n)}else if("Write"===i.name&&e){W.add(e);let i="string"==typeof t.content?t.content:"";z+=i?i.split("\n").length:0}}}if("user"===t.role){let e=function(t){let e=t?.content;if("string"==typeof e)return e;if(Array.isArray(e)){for(let t of e)if(t&&"object"==typeof t&&"text"===t.type&&"string"==typeof t.text)return t.text}return""}(t.raw?.message),i=(0,o.isFrameworkInjectedUserInput)(e),s=void 0!==t.teammateMessage&&!f;if(!i&&!s){g||(g=t.teammateMessage?t.teammateMessage.body:t.preview),F++;let e=L(t.timestamp);e&&e.turns++,h=t.preview}}"agent"===t.role&&(y=t.preview)}for(let e of t)if(e&&"object"==typeof e&&("string"!=typeof e.sessionId||U||(U=e.sessionId),"string"!=typeof e.cwd||a||(a=e.cwd),"string"!=typeof e.gitBranch||n||(n=e.gitBranch),"string"!=typeof e.entrypoint||d||(d=e.entrypoint),"string"!=typeof e.teamName||m||(m=e.teamName),"string"!=typeof e.agentName||f||(f=e.agentName),"assistant"===e.type)){let t=e.message;if(t){"string"!=typeof t.model||s||(s=t.model);let i="string"==typeof t.id?t.id:void 0;if(i&&D.has(i))continue;i&&D.add(i);let a=p(t.usage);if(a){P.input+=a.input,P.output+=a.output,P.cacheRead+=a.cacheRead,P.cacheWrite+=a.cacheWrite;let t=L("string"==typeof e.timestamp?e.timestamp:void 0);t&&(t.tokens.input+=a.input,t.tokens.output+=a.output,t.tokens.cacheRead+=a.cacheRead,t.tokens.cacheWrite+=a.cacheWrite)}}}return{events:w,meta:{sessionId:U,firstTimestamp:M,lastTimestamp:v,durationMs:void 0!==e&&void 0!==i?i-e:void 0,eventCount:w.length,model:s,cwd:a,gitBranch:n,entrypoint:d,totalUsage:P,status:"idle",firstUserPreview:g,lastUserPreview:h,lastAgentPreview:y,toolCallCount:B,turnCount:F,dailyBreakdown:Array.from(E.entries()).map(([t,e])=>({day:t,toolCalls:e.toolCalls,turns:e.turns,tokens:e.tokens})).sort((t,e)=>t.day.localeCompare(e.day)),airTimeMs:T,activeSegments:N,linesAdded:z,linesRemoved:$,filesEdited:W.size,coldResumeCount:S,cacheRebuildTokens:C,teamName:m,agentName:f,isTeamLead:void 0!==m&&void 0===f&&(R||O)}}}let f=/^(?:(?:https?|ssh|git):\/\/)?(?:[^@/]+@)?([^/:]+)[:/](.+?)(?:\.git)?\/?$/;function g(t){try{return(0,i.realpathSync)(t)}catch{return t}}function y(t){let e=g(t.replace(/\/{2,}/g,"/"));try{let t=function(t){let e;if(!t||!(0,a.isAbsolute)(t))return null;let n=(e=g((0,s.homedir)()),t===e||t.startsWith(`${e}/`)?e:void 0);for(let e=t.replace(/\/+$/,"")||t;;e=(0,a.dirname)(e)){if(e===n)return null;let t=function(t){let e=(0,a.join)(t,".git"),s=(0,i.statSync)(e,{throwIfNoEntry:!1});if(!s)return null;if(s.isDirectory())return{root:t,gitDir:e,commonDir:e};let n=function(t,e){let i=e.match(/^gitdir:\s*(.+)\s*$/m);if(!i)return;let s=i[1].trim();return(0,a.isAbsolute)(s)?s:(0,a.resolve)(t,s)}(t,(0,i.readFileSync)(e,"utf8"));return n?{root:t,gitDir:n,commonDir:function(t){let e=(0,a.join)(t,"commondir");if(!(0,i.existsSync)(e))return;let s=(0,i.readFileSync)(e,"utf8").trim();if(s)return(0,a.isAbsolute)(s)?s:(0,a.resolve)(t,s)}(n)}:{root:t}}(e);if(t)return t;if((0,a.dirname)(e)===e)return null}}(e);if(t){let s=g(function(t){if(t)return".git"===(0,a.basename)(t)?(0,a.dirname)(t):void 0}(t.commonDir)??t.root),n=g(t.root),o=s!==n?(0,r.worktreeName)(e)??(0,a.basename)(t.root):void 0,l={projectName:s};o&&(l.worktreeName=o);let u=function(t){let e=t.commonDir??t.gitDir;if(!e)return;let s=(0,a.join)(e,"config");if(!(0,i.existsSync)(s))return;let n=function(t){let e=!1;for(let i of t.split("\n")){let t=i.trim();if(t.startsWith("[")){e=/^\[remote\s+"origin"\]/.test(t);continue}if(!e)continue;let s=t.match(/^url\s*=\s*(.+)$/);if(s)return s[1].trim()}}((0,i.readFileSync)(s,"utf8"));return n?function(t){let e=t.match(f);if(!e)return;let i=e[1],s=e[2].split("/").filter(Boolean);if(s.length<2)return;let a=s[s.length-1],n=s.slice(0,-1).join("/");return{host:i,owner:n,name:a,url:t,webUrl:`https://${i}/${n}/${a}`}}(n):void 0}(t);return u&&(l.remote=u,l.repoName=u.name),l}}catch{}let n=(0,r.canonicalProjectName)(e),o=(0,r.worktreeName)(e)??void 0;return o?{projectName:n,worktreeName:o}:{projectName:n}}let h=a.default.join(s.default.homedir(),".claude","projects");function w(t){return t.startsWith("-")?"/"+t.slice(1).replace(/-/g,"/"):t}let M=a.default.join(s.default.homedir(),".cclens","runtime").replace(/[/.]/g,"-");async function v(t){let e=await i.promises.readFile(t,"utf8"),s=[];for(let t of e.split("\n")){let e=t.trim();if(e)try{s.push(JSON.parse(e))}catch{}}return s}function _(t){return t.replace(/\.jsonl$/i,"")}let k=new Map,N=new Map,T=new Map,j=null;function b(t){k.delete(t),N.delete(t),T.delete(t),j=null}async function I(t=h){let e;if(j&&j.root===t&&Date.now()-j.capturedAtMs<1e3)return j.files;try{e=await i.promises.readdir(t,{withFileTypes:!0})}catch{return[]}let s=e.filter(t=>t.isDirectory()&&t.name!==M).map(t=>t.name),n=(await Promise.all(s.map(async e=>{let s,n=a.default.join(t,e);try{s=await i.promises.readdir(n)}catch{return[]}let o=s.filter(t=>t.endsWith(".jsonl"));return(await Promise.all(o.map(async t=>{let s=a.default.join(n,t);try{let a=await i.promises.stat(s);return{projectDir:e,fileName:t,fullPath:s,mtimeMs:a.mtimeMs,sizeBytes:a.size}}catch{return null}}))).filter(t=>null!==t)}))).flat();return j={files:n,capturedAtMs:Date.now(),root:t},n}let S={input:0,output:0,cacheRead:0,cacheWrite:0};function C(t,e,i,s,a){for(let n of t){if(!n||"object"!=typeof n||"assistant"!==n.type)continue;let t=n.message;if(!t)continue;let o="string"==typeof t.id?t.id:void 0,l="string"==typeof n.requestId?n.requestId:void 0,u=null!=o&&null!=l?`${o}:${l}`:void 0;if(u&&e.has(u))continue;u&&e.add(u);let d=t.usage;if(d){let t=t=>"number"==typeof t?t:0,e=t(d.input_tokens),o=t(d.output_tokens),l=t(d.cache_read_input_tokens),u=t(d.cache_creation_input_tokens);if(i.input+=e,i.output+=o,i.cacheRead+=l,i.cacheWrite+=u,s){let t,i="string"==typeof n.timestamp?n.timestamp:void 0;if(i){let e=Date.parse(i);Number.isNaN(e)||(t=(0,r.toLocalDay)(e))}if(t=t??a){let i=s.get(t);i||(i={...S},s.set(t,i)),i.input+=e,i.output+=o,i.cacheRead+=l,i.cacheWrite+=u}}}}}async function x(t,e,s,n){let o,r={...S},l=new Set,u=new Map;C(t,l,r,u,n);let d=a.default.join(e,s,"subagents");try{o=await i.promises.readdir(d)}catch{return{usage:r,perDay:u}}let c=o.filter(t=>t.endsWith(".jsonl"));return 0===c.length||await Promise.all(c.map(async t=>{try{let e=await v(a.default.join(d,t));C(e,l,r,u,n)}catch{}})),{usage:r,perDay:u}}async function A(t,e){let s,n=a.default.join(t,e,"workflows");try{s=await i.promises.readdir(n)}catch{return{workflowCount:0,spawnedAgentCount:0,spans:[]}}let o=s.filter(t=>t.startsWith("wf_")&&t.endsWith(".json"));if(0===o.length)return{workflowCount:0,spawnedAgentCount:0,spans:[]};let r=0,l=[];return{workflowCount:(await Promise.all(o.map(async t=>{try{let e=JSON.parse(await i.promises.readFile(a.default.join(n,t),"utf8"));return"number"==typeof e.agentCount&&(r+=e.agentCount),"number"==typeof e.startTime&&"number"==typeof e.durationMs&&e.durationMs>0&&l.push({startMs:e.startTime,endMs:e.startTime+e.durationMs}),!0}catch{return!1}}))).filter(Boolean).length,spawnedAgentCount:r,spans:l}}async function P(t,e){let s;try{s=await i.promises.readdir(t,{withFileTypes:!0})}catch{return 0}return(await Promise.all(s.map(async s=>{let n=a.default.join(t,s.name);try{if(s.isDirectory())return e>0?await P(n,e-1):0;return(await i.promises.stat(n)).mtimeMs}catch{return 0}}))).reduce((t,e)=>Math.max(t,e),0)}async function D(t,e){let i=a.default.join(t,e),[s,n]=await Promise.all([P(a.default.join(i,"subagents"),2),P(a.default.join(i,"workflows"),0)]),o=Math.max(s,n);return o>0?o:void 0}async function U(t,e){let i=await D(a.default.dirname(e.fullPath),t.id),s=t.lastTimestamp?Date.parse(t.lastTimestamp):0,n=Math.max(Number.isFinite(s)?s:0,i??0);return n>0?{...t,lastActivityMs:n}:t}function R(t,e){if(0===e.length)return{};let i=[...t??[],...e].filter(t=>t.endMs>t.startMs).sort((t,e)=>t.startMs-e.startMs);if(0===i.length)return{};let s=[{...i[0]}];for(let t=1;t<i.length;t++){let e=i[t],a=s[s.length-1];e.startMs<=a.endMs?a.endMs=Math.max(a.endMs,e.endMs):s.push({...e})}let a=s.reduce((t,e)=>t+(e.endMs-e.startMs),0);return{activeSegments:s,airTimeMs:a}}async function O(t,e,i){let s=_(i.fileName),n=a.default.dirname(i.fullPath),o=t.firstTimestamp?(0,r.toLocalDay)(Date.parse(t.firstTimestamp)):void 0,{usage:l,perDay:u}=await x(e,n,s,o);t.totalUsage=l,t.dailyBreakdown=function(t,e,i){let s=new Map((t??[]).map(t=>[t.day,t])),a=[...new Set([...s.keys(),...e.keys()])].sort((t,e)=>t.localeCompare(e)).map(t=>({day:t,toolCalls:s.get(t)?.toolCalls??0,turns:s.get(t)?.turns??0,tokens:{...e.get(t)??S}}));if(a.length>0){let t=a.reduce((t,e)=>({input:t.input+e.tokens.input,output:t.output+e.tokens.output,cacheRead:t.cacheRead+e.tokens.cacheRead,cacheWrite:t.cacheWrite+e.tokens.cacheWrite}),{...S}),e=a[0].tokens;e.input+=i.input-t.input,e.output+=i.output-t.output,e.cacheRead+=i.cacheRead-t.cacheRead,e.cacheWrite+=i.cacheWrite-t.cacheWrite}return a}(t.dailyBreakdown,u,l)}async function B(t){let e=k.get(t.fullPath);if(e&&e.mtimeMs===t.mtimeMs&&e.sizeBytes===t.sizeBytes)return e.meta;try{let e=await v(t.fullPath),{meta:i}=m(e);await O(i,e,t);let s=_(t.fileName),n=a.default.dirname(t.fullPath),o=await A(n,s),r=i.cwd??w(t.projectDir),l=y(r),u={...i,id:s,filePath:t.fullPath,projectDir:t.projectDir,projectName:l.projectName,worktreeName:l.worktreeName,repoName:l.repoName,...o.workflowCount>0?{workflowCount:o.workflowCount,spawnedAgentCount:o.spawnedAgentCount}:{},...R(i.activeSegments,o.spans)};return k.set(t.fullPath,{meta:u,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes}),u}catch{return null}}async function F(t){let e=N.get(t.fullPath);if(e&&e.mtimeMs===t.mtimeMs&&e.sizeBytes===t.sizeBytes)return e.detail;try{let e=await v(t.fullPath),{meta:i,events:s}=m(e),n=_(t.fileName);await O(i,e,t);let o=await A(a.default.dirname(t.fullPath),n),r=i.cwd??w(t.projectDir),l=y(r),u={...i,id:n,filePath:t.fullPath,projectDir:t.projectDir,projectName:l.projectName,worktreeName:l.worktreeName,repoName:l.repoName,events:s,...o.workflowCount>0?{workflowCount:o.workflowCount,spawnedAgentCount:o.spawnedAgentCount}:{},...R(i.activeSegments,o.spans)};N.set(t.fullPath,{detail:u,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes});let d={...u};return delete d.events,k.set(t.fullPath,{meta:d,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes}),u}catch{return null}}async function z(t={}){let{root:e=h,limit:i=500,projectDir:s}=t,a=await I(e);s&&(a=a.filter(t=>t.projectDir===s)),a.sort((t,e)=>e.mtimeMs-t.mtimeMs);let n=a.slice(0,i);return(await Promise.all(n.map(async t=>{let e=await B(t);return e?U(e,t):null}))).filter(t=>null!==t)}async function $(t,e={}){let{root:i=h}=e,s=(await I(i)).find(e=>_(e.fileName)===t);if(!s)return null;let n=await F(s);if(!n)return n;let o=n.firstTimestamp?Date.parse(n.firstTimestamp):void 0,r=a.default.join(a.default.dirname(s.fullPath),_(s.fileName),"subagents"),l=a.default.join(a.default.dirname(s.fullPath),_(s.fileName),"workflows"),[u,d]=await Promise.all([E(r,o,n.events),J(l,o,n.events)]),c=d.reduce((t,e)=>t+e.agentCount,0);return U({...n,subagents:u,workflows:d,...d.length>0?{workflowCount:d.length,spawnedAgentCount:c}:{}},s)}function W(t){let e,i,s,a,n,o={...S},r=new Set,l=0,u=0,d=0,c=new Map;for(let p of t){if(!p||"object"!=typeof p)continue;l++;let t="string"==typeof p.timestamp?Date.parse(p.timestamp):NaN;if(!Number.isNaN(t)&&((void 0===e||t<e)&&(e=t),(void 0===i||t>i)&&(i=t)),void 0===n&&"user"===p.type&&(null===p.parentUuid||void 0===p.parentUuid)){let t=p.message,e=t?.content;if("string"==typeof e)n=e;else if(Array.isArray(e)){let t=e.find(t=>t&&"object"==typeof t&&"text"===t.type);t?.text&&(n=t.text)}}if("assistant"===p.type){let t=p.message;if(!t)continue;a||"string"!=typeof t.model||(a=t.model);let e="string"==typeof t.id?t.id:void 0,i="string"==typeof p.requestId?p.requestId:void 0,n=null!=e&&null!=i?`${e}:${i}`:void 0,l=!n||!r.has(n);if(n&&l&&r.add(n),l){u++;let e=t.usage;if(e){let t=t=>"number"==typeof t?t:0;o.input+=t(e.input_tokens),o.output+=t(e.output_tokens),o.cacheRead+=t(e.cache_read_input_tokens),o.cacheWrite+=t(e.cache_creation_input_tokens)}}let m=t.content;if(Array.isArray(m))for(let t of m)t&&"object"==typeof t&&("text"===t.type&&"string"==typeof t.text?s=t.text:"tool_use"===t.type&&"string"==typeof t.name&&(d++,c.set(t.name,(c.get(t.name)??0)+1)))}}let p=Array.from(c.entries()).map(([t,e])=>({name:t,count:e})).sort((t,e)=>e.count-t.count);return{startMs:e,endMs:i,totalUsage:o,eventCount:l,finalPreview:void 0!==s?s.replace(/\s+/g," ").trim().slice(0,240):void 0,finalText:s,model:a,toolCalls:p,toolCallCount:d,assistantMessageCount:u,initialPrompt:n}}async function E(t,e,s){let n;try{n=await i.promises.readdir(t)}catch{return[]}let o=new Map,r=[];for(let t of s)if("tool-call"===t.role&&"Agent"===t.toolName)for(let e of t.blocks){if(e?.type!=="tool_use"||"Agent"!==e.name)continue;let i=e.input??{},s="string"==typeof i.description?i.description:void 0,a=t.timestamp?Date.parse(t.timestamp):void 0,n={toolUseId:e.id,parentUuid:t.uuid??"",runInBackground:!0===i.run_in_background,prompt:"string"==typeof i.prompt?i.prompt:void 0,tsMs:a};s&&o.set(s,n),void 0!==a&&r.push(n)}r.sort((t,e)=>(t.tsMs??0)-(e.tsMs??0));let l=n.filter(t=>t.startsWith("agent-")&&t.endsWith(".jsonl"));return(await Promise.all(l.map(async s=>{let n,l=s.replace(/^agent-/,"").replace(/\.jsonl$/,""),u=a.default.join(t,s),d=a.default.join(t,`agent-${l}.meta.json`),c={};try{let t=await i.promises.readFile(d,"utf8");c=JSON.parse(t)}catch{}try{n=await v(u)}catch{return null}let p=W(n),m=c.description&&c.description.trim().length>0?c.description:void 0,f=m?o.get(m):function(t){let e;if(void 0===t)return;let i=1/0;for(let s of r){if(void 0===s.tsMs)continue;let a=Math.abs(t-s.tsMs);a<i&&a<=2e3&&(e=s,i=a)}return e}(p.startMs),g=m??(p.initialPrompt?p.initialPrompt.replace(/\s+/g," ").trim().slice(0,80):"(no description)"),y=f?.prompt??p.initialPrompt,h=void 0!==e&&void 0!==p.startMs?Math.max(0,p.startMs-e):void 0,w=void 0!==e&&void 0!==p.endMs?Math.max(0,p.endMs-e):void 0,M=void 0!==p.startMs&&void 0!==p.endMs?p.endMs-p.startMs:void 0;return{agentId:l,agentType:c.agentType??"unknown",description:g,startMs:p.startMs,endMs:p.endMs,durationMs:M,startTOffsetMs:h,endTOffsetMs:w,eventCount:p.eventCount,totalUsage:p.totalUsage,parentUuid:f?.parentUuid,parentToolUseId:f?.toolUseId,runInBackground:f?.runInBackground,prompt:y,finalPreview:p.finalPreview,finalText:p.finalText,model:p.model,toolCalls:p.toolCalls,toolCallCount:p.toolCallCount,assistantMessageCount:p.assistantMessageCount}}))).filter(t=>null!==t).sort((t,e)=>(t.startMs??0)-(e.startMs??0))}async function J(t,e,s){let n;try{n=await i.promises.readdir(t)}catch{return[]}let o=n.filter(t=>t.startsWith("wf_")&&t.endsWith(".json"));if(0===o.length)return[];let r=[];for(let t of s){if("tool-call"!==t.role||"Workflow"!==t.toolName)continue;let e=t.timestamp?Date.parse(t.timestamp):NaN;if(!Number.isNaN(e))for(let i of t.blocks)i?.type==="tool_use"&&"Workflow"===i.name&&r.push({toolUseId:i.id,parentUuid:t.uuid??"",tsMs:e})}r.sort((t,e)=>t.tsMs-e.tsMs);let l=t=>"number"==typeof t?t:void 0,u=t=>"string"==typeof t&&t.length>0?t:void 0;return(await Promise.all(o.map(async s=>{let n;try{n=JSON.parse(await i.promises.readFile(a.default.join(t,s),"utf8"))}catch{return null}let o=u(n.runId)??s.replace(/\.json$/,""),d=l(n.startTime),c=l(n.durationMs),p=void 0!==d&&void 0!==c?d+c:void 0,m=void 0!==e&&void 0!==d?Math.max(0,d-e):void 0,f=void 0!==e&&void 0!==p?Math.max(0,p-e):void 0,g=Array.isArray(n.phases)?n.phases.filter(t=>!!t&&"object"==typeof t&&"string"==typeof t.title).map(t=>({title:t.title,detail:u(t.detail)})):[],y=Array.isArray(n.logs)?n.logs.filter(t=>"string"==typeof t):[],h=(t,e)=>{let i=u(t);return void 0===i?void 0:i.length>e?i.slice(0,e)+"…":i},w=(Array.isArray(n.workflowProgress)?n.workflowProgress:[]).filter(t=>!!t&&"object"==typeof t&&"workflow_agent"===t.type).map(t=>({index:l(t.index)??0,label:u(t.label)??"(agent)",phaseIndex:l(t.phaseIndex),phaseTitle:u(t.phaseTitle),agentId:u(t.agentId),model:u(t.model),state:u(t.state),startedAt:l(t.startedAt),durationMs:l(t.durationMs),tokens:l(t.tokens),toolCalls:l(t.toolCalls),lastToolSummary:h(t.lastToolSummary,200),promptPreview:h(t.promptPreview,600),resultPreview:h(t.resultPreview,600)})).sort((t,e)=>t.index-e.index),M=(t=>{let e,i;if(void 0===t||0===r.length)return;let s=1/0,a=1/0;for(let n of r){let o=Math.abs(t-n.tsMs);!(o>6e4)&&(o<a&&(i=n,a=o),n.tsMs<=t&&o<s&&(e=n,s=o))}return e??i})(d);return{runId:o,name:u(n.workflowName)??o,description:u(n.summary),status:u(n.status)??"unknown",agentCount:l(n.agentCount)??0,toolCallCount:l(n.totalToolCalls)??0,totalTokens:l(n.totalTokens)??0,durationMs:c,startMs:d,endMs:p,startTOffsetMs:m,endTOffsetMs:f,model:u(n.defaultModel),phases:g,logs:y,agents:w,parentToolUseId:M?.toolUseId,parentUuid:M?.parentUuid}}))).filter(t=>null!==t).sort((t,e)=>(t.startMs??0)-(e.startMs??0))}async function L(t,e,i,s={}){let n,o,r,l,u,d,{root:c=h}=s;if(!/^[\w.-]+$/.test(e)||!/^[\w.-]+$/.test(i))return null;let p=(await I(c)).find(e=>_(e.fileName)===t);if(!p)return null;let m=a.default.join(a.default.dirname(p.fullPath),t,"subagents","workflows",e,`agent-${i}.jsonl`);try{n=await v(m)}catch{return null}let f=new Set;for(let t of n){if(!t||"object"!=typeof t)continue;let e=t.message?.content;if(Array.isArray(e))for(let t of e)t&&"object"==typeof t&&"tool_result"===t.type&&!0===t.is_error&&"string"==typeof t.tool_use_id&&f.add(t.tool_use_id)}let g=[],y=new Map,w={...S},M=new Set,k=0,N=0;for(let t of n){if(!t||"object"!=typeof t)continue;N++;let e="string"==typeof t.timestamp?Date.parse(t.timestamp):NaN;if(!Number.isNaN(e)&&((void 0===u||e<u)&&(u=e),(void 0===d||e>d)&&(d=e)),void 0===o&&"user"===t.type&&(null===t.parentUuid||void 0===t.parentUuid)){let e=t.message?.content;if("string"==typeof e)o=e;else if(Array.isArray(e)){let t=e.find(t=>t&&"object"==typeof t&&"text"===t.type);t?.text&&(o=t.text)}}if("assistant"!==t.type)continue;let i=t.message;if(!i)continue;l||"string"!=typeof i.model||(l=i.model);let s="string"==typeof i.id?i.id:void 0,a="string"==typeof t.requestId?t.requestId:void 0,n=null!=s&&null!=a?`${s}:${a}`:void 0,c=!n||!M.has(n);if(n&&c&&M.add(n),c){k++;let t=i.usage;if(t){let e=t=>"number"==typeof t?t:0;w.input+=e(t.input_tokens),w.output+=e(t.output_tokens),w.cacheRead+=e(t.cache_read_input_tokens),w.cacheWrite+=e(t.cache_creation_input_tokens)}}let p=i.content;if(Array.isArray(p)){for(let t of p)if(t&&"object"==typeof t){if("text"===t.type&&"string"==typeof t.text)r=t.text;else if("tool_use"===t.type&&"string"==typeof t.name&&(y.set(t.name,(y.get(t.name)??0)+1),g.length<2e3)){let e=function(t){if(!t||"object"!=typeof t)return"";let e=e=>"string"==typeof t[e]?t[e]:void 0;return e("command")??e("file_path")??e("path")??e("pattern")??e("url")??e("description")??e("query")??e("prompt")??e("old_string")??JSON.stringify(t)}(t.input),i=e.replace(/\s+/g," ").trim().slice(0,160),s=e.length>4e3?e.slice(0,4e3)+"…":e;g.push({index:g.length+1,tool:t.name,preview:i,full:s.length>i.length||s.includes("\n")?s:void 0,isError:"string"==typeof t.id&&f.has(t.id)})}}}}return{agentId:i,prompt:o,finalText:r,steps:g,toolCalls:Array.from(y.entries()).map(([t,e])=>({name:t,count:e})).sort((t,e)=>e.count-t.count),toolCallCount:g.length,assistantMessageCount:k,eventCount:N,totalUsage:w,model:l,durationMs:void 0!==u&&void 0!==d?d-u:void 0}}let G={...n.CLAUDE_CODE_METADATA,defaultRoot:h,async listSessions(t){let e=await z(t);for(let t of e)t.agent||(t.agent="claude-code");return e},async getSession(t,e){let i=await $(t,e);return i&&!i.agent&&(i.agent="claude-code"),i}};t.s(["DEFAULT_ROOT",0,h,"claudeCodeSource",0,G,"getSession",0,$,"invalidateClaudeCodeFile",0,b,"listSessions",0,z,"loadWorkflowAgentDetail",0,L,"summarizeSubagentLines",0,W],20629);let q=a.default.join(s.default.homedir(),".codex","sessions"),H=/^rollout-(\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2})-([0-9a-f-]+)\.jsonl$/;async function K(t){return i.promises.readdir(t).catch(()=>[])}async function Y(t){let e=[];for(let s of(await K(t))){if(!/^\d{4}$/.test(s))continue;let n=a.default.join(t,s);for(let t of(await K(n))){if(!/^\d{2}$/.test(t))continue;let s=a.default.join(n,t);for(let t of(await K(s))){if(!/^\d{2}$/.test(t))continue;let n=a.default.join(s,t);for(let t of(await K(n))){let s=H.exec(t);if(!s)continue;let o=a.default.join(n,t),r=await i.promises.stat(o).catch(()=>null);r&&e.push({filePath:o,sessionId:s[2],mtimeMs:r.mtimeMs,sizeBytes:r.size})}}}}return e}async function Z(t){let e=await i.promises.readFile(t,"utf8"),s=[];for(let t of e.split("\n")){let e=t.trim();if(e)try{s.push(JSON.parse(e))}catch{}}return s}function Q(t){return t.replace(/\s+/g," ").trim().slice(0,200)}function V(t,e){let i,s,a,n,r,l,u,d,c,p,m,f,g=[],h={input:0,output:0,cacheRead:0,cacheWrite:0},w=0,M=0,v=[],_=0;for(let t of e){if("object"!=typeof t||null===t)continue;let e="string"==typeof t.timestamp?t.timestamp:void 0;if(e){i||(i=e),s=e;let t=Date.parse(e);Number.isFinite(t)&&v.push(t)}let y="string"==typeof t.type?t.type:"",N=t.payload??{},T="string"==typeof N.type?N.type:"";if("session_meta"===y){"string"==typeof N.cwd&&(a=N.cwd),void 0===d&&"string"==typeof N.thread_source&&(d=N.thread_source),void 0===c&&"string"==typeof N.session_id&&(c=N.session_id),void 0===p&&"string"==typeof N.parent_thread_id&&(p=N.parent_thread_id),void 0===m&&"string"==typeof N.agent_nickname&&(m=N.agent_nickname),void 0===f&&"string"==typeof N.agent_path&&(f=N.agent_path);continue}if("turn_context"===y){"string"==typeof N.cwd&&(a=N.cwd),"string"==typeof N.model&&(n=N.model);continue}if("event_msg"===y&&"token_count"===T){let t=N.info??null,e=t?.total_token_usage??null;e&&(h.input=X(e.input_tokens)??h.input,h.output=X(e.output_tokens)??h.output,h.cacheRead=X(e.cached_input_tokens)??h.cacheRead);continue}if("event_msg"===y&&"user_message"===T){let i="string"==typeof N.message?N.message:"",s=Q(i),a=(0,o.isFrameworkInjectedUserInput)(i);i&&!a&&(r||(r=s),l=s,M+=1),g.push({index:_++,timestamp:e,role:"user",rawType:"event_msg/user_message",preview:s,blocks:i?[{type:"text",text:i}]:[],raw:t});continue}if("event_msg"===y&&"agent_message"===T){let i="string"==typeof N.message?N.message:"",s=Q(i);i&&(u=s),g.push({index:_++,timestamp:e,role:"agent",rawType:"event_msg/agent_message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:n,raw:t});continue}if("response_item"===y&&"reasoning"===T){let i=(N.summary??[]).map(t=>"string"==typeof t.text?t.text:"").join("\n").trim();g.push({index:_++,timestamp:e,role:"agent-thinking",rawType:"response_item/reasoning",preview:Q(i),blocks:i?[{type:"thinking",thinking:i}]:[],model:n,raw:t});continue}if("response_item"===y&&"message"===T&&"assistant"===N.role){let i=(N.content??[]).map(t=>"string"==typeof t.text?t.text:"").join("\n").trim(),s=Q(i);i&&(u=s),g.push({index:_++,timestamp:e,role:"agent",rawType:"response_item/message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:n,raw:t});continue}if("response_item"===y&&"function_call"===T){var k;let i="string"==typeof N.name?N.name:"(unknown)",s="string"==typeof N.call_id?N.call_id:void 0,a="string"==typeof N.arguments?N.arguments:"",o=function(t){if(!t)return null;try{return JSON.parse(t)}catch{return t}}(a);w+=1,g.push({index:_++,timestamp:e,role:"tool-call",rawType:"response_item/function_call",preview:`${i}(${(k=a).length<=80?k:k.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:s??`codex-${_}`,name:i,input:o}],toolName:i,toolUseId:s,model:n,raw:t});continue}if("response_item"===y&&"function_call_output"===T){let i="string"==typeof N.call_id?N.call_id:void 0,s="string"==typeof N.output?N.output:"",a=/process exited with code [1-9]/i.test(s);g.push({index:_++,timestamp:e,role:"tool-result",rawType:"response_item/function_call_output",preview:Q(s),blocks:[{type:"tool_result",tool_use_id:i??"",content:s,is_error:a}],toolUseId:i,toolResult:s,raw:t});continue}g.push({index:_++,timestamp:e,role:"meta",rawType:T?`${y}/${T}`:y,preview:"",blocks:[],raw:t})}if(h.input>0||h.output>0){let e=-1;for(let t=g.length-1;t>=0;t--){let i=g[t].role;if("agent"===i||"agent-thinking"===i||"tool-call"===i){e=t;break}}if(e>=0){let i=g[e];i.messageId=`codex-${t.sessionId}-total`,i.usage={input:h.input,output:h.output,cacheRead:h.cacheRead,cacheWrite:0}}}let N=i?Date.parse(i):void 0;if(void 0!==N&&Number.isFinite(N)){let t;for(let e of g){if(!e.timestamp)continue;let i=Date.parse(e.timestamp);Number.isFinite(i)&&(e.tOffsetMs=Math.max(0,i-N),void 0!==t&&(e.gapMs=Math.max(0,i-t)),t=i)}}let T=function(t){if(0===t.length)return[];let e=[...t].sort((t,e)=>t-e),i=[],s=e[0],a=e[0];for(let t=1;t<e.length;t++)e[t]-a>18e4&&(i.push({startMs:s,endMs:a}),s=e[t]),a=e[t];return i.push({startMs:s,endMs:a}),i}(v),j=T.reduce((t,e)=>t+(e.endMs-e.startMs),0),b=i&&s?Date.parse(s)-Date.parse(i):void 0,I=a?y(a):void 0,S=I?.projectName??"(unknown)",C=a?a.replace(/^\//,"-").replace(/\//g,"-"):"(unknown)";return{meta:{agent:"codex",id:t.sessionId,filePath:t.filePath,projectName:S,worktreeName:I?.worktreeName,repoName:I?.repoName,projectDir:C,sessionId:t.sessionId,firstTimestamp:i,lastTimestamp:s,durationMs:b&&Number.isFinite(b)?b:void 0,eventCount:g.length,model:n,cwd:a,totalUsage:h,status:"idle",firstUserPreview:r,lastUserPreview:l,lastAgentPreview:u,toolCallCount:w,turnCount:M,airTimeMs:j,activeSegments:T},events:g,threadSource:d,rootSessionId:c,parentThreadId:p,agentNickname:m,agentPath:f}}function X(t){return"number"==typeof t&&Number.isFinite(t)?t:void 0}let tt=new Map,te=new Map;async function ti(t){let e=await Y(t),i=[];for(let t of e){let e=tt.get(t.filePath);if(e&&e.mtimeMs===t.mtimeMs&&e.sizeBytes===t.sizeBytes){i.push({file:t,meta:e.meta,threadSource:e.threadSource,rootSessionId:e.rootSessionId,parentThreadId:e.parentThreadId,agentNickname:e.agentNickname,agentPath:e.agentPath});continue}try{let e=await Z(t.filePath),s=V(t,e);tt.set(t.filePath,{meta:s.meta,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes,threadSource:s.threadSource,rootSessionId:s.rootSessionId,parentThreadId:s.parentThreadId,agentNickname:s.agentNickname,agentPath:s.agentPath}),i.push({file:t,meta:s.meta,threadSource:s.threadSource,rootSessionId:s.rootSessionId,parentThreadId:s.parentThreadId,agentNickname:s.agentNickname,agentPath:s.agentPath})}catch{}}return i}async function ts(t={}){let e=t.root??q,i=await ti(e),s=new Map;for(let t of i){if("subagent"!==t.threadSource||!t.rootSessionId)continue;let e=s.get(t.rootSessionId);e?e.push(t):s.set(t.rootSessionId,[t])}let a=[];for(let t of i){if("subagent"===t.threadSource)continue;let e=s.get(t.meta.id);if(!e||0===e.length){a.push(t.meta);continue}let i={...t.meta,spawnedAgentCount:e.length,totalUsage:{input:t.meta.totalUsage.input+e.reduce((t,e)=>t+e.meta.totalUsage.input,0),output:t.meta.totalUsage.output+e.reduce((t,e)=>t+e.meta.totalUsage.output,0),cacheRead:t.meta.totalUsage.cacheRead+e.reduce((t,e)=>t+e.meta.totalUsage.cacheRead,0),cacheWrite:t.meta.totalUsage.cacheWrite+e.reduce((t,e)=>t+e.meta.totalUsage.cacheWrite,0)},toolCallCount:(t.meta.toolCallCount??0)+e.reduce((t,e)=>t+(e.meta.toolCallCount??0),0)};for(let t of e)t.meta.lastTimestamp&&(!i.lastTimestamp||t.meta.lastTimestamp>i.lastTimestamp)&&(i.lastTimestamp=t.meta.lastTimestamp);a.push(i)}return(a.sort((t,e)=>(e.firstTimestamp??"").localeCompare(t.firstTimestamp??"")),void 0!==t.limit)?a.slice(0,t.limit):a}async function ta(t,e={}){let i=e.root??q,s=await ti(i),a=s.find(e=>e.meta.id===t&&"subagent"!==e.threadSource);if(!a){let e=s.find(e=>e.meta.id===t);if(!e)return null;let i=te.get(e.file.filePath);if(i&&i.mtimeMs===e.file.mtimeMs&&i.sizeBytes===e.file.sizeBytes)return i.detail;let a=await Z(e.file.filePath),{meta:n,events:o}=V(e.file,a),r={...n,events:o};return te.set(e.file.filePath,{detail:r,mtimeMs:e.file.mtimeMs,sizeBytes:e.file.sizeBytes}),r}let n=a.file,o=te.get(n.filePath);if(o&&o.mtimeMs===n.mtimeMs&&o.sizeBytes===n.sizeBytes)return o.detail;let r=await Z(n.filePath),{meta:l,events:u}=V(n,r),d=s.filter(e=>"subagent"===e.threadSource&&e.rootSessionId===t),c=l.firstTimestamp?Date.parse(l.firstTimestamp):void 0,p=d.map(t=>{let e,i,s,a,n;return i=(e=t.meta).firstTimestamp?Date.parse(e.firstTimestamp):void 0,s=e.lastTimestamp?Date.parse(e.lastTimestamp):void 0,a=void 0!==i&&Number.isFinite(i)?i:void 0,n=void 0!==s&&Number.isFinite(s)?s:void 0,{agentId:e.id,agentType:t.agentNickname??t.agentPath??"subagent",description:t.agentPath??t.agentNickname??e.id,startMs:a,endMs:n,durationMs:e.durationMs,startTOffsetMs:void 0!==c&&void 0!==a?Math.max(0,a-c):void 0,endTOffsetMs:void 0!==c&&void 0!==n?Math.max(0,n-c):void 0,eventCount:e.eventCount,totalUsage:e.totalUsage,model:e.model,toolCallCount:e.toolCallCount,finalPreview:e.lastAgentPreview}}).sort((t,e)=>(t.startMs??0)-(e.startMs??0)),m={...l,events:u,...p.length>0?{subagents:p,spawnedAgentCount:p.length}:{}};return te.set(n.filePath,{detail:m,mtimeMs:n.mtimeMs,sizeBytes:n.sizeBytes}),m}async function tn(t={}){let e=t.root??q,i=await Y(e);if(0===i.length)return null;for(let t of(i.sort((t,e)=>e.mtimeMs-t.mtimeMs),i)){let e=await Z(t.filePath);for(let i=e.length-1;i>=0;i--){let s=e[i];if("object"!=typeof s||null===s||"event_msg"!==s.type)continue;let a=s.payload??{};if("token_count"!==a.type)continue;let n=a.rate_limits??null;if(!n)continue;let o=n.primary??null,r=n.secondary??null;if(void 0===X(o?.used_percent)&&void 0===X(r?.used_percent))continue;let l=X(o?.used_percent),u=X(r?.used_percent),d=X(o?.resets_at),c=X(r?.resets_at),p="string"==typeof n.plan_type?n.plan_type:null,m=Date.now(),f=void 0!==d&&m>1e3*d,g=void 0!==c&&m>1e3*c;return{five_hour:{utilization:f?0:l??null,resets_at:void 0!==d?new Date(1e3*d).toISOString():null},seven_day:{utilization:g?0:u??null,resets_at:void 0!==c?new Date(1e3*c).toISOString():null},plan_type:p,source_path:t.filePath}}}return null}let to=a.default.join(s.default.homedir(),".gemini","tmp"),tr=a.default.join(s.default.homedir(),".gemini","projects.json"),tl=/^session-.+\.(jsonl|json)$/;async function tu(t){return i.promises.readdir(t).catch(()=>[])}async function td(t){let e=[];for(let s of(await tu(t))){let n=a.default.join(t,s,"chats");for(let t of(await tu(n))){if(!tl.test(t))continue;let o=a.default.join(n,t),r=await i.promises.stat(o).catch(()=>null);if(!r||!r.isFile())continue;let l=t.replace(/\.(jsonl|json)$/,"").split("-").pop()??t;e.push({filePath:o,slug:s,filenameId:l,format:t.endsWith(".jsonl")?"jsonl":"legacy-json",mtimeMs:r.mtimeMs,sizeBytes:r.size})}}return e}let tc=null;async function tp(){let t,e=await i.promises.stat(tr).catch(()=>null);if(!e)return new Map;if(tc&&tc.mtimeMs===e.mtimeMs)return tc.slugToCwd;let s=await i.promises.readFile(tr,"utf8").catch(()=>"");try{t=JSON.parse(s)}catch{t={}}let a=new Map;for(let[e,i]of Object.entries(t.projects??{}))"string"==typeof i&&a.set(i,e);return tc={mtimeMs:e.mtimeMs,slugToCwd:a},a}function tm(t){return!!t&&"object"==typeof t&&"string"==typeof t.id&&"string"==typeof t.type}async function tf(t){let e=await i.promises.readFile(t.filePath,"utf8");if("legacy-json"===t.format){let t;try{t=JSON.parse(e)}catch{return{meta:{},messages:[]}}return{meta:{sessionId:"string"==typeof t.sessionId?t.sessionId:void 0,projectHash:"string"==typeof t.projectHash?t.projectHash:void 0,startTime:"string"==typeof t.startTime?t.startTime:void 0,lastUpdated:"string"==typeof t.lastUpdated?t.lastUpdated:void 0,summary:"string"==typeof t.summary?t.summary:void 0},messages:(Array.isArray(t.messages)?t.messages:[]).filter(tm)}}let s={},a=new Map,n=[];for(let t of e.split("\n")){let e,i=t.trim();if(i){var o,r;try{e=JSON.parse(i)}catch{continue}if((o=e)&&"object"==typeof o&&"$rewindTo"in o){let t=e.$rewindTo,i=n.indexOf(t);if(i>=0){for(let t of n.slice(i))a.delete(t);n.length=i}continue}if((r=e)&&"object"==typeof r&&"$set"in r){Object.assign(s,e.$set);continue}if(tm(e)){a.has(e.id)||n.push(e.id),a.set(e.id,e);continue}if("object"==typeof e&&null!==e){let t=e;"string"!=typeof t.sessionId||s.sessionId||(s.sessionId=t.sessionId,"string"==typeof t.projectHash&&(s.projectHash=t.projectHash),"string"==typeof t.startTime&&(s.startTime=t.startTime),"string"==typeof t.lastUpdated&&(s.lastUpdated=t.lastUpdated),"string"==typeof t.summary&&(s.summary=t.summary))}}}let l=[];for(let t of n){let e=a.get(t);e&&l.push(e)}return{meta:s,messages:l}}function tg(t){return t.replace(/\s+/g," ").trim().slice(0,200)}function ty(t){if(!t)return"";if("string"==typeof t)return t;let e=Array.isArray(t)?t:[t],i=[];for(let t of e){if(!t||"object"!=typeof t)continue;if("string"==typeof t.text){i.push(t.text);continue}let e=t.functionResponse;if(e){let t=e.response;"string"==typeof t?i.push(t):t&&"object"==typeof t&&("string"==typeof t.output?i.push(t.output):"string"==typeof t.error?i.push(`error: ${t.error}`):i.push(JSON.stringify(t)))}}return i.join("\n")}async function th(t){let e,i,s,a,n,r,{meta:l,messages:u}=await tf(t),d=(await tp()).get(t.slug),c=[],p={input:0,output:0,cacheRead:0,cacheWrite:0},m=0,f=0,g=[],h=0;function w(t){if(c.push(t),t.timestamp&&"meta"!==t.role){e||(e=t.timestamp),i=t.timestamp;let s=Date.parse(t.timestamp);Number.isFinite(s)&&g.push(s)}}for(let t of u){let e=t.timestamp;if("user"===t.type){let i=ty(t.displayContent??t.content),s=tg(i),r=(0,o.isFrameworkInjectedUserInput)(i);i&&!r&&(a||(a=s),n=s,f+=1),w({index:h++,timestamp:e,role:"user",rawType:"gemini/user",preview:s,blocks:i?[{type:"text",text:i}]:[],messageId:t.id,raw:t});continue}if("gemini"===t.type){let i;"string"==typeof t.model&&(s=t.model);let a=ty(t.content),n=tg(a);if(a&&(r=n),t.tokens){let e=t.tokens,s={input:e.input??0,output:e.output??0,cacheRead:e.cached??0,cacheWrite:0};i=s,p.input+=s.input,p.output+=s.output,p.cacheRead+=s.cacheRead}for(let i of t.thoughts??[]){let t=[i.subject,i.description].filter(Boolean).join(": ");t&&w({index:h++,timestamp:i.timestamp??e,role:"agent-thinking",rawType:"gemini/thought",preview:tg(t),blocks:[{type:"thinking",thinking:t}],model:s,raw:i})}for(let o of(a?w({index:h++,timestamp:e,role:"agent",rawType:"gemini/agent",preview:n,blocks:[{type:"text",text:a}],messageId:t.id,model:s,usage:i,raw:t}):i&&w({index:h++,timestamp:e,role:"agent",rawType:"gemini/agent",preview:"",blocks:[],messageId:t.id,model:s,usage:i,raw:t}),t.toolCalls??[])){m+=1;let t=o.args?JSON.stringify(o.args):"";w({index:h++,timestamp:o.timestamp??e,role:"tool-call",rawType:"gemini/tool_call",preview:`${o.name}(${t.length<=80?t:t.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:o.id,name:o.name,input:o.args??{}}],toolName:o.name,toolUseId:o.id,model:s,raw:o});let i=(o.status??"").toLowerCase();if("success"===i||"error"===i||"cancelled"===i){let t=ty(o.result);w({index:h++,timestamp:o.timestamp??e,role:"tool-result",rawType:"gemini/tool_result",preview:tg(t),blocks:[{type:"tool_result",tool_use_id:o.id,content:t,is_error:"error"===i||"cancelled"===i}],toolUseId:o.id,toolResult:t,raw:o})}}continue}if("info"===t.type||"warning"===t.type||"error"===t.type){let i=ty(t.content);w({index:h++,timestamp:e,role:"meta",rawType:`gemini/${t.type}`,preview:tg(i),blocks:i?[{type:"text",text:i}]:[],raw:t});continue}}let M=e?Date.parse(e):void 0;if(void 0!==M&&Number.isFinite(M)){let t;for(let e of c){if(!e.timestamp)continue;let i=Date.parse(e.timestamp);Number.isFinite(i)&&(e.tOffsetMs=Math.max(0,i-M),void 0!==t&&(e.gapMs=Math.max(0,i-t)),t=i)}}let v=function(t){if(0===t.length)return[];let e=[...t].sort((t,e)=>t-e),i=[],s=e[0],a=e[0];for(let t=1;t<e.length;t++)e[t]-a>18e4&&(i.push({startMs:s,endMs:a}),s=e[t]),a=e[t];return i.push({startMs:s,endMs:a}),i}(g),_=v.reduce((t,e)=>t+(e.endMs-e.startMs),0),k=e&&i?Date.parse(i)-Date.parse(e):void 0,N=l.sessionId??t.filenameId,T=d?y(d):void 0,j=T?.projectName??t.slug,b=d?d.replace(/^\//,"-").replace(/\//g,"-"):t.slug;return{meta:{agent:"gemini",id:N,filePath:t.filePath,projectName:j,worktreeName:T?.worktreeName,repoName:T?.repoName,projectDir:b,sessionId:N,firstTimestamp:e,lastTimestamp:i,durationMs:k&&Number.isFinite(k)?k:void 0,eventCount:c.length,model:s,cwd:d,totalUsage:p,status:"idle",firstUserPreview:a,lastUserPreview:n,lastAgentPreview:r,toolCallCount:m,turnCount:f,airTimeMs:_,activeSegments:v},events:c}}let tw=new Map,tM=new Map;async function tv(t={}){let e=t.root??to,i=await td(e),s=[];for(let t of i){let e=tw.get(t.filePath);if(e&&e.mtimeMs===t.mtimeMs&&e.sizeBytes===t.sizeBytes){s.push(e.meta);continue}try{let{meta:e}=await th(t);tw.set(t.filePath,{meta:e,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes}),s.push(e)}catch{}}return(s.sort((t,e)=>(e.firstTimestamp??"").localeCompare(t.firstTimestamp??"")),void 0!==t.limit)?s.slice(0,t.limit):s}async function t_(t,e={}){let i,s=e.root??to,a=await td(s);for(let e of a)if(e.filenameId===t||t.startsWith(e.filenameId)){i=e;break}if(!i)for(let e of a){let{meta:s}=await th(e).catch(()=>({meta:{id:""}}));if(s.id===t){i=e;break}}if(!i)return null;let n=tM.get(i.filePath);if(n&&n.mtimeMs===i.mtimeMs&&n.sizeBytes===i.sizeBytes)return n.detail;let{meta:o,events:r}=await th(i),l={...o,events:r};return tM.set(i.filePath,{detail:l,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes}),l}let tk=a.default.join(s.default.homedir(),".gemini","antigravity-cli");async function tN(t){return i.promises.readdir(t).catch(()=>[])}let tT=null;async function tj(t){let e=a.default.join(t,"history.jsonl"),s=await i.promises.stat(e).catch(()=>null);if(!s)return new Map;if(tT&&tT.mtimeMs===s.mtimeMs)return tT.slugToCwd;let n=await i.promises.readFile(e,"utf8").catch(()=>""),o=new Map;for(let t of n.split("\n")){let e=t.trim();if(e)try{let t=JSON.parse(e);t.conversationId&&t.workspace&&o.set(t.conversationId,t.workspace)}catch{}}return tT={mtimeMs:s.mtimeMs,slugToCwd:o},o}async function tb(t){let e=await tj(t),s=[],n=a.default.join(t,"brain");for(let t of(await tN(n))){let o=a.default.join(n,t,".system_generated","logs","transcript.jsonl"),r=await i.promises.stat(o).catch(()=>null);r&&r.isFile()&&s.push({filePath:o,conversationId:t,cwd:e.get(t),mtimeMs:r.mtimeMs,sizeBytes:r.size})}return s}function tI(t){return t.replace(/\s+/g," ").trim().slice(0,200)}async function tS(t){let e,s,a,n,r,l,u=await i.promises.readFile(t.filePath,"utf8"),d=[],c=0,p=0,m=[],f=0;function g(t){if(d.push(t),t.timestamp&&"meta"!==t.role){e||(e=t.timestamp),s=t.timestamp;let i=Date.parse(t.timestamp);Number.isFinite(i)&&m.push(i)}}let h=[],w=[],M=new Map;for(let t of u.split("\n")){let e=t.trim();if(e)try{let t=JSON.parse(e),i=t.step_index;"number"==typeof i?M.has(i)?w[M.get(i)]=t:(M.set(i,w.length),w.push(t)):w.push(t)}catch{}}for(let t of w){let e=t.created_at||t.timestamp;if("USER_INPUT"===t.type){if("string"==typeof t.content){let e=t.content.match(/Model Selection` from .*? to (.*?)\.\s*No need to/);if(e){let t=e[1].trim();a=t=t.replace(/\s*\(.*?\)\s*$/,"").trim()}else{let e=t.content.match(/Model Selection` from .*? to ([^\n]+)/);if(e){let t=e[1].trim();t.endsWith(".")&&(t=t.slice(0,-1).trim()),a=t=t.replace(/\s*\(.*?\)\s*$/,"").trim()}}}let i=t.content||"",s=i.match(/<USER_REQUEST>([\s\S]*?)<\/USER_REQUEST>/);s&&(i=s[1].trim());let l=tI(i),u=(0,o.isFrameworkInjectedUserInput)(i);i&&!u&&(n||(n=l),r=l,p+=1),g({index:f++,timestamp:e,role:"user",rawType:"antigravity/user",preview:l,blocks:i?[{type:"text",text:i}]:[],messageId:t.step_index?.toString(),raw:t});continue}if("PLANNER_RESPONSE"===t.type){let i=t.thinking,s=t.content;if(i&&g({index:f++,timestamp:e,role:"agent-thinking",rawType:"antigravity/thought",preview:tI(i),blocks:[{type:"thinking",thinking:i}],model:a,raw:t}),s){let i=tI(s);l=i,g({index:f++,timestamp:e,role:"agent",rawType:"antigravity/agent",preview:i,blocks:[{type:"text",text:s}],messageId:t.step_index?.toString(),model:a,raw:t})}let n=t.tool_calls||[];for(let i=0;i<n.length;i++){let s=n[i];c+=1;let o=`tool-${t.step_index}-${i}`,r=s.args?JSON.stringify(s.args):"";h.push({id:o,name:s.name}),g({index:f++,timestamp:e,role:"tool-call",rawType:"antigravity/tool_call",preview:`${s.name}(${r.length<=80?r:r.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:o,name:s.name,input:s.args||{}}],toolName:s.name,toolUseId:o,model:a,raw:s})}continue}if("MODEL"===t.source&&"PLANNER_RESPONSE"!==t.type&&"ERROR_MESSAGE"!==t.type&&h.length>0){let i=h.shift(),s=i?i.id:`tool-${t.step_index}-unknown`,a="string"==typeof t.content?t.content:JSON.stringify(t.content||""),n="ERROR"===t.status||"FAILED"===t.status||"CANCELED"===t.status||!!t.error;g({index:f++,timestamp:e,role:"tool-result",rawType:"antigravity/tool_result",preview:tI(a),blocks:[{type:"tool_result",tool_use_id:s,content:a,is_error:n}],toolUseId:s,toolResult:a,raw:t});continue}let i=t.content||t.error||"";g({index:f++,timestamp:e,role:"meta",rawType:`antigravity/${t.type?.toLowerCase()||"unknown"}`,preview:tI(i),blocks:i?[{type:"text",text:i}]:[],raw:t})}let v=e?Date.parse(e):void 0;if(void 0!==v&&Number.isFinite(v)){let t;for(let e of d){if(!e.timestamp)continue;let i=Date.parse(e.timestamp);Number.isFinite(i)&&(e.tOffsetMs=Math.max(0,i-v),void 0!==t&&(e.gapMs=Math.max(0,i-t)),t=i)}}let _=function(t){if(0===t.length)return[];let e=[...t].sort((t,e)=>t-e),i=[],s=e[0],a=e[0];for(let t=1;t<e.length;t++)e[t]-a>18e4&&(i.push({startMs:s,endMs:a}),s=e[t]),a=e[t];return i.push({startMs:s,endMs:a}),i}(m),k=_.reduce((t,e)=>t+(e.endMs-e.startMs),0),N=e&&s?Date.parse(s)-Date.parse(e):void 0,T=t.conversationId,j=t.cwd,b=j?y(j):void 0,I=b?.projectName??t.conversationId,S=j?j.replace(/^\//,"-").replace(/\//g,"-"):t.conversationId;return{meta:{agent:"antigravity",id:T,filePath:t.filePath,projectName:I,worktreeName:b?.worktreeName,repoName:b?.repoName,projectDir:S,sessionId:T,firstTimestamp:e,lastTimestamp:s,durationMs:N&&Number.isFinite(N)?N:void 0,eventCount:d.length,model:a,cwd:j,totalUsage:{input:0,output:0,cacheRead:0,cacheWrite:0},status:"idle",firstUserPreview:n,lastUserPreview:r,lastAgentPreview:l,toolCallCount:c,turnCount:p,airTimeMs:k,activeSegments:_},events:d}}let tC=new Map,tx=new Map;async function tA(t={}){let e=t.root??tk,i=await tb(e),s=[];for(let t of i){let e=tC.get(t.filePath);if(e&&e.mtimeMs===t.mtimeMs&&e.sizeBytes===t.sizeBytes&&e.cwd===t.cwd){s.push(e.meta);continue}try{let{meta:e}=await tS(t);tC.set(t.filePath,{meta:e,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes,cwd:t.cwd}),s.push(e)}catch{}}return(s.sort((t,e)=>(e.firstTimestamp??"").localeCompare(t.firstTimestamp??"")),void 0!==t.limit)?s.slice(0,t.limit):s}async function tP(t,e={}){let i,s=e.root??tk;for(let e of(await tb(s)))if(e.conversationId===t){i=e;break}if(!i)return null;let a=tx.get(i.filePath);if(a&&a.mtimeMs===i.mtimeMs&&a.sizeBytes===i.sizeBytes&&a.cwd===i.cwd)return a.detail;let{meta:n,events:o}=await tS(i),r={...n,events:o};return tx.set(i.filePath,{detail:r,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes,cwd:i.cwd}),r}let tD=(e=s.default.homedir(),a.default.join(e,".config","Claude","local-agent-mode-sessions")),tU=/^local_[0-9a-f-]+$/;async function tR(t){return i.promises.readdir(t).catch(()=>[])}async function tO(t){let e=await i.promises.stat(t).catch(()=>null);return e?e.mtimeMs:0}async function tB(t){let e=[];for(let s of(await tR(t))){let n=a.default.join(t,s);for(let t of(await tR(n))){let s=a.default.join(n,t),o=await tO(a.default.join(s,"spaces.json"));for(let t of(await tR(s))){if(!tU.test(t))continue;let n=a.default.join(s,t,"audit.jsonl"),r=await i.promises.stat(n).catch(()=>null);if(!r||!r.isFile()||0===r.size)continue;let l=a.default.join(s,`${t}.json`),u=await tO(l);e.push({sessionId:t,auditPath:n,metaPath:l,workspaceDir:s,auditMtimeMs:r.mtimeMs,auditSize:r.size,metaMtimeMs:u,spacesMtimeMs:o})}}}return e}let tF=new Map;async function tz(t){let e=a.default.join(t,"spaces.json"),s=await i.promises.stat(e).catch(()=>null);if(!s)return new Map;let n=tF.get(t);if(n&&n.mtimeMs===s.mtimeMs)return n.spaceIdToPath;let o=await i.promises.readFile(e,"utf8").catch(()=>""),r=new Map;try{for(let t of JSON.parse(o).spaces??[]){let e="string"==typeof t.id?t.id:void 0,i=(Array.isArray(t.folders)?t.folders:[])[0],s="string"==typeof i?.path?i.path:void 0;e&&s&&r.set(e,s)}}catch{}return tF.set(t,{mtimeMs:s.mtimeMs,spaceIdToPath:r}),r}async function t$(t){let e=await i.promises.readFile(t,"utf8").catch(()=>"");if(!e)return{};try{let t=JSON.parse(e);return{spaceId:"string"==typeof t.spaceId?t.spaceId:void 0,userSelectedFolders:Array.isArray(t.userSelectedFolders)?t.userSelectedFolders.filter(t=>"string"==typeof t):void 0,cwd:"string"==typeof t.cwd?t.cwd:void 0,model:"string"==typeof t.model?t.model:void 0,title:"string"==typeof t.title?t.title:void 0,createdAt:"number"==typeof t.createdAt?t.createdAt:void 0,lastActivityAt:"number"==typeof t.lastActivityAt?t.lastActivityAt:void 0}}catch{return{}}}async function tW(t){let e=await i.promises.readFile(t,"utf8"),s=[];for(let t of e.split("\n")){let e=t.trim();if(e)try{s.push(JSON.parse(e))}catch{}}return s}async function tE(t){let e,[i,s,a]=await Promise.all([tW(t.auditPath),t$(t.metaPath),tz(t.workspaceDir)]),n=(e=new Map,i.forEach((t,s)=>{if("string"!=typeof t.uuid)return;let a=e.get(t.uuid);void 0===a?e.set(t.uuid,s):void 0===i[a].timestamp&&void 0!==t.timestamp&&e.set(t.uuid,s)}),i.filter((t,i)=>"string"!=typeof t.uuid||e.get(t.uuid)===i)),{mainLines:o,subagentGroups:r}=function(t){let e=[],i=new Map;for(let s of t){let t=s.parent_tool_use_id;if("string"==typeof t){let e=i.get(t);e?e.push(s):i.set(t,[s])}else e.push(s)}return{mainLines:e,subagentGroups:i}}(n),{meta:l,events:u}=m(o),d=function(t,e,i){if(0===t.size)return[];let s=new Map;for(let i of e){let e=i.message?.content;if(Array.isArray(e)){for(let a of e)if(a&&"object"==typeof a){if("tool_use"===a.type&&"Agent"===a.name&&"string"==typeof a.id){let t=a.input??{},e=s.get(a.id)??{};"string"==typeof i.uuid&&(e.parentUuid=i.uuid),"string"==typeof t.description&&(e.description=t.description),"string"==typeof t.subagent_type&&(e.agentType=t.subagent_type),"string"==typeof t.prompt&&(e.prompt=t.prompt),s.set(a.id,e)}else if("tool_result"===a.type&&"string"==typeof a.tool_use_id&&t.has(a.tool_use_id)){let t=s.get(a.tool_use_id)??{};t.finalText=function(t){if("string"==typeof t)return t;if(Array.isArray(t)){let e=[];for(let i of t)if(i&&"object"==typeof i&&"text"===i.type){let t=i.text;"string"==typeof t&&e.push(t)}if(e.length)return e.join("\n")}}(a.content)??t.finalText,s.set(a.tool_use_id,t)}}}}let a=[];for(let[e,n]of t){let t=W(n),o=s.get(e)??{},r=o.finalText??t.finalText,l=r?r.replace(/\s+/g," ").trim().slice(0,240):t.finalPreview,u=void 0!==i&&void 0!==t.startMs?Math.max(0,t.startMs-i):void 0,d=void 0!==i&&void 0!==t.endMs?Math.max(0,t.endMs-i):void 0,c=void 0!==t.startMs&&void 0!==t.endMs?t.endMs-t.startMs:void 0;a.push({agentId:e,agentType:o.agentType??"unknown",description:o.description??(o.prompt?o.prompt.replace(/\s+/g," ").trim().slice(0,80):"(no description)"),startMs:t.startMs,endMs:t.endMs,durationMs:c,startTOffsetMs:u,endTOffsetMs:d,eventCount:t.eventCount,totalUsage:t.totalUsage,parentUuid:o.parentUuid,parentToolUseId:e,runInBackground:!1,finalPreview:l,finalText:r,prompt:o.prompt,model:t.model,toolCalls:t.toolCalls,toolCallCount:t.toolCallCount,assistantMessageCount:t.assistantMessageCount})}return a.sort((t,e)=>(t.startMs??0)-(e.startMs??0)),a}(r,n,l.firstTimestamp?Date.parse(l.firstTimestamp):void 0),{projectName:c,projectDir:p,cwd:f}=function(t,e){let i;if(t.spaceId&&(i=e.get(t.spaceId)),!i&&t.userSelectedFolders&&t.userSelectedFolders.length>0&&(i=t.userSelectedFolders[0]),!i)return{projectName:"cowork:unspaced",projectDir:"cowork-unspaced"};let s=y(i);return{projectName:s.projectName,worktreeName:s.worktreeName,projectDir:i.replace(/^\//,"-").replace(/\//g,"-"),cwd:i}}(s,a);return{meta:{...l,agent:"cowork",id:t.sessionId,sessionId:t.sessionId,filePath:t.auditPath,projectName:c,projectDir:p,cwd:f??l.cwd,model:l.model??s.model},events:u,subagents:d}}function tJ(t){return{auditMtimeMs:t.auditMtimeMs,auditSize:t.auditSize,metaMtimeMs:t.metaMtimeMs,spacesMtimeMs:t.spacesMtimeMs}}function tL(t,e){return t.auditMtimeMs===e.auditMtimeMs&&t.auditSize===e.auditSize&&t.metaMtimeMs===e.metaMtimeMs&&t.spacesMtimeMs===e.spacesMtimeMs}let tG=new Map,tq=new Map;async function tH(t={}){let e=t.root??tD,i=await tB(e),s=[];for(let t of i){let e=tJ(t),i=tG.get(t.auditPath);if(i&&tL(i.key,e)){s.push(i.meta);continue}try{let{meta:i}=await tE(t);tG.set(t.auditPath,{meta:i,key:e}),s.push(i)}catch{}}return(s.sort((t,e)=>(e.firstTimestamp??"").localeCompare(t.firstTimestamp??"")),void 0!==t.limit)?s.slice(0,t.limit):s}async function tK(t,e={}){let i=e.root??tD,s=(await tB(i)).find(e=>e.sessionId===t);if(!s)return null;let a=tJ(s),n=tq.get(s.auditPath);if(n&&tL(n.key,a))return n.detail;let{meta:o,events:r,subagents:l}=await tE(s),u={...o,events:r,...l.length?{subagents:l}:{}};return tq.set(s.auditPath,{detail:u,key:a}),u}function tY(){let t=process.env.GROK_HOME||a.default.join(s.default.homedir(),".grok");return a.default.join(t,"sessions")}let tZ=a.default.join(s.default.homedir(),".grok","sessions");async function tQ(t){return i.promises.readdir(t).catch(()=>[])}async function tV(t){let e=await i.promises.readFile(t,"utf8").catch(()=>null);if(null==e)return null;try{return JSON.parse(e)}catch{return null}}async function tX(t,e){let s=a.default.join(t,".cwd"),n=await i.promises.readFile(s,"utf8").catch(()=>null);if(n&&n.trim())return n.trim();try{return decodeURIComponent(e)}catch{return e}}async function t0(t){let e=[];for(let s of(await tQ(t))){if("session_search.sqlite"===s||s.startsWith("."))continue;let n=a.default.join(t,s),o=await i.promises.stat(n).catch(()=>null);if(!o?.isDirectory())continue;let r=await tX(n,s);for(let t of(await tQ(n))){if("prompt_history.jsonl"===t||t.startsWith("."))continue;let o=a.default.join(n,t),l=a.default.join(o,"summary.json"),u=a.default.join(o,"updates.jsonl"),d=a.default.join(o,"signals.json"),[c,p,m]=await Promise.all([i.promises.stat(l).catch(()=>null),i.promises.stat(u).catch(()=>null),i.promises.stat(d).catch(()=>null)]);if(!c?.isFile())continue;let f=Math.max(c.mtimeMs,p?.mtimeMs??0),g=(p?.size??0)+c.size;e.push({dirPath:o,updatesPath:u,summaryPath:l,signalsPath:m?.isFile()?d:null,sessionId:t,groupName:s,decodedCwd:r,mtimeMs:f,sizeBytes:g})}}return e}function t1(){return{input:0,output:0,cacheRead:0,cacheWrite:0}}function t2(t){return t.replace(/\s+/g," ").trim().slice(0,200)}function t8(t){return t?"string"==typeof t?t:"string"==typeof t.text?t.text:"":""}async function t3(t){let e,s,a,n,r,[l,u,d]=await Promise.all([tV(t.summaryPath),t.signalsPath?tV(t.signalsPath):Promise.resolve(null),i.promises.readFile(t.updatesPath,"utf8").catch(()=>"")]),c=l?.info?.id??t.sessionId,p=l?.info?.cwd??t.decodedCwd,m=l?.current_model_id??u?.primaryModelId??u?.modelsUsed?.[0],f=[],g=t1();u?.contextTokensUsed&&u.contextTokensUsed>0&&(g.input=u.contextTokensUsed);let h=0,w=0,M=[],v=0,_=new Set,k=0;function N(t){f.push(t),function(t,i){if(!t||"meta"===i)return;e||(e=t),s=t;let a=Date.parse(t);Number.isFinite(a)&&M.push(a)}(t.timestamp,t.role)}let T=null;function j(){if(!T)return;let t=T.texts.join(""),e=t2(t);if("user"===T.kind){let i=!t||(0,o.isFrameworkInjectedUserInput)(t);t&&!i&&(a||(a=e),n=e,w+=1),t&&N({index:v++,timestamp:T.firstTs,role:"user",rawType:"grok/user_message",preview:e,blocks:[{type:"text",text:t}],messageId:T.promptId,raw:1===T.raw.length?T.raw[0]:T.raw})}else"agent"===T.kind?(t&&(r=e),t&&N({index:v++,timestamp:T.firstTs,role:"agent",rawType:"grok/agent_message",preview:e,blocks:[{type:"text",text:t}],messageId:T.promptId,model:T.model??m,raw:1===T.raw.length?T.raw[0]:T.raw})):"thought"===T.kind&&t&&N({index:v++,timestamp:T.firstTs,role:"agent-thinking",rawType:"grok/agent_thought",preview:e,blocks:[{type:"thinking",thinking:t}],messageId:T.promptId,model:T.model??m,raw:1===T.raw.length?T.raw[0]:T.raw});T=null}function b(t,e,i,s,a,n){(e||"user"!==t)&&(T&&T.kind!==t&&j(),T||(T={kind:t,texts:[],firstTs:i,lastTs:i,model:a,promptId:s,raw:[]}),e&&T.texts.push(e),T.lastTs=i??T.lastTs,a&&(T.model=a),s&&(T.promptId=s),T.raw.push(n))}for(let t of d.split("\n")){let e,i=t.trim();if(!i)continue;try{e=JSON.parse(i)}catch{continue}let s=e.params?.update;if(!s||"object"!=typeof s)continue;let a=s.sessionUpdate;if(!a)continue;let n=function(t){let e=t.params?._meta,i=e&&"number"==typeof e.agentTimestampMs?e.agentTimestampMs:void 0;if(null!=i&&Number.isFinite(i))return new Date(i).toISOString();let s=t.timestamp;if("number"==typeof s&&Number.isFinite(s))return new Date(s>1e12?s:1e3*s).toISOString()}(e),o=e.params?._meta??{},r=s._meta??{},l="string"==typeof o.promptId&&o.promptId||"string"==typeof r.promptId&&r.promptId||void 0,u="string"==typeof r.modelId&&r.modelId||"string"==typeof o.modelId&&o.modelId||void 0;u&&(m=u);let d=o.totalTokens;if("number"==typeof d&&d>k&&(k=d),"user_message_chunk"===a){b("user",t8(s.content),n,l,u,e);continue}if("agent_message_chunk"===a){b("agent",t8(s.content),n,l,u,e);continue}if("agent_thought_chunk"===a){b("thought",t8(s.content),n,l,u,e);continue}if(j(),"tool_call"===a){let t="string"==typeof s.toolCallId?s.toolCallId:`grok-${v}`,i=function(t){let e=t._meta;if(e&&"object"==typeof e){let t=e["x.ai/tool"];if(t&&"object"==typeof t){let e=t.name;if("string"==typeof e&&e)return e}}return"string"==typeof t.title&&t.title?(!t.title.includes(" ")&&!t.title.includes("`"),t.title):"tool"}(s),a=s.rawInput??{},o=a?JSON.stringify(a):"";h+=1,N({index:v++,timestamp:n,role:"tool-call",rawType:"grok/tool_call",preview:`${i}(${o.length<=80?o:o.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:t,name:i,input:a}],toolName:i,toolUseId:t,model:m,raw:e});continue}if("tool_call_update"===a){let t=function(t){let e=t.status;return"string"==typeof e?e:e&&"object"==typeof e&&"string"==typeof e.status?e.status:void 0}(s);if("completed"!==t&&"failed"!==t&&"error"!==t&&"cancelled"!==t)continue;let i="string"==typeof s.toolCallId?s.toolCallId:"";if(i&&_.has(i))continue;i&&_.add(i);let a=function(t){let e=t.content;if(Array.isArray(e)){let t=[];for(let i of e){if(!i||"object"!=typeof i)continue;if("string"==typeof i.text&&i.text){t.push(i.text);continue}let e=i.content;"string"==typeof e&&e?t.push(e):e&&"object"==typeof e&&"string"==typeof e.text&&t.push(e.text)}if(t.length)return t.join("\n")}let i=t.rawOutput;if(null==i)return"";if("string"==typeof i)return i;if("object"==typeof i){if("string"==typeof i.output_for_prompt)return i.output_for_prompt;if("string"==typeof i.summary_for_prompt)return i.summary_for_prompt;if(i.Content&&"object"==typeof i.Content){let t=i.Content;if("string"==typeof t.content)return t.content}if(i.TodosUpdated&&"object"==typeof i.TodosUpdated){let t=i.TodosUpdated;if("string"==typeof t.summary_for_prompt)return t.summary_for_prompt}if(Array.isArray(i.stdout)||Array.isArray(i.output))try{return JSON.stringify({type:i.type,exit_code:i.exit_code,note:"binary/stdout omitted"})}catch{return""}try{return JSON.stringify(i)}catch{return""}}return String(i)}(s),o="failed"===t||"error"===t||"cancelled"===t;N({index:v++,timestamp:n,role:"tool-result",rawType:"grok/tool_result",preview:t2(a),blocks:[{type:"tool_result",tool_use_id:i,content:a,is_error:o||void 0}],toolUseId:i||void 0,toolResult:a,raw:e});continue}if("turn_completed"===a)continue}j(),0===g.input&&k>0&&(g.input=k),!e&&l?.created_at&&(e=l.created_at),s||(s=l?.last_active_at??l?.updated_at??e),u?.toolCallCount!=null&&u.toolCallCount>h&&(h=u.toolCallCount),u?.turnCount!=null&&u.turnCount>w&&(w=u.turnCount);let I=e?Date.parse(e):void 0;if(void 0!==I&&Number.isFinite(I)){let t;for(let e of f){if(!e.timestamp)continue;let i=Date.parse(e.timestamp);Number.isFinite(i)&&(e.tOffsetMs=Math.max(0,i-I),void 0!==t&&(e.gapMs=Math.max(0,i-t)),t=i)}}let S=function(t){if(0===t.length)return[];let e=[...t].sort((t,e)=>t-e),i=[],s=e[0],a=e[0];for(let t=1;t<e.length;t++){let n=e[t];n-a>18e4&&(i.push({startMs:s,endMs:a}),s=n),a=n}return i.push({startMs:s,endMs:a}),i}(M),C=S.reduce((t,e)=>t+(e.endMs-e.startMs),0),x=e&&s?Date.parse(s)-Date.parse(e):void 0,A=p?y(p):void 0,P=A?.projectName??p??t.decodedCwd,D=t.groupName||(p?encodeURIComponent(p):"(unknown)");if(!a){let t=l?.generated_title||l?.session_summary;t&&(a=t2(t))}let U=await t4(t.dirPath);return{meta:{agent:"grok",id:c,filePath:t.updatesPath,projectName:P,worktreeName:A?.worktreeName,repoName:A?.repoName,projectDir:D,sessionId:c,firstTimestamp:e,lastTimestamp:s,lastActivityMs:s?Date.parse(s):void 0,durationMs:x&&Number.isFinite(x)?x:void 0,eventCount:f.length,model:m,cwd:p,gitBranch:l?.head_branch,agentName:l?.agent_name,totalUsage:g,status:"idle",firstUserPreview:a,lastUserPreview:n,lastAgentPreview:r,toolCallCount:h,turnCount:w,linesAdded:u?.agentLinesAdded,linesRemoved:u?.agentLinesRemoved,airTimeMs:C,activeSegments:S,...U>0?{spawnedAgentCount:U}:{}},events:f,sessionKind:l?.session_kind}}async function t4(t){let e=a.default.join(t,"subagents"),s=await tQ(e),n=0;for(let t of s){let s=await i.promises.stat(a.default.join(e,t)).catch(()=>null);s?.isDirectory()&&(n+=1)}return n}async function t9(t,e){let i=a.default.join(t.dirPath,"subagents"),s=await tQ(i),n=a.default.dirname(t.dirPath),o=[];for(let t of s){let s=a.default.join(i,t,"meta.json"),r=await tV(s);if(!r)continue;let l=r.child_session_id??r.subagent_id??t,u=a.default.join(n,l),[d,c]=await Promise.all([tV(a.default.join(u,"summary.json")),tV(a.default.join(u,"signals.json"))]),p=d?.created_at?Date.parse(d.created_at):void 0,m=d?.last_active_at??d?.updated_at,f=m?Date.parse(m):void 0,g=void 0!==p&&Number.isFinite(p)?p:void 0,y=void 0!==f&&Number.isFinite(f)?f:void 0,h=t1();c?.contextTokensUsed&&(h.input=c.contextTokensUsed),o.push({agentId:l,agentType:r.subagent_type??d?.agent_name??"subagent",description:r.description&&r.description.trim()||d?.generated_title||d?.session_summary||l,startMs:g,endMs:y,durationMs:void 0!==g&&void 0!==y?Math.max(0,y-g):void 0,startTOffsetMs:void 0!==e&&void 0!==g?Math.max(0,g-e):void 0,endTOffsetMs:void 0!==e&&void 0!==y?Math.max(0,y-e):void 0,eventCount:d?.num_messages??d?.num_chat_messages??0,totalUsage:h,prompt:"string"==typeof r.prompt?r.prompt:void 0,model:d?.current_model_id??c?.primaryModelId,toolCallCount:c?.toolCallCount})}return o.sort((t,e)=>(t.startMs??0)-(e.startMs??0)),o}let t6=new Map,t7=new Map;async function t5(t={}){let e=t.root??tY(),i=await t0(e),s=[];for(let t of i){let e=await tV(t.summaryPath);if(e?.session_kind==="subagent")continue;let i=t6.get(t.dirPath);if(i&&i.mtimeMs===t.mtimeMs&&i.sizeBytes===t.sizeBytes){s.push(i.meta);continue}try{let{meta:e,sessionKind:i}=await t3(t);if("subagent"===i)continue;t6.set(t.dirPath,{meta:e,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes}),s.push(e)}catch{}}return(s.sort((t,e)=>(e.firstTimestamp??"").localeCompare(t.firstTimestamp??"")),void 0!==t.limit)?s.slice(0,t.limit):s}async function et(t,e={}){let i=e.root??tY(),s=await t0(i),a=s.find(e=>e.sessionId===t);if(!a){for(let e of s)try{let{meta:i,events:s}=await t3(e);if(i.id===t){let t={...i,events:s};return t7.set(e.dirPath,{detail:t,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),t}}catch{}return null}let n=t7.get(a.dirPath);if(n&&n.mtimeMs===a.mtimeMs&&n.sizeBytes===a.sizeBytes)return n.detail;let{meta:o,events:r}=await t3(a),l=o.firstTimestamp?Date.parse(o.firstTimestamp):void 0,u=await t9(a,void 0!==l&&Number.isFinite(l)?l:void 0),d={...o,events:r,...u.length>0?{subagents:u,spawnedAgentCount:u.length}:{}};return t7.set(a.dirPath,{detail:d,mtimeMs:a.mtimeMs,sizeBytes:a.sizeBytes}),t6.set(a.dirPath,{meta:{...o,...u.length>0?{spawnedAgentCount:u.length}:{}},mtimeMs:a.mtimeMs,sizeBytes:a.sizeBytes}),d}function ee(){return process.env.CCLENS_HOME||a.default.join(s.default.homedir(),".cclens")}function ei(...t){return a.default.join(ee(),...t)}function es(t){b(t)}let ea=[G,{...n.CODEX_METADATA,defaultRoot:q,listSessions:async t=>ts(t),getSession:async t=>ta(t),async usagePoller(){let t=await tn();return t?{captured_at:new Date().toISOString(),agent:"codex",five_hour:t.five_hour,seven_day:t.seven_day}:null}},{...n.GEMINI_METADATA,defaultRoot:to,listSessions:async t=>tv(t),getSession:async t=>t_(t)},{...n.ANTIGRAVITY_METADATA,defaultRoot:tk,listSessions:async t=>tA(t),getSession:async t=>tP(t)},{...n.COWORK_METADATA,defaultRoot:tD,listSessions:async t=>tH(t),getSession:async t=>tK(t)},{...n.GROK_METADATA,defaultRoot:tZ,listSessions:async t=>t5(t),getSession:async(t,e)=>et(t,e)}];async function en(t={}){let e=await Promise.all(ea.map(e=>e.listSessions(t))),i=[];for(let t of e)i.push(...t);return(i.sort((t,e)=>(e.firstTimestamp??"").localeCompare(t.firstTimestamp??"")),void 0!==t.limit)?i.slice(0,t.limit):i}async function eo(t){for(let e of ea){let i=await e.getSession(t);if(i)return i}return null}function er(){return ei("usage.jsonl")}function el(t){let e=er();(0,i.mkdirSync)(a.default.dirname(e),{recursive:!0}),(0,i.appendFileSync)(e,JSON.stringify(t)+"\n","utf8")}function eu(t){let e=er();if(!(0,i.existsSync)(e))return;let s=(0,i.readFileSync)(e,"utf8").split("\n").filter(e=>{if(!e.trim())return!1;try{return JSON.parse(e).agent!==t}catch{return!0}});(0,i.mkdirSync)(a.default.dirname(e),{recursive:!0}),(0,i.writeFileSync)(e,s.join("\n")+(s.length?"\n":""),"utf8")}}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_parser_dist_10ihc3~._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[63681,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={RequestCookies:function(){return f.RequestCookies},ResponseCookies:function(){return f.ResponseCookies},stringifyCookie:function(){return f.stringifyCookie}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(36226)},51409,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReflectAdapter",{enumerable:!0,get:function(){return d}});class d{static get(a,b,c){let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}static set(a,b,c,d){return Reflect.set(a,b,c,d)}static has(a,b){return Reflect.has(a,b)}static deleteProperty(a,b){return Reflect.deleteProperty(a,b)}}},4712,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ActionDidNotRevalidate:function(){return f},ActionDidRevalidateDynamicOnly:function(){return h},ActionDidRevalidateStaticAndDynamic:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=0,g=1,h=2},14896,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63681),g=a.r(51409),h=a.r(56704),i=a.r(4712);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},8018,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(a.r(717));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},86309,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={isRequestAPICallableInsideAfter:function(){return j},throwForSearchParamsAccessInUseCache:function(){return i},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(60312),g=a.r(24725);function h(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function i(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function j(){let a=g.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}},81740,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"cookies",{enumerable:!0,get:function(){return n}});let d=a.r(14896),e=a.r(63681),f=a.r(56704),g=a.r(32319),h=a.r(60384),i=a.r(60312),j=a.r(13091),k=a.r(8018),l=a.r(86309),m=a.r(50640);function n(){let a="cookies",b=f.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,l.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`cookies()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E843",enumerable:!1,configurable:!0});if(b.forceStatic)return p(d.RequestCookiesAdapter.seal(new e.RequestCookies(new Headers({}))));if(b.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E849",enumerable:!1,configurable:!0});if(c)switch(c.type){case"cache":let f=Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E831",enumerable:!1,configurable:!0});throw Error.captureStackTrace(f,n),b.invalidDynamicUsageError??=f,f;case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E846",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1123",enumerable:!1,configurable:!0});case"prerender":var k=b,q=c;let r=o.get(q);if(r)return r;let s=(0,j.makeHangingPromise)(q.renderSignal,k.route,"`cookies()`");return o.set(q,s),s;case"prerender-client":case"validation-client":let t="`cookies`";throw Object.defineProperty(new m.InvariantError(`${t} must not be used within a Client Component. Next.js should be preventing ${t} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1037",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,h.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,h.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,j.delayUntilRuntimeStage)(c,p(c.cookies));case"private-cache":return p(c.cookies);case"request":let u;if((0,h.trackDynamicDataInDynamicRender)(c),u=(0,d.areCookiesMutableInCurrentPhase)(c)?c.userspaceMutableCookies:c.cookies,!c.asyncApiPromises)return p(u);{let a=(0,g.isInEarlyRenderStage)(c);if(u===c.mutableCookies)return a?c.asyncApiPromises.earlyMutableCookies:c.asyncApiPromises.mutableCookies;return a?c.asyncApiPromises.earlyCookies:c.asyncApiPromises.cookies}}}(0,g.throwForMissingRequestStore)(a)}a.r(31382);let o=new WeakMap;function p(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),c}(0,k.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`cookies()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E830",enumerable:!1,configurable:!0})})},29927,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HeadersAdapter:function(){return h},ReadonlyHeadersError:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(51409);class g extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new g}}class h extends Headers{constructor(a){super(),this.headers=new Proxy(a,{get(b,c,d){if("symbol"==typeof c)return f.ReflectAdapter.get(b,c,d);let e=c.toLowerCase(),g=Object.keys(a).find(a=>a.toLowerCase()===e);if(void 0!==g)return f.ReflectAdapter.get(b,g,d)},set(b,c,d,e){if("symbol"==typeof c)return f.ReflectAdapter.set(b,c,d,e);let g=c.toLowerCase(),h=Object.keys(a).find(a=>a.toLowerCase()===g);return f.ReflectAdapter.set(b,h??c,d,e)},has(b,c){if("symbol"==typeof c)return f.ReflectAdapter.has(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0!==e&&f.ReflectAdapter.has(b,e)},deleteProperty(b,c){if("symbol"==typeof c)return f.ReflectAdapter.deleteProperty(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0===e||f.ReflectAdapter.deleteProperty(b,e)}})}static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"append":case"delete":case"set":return g.callable;default:return f.ReflectAdapter.get(a,b,c)}}})}merge(a){return Array.isArray(a)?a.join(", "):a}static from(a){return a instanceof Headers?a:new h(a)}append(a,b){let c=this.headers[a];"string"==typeof c?this.headers[a]=[c,b]:Array.isArray(c)?c.push(b):this.headers[a]=b}delete(a){delete this.headers[a]}get(a){let b=this.headers[a];return void 0!==b?this.merge(b):null}has(a){return void 0!==this.headers[a]}set(a,b){this.headers[a]=b}forEach(a,b){for(let[c,d]of this.entries())a.call(b,d,c,this)}*entries(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase(),c=this.get(b);yield[b,c]}}*keys(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase();yield b}}*values(){for(let a of Object.keys(this.headers)){let b=this.get(a);yield b}}[Symbol.iterator](){return this.entries()}}},35754,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"headers",{enumerable:!0,get:function(){return m}});let d=a.r(29927),e=a.r(56704),f=a.r(32319),g=a.r(60384),h=a.r(60312),i=a.r(13091),j=a.r(8018),k=a.r(86309),l=a.r(50640);function m(){let a="headers",b=e.workAsyncStorage.getStore(),c=f.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,k.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`headers()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E839",enumerable:!1,configurable:!0});if(b.forceStatic)return o(d.HeadersAdapter.seal(new Headers({})));if(c)switch(c.type){case"cache":{let a=Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E833",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),b.invalidDynamicUsageError??=a,a}case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E838",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1134",enumerable:!1,configurable:!0})}if(b.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E828",enumerable:!1,configurable:!0});if(c)switch(c.type){case"prerender":var j=b,p=c;let e=n.get(p);if(e)return e;let q=(0,i.makeHangingPromise)(p.renderSignal,j.route,"`headers()`");return n.set(p,q),q;case"prerender-client":case"validation-client":let r="`headers`";throw Object.defineProperty(new l.InvariantError(`${r} must not be used within a client component. Next.js should be preventing ${r} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1017",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,g.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,g.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,i.delayUntilRuntimeStage)(c,o(c.headers));case"private-cache":return o(c.headers);case"request":if((0,g.trackDynamicDataInDynamicRender)(c),c.asyncApiPromises)return(0,f.isInEarlyRenderStage)(c)?c.asyncApiPromises.earlyHeaders:c.asyncApiPromises.headers;return o(c.headers)}}(0,f.throwForMissingRequestStore)(a)}a.r(31382);let n=new WeakMap;function o(a){let b=n.get(a);if(b)return b;let c=Promise.resolve(a);return n.set(a,c),c}(0,j.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`headers()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E836",enumerable:!1,configurable:!0})})},51125,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"draftMode",{enumerable:!0,get:function(){return l}});let d=a.r(32319),e=a.r(56704),f=a.r(60384),g=a.r(8018),h=a.r(60312),i=a.r(96556),j=a.r(50640),k=a.r(13091);function l(){let a="draftMode",b=e.workAsyncStorage.getStore(),c=d.workUnitAsyncStorage.getStore();switch((!b||!c)&&(0,d.throwForMissingRequestStore)(a),c.type){case"prerender-runtime":return(0,k.delayUntilRuntimeStage)(c,m(c.draftMode,b));case"request":return m(c.draftMode,b);case"cache":case"private-cache":case"unstable-cache":let f=(0,d.getDraftModeProviderForCacheScope)(b,c);if(f)return m(f,b);case"prerender":case"prerender-ppr":case"prerender-legacy":return m(null,b);case"prerender-client":case"validation-client":{let a="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${a} must not be used within a Client Component. Next.js should be preventing ${a} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0})}case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`${a}()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1132",enumerable:!1,configurable:!0});default:return c}}function m(a,b){let c=o.get(a??n);return c||Promise.resolve(new p(a))}a.r(51409);let n={},o=new WeakMap;class p{constructor(a){this._provider=a}get isEnabled(){return null!==this._provider&&this._provider.isEnabled}enable(){q("draftMode().enable()",this.enable),null!==this._provider&&this._provider.enable()}disable(){q("draftMode().disable()",this.disable),null!==this._provider&&this._provider.disable()}}function q(a,b){let c=e.workAsyncStorage.getStore(),g=d.workUnitAsyncStorage.getStore();if(c){if((null==g?void 0:g.phase)==="after")throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside \`after()\`. The enabled status of \`draftMode()\` can be read inside \`after()\` but you cannot enable or disable \`draftMode()\`. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E845",enumerable:!1,configurable:!0});if(c.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${c.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(g)switch(g.type){case"cache":case"private-cache":{let d=Object.defineProperty(Error(`Route ${c.route} used "${a}" inside "use cache". The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E829",enumerable:!1,configurable:!0});throw Error.captureStackTrace(d,b),c.invalidDynamicUsageError??=d,d}case"unstable-cache":throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside a function cached with \`unstable_cache()\`. The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E844",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":{let b=Object.defineProperty(Error(`Route ${c.route} used ${a} without first calling \`await connection()\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`),"__NEXT_ERROR_CODE",{value:"E126",enumerable:!1,configurable:!0});return(0,f.abortAndThrowOnSynchronousRequestDataAccess)(c.route,a,b,g)}case"prerender-client":case"validation-client":let d="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${d} must not be used within a Client Component. Next.js should be preventing ${d} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,f.postponeWithTracking)(c.route,a,g.dynamicTracking);case"prerender-legacy":g.revalidate=0;let e=Object.defineProperty(new i.DynamicServerError(`Route ${c.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.dynamicUsageDescription=a,c.dynamicUsageStack=e.stack,e;case"request":(0,f.trackDynamicDataInDynamicRender)(g);break;case"generate-static-params":throw Object.defineProperty(Error(`Route ${c.route} used \`${a}\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1121",enumerable:!1,configurable:!0})}}}(0,g.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`draftMode()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E835",enumerable:!1,configurable:!0})})},5246,(a,b,c)=>{b.exports.cookies=a.r(81740).cookies,b.exports.headers=a.r(35754).headers,b.exports.draftMode=a.r(51125).draftMode},45017,a=>{"use strict";a.s(["Sidebar",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/sidebar.tsx <module evaluation>","Sidebar")},10398,a=>{"use strict";a.s(["Sidebar",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/sidebar.tsx","Sidebar")},23604,a=>{"use strict";a.i(45017);var b=a.i(10398);a.n(b)},59969,a=>{"use strict";a.s(["LiveRefresher",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveRefresher() from the server but LiveRefresher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-refresher.tsx <module evaluation>","LiveRefresher")},11272,a=>{"use strict";a.s(["LiveRefresher",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveRefresher() from the server but LiveRefresher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-refresher.tsx","LiveRefresher")},30642,a=>{"use strict";a.i(59969);var b=a.i(11272);a.n(b)},99153,a=>{"use strict";a.s(["LiveSessionsWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveSessionsWidget() from the server but LiveSessionsWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-sessions-widget.tsx <module evaluation>","LiveSessionsWidget")},62615,a=>{"use strict";a.s(["LiveSessionsWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveSessionsWidget() from the server but LiveSessionsWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-sessions-widget.tsx","LiveSessionsWidget")},9647,a=>{"use strict";a.i(99153);var b=a.i(62615);a.n(b)},14022,a=>{"use strict";a.s(["JobQueueWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call JobQueueWidget() from the server but JobQueueWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/job-queue-widget.tsx <module evaluation>","JobQueueWidget")},5900,a=>{"use strict";a.s(["JobQueueWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call JobQueueWidget() from the server but JobQueueWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/job-queue-widget.tsx","JobQueueWidget")},84829,a=>{"use strict";a.i(14022);var b=a.i(5900);a.n(b)},73842,a=>{"use strict";a.s(["MenubarInstallBanner",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call MenubarInstallBanner() from the server but MenubarInstallBanner is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/menubar-install-banner.tsx <module evaluation>","MenubarInstallBanner")},46147,a=>{"use strict";a.s(["MenubarInstallBanner",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call MenubarInstallBanner() from the server but MenubarInstallBanner is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/menubar-install-banner.tsx","MenubarInstallBanner")},73994,a=>{"use strict";a.i(73842);var b=a.i(46147);a.n(b)},28992,a=>{"use strict";var b=a.i(7997),c=a.i(5246),d=a.i(23604),e=a.i(30642),f=a.i(9647),g=a.i(84829),h=a.i(73994);a.i(9117);var i=a.i(48024),j=a.i(67116),k=a.i(70709),l=a.i(60511),m=a.i(76597),n=a.i(40095);async function o({children:a}){let p=await (0,c.headers)();if((p.get("x-fleetlens-pathname")??"").startsWith("/print/")){let d=p.get("x-fleetlens-theme"),e=await (0,c.cookies)(),f=e.get("claude-lens-theme")?.value;return(0,b.jsx)("html",{lang:"en","data-theme":"light"===d||"dark"===d?d:"light"===f||"dark"===f?f:"dark",suppressHydrationWarning:!0,children:(0,b.jsx)("body",{children:a})})}let[q,r]=await Promise.all([(0,j.listSessions)(),(0,m.buildEntriesIndex)()]),s=q.slice(0,20),t=q.length,u=(0,i.groupByProject)(q).map(a=>({projectDir:a.projectDir,projectName:a.projectName,sessionCount:a.sessions.length,lastActiveMs:a.lastActiveMs,worktreeCount:a.worktreeCount})),v=(0,k.latestUsageSnapshot)(),w=(0,l.readTeamConnection)(),x=s.map(a=>({id:a.id,projectName:a.projectName,firstUserPreview:a.firstUserPreview,lastUserPreview:a.lastUserPreview,lastAgentPreview:a.lastAgentPreview,firstTimestamp:a.firstTimestamp,lastTimestamp:a.lastTimestamp,lastActivityMs:a.lastActivityMs,teamName:a.teamName,agentName:a.agentName,agent:a.agent})),y={};for(let a of s){let b=r.bySession.get(a.id)??[];if(0===b.length)continue;let c=b[b.length-1];y[a.id]={outcome:c.enrichment.outcome??null,enrichmentStatus:c.enrichment.status,localDay:c.local_day}}let z=await (0,c.cookies)(),A=z.get("claude-lens-theme")?.value;return(0,b.jsx)("html",{lang:"en","data-theme":"light"===A||"dark"===A?A:"dark",suppressHydrationWarning:!0,children:(0,b.jsxs)("body",{children:[(0,b.jsx)(e.LiveRefresher,{}),(0,b.jsxs)("div",{style:{display:"flex",height:"100vh"},children:[(0,b.jsx)(d.Sidebar,{projects:u,totalSessions:t,currentUsage:v,version:"0.16.1",latestChangelogVersion:n.LATEST_VERSION,teamConnection:w}),(0,b.jsxs)("main",{style:{flex:1,minWidth:0,minHeight:0,padding:0,overflow:"auto"},children:[(0,b.jsx)(h.MenubarInstallBanner,{}),a]})]}),(0,b.jsx)(f.LiveSessionsWidget,{sessions:x,entrySummaries:y}),(0,b.jsx)(g.JobQueueWidget,{})]})})}a.s(["default",0,o,"dynamic",0,"force-dynamic","metadata",0,{title:"Fleetlens",description:"Multi-agent fleet analytics — local-only dashboard for Claude Code, Codex, and other coding-agent sessions."}],28992)},44665,a=>{a.n(a.i(28992))}];
|
|
1
|
+
module.exports=[63681,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={RequestCookies:function(){return f.RequestCookies},ResponseCookies:function(){return f.ResponseCookies},stringifyCookie:function(){return f.stringifyCookie}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(36226)},51409,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReflectAdapter",{enumerable:!0,get:function(){return d}});class d{static get(a,b,c){let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}static set(a,b,c,d){return Reflect.set(a,b,c,d)}static has(a,b){return Reflect.has(a,b)}static deleteProperty(a,b){return Reflect.deleteProperty(a,b)}}},4712,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ActionDidNotRevalidate:function(){return f},ActionDidRevalidateDynamicOnly:function(){return h},ActionDidRevalidateStaticAndDynamic:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=0,g=1,h=2},14896,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63681),g=a.r(51409),h=a.r(56704),i=a.r(4712);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},8018,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(a.r(717));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},86309,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={isRequestAPICallableInsideAfter:function(){return j},throwForSearchParamsAccessInUseCache:function(){return i},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(60312),g=a.r(24725);function h(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function i(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function j(){let a=g.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}},81740,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"cookies",{enumerable:!0,get:function(){return n}});let d=a.r(14896),e=a.r(63681),f=a.r(56704),g=a.r(32319),h=a.r(60384),i=a.r(60312),j=a.r(13091),k=a.r(8018),l=a.r(86309),m=a.r(50640);function n(){let a="cookies",b=f.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,l.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`cookies()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E843",enumerable:!1,configurable:!0});if(b.forceStatic)return p(d.RequestCookiesAdapter.seal(new e.RequestCookies(new Headers({}))));if(b.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E849",enumerable:!1,configurable:!0});if(c)switch(c.type){case"cache":let f=Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E831",enumerable:!1,configurable:!0});throw Error.captureStackTrace(f,n),b.invalidDynamicUsageError??=f,f;case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E846",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1123",enumerable:!1,configurable:!0});case"prerender":var k=b,q=c;let r=o.get(q);if(r)return r;let s=(0,j.makeHangingPromise)(q.renderSignal,k.route,"`cookies()`");return o.set(q,s),s;case"prerender-client":case"validation-client":let t="`cookies`";throw Object.defineProperty(new m.InvariantError(`${t} must not be used within a Client Component. Next.js should be preventing ${t} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1037",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,h.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,h.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,j.delayUntilRuntimeStage)(c,p(c.cookies));case"private-cache":return p(c.cookies);case"request":let u;if((0,h.trackDynamicDataInDynamicRender)(c),u=(0,d.areCookiesMutableInCurrentPhase)(c)?c.userspaceMutableCookies:c.cookies,!c.asyncApiPromises)return p(u);{let a=(0,g.isInEarlyRenderStage)(c);if(u===c.mutableCookies)return a?c.asyncApiPromises.earlyMutableCookies:c.asyncApiPromises.mutableCookies;return a?c.asyncApiPromises.earlyCookies:c.asyncApiPromises.cookies}}}(0,g.throwForMissingRequestStore)(a)}a.r(31382);let o=new WeakMap;function p(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),c}(0,k.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`cookies()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E830",enumerable:!1,configurable:!0})})},29927,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HeadersAdapter:function(){return h},ReadonlyHeadersError:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(51409);class g extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new g}}class h extends Headers{constructor(a){super(),this.headers=new Proxy(a,{get(b,c,d){if("symbol"==typeof c)return f.ReflectAdapter.get(b,c,d);let e=c.toLowerCase(),g=Object.keys(a).find(a=>a.toLowerCase()===e);if(void 0!==g)return f.ReflectAdapter.get(b,g,d)},set(b,c,d,e){if("symbol"==typeof c)return f.ReflectAdapter.set(b,c,d,e);let g=c.toLowerCase(),h=Object.keys(a).find(a=>a.toLowerCase()===g);return f.ReflectAdapter.set(b,h??c,d,e)},has(b,c){if("symbol"==typeof c)return f.ReflectAdapter.has(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0!==e&&f.ReflectAdapter.has(b,e)},deleteProperty(b,c){if("symbol"==typeof c)return f.ReflectAdapter.deleteProperty(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0===e||f.ReflectAdapter.deleteProperty(b,e)}})}static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"append":case"delete":case"set":return g.callable;default:return f.ReflectAdapter.get(a,b,c)}}})}merge(a){return Array.isArray(a)?a.join(", "):a}static from(a){return a instanceof Headers?a:new h(a)}append(a,b){let c=this.headers[a];"string"==typeof c?this.headers[a]=[c,b]:Array.isArray(c)?c.push(b):this.headers[a]=b}delete(a){delete this.headers[a]}get(a){let b=this.headers[a];return void 0!==b?this.merge(b):null}has(a){return void 0!==this.headers[a]}set(a,b){this.headers[a]=b}forEach(a,b){for(let[c,d]of this.entries())a.call(b,d,c,this)}*entries(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase(),c=this.get(b);yield[b,c]}}*keys(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase();yield b}}*values(){for(let a of Object.keys(this.headers)){let b=this.get(a);yield b}}[Symbol.iterator](){return this.entries()}}},35754,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"headers",{enumerable:!0,get:function(){return m}});let d=a.r(29927),e=a.r(56704),f=a.r(32319),g=a.r(60384),h=a.r(60312),i=a.r(13091),j=a.r(8018),k=a.r(86309),l=a.r(50640);function m(){let a="headers",b=e.workAsyncStorage.getStore(),c=f.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,k.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`headers()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E839",enumerable:!1,configurable:!0});if(b.forceStatic)return o(d.HeadersAdapter.seal(new Headers({})));if(c)switch(c.type){case"cache":{let a=Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E833",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),b.invalidDynamicUsageError??=a,a}case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E838",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1134",enumerable:!1,configurable:!0})}if(b.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E828",enumerable:!1,configurable:!0});if(c)switch(c.type){case"prerender":var j=b,p=c;let e=n.get(p);if(e)return e;let q=(0,i.makeHangingPromise)(p.renderSignal,j.route,"`headers()`");return n.set(p,q),q;case"prerender-client":case"validation-client":let r="`headers`";throw Object.defineProperty(new l.InvariantError(`${r} must not be used within a client component. Next.js should be preventing ${r} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1017",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,g.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,g.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,i.delayUntilRuntimeStage)(c,o(c.headers));case"private-cache":return o(c.headers);case"request":if((0,g.trackDynamicDataInDynamicRender)(c),c.asyncApiPromises)return(0,f.isInEarlyRenderStage)(c)?c.asyncApiPromises.earlyHeaders:c.asyncApiPromises.headers;return o(c.headers)}}(0,f.throwForMissingRequestStore)(a)}a.r(31382);let n=new WeakMap;function o(a){let b=n.get(a);if(b)return b;let c=Promise.resolve(a);return n.set(a,c),c}(0,j.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`headers()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E836",enumerable:!1,configurable:!0})})},51125,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"draftMode",{enumerable:!0,get:function(){return l}});let d=a.r(32319),e=a.r(56704),f=a.r(60384),g=a.r(8018),h=a.r(60312),i=a.r(96556),j=a.r(50640),k=a.r(13091);function l(){let a="draftMode",b=e.workAsyncStorage.getStore(),c=d.workUnitAsyncStorage.getStore();switch((!b||!c)&&(0,d.throwForMissingRequestStore)(a),c.type){case"prerender-runtime":return(0,k.delayUntilRuntimeStage)(c,m(c.draftMode,b));case"request":return m(c.draftMode,b);case"cache":case"private-cache":case"unstable-cache":let f=(0,d.getDraftModeProviderForCacheScope)(b,c);if(f)return m(f,b);case"prerender":case"prerender-ppr":case"prerender-legacy":return m(null,b);case"prerender-client":case"validation-client":{let a="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${a} must not be used within a Client Component. Next.js should be preventing ${a} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0})}case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`${a}()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1132",enumerable:!1,configurable:!0});default:return c}}function m(a,b){let c=o.get(a??n);return c||Promise.resolve(new p(a))}a.r(51409);let n={},o=new WeakMap;class p{constructor(a){this._provider=a}get isEnabled(){return null!==this._provider&&this._provider.isEnabled}enable(){q("draftMode().enable()",this.enable),null!==this._provider&&this._provider.enable()}disable(){q("draftMode().disable()",this.disable),null!==this._provider&&this._provider.disable()}}function q(a,b){let c=e.workAsyncStorage.getStore(),g=d.workUnitAsyncStorage.getStore();if(c){if((null==g?void 0:g.phase)==="after")throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside \`after()\`. The enabled status of \`draftMode()\` can be read inside \`after()\` but you cannot enable or disable \`draftMode()\`. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E845",enumerable:!1,configurable:!0});if(c.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${c.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(g)switch(g.type){case"cache":case"private-cache":{let d=Object.defineProperty(Error(`Route ${c.route} used "${a}" inside "use cache". The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E829",enumerable:!1,configurable:!0});throw Error.captureStackTrace(d,b),c.invalidDynamicUsageError??=d,d}case"unstable-cache":throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside a function cached with \`unstable_cache()\`. The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E844",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":{let b=Object.defineProperty(Error(`Route ${c.route} used ${a} without first calling \`await connection()\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`),"__NEXT_ERROR_CODE",{value:"E126",enumerable:!1,configurable:!0});return(0,f.abortAndThrowOnSynchronousRequestDataAccess)(c.route,a,b,g)}case"prerender-client":case"validation-client":let d="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${d} must not be used within a Client Component. Next.js should be preventing ${d} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,f.postponeWithTracking)(c.route,a,g.dynamicTracking);case"prerender-legacy":g.revalidate=0;let e=Object.defineProperty(new i.DynamicServerError(`Route ${c.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.dynamicUsageDescription=a,c.dynamicUsageStack=e.stack,e;case"request":(0,f.trackDynamicDataInDynamicRender)(g);break;case"generate-static-params":throw Object.defineProperty(Error(`Route ${c.route} used \`${a}\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1121",enumerable:!1,configurable:!0})}}}(0,g.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`draftMode()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E835",enumerable:!1,configurable:!0})})},5246,(a,b,c)=>{b.exports.cookies=a.r(81740).cookies,b.exports.headers=a.r(35754).headers,b.exports.draftMode=a.r(51125).draftMode},45017,a=>{"use strict";a.s(["Sidebar",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/sidebar.tsx <module evaluation>","Sidebar")},10398,a=>{"use strict";a.s(["Sidebar",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/sidebar.tsx","Sidebar")},23604,a=>{"use strict";a.i(45017);var b=a.i(10398);a.n(b)},59969,a=>{"use strict";a.s(["LiveRefresher",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveRefresher() from the server but LiveRefresher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-refresher.tsx <module evaluation>","LiveRefresher")},11272,a=>{"use strict";a.s(["LiveRefresher",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveRefresher() from the server but LiveRefresher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-refresher.tsx","LiveRefresher")},30642,a=>{"use strict";a.i(59969);var b=a.i(11272);a.n(b)},99153,a=>{"use strict";a.s(["LiveSessionsWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveSessionsWidget() from the server but LiveSessionsWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-sessions-widget.tsx <module evaluation>","LiveSessionsWidget")},62615,a=>{"use strict";a.s(["LiveSessionsWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveSessionsWidget() from the server but LiveSessionsWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/live-sessions-widget.tsx","LiveSessionsWidget")},9647,a=>{"use strict";a.i(99153);var b=a.i(62615);a.n(b)},14022,a=>{"use strict";a.s(["JobQueueWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call JobQueueWidget() from the server but JobQueueWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/job-queue-widget.tsx <module evaluation>","JobQueueWidget")},5900,a=>{"use strict";a.s(["JobQueueWidget",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call JobQueueWidget() from the server but JobQueueWidget is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/job-queue-widget.tsx","JobQueueWidget")},84829,a=>{"use strict";a.i(14022);var b=a.i(5900);a.n(b)},73842,a=>{"use strict";a.s(["MenubarInstallBanner",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call MenubarInstallBanner() from the server but MenubarInstallBanner is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/menubar-install-banner.tsx <module evaluation>","MenubarInstallBanner")},46147,a=>{"use strict";a.s(["MenubarInstallBanner",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call MenubarInstallBanner() from the server but MenubarInstallBanner is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/components/menubar-install-banner.tsx","MenubarInstallBanner")},73994,a=>{"use strict";a.i(73842);var b=a.i(46147);a.n(b)},28992,a=>{"use strict";var b=a.i(7997),c=a.i(5246),d=a.i(23604),e=a.i(30642),f=a.i(9647),g=a.i(84829),h=a.i(73994);a.i(9117);var i=a.i(48024),j=a.i(67116),k=a.i(70709),l=a.i(60511),m=a.i(76597),n=a.i(40095);async function o({children:a}){let p=await (0,c.headers)();if((p.get("x-fleetlens-pathname")??"").startsWith("/print/")){let d=p.get("x-fleetlens-theme"),e=await (0,c.cookies)(),f=e.get("claude-lens-theme")?.value;return(0,b.jsx)("html",{lang:"en","data-theme":"light"===d||"dark"===d?d:"light"===f||"dark"===f?f:"dark",suppressHydrationWarning:!0,children:(0,b.jsx)("body",{children:a})})}let[q,r]=await Promise.all([(0,j.listSessions)(),(0,m.buildEntriesIndex)()]),s=q.slice(0,20),t=q.length,u=(0,i.groupByProject)(q).map(a=>({projectDir:a.projectDir,projectName:a.projectName,sessionCount:a.sessions.length,lastActiveMs:a.lastActiveMs,worktreeCount:a.worktreeCount})),v=(0,k.latestUsageSnapshot)(),w=(0,l.readTeamConnection)(),x=s.map(a=>({id:a.id,projectName:a.projectName,firstUserPreview:a.firstUserPreview,lastUserPreview:a.lastUserPreview,lastAgentPreview:a.lastAgentPreview,firstTimestamp:a.firstTimestamp,lastTimestamp:a.lastTimestamp,lastActivityMs:a.lastActivityMs,teamName:a.teamName,agentName:a.agentName,agent:a.agent})),y={};for(let a of s){let b=r.bySession.get(a.id)??[];if(0===b.length)continue;let c=b[b.length-1];y[a.id]={outcome:c.enrichment.outcome??null,enrichmentStatus:c.enrichment.status,localDay:c.local_day}}let z=await (0,c.cookies)(),A=z.get("claude-lens-theme")?.value;return(0,b.jsx)("html",{lang:"en","data-theme":"light"===A||"dark"===A?A:"dark",suppressHydrationWarning:!0,children:(0,b.jsxs)("body",{children:[(0,b.jsx)(e.LiveRefresher,{}),(0,b.jsxs)("div",{style:{display:"flex",height:"100vh"},children:[(0,b.jsx)(d.Sidebar,{projects:u,totalSessions:t,currentUsage:v,version:"0.16.2",latestChangelogVersion:n.LATEST_VERSION,teamConnection:w}),(0,b.jsxs)("main",{style:{flex:1,minWidth:0,minHeight:0,padding:0,overflow:"auto"},children:[(0,b.jsx)(h.MenubarInstallBanner,{}),a]})]}),(0,b.jsx)(f.LiveSessionsWidget,{sessions:x,entrySummaries:y}),(0,b.jsx)(g.JobQueueWidget,{})]})})}a.s(["default",0,o,"dynamic",0,"force-dynamic","metadata",0,{title:"Fleetlens",description:"Multi-agent fleet analytics — local-only dashboard for Claude Code, Codex, and other coding-agent sessions."}],28992)},44665,a=>{a.n(a.i(28992))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_0k8yioi._.js.map
|