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
|
@@ -21,7 +21,7 @@ export default function MarkdownRenderer({ content = "", onImageClick }) {
|
|
|
21
21
|
if (!content) return null;
|
|
22
22
|
|
|
23
23
|
return (
|
|
24
|
-
<div className="chat-markdown text-
|
|
24
|
+
<div className="chat-markdown text-[var(--text-main)] text-[var(--font-size-ui)] leading-relaxed break-words font-sans">
|
|
25
25
|
<ReactMarkdown
|
|
26
26
|
remarkPlugins={[remarkGfm]}
|
|
27
27
|
components={{
|
|
@@ -31,7 +31,7 @@ export default function MarkdownRenderer({ content = "", onImageClick }) {
|
|
|
31
31
|
<span className="inline-block my-2 max-w-full group">
|
|
32
32
|
<span
|
|
33
33
|
onClick={() => onImageClick?.({ src: resolved, alt: alt || "Image preview" })}
|
|
34
|
-
className="relative inline-block cursor-pointer overflow-hidden rounded-lg border border-
|
|
34
|
+
className="relative inline-block cursor-pointer overflow-hidden rounded-lg border border-[var(--border-subtle)] bg-[var(--bg-chat-code)] shadow-md transition-all hover:border-[var(--accent-secondary)] hover:shadow-xl"
|
|
35
35
|
title="Click to view popup preview"
|
|
36
36
|
>
|
|
37
37
|
{/* eslint-disable-next-line @next/next/no-img-element */}
|
|
@@ -48,7 +48,7 @@ export default function MarkdownRenderer({ content = "", onImageClick }) {
|
|
|
48
48
|
</span>
|
|
49
49
|
</span>
|
|
50
50
|
{alt && (
|
|
51
|
-
<span className="block mt-1 text-center text-[11px] text-
|
|
51
|
+
<span className="block mt-1 text-center text-[11px] text-[var(--text-muted)] italic">
|
|
52
52
|
{alt}
|
|
53
53
|
</span>
|
|
54
54
|
)}
|
|
@@ -105,19 +105,19 @@ export default function MarkdownRenderer({ content = "", onImageClick }) {
|
|
|
105
105
|
<button
|
|
106
106
|
type="button"
|
|
107
107
|
onClick={() => onImageClick?.({ src: resolved, alt: cleanPath })}
|
|
108
|
-
className="inline-flex items-center gap-1.5 px-2 py-0.5 my-0.5 rounded bg-
|
|
108
|
+
className="inline-flex items-center gap-1.5 px-2 py-0.5 my-0.5 rounded bg-[var(--bg-chat-user)] hover:brightness-110 border border-[var(--border-chat-user)] text-[var(--accent-secondary)] font-mono text-[11px] transition-all cursor-pointer group shadow-sm"
|
|
109
109
|
title="Click to preview image in popup"
|
|
110
110
|
>
|
|
111
|
-
<ImageIcon className="w-3.5 h-3.5 text-
|
|
112
|
-
<span className="underline decoration-
|
|
113
|
-
<Maximize2 className="w-3 h-3 text-
|
|
111
|
+
<ImageIcon className="w-3.5 h-3.5 text-[var(--accent-secondary)] shrink-0 transition-transform group-hover:scale-110" />
|
|
112
|
+
<span className="underline decoration-[var(--border-chat-user)]">{cleanPath}</span>
|
|
113
|
+
<Maximize2 className="w-3 h-3 text-[var(--accent-secondary)] opacity-60 group-hover:opacity-100" />
|
|
114
114
|
</button>
|
|
115
115
|
);
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
return (
|
|
119
119
|
<code
|
|
120
|
-
className="px-1.5 py-0.5 rounded bg-
|
|
120
|
+
className="px-1.5 py-0.5 rounded bg-[var(--bg-chat-code)] text-[var(--accent-secondary)] font-mono text-[12px] border border-[var(--border-subtle)]"
|
|
121
121
|
{...props}
|
|
122
122
|
>
|
|
123
123
|
{children}
|
|
@@ -133,10 +133,10 @@ export default function MarkdownRenderer({ content = "", onImageClick }) {
|
|
|
133
133
|
return (
|
|
134
134
|
<span
|
|
135
135
|
onClick={() => onImageClick?.({ src: resolved, alt: String(children) || "Image link" })}
|
|
136
|
-
className="cursor-pointer text-
|
|
136
|
+
className="cursor-pointer text-[var(--accent-secondary)] underline decoration-[var(--accent-secondary)]/40 hover:decoration-[var(--accent-secondary)] hover:brightness-110 font-medium transition-colors inline-flex items-center gap-1.5"
|
|
137
137
|
title="Click to view image"
|
|
138
138
|
>
|
|
139
|
-
<ImageIcon className="w-3.5 h-3.5 text-
|
|
139
|
+
<ImageIcon className="w-3.5 h-3.5 text-[var(--accent-secondary)] shrink-0" />
|
|
140
140
|
<span>{children}</span>
|
|
141
141
|
</span>
|
|
142
142
|
);
|
|
@@ -147,7 +147,7 @@ export default function MarkdownRenderer({ content = "", onImageClick }) {
|
|
|
147
147
|
href={href}
|
|
148
148
|
target="_blank"
|
|
149
149
|
rel="noreferrer noopener"
|
|
150
|
-
className="text-
|
|
150
|
+
className="text-[var(--accent-secondary)] underline decoration-[var(--accent-secondary)]/40 hover:decoration-[var(--accent-secondary)] hover:brightness-110 transition-colors"
|
|
151
151
|
>
|
|
152
152
|
{children}
|
|
153
153
|
</a>
|
|
@@ -155,8 +155,8 @@ export default function MarkdownRenderer({ content = "", onImageClick }) {
|
|
|
155
155
|
},
|
|
156
156
|
table({ children }) {
|
|
157
157
|
return (
|
|
158
|
-
<div className="my-3 overflow-x-auto rounded-lg border border-
|
|
159
|
-
<table className="min-w-full divide-y divide-
|
|
158
|
+
<div className="my-3 overflow-x-auto rounded-lg border border-[var(--border-card)] bg-[var(--bg-card)]">
|
|
159
|
+
<table className="min-w-full divide-y divide-[var(--border-subtle)] text-left text-xs">
|
|
160
160
|
{children}
|
|
161
161
|
</table>
|
|
162
162
|
</div>
|
|
@@ -164,21 +164,21 @@ export default function MarkdownRenderer({ content = "", onImageClick }) {
|
|
|
164
164
|
},
|
|
165
165
|
th({ children }) {
|
|
166
166
|
return (
|
|
167
|
-
<th className="px-3 py-2 font-semibold text-
|
|
167
|
+
<th className="px-3 py-2 font-semibold text-[var(--text-bright)] bg-[var(--bg-card-inner)]">
|
|
168
168
|
{children}
|
|
169
169
|
</th>
|
|
170
170
|
);
|
|
171
171
|
},
|
|
172
172
|
td({ children }) {
|
|
173
173
|
return (
|
|
174
|
-
<td className="px-3 py-2 border-t border-
|
|
174
|
+
<td className="px-3 py-2 border-t border-[var(--border-subtle)] text-[var(--text-main)]">
|
|
175
175
|
{children}
|
|
176
176
|
</td>
|
|
177
177
|
);
|
|
178
178
|
},
|
|
179
179
|
blockquote({ children }) {
|
|
180
180
|
return (
|
|
181
|
-
<blockquote className="my-2 border-l-2 border-
|
|
181
|
+
<blockquote className="my-2 border-l-2 border-[var(--accent-primary)] pl-3 italic text-[var(--text-muted)] text-xs">
|
|
182
182
|
{children}
|
|
183
183
|
</blockquote>
|
|
184
184
|
);
|
|
@@ -193,13 +193,13 @@ export default function MarkdownRenderer({ content = "", onImageClick }) {
|
|
|
193
193
|
return <p className="mb-2 last:mb-0">{children}</p>;
|
|
194
194
|
},
|
|
195
195
|
h1({ children }) {
|
|
196
|
-
return <h1 className="text-lg font-bold text-
|
|
196
|
+
return <h1 className="text-lg font-bold text-[var(--text-bright)] my-2">{children}</h1>;
|
|
197
197
|
},
|
|
198
198
|
h2({ children }) {
|
|
199
|
-
return <h2 className="text-base font-semibold text-
|
|
199
|
+
return <h2 className="text-base font-semibold text-[var(--text-bright)] my-2">{children}</h2>;
|
|
200
200
|
},
|
|
201
201
|
h3({ children }) {
|
|
202
|
-
return <h3 className="text-sm font-semibold text-
|
|
202
|
+
return <h3 className="text-sm font-semibold text-[var(--text-bright)] my-1.5">{children}</h3>;
|
|
203
203
|
},
|
|
204
204
|
}}
|
|
205
205
|
>
|
|
@@ -108,7 +108,7 @@ export default function SessionChatView({
|
|
|
108
108
|
sessionTrace?.traces?.[0]?.traceId ||
|
|
109
109
|
sessionTrace?.connectionId ||
|
|
110
110
|
"";
|
|
111
|
-
const sessionId = targetTraceId.replace(/^agy-|^claude-/, "") || targetTraceId;
|
|
111
|
+
const sessionId = targetTraceId.replace(/^agy-|^claude-|^codex-/, "") || targetTraceId;
|
|
112
112
|
const isAgentActive =
|
|
113
113
|
sessionTrace?.state === "streaming" ||
|
|
114
114
|
sessionTrace?.state === "busy" ||
|
|
@@ -193,11 +193,11 @@ export default function SessionChatView({
|
|
|
193
193
|
: MODE_LABELS[sessionTrace.mode] || sessionTrace.state || "Active";
|
|
194
194
|
|
|
195
195
|
return (
|
|
196
|
-
<div className="flex flex-col h-full w-full bg-[
|
|
196
|
+
<div className="flex flex-col h-full w-full bg-[var(--bg-editor)] text-[var(--text-main)] select-none overflow-hidden">
|
|
197
197
|
{/* 1. Header Area */}
|
|
198
198
|
{isSidebar ? (
|
|
199
199
|
/* Sidebar Variant Header Sub-bar: Compact identity & quick action tools */
|
|
200
|
-
<div className="border-b border-[
|
|
200
|
+
<div className="border-b border-[var(--border-subtle)] bg-[var(--bg-sidebar)] px-3 py-2 flex items-center justify-between gap-2 shrink-0">
|
|
201
201
|
<div className="flex items-center gap-2 min-w-0">
|
|
202
202
|
<div
|
|
203
203
|
className="w-6 h-6 rounded-md border flex items-center justify-center shrink-0 relative"
|
|
@@ -214,7 +214,7 @@ export default function SessionChatView({
|
|
|
214
214
|
|
|
215
215
|
<div className="min-w-0">
|
|
216
216
|
<div className="flex items-center gap-1.5">
|
|
217
|
-
<span className="font-bold text-
|
|
217
|
+
<span className="font-bold text-[var(--text-bright)] text-xs truncate max-w-[130px]">
|
|
218
218
|
{sessionTrace.account || `Desk #${(sessionTrace.deskIndex ?? 0) + 1}`}
|
|
219
219
|
</span>
|
|
220
220
|
<span
|
|
@@ -228,7 +228,7 @@ export default function SessionChatView({
|
|
|
228
228
|
<span>{isAppClient ? "APP" : "CLI"}</span>
|
|
229
229
|
</span>
|
|
230
230
|
</div>
|
|
231
|
-
<div className="text-[10px] text-
|
|
231
|
+
<div className="text-[10px] text-[var(--text-muted)] font-mono truncate">
|
|
232
232
|
{session?.model || sessionTrace.model || "Unavailable"}
|
|
233
233
|
</div>
|
|
234
234
|
</div>
|
|
@@ -242,7 +242,7 @@ export default function SessionChatView({
|
|
|
242
242
|
className={`p-1 rounded text-xs transition-colors cursor-pointer ${
|
|
243
243
|
isSearchOpen
|
|
244
244
|
? "bg-cyan-950 border border-cyan-500/50 text-cyan-300"
|
|
245
|
-
: "text-
|
|
245
|
+
: "text-[var(--text-muted)] hover:text-[var(--text-bright)] hover:bg-[var(--bg-hover)]"
|
|
246
246
|
}`}
|
|
247
247
|
title="Search transcript (Ctrl+F)"
|
|
248
248
|
>
|
|
@@ -255,7 +255,7 @@ export default function SessionChatView({
|
|
|
255
255
|
className={`p-1 rounded text-xs transition-colors cursor-pointer ${
|
|
256
256
|
showInfoDrawer
|
|
257
257
|
? "bg-cyan-950 border border-cyan-500/50 text-cyan-300"
|
|
258
|
-
: "text-
|
|
258
|
+
: "text-[var(--text-muted)] hover:text-[var(--text-bright)] hover:bg-[var(--bg-hover)]"
|
|
259
259
|
}`}
|
|
260
260
|
title="Agent Details & Specs"
|
|
261
261
|
>
|
|
@@ -265,7 +265,7 @@ export default function SessionChatView({
|
|
|
265
265
|
{/* Refresh */}
|
|
266
266
|
<button
|
|
267
267
|
onClick={refresh}
|
|
268
|
-
className="p-1 rounded text-
|
|
268
|
+
className="p-1 rounded text-[var(--text-muted)] hover:text-[var(--text-bright)] hover:bg-[var(--bg-hover)] transition-colors cursor-pointer"
|
|
269
269
|
title="Refresh transcript"
|
|
270
270
|
>
|
|
271
271
|
<RefreshCw className="w-3.5 h-3.5" />
|
|
@@ -275,7 +275,7 @@ export default function SessionChatView({
|
|
|
275
275
|
{onStartReplay && (
|
|
276
276
|
<button
|
|
277
277
|
onClick={() => onStartReplay(sessionId || targetTraceId)}
|
|
278
|
-
className="p-1 rounded text-cyan-400 hover:text-cyan-200 hover:bg-[
|
|
278
|
+
className="p-1 rounded text-cyan-400 hover:text-cyan-200 hover:bg-[var(--bg-hover)] transition-colors cursor-pointer"
|
|
279
279
|
title="Time-Machine: Replay this session"
|
|
280
280
|
>
|
|
281
281
|
<RotateCcw className="w-3.5 h-3.5" />
|
|
@@ -285,7 +285,7 @@ export default function SessionChatView({
|
|
|
285
285
|
{/* Export */}
|
|
286
286
|
<button
|
|
287
287
|
onClick={() => setIsExportModalOpen(true)}
|
|
288
|
-
className="p-1 rounded text-
|
|
288
|
+
className="p-1 rounded text-[var(--text-muted)] hover:text-[var(--text-bright)] hover:bg-[var(--bg-hover)] transition-colors cursor-pointer"
|
|
289
289
|
title="Export session report (HTML, PDF, Markdown)"
|
|
290
290
|
>
|
|
291
291
|
<Download className="w-3.5 h-3.5" />
|
|
@@ -294,7 +294,7 @@ export default function SessionChatView({
|
|
|
294
294
|
{/* Open in Standalone Detached Window (VS Code style) */}
|
|
295
295
|
<button
|
|
296
296
|
onClick={() => openChatInNewWindow(sessionId || targetTraceId)}
|
|
297
|
-
className="p-1 rounded text-
|
|
297
|
+
className="p-1 rounded text-[var(--text-muted)] hover:text-cyan-300 hover:bg-[var(--bg-hover)] transition-colors cursor-pointer"
|
|
298
298
|
title="Open in Detached Window (VS Code style)"
|
|
299
299
|
>
|
|
300
300
|
<AppWindow className="w-3.5 h-3.5" />
|
|
@@ -303,7 +303,7 @@ export default function SessionChatView({
|
|
|
303
303
|
</div>
|
|
304
304
|
) : (
|
|
305
305
|
/* Modal Variant Header: Full-width modal bar */
|
|
306
|
-
<div className="flex items-center justify-between px-5 py-3 border-b border-
|
|
306
|
+
<div className="flex items-center justify-between px-5 py-3 border-b border-[var(--border-subtle)] bg-[var(--bg-titlebar)] rounded-t-2xl shrink-0">
|
|
307
307
|
<div className="flex items-center gap-3 min-w-0">
|
|
308
308
|
<div
|
|
309
309
|
className="w-9 h-9 rounded-xl border flex items-center justify-center shrink-0 shadow-inner relative"
|
|
@@ -320,7 +320,7 @@ export default function SessionChatView({
|
|
|
320
320
|
|
|
321
321
|
<div className="min-w-0">
|
|
322
322
|
<div className="flex items-center gap-2">
|
|
323
|
-
<h2 className="text-sm font-bold text-
|
|
323
|
+
<h2 className="text-sm font-bold text-[var(--text-bright)] truncate">
|
|
324
324
|
{sessionTrace.account || "AI Agent Session"}
|
|
325
325
|
</h2>
|
|
326
326
|
{/* Client Type badge */}
|
|
@@ -351,14 +351,14 @@ export default function SessionChatView({
|
|
|
351
351
|
? "border-rose-500/50 bg-rose-950/60 text-rose-300 animate-pulse"
|
|
352
352
|
: isAgentActive
|
|
353
353
|
? "border-cyan-500/50 bg-cyan-950/60 text-cyan-300"
|
|
354
|
-
: "border-
|
|
354
|
+
: "border-[var(--border-subtle)] bg-[var(--bg-card)] text-[var(--text-main)]"
|
|
355
355
|
}`}
|
|
356
356
|
>
|
|
357
357
|
{modeText}
|
|
358
358
|
</span>
|
|
359
359
|
</div>
|
|
360
360
|
|
|
361
|
-
<div className="text-[11px] text-
|
|
361
|
+
<div className="text-[11px] text-[var(--text-muted)] font-mono truncate mt-0.5 flex items-center gap-1.5">
|
|
362
362
|
<span>{sessionTrace.connectionId}</span>
|
|
363
363
|
<span>•</span>
|
|
364
364
|
<span className="text-cyan-400 uppercase">
|
|
@@ -367,7 +367,7 @@ export default function SessionChatView({
|
|
|
367
367
|
{session?.cwd && (
|
|
368
368
|
<>
|
|
369
369
|
<span>•</span>
|
|
370
|
-
<span className="text-
|
|
370
|
+
<span className="text-[var(--text-muted)] truncate max-w-44">{session.cwd}</span>
|
|
371
371
|
</>
|
|
372
372
|
)}
|
|
373
373
|
</div>
|
|
@@ -396,7 +396,7 @@ export default function SessionChatView({
|
|
|
396
396
|
className={`p-1.5 rounded-lg border text-xs font-medium transition-colors cursor-pointer ${
|
|
397
397
|
isSearchOpen
|
|
398
398
|
? "bg-cyan-950 border-cyan-500/50 text-cyan-300 shadow-sm shadow-cyan-500/10"
|
|
399
|
-
: "border-
|
|
399
|
+
: "border-[var(--border-subtle)] text-[var(--text-muted)] hover:bg-[var(--bg-hover)] hover:text-[var(--text-bright)]"
|
|
400
400
|
}`}
|
|
401
401
|
title="Search transcript (Ctrl+F)"
|
|
402
402
|
>
|
|
@@ -409,7 +409,7 @@ export default function SessionChatView({
|
|
|
409
409
|
className={`flex items-center gap-1 px-2 py-1.5 rounded-lg border text-xs font-medium transition-colors cursor-pointer ${
|
|
410
410
|
showInfoDrawer
|
|
411
411
|
? "bg-cyan-950 border-cyan-500/50 text-cyan-300"
|
|
412
|
-
: "border-
|
|
412
|
+
: "border-[var(--border-subtle)] text-[var(--text-muted)] hover:bg-[var(--bg-hover)] hover:text-[var(--text-bright)]"
|
|
413
413
|
}`}
|
|
414
414
|
title="Agent Details & Specs"
|
|
415
415
|
>
|
|
@@ -421,7 +421,7 @@ export default function SessionChatView({
|
|
|
421
421
|
{/* Refresh */}
|
|
422
422
|
<button
|
|
423
423
|
onClick={refresh}
|
|
424
|
-
className="p-1.5 rounded-lg text-
|
|
424
|
+
className="p-1.5 rounded-lg text-[var(--text-muted)] hover:bg-[var(--bg-hover)] hover:text-[var(--text-bright)] transition-colors cursor-pointer"
|
|
425
425
|
title="Refresh transcript"
|
|
426
426
|
>
|
|
427
427
|
<RefreshCw className="w-4 h-4" />
|
|
@@ -445,7 +445,7 @@ export default function SessionChatView({
|
|
|
445
445
|
{/* Export */}
|
|
446
446
|
<button
|
|
447
447
|
onClick={() => setIsExportModalOpen(true)}
|
|
448
|
-
className="flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg bg-
|
|
448
|
+
className="flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg bg-[var(--bg-card)] hover:bg-[var(--bg-hover)] text-[var(--text-main)] text-xs font-medium border border-[var(--border-subtle)] transition-colors cursor-pointer"
|
|
449
449
|
title="Export session report (HTML, PDF, Markdown)"
|
|
450
450
|
>
|
|
451
451
|
<Download className="w-3.5 h-3.5" />
|
|
@@ -456,7 +456,7 @@ export default function SessionChatView({
|
|
|
456
456
|
{onDockToSidebar && (
|
|
457
457
|
<button
|
|
458
458
|
onClick={() => onDockToSidebar(sessionTrace)}
|
|
459
|
-
className="flex items-center gap-1 px-2 py-1.5 rounded-lg bg-
|
|
459
|
+
className="flex items-center gap-1 px-2 py-1.5 rounded-lg bg-[var(--bg-card)] hover:bg-[var(--accent-primary)] text-[var(--text-main)] hover:text-white text-xs font-medium border border-[var(--border-subtle)] transition-colors cursor-pointer"
|
|
460
460
|
title="Dock into Sidebar"
|
|
461
461
|
>
|
|
462
462
|
<PanelRightClose className="w-3.5 h-3.5" />
|
|
@@ -470,7 +470,7 @@ export default function SessionChatView({
|
|
|
470
470
|
openChatInNewWindow(sessionId || targetTraceId);
|
|
471
471
|
onClose?.();
|
|
472
472
|
}}
|
|
473
|
-
className="flex items-center gap-1 px-2 py-1.5 rounded-lg bg-
|
|
473
|
+
className="flex items-center gap-1 px-2 py-1.5 rounded-lg bg-[var(--bg-card)] hover:bg-[var(--accent-primary)] text-[var(--text-main)] hover:text-white text-xs font-medium border border-[var(--border-subtle)] transition-colors cursor-pointer"
|
|
474
474
|
title="Open in Detached Window (VS Code style)"
|
|
475
475
|
>
|
|
476
476
|
<AppWindow className="w-3.5 h-3.5 text-cyan-400" />
|
|
@@ -484,7 +484,7 @@ export default function SessionChatView({
|
|
|
484
484
|
className={`flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg border text-xs font-medium transition-colors cursor-pointer ${
|
|
485
485
|
isFullscreen
|
|
486
486
|
? "bg-cyan-950 border-cyan-500/50 text-cyan-300 shadow-sm shadow-cyan-500/10 font-semibold"
|
|
487
|
-
: "border-
|
|
487
|
+
: "border-[var(--border-subtle)] bg-[var(--bg-card)] text-[var(--text-main)] hover:bg-[var(--bg-hover)] hover:text-[var(--text-bright)]"
|
|
488
488
|
}`}
|
|
489
489
|
title={isFullscreen ? "Exit Fullscreen" : "Fullscreen"}
|
|
490
490
|
>
|
|
@@ -496,7 +496,7 @@ export default function SessionChatView({
|
|
|
496
496
|
{/* Close */}
|
|
497
497
|
<button
|
|
498
498
|
onClick={onClose}
|
|
499
|
-
className="p-1.5 rounded-lg text-
|
|
499
|
+
className="p-1.5 rounded-lg text-[var(--text-muted)] hover:bg-[var(--bg-hover)] hover:text-rose-400 transition-colors cursor-pointer"
|
|
500
500
|
title="Close window"
|
|
501
501
|
>
|
|
502
502
|
<X className="w-4 h-4" />
|
|
@@ -507,7 +507,7 @@ export default function SessionChatView({
|
|
|
507
507
|
|
|
508
508
|
{/* 2. Floating Session Search Bar */}
|
|
509
509
|
{isSearchOpen && (
|
|
510
|
-
<div className={`py-2 border-b border-[
|
|
510
|
+
<div className={`py-2 border-b border-[var(--border-subtle)] bg-[var(--bg-sidebar)] flex justify-end shrink-0 ${isSidebar ? "px-3" : "px-5"}`}>
|
|
511
511
|
<SessionSearch
|
|
512
512
|
isOpen={isSearchOpen}
|
|
513
513
|
onClose={() => setIsSearchOpen(false)}
|
|
@@ -603,8 +603,8 @@ export default function SessionChatView({
|
|
|
603
603
|
)}
|
|
604
604
|
|
|
605
605
|
{/* 5. Subheader: Filter bar & Live Telemetry toggle */}
|
|
606
|
-
<div className={`flex items-center justify-between border-b border-[
|
|
607
|
-
<div className="flex items-center gap-1 bg-[
|
|
606
|
+
<div className={`flex items-center justify-between border-b border-[var(--border-subtle)] bg-[var(--bg-editor)] text-xs shrink-0 py-1.5 ${isSidebar ? "px-3" : "px-5"}`}>
|
|
607
|
+
<div className="flex items-center gap-1 bg-[var(--bg-workbench)] p-0.5 rounded-lg border border-[var(--border-subtle)] overflow-x-auto max-w-full">
|
|
608
608
|
{[
|
|
609
609
|
{ id: "all", label: "All", icon: MessageSquare },
|
|
610
610
|
{ id: "prompts", label: "Prompts", icon: User },
|
|
@@ -619,8 +619,8 @@ export default function SessionChatView({
|
|
|
619
619
|
onClick={() => setFilter(tab.id)}
|
|
620
620
|
className={`flex items-center gap-1 px-2 py-0.5 rounded text-[11px] font-medium transition-all whitespace-nowrap cursor-pointer ${
|
|
621
621
|
filter === tab.id
|
|
622
|
-
? "bg-[
|
|
623
|
-
: "text-
|
|
622
|
+
? "bg-[var(--bg-card)] text-[var(--accent-secondary)] shadow-sm font-semibold border border-[var(--border-card)]"
|
|
623
|
+
: "text-[var(--text-muted)] hover:text-[var(--text-bright)] hover:bg-[var(--bg-hover)]"
|
|
624
624
|
}`}
|
|
625
625
|
>
|
|
626
626
|
<Icon className="w-3 h-3 shrink-0" />
|
|
@@ -631,12 +631,12 @@ export default function SessionChatView({
|
|
|
631
631
|
</div>
|
|
632
632
|
|
|
633
633
|
<div className="flex items-center gap-2 shrink-0 ml-2">
|
|
634
|
-
<label className="flex items-center gap-1 text-[11px] text-
|
|
634
|
+
<label className="flex items-center gap-1 text-[11px] text-[var(--text-muted)] cursor-pointer select-none">
|
|
635
635
|
<input
|
|
636
636
|
type="checkbox"
|
|
637
637
|
checked={autoScroll}
|
|
638
638
|
onChange={(e) => setAutoScroll(e.target.checked)}
|
|
639
|
-
className="rounded border-
|
|
639
|
+
className="rounded border-[var(--border-card)] bg-[var(--bg-card)] text-[var(--accent-primary)] focus:ring-0 w-3 h-3 cursor-pointer"
|
|
640
640
|
/>
|
|
641
641
|
<span className="hidden sm:inline">Auto-scroll</span>
|
|
642
642
|
</label>
|
|
@@ -648,13 +648,13 @@ export default function SessionChatView({
|
|
|
648
648
|
{filter === "telemetry" ? (
|
|
649
649
|
/* VIEW 1: Live Telemetry Drawer */
|
|
650
650
|
<div className="space-y-2 font-mono text-[11px]">
|
|
651
|
-
<div className="flex items-center justify-between pb-1.5 mb-2 border-b border-[
|
|
652
|
-
<span className="font-semibold text-
|
|
651
|
+
<div className="flex items-center justify-between pb-1.5 mb-2 border-b border-[var(--border-subtle)] text-xs text-[var(--text-muted)]">
|
|
652
|
+
<span className="font-semibold text-[var(--text-bright)]">Terminal Telemetry Stream</span>
|
|
653
653
|
<span>Last {logs.length} actions</span>
|
|
654
654
|
</div>
|
|
655
655
|
|
|
656
656
|
{logs.length === 0 ? (
|
|
657
|
-
<div className="py-12 text-center text-
|
|
657
|
+
<div className="py-12 text-center text-[var(--text-muted)] text-xs">
|
|
658
658
|
No telemetry actions recorded yet for this session.
|
|
659
659
|
</div>
|
|
660
660
|
) : (
|
|
@@ -663,9 +663,9 @@ export default function SessionChatView({
|
|
|
663
663
|
return (
|
|
664
664
|
<div
|
|
665
665
|
key={idx}
|
|
666
|
-
className="flex items-start gap-2 p-2 rounded-lg bg-[
|
|
666
|
+
className="flex items-start gap-2 p-2 rounded-lg bg-[var(--bg-chat-code)] border border-[var(--border-subtle)] hover:border-[var(--border-card)] transition-colors"
|
|
667
667
|
>
|
|
668
|
-
<span className="text-[10px] text-
|
|
668
|
+
<span className="text-[10px] text-[var(--text-muted)] opacity-70 whitespace-nowrap pt-0.5">
|
|
669
669
|
{formatLogTimestamp(log.timestamp)}
|
|
670
670
|
</span>
|
|
671
671
|
<span
|
|
@@ -674,9 +674,9 @@ export default function SessionChatView({
|
|
|
674
674
|
{log.type}
|
|
675
675
|
</span>
|
|
676
676
|
<div className="min-w-0 flex-1">
|
|
677
|
-
<div className="text-
|
|
677
|
+
<div className="text-[var(--text-bright)] font-medium truncate">{log.summary || log.type}</div>
|
|
678
678
|
{log.detail && (
|
|
679
|
-
<div className="text-
|
|
679
|
+
<div className="text-[var(--text-muted)] text-[11px] truncate mt-0.5 whitespace-pre-wrap break-all">
|
|
680
680
|
{log.detail}
|
|
681
681
|
</div>
|
|
682
682
|
)}
|
|
@@ -691,14 +691,14 @@ export default function SessionChatView({
|
|
|
691
691
|
/* VIEW 2: AI Conversation Turns */
|
|
692
692
|
<>
|
|
693
693
|
{loading && turns.length === 0 && (
|
|
694
|
-
<div className="h-full flex flex-col items-center justify-center text-
|
|
694
|
+
<div className="h-full flex flex-col items-center justify-center text-[var(--text-muted)] gap-2 py-12">
|
|
695
695
|
<RefreshCw className="w-5 h-5 animate-spin text-cyan-400" />
|
|
696
696
|
<span className="text-xs">Loading session transcript...</span>
|
|
697
697
|
</div>
|
|
698
698
|
)}
|
|
699
699
|
|
|
700
700
|
{error && turns.length === 0 && (
|
|
701
|
-
<div className="h-full flex flex-col items-center justify-center text-
|
|
701
|
+
<div className="h-full flex flex-col items-center justify-center text-[var(--text-muted)] gap-2 py-12">
|
|
702
702
|
<div className="p-3 rounded-lg bg-rose-950/30 border border-rose-800/40 text-rose-300 text-xs text-center max-w-md">
|
|
703
703
|
<p className="font-semibold mb-1">Unable to load transcript</p>
|
|
704
704
|
<p className="text-[11px] text-rose-400">{error}</p>
|
|
@@ -707,7 +707,7 @@ export default function SessionChatView({
|
|
|
707
707
|
)}
|
|
708
708
|
|
|
709
709
|
{!loading && turns.length === 0 && !error && (
|
|
710
|
-
<div className="h-full flex flex-col items-center justify-center text-
|
|
710
|
+
<div className="h-full flex flex-col items-center justify-center text-[var(--text-muted)] gap-2 py-12">
|
|
711
711
|
<Layers className="w-8 h-8 opacity-40" />
|
|
712
712
|
<span className="text-xs">No conversation history found for this session.</span>
|
|
713
713
|
</div>
|
|
@@ -729,7 +729,7 @@ export default function SessionChatView({
|
|
|
729
729
|
</div>
|
|
730
730
|
|
|
731
731
|
{/* 7. Footer Metrics */}
|
|
732
|
-
<div className={`border-t border-[
|
|
732
|
+
<div className={`border-t border-[var(--border-subtle)] bg-[var(--bg-workbench)] flex items-center justify-between text-[11px] text-[var(--text-muted)] font-mono shrink-0 py-2 ${isSidebar ? "px-3" : "px-5 rounded-b-2xl"}`}>
|
|
733
733
|
<div className="flex items-center gap-2 truncate">
|
|
734
734
|
<span>{turns.length} turns</span>
|
|
735
735
|
<span>•</span>
|
|
@@ -129,8 +129,8 @@ export default function SessionSearch({
|
|
|
129
129
|
if (!isOpen) return null;
|
|
130
130
|
|
|
131
131
|
return (
|
|
132
|
-
<div className={`flex items-center gap-1.5 bg-
|
|
133
|
-
<Search className="w-4 h-4 text-
|
|
132
|
+
<div className={`flex items-center gap-1.5 bg-[var(--bg-card)] border border-[var(--border-card)] rounded-xl px-2.5 py-1.5 shadow-2xl backdrop-blur-md animate-fadeIn z-30 ${className}`}>
|
|
133
|
+
<Search className="w-4 h-4 text-[var(--text-muted)] shrink-0" />
|
|
134
134
|
|
|
135
135
|
<input
|
|
136
136
|
ref={inputRef}
|
|
@@ -139,22 +139,22 @@ export default function SessionSearch({
|
|
|
139
139
|
onChange={(e) => setSearchTerm(e.target.value)}
|
|
140
140
|
onKeyDown={handleKeyDown}
|
|
141
141
|
placeholder="Search transcript (content, code, tools)..."
|
|
142
|
-
className="bg-transparent border-none text-xs text-
|
|
142
|
+
className="bg-transparent border-none text-xs text-[var(--text-bright)] placeholder:text-[var(--text-muted)] focus:outline-none w-56 md:w-64 font-sans"
|
|
143
143
|
/>
|
|
144
144
|
|
|
145
145
|
{/* Match Counter */}
|
|
146
146
|
{searchTerm.trim() && (
|
|
147
|
-
<span className="text-[11px] font-mono px-1.5 py-0.5 rounded bg-
|
|
147
|
+
<span className="text-[11px] font-mono px-1.5 py-0.5 rounded bg-[var(--bg-card-inner)] text-[var(--text-main)] border border-[var(--border-subtle)] shrink-0">
|
|
148
148
|
{matches.length > 0 ? `${currentIndex + 1}/${matches.length}` : "0 matches"}
|
|
149
149
|
</span>
|
|
150
150
|
)}
|
|
151
151
|
|
|
152
152
|
{/* Prev / Next controls */}
|
|
153
|
-
<div className="flex items-center border-l border-
|
|
153
|
+
<div className="flex items-center border-l border-[var(--border-subtle)] pl-1.5 gap-0.5">
|
|
154
154
|
<button
|
|
155
155
|
onClick={handlePrev}
|
|
156
156
|
disabled={matches.length <= 1}
|
|
157
|
-
className="p-1 rounded text-
|
|
157
|
+
className="p-1 rounded text-[var(--text-muted)] hover:text-[var(--text-bright)] hover:bg-[var(--bg-hover)] disabled:opacity-40 disabled:hover:bg-transparent transition-colors cursor-pointer"
|
|
158
158
|
title="Previous match (Shift+Enter)"
|
|
159
159
|
>
|
|
160
160
|
<ChevronUp className="w-3.5 h-3.5" />
|
|
@@ -162,7 +162,7 @@ export default function SessionSearch({
|
|
|
162
162
|
<button
|
|
163
163
|
onClick={handleNext}
|
|
164
164
|
disabled={matches.length <= 1}
|
|
165
|
-
className="p-1 rounded text-
|
|
165
|
+
className="p-1 rounded text-[var(--text-muted)] hover:text-[var(--text-bright)] hover:bg-[var(--bg-hover)] disabled:opacity-40 disabled:hover:bg-transparent transition-colors cursor-pointer"
|
|
166
166
|
title="Next match (Enter)"
|
|
167
167
|
>
|
|
168
168
|
<ChevronDown className="w-3.5 h-3.5" />
|
|
@@ -172,7 +172,7 @@ export default function SessionSearch({
|
|
|
172
172
|
{/* Close button */}
|
|
173
173
|
<button
|
|
174
174
|
onClick={onClose}
|
|
175
|
-
className="p-1 rounded text-
|
|
175
|
+
className="p-1 rounded text-[var(--text-muted)] hover:text-rose-400 hover:bg-[var(--bg-hover)] transition-colors ml-1 cursor-pointer"
|
|
176
176
|
title="Close search (Esc)"
|
|
177
177
|
>
|
|
178
178
|
<X className="w-3.5 h-3.5" />
|
|
@@ -11,10 +11,10 @@ export default function ThinkingAccordion({ thinking = "" }) {
|
|
|
11
11
|
const wordCount = thinking.trim().split(/\s+/).length;
|
|
12
12
|
|
|
13
13
|
return (
|
|
14
|
-
<div className="my-2.5 rounded-lg border border-purple-
|
|
14
|
+
<div className="my-2.5 rounded-lg border border-purple-500/30 bg-purple-500/10 overflow-hidden transition-all">
|
|
15
15
|
<button
|
|
16
16
|
onClick={() => setIsOpen(!isOpen)}
|
|
17
|
-
className="w-full flex items-center justify-between px-3 py-2 text-left bg-purple-
|
|
17
|
+
className="w-full flex items-center justify-between px-3 py-2 text-left bg-purple-500/15 hover:bg-purple-500/20 transition-colors text-xs text-purple-400 dark:text-purple-300 font-medium cursor-pointer"
|
|
18
18
|
>
|
|
19
19
|
<div className="flex items-center gap-2">
|
|
20
20
|
<Brain className="w-3.5 h-3.5 text-purple-400" />
|
|
@@ -31,7 +31,7 @@ export default function ThinkingAccordion({ thinking = "" }) {
|
|
|
31
31
|
</button>
|
|
32
32
|
|
|
33
33
|
{isOpen && (
|
|
34
|
-
<div className="p-3 text-xs text-
|
|
34
|
+
<div className="p-3 text-xs text-[var(--text-main)] leading-relaxed font-mono whitespace-pre-wrap border-t border-purple-500/20 max-h-96 overflow-y-auto bg-[var(--bg-chat-code)]">
|
|
35
35
|
{thinking.trim()}
|
|
36
36
|
</div>
|
|
37
37
|
)}
|
|
@@ -97,14 +97,14 @@ export default function ToolCallCard({ tool, onImageClick }) {
|
|
|
97
97
|
<div className={`my-2 rounded-xl border ${styleClass} overflow-hidden text-xs transition-all shadow-md`}>
|
|
98
98
|
<button
|
|
99
99
|
onClick={() => setIsOpen(!isOpen)}
|
|
100
|
-
className="w-full flex items-center justify-between px-3 py-2 text-left hover:bg-
|
|
100
|
+
className="w-full flex items-center justify-between px-3 py-2 text-left hover:bg-[var(--bg-hover)] transition-colors cursor-pointer"
|
|
101
101
|
>
|
|
102
102
|
<div className="flex items-center gap-2 min-w-0 flex-1">
|
|
103
103
|
<Icon className="w-3.5 h-3.5 shrink-0 opacity-80" />
|
|
104
|
-
<span className="font-semibold uppercase tracking-wider text-[10px] px-1.5 py-0.5 rounded bg-
|
|
104
|
+
<span className="font-semibold uppercase tracking-wider text-[10px] px-1.5 py-0.5 rounded bg-[var(--bg-card-inner)] border border-[var(--border-subtle)] text-[var(--text-bright)] shrink-0">
|
|
105
105
|
{type}
|
|
106
106
|
</span>
|
|
107
|
-
<span className="truncate font-mono text-[11px] text-
|
|
107
|
+
<span className="truncate font-mono text-[11px] text-[var(--text-bright)]">
|
|
108
108
|
{detailSummary}
|
|
109
109
|
</span>
|
|
110
110
|
</div>
|
|
@@ -127,16 +127,16 @@ export default function ToolCallCard({ tool, onImageClick }) {
|
|
|
127
127
|
)}
|
|
128
128
|
|
|
129
129
|
{isOpen ? (
|
|
130
|
-
<ChevronDown className="w-3.5 h-3.5 text-
|
|
130
|
+
<ChevronDown className="w-3.5 h-3.5 text-[var(--text-muted)]" />
|
|
131
131
|
) : (
|
|
132
|
-
<ChevronRight className="w-3.5 h-3.5 text-
|
|
132
|
+
<ChevronRight className="w-3.5 h-3.5 text-[var(--text-muted)]" />
|
|
133
133
|
)}
|
|
134
134
|
</div>
|
|
135
135
|
</button>
|
|
136
136
|
|
|
137
137
|
{/* Special Inline Cards when expanded */}
|
|
138
138
|
{isOpen && (
|
|
139
|
-
<div className="p-3 border-t border-
|
|
139
|
+
<div className="p-3 border-t border-[var(--border-subtle)] bg-[var(--bg-chat-tool)] space-y-3">
|
|
140
140
|
{/* 1. Subagent Tree View */}
|
|
141
141
|
{isSubagentTool && (
|
|
142
142
|
<SubagentTree
|