agmon 0.2.1 → 0.2.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 (152) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/fallback-build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +8 -8
  5. package/.next/server/app/_global-error.html +1 -1
  6. package/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  10. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  11. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/_not-found.html +1 -1
  13. package/.next/server/app/_not-found.rsc +16 -15
  14. package/.next/server/app/_not-found.segments/_full.segment.rsc +16 -15
  15. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +8 -7
  16. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  17. package/.next/server/app/api/media/route.js.nft.json +1 -1
  18. package/.next/server/app/api/reports/tokens/route.js.nft.json +1 -1
  19. package/.next/server/app/api/sessions/[id]/transcript/route.js +1 -1
  20. package/.next/server/app/api/sessions/[id]/transcript/route.js.nft.json +1 -1
  21. package/.next/server/app/api/traces/stream/route.js +1 -1
  22. package/.next/server/app/api/traces/stream/route.js.nft.json +1 -1
  23. package/.next/server/app/api/version/route.js.nft.json +1 -1
  24. package/.next/server/app/api/workspace/file-content/route.js.nft.json +1 -1
  25. package/.next/server/app/api/workspace/files/route.js.nft.json +1 -1
  26. package/.next/server/app/chat/page.js.nft.json +1 -1
  27. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/chat.html +1 -1
  29. package/.next/server/app/chat.rsc +4 -4
  30. package/.next/server/app/chat.segments/_full.segment.rsc +4 -4
  31. package/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
  32. package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +6 -5
  33. package/.next/server/app/index.html +1 -1
  34. package/.next/server/app/index.rsc +5 -5
  35. package/.next/server/app/index.segments/__PAGE__.segment.rsc +7 -6
  36. package/.next/server/app/index.segments/_full.segment.rsc +5 -5
  37. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  38. package/.next/server/app/page.js.nft.json +1 -1
  39. package/.next/server/app/page_client-reference-manifest.js +1 -1
  40. package/.next/server/app/reports/page.js.nft.json +1 -1
  41. package/.next/server/app/reports/page_client-reference-manifest.js +1 -1
  42. package/.next/server/app/reports.html +1 -1
  43. package/.next/server/app/reports.rsc +2 -2
  44. package/.next/server/app/reports.segments/_full.segment.rsc +2 -2
  45. package/.next/server/app/reports.segments/_tree.segment.rsc +2 -2
  46. package/.next/server/app/reports.segments/reports/__PAGE__.segment.rsc +4 -3
  47. package/.next/server/app/store/page.js.nft.json +1 -1
  48. package/.next/server/app/store/page_client-reference-manifest.js +1 -1
  49. package/.next/server/app/store.html +1 -1
  50. package/.next/server/app/store.rsc +2 -2
  51. package/.next/server/app/store.segments/_full.segment.rsc +2 -2
  52. package/.next/server/app/store.segments/_tree.segment.rsc +2 -2
  53. package/.next/server/app/store.segments/store/__PAGE__.segment.rsc +4 -3
  54. package/.next/server/chunks/[root-of-the-server]__0dw97_pahi8uf._.js +3 -0
  55. package/.next/server/chunks/[root-of-the-server]__0dw97_pahi8uf._.js.map +1 -0
  56. package/.next/server/chunks/_0ao-_t4jkb46h._.js +2 -2
  57. package/.next/server/chunks/_0ao-_t4jkb46h._.js.map +1 -1
  58. package/.next/server/chunks/_1-8ipqazoyrrk._.js +1 -1
  59. package/.next/server/chunks/_1-8ipqazoyrrk._.js.map +1 -1
  60. package/.next/server/chunks/ssr/[root-of-the-server]__1jwplflwix8wi._.js +1 -1
  61. package/.next/server/chunks/ssr/[root-of-the-server]__1jwplflwix8wi._.js.map +1 -1
  62. package/.next/server/chunks/ssr/[root-of-the-server]__1kt7h7bz59mdn._.js +1 -1
  63. package/.next/server/chunks/ssr/[root-of-the-server]__1kt7h7bz59mdn._.js.map +1 -1
  64. package/.next/server/chunks/ssr/[root-of-the-server]__1otsvjy81s8my._.js +1 -1
  65. package/.next/server/chunks/ssr/[root-of-the-server]__1otsvjy81s8my._.js.map +1 -1
  66. package/.next/server/chunks/ssr/{_0--937zhi743v._.js → _0zel-n0h--cnl._.js} +1 -1
  67. package/.next/server/chunks/ssr/{node_modules_0jla9ugf1y6rb._.js → node_modules_01avo0bde3tpo._.js} +1 -1
  68. package/.next/server/chunks/ssr/{node_modules_0sjdrli5douui._.js → node_modules_01l0208e5kqic._.js} +1 -1
  69. package/.next/server/chunks/ssr/{node_modules_0lqovp8j8ld76._.js → node_modules_033x29yqle_sj._.js} +1 -1
  70. package/.next/server/chunks/ssr/{node_modules_05i69rc9pwcdx._.js → node_modules_03wbg__aslvui._.js} +1 -1
  71. package/.next/server/chunks/ssr/{node_modules_1ltys5mwtcv-n._.js → node_modules_08-bqkrz7sh0l._.js} +1 -1
  72. package/.next/server/chunks/ssr/{node_modules_09v49jhajmvl4._.js → node_modules_089w9jm7s2qa3._.js} +2 -2
  73. package/.next/server/chunks/ssr/{node_modules_0z1e37smavebg._.js → node_modules_0cy47-s63xjzh._.js} +2 -2
  74. package/.next/server/chunks/ssr/{node_modules_0dw0vozejrnml._.js → node_modules_0czh0jcnsm5e6._.js} +2 -2
  75. package/.next/server/chunks/ssr/{node_modules_0e3njj436xau-._.js → node_modules_0fv321j1nslkb._.js} +1 -1
  76. package/.next/server/chunks/ssr/{node_modules_0d2ios01ot1in._.js → node_modules_0g-wb7h-hsdwc._.js} +1 -1
  77. package/.next/server/chunks/ssr/{node_modules_1l46or7mgko0z._.js → node_modules_0oz_zzlh8exwx._.js} +1 -1
  78. package/.next/server/chunks/ssr/{node_modules_0b8zi3pbl-y9n._.js → node_modules_0so2agzqd9p8l._.js} +2 -2
  79. package/.next/server/chunks/ssr/{node_modules_1wew4nn7i1uup._.js → node_modules_0w2w61b8bh769._.js} +1 -1
  80. package/.next/server/chunks/ssr/{node_modules_07bjxeq9dfgn1._.js → node_modules_0wd6szix_zku7._.js} +2 -2
  81. package/.next/server/chunks/ssr/{node_modules_1aqaelh-8fme6._.js → node_modules_0wp7omf0xblv8._.js} +1 -1
  82. package/.next/server/chunks/ssr/{node_modules_0xh8tnq1niblb._.js → node_modules_10c51o2qv6mbi._.js} +1 -1
  83. package/.next/server/chunks/ssr/{node_modules_1d4sreyq0ubqg._.js → node_modules_19vqq7rvf-_ar._.js} +2 -2
  84. package/.next/server/chunks/ssr/{node_modules_1e_nc2eyg4djz._.js → node_modules_1hu83gui7_nj2._.js} +1 -1
  85. package/.next/server/chunks/ssr/{node_modules_1zbmc81s-4zsm._.js → node_modules_1j8hpoiygrs5e._.js} +1 -1
  86. package/.next/server/chunks/ssr/{node_modules_1pquu5wprusnc._.js → node_modules_1n4kig4mj6n4s._.js} +2 -2
  87. package/.next/server/chunks/ssr/{node_modules_1st9dwe66yx93._.js → node_modules_1s8oxeqa5_i3k._.js} +1 -1
  88. package/.next/server/chunks/ssr/{node_modules_01p9ctt-n2dxp._.js → node_modules_1xz1dstlo5ri-._.js} +1 -1
  89. package/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_0kqo9zl9cgwbo._.js → node_modules_katex_dist_katex_mjs_067omoj5szuys._.js} +1 -1
  90. package/.next/server/chunks/ssr/src_app_page_1vqfk0-j72fp6.js +1 -1
  91. package/.next/server/chunks/ssr/src_app_page_1vqfk0-j72fp6.js.map +1 -1
  92. package/.next/server/middleware-build-manifest.js +3 -3
  93. package/.next/server/pages/404.html +1 -1
  94. package/.next/server/pages/500.html +1 -1
  95. package/.next/server/preview-props.json +3 -3
  96. package/.next/server/server-reference-manifest.js +1 -1
  97. package/.next/server/server-reference-manifest.json +1 -1
  98. package/.next/static/chunks/0jo6fy2c_gmqn.js +1 -0
  99. package/.next/static/chunks/2q9cwykv6ox1t.css +1 -0
  100. package/.next/static/chunks/{3og0e9qcff393.js → 2zf44j8sjo0w0.js} +4 -4
  101. package/.next/trace +1 -1
  102. package/.next/trace-build +1 -1
  103. package/package.json +1 -1
  104. package/src/app/api/traces/stream/route.js +41 -5
  105. package/src/app/layout.js +2 -1
  106. package/src/app/page.js +17 -1
  107. package/src/components/chat/SessionChatView.js +1 -1
  108. package/src/components/factory/office-canvas.js +32 -1
  109. package/src/components/layout/BottomPanel.jsx +6 -6
  110. package/src/components/layout/LeftSidebar.jsx +62 -4
  111. package/src/components/layout/StatusBar.jsx +1 -1
  112. package/src/components/layout/TitleBar.jsx +71 -1
  113. package/src/components/layout/VSCodeWorkbench.jsx +21 -0
  114. package/src/lib/mockTraces.js +13 -11
  115. package/src/lib/parsers/codexParser.js +373 -0
  116. package/src/lib/parsers/transcriptParser.js +35 -3
  117. package/src/lib/useFactoryTraces.js +70 -5
  118. package/src/lib/watchers/antigravityWatcher.js +15 -1
  119. package/src/lib/watchers/claudeWatcher.js +64 -53
  120. package/src/lib/watchers/codexWatcher.js +482 -0
  121. package/src/lib/watchers/watcherManager.js +46 -30
  122. package/.next/server/chunks/src_lib_watchers_antigravityWatcher_0w1-atg39y__p.js +0 -3
  123. package/.next/server/chunks/src_lib_watchers_antigravityWatcher_0w1-atg39y__p.js.map +0 -1
  124. package/.next/static/chunks/17jorrh_pfel_.js +0 -1
  125. package/.next/static/chunks/25l0z48vlvdu4.css +0 -1
  126. /package/.next/server/chunks/ssr/{_0--937zhi743v._.js.map → _0zel-n0h--cnl._.js.map} +0 -0
  127. /package/.next/server/chunks/ssr/{node_modules_0jla9ugf1y6rb._.js.map → node_modules_01avo0bde3tpo._.js.map} +0 -0
  128. /package/.next/server/chunks/ssr/{node_modules_0sjdrli5douui._.js.map → node_modules_01l0208e5kqic._.js.map} +0 -0
  129. /package/.next/server/chunks/ssr/{node_modules_0lqovp8j8ld76._.js.map → node_modules_033x29yqle_sj._.js.map} +0 -0
  130. /package/.next/server/chunks/ssr/{node_modules_05i69rc9pwcdx._.js.map → node_modules_03wbg__aslvui._.js.map} +0 -0
  131. /package/.next/server/chunks/ssr/{node_modules_1ltys5mwtcv-n._.js.map → node_modules_08-bqkrz7sh0l._.js.map} +0 -0
  132. /package/.next/server/chunks/ssr/{node_modules_09v49jhajmvl4._.js.map → node_modules_089w9jm7s2qa3._.js.map} +0 -0
  133. /package/.next/server/chunks/ssr/{node_modules_0z1e37smavebg._.js.map → node_modules_0cy47-s63xjzh._.js.map} +0 -0
  134. /package/.next/server/chunks/ssr/{node_modules_0dw0vozejrnml._.js.map → node_modules_0czh0jcnsm5e6._.js.map} +0 -0
  135. /package/.next/server/chunks/ssr/{node_modules_0e3njj436xau-._.js.map → node_modules_0fv321j1nslkb._.js.map} +0 -0
  136. /package/.next/server/chunks/ssr/{node_modules_0d2ios01ot1in._.js.map → node_modules_0g-wb7h-hsdwc._.js.map} +0 -0
  137. /package/.next/server/chunks/ssr/{node_modules_0xh8tnq1niblb._.js.map → node_modules_0oz_zzlh8exwx._.js.map} +0 -0
  138. /package/.next/server/chunks/ssr/{node_modules_0b8zi3pbl-y9n._.js.map → node_modules_0so2agzqd9p8l._.js.map} +0 -0
  139. /package/.next/server/chunks/ssr/{node_modules_1wew4nn7i1uup._.js.map → node_modules_0w2w61b8bh769._.js.map} +0 -0
  140. /package/.next/server/chunks/ssr/{node_modules_07bjxeq9dfgn1._.js.map → node_modules_0wd6szix_zku7._.js.map} +0 -0
  141. /package/.next/server/chunks/ssr/{node_modules_1aqaelh-8fme6._.js.map → node_modules_0wp7omf0xblv8._.js.map} +0 -0
  142. /package/.next/server/chunks/ssr/{node_modules_1d4sreyq0ubqg._.js.map → node_modules_10c51o2qv6mbi._.js.map} +0 -0
  143. /package/.next/server/chunks/ssr/{node_modules_1l46or7mgko0z._.js.map → node_modules_19vqq7rvf-_ar._.js.map} +0 -0
  144. /package/.next/server/chunks/ssr/{node_modules_1e_nc2eyg4djz._.js.map → node_modules_1hu83gui7_nj2._.js.map} +0 -0
  145. /package/.next/server/chunks/ssr/{node_modules_1zbmc81s-4zsm._.js.map → node_modules_1j8hpoiygrs5e._.js.map} +0 -0
  146. /package/.next/server/chunks/ssr/{node_modules_1pquu5wprusnc._.js.map → node_modules_1n4kig4mj6n4s._.js.map} +0 -0
  147. /package/.next/server/chunks/ssr/{node_modules_1st9dwe66yx93._.js.map → node_modules_1s8oxeqa5_i3k._.js.map} +0 -0
  148. /package/.next/server/chunks/ssr/{node_modules_01p9ctt-n2dxp._.js.map → node_modules_1xz1dstlo5ri-._.js.map} +0 -0
  149. /package/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_0kqo9zl9cgwbo._.js.map → node_modules_katex_dist_katex_mjs_067omoj5szuys._.js.map} +0 -0
  150. /package/.next/static/{1y6Da0YgnPr2_6ncpWrbV → dGN2VKPk5TJgezxS3JvRc}/_buildManifest.js +0 -0
  151. /package/.next/static/{1y6Da0YgnPr2_6ncpWrbV → dGN2VKPk5TJgezxS3JvRc}/_clientMiddlewareManifest.js +0 -0
  152. /package/.next/static/{1y6Da0YgnPr2_6ncpWrbV → dGN2VKPk5TJgezxS3JvRc}/_ssgManifest.js +0 -0
