fleetlens 0.11.2 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/apps/web/.next/BUILD_ID +1 -1
- package/app/apps/web/.next/app-path-routes-manifest.json +3 -0
- package/app/apps/web/.next/build-manifest.json +3 -3
- package/app/apps/web/.next/prerender-manifest.json +3 -3
- package/app/apps/web/.next/routes-manifest.json +22 -0
- package/app/apps/web/.next/server/app/_global-error.html +1 -1
- package/app/apps/web/.next/server/app/_global-error.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/api/ask/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/day/[date]/route.js +1 -1
- package/app/apps/web/.next/server/app/api/digest/day/[date]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js +1 -1
- package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/month-index/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js +1 -1
- package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/week-index/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/events/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/jobs/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/pdf/[key]/route/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/api/pdf/[key]/route/build-manifest.json +9 -0
- package/app/apps/web/.next/server/app/api/pdf/[key]/route/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/api/pdf/[key]/route.js +10 -0
- package/app/apps/web/.next/server/app/api/pdf/[key]/route.js.map +5 -0
- package/app/apps/web/.next/server/app/api/pdf/[key]/route.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/api/pdf/[key]/route_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/api/runs/[runId]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/runs/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/team-config/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/workflow-agent/route/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/api/workflow-agent/route/build-manifest.json +9 -0
- package/app/apps/web/.next/server/app/api/workflow-agent/route/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/api/workflow-agent/route.js +7 -0
- package/app/apps/web/.next/server/app/api/workflow-agent/route.js.map +5 -0
- package/app/apps/web/.next/server/app/api/workflow-agent/route.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/api/workflow-agent/route_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/changelog/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/changelog/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/day/[date]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/day/[date]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/day/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/day/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/digest/[date]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/digest/[date]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/digest/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/digest/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/insights/[key]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/insights/[key]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/insights/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/insights/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/parallelism/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/parallelism/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/print/[key]/page/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/app/print/[key]/page/build-manifest.json +17 -0
- package/app/apps/web/.next/server/app/print/[key]/page/next-font-manifest.json +6 -0
- package/app/apps/web/.next/server/app/print/[key]/page/react-loadable-manifest.json +1 -0
- package/app/apps/web/.next/server/app/print/[key]/page/server-reference-manifest.json +4 -0
- package/app/apps/web/.next/server/app/print/[key]/page.js +18 -0
- package/app/apps/web/.next/server/app/print/[key]/page.js.map +5 -0
- package/app/apps/web/.next/server/app/print/[key]/page.js.nft.json +1 -0
- package/app/apps/web/.next/server/app/print/[key]/page_client-reference-manifest.js +3 -0
- package/app/apps/web/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/projects/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/runs/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/runs/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/sessions/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/team/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/team/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/usage/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/usage/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app-paths-manifest.json +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0455vu3._.js +2 -2
- package/app/apps/web/.next/server/chunks/{[root-of-the-server]__0_8zh-i._.js → [root-of-the-server]__04j3tng._.js} +2 -2
- package/app/apps/web/.next/server/chunks/{[root-of-the-server]__0jprdks._.js → [root-of-the-server]__0cnh3k4._.js} +2 -2
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0e.f-t.._.js +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0kc9e1n._.js +3 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0y5p73y._.js +3 -0
- package/app/apps/web/.next/server/chunks/{[root-of-the-server]__0ej_p3s._.js → [root-of-the-server]__132eosx._.js} +2 -2
- package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_pdf_[key]_route_actions_0intcw9.js +3 -0
- package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_workflow-agent_route_actions_0gxw9tv.js +3 -0
- package/app/apps/web/.next/server/chunks/packages_entries_dist_node_0bckr7-.js +1 -1
- package/app/apps/web/.next/server/chunks/packages_parser_dist_04rh1zd._.js +1 -1
- package/app/apps/web/.next/server/chunks/packages_parser_dist_0ndsxe6._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0_xpuh7._.js → [root-of-the-server]__03y~03u._.js} +2 -2
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__04eq6z2._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__04il6m2._.js +11 -0
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0exckd4._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0o03ymy._.js +2 -2
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0rvzdnx._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0z7mg0b._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0~.f_3z._.js +12 -0
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__136-0me._.js +8 -0
- package/app/apps/web/.next/server/chunks/ssr/_0cgg5zi._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/_0jw2sm7._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/_0kajk31._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/_0w.cv64._.js +8 -0
- package/app/apps/web/.next/server/chunks/ssr/_0xu2pvc._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_0.mu7c7._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_print_[key]_page_actions_0_ygul-.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/apps_web_components_01d-iwx._.js +6 -0
- package/app/apps/web/.next/server/chunks/ssr/apps_web_components_week-digest_tsx_0c9ha31._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_0af94gl._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_07orc4m.js +4 -0
- package/app/apps/web/.next/server/chunks/ssr/packages_parser_dist_12.endt._.js +1 -1
- package/app/apps/web/.next/server/edge/chunks/[root-of-the-server]__0.sx~id._.js +11 -0
- package/app/apps/web/.next/server/edge/chunks/node_modules_next_dist_esm_build_templates_edge-wrapper_0p1t1z8.js +3 -0
- package/app/apps/web/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_0mw-sqe.js +3 -0
- package/app/apps/web/.next/server/functions-config-manifest.json +4 -1
- package/app/apps/web/.next/server/middleware-build-manifest.js +3 -3
- package/app/apps/web/.next/server/middleware-manifest.json +30 -2
- 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/WH20Ct_NdpZTKsqI_yquG/_clientMiddlewareManifest.js +6 -0
- package/app/apps/web/.next/static/chunks/00xkqnvk4-d1-.js +10 -0
- package/app/apps/web/.next/static/chunks/0716x58e1_2c5.js +1 -0
- package/app/apps/web/.next/static/chunks/{0s4eyofh28l~u.js → 0ck03i0l4zeun.js} +1 -1
- package/app/apps/web/.next/static/chunks/0nnjldasalwdu.js +4 -0
- package/app/apps/web/.next/static/chunks/0okg13phslr1..js +4 -0
- package/app/apps/web/.next/static/chunks/0vf-3rauafbek.js +6 -0
- package/app/apps/web/.next/static/chunks/0vl27-vjob2_9.js +6 -0
- package/app/apps/web/.next/static/chunks/0yo458-7577lr.js +1 -0
- package/app/apps/web/.next/static/chunks/14bjditmmrn7l.js +1 -0
- package/app/apps/web/app/api/events/route.ts +50 -2
- package/app/apps/web/app/api/pdf/[key]/route.ts +199 -0
- package/app/apps/web/app/api/workflow-agent/route.ts +27 -0
- package/app/apps/web/app/insights/[key]/page.tsx +4 -1
- package/app/apps/web/app/layout.tsx +23 -1
- package/app/apps/web/app/page.tsx +24 -1
- package/app/apps/web/app/print/[key]/page.tsx +91 -0
- package/app/apps/web/app/projects/[slug]/page.tsx +6 -7
- package/app/apps/web/app/projects/page.tsx +2 -3
- package/app/apps/web/app/sessions/[id]/session-view.tsx +1297 -19
- package/app/apps/web/app/sessions/sessions-grid.tsx +10 -1
- package/app/apps/web/components/dashboard-view.tsx +2 -1
- package/app/apps/web/components/export-pdf-button.tsx +76 -0
- package/app/apps/web/components/month-digest-view.tsx +10 -0
- package/app/apps/web/components/week-digest-view.tsx +10 -0
- package/app/apps/web/lib/changelog-data.generated.ts +1 -1
- package/app/apps/web/lib/entries-index.ts +5 -4
- package/app/apps/web/lib/find-chrome.ts +71 -0
- package/app/apps/web/middleware.ts +22 -0
- package/app/apps/web/package.json +1 -1
- package/app/apps/web/tsconfig.tsbuildinfo +1 -1
- package/dist/daemon-worker.js +1592 -252
- package/dist/index.js +1495 -168
- package/package.json +1 -1
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0d~2~le._.js +0 -8
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0w52fbc._.js +0 -12
- package/app/apps/web/.next/server/chunks/ssr/_02s1n-x._.js +0 -8
- package/app/apps/web/.next/server/chunks/ssr/_0fjbf--._.js +0 -3
- package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0ly1xes._.js +0 -6
- package/app/apps/web/.next/static/chunks/0.3mqbj24kwtc.js +0 -6
- package/app/apps/web/.next/static/chunks/0byz8fqw.exef.js +0 -1
- package/app/apps/web/.next/static/chunks/0l3ck.awv~4t7.js +0 -1
- package/app/apps/web/.next/static/chunks/0lxuac2v0_gdl.js +0 -6
- package/app/apps/web/.next/static/chunks/0m62vx92~0_0d.js +0 -1
- package/app/apps/web/.next/static/chunks/0rtba0saz74e1.js +0 -10
- package/app/apps/web/.next/static/chunks/0uev~g~qvbjv9.js +0 -4
- package/app/apps/web/.next/static/m6ibRSdAu8jD10VBA2OFH/_clientMiddlewareManifest.js +0 -1
- /package/app/apps/web/.next/static/{m6ibRSdAu8jD10VBA2OFH → WH20Ct_NdpZTKsqI_yquG}/_buildManifest.js +0 -0
- /package/app/apps/web/.next/static/{m6ibRSdAu8jD10VBA2OFH → WH20Ct_NdpZTKsqI_yquG}/_ssgManifest.js +0 -0
|
@@ -397,6 +397,6 @@ VOCABULARY:
|
|
|
397
397
|
- Internal flag tokens (loop_suspected, long_autonomous, fast_ship) — forbidden in labels
|
|
398
398
|
- "Plan Mode" specifically means /plan tool calls
|
|
399
399
|
- Avoid identity claims ("you're a Plan Mode person"). Stick to observed action.
|
|
400
|
-
`,n6=e=>tV({...e,systemPrompt:n7});async function n8(e,t={}){let n={session_id:e.session_id,date:e.date,project:e.project,project_display:e.project_display,start_iso:e.start_iso,wall_min:e.wall_min,active_min:e.active_min,idle_min:e.idle_min,turn_count:e.turn_count,outcome:e.outcome??null,shipped_prs:e.shipped_prs,working_shape:e.working_shape,day_signature:e.day_signature,user_authored_skills:e.user_authored_skills,user_authored_subagents:e.user_authored_subagents,stock_skills:e.stock_skills,top_tools:e.top_tools,steering:e.steering,timeline:{duration_min:e.wall_min,active_intervals:e.active_intervals},session_summary:null,steering_summary:null,why_picked:null,what_worked:null,what_hit_friction:null,pins:[]};if(0===e.candidate_pins.length)return{topSession:n,usage:null};let s=t.model??"sonnet",a=t.callLLM??n6,r=function(e){let t=[],n=(e="")=>t.push(e);n(`# Session ${e.session_id}`),n(`Project: ${e.project_display} \xb7 Date: ${e.date} \xb7 Started: ${e.start_iso}`),n(`Wall: ${e.wall_min}m \xb7 Active: ${e.active_min}m \xb7 Idle: ${e.idle_min}m \xb7 Turns: ${e.turn_count}`);let s=[];if(e.outcome&&s.push(`Outcome: ${e.outcome}`),e.working_shape&&s.push(`Working shape: ${e.working_shape}`),s.length&&n(s.join(" · ")),e.day_signature&&n(`Day signature: "${e.day_signature}"`),e.shipped_prs.length)for(let t of(n(`Shipped PRs (${e.shipped_prs.length}):`),e.shipped_prs))n(` - "${t}"`);if(n(),n("## Harness"),n(`- User-authored skills: ${e.user_authored_skills.length?e.user_authored_skills.join(", "):"(none)"}`),e.user_authored_subagents.length){let t=e.user_authored_subagents.map(e=>`${e.type}\xd7${e.count}`).join(", ");n(`- User-authored subagents: ${t}`)}n(`- Stock skills loaded: ${e.stock_skills.length?e.stock_skills.join(", "):"(none)"}`),n(`- Top tools: ${e.top_tools.length?e.top_tools.join(", "):"(none)"}`),n();let a=e.steering;for(let t of(n("## Steering"),n(`${a.user_msg_count} user messages (median ${a.median_user_msg_chars} chars, ${a.long_user_msg_count} long, ${a.interrupts} interrupts)`),n(),n(`## Turns (${e.turns.length})`),e.turns)){n();let e=t.idle_before_min>0?` \xb7 ${t.idle_before_min}m idle before`:"";if(n(`### Turn ${t.turn} — ${t.start_min}m–${t.end_min}m (${t.wall_min}m wall, ${t.active_min}m active${e})`),t.user&&n(`USER (${t.user.chars}c): ${t.user.preview}`),t.first_agent&&n(`FIRST_AGENT (${t.first_agent.chars}c): ${t.first_agent.preview}`),t.last_agent&&n(`LAST_AGENT (${t.last_agent.chars}c): ${t.last_agent.preview}`),!t.agent||t.first_agent||t.last_agent||n(`AGENT (${t.agent.chars}c): ${t.agent.preview}`),t.tools.length&&n(`Tools: ${t.tools.join(", ")}`),t.skills_loaded?.length&&n(`Skills loaded this turn: ${t.skills_loaded.join(", ")}`),t.subagents_dispatched?.length)for(let e of t.subagents_dispatched)n(`Subagent dispatched: ${e.type} — ${e.description}`),e.prompt_preview&&n(` prompt: ${e.prompt_preview}`);let s=[];t.exit_plan_calls&&s.push(`exit_plan\xd7${t.exit_plan_calls}`),t.todo_ops&&s.push(`TodoWrite ops: ${t.todo_ops}`),t.interrupts&&s.push(`interrupts: ${t.interrupts}`),t.pr_created&&s.push(`PR created: "${t.pr_created}"`),t.long_autonomous_run&&s.push("LONG-AUTONOMOUS RUN"),s.length&&n(`Signals: ${s.join(" · ")}`)}if(n(),n('## Candidate pins (deterministic — pick + label the most editorial 3-6 of these for your "pins" output)'),0===e.candidate_pins.length)n("(none — sparse session)");else for(let t of e.candidate_pins){let e=void 0!==t.end_min?`${t.start_min}m–${t.end_min}m`:`${t.start_min}m`,s=[];for(let[e,n]of Object.entries(t.context??{}))null!=n&&("string"==typeof n?s.push(`${e}="${n.length>200?n.slice(0,197)+"...":n}"`):Array.isArray(n)?s.push(`${e}=[${n.length} items]`):"object"==typeof n?s.push(`${e}={...}`):s.push(`${e}=${n}`));n(`- [${e}] ${t.kind}${s.length?` — ${s.join(", ")}`:""}`)}return t.join("\n")}(e),i=0,o=0;function l(e){let t=e.pins.map(e=>({start_min:e.start_min,end_min:e.end_min,kind:e.kind,label:e.label}));return{...n,session_summary:e.session_summary,steering_summary:e.steering_summary,why_picked:e.why_picked,what_worked:e.what_worked,what_hit_friction:e.what_hit_friction,pins:t}}try{let d,u,c=await a({model:s,userPrompt:r,onProgress:t.onProgress});i+=c.input_tokens,o+=c.output_tokens,c.model;let p=(d=c.content,tq(d,n3));if(p.ok)return{topSession:l(p.value),usage:{input_tokens:i,output_tokens:o}};let h=await a({model:s,userPrompt:r,reminder:"Your previous response was not valid JSON or did not match the required schema. Return ONLY the JSON object with session_summary + steering_summary + pins (3-5 items, each with start_min/kind/label) — no prose, no code fence.",onProgress:t.onProgress});i+=h.input_tokens,o+=h.output_tokens,h.model;let m=(u=h.content,tq(u,n3));if(m.ok)return{topSession:l(m.value),usage:{input_tokens:i,output_tokens:o}};return console.warn(`[top-session] ${e.session_id}: LLM validation failed after retry (${m.error})`),{topSession:n,usage:{input_tokens:i,output_tokens:o}}}catch(t){return console.warn(`[top-session] ${e.session_id}: LLM invocation failed (${t.message})`),{topSession:n,usage:i>0?{input_tokens:i,output_tokens:o}:null}}finally{}}async function*se(e,t){let n=t.now??(()=>Date.now()),s=e===t.currentWeekMonday,a=t.settings.enabled;if(!s&&!t.force){let t=(0,ny.readWeekDigest)(e);if(t)return void(yield{type:"digest",digest:t})}if(s&&!t.force){let t=(0,ny.getCurrentWeekDigestFromCache)(e,n());if(t)return void(yield{type:"digest",digest:t})}yield{type:"status",phase:"load_dependencies",text:`Loading 7 days for week of ${e}`};let r=nD(e),i=[];for(let e of r){if(e>t.todayLocalDay){yield{type:"dependency",kind:"day",key:e,status:"cached"};continue}let n=e===t.todayLocalDay,s=n?null:(0,ny.readDayDigest)(e);if(s){i.push(s),yield{type:"dependency",kind:"day",key:e,status:"cached"};continue}if(n){let n={settings:t.settings,force:t.force??!1,callLLM:t.callLLM,now:t.now,todayLocalDay:t.todayLocalDay,caller:t.caller},s=null,a=!1;for await(let t of nx(e,n))if("digest"===t.type&&"day"===t.digest.scope&&(s=t.digest),"error"===t.type){a=!0;break}s?(i.push(s),yield{type:"dependency",kind:"day",key:e,status:"cached"}):a&&(yield{type:"dependency",kind:"day",key:e,status:"failed"});continue}let a={settings:t.settings,force:!1,callLLM:t.callLLM,now:t.now,todayLocalDay:t.todayLocalDay,caller:t.caller},r=null,o=!1;for await(let t of nx(e,a)){if("digest"===t.type){"day"===t.digest.scope&&(r=t.digest);continue}if("saved"!==t.type){if("error"===t.type){o=!0;continue}yield t}}r?(i.push(r),yield{type:"dependency",kind:"day",key:e,status:"generated"}):o&&(yield{type:"dependency",kind:"day",key:e,status:"failed"})}if(0===i.length)return void(yield{type:"error",message:`no day digests available for week of ${e}`});let o=new Map;for(let e of r)e>t.todayLocalDay||o.set(e,(0,t5.listEntriesForDay)(e));a&&ne();try{let r,l=new Map(i.map(e=>[e.key,e])),u=a?function(e){let t=[];for(let n of e.values())t.push(...n);let n=e=>e.numbers.active_min*(1+.5*e.numbers.subagent_calls+5*e.pr_titles.length),s=t.filter(e=>e.numbers.active_min>=20||e.numbers.turn_count>=10||e.pr_titles.length>=1).map(e=>({entry:e,score:n(e)})).sort((e,t)=>t.score-e.score),a=new Set,r=[];for(let{entry:e}of s)if(!a.has(e.project)&&(a.add(e.project),r.push(e),r.length>=3))break;let i=t.some(e=>(e.agent??"claude-code")!=="claude-code"),o=r.some(e=>(e.agent??"claude-code")!=="claude-code");if(i&&!o){let e=t.filter(e=>(e.agent??"claude-code")!=="claude-code").filter(e=>e.numbers.active_min>=3||e.numbers.tools_total>=10||e.numbers.turn_count>=3).map(e=>({entry:e,score:n(e)+1e-4*e.numbers.tools_total})).sort((e,t)=>t.score-e.score).find(e=>!a.has(e.entry.project));e&&(r.length>=3&&r.pop(),r.push(e.entry))}return r}(o):[],c=(await Promise.all(u.map(async e=>{try{let t=await (0,tT.getAnySession)(e.session_id);if(!t)return null;let n=t.events,s=l.get(e.local_day);return{entry:e,slice:function(e,t,n){var s;let a,r=Date.parse(e.start_iso),{turns:i,sliceStartMs:o,sliceEndMs:l}=function(e,t,n){let s=[];for(let a of e){if(!a.timestamp)continue;let e=Date.parse(a.timestamp);!Number.isNaN(e)&&(e<t||e>n||s.push({...a,_ts:e}))}if(0===s.length)return{turns:[],sliceStartMs:t,sliceEndMs:n};s.sort((e,t)=>e._ts-t._ts);let a=s[0]._ts,r=s[s.length-1]._ts,i=[],o=null;for(let e of s){let t=e.blocks??[],n="user"===e.role||"tool-result"===e.role,s="agent"===e.role||"agent-thinking"===e.role||"tool-call"===e.role;if(n)if(t.length>0&&t.every(e=>"tool_result"===e.type))o&&(o.events.push(e),o.timestamps.push(e._ts));else{let n=t.filter(e=>"text"===e.type).map(e=>e.text).join(" "),s=n4.test(n);o&&s&&(o.interrupts+=1),o&&i.push(o),o={events:[e],user_text:n,agent_blocks:[],tools_count:new Map,bash_verbs:new Map,skills:new Map,subagents:[],exit_plan_calls:0,todo_ops:0,interrupts:0,pr_created:null,timestamps:[e._ts]}}else if(s){if(!o)continue;for(let n of(o.events.push(e),o.timestamps.push(e._ts),t))if(n&&"object"==typeof n){if("text"===n.type&&n.text)o.agent_blocks.push(n.text);else if("tool_use"===n.type){let e=n.name??"unknown";if(o.tools_count.set(e,(o.tools_count.get(e)??0)+1),"Skill"===e){let e=String(n.input?.skill??"unknown");o.skills.set(e,(o.skills.get(e)??0)+1)}else if("Agent"===e){let e=n.input??{};o.subagents.push({type:String(e.subagent_type??"general-purpose"),description:String(e.description??"").slice(0,80),prompt_preview:String(e.prompt??"").slice(0,240),background:!!e.run_in_background})}else if("ExitPlanMode"===e)o.exit_plan_calls+=1;else if("TodoWrite"===e||"TaskCreate"===e||"TaskUpdate"===e)o.todo_ops+=1;else if("Bash"===e){let e=String(n.input?.command??""),t=function(e){if(!e)return"?";let t=e.split(/\|\||&&|;|\|/,1)[0].trim();if(t.startsWith("cd ")){let n=e.split(/&&|;/,3);n.length>=2&&(t=n[1].trim())}let n=t.split(/\s+/).filter(Boolean);for(;n.length&&n2.has(n[0]);)n.shift();if(!n.length)return"?";let s=n[0];if(s.includes("=")&&!s.startsWith("/")){if(n.shift(),!n.length)return"?";s=n[0]}return s.includes("/")&&!s.startsWith("./")&&(s=s.replace(/\/+$/,"").split("/").pop()),s.replace(/^["']|["']$/g,"")||"?"}(e);if(o.bash_verbs.set(t,(o.bash_verbs.get(t)??0)+1),/\bgh\s+pr\s+create\b/.test(e)){let t=e.match(n9);o.pr_created=t?.[1]??e.slice(0,120)}}}}}}return o&&i.push(o),{turns:i,sliceStartMs:a,sliceEndMs:r}}(t,r,Date.parse(e.end_iso)),u=i.flatMap(e=>e.timestamps),c=l-o,p=n1(u),h=[...u].sort((e,t)=>e-t),m=[];if(h.length>0){let e=h[0],t=h[0];for(let n=1;n<h.length;n++)h[n]-t>=18e4&&(m.push({start_min:nQ(e-o),end_min:nQ(t-o)}),e=h[n]),t=h[n];m.push({start_min:nQ(e-o),end_min:nQ(t-o)})}let _=[],f=o,g=[],y=0;i.forEach((e,t)=>{let n=Math.min(...e.timestamps),s=Math.max(...e.timestamps),a=n1(e.timestamps),r=0===t?0:Math.max(0,n-f);f=s,e.user_text&&(g.push(e.user_text.length),e.user_text.length>=800&&y++);let i=null,l=null;e.agent_blocks.length>0&&(i=e.agent_blocks[0],l=e.agent_blocks.reduce((e,t)=>t.length>e.length?t:e));let d=null!==i&&i===l,u=[];for(let[t,n]of[...e.tools_count.entries()].sort((e,t)=>t[1]-e[1]))if("Bash"===t&&e.bash_verbs.size>0){let t=[...e.bash_verbs.entries()].sort((e,t)=>t[1]-e[1]).slice(0,3).map(([e,t])=>t>1?`${e}\xd7${t}`:e).join(", ");u.push(`Bash\xd7${n} (${t})`)}else u.push(n>1?`${t}\xd7${n}`:t);let c={turn:t+1,start_min:nQ(n-o),end_min:nQ(s-o),wall_min:nQ(s-n),active_min:nQ(a),idle_before_min:nQ(r),start_iso:new Date(n).toISOString(),user:e.user_text?n0(e.user_text,0===t?400:150):null,tools:u};d?c.agent=n0(i,200):(c.first_agent=i?n0(i,150):null,c.last_agent=l?n0(l,200):null),e.skills.size>0&&(c.skills_loaded=[...e.skills.entries()].map(([e,t])=>t>1?`${e}\xd7${t}`:e)),e.subagents.length>0&&(c.subagents_dispatched=e.subagents.map(e=>({type:e.type,description:e.description,prompt_preview:e.prompt_preview}))),e.exit_plan_calls>0&&(c.exit_plan_calls=e.exit_plan_calls),e.todo_ops>0&&(c.todo_ops=e.todo_ops),e.interrupts>0&&(c.interrupts=e.interrupts),e.pr_created&&(c.pr_created=e.pr_created),a>=12e5&&0===e.interrupts&&(c.long_autonomous_run=!0),_.push(c)});let v=new Map,w=new Map,k=new Map,b=new Map,x=0;for(let e of i){for(let[t,n]of e.skills)v.set(t,(v.get(t)??0)+n);for(let t of e.subagents)(0,d.isStockSubagentType)(t.type)||w.set(t.type,(w.get(t.type)??0)+1);for(let[t,n]of e.tools_count)k.set(t,(k.get(t)??0)+n);for(let[t,n]of e.bash_verbs)b.set(t,(b.get(t)??0)+n);x+=e.interrupts}let S=[],$=[];for(let e of v.keys()){let t=(0,d.classifySkill)(e);"user"===t?S.push(e):"stock"===t&&$.push(e)}let T=[];for(let[e,t]of[...k.entries()].sort((e,t)=>t[1]-e[1]).slice(0,5))if("Bash"===e&&b.size>0){let e=[...b.entries()].sort((e,t)=>t[1]-e[1]).slice(0,3).map(([e,t])=>t>1?`${e}\xd7${t}`:e).join(", ");T.push(`Bash\xd7${t} (${e})`)}else T.push(`${e}\xd7${t}`);g.sort((e,t)=>e-t);let N=0===g.length?0:g[Math.floor(g.length/2)],j=[];for(let e of _)e.user?.chars&&e.user.chars>=800&&j.push({start_min:e.start_min,kind:"user-steering",context:{chars:e.user.chars,turn:e.turn,format:e.user.chars>=5e3?"long-paste":"long-prose"}}),e.subagents_dispatched&&e.subagents_dispatched.length>=3&&j.push({start_min:e.start_min,kind:"subagent-burst",context:{count:e.subagents_dispatched.length,types:e.subagents_dispatched.map(e=>e.type),turn:e.turn}}),e.long_autonomous_run&&j.push({start_min:e.start_min,end_min:e.end_min,kind:"long-autonomous",context:{duration_min:e.active_min,turn:e.turn}}),e.exit_plan_calls&&e.exit_plan_calls>0&&j.push({start_min:e.start_min,kind:"plan-mode",context:{turn:e.turn}}),e.pr_created&&j.push({start_min:e.start_min,kind:"pr-ship",context:{pr_title:e.pr_created,turn:e.turn}}),e.skills_loaded&&e.skills_loaded.length>=2&&j.push({start_min:e.start_min,kind:"harness-chain",context:{skills:e.skills_loaded,turn:e.turn}}),e.interrupts&&e.interrupts>0&&j.push({start_min:e.start_min,kind:"interrupt",context:{count:e.interrupts,turn:e.turn}});return{session_id:e.session_id,date:e.local_day,project:e.project,project_display:(a=(s=e.project).split("/").filter(Boolean))[a.length-1]??s,start_iso:new Date(o).toISOString(),wall_min:nQ(c),active_min:nQ(p),idle_min:nQ(c-p),turn_count:_.length,outcome:e.enrichment.outcome,shipped_prs:e.pr_titles,working_shape:e.signals?.working_shape??(0,d.inferWorkingShape)(e),day_signature:n,user_authored_skills:S,user_authored_subagents:[...w.entries()].sort((e,t)=>t[1]-e[1]).map(([e,t])=>({type:e,count:t})),stock_skills:$,top_tools:T,steering:{user_msg_count:g.length,long_user_msg_count:y,median_user_msg_chars:N,interrupts:x},active_intervals:m,turns:_,candidate_pins:j}}(e,n,s?.day_signature??null)}}catch(t){return console.warn(`[top-session] slice prep failed for ${e.session_id}: ${t.message}`),null}}))).filter(e=>null!==e);if(a){yield{type:"status",phase:"synth",text:c.length>0?`Synthesizing week narrative + diving into ${c.length} top session${1===c.length?"":"s"} in parallel`:"Synthesizing week narrative"};let n=[],a=nY(e,i,{model:t.settings.model,callLLM:t.callLLM,entriesByDay:o,allowSingleDay:!0===t.force&&s,onProgress:e=>{n.push({bytes:e.bytes,elapsed_ms:e.elapsedMs})}}),l=Promise.all(c.map(({entry:e,slice:n})=>n8(n,{model:t.settings.model,callLLM:t.callLLM}).then(t=>({entry:e,...t})).catch(t=>(console.warn(`[top-session] LLM failed for ${e.session_id}: ${t.message}`),null)))),d=!1,u=!1;for(a.finally(()=>{d=!0}),l.finally(()=>{u=!0});!d||!u;)if(await new Promise(e=>setTimeout(e,500)),n.length>0){let e=n[n.length-1];yield{type:"progress",phase:"synth",bytes:e.bytes,elapsed_ms:e.elapsed_ms},n.length=0}let p=await a,h=await l;r=p.digest,p.usage&&t4({ts:new Date().toISOString(),caller:t.caller??"web",model:r.model??t.settings.model,input_tokens:p.usage.input_tokens,output_tokens:p.usage.output_tokens,cost_usd:r.cost_usd??0,kind:"week_digest",ref:e});let m=[];for(let n of h)n&&(m.push({...n.topSession,agent:n.entry.agent}),n.usage&&t4({ts:new Date().toISOString(),caller:t.caller??"web",model:t.settings.model,input_tokens:n.usage.input_tokens,output_tokens:n.usage.output_tokens,cost_usd:tK(t.settings.model,n.usage.input_tokens,n.usage.output_tokens),kind:"top_session",ref:`${e}/${n.entry.session_id}`}));r.headline&&m.length>0&&(r.top_sessions=m)}else r=nL(e,i,{entriesByDay:o});s?(r.is_live=!0,(0,ny.setCurrentWeekDigestInCache)(e,r,n()),!0===t.force&&((0,ny.writeWeekDigest)(r),yield{type:"saved",path:`~/.cclens/digests/week/${e}.json`})):((0,ny.writeWeekDigest)(r),yield{type:"saved",path:`~/.cclens/digests/week/${e}.json`}),yield{type:"digest",digest:r}}finally{a&&nt()}}async function*st(e,t){let n=t.now??(()=>Date.now()),s=e===t.currentYearMonth,a=t.settings.enabled;if(!s&&!t.force){let t=(0,ny.readMonthDigest)(e);if(t)return void(yield{type:"digest",digest:t})}if(s&&!t.force){let t=(0,ny.getCurrentMonthDigestFromCache)(e,n());if(t)return void(yield{type:"digest",digest:t})}yield{type:"status",phase:"load_dependencies",text:`Loading weeks for ${e}`};let r=nV(e),i=[];for(let e of r){if(e>t.currentWeekMonday){yield{type:"dependency",kind:"week",key:e,status:"cached"};continue}let n=e===t.currentWeekMonday,s=n?null:(0,ny.readWeekDigest)(e);if(s){i.push(s),yield{type:"dependency",kind:"week",key:e,status:"cached"};continue}if(n){let n={settings:t.settings,force:!1,callLLM:t.callLLM,now:t.now,currentWeekMonday:t.currentWeekMonday,todayLocalDay:t.todayLocalDay,caller:t.caller},s=null,a=!1;for await(let t of se(e,n))if("digest"===t.type&&"week"===t.digest.scope&&(s=t.digest),"error"===t.type){a=!0;break}s?(i.push(s),yield{type:"dependency",kind:"week",key:e,status:"cached"}):a&&(yield{type:"dependency",kind:"week",key:e,status:"failed"});continue}let a={settings:t.settings,force:!1,callLLM:t.callLLM,now:t.now,currentWeekMonday:t.currentWeekMonday,todayLocalDay:t.todayLocalDay,caller:t.caller},r=null,o=!1;for await(let t of se(e,a)){if("digest"===t.type){"week"===t.digest.scope&&(r=t.digest);continue}if("saved"!==t.type){if("error"===t.type){o=!0;continue}yield t}}r?(i.push(r),yield{type:"dependency",kind:"week",key:e,status:"generated"}):o&&(yield{type:"dependency",kind:"week",key:e,status:"failed"})}if(0===i.length)return void(yield{type:"error",message:`no week digests available for ${e}`});a&&ne();try{let r;if(a){yield{type:"status",phase:"synth",text:"Synthesizing month narrative"};let n=[],s=nX(e,i,{model:t.settings.model,callLLM:t.callLLM,onProgress:e=>{n.push({bytes:e.bytes,elapsed_ms:e.elapsedMs})}}),a=!1;for(s.finally(()=>{a=!0});!a;)if(await new Promise(e=>setTimeout(e,500)),n.length>0){let e=n[n.length-1];yield{type:"progress",phase:"synth",bytes:e.bytes,elapsed_ms:e.elapsed_ms},n.length=0}let o=await s;r=o.digest,o.usage&&t4({ts:new Date().toISOString(),caller:t.caller??"web",model:r.model??t.settings.model,input_tokens:o.usage.input_tokens,output_tokens:o.usage.output_tokens,cost_usd:r.cost_usd??0,kind:"month_digest",ref:e})}else r=nK(e,i);s?(r.is_live=!0,(0,ny.setCurrentMonthDigestInCache)(e,r,n())):((0,ny.writeMonthDigest)(r),yield{type:"saved",path:`~/.cclens/digests/month/${e}.json`}),yield{type:"digest",digest:r}}finally{a&&nt()}}e.s(["mondayFor",0,function(e){let t=new Date(`${e}T00:00:00`),n=t.getDay();t.setDate(t.getDate()+(0===n?-6:1-n));let s=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0");return`${s}-${a}-${r}`},"runWeekDigestPipeline",0,se],77242),e.s(["runMonthDigestPipeline",0,st],21628),e.s([],82111)}];
|
|
400
|
+
`,n6=e=>tV({...e,systemPrompt:n7});async function n8(e,t={}){let n={session_id:e.session_id,date:e.date,project:e.project,project_display:e.project_display,start_iso:e.start_iso,wall_min:e.wall_min,active_min:e.active_min,idle_min:e.idle_min,turn_count:e.turn_count,outcome:e.outcome??null,shipped_prs:e.shipped_prs,working_shape:e.working_shape,day_signature:e.day_signature,user_authored_skills:e.user_authored_skills,user_authored_subagents:e.user_authored_subagents,stock_skills:e.stock_skills,top_tools:e.top_tools,steering:e.steering,timeline:{duration_min:e.wall_min,active_intervals:e.active_intervals},session_summary:null,steering_summary:null,why_picked:null,what_worked:null,what_hit_friction:null,pins:[]};if(0===e.candidate_pins.length)return{topSession:n,usage:null};let s=t.model??"sonnet",a=t.callLLM??n6,r=function(e){let t=[],n=(e="")=>t.push(e);n(`# Session ${e.session_id}`),n(`Project: ${e.project_display} \xb7 Date: ${e.date} \xb7 Started: ${e.start_iso}`),n(`Wall: ${e.wall_min}m \xb7 Active: ${e.active_min}m \xb7 Idle: ${e.idle_min}m \xb7 Turns: ${e.turn_count}`);let s=[];if(e.outcome&&s.push(`Outcome: ${e.outcome}`),e.working_shape&&s.push(`Working shape: ${e.working_shape}`),s.length&&n(s.join(" · ")),e.day_signature&&n(`Day signature: "${e.day_signature}"`),e.shipped_prs.length)for(let t of(n(`Shipped PRs (${e.shipped_prs.length}):`),e.shipped_prs))n(` - "${t}"`);if(n(),n("## Harness"),n(`- User-authored skills: ${e.user_authored_skills.length?e.user_authored_skills.join(", "):"(none)"}`),e.user_authored_subagents.length){let t=e.user_authored_subagents.map(e=>`${e.type}\xd7${e.count}`).join(", ");n(`- User-authored subagents: ${t}`)}n(`- Stock skills loaded: ${e.stock_skills.length?e.stock_skills.join(", "):"(none)"}`),n(`- Top tools: ${e.top_tools.length?e.top_tools.join(", "):"(none)"}`),n();let a=e.steering;for(let t of(n("## Steering"),n(`${a.user_msg_count} user messages (median ${a.median_user_msg_chars} chars, ${a.long_user_msg_count} long, ${a.interrupts} interrupts)`),n(),n(`## Turns (${e.turns.length})`),e.turns)){n();let e=t.idle_before_min>0?` \xb7 ${t.idle_before_min}m idle before`:"";if(n(`### Turn ${t.turn} — ${t.start_min}m–${t.end_min}m (${t.wall_min}m wall, ${t.active_min}m active${e})`),t.user&&n(`USER (${t.user.chars}c): ${t.user.preview}`),t.first_agent&&n(`FIRST_AGENT (${t.first_agent.chars}c): ${t.first_agent.preview}`),t.last_agent&&n(`LAST_AGENT (${t.last_agent.chars}c): ${t.last_agent.preview}`),!t.agent||t.first_agent||t.last_agent||n(`AGENT (${t.agent.chars}c): ${t.agent.preview}`),t.tools.length&&n(`Tools: ${t.tools.join(", ")}`),t.skills_loaded?.length&&n(`Skills loaded this turn: ${t.skills_loaded.join(", ")}`),t.subagents_dispatched?.length)for(let e of t.subagents_dispatched)n(`Subagent dispatched: ${e.type} — ${e.description}`),e.prompt_preview&&n(` prompt: ${e.prompt_preview}`);let s=[];t.exit_plan_calls&&s.push(`exit_plan\xd7${t.exit_plan_calls}`),t.todo_ops&&s.push(`TodoWrite ops: ${t.todo_ops}`),t.interrupts&&s.push(`interrupts: ${t.interrupts}`),t.pr_created&&s.push(`PR created: "${t.pr_created}"`),t.long_autonomous_run&&s.push("LONG-AUTONOMOUS RUN"),s.length&&n(`Signals: ${s.join(" · ")}`)}if(n(),n('## Candidate pins (deterministic — pick + label the most editorial 3-6 of these for your "pins" output)'),0===e.candidate_pins.length)n("(none — sparse session)");else for(let t of e.candidate_pins){let e=void 0!==t.end_min?`${t.start_min}m–${t.end_min}m`:`${t.start_min}m`,s=[];for(let[e,n]of Object.entries(t.context??{}))null!=n&&("string"==typeof n?s.push(`${e}="${n.length>200?n.slice(0,197)+"...":n}"`):Array.isArray(n)?s.push(`${e}=[${n.length} items]`):"object"==typeof n?s.push(`${e}={...}`):s.push(`${e}=${n}`));n(`- [${e}] ${t.kind}${s.length?` — ${s.join(", ")}`:""}`)}return t.join("\n")}(e),i=0,o=0;function l(e){let t=e.pins.map(e=>({start_min:e.start_min,end_min:e.end_min,kind:e.kind,label:e.label}));return{...n,session_summary:e.session_summary,steering_summary:e.steering_summary,why_picked:e.why_picked,what_worked:e.what_worked,what_hit_friction:e.what_hit_friction,pins:t}}try{let d,u,c=await a({model:s,userPrompt:r,onProgress:t.onProgress});i+=c.input_tokens,o+=c.output_tokens,c.model;let p=(d=c.content,tq(d,n3));if(p.ok)return{topSession:l(p.value),usage:{input_tokens:i,output_tokens:o}};let h=await a({model:s,userPrompt:r,reminder:"Your previous response was not valid JSON or did not match the required schema. Return ONLY the JSON object with session_summary + steering_summary + pins (3-5 items, each with start_min/kind/label) — no prose, no code fence.",onProgress:t.onProgress});i+=h.input_tokens,o+=h.output_tokens,h.model;let m=(u=h.content,tq(u,n3));if(m.ok)return{topSession:l(m.value),usage:{input_tokens:i,output_tokens:o}};return console.warn(`[top-session] ${e.session_id}: LLM validation failed after retry (${m.error})`),{topSession:n,usage:{input_tokens:i,output_tokens:o}}}catch(t){return console.warn(`[top-session] ${e.session_id}: LLM invocation failed (${t.message})`),{topSession:n,usage:i>0?{input_tokens:i,output_tokens:o}:null}}finally{}}async function*se(e,t){let n=t.now??(()=>Date.now()),s=e===t.currentWeekMonday,a=t.settings.enabled;if(!s&&!t.force){let t=(0,ny.readWeekDigest)(e);if(t)return void(yield{type:"digest",digest:t})}if(s&&!t.force){let t=(0,ny.getCurrentWeekDigestFromCache)(e,n());if(t)return void(yield{type:"digest",digest:t})}yield{type:"status",phase:"load_dependencies",text:`Loading 7 days for week of ${e}`};let r=nD(e),i=[];for(let e of r){if(e>t.todayLocalDay){yield{type:"dependency",kind:"day",key:e,status:"cached"};continue}let n=e===t.todayLocalDay,s=n?null:(0,ny.readDayDigest)(e);if(s){i.push(s),yield{type:"dependency",kind:"day",key:e,status:"cached"};continue}if(n){let n={settings:t.settings,force:t.force??!1,callLLM:t.callLLM,now:t.now,todayLocalDay:t.todayLocalDay,caller:t.caller},s=null,a=!1;for await(let t of nx(e,n))if("digest"===t.type&&"day"===t.digest.scope&&(s=t.digest),"error"===t.type){a=!0;break}s?(i.push(s),yield{type:"dependency",kind:"day",key:e,status:"cached"}):a&&(yield{type:"dependency",kind:"day",key:e,status:"failed"});continue}let a={settings:t.settings,force:!1,callLLM:t.callLLM,now:t.now,todayLocalDay:t.todayLocalDay,caller:t.caller},r=null,o=!1;for await(let t of nx(e,a)){if("digest"===t.type){"day"===t.digest.scope&&(r=t.digest);continue}if("saved"!==t.type){if("error"===t.type){o=!0;continue}yield t}}r?(i.push(r),yield{type:"dependency",kind:"day",key:e,status:"generated"}):o&&(yield{type:"dependency",kind:"day",key:e,status:"failed"})}if(0===i.length)return void(yield{type:"error",message:`no day digests available for week of ${e}`});let o=new Map;for(let e of r)e>t.todayLocalDay||o.set(e,(0,t5.listEntriesForDay)(e));a&&ne();try{let r,l=new Map(i.map(e=>[e.key,e])),u=a?function(e){let t=[];for(let n of e.values())t.push(...n);let n=e=>e.numbers.active_min*(1+.5*e.numbers.subagent_calls+5*e.pr_titles.length),s=t.filter(e=>e.numbers.active_min>=20||e.numbers.turn_count>=10||e.pr_titles.length>=1).map(e=>({entry:e,score:n(e)})).sort((e,t)=>t.score-e.score),a=new Set,r=[];for(let{entry:e}of s)if(!a.has(e.project)&&(a.add(e.project),r.push(e),r.length>=3))break;let i=t.some(e=>(e.agent??"claude-code")!=="claude-code"),o=r.some(e=>(e.agent??"claude-code")!=="claude-code");if(i&&!o){let e=t.filter(e=>(e.agent??"claude-code")!=="claude-code").filter(e=>e.numbers.active_min>=3||e.numbers.tools_total>=10||e.numbers.turn_count>=3).map(e=>({entry:e,score:n(e)+1e-4*e.numbers.tools_total})).sort((e,t)=>t.score-e.score).find(e=>!a.has(e.entry.project));e&&(r.length>=3&&r.pop(),r.push(e.entry))}return r}(o):[],c=(await Promise.all(u.map(async e=>{try{let t=await (0,tT.getAnySession)(e.session_id);if(!t)return null;let n=t.events,s=l.get(e.local_day);return{entry:e,slice:function(e,t,n){var s;let a,r=Date.parse(e.start_iso),{turns:i,sliceStartMs:o,sliceEndMs:l}=function(e,t,n){let s=[];for(let a of e){if(!a.timestamp)continue;let e=Date.parse(a.timestamp);!Number.isNaN(e)&&(e<t||e>n||s.push({...a,_ts:e}))}if(0===s.length)return{turns:[],sliceStartMs:t,sliceEndMs:n};s.sort((e,t)=>e._ts-t._ts);let a=s[0]._ts,r=s[s.length-1]._ts,i=[],o=null;for(let e of s){let t=e.blocks??[],n="user"===e.role||"tool-result"===e.role,s="agent"===e.role||"agent-thinking"===e.role||"tool-call"===e.role;if(n)if(t.length>0&&t.every(e=>"tool_result"===e.type))o&&(o.events.push(e),o.timestamps.push(e._ts));else{let n=t.filter(e=>"text"===e.type).map(e=>e.text).join(" "),s=n4.test(n);o&&s&&(o.interrupts+=1),o&&i.push(o),o={events:[e],user_text:n,agent_blocks:[],tools_count:new Map,bash_verbs:new Map,skills:new Map,subagents:[],exit_plan_calls:0,todo_ops:0,interrupts:0,pr_created:null,timestamps:[e._ts]}}else if(s){if(!o)continue;for(let n of(o.events.push(e),o.timestamps.push(e._ts),t))if(n&&"object"==typeof n){if("text"===n.type&&n.text)o.agent_blocks.push(n.text);else if("tool_use"===n.type){let e=n.name??"unknown";if(o.tools_count.set(e,(o.tools_count.get(e)??0)+1),"Skill"===e){let e=String(n.input?.skill??"unknown");o.skills.set(e,(o.skills.get(e)??0)+1)}else if("Agent"===e){let e=n.input??{};o.subagents.push({type:String(e.subagent_type??"general-purpose"),description:String(e.description??"").slice(0,80),prompt_preview:String(e.prompt??"").slice(0,240),background:!!e.run_in_background})}else if("ExitPlanMode"===e)o.exit_plan_calls+=1;else if("TodoWrite"===e||"TaskCreate"===e||"TaskUpdate"===e)o.todo_ops+=1;else if("Bash"===e){let e=String(n.input?.command??""),t=function(e){if(!e)return"?";let t=e.split(/\|\||&&|;|\|/,1)[0].trim();if(t.startsWith("cd ")){let n=e.split(/&&|;/,3);n.length>=2&&(t=n[1].trim())}let n=t.split(/\s+/).filter(Boolean);for(;n.length&&n2.has(n[0]);)n.shift();if(!n.length)return"?";let s=n[0];if(s.includes("=")&&!s.startsWith("/")){if(n.shift(),!n.length)return"?";s=n[0]}return s.includes("/")&&!s.startsWith("./")&&(s=s.replace(/\/+$/,"").split("/").pop()),s.replace(/^["']|["']$/g,"")||"?"}(e);if(o.bash_verbs.set(t,(o.bash_verbs.get(t)??0)+1),/\bgh\s+pr\s+create\b/.test(e)){let t=e.match(n9);o.pr_created=t?.[1]??e.slice(0,120)}}}}}}return o&&i.push(o),{turns:i,sliceStartMs:a,sliceEndMs:r}}(t,r,Date.parse(e.end_iso)),u=i.flatMap(e=>e.timestamps),c=l-o,p=n1(u),h=[...u].sort((e,t)=>e-t),m=[];if(h.length>0){let e=h[0],t=h[0];for(let n=1;n<h.length;n++)h[n]-t>=18e4&&(m.push({start_min:nQ(e-o),end_min:nQ(t-o)}),e=h[n]),t=h[n];m.push({start_min:nQ(e-o),end_min:nQ(t-o)})}let _=[],f=o,g=[],y=0;i.forEach((e,t)=>{let n=Math.min(...e.timestamps),s=Math.max(...e.timestamps),a=n1(e.timestamps),r=0===t?0:Math.max(0,n-f);f=s,e.user_text&&(g.push(e.user_text.length),e.user_text.length>=800&&y++);let i=null,l=null;e.agent_blocks.length>0&&(i=e.agent_blocks[0],l=e.agent_blocks.reduce((e,t)=>t.length>e.length?t:e));let d=null!==i&&i===l,u=[];for(let[t,n]of[...e.tools_count.entries()].sort((e,t)=>t[1]-e[1]))if("Bash"===t&&e.bash_verbs.size>0){let t=[...e.bash_verbs.entries()].sort((e,t)=>t[1]-e[1]).slice(0,3).map(([e,t])=>t>1?`${e}\xd7${t}`:e).join(", ");u.push(`Bash\xd7${n} (${t})`)}else u.push(n>1?`${t}\xd7${n}`:t);let c={turn:t+1,start_min:nQ(n-o),end_min:nQ(s-o),wall_min:nQ(s-n),active_min:nQ(a),idle_before_min:nQ(r),start_iso:new Date(n).toISOString(),user:e.user_text?n0(e.user_text,0===t?400:150):null,tools:u};d?c.agent=n0(i,200):(c.first_agent=i?n0(i,150):null,c.last_agent=l?n0(l,200):null),e.skills.size>0&&(c.skills_loaded=[...e.skills.entries()].map(([e,t])=>t>1?`${e}\xd7${t}`:e)),e.subagents.length>0&&(c.subagents_dispatched=e.subagents.map(e=>({type:e.type,description:e.description,prompt_preview:e.prompt_preview}))),e.exit_plan_calls>0&&(c.exit_plan_calls=e.exit_plan_calls),e.todo_ops>0&&(c.todo_ops=e.todo_ops),e.interrupts>0&&(c.interrupts=e.interrupts),e.pr_created&&(c.pr_created=e.pr_created),a>=12e5&&0===e.interrupts&&(c.long_autonomous_run=!0),_.push(c)});let v=new Map,w=new Map,k=new Map,b=new Map,x=0;for(let e of i){for(let[t,n]of e.skills)v.set(t,(v.get(t)??0)+n);for(let t of e.subagents)(0,d.isStockSubagentType)(t.type)||w.set(t.type,(w.get(t.type)??0)+1);for(let[t,n]of e.tools_count)k.set(t,(k.get(t)??0)+n);for(let[t,n]of e.bash_verbs)b.set(t,(b.get(t)??0)+n);x+=e.interrupts}let S=[],$=[];for(let e of v.keys()){let t=(0,d.classifySkill)(e);"user"===t?S.push(e):"stock"===t&&$.push(e)}let T=[];for(let[e,t]of[...k.entries()].sort((e,t)=>t[1]-e[1]).slice(0,5))if("Bash"===e&&b.size>0){let e=[...b.entries()].sort((e,t)=>t[1]-e[1]).slice(0,3).map(([e,t])=>t>1?`${e}\xd7${t}`:e).join(", ");T.push(`Bash\xd7${t} (${e})`)}else T.push(`${e}\xd7${t}`);g.sort((e,t)=>e-t);let N=0===g.length?0:g[Math.floor(g.length/2)],j=[];for(let e of _)e.user?.chars&&e.user.chars>=800&&j.push({start_min:e.start_min,kind:"user-steering",context:{chars:e.user.chars,turn:e.turn,format:e.user.chars>=5e3?"long-paste":"long-prose"}}),e.subagents_dispatched&&e.subagents_dispatched.length>=3&&j.push({start_min:e.start_min,kind:"subagent-burst",context:{count:e.subagents_dispatched.length,types:e.subagents_dispatched.map(e=>e.type),turn:e.turn}}),e.long_autonomous_run&&j.push({start_min:e.start_min,end_min:e.end_min,kind:"long-autonomous",context:{duration_min:e.active_min,turn:e.turn}}),e.exit_plan_calls&&e.exit_plan_calls>0&&j.push({start_min:e.start_min,kind:"plan-mode",context:{turn:e.turn}}),e.pr_created&&j.push({start_min:e.start_min,kind:"pr-ship",context:{pr_title:e.pr_created,turn:e.turn}}),e.skills_loaded&&e.skills_loaded.length>=2&&j.push({start_min:e.start_min,kind:"harness-chain",context:{skills:e.skills_loaded,turn:e.turn}}),e.interrupts&&e.interrupts>0&&j.push({start_min:e.start_min,kind:"interrupt",context:{count:e.interrupts,turn:e.turn}});return{session_id:e.session_id,date:e.local_day,project:e.project,project_display:(a=(s=e.project).split("/").filter(Boolean))[a.length-1]??s,start_iso:new Date(o).toISOString(),wall_min:nQ(c),active_min:nQ(p),idle_min:nQ(c-p),turn_count:_.length,outcome:e.enrichment.outcome,shipped_prs:e.pr_titles,working_shape:e.signals?.working_shape??(0,d.inferWorkingShape)(e),day_signature:n,user_authored_skills:S,user_authored_subagents:[...w.entries()].sort((e,t)=>t[1]-e[1]).map(([e,t])=>({type:e,count:t})),stock_skills:$,top_tools:T,steering:{user_msg_count:g.length,long_user_msg_count:y,median_user_msg_chars:N,interrupts:x},active_intervals:m,turns:_,candidate_pins:j}}(e,n,s?.day_signature??null)}}catch(t){return console.warn(`[top-session] slice prep failed for ${e.session_id}: ${t.message}`),null}}))).filter(e=>null!==e);if(a){yield{type:"status",phase:"synth",text:c.length>0?`Synthesizing week narrative + diving into ${c.length} top session${1===c.length?"":"s"} in parallel`:"Synthesizing week narrative"};let n=[],a=nY(e,i,{model:t.settings.model,callLLM:t.callLLM,entriesByDay:o,allowSingleDay:!0===t.force&&s,onProgress:e=>{n.push({bytes:e.bytes,elapsed_ms:e.elapsedMs})}}),l=Promise.all(c.map(({entry:e,slice:n})=>n8(n,{model:t.settings.model,callLLM:t.callLLM}).then(t=>({entry:e,...t})).catch(t=>(console.warn(`[top-session] LLM failed for ${e.session_id}: ${t.message}`),null)))),d=!1,u=!1;for(a.finally(()=>{d=!0}),l.finally(()=>{u=!0});!d||!u;)if(await new Promise(e=>setTimeout(e,500)),n.length>0){let e=n[n.length-1];yield{type:"progress",phase:"synth",bytes:e.bytes,elapsed_ms:e.elapsed_ms},n.length=0}let p=await a,h=await l;r=p.digest,p.usage&&t4({ts:new Date().toISOString(),caller:t.caller??"web",model:r.model??t.settings.model,input_tokens:p.usage.input_tokens,output_tokens:p.usage.output_tokens,cost_usd:r.cost_usd??0,kind:"week_digest",ref:e});let m=[];for(let n of h)n&&(m.push({...n.topSession,agent:n.entry.agent}),n.usage&&t4({ts:new Date().toISOString(),caller:t.caller??"web",model:t.settings.model,input_tokens:n.usage.input_tokens,output_tokens:n.usage.output_tokens,cost_usd:tK(t.settings.model,n.usage.input_tokens,n.usage.output_tokens),kind:"top_session",ref:`${e}/${n.entry.session_id}`}));r.headline&&m.length>0&&(r.top_sessions=m)}else r=nL(e,i,{entriesByDay:o});s?(r.is_live=!0,(0,ny.setCurrentWeekDigestInCache)(e,r,n()),!0===t.force&&((0,ny.writeWeekDigest)(r),yield{type:"saved",path:`~/.cclens/digests/week/${e}.json`})):((0,ny.writeWeekDigest)(r),yield{type:"saved",path:`~/.cclens/digests/week/${e}.json`}),yield{type:"digest",digest:r}}finally{a&&nt()}}async function*st(e,t){let n=t.now??(()=>Date.now()),s=e===t.currentYearMonth,a=t.settings.enabled;if(!s&&!t.force){let t=(0,ny.readMonthDigest)(e);if(t)return void(yield{type:"digest",digest:t})}if(s&&!t.force){let t=(0,ny.getCurrentMonthDigestFromCache)(e,n());if(t)return void(yield{type:"digest",digest:t})}yield{type:"status",phase:"load_dependencies",text:`Loading weeks for ${e}`};let r=nV(e),i=[];for(let e of r){if(e>t.currentWeekMonday){yield{type:"dependency",kind:"week",key:e,status:"cached"};continue}let n=e===t.currentWeekMonday,s=n?null:(0,ny.readWeekDigest)(e);if(s){i.push(s),yield{type:"dependency",kind:"week",key:e,status:"cached"};continue}if(n){let n={settings:t.settings,force:!1,callLLM:t.callLLM,now:t.now,currentWeekMonday:t.currentWeekMonday,todayLocalDay:t.todayLocalDay,caller:t.caller},s=null,a=!1;for await(let t of se(e,n))if("digest"===t.type&&"week"===t.digest.scope&&(s=t.digest),"error"===t.type){a=!0;break}s?(i.push(s),yield{type:"dependency",kind:"week",key:e,status:"cached"}):a&&(yield{type:"dependency",kind:"week",key:e,status:"failed"});continue}let a={settings:t.settings,force:!1,callLLM:t.callLLM,now:t.now,currentWeekMonday:t.currentWeekMonday,todayLocalDay:t.todayLocalDay,caller:t.caller},r=null,o=!1;for await(let t of se(e,a)){if("digest"===t.type){"week"===t.digest.scope&&(r=t.digest);continue}if("saved"!==t.type){if("error"===t.type){o=!0;continue}yield t}}r?(i.push(r),yield{type:"dependency",kind:"week",key:e,status:"generated"}):o&&(yield{type:"dependency",kind:"week",key:e,status:"failed"})}if(0===i.length)return void(yield{type:"error",message:`no week digests available for ${e}`});a&&ne();try{let r;if(a){yield{type:"status",phase:"synth",text:"Synthesizing month narrative"};let n=[],s=nX(e,i,{model:t.settings.model,callLLM:t.callLLM,onProgress:e=>{n.push({bytes:e.bytes,elapsed_ms:e.elapsedMs})}}),a=!1;for(s.finally(()=>{a=!0});!a;)if(await new Promise(e=>setTimeout(e,500)),n.length>0){let e=n[n.length-1];yield{type:"progress",phase:"synth",bytes:e.bytes,elapsed_ms:e.elapsed_ms},n.length=0}let o=await s;r=o.digest,o.usage&&t4({ts:new Date().toISOString(),caller:t.caller??"web",model:r.model??t.settings.model,input_tokens:o.usage.input_tokens,output_tokens:o.usage.output_tokens,cost_usd:r.cost_usd??0,kind:"month_digest",ref:e})}else r=nK(e,i);s?(r.is_live=!0,(0,ny.setCurrentMonthDigestInCache)(e,r,n()),!0===t.force&&((0,ny.writeMonthDigest)(r),yield{type:"saved",path:`~/.cclens/digests/month/${e}.json`})):((0,ny.writeMonthDigest)(r),yield{type:"saved",path:`~/.cclens/digests/month/${e}.json`}),yield{type:"digest",digest:r}}finally{a&&nt()}}e.s(["mondayFor",0,function(e){let t=new Date(`${e}T00:00:00`),n=t.getDay();t.setDate(t.getDate()+(0===n?-6:1-n));let s=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0");return`${s}-${a}-${r}`},"runWeekDigestPipeline",0,se],77242),e.s(["runMonthDigestPipeline",0,st],21628),e.s([],82111)}];
|
|
401
401
|
|
|
402
402
|
//# sourceMappingURL=packages_entries_dist_node_0bckr7-.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[39587,e=>{"use strict";let t={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=[t,i,s];n.map(e=>e.kind),e.s(["CLAUDE_CODE_METADATA",0,t,"CODEX_METADATA",0,i,"GEMINI_METADATA",0,s,"agentMetadata",0,n])},20629,36521,e=>{"use strict";var t=e.i(2157),i=e.i(60526),s=e.i(50227);let n=[/<system_instruction\b[^>]*>[\s\S]*?<\/system_instruction>\s*/gi],a=["<command-name>","<local-command-stdout>","<local-command-caveat>","<task-notification>","Base directory for this skill:"];function r(e){if(!e)return e;let t=e;for(let e of n)t=t.replace(e,"");return t.trim()}function o(e){if(!e)return!1;let t=r(e);if(!t)return!0;for(let e of a)if(t.startsWith(e))return!0;return!1}e.s(["isFrameworkInjectedUserInput",0,o,"stripFrameworkBoilerplate",0,r],36521);let l={input:0,output:0,cacheRead:0,cacheWrite:0};function u(e,t=200){let i=e.replace(/<[^>]+>/g,"").replace(/\s+/g," ").trim();return i.length>t?i.slice(0,t-1)+"…":i}let p=/^\s*<teammate-message\s+teammate_id="([^"]+)"[^>]*>([\s\S]*?)<\/teammate-message>/;function c(e){let t=e.match(p);if(!t)return;let i=t[1],s=t[2].trim(),n="message";if(s.startsWith("{"))try{let e=JSON.parse(s);"idle_notification"===e.type?n="idle-notification":"shutdown_request"===e.type?n="shutdown-request":"shutdown_approved"===e.type?n="shutdown-approved":"task_assignment"===e.type?n="task-assignment":"teammate_terminated"===e.type&&(n="teammate-terminated")}catch{}return{teammateId:i,body:s,kind:n}}function m(e){if(!e||"object"!=typeof e)return;let t=e=>"number"==typeof e?e:0;return{input:t(e.input_tokens),output:t(e.output_tokens),cacheRead:t(e.cache_read_input_tokens),cacheWrite:t(e.cache_creation_input_tokens)}}function f(e){let t,i,s,n,a,p,f,d,g,y=[];for(let t=0;t<e.length;t++){let i=function(e,t){if(!e||"object"!=typeof e)return null;let i=String(e.type??""),s=e.uuid,n=e.parentUuid??null,a=e.timestamp;if("assistant"===i){let r,o,l,p=e.message??{},c=p.content??[],f=m(p.usage),d=p.model,g=e.requestId,y=p.id,h=p.stop_reason,w=c[0],M="agent";return w?.type==="thinking"?(M="agent-thinking",r="[thinking] "+u(w.thinking,140)):w?.type==="tool_use"?(M="tool-call",o=w.name,l=w.id,r=`${w.name} `+u(JSON.stringify(w.input??{}),100)):r=w?.type==="text"?u(w.text,200):`<assistant:${w?.type??"empty"}>`,{index:t,uuid:s,parentUuid:n,timestamp:a,role:M,rawType:i,preview:r,blocks:c,usage:f,model:d,requestId:g,messageId:y,stopReason:h,toolName:o,toolUseId:l,raw:e}}if("user"===i){let o=(e.message??{}).content;if("string"==typeof o){let l=r(o),p=c(l);return{index:t,uuid:s,parentUuid:n,timestamp:a,role:"user",rawType:i,preview:u(l,200),blocks:l?[{type:"text",text:l}]:[],raw:e,teammateMessage:p}}if(Array.isArray(o)){let l=o[0];if(l?.type==="tool_result")return{index:t,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:o,toolUseId:l.tool_use_id,toolResult:e.toolUseResult,raw:e};let p=o.find(e=>e?.type==="text"),m=p?r(p.text):"",f=p?o.map(e=>e===p?{type:"text",text:m}:e):o,d=m?c(m):void 0;return{index:t,uuid:s,parentUuid:n,timestamp:a,role:"user",rawType:i,preview:m?u(m,200):u(JSON.stringify(o),200),blocks:f,raw:e,teammateMessage:d}}}if("attachment"===i){let r=e.attachment??{},o=String(r.type??"attachment"),l=`<attachment: ${o}>`;return"string"==typeof r.content&&r.content.length>0?l=`[${o}] `+u(r.content,140):Array.isArray(r.addedNames)&&(l=`[${o}] +${r.addedNames.length} names`),{index:t,uuid:s,parentUuid:n,timestamp:a,role:"system",rawType:i,preview:l,blocks:[{type:"text",text:JSON.stringify(r,null,2)}],attachmentType:o,raw:e}}return{index:t,uuid:s,parentUuid:n,timestamp:a,role:"meta",rawType:i||"unknown",preview:`${i}: ${u(JSON.stringify(e),140)}`,blocks:[{type:"text",text:JSON.stringify(e,null,2)}],raw:e}}(e[t],t);i&&y.push(i)}let h=y.map(e=>e.timestamp?Date.parse(e.timestamp):void 0).filter(e=>"number"==typeof e&&!Number.isNaN(e)),w=h.length?Math.min(...h):void 0,M=h.length?Math.max(...h):void 0,v=void 0!==w?new Date(w).toISOString():void 0,_=void 0!==M?new Date(M).toISOString():void 0;for(let e of y){if(!e.timestamp)continue;let t=Date.parse(e.timestamp);Number.isNaN(t)||void 0!==w&&(e.tOffsetMs=Math.max(0,t-w))}let k=y.filter(e=>{let t;return e.timestamp&&("user"===(t=e.role)||"agent"===t||"agent-thinking"===t||"tool-call"===t||"tool-result"===t)}).map(e=>({e,ms:Date.parse(e.timestamp)})).filter(e=>!Number.isNaN(e.ms)).sort((e,t)=>e.ms-t.ms);for(let e=1;e<k.length;e++)k[e].e.gapMs=Math.max(0,k[e].ms-k[e-1].ms);let j=y.filter(e=>e.timestamp).map(e=>Date.parse(e.timestamp)).filter(e=>!Number.isNaN(e)).sort((e,t)=>e-t),b=[],I=0;if(j.length>0){let e=j[0],t=j[0];for(let i=1;i<j.length;i++){let s=j[i],n=s-t;n>18e4?(b.push({startMs:e,endMs:t}),e=s):n>0&&(I+=n),t=s}b.push({startMs:e,endMs:t})}let x=new Map,N=[];for(let e of y){if(!e.timestamp)continue;let t=Date.parse(e.timestamp);if(!Number.isNaN(t)){if("assistant"===e.rawType&&e.usage&&e.messageId){let i=x.get(e.messageId);i?(i.siblings.push(e),t<i.ms&&(i.rep=e,i.ms=t)):x.set(e.messageId,{rep:e,ms:t,siblings:[e]})}else if("system"===e.rawType){let i=e.raw;if(i?.subtype!=="compact_boundary")continue;let s=i.compactMetadata??{};N.push({ms:t,trigger:"manual"===s.trigger?"manual":"auto",preTokens:"number"==typeof s.preTokens?s.preTokens:0})}}}let T=[...x.values()].sort((e,t)=>e.ms-t.ms);N.sort((e,t)=>e.ms-t.ms);let S=0,D=0,P=(e,t)=>{for(let i of e.siblings)i.coldResume=t;S++,D+=t.writeTokens},A=new Set;for(let e of N){let t,i=T.find(t=>t.ms>e.ms&&(t.rep.usage?.cacheWrite??0)>=1e3);if(!i)continue;for(let i=T.length-1;i>=0;i--)if(T[i].ms<=e.ms){t=T[i].ms;break}let s=i.rep.usage,n=s.cacheWrite+s.cacheRead;P(i,{trigger:"compact",gapMs:void 0!==t?i.ms-t:0,writeTokens:s.cacheWrite,writeRatio:n>0?s.cacheWrite/n:0,compact:{trigger:e.trigger,preTokens:e.preTokens}}),A.add(i.rep.messageId)}for(let e=1;e<T.length;e++){let t=T[e-1],i=T[e];if(A.has(i.rep.messageId))continue;let s=i.rep.usage,n=s.cacheWrite+s.cacheRead,a=n>0?s.cacheWrite/n:0,r=i.ms-t.ms;r>3e5&&s.cacheWrite>=1e3&&a>=.3&&P(i,{trigger:"idle",gapMs:r,writeTokens:s.cacheWrite,writeRatio:a})}let C={...l},$=new Set,B="",z=!1,O=!1,U=0,W=0,R=0,F=0,E=new Set;for(let e of y){if("tool-call"===e.role){U++;let t=e.blocks.find(e=>e&&"tool_use"===e.type);if(t){let e=t.input??{};if("TeamCreate"===t.name&&(z=!0),"SendMessage"===t.name){let t="string"==typeof e.to?e.to:"";t&&"team-lead"!==t&&(O=!0)}let i="string"==typeof e.file_path?e.file_path:void 0;if("Edit"===t.name&&i){E.add(i);let t="string"==typeof e.old_string?e.old_string:"",s="string"==typeof e.new_string?e.new_string:"",n=t?t.split("\n").length:0,a=s?s.split("\n").length:0;R+=Math.max(0,a-n),F+=Math.max(0,n-a)}else if("Write"===t.name&&i){E.add(i);let t="string"==typeof e.content?e.content:"";R+=t?t.split("\n").length:0}}}if("user"===e.role){let t=o(function(e){let t=e?.content;if("string"==typeof t)return t;if(Array.isArray(t)){for(let e of t)if(e&&"object"==typeof e&&"text"===e.type&&"string"==typeof e.text)return e.text}return""}(e.raw?.message)),i=void 0!==e.teammateMessage&&!p;t||i||(f||(f=e.teammateMessage?e.teammateMessage.body:e.preview),W++,g=e.preview)}"agent"===e.role&&(d=e.preview)}for(let r of e)if(r&&"object"==typeof r&&("string"!=typeof r.sessionId||B||(B=r.sessionId),"string"!=typeof r.cwd||i||(i=r.cwd),"string"!=typeof r.gitBranch||s||(s=r.gitBranch),"string"!=typeof r.entrypoint||n||(n=r.entrypoint),"string"!=typeof r.teamName||a||(a=r.teamName),"string"!=typeof r.agentName||p||(p=r.agentName),"assistant"===r.type)){let e=r.message;if(e){"string"!=typeof e.model||t||(t=e.model);let i="string"==typeof e.id?e.id:void 0,s="string"==typeof r.requestId?r.requestId:void 0,n=null!=i?`${i}:${s??""}`:void 0;if(n&&$.has(n))continue;n&&$.add(n);let a=m(e.usage);a&&(C.input+=a.input,C.output+=a.output,C.cacheRead+=a.cacheRead,C.cacheWrite+=a.cacheWrite)}}return{events:y,meta:{sessionId:B,firstTimestamp:v,lastTimestamp:_,durationMs:void 0!==w&&void 0!==M?M-w:void 0,eventCount:y.length,model:t,cwd:i,gitBranch:s,entrypoint:n,totalUsage:C,status:"idle",firstUserPreview:f,lastUserPreview:g,lastAgentPreview:d,toolCallCount:U,turnCount:W,airTimeMs:I,activeSegments:b,linesAdded:R,linesRemoved:F,filesEdited:E.size,coldResumeCount:S,cacheRebuildTokens:D,teamName:a,agentName:p,isTeamLead:void 0!==a&&void 0===p&&(z||O)}}}var d=e.i(39587);let g=s.default.join(i.default.homedir(),".claude","projects");function y(e){return e.startsWith("-")?"/"+e.slice(1).replace(/-/g,"/"):e}let h=s.default.join(i.default.homedir(),".cclens","runtime").replace(/[/.]/g,"-");async function w(e){let i=await t.promises.readFile(e,"utf8"),s=[];for(let e of i.split("\n")){let t=e.trim();if(t)try{s.push(JSON.parse(t))}catch{}}return s}function M(e){return e.replace(/\.jsonl$/i,"")}let v=new Map,_=new Map,k=new Map,j=null;async function b(e=g){let i;if(j&&j.root===e&&Date.now()-j.capturedAtMs<1e3)return j.files;try{i=await t.promises.readdir(e,{withFileTypes:!0})}catch{return[]}let n=i.filter(e=>e.isDirectory()&&e.name!==h).map(e=>e.name),a=(await Promise.all(n.map(async i=>{let n,a=s.default.join(e,i);try{n=await t.promises.readdir(a)}catch{return[]}let r=n.filter(e=>e.endsWith(".jsonl"));return(await Promise.all(r.map(async e=>{let n=s.default.join(a,e);try{let s=await t.promises.stat(n);return{projectDir:i,fileName:e,fullPath:n,mtimeMs:s.mtimeMs,sizeBytes:s.size}}catch{return null}}))).filter(e=>null!==e)}))).flat();return j={files:a,capturedAtMs:Date.now(),root:e},a}let I={input:0,output:0,cacheRead:0,cacheWrite:0};function x(e,t,i){for(let s of e){if(!s||"object"!=typeof s||"assistant"!==s.type)continue;let e=s.message;if(!e)continue;let n="string"==typeof e.id?e.id:void 0,a="string"==typeof s.requestId?s.requestId:void 0,r=null!=n&&null!=a?`${n}:${a}`:void 0;if(r&&t.has(r))continue;r&&t.add(r);let o=e.usage;if(o){let e=e=>"number"==typeof e?e:0;i.input+=e(o.input_tokens),i.output+=e(o.output_tokens),i.cacheRead+=e(o.cache_read_input_tokens),i.cacheWrite+=e(o.cache_creation_input_tokens)}}}async function N(e,i,n){let a,r={...I},o=new Set;x(e,o,r);let l=s.default.join(i,n,"subagents");try{a=await t.promises.readdir(l)}catch{return r}let u=a.filter(e=>e.endsWith(".jsonl"));return 0===u.length||await Promise.all(u.map(async e=>{try{let t=await w(s.default.join(l,e));x(t,o,r)}catch{}})),r}async function T(e){let t=v.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.meta;try{let t=await w(e.fullPath),{meta:i}=f(t),n=M(e.fileName),a=s.default.dirname(e.fullPath);i.totalUsage=await N(t,a,n);let r={...i,id:n,filePath:e.fullPath,projectDir:e.projectDir,projectName:i.cwd??y(e.projectDir)};return v.set(e.fullPath,{meta:r,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),r}catch{return null}}async function S(e){let t=_.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.detail;try{let t=await w(e.fullPath),{meta:i,events:s}=f(t),n={...i,id:M(e.fileName),filePath:e.fullPath,projectDir:e.projectDir,projectName:i.cwd??y(e.projectDir),events:s};_.set(e.fullPath,{detail:n,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes});let a={...n};return delete a.events,v.set(e.fullPath,{meta:a,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),n}catch{return null}}async function D(e={}){let{root:t=g,limit:i=500,projectDir:s}=e,n=await b(t);s&&(n=n.filter(e=>e.projectDir===s)),n.sort((e,t)=>t.mtimeMs-e.mtimeMs);let a=n.slice(0,i);return(await Promise.all(a.map(e=>T(e)))).filter(e=>null!==e)}async function P(e,t={}){let{root:i=g}=t,n=(await b(i)).find(t=>M(t.fileName)===e);if(!n)return null;let a=await S(n);if(!a)return a;let r=a.firstTimestamp?Date.parse(a.firstTimestamp):void 0,o=s.default.join(s.default.dirname(n.fullPath),M(n.fileName),"subagents"),l=await A(o,r,a.events);return{...a,subagents:l}}async function A(e,i,n){let a;try{a=await t.promises.readdir(e)}catch{return[]}let r=new Map,o=[];for(let e of n)if("tool-call"===e.role&&"Agent"===e.toolName)for(let t of e.blocks){if(t?.type!=="tool_use"||"Agent"!==t.name)continue;let i=t.input??{},s="string"==typeof i.description?i.description:void 0,n=e.timestamp?Date.parse(e.timestamp):void 0,a={toolUseId:t.id,parentUuid:e.uuid??"",runInBackground:!0===i.run_in_background,prompt:"string"==typeof i.prompt?i.prompt:void 0,tsMs:n};s&&r.set(s,a),void 0!==n&&o.push(a)}o.sort((e,t)=>(e.tsMs??0)-(t.tsMs??0));let l=a.filter(e=>e.startsWith("agent-")&&e.endsWith(".jsonl"));return(await Promise.all(l.map(async n=>{let a,l=n.replace(/^agent-/,"").replace(/\.jsonl$/,""),u=s.default.join(e,n),p=s.default.join(e,`agent-${l}.meta.json`),c={};try{let e=await t.promises.readFile(p,"utf8");c=JSON.parse(e)}catch{}try{a=await w(u)}catch{return null}let m=function(e){let t,i,s,n,a,r={...I},o=new Set,l=0,u=0,p=0,c=new Map;for(let m of e){if(!m||"object"!=typeof m)continue;l++;let e="string"==typeof m.timestamp?Date.parse(m.timestamp):NaN;if(!Number.isNaN(e)&&((void 0===t||e<t)&&(t=e),(void 0===i||e>i)&&(i=e)),void 0===a&&"user"===m.type&&(null===m.parentUuid||void 0===m.parentUuid)){let e=m.message,t=e?.content;if("string"==typeof t)a=t;else if(Array.isArray(t)){let e=t.find(e=>e&&"object"==typeof e&&"text"===e.type);e?.text&&(a=e.text)}}if("assistant"===m.type){let e=m.message;if(!e)continue;n||"string"!=typeof e.model||(n=e.model);let t="string"==typeof e.id?e.id:void 0,i="string"==typeof m.requestId?m.requestId:void 0,a=null!=t&&null!=i?`${t}:${i}`:void 0,l=!a||!o.has(a);if(a&&l&&o.add(a),l){u++;let t=e.usage;if(t){let e=e=>"number"==typeof e?e:0;r.input+=e(t.input_tokens),r.output+=e(t.output_tokens),r.cacheRead+=e(t.cache_read_input_tokens),r.cacheWrite+=e(t.cache_creation_input_tokens)}}let f=e.content;if(Array.isArray(f))for(let e of f)e&&"object"==typeof e&&("text"===e.type&&"string"==typeof e.text?s=e.text:"tool_use"===e.type&&"string"==typeof e.name&&(p++,c.set(e.name,(c.get(e.name)??0)+1)))}}let m=Array.from(c.entries()).map(([e,t])=>({name:e,count:t})).sort((e,t)=>t.count-e.count);return{startMs:t,endMs:i,totalUsage:r,eventCount:l,finalPreview:void 0!==s?s.replace(/\s+/g," ").trim().slice(0,240):void 0,finalText:s,model:n,toolCalls:m,toolCallCount:p,assistantMessageCount:u,initialPrompt:a}}(a),f=c.description&&c.description.trim().length>0?c.description:void 0,d=f?r.get(f):function(e){let t;if(void 0===e)return;let i=1/0;for(let s of o){if(void 0===s.tsMs)continue;let n=Math.abs(e-s.tsMs);n<i&&n<=2e3&&(t=s,i=n)}return t}(m.startMs),g=f??(m.initialPrompt?m.initialPrompt.replace(/\s+/g," ").trim().slice(0,80):"(no description)"),y=d?.prompt??m.initialPrompt,h=void 0!==i&&void 0!==m.startMs?Math.max(0,m.startMs-i):void 0,M=void 0!==i&&void 0!==m.endMs?Math.max(0,m.endMs-i):void 0,v=void 0!==m.startMs&&void 0!==m.endMs?m.endMs-m.startMs:void 0;return{agentId:l,agentType:c.agentType??"unknown",description:g,startMs:m.startMs,endMs:m.endMs,durationMs:v,startTOffsetMs:h,endTOffsetMs:M,eventCount:m.eventCount,totalUsage:m.totalUsage,parentUuid:d?.parentUuid,parentToolUseId:d?.toolUseId,runInBackground:d?.runInBackground,prompt:y,finalPreview:m.finalPreview,finalText:m.finalText,model:m.model,toolCalls:m.toolCalls,toolCallCount:m.toolCallCount,assistantMessageCount:m.assistantMessageCount}}))).filter(e=>null!==e).sort((e,t)=>(e.startMs??0)-(t.startMs??0))}let C={...d.CLAUDE_CODE_METADATA,defaultRoot:g,async listSessions(e){let t=await D(e);for(let e of t)e.agent||(e.agent="claude-code");return t},async getSession(e,t){let i=await P(e,t);return i&&!i.agent&&(i.agent="claude-code"),i}};e.s(["DEFAULT_ROOT",0,g,"claudeCodeSource",0,C,"getSession",0,P,"invalidateClaudeCodeFile",0,function(e){v.delete(e),_.delete(e),k.delete(e),j=null},"listSessions",0,D],20629)},79357,e=>{"use strict";let t=["/.claude/worktrees/","/.worktrees/","/claude/worktrees/"],i=/\/conductor\/workspaces\/[^/]+\/([^/]+)(?:\/|$)/;e.s(["canonicalProjectName",0,function(e){let s=e.replace(/\/{2,}/g,"/"),n=function(e){for(let i of t){let t=e.lastIndexOf(i);if(t>=0)return{idx:t,marker:i}}return null}(s);if(n)return s.slice(0,n.idx);let a=function(e){let t=i.exec(e);if(!t)return null;let s=t[1],n=+!!t[0].endsWith("/");return{canonicalEndIdx:t.index+t[0].length-s.length-1-n,workspaceName:s}}(s);return a?s.slice(0,a.canonicalEndIdx):s},"computeBurstsFromSessions",0,function(e,t={}){let i=[];for(let t of e)t.activeSegments&&0!==t.activeSegments.length&&i.push({id:t.id,projectDir:t.projectDir,segments:t.activeSegments});return function(e,t){let i=t.minDurationMs??6e4,s=t.mergeGapMs??6e5,n=t.minActive??2,a=[];for(let t of e)for(let e of t.segments)e.endMs<=e.startMs||(a.push({ms:e.startMs,delta:1,sessionId:t.id}),a.push({ms:e.endMs,delta:-1,sessionId:t.id}));a.sort((e,t)=>e.ms-t.ms||t.delta-e.delta);let r=new Map,o=[],l=null;for(let e of a){if(1===e.delta)r.set(e.sessionId,(r.get(e.sessionId)??0)+1);else{let t=(r.get(e.sessionId)??0)-1;t<=0?r.delete(e.sessionId):r.set(e.sessionId,t)}let t=r.size;if(t>=n)if(l)for(let i of(l.endMs=e.ms,t>l.peak&&(l.peak=t),r.keys()))l.sessionIds.add(i);else l={startMs:e.ms,endMs:e.ms,peak:t,sessionIds:new Set(r.keys())};else l&&(l.endMs=e.ms,o.push(l),l=null)}l&&o.push(l);let u=o.filter(e=>e.endMs-e.startMs>=i),p=[];for(let e of u){let t=p[p.length-1];if(t&&e.startMs-t.endMs<=s)for(let i of(t.endMs=e.endMs,e.peak>t.peak&&(t.peak=e.peak),e.sessionIds))t.sessionIds.add(i);else p.push({startMs:e.startMs,endMs:e.endMs,peak:e.peak,sessionIds:new Set(e.sessionIds)})}let c=new Map;for(let t of e)c.set(t.id,t.projectDir);return p.map(e=>{let t=Array.from(new Set(Array.from(e.sessionIds).map(e=>c.get(e)).filter(e=>!!e)));return{startMs:e.startMs,endMs:e.endMs,peak:e.peak,sessionIds:Array.from(e.sessionIds),projectDirs:t,crossProject:t.length>1}})}(i,t)},"toLocalDay",0,function(e){let t=new Date(e),i=t.getFullYear(),s=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0");return`${i}-${s}-${n}`}])},43427,e=>{"use strict";e.s(["cclensHome",()=>O,"cclensPath",()=>U,"getAnySession",()=>J,"invalidateFile",()=>W],43427);var t=e.i(2157),i=e.i(60526),s=e.i(50227),n=e.i(39587),a=e.i(20629),r=e.i(79357),o=e.i(36521);let l=s.default.join(i.default.homedir(),".codex","sessions"),u=/^rollout-(\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2})-([0-9a-f-]+)\.jsonl$/;async function p(e){return t.promises.readdir(e).catch(()=>[])}async function c(e){let i=[];for(let n of(await p(e))){if(!/^\d{4}$/.test(n))continue;let a=s.default.join(e,n);for(let e of(await p(a))){if(!/^\d{2}$/.test(e))continue;let n=s.default.join(a,e);for(let e of(await p(n))){if(!/^\d{2}$/.test(e))continue;let a=s.default.join(n,e);for(let e of(await p(a))){let n=u.exec(e);if(!n)continue;let r=s.default.join(a,e),o=await t.promises.stat(r).catch(()=>null);o&&i.push({filePath:r,sessionId:n[2],mtimeMs:o.mtimeMs,sizeBytes:o.size})}}}}return i}async function m(e){let i=await t.promises.readFile(e,"utf8"),s=[];for(let e of i.split("\n")){let t=e.trim();if(t)try{s.push(JSON.parse(t))}catch{}}return s}function f(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function d(e,t){let i,s,n,a,l,u,p,c=[],m={input:0,output:0,cacheRead:0,cacheWrite:0},d=0,y=0,h=[],w=0;for(let e of t){if("object"!=typeof e||null===e)continue;let t="string"==typeof e.timestamp?e.timestamp:void 0;if(t){i||(i=t),s=t;let e=Date.parse(t);Number.isFinite(e)&&h.push(e)}let r="string"==typeof e.type?e.type:"",v=e.payload??{},_="string"==typeof v.type?v.type:"";if("session_meta"===r){"string"==typeof v.cwd&&(n=v.cwd);continue}if("turn_context"===r){"string"==typeof v.cwd&&(n=v.cwd),"string"==typeof v.model&&(a=v.model);continue}if("event_msg"===r&&"token_count"===_){let e=v.info??null,t=e?.total_token_usage??null;t&&(m.input=g(t.input_tokens)??m.input,m.output=g(t.output_tokens)??m.output,m.cacheRead=g(t.cached_input_tokens)??m.cacheRead);continue}if("event_msg"===r&&"user_message"===_){let i="string"==typeof v.message?v.message:"",s=f(i),n=(0,o.isFrameworkInjectedUserInput)(i);i&&!n&&(l||(l=s),u=s,y+=1),c.push({index:w++,timestamp:t,role:"user",rawType:"event_msg/user_message",preview:s,blocks:i?[{type:"text",text:i}]:[],raw:e});continue}if("event_msg"===r&&"agent_message"===_){let i="string"==typeof v.message?v.message:"",s=f(i);i&&(p=s),c.push({index:w++,timestamp:t,role:"agent",rawType:"event_msg/agent_message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:a,raw:e});continue}if("response_item"===r&&"reasoning"===_){let i=(v.summary??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim();c.push({index:w++,timestamp:t,role:"agent-thinking",rawType:"response_item/reasoning",preview:f(i),blocks:i?[{type:"thinking",thinking:i}]:[],model:a,raw:e});continue}if("response_item"===r&&"message"===_&&"assistant"===v.role){let i=(v.content??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim(),s=f(i);i&&(p=s),c.push({index:w++,timestamp:t,role:"agent",rawType:"response_item/message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:a,raw:e});continue}if("response_item"===r&&"function_call"===_){var M;let i="string"==typeof v.name?v.name:"(unknown)",s="string"==typeof v.call_id?v.call_id:void 0,n="string"==typeof v.arguments?v.arguments:"",r=function(e){if(!e)return null;try{return JSON.parse(e)}catch{return e}}(n);d+=1,c.push({index:w++,timestamp:t,role:"tool-call",rawType:"response_item/function_call",preview:`${i}(${(M=n).length<=80?M:M.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:s??`codex-${w}`,name:i,input:r}],toolName:i,toolUseId:s,model:a,raw:e});continue}if("response_item"===r&&"function_call_output"===_){let i="string"==typeof v.call_id?v.call_id:void 0,s="string"==typeof v.output?v.output:"",n=/process exited with code [1-9]/i.test(s);c.push({index:w++,timestamp:t,role:"tool-result",rawType:"response_item/function_call_output",preview:f(s),blocks:[{type:"tool_result",tool_use_id:i??"",content:s,is_error:n}],toolUseId:i,toolResult:s,raw:e});continue}c.push({index:w++,timestamp:t,role:"meta",rawType:_?`${r}/${_}`:r,preview:"",blocks:[],raw:e})}if(m.input>0||m.output>0){let t=-1;for(let e=c.length-1;e>=0;e--){let i=c[e].role;if("agent"===i||"agent-thinking"===i||"tool-call"===i){t=e;break}}if(t>=0){let i=c[t];i.messageId=`codex-${e.sessionId}-total`,i.usage={input:m.input,output:m.output,cacheRead:m.cacheRead,cacheWrite:0}}}let v=i?Date.parse(i):void 0;if(void 0!==v&&Number.isFinite(v)){let e;for(let t of c){if(!t.timestamp)continue;let i=Date.parse(t.timestamp);Number.isFinite(i)&&(t.tOffsetMs=Math.max(0,i-v),void 0!==e&&(t.gapMs=Math.max(0,i-e)),e=i)}}let _=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],n=t[0];for(let e=1;e<t.length;e++)t[e]-n>18e4&&(i.push({startMs:s,endMs:n}),s=t[e]),n=t[e];return i.push({startMs:s,endMs:n}),i}(h),k=_.reduce((e,t)=>e+(t.endMs-t.startMs),0),j=i&&s?Date.parse(s)-Date.parse(i):void 0,b=n?(0,r.canonicalProjectName)(n):"(unknown)",I=n?n.replace(/^\//,"-").replace(/\//g,"-"):"(unknown)";return{meta:{agent:"codex",id:e.sessionId,filePath:e.filePath,projectName:b,projectDir:I,sessionId:e.sessionId,firstTimestamp:i,lastTimestamp:s,durationMs:j&&Number.isFinite(j)?j:void 0,eventCount:c.length,model:a,cwd:n,totalUsage:m,status:"idle",firstUserPreview:l,lastUserPreview:u,lastAgentPreview:p,toolCallCount:d,turnCount:y,airTimeMs:k,activeSegments:_},events:c}}function g(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}let y=new Map,h=new Map;async function w(e={}){let t=e.root??l,i=await c(t),s=[];for(let e of i){let t=y.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){s.push(t.meta);continue}try{let t=await m(e.filePath),{meta:i}=d(e,t);y.set(e.filePath,{meta:i,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),s.push(i)}catch{}}return(s.sort((e,t)=>(t.firstTimestamp??"").localeCompare(e.firstTimestamp??"")),void 0!==e.limit)?s.slice(0,e.limit):s}async function M(e,t={}){let i=t.root??l,s=(await c(i)).find(t=>t.sessionId===e);if(!s)return null;let n=h.get(s.filePath);if(n&&n.mtimeMs===s.mtimeMs&&n.sizeBytes===s.sizeBytes)return n.detail;let a=await m(s.filePath),{meta:r,events:o}=d(s,a),u={...r,events:o};return h.set(s.filePath,{detail:u,mtimeMs:s.mtimeMs,sizeBytes:s.sizeBytes}),u}async function v(e={}){let t=e.root??l,i=await c(t);if(0===i.length)return null;for(let e of(i.sort((e,t)=>t.mtimeMs-e.mtimeMs),i)){let t=await m(e.filePath);for(let i=t.length-1;i>=0;i--){let s=t[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 r=a.primary??null,o=a.secondary??null,l=g(r?.used_percent),u=g(o?.used_percent),p=g(r?.resets_at),c=g(o?.resets_at),m="string"==typeof a.plan_type?a.plan_type:null;return{five_hour:{utilization:l??null,resets_at:void 0!==p?new Date(1e3*p).toISOString():null},seven_day:{utilization:u??null,resets_at:void 0!==c?new Date(1e3*c).toISOString():null},plan_type:m,source_path:e.filePath}}}return null}let _=s.default.join(i.default.homedir(),".gemini","tmp"),k=s.default.join(i.default.homedir(),".gemini","projects.json"),j=/^session-.+\.(jsonl|json)$/;async function b(e){return t.promises.readdir(e).catch(()=>[])}async function I(e){let i=[];for(let n of(await b(e))){let a=s.default.join(e,n,"chats");for(let e of(await b(a))){if(!j.test(e))continue;let r=s.default.join(a,e),o=await t.promises.stat(r).catch(()=>null);if(!o||!o.isFile())continue;let l=e.replace(/\.(jsonl|json)$/,"").split("-").pop()??e;i.push({filePath:r,slug:n,filenameId:l,format:e.endsWith(".jsonl")?"jsonl":"legacy-json",mtimeMs:o.mtimeMs,sizeBytes:o.size})}}return i}let x=null;async function N(){let e,i=await t.promises.stat(k).catch(()=>null);if(!i)return new Map;if(x&&x.mtimeMs===i.mtimeMs)return x.slugToCwd;let s=await t.promises.readFile(k,"utf8").catch(()=>"");try{e=JSON.parse(s)}catch{e={}}let n=new Map;for(let[t,i]of Object.entries(e.projects??{}))"string"==typeof i&&n.set(i,t);return x={mtimeMs:i.mtimeMs,slugToCwd:n},n}function T(e){return!!e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.type}async function S(e){let i=await t.promises.readFile(e.filePath,"utf8");if("legacy-json"===e.format){let e;try{e=JSON.parse(i)}catch{return{meta:{},messages:[]}}return{meta:{sessionId:"string"==typeof e.sessionId?e.sessionId:void 0,projectHash:"string"==typeof e.projectHash?e.projectHash:void 0,startTime:"string"==typeof e.startTime?e.startTime:void 0,lastUpdated:"string"==typeof e.lastUpdated?e.lastUpdated:void 0,summary:"string"==typeof e.summary?e.summary:void 0},messages:(Array.isArray(e.messages)?e.messages:[]).filter(T)}}let s={},n=new Map,a=[];for(let e of i.split("\n")){let t,i=e.trim();if(i){var r,o;try{t=JSON.parse(i)}catch{continue}if((r=t)&&"object"==typeof r&&"$rewindTo"in r){let e=t.$rewindTo,i=a.indexOf(e);if(i>=0){for(let e of a.slice(i))n.delete(e);a.length=i}continue}if((o=t)&&"object"==typeof o&&"$set"in o){Object.assign(s,t.$set);continue}if(T(t)){n.has(t.id)||a.push(t.id),n.set(t.id,t);continue}if("object"==typeof t&&null!==t){let e=t;"string"!=typeof e.sessionId||s.sessionId||(s.sessionId=e.sessionId,"string"==typeof e.projectHash&&(s.projectHash=e.projectHash),"string"==typeof e.startTime&&(s.startTime=e.startTime),"string"==typeof e.lastUpdated&&(s.lastUpdated=e.lastUpdated),"string"==typeof e.summary&&(s.summary=e.summary))}}}let l=[];for(let e of a){let t=n.get(e);t&&l.push(t)}return{meta:s,messages:l}}function D(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function P(e){if(!e)return"";if("string"==typeof e)return e;let t=Array.isArray(e)?e:[e],i=[];for(let e of t){if(!e||"object"!=typeof e)continue;if("string"==typeof e.text){i.push(e.text);continue}let t=e.functionResponse;if(t){let e=t.response;"string"==typeof e?i.push(e):e&&"object"==typeof e&&("string"==typeof e.output?i.push(e.output):"string"==typeof e.error?i.push(`error: ${e.error}`):i.push(JSON.stringify(e)))}}return i.join("\n")}async function A(e){let t,i,s,n,a,l,{meta:u,messages:p}=await S(e),c=(await N()).get(e.slug),m=[],f={input:0,output:0,cacheRead:0,cacheWrite:0},d=0,g=0,y=[],h=0;function w(e){if(m.push(e),e.timestamp&&"meta"!==e.role){t||(t=e.timestamp),i=e.timestamp;let s=Date.parse(e.timestamp);Number.isFinite(s)&&y.push(s)}}for(let e of p){let t=e.timestamp;if("user"===e.type){let i=P(e.displayContent??e.content),s=D(i),r=(0,o.isFrameworkInjectedUserInput)(i);i&&!r&&(n||(n=s),a=s,g+=1),w({index:h++,timestamp:t,role:"user",rawType:"gemini/user",preview:s,blocks:i?[{type:"text",text:i}]:[],messageId:e.id,raw:e});continue}if("gemini"===e.type){let i;"string"==typeof e.model&&(s=e.model);let n=P(e.content),a=D(n);if(n&&(l=a),e.tokens){let t=e.tokens,s={input:t.input??0,output:t.output??0,cacheRead:t.cached??0,cacheWrite:0};i=s,f.input+=s.input,f.output+=s.output,f.cacheRead+=s.cacheRead}for(let i of e.thoughts??[]){let e=[i.subject,i.description].filter(Boolean).join(": ");e&&w({index:h++,timestamp:i.timestamp??t,role:"agent-thinking",rawType:"gemini/thought",preview:D(e),blocks:[{type:"thinking",thinking:e}],model:s,raw:i})}for(let r of(n?w({index:h++,timestamp:t,role:"agent",rawType:"gemini/agent",preview:a,blocks:[{type:"text",text:n}],messageId:e.id,model:s,usage:i,raw:e}):i&&w({index:h++,timestamp:t,role:"agent",rawType:"gemini/agent",preview:"",blocks:[],messageId:e.id,model:s,usage:i,raw:e}),e.toolCalls??[])){d+=1;let e=r.args?JSON.stringify(r.args):"";w({index:h++,timestamp:r.timestamp??t,role:"tool-call",rawType:"gemini/tool_call",preview:`${r.name}(${e.length<=80?e:e.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:r.id,name:r.name,input:r.args??{}}],toolName:r.name,toolUseId:r.id,model:s,raw:r});let i=(r.status??"").toLowerCase();if("success"===i||"error"===i||"cancelled"===i){let e=P(r.result);w({index:h++,timestamp:r.timestamp??t,role:"tool-result",rawType:"gemini/tool_result",preview:D(e),blocks:[{type:"tool_result",tool_use_id:r.id,content:e,is_error:"error"===i||"cancelled"===i}],toolUseId:r.id,toolResult:e,raw:r})}}continue}if("info"===e.type||"warning"===e.type||"error"===e.type){let i=P(e.content);w({index:h++,timestamp:t,role:"meta",rawType:`gemini/${e.type}`,preview:D(i),blocks:i?[{type:"text",text:i}]:[],raw:e});continue}}let M=t?Date.parse(t):void 0;if(void 0!==M&&Number.isFinite(M)){let e;for(let t of m){if(!t.timestamp)continue;let i=Date.parse(t.timestamp);Number.isFinite(i)&&(t.tOffsetMs=Math.max(0,i-M),void 0!==e&&(t.gapMs=Math.max(0,i-e)),e=i)}}let v=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],n=t[0];for(let e=1;e<t.length;e++)t[e]-n>18e4&&(i.push({startMs:s,endMs:n}),s=t[e]),n=t[e];return i.push({startMs:s,endMs:n}),i}(y),_=v.reduce((e,t)=>e+(t.endMs-t.startMs),0),k=t&&i?Date.parse(i)-Date.parse(t):void 0,j=u.sessionId??e.filenameId,b=c?(0,r.canonicalProjectName)(c):e.slug,I=c?c.replace(/^\//,"-").replace(/\//g,"-"):e.slug;return{meta:{agent:"gemini",id:j,filePath:e.filePath,projectName:b,projectDir:I,sessionId:j,firstTimestamp:t,lastTimestamp:i,durationMs:k&&Number.isFinite(k)?k:void 0,eventCount:m.length,model:s,cwd:c,totalUsage:f,status:"idle",firstUserPreview:n,lastUserPreview:a,lastAgentPreview:l,toolCallCount:d,turnCount:g,airTimeMs:_,activeSegments:v},events:m}}let C=new Map,$=new Map;async function B(e={}){let t=e.root??_,i=await I(t),s=[];for(let e of i){let t=C.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){s.push(t.meta);continue}try{let{meta:t}=await A(e);C.set(e.filePath,{meta:t,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),s.push(t)}catch{}}return(s.sort((e,t)=>(t.firstTimestamp??"").localeCompare(e.firstTimestamp??"")),void 0!==e.limit)?s.slice(0,e.limit):s}async function z(e,t={}){let i,s=t.root??_,n=await I(s);for(let t of n)if(t.filenameId===e||e.startsWith(t.filenameId)){i=t;break}if(!i)for(let t of n){let{meta:s}=await A(t).catch(()=>({meta:{id:""}}));if(s.id===e){i=t;break}}if(!i)return null;let a=$.get(i.filePath);if(a&&a.mtimeMs===i.mtimeMs&&a.sizeBytes===i.sizeBytes)return a.detail;let{meta:r,events:o}=await A(i),l={...r,events:o};return $.set(i.filePath,{detail:l,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes}),l}function O(){return process.env.CCLENS_HOME||s.default.join(i.default.homedir(),".cclens")}function U(...e){return s.default.join(O(),...e)}function W(e){(0,a.invalidateClaudeCodeFile)(e)}let R={...n.CODEX_METADATA,defaultRoot:l,listSessions:async e=>w(e),getSession:async e=>M(e),async usagePoller(){let e=await v();return e?{captured_at:new Date().toISOString(),agent:"codex",five_hour:e.five_hour,seven_day:e.seven_day}:null}},F={...n.GEMINI_METADATA,defaultRoot:_,listSessions:async e=>B(e),getSession:async e=>z(e)},E=[a.claudeCodeSource,R,F];async function J(e){for(let t of E){let i=await t.getSession(e);if(i)return i}return null}}];
|
|
1
|
+
module.exports=[39587,e=>{"use strict";let t={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:"⌘"},r=[t,i,s,n,a];r.map(e=>e.kind),e.s(["ANTIGRAVITY_METADATA",0,n,"CLAUDE_CODE_METADATA",0,t,"CODEX_METADATA",0,i,"COWORK_METADATA",0,a,"GEMINI_METADATA",0,s,"agentMetadata",0,r])},20629,36521,34235,e=>{"use strict";var t=e.i(2157),i=e.i(60526),s=e.i(50227);let n=[/<system_instruction\b[^>]*>[\s\S]*?<\/system_instruction>\s*/gi],a=["<command-name>","<local-command-stdout>","<local-command-caveat>","<task-notification>","Base directory for this skill:"];function r(e){if(!e)return e;let t=e;for(let e of n)t=t.replace(e,"");return t.trim()}function o(e){if(!e)return!1;let t=r(e);if(!t)return!0;for(let e of a)if(t.startsWith(e))return!0;return!1}e.s(["isFrameworkInjectedUserInput",0,o,"stripFrameworkBoilerplate",0,r],36521);let l={input:0,output:0,cacheRead:0,cacheWrite:0};function u(e,t=200){let i=e.replace(/<[^>]+>/g,"").replace(/\s+/g," ").trim();return i.length>t?i.slice(0,t-1)+"…":i}let c=/^\s*<teammate-message\s+teammate_id="([^"]+)"[^>]*>([\s\S]*?)<\/teammate-message>/;function p(e){let t=e.match(c);if(!t)return;let i=t[1],s=t[2].trim(),n="message";if(s.startsWith("{"))try{let e=JSON.parse(s);"idle_notification"===e.type?n="idle-notification":"shutdown_request"===e.type?n="shutdown-request":"shutdown_approved"===e.type?n="shutdown-approved":"task_assignment"===e.type?n="task-assignment":"teammate_terminated"===e.type&&(n="teammate-terminated")}catch{}return{teammateId:i,body:s,kind:n}}function f(e){if(!e||"object"!=typeof e)return;let t=e=>"number"==typeof e?e:0;return{input:t(e.input_tokens),output:t(e.output_tokens),cacheRead:t(e.cache_read_input_tokens),cacheWrite:t(e.cache_creation_input_tokens)}}function d(e){let t,i,s,n,a,c,d,m,g,y=[];for(let t=0;t<e.length;t++){let i=function(e,t){if(!e||"object"!=typeof e)return null;let i=String(e.type??""),s=e.uuid,n=e.parentUuid??null,a=e.timestamp;if("assistant"===i){let r,o,l,c=e.message??{},p=c.content??[],d=f(c.usage),m=c.model,g=e.requestId,y=c.id,h=c.stop_reason,w=p[0],M="agent";return w?.type==="thinking"?(M="agent-thinking",r="[thinking] "+u(w.thinking,140)):w?.type==="tool_use"?(M="tool-call",o=w.name,l=w.id,r=`${w.name} `+u(JSON.stringify(w.input??{}),100)):r=w?.type==="text"?u(w.text,200):`<assistant:${w?.type??"empty"}>`,{index:t,uuid:s,parentUuid:n,timestamp:a,role:M,rawType:i,preview:r,blocks:p,usage:d,model:m,requestId:g,messageId:y,stopReason:h,toolName:o,toolUseId:l,raw:e}}if("user"===i){let o=(e.message??{}).content;if("string"==typeof o){let l=r(o),c=p(l);return{index:t,uuid:s,parentUuid:n,timestamp:a,role:"user",rawType:i,preview:u(l,200),blocks:l?[{type:"text",text:l}]:[],raw:e,teammateMessage:c}}if(Array.isArray(o)){let l=o[0];if(l?.type==="tool_result")return{index:t,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:o,toolUseId:l.tool_use_id,toolResult:e.toolUseResult,raw:e};let c=o.find(e=>e?.type==="text"),f=c?r(c.text):"",d=c?o.map(e=>e===c?{type:"text",text:f}:e):o,m=f?p(f):void 0;return{index:t,uuid:s,parentUuid:n,timestamp:a,role:"user",rawType:i,preview:f?u(f,200):u(JSON.stringify(o),200),blocks:d,raw:e,teammateMessage:m}}}if("attachment"===i){let r=e.attachment??{},o=String(r.type??"attachment"),l=`<attachment: ${o}>`;return"string"==typeof r.content&&r.content.length>0?l=`[${o}] `+u(r.content,140):Array.isArray(r.addedNames)&&(l=`[${o}] +${r.addedNames.length} names`),{index:t,uuid:s,parentUuid:n,timestamp:a,role:"system",rawType:i,preview:l,blocks:[{type:"text",text:JSON.stringify(r,null,2)}],attachmentType:o,raw:e}}return{index:t,uuid:s,parentUuid:n,timestamp:a,role:"meta",rawType:i||"unknown",preview:`${i}: ${u(JSON.stringify(e),140)}`,blocks:[{type:"text",text:JSON.stringify(e,null,2)}],raw:e}}(e[t],t);i&&y.push(i)}let h=y.map(e=>e.timestamp?Date.parse(e.timestamp):void 0).filter(e=>"number"==typeof e&&!Number.isNaN(e)),w=h.length?Math.min(...h):void 0,M=h.length?Math.max(...h):void 0,v=void 0!==w?new Date(w).toISOString():void 0,_=void 0!==M?new Date(M).toISOString():void 0;for(let e of y){if(!e.timestamp)continue;let t=Date.parse(e.timestamp);Number.isNaN(t)||void 0!==w&&(e.tOffsetMs=Math.max(0,t-w))}let k=y.filter(e=>{let t;return e.timestamp&&("user"===(t=e.role)||"agent"===t||"agent-thinking"===t||"tool-call"===t||"tool-result"===t)}).map(e=>({e,ms:Date.parse(e.timestamp)})).filter(e=>!Number.isNaN(e.ms)).sort((e,t)=>e.ms-t.ms);for(let e=1;e<k.length;e++)k[e].e.gapMs=Math.max(0,k[e].ms-k[e-1].ms);let j=y.filter(e=>e.timestamp).map(e=>Date.parse(e.timestamp)).filter(e=>!Number.isNaN(e)).sort((e,t)=>e-t),b=[],I=0;if(j.length>0){let e=j[0],t=j[0];for(let i=1;i<j.length;i++){let s=j[i],n=s-t;n>18e4?(b.push({startMs:e,endMs:t}),e=s):n>0&&(I+=n),t=s}b.push({startMs:e,endMs:t})}let N=new Map,x=[];for(let e of y){if(!e.timestamp)continue;let t=Date.parse(e.timestamp);if(!Number.isNaN(t)){if("assistant"===e.rawType&&e.usage&&e.messageId){let i=N.get(e.messageId);i?(i.siblings.push(e),t<i.ms&&(i.rep=e,i.ms=t)):N.set(e.messageId,{rep:e,ms:t,siblings:[e]})}else if("system"===e.rawType){let i=e.raw;if(i?.subtype!=="compact_boundary")continue;let s=i.compactMetadata??{};x.push({ms:t,trigger:"manual"===s.trigger?"manual":"auto",preTokens:"number"==typeof s.preTokens?s.preTokens:0})}}}let S=[...N.values()].sort((e,t)=>e.ms-t.ms);x.sort((e,t)=>e.ms-t.ms);let T=0,A=0,C=(e,t)=>{for(let i of e.siblings)i.coldResume=t;T++,A+=t.writeTokens},P=new Set;for(let e of x){let t,i=S.find(t=>t.ms>e.ms&&(t.rep.usage?.cacheWrite??0)>=1e3);if(!i)continue;for(let i=S.length-1;i>=0;i--)if(S[i].ms<=e.ms){t=S[i].ms;break}let s=i.rep.usage,n=s.cacheWrite+s.cacheRead;C(i,{trigger:"compact",gapMs:void 0!==t?i.ms-t:0,writeTokens:s.cacheWrite,writeRatio:n>0?s.cacheWrite/n:0,compact:{trigger:e.trigger,preTokens:e.preTokens}}),P.add(i.rep.messageId)}for(let e=1;e<S.length;e++){let t=S[e-1],i=S[e];if(P.has(i.rep.messageId))continue;let s=i.rep.usage,n=s.cacheWrite+s.cacheRead,a=n>0?s.cacheWrite/n:0,r=i.ms-t.ms;r>3e5&&s.cacheWrite>=1e3&&a>=.3&&C(i,{trigger:"idle",gapMs:r,writeTokens:s.cacheWrite,writeRatio:a})}let D={...l},$=new Set,O="",z=!1,R=!1,B=0,E=0,F=0,U=0,W=new Set;for(let e of y){if("tool-call"===e.role){B++;let t=e.blocks.find(e=>e&&"tool_use"===e.type);if(t){let e=t.input??{};if("TeamCreate"===t.name&&(z=!0),"SendMessage"===t.name){let t="string"==typeof e.to?e.to:"";t&&"team-lead"!==t&&(R=!0)}let i="string"==typeof e.file_path?e.file_path:void 0;if("Edit"===t.name&&i){W.add(i);let t="string"==typeof e.old_string?e.old_string:"",s="string"==typeof e.new_string?e.new_string:"",n=t?t.split("\n").length:0,a=s?s.split("\n").length:0;F+=Math.max(0,a-n),U+=Math.max(0,n-a)}else if("Write"===t.name&&i){W.add(i);let t="string"==typeof e.content?e.content:"";F+=t?t.split("\n").length:0}}}if("user"===e.role){let t=o(function(e){let t=e?.content;if("string"==typeof t)return t;if(Array.isArray(t)){for(let e of t)if(e&&"object"==typeof e&&"text"===e.type&&"string"==typeof e.text)return e.text}return""}(e.raw?.message)),i=void 0!==e.teammateMessage&&!c;t||i||(d||(d=e.teammateMessage?e.teammateMessage.body:e.preview),E++,g=e.preview)}"agent"===e.role&&(m=e.preview)}for(let r of e)if(r&&"object"==typeof r&&("string"!=typeof r.sessionId||O||(O=r.sessionId),"string"!=typeof r.cwd||i||(i=r.cwd),"string"!=typeof r.gitBranch||s||(s=r.gitBranch),"string"!=typeof r.entrypoint||n||(n=r.entrypoint),"string"!=typeof r.teamName||a||(a=r.teamName),"string"!=typeof r.agentName||c||(c=r.agentName),"assistant"===r.type)){let e=r.message;if(e){"string"!=typeof e.model||t||(t=e.model);let i="string"==typeof e.id?e.id:void 0,s="string"==typeof r.requestId?r.requestId:void 0,n=null!=i?`${i}:${s??""}`:void 0;if(n&&$.has(n))continue;n&&$.add(n);let a=f(e.usage);a&&(D.input+=a.input,D.output+=a.output,D.cacheRead+=a.cacheRead,D.cacheWrite+=a.cacheWrite)}}return{events:y,meta:{sessionId:O,firstTimestamp:v,lastTimestamp:_,durationMs:void 0!==w&&void 0!==M?M-w:void 0,eventCount:y.length,model:t,cwd:i,gitBranch:s,entrypoint:n,totalUsage:D,status:"idle",firstUserPreview:d,lastUserPreview:g,lastAgentPreview:m,toolCallCount:B,turnCount:E,airTimeMs:I,activeSegments:b,linesAdded:F,linesRemoved:U,filesEdited:W.size,coldResumeCount:T,cacheRebuildTokens:A,teamName:a,agentName:c,isTeamLead:void 0!==a&&void 0===c&&(z||R)}}}e.s(["parseTranscript",0,d],34235);var m=e.i(39587);let g=s.default.join(i.default.homedir(),".claude","projects");function y(e){return e.startsWith("-")?"/"+e.slice(1).replace(/-/g,"/"):e}let h=s.default.join(i.default.homedir(),".cclens","runtime").replace(/[/.]/g,"-");async function w(e){let i=await t.promises.readFile(e,"utf8"),s=[];for(let e of i.split("\n")){let t=e.trim();if(t)try{s.push(JSON.parse(t))}catch{}}return s}function M(e){return e.replace(/\.jsonl$/i,"")}let v=new Map,_=new Map,k=new Map,j=null;async function b(e=g){let i;if(j&&j.root===e&&Date.now()-j.capturedAtMs<1e3)return j.files;try{i=await t.promises.readdir(e,{withFileTypes:!0})}catch{return[]}let n=i.filter(e=>e.isDirectory()&&e.name!==h).map(e=>e.name),a=(await Promise.all(n.map(async i=>{let n,a=s.default.join(e,i);try{n=await t.promises.readdir(a)}catch{return[]}let r=n.filter(e=>e.endsWith(".jsonl"));return(await Promise.all(r.map(async e=>{let n=s.default.join(a,e);try{let s=await t.promises.stat(n);return{projectDir:i,fileName:e,fullPath:n,mtimeMs:s.mtimeMs,sizeBytes:s.size}}catch{return null}}))).filter(e=>null!==e)}))).flat();return j={files:a,capturedAtMs:Date.now(),root:e},a}let I={input:0,output:0,cacheRead:0,cacheWrite:0};function N(e,t,i){for(let s of e){if(!s||"object"!=typeof s||"assistant"!==s.type)continue;let e=s.message;if(!e)continue;let n="string"==typeof e.id?e.id:void 0,a="string"==typeof s.requestId?s.requestId:void 0,r=null!=n&&null!=a?`${n}:${a}`:void 0;if(r&&t.has(r))continue;r&&t.add(r);let o=e.usage;if(o){let e=e=>"number"==typeof e?e:0;i.input+=e(o.input_tokens),i.output+=e(o.output_tokens),i.cacheRead+=e(o.cache_read_input_tokens),i.cacheWrite+=e(o.cache_creation_input_tokens)}}}async function x(e,i,n){let a,r={...I},o=new Set;N(e,o,r);let l=s.default.join(i,n,"subagents");try{a=await t.promises.readdir(l)}catch{return r}let u=a.filter(e=>e.endsWith(".jsonl"));return 0===u.length||await Promise.all(u.map(async e=>{try{let t=await w(s.default.join(l,e));N(t,o,r)}catch{}})),r}async function S(e,i){let n,a=s.default.join(e,i,"workflows");try{n=await t.promises.readdir(a)}catch{return{workflowCount:0,spawnedAgentCount:0,spans:[]}}let r=n.filter(e=>e.startsWith("wf_")&&e.endsWith(".json"));if(0===r.length)return{workflowCount:0,spawnedAgentCount:0,spans:[]};let o=0,l=[];return{workflowCount:(await Promise.all(r.map(async e=>{try{let i=JSON.parse(await t.promises.readFile(s.default.join(a,e),"utf8"));return"number"==typeof i.agentCount&&(o+=i.agentCount),"number"==typeof i.startTime&&"number"==typeof i.durationMs&&i.durationMs>0&&l.push({startMs:i.startTime,endMs:i.startTime+i.durationMs}),!0}catch{return!1}}))).filter(Boolean).length,spawnedAgentCount:o,spans:l}}function T(e,t){if(0===t.length)return{};let i=[...e??[],...t].filter(e=>e.endMs>e.startMs).sort((e,t)=>e.startMs-t.startMs);if(0===i.length)return{};let s=[{...i[0]}];for(let e=1;e<i.length;e++){let t=i[e],n=s[s.length-1];t.startMs<=n.endMs?n.endMs=Math.max(n.endMs,t.endMs):s.push({...t})}let n=s.reduce((e,t)=>e+(t.endMs-t.startMs),0);return{activeSegments:s,airTimeMs:n}}async function A(e){let t=v.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.meta;try{let t=await w(e.fullPath),{meta:i}=d(t),n=M(e.fileName),a=s.default.dirname(e.fullPath);i.totalUsage=await x(t,a,n);let r=await S(a,n),o={...i,id:n,filePath:e.fullPath,projectDir:e.projectDir,projectName:i.cwd??y(e.projectDir),...r.workflowCount>0?{workflowCount:r.workflowCount,spawnedAgentCount:r.spawnedAgentCount}:{},...T(i.activeSegments,r.spans)};return v.set(e.fullPath,{meta:o,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),o}catch{return null}}async function C(e){let t=_.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.detail;try{let t=await w(e.fullPath),{meta:i,events:n}=d(t),a=M(e.fileName),r=await S(s.default.dirname(e.fullPath),a),o={...i,id:a,filePath:e.fullPath,projectDir:e.projectDir,projectName:i.cwd??y(e.projectDir),events:n,...r.workflowCount>0?{workflowCount:r.workflowCount,spawnedAgentCount:r.spawnedAgentCount}:{},...T(i.activeSegments,r.spans)};_.set(e.fullPath,{detail:o,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes});let l={...o};return delete l.events,v.set(e.fullPath,{meta:l,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),o}catch{return null}}async function P(e={}){let{root:t=g,limit:i=500,projectDir:s}=e,n=await b(t);s&&(n=n.filter(e=>e.projectDir===s)),n.sort((e,t)=>t.mtimeMs-e.mtimeMs);let a=n.slice(0,i);return(await Promise.all(a.map(e=>A(e)))).filter(e=>null!==e)}async function D(e,t={}){let{root:i=g}=t,n=(await b(i)).find(t=>M(t.fileName)===e);if(!n)return null;let a=await C(n);if(!a)return a;let r=a.firstTimestamp?Date.parse(a.firstTimestamp):void 0,o=s.default.join(s.default.dirname(n.fullPath),M(n.fileName),"subagents"),l=s.default.join(s.default.dirname(n.fullPath),M(n.fileName),"workflows"),[u,c]=await Promise.all([$(o,r,a.events),O(l,r,a.events)]),p=c.reduce((e,t)=>e+t.agentCount,0);return{...a,subagents:u,workflows:c,...c.length>0?{workflowCount:c.length,spawnedAgentCount:p}:{}}}async function $(e,i,n){let a;try{a=await t.promises.readdir(e)}catch{return[]}let r=new Map,o=[];for(let e of n)if("tool-call"===e.role&&"Agent"===e.toolName)for(let t of e.blocks){if(t?.type!=="tool_use"||"Agent"!==t.name)continue;let i=t.input??{},s="string"==typeof i.description?i.description:void 0,n=e.timestamp?Date.parse(e.timestamp):void 0,a={toolUseId:t.id,parentUuid:e.uuid??"",runInBackground:!0===i.run_in_background,prompt:"string"==typeof i.prompt?i.prompt:void 0,tsMs:n};s&&r.set(s,a),void 0!==n&&o.push(a)}o.sort((e,t)=>(e.tsMs??0)-(t.tsMs??0));let l=a.filter(e=>e.startsWith("agent-")&&e.endsWith(".jsonl"));return(await Promise.all(l.map(async n=>{let a,l=n.replace(/^agent-/,"").replace(/\.jsonl$/,""),u=s.default.join(e,n),c=s.default.join(e,`agent-${l}.meta.json`),p={};try{let e=await t.promises.readFile(c,"utf8");p=JSON.parse(e)}catch{}try{a=await w(u)}catch{return null}let f=function(e){let t,i,s,n,a,r={...I},o=new Set,l=0,u=0,c=0,p=new Map;for(let f of e){if(!f||"object"!=typeof f)continue;l++;let e="string"==typeof f.timestamp?Date.parse(f.timestamp):NaN;if(!Number.isNaN(e)&&((void 0===t||e<t)&&(t=e),(void 0===i||e>i)&&(i=e)),void 0===a&&"user"===f.type&&(null===f.parentUuid||void 0===f.parentUuid)){let e=f.message,t=e?.content;if("string"==typeof t)a=t;else if(Array.isArray(t)){let e=t.find(e=>e&&"object"==typeof e&&"text"===e.type);e?.text&&(a=e.text)}}if("assistant"===f.type){let e=f.message;if(!e)continue;n||"string"!=typeof e.model||(n=e.model);let t="string"==typeof e.id?e.id:void 0,i="string"==typeof f.requestId?f.requestId:void 0,a=null!=t&&null!=i?`${t}:${i}`:void 0,l=!a||!o.has(a);if(a&&l&&o.add(a),l){u++;let t=e.usage;if(t){let e=e=>"number"==typeof e?e:0;r.input+=e(t.input_tokens),r.output+=e(t.output_tokens),r.cacheRead+=e(t.cache_read_input_tokens),r.cacheWrite+=e(t.cache_creation_input_tokens)}}let d=e.content;if(Array.isArray(d))for(let e of d)e&&"object"==typeof e&&("text"===e.type&&"string"==typeof e.text?s=e.text:"tool_use"===e.type&&"string"==typeof e.name&&(c++,p.set(e.name,(p.get(e.name)??0)+1)))}}let f=Array.from(p.entries()).map(([e,t])=>({name:e,count:t})).sort((e,t)=>t.count-e.count);return{startMs:t,endMs:i,totalUsage:r,eventCount:l,finalPreview:void 0!==s?s.replace(/\s+/g," ").trim().slice(0,240):void 0,finalText:s,model:n,toolCalls:f,toolCallCount:c,assistantMessageCount:u,initialPrompt:a}}(a),d=p.description&&p.description.trim().length>0?p.description:void 0,m=d?r.get(d):function(e){let t;if(void 0===e)return;let i=1/0;for(let s of o){if(void 0===s.tsMs)continue;let n=Math.abs(e-s.tsMs);n<i&&n<=2e3&&(t=s,i=n)}return t}(f.startMs),g=d??(f.initialPrompt?f.initialPrompt.replace(/\s+/g," ").trim().slice(0,80):"(no description)"),y=m?.prompt??f.initialPrompt,h=void 0!==i&&void 0!==f.startMs?Math.max(0,f.startMs-i):void 0,M=void 0!==i&&void 0!==f.endMs?Math.max(0,f.endMs-i):void 0,v=void 0!==f.startMs&&void 0!==f.endMs?f.endMs-f.startMs:void 0;return{agentId:l,agentType:p.agentType??"unknown",description:g,startMs:f.startMs,endMs:f.endMs,durationMs:v,startTOffsetMs:h,endTOffsetMs:M,eventCount:f.eventCount,totalUsage:f.totalUsage,parentUuid:m?.parentUuid,parentToolUseId:m?.toolUseId,runInBackground:m?.runInBackground,prompt:y,finalPreview:f.finalPreview,finalText:f.finalText,model:f.model,toolCalls:f.toolCalls,toolCallCount:f.toolCallCount,assistantMessageCount:f.assistantMessageCount}}))).filter(e=>null!==e).sort((e,t)=>(e.startMs??0)-(t.startMs??0))}async function O(e,i,n){let a;try{a=await t.promises.readdir(e)}catch{return[]}let r=a.filter(e=>e.startsWith("wf_")&&e.endsWith(".json"));if(0===r.length)return[];let o=[];for(let e of n){if("tool-call"!==e.role||"Workflow"!==e.toolName)continue;let t=e.timestamp?Date.parse(e.timestamp):NaN;if(!Number.isNaN(t))for(let i of e.blocks)i?.type==="tool_use"&&"Workflow"===i.name&&o.push({toolUseId:i.id,parentUuid:e.uuid??"",tsMs:t})}o.sort((e,t)=>e.tsMs-t.tsMs);let l=e=>"number"==typeof e?e:void 0,u=e=>"string"==typeof e&&e.length>0?e:void 0;return(await Promise.all(r.map(async n=>{let a;try{a=JSON.parse(await t.promises.readFile(s.default.join(e,n),"utf8"))}catch{return null}let r=u(a.runId)??n.replace(/\.json$/,""),c=l(a.startTime),p=l(a.durationMs),f=void 0!==c&&void 0!==p?c+p:void 0,d=void 0!==i&&void 0!==c?Math.max(0,c-i):void 0,m=void 0!==i&&void 0!==f?Math.max(0,f-i):void 0,g=Array.isArray(a.phases)?a.phases.filter(e=>!!e&&"object"==typeof e&&"string"==typeof e.title).map(e=>({title:e.title,detail:u(e.detail)})):[],y=Array.isArray(a.logs)?a.logs.filter(e=>"string"==typeof e):[],h=(e,t)=>{let i=u(e);return void 0===i?void 0:i.length>t?i.slice(0,t)+"…":i},w=(Array.isArray(a.workflowProgress)?a.workflowProgress:[]).filter(e=>!!e&&"object"==typeof e&&"workflow_agent"===e.type).map(e=>({index:l(e.index)??0,label:u(e.label)??"(agent)",phaseIndex:l(e.phaseIndex),phaseTitle:u(e.phaseTitle),agentId:u(e.agentId),model:u(e.model),state:u(e.state),startedAt:l(e.startedAt),durationMs:l(e.durationMs),tokens:l(e.tokens),toolCalls:l(e.toolCalls),lastToolSummary:h(e.lastToolSummary,200),promptPreview:h(e.promptPreview,600),resultPreview:h(e.resultPreview,600)})).sort((e,t)=>e.index-t.index),M=(e=>{let t,i;if(void 0===e||0===o.length)return;let s=1/0,n=1/0;for(let a of o){let r=Math.abs(e-a.tsMs);!(r>6e4)&&(r<n&&(i=a,n=r),a.tsMs<=e&&r<s&&(t=a,s=r))}return t??i})(c);return{runId:r,name:u(a.workflowName)??r,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:f,startTOffsetMs:d,endTOffsetMs:m,model:u(a.defaultModel),phases:g,logs:y,agents:w,parentToolUseId:M?.toolUseId,parentUuid:M?.parentUuid}}))).filter(e=>null!==e).sort((e,t)=>(e.startMs??0)-(t.startMs??0))}async function z(e,t,i,n={}){let a,r,o,l,u,c,{root:p=g}=n;if(!/^[\w.-]+$/.test(t)||!/^[\w.-]+$/.test(i))return null;let f=(await b(p)).find(t=>M(t.fileName)===e);if(!f)return null;let d=s.default.join(s.default.dirname(f.fullPath),e,"subagents","workflows",t,`agent-${i}.jsonl`);try{a=await w(d)}catch{return null}let m=new Set;for(let e of a){if(!e||"object"!=typeof e)continue;let t=e.message?.content;if(Array.isArray(t))for(let e of t)e&&"object"==typeof e&&"tool_result"===e.type&&!0===e.is_error&&"string"==typeof e.tool_use_id&&m.add(e.tool_use_id)}let y=[],h=new Map,v={...I},_=new Set,k=0,j=0;for(let e of a){if(!e||"object"!=typeof e)continue;j++;let t="string"==typeof e.timestamp?Date.parse(e.timestamp):NaN;if(!Number.isNaN(t)&&((void 0===u||t<u)&&(u=t),(void 0===c||t>c)&&(c=t)),void 0===r&&"user"===e.type&&(null===e.parentUuid||void 0===e.parentUuid)){let t=e.message?.content;if("string"==typeof t)r=t;else if(Array.isArray(t)){let e=t.find(e=>e&&"object"==typeof e&&"text"===e.type);e?.text&&(r=e.text)}}if("assistant"!==e.type)continue;let i=e.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 e.requestId?e.requestId:void 0,a=null!=s&&null!=n?`${s}:${n}`:void 0,p=!a||!_.has(a);if(a&&p&&_.add(a),p){k++;let e=i.usage;if(e){let t=e=>"number"==typeof e?e:0;v.input+=t(e.input_tokens),v.output+=t(e.output_tokens),v.cacheRead+=t(e.cache_read_input_tokens),v.cacheWrite+=t(e.cache_creation_input_tokens)}}let f=i.content;if(Array.isArray(f)){for(let e of f)if(e&&"object"==typeof e){if("text"===e.type&&"string"==typeof e.text)o=e.text;else if("tool_use"===e.type&&"string"==typeof e.name&&(h.set(e.name,(h.get(e.name)??0)+1),y.length<2e3)){let t=function(e){if(!e||"object"!=typeof e)return"";let t=t=>"string"==typeof e[t]?e[t]:void 0;return t("command")??t("file_path")??t("path")??t("pattern")??t("url")??t("description")??t("query")??t("prompt")??t("old_string")??JSON.stringify(e)}(e.input),i=t.replace(/\s+/g," ").trim().slice(0,160),s=t.length>4e3?t.slice(0,4e3)+"…":t;y.push({index:y.length+1,tool:e.name,preview:i,full:s.length>i.length||s.includes("\n")?s:void 0,isError:"string"==typeof e.id&&m.has(e.id)})}}}}return{agentId:i,prompt:r,finalText:o,steps:y,toolCalls:Array.from(h.entries()).map(([e,t])=>({name:e,count:t})).sort((e,t)=>t.count-e.count),toolCallCount:y.length,assistantMessageCount:k,eventCount:j,totalUsage:v,model:l,durationMs:void 0!==u&&void 0!==c?c-u:void 0}}let R={...m.CLAUDE_CODE_METADATA,defaultRoot:g,async listSessions(e){let t=await P(e);for(let e of t)e.agent||(e.agent="claude-code");return t},async getSession(e,t){let i=await D(e,t);return i&&!i.agent&&(i.agent="claude-code"),i}};e.s(["DEFAULT_ROOT",0,g,"claudeCodeSource",0,R,"getSession",0,D,"invalidateClaudeCodeFile",0,function(e){v.delete(e),_.delete(e),k.delete(e),j=null},"listSessions",0,P,"loadWorkflowAgentDetail",0,z],20629)},79357,e=>{"use strict";let t=["/.claude/worktrees/","/.worktrees/","/claude/worktrees/"],i=/\/conductor\/workspaces\/[^/]+\/([^/]+)(?:\/|$)/,s="/.superset/worktrees/",n=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;e.s(["canonicalProjectName",0,function(e){let a=e.replace(/\/{2,}/g,"/"),r=function(e){for(let i of t){let t=e.lastIndexOf(i);if(t>=0)return{idx:t,marker:i}}return null}(a);if(r)return a.slice(0,r.idx);let o=function(e){let t=i.exec(e);if(!t)return null;let s=t[1],n=+!!t[0].endsWith("/");return{canonicalEndIdx:t.index+t[0].length-s.length-1-n,workspaceName:s}}(a);if(o)return a.slice(0,o.canonicalEndIdx);let l=function(e){let t=e.indexOf(s);if(t<0)return null;let i=e.slice(t+s.length).split("/").filter(Boolean);if(0===i.length)return null;let a=n.test(i[0])?i[1]??i[0]:i[0];return{canonical:e.slice(0,t)+s+a,workspaceName:a}}(a);return l?l.canonical:a},"computeBurstsFromSessions",0,function(e,t={}){let i=[];for(let t of e)t.activeSegments&&0!==t.activeSegments.length&&i.push({id:t.id,projectDir:t.projectDir,segments:t.activeSegments});return function(e,t){let i=t.minDurationMs??6e4,s=t.mergeGapMs??6e5,n=t.minActive??2,a=[];for(let t of e)for(let e of t.segments)e.endMs<=e.startMs||(a.push({ms:e.startMs,delta:1,sessionId:t.id}),a.push({ms:e.endMs,delta:-1,sessionId:t.id}));a.sort((e,t)=>e.ms-t.ms||t.delta-e.delta);let r=new Map,o=[],l=null;for(let e of a){if(1===e.delta)r.set(e.sessionId,(r.get(e.sessionId)??0)+1);else{let t=(r.get(e.sessionId)??0)-1;t<=0?r.delete(e.sessionId):r.set(e.sessionId,t)}let t=r.size;if(t>=n)if(l)for(let i of(l.endMs=e.ms,t>l.peak&&(l.peak=t),r.keys()))l.sessionIds.add(i);else l={startMs:e.ms,endMs:e.ms,peak:t,sessionIds:new Set(r.keys())};else l&&(l.endMs=e.ms,o.push(l),l=null)}l&&o.push(l);let u=o.filter(e=>e.endMs-e.startMs>=i),c=[];for(let e of u){let t=c[c.length-1];if(t&&e.startMs-t.endMs<=s)for(let i of(t.endMs=e.endMs,e.peak>t.peak&&(t.peak=e.peak),e.sessionIds))t.sessionIds.add(i);else c.push({startMs:e.startMs,endMs:e.endMs,peak:e.peak,sessionIds:new Set(e.sessionIds)})}let p=new Map;for(let t of e)p.set(t.id,t.projectDir);return c.map(e=>{let t=Array.from(new Set(Array.from(e.sessionIds).map(e=>p.get(e)).filter(e=>!!e)));return{startMs:e.startMs,endMs:e.endMs,peak:e.peak,sessionIds:Array.from(e.sessionIds),projectDirs:t,crossProject:t.length>1}})}(i,t)},"toLocalDay",0,function(e){let t=new Date(e),i=t.getFullYear(),s=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0");return`${i}-${s}-${n}`}])},43427,e=>{"use strict";let t;e.s(["cclensHome",()=>ef,"cclensPath",()=>ed,"getAnySession",()=>ev,"invalidateFile",()=>em],43427);var i=e.i(2157),s=e.i(60526),n=e.i(50227),a=e.i(39587),r=e.i(20629),o=e.i(79357),l=e.i(36521);let u=n.default.join(s.default.homedir(),".codex","sessions"),c=/^rollout-(\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2})-([0-9a-f-]+)\.jsonl$/;async function p(e){return i.promises.readdir(e).catch(()=>[])}async function f(e){let t=[];for(let s of(await p(e))){if(!/^\d{4}$/.test(s))continue;let a=n.default.join(e,s);for(let e of(await p(a))){if(!/^\d{2}$/.test(e))continue;let s=n.default.join(a,e);for(let e of(await p(s))){if(!/^\d{2}$/.test(e))continue;let a=n.default.join(s,e);for(let e of(await p(a))){let s=c.exec(e);if(!s)continue;let r=n.default.join(a,e),o=await i.promises.stat(r).catch(()=>null);o&&t.push({filePath:r,sessionId:s[2],mtimeMs:o.mtimeMs,sizeBytes:o.size})}}}}return t}async function d(e){let t=await i.promises.readFile(e,"utf8"),s=[];for(let e of t.split("\n")){let t=e.trim();if(t)try{s.push(JSON.parse(t))}catch{}}return s}function m(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function g(e,t){let i,s,n,a,r,u,c,p=[],f={input:0,output:0,cacheRead:0,cacheWrite:0},d=0,g=0,h=[],w=0;for(let e of t){if("object"!=typeof e||null===e)continue;let t="string"==typeof e.timestamp?e.timestamp:void 0;if(t){i||(i=t),s=t;let e=Date.parse(t);Number.isFinite(e)&&h.push(e)}let o="string"==typeof e.type?e.type:"",v=e.payload??{},_="string"==typeof v.type?v.type:"";if("session_meta"===o){"string"==typeof v.cwd&&(n=v.cwd);continue}if("turn_context"===o){"string"==typeof v.cwd&&(n=v.cwd),"string"==typeof v.model&&(a=v.model);continue}if("event_msg"===o&&"token_count"===_){let e=v.info??null,t=e?.total_token_usage??null;t&&(f.input=y(t.input_tokens)??f.input,f.output=y(t.output_tokens)??f.output,f.cacheRead=y(t.cached_input_tokens)??f.cacheRead);continue}if("event_msg"===o&&"user_message"===_){let i="string"==typeof v.message?v.message:"",s=m(i),n=(0,l.isFrameworkInjectedUserInput)(i);i&&!n&&(r||(r=s),u=s,g+=1),p.push({index:w++,timestamp:t,role:"user",rawType:"event_msg/user_message",preview:s,blocks:i?[{type:"text",text:i}]:[],raw:e});continue}if("event_msg"===o&&"agent_message"===_){let i="string"==typeof v.message?v.message:"",s=m(i);i&&(c=s),p.push({index:w++,timestamp:t,role:"agent",rawType:"event_msg/agent_message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:a,raw:e});continue}if("response_item"===o&&"reasoning"===_){let i=(v.summary??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim();p.push({index:w++,timestamp:t,role:"agent-thinking",rawType:"response_item/reasoning",preview:m(i),blocks:i?[{type:"thinking",thinking:i}]:[],model:a,raw:e});continue}if("response_item"===o&&"message"===_&&"assistant"===v.role){let i=(v.content??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim(),s=m(i);i&&(c=s),p.push({index:w++,timestamp:t,role:"agent",rawType:"response_item/message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:a,raw:e});continue}if("response_item"===o&&"function_call"===_){var M;let i="string"==typeof v.name?v.name:"(unknown)",s="string"==typeof v.call_id?v.call_id:void 0,n="string"==typeof v.arguments?v.arguments:"",r=function(e){if(!e)return null;try{return JSON.parse(e)}catch{return e}}(n);d+=1,p.push({index:w++,timestamp:t,role:"tool-call",rawType:"response_item/function_call",preview:`${i}(${(M=n).length<=80?M:M.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:s??`codex-${w}`,name:i,input:r}],toolName:i,toolUseId:s,model:a,raw:e});continue}if("response_item"===o&&"function_call_output"===_){let i="string"==typeof v.call_id?v.call_id:void 0,s="string"==typeof v.output?v.output:"",n=/process exited with code [1-9]/i.test(s);p.push({index:w++,timestamp:t,role:"tool-result",rawType:"response_item/function_call_output",preview:m(s),blocks:[{type:"tool_result",tool_use_id:i??"",content:s,is_error:n}],toolUseId:i,toolResult:s,raw:e});continue}p.push({index:w++,timestamp:t,role:"meta",rawType:_?`${o}/${_}`:o,preview:"",blocks:[],raw:e})}if(f.input>0||f.output>0){let t=-1;for(let e=p.length-1;e>=0;e--){let i=p[e].role;if("agent"===i||"agent-thinking"===i||"tool-call"===i){t=e;break}}if(t>=0){let i=p[t];i.messageId=`codex-${e.sessionId}-total`,i.usage={input:f.input,output:f.output,cacheRead:f.cacheRead,cacheWrite:0}}}let v=i?Date.parse(i):void 0;if(void 0!==v&&Number.isFinite(v)){let e;for(let t of p){if(!t.timestamp)continue;let i=Date.parse(t.timestamp);Number.isFinite(i)&&(t.tOffsetMs=Math.max(0,i-v),void 0!==e&&(t.gapMs=Math.max(0,i-e)),e=i)}}let _=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],n=t[0];for(let e=1;e<t.length;e++)t[e]-n>18e4&&(i.push({startMs:s,endMs:n}),s=t[e]),n=t[e];return i.push({startMs:s,endMs:n}),i}(h),k=_.reduce((e,t)=>e+(t.endMs-t.startMs),0),j=i&&s?Date.parse(s)-Date.parse(i):void 0,b=n?(0,o.canonicalProjectName)(n):"(unknown)",I=n?n.replace(/^\//,"-").replace(/\//g,"-"):"(unknown)";return{meta:{agent:"codex",id:e.sessionId,filePath:e.filePath,projectName:b,projectDir:I,sessionId:e.sessionId,firstTimestamp:i,lastTimestamp:s,durationMs:j&&Number.isFinite(j)?j:void 0,eventCount:p.length,model:a,cwd:n,totalUsage:f,status:"idle",firstUserPreview:r,lastUserPreview:u,lastAgentPreview:c,toolCallCount:d,turnCount:g,airTimeMs:k,activeSegments:_},events:p}}function y(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}let h=new Map,w=new Map;async function M(e={}){let t=e.root??u,i=await f(t),s=[];for(let e of i){let t=h.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){s.push(t.meta);continue}try{let t=await d(e.filePath),{meta:i}=g(e,t);h.set(e.filePath,{meta:i,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),s.push(i)}catch{}}return(s.sort((e,t)=>(t.firstTimestamp??"").localeCompare(e.firstTimestamp??"")),void 0!==e.limit)?s.slice(0,e.limit):s}async function v(e,t={}){let i=t.root??u,s=(await f(i)).find(t=>t.sessionId===e);if(!s)return null;let n=w.get(s.filePath);if(n&&n.mtimeMs===s.mtimeMs&&n.sizeBytes===s.sizeBytes)return n.detail;let a=await d(s.filePath),{meta:r,events:o}=g(s,a),l={...r,events:o};return w.set(s.filePath,{detail:l,mtimeMs:s.mtimeMs,sizeBytes:s.sizeBytes}),l}async function _(e={}){let t=e.root??u,i=await f(t);if(0===i.length)return null;for(let e of(i.sort((e,t)=>t.mtimeMs-e.mtimeMs),i)){let t=await d(e.filePath);for(let i=t.length-1;i>=0;i--){let s=t[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 r=a.primary??null,o=a.secondary??null,l=y(r?.used_percent),u=y(o?.used_percent),c=y(r?.resets_at),p=y(o?.resets_at),f="string"==typeof a.plan_type?a.plan_type:null;return{five_hour:{utilization:l??null,resets_at:void 0!==c?new Date(1e3*c).toISOString():null},seven_day:{utilization:u??null,resets_at:void 0!==p?new Date(1e3*p).toISOString():null},plan_type:f,source_path:e.filePath}}}return null}let k=n.default.join(s.default.homedir(),".gemini","tmp"),j=n.default.join(s.default.homedir(),".gemini","projects.json"),b=/^session-.+\.(jsonl|json)$/;async function I(e){return i.promises.readdir(e).catch(()=>[])}async function N(e){let t=[];for(let s of(await I(e))){let a=n.default.join(e,s,"chats");for(let e of(await I(a))){if(!b.test(e))continue;let r=n.default.join(a,e),o=await i.promises.stat(r).catch(()=>null);if(!o||!o.isFile())continue;let l=e.replace(/\.(jsonl|json)$/,"").split("-").pop()??e;t.push({filePath:r,slug:s,filenameId:l,format:e.endsWith(".jsonl")?"jsonl":"legacy-json",mtimeMs:o.mtimeMs,sizeBytes:o.size})}}return t}let x=null;async function S(){let e,t=await i.promises.stat(j).catch(()=>null);if(!t)return new Map;if(x&&x.mtimeMs===t.mtimeMs)return x.slugToCwd;let s=await i.promises.readFile(j,"utf8").catch(()=>"");try{e=JSON.parse(s)}catch{e={}}let n=new Map;for(let[t,i]of Object.entries(e.projects??{}))"string"==typeof i&&n.set(i,t);return x={mtimeMs:t.mtimeMs,slugToCwd:n},n}function T(e){return!!e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.type}async function A(e){let t=await i.promises.readFile(e.filePath,"utf8");if("legacy-json"===e.format){let e;try{e=JSON.parse(t)}catch{return{meta:{},messages:[]}}return{meta:{sessionId:"string"==typeof e.sessionId?e.sessionId:void 0,projectHash:"string"==typeof e.projectHash?e.projectHash:void 0,startTime:"string"==typeof e.startTime?e.startTime:void 0,lastUpdated:"string"==typeof e.lastUpdated?e.lastUpdated:void 0,summary:"string"==typeof e.summary?e.summary:void 0},messages:(Array.isArray(e.messages)?e.messages:[]).filter(T)}}let s={},n=new Map,a=[];for(let e of t.split("\n")){let t,i=e.trim();if(i){var r,o;try{t=JSON.parse(i)}catch{continue}if((r=t)&&"object"==typeof r&&"$rewindTo"in r){let e=t.$rewindTo,i=a.indexOf(e);if(i>=0){for(let e of a.slice(i))n.delete(e);a.length=i}continue}if((o=t)&&"object"==typeof o&&"$set"in o){Object.assign(s,t.$set);continue}if(T(t)){n.has(t.id)||a.push(t.id),n.set(t.id,t);continue}if("object"==typeof t&&null!==t){let e=t;"string"!=typeof e.sessionId||s.sessionId||(s.sessionId=e.sessionId,"string"==typeof e.projectHash&&(s.projectHash=e.projectHash),"string"==typeof e.startTime&&(s.startTime=e.startTime),"string"==typeof e.lastUpdated&&(s.lastUpdated=e.lastUpdated),"string"==typeof e.summary&&(s.summary=e.summary))}}}let l=[];for(let e of a){let t=n.get(e);t&&l.push(t)}return{meta:s,messages:l}}function C(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function P(e){if(!e)return"";if("string"==typeof e)return e;let t=Array.isArray(e)?e:[e],i=[];for(let e of t){if(!e||"object"!=typeof e)continue;if("string"==typeof e.text){i.push(e.text);continue}let t=e.functionResponse;if(t){let e=t.response;"string"==typeof e?i.push(e):e&&"object"==typeof e&&("string"==typeof e.output?i.push(e.output):"string"==typeof e.error?i.push(`error: ${e.error}`):i.push(JSON.stringify(e)))}}return i.join("\n")}async function D(e){let t,i,s,n,a,r,{meta:u,messages:c}=await A(e),p=(await S()).get(e.slug),f=[],d={input:0,output:0,cacheRead:0,cacheWrite:0},m=0,g=0,y=[],h=0;function w(e){if(f.push(e),e.timestamp&&"meta"!==e.role){t||(t=e.timestamp),i=e.timestamp;let s=Date.parse(e.timestamp);Number.isFinite(s)&&y.push(s)}}for(let e of c){let t=e.timestamp;if("user"===e.type){let i=P(e.displayContent??e.content),s=C(i),r=(0,l.isFrameworkInjectedUserInput)(i);i&&!r&&(n||(n=s),a=s,g+=1),w({index:h++,timestamp:t,role:"user",rawType:"gemini/user",preview:s,blocks:i?[{type:"text",text:i}]:[],messageId:e.id,raw:e});continue}if("gemini"===e.type){let i;"string"==typeof e.model&&(s=e.model);let n=P(e.content),a=C(n);if(n&&(r=a),e.tokens){let t=e.tokens,s={input:t.input??0,output:t.output??0,cacheRead:t.cached??0,cacheWrite:0};i=s,d.input+=s.input,d.output+=s.output,d.cacheRead+=s.cacheRead}for(let i of e.thoughts??[]){let e=[i.subject,i.description].filter(Boolean).join(": ");e&&w({index:h++,timestamp:i.timestamp??t,role:"agent-thinking",rawType:"gemini/thought",preview:C(e),blocks:[{type:"thinking",thinking:e}],model:s,raw:i})}for(let r of(n?w({index:h++,timestamp:t,role:"agent",rawType:"gemini/agent",preview:a,blocks:[{type:"text",text:n}],messageId:e.id,model:s,usage:i,raw:e}):i&&w({index:h++,timestamp:t,role:"agent",rawType:"gemini/agent",preview:"",blocks:[],messageId:e.id,model:s,usage:i,raw:e}),e.toolCalls??[])){m+=1;let e=r.args?JSON.stringify(r.args):"";w({index:h++,timestamp:r.timestamp??t,role:"tool-call",rawType:"gemini/tool_call",preview:`${r.name}(${e.length<=80?e:e.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:r.id,name:r.name,input:r.args??{}}],toolName:r.name,toolUseId:r.id,model:s,raw:r});let i=(r.status??"").toLowerCase();if("success"===i||"error"===i||"cancelled"===i){let e=P(r.result);w({index:h++,timestamp:r.timestamp??t,role:"tool-result",rawType:"gemini/tool_result",preview:C(e),blocks:[{type:"tool_result",tool_use_id:r.id,content:e,is_error:"error"===i||"cancelled"===i}],toolUseId:r.id,toolResult:e,raw:r})}}continue}if("info"===e.type||"warning"===e.type||"error"===e.type){let i=P(e.content);w({index:h++,timestamp:t,role:"meta",rawType:`gemini/${e.type}`,preview:C(i),blocks:i?[{type:"text",text:i}]:[],raw:e});continue}}let M=t?Date.parse(t):void 0;if(void 0!==M&&Number.isFinite(M)){let e;for(let t of f){if(!t.timestamp)continue;let i=Date.parse(t.timestamp);Number.isFinite(i)&&(t.tOffsetMs=Math.max(0,i-M),void 0!==e&&(t.gapMs=Math.max(0,i-e)),e=i)}}let v=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],n=t[0];for(let e=1;e<t.length;e++)t[e]-n>18e4&&(i.push({startMs:s,endMs:n}),s=t[e]),n=t[e];return i.push({startMs:s,endMs:n}),i}(y),_=v.reduce((e,t)=>e+(t.endMs-t.startMs),0),k=t&&i?Date.parse(i)-Date.parse(t):void 0,j=u.sessionId??e.filenameId,b=p?(0,o.canonicalProjectName)(p):e.slug,I=p?p.replace(/^\//,"-").replace(/\//g,"-"):e.slug;return{meta:{agent:"gemini",id:j,filePath:e.filePath,projectName:b,projectDir:I,sessionId:j,firstTimestamp:t,lastTimestamp:i,durationMs:k&&Number.isFinite(k)?k:void 0,eventCount:f.length,model:s,cwd:p,totalUsage:d,status:"idle",firstUserPreview:n,lastUserPreview:a,lastAgentPreview:r,toolCallCount:m,turnCount:g,airTimeMs:_,activeSegments:v},events:f}}let $=new Map,O=new Map;async function z(e={}){let t=e.root??k,i=await N(t),s=[];for(let e of i){let t=$.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){s.push(t.meta);continue}try{let{meta:t}=await D(e);$.set(e.filePath,{meta:t,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),s.push(t)}catch{}}return(s.sort((e,t)=>(t.firstTimestamp??"").localeCompare(e.firstTimestamp??"")),void 0!==e.limit)?s.slice(0,e.limit):s}async function R(e,t={}){let i,s=t.root??k,n=await N(s);for(let t of n)if(t.filenameId===e||e.startsWith(t.filenameId)){i=t;break}if(!i)for(let t of n){let{meta:s}=await D(t).catch(()=>({meta:{id:""}}));if(s.id===e){i=t;break}}if(!i)return null;let a=O.get(i.filePath);if(a&&a.mtimeMs===i.mtimeMs&&a.sizeBytes===i.sizeBytes)return a.detail;let{meta:r,events:o}=await D(i),l={...r,events:o};return O.set(i.filePath,{detail:l,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes}),l}let B=n.default.join(s.default.homedir(),".gemini","antigravity-cli");async function E(e){return i.promises.readdir(e).catch(()=>[])}let F=null;async function U(e){let t=n.default.join(e,"history.jsonl"),s=await i.promises.stat(t).catch(()=>null);if(!s)return new Map;if(F&&F.mtimeMs===s.mtimeMs)return F.slugToCwd;let a=await i.promises.readFile(t,"utf8").catch(()=>""),r=new Map;for(let e of a.split("\n")){let t=e.trim();if(t)try{let e=JSON.parse(t);e.conversationId&&e.workspace&&r.set(e.conversationId,e.workspace)}catch{}}return F={mtimeMs:s.mtimeMs,slugToCwd:r},r}async function W(e){let t=await U(e),s=[],a=n.default.join(e,"brain");for(let e of(await E(a))){let r=n.default.join(a,e,".system_generated","logs","transcript.jsonl"),o=await i.promises.stat(r).catch(()=>null);o&&o.isFile()&&s.push({filePath:r,conversationId:e,cwd:t.get(e),mtimeMs:o.mtimeMs,sizeBytes:o.size})}return s}function J(e){return e.replace(/\s+/g," ").trim().slice(0,200)}async function L(e){let t,s,n,a,r,u,c=await i.promises.readFile(e.filePath,"utf8"),p=[],f=0,d=0,m=[],g=0;function y(e){if(p.push(e),e.timestamp&&"meta"!==e.role){t||(t=e.timestamp),s=e.timestamp;let i=Date.parse(e.timestamp);Number.isFinite(i)&&m.push(i)}}let h=[],w=[],M=new Map;for(let e of c.split("\n")){let t=e.trim();if(t)try{let e=JSON.parse(t),i=e.step_index;"number"==typeof i?M.has(i)?w[M.get(i)]=e:(M.set(i,w.length),w.push(e)):w.push(e)}catch{}}for(let e of w){let t=e.created_at||e.timestamp;if("USER_INPUT"===e.type){if("string"==typeof e.content){let t=e.content.match(/Model Selection` from .*? to (.*?)\.\s*No need to/);if(t){let e=t[1].trim();n=e=e.replace(/\s*\(.*?\)\s*$/,"").trim()}else{let t=e.content.match(/Model Selection` from .*? to ([^\n]+)/);if(t){let e=t[1].trim();e.endsWith(".")&&(e=e.slice(0,-1).trim()),n=e=e.replace(/\s*\(.*?\)\s*$/,"").trim()}}}let i=e.content||"",s=i.match(/<USER_REQUEST>([\s\S]*?)<\/USER_REQUEST>/);s&&(i=s[1].trim());let o=J(i),u=(0,l.isFrameworkInjectedUserInput)(i);i&&!u&&(a||(a=o),r=o,d+=1),y({index:g++,timestamp:t,role:"user",rawType:"antigravity/user",preview:o,blocks:i?[{type:"text",text:i}]:[],messageId:e.step_index?.toString(),raw:e});continue}if("PLANNER_RESPONSE"===e.type){let i=e.thinking,s=e.content;if(i&&y({index:g++,timestamp:t,role:"agent-thinking",rawType:"antigravity/thought",preview:J(i),blocks:[{type:"thinking",thinking:i}],model:n,raw:e}),s){let i=J(s);u=i,y({index:g++,timestamp:t,role:"agent",rawType:"antigravity/agent",preview:i,blocks:[{type:"text",text:s}],messageId:e.step_index?.toString(),model:n,raw:e})}let a=e.tool_calls||[];for(let i=0;i<a.length;i++){let s=a[i];f+=1;let r=`tool-${e.step_index}-${i}`,o=s.args?JSON.stringify(s.args):"";h.push({id:r,name:s.name}),y({index:g++,timestamp:t,role:"tool-call",rawType:"antigravity/tool_call",preview:`${s.name}(${o.length<=80?o:o.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:r,name:s.name,input:s.args||{}}],toolName:s.name,toolUseId:r,model:n,raw:s})}continue}if("MODEL"===e.source&&"PLANNER_RESPONSE"!==e.type&&"ERROR_MESSAGE"!==e.type&&h.length>0){let i=h.shift(),s=i?i.id:`tool-${e.step_index}-unknown`,n="string"==typeof e.content?e.content:JSON.stringify(e.content||""),a="ERROR"===e.status||"FAILED"===e.status||"CANCELED"===e.status||!!e.error;y({index:g++,timestamp:t,role:"tool-result",rawType:"antigravity/tool_result",preview:J(n),blocks:[{type:"tool_result",tool_use_id:s,content:n,is_error:a}],toolUseId:s,toolResult:n,raw:e});continue}let i=e.content||e.error||"";y({index:g++,timestamp:t,role:"meta",rawType:`antigravity/${e.type?.toLowerCase()||"unknown"}`,preview:J(i),blocks:i?[{type:"text",text:i}]:[],raw:e})}let v=t?Date.parse(t):void 0;if(void 0!==v&&Number.isFinite(v)){let e;for(let t of p){if(!t.timestamp)continue;let i=Date.parse(t.timestamp);Number.isFinite(i)&&(t.tOffsetMs=Math.max(0,i-v),void 0!==e&&(t.gapMs=Math.max(0,i-e)),e=i)}}let _=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],n=t[0];for(let e=1;e<t.length;e++)t[e]-n>18e4&&(i.push({startMs:s,endMs:n}),s=t[e]),n=t[e];return i.push({startMs:s,endMs:n}),i}(m),k=_.reduce((e,t)=>e+(t.endMs-t.startMs),0),j=t&&s?Date.parse(s)-Date.parse(t):void 0,b=e.conversationId,I=e.cwd,N=I?(0,o.canonicalProjectName)(I):e.conversationId,x=I?I.replace(/^\//,"-").replace(/\//g,"-"):e.conversationId;return{meta:{agent:"antigravity",id:b,filePath:e.filePath,projectName:N,projectDir:x,sessionId:b,firstTimestamp:t,lastTimestamp:s,durationMs:j&&Number.isFinite(j)?j:void 0,eventCount:p.length,model:n,cwd:I,totalUsage:{input:0,output:0,cacheRead:0,cacheWrite:0},status:"idle",firstUserPreview:a,lastUserPreview:r,lastAgentPreview:u,toolCallCount:f,turnCount:d,airTimeMs:k,activeSegments:_},events:p}}let q=new Map,G=new Map;async function H(e={}){let t=e.root??B,i=await W(t),s=[];for(let e of i){let t=q.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes&&t.cwd===e.cwd){s.push(t.meta);continue}try{let{meta:t}=await L(e);q.set(e.filePath,{meta:t,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes,cwd:e.cwd}),s.push(t)}catch{}}return(s.sort((e,t)=>(t.firstTimestamp??"").localeCompare(e.firstTimestamp??"")),void 0!==e.limit)?s.slice(0,e.limit):s}async function Y(e,t={}){let i,s=t.root??B;for(let t of(await W(s)))if(t.conversationId===e){i=t;break}if(!i)return null;let n=G.get(i.filePath);if(n&&n.mtimeMs===i.mtimeMs&&n.sizeBytes===i.sizeBytes&&n.cwd===i.cwd)return n.detail;let{meta:a,events:r}=await L(i),o={...a,events:r};return G.set(i.filePath,{detail:o,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes,cwd:i.cwd}),o}var K=e.i(34235);let Q=(t=s.default.homedir(),n.default.join(t,".config","Claude","local-agent-mode-sessions")),V=/^local_[0-9a-f-]+$/;async function X(e){return i.promises.readdir(e).catch(()=>[])}async function Z(e){let t=await i.promises.stat(e).catch(()=>null);return t?t.mtimeMs:0}async function ee(e){let t=[];for(let s of(await X(e))){let a=n.default.join(e,s);for(let e of(await X(a))){let s=n.default.join(a,e),r=await Z(n.default.join(s,"spaces.json"));for(let e of(await X(s))){if(!V.test(e))continue;let a=n.default.join(s,e,"audit.jsonl"),o=await i.promises.stat(a).catch(()=>null);if(!o||!o.isFile()||0===o.size)continue;let l=n.default.join(s,`${e}.json`),u=await Z(l);t.push({sessionId:e,auditPath:a,metaPath:l,workspaceDir:s,auditMtimeMs:o.mtimeMs,auditSize:o.size,metaMtimeMs:u,spacesMtimeMs:r})}}}return t}let et=new Map;async function ei(e){let t=n.default.join(e,"spaces.json"),s=await i.promises.stat(t).catch(()=>null);if(!s)return new Map;let a=et.get(e);if(a&&a.mtimeMs===s.mtimeMs)return a.spaceIdToPath;let r=await i.promises.readFile(t,"utf8").catch(()=>""),o=new Map;try{for(let e of JSON.parse(r).spaces??[]){let t="string"==typeof e.id?e.id:void 0,i=(Array.isArray(e.folders)?e.folders:[])[0],s="string"==typeof i?.path?i.path:void 0;t&&s&&o.set(t,s)}}catch{}return et.set(e,{mtimeMs:s.mtimeMs,spaceIdToPath:o}),o}async function es(e){let t=await i.promises.readFile(e,"utf8").catch(()=>"");if(!t)return{};try{let e=JSON.parse(t);return{spaceId:"string"==typeof e.spaceId?e.spaceId:void 0,userSelectedFolders:Array.isArray(e.userSelectedFolders)?e.userSelectedFolders.filter(e=>"string"==typeof e):void 0,cwd:"string"==typeof e.cwd?e.cwd:void 0,model:"string"==typeof e.model?e.model:void 0,title:"string"==typeof e.title?e.title:void 0,createdAt:"number"==typeof e.createdAt?e.createdAt:void 0,lastActivityAt:"number"==typeof e.lastActivityAt?e.lastActivityAt:void 0}}catch{return{}}}async function en(e){let t=await i.promises.readFile(e,"utf8"),s=[];for(let e of t.split("\n")){let t=e.trim();if(t)try{s.push(JSON.parse(t))}catch{}}return s}async function ea(e){let t,[i,s,n]=await Promise.all([en(e.auditPath),es(e.metaPath),ei(e.workspaceDir)]),{meta:a,events:r}=(0,K.parseTranscript)(i),{projectName:l,projectDir:u,cwd:c}=(s.spaceId&&(t=n.get(s.spaceId)),!t&&s.userSelectedFolders&&s.userSelectedFolders.length>0&&(t=s.userSelectedFolders[0]),t)?{projectName:(0,o.canonicalProjectName)(t),projectDir:t.replace(/^\//,"-").replace(/\//g,"-"),cwd:t}:{projectName:"cowork:unspaced",projectDir:"cowork-unspaced"};return{meta:{...a,agent:"cowork",id:e.sessionId,sessionId:e.sessionId,filePath:e.auditPath,projectName:l,projectDir:u,cwd:c??a.cwd,model:a.model??s.model},events:r}}function er(e){return{auditMtimeMs:e.auditMtimeMs,auditSize:e.auditSize,metaMtimeMs:e.metaMtimeMs,spacesMtimeMs:e.spacesMtimeMs}}function eo(e,t){return e.auditMtimeMs===t.auditMtimeMs&&e.auditSize===t.auditSize&&e.metaMtimeMs===t.metaMtimeMs&&e.spacesMtimeMs===t.spacesMtimeMs}let el=new Map,eu=new Map;async function ec(e={}){let t=e.root??Q,i=await ee(t),s=[];for(let e of i){let t=er(e),i=el.get(e.auditPath);if(i&&eo(i.key,t)){s.push(i.meta);continue}try{let{meta:i}=await ea(e);el.set(e.auditPath,{meta:i,key:t}),s.push(i)}catch{}}return(s.sort((e,t)=>(t.firstTimestamp??"").localeCompare(e.firstTimestamp??"")),void 0!==e.limit)?s.slice(0,e.limit):s}async function ep(e,t={}){let i=t.root??Q,s=(await ee(i)).find(t=>t.sessionId===e);if(!s)return null;let n=er(s),a=eu.get(s.auditPath);if(a&&eo(a.key,n))return a.detail;let{meta:r,events:o}=await ea(s),l={...r,events:o};return eu.set(s.auditPath,{detail:l,key:n}),l}function ef(){return process.env.CCLENS_HOME||n.default.join(s.default.homedir(),".cclens")}function ed(...e){return n.default.join(ef(),...e)}function em(e){(0,r.invalidateClaudeCodeFile)(e)}let eg={...a.CODEX_METADATA,defaultRoot:u,listSessions:async e=>M(e),getSession:async e=>v(e),async usagePoller(){let e=await _();return e?{captured_at:new Date().toISOString(),agent:"codex",five_hour:e.five_hour,seven_day:e.seven_day}:null}},ey={...a.GEMINI_METADATA,defaultRoot:k,listSessions:async e=>z(e),getSession:async e=>R(e)},eh={...a.ANTIGRAVITY_METADATA,defaultRoot:B,listSessions:async e=>H(e),getSession:async e=>Y(e)},ew={...a.COWORK_METADATA,defaultRoot:Q,listSessions:async e=>ec(e),getSession:async e=>ep(e)},eM=[r.claudeCodeSource,eg,ey,eh,ew];async function ev(e){for(let t of eM){let i=await t.getSession(e);if(i)return i}return null}}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_parser_dist_04rh1zd._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[39587,e=>{"use strict";let t={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=[t,i,s];n.map(e=>e.kind),e.s(["CLAUDE_CODE_METADATA",0,t,"CODEX_METADATA",0,i,"GEMINI_METADATA",0,s,"agentMetadata",0,n])},79357,e=>{"use strict";let t=["/.claude/worktrees/","/.worktrees/","/claude/worktrees/"],i=/\/conductor\/workspaces\/[^/]+\/([^/]+)(?:\/|$)/;e.s(["canonicalProjectName",0,function(e){let s=e.replace(/\/{2,}/g,"/"),n=function(e){for(let i of t){let t=e.lastIndexOf(i);if(t>=0)return{idx:t,marker:i}}return null}(s);if(n)return s.slice(0,n.idx);let a=function(e){let t=i.exec(e);if(!t)return null;let s=t[1],n=+!!t[0].endsWith("/");return{canonicalEndIdx:t.index+t[0].length-s.length-1-n,workspaceName:s}}(s);return a?s.slice(0,a.canonicalEndIdx):s},"computeBurstsFromSessions",0,function(e,t={}){let i=[];for(let t of e)t.activeSegments&&0!==t.activeSegments.length&&i.push({id:t.id,projectDir:t.projectDir,segments:t.activeSegments});return function(e,t){let i=t.minDurationMs??6e4,s=t.mergeGapMs??6e5,n=t.minActive??2,a=[];for(let t of e)for(let e of t.segments)e.endMs<=e.startMs||(a.push({ms:e.startMs,delta:1,sessionId:t.id}),a.push({ms:e.endMs,delta:-1,sessionId:t.id}));a.sort((e,t)=>e.ms-t.ms||t.delta-e.delta);let r=new Map,o=[],l=null;for(let e of a){if(1===e.delta)r.set(e.sessionId,(r.get(e.sessionId)??0)+1);else{let t=(r.get(e.sessionId)??0)-1;t<=0?r.delete(e.sessionId):r.set(e.sessionId,t)}let t=r.size;if(t>=n)if(l)for(let i of(l.endMs=e.ms,t>l.peak&&(l.peak=t),r.keys()))l.sessionIds.add(i);else l={startMs:e.ms,endMs:e.ms,peak:t,sessionIds:new Set(r.keys())};else l&&(l.endMs=e.ms,o.push(l),l=null)}l&&o.push(l);let u=o.filter(e=>e.endMs-e.startMs>=i),p=[];for(let e of u){let t=p[p.length-1];if(t&&e.startMs-t.endMs<=s)for(let i of(t.endMs=e.endMs,e.peak>t.peak&&(t.peak=e.peak),e.sessionIds))t.sessionIds.add(i);else p.push({startMs:e.startMs,endMs:e.endMs,peak:e.peak,sessionIds:new Set(e.sessionIds)})}let c=new Map;for(let t of e)c.set(t.id,t.projectDir);return p.map(e=>{let t=Array.from(new Set(Array.from(e.sessionIds).map(e=>c.get(e)).filter(e=>!!e)));return{startMs:e.startMs,endMs:e.endMs,peak:e.peak,sessionIds:Array.from(e.sessionIds),projectDirs:t,crossProject:t.length>1}})}(i,t)},"toLocalDay",0,function(e){let t=new Date(e),i=t.getFullYear(),s=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0");return`${i}-${s}-${n}`}])},20629,36521,e=>{"use strict";var t=e.i(2157),i=e.i(60526),s=e.i(50227);let n=[/<system_instruction\b[^>]*>[\s\S]*?<\/system_instruction>\s*/gi],a=["<command-name>","<local-command-stdout>","<local-command-caveat>","<task-notification>","Base directory for this skill:"];function r(e){if(!e)return e;let t=e;for(let e of n)t=t.replace(e,"");return t.trim()}function o(e){if(!e)return!1;let t=r(e);if(!t)return!0;for(let e of a)if(t.startsWith(e))return!0;return!1}e.s(["isFrameworkInjectedUserInput",0,o,"stripFrameworkBoilerplate",0,r],36521);let l={input:0,output:0,cacheRead:0,cacheWrite:0};function u(e,t=200){let i=e.replace(/<[^>]+>/g,"").replace(/\s+/g," ").trim();return i.length>t?i.slice(0,t-1)+"…":i}let p=/^\s*<teammate-message\s+teammate_id="([^"]+)"[^>]*>([\s\S]*?)<\/teammate-message>/;function c(e){let t=e.match(p);if(!t)return;let i=t[1],s=t[2].trim(),n="message";if(s.startsWith("{"))try{let e=JSON.parse(s);"idle_notification"===e.type?n="idle-notification":"shutdown_request"===e.type?n="shutdown-request":"shutdown_approved"===e.type?n="shutdown-approved":"task_assignment"===e.type?n="task-assignment":"teammate_terminated"===e.type&&(n="teammate-terminated")}catch{}return{teammateId:i,body:s,kind:n}}function m(e){if(!e||"object"!=typeof e)return;let t=e=>"number"==typeof e?e:0;return{input:t(e.input_tokens),output:t(e.output_tokens),cacheRead:t(e.cache_read_input_tokens),cacheWrite:t(e.cache_creation_input_tokens)}}function f(e){let t,i,s,n,a,p,f,d,g,y=[];for(let t=0;t<e.length;t++){let i=function(e,t){if(!e||"object"!=typeof e)return null;let i=String(e.type??""),s=e.uuid,n=e.parentUuid??null,a=e.timestamp;if("assistant"===i){let r,o,l,p=e.message??{},c=p.content??[],f=m(p.usage),d=p.model,g=e.requestId,y=p.id,h=p.stop_reason,w=c[0],M="agent";return w?.type==="thinking"?(M="agent-thinking",r="[thinking] "+u(w.thinking,140)):w?.type==="tool_use"?(M="tool-call",o=w.name,l=w.id,r=`${w.name} `+u(JSON.stringify(w.input??{}),100)):r=w?.type==="text"?u(w.text,200):`<assistant:${w?.type??"empty"}>`,{index:t,uuid:s,parentUuid:n,timestamp:a,role:M,rawType:i,preview:r,blocks:c,usage:f,model:d,requestId:g,messageId:y,stopReason:h,toolName:o,toolUseId:l,raw:e}}if("user"===i){let o=(e.message??{}).content;if("string"==typeof o){let l=r(o),p=c(l);return{index:t,uuid:s,parentUuid:n,timestamp:a,role:"user",rawType:i,preview:u(l,200),blocks:l?[{type:"text",text:l}]:[],raw:e,teammateMessage:p}}if(Array.isArray(o)){let l=o[0];if(l?.type==="tool_result")return{index:t,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:o,toolUseId:l.tool_use_id,toolResult:e.toolUseResult,raw:e};let p=o.find(e=>e?.type==="text"),m=p?r(p.text):"",f=p?o.map(e=>e===p?{type:"text",text:m}:e):o,d=m?c(m):void 0;return{index:t,uuid:s,parentUuid:n,timestamp:a,role:"user",rawType:i,preview:m?u(m,200):u(JSON.stringify(o),200),blocks:f,raw:e,teammateMessage:d}}}if("attachment"===i){let r=e.attachment??{},o=String(r.type??"attachment"),l=`<attachment: ${o}>`;return"string"==typeof r.content&&r.content.length>0?l=`[${o}] `+u(r.content,140):Array.isArray(r.addedNames)&&(l=`[${o}] +${r.addedNames.length} names`),{index:t,uuid:s,parentUuid:n,timestamp:a,role:"system",rawType:i,preview:l,blocks:[{type:"text",text:JSON.stringify(r,null,2)}],attachmentType:o,raw:e}}return{index:t,uuid:s,parentUuid:n,timestamp:a,role:"meta",rawType:i||"unknown",preview:`${i}: ${u(JSON.stringify(e),140)}`,blocks:[{type:"text",text:JSON.stringify(e,null,2)}],raw:e}}(e[t],t);i&&y.push(i)}let h=y.map(e=>e.timestamp?Date.parse(e.timestamp):void 0).filter(e=>"number"==typeof e&&!Number.isNaN(e)),w=h.length?Math.min(...h):void 0,M=h.length?Math.max(...h):void 0,v=void 0!==w?new Date(w).toISOString():void 0,_=void 0!==M?new Date(M).toISOString():void 0;for(let e of y){if(!e.timestamp)continue;let t=Date.parse(e.timestamp);Number.isNaN(t)||void 0!==w&&(e.tOffsetMs=Math.max(0,t-w))}let k=y.filter(e=>{let t;return e.timestamp&&("user"===(t=e.role)||"agent"===t||"agent-thinking"===t||"tool-call"===t||"tool-result"===t)}).map(e=>({e,ms:Date.parse(e.timestamp)})).filter(e=>!Number.isNaN(e.ms)).sort((e,t)=>e.ms-t.ms);for(let e=1;e<k.length;e++)k[e].e.gapMs=Math.max(0,k[e].ms-k[e-1].ms);let j=y.filter(e=>e.timestamp).map(e=>Date.parse(e.timestamp)).filter(e=>!Number.isNaN(e)).sort((e,t)=>e-t),b=[],I=0;if(j.length>0){let e=j[0],t=j[0];for(let i=1;i<j.length;i++){let s=j[i],n=s-t;n>18e4?(b.push({startMs:e,endMs:t}),e=s):n>0&&(I+=n),t=s}b.push({startMs:e,endMs:t})}let x=new Map,N=[];for(let e of y){if(!e.timestamp)continue;let t=Date.parse(e.timestamp);if(!Number.isNaN(t)){if("assistant"===e.rawType&&e.usage&&e.messageId){let i=x.get(e.messageId);i?(i.siblings.push(e),t<i.ms&&(i.rep=e,i.ms=t)):x.set(e.messageId,{rep:e,ms:t,siblings:[e]})}else if("system"===e.rawType){let i=e.raw;if(i?.subtype!=="compact_boundary")continue;let s=i.compactMetadata??{};N.push({ms:t,trigger:"manual"===s.trigger?"manual":"auto",preTokens:"number"==typeof s.preTokens?s.preTokens:0})}}}let T=[...x.values()].sort((e,t)=>e.ms-t.ms);N.sort((e,t)=>e.ms-t.ms);let S=0,D=0,P=(e,t)=>{for(let i of e.siblings)i.coldResume=t;S++,D+=t.writeTokens},A=new Set;for(let e of N){let t,i=T.find(t=>t.ms>e.ms&&(t.rep.usage?.cacheWrite??0)>=1e3);if(!i)continue;for(let i=T.length-1;i>=0;i--)if(T[i].ms<=e.ms){t=T[i].ms;break}let s=i.rep.usage,n=s.cacheWrite+s.cacheRead;P(i,{trigger:"compact",gapMs:void 0!==t?i.ms-t:0,writeTokens:s.cacheWrite,writeRatio:n>0?s.cacheWrite/n:0,compact:{trigger:e.trigger,preTokens:e.preTokens}}),A.add(i.rep.messageId)}for(let e=1;e<T.length;e++){let t=T[e-1],i=T[e];if(A.has(i.rep.messageId))continue;let s=i.rep.usage,n=s.cacheWrite+s.cacheRead,a=n>0?s.cacheWrite/n:0,r=i.ms-t.ms;r>3e5&&s.cacheWrite>=1e3&&a>=.3&&P(i,{trigger:"idle",gapMs:r,writeTokens:s.cacheWrite,writeRatio:a})}let C={...l},$=new Set,B="",z=!1,O=!1,U=0,W=0,R=0,F=0,E=new Set;for(let e of y){if("tool-call"===e.role){U++;let t=e.blocks.find(e=>e&&"tool_use"===e.type);if(t){let e=t.input??{};if("TeamCreate"===t.name&&(z=!0),"SendMessage"===t.name){let t="string"==typeof e.to?e.to:"";t&&"team-lead"!==t&&(O=!0)}let i="string"==typeof e.file_path?e.file_path:void 0;if("Edit"===t.name&&i){E.add(i);let t="string"==typeof e.old_string?e.old_string:"",s="string"==typeof e.new_string?e.new_string:"",n=t?t.split("\n").length:0,a=s?s.split("\n").length:0;R+=Math.max(0,a-n),F+=Math.max(0,n-a)}else if("Write"===t.name&&i){E.add(i);let t="string"==typeof e.content?e.content:"";R+=t?t.split("\n").length:0}}}if("user"===e.role){let t=o(function(e){let t=e?.content;if("string"==typeof t)return t;if(Array.isArray(t)){for(let e of t)if(e&&"object"==typeof e&&"text"===e.type&&"string"==typeof e.text)return e.text}return""}(e.raw?.message)),i=void 0!==e.teammateMessage&&!p;t||i||(f||(f=e.teammateMessage?e.teammateMessage.body:e.preview),W++,g=e.preview)}"agent"===e.role&&(d=e.preview)}for(let r of e)if(r&&"object"==typeof r&&("string"!=typeof r.sessionId||B||(B=r.sessionId),"string"!=typeof r.cwd||i||(i=r.cwd),"string"!=typeof r.gitBranch||s||(s=r.gitBranch),"string"!=typeof r.entrypoint||n||(n=r.entrypoint),"string"!=typeof r.teamName||a||(a=r.teamName),"string"!=typeof r.agentName||p||(p=r.agentName),"assistant"===r.type)){let e=r.message;if(e){"string"!=typeof e.model||t||(t=e.model);let i="string"==typeof e.id?e.id:void 0,s="string"==typeof r.requestId?r.requestId:void 0,n=null!=i?`${i}:${s??""}`:void 0;if(n&&$.has(n))continue;n&&$.add(n);let a=m(e.usage);a&&(C.input+=a.input,C.output+=a.output,C.cacheRead+=a.cacheRead,C.cacheWrite+=a.cacheWrite)}}return{events:y,meta:{sessionId:B,firstTimestamp:v,lastTimestamp:_,durationMs:void 0!==w&&void 0!==M?M-w:void 0,eventCount:y.length,model:t,cwd:i,gitBranch:s,entrypoint:n,totalUsage:C,status:"idle",firstUserPreview:f,lastUserPreview:g,lastAgentPreview:d,toolCallCount:U,turnCount:W,airTimeMs:I,activeSegments:b,linesAdded:R,linesRemoved:F,filesEdited:E.size,coldResumeCount:S,cacheRebuildTokens:D,teamName:a,agentName:p,isTeamLead:void 0!==a&&void 0===p&&(z||O)}}}var d=e.i(39587);let g=s.default.join(i.default.homedir(),".claude","projects");function y(e){return e.startsWith("-")?"/"+e.slice(1).replace(/-/g,"/"):e}let h=s.default.join(i.default.homedir(),".cclens","runtime").replace(/[/.]/g,"-");async function w(e){let i=await t.promises.readFile(e,"utf8"),s=[];for(let e of i.split("\n")){let t=e.trim();if(t)try{s.push(JSON.parse(t))}catch{}}return s}function M(e){return e.replace(/\.jsonl$/i,"")}let v=new Map,_=new Map,k=new Map,j=null;async function b(e=g){let i;if(j&&j.root===e&&Date.now()-j.capturedAtMs<1e3)return j.files;try{i=await t.promises.readdir(e,{withFileTypes:!0})}catch{return[]}let n=i.filter(e=>e.isDirectory()&&e.name!==h).map(e=>e.name),a=(await Promise.all(n.map(async i=>{let n,a=s.default.join(e,i);try{n=await t.promises.readdir(a)}catch{return[]}let r=n.filter(e=>e.endsWith(".jsonl"));return(await Promise.all(r.map(async e=>{let n=s.default.join(a,e);try{let s=await t.promises.stat(n);return{projectDir:i,fileName:e,fullPath:n,mtimeMs:s.mtimeMs,sizeBytes:s.size}}catch{return null}}))).filter(e=>null!==e)}))).flat();return j={files:a,capturedAtMs:Date.now(),root:e},a}let I={input:0,output:0,cacheRead:0,cacheWrite:0};function x(e,t,i){for(let s of e){if(!s||"object"!=typeof s||"assistant"!==s.type)continue;let e=s.message;if(!e)continue;let n="string"==typeof e.id?e.id:void 0,a="string"==typeof s.requestId?s.requestId:void 0,r=null!=n&&null!=a?`${n}:${a}`:void 0;if(r&&t.has(r))continue;r&&t.add(r);let o=e.usage;if(o){let e=e=>"number"==typeof e?e:0;i.input+=e(o.input_tokens),i.output+=e(o.output_tokens),i.cacheRead+=e(o.cache_read_input_tokens),i.cacheWrite+=e(o.cache_creation_input_tokens)}}}async function N(e,i,n){let a,r={...I},o=new Set;x(e,o,r);let l=s.default.join(i,n,"subagents");try{a=await t.promises.readdir(l)}catch{return r}let u=a.filter(e=>e.endsWith(".jsonl"));return 0===u.length||await Promise.all(u.map(async e=>{try{let t=await w(s.default.join(l,e));x(t,o,r)}catch{}})),r}async function T(e){let t=v.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.meta;try{let t=await w(e.fullPath),{meta:i}=f(t),n=M(e.fileName),a=s.default.dirname(e.fullPath);i.totalUsage=await N(t,a,n);let r={...i,id:n,filePath:e.fullPath,projectDir:e.projectDir,projectName:i.cwd??y(e.projectDir)};return v.set(e.fullPath,{meta:r,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),r}catch{return null}}async function S(e){let t=_.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.detail;try{let t=await w(e.fullPath),{meta:i,events:s}=f(t),n={...i,id:M(e.fileName),filePath:e.fullPath,projectDir:e.projectDir,projectName:i.cwd??y(e.projectDir),events:s};_.set(e.fullPath,{detail:n,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes});let a={...n};return delete a.events,v.set(e.fullPath,{meta:a,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),n}catch{return null}}async function D(e={}){let{root:t=g,limit:i=500,projectDir:s}=e,n=await b(t);s&&(n=n.filter(e=>e.projectDir===s)),n.sort((e,t)=>t.mtimeMs-e.mtimeMs);let a=n.slice(0,i);return(await Promise.all(a.map(e=>T(e)))).filter(e=>null!==e)}async function P(e,t={}){let{root:i=g}=t,n=(await b(i)).find(t=>M(t.fileName)===e);if(!n)return null;let a=await S(n);if(!a)return a;let r=a.firstTimestamp?Date.parse(a.firstTimestamp):void 0,o=s.default.join(s.default.dirname(n.fullPath),M(n.fileName),"subagents"),l=await A(o,r,a.events);return{...a,subagents:l}}async function A(e,i,n){let a;try{a=await t.promises.readdir(e)}catch{return[]}let r=new Map,o=[];for(let e of n)if("tool-call"===e.role&&"Agent"===e.toolName)for(let t of e.blocks){if(t?.type!=="tool_use"||"Agent"!==t.name)continue;let i=t.input??{},s="string"==typeof i.description?i.description:void 0,n=e.timestamp?Date.parse(e.timestamp):void 0,a={toolUseId:t.id,parentUuid:e.uuid??"",runInBackground:!0===i.run_in_background,prompt:"string"==typeof i.prompt?i.prompt:void 0,tsMs:n};s&&r.set(s,a),void 0!==n&&o.push(a)}o.sort((e,t)=>(e.tsMs??0)-(t.tsMs??0));let l=a.filter(e=>e.startsWith("agent-")&&e.endsWith(".jsonl"));return(await Promise.all(l.map(async n=>{let a,l=n.replace(/^agent-/,"").replace(/\.jsonl$/,""),u=s.default.join(e,n),p=s.default.join(e,`agent-${l}.meta.json`),c={};try{let e=await t.promises.readFile(p,"utf8");c=JSON.parse(e)}catch{}try{a=await w(u)}catch{return null}let m=function(e){let t,i,s,n,a,r={...I},o=new Set,l=0,u=0,p=0,c=new Map;for(let m of e){if(!m||"object"!=typeof m)continue;l++;let e="string"==typeof m.timestamp?Date.parse(m.timestamp):NaN;if(!Number.isNaN(e)&&((void 0===t||e<t)&&(t=e),(void 0===i||e>i)&&(i=e)),void 0===a&&"user"===m.type&&(null===m.parentUuid||void 0===m.parentUuid)){let e=m.message,t=e?.content;if("string"==typeof t)a=t;else if(Array.isArray(t)){let e=t.find(e=>e&&"object"==typeof e&&"text"===e.type);e?.text&&(a=e.text)}}if("assistant"===m.type){let e=m.message;if(!e)continue;n||"string"!=typeof e.model||(n=e.model);let t="string"==typeof e.id?e.id:void 0,i="string"==typeof m.requestId?m.requestId:void 0,a=null!=t&&null!=i?`${t}:${i}`:void 0,l=!a||!o.has(a);if(a&&l&&o.add(a),l){u++;let t=e.usage;if(t){let e=e=>"number"==typeof e?e:0;r.input+=e(t.input_tokens),r.output+=e(t.output_tokens),r.cacheRead+=e(t.cache_read_input_tokens),r.cacheWrite+=e(t.cache_creation_input_tokens)}}let f=e.content;if(Array.isArray(f))for(let e of f)e&&"object"==typeof e&&("text"===e.type&&"string"==typeof e.text?s=e.text:"tool_use"===e.type&&"string"==typeof e.name&&(p++,c.set(e.name,(c.get(e.name)??0)+1)))}}let m=Array.from(c.entries()).map(([e,t])=>({name:e,count:t})).sort((e,t)=>t.count-e.count);return{startMs:t,endMs:i,totalUsage:r,eventCount:l,finalPreview:void 0!==s?s.replace(/\s+/g," ").trim().slice(0,240):void 0,finalText:s,model:n,toolCalls:m,toolCallCount:p,assistantMessageCount:u,initialPrompt:a}}(a),f=c.description&&c.description.trim().length>0?c.description:void 0,d=f?r.get(f):function(e){let t;if(void 0===e)return;let i=1/0;for(let s of o){if(void 0===s.tsMs)continue;let n=Math.abs(e-s.tsMs);n<i&&n<=2e3&&(t=s,i=n)}return t}(m.startMs),g=f??(m.initialPrompt?m.initialPrompt.replace(/\s+/g," ").trim().slice(0,80):"(no description)"),y=d?.prompt??m.initialPrompt,h=void 0!==i&&void 0!==m.startMs?Math.max(0,m.startMs-i):void 0,M=void 0!==i&&void 0!==m.endMs?Math.max(0,m.endMs-i):void 0,v=void 0!==m.startMs&&void 0!==m.endMs?m.endMs-m.startMs:void 0;return{agentId:l,agentType:c.agentType??"unknown",description:g,startMs:m.startMs,endMs:m.endMs,durationMs:v,startTOffsetMs:h,endTOffsetMs:M,eventCount:m.eventCount,totalUsage:m.totalUsage,parentUuid:d?.parentUuid,parentToolUseId:d?.toolUseId,runInBackground:d?.runInBackground,prompt:y,finalPreview:m.finalPreview,finalText:m.finalText,model:m.model,toolCalls:m.toolCalls,toolCallCount:m.toolCallCount,assistantMessageCount:m.assistantMessageCount}}))).filter(e=>null!==e).sort((e,t)=>(e.startMs??0)-(t.startMs??0))}let C={...d.CLAUDE_CODE_METADATA,defaultRoot:g,async listSessions(e){let t=await D(e);for(let e of t)e.agent||(e.agent="claude-code");return t},async getSession(e,t){let i=await P(e,t);return i&&!i.agent&&(i.agent="claude-code"),i}};e.s(["DEFAULT_ROOT",0,g,"claudeCodeSource",0,C,"getSession",0,P,"invalidateClaudeCodeFile",0,function(e){v.delete(e),_.delete(e),k.delete(e),j=null},"listSessions",0,D],20629)},43427,e=>{"use strict";e.s(["cclensHome",()=>O,"cclensPath",()=>U,"getAnySession",()=>J,"invalidateFile",()=>W],43427);var t=e.i(2157),i=e.i(60526),s=e.i(50227),n=e.i(39587),a=e.i(20629),r=e.i(79357),o=e.i(36521);let l=s.default.join(i.default.homedir(),".codex","sessions"),u=/^rollout-(\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2})-([0-9a-f-]+)\.jsonl$/;async function p(e){return t.promises.readdir(e).catch(()=>[])}async function c(e){let i=[];for(let n of(await p(e))){if(!/^\d{4}$/.test(n))continue;let a=s.default.join(e,n);for(let e of(await p(a))){if(!/^\d{2}$/.test(e))continue;let n=s.default.join(a,e);for(let e of(await p(n))){if(!/^\d{2}$/.test(e))continue;let a=s.default.join(n,e);for(let e of(await p(a))){let n=u.exec(e);if(!n)continue;let r=s.default.join(a,e),o=await t.promises.stat(r).catch(()=>null);o&&i.push({filePath:r,sessionId:n[2],mtimeMs:o.mtimeMs,sizeBytes:o.size})}}}}return i}async function m(e){let i=await t.promises.readFile(e,"utf8"),s=[];for(let e of i.split("\n")){let t=e.trim();if(t)try{s.push(JSON.parse(t))}catch{}}return s}function f(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function d(e,t){let i,s,n,a,l,u,p,c=[],m={input:0,output:0,cacheRead:0,cacheWrite:0},d=0,y=0,h=[],w=0;for(let e of t){if("object"!=typeof e||null===e)continue;let t="string"==typeof e.timestamp?e.timestamp:void 0;if(t){i||(i=t),s=t;let e=Date.parse(t);Number.isFinite(e)&&h.push(e)}let r="string"==typeof e.type?e.type:"",v=e.payload??{},_="string"==typeof v.type?v.type:"";if("session_meta"===r){"string"==typeof v.cwd&&(n=v.cwd);continue}if("turn_context"===r){"string"==typeof v.cwd&&(n=v.cwd),"string"==typeof v.model&&(a=v.model);continue}if("event_msg"===r&&"token_count"===_){let e=v.info??null,t=e?.total_token_usage??null;t&&(m.input=g(t.input_tokens)??m.input,m.output=g(t.output_tokens)??m.output,m.cacheRead=g(t.cached_input_tokens)??m.cacheRead);continue}if("event_msg"===r&&"user_message"===_){let i="string"==typeof v.message?v.message:"",s=f(i),n=(0,o.isFrameworkInjectedUserInput)(i);i&&!n&&(l||(l=s),u=s,y+=1),c.push({index:w++,timestamp:t,role:"user",rawType:"event_msg/user_message",preview:s,blocks:i?[{type:"text",text:i}]:[],raw:e});continue}if("event_msg"===r&&"agent_message"===_){let i="string"==typeof v.message?v.message:"",s=f(i);i&&(p=s),c.push({index:w++,timestamp:t,role:"agent",rawType:"event_msg/agent_message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:a,raw:e});continue}if("response_item"===r&&"reasoning"===_){let i=(v.summary??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim();c.push({index:w++,timestamp:t,role:"agent-thinking",rawType:"response_item/reasoning",preview:f(i),blocks:i?[{type:"thinking",thinking:i}]:[],model:a,raw:e});continue}if("response_item"===r&&"message"===_&&"assistant"===v.role){let i=(v.content??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim(),s=f(i);i&&(p=s),c.push({index:w++,timestamp:t,role:"agent",rawType:"response_item/message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:a,raw:e});continue}if("response_item"===r&&"function_call"===_){var M;let i="string"==typeof v.name?v.name:"(unknown)",s="string"==typeof v.call_id?v.call_id:void 0,n="string"==typeof v.arguments?v.arguments:"",r=function(e){if(!e)return null;try{return JSON.parse(e)}catch{return e}}(n);d+=1,c.push({index:w++,timestamp:t,role:"tool-call",rawType:"response_item/function_call",preview:`${i}(${(M=n).length<=80?M:M.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:s??`codex-${w}`,name:i,input:r}],toolName:i,toolUseId:s,model:a,raw:e});continue}if("response_item"===r&&"function_call_output"===_){let i="string"==typeof v.call_id?v.call_id:void 0,s="string"==typeof v.output?v.output:"",n=/process exited with code [1-9]/i.test(s);c.push({index:w++,timestamp:t,role:"tool-result",rawType:"response_item/function_call_output",preview:f(s),blocks:[{type:"tool_result",tool_use_id:i??"",content:s,is_error:n}],toolUseId:i,toolResult:s,raw:e});continue}c.push({index:w++,timestamp:t,role:"meta",rawType:_?`${r}/${_}`:r,preview:"",blocks:[],raw:e})}if(m.input>0||m.output>0){let t=-1;for(let e=c.length-1;e>=0;e--){let i=c[e].role;if("agent"===i||"agent-thinking"===i||"tool-call"===i){t=e;break}}if(t>=0){let i=c[t];i.messageId=`codex-${e.sessionId}-total`,i.usage={input:m.input,output:m.output,cacheRead:m.cacheRead,cacheWrite:0}}}let v=i?Date.parse(i):void 0;if(void 0!==v&&Number.isFinite(v)){let e;for(let t of c){if(!t.timestamp)continue;let i=Date.parse(t.timestamp);Number.isFinite(i)&&(t.tOffsetMs=Math.max(0,i-v),void 0!==e&&(t.gapMs=Math.max(0,i-e)),e=i)}}let _=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],n=t[0];for(let e=1;e<t.length;e++)t[e]-n>18e4&&(i.push({startMs:s,endMs:n}),s=t[e]),n=t[e];return i.push({startMs:s,endMs:n}),i}(h),k=_.reduce((e,t)=>e+(t.endMs-t.startMs),0),j=i&&s?Date.parse(s)-Date.parse(i):void 0,b=n?(0,r.canonicalProjectName)(n):"(unknown)",I=n?n.replace(/^\//,"-").replace(/\//g,"-"):"(unknown)";return{meta:{agent:"codex",id:e.sessionId,filePath:e.filePath,projectName:b,projectDir:I,sessionId:e.sessionId,firstTimestamp:i,lastTimestamp:s,durationMs:j&&Number.isFinite(j)?j:void 0,eventCount:c.length,model:a,cwd:n,totalUsage:m,status:"idle",firstUserPreview:l,lastUserPreview:u,lastAgentPreview:p,toolCallCount:d,turnCount:y,airTimeMs:k,activeSegments:_},events:c}}function g(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}let y=new Map,h=new Map;async function w(e={}){let t=e.root??l,i=await c(t),s=[];for(let e of i){let t=y.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){s.push(t.meta);continue}try{let t=await m(e.filePath),{meta:i}=d(e,t);y.set(e.filePath,{meta:i,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),s.push(i)}catch{}}return(s.sort((e,t)=>(t.firstTimestamp??"").localeCompare(e.firstTimestamp??"")),void 0!==e.limit)?s.slice(0,e.limit):s}async function M(e,t={}){let i=t.root??l,s=(await c(i)).find(t=>t.sessionId===e);if(!s)return null;let n=h.get(s.filePath);if(n&&n.mtimeMs===s.mtimeMs&&n.sizeBytes===s.sizeBytes)return n.detail;let a=await m(s.filePath),{meta:r,events:o}=d(s,a),u={...r,events:o};return h.set(s.filePath,{detail:u,mtimeMs:s.mtimeMs,sizeBytes:s.sizeBytes}),u}async function v(e={}){let t=e.root??l,i=await c(t);if(0===i.length)return null;for(let e of(i.sort((e,t)=>t.mtimeMs-e.mtimeMs),i)){let t=await m(e.filePath);for(let i=t.length-1;i>=0;i--){let s=t[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 r=a.primary??null,o=a.secondary??null,l=g(r?.used_percent),u=g(o?.used_percent),p=g(r?.resets_at),c=g(o?.resets_at),m="string"==typeof a.plan_type?a.plan_type:null;return{five_hour:{utilization:l??null,resets_at:void 0!==p?new Date(1e3*p).toISOString():null},seven_day:{utilization:u??null,resets_at:void 0!==c?new Date(1e3*c).toISOString():null},plan_type:m,source_path:e.filePath}}}return null}let _=s.default.join(i.default.homedir(),".gemini","tmp"),k=s.default.join(i.default.homedir(),".gemini","projects.json"),j=/^session-.+\.(jsonl|json)$/;async function b(e){return t.promises.readdir(e).catch(()=>[])}async function I(e){let i=[];for(let n of(await b(e))){let a=s.default.join(e,n,"chats");for(let e of(await b(a))){if(!j.test(e))continue;let r=s.default.join(a,e),o=await t.promises.stat(r).catch(()=>null);if(!o||!o.isFile())continue;let l=e.replace(/\.(jsonl|json)$/,"").split("-").pop()??e;i.push({filePath:r,slug:n,filenameId:l,format:e.endsWith(".jsonl")?"jsonl":"legacy-json",mtimeMs:o.mtimeMs,sizeBytes:o.size})}}return i}let x=null;async function N(){let e,i=await t.promises.stat(k).catch(()=>null);if(!i)return new Map;if(x&&x.mtimeMs===i.mtimeMs)return x.slugToCwd;let s=await t.promises.readFile(k,"utf8").catch(()=>"");try{e=JSON.parse(s)}catch{e={}}let n=new Map;for(let[t,i]of Object.entries(e.projects??{}))"string"==typeof i&&n.set(i,t);return x={mtimeMs:i.mtimeMs,slugToCwd:n},n}function T(e){return!!e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.type}async function S(e){let i=await t.promises.readFile(e.filePath,"utf8");if("legacy-json"===e.format){let e;try{e=JSON.parse(i)}catch{return{meta:{},messages:[]}}return{meta:{sessionId:"string"==typeof e.sessionId?e.sessionId:void 0,projectHash:"string"==typeof e.projectHash?e.projectHash:void 0,startTime:"string"==typeof e.startTime?e.startTime:void 0,lastUpdated:"string"==typeof e.lastUpdated?e.lastUpdated:void 0,summary:"string"==typeof e.summary?e.summary:void 0},messages:(Array.isArray(e.messages)?e.messages:[]).filter(T)}}let s={},n=new Map,a=[];for(let e of i.split("\n")){let t,i=e.trim();if(i){var r,o;try{t=JSON.parse(i)}catch{continue}if((r=t)&&"object"==typeof r&&"$rewindTo"in r){let e=t.$rewindTo,i=a.indexOf(e);if(i>=0){for(let e of a.slice(i))n.delete(e);a.length=i}continue}if((o=t)&&"object"==typeof o&&"$set"in o){Object.assign(s,t.$set);continue}if(T(t)){n.has(t.id)||a.push(t.id),n.set(t.id,t);continue}if("object"==typeof t&&null!==t){let e=t;"string"!=typeof e.sessionId||s.sessionId||(s.sessionId=e.sessionId,"string"==typeof e.projectHash&&(s.projectHash=e.projectHash),"string"==typeof e.startTime&&(s.startTime=e.startTime),"string"==typeof e.lastUpdated&&(s.lastUpdated=e.lastUpdated),"string"==typeof e.summary&&(s.summary=e.summary))}}}let l=[];for(let e of a){let t=n.get(e);t&&l.push(t)}return{meta:s,messages:l}}function D(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function P(e){if(!e)return"";if("string"==typeof e)return e;let t=Array.isArray(e)?e:[e],i=[];for(let e of t){if(!e||"object"!=typeof e)continue;if("string"==typeof e.text){i.push(e.text);continue}let t=e.functionResponse;if(t){let e=t.response;"string"==typeof e?i.push(e):e&&"object"==typeof e&&("string"==typeof e.output?i.push(e.output):"string"==typeof e.error?i.push(`error: ${e.error}`):i.push(JSON.stringify(e)))}}return i.join("\n")}async function A(e){let t,i,s,n,a,l,{meta:u,messages:p}=await S(e),c=(await N()).get(e.slug),m=[],f={input:0,output:0,cacheRead:0,cacheWrite:0},d=0,g=0,y=[],h=0;function w(e){if(m.push(e),e.timestamp&&"meta"!==e.role){t||(t=e.timestamp),i=e.timestamp;let s=Date.parse(e.timestamp);Number.isFinite(s)&&y.push(s)}}for(let e of p){let t=e.timestamp;if("user"===e.type){let i=P(e.displayContent??e.content),s=D(i),r=(0,o.isFrameworkInjectedUserInput)(i);i&&!r&&(n||(n=s),a=s,g+=1),w({index:h++,timestamp:t,role:"user",rawType:"gemini/user",preview:s,blocks:i?[{type:"text",text:i}]:[],messageId:e.id,raw:e});continue}if("gemini"===e.type){let i;"string"==typeof e.model&&(s=e.model);let n=P(e.content),a=D(n);if(n&&(l=a),e.tokens){let t=e.tokens,s={input:t.input??0,output:t.output??0,cacheRead:t.cached??0,cacheWrite:0};i=s,f.input+=s.input,f.output+=s.output,f.cacheRead+=s.cacheRead}for(let i of e.thoughts??[]){let e=[i.subject,i.description].filter(Boolean).join(": ");e&&w({index:h++,timestamp:i.timestamp??t,role:"agent-thinking",rawType:"gemini/thought",preview:D(e),blocks:[{type:"thinking",thinking:e}],model:s,raw:i})}for(let r of(n?w({index:h++,timestamp:t,role:"agent",rawType:"gemini/agent",preview:a,blocks:[{type:"text",text:n}],messageId:e.id,model:s,usage:i,raw:e}):i&&w({index:h++,timestamp:t,role:"agent",rawType:"gemini/agent",preview:"",blocks:[],messageId:e.id,model:s,usage:i,raw:e}),e.toolCalls??[])){d+=1;let e=r.args?JSON.stringify(r.args):"";w({index:h++,timestamp:r.timestamp??t,role:"tool-call",rawType:"gemini/tool_call",preview:`${r.name}(${e.length<=80?e:e.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:r.id,name:r.name,input:r.args??{}}],toolName:r.name,toolUseId:r.id,model:s,raw:r});let i=(r.status??"").toLowerCase();if("success"===i||"error"===i||"cancelled"===i){let e=P(r.result);w({index:h++,timestamp:r.timestamp??t,role:"tool-result",rawType:"gemini/tool_result",preview:D(e),blocks:[{type:"tool_result",tool_use_id:r.id,content:e,is_error:"error"===i||"cancelled"===i}],toolUseId:r.id,toolResult:e,raw:r})}}continue}if("info"===e.type||"warning"===e.type||"error"===e.type){let i=P(e.content);w({index:h++,timestamp:t,role:"meta",rawType:`gemini/${e.type}`,preview:D(i),blocks:i?[{type:"text",text:i}]:[],raw:e});continue}}let M=t?Date.parse(t):void 0;if(void 0!==M&&Number.isFinite(M)){let e;for(let t of m){if(!t.timestamp)continue;let i=Date.parse(t.timestamp);Number.isFinite(i)&&(t.tOffsetMs=Math.max(0,i-M),void 0!==e&&(t.gapMs=Math.max(0,i-e)),e=i)}}let v=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],n=t[0];for(let e=1;e<t.length;e++)t[e]-n>18e4&&(i.push({startMs:s,endMs:n}),s=t[e]),n=t[e];return i.push({startMs:s,endMs:n}),i}(y),_=v.reduce((e,t)=>e+(t.endMs-t.startMs),0),k=t&&i?Date.parse(i)-Date.parse(t):void 0,j=u.sessionId??e.filenameId,b=c?(0,r.canonicalProjectName)(c):e.slug,I=c?c.replace(/^\//,"-").replace(/\//g,"-"):e.slug;return{meta:{agent:"gemini",id:j,filePath:e.filePath,projectName:b,projectDir:I,sessionId:j,firstTimestamp:t,lastTimestamp:i,durationMs:k&&Number.isFinite(k)?k:void 0,eventCount:m.length,model:s,cwd:c,totalUsage:f,status:"idle",firstUserPreview:n,lastUserPreview:a,lastAgentPreview:l,toolCallCount:d,turnCount:g,airTimeMs:_,activeSegments:v},events:m}}let C=new Map,$=new Map;async function B(e={}){let t=e.root??_,i=await I(t),s=[];for(let e of i){let t=C.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){s.push(t.meta);continue}try{let{meta:t}=await A(e);C.set(e.filePath,{meta:t,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),s.push(t)}catch{}}return(s.sort((e,t)=>(t.firstTimestamp??"").localeCompare(e.firstTimestamp??"")),void 0!==e.limit)?s.slice(0,e.limit):s}async function z(e,t={}){let i,s=t.root??_,n=await I(s);for(let t of n)if(t.filenameId===e||e.startsWith(t.filenameId)){i=t;break}if(!i)for(let t of n){let{meta:s}=await A(t).catch(()=>({meta:{id:""}}));if(s.id===e){i=t;break}}if(!i)return null;let a=$.get(i.filePath);if(a&&a.mtimeMs===i.mtimeMs&&a.sizeBytes===i.sizeBytes)return a.detail;let{meta:r,events:o}=await A(i),l={...r,events:o};return $.set(i.filePath,{detail:l,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes}),l}function O(){return process.env.CCLENS_HOME||s.default.join(i.default.homedir(),".cclens")}function U(...e){return s.default.join(O(),...e)}function W(e){(0,a.invalidateClaudeCodeFile)(e)}let R={...n.CODEX_METADATA,defaultRoot:l,listSessions:async e=>w(e),getSession:async e=>M(e),async usagePoller(){let e=await v();return e?{captured_at:new Date().toISOString(),agent:"codex",five_hour:e.five_hour,seven_day:e.seven_day}:null}},F={...n.GEMINI_METADATA,defaultRoot:_,listSessions:async e=>B(e),getSession:async e=>z(e)},E=[a.claudeCodeSource,R,F];async function J(e){for(let t of E){let i=await t.getSession(e);if(i)return i}return null}}];
|
|
1
|
+
module.exports=[39587,e=>{"use strict";let t={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:"⌘"},r=[t,i,s,n,a];r.map(e=>e.kind),e.s(["ANTIGRAVITY_METADATA",0,n,"CLAUDE_CODE_METADATA",0,t,"CODEX_METADATA",0,i,"COWORK_METADATA",0,a,"GEMINI_METADATA",0,s,"agentMetadata",0,r])},79357,e=>{"use strict";let t=["/.claude/worktrees/","/.worktrees/","/claude/worktrees/"],i=/\/conductor\/workspaces\/[^/]+\/([^/]+)(?:\/|$)/,s="/.superset/worktrees/",n=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;e.s(["canonicalProjectName",0,function(e){let a=e.replace(/\/{2,}/g,"/"),r=function(e){for(let i of t){let t=e.lastIndexOf(i);if(t>=0)return{idx:t,marker:i}}return null}(a);if(r)return a.slice(0,r.idx);let o=function(e){let t=i.exec(e);if(!t)return null;let s=t[1],n=+!!t[0].endsWith("/");return{canonicalEndIdx:t.index+t[0].length-s.length-1-n,workspaceName:s}}(a);if(o)return a.slice(0,o.canonicalEndIdx);let l=function(e){let t=e.indexOf(s);if(t<0)return null;let i=e.slice(t+s.length).split("/").filter(Boolean);if(0===i.length)return null;let a=n.test(i[0])?i[1]??i[0]:i[0];return{canonical:e.slice(0,t)+s+a,workspaceName:a}}(a);return l?l.canonical:a},"computeBurstsFromSessions",0,function(e,t={}){let i=[];for(let t of e)t.activeSegments&&0!==t.activeSegments.length&&i.push({id:t.id,projectDir:t.projectDir,segments:t.activeSegments});return function(e,t){let i=t.minDurationMs??6e4,s=t.mergeGapMs??6e5,n=t.minActive??2,a=[];for(let t of e)for(let e of t.segments)e.endMs<=e.startMs||(a.push({ms:e.startMs,delta:1,sessionId:t.id}),a.push({ms:e.endMs,delta:-1,sessionId:t.id}));a.sort((e,t)=>e.ms-t.ms||t.delta-e.delta);let r=new Map,o=[],l=null;for(let e of a){if(1===e.delta)r.set(e.sessionId,(r.get(e.sessionId)??0)+1);else{let t=(r.get(e.sessionId)??0)-1;t<=0?r.delete(e.sessionId):r.set(e.sessionId,t)}let t=r.size;if(t>=n)if(l)for(let i of(l.endMs=e.ms,t>l.peak&&(l.peak=t),r.keys()))l.sessionIds.add(i);else l={startMs:e.ms,endMs:e.ms,peak:t,sessionIds:new Set(r.keys())};else l&&(l.endMs=e.ms,o.push(l),l=null)}l&&o.push(l);let u=o.filter(e=>e.endMs-e.startMs>=i),c=[];for(let e of u){let t=c[c.length-1];if(t&&e.startMs-t.endMs<=s)for(let i of(t.endMs=e.endMs,e.peak>t.peak&&(t.peak=e.peak),e.sessionIds))t.sessionIds.add(i);else c.push({startMs:e.startMs,endMs:e.endMs,peak:e.peak,sessionIds:new Set(e.sessionIds)})}let p=new Map;for(let t of e)p.set(t.id,t.projectDir);return c.map(e=>{let t=Array.from(new Set(Array.from(e.sessionIds).map(e=>p.get(e)).filter(e=>!!e)));return{startMs:e.startMs,endMs:e.endMs,peak:e.peak,sessionIds:Array.from(e.sessionIds),projectDirs:t,crossProject:t.length>1}})}(i,t)},"toLocalDay",0,function(e){let t=new Date(e),i=t.getFullYear(),s=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0");return`${i}-${s}-${n}`}])},20629,36521,34235,e=>{"use strict";var t=e.i(2157),i=e.i(60526),s=e.i(50227);let n=[/<system_instruction\b[^>]*>[\s\S]*?<\/system_instruction>\s*/gi],a=["<command-name>","<local-command-stdout>","<local-command-caveat>","<task-notification>","Base directory for this skill:"];function r(e){if(!e)return e;let t=e;for(let e of n)t=t.replace(e,"");return t.trim()}function o(e){if(!e)return!1;let t=r(e);if(!t)return!0;for(let e of a)if(t.startsWith(e))return!0;return!1}e.s(["isFrameworkInjectedUserInput",0,o,"stripFrameworkBoilerplate",0,r],36521);let l={input:0,output:0,cacheRead:0,cacheWrite:0};function u(e,t=200){let i=e.replace(/<[^>]+>/g,"").replace(/\s+/g," ").trim();return i.length>t?i.slice(0,t-1)+"…":i}let c=/^\s*<teammate-message\s+teammate_id="([^"]+)"[^>]*>([\s\S]*?)<\/teammate-message>/;function p(e){let t=e.match(c);if(!t)return;let i=t[1],s=t[2].trim(),n="message";if(s.startsWith("{"))try{let e=JSON.parse(s);"idle_notification"===e.type?n="idle-notification":"shutdown_request"===e.type?n="shutdown-request":"shutdown_approved"===e.type?n="shutdown-approved":"task_assignment"===e.type?n="task-assignment":"teammate_terminated"===e.type&&(n="teammate-terminated")}catch{}return{teammateId:i,body:s,kind:n}}function f(e){if(!e||"object"!=typeof e)return;let t=e=>"number"==typeof e?e:0;return{input:t(e.input_tokens),output:t(e.output_tokens),cacheRead:t(e.cache_read_input_tokens),cacheWrite:t(e.cache_creation_input_tokens)}}function d(e){let t,i,s,n,a,c,d,m,g,y=[];for(let t=0;t<e.length;t++){let i=function(e,t){if(!e||"object"!=typeof e)return null;let i=String(e.type??""),s=e.uuid,n=e.parentUuid??null,a=e.timestamp;if("assistant"===i){let r,o,l,c=e.message??{},p=c.content??[],d=f(c.usage),m=c.model,g=e.requestId,y=c.id,h=c.stop_reason,w=p[0],M="agent";return w?.type==="thinking"?(M="agent-thinking",r="[thinking] "+u(w.thinking,140)):w?.type==="tool_use"?(M="tool-call",o=w.name,l=w.id,r=`${w.name} `+u(JSON.stringify(w.input??{}),100)):r=w?.type==="text"?u(w.text,200):`<assistant:${w?.type??"empty"}>`,{index:t,uuid:s,parentUuid:n,timestamp:a,role:M,rawType:i,preview:r,blocks:p,usage:d,model:m,requestId:g,messageId:y,stopReason:h,toolName:o,toolUseId:l,raw:e}}if("user"===i){let o=(e.message??{}).content;if("string"==typeof o){let l=r(o),c=p(l);return{index:t,uuid:s,parentUuid:n,timestamp:a,role:"user",rawType:i,preview:u(l,200),blocks:l?[{type:"text",text:l}]:[],raw:e,teammateMessage:c}}if(Array.isArray(o)){let l=o[0];if(l?.type==="tool_result")return{index:t,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:o,toolUseId:l.tool_use_id,toolResult:e.toolUseResult,raw:e};let c=o.find(e=>e?.type==="text"),f=c?r(c.text):"",d=c?o.map(e=>e===c?{type:"text",text:f}:e):o,m=f?p(f):void 0;return{index:t,uuid:s,parentUuid:n,timestamp:a,role:"user",rawType:i,preview:f?u(f,200):u(JSON.stringify(o),200),blocks:d,raw:e,teammateMessage:m}}}if("attachment"===i){let r=e.attachment??{},o=String(r.type??"attachment"),l=`<attachment: ${o}>`;return"string"==typeof r.content&&r.content.length>0?l=`[${o}] `+u(r.content,140):Array.isArray(r.addedNames)&&(l=`[${o}] +${r.addedNames.length} names`),{index:t,uuid:s,parentUuid:n,timestamp:a,role:"system",rawType:i,preview:l,blocks:[{type:"text",text:JSON.stringify(r,null,2)}],attachmentType:o,raw:e}}return{index:t,uuid:s,parentUuid:n,timestamp:a,role:"meta",rawType:i||"unknown",preview:`${i}: ${u(JSON.stringify(e),140)}`,blocks:[{type:"text",text:JSON.stringify(e,null,2)}],raw:e}}(e[t],t);i&&y.push(i)}let h=y.map(e=>e.timestamp?Date.parse(e.timestamp):void 0).filter(e=>"number"==typeof e&&!Number.isNaN(e)),w=h.length?Math.min(...h):void 0,M=h.length?Math.max(...h):void 0,v=void 0!==w?new Date(w).toISOString():void 0,_=void 0!==M?new Date(M).toISOString():void 0;for(let e of y){if(!e.timestamp)continue;let t=Date.parse(e.timestamp);Number.isNaN(t)||void 0!==w&&(e.tOffsetMs=Math.max(0,t-w))}let k=y.filter(e=>{let t;return e.timestamp&&("user"===(t=e.role)||"agent"===t||"agent-thinking"===t||"tool-call"===t||"tool-result"===t)}).map(e=>({e,ms:Date.parse(e.timestamp)})).filter(e=>!Number.isNaN(e.ms)).sort((e,t)=>e.ms-t.ms);for(let e=1;e<k.length;e++)k[e].e.gapMs=Math.max(0,k[e].ms-k[e-1].ms);let j=y.filter(e=>e.timestamp).map(e=>Date.parse(e.timestamp)).filter(e=>!Number.isNaN(e)).sort((e,t)=>e-t),b=[],I=0;if(j.length>0){let e=j[0],t=j[0];for(let i=1;i<j.length;i++){let s=j[i],n=s-t;n>18e4?(b.push({startMs:e,endMs:t}),e=s):n>0&&(I+=n),t=s}b.push({startMs:e,endMs:t})}let N=new Map,x=[];for(let e of y){if(!e.timestamp)continue;let t=Date.parse(e.timestamp);if(!Number.isNaN(t)){if("assistant"===e.rawType&&e.usage&&e.messageId){let i=N.get(e.messageId);i?(i.siblings.push(e),t<i.ms&&(i.rep=e,i.ms=t)):N.set(e.messageId,{rep:e,ms:t,siblings:[e]})}else if("system"===e.rawType){let i=e.raw;if(i?.subtype!=="compact_boundary")continue;let s=i.compactMetadata??{};x.push({ms:t,trigger:"manual"===s.trigger?"manual":"auto",preTokens:"number"==typeof s.preTokens?s.preTokens:0})}}}let S=[...N.values()].sort((e,t)=>e.ms-t.ms);x.sort((e,t)=>e.ms-t.ms);let T=0,A=0,C=(e,t)=>{for(let i of e.siblings)i.coldResume=t;T++,A+=t.writeTokens},P=new Set;for(let e of x){let t,i=S.find(t=>t.ms>e.ms&&(t.rep.usage?.cacheWrite??0)>=1e3);if(!i)continue;for(let i=S.length-1;i>=0;i--)if(S[i].ms<=e.ms){t=S[i].ms;break}let s=i.rep.usage,n=s.cacheWrite+s.cacheRead;C(i,{trigger:"compact",gapMs:void 0!==t?i.ms-t:0,writeTokens:s.cacheWrite,writeRatio:n>0?s.cacheWrite/n:0,compact:{trigger:e.trigger,preTokens:e.preTokens}}),P.add(i.rep.messageId)}for(let e=1;e<S.length;e++){let t=S[e-1],i=S[e];if(P.has(i.rep.messageId))continue;let s=i.rep.usage,n=s.cacheWrite+s.cacheRead,a=n>0?s.cacheWrite/n:0,r=i.ms-t.ms;r>3e5&&s.cacheWrite>=1e3&&a>=.3&&C(i,{trigger:"idle",gapMs:r,writeTokens:s.cacheWrite,writeRatio:a})}let D={...l},$=new Set,O="",z=!1,R=!1,B=0,E=0,F=0,U=0,W=new Set;for(let e of y){if("tool-call"===e.role){B++;let t=e.blocks.find(e=>e&&"tool_use"===e.type);if(t){let e=t.input??{};if("TeamCreate"===t.name&&(z=!0),"SendMessage"===t.name){let t="string"==typeof e.to?e.to:"";t&&"team-lead"!==t&&(R=!0)}let i="string"==typeof e.file_path?e.file_path:void 0;if("Edit"===t.name&&i){W.add(i);let t="string"==typeof e.old_string?e.old_string:"",s="string"==typeof e.new_string?e.new_string:"",n=t?t.split("\n").length:0,a=s?s.split("\n").length:0;F+=Math.max(0,a-n),U+=Math.max(0,n-a)}else if("Write"===t.name&&i){W.add(i);let t="string"==typeof e.content?e.content:"";F+=t?t.split("\n").length:0}}}if("user"===e.role){let t=o(function(e){let t=e?.content;if("string"==typeof t)return t;if(Array.isArray(t)){for(let e of t)if(e&&"object"==typeof e&&"text"===e.type&&"string"==typeof e.text)return e.text}return""}(e.raw?.message)),i=void 0!==e.teammateMessage&&!c;t||i||(d||(d=e.teammateMessage?e.teammateMessage.body:e.preview),E++,g=e.preview)}"agent"===e.role&&(m=e.preview)}for(let r of e)if(r&&"object"==typeof r&&("string"!=typeof r.sessionId||O||(O=r.sessionId),"string"!=typeof r.cwd||i||(i=r.cwd),"string"!=typeof r.gitBranch||s||(s=r.gitBranch),"string"!=typeof r.entrypoint||n||(n=r.entrypoint),"string"!=typeof r.teamName||a||(a=r.teamName),"string"!=typeof r.agentName||c||(c=r.agentName),"assistant"===r.type)){let e=r.message;if(e){"string"!=typeof e.model||t||(t=e.model);let i="string"==typeof e.id?e.id:void 0,s="string"==typeof r.requestId?r.requestId:void 0,n=null!=i?`${i}:${s??""}`:void 0;if(n&&$.has(n))continue;n&&$.add(n);let a=f(e.usage);a&&(D.input+=a.input,D.output+=a.output,D.cacheRead+=a.cacheRead,D.cacheWrite+=a.cacheWrite)}}return{events:y,meta:{sessionId:O,firstTimestamp:v,lastTimestamp:_,durationMs:void 0!==w&&void 0!==M?M-w:void 0,eventCount:y.length,model:t,cwd:i,gitBranch:s,entrypoint:n,totalUsage:D,status:"idle",firstUserPreview:d,lastUserPreview:g,lastAgentPreview:m,toolCallCount:B,turnCount:E,airTimeMs:I,activeSegments:b,linesAdded:F,linesRemoved:U,filesEdited:W.size,coldResumeCount:T,cacheRebuildTokens:A,teamName:a,agentName:c,isTeamLead:void 0!==a&&void 0===c&&(z||R)}}}e.s(["parseTranscript",0,d],34235);var m=e.i(39587);let g=s.default.join(i.default.homedir(),".claude","projects");function y(e){return e.startsWith("-")?"/"+e.slice(1).replace(/-/g,"/"):e}let h=s.default.join(i.default.homedir(),".cclens","runtime").replace(/[/.]/g,"-");async function w(e){let i=await t.promises.readFile(e,"utf8"),s=[];for(let e of i.split("\n")){let t=e.trim();if(t)try{s.push(JSON.parse(t))}catch{}}return s}function M(e){return e.replace(/\.jsonl$/i,"")}let v=new Map,_=new Map,k=new Map,j=null;async function b(e=g){let i;if(j&&j.root===e&&Date.now()-j.capturedAtMs<1e3)return j.files;try{i=await t.promises.readdir(e,{withFileTypes:!0})}catch{return[]}let n=i.filter(e=>e.isDirectory()&&e.name!==h).map(e=>e.name),a=(await Promise.all(n.map(async i=>{let n,a=s.default.join(e,i);try{n=await t.promises.readdir(a)}catch{return[]}let r=n.filter(e=>e.endsWith(".jsonl"));return(await Promise.all(r.map(async e=>{let n=s.default.join(a,e);try{let s=await t.promises.stat(n);return{projectDir:i,fileName:e,fullPath:n,mtimeMs:s.mtimeMs,sizeBytes:s.size}}catch{return null}}))).filter(e=>null!==e)}))).flat();return j={files:a,capturedAtMs:Date.now(),root:e},a}let I={input:0,output:0,cacheRead:0,cacheWrite:0};function N(e,t,i){for(let s of e){if(!s||"object"!=typeof s||"assistant"!==s.type)continue;let e=s.message;if(!e)continue;let n="string"==typeof e.id?e.id:void 0,a="string"==typeof s.requestId?s.requestId:void 0,r=null!=n&&null!=a?`${n}:${a}`:void 0;if(r&&t.has(r))continue;r&&t.add(r);let o=e.usage;if(o){let e=e=>"number"==typeof e?e:0;i.input+=e(o.input_tokens),i.output+=e(o.output_tokens),i.cacheRead+=e(o.cache_read_input_tokens),i.cacheWrite+=e(o.cache_creation_input_tokens)}}}async function x(e,i,n){let a,r={...I},o=new Set;N(e,o,r);let l=s.default.join(i,n,"subagents");try{a=await t.promises.readdir(l)}catch{return r}let u=a.filter(e=>e.endsWith(".jsonl"));return 0===u.length||await Promise.all(u.map(async e=>{try{let t=await w(s.default.join(l,e));N(t,o,r)}catch{}})),r}async function S(e,i){let n,a=s.default.join(e,i,"workflows");try{n=await t.promises.readdir(a)}catch{return{workflowCount:0,spawnedAgentCount:0,spans:[]}}let r=n.filter(e=>e.startsWith("wf_")&&e.endsWith(".json"));if(0===r.length)return{workflowCount:0,spawnedAgentCount:0,spans:[]};let o=0,l=[];return{workflowCount:(await Promise.all(r.map(async e=>{try{let i=JSON.parse(await t.promises.readFile(s.default.join(a,e),"utf8"));return"number"==typeof i.agentCount&&(o+=i.agentCount),"number"==typeof i.startTime&&"number"==typeof i.durationMs&&i.durationMs>0&&l.push({startMs:i.startTime,endMs:i.startTime+i.durationMs}),!0}catch{return!1}}))).filter(Boolean).length,spawnedAgentCount:o,spans:l}}function T(e,t){if(0===t.length)return{};let i=[...e??[],...t].filter(e=>e.endMs>e.startMs).sort((e,t)=>e.startMs-t.startMs);if(0===i.length)return{};let s=[{...i[0]}];for(let e=1;e<i.length;e++){let t=i[e],n=s[s.length-1];t.startMs<=n.endMs?n.endMs=Math.max(n.endMs,t.endMs):s.push({...t})}let n=s.reduce((e,t)=>e+(t.endMs-t.startMs),0);return{activeSegments:s,airTimeMs:n}}async function A(e){let t=v.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.meta;try{let t=await w(e.fullPath),{meta:i}=d(t),n=M(e.fileName),a=s.default.dirname(e.fullPath);i.totalUsage=await x(t,a,n);let r=await S(a,n),o={...i,id:n,filePath:e.fullPath,projectDir:e.projectDir,projectName:i.cwd??y(e.projectDir),...r.workflowCount>0?{workflowCount:r.workflowCount,spawnedAgentCount:r.spawnedAgentCount}:{},...T(i.activeSegments,r.spans)};return v.set(e.fullPath,{meta:o,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),o}catch{return null}}async function C(e){let t=_.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.detail;try{let t=await w(e.fullPath),{meta:i,events:n}=d(t),a=M(e.fileName),r=await S(s.default.dirname(e.fullPath),a),o={...i,id:a,filePath:e.fullPath,projectDir:e.projectDir,projectName:i.cwd??y(e.projectDir),events:n,...r.workflowCount>0?{workflowCount:r.workflowCount,spawnedAgentCount:r.spawnedAgentCount}:{},...T(i.activeSegments,r.spans)};_.set(e.fullPath,{detail:o,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes});let l={...o};return delete l.events,v.set(e.fullPath,{meta:l,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),o}catch{return null}}async function P(e={}){let{root:t=g,limit:i=500,projectDir:s}=e,n=await b(t);s&&(n=n.filter(e=>e.projectDir===s)),n.sort((e,t)=>t.mtimeMs-e.mtimeMs);let a=n.slice(0,i);return(await Promise.all(a.map(e=>A(e)))).filter(e=>null!==e)}async function D(e,t={}){let{root:i=g}=t,n=(await b(i)).find(t=>M(t.fileName)===e);if(!n)return null;let a=await C(n);if(!a)return a;let r=a.firstTimestamp?Date.parse(a.firstTimestamp):void 0,o=s.default.join(s.default.dirname(n.fullPath),M(n.fileName),"subagents"),l=s.default.join(s.default.dirname(n.fullPath),M(n.fileName),"workflows"),[u,c]=await Promise.all([$(o,r,a.events),O(l,r,a.events)]),p=c.reduce((e,t)=>e+t.agentCount,0);return{...a,subagents:u,workflows:c,...c.length>0?{workflowCount:c.length,spawnedAgentCount:p}:{}}}async function $(e,i,n){let a;try{a=await t.promises.readdir(e)}catch{return[]}let r=new Map,o=[];for(let e of n)if("tool-call"===e.role&&"Agent"===e.toolName)for(let t of e.blocks){if(t?.type!=="tool_use"||"Agent"!==t.name)continue;let i=t.input??{},s="string"==typeof i.description?i.description:void 0,n=e.timestamp?Date.parse(e.timestamp):void 0,a={toolUseId:t.id,parentUuid:e.uuid??"",runInBackground:!0===i.run_in_background,prompt:"string"==typeof i.prompt?i.prompt:void 0,tsMs:n};s&&r.set(s,a),void 0!==n&&o.push(a)}o.sort((e,t)=>(e.tsMs??0)-(t.tsMs??0));let l=a.filter(e=>e.startsWith("agent-")&&e.endsWith(".jsonl"));return(await Promise.all(l.map(async n=>{let a,l=n.replace(/^agent-/,"").replace(/\.jsonl$/,""),u=s.default.join(e,n),c=s.default.join(e,`agent-${l}.meta.json`),p={};try{let e=await t.promises.readFile(c,"utf8");p=JSON.parse(e)}catch{}try{a=await w(u)}catch{return null}let f=function(e){let t,i,s,n,a,r={...I},o=new Set,l=0,u=0,c=0,p=new Map;for(let f of e){if(!f||"object"!=typeof f)continue;l++;let e="string"==typeof f.timestamp?Date.parse(f.timestamp):NaN;if(!Number.isNaN(e)&&((void 0===t||e<t)&&(t=e),(void 0===i||e>i)&&(i=e)),void 0===a&&"user"===f.type&&(null===f.parentUuid||void 0===f.parentUuid)){let e=f.message,t=e?.content;if("string"==typeof t)a=t;else if(Array.isArray(t)){let e=t.find(e=>e&&"object"==typeof e&&"text"===e.type);e?.text&&(a=e.text)}}if("assistant"===f.type){let e=f.message;if(!e)continue;n||"string"!=typeof e.model||(n=e.model);let t="string"==typeof e.id?e.id:void 0,i="string"==typeof f.requestId?f.requestId:void 0,a=null!=t&&null!=i?`${t}:${i}`:void 0,l=!a||!o.has(a);if(a&&l&&o.add(a),l){u++;let t=e.usage;if(t){let e=e=>"number"==typeof e?e:0;r.input+=e(t.input_tokens),r.output+=e(t.output_tokens),r.cacheRead+=e(t.cache_read_input_tokens),r.cacheWrite+=e(t.cache_creation_input_tokens)}}let d=e.content;if(Array.isArray(d))for(let e of d)e&&"object"==typeof e&&("text"===e.type&&"string"==typeof e.text?s=e.text:"tool_use"===e.type&&"string"==typeof e.name&&(c++,p.set(e.name,(p.get(e.name)??0)+1)))}}let f=Array.from(p.entries()).map(([e,t])=>({name:e,count:t})).sort((e,t)=>t.count-e.count);return{startMs:t,endMs:i,totalUsage:r,eventCount:l,finalPreview:void 0!==s?s.replace(/\s+/g," ").trim().slice(0,240):void 0,finalText:s,model:n,toolCalls:f,toolCallCount:c,assistantMessageCount:u,initialPrompt:a}}(a),d=p.description&&p.description.trim().length>0?p.description:void 0,m=d?r.get(d):function(e){let t;if(void 0===e)return;let i=1/0;for(let s of o){if(void 0===s.tsMs)continue;let n=Math.abs(e-s.tsMs);n<i&&n<=2e3&&(t=s,i=n)}return t}(f.startMs),g=d??(f.initialPrompt?f.initialPrompt.replace(/\s+/g," ").trim().slice(0,80):"(no description)"),y=m?.prompt??f.initialPrompt,h=void 0!==i&&void 0!==f.startMs?Math.max(0,f.startMs-i):void 0,M=void 0!==i&&void 0!==f.endMs?Math.max(0,f.endMs-i):void 0,v=void 0!==f.startMs&&void 0!==f.endMs?f.endMs-f.startMs:void 0;return{agentId:l,agentType:p.agentType??"unknown",description:g,startMs:f.startMs,endMs:f.endMs,durationMs:v,startTOffsetMs:h,endTOffsetMs:M,eventCount:f.eventCount,totalUsage:f.totalUsage,parentUuid:m?.parentUuid,parentToolUseId:m?.toolUseId,runInBackground:m?.runInBackground,prompt:y,finalPreview:f.finalPreview,finalText:f.finalText,model:f.model,toolCalls:f.toolCalls,toolCallCount:f.toolCallCount,assistantMessageCount:f.assistantMessageCount}}))).filter(e=>null!==e).sort((e,t)=>(e.startMs??0)-(t.startMs??0))}async function O(e,i,n){let a;try{a=await t.promises.readdir(e)}catch{return[]}let r=a.filter(e=>e.startsWith("wf_")&&e.endsWith(".json"));if(0===r.length)return[];let o=[];for(let e of n){if("tool-call"!==e.role||"Workflow"!==e.toolName)continue;let t=e.timestamp?Date.parse(e.timestamp):NaN;if(!Number.isNaN(t))for(let i of e.blocks)i?.type==="tool_use"&&"Workflow"===i.name&&o.push({toolUseId:i.id,parentUuid:e.uuid??"",tsMs:t})}o.sort((e,t)=>e.tsMs-t.tsMs);let l=e=>"number"==typeof e?e:void 0,u=e=>"string"==typeof e&&e.length>0?e:void 0;return(await Promise.all(r.map(async n=>{let a;try{a=JSON.parse(await t.promises.readFile(s.default.join(e,n),"utf8"))}catch{return null}let r=u(a.runId)??n.replace(/\.json$/,""),c=l(a.startTime),p=l(a.durationMs),f=void 0!==c&&void 0!==p?c+p:void 0,d=void 0!==i&&void 0!==c?Math.max(0,c-i):void 0,m=void 0!==i&&void 0!==f?Math.max(0,f-i):void 0,g=Array.isArray(a.phases)?a.phases.filter(e=>!!e&&"object"==typeof e&&"string"==typeof e.title).map(e=>({title:e.title,detail:u(e.detail)})):[],y=Array.isArray(a.logs)?a.logs.filter(e=>"string"==typeof e):[],h=(e,t)=>{let i=u(e);return void 0===i?void 0:i.length>t?i.slice(0,t)+"…":i},w=(Array.isArray(a.workflowProgress)?a.workflowProgress:[]).filter(e=>!!e&&"object"==typeof e&&"workflow_agent"===e.type).map(e=>({index:l(e.index)??0,label:u(e.label)??"(agent)",phaseIndex:l(e.phaseIndex),phaseTitle:u(e.phaseTitle),agentId:u(e.agentId),model:u(e.model),state:u(e.state),startedAt:l(e.startedAt),durationMs:l(e.durationMs),tokens:l(e.tokens),toolCalls:l(e.toolCalls),lastToolSummary:h(e.lastToolSummary,200),promptPreview:h(e.promptPreview,600),resultPreview:h(e.resultPreview,600)})).sort((e,t)=>e.index-t.index),M=(e=>{let t,i;if(void 0===e||0===o.length)return;let s=1/0,n=1/0;for(let a of o){let r=Math.abs(e-a.tsMs);!(r>6e4)&&(r<n&&(i=a,n=r),a.tsMs<=e&&r<s&&(t=a,s=r))}return t??i})(c);return{runId:r,name:u(a.workflowName)??r,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:f,startTOffsetMs:d,endTOffsetMs:m,model:u(a.defaultModel),phases:g,logs:y,agents:w,parentToolUseId:M?.toolUseId,parentUuid:M?.parentUuid}}))).filter(e=>null!==e).sort((e,t)=>(e.startMs??0)-(t.startMs??0))}async function z(e,t,i,n={}){let a,r,o,l,u,c,{root:p=g}=n;if(!/^[\w.-]+$/.test(t)||!/^[\w.-]+$/.test(i))return null;let f=(await b(p)).find(t=>M(t.fileName)===e);if(!f)return null;let d=s.default.join(s.default.dirname(f.fullPath),e,"subagents","workflows",t,`agent-${i}.jsonl`);try{a=await w(d)}catch{return null}let m=new Set;for(let e of a){if(!e||"object"!=typeof e)continue;let t=e.message?.content;if(Array.isArray(t))for(let e of t)e&&"object"==typeof e&&"tool_result"===e.type&&!0===e.is_error&&"string"==typeof e.tool_use_id&&m.add(e.tool_use_id)}let y=[],h=new Map,v={...I},_=new Set,k=0,j=0;for(let e of a){if(!e||"object"!=typeof e)continue;j++;let t="string"==typeof e.timestamp?Date.parse(e.timestamp):NaN;if(!Number.isNaN(t)&&((void 0===u||t<u)&&(u=t),(void 0===c||t>c)&&(c=t)),void 0===r&&"user"===e.type&&(null===e.parentUuid||void 0===e.parentUuid)){let t=e.message?.content;if("string"==typeof t)r=t;else if(Array.isArray(t)){let e=t.find(e=>e&&"object"==typeof e&&"text"===e.type);e?.text&&(r=e.text)}}if("assistant"!==e.type)continue;let i=e.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 e.requestId?e.requestId:void 0,a=null!=s&&null!=n?`${s}:${n}`:void 0,p=!a||!_.has(a);if(a&&p&&_.add(a),p){k++;let e=i.usage;if(e){let t=e=>"number"==typeof e?e:0;v.input+=t(e.input_tokens),v.output+=t(e.output_tokens),v.cacheRead+=t(e.cache_read_input_tokens),v.cacheWrite+=t(e.cache_creation_input_tokens)}}let f=i.content;if(Array.isArray(f)){for(let e of f)if(e&&"object"==typeof e){if("text"===e.type&&"string"==typeof e.text)o=e.text;else if("tool_use"===e.type&&"string"==typeof e.name&&(h.set(e.name,(h.get(e.name)??0)+1),y.length<2e3)){let t=function(e){if(!e||"object"!=typeof e)return"";let t=t=>"string"==typeof e[t]?e[t]:void 0;return t("command")??t("file_path")??t("path")??t("pattern")??t("url")??t("description")??t("query")??t("prompt")??t("old_string")??JSON.stringify(e)}(e.input),i=t.replace(/\s+/g," ").trim().slice(0,160),s=t.length>4e3?t.slice(0,4e3)+"…":t;y.push({index:y.length+1,tool:e.name,preview:i,full:s.length>i.length||s.includes("\n")?s:void 0,isError:"string"==typeof e.id&&m.has(e.id)})}}}}return{agentId:i,prompt:r,finalText:o,steps:y,toolCalls:Array.from(h.entries()).map(([e,t])=>({name:e,count:t})).sort((e,t)=>t.count-e.count),toolCallCount:y.length,assistantMessageCount:k,eventCount:j,totalUsage:v,model:l,durationMs:void 0!==u&&void 0!==c?c-u:void 0}}let R={...m.CLAUDE_CODE_METADATA,defaultRoot:g,async listSessions(e){let t=await P(e);for(let e of t)e.agent||(e.agent="claude-code");return t},async getSession(e,t){let i=await D(e,t);return i&&!i.agent&&(i.agent="claude-code"),i}};e.s(["DEFAULT_ROOT",0,g,"claudeCodeSource",0,R,"getSession",0,D,"invalidateClaudeCodeFile",0,function(e){v.delete(e),_.delete(e),k.delete(e),j=null},"listSessions",0,P,"loadWorkflowAgentDetail",0,z],20629)},43427,e=>{"use strict";let t;e.s(["cclensHome",()=>ef,"cclensPath",()=>ed,"getAnySession",()=>ev,"invalidateFile",()=>em],43427);var i=e.i(2157),s=e.i(60526),n=e.i(50227),a=e.i(39587),r=e.i(20629),o=e.i(79357),l=e.i(36521);let u=n.default.join(s.default.homedir(),".codex","sessions"),c=/^rollout-(\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2})-([0-9a-f-]+)\.jsonl$/;async function p(e){return i.promises.readdir(e).catch(()=>[])}async function f(e){let t=[];for(let s of(await p(e))){if(!/^\d{4}$/.test(s))continue;let a=n.default.join(e,s);for(let e of(await p(a))){if(!/^\d{2}$/.test(e))continue;let s=n.default.join(a,e);for(let e of(await p(s))){if(!/^\d{2}$/.test(e))continue;let a=n.default.join(s,e);for(let e of(await p(a))){let s=c.exec(e);if(!s)continue;let r=n.default.join(a,e),o=await i.promises.stat(r).catch(()=>null);o&&t.push({filePath:r,sessionId:s[2],mtimeMs:o.mtimeMs,sizeBytes:o.size})}}}}return t}async function d(e){let t=await i.promises.readFile(e,"utf8"),s=[];for(let e of t.split("\n")){let t=e.trim();if(t)try{s.push(JSON.parse(t))}catch{}}return s}function m(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function g(e,t){let i,s,n,a,r,u,c,p=[],f={input:0,output:0,cacheRead:0,cacheWrite:0},d=0,g=0,h=[],w=0;for(let e of t){if("object"!=typeof e||null===e)continue;let t="string"==typeof e.timestamp?e.timestamp:void 0;if(t){i||(i=t),s=t;let e=Date.parse(t);Number.isFinite(e)&&h.push(e)}let o="string"==typeof e.type?e.type:"",v=e.payload??{},_="string"==typeof v.type?v.type:"";if("session_meta"===o){"string"==typeof v.cwd&&(n=v.cwd);continue}if("turn_context"===o){"string"==typeof v.cwd&&(n=v.cwd),"string"==typeof v.model&&(a=v.model);continue}if("event_msg"===o&&"token_count"===_){let e=v.info??null,t=e?.total_token_usage??null;t&&(f.input=y(t.input_tokens)??f.input,f.output=y(t.output_tokens)??f.output,f.cacheRead=y(t.cached_input_tokens)??f.cacheRead);continue}if("event_msg"===o&&"user_message"===_){let i="string"==typeof v.message?v.message:"",s=m(i),n=(0,l.isFrameworkInjectedUserInput)(i);i&&!n&&(r||(r=s),u=s,g+=1),p.push({index:w++,timestamp:t,role:"user",rawType:"event_msg/user_message",preview:s,blocks:i?[{type:"text",text:i}]:[],raw:e});continue}if("event_msg"===o&&"agent_message"===_){let i="string"==typeof v.message?v.message:"",s=m(i);i&&(c=s),p.push({index:w++,timestamp:t,role:"agent",rawType:"event_msg/agent_message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:a,raw:e});continue}if("response_item"===o&&"reasoning"===_){let i=(v.summary??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim();p.push({index:w++,timestamp:t,role:"agent-thinking",rawType:"response_item/reasoning",preview:m(i),blocks:i?[{type:"thinking",thinking:i}]:[],model:a,raw:e});continue}if("response_item"===o&&"message"===_&&"assistant"===v.role){let i=(v.content??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim(),s=m(i);i&&(c=s),p.push({index:w++,timestamp:t,role:"agent",rawType:"response_item/message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:a,raw:e});continue}if("response_item"===o&&"function_call"===_){var M;let i="string"==typeof v.name?v.name:"(unknown)",s="string"==typeof v.call_id?v.call_id:void 0,n="string"==typeof v.arguments?v.arguments:"",r=function(e){if(!e)return null;try{return JSON.parse(e)}catch{return e}}(n);d+=1,p.push({index:w++,timestamp:t,role:"tool-call",rawType:"response_item/function_call",preview:`${i}(${(M=n).length<=80?M:M.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:s??`codex-${w}`,name:i,input:r}],toolName:i,toolUseId:s,model:a,raw:e});continue}if("response_item"===o&&"function_call_output"===_){let i="string"==typeof v.call_id?v.call_id:void 0,s="string"==typeof v.output?v.output:"",n=/process exited with code [1-9]/i.test(s);p.push({index:w++,timestamp:t,role:"tool-result",rawType:"response_item/function_call_output",preview:m(s),blocks:[{type:"tool_result",tool_use_id:i??"",content:s,is_error:n}],toolUseId:i,toolResult:s,raw:e});continue}p.push({index:w++,timestamp:t,role:"meta",rawType:_?`${o}/${_}`:o,preview:"",blocks:[],raw:e})}if(f.input>0||f.output>0){let t=-1;for(let e=p.length-1;e>=0;e--){let i=p[e].role;if("agent"===i||"agent-thinking"===i||"tool-call"===i){t=e;break}}if(t>=0){let i=p[t];i.messageId=`codex-${e.sessionId}-total`,i.usage={input:f.input,output:f.output,cacheRead:f.cacheRead,cacheWrite:0}}}let v=i?Date.parse(i):void 0;if(void 0!==v&&Number.isFinite(v)){let e;for(let t of p){if(!t.timestamp)continue;let i=Date.parse(t.timestamp);Number.isFinite(i)&&(t.tOffsetMs=Math.max(0,i-v),void 0!==e&&(t.gapMs=Math.max(0,i-e)),e=i)}}let _=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],n=t[0];for(let e=1;e<t.length;e++)t[e]-n>18e4&&(i.push({startMs:s,endMs:n}),s=t[e]),n=t[e];return i.push({startMs:s,endMs:n}),i}(h),k=_.reduce((e,t)=>e+(t.endMs-t.startMs),0),j=i&&s?Date.parse(s)-Date.parse(i):void 0,b=n?(0,o.canonicalProjectName)(n):"(unknown)",I=n?n.replace(/^\//,"-").replace(/\//g,"-"):"(unknown)";return{meta:{agent:"codex",id:e.sessionId,filePath:e.filePath,projectName:b,projectDir:I,sessionId:e.sessionId,firstTimestamp:i,lastTimestamp:s,durationMs:j&&Number.isFinite(j)?j:void 0,eventCount:p.length,model:a,cwd:n,totalUsage:f,status:"idle",firstUserPreview:r,lastUserPreview:u,lastAgentPreview:c,toolCallCount:d,turnCount:g,airTimeMs:k,activeSegments:_},events:p}}function y(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}let h=new Map,w=new Map;async function M(e={}){let t=e.root??u,i=await f(t),s=[];for(let e of i){let t=h.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){s.push(t.meta);continue}try{let t=await d(e.filePath),{meta:i}=g(e,t);h.set(e.filePath,{meta:i,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),s.push(i)}catch{}}return(s.sort((e,t)=>(t.firstTimestamp??"").localeCompare(e.firstTimestamp??"")),void 0!==e.limit)?s.slice(0,e.limit):s}async function v(e,t={}){let i=t.root??u,s=(await f(i)).find(t=>t.sessionId===e);if(!s)return null;let n=w.get(s.filePath);if(n&&n.mtimeMs===s.mtimeMs&&n.sizeBytes===s.sizeBytes)return n.detail;let a=await d(s.filePath),{meta:r,events:o}=g(s,a),l={...r,events:o};return w.set(s.filePath,{detail:l,mtimeMs:s.mtimeMs,sizeBytes:s.sizeBytes}),l}async function _(e={}){let t=e.root??u,i=await f(t);if(0===i.length)return null;for(let e of(i.sort((e,t)=>t.mtimeMs-e.mtimeMs),i)){let t=await d(e.filePath);for(let i=t.length-1;i>=0;i--){let s=t[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 r=a.primary??null,o=a.secondary??null,l=y(r?.used_percent),u=y(o?.used_percent),c=y(r?.resets_at),p=y(o?.resets_at),f="string"==typeof a.plan_type?a.plan_type:null;return{five_hour:{utilization:l??null,resets_at:void 0!==c?new Date(1e3*c).toISOString():null},seven_day:{utilization:u??null,resets_at:void 0!==p?new Date(1e3*p).toISOString():null},plan_type:f,source_path:e.filePath}}}return null}let k=n.default.join(s.default.homedir(),".gemini","tmp"),j=n.default.join(s.default.homedir(),".gemini","projects.json"),b=/^session-.+\.(jsonl|json)$/;async function I(e){return i.promises.readdir(e).catch(()=>[])}async function N(e){let t=[];for(let s of(await I(e))){let a=n.default.join(e,s,"chats");for(let e of(await I(a))){if(!b.test(e))continue;let r=n.default.join(a,e),o=await i.promises.stat(r).catch(()=>null);if(!o||!o.isFile())continue;let l=e.replace(/\.(jsonl|json)$/,"").split("-").pop()??e;t.push({filePath:r,slug:s,filenameId:l,format:e.endsWith(".jsonl")?"jsonl":"legacy-json",mtimeMs:o.mtimeMs,sizeBytes:o.size})}}return t}let x=null;async function S(){let e,t=await i.promises.stat(j).catch(()=>null);if(!t)return new Map;if(x&&x.mtimeMs===t.mtimeMs)return x.slugToCwd;let s=await i.promises.readFile(j,"utf8").catch(()=>"");try{e=JSON.parse(s)}catch{e={}}let n=new Map;for(let[t,i]of Object.entries(e.projects??{}))"string"==typeof i&&n.set(i,t);return x={mtimeMs:t.mtimeMs,slugToCwd:n},n}function T(e){return!!e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.type}async function A(e){let t=await i.promises.readFile(e.filePath,"utf8");if("legacy-json"===e.format){let e;try{e=JSON.parse(t)}catch{return{meta:{},messages:[]}}return{meta:{sessionId:"string"==typeof e.sessionId?e.sessionId:void 0,projectHash:"string"==typeof e.projectHash?e.projectHash:void 0,startTime:"string"==typeof e.startTime?e.startTime:void 0,lastUpdated:"string"==typeof e.lastUpdated?e.lastUpdated:void 0,summary:"string"==typeof e.summary?e.summary:void 0},messages:(Array.isArray(e.messages)?e.messages:[]).filter(T)}}let s={},n=new Map,a=[];for(let e of t.split("\n")){let t,i=e.trim();if(i){var r,o;try{t=JSON.parse(i)}catch{continue}if((r=t)&&"object"==typeof r&&"$rewindTo"in r){let e=t.$rewindTo,i=a.indexOf(e);if(i>=0){for(let e of a.slice(i))n.delete(e);a.length=i}continue}if((o=t)&&"object"==typeof o&&"$set"in o){Object.assign(s,t.$set);continue}if(T(t)){n.has(t.id)||a.push(t.id),n.set(t.id,t);continue}if("object"==typeof t&&null!==t){let e=t;"string"!=typeof e.sessionId||s.sessionId||(s.sessionId=e.sessionId,"string"==typeof e.projectHash&&(s.projectHash=e.projectHash),"string"==typeof e.startTime&&(s.startTime=e.startTime),"string"==typeof e.lastUpdated&&(s.lastUpdated=e.lastUpdated),"string"==typeof e.summary&&(s.summary=e.summary))}}}let l=[];for(let e of a){let t=n.get(e);t&&l.push(t)}return{meta:s,messages:l}}function C(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function P(e){if(!e)return"";if("string"==typeof e)return e;let t=Array.isArray(e)?e:[e],i=[];for(let e of t){if(!e||"object"!=typeof e)continue;if("string"==typeof e.text){i.push(e.text);continue}let t=e.functionResponse;if(t){let e=t.response;"string"==typeof e?i.push(e):e&&"object"==typeof e&&("string"==typeof e.output?i.push(e.output):"string"==typeof e.error?i.push(`error: ${e.error}`):i.push(JSON.stringify(e)))}}return i.join("\n")}async function D(e){let t,i,s,n,a,r,{meta:u,messages:c}=await A(e),p=(await S()).get(e.slug),f=[],d={input:0,output:0,cacheRead:0,cacheWrite:0},m=0,g=0,y=[],h=0;function w(e){if(f.push(e),e.timestamp&&"meta"!==e.role){t||(t=e.timestamp),i=e.timestamp;let s=Date.parse(e.timestamp);Number.isFinite(s)&&y.push(s)}}for(let e of c){let t=e.timestamp;if("user"===e.type){let i=P(e.displayContent??e.content),s=C(i),r=(0,l.isFrameworkInjectedUserInput)(i);i&&!r&&(n||(n=s),a=s,g+=1),w({index:h++,timestamp:t,role:"user",rawType:"gemini/user",preview:s,blocks:i?[{type:"text",text:i}]:[],messageId:e.id,raw:e});continue}if("gemini"===e.type){let i;"string"==typeof e.model&&(s=e.model);let n=P(e.content),a=C(n);if(n&&(r=a),e.tokens){let t=e.tokens,s={input:t.input??0,output:t.output??0,cacheRead:t.cached??0,cacheWrite:0};i=s,d.input+=s.input,d.output+=s.output,d.cacheRead+=s.cacheRead}for(let i of e.thoughts??[]){let e=[i.subject,i.description].filter(Boolean).join(": ");e&&w({index:h++,timestamp:i.timestamp??t,role:"agent-thinking",rawType:"gemini/thought",preview:C(e),blocks:[{type:"thinking",thinking:e}],model:s,raw:i})}for(let r of(n?w({index:h++,timestamp:t,role:"agent",rawType:"gemini/agent",preview:a,blocks:[{type:"text",text:n}],messageId:e.id,model:s,usage:i,raw:e}):i&&w({index:h++,timestamp:t,role:"agent",rawType:"gemini/agent",preview:"",blocks:[],messageId:e.id,model:s,usage:i,raw:e}),e.toolCalls??[])){m+=1;let e=r.args?JSON.stringify(r.args):"";w({index:h++,timestamp:r.timestamp??t,role:"tool-call",rawType:"gemini/tool_call",preview:`${r.name}(${e.length<=80?e:e.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:r.id,name:r.name,input:r.args??{}}],toolName:r.name,toolUseId:r.id,model:s,raw:r});let i=(r.status??"").toLowerCase();if("success"===i||"error"===i||"cancelled"===i){let e=P(r.result);w({index:h++,timestamp:r.timestamp??t,role:"tool-result",rawType:"gemini/tool_result",preview:C(e),blocks:[{type:"tool_result",tool_use_id:r.id,content:e,is_error:"error"===i||"cancelled"===i}],toolUseId:r.id,toolResult:e,raw:r})}}continue}if("info"===e.type||"warning"===e.type||"error"===e.type){let i=P(e.content);w({index:h++,timestamp:t,role:"meta",rawType:`gemini/${e.type}`,preview:C(i),blocks:i?[{type:"text",text:i}]:[],raw:e});continue}}let M=t?Date.parse(t):void 0;if(void 0!==M&&Number.isFinite(M)){let e;for(let t of f){if(!t.timestamp)continue;let i=Date.parse(t.timestamp);Number.isFinite(i)&&(t.tOffsetMs=Math.max(0,i-M),void 0!==e&&(t.gapMs=Math.max(0,i-e)),e=i)}}let v=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],n=t[0];for(let e=1;e<t.length;e++)t[e]-n>18e4&&(i.push({startMs:s,endMs:n}),s=t[e]),n=t[e];return i.push({startMs:s,endMs:n}),i}(y),_=v.reduce((e,t)=>e+(t.endMs-t.startMs),0),k=t&&i?Date.parse(i)-Date.parse(t):void 0,j=u.sessionId??e.filenameId,b=p?(0,o.canonicalProjectName)(p):e.slug,I=p?p.replace(/^\//,"-").replace(/\//g,"-"):e.slug;return{meta:{agent:"gemini",id:j,filePath:e.filePath,projectName:b,projectDir:I,sessionId:j,firstTimestamp:t,lastTimestamp:i,durationMs:k&&Number.isFinite(k)?k:void 0,eventCount:f.length,model:s,cwd:p,totalUsage:d,status:"idle",firstUserPreview:n,lastUserPreview:a,lastAgentPreview:r,toolCallCount:m,turnCount:g,airTimeMs:_,activeSegments:v},events:f}}let $=new Map,O=new Map;async function z(e={}){let t=e.root??k,i=await N(t),s=[];for(let e of i){let t=$.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){s.push(t.meta);continue}try{let{meta:t}=await D(e);$.set(e.filePath,{meta:t,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),s.push(t)}catch{}}return(s.sort((e,t)=>(t.firstTimestamp??"").localeCompare(e.firstTimestamp??"")),void 0!==e.limit)?s.slice(0,e.limit):s}async function R(e,t={}){let i,s=t.root??k,n=await N(s);for(let t of n)if(t.filenameId===e||e.startsWith(t.filenameId)){i=t;break}if(!i)for(let t of n){let{meta:s}=await D(t).catch(()=>({meta:{id:""}}));if(s.id===e){i=t;break}}if(!i)return null;let a=O.get(i.filePath);if(a&&a.mtimeMs===i.mtimeMs&&a.sizeBytes===i.sizeBytes)return a.detail;let{meta:r,events:o}=await D(i),l={...r,events:o};return O.set(i.filePath,{detail:l,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes}),l}let B=n.default.join(s.default.homedir(),".gemini","antigravity-cli");async function E(e){return i.promises.readdir(e).catch(()=>[])}let F=null;async function U(e){let t=n.default.join(e,"history.jsonl"),s=await i.promises.stat(t).catch(()=>null);if(!s)return new Map;if(F&&F.mtimeMs===s.mtimeMs)return F.slugToCwd;let a=await i.promises.readFile(t,"utf8").catch(()=>""),r=new Map;for(let e of a.split("\n")){let t=e.trim();if(t)try{let e=JSON.parse(t);e.conversationId&&e.workspace&&r.set(e.conversationId,e.workspace)}catch{}}return F={mtimeMs:s.mtimeMs,slugToCwd:r},r}async function W(e){let t=await U(e),s=[],a=n.default.join(e,"brain");for(let e of(await E(a))){let r=n.default.join(a,e,".system_generated","logs","transcript.jsonl"),o=await i.promises.stat(r).catch(()=>null);o&&o.isFile()&&s.push({filePath:r,conversationId:e,cwd:t.get(e),mtimeMs:o.mtimeMs,sizeBytes:o.size})}return s}function J(e){return e.replace(/\s+/g," ").trim().slice(0,200)}async function L(e){let t,s,n,a,r,u,c=await i.promises.readFile(e.filePath,"utf8"),p=[],f=0,d=0,m=[],g=0;function y(e){if(p.push(e),e.timestamp&&"meta"!==e.role){t||(t=e.timestamp),s=e.timestamp;let i=Date.parse(e.timestamp);Number.isFinite(i)&&m.push(i)}}let h=[],w=[],M=new Map;for(let e of c.split("\n")){let t=e.trim();if(t)try{let e=JSON.parse(t),i=e.step_index;"number"==typeof i?M.has(i)?w[M.get(i)]=e:(M.set(i,w.length),w.push(e)):w.push(e)}catch{}}for(let e of w){let t=e.created_at||e.timestamp;if("USER_INPUT"===e.type){if("string"==typeof e.content){let t=e.content.match(/Model Selection` from .*? to (.*?)\.\s*No need to/);if(t){let e=t[1].trim();n=e=e.replace(/\s*\(.*?\)\s*$/,"").trim()}else{let t=e.content.match(/Model Selection` from .*? to ([^\n]+)/);if(t){let e=t[1].trim();e.endsWith(".")&&(e=e.slice(0,-1).trim()),n=e=e.replace(/\s*\(.*?\)\s*$/,"").trim()}}}let i=e.content||"",s=i.match(/<USER_REQUEST>([\s\S]*?)<\/USER_REQUEST>/);s&&(i=s[1].trim());let o=J(i),u=(0,l.isFrameworkInjectedUserInput)(i);i&&!u&&(a||(a=o),r=o,d+=1),y({index:g++,timestamp:t,role:"user",rawType:"antigravity/user",preview:o,blocks:i?[{type:"text",text:i}]:[],messageId:e.step_index?.toString(),raw:e});continue}if("PLANNER_RESPONSE"===e.type){let i=e.thinking,s=e.content;if(i&&y({index:g++,timestamp:t,role:"agent-thinking",rawType:"antigravity/thought",preview:J(i),blocks:[{type:"thinking",thinking:i}],model:n,raw:e}),s){let i=J(s);u=i,y({index:g++,timestamp:t,role:"agent",rawType:"antigravity/agent",preview:i,blocks:[{type:"text",text:s}],messageId:e.step_index?.toString(),model:n,raw:e})}let a=e.tool_calls||[];for(let i=0;i<a.length;i++){let s=a[i];f+=1;let r=`tool-${e.step_index}-${i}`,o=s.args?JSON.stringify(s.args):"";h.push({id:r,name:s.name}),y({index:g++,timestamp:t,role:"tool-call",rawType:"antigravity/tool_call",preview:`${s.name}(${o.length<=80?o:o.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:r,name:s.name,input:s.args||{}}],toolName:s.name,toolUseId:r,model:n,raw:s})}continue}if("MODEL"===e.source&&"PLANNER_RESPONSE"!==e.type&&"ERROR_MESSAGE"!==e.type&&h.length>0){let i=h.shift(),s=i?i.id:`tool-${e.step_index}-unknown`,n="string"==typeof e.content?e.content:JSON.stringify(e.content||""),a="ERROR"===e.status||"FAILED"===e.status||"CANCELED"===e.status||!!e.error;y({index:g++,timestamp:t,role:"tool-result",rawType:"antigravity/tool_result",preview:J(n),blocks:[{type:"tool_result",tool_use_id:s,content:n,is_error:a}],toolUseId:s,toolResult:n,raw:e});continue}let i=e.content||e.error||"";y({index:g++,timestamp:t,role:"meta",rawType:`antigravity/${e.type?.toLowerCase()||"unknown"}`,preview:J(i),blocks:i?[{type:"text",text:i}]:[],raw:e})}let v=t?Date.parse(t):void 0;if(void 0!==v&&Number.isFinite(v)){let e;for(let t of p){if(!t.timestamp)continue;let i=Date.parse(t.timestamp);Number.isFinite(i)&&(t.tOffsetMs=Math.max(0,i-v),void 0!==e&&(t.gapMs=Math.max(0,i-e)),e=i)}}let _=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],n=t[0];for(let e=1;e<t.length;e++)t[e]-n>18e4&&(i.push({startMs:s,endMs:n}),s=t[e]),n=t[e];return i.push({startMs:s,endMs:n}),i}(m),k=_.reduce((e,t)=>e+(t.endMs-t.startMs),0),j=t&&s?Date.parse(s)-Date.parse(t):void 0,b=e.conversationId,I=e.cwd,N=I?(0,o.canonicalProjectName)(I):e.conversationId,x=I?I.replace(/^\//,"-").replace(/\//g,"-"):e.conversationId;return{meta:{agent:"antigravity",id:b,filePath:e.filePath,projectName:N,projectDir:x,sessionId:b,firstTimestamp:t,lastTimestamp:s,durationMs:j&&Number.isFinite(j)?j:void 0,eventCount:p.length,model:n,cwd:I,totalUsage:{input:0,output:0,cacheRead:0,cacheWrite:0},status:"idle",firstUserPreview:a,lastUserPreview:r,lastAgentPreview:u,toolCallCount:f,turnCount:d,airTimeMs:k,activeSegments:_},events:p}}let q=new Map,G=new Map;async function H(e={}){let t=e.root??B,i=await W(t),s=[];for(let e of i){let t=q.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes&&t.cwd===e.cwd){s.push(t.meta);continue}try{let{meta:t}=await L(e);q.set(e.filePath,{meta:t,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes,cwd:e.cwd}),s.push(t)}catch{}}return(s.sort((e,t)=>(t.firstTimestamp??"").localeCompare(e.firstTimestamp??"")),void 0!==e.limit)?s.slice(0,e.limit):s}async function Y(e,t={}){let i,s=t.root??B;for(let t of(await W(s)))if(t.conversationId===e){i=t;break}if(!i)return null;let n=G.get(i.filePath);if(n&&n.mtimeMs===i.mtimeMs&&n.sizeBytes===i.sizeBytes&&n.cwd===i.cwd)return n.detail;let{meta:a,events:r}=await L(i),o={...a,events:r};return G.set(i.filePath,{detail:o,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes,cwd:i.cwd}),o}var K=e.i(34235);let Q=(t=s.default.homedir(),n.default.join(t,".config","Claude","local-agent-mode-sessions")),V=/^local_[0-9a-f-]+$/;async function X(e){return i.promises.readdir(e).catch(()=>[])}async function Z(e){let t=await i.promises.stat(e).catch(()=>null);return t?t.mtimeMs:0}async function ee(e){let t=[];for(let s of(await X(e))){let a=n.default.join(e,s);for(let e of(await X(a))){let s=n.default.join(a,e),r=await Z(n.default.join(s,"spaces.json"));for(let e of(await X(s))){if(!V.test(e))continue;let a=n.default.join(s,e,"audit.jsonl"),o=await i.promises.stat(a).catch(()=>null);if(!o||!o.isFile()||0===o.size)continue;let l=n.default.join(s,`${e}.json`),u=await Z(l);t.push({sessionId:e,auditPath:a,metaPath:l,workspaceDir:s,auditMtimeMs:o.mtimeMs,auditSize:o.size,metaMtimeMs:u,spacesMtimeMs:r})}}}return t}let et=new Map;async function ei(e){let t=n.default.join(e,"spaces.json"),s=await i.promises.stat(t).catch(()=>null);if(!s)return new Map;let a=et.get(e);if(a&&a.mtimeMs===s.mtimeMs)return a.spaceIdToPath;let r=await i.promises.readFile(t,"utf8").catch(()=>""),o=new Map;try{for(let e of JSON.parse(r).spaces??[]){let t="string"==typeof e.id?e.id:void 0,i=(Array.isArray(e.folders)?e.folders:[])[0],s="string"==typeof i?.path?i.path:void 0;t&&s&&o.set(t,s)}}catch{}return et.set(e,{mtimeMs:s.mtimeMs,spaceIdToPath:o}),o}async function es(e){let t=await i.promises.readFile(e,"utf8").catch(()=>"");if(!t)return{};try{let e=JSON.parse(t);return{spaceId:"string"==typeof e.spaceId?e.spaceId:void 0,userSelectedFolders:Array.isArray(e.userSelectedFolders)?e.userSelectedFolders.filter(e=>"string"==typeof e):void 0,cwd:"string"==typeof e.cwd?e.cwd:void 0,model:"string"==typeof e.model?e.model:void 0,title:"string"==typeof e.title?e.title:void 0,createdAt:"number"==typeof e.createdAt?e.createdAt:void 0,lastActivityAt:"number"==typeof e.lastActivityAt?e.lastActivityAt:void 0}}catch{return{}}}async function en(e){let t=await i.promises.readFile(e,"utf8"),s=[];for(let e of t.split("\n")){let t=e.trim();if(t)try{s.push(JSON.parse(t))}catch{}}return s}async function ea(e){let t,[i,s,n]=await Promise.all([en(e.auditPath),es(e.metaPath),ei(e.workspaceDir)]),{meta:a,events:r}=(0,K.parseTranscript)(i),{projectName:l,projectDir:u,cwd:c}=(s.spaceId&&(t=n.get(s.spaceId)),!t&&s.userSelectedFolders&&s.userSelectedFolders.length>0&&(t=s.userSelectedFolders[0]),t)?{projectName:(0,o.canonicalProjectName)(t),projectDir:t.replace(/^\//,"-").replace(/\//g,"-"),cwd:t}:{projectName:"cowork:unspaced",projectDir:"cowork-unspaced"};return{meta:{...a,agent:"cowork",id:e.sessionId,sessionId:e.sessionId,filePath:e.auditPath,projectName:l,projectDir:u,cwd:c??a.cwd,model:a.model??s.model},events:r}}function er(e){return{auditMtimeMs:e.auditMtimeMs,auditSize:e.auditSize,metaMtimeMs:e.metaMtimeMs,spacesMtimeMs:e.spacesMtimeMs}}function eo(e,t){return e.auditMtimeMs===t.auditMtimeMs&&e.auditSize===t.auditSize&&e.metaMtimeMs===t.metaMtimeMs&&e.spacesMtimeMs===t.spacesMtimeMs}let el=new Map,eu=new Map;async function ec(e={}){let t=e.root??Q,i=await ee(t),s=[];for(let e of i){let t=er(e),i=el.get(e.auditPath);if(i&&eo(i.key,t)){s.push(i.meta);continue}try{let{meta:i}=await ea(e);el.set(e.auditPath,{meta:i,key:t}),s.push(i)}catch{}}return(s.sort((e,t)=>(t.firstTimestamp??"").localeCompare(e.firstTimestamp??"")),void 0!==e.limit)?s.slice(0,e.limit):s}async function ep(e,t={}){let i=t.root??Q,s=(await ee(i)).find(t=>t.sessionId===e);if(!s)return null;let n=er(s),a=eu.get(s.auditPath);if(a&&eo(a.key,n))return a.detail;let{meta:r,events:o}=await ea(s),l={...r,events:o};return eu.set(s.auditPath,{detail:l,key:n}),l}function ef(){return process.env.CCLENS_HOME||n.default.join(s.default.homedir(),".cclens")}function ed(...e){return n.default.join(ef(),...e)}function em(e){(0,r.invalidateClaudeCodeFile)(e)}let eg={...a.CODEX_METADATA,defaultRoot:u,listSessions:async e=>M(e),getSession:async e=>v(e),async usagePoller(){let e=await _();return e?{captured_at:new Date().toISOString(),agent:"codex",five_hour:e.five_hour,seven_day:e.seven_day}:null}},ey={...a.GEMINI_METADATA,defaultRoot:k,listSessions:async e=>z(e),getSession:async e=>R(e)},eh={...a.ANTIGRAVITY_METADATA,defaultRoot:B,listSessions:async e=>H(e),getSession:async e=>Y(e)},ew={...a.COWORK_METADATA,defaultRoot:Q,listSessions:async e=>ec(e),getSession:async e=>ep(e)},eM=[r.claudeCodeSource,eg,ey,eh,ew];async function ev(e){for(let t of eM){let i=await t.getSession(e);if(i)return i}return null}}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_parser_dist_0ndsxe6._.js.map
|