fleetlens 0.13.0 → 0.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/app/apps/web/.next/BUILD_ID +1 -1
  2. package/app/apps/web/.next/build-manifest.json +8 -8
  3. package/app/apps/web/.next/prerender-manifest.json +3 -3
  4. package/app/apps/web/.next/server/app/_global-error/page/build-manifest.json +5 -5
  5. package/app/apps/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  6. package/app/apps/web/.next/server/app/_global-error.html +1 -1
  7. package/app/apps/web/.next/server/app/_global-error.rsc +7 -7
  8. package/app/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  9. package/app/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  10. package/app/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  11. package/app/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  12. package/app/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/app/apps/web/.next/server/app/_not-found/page/build-manifest.json +5 -5
  14. package/app/apps/web/.next/server/app/_not-found/page.js +1 -1
  15. package/app/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  16. package/app/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/app/apps/web/.next/server/app/api/ask/route.js.nft.json +1 -1
  18. package/app/apps/web/.next/server/app/api/digest/day/[date]/route.js +1 -1
  19. package/app/apps/web/.next/server/app/api/digest/day/[date]/route.js.nft.json +1 -1
  20. package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js +1 -1
  21. package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js.nft.json +1 -1
  22. package/app/apps/web/.next/server/app/api/digest/month-index/route.js.nft.json +1 -1
  23. package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js +1 -1
  24. package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js.nft.json +1 -1
  25. package/app/apps/web/.next/server/app/api/digest/week-index/route.js.nft.json +1 -1
  26. package/app/apps/web/.next/server/app/api/events/route.js.nft.json +1 -1
  27. package/app/apps/web/.next/server/app/api/jobs/route.js.nft.json +1 -1
  28. package/app/apps/web/.next/server/app/api/pdf/[key]/route.js.nft.json +1 -1
  29. package/app/apps/web/.next/server/app/api/runs/[runId]/route.js.nft.json +1 -1
  30. package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route.js.nft.json +1 -1
  31. package/app/apps/web/.next/server/app/api/runs/route.js.nft.json +1 -1
  32. package/app/apps/web/.next/server/app/api/settings/route.js.nft.json +1 -1
  33. package/app/apps/web/.next/server/app/api/team-config/route.js.nft.json +1 -1
  34. package/app/apps/web/.next/server/app/api/workflow-agent/route.js.nft.json +1 -1
  35. package/app/apps/web/.next/server/app/changelog/page/build-manifest.json +5 -5
  36. package/app/apps/web/.next/server/app/changelog/page.js +1 -1
  37. package/app/apps/web/.next/server/app/changelog/page.js.nft.json +1 -1
  38. package/app/apps/web/.next/server/app/changelog/page_client-reference-manifest.js +1 -1
  39. package/app/apps/web/.next/server/app/day/[date]/page/build-manifest.json +5 -5
  40. package/app/apps/web/.next/server/app/day/[date]/page.js +1 -1
  41. package/app/apps/web/.next/server/app/day/[date]/page.js.nft.json +1 -1
  42. package/app/apps/web/.next/server/app/day/[date]/page_client-reference-manifest.js +1 -1
  43. package/app/apps/web/.next/server/app/day/page/build-manifest.json +5 -5
  44. package/app/apps/web/.next/server/app/day/page.js +1 -1
  45. package/app/apps/web/.next/server/app/day/page.js.nft.json +1 -1
  46. package/app/apps/web/.next/server/app/day/page_client-reference-manifest.js +1 -1
  47. package/app/apps/web/.next/server/app/digest/[date]/page/build-manifest.json +5 -5
  48. package/app/apps/web/.next/server/app/digest/[date]/page.js +1 -1
  49. package/app/apps/web/.next/server/app/digest/[date]/page.js.nft.json +1 -1
  50. package/app/apps/web/.next/server/app/digest/[date]/page_client-reference-manifest.js +1 -1
  51. package/app/apps/web/.next/server/app/digest/page/build-manifest.json +5 -5
  52. package/app/apps/web/.next/server/app/digest/page.js +1 -1
  53. package/app/apps/web/.next/server/app/digest/page.js.nft.json +1 -1
  54. package/app/apps/web/.next/server/app/digest/page_client-reference-manifest.js +1 -1
  55. package/app/apps/web/.next/server/app/insights/[key]/page/build-manifest.json +5 -5
  56. package/app/apps/web/.next/server/app/insights/[key]/page.js +1 -1
  57. package/app/apps/web/.next/server/app/insights/[key]/page.js.nft.json +1 -1
  58. package/app/apps/web/.next/server/app/insights/[key]/page_client-reference-manifest.js +1 -1
  59. package/app/apps/web/.next/server/app/insights/page/build-manifest.json +5 -5
  60. package/app/apps/web/.next/server/app/insights/page.js +3 -2
  61. package/app/apps/web/.next/server/app/insights/page.js.nft.json +1 -1
  62. package/app/apps/web/.next/server/app/insights/page_client-reference-manifest.js +1 -1
  63. package/app/apps/web/.next/server/app/page/build-manifest.json +5 -5
  64. package/app/apps/web/.next/server/app/page.js +1 -1
  65. package/app/apps/web/.next/server/app/page.js.nft.json +1 -1
  66. package/app/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  67. package/app/apps/web/.next/server/app/parallelism/page/build-manifest.json +5 -5
  68. package/app/apps/web/.next/server/app/parallelism/page.js +1 -1
  69. package/app/apps/web/.next/server/app/parallelism/page.js.nft.json +1 -1
  70. package/app/apps/web/.next/server/app/parallelism/page_client-reference-manifest.js +1 -1
  71. package/app/apps/web/.next/server/app/print/[key]/page/build-manifest.json +5 -5
  72. package/app/apps/web/.next/server/app/print/[key]/page.js +1 -1
  73. package/app/apps/web/.next/server/app/print/[key]/page.js.nft.json +1 -1
  74. package/app/apps/web/.next/server/app/print/[key]/page_client-reference-manifest.js +1 -1
  75. package/app/apps/web/.next/server/app/projects/[slug]/page/build-manifest.json +5 -5
  76. package/app/apps/web/.next/server/app/projects/[slug]/page.js +1 -1
  77. package/app/apps/web/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  78. package/app/apps/web/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  79. package/app/apps/web/.next/server/app/projects/page/build-manifest.json +5 -5
  80. package/app/apps/web/.next/server/app/projects/page.js +1 -1
  81. package/app/apps/web/.next/server/app/projects/page.js.nft.json +1 -1
  82. package/app/apps/web/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  83. package/app/apps/web/.next/server/app/runs/page/build-manifest.json +5 -5
  84. package/app/apps/web/.next/server/app/runs/page.js +1 -1
  85. package/app/apps/web/.next/server/app/runs/page.js.nft.json +1 -1
  86. package/app/apps/web/.next/server/app/runs/page_client-reference-manifest.js +1 -1
  87. package/app/apps/web/.next/server/app/sessions/[id]/page/build-manifest.json +5 -5
  88. package/app/apps/web/.next/server/app/sessions/[id]/page.js +1 -1
  89. package/app/apps/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  90. package/app/apps/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  91. package/app/apps/web/.next/server/app/sessions/page/build-manifest.json +5 -5
  92. package/app/apps/web/.next/server/app/sessions/page.js +1 -1
  93. package/app/apps/web/.next/server/app/sessions/page.js.nft.json +1 -1
  94. package/app/apps/web/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  95. package/app/apps/web/.next/server/app/settings/page/build-manifest.json +5 -5
  96. package/app/apps/web/.next/server/app/settings/page.js +1 -1
  97. package/app/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
  98. package/app/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  99. package/app/apps/web/.next/server/app/team/page/build-manifest.json +5 -5
  100. package/app/apps/web/.next/server/app/team/page.js +1 -1
  101. package/app/apps/web/.next/server/app/team/page.js.nft.json +1 -1
  102. package/app/apps/web/.next/server/app/team/page_client-reference-manifest.js +1 -1
  103. package/app/apps/web/.next/server/app/usage/page/build-manifest.json +5 -5
  104. package/app/apps/web/.next/server/app/usage/page.js +1 -1
  105. package/app/apps/web/.next/server/app/usage/page.js.nft.json +1 -1
  106. package/app/apps/web/.next/server/app/usage/page_client-reference-manifest.js +1 -1
  107. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0gril0u._.js +9 -0
  108. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0n79hpm._.js +9 -0
  109. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0~utv~v._.js +9 -0
  110. package/app/apps/web/.next/server/chunks/packages_parser_dist_06d9se1._.js +1 -1
  111. package/app/apps/web/.next/server/chunks/packages_parser_dist_10ihc3~._.js +1 -1
  112. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0exckd4._.js +1 -1
  113. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0-1_njm._.js → [root-of-the-server]__0k1x-c9._.js} +2 -2
  114. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0lhwp-k._.js +8 -0
  115. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0n-ax-5._.js +1 -1
  116. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0~.f_3z._.js +3 -3
  117. package/app/apps/web/.next/server/chunks/ssr/_0kajk31._.js +1 -1
  118. package/app/apps/web/.next/server/chunks/ssr/_0s3n5mz._.js +8 -0
  119. package/app/apps/web/.next/server/chunks/ssr/_0xu2pvc._.js +1 -1
  120. package/app/apps/web/.next/server/chunks/ssr/{_0jw2sm7._.js → _12mbgs5._.js} +2 -2
  121. package/app/apps/web/.next/server/chunks/ssr/apps_web_app_day_[date]_day-view_tsx_0wjoe1u._.js +1 -1
  122. package/app/apps/web/.next/server/chunks/ssr/apps_web_app_insights_page_tsx_071kwyw._.js +3 -0
  123. package/app/apps/web/.next/server/chunks/ssr/apps_web_app_sessions_sessions-grid_tsx_0bri5x.._.js +3 -0
  124. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0l6hsch._.js +6 -0
  125. package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_changelog_ts_0n7_p1d._.js +1 -1
  126. package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_changelog_ts_0nb5_-s._.js +1 -1
  127. package/app/apps/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_0cepfi8._.js +3 -0
  128. package/app/apps/web/.next/server/chunks/ssr/packages_entries_dist_node_0_271yr.js +1 -1
  129. package/app/apps/web/.next/server/chunks/ssr/packages_parser_dist_0mx_509._.js +1 -1
  130. package/app/apps/web/.next/server/middleware-build-manifest.js +8 -8
  131. package/app/apps/web/.next/server/middleware-manifest.json +5 -5
  132. package/app/apps/web/.next/server/pages/500.html +1 -1
  133. package/app/apps/web/.next/server/server-reference-manifest.js +1 -1
  134. package/app/apps/web/.next/server/server-reference-manifest.json +1 -1
  135. package/app/apps/web/.next/static/chunks/02xxpexzk3rf-.js +1 -0
  136. package/app/apps/web/.next/static/chunks/{07lbm-sdh9c2j.js → 0389wb_f0j78j.js} +1 -1
  137. package/app/apps/web/.next/static/chunks/03gy1evbn94qu.js +6 -0
  138. package/app/apps/web/.next/static/chunks/03rd.3cc_t~yf.js +4 -0
  139. package/app/apps/web/.next/static/chunks/{0l4e3as18eexy.js → 0g223u9amib0q.js} +1 -1
  140. package/app/apps/web/.next/static/chunks/{0h3.-_s-k0mj3.js → 0i.hc~2bj0_3d.js} +1 -1
  141. package/app/apps/web/.next/static/chunks/0m7dd-2zd9vl2.js +4 -0
  142. package/app/apps/web/.next/static/chunks/0nqklmbs5s3ax.js +6 -0
  143. package/app/apps/web/.next/static/chunks/{073081qv4uyn8.js → 0p--hzrway8~3.js} +1 -1
  144. package/app/apps/web/.next/static/chunks/{0gblp_v.kiu-..js → 0qv-gw888_5nu.js} +1 -1
  145. package/app/apps/web/.next/static/chunks/{14bjditmmrn7l.js → 0tirv_vo6q8uc.js} +1 -1
  146. package/app/apps/web/.next/static/chunks/0uyctl-m8iydb.js +1 -0
  147. package/app/apps/web/.next/static/chunks/0~qdw1b2uz._5.js +10 -0
  148. package/app/apps/web/.next/static/chunks/{0n0n.0279ot6c.js → 14vx702c32kn6.js} +1 -1
  149. package/app/apps/web/.next/static/chunks/{turbopack-0lb9w090w5ezx.js → turbopack-0mxu3~9vk.brh.js} +1 -1
  150. package/app/apps/web/app/api/digest/_shared/digest-route-helpers.ts +178 -0
  151. package/app/apps/web/app/api/digest/day/[date]/route.ts +34 -128
  152. package/app/apps/web/app/api/digest/month/[yearMonth]/route.ts +36 -121
  153. package/app/apps/web/app/api/digest/week/[startDate]/route.ts +36 -123
  154. package/app/apps/web/app/insights/page.tsx +20 -5
  155. package/app/apps/web/app/parallelism/burst-detail-modal.tsx +637 -0
  156. package/app/apps/web/app/parallelism/concurrency-info-modal.tsx +228 -0
  157. package/app/apps/web/app/parallelism/gantt-chart-utils.ts +49 -0
  158. package/app/apps/web/app/parallelism/gantt-chart.tsx +24 -903
  159. package/app/apps/web/app/sessions/[id]/session-view/colors.ts +31 -0
  160. package/app/apps/web/app/sessions/[id]/session-view/debug-list.tsx +78 -0
  161. package/app/apps/web/app/sessions/[id]/session-view/drawer.tsx +414 -0
  162. package/app/apps/web/app/sessions/[id]/session-view/entry-day-strip.tsx +124 -0
  163. package/app/apps/web/app/sessions/[id]/session-view/header-stats.tsx +217 -0
  164. package/app/apps/web/app/sessions/[id]/session-view/helpers.ts +135 -0
  165. package/app/apps/web/app/sessions/[id]/session-view/minimap.tsx +1587 -0
  166. package/app/apps/web/app/sessions/[id]/session-view/subagent-drawer.tsx +339 -0
  167. package/app/apps/web/app/sessions/[id]/session-view/token-stats.tsx +111 -0
  168. package/app/apps/web/app/sessions/[id]/session-view/tooltip.tsx +63 -0
  169. package/app/apps/web/app/sessions/[id]/session-view/types.ts +46 -0
  170. package/app/apps/web/app/sessions/[id]/session-view/workflows-panel.tsx +944 -0
  171. package/app/apps/web/app/sessions/[id]/session-view/workflows-shared.tsx +104 -0
  172. package/app/apps/web/app/sessions/[id]/session-view.tsx +1513 -5018
  173. package/app/apps/web/app/sessions/[id]/team-tab/minimap-hover-card.tsx +201 -0
  174. package/app/apps/web/app/sessions/[id]/team-tab/minimap-idle-band.tsx +53 -0
  175. package/app/apps/web/app/sessions/[id]/team-tab/minimap-shared.ts +20 -0
  176. package/app/apps/web/app/sessions/[id]/team-tab/team-minimap.tsx +10 -265
  177. package/app/apps/web/app/sessions/sessions-grid.tsx +10 -10
  178. package/app/apps/web/components/digest-actions.tsx +103 -0
  179. package/app/apps/web/components/job-queue-widget.tsx +1 -1
  180. package/app/apps/web/components/month-digest-view.tsx +19 -64
  181. package/app/apps/web/components/searchable-select.tsx +215 -0
  182. package/app/apps/web/components/tail-mode.tsx +46 -9
  183. package/app/apps/web/components/week-digest-view.tsx +16 -71
  184. package/app/apps/web/lib/changelog-data.generated.ts +1 -1
  185. package/app/apps/web/lib/entries-index.ts +7 -8
  186. package/app/apps/web/lib/entries.ts +0 -9
  187. package/app/apps/web/lib/format.test.ts +221 -0
  188. package/app/apps/web/lib/format.ts +17 -0
  189. package/app/apps/web/lib/utilization-tone.test.ts +56 -0
  190. package/app/apps/web/package.json +1 -1
  191. package/app/apps/web/tsconfig.tsbuildinfo +1 -1
  192. package/dist/daemon-worker.js +35 -43
  193. package/dist/index.js +37 -49
  194. package/package.json +1 -1
  195. package/app/apps/web/.next/server/chunks/[root-of-the-server]__04j3tng._.js +0 -9
  196. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0cnh3k4._.js +0 -9
  197. package/app/apps/web/.next/server/chunks/[root-of-the-server]__132eosx._.js +0 -9
  198. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__136-0me._.js +0 -8
  199. package/app/apps/web/.next/server/chunks/ssr/_0w.cv64._.js +0 -8
  200. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_01d-iwx._.js +0 -6
  201. package/app/apps/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_0-lmm4p._.js +0 -3
  202. package/app/apps/web/.next/static/chunks/05k84gif3ucxm.js +0 -6
  203. package/app/apps/web/.next/static/chunks/0nnjldasalwdu.js +0 -4
  204. package/app/apps/web/.next/static/chunks/0okg13phslr1..js +0 -4
  205. package/app/apps/web/.next/static/chunks/0pzt9vemtzct8.js +0 -10
  206. package/app/apps/web/.next/static/chunks/0qmh5da6gfm56.js +0 -1
  207. package/app/apps/web/.next/static/chunks/0rnay-a.-jr8-.js +0 -1
  208. package/app/apps/web/.next/static/chunks/0snv3-2ux2xvv.js +0 -6
  209. /package/app/apps/web/.next/static/{rbp9x3iPbzrz-wxS-DAU5 → bZs5UyzsYBqC6MFY5n-M_}/_buildManifest.js +0 -0
  210. /package/app/apps/web/.next/static/{rbp9x3iPbzrz-wxS-DAU5 → bZs5UyzsYBqC6MFY5n-M_}/_clientMiddlewareManifest.js +0 -0
  211. /package/app/apps/web/.next/static/{rbp9x3iPbzrz-wxS-DAU5 → bZs5UyzsYBqC6MFY5n-M_}/_ssgManifest.js +0 -0