@@ -14,12 +14,12 @@ f:I[97367,["$2"],"OutletBoundary"]
14
14
  15:"MetadataBoundary"
15
15
  16:I[97367,["$2"],"$15"]
16
16
  18:I[68027,["$2"],"default",1]
17
- :HL["/_next/static/chunks/25l0z48vlvdu4.css","style"]
17
+ :HL["/_next/static/chunks/2q9cwykv6ox1t.css","style"]
18
18
  :HL["https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&family=Roboto:wght@400;500;700&display=swap","style"]
19
19
  7:X
20
20
  8:[["children",{"s":"__PAGE__","h":512,"d":{"r":["$","$1","c",{"children":[["$","$L9",null,{"Component":"$c","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@d","$@e"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/23uup1e8841av.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/2rx7xvi55ohln.js","async":true,"nonce":"$undefined"}]],["$","$Lf",null,{"children":["$","$10",null,{"name":"Next.MetadataOutlet","children":"$@11"}]}]]}],"p":false,"v":null}}]]
21
21
  6:[["children",{"s":"store","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$7"},"c":"$Q8"}]]
22
- 0:{"P":null,"c":["","store"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/25l0z48vlvdu4.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/31d3_w6klkslg.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark","children":[["$","head",null,{"children":[["$","link",null,{"rel":"manifest","href":"/manifest.json"}],["$","link",null,{"rel":"apple-touch-icon","href":"/icons/icon.svg"}],["$","meta",null,{"name":"apple-mobile-web-app-capable","content":"yes"}],["$","meta",null,{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&family=Roboto:wght@400;500;700&display=swap","rel":"stylesheet"}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var raw=localStorage.getItem(\"agmon_theme_settings\");var t=\"dark-plus\";var fz=\"13\";var uf=\"\";var cf=\"\";if(raw){var s=JSON.parse(raw);if(s.theme)t=s.theme;if(s.fontSize)fz=s.fontSize;if(s.uiFont)uf=s.uiFont;if(s.codeFont)cf=s.codeFont;}document.documentElement.setAttribute(\"data-theme\",t);if(t===\"light-plus\"){document.documentElement.classList.remove(\"dark\");document.documentElement.classList.add(\"light\");}else{document.documentElement.classList.remove(\"light\");document.documentElement.classList.add(\"dark\");}document.documentElement.style.setProperty(\"--font-size-ui\",fz+\"px\");document.documentElement.style.setProperty(\"--font-size-base\",fz+\"px\");}catch(e){}})();"}}]]}],["$","body",null,{"className":"antialiased bg-[var(--bg-workbench)] text-[var(--text-main)] select-none","children":[["$","$L3",null,{}],["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}]]}]]}],"p":false,"v":null},"c":"$Q6"},"h":{"r":["$","$1","h",{"children":[null,["$","$L13",null,{"children":"$L14"}],["$","$L16",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$10",null,{"name":"Next.Metadata","children":"$L17"}]}],null]}],null]}],"p":false,"v":null}},"m":"$undefined","G":["$18",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/25l0z48vlvdu4.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"1y6Da0YgnPr2_6ncpWrbV"}
22
+ 0:{"P":null,"c":["","store"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2q9cwykv6ox1t.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/31d3_w6klkslg.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"manifest","href":"/manifest.json"}],["$","link",null,{"rel":"apple-touch-icon","href":"/icons/icon.svg"}],["$","meta",null,{"name":"apple-mobile-web-app-capable","content":"yes"}],["$","meta",null,{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&family=Roboto:wght@400;500;700&display=swap","rel":"stylesheet"}],["$","script",null,{"suppressHydrationWarning":true,"dangerouslySetInnerHTML":{"__html":"(function(){try{var raw=localStorage.getItem(\"agmon_theme_settings\");var t=\"dark-plus\";var fz=\"13\";var uf=\"\";var cf=\"\";if(raw){var s=JSON.parse(raw);if(s.theme)t=s.theme;if(s.fontSize)fz=s.fontSize;if(s.uiFont)uf=s.uiFont;if(s.codeFont)cf=s.codeFont;}document.documentElement.setAttribute(\"data-theme\",t);if(t===\"light-plus\"){document.documentElement.classList.remove(\"dark\");document.documentElement.classList.add(\"light\");}else{document.documentElement.classList.remove(\"light\");document.documentElement.classList.add(\"dark\");}document.documentElement.style.setProperty(\"--font-size-ui\",fz+\"px\");document.documentElement.style.setProperty(\"--font-size-base\",fz+\"px\");}catch(e){}})();"}}]]}],["$","body",null,{"className":"antialiased bg-[var(--bg-workbench)] text-[var(--text-main)] select-none","children":[["$","$L3",null,{}],["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}]]}]]}],"p":false,"v":null},"c":"$Q6"},"h":{"r":["$","$1","h",{"children":[null,["$","$L13",null,{"children":"$L14"}],["$","$L16",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$10",null,{"name":"Next.Metadata","children":"$L17"}]}],null]}],null]}],"p":false,"v":null}},"m":"$undefined","G":["$18",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2q9cwykv6ox1t.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"dGN2VKPk5TJgezxS3JvRc"}
23
23
  7:C
24
24
  d:{}
25
25
  e:"$8:0:1:d:r:props:children:0:props:serverProvidedParams:params"
@@ -14,12 +14,12 @@ f:I[97367,["$2"],"OutletBoundary"]
14
14
  15:"MetadataBoundary"
15
15
  16:I[97367,["$2"],"$15"]
16
16
  18:I[68027,["$2"],"default",1]
17
- :HL["/_next/static/chunks/25l0z48vlvdu4.css","style"]
17
+ :HL["/_next/static/chunks/2q9cwykv6ox1t.css","style"]
18
18
  :HL["https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&family=Roboto:wght@400;500;700&display=swap","style"]
19
19
  7:X
20
20
  8:[["children",{"s":"__PAGE__","h":512,"d":{"r":["$","$1","c",{"children":[["$","$L9",null,{"Component":"$c","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@d","$@e"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/23uup1e8841av.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/2rx7xvi55ohln.js","async":true,"nonce":"$undefined"}]],["$","$Lf",null,{"children":["$","$10",null,{"name":"Next.MetadataOutlet","children":"$@11"}]}]]}],"p":false,"v":null}}]]
21
21
  6:[["children",{"s":"store","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$7"},"c":"$Q8"}]]
22
- 0:{"P":null,"c":["","store"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/25l0z48vlvdu4.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/31d3_w6klkslg.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark","children":[["$","head",null,{"children":[["$","link",null,{"rel":"manifest","href":"/manifest.json"}],["$","link",null,{"rel":"apple-touch-icon","href":"/icons/icon.svg"}],["$","meta",null,{"name":"apple-mobile-web-app-capable","content":"yes"}],["$","meta",null,{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&family=Roboto:wght@400;500;700&display=swap","rel":"stylesheet"}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var raw=localStorage.getItem(\"agmon_theme_settings\");var t=\"dark-plus\";var fz=\"13\";var uf=\"\";var cf=\"\";if(raw){var s=JSON.parse(raw);if(s.theme)t=s.theme;if(s.fontSize)fz=s.fontSize;if(s.uiFont)uf=s.uiFont;if(s.codeFont)cf=s.codeFont;}document.documentElement.setAttribute(\"data-theme\",t);if(t===\"light-plus\"){document.documentElement.classList.remove(\"dark\");document.documentElement.classList.add(\"light\");}else{document.documentElement.classList.remove(\"light\");document.documentElement.classList.add(\"dark\");}document.documentElement.style.setProperty(\"--font-size-ui\",fz+\"px\");document.documentElement.style.setProperty(\"--font-size-base\",fz+\"px\");}catch(e){}})();"}}]]}],["$","body",null,{"className":"antialiased bg-[var(--bg-workbench)] text-[var(--text-main)] select-none","children":[["$","$L3",null,{}],["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}]]}]]}],"p":false,"v":null},"c":"$Q6"},"h":{"r":["$","$1","h",{"children":[null,["$","$L13",null,{"children":"$L14"}],["$","$L16",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$10",null,{"name":"Next.Metadata","children":"$L17"}]}],null]}],null]}],"p":false,"v":null}},"m":"$undefined","G":["$18",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/25l0z48vlvdu4.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"1y6Da0YgnPr2_6ncpWrbV"}
22
+ 0:{"P":null,"c":["","store"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2q9cwykv6ox1t.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/31d3_w6klkslg.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"manifest","href":"/manifest.json"}],["$","link",null,{"rel":"apple-touch-icon","href":"/icons/icon.svg"}],["$","meta",null,{"name":"apple-mobile-web-app-capable","content":"yes"}],["$","meta",null,{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&family=Roboto:wght@400;500;700&display=swap","rel":"stylesheet"}],["$","script",null,{"suppressHydrationWarning":true,"dangerouslySetInnerHTML":{"__html":"(function(){try{var raw=localStorage.getItem(\"agmon_theme_settings\");var t=\"dark-plus\";var fz=\"13\";var uf=\"\";var cf=\"\";if(raw){var s=JSON.parse(raw);if(s.theme)t=s.theme;if(s.fontSize)fz=s.fontSize;if(s.uiFont)uf=s.uiFont;if(s.codeFont)cf=s.codeFont;}document.documentElement.setAttribute(\"data-theme\",t);if(t===\"light-plus\"){document.documentElement.classList.remove(\"dark\");document.documentElement.classList.add(\"light\");}else{document.documentElement.classList.remove(\"light\");document.documentElement.classList.add(\"dark\");}document.documentElement.style.setProperty(\"--font-size-ui\",fz+\"px\");document.documentElement.style.setProperty(\"--font-size-base\",fz+\"px\");}catch(e){}})();"}}]]}],["$","body",null,{"className":"antialiased bg-[var(--bg-workbench)] text-[var(--text-main)] select-none","children":[["$","$L3",null,{}],["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}]]}]]}],"p":false,"v":null},"c":"$Q6"},"h":{"r":["$","$1","h",{"children":[null,["$","$L13",null,{"children":"$L14"}],["$","$L16",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$10",null,{"name":"Next.Metadata","children":"$L17"}]}],null]}],null]}],"p":false,"v":null}},"m":"$undefined","G":["$18",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2q9cwykv6ox1t.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"dGN2VKPk5TJgezxS3JvRc"}
23
23
  7:C
