@pheem49/mint 1.17.0 → 1.18.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 (421) hide show
  1. package/Cargo.lock +6 -6
  2. package/Cargo.toml +2 -2
  3. package/README.md +8 -2
  4. package/Release_Note.md +222 -71
  5. package/crates/mint-cli/src/agent/diff_render.rs +66 -44
  6. package/crates/mint-cli/src/agent/live_status.rs +21 -4
  7. package/crates/mint-cli/src/agent/markdown_render.rs +342 -5
  8. package/crates/mint-cli/src/agent.rs +25 -10
  9. package/crates/mint-cli/src/commands/agent.rs +4 -92
  10. package/crates/mint-cli/src/commands/browser.rs +2 -15
  11. package/crates/mint-cli/src/commands/integrations.rs +3 -3
  12. package/crates/mint-cli/src/commands/mod.rs +0 -3
  13. package/crates/mint-cli/src/commands/tailnet_web.rs +1 -0
  14. package/crates/mint-cli/src/interactive/chat_tui/dialog.rs +572 -0
  15. package/crates/mint-cli/src/interactive/chat_tui/mod.rs +1427 -0
  16. package/crates/mint-cli/src/interactive/chat_tui/render.rs +1524 -0
  17. package/crates/mint-cli/src/interactive/chat_tui/selection.rs +401 -0
  18. package/crates/mint-cli/src/interactive/chat_tui/state.rs +1833 -0
  19. package/crates/mint-cli/src/interactive/chat_tui/tests.rs +3414 -0
  20. package/crates/mint-cli/src/interactive/chat_tui/thought.rs +202 -0
  21. package/crates/mint-cli/src/interactive/chat_tui/transcript.rs +728 -0
  22. package/crates/mint-cli/src/interactive/chat_tui/watermark.rs +148 -0
  23. package/crates/mint-cli/src/interactive/command_ui.rs +53 -5
  24. package/crates/mint-cli/src/interactive/composer.rs +186 -0
  25. package/crates/mint-cli/src/interactive/format.rs +78 -3
  26. package/crates/mint-cli/src/interactive/input_box.rs +61 -1
  27. package/crates/mint-cli/src/interactive/resume_picker.rs +367 -25
  28. package/crates/mint-cli/src/interactive/slash_commands.rs +648 -371
  29. package/crates/mint-cli/src/interactive/tool_activity.rs +93 -20
  30. package/crates/mint-cli/src/interactive.rs +37 -0
  31. package/crates/mint-cli/src/main.rs +6 -3
  32. package/crates/mint-cli/src/markdown.rs +2 -37
  33. package/crates/mint-cli/src/onboard.rs +700 -282
  34. package/crates/mint-cli/src/setup.rs +1342 -624
  35. package/crates/mint-cli/src/terminal_theme.rs +159 -35
  36. package/crates/mint-cli/tests/library_intake.rs +1 -0
  37. package/crates/mint-core/src/agent/chat/anthropic.rs +318 -0
  38. package/crates/mint-core/src/agent/chat/custom.rs +149 -0
  39. package/crates/mint-core/src/agent/chat/gemini.rs +518 -0
  40. package/crates/mint-core/src/agent/chat/mod.rs +857 -0
  41. package/crates/mint-core/src/agent/chat/ollama.rs +321 -0
  42. package/crates/mint-core/src/agent/chat/openai.rs +582 -0
  43. package/crates/mint-core/src/agent/chat/streaming.rs +469 -0
  44. package/crates/mint-core/src/agent/chat/tests.rs +1479 -0
  45. package/crates/mint-core/src/agent/memory.rs +56 -2
  46. package/crates/mint-core/src/agent/tasks.rs +2 -2
  47. package/crates/mint-core/src/api_server/routes/chat.rs +24 -2
  48. package/crates/mint-core/src/api_server/routes/gemini_live.rs +14 -1
  49. package/crates/mint-core/src/api_server/routes/html_preview.rs +1 -8
  50. package/crates/mint-core/src/api_server/routes/sessions.rs +21 -0
  51. package/crates/mint-core/src/avatar_bridge.rs +0 -22
  52. package/crates/mint-core/src/browser/cdp.rs +10 -4
  53. package/crates/mint-core/src/browser/headless.rs +582 -0
  54. package/crates/mint-core/src/browser/input.rs +7 -62
  55. package/crates/mint-core/src/browser/interact.rs +0 -14
  56. package/crates/mint-core/src/browser/mod.rs +8 -29
  57. package/crates/mint-core/src/browser/navigate.rs +2 -36
  58. package/crates/mint-core/src/browser/runtime.rs +2 -4
  59. package/crates/mint-core/src/browser/session.rs +50 -466
  60. package/crates/mint-core/src/browser/workflow.rs +142 -32
  61. package/crates/mint-core/src/cron/store.rs +2 -2
  62. package/crates/mint-core/src/integrations/mcp.rs +6 -8
  63. package/crates/mint-core/src/lib.rs +0 -5
  64. package/crates/mint-core/src/media/gemini_live.rs +636 -86
  65. package/crates/mint-core/src/media/library/migration.rs +26 -0
  66. package/crates/mint-core/src/media/library/tests.rs +1 -1
  67. package/crates/mint-core/src/media/library/thumbnails.rs +8 -2
  68. package/crates/mint-core/src/media/pictures.rs +1 -1
  69. package/crates/mint-core/src/media/tool_images.rs +92 -1
  70. package/crates/mint-core/src/mods/manager.rs +101 -35
  71. package/crates/mint-core/src/orchestration/context_render.rs +441 -24
  72. package/crates/mint-core/src/orchestration/decision_parsing.rs +531 -16
  73. package/crates/mint-core/src/orchestration/full_skill_result_tests.rs +12 -0
  74. package/crates/mint-core/src/orchestration/loop_guard.rs +145 -0
  75. package/crates/mint-core/src/orchestration/mcp_outcome_tests.rs +864 -0
  76. package/crates/mint-core/src/orchestration/memory_skill.rs +88 -28
  77. package/crates/mint-core/src/orchestration/mod.rs +320 -4249
  78. package/crates/mint-core/src/orchestration/reliability.rs +67 -27
  79. package/crates/mint-core/src/orchestration/review_regressions.rs +5 -0
  80. package/crates/mint-core/src/orchestration/tests.rs +1665 -0
  81. package/crates/mint-core/src/orchestration/tools/dispatch.rs +967 -0
  82. package/crates/mint-core/src/orchestration/tools/files.rs +1 -0
  83. package/crates/mint-core/src/orchestration/tools/mod.rs +5 -1
  84. package/crates/mint-core/src/orchestration/tools/planning.rs +102 -42
  85. package/crates/mint-core/src/orchestration/tools/shell.rs +129 -58
  86. package/crates/mint-core/src/orchestration/truncation.rs +170 -13
  87. package/crates/mint-core/src/orchestration/types.rs +648 -0
  88. package/crates/mint-core/src/orchestration/verification.rs +0 -3
  89. package/crates/mint-core/src/orchestration/workspace_helpers.rs +24 -6
  90. package/crates/mint-core/src/prompts/agent.rs +52 -76
  91. package/crates/mint-core/src/prompts/tool_catalog.rs +8 -151
  92. package/crates/mint-core/src/search/files.rs +20 -0
  93. package/crates/mint-core/src/slash/mod.rs +228 -265
  94. package/crates/mint-core/src/slash/models.rs +6 -1
  95. package/crates/mint-core/src/system/bg_shell.rs +1 -0
  96. package/crates/mint-core/src/system/config.rs +176 -34
  97. package/crates/mint-mod-runtime/src/lib.rs +37 -23
  98. package/out/web/assets/ArtifactPreviewPanel-Cx6BVOOF.js +2 -0
  99. package/out/web/assets/CalculationCard-D2E74u5q.js +1 -0
  100. package/out/web/assets/CliSessionsView-ZbdtSjvK.css +1 -0
  101. package/out/web/assets/{CliSessionsView-MI8kXMAb.js → CliSessionsView-z5i6qGyb.js} +1 -1
  102. package/out/web/assets/CodeReviewPage-BK2bOScd.css +1 -0
  103. package/out/web/assets/CodeReviewPage-Dp6zHuHu.js +2 -0
  104. package/out/web/assets/{CommandPalette-BD8SlTE5.js → CommandPalette-DaKlzbKs.js} +1 -1
  105. package/out/web/assets/ImageGenCard-BMCJHP9O.js +1 -0
  106. package/out/web/assets/ImageSearchCard-Cld_SOUg.js +1 -0
  107. package/out/web/assets/{ImageStudioPanel-BP7N4rLr.js → ImageStudioPanel-B5N7TjeB.js} +1 -1
  108. package/out/web/assets/LibraryPage-CMB89rJ0.css +1 -0
  109. package/out/web/assets/LibraryPage-DbZEi4W_.js +2 -0
  110. package/out/web/assets/LinkedFoldersView-9B9DIPoZ.js +1 -0
  111. package/out/web/assets/{McpRegistryPicker-CoS83vtc.js → McpRegistryPicker-DnXPlzI7.js} +1 -1
  112. package/out/web/assets/McpServersView-CiNBNUl4.js +1 -0
  113. package/out/web/assets/MermaidCard-BBDNEXbY.js +2 -0
  114. package/out/web/assets/MintDashboard-C_UYPoNV.js +119 -0
  115. package/out/web/assets/MintDashboard-DTd8C_c8.css +1 -0
  116. package/out/web/assets/PlanCard-C2x5pajq.js +1 -0
  117. package/out/web/assets/{PluginsView-jBYmcKh4.js → PluginsView-DoTg9MVa.js} +1 -1
  118. package/out/web/assets/RewindModal-B5oowrR0.js +1 -0
  119. package/out/web/assets/{ScheduledTasksView-5uw9-V9H.js → ScheduledTasksView-BD5DVPkZ.js} +1 -1
  120. package/out/web/assets/{SelectField-DXBQtrUK.js → SelectField-Cy6CghrU.js} +1 -1
  121. package/out/web/assets/SettingsWindow-BYl_oCFh.js +4 -0
  122. package/out/web/assets/SettingsWindow-Ckcgnjt8.css +1 -0
  123. package/out/web/assets/{SkillsView-C-gp9J7m.js → SkillsView-CIeWwq5z.js} +1 -1
  124. package/out/web/assets/StockCard-DxUciKyp.js +1 -0
  125. package/out/web/assets/ToolSurfacePage-qBgs_VHq.css +1 -0
  126. package/out/web/assets/ToolSurfacePage-saVbVrkE.js +38 -0
  127. package/out/web/assets/{UiFeatureCard-6BwxTOCe.js → UiFeatureCard-CdY0hGWy.js} +1 -1
  128. package/out/web/assets/{UiGridCard-DvZcLNxb.js → UiGridCard-BBK3I5hC.js} +1 -1
  129. package/out/web/assets/UiMockupWidget-CpR9EDuc.js +1 -0
  130. package/out/web/assets/{VeoStudioPanel-DOj7_WR3.css → VeoStudioPanel-9kU9YLEN.css} +1 -1
  131. package/out/web/assets/{VeoStudioPanel-DfsOJKv0.js → VeoStudioPanel-Co6-wEWM.js} +2 -2
  132. package/out/web/assets/WeatherCard-Buzi7Vfu.js +1 -0
  133. package/out/web/assets/WorkspacePdfPreview-Bi8Zzyir.js +2 -0
  134. package/out/web/assets/{abnfDiagram-VCTEODGH-BOo3Ckng.js → abnfDiagram-VCTEODGH-CMfR95N2.js} +1 -1
  135. package/out/web/assets/{architecture-7GRP2DOG-ZOwheW3n.js → architecture-7GRP2DOG-DhAM4HyO.js} +1 -1
  136. package/out/web/assets/{architectureDiagram-5GKGNRK7-DC2FDzVd.js → architectureDiagram-5GKGNRK7-Yk3TUJ_F.js} +1 -1
  137. package/out/web/assets/{blockDiagram-I7D4REHJ-BrKFWdAH.js → blockDiagram-I7D4REHJ-X9fBgJik.js} +1 -1
  138. package/out/web/assets/{c4Diagram-7LVT6UL2-BHTHK1Yd.js → c4Diagram-7LVT6UL2-Bk9x7N-8.js} +1 -1
  139. package/out/web/assets/{chunk-4HAMMTFA-BYFkZwNj.js → chunk-4HAMMTFA-Dx5fk1_0.js} +1 -1
  140. package/out/web/assets/{chunk-75Z2AOVW-BSKfSKSA.js → chunk-75Z2AOVW-BszTQoM4.js} +1 -1
  141. package/out/web/assets/{chunk-DU6HZSFF-vIhsiW6n.js → chunk-DU6HZSFF-DK-As3rk.js} +1 -1
  142. package/out/web/assets/{chunk-F27PBJKO-BlYpW9xq.js → chunk-F27PBJKO-LmncZZIS.js} +1 -1
  143. package/out/web/assets/{chunk-GMAD6QVW-BIBz_Ug5.js → chunk-GMAD6QVW-DSQ_sDRJ.js} +1 -1
  144. package/out/web/assets/{chunk-GVQU2GXP-NPSHxeqC.js → chunk-GVQU2GXP-Cno3ulje.js} +1 -1
  145. package/out/web/assets/{chunk-IMKFNOWR-YlJK8_Fp.js → chunk-IMKFNOWR-bIzfY9Jc.js} +1 -1
  146. package/out/web/assets/{chunk-L3NEJ4N5-DMYi4-af.js → chunk-L3NEJ4N5-Dl6eOa0D.js} +1 -1
  147. package/out/web/assets/{chunk-OSK3NFVY-Begd3-jA.js → chunk-OSK3NFVY-BaUGJ-cM.js} +1 -1
  148. package/out/web/assets/{chunk-P2QGCYS3-D1I4xFHN.js → chunk-P2QGCYS3-_066ndhH.js} +1 -1
  149. package/out/web/assets/{chunk-POPQ4Y6H-CafZZzNE.js → chunk-POPQ4Y6H-YT1AKhTv.js} +1 -1
  150. package/out/web/assets/{chunk-PWAF6VOD-Dwh6_Lnt.js → chunk-PWAF6VOD-CrEgDsxh.js} +1 -1
  151. package/out/web/assets/{chunk-SHT3W25Y-B0XrCSEb.js → chunk-SHT3W25Y-_KwaRLOl.js} +1 -1
  152. package/out/web/assets/{chunk-SVP7TREG-CxLsddxC.js → chunk-SVP7TREG-BQ1qb32L.js} +1 -1
  153. package/out/web/assets/{chunk-TICWLB2K-y156QInb.js → chunk-TICWLB2K-BDyehCtg.js} +1 -1
  154. package/out/web/assets/classDiagram-ZZMXUADV-BoSpzRCJ.js +1 -0
  155. package/out/web/assets/classDiagram-v2-VYDZK3BY-BoSpzRCJ.js +1 -0
  156. package/out/web/assets/{config-DqXJXeZM.css → config-2suVFPZg.css} +1 -1
  157. package/out/web/assets/config-CkRCdkxn.js +2 -0
  158. package/out/web/assets/{cynefin-OW5HDTMX-SMVvrLf-.js → cynefin-OW5HDTMX-Dl_31aaN.js} +1 -1
  159. package/out/web/assets/{cynefinDiagram-5FMLGOSQ-rZznN24T.js → cynefinDiagram-5FMLGOSQ-Bpir8jha.js} +1 -1
  160. package/out/web/assets/{dagre-GXQ25YYZ-BOToydFu.js → dagre-GXQ25YYZ-D9xu3nsq.js} +1 -1
  161. package/out/web/assets/{diagram-S7CK7UJ4-TMVaGQEJ.js → diagram-S7CK7UJ4-DeveoEeB.js} +1 -1
  162. package/out/web/assets/{diagram-UQ7AKVKN-C2JK-GP2.js → diagram-UQ7AKVKN-p4xWRESV.js} +1 -1
  163. package/out/web/assets/{diagram-VSXAHHWV-Cw8VSi2K.js → diagram-VSXAHHWV-C7qz9NDF.js} +1 -1
  164. package/out/web/assets/{diagram-VX7I27RA-DXp4fKk9.js → diagram-VX7I27RA-DRiCa3Vd.js} +1 -1
  165. package/out/web/assets/{diagram-Z3DM3KII-CzSicYiW.js → diagram-Z3DM3KII-Bt7zduQX.js} +1 -1
  166. package/out/web/assets/{ebnfDiagram-PWID7BFC-Dqj-zqPu.js → ebnfDiagram-PWID7BFC-DV9WpwdR.js} +1 -1
  167. package/out/web/assets/{erDiagram-RLTQ6QDP-DZwFZAuD.js → erDiagram-RLTQ6QDP-BJ_nwG2m.js} +1 -1
  168. package/out/web/assets/{eventmodeling-NTZA5JFV-C0O-Lvgp.js → eventmodeling-NTZA5JFV-BTBMrfVa.js} +1 -1
  169. package/out/web/assets/flowDiagram-HODETNUW-Cdlq3cJL.js +1 -0
  170. package/out/web/assets/{ganttDiagram-EL5Y4UJY-Da4ULXTl.js → ganttDiagram-EL5Y4UJY-DQLdsXrC.js} +1 -1
  171. package/out/web/assets/{gitGraph-4MIJSDKK-B9wNFZIP.js → gitGraph-4MIJSDKK-CL1OEOQ_.js} +1 -1
  172. package/out/web/assets/{gitGraphDiagram-WWUBYQGX-RjrhB0MP.js → gitGraphDiagram-WWUBYQGX-8cSi42H7.js} +1 -1
  173. package/out/web/assets/index-BocxnrDG.js +168 -0
  174. package/out/web/assets/index-yeh_r55a.css +1 -0
  175. package/out/web/assets/{info-A6RAGUB7-B3dfCpeY.js → info-A6RAGUB7-C1zsX5sc.js} +1 -1
  176. package/out/web/assets/{infoDiagram-27XIBGKW-QVWkLVx7.js → infoDiagram-27XIBGKW-DsRYtIyI.js} +1 -1
  177. package/out/web/assets/{ishikawaDiagram-5VMMS53U-CLFNIRI9.js → ishikawaDiagram-5VMMS53U-B2crwIXj.js} +1 -1
  178. package/out/web/assets/{journeyDiagram-3NMN7TZE-fgOQadYF.js → journeyDiagram-3NMN7TZE-BTH-GyVR.js} +1 -1
  179. package/out/web/assets/{kanban-definition-UXKFOSKX-G3Q_9g9O.js → kanban-definition-UXKFOSKX-BeRfCnuA.js} +1 -1
  180. package/out/web/assets/{mermaid-parser.core-v3Jm7nco.js → mermaid-parser.core-BJwgCBBc.js} +3 -3
  181. package/out/web/assets/{mermaid.core-DTEjLUA1.js → mermaid.core-CsDDodN8.js} +4 -4
  182. package/out/web/assets/{mindmap-definition-YA3MSWOX-C_D42_fF.js → mindmap-definition-YA3MSWOX-B42efOQ1.js} +1 -1
  183. package/out/web/assets/{modelManager-BPLycQrN.js → modelManager-B3ZFMh8v.js} +2 -2
  184. package/out/web/assets/{oauthManager-BUK7ic7q.js → oauthManager-Ch5Du2fF.js} +1 -1
  185. package/out/web/assets/{packet-AYTQ26CC-B-R-SHlF.js → packet-AYTQ26CC-B6xUyE6r.js} +1 -1
  186. package/out/web/assets/{pegDiagram-XKGWAZYB-Da2q_giz.js → pegDiagram-XKGWAZYB-1LabVycL.js} +1 -1
  187. package/out/web/assets/{pie-WAS4IAKB-BC8F0N7-.js → pie-WAS4IAKB-DJwo-nf_.js} +1 -1
  188. package/out/web/assets/{pieDiagram-E7YTZNPT-Iy9REJNC.js → pieDiagram-E7YTZNPT-icmAqzy4.js} +1 -1
  189. package/out/web/assets/{quadrantDiagram-AXDQQJYC-ztsiYw7h.js → quadrantDiagram-AXDQQJYC-CZ-wEx41.js} +1 -1
  190. package/out/web/assets/{radar-RG4KPBEZ-B_1P8Z_z.js → radar-RG4KPBEZ-D7d-Xriw.js} +1 -1
  191. package/out/web/assets/{railroad-74A4TZTK-DuTqczSo.js → railroad-74A4TZTK-viuhdYbs.js} +1 -1
  192. package/out/web/assets/{railroad-abnf-HS5TGJTU-Df29WLmp.js → railroad-abnf-HS5TGJTU-DNXiCNea.js} +1 -1
  193. package/out/web/assets/{railroad-ebnf-LZEXJU2U-ePFMo-qp.js → railroad-ebnf-LZEXJU2U-nkSu1-0C.js} +1 -1
  194. package/out/web/assets/{railroad-peg-WCYAUIDC-DYXLW4_E.js → railroad-peg-WCYAUIDC-BhbMeQzz.js} +1 -1
  195. package/out/web/assets/{railroadDiagram-O6MQD6OU-LStnZf2S.js → railroadDiagram-O6MQD6OU-CLpG1jUX.js} +1 -1
  196. package/out/web/assets/{requirementDiagram-BXWQKSXE-DmzonMH-.js → requirementDiagram-BXWQKSXE-kRDrvWrc.js} +1 -1
  197. package/out/web/assets/{sankeyDiagram-P5KCCOFB-B8vjmUU1.js → sankeyDiagram-P5KCCOFB-DxAwmq4x.js} +1 -1
  198. package/out/web/assets/{sequenceDiagram-WJ2MYXX4-CTnplOAX.js → sequenceDiagram-WJ2MYXX4-aLgY-6Wz.js} +1 -1
  199. package/out/web/assets/{stateDiagram-D77RDMKH-BFrIaLdI.js → stateDiagram-D77RDMKH-D5QWfOhp.js} +1 -1
  200. package/out/web/assets/stateDiagram-v2-MP3YSRHH-D6OiZoAP.js +1 -0
  201. package/out/web/assets/{swimlanes-42K2YHIH-BXGngUNU.js → swimlanes-42K2YHIH-CRs5UyA-.js} +1 -1
  202. package/out/web/assets/swimlanesDiagram-VR7AAH4N-UgEXIsV0.js +8 -0
  203. package/out/web/assets/syntaxHighlight-C-wAGT84.js +3 -0
  204. package/out/web/assets/{timeline-definition-24CTP7MA-CegH7n43.js → timeline-definition-24CTP7MA-Denqd9qb.js} +1 -1
  205. package/out/web/assets/{treeView-Q6P3EWNA-DTpJv2Tw.js → treeView-Q6P3EWNA-0my3Z3s4.js} +1 -1
  206. package/out/web/assets/{treemap-WGGIJYW6-i8M9iJU6.js → treemap-WGGIJYW6-B_EjkLYq.js} +1 -1
  207. package/out/web/assets/{vennDiagram-4TSXK5OY-Dpzo1S8U.js → vennDiagram-4TSXK5OY-DxVg3Ewr.js} +1 -1
  208. package/out/web/assets/{wardley-WFR3VGLG-BrNsgtfw.js → wardley-WFR3VGLG-CGD-Tj4p.js} +1 -1
  209. package/out/web/assets/{wardleyDiagram-VM6X3IG4-lQ92LFE1.js → wardleyDiagram-VM6X3IG4-CmfS39Xm.js} +1 -1
  210. package/out/web/assets/{xychartDiagram-S5SC5T6Z-BaOaEoBd.js → xychartDiagram-S5SC5T6Z-BVM9bKis.js} +1 -1
  211. package/out/web/index-web.html +2 -2
  212. package/out/web/index.html +2 -2
  213. package/package.json +2 -2
  214. package/shared-modules/CODEOWNERS +3 -3
  215. package/shared-modules/SDL2/SDL2_mixer.json +27 -0
  216. package/shared-modules/appstream/README.md +13 -0
  217. package/shared-modules/appstream/appstream-compose.json +111 -0
  218. package/shared-modules/dbus-glib/dbus-glib.json +2 -2
  219. package/shared-modules/libportal/libportal.json +23 -0
  220. package/shared-modules/linux-audio/fluidsynth2-static.json +2 -2
  221. package/shared-modules/linux-audio/fluidsynth2.json +2 -2
  222. package/shared-modules/linux-audio/libinstpatch.json +2 -2
  223. package/shared-modules/linux-audio/liblo-static.json +3 -0
  224. package/shared-modules/luajit/luajit.json +2 -2
  225. package/shared-modules/squashfs-tools/squashfs-tools.json +0 -3
  226. package/slash-commands.json +7 -2
  227. package/src/renderer/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  228. package/src/renderer/shared/agentProgress.ts +51 -3
  229. package/src/renderer/shared/components/Settings/AutomationTab.tsx +2 -56
  230. package/src/renderer/shared/components/Settings/AvatarCropModal.tsx +15 -1
  231. package/src/renderer/shared/components/Settings/GeneralTab.tsx +25 -12
  232. package/src/renderer/shared/components/Settings/ThemeTab.test.tsx +45 -0
  233. package/src/renderer/shared/components/Settings/ThemeTab.tsx +106 -3
  234. package/src/renderer/shared/components/activity/AgentActivityDrawer.tsx +67 -17
  235. package/src/renderer/shared/components/activity/AgentActivityTable.tsx +376 -134
  236. package/src/renderer/shared/components/activity/AskUserActivityCard.test.tsx +122 -0
  237. package/src/renderer/shared/components/activity/AskUserActivityCard.tsx +70 -0
  238. package/src/renderer/shared/components/activity/McpToolResults.tsx +39 -2
  239. package/src/renderer/shared/components/activity/SubagentDagView.tsx +7 -7
  240. package/src/renderer/shared/components/activity/ViewedImages.tsx +41 -2
  241. package/src/renderer/shared/components/app/ChunkErrorBoundary.tsx +3 -3
  242. package/src/renderer/shared/components/app/CommandPalette.tsx +7 -7
  243. package/src/renderer/shared/components/app/DesktopTitlebar.tsx +2 -2
  244. package/src/renderer/shared/components/app/MintDashboard.tsx +27 -17
  245. package/src/renderer/shared/components/app/ModalErrorBoundary.tsx +3 -3
  246. package/src/renderer/shared/components/cards/CalculationCard.tsx +3 -3
  247. package/src/renderer/shared/components/cards/ImageGenCard.tsx +2 -2
  248. package/src/renderer/shared/components/cards/ImageSearchCard.tsx +2 -2
  249. package/src/renderer/shared/components/cards/MermaidCard.tsx +1 -1
  250. package/src/renderer/shared/components/cards/PlanCard.test.tsx +41 -0
  251. package/src/renderer/shared/components/cards/PlanCard.tsx +32 -0
  252. package/src/renderer/shared/components/cards/ReleaseNotesCard.test.tsx +29 -0
  253. package/src/renderer/shared/components/cards/ReleaseNotesCard.tsx +137 -0
  254. package/src/renderer/shared/components/cards/StockCard.tsx +7 -7
  255. package/src/renderer/shared/components/cards/ToolResultCards.tsx +11 -3
  256. package/src/renderer/shared/components/cards/UiMockupWidget.tsx +4 -4
  257. package/src/renderer/shared/components/cards/WeatherCard.tsx +5 -5
  258. package/src/renderer/shared/components/chat/ApprovalCard.test.tsx +11 -0
  259. package/src/renderer/shared/components/chat/ApprovalCard.tsx +21 -2
  260. package/src/renderer/shared/components/chat/ArtifactCards.test.tsx +69 -0
  261. package/src/renderer/shared/components/chat/ArtifactCards.tsx +238 -0
  262. package/src/renderer/shared/components/chat/AttachedDocumentCard.test.tsx +39 -0
  263. package/src/renderer/shared/components/chat/AttachedDocumentCard.tsx +220 -0
  264. package/src/renderer/shared/components/chat/ChatCodeBlock.test.tsx +33 -0
  265. package/src/renderer/shared/components/chat/ChatCodeBlock.tsx +15 -1
  266. package/src/renderer/shared/components/chat/ChatMessageItem.test.tsx +40 -2
  267. package/src/renderer/shared/components/chat/ChatMessageItem.tsx +180 -34
  268. package/src/renderer/shared/components/chat/ChatModeSelector.css +227 -0
  269. package/src/renderer/shared/components/chat/ChatModeSelector.test.tsx +45 -0
  270. package/src/renderer/shared/components/chat/ChatModeSelector.tsx +198 -0
  271. package/src/renderer/shared/components/chat/ChatPanel.test.tsx +22 -0
  272. package/src/renderer/shared/components/chat/ChatPanel.tsx +227 -53
  273. package/src/renderer/shared/components/chat/DiffReviewModal.tsx +6 -6
  274. package/src/renderer/shared/components/chat/GeminiLiveOverlay.test.tsx +142 -1
  275. package/src/renderer/shared/components/chat/GeminiLiveOverlay.tsx +45 -3
  276. package/src/renderer/shared/components/chat/ModelSelectorPopover.tsx +42 -14
  277. package/src/renderer/shared/components/chat/RewindModal.tsx +10 -10
  278. package/src/renderer/shared/components/chat/SlashSuggestions.test.tsx +14 -0
  279. package/src/renderer/shared/components/chat/SourcesBlock.test.tsx +53 -0
  280. package/src/renderer/shared/components/chat/SourcesBlock.tsx +236 -90
  281. package/src/renderer/shared/components/chat/TurnFileChanges.test.tsx +45 -1
  282. package/src/renderer/shared/components/chat/TurnFileChanges.tsx +202 -169
  283. package/src/renderer/shared/components/extensions/CliSessionsView.tsx +5 -4
  284. package/src/renderer/shared/components/extensions/McpRegistryPicker.tsx +3 -3
  285. package/src/renderer/shared/components/studio/LibraryPage.tsx +48 -5
  286. package/src/renderer/shared/components/workspace/ArtifactPreviewPanel.tsx +125 -13
  287. package/src/renderer/shared/components/workspace/CodeReviewPage.test.tsx +50 -0
  288. package/src/renderer/shared/components/workspace/CodeReviewPage.tsx +77 -16
  289. package/src/renderer/shared/components/workspace/GitBranchSelector.tsx +78 -22
  290. package/src/renderer/shared/components/workspace/ToolSurfacePage.test.tsx +13 -0
  291. package/src/renderer/shared/components/workspace/ToolSurfacePage.tsx +48 -28
  292. package/src/renderer/shared/components/workspace/WorkspacePdfPreview.tsx +266 -47
  293. package/src/renderer/shared/components/workspace/WorkspacePreviewActions.test.tsx +18 -6
  294. package/src/renderer/shared/components/workspace/background-terminals.css +11 -11
  295. package/src/renderer/shared/constants/config.ts +1 -5
  296. package/src/renderer/shared/constants/models.test.ts +51 -0
  297. package/src/renderer/shared/constants/models.ts +139 -32
  298. package/src/renderer/shared/conversation/lifecycle.test.ts +91 -3
  299. package/src/renderer/shared/conversation/lifecycle.ts +104 -5
  300. package/src/renderer/shared/conversation/progressiveStream.test.ts +83 -0
  301. package/src/renderer/shared/conversation/progressiveStream.ts +219 -0
  302. package/src/renderer/shared/css/agent-observability.css +133 -0
  303. package/src/renderer/shared/css/chat-ui-cards.css +13 -13
  304. package/src/renderer/shared/css/code-review.css +63 -34
  305. package/src/renderer/shared/css/code-sessions.css +47 -18
  306. package/src/renderer/shared/css/collapsed-paste.css +1 -1
  307. package/src/renderer/shared/css/error-notice.css +1 -1
  308. package/src/renderer/shared/css/file-changes.css +165 -80
  309. package/src/renderer/shared/css/library.css +105 -10
  310. package/src/renderer/shared/css/management-views.css +1 -1
  311. package/src/renderer/shared/css/mcp-results.css +5 -5
  312. package/src/renderer/shared/css/model-selector.css +18 -18
  313. package/src/renderer/shared/css/mods.css +7 -7
  314. package/src/renderer/shared/css/notification-notice.css +2 -2
  315. package/src/renderer/shared/css/queued-messages.css +5 -5
  316. package/src/renderer/shared/css/settings/general.css +18 -13
  317. package/src/renderer/shared/css/settings/profile.css +5 -5
  318. package/src/renderer/shared/css/settings/theme.css +5 -5
  319. package/src/renderer/shared/css/slash-choice.css +2 -2
  320. package/src/renderer/shared/css/slash-suggestions.css +3 -3
  321. package/src/renderer/shared/css/sources-block.css +41 -2
  322. package/src/renderer/shared/css/tools-panel.css +2 -2
  323. package/src/renderer/shared/css/ui-tailwind.css +8 -0
  324. package/src/renderer/shared/css/veo-studio.css +2 -2
  325. package/src/renderer/shared/css/viewed-images.css +7 -7
  326. package/src/renderer/shared/platform.ts +2 -1
  327. package/src/renderer/shared/theme/themeManager.test.ts +17 -0
  328. package/src/renderer/shared/theme/themeManager.ts +21 -4
  329. package/src/renderer/shared/theme/themes.ts +54 -0
  330. package/src/renderer/shared/theme/tokens.css +6 -4
  331. package/src/renderer/shared/types.ts +1 -1
  332. package/src/renderer/shared/utils/agentActivity.test.ts +468 -2
  333. package/src/renderer/shared/utils/agentActivity.ts +602 -35
  334. package/src/renderer/shared/utils/artifactBrowser.test.ts +37 -32
  335. package/src/renderer/shared/utils/artifactBrowser.ts +17 -19
  336. package/src/renderer/shared/utils/attachedDocument.test.ts +73 -0
  337. package/src/renderer/shared/utils/attachedDocument.ts +49 -0
  338. package/src/renderer/shared/utils/fileIcons.test.ts +59 -0
  339. package/src/renderer/shared/utils/fileIcons.ts +149 -16
  340. package/src/renderer/shared/utils/markdown.tsx +72 -19
  341. package/src/renderer/shared/utils/markdown.webImages.test.tsx +16 -0
  342. package/src/renderer/shared/utils/mcpResults.test.tsx +29 -0
  343. package/src/renderer/shared/utils/slashCommandProcessor.ts +4 -1
  344. package/src/renderer/shared/utils/syntaxHighlight.test.tsx +11 -1
  345. package/src/renderer/shared/utils/syntaxHighlight.tsx +51 -3
  346. package/src/renderer/shared/utils/useGeminiLiveVoice.ts +324 -51
  347. package/src/renderer/shared/utils/workspaceDrag.test.ts +153 -0
  348. package/src/renderer/shared/utils/workspaceDrag.ts +142 -0
  349. package/src/renderer/shared/utils/workspaceMedia.ts +10 -2
  350. package/src/renderer/src/App.tsx +14 -8
  351. package/src/renderer/src/agentProgress.ts +1 -0
  352. package/src/renderer/src/components/ScreenPicker.css +1 -1
  353. package/src/renderer/src/components/WorkspacePanel.tsx +6 -5
  354. package/src/renderer/src/css/app-shell.css +4 -4
  355. package/src/renderer/src/css/chat.css +1261 -241
  356. package/src/renderer/src/css/desktop-tools.css +11 -11
  357. package/src/renderer/src/css/sidebar-workspace.css +2 -2
  358. package/src/renderer/src/css/tool-surfaces.css +12 -12
  359. package/src/renderer/src/index.css +38 -20
  360. package/src/renderer/src/tauri.ts +22 -2
  361. package/src/renderer/src-web/App.tsx +14 -0
  362. package/src/renderer/src-web/agentProgress.ts +1 -0
  363. package/src/renderer/src-web/css/app-shell.css +4 -4
  364. package/src/renderer/src-web/css/chat.css +1278 -190
  365. package/src/renderer/src-web/css/mobile.css +29 -13
  366. package/src/renderer/src-web/css/settings/mobile.css +2 -2
  367. package/src/renderer/src-web/css/sidebar-workspace.css +1 -1
  368. package/src/renderer/src-web/index.css +38 -20
  369. package/src/renderer/src-web/tauri.ts +22 -2
  370. package/src/renderer/tests/browserArtifacts.browser.tsx +1 -1
  371. package/src/renderer/tests/library.browser.tsx +3 -0
  372. package/src/renderer/tests/liveVoice.browser.html +1 -0
  373. package/src/renderer/tests/workspaceDrop.browser.tsx +1 -1
  374. package/src-tauri/src/app/lifecycle.rs +1 -14
  375. package/src-tauri/src/background/headless.rs +14 -8
  376. package/src-tauri/src/commands/conversation.rs +38 -0
  377. package/src-tauri/src/native/mod.rs +0 -1
  378. package/src-tauri/src/native/system.rs +4 -47
  379. package/crates/mint-cli/src/interactive/chat_tui.rs +0 -8855
  380. package/crates/mint-core/src/agent/chat.rs +0 -4394
  381. package/crates/mint-core/src/browser/lifecycle.rs +0 -291
  382. package/crates/mint-core/src/browser/logging.rs +0 -20
  383. package/crates/mint-core/src/orchestration/tools/browser.rs +0 -31
  384. package/out/web/assets/ArtifactPreviewPanel-S0dPfYFx.js +0 -2
  385. package/out/web/assets/CalculationCard-CRjP3E1j.js +0 -1
  386. package/out/web/assets/CliSessionsView-C3Br2v5Y.css +0 -1
  387. package/out/web/assets/CodeReviewPage-CUJceQme.css +0 -1
  388. package/out/web/assets/CodeReviewPage-VCUgPla_.js +0 -2
  389. package/out/web/assets/ImageGenCard-BCXxkVJX.js +0 -1
  390. package/out/web/assets/ImageSearchCard-N3yQOr8Z.js +0 -1
  391. package/out/web/assets/LibraryPage-DAxUTAg7.css +0 -1
  392. package/out/web/assets/LibraryPage-WlviRdR8.js +0 -2
  393. package/out/web/assets/LinkedFoldersView-CKRgroWK.js +0 -1
  394. package/out/web/assets/McpServersView-D3wHnuHg.js +0 -1
  395. package/out/web/assets/MermaidCard-NqrHdyJW.js +0 -2
  396. package/out/web/assets/MintDashboard-B2DJsDDO.css +0 -1
  397. package/out/web/assets/MintDashboard-COw_xol7.js +0 -63
  398. package/out/web/assets/RewindModal-DempuDod.js +0 -1
  399. package/out/web/assets/SettingsWindow-2YP3yj7s.js +0 -4
  400. package/out/web/assets/SettingsWindow-Dz8LQVgD.css +0 -1
  401. package/out/web/assets/StockCard-BDMCe7mx.js +0 -1
  402. package/out/web/assets/ToolSurfacePage-B0J_q0Jl.js +0 -38
  403. package/out/web/assets/ToolSurfacePage-CRIQ1owD.css +0 -1
  404. package/out/web/assets/UiMockupWidget-DD73QWg1.js +0 -1
  405. package/out/web/assets/WeatherCard-CPucIfq8.js +0 -1
  406. package/out/web/assets/WorkspacePdfPreview-Dx_lkjNu.js +0 -2
  407. package/out/web/assets/classDiagram-ZZMXUADV-BgJ5WtSp.js +0 -1
  408. package/out/web/assets/classDiagram-v2-VYDZK3BY-BgJ5WtSp.js +0 -1
  409. package/out/web/assets/config-CvIO5hkn.js +0 -2
  410. package/out/web/assets/flowDiagram-HODETNUW-uqCHJond.js +0 -1
  411. package/out/web/assets/index-BmpulIkg.js +0 -168
  412. package/out/web/assets/index-CkvBwhX_.css +0 -1
  413. package/out/web/assets/stateDiagram-v2-MP3YSRHH-uf3kdNW4.js +0 -1
  414. package/out/web/assets/swimlanesDiagram-VR7AAH4N-Y8q5bQce.js +0 -8
  415. package/shared-modules/libsecret/libsecret.json +0 -23
  416. package/shared-modules/libusb/libusb.json +0 -27
  417. package/shared-modules/lzo/lzo.json +0 -27
  418. package/src/renderer/src/components/BrowserShell.tsx +0 -108
  419. package/src/renderer/src/components/BrowserSuggestionsPopup.tsx +0 -91
  420. package/src/renderer/src/components/browser-shell.css +0 -185
  421. package/src-tauri/src/native/browser.rs +0 -252
