@pheem49/mint 1.14.0 → 1.16.0

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 (925) hide show
  1. package/Cargo.lock +1258 -35
  2. package/Cargo.toml +5 -2
  3. package/LICENSE +21 -654
  4. package/README.md +93 -756
  5. package/Release_Note.md +53 -446
  6. package/apps/mint-companion/src-tauri/Cargo.toml +20 -0
  7. package/apps/mint-companion/src-tauri/build.rs +3 -0
  8. package/apps/mint-companion/src-tauri/src/main.rs +468 -0
  9. package/apps/mint-companion/tsconfig.json +20 -0
  10. package/apps/mint-companion/vite.config.ts +3 -0
  11. package/components.json +19 -0
  12. package/crates/mint-cli/Cargo.toml +9 -1
  13. package/crates/mint-cli/src/agent/approval_prompts.rs +16 -3
  14. package/crates/mint-cli/src/agent/live_status.rs +545 -148
  15. package/crates/mint-cli/src/agent/markdown_render.rs +601 -61
  16. package/crates/mint-cli/src/agent.rs +723 -258
  17. package/crates/mint-cli/src/commands/agent.rs +83 -74
  18. package/crates/mint-cli/src/commands/eval.rs +9 -5
  19. package/crates/mint-cli/src/commands/git.rs +204 -0
  20. package/crates/mint-cli/src/commands/integrations.rs +35 -0
  21. package/crates/mint-cli/src/commands/knowledge.rs +13 -32
  22. package/crates/mint-cli/src/commands/mod.rs +81 -2
  23. package/crates/mint-cli/src/commands/tailnet_web.rs +235 -0
  24. package/crates/mint-cli/src/image.rs +32 -11
  25. package/crates/mint-cli/src/interactive/chat_tui.rs +7853 -0
  26. package/crates/mint-cli/src/interactive/command_ui.rs +477 -0
  27. package/crates/mint-cli/src/interactive/format.rs +8 -0
  28. package/crates/mint-cli/src/interactive/input_box.rs +94 -8
  29. package/crates/mint-cli/src/interactive/picker.rs +180 -37
  30. package/crates/mint-cli/src/interactive/resume_picker.rs +686 -0
  31. package/crates/mint-cli/src/interactive/slash_commands.rs +1071 -501
  32. package/crates/mint-cli/src/interactive/thought_viewer.rs +286 -0
  33. package/crates/mint-cli/src/interactive/tool_activity.rs +328 -0
  34. package/crates/mint-cli/src/interactive.rs +454 -166
  35. package/crates/mint-cli/src/main.rs +93 -26
  36. package/crates/mint-cli/src/markdown.rs +12 -5
  37. package/crates/mint-cli/src/mcp.rs +5 -0
  38. package/crates/mint-cli/src/mod_host.rs +6 -0
  39. package/crates/mint-cli/src/mods_cli.rs +62 -0
  40. package/crates/mint-cli/src/mods_ui.rs +187 -0
  41. package/crates/mint-cli/src/onboard.rs +37 -61
  42. package/crates/mint-cli/src/plugins_cli.rs +8 -5
  43. package/crates/mint-cli/src/setup.rs +10 -8
  44. package/crates/mint-cli/src/terminal_theme.rs +189 -0
  45. package/crates/mint-cli/src/updater.rs +112 -23
  46. package/crates/mint-cli/tests/library_intake.rs +77 -0
  47. package/crates/mint-cli/tests/mods_testing.rs +133 -0
  48. package/crates/mint-companion-protocol/Cargo.toml +10 -0
  49. package/crates/mint-companion-protocol/src/lib.rs +163 -0
  50. package/crates/mint-core/Cargo.toml +6 -3
  51. package/crates/mint-core/build.rs +26 -0
  52. package/crates/mint-core/src/agent/agent_loop.rs +1 -0
  53. package/crates/mint-core/src/agent/chat.rs +1003 -209
  54. package/crates/mint-core/src/agent/code_tools.rs +98 -2
  55. package/crates/mint-core/src/agent/memory/sources.rs +240 -0
  56. package/crates/mint-core/src/agent/memory.rs +805 -33
  57. package/crates/mint-core/src/agent/skill_inventory.rs +325 -0
  58. package/crates/mint-core/src/agent/skills.rs +437 -90
  59. package/crates/mint-core/src/agent.rs +1 -0
  60. package/crates/mint-core/src/api_server/routes/background_jobs.rs +310 -0
  61. package/crates/mint-core/src/api_server/routes/chat.rs +233 -190
  62. package/crates/mint-core/src/api_server/routes/html_preview.rs +77 -0
  63. package/crates/mint-core/src/api_server/routes/library.rs +97 -0
  64. package/crates/mint-core/src/api_server/routes/linked_folders.rs +118 -3
  65. package/crates/mint-core/src/api_server/routes/media_gen.rs +10 -57
  66. package/crates/mint-core/src/api_server/routes/misc.rs +114 -121
  67. package/crates/mint-core/src/api_server/routes/mod.rs +6 -0
  68. package/crates/mint-core/src/api_server/routes/mods.rs +31 -0
  69. package/crates/mint-core/src/api_server/routes/sessions.rs +85 -0
  70. package/crates/mint-core/src/api_server/routes/skills_subagents.rs +12 -42
  71. package/crates/mint-core/src/api_server/routes/slash.rs +50 -1
  72. package/crates/mint-core/src/api_server/routes/sources.rs +101 -0
  73. package/crates/mint-core/src/api_server.rs +140 -12
  74. package/crates/mint-core/src/avatar_bridge.rs +13 -2
  75. package/crates/mint-core/src/browser/cdp.rs +74 -83
  76. package/crates/mint-core/src/browser/evidence.rs +260 -0
  77. package/crates/mint-core/src/browser/input.rs +1 -1
  78. package/crates/mint-core/src/browser/interact.rs +98 -124
  79. package/crates/mint-core/src/browser/lifecycle.rs +75 -4
  80. package/crates/mint-core/src/browser/mod.rs +16 -2
  81. package/crates/mint-core/src/browser/navigate.rs +27 -19
  82. package/crates/mint-core/src/browser/observe.js +40 -0
  83. package/crates/mint-core/src/browser/session.rs +1610 -0
  84. package/crates/mint-core/src/companion.rs +716 -0
  85. package/crates/mint-core/src/cron/scheduler.rs +34 -2
  86. package/crates/mint-core/src/git/branches.rs +348 -0
  87. package/crates/mint-core/src/git/checkpoint.rs +40 -0
  88. package/crates/mint-core/src/git/diff.rs +206 -0
  89. package/crates/mint-core/src/git/mod.rs +10 -2
  90. package/crates/mint-core/src/integrations/channels.rs +88 -345
  91. package/crates/mint-core/src/integrations/mcp.rs +397 -50
  92. package/crates/mint-core/src/integrations/mcp_calls.rs +823 -0
  93. package/crates/mint-core/src/integrations/mcp_catalog.rs +267 -0
  94. package/crates/mint-core/src/integrations/mcp_device.rs +319 -0
  95. package/crates/mint-core/src/integrations/mcp_result.rs +356 -0
  96. package/crates/mint-core/src/integrations/webhooks.rs +539 -0
  97. package/crates/mint-core/src/integrations.rs +2 -0
  98. package/crates/mint-core/src/lib.rs +107 -40
  99. package/crates/mint-core/src/live_sync.rs +28 -9
  100. package/crates/mint-core/src/media/auto_shorts.rs +1 -0
  101. package/crates/mint-core/src/media/gemini_live.rs +145 -14
  102. package/crates/mint-core/src/media/image_models.rs +3 -27
  103. package/crates/mint-core/src/media/image_workflow.rs +216 -0
  104. package/crates/mint-core/src/media/library/intake.rs +144 -0
  105. package/crates/mint-core/src/media/library/migration.rs +56 -0
  106. package/crates/mint-core/src/media/library/removal.rs +55 -0
  107. package/crates/mint-core/src/media/library/tests.rs +730 -0
  108. package/crates/mint-core/src/media/library/thumbnails.rs +72 -0
  109. package/crates/mint-core/src/media/library.rs +545 -0
  110. package/crates/mint-core/src/media/mic_transcribe.rs +1 -0
  111. package/crates/mint-core/src/media/model_catalog.rs +375 -0
  112. package/crates/mint-core/src/media/pictures.rs +79 -222
  113. package/crates/mint-core/src/media/subtitle.rs +1 -0
  114. package/crates/mint-core/src/media/video_models.rs +3 -22
  115. package/crates/mint-core/src/media.rs +3 -0
  116. package/crates/mint-core/src/mods/manager.rs +1124 -0
  117. package/crates/mint-core/src/mods/mod.rs +569 -0
  118. package/crates/mint-core/src/mods/operations.rs +204 -0
  119. package/crates/mint-core/src/mods/session.rs +146 -0
  120. package/crates/mint-core/src/mods/slash.rs +59 -0
  121. package/crates/mint-core/src/mods/telemetry.rs +306 -0
  122. package/crates/mint-core/src/orchestration/approvals.rs +344 -0
  123. package/crates/mint-core/src/orchestration/context_render.rs +105 -0
  124. package/crates/mint-core/src/orchestration/mcp_review.rs +153 -0
  125. package/crates/mint-core/src/orchestration/memory_skill.rs +110 -33
  126. package/crates/mint-core/src/orchestration/mod.rs +3129 -481
  127. package/crates/mint-core/src/orchestration/mod_authoring_regressions.rs +209 -0
  128. package/crates/mint-core/src/orchestration/progress_clock.rs +80 -0
  129. package/crates/mint-core/src/orchestration/repeated_failures.rs +116 -0
  130. package/crates/mint-core/src/orchestration/review_regressions.rs +449 -0
  131. package/crates/mint-core/src/orchestration/run_control.rs +196 -0
  132. package/crates/mint-core/src/orchestration/tools/browser.rs +16 -139
  133. package/crates/mint-core/src/orchestration/tools/files.rs +161 -14
  134. package/crates/mint-core/src/orchestration/tools/media.rs +37 -41
  135. package/crates/mint-core/src/orchestration/tools/misc.rs +5 -3
  136. package/crates/mint-core/src/orchestration/tools/mod.rs +2 -0
  137. package/crates/mint-core/src/orchestration/tools/mods.rs +161 -0
  138. package/crates/mint-core/src/orchestration/tools/plugins_mcp.rs +303 -71
  139. package/crates/mint-core/src/orchestration/tools/shell.rs +95 -2
  140. package/crates/mint-core/src/orchestration/tools/web.rs +1 -1
  141. package/crates/mint-core/src/orchestration/workspace_helpers.rs +4 -1
  142. package/crates/mint-core/src/prompts/agent.rs +75 -31
  143. package/crates/mint-core/src/prompts/chat.rs +1 -1
  144. package/crates/mint-core/src/prompts/persona.rs +1 -1
  145. package/crates/mint-core/src/prompts/tool_catalog.rs +121 -27
  146. package/crates/mint-core/src/search/knowledge.rs +7 -1
  147. package/crates/mint-core/src/search/linked_folders/index.rs +896 -0
  148. package/crates/mint-core/src/search/linked_folders.rs +473 -131
  149. package/crates/mint-core/src/slash/catalog.rs +1 -1
  150. package/crates/mint-core/src/slash/mod.rs +644 -33
  151. package/crates/mint-core/src/slash/model_fetcher.rs +12 -3
  152. package/crates/mint-core/src/slash/models.rs +66 -10
  153. package/crates/mint-core/src/slash/mods.rs +155 -0
  154. package/crates/mint-core/src/system/bg_shell.rs +1129 -95
  155. package/crates/mint-core/src/system/config.rs +235 -10
  156. package/crates/mint-core/src/system/html_preview.rs +398 -0
  157. package/crates/mint-core/src/system/mint_web.rs +164 -0
  158. package/crates/mint-core/src/system/release_notes.rs +18 -0
  159. package/crates/mint-core/src/system/shell.rs +21 -6
  160. package/crates/mint-core/src/system/workspace.rs +292 -0
  161. package/crates/mint-core/src/system/workspace_history.rs +604 -0
  162. package/crates/mint-core/src/system.rs +5 -0
  163. package/crates/mint-core/tests/background_retention.rs +34 -0
  164. package/crates/mint-core/tests/background_shutdown.rs +24 -0
  165. package/crates/mint-core/tests/library_http.rs +209 -0
  166. package/crates/mint-core/tests/mcp_contract.rs +283 -0
  167. package/crates/mint-core/tests/mcp_stdio.rs +11 -10
  168. package/crates/mint-core/tests/media_model_catalog_http.rs +403 -0
  169. package/crates/mint-core/tests/memory_persistence.rs +39 -0
  170. package/crates/mint-core/tests/mods_http.rs +215 -0
  171. package/crates/mint-core/tests/terminal_shutdown.rs +109 -0
  172. package/crates/mint-mod-runtime/Cargo.toml +18 -0
  173. package/crates/mint-mod-runtime/src/lib.rs +507 -0
  174. package/crates/mint-mod-runtime/src/sdk.js +56 -0
  175. package/crates/mint-mod-runtime/src/test_sdk.js +32 -0
  176. package/crates/mint-mod-runtime/src/testing.rs +94 -0
  177. package/crates/mint-mod-runtime/tests/runtime.rs +156 -0
  178. package/docs/mods/AUTHORING.md +61 -0
  179. package/docs/mods/README.md +139 -0
  180. package/docs/mods/TESTING.md +56 -0
  181. package/docs/mods/mint-mods.d.ts +66 -0
  182. package/examples/device-mcp/README.md +22 -0
  183. package/examples/device-mcp/contract.md +49 -0
  184. package/examples/device-mcp/mock-device.mjs +66 -0
  185. package/examples/device-mcp/server.mjs +48 -0
  186. package/examples/device-mcp/server.test.mjs +78 -0
  187. package/examples/mods/task-checklist/README.md +1 -0
  188. package/examples/mods/task-checklist/main.ts +17 -0
  189. package/examples/mods/task-checklist/manifest.json +1 -0
  190. package/examples/mods/task-checklist/tests/checklist.test.ts +15 -0
  191. package/examples/mods/token-meter/README.md +1 -0
  192. package/examples/mods/token-meter/main.ts +8 -0
  193. package/examples/mods/token-meter/manifest.json +1 -0
  194. package/examples/mods/tool-guard/README.md +1 -0
  195. package/examples/mods/tool-guard/main.ts +9 -0
  196. package/examples/mods/tool-guard/manifest.json +1 -0
  197. package/out/web/assets/CliSessionsView-CtzUJpK_.css +1 -0
  198. package/out/web/assets/CliSessionsView-D7hw0Mgj.js +1 -0
  199. package/out/web/assets/CodeReviewPage-C7bEOJfd.js +4 -0
  200. package/out/web/assets/CodeReviewPage-Dte9uLiL.css +1 -0
  201. package/out/web/assets/CommandPalette-0RrF-AOT.js +1 -0
  202. package/out/web/assets/ImageStudioPanel-CdxkAf_r.js +1 -0
  203. package/out/web/assets/ImageStudioPanel-D0lnhQV5.css +1 -0
  204. package/out/web/assets/LibraryPage--Qfisp6D.js +2 -0
  205. package/out/web/assets/LibraryPage-DAxUTAg7.css +1 -0
  206. package/out/web/assets/LinkedFoldersView-2nfZbDgN.js +1 -0
  207. package/out/web/assets/McpRegistryPicker-h9uS8_wT.js +1 -0
  208. package/out/web/assets/McpServersView-slfQJzNB.js +1 -0
  209. package/out/web/assets/MintDashboard-BSR5XpXh.js +25 -0
  210. package/out/web/assets/MintDashboard-CWUcCGhd.css +1 -0
  211. package/out/web/assets/PluginsView-l7LSm503.js +1 -0
  212. package/out/web/assets/ScheduledTasksView-CttmLbq1.js +1 -0
  213. package/out/web/assets/SettingsWindow-BCMLYvEV.js +4 -0
  214. package/out/web/assets/SettingsWindow-DcMVmU9u.css +1 -0
  215. package/out/web/assets/SkillsView-rNs1qr_U.js +2 -0
  216. package/out/web/assets/ToolSurfacePage-B9DzEPWN.js +37 -0
  217. package/out/web/assets/ToolSurfacePage-CTfgggF2.css +1 -0
  218. package/out/web/assets/VeoStudioPanel-DOj7_WR3.css +1 -0
  219. package/out/web/assets/VeoStudioPanel-DiJs_Cg2.js +4 -0
  220. package/out/web/assets/WorkspacePanel-CbJ1PFoZ.js +1 -0
  221. package/out/web/assets/WorkspaceSelector-B2xIp04D.js +1 -0
  222. package/out/web/assets/WorkspaceSelector-Ca8uJOsS.css +1 -0
  223. package/out/web/assets/{abnfDiagram-VCTEODGH-DAOBA7ZG.js → abnfDiagram-VCTEODGH-CD0CjoGl.js} +1 -1
  224. package/out/web/assets/{architecture-7GRP2DOG-CgSwQOPQ.js → architecture-7GRP2DOG-RKV83OeZ.js} +1 -1
  225. package/out/web/assets/{architectureDiagram-5GKGNRK7-CYp3yupP.js → architectureDiagram-5GKGNRK7-nN_HAFct.js} +1 -1
  226. package/out/web/assets/{blockDiagram-NRAW4CY4-CyWybDWr.js → blockDiagram-NRAW4CY4-BrrqzHW5.js} +1 -1
  227. package/out/web/assets/{c4Diagram-UCG6FXSJ-BvY3U709.js → c4Diagram-UCG6FXSJ-DTdV8_zE.js} +1 -1
  228. package/out/web/assets/{chunk-75Z2AOVW-TLXCoZYv.js → chunk-75Z2AOVW-_M0z5olV.js} +1 -1
  229. package/out/web/assets/chunk-CKBBP62Z-BpQEgeHF.js +2 -0
  230. package/out/web/assets/{chunk-CLGD4ZFX-xjsKtNS7.js → chunk-CLGD4ZFX-D54yGvGS.js} +1 -1
  231. package/out/web/assets/chunk-DSNCTWBM-C-gvT2ru.js +2 -0
  232. package/out/web/assets/chunk-DU6HZSFF-CnFngIhW.js +128 -0
  233. package/out/web/assets/{chunk-F27PBJKO-BFpgF55A.js → chunk-F27PBJKO-BqtWrnEO.js} +1 -1
  234. package/out/web/assets/{chunk-G27WJ6UU-DfF7qW-C.js → chunk-G27WJ6UU-Ckoq5mi2.js} +1 -1
  235. package/out/web/assets/{chunk-GMAD6QVW-C-558kh_.js → chunk-GMAD6QVW-BuhEcgHq.js} +1 -1
  236. package/out/web/assets/{chunk-JQ64N6SF-wJmeGKAw.js → chunk-JQ64N6SF-CF8T7GiZ.js} +1 -1
  237. package/out/web/assets/{chunk-LCL6LL3I-C1wHD8Ie.js → chunk-LCL6LL3I-BhXV9zyH.js} +1 -1
  238. package/out/web/assets/{chunk-OBVCFTLP-BsRTPBqs.js → chunk-OBVCFTLP-CRIkunUB.js} +1 -1
  239. package/out/web/assets/{chunk-P2QGCYS3-HZIiM7Ni.js → chunk-P2QGCYS3-UFEU6BxZ.js} +1 -1
  240. package/out/web/assets/{chunk-POPQ4Y6H-Dk9wvVb0.js → chunk-POPQ4Y6H-CQcrNbjr.js} +1 -1
  241. package/out/web/assets/{chunk-PWAF6VOD-BmjYLNbq.js → chunk-PWAF6VOD-Cc2uVDsG.js} +1 -1
  242. package/out/web/assets/{chunk-R7TYR2AO-CaHIf-lK.js → chunk-R7TYR2AO-DiCxzdAY.js} +1 -1
  243. package/out/web/assets/{chunk-RHFEMEQ7-_T561hOU.js → chunk-RHFEMEQ7-b7hnPmrR.js} +1 -1
  244. package/out/web/assets/{chunk-SVP7TREG-CM-GGYoY.js → chunk-SVP7TREG-Bu_yYb-V.js} +1 -1
  245. package/out/web/assets/{chunk-TEH6E4GO-K2A8Vg2C.js → chunk-TEH6E4GO-G4Cdlyrt.js} +1 -1
  246. package/out/web/assets/classDiagram-DTDB5LWJ-RnC2mYO4.js +1 -0
  247. package/out/web/assets/classDiagram-v2-JRS7N3AN-RnC2mYO4.js +1 -0
  248. package/out/web/assets/config-CnvCChUM.js +2 -0
  249. package/out/web/assets/config-DM6oIVO3.css +1 -0
  250. package/out/web/assets/core-DsKkQ7ig.js +1 -0
  251. package/out/web/assets/{cynefin-OW5HDTMX-ClzaB6cc.js → cynefin-OW5HDTMX-CnzQfOGp.js} +1 -1
  252. package/out/web/assets/{cynefinDiagram-5FMLGOSQ-D_JzZBzf.js → cynefinDiagram-5FMLGOSQ-DVtQnfpm.js} +1 -1
  253. package/out/web/assets/{dagre-3AP2YEHR-BDuUeMHj.js → dagre-3AP2YEHR-DG76_k5_.js} +1 -1
  254. package/out/web/assets/{diagram-S7CK7UJ4-DgtcfE8P.js → diagram-S7CK7UJ4-CaouUoze.js} +1 -1
  255. package/out/web/assets/{diagram-UQ7AKVKN-DTLoEYti.js → diagram-UQ7AKVKN-B4bEc26B.js} +1 -1
  256. package/out/web/assets/{diagram-VSXAHHWV-ChGl9pXz.js → diagram-VSXAHHWV-BJ86Ov2Y.js} +1 -1
  257. package/out/web/assets/{diagram-VX7I27RA-Be8DWz0S.js → diagram-VX7I27RA-7hH5IPYf.js} +1 -1
  258. package/out/web/assets/{diagram-Z3DM3KII-BMXjRTOF.js → diagram-Z3DM3KII-CCM4clo8.js} +1 -1
  259. package/out/web/assets/dist-js-BkYNznHX.js +1 -0
  260. package/out/web/assets/{ebnfDiagram-PWID7BFC-8Q9pl1CJ.js → ebnfDiagram-PWID7BFC-Da7WAM3k.js} +1 -1
  261. package/out/web/assets/{erDiagram-SSCWMZ5O-DjH8Lnkn.js → erDiagram-SSCWMZ5O-CzzmnZWT.js} +1 -1
  262. package/out/web/assets/event-Cdt7Byyj.js +1 -0
  263. package/out/web/assets/{eventmodeling-NTZA5JFV-BKUH_DOp.js → eventmodeling-NTZA5JFV-xcfsA0XD.js} +1 -1
  264. package/out/web/assets/fira-code-latin-600-normal-BmSSHshu.woff +0 -0
  265. package/out/web/assets/fira-code-latin-600-normal-CvYZpPHg.woff2 +0 -0
  266. package/out/web/assets/fira-code-symbols2-600-normal-Dvq6IQE5.woff +0 -0
  267. package/out/web/assets/flowDiagram-A5DVABFB-JdtH1673.js +1 -0
  268. package/out/web/assets/{ganttDiagram-EL5Y4UJY-D7fZKJNM.js → ganttDiagram-EL5Y4UJY-B3ClFGmL.js} +1 -1
  269. package/out/web/assets/{gitGraph-4MIJSDKK-BypWaaBU.js → gitGraph-4MIJSDKK-BZ_y_cDU.js} +1 -1
  270. package/out/web/assets/{gitGraphDiagram-WWUBYQGX-DWiw_3bq.js → gitGraphDiagram-WWUBYQGX-drhRSYm3.js} +1 -1
  271. package/out/web/assets/index-BZ9xgmMP.css +1 -0
  272. package/out/web/assets/index-Ca8cCS4h.js +168 -0
  273. package/out/web/assets/{info-A6RAGUB7-KkAUxT4j.js → info-A6RAGUB7-B7I3K0F1.js} +1 -1
  274. package/out/web/assets/{infoDiagram-RXCK75RN-BNb6E48y.js → infoDiagram-RXCK75RN-deX_1MPh.js} +1 -1
  275. package/out/web/assets/{ishikawaDiagram-5VMMS53U-Caa-JoAK.js → ishikawaDiagram-5VMMS53U-s38yo28y.js} +1 -1
  276. package/out/web/assets/{journeyDiagram-EYS64GPL-DOrmFGz6.js → journeyDiagram-EYS64GPL-CZn2kB8b.js} +1 -1
  277. package/out/web/assets/jsx-runtime-DN4NhQUK.js +1 -0
  278. package/out/web/assets/{kanban-definition-3QL26DDD-BOWCYcK0.js → kanban-definition-3QL26DDD-DodjgySL.js} +1 -1
  279. package/out/web/assets/markdown-CMhYIcWB.js +39 -0
  280. package/out/web/assets/{mermaid-parser.core-BQqjCkS_.js → mermaid-parser.core-Whu2rlJC.js} +3 -3
  281. package/out/web/assets/mermaid.core-CKyPo8VH.js +11 -0
  282. package/out/web/assets/{mindmap-definition-FBJOCRG2-jTceWpr0.js → mindmap-definition-FBJOCRG2-260WBDxZ.js} +1 -1
  283. package/out/web/assets/modelManager-CUaGWMWu.js +2 -0
  284. package/out/web/assets/oauthManager-DlNhXJr6.js +1 -0
  285. package/out/web/assets/{packet-AYTQ26CC-CJ5RXgol.js → packet-AYTQ26CC-CEeIRKRG.js} +1 -1
  286. package/out/web/assets/{pegDiagram-XKGWAZYB-y8wMtd0y.js → pegDiagram-XKGWAZYB-BYadI-KO.js} +1 -1
  287. package/out/web/assets/{pie-WAS4IAKB-72fTBbl4.js → pie-WAS4IAKB-D8uf4dh5.js} +1 -1
  288. package/out/web/assets/{pieDiagram-E7YTZNPT-e0O02qWq.js → pieDiagram-E7YTZNPT-CjSDy4hO.js} +1 -1
  289. package/out/web/assets/{quadrantDiagram-AXDQQJYC-C9phYLom.js → quadrantDiagram-AXDQQJYC-B8D3gU5d.js} +1 -1
  290. package/out/web/assets/{radar-RG4KPBEZ-BAU2hzUT.js → radar-RG4KPBEZ-DZJxnokY.js} +1 -1
  291. package/out/web/assets/{railroad-74A4TZTK-B0bCAVHC.js → railroad-74A4TZTK-DBysUiUi.js} +1 -1
  292. package/out/web/assets/{railroad-abnf-HS5TGJTU-WhxO7ndE.js → railroad-abnf-HS5TGJTU-CHWxoJYg.js} +1 -1
  293. package/out/web/assets/{railroad-ebnf-LZEXJU2U-BkA0m7-F.js → railroad-ebnf-LZEXJU2U-DDv7X6bY.js} +1 -1
  294. package/out/web/assets/{railroad-peg-WCYAUIDC-BsVpHIaj.js → railroad-peg-WCYAUIDC-DpfcYYNJ.js} +1 -1
  295. package/out/web/assets/{railroadDiagram-O6MQD6OU-CyOLN65Q.js → railroadDiagram-O6MQD6OU-CYtyv0t3.js} +1 -1
  296. package/out/web/assets/{requirementDiagram-EFPCY7ZU-DQXJ7Dud.js → requirementDiagram-EFPCY7ZU-D2X-Ewik.js} +1 -1
  297. package/out/web/assets/{sankeyDiagram-P5KCCOFB-B2XLyIIc.js → sankeyDiagram-P5KCCOFB-Bn2x6C4Y.js} +1 -1
  298. package/out/web/assets/{sequenceDiagram-WJ2MYXX4-DGQY4wwm.js → sequenceDiagram-WJ2MYXX4-BvFLKtPd.js} +1 -1
  299. package/out/web/assets/{stateDiagram-HBIQ2CUA-DHZpDwNy.js → stateDiagram-HBIQ2CUA-Bx0GWeaY.js} +1 -1
  300. package/out/web/assets/stateDiagram-v2-4QOOHH4V--hol1yg_.js +1 -0
  301. package/out/web/assets/studio-B1mk40wD.js +1 -0
  302. package/out/web/assets/{swimlanes-XN3QIQJK-Bn_jcZz-.js → swimlanes-XN3QIQJK-CCma0T7L.js} +1 -1
  303. package/out/web/assets/swimlanesDiagram-VK2B7HYN-BkohoVsU.js +8 -0
  304. package/out/web/assets/{timeline-definition-24CTP7MA-CdTERuJZ.js → timeline-definition-24CTP7MA-iCRhhJ7C.js} +1 -1
  305. package/out/web/assets/{treeView-Q6P3EWNA-TKBKQG6R.js → treeView-Q6P3EWNA-DZ-y08qp.js} +1 -1
  306. package/out/web/assets/{treemap-WGGIJYW6-BP7gQoiC.js → treemap-WGGIJYW6-De0CxzMx.js} +1 -1
  307. package/out/web/assets/{vennDiagram-4TSXK5OY-BHUmxDuK.js → vennDiagram-4TSXK5OY-w_7aZ6xe.js} +1 -1
  308. package/out/web/assets/{wardley-WFR3VGLG-9bct5AAN.js → wardley-WFR3VGLG-DT0y0xJ4.js} +1 -1
  309. package/out/web/assets/{wardleyDiagram-VM6X3IG4-BfJwDDso.js → wardleyDiagram-VM6X3IG4-DAdXELbQ.js} +1 -1
  310. package/out/web/assets/window-BJCVtyET.js +1 -0
  311. package/out/web/assets/{xychartDiagram-S5SC5T6Z-Dqd9Mvpo.js → xychartDiagram-S5SC5T6Z-IZIXf3Vo.js} +1 -1
  312. package/out/web/index-web.html +4 -4
  313. package/out/web/index.html +4 -4
  314. package/package.json +80 -20
  315. package/shared-modules/.github/workflows/ci.yml +120 -0
  316. package/shared-modules/.github/workflows/update.yaml +28 -0
  317. package/slash-commands.json +16 -2
  318. package/src/bin/auto-build.js +66 -0
  319. package/src/bin/desktop.js +113 -0
  320. package/src/bin/desktop.test.js +113 -0
  321. package/src/bin/index.js +18 -25
  322. package/src/bin/index.test.js +89 -0
  323. package/src/bin/measure-effects.mjs +53 -0
  324. package/src/bin/package.test.js +28 -0
  325. package/src/bin/release-notes.test.js +84 -0
  326. package/src/bin/styles.test.js +20 -0
  327. package/src/bin/web.js +5 -0
  328. package/src/bin/web.test.js +39 -0
  329. package/src/renderer/index-web.html +1 -0
  330. package/src/renderer/index.html +1 -2
  331. package/src/renderer/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  332. package/src/renderer/shared/agentProgress.ts +201 -3
  333. package/src/renderer/shared/components/AgentActivityDrawer.tsx +9 -8
  334. package/src/renderer/shared/components/AgentActivityTable.tsx +193 -133
  335. package/src/renderer/shared/components/ApprovalCard.test.tsx +24 -0
  336. package/src/renderer/shared/components/ApprovalCard.tsx +10 -3
  337. package/src/renderer/shared/components/ArtifactPreviewPanel.tsx +91 -40
  338. package/src/renderer/shared/components/AuthGate.tsx +79 -48
  339. package/src/renderer/shared/components/BackgroundTerminals.tsx +181 -0
  340. package/src/renderer/shared/components/CalculationCard.tsx +41 -15
  341. package/src/renderer/shared/components/ChatCodeBlock.tsx +8 -4
  342. package/src/renderer/shared/components/ChatMessageItem.test.tsx +68 -0
  343. package/src/renderer/shared/components/ChatMessageItem.tsx +52 -33
  344. package/src/renderer/shared/components/ChatPanel.test.tsx +21 -0
  345. package/src/renderer/shared/components/ChatPanel.tsx +676 -415
  346. package/src/renderer/shared/components/ChunkErrorBoundary.tsx +115 -64
  347. package/src/renderer/shared/components/CliSessionsView.test.tsx +125 -0
  348. package/src/renderer/shared/components/CliSessionsView.tsx +543 -0
  349. package/src/renderer/shared/components/CodeReviewPage.tsx +668 -0
  350. package/src/renderer/shared/components/CollapsiblePasteInput.tsx +90 -0
  351. package/src/renderer/shared/components/CommandPalette.tsx +8 -8
  352. package/src/renderer/shared/components/ContextCompactionStatus.tsx +17 -0
  353. package/src/renderer/shared/components/DashboardSidebar.tsx +853 -229
  354. package/src/renderer/shared/components/DesktopTitlebar.tsx +371 -0
  355. package/src/renderer/shared/components/DiffReviewModal.tsx +3 -3
  356. package/src/renderer/shared/components/ErrorNotice.tsx +29 -0
  357. package/src/renderer/shared/components/FormattedMessage.tsx +11 -0
  358. package/src/renderer/shared/components/GeminiLiveOverlay.css +86 -0
  359. package/src/renderer/shared/components/GeminiLiveOverlay.test.tsx +24 -0
  360. package/src/renderer/shared/components/GeminiLiveOverlay.tsx +85 -101
  361. package/src/renderer/shared/components/GitBranchSelector.tsx +442 -0
  362. package/src/renderer/shared/components/GlideSelect.css +138 -0
  363. package/src/renderer/shared/components/GlideSelect.d.ts +31 -0
  364. package/src/renderer/shared/components/GlideSelect.jsx +266 -0
  365. package/src/renderer/shared/components/ImageGenCard.tsx +31 -12
  366. package/src/renderer/shared/components/ImageSearchCard.tsx +76 -65
  367. package/src/renderer/shared/components/ImageStudioPanel.tsx +49 -49
  368. package/src/renderer/shared/components/InlineThoughtNote.tsx +27 -0
  369. package/src/renderer/shared/components/LibraryItemCard.tsx +72 -0
  370. package/src/renderer/shared/components/LibraryPage.tsx +165 -0
  371. package/src/renderer/shared/components/LibraryPreview.tsx +59 -0
  372. package/src/renderer/shared/components/LinkedFoldersView.tsx +365 -46
  373. package/src/renderer/shared/components/McpRegistryPicker.tsx +1 -1
  374. package/src/renderer/shared/components/McpServersView.tsx +51 -30
  375. package/src/renderer/shared/components/McpToolAllowlist.tsx +2 -4
  376. package/src/renderer/shared/components/McpToolResults.tsx +99 -0
  377. package/src/renderer/shared/components/MermaidCard.tsx +14 -8
  378. package/src/renderer/shared/components/MintDashboard.tsx +1002 -831
  379. package/src/renderer/shared/components/ModSessionControls.tsx +8 -0
  380. package/src/renderer/shared/components/ModUi.test.tsx +65 -0
  381. package/src/renderer/shared/components/ModUi.tsx +26 -0
  382. package/src/renderer/shared/components/ModelSelectorPopover.tsx +547 -219
  383. package/src/renderer/shared/components/ModsPanel.tsx +156 -0
  384. package/src/renderer/shared/components/PlanChecklistWidget.tsx +1 -1
  385. package/src/renderer/shared/components/PluginsView.tsx +1 -1
  386. package/src/renderer/shared/components/ProgressActivity.tsx +17 -0
  387. package/src/renderer/shared/components/ReviewHistory.tsx +42 -0
  388. package/src/renderer/shared/components/RewindModal.tsx +11 -18
  389. package/src/renderer/shared/components/RunSummaryDashboard.tsx +8 -14
  390. package/src/renderer/shared/components/ScheduledTasksView.tsx +11 -10
  391. package/src/renderer/shared/components/ScreenCaptureDialog.css +221 -0
  392. package/src/renderer/shared/components/ScreenCaptureDialog.tsx +199 -0
  393. package/src/renderer/shared/components/SelectField.test.tsx +27 -0
  394. package/src/renderer/shared/components/SelectField.tsx +38 -0
  395. package/src/renderer/shared/components/SessionSources.tsx +48 -0
  396. package/src/renderer/shared/components/SessionSourcesPopover.tsx +61 -0
  397. package/src/renderer/shared/components/Settings/AgentsTab.tsx +41 -45
  398. package/src/renderer/shared/components/Settings/AudioTab.tsx +16 -15
  399. package/src/renderer/shared/components/Settings/AutomationTab.tsx +10 -60
  400. package/src/renderer/shared/components/Settings/AvatarCropModal.tsx +368 -0
  401. package/src/renderer/shared/components/Settings/GeneralTab.tsx +368 -113
  402. package/src/renderer/shared/components/Settings/MemoryTab.test.tsx +37 -0
  403. package/src/renderer/shared/components/Settings/MemoryTab.tsx +71 -31
  404. package/src/renderer/shared/components/Settings/NotificationsTab.test.tsx +15 -0
  405. package/src/renderer/shared/components/Settings/NotificationsTab.tsx +84 -0
  406. package/src/renderer/shared/components/Settings/PluginsTab.tsx +20 -12
  407. package/src/renderer/shared/components/Settings/ProfileTab.tsx +29 -5
  408. package/src/renderer/shared/components/Settings/SearchableModelCombobox.tsx +411 -0
  409. package/src/renderer/shared/components/Settings/ThemeTab.tsx +416 -165
  410. package/src/renderer/shared/components/SkillsView.tsx +41 -16
  411. package/src/renderer/shared/components/SlashChoicePanel.tsx +88 -0
  412. package/src/renderer/shared/components/SlashSuggestions.test.tsx +33 -0
  413. package/src/renderer/shared/components/SlashSuggestions.tsx +41 -12
  414. package/src/renderer/shared/components/SourcesBlock.tsx +55 -51
  415. package/src/renderer/shared/components/StockCard.tsx +58 -24
  416. package/src/renderer/shared/components/SubagentDagView.tsx +4 -4
  417. package/src/renderer/shared/components/TerminalDock.tsx +241 -0
  418. package/src/renderer/shared/components/ThinkingBlock.tsx +14 -8
  419. package/src/renderer/shared/components/ToolSurfacePage.test.tsx +32 -0
  420. package/src/renderer/shared/components/ToolSurfacePage.tsx +568 -0
  421. package/src/renderer/shared/components/ToolsPanelToggle.tsx +13 -0
  422. package/src/renderer/shared/components/UiFeatureCard.tsx +267 -0
  423. package/src/renderer/shared/components/UiGridCard.tsx +188 -0
  424. package/src/renderer/shared/components/UiMockupWidget.tsx +149 -0
  425. package/src/renderer/shared/components/VeoStudioPanel.tsx +22 -37
  426. package/src/renderer/shared/components/ViewedImages.tsx +36 -0
  427. package/src/renderer/shared/components/VirtualChatHistory.tsx +82 -0
  428. package/src/renderer/shared/components/VoicePill.css +85 -0
  429. package/src/renderer/shared/components/VoicePill.d.ts +12 -0
  430. package/src/renderer/shared/components/VoicePill.jsx +190 -0
  431. package/src/renderer/shared/components/VoicePill.test.tsx +22 -0
  432. package/src/renderer/shared/components/WeatherCard.tsx +3 -3
  433. package/src/renderer/shared/components/WorkspaceContextPopover.tsx +138 -0
  434. package/src/renderer/shared/components/WorkspacePaneResizer.tsx +92 -0
  435. package/src/renderer/shared/components/WorkspacePreviewActions.test.tsx +44 -0
  436. package/src/renderer/shared/components/WorkspacePreviewActions.tsx +19 -0
  437. package/src/renderer/shared/components/WorkspaceSelector.tsx +154 -0
  438. package/src/renderer/shared/components/background-terminals.css +292 -0
  439. package/src/renderer/shared/components/ui/README.md +52 -0
  440. package/src/renderer/shared/components/ui/button.tsx +37 -0
  441. package/src/renderer/shared/components/ui/demo.tsx +26 -0
  442. package/src/renderer/shared/components/ui/error-recovery.css +35 -0
  443. package/src/renderer/shared/components/ui/error-recovery.tsx +35 -0
  444. package/src/renderer/shared/components/ui/voice-powered-orb.css +6 -0
  445. package/src/renderer/shared/components/ui/voice-powered-orb.tsx +374 -0
  446. package/src/renderer/shared/components/workspace-selector.css +248 -0
  447. package/src/renderer/shared/constants/config.ts +57 -3
  448. package/src/renderer/shared/constants/models.ts +189 -2
  449. package/src/renderer/shared/constants/slashCommands.ts +1 -1
  450. package/src/renderer/shared/conversation/coordinator.test.ts +27 -0
  451. package/src/renderer/shared/conversation/coordinator.ts +82 -0
  452. package/src/renderer/shared/conversation/lifecycle.test.ts +362 -0
  453. package/src/renderer/shared/conversation/lifecycle.ts +418 -0
  454. package/src/renderer/shared/conversation/projectNavigation.test.ts +105 -0
  455. package/src/renderer/shared/conversation/projectNavigation.ts +39 -0
  456. package/src/renderer/shared/conversation/sourcesTransport.ts +27 -0
  457. package/src/renderer/shared/conversation/syncView.test.ts +13 -0
  458. package/src/renderer/shared/conversation/syncView.ts +6 -0
  459. package/src/renderer/shared/conversation/transport.test.ts +163 -0
  460. package/src/renderer/shared/conversation/transport.ts +159 -0
  461. package/src/renderer/shared/conversation/useConversationCoordinator.ts +64 -0
  462. package/src/renderer/shared/css/agent-observability.css +46 -15
  463. package/src/renderer/shared/css/auth-gate.css +114 -15
  464. package/src/renderer/shared/css/chat-ui-cards.css +495 -0
  465. package/src/renderer/shared/css/code-review.css +856 -0
  466. package/src/renderer/shared/css/code-sessions.css +479 -0
  467. package/src/renderer/shared/css/collapsed-paste.css +35 -0
  468. package/src/renderer/shared/css/effects.css +15 -0
  469. package/src/renderer/shared/css/error-notice.css +60 -0
  470. package/src/renderer/shared/css/file-changes.css +132 -0
  471. package/src/renderer/shared/css/image-studio.css +16 -16
  472. package/src/renderer/shared/css/library.css +476 -0
  473. package/src/renderer/shared/css/management-views.css +415 -27
  474. package/src/renderer/shared/css/mcp-results.css +11 -0
  475. package/src/renderer/shared/css/model-selector.css +543 -85
  476. package/src/renderer/shared/css/mods.css +77 -0
  477. package/src/renderer/shared/css/notification-notice.css +28 -0
  478. package/src/renderer/shared/css/session-sources-popover.css +9 -0
  479. package/src/renderer/shared/css/session-sources.css +23 -0
  480. package/src/renderer/shared/css/settings/agents.css +1 -1
  481. package/src/renderer/shared/css/settings/automation.css +13 -13
  482. package/src/renderer/shared/css/settings/general.css +526 -5
  483. package/src/renderer/shared/css/settings/memory.css +154 -0
  484. package/src/renderer/shared/css/settings/notifications.css +11 -0
  485. package/src/renderer/shared/css/settings/plugins.css +5 -5
  486. package/src/renderer/shared/css/settings/profile.css +331 -1
  487. package/src/renderer/shared/css/settings/theme.css +656 -3
  488. package/src/renderer/shared/css/slash-choice.css +95 -0
  489. package/src/renderer/shared/css/slash-suggestions.css +68 -0
  490. package/src/renderer/shared/css/sources-block.css +91 -0
  491. package/src/renderer/shared/css/thinking-status.css +46 -0
  492. package/src/renderer/shared/css/tools-panel.css +7 -0
  493. package/src/renderer/shared/css/ui-tailwind.css +19 -0
  494. package/src/renderer/shared/css/veo-studio.css +16 -15
  495. package/src/renderer/shared/css/viewed-images.css +15 -0
  496. package/src/renderer/shared/fonts.css +46 -0
  497. package/src/renderer/shared/fonts.ts +10 -37
  498. package/src/renderer/shared/lib/utils.ts +6 -0
  499. package/src/renderer/shared/library/controller.test.ts +61 -0
  500. package/src/renderer/shared/library/controller.ts +57 -0
  501. package/src/renderer/shared/library/transport.test.ts +26 -0
  502. package/src/renderer/shared/library/transport.ts +60 -0
  503. package/src/renderer/shared/library/useLibraryFile.ts +38 -0
  504. package/src/renderer/shared/mods.ts +58 -0
  505. package/src/renderer/shared/platform.test.ts +90 -0
  506. package/src/renderer/shared/platform.ts +219 -7
  507. package/src/renderer/shared/theme/themeManager.test.ts +43 -0
  508. package/src/renderer/shared/theme/themeManager.ts +157 -0
  509. package/src/renderer/shared/theme/themes.ts +116 -0
  510. package/src/renderer/shared/theme/tokens.css +318 -0
  511. package/src/renderer/shared/types.ts +137 -2
  512. package/src/renderer/shared/utils/agentActivity.test.ts +75 -0
  513. package/src/renderer/shared/utils/agentActivity.ts +168 -8
  514. package/src/renderer/shared/utils/approval.tsx +7 -0
  515. package/src/renderer/shared/utils/artifactBrowser.test.ts +80 -0
  516. package/src/renderer/shared/utils/artifactBrowser.ts +41 -0
  517. package/src/renderer/shared/utils/cardJson.test.ts +35 -0
  518. package/src/renderer/shared/utils/cardJson.ts +30 -0
  519. package/src/renderer/shared/utils/contextCompaction.test.tsx +48 -0
  520. package/src/renderer/shared/utils/contextCompaction.ts +21 -0
  521. package/src/renderer/shared/utils/effectVisibility.ts +9 -0
  522. package/src/renderer/shared/utils/fileIcons.ts +1 -1
  523. package/src/renderer/shared/utils/markdown.tsx +330 -81
  524. package/src/renderer/shared/utils/markdown.webImages.test.tsx +40 -0
  525. package/src/renderer/shared/utils/mcpResults.test.tsx +91 -0
  526. package/src/renderer/shared/utils/modViewport.ts +7 -0
  527. package/src/renderer/shared/utils/nativeRecordingSession.test.ts +61 -0
  528. package/src/renderer/shared/utils/nativeRecordingSession.ts +46 -0
  529. package/src/renderer/shared/utils/notificationSettings.test.ts +14 -0
  530. package/src/renderer/shared/utils/notificationSettings.ts +23 -0
  531. package/src/renderer/shared/utils/notifications.test.ts +51 -0
  532. package/src/renderer/shared/utils/notifications.ts +54 -0
  533. package/src/renderer/shared/utils/pastedText.test.ts +20 -0
  534. package/src/renderer/shared/utils/pastedText.ts +13 -0
  535. package/src/renderer/shared/utils/progressCache.test.ts +32 -0
  536. package/src/renderer/shared/utils/providers.ts +8 -3
  537. package/src/renderer/shared/utils/screenCapture.ts +43 -0
  538. package/src/renderer/shared/utils/sessionSources.test.ts +31 -0
  539. package/src/renderer/shared/utils/sessionSources.ts +34 -0
  540. package/src/renderer/shared/utils/slashCommandProcessor.ts +5 -2
  541. package/src/renderer/shared/utils/sourceAttachments.ts +28 -0
  542. package/src/renderer/shared/utils/speech.ts +51 -9
  543. package/src/renderer/shared/utils/syntaxHighlight.test.tsx +22 -0
  544. package/src/renderer/shared/utils/syntaxHighlight.tsx +26 -0
  545. package/src/renderer/shared/utils/ui.ts +4 -64
  546. package/src/renderer/shared/utils/useGeminiLiveVoice.ts +49 -5
  547. package/src/renderer/shared/utils/useLatestCallback.ts +9 -0
  548. package/src/renderer/shared/utils/useNativeVoiceInput.ts +80 -72
  549. package/src/renderer/shared/utils/useSessionSources.ts +33 -0
  550. package/src/renderer/shared/utils/viewedImages.ts +26 -0
  551. package/src/renderer/shared/utils/workspacePane.test.ts +33 -0
  552. package/src/renderer/shared/utils/workspacePane.ts +20 -0
  553. package/src/renderer/shared/utils/workspacePreview.test.ts +24 -0
  554. package/src/renderer/shared/utils/workspacePreview.ts +16 -0
  555. package/src/renderer/shared/utils/workspaceSnapshot.test.ts +49 -0
  556. package/src/renderer/shared/utils/workspaceSnapshot.ts +26 -0
  557. package/src/renderer/shared/utils/workspaces.ts +10 -0
  558. package/src/renderer/shared/workspaceUndo.ts +88 -0
  559. package/src/renderer/src/App.tsx +16 -1
  560. package/src/renderer/src/components/BrowserShell.tsx +108 -0
  561. package/src/renderer/src/components/BrowserSuggestionsPopup.tsx +91 -0
  562. package/src/renderer/src/components/LiveTranslateControls.tsx +65 -0
  563. package/src/renderer/src/components/MintDashboard.tsx +4 -2
  564. package/src/renderer/src/components/PicturesLibrary.tsx +2 -287
  565. package/src/renderer/src/components/ScreenPicker.css +227 -0
  566. package/src/renderer/src/components/ScreenPicker.tsx +312 -526
  567. package/src/renderer/src/components/SettingsWindow.tsx +48 -5
  568. package/src/renderer/src/components/SpotlightWindow.tsx +1 -0
  569. package/src/renderer/src/components/WidgetWindow.tsx +27 -3
  570. package/src/renderer/src/components/WorkspacePanel.tsx +269 -61
  571. package/src/renderer/src/components/browser-shell.css +185 -0
  572. package/src/renderer/src/components/browser-suggestions-popup.css +55 -0
  573. package/src/renderer/src/components/liveTranslateFrames.test.ts +44 -0
  574. package/src/renderer/src/components/liveTranslateFrames.ts +45 -0
  575. package/src/renderer/src/components/liveTranslateLanguage.ts +6 -0
  576. package/src/renderer/src/css/app-shell.css +400 -204
  577. package/src/renderer/src/css/chat.css +1666 -594
  578. package/src/renderer/src/css/dashboard.css +11 -0
  579. package/src/renderer/src/css/desktop-tools.css +928 -0
  580. package/src/renderer/src/css/misc.css +5 -60
  581. package/src/renderer/src/css/pictures.css +2 -407
  582. package/src/renderer/src/css/settings/base.css +394 -157
  583. package/src/renderer/src/css/sidebar-workspace.css +1072 -376
  584. package/src/renderer/src/css/spotlight.css +15 -26
  585. package/src/renderer/src/css/tool-surfaces.css +784 -0
  586. package/src/renderer/src/css/widget.css +36 -8
  587. package/src/renderer/src/env.d.ts +4 -9
  588. package/src/renderer/src/hooks/useProviderModels.ts +2 -9
  589. package/src/renderer/src/index.css +53 -46
  590. package/src/renderer/src/main.tsx +12 -0
  591. package/src/renderer/src/proactiveSuggestions.ts +29 -0
  592. package/src/renderer/src/tauri.ts +302 -339
  593. package/src/renderer/src/voiceInput.ts +2 -1
  594. package/src/renderer/src-web/App.tsx +40 -0
  595. package/src/renderer/src-web/components/MintDashboard.tsx +4 -2
  596. package/src/renderer/src-web/components/PicturesLibrary.tsx +2 -284
  597. package/src/renderer/src-web/components/PullToRefresh.tsx +107 -0
  598. package/src/renderer/src-web/components/SettingsWindow.tsx +36 -5
  599. package/src/renderer/src-web/css/app-shell.css +188 -207
  600. package/src/renderer/src-web/css/chat.css +1236 -507
  601. package/src/renderer/src-web/css/dashboard.css +11 -0
  602. package/src/renderer/src-web/css/misc.css +3 -55
  603. package/src/renderer/src-web/css/mobile.css +679 -0
  604. package/src/renderer/src-web/css/pictures.css +2 -415
  605. package/src/renderer/src-web/css/pull-to-refresh.css +54 -0
  606. package/src/renderer/src-web/css/settings/base.css +353 -134
  607. package/src/renderer/src-web/css/settings/mobile.css +320 -0
  608. package/src/renderer/src-web/css/sidebar-workspace.css +546 -187
  609. package/src/renderer/src-web/css/spotlight.css +9 -26
  610. package/src/renderer/src-web/css/widget.css +1 -6
  611. package/src/renderer/src-web/env.d.ts +4 -12
  612. package/src/renderer/src-web/hooks/useProviderModels.ts +2 -9
  613. package/src/renderer/src-web/index.css +53 -96
  614. package/src/renderer/src-web/main.tsx +12 -0
  615. package/src/renderer/src-web/proactiveSuggestions.ts +3 -0
  616. package/src/renderer/src-web/tauri.ts +309 -364
  617. package/src/renderer/tests/backgroundTerminals.browser.html +81 -0
  618. package/src/renderer/tests/chatPanelFixture.ts +23 -0
  619. package/src/renderer/tests/chatPerformance.browser.html +71 -0
  620. package/src/renderer/tests/cliSessions.browser.html +82 -0
  621. package/src/renderer/tests/collapsedPaste.browser.html +70 -0
  622. package/src/renderer/tests/composerMenus.browser.html +116 -0
  623. package/src/renderer/tests/contextCompaction.browser.html +17 -0
  624. package/src/renderer/tests/conversationLifecycle.browser.html +70 -0
  625. package/src/renderer/tests/effectsPerformance.browser.html +13 -0
  626. package/src/renderer/tests/errorRecovery.browser.html +21 -0
  627. package/src/renderer/tests/glideSelect.browser.html +71 -0
  628. package/src/renderer/tests/glideSelect.preview.html +27 -0
  629. package/src/renderer/tests/library.browser.html +1 -0
  630. package/src/renderer/tests/library.browser.tsx +78 -0
  631. package/src/renderer/tests/liveOrb.browser.html +49 -0
  632. package/src/renderer/tests/liveVoice.browser.html +29 -0
  633. package/src/renderer/tests/modInput.browser.html +22 -0
  634. package/src/renderer/tests/sessionSources.browser.html +1 -0
  635. package/src/renderer/tests/sessionSources.browser.tsx +107 -0
  636. package/src/renderer/tests/skills.browser.html +24 -0
  637. package/src/renderer/tests/toolsPanel.browser.html +1 -0
  638. package/src/renderer/tests/toolsPanel.browser.tsx +113 -0
  639. package/src/renderer/tests/viewedImages.browser.html +1 -0
  640. package/src/renderer/tests/viewedImages.browser.tsx +93 -0
  641. package/src/renderer/tests/voicePill.browser.html +80 -0
  642. package/src/renderer/tests/voicePill.preview.html +34 -0
  643. package/src/renderer/tests/webSources.browser.html +1 -0
  644. package/src/renderer/tests/webSources.browser.tsx +98 -0
  645. package/src/renderer/tests/workspaceUndo.browser.html +92 -0
  646. package/src-tauri/Cargo.toml +40 -0
  647. package/src-tauri/build.rs +3 -0
  648. package/src-tauri/src/app/lifecycle.rs +277 -0
  649. package/src-tauri/src/app/mod.rs +4 -0
  650. package/src-tauri/src/app/shortcuts.rs +40 -0
  651. package/src-tauri/src/app/tray.rs +52 -0
  652. package/src-tauri/src/background/events.rs +70 -0
  653. package/src-tauri/src/background/headless.rs +230 -0
  654. package/src-tauri/src/background/mod.rs +4 -0
  655. package/src-tauri/src/background/proactive.rs +262 -0
  656. package/src-tauri/src/commands/approvals.rs +20 -0
  657. package/src-tauri/src/commands/auth.rs +127 -0
  658. package/src-tauri/src/commands/conversation.rs +642 -0
  659. package/src-tauri/src/commands/integrations.rs +157 -0
  660. package/src-tauri/src/commands/media.rs +179 -0
  661. package/src-tauri/src/commands/mod.rs +11 -0
  662. package/src-tauri/src/commands/mods.rs +6 -0
  663. package/src-tauri/src/commands/settings.rs +141 -0
  664. package/src-tauri/src/commands/voice.rs +153 -0
  665. package/src-tauri/src/commands/workspace.rs +501 -0
  666. package/src-tauri/src/lib.rs +10 -0
  667. package/src-tauri/src/main.rs +3 -0
  668. package/src-tauri/src/native/actions.rs +206 -0
  669. package/src-tauri/src/native/browser.rs +252 -0
  670. package/src-tauri/src/native/capture.rs +695 -0
  671. package/src-tauri/src/native/discord_rpc.rs +99 -0
  672. package/src-tauri/src/native/integrations.rs +126 -0
  673. package/src-tauri/src/native/mod.rs +12 -0
  674. package/src-tauri/src/native/notifications.rs +51 -0
  675. package/src-tauri/src/native/plugins.rs +14 -0
  676. package/src-tauri/src/native/system.rs +250 -0
  677. package/src-tauri/src/native/terminal.rs +201 -0
  678. package/src-tauri/src/native/updater.rs +148 -0
  679. package/src-tauri/src/native/windows.rs +143 -0
  680. package/tsconfig.json +2 -0
  681. package/vite.config.ts +4 -1
  682. package/vite.config.web.ts +5 -0
  683. package/.cargo/config.toml +0 -13
  684. package/.claude/settings.local.json +0 -182
  685. package/.codex +0 -0
  686. package/CLAUDE.md +0 -102
  687. package/out/web/Live2DCubismCore.js +0 -9
  688. package/out/web/assets/MintDashboard-DWSqucgb.js +0 -57
  689. package/out/web/assets/SettingsWindow-DFM2aj5B.js +0 -2
  690. package/out/web/assets/chunk-CKBBP62Z-nr1uKPj9.js +0 -2
  691. package/out/web/assets/chunk-DSNCTWBM-Dtj8Rqsd.js +0 -2
  692. package/out/web/assets/chunk-DU6HZSFF-2tv5K1wT.js +0 -128
  693. package/out/web/assets/classDiagram-DTDB5LWJ-BdSFArgw.js +0 -1
  694. package/out/web/assets/classDiagram-v2-JRS7N3AN-BdSFArgw.js +0 -1
  695. package/out/web/assets/core-DImejIUG.js +0 -1
  696. package/out/web/assets/dist-js-BxuKEVWM.js +0 -1
  697. package/out/web/assets/event-BNl8Zahw.js +0 -1
  698. package/out/web/assets/fira-code-cyrillic-400-normal-UC0NFL4U.woff2 +0 -0
  699. package/out/web/assets/fira-code-cyrillic-400-normal-dc1q3VD7.woff +0 -0
  700. package/out/web/assets/fira-code-cyrillic-500-normal-Bu7VCL72.woff +0 -0
  701. package/out/web/assets/fira-code-cyrillic-500-normal-CX35h3Mg.woff2 +0 -0
  702. package/out/web/assets/fira-code-cyrillic-ext-400-normal-Buh61xzB.woff +0 -0
  703. package/out/web/assets/fira-code-cyrillic-ext-400-normal-txZ9Fk_1.woff2 +0 -0
  704. package/out/web/assets/fira-code-cyrillic-ext-500-normal-CYRspHgm.woff2 +0 -0
  705. package/out/web/assets/fira-code-cyrillic-ext-500-normal-CwtLmSFD.woff +0 -0
  706. package/out/web/assets/fira-code-greek-400-normal-B2Gh_Y8s.woff2 +0 -0
  707. package/out/web/assets/fira-code-greek-400-normal-DobhaxvF.woff +0 -0
  708. package/out/web/assets/fira-code-greek-500-normal-CVO0IRNt.woff2 +0 -0
  709. package/out/web/assets/fira-code-greek-500-normal-DEXIWiey.woff +0 -0
  710. package/out/web/assets/fira-code-greek-ext-400-normal-DR7mBgIM.woff2 +0 -0
  711. package/out/web/assets/fira-code-greek-ext-400-normal-DSPUheWg.woff +0 -0
  712. package/out/web/assets/fira-code-greek-ext-500-normal-BO3iq16n.woff2 +0 -0
  713. package/out/web/assets/fira-code-greek-ext-500-normal-CMiNLXER.woff +0 -0
  714. package/out/web/assets/fira-code-latin-ext-400-normal-DG73JjOf.woff +0 -0
  715. package/out/web/assets/fira-code-latin-ext-400-normal-KSMg0QLl.woff2 +0 -0
  716. package/out/web/assets/fira-code-latin-ext-500-normal-CaANqXjI.woff +0 -0
  717. package/out/web/assets/fira-code-latin-ext-500-normal-Crd9e_oI.woff2 +0 -0
  718. package/out/web/assets/flowDiagram-A5DVABFB-BpnHUSU7.js +0 -1
  719. package/out/web/assets/index-CVRg270z.css +0 -1
  720. package/out/web/assets/index-DxZQr9yD.js +0 -10
  721. package/out/web/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
  722. package/out/web/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
  723. package/out/web/assets/inter-cyrillic-500-normal-BasfLYem.woff2 +0 -0
  724. package/out/web/assets/inter-cyrillic-500-normal-CxZf_p3X.woff +0 -0
  725. package/out/web/assets/inter-cyrillic-600-normal-4D_pXhcN.woff +0 -0
  726. package/out/web/assets/inter-cyrillic-600-normal-CWCymEST.woff2 +0 -0
  727. package/out/web/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
  728. package/out/web/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
  729. package/out/web/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 +0 -0
  730. package/out/web/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff +0 -0
  731. package/out/web/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff +0 -0
  732. package/out/web/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2 +0 -0
  733. package/out/web/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
  734. package/out/web/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
  735. package/out/web/assets/inter-greek-500-normal-BIZE56-Y.woff2 +0 -0
  736. package/out/web/assets/inter-greek-500-normal-Xzm54t5V.woff +0 -0
  737. package/out/web/assets/inter-greek-600-normal-BZpKdvQh.woff +0 -0
  738. package/out/web/assets/inter-greek-600-normal-plRanbMR.woff2 +0 -0
  739. package/out/web/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
  740. package/out/web/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
  741. package/out/web/assets/inter-greek-ext-500-normal-2j5mBUwD.woff +0 -0
  742. package/out/web/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 +0 -0
  743. package/out/web/assets/inter-greek-ext-600-normal-B8X0CLgF.woff +0 -0
  744. package/out/web/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2 +0 -0
  745. package/out/web/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
  746. package/out/web/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
  747. package/out/web/assets/inter-latin-500-normal-BL9OpVg8.woff +0 -0
  748. package/out/web/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
  749. package/out/web/assets/inter-latin-600-normal-CiBQ2DWP.woff +0 -0
  750. package/out/web/assets/inter-latin-600-normal-LgqL8muc.woff2 +0 -0
  751. package/out/web/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
  752. package/out/web/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
  753. package/out/web/assets/inter-latin-ext-500-normal-BxGbmqWO.woff +0 -0
  754. package/out/web/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 +0 -0
  755. package/out/web/assets/inter-latin-ext-600-normal-CIVaiw4L.woff +0 -0
  756. package/out/web/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2 +0 -0
  757. package/out/web/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
  758. package/out/web/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
  759. package/out/web/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
  760. package/out/web/assets/inter-vietnamese-500-normal-mJboJaSs.woff +0 -0
  761. package/out/web/assets/inter-vietnamese-600-normal-BuLX-rYi.woff +0 -0
  762. package/out/web/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
  763. package/out/web/assets/kanit-latin-400-normal-BUlsQXH3.woff2 +0 -0
  764. package/out/web/assets/kanit-latin-400-normal-HVZWrfev.woff +0 -0
  765. package/out/web/assets/kanit-latin-500-normal-CX_4XcKi.woff2 +0 -0
  766. package/out/web/assets/kanit-latin-500-normal-qBha86O4.woff +0 -0
  767. package/out/web/assets/kanit-latin-600-normal-0lS78yAd.woff2 +0 -0
  768. package/out/web/assets/kanit-latin-600-normal-DlacpeTg.woff +0 -0
  769. package/out/web/assets/kanit-latin-ext-400-normal-B2xPf58u.woff2 +0 -0
  770. package/out/web/assets/kanit-latin-ext-400-normal-CHvNKHHD.woff +0 -0
  771. package/out/web/assets/kanit-latin-ext-500-normal-BFdWrG22.woff +0 -0
  772. package/out/web/assets/kanit-latin-ext-500-normal-EHs3suD6.woff2 +0 -0
  773. package/out/web/assets/kanit-latin-ext-600-normal-BBDzoLaj.woff +0 -0
  774. package/out/web/assets/kanit-latin-ext-600-normal-DAX3wtuq.woff2 +0 -0
  775. package/out/web/assets/kanit-thai-400-normal-D2nliXKa.woff +0 -0
  776. package/out/web/assets/kanit-thai-400-normal-D80Pglro.woff2 +0 -0
  777. package/out/web/assets/kanit-thai-500-normal-BB8gri04.woff2 +0 -0
  778. package/out/web/assets/kanit-thai-500-normal-Iy_w0a80.woff +0 -0
  779. package/out/web/assets/kanit-thai-600-normal-Bj6oiaDc.woff2 +0 -0
  780. package/out/web/assets/kanit-thai-600-normal-wbTlPO7I.woff +0 -0
  781. package/out/web/assets/kanit-vietnamese-400-normal-DRI8YWyb.woff2 +0 -0
  782. package/out/web/assets/kanit-vietnamese-400-normal-dow6Bnto.woff +0 -0
  783. package/out/web/assets/kanit-vietnamese-500-normal-BzTrpCM3.woff2 +0 -0
  784. package/out/web/assets/kanit-vietnamese-500-normal-T1ndT7MF.woff +0 -0
  785. package/out/web/assets/kanit-vietnamese-600-normal-Bi7fw3I4.woff2 +0 -0
  786. package/out/web/assets/kanit-vietnamese-600-normal-DXCRAa_8.woff +0 -0
  787. package/out/web/assets/mali-latin-400-normal-ByPcZ8Gx.woff +0 -0
  788. package/out/web/assets/mali-latin-400-normal-Cuc6Ykl8.woff2 +0 -0
  789. package/out/web/assets/mali-latin-500-normal-B01M-LP6.woff2 +0 -0
  790. package/out/web/assets/mali-latin-500-normal-Thgqw_9f.woff +0 -0
  791. package/out/web/assets/mali-latin-600-normal-B9TiUNpT.woff2 +0 -0
  792. package/out/web/assets/mali-latin-600-normal-CycpQCwU.woff +0 -0
  793. package/out/web/assets/mali-latin-ext-400-normal-DUVdJQO4.woff +0 -0
  794. package/out/web/assets/mali-latin-ext-400-normal-iCG1ALuJ.woff2 +0 -0
  795. package/out/web/assets/mali-latin-ext-500-normal-BfJE4UMZ.woff2 +0 -0
  796. package/out/web/assets/mali-latin-ext-500-normal-FoLEyOKS.woff +0 -0
  797. package/out/web/assets/mali-latin-ext-600-normal-BTvIfiCp.woff2 +0 -0
  798. package/out/web/assets/mali-latin-ext-600-normal-DAQcLVmD.woff +0 -0
  799. package/out/web/assets/mali-thai-400-normal-BO7A3bLZ.woff2 +0 -0
  800. package/out/web/assets/mali-thai-400-normal-CX9VrjTn.woff +0 -0
  801. package/out/web/assets/mali-thai-500-normal-Cph2qha9.woff +0 -0
  802. package/out/web/assets/mali-thai-500-normal-D89rMT77.woff2 +0 -0
  803. package/out/web/assets/mali-thai-600-normal-DPgXT6rZ.woff +0 -0
  804. package/out/web/assets/mali-thai-600-normal-DlTx3OsB.woff2 +0 -0
  805. package/out/web/assets/mali-vietnamese-400-normal-DUKxzXaz.woff2 +0 -0
  806. package/out/web/assets/mali-vietnamese-400-normal-gFDLvsOK.woff +0 -0
  807. package/out/web/assets/mali-vietnamese-500-normal--OY07q2c.woff +0 -0
  808. package/out/web/assets/mali-vietnamese-500-normal-KDrNRwfW.woff2 +0 -0
  809. package/out/web/assets/mali-vietnamese-600-normal-CtTMUU7T.woff +0 -0
  810. package/out/web/assets/mali-vietnamese-600-normal-DFlJr66u.woff2 +0 -0
  811. package/out/web/assets/mermaid.core-DYGGlqOf.js +0 -11
  812. package/out/web/assets/mitr-latin-400-normal-Cb18vPmZ.woff +0 -0
  813. package/out/web/assets/mitr-latin-400-normal-CwbkLQ4a.woff2 +0 -0
  814. package/out/web/assets/mitr-latin-500-normal-B4JOhzAi.woff +0 -0
  815. package/out/web/assets/mitr-latin-500-normal-BmClOow2.woff2 +0 -0
  816. package/out/web/assets/mitr-latin-ext-400-normal-B3CPG7Yo.woff2 +0 -0
  817. package/out/web/assets/mitr-latin-ext-400-normal-DTx65hiC.woff +0 -0
  818. package/out/web/assets/mitr-latin-ext-500-normal-B_Diajz1.woff2 +0 -0
  819. package/out/web/assets/mitr-latin-ext-500-normal-DYOsVaVT.woff +0 -0
  820. package/out/web/assets/mitr-thai-400-normal-CS4Do6aM.woff +0 -0
  821. package/out/web/assets/mitr-thai-400-normal-CXWaAdVj.woff2 +0 -0
  822. package/out/web/assets/mitr-thai-500-normal-CVdBrEVH.woff2 +0 -0
  823. package/out/web/assets/mitr-thai-500-normal-CW_B5D-i.woff +0 -0
  824. package/out/web/assets/mitr-vietnamese-400-normal-CPMGWyoC.woff2 +0 -0
  825. package/out/web/assets/mitr-vietnamese-400-normal-Z6XhIpdY.woff +0 -0
  826. package/out/web/assets/mitr-vietnamese-500-normal-CDrv0585.woff2 +0 -0
  827. package/out/web/assets/mitr-vietnamese-500-normal-CMQWyq-Z.woff +0 -0
  828. package/out/web/assets/noto-sans-thai-latin-400-normal-BaWBrqFP.woff2 +0 -0
  829. package/out/web/assets/noto-sans-thai-latin-400-normal-Dh_FJjOB.woff +0 -0
  830. package/out/web/assets/noto-sans-thai-latin-500-normal-BC04jsmm.woff +0 -0
  831. package/out/web/assets/noto-sans-thai-latin-500-normal-fyBKClF1.woff2 +0 -0
  832. package/out/web/assets/noto-sans-thai-latin-600-normal-CemcjnVR.woff2 +0 -0
  833. package/out/web/assets/noto-sans-thai-latin-600-normal-Dbc-dNO6.woff +0 -0
  834. package/out/web/assets/noto-sans-thai-latin-ext-400-normal-B-1H0YkH.woff +0 -0
  835. package/out/web/assets/noto-sans-thai-latin-ext-400-normal-nBP59pVw.woff2 +0 -0
  836. package/out/web/assets/noto-sans-thai-latin-ext-500-normal-B-ZWb8SZ.woff2 +0 -0
  837. package/out/web/assets/noto-sans-thai-latin-ext-500-normal-CrEHO7C8.woff +0 -0
  838. package/out/web/assets/noto-sans-thai-latin-ext-600-normal-PkMZo0xa.woff +0 -0
  839. package/out/web/assets/noto-sans-thai-latin-ext-600-normal-maHHBsez.woff2 +0 -0
  840. package/out/web/assets/noto-sans-thai-thai-400-normal-BEOmKAI1.woff2 +0 -0
  841. package/out/web/assets/noto-sans-thai-thai-400-normal-Dxb_unuU.woff +0 -0
  842. package/out/web/assets/noto-sans-thai-thai-500-normal-BOGXO2tw.woff +0 -0
  843. package/out/web/assets/noto-sans-thai-thai-500-normal-CU_X86GQ.woff2 +0 -0
  844. package/out/web/assets/noto-sans-thai-thai-600-normal-CmgB8_JK.woff +0 -0
  845. package/out/web/assets/noto-sans-thai-thai-600-normal-Cs73sVjl.woff2 +0 -0
  846. package/out/web/assets/oauthManager-DNiwM8Rn.js +0 -2
  847. package/out/web/assets/oauthManager-DuamS1Av.css +0 -1
  848. package/out/web/assets/outfit-latin-300-normal-AWLfuCom.woff +0 -0
  849. package/out/web/assets/outfit-latin-300-normal-CRYTwY6m.woff2 +0 -0
  850. package/out/web/assets/outfit-latin-400-normal-BGsTXAXT.woff2 +0 -0
  851. package/out/web/assets/outfit-latin-400-normal-DMwTpYkH.woff +0 -0
  852. package/out/web/assets/outfit-latin-500-normal-ClnHRwRh.woff +0 -0
  853. package/out/web/assets/outfit-latin-500-normal-DKnIMDSk.woff2 +0 -0
  854. package/out/web/assets/outfit-latin-600-normal-B7SfZ07L.woff2 +0 -0
  855. package/out/web/assets/outfit-latin-600-normal-BEfTtDA7.woff +0 -0
  856. package/out/web/assets/outfit-latin-ext-300-normal-BYS6Dpvq.woff2 +0 -0
  857. package/out/web/assets/outfit-latin-ext-300-normal-CMIMshEd.woff +0 -0
  858. package/out/web/assets/outfit-latin-ext-400-normal-5tcqmc2S.woff2 +0 -0
  859. package/out/web/assets/outfit-latin-ext-400-normal-DHm7mdGe.woff +0 -0
  860. package/out/web/assets/outfit-latin-ext-500-normal-DrCvqoFD.woff +0 -0
  861. package/out/web/assets/outfit-latin-ext-500-normal-zeox_O30.woff2 +0 -0
  862. package/out/web/assets/outfit-latin-ext-600-normal-B85nYjL1.woff2 +0 -0
  863. package/out/web/assets/outfit-latin-ext-600-normal-CWJcPgd7.woff +0 -0
  864. package/out/web/assets/preload-helper-D0uHx7FM.js +0 -1
  865. package/out/web/assets/prompt-latin-400-normal-BQ9zjSN8.woff2 +0 -0
  866. package/out/web/assets/prompt-latin-400-normal-CxU4ec_r.woff +0 -0
  867. package/out/web/assets/prompt-latin-500-normal-B1edBDQ9.woff +0 -0
  868. package/out/web/assets/prompt-latin-500-normal-CxzxEHZc.woff2 +0 -0
  869. package/out/web/assets/prompt-latin-600-normal-CSDDLorv.woff +0 -0
  870. package/out/web/assets/prompt-latin-600-normal-hKZWXsc1.woff2 +0 -0
  871. package/out/web/assets/prompt-latin-ext-400-normal-1pHbN9uy.woff +0 -0
  872. package/out/web/assets/prompt-latin-ext-400-normal-DdSafGZ9.woff2 +0 -0
  873. package/out/web/assets/prompt-latin-ext-500-normal--EZ1um7s.woff2 +0 -0
  874. package/out/web/assets/prompt-latin-ext-500-normal-D-lI1EVT.woff +0 -0
  875. package/out/web/assets/prompt-latin-ext-600-normal-C8b50x67.woff +0 -0
  876. package/out/web/assets/prompt-latin-ext-600-normal-Cg9L7iJU.woff2 +0 -0
  877. package/out/web/assets/prompt-thai-400-normal-BrkKv8cO.woff2 +0 -0
  878. package/out/web/assets/prompt-thai-400-normal-DJypnfr3.woff +0 -0
  879. package/out/web/assets/prompt-thai-500-normal-C18pDUoL.woff2 +0 -0
  880. package/out/web/assets/prompt-thai-500-normal-D7YNqUJD.woff +0 -0
  881. package/out/web/assets/prompt-thai-600-normal-CYPViXds.woff +0 -0
  882. package/out/web/assets/prompt-thai-600-normal-MrdfU7zR.woff2 +0 -0
  883. package/out/web/assets/prompt-vietnamese-400-normal-BCPzsgPT.woff2 +0 -0
  884. package/out/web/assets/prompt-vietnamese-400-normal-D4pLyeNK.woff +0 -0
  885. package/out/web/assets/prompt-vietnamese-500-normal-DmzxmPwa.woff2 +0 -0
  886. package/out/web/assets/prompt-vietnamese-500-normal-w_sS_j2F.woff +0 -0
  887. package/out/web/assets/prompt-vietnamese-600-normal-1dyohtNh.woff +0 -0
  888. package/out/web/assets/prompt-vietnamese-600-normal-7QWjJBsF.woff2 +0 -0
  889. package/out/web/assets/sarabun-latin-400-normal-DmguIS-7.woff +0 -0
  890. package/out/web/assets/sarabun-latin-400-normal-URPBxl-K.woff2 +0 -0
  891. package/out/web/assets/sarabun-latin-500-normal-BjUTcdxu.woff2 +0 -0
  892. package/out/web/assets/sarabun-latin-500-normal-CJexTAnl.woff +0 -0
  893. package/out/web/assets/sarabun-latin-600-normal-9FonlkKx.woff +0 -0
  894. package/out/web/assets/sarabun-latin-600-normal-DMD3TROr.woff2 +0 -0
  895. package/out/web/assets/sarabun-latin-ext-400-normal-BbP7GpLL.woff2 +0 -0
  896. package/out/web/assets/sarabun-latin-ext-400-normal-BsmTn0SS.woff +0 -0
  897. package/out/web/assets/sarabun-latin-ext-500-normal-Cot16Bd2.woff +0 -0
  898. package/out/web/assets/sarabun-latin-ext-500-normal-DE1LysqI.woff2 +0 -0
  899. package/out/web/assets/sarabun-latin-ext-600-normal-0tXu9x_i.woff +0 -0
  900. package/out/web/assets/sarabun-latin-ext-600-normal-BRxjKUQ6.woff2 +0 -0
  901. package/out/web/assets/sarabun-thai-400-normal-C2DaJlKK.woff2 +0 -0
  902. package/out/web/assets/sarabun-thai-400-normal-CH-UbWgg.woff +0 -0
  903. package/out/web/assets/sarabun-thai-500-normal-BVssjame.woff2 +0 -0
  904. package/out/web/assets/sarabun-thai-500-normal-C3iDLEzi.woff +0 -0
  905. package/out/web/assets/sarabun-thai-600-normal-3dIAQ-_s.woff2 +0 -0
  906. package/out/web/assets/sarabun-thai-600-normal-DWKeTe6a.woff +0 -0
  907. package/out/web/assets/sarabun-vietnamese-400-normal-DPfkSCMy.woff +0 -0
  908. package/out/web/assets/sarabun-vietnamese-400-normal-igdrzAGY.woff2 +0 -0
  909. package/out/web/assets/sarabun-vietnamese-500-normal-CpRVvGRU.woff +0 -0
  910. package/out/web/assets/sarabun-vietnamese-500-normal-Dpe7Br9m.woff2 +0 -0
  911. package/out/web/assets/sarabun-vietnamese-600-normal-BMbOgAW-.woff +0 -0
  912. package/out/web/assets/sarabun-vietnamese-600-normal-DkxrOlLB.woff2 +0 -0
  913. package/out/web/assets/stateDiagram-v2-4QOOHH4V-s6P9g2_b.js +0 -1
  914. package/out/web/assets/swimlanesDiagram-VK2B7HYN-CV9fOLrV.js +0 -8
  915. package/out/web/assets/tauri-CNrHQ2Gb.js +0 -3
  916. package/out/web/assets/window-DkIhgI7B.js +0 -1
  917. package/skills-lock.json +0 -41
  918. package/src/renderer/public/Live2DCubismCore.js +0 -9
  919. package/src/renderer/src/companionWidget.ts +0 -95
  920. package/src/renderer/src/components/Live2DStage.tsx +0 -389
  921. package/src/renderer/src/components/ModelPanel.tsx +0 -154
  922. package/src/renderer/src/css/model.css +0 -627
  923. package/src/renderer/src-web/companionWidget.ts +0 -37
  924. package/src/renderer/src-web/components/ModelPanel.tsx +0 -12
  925. package/src/renderer/src-web/css/model.css +0 -628