24
24
  d:{}
25
25
  e:"$8:0:1:d:r:props:children:0:props:serverProvidedParams:params"
@@ -1,5 +1,5 @@
1
- :HL["/_next/static/chunks/25l0z48vlvdu4.css","style"]
1
+ :HL["/_next/static/chunks/2q9cwykv6ox1t.css","style"]
2
2
  :HL["https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&family=Roboto:wght@400;500;700&display=swap","style"]
3
3
  2:[["children",{"s":"__PAGE__","h":160}]]
4
4
  1:[["children",{"s":"store","h":96,"c":"$Q2"}]]
5
- 0:{"b":"1y6Da0YgnPr2_6ncpWrbV","t":{"t":{"s":"","h":80,"c":"$Q1"}}}
5
+ 0:{"b":"dGN2VKPk5TJgezxS3JvRc","t":{"t":{"s":"","h":80,"c":"$Q1"}}}
@@ -13,18 +13,19 @@ f:I[30536,["$2","$d","$e"],"default"]
13
13
  17:I[97367,["$2"],"$16"]
14
14
  18:"MetadataBoundary"
15
15
  19:I[97367,["$2"],"$18"]
16
- 1a:I[27201,["$2"],"IconMark"]
17
- :HL["/_next/static/chunks/25l0z48vlvdu4.css","style"]
16
+ :HL["/_next/static/chunks/2q9cwykv6ox1t.css","style"]
18
17
  :HL["https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&family=Roboto:wght@400;500;700&display=swap","style"]
19
18
  7:X
20
19
  a:X
21
20
  a:C