@@ -120,13 +120,25 @@
120
120
  align-items: flex-start;
121
121
  }
122
122
 
123
- /* Activity dashboards need the chat column, not the reply text's intrinsic width. */
123
+ /* Activity dashboards & file changes need the full chat column, not the reply text's intrinsic width. */
124
124
  .message.ai-message:has(.agent-activity-history),
125
+ .message.ai-message:has(.file-changes-summary-container),
126
+ .message.ai-message:has(.file-changes-card),
127
+ .message.ai-message:has(.chat-artifact-cards),
128
+ .message.ai-message:has(.chat-artifact-card),
125
129
  .message.ai-message.agent-activity-message {
126
130
  align-self: stretch;
127
131
  width: 100%;
128
132
  }
133
+ .message:has(.source-links-popover) {
134
+ position: relative;
135
+ z-index: 30;
136
+ }
129
137
  .message.ai-message:has(.agent-activity-history) > .bubble-wrapper,
138
+ .message.ai-message:has(.file-changes-summary-container) > .bubble-wrapper,
139
+ .message.ai-message:has(.file-changes-card) > .bubble-wrapper,
140
+ .message.ai-message:has(.chat-artifact-cards) > .bubble-wrapper,
141
+ .message.ai-message:has(.chat-artifact-card) > .bubble-wrapper,
130
142
  .agent-activity-history { width: 100%; }