@@ -24,6 +24,7 @@
24
24
  min-width: 0;
25
25
  padding: 20px;
26
26
  overflow-y: auto;
27
+ overflow-x: hidden;
27
28
  display: flex;
28
29
  flex-direction: column;
29
30
  gap: 16px;
@@ -32,6 +33,13 @@
32
33
  will-change: transform;
33
34
  }
34
35
 
36
+ /* Every chat item must be able to shrink inside a narrow conversation panel.
37
+ Individual code/output blocks provide their own horizontal scrolling. */
38
+ .chat-container > * {
39
+ min-width: 0;
40
+ max-width: 100%;
41
+ }
42
+
35
43
  .chat-container::-webkit-scrollbar {
36
44
  width: 6px;
37
45
  }
@@ -41,7 +49,7 @@
41
49
  }
42
50
 
43
51
  .chat-container::-webkit-scrollbar-thumb {
44
- background: rgba(255, 255, 255, 0.1);
52
+ background: var(--bg-surface-hover);
45
53
  border-radius: var(--radius-lg);
46
54
  }
47
55
 
@@ -112,6 +120,15 @@
112
120
  align-items: flex-start;
113
121
  }
114
122
 
123
+ /* Activity dashboards need the chat column, not the reply text's intrinsic width. */
124
+ .message.ai-message:has(.agent-activity-history),
125
+ .message.ai-message.agent-activity-message {
126
+ align-self: stretch;
127
+ width: 100%;
128
+ }
129
+ .message.ai-message:has(.agent-activity-history) > .bubble-wrapper,
130
+ .agent-activity-history { width: 100%; }
131
+
115
132
  .message-time {
116
133
  font-size: 0.72rem;
117
134
  color: var(--text-muted);
@@ -131,13 +148,13 @@
131
148
  display: inline-flex;
132
149
  align-items: center;
133
150
  gap: 6px;
134
- background: var(--surface-bg, rgba(255, 255, 255, 0.04));
135
- border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
151
+ background: var(--bg-surface-soft);
152
+ border: 1px solid var(--border-default);
136
153
  border-radius: var(--radius-full, 999px);
137
154
  padding: 2px 9px 2px 7px;
138
155
  font-size: 0.72rem;
139
156
  font-family: 'Fira Code', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
140
- color: var(--text-muted, #94a3b8);
157
+ color: var(--text-secondary);
141
158
  line-height: 1.3;
142
159
  user-select: none;
143
160
  transition: all 0.15s ease;
@@ -148,9 +165,9 @@
148
165
  }
149
166
 
150
167
  .provider-model-chip:hover {
151
- background: var(--panel-raised, rgba(255, 255, 255, 0.07));
152
- border-color: var(--border-light, rgba(255, 255, 255, 0.16));
153
- color: var(--text-main, #f1f5f9);
168
+ background: var(--bg-surface-hover);
169
+ border-color: var(--border-strong);
170
+ color: var(--text-primary);
154
171
  }
155
172
 
156
173
  .provider-chip-dot {
@@ -197,24 +214,26 @@
197
214
  .provider-chip-name {
198
215
  font-weight: 600;
199
216
  text-transform: lowercase;
200
- opacity: 0.85;
217
+ color: var(--text-primary);
218
+ opacity: 0.9;
201
219
  }
202
220
 
203
221
  .provider-chip-divider {
204
- opacity: 0.35;
222
+ opacity: 0.5;
205
223
  font-size: 0.68rem;
206
224
  margin: 0 1px;
225
+ color: var(--text-muted);
207
226
  }
208
227
 
209
228
  .provider-chip-model {
210
- font-weight: 450;
211
- color: var(--text-chat, var(--text-main, #e2e8f0));
229
+ font-weight: 500;
230
+ color: var(--text-primary);
212
231
  }
213
232
 
214
233
  .message-timestamp {
215
234
  font-size: 0.72rem;
216
- color: var(--text-muted, #64748b);
217
- opacity: 0.8;
235
+ color: var(--text-muted);
236
+ opacity: 1;
218
237
  user-select: none;
219
238
  }
220
239
 
@@ -225,7 +244,7 @@
225
244
  white-space: nowrap;
226
245
  border: 0;
227
246
  background: transparent;
228
- color: var(--accent);
247
+ color: var(--interactive-fg);
229
248
  font-weight: 600;
230
249
  font: inherit;
231
250
  line-height: 1.2;
@@ -235,7 +254,7 @@
235
254
 
236
255
  .provider-badge:hover,
237
256
  .provider-badge.is-open {
238
- color: var(--accent-hover);
257
+ color: var(--interactive-fg-hover);
239
258
  text-decoration: underline;
240
259
  text-underline-offset: 2px;
241
260
  }
@@ -344,7 +363,7 @@
344
363
  }
345
364
 
346
365
  .ai-list-bullet {
347
- color: var(--accent-hover);
366
+ color: var(--interactive-fg-hover);
348
367
  font-weight: 700;
349
368
  line-height: 1.5;
350
369
  }
@@ -355,8 +374,8 @@
355
374
 
356
375
  .user-message .message-bubble {
357
376
  background: linear-gradient(135deg, var(--accent) 0%, color-mix(in srgb, var(--accent) 70%, #000000) 100%);
358
- color: white;
359
- border-bottom-right-radius: var(--radius-xs);
377
+ color: var(--text-on-accent);
378
+ border-radius: 22px 22px 6px 22px;
360
379
  box-shadow: var(--glow-accent-md), inset 1px 1px 0 rgba(255, 255, 255, 0.2);
361
380
  }
362
381
 
@@ -406,11 +425,12 @@
406
425
 
407
426
  .chat-paragraph {
408
427
  margin: 0;
409
- margin-bottom: 6px;
410
- line-height: 1.7;
428
+ margin-bottom: 8px;
429
+ line-height: 1.74;
430
+ letter-spacing: 0.005em;
411
431
  white-space: pre-wrap;
412
432
  word-break: break-word;
413
- color: var(--text-chat, var(--text-main));
433
+ color: var(--text-chat);
414
434
  }
415
435
 
416
436
  .chat-paragraph:last-child {
@@ -418,61 +438,51 @@
418
438
  }
419
439
 
420
440
  .chat-heading {
421
- font-weight: 700;
422
- color: var(--text-chat, var(--text-main));
423
- margin-top: 14px;
424
- margin-bottom: 6px;
441
+ font-weight: 600;
442
+ color: var(--text-main);
443
+ margin-top: 16px;
444
+ margin-bottom: 8px;
425
445
  line-height: 1.45;
446
+ letter-spacing: -0.015em;
426
447
  }
427
448
 
428
- .chat-heading-1 { font-size: 1.25rem; color: var(--text-chat, var(--text-main)); }
449
+ .chat-heading-1 { font-size: 1.3rem; color: var(--text-main); }
429
450
 
430
- .chat-heading-2 { font-size: 1.15rem; color: var(--text-chat, var(--text-main)); }
451
+ .chat-heading-2 { font-size: 1.18rem; color: var(--text-main); }
431
452
 
432
- .chat-heading-3 { font-size: 1.05rem; color: var(--text-chat, var(--text-main)); }
453
+ .chat-heading-3 { font-size: 1.06rem; color: var(--text-main); }
433
454
 
434
455
  .chat-section-title {
435
456
  font-size: 1.02rem;
436
- font-weight: 700;
437
- color: var(--text-chat, var(--text-main));
457
+ font-weight: 600;
458
+ color: var(--text-main);
438
459
  padding-bottom: 2px;
439
- margin-top: 12px;
440
- margin-bottom: 6px;
460
+ margin-top: 14px;
461
+ margin-bottom: 8px;
441
462
  }
442
463
 
443
464
  .chat-list-item {
444
465
  display: flex;
445
466
  align-items: flex-start;
446
- gap: 8px;
447
- margin: 3px 0 3px 4px;
448
- line-height: 1.7;
467
+ gap: 10px;
468
+ margin: 4px 0 4px 4px;
469
+ line-height: 1.74;
449
470
  }
450
471
 
451
472
  .chat-list-bullet {
452
- position: relative;
453
473
  display: inline-flex;
454
474
  align-items: center;
455
475
  justify-content: center;
456
476
  flex-shrink: 0;
457
- height: 1.7em;
458
477
  width: 14px;
459
- font-size: 0.94rem;
460
- line-height: 1.7;
461
- color: transparent;
478
+ font-size: 1.1rem;
479
+ line-height: 1.6;
480
+ color: var(--text-muted);
462
481
  user-select: none;
463
482
  }
464
483
 
465
484
  .chat-list-bullet::before {
466
- content: '';
467
- position: absolute;
468
- top: 50%;
469
- left: 50%;
470
- transform: translate(-50%, -50%);
471
- width: 7px;
472
- height: 7px;
473
- border-radius: 50%;
474
- background-color: var(--accent, #10b981);
475
- box-shadow: 0 0 5px color-mix(in srgb, var(--accent, #10b981) 35%, transparent);
485
+ display: none;
476
486
  }
477
487
 
478
488
  .chat-list-number {
@@ -493,7 +503,7 @@
493
503
  }
494
504
 
495
505
  .chat-link {
496
- color: var(--accent-hover, #34d399);
506
+ color: var(--interactive-fg-hover);
497
507
  text-decoration: underline;
498
508
  text-underline-offset: 3px;
499
509
  word-break: break-all;
@@ -507,17 +517,18 @@
507
517
 
508
518
  .chat-bold-highlight {
509
519
  font-weight: 600;
510
- color: var(--text-chat, var(--text-main));
520
+ color: var(--text-chat, var(--text-main, inherit));
511
521
  }
512
522
 
513
523
  .chat-inline-code {
514
- background: color-mix(in srgb, var(--text-chat, var(--text-main)) 12%, transparent);
515
- border: 1px solid color-mix(in srgb, var(--text-chat, var(--text-main)) 24%, transparent);
516
- padding: 2px 6px;
517
- border-radius: var(--radius-xs);
524
+ background: var(--bg-surface-soft);
525
+ border: 1px solid var(--border-default);
526
+ padding: 2px 7px;
527
+ border-radius: 6px;
518
528
  font-family: 'Fira Code', monospace;
519
- font-size: 0.88em;
520
- color: var(--text-chat, var(--text-main));
529
+ font-size: 0.86em;
530
+ color: var(--text-chat);
531
+ letter-spacing: -0.01em;
521
532
  }
522
533
 
523
534
  /* Typing Indicator */
@@ -563,172 +574,8 @@
563
574
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1);
564
575
  }
565
576
 
566
- /* Slash Command Suggestions Popup */
567
-
568
- .slash-suggestions-popup {
569
- position: absolute;
570
- bottom: calc(100% + 12px);
571
- left: 20px;
572
- right: 20px;
573
- max-height: 250px;
574
- background: color-mix(in srgb, var(--card-bg, #18191c) 92%, #000 8%);
575
- border: 1px solid var(--border, rgba(255, 255, 255, 0.15));
576
- border-radius: var(--radius-2xl);
577
- box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(45, 212, 191, 0.15);
578
- display: flex;
579
- flex-direction: column;
580
- overflow: hidden;
581
- z-index: 100;
582
- backdrop-filter: blur(16px);
583
- -webkit-backdrop-filter: blur(16px);
584
- transform-origin: bottom center;
585
- animation: slashPopupFadeIn 0.22s cubic-bezier(0.16, 1, 0.3, 1);
586
- will-change: transform, opacity;
587
- }
588
-
589
- .slash-suggestions-header {
590
- display: flex;
591
- align-items: baseline;
592
- justify-content: space-between;
593
- gap: 12px;
594
- padding: 9px 16px;
595
- font-size: 0.72rem;
596
- font-weight: 700;
597
- color: var(--accent, #2dd4bf);
598
- border-bottom: 1px solid var(--border, rgba(255, 255, 255, 0.08));
599
- background: rgba(0, 0, 0, 0.3);
600
- letter-spacing: 0.04em;
601
- text-transform: uppercase;
602
- }
603
-
604
- .slash-suggestions-count {
605
- font-weight: 600;
606
- color: var(--text-muted, rgba(255, 255, 255, 0.5));
607
- letter-spacing: 0.02em;
608
- text-transform: none;
609
- }
610
-
611
- .slash-suggestions-list {
612
- overflow-y: auto;
613
- padding: 6px;
614
- display: flex;
615
- flex-direction: column;
616
- gap: 2px;
617
- scroll-behavior: smooth;
618
- }
619
-
620
- .slash-suggestions-group {
621
- display: flex;
622
- flex-direction: column;
623
- gap: 2px;
624
- }
625
-
626
- .slash-suggestions-group + .slash-suggestions-group {
627
- margin-top: 4px;
628
- }
629
-
630
- .slash-suggestions-group-label {
631
- padding: 6px 14px 3px;
632
- font-size: 0.66rem;
633
- font-weight: 700;
634
- letter-spacing: 0.06em;
635
- text-transform: uppercase;
636
- color: var(--text-muted, rgba(255, 255, 255, 0.45));
637
- }
638
-
639
- .slash-suggestion-item {
640
- display: flex;
641
- align-items: center;
642
- gap: 12px;
643
- padding: 8px 14px;
644
- border-radius: var(--radius-lg);
645
- background: transparent;
646
- border: none;
647
- text-align: left;
648
- cursor: pointer;
649
- width: 100%;
650
- transition: background 0.14s ease, box-shadow 0.14s ease;
651
- }
652
-
653
- .slash-suggestion-item:hover {
654
- background: rgba(45, 212, 191, 0.06);
655
- }
656
-
657
- .slash-suggestion-item.active {
658
- background: rgba(45, 212, 191, 0.12);
659
- box-shadow: inset 2px 0 0 var(--accent, #2dd4bf);
660
- }
661
-
662
- .slash-cmd-name {
663
- font-size: 0.84rem;
664
- font-weight: 600;
665
- font-family: var(--font-mono, monospace);
666
- color: var(--accent, #2dd4bf);
667
- min-width: 128px;
668
- flex-shrink: 0;
669
- white-space: nowrap;
670
- }
671
-
672
- .slash-suggestion-item.active .slash-cmd-name {
673
- color: #5eead4;
674
- }
675
-
676
- .skill-badge {
677
- font-size: 0.7rem;
678
- font-weight: 600;
679
- color: var(--accent, #2dd4bf);
680
- background: rgba(45, 212, 191, 0.16);
681
- padding: 2px 7px;
682
- border-radius: var(--radius-sm);
683
- flex-shrink: 0;
684
- }
685
-
686
- .slash-cmd-body {
687
- display: flex;
688
- flex-direction: column;
689
- gap: 1px;
690
- min-width: 0;
691
- flex: 1;
692
- }
693
-
694
- .slash-cmd-usage {
695
- font-size: 0.72rem;
696
- font-family: var(--font-mono, monospace);
697
- color: var(--text-muted, rgba(255, 255, 255, 0.4));
698
- overflow: hidden;
699
- text-overflow: ellipsis;
700
- white-space: nowrap;
701
- }
702
-
703
- .slash-suggestions-empty {
704
- display: flex;
705
- align-items: center;
706
- gap: 10px;
707
- padding: 12px 16px;
708
- font-size: 0.8rem;
709
- color: var(--text-soft, rgba(255, 255, 255, 0.6));
710
- }
711
-
712
- .slash-suggestions-empty .slash-cmd-name {
713
- min-width: 0;
714
- }
715
-
716
- .slash-suggestions-empty code {
717
- font-family: var(--font-mono, monospace);
718
- background: rgba(255, 255, 255, 0.08);
719
- padding: 1px 6px;
720
- border-radius: var(--radius-sm);
721
- }
722
-
723
- .slash-cmd-desc {
724
- font-size: 0.8rem;
725
- color: var(--text-soft, rgba(255, 255, 255, 0.6));
726
- overflow: hidden;
727
- text-overflow: ellipsis;
728
- white-space: nowrap;
729
- }
730
-
731
577
  #chat-form {
578
+ position: relative;
732
579
  display: flex;
733
580
  gap: 12px;
734
581
  background: rgba(0, 0, 0, 0.15);
@@ -772,11 +619,10 @@
772
619
  }
773
620
 
774
621
  #send-btn,
775
- #mic-btn,
776
622
  #chat-tool-btn,
777
623
  #screen-capture-btn {
778
624
  background: var(--accent);
779
- color: white;
625
+ color: var(--text-on-accent);
780
626
  border: none;
781
627
  width: 44px;
782
628
  height: 40px;
@@ -790,7 +636,6 @@
790
636
  }
791
637
 
792
638
  #send-btn:hover,
793
- #mic-btn:hover,
794
639
  #chat-tool-btn:hover,
795
640
  #screen-capture-btn:hover {
796
641
  background: var(--accent-hover);
@@ -798,18 +643,11 @@
798
643
  }
799
644
 
800
645
  #send-btn:active,
801
- #mic-btn:active,
802
646
  #chat-tool-btn:active,
803
647
  #screen-capture-btn:active {
804
648
  transform: scale(0.95);
805
649
  }
806
650
 
807
- #mic-btn.listening {
808
- background: #ef4444;
809
- /* Red color when listening */
810
- animation: pulse-mic 1.5s infinite;
811
- }
812
-
813
651
  #chat-tool-btn,
814
652
  #screen-capture-btn {
815
653
  background: transparent;
@@ -820,7 +658,7 @@
820
658
  #chat-tool-btn:hover,
821
659
  #screen-capture-btn:hover {
822
660
  background: color-mix(in srgb, var(--accent) 15%, transparent);
823
- color: var(--accent);
661
+ color: var(--interactive-fg);
824
662
  border-color: color-mix(in srgb, var(--accent) 40%, transparent);
825
663
  }
826
664
 
@@ -867,11 +705,11 @@
867
705
  ========================================================================== */
868
706
  .approval-card {
869
707
  width: 100%;
870
- background: var(--panel-bg, #18181b);
871
- border: 1px solid var(--border-light, rgba(255, 255, 255, 0.12));
708
+ background: var(--bg-surface-raised);
709
+ border: 1px solid var(--border-default);
872
710
  border-radius: var(--radius-xl, 14px);
873
711
  padding: 16px 18px;
874
- box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
712
+ box-shadow: var(--shadow-md);
875
713
  display: flex;
876
714
  flex-direction: column;
877
715
  align-items: stretch;
@@ -884,8 +722,8 @@
884
722
  }
885
723
 
886
724
  .approval-card[data-tier="dangerous"] {
887
- border-color: rgba(255, 255, 255, 0.15);
888
- box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
725
+ border-color: var(--border-strong);
726
+ box-shadow: var(--shadow-md);
889
727
  }
890
728
 
891
729
  .approval-card-header {
@@ -908,8 +746,8 @@
908
746
  width: 28px;
909
747
  height: 28px;
910
748
  border-radius: 7px;
911
- background: rgba(255, 255, 255, 0.06);
912
- border: 1px solid rgba(255, 255, 255, 0.1);
749
+ background: var(--bg-surface-soft);
750
+ border: 1px solid var(--border-subtle);
913
751
  display: flex;
914
752
  align-items: center;
915
753
  justify-content: center;
@@ -920,7 +758,7 @@
920
758
  .approval-title-text {
921
759
  font-size: 0.92rem;
922
760
  font-weight: 600;
923
- color: var(--text-main, #f4f4f5);
761
+ color: var(--text-main);
924
762
  letter-spacing: -0.01em;
925
763
  text-align: left;
926
764
  }
@@ -932,10 +770,10 @@
932
770
  font-size: 0.68rem;
933
771
  font-weight: 600;
934
772
  letter-spacing: 0.04em;
935
- text-transform: uppercase;
936
- background: rgba(255, 255, 255, 0.06);
937
- color: var(--text-muted, #a1a1aa);
938
- border: 1px solid rgba(255, 255, 255, 0.1);
773
+ text-transform: none;
774
+ background: var(--bg-surface-soft);
775
+ color: var(--text-muted);
776
+ border: 1px solid var(--border-subtle);
939
777
  }
940
778
 
941
779
  .approval-badge-chip.dangerous,
@@ -944,22 +782,22 @@
944
782
  .approval-badge-chip.mcp,
945
783
  .approval-badge-chip.command,
946
784
  .approval-badge-chip.default {
947
- background: rgba(255, 255, 255, 0.06);
948
- color: var(--text-muted, #a1a1aa);
949
- border-color: rgba(255, 255, 255, 0.1);
785
+ background: var(--bg-surface-soft);
786
+ color: var(--text-muted);
787
+ border-color: var(--border-subtle);
950
788
  }
951
789
 
952
790
  .approval-content-box {
953
791
  width: 100%;
954
792
  box-sizing: border-box;
955
- background: rgba(0, 0, 0, 0.32);
956
- border: 1px solid rgba(255, 255, 255, 0.08);
793
+ background: var(--bg-surface-soft);
794
+ border: 1px solid var(--border-subtle);
957
795
  border-radius: 9px;
958
796
  padding: 10px 14px;
959
797
  font-family: 'Fira Code', ui-monospace, monospace;
960
798
  font-size: 0.84rem;
961
799
  line-height: 1.5;
962
- color: var(--text-main, #e4e4e7);
800
+ color: var(--text-main);
963
801
  white-space: pre-wrap;
964
802
  word-break: break-word;
965
803
  max-height: 240px;
@@ -981,7 +819,7 @@
981
819
  .approval-reason-text {
982
820
  width: 100%;
983
821
  font-size: 0.78rem;
984
- color: var(--text-muted, #94a3b8);
822
+ color: var(--text-muted);
985
823
  line-height: 1.4;
986
824
  margin-top: -4px;
987
825
  text-align: left;
@@ -1011,8 +849,8 @@
1011
849
  justify-content: space-between;
1012
850
  width: 100%;
1013
851
  padding: 10px 13px;
1014
- background: rgba(255, 255, 255, 0.035);
1015
- border: 1px solid rgba(255, 255, 255, 0.08);
852
+ background: var(--bg-surface-soft);
853
+ border: 1px solid var(--border-subtle);
1016
854
  border-radius: 10px;
1017
855
  cursor: pointer;
1018
856
  text-align: left;
@@ -1021,21 +859,21 @@
1021
859
  }
1022
860
 
1023
861
  .claude-choice-card:hover {
1024
- background: rgba(255, 255, 255, 0.075);
1025
- border-color: rgba(255, 255, 255, 0.22);
862
+ background: var(--bg-surface-hover);
863
+ border-color: var(--border-strong);
1026
864
  transform: translateY(-1px);
1027
865
  }
1028
866
 
1029
867
  .claude-choice-card.variant-approve:hover,
1030
868
  .claude-choice-card.variant-session:hover,
1031
869
  .claude-choice-card.variant-cancel:hover {
1032
- background: rgba(255, 255, 255, 0.075);
1033
- border-color: rgba(255, 255, 255, 0.22);
870
+ background: var(--bg-surface-hover);
871
+ border-color: var(--border-strong);
1034
872
  }
1035
873
 
1036
874
  .claude-choice-card.selected {
1037
- background: rgba(255, 255, 255, 0.1);
1038
- border-color: rgba(255, 255, 255, 0.35);
875
+ background: var(--bg-surface-hover);
876
+ border-color: var(--border-strong);
1039
877
  box-shadow: none;
1040
878
  }
1041
879
 
@@ -1051,29 +889,29 @@
1051
889
  width: 22px;
1052
890
  height: 22px;
1053
891
  border-radius: 6px;
1054
- background: rgba(255, 255, 255, 0.06);
1055
- border: 1px solid rgba(255, 255, 255, 0.12);
892
+ background: var(--bg-surface-soft);
893
+ border: 1px solid var(--border-default);
1056
894
  display: flex;
1057
895
  align-items: center;
1058
896
  justify-content: center;
1059
897
  font-family: 'Fira Code', ui-monospace, monospace;
1060
898
  font-size: 0.72rem;
1061
899
  font-weight: 700;
1062
- color: var(--text-muted, #a1a1aa);
900
+ color: var(--text-muted);
1063
901
  flex-shrink: 0;
1064
902
  transition: all 0.15s ease;
1065
903
  }
1066
904
 
1067
905
  .claude-choice-card:hover .claude-choice-key {
1068
- color: #ffffff;
1069
- border-color: rgba(255, 255, 255, 0.3);
1070
- background: rgba(255, 255, 255, 0.12);
906
+ color: var(--text-main);
907
+ border-color: var(--border-strong);
908
+ background: var(--bg-surface-hover);
1071
909
  }
1072
910
 
1073
911
  .claude-choice-card.selected .claude-choice-key {
1074
- background: rgba(255, 255, 255, 0.2);
1075
- color: #ffffff;
1076
- border-color: rgba(255, 255, 255, 0.4);
912
+ background: var(--bg-surface-hover);
913
+ color: var(--text-main);
914
+ border-color: var(--border-strong);
1077
915
  }
1078
916
 
1079
917
  .claude-choice-text {
@@ -1087,14 +925,14 @@
1087
925
  .claude-choice-title {
1088
926
  font-size: 0.85rem;
1089
927
  font-weight: 650;
1090
- color: var(--text-main, #f4f4f5);
928
+ color: var(--text-main);
1091
929
  line-height: 1.3;
1092
930
  text-align: left;
1093
931
  }
1094
932
 
1095
933
  .claude-choice-desc {
1096
934
  font-size: 0.74rem;
1097
- color: var(--text-muted, #a1a1aa);
935
+ color: var(--text-muted);
1098
936
  line-height: 1.35;
1099
937
  text-align: left;
1100
938
  }
@@ -1110,12 +948,12 @@
1110
948
  }
1111
949
 
1112
950
  .claude-choice-card:hover .claude-choice-right {
1113
- color: var(--text-main, #f4f4f5);
951
+ color: var(--text-main);
1114
952
  transform: translateX(2px);
1115
953
  }
1116
954
 
1117
955
  .claude-choice-card.selected .claude-choice-right {
1118
- color: #ffffff;
956
+ color: var(--text-main);
1119
957
  }
1120
958
 
1121
959
  .claude-choice-custom-box {
@@ -1130,10 +968,10 @@
1130
968
  width: 100%;
1131
969
  box-sizing: border-box;
1132
970
  padding: 9px 12px;
1133
- background: rgba(0, 0, 0, 0.25);
1134
- border: 1px solid rgba(255, 255, 255, 0.1);
971
+ background: var(--bg-input);
972
+ border: 1px solid var(--border-default);
1135
973
  border-radius: 8px;
1136
- color: var(--text-main, #f4f4f5);
974
+ color: var(--text-main);
1137
975
  font-size: 0.84rem;
1138
976
  font-family: inherit;
1139
977
  outline: none;
@@ -1141,12 +979,12 @@
1141
979
  }
1142
980
 
1143
981
  .claude-choice-input:focus {
1144
- border-color: var(--accent, #10b981);
1145
- box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.2);
982
+ border-color: var(--accent);
983
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent);
1146
984
  }
1147
985
 
1148
986
  .approval-btn {
1149
- border: 1px solid rgba(255, 255, 255, 0.14);
987
+ border: 1px solid var(--border-default);
1150
988
  border-radius: var(--radius-sm);
1151
989
  color: var(--text-main);
1152
990
  cursor: pointer;
@@ -1173,6 +1011,7 @@
1173
1011
  gap: 8px;
1174
1012
  margin-bottom: 8px;
1175
1013
  margin-top: 0;
1014
+ min-width: 0;
1176
1015
  max-width: 100%;
1177
1016
  }
1178
1017
 
@@ -1189,15 +1028,18 @@
1189
1028
  gap: 8px;
1190
1029
  justify-content: flex-start;
1191
1030
  line-height: 1.2;
1192
- padding: 2px 0;
1031
+ padding: 5px 0;
1193
1032
  text-align: left;
1194
- width: fit-content;
1033
+ width: 100%;
1195
1034
  }
1196
1035
 
1197
1036
  .agent-activity-toggle:hover {
1198
1037
  color: var(--text-soft);
1199
1038
  }
1200
1039
 
1040
+ .agent-activity-toggle-chevron { flex: 0 0 auto; color: var(--text-muted); transition: transform 0.18s ease; }
1041
+ .agent-activity-toggle-chevron.is-open { transform: rotate(180deg); }
1042
+
1201
1043
  .agent-activity-toggle:focus-visible {
1202
1044
  outline: 1px solid var(--border-light);
1203
1045
  outline-offset: 3px;
@@ -1209,6 +1051,7 @@
1209
1051
  border-radius: 0;
1210
1052
  color: var(--text-main);
1211
1053
  width: 100%;
1054
+ min-width: 0;
1212
1055
  max-width: 100%;
1213
1056
  padding: 4px 0;
1214
1057
  box-shadow: none;
@@ -1221,13 +1064,13 @@
1221
1064
  display: flex;
1222
1065
  align-items: center;
1223
1066
  gap: 6px;
1224
- color: var(--accent);
1067
+ color: var(--interactive-fg);
1225
1068
  font-weight: 500;
1226
1069
  transition: color 0.15s ease;
1227
1070
  }
1228
1071
 
1229
1072
  .file-changes-toggle:hover {
1230
- color: var(--accent-hover, var(--accent));
1073
+ color: var(--interactive-fg-hover);
1231
1074
  }
1232
1075
 
1233
1076
  .file-changes-rewind-btn {
@@ -1289,7 +1132,7 @@
1289
1132
  }
1290
1133
 
1291
1134
  .file-changes-filename.is-new {
1292
- color: var(--accent);
1135
+ color: var(--interactive-fg);
1293
1136
  }
1294
1137
 
1295
1138
  .file-changes-dirpath {
@@ -1302,7 +1145,7 @@
1302
1145
  .file-changes-badge-new {
1303
1146
  font-size: 0.68rem;
1304
1147
  font-weight: 700;
1305
- color: var(--accent);
1148
+ color: var(--interactive-fg);
1306
1149
  margin-left: 8px;
1307
1150
  padding: 1px 6px;
1308
1151
  border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent);
@@ -1312,7 +1155,7 @@
1312
1155
  }
1313
1156
 
1314
1157
  .file-changes-count-add {
1315
- color: var(--accent);
1158
+ color: var(--interactive-fg);
1316
1159
  font-weight: 600;
1317
1160
  }
1318
1161
 
@@ -1326,10 +1169,10 @@
1326
1169
  align-items: center;
1327
1170
  gap: 3px;
1328
1171
  padding: 1px 6px;
1329
- fontSize: 0.68rem;
1172
+ font-size: 0.68rem;
1330
1173
  border-radius: var(--radius-xs, 4px);
1331
1174
  background: color-mix(in srgb, var(--accent) 14%, transparent);
1332
- color: var(--accent);
1175
+ color: var(--interactive-fg);
1333
1176
  border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
1334
1177
  cursor: pointer;
1335
1178
  font-weight: 500;
@@ -1338,7 +1181,7 @@
1338
1181
 
1339
1182
  .file-changes-preview-btn:hover {
1340
1183
  background: color-mix(in srgb, var(--accent) 22%, transparent);
1341
- color: var(--accent-hover, var(--accent));
1184
+ color: var(--interactive-fg-hover);
1342
1185
  }
1343
1186
 
1344
1187
  .file-changes-diff-box {
@@ -1383,7 +1226,7 @@
1383
1226
  }
1384
1227
 
1385
1228
  .file-changes-diff-sign-add {
1386
- color: var(--accent);
1229
+ color: var(--interactive-fg);
1387
1230
  margin-right: 6px;
1388
1231
  user-select: none;
1389
1232
  font-weight: 600;
@@ -1391,7 +1234,6 @@
1391
1234
  min-width: 10px;
1392
1235
  }
1393
1236
 
1394
-
1395
1237
  .agent-activity-card-history {
1396
1238
  padding-top: 0;
1397
1239
  }
@@ -1489,28 +1331,27 @@
1489
1331
  .agent-activity-list {
1490
1332
  display: flex;
1491
1333
  flex-direction: column;
1492
- border: 1px solid var(--border);
1493
- border-radius: var(--radius-md);
1494
- overflow: hidden;
1495
- background: var(--panel-bg, #141416);
1334
+ gap: 6px;
1335
+ border: none;
1336
+ border-radius: 0;
1337
+ background: transparent;
1338
+ overflow: visible;
1496
1339
  }
1497
1340
 
1498
1341
  .agent-activity-item {
1499
1342
  display: flex;
1500
1343
  align-items: center;
1501
1344
  gap: 10px;
1502
- min-height: 34px;
1345
+ min-height: 36px;
1503
1346
  padding: 6px 12px;
1504
- border-bottom: 1px solid var(--border);
1347
+ border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
1348
+ border-radius: var(--radius-sm, 6px);
1349
+ background: color-mix(in srgb, var(--panel-soft) 40%, transparent);
1505
1350
  color: var(--text-soft);
1506
- font-size: 0.84rem;
1351
+ font-size: 0.82rem;
1507
1352
  transition: background 0.15s ease, color 0.15s ease;
1508
1353
  }
1509
1354
 
1510
- .agent-activity-item:last-child {
1511
- border-bottom: 0;
1512
- }
1513
-
1514
1355
  .agent-activity-item:hover {
1515
1356
  background: var(--panel-soft);
1516
1357
  color: var(--text-main);
@@ -1581,7 +1422,7 @@
1581
1422
  .agent-activity-inline-result {
1582
1423
  font-family: var(--font-mono, ui-monospace, monospace);
1583
1424
  font-size: 0.76rem;
1584
- color: var(--accent, #38bdf8);
1425
+ color: var(--interactive-fg);
1585
1426
  font-weight: 500;
1586
1427
  flex-shrink: 0;
1587
1428
  background: color-mix(in srgb, var(--accent, #38bdf8) 10%, transparent);
@@ -1599,11 +1440,11 @@
1599
1440
  }
1600
1441
 
1601
1442
  .agent-activity-status-check {
1602
- color: var(--accent, #10b981);
1443
+ color: var(--interactive-fg);
1603
1444
  }
1604
1445
 
1605
1446
  .agent-activity-status-spin {
1606
- color: var(--accent, #38bdf8);
1447
+ color: var(--interactive-fg);
1607
1448
  animation: spin 1.2s linear infinite;
1608
1449
  }
1609
1450
 
@@ -1647,11 +1488,10 @@
1647
1488
  /* ── Grouped Activity Styling ───────────────────────────── */
1648
1489
 
1649
1490
  .agent-activity-group {
1650
- border-bottom: 1px solid var(--border);
1651
- }
1652
-
1653
- .agent-activity-group:last-child {
1654
- border-bottom: 0;
1491
+ border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
1492
+ border-radius: var(--radius-sm, 6px);
1493
+ overflow: hidden;
1494
+ background: var(--bg-surface-soft, rgba(255, 255, 255, 0.03));
1655
1495
  }
1656
1496
 
1657
1497
  .agent-activity-group-header {
@@ -1695,9 +1535,9 @@
1695
1535
  font-size: 0.68rem;
1696
1536
  font-weight: 600;
1697
1537
  letter-spacing: 0.02em;
1698
- color: var(--text-muted, #94a3b8);
1699
- background: rgba(255, 255, 255, 0.05);
1700
- border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
1538
+ color: var(--text-muted);
1539
+ background: var(--bg-surface-soft);
1540
+ border: 1px solid var(--border-subtle);
1701
1541
  border-radius: 10px;
1702
1542
  }
1703
1543
 
@@ -1720,8 +1560,8 @@
1720
1560
  }
1721
1561
 
1722
1562
  .agent-activity-subitem:hover {
1723
- background: rgba(255, 255, 255, 0.04);
1724
- color: var(--text-main, #f1f5f9);
1563
+ background: var(--bg-surface-soft);
1564
+ color: var(--text-main);
1725
1565
  }
1726
1566
 
1727
1567
  .agent-activity-tree-bullet {
@@ -1779,7 +1619,7 @@
1779
1619
 
1780
1620
  .thinking-block {
1781
1621
  margin: 6px 0 10px 0;
1782
- border-radius: var(--radius-md, 8px);
1622
+ border-radius: var(--radius-xl, 16px);
1783
1623
  border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
1784
1624
  background: var(--panel-soft, rgba(255, 255, 255, 0.02));
1785
1625
  overflow: hidden;
@@ -1799,13 +1639,14 @@
1799
1639
  .thinking-block-header {
1800
1640
  display: flex;
1801
1641
  align-items: center;
1802
- gap: 8px;
1642
+ gap: 10px;
1803
1643
  width: 100%;
1804
- padding: 7px 12px;
1805
- background: transparent;
1644
+ min-height: 36px;
1645
+ padding: 6px 12px;
1646
+ background: color-mix(in srgb, var(--panel-soft) 40%, transparent);
1806
1647
  border: 0;
1807
1648
  color: var(--text-muted, #94a3b8);
1808
- font-size: 0.76rem;
1649
+ font-size: 0.82rem;
1809
1650
  font-weight: 500;
1810
1651
  cursor: pointer;
1811
1652
  text-align: left;
@@ -1814,8 +1655,8 @@
1814
1655
  }
1815
1656
 
1816
1657
  .thinking-block-header:hover {
1817
- background: rgba(255, 255, 255, 0.03);
1818
- color: var(--text-main, #f1f5f9);
1658
+ background: var(--panel-soft);
1659
+ color: var(--text-main);
1819
1660
  }
1820
1661
 
1821
1662
  .thinking-block-icon {
@@ -1894,7 +1735,7 @@
1894
1735
  font-size: 11px;
1895
1736
  font-weight: 600;
1896
1737
  letter-spacing: 0.03em;
1897
- text-transform: uppercase;
1738
+ text-transform: none;
1898
1739
  color: var(--text-muted, #94a3b8);
1899
1740
  opacity: 0.65;
1900
1741
  margin-bottom: 4px;
@@ -1952,13 +1793,8 @@
1952
1793
  .thinking-block-step-body strong {
1953
1794
  font-size: inherit;
1954
1795
  font-weight: 600;
1955
- color: var(--text-main, #e2e8f0);
1956
- opacity: 0.92;
1957
- }
1958
-
1959
- [data-theme="light"] .thinking-block-content .chat-bold-highlight {
1960
- color: var(--text-main, #334155);
1961
- opacity: 0.92;
1796
+ color: var(--text-secondary);
1797
+ opacity: 1;
1962
1798
  }
1963
1799
 
1964
1800
  .thinking-block-content .chat-list-block {
@@ -2086,10 +1922,134 @@
2086
1922
  }
2087
1923
  }
2088
1924
 
2089
- /* Smart Context Toggle */
1925
+ /* Extended Thinking inherits clean neutral styling directly from .thinking-block */
2090
1926
 
2091
- .smart-context-bar {
2092
- display: flex;
1927
+ /* Inline Thought Note (short agent notes rendered as normal plain text) */
1928
+
1929
+ .inline-thought-note {
1930
+ display: block;
1931
+ padding: 4px 0 6px 0;
1932
+ margin: 4px 0 6px 0;
1933
+ background: transparent;
1934
+ border: none;
1935
+ border-radius: 0;
1936
+ color: var(--text-main, #f1f5f9);
1937
+ font-size: 0.92rem;
1938
+ line-height: 1.6;
1939
+ animation: agent-activity-slide-up-fade 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
1940
+ }
1941
+
1942
+ .inline-thought-note-text {
1943
+ word-break: break-word;
1944
+ white-space: pre-wrap;
1945
+ color: inherit;
1946
+ font-size: inherit;
1947
+ line-height: inherit;
1948
+ }
1949
+
1950
+ .inline-thought-note .chat-formatted-body {
1951
+ font-size: inherit;
1952
+ color: inherit;
1953
+ line-height: inherit;
1954
+ }
1955
+
1956
+ .inline-thought-note .chat-formatted-body p {
1957
+ margin: 0 0 6px 0;
1958
+ color: inherit;
1959
+ font-size: inherit;
1960
+ line-height: inherit;
1961
+ }
1962
+
1963
+ .inline-thought-note .chat-formatted-body p:last-child {
1964
+ margin-bottom: 0;
1965
+ }
1966
+
1967
+ .agent-activity-timeline {
1968
+ display: flex;
1969
+ flex-direction: column;
1970
+ gap: 4px;
1971
+ margin-bottom: 8px;
1972
+ }
1973
+
1974
+ /* Unified Timeline: Extended Thinking row inside Activity Drawer */
1975
+ .agent-activity-thought-step {
1976
+ margin: 0;
1977
+ border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
1978
+ border-radius: var(--radius-sm, 6px);
1979
+ background: var(--bg-surface-soft, rgba(255, 255, 255, 0.03));
1980
+ overflow: hidden;
1981
+ }
1982
+
1983
+ .agent-activity-thought-header {
1984
+ display: flex;
1985
+ align-items: center;
1986
+ gap: 10px;
1987
+ min-height: 36px;
1988
+ padding: 6px 12px;
1989
+ border-radius: var(--radius-sm, 6px);
1990
+ cursor: pointer;
1991
+ color: var(--text-muted, #94a3b8);
1992
+ font-size: 0.82rem;
1993
+ font-weight: 500;
1994
+ background: color-mix(in srgb, var(--panel-soft) 40%, transparent);
1995
+ transition: background 0.15s ease, color 0.15s ease;
1996
+ user-select: none;
1997
+ }
1998
+
1999
+ .agent-activity-thought-header:hover {
2000
+ background: var(--panel-soft);
2001
+ color: var(--text-main, #f1f5f9);
2002
+ }
2003
+
2004
+ .agent-activity-thought-header .agent-activity-kind-icon {
2005
+ color: var(--text-muted, #94a3b8);
2006
+ }
2007
+
2008
+ .agent-activity-thought-title {
2009
+ flex: 1;
2010
+ min-width: 0;
2011
+ font-size: 0.82rem;
2012
+ font-weight: 500;
2013
+ color: var(--text-main, #f1f5f9);
2014
+ overflow: hidden;
2015
+ text-overflow: ellipsis;
2016
+ white-space: nowrap;
2017
+ letter-spacing: 0.01em;
2018
+ }
2019
+
2020
+ .agent-activity-thought-meta {
2021
+ color: var(--text-muted);
2022
+ font-weight: 500;
2023
+ }
2024
+
2025
+ .agent-activity-thought-cursor {
2026
+ display: inline-block;
2027
+ margin-left: 2px;
2028
+ color: var(--interactive-fg);
2029
+ animation: agent-thought-cursor-blink 0.9s steps(1) infinite;
2030
+ }
2031
+
2032
+ @keyframes agent-thought-cursor-blink {
2033
+ 50% { opacity: 0; }
2034
+ }
2035
+
2036
+ .agent-activity-thought-body {
2037
+ padding: 8px 12px 8px 28px;
2038
+ font-size: 0.8rem;
2039
+ line-height: 1.5;
2040
+ color: var(--text-muted, #cbd5e1);
2041
+ background: rgba(0, 0, 0, 0.12);
2042
+ border-radius: var(--radius-sm, 6px);
2043
+ margin: 2px 0 4px 0;
2044
+ max-height: 300px;
2045
+ overflow-y: auto;
2046
+ user-select: text;
2047
+ }
2048
+
2049
+ /* Smart Context Toggle */
2050
+
2051
+ .smart-context-bar {
2052
+ display: flex;
2093
2053
  align-items: center;
2094
2054
  flex-wrap: wrap;
2095
2055
  gap: 12px;
@@ -2104,7 +2064,7 @@
2104
2064
  }
2105
2065
 
2106
2066
  .smart-context-control.is-active .smart-context-label {
2107
- color: var(--accent);
2067
+ color: var(--interactive-fg);
2108
2068
  }
2109
2069
 
2110
2070
  .smart-context-label {
@@ -2132,6 +2092,7 @@
2132
2092
  cursor: pointer;
2133
2093
  top: 0; left: 0; right: 0; bottom: 0;
2134
2094
  background-color: rgba(255, 255, 255, 0.2);
2095
+ border: 1px solid transparent;
2135
2096
  transition: .4s;
2136
2097
  }
2137
2098
 
@@ -2143,15 +2104,18 @@
2143
2104
  left: 3px;
2144
2105
  bottom: 3px;
2145
2106
  background-color: white;
2107
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
2146
2108
  transition: .4s;
2147
2109
  }
2148
2110
 
2149
2111
  input:checked + .slider {
2150
2112
  background-color: var(--accent);
2113
+ border-color: color-mix(in srgb, var(--accent) 70%, var(--border-strong, rgba(255, 255, 255, 0.2)));
2151
2114
  }
2152
2115
 
2153
2116
  input:checked + .slider:before {
2154
2117
  transform: translateX(14px);
2118
+ background-color: var(--accent-contrast, #ffffff);
2155
2119
  }
2156
2120
 
2157
2121
  .slider.round {
@@ -2246,12 +2210,12 @@ input:checked + .slider:before {
2246
2210
  transform 0.58s cubic-bezier(0.16, 1, 0.3, 1);
2247
2211
  }
2248
2212
 
2249
- .assistant-workspace.model-hidden .message {
2213
+ .assistant-workspace.chat-only .message {
2250
2214
  max-width: 100%;
2251
2215
  }
2252
2216
 
2253
2217
  .conversation-panel.is-empty {
2254
- justify-content: center;
2218
+ justify-content: flex-start;
2255
2219
  }
2256
2220
 
2257
2221
  .conversation-panel.is-empty .chat-container {
@@ -2264,6 +2228,41 @@ input:checked + .slider:before {
2264
2228
  transform: translateY(-7vh);
2265
2229
  }
2266
2230
 
2231
+ .empty-chat-prompt-wrap {
2232
+ display: flex;
2233
+ flex-direction: column;
2234
+ align-items: center;
2235
+ gap: 12px;
2236
+ margin: 0 0 28px;
2237
+ }
2238
+
2239
+ .empty-chat-prompt-wrap .empty-chat-prompt {
2240
+ margin: 0;
2241
+ }
2242
+
2243
+ .empty-chat-project-badge {
2244
+ display: inline-flex;
2245
+ align-items: center;
2246
+ gap: 7px;
2247
+ padding: 5px 14px;
2248
+ background: rgba(255, 255, 255, 0.05);
2249
+ border: 1px solid rgba(255, 255, 255, 0.08);
2250
+ border-radius: 9999px;
2251
+ font-size: 0.85rem;
2252
+ color: var(--text-muted, #94a3b8);
2253
+ letter-spacing: -0.01em;
2254
+ }
2255
+
2256
+ .empty-chat-project-badge svg {
2257
+ color: var(--flavor-teal, #2dd4bf);
2258
+ flex-shrink: 0;
2259
+ }
2260
+
2261
+ .empty-chat-project-badge strong {
2262
+ color: var(--text-primary, #f1f5f9);
2263
+ font-weight: 600;
2264
+ }
2265
+
2267
2266
  .empty-chat-prompt {
2268
2267
  margin: 0 0 28px;
2269
2268
  color: var(--text-main);
@@ -2312,14 +2311,14 @@ input:checked + .slider:before {
2312
2311
 
2313
2312
  .user-message .message-bubble {
2314
2313
  background: linear-gradient(135deg, var(--surface-strong), color-mix(in srgb, var(--accent) 16%, var(--surface-strong)));
2315
- border: 1px solid rgba(255, 255, 255, 0.08);
2316
- border-radius: var(--radius-md);
2314
+ border: 1px solid var(--border-default);
2315
+ border-radius: 22px 22px 6px 22px;
2317
2316
  color: var(--text-main);
2318
2317
  box-shadow: none;
2319
2318
  }
2320
2319
 
2321
2320
  .provider-badge {
2322
- color: var(--accent-hover);
2321
+ color: var(--interactive-fg-hover);
2323
2322
  }
2324
2323
 
2325
2324
  /* Force AI replies to render as plain inline text (no bubble/frame). */
@@ -2341,35 +2340,644 @@ input:checked + .slider:before {
2341
2340
  pointer-events: auto;
2342
2341
  }
2343
2342
 
2343
+ /* A compact, reviewable handoff between the latest agent run and the next prompt. */
2344
+ .composer-change-status {
2345
+ display: flex;
2346
+ align-items: center;
2347
+ justify-content: space-between;
2348
+ gap: 10px;
2349
+ max-width: calc(100% - 28px);
2350
+ min-height: 30px;
2351
+ margin: 0 auto 8px;
2352
+ padding: 5px 11px;
2353
+ color: var(--text-secondary);
2354
+ font: inherit;
2355
+ font-size: 0.72rem;
2356
+ font-weight: 600;
2357
+ line-height: 1.25;
2358
+ text-align: left;
2359
+ background: var(--bg-surface-raised);
2360
+ border: 1px solid var(--border-subtle);
2361
+ border-radius: var(--radius-full);
2362
+ box-shadow: var(--shadow-xs);
2363
+ cursor: pointer;
2364
+ transition: border-color 140ms ease, color 140ms ease, box-shadow 140ms ease;
2365
+ }
2366
+
2367
+ .composer-change-status:hover {
2368
+ color: var(--text-primary);
2369
+ border-color: var(--border-strong);
2370
+ box-shadow: var(--shadow-sm);
2371
+ }
2372
+
2373
+ .composer-change-status:focus-visible {
2374
+ outline: 2px solid var(--focus-ring);
2375
+ outline-offset: 2px;
2376
+ }
2377
+
2378
+ .composer-change-status-copy,
2379
+ .composer-change-status-counts {
2380
+ display: inline-flex;
2381
+ align-items: center;
2382
+ min-width: 0;
2383
+ }
2384
+
2385
+ .composer-change-status-copy {
2386
+ gap: 7px;
2387
+ overflow: hidden;
2388
+ }
2389
+
2390
+ .composer-change-status-copy > span:last-child {
2391
+ overflow: hidden;
2392
+ text-overflow: ellipsis;
2393
+ white-space: nowrap;
2394
+ }
2395
+
2396
+ .composer-change-status-counts {
2397
+ flex: 0 0 auto;
2398
+ gap: 5px;
2399
+ font-family: var(--font-mono);
2400
+ font-size: 0.94em;
2401
+ }
2402
+
2403
+ .composer-change-status-counts strong {
2404
+ color: var(--status-success);
2405
+ }
2406
+
2407
+ .composer-change-status-counts em {
2408
+ color: var(--status-error);
2409
+ font-style: normal;
2410
+ }
2411
+
2412
+ .composer-change-status.is-live {
2413
+ color: var(--interactive-fg-hover);
2414
+ border-color: var(--accent-border);
2415
+ }
2416
+
2417
+ .composer-change-status-spinner {
2418
+ width: 8px;
2419
+ height: 8px;
2420
+ flex: 0 0 auto;
2421
+ border: 1.5px solid var(--accent-border);
2422
+ border-top-color: var(--interactive-fg-hover);
2423
+ border-radius: 50%;
2424
+ animation: composer-change-status-spin 700ms linear infinite;
2425
+ }
2426
+
2427
+ @keyframes composer-change-status-spin {
2428
+ to { transform: rotate(360deg); }
2429
+ }
2430
+
2431
+ @media (prefers-reduced-motion: reduce) {
2432
+ .composer-change-status,
2433
+ .composer-change-status-spinner {
2434
+ transition: none;
2435
+ animation: none;
2436
+ }
2437
+ }
2438
+
2439
+ /* Project context is the first row of the composer, not a promotional CTA. */
2440
+ .project-context-row {
2441
+ position: relative;
2442
+ min-width: 0;
2443
+ display: flex;
2444
+ align-items: center;
2445
+ gap: 6px;
2446
+ min-height: 44px;
2447
+ padding: 5px 8px;
2448
+ background: var(--input-bg);
2449
+ border: 1px solid var(--border);
2450
+ border-bottom: 0;
2451
+ border-radius: var(--radius-xl) var(--radius-xl) 0 0;
2452
+ }
2453
+
2454
+ .project-context-row + .smart-context-bar {
2455
+ border-top-color: var(--border-subtle);
2456
+ border-radius: 0;
2457
+ }
2458
+
2459
+ .git-branch-selector {
2460
+ position: relative;
2461
+ display: flex;
2462
+ flex: 0 1 auto;
2463
+ min-width: 0;
2464
+ max-width: 38%;
2465
+ }
2466
+
2467
+ .git-branch-trigger {
2468
+ min-width: 0;
2469
+ min-height: 32px;
2470
+ max-width: 100%;
2471
+ padding: 0 9px;
2472
+ display: flex;
2473
+ align-items: center;
2474
+ gap: 7px;
2475
+ color: var(--text-secondary);
2476
+ background: transparent;
2477
+ border: 0;
2478
+ border-radius: var(--radius-md);
2479
+ cursor: pointer;
2480
+ }
2481
+
2482
+ .git-branch-trigger:hover:not(:disabled),
2483
+ .git-branch-trigger[aria-expanded='true'] {
2484
+ color: var(--text-primary);
2485
+ background: var(--bg-surface-hover);
2486
+ }
2487
+
2488
+ .git-branch-trigger:focus-visible {
2489
+ position: relative;
2490
+ z-index: 2;
2491
+ outline: 2px solid var(--border-focus, var(--accent));
2492
+ outline-offset: -2px;
2493
+ }
2494
+
2495
+ .git-branch-trigger:disabled {
2496
+ cursor: default;
2497
+ opacity: 0.55;
2498
+ }
2499
+
2500
+ .git-branch-icon,
2501
+ .git-branch-chevron {
2502
+ flex: 0 0 auto;
2503
+ }
2504
+
2505
+ .git-branch-icon {
2506
+ color: var(--text-muted);
2507
+ }
2508
+
2509
+ .git-branch-chevron {
2510
+ color: var(--text-muted);
2511
+ transition: transform 120ms ease;
2512
+ }
2513
+
2514
+ .git-branch-trigger[aria-expanded='true'] .git-branch-chevron {
2515
+ transform: rotate(180deg);
2516
+ }
2517
+
2518
+ .git-branch-name {
2519
+ min-width: 0;
2520
+ overflow: hidden;
2521
+ font-size: 0.76rem;
2522
+ font-weight: 500;
2523
+ line-height: 1;
2524
+ text-overflow: ellipsis;
2525
+ white-space: nowrap;
2526
+ }
2527
+
2528
+ .git-branch-dirty {
2529
+ width: 5px;
2530
+ height: 5px;
2531
+ flex: 0 0 5px;
2532
+ border-radius: 50%;
2533
+ background: var(--accent);
2534
+ }
2535
+
2536
+ .git-branch-menu {
2537
+ position: absolute;
2538
+ left: 0;
2539
+ right: auto;
2540
+ bottom: calc(100% + 8px);
2541
+ z-index: 80;
2542
+ width: min(320px, calc(100vw - 48px));
2543
+ padding: 6px;
2544
+ color: var(--text-primary);
2545
+ background: var(--bg-surface-raised);
2546
+ border: 1px solid var(--border-default);
2547
+ border-radius: var(--radius-md);
2548
+ box-shadow: var(--shadow-lg);
2549
+ overflow-y: auto;
2550
+ }
2551
+
2552
+ .git-branch-menu.align-right {
2553
+ left: auto;
2554
+ right: 0;
2555
+ }
2556
+
2557
+ .git-branch-menu.opens-down {
2558
+ top: calc(100% + 8px);
2559
+ bottom: auto;
2560
+ }
2561
+
2562
+ .git-branch-search {
2563
+ height: 34px;
2564
+ padding: 0 10px;
2565
+ display: flex;
2566
+ align-items: center;
2567
+ gap: 8px;
2568
+ color: var(--text-muted);
2569
+ background: var(--input-bg);
2570
+ border: 1px solid var(--border);
2571
+ border-radius: var(--radius-sm);
2572
+ }
2573
+
2574
+ .git-branch-search:focus-within {
2575
+ border-color: var(--border-focus, var(--accent));
2576
+ }
2577
+
2578
+ .git-branch-search input {
2579
+ min-width: 0;
2580
+ flex: 1;
2581
+ color: var(--text-primary);
2582
+ background: transparent;
2583
+ border: 0;
2584
+ outline: 0;
2585
+ font: inherit;
2586
+ font-size: 0.76rem;
2587
+ }
2588
+
2589
+ .git-branch-search input::placeholder {
2590
+ color: var(--text-muted);
2591
+ }
2592
+
2593
+ .git-branch-menu-heading {
2594
+ padding: 10px 8px 5px;
2595
+ color: var(--text-muted);
2596
+ font-size: 0.66rem;
2597
+ font-weight: 600;
2598
+ letter-spacing: 0.06em;
2599
+ text-transform: none;
2600
+ }
2601
+
2602
+ .git-branch-list {
2603
+ max-height: 180px;
2604
+ overflow-y: auto;
2605
+ }
2606
+
2607
+ .git-branch-option {
2608
+ width: 100%;
2609
+ min-height: 34px;
2610
+ padding: 6px 8px;
2611
+ display: grid;
2612
+ grid-template-columns: 18px minmax(0, 1fr) 16px;
2613
+ align-items: center;
2614
+ gap: 7px;
2615
+ color: var(--text-secondary);
2616
+ background: transparent;
2617
+ border: 0;
2618
+ border-radius: var(--radius-sm);
2619
+ text-align: left;
2620
+ cursor: pointer;
2621
+ }
2622
+
2623
+ .git-branch-option span:nth-child(2) {
2624
+ overflow: hidden;
2625
+ text-overflow: ellipsis;
2626
+ white-space: nowrap;
2627
+ }
2628
+
2629
+ .git-branch-option:hover:not(:disabled),
2630
+ .git-branch-option:focus-visible {
2631
+ color: var(--text-primary);
2632
+ background: var(--bg-surface-hover);
2633
+ outline: 0;
2634
+ }
2635
+
2636
+ .git-branch-option[aria-selected='true'] {
2637
+ color: var(--text-primary);
2638
+ background: var(--bg-surface-soft);
2639
+ }
2640
+
2641
+ .git-branch-option[aria-selected='true'] svg {
2642
+ color: var(--interactive-fg);
2643
+ }
2644
+
2645
+ .git-branch-option:disabled {
2646
+ cursor: wait;
2647
+ opacity: 0.6;
2648
+ }
2649
+
2650
+ .git-branch-option-icon {
2651
+ color: var(--text-muted);
2652
+ font-size: 0.9rem;
2653
+ }
2654
+
2655
+ .git-branch-empty {
2656
+ padding: 14px 8px;
2657
+ color: var(--text-muted);
2658
+ font-size: 0.76rem;
2659
+ text-align: center;
2660
+ }
2661
+
2662
+ .git-branch-error {
2663
+ margin-top: 6px;
2664
+ padding: 8px;
2665
+ display: flex;
2666
+ align-items: flex-start;
2667
+ justify-content: space-between;
2668
+ gap: 10px;
2669
+ color: var(--status-error, #ef4444);
2670
+ border-top: 1px solid var(--border-subtle);
2671
+ font-size: 0.7rem;
2672
+ line-height: 1.35;
2673
+ }
2674
+
2675
+ .git-branch-error button {
2676
+ padding: 0;
2677
+ color: inherit;
2678
+ background: transparent;
2679
+ border: 0;
2680
+ cursor: pointer;
2681
+ font: inherit;
2682
+ font-weight: 600;
2683
+ }
2684
+
2685
+ .git-branch-track-label {
2686
+ color: var(--text-muted);
2687
+ font-size: 0.64rem;
2688
+ text-align: right;
2689
+ }
2690
+
2691
+ .git-branch-actions {
2692
+ margin-top: 6px;
2693
+ padding-top: 6px;
2694
+ display: grid;
2695
+ border-top: 1px solid var(--border-subtle);
2696
+ }
2697
+
2698
+ .git-branch-actions button {
2699
+ min-height: 34px;
2700
+ padding: 6px 8px;
2701
+ display: flex;
2702
+ align-items: center;
2703
+ gap: 8px;
2704
+ color: var(--text-secondary);
2705
+ background: transparent;
2706
+ border: 0;
2707
+ border-radius: var(--radius-sm);
2708
+ text-align: left;
2709
+ cursor: pointer;
2710
+ }
2711
+
2712
+ .git-branch-actions button:hover,
2713
+ .git-branch-actions button:focus-visible {
2714
+ color: var(--text-primary);
2715
+ background: var(--bg-surface-hover);
2716
+ outline: 0;
2717
+ }
2718
+
2719
+ .git-branch-view-header {
2720
+ min-height: 34px;
2721
+ display: grid;
2722
+ grid-template-columns: 30px minmax(0, 1fr) auto;
2723
+ align-items: center;
2724
+ gap: 6px;
2725
+ border-bottom: 1px solid var(--border-subtle);
2726
+ }
2727
+
2728
+ .git-branch-view-header > button {
2729
+ min-width: 30px;
2730
+ height: 30px;
2731
+ padding: 0 7px;
2732
+ color: var(--text-muted);
2733
+ background: transparent;
2734
+ border: 0;
2735
+ border-radius: var(--radius-sm);
2736
+ cursor: pointer;
2737
+ }
2738
+
2739
+ .git-branch-view-header > button:hover:not(:disabled),
2740
+ .git-branch-view-header > button:focus-visible {
2741
+ color: var(--text-primary);
2742
+ background: var(--bg-surface-hover);
2743
+ outline: 0;
2744
+ }
2745
+
2746
+ .git-branch-view-header strong {
2747
+ overflow: hidden;
2748
+ font-size: 0.76rem;
2749
+ font-weight: 600;
2750
+ text-overflow: ellipsis;
2751
+ white-space: nowrap;
2752
+ }
2753
+
2754
+ .git-branch-create {
2755
+ display: grid;
2756
+ gap: 9px;
2757
+ }
2758
+
2759
+ .git-branch-create > label {
2760
+ margin-top: 3px;
2761
+ color: var(--text-muted);
2762
+ font-size: 0.68rem;
2763
+ font-weight: 600;
2764
+ }
2765
+
2766
+ .git-branch-create > input {
2767
+ height: 36px;
2768
+ padding: 0 10px;
2769
+ color: var(--text-primary);
2770
+ background: var(--input-bg);
2771
+ border: 1px solid var(--border);
2772
+ border-radius: var(--radius-sm);
2773
+ outline: 0;
2774
+ font: inherit;
2775
+ font-size: 0.76rem;
2776
+ }
2777
+
2778
+ .git-branch-create > input:focus {
2779
+ border-color: var(--border-focus, var(--accent));
2780
+ }
2781
+
2782
+ .git-branch-create > p {
2783
+ margin: 0;
2784
+ color: var(--text-muted);
2785
+ font-size: 0.68rem;
2786
+ line-height: 1.4;
2787
+ }
2788
+
2789
+ .git-branch-create > p strong {
2790
+ color: var(--text-secondary);
2791
+ font-weight: 500;
2792
+ }
2793
+
2794
+ .git-branch-create-submit {
2795
+ min-height: 34px;
2796
+ color: var(--text-on-accent);
2797
+ background: var(--accent);
2798
+ border: 0;
2799
+ border-radius: var(--radius-sm);
2800
+ cursor: pointer;
2801
+ font: inherit;
2802
+ font-size: 0.74rem;
2803
+ font-weight: 600;
2804
+ }
2805
+
2806
+ .git-branch-create-submit:hover:not(:disabled) {
2807
+ background: var(--accent-hover);
2808
+ }
2809
+
2810
+ .git-branch-create-submit:focus-visible {
2811
+ outline: 2px solid var(--border-focus, var(--accent));
2812
+ outline-offset: 2px;
2813
+ }
2814
+
2815
+ .git-branch-create-submit:disabled {
2816
+ cursor: default;
2817
+ opacity: 0.45;
2818
+ }
2819
+
2820
+ .git-branch-menu.is-graph {
2821
+ width: min(540px, calc(100vw - 48px));
2822
+ }
2823
+
2824
+ .git-graph-view {
2825
+ display: grid;
2826
+ gap: 6px;
2827
+ }
2828
+
2829
+ .git-graph-refresh {
2830
+ width: auto;
2831
+ font-size: 0.68rem;
2832
+ }
2833
+
2834
+ .git-graph-output {
2835
+ min-height: 180px;
2836
+ max-height: 330px;
2837
+ margin: 0;
2838
+ padding: 10px;
2839
+ overflow: auto;
2840
+ color: var(--text-secondary);
2841
+ background: var(--input-bg);
2842
+ border: 1px solid var(--border-subtle);
2843
+ border-radius: var(--radius-sm);
2844
+ font-family: var(--font-mono, monospace);
2845
+ font-size: 0.68rem;
2846
+ line-height: 1.65;
2847
+ tab-size: 14;
2848
+ white-space: pre;
2849
+ }
2850
+
2851
+ .git-graph-output:focus-visible {
2852
+ outline: 2px solid var(--border-focus, var(--accent));
2853
+ outline-offset: -2px;
2854
+ }
2855
+
2856
+ .git-graph-state {
2857
+ min-height: 140px;
2858
+ display: grid;
2859
+ place-items: center;
2860
+ color: var(--text-muted);
2861
+ font-size: 0.74rem;
2862
+ }
2863
+
2864
+ @media (max-width: 1100px) {
2865
+ .git-branch-menu.is-graph {
2866
+ width: min(320px, calc(100vw - 48px));
2867
+ }
2868
+ }
2869
+
2870
+ @media (max-width: 640px) {
2871
+ .git-branch-selector {
2872
+ max-width: 38%;
2873
+ }
2874
+
2875
+ .git-branch-trigger {
2876
+ padding-inline: 7px;
2877
+ }
2878
+ }
2879
+
2880
+ @media (prefers-reduced-motion: reduce) {
2881
+ .git-branch-chevron {
2882
+ transition: none;
2883
+ }
2884
+ }
2885
+
2886
+ @media (forced-colors: active) {
2887
+ .project-context-row,
2888
+ .workspace-select-btn,
2889
+ .workspace-select-menu,
2890
+ .workspace-select-search,
2891
+ .git-branch-menu,
2892
+ .git-branch-search,
2893
+ .git-branch-create > input,
2894
+ .git-graph-output {
2895
+ border-color: CanvasText;
2896
+ }
2897
+
2898
+ .git-branch-option[aria-selected='true'] {
2899
+ outline: 1px solid Highlight;
2900
+ outline-offset: -1px;
2901
+ }
2902
+
2903
+ .git-branch-dirty,
2904
+ .git-branch-create-submit {
2905
+ background: Highlight;
2906
+ color: HighlightText;
2907
+ }
2908
+ }
2909
+
2344
2910
  .smart-context-bar {
2345
- min-height: 24px;
2346
- padding: 3px 10px 3px 14px;
2911
+ min-height: 26px;
2912
+ padding: 7px 14px 6px 18px;
2347
2913
  margin: 0;
2348
2914
  background: var(--input-bg);
2349
2915
  border: 1px solid var(--border);
2350
2916
  border-bottom: 0;
2351
- border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;
2917
+ border-radius: var(--radius-xl) var(--radius-xl) 0 0;
2352
2918
  display: flex;
2919
+ align-items: center;
2353
2920
  flex-wrap: wrap;
2354
- gap: 10px;
2921
+ gap: 7px;
2355
2922
  }
2356
2923
 
2357
- .smart-context-label {
2924
+ .smart-context-option {
2925
+ min-height: 30px;
2926
+ padding: 4px 9px;
2927
+ display: inline-flex;
2928
+ align-items: center;
2929
+ gap: 7px;
2930
+ border: 1px solid transparent;
2931
+ border-radius: 999px;
2358
2932
  color: var(--text-soft);
2359
- font-size: 0.76rem;
2360
- font-weight: 400;
2933
+ background: transparent;
2934
+ cursor: pointer;
2935
+ transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
2361
2936
  }
2362
2937
 
2363
- .smart-context-label span {
2364
- color: var(--text-muted);
2365
- font-size: 0.68rem;
2938
+ .smart-context-option:hover {
2939
+ border-color: var(--border);
2940
+ background: color-mix(in srgb, var(--surface-strong) 55%, transparent);
2941
+ }
2942
+
2943
+ .smart-context-option.is-active {
2944
+ border-color: color-mix(in srgb, var(--accent) 32%, transparent);
2945
+ background: color-mix(in srgb, var(--accent) 9%, transparent);
2946
+ color: var(--text-main);
2947
+ }
2948
+
2949
+ @media (prefers-reduced-motion: reduce) {
2950
+ .smart-context-option {
2951
+ transition: none;
2952
+ }
2953
+ }
2954
+
2955
+ .smart-context-copy {
2956
+ display: inline-flex;
2957
+ align-items: baseline;
2958
+ gap: 4px;
2959
+ white-space: nowrap;
2960
+ }
2961
+
2962
+ .smart-context-title {
2963
+ color: inherit;
2964
+ font-size: 0.74rem;
2965
+ font-weight: 500;
2366
2966
  }
2367
2967
 
2368
2968
  .toggle-switch {
2969
+ position: relative;
2970
+ display: inline-block;
2971
+ flex: 0 0 auto;
2369
2972
  width: 32px;
2370
2973
  height: 18px;
2371
2974
  }
2372
2975
 
2976
+ .toggle-switch input:focus-visible + .slider {
2977
+ outline: 2px solid var(--accent);
2978
+ outline-offset: 2px;
2979
+ }
2980
+
2373
2981
  .slider {
2374
2982
  background-color: var(--surface-strong);
2375
2983
  }
@@ -2383,6 +2991,19 @@ input:checked + .slider:before {
2383
2991
 
2384
2992
  input:checked + .slider:before {
2385
2993
  transform: translateX(14px);
2994
+ background-color: var(--accent-contrast, #ffffff);
2995
+ }
2996
+
2997
+ @media (max-width: 560px) {
2998
+ .smart-context-bar {
2999
+ padding: 6px 10px 5px;
3000
+ gap: 4px;
3001
+ }
3002
+
3003
+ .smart-context-option {
3004
+ padding-inline: 7px;
3005
+ }
3006
+
2386
3007
  }
2387
3008
 
2388
3009
  #chat-form {
@@ -2392,10 +3013,10 @@ input:checked + .slider:before {
2392
3013
  grid-template-rows: auto minmax(48px, auto) 32px;
2393
3014
  align-items: end;
2394
3015
  gap: 6px;
2395
- padding: 8px;
3016
+ padding: 10px 14px 10px 14px;
2396
3017
  background: var(--input-bg);
2397
3018
  border: 1px solid var(--border);
2398
- border-radius: var(--radius-2xl);
3019
+ border-radius: var(--radius-xl);
2399
3020
  box-shadow: none;
2400
3021
  backdrop-filter: var(--glass-blur);
2401
3022
  -webkit-backdrop-filter: var(--glass-blur);
@@ -2404,6 +3025,8 @@ input:checked + .slider:before {
2404
3025
  .smart-context-bar + #chat-form {
2405
3026
  border-top-left-radius: 0;
2406
3027
  border-top-right-radius: 0;
3028
+ border-bottom-left-radius: var(--radius-xl);
3029
+ border-bottom-right-radius: var(--radius-xl);
2407
3030
  }
2408
3031
 
2409
3032
  #chat-form:focus-within {
@@ -2474,7 +3097,6 @@ input:checked + .slider:before {
2474
3097
  #chat-form:not(:has(.mint-attachment)) .chat-tool-menu-wrap,
2475
3098
  #chat-form:not(:has(.mint-attachment)) #screen-capture-btn,
2476
3099
  #chat-form:not(:has(.mint-attachment)) .chat-provider-select,
2477
- #chat-form:not(:has(.mint-attachment)) #mic-btn,
2478
3100
  #chat-form:not(:has(.mint-attachment)) #send-btn {
2479
3101
  grid-row: 2;
2480
3102
  }
@@ -2510,7 +3132,6 @@ input:checked + .slider:before {
2510
3132
  }
2511
3133
 
2512
3134
  #send-btn,
2513
- #mic-btn,
2514
3135
  #chat-tool-btn,
2515
3136
  #screen-capture-btn {
2516
3137
  width: 32px;
@@ -2545,31 +3166,8 @@ input:checked + .slider:before {
2545
3166
  cursor: pointer;
2546
3167
  }
2547
3168
 
2548
- .screen-capture-eye {
2549
- position: relative;
2550
- width: 18px;
2551
- height: 11px;
2552
- border: 1.6px solid currentColor;
2553
- border-radius: 50% / 58%;
2554
- background: transparent;
2555
- }
2556
-
2557
- .screen-capture-eye::after {
2558
- content: '';
2559
- position: absolute;
2560
- width: 4px;
2561
- height: 4px;
2562
- left: 50%;
2563
- top: 50%;
2564
- border: 1.6px solid currentColor;
2565
- border-radius: 50%;
2566
- background: transparent;
2567
- transform: translate(-50%, -50%);
2568
- }
2569
-
2570
3169
  #chat-tool-btn,
2571
3170
  #send-btn,
2572
- #mic-btn,
2573
3171
  #screen-capture-btn {
2574
3172
  transition: transform 0.18s cubic-bezier(0.16, 1, 0.3, 1), background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
2575
3173
  will-change: transform;
@@ -2577,14 +3175,12 @@ input:checked + .slider:before {
2577
3175
 
2578
3176
  #chat-tool-btn:hover,
2579
3177
  #send-btn:hover:not(:disabled),
2580
- #mic-btn:hover,
2581
3178
  #screen-capture-btn:hover {
2582
3179
  transform: scale(1.08);
2583
3180
  }
2584
3181
 
2585
3182
  #chat-tool-btn:active,
2586
3183
  #send-btn:active:not(:disabled),
2587
- #mic-btn:active,
2588
3184
  #screen-capture-btn:active {
2589
3185
  transform: scale(0.92);
2590
3186
  }
@@ -2651,11 +3247,11 @@ input:checked + .slider:before {
2651
3247
  width: fit-content;
2652
3248
  max-width: 100%;
2653
3249
  height: 32px;
2654
- padding: 0 24px 0 6px;
2655
- background: transparent;
2656
- border: 0;
2657
- border-radius: var(--radius-md);
2658
- color: var(--text-soft);
3250
+ padding: 0 16px 0 10px;
3251
+ background: var(--surface-strong);
3252
+ border: 1px solid var(--border-default);
3253
+ border-radius: var(--radius-full, 999px);
3254
+ color: var(--text-secondary);
2659
3255
  cursor: pointer;
2660
3256
  font-family: inherit;
2661
3257
  font-size: 0.78rem;
@@ -2664,6 +3260,7 @@ input:checked + .slider:before {
2664
3260
  text-overflow: ellipsis;
2665
3261
  white-space: nowrap;
2666
3262
  -webkit-app-region: no-drag;
3263
+ transition: all 0.15s ease;
2667
3264
  }
2668
3265
 
2669
3266
  .chat-provider-select:hover,
@@ -2684,53 +3281,7 @@ input:checked + .slider:before {
2684
3281
 
2685
3282
  .chat-provider-select option:checked {
2686
3283
  background: linear-gradient(var(--accent), var(--accent));
2687
- color: #ffffff;
2688
- }
2689
-
2690
- .voice-mode-bar {
2691
- min-height: 30px;
2692
- display: flex;
2693
- align-items: center;
2694
- gap: 8px;
2695
- padding: 4px 12px;
2696
- background: color-mix(in srgb, var(--accent) 10%, var(--input-bg));
2697
- border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--border));
2698
- border-bottom: 0;
2699
- color: var(--text-main);
2700
- font-size: 0.75rem;
2701
- }
2702
-
2703
- .voice-mode-dot {
2704
- width: 8px;
2705
- height: 8px;
2706
- flex: 0 0 auto;
2707
- border-radius: var(--radius-full);
2708
- background: var(--accent);
2709
- box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 16%, transparent);
2710
- }
2711
-
2712
- .voice-mode-bar[data-state="listening"] .voice-mode-dot,
2713
- .voice-mode-bar[data-state="speaking"] .voice-mode-dot {
2714
- animation: pulse-mic 1.2s infinite;
2715
- }
2716
-
2717
- .voice-mode-transcript {
2718
- min-width: 0;
2719
- overflow: hidden;
2720
- color: var(--text-muted);
2721
- text-overflow: ellipsis;
2722
- white-space: nowrap;
2723
- }
2724
-
2725
- #mic-btn {
2726
- grid-column: 4;
2727
- grid-row: 3;
2728
- }
2729
-
2730
- #mic-btn.voice-mode-active {
2731
- background: color-mix(in srgb, var(--accent) 18%, var(--surface-strong));
2732
- border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
2733
- color: var(--accent-hover);
3284
+ color: var(--accent-contrast, #ffffff);
2734
3285
  }
2735
3286
 
2736
3287
  #send-btn {
@@ -2780,12 +3331,11 @@ input:checked + .slider:before {
2780
3331
 
2781
3332
  #send-btn {
2782
3333
  background: linear-gradient(135deg, var(--accent), var(--accent-hover));
2783
- color: white;
2784
- box-shadow: var(--glow-accent-md);
3334
+ color: var(--accent-contrast, #ffffff);
3335
+ box-shadow: none;
2785
3336
  }
2786
3337
 
2787
3338
  #send-btn:hover,
2788
- #mic-btn:hover,
2789
3339
  #chat-tool-btn:hover,
2790
3340
  #screen-capture-btn:hover {
2791
3341
  background: var(--panel-raised);
@@ -2832,16 +3382,13 @@ input:checked + .slider:before {
2832
3382
  /* Chat Bold Highlight styling */
2833
3383
 
2834
3384
  .chat-bold-highlight {
2835
- color: #38bdf8; /* Soft blue (sky-400) for default/dark theme */
3385
+ color: var(--text-chat, var(--text-main, inherit));
2836
3386
  font-weight: 600;
2837
3387
  }
2838
3388
 
2839
- [data-theme="light"] .chat-bold-highlight {
2840
- color: #0284c7; /* Sky-600 for light theme */
2841
- }
2842
-
2843
- [data-theme="midnight"] .chat-bold-highlight {
2844
- color: #38bdf8; /* Sky-400 for midnight theme */
3389
+ .chat-bold-highlight {
3390
+ color: var(--text-primary);
3391
+ font-weight: 700;
2845
3392
  }
2846
3393
 
2847
3394
  /* Input Disclaimer Footer */
@@ -2850,7 +3397,7 @@ input:checked + .slider:before {
2850
3397
  text-align: center;
2851
3398
  font-size: 0.7rem;
2852
3399
  color: var(--text-muted);
2853
- opacity: 0.55;
3400
+ opacity: 0.85;
2854
3401
  padding: 6px 20px 10px;
2855
3402
  margin: 0;
2856
3403
  flex-shrink: 0;
@@ -2858,67 +3405,191 @@ input:checked + .slider:before {
2858
3405
  user-select: none;
2859
3406
  }
2860
3407
 
2861
- /* Web-Native Chat Header */
3408
+ /* Floating Glass Capsule Chat Header */
2862
3409
 
2863
3410
  .chat-header {
2864
3411
  display: flex;
2865
3412
  align-items: center;
3413
+ justify-content: space-between;
2866
3414
  gap: 12px;
2867
- padding: 10px 18px;
2868
- background: var(--chrome-bg);
2869
- backdrop-filter: var(--glass-blur);
2870
- -webkit-backdrop-filter: var(--glass-blur);
2871
- border-bottom: 1px solid var(--border);
3415
+ padding: 6px 14px 6px 12px;
3416
+ background: color-mix(in srgb, var(--chrome-bg, #161a22) 75%, transparent);
3417
+ backdrop-filter: blur(20px) saturate(180%);
3418
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
3419
+ border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.08));
3420
+ border-radius: var(--radius-xl, 14px);
3421
+ box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.35),
3422
+ 0 1px 0 0 rgba(255, 255, 255, 0.04) inset;
2872
3423
  position: sticky;
2873
- top: 0;
3424
+ top: 12px;
2874
3425
  z-index: 50;
2875
- height: 52px;
3426
+ height: 48px;
2876
3427
  flex-shrink: 0;
3428
+ margin: 0 0 10px 0;
3429
+ transition: border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
3430
+ }
3431
+
3432
+ .chat-header:hover {
3433
+ border-color: var(--border-default, rgba(255, 255, 255, 0.16));
3434
+ box-shadow: 0 10px 30px -4px rgba(0, 0, 0, 0.45),
3435
+ 0 1px 0 0 rgba(255, 255, 255, 0.08) inset;
2877
3436
  }
2878
3437
 
2879
3438
  .chat-header-title {
2880
3439
  display: flex;
2881
3440
  align-items: center;
2882
- gap: 8px;
2883
- font-weight: 600;
2884
- color: var(--text-main);
2885
- font-size: 0.92rem;
3441
+ gap: 10px;
3442
+ min-width: 0;
3443
+ flex: 1;
3444
+ }
3445
+
3446
+ .chat-header-brand-group {
3447
+ display: flex;
3448
+ align-items: center;
3449
+ gap: 9px;
3450
+ min-width: 0;
2886
3451
  }
2887
3452
 
2888
3453
  .chat-header-logo {
2889
- width: 20px;
2890
- height: 20px;
3454
+ width: 18px;
3455
+ height: 18px;
2891
3456
  object-fit: contain;
3457
+ flex-shrink: 0;
2892
3458
  }
2893
3459
 
2894
- .chat-header-clear-btn {
3460
+ .chat-header-title-text {
3461
+ font-size: 0.88rem;
3462
+ font-weight: 600;
3463
+ color: var(--text-primary, #f1f5f9);
3464
+ white-space: nowrap;
3465
+ overflow: hidden;
3466
+ text-overflow: ellipsis;
3467
+ max-width: 420px;
3468
+ letter-spacing: -0.01em;
3469
+ }
3470
+
3471
+ .chat-header-project-pill {
3472
+ display: inline-flex;
3473
+ align-items: center;
3474
+ gap: 5px;
3475
+ padding: 2px 8px;
3476
+ background: rgba(255, 255, 255, 0.06);
3477
+ border: 1px solid rgba(255, 255, 255, 0.08);
3478
+ border-radius: var(--radius-sm, 6px);
3479
+ font-size: 0.76rem;
3480
+ font-weight: 500;
3481
+ color: var(--text-secondary, #94a3b8);
3482
+ white-space: nowrap;
3483
+ user-select: none;
3484
+ flex-shrink: 0;
3485
+ }
3486
+
3487
+ .chat-header-project-pill svg {
3488
+ color: var(--flavor-teal, #2dd4bf);
3489
+ flex-shrink: 0;
3490
+ }
3491
+
3492
+ .chat-header-actions {
3493
+ display: flex;
3494
+ align-items: center;
3495
+ gap: 8px;
2895
3496
  margin-left: auto;
2896
3497
  flex-shrink: 0;
3498
+ }
3499
+
3500
+ .chat-header-pill-btn {
3501
+ display: inline-flex;
3502
+ align-items: center;
3503
+ gap: 5px;
3504
+ padding: 4px 10px;
3505
+ font-size: 0.73rem;
3506
+ font-weight: 600;
3507
+ color: var(--interactive-fg);
3508
+ background: color-mix(in srgb, var(--accent, #10b981) 12%, transparent);
3509
+ border: 1px solid color-mix(in srgb, var(--accent, #10b981) 28%, transparent);
3510
+ border-radius: 999px;
3511
+ cursor: pointer;
3512
+ transition: all 0.18s ease;
3513
+ }
3514
+
3515
+ .chat-header-pill-btn:hover {
3516
+ background: color-mix(in srgb, var(--accent, #10b981) 22%, transparent);
3517
+ border-color: var(--accent, #10b981);
3518
+ transform: translateY(-0.5px);
3519
+ }
3520
+
3521
+ .chat-header-action-btn,
3522
+ .chat-header-clear-btn {
2897
3523
  display: flex;
2898
3524
  align-items: center;
2899
3525
  justify-content: center;
2900
- width: 28px;
2901
- height: 28px;
2902
- border: 0;
2903
- border-radius: var(--radius-sm);
2904
- background: transparent;
2905
- color: var(--text-muted);
3526
+ width: 30px;
3527
+ height: 30px;
3528
+ border-radius: 8px;
3529
+ background: color-mix(in srgb, var(--bg-surface, #202632) 70%, transparent);
3530
+ border: 1px solid color-mix(in srgb, var(--border, rgba(255, 255, 255, 0.08)) 80%, transparent);
3531
+ color: var(--text-muted, #94a3b8);
2906
3532
  cursor: pointer;
2907
- transition: background 0.16s ease, color 0.16s ease;
3533
+ transition: all 0.18s ease;
2908
3534
  }
2909
3535
 
3536
+ .chat-header-action-btn:hover,
2910
3537
  .chat-header-clear-btn:hover {
2911
- background: var(--surface-strong);
2912
- color: var(--text-main);
3538
+ background: color-mix(in srgb, #ef4444 14%, transparent);
3539
+ border-color: color-mix(in srgb, #ef4444 35%, transparent);
3540
+ color: #ef4444;
3541
+ transform: translateY(-0.5px);
3542
+ box-shadow: 0 2px 8px rgba(239, 68, 68, 0.2);
3543
+ }
3544
+
3545
+ .chat-header-breadcrumb {
3546
+ display: inline-flex;
3547
+ align-items: center;
3548
+ gap: 8px;
3549
+ font-size: 0.88rem;
3550
+ }
3551
+
3552
+ .chat-header-back-btn {
3553
+ display: inline-flex;
3554
+ align-items: center;
3555
+ gap: 5px;
3556
+ background: color-mix(in srgb, var(--bg-surface, #202632) 80%, transparent);
3557
+ border: 1px solid var(--border-default, rgba(255, 255, 255, 0.1));
3558
+ border-radius: var(--radius-xs, 6px);
3559
+ padding: 3px 9px;
3560
+ color: var(--text-primary);
3561
+ font-size: 0.8rem;
3562
+ font-weight: 500;
3563
+ cursor: pointer;
3564
+ transition: all 0.15s ease;
3565
+ }
3566
+
3567
+ .chat-header-back-btn:hover {
3568
+ background: var(--bg-surface-hover);
3569
+ border-color: var(--border-strong);
3570
+ color: var(--text-primary);
3571
+ transform: translateY(-0.5px);
2913
3572
  }
2914
3573
 
2915
- /* Animations and Recording States */
3574
+ .chat-header-sep {
3575
+ color: var(--text-muted);
3576
+ opacity: 0.6;
3577
+ font-size: 0.8rem;
3578
+ user-select: none;
3579
+ }
2916
3580
 
2917
- #mic-btn.is-recording {
2918
- color: #ef4444 !important;
2919
- background: rgba(239, 68, 68, 0.15) !important;
2920
- box-shadow: 0 0 12px rgba(239, 68, 68, 0.4) !important;
2921
- animation: pulseRed 1.2s infinite alternate ease-in-out;
3581
+ .chat-header-session-tag {
3582
+ display: inline-flex;
3583
+ align-items: center;
3584
+ gap: 6px;
3585
+ padding: 2px 8px;
3586
+ border-radius: 6px;
3587
+ background: color-mix(in srgb, var(--accent, #10b981) 10%, transparent);
3588
+ border: 1px solid color-mix(in srgb, var(--accent, #10b981) 20%, transparent);
3589
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
3590
+ font-size: 0.8rem;
3591
+ font-weight: 600;
3592
+ color: var(--interactive-fg);
2922
3593
  }
2923
3594
 
2924
3595
  .drag-drop-overlay {
@@ -2947,8 +3618,17 @@ input:checked + .slider:before {
2947
3618
  backdrop-filter: var(--glass-blur);
2948
3619
  -webkit-backdrop-filter: var(--glass-blur);
2949
3620
  border-bottom: 1px solid var(--border);
3621
+ border-top: 0;
3622
+ border-left: 0;
3623
+ border-right: 0;
3624
+ border-radius: 0;
3625
+ margin: 0;
2950
3626
  height: 52px;
2951
3627
  padding: 10px 16px;
3628
+ box-shadow: none;
3629
+ }
3630
+ .chat-header-title-text {
3631
+ max-width: 180px;
2952
3632
  }
2953
3633
  }
2954
3634
 
@@ -2966,11 +3646,7 @@ input:checked + .slider:before {
2966
3646
  .system-event-line {
2967
3647
  flex: 1;
2968
3648
  height: 1px;
2969
- border-bottom: 1px dashed rgba(255, 255, 255, 0.1);
2970
- }
2971
-
2972
- [data-theme="light"] .system-event-line {
2973
- border-bottom: 1px dashed rgba(0, 0, 0, 0.1);
3649
+ border-bottom: 1px dashed var(--border-default);
2974
3650
  }
2975
3651
 
2976
3652
  .system-event-pill {
@@ -2978,25 +3654,19 @@ input:checked + .slider:before {
2978
3654
  align-items: center;
2979
3655
  gap: 6px;
2980
3656
  padding: 4px 14px;
2981
- background: var(--panel-raised, rgba(30, 41, 59, 0.6));
2982
- border: 1px solid rgba(255, 255, 255, 0.08);
3657
+ background: var(--bg-surface-raised);
3658
+ border: 1px solid var(--border-default);
2983
3659
  border-radius: var(--radius-full);
2984
- color: var(--text-soft, #94a3b8);
3660
+ color: var(--text-secondary);
2985
3661
  font-size: 0.78rem;
2986
3662
  font-weight: 500;
2987
3663
  margin: 0 12px;
2988
3664
  white-space: nowrap;
2989
- box-shadow: var(--shadow-xs);
2990
- }
2991
-
2992
- [data-theme="light"] .system-event-pill {
2993
- background: #f1f5f9;
2994
- border-color: rgba(0, 0, 0, 0.06);
2995
- color: #475569;
3665
+ box-shadow: var(--shadow-sm);
2996
3666
  }
2997
3667
 
2998
3668
  .system-event-pill svg {
2999
- color: var(--accent, #38bdf8);
3669
+ color: var(--interactive-fg);
3000
3670
  }
3001
3671
 
3002
3672
  /* Stop button styling overrides for ChatPanel */
@@ -3004,25 +3674,13 @@ input:checked + .slider:before {
3004
3674
  #send-btn.stop-btn {
3005
3675
  background: #ef4444 !important;
3006
3676
  color: #ffffff !important;
3007
- box-shadow: 0 8px 18px rgba(239, 68, 68, 0.28) !important;
3677
+ box-shadow: none !important;
3008
3678
  }
3009
3679
 
3010
3680
  #send-btn.stop-btn:hover {
3011
3681
  background: #dc2626 !important;
3012
3682
  }
3013
3683
 
3014
- .input-area.voice-active #chat-form {
3015
- border-color: var(--accent) !important;
3016
- animation: aura-breathe-form 2s infinite ease-in-out;
3017
- transition: border-color 0.3s ease;
3018
- }
3019
-
3020
- .input-area.voice-active .voice-mode-bar {
3021
- border-color: var(--accent) !important;
3022
- animation: aura-breathe-bar 2s infinite ease-in-out;
3023
- transition: border-color 0.3s ease;
3024
- }
3025
-
3026
3684
  /* Message action buttons (Copy, Read Aloud, Like, Dislike) */
3027
3685
 
3028
3686
  .msg-action-btn {
@@ -3042,23 +3700,94 @@ input:checked + .slider:before {
3042
3700
  }
3043
3701
 
3044
3702
  .msg-action-btn:hover {
3045
- background: var(--surface-bg, rgba(255, 255, 255, 0.08));
3046
- border-color: var(--border, rgba(255, 255, 255, 0.1));
3047
- color: var(--text-main, #f8fafc);
3703
+ background: var(--bg-surface-hover);
3704
+ border-color: var(--border-default);
3705
+ color: var(--text-primary);
3048
3706
  opacity: 1;
3049
3707
  }
3050
3708
 
3051
3709
  .msg-action-btn.is-copied {
3052
- color: var(--accent, #10b981) !important;
3710
+ color: var(--interactive-fg) !important;
3053
3711
  background: color-mix(in srgb, var(--accent, #10b981) 12%, transparent);
3054
3712
  border-color: color-mix(in srgb, var(--accent, #10b981) 25%, transparent);
3055
3713
  opacity: 1 !important;
3056
3714
  }
3057
3715
 
3058
3716
  .msg-action-btn.is-speaking {
3059
- color: var(--accent, #10b981) !important;
3717
+ color: var(--interactive-fg) !important;
3060
3718
  background: color-mix(in srgb, var(--accent, #10b981) 12%, transparent);
3061
3719
  border-color: color-mix(in srgb, var(--accent, #10b981) 25%, transparent);
3062
- animation: aura-breathe-bar 1.8s infinite ease-in-out;
3063
3720
  opacity: 1 !important;
3064
3721
  }
3722
+
3723
+ /* Light Theme High-Contrast & Depth Enhancements */
3724
+
3725
+ [data-theme="light"] .chat-header {
3726
+ background: rgba(255, 255, 255, 0.94);
3727
+ border: 1px solid rgba(15, 23, 42, 0.12);
3728
+ box-shadow: 0 4px 18px -2px rgba(15, 23, 42, 0.08), 0 1px 2px rgba(15, 23, 42, 0.04);
3729
+ }
3730
+
3731
+ [data-theme="light"] .chat-header:hover {
3732
+ border-color: rgba(15, 23, 42, 0.22);
3733
+ box-shadow: 0 6px 24px -2px rgba(15, 23, 42, 0.12);
3734
+ }
3735
+
3736
+ [data-theme="light"] .chat-header-title-text {
3737
+ color: #0f172a;
3738
+ }
3739
+
3740
+ [data-theme="light"] .chat-header-action-btn {
3741
+ background: #f1f5f9;
3742
+ border-color: rgba(15, 23, 42, 0.12);
3743
+ color: #475569;
3744
+ }
3745
+
3746
+ [data-theme="light"] .chat-header-action-btn:hover {
3747
+ background: #fee2e2;
3748
+ border-color: #fca5a5;
3749
+ color: #dc2626;
3750
+ }
3751
+
3752
+ [data-theme="light"] .smart-context-bar,
3753
+ [data-theme="light"] #chat-form {
3754
+ background: #ffffff;
3755
+ border-color: rgba(15, 23, 42, 0.16);
3756
+ box-shadow: none;
3757
+ }
3758
+
3759
+ [data-theme="light"] .smart-context-bar {
3760
+ border-bottom: 0;
3761
+ }
3762
+
3763
+ [data-theme="light"] .smart-context-option {
3764
+ color: #334155;
3765
+ }
3766
+
3767
+ [data-theme="light"] .smart-context-option.is-active {
3768
+ color: #0f172a;
3769
+ border-color: color-mix(in srgb, var(--accent) 38%, transparent);
3770
+ background: color-mix(in srgb, var(--accent) 10%, white);
3771
+ }
3772
+
3773
+ [data-theme="light"] .slider {
3774
+ background-color: #cbd5e1;
3775
+ }
3776
+
3777
+ [data-theme="light"] .input-disclaimer {
3778
+ color: #475569;
3779
+ opacity: 1;
3780
+ }
3781
+
3782
+ [data-theme="light"] #chat-tool-btn,
3783
+ [data-theme="light"] #screen-capture-btn {
3784
+ background: #f1f5f9;
3785
+ border: 1px solid rgba(15, 23, 42, 0.1);
3786
+ color: #334155;
3787
+ }
3788
+
3789
+ [data-theme="light"] #chat-tool-btn:hover,
3790
+ [data-theme="light"] #screen-capture-btn:hover {
3791
+ background: #e2e8f0;
3792
+ color: #0f172a;
3793
+ }