agmon 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/fallback-build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +8 -8
  5. package/.next/server/app/_global-error.html +1 -1
  6. package/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  10. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  11. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/_not-found.html +1 -1
  13. package/.next/server/app/_not-found.rsc +15 -14
  14. package/.next/server/app/_not-found.segments/_full.segment.rsc +15 -14
  15. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -3
  16. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  17. package/.next/server/app/api/media/route.js.nft.json +1 -1
  18. package/.next/server/app/api/reports/tokens/route.js.nft.json +1 -1
  19. package/.next/server/app/api/sessions/[id]/transcript/route.js.nft.json +1 -1
  20. package/.next/server/app/api/traces/stream/route.js.nft.json +1 -1
  21. package/.next/server/app/api/version/route.js.nft.json +1 -1
  22. package/.next/server/app/api/workspace/file-content/route.js.nft.json +1 -1
  23. package/.next/server/app/api/workspace/files/route.js.nft.json +1 -1
  24. package/.next/server/app/chat/page.js.nft.json +1 -1
  25. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/chat.html +1 -1
  27. package/.next/server/app/chat.rsc +20 -19
  28. package/.next/server/app/chat.segments/_full.segment.rsc +20 -19
  29. package/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
  30. package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +21 -20
  31. package/.next/server/app/index.html +1 -1
  32. package/.next/server/app/index.rsc +20 -18
  33. package/.next/server/app/index.segments/__PAGE__.segment.rsc +8 -8
  34. package/.next/server/app/index.segments/_full.segment.rsc +20 -18
  35. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  36. package/.next/server/app/page.js.nft.json +1 -1
  37. package/.next/server/app/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/reports/page.js.nft.json +1 -1
  39. package/.next/server/app/reports/page_client-reference-manifest.js +1 -1
  40. package/.next/server/app/reports.html +1 -1
  41. package/.next/server/app/reports.rsc +4 -4
  42. package/.next/server/app/reports.segments/_full.segment.rsc +4 -4
  43. package/.next/server/app/reports.segments/_tree.segment.rsc +2 -2
  44. package/.next/server/app/reports.segments/reports/__PAGE__.segment.rsc +4 -4
  45. package/.next/server/app/store/page.js.nft.json +1 -1
  46. package/.next/server/app/store/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/store.html +1 -1
  48. package/.next/server/app/store.rsc +5 -5
  49. package/.next/server/app/store.segments/_full.segment.rsc +5 -5
  50. package/.next/server/app/store.segments/_tree.segment.rsc +2 -2
  51. package/.next/server/app/store.segments/store/__PAGE__.segment.rsc +5 -5
  52. package/.next/server/chunks/_0ao-_t4jkb46h._.js +2 -2
  53. package/.next/server/chunks/_0ao-_t4jkb46h._.js.map +1 -1
  54. package/.next/server/chunks/src_lib_watchers_antigravityWatcher_0w1-atg39y__p.js.map +1 -1
  55. package/.next/server/chunks/ssr/[root-of-the-server]__0i2rbwbkxbdog._.js +3 -0
  56. package/.next/server/chunks/ssr/[root-of-the-server]__0i2rbwbkxbdog._.js.map +1 -0
  57. package/.next/server/chunks/ssr/[root-of-the-server]__0qzscpxebh28_._.js +3 -0
  58. package/.next/server/chunks/ssr/[root-of-the-server]__0qzscpxebh28_._.js.map +1 -0
  59. package/.next/server/chunks/ssr/[root-of-the-server]__1jwplflwix8wi._.js +427 -0
  60. package/.next/server/chunks/ssr/[root-of-the-server]__1jwplflwix8wi._.js.map +1 -0
  61. package/.next/server/chunks/ssr/[root-of-the-server]__1kt7h7bz59mdn._.js +1 -1
  62. package/.next/server/chunks/ssr/[root-of-the-server]__1kt7h7bz59mdn._.js.map +1 -1
  63. package/.next/server/chunks/ssr/[root-of-the-server]__1otsvjy81s8my._.js +427 -0
  64. package/.next/server/chunks/ssr/[root-of-the-server]__1otsvjy81s8my._.js.map +1 -0
  65. package/.next/server/chunks/ssr/_0--937zhi743v._.js +3 -0
  66. package/.next/server/chunks/ssr/_0--937zhi743v._.js.map +1 -0
  67. package/.next/server/chunks/ssr/_0e3frtjrk-wi9._.js +3 -0
  68. package/.next/server/chunks/ssr/_0e3frtjrk-wi9._.js.map +1 -0
  69. package/.next/server/chunks/ssr/_0h29jdf4relbq._.js +3 -0
  70. package/.next/server/chunks/ssr/_0h29jdf4relbq._.js.map +1 -0
  71. package/.next/server/chunks/ssr/_1487-zi23c5eb._.js +1 -1
  72. package/.next/server/chunks/ssr/_1487-zi23c5eb._.js.map +1 -1
  73. package/.next/server/chunks/ssr/_1vgwoe-shb9z7._.js +3 -0
  74. package/.next/server/chunks/ssr/_1vgwoe-shb9z7._.js.map +1 -0
  75. package/.next/server/chunks/ssr/_1zm4m-s8k7oe3._.js +3 -0
  76. package/.next/server/chunks/ssr/_1zm4m-s8k7oe3._.js.map +1 -0
  77. package/.next/server/chunks/ssr/_202tntue-jj6s._.js +3 -0
  78. package/.next/server/chunks/ssr/_202tntue-jj6s._.js.map +1 -0
  79. package/.next/server/chunks/ssr/{node_modules_1wlwrgnt65zus._.js → node_modules_00ebs67b4u61w._.js} +1 -1
  80. package/.next/server/chunks/ssr/{node_modules_0m3ihe65818y_._.js → node_modules_01p9ctt-n2dxp._.js} +1 -1
  81. package/.next/server/chunks/ssr/{node_modules_1kr1c-ncf8q9t._.js → node_modules_05i69rc9pwcdx._.js} +1 -1
  82. package/.next/server/chunks/ssr/{node_modules_02jwra-d9iqim._.js → node_modules_06mgkab1v5iox._.js} +2 -2
  83. package/.next/server/chunks/ssr/{node_modules_1dff7b_kvngr-._.js → node_modules_07bjxeq9dfgn1._.js} +2 -2
  84. package/.next/server/chunks/ssr/{node_modules_02vtgweceovke._.js → node_modules_08q6a-f2itxyo._.js} +1 -1
  85. package/.next/server/chunks/ssr/{node_modules_13nsmuhey_ti_._.js → node_modules_09v49jhajmvl4._.js} +2 -2
  86. package/.next/server/chunks/ssr/{node_modules_0oukyh0iq21ow._.js → node_modules_0b8zi3pbl-y9n._.js} +2 -2
  87. package/.next/server/chunks/ssr/{node_modules_061uaylfjwqk7._.js → node_modules_0d2ios01ot1in._.js} +1 -1
  88. package/.next/server/chunks/ssr/{node_modules_0b8ndnuql44z1._.js → node_modules_0dw0vozejrnml._.js} +2 -2
  89. package/.next/server/chunks/ssr/{node_modules_05w7qhtrzvnk6._.js → node_modules_0e3njj436xau-._.js} +1 -1
  90. package/.next/server/chunks/ssr/{node_modules_0z7rdbaf13024._.js → node_modules_0e6qoh__e4a69._.js} +1 -1
  91. package/.next/server/chunks/ssr/{node_modules_1ll-58c1c-qab._.js → node_modules_0hb0q0epwvp--._.js} +1 -1
  92. package/.next/server/chunks/ssr/{node_modules_0f773uqgzj7y7._.js → node_modules_0jla9ugf1y6rb._.js} +1 -1
  93. package/.next/server/chunks/ssr/{node_modules_0fd1swhk15cx3._.js → node_modules_0l-y0kqtu_r3o._.js} +1 -1
  94. package/.next/server/chunks/ssr/{node_modules_1zs2nou5uogby._.js → node_modules_0l814qpw677vm._.js} +1 -1
  95. package/.next/server/chunks/ssr/{node_modules_1c8i3jrmo4393._.js → node_modules_0lqovp8j8ld76._.js} +1 -1
  96. package/.next/server/chunks/ssr/{node_modules_0z3elum1675ve._.js → node_modules_0o63z1gd17rhb._.js} +1 -1
  97. package/.next/server/chunks/ssr/{node_modules_1xyxigbqzb8vs._.js → node_modules_0sjdrli5douui._.js} +1 -1
  98. package/.next/server/chunks/ssr/{node_modules_1iovyom0-y7o_._.js → node_modules_0xh8tnq1niblb._.js} +1 -1
  99. package/.next/server/chunks/ssr/{node_modules_0nde84kzuwv2n._.js → node_modules_0yayrqhzfk8wy._.js} +1 -1
  100. package/.next/server/chunks/ssr/{node_modules_0__m9_odts7_e._.js → node_modules_0z1e37smavebg._.js} +2 -2
  101. package/.next/server/chunks/ssr/{node_modules_0f4xh33v3iltc._.js → node_modules_0zb0i39mnjdf3._.js} +1 -1
  102. package/.next/server/chunks/ssr/{node_modules_02nv3yff2pqh8._.js → node_modules_10g1mmrf63d8a._.js} +2 -2
  103. package/.next/server/chunks/ssr/{node_modules_0-6sb1gkbjo93._.js → node_modules_152txg4c7ose3._.js} +2 -2
  104. package/.next/server/chunks/ssr/{node_modules_12qn4bepdou5v._.js → node_modules_185fuy4cv7loa._.js} +2 -2
  105. package/.next/server/chunks/ssr/{node_modules_0dq0dsblt-q0g._.js → node_modules_1aqaelh-8fme6._.js} +1 -1
  106. package/.next/server/chunks/ssr/{node_modules_1-iyhsn_1p9nx._.js → node_modules_1d4sreyq0ubqg._.js} +2 -2
  107. package/.next/server/chunks/ssr/{node_modules_0hqa9oxz17hip._.js → node_modules_1e_nc2eyg4djz._.js} +1 -1
  108. package/.next/server/chunks/ssr/{node_modules_1rlnehdn16ay-._.js → node_modules_1hd7j-tdb8drq._.js} +1 -1
  109. package/.next/server/chunks/ssr/{node_modules_12qw2ucebdvol._.js → node_modules_1i3x2csuq_-jt._.js} +1 -1
  110. package/.next/server/chunks/ssr/{node_modules_0zc49fdcopqu9._.js → node_modules_1l2g7btuh3e4s._.js} +2 -2
  111. package/.next/server/chunks/ssr/{node_modules_1-sz_-qddwilq._.js → node_modules_1l46or7mgko0z._.js} +1 -1
  112. package/.next/server/chunks/ssr/{node_modules_0fs8mckuwk2tj._.js → node_modules_1ltys5mwtcv-n._.js} +1 -1
  113. package/.next/server/chunks/ssr/{node_modules_0vn0kjn_84lmn._.js → node_modules_1nz3ckv6tu_66._.js} +1 -1
  114. package/.next/server/chunks/ssr/{node_modules_0t4h1rucl35hl._.js → node_modules_1pquu5wprusnc._.js} +2 -2
  115. package/.next/server/chunks/ssr/{node_modules_0-nvg0c4pgfb8._.js → node_modules_1qnypguag6s_l._.js} +1 -1
  116. package/.next/server/chunks/ssr/{node_modules_1v4lexrfhnlhs._.js → node_modules_1r6w-jlme6d10._.js} +1 -1
  117. package/.next/server/chunks/ssr/{node_modules_1f4geuvkvlxj1._.js → node_modules_1st9dwe66yx93._.js} +1 -1
  118. package/.next/server/chunks/ssr/{node_modules_0kovk4b6czb22._.js → node_modules_1tskcaktx6ods._.js} +1 -1
  119. package/.next/server/chunks/ssr/{node_modules_07maxxr-t28ql._.js → node_modules_1wew4nn7i1uup._.js} +1 -1
  120. package/.next/server/chunks/ssr/{node_modules_1216007ogd5om._.js → node_modules_1zbmc81s-4zsm._.js} +1 -1
  121. package/.next/server/chunks/ssr/{node_modules_1kv6lsckqs-m0._.js → node_modules_1zii7uk468cay._.js} +2 -2
  122. package/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_0bmuudv_6eypr._.js → node_modules_katex_dist_katex_mjs_0kqo9zl9cgwbo._.js} +1 -1
  123. package/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_0qyy6pq9uzpk0._.js → node_modules_katex_dist_katex_mjs_1604s1ky8db8u._.js} +1 -1
  124. package/.next/server/chunks/ssr/{node_modules_lucide-react_dist_esm_1d8fezw1qsiob._.js → node_modules_lucide-react_dist_esm_0-5bcc79665lq._.js} +2 -2
  125. package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_0-5bcc79665lq._.js.map +1 -0
  126. package/.next/server/chunks/ssr/{node_modules_lucide-react_dist_esm_0pezg1352q13j._.js → node_modules_lucide-react_dist_esm_0axoa1eg51x1-._.js} +2 -2
  127. package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_0axoa1eg51x1-._.js.map +1 -0
  128. 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
  129. package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_18ei1-na3kusb._.js.map +1 -0
  130. 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
  131. package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_1tx493x2_auzs._.js.map +1 -0
  132. package/.next/server/chunks/ssr/node_modules_mermaid_dist_mermaid_core_mjs_06it7ktosm1dr._.js +3 -0
  133. package/.next/server/chunks/ssr/node_modules_mermaid_dist_mermaid_core_mjs_06it7ktosm1dr._.js.map +1 -0
  134. package/.next/server/chunks/ssr/src_app_page_1vqfk0-j72fp6.js +1 -1
  135. package/.next/server/chunks/ssr/src_app_page_1vqfk0-j72fp6.js.map +1 -1
  136. package/.next/server/chunks/ssr/src_components_reports_TokenReportView_jsx_1g3p_enbbsadt._.js +1 -1
  137. package/.next/server/chunks/ssr/src_components_reports_TokenReportView_jsx_1g3p_enbbsadt._.js.map +1 -1
  138. package/.next/server/middleware-build-manifest.js +3 -3
  139. package/.next/server/pages/404.html +1 -1
  140. package/.next/server/pages/500.html +1 -1
  141. package/.next/server/preview-props.json +3 -3
  142. package/.next/server/server-reference-manifest.js +1 -1
  143. package/.next/server/server-reference-manifest.json +1 -1
  144. package/.next/static/chunks/0r9apkv3exqv-.js +1 -0
  145. package/.next/static/chunks/17jorrh_pfel_.js +1 -0
  146. package/.next/static/chunks/1n_lb7wmn81jj.js +1 -0
  147. package/.next/static/chunks/2-w116ewoshm1.js +1 -0
  148. package/.next/static/chunks/23uup1e8841av.js +1 -0
  149. package/.next/static/chunks/25l0z48vlvdu4.css +1 -0
  150. package/.next/static/chunks/2rx7xvi55ohln.js +1 -0
  151. package/.next/static/chunks/3og0e9qcff393.js +425 -0
  152. package/.next/static/chunks/3rtpnpqd981z9.js +1 -0
  153. package/.next/trace +1 -1
  154. package/.next/trace-build +1 -1
  155. package/bin/cli.js +12 -0
  156. package/package.json +1 -1
  157. package/src/app/chat/page.js +14 -14
  158. package/src/app/globals.css +128 -0
  159. package/src/app/layout.js +6 -1
  160. package/src/app/page.js +1 -1
  161. package/src/components/chat/ChatMessageItem.js +12 -12
  162. package/src/components/chat/CodeBlock.js +5 -5
  163. package/src/components/chat/DiffViewer.js +27 -27
  164. package/src/components/chat/MarkdownRenderer.js +19 -19
  165. package/src/components/chat/SessionChatView.js +41 -41
  166. package/src/components/chat/SessionSearch.js +8 -8
  167. package/src/components/chat/ThinkingAccordion.js +3 -3
  168. package/src/components/chat/ToolCallCard.js +6 -6
  169. package/src/components/chat/ToolOutputView.js +19 -19
  170. package/src/components/factory/office-canvas.js +134 -3
  171. package/src/components/factory/scene/characters.js +267 -32
  172. package/src/components/layout/CommandPalette.jsx +12 -0
  173. package/src/components/layout/EditorTabs.jsx +17 -0
  174. package/src/components/layout/LayoutToggles.jsx +31 -2
  175. package/src/components/layout/LeftSidebar.jsx +27 -3
  176. package/src/components/layout/RightSidebar.jsx +8 -8
  177. package/src/components/layout/TitleBar.jsx +5 -1
  178. package/src/components/layout/VSCodeWorkbench.jsx +78 -14
  179. package/src/components/store/Item3DRenderer.jsx +602 -48
  180. package/src/components/store/LiveFittingRoom.jsx +55 -791
  181. package/src/components/store/LiveReactAgent.jsx +1637 -0
  182. package/src/components/store/SupporterStoreModal.jsx +3 -2
  183. package/src/components/store/SupporterStoreView.jsx +94 -34
  184. package/src/components/theme/ThemeSettingsModal.jsx +40 -40
  185. package/src/components/ui/Button.jsx +4 -4
  186. package/src/components/ui/Input.jsx +1 -1
  187. package/src/components/ui/Modal.jsx +6 -6
  188. package/src/components/ui/Select.jsx +3 -3
  189. package/src/lib/catalog/auras.js +226 -1199
  190. package/src/lib/catalog/index.js +60 -1
  191. package/src/lib/catalog/pets.js +291 -2398
  192. package/src/lib/catalog/props.js +488 -4199
  193. package/src/lib/catalog/skins.js +773 -3249
  194. package/src/lib/catalog/trophies.js +226 -1199
  195. package/src/lib/mockTraces.js +15 -15
  196. package/src/lib/supporterStore.js +1 -1
  197. package/src/lib/traceContract.js +1 -1
  198. package/src/lib/watchers/claudeWatcher.js +24 -19
  199. package/.next/server/chunks/ssr/[root-of-the-server]__19s2v5rryc14o._.js +0 -3
  200. package/.next/server/chunks/ssr/[root-of-the-server]__19s2v5rryc14o._.js.map +0 -1
  201. package/.next/server/chunks/ssr/[root-of-the-server]__1_jerxrctq6ev._.js +0 -427
  202. package/.next/server/chunks/ssr/[root-of-the-server]__1_jerxrctq6ev._.js.map +0 -1
  203. package/.next/server/chunks/ssr/[root-of-the-server]__1pvso-uyf--97._.js +0 -427
  204. package/.next/server/chunks/ssr/[root-of-the-server]__1pvso-uyf--97._.js.map +0 -1
  205. package/.next/server/chunks/ssr/[root-of-the-server]__1y78dc7oiz7ks._.js +0 -3
  206. package/.next/server/chunks/ssr/[root-of-the-server]__1y78dc7oiz7ks._.js.map +0 -1
  207. package/.next/server/chunks/ssr/_0ozao7omdwbvd._.js +0 -3
  208. package/.next/server/chunks/ssr/_0ozao7omdwbvd._.js.map +0 -1
  209. package/.next/server/chunks/ssr/_0rcmpdyxc1qwj._.js +0 -3
  210. package/.next/server/chunks/ssr/_0rcmpdyxc1qwj._.js.map +0 -1
  211. package/.next/server/chunks/ssr/_0wv0xnhun3mk7._.js +0 -3
  212. package/.next/server/chunks/ssr/_0wv0xnhun3mk7._.js.map +0 -1
  213. package/.next/server/chunks/ssr/_17rmaft1zusua._.js +0 -3
  214. package/.next/server/chunks/ssr/_17rmaft1zusua._.js.map +0 -1
  215. package/.next/server/chunks/ssr/_1e-d4pcj59a7a._.js +0 -3
  216. package/.next/server/chunks/ssr/_1e-d4pcj59a7a._.js.map +0 -1
  217. package/.next/server/chunks/ssr/_1qr5gnh64z8pg._.js +0 -3
  218. package/.next/server/chunks/ssr/_1qr5gnh64z8pg._.js.map +0 -1
  219. package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_0pezg1352q13j._.js.map +0 -1
  220. package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_131i-tjzse3ye._.js.map +0 -1
  221. package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_1d8fezw1qsiob._.js.map +0 -1
  222. package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_1to-9cv1ysvs6._.js.map +0 -1
  223. package/.next/static/chunks/0_3s_e4gd9xl0.js +0 -1
  224. package/.next/static/chunks/0i4kx4yl-dwfg.js +0 -425
  225. package/.next/static/chunks/0z0jbobmmvqoc.js +0 -1
  226. package/.next/static/chunks/1_a_gmob5qzho.js +0 -1
  227. package/.next/static/chunks/1ifqr4qo4697b.js +0 -1
  228. package/.next/static/chunks/2ccq9i8ev4dsx.js +0 -1
  229. package/.next/static/chunks/2mif7onk_9jy-.css +0 -1
  230. package/.next/static/chunks/40wyf-mv0tiu3.js +0 -1
  231. /package/.next/server/chunks/ssr/{node_modules_1c8i3jrmo4393._.js.map → node_modules_00ebs67b4u61w._.js.map} +0 -0
  232. /package/.next/server/chunks/ssr/{node_modules_02vtgweceovke._.js.map → node_modules_01p9ctt-n2dxp._.js.map} +0 -0
  233. /package/.next/server/chunks/ssr/{node_modules_1kr1c-ncf8q9t._.js.map → node_modules_05i69rc9pwcdx._.js.map} +0 -0
  234. /package/.next/server/chunks/ssr/{node_modules_02jwra-d9iqim._.js.map → node_modules_06mgkab1v5iox._.js.map} +0 -0
  235. /package/.next/server/chunks/ssr/{node_modules_1dff7b_kvngr-._.js.map → node_modules_07bjxeq9dfgn1._.js.map} +0 -0
  236. /package/.next/server/chunks/ssr/{node_modules_0m3ihe65818y_._.js.map → node_modules_08q6a-f2itxyo._.js.map} +0 -0
  237. /package/.next/server/chunks/ssr/{node_modules_0-6sb1gkbjo93._.js.map → node_modules_09v49jhajmvl4._.js.map} +0 -0
  238. /package/.next/server/chunks/ssr/{node_modules_0oukyh0iq21ow._.js.map → node_modules_0b8zi3pbl-y9n._.js.map} +0 -0
  239. /package/.next/server/chunks/ssr/{node_modules_061uaylfjwqk7._.js.map → node_modules_0d2ios01ot1in._.js.map} +0 -0
  240. /package/.next/server/chunks/ssr/{node_modules_02nv3yff2pqh8._.js.map → node_modules_0dw0vozejrnml._.js.map} +0 -0
  241. /package/.next/server/chunks/ssr/{node_modules_0-nvg0c4pgfb8._.js.map → node_modules_0e3njj436xau-._.js.map} +0 -0
  242. /package/.next/server/chunks/ssr/{node_modules_0fs8mckuwk2tj._.js.map → node_modules_0e6qoh__e4a69._.js.map} +0 -0
  243. /package/.next/server/chunks/ssr/{node_modules_0t4h1rucl35hl._.js.map → node_modules_0hb0q0epwvp--._.js.map} +0 -0
  244. /package/.next/server/chunks/ssr/{node_modules_0f773uqgzj7y7._.js.map → node_modules_0jla9ugf1y6rb._.js.map} +0 -0
  245. /package/.next/server/chunks/ssr/{node_modules_0dq0dsblt-q0g._.js.map → node_modules_0l-y0kqtu_r3o._.js.map} +0 -0
  246. /package/.next/server/chunks/ssr/{node_modules_0zc49fdcopqu9._.js.map → node_modules_0l814qpw677vm._.js.map} +0 -0
  247. /package/.next/server/chunks/ssr/{node_modules_1wlwrgnt65zus._.js.map → node_modules_0lqovp8j8ld76._.js.map} +0 -0
  248. /package/.next/server/chunks/ssr/{node_modules_0z3elum1675ve._.js.map → node_modules_0o63z1gd17rhb._.js.map} +0 -0
  249. /package/.next/server/chunks/ssr/{node_modules_1xyxigbqzb8vs._.js.map → node_modules_0sjdrli5douui._.js.map} +0 -0
  250. /package/.next/server/chunks/ssr/{node_modules_1-iyhsn_1p9nx._.js.map → node_modules_0xh8tnq1niblb._.js.map} +0 -0
  251. /package/.next/server/chunks/ssr/{node_modules_0nde84kzuwv2n._.js.map → node_modules_0yayrqhzfk8wy._.js.map} +0 -0
  252. /package/.next/server/chunks/ssr/{node_modules_0__m9_odts7_e._.js.map → node_modules_0z1e37smavebg._.js.map} +0 -0
  253. /package/.next/server/chunks/ssr/{node_modules_0f4xh33v3iltc._.js.map → node_modules_0zb0i39mnjdf3._.js.map} +0 -0
  254. /package/.next/server/chunks/ssr/{node_modules_0b8ndnuql44z1._.js.map → node_modules_10g1mmrf63d8a._.js.map} +0 -0
  255. /package/.next/server/chunks/ssr/{node_modules_1-sz_-qddwilq._.js.map → node_modules_152txg4c7ose3._.js.map} +0 -0
  256. /package/.next/server/chunks/ssr/{node_modules_12qn4bepdou5v._.js.map → node_modules_185fuy4cv7loa._.js.map} +0 -0
  257. /package/.next/server/chunks/ssr/{node_modules_0fd1swhk15cx3._.js.map → node_modules_1aqaelh-8fme6._.js.map} +0 -0
  258. /package/.next/server/chunks/ssr/{node_modules_13nsmuhey_ti_._.js.map → node_modules_1d4sreyq0ubqg._.js.map} +0 -0
  259. /package/.next/server/chunks/ssr/{node_modules_0hqa9oxz17hip._.js.map → node_modules_1e_nc2eyg4djz._.js.map} +0 -0
  260. /package/.next/server/chunks/ssr/{node_modules_1rlnehdn16ay-._.js.map → node_modules_1hd7j-tdb8drq._.js.map} +0 -0
  261. /package/.next/server/chunks/ssr/{node_modules_07maxxr-t28ql._.js.map → node_modules_1i3x2csuq_-jt._.js.map} +0 -0
  262. /package/.next/server/chunks/ssr/{node_modules_1iovyom0-y7o_._.js.map → node_modules_1l2g7btuh3e4s._.js.map} +0 -0
  263. /package/.next/server/chunks/ssr/{node_modules_1ll-58c1c-qab._.js.map → node_modules_1l46or7mgko0z._.js.map} +0 -0
  264. /package/.next/server/chunks/ssr/{node_modules_0z7rdbaf13024._.js.map → node_modules_1ltys5mwtcv-n._.js.map} +0 -0
  265. /package/.next/server/chunks/ssr/{node_modules_0vn0kjn_84lmn._.js.map → node_modules_1nz3ckv6tu_66._.js.map} +0 -0
  266. /package/.next/server/chunks/ssr/{node_modules_1zs2nou5uogby._.js.map → node_modules_1pquu5wprusnc._.js.map} +0 -0
  267. /package/.next/server/chunks/ssr/{node_modules_05w7qhtrzvnk6._.js.map → node_modules_1qnypguag6s_l._.js.map} +0 -0
  268. /package/.next/server/chunks/ssr/{node_modules_1v4lexrfhnlhs._.js.map → node_modules_1r6w-jlme6d10._.js.map} +0 -0
  269. /package/.next/server/chunks/ssr/{node_modules_1f4geuvkvlxj1._.js.map → node_modules_1st9dwe66yx93._.js.map} +0 -0
  270. /package/.next/server/chunks/ssr/{node_modules_0kovk4b6czb22._.js.map → node_modules_1tskcaktx6ods._.js.map} +0 -0
  271. /package/.next/server/chunks/ssr/{node_modules_12qw2ucebdvol._.js.map → node_modules_1wew4nn7i1uup._.js.map} +0 -0
  272. /package/.next/server/chunks/ssr/{node_modules_1216007ogd5om._.js.map → node_modules_1zbmc81s-4zsm._.js.map} +0 -0
  273. /package/.next/server/chunks/ssr/{node_modules_1kv6lsckqs-m0._.js.map → node_modules_1zii7uk468cay._.js.map} +0 -0
  274. /package/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_0bmuudv_6eypr._.js.map → node_modules_katex_dist_katex_mjs_0kqo9zl9cgwbo._.js.map} +0 -0
  275. /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
  276. /package/.next/static/{sQnXeiP8rV6y2v0az_xw3 → 1y6Da0YgnPr2_6ncpWrbV}/_buildManifest.js +0 -0
  277. /package/.next/static/{sQnXeiP8rV6y2v0az_xw3 → 1y6Da0YgnPr2_6ncpWrbV}/_clientMiddlewareManifest.js +0 -0
  278. /package/.next/static/{sQnXeiP8rV6y2v0az_xw3 → 1y6Da0YgnPr2_6ncpWrbV}/_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-slate-200 text-sm leading-relaxed break-words">
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-slate-700/80 bg-slate-950 shadow-md transition-all hover:border-cyan-500/70 hover:shadow-cyan-500/10 hover:shadow-xl"
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-slate-400 italic">
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-cyan-950/80 hover:bg-cyan-900 border border-cyan-500/50 hover:border-cyan-400 text-cyan-300 font-mono text-[11px] transition-all cursor-pointer group shadow-sm"
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-cyan-400 shrink-0 transition-transform group-hover:scale-110" />
112
- <span className="underline decoration-cyan-500/40">{cleanPath}</span>
113
- <Maximize2 className="w-3 h-3 text-cyan-400 opacity-60 group-hover:opacity-100" />
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-slate-800/90 text-cyan-300 font-mono text-[12px] border border-slate-700/50"
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-cyan-400 underline decoration-cyan-500/40 hover:decoration-cyan-400 hover:text-cyan-300 font-medium transition-colors inline-flex items-center gap-1.5"
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-cyan-400 shrink-0" />
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-cyan-400 underline decoration-cyan-500/40 hover:decoration-cyan-400 hover:text-cyan-300 transition-colors"
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-slate-700/80 bg-slate-900/60">
159
- <table className="min-w-full divide-y divide-slate-800 text-left text-xs">
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-slate-300 bg-slate-800/60">
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-slate-800/60 text-slate-300">
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-cyan-500/60 pl-3 italic text-slate-400 text-xs">
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-slate-100 my-2">{children}</h1>;
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-slate-100 my-2">{children}</h2>;
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-slate-200 my-1.5">{children}</h3>;
202
+ return <h3 className="text-sm font-semibold text-[var(--text-bright)] my-1.5">{children}</h3>;
203
203
  },