131
143
 
132
144
  .message-time {
@@ -403,10 +415,30 @@
403
415
  .user-message .message-bubble {
404
416
  background: linear-gradient(135deg, var(--accent) 0%, color-mix(in srgb, var(--accent) 70%, #000000) 100%);
405
417
  color: var(--text-on-accent);
406
- border-radius: 22px 22px 6px 22px;
418
+ border-radius: var(--radius-xl) var(--radius-xl) var(--radius-xs, 4px) var(--radius-xl);
407
419
  box-shadow: var(--glow-accent-md), inset 1px 1px 0 rgba(255, 255, 255, 0.2);
408
420
  }
409
421
 
422
+ .chat-attached-document-card {
423
+ width: 100%;
424
+ box-sizing: border-box;
425
+ }
426
+
427
+ .user-message .chat-attached-document-card {
428
+ background: color-mix(in srgb, rgba(0, 0, 0, 0.38) 85%, var(--surface-bg, #18181b));
429
+ border: 1px solid rgba(255, 255, 255, 0.18);
430
+ backdrop-filter: blur(8px);
431
+ -webkit-backdrop-filter: blur(8px);
432
+ }
433
+
434
+ .user-message .chat-attached-document-card:hover {
435
+ border-color: rgba(255, 255, 255, 0.3);
436
+ }
437
+
438
+ .chat-attached-document-toggle-action:hover {
439
+ filter: brightness(1.15);
440
+ }
441
+
410
442
  .ai-message {
411
443
  transform-origin: bottom left;
412
444
  }
@@ -421,6 +453,7 @@
421
453
  box-shadow: none;
422
454
  color: var(--text-chat, var(--text-main));
423
455
  padding: 0; /* keep spacing handled by wrapper */
456
+ width: 100%;
424
457
  }
425
458
 
426
459
  .message.ai-message.thinking-message .message-bubble {
@@ -489,12 +522,17 @@
489
522
  margin-bottom: 8px;
490
523
  }
491
524
 
525
+ .chat-list-block {
526
+ margin: 4px 0;
527
+ white-space: normal;
528
+ }
529
+
492
530
  .chat-list-item {
493
531
  display: flex;
494
532
  align-items: flex-start;
495
533
  gap: 10px;
496
- margin: 4px 0 4px 4px;
497
- line-height: 1.74;
534
+ margin: 3px 0 3px 4px;
535
+ line-height: 1.68;
498
536
  }
499
537
 
500
538
  .chat-list-bullet {
@@ -530,6 +568,11 @@
530
568
  color: var(--text-chat, var(--text-main));
531
569
  }
532
570
 
571
+ .chat-list-text > .chat-list-block {
572
+ margin: 4px 0 2px 0;
573
+ white-space: normal;
574
+ }
575
+
533
576
  .chat-link {
534
577
  color: var(--interactive-fg-hover);
535
578
  text-decoration: underline;
@@ -549,13 +592,13 @@
549
592
  }
550
593
 
551
594
  .chat-inline-code {
552
- background: var(--bg-surface-soft);
553
- border: 1px solid var(--border-default);
554
- padding: 2px 7px;
555
- border-radius: 6px;
556
- font-family: 'Fira Code', monospace;
557
- font-size: 0.86em;
558
- color: var(--text-chat);
595
+ background: var(--bg-surface-hover, rgba(127, 127, 127, 0.14));
596
+ border: none;
597
+ padding: 1.5px 5px;
598
+ border-radius: var(--radius-xs, 4px);
599
+ font-family: 'Fira Code', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
600
+ font-size: 0.88em;
601
+ color: var(--text-chat, inherit);
559
602
  letter-spacing: -0.01em;
560
603
  }
561
604
 
@@ -607,7 +650,7 @@
607
650
  display: flex;
608
651
  gap: 12px;
609
652
  background: rgba(0, 0, 0, 0.15);
610
- border-radius: var(--radius-2xl);
653
+ border-radius: var(--radius-composer, 24px);
611
654
  padding: 6px;
612
655
  border: 1px solid var(--border);
613
656
  border-top: 1px solid var(--border-light);
@@ -773,7 +816,7 @@
773
816
  .approval-tool-icon-wrapper {
774
817
  width: 28px;
775
818
  height: 28px;
776
- border-radius: 7px;
819
+ border-radius: var(--radius-sm, 8px);
777
820
  background: var(--bg-surface-soft);
778
821
  border: 1px solid var(--border-subtle);
779
822
  display: flex;
@@ -815,12 +858,18 @@
815
858
  border-color: var(--border-subtle);
816
859
  }
817
860
 
861
+ .approval-badge-chip.plan {
862
+ background: var(--accent-subtle, rgba(105, 230, 166, 0.12));
863
+ color: var(--accent, #69e6a6);
864
+ border: 1px solid var(--accent-border, rgba(105, 230, 166, 0.3));
865
+ }
866
+
818
867
  .approval-content-box {
819
868
  width: 100%;
820
869
  box-sizing: border-box;
821
870
  background: var(--bg-surface-soft);
822
871
  border: 1px solid var(--border-subtle);
823
- border-radius: 9px;
872
+ border-radius: var(--radius-md, 10px);
824
873
  padding: 10px 14px;
825
874
  font-family: 'Fira Code', ui-monospace, monospace;
826
875
  font-size: 0.84rem;
@@ -844,6 +893,17 @@
844
893
  text-align: left;
845
894
  }
846
895
 
896
+ .approval-content-box.plan-review-content {
897
+ font-family: inherit;
898
+ font-size: 0.9rem;
899
+ line-height: 1.55;
900
+ background: var(--bg-surface-soft, rgba(255, 255, 255, 0.04));
901
+ border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.08));
902
+ border-radius: var(--radius-md, 10px);
903
+ padding: 12px 16px;
904
+ white-space: normal;
905
+ }
906
+
847
907
  .approval-reason-text {
848
908
  width: 100%;
849
909
  font-size: 0.78rem;
@@ -879,7 +939,7 @@
879
939
  padding: 10px 13px;
880
940
  background: var(--bg-surface-soft);
881
941
  border: 1px solid var(--border-subtle);
882
- border-radius: 10px;
942
+ border-radius: var(--radius-lg, 14px);
883
943
  cursor: pointer;
884
944
  text-align: left;
885
945
  transition: all 0.16s cubic-bezier(0.16, 1, 0.3, 1);
@@ -916,7 +976,7 @@
916
976
  .claude-choice-key {
917
977
  width: 22px;
918
978
  height: 22px;
919
- border-radius: 6px;
979
+ border-radius: var(--radius-xs, 6px);
920
980
  background: var(--bg-surface-soft);
921
981
  border: 1px solid var(--border-default);
922
982
  display: flex;
@@ -998,7 +1058,7 @@
998
1058
  padding: 9px 12px;
999
1059
  background: var(--bg-input);
1000
1060
  border: 1px solid var(--border-default);
1001
- border-radius: 8px;
1061
+ border-radius: var(--radius-sm, 8px);
1002
1062
  color: var(--text-main);
1003
1063
  font-size: 0.84rem;
1004
1064
  font-family: inherit;
@@ -1121,12 +1181,108 @@
1121
1181
  border-color: color-mix(in srgb, var(--status-error, #ef4444) 50%, transparent);
1122
1182
  }
1123
1183
 
1184
+ .file-changes-summary-container {
1185
+ width: 100%;
1186
+ align-self: stretch;
1187
+ margin: 6px 0;
1188
+ box-sizing: border-box;
1189
+ }
1190
+
1124
1191
  .file-changes-card {
1125
- border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--border)) !important;
1192
+ width: 100% !important;
1193
+ border: 1px solid var(--border) !important;
1126
1194
  border-radius: var(--radius-md, 8px) !important;
1127
- padding: 10px !important;
1128
- background: var(--surface-bg, #1e1e20) !important;
1195
+ padding: 0 !important;
1196
+ background: var(--bg-surface-raised, #18181b) !important;
1129
1197
  margin-top: 4px;
1198
+ overflow: hidden;
1199
+ display: flex;
1200
+ flex-direction: column;
1201
+ box-sizing: border-box;
1202
+ }
1203
+
1204
+ .file-changes-summary-row {
1205
+ align-items: center;
1206
+ display: flex;
1207
+ gap: 12px;
1208
+ justify-content: space-between;
1209
+ min-height: 38px;
1210
+ padding: 6px 14px;
1211
+ box-sizing: border-box;
1212
+ cursor: pointer;
1213
+ user-select: none;
1214
+ transition: background 0.15s ease;
1215
+ }
1216
+
1217
+ .file-changes-summary-row:hover {
1218
+ background: color-mix(in srgb, var(--text-main) 3%, transparent);
1219
+ }
1220
+
1221
+ .file-changes-summary-row.is-open {
1222
+ border-bottom: 1px solid var(--border);
1223
+ }
1224
+
1225
+ .file-changes-summary-toggle {
1226
+ display: inline-flex;
1227
+ align-items: center;
1228
+ gap: 8px;
1229
+ min-width: 0;
1230
+ flex: 1;
1231
+ }
1232
+
1233
+ .file-changes-summary-label {
1234
+ color: var(--text-main, #f1f5f9);
1235
+ font-size: 0.88rem;
1236
+ font-weight: 500;
1237
+ white-space: nowrap;
1238
+ }
1239
+
1240
+ .file-changes-summary-counts {
1241
+ display: inline-flex;
1242
+ align-items: center;
1243
+ gap: 6px;
1244
+ font-size: 0.84rem;
1245
+ font-weight: 600;
1246
+ line-height: 1;
1247
+ }
1248
+
1249
+ .file-changes-chevron {
1250
+ color: var(--text-muted, #94a3b8);
1251
+ transition: transform 0.18s ease;
1252
+ flex-shrink: 0;
1253
+ margin-left: 2px;
1254
+ }
1255
+
1256
+ .file-changes-chevron.is-open {
1257
+ transform: rotate(90deg);
1258
+ }
1259
+
1260
+ .file-changes-summary-actions {
1261
+ display: inline-flex;
1262
+ align-items: center;
1263
+ gap: 8px;
1264
+ flex-shrink: 0;
1265
+ }
1266
+
1267
+ .file-changes-review-btn {
1268
+ display: inline-flex;
1269
+ align-items: center;
1270
+ gap: 6px;
1271
+ background: color-mix(in srgb, var(--text-main) 6%, transparent);
1272
+ border: 1px solid var(--border);
1273
+ border-radius: var(--radius-sm, 6px);
1274
+ color: var(--text-main, #f1f5f9);
1275
+ cursor: pointer;
1276
+ font: inherit;
1277
+ font-size: 0.78rem;
1278
+ font-weight: 500;
1279
+ padding: 4px 10px;
1280
+ transition: background 0.15s ease, border-color 0.15s ease;
1281
+ }
1282
+
1283
+ .file-changes-review-btn:hover {
1284
+ background: color-mix(in srgb, var(--text-main) 12%, transparent);
1285
+ border-color: var(--border-light, var(--border));
1130
1286
  }
1131
1287
 
1132
1288
  .file-changes-item {
@@ -1212,56 +1368,72 @@
1212
1368
  color: var(--interactive-fg-hover);
1213
1369
  }
1214
1370
 
1215
- .file-changes-diff-box {
1216
- margin-top: 6px;
1217
- background: var(--input-bg, #0a0a0b);
1218
- border-radius: var(--radius-sm, 6px);
1219
- padding: 8px;
1371
+ .file-changes-item[draggable="true"] {
1372
+ cursor: grab;
1373
+ }
1374
+
1375
+ .file-changes-item[draggable="true"]:active {
1376
+ cursor: grabbing;
1377
+ }
1378
+
1379
+ .file-changes-mention-btn {
1380
+ display: inline-flex;
1381
+ align-items: center;
1382
+ gap: 3px;
1383
+ padding: 1px 6px;
1384
+ font-size: 0.68rem;
1385
+ border-radius: var(--radius-xs, 4px);
1386
+ background: color-mix(in srgb, var(--surface-strong, #1f293d) 60%, transparent);
1387
+ color: var(--text-muted, #94a3b8);
1220
1388
  border: 1px solid var(--border);
1221
- overflow-x: auto;
1222
- max-height: 300px;
1389
+ cursor: pointer;
1390
+ font-weight: 500;
1391
+ transition: all 0.15s ease;
1223
1392
  }
1224
1393
 
1225
- .file-changes-diff-hunk {
1226
- font-size: 0.74rem;
1227
- font-family: 'Fira Code', 'Courier New', Courier, monospace;
1228
- line-height: 1.45;
1394
+ .file-changes-mention-btn:hover {
1395
+ background: color-mix(in srgb, var(--accent) 18%, transparent);
1396
+ color: var(--interactive-fg);
1397
+ border-color: color-mix(in srgb, var(--accent) 35%, transparent);
1229
1398
  }
1230
1399
 
1231
- .file-changes-diff-del {
1232
- background: color-mix(in srgb, var(--status-error, #ef4444) 10%, transparent);
1233
- border-left: 3px solid var(--status-error, #ef4444);
1234
- padding: 4px 6px;
1235
- color: var(--text-chat, var(--text-main));
1236
- white-space: pre-wrap;
1400
+ .agent-activity-target-text.is-file-target,
1401
+ .agent-activity-subitem-target.is-file-target {
1402
+ cursor: grab;
1403
+ text-decoration: underline dotted color-mix(in srgb, var(--text-muted) 50%, transparent);
1237
1404
  }
1238
1405
 
1239
- .file-changes-diff-add {
1240
- background: color-mix(in srgb, var(--accent) 10%, transparent);
1241
- border-left: 3px solid var(--accent);
1242
- padding: 4px 6px;
1243
- color: var(--text-chat, var(--text-main));
1244
- white-space: pre-wrap;
1406
+ .agent-activity-target-text.is-file-target:active,
1407
+ .agent-activity-subitem-target.is-file-target:active {
1408
+ cursor: grabbing;
1245
1409
  }
1246
1410
 
1247
- .file-changes-diff-sign-del {
1248
- color: var(--status-error, #ef4444);
1249
- margin-right: 6px;
1250
- user-select: none;
1411
+ .agent-activity-mention-btn {
1412
+ display: inline-flex;
1413
+ align-items: center;
1414
+ justify-content: center;
1415
+ width: 16px;
1416
+ height: 16px;
1417
+ padding: 0;
1418
+ font-size: 0.65rem;
1251
1419
  font-weight: 600;
1252
- display: inline-block;
1253
- min-width: 10px;
1420
+ border-radius: var(--radius-xs, 4px);
1421
+ background: transparent;
1422
+ color: var(--text-muted);
1423
+ border: 1px solid transparent;
1424
+ cursor: pointer;
1425
+ transition: all 0.15s ease;
1426
+ margin-right: 4px;
1254
1427
  }
1255
1428
 
1256
- .file-changes-diff-sign-add {
1429
+ .agent-activity-mention-btn:hover {
1430
+ background: color-mix(in srgb, var(--accent) 20%, transparent);
1257
1431
  color: var(--interactive-fg);
1258
- margin-right: 6px;
1259
- user-select: none;
1260
- font-weight: 600;
1261
- display: inline-block;
1262
- min-width: 10px;
1432
+ border-color: color-mix(in srgb, var(--accent) 35%, transparent);
1263
1433
  }
1264
1434
 
1435
+
1436
+
1265
1437
  .agent-activity-card-history {
1266
1438
  padding-top: 0;
1267
1439
  }
@@ -1455,7 +1627,7 @@
1455
1627
  flex-shrink: 0;
1456
1628
  background: color-mix(in srgb, var(--accent, #38bdf8) 10%, transparent);
1457
1629
  padding: 1px 6px;
1458
- border-radius: 4px;
1630
+ border-radius: var(--radius-xs, 6px);
1459
1631
  border: 1px solid color-mix(in srgb, var(--accent, #38bdf8) 20%, transparent);
1460
1632
  }
1461
1633
 
@@ -1478,7 +1650,7 @@
1478
1650
 
1479
1651
  .agent-activity-badge {
1480
1652
  align-items: center;
1481
- border-radius: 4px;
1653
+ border-radius: var(--radius-xs, 6px);
1482
1654
  display: inline-flex;
1483
1655
  flex-shrink: 0;
1484
1656
  font-size: 0.65rem;
@@ -1566,7 +1738,7 @@
1566
1738
  color: var(--text-muted);
1567
1739
  background: var(--bg-surface-soft);
1568
1740
  border: 1px solid var(--border-subtle);
1569
- border-radius: 10px;
1741
+ border-radius: var(--radius-sm, 8px);
1570
1742
  }
1571
1743
 
1572
1744
  .agent-activity-group-subitems {
@@ -1583,7 +1755,7 @@
1583
1755
  padding: 3px 12px 3px 8px;
1584
1756
  font-size: 0.78rem;
1585
1757
  color: var(--text-muted, #94a3b8);
1586
- border-radius: 4px;
1758
+ border-radius: var(--radius-xs, 6px);
1587
1759
  transition: background 0.12s ease, color 0.12s ease;
1588
1760
  }
1589
1761
 
@@ -1620,7 +1792,7 @@
1620
1792
 
1621
1793
  .agent-activity-subitem-output {
1622
1794
  margin: 2px 10px 6px 24px;
1623
- border-radius: 6px;
1795
+ border-radius: var(--radius-xs, 6px);
1624
1796
  }
1625
1797
 
1626
1798
  .agent-activity-output {
@@ -1750,7 +1922,7 @@
1750
1922
 
1751
1923
  .thinking-block-content::-webkit-scrollbar-thumb {
1752
1924
  background: rgba(148, 163, 184, 0.22);
1753
- border-radius: 2px;
1925
+ border-radius: var(--radius-2xs, 4px);
1754
1926
  }
1755
1927
 
1756
1928
  .thinking-block-step + .thinking-block-step {
@@ -1868,8 +2040,8 @@
1868
2040
  font-size: 11.5px;
1869
2041
  padding: 1px 4px;
1870
2042
  background: rgba(255, 255, 255, 0.05);
1871
- border: 1px solid var(--border, rgba(255, 255, 255, 0.06));
1872
- border-radius: 3px;
2043
+ border: none;
2044
+ border-radius: var(--radius-xs, 4px);
1873
2045
  color: var(--text-muted, #cbd5e1);
1874
2046
  }
1875
2047
 
@@ -1878,7 +2050,7 @@
1878
2050
  .thinking-block-content .chat-code-block {
1879
2051
  margin: 6px 0;
1880
2052
  padding: 8px 10px;
1881
- border-radius: 6px;
2053
+ border-radius: var(--radius-xs, 6px);
1882
2054
  background: rgba(0, 0, 0, 0.2);
1883
2055
  border: 1px solid var(--border, rgba(255, 255, 255, 0.06));
1884
2056
  font-size: 11.5px;
@@ -2340,7 +2512,7 @@ input:checked + .slider:before {
2340
2512
  .user-message .message-bubble {
2341
2513
  background: linear-gradient(135deg, var(--surface-strong), color-mix(in srgb, var(--accent) 16%, var(--surface-strong)));
2342
2514
  border: 1px solid var(--border-default);
2343
- border-radius: 22px 22px 6px 22px;
2515
+ border-radius: var(--radius-xl) var(--radius-xl) var(--radius-xs, 4px) var(--radius-xl);
2344
2516
  color: var(--text-main);
2345
2517
  box-shadow: none;
2346
2518
  }
@@ -2357,6 +2529,7 @@ input:checked + .slider:before {
2357
2529
  box-shadow: none !important;
2358
2530
  border-radius: 0 !important;
2359
2531
  padding: 0 !important;
2532
+ width: 100%;
2360
2533
  }
2361
2534
 
2362
2535
  .input-area {
@@ -2595,14 +2768,38 @@ input:checked + .slider:before {
2595
2768
  display: flex;
2596
2769
  align-items: center;
2597
2770
  gap: 6px;
2598
- min-height: 44px;
2599
- padding: 5px 8px;
2771
+ min-height: 34px;
2772
+ padding: 4px 10px;
2600
2773
  background: var(--input-bg);
2601
2774
  border: 1px solid var(--border);
2602
- border-bottom: 0;
2603
- border-radius: var(--radius-xl) var(--radius-xl) 0 0;
2775
+ border-bottom: 1px solid color-mix(in srgb, var(--border) 45%, transparent);
2776
+ border-radius: var(--radius-composer, 20px) var(--radius-composer, 20px) 0 0;
2777
+ }
2778
+
2779
+ .project-context-row .workspace-select-btn,
2780
+ .project-context-row .git-branch-trigger {
2781
+ min-height: 26px;
2782
+ height: 26px;
2783
+ padding: 0 8px;
2784
+ font-size: 0.76rem;
2785
+ border-radius: var(--radius-sm, 8px);
2786
+ }
2787
+
2788
+ .project-context-row .git-branch-trigger {
2789
+ background: var(--surface-strong);
2790
+ border: 1px solid var(--border-subtle);
2791
+ color: var(--text-primary);
2792
+ transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease;
2793
+ }
2794
+
2795
+ .project-context-row .git-branch-trigger:hover:not(:disabled),
2796
+ .project-context-row .git-branch-trigger[aria-expanded='true'] {
2797
+ background: var(--bg-surface-hover);
2798
+ border-color: var(--border);
2799
+ color: var(--text-primary);
2604
2800
  }
2605
2801
 
2802
+ .project-context-row + #chat-form,
2606
2803
  .project-context-row + .smart-context-bar {
2607
2804
  border-top-color: var(--border-subtle);
2608
2805
  border-radius: 0;
@@ -2624,17 +2821,19 @@ input:checked + .slider:before {
2624
2821
  display: flex;
2625
2822
  align-items: center;
2626
2823
  gap: 7px;
2627
- color: var(--text-secondary);
2628
- background: transparent;
2629
- border: 0;
2824
+ color: var(--text-primary);
2825
+ background: var(--surface-strong);
2826
+ border: 1px solid var(--border-subtle);
2630
2827
  border-radius: var(--radius-md);
2631
2828
  cursor: pointer;
2829
+ transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease;
2632
2830
  }
2633
2831
 
2634
2832
  .git-branch-trigger:hover:not(:disabled),
2635
2833
  .git-branch-trigger[aria-expanded='true'] {
2636
2834
  color: var(--text-primary);
2637
2835
  background: var(--bg-surface-hover);
2836
+ border-color: var(--border);
2638
2837
  }
2639
2838
 
2640
2839
  .git-branch-trigger:focus-visible {
@@ -2682,7 +2881,7 @@ input:checked + .slider:before {
2682
2881
  height: 5px;
2683
2882
  flex: 0 0 5px;
2684
2883
  border-radius: 50%;
2685
- background: var(--accent);
2884
+ background: var(--status-warning, #f59e0b);
2686
2885
  }
2687
2886
 
2688
2887
  .git-branch-menu {
@@ -2691,16 +2890,30 @@ input:checked + .slider:before {
2691
2890
  right: auto;
2692
2891
  bottom: calc(100% + 8px);
2693
2892
  z-index: 80;
2694
- width: min(320px, calc(100vw - 48px));
2893
+ width: min(320px, calc(100vw - 32px));
2695
2894
  padding: 6px;
2696
2895
  color: var(--text-primary);
2697
- background: var(--bg-surface-raised);
2698
- border: 1px solid var(--border-default);
2699
- border-radius: var(--radius-md);
2700
- box-shadow: var(--shadow-lg);
2896
+ background: var(--panel-bg, #18181b);
2897
+ border: 1px solid var(--border);
2898
+ border-radius: var(--radius-xl, 16px);
2899
+ box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.4), 0 8px 10px -6px rgba(0, 0, 0, 0.3);
2900
+ backdrop-filter: var(--glass-blur);
2901
+ -webkit-backdrop-filter: var(--glass-blur);
2902
+ animation: git-branch-popover-in 0.15s cubic-bezier(0.16, 1, 0.3, 1);
2701
2903
  overflow-y: auto;
2702
2904
  }
2703
2905
 
2906
+ @keyframes git-branch-popover-in {
2907
+ from {
2908
+ opacity: 0;
2909
+ transform: translateY(4px) scale(0.98);
2910
+ }
2911
+ to {
2912
+ opacity: 1;
2913
+ transform: translateY(0) scale(1);
2914
+ }
2915
+ }
2916
+
2704
2917
  .git-branch-menu.align-right {
2705
2918
  left: auto;
2706
2919
  right: 0;
@@ -2712,19 +2925,23 @@ input:checked + .slider:before {
2712
2925
  }
2713
2926
 
2714
2927
  .git-branch-search {
2715
- height: 34px;
2716
- padding: 0 10px;
2928
+ height: 32px;
2929
+ padding: 0 9px;
2717
2930
  display: flex;
2718
2931
  align-items: center;
2719
2932
  gap: 8px;
2933
+ margin-bottom: 4px;
2720
2934
  color: var(--text-muted);
2721
- background: var(--input-bg);
2722
- border: 1px solid var(--border);
2723
- border-radius: var(--radius-sm);
2935
+ background: var(--surface-strong, rgba(255, 255, 255, 0.05));
2936
+ border: 1px solid var(--border-default, rgba(255, 255, 255, 0.08));
2937
+ border-radius: var(--radius-md, 10px);
2938
+ transition: all 0.15s ease;
2724
2939
  }
2725
2940
 
2726
2941
  .git-branch-search:focus-within {
2727
- border-color: var(--border-focus, var(--accent));
2942
+ border-color: var(--border-strong, rgba(255, 255, 255, 0.22));
2943
+ background: var(--surface-strong, rgba(255, 255, 255, 0.08));
2944
+ color: var(--text-primary);
2728
2945
  }
2729
2946
 
2730
2947
  .git-branch-search input {
@@ -2735,7 +2952,7 @@ input:checked + .slider:before {
2735
2952
  border: 0;
2736
2953
  outline: 0;
2737
2954
  font: inherit;
2738
- font-size: 0.76rem;
2955
+ font-size: 0.78rem;
2739
2956
  }
2740
2957
 
2741
2958
  .git-branch-search input::placeholder {
@@ -2743,33 +2960,40 @@ input:checked + .slider:before {
2743
2960
  }
2744
2961
 
2745
2962
  .git-branch-menu-heading {
2746
- padding: 10px 8px 5px;
2963
+ padding: 6px 8px 4px;
2747
2964
  color: var(--text-muted);
2748
- font-size: 0.66rem;
2965
+ font-size: 0.68rem;
2749
2966
  font-weight: 600;
2750
- letter-spacing: 0.06em;
2751
- text-transform: none;
2967
+ letter-spacing: 0.05em;
2968
+ text-transform: uppercase;
2752
2969
  }
2753
2970
 
2754
2971
  .git-branch-list {
2755
2972
  max-height: 180px;
2756
2973
  overflow-y: auto;
2974
+ display: flex;
2975
+ flex-direction: column;
2976
+ gap: 2px;
2977
+ scrollbar-width: thin;
2757
2978
  }
2758
2979
 
2759
2980
  .git-branch-option {
2760
2981
  width: 100%;
2761
- min-height: 34px;
2982
+ min-height: 32px;
2762
2983
  padding: 6px 8px;
2763
2984
  display: grid;
2764
- grid-template-columns: 18px minmax(0, 1fr) 16px;
2985
+ grid-template-columns: 16px minmax(0, 1fr) auto;
2765
2986
  align-items: center;
2766
- gap: 7px;
2987
+ gap: 9px;
2767
2988
  color: var(--text-secondary);
2768
2989
  background: transparent;
2769
- border: 0;
2770
- border-radius: var(--radius-sm);
2990
+ border: 1px solid transparent;
2991
+ border-radius: var(--radius-md, 10px);
2771
2992
  text-align: left;
2772
2993
  cursor: pointer;
2994
+ font-size: 0.8rem;
2995
+ font-weight: 500;
2996
+ transition: all 0.12s ease;
2773
2997
  }
2774
2998
 
2775
2999
  .git-branch-option span:nth-child(2) {
@@ -2781,17 +3005,24 @@ input:checked + .slider:before {
2781
3005
  .git-branch-option:hover:not(:disabled),
2782
3006
  .git-branch-option:focus-visible {
2783
3007
  color: var(--text-primary);
2784
- background: var(--bg-surface-hover);
3008
+ background: var(--bg-surface-hover, rgba(255, 255, 255, 0.06));
2785
3009
  outline: 0;
2786
3010
  }
2787
3011
 
3012
+ .git-branch-option:hover:not(:disabled) .git-branch-option-icon,
3013
+ .git-branch-option:focus-visible .git-branch-option-icon {
3014
+ color: var(--text-primary);
3015
+ }
3016
+
2788
3017
  .git-branch-option[aria-selected='true'] {
2789
3018
  color: var(--text-primary);
2790
- background: var(--bg-surface-soft);
3019
+ background: var(--bg-surface-hover, rgba(255, 255, 255, 0.08));
3020
+ border-color: var(--border, rgba(255, 255, 255, 0.16));
2791
3021
  }
2792
3022
 
2793
- .git-branch-option[aria-selected='true'] svg {
2794
- color: var(--interactive-fg);
3023
+ .git-branch-option[aria-selected='true'] .git-branch-option-icon,
3024
+ .git-branch-option[aria-selected='true'] .git-branch-option-check {
3025
+ color: var(--text-primary);
2795
3026
  }
2796
3027
 
2797
3028
  .git-branch-option:disabled {
@@ -2800,27 +3031,63 @@ input:checked + .slider:before {
2800
3031
  }
2801
3032
 
2802
3033
  .git-branch-option-icon {
3034
+ display: inline-flex;
3035
+ align-items: center;
3036
+ justify-content: center;
3037
+ width: 16px;
3038
+ height: 16px;
2803
3039
  color: var(--text-muted);
2804
- font-size: 0.9rem;
3040
+ flex-shrink: 0;
3041
+ transition: color 0.12s ease;
2805
3042
  }
2806
3043
 
2807
- .git-branch-empty {
2808
- padding: 14px 8px;
2809
- color: var(--text-muted);
3044
+ .git-branch-option-check {
3045
+ display: inline-flex;
3046
+ align-items: center;
3047
+ justify-content: center;
3048
+ width: 16px;
3049
+ height: 16px;
3050
+ color: var(--accent, #10b981);
3051
+ flex-shrink: 0;
3052
+ }
3053
+
3054
+ .git-branch-track-label {
3055
+ display: inline-flex;
3056
+ align-items: center;
3057
+ padding: 1px 7px;
3058
+ font-size: 0.66rem;
3059
+ font-weight: 500;
3060
+ color: var(--text-muted);
3061
+ background: var(--surface-strong);
3062
+ border: 1px solid var(--border-subtle);
3063
+ border-radius: var(--radius-full, 999px);
3064
+ transition: all 0.12s ease;
3065
+ }
3066
+
3067
+ .git-branch-option:hover .git-branch-track-label {
3068
+ color: var(--text-primary);
3069
+ border-color: var(--border);
3070
+ }
3071
+
3072
+ .git-branch-empty {
3073
+ padding: 14px 8px;
3074
+ color: var(--text-muted);
2810
3075
  font-size: 0.76rem;
2811
3076
  text-align: center;
2812
3077
  }
2813
3078
 
2814
3079
  .git-branch-error {
2815
3080
  margin-top: 6px;
2816
- padding: 8px;
3081
+ padding: 8px 10px;
2817
3082
  display: flex;
2818
3083
  align-items: flex-start;
2819
3084
  justify-content: space-between;
2820
3085
  gap: 10px;
2821
3086
  color: var(--status-error, #ef4444);
2822
- border-top: 1px solid var(--border-subtle);
2823
- font-size: 0.7rem;
3087
+ background: color-mix(in srgb, var(--status-error, #ef4444) 10%, transparent);
3088
+ border-radius: var(--radius-md, 8px);
3089
+ border: 1px solid color-mix(in srgb, var(--status-error, #ef4444) 25%, transparent);
3090
+ font-size: 0.72rem;
2824
3091
  line-height: 1.35;
2825
3092
  }
2826
3093
 
@@ -2832,155 +3099,191 @@ input:checked + .slider:before {
2832
3099
  cursor: pointer;
2833
3100
  font: inherit;
2834
3101
  font-weight: 600;
2835
- }
2836
-
2837
- .git-branch-track-label {
2838
- color: var(--text-muted);
2839
- font-size: 0.64rem;
2840
- text-align: right;
3102
+ text-decoration: underline;
2841
3103
  }
2842
3104
 
2843
3105
  .git-branch-actions {
2844
3106
  margin-top: 6px;
2845
3107
  padding-top: 6px;
2846
- display: grid;
3108
+ display: flex;
3109
+ flex-direction: column;
3110
+ gap: 2px;
2847
3111
  border-top: 1px solid var(--border-subtle);
2848
3112
  }
2849
3113
 
2850
3114
  .git-branch-actions button {
2851
- min-height: 34px;
3115
+ min-height: 32px;
2852
3116
  padding: 6px 8px;
2853
3117
  display: flex;
2854
3118
  align-items: center;
2855
- gap: 8px;
3119
+ gap: 9px;
2856
3120
  color: var(--text-secondary);
2857
3121
  background: transparent;
2858
- border: 0;
2859
- border-radius: var(--radius-sm);
3122
+ border: 1px solid transparent;
3123
+ border-radius: var(--radius-md, 10px);
3124
+ font-size: 0.8rem;
3125
+ font-weight: 500;
2860
3126
  text-align: left;
2861
3127
  cursor: pointer;
3128
+ transition: all 0.12s ease;
3129
+ }
3130
+
3131
+ .git-branch-actions button svg {
3132
+ color: var(--text-muted);
3133
+ flex-shrink: 0;
3134
+ transition: color 0.12s ease;
2862
3135
  }
2863
3136
 
2864
3137
  .git-branch-actions button:hover,
2865
3138
  .git-branch-actions button:focus-visible {
2866
3139
  color: var(--text-primary);
2867
- background: var(--bg-surface-hover);
3140
+ background: var(--bg-surface-hover, rgba(255, 255, 255, 0.06));
2868
3141
  outline: 0;
2869
3142
  }
2870
3143
 
3144
+ .git-branch-actions button:hover svg,
3145
+ .git-branch-actions button:focus-visible svg {
3146
+ color: var(--text-primary);
3147
+ }
3148
+
2871
3149
  .git-branch-view-header {
2872
3150
  min-height: 34px;
2873
- display: grid;
2874
- grid-template-columns: 30px minmax(0, 1fr) auto;
3151
+ display: flex;
2875
3152
  align-items: center;
2876
- gap: 6px;
3153
+ gap: 8px;
3154
+ padding: 2px 2px 8px;
2877
3155
  border-bottom: 1px solid var(--border-subtle);
2878
3156
  }
2879
3157
 
2880
3158
  .git-branch-view-header > button {
2881
- min-width: 30px;
2882
- height: 30px;
2883
- padding: 0 7px;
3159
+ width: 28px;
3160
+ height: 28px;
3161
+ padding: 0;
3162
+ display: inline-flex;
3163
+ align-items: center;
3164
+ justify-content: center;
2884
3165
  color: var(--text-muted);
2885
3166
  background: transparent;
2886
- border: 0;
2887
- border-radius: var(--radius-sm);
3167
+ border: 1px solid transparent;
3168
+ border-radius: var(--radius-md, 8px);
2888
3169
  cursor: pointer;
3170
+ transition: all 0.12s ease;
2889
3171
  }
2890
3172
 
2891
3173
  .git-branch-view-header > button:hover:not(:disabled),
2892
3174
  .git-branch-view-header > button:focus-visible {
2893
3175
  color: var(--text-primary);
2894
3176
  background: var(--bg-surface-hover);
3177
+ border-color: var(--border-subtle);
2895
3178
  outline: 0;
2896
3179
  }
2897
3180
 
2898
3181
  .git-branch-view-header strong {
2899
- overflow: hidden;
2900
- font-size: 0.76rem;
3182
+ flex: 1;
3183
+ color: var(--text-primary);
3184
+ font-size: 0.82rem;
2901
3185
  font-weight: 600;
2902
- text-overflow: ellipsis;
2903
- white-space: nowrap;
2904
3186
  }
2905
3187
 
2906
3188
  .git-branch-create {
2907
- display: grid;
2908
- gap: 9px;
3189
+ display: flex;
3190
+ flex-direction: column;
3191
+ gap: 8px;
3192
+ padding-top: 8px;
2909
3193
  }
2910
3194
 
2911
3195
  .git-branch-create > label {
2912
- margin-top: 3px;
2913
3196
  color: var(--text-muted);
2914
- font-size: 0.68rem;
2915
- font-weight: 600;
3197
+ font-size: 0.72rem;
3198
+ font-weight: 500;
2916
3199
  }
2917
3200
 
2918
3201
  .git-branch-create > input {
2919
- height: 36px;
3202
+ height: 34px;
2920
3203
  padding: 0 10px;
2921
3204
  color: var(--text-primary);
2922
- background: var(--input-bg);
2923
- border: 1px solid var(--border);
2924
- border-radius: var(--radius-sm);
3205
+ background: var(--surface-strong, rgba(255, 255, 255, 0.05));
3206
+ border: 1px solid var(--border-default, rgba(255, 255, 255, 0.08));
3207
+ border-radius: var(--radius-md, 10px);
2925
3208
  outline: 0;
2926
3209
  font: inherit;
2927
- font-size: 0.76rem;
3210
+ font-size: 0.8rem;
3211
+ transition: all 0.15s ease;
2928
3212
  }
2929
3213
 
2930
3214
  .git-branch-create > input:focus {
2931
- border-color: var(--border-focus, var(--accent));
3215
+ border-color: var(--border-strong, rgba(255, 255, 255, 0.22));
3216
+ background: var(--surface-strong, rgba(255, 255, 255, 0.08));
2932
3217
  }
2933
3218
 
2934
3219
  .git-branch-create > p {
2935
3220
  margin: 0;
2936
3221
  color: var(--text-muted);
2937
- font-size: 0.68rem;
3222
+ font-size: 0.72rem;
2938
3223
  line-height: 1.4;
2939
3224
  }
2940
3225
 
2941
3226
  .git-branch-create > p strong {
2942
- color: var(--text-secondary);
2943
- font-weight: 500;
3227
+ color: var(--text-primary);
3228
+ font-weight: 600;
2944
3229
  }
2945
3230
 
2946
3231
  .git-branch-create-submit {
2947
- min-height: 34px;
2948
- color: var(--text-on-accent);
2949
- background: var(--accent);
3232
+ height: 32px;
3233
+ padding: 0 12px;
3234
+ color: var(--accent-contrast, #ffffff);
3235
+ background: linear-gradient(135deg, var(--accent), var(--accent-hover, var(--accent)));
2950
3236
  border: 0;
2951
- border-radius: var(--radius-sm);
2952
- cursor: pointer;
2953
- font: inherit;
2954
- font-size: 0.74rem;
3237
+ border-radius: var(--radius-md, 10px);
3238
+ font-size: 0.78rem;
2955
3239
  font-weight: 600;
3240
+ cursor: pointer;
3241
+ transition: all 0.15s ease;
2956
3242
  }
2957
3243
 
2958
3244
  .git-branch-create-submit:hover:not(:disabled) {
2959
- background: var(--accent-hover);
3245
+ opacity: 0.92;
3246
+ transform: translateY(-1px);
2960
3247
  }
2961
3248
 
2962
3249
  .git-branch-create-submit:focus-visible {
2963
- outline: 2px solid var(--border-focus, var(--accent));
2964
- outline-offset: 2px;
3250
+ outline: 2px solid var(--accent);
3251
+ outline-offset: 1px;
2965
3252
  }
2966
3253
 
2967
3254
  .git-branch-create-submit:disabled {
2968
- cursor: default;
2969
- opacity: 0.45;
3255
+ cursor: not-allowed;
3256
+ opacity: 0.5;
2970
3257
  }
2971
3258
 
2972
3259
  .git-branch-menu.is-graph {
2973
- width: min(540px, calc(100vw - 48px));
3260
+ width: min(540px, calc(100vw - 32px));
2974
3261
  }
2975
3262
 
2976
3263
  .git-graph-view {
2977
- display: grid;
2978
- gap: 6px;
3264
+ display: flex;
3265
+ flex-direction: column;
3266
+ gap: 8px;
2979
3267
  }
2980
3268
 
2981
3269
  .git-graph-refresh {
2982
3270
  width: auto;
2983
- font-size: 0.68rem;
3271
+ height: 26px;
3272
+ padding: 0 9px;
3273
+ font-size: 0.72rem;
3274
+ font-weight: 500;
3275
+ border-radius: var(--radius-sm, 6px);
3276
+ background: var(--surface-strong);
3277
+ border: 1px solid var(--border-subtle);
3278
+ color: var(--text-secondary);
3279
+ cursor: pointer;
3280
+ transition: all 0.12s ease;
3281
+ }
3282
+
3283
+ .git-graph-refresh:hover:not(:disabled) {
3284
+ background: var(--bg-surface-hover);
3285
+ color: var(--text-primary);
3286
+ border-color: var(--border);
2984
3287
  }
2985
3288
 
2986
3289
  .git-graph-output {
@@ -2990,12 +3293,12 @@ input:checked + .slider:before {
2990
3293
  padding: 10px;
2991
3294
  overflow: auto;
2992
3295
  color: var(--text-secondary);
2993
- background: var(--input-bg);
2994
- border: 1px solid var(--border-subtle);
2995
- border-radius: var(--radius-sm);
3296
+ background: var(--surface-strong, rgba(255, 255, 255, 0.04));
3297
+ border: 1px solid var(--border-default, rgba(255, 255, 255, 0.08));
3298
+ border-radius: var(--radius-md, 10px);
2996
3299
  font-family: var(--font-mono, monospace);
2997
- font-size: 0.68rem;
2998
- line-height: 1.65;
3300
+ font-size: 0.72rem;
3301
+ line-height: 1.6;
2999
3302
  tab-size: 14;
3000
3303
  white-space: pre;
3001
3304
  }
@@ -3010,7 +3313,7 @@ input:checked + .slider:before {
3010
3313
  display: grid;
3011
3314
  place-items: center;
3012
3315
  color: var(--text-muted);
3013
- font-size: 0.74rem;
3316
+ font-size: 0.76rem;
3014
3317
  }
3015
3318
 
3016
3319
  @media (max-width: 1100px) {
@@ -3066,7 +3369,7 @@ input:checked + .slider:before {
3066
3369
  background: var(--input-bg);
3067
3370
  border: 1px solid var(--border);
3068
3371
  border-bottom: 0;
3069
- border-radius: var(--radius-xl) var(--radius-xl) 0 0;
3372
+ border-radius: var(--radius-composer, 24px) var(--radius-composer, 24px) 0 0;
3070
3373
  display: flex;
3071
3374
  align-items: center;
3072
3375
  flex-wrap: wrap;
@@ -3159,26 +3462,28 @@ input:checked + .slider:before {
3159
3462
  }
3160
3463
 
3161
3464
  #chat-form {
3162
- min-height: 88px;
3465
+ min-height: 62px;
3163
3466
  display: grid;
3164
3467
  grid-template-columns: 32px 32px minmax(0, 1fr) 32px 32px;
3165
- grid-template-rows: auto minmax(48px, auto) 32px;
3468
+ grid-template-rows: auto minmax(26px, auto) 32px;
3166
3469
  align-items: end;
3167
3470
  gap: 6px;
3168
- padding: 10px 14px 10px 14px;
3471
+ padding: 6px 12px 8px 12px;
3169
3472
  background: var(--input-bg);
3170
3473
  border: 1px solid var(--border);
3171
- border-radius: var(--radius-xl);
3474
+ border-radius: var(--radius-composer, 20px);
3172
3475
  box-shadow: none;
3173
3476
  backdrop-filter: var(--glass-blur);
3174
3477
  -webkit-backdrop-filter: var(--glass-blur);
3175
3478
  }
3176
3479
 
3480
+ .project-context-row + #chat-form,
3177
3481
  .smart-context-bar + #chat-form {
3482
+ border-top: 0;
3178
3483
  border-top-left-radius: 0;
3179
3484
  border-top-right-radius: 0;
3180
- border-bottom-left-radius: var(--radius-xl);
3181
- border-bottom-right-radius: var(--radius-xl);
3485
+ border-bottom-left-radius: var(--radius-composer, 20px);
3486
+ border-bottom-right-radius: var(--radius-composer, 20px);
3182
3487
  }
3183
3488
 
3184
3489
  #chat-form:focus-within {
@@ -3238,8 +3543,62 @@ input:checked + .slider:before {
3238
3543
  cursor: pointer;
3239
3544
  }
3240
3545
 
3546
+ .composer-file-chip {
3547
+ display: inline-flex;
3548
+ align-items: center;
3549
+ gap: 6px;
3550
+ padding: 3px 8px 3px 10px;
3551
+ border-radius: var(--radius-full, 9999px);
3552
+ background: color-mix(in srgb, var(--surface-strong, #1e293b) 82%, var(--accent) 14%);
3553
+ border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--border, rgba(148, 163, 184, 0.2)));
3554
+ color: var(--text-primary, #f1f5f9);
3555
+ font-size: 0.78rem;
3556
+ font-weight: 500;
3557
+ max-width: 260px;
3558
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
3559
+ transition: border-color 0.15s ease, background 0.15s ease;
3560
+ }
3561
+
3562
+ .composer-file-chip:hover {
3563
+ border-color: var(--accent);
3564
+ background: color-mix(in srgb, var(--surface-strong, #1e293b) 75%, var(--accent) 20%);
3565
+ }
3566
+
3567
+ .composer-file-chip-icon {
3568
+ display: inline-flex;
3569
+ align-items: center;
3570
+ color: var(--accent);
3571
+ flex-shrink: 0;
3572
+ }
3573
+
3574
+ .composer-file-chip-name {
3575
+ overflow: hidden;
3576
+ text-overflow: ellipsis;
3577
+ white-space: nowrap;
3578
+ }
3579
+
3580
+ .composer-file-chip-remove {
3581
+ background: transparent;
3582
+ border: 0;
3583
+ padding: 2px;
3584
+ margin-left: 2px;
3585
+ color: var(--text-muted, #94a3b8);
3586
+ cursor: pointer;
3587
+ display: inline-flex;
3588
+ align-items: center;
3589
+ justify-content: center;
3590
+ border-radius: 50%;
3591
+ transition: color 0.15s ease, background 0.15s ease;
3592
+ flex-shrink: 0;
3593
+ }
3594
+
3595
+ .composer-file-chip-remove:hover {
3596
+ color: var(--status-error, #ef4444);
3597
+ background: rgba(239, 68, 68, 0.12);
3598
+ }
3599
+
3241
3600
  #chat-form:not(:has(.mint-attachment)) {
3242
- grid-template-rows: minmax(48px, auto) 32px;
3601
+ grid-template-rows: minmax(26px, auto) 32px;
3243
3602
  }
3244
3603
 
3245
3604
  #chat-form:not(:has(.mint-attachment)) #chat-input {
@@ -3249,20 +3608,45 @@ input:checked + .slider:before {
3249
3608
  #chat-form:not(:has(.mint-attachment)) .chat-tool-menu-wrap,
3250
3609
  #chat-form:not(:has(.mint-attachment)) #screen-capture-btn,
3251
3610
  #chat-form:not(:has(.mint-attachment)) .chat-provider-select,
3611
+ #chat-form:not(:has(.mint-attachment)) .chat-composer-pills,
3252
3612
  #chat-form:not(:has(.mint-attachment)) #send-btn {
3253
3613
  grid-row: 2;
3254
3614
  }
3255
3615
 
3616
+ .chat-composer-pills {
3617
+ grid-column: 3;
3618
+ grid-row: 3;
3619
+ display: flex;
3620
+ align-items: center;
3621
+ justify-content: space-between;
3622
+ gap: 8px;
3623
+ min-width: 0;
3624
+ width: 100%;
3625
+ position: static;
3626
+ }
3627
+
3628
+ .chat-composer-pills .model-selector-container {
3629
+ grid-column: auto;
3630
+ grid-row: auto;
3631
+ position: static;
3632
+ min-width: 0;
3633
+ flex-shrink: 1;
3634
+ }
3635
+
3636
+ .chat-composer-pills .chat-mode-selector-wrap {
3637
+ flex-shrink: 0;
3638
+ }
3639
+
3256
3640
  #chat-input {
3257
3641
  grid-column: 1 / -1;
3258
3642
  grid-row: 2;
3259
3643
  align-self: start;
3260
- min-height: 48px;
3261
- max-height: 120px;
3262
- padding: 12px 0;
3644
+ min-height: 26px;
3645
+ max-height: 140px;
3646
+ padding: 3px 2px 2px 2px;
3263
3647
  color: var(--text-main);
3264
- font-size: 1rem;
3265
- line-height: 1.5;
3648
+ font-size: 0.94rem;
3649
+ line-height: 1.45;
3266
3650
  resize: none;
3267
3651
  overflow-y: auto;
3268
3652
  border: 0;
@@ -3597,7 +3981,7 @@ input:checked + .slider:before {
3597
3981
  backdrop-filter: blur(20px) saturate(180%);
3598
3982
  -webkit-backdrop-filter: blur(20px) saturate(180%);
3599
3983
  border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.08));
3600
- border-radius: var(--radius-xl, 14px);
3984
+ border-radius: var(--radius-full, 9999px);
3601
3985
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.35),
3602
3986
  0 1px 0 0 rgba(255, 255, 255, 0.04) inset;
3603
3987
  position: sticky;
@@ -3655,7 +4039,7 @@ input:checked + .slider:before {
3655
4039
  padding: 2px 8px;
3656
4040
  background: rgba(255, 255, 255, 0.06);
3657
4041
  border: 1px solid rgba(255, 255, 255, 0.08);
3658
- border-radius: var(--radius-sm, 6px);
4042
+ border-radius: var(--radius-full, 9999px);
3659
4043
  font-size: 0.76rem;
3660
4044
  font-weight: 500;
3661
4045
  color: var(--text-secondary, #94a3b8);
@@ -3705,7 +4089,7 @@ input:checked + .slider:before {
3705
4089
  justify-content: center;
3706
4090
  width: 30px;
3707
4091
  height: 30px;
3708
- border-radius: 8px;
4092
+ border-radius: var(--radius-full, 9999px);
3709
4093
  background: color-mix(in srgb, var(--bg-surface, #202632) 70%, transparent);
3710
4094
  border: 1px solid color-mix(in srgb, var(--border, rgba(255, 255, 255, 0.08)) 80%, transparent);
3711
4095
  color: var(--text-muted, #94a3b8);
@@ -3735,8 +4119,8 @@ input:checked + .slider:before {
3735
4119
  gap: 5px;
3736
4120
  background: color-mix(in srgb, var(--bg-surface, #202632) 80%, transparent);
3737
4121
  border: 1px solid var(--border-default, rgba(255, 255, 255, 0.1));
3738
- border-radius: var(--radius-xs, 6px);
3739
- padding: 3px 9px;
4122
+ border-radius: var(--radius-full, 9999px);
4123
+ padding: 4px 11px;
3740
4124
  color: var(--text-primary);
3741
4125
  font-size: 0.8rem;
3742
4126
  font-weight: 500;
@@ -3762,14 +4146,19 @@ input:checked + .slider:before {
3762
4146
  display: inline-flex;
3763
4147
  align-items: center;
3764
4148
  gap: 6px;
3765
- padding: 2px 8px;
3766
- border-radius: 6px;
3767
- background: color-mix(in srgb, var(--accent, #10b981) 10%, transparent);
3768
- border: 1px solid color-mix(in srgb, var(--accent, #10b981) 20%, transparent);
4149
+ padding: 4px 10px;
4150
+ border-radius: var(--radius-full, 9999px);
4151
+ background: color-mix(in srgb, var(--bg-surface, #202632) 80%, transparent);
4152
+ border: 1px solid var(--border-default, rgba(255, 255, 255, 0.1));
3769
4153
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
3770
- font-size: 0.8rem;
3771
- font-weight: 600;
3772
- color: var(--interactive-fg);
4154
+ font-size: 0.78rem;
4155
+ font-weight: 500;
4156
+ color: var(--text-secondary);
4157
+ user-select: none;
4158
+ }
4159
+
4160
+ .chat-header .tools-panel-toggle {
4161
+ border-radius: var(--radius-full, 9999px);
3773
4162
  }
3774
4163
 
3775
4164
  .drag-drop-overlay {
@@ -3929,6 +4318,50 @@ input:checked + .slider:before {
3929
4318
  color: #dc2626;
3930
4319
  }
3931
4320
 
4321
+ [data-theme="light"] .project-context-row {
4322
+ background: #ffffff;
4323
+ border-color: rgba(15, 23, 42, 0.16);
4324
+ }
4325
+
4326
+ [data-theme="light"] .project-context-row .git-branch-trigger {
4327
+ background: #f1f5f9;
4328
+ border-color: rgba(15, 23, 42, 0.1);
4329
+ color: #334155;
4330
+ }
4331
+
4332
+ [data-theme="light"] .project-context-row .git-branch-trigger:hover,
4333
+ [data-theme="light"] .project-context-row .git-branch-trigger[aria-expanded='true'] {
4334
+ background: #e2e8f0;
4335
+ border-color: rgba(15, 23, 42, 0.18);
4336
+ color: #0f172a;
4337
+ }
4338
+
4339
+ [data-theme="light"] .git-branch-menu {
4340
+ background: #ffffff;
4341
+ border-color: rgba(15, 23, 42, 0.12);
4342
+ box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.05);
4343
+ }
4344
+
4345
+ [data-theme="light"] .git-branch-search {
4346
+ background: #f8fafc;
4347
+ border-color: rgba(15, 23, 42, 0.1);
4348
+ }
4349
+
4350
+ [data-theme="light"] .git-branch-option:hover,
4351
+ [data-theme="light"] .git-branch-actions button:hover {
4352
+ background: #f1f5f9;
4353
+ }
4354
+
4355
+ [data-theme="light"] .git-branch-option[aria-selected='true'] {
4356
+ background: #e2e8f0;
4357
+ border-color: rgba(15, 23, 42, 0.18);
4358
+ }
4359
+
4360
+ [data-theme="light"] .git-graph-output {
4361
+ background: #f8fafc;
4362
+ border-color: rgba(15, 23, 42, 0.1);
4363
+ }
4364
+
3932
4365
  [data-theme="light"] .smart-context-bar,
3933
4366
  [data-theme="light"] #chat-form {
3934
4367
  background: #ffffff;
@@ -3978,3 +4411,658 @@ input:checked + .slider:before {
3978
4411
  color: #e1e1e1;
3979
4412
  }
3980
4413
 
4414
+ .chat-artifact-open-btn:hover {
4415
+ background: color-mix(in srgb, var(--text-main, #ffffff) 14%, transparent) !important;
4416
+ border-color: var(--border-light, var(--border)) !important;
4417
+ }
4418
+
4419
+ /* Inline Message Editing */
4420
+ .inline-edit-container {
4421
+ display: flex;
4422
+ flex-direction: column;
4423
+ width: 100%;
4424
+ min-width: 300px;
4425
+ max-width: 680px;
4426
+ gap: 8px;
4427
+ margin-bottom: 4px;
4428
+ }
4429
+
4430
+ .inline-edit-textarea {
4431
+ width: 100%;
4432
+ min-height: 58px;
4433
+ max-height: 400px;
4434
+ padding: 12px 14px;
4435
+ font: inherit;
4436
+ font-size: 0.95rem;
4437
+ line-height: 1.5;
4438
+ color: var(--text-main, #ffffff);
4439
+ background: var(--bg-surface-raised, #18181b);
4440
+ border: 1px solid var(--accent);
4441
+ border-radius: var(--radius-xl, 14px);
4442
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 30%, transparent), 0 4px 12px rgba(0, 0, 0, 0.15);
4443
+ resize: none;
4444
+ outline: none;
4445
+ box-sizing: border-box;
4446
+ transition: border-color 0.15s ease, box-shadow 0.15s ease;
4447
+ }
4448
+
4449
+ .inline-edit-textarea:focus {
4450
+ border-color: var(--accent);
4451
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 45%, transparent), 0 4px 16px rgba(0, 0, 0, 0.2);
4452
+ }
4453
+
4454
+ .inline-edit-footer {
4455
+ display: flex;
4456
+ align-items: center;
4457
+ justify-content: space-between;
4458
+ gap: 12px;
4459
+ padding: 0 2px;
4460
+ }
4461
+
4462
+ .inline-edit-hint {
4463
+ color: var(--text-muted, #71717a);
4464
+ font-size: 0.72rem;
4465
+ letter-spacing: 0.01em;
4466
+ user-select: none;
4467
+ }
4468
+
4469
+ .inline-edit-actions {
4470
+ display: flex;
4471
+ align-items: center;
4472
+ gap: 8px;
4473
+ }
4474
+
4475
+ .inline-edit-btn {
4476
+ display: inline-flex;
4477
+ align-items: center;
4478
+ justify-content: center;
4479
+ padding: 6px 14px;
4480
+ font-size: 0.8rem;
4481
+ font-weight: 500;
4482
+ border-radius: var(--radius-md, 8px);
4483
+ cursor: pointer;
4484
+ transition: all 0.15s ease;
4485
+ border: 1px solid transparent;
4486
+ line-height: 1.2;
4487
+ }
4488
+
4489
+ .inline-edit-btn.cancel {
4490
+ background: transparent;
4491
+ border-color: var(--border, rgba(255, 255, 255, 0.15));
4492
+ color: var(--text-soft, var(--text-muted, #a1a1aa));
4493
+ }
4494
+
4495
+ .inline-edit-btn.cancel:hover {
4496
+ background: var(--bg-surface-soft, rgba(255, 255, 255, 0.08));
4497
+ color: var(--text-main, #ffffff);
4498
+ }
4499
+
4500
+ .inline-edit-btn.submit {
4501
+ background: var(--accent);
4502
+ color: var(--text-on-accent, #ffffff);
4503
+ box-shadow: 0 2px 8px color-mix(in srgb, var(--accent) 35%, transparent);
4504
+ }
4505
+
4506
+ .inline-edit-btn.submit:hover:not(:disabled) {
4507
+ filter: brightness(1.1);
4508
+ transform: translateY(-1px);
4509
+ }
4510
+
4511
+ .inline-edit-btn.submit:disabled {
4512
+ opacity: 0.45;
4513
+ cursor: not-allowed;
4514
+ transform: none;
4515
+ }
4516
+
4517
+ /* Modern Developer-Centric Activity Timeline (Claude Code / Cursor Style) */
4518
+ .modern-activity-history {
4519
+ margin-bottom: 12px;
4520
+ }
4521
+
4522
+ .modern-activity-toggle {
4523
+ display: flex;
4524
+ flex-direction: column;
4525
+ align-items: flex-start;
4526
+ gap: 3px;
4527
+ background: transparent !important;
4528
+ border: none !important;
4529
+ padding: 4px 6px;
4530
+ cursor: pointer;
4531
+ border-radius: var(--radius-xs, 4px);
4532
+ text-align: left;
4533
+ width: 100%;
4534
+ transition: background 0.15s ease;
4535
+ }
4536
+
4537
+ .modern-activity-toggle:hover {
4538
+ background: color-mix(in srgb, var(--panel-soft) 40%, transparent) !important;
4539
+ }
4540
+
4541
+ .modern-activity-header {
4542
+ display: flex;
4543
+ align-items: center;
4544
+ justify-content: space-between;
4545
+ gap: 8px;
4546
+ margin-bottom: 2px;
4547
+ }
4548
+
4549
+ .modern-activity-header-left {
4550
+ display: flex;
4551
+ align-items: center;
4552
+ gap: 6px;
4553
+ }
4554
+
4555
+ .modern-activity-duration {
4556
+ font-size: 0.96rem;
4557
+ font-weight: 500;
4558
+ color: var(--text-soft);
4559
+ letter-spacing: -0.01em;
4560
+ }
4561
+
4562
+ .modern-activity-subheader {
4563
+ display: flex;
4564
+ align-items: center;
4565
+ gap: 6px;
4566
+ font-size: 0.92rem;
4567
+ color: var(--text-muted);
4568
+ user-select: none;
4569
+ padding: 1px 2px;
4570
+ border-radius: var(--radius-xs, 4px);
4571
+ transition: color 0.15s ease;
4572
+ }
4573
+
4574
+ .modern-activity-subheader:hover {
4575
+ color: var(--text-soft);
4576
+ }
4577
+
4578
+ .modern-activity-natural-summary {
4579
+ font-size: 0.92rem;
4580
+ color: var(--text-muted);
4581
+ }
4582
+
4583
+ .modern-activity-subchevron {
4584
+ color: var(--text-muted);
4585
+ transition: transform 0.18s ease;
4586
+ }
4587
+
4588
+ .modern-activity-subchevron.is-open {
4589
+ transform: rotate(180deg);
4590
+ }
4591
+
4592
+ .modern-activity-card {
4593
+ padding: 2px 0 6px 0;
4594
+ border: none !important;
4595
+ background: transparent !important;
4596
+ box-shadow: none !important;
4597
+ }
4598
+
4599
+ .agent-activity-card-history,
4600
+ .modern-activity-content {
4601
+ margin-left: 0 !important;
4602
+ padding: 2px 0 6px 0 !important;
4603
+ border: none !important;
4604
+ box-sizing: border-box;
4605
+ width: 100%;
4606
+ }
4607
+
4608
+ .modern-activity-list {
4609
+ display: flex;
4610
+ flex-direction: column;
4611
+ gap: 3px;
4612
+ padding-top: 4px;
4613
+ margin-left: 12px;
4614
+ padding-left: 8px;
4615
+ border-left: 1.5px solid color-mix(in srgb, var(--border) 60%, transparent);
4616
+ max-width: calc(100% - 12px);
4617
+ box-sizing: border-box;
4618
+ }
4619
+
4620
+ /* 100% Borderless & Transparent Timeline Rows (Eliminating all legacy boxed borders) */
4621
+ .modern-activity-list .agent-activity-item,
4622
+ .modern-activity-list .agent-activity-group,
4623
+ .modern-activity-list .agent-activity-thought-step,
4624
+ .modern-timeline-group,
4625
+ .modern-timeline-thought-item {
4626
+ border: none !important;
4627
+ background: transparent !important;
4628
+ box-shadow: none !important;
4629
+ border-radius: var(--radius-xs, 4px) !important;
4630
+ overflow: visible !important;
4631
+ margin: 0 !important;
4632
+ }
4633
+
4634
+ .modern-timeline-row {
4635
+ display: flex;
4636
+ align-items: center;
4637
+ gap: 9px;
4638
+ min-height: 28px;
4639
+ padding: 3px 6px;
4640
+ border-radius: var(--radius-xs, 4px);
4641
+ font-size: 0.94rem;
4642
+ line-height: 1.45;
4643
+ color: var(--text-soft);
4644
+ transition: background 0.12s ease, color 0.12s ease;
4645
+ user-select: none;
4646
+ border: none !important;
4647
+ background: transparent !important;
4648
+ }
4649
+
4650
+ .modern-timeline-row:hover {
4651
+ background: color-mix(in srgb, var(--panel-soft) 50%, transparent) !important;
4652
+ color: var(--text-main);
4653
+ }
4654
+
4655
+ .modern-activity-list .agent-activity-thought-header,
4656
+ .modern-activity-list .agent-activity-group-header,
4657
+ .modern-thought-row,
4658
+ .modern-group-row {
4659
+ border: none !important;
4660
+ background: transparent !important;
4661
+ min-height: 28px !important;
4662
+ padding: 3px 6px !important;
4663
+ box-shadow: none !important;
4664
+ border-radius: var(--radius-xs, 4px) !important;
4665
+ }
4666
+
4667
+ .modern-activity-list .agent-activity-thought-header:hover,
4668
+ .modern-activity-list .agent-activity-group-header:hover,
4669
+ .modern-thought-row:hover,
4670
+ .modern-group-row:hover {
4671
+ background: color-mix(in srgb, var(--panel-soft) 50%, transparent) !important;
4672
+ }
4673
+
4674
+ .modern-timeline-verb {
4675
+ font-size: 0.92rem;
4676
+ font-weight: 500;
4677
+ color: var(--text-muted);
4678
+ flex-shrink: 0;
4679
+ min-width: 48px;
4680
+ }
4681
+
4682
+ .modern-timeline-icon-wrap {
4683
+ display: inline-flex;
4684
+ align-items: center;
4685
+ justify-content: center;
4686
+ width: 17px;
4687
+ height: 17px;
4688
+ flex-shrink: 0;
4689
+ }
4690
+
4691
+ .modern-timeline-target {
4692
+ flex: 1;
4693
+ min-width: 0;
4694
+ display: flex;
4695
+ align-items: center;
4696
+ gap: 6px;
4697
+ overflow: hidden;
4698
+ text-overflow: ellipsis;
4699
+ white-space: nowrap;
4700
+ font-size: 0.94rem;
4701
+ font-weight: 450;
4702
+ color: var(--text-main);
4703
+ }
4704
+
4705
+ .modern-timeline-line-range {
4706
+ font-family: var(--font-mono, monospace);
4707
+ font-size: 0.85rem;
4708
+ color: var(--text-muted);
4709
+ margin-left: 2px;
4710
+ flex-shrink: 0;
4711
+ }
4712
+
4713
+ .modern-timeline-diff-stats {
4714
+ display: inline-flex;
4715
+ align-items: center;
4716
+ gap: 5px;
4717
+ font-family: var(--font-mono, monospace);
4718
+ font-size: 0.88rem;
4719
+ font-weight: 500;
4720
+ margin-left: 6px;
4721
+ flex-shrink: 0;
4722
+ }
4723
+
4724
+ .diff-stat-add {
4725
+ color: #4ade80;
4726
+ }
4727
+
4728
+ .diff-stat-del {
4729
+ color: #f87171;
4730
+ }
4731
+
4732
+ .modern-timeline-status-col {
4733
+ display: inline-flex;
4734
+ align-items: center;
4735
+ gap: 6px;
4736
+ margin-left: auto;
4737
+ flex-shrink: 0;
4738
+ }
4739
+
4740
+ .modern-timeline-count-badge {
4741
+ display: inline-flex;
4742
+ align-items: center;
4743
+ justify-content: center;
4744
+ padding: 0 6px;
4745
+ min-width: 18px;
4746
+ height: 18px;
4747
+ font-size: 0.74rem;
4748
+ font-weight: 600;
4749
+ border-radius: 9999px;
4750
+ background: color-mix(in srgb, var(--panel-soft) 70%, transparent);
4751
+ color: var(--text-muted);
4752
+ }
4753
+
4754
+ .modern-timeline-chevron {
4755
+ color: var(--text-muted);
4756
+ transition: transform 0.18s ease;
4757
+ flex-shrink: 0;
4758
+ }
4759
+
4760
+ .modern-timeline-chevron.inline-chevron {
4761
+ margin-left: 4px;
4762
+ }
4763
+
4764
+ .modern-timeline-chevron.is-open {
4765
+ transform: rotate(90deg);
4766
+ }
4767
+
4768
+ .modern-timeline-thought-item {
4769
+ display: flex;
4770
+ flex-direction: column;
4771
+ }
4772
+
4773
+ .modern-thought-row {
4774
+ cursor: pointer;
4775
+ display: flex;
4776
+ align-items: center;
4777
+ }
4778
+
4779
+ .modern-timeline-thought-label {
4780
+ font-size: 0.92rem;
4781
+ color: var(--text-muted);
4782
+ font-weight: 500;
4783
+ display: inline-flex;
4784
+ align-items: center;
4785
+ gap: 5px;
4786
+ }
4787
+
4788
+ .modern-activity-list .agent-activity-thought-body,
4789
+ .modern-thought-body {
4790
+ margin-left: 14px !important;
4791
+ margin-top: 3px !important;
4792
+ margin-bottom: 6px !important;
4793
+ padding: 4px 10px 4px 14px !important;
4794
+ border: none !important;
4795
+ background: transparent !important;
4796
+ border-left: 2px solid color-mix(in srgb, var(--text-muted) 35%, transparent) !important;
4797
+ border-radius: 0 !important;
4798
+ color: var(--text-muted) !important;
4799
+ font-size: 0.90rem !important;
4800
+ line-height: 1.55;
4801
+ max-height: 380px;
4802
+ overflow-y: auto;
4803
+ }
4804
+
4805
+ .modern-thought-body .chat-formatted-body {
4806
+ font-size: 0.90rem;
4807
+ line-height: 1.55;
4808
+ color: var(--text-muted);
4809
+ gap: 6px;
4810
+ }
4811
+
4812
+ .modern-thought-body .chat-paragraph {
4813
+ font-size: 0.90rem;
4814
+ line-height: 1.55;
4815
+ color: var(--text-muted);
4816
+ margin-bottom: 6px;
4817
+ }
4818
+
4819
+ .modern-thought-body .chat-heading {
4820
+ font-size: 0.96rem;
4821
+ font-weight: 600;
4822
+ color: var(--text-main);
4823
+ margin-top: 10px;
4824
+ margin-bottom: 4px;
4825
+ }
4826
+
4827
+ .modern-thought-body .chat-heading-1 {
4828
+ font-size: 1.05rem;
4829
+ }
4830
+
4831
+ .modern-thought-body .chat-heading-2 {
4832
+ font-size: 0.98rem;
4833
+ }
4834
+
4835
+ .modern-thought-body .chat-heading-3 {
4836
+ font-size: 0.92rem;
4837
+ }
4838
+
4839
+ .modern-thought-body .chat-list-item {
4840
+ font-size: 0.90rem;
4841
+ line-height: 1.5;
4842
+ margin: 2px 0 2px 4px;
4843
+ color: var(--text-muted);
4844
+ }
4845
+
4846
+ .modern-thought-body blockquote {
4847
+ border-left: 2px solid var(--accent);
4848
+ padding: 4px 10px;
4849
+ margin: 6px 0;
4850
+ background: color-mix(in srgb, var(--accent) 8%, transparent);
4851
+ border-radius: var(--radius-xs, 4px);
4852
+ color: var(--text-soft);
4853
+ font-size: 0.88rem;
4854
+ }
4855
+
4856
+ .modern-timeline-output {
4857
+ margin: 3px 0 6px 14px;
4858
+ padding: 8px 12px;
4859
+ background: color-mix(in srgb, var(--bg-surface-raised, #000) 80%, transparent);
4860
+ border-radius: var(--radius-xs, 4px);
4861
+ border: 1px solid var(--border);
4862
+ font-family: var(--font-mono, monospace);
4863
+ font-size: 0.84rem;
4864
+ max-height: 250px;
4865
+ overflow-y: auto;
4866
+ }
4867
+
4868
+ .modern-directory-listing {
4869
+ display: flex;
4870
+ flex-direction: column;
4871
+ gap: 1px;
4872
+ padding: 2px 0;
4873
+ font-family: var(--font-mono, monospace);
4874
+ font-size: 0.82rem;
4875
+ }
4876
+
4877
+ .modern-directory-item {
4878
+ display: flex;
4879
+ align-items: center;
4880
+ gap: 8px;
4881
+ padding: 3px 6px;
4882
+ border-radius: var(--radius-xs, 4px);
4883
+ color: var(--text-soft);
4884
+ transition: background 0.12s ease, color 0.12s ease;
4885
+ user-select: text;
4886
+ }
4887
+
4888
+ .modern-directory-item:hover {
4889
+ background: color-mix(in srgb, var(--accent, #38bdf8) 8%, transparent);
4890
+ color: var(--text-main, #fff);
4891
+ }
4892
+
4893
+ .modern-directory-item:hover .modern-dir-mention-btn {
4894
+ opacity: 1;
4895
+ }
4896
+
4897
+ .modern-directory-item-icon {
4898
+ width: 15px;
4899
+ height: 15px;
4900
+ flex-shrink: 0;
4901
+ display: inline-flex;
4902
+ align-items: center;
4903
+ justify-content: center;
4904
+ }
4905
+
4906
+ .modern-directory-item-icon img {
4907
+ width: 15px;
4908
+ height: 15px;
4909
+ object-fit: contain;
4910
+ }
4911
+
4912
+ .modern-directory-item-name {
4913
+ flex: 1;
4914
+ min-width: 0;
4915
+ overflow: hidden;
4916
+ text-overflow: ellipsis;
4917
+ white-space: nowrap;
4918
+ }
4919
+
4920
+ .modern-directory-item.is-directory .modern-directory-item-name {
4921
+ color: var(--text-main, #eee);
4922
+ font-weight: 500;
4923
+ }
4924
+
4925
+ .modern-directory-item-size {
4926
+ flex-shrink: 0;
4927
+ font-size: 0.74rem;
4928
+ color: var(--text-muted);
4929
+ font-variant-numeric: tabular-nums;
4930
+ margin-left: auto;
4931
+ }
4932
+
4933
+ .modern-dir-mention-btn {
4934
+ opacity: 0;
4935
+ transition: opacity 0.12s ease;
4936
+ font-size: 0.72rem;
4937
+ padding: 0 4px;
4938
+ height: 18px;
4939
+ margin-left: 4px;
4940
+ }
4941
+
4942
+ .modern-directory-empty {
4943
+ color: var(--text-muted);
4944
+ font-style: italic;
4945
+ padding: 4px 6px;
4946
+ }
4947
+
4948
+ .modern-activity-list .agent-activity-group-subitems,
4949
+ .modern-group-subitems {
4950
+ background: transparent !important;
4951
+ border: none !important;
4952
+ border-top: none !important;
4953
+ border-left: 1px solid color-mix(in srgb, var(--border) 60%, transparent) !important;
4954
+ padding: 2px 0 2px 8px !important;
4955
+ margin-left: 14px !important;
4956
+ margin-top: 2px !important;
4957
+ margin-bottom: 4px !important;
4958
+ }
4959
+
4960
+ /* ==========================================================================
4961
+ Modern Ask-User Completed Activity Card
4962
+ Rendered in the agent activity timeline after questions are answered
4963
+ ========================================================================== */
4964
+ .modern-ask-user-card {
4965
+ margin: 8px 0;
4966
+ padding: 14px 16px;
4967
+ border-radius: var(--radius-lg, 12px);
4968
+ background: var(--surface-subtle, rgba(255, 255, 255, 0.025));
4969
+ border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.08));
4970
+ display: flex;
4971
+ flex-direction: column;
4972
+ gap: 12px;
4973
+ box-sizing: border-box;
4974
+ width: 100%;
4975
+ text-align: left;
4976
+ }
4977
+
4978
+ .modern-ask-user-header {
4979
+ display: flex;
4980
+ align-items: center;
4981
+ gap: 8px;
4982
+ color: var(--text-muted, #94a3b8);
4983
+ font-size: 0.82rem;
4984
+ font-weight: 500;
4985
+ letter-spacing: -0.01em;
4986
+ user-select: none;
4987
+ }
4988
+
4989
+ .modern-ask-user-header-icon {
4990
+ display: inline-flex;
4991
+ align-items: center;
4992
+ justify-content: center;
4993
+ color: var(--text-muted, #94a3b8);
4994
+ flex-shrink: 0;
4995
+ }
4996
+
4997
+ .modern-ask-user-header-text {
4998
+ line-height: 1;
4999
+ color: var(--text-muted, #94a3b8);
5000
+ }
5001
+
5002
+ .modern-ask-user-items {
5003
+ display: flex;
5004
+ flex-direction: column;
5005
+ gap: 0;
5006
+ }
5007
+
5008
+ .modern-ask-user-item {
5009
+ display: flex;
5010
+ flex-direction: column;
5011
+ gap: 5px;
5012
+ }
5013
+
5014
+ .modern-ask-user-item + .modern-ask-user-item {
5015
+ margin-top: 14px;
5016
+ padding-top: 14px;
5017
+ border-top: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.08));
5018
+ }
5019
+
5020
+ .modern-ask-user-question {
5021
+ color: var(--text-main, #f4f4f5);
5022
+ font-size: 0.86rem;
5023
+ font-weight: 500;
5024
+ line-height: 1.45;
5025
+ word-break: break-word;
5026
+ }
5027
+
5028
+ .modern-ask-user-answer {
5029
+ color: var(--text-soft, #a1a1aa);
5030
+ font-size: 0.82rem;
5031
+ line-height: 1.48;
5032
+ word-break: break-word;
5033
+ }
5034
+
5035
+ /* Light theme overrides */
5036
+ [data-theme='light'] .modern-ask-user-card,
5037
+ body.light-theme .modern-ask-user-card {
5038
+ background: var(--surface-subtle, rgba(0, 0, 0, 0.02));
5039
+ border-color: var(--border-subtle, rgba(0, 0, 0, 0.08));
5040
+ }
5041
+
5042
+ [data-theme='light'] .modern-ask-user-item + .modern-ask-user-item,
5043
+ body.light-theme .modern-ask-user-item + .modern-ask-user-item {
5044
+ border-top-color: var(--border-subtle, rgba(0, 0, 0, 0.08));
5045
+ }
5046
+
5047
+ [data-theme='light'] .modern-ask-user-question,
5048
+ body.light-theme .modern-ask-user-question {
5049
+ color: var(--text-main, #0f172a);
5050
+ }
5051
+
5052
+ [data-theme='light'] .modern-ask-user-answer,
5053
+ body.light-theme .modern-ask-user-answer {
5054
+ color: var(--text-soft, #475569);
5055
+ }
5056
+
5057
+ [data-theme='light'] .modern-ask-user-header,
5058
+ body.light-theme .modern-ask-user-header,
5059
+ [data-theme='light'] .modern-ask-user-header-icon,
5060
+ body.light-theme .modern-ask-user-header-icon,
5061
+ [data-theme='light'] .modern-ask-user-header-text,
5062
+ body.light-theme .modern-ask-user-header-text {
5063
+ color: var(--text-muted, #64748b);
5064
+ }
5065
+
5066
+
5067
+
5068
+