@@ -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:"✺"},a={kind:"antigravity",displayName:"Antigravity",shortLabel:"Agy",accentColor:"rgb(236, 72, 153)",iconChar:"⏃"},n={kind:"cowork",displayName:"Cowork",shortLabel:"Cowork",accentColor:"rgb(217, 119, 87)",iconChar:"⌘"},o=[t,i,s,a,n];o.map(e=>e.kind),e.s(["ANTIGRAVITY_METADATA",0,a,"CLAUDE_CODE_METADATA",0,t,"CODEX_METADATA",0,i,"COWORK_METADATA",0,n,"GEMINI_METADATA",0,s,"agentMetadata",0,o])},79357,e=>{"use strict";let t=["/.claude/worktrees/","/.worktrees/","/claude/worktrees/"],i=/\/conductor\/workspaces\/[^/]+\/([^/]+)(?:\/|$)/,s="/.superset/worktrees/",a=/^[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 n=e.replace(/\/{2,}/g,"/"),o=function(e){for(let i of t){let t=e.lastIndexOf(i);if(t>=0)return{idx:t,marker:i}}return null}(n);if(o)return n.slice(0,o.idx);let r=function(e){let t=i.exec(e);if(!t)return null;let s=t[1],a=+!!t[0].endsWith("/");return{canonicalEndIdx:t.index+t[0].length-s.length-1-a,workspaceName:s}}(n);if(r)return n.slice(0,r.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 n=a.test(i[0])?i[1]??i[0]:i[0];return{canonical:e.slice(0,t)+s+n,workspaceName:n}}(n);return l?l.canonical:n},"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,a=t.minActive??2,n=[];for(let t of e)for(let e of t.segments)e.endMs<=e.startMs||(n.push({ms:e.startMs,delta:1,sessionId:t.id}),n.push({ms:e.endMs,delta:-1,sessionId:t.id}));n.sort((e,t)=>e.ms-t.ms||t.delta-e.delta);let o=new Map,r=[],l=null;for(let e of n){if(1===e.delta)o.set(e.sessionId,(o.get(e.sessionId)??0)+1);else{let t=(o.get(e.sessionId)??0)-1;t<=0?o.delete(e.sessionId):o.set(e.sessionId,t)}let t=o.size;if(t>=a)if(l)for(let i of(l.endMs=e.ms,t>l.peak&&(l.peak=t),o.keys()))l.sessionIds.add(i);else l={startMs:e.ms,endMs:e.ms,peak:t,sessionIds:new Set(o.keys())};else l&&(l.endMs=e.ms,r.push(l),l=null)}l&&r.push(l);let u=r.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"),a=String(t.getDate()).padStart(2,"0");return`${i}-${s}-${a}`}])},36521,e=>{"use strict";let t=[/<system_instruction\b[^>]*>[\s\S]*?<\/system_instruction>\s*/gi],i=["<command-name>","<local-command-stdout>","<local-command-caveat>","<task-notification>","Base directory for this skill:","This session is being continued from a previous conversation","A session-scoped Stop hook is now active"];function s(e){if(!e)return e;let i=e;for(let e of t)i=i.replace(e,"");return i.trim()}e.s(["isFrameworkInjectedUserInput",0,function(e){if(!e)return!1;let t=s(e);if(!t)return!0;for(let e of i)if(t.startsWith(e))return!0;return!1},"stripFrameworkBoilerplate",0,s])},43427,20629,e=>{"use strict";let t;e.s(["cclensHome",()=>eL,"cclensPath",()=>eq,"getAnySession",()=>eY,"invalidateFile",()=>eG],43427);var i=e.i(2157),s=e.i(60526),a=e.i(50227),n=e.i(39587),o=e.i(36521),r=e.i(79357);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(),a="message";if(s.startsWith("{"))try{let e=JSON.parse(s);"idle_notification"===e.type?a="idle-notification":"shutdown_request"===e.type?a="shutdown-request":"shutdown_approved"===e.type?a="shutdown-approved":"task_assignment"===e.type?a="task-assignment":"teammate_terminated"===e.type&&(a="teammate-terminated")}catch{}return{teammateId:i,body:s,kind:a}}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,a,n,c,f,d,y,g=[];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,a=e.parentUuid??null,n=e.timestamp;if("assistant"===i){let o,r,l,c=e.message??{},p=c.content??[],f=m(c.usage),d=c.model,y=e.requestId,g=c.id,h=c.stop_reason,w=p[0],M="agent";return w?.type==="thinking"?(M="agent-thinking",o="[thinking] "+u(w.thinking,140)):w?.type==="tool_use"?(M="tool-call",r=w.name,l=w.id,o=`${w.name} `+u(JSON.stringify(w.input??{}),100)):o=w?.type==="text"?u(w.text,200):`<assistant:${w?.type??"empty"}>`,{index:t,uuid:s,parentUuid:a,timestamp:n,role:M,rawType:i,preview:o,blocks:p,usage:f,model:d,requestId:y,messageId:g,stopReason:h,toolName:r,toolUseId:l,raw:e}}if("user"===i){let r=(e.message??{}).content;if("string"==typeof r){let l=(0,o.stripFrameworkBoilerplate)(r),c=p(l);return{index:t,uuid:s,parentUuid:a,timestamp:n,role:"user",rawType:i,preview:u(l,200),blocks:l?[{type:"text",text:l}]:[],raw:e,teammateMessage:c}}if(Array.isArray(r)){let l=r[0];if(l?.type==="tool_result")return{index:t,uuid:s,parentUuid:a,timestamp:n,role:"tool-result",rawType:i,preview:u("string"==typeof l.content?l.content:JSON.stringify(l.content),200),blocks:r,toolUseId:l.tool_use_id,toolResult:e.toolUseResult,raw:e};let c=r.find(e=>e?.type==="text"),m=c?(0,o.stripFrameworkBoilerplate)(c.text):"",f=c?r.map(e=>e===c?{type:"text",text:m}:e):r,d=m?p(m):void 0;return{index:t,uuid:s,parentUuid:a,timestamp:n,role:"user",rawType:i,preview:m?u(m,200):u(JSON.stringify(r),200),blocks:f,raw:e,teammateMessage:d}}}if("attachment"===i){let o=e.attachment??{},r=String(o.type??"attachment"),l=`<attachment: ${r}>`;return"string"==typeof o.content&&o.content.length>0?l=`[${r}] `+u(o.content,140):Array.isArray(o.addedNames)&&(l=`[${r}] +${o.addedNames.length} names`),{index:t,uuid:s,parentUuid:a,timestamp:n,role:"system",rawType:i,preview:l,blocks:[{type:"text",text:JSON.stringify(o,null,2)}],attachmentType:r,raw:e}}return{index:t,uuid:s,parentUuid:a,timestamp:n,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&&g.push(i)}let h=g.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,k=void 0!==M?new Date(M).toISOString():void 0;for(let e of g){if(!e.timestamp)continue;let t=Date.parse(e.timestamp);Number.isNaN(t)||void 0!==w&&(e.tOffsetMs=Math.max(0,t-w))}let _=g.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<_.length;e++)_[e].e.gapMs=Math.max(0,_[e].ms-_[e-1].ms);let j=g.filter(e=>e.timestamp).map(e=>Date.parse(e.timestamp)).filter(e=>!Number.isNaN(e)).sort((e,t)=>e-t),b=[],N=0;if(j.length>0){let e=j[0],t=j[0];for(let i=1;i<j.length;i++){let s=j[i],a=s-t;a>18e4?(b.push({startMs:e,endMs:t}),e=s):a>0&&(N+=a),t=s}b.push({startMs:e,endMs:t})}let I=new Map,x=[];for(let e of g){if(!e.timestamp)continue;let t=Date.parse(e.timestamp);if(!Number.isNaN(t)){if("assistant"===e.rawType&&e.usage&&e.messageId){let i=I.get(e.messageId);i?(i.siblings.push(e),t<i.ms&&(i.rep=e,i.ms=t)):I.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 T=[...I.values()].sort((e,t)=>e.ms-t.ms);x.sort((e,t)=>e.ms-t.ms);let S=0,A=0,C=(e,t)=>{for(let i of e.siblings)i.coldResume=t;S++,A+=t.writeTokens},P=new Set;for(let e of x){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,a=s.cacheWrite+s.cacheRead;C(i,{trigger:"compact",gapMs:void 0!==t?i.ms-t:0,writeTokens:s.cacheWrite,writeRatio:a>0?s.cacheWrite/a:0,compact:{trigger:e.trigger,preTokens:e.preTokens}}),P.add(i.rep.messageId)}for(let e=1;e<T.length;e++){let t=T[e-1],i=T[e];if(P.has(i.rep.messageId))continue;let s=i.rep.usage,a=s.cacheWrite+s.cacheRead,n=a>0?s.cacheWrite/a:0,o=i.ms-t.ms;o>3e5&&s.cacheWrite>=1e3&&n>=.3&&C(i,{trigger:"idle",gapMs:o,writeTokens:s.cacheWrite,writeRatio:n})}let D={...l},R=new Set,$="",O=!1,B=!1,z=0,F=0,W=0,E=0,U=new Set,J=new Map,L=void 0!==w?(0,r.toLocalDay)(w):void 0,q=e=>{let t;if(e){let i=Date.parse(e);Number.isNaN(i)||(t=(0,r.toLocalDay)(i))}if(!(t=t??L))return;let i=J.get(t);return i||(i={toolCalls:0,turns:0,tokens:{...l}},J.set(t,i)),i};for(let e of g){if("tool-call"===e.role){z++;let t=q(e.timestamp);t&&t.toolCalls++;let i=e.blocks.find(e=>e&&"tool_use"===e.type);if(i){let e=i.input??{};if("TeamCreate"===i.name&&(O=!0),"SendMessage"===i.name){let t="string"==typeof e.to?e.to:"";t&&"team-lead"!==t&&(B=!0)}let t="string"==typeof e.file_path?e.file_path:void 0;if("Edit"===i.name&&t){U.add(t);let i="string"==typeof e.old_string?e.old_string:"",s="string"==typeof e.new_string?e.new_string:"",a=i?i.split("\n").length:0,n=s?s.split("\n").length:0;W+=Math.max(0,n-a),E+=Math.max(0,a-n)}else if("Write"===i.name&&t){U.add(t);let i="string"==typeof e.content?e.content:"";W+=i?i.split("\n").length:0}}}if("user"===e.role){let t=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=(0,o.isFrameworkInjectedUserInput)(t),s=void 0!==e.teammateMessage&&!c;if(!i&&!s){f||(f=e.teammateMessage?e.teammateMessage.body:e.preview),F++;let t=q(e.timestamp);t&&t.turns++,y=e.preview}}"agent"===e.role&&(d=e.preview)}for(let o of e)if(o&&"object"==typeof o&&("string"!=typeof o.sessionId||$||($=o.sessionId),"string"!=typeof o.cwd||i||(i=o.cwd),"string"!=typeof o.gitBranch||s||(s=o.gitBranch),"string"!=typeof o.entrypoint||a||(a=o.entrypoint),"string"!=typeof o.teamName||n||(n=o.teamName),"string"!=typeof o.agentName||c||(c=o.agentName),"assistant"===o.type)){let e=o.message;if(e){"string"!=typeof e.model||t||(t=e.model);let i="string"==typeof e.id?e.id:void 0,s="string"==typeof o.requestId?o.requestId:void 0,a=null!=i?`${i}:${s??""}`:void 0;if(a&&R.has(a))continue;a&&R.add(a);let n=m(e.usage);if(n){D.input+=n.input,D.output+=n.output,D.cacheRead+=n.cacheRead,D.cacheWrite+=n.cacheWrite;let e=q("string"==typeof o.timestamp?o.timestamp:void 0);e&&(e.tokens.input+=n.input,e.tokens.output+=n.output,e.tokens.cacheRead+=n.cacheRead,e.tokens.cacheWrite+=n.cacheWrite)}}}return{events:g,meta:{sessionId:$,firstTimestamp:v,lastTimestamp:k,durationMs:void 0!==w&&void 0!==M?M-w:void 0,eventCount:g.length,model:t,cwd:i,gitBranch:s,entrypoint:a,totalUsage:D,status:"idle",firstUserPreview:f,lastUserPreview:y,lastAgentPreview:d,toolCallCount:z,turnCount:F,dailyBreakdown:Array.from(J.entries()).map(([e,t])=>({day:e,toolCalls:t.toolCalls,turns:t.turns,tokens:t.tokens})).sort((e,t)=>e.day.localeCompare(t.day)),airTimeMs:N,activeSegments:b,linesAdded:W,linesRemoved:E,filesEdited:U.size,coldResumeCount:S,cacheRebuildTokens:A,teamName:n,agentName:c,isTeamLead:void 0!==n&&void 0===c&&(O||B)}}}let d=a.default.join(s.default.homedir(),".claude","projects");function y(e){return e.startsWith("-")?"/"+e.slice(1).replace(/-/g,"/"):e}let g=a.default.join(s.default.homedir(),".cclens","runtime").replace(/[/.]/g,"-");async function h(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 w(e){return e.replace(/\.jsonl$/i,"")}let M=new Map,v=new Map,k=new Map,_=null;function j(e){M.delete(e),v.delete(e),k.delete(e),_=null}async function b(e=d){let t;if(_&&_.root===e&&Date.now()-_.capturedAtMs<1e3)return _.files;try{t=await i.promises.readdir(e,{withFileTypes:!0})}catch{return[]}let s=t.filter(e=>e.isDirectory()&&e.name!==g).map(e=>e.name),n=(await Promise.all(s.map(async t=>{let s,n=a.default.join(e,t);try{s=await i.promises.readdir(n)}catch{return[]}let o=s.filter(e=>e.endsWith(".jsonl"));return(await Promise.all(o.map(async e=>{let s=a.default.join(n,e);try{let a=await i.promises.stat(s);return{projectDir:t,fileName:e,fullPath:s,mtimeMs:a.mtimeMs,sizeBytes:a.size}}catch{return null}}))).filter(e=>null!==e)}))).flat();return _={files:n,capturedAtMs:Date.now(),root:e},n}let N={input:0,output:0,cacheRead:0,cacheWrite:0};function I(e,t,i,s,a){for(let n of e){if(!n||"object"!=typeof n||"assistant"!==n.type)continue;let e=n.message;if(!e)continue;let o="string"==typeof e.id?e.id:void 0,l="string"==typeof n.requestId?n.requestId:void 0,u=null!=o&&null!=l?`${o}:${l}`:void 0;if(u&&t.has(u))continue;u&&t.add(u);let c=e.usage;if(c){let e=e=>"number"==typeof e?e:0,t=e(c.input_tokens),o=e(c.output_tokens),l=e(c.cache_read_input_tokens),u=e(c.cache_creation_input_tokens);if(i.input+=t,i.output+=o,i.cacheRead+=l,i.cacheWrite+=u,s){let e,i="string"==typeof n.timestamp?n.timestamp:void 0;if(i){let t=Date.parse(i);Number.isNaN(t)||(e=(0,r.toLocalDay)(t))}if(e=e??a){let i=s.get(e);i||(i={...N},s.set(e,i)),i.input+=t,i.output+=o,i.cacheRead+=l,i.cacheWrite+=u}}}}}async function x(e,t,s,n){let o,r={...N},l=new Set,u=new Map;I(e,l,r,u,n);let c=a.default.join(t,s,"subagents");try{o=await i.promises.readdir(c)}catch{return{usage:r,perDay:u}}let p=o.filter(e=>e.endsWith(".jsonl"));return 0===p.length||await Promise.all(p.map(async e=>{try{let t=await h(a.default.join(c,e));I(t,l,r,u,n)}catch{}})),{usage:r,perDay:u}}async function T(e,t){let s,n=a.default.join(e,t,"workflows");try{s=await i.promises.readdir(n)}catch{return{workflowCount:0,spawnedAgentCount:0,spans:[]}}let o=s.filter(e=>e.startsWith("wf_")&&e.endsWith(".json"));if(0===o.length)return{workflowCount:0,spawnedAgentCount:0,spans:[]};let r=0,l=[];return{workflowCount:(await Promise.all(o.map(async e=>{try{let t=JSON.parse(await i.promises.readFile(a.default.join(n,e),"utf8"));return"number"==typeof t.agentCount&&(r+=t.agentCount),"number"==typeof t.startTime&&"number"==typeof t.durationMs&&t.durationMs>0&&l.push({startMs:t.startTime,endMs:t.startTime+t.durationMs}),!0}catch{return!1}}))).filter(Boolean).length,spawnedAgentCount:r,spans:l}}async function S(e,t){let s;try{s=await i.promises.readdir(e,{withFileTypes:!0})}catch{return 0}return(await Promise.all(s.map(async s=>{let n=a.default.join(e,s.name);try{if(s.isDirectory())return t>0?await S(n,t-1):0;return(await i.promises.stat(n)).mtimeMs}catch{return 0}}))).reduce((e,t)=>Math.max(e,t),0)}async function A(e,t){let i=a.default.join(e,t),[s,n]=await Promise.all([S(a.default.join(i,"subagents"),2),S(a.default.join(i,"workflows"),0)]),o=Math.max(s,n);return o>0?o:void 0}async function C(e,t){let i=await A(a.default.dirname(t.fullPath),e.id),s=e.lastTimestamp?Date.parse(e.lastTimestamp):0,n=Math.max(Number.isFinite(s)?s:0,i??0);return n>0?{...e,lastActivityMs:n}:e}function P(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],a=s[s.length-1];t.startMs<=a.endMs?a.endMs=Math.max(a.endMs,t.endMs):s.push({...t})}let a=s.reduce((e,t)=>e+(t.endMs-t.startMs),0);return{activeSegments:s,airTimeMs:a}}async function D(e,t,i){let s=w(i.fileName),n=a.default.dirname(i.fullPath),o=e.firstTimestamp?(0,r.toLocalDay)(Date.parse(e.firstTimestamp)):void 0,{usage:l,perDay:u}=await x(t,n,s,o);e.totalUsage=l,e.dailyBreakdown=function(e,t,i){let s=new Map((e??[]).map(e=>[e.day,e])),a=[...new Set([...s.keys(),...t.keys()])].sort((e,t)=>e.localeCompare(t)).map(e=>({day:e,toolCalls:s.get(e)?.toolCalls??0,turns:s.get(e)?.turns??0,tokens:{...t.get(e)??N}}));if(a.length>0){let e=a.reduce((e,t)=>({input:e.input+t.tokens.input,output:e.output+t.tokens.output,cacheRead:e.cacheRead+t.tokens.cacheRead,cacheWrite:e.cacheWrite+t.tokens.cacheWrite}),{...N}),t=a[0].tokens;t.input+=i.input-e.input,t.output+=i.output-e.output,t.cacheRead+=i.cacheRead-e.cacheRead,t.cacheWrite+=i.cacheWrite-e.cacheWrite}return a}(e.dailyBreakdown,u,l)}async function R(e){let t=M.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.meta;try{let t=await h(e.fullPath),{meta:i}=f(t);await D(i,t,e);let s=w(e.fileName),n=a.default.dirname(e.fullPath),o=await T(n,s),r={...i,id:s,filePath:e.fullPath,projectDir:e.projectDir,projectName:i.cwd??y(e.projectDir),...o.workflowCount>0?{workflowCount:o.workflowCount,spawnedAgentCount:o.spawnedAgentCount}:{},...P(i.activeSegments,o.spans)};return M.set(e.fullPath,{meta:r,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),r}catch{return null}}async function $(e){let t=v.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.detail;try{let t=await h(e.fullPath),{meta:i,events:s}=f(t),n=w(e.fileName);await D(i,t,e);let o=await T(a.default.dirname(e.fullPath),n),r={...i,id:n,filePath:e.fullPath,projectDir:e.projectDir,projectName:i.cwd??y(e.projectDir),events:s,...o.workflowCount>0?{workflowCount:o.workflowCount,spawnedAgentCount:o.spawnedAgentCount}:{},...P(i.activeSegments,o.spans)};v.set(e.fullPath,{detail:r,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes});let l={...r};return delete l.events,M.set(e.fullPath,{meta:l,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),r}catch{return null}}async function O(e={}){let{root:t=d,limit:i=500,projectDir:s}=e,a=await b(t);s&&(a=a.filter(e=>e.projectDir===s)),a.sort((e,t)=>t.mtimeMs-e.mtimeMs);let n=a.slice(0,i);return(await Promise.all(n.map(async e=>{let t=await R(e);return t?C(t,e):null}))).filter(e=>null!==e)}async function B(e,t={}){let{root:i=d}=t,s=(await b(i)).find(t=>w(t.fileName)===e);if(!s)return null;let n=await $(s);if(!n)return n;let o=n.firstTimestamp?Date.parse(n.firstTimestamp):void 0,r=a.default.join(a.default.dirname(s.fullPath),w(s.fileName),"subagents"),l=a.default.join(a.default.dirname(s.fullPath),w(s.fileName),"workflows"),[u,c]=await Promise.all([z(r,o,n.events),F(l,o,n.events)]),p=c.reduce((e,t)=>e+t.agentCount,0);return C({...n,subagents:u,workflows:c,...c.length>0?{workflowCount:c.length,spawnedAgentCount:p}:{}},s)}async function z(e,t,s){let n;try{n=await i.promises.readdir(e)}catch{return[]}let o=new Map,r=[];for(let e of s)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,a=e.timestamp?Date.parse(e.timestamp):void 0,n={toolUseId:t.id,parentUuid:e.uuid??"",runInBackground:!0===i.run_in_background,prompt:"string"==typeof i.prompt?i.prompt:void 0,tsMs:a};s&&o.set(s,n),void 0!==a&&r.push(n)}r.sort((e,t)=>(e.tsMs??0)-(t.tsMs??0));let l=n.filter(e=>e.startsWith("agent-")&&e.endsWith(".jsonl"));return(await Promise.all(l.map(async s=>{let n,l=s.replace(/^agent-/,"").replace(/\.jsonl$/,""),u=a.default.join(e,s),c=a.default.join(e,`agent-${l}.meta.json`),p={};try{let e=await i.promises.readFile(c,"utf8");p=JSON.parse(e)}catch{}try{n=await h(u)}catch{return null}let m=function(e){let t,i,s,a,n,o={...N},r=new Set,l=0,u=0,c=0,p=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===n&&"user"===m.type&&(null===m.parentUuid||void 0===m.parentUuid)){let e=m.message,t=e?.content;if("string"==typeof t)n=t;else if(Array.isArray(t)){let e=t.find(e=>e&&"object"==typeof e&&"text"===e.type);e?.text&&(n=e.text)}}if("assistant"===m.type){let e=m.message;if(!e)continue;a||"string"!=typeof e.model||(a=e.model);let t="string"==typeof e.id?e.id:void 0,i="string"==typeof m.requestId?m.requestId:void 0,n=null!=t&&null!=i?`${t}:${i}`:void 0,l=!n||!r.has(n);if(n&&l&&r.add(n),l){u++;let t=e.usage;if(t){let e=e=>"number"==typeof e?e:0;o.input+=e(t.input_tokens),o.output+=e(t.output_tokens),o.cacheRead+=e(t.cache_read_input_tokens),o.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&&(c++,p.set(e.name,(p.get(e.name)??0)+1)))}}let m=Array.from(p.entries()).map(([e,t])=>({name:e,count:t})).sort((e,t)=>t.count-e.count);return{startMs:t,endMs:i,totalUsage:o,eventCount:l,finalPreview:void 0!==s?s.replace(/\s+/g," ").trim().slice(0,240):void 0,finalText:s,model:a,toolCalls:m,toolCallCount:c,assistantMessageCount:u,initialPrompt:n}}(n),f=p.description&&p.description.trim().length>0?p.description:void 0,d=f?o.get(f):function(e){let t;if(void 0===e)return;let i=1/0;for(let s of r){if(void 0===s.tsMs)continue;let a=Math.abs(e-s.tsMs);a<i&&a<=2e3&&(t=s,i=a)}return t}(m.startMs),y=f??(m.initialPrompt?m.initialPrompt.replace(/\s+/g," ").trim().slice(0,80):"(no description)"),g=d?.prompt??m.initialPrompt,w=void 0!==t&&void 0!==m.startMs?Math.max(0,m.startMs-t):void 0,M=void 0!==t&&void 0!==m.endMs?Math.max(0,m.endMs-t):void 0,v=void 0!==m.startMs&&void 0!==m.endMs?m.endMs-m.startMs:void 0;return{agentId:l,agentType:p.agentType??"unknown",description:y,startMs:m.startMs,endMs:m.endMs,durationMs:v,startTOffsetMs:w,endTOffsetMs:M,eventCount:m.eventCount,totalUsage:m.totalUsage,parentUuid:d?.parentUuid,parentToolUseId:d?.toolUseId,runInBackground:d?.runInBackground,prompt:g,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))}async function F(e,t,s){let n;try{n=await i.promises.readdir(e)}catch{return[]}let o=n.filter(e=>e.startsWith("wf_")&&e.endsWith(".json"));if(0===o.length)return[];let r=[];for(let e of s){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&&r.push({toolUseId:i.id,parentUuid:e.uuid??"",tsMs:t})}r.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(o.map(async s=>{let n;try{n=JSON.parse(await i.promises.readFile(a.default.join(e,s),"utf8"))}catch{return null}let o=u(n.runId)??s.replace(/\.json$/,""),c=l(n.startTime),p=l(n.durationMs),m=void 0!==c&&void 0!==p?c+p:void 0,f=void 0!==t&&void 0!==c?Math.max(0,c-t):void 0,d=void 0!==t&&void 0!==m?Math.max(0,m-t):void 0,y=Array.isArray(n.phases)?n.phases.filter(e=>!!e&&"object"==typeof e&&"string"==typeof e.title).map(e=>({title:e.title,detail:u(e.detail)})):[],g=Array.isArray(n.logs)?n.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(n.workflowProgress)?n.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===r.length)return;let s=1/0,a=1/0;for(let n of r){let o=Math.abs(e-n.tsMs);!(o>6e4)&&(o<a&&(i=n,a=o),n.tsMs<=e&&o<s&&(t=n,s=o))}return t??i})(c);return{runId:o,name:u(n.workflowName)??o,description:u(n.summary),status:u(n.status)??"unknown",agentCount:l(n.agentCount)??0,toolCallCount:l(n.totalToolCalls)??0,totalTokens:l(n.totalTokens)??0,durationMs:p,startMs:c,endMs:m,startTOffsetMs:f,endTOffsetMs:d,model:u(n.defaultModel),phases:y,logs:g,agents:w,parentToolUseId:M?.toolUseId,parentUuid:M?.parentUuid}}))).filter(e=>null!==e).sort((e,t)=>(e.startMs??0)-(t.startMs??0))}async function W(e,t,i,s={}){let n,o,r,l,u,c,{root:p=d}=s;if(!/^[\w.-]+$/.test(t)||!/^[\w.-]+$/.test(i))return null;let m=(await b(p)).find(t=>w(t.fileName)===e);if(!m)return null;let f=a.default.join(a.default.dirname(m.fullPath),e,"subagents","workflows",t,`agent-${i}.jsonl`);try{n=await h(f)}catch{return null}let y=new Set;for(let e of n){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&&y.add(e.tool_use_id)}let g=[],M=new Map,v={...N},k=new Set,_=0,j=0;for(let e of n){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===o&&"user"===e.type&&(null===e.parentUuid||void 0===e.parentUuid)){let t=e.message?.content;if("string"==typeof t)o=t;else if(Array.isArray(t)){let e=t.find(e=>e&&"object"==typeof e&&"text"===e.type);e?.text&&(o=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,a="string"==typeof e.requestId?e.requestId:void 0,n=null!=s&&null!=a?`${s}:${a}`:void 0,p=!n||!k.has(n);if(n&&p&&k.add(n),p){_++;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 m=i.content;if(Array.isArray(m)){for(let e of m)if(e&&"object"==typeof e){if("text"===e.type&&"string"==typeof e.text)r=e.text;else if("tool_use"===e.type&&"string"==typeof e.name&&(M.set(e.name,(M.get(e.name)??0)+1),g.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;g.push({index:g.length+1,tool:e.name,preview:i,full:s.length>i.length||s.includes("\n")?s:void 0,isError:"string"==typeof e.id&&y.has(e.id)})}}}}return{agentId:i,prompt:o,finalText:r,steps:g,toolCalls:Array.from(M.entries()).map(([e,t])=>({name:e,count:t})).sort((e,t)=>t.count-e.count),toolCallCount:g.length,assistantMessageCount:_,eventCount:j,totalUsage:v,model:l,durationMs:void 0!==u&&void 0!==c?c-u:void 0}}let E={...n.CLAUDE_CODE_METADATA,defaultRoot:d,async listSessions(e){let t=await O(e);for(let e of t)e.agent||(e.agent="claude-code");return t},async getSession(e,t){let i=await B(e,t);return i&&!i.agent&&(i.agent="claude-code"),i}};e.s(["DEFAULT_ROOT",0,d,"claudeCodeSource",0,E,"getSession",0,B,"invalidateClaudeCodeFile",0,j,"listSessions",0,O,"loadWorkflowAgentDetail",0,W],20629);let U=a.default.join(s.default.homedir(),".codex","sessions"),J=/^rollout-(\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2})-([0-9a-f-]+)\.jsonl$/;async function L(e){return i.promises.readdir(e).catch(()=>[])}async function q(e){let t=[];for(let s of(await L(e))){if(!/^\d{4}$/.test(s))continue;let n=a.default.join(e,s);for(let e of(await L(n))){if(!/^\d{2}$/.test(e))continue;let s=a.default.join(n,e);for(let e of(await L(s))){if(!/^\d{2}$/.test(e))continue;let n=a.default.join(s,e);for(let e of(await L(n))){let s=J.exec(e);if(!s)continue;let o=a.default.join(n,e),r=await i.promises.stat(o).catch(()=>null);r&&t.push({filePath:o,sessionId:s[2],mtimeMs:r.mtimeMs,sizeBytes:r.size})}}}}return t}async function G(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 H(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function Y(e,t){let i,s,a,n,l,u,c,p=[],m={input:0,output:0,cacheRead:0,cacheWrite:0},f=0,d=0,y=[],g=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)&&y.push(e)}let r="string"==typeof e.type?e.type:"",w=e.payload??{},M="string"==typeof w.type?w.type:"";if("session_meta"===r){"string"==typeof w.cwd&&(a=w.cwd);continue}if("turn_context"===r){"string"==typeof w.cwd&&(a=w.cwd),"string"==typeof w.model&&(n=w.model);continue}if("event_msg"===r&&"token_count"===M){let e=w.info??null,t=e?.total_token_usage??null;t&&(m.input=K(t.input_tokens)??m.input,m.output=K(t.output_tokens)??m.output,m.cacheRead=K(t.cached_input_tokens)??m.cacheRead);continue}if("event_msg"===r&&"user_message"===M){let i="string"==typeof w.message?w.message:"",s=H(i),a=(0,o.isFrameworkInjectedUserInput)(i);i&&!a&&(l||(l=s),u=s,d+=1),p.push({index:g++,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"===M){let i="string"==typeof w.message?w.message:"",s=H(i);i&&(c=s),p.push({index:g++,timestamp:t,role:"agent",rawType:"event_msg/agent_message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:n,raw:e});continue}if("response_item"===r&&"reasoning"===M){let i=(w.summary??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim();p.push({index:g++,timestamp:t,role:"agent-thinking",rawType:"response_item/reasoning",preview:H(i),blocks:i?[{type:"thinking",thinking:i}]:[],model:n,raw:e});continue}if("response_item"===r&&"message"===M&&"assistant"===w.role){let i=(w.content??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim(),s=H(i);i&&(c=s),p.push({index:g++,timestamp:t,role:"agent",rawType:"response_item/message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:n,raw:e});continue}if("response_item"===r&&"function_call"===M){var h;let i="string"==typeof w.name?w.name:"(unknown)",s="string"==typeof w.call_id?w.call_id:void 0,a="string"==typeof w.arguments?w.arguments:"",o=function(e){if(!e)return null;try{return JSON.parse(e)}catch{return e}}(a);f+=1,p.push({index:g++,timestamp:t,role:"tool-call",rawType:"response_item/function_call",preview:`${i}(${(h=a).length<=80?h:h.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:s??`codex-${g}`,name:i,input:o}],toolName:i,toolUseId:s,model:n,raw:e});continue}if("response_item"===r&&"function_call_output"===M){let i="string"==typeof w.call_id?w.call_id:void 0,s="string"==typeof w.output?w.output:"",a=/process exited with code [1-9]/i.test(s);p.push({index:g++,timestamp:t,role:"tool-result",rawType:"response_item/function_call_output",preview:H(s),blocks:[{type:"tool_result",tool_use_id:i??"",content:s,is_error:a}],toolUseId:i,toolResult:s,raw:e});continue}p.push({index:g++,timestamp:t,role:"meta",rawType:M?`${r}/${M}`:r,preview:"",blocks:[],raw:e})}if(m.input>0||m.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:m.input,output:m.output,cacheRead:m.cacheRead,cacheWrite:0}}}let w=i?Date.parse(i):void 0;if(void 0!==w&&Number.isFinite(w)){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-w),void 0!==e&&(t.gapMs=Math.max(0,i-e)),e=i)}}let M=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],a=t[0];for(let e=1;e<t.length;e++)t[e]-a>18e4&&(i.push({startMs:s,endMs:a}),s=t[e]),a=t[e];return i.push({startMs:s,endMs:a}),i}(y),v=M.reduce((e,t)=>e+(t.endMs-t.startMs),0),k=i&&s?Date.parse(s)-Date.parse(i):void 0,_=a?(0,r.canonicalProjectName)(a):"(unknown)",j=a?a.replace(/^\//,"-").replace(/\//g,"-"):"(unknown)";return{meta:{agent:"codex",id:e.sessionId,filePath:e.filePath,projectName:_,projectDir:j,sessionId:e.sessionId,firstTimestamp:i,lastTimestamp:s,durationMs:k&&Number.isFinite(k)?k:void 0,eventCount:p.length,model:n,cwd:a,totalUsage:m,status:"idle",firstUserPreview:l,lastUserPreview:u,lastAgentPreview:c,toolCallCount:f,turnCount:d,airTimeMs:v,activeSegments:M},events:p}}function K(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}let Q=new Map,V=new Map;async function X(e={}){let t=e.root??U,i=await q(t),s=[];for(let e of i){let t=Q.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){s.push(t.meta);continue}try{let t=await G(e.filePath),{meta:i}=Y(e,t);Q.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 Z(e,t={}){let i=t.root??U,s=(await q(i)).find(t=>t.sessionId===e);if(!s)return null;let a=V.get(s.filePath);if(a&&a.mtimeMs===s.mtimeMs&&a.sizeBytes===s.sizeBytes)return a.detail;let n=await G(s.filePath),{meta:o,events:r}=Y(s,n),l={...o,events:r};return V.set(s.filePath,{detail:l,mtimeMs:s.mtimeMs,sizeBytes:s.sizeBytes}),l}async function ee(e={}){let t=e.root??U,i=await q(t);if(0===i.length)return null;for(let e of(i.sort((e,t)=>t.mtimeMs-e.mtimeMs),i)){let t=await G(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 a=s.payload??{};if("token_count"!==a.type)continue;let n=a.rate_limits??null;if(!n)continue;let o=n.primary??null,r=n.secondary??null,l=K(o?.used_percent),u=K(r?.used_percent),c=K(o?.resets_at),p=K(r?.resets_at),m="string"==typeof n.plan_type?n.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:m,source_path:e.filePath}}}return null}let et=a.default.join(s.default.homedir(),".gemini","tmp"),ei=a.default.join(s.default.homedir(),".gemini","projects.json"),es=/^session-.+\.(jsonl|json)$/;async function ea(e){return i.promises.readdir(e).catch(()=>[])}async function en(e){let t=[];for(let s of(await ea(e))){let n=a.default.join(e,s,"chats");for(let e of(await ea(n))){if(!es.test(e))continue;let o=a.default.join(n,e),r=await i.promises.stat(o).catch(()=>null);if(!r||!r.isFile())continue;let l=e.replace(/\.(jsonl|json)$/,"").split("-").pop()??e;t.push({filePath:o,slug:s,filenameId:l,format:e.endsWith(".jsonl")?"jsonl":"legacy-json",mtimeMs:r.mtimeMs,sizeBytes:r.size})}}return t}let eo=null;async function er(){let e,t=await i.promises.stat(ei).catch(()=>null);if(!t)return new Map;if(eo&&eo.mtimeMs===t.mtimeMs)return eo.slugToCwd;let s=await i.promises.readFile(ei,"utf8").catch(()=>"");try{e=JSON.parse(s)}catch{e={}}let a=new Map;for(let[t,i]of Object.entries(e.projects??{}))"string"==typeof i&&a.set(i,t);return eo={mtimeMs:t.mtimeMs,slugToCwd:a},a}function el(e){return!!e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.type}async function eu(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(el)}}let s={},a=new Map,n=[];for(let e of t.split("\n")){let t,i=e.trim();if(i){var o,r;try{t=JSON.parse(i)}catch{continue}if((o=t)&&"object"==typeof o&&"$rewindTo"in o){let e=t.$rewindTo,i=n.indexOf(e);if(i>=0){for(let e of n.slice(i))a.delete(e);n.length=i}continue}if((r=t)&&"object"==typeof r&&"$set"in r){Object.assign(s,t.$set);continue}if(el(t)){a.has(t.id)||n.push(t.id),a.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 n){let t=a.get(e);t&&l.push(t)}return{meta:s,messages:l}}function ec(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function ep(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 em(e){let t,i,s,a,n,l,{meta:u,messages:c}=await eu(e),p=(await er()).get(e.slug),m=[],f={input:0,output:0,cacheRead:0,cacheWrite:0},d=0,y=0,g=[],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)&&g.push(s)}}for(let e of c){let t=e.timestamp;if("user"===e.type){let i=ep(e.displayContent??e.content),s=ec(i),r=(0,o.isFrameworkInjectedUserInput)(i);i&&!r&&(a||(a=s),n=s,y+=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 a=ep(e.content),n=ec(a);if(a&&(l=n),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:ec(e),blocks:[{type:"thinking",thinking:e}],model:s,raw:i})}for(let o of(a?w({index:h++,timestamp:t,role:"agent",rawType:"gemini/agent",preview:n,blocks:[{type:"text",text:a}],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=o.args?JSON.stringify(o.args):"";w({index:h++,timestamp:o.timestamp??t,role:"tool-call",rawType:"gemini/tool_call",preview:`${o.name}(${e.length<=80?e:e.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:o.id,name:o.name,input:o.args??{}}],toolName:o.name,toolUseId:o.id,model:s,raw:o});let i=(o.status??"").toLowerCase();if("success"===i||"error"===i||"cancelled"===i){let e=ep(o.result);w({index:h++,timestamp:o.timestamp??t,role:"tool-result",rawType:"gemini/tool_result",preview:ec(e),blocks:[{type:"tool_result",tool_use_id:o.id,content:e,is_error:"error"===i||"cancelled"===i}],toolUseId:o.id,toolResult:e,raw:o})}}continue}if("info"===e.type||"warning"===e.type||"error"===e.type){let i=ep(e.content);w({index:h++,timestamp:t,role:"meta",rawType:`gemini/${e.type}`,preview:ec(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],a=t[0];for(let e=1;e<t.length;e++)t[e]-a>18e4&&(i.push({startMs:s,endMs:a}),s=t[e]),a=t[e];return i.push({startMs:s,endMs:a}),i}(g),k=v.reduce((e,t)=>e+(t.endMs-t.startMs),0),_=t&&i?Date.parse(i)-Date.parse(t):void 0,j=u.sessionId??e.filenameId,b=p?(0,r.canonicalProjectName)(p):e.slug,N=p?p.replace(/^\//,"-").replace(/\//g,"-"):e.slug;return{meta:{agent:"gemini",id:j,filePath:e.filePath,projectName:b,projectDir:N,sessionId:j,firstTimestamp:t,lastTimestamp:i,durationMs:_&&Number.isFinite(_)?_:void 0,eventCount:m.length,model:s,cwd:p,totalUsage:f,status:"idle",firstUserPreview:a,lastUserPreview:n,lastAgentPreview:l,toolCallCount:d,turnCount:y,airTimeMs:k,activeSegments:v},events:m}}let ef=new Map,ed=new Map;async function ey(e={}){let t=e.root??et,i=await en(t),s=[];for(let e of i){let t=ef.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){s.push(t.meta);continue}try{let{meta:t}=await em(e);ef.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 eg(e,t={}){let i,s=t.root??et,a=await en(s);for(let t of a)if(t.filenameId===e||e.startsWith(t.filenameId)){i=t;break}if(!i)for(let t of a){let{meta:s}=await em(t).catch(()=>({meta:{id:""}}));if(s.id===e){i=t;break}}if(!i)return null;let n=ed.get(i.filePath);if(n&&n.mtimeMs===i.mtimeMs&&n.sizeBytes===i.sizeBytes)return n.detail;let{meta:o,events:r}=await em(i),l={...o,events:r};return ed.set(i.filePath,{detail:l,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes}),l}let eh=a.default.join(s.default.homedir(),".gemini","antigravity-cli");async function ew(e){return i.promises.readdir(e).catch(()=>[])}let eM=null;async function ev(e){let t=a.default.join(e,"history.jsonl"),s=await i.promises.stat(t).catch(()=>null);if(!s)return new Map;if(eM&&eM.mtimeMs===s.mtimeMs)return eM.slugToCwd;let n=await i.promises.readFile(t,"utf8").catch(()=>""),o=new Map;for(let e of n.split("\n")){let t=e.trim();if(t)try{let e=JSON.parse(t);e.conversationId&&e.workspace&&o.set(e.conversationId,e.workspace)}catch{}}return eM={mtimeMs:s.mtimeMs,slugToCwd:o},o}async function ek(e){let t=await ev(e),s=[],n=a.default.join(e,"brain");for(let e of(await ew(n))){let o=a.default.join(n,e,".system_generated","logs","transcript.jsonl"),r=await i.promises.stat(o).catch(()=>null);r&&r.isFile()&&s.push({filePath:o,conversationId:e,cwd:t.get(e),mtimeMs:r.mtimeMs,sizeBytes:r.size})}return s}function e_(e){return e.replace(/\s+/g," ").trim().slice(0,200)}async function ej(e){let t,s,a,n,l,u,c=await i.promises.readFile(e.filePath,"utf8"),p=[],m=0,f=0,d=[],y=0;function g(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)&&d.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();a=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()),a=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 r=e_(i),u=(0,o.isFrameworkInjectedUserInput)(i);i&&!u&&(n||(n=r),l=r,f+=1),g({index:y++,timestamp:t,role:"user",rawType:"antigravity/user",preview:r,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&&g({index:y++,timestamp:t,role:"agent-thinking",rawType:"antigravity/thought",preview:e_(i),blocks:[{type:"thinking",thinking:i}],model:a,raw:e}),s){let i=e_(s);u=i,g({index:y++,timestamp:t,role:"agent",rawType:"antigravity/agent",preview:i,blocks:[{type:"text",text:s}],messageId:e.step_index?.toString(),model:a,raw:e})}let n=e.tool_calls||[];for(let i=0;i<n.length;i++){let s=n[i];m+=1;let o=`tool-${e.step_index}-${i}`,r=s.args?JSON.stringify(s.args):"";h.push({id:o,name:s.name}),g({index:y++,timestamp:t,role:"tool-call",rawType:"antigravity/tool_call",preview:`${s.name}(${r.length<=80?r:r.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:o,name:s.name,input:s.args||{}}],toolName:s.name,toolUseId:o,model:a,raw:s})}continue}if("MODEL"===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`,a="string"==typeof e.content?e.content:JSON.stringify(e.content||""),n="ERROR"===e.status||"FAILED"===e.status||"CANCELED"===e.status||!!e.error;g({index:y++,timestamp:t,role:"tool-result",rawType:"antigravity/tool_result",preview:e_(a),blocks:[{type:"tool_result",tool_use_id:s,content:a,is_error:n}],toolUseId:s,toolResult:a,raw:e});continue}let i=e.content||e.error||"";g({index:y++,timestamp:t,role:"meta",rawType:`antigravity/${e.type?.toLowerCase()||"unknown"}`,preview:e_(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 k=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],a=t[0];for(let e=1;e<t.length;e++)t[e]-a>18e4&&(i.push({startMs:s,endMs:a}),s=t[e]),a=t[e];return i.push({startMs:s,endMs:a}),i}(d),_=k.reduce((e,t)=>e+(t.endMs-t.startMs),0),j=t&&s?Date.parse(s)-Date.parse(t):void 0,b=e.conversationId,N=e.cwd,I=N?(0,r.canonicalProjectName)(N):e.conversationId,x=N?N.replace(/^\//,"-").replace(/\//g,"-"):e.conversationId;return{meta:{agent:"antigravity",id:b,filePath:e.filePath,projectName:I,projectDir:x,sessionId:b,firstTimestamp:t,lastTimestamp:s,durationMs:j&&Number.isFinite(j)?j:void 0,eventCount:p.length,model:a,cwd:N,totalUsage:{input:0,output:0,cacheRead:0,cacheWrite:0},status:"idle",firstUserPreview:n,lastUserPreview:l,lastAgentPreview:u,toolCallCount:m,turnCount:f,airTimeMs:_,activeSegments:k},events:p}}let eb=new Map,eN=new Map;async function eI(e={}){let t=e.root??eh,i=await ek(t),s=[];for(let e of i){let t=eb.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 ej(e);eb.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 ex(e,t={}){let i,s=t.root??eh;for(let t of(await ek(s)))if(t.conversationId===e){i=t;break}if(!i)return null;let a=eN.get(i.filePath);if(a&&a.mtimeMs===i.mtimeMs&&a.sizeBytes===i.sizeBytes&&a.cwd===i.cwd)return a.detail;let{meta:n,events:o}=await ej(i),r={...n,events:o};return eN.set(i.filePath,{detail:r,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes,cwd:i.cwd}),r}let eT=(t=s.default.homedir(),a.default.join(t,".config","Claude","local-agent-mode-sessions")),eS=/^local_[0-9a-f-]+$/;async function eA(e){return i.promises.readdir(e).catch(()=>[])}async function eC(e){let t=await i.promises.stat(e).catch(()=>null);return t?t.mtimeMs:0}async function eP(e){let t=[];for(let s of(await eA(e))){let n=a.default.join(e,s);for(let e of(await eA(n))){let s=a.default.join(n,e),o=await eC(a.default.join(s,"spaces.json"));for(let e of(await eA(s))){if(!eS.test(e))continue;let n=a.default.join(s,e,"audit.jsonl"),r=await i.promises.stat(n).catch(()=>null);if(!r||!r.isFile()||0===r.size)continue;let l=a.default.join(s,`${e}.json`),u=await eC(l);t.push({sessionId:e,auditPath:n,metaPath:l,workspaceDir:s,auditMtimeMs:r.mtimeMs,auditSize:r.size,metaMtimeMs:u,spacesMtimeMs:o})}}}return t}let eD=new Map;async function eR(e){let t=a.default.join(e,"spaces.json"),s=await i.promises.stat(t).catch(()=>null);if(!s)return new Map;let n=eD.get(e);if(n&&n.mtimeMs===s.mtimeMs)return n.spaceIdToPath;let o=await i.promises.readFile(t,"utf8").catch(()=>""),r=new Map;try{for(let e of JSON.parse(o).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&&r.set(t,s)}}catch{}return eD.set(e,{mtimeMs:s.mtimeMs,spaceIdToPath:r}),r}async function e$(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 eO(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 eB(e){let t,[i,s,a]=await Promise.all([eO(e.auditPath),e$(e.metaPath),eR(e.workspaceDir)]),{meta:n,events:o}=f(i),{projectName:l,projectDir:u,cwd:c}=(s.spaceId&&(t=a.get(s.spaceId)),!t&&s.userSelectedFolders&&s.userSelectedFolders.length>0&&(t=s.userSelectedFolders[0]),t)?{projectName:(0,r.canonicalProjectName)(t),projectDir:t.replace(/^\//,"-").replace(/\//g,"-"),cwd:t}:{projectName:"cowork:unspaced",projectDir:"cowork-unspaced"};return{meta:{...n,agent:"cowork",id:e.sessionId,sessionId:e.sessionId,filePath:e.auditPath,projectName:l,projectDir:u,cwd:c??n.cwd,model:n.model??s.model},events:o}}function ez(e){return{auditMtimeMs:e.auditMtimeMs,auditSize:e.auditSize,metaMtimeMs:e.metaMtimeMs,spacesMtimeMs:e.spacesMtimeMs}}function eF(e,t){return e.auditMtimeMs===t.auditMtimeMs&&e.auditSize===t.auditSize&&e.metaMtimeMs===t.metaMtimeMs&&e.spacesMtimeMs===t.spacesMtimeMs}let eW=new Map,eE=new Map;async function eU(e={}){let t=e.root??eT,i=await eP(t),s=[];for(let e of i){let t=ez(e),i=eW.get(e.auditPath);if(i&&eF(i.key,t)){s.push(i.meta);continue}try{let{meta:i}=await eB(e);eW.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 eJ(e,t={}){let i=t.root??eT,s=(await eP(i)).find(t=>t.sessionId===e);if(!s)return null;let a=ez(s),n=eE.get(s.auditPath);if(n&&eF(n.key,a))return n.detail;let{meta:o,events:r}=await eB(s),l={...o,events:r};return eE.set(s.auditPath,{detail:l,key:a}),l}function eL(){return process.env.CCLENS_HOME||a.default.join(s.default.homedir(),".cclens")}function eq(...e){return a.default.join(eL(),...e)}function eG(e){j(e)}let eH=[E,{...n.CODEX_METADATA,defaultRoot:U,listSessions:async e=>X(e),getSession:async e=>Z(e),async usagePoller(){let e=await ee();return e?{captured_at:new Date().toISOString(),agent:"codex",five_hour:e.five_hour,seven_day:e.seven_day}:null}},{...n.GEMINI_METADATA,defaultRoot:et,listSessions:async e=>ey(e),getSession:async e=>eg(e)},{...n.ANTIGRAVITY_METADATA,defaultRoot:eh,listSessions:async e=>eI(e),getSession:async e=>ex(e)},{...n.COWORK_METADATA,defaultRoot:eT,listSessions:async e=>eU(e),getSession:async e=>eJ(e)}];async function eY(e){for(let t of eH){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:"✺"},a={kind:"antigravity",displayName:"Antigravity",shortLabel:"Agy",accentColor:"rgb(236, 72, 153)",iconChar:"⏃"},n={kind:"cowork",displayName:"Cowork",shortLabel:"Cowork",accentColor:"rgb(217, 119, 87)",iconChar:"⌘"},o=[t,i,s,a,n];o.map(e=>e.kind),e.s(["ANTIGRAVITY_METADATA",0,a,"CLAUDE_CODE_METADATA",0,t,"CODEX_METADATA",0,i,"COWORK_METADATA",0,n,"GEMINI_METADATA",0,s,"agentMetadata",0,o])},79357,e=>{"use strict";let t=["/.claude/worktrees/","/.worktrees/","/claude/worktrees/"],i=/\/conductor\/workspaces\/[^/]+\/([^/]+)(?:\/|$)/,s="/.superset/worktrees/",a=/^[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 n=e.replace(/\/{2,}/g,"/"),o=function(e){for(let i of t){let t=e.lastIndexOf(i);if(t>=0)return{idx:t,marker:i}}return null}(n);if(o)return n.slice(0,o.idx);let r=function(e){let t=i.exec(e);if(!t)return null;let s=t[1],a=+!!t[0].endsWith("/");return{canonicalEndIdx:t.index+t[0].length-s.length-1-a,workspaceName:s}}(n);if(r)return n.slice(0,r.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 n=a.test(i[0])?i[1]??i[0]:i[0];return{canonical:e.slice(0,t)+s+n,workspaceName:n}}(n);return l?l.canonical:n},"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,a=t.minActive??2,n=[];for(let t of e)for(let e of t.segments)e.endMs<=e.startMs||(n.push({ms:e.startMs,delta:1,sessionId:t.id}),n.push({ms:e.endMs,delta:-1,sessionId:t.id}));n.sort((e,t)=>e.ms-t.ms||t.delta-e.delta);let o=new Map,r=[],l=null;for(let e of n){if(1===e.delta)o.set(e.sessionId,(o.get(e.sessionId)??0)+1);else{let t=(o.get(e.sessionId)??0)-1;t<=0?o.delete(e.sessionId):o.set(e.sessionId,t)}let t=o.size;if(t>=a)if(l)for(let i of(l.endMs=e.ms,t>l.peak&&(l.peak=t),o.keys()))l.sessionIds.add(i);else l={startMs:e.ms,endMs:e.ms,peak:t,sessionIds:new Set(o.keys())};else l&&(l.endMs=e.ms,r.push(l),l=null)}l&&r.push(l);let u=r.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"),a=String(t.getDate()).padStart(2,"0");return`${i}-${s}-${a}`}])},36521,e=>{"use strict";let t=[/<system_instruction\b[^>]*>[\s\S]*?<\/system_instruction>\s*/gi],i=["<command-name>","<local-command-stdout>","<local-command-caveat>","<task-notification>","Base directory for this skill:","This session is being continued from a previous conversation","A session-scoped Stop hook is now active"];function s(e){if(!e)return e;let i=e;for(let e of t)i=i.replace(e,"");return i.trim()}e.s(["isFrameworkInjectedUserInput",0,function(e){if(!e)return!1;let t=s(e);if(!t)return!0;for(let e of i)if(t.startsWith(e))return!0;return!1},"stripFrameworkBoilerplate",0,s])},43427,20629,e=>{"use strict";let t;e.s(["cclensHome",()=>eL,"cclensPath",()=>eq,"getAnySession",()=>eY,"invalidateFile",()=>eG],43427);var i=e.i(2157),s=e.i(60526),a=e.i(50227),n=e.i(39587),o=e.i(36521),r=e.i(79357);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(),a="message";if(s.startsWith("{"))try{let e=JSON.parse(s);"idle_notification"===e.type?a="idle-notification":"shutdown_request"===e.type?a="shutdown-request":"shutdown_approved"===e.type?a="shutdown-approved":"task_assignment"===e.type?a="task-assignment":"teammate_terminated"===e.type&&(a="teammate-terminated")}catch{}return{teammateId:i,body:s,kind:a}}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,a,n,c,f,d,y,g,h,w=[];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,a=e.parentUuid??null,n=e.timestamp;if("assistant"===i){let o,r,l,c=e.message??{},p=c.content??[],f=m(c.usage),d=c.model,y=e.requestId,g=c.id,h=c.stop_reason,w=p[0],M="agent";return w?.type==="thinking"?(M="agent-thinking",o="[thinking] "+u(w.thinking,140)):w?.type==="tool_use"?(M="tool-call",r=w.name,l=w.id,o=`${w.name} `+u(JSON.stringify(w.input??{}),100)):o=w?.type==="text"?u(w.text,200):`<assistant:${w?.type??"empty"}>`,{index:t,uuid:s,parentUuid:a,timestamp:n,role:M,rawType:i,preview:o,blocks:p,usage:f,model:d,requestId:y,messageId:g,stopReason:h,toolName:r,toolUseId:l,raw:e}}if("user"===i){let r=(e.message??{}).content;if("string"==typeof r){let l=(0,o.stripFrameworkBoilerplate)(r),c=p(l);return{index:t,uuid:s,parentUuid:a,timestamp:n,role:"user",rawType:i,preview:u(l,200),blocks:l?[{type:"text",text:l}]:[],raw:e,teammateMessage:c}}if(Array.isArray(r)){let l=r[0];if(l?.type==="tool_result")return{index:t,uuid:s,parentUuid:a,timestamp:n,role:"tool-result",rawType:i,preview:u("string"==typeof l.content?l.content:JSON.stringify(l.content),200),blocks:r,toolUseId:l.tool_use_id,toolResult:e.toolUseResult,raw:e};let c=r.find(e=>e?.type==="text"),m=c?(0,o.stripFrameworkBoilerplate)(c.text):"",f=c?r.map(e=>e===c?{type:"text",text:m}:e):r,d=m?p(m):void 0;return{index:t,uuid:s,parentUuid:a,timestamp:n,role:"user",rawType:i,preview:m?u(m,200):u(JSON.stringify(r),200),blocks:f,raw:e,teammateMessage:d}}}if("attachment"===i){let o=e.attachment??{},r=String(o.type??"attachment"),l=`<attachment: ${r}>`;return"string"==typeof o.content&&o.content.length>0?l=`[${r}] `+u(o.content,140):Array.isArray(o.addedNames)&&(l=`[${r}] +${o.addedNames.length} names`),{index:t,uuid:s,parentUuid:a,timestamp:n,role:"system",rawType:i,preview:l,blocks:[{type:"text",text:JSON.stringify(o,null,2)}],attachmentType:r,raw:e}}return{index:t,uuid:s,parentUuid:a,timestamp:n,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&&w.push(i)}for(let e of w){if(!e.timestamp)continue;let s=Date.parse(e.timestamp);!Number.isNaN(s)&&((void 0===t||s<t)&&(t=s),(void 0===i||s>i)&&(i=s))}let M=void 0!==t?new Date(t).toISOString():void 0,v=void 0!==i?new Date(i).toISOString():void 0;for(let e of w){if(!e.timestamp)continue;let i=Date.parse(e.timestamp);Number.isNaN(i)||void 0!==t&&(e.tOffsetMs=Math.max(0,i-t))}let k=w.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 _=w.filter(e=>e.timestamp).map(e=>Date.parse(e.timestamp)).filter(e=>!Number.isNaN(e)).sort((e,t)=>e-t),j=[],b=0;if(_.length>0){let e=_[0],t=_[0];for(let i=1;i<_.length;i++){let s=_[i],a=s-t;a>18e4?(j.push({startMs:e,endMs:t}),e=s):a>0&&(b+=a),t=s}j.push({startMs:e,endMs:t})}let N=new Map,I=[];for(let e of w){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??{};I.push({ms:t,trigger:"manual"===s.trigger?"manual":"auto",preTokens:"number"==typeof s.preTokens?s.preTokens:0})}}}let x=[...N.values()].sort((e,t)=>e.ms-t.ms);I.sort((e,t)=>e.ms-t.ms);let T=0,S=0,A=(e,t)=>{for(let i of e.siblings)i.coldResume=t;T++,S+=t.writeTokens},C=new Set;for(let e of I){let t,i=x.find(t=>t.ms>e.ms&&(t.rep.usage?.cacheWrite??0)>=1e3);if(!i)continue;for(let i=x.length-1;i>=0;i--)if(x[i].ms<=e.ms){t=x[i].ms;break}let s=i.rep.usage,a=s.cacheWrite+s.cacheRead;A(i,{trigger:"compact",gapMs:void 0!==t?i.ms-t:0,writeTokens:s.cacheWrite,writeRatio:a>0?s.cacheWrite/a:0,compact:{trigger:e.trigger,preTokens:e.preTokens}}),C.add(i.rep.messageId)}for(let e=1;e<x.length;e++){let t=x[e-1],i=x[e];if(C.has(i.rep.messageId))continue;let s=i.rep.usage,a=s.cacheWrite+s.cacheRead,n=a>0?s.cacheWrite/a:0,o=i.ms-t.ms;o>3e5&&s.cacheWrite>=1e3&&n>=.3&&A(i,{trigger:"idle",gapMs:o,writeTokens:s.cacheWrite,writeRatio:n})}let P={...l},D=new Set,R="",O=!1,$=!1,B=0,z=0,F=0,W=0,E=new Set,U=new Map,J=void 0!==t?(0,r.toLocalDay)(t):void 0,L=e=>{let t;if(e){let i=Date.parse(e);Number.isNaN(i)||(t=(0,r.toLocalDay)(i))}if(!(t=t??J))return;let i=U.get(t);return i||(i={toolCalls:0,turns:0,tokens:{...l}},U.set(t,i)),i};for(let e of w){if("tool-call"===e.role){B++;let t=L(e.timestamp);t&&t.toolCalls++;let i=e.blocks.find(e=>e&&"tool_use"===e.type);if(i){let e=i.input??{};if("TeamCreate"===i.name&&(O=!0),"SendMessage"===i.name){let t="string"==typeof e.to?e.to:"";t&&"team-lead"!==t&&($=!0)}let t="string"==typeof e.file_path?e.file_path:void 0;if("Edit"===i.name&&t){E.add(t);let i="string"==typeof e.old_string?e.old_string:"",s="string"==typeof e.new_string?e.new_string:"",a=i?i.split("\n").length:0,n=s?s.split("\n").length:0;F+=Math.max(0,n-a),W+=Math.max(0,a-n)}else if("Write"===i.name&&t){E.add(t);let i="string"==typeof e.content?e.content:"";F+=i?i.split("\n").length:0}}}if("user"===e.role){let t=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=(0,o.isFrameworkInjectedUserInput)(t),s=void 0!==e.teammateMessage&&!d;if(!i&&!s){y||(y=e.teammateMessage?e.teammateMessage.body:e.preview),z++;let t=L(e.timestamp);t&&t.turns++,h=e.preview}}"agent"===e.role&&(g=e.preview)}for(let t of e)if(t&&"object"==typeof t&&("string"!=typeof t.sessionId||R||(R=t.sessionId),"string"!=typeof t.cwd||a||(a=t.cwd),"string"!=typeof t.gitBranch||n||(n=t.gitBranch),"string"!=typeof t.entrypoint||c||(c=t.entrypoint),"string"!=typeof t.teamName||f||(f=t.teamName),"string"!=typeof t.agentName||d||(d=t.agentName),"assistant"===t.type)){let e=t.message;if(e){"string"!=typeof e.model||s||(s=e.model);let i="string"==typeof e.id?e.id:void 0;if(i&&D.has(i))continue;i&&D.add(i);let a=m(e.usage);if(a){P.input+=a.input,P.output+=a.output,P.cacheRead+=a.cacheRead,P.cacheWrite+=a.cacheWrite;let e=L("string"==typeof t.timestamp?t.timestamp:void 0);e&&(e.tokens.input+=a.input,e.tokens.output+=a.output,e.tokens.cacheRead+=a.cacheRead,e.tokens.cacheWrite+=a.cacheWrite)}}}return{events:w,meta:{sessionId:R,firstTimestamp:M,lastTimestamp:v,durationMs:void 0!==t&&void 0!==i?i-t:void 0,eventCount:w.length,model:s,cwd:a,gitBranch:n,entrypoint:c,totalUsage:P,status:"idle",firstUserPreview:y,lastUserPreview:h,lastAgentPreview:g,toolCallCount:B,turnCount:z,dailyBreakdown:Array.from(U.entries()).map(([e,t])=>({day:e,toolCalls:t.toolCalls,turns:t.turns,tokens:t.tokens})).sort((e,t)=>e.day.localeCompare(t.day)),airTimeMs:b,activeSegments:j,linesAdded:F,linesRemoved:W,filesEdited:E.size,coldResumeCount:T,cacheRebuildTokens:S,teamName:f,agentName:d,isTeamLead:void 0!==f&&void 0===d&&(O||$)}}}let d=a.default.join(s.default.homedir(),".claude","projects");function y(e){return e.startsWith("-")?"/"+e.slice(1).replace(/-/g,"/"):e}let g=a.default.join(s.default.homedir(),".cclens","runtime").replace(/[/.]/g,"-");async function h(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 w(e){return e.replace(/\.jsonl$/i,"")}let M=new Map,v=new Map,k=new Map,_=null;function j(e){M.delete(e),v.delete(e),k.delete(e),_=null}async function b(e=d){let t;if(_&&_.root===e&&Date.now()-_.capturedAtMs<1e3)return _.files;try{t=await i.promises.readdir(e,{withFileTypes:!0})}catch{return[]}let s=t.filter(e=>e.isDirectory()&&e.name!==g).map(e=>e.name),n=(await Promise.all(s.map(async t=>{let s,n=a.default.join(e,t);try{s=await i.promises.readdir(n)}catch{return[]}let o=s.filter(e=>e.endsWith(".jsonl"));return(await Promise.all(o.map(async e=>{let s=a.default.join(n,e);try{let a=await i.promises.stat(s);return{projectDir:t,fileName:e,fullPath:s,mtimeMs:a.mtimeMs,sizeBytes:a.size}}catch{return null}}))).filter(e=>null!==e)}))).flat();return _={files:n,capturedAtMs:Date.now(),root:e},n}let N={input:0,output:0,cacheRead:0,cacheWrite:0};function I(e,t,i,s,a){for(let n of e){if(!n||"object"!=typeof n||"assistant"!==n.type)continue;let e=n.message;if(!e)continue;let o="string"==typeof e.id?e.id:void 0,l="string"==typeof n.requestId?n.requestId:void 0,u=null!=o&&null!=l?`${o}:${l}`:void 0;if(u&&t.has(u))continue;u&&t.add(u);let c=e.usage;if(c){let e=e=>"number"==typeof e?e:0,t=e(c.input_tokens),o=e(c.output_tokens),l=e(c.cache_read_input_tokens),u=e(c.cache_creation_input_tokens);if(i.input+=t,i.output+=o,i.cacheRead+=l,i.cacheWrite+=u,s){let e,i="string"==typeof n.timestamp?n.timestamp:void 0;if(i){let t=Date.parse(i);Number.isNaN(t)||(e=(0,r.toLocalDay)(t))}if(e=e??a){let i=s.get(e);i||(i={...N},s.set(e,i)),i.input+=t,i.output+=o,i.cacheRead+=l,i.cacheWrite+=u}}}}}async function x(e,t,s,n){let o,r={...N},l=new Set,u=new Map;I(e,l,r,u,n);let c=a.default.join(t,s,"subagents");try{o=await i.promises.readdir(c)}catch{return{usage:r,perDay:u}}let p=o.filter(e=>e.endsWith(".jsonl"));return 0===p.length||await Promise.all(p.map(async e=>{try{let t=await h(a.default.join(c,e));I(t,l,r,u,n)}catch{}})),{usage:r,perDay:u}}async function T(e,t){let s,n=a.default.join(e,t,"workflows");try{s=await i.promises.readdir(n)}catch{return{workflowCount:0,spawnedAgentCount:0,spans:[]}}let o=s.filter(e=>e.startsWith("wf_")&&e.endsWith(".json"));if(0===o.length)return{workflowCount:0,spawnedAgentCount:0,spans:[]};let r=0,l=[];return{workflowCount:(await Promise.all(o.map(async e=>{try{let t=JSON.parse(await i.promises.readFile(a.default.join(n,e),"utf8"));return"number"==typeof t.agentCount&&(r+=t.agentCount),"number"==typeof t.startTime&&"number"==typeof t.durationMs&&t.durationMs>0&&l.push({startMs:t.startTime,endMs:t.startTime+t.durationMs}),!0}catch{return!1}}))).filter(Boolean).length,spawnedAgentCount:r,spans:l}}async function S(e,t){let s;try{s=await i.promises.readdir(e,{withFileTypes:!0})}catch{return 0}return(await Promise.all(s.map(async s=>{let n=a.default.join(e,s.name);try{if(s.isDirectory())return t>0?await S(n,t-1):0;return(await i.promises.stat(n)).mtimeMs}catch{return 0}}))).reduce((e,t)=>Math.max(e,t),0)}async function A(e,t){let i=a.default.join(e,t),[s,n]=await Promise.all([S(a.default.join(i,"subagents"),2),S(a.default.join(i,"workflows"),0)]),o=Math.max(s,n);return o>0?o:void 0}async function C(e,t){let i=await A(a.default.dirname(t.fullPath),e.id),s=e.lastTimestamp?Date.parse(e.lastTimestamp):0,n=Math.max(Number.isFinite(s)?s:0,i??0);return n>0?{...e,lastActivityMs:n}:e}function P(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],a=s[s.length-1];t.startMs<=a.endMs?a.endMs=Math.max(a.endMs,t.endMs):s.push({...t})}let a=s.reduce((e,t)=>e+(t.endMs-t.startMs),0);return{activeSegments:s,airTimeMs:a}}async function D(e,t,i){let s=w(i.fileName),n=a.default.dirname(i.fullPath),o=e.firstTimestamp?(0,r.toLocalDay)(Date.parse(e.firstTimestamp)):void 0,{usage:l,perDay:u}=await x(t,n,s,o);e.totalUsage=l,e.dailyBreakdown=function(e,t,i){let s=new Map((e??[]).map(e=>[e.day,e])),a=[...new Set([...s.keys(),...t.keys()])].sort((e,t)=>e.localeCompare(t)).map(e=>({day:e,toolCalls:s.get(e)?.toolCalls??0,turns:s.get(e)?.turns??0,tokens:{...t.get(e)??N}}));if(a.length>0){let e=a.reduce((e,t)=>({input:e.input+t.tokens.input,output:e.output+t.tokens.output,cacheRead:e.cacheRead+t.tokens.cacheRead,cacheWrite:e.cacheWrite+t.tokens.cacheWrite}),{...N}),t=a[0].tokens;t.input+=i.input-e.input,t.output+=i.output-e.output,t.cacheRead+=i.cacheRead-e.cacheRead,t.cacheWrite+=i.cacheWrite-e.cacheWrite}return a}(e.dailyBreakdown,u,l)}async function R(e){let t=M.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.meta;try{let t=await h(e.fullPath),{meta:i}=f(t);await D(i,t,e);let s=w(e.fileName),n=a.default.dirname(e.fullPath),o=await T(n,s),r={...i,id:s,filePath:e.fullPath,projectDir:e.projectDir,projectName:i.cwd??y(e.projectDir),...o.workflowCount>0?{workflowCount:o.workflowCount,spawnedAgentCount:o.spawnedAgentCount}:{},...P(i.activeSegments,o.spans)};return M.set(e.fullPath,{meta:r,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),r}catch{return null}}async function O(e){let t=v.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.detail;try{let t=await h(e.fullPath),{meta:i,events:s}=f(t),n=w(e.fileName);await D(i,t,e);let o=await T(a.default.dirname(e.fullPath),n),r={...i,id:n,filePath:e.fullPath,projectDir:e.projectDir,projectName:i.cwd??y(e.projectDir),events:s,...o.workflowCount>0?{workflowCount:o.workflowCount,spawnedAgentCount:o.spawnedAgentCount}:{},...P(i.activeSegments,o.spans)};v.set(e.fullPath,{detail:r,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes});let l={...r};return delete l.events,M.set(e.fullPath,{meta:l,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),r}catch{return null}}async function $(e={}){let{root:t=d,limit:i=500,projectDir:s}=e,a=await b(t);s&&(a=a.filter(e=>e.projectDir===s)),a.sort((e,t)=>t.mtimeMs-e.mtimeMs);let n=a.slice(0,i);return(await Promise.all(n.map(async e=>{let t=await R(e);return t?C(t,e):null}))).filter(e=>null!==e)}async function B(e,t={}){let{root:i=d}=t,s=(await b(i)).find(t=>w(t.fileName)===e);if(!s)return null;let n=await O(s);if(!n)return n;let o=n.firstTimestamp?Date.parse(n.firstTimestamp):void 0,r=a.default.join(a.default.dirname(s.fullPath),w(s.fileName),"subagents"),l=a.default.join(a.default.dirname(s.fullPath),w(s.fileName),"workflows"),[u,c]=await Promise.all([z(r,o,n.events),F(l,o,n.events)]),p=c.reduce((e,t)=>e+t.agentCount,0);return C({...n,subagents:u,workflows:c,...c.length>0?{workflowCount:c.length,spawnedAgentCount:p}:{}},s)}async function z(e,t,s){let n;try{n=await i.promises.readdir(e)}catch{return[]}let o=new Map,r=[];for(let e of s)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,a=e.timestamp?Date.parse(e.timestamp):void 0,n={toolUseId:t.id,parentUuid:e.uuid??"",runInBackground:!0===i.run_in_background,prompt:"string"==typeof i.prompt?i.prompt:void 0,tsMs:a};s&&o.set(s,n),void 0!==a&&r.push(n)}r.sort((e,t)=>(e.tsMs??0)-(t.tsMs??0));let l=n.filter(e=>e.startsWith("agent-")&&e.endsWith(".jsonl"));return(await Promise.all(l.map(async s=>{let n,l=s.replace(/^agent-/,"").replace(/\.jsonl$/,""),u=a.default.join(e,s),c=a.default.join(e,`agent-${l}.meta.json`),p={};try{let e=await i.promises.readFile(c,"utf8");p=JSON.parse(e)}catch{}try{n=await h(u)}catch{return null}let m=function(e){let t,i,s,a,n,o={...N},r=new Set,l=0,u=0,c=0,p=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===n&&"user"===m.type&&(null===m.parentUuid||void 0===m.parentUuid)){let e=m.message,t=e?.content;if("string"==typeof t)n=t;else if(Array.isArray(t)){let e=t.find(e=>e&&"object"==typeof e&&"text"===e.type);e?.text&&(n=e.text)}}if("assistant"===m.type){let e=m.message;if(!e)continue;a||"string"!=typeof e.model||(a=e.model);let t="string"==typeof e.id?e.id:void 0,i="string"==typeof m.requestId?m.requestId:void 0,n=null!=t&&null!=i?`${t}:${i}`:void 0,l=!n||!r.has(n);if(n&&l&&r.add(n),l){u++;let t=e.usage;if(t){let e=e=>"number"==typeof e?e:0;o.input+=e(t.input_tokens),o.output+=e(t.output_tokens),o.cacheRead+=e(t.cache_read_input_tokens),o.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&&(c++,p.set(e.name,(p.get(e.name)??0)+1)))}}let m=Array.from(p.entries()).map(([e,t])=>({name:e,count:t})).sort((e,t)=>t.count-e.count);return{startMs:t,endMs:i,totalUsage:o,eventCount:l,finalPreview:void 0!==s?s.replace(/\s+/g," ").trim().slice(0,240):void 0,finalText:s,model:a,toolCalls:m,toolCallCount:c,assistantMessageCount:u,initialPrompt:n}}(n),f=p.description&&p.description.trim().length>0?p.description:void 0,d=f?o.get(f):function(e){let t;if(void 0===e)return;let i=1/0;for(let s of r){if(void 0===s.tsMs)continue;let a=Math.abs(e-s.tsMs);a<i&&a<=2e3&&(t=s,i=a)}return t}(m.startMs),y=f??(m.initialPrompt?m.initialPrompt.replace(/\s+/g," ").trim().slice(0,80):"(no description)"),g=d?.prompt??m.initialPrompt,w=void 0!==t&&void 0!==m.startMs?Math.max(0,m.startMs-t):void 0,M=void 0!==t&&void 0!==m.endMs?Math.max(0,m.endMs-t):void 0,v=void 0!==m.startMs&&void 0!==m.endMs?m.endMs-m.startMs:void 0;return{agentId:l,agentType:p.agentType??"unknown",description:y,startMs:m.startMs,endMs:m.endMs,durationMs:v,startTOffsetMs:w,endTOffsetMs:M,eventCount:m.eventCount,totalUsage:m.totalUsage,parentUuid:d?.parentUuid,parentToolUseId:d?.toolUseId,runInBackground:d?.runInBackground,prompt:g,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))}async function F(e,t,s){let n;try{n=await i.promises.readdir(e)}catch{return[]}let o=n.filter(e=>e.startsWith("wf_")&&e.endsWith(".json"));if(0===o.length)return[];let r=[];for(let e of s){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&&r.push({toolUseId:i.id,parentUuid:e.uuid??"",tsMs:t})}r.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(o.map(async s=>{let n;try{n=JSON.parse(await i.promises.readFile(a.default.join(e,s),"utf8"))}catch{return null}let o=u(n.runId)??s.replace(/\.json$/,""),c=l(n.startTime),p=l(n.durationMs),m=void 0!==c&&void 0!==p?c+p:void 0,f=void 0!==t&&void 0!==c?Math.max(0,c-t):void 0,d=void 0!==t&&void 0!==m?Math.max(0,m-t):void 0,y=Array.isArray(n.phases)?n.phases.filter(e=>!!e&&"object"==typeof e&&"string"==typeof e.title).map(e=>({title:e.title,detail:u(e.detail)})):[],g=Array.isArray(n.logs)?n.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(n.workflowProgress)?n.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===r.length)return;let s=1/0,a=1/0;for(let n of r){let o=Math.abs(e-n.tsMs);!(o>6e4)&&(o<a&&(i=n,a=o),n.tsMs<=e&&o<s&&(t=n,s=o))}return t??i})(c);return{runId:o,name:u(n.workflowName)??o,description:u(n.summary),status:u(n.status)??"unknown",agentCount:l(n.agentCount)??0,toolCallCount:l(n.totalToolCalls)??0,totalTokens:l(n.totalTokens)??0,durationMs:p,startMs:c,endMs:m,startTOffsetMs:f,endTOffsetMs:d,model:u(n.defaultModel),phases:y,logs:g,agents:w,parentToolUseId:M?.toolUseId,parentUuid:M?.parentUuid}}))).filter(e=>null!==e).sort((e,t)=>(e.startMs??0)-(t.startMs??0))}async function W(e,t,i,s={}){let n,o,r,l,u,c,{root:p=d}=s;if(!/^[\w.-]+$/.test(t)||!/^[\w.-]+$/.test(i))return null;let m=(await b(p)).find(t=>w(t.fileName)===e);if(!m)return null;let f=a.default.join(a.default.dirname(m.fullPath),e,"subagents","workflows",t,`agent-${i}.jsonl`);try{n=await h(f)}catch{return null}let y=new Set;for(let e of n){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&&y.add(e.tool_use_id)}let g=[],M=new Map,v={...N},k=new Set,_=0,j=0;for(let e of n){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===o&&"user"===e.type&&(null===e.parentUuid||void 0===e.parentUuid)){let t=e.message?.content;if("string"==typeof t)o=t;else if(Array.isArray(t)){let e=t.find(e=>e&&"object"==typeof e&&"text"===e.type);e?.text&&(o=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,a="string"==typeof e.requestId?e.requestId:void 0,n=null!=s&&null!=a?`${s}:${a}`:void 0,p=!n||!k.has(n);if(n&&p&&k.add(n),p){_++;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 m=i.content;if(Array.isArray(m)){for(let e of m)if(e&&"object"==typeof e){if("text"===e.type&&"string"==typeof e.text)r=e.text;else if("tool_use"===e.type&&"string"==typeof e.name&&(M.set(e.name,(M.get(e.name)??0)+1),g.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;g.push({index:g.length+1,tool:e.name,preview:i,full:s.length>i.length||s.includes("\n")?s:void 0,isError:"string"==typeof e.id&&y.has(e.id)})}}}}return{agentId:i,prompt:o,finalText:r,steps:g,toolCalls:Array.from(M.entries()).map(([e,t])=>({name:e,count:t})).sort((e,t)=>t.count-e.count),toolCallCount:g.length,assistantMessageCount:_,eventCount:j,totalUsage:v,model:l,durationMs:void 0!==u&&void 0!==c?c-u:void 0}}let E={...n.CLAUDE_CODE_METADATA,defaultRoot:d,async listSessions(e){let t=await $(e);for(let e of t)e.agent||(e.agent="claude-code");return t},async getSession(e,t){let i=await B(e,t);return i&&!i.agent&&(i.agent="claude-code"),i}};e.s(["DEFAULT_ROOT",0,d,"claudeCodeSource",0,E,"getSession",0,B,"invalidateClaudeCodeFile",0,j,"listSessions",0,$,"loadWorkflowAgentDetail",0,W],20629);let U=a.default.join(s.default.homedir(),".codex","sessions"),J=/^rollout-(\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2})-([0-9a-f-]+)\.jsonl$/;async function L(e){return i.promises.readdir(e).catch(()=>[])}async function q(e){let t=[];for(let s of(await L(e))){if(!/^\d{4}$/.test(s))continue;let n=a.default.join(e,s);for(let e of(await L(n))){if(!/^\d{2}$/.test(e))continue;let s=a.default.join(n,e);for(let e of(await L(s))){if(!/^\d{2}$/.test(e))continue;let n=a.default.join(s,e);for(let e of(await L(n))){let s=J.exec(e);if(!s)continue;let o=a.default.join(n,e),r=await i.promises.stat(o).catch(()=>null);r&&t.push({filePath:o,sessionId:s[2],mtimeMs:r.mtimeMs,sizeBytes:r.size})}}}}return t}async function G(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 H(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function Y(e,t){let i,s,a,n,l,u,c,p=[],m={input:0,output:0,cacheRead:0,cacheWrite:0},f=0,d=0,y=[],g=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)&&y.push(e)}let r="string"==typeof e.type?e.type:"",w=e.payload??{},M="string"==typeof w.type?w.type:"";if("session_meta"===r){"string"==typeof w.cwd&&(a=w.cwd);continue}if("turn_context"===r){"string"==typeof w.cwd&&(a=w.cwd),"string"==typeof w.model&&(n=w.model);continue}if("event_msg"===r&&"token_count"===M){let e=w.info??null,t=e?.total_token_usage??null;t&&(m.input=K(t.input_tokens)??m.input,m.output=K(t.output_tokens)??m.output,m.cacheRead=K(t.cached_input_tokens)??m.cacheRead);continue}if("event_msg"===r&&"user_message"===M){let i="string"==typeof w.message?w.message:"",s=H(i),a=(0,o.isFrameworkInjectedUserInput)(i);i&&!a&&(l||(l=s),u=s,d+=1),p.push({index:g++,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"===M){let i="string"==typeof w.message?w.message:"",s=H(i);i&&(c=s),p.push({index:g++,timestamp:t,role:"agent",rawType:"event_msg/agent_message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:n,raw:e});continue}if("response_item"===r&&"reasoning"===M){let i=(w.summary??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim();p.push({index:g++,timestamp:t,role:"agent-thinking",rawType:"response_item/reasoning",preview:H(i),blocks:i?[{type:"thinking",thinking:i}]:[],model:n,raw:e});continue}if("response_item"===r&&"message"===M&&"assistant"===w.role){let i=(w.content??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim(),s=H(i);i&&(c=s),p.push({index:g++,timestamp:t,role:"agent",rawType:"response_item/message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:n,raw:e});continue}if("response_item"===r&&"function_call"===M){var h;let i="string"==typeof w.name?w.name:"(unknown)",s="string"==typeof w.call_id?w.call_id:void 0,a="string"==typeof w.arguments?w.arguments:"",o=function(e){if(!e)return null;try{return JSON.parse(e)}catch{return e}}(a);f+=1,p.push({index:g++,timestamp:t,role:"tool-call",rawType:"response_item/function_call",preview:`${i}(${(h=a).length<=80?h:h.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:s??`codex-${g}`,name:i,input:o}],toolName:i,toolUseId:s,model:n,raw:e});continue}if("response_item"===r&&"function_call_output"===M){let i="string"==typeof w.call_id?w.call_id:void 0,s="string"==typeof w.output?w.output:"",a=/process exited with code [1-9]/i.test(s);p.push({index:g++,timestamp:t,role:"tool-result",rawType:"response_item/function_call_output",preview:H(s),blocks:[{type:"tool_result",tool_use_id:i??"",content:s,is_error:a}],toolUseId:i,toolResult:s,raw:e});continue}p.push({index:g++,timestamp:t,role:"meta",rawType:M?`${r}/${M}`:r,preview:"",blocks:[],raw:e})}if(m.input>0||m.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:m.input,output:m.output,cacheRead:m.cacheRead,cacheWrite:0}}}let w=i?Date.parse(i):void 0;if(void 0!==w&&Number.isFinite(w)){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-w),void 0!==e&&(t.gapMs=Math.max(0,i-e)),e=i)}}let M=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],a=t[0];for(let e=1;e<t.length;e++)t[e]-a>18e4&&(i.push({startMs:s,endMs:a}),s=t[e]),a=t[e];return i.push({startMs:s,endMs:a}),i}(y),v=M.reduce((e,t)=>e+(t.endMs-t.startMs),0),k=i&&s?Date.parse(s)-Date.parse(i):void 0,_=a?(0,r.canonicalProjectName)(a):"(unknown)",j=a?a.replace(/^\//,"-").replace(/\//g,"-"):"(unknown)";return{meta:{agent:"codex",id:e.sessionId,filePath:e.filePath,projectName:_,projectDir:j,sessionId:e.sessionId,firstTimestamp:i,lastTimestamp:s,durationMs:k&&Number.isFinite(k)?k:void 0,eventCount:p.length,model:n,cwd:a,totalUsage:m,status:"idle",firstUserPreview:l,lastUserPreview:u,lastAgentPreview:c,toolCallCount:f,turnCount:d,airTimeMs:v,activeSegments:M},events:p}}function K(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}let Q=new Map,V=new Map;async function X(e={}){let t=e.root??U,i=await q(t),s=[];for(let e of i){let t=Q.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){s.push(t.meta);continue}try{let t=await G(e.filePath),{meta:i}=Y(e,t);Q.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 Z(e,t={}){let i=t.root??U,s=(await q(i)).find(t=>t.sessionId===e);if(!s)return null;let a=V.get(s.filePath);if(a&&a.mtimeMs===s.mtimeMs&&a.sizeBytes===s.sizeBytes)return a.detail;let n=await G(s.filePath),{meta:o,events:r}=Y(s,n),l={...o,events:r};return V.set(s.filePath,{detail:l,mtimeMs:s.mtimeMs,sizeBytes:s.sizeBytes}),l}async function ee(e={}){let t=e.root??U,i=await q(t);if(0===i.length)return null;for(let e of(i.sort((e,t)=>t.mtimeMs-e.mtimeMs),i)){let t=await G(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 a=s.payload??{};if("token_count"!==a.type)continue;let n=a.rate_limits??null;if(!n)continue;let o=n.primary??null,r=n.secondary??null,l=K(o?.used_percent),u=K(r?.used_percent),c=K(o?.resets_at),p=K(r?.resets_at),m="string"==typeof n.plan_type?n.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:m,source_path:e.filePath}}}return null}let et=a.default.join(s.default.homedir(),".gemini","tmp"),ei=a.default.join(s.default.homedir(),".gemini","projects.json"),es=/^session-.+\.(jsonl|json)$/;async function ea(e){return i.promises.readdir(e).catch(()=>[])}async function en(e){let t=[];for(let s of(await ea(e))){let n=a.default.join(e,s,"chats");for(let e of(await ea(n))){if(!es.test(e))continue;let o=a.default.join(n,e),r=await i.promises.stat(o).catch(()=>null);if(!r||!r.isFile())continue;let l=e.replace(/\.(jsonl|json)$/,"").split("-").pop()??e;t.push({filePath:o,slug:s,filenameId:l,format:e.endsWith(".jsonl")?"jsonl":"legacy-json",mtimeMs:r.mtimeMs,sizeBytes:r.size})}}return t}let eo=null;async function er(){let e,t=await i.promises.stat(ei).catch(()=>null);if(!t)return new Map;if(eo&&eo.mtimeMs===t.mtimeMs)return eo.slugToCwd;let s=await i.promises.readFile(ei,"utf8").catch(()=>"");try{e=JSON.parse(s)}catch{e={}}let a=new Map;for(let[t,i]of Object.entries(e.projects??{}))"string"==typeof i&&a.set(i,t);return eo={mtimeMs:t.mtimeMs,slugToCwd:a},a}function el(e){return!!e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.type}async function eu(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(el)}}let s={},a=new Map,n=[];for(let e of t.split("\n")){let t,i=e.trim();if(i){var o,r;try{t=JSON.parse(i)}catch{continue}if((o=t)&&"object"==typeof o&&"$rewindTo"in o){let e=t.$rewindTo,i=n.indexOf(e);if(i>=0){for(let e of n.slice(i))a.delete(e);n.length=i}continue}if((r=t)&&"object"==typeof r&&"$set"in r){Object.assign(s,t.$set);continue}if(el(t)){a.has(t.id)||n.push(t.id),a.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 n){let t=a.get(e);t&&l.push(t)}return{meta:s,messages:l}}function ec(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function ep(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 em(e){let t,i,s,a,n,l,{meta:u,messages:c}=await eu(e),p=(await er()).get(e.slug),m=[],f={input:0,output:0,cacheRead:0,cacheWrite:0},d=0,y=0,g=[],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)&&g.push(s)}}for(let e of c){let t=e.timestamp;if("user"===e.type){let i=ep(e.displayContent??e.content),s=ec(i),r=(0,o.isFrameworkInjectedUserInput)(i);i&&!r&&(a||(a=s),n=s,y+=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 a=ep(e.content),n=ec(a);if(a&&(l=n),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:ec(e),blocks:[{type:"thinking",thinking:e}],model:s,raw:i})}for(let o of(a?w({index:h++,timestamp:t,role:"agent",rawType:"gemini/agent",preview:n,blocks:[{type:"text",text:a}],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=o.args?JSON.stringify(o.args):"";w({index:h++,timestamp:o.timestamp??t,role:"tool-call",rawType:"gemini/tool_call",preview:`${o.name}(${e.length<=80?e:e.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:o.id,name:o.name,input:o.args??{}}],toolName:o.name,toolUseId:o.id,model:s,raw:o});let i=(o.status??"").toLowerCase();if("success"===i||"error"===i||"cancelled"===i){let e=ep(o.result);w({index:h++,timestamp:o.timestamp??t,role:"tool-result",rawType:"gemini/tool_result",preview:ec(e),blocks:[{type:"tool_result",tool_use_id:o.id,content:e,is_error:"error"===i||"cancelled"===i}],toolUseId:o.id,toolResult:e,raw:o})}}continue}if("info"===e.type||"warning"===e.type||"error"===e.type){let i=ep(e.content);w({index:h++,timestamp:t,role:"meta",rawType:`gemini/${e.type}`,preview:ec(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],a=t[0];for(let e=1;e<t.length;e++)t[e]-a>18e4&&(i.push({startMs:s,endMs:a}),s=t[e]),a=t[e];return i.push({startMs:s,endMs:a}),i}(g),k=v.reduce((e,t)=>e+(t.endMs-t.startMs),0),_=t&&i?Date.parse(i)-Date.parse(t):void 0,j=u.sessionId??e.filenameId,b=p?(0,r.canonicalProjectName)(p):e.slug,N=p?p.replace(/^\//,"-").replace(/\//g,"-"):e.slug;return{meta:{agent:"gemini",id:j,filePath:e.filePath,projectName:b,projectDir:N,sessionId:j,firstTimestamp:t,lastTimestamp:i,durationMs:_&&Number.isFinite(_)?_:void 0,eventCount:m.length,model:s,cwd:p,totalUsage:f,status:"idle",firstUserPreview:a,lastUserPreview:n,lastAgentPreview:l,toolCallCount:d,turnCount:y,airTimeMs:k,activeSegments:v},events:m}}let ef=new Map,ed=new Map;async function ey(e={}){let t=e.root??et,i=await en(t),s=[];for(let e of i){let t=ef.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){s.push(t.meta);continue}try{let{meta:t}=await em(e);ef.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 eg(e,t={}){let i,s=t.root??et,a=await en(s);for(let t of a)if(t.filenameId===e||e.startsWith(t.filenameId)){i=t;break}if(!i)for(let t of a){let{meta:s}=await em(t).catch(()=>({meta:{id:""}}));if(s.id===e){i=t;break}}if(!i)return null;let n=ed.get(i.filePath);if(n&&n.mtimeMs===i.mtimeMs&&n.sizeBytes===i.sizeBytes)return n.detail;let{meta:o,events:r}=await em(i),l={...o,events:r};return ed.set(i.filePath,{detail:l,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes}),l}let eh=a.default.join(s.default.homedir(),".gemini","antigravity-cli");async function ew(e){return i.promises.readdir(e).catch(()=>[])}let eM=null;async function ev(e){let t=a.default.join(e,"history.jsonl"),s=await i.promises.stat(t).catch(()=>null);if(!s)return new Map;if(eM&&eM.mtimeMs===s.mtimeMs)return eM.slugToCwd;let n=await i.promises.readFile(t,"utf8").catch(()=>""),o=new Map;for(let e of n.split("\n")){let t=e.trim();if(t)try{let e=JSON.parse(t);e.conversationId&&e.workspace&&o.set(e.conversationId,e.workspace)}catch{}}return eM={mtimeMs:s.mtimeMs,slugToCwd:o},o}async function ek(e){let t=await ev(e),s=[],n=a.default.join(e,"brain");for(let e of(await ew(n))){let o=a.default.join(n,e,".system_generated","logs","transcript.jsonl"),r=await i.promises.stat(o).catch(()=>null);r&&r.isFile()&&s.push({filePath:o,conversationId:e,cwd:t.get(e),mtimeMs:r.mtimeMs,sizeBytes:r.size})}return s}function e_(e){return e.replace(/\s+/g," ").trim().slice(0,200)}async function ej(e){let t,s,a,n,l,u,c=await i.promises.readFile(e.filePath,"utf8"),p=[],m=0,f=0,d=[],y=0;function g(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)&&d.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();a=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()),a=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 r=e_(i),u=(0,o.isFrameworkInjectedUserInput)(i);i&&!u&&(n||(n=r),l=r,f+=1),g({index:y++,timestamp:t,role:"user",rawType:"antigravity/user",preview:r,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&&g({index:y++,timestamp:t,role:"agent-thinking",rawType:"antigravity/thought",preview:e_(i),blocks:[{type:"thinking",thinking:i}],model:a,raw:e}),s){let i=e_(s);u=i,g({index:y++,timestamp:t,role:"agent",rawType:"antigravity/agent",preview:i,blocks:[{type:"text",text:s}],messageId:e.step_index?.toString(),model:a,raw:e})}let n=e.tool_calls||[];for(let i=0;i<n.length;i++){let s=n[i];m+=1;let o=`tool-${e.step_index}-${i}`,r=s.args?JSON.stringify(s.args):"";h.push({id:o,name:s.name}),g({index:y++,timestamp:t,role:"tool-call",rawType:"antigravity/tool_call",preview:`${s.name}(${r.length<=80?r:r.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:o,name:s.name,input:s.args||{}}],toolName:s.name,toolUseId:o,model:a,raw:s})}continue}if("MODEL"===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`,a="string"==typeof e.content?e.content:JSON.stringify(e.content||""),n="ERROR"===e.status||"FAILED"===e.status||"CANCELED"===e.status||!!e.error;g({index:y++,timestamp:t,role:"tool-result",rawType:"antigravity/tool_result",preview:e_(a),blocks:[{type:"tool_result",tool_use_id:s,content:a,is_error:n}],toolUseId:s,toolResult:a,raw:e});continue}let i=e.content||e.error||"";g({index:y++,timestamp:t,role:"meta",rawType:`antigravity/${e.type?.toLowerCase()||"unknown"}`,preview:e_(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 k=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],a=t[0];for(let e=1;e<t.length;e++)t[e]-a>18e4&&(i.push({startMs:s,endMs:a}),s=t[e]),a=t[e];return i.push({startMs:s,endMs:a}),i}(d),_=k.reduce((e,t)=>e+(t.endMs-t.startMs),0),j=t&&s?Date.parse(s)-Date.parse(t):void 0,b=e.conversationId,N=e.cwd,I=N?(0,r.canonicalProjectName)(N):e.conversationId,x=N?N.replace(/^\//,"-").replace(/\//g,"-"):e.conversationId;return{meta:{agent:"antigravity",id:b,filePath:e.filePath,projectName:I,projectDir:x,sessionId:b,firstTimestamp:t,lastTimestamp:s,durationMs:j&&Number.isFinite(j)?j:void 0,eventCount:p.length,model:a,cwd:N,totalUsage:{input:0,output:0,cacheRead:0,cacheWrite:0},status:"idle",firstUserPreview:n,lastUserPreview:l,lastAgentPreview:u,toolCallCount:m,turnCount:f,airTimeMs:_,activeSegments:k},events:p}}let eb=new Map,eN=new Map;async function eI(e={}){let t=e.root??eh,i=await ek(t),s=[];for(let e of i){let t=eb.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 ej(e);eb.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 ex(e,t={}){let i,s=t.root??eh;for(let t of(await ek(s)))if(t.conversationId===e){i=t;break}if(!i)return null;let a=eN.get(i.filePath);if(a&&a.mtimeMs===i.mtimeMs&&a.sizeBytes===i.sizeBytes&&a.cwd===i.cwd)return a.detail;let{meta:n,events:o}=await ej(i),r={...n,events:o};return eN.set(i.filePath,{detail:r,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes,cwd:i.cwd}),r}let eT=(t=s.default.homedir(),a.default.join(t,".config","Claude","local-agent-mode-sessions")),eS=/^local_[0-9a-f-]+$/;async function eA(e){return i.promises.readdir(e).catch(()=>[])}async function eC(e){let t=await i.promises.stat(e).catch(()=>null);return t?t.mtimeMs:0}async function eP(e){let t=[];for(let s of(await eA(e))){let n=a.default.join(e,s);for(let e of(await eA(n))){let s=a.default.join(n,e),o=await eC(a.default.join(s,"spaces.json"));for(let e of(await eA(s))){if(!eS.test(e))continue;let n=a.default.join(s,e,"audit.jsonl"),r=await i.promises.stat(n).catch(()=>null);if(!r||!r.isFile()||0===r.size)continue;let l=a.default.join(s,`${e}.json`),u=await eC(l);t.push({sessionId:e,auditPath:n,metaPath:l,workspaceDir:s,auditMtimeMs:r.mtimeMs,auditSize:r.size,metaMtimeMs:u,spacesMtimeMs:o})}}}return t}let eD=new Map;async function eR(e){let t=a.default.join(e,"spaces.json"),s=await i.promises.stat(t).catch(()=>null);if(!s)return new Map;let n=eD.get(e);if(n&&n.mtimeMs===s.mtimeMs)return n.spaceIdToPath;let o=await i.promises.readFile(t,"utf8").catch(()=>""),r=new Map;try{for(let e of JSON.parse(o).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&&r.set(t,s)}}catch{}return eD.set(e,{mtimeMs:s.mtimeMs,spaceIdToPath:r}),r}async function eO(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 e$(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 eB(e){let t,[i,s,a]=await Promise.all([e$(e.auditPath),eO(e.metaPath),eR(e.workspaceDir)]),{meta:n,events:o}=f(i),{projectName:l,projectDir:u,cwd:c}=(s.spaceId&&(t=a.get(s.spaceId)),!t&&s.userSelectedFolders&&s.userSelectedFolders.length>0&&(t=s.userSelectedFolders[0]),t)?{projectName:(0,r.canonicalProjectName)(t),projectDir:t.replace(/^\//,"-").replace(/\//g,"-"),cwd:t}:{projectName:"cowork:unspaced",projectDir:"cowork-unspaced"};return{meta:{...n,agent:"cowork",id:e.sessionId,sessionId:e.sessionId,filePath:e.auditPath,projectName:l,projectDir:u,cwd:c??n.cwd,model:n.model??s.model},events:o}}function ez(e){return{auditMtimeMs:e.auditMtimeMs,auditSize:e.auditSize,metaMtimeMs:e.metaMtimeMs,spacesMtimeMs:e.spacesMtimeMs}}function eF(e,t){return e.auditMtimeMs===t.auditMtimeMs&&e.auditSize===t.auditSize&&e.metaMtimeMs===t.metaMtimeMs&&e.spacesMtimeMs===t.spacesMtimeMs}let eW=new Map,eE=new Map;async function eU(e={}){let t=e.root??eT,i=await eP(t),s=[];for(let e of i){let t=ez(e),i=eW.get(e.auditPath);if(i&&eF(i.key,t)){s.push(i.meta);continue}try{let{meta:i}=await eB(e);eW.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 eJ(e,t={}){let i=t.root??eT,s=(await eP(i)).find(t=>t.sessionId===e);if(!s)return null;let a=ez(s),n=eE.get(s.auditPath);if(n&&eF(n.key,a))return n.detail;let{meta:o,events:r}=await eB(s),l={...o,events:r};return eE.set(s.auditPath,{detail:l,key:a}),l}function eL(){return process.env.CCLENS_HOME||a.default.join(s.default.homedir(),".cclens")}function eq(...e){return a.default.join(eL(),...e)}function eG(e){j(e)}let eH=[E,{...n.CODEX_METADATA,defaultRoot:U,listSessions:async e=>X(e),getSession:async e=>Z(e),async usagePoller(){let e=await ee();return e?{captured_at:new Date().toISOString(),agent:"codex",five_hour:e.five_hour,seven_day:e.seven_day}:null}},{...n.GEMINI_METADATA,defaultRoot:et,listSessions:async e=>ey(e),getSession:async e=>eg(e)},{...n.ANTIGRAVITY_METADATA,defaultRoot:eh,listSessions:async e=>eI(e),getSession:async e=>ex(e)},{...n.COWORK_METADATA,defaultRoot:eT,listSessions:async e=>eU(e),getSession:async e=>eJ(e)}];async function eY(e){for(let t of eH){let i=await t.getSession(e);if(i)return i}return null}}];
2
2
 
3
3
  //# sourceMappingURL=packages_parser_dist_06d9se1._.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:"✺"},a={kind:"antigravity",displayName:"Antigravity",shortLabel:"Agy",accentColor:"rgb(236, 72, 153)",iconChar:"⏃"},n={kind:"cowork",displayName:"Cowork",shortLabel:"Cowork",accentColor:"rgb(217, 119, 87)",iconChar:"⌘"},o=[t,i,s,a,n];o.map(e=>e.kind),e.s(["ANTIGRAVITY_METADATA",0,a,"CLAUDE_CODE_METADATA",0,t,"CODEX_METADATA",0,i,"COWORK_METADATA",0,n,"GEMINI_METADATA",0,s,"agentMetadata",0,o])},36521,e=>{"use strict";let t=[/<system_instruction\b[^>]*>[\s\S]*?<\/system_instruction>\s*/gi],i=["<command-name>","<local-command-stdout>","<local-command-caveat>","<task-notification>","Base directory for this skill:","This session is being continued from a previous conversation","A session-scoped Stop hook is now active"];function s(e){if(!e)return e;let i=e;for(let e of t)i=i.replace(e,"");return i.trim()}e.s(["isFrameworkInjectedUserInput",0,function(e){if(!e)return!1;let t=s(e);if(!t)return!0;for(let e of i)if(t.startsWith(e))return!0;return!1},"stripFrameworkBoilerplate",0,s])},79357,e=>{"use strict";let t=["/.claude/worktrees/","/.worktrees/","/claude/worktrees/"],i=/\/conductor\/workspaces\/[^/]+\/([^/]+)(?:\/|$)/,s="/.superset/worktrees/",a=/^[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 n=e.replace(/\/{2,}/g,"/"),o=function(e){for(let i of t){let t=e.lastIndexOf(i);if(t>=0)return{idx:t,marker:i}}return null}(n);if(o)return n.slice(0,o.idx);let r=function(e){let t=i.exec(e);if(!t)return null;let s=t[1],a=+!!t[0].endsWith("/");return{canonicalEndIdx:t.index+t[0].length-s.length-1-a,workspaceName:s}}(n);if(r)return n.slice(0,r.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 n=a.test(i[0])?i[1]??i[0]:i[0];return{canonical:e.slice(0,t)+s+n,workspaceName:n}}(n);return l?l.canonical:n},"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,a=t.minActive??2,n=[];for(let t of e)for(let e of t.segments)e.endMs<=e.startMs||(n.push({ms:e.startMs,delta:1,sessionId:t.id}),n.push({ms:e.endMs,delta:-1,sessionId:t.id}));n.sort((e,t)=>e.ms-t.ms||t.delta-e.delta);let o=new Map,r=[],l=null;for(let e of n){if(1===e.delta)o.set(e.sessionId,(o.get(e.sessionId)??0)+1);else{let t=(o.get(e.sessionId)??0)-1;t<=0?o.delete(e.sessionId):o.set(e.sessionId,t)}let t=o.size;if(t>=a)if(l)for(let i of(l.endMs=e.ms,t>l.peak&&(l.peak=t),o.keys()))l.sessionIds.add(i);else l={startMs:e.ms,endMs:e.ms,peak:t,sessionIds:new Set(o.keys())};else l&&(l.endMs=e.ms,r.push(l),l=null)}l&&r.push(l);let u=r.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"),a=String(t.getDate()).padStart(2,"0");return`${i}-${s}-${a}`}])},43427,20629,e=>{"use strict";let t;e.s(["cclensHome",()=>eL,"cclensPath",()=>eq,"getAnySession",()=>eY,"invalidateFile",()=>eG],43427);var i=e.i(2157),s=e.i(60526),a=e.i(50227),n=e.i(39587),o=e.i(36521),r=e.i(79357);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(),a="message";if(s.startsWith("{"))try{let e=JSON.parse(s);"idle_notification"===e.type?a="idle-notification":"shutdown_request"===e.type?a="shutdown-request":"shutdown_approved"===e.type?a="shutdown-approved":"task_assignment"===e.type?a="task-assignment":"teammate_terminated"===e.type&&(a="teammate-terminated")}catch{}return{teammateId:i,body:s,kind:a}}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,a,n,c,f,d,y,g=[];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,a=e.parentUuid??null,n=e.timestamp;if("assistant"===i){let o,r,l,c=e.message??{},p=c.content??[],f=m(c.usage),d=c.model,y=e.requestId,g=c.id,h=c.stop_reason,w=p[0],M="agent";return w?.type==="thinking"?(M="agent-thinking",o="[thinking] "+u(w.thinking,140)):w?.type==="tool_use"?(M="tool-call",r=w.name,l=w.id,o=`${w.name} `+u(JSON.stringify(w.input??{}),100)):o=w?.type==="text"?u(w.text,200):`<assistant:${w?.type??"empty"}>`,{index:t,uuid:s,parentUuid:a,timestamp:n,role:M,rawType:i,preview:o,blocks:p,usage:f,model:d,requestId:y,messageId:g,stopReason:h,toolName:r,toolUseId:l,raw:e}}if("user"===i){let r=(e.message??{}).content;if("string"==typeof r){let l=(0,o.stripFrameworkBoilerplate)(r),c=p(l);return{index:t,uuid:s,parentUuid:a,timestamp:n,role:"user",rawType:i,preview:u(l,200),blocks:l?[{type:"text",text:l}]:[],raw:e,teammateMessage:c}}if(Array.isArray(r)){let l=r[0];if(l?.type==="tool_result")return{index:t,uuid:s,parentUuid:a,timestamp:n,role:"tool-result",rawType:i,preview:u("string"==typeof l.content?l.content:JSON.stringify(l.content),200),blocks:r,toolUseId:l.tool_use_id,toolResult:e.toolUseResult,raw:e};let c=r.find(e=>e?.type==="text"),m=c?(0,o.stripFrameworkBoilerplate)(c.text):"",f=c?r.map(e=>e===c?{type:"text",text:m}:e):r,d=m?p(m):void 0;return{index:t,uuid:s,parentUuid:a,timestamp:n,role:"user",rawType:i,preview:m?u(m,200):u(JSON.stringify(r),200),blocks:f,raw:e,teammateMessage:d}}}if("attachment"===i){let o=e.attachment??{},r=String(o.type??"attachment"),l=`<attachment: ${r}>`;return"string"==typeof o.content&&o.content.length>0?l=`[${r}] `+u(o.content,140):Array.isArray(o.addedNames)&&(l=`[${r}] +${o.addedNames.length} names`),{index:t,uuid:s,parentUuid:a,timestamp:n,role:"system",rawType:i,preview:l,blocks:[{type:"text",text:JSON.stringify(o,null,2)}],attachmentType:r,raw:e}}return{index:t,uuid:s,parentUuid:a,timestamp:n,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&&g.push(i)}let h=g.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,k=void 0!==M?new Date(M).toISOString():void 0;for(let e of g){if(!e.timestamp)continue;let t=Date.parse(e.timestamp);Number.isNaN(t)||void 0!==w&&(e.tOffsetMs=Math.max(0,t-w))}let _=g.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<_.length;e++)_[e].e.gapMs=Math.max(0,_[e].ms-_[e-1].ms);let j=g.filter(e=>e.timestamp).map(e=>Date.parse(e.timestamp)).filter(e=>!Number.isNaN(e)).sort((e,t)=>e-t),b=[],N=0;if(j.length>0){let e=j[0],t=j[0];for(let i=1;i<j.length;i++){let s=j[i],a=s-t;a>18e4?(b.push({startMs:e,endMs:t}),e=s):a>0&&(N+=a),t=s}b.push({startMs:e,endMs:t})}let I=new Map,x=[];for(let e of g){if(!e.timestamp)continue;let t=Date.parse(e.timestamp);if(!Number.isNaN(t)){if("assistant"===e.rawType&&e.usage&&e.messageId){let i=I.get(e.messageId);i?(i.siblings.push(e),t<i.ms&&(i.rep=e,i.ms=t)):I.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 T=[...I.values()].sort((e,t)=>e.ms-t.ms);x.sort((e,t)=>e.ms-t.ms);let S=0,A=0,C=(e,t)=>{for(let i of e.siblings)i.coldResume=t;S++,A+=t.writeTokens},P=new Set;for(let e of x){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,a=s.cacheWrite+s.cacheRead;C(i,{trigger:"compact",gapMs:void 0!==t?i.ms-t:0,writeTokens:s.cacheWrite,writeRatio:a>0?s.cacheWrite/a:0,compact:{trigger:e.trigger,preTokens:e.preTokens}}),P.add(i.rep.messageId)}for(let e=1;e<T.length;e++){let t=T[e-1],i=T[e];if(P.has(i.rep.messageId))continue;let s=i.rep.usage,a=s.cacheWrite+s.cacheRead,n=a>0?s.cacheWrite/a:0,o=i.ms-t.ms;o>3e5&&s.cacheWrite>=1e3&&n>=.3&&C(i,{trigger:"idle",gapMs:o,writeTokens:s.cacheWrite,writeRatio:n})}let D={...l},R=new Set,$="",O=!1,B=!1,z=0,F=0,W=0,E=0,U=new Set,J=new Map,L=void 0!==w?(0,r.toLocalDay)(w):void 0,q=e=>{let t;if(e){let i=Date.parse(e);Number.isNaN(i)||(t=(0,r.toLocalDay)(i))}if(!(t=t??L))return;let i=J.get(t);return i||(i={toolCalls:0,turns:0,tokens:{...l}},J.set(t,i)),i};for(let e of g){if("tool-call"===e.role){z++;let t=q(e.timestamp);t&&t.toolCalls++;let i=e.blocks.find(e=>e&&"tool_use"===e.type);if(i){let e=i.input??{};if("TeamCreate"===i.name&&(O=!0),"SendMessage"===i.name){let t="string"==typeof e.to?e.to:"";t&&"team-lead"!==t&&(B=!0)}let t="string"==typeof e.file_path?e.file_path:void 0;if("Edit"===i.name&&t){U.add(t);let i="string"==typeof e.old_string?e.old_string:"",s="string"==typeof e.new_string?e.new_string:"",a=i?i.split("\n").length:0,n=s?s.split("\n").length:0;W+=Math.max(0,n-a),E+=Math.max(0,a-n)}else if("Write"===i.name&&t){U.add(t);let i="string"==typeof e.content?e.content:"";W+=i?i.split("\n").length:0}}}if("user"===e.role){let t=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=(0,o.isFrameworkInjectedUserInput)(t),s=void 0!==e.teammateMessage&&!c;if(!i&&!s){f||(f=e.teammateMessage?e.teammateMessage.body:e.preview),F++;let t=q(e.timestamp);t&&t.turns++,y=e.preview}}"agent"===e.role&&(d=e.preview)}for(let o of e)if(o&&"object"==typeof o&&("string"!=typeof o.sessionId||$||($=o.sessionId),"string"!=typeof o.cwd||i||(i=o.cwd),"string"!=typeof o.gitBranch||s||(s=o.gitBranch),"string"!=typeof o.entrypoint||a||(a=o.entrypoint),"string"!=typeof o.teamName||n||(n=o.teamName),"string"!=typeof o.agentName||c||(c=o.agentName),"assistant"===o.type)){let e=o.message;if(e){"string"!=typeof e.model||t||(t=e.model);let i="string"==typeof e.id?e.id:void 0,s="string"==typeof o.requestId?o.requestId:void 0,a=null!=i?`${i}:${s??""}`:void 0;if(a&&R.has(a))continue;a&&R.add(a);let n=m(e.usage);if(n){D.input+=n.input,D.output+=n.output,D.cacheRead+=n.cacheRead,D.cacheWrite+=n.cacheWrite;let e=q("string"==typeof o.timestamp?o.timestamp:void 0);e&&(e.tokens.input+=n.input,e.tokens.output+=n.output,e.tokens.cacheRead+=n.cacheRead,e.tokens.cacheWrite+=n.cacheWrite)}}}return{events:g,meta:{sessionId:$,firstTimestamp:v,lastTimestamp:k,durationMs:void 0!==w&&void 0!==M?M-w:void 0,eventCount:g.length,model:t,cwd:i,gitBranch:s,entrypoint:a,totalUsage:D,status:"idle",firstUserPreview:f,lastUserPreview:y,lastAgentPreview:d,toolCallCount:z,turnCount:F,dailyBreakdown:Array.from(J.entries()).map(([e,t])=>({day:e,toolCalls:t.toolCalls,turns:t.turns,tokens:t.tokens})).sort((e,t)=>e.day.localeCompare(t.day)),airTimeMs:N,activeSegments:b,linesAdded:W,linesRemoved:E,filesEdited:U.size,coldResumeCount:S,cacheRebuildTokens:A,teamName:n,agentName:c,isTeamLead:void 0!==n&&void 0===c&&(O||B)}}}let d=a.default.join(s.default.homedir(),".claude","projects");function y(e){return e.startsWith("-")?"/"+e.slice(1).replace(/-/g,"/"):e}let g=a.default.join(s.default.homedir(),".cclens","runtime").replace(/[/.]/g,"-");async function h(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 w(e){return e.replace(/\.jsonl$/i,"")}let M=new Map,v=new Map,k=new Map,_=null;function j(e){M.delete(e),v.delete(e),k.delete(e),_=null}async function b(e=d){let t;if(_&&_.root===e&&Date.now()-_.capturedAtMs<1e3)return _.files;try{t=await i.promises.readdir(e,{withFileTypes:!0})}catch{return[]}let s=t.filter(e=>e.isDirectory()&&e.name!==g).map(e=>e.name),n=(await Promise.all(s.map(async t=>{let s,n=a.default.join(e,t);try{s=await i.promises.readdir(n)}catch{return[]}let o=s.filter(e=>e.endsWith(".jsonl"));return(await Promise.all(o.map(async e=>{let s=a.default.join(n,e);try{let a=await i.promises.stat(s);return{projectDir:t,fileName:e,fullPath:s,mtimeMs:a.mtimeMs,sizeBytes:a.size}}catch{return null}}))).filter(e=>null!==e)}))).flat();return _={files:n,capturedAtMs:Date.now(),root:e},n}let N={input:0,output:0,cacheRead:0,cacheWrite:0};function I(e,t,i,s,a){for(let n of e){if(!n||"object"!=typeof n||"assistant"!==n.type)continue;let e=n.message;if(!e)continue;let o="string"==typeof e.id?e.id:void 0,l="string"==typeof n.requestId?n.requestId:void 0,u=null!=o&&null!=l?`${o}:${l}`:void 0;if(u&&t.has(u))continue;u&&t.add(u);let c=e.usage;if(c){let e=e=>"number"==typeof e?e:0,t=e(c.input_tokens),o=e(c.output_tokens),l=e(c.cache_read_input_tokens),u=e(c.cache_creation_input_tokens);if(i.input+=t,i.output+=o,i.cacheRead+=l,i.cacheWrite+=u,s){let e,i="string"==typeof n.timestamp?n.timestamp:void 0;if(i){let t=Date.parse(i);Number.isNaN(t)||(e=(0,r.toLocalDay)(t))}if(e=e??a){let i=s.get(e);i||(i={...N},s.set(e,i)),i.input+=t,i.output+=o,i.cacheRead+=l,i.cacheWrite+=u}}}}}async function x(e,t,s,n){let o,r={...N},l=new Set,u=new Map;I(e,l,r,u,n);let c=a.default.join(t,s,"subagents");try{o=await i.promises.readdir(c)}catch{return{usage:r,perDay:u}}let p=o.filter(e=>e.endsWith(".jsonl"));return 0===p.length||await Promise.all(p.map(async e=>{try{let t=await h(a.default.join(c,e));I(t,l,r,u,n)}catch{}})),{usage:r,perDay:u}}async function T(e,t){let s,n=a.default.join(e,t,"workflows");try{s=await i.promises.readdir(n)}catch{return{workflowCount:0,spawnedAgentCount:0,spans:[]}}let o=s.filter(e=>e.startsWith("wf_")&&e.endsWith(".json"));if(0===o.length)return{workflowCount:0,spawnedAgentCount:0,spans:[]};let r=0,l=[];return{workflowCount:(await Promise.all(o.map(async e=>{try{let t=JSON.parse(await i.promises.readFile(a.default.join(n,e),"utf8"));return"number"==typeof t.agentCount&&(r+=t.agentCount),"number"==typeof t.startTime&&"number"==typeof t.durationMs&&t.durationMs>0&&l.push({startMs:t.startTime,endMs:t.startTime+t.durationMs}),!0}catch{return!1}}))).filter(Boolean).length,spawnedAgentCount:r,spans:l}}async function S(e,t){let s;try{s=await i.promises.readdir(e,{withFileTypes:!0})}catch{return 0}return(await Promise.all(s.map(async s=>{let n=a.default.join(e,s.name);try{if(s.isDirectory())return t>0?await S(n,t-1):0;return(await i.promises.stat(n)).mtimeMs}catch{return 0}}))).reduce((e,t)=>Math.max(e,t),0)}async function A(e,t){let i=a.default.join(e,t),[s,n]=await Promise.all([S(a.default.join(i,"subagents"),2),S(a.default.join(i,"workflows"),0)]),o=Math.max(s,n);return o>0?o:void 0}async function C(e,t){let i=await A(a.default.dirname(t.fullPath),e.id),s=e.lastTimestamp?Date.parse(e.lastTimestamp):0,n=Math.max(Number.isFinite(s)?s:0,i??0);return n>0?{...e,lastActivityMs:n}:e}function P(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],a=s[s.length-1];t.startMs<=a.endMs?a.endMs=Math.max(a.endMs,t.endMs):s.push({...t})}let a=s.reduce((e,t)=>e+(t.endMs-t.startMs),0);return{activeSegments:s,airTimeMs:a}}async function D(e,t,i){let s=w(i.fileName),n=a.default.dirname(i.fullPath),o=e.firstTimestamp?(0,r.toLocalDay)(Date.parse(e.firstTimestamp)):void 0,{usage:l,perDay:u}=await x(t,n,s,o);e.totalUsage=l,e.dailyBreakdown=function(e,t,i){let s=new Map((e??[]).map(e=>[e.day,e])),a=[...new Set([...s.keys(),...t.keys()])].sort((e,t)=>e.localeCompare(t)).map(e=>({day:e,toolCalls:s.get(e)?.toolCalls??0,turns:s.get(e)?.turns??0,tokens:{...t.get(e)??N}}));if(a.length>0){let e=a.reduce((e,t)=>({input:e.input+t.tokens.input,output:e.output+t.tokens.output,cacheRead:e.cacheRead+t.tokens.cacheRead,cacheWrite:e.cacheWrite+t.tokens.cacheWrite}),{...N}),t=a[0].tokens;t.input+=i.input-e.input,t.output+=i.output-e.output,t.cacheRead+=i.cacheRead-e.cacheRead,t.cacheWrite+=i.cacheWrite-e.cacheWrite}return a}(e.dailyBreakdown,u,l)}async function R(e){let t=M.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.meta;try{let t=await h(e.fullPath),{meta:i}=f(t);await D(i,t,e);let s=w(e.fileName),n=a.default.dirname(e.fullPath),o=await T(n,s),r={...i,id:s,filePath:e.fullPath,projectDir:e.projectDir,projectName:i.cwd??y(e.projectDir),...o.workflowCount>0?{workflowCount:o.workflowCount,spawnedAgentCount:o.spawnedAgentCount}:{},...P(i.activeSegments,o.spans)};return M.set(e.fullPath,{meta:r,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),r}catch{return null}}async function $(e){let t=v.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.detail;try{let t=await h(e.fullPath),{meta:i,events:s}=f(t),n=w(e.fileName);await D(i,t,e);let o=await T(a.default.dirname(e.fullPath),n),r={...i,id:n,filePath:e.fullPath,projectDir:e.projectDir,projectName:i.cwd??y(e.projectDir),events:s,...o.workflowCount>0?{workflowCount:o.workflowCount,spawnedAgentCount:o.spawnedAgentCount}:{},...P(i.activeSegments,o.spans)};v.set(e.fullPath,{detail:r,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes});let l={...r};return delete l.events,M.set(e.fullPath,{meta:l,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),r}catch{return null}}async function O(e={}){let{root:t=d,limit:i=500,projectDir:s}=e,a=await b(t);s&&(a=a.filter(e=>e.projectDir===s)),a.sort((e,t)=>t.mtimeMs-e.mtimeMs);let n=a.slice(0,i);return(await Promise.all(n.map(async e=>{let t=await R(e);return t?C(t,e):null}))).filter(e=>null!==e)}async function B(e,t={}){let{root:i=d}=t,s=(await b(i)).find(t=>w(t.fileName)===e);if(!s)return null;let n=await $(s);if(!n)return n;let o=n.firstTimestamp?Date.parse(n.firstTimestamp):void 0,r=a.default.join(a.default.dirname(s.fullPath),w(s.fileName),"subagents"),l=a.default.join(a.default.dirname(s.fullPath),w(s.fileName),"workflows"),[u,c]=await Promise.all([z(r,o,n.events),F(l,o,n.events)]),p=c.reduce((e,t)=>e+t.agentCount,0);return C({...n,subagents:u,workflows:c,...c.length>0?{workflowCount:c.length,spawnedAgentCount:p}:{}},s)}async function z(e,t,s){let n;try{n=await i.promises.readdir(e)}catch{return[]}let o=new Map,r=[];for(let e of s)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,a=e.timestamp?Date.parse(e.timestamp):void 0,n={toolUseId:t.id,parentUuid:e.uuid??"",runInBackground:!0===i.run_in_background,prompt:"string"==typeof i.prompt?i.prompt:void 0,tsMs:a};s&&o.set(s,n),void 0!==a&&r.push(n)}r.sort((e,t)=>(e.tsMs??0)-(t.tsMs??0));let l=n.filter(e=>e.startsWith("agent-")&&e.endsWith(".jsonl"));return(await Promise.all(l.map(async s=>{let n,l=s.replace(/^agent-/,"").replace(/\.jsonl$/,""),u=a.default.join(e,s),c=a.default.join(e,`agent-${l}.meta.json`),p={};try{let e=await i.promises.readFile(c,"utf8");p=JSON.parse(e)}catch{}try{n=await h(u)}catch{return null}let m=function(e){let t,i,s,a,n,o={...N},r=new Set,l=0,u=0,c=0,p=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===n&&"user"===m.type&&(null===m.parentUuid||void 0===m.parentUuid)){let e=m.message,t=e?.content;if("string"==typeof t)n=t;else if(Array.isArray(t)){let e=t.find(e=>e&&"object"==typeof e&&"text"===e.type);e?.text&&(n=e.text)}}if("assistant"===m.type){let e=m.message;if(!e)continue;a||"string"!=typeof e.model||(a=e.model);let t="string"==typeof e.id?e.id:void 0,i="string"==typeof m.requestId?m.requestId:void 0,n=null!=t&&null!=i?`${t}:${i}`:void 0,l=!n||!r.has(n);if(n&&l&&r.add(n),l){u++;let t=e.usage;if(t){let e=e=>"number"==typeof e?e:0;o.input+=e(t.input_tokens),o.output+=e(t.output_tokens),o.cacheRead+=e(t.cache_read_input_tokens),o.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&&(c++,p.set(e.name,(p.get(e.name)??0)+1)))}}let m=Array.from(p.entries()).map(([e,t])=>({name:e,count:t})).sort((e,t)=>t.count-e.count);return{startMs:t,endMs:i,totalUsage:o,eventCount:l,finalPreview:void 0!==s?s.replace(/\s+/g," ").trim().slice(0,240):void 0,finalText:s,model:a,toolCalls:m,toolCallCount:c,assistantMessageCount:u,initialPrompt:n}}(n),f=p.description&&p.description.trim().length>0?p.description:void 0,d=f?o.get(f):function(e){let t;if(void 0===e)return;let i=1/0;for(let s of r){if(void 0===s.tsMs)continue;let a=Math.abs(e-s.tsMs);a<i&&a<=2e3&&(t=s,i=a)}return t}(m.startMs),y=f??(m.initialPrompt?m.initialPrompt.replace(/\s+/g," ").trim().slice(0,80):"(no description)"),g=d?.prompt??m.initialPrompt,w=void 0!==t&&void 0!==m.startMs?Math.max(0,m.startMs-t):void 0,M=void 0!==t&&void 0!==m.endMs?Math.max(0,m.endMs-t):void 0,v=void 0!==m.startMs&&void 0!==m.endMs?m.endMs-m.startMs:void 0;return{agentId:l,agentType:p.agentType??"unknown",description:y,startMs:m.startMs,endMs:m.endMs,durationMs:v,startTOffsetMs:w,endTOffsetMs:M,eventCount:m.eventCount,totalUsage:m.totalUsage,parentUuid:d?.parentUuid,parentToolUseId:d?.toolUseId,runInBackground:d?.runInBackground,prompt:g,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))}async function F(e,t,s){let n;try{n=await i.promises.readdir(e)}catch{return[]}let o=n.filter(e=>e.startsWith("wf_")&&e.endsWith(".json"));if(0===o.length)return[];let r=[];for(let e of s){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&&r.push({toolUseId:i.id,parentUuid:e.uuid??"",tsMs:t})}r.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(o.map(async s=>{let n;try{n=JSON.parse(await i.promises.readFile(a.default.join(e,s),"utf8"))}catch{return null}let o=u(n.runId)??s.replace(/\.json$/,""),c=l(n.startTime),p=l(n.durationMs),m=void 0!==c&&void 0!==p?c+p:void 0,f=void 0!==t&&void 0!==c?Math.max(0,c-t):void 0,d=void 0!==t&&void 0!==m?Math.max(0,m-t):void 0,y=Array.isArray(n.phases)?n.phases.filter(e=>!!e&&"object"==typeof e&&"string"==typeof e.title).map(e=>({title:e.title,detail:u(e.detail)})):[],g=Array.isArray(n.logs)?n.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(n.workflowProgress)?n.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===r.length)return;let s=1/0,a=1/0;for(let n of r){let o=Math.abs(e-n.tsMs);!(o>6e4)&&(o<a&&(i=n,a=o),n.tsMs<=e&&o<s&&(t=n,s=o))}return t??i})(c);return{runId:o,name:u(n.workflowName)??o,description:u(n.summary),status:u(n.status)??"unknown",agentCount:l(n.agentCount)??0,toolCallCount:l(n.totalToolCalls)??0,totalTokens:l(n.totalTokens)??0,durationMs:p,startMs:c,endMs:m,startTOffsetMs:f,endTOffsetMs:d,model:u(n.defaultModel),phases:y,logs:g,agents:w,parentToolUseId:M?.toolUseId,parentUuid:M?.parentUuid}}))).filter(e=>null!==e).sort((e,t)=>(e.startMs??0)-(t.startMs??0))}async function W(e,t,i,s={}){let n,o,r,l,u,c,{root:p=d}=s;if(!/^[\w.-]+$/.test(t)||!/^[\w.-]+$/.test(i))return null;let m=(await b(p)).find(t=>w(t.fileName)===e);if(!m)return null;let f=a.default.join(a.default.dirname(m.fullPath),e,"subagents","workflows",t,`agent-${i}.jsonl`);try{n=await h(f)}catch{return null}let y=new Set;for(let e of n){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&&y.add(e.tool_use_id)}let g=[],M=new Map,v={...N},k=new Set,_=0,j=0;for(let e of n){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===o&&"user"===e.type&&(null===e.parentUuid||void 0===e.parentUuid)){let t=e.message?.content;if("string"==typeof t)o=t;else if(Array.isArray(t)){let e=t.find(e=>e&&"object"==typeof e&&"text"===e.type);e?.text&&(o=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,a="string"==typeof e.requestId?e.requestId:void 0,n=null!=s&&null!=a?`${s}:${a}`:void 0,p=!n||!k.has(n);if(n&&p&&k.add(n),p){_++;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 m=i.content;if(Array.isArray(m)){for(let e of m)if(e&&"object"==typeof e){if("text"===e.type&&"string"==typeof e.text)r=e.text;else if("tool_use"===e.type&&"string"==typeof e.name&&(M.set(e.name,(M.get(e.name)??0)+1),g.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;g.push({index:g.length+1,tool:e.name,preview:i,full:s.length>i.length||s.includes("\n")?s:void 0,isError:"string"==typeof e.id&&y.has(e.id)})}}}}return{agentId:i,prompt:o,finalText:r,steps:g,toolCalls:Array.from(M.entries()).map(([e,t])=>({name:e,count:t})).sort((e,t)=>t.count-e.count),toolCallCount:g.length,assistantMessageCount:_,eventCount:j,totalUsage:v,model:l,durationMs:void 0!==u&&void 0!==c?c-u:void 0}}let E={...n.CLAUDE_CODE_METADATA,defaultRoot:d,async listSessions(e){let t=await O(e);for(let e of t)e.agent||(e.agent="claude-code");return t},async getSession(e,t){let i=await B(e,t);return i&&!i.agent&&(i.agent="claude-code"),i}};e.s(["DEFAULT_ROOT",0,d,"claudeCodeSource",0,E,"getSession",0,B,"invalidateClaudeCodeFile",0,j,"listSessions",0,O,"loadWorkflowAgentDetail",0,W],20629);let U=a.default.join(s.default.homedir(),".codex","sessions"),J=/^rollout-(\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2})-([0-9a-f-]+)\.jsonl$/;async function L(e){return i.promises.readdir(e).catch(()=>[])}async function q(e){let t=[];for(let s of(await L(e))){if(!/^\d{4}$/.test(s))continue;let n=a.default.join(e,s);for(let e of(await L(n))){if(!/^\d{2}$/.test(e))continue;let s=a.default.join(n,e);for(let e of(await L(s))){if(!/^\d{2}$/.test(e))continue;let n=a.default.join(s,e);for(let e of(await L(n))){let s=J.exec(e);if(!s)continue;let o=a.default.join(n,e),r=await i.promises.stat(o).catch(()=>null);r&&t.push({filePath:o,sessionId:s[2],mtimeMs:r.mtimeMs,sizeBytes:r.size})}}}}return t}async function G(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 H(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function Y(e,t){let i,s,a,n,l,u,c,p=[],m={input:0,output:0,cacheRead:0,cacheWrite:0},f=0,d=0,y=[],g=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)&&y.push(e)}let r="string"==typeof e.type?e.type:"",w=e.payload??{},M="string"==typeof w.type?w.type:"";if("session_meta"===r){"string"==typeof w.cwd&&(a=w.cwd);continue}if("turn_context"===r){"string"==typeof w.cwd&&(a=w.cwd),"string"==typeof w.model&&(n=w.model);continue}if("event_msg"===r&&"token_count"===M){let e=w.info??null,t=e?.total_token_usage??null;t&&(m.input=K(t.input_tokens)??m.input,m.output=K(t.output_tokens)??m.output,m.cacheRead=K(t.cached_input_tokens)??m.cacheRead);continue}if("event_msg"===r&&"user_message"===M){let i="string"==typeof w.message?w.message:"",s=H(i),a=(0,o.isFrameworkInjectedUserInput)(i);i&&!a&&(l||(l=s),u=s,d+=1),p.push({index:g++,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"===M){let i="string"==typeof w.message?w.message:"",s=H(i);i&&(c=s),p.push({index:g++,timestamp:t,role:"agent",rawType:"event_msg/agent_message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:n,raw:e});continue}if("response_item"===r&&"reasoning"===M){let i=(w.summary??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim();p.push({index:g++,timestamp:t,role:"agent-thinking",rawType:"response_item/reasoning",preview:H(i),blocks:i?[{type:"thinking",thinking:i}]:[],model:n,raw:e});continue}if("response_item"===r&&"message"===M&&"assistant"===w.role){let i=(w.content??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim(),s=H(i);i&&(c=s),p.push({index:g++,timestamp:t,role:"agent",rawType:"response_item/message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:n,raw:e});continue}if("response_item"===r&&"function_call"===M){var h;let i="string"==typeof w.name?w.name:"(unknown)",s="string"==typeof w.call_id?w.call_id:void 0,a="string"==typeof w.arguments?w.arguments:"",o=function(e){if(!e)return null;try{return JSON.parse(e)}catch{return e}}(a);f+=1,p.push({index:g++,timestamp:t,role:"tool-call",rawType:"response_item/function_call",preview:`${i}(${(h=a).length<=80?h:h.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:s??`codex-${g}`,name:i,input:o}],toolName:i,toolUseId:s,model:n,raw:e});continue}if("response_item"===r&&"function_call_output"===M){let i="string"==typeof w.call_id?w.call_id:void 0,s="string"==typeof w.output?w.output:"",a=/process exited with code [1-9]/i.test(s);p.push({index:g++,timestamp:t,role:"tool-result",rawType:"response_item/function_call_output",preview:H(s),blocks:[{type:"tool_result",tool_use_id:i??"",content:s,is_error:a}],toolUseId:i,toolResult:s,raw:e});continue}p.push({index:g++,timestamp:t,role:"meta",rawType:M?`${r}/${M}`:r,preview:"",blocks:[],raw:e})}if(m.input>0||m.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:m.input,output:m.output,cacheRead:m.cacheRead,cacheWrite:0}}}let w=i?Date.parse(i):void 0;if(void 0!==w&&Number.isFinite(w)){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-w),void 0!==e&&(t.gapMs=Math.max(0,i-e)),e=i)}}let M=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],a=t[0];for(let e=1;e<t.length;e++)t[e]-a>18e4&&(i.push({startMs:s,endMs:a}),s=t[e]),a=t[e];return i.push({startMs:s,endMs:a}),i}(y),v=M.reduce((e,t)=>e+(t.endMs-t.startMs),0),k=i&&s?Date.parse(s)-Date.parse(i):void 0,_=a?(0,r.canonicalProjectName)(a):"(unknown)",j=a?a.replace(/^\//,"-").replace(/\//g,"-"):"(unknown)";return{meta:{agent:"codex",id:e.sessionId,filePath:e.filePath,projectName:_,projectDir:j,sessionId:e.sessionId,firstTimestamp:i,lastTimestamp:s,durationMs:k&&Number.isFinite(k)?k:void 0,eventCount:p.length,model:n,cwd:a,totalUsage:m,status:"idle",firstUserPreview:l,lastUserPreview:u,lastAgentPreview:c,toolCallCount:f,turnCount:d,airTimeMs:v,activeSegments:M},events:p}}function K(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}let Q=new Map,V=new Map;async function X(e={}){let t=e.root??U,i=await q(t),s=[];for(let e of i){let t=Q.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){s.push(t.meta);continue}try{let t=await G(e.filePath),{meta:i}=Y(e,t);Q.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 Z(e,t={}){let i=t.root??U,s=(await q(i)).find(t=>t.sessionId===e);if(!s)return null;let a=V.get(s.filePath);if(a&&a.mtimeMs===s.mtimeMs&&a.sizeBytes===s.sizeBytes)return a.detail;let n=await G(s.filePath),{meta:o,events:r}=Y(s,n),l={...o,events:r};return V.set(s.filePath,{detail:l,mtimeMs:s.mtimeMs,sizeBytes:s.sizeBytes}),l}async function ee(e={}){let t=e.root??U,i=await q(t);if(0===i.length)return null;for(let e of(i.sort((e,t)=>t.mtimeMs-e.mtimeMs),i)){let t=await G(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 a=s.payload??{};if("token_count"!==a.type)continue;let n=a.rate_limits??null;if(!n)continue;let o=n.primary??null,r=n.secondary??null,l=K(o?.used_percent),u=K(r?.used_percent),c=K(o?.resets_at),p=K(r?.resets_at),m="string"==typeof n.plan_type?n.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:m,source_path:e.filePath}}}return null}let et=a.default.join(s.default.homedir(),".gemini","tmp"),ei=a.default.join(s.default.homedir(),".gemini","projects.json"),es=/^session-.+\.(jsonl|json)$/;async function ea(e){return i.promises.readdir(e).catch(()=>[])}async function en(e){let t=[];for(let s of(await ea(e))){let n=a.default.join(e,s,"chats");for(let e of(await ea(n))){if(!es.test(e))continue;let o=a.default.join(n,e),r=await i.promises.stat(o).catch(()=>null);if(!r||!r.isFile())continue;let l=e.replace(/\.(jsonl|json)$/,"").split("-").pop()??e;t.push({filePath:o,slug:s,filenameId:l,format:e.endsWith(".jsonl")?"jsonl":"legacy-json",mtimeMs:r.mtimeMs,sizeBytes:r.size})}}return t}let eo=null;async function er(){let e,t=await i.promises.stat(ei).catch(()=>null);if(!t)return new Map;if(eo&&eo.mtimeMs===t.mtimeMs)return eo.slugToCwd;let s=await i.promises.readFile(ei,"utf8").catch(()=>"");try{e=JSON.parse(s)}catch{e={}}let a=new Map;for(let[t,i]of Object.entries(e.projects??{}))"string"==typeof i&&a.set(i,t);return eo={mtimeMs:t.mtimeMs,slugToCwd:a},a}function el(e){return!!e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.type}async function eu(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(el)}}let s={},a=new Map,n=[];for(let e of t.split("\n")){let t,i=e.trim();if(i){var o,r;try{t=JSON.parse(i)}catch{continue}if((o=t)&&"object"==typeof o&&"$rewindTo"in o){let e=t.$rewindTo,i=n.indexOf(e);if(i>=0){for(let e of n.slice(i))a.delete(e);n.length=i}continue}if((r=t)&&"object"==typeof r&&"$set"in r){Object.assign(s,t.$set);continue}if(el(t)){a.has(t.id)||n.push(t.id),a.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 n){let t=a.get(e);t&&l.push(t)}return{meta:s,messages:l}}function ec(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function ep(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 em(e){let t,i,s,a,n,l,{meta:u,messages:c}=await eu(e),p=(await er()).get(e.slug),m=[],f={input:0,output:0,cacheRead:0,cacheWrite:0},d=0,y=0,g=[],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)&&g.push(s)}}for(let e of c){let t=e.timestamp;if("user"===e.type){let i=ep(e.displayContent??e.content),s=ec(i),r=(0,o.isFrameworkInjectedUserInput)(i);i&&!r&&(a||(a=s),n=s,y+=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 a=ep(e.content),n=ec(a);if(a&&(l=n),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:ec(e),blocks:[{type:"thinking",thinking:e}],model:s,raw:i})}for(let o of(a?w({index:h++,timestamp:t,role:"agent",rawType:"gemini/agent",preview:n,blocks:[{type:"text",text:a}],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=o.args?JSON.stringify(o.args):"";w({index:h++,timestamp:o.timestamp??t,role:"tool-call",rawType:"gemini/tool_call",preview:`${o.name}(${e.length<=80?e:e.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:o.id,name:o.name,input:o.args??{}}],toolName:o.name,toolUseId:o.id,model:s,raw:o});let i=(o.status??"").toLowerCase();if("success"===i||"error"===i||"cancelled"===i){let e=ep(o.result);w({index:h++,timestamp:o.timestamp??t,role:"tool-result",rawType:"gemini/tool_result",preview:ec(e),blocks:[{type:"tool_result",tool_use_id:o.id,content:e,is_error:"error"===i||"cancelled"===i}],toolUseId:o.id,toolResult:e,raw:o})}}continue}if("info"===e.type||"warning"===e.type||"error"===e.type){let i=ep(e.content);w({index:h++,timestamp:t,role:"meta",rawType:`gemini/${e.type}`,preview:ec(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],a=t[0];for(let e=1;e<t.length;e++)t[e]-a>18e4&&(i.push({startMs:s,endMs:a}),s=t[e]),a=t[e];return i.push({startMs:s,endMs:a}),i}(g),k=v.reduce((e,t)=>e+(t.endMs-t.startMs),0),_=t&&i?Date.parse(i)-Date.parse(t):void 0,j=u.sessionId??e.filenameId,b=p?(0,r.canonicalProjectName)(p):e.slug,N=p?p.replace(/^\//,"-").replace(/\//g,"-"):e.slug;return{meta:{agent:"gemini",id:j,filePath:e.filePath,projectName:b,projectDir:N,sessionId:j,firstTimestamp:t,lastTimestamp:i,durationMs:_&&Number.isFinite(_)?_:void 0,eventCount:m.length,model:s,cwd:p,totalUsage:f,status:"idle",firstUserPreview:a,lastUserPreview:n,lastAgentPreview:l,toolCallCount:d,turnCount:y,airTimeMs:k,activeSegments:v},events:m}}let ef=new Map,ed=new Map;async function ey(e={}){let t=e.root??et,i=await en(t),s=[];for(let e of i){let t=ef.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){s.push(t.meta);continue}try{let{meta:t}=await em(e);ef.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 eg(e,t={}){let i,s=t.root??et,a=await en(s);for(let t of a)if(t.filenameId===e||e.startsWith(t.filenameId)){i=t;break}if(!i)for(let t of a){let{meta:s}=await em(t).catch(()=>({meta:{id:""}}));if(s.id===e){i=t;break}}if(!i)return null;let n=ed.get(i.filePath);if(n&&n.mtimeMs===i.mtimeMs&&n.sizeBytes===i.sizeBytes)return n.detail;let{meta:o,events:r}=await em(i),l={...o,events:r};return ed.set(i.filePath,{detail:l,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes}),l}let eh=a.default.join(s.default.homedir(),".gemini","antigravity-cli");async function ew(e){return i.promises.readdir(e).catch(()=>[])}let eM=null;async function ev(e){let t=a.default.join(e,"history.jsonl"),s=await i.promises.stat(t).catch(()=>null);if(!s)return new Map;if(eM&&eM.mtimeMs===s.mtimeMs)return eM.slugToCwd;let n=await i.promises.readFile(t,"utf8").catch(()=>""),o=new Map;for(let e of n.split("\n")){let t=e.trim();if(t)try{let e=JSON.parse(t);e.conversationId&&e.workspace&&o.set(e.conversationId,e.workspace)}catch{}}return eM={mtimeMs:s.mtimeMs,slugToCwd:o},o}async function ek(e){let t=await ev(e),s=[],n=a.default.join(e,"brain");for(let e of(await ew(n))){let o=a.default.join(n,e,".system_generated","logs","transcript.jsonl"),r=await i.promises.stat(o).catch(()=>null);r&&r.isFile()&&s.push({filePath:o,conversationId:e,cwd:t.get(e),mtimeMs:r.mtimeMs,sizeBytes:r.size})}return s}function e_(e){return e.replace(/\s+/g," ").trim().slice(0,200)}async function ej(e){let t,s,a,n,l,u,c=await i.promises.readFile(e.filePath,"utf8"),p=[],m=0,f=0,d=[],y=0;function g(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)&&d.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();a=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()),a=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 r=e_(i),u=(0,o.isFrameworkInjectedUserInput)(i);i&&!u&&(n||(n=r),l=r,f+=1),g({index:y++,timestamp:t,role:"user",rawType:"antigravity/user",preview:r,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&&g({index:y++,timestamp:t,role:"agent-thinking",rawType:"antigravity/thought",preview:e_(i),blocks:[{type:"thinking",thinking:i}],model:a,raw:e}),s){let i=e_(s);u=i,g({index:y++,timestamp:t,role:"agent",rawType:"antigravity/agent",preview:i,blocks:[{type:"text",text:s}],messageId:e.step_index?.toString(),model:a,raw:e})}let n=e.tool_calls||[];for(let i=0;i<n.length;i++){let s=n[i];m+=1;let o=`tool-${e.step_index}-${i}`,r=s.args?JSON.stringify(s.args):"";h.push({id:o,name:s.name}),g({index:y++,timestamp:t,role:"tool-call",rawType:"antigravity/tool_call",preview:`${s.name}(${r.length<=80?r:r.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:o,name:s.name,input:s.args||{}}],toolName:s.name,toolUseId:o,model:a,raw:s})}continue}if("MODEL"===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`,a="string"==typeof e.content?e.content:JSON.stringify(e.content||""),n="ERROR"===e.status||"FAILED"===e.status||"CANCELED"===e.status||!!e.error;g({index:y++,timestamp:t,role:"tool-result",rawType:"antigravity/tool_result",preview:e_(a),blocks:[{type:"tool_result",tool_use_id:s,content:a,is_error:n}],toolUseId:s,toolResult:a,raw:e});continue}let i=e.content||e.error||"";g({index:y++,timestamp:t,role:"meta",rawType:`antigravity/${e.type?.toLowerCase()||"unknown"}`,preview:e_(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 k=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],a=t[0];for(let e=1;e<t.length;e++)t[e]-a>18e4&&(i.push({startMs:s,endMs:a}),s=t[e]),a=t[e];return i.push({startMs:s,endMs:a}),i}(d),_=k.reduce((e,t)=>e+(t.endMs-t.startMs),0),j=t&&s?Date.parse(s)-Date.parse(t):void 0,b=e.conversationId,N=e.cwd,I=N?(0,r.canonicalProjectName)(N):e.conversationId,x=N?N.replace(/^\//,"-").replace(/\//g,"-"):e.conversationId;return{meta:{agent:"antigravity",id:b,filePath:e.filePath,projectName:I,projectDir:x,sessionId:b,firstTimestamp:t,lastTimestamp:s,durationMs:j&&Number.isFinite(j)?j:void 0,eventCount:p.length,model:a,cwd:N,totalUsage:{input:0,output:0,cacheRead:0,cacheWrite:0},status:"idle",firstUserPreview:n,lastUserPreview:l,lastAgentPreview:u,toolCallCount:m,turnCount:f,airTimeMs:_,activeSegments:k},events:p}}let eb=new Map,eN=new Map;async function eI(e={}){let t=e.root??eh,i=await ek(t),s=[];for(let e of i){let t=eb.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 ej(e);eb.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 ex(e,t={}){let i,s=t.root??eh;for(let t of(await ek(s)))if(t.conversationId===e){i=t;break}if(!i)return null;let a=eN.get(i.filePath);if(a&&a.mtimeMs===i.mtimeMs&&a.sizeBytes===i.sizeBytes&&a.cwd===i.cwd)return a.detail;let{meta:n,events:o}=await ej(i),r={...n,events:o};return eN.set(i.filePath,{detail:r,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes,cwd:i.cwd}),r}let eT=(t=s.default.homedir(),a.default.join(t,".config","Claude","local-agent-mode-sessions")),eS=/^local_[0-9a-f-]+$/;async function eA(e){return i.promises.readdir(e).catch(()=>[])}async function eC(e){let t=await i.promises.stat(e).catch(()=>null);return t?t.mtimeMs:0}async function eP(e){let t=[];for(let s of(await eA(e))){let n=a.default.join(e,s);for(let e of(await eA(n))){let s=a.default.join(n,e),o=await eC(a.default.join(s,"spaces.json"));for(let e of(await eA(s))){if(!eS.test(e))continue;let n=a.default.join(s,e,"audit.jsonl"),r=await i.promises.stat(n).catch(()=>null);if(!r||!r.isFile()||0===r.size)continue;let l=a.default.join(s,`${e}.json`),u=await eC(l);t.push({sessionId:e,auditPath:n,metaPath:l,workspaceDir:s,auditMtimeMs:r.mtimeMs,auditSize:r.size,metaMtimeMs:u,spacesMtimeMs:o})}}}return t}let eD=new Map;async function eR(e){let t=a.default.join(e,"spaces.json"),s=await i.promises.stat(t).catch(()=>null);if(!s)return new Map;let n=eD.get(e);if(n&&n.mtimeMs===s.mtimeMs)return n.spaceIdToPath;let o=await i.promises.readFile(t,"utf8").catch(()=>""),r=new Map;try{for(let e of JSON.parse(o).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&&r.set(t,s)}}catch{}return eD.set(e,{mtimeMs:s.mtimeMs,spaceIdToPath:r}),r}async function e$(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 eO(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 eB(e){let t,[i,s,a]=await Promise.all([eO(e.auditPath),e$(e.metaPath),eR(e.workspaceDir)]),{meta:n,events:o}=f(i),{projectName:l,projectDir:u,cwd:c}=(s.spaceId&&(t=a.get(s.spaceId)),!t&&s.userSelectedFolders&&s.userSelectedFolders.length>0&&(t=s.userSelectedFolders[0]),t)?{projectName:(0,r.canonicalProjectName)(t),projectDir:t.replace(/^\//,"-").replace(/\//g,"-"),cwd:t}:{projectName:"cowork:unspaced",projectDir:"cowork-unspaced"};return{meta:{...n,agent:"cowork",id:e.sessionId,sessionId:e.sessionId,filePath:e.auditPath,projectName:l,projectDir:u,cwd:c??n.cwd,model:n.model??s.model},events:o}}function ez(e){return{auditMtimeMs:e.auditMtimeMs,auditSize:e.auditSize,metaMtimeMs:e.metaMtimeMs,spacesMtimeMs:e.spacesMtimeMs}}function eF(e,t){return e.auditMtimeMs===t.auditMtimeMs&&e.auditSize===t.auditSize&&e.metaMtimeMs===t.metaMtimeMs&&e.spacesMtimeMs===t.spacesMtimeMs}let eW=new Map,eE=new Map;async function eU(e={}){let t=e.root??eT,i=await eP(t),s=[];for(let e of i){let t=ez(e),i=eW.get(e.auditPath);if(i&&eF(i.key,t)){s.push(i.meta);continue}try{let{meta:i}=await eB(e);eW.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 eJ(e,t={}){let i=t.root??eT,s=(await eP(i)).find(t=>t.sessionId===e);if(!s)return null;let a=ez(s),n=eE.get(s.auditPath);if(n&&eF(n.key,a))return n.detail;let{meta:o,events:r}=await eB(s),l={...o,events:r};return eE.set(s.auditPath,{detail:l,key:a}),l}function eL(){return process.env.CCLENS_HOME||a.default.join(s.default.homedir(),".cclens")}function eq(...e){return a.default.join(eL(),...e)}function eG(e){j(e)}let eH=[E,{...n.CODEX_METADATA,defaultRoot:U,listSessions:async e=>X(e),getSession:async e=>Z(e),async usagePoller(){let e=await ee();return e?{captured_at:new Date().toISOString(),agent:"codex",five_hour:e.five_hour,seven_day:e.seven_day}:null}},{...n.GEMINI_METADATA,defaultRoot:et,listSessions:async e=>ey(e),getSession:async e=>eg(e)},{...n.ANTIGRAVITY_METADATA,defaultRoot:eh,listSessions:async e=>eI(e),getSession:async e=>ex(e)},{...n.COWORK_METADATA,defaultRoot:eT,listSessions:async e=>eU(e),getSession:async e=>eJ(e)}];async function eY(e){for(let t of eH){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:"✺"},a={kind:"antigravity",displayName:"Antigravity",shortLabel:"Agy",accentColor:"rgb(236, 72, 153)",iconChar:"⏃"},n={kind:"cowork",displayName:"Cowork",shortLabel:"Cowork",accentColor:"rgb(217, 119, 87)",iconChar:"⌘"},o=[t,i,s,a,n];o.map(e=>e.kind),e.s(["ANTIGRAVITY_METADATA",0,a,"CLAUDE_CODE_METADATA",0,t,"CODEX_METADATA",0,i,"COWORK_METADATA",0,n,"GEMINI_METADATA",0,s,"agentMetadata",0,o])},36521,e=>{"use strict";let t=[/<system_instruction\b[^>]*>[\s\S]*?<\/system_instruction>\s*/gi],i=["<command-name>","<local-command-stdout>","<local-command-caveat>","<task-notification>","Base directory for this skill:","This session is being continued from a previous conversation","A session-scoped Stop hook is now active"];function s(e){if(!e)return e;let i=e;for(let e of t)i=i.replace(e,"");return i.trim()}e.s(["isFrameworkInjectedUserInput",0,function(e){if(!e)return!1;let t=s(e);if(!t)return!0;for(let e of i)if(t.startsWith(e))return!0;return!1},"stripFrameworkBoilerplate",0,s])},79357,e=>{"use strict";let t=["/.claude/worktrees/","/.worktrees/","/claude/worktrees/"],i=/\/conductor\/workspaces\/[^/]+\/([^/]+)(?:\/|$)/,s="/.superset/worktrees/",a=/^[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 n=e.replace(/\/{2,}/g,"/"),o=function(e){for(let i of t){let t=e.lastIndexOf(i);if(t>=0)return{idx:t,marker:i}}return null}(n);if(o)return n.slice(0,o.idx);let r=function(e){let t=i.exec(e);if(!t)return null;let s=t[1],a=+!!t[0].endsWith("/");return{canonicalEndIdx:t.index+t[0].length-s.length-1-a,workspaceName:s}}(n);if(r)return n.slice(0,r.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 n=a.test(i[0])?i[1]??i[0]:i[0];return{canonical:e.slice(0,t)+s+n,workspaceName:n}}(n);return l?l.canonical:n},"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,a=t.minActive??2,n=[];for(let t of e)for(let e of t.segments)e.endMs<=e.startMs||(n.push({ms:e.startMs,delta:1,sessionId:t.id}),n.push({ms:e.endMs,delta:-1,sessionId:t.id}));n.sort((e,t)=>e.ms-t.ms||t.delta-e.delta);let o=new Map,r=[],l=null;for(let e of n){if(1===e.delta)o.set(e.sessionId,(o.get(e.sessionId)??0)+1);else{let t=(o.get(e.sessionId)??0)-1;t<=0?o.delete(e.sessionId):o.set(e.sessionId,t)}let t=o.size;if(t>=a)if(l)for(let i of(l.endMs=e.ms,t>l.peak&&(l.peak=t),o.keys()))l.sessionIds.add(i);else l={startMs:e.ms,endMs:e.ms,peak:t,sessionIds:new Set(o.keys())};else l&&(l.endMs=e.ms,r.push(l),l=null)}l&&r.push(l);let u=r.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"),a=String(t.getDate()).padStart(2,"0");return`${i}-${s}-${a}`}])},43427,20629,e=>{"use strict";let t;e.s(["cclensHome",()=>eL,"cclensPath",()=>eq,"getAnySession",()=>eY,"invalidateFile",()=>eG],43427);var i=e.i(2157),s=e.i(60526),a=e.i(50227),n=e.i(39587),o=e.i(36521),r=e.i(79357);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(),a="message";if(s.startsWith("{"))try{let e=JSON.parse(s);"idle_notification"===e.type?a="idle-notification":"shutdown_request"===e.type?a="shutdown-request":"shutdown_approved"===e.type?a="shutdown-approved":"task_assignment"===e.type?a="task-assignment":"teammate_terminated"===e.type&&(a="teammate-terminated")}catch{}return{teammateId:i,body:s,kind:a}}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,a,n,c,f,d,y,g,h,w=[];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,a=e.parentUuid??null,n=e.timestamp;if("assistant"===i){let o,r,l,c=e.message??{},p=c.content??[],f=m(c.usage),d=c.model,y=e.requestId,g=c.id,h=c.stop_reason,w=p[0],M="agent";return w?.type==="thinking"?(M="agent-thinking",o="[thinking] "+u(w.thinking,140)):w?.type==="tool_use"?(M="tool-call",r=w.name,l=w.id,o=`${w.name} `+u(JSON.stringify(w.input??{}),100)):o=w?.type==="text"?u(w.text,200):`<assistant:${w?.type??"empty"}>`,{index:t,uuid:s,parentUuid:a,timestamp:n,role:M,rawType:i,preview:o,blocks:p,usage:f,model:d,requestId:y,messageId:g,stopReason:h,toolName:r,toolUseId:l,raw:e}}if("user"===i){let r=(e.message??{}).content;if("string"==typeof r){let l=(0,o.stripFrameworkBoilerplate)(r),c=p(l);return{index:t,uuid:s,parentUuid:a,timestamp:n,role:"user",rawType:i,preview:u(l,200),blocks:l?[{type:"text",text:l}]:[],raw:e,teammateMessage:c}}if(Array.isArray(r)){let l=r[0];if(l?.type==="tool_result")return{index:t,uuid:s,parentUuid:a,timestamp:n,role:"tool-result",rawType:i,preview:u("string"==typeof l.content?l.content:JSON.stringify(l.content),200),blocks:r,toolUseId:l.tool_use_id,toolResult:e.toolUseResult,raw:e};let c=r.find(e=>e?.type==="text"),m=c?(0,o.stripFrameworkBoilerplate)(c.text):"",f=c?r.map(e=>e===c?{type:"text",text:m}:e):r,d=m?p(m):void 0;return{index:t,uuid:s,parentUuid:a,timestamp:n,role:"user",rawType:i,preview:m?u(m,200):u(JSON.stringify(r),200),blocks:f,raw:e,teammateMessage:d}}}if("attachment"===i){let o=e.attachment??{},r=String(o.type??"attachment"),l=`<attachment: ${r}>`;return"string"==typeof o.content&&o.content.length>0?l=`[${r}] `+u(o.content,140):Array.isArray(o.addedNames)&&(l=`[${r}] +${o.addedNames.length} names`),{index:t,uuid:s,parentUuid:a,timestamp:n,role:"system",rawType:i,preview:l,blocks:[{type:"text",text:JSON.stringify(o,null,2)}],attachmentType:r,raw:e}}return{index:t,uuid:s,parentUuid:a,timestamp:n,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&&w.push(i)}for(let e of w){if(!e.timestamp)continue;let s=Date.parse(e.timestamp);!Number.isNaN(s)&&((void 0===t||s<t)&&(t=s),(void 0===i||s>i)&&(i=s))}let M=void 0!==t?new Date(t).toISOString():void 0,v=void 0!==i?new Date(i).toISOString():void 0;for(let e of w){if(!e.timestamp)continue;let i=Date.parse(e.timestamp);Number.isNaN(i)||void 0!==t&&(e.tOffsetMs=Math.max(0,i-t))}let k=w.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 _=w.filter(e=>e.timestamp).map(e=>Date.parse(e.timestamp)).filter(e=>!Number.isNaN(e)).sort((e,t)=>e-t),j=[],b=0;if(_.length>0){let e=_[0],t=_[0];for(let i=1;i<_.length;i++){let s=_[i],a=s-t;a>18e4?(j.push({startMs:e,endMs:t}),e=s):a>0&&(b+=a),t=s}j.push({startMs:e,endMs:t})}let N=new Map,I=[];for(let e of w){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??{};I.push({ms:t,trigger:"manual"===s.trigger?"manual":"auto",preTokens:"number"==typeof s.preTokens?s.preTokens:0})}}}let x=[...N.values()].sort((e,t)=>e.ms-t.ms);I.sort((e,t)=>e.ms-t.ms);let T=0,S=0,A=(e,t)=>{for(let i of e.siblings)i.coldResume=t;T++,S+=t.writeTokens},C=new Set;for(let e of I){let t,i=x.find(t=>t.ms>e.ms&&(t.rep.usage?.cacheWrite??0)>=1e3);if(!i)continue;for(let i=x.length-1;i>=0;i--)if(x[i].ms<=e.ms){t=x[i].ms;break}let s=i.rep.usage,a=s.cacheWrite+s.cacheRead;A(i,{trigger:"compact",gapMs:void 0!==t?i.ms-t:0,writeTokens:s.cacheWrite,writeRatio:a>0?s.cacheWrite/a:0,compact:{trigger:e.trigger,preTokens:e.preTokens}}),C.add(i.rep.messageId)}for(let e=1;e<x.length;e++){let t=x[e-1],i=x[e];if(C.has(i.rep.messageId))continue;let s=i.rep.usage,a=s.cacheWrite+s.cacheRead,n=a>0?s.cacheWrite/a:0,o=i.ms-t.ms;o>3e5&&s.cacheWrite>=1e3&&n>=.3&&A(i,{trigger:"idle",gapMs:o,writeTokens:s.cacheWrite,writeRatio:n})}let P={...l},D=new Set,R="",O=!1,$=!1,B=0,z=0,F=0,W=0,E=new Set,U=new Map,J=void 0!==t?(0,r.toLocalDay)(t):void 0,L=e=>{let t;if(e){let i=Date.parse(e);Number.isNaN(i)||(t=(0,r.toLocalDay)(i))}if(!(t=t??J))return;let i=U.get(t);return i||(i={toolCalls:0,turns:0,tokens:{...l}},U.set(t,i)),i};for(let e of w){if("tool-call"===e.role){B++;let t=L(e.timestamp);t&&t.toolCalls++;let i=e.blocks.find(e=>e&&"tool_use"===e.type);if(i){let e=i.input??{};if("TeamCreate"===i.name&&(O=!0),"SendMessage"===i.name){let t="string"==typeof e.to?e.to:"";t&&"team-lead"!==t&&($=!0)}let t="string"==typeof e.file_path?e.file_path:void 0;if("Edit"===i.name&&t){E.add(t);let i="string"==typeof e.old_string?e.old_string:"",s="string"==typeof e.new_string?e.new_string:"",a=i?i.split("\n").length:0,n=s?s.split("\n").length:0;F+=Math.max(0,n-a),W+=Math.max(0,a-n)}else if("Write"===i.name&&t){E.add(t);let i="string"==typeof e.content?e.content:"";F+=i?i.split("\n").length:0}}}if("user"===e.role){let t=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=(0,o.isFrameworkInjectedUserInput)(t),s=void 0!==e.teammateMessage&&!d;if(!i&&!s){y||(y=e.teammateMessage?e.teammateMessage.body:e.preview),z++;let t=L(e.timestamp);t&&t.turns++,h=e.preview}}"agent"===e.role&&(g=e.preview)}for(let t of e)if(t&&"object"==typeof t&&("string"!=typeof t.sessionId||R||(R=t.sessionId),"string"!=typeof t.cwd||a||(a=t.cwd),"string"!=typeof t.gitBranch||n||(n=t.gitBranch),"string"!=typeof t.entrypoint||c||(c=t.entrypoint),"string"!=typeof t.teamName||f||(f=t.teamName),"string"!=typeof t.agentName||d||(d=t.agentName),"assistant"===t.type)){let e=t.message;if(e){"string"!=typeof e.model||s||(s=e.model);let i="string"==typeof e.id?e.id:void 0;if(i&&D.has(i))continue;i&&D.add(i);let a=m(e.usage);if(a){P.input+=a.input,P.output+=a.output,P.cacheRead+=a.cacheRead,P.cacheWrite+=a.cacheWrite;let e=L("string"==typeof t.timestamp?t.timestamp:void 0);e&&(e.tokens.input+=a.input,e.tokens.output+=a.output,e.tokens.cacheRead+=a.cacheRead,e.tokens.cacheWrite+=a.cacheWrite)}}}return{events:w,meta:{sessionId:R,firstTimestamp:M,lastTimestamp:v,durationMs:void 0!==t&&void 0!==i?i-t:void 0,eventCount:w.length,model:s,cwd:a,gitBranch:n,entrypoint:c,totalUsage:P,status:"idle",firstUserPreview:y,lastUserPreview:h,lastAgentPreview:g,toolCallCount:B,turnCount:z,dailyBreakdown:Array.from(U.entries()).map(([e,t])=>({day:e,toolCalls:t.toolCalls,turns:t.turns,tokens:t.tokens})).sort((e,t)=>e.day.localeCompare(t.day)),airTimeMs:b,activeSegments:j,linesAdded:F,linesRemoved:W,filesEdited:E.size,coldResumeCount:T,cacheRebuildTokens:S,teamName:f,agentName:d,isTeamLead:void 0!==f&&void 0===d&&(O||$)}}}let d=a.default.join(s.default.homedir(),".claude","projects");function y(e){return e.startsWith("-")?"/"+e.slice(1).replace(/-/g,"/"):e}let g=a.default.join(s.default.homedir(),".cclens","runtime").replace(/[/.]/g,"-");async function h(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 w(e){return e.replace(/\.jsonl$/i,"")}let M=new Map,v=new Map,k=new Map,_=null;function j(e){M.delete(e),v.delete(e),k.delete(e),_=null}async function b(e=d){let t;if(_&&_.root===e&&Date.now()-_.capturedAtMs<1e3)return _.files;try{t=await i.promises.readdir(e,{withFileTypes:!0})}catch{return[]}let s=t.filter(e=>e.isDirectory()&&e.name!==g).map(e=>e.name),n=(await Promise.all(s.map(async t=>{let s,n=a.default.join(e,t);try{s=await i.promises.readdir(n)}catch{return[]}let o=s.filter(e=>e.endsWith(".jsonl"));return(await Promise.all(o.map(async e=>{let s=a.default.join(n,e);try{let a=await i.promises.stat(s);return{projectDir:t,fileName:e,fullPath:s,mtimeMs:a.mtimeMs,sizeBytes:a.size}}catch{return null}}))).filter(e=>null!==e)}))).flat();return _={files:n,capturedAtMs:Date.now(),root:e},n}let N={input:0,output:0,cacheRead:0,cacheWrite:0};function I(e,t,i,s,a){for(let n of e){if(!n||"object"!=typeof n||"assistant"!==n.type)continue;let e=n.message;if(!e)continue;let o="string"==typeof e.id?e.id:void 0,l="string"==typeof n.requestId?n.requestId:void 0,u=null!=o&&null!=l?`${o}:${l}`:void 0;if(u&&t.has(u))continue;u&&t.add(u);let c=e.usage;if(c){let e=e=>"number"==typeof e?e:0,t=e(c.input_tokens),o=e(c.output_tokens),l=e(c.cache_read_input_tokens),u=e(c.cache_creation_input_tokens);if(i.input+=t,i.output+=o,i.cacheRead+=l,i.cacheWrite+=u,s){let e,i="string"==typeof n.timestamp?n.timestamp:void 0;if(i){let t=Date.parse(i);Number.isNaN(t)||(e=(0,r.toLocalDay)(t))}if(e=e??a){let i=s.get(e);i||(i={...N},s.set(e,i)),i.input+=t,i.output+=o,i.cacheRead+=l,i.cacheWrite+=u}}}}}async function x(e,t,s,n){let o,r={...N},l=new Set,u=new Map;I(e,l,r,u,n);let c=a.default.join(t,s,"subagents");try{o=await i.promises.readdir(c)}catch{return{usage:r,perDay:u}}let p=o.filter(e=>e.endsWith(".jsonl"));return 0===p.length||await Promise.all(p.map(async e=>{try{let t=await h(a.default.join(c,e));I(t,l,r,u,n)}catch{}})),{usage:r,perDay:u}}async function T(e,t){let s,n=a.default.join(e,t,"workflows");try{s=await i.promises.readdir(n)}catch{return{workflowCount:0,spawnedAgentCount:0,spans:[]}}let o=s.filter(e=>e.startsWith("wf_")&&e.endsWith(".json"));if(0===o.length)return{workflowCount:0,spawnedAgentCount:0,spans:[]};let r=0,l=[];return{workflowCount:(await Promise.all(o.map(async e=>{try{let t=JSON.parse(await i.promises.readFile(a.default.join(n,e),"utf8"));return"number"==typeof t.agentCount&&(r+=t.agentCount),"number"==typeof t.startTime&&"number"==typeof t.durationMs&&t.durationMs>0&&l.push({startMs:t.startTime,endMs:t.startTime+t.durationMs}),!0}catch{return!1}}))).filter(Boolean).length,spawnedAgentCount:r,spans:l}}async function S(e,t){let s;try{s=await i.promises.readdir(e,{withFileTypes:!0})}catch{return 0}return(await Promise.all(s.map(async s=>{let n=a.default.join(e,s.name);try{if(s.isDirectory())return t>0?await S(n,t-1):0;return(await i.promises.stat(n)).mtimeMs}catch{return 0}}))).reduce((e,t)=>Math.max(e,t),0)}async function A(e,t){let i=a.default.join(e,t),[s,n]=await Promise.all([S(a.default.join(i,"subagents"),2),S(a.default.join(i,"workflows"),0)]),o=Math.max(s,n);return o>0?o:void 0}async function C(e,t){let i=await A(a.default.dirname(t.fullPath),e.id),s=e.lastTimestamp?Date.parse(e.lastTimestamp):0,n=Math.max(Number.isFinite(s)?s:0,i??0);return n>0?{...e,lastActivityMs:n}:e}function P(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],a=s[s.length-1];t.startMs<=a.endMs?a.endMs=Math.max(a.endMs,t.endMs):s.push({...t})}let a=s.reduce((e,t)=>e+(t.endMs-t.startMs),0);return{activeSegments:s,airTimeMs:a}}async function D(e,t,i){let s=w(i.fileName),n=a.default.dirname(i.fullPath),o=e.firstTimestamp?(0,r.toLocalDay)(Date.parse(e.firstTimestamp)):void 0,{usage:l,perDay:u}=await x(t,n,s,o);e.totalUsage=l,e.dailyBreakdown=function(e,t,i){let s=new Map((e??[]).map(e=>[e.day,e])),a=[...new Set([...s.keys(),...t.keys()])].sort((e,t)=>e.localeCompare(t)).map(e=>({day:e,toolCalls:s.get(e)?.toolCalls??0,turns:s.get(e)?.turns??0,tokens:{...t.get(e)??N}}));if(a.length>0){let e=a.reduce((e,t)=>({input:e.input+t.tokens.input,output:e.output+t.tokens.output,cacheRead:e.cacheRead+t.tokens.cacheRead,cacheWrite:e.cacheWrite+t.tokens.cacheWrite}),{...N}),t=a[0].tokens;t.input+=i.input-e.input,t.output+=i.output-e.output,t.cacheRead+=i.cacheRead-e.cacheRead,t.cacheWrite+=i.cacheWrite-e.cacheWrite}return a}(e.dailyBreakdown,u,l)}async function R(e){let t=M.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.meta;try{let t=await h(e.fullPath),{meta:i}=f(t);await D(i,t,e);let s=w(e.fileName),n=a.default.dirname(e.fullPath),o=await T(n,s),r={...i,id:s,filePath:e.fullPath,projectDir:e.projectDir,projectName:i.cwd??y(e.projectDir),...o.workflowCount>0?{workflowCount:o.workflowCount,spawnedAgentCount:o.spawnedAgentCount}:{},...P(i.activeSegments,o.spans)};return M.set(e.fullPath,{meta:r,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),r}catch{return null}}async function O(e){let t=v.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.detail;try{let t=await h(e.fullPath),{meta:i,events:s}=f(t),n=w(e.fileName);await D(i,t,e);let o=await T(a.default.dirname(e.fullPath),n),r={...i,id:n,filePath:e.fullPath,projectDir:e.projectDir,projectName:i.cwd??y(e.projectDir),events:s,...o.workflowCount>0?{workflowCount:o.workflowCount,spawnedAgentCount:o.spawnedAgentCount}:{},...P(i.activeSegments,o.spans)};v.set(e.fullPath,{detail:r,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes});let l={...r};return delete l.events,M.set(e.fullPath,{meta:l,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),r}catch{return null}}async function $(e={}){let{root:t=d,limit:i=500,projectDir:s}=e,a=await b(t);s&&(a=a.filter(e=>e.projectDir===s)),a.sort((e,t)=>t.mtimeMs-e.mtimeMs);let n=a.slice(0,i);return(await Promise.all(n.map(async e=>{let t=await R(e);return t?C(t,e):null}))).filter(e=>null!==e)}async function B(e,t={}){let{root:i=d}=t,s=(await b(i)).find(t=>w(t.fileName)===e);if(!s)return null;let n=await O(s);if(!n)return n;let o=n.firstTimestamp?Date.parse(n.firstTimestamp):void 0,r=a.default.join(a.default.dirname(s.fullPath),w(s.fileName),"subagents"),l=a.default.join(a.default.dirname(s.fullPath),w(s.fileName),"workflows"),[u,c]=await Promise.all([z(r,o,n.events),F(l,o,n.events)]),p=c.reduce((e,t)=>e+t.agentCount,0);return C({...n,subagents:u,workflows:c,...c.length>0?{workflowCount:c.length,spawnedAgentCount:p}:{}},s)}async function z(e,t,s){let n;try{n=await i.promises.readdir(e)}catch{return[]}let o=new Map,r=[];for(let e of s)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,a=e.timestamp?Date.parse(e.timestamp):void 0,n={toolUseId:t.id,parentUuid:e.uuid??"",runInBackground:!0===i.run_in_background,prompt:"string"==typeof i.prompt?i.prompt:void 0,tsMs:a};s&&o.set(s,n),void 0!==a&&r.push(n)}r.sort((e,t)=>(e.tsMs??0)-(t.tsMs??0));let l=n.filter(e=>e.startsWith("agent-")&&e.endsWith(".jsonl"));return(await Promise.all(l.map(async s=>{let n,l=s.replace(/^agent-/,"").replace(/\.jsonl$/,""),u=a.default.join(e,s),c=a.default.join(e,`agent-${l}.meta.json`),p={};try{let e=await i.promises.readFile(c,"utf8");p=JSON.parse(e)}catch{}try{n=await h(u)}catch{return null}let m=function(e){let t,i,s,a,n,o={...N},r=new Set,l=0,u=0,c=0,p=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===n&&"user"===m.type&&(null===m.parentUuid||void 0===m.parentUuid)){let e=m.message,t=e?.content;if("string"==typeof t)n=t;else if(Array.isArray(t)){let e=t.find(e=>e&&"object"==typeof e&&"text"===e.type);e?.text&&(n=e.text)}}if("assistant"===m.type){let e=m.message;if(!e)continue;a||"string"!=typeof e.model||(a=e.model);let t="string"==typeof e.id?e.id:void 0,i="string"==typeof m.requestId?m.requestId:void 0,n=null!=t&&null!=i?`${t}:${i}`:void 0,l=!n||!r.has(n);if(n&&l&&r.add(n),l){u++;let t=e.usage;if(t){let e=e=>"number"==typeof e?e:0;o.input+=e(t.input_tokens),o.output+=e(t.output_tokens),o.cacheRead+=e(t.cache_read_input_tokens),o.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&&(c++,p.set(e.name,(p.get(e.name)??0)+1)))}}let m=Array.from(p.entries()).map(([e,t])=>({name:e,count:t})).sort((e,t)=>t.count-e.count);return{startMs:t,endMs:i,totalUsage:o,eventCount:l,finalPreview:void 0!==s?s.replace(/\s+/g," ").trim().slice(0,240):void 0,finalText:s,model:a,toolCalls:m,toolCallCount:c,assistantMessageCount:u,initialPrompt:n}}(n),f=p.description&&p.description.trim().length>0?p.description:void 0,d=f?o.get(f):function(e){let t;if(void 0===e)return;let i=1/0;for(let s of r){if(void 0===s.tsMs)continue;let a=Math.abs(e-s.tsMs);a<i&&a<=2e3&&(t=s,i=a)}return t}(m.startMs),y=f??(m.initialPrompt?m.initialPrompt.replace(/\s+/g," ").trim().slice(0,80):"(no description)"),g=d?.prompt??m.initialPrompt,w=void 0!==t&&void 0!==m.startMs?Math.max(0,m.startMs-t):void 0,M=void 0!==t&&void 0!==m.endMs?Math.max(0,m.endMs-t):void 0,v=void 0!==m.startMs&&void 0!==m.endMs?m.endMs-m.startMs:void 0;return{agentId:l,agentType:p.agentType??"unknown",description:y,startMs:m.startMs,endMs:m.endMs,durationMs:v,startTOffsetMs:w,endTOffsetMs:M,eventCount:m.eventCount,totalUsage:m.totalUsage,parentUuid:d?.parentUuid,parentToolUseId:d?.toolUseId,runInBackground:d?.runInBackground,prompt:g,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))}async function F(e,t,s){let n;try{n=await i.promises.readdir(e)}catch{return[]}let o=n.filter(e=>e.startsWith("wf_")&&e.endsWith(".json"));if(0===o.length)return[];let r=[];for(let e of s){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&&r.push({toolUseId:i.id,parentUuid:e.uuid??"",tsMs:t})}r.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(o.map(async s=>{let n;try{n=JSON.parse(await i.promises.readFile(a.default.join(e,s),"utf8"))}catch{return null}let o=u(n.runId)??s.replace(/\.json$/,""),c=l(n.startTime),p=l(n.durationMs),m=void 0!==c&&void 0!==p?c+p:void 0,f=void 0!==t&&void 0!==c?Math.max(0,c-t):void 0,d=void 0!==t&&void 0!==m?Math.max(0,m-t):void 0,y=Array.isArray(n.phases)?n.phases.filter(e=>!!e&&"object"==typeof e&&"string"==typeof e.title).map(e=>({title:e.title,detail:u(e.detail)})):[],g=Array.isArray(n.logs)?n.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(n.workflowProgress)?n.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===r.length)return;let s=1/0,a=1/0;for(let n of r){let o=Math.abs(e-n.tsMs);!(o>6e4)&&(o<a&&(i=n,a=o),n.tsMs<=e&&o<s&&(t=n,s=o))}return t??i})(c);return{runId:o,name:u(n.workflowName)??o,description:u(n.summary),status:u(n.status)??"unknown",agentCount:l(n.agentCount)??0,toolCallCount:l(n.totalToolCalls)??0,totalTokens:l(n.totalTokens)??0,durationMs:p,startMs:c,endMs:m,startTOffsetMs:f,endTOffsetMs:d,model:u(n.defaultModel),phases:y,logs:g,agents:w,parentToolUseId:M?.toolUseId,parentUuid:M?.parentUuid}}))).filter(e=>null!==e).sort((e,t)=>(e.startMs??0)-(t.startMs??0))}async function W(e,t,i,s={}){let n,o,r,l,u,c,{root:p=d}=s;if(!/^[\w.-]+$/.test(t)||!/^[\w.-]+$/.test(i))return null;let m=(await b(p)).find(t=>w(t.fileName)===e);if(!m)return null;let f=a.default.join(a.default.dirname(m.fullPath),e,"subagents","workflows",t,`agent-${i}.jsonl`);try{n=await h(f)}catch{return null}let y=new Set;for(let e of n){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&&y.add(e.tool_use_id)}let g=[],M=new Map,v={...N},k=new Set,_=0,j=0;for(let e of n){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===o&&"user"===e.type&&(null===e.parentUuid||void 0===e.parentUuid)){let t=e.message?.content;if("string"==typeof t)o=t;else if(Array.isArray(t)){let e=t.find(e=>e&&"object"==typeof e&&"text"===e.type);e?.text&&(o=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,a="string"==typeof e.requestId?e.requestId:void 0,n=null!=s&&null!=a?`${s}:${a}`:void 0,p=!n||!k.has(n);if(n&&p&&k.add(n),p){_++;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 m=i.content;if(Array.isArray(m)){for(let e of m)if(e&&"object"==typeof e){if("text"===e.type&&"string"==typeof e.text)r=e.text;else if("tool_use"===e.type&&"string"==typeof e.name&&(M.set(e.name,(M.get(e.name)??0)+1),g.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;g.push({index:g.length+1,tool:e.name,preview:i,full:s.length>i.length||s.includes("\n")?s:void 0,isError:"string"==typeof e.id&&y.has(e.id)})}}}}return{agentId:i,prompt:o,finalText:r,steps:g,toolCalls:Array.from(M.entries()).map(([e,t])=>({name:e,count:t})).sort((e,t)=>t.count-e.count),toolCallCount:g.length,assistantMessageCount:_,eventCount:j,totalUsage:v,model:l,durationMs:void 0!==u&&void 0!==c?c-u:void 0}}let E={...n.CLAUDE_CODE_METADATA,defaultRoot:d,async listSessions(e){let t=await $(e);for(let e of t)e.agent||(e.agent="claude-code");return t},async getSession(e,t){let i=await B(e,t);return i&&!i.agent&&(i.agent="claude-code"),i}};e.s(["DEFAULT_ROOT",0,d,"claudeCodeSource",0,E,"getSession",0,B,"invalidateClaudeCodeFile",0,j,"listSessions",0,$,"loadWorkflowAgentDetail",0,W],20629);let U=a.default.join(s.default.homedir(),".codex","sessions"),J=/^rollout-(\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2})-([0-9a-f-]+)\.jsonl$/;async function L(e){return i.promises.readdir(e).catch(()=>[])}async function q(e){let t=[];for(let s of(await L(e))){if(!/^\d{4}$/.test(s))continue;let n=a.default.join(e,s);for(let e of(await L(n))){if(!/^\d{2}$/.test(e))continue;let s=a.default.join(n,e);for(let e of(await L(s))){if(!/^\d{2}$/.test(e))continue;let n=a.default.join(s,e);for(let e of(await L(n))){let s=J.exec(e);if(!s)continue;let o=a.default.join(n,e),r=await i.promises.stat(o).catch(()=>null);r&&t.push({filePath:o,sessionId:s[2],mtimeMs:r.mtimeMs,sizeBytes:r.size})}}}}return t}async function G(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 H(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function Y(e,t){let i,s,a,n,l,u,c,p=[],m={input:0,output:0,cacheRead:0,cacheWrite:0},f=0,d=0,y=[],g=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)&&y.push(e)}let r="string"==typeof e.type?e.type:"",w=e.payload??{},M="string"==typeof w.type?w.type:"";if("session_meta"===r){"string"==typeof w.cwd&&(a=w.cwd);continue}if("turn_context"===r){"string"==typeof w.cwd&&(a=w.cwd),"string"==typeof w.model&&(n=w.model);continue}if("event_msg"===r&&"token_count"===M){let e=w.info??null,t=e?.total_token_usage??null;t&&(m.input=K(t.input_tokens)??m.input,m.output=K(t.output_tokens)??m.output,m.cacheRead=K(t.cached_input_tokens)??m.cacheRead);continue}if("event_msg"===r&&"user_message"===M){let i="string"==typeof w.message?w.message:"",s=H(i),a=(0,o.isFrameworkInjectedUserInput)(i);i&&!a&&(l||(l=s),u=s,d+=1),p.push({index:g++,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"===M){let i="string"==typeof w.message?w.message:"",s=H(i);i&&(c=s),p.push({index:g++,timestamp:t,role:"agent",rawType:"event_msg/agent_message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:n,raw:e});continue}if("response_item"===r&&"reasoning"===M){let i=(w.summary??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim();p.push({index:g++,timestamp:t,role:"agent-thinking",rawType:"response_item/reasoning",preview:H(i),blocks:i?[{type:"thinking",thinking:i}]:[],model:n,raw:e});continue}if("response_item"===r&&"message"===M&&"assistant"===w.role){let i=(w.content??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim(),s=H(i);i&&(c=s),p.push({index:g++,timestamp:t,role:"agent",rawType:"response_item/message",preview:s,blocks:i?[{type:"text",text:i}]:[],model:n,raw:e});continue}if("response_item"===r&&"function_call"===M){var h;let i="string"==typeof w.name?w.name:"(unknown)",s="string"==typeof w.call_id?w.call_id:void 0,a="string"==typeof w.arguments?w.arguments:"",o=function(e){if(!e)return null;try{return JSON.parse(e)}catch{return e}}(a);f+=1,p.push({index:g++,timestamp:t,role:"tool-call",rawType:"response_item/function_call",preview:`${i}(${(h=a).length<=80?h:h.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:s??`codex-${g}`,name:i,input:o}],toolName:i,toolUseId:s,model:n,raw:e});continue}if("response_item"===r&&"function_call_output"===M){let i="string"==typeof w.call_id?w.call_id:void 0,s="string"==typeof w.output?w.output:"",a=/process exited with code [1-9]/i.test(s);p.push({index:g++,timestamp:t,role:"tool-result",rawType:"response_item/function_call_output",preview:H(s),blocks:[{type:"tool_result",tool_use_id:i??"",content:s,is_error:a}],toolUseId:i,toolResult:s,raw:e});continue}p.push({index:g++,timestamp:t,role:"meta",rawType:M?`${r}/${M}`:r,preview:"",blocks:[],raw:e})}if(m.input>0||m.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:m.input,output:m.output,cacheRead:m.cacheRead,cacheWrite:0}}}let w=i?Date.parse(i):void 0;if(void 0!==w&&Number.isFinite(w)){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-w),void 0!==e&&(t.gapMs=Math.max(0,i-e)),e=i)}}let M=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],a=t[0];for(let e=1;e<t.length;e++)t[e]-a>18e4&&(i.push({startMs:s,endMs:a}),s=t[e]),a=t[e];return i.push({startMs:s,endMs:a}),i}(y),v=M.reduce((e,t)=>e+(t.endMs-t.startMs),0),k=i&&s?Date.parse(s)-Date.parse(i):void 0,_=a?(0,r.canonicalProjectName)(a):"(unknown)",j=a?a.replace(/^\//,"-").replace(/\//g,"-"):"(unknown)";return{meta:{agent:"codex",id:e.sessionId,filePath:e.filePath,projectName:_,projectDir:j,sessionId:e.sessionId,firstTimestamp:i,lastTimestamp:s,durationMs:k&&Number.isFinite(k)?k:void 0,eventCount:p.length,model:n,cwd:a,totalUsage:m,status:"idle",firstUserPreview:l,lastUserPreview:u,lastAgentPreview:c,toolCallCount:f,turnCount:d,airTimeMs:v,activeSegments:M},events:p}}function K(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}let Q=new Map,V=new Map;async function X(e={}){let t=e.root??U,i=await q(t),s=[];for(let e of i){let t=Q.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){s.push(t.meta);continue}try{let t=await G(e.filePath),{meta:i}=Y(e,t);Q.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 Z(e,t={}){let i=t.root??U,s=(await q(i)).find(t=>t.sessionId===e);if(!s)return null;let a=V.get(s.filePath);if(a&&a.mtimeMs===s.mtimeMs&&a.sizeBytes===s.sizeBytes)return a.detail;let n=await G(s.filePath),{meta:o,events:r}=Y(s,n),l={...o,events:r};return V.set(s.filePath,{detail:l,mtimeMs:s.mtimeMs,sizeBytes:s.sizeBytes}),l}async function ee(e={}){let t=e.root??U,i=await q(t);if(0===i.length)return null;for(let e of(i.sort((e,t)=>t.mtimeMs-e.mtimeMs),i)){let t=await G(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 a=s.payload??{};if("token_count"!==a.type)continue;let n=a.rate_limits??null;if(!n)continue;let o=n.primary??null,r=n.secondary??null,l=K(o?.used_percent),u=K(r?.used_percent),c=K(o?.resets_at),p=K(r?.resets_at),m="string"==typeof n.plan_type?n.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:m,source_path:e.filePath}}}return null}let et=a.default.join(s.default.homedir(),".gemini","tmp"),ei=a.default.join(s.default.homedir(),".gemini","projects.json"),es=/^session-.+\.(jsonl|json)$/;async function ea(e){return i.promises.readdir(e).catch(()=>[])}async function en(e){let t=[];for(let s of(await ea(e))){let n=a.default.join(e,s,"chats");for(let e of(await ea(n))){if(!es.test(e))continue;let o=a.default.join(n,e),r=await i.promises.stat(o).catch(()=>null);if(!r||!r.isFile())continue;let l=e.replace(/\.(jsonl|json)$/,"").split("-").pop()??e;t.push({filePath:o,slug:s,filenameId:l,format:e.endsWith(".jsonl")?"jsonl":"legacy-json",mtimeMs:r.mtimeMs,sizeBytes:r.size})}}return t}let eo=null;async function er(){let e,t=await i.promises.stat(ei).catch(()=>null);if(!t)return new Map;if(eo&&eo.mtimeMs===t.mtimeMs)return eo.slugToCwd;let s=await i.promises.readFile(ei,"utf8").catch(()=>"");try{e=JSON.parse(s)}catch{e={}}let a=new Map;for(let[t,i]of Object.entries(e.projects??{}))"string"==typeof i&&a.set(i,t);return eo={mtimeMs:t.mtimeMs,slugToCwd:a},a}function el(e){return!!e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.type}async function eu(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(el)}}let s={},a=new Map,n=[];for(let e of t.split("\n")){let t,i=e.trim();if(i){var o,r;try{t=JSON.parse(i)}catch{continue}if((o=t)&&"object"==typeof o&&"$rewindTo"in o){let e=t.$rewindTo,i=n.indexOf(e);if(i>=0){for(let e of n.slice(i))a.delete(e);n.length=i}continue}if((r=t)&&"object"==typeof r&&"$set"in r){Object.assign(s,t.$set);continue}if(el(t)){a.has(t.id)||n.push(t.id),a.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 n){let t=a.get(e);t&&l.push(t)}return{meta:s,messages:l}}function ec(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function ep(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 em(e){let t,i,s,a,n,l,{meta:u,messages:c}=await eu(e),p=(await er()).get(e.slug),m=[],f={input:0,output:0,cacheRead:0,cacheWrite:0},d=0,y=0,g=[],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)&&g.push(s)}}for(let e of c){let t=e.timestamp;if("user"===e.type){let i=ep(e.displayContent??e.content),s=ec(i),r=(0,o.isFrameworkInjectedUserInput)(i);i&&!r&&(a||(a=s),n=s,y+=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 a=ep(e.content),n=ec(a);if(a&&(l=n),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:ec(e),blocks:[{type:"thinking",thinking:e}],model:s,raw:i})}for(let o of(a?w({index:h++,timestamp:t,role:"agent",rawType:"gemini/agent",preview:n,blocks:[{type:"text",text:a}],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=o.args?JSON.stringify(o.args):"";w({index:h++,timestamp:o.timestamp??t,role:"tool-call",rawType:"gemini/tool_call",preview:`${o.name}(${e.length<=80?e:e.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:o.id,name:o.name,input:o.args??{}}],toolName:o.name,toolUseId:o.id,model:s,raw:o});let i=(o.status??"").toLowerCase();if("success"===i||"error"===i||"cancelled"===i){let e=ep(o.result);w({index:h++,timestamp:o.timestamp??t,role:"tool-result",rawType:"gemini/tool_result",preview:ec(e),blocks:[{type:"tool_result",tool_use_id:o.id,content:e,is_error:"error"===i||"cancelled"===i}],toolUseId:o.id,toolResult:e,raw:o})}}continue}if("info"===e.type||"warning"===e.type||"error"===e.type){let i=ep(e.content);w({index:h++,timestamp:t,role:"meta",rawType:`gemini/${e.type}`,preview:ec(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],a=t[0];for(let e=1;e<t.length;e++)t[e]-a>18e4&&(i.push({startMs:s,endMs:a}),s=t[e]),a=t[e];return i.push({startMs:s,endMs:a}),i}(g),k=v.reduce((e,t)=>e+(t.endMs-t.startMs),0),_=t&&i?Date.parse(i)-Date.parse(t):void 0,j=u.sessionId??e.filenameId,b=p?(0,r.canonicalProjectName)(p):e.slug,N=p?p.replace(/^\//,"-").replace(/\//g,"-"):e.slug;return{meta:{agent:"gemini",id:j,filePath:e.filePath,projectName:b,projectDir:N,sessionId:j,firstTimestamp:t,lastTimestamp:i,durationMs:_&&Number.isFinite(_)?_:void 0,eventCount:m.length,model:s,cwd:p,totalUsage:f,status:"idle",firstUserPreview:a,lastUserPreview:n,lastAgentPreview:l,toolCallCount:d,turnCount:y,airTimeMs:k,activeSegments:v},events:m}}let ef=new Map,ed=new Map;async function ey(e={}){let t=e.root??et,i=await en(t),s=[];for(let e of i){let t=ef.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){s.push(t.meta);continue}try{let{meta:t}=await em(e);ef.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 eg(e,t={}){let i,s=t.root??et,a=await en(s);for(let t of a)if(t.filenameId===e||e.startsWith(t.filenameId)){i=t;break}if(!i)for(let t of a){let{meta:s}=await em(t).catch(()=>({meta:{id:""}}));if(s.id===e){i=t;break}}if(!i)return null;let n=ed.get(i.filePath);if(n&&n.mtimeMs===i.mtimeMs&&n.sizeBytes===i.sizeBytes)return n.detail;let{meta:o,events:r}=await em(i),l={...o,events:r};return ed.set(i.filePath,{detail:l,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes}),l}let eh=a.default.join(s.default.homedir(),".gemini","antigravity-cli");async function ew(e){return i.promises.readdir(e).catch(()=>[])}let eM=null;async function ev(e){let t=a.default.join(e,"history.jsonl"),s=await i.promises.stat(t).catch(()=>null);if(!s)return new Map;if(eM&&eM.mtimeMs===s.mtimeMs)return eM.slugToCwd;let n=await i.promises.readFile(t,"utf8").catch(()=>""),o=new Map;for(let e of n.split("\n")){let t=e.trim();if(t)try{let e=JSON.parse(t);e.conversationId&&e.workspace&&o.set(e.conversationId,e.workspace)}catch{}}return eM={mtimeMs:s.mtimeMs,slugToCwd:o},o}async function ek(e){let t=await ev(e),s=[],n=a.default.join(e,"brain");for(let e of(await ew(n))){let o=a.default.join(n,e,".system_generated","logs","transcript.jsonl"),r=await i.promises.stat(o).catch(()=>null);r&&r.isFile()&&s.push({filePath:o,conversationId:e,cwd:t.get(e),mtimeMs:r.mtimeMs,sizeBytes:r.size})}return s}function e_(e){return e.replace(/\s+/g," ").trim().slice(0,200)}async function ej(e){let t,s,a,n,l,u,c=await i.promises.readFile(e.filePath,"utf8"),p=[],m=0,f=0,d=[],y=0;function g(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)&&d.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();a=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()),a=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 r=e_(i),u=(0,o.isFrameworkInjectedUserInput)(i);i&&!u&&(n||(n=r),l=r,f+=1),g({index:y++,timestamp:t,role:"user",rawType:"antigravity/user",preview:r,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&&g({index:y++,timestamp:t,role:"agent-thinking",rawType:"antigravity/thought",preview:e_(i),blocks:[{type:"thinking",thinking:i}],model:a,raw:e}),s){let i=e_(s);u=i,g({index:y++,timestamp:t,role:"agent",rawType:"antigravity/agent",preview:i,blocks:[{type:"text",text:s}],messageId:e.step_index?.toString(),model:a,raw:e})}let n=e.tool_calls||[];for(let i=0;i<n.length;i++){let s=n[i];m+=1;let o=`tool-${e.step_index}-${i}`,r=s.args?JSON.stringify(s.args):"";h.push({id:o,name:s.name}),g({index:y++,timestamp:t,role:"tool-call",rawType:"antigravity/tool_call",preview:`${s.name}(${r.length<=80?r:r.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:o,name:s.name,input:s.args||{}}],toolName:s.name,toolUseId:o,model:a,raw:s})}continue}if("MODEL"===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`,a="string"==typeof e.content?e.content:JSON.stringify(e.content||""),n="ERROR"===e.status||"FAILED"===e.status||"CANCELED"===e.status||!!e.error;g({index:y++,timestamp:t,role:"tool-result",rawType:"antigravity/tool_result",preview:e_(a),blocks:[{type:"tool_result",tool_use_id:s,content:a,is_error:n}],toolUseId:s,toolResult:a,raw:e});continue}let i=e.content||e.error||"";g({index:y++,timestamp:t,role:"meta",rawType:`antigravity/${e.type?.toLowerCase()||"unknown"}`,preview:e_(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 k=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),i=[],s=t[0],a=t[0];for(let e=1;e<t.length;e++)t[e]-a>18e4&&(i.push({startMs:s,endMs:a}),s=t[e]),a=t[e];return i.push({startMs:s,endMs:a}),i}(d),_=k.reduce((e,t)=>e+(t.endMs-t.startMs),0),j=t&&s?Date.parse(s)-Date.parse(t):void 0,b=e.conversationId,N=e.cwd,I=N?(0,r.canonicalProjectName)(N):e.conversationId,x=N?N.replace(/^\//,"-").replace(/\//g,"-"):e.conversationId;return{meta:{agent:"antigravity",id:b,filePath:e.filePath,projectName:I,projectDir:x,sessionId:b,firstTimestamp:t,lastTimestamp:s,durationMs:j&&Number.isFinite(j)?j:void 0,eventCount:p.length,model:a,cwd:N,totalUsage:{input:0,output:0,cacheRead:0,cacheWrite:0},status:"idle",firstUserPreview:n,lastUserPreview:l,lastAgentPreview:u,toolCallCount:m,turnCount:f,airTimeMs:_,activeSegments:k},events:p}}let eb=new Map,eN=new Map;async function eI(e={}){let t=e.root??eh,i=await ek(t),s=[];for(let e of i){let t=eb.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 ej(e);eb.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 ex(e,t={}){let i,s=t.root??eh;for(let t of(await ek(s)))if(t.conversationId===e){i=t;break}if(!i)return null;let a=eN.get(i.filePath);if(a&&a.mtimeMs===i.mtimeMs&&a.sizeBytes===i.sizeBytes&&a.cwd===i.cwd)return a.detail;let{meta:n,events:o}=await ej(i),r={...n,events:o};return eN.set(i.filePath,{detail:r,mtimeMs:i.mtimeMs,sizeBytes:i.sizeBytes,cwd:i.cwd}),r}let eT=(t=s.default.homedir(),a.default.join(t,".config","Claude","local-agent-mode-sessions")),eS=/^local_[0-9a-f-]+$/;async function eA(e){return i.promises.readdir(e).catch(()=>[])}async function eC(e){let t=await i.promises.stat(e).catch(()=>null);return t?t.mtimeMs:0}async function eP(e){let t=[];for(let s of(await eA(e))){let n=a.default.join(e,s);for(let e of(await eA(n))){let s=a.default.join(n,e),o=await eC(a.default.join(s,"spaces.json"));for(let e of(await eA(s))){if(!eS.test(e))continue;let n=a.default.join(s,e,"audit.jsonl"),r=await i.promises.stat(n).catch(()=>null);if(!r||!r.isFile()||0===r.size)continue;let l=a.default.join(s,`${e}.json`),u=await eC(l);t.push({sessionId:e,auditPath:n,metaPath:l,workspaceDir:s,auditMtimeMs:r.mtimeMs,auditSize:r.size,metaMtimeMs:u,spacesMtimeMs:o})}}}return t}let eD=new Map;async function eR(e){let t=a.default.join(e,"spaces.json"),s=await i.promises.stat(t).catch(()=>null);if(!s)return new Map;let n=eD.get(e);if(n&&n.mtimeMs===s.mtimeMs)return n.spaceIdToPath;let o=await i.promises.readFile(t,"utf8").catch(()=>""),r=new Map;try{for(let e of JSON.parse(o).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&&r.set(t,s)}}catch{}return eD.set(e,{mtimeMs:s.mtimeMs,spaceIdToPath:r}),r}async function eO(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 e$(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 eB(e){let t,[i,s,a]=await Promise.all([e$(e.auditPath),eO(e.metaPath),eR(e.workspaceDir)]),{meta:n,events:o}=f(i),{projectName:l,projectDir:u,cwd:c}=(s.spaceId&&(t=a.get(s.spaceId)),!t&&s.userSelectedFolders&&s.userSelectedFolders.length>0&&(t=s.userSelectedFolders[0]),t)?{projectName:(0,r.canonicalProjectName)(t),projectDir:t.replace(/^\//,"-").replace(/\//g,"-"),cwd:t}:{projectName:"cowork:unspaced",projectDir:"cowork-unspaced"};return{meta:{...n,agent:"cowork",id:e.sessionId,sessionId:e.sessionId,filePath:e.auditPath,projectName:l,projectDir:u,cwd:c??n.cwd,model:n.model??s.model},events:o}}function ez(e){return{auditMtimeMs:e.auditMtimeMs,auditSize:e.auditSize,metaMtimeMs:e.metaMtimeMs,spacesMtimeMs:e.spacesMtimeMs}}function eF(e,t){return e.auditMtimeMs===t.auditMtimeMs&&e.auditSize===t.auditSize&&e.metaMtimeMs===t.metaMtimeMs&&e.spacesMtimeMs===t.spacesMtimeMs}let eW=new Map,eE=new Map;async function eU(e={}){let t=e.root??eT,i=await eP(t),s=[];for(let e of i){let t=ez(e),i=eW.get(e.auditPath);if(i&&eF(i.key,t)){s.push(i.meta);continue}try{let{meta:i}=await eB(e);eW.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 eJ(e,t={}){let i=t.root??eT,s=(await eP(i)).find(t=>t.sessionId===e);if(!s)return null;let a=ez(s),n=eE.get(s.auditPath);if(n&&eF(n.key,a))return n.detail;let{meta:o,events:r}=await eB(s),l={...o,events:r};return eE.set(s.auditPath,{detail:l,key:a}),l}function eL(){return process.env.CCLENS_HOME||a.default.join(s.default.homedir(),".cclens")}function eq(...e){return a.default.join(eL(),...e)}function eG(e){j(e)}let eH=[E,{...n.CODEX_METADATA,defaultRoot:U,listSessions:async e=>X(e),getSession:async e=>Z(e),async usagePoller(){let e=await ee();return e?{captured_at:new Date().toISOString(),agent:"codex",five_hour:e.five_hour,seven_day:e.seven_day}:null}},{...n.GEMINI_METADATA,defaultRoot:et,listSessions:async e=>ey(e),getSession:async e=>eg(e)},{...n.ANTIGRAVITY_METADATA,defaultRoot:eh,listSessions:async e=>eI(e),getSession:async e=>ex(e)},{...n.COWORK_METADATA,defaultRoot:eT,listSessions:async e=>eU(e),getSession:async e=>eJ(e)}];async function eY(e){for(let t of eH){let i=await t.getSession(e);if(i)return i}return null}}];
2
2
 
3
3
  //# sourceMappingURL=packages_parser_dist_10ihc3~._.js.map