22
21
  b:[["children",{"s":"__PAGE__","h":160,"d":{"r":["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$f","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@10","$@11"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/23uup1e8841av.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/2rx7xvi55ohln.js","async":true}]],["$","$L12",null,{"children":["$","$13",null,{"name":"Next.MetadataOutlet","children":"$@14"}]}]]}],"p":"$@15","v":null,"s":"$7"}}]]
23
22
  8:[["children",{"s":"store","h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}]}]]}],"p":"$@9","v":"$a","s":"$7"},"c":"$Qb"}]]
24
- 0:{"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/25l0z48vlvdu4.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/31d3_w6klkslg.js","async":true}]],["$","html",null,{"lang":"en","className":"dark","children":[["$","head",null,{"children":[["$","link",null,{"rel":"manifest","href":"/manifest.json"}],["$","link",null,{"rel":"apple-touch-icon","href":"/icons/icon.svg"}],["$","meta",null,{"name":"apple-mobile-web-app-capable","content":"yes"}],["$","meta",null,{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&family=Roboto:wght@400;500;700&display=swap","rel":"stylesheet"}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var raw=localStorage.getItem(\"agmon_theme_settings\");var t=\"dark-plus\";var fz=\"13\";var uf=\"\";var cf=\"\";if(raw){var s=JSON.parse(raw);if(s.theme)t=s.theme;if(s.fontSize)fz=s.fontSize;if(s.uiFont)uf=s.uiFont;if(s.codeFont)cf=s.codeFont;}document.documentElement.setAttribute(\"data-theme\",t);if(t===\"light-plus\"){document.documentElement.classList.remove(\"dark\");document.documentElement.classList.add(\"light\");}else{document.documentElement.classList.remove(\"light\");document.documentElement.classList.add(\"dark\");}document.documentElement.style.setProperty(\"--font-size-ui\",fz+\"px\");document.documentElement.style.setProperty(\"--font-size-base\",fz+\"px\");}catch(e){}})();"}}]]}],["$","body",null,{"className":"antialiased bg-[var(--bg-workbench)] text-[var(--text-main)] select-none","children":[["$","$L3",null,{}],["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]]}]]}]]}],"p":"$@6","v":null,"s":"$7"},"c":"$Q8"},"h":{"r":["$","$1","h",{"children":[null,["$","$L17",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}],["$","meta","2",{"name":"theme-color","content":"#070b12"}]]}],["$","$L19",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$13",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"AGMon - AI Agent Office & Activity Visualizer"}],["$","meta","1",{"name":"description","content":"Realtime activity and token flow visualizer for Antigravity, Claude Code & AI CLIs"}],["$","link","2",{"rel":"manifest","href":"/manifest.json"}],["$","meta","3",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","4",{"name":"apple-mobile-web-app-title","content":"AGMon"}],["$","meta","5",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","link","6",{"rel":"icon","href":"/favicon.svg"}],["$","link","7",{"rel":"apple-touch-icon","href":"/icons/icon.svg"}],["$","$L1a","8",{}]]}]}],null]}],null]}],"p":"$@1b","v":null,"s":"$7"}},"a":"$@1c","u":"$@1d","b":"1y6Da0YgnPr2_6ncpWrbV"}
23
+ 0:{"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2q9cwykv6ox1t.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/31d3_w6klkslg.js","async":true}]],["$","html",null,{"lang":"en","className":"dark","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"manifest","href":"/manifest.json"}],["$","link",null,{"rel":"apple-touch-icon","href":"/icons/icon.svg"}],["$","meta",null,{"name":"apple-mobile-web-app-capable","content":"yes"}],["$","meta",null,{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&family=Roboto:wght@400;500;700&display=swap","rel":"stylesheet"}],["$","script",null,{"suppressHydrationWarning":true,"dangerouslySetInnerHTML":{"__html":"(function(){try{var raw=localStorage.getItem(\"agmon_theme_settings\");var t=\"dark-plus\";var fz=\"13\";var uf=\"\";var cf=\"\";if(raw){var s=JSON.parse(raw);if(s.theme)t=s.theme;if(s.fontSize)fz=s.fontSize;if(s.uiFont)uf=s.uiFont;if(s.codeFont)cf=s.codeFont;}document.documentElement.setAttribute(\"data-theme\",t);if(t===\"light-plus\"){document.documentElement.classList.remove(\"dark\");document.documentElement.classList.add(\"light\");}else{document.documentElement.classList.remove(\"light\");document.documentElement.classList.add(\"dark\");}document.documentElement.style.setProperty(\"--font-size-ui\",fz+\"px\");document.documentElement.style.setProperty(\"--font-size-base\",fz+\"px\");}catch(e){}})();"}}]]}],["$","body",null,{"className":"antialiased bg-[var(--bg-workbench)] text-[var(--text-main)] select-none","children":[["$","$L3",null,{}],["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]]}]]}]]}],"p":"$@6","v":null,"s":"$7"},"c":"$Q8"},"h":{"r":["$","$1","h",{"children":[null,["$","$L17",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}],["$","meta","2",{"name":"theme-color","content":"#070b12"}]]}],["$","$L19",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$13",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"AGMon - AI Agent Office & Activity Visualizer"}],["$","meta","1",{"name":"description","content":"Realtime activity and token flow visualizer for Antigravity, Claude Code & AI CLIs"}],["$","link","2",{"rel":"manifest","href":"/manifest.json"}],["$","meta","3",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","4",{"name":"apple-mobile-web-app-title","content":"AGMon"}],["$","meta","5",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","link","6",{"rel":"icon","href":"/favicon.svg"}],["$","link","7",{"rel":"apple-touch-icon","href":"/icons/icon.svg"}],"$L1a"]}]}],null]}],null]}],"p":"$@1b","v":null,"s":"$7"}},"a":"$@1c","u":"$@1d","b":"dGN2VKPk5TJgezxS3JvRc"}
24
+ 1e:I[27201,["$2"],"IconMark"]
25
25
  10:{}
26
26
  11:"$b:0:1:d:r:props:children:0:props:serverProvidedParams:params"
27
27
  14:null
28
+ 1a:["$","$L1e","8",{}]
28
29
  7:300
29
30
  1d:true
30
31
  7:C
@@ -0,0 +1,3 @@
1
+ module.exports=[74533,(e,t,i)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},12057,(e,t,i)=>{t.exports=e.x("node:util",()=>require("node:util"))},53984,56496,76307,e=>{"use strict";var t=e.i(12714),i=e.i(50227),l=e.i(60526);function n(e){let t=e.tokens||{},i=e=>Number.isFinite(e)?Number(e):null,l=i(t.input),n=i(t.output),s=i(t.cached),r=i(e.totalTokens??t.total),a=String(e.connectionId||"").toLowerCase(),o=e.clientType||("app"===e.source||a.includes("app")?"app":"extension"===e.source||a.includes("extension")||"ide"===e.source||a.includes("ide")?"extension":"cli");return{traceId:String(e.traceId||`trace-${Math.random().toString(36).slice(2,9)}`),cli:e.cli||"agent",clientType:o,source:e.source||o,connectionId:String(e.connectionId||"Agent Desk"),account:String(e.account||"Default Workspace"),model:e.model?String(e.model):null,provider:e.provider?String(e.provider).toLowerCase():null,state:["streaming","pending","idle","done","error"].includes(e.state)?e.state:"idle",startedAt:"number"==typeof e.startedAt?e.startedAt:null,elapsedMs:"number"==typeof e.elapsedMs?e.elapsedMs:null,tokens:{input:l,output:n,cached:s},totalTokens:r??(null!==l&&null!==n&&null!==s?l+n+s:null),cost:i(e.cost),status:e.status?String(e.status):null,tools:Array.isArray(e.tools)?e.tools:[],activeTool:e.activeTool||null,currentCommand:e.currentCommand||null,sessionTitle:e.sessionTitle?String(e.sessionTitle):null,lastText:e.lastText?String(e.lastText):null,lastTextRole:["user","assistant"].includes(e.lastTextRole)?e.lastTextRole:null,error:e.error?String(e.error):null,isLooping:!!e.isLooping,logs:Array.isArray(e.logs)?e.logs:[]}}e.s(["s",0,function(e){let t=new Set,i=[];for(let l of e){let e=(l.provider||"other").toLowerCase();t.has(e)||(t.add(e),i.push({provider:e,name:e.charAt(0).toUpperCase()+e.slice(1)}))}return i},"g",0,n],56496);let s={view_file:"read",read_file:"read",replace_file_content:"edit",write_to_file:"edit",call_mcp_tool:"mcp",list_resources:"mcp",invoke_subagent:"agent",grep_search:"search",list_dir:"read",find_by_name:"read",define_subagent:"agent"};function r(e){if(!e||!e.name)return{type:"mcp",detail:null};let t=e.name,l=e.args||{};if("call_mcp_tool"===t){let e=String(l.ServerName||"").toLowerCase(),t=String(l.ToolName||"").toLowerCase();return e.includes("gitnexus")||t.includes("cypher")||t.includes("pdg_query")||t.includes("impact")?{type:"gitnexus",detail:`GitNexus: ${t}`}:e.includes("playwright")||e.includes("browser")||t.startsWith("browser_")?{type:"browser",detail:`Browser: ${t}`}:{type:"mcp",detail:`MCP: ${e}/${t}`}}if("run_command"===t){let e=String(l.CommandLine||"").trim(),t=e.toLowerCase();return t.startsWith("docker")||t.includes("docker exec")||t.includes("docker-compose")?{type:"docker",detail:e.length>50?`${e.slice(0,47)}...`:e}:t.startsWith("git ")||t.startsWith("gh ")||t.includes("git commit")||t.includes("git push")?{type:"git",detail:e.length>50?`${e.slice(0,47)}...`:e}:t.includes("gitnexus")?{type:"gitnexus",detail:e.length>50?`${e.slice(0,47)}...`:e}:{type:"bash",detail:e.length>50?`${e.slice(0,47)}...`:e}}let n=s[t],r=l.TargetFile||l.AbsolutePath||l.query||"",a=r?`${t}: ${i.default.basename(r)}`:t;return n?{type:n,detail:a}:t.includes("read")||t.includes("find")||t.includes("dir")||t.includes("list")?{type:"read",detail:a}:t.includes("edit")||t.includes("write")||t.includes("patch")?{type:"edit",detail:a}:t.includes("search")||t.includes("grep")?{type:"search",detail:a}:t.includes("agent")||t.includes("message")?{type:"agent",detail:a}:{type:"mcp",detail:a}}function a(e){if(!e)return null;let t=e.match(/Model Selection` from [^ ]+ to (.*?)(?:\.\s+No need|\.\s*\n|<\/USER_SETTINGS_CHANGE>)/i);if(t&&t[1])return t[1].trim();let i=e.match(/Model Selection`? from .*? to ([^\n<.]+)/i);return i&&i[1]?i[1].trim():null}function o(e){if(!e)return null;let t=e.toLowerCase();return t.includes("3.8")&&t.includes("flash")?"gemini-3.8-flash":t.includes("3.5")&&t.includes("flash")?"gemini-3.5-flash":t.includes("3.8")&&t.includes("pro")?"gemini-3.8-pro":t.includes("3.1")&&t.includes("pro")?"gemini-3.1-pro":t.includes("2.5")&&t.includes("pro")?"gemini-2.5-pro":t.includes("2.5")&&t.includes("flash")?"gemini-2.5-flash":t.includes("sonnet")&&t.includes("5.5")?"claude-sonnet-5.5":t.includes("sonnet")&&t.includes("3.7")?"claude-3.7-sonnet":t.includes("sonnet")&&t.includes("3.5")?"claude-3.5-sonnet":e.replace(/[()]/g,"").trim().toLowerCase().replace(/\s+/g,"-")}function c(e,t=160){let i=String(e||"").replace(/\s+/g," ").trim();return i?i.slice(0,t):null}async function u(){let e=l.default.homedir(),n=i.default.join(e,".gemini"),s=[],r=new Set,a=(e,t)=>{r.has(e)||(r.add(e),s.push({dir:e,source:t}))};a(i.default.join(n,"antigravity-cli","brain"),"cli"),a(i.default.join(n,"antigravity","brain"),"app"),a(i.default.join(n,"antigravity-ide","brain"),"ide");try{for(let e of(await t.default.readdir(n,{withFileTypes:!0}))){if(!e.isDirectory())continue;let l=i.default.join(n,e.name,"brain");if(!r.has(l))try{if((await t.default.stat(l)).isDirectory()){let t=e.name.toLowerCase(),i=t.includes("ide")?"ide":t.includes("app")||"antigravity"===t?"app":"cli";a(l,i)}}catch{}}}catch{}let o=[];for(let e of s)try{(await t.default.stat(e.dir)).isDirectory()&&o.push(e)}catch{}return o}async function d(e=864e5){let s=l.default.homedir(),p=await u(),m=null;try{let e=await t.default.readFile(i.default.join(s,".gemini","antigravity-cli","settings.json"),"utf-8"),l=JSON.parse(e);l.model&&(m=l.model)}catch{}try{let l=Date.now(),s=[],u=new Set,d=[];for(let{dir:n,source:s}of p){let r;try{r=await t.default.readdir(n,{withFileTypes:!0})}catch{continue}for(let a of r){if(!a.isDirectory())continue;let r=a.name;if(u.has(r))continue;u.add(r);let o=i.default.join(n,r,".system_generated","logs","transcript.jsonl");try{let i=await t.default.stat(o),n=i.mtimeMs;if(l-n>e)continue;d.push({transcriptPath:o,mtime:n,convId:r,source:s,stat:i})}catch{}}}for(let{transcriptPath:e,mtime:p,convId:g,source:f,stat:h}of(d.sort((e,t)=>t.mtime-e.mtime),d.slice(0,100)))try{let d=await t.default.readFile(e,"utf-8"),h=d.trim().split("\n");if(0===h.length)continue;let y=0,_=0,w=0,T=!1,S=null,A=null,x=new Set,b=null,k=null,v=null,C=null,N=null,$=null,L=null,E=[],I=[];for(let e of h)if(e)try{let t=JSON.parse(e),i=t.created_at?new Date(t.created_at).getTime():Date.now();if(!b&&t.created_at&&(b=i),t.created_at&&(k=i),(Number.isFinite(t.input_tokens)||Number.isFinite(t.output_tokens)||Number.isFinite(t.cache_read_tokens))&&(T=!0,y+=t.input_tokens||0,_+=t.output_tokens||0,w+=t.cache_read_tokens||0),"USER_INPUT"===t.type&&t.content){let e=function(e){if(!e)return null;let t=String(e),i=[...t.matchAll(/<USER_REQUEST>([\s\S]*?)<\/USER_REQUEST>/gi)];return c(t=i.length>0?i[i.length-1][1]:t.replace(/<CONTEXT_SUMMARY>[\s\S]*?<\/CONTEXT_SUMMARY>/gi,"").replace(/<ADDITIONAL_METADATA>[\s\S]*?<\/ADDITIONAL_METADATA>/gi,"").replace(/<USER_SETTINGS_CHANGE>[\s\S]*?<\/USER_SETTINGS_CHANGE>/gi,"").replace(/<system-reminder>[\s\S]*?<\/system-reminder>/gi,""))}(t.content);e&&(N||=c(e,80),$=e,L="user",I.push({timestamp:t.created_at||new Date().toISOString(),type:"prompt",summary:"User Prompt",detail:e.slice(0,100)}))}else if("PLANNER_RESPONSE"===t.type&&t.content){let e=c(t.content);e&&($=e,L="assistant")}if(Array.isArray(t.tool_calls)&&t.tool_calls.length>0)for(let e of(S=t,t.tool_calls)){if(e.args?.Cwd&&!C&&(C=e.args.Cwd),!C&&(e.args?.TargetFile||e.args?.AbsolutePath)){let t=e.args.TargetFile||e.args.AbsolutePath;t.includes("/Projects/")&&(C=t.split("/").slice(0,5).join("/"))}let{type:l,detail:n}=r(e);l&&x.add(l),n&&(v=n),E.push({name:e.name,time:i,detail:n||e.name}),I.push({timestamp:t.created_at||new Date().toISOString(),type:l||"tool",summary:e.name,detail:n||e.name})}("ERROR"===t.status||"GENERIC"===t.type&&t.content&&t.content.includes("error"))&&I.push({timestamp:t.created_at||new Date().toISOString(),type:"error",summary:"Error",detail:String(t.content||"Command failed").slice(0,100)}),A=t}catch{}let D="done";S?.status==="RUNNING"?D="streaming":A?.type==="USER_INPUT"?D="pending":l-p<45e3&&(D="idle");let R=!1;if(E.length>=5){let e=E.slice(-10);for(let t=0;t<=e.length-5;t++){let i=e.slice(t,t+5),l=`${i[0].name}:${i[0].detail}`,n=i.every(e=>`${e.name}:${e.detail}`===l),s=(i[i.length-1].time||0)-(i[0].time||0);if(n&&(s<=6e4||0===s)){R=!0;break}}}let j=null;if(S&&Array.isArray(S.tool_calls)&&S.tool_calls.length>0){let e=S.tool_calls[S.tool_calls.length-1];j=r(e).type}let F=k&&b?Math.max(0,k-b):l-p,O=(C?i.default.basename(C):`agy-${g.slice(0,6)}`).replace(/["'\\]/g,"").trim();u.add(g);let M="app"===f?"app":"ide"===f?"ide":"cli",U="app"===f?"Antigravity App":"ide"===f?"Antigravity IDE":"Antigravity",P=a(d)||("cli"===f?m:null),W=o(P),G=function(e,t){let i=String(e||"").toLowerCase(),l=null;return i.includes("gemini")?l="gemini":i.includes("claude")?l="anthropic":i.includes("gpt")||i.includes("o1")||i.includes("o3")?l="openai":i.includes("minimax")?l="minimax":i.includes("deepseek")&&(l="deepseek"),l?`${l} (${t})`:null}(W,M),J=i.default.basename(process.cwd())||"agent-factory",q=O||J,B=N||q;s.push(n({traceId:`agy-${g.slice(0,8)}`,cli:"antigravity",clientType:M,source:f,connectionId:`${U} (${g.slice(0,6)})`,account:q,model:W,provider:G,state:D,startedAt:b||l-F,elapsedMs:F,tokens:{input:T?y:null,output:T?_:null,cached:T?w:null},cost:null,status:R?"error":null,tools:Array.from(x),activeTool:j,currentCommand:v,sessionTitle:B,lastText:$,lastTextRole:L,isLooping:R,logs:I.slice(-25)}))}catch{}return s.sort((e,t)=>{let i=+("streaming"===e.state||"pending"===e.state),l=+("streaming"===t.state||"pending"===t.state);return i!==l?l-i:(t.startedAt||0)-(e.startedAt||0)}),s}catch{return[]}}e.s(["f",0,a,"g",0,d,"R",0,o],53984);var p=e.i(74533);let m=(0,e.i(12057).promisify)(p.exec);function g(e,t=160){let i=String(e||"").replace(/\s+/g," ").trim();return i?i.slice(0,t):null}function f(e,t={}){let l=String(e||"").toLowerCase(),n=String(t.cmd||t.command||"").trim(),s=n.toLowerCase();if("exec_command"===l||"local_shell_call"===l||"bash"===l||"shell"===l)return s.startsWith("docker")||s.includes("docker exec")?{type:"docker",detail:n.length>50?`${n.slice(0,47)}...`:n}:s.startsWith("git ")||s.startsWith("gh ")?{type:"git",detail:n.length>50?`${n.slice(0,47)}...`:n}:s.includes("gitnexus")?{type:"gitnexus",detail:n.length>50?`${n.slice(0,47)}...`:n}:s.startsWith("rg ")||s.startsWith("grep ")?{type:"search",detail:n.length>50?`${n.slice(0,47)}...`:n}:/^(cat|sed|head|tail|ls|find)\b/.test(s)?{type:"read",detail:n.length>50?`${n.slice(0,47)}...`:n}:{type:"bash",detail:n.length>50?`${n.slice(0,47)}...`:n};if("apply_patch"===l||"patch"===l||l.includes("write")||l.includes("edit")||l.includes("replace")){let e=t.file_path||t.path||t.TargetFile||"";return{type:"edit",detail:e?`Edit: ${i.default.basename(e)}`:"Edit file"}}if(l.includes("read")||l.includes("view")||l.includes("glob")){let e=t.file_path||t.path||t.AbsolutePath||"";return{type:"read",detail:e?`Read: ${i.default.basename(e)}`:"Read file"}}return l.includes("search")||l.includes("grep")||l.includes("find")?{type:"search",detail:t.pattern||t.query||"Search"}:l.includes("spawn_agent")||l.includes("followup_task")||l.includes("agent")?{type:"agent",detail:"Subagent Task"}:l.includes("browser")||l.includes("playwright")?{type:"browser",detail:"Browser automation"}:l.includes("web")||l.includes("fetch")?{type:"web",detail:"Web fetch"}:{type:"mcp",detail:l}}function h(e,t){let i=String(e||"").toLowerCase(),l=String(t||"").toLowerCase();return i.includes("desktop")||"codex_app"===i||"codex-app"===i||"codex_app_server"===i||"desktop"===l||"app"===l?{clientType:"desktop",label:"Codex Desktop"}:i.includes("vscode")||"vscode"===l?{clientType:"extension",label:"Codex Extension"}:{clientType:"cli",label:"Codex CLI"}}async function y(e,l,n){let s,r=[];try{s=await t.default.readdir(e,{withFileTypes:!0})}catch{return r}for(let a of s.filter(e=>e.isDirectory()).map(e=>e.name).sort().reverse()){let s,o=i.default.join(e,a);try{s=await t.default.readdir(o,{withFileTypes:!0})}catch{continue}for(let e of s.filter(e=>e.isDirectory()).map(e=>e.name).sort().reverse()){let s,c=i.default.join(o,e);try{s=await t.default.readdir(c,{withFileTypes:!0})}catch{continue}for(let o of s.filter(e=>e.isDirectory()).map(e=>e.name).sort().reverse()){let s;if(Number.isFinite(l)&&n-new Date(`${a}-${e}-${o}T23:59:59Z`).getTime()>l)continue;let u=i.default.join(c,o);try{s=await t.default.readdir(u)}catch{continue}for(let e of s)e.endsWith(".jsonl")&&r.push(i.default.join(u,e))}}}return r}async function _(){try{let{stdout:e}=await m("pgrep -l -i codex");return e.trim().split("\n").filter(Boolean).map(e=>{let[t,...i]=e.trim().split(/\s+/);return{pid:Number(t),name:i.join(" ").toLowerCase()}})}catch{return[]}}async function w(e){let i=await t.default.readFile(e,"utf-8"),l={meta:null,model:null,cwd:null,sessionTitle:null,lastText:null,lastTextRole:null,toolSet:new Set,toolInvocations:[],recentLogs:[],activeTool:null,currentCommand:null,tokens:null,startedAt:null,lastTimestamp:null,openTurn:!1,error:null,isLooping:!1};for(let e of i.split("\n")){let t;if(!e.trim())continue;try{t=JSON.parse(e)}catch{continue}let i=t.timestamp?new Date(t.timestamp).getTime():null;i&&(!l.lastTimestamp||i>l.lastTimestamp)&&(l.lastTimestamp=i);let s=t.payload||("message"===t.type||t.role?t:null);if(!s)continue;let r=t.type||s.type;if("session_meta"===r){l.meta=s,l.cwd=s.cwd||null,l.startedAt=s.timestamp?new Date(s.timestamp).getTime():null;continue}if("turn_context"===r){s.model&&(l.model=s.model),s.cwd&&!l.cwd&&(l.cwd=s.cwd);continue}if("response_item"===r||"message"===r){let e=s.type||(s.role?"message":null);if("message"===e){var n;let e=s.role;if("user"!==e&&"assistant"!==e)continue;let i=s.internal_chat_message_metadata_passthrough?.content_item_kinds;if("user"===e&&Array.isArray(i)&&!i.includes("user.text"))continue;let r="string"==typeof(n=s.content)?g(n):Array.isArray(n)?g(n.map(e=>"string"==typeof e?.text?e.text:"").filter(Boolean).join(" ")):null;if(!r)continue;if(!l.cwd){let e=r.match(/<cwd>(.*?)<\/cwd>/);e&&(l.cwd=e[1])}if("user"===e&&/^(# AGENTS\.md instructions|<INSTRUCTIONS>|<permissions instructions>|<model_switch>)/i.test(r))continue;"user"===e?(l.sessionTitle||=g(r,80),l.lastText=r,l.lastTextRole="user",l.recentLogs.push({timestamp:t.timestamp||new Date().toISOString(),type:"prompt",summary:"User Prompt",detail:g(r,100)})):(l.lastText=r,l.lastTextRole="assistant");continue}if("function_call"===e||"local_shell_call"===e||"custom_tool_call"===e){let e={};if("string"==typeof s.arguments)try{e=JSON.parse(s.arguments)}catch{e={}}else s.arguments&&"object"==typeof s.arguments&&(e=s.arguments);let n=s.name||s.tool||"tool",{type:r,detail:a}=f(n,e);l.toolSet.add(r||n.toLowerCase()),l.activeTool=r,l.currentCommand=a||n;let o=i||Date.now();l.toolInvocations.push({name:n,detail:a||n,time:o}),l.recentLogs.push({timestamp:t.timestamp||new Date().toISOString(),type:r||"tool",summary:n,detail:a||n});continue}if("function_call_output"===e){let e="string"==typeof s.output?s.output:JSON.stringify(s.output||"");(e.includes("error:")||e.includes("failed")||e.includes("Error:"))&&l.recentLogs.push({timestamp:t.timestamp||new Date().toISOString(),type:"error",summary:"Tool Error",detail:g(e,100)})}continue}if("event_msg"===t.type){if("token_count"===s.type){let e=s.info?.total_token_usage;e&&Number.isFinite(e.total_tokens)&&(l.tokens=e);continue}if("task_started"===s.type){l.openTurn=!0,l.error=null;continue}"task_complete"===s.type&&(l.openTurn=!1,s.error?.message&&(l.error=String(s.error.message).slice(0,200),l.recentLogs.push({timestamp:t.timestamp||new Date().toISOString(),type:"error",summary:"Task Complete Error",detail:l.error})))}}if(l.toolInvocations.length>=5){let e=l.toolInvocations.slice(-10);for(let t=0;t<=e.length-5;t++){let i=e.slice(t,t+5),n=`${i[0].name}:${i[0].detail}`,s=i.every(e=>`${e.name}:${e.detail}`===n),r=(i[i.length-1].time||0)-(i[0].time||0);if(s&&(r<=6e4||0===r)){l.isLooping=!0;break}}}return l.recentLogs.length>25&&(l.recentLogs=l.recentLogs.slice(-25)),l}async function T(e=864e5){let s=Date.now(),r=i.default.join(l.default.homedir(),".codex","sessions"),a=[];try{await t.default.readdir(r,{withFileTypes:!0})}catch{return a}let o=await y(r,e,s),c=(await _()).length>0,u=[];for(let i of o)try{let l=await t.default.stat(i),n=s-l.mtimeMs;if(n>e)continue;u.push({filePath:i,stat:l,ageMs:n,mtime:l.mtimeMs})}catch{}for(let{filePath:e,stat:t,ageMs:l}of(u.sort((e,t)=>t.mtime-e.mtime),u.slice(0,100)))try{var d;let t=await w(e);if(!t.cwd&&!t.model&&!t.tokens&&!t.sessionTitle)continue;let s=i.default.basename(e,".jsonl").replace(/^rollout-[\d-T]+-/,""),r=t.meta?.session_id||t.meta?.id||s,{clientType:o,label:u}=h(t.meta?.originator,t.meta?.source),p=((d=t.cwd)?i.default.basename(d):null)||u,m="done";t.isLooping||t.openTurn?m="streaming":t.error&&l>9e5?m="error":c&&l<9e5?m=l<45e3?"streaming":"idle":l<6e4?m="idle":t.error&&(m="error");let g=t.tokens,f=t.startedAt&&t.lastTimestamp?Math.max(0,t.lastTimestamp-t.startedAt):null;a.push(n({traceId:`codex-${r.slice(0,8)}`,cli:"codex",clientType:o,source:o,connectionId:`${u} (${r.slice(0,6)})`,account:p,model:t.model||null,provider:"openai (codex)",state:m,startedAt:t.startedAt,elapsedMs:f,tokens:g?{input:g.input_tokens??null,output:g.output_tokens??null,cached:g.cached_input_tokens??null}:{input:null,output:null,cached:null},cost:null,status:t.error?"error":null,tools:Array.from(t.toolSet),activeTool:t.activeTool||(t.toolSet.size>0?Array.from(t.toolSet)[0]:null),currentCommand:t.currentCommand||null,sessionTitle:t.sessionTitle||p,lastText:t.lastText,lastTextRole:t.lastTextRole,error:t.error,isLooping:t.isLooping,logs:t.recentLogs}))}catch{}return a.sort((e,t)=>(t.startedAt||0)-(e.startedAt||0)),a}e.s(["n",0,h,"J",0,T,"L",0,f],76307)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0dw97_pahi8uf._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/watchers/antigravityWatcher.js","../../../src/lib/traceContract.js","../../../src/lib/watchers/codexWatcher.js"],"sourcesContent":["import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport os from \"node:os\";\nimport { normalizeTrace } from \"../traceContract.js\";\n\nconst TOOL_MAP = {\n view_file: \"read\",\n read_file: \"read\",\n replace_file_content: \"edit\",\n write_to_file: \"edit\",\n call_mcp_tool: \"mcp\",\n list_resources: \"mcp\",\n invoke_subagent: \"agent\",\n grep_search: \"search\",\n list_dir: \"read\",\n find_by_name: \"read\",\n define_subagent: \"agent\",\n};\n\nfunction normalizeToolCall(tc) {\n if (!tc || !tc.name) return { type: \"mcp\", detail: null };\n const name = tc.name;\n const args = tc.args || {};\n\n // 1. MCP Tools inspection\n if (name === \"call_mcp_tool\") {\n const srv = String(args.ServerName || \"\").toLowerCase();\n const tool = String(args.ToolName || \"\").toLowerCase();\n if (srv.includes(\"gitnexus\") || tool.includes(\"cypher\") || tool.includes(\"pdg_query\") || tool.includes(\"impact\")) {\n return { type: \"gitnexus\", detail: `GitNexus: ${tool}` };\n }\n if (srv.includes(\"playwright\") || srv.includes(\"browser\") || tool.startsWith(\"browser_\")) {\n return { type: \"browser\", detail: `Browser: ${tool}` };\n }\n return { type: \"mcp\", detail: `MCP: ${srv}/${tool}` };\n }\n\n // 2. Terminal commands inspection\n if (name === \"run_command\") {\n const cmd = String(args.CommandLine || \"\").trim();\n const cmdLower = cmd.toLowerCase();\n if (cmdLower.startsWith(\"docker\") || cmdLower.includes(\"docker exec\") || cmdLower.includes(\"docker-compose\")) {\n return { type: \"docker\", detail: cmd.length > 50 ? `${cmd.slice(0, 47)}...` : cmd };\n }\n if (cmdLower.startsWith(\"git \") || cmdLower.startsWith(\"gh \") || cmdLower.includes(\"git commit\") || cmdLower.includes(\"git push\")) {\n return { type: \"git\", detail: cmd.length > 50 ? `${cmd.slice(0, 47)}...` : cmd };\n }\n if (cmdLower.includes(\"gitnexus\")) {\n return { type: \"gitnexus\", detail: cmd.length > 50 ? `${cmd.slice(0, 47)}...` : cmd };\n }\n return { type: \"bash\", detail: cmd.length > 50 ? `${cmd.slice(0, 47)}...` : cmd };\n }\n\n // 3. Native tools mapping\n const mapped = TOOL_MAP[name];\n const target = args.TargetFile || args.AbsolutePath || args.query || \"\";\n const detail = target ? `${name}: ${path.basename(target)}` : name;\n\n if (mapped) return { type: mapped, detail };\n if (name.includes(\"read\") || name.includes(\"find\") || name.includes(\"dir\") || name.includes(\"list\")) return { type: \"read\", detail };\n if (name.includes(\"edit\") || name.includes(\"write\") || name.includes(\"patch\")) return { type: \"edit\", detail };\n if (name.includes(\"search\") || name.includes(\"grep\")) return { type: \"search\", detail };\n if (name.includes(\"agent\") || name.includes(\"message\")) return { type: \"agent\", detail };\n\n return { type: \"mcp\", detail };\n}\n\nexport function extractModelFromTranscript(content) {\n if (!content) return null;\n const match = content.match(/Model Selection` from [^ ]+ to (.*?)(?:\\.\\s+No need|\\.\\s*\\n|<\\/USER_SETTINGS_CHANGE>)/i);\n if (match && match[1]) return match[1].trim();\n const matchFallback = content.match(/Model Selection`? from .*? to ([^\\n<.]+)/i);\n if (matchFallback && matchFallback[1]) return matchFallback[1].trim();\n return null;\n}\n\nexport function normalizeModel(raw) {\n if (!raw) return null;\n const lower = raw.toLowerCase();\n if (lower.includes(\"3.8\") && lower.includes(\"flash\")) return \"gemini-3.8-flash\";\n if (lower.includes(\"3.5\") && lower.includes(\"flash\")) return \"gemini-3.5-flash\";\n if (lower.includes(\"3.8\") && lower.includes(\"pro\")) return \"gemini-3.8-pro\";\n if (lower.includes(\"3.1\") && lower.includes(\"pro\")) return \"gemini-3.1-pro\";\n if (lower.includes(\"2.5\") && lower.includes(\"pro\")) return \"gemini-2.5-pro\";\n if (lower.includes(\"2.5\") && lower.includes(\"flash\")) return \"gemini-2.5-flash\";\n if (lower.includes(\"sonnet\") && lower.includes(\"5.5\")) return \"claude-sonnet-5.5\";\n if (lower.includes(\"sonnet\") && lower.includes(\"3.7\")) return \"claude-3.7-sonnet\";\n if (lower.includes(\"sonnet\") && lower.includes(\"3.5\")) return \"claude-3.5-sonnet\";\n return raw.replace(/[()]/g, \"\").trim().toLowerCase().replace(/\\s+/g, \"-\");\n}\n\nfunction compactText(value, maxLength = 160) {\n const text = String(value || \"\").replace(/\\s+/g, \" \").trim();\n return text ? text.slice(0, maxLength) : null;\n}\n\nfunction getProviderFromModel(modelName, clientType) {\n const model = String(modelName || \"\").toLowerCase();\n let provider = null;\n if (model.includes(\"gemini\")) provider = \"gemini\";\n else if (model.includes(\"claude\")) provider = \"anthropic\";\n else if (model.includes(\"gpt\") || model.includes(\"o1\") || model.includes(\"o3\")) provider = \"openai\";\n else if (model.includes(\"minimax\")) provider = \"minimax\";\n else if (model.includes(\"deepseek\")) provider = \"deepseek\";\n return provider ? `${provider} (${clientType})` : null;\n}\n\nfunction cleanUserPrompt(content) {\n if (!content) return null;\n let text = String(content);\n // If there are explicit <USER_REQUEST> tags, extract the actual user request\n const userRequestMatches = [...text.matchAll(/<USER_REQUEST>([\\s\\S]*?)<\\/USER_REQUEST>/gi)];\n if (userRequestMatches.length > 0) {\n text = userRequestMatches[userRequestMatches.length - 1][1];\n } else {\n text = text\n .replace(/<CONTEXT_SUMMARY>[\\s\\S]*?<\\/CONTEXT_SUMMARY>/gi, \"\")\n .replace(/<ADDITIONAL_METADATA>[\\s\\S]*?<\\/ADDITIONAL_METADATA>/gi, \"\")\n .replace(/<USER_SETTINGS_CHANGE>[\\s\\S]*?<\\/USER_SETTINGS_CHANGE>/gi, \"\")\n .replace(/<system-reminder>[\\s\\S]*?<\\/system-reminder>/gi, \"\");\n }\n return compactText(text);\n}\n\nasync function discoverAntigravityBrainDirs() {\n const homeDir = os.homedir();\n const geminiDir = path.join(homeDir, \".gemini\");\n const discovered = [];\n const seen = new Set();\n\n const addDir = (dirPath, defaultSource) => {\n if (seen.has(dirPath)) return;\n seen.add(dirPath);\n discovered.push({ dir: dirPath, source: defaultSource });\n };\n\n // 1. Standard paths\n addDir(path.join(geminiDir, \"antigravity-cli\", \"brain\"), \"cli\");\n addDir(path.join(geminiDir, \"antigravity\", \"brain\"), \"app\");\n addDir(path.join(geminiDir, \"antigravity-ide\", \"brain\"), \"ide\");\n\n // 2. Dynamic discovery of any sibling folders in ~/.gemini\n try {\n const entries = await fs.readdir(geminiDir, { withFileTypes: true });\n for (const ent of entries) {\n if (!ent.isDirectory()) continue;\n const bPath = path.join(geminiDir, ent.name, \"brain\");\n if (seen.has(bPath)) continue;\n try {\n const s = await fs.stat(bPath);\n if (s.isDirectory()) {\n const lower = ent.name.toLowerCase();\n const source = lower.includes(\"ide\") ? \"ide\" : lower.includes(\"app\") || lower === \"antigravity\" ? \"app\" : \"cli\";\n addDir(bPath, source);\n }\n } catch {}\n }\n } catch {}\n\n const validDirs = [];\n for (const item of discovered) {\n try {\n const s = await fs.stat(item.dir);\n if (s.isDirectory()) validDirs.push(item);\n } catch {}\n }\n return validDirs;\n}\n\nexport async function getAntigravityTraces(maxAgeMs = 24 * 60 * 60 * 1000) {\n const homeDir = os.homedir();\n const searchDirs = await discoverAntigravityBrainDirs();\n\n let defaultCliModel = null;\n try {\n const cliSettingsRaw = await fs.readFile(path.join(homeDir, \".gemini\", \"antigravity-cli\", \"settings.json\"), \"utf-8\");\n const cliSettings = JSON.parse(cliSettingsRaw);\n if (cliSettings.model) defaultCliModel = cliSettings.model;\n } catch {}\n\n try {\n const now = Date.now();\n const traces = [];\n const seenConvIds = new Set();\n\n const candidates = [];\n\n for (const { dir: brainDir, source } of searchDirs) {\n let entries;\n try {\n entries = await fs.readdir(brainDir, { withFileTypes: true });\n } catch {\n continue;\n }\n\n for (const ent of entries) {\n if (!ent.isDirectory()) continue;\n const convId = ent.name;\n if (seenConvIds.has(convId)) continue;\n seenConvIds.add(convId);\n const transcriptPath = path.join(brainDir, convId, \".system_generated\", \"logs\", \"transcript.jsonl\");\n\n try {\n const stat = await fs.stat(transcriptPath);\n const mtime = stat.mtimeMs;\n if (now - mtime > maxAgeMs) continue;\n candidates.push({ transcriptPath, mtime, convId, source, stat });\n } catch {}\n }\n }\n\n // Sort candidate transcripts by mtime descending (most recent first)\n candidates.sort((a, b) => b.mtime - a.mtime);\n\n // Limit parsing to the most recent 100 sessions to avoid unbounded disk I/O\n const toProcess = candidates.slice(0, 100);\n\n for (const { transcriptPath, mtime, convId, source, stat } of toProcess) {\n try {\n const content = await fs.readFile(transcriptPath, \"utf-8\");\n const lines = content.trim().split(\"\\n\");\n if (lines.length === 0) continue;\n\n let totalIn = 0;\n let totalOut = 0;\n let totalCached = 0;\n let hasUsage = false;\n let lastToolEntry = null;\n let lastStep = null;\n const toolSet = new Set();\n let firstTime = null;\n let lastTime = null;\n let activeCommandDetail = null;\n let detectedCwd = null;\n let sessionTitle = null;\n let lastText = null;\n let lastTextRole = null;\n const toolInvocations = [];\n const recentLogs = [];\n\n for (const line of lines) {\n if (!line) continue;\n try {\n const entry = JSON.parse(line);\n const entryTime = entry.created_at ? new Date(entry.created_at).getTime() : Date.now();\n if (!firstTime && entry.created_at) firstTime = entryTime;\n if (entry.created_at) lastTime = entryTime;\n\n if (\n Number.isFinite(entry.input_tokens) ||\n Number.isFinite(entry.output_tokens) ||\n Number.isFinite(entry.cache_read_tokens)\n ) {\n hasUsage = true;\n totalIn += entry.input_tokens || 0;\n totalOut += entry.output_tokens || 0;\n totalCached += entry.cache_read_tokens || 0;\n }\n\n if (entry.type === \"USER_INPUT\" && entry.content) {\n const cleanPrompt = cleanUserPrompt(entry.content);\n if (cleanPrompt) {\n sessionTitle ||= compactText(cleanPrompt, 80);\n lastText = cleanPrompt;\n lastTextRole = \"user\";\n recentLogs.push({\n timestamp: entry.created_at || new Date().toISOString(),\n type: \"prompt\",\n summary: \"User Prompt\",\n detail: cleanPrompt.slice(0, 100),\n });\n }\n } else if (entry.type === \"PLANNER_RESPONSE\" && entry.content) {\n const response = compactText(entry.content);\n if (response) {\n lastText = response;\n lastTextRole = \"assistant\";\n }\n }\n\n if (Array.isArray(entry.tool_calls) && entry.tool_calls.length > 0) {\n lastToolEntry = entry;\n for (const tc of entry.tool_calls) {\n if (tc.args?.Cwd && !detectedCwd) detectedCwd = tc.args.Cwd;\n if (!detectedCwd && (tc.args?.TargetFile || tc.args?.AbsolutePath)) {\n const p = tc.args.TargetFile || tc.args.AbsolutePath;\n if (p.includes(\"/Projects/\")) detectedCwd = p.split(\"/\").slice(0, 5).join(\"/\");\n }\n const { type, detail } = normalizeToolCall(tc);\n if (type) toolSet.add(type);\n if (detail) activeCommandDetail = detail;\n\n toolInvocations.push({\n name: tc.name,\n time: entryTime,\n detail: detail || tc.name,\n });\n\n recentLogs.push({\n timestamp: entry.created_at || new Date().toISOString(),\n type: type || \"tool\",\n summary: tc.name,\n detail: detail || tc.name,\n });\n }\n }\n\n if (entry.status === \"ERROR\" || (entry.type === \"GENERIC\" && entry.content && entry.content.includes(\"error\"))) {\n recentLogs.push({\n timestamp: entry.created_at || new Date().toISOString(),\n type: \"error\",\n summary: \"Error\",\n detail: String(entry.content || \"Command failed\").slice(0, 100),\n });\n }\n\n lastStep = entry;\n } catch {\n // ignore malformed line\n }\n }\n\n let state = \"done\";\n if (lastToolEntry?.status === \"RUNNING\") {\n state = \"streaming\";\n } else if (lastStep?.type === \"USER_INPUT\") {\n state = \"pending\";\n } else if (now - mtime < 45 * 1000) {\n state = \"idle\";\n }\n\n // Loop detection: 5 consecutive identical tool calls (same tool and target) within 60s\n let isLooping = false;\n if (toolInvocations.length >= 5) {\n const lastN = toolInvocations.slice(-10);\n for (let s = 0; s <= lastN.length - 5; s++) {\n const window = lastN.slice(s, s + 5);\n const targetKey = `${window[0].name}:${window[0].detail}`;\n const sameCall = window.every((w) => `${w.name}:${w.detail}` === targetKey);\n const timeSpan = (window[window.length - 1].time || 0) - (window[0].time || 0);\n if (sameCall && (timeSpan <= 60000 || timeSpan === 0)) {\n isLooping = true;\n break;\n }\n }\n }\n\n let activeTool = null;\n if (lastToolEntry && Array.isArray(lastToolEntry.tool_calls) && lastToolEntry.tool_calls.length > 0) {\n const lastTc = lastToolEntry.tool_calls[lastToolEntry.tool_calls.length - 1];\n activeTool = normalizeToolCall(lastTc).type;\n }\n\n const elapsedMs = (lastTime && firstTime) ? Math.max(0, lastTime - firstTime) : (now - mtime);\n const rawFolder = detectedCwd ? path.basename(detectedCwd) : `agy-${convId.slice(0, 6)}`;\n const folderName = rawFolder.replace(/[\"'\\\\]/g, \"\").trim();\n\n seenConvIds.add(convId);\n const clientType = source === \"app\" ? \"app\" : source === \"ide\" ? \"ide\" : \"cli\";\n const appLabel = source === \"app\" ? \"Antigravity App\" : source === \"ide\" ? \"Antigravity IDE\" : \"Antigravity\";\n const rawModel = extractModelFromTranscript(content) || (source === \"cli\" ? defaultCliModel : null);\n const modelName = normalizeModel(rawModel);\n const providerName = getProviderFromModel(modelName, clientType);\n\n const fallbackWorkspace = path.basename(process.cwd()) || \"agent-factory\";\n const finalAccount = folderName || fallbackWorkspace;\n const finalSessionTitle = sessionTitle || finalAccount;\n\n traces.push(normalizeTrace({\n traceId: `agy-${convId.slice(0, 8)}`,\n cli: \"antigravity\",\n clientType,\n source,\n connectionId: `${appLabel} (${convId.slice(0, 6)})`,\n account: finalAccount,\n model: modelName,\n provider: providerName,\n state,\n startedAt: firstTime || (now - elapsedMs),\n elapsedMs,\n tokens: {\n input: hasUsage ? totalIn : null,\n output: hasUsage ? totalOut : null,\n cached: hasUsage ? totalCached : null,\n },\n cost: null,\n status: isLooping ? \"error\" : null,\n tools: Array.from(toolSet),\n activeTool,\n currentCommand: activeCommandDetail,\n sessionTitle: finalSessionTitle,\n lastText,\n lastTextRole,\n isLooping,\n logs: recentLogs.slice(-25),\n }));\n } catch {\n // file missing or unreadable\n }\n }\n\n // Sort: active (streaming/pending) first, then by most recent startedAt\n traces.sort((a, b) => {\n const activeA = (a.state === \"streaming\" || a.state === \"pending\") ? 1 : 0;\n const activeB = (b.state === \"streaming\" || b.state === \"pending\") ? 1 : 0;\n if (activeA !== activeB) return activeB - activeA;\n return (b.startedAt || 0) - (a.startedAt || 0);\n });\n\n return traces;\n } catch {\n return [];\n }\n}\n","/**\n * Standard Trace Contract for Agent Factory.\n * All watchers normalize their session logs into this uniform schema.\n */\n\nexport function normalizeTrace(raw) {\n const tokens = raw.tokens || {};\n const asNumberOrNull = (value) => (Number.isFinite(value) ? Number(value) : null);\n const inputTokens = asNumberOrNull(tokens.input);\n const outputTokens = asNumberOrNull(tokens.output);\n const cachedTokens = asNumberOrNull(tokens.cached);\n const explicitTotal = asNumberOrNull(raw.totalTokens ?? tokens.total);\n const totalTokens = explicitTotal ?? (\n inputTokens !== null && outputTokens !== null && cachedTokens !== null\n ? inputTokens + outputTokens + cachedTokens\n : null\n );\n const lowerConn = String(raw.connectionId || \"\").toLowerCase();\n const clientType = raw.clientType || (\n raw.source === \"app\" || lowerConn.includes(\"app\") ? \"app\" :\n raw.source === \"extension\" || lowerConn.includes(\"extension\") || raw.source === \"ide\" || lowerConn.includes(\"ide\") ? \"extension\" : \"cli\"\n );\n return {\n traceId: String(raw.traceId || `trace-${Math.random().toString(36).slice(2, 9)}`),\n cli: raw.cli || \"agent\", // \"antigravity\" | \"claude\" | \"cursor\" | etc.\n clientType, // \"app\" | \"cli\" | \"ide\" | \"extension\" | \"desktop\"\n source: raw.source || clientType,\n connectionId: String(raw.connectionId || \"Agent Desk\"),\n account: String(raw.account || \"Default Workspace\"),\n model: raw.model ? String(raw.model) : null,\n provider: raw.provider ? String(raw.provider).toLowerCase() : null,\n state: [\"streaming\", \"pending\", \"idle\", \"done\", \"error\"].includes(raw.state) ? raw.state : \"idle\",\n startedAt: typeof raw.startedAt === \"number\" ? raw.startedAt : null,\n elapsedMs: typeof raw.elapsedMs === \"number\" ? raw.elapsedMs : null,\n tokens: {\n input: inputTokens,\n output: outputTokens,\n cached: cachedTokens,\n },\n totalTokens,\n cost: asNumberOrNull(raw.cost),\n status: raw.status ? String(raw.status) : null,\n tools: Array.isArray(raw.tools) ? raw.tools : [],\n activeTool: raw.activeTool || null,\n currentCommand: raw.currentCommand || null,\n sessionTitle: raw.sessionTitle ? String(raw.sessionTitle) : null,\n lastText: raw.lastText ? String(raw.lastText) : null,\n lastTextRole: [\"user\", \"assistant\"].includes(raw.lastTextRole) ? raw.lastTextRole : null,\n error: raw.error ? String(raw.error) : null,\n isLooping: Boolean(raw.isLooping || false),\n logs: Array.isArray(raw.logs) ? raw.logs : [],\n };\n}\n\nexport function extractProviders(traces) {\n const seen = new Set();\n const list = [];\n for (const t of traces) {\n const p = (t.provider || \"other\").toLowerCase();\n if (!seen.has(p)) {\n seen.add(p);\n list.push({\n provider: p,\n name: p.charAt(0).toUpperCase() + p.slice(1),\n });\n }\n }\n return list;\n}\n","import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport os from \"node:os\";\nimport { exec } from \"node:child_process\";\nimport { promisify } from \"node:util\";\nimport { normalizeTrace } from \"../traceContract.js\";\n\nconst execAsync = promisify(exec);\n\n/**\n * Codex (OpenAI) stores one rollout file per session under\n * ~/.codex/sessions/<YYYY>/<MM>/<DD>/rollout-<timestamp>-<uuid>.jsonl\n *\n * Rollout entries are `{ type, timestamp, payload }` where `type` is one of\n * `session_meta`, `turn_context`, `response_item`, `event_msg`, `world_state`.\n */\n\nfunction compactText(value, maxLength = 160) {\n const text = String(value || \"\").replace(/\\s+/g, \" \").trim();\n return text ? text.slice(0, maxLength) : null;\n}\n\nfunction textFromContent(content) {\n if (typeof content === \"string\") return compactText(content);\n if (!Array.isArray(content)) return null;\n const joined = content\n .map((block) => (typeof block?.text === \"string\" ? block.text : \"\"))\n .filter(Boolean)\n .join(\" \");\n return compactText(joined);\n}\n\n/**\n * Normalizes tool name and command/args from OpenAI Codex into a standard tool type.\n */\nexport function normalizeCodexTool(name, args = {}) {\n const n = String(name || \"\").toLowerCase();\n const cmd = String(args.cmd || args.command || \"\").trim();\n const cmdLower = cmd.toLowerCase();\n\n if (n === \"exec_command\" || n === \"local_shell_call\" || n === \"bash\" || n === \"shell\") {\n if (cmdLower.startsWith(\"docker\") || cmdLower.includes(\"docker exec\")) {\n return { type: \"docker\", detail: cmd.length > 50 ? `${cmd.slice(0, 47)}...` : cmd };\n }\n if (cmdLower.startsWith(\"git \") || cmdLower.startsWith(\"gh \")) {\n return { type: \"git\", detail: cmd.length > 50 ? `${cmd.slice(0, 47)}...` : cmd };\n }\n if (cmdLower.includes(\"gitnexus\")) {\n return { type: \"gitnexus\", detail: cmd.length > 50 ? `${cmd.slice(0, 47)}...` : cmd };\n }\n if (cmdLower.startsWith(\"rg \") || cmdLower.startsWith(\"grep \")) {\n return { type: \"search\", detail: cmd.length > 50 ? `${cmd.slice(0, 47)}...` : cmd };\n }\n if (/^(cat|sed|head|tail|ls|find)\\b/.test(cmdLower)) {\n return { type: \"read\", detail: cmd.length > 50 ? `${cmd.slice(0, 47)}...` : cmd };\n }\n return { type: \"bash\", detail: cmd.length > 50 ? `${cmd.slice(0, 47)}...` : cmd };\n }\n\n if (n === \"apply_patch\" || n === \"patch\" || n.includes(\"write\") || n.includes(\"edit\") || n.includes(\"replace\")) {\n const file = args.file_path || args.path || args.TargetFile || \"\";\n return { type: \"edit\", detail: file ? `Edit: ${path.basename(file)}` : \"Edit file\" };\n }\n\n if (n.includes(\"read\") || n.includes(\"view\") || n.includes(\"glob\")) {\n const file = args.file_path || args.path || args.AbsolutePath || \"\";\n return { type: \"read\", detail: file ? `Read: ${path.basename(file)}` : \"Read file\" };\n }\n\n if (n.includes(\"search\") || n.includes(\"grep\") || n.includes(\"find\")) {\n return { type: \"search\", detail: args.pattern || args.query || \"Search\" };\n }\n\n if (n.includes(\"spawn_agent\") || n.includes(\"followup_task\") || n.includes(\"agent\")) {\n return { type: \"agent\", detail: \"Subagent Task\" };\n }\n\n if (n.includes(\"browser\") || n.includes(\"playwright\")) {\n return { type: \"browser\", detail: \"Browser automation\" };\n }\n\n if (n.includes(\"web\") || n.includes(\"fetch\")) {\n return { type: \"web\", detail: \"Web fetch\" };\n }\n\n return { type: \"mcp\", detail: n };\n}\n\n/**\n * Classifies Codex surface into:\n * - Desktop App: `clientType: \"desktop\", label: \"Codex Desktop\"`\n * - CLI: `clientType: \"cli\", label: \"Codex CLI\"`\n * - VS Code Extension: `clientType: \"extension\", label: \"Codex Extension\"`\n *\n * @returns {{ clientType: string, label: string }}\n */\nexport function classifyCodexSession(originator, source) {\n const org = String(originator || \"\").toLowerCase();\n const src = String(source || \"\").toLowerCase();\n\n if (\n org.includes(\"desktop\") ||\n org === \"codex_app\" ||\n org === \"codex-app\" ||\n org === \"codex_app_server\" ||\n src === \"desktop\" ||\n src === \"app\"\n ) {\n return { clientType: \"desktop\", label: \"Codex Desktop\" };\n }\n\n if (org.includes(\"vscode\") || src === \"vscode\") {\n return { clientType: \"extension\", label: \"Codex Extension\" };\n }\n\n return { clientType: \"cli\", label: \"Codex CLI\" };\n}\n\nfunction extractWorkspace(cwd) {\n return cwd ? path.basename(cwd) : null;\n}\n\n/** Scans ~/.codex/sessions/<YYYY>/<MM>/<DD> directories for .jsonl rollout files within maxAgeMs */\nasync function scanCodexRolloutFiles(sessionsRoot, maxAgeMs, now) {\n const files = [];\n let years;\n try {\n years = await fs.readdir(sessionsRoot, { withFileTypes: true });\n } catch {\n return files;\n }\n\n const yearDirs = years.filter((d) => d.isDirectory()).map((d) => d.name).sort().reverse();\n for (const year of yearDirs) {\n const yearPath = path.join(sessionsRoot, year);\n let months;\n try {\n months = await fs.readdir(yearPath, { withFileTypes: true });\n } catch {\n continue;\n }\n const monthDirs = months.filter((d) => d.isDirectory()).map((d) => d.name).sort().reverse();\n\n for (const month of monthDirs) {\n const monthPath = path.join(yearPath, month);\n let days;\n try {\n days = await fs.readdir(monthPath, { withFileTypes: true });\n } catch {\n continue;\n }\n const dayDirs = days.filter((d) => d.isDirectory()).map((d) => d.name).sort().reverse();\n\n for (const day of dayDirs) {\n if (Number.isFinite(maxAgeMs)) {\n const dayDate = new Date(`${year}-${month}-${day}T23:59:59Z`).getTime();\n if (now - dayDate > maxAgeMs) continue;\n }\n\n const dayPath = path.join(monthPath, day);\n let entries;\n try {\n entries = await fs.readdir(dayPath);\n } catch {\n continue;\n }\n\n for (const name of entries) {\n if (name.endsWith(\".jsonl\")) files.push(path.join(dayPath, name));\n }\n }\n }\n }\n\n return files;\n}\n\nasync function getRunningCodexProcesses() {\n try {\n const { stdout } = await execAsync(\"pgrep -l -i codex\");\n const lines = stdout.trim().split(\"\\n\").filter(Boolean);\n return lines.map((line) => {\n const [pidStr, ...rest] = line.trim().split(/\\s+/);\n return { pid: Number(pidStr), name: rest.join(\" \").toLowerCase() };\n });\n } catch {\n return [];\n }\n}\n\nexport async function parseCodexRollout(filePath) {\n const raw = await fs.readFile(filePath, \"utf-8\");\n\n const result = {\n meta: null,\n model: null,\n cwd: null,\n sessionTitle: null,\n lastText: null,\n lastTextRole: null,\n toolSet: new Set(),\n toolInvocations: [],\n recentLogs: [],\n activeTool: null,\n currentCommand: null,\n tokens: null,\n startedAt: null,\n lastTimestamp: null,\n openTurn: false,\n error: null,\n isLooping: false,\n };\n\n for (const line of raw.split(\"\\n\")) {\n if (!line.trim()) continue;\n let entry;\n try {\n entry = JSON.parse(line);\n } catch {\n continue;\n }\n\n const ts = entry.timestamp ? new Date(entry.timestamp).getTime() : null;\n if (ts && (!result.lastTimestamp || ts > result.lastTimestamp)) result.lastTimestamp = ts;\n\n const payload = entry.payload || (entry.type === \"message\" || entry.role ? entry : null);\n if (!payload) continue;\n\n const entryType = entry.type || payload.type;\n\n if (entryType === \"session_meta\") {\n result.meta = payload;\n result.cwd = payload.cwd || null;\n result.startedAt = payload.timestamp ? new Date(payload.timestamp).getTime() : null;\n continue;\n }\n\n if (entryType === \"turn_context\") {\n if (payload.model) result.model = payload.model;\n if (payload.cwd && !result.cwd) result.cwd = payload.cwd;\n continue;\n }\n\n if (entryType === \"response_item\" || entryType === \"message\") {\n const type = payload.type || (payload.role ? \"message\" : null);\n\n if (type === \"message\") {\n const role = payload.role;\n if (role !== \"user\" && role !== \"assistant\") continue;\n\n // Filter out synthetic injected instructions\n const kinds = payload.internal_chat_message_metadata_passthrough?.content_item_kinds;\n if (role === \"user\" && Array.isArray(kinds) && !kinds.includes(\"user.text\")) continue;\n\n const text = textFromContent(payload.content);\n if (!text) continue;\n\n if (!result.cwd) {\n const mCwd = text.match(/<cwd>(.*?)<\\/cwd>/);\n if (mCwd) result.cwd = mCwd[1];\n }\n if (role === \"user\" && /^(# AGENTS\\.md instructions|<INSTRUCTIONS>|<permissions instructions>|<model_switch>)/i.test(text)) continue;\n\n if (role === \"user\") {\n result.sessionTitle ||= compactText(text, 80);\n result.lastText = text;\n result.lastTextRole = \"user\";\n result.recentLogs.push({\n timestamp: entry.timestamp || new Date().toISOString(),\n type: \"prompt\",\n summary: \"User Prompt\",\n detail: compactText(text, 100),\n });\n } else {\n result.lastText = text;\n result.lastTextRole = \"assistant\";\n }\n continue;\n }\n\n if (type === \"function_call\" || type === \"local_shell_call\" || type === \"custom_tool_call\") {\n let args = {};\n if (typeof payload.arguments === \"string\") {\n try {\n args = JSON.parse(payload.arguments);\n } catch {\n args = {};\n }\n } else if (payload.arguments && typeof payload.arguments === \"object\") {\n args = payload.arguments;\n }\n\n const name = payload.name || payload.tool || \"tool\";\n const { type: toolType, detail } = normalizeCodexTool(name, args);\n\n result.toolSet.add(toolType || name.toLowerCase());\n result.activeTool = toolType;\n result.currentCommand = detail || name;\n\n const entryTime = ts || Date.now();\n result.toolInvocations.push({\n name,\n detail: detail || name,\n time: entryTime,\n });\n\n result.recentLogs.push({\n timestamp: entry.timestamp || new Date().toISOString(),\n type: toolType || \"tool\",\n summary: name,\n detail: detail || name,\n });\n continue;\n }\n\n if (type === \"function_call_output\") {\n const outText = typeof payload.output === \"string\" ? payload.output : JSON.stringify(payload.output || \"\");\n if (outText.includes(\"error:\") || outText.includes(\"failed\") || outText.includes(\"Error:\")) {\n result.recentLogs.push({\n timestamp: entry.timestamp || new Date().toISOString(),\n type: \"error\",\n summary: \"Tool Error\",\n detail: compactText(outText, 100),\n });\n }\n }\n continue;\n }\n\n if (entry.type === \"event_msg\") {\n if (payload.type === \"token_count\") {\n const usage = payload.info?.total_token_usage;\n if (usage && Number.isFinite(usage.total_tokens)) {\n result.tokens = usage;\n }\n continue;\n }\n if (payload.type === \"task_started\") {\n result.openTurn = true;\n result.error = null;\n continue;\n }\n if (payload.type === \"task_complete\") {\n result.openTurn = false;\n if (payload.error?.message) {\n result.error = String(payload.error.message).slice(0, 200);\n result.recentLogs.push({\n timestamp: entry.timestamp || new Date().toISOString(),\n type: \"error\",\n summary: \"Task Complete Error\",\n detail: result.error,\n });\n }\n }\n }\n }\n\n // Loop detection: 5 consecutive identical tool calls within 60s\n if (result.toolInvocations.length >= 5) {\n const lastN = result.toolInvocations.slice(-10);\n for (let s = 0; s <= lastN.length - 5; s++) {\n const window = lastN.slice(s, s + 5);\n const targetKey = `${window[0].name}:${window[0].detail}`;\n const sameCall = window.every((w) => `${w.name}:${w.detail}` === targetKey);\n const timeSpan = (window[window.length - 1].time || 0) - (window[0].time || 0);\n if (sameCall && (timeSpan <= 60000 || timeSpan === 0)) {\n result.isLooping = true;\n break;\n }\n }\n }\n\n // Cap recent logs to max 25 entries for performance\n if (result.recentLogs.length > 25) {\n result.recentLogs = result.recentLogs.slice(-25);\n }\n\n return result;\n}\n\nexport async function getCodexTraces(maxAgeMs = 24 * 60 * 60 * 1000) {\n const now = Date.now();\n const sessionsRoot = path.join(os.homedir(), \".codex\", \"sessions\");\n const traces = [];\n\n let yearDirs;\n try {\n yearDirs = await fs.readdir(sessionsRoot, { withFileTypes: true });\n } catch {\n return traces;\n }\n\n const candidateFiles = await scanCodexRolloutFiles(sessionsRoot, maxAgeMs, now);\n const runningProcs = await getRunningCodexProcesses();\n const hasRunningCodex = runningProcs.length > 0;\n\n // Stat candidate files and sort by mtime descending (most recent first)\n const candidateStats = [];\n for (const filePath of candidateFiles) {\n try {\n const stat = await fs.stat(filePath);\n const ageMs = now - stat.mtimeMs;\n if (ageMs > maxAgeMs) continue;\n candidateStats.push({ filePath, stat, ageMs, mtime: stat.mtimeMs });\n } catch {}\n }\n\n candidateStats.sort((a, b) => b.mtime - a.mtime);\n const toProcess = candidateStats.slice(0, 100);\n\n for (const { filePath, stat, ageMs } of toProcess) {\n try {\n const parsed = await parseCodexRollout(filePath);\n // Skip files that carry no cwd, model, tokens, or title\n if (!parsed.cwd && !parsed.model && !parsed.tokens && !parsed.sessionTitle) continue;\n\n const rawBase = path.basename(filePath, \".jsonl\");\n const cleanBase = rawBase.replace(/^rollout-[\\d-T]+-/, \"\");\n const sessionId = parsed.meta?.session_id || parsed.meta?.id || cleanBase;\n const { clientType, label } = classifyCodexSession(parsed.meta?.originator, parsed.meta?.source);\n const workspace = extractWorkspace(parsed.cwd) || label;\n\n let state = \"done\";\n if (parsed.isLooping) {\n state = \"streaming\";\n } else if (parsed.openTurn) {\n state = \"streaming\";\n } else if (parsed.error && ageMs > 15 * 60 * 1000) {\n state = \"error\";\n } else if (hasRunningCodex && ageMs < 15 * 60 * 1000) {\n state = ageMs < 45_000 ? \"streaming\" : \"idle\";\n } else if (ageMs < 60_000) {\n state = \"idle\";\n } else if (parsed.error) {\n state = \"error\";\n }\n\n const usage = parsed.tokens;\n const elapsedMs =\n parsed.startedAt && parsed.lastTimestamp\n ? Math.max(0, parsed.lastTimestamp - parsed.startedAt)\n : null;\n\n traces.push(normalizeTrace({\n traceId: `codex-${sessionId.slice(0, 8)}`,\n cli: \"codex\",\n clientType,\n source: clientType,\n connectionId: `${label} (${sessionId.slice(0, 6)})`,\n account: workspace,\n model: parsed.model || null,\n provider: \"openai (codex)\",\n state,\n startedAt: parsed.startedAt,\n elapsedMs,\n tokens: usage\n ? {\n input: usage.input_tokens ?? null,\n output: usage.output_tokens ?? null,\n cached: usage.cached_input_tokens ?? null,\n }\n : { input: null, output: null, cached: null },\n cost: null,\n status: parsed.error ? \"error\" : null,\n tools: Array.from(parsed.toolSet),\n activeTool: parsed.activeTool || (parsed.toolSet.size > 0 ? Array.from(parsed.toolSet)[0] : null),\n currentCommand: parsed.currentCommand || null,\n sessionTitle: parsed.sessionTitle || workspace,\n lastText: parsed.lastText,\n lastTextRole: parsed.lastTextRole,\n error: parsed.error,\n isLooping: parsed.isLooping,\n logs: parsed.recentLogs,\n }));\n } catch {\n // unreadable rollout\n }\n }\n\n traces.sort((a, b) => (b.startedAt || 0) - (a.startedAt || 0));\n return traces;\n}"],"names":["normalizeTrace","raw","tokens","asNumberOrNull","value","Number","isFinite","inputTokens","input","outputTokens","output","cachedTokens","cached","explicitTotal","totalTokens","total","lowerConn","String","connectionId","toLowerCase","clientType","source","includes","traceId","Math","random","toString","slice","cli","account","model","provider","state","startedAt","elapsedMs","cost","status","tools","Array","isArray","activeTool","currentCommand","sessionTitle","lastText","lastTextRole","error","isLooping","Boolean","logs","extractProviders","traces","seen","Set","list","t","p","has","add","push","name","charAt","toUpperCase"],"mappings":"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"}