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
@@ -69,30 +69,30 @@ function StandaloneChatContent() {
69
69
  };
70
70
 
71
71
  return (
72
- <div className="h-screen w-screen overflow-hidden bg-[#181818] flex flex-col select-none text-[#cccccc] font-sans">
72
+ <div className="h-screen w-screen overflow-hidden bg-[var(--bg-workbench)] flex flex-col select-none text-[var(--text-main)] font-sans">
73
73
  {/* Detached Window Title Bar (VS Code Auxiliary Window style) */}
74
- <header className="h-[38px] min-h-[38px] bg-[#1e1e1e] border-b border-[#2b2b2b] px-3 flex items-center justify-between shrink-0 z-30">
74
+ <header className="h-[38px] min-h-[38px] bg-[var(--bg-card)] border-b border-[var(--border-subtle)] px-3 flex items-center justify-between shrink-0 z-30">
75
75
  {/* Left: Brand & Return Navigation */}
76
76
  <div className="flex items-center gap-3">
77
77
  <Link
78
78
  href="/"
79
79
  title="Back to Virtual Office"
80
- className="flex items-center gap-1.5 text-xs text-slate-400 hover:text-white transition-colors"
80
+ className="flex items-center gap-1.5 text-xs text-[var(--text-muted)] hover:text-[var(--text-bright)] transition-colors"
81
81
  >
82
82
  <ArrowLeft className="w-3.5 h-3.5" />
83
83
  <span className="hidden sm:inline font-medium">Virtual Office</span>
84
84
  </Link>
85
85
 
86
- <span className="text-slate-600">|</span>
86
+ <span className="text-[var(--border-card)]">|</span>
87
87
 
88
88
  <div className="flex items-center gap-2">
89
- <div className="w-5 h-5 rounded bg-[#007acc]/20 border border-[#007acc]/40 flex items-center justify-center">
90
- <Bot className="w-3.5 h-3.5 text-[#4fc1ff]" />
89
+ <div className="w-5 h-5 rounded bg-[var(--accent-primary)]/20 border border-[var(--accent-primary)]/40 flex items-center justify-center">
90
+ <Bot className="w-3.5 h-3.5 text-[var(--accent-primary)]" />
91
91
  </div>
92
- <span className="text-xs font-bold text-white tracking-wide">
92
+ <span className="text-xs font-bold text-[var(--text-bright)] tracking-wide">
93
93
  AGMon
94
94
  </span>
95
- <span className="text-[10px] bg-[#2d2d2d] px-1.5 py-0.2 rounded border border-[#3e3e42] text-slate-400 hidden sm:inline">
95
+ <span className="text-[10px] bg-[var(--bg-card-inner)] px-1.5 py-0.2 rounded border border-[var(--border-card)] text-[var(--text-muted)] hidden sm:inline">
96
96
  Detached Window
97
97
  </span>
98
98
  </div>
@@ -100,18 +100,18 @@ function StandaloneChatContent() {
100
100
 
101
101
  {/* Center: Agent Quick Switcher */}
102
102
  {traces.length > 1 && (
103
- <div className="flex items-center gap-1.5 bg-[#252526] border border-[#3e3e42] rounded px-2 py-0.5 text-xs">
104
- <Layers className="w-3 h-3 text-cyan-400 shrink-0" />
103
+ <div className="flex items-center gap-1.5 bg-[var(--bg-card-inner)] border border-[var(--border-card)] rounded px-2 py-0.5 text-xs">
104
+ <Layers className="w-3 h-3 text-[var(--accent-secondary)] shrink-0" />
105
105
  <select
106
106
  value={activeId}
107
107
  onChange={(e) => setSelectedId(e.target.value)}
108
- className="bg-transparent text-slate-200 text-xs font-mono outline-none cursor-pointer"
108
+ className="bg-transparent text-[var(--text-main)] text-xs font-mono outline-none cursor-pointer"
109
109
  >
110
110
  {traces.map((t) => (
111
111
  <option
112
112
  key={t.connectionId || t.traceId}
113
113
  value={t.connectionId || t.traceId}
114
- className="bg-[#252526] text-slate-200"
114
+ className="bg-[var(--bg-card)] text-[var(--text-main)]"
115
115
  >
116
116
  {t.account || t.connectionId} ({t.model || "gemini"})
117
117
  </option>
@@ -125,7 +125,7 @@ function StandaloneChatContent() {
125
125
  {/* Fullscreen Toggle */}
126
126
  <button
127
127
  onClick={toggleBrowserFullscreen}
128
- className="p-1 rounded text-slate-400 hover:text-white hover:bg-[#2d2d2d] transition-colors cursor-pointer"
128
+ className="p-1 rounded text-[var(--text-muted)] hover:text-[var(--text-bright)] hover:bg-[var(--bg-hover)] transition-colors cursor-pointer"
129
129
  title={isBrowserFullscreen ? "Exit Fullscreen" : "Fullscreen (F11)"}
130
130
  >
131
131
  {isBrowserFullscreen ? (
@@ -138,7 +138,7 @@ function StandaloneChatContent() {
138
138
  {/* Close Window */}
139
139
  <button
140
140
  onClick={handleCloseWindow}
141
- className="p-1 rounded text-slate-400 hover:text-rose-400 hover:bg-[#2d2d2d] transition-colors cursor-pointer"
141
+ className="p-1 rounded text-[var(--text-muted)] hover:text-rose-400 hover:bg-[var(--bg-hover)] transition-colors cursor-pointer"
142
142
  title="Close auxiliary window"
143
143
  >
144
144
  <X className="w-4 h-4" />
@@ -38,6 +38,20 @@
38
38
  --text-main: #cccccc;
39
39
  --text-muted: #858585;
40
40
  --text-bright: #ffffff;
41
+ --text-on-accent: #ffffff;
42
+
43
+ /* Chat Semantics */
44
+ --bg-chat-user: rgba(8, 47, 73, 0.6);
45
+ --border-chat-user: rgba(6, 182, 212, 0.35);
46
+ --text-chat-user: #67e8f9;
47
+ --text-chat-user-body: #f1f5f9;
48
+ --bg-chat-agent: #1e1e1e;
49
+ --border-chat-agent: #2b2b2b;
50
+ --bg-chat-tool: #141414;
51
+ --border-chat-tool: #2b2b2b;
52
+ --bg-chat-code: #141414;
53
+ --text-chat-code: #e2e8f0;
54
+ --bg-input: #252526;
41
55
  }
42
56
 
43
57
  /* 1. One Dark Pro */
@@ -61,6 +75,20 @@
61
75
  --text-main: #abb2bf;
62
76
  --text-muted: #5c6370;
63
77
  --text-bright: #e5e5e5;
78
+ --text-on-accent: #ffffff;
79
+
80
+ /* Chat Semantics */
81
+ --bg-chat-user: #21252b;
82
+ --border-chat-user: rgba(97, 175, 239, 0.4);
83
+ --text-chat-user: #61afef;
84
+ --text-chat-user-body: #e5e5e5;
85
+ --bg-chat-agent: #282c34;
86
+ --border-chat-agent: #353b45;
87
+ --bg-chat-tool: #1e2227;
88
+ --border-chat-tool: #181a1f;
89
+ --bg-chat-code: #1e2227;
90
+ --text-chat-code: #abb2bf;
91
+ --bg-input: #21252b;
64
92
  }
65
93
 
66
94
  /* 2. Tokyo Night */
@@ -84,6 +112,20 @@
84
112
  --text-main: #a9b1d6;
85
113
  --text-muted: #565f89;
86
114
  --text-bright: #c0caf5;
115
+ --text-on-accent: #ffffff;
116
+
117
+ /* Chat Semantics */
118
+ --bg-chat-user: #1f2335;
119
+ --border-chat-user: rgba(122, 162, 247, 0.4);
120
+ --text-chat-user: #7aa2f7;
121
+ --text-chat-user-body: #c0caf5;
122
+ --bg-chat-agent: #1a1b26;
123
+ --border-chat-agent: #292e42;
124
+ --bg-chat-tool: #16161e;
125
+ --border-chat-tool: #292e42;
126
+ --bg-chat-code: #13141c;
127
+ --text-chat-code: #a9b1d6;
128
+ --bg-input: #1f2335;
87
129
  }
88
130
 
89
131
  /* 3. GitHub Dark */
@@ -107,6 +149,20 @@
107
149
  --text-main: #c9d1d9;
108
150
  --text-muted: #8b949e;
109
151
  --text-bright: #f0f6fc;
152
+ --text-on-accent: #ffffff;
153
+
154
+ /* Chat Semantics */
155
+ --bg-chat-user: #161b22;
156
+ --border-chat-user: rgba(47, 129, 247, 0.4);
157
+ --text-chat-user: #58a6ff;
158
+ --text-chat-user-body: #f0f6fc;
159
+ --bg-chat-agent: #161b22;
160
+ --border-chat-agent: #30363d;
161
+ --bg-chat-tool: #0d1117;
162
+ --border-chat-tool: #21262d;
163
+ --bg-chat-code: #0a0c10;
164
+ --text-chat-code: #c9d1d9;
165
+ --bg-input: #0d1117;
110
166
  }
111
167
 
112
168
  /* 4. Monokai Pro */
@@ -130,6 +186,20 @@
130
186
  --text-main: #fcfcfa;
131
187
  --text-muted: #939293;
132
188
  --text-bright: #ffffff;
189
+ --text-on-accent: #19181a;
190
+
191
+ /* Chat Semantics */
192
+ --bg-chat-user: #2d2a2e;
193
+ --border-chat-user: rgba(255, 216, 102, 0.4);
194
+ --text-chat-user: #ffd866;
195
+ --text-chat-user-body: #fcfcfa;
196
+ --bg-chat-agent: #221f22;
197
+ --border-chat-agent: #403e41;
198
+ --bg-chat-tool: #19181a;
199
+ --border-chat-tool: #403e41;
200
+ --bg-chat-code: #171618;
201
+ --text-chat-code: #fcfcfa;
202
+ --bg-input: #2d2a2e;
133
203
  }
134
204
 
135
205
  /* 5. Light+ (VS Code Modern) */
@@ -154,6 +224,20 @@
154
224
  --text-main: #24292f;
155
225
  --text-muted: #6e7781;
156
226
  --text-bright: #09090b;
227
+ --text-on-accent: #ffffff;
228
+
229
+ /* Chat Semantics for Light Mode */
230
+ --bg-chat-user: #e0f2fe;
231
+ --border-chat-user: #7dd3fc;
232
+ --text-chat-user: #0284c7;
233
+ --text-chat-user-body: #0f172a;
234
+ --bg-chat-agent: #ffffff;
235
+ --border-chat-agent: #e2e8f0;
236
+ --bg-chat-tool: #f8fafc;
237
+ --border-chat-tool: #e2e8f0;
238
+ --bg-chat-code: #f1f5f9;
239
+ --text-chat-code: #0f172a;
240
+ --bg-input: #ffffff;
157
241
  }
158
242
 
159
243
  html {
@@ -206,6 +290,16 @@ samp {
206
290
  .bg-\[\#37373d\] { background-color: var(--bg-selection) !important; }
207
291
  .bg-\[\#007acc\] { background-color: var(--accent-primary) !important; }
208
292
 
293
+ /* Dynamic mappings for auxiliary dark shades */
294
+ .bg-\[\#141414\] { background-color: var(--bg-chat-code) !important; }
295
+ .bg-\[\#121214\] { background-color: var(--bg-workbench) !important; }
296
+ .bg-\[\#18181b\] { background-color: var(--bg-card) !important; }
297
+ .bg-\[\#1f1f23\] { background-color: var(--bg-card-inner) !important; }
298
+ .bg-\[\#27272a\] { background-color: var(--bg-hover) !important; }
299
+ .bg-\[\#17171e\] { background-color: var(--bg-card) !important; }
300
+ .bg-\[\#242632\] { background-color: var(--bg-card-inner) !important; }
301
+ .bg-\[\#2e3142\] { background-color: var(--bg-hover) !important; }
302
+
209
303
  .hover\:bg-\[\#2a2d2e\]:hover { background-color: var(--bg-hover) !important; }
210
304
  .hover\:bg-\[\#333333\]:hover { background-color: var(--bg-hover) !important; }
211
305
  .hover\:bg-\[\#2d2d2e\]:hover { background-color: var(--bg-hover) !important; }
@@ -216,11 +310,45 @@ samp {
216
310
  .border-\[\#3e3e42\] { border-color: var(--border-card) !important; }
217
311
  .border-\[\#1e1e1e\] { border-color: var(--border-subtle) !important; }
218
312
  .border-\[\#007acc\] { border-color: var(--border-focus) !important; }
313
+ .border-\[\#27272a\] { border-color: var(--border-subtle) !important; }
314
+ .border-\[\#333338\] { border-color: var(--border-card) !important; }
315
+ .border-\[\#2b2b36\] { border-color: var(--border-card) !important; }
316
+ .border-\[\#3b3e52\] { border-color: var(--border-card) !important; }
219
317
 
220
318
  .text-\[\#cccccc\] { color: var(--text-main) !important; }
221
319
  .text-\[\#858585\] { color: var(--text-muted) !important; }
222
320
  .text-\[\#007acc\] { color: var(--accent-primary) !important; }
223
321
 
322
+ /* Light+ theme adaptations for slate elements & text contrast */
323
+ [data-theme="light-plus"] .text-slate-100,
324
+ [data-theme="light-plus"] .text-slate-200 {
325
+ color: var(--text-bright) !important;
326
+ }
327
+
328
+ [data-theme="light-plus"] .text-slate-300 {
329
+ color: var(--text-main) !important;
330
+ }
331
+
332
+ [data-theme="light-plus"] .text-slate-400 {
333
+ color: var(--text-muted) !important;
334
+ }
335
+
336
+ [data-theme="light-plus"] .text-white:not([class*="bg-indigo-"]):not([class*="bg-cyan-"]):not([class*="bg-sky-"]):not([class*="bg-emerald-"]):not([class*="bg-rose-"]):not([class*="bg-blue-"]):not([class*="bg-purple-"]):not([class*="bg-[#007acc]"]):not([class*="accent-primary"]):not([class*="bg-gradient-"]):not(.keep-white) {
337
+ color: var(--text-bright) !important;
338
+ }
339
+
340
+ /* Light mode selection and input styling */
341
+ [data-theme="light-plus"] select {
342
+ background-color: var(--bg-card) !important;
343
+ color: var(--text-main) !important;
344
+ border-color: var(--border-card) !important;
345
+ }
346
+
347
+ [data-theme="light-plus"] select option {
348
+ background-color: var(--bg-card) !important;
349
+ color: var(--text-main) !important;
350
+ }
351
+
224
352
  /* Global cursor: pointer for all buttons, interactive controls, and action elements */
225
353
  button:not(:disabled),
226
354
  [role="button"]:not([aria-disabled="true"]),
package/src/app/layout.js CHANGED
@@ -38,8 +38,13 @@ export default function RootLayout({ children }) {
38
38
  href="https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&family=Roboto:wght@400;500;700&display=swap"
39
39
  rel="stylesheet"
40
40
  />
41
+ <script
42
+ dangerouslySetInnerHTML={{
43
+ __html: `(function(){try{var raw=localStorage.getItem("agmon_theme_settings");var t="dark-plus";var fz="13";var uf="";var cf="";if(raw){var s=JSON.parse(raw);if(s.theme)t=s.theme;if(s.fontSize)fz=s.fontSize;if(s.uiFont)uf=s.uiFont;if(s.codeFont)cf=s.codeFont;}document.documentElement.setAttribute("data-theme",t);if(t==="light-plus"){document.documentElement.classList.remove("dark");document.documentElement.classList.add("light");}else{document.documentElement.classList.remove("light");document.documentElement.classList.add("dark");}document.documentElement.style.setProperty("--font-size-ui",fz+"px");document.documentElement.style.setProperty("--font-size-base",fz+"px");}catch(e){}})();`,
44
+ }}
45
+ />
41
46
  </head>
42
- <body className="antialiased bg-[#070b12] text-slate-100 select-none">
47
+ <body className="antialiased bg-[var(--bg-workbench)] text-[var(--text-main)] select-none">
43
48
  <PwaRegister />
44
49
  {children}
45
50
  </body>
package/src/app/page.js CHANGED
@@ -34,7 +34,7 @@ export default function FactoryPage() {
34
34
  const office = useMemo(() => buildOffice(traces), [traces]);
35
35
 
36
36
  return (
37
- <main className="h-screen w-screen overflow-hidden bg-[#181818]">
37
+ <main className="h-screen w-screen overflow-hidden bg-[var(--bg-workbench)]">
38
38
  <UpdateNotification />
39
39
  <VSCodeWorkbench
40
40
  traces={traces}
@@ -36,18 +36,18 @@ export default function ChatMessageItem({ turn, agentColor = "38bdf8", filter =
36
36
  id={`chat-turn-${turn.id}`}
37
37
  className="flex gap-3 justify-end my-4 animate-in fade-in slide-in-from-bottom-1 scroll-mt-20"
38
38
  >
39
- <div className="max-w-[85%] rounded-2xl rounded-tr-sm bg-gradient-to-br from-cyan-900/60 to-slate-800/80 border border-cyan-500/30 p-3.5 shadow-lg">
40
- <div className="flex items-center justify-between gap-2 mb-1.5 text-[11px] text-cyan-300/80">
39
+ <div className="max-w-[85%] rounded-2xl rounded-tr-sm bg-[var(--bg-chat-user)] border border-[var(--border-chat-user)] p-3.5 shadow-lg">
40
+ <div className="flex items-center justify-between gap-2 mb-1.5 text-[11px] text-[var(--text-chat-user)]">
41
41
  <span className="font-semibold uppercase tracking-wider">User Request</span>
42
- <span className="font-mono text-[10px] text-slate-400">{formatTime(turn.timestamp)}</span>
42
+ <span className="font-mono text-[10px] opacity-75">{formatTime(turn.timestamp)}</span>
43
43
  </div>
44
- <div className="text-slate-100 text-sm whitespace-pre-wrap leading-relaxed">
44
+ <div className="text-[var(--text-chat-user-body)] text-sm whitespace-pre-wrap leading-relaxed">
45
45
  {turn.content}
46
46
  </div>
47
47
 
48
48
  {/* User Attached Media / Images */}
49
49
  {Array.isArray(turn.media) && turn.media.length > 0 && (
50
- <div className="flex flex-wrap gap-2 mt-2 pt-2 border-t border-cyan-500/20">
50
+ <div className="flex flex-wrap gap-2 mt-2 pt-2 border-t border-[var(--border-chat-user)]">
51
51
  {turn.media.map((med, mIdx) => {
52
52
  const src = med.uri
53
53
  ? `/api/media?path=${encodeURIComponent(med.uri)}`
@@ -56,7 +56,7 @@ export default function ChatMessageItem({ turn, agentColor = "38bdf8", filter =
56
56
  <div
57
57
  key={mIdx}
58
58
  onClick={() => onImageClick?.({ src, alt: `User Attachment ${mIdx + 1}` })}
59
- className="group relative cursor-pointer overflow-hidden rounded-lg border border-cyan-500/40 bg-black/60 shadow hover:border-cyan-300 transition-colors"
59
+ className="group relative cursor-pointer overflow-hidden rounded-lg border border-[var(--border-chat-user)] bg-black/40 shadow hover:border-[var(--accent-secondary)] transition-colors"
60
60
  >
61
61
  {/* eslint-disable-next-line @next/next/no-img-element */}
62
62
  <img
@@ -74,8 +74,8 @@ export default function ChatMessageItem({ turn, agentColor = "38bdf8", filter =
74
74
  </div>
75
75
  )}
76
76
  </div>
77
- <div className="w-8 h-8 rounded-full bg-cyan-600/30 border border-cyan-500/50 flex items-center justify-center shrink-0 shadow-md">
78
- <User className="w-4 h-4 text-cyan-300" />
77
+ <div className="w-8 h-8 rounded-full bg-[var(--bg-chat-user)] border border-[var(--border-chat-user)] flex items-center justify-center shrink-0 shadow-md text-[var(--text-chat-user)]">
78
+ <User className="w-4 h-4" />
79
79
  </div>
80
80
  </div>
81
81
  );
@@ -98,17 +98,17 @@ export default function ChatMessageItem({ turn, agentColor = "38bdf8", filter =
98
98
  <Bot className="w-4 h-4" style={{ color: hexColor }} />
99
99
  </div>
100
100
 
101
- <div className="flex-1 min-w-0 max-w-[92%] rounded-2xl rounded-tl-sm bg-slate-900/90 border border-slate-800 p-4 shadow-xl">
101
+ <div className="flex-1 min-w-0 max-w-[92%] rounded-2xl rounded-tl-sm bg-[var(--bg-chat-agent)] border border-[var(--border-chat-agent)] p-4 shadow-xl">
102
102
  {/* Header */}
103
- <div className="flex items-center justify-between gap-2 mb-2 pb-1.5 border-b border-slate-800/60 text-[11px]">
104
- <div className="flex items-center gap-1.5 font-semibold text-slate-300">
103
+ <div className="flex items-center justify-between gap-2 mb-2 pb-1.5 border-b border-[var(--border-subtle)] text-[11px]">
104
+ <div className="flex items-center gap-1.5 font-semibold text-[var(--text-bright)]">
105
105
  <span
106
106
  className="inline-block w-2 h-2 rounded-full"
107
107
  style={{ backgroundColor: hexColor }}
108
108
  />
109
109
  <span>Agent Assistant</span>
110
110
  </div>
111
- <span className="font-mono text-[10px] text-slate-400">{formatTime(turn.timestamp)}</span>
111
+ <span className="font-mono text-[10px] text-[var(--text-muted)]">{formatTime(turn.timestamp)}</span>
112
112
  </div>
113
113
 
114
114
  {/* 1. Thinking / Chain of Thought */}
@@ -39,15 +39,15 @@ export default function CodeBlock({ language = "text", code = "" }) {
39
39
  };
40
40
 
41
41
  return (
42
- <div className="my-3 rounded-lg border border-slate-700/80 bg-slate-950 overflow-hidden shadow-md text-xs font-mono">
42
+ <div className="my-3 rounded-lg border border-[var(--border-card)] bg-[var(--bg-chat-code)] overflow-hidden shadow-md text-xs font-mono">
43
43
  {/* Header bar */}
44
- <div className="flex items-center justify-between px-3 py-1.5 bg-slate-900 border-b border-slate-800 text-[11px] text-slate-400">
45
- <span className="font-semibold uppercase tracking-wider text-slate-300">
44
+ <div className="flex items-center justify-between px-3 py-1.5 bg-[var(--bg-card-inner)] border-b border-[var(--border-subtle)] text-[11px] text-[var(--text-muted)]">
45
+ <span className="font-semibold uppercase tracking-wider text-[var(--text-bright)]">
46
46
  {cleanLang || "code"}
47
47
  </span>
48
48
  <button
49
49
  onClick={handleCopy}
50
- className="flex items-center gap-1 px-2 py-0.5 rounded hover:bg-slate-800 hover:text-slate-200 transition-colors text-slate-400"
50
+ className="flex items-center gap-1 px-2 py-0.5 rounded hover:bg-[var(--bg-hover)] hover:text-[var(--text-bright)] transition-colors text-[var(--text-muted)] cursor-pointer"
51
51
  title="Copy code"
52
52
  >
53
53
  {copied ? (
@@ -65,7 +65,7 @@ export default function CodeBlock({ language = "text", code = "" }) {
65
65
  </div>
66
66
 
67
67
  {/* Code body */}
68
- <pre className="p-3 overflow-x-auto text-slate-200 leading-relaxed font-mono whitespace-pre text-[12px]">
68
+ <pre className="p-3 overflow-x-auto text-[var(--text-chat-code)] leading-relaxed font-mono whitespace-pre text-[12px]">
69
69
  <code dangerouslySetInnerHTML={{ __html: highlighted }} />
70
70
  </pre>
71
71
  </div>
@@ -132,13 +132,13 @@ export default function DiffViewer({
132
132
  };
133
133
 
134
134
  return (
135
- <div className="my-2 rounded-xl border border-slate-800 bg-[#080c14] overflow-hidden shadow-lg font-mono text-[11px]">
135
+ <div className="my-2 rounded-xl border border-[var(--border-card)] bg-[var(--bg-chat-code)] overflow-hidden shadow-lg font-mono text-[11px]">
136
136
  {/* Diff Header */}
137
- <div className="flex items-center justify-between px-3 py-2 bg-slate-900/90 border-b border-slate-800">
137
+ <div className="flex items-center justify-between px-3 py-2 bg-[var(--bg-card-inner)] border-b border-[var(--border-subtle)]">
138
138
  <div className="flex items-center gap-2 min-w-0">
139
139
  <FileDiff className="w-3.5 h-3.5 text-cyan-400 shrink-0" />
140
140
  {filePath && (
141
- <span className="text-slate-200 font-semibold truncate text-[11px]">{filePath}</span>
141
+ <span className="text-[var(--text-bright)] font-semibold truncate text-[11px]">{filePath}</span>
142
142
  )}
143
143
  <div className="flex items-center gap-1.5 text-[10px]">
144
144
  <span className="px-1.5 py-0.5 rounded bg-emerald-950/70 text-emerald-400 border border-emerald-800/60 font-bold">
@@ -152,14 +152,14 @@ export default function DiffViewer({
152
152
 
153
153
  <div className="flex items-center gap-1.5 shrink-0">
154
154
  {/* Mode Switcher */}
155
- <div className="flex items-center gap-0.5 bg-slate-950 p-0.5 rounded-lg border border-slate-800">
155
+ <div className="flex items-center gap-0.5 bg-[var(--bg-card)] p-0.5 rounded-lg border border-[var(--border-card)]">
156
156
  <button
157
157
  onClick={() => setViewMode("unified")}
158
158
  title="Unified View (Inline)"
159
159
  className={`p-1 rounded flex items-center gap-1 text-[10px] cursor-pointer transition-colors ${
160
160
  viewMode === "unified"
161
- ? "bg-slate-800 text-cyan-300 font-semibold"
162
- : "text-slate-400 hover:text-slate-200"
161
+ ? "bg-[var(--bg-selection)] text-[var(--accent-secondary)] font-semibold"
162
+ : "text-[var(--text-muted)] hover:text-[var(--text-bright)]"
163
163
  }`}
164
164
  >
165
165
  <AlignJustify className="w-3 h-3" />
@@ -170,8 +170,8 @@ export default function DiffViewer({
170
170
  title="Split View (Side-by-side)"
171
171
  className={`p-1 rounded flex items-center gap-1 text-[10px] cursor-pointer transition-colors ${
172
172
  viewMode === "split"
173
- ? "bg-slate-800 text-cyan-300 font-semibold"
174
- : "text-slate-400 hover:text-slate-200"
173
+ ? "bg-[var(--bg-selection)] text-[var(--accent-secondary)] font-semibold"
174
+ : "text-[var(--text-muted)] hover:text-[var(--text-bright)]"
175
175
  }`}
176
176
  >
177
177
  <Columns className="w-3 h-3" />
@@ -182,7 +182,7 @@ export default function DiffViewer({
182
182
  <button
183
183
  onClick={handleCopyUnified}
184
184
  title="Copy Unified Diff"
185
- className="flex items-center gap-1 px-2 py-1 rounded bg-slate-800 hover:bg-slate-700 text-slate-300 transition-colors cursor-pointer text-[10px]"
185
+ className="flex items-center gap-1 px-2 py-1 rounded bg-[var(--bg-card)] hover:bg-[var(--bg-hover)] text-[var(--text-muted)] hover:text-[var(--text-bright)] border border-[var(--border-subtle)] transition-colors cursor-pointer text-[10px]"
186
186
  >
187
187
  {copied ? <Check className="w-3 h-3 text-emerald-400" /> : <Copy className="w-3 h-3" />}
188
188
  <span>{copied ? "Copied" : "Copy"}</span>
@@ -192,7 +192,7 @@ export default function DiffViewer({
192
192
 
193
193
  {/* Diff Body */}
194
194
  {viewMode === "unified" ? (
195
- <div className="overflow-x-auto max-h-[380px] divide-y divide-slate-900/60">
195
+ <div className="overflow-x-auto max-h-[380px] divide-y divide-[var(--border-subtle)]">
196
196
  {lineDiffs.map((line, idx) => {
197
197
  const isAdd = line.type === "add";
198
198
  const isDel = line.type === "del";
@@ -202,24 +202,24 @@ export default function DiffViewer({
202
202
  key={idx}
203
203
  className={`flex items-start px-2 py-0.5 leading-5 select-text ${
204
204
  isAdd
205
- ? "bg-emerald-950/30 text-emerald-300"
205
+ ? "bg-emerald-950/30 text-emerald-400"
206
206
  : isDel
207
- ? "bg-rose-950/30 text-rose-300"
208
- : "text-slate-400 hover:bg-slate-900/40"
207
+ ? "bg-rose-950/30 text-rose-400"
208
+ : "text-[var(--text-main)] hover:bg-[var(--bg-hover)]"
209
209
  }`}
210
210
  >
211
211
  {/* Old line num */}
212
- <span className="w-9 shrink-0 text-right pr-2 text-slate-600 select-none">
212
+ <span className="w-9 shrink-0 text-right pr-2 text-[var(--text-muted)] opacity-60 select-none">
213
213
  {line.oldNum}
214
214
  </span>
215
215
  {/* New line num */}
216
- <span className="w-9 shrink-0 text-right pr-2 text-slate-600 select-none">
216
+ <span className="w-9 shrink-0 text-right pr-2 text-[var(--text-muted)] opacity-60 select-none">
217
217
  {line.newNum}
218
218
  </span>
219
219
  {/* Prefix */}
220
220
  <span
221
221
  className={`w-4 shrink-0 text-center font-bold select-none ${
222
- isAdd ? "text-emerald-400" : isDel ? "text-rose-400" : "text-slate-600"
222
+ isAdd ? "text-emerald-400" : isDel ? "text-rose-400" : "text-[var(--text-muted)] opacity-60"
223
223
  }`}
224
224
  >
225
225
  {isAdd ? "+" : isDel ? "-" : " "}
@@ -232,21 +232,21 @@ export default function DiffViewer({
232
232
  </div>
233
233
  ) : (
234
234
  /* Split Side-by-Side View */
235
- <div className="grid grid-cols-2 divide-x divide-slate-800 overflow-x-auto max-h-[380px]">
235
+ <div className="grid grid-cols-2 divide-x divide-[var(--border-subtle)] overflow-x-auto max-h-[380px]">
236
236
  {/* Left: Original */}
237
- <div className="divide-y divide-slate-900/50">
237
+ <div className="divide-y divide-[var(--border-subtle)]">
238
238
  {splitLines.left.map((line, idx) => (
239
239
  <div
240
240
  key={idx}
241
241
  className={`flex items-start px-2 py-0.5 leading-5 select-text min-h-[20px] ${
242
242
  line.type === "del"
243
- ? "bg-rose-950/30 text-rose-300"
243
+ ? "bg-rose-950/30 text-rose-400"
244
244
  : line.type === "empty"
245
- ? "bg-slate-950/60"
246
- : "text-slate-400"
245
+ ? "bg-[var(--bg-card-inner)] opacity-40"
246
+ : "text-[var(--text-main)]"
247
247
  }`}
248
248
  >
249
- <span className="w-8 shrink-0 text-right pr-2 text-slate-600 select-none text-[10px]">
249
+ <span className="w-8 shrink-0 text-right pr-2 text-[var(--text-muted)] opacity-60 select-none text-[10px]">
250
250
  {line.num || ""}
251
251
  </span>
252
252
  <span className="w-3 shrink-0 text-center text-rose-400 select-none">
@@ -258,19 +258,19 @@ export default function DiffViewer({
258
258
  </div>
259
259
 
260
260
  {/* Right: Modified */}
261
- <div className="divide-y divide-slate-900/50">
261
+ <div className="divide-y divide-[var(--border-subtle)]">
262
262
  {splitLines.right.map((line, idx) => (
263
263
  <div
264
264
  key={idx}
265
265
  className={`flex items-start px-2 py-0.5 leading-5 select-text min-h-[20px] ${
266
266
  line.type === "add"
267
- ? "bg-emerald-950/30 text-emerald-300"
267
+ ? "bg-emerald-950/30 text-emerald-400"
268
268
  : line.type === "empty"
269
- ? "bg-slate-950/60"
270
- : "text-slate-400"
269
+ ? "bg-[var(--bg-card-inner)] opacity-40"
270
+ : "text-[var(--text-main)]"
271
271
  }`}
272
272
  >
273
- <span className="w-8 shrink-0 text-right pr-2 text-slate-600 select-none text-[10px]">
273
+ <span className="w-8 shrink-0 text-right pr-2 text-[var(--text-muted)] opacity-60 select-none text-[10px]">
274
274
  {line.num || ""}
275
275
  </span>
276
276
  <span className="w-3 shrink-0 text-center text-emerald-400 select-none">