agmon 0.2.0 → 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.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-manifest.json +8 -8
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +15 -13
- package/.next/server/app/_not-found.segments/_full.segment.rsc +15 -13
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +8 -6
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/media/route.js.nft.json +1 -1
- package/.next/server/app/api/reports/tokens/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/transcript/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/transcript/route.js.nft.json +1 -1
- package/.next/server/app/api/traces/stream/route.js +1 -1
- package/.next/server/app/api/traces/stream/route.js.nft.json +1 -1
- package/.next/server/app/api/version/route.js.nft.json +1 -1
- package/.next/server/app/api/workspace/file-content/route.js.nft.json +1 -1
- package/.next/server/app/api/workspace/files/route.js.nft.json +1 -1
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +20 -19
- package/.next/server/app/chat.segments/_full.segment.rsc +20 -19
- package/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +22 -20
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +20 -18
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +10 -9
- package/.next/server/app/index.segments/_full.segment.rsc +20 -18
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/reports/page.js.nft.json +1 -1
- package/.next/server/app/reports/page_client-reference-manifest.js +1 -1
- package/.next/server/app/reports.html +1 -1
- package/.next/server/app/reports.rsc +4 -4
- package/.next/server/app/reports.segments/_full.segment.rsc +4 -4
- package/.next/server/app/reports.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/reports.segments/reports/__PAGE__.segment.rsc +6 -5
- package/.next/server/app/store/page.js.nft.json +1 -1
- package/.next/server/app/store/page_client-reference-manifest.js +1 -1
- package/.next/server/app/store.html +1 -1
- package/.next/server/app/store.rsc +5 -5
- package/.next/server/app/store.segments/_full.segment.rsc +5 -5
- package/.next/server/app/store.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/store.segments/store/__PAGE__.segment.rsc +7 -6
- package/.next/server/chunks/[root-of-the-server]__0dw97_pahi8uf._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0dw97_pahi8uf._.js.map +1 -0
- package/.next/server/chunks/_0ao-_t4jkb46h._.js +2 -2
- package/.next/server/chunks/_0ao-_t4jkb46h._.js.map +1 -1
- package/.next/server/chunks/_1-8ipqazoyrrk._.js +1 -1
- package/.next/server/chunks/_1-8ipqazoyrrk._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0i2rbwbkxbdog._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0i2rbwbkxbdog._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0qzscpxebh28_._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0qzscpxebh28_._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1jwplflwix8wi._.js +427 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1jwplflwix8wi._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1kt7h7bz59mdn._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1kt7h7bz59mdn._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1otsvjy81s8my._.js +427 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1otsvjy81s8my._.js.map +1 -0
- package/.next/server/chunks/ssr/_0e3frtjrk-wi9._.js +3 -0
- package/.next/server/chunks/ssr/_0e3frtjrk-wi9._.js.map +1 -0
- package/.next/server/chunks/ssr/_0h29jdf4relbq._.js +3 -0
- package/.next/server/chunks/ssr/_0h29jdf4relbq._.js.map +1 -0
- package/.next/server/chunks/ssr/_0zel-n0h--cnl._.js +3 -0
- package/.next/server/chunks/ssr/_0zel-n0h--cnl._.js.map +1 -0
- package/.next/server/chunks/ssr/_1487-zi23c5eb._.js +1 -1
- package/.next/server/chunks/ssr/_1487-zi23c5eb._.js.map +1 -1
- package/.next/server/chunks/ssr/_1vgwoe-shb9z7._.js +3 -0
- package/.next/server/chunks/ssr/_1vgwoe-shb9z7._.js.map +1 -0
- package/.next/server/chunks/ssr/_1zm4m-s8k7oe3._.js +3 -0
- package/.next/server/chunks/ssr/_1zm4m-s8k7oe3._.js.map +1 -0
- package/.next/server/chunks/ssr/_202tntue-jj6s._.js +3 -0
- package/.next/server/chunks/ssr/_202tntue-jj6s._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_1wlwrgnt65zus._.js → node_modules_00ebs67b4u61w._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0f773uqgzj7y7._.js → node_modules_01avo0bde3tpo._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0z3elum1675ve._.js → node_modules_01l0208e5kqic._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1c8i3jrmo4393._.js → node_modules_033x29yqle_sj._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1kr1c-ncf8q9t._.js → node_modules_03wbg__aslvui._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_02jwra-d9iqim._.js → node_modules_06mgkab1v5iox._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0z7rdbaf13024._.js → node_modules_08-bqkrz7sh0l._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_13nsmuhey_ti_._.js → node_modules_089w9jm7s2qa3._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0m3ihe65818y_._.js → node_modules_08q6a-f2itxyo._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0__m9_odts7_e._.js → node_modules_0cy47-s63xjzh._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0b8ndnuql44z1._.js → node_modules_0czh0jcnsm5e6._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0fs8mckuwk2tj._.js → node_modules_0e6qoh__e4a69._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_05w7qhtrzvnk6._.js → node_modules_0fv321j1nslkb._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_061uaylfjwqk7._.js → node_modules_0g-wb7h-hsdwc._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1ll-58c1c-qab._.js → node_modules_0hb0q0epwvp--._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0dq0dsblt-q0g._.js → node_modules_0l-y0kqtu_r3o._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1zs2nou5uogby._.js → node_modules_0l814qpw677vm._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1xyxigbqzb8vs._.js → node_modules_0o63z1gd17rhb._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1-sz_-qddwilq._.js → node_modules_0oz_zzlh8exwx._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0oukyh0iq21ow._.js → node_modules_0so2agzqd9p8l._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_12qw2ucebdvol._.js → node_modules_0w2w61b8bh769._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1dff7b_kvngr-._.js → node_modules_0wd6szix_zku7._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0fd1swhk15cx3._.js → node_modules_0wp7omf0xblv8._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0nde84kzuwv2n._.js → node_modules_0yayrqhzfk8wy._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0f4xh33v3iltc._.js → node_modules_0zb0i39mnjdf3._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1iovyom0-y7o_._.js → node_modules_10c51o2qv6mbi._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_02nv3yff2pqh8._.js → node_modules_10g1mmrf63d8a._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0-6sb1gkbjo93._.js → node_modules_152txg4c7ose3._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_12qn4bepdou5v._.js → node_modules_185fuy4cv7loa._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_1-iyhsn_1p9nx._.js → node_modules_19vqq7rvf-_ar._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0hqa9oxz17hip._.js → node_modules_1hd7j-tdb8drq._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1rlnehdn16ay-._.js → node_modules_1hu83gui7_nj2._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_07maxxr-t28ql._.js → node_modules_1i3x2csuq_-jt._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0kovk4b6czb22._.js → node_modules_1j8hpoiygrs5e._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0zc49fdcopqu9._.js → node_modules_1l2g7btuh3e4s._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0t4h1rucl35hl._.js → node_modules_1n4kig4mj6n4s._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0vn0kjn_84lmn._.js → node_modules_1nz3ckv6tu_66._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0-nvg0c4pgfb8._.js → node_modules_1qnypguag6s_l._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1v4lexrfhnlhs._.js → node_modules_1r6w-jlme6d10._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1f4geuvkvlxj1._.js → node_modules_1s8oxeqa5_i3k._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1216007ogd5om._.js → node_modules_1tskcaktx6ods._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_02vtgweceovke._.js → node_modules_1xz1dstlo5ri-._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1kv6lsckqs-m0._.js → node_modules_1zii7uk468cay._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_0bmuudv_6eypr._.js → node_modules_katex_dist_katex_mjs_067omoj5szuys._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_0qyy6pq9uzpk0._.js → node_modules_katex_dist_katex_mjs_1604s1ky8db8u._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_lucide-react_dist_esm_1d8fezw1qsiob._.js → node_modules_lucide-react_dist_esm_0-5bcc79665lq._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_0-5bcc79665lq._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_lucide-react_dist_esm_0pezg1352q13j._.js → node_modules_lucide-react_dist_esm_0axoa1eg51x1-._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_0axoa1eg51x1-._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_lucide-react_dist_esm_131i-tjzse3ye._.js → node_modules_lucide-react_dist_esm_18ei1-na3kusb._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_18ei1-na3kusb._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_lucide-react_dist_esm_1to-9cv1ysvs6._.js → node_modules_lucide-react_dist_esm_1tx493x2_auzs._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_1tx493x2_auzs._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_mermaid_dist_mermaid_core_mjs_06it7ktosm1dr._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_mermaid_dist_mermaid_core_mjs_06it7ktosm1dr._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_page_1vqfk0-j72fp6.js +1 -1
- package/.next/server/chunks/ssr/src_app_page_1vqfk0-j72fp6.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_reports_TokenReportView_jsx_1g3p_enbbsadt._.js +1 -1
- package/.next/server/chunks/ssr/src_components_reports_TokenReportView_jsx_1g3p_enbbsadt._.js.map +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/preview-props.json +3 -3
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/0jo6fy2c_gmqn.js +1 -0
- package/.next/static/chunks/0r9apkv3exqv-.js +1 -0
- package/.next/static/chunks/1n_lb7wmn81jj.js +1 -0
- package/.next/static/chunks/2-w116ewoshm1.js +1 -0
- package/.next/static/chunks/23uup1e8841av.js +1 -0
- package/.next/static/chunks/2q9cwykv6ox1t.css +1 -0
- package/.next/static/chunks/2rx7xvi55ohln.js +1 -0
- package/.next/static/chunks/2zf44j8sjo0w0.js +425 -0
- package/.next/static/chunks/3rtpnpqd981z9.js +1 -0
- package/.next/trace +1 -1
- package/.next/trace-build +1 -1
- package/bin/cli.js +12 -0
- package/package.json +1 -1
- package/src/app/api/traces/stream/route.js +41 -5
- package/src/app/chat/page.js +14 -14
- package/src/app/globals.css +128 -0
- package/src/app/layout.js +8 -2
- package/src/app/page.js +18 -2
- package/src/components/chat/ChatMessageItem.js +12 -12
- package/src/components/chat/CodeBlock.js +5 -5
- package/src/components/chat/DiffViewer.js +27 -27
- package/src/components/chat/MarkdownRenderer.js +19 -19
- package/src/components/chat/SessionChatView.js +42 -42
- package/src/components/chat/SessionSearch.js +8 -8
- package/src/components/chat/ThinkingAccordion.js +3 -3
- package/src/components/chat/ToolCallCard.js +6 -6
- package/src/components/chat/ToolOutputView.js +19 -19
- package/src/components/factory/office-canvas.js +165 -3
- package/src/components/factory/scene/characters.js +267 -32
- package/src/components/layout/BottomPanel.jsx +6 -6
- package/src/components/layout/CommandPalette.jsx +12 -0
- package/src/components/layout/EditorTabs.jsx +17 -0
- package/src/components/layout/LayoutToggles.jsx +31 -2
- package/src/components/layout/LeftSidebar.jsx +88 -6
- package/src/components/layout/RightSidebar.jsx +8 -8
- package/src/components/layout/StatusBar.jsx +1 -1
- package/src/components/layout/TitleBar.jsx +76 -2
- package/src/components/layout/VSCodeWorkbench.jsx +99 -14
- package/src/components/store/Item3DRenderer.jsx +602 -48
- package/src/components/store/LiveFittingRoom.jsx +55 -791
- package/src/components/store/LiveReactAgent.jsx +1637 -0
- package/src/components/store/SupporterStoreModal.jsx +3 -2
- package/src/components/store/SupporterStoreView.jsx +94 -34
- package/src/components/theme/ThemeSettingsModal.jsx +40 -40
- package/src/components/ui/Button.jsx +4 -4
- package/src/components/ui/Input.jsx +1 -1
- package/src/components/ui/Modal.jsx +6 -6
- package/src/components/ui/Select.jsx +3 -3
- package/src/lib/catalog/auras.js +226 -1199
- package/src/lib/catalog/index.js +60 -1
- package/src/lib/catalog/pets.js +291 -2398
- package/src/lib/catalog/props.js +488 -4199
- package/src/lib/catalog/skins.js +773 -3249
- package/src/lib/catalog/trophies.js +226 -1199
- package/src/lib/mockTraces.js +28 -26
- package/src/lib/parsers/codexParser.js +373 -0
- package/src/lib/parsers/transcriptParser.js +35 -3
- package/src/lib/supporterStore.js +1 -1
- package/src/lib/traceContract.js +1 -1
- package/src/lib/useFactoryTraces.js +70 -5
- package/src/lib/watchers/antigravityWatcher.js +15 -1
- package/src/lib/watchers/claudeWatcher.js +86 -70
- package/src/lib/watchers/codexWatcher.js +482 -0
- package/src/lib/watchers/watcherManager.js +46 -30
- package/.next/server/chunks/src_lib_watchers_antigravityWatcher_0w1-atg39y__p.js +0 -3
- package/.next/server/chunks/src_lib_watchers_antigravityWatcher_0w1-atg39y__p.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__19s2v5rryc14o._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__19s2v5rryc14o._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1_jerxrctq6ev._.js +0 -427
- package/.next/server/chunks/ssr/[root-of-the-server]__1_jerxrctq6ev._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1pvso-uyf--97._.js +0 -427
- package/.next/server/chunks/ssr/[root-of-the-server]__1pvso-uyf--97._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1y78dc7oiz7ks._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1y78dc7oiz7ks._.js.map +0 -1
- package/.next/server/chunks/ssr/_0ozao7omdwbvd._.js +0 -3
- package/.next/server/chunks/ssr/_0ozao7omdwbvd._.js.map +0 -1
- package/.next/server/chunks/ssr/_0rcmpdyxc1qwj._.js +0 -3
- package/.next/server/chunks/ssr/_0rcmpdyxc1qwj._.js.map +0 -1
- package/.next/server/chunks/ssr/_0wv0xnhun3mk7._.js +0 -3
- package/.next/server/chunks/ssr/_0wv0xnhun3mk7._.js.map +0 -1
- package/.next/server/chunks/ssr/_17rmaft1zusua._.js +0 -3
- package/.next/server/chunks/ssr/_17rmaft1zusua._.js.map +0 -1
- package/.next/server/chunks/ssr/_1e-d4pcj59a7a._.js +0 -3
- package/.next/server/chunks/ssr/_1e-d4pcj59a7a._.js.map +0 -1
- package/.next/server/chunks/ssr/_1qr5gnh64z8pg._.js +0 -3
- package/.next/server/chunks/ssr/_1qr5gnh64z8pg._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_0pezg1352q13j._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_131i-tjzse3ye._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_1d8fezw1qsiob._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_1to-9cv1ysvs6._.js.map +0 -1
- package/.next/static/chunks/0_3s_e4gd9xl0.js +0 -1
- package/.next/static/chunks/0i4kx4yl-dwfg.js +0 -425
- package/.next/static/chunks/0z0jbobmmvqoc.js +0 -1
- package/.next/static/chunks/1_a_gmob5qzho.js +0 -1
- package/.next/static/chunks/1ifqr4qo4697b.js +0 -1
- package/.next/static/chunks/2ccq9i8ev4dsx.js +0 -1
- package/.next/static/chunks/2mif7onk_9jy-.css +0 -1
- package/.next/static/chunks/40wyf-mv0tiu3.js +0 -1
- /package/.next/server/chunks/ssr/{node_modules_1c8i3jrmo4393._.js.map → node_modules_00ebs67b4u61w._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0f773uqgzj7y7._.js.map → node_modules_01avo0bde3tpo._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0z3elum1675ve._.js.map → node_modules_01l0208e5kqic._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_1wlwrgnt65zus._.js.map → node_modules_033x29yqle_sj._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_1kr1c-ncf8q9t._.js.map → node_modules_03wbg__aslvui._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_02jwra-d9iqim._.js.map → node_modules_06mgkab1v5iox._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0fs8mckuwk2tj._.js.map → node_modules_08-bqkrz7sh0l._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0-6sb1gkbjo93._.js.map → node_modules_089w9jm7s2qa3._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_02vtgweceovke._.js.map → node_modules_08q6a-f2itxyo._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0__m9_odts7_e._.js.map → node_modules_0cy47-s63xjzh._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_02nv3yff2pqh8._.js.map → node_modules_0czh0jcnsm5e6._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0z7rdbaf13024._.js.map → node_modules_0e6qoh__e4a69._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0-nvg0c4pgfb8._.js.map → node_modules_0fv321j1nslkb._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_061uaylfjwqk7._.js.map → node_modules_0g-wb7h-hsdwc._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0t4h1rucl35hl._.js.map → node_modules_0hb0q0epwvp--._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0dq0dsblt-q0g._.js.map → node_modules_0l-y0kqtu_r3o._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0zc49fdcopqu9._.js.map → node_modules_0l814qpw677vm._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_1xyxigbqzb8vs._.js.map → node_modules_0o63z1gd17rhb._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_1-iyhsn_1p9nx._.js.map → node_modules_0oz_zzlh8exwx._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0oukyh0iq21ow._.js.map → node_modules_0so2agzqd9p8l._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_07maxxr-t28ql._.js.map → node_modules_0w2w61b8bh769._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_1dff7b_kvngr-._.js.map → node_modules_0wd6szix_zku7._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0fd1swhk15cx3._.js.map → node_modules_0wp7omf0xblv8._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0nde84kzuwv2n._.js.map → node_modules_0yayrqhzfk8wy._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0f4xh33v3iltc._.js.map → node_modules_0zb0i39mnjdf3._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_1-sz_-qddwilq._.js.map → node_modules_10c51o2qv6mbi._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0b8ndnuql44z1._.js.map → node_modules_10g1mmrf63d8a._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_13nsmuhey_ti_._.js.map → node_modules_152txg4c7ose3._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_12qn4bepdou5v._.js.map → node_modules_185fuy4cv7loa._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_1iovyom0-y7o_._.js.map → node_modules_19vqq7rvf-_ar._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0hqa9oxz17hip._.js.map → node_modules_1hd7j-tdb8drq._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_1rlnehdn16ay-._.js.map → node_modules_1hu83gui7_nj2._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_12qw2ucebdvol._.js.map → node_modules_1i3x2csuq_-jt._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0kovk4b6czb22._.js.map → node_modules_1j8hpoiygrs5e._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_1ll-58c1c-qab._.js.map → node_modules_1l2g7btuh3e4s._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_1zs2nou5uogby._.js.map → node_modules_1n4kig4mj6n4s._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0vn0kjn_84lmn._.js.map → node_modules_1nz3ckv6tu_66._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_05w7qhtrzvnk6._.js.map → node_modules_1qnypguag6s_l._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_1v4lexrfhnlhs._.js.map → node_modules_1r6w-jlme6d10._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_1f4geuvkvlxj1._.js.map → node_modules_1s8oxeqa5_i3k._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_1216007ogd5om._.js.map → node_modules_1tskcaktx6ods._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_0m3ihe65818y_._.js.map → node_modules_1xz1dstlo5ri-._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_1kv6lsckqs-m0._.js.map → node_modules_1zii7uk468cay._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_0bmuudv_6eypr._.js.map → node_modules_katex_dist_katex_mjs_067omoj5szuys._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_0qyy6pq9uzpk0._.js.map → node_modules_katex_dist_katex_mjs_1604s1ky8db8u._.js.map} +0 -0
- /package/.next/static/{sQnXeiP8rV6y2v0az_xw3 → dGN2VKPk5TJgezxS3JvRc}/_buildManifest.js +0 -0
- /package/.next/static/{sQnXeiP8rV6y2v0az_xw3 → dGN2VKPk5TJgezxS3JvRc}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{sQnXeiP8rV6y2v0az_xw3 → dGN2VKPk5TJgezxS3JvRc}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/next/src/build/templates/app-route.ts","../../../src/app/api/sessions/%5Bid%5D/transcript/route.js","../../../src/lib/parsers/antigravityParser.js","../../../src/lib/parsers/claudeParser.js","../../../src/lib/parsers/secretRedactor.js","../../../src/lib/parsers/transcriptParser.js"],"sourcesContent":["import {\n AppRouteRouteModule,\n type AppRouteRouteHandlerContext,\n type AppRouteRouteModuleOptions,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\nimport {\n getTracer,\n type Span,\n SpanKind,\n SpanStatusCode,\n} from '../../server/lib/trace/tracer'\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport {\n NextRequestAdapter,\n signalFromNodeResponse,\n} from '../../server/web/spec-extension/adapters/next-request'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { sendResponse } from '../../server/send-response'\nimport {\n fromNodeOutgoingHttpHeaders,\n toNodeOutgoingHttpHeaders,\n} from '../../server/web/utils'\nimport { getCacheControlHeader } from '../../server/lib/cache-control'\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from '../../lib/constants'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\nimport { isRouteCacheOwner } from '../../server/lib/route-cache-key'\nimport {\n CachedRouteKind,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n // The lazy require factory ensures that:\n // - In dev: devRequestTimingInternalsEnd is set before userland executes,\n // correctly attributing module load time to application-code rather than\n // framework internals.\n // - In all modes: async modules (route files with top-level await) are\n // handled correctly — require() returns a Promise for such modules, which\n // ensureUserland() awaits before the first request is handled.\n userland: () => require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n // In Turbopack dev mode, also provide a synchronous per-request getter so\n // server HMR updates are picked up without re-executing the entry chunk.\n // Using require() (synchronous) avoids adding async overhead that would be\n // incorrectly attributed to application-code time in devRequestTiming.\n ...(process.env.TURBOPACK && process.env.__NEXT_DEV_SERVER\n ? {\n getUserland: () =>\n require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n }\n : {}),\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n deploymentId,\n params,\n nextConfig,\n parsedUrl,\n isDraftMode,\n prerenderManifest,\n routerServerContext,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n resolvedPathname,\n clientReferenceManifest,\n serverActionsManifest,\n previewProps,\n } = prepareResult\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n // Only this route's prerenders can establish ISR or admit generated params.\n const isPrerendered =\n Boolean(prerenderManifest.routes[resolvedPathname]) &&\n (routeModule.isDev ||\n isRouteCacheOwner(\n resolvedPathname,\n routeModule.cacheOwner,\n prerenderManifest.routes[resolvedPathname]\n ))\n\n let isIsr = Boolean(\n prerenderManifest.dynamicRoutes[normalizedSrcPage] || isPrerendered\n )\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n return null\n }\n\n if (isIsr && !isDraftMode) {\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n }\n }\n\n let cacheKey: string | null = null\n\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n })\n }\n\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const incrementalCache =\n getRequestMeta(req, 'incrementalCache') ||\n (await routeModule.getIncrementalCache(\n req,\n nextConfig,\n previewProps,\n prerenderManifest,\n isMinimalMode\n ))\n\n incrementalCache?.resetRequestCache()\n ;(globalThis as any).__incrementalCache = incrementalCache\n\n const context: AppRouteRouteHandlerContext = {\n params,\n previewProps,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n useCacheTimeout: nextConfig.experimental.useCacheTimeout,\n durableUseCacheEntries: Boolean(\n nextConfig.experimental.durableUseCacheEntries\n ),\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n validationLevel: nextConfig.experimental.instantInsights.validationLevel,\n isDraftMode,\n incrementalCache,\n hmrRefreshHash: getRequestMeta(req, 'hmrRefreshHash'),\n cacheLifeProfiles: nextConfig.cacheLife,\n staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: undefined,\n },\n sharedContext: {\n buildId,\n deploymentId,\n },\n }\n const nodeNextReq = new NodeNextRequest(req)\n const nodeNextRes = new NodeNextResponse(res)\n\n const nextReq = NextRequestAdapter.fromNodeNextRequest(\n nodeNextReq,\n signalFromNodeResponse(res)\n )\n\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n try {\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n const response =\n cacheKey === null\n ? await routeModule.handle(nextReq, context)\n : await routeModule.prerender(nextReq, context)\n\n ;(req as any).fetchMetrics = (context.renderOpts as any).fetchMetrics\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil\n\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil)\n pendingWaitUntil = undefined\n }\n }\n const cacheTags = context.renderOpts.collectedTags\n\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob()\n\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers)\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type\n }\n\n const revalidate =\n typeof context.renderOpts.collectedRevalidate === 'undefined' ||\n context.renderOpts.collectedRevalidate >= INFINITE_CACHE\n ? false\n : context.renderOpts.collectedRevalidate\n\n const expire =\n typeof context.renderOpts.collectedExpire === 'undefined' ||\n context.renderOpts.collectedExpire >= INFINITE_CACHE\n ? // Fall back to the global `expireTime` config when the\n // route has a numeric `revalidate` but didn't declare an\n // explicit `expire` (e.g. via `cacheLife`). This mirrors the\n // build-time fallback in `build/index.ts` so cache entries\n // and the response Cache-Control header agree on the route's\n // effective expire. Routes that opt out of revalidation\n // (`revalidate: false`) or that are dynamic (`revalidate: 0`)\n // keep `expire: undefined`.\n revalidate !== false && revalidate > 0\n ? nextConfig.expireTime\n : undefined\n : context.renderOpts.collectedExpire\n\n // Create the cache entry for the response.\n const cacheEntry: ResponseCacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers,\n },\n cacheControl: { revalidate, expire },\n }\n\n return cacheEntry\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, pendingWaitUntil)\n return null\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: cacheKey !== null,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n const handleResponse = async (\n currentSpan: Span | undefined,\n parentSpan: Span | undefined\n ) => {\n try {\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n previewProps,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n if (cacheEntry !== null && 'error' in cacheEntry) {\n throw cacheEntry.error\n }\n\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return\n }\n\n if (cacheEntry?.value?.kind !== CachedRouteKind.APP_ROUTE) {\n throw new Error(\n `Invariant: app-route received invalid cache entry ${cacheEntry?.value?.kind}`\n )\n }\n\n if (!isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers)\n\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER)\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (\n cacheEntry.cacheControl &&\n !res.getHeader('Cache-Control') &&\n !headers.get('Cache-Control')\n ) {\n headers.set(\n 'Cache-Control',\n getCacheControlHeader(cacheEntry.cacheControl)\n )\n }\n\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200,\n })\n )\n return\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: cacheKey !== null,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n\n // If this is during static generation, throw the error again.\n if (isIsr) throw err\n\n // Otherwise, send a 500 response unless the original response has\n // already committed. In that case, preserve its status code for\n // telemetry while still recording the failure and terminating a response\n // that the failed pipeline left open.\n if (res.headersSent) {\n if (currentSpan) {\n const error =\n err instanceof Error ? err : new Error('Unknown app route error')\n currentSpan.recordException(error)\n currentSpan.setStatus({\n code: SpanStatusCode.ERROR,\n message: error.message,\n })\n currentSpan.setAttribute('error.type', error.name)\n }\n if (!res.writableEnded && !res.destroyed) {\n res.end()\n }\n } else {\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n new Response(null, { status: 500 })\n )\n }\n return\n } finally {\n ;(() => {\n if (!currentSpan) {\n return\n }\n\n let statusCode = res.statusCode\n\n currentSpan.setAttributes({\n 'http.status_code': statusCode,\n 'next.rsc': false,\n })\n\n if (statusCode && statusCode >= 500) {\n // For 5xx status codes: SHOULD be set to 'Error' span status.\n // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status\n currentSpan.setStatus({\n code: SpanStatusCode.ERROR,\n })\n // For span status 'Error', SHOULD set 'error.type' attribute.\n currentSpan.setAttribute('error.type', statusCode.toString())\n }\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route') || normalizedSrcPage\n const name = `${method} ${route}`\n\n currentSpan.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n currentSpan.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== currentSpan) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })()\n }\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan, undefined)\n } else {\n let parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n (span) => handleResponse(span, parentSpan)\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n}\n","import { NextResponse } from \"next/server\";\nimport { getSessionTranscript } from \"../../../../../lib/parsers/transcriptParser.js\";\n\nexport const dynamic = \"force-dynamic\";\n\nexport async function GET(request, context) {\n try {\n const params = await context.params;\n const rawId = params?.id;\n\n if (!rawId || typeof rawId !== \"string\") {\n return NextResponse.json(\n { ok: false, error: \"Missing session ID parameter\" },\n { status: 400 }\n );\n }\n\n // Security regex validation\n if (!/^[a-zA-Z0-9_-]{4,64}$/.test(rawId)) {\n return NextResponse.json(\n { ok: false, error: \"Invalid session ID format\" },\n { status: 400 }\n );\n }\n\n const { searchParams } = new URL(request.url);\n const cliHint = searchParams.get(\"cli\") || \"\";\n\n const transcriptData = await getSessionTranscript(rawId, cliHint);\n\n return NextResponse.json(transcriptData, {\n status: 200,\n headers: {\n \"Cache-Control\": \"no-store, no-cache, must-revalidate\",\n },\n });\n } catch (err) {\n const msg = err.message || \"Failed to retrieve transcript\";\n const status = msg.includes(\"not found\") ? 404 : msg.includes(\"traversal\") || msg.includes(\"Invalid\") ? 400 : 500;\n\n return NextResponse.json(\n { ok: false, error: msg },\n { status }\n );\n }\n}\n","import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport os from \"node:os\";\nimport { extractModelFromTranscript, normalizeModel } from \"../watchers/antigravityWatcher.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\nexport function normalizeToolCategory(name, args = {}) {\n const n = String(name || \"\").toLowerCase();\n\n if (n === \"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(\"impact\")) return \"gitnexus\";\n if (srv.includes(\"playwright\") || srv.includes(\"browser\") || tool.startsWith(\"browser_\")) return \"browser\";\n return \"mcp\";\n }\n\n if (n === \"run_command\") {\n const cmd = String(args.CommandLine || \"\").trim().toLowerCase();\n if (cmd.startsWith(\"docker\") || cmd.includes(\"docker exec\")) return \"docker\";\n if (cmd.startsWith(\"git \") || cmd.startsWith(\"gh \")) return \"git\";\n if (cmd.includes(\"gitnexus\")) return \"gitnexus\";\n return \"bash\";\n }\n\n if (TOOL_MAP[name]) return TOOL_MAP[name];\n if (n.includes(\"read\") || n.includes(\"view\") || n.includes(\"list\") || n.includes(\"dir\")) return \"read\";\n if (n.includes(\"edit\") || n.includes(\"write\") || n.includes(\"patch\") || n.includes(\"replace\")) return \"edit\";\n if (n.includes(\"search\") || n.includes(\"grep\")) return \"search\";\n if (n.includes(\"agent\") || n.includes(\"message\")) return \"agent\";\n\n return \"mcp\";\n}\n\n/**\n * Parses an Antigravity CLI transcript into normalized chat turns.\n * @param {string} sessionId\n * @returns {Promise<{ ok: boolean, session: any, turns: any[] }>}\n */\nexport async function parseAntigravityTranscript(sessionId) {\n const safeId = String(sessionId || \"\").trim();\n if (!/^[a-zA-Z0-9_-]{4,64}$/.test(safeId)) {\n throw new Error(\"Invalid session ID format\");\n }\n\n const homeDir = os.homedir();\n const candidateDirs = [\n path.join(homeDir, \".gemini\", \"antigravity\", \"brain\"),\n path.join(homeDir, \".gemini\", \"antigravity-cli\", \"brain\"),\n path.join(homeDir, \".gemini\", \"antigravity-ide\", \"brain\"),\n ];\n\n let transcriptPath = null;\n let resolvedFolder = safeId;\n let matchedBrainDir = null;\n\n for (const brainDir of candidateDirs) {\n const sessionDir = path.join(brainDir, safeId);\n try {\n await fs.access(sessionDir);\n const testPath = path.join(sessionDir, \".system_generated\", \"logs\", \"transcript.jsonl\");\n await fs.access(testPath);\n transcriptPath = testPath;\n resolvedFolder = safeId;\n matchedBrainDir = brainDir;\n break;\n } catch {\n // If exact name not found, try prefix matching (e.g. \"17d2113b\" -> \"17d2113b-...\")\n try {\n const entries = await fs.readdir(brainDir, { withFileTypes: true });\n const match = entries.find((e) => e.isDirectory() && e.name.startsWith(safeId));\n if (match) {\n const testPath = path.join(brainDir, match.name, \".system_generated\", \"logs\", \"transcript.jsonl\");\n await fs.access(testPath);\n transcriptPath = testPath;\n resolvedFolder = match.name;\n matchedBrainDir = brainDir;\n break;\n }\n } catch {\n // continue\n }\n }\n }\n\n if (!transcriptPath || !matchedBrainDir) {\n throw new Error(`Transcript file not found for session ID \"${safeId}\"`);\n }\n\n // Path traversal guard\n if (!path.resolve(transcriptPath).startsWith(path.resolve(matchedBrainDir))) {\n throw new Error(\"Directory traversal detected\");\n }\n\n let rawContent;\n try {\n rawContent = await fs.readFile(transcriptPath, \"utf-8\");\n } catch (err) {\n throw new Error(`Transcript file not found: ${err.message}`);\n }\n\n const lines = rawContent.split(\"\\n\");\n const turns = [];\n let currentAssistantTurn = null;\n\n let totalIn = 0;\n let totalOut = 0;\n let totalCached = 0;\n let startedAt = null;\n let updatedAt = null;\n let detectedCwd = null;\n\n for (let idx = 0; idx < lines.length; idx++) {\n const line = lines[idx].trim();\n if (!line) continue;\n\n let entry;\n try {\n entry = JSON.parse(line);\n } catch {\n // If it's the last line and it fails to parse, it could be an active flush\n if (idx === lines.length - 1) continue;\n continue;\n }\n\n const timestamp = entry.created_at || new Date().toISOString();\n if (!startedAt) startedAt = timestamp;\n updatedAt = timestamp;\n\n if (entry.input_tokens) totalIn += entry.input_tokens;\n if (entry.output_tokens) totalOut += entry.output_tokens;\n if (entry.cache_read_tokens) totalCached += entry.cache_read_tokens;\n\n // Detect Cwd from tool args if available\n if (Array.isArray(entry.tool_calls)) {\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 }\n }\n\n // 1. User Input Turn\n if (entry.type === \"USER_INPUT\") {\n // Flush previous assistant turn if pending\n if (currentAssistantTurn) {\n turns.push(currentAssistantTurn);\n currentAssistantTurn = null;\n }\n\n let promptText = String(entry.content || \"\");\n // Clean XML tags like <USER_REQUEST> and <ADDITIONAL_METADATA>\n promptText = promptText\n .replace(/<USER_REQUEST>([\\s\\S]*?)<\\/USER_REQUEST>/g, \"$1\")\n .replace(/<ADDITIONAL_METADATA>[\\s\\S]*?<\\/ADDITIONAL_METADATA>/g, \"\")\n .replace(/<USER_SETTINGS_CHANGE>[\\s\\S]*?<\\/USER_SETTINGS_CHANGE>/g, \"\")\n .trim();\n\n turns.push({\n id: `turn-user-${entry.step_index || turns.length}`,\n role: \"user\",\n timestamp,\n content: promptText,\n });\n\n // Start new assistant turn for this prompt\n currentAssistantTurn = {\n id: `turn-asst-${(entry.step_index || turns.length) + 1}`,\n role: \"assistant\",\n timestamp,\n content: \"\",\n thinking: \"\",\n toolCalls: [],\n tokens: { input: 0, output: 0, cached: 0 },\n status: \"completed\",\n };\n continue;\n }\n\n // Ensure we have an assistant turn active\n if (!currentAssistantTurn) {\n currentAssistantTurn = {\n id: `turn-asst-${turns.length}`,\n role: \"assistant\",\n timestamp,\n content: \"\",\n thinking: \"\",\n toolCalls: [],\n tokens: { input: 0, output: 0, cached: 0 },\n status: \"completed\",\n };\n }\n\n // 2. Planner Response (Reasoning, Tools, or Text)\n if (entry.type === \"PLANNER_RESPONSE\") {\n if (entry.input_tokens) currentAssistantTurn.tokens.input += entry.input_tokens;\n if (entry.output_tokens) currentAssistantTurn.tokens.output += entry.output_tokens;\n if (entry.cache_read_tokens) currentAssistantTurn.tokens.cached += entry.cache_read_tokens;\n\n if (entry.thinking) {\n currentAssistantTurn.thinking += (currentAssistantTurn.thinking ? \"\\n\\n\" : \"\") + entry.thinking;\n }\n\n if (Array.isArray(entry.tool_calls) && entry.tool_calls.length > 0) {\n for (let tIdx = 0; tIdx < entry.tool_calls.length; tIdx++) {\n const tc = entry.tool_calls[tIdx];\n const toolId = tc.id || `${entry.step_index}-${tIdx}`;\n const cat = normalizeToolCategory(tc.name, tc.args);\n\n currentAssistantTurn.toolCalls.push({\n id: toolId,\n name: tc.name,\n type: cat,\n summary: tc.toolSummary || tc.name,\n action: tc.toolAction || tc.name,\n args: tc.args || {},\n output: \"\",\n status: entry.status === \"RUNNING\" ? \"running\" : \"completed\",\n });\n }\n }\n\n // If content is present\n if (entry.content) {\n if (!currentAssistantTurn.content) {\n currentAssistantTurn.content = entry.content;\n } else {\n // If already has content and new content arrives, append\n currentAssistantTurn.content += \"\\n\\n\" + entry.content;\n }\n }\n }\n\n // 3. Generic (Tool execution output / stdout / stderr)\n if (entry.type === \"GENERIC\" && entry.content) {\n if (currentAssistantTurn.toolCalls.length > 0) {\n // Associate with the last tool call that doesn't have an output yet\n const targetTc = [...currentAssistantTurn.toolCalls].reverse().find((tc) => !tc.output) ||\n currentAssistantTurn.toolCalls[currentAssistantTurn.toolCalls.length - 1];\n\n if (targetTc) {\n targetTc.output = entry.content;\n if (entry.status === \"ERROR\") {\n targetTc.status = \"error\";\n }\n }\n }\n }\n }\n\n // Push final assistant turn\n if (currentAssistantTurn && (currentAssistantTurn.content || currentAssistantTurn.toolCalls.length > 0 || currentAssistantTurn.thinking)) {\n turns.push(currentAssistantTurn);\n }\n\n const durationMs = (startedAt && updatedAt) ? Math.max(0, new Date(updatedAt).getTime() - new Date(startedAt).getTime()) : 0;\n\n const rawModel = extractModelFromTranscript(rawContent);\n let defaultCliModel = null;\n if (!rawModel) {\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 const modelName = normalizeModel(rawModel || defaultCliModel);\n\n return {\n ok: true,\n session: {\n id: safeId,\n cli: \"antigravity\",\n model: modelName,\n startedAt,\n updatedAt,\n durationMs,\n cwd: detectedCwd,\n tokens: {\n input: totalIn,\n output: totalOut,\n cached: totalCached,\n },\n turnsCount: turns.length,\n },\n turns,\n };\n}\n","import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport os from \"node:os\";\n\nfunction normalizeClaudeTool(name, input = {}) {\n const n = String(name || \"\").toLowerCase();\n const cmd = String(input.command || \"\").trim();\n const cmdLower = cmd.toLowerCase();\n\n if (n === \"bash\") {\n if (cmdLower.startsWith(\"docker\") || cmdLower.includes(\"docker exec\")) return \"docker\";\n if (cmdLower.startsWith(\"git \") || cmdLower.startsWith(\"gh \")) return \"git\";\n if (cmdLower.includes(\"gitnexus\")) return \"gitnexus\";\n return \"bash\";\n }\n\n if (n.includes(\"read\") || n.includes(\"view\") || n.includes(\"glob\")) return \"read\";\n if (n.includes(\"edit\") || n.includes(\"write\") || n.includes(\"patch\") || n.includes(\"replace\")) return \"edit\";\n if (n.includes(\"grep\") || n.includes(\"search\")) return \"search\";\n if (n.includes(\"agent\") || n.includes(\"task\")) return \"agent\";\n if (n.includes(\"browser\") || n.includes(\"playwright\")) return \"browser\";\n if (n.includes(\"gitnexus\")) return \"gitnexus\";\n\n return \"mcp\";\n}\n\n/**\n * Parses a Claude Code session into normalized chat turns.\n * @param {string} sessionId\n * @returns {Promise<{ ok: boolean, session: any, turns: any[] }>}\n */\nexport async function parseClaudeTranscript(sessionId) {\n const safeId = String(sessionId || \"\").trim();\n if (!/^[a-zA-Z0-9_-]{4,64}$/.test(safeId)) {\n throw new Error(\"Invalid session ID format\");\n }\n\n const homeDir = os.homedir();\n const sessionsDir = path.join(homeDir, \".claude\", \"sessions\");\n const projectsDir = path.join(homeDir, \".claude\", \"projects\");\n\n let meta = {};\n try {\n const rawMeta = await fs.readFile(path.join(sessionsDir, `${safeId}.json`), \"utf-8\");\n meta = JSON.parse(rawMeta);\n } catch {\n // Check if safeId matches a PID or name in sessionsDir\n try {\n const sessionFiles = await fs.readdir(sessionsDir).catch(() => []);\n for (const sf of sessionFiles) {\n if (!sf.endsWith(\".json\")) continue;\n const raw = await fs.readFile(path.join(sessionsDir, sf), \"utf-8\").catch(() => null);\n if (!raw) continue;\n const parsed = JSON.parse(raw);\n if (\n String(parsed.pid) === safeId ||\n parsed.sessionId === safeId ||\n parsed.sessionId?.startsWith(safeId) ||\n parsed.name === safeId\n ) {\n meta = parsed;\n break;\n }\n }\n } catch {}\n }\n\n const targetId = meta.sessionId || safeId;\n\n // Find candidate jsonl transcript\n let transcriptPath = null;\n try {\n const projectFolders = await fs.readdir(projectsDir);\n for (const pf of projectFolders) {\n // 1. Try exact targetId.jsonl\n const candidate = path.join(projectsDir, pf, `${targetId}.jsonl`);\n try {\n await fs.access(candidate);\n transcriptPath = candidate;\n break;\n } catch {\n // try next\n }\n\n // 2. Try prefix matching or files in folder\n const files = await fs.readdir(path.join(projectsDir, pf)).catch(() => []);\n const matched = files.find((f) =>\n f.endsWith(\".jsonl\") && (\n f.startsWith(safeId) ||\n (meta.sessionId && f.startsWith(meta.sessionId)) ||\n f.replace(\".jsonl\", \"\").startsWith(safeId)\n )\n );\n if (matched) {\n transcriptPath = path.join(projectsDir, pf, matched);\n break;\n }\n }\n } catch {\n // projects folder might be empty\n }\n\n if (!transcriptPath) {\n throw new Error(`Claude transcript not found for session ${safeId}`);\n }\n\n // Security check: ensure resolved candidate path stays within projectsDir\n if (!path.resolve(transcriptPath).startsWith(path.resolve(projectsDir))) {\n throw new Error(\"Directory traversal detected in Claude transcript path\");\n }\n\n const rawContent = await fs.readFile(transcriptPath, \"utf-8\");\n const lines = rawContent.split(\"\\n\");\n\n const turns = [];\n let currentAssistantTurn = null;\n\n let totalIn = 0;\n let totalOut = 0;\n let totalCached = 0;\n let model = meta.model || \"claude-3-7-sonnet\";\n let startedAt = meta.startedAt ? new Date(meta.startedAt).toISOString() : null;\n let updatedAt = meta.updatedAt ? new Date(meta.updatedAt).toISOString() : null;\n\n for (let idx = 0; idx < lines.length; idx++) {\n const line = lines[idx].trim();\n if (!line) continue;\n\n let entry;\n try {\n entry = JSON.parse(line);\n } catch {\n if (idx === lines.length - 1) continue;\n continue;\n }\n\n const timestamp = entry.timestamp || new Date().toISOString();\n if (!startedAt) startedAt = timestamp;\n updatedAt = timestamp;\n\n const msg = entry.message;\n if (!msg) continue;\n\n if (msg.model) model = msg.model;\n\n const u = msg.usage;\n if (u) {\n if (u.input_tokens) totalIn += u.input_tokens;\n if (u.output_tokens) totalOut += u.output_tokens;\n if (u.cache_read_input_tokens) totalCached += u.cache_read_input_tokens;\n }\n\n // 1. User Message\n if (msg.role === \"user\") {\n if (currentAssistantTurn) {\n turns.push(currentAssistantTurn);\n currentAssistantTurn = null;\n }\n\n let contentStr = \"\";\n if (typeof msg.content === \"string\") {\n contentStr = msg.content;\n } else if (Array.isArray(msg.content)) {\n for (const blk of msg.content) {\n if (blk.type === \"text\") contentStr += (contentStr ? \"\\n\" : \"\") + blk.text;\n // Handle tool results that come back in user message\n if (blk.type === \"tool_result\" && currentAssistantTurn) {\n const toolId = blk.tool_use_id;\n const targetTc = currentAssistantTurn.toolCalls.find((t) => t.id === toolId);\n if (targetTc) {\n targetTc.output = typeof blk.content === \"string\" ? blk.content : JSON.stringify(blk.content);\n if (blk.is_error) targetTc.status = \"error\";\n }\n }\n }\n }\n\n if (contentStr.trim()) {\n turns.push({\n id: `turn-user-${turns.length}`,\n role: \"user\",\n timestamp,\n content: contentStr.trim(),\n });\n }\n\n currentAssistantTurn = {\n id: `turn-asst-${turns.length}`,\n role: \"assistant\",\n timestamp,\n content: \"\",\n thinking: \"\",\n toolCalls: [],\n tokens: {\n input: u?.input_tokens || 0,\n output: u?.output_tokens || 0,\n cached: u?.cache_read_input_tokens || 0,\n },\n status: \"completed\",\n };\n continue;\n }\n\n // 2. Assistant Message\n if (msg.role === \"assistant\") {\n if (!currentAssistantTurn) {\n currentAssistantTurn = {\n id: `turn-asst-${turns.length}`,\n role: \"assistant\",\n timestamp,\n content: \"\",\n thinking: \"\",\n toolCalls: [],\n tokens: { input: 0, output: 0, cached: 0 },\n status: \"completed\",\n };\n }\n\n if (u) {\n currentAssistantTurn.tokens.input += u.input_tokens || 0;\n currentAssistantTurn.tokens.output += u.output_tokens || 0;\n currentAssistantTurn.tokens.cached += u.cache_read_input_tokens || 0;\n }\n\n if (typeof msg.content === \"string\") {\n currentAssistantTurn.content += (currentAssistantTurn.content ? \"\\n\\n\" : \"\") + msg.content;\n } else if (Array.isArray(msg.content)) {\n for (const blk of msg.content) {\n if (blk.type === \"text\" && blk.text) {\n currentAssistantTurn.content += (currentAssistantTurn.content ? \"\\n\\n\" : \"\") + blk.text;\n }\n if (blk.type === \"thinking\" && blk.thinking) {\n currentAssistantTurn.thinking += (currentAssistantTurn.thinking ? \"\\n\\n\" : \"\") + blk.thinking;\n }\n if (blk.type === \"tool_use\") {\n const toolType = normalizeClaudeTool(blk.name, blk.input);\n currentAssistantTurn.toolCalls.push({\n id: blk.id || `tool-${currentAssistantTurn.toolCalls.length}`,\n name: blk.name,\n type: toolType,\n summary: blk.input?.command ? `bash: ${blk.input.command.slice(0, 40)}` : blk.name,\n action: blk.name,\n args: blk.input || {},\n output: \"\",\n status: \"completed\",\n });\n }\n }\n }\n }\n }\n\n if (currentAssistantTurn && (currentAssistantTurn.content || currentAssistantTurn.toolCalls.length > 0 || currentAssistantTurn.thinking)) {\n turns.push(currentAssistantTurn);\n }\n\n const durationMs = (startedAt && updatedAt) ? Math.max(0, new Date(updatedAt).getTime() - new Date(startedAt).getTime()) : 0;\n\n return {\n ok: true,\n session: {\n id: safeId,\n cli: \"claude\",\n model,\n startedAt,\n updatedAt,\n durationMs,\n cwd: meta.cwd || null,\n tokens: {\n input: totalIn,\n output: totalOut,\n cached: totalCached,\n },\n turnsCount: turns.length,\n },\n turns,\n };\n}\n","/**\n * Secret and credential redaction utility to prevent exposing\n * API keys, authorization tokens, or sensitive credentials in logs.\n */\n\nconst SECRET_PATTERNS = [\n // Bearer / Authorization tokens\n /(Bearer\\s+)[a-zA-Z0-9_\\-\\.]{16,}/gi,\n /(Basic\\s+)[a-zA-Z0-9+\\/=]{16,}/gi,\n\n // Known API Key Prefixes\n /(sk-[a-zA-Z0-9]{20,})/g, // OpenAI / Anthropic-like keys\n /(ghp_[a-zA-Z0-9]{36})/g, // GitHub Personal Access Token\n /(gho_[a-zA-Z0-9]{36})/g, // GitHub OAuth Token\n /(github_pat_[a-zA-Z0-9_]{50,})/g, // GitHub Fine-grained PAT\n /(glpat-[a-zA-Z0-9\\-]{20,})/g, // GitLab Personal Access Token\n /(xox[baprs]-[a-zA-Z0-9\\-]{10,})/g, // Slack Tokens\n /(AIza[0-9A-Za-z-_]{35})/g, // Google API Key\n\n // Generic key assignments in bash or env: KEY=..., TOKEN=..., SECRET=...\n /((?:API_KEY|SECRET|TOKEN|PASSWORD|PASSWD|AUTH|PRIVATE_KEY)[\\s]*[=:][\\s]*['\"]?)([^\\s'\"&;]{8,})(['\"]?)/gi,\n\n // PEM Private keys\n /-----BEGIN [A-Z ]*PRIVATE KEY-----[\\s\\S]*?-----END [A-Z ]*PRIVATE KEY-----/g,\n];\n\n/**\n * Redacts known sensitive strings in text.\n * @param {string} text\n * @returns {string}\n */\nexport function redactSecrets(text) {\n if (typeof text !== \"string\" || !text) return text;\n\n let redacted = text;\n for (const pattern of SECRET_PATTERNS) {\n if (pattern.source.includes(\"BEGIN\")) {\n redacted = redacted.replace(pattern, \"[REDACTED_PRIVATE_KEY]\");\n } else {\n redacted = redacted.replace(pattern, (match, prefix, secret) => {\n if (prefix && secret) {\n return `${prefix}[REDACTED_SECRET]`;\n }\n return \"[REDACTED_SECRET]\";\n });\n }\n }\n\n return redacted;\n}\n\n/**\n * Deeply redacts object values (strings and nested objects/arrays).\n * @param {any} val\n * @returns {any}\n */\nexport function redactDeep(val) {\n if (typeof val === \"string\") {\n return redactSecrets(val);\n }\n if (Array.isArray(val)) {\n return val.map(redactDeep);\n }\n if (val && typeof val === \"object\") {\n const res = {};\n for (const [k, v] of Object.entries(val)) {\n if (/key|secret|token|password|auth/i.test(k) && typeof v === \"string\" && v.length > 6) {\n res[k] = \"[REDACTED_SECRET]\";\n } else {\n res[k] = redactDeep(v);\n }\n }\n return res;\n }\n return val;\n}\n","import { parseAntigravityTranscript } from \"./antigravityParser.js\";\nimport { parseClaudeTranscript } from \"./claudeParser.js\";\nimport { redactDeep } from \"./secretRedactor.js\";\n\nfunction generateMockTranscript(rawId) {\n const isClaude = rawId.includes(\"claude\");\n const model = isClaude ? \"claude-3-7-sonnet\" : \"gemini-2.5-pro\";\n const cli = isClaude ? \"claude\" : \"antigravity\";\n\n return {\n ok: true,\n session: {\n id: rawId,\n cli,\n model,\n startedAt: new Date(Date.now() - 15 * 60 * 1000).toISOString(),\n updatedAt: new Date().toISOString(),\n durationMs: 15 * 60 * 1000,\n cwd: \"/Users/dev/workspace/agent-factory\",\n tokens: {\n input: 42150,\n output: 3820,\n cached: 182400,\n },\n turnsCount: 2,\n },\n turns: [\n {\n id: \"mock-turn-0\",\n role: \"user\",\n timestamp: new Date(Date.now() - 15 * 60 * 1000).toISOString(),\n content: \"Fix memory leak in websocket event listeners and refactor connection pooling\",\n },\n {\n id: \"mock-turn-1\",\n role: \"assistant\",\n timestamp: new Date(Date.now() - 14 * 60 * 1000).toISOString(),\n thinking: \"Let's first inspect all websocket connection handlers across src/lib and check where removeEventListener or client.close() is missing. We should also examine the connection pool cleanup timer.\",\n toolCalls: [\n {\n id: \"tool-0\",\n name: \"grep_search\",\n type: \"search\",\n summary: \"Search: websocket.addEventListener\",\n action: \"grep_search\",\n args: { query: \"websocket.addEventListener\" },\n output: \"src/lib/wsClient.js:14: ws.addEventListener('message', onMessage);\\nsrc/lib/wsClient.js:15: ws.addEventListener('close', onClose);\",\n status: \"completed\",\n },\n {\n id: \"tool-1\",\n name: \"view_file\",\n type: \"read\",\n summary: \"Read: wsClient.js\",\n action: \"view_file\",\n args: { AbsolutePath: \"/Users/dev/workspace/agent-factory/src/lib/wsClient.js\", StartLine: 1, EndLine: 40 },\n output: \"export function createWebSocketClient() {\\n let activeWs = null;\\n // Missing cleanup on reconnect!\\n}\",\n status: \"completed\",\n },\n {\n id: \"tool-2\",\n name: \"replace_file_content\",\n type: \"edit\",\n summary: \"Edit: wsClient.js\",\n action: \"replace_file_content\",\n args: { TargetFile: \"src/lib/wsClient.js\", Description: \"Add cleanup handler on disconnect\" },\n output: \"Successfully replaced 1 block in src/lib/wsClient.js.\",\n status: \"completed\",\n },\n ],\n content: \"I investigated the WebSocket client and identified that reconnection attempts did not detach previous event listeners, causing listeners to accumulate in heap memory.\\n\\n### Fix applied:\\n1. Added `dispose()` method in `wsClient.js`.\\n2. Attached an automatic teardown hook before attempting socket reconnection.\\n\\n```javascript\\nexport function teardownSocket(ws) {\\n if (!ws) return;\\n ws.removeEventListener('message', handleMessage);\\n ws.removeEventListener('error', handleError);\\n ws.close();\\n}\\n```\",\n tokens: { input: 24500, output: 1200, cached: 95000 },\n },\n {\n id: \"mock-turn-2\",\n role: \"user\",\n timestamp: new Date(Date.now() - 10 * 60 * 1000).toISOString(),\n content: \"Run test suite to verify no memory leaks or broken connections\",\n },\n {\n id: \"mock-turn-3\",\n role: \"assistant\",\n timestamp: new Date(Date.now() - 9 * 60 * 1000).toISOString(),\n thinking: \"Executing unit test suite with npm test -- --coverage\",\n toolCalls: [\n {\n id: \"tool-3\",\n name: \"run_command\",\n type: \"bash\",\n summary: \"bash: npm test\",\n action: \"run_command\",\n args: { CommandLine: \"npm test\" },\n output: \"PASS src/lib/wsClient.test.js\\n OK connects to server (12ms)\\n OK cleans up listeners on disconnect (8ms)\\n OK pool avoids leak after 100 reconnects (45ms)\\n\\nTest Suites: 1 passed, 1 total\\nTests: 3 passed, 3 total\\nSnapshots: 0 total\\nTime: 0.85s\",\n status: \"completed\",\n },\n ],\n content: \"All 3 unit tests passed successfully. The WebSocket reconnection stress test confirmed zero memory leak over 100 simulated disconnect cycles.\",\n tokens: { input: 17650, output: 2620, cached: 87400 },\n },\n ],\n };\n}\n\n/**\n * Facade parser that auto-routes to Antigravity or Claude Code\n * and sanitizes sensitive secrets across all turns.\n *\n * @param {string} rawId - Session or Trace ID (e.g. \"17d2113b-253a-4403-bc6b-08c9d5776434\" or \"agy-17d2113b\")\n * @param {string} [cliHint] - Optional hint: \"antigravity\" | \"claude\"\n * @returns {Promise<{ ok: boolean, session: any, turns: any[] }>}\n */\nexport async function getSessionTranscript(rawId, cliHint = \"\") {\n let id = String(rawId || \"\").trim();\n\n // If mock preset ID, return synthetic rich transcript\n if (id.startsWith(\"mock-\") || id.includes(\"mock\") || id === \"demo\") {\n return generateMockTranscript(rawId);\n }\n\n // Strip prefixes like \"agy-\" or \"claude-\" if present\n let cli = cliHint.toLowerCase();\n if (id.startsWith(\"agy-\")) {\n cli = \"antigravity\";\n id = id.slice(4);\n } else if (id.startsWith(\"claude-\")) {\n cli = \"claude\";\n id = id.slice(7);\n }\n\n // If ID was formatted as short hash in traceId, try to resolve full directory in brain\n if (cli === \"antigravity\" || !cli) {\n try {\n const res = await parseAntigravityTranscript(id);\n return {\n ...res,\n session: redactDeep(res.session),\n turns: redactDeep(res.turns),\n };\n } catch (err) {\n if (cli === \"antigravity\") {\n throw err;\n }\n }\n }\n\n if (cli === \"claude\" || !cli) {\n try {\n const res = await parseClaudeTranscript(id);\n return {\n ...res,\n session: redactDeep(res.session),\n turns: redactDeep(res.turns),\n };\n } catch (err) {\n if (cli === \"claude\") {\n throw err;\n }\n }\n }\n\n throw new Error(`Unable to locate transcript for session ID \"${rawId}\"`);\n}\n"],"names":["AppRouteRouteModule","RouteKind","patchFetch","_patchFetch","addRequestMeta","getRequestMeta","setRequestMeta","getTracer","SpanKind","SpanStatusCode","setManifestsSingleton","normalizeAppPath","NodeNextRequest","NodeNextResponse","NextRequestAdapter","signalFromNodeResponse","BaseServerSpan","getRevalidateReason","sendResponse","fromNodeOutgoingHttpHeaders","toNodeOutgoingHttpHeaders","getCacheControlHeader","INFINITE_CACHE","NEXT_CACHE_TAGS_HEADER","NoFallbackError","isRouteCacheOwner","CachedRouteKind","routeModule","definition","kind","APP_ROUTE","page","pathname","filename","bundlePath","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","userland","require","TURBOPACK","__NEXT_DEV_SERVER","getUserland","workAsyncStorage","workUnitAsyncStorage","serverHooks","handler","req","res","ctx","requestMeta","isDev","hrtime","bigint","srcPage","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","previewProps","normalizedSrcPage","isPrerendered","Boolean","routes","cacheOwner","isIsr","dynamicRoutes","render404","prerenderInfo","fallback","adapterPath","cacheKey","method","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","renderOpts","experimental","authInterrupts","useCacheTimeout","durableUseCacheEntries","cacheComponents","validationLevel","instantInsights","hmrRefreshHash","cacheLifeProfiles","cacheLife","staticPageGenerationTimeout","onClose","cb","on","onAfterTaskError","undefined","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","responseGenerator","previousCacheEntry","setHeader","response","handle","prerender","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","type","revalidate","collectedRevalidate","expire","collectedExpire","expireTime","cacheEntry","value","status","body","Buffer","from","arrayBuffer","cacheControl","err","isStale","silenceLog","onRequestError","routerKind","routePath","routeType","revalidateReason","isStaticGeneration","handleResponse","currentSpan","parentSpan","routeKind","isFallback","isRoutePPREnabled","error","Error","isMiss","delete","getHeader","get","set","Response","headersSent","recordException","setStatus","code","ERROR","message","setAttribute","name","writableEnded","destroyed","setAttributes","toString","rootSpanAttributes","getRootSpanAttributes","handleRequest","console","warn","route","updateName","withPropagatedContext","trace","spanName","SERVER","attributes","url","span","TOOL_MAP","view_file","read_file","replace_file_content","write_to_file","call_mcp_tool","list_resources","invoke_subagent","grep_search","list_dir","find_by_name","define_subagent","normalizeToolCategory","args","n","String","toLowerCase","srv","ServerName","tool","ToolName","includes","startsWith","cmd","CommandLine","trim","parseAntigravityTranscript","sessionId","safeId","test","homeDir","homedir","candidateDirs","join","transcriptPath","resolvedFolder","matchedBrainDir","brainDir","sessionDir","access","testPath","entries","readdir","withFileTypes","match","find","e","isDirectory","rawContent","readFile","lines","split","turns","currentAssistantTurn","totalIn","totalOut","totalCached","startedAt","updatedAt","detectedCwd","idx","length","line","entry","JSON","parse","timestamp","created_at","Date","toISOString","input_tokens","output_tokens","cache_read_tokens","Array","isArray","tool_calls","tc","Cwd","TargetFile","AbsolutePath","p","slice","push","promptText","content","id","step_index","role","thinking","toolCalls","tokens","input","output","cached","tIdx","toolId","cat","summary","toolSummary","action","toolAction","targetTc","reverse","durationMs","Math","max","getTime","rawModel","defaultCliModel","cliSettingsRaw","cliSettings","model","modelName","ok","session","cli","cwd","turnsCount"],"mappings":"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","ignoreList":[0]}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/next/src/build/templates/app-route.ts","../../../src/app/api/sessions/%5Bid%5D/transcript/route.js","../../../src/lib/parsers/antigravityParser.js","../../../src/lib/parsers/claudeParser.js","../../../src/lib/parsers/codexParser.js","../../../src/lib/parsers/secretRedactor.js","../../../src/lib/parsers/transcriptParser.js"],"sourcesContent":["import {\n AppRouteRouteModule,\n type AppRouteRouteHandlerContext,\n type AppRouteRouteModuleOptions,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\nimport {\n getTracer,\n type Span,\n SpanKind,\n SpanStatusCode,\n} from '../../server/lib/trace/tracer'\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport {\n NextRequestAdapter,\n signalFromNodeResponse,\n} from '../../server/web/spec-extension/adapters/next-request'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { sendResponse } from '../../server/send-response'\nimport {\n fromNodeOutgoingHttpHeaders,\n toNodeOutgoingHttpHeaders,\n} from '../../server/web/utils'\nimport { getCacheControlHeader } from '../../server/lib/cache-control'\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from '../../lib/constants'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\nimport { isRouteCacheOwner } from '../../server/lib/route-cache-key'\nimport {\n CachedRouteKind,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n // The lazy require factory ensures that:\n // - In dev: devRequestTimingInternalsEnd is set before userland executes,\n // correctly attributing module load time to application-code rather than\n // framework internals.\n // - In all modes: async modules (route files with top-level await) are\n // handled correctly — require() returns a Promise for such modules, which\n // ensureUserland() awaits before the first request is handled.\n userland: () => require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n // In Turbopack dev mode, also provide a synchronous per-request getter so\n // server HMR updates are picked up without re-executing the entry chunk.\n // Using require() (synchronous) avoids adding async overhead that would be\n // incorrectly attributed to application-code time in devRequestTiming.\n ...(process.env.TURBOPACK && process.env.__NEXT_DEV_SERVER\n ? {\n getUserland: () =>\n require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n }\n : {}),\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n deploymentId,\n params,\n nextConfig,\n parsedUrl,\n isDraftMode,\n prerenderManifest,\n routerServerContext,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n resolvedPathname,\n clientReferenceManifest,\n serverActionsManifest,\n previewProps,\n } = prepareResult\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n // Only this route's prerenders can establish ISR or admit generated params.\n const isPrerendered =\n Boolean(prerenderManifest.routes[resolvedPathname]) &&\n (routeModule.isDev ||\n isRouteCacheOwner(\n resolvedPathname,\n routeModule.cacheOwner,\n prerenderManifest.routes[resolvedPathname]\n ))\n\n let isIsr = Boolean(\n prerenderManifest.dynamicRoutes[normalizedSrcPage] || isPrerendered\n )\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n return null\n }\n\n if (isIsr && !isDraftMode) {\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n }\n }\n\n let cacheKey: string | null = null\n\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n })\n }\n\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const incrementalCache =\n getRequestMeta(req, 'incrementalCache') ||\n (await routeModule.getIncrementalCache(\n req,\n nextConfig,\n previewProps,\n prerenderManifest,\n isMinimalMode\n ))\n\n incrementalCache?.resetRequestCache()\n ;(globalThis as any).__incrementalCache = incrementalCache\n\n const context: AppRouteRouteHandlerContext = {\n params,\n previewProps,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n useCacheTimeout: nextConfig.experimental.useCacheTimeout,\n durableUseCacheEntries: Boolean(\n nextConfig.experimental.durableUseCacheEntries\n ),\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n validationLevel: nextConfig.experimental.instantInsights.validationLevel,\n isDraftMode,\n incrementalCache,\n hmrRefreshHash: getRequestMeta(req, 'hmrRefreshHash'),\n cacheLifeProfiles: nextConfig.cacheLife,\n staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: undefined,\n },\n sharedContext: {\n buildId,\n deploymentId,\n },\n }\n const nodeNextReq = new NodeNextRequest(req)\n const nodeNextRes = new NodeNextResponse(res)\n\n const nextReq = NextRequestAdapter.fromNodeNextRequest(\n nodeNextReq,\n signalFromNodeResponse(res)\n )\n\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n try {\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n const response =\n cacheKey === null\n ? await routeModule.handle(nextReq, context)\n : await routeModule.prerender(nextReq, context)\n\n ;(req as any).fetchMetrics = (context.renderOpts as any).fetchMetrics\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil\n\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil)\n pendingWaitUntil = undefined\n }\n }\n const cacheTags = context.renderOpts.collectedTags\n\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob()\n\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers)\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type\n }\n\n const revalidate =\n typeof context.renderOpts.collectedRevalidate === 'undefined' ||\n context.renderOpts.collectedRevalidate >= INFINITE_CACHE\n ? false\n : context.renderOpts.collectedRevalidate\n\n const expire =\n typeof context.renderOpts.collectedExpire === 'undefined' ||\n context.renderOpts.collectedExpire >= INFINITE_CACHE\n ? // Fall back to the global `expireTime` config when the\n // route has a numeric `revalidate` but didn't declare an\n // explicit `expire` (e.g. via `cacheLife`). This mirrors the\n // build-time fallback in `build/index.ts` so cache entries\n // and the response Cache-Control header agree on the route's\n // effective expire. Routes that opt out of revalidation\n // (`revalidate: false`) or that are dynamic (`revalidate: 0`)\n // keep `expire: undefined`.\n revalidate !== false && revalidate > 0\n ? nextConfig.expireTime\n : undefined\n : context.renderOpts.collectedExpire\n\n // Create the cache entry for the response.\n const cacheEntry: ResponseCacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers,\n },\n cacheControl: { revalidate, expire },\n }\n\n return cacheEntry\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, pendingWaitUntil)\n return null\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: cacheKey !== null,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n const handleResponse = async (\n currentSpan: Span | undefined,\n parentSpan: Span | undefined\n ) => {\n try {\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n previewProps,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n if (cacheEntry !== null && 'error' in cacheEntry) {\n throw cacheEntry.error\n }\n\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return\n }\n\n if (cacheEntry?.value?.kind !== CachedRouteKind.APP_ROUTE) {\n throw new Error(\n `Invariant: app-route received invalid cache entry ${cacheEntry?.value?.kind}`\n )\n }\n\n if (!isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers)\n\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER)\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (\n cacheEntry.cacheControl &&\n !res.getHeader('Cache-Control') &&\n !headers.get('Cache-Control')\n ) {\n headers.set(\n 'Cache-Control',\n getCacheControlHeader(cacheEntry.cacheControl)\n )\n }\n\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200,\n })\n )\n return\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: cacheKey !== null,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n\n // If this is during static generation, throw the error again.\n if (isIsr) throw err\n\n // Otherwise, send a 500 response unless the original response has\n // already committed. In that case, preserve its status code for\n // telemetry while still recording the failure and terminating a response\n // that the failed pipeline left open.\n if (res.headersSent) {\n if (currentSpan) {\n const error =\n err instanceof Error ? err : new Error('Unknown app route error')\n currentSpan.recordException(error)\n currentSpan.setStatus({\n code: SpanStatusCode.ERROR,\n message: error.message,\n })\n currentSpan.setAttribute('error.type', error.name)\n }\n if (!res.writableEnded && !res.destroyed) {\n res.end()\n }\n } else {\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n new Response(null, { status: 500 })\n )\n }\n return\n } finally {\n ;(() => {\n if (!currentSpan) {\n return\n }\n\n let statusCode = res.statusCode\n\n currentSpan.setAttributes({\n 'http.status_code': statusCode,\n 'next.rsc': false,\n })\n\n if (statusCode && statusCode >= 500) {\n // For 5xx status codes: SHOULD be set to 'Error' span status.\n // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status\n currentSpan.setStatus({\n code: SpanStatusCode.ERROR,\n })\n // For span status 'Error', SHOULD set 'error.type' attribute.\n currentSpan.setAttribute('error.type', statusCode.toString())\n }\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route') || normalizedSrcPage\n const name = `${method} ${route}`\n\n currentSpan.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n currentSpan.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== currentSpan) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })()\n }\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan, undefined)\n } else {\n let parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n (span) => handleResponse(span, parentSpan)\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n}\n","import { NextResponse } from \"next/server\";\nimport { getSessionTranscript } from \"../../../../../lib/parsers/transcriptParser.js\";\n\nexport const dynamic = \"force-dynamic\";\n\nexport async function GET(request, context) {\n try {\n const params = await context.params;\n const rawId = params?.id;\n\n if (!rawId || typeof rawId !== \"string\") {\n return NextResponse.json(\n { ok: false, error: \"Missing session ID parameter\" },\n { status: 400 }\n );\n }\n\n // Security regex validation\n if (!/^[a-zA-Z0-9_-]{4,64}$/.test(rawId)) {\n return NextResponse.json(\n { ok: false, error: \"Invalid session ID format\" },\n { status: 400 }\n );\n }\n\n const { searchParams } = new URL(request.url);\n const cliHint = searchParams.get(\"cli\") || \"\";\n\n const transcriptData = await getSessionTranscript(rawId, cliHint);\n\n return NextResponse.json(transcriptData, {\n status: 200,\n headers: {\n \"Cache-Control\": \"no-store, no-cache, must-revalidate\",\n },\n });\n } catch (err) {\n const msg = err.message || \"Failed to retrieve transcript\";\n const status = msg.includes(\"not found\") ? 404 : msg.includes(\"traversal\") || msg.includes(\"Invalid\") ? 400 : 500;\n\n return NextResponse.json(\n { ok: false, error: msg },\n { status }\n );\n }\n}\n","import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport os from \"node:os\";\nimport { extractModelFromTranscript, normalizeModel } from \"../watchers/antigravityWatcher.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\nexport function normalizeToolCategory(name, args = {}) {\n const n = String(name || \"\").toLowerCase();\n\n if (n === \"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(\"impact\")) return \"gitnexus\";\n if (srv.includes(\"playwright\") || srv.includes(\"browser\") || tool.startsWith(\"browser_\")) return \"browser\";\n return \"mcp\";\n }\n\n if (n === \"run_command\") {\n const cmd = String(args.CommandLine || \"\").trim().toLowerCase();\n if (cmd.startsWith(\"docker\") || cmd.includes(\"docker exec\")) return \"docker\";\n if (cmd.startsWith(\"git \") || cmd.startsWith(\"gh \")) return \"git\";\n if (cmd.includes(\"gitnexus\")) return \"gitnexus\";\n return \"bash\";\n }\n\n if (TOOL_MAP[name]) return TOOL_MAP[name];\n if (n.includes(\"read\") || n.includes(\"view\") || n.includes(\"list\") || n.includes(\"dir\")) return \"read\";\n if (n.includes(\"edit\") || n.includes(\"write\") || n.includes(\"patch\") || n.includes(\"replace\")) return \"edit\";\n if (n.includes(\"search\") || n.includes(\"grep\")) return \"search\";\n if (n.includes(\"agent\") || n.includes(\"message\")) return \"agent\";\n\n return \"mcp\";\n}\n\n/**\n * Parses an Antigravity CLI transcript into normalized chat turns.\n * @param {string} sessionId\n * @returns {Promise<{ ok: boolean, session: any, turns: any[] }>}\n */\nexport async function parseAntigravityTranscript(sessionId) {\n const safeId = String(sessionId || \"\").trim();\n if (!/^[a-zA-Z0-9_-]{4,64}$/.test(safeId)) {\n throw new Error(\"Invalid session ID format\");\n }\n\n const homeDir = os.homedir();\n const candidateDirs = [\n path.join(homeDir, \".gemini\", \"antigravity\", \"brain\"),\n path.join(homeDir, \".gemini\", \"antigravity-cli\", \"brain\"),\n path.join(homeDir, \".gemini\", \"antigravity-ide\", \"brain\"),\n ];\n\n let transcriptPath = null;\n let resolvedFolder = safeId;\n let matchedBrainDir = null;\n\n for (const brainDir of candidateDirs) {\n const sessionDir = path.join(brainDir, safeId);\n try {\n await fs.access(sessionDir);\n const testPath = path.join(sessionDir, \".system_generated\", \"logs\", \"transcript.jsonl\");\n await fs.access(testPath);\n transcriptPath = testPath;\n resolvedFolder = safeId;\n matchedBrainDir = brainDir;\n break;\n } catch {\n // If exact name not found, try prefix matching (e.g. \"17d2113b\" -> \"17d2113b-...\")\n try {\n const entries = await fs.readdir(brainDir, { withFileTypes: true });\n const match = entries.find((e) => e.isDirectory() && e.name.startsWith(safeId));\n if (match) {\n const testPath = path.join(brainDir, match.name, \".system_generated\", \"logs\", \"transcript.jsonl\");\n await fs.access(testPath);\n transcriptPath = testPath;\n resolvedFolder = match.name;\n matchedBrainDir = brainDir;\n break;\n }\n } catch {\n // continue\n }\n }\n }\n\n if (!transcriptPath || !matchedBrainDir) {\n throw new Error(`Transcript file not found for session ID \"${safeId}\"`);\n }\n\n // Path traversal guard\n if (!path.resolve(transcriptPath).startsWith(path.resolve(matchedBrainDir))) {\n throw new Error(\"Directory traversal detected\");\n }\n\n let rawContent;\n try {\n rawContent = await fs.readFile(transcriptPath, \"utf-8\");\n } catch (err) {\n throw new Error(`Transcript file not found: ${err.message}`);\n }\n\n const lines = rawContent.split(\"\\n\");\n const turns = [];\n let currentAssistantTurn = null;\n\n let totalIn = 0;\n let totalOut = 0;\n let totalCached = 0;\n let startedAt = null;\n let updatedAt = null;\n let detectedCwd = null;\n\n for (let idx = 0; idx < lines.length; idx++) {\n const line = lines[idx].trim();\n if (!line) continue;\n\n let entry;\n try {\n entry = JSON.parse(line);\n } catch {\n // If it's the last line and it fails to parse, it could be an active flush\n if (idx === lines.length - 1) continue;\n continue;\n }\n\n const timestamp = entry.created_at || new Date().toISOString();\n if (!startedAt) startedAt = timestamp;\n updatedAt = timestamp;\n\n if (entry.input_tokens) totalIn += entry.input_tokens;\n if (entry.output_tokens) totalOut += entry.output_tokens;\n if (entry.cache_read_tokens) totalCached += entry.cache_read_tokens;\n\n // Detect Cwd from tool args if available\n if (Array.isArray(entry.tool_calls)) {\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 }\n }\n\n // 1. User Input Turn\n if (entry.type === \"USER_INPUT\") {\n // Flush previous assistant turn if pending\n if (currentAssistantTurn) {\n turns.push(currentAssistantTurn);\n currentAssistantTurn = null;\n }\n\n let promptText = String(entry.content || \"\");\n // Clean XML tags like <USER_REQUEST> and <ADDITIONAL_METADATA>\n promptText = promptText\n .replace(/<USER_REQUEST>([\\s\\S]*?)<\\/USER_REQUEST>/g, \"$1\")\n .replace(/<ADDITIONAL_METADATA>[\\s\\S]*?<\\/ADDITIONAL_METADATA>/g, \"\")\n .replace(/<USER_SETTINGS_CHANGE>[\\s\\S]*?<\\/USER_SETTINGS_CHANGE>/g, \"\")\n .trim();\n\n turns.push({\n id: `turn-user-${entry.step_index || turns.length}`,\n role: \"user\",\n timestamp,\n content: promptText,\n });\n\n // Start new assistant turn for this prompt\n currentAssistantTurn = {\n id: `turn-asst-${(entry.step_index || turns.length) + 1}`,\n role: \"assistant\",\n timestamp,\n content: \"\",\n thinking: \"\",\n toolCalls: [],\n tokens: { input: 0, output: 0, cached: 0 },\n status: \"completed\",\n };\n continue;\n }\n\n // Ensure we have an assistant turn active\n if (!currentAssistantTurn) {\n currentAssistantTurn = {\n id: `turn-asst-${turns.length}`,\n role: \"assistant\",\n timestamp,\n content: \"\",\n thinking: \"\",\n toolCalls: [],\n tokens: { input: 0, output: 0, cached: 0 },\n status: \"completed\",\n };\n }\n\n // 2. Planner Response (Reasoning, Tools, or Text)\n if (entry.type === \"PLANNER_RESPONSE\") {\n if (entry.input_tokens) currentAssistantTurn.tokens.input += entry.input_tokens;\n if (entry.output_tokens) currentAssistantTurn.tokens.output += entry.output_tokens;\n if (entry.cache_read_tokens) currentAssistantTurn.tokens.cached += entry.cache_read_tokens;\n\n if (entry.thinking) {\n currentAssistantTurn.thinking += (currentAssistantTurn.thinking ? \"\\n\\n\" : \"\") + entry.thinking;\n }\n\n if (Array.isArray(entry.tool_calls) && entry.tool_calls.length > 0) {\n for (let tIdx = 0; tIdx < entry.tool_calls.length; tIdx++) {\n const tc = entry.tool_calls[tIdx];\n const toolId = tc.id || `${entry.step_index}-${tIdx}`;\n const cat = normalizeToolCategory(tc.name, tc.args);\n\n currentAssistantTurn.toolCalls.push({\n id: toolId,\n name: tc.name,\n type: cat,\n summary: tc.toolSummary || tc.name,\n action: tc.toolAction || tc.name,\n args: tc.args || {},\n output: \"\",\n status: entry.status === \"RUNNING\" ? \"running\" : \"completed\",\n });\n }\n }\n\n // If content is present\n if (entry.content) {\n if (!currentAssistantTurn.content) {\n currentAssistantTurn.content = entry.content;\n } else {\n // If already has content and new content arrives, append\n currentAssistantTurn.content += \"\\n\\n\" + entry.content;\n }\n }\n }\n\n // 3. Generic (Tool execution output / stdout / stderr)\n if (entry.type === \"GENERIC\" && entry.content) {\n if (currentAssistantTurn.toolCalls.length > 0) {\n // Associate with the last tool call that doesn't have an output yet\n const targetTc = [...currentAssistantTurn.toolCalls].reverse().find((tc) => !tc.output) ||\n currentAssistantTurn.toolCalls[currentAssistantTurn.toolCalls.length - 1];\n\n if (targetTc) {\n targetTc.output = entry.content;\n if (entry.status === \"ERROR\") {\n targetTc.status = \"error\";\n }\n }\n }\n }\n }\n\n // Push final assistant turn\n if (currentAssistantTurn && (currentAssistantTurn.content || currentAssistantTurn.toolCalls.length > 0 || currentAssistantTurn.thinking)) {\n turns.push(currentAssistantTurn);\n }\n\n const durationMs = (startedAt && updatedAt) ? Math.max(0, new Date(updatedAt).getTime() - new Date(startedAt).getTime()) : 0;\n\n const rawModel = extractModelFromTranscript(rawContent);\n let defaultCliModel = null;\n if (!rawModel) {\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 const modelName = normalizeModel(rawModel || defaultCliModel);\n\n return {\n ok: true,\n session: {\n id: safeId,\n cli: \"antigravity\",\n model: modelName,\n startedAt,\n updatedAt,\n durationMs,\n cwd: detectedCwd,\n tokens: {\n input: totalIn,\n output: totalOut,\n cached: totalCached,\n },\n turnsCount: turns.length,\n },\n turns,\n };\n}\n","import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport os from \"node:os\";\n\nfunction normalizeClaudeTool(name, input = {}) {\n const n = String(name || \"\").toLowerCase();\n const cmd = String(input.command || \"\").trim();\n const cmdLower = cmd.toLowerCase();\n\n if (n === \"bash\") {\n if (cmdLower.startsWith(\"docker\") || cmdLower.includes(\"docker exec\")) return \"docker\";\n if (cmdLower.startsWith(\"git \") || cmdLower.startsWith(\"gh \")) return \"git\";\n if (cmdLower.includes(\"gitnexus\")) return \"gitnexus\";\n return \"bash\";\n }\n\n if (n.includes(\"read\") || n.includes(\"view\") || n.includes(\"glob\")) return \"read\";\n if (n.includes(\"edit\") || n.includes(\"write\") || n.includes(\"patch\") || n.includes(\"replace\")) return \"edit\";\n if (n.includes(\"grep\") || n.includes(\"search\")) return \"search\";\n if (n.includes(\"agent\") || n.includes(\"task\")) return \"agent\";\n if (n.includes(\"browser\") || n.includes(\"playwright\")) return \"browser\";\n if (n.includes(\"gitnexus\")) return \"gitnexus\";\n\n return \"mcp\";\n}\n\n/**\n * Parses a Claude Code session into normalized chat turns.\n * @param {string} sessionId\n * @returns {Promise<{ ok: boolean, session: any, turns: any[] }>}\n */\nexport async function parseClaudeTranscript(sessionId) {\n const safeId = String(sessionId || \"\").trim();\n if (!/^[a-zA-Z0-9_-]{4,64}$/.test(safeId)) {\n throw new Error(\"Invalid session ID format\");\n }\n\n const homeDir = os.homedir();\n const sessionsDir = path.join(homeDir, \".claude\", \"sessions\");\n const projectsDir = path.join(homeDir, \".claude\", \"projects\");\n\n let meta = {};\n try {\n const rawMeta = await fs.readFile(path.join(sessionsDir, `${safeId}.json`), \"utf-8\");\n meta = JSON.parse(rawMeta);\n } catch {\n // Check if safeId matches a PID or name in sessionsDir\n try {\n const sessionFiles = await fs.readdir(sessionsDir).catch(() => []);\n for (const sf of sessionFiles) {\n if (!sf.endsWith(\".json\")) continue;\n const raw = await fs.readFile(path.join(sessionsDir, sf), \"utf-8\").catch(() => null);\n if (!raw) continue;\n const parsed = JSON.parse(raw);\n if (\n String(parsed.pid) === safeId ||\n parsed.sessionId === safeId ||\n parsed.sessionId?.startsWith(safeId) ||\n parsed.name === safeId\n ) {\n meta = parsed;\n break;\n }\n }\n } catch {}\n }\n\n const targetId = meta.sessionId || safeId;\n\n // Find candidate jsonl transcript\n let transcriptPath = null;\n try {\n const projectFolders = await fs.readdir(projectsDir);\n for (const pf of projectFolders) {\n // 1. Try exact targetId.jsonl\n const candidate = path.join(projectsDir, pf, `${targetId}.jsonl`);\n try {\n await fs.access(candidate);\n transcriptPath = candidate;\n break;\n } catch {\n // try next\n }\n\n // 2. Try prefix matching or files in folder\n const files = await fs.readdir(path.join(projectsDir, pf)).catch(() => []);\n const matched = files.find((f) =>\n f.endsWith(\".jsonl\") && (\n f.startsWith(safeId) ||\n (meta.sessionId && f.startsWith(meta.sessionId)) ||\n f.replace(\".jsonl\", \"\").startsWith(safeId)\n )\n );\n if (matched) {\n transcriptPath = path.join(projectsDir, pf, matched);\n break;\n }\n }\n } catch {\n // projects folder might be empty\n }\n\n if (!transcriptPath) {\n throw new Error(`Claude transcript not found for session ${safeId}`);\n }\n\n // Security check: ensure resolved candidate path stays within projectsDir\n if (!path.resolve(transcriptPath).startsWith(path.resolve(projectsDir))) {\n throw new Error(\"Directory traversal detected in Claude transcript path\");\n }\n\n const rawContent = await fs.readFile(transcriptPath, \"utf-8\");\n const lines = rawContent.split(\"\\n\");\n\n const turns = [];\n let currentAssistantTurn = null;\n\n let totalIn = 0;\n let totalOut = 0;\n let totalCached = 0;\n let model = meta.model || \"claude-3-7-sonnet\";\n let startedAt = meta.startedAt ? new Date(meta.startedAt).toISOString() : null;\n let updatedAt = meta.updatedAt ? new Date(meta.updatedAt).toISOString() : null;\n\n for (let idx = 0; idx < lines.length; idx++) {\n const line = lines[idx].trim();\n if (!line) continue;\n\n let entry;\n try {\n entry = JSON.parse(line);\n } catch {\n if (idx === lines.length - 1) continue;\n continue;\n }\n\n const timestamp = entry.timestamp || new Date().toISOString();\n if (!startedAt) startedAt = timestamp;\n updatedAt = timestamp;\n\n const msg = entry.message;\n if (!msg) continue;\n\n if (msg.model) model = msg.model;\n\n const u = msg.usage;\n if (u) {\n if (u.input_tokens) totalIn += u.input_tokens;\n if (u.output_tokens) totalOut += u.output_tokens;\n if (u.cache_read_input_tokens) totalCached += u.cache_read_input_tokens;\n }\n\n // 1. User Message\n if (msg.role === \"user\") {\n if (currentAssistantTurn) {\n turns.push(currentAssistantTurn);\n currentAssistantTurn = null;\n }\n\n let contentStr = \"\";\n if (typeof msg.content === \"string\") {\n contentStr = msg.content;\n } else if (Array.isArray(msg.content)) {\n for (const blk of msg.content) {\n if (blk.type === \"text\") contentStr += (contentStr ? \"\\n\" : \"\") + blk.text;\n // Handle tool results that come back in user message\n if (blk.type === \"tool_result\" && currentAssistantTurn) {\n const toolId = blk.tool_use_id;\n const targetTc = currentAssistantTurn.toolCalls.find((t) => t.id === toolId);\n if (targetTc) {\n targetTc.output = typeof blk.content === \"string\" ? blk.content : JSON.stringify(blk.content);\n if (blk.is_error) targetTc.status = \"error\";\n }\n }\n }\n }\n\n if (contentStr.trim()) {\n turns.push({\n id: `turn-user-${turns.length}`,\n role: \"user\",\n timestamp,\n content: contentStr.trim(),\n });\n }\n\n currentAssistantTurn = {\n id: `turn-asst-${turns.length}`,\n role: \"assistant\",\n timestamp,\n content: \"\",\n thinking: \"\",\n toolCalls: [],\n tokens: {\n input: u?.input_tokens || 0,\n output: u?.output_tokens || 0,\n cached: u?.cache_read_input_tokens || 0,\n },\n status: \"completed\",\n };\n continue;\n }\n\n // 2. Assistant Message\n if (msg.role === \"assistant\") {\n if (!currentAssistantTurn) {\n currentAssistantTurn = {\n id: `turn-asst-${turns.length}`,\n role: \"assistant\",\n timestamp,\n content: \"\",\n thinking: \"\",\n toolCalls: [],\n tokens: { input: 0, output: 0, cached: 0 },\n status: \"completed\",\n };\n }\n\n if (u) {\n currentAssistantTurn.tokens.input += u.input_tokens || 0;\n currentAssistantTurn.tokens.output += u.output_tokens || 0;\n currentAssistantTurn.tokens.cached += u.cache_read_input_tokens || 0;\n }\n\n if (typeof msg.content === \"string\") {\n currentAssistantTurn.content += (currentAssistantTurn.content ? \"\\n\\n\" : \"\") + msg.content;\n } else if (Array.isArray(msg.content)) {\n for (const blk of msg.content) {\n if (blk.type === \"text\" && blk.text) {\n currentAssistantTurn.content += (currentAssistantTurn.content ? \"\\n\\n\" : \"\") + blk.text;\n }\n if (blk.type === \"thinking\" && blk.thinking) {\n currentAssistantTurn.thinking += (currentAssistantTurn.thinking ? \"\\n\\n\" : \"\") + blk.thinking;\n }\n if (blk.type === \"tool_use\") {\n const toolType = normalizeClaudeTool(blk.name, blk.input);\n currentAssistantTurn.toolCalls.push({\n id: blk.id || `tool-${currentAssistantTurn.toolCalls.length}`,\n name: blk.name,\n type: toolType,\n summary: blk.input?.command ? `bash: ${blk.input.command.slice(0, 40)}` : blk.name,\n action: blk.name,\n args: blk.input || {},\n output: \"\",\n status: \"completed\",\n });\n }\n }\n }\n }\n }\n\n if (currentAssistantTurn && (currentAssistantTurn.content || currentAssistantTurn.toolCalls.length > 0 || currentAssistantTurn.thinking)) {\n turns.push(currentAssistantTurn);\n }\n\n const durationMs = (startedAt && updatedAt) ? Math.max(0, new Date(updatedAt).getTime() - new Date(startedAt).getTime()) : 0;\n\n return {\n ok: true,\n session: {\n id: safeId,\n cli: \"claude\",\n model,\n startedAt,\n updatedAt,\n durationMs,\n cwd: meta.cwd || null,\n tokens: {\n input: totalIn,\n output: totalOut,\n cached: totalCached,\n },\n turnsCount: turns.length,\n },\n turns,\n };\n}\n","import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport os from \"node:os\";\nimport { normalizeCodexTool, classifyCodexSession } from \"../watchers/codexWatcher.js\";\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 content;\n if (!Array.isArray(content)) return \"\";\n return content\n .map((block) => (typeof block?.text === \"string\" ? block.text : \"\"))\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nfunction isSyntheticInstruction(text) {\n if (!text) return true;\n const trimmed = text.trim();\n return (\n trimmed.startsWith(\"# AGENTS.md instructions\") ||\n trimmed.startsWith(\"<INSTRUCTIONS>\") ||\n trimmed.startsWith(\"<permissions instructions>\") ||\n trimmed.startsWith(\"<model_switch>\") ||\n trimmed.startsWith(\"<multi_agent_mode>\") ||\n trimmed.startsWith(\"<environment_context>\") ||\n trimmed.startsWith(\"<skills_instructions>\")\n );\n}\n\n/**\n * Searches ~/.codex/sessions/ recursively for a rollout file matching the session ID or prefix.\n */\nasync function findCodexRolloutPath(safeId) {\n const sessionsRoot = path.join(os.homedir(), \".codex\", \"sessions\");\n\n let years;\n try {\n years = await fs.readdir(sessionsRoot, { withFileTypes: true });\n } catch {\n return null;\n }\n\n // Sort years descending (newest first)\n const yearDirs = years.filter((d) => d.isDirectory()).map((d) => d.name).sort().reverse();\n\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 const dayPath = path.join(monthPath, day);\n let files;\n try {\n files = await fs.readdir(dayPath);\n } catch {\n continue;\n }\n\n for (const file of files) {\n if (!file.endsWith(\".jsonl\")) continue;\n if (file.includes(safeId)) {\n return path.join(dayPath, file);\n }\n }\n }\n }\n }\n\n return null;\n}\n\n/**\n * Parses an OpenAI Codex session rollout into normalized turns\n * compatible with AGMon Chat, Time-Machine Replay, and Diff Viewer.\n *\n * @param {string} sessionId - Full or short session ID (e.g. \"01a1199a-faf1...\" or \"01a1199a\")\n * @returns {Promise<{ ok: boolean, session: any, turns: any[] }>}\n */\nexport async function parseCodexTranscript(sessionId) {\n const cleanId = String(sessionId || \"\").replace(/^codex-/, \"\").trim();\n if (!cleanId || !/^[a-zA-Z0-9_-]{4,64}$/.test(cleanId)) {\n throw new Error(\"Invalid Codex session ID format\");\n }\n\n const rolloutPath = await findCodexRolloutPath(cleanId);\n if (!rolloutPath) {\n throw new Error(`Codex transcript not found for session \"${sessionId}\"`);\n }\n\n const raw = await fs.readFile(rolloutPath, \"utf-8\");\n const lines = raw.split(\"\\n\");\n\n let sessionMeta = null;\n let model = \"gpt-5.6-terra\";\n let cwd = process.cwd();\n let originator = \"codex-cli\";\n let source = \"cli\";\n let startedAt = null;\n let updatedAt = null;\n\n let totalInput = 0;\n let totalOutput = 0;\n let totalCached = 0;\n\n const turns = [];\n let currentAssistantTurn = null;\n\n for (let idx = 0; idx < lines.length; idx++) {\n const line = lines[idx].trim();\n if (!line) continue;\n\n let entry;\n try {\n entry = JSON.parse(line);\n } catch {\n continue;\n }\n\n const timestamp = entry.timestamp || new Date().toISOString();\n if (!startedAt) startedAt = timestamp;\n updatedAt = timestamp;\n\n const payload = entry.payload;\n if (!payload) continue;\n\n if (entry.type === \"session_meta\") {\n sessionMeta = payload;\n if (payload.cwd) cwd = payload.cwd;\n if (payload.originator) originator = payload.originator;\n if (payload.source) source = payload.source;\n if (payload.timestamp) startedAt = payload.timestamp;\n continue;\n }\n\n if (entry.type === \"turn_context\") {\n if (payload.model) model = payload.model;\n if (payload.cwd) cwd = payload.cwd;\n continue;\n }\n\n if (entry.type === \"response_item\") {\n const type = payload.type;\n\n // 1. Message: User or Assistant\n if (type === \"message\") {\n const role = payload.role;\n\n if (role === \"user\") {\n const rawText = textFromContent(payload.content);\n if (isSyntheticInstruction(rawText)) continue;\n\n // If there was an active assistant turn, finalize it before starting new turn\n if (currentAssistantTurn) {\n turns.push(currentAssistantTurn);\n currentAssistantTurn = null;\n }\n\n turns.push({\n id: `turn-user-${turns.length}`,\n role: \"user\",\n timestamp,\n content: rawText.trim(),\n });\n\n currentAssistantTurn = {\n id: `turn-asst-${turns.length}`,\n role: \"assistant\",\n timestamp,\n content: \"\",\n thinking: \"\",\n toolCalls: [],\n tokens: { input: 0, output: 0, cached: 0 },\n status: \"completed\",\n };\n continue;\n }\n\n if (role === \"assistant\") {\n if (!currentAssistantTurn) {\n currentAssistantTurn = {\n id: `turn-asst-${turns.length}`,\n role: \"assistant\",\n timestamp,\n content: \"\",\n thinking: \"\",\n toolCalls: [],\n tokens: { input: 0, output: 0, cached: 0 },\n status: \"completed\",\n };\n }\n\n const asstText = textFromContent(payload.content);\n if (asstText) {\n currentAssistantTurn.content += (currentAssistantTurn.content ? \"\\n\\n\" : \"\") + asstText.trim();\n }\n continue;\n }\n\n continue;\n }\n\n // 2. Reasoning / Thinking\n if (type === \"reasoning\") {\n if (!currentAssistantTurn) {\n currentAssistantTurn = {\n id: `turn-asst-${turns.length}`,\n role: \"assistant\",\n timestamp,\n content: \"\",\n thinking: \"\",\n toolCalls: [],\n tokens: { input: 0, output: 0, cached: 0 },\n status: \"completed\",\n };\n }\n\n let thinkingText = \"\";\n if (Array.isArray(payload.summary) && payload.summary.length > 0) {\n thinkingText = payload.summary.join(\"\\n\");\n } else if (payload.content) {\n thinkingText = typeof payload.content === \"string\" ? payload.content : JSON.stringify(payload.content);\n } else if (payload.encrypted_content) {\n thinkingText = \"Thinking process completed.\";\n }\n\n if (thinkingText) {\n currentAssistantTurn.thinking += (currentAssistantTurn.thinking ? \"\\n\\n\" : \"\") + thinkingText;\n }\n continue;\n }\n\n // 3. Function Call / Tool Invocations\n if (type === \"function_call\" || type === \"local_shell_call\" || type === \"custom_tool_call\") {\n if (!currentAssistantTurn) {\n currentAssistantTurn = {\n id: `turn-asst-${turns.length}`,\n role: \"assistant\",\n timestamp,\n content: \"\",\n thinking: \"\",\n toolCalls: [],\n tokens: { input: 0, output: 0, cached: 0 },\n status: \"completed\",\n };\n }\n\n let parsedArgs = {};\n if (typeof payload.arguments === \"string\") {\n try {\n parsedArgs = JSON.parse(payload.arguments);\n } catch {\n parsedArgs = { raw: payload.arguments };\n }\n } else if (payload.arguments && typeof payload.arguments === \"object\") {\n parsedArgs = payload.arguments;\n }\n\n const toolName = payload.name || payload.tool || \"tool\";\n const { type: toolType, detail } = normalizeCodexTool(toolName, parsedArgs);\n const callId = payload.call_id || payload.id || `tool-${currentAssistantTurn.toolCalls.length}`;\n\n currentAssistantTurn.toolCalls.push({\n id: callId,\n name: toolName,\n type: toolType,\n summary: detail || toolName,\n action: toolName,\n args: parsedArgs,\n output: \"\",\n status: \"completed\",\n });\n continue;\n }\n\n // 4. Function Call Output / Tool Result\n if (type === \"function_call_output\") {\n const callId = payload.call_id;\n const outputVal = typeof payload.output === \"string\" ? payload.output : JSON.stringify(payload.output || \"\");\n\n if (currentAssistantTurn) {\n const match = currentAssistantTurn.toolCalls.find((t) => t.id === callId);\n if (match) {\n match.output = outputVal;\n if (outputVal.includes(\"exited with code 1\") || outputVal.includes(\"Error:\") || outputVal.includes(\"failed\")) {\n match.status = \"error\";\n }\n }\n }\n continue;\n }\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) {\n if (usage.input_tokens) totalInput = usage.input_tokens;\n if (usage.output_tokens) totalOutput = usage.output_tokens;\n if (usage.cached_input_tokens) totalCached = usage.cached_input_tokens;\n if (currentAssistantTurn) {\n currentAssistantTurn.tokens = {\n input: usage.input_tokens || 0,\n output: usage.output_tokens || 0,\n cached: usage.cached_input_tokens || 0,\n };\n }\n }\n continue;\n }\n\n if (payload.type === \"task_complete\") {\n if (payload.error?.message && currentAssistantTurn) {\n currentAssistantTurn.status = \"error\";\n currentAssistantTurn.error = payload.error.message;\n if (!currentAssistantTurn.content) {\n currentAssistantTurn.content = payload.error.message;\n }\n }\n }\n }\n }\n\n // Push final assistant turn if present\n if (currentAssistantTurn && (currentAssistantTurn.content || currentAssistantTurn.toolCalls.length > 0 || currentAssistantTurn.thinking)) {\n turns.push(currentAssistantTurn);\n }\n\n const { clientType, label } = classifyCodexSession(originator, source);\n const startMs = startedAt ? new Date(startedAt).getTime() : Date.now();\n const endMs = updatedAt ? new Date(updatedAt).getTime() : startMs;\n\n return {\n ok: true,\n session: {\n id: sessionMeta?.session_id || cleanId,\n cli: \"codex\",\n clientType,\n label,\n model,\n startedAt,\n updatedAt,\n durationMs: Math.max(0, endMs - startMs),\n cwd,\n tokens: {\n input: totalInput,\n output: totalOutput,\n cached: totalCached,\n },\n turnsCount: turns.length,\n },\n turns,\n };\n}\n","/**\n * Secret and credential redaction utility to prevent exposing\n * API keys, authorization tokens, or sensitive credentials in logs.\n */\n\nconst SECRET_PATTERNS = [\n // Bearer / Authorization tokens\n /(Bearer\\s+)[a-zA-Z0-9_\\-\\.]{16,}/gi,\n /(Basic\\s+)[a-zA-Z0-9+\\/=]{16,}/gi,\n\n // Known API Key Prefixes\n /(sk-[a-zA-Z0-9]{20,})/g, // OpenAI / Anthropic-like keys\n /(ghp_[a-zA-Z0-9]{36})/g, // GitHub Personal Access Token\n /(gho_[a-zA-Z0-9]{36})/g, // GitHub OAuth Token\n /(github_pat_[a-zA-Z0-9_]{50,})/g, // GitHub Fine-grained PAT\n /(glpat-[a-zA-Z0-9\\-]{20,})/g, // GitLab Personal Access Token\n /(xox[baprs]-[a-zA-Z0-9\\-]{10,})/g, // Slack Tokens\n /(AIza[0-9A-Za-z-_]{35})/g, // Google API Key\n\n // Generic key assignments in bash or env: KEY=..., TOKEN=..., SECRET=...\n /((?:API_KEY|SECRET|TOKEN|PASSWORD|PASSWD|AUTH|PRIVATE_KEY)[\\s]*[=:][\\s]*['\"]?)([^\\s'\"&;]{8,})(['\"]?)/gi,\n\n // PEM Private keys\n /-----BEGIN [A-Z ]*PRIVATE KEY-----[\\s\\S]*?-----END [A-Z ]*PRIVATE KEY-----/g,\n];\n\n/**\n * Redacts known sensitive strings in text.\n * @param {string} text\n * @returns {string}\n */\nexport function redactSecrets(text) {\n if (typeof text !== \"string\" || !text) return text;\n\n let redacted = text;\n for (const pattern of SECRET_PATTERNS) {\n if (pattern.source.includes(\"BEGIN\")) {\n redacted = redacted.replace(pattern, \"[REDACTED_PRIVATE_KEY]\");\n } else {\n redacted = redacted.replace(pattern, (match, prefix, secret) => {\n if (prefix && secret) {\n return `${prefix}[REDACTED_SECRET]`;\n }\n return \"[REDACTED_SECRET]\";\n });\n }\n }\n\n return redacted;\n}\n\n/**\n * Deeply redacts object values (strings and nested objects/arrays).\n * @param {any} val\n * @returns {any}\n */\nexport function redactDeep(val) {\n if (typeof val === \"string\") {\n return redactSecrets(val);\n }\n if (Array.isArray(val)) {\n return val.map(redactDeep);\n }\n if (val && typeof val === \"object\") {\n const res = {};\n for (const [k, v] of Object.entries(val)) {\n if (/key|secret|token|password|auth/i.test(k) && typeof v === \"string\" && v.length > 6) {\n res[k] = \"[REDACTED_SECRET]\";\n } else {\n res[k] = redactDeep(v);\n }\n }\n return res;\n }\n return val;\n}\n","import { parseAntigravityTranscript } from \"./antigravityParser.js\";\nimport { parseClaudeTranscript } from \"./claudeParser.js\";\nimport { parseCodexTranscript } from \"./codexParser.js\";\nimport { redactDeep } from \"./secretRedactor.js\";\n\nfunction generateMockTranscript(rawId) {\n const isClaude = rawId.includes(\"claude\");\n const isCodex = rawId.includes(\"codex\");\n const model = isClaude ? \"claude-3-7-sonnet\" : isCodex ? \"gpt-5.6-terra\" : \"gemini-2.5-pro\";\n const cli = isClaude ? \"claude\" : isCodex ? \"codex\" : \"antigravity\";\n\n return {\n ok: true,\n session: {\n id: rawId,\n cli,\n model,\n startedAt: new Date(Date.now() - 15 * 60 * 1000).toISOString(),\n updatedAt: new Date().toISOString(),\n durationMs: 15 * 60 * 1000,\n cwd: \"/Users/dev/workspace/agent-factory\",\n tokens: {\n input: 42150,\n output: 3820,\n cached: 182400,\n },\n turnsCount: 2,\n },\n turns: [\n {\n id: \"mock-turn-0\",\n role: \"user\",\n timestamp: new Date(Date.now() - 15 * 60 * 1000).toISOString(),\n content: \"Fix memory leak in websocket event listeners and refactor connection pooling\",\n },\n {\n id: \"mock-turn-1\",\n role: \"assistant\",\n timestamp: new Date(Date.now() - 14 * 60 * 1000).toISOString(),\n thinking: \"Let's first inspect all websocket connection handlers across src/lib and check where removeEventListener or client.close() is missing. We should also examine the connection pool cleanup timer.\",\n toolCalls: [\n {\n id: \"tool-0\",\n name: \"grep_search\",\n type: \"search\",\n summary: \"Search: websocket.addEventListener\",\n action: \"grep_search\",\n args: { query: \"websocket.addEventListener\" },\n output: \"src/lib/wsClient.js:14: ws.addEventListener('message', onMessage);\\nsrc/lib/wsClient.js:15: ws.addEventListener('close', onClose);\",\n status: \"completed\",\n },\n {\n id: \"tool-1\",\n name: \"view_file\",\n type: \"read\",\n summary: \"Read: wsClient.js\",\n action: \"view_file\",\n args: { AbsolutePath: \"/Users/dev/workspace/agent-factory/src/lib/wsClient.js\", StartLine: 1, EndLine: 40 },\n output: \"export function createWebSocketClient() {\\n let activeWs = null;\\n // Missing cleanup on reconnect!\\n}\",\n status: \"completed\",\n },\n {\n id: \"tool-2\",\n name: \"replace_file_content\",\n type: \"edit\",\n summary: \"Edit: wsClient.js\",\n action: \"replace_file_content\",\n args: { TargetFile: \"src/lib/wsClient.js\", Description: \"Add cleanup handler on disconnect\" },\n output: \"Successfully replaced 1 block in src/lib/wsClient.js.\",\n status: \"completed\",\n },\n ],\n content: \"I investigated the WebSocket client and identified that reconnection attempts did not detach previous event listeners, causing listeners to accumulate in heap memory.\\n\\n### Fix applied:\\n1. Added `dispose()` method in `wsClient.js`.\\n2. Attached an automatic teardown hook before attempting socket reconnection.\\n\\n```javascript\\nexport function teardownSocket(ws) {\\n if (!ws) return;\\n ws.removeEventListener('message', handleMessage);\\n ws.removeEventListener('error', handleError);\\n ws.close();\\n}\\n```\",\n tokens: { input: 24500, output: 1200, cached: 95000 },\n },\n {\n id: \"mock-turn-2\",\n role: \"user\",\n timestamp: new Date(Date.now() - 10 * 60 * 1000).toISOString(),\n content: \"Run test suite to verify no memory leaks or broken connections\",\n },\n {\n id: \"mock-turn-3\",\n role: \"assistant\",\n timestamp: new Date(Date.now() - 9 * 60 * 1000).toISOString(),\n thinking: \"Executing unit test suite with npm test -- --coverage\",\n toolCalls: [\n {\n id: \"tool-3\",\n name: \"run_command\",\n type: \"bash\",\n summary: \"bash: npm test\",\n action: \"run_command\",\n args: { CommandLine: \"npm test\" },\n output: \"PASS src/lib/wsClient.test.js\\n OK connects to server (12ms)\\n OK cleans up listeners on disconnect (8ms)\\n OK pool avoids leak after 100 reconnects (45ms)\\n\\nTest Suites: 1 passed, 1 total\\nTests: 3 passed, 3 total\\nSnapshots: 0 total\\nTime: 0.85s\",\n status: \"completed\",\n },\n ],\n content: \"All 3 unit tests passed successfully. The WebSocket reconnection stress test confirmed zero memory leak over 100 simulated disconnect cycles.\",\n tokens: { input: 17650, output: 2620, cached: 87400 },\n },\n ],\n };\n}\n\n/**\n * Facade parser that auto-routes to Antigravity or Claude Code\n * and sanitizes sensitive secrets across all turns.\n *\n * @param {string} rawId - Session or Trace ID (e.g. \"17d2113b-253a-4403-bc6b-08c9d5776434\" or \"agy-17d2113b\")\n * @param {string} [cliHint] - Optional hint: \"antigravity\" | \"claude\"\n * @returns {Promise<{ ok: boolean, session: any, turns: any[] }>}\n */\nexport async function getSessionTranscript(rawId, cliHint = \"\") {\n let id = String(rawId || \"\").trim();\n\n // If mock preset ID, return synthetic rich transcript\n if (id.startsWith(\"mock-\") || id.includes(\"mock\") || id === \"demo\") {\n return generateMockTranscript(rawId);\n }\n\n // Strip prefixes like \"agy-\", \"claude-\", or \"codex-\" if present\n let cli = cliHint.toLowerCase();\n if (id.startsWith(\"agy-\")) {\n cli = \"antigravity\";\n id = id.slice(4);\n } else if (id.startsWith(\"claude-\")) {\n cli = \"claude\";\n id = id.slice(7);\n } else if (id.startsWith(\"codex-\")) {\n cli = \"codex\";\n id = id.slice(6);\n }\n\n if (cli === \"codex\") {\n try {\n const res = await parseCodexTranscript(id);\n return {\n ...res,\n session: redactDeep(res.session),\n turns: redactDeep(res.turns),\n };\n } catch (err) {\n throw err;\n }\n }\n\n // If ID was formatted as short hash in traceId, try to resolve full directory in brain\n if (cli === \"antigravity\" || !cli) {\n try {\n const res = await parseAntigravityTranscript(id);\n return {\n ...res,\n session: redactDeep(res.session),\n turns: redactDeep(res.turns),\n };\n } catch (err) {\n if (cli === \"antigravity\") {\n throw err;\n }\n }\n }\n\n if (cli === \"claude\" || !cli) {\n try {\n const res = await parseClaudeTranscript(id);\n return {\n ...res,\n session: redactDeep(res.session),\n turns: redactDeep(res.turns),\n };\n } catch (err) {\n if (cli === \"claude\") {\n throw err;\n }\n }\n }\n\n // Fallback to codex if no cli specified\n if (!cli) {\n try {\n const res = await parseCodexTranscript(id);\n return {\n ...res,\n session: redactDeep(res.session),\n turns: redactDeep(res.turns),\n };\n } catch {\n // ignore\n }\n }\n\n throw new Error(`Unable to locate transcript for session ID \"${rawId}\"`);\n}\n"],"names":["AppRouteRouteModule","RouteKind","patchFetch","_patchFetch","addRequestMeta","getRequestMeta","setRequestMeta","getTracer","SpanKind","SpanStatusCode","setManifestsSingleton","normalizeAppPath","NodeNextRequest","NodeNextResponse","NextRequestAdapter","signalFromNodeResponse","BaseServerSpan","getRevalidateReason","sendResponse","fromNodeOutgoingHttpHeaders","toNodeOutgoingHttpHeaders","getCacheControlHeader","INFINITE_CACHE","NEXT_CACHE_TAGS_HEADER","NoFallbackError","isRouteCacheOwner","CachedRouteKind","routeModule","definition","kind","APP_ROUTE","page","pathname","filename","bundlePath","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","userland","require","TURBOPACK","__NEXT_DEV_SERVER","getUserland","workAsyncStorage","workUnitAsyncStorage","serverHooks","handler","req","res","ctx","requestMeta","isDev","hrtime","bigint","srcPage","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","previewProps","normalizedSrcPage","isPrerendered","Boolean","routes","cacheOwner","isIsr","dynamicRoutes","render404","prerenderInfo","fallback","adapterPath","cacheKey","method","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","renderOpts","experimental","authInterrupts","useCacheTimeout","durableUseCacheEntries","cacheComponents","validationLevel","instantInsights","hmrRefreshHash","cacheLifeProfiles","cacheLife","staticPageGenerationTimeout","onClose","cb","on","onAfterTaskError","undefined","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","responseGenerator","previousCacheEntry","setHeader","response","handle","prerender","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","type","revalidate","collectedRevalidate","expire","collectedExpire","expireTime","cacheEntry","value","status","body","Buffer","from","arrayBuffer","cacheControl","err","isStale","silenceLog","onRequestError","routerKind","routePath","routeType","revalidateReason","isStaticGeneration","handleResponse","currentSpan","parentSpan","routeKind","isFallback","isRoutePPREnabled","error","Error","isMiss","delete","getHeader","get","set","Response","headersSent","recordException","setStatus","code","ERROR","message","setAttribute","name","writableEnded","destroyed","setAttributes","toString","rootSpanAttributes","getRootSpanAttributes","handleRequest","console","warn","route","updateName","withPropagatedContext","trace","spanName","SERVER","attributes","url","span","TOOL_MAP","view_file","read_file","replace_file_content","write_to_file","call_mcp_tool","list_resources","invoke_subagent","grep_search","list_dir","find_by_name","define_subagent","normalizeToolCategory","args","n","String","toLowerCase","srv","ServerName","tool","ToolName","includes","startsWith","cmd","CommandLine","trim","parseAntigravityTranscript","sessionId","safeId","test","homeDir","homedir","candidateDirs","join","transcriptPath","resolvedFolder","matchedBrainDir","brainDir","sessionDir","access","testPath","entries","readdir","withFileTypes","match","find","e","isDirectory","rawContent","readFile","lines","split","turns","currentAssistantTurn","totalIn","totalOut","totalCached","startedAt","updatedAt","detectedCwd","idx","length","line","entry","JSON","parse","timestamp","created_at","Date","toISOString","input_tokens","output_tokens","cache_read_tokens","Array","isArray","tool_calls","tc","Cwd","TargetFile","AbsolutePath","p","slice","push","promptText","content","id","step_index","role","thinking","toolCalls","tokens","input","output","cached","tIdx","toolId","cat","summary","toolSummary","action","toolAction","targetTc","reverse","durationMs","Math","max","getTime","rawModel","defaultCliModel","cliSettingsRaw","cliSettings","model","modelName","ok","session","cli","cwd","turnsCount"],"mappings":"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","ignoreList":[0]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[[97546,a=>{var b=a.i(64831);let c={name:"circle-alert",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],aliases:["alert-circle"]};c.node;let d=(0,b.f)(c);a.s(["f",0,d],97546)},13412,a=>{var b=a.i(64831);let c={name:"circle-check",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 9-5.5 5.5L8 12",key:"xofnsj"}]],aliases:["check-circle-2"]};c.node;let d=(0,b.f)(c);a.s(["f",0,d],13412)},85650,a=>{var b=a.i(64831);let c={name:"copy",size:24,node:[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]};c.node;let d=(0,b.f)(c);a.s(["f",0,d],85650)},86708,a=>{var b=a.i(64831);let c={name:"sparkles",size:24,node:[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],aliases:["stars"]};c.node;let d=(0,b.f)(c);a.s(["f",0,d],86708)},19895,a=>{var b=a.i(64831);let c={name:"square",size:24,node:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]};c.node;let d=(0,b.f)(c);a.s(["f",0,d],19895)},69789,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0});var d={actionAsyncStorage:function(){return f.actionAsyncStorage},workAsyncStorage:function(){return g.workAsyncStorage},workUnitAsyncStorage:function(){return h.workUnitAsyncStorage}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20635),g=a.r(56704),h=a.r(32319);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}],50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0i2rbwbkxbdog._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/lucide-react/src/icons/circle-alert.ts","../../../../node_modules/lucide-react/src/icons/circle-check.ts","../../../../node_modules/lucide-react/src/icons/copy.ts","../../../../node_modules/lucide-react/src/icons/sparkles.ts","../../../../node_modules/lucide-react/src/icons/square.ts","../../../../node_modules/next/src/client/components/server-async-storage.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'circle-alert',\n size: 24,\n node: [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['line', { x1: '12', x2: '12', y1: '8', y2: '12', key: '1pkeuh' }],\n ['line', { x1: '12', x2: '12.01', y1: '16', y2: '16', key: '4dfq90' }],\n ],\n aliases: ['alert-circle'],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name CircleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/circle-alert\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleAlert = createLucideIcon(__iconData);\n\nexport default CircleAlert;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'circle-check',\n size: 24,\n node: [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'm16 9-5.5 5.5L8 12', key: 'xofnsj' }],\n ],\n aliases: ['check-circle-2'],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name CircleCheck\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/circle-check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleCheck = createLucideIcon(__iconData);\n\nexport default CircleCheck;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'copy',\n size: 24,\n node: [\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2', key: '17jyea' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2', key: 'zix9uf' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Copy\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/copy\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Copy = createLucideIcon(__iconData);\n\nexport default Copy;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'sparkles',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z',\n key: '1s2grr',\n },\n ],\n ['path', { d: 'M20 2v4', key: '1rf3ol' }],\n ['path', { d: 'M22 4h-4', key: 'gwowj6' }],\n ['circle', { cx: '4', cy: '20', r: '2', key: '6kqj1y' }],\n ],\n aliases: ['stars'],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Sparkles\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/sparkles\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Sparkles = createLucideIcon(__iconData);\n\nexport default Sparkles;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'square',\n size: 24,\n node: [['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', key: 'afitv7' }]],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Square\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/square\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Square = createLucideIcon(__iconData);\n\nexport default Square;\n","// Client-safe access to the server-only async-storage singletons. On the\n// server these re-export the real storages; in the browser bundle this module\n// is aliased to `./server-async-storage.browser` (see\n// scripts/generate-browser-variant-aliases.mjs), which exports `undefined`\n// stubs so the AsyncLocalStorage modules are never bundled into the client.\n// Consumers must guard usage so the stubs are not dereferenced in the browser.\nexport { actionAsyncStorage } from '../../server/app-render/action-async-storage.external'\nexport { workAsyncStorage } from '../../server/app-render/work-async-storage.external'\nexport { workUnitAsyncStorage } from '../../server/app-render/work-unit-async-storage.external'\n"],"names":["actionAsyncStorage","workAsyncStorage","workUnitAsyncStorage"],"mappings":"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","ignoreList":[0,1,2,3,4,5]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[[7963,a=>{var b=a.i(64831);let c={name:"chevron-left",size:24,node:[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]};c.node;let d=(0,b.f)(c);a.s(["f",0,d],7963)},97546,a=>{var b=a.i(64831);let c={name:"circle-alert",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],aliases:["alert-circle"]};c.node;let d=(0,b.f)(c);a.s(["f",0,d],97546)},13412,a=>{var b=a.i(64831);let c={name:"circle-check",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 9-5.5 5.5L8 12",key:"xofnsj"}]],aliases:["check-circle-2"]};c.node;let d=(0,b.f)(c);a.s(["f",0,d],13412)},85650,a=>{var b=a.i(64831);let c={name:"copy",size:24,node:[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]};c.node;let d=(0,b.f)(c);a.s(["f",0,d],85650)},21612,a=>{var b=a.i(64831);let c={name:"funnel",size:24,node:[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],aliases:["filter"]};c.node;let d=(0,b.f)(c);a.s(["f",0,d],21612)},86708,a=>{var b=a.i(64831);let c={name:"sparkles",size:24,node:[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],aliases:["stars"]};c.node;let d=(0,b.f)(c);a.s(["f",0,d],86708)},19895,a=>{var b=a.i(64831);let c={name:"square",size:24,node:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]};c.node;let d=(0,b.f)(c);a.s(["f",0,d],19895)},2780,a=>{var b=a.i(74395),c=a.i(71805);let d={};a.s(["f",0,function(a,e,f){let g=0x811c9dc5;for(let b=0;b<e;b++)g^=a[b].uid,g=Math.imul(g,0x1000193)>>>0;return d[g]||function(a,e,f,g){let h={},i=0;for(let b=0;b<g;b++){let d=b<e?a[b]:c.f.EMPTY.source;h[i++]=d.source,h[i++]=d.style}let j=new b.f(h);return d[f]=j,j}(a,e,g,f)}])}],50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0qzscpxebh28_._.js.map
|