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,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[52775,e=>{var t=e.i(47909),n=e.i(74017),s=e.i(96250),a=e.i(59756),i=e.i(61916),r=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),h=e.i(70101),f=e.i(74838),g=e.i(10372),m=e.i(93695),w=e.i(9580);e.i(52474);var y=e.i(220);let _=new t.AppRouteRouteModule({definition:{kind:n.f.APP_ROUTE,page:"/api/sessions/[id]/transcript/route",pathname:"/api/sessions/[id]/transcript",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sessions/[id]/transcript/route.js",nextConfigOutput:"",userland:()=>e.r(36482),...{}}),{workAsyncStorage:k,workUnitAsyncStorage:v,serverHooks:E}=_;async function S(e,t,s){s.requestMeta&&(0,a.R)(e,s.requestMeta),_.isDev&&(0,a.i)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let k="/api/sessions/[id]/transcript/route";k=k.replace(/\/index$/,"")||"/";let v=await _.prepare(e,t,{srcPage:k,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:E,deploymentId:S,params:A,nextConfig:C,parsedUrl:R,isDraftMode:b,prerenderManifest:x,routerServerContext:T,isOnDemandRevalidate:D,revalidateOnlyGenerated:I,resolvedPathname:j,clientReferenceManifest:O,serverActionsManifest:N,previewProps:P}=v,U=(0,o.f)(k),L=!!x.routes[j]&&(_.isDev||(0,w.f)(j,_.cacheOwner,x.routes[j])),W=!!(x.dynamicRoutes[U]||L),$=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,R,!1):t.end("This page could not be found"),null);if(W&&!b){let e=x.dynamicRoutes[U];if(e&&!1===e.fallback&&!L){if(C.adapterPath)return await $();throw new m.NoFallbackError}}let M=null;!W||_.isDev||b||(M="/index"===(M=j)?"/":M),N&&O&&(0,r.f)({page:k,clientReferenceManifest:O,serverActionsManifest:N});let F=e.method||"GET",G=(0,i.v)(),Z=G.getActiveScopeSpan(),z=!!(null==T?void 0:T.isWrappedByNextServer),q=!!(0,a.w)(e,"minimalMode"),K=(0,a.w)(e,"incrementalCache")||await _.getIncrementalCache(e,C,P,x,q);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let H={params:A,previewProps:P,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:b,incrementalCache:K,hmrRefreshHash:(0,a.w)(e,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0},sharedContext:{buildId:E,deploymentId:S}},B=new l.x(e),J=new l.e(t),V=c.k.fromNodeNextRequest(B,(0,c.t)(t)),Y=async({previousCacheEntry:n})=>{try{if(!q&&D&&I&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=null===M?await _.handle(V,H):await _.prerender(V,H);e.fetchMetrics=H.renderOpts.fetchMetrics;let i=H.renderOpts.pendingWaitUntil;i&&s.waitUntil&&(s.waitUntil(i),i=void 0);let r=H.renderOpts.collectedTags;if(!W)return await (0,p.f)(B,J,a,i),null;{let e=await a.blob(),t=(0,h.S)(a.headers);r&&(t[g.M]=r),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=g.Q)&&H.renderOpts.collectedRevalidate,s=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=g.Q?!1!==n&&n>0?C.expireTime:void 0:H.renderOpts.collectedExpire;return{value:{kind:y.x.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:s}}}}catch(t){throw(null==n?void 0:n.isStale)&&await _.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,d.f)({isStaticGeneration:null!==M,isOnDemandRevalidate:D})},!1,T),t}},Q=async(a,r)=>{try{var o,l;let a=await _.handleResponse({req:e,nextConfig:C,cacheKey:M,routeKind:n.f.APP_ROUTE,isFallback:!1,previewProps:P,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:I,responseGenerator:Y,waitUntil:s.waitUntil,isMinimalMode:q});if(null!==a&&"error"in a)throw a.error;if(!W)return;if((null==a||null==(o=a.value)?void 0:o.kind)!==y.x.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==a||null==(l=a.value)?void 0:l.kind}`);q||t.setHeader("x-nextjs-cache",D?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,h.G)(a.value.headers);q&&W||i.delete(g.M),!a.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,f.f)(a.cacheControl)),await (0,p.f)(B,J,new Response(a.value.body,{headers:i,status:a.value.status||200}));return}catch(n){if(n instanceof m.NoFallbackError||await _.onRequestError(e,n,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,d.f)({isStaticGeneration:null!==M,isOnDemandRevalidate:D})},!1,T),W)throw n;if(t.headersSent){if(a){let e=n instanceof Error?n:Error("Unknown app route error");a.recordException(e),a.setStatus({code:i.J.ERROR,message:e.message}),a.setAttribute("error.type",e.name)}t.writableEnded||t.destroyed||t.end()}else await (0,p.f)(B,J,new Response(null,{status:500}));return}finally{(()=>{if(!a)return;let e=t.statusCode;a.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(a.setStatus({code:i.J.ERROR}),a.setAttribute("error.type",e.toString()));let n=G.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==u.q.handleRequest)return console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=n.get("next.route")||U,o=`${F} ${s}`;a.setAttributes({"next.route":s,"http.route":s,"next.span_name":o}),a.updateName(o),r&&r!==a&&(r.setAttribute("http.route",s),r.updateName(o))})()}};if(z&&Z)await Q(Z,void 0);else{let t=G.getActiveScopeSpan();await G.withPropagatedContext(e.headers,()=>G.trace(u.q.handleRequest,{spanName:`${F} ${k}`,kind:i.C.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Q(e,t)),void 0,!z)}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,s.f)({workAsyncStorage:k,workUnitAsyncStorage:v})},"routeModule",0,_,"serverHooks",0,E,"workAsyncStorage",0,k,"workUnitAsyncStorage",0,v])},36482,e=>{var t=e.i(89171),n=e.i(12714),s=e.i(50227),a=e.i(60526),i=e.i(53984);let r={view_file:"read",read_file:"read",replace_file_content:"edit",write_to_file:"edit",call_mcp_tool:"mcp",list_resources:"mcp",invoke_subagent:"agent",grep_search:"search",list_dir:"read",find_by_name:"read",define_subagent:"agent"};async function o(e){let t,o=String(e||"").trim();if(!/^[a-zA-Z0-9_-]{4,64}$/.test(o))throw Error("Invalid session ID format");let l=a.default.homedir(),c=[s.default.join(l,".gemini","antigravity","brain"),s.default.join(l,".gemini","antigravity-cli","brain"),s.default.join(l,".gemini","antigravity-ide","brain")],u=null,d=null;for(let e of c){let t=s.default.join(e,o);try{await n.default.access(t);let a=s.default.join(t,".system_generated","logs","transcript.jsonl");await n.default.access(a),u=a,d=e;break}catch{try{let t=(await n.default.readdir(e,{withFileTypes:!0})).find(e=>e.isDirectory()&&e.name.startsWith(o));if(t){let a=s.default.join(e,t.name,".system_generated","logs","transcript.jsonl");await n.default.access(a),u=a,t.name,d=e;break}}catch{}}}if(!u||!d)throw Error(`Transcript file not found for session ID "${o}"`);if(!s.default.resolve(u).startsWith(s.default.resolve(d)))throw Error("Directory traversal detected");try{t=await n.default.readFile(u,"utf-8")}catch(e){throw Error(`Transcript file not found: ${e.message}`)}let p=t.split("\n"),h=[],f=null,g=0,m=0,w=0,y=null,_=null,k=null;for(let e=0;e<p.length;e++){let t,n=p[e].trim();if(!n)continue;try{t=JSON.parse(n)}catch{p.length;continue}let s=t.created_at||new Date().toISOString();if(y||(y=s),_=s,t.input_tokens&&(g+=t.input_tokens),t.output_tokens&&(m+=t.output_tokens),t.cache_read_tokens&&(w+=t.cache_read_tokens),Array.isArray(t.tool_calls)){for(let e of t.tool_calls)if(e.args?.Cwd&&!k&&(k=e.args.Cwd),!k&&(e.args?.TargetFile||e.args?.AbsolutePath)){let t=e.args.TargetFile||e.args.AbsolutePath;t.includes("/Projects/")&&(k=t.split("/").slice(0,5).join("/"))}}if("USER_INPUT"===t.type){f&&(h.push(f),f=null);let e=String(t.content||"");e=e.replace(/<USER_REQUEST>([\s\S]*?)<\/USER_REQUEST>/g,"$1").replace(/<ADDITIONAL_METADATA>[\s\S]*?<\/ADDITIONAL_METADATA>/g,"").replace(/<USER_SETTINGS_CHANGE>[\s\S]*?<\/USER_SETTINGS_CHANGE>/g,"").trim(),h.push({id:`turn-user-${t.step_index||h.length}`,role:"user",timestamp:s,content:e}),f={id:`turn-asst-${(t.step_index||h.length)+1}`,role:"assistant",timestamp:s,content:"",thinking:"",toolCalls:[],tokens:{input:0,output:0,cached:0},status:"completed"};continue}if(f||(f={id:`turn-asst-${h.length}`,role:"assistant",timestamp:s,content:"",thinking:"",toolCalls:[],tokens:{input:0,output:0,cached:0},status:"completed"}),"PLANNER_RESPONSE"===t.type){if(t.input_tokens&&(f.tokens.input+=t.input_tokens),t.output_tokens&&(f.tokens.output+=t.output_tokens),t.cache_read_tokens&&(f.tokens.cached+=t.cache_read_tokens),t.thinking&&(f.thinking+=(f.thinking?"\n\n":"")+t.thinking),Array.isArray(t.tool_calls)&&t.tool_calls.length>0)for(let e=0;e<t.tool_calls.length;e++){let n=t.tool_calls[e],s=n.id||`${t.step_index}-${e}`,a=function(e,t={}){let n=String(e||"").toLowerCase();if("call_mcp_tool"===n){let e=String(t.ServerName||"").toLowerCase(),n=String(t.ToolName||"").toLowerCase();return e.includes("gitnexus")||n.includes("cypher")||n.includes("impact")?"gitnexus":e.includes("playwright")||e.includes("browser")||n.startsWith("browser_")?"browser":"mcp"}if("run_command"===n){let e=String(t.CommandLine||"").trim().toLowerCase();return e.startsWith("docker")||e.includes("docker exec")?"docker":e.startsWith("git ")||e.startsWith("gh ")?"git":e.includes("gitnexus")?"gitnexus":"bash"}return r[e]?r[e]:n.includes("read")||n.includes("view")||n.includes("list")||n.includes("dir")?"read":n.includes("edit")||n.includes("write")||n.includes("patch")||n.includes("replace")?"edit":n.includes("search")||n.includes("grep")?"search":n.includes("agent")||n.includes("message")?"agent":"mcp"}(n.name,n.args);f.toolCalls.push({id:s,name:n.name,type:a,summary:n.toolSummary||n.name,action:n.toolAction||n.name,args:n.args||{},output:"",status:"RUNNING"===t.status?"running":"completed"})}t.content&&(f.content?f.content+="\n\n"+t.content:f.content=t.content)}if("GENERIC"===t.type&&t.content&&f.toolCalls.length>0){let e=[...f.toolCalls].reverse().find(e=>!e.output)||f.toolCalls[f.toolCalls.length-1];e&&(e.output=t.content,"ERROR"===t.status&&(e.status="error"))}}f&&(f.content||f.toolCalls.length>0||f.thinking)&&h.push(f);let v=y&&_?Math.max(0,new Date(_).getTime()-new Date(y).getTime()):0,E=(0,i.f)(t),S=null;if(!E)try{let e=await n.default.readFile(s.default.join(l,".gemini","antigravity-cli","settings.json"),"utf-8"),t=JSON.parse(e);t.model&&(S=t.model)}catch{}return{ok:!0,session:{id:o,cli:"antigravity",model:(0,i.R)(E||S),startedAt:y,updatedAt:_,durationMs:v,cwd:k,tokens:{input:g,output:m,cached:w},turnsCount:h.length},turns:h}}async function l(e){let t=String(e||"").trim();if(!/^[a-zA-Z0-9_-]{4,64}$/.test(t))throw Error("Invalid session ID format");let i=a.default.homedir(),r=s.default.join(i,".claude","sessions"),o=s.default.join(i,".claude","projects"),l={};try{let e=await n.default.readFile(s.default.join(r,`${t}.json`),"utf-8");l=JSON.parse(e)}catch{try{for(let e of(await n.default.readdir(r).catch(()=>[]))){if(!e.endsWith(".json"))continue;let a=await n.default.readFile(s.default.join(r,e),"utf-8").catch(()=>null);if(!a)continue;let i=JSON.parse(a);if(String(i.pid)===t||i.sessionId===t||i.sessionId?.startsWith(t)||i.name===t){l=i;break}}}catch{}}let c=l.sessionId||t,u=null;try{for(let e of(await n.default.readdir(o))){let a=s.default.join(o,e,`${c}.jsonl`);try{await n.default.access(a),u=a;break}catch{}let i=(await n.default.readdir(s.default.join(o,e)).catch(()=>[])).find(e=>e.endsWith(".jsonl")&&(e.startsWith(t)||l.sessionId&&e.startsWith(l.sessionId)||e.replace(".jsonl","").startsWith(t)));if(i){u=s.default.join(o,e,i);break}}}catch{}if(!u)throw Error(`Claude transcript not found for session ${t}`);if(!s.default.resolve(u).startsWith(s.default.resolve(o)))throw Error("Directory traversal detected in Claude transcript path");let d=(await n.default.readFile(u,"utf-8")).split("\n"),p=[],h=null,f=0,g=0,m=0,w=l.model||"claude-3-7-sonnet",y=l.startedAt?new Date(l.startedAt).toISOString():null,_=l.updatedAt?new Date(l.updatedAt).toISOString():null;for(let e=0;e<d.length;e++){let t,n=d[e].trim();if(!n)continue;try{t=JSON.parse(n)}catch{d.length;continue}let s=t.timestamp||new Date().toISOString();y||(y=s),_=s;let a=t.message;if(!a)continue;a.model&&(w=a.model);let i=a.usage;if(i&&(i.input_tokens&&(f+=i.input_tokens),i.output_tokens&&(g+=i.output_tokens),i.cache_read_input_tokens&&(m+=i.cache_read_input_tokens)),"user"===a.role){h&&(p.push(h),h=null);let e="";if("string"==typeof a.content)e=a.content;else if(Array.isArray(a.content)){for(let t of a.content)if("text"===t.type&&(e+=(e?"\n":"")+t.text),"tool_result"===t.type&&h){let e=t.tool_use_id,n=h.toolCalls.find(t=>t.id===e);n&&(n.output="string"==typeof t.content?t.content:JSON.stringify(t.content),t.is_error&&(n.status="error"))}}e.trim()&&p.push({id:`turn-user-${p.length}`,role:"user",timestamp:s,content:e.trim()}),h={id:`turn-asst-${p.length}`,role:"assistant",timestamp:s,content:"",thinking:"",toolCalls:[],tokens:{input:i?.input_tokens||0,output:i?.output_tokens||0,cached:i?.cache_read_input_tokens||0},status:"completed"};continue}if("assistant"===a.role){if(h||(h={id:`turn-asst-${p.length}`,role:"assistant",timestamp:s,content:"",thinking:"",toolCalls:[],tokens:{input:0,output:0,cached:0},status:"completed"}),i&&(h.tokens.input+=i.input_tokens||0,h.tokens.output+=i.output_tokens||0,h.tokens.cached+=i.cache_read_input_tokens||0),"string"==typeof a.content)h.content+=(h.content?"\n\n":"")+a.content;else if(Array.isArray(a.content)){for(let e of a.content)if("text"===e.type&&e.text&&(h.content+=(h.content?"\n\n":"")+e.text),"thinking"===e.type&&e.thinking&&(h.thinking+=(h.thinking?"\n\n":"")+e.thinking),"tool_use"===e.type){let t=function(e,t={}){let n=String(e||"").toLowerCase(),s=String(t.command||"").trim().toLowerCase();return"bash"===n?s.startsWith("docker")||s.includes("docker exec")?"docker":s.startsWith("git ")||s.startsWith("gh ")?"git":s.includes("gitnexus")?"gitnexus":"bash":n.includes("read")||n.includes("view")||n.includes("glob")?"read":n.includes("edit")||n.includes("write")||n.includes("patch")||n.includes("replace")?"edit":n.includes("grep")||n.includes("search")?"search":n.includes("agent")||n.includes("task")?"agent":n.includes("browser")||n.includes("playwright")?"browser":n.includes("gitnexus")?"gitnexus":"mcp"}(e.name,e.input);h.toolCalls.push({id:e.id||`tool-${h.toolCalls.length}`,name:e.name,type:t,summary:e.input?.command?`bash: ${e.input.command.slice(0,40)}`:e.name,action:e.name,args:e.input||{},output:"",status:"completed"})}}}}h&&(h.content||h.toolCalls.length>0||h.thinking)&&p.push(h);let k=y&&_?Math.max(0,new Date(_).getTime()-new Date(y).getTime()):0;return{ok:!0,session:{id:t,cli:"claude",model:w,startedAt:y,updatedAt:_,durationMs:k,cwd:l.cwd||null,tokens:{input:f,output:g,cached:m},turnsCount:p.length},turns:p}}let c=[/(Bearer\s+)[a-zA-Z0-9_\-\.]{16,}/gi,/(Basic\s+)[a-zA-Z0-9+\/=]{16,}/gi,/(sk-[a-zA-Z0-9]{20,})/g,/(ghp_[a-zA-Z0-9]{36})/g,/(gho_[a-zA-Z0-9]{36})/g,/(github_pat_[a-zA-Z0-9_]{50,})/g,/(glpat-[a-zA-Z0-9\-]{20,})/g,/(xox[baprs]-[a-zA-Z0-9\-]{10,})/g,/(AIza[0-9A-Za-z-_]{35})/g,/((?:API_KEY|SECRET|TOKEN|PASSWORD|PASSWD|AUTH|PRIVATE_KEY)[\s]*[=:][\s]*['"]?)([^\s'"&;]{8,})(['"]?)/gi,/-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]*?-----END [A-Z ]*PRIVATE KEY-----/g];function u(e){if("string"==typeof e){if("string"!=typeof e||!e)return e;let t=e;for(let e of c)t=e.source.includes("BEGIN")?t.replace(e,"[REDACTED_PRIVATE_KEY]"):t.replace(e,(e,t,n)=>t&&n?`${t}[REDACTED_SECRET]`:"[REDACTED_SECRET]");return t}if(Array.isArray(e))return e.map(u);if(e&&"object"==typeof e){let t={};for(let[n,s]of Object.entries(e))/key|secret|token|password|auth/i.test(n)&&"string"==typeof s&&s.length>6?t[n]="[REDACTED_SECRET]":t[n]=u(s);return t}return e}async function d(e,t=""){let n=String(e||"").trim();if(n.startsWith("mock-")||n.includes("mock")||"demo"===n){let t;return t=e.includes("claude"),{ok:!0,session:{id:e,cli:t?"claude":"antigravity",model:t?"claude-3-7-sonnet":"gemini-2.5-pro",startedAt:new Date(Date.now()-9e5).toISOString(),updatedAt:new Date().toISOString(),durationMs:9e5,cwd:"/Users/dev/workspace/agent-factory",tokens:{input:42150,output:3820,cached:182400},turnsCount:2},turns:[{id:"mock-turn-0",role:"user",timestamp:new Date(Date.now()-9e5).toISOString(),content:"Fix memory leak in websocket event listeners and refactor connection pooling"},{id:"mock-turn-1",role:"assistant",timestamp:new Date(Date.now()-84e4).toISOString(),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.",toolCalls:[{id:"tool-0",name:"grep_search",type:"search",summary:"Search: websocket.addEventListener",action:"grep_search",args:{query:"websocket.addEventListener"},output:"src/lib/wsClient.js:14: ws.addEventListener('message', onMessage);\nsrc/lib/wsClient.js:15: ws.addEventListener('close', onClose);",status:"completed"},{id:"tool-1",name:"view_file",type:"read",summary:"Read: wsClient.js",action:"view_file",args:{AbsolutePath:"/Users/dev/workspace/agent-factory/src/lib/wsClient.js",StartLine:1,EndLine:40},output:"export function createWebSocketClient() {\n let activeWs = null;\n // Missing cleanup on reconnect!\n}",status:"completed"},{id:"tool-2",name:"replace_file_content",type:"edit",summary:"Edit: wsClient.js",action:"replace_file_content",args:{TargetFile:"src/lib/wsClient.js",Description:"Add cleanup handler on disconnect"},output:"Successfully replaced 1 block in src/lib/wsClient.js.",status:"completed"}],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```",tokens:{input:24500,output:1200,cached:95e3}},{id:"mock-turn-2",role:"user",timestamp:new Date(Date.now()-6e5).toISOString(),content:"Run test suite to verify no memory leaks or broken connections"},{id:"mock-turn-3",role:"assistant",timestamp:new Date(Date.now()-54e4).toISOString(),thinking:"Executing unit test suite with npm test -- --coverage",toolCalls:[{id:"tool-3",name:"run_command",type:"bash",summary:"bash: npm test",action:"run_command",args:{CommandLine:"npm test"},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",status:"completed"}],content:"All 3 unit tests passed successfully. The WebSocket reconnection stress test confirmed zero memory leak over 100 simulated disconnect cycles.",tokens:{input:17650,output:2620,cached:87400}}]}}let s=t.toLowerCase();if(n.startsWith("agy-")?(s="antigravity",n=n.slice(4)):n.startsWith("claude-")&&(s="claude",n=n.slice(7)),"antigravity"===s||!s)try{let e=await o(n);return{...e,session:u(e.session),turns:u(e.turns)}}catch(e){if("antigravity"===s)throw e}if("claude"===s||!s)try{let e=await l(n);return{...e,session:u(e.session),turns:u(e.turns)}}catch(e){if("claude"===s)throw e}throw Error(`Unable to locate transcript for session ID "${e}"`)}async function p(e,n){try{let s=await n.params,a=s?.id;if(!a||"string"!=typeof a)return t.NextResponse.json({ok:!1,error:"Missing session ID parameter"},{status:400});if(!/^[a-zA-Z0-9_-]{4,64}$/.test(a))return t.NextResponse.json({ok:!1,error:"Invalid session ID format"},{status:400});let{searchParams:i}=new URL(e.url),r=i.get("cli")||"",o=await d(a,r);return t.NextResponse.json(o,{status:200,headers:{"Cache-Control":"no-store, no-cache, must-revalidate"}})}catch(s){let e=s.message||"Failed to retrieve transcript",n=e.includes("not found")?404:e.includes("traversal")||e.includes("Invalid")?400:500;return t.NextResponse.json({ok:!1,error:e},{status:n})}}e.s(["GET",0,p,"dynamic",0,"force-dynamic"],36482)}]})();
|
|
1
|
+
(()=>{"use strict";module.exports=[52775,t=>{var e=t.i(47909),n=t.i(74017),s=t.i(96250),i=t.i(59756),r=t.i(61916),a=t.i(74677),o=t.i(69741),l=t.i(16795),c=t.i(87718),u=t.i(95169),d=t.i(47587),p=t.i(66012),h=t.i(70101),f=t.i(74838),m=t.i(10372),g=t.i(93695),w=t.i(9580);t.i(52474);var y=t.i(220);let _=new e.AppRouteRouteModule({definition:{kind:n.f.APP_ROUTE,page:"/api/sessions/[id]/transcript/route",pathname:"/api/sessions/[id]/transcript",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sessions/[id]/transcript/route.js",nextConfigOutput:"",userland:()=>t.r(36482),...{}}),{workAsyncStorage:k,workUnitAsyncStorage:v,serverHooks:S}=_;async function E(t,e,s){s.requestMeta&&(0,i.R)(t,s.requestMeta),_.isDev&&(0,i.i)(t,"devRequestTimingInternalsEnd",process.hrtime.bigint());let k="/api/sessions/[id]/transcript/route";k=k.replace(/\/index$/,"")||"/";let v=await _.prepare(t,e,{srcPage:k,multiZoneDraftMode:!1});if(!v)return e.statusCode=400,e.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:S,deploymentId:E,params:C,nextConfig:A,parsedUrl:x,isDraftMode:R,prerenderManifest:b,routerServerContext:T,isOnDemandRevalidate:D,revalidateOnlyGenerated:I,resolvedPathname:j,clientReferenceManifest:O,serverActionsManifest:N,previewProps:P}=v,W=(0,o.f)(k),$=!!b.routes[j]&&(_.isDev||(0,w.f)(j,_.cacheOwner,b.routes[j])),U=!!(b.dynamicRoutes[W]||$),L=async()=>((null==T?void 0:T.render404)?await T.render404(t,e,x,!1):e.end("This page could not be found"),null);if(U&&!R){let t=b.dynamicRoutes[W];if(t&&!1===t.fallback&&!$){if(A.adapterPath)return await L();throw new g.NoFallbackError}}let M=null;!U||_.isDev||R||(M="/index"===(M=j)?"/":M),N&&O&&(0,a.f)({page:k,clientReferenceManifest:O,serverActionsManifest:N});let F=t.method||"GET",G=(0,r.v)(),Z=G.getActiveScopeSpan(),z=!!(null==T?void 0:T.isWrappedByNextServer),q=!!(0,i.w)(t,"minimalMode"),J=(0,i.w)(t,"incrementalCache")||await _.getIncrementalCache(t,A,P,b,q);null==J||J.resetRequestCache(),globalThis.__incrementalCache=J;let K={params:C,previewProps:P,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout,durableUseCacheEntries:!!A.experimental.durableUseCacheEntries},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,isDraftMode:R,incrementalCache:J,hmrRefreshHash:(0,i.w)(t,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:s.waitUntil,onClose:t=>{e.on("close",t)},onAfterTaskError:void 0},sharedContext:{buildId:S,deploymentId:E}},H=new l.x(t),B=new l.e(e),V=c.k.fromNodeNextRequest(H,(0,c.t)(e)),Y=async({previousCacheEntry:n})=>{try{if(!q&&D&&I&&!n)return e.statusCode=404,e.setHeader("x-nextjs-cache","REVALIDATED"),e.end("This page could not be found"),null;let i=null===M?await _.handle(V,K):await _.prerender(V,K);t.fetchMetrics=K.renderOpts.fetchMetrics;let r=K.renderOpts.pendingWaitUntil;r&&s.waitUntil&&(s.waitUntil(r),r=void 0);let a=K.renderOpts.collectedTags;if(!U)return await (0,p.f)(H,B,i,r),null;{let t=await i.blob(),e=(0,h.S)(i.headers);a&&(e[m.M]=a),!e["content-type"]&&t.type&&(e["content-type"]=t.type);let n=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=m.Q)&&K.renderOpts.collectedRevalidate,s=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=m.Q?!1!==n&&n>0?A.expireTime:void 0:K.renderOpts.collectedExpire;return{value:{kind:y.x.APP_ROUTE,status:i.status,body:Buffer.from(await t.arrayBuffer()),headers:e},cacheControl:{revalidate:n,expire:s}}}}catch(e){throw(null==n?void 0:n.isStale)&&await _.onRequestError(t,e,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,d.f)({isStaticGeneration:null!==M,isOnDemandRevalidate:D})},!1,T),e}},Q=async(i,a)=>{try{var o,l;let i=await _.handleResponse({req:t,nextConfig:A,cacheKey:M,routeKind:n.f.APP_ROUTE,isFallback:!1,previewProps:P,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:I,responseGenerator:Y,waitUntil:s.waitUntil,isMinimalMode:q});if(null!==i&&"error"in i)throw i.error;if(!U)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==y.x.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==i||null==(l=i.value)?void 0:l.kind}`);q||e.setHeader("x-nextjs-cache",D?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),R&&e.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let r=(0,h.G)(i.value.headers);q&&U||r.delete(m.M),!i.cacheControl||e.getHeader("Cache-Control")||r.get("Cache-Control")||r.set("Cache-Control",(0,f.f)(i.cacheControl)),await (0,p.f)(H,B,new Response(i.value.body,{headers:r,status:i.value.status||200}));return}catch(n){if(n instanceof g.NoFallbackError||await _.onRequestError(t,n,{routerKind:"App Router",routePath:W,routeType:"route",revalidateReason:(0,d.f)({isStaticGeneration:null!==M,isOnDemandRevalidate:D})},!1,T),U)throw n;if(e.headersSent){if(i){let t=n instanceof Error?n:Error("Unknown app route error");i.recordException(t),i.setStatus({code:r.J.ERROR,message:t.message}),i.setAttribute("error.type",t.name)}e.writableEnded||e.destroyed||e.end()}else await (0,p.f)(H,B,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let t=e.statusCode;i.setAttributes({"http.status_code":t,"next.rsc":!1}),t&&t>=500&&(i.setStatus({code:r.J.ERROR}),i.setAttribute("error.type",t.toString()));let n=G.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==u.q.handleRequest)return console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=n.get("next.route")||W,o=`${F} ${s}`;i.setAttributes({"next.route":s,"http.route":s,"next.span_name":o}),i.updateName(o),a&&a!==i&&(a.setAttribute("http.route",s),a.updateName(o))})()}};if(z&&Z)await Q(Z,void 0);else{let e=G.getActiveScopeSpan();await G.withPropagatedContext(t.headers,()=>G.trace(u.q.handleRequest,{spanName:`${F} ${k}`,kind:r.C.SERVER,attributes:{"http.method":F,"http.target":t.url}},t=>Q(t,e)),void 0,!z)}}t.s(["handler",0,E,"patchFetch",0,function(){return(0,s.f)({workAsyncStorage:k,workUnitAsyncStorage:v})},"routeModule",0,_,"serverHooks",0,S,"workAsyncStorage",0,k,"workUnitAsyncStorage",0,v])},36482,t=>{var e=t.i(89171),n=t.i(12714),s=t.i(50227),i=t.i(60526),r=t.i(53984);let a={view_file:"read",read_file:"read",replace_file_content:"edit",write_to_file:"edit",call_mcp_tool:"mcp",list_resources:"mcp",invoke_subagent:"agent",grep_search:"search",list_dir:"read",find_by_name:"read",define_subagent:"agent"};async function o(t){let e,o=String(t||"").trim();if(!/^[a-zA-Z0-9_-]{4,64}$/.test(o))throw Error("Invalid session ID format");let l=i.default.homedir(),c=[s.default.join(l,".gemini","antigravity","brain"),s.default.join(l,".gemini","antigravity-cli","brain"),s.default.join(l,".gemini","antigravity-ide","brain")],u=null,d=null;for(let t of c){let e=s.default.join(t,o);try{await n.default.access(e);let i=s.default.join(e,".system_generated","logs","transcript.jsonl");await n.default.access(i),u=i,d=t;break}catch{try{let e=(await n.default.readdir(t,{withFileTypes:!0})).find(t=>t.isDirectory()&&t.name.startsWith(o));if(e){let i=s.default.join(t,e.name,".system_generated","logs","transcript.jsonl");await n.default.access(i),u=i,e.name,d=t;break}}catch{}}}if(!u||!d)throw Error(`Transcript file not found for session ID "${o}"`);if(!s.default.resolve(u).startsWith(s.default.resolve(d)))throw Error("Directory traversal detected");try{e=await n.default.readFile(u,"utf-8")}catch(t){throw Error(`Transcript file not found: ${t.message}`)}let p=e.split("\n"),h=[],f=null,m=0,g=0,w=0,y=null,_=null,k=null;for(let t=0;t<p.length;t++){let e,n=p[t].trim();if(!n)continue;try{e=JSON.parse(n)}catch{p.length;continue}let s=e.created_at||new Date().toISOString();if(y||(y=s),_=s,e.input_tokens&&(m+=e.input_tokens),e.output_tokens&&(g+=e.output_tokens),e.cache_read_tokens&&(w+=e.cache_read_tokens),Array.isArray(e.tool_calls)){for(let t of e.tool_calls)if(t.args?.Cwd&&!k&&(k=t.args.Cwd),!k&&(t.args?.TargetFile||t.args?.AbsolutePath)){let e=t.args.TargetFile||t.args.AbsolutePath;e.includes("/Projects/")&&(k=e.split("/").slice(0,5).join("/"))}}if("USER_INPUT"===e.type){f&&(h.push(f),f=null);let t=String(e.content||"");t=t.replace(/<USER_REQUEST>([\s\S]*?)<\/USER_REQUEST>/g,"$1").replace(/<ADDITIONAL_METADATA>[\s\S]*?<\/ADDITIONAL_METADATA>/g,"").replace(/<USER_SETTINGS_CHANGE>[\s\S]*?<\/USER_SETTINGS_CHANGE>/g,"").trim(),h.push({id:`turn-user-${e.step_index||h.length}`,role:"user",timestamp:s,content:t}),f={id:`turn-asst-${(e.step_index||h.length)+1}`,role:"assistant",timestamp:s,content:"",thinking:"",toolCalls:[],tokens:{input:0,output:0,cached:0},status:"completed"};continue}if(f||(f={id:`turn-asst-${h.length}`,role:"assistant",timestamp:s,content:"",thinking:"",toolCalls:[],tokens:{input:0,output:0,cached:0},status:"completed"}),"PLANNER_RESPONSE"===e.type){if(e.input_tokens&&(f.tokens.input+=e.input_tokens),e.output_tokens&&(f.tokens.output+=e.output_tokens),e.cache_read_tokens&&(f.tokens.cached+=e.cache_read_tokens),e.thinking&&(f.thinking+=(f.thinking?"\n\n":"")+e.thinking),Array.isArray(e.tool_calls)&&e.tool_calls.length>0)for(let t=0;t<e.tool_calls.length;t++){let n=e.tool_calls[t],s=n.id||`${e.step_index}-${t}`,i=function(t,e={}){let n=String(t||"").toLowerCase();if("call_mcp_tool"===n){let t=String(e.ServerName||"").toLowerCase(),n=String(e.ToolName||"").toLowerCase();return t.includes("gitnexus")||n.includes("cypher")||n.includes("impact")?"gitnexus":t.includes("playwright")||t.includes("browser")||n.startsWith("browser_")?"browser":"mcp"}if("run_command"===n){let t=String(e.CommandLine||"").trim().toLowerCase();return t.startsWith("docker")||t.includes("docker exec")?"docker":t.startsWith("git ")||t.startsWith("gh ")?"git":t.includes("gitnexus")?"gitnexus":"bash"}return a[t]?a[t]:n.includes("read")||n.includes("view")||n.includes("list")||n.includes("dir")?"read":n.includes("edit")||n.includes("write")||n.includes("patch")||n.includes("replace")?"edit":n.includes("search")||n.includes("grep")?"search":n.includes("agent")||n.includes("message")?"agent":"mcp"}(n.name,n.args);f.toolCalls.push({id:s,name:n.name,type:i,summary:n.toolSummary||n.name,action:n.toolAction||n.name,args:n.args||{},output:"",status:"RUNNING"===e.status?"running":"completed"})}e.content&&(f.content?f.content+="\n\n"+e.content:f.content=e.content)}if("GENERIC"===e.type&&e.content&&f.toolCalls.length>0){let t=[...f.toolCalls].reverse().find(t=>!t.output)||f.toolCalls[f.toolCalls.length-1];t&&(t.output=e.content,"ERROR"===e.status&&(t.status="error"))}}f&&(f.content||f.toolCalls.length>0||f.thinking)&&h.push(f);let v=y&&_?Math.max(0,new Date(_).getTime()-new Date(y).getTime()):0,S=(0,r.f)(e),E=null;if(!S)try{let t=await n.default.readFile(s.default.join(l,".gemini","antigravity-cli","settings.json"),"utf-8"),e=JSON.parse(t);e.model&&(E=e.model)}catch{}return{ok:!0,session:{id:o,cli:"antigravity",model:(0,r.R)(S||E),startedAt:y,updatedAt:_,durationMs:v,cwd:k,tokens:{input:m,output:g,cached:w},turnsCount:h.length},turns:h}}async function l(t){let e=String(t||"").trim();if(!/^[a-zA-Z0-9_-]{4,64}$/.test(e))throw Error("Invalid session ID format");let r=i.default.homedir(),a=s.default.join(r,".claude","sessions"),o=s.default.join(r,".claude","projects"),l={};try{let t=await n.default.readFile(s.default.join(a,`${e}.json`),"utf-8");l=JSON.parse(t)}catch{try{for(let t of(await n.default.readdir(a).catch(()=>[]))){if(!t.endsWith(".json"))continue;let i=await n.default.readFile(s.default.join(a,t),"utf-8").catch(()=>null);if(!i)continue;let r=JSON.parse(i);if(String(r.pid)===e||r.sessionId===e||r.sessionId?.startsWith(e)||r.name===e){l=r;break}}}catch{}}let c=l.sessionId||e,u=null;try{for(let t of(await n.default.readdir(o))){let i=s.default.join(o,t,`${c}.jsonl`);try{await n.default.access(i),u=i;break}catch{}let r=(await n.default.readdir(s.default.join(o,t)).catch(()=>[])).find(t=>t.endsWith(".jsonl")&&(t.startsWith(e)||l.sessionId&&t.startsWith(l.sessionId)||t.replace(".jsonl","").startsWith(e)));if(r){u=s.default.join(o,t,r);break}}}catch{}if(!u)throw Error(`Claude transcript not found for session ${e}`);if(!s.default.resolve(u).startsWith(s.default.resolve(o)))throw Error("Directory traversal detected in Claude transcript path");let d=(await n.default.readFile(u,"utf-8")).split("\n"),p=[],h=null,f=0,m=0,g=0,w=l.model||"claude-3-7-sonnet",y=l.startedAt?new Date(l.startedAt).toISOString():null,_=l.updatedAt?new Date(l.updatedAt).toISOString():null;for(let t=0;t<d.length;t++){let e,n=d[t].trim();if(!n)continue;try{e=JSON.parse(n)}catch{d.length;continue}let s=e.timestamp||new Date().toISOString();y||(y=s),_=s;let i=e.message;if(!i)continue;i.model&&(w=i.model);let r=i.usage;if(r&&(r.input_tokens&&(f+=r.input_tokens),r.output_tokens&&(m+=r.output_tokens),r.cache_read_input_tokens&&(g+=r.cache_read_input_tokens)),"user"===i.role){h&&(p.push(h),h=null);let t="";if("string"==typeof i.content)t=i.content;else if(Array.isArray(i.content)){for(let e of i.content)if("text"===e.type&&(t+=(t?"\n":"")+e.text),"tool_result"===e.type&&h){let t=e.tool_use_id,n=h.toolCalls.find(e=>e.id===t);n&&(n.output="string"==typeof e.content?e.content:JSON.stringify(e.content),e.is_error&&(n.status="error"))}}t.trim()&&p.push({id:`turn-user-${p.length}`,role:"user",timestamp:s,content:t.trim()}),h={id:`turn-asst-${p.length}`,role:"assistant",timestamp:s,content:"",thinking:"",toolCalls:[],tokens:{input:r?.input_tokens||0,output:r?.output_tokens||0,cached:r?.cache_read_input_tokens||0},status:"completed"};continue}if("assistant"===i.role){if(h||(h={id:`turn-asst-${p.length}`,role:"assistant",timestamp:s,content:"",thinking:"",toolCalls:[],tokens:{input:0,output:0,cached:0},status:"completed"}),r&&(h.tokens.input+=r.input_tokens||0,h.tokens.output+=r.output_tokens||0,h.tokens.cached+=r.cache_read_input_tokens||0),"string"==typeof i.content)h.content+=(h.content?"\n\n":"")+i.content;else if(Array.isArray(i.content)){for(let t of i.content)if("text"===t.type&&t.text&&(h.content+=(h.content?"\n\n":"")+t.text),"thinking"===t.type&&t.thinking&&(h.thinking+=(h.thinking?"\n\n":"")+t.thinking),"tool_use"===t.type){let e=function(t,e={}){let n=String(t||"").toLowerCase(),s=String(e.command||"").trim().toLowerCase();return"bash"===n?s.startsWith("docker")||s.includes("docker exec")?"docker":s.startsWith("git ")||s.startsWith("gh ")?"git":s.includes("gitnexus")?"gitnexus":"bash":n.includes("read")||n.includes("view")||n.includes("glob")?"read":n.includes("edit")||n.includes("write")||n.includes("patch")||n.includes("replace")?"edit":n.includes("grep")||n.includes("search")?"search":n.includes("agent")||n.includes("task")?"agent":n.includes("browser")||n.includes("playwright")?"browser":n.includes("gitnexus")?"gitnexus":"mcp"}(t.name,t.input);h.toolCalls.push({id:t.id||`tool-${h.toolCalls.length}`,name:t.name,type:e,summary:t.input?.command?`bash: ${t.input.command.slice(0,40)}`:t.name,action:t.name,args:t.input||{},output:"",status:"completed"})}}}}h&&(h.content||h.toolCalls.length>0||h.thinking)&&p.push(h);let k=y&&_?Math.max(0,new Date(_).getTime()-new Date(y).getTime()):0;return{ok:!0,session:{id:e,cli:"claude",model:w,startedAt:y,updatedAt:_,durationMs:k,cwd:l.cwd||null,tokens:{input:f,output:m,cached:g},turnsCount:p.length},turns:p}}var c=t.i(76307);function u(t){return"string"==typeof t?t:Array.isArray(t)?t.map(t=>"string"==typeof t?.text?t.text:"").filter(Boolean).join("\n"):""}async function d(t){let e,r=s.default.join(i.default.homedir(),".codex","sessions");try{e=await n.default.readdir(r,{withFileTypes:!0})}catch{return null}for(let i of e.filter(t=>t.isDirectory()).map(t=>t.name).sort().reverse()){let e,a=s.default.join(r,i);try{e=await n.default.readdir(a,{withFileTypes:!0})}catch{continue}for(let i of e.filter(t=>t.isDirectory()).map(t=>t.name).sort().reverse()){let e,r=s.default.join(a,i);try{e=await n.default.readdir(r,{withFileTypes:!0})}catch{continue}for(let i of e.filter(t=>t.isDirectory()).map(t=>t.name).sort().reverse()){let e,a=s.default.join(r,i);try{e=await n.default.readdir(a)}catch{continue}for(let n of e)if(n.endsWith(".jsonl")&&n.includes(t))return s.default.join(a,n)}}}return null}async function p(t){let e=String(t||"").replace(/^codex-/,"").trim();if(!e||!/^[a-zA-Z0-9_-]{4,64}$/.test(e))throw Error("Invalid Codex session ID format");let s=await d(e);if(!s)throw Error(`Codex transcript not found for session "${t}"`);let i=(await n.default.readFile(s,"utf-8")).split("\n"),r=null,a="gpt-5.6-terra",o=process.cwd(),l="codex-cli",p="cli",h=null,f=null,m=0,g=0,w=0,y=[],_=null;for(let t=0;t<i.length;t++){let e,n=i[t].trim();if(!n)continue;try{e=JSON.parse(n)}catch{continue}let s=e.timestamp||new Date().toISOString();h||(h=s),f=s;let d=e.payload;if(d){if("session_meta"===e.type){r=d,d.cwd&&(o=d.cwd),d.originator&&(l=d.originator),d.source&&(p=d.source),d.timestamp&&(h=d.timestamp);continue}if("turn_context"===e.type){d.model&&(a=d.model),d.cwd&&(o=d.cwd);continue}if("response_item"===e.type){let t=d.type;if("message"===t){let t=d.role;if("user"===t){let t=u(d.content);if(function(t){if(!t)return!0;let e=t.trim();return e.startsWith("# AGENTS.md instructions")||e.startsWith("<INSTRUCTIONS>")||e.startsWith("<permissions instructions>")||e.startsWith("<model_switch>")||e.startsWith("<multi_agent_mode>")||e.startsWith("<environment_context>")||e.startsWith("<skills_instructions>")}(t))continue;_&&(y.push(_),_=null),y.push({id:`turn-user-${y.length}`,role:"user",timestamp:s,content:t.trim()}),_={id:`turn-asst-${y.length}`,role:"assistant",timestamp:s,content:"",thinking:"",toolCalls:[],tokens:{input:0,output:0,cached:0},status:"completed"};continue}if("assistant"===t){_||(_={id:`turn-asst-${y.length}`,role:"assistant",timestamp:s,content:"",thinking:"",toolCalls:[],tokens:{input:0,output:0,cached:0},status:"completed"});let t=u(d.content);t&&(_.content+=(_.content?"\n\n":"")+t.trim())}continue}if("reasoning"===t){_||(_={id:`turn-asst-${y.length}`,role:"assistant",timestamp:s,content:"",thinking:"",toolCalls:[],tokens:{input:0,output:0,cached:0},status:"completed"});let t="";Array.isArray(d.summary)&&d.summary.length>0?t=d.summary.join("\n"):d.content?t="string"==typeof d.content?d.content:JSON.stringify(d.content):d.encrypted_content&&(t="Thinking process completed."),t&&(_.thinking+=(_.thinking?"\n\n":"")+t);continue}if("function_call"===t||"local_shell_call"===t||"custom_tool_call"===t){_||(_={id:`turn-asst-${y.length}`,role:"assistant",timestamp:s,content:"",thinking:"",toolCalls:[],tokens:{input:0,output:0,cached:0},status:"completed"});let t={};if("string"==typeof d.arguments)try{t=JSON.parse(d.arguments)}catch{t={raw:d.arguments}}else d.arguments&&"object"==typeof d.arguments&&(t=d.arguments);let e=d.name||d.tool||"tool",{type:n,detail:i}=(0,c.L)(e,t),r=d.call_id||d.id||`tool-${_.toolCalls.length}`;_.toolCalls.push({id:r,name:e,type:n,summary:i||e,action:e,args:t,output:"",status:"completed"});continue}if("function_call_output"===t){let t=d.call_id,e="string"==typeof d.output?d.output:JSON.stringify(d.output||"");if(_){let n=_.toolCalls.find(e=>e.id===t);n&&(n.output=e,(e.includes("exited with code 1")||e.includes("Error:")||e.includes("failed"))&&(n.status="error"))}continue}}if("event_msg"===e.type){if("token_count"===d.type){let t=d.info?.total_token_usage;t&&(t.input_tokens&&(m=t.input_tokens),t.output_tokens&&(g=t.output_tokens),t.cached_input_tokens&&(w=t.cached_input_tokens),_&&(_.tokens={input:t.input_tokens||0,output:t.output_tokens||0,cached:t.cached_input_tokens||0}));continue}"task_complete"===d.type&&d.error?.message&&_&&(_.status="error",_.error=d.error.message,_.content||(_.content=d.error.message))}}}_&&(_.content||_.toolCalls.length>0||_.thinking)&&y.push(_);let{clientType:k,label:v}=(0,c.n)(l,p),S=h?new Date(h).getTime():Date.now(),E=f?new Date(f).getTime():S;return{ok:!0,session:{id:r?.session_id||e,cli:"codex",clientType:k,label:v,model:a,startedAt:h,updatedAt:f,durationMs:Math.max(0,E-S),cwd:o,tokens:{input:m,output:g,cached:w},turnsCount:y.length},turns:y}}let h=[/(Bearer\s+)[a-zA-Z0-9_\-\.]{16,}/gi,/(Basic\s+)[a-zA-Z0-9+\/=]{16,}/gi,/(sk-[a-zA-Z0-9]{20,})/g,/(ghp_[a-zA-Z0-9]{36})/g,/(gho_[a-zA-Z0-9]{36})/g,/(github_pat_[a-zA-Z0-9_]{50,})/g,/(glpat-[a-zA-Z0-9\-]{20,})/g,/(xox[baprs]-[a-zA-Z0-9\-]{10,})/g,/(AIza[0-9A-Za-z-_]{35})/g,/((?:API_KEY|SECRET|TOKEN|PASSWORD|PASSWD|AUTH|PRIVATE_KEY)[\s]*[=:][\s]*['"]?)([^\s'"&;]{8,})(['"]?)/gi,/-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]*?-----END [A-Z ]*PRIVATE KEY-----/g];function f(t){if("string"==typeof t){if("string"!=typeof t||!t)return t;let e=t;for(let t of h)e=t.source.includes("BEGIN")?e.replace(t,"[REDACTED_PRIVATE_KEY]"):e.replace(t,(t,e,n)=>e&&n?`${e}[REDACTED_SECRET]`:"[REDACTED_SECRET]");return e}if(Array.isArray(t))return t.map(f);if(t&&"object"==typeof t){let e={};for(let[n,s]of Object.entries(t))/key|secret|token|password|auth/i.test(n)&&"string"==typeof s&&s.length>6?e[n]="[REDACTED_SECRET]":e[n]=f(s);return e}return t}async function m(t,e=""){let n=String(t||"").trim();if(n.startsWith("mock-")||n.includes("mock")||"demo"===n){let e,n;return e=t.includes("claude"),n=t.includes("codex"),{ok:!0,session:{id:t,cli:e?"claude":n?"codex":"antigravity",model:e?"claude-3-7-sonnet":n?"gpt-5.6-terra":"gemini-2.5-pro",startedAt:new Date(Date.now()-9e5).toISOString(),updatedAt:new Date().toISOString(),durationMs:9e5,cwd:"/Users/dev/workspace/agent-factory",tokens:{input:42150,output:3820,cached:182400},turnsCount:2},turns:[{id:"mock-turn-0",role:"user",timestamp:new Date(Date.now()-9e5).toISOString(),content:"Fix memory leak in websocket event listeners and refactor connection pooling"},{id:"mock-turn-1",role:"assistant",timestamp:new Date(Date.now()-84e4).toISOString(),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.",toolCalls:[{id:"tool-0",name:"grep_search",type:"search",summary:"Search: websocket.addEventListener",action:"grep_search",args:{query:"websocket.addEventListener"},output:"src/lib/wsClient.js:14: ws.addEventListener('message', onMessage);\nsrc/lib/wsClient.js:15: ws.addEventListener('close', onClose);",status:"completed"},{id:"tool-1",name:"view_file",type:"read",summary:"Read: wsClient.js",action:"view_file",args:{AbsolutePath:"/Users/dev/workspace/agent-factory/src/lib/wsClient.js",StartLine:1,EndLine:40},output:"export function createWebSocketClient() {\n let activeWs = null;\n // Missing cleanup on reconnect!\n}",status:"completed"},{id:"tool-2",name:"replace_file_content",type:"edit",summary:"Edit: wsClient.js",action:"replace_file_content",args:{TargetFile:"src/lib/wsClient.js",Description:"Add cleanup handler on disconnect"},output:"Successfully replaced 1 block in src/lib/wsClient.js.",status:"completed"}],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```",tokens:{input:24500,output:1200,cached:95e3}},{id:"mock-turn-2",role:"user",timestamp:new Date(Date.now()-6e5).toISOString(),content:"Run test suite to verify no memory leaks or broken connections"},{id:"mock-turn-3",role:"assistant",timestamp:new Date(Date.now()-54e4).toISOString(),thinking:"Executing unit test suite with npm test -- --coverage",toolCalls:[{id:"tool-3",name:"run_command",type:"bash",summary:"bash: npm test",action:"run_command",args:{CommandLine:"npm test"},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",status:"completed"}],content:"All 3 unit tests passed successfully. The WebSocket reconnection stress test confirmed zero memory leak over 100 simulated disconnect cycles.",tokens:{input:17650,output:2620,cached:87400}}]}}let s=e.toLowerCase();if(n.startsWith("agy-")?(s="antigravity",n=n.slice(4)):n.startsWith("claude-")?(s="claude",n=n.slice(7)):n.startsWith("codex-")&&(s="codex",n=n.slice(6)),"codex"===s)try{let t=await p(n);return{...t,session:f(t.session),turns:f(t.turns)}}catch(t){throw t}if("antigravity"===s||!s)try{let t=await o(n);return{...t,session:f(t.session),turns:f(t.turns)}}catch(t){if("antigravity"===s)throw t}if("claude"===s||!s)try{let t=await l(n);return{...t,session:f(t.session),turns:f(t.turns)}}catch(t){if("claude"===s)throw t}if(!s)try{let t=await p(n);return{...t,session:f(t.session),turns:f(t.turns)}}catch{}throw Error(`Unable to locate transcript for session ID "${t}"`)}async function g(t,n){try{let s=await n.params,i=s?.id;if(!i||"string"!=typeof i)return e.NextResponse.json({ok:!1,error:"Missing session ID parameter"},{status:400});if(!/^[a-zA-Z0-9_-]{4,64}$/.test(i))return e.NextResponse.json({ok:!1,error:"Invalid session ID format"},{status:400});let{searchParams:r}=new URL(t.url),a=r.get("cli")||"",o=await m(i,a);return e.NextResponse.json(o,{status:200,headers:{"Cache-Control":"no-store, no-cache, must-revalidate"}})}catch(s){let t=s.message||"Failed to retrieve transcript",n=t.includes("not found")?404:t.includes("traversal")||t.includes("Invalid")?400:500;return e.NextResponse.json({ok:!1,error:t},{status:n})}}t.s(["GET",0,g,"dynamic",0,"force-dynamic"],36482)}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_1-8ipqazoyrrk._.js.map
|