204
204
  }}
205
205
  >
@@ -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-[#1e1e1e] text-[#cccccc] select-none overflow-hidden">
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-[#2b2b2b] bg-[#252526] px-3 py-2 flex items-center justify-between gap-2 shrink-0">
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-slate-200 text-xs truncate max-w-[130px]">
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-slate-400 font-mono truncate">
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-slate-400 hover:text-white hover:bg-[#333333]"
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-slate-400 hover:text-white hover:bg-[#333333]"
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-slate-400 hover:text-white hover:bg-[#333333] transition-colors cursor-pointer"
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-[#333333] transition-colors cursor-pointer"
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-slate-400 hover:text-white hover:bg-[#333333] transition-colors cursor-pointer"
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-slate-400 hover:text-cyan-300 hover:bg-[#333333] transition-colors cursor-pointer"
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-slate-800 bg-slate-900/80 rounded-t-2xl shrink-0">
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-slate-100 truncate">
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-slate-700 bg-slate-800/80 text-slate-300"
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-slate-400 font-mono truncate mt-0.5 flex items-center gap-1.5">
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-slate-400 truncate max-w-44">{session.cwd}</span>
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-slate-800 text-slate-400 hover:bg-slate-800 hover:text-slate-200"
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-slate-800 text-slate-400 hover:bg-slate-800 hover:text-slate-200"
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-slate-400 hover:bg-slate-800 hover:text-slate-200 transition-colors cursor-pointer"
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-slate-800 hover:bg-slate-700 text-slate-300 text-xs font-medium border border-slate-700 transition-colors cursor-pointer"
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-slate-800 hover:bg-[#007acc] text-slate-300 hover:text-white text-xs font-medium border border-slate-700 transition-colors cursor-pointer"
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-slate-800 hover:bg-[#007acc] text-slate-300 hover:text-white text-xs font-medium border border-slate-700 transition-colors cursor-pointer"
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-slate-700 bg-slate-800 text-slate-300 hover:bg-slate-700 hover:text-white"
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-slate-400 hover:bg-slate-800 hover:text-rose-400 transition-colors cursor-pointer"
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-[#2b2b2b] bg-[#252526] flex justify-end shrink-0 ${isSidebar ? "px-3" : "px-5"}`}>
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-[#2b2b2b] bg-[#1e1e1e] text-xs shrink-0 py-1.5 ${isSidebar ? "px-3" : "px-5"}`}>
607
- <div className="flex items-center gap-1 bg-[#181818] p-0.5 rounded-lg border border-[#2b2b2b] overflow-x-auto max-w-full">
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-[#252526] text-cyan-300 shadow-sm font-semibold border border-[#3e3e42]"
623
- : "text-slate-400 hover:text-slate-200 hover:bg-[#252526]/50"
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-slate-400 cursor-pointer select-none">
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-slate-700 bg-slate-900 text-cyan-500 focus:ring-0 w-3 h-3 cursor-pointer"
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-[#2b2b2b] text-xs text-slate-400">
652
- <span className="font-semibold text-slate-200">Terminal Telemetry Stream</span>
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-slate-500 text-xs">
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-[#141414] border border-[#2b2b2b] hover:border-slate-700 transition-colors"
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-slate-500 whitespace-nowrap pt-0.5">
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-slate-200 font-medium truncate">{log.summary || log.type}</div>
677
+ <div className="text-[var(--text-bright)] font-medium truncate">{log.summary || log.type}</div>
678
678
  {log.detail && (
679
- <div className="text-slate-400 text-[11px] truncate mt-0.5 whitespace-pre-wrap break-all">
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-slate-400 gap-2 py-12">
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-slate-400 gap-2 py-12">
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-slate-500 gap-2 py-12">
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-[#2b2b2b] bg-[#181818] flex items-center justify-between text-[11px] text-slate-400 font-mono shrink-0 py-2 ${isSidebar ? "px-3" : "px-5 rounded-b-2xl"}`}>
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-slate-900/95 border border-slate-700/80 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-slate-400 shrink-0" />
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-slate-200 placeholder:text-slate-500 focus:outline-none w-56 md:w-64"
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-slate-800 text-slate-300 border border-slate-700/60 shrink-0">
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-slate-800 pl-1.5 gap-0.5">
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-slate-400 hover:text-slate-200 hover:bg-slate-800 disabled:opacity-40 disabled:hover:bg-transparent transition-colors"
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-slate-400 hover:text-slate-200 hover:bg-slate-800 disabled:opacity-40 disabled:hover:bg-transparent transition-colors"
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-slate-400 hover:text-rose-400 hover:bg-slate-800/80 transition-colors ml-1"
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-900/40 bg-purple-950/20 overflow-hidden transition-all">
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-950/30 hover:bg-purple-900/30 transition-colors text-xs text-purple-300 font-medium"
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-purple-200/90 leading-relaxed font-mono whitespace-pre-wrap border-t border-purple-900/30 max-h-96 overflow-y-auto bg-black/40">
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-slate-800/40 transition-colors"
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-slate-900/60 border border-slate-700/50 shrink-0">
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-slate-200">
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-slate-400" />
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-slate-400" />
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-slate-800/60 bg-slate-950/70 space-y-3">
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