@pheem49/mint 1.14.0 → 1.15.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 (585) hide show
  1. package/CLAUDE.md +1 -1
  2. package/Cargo.lock +291 -11
  3. package/Cargo.toml +1 -1
  4. package/README.md +71 -9
  5. package/ROADMAP.md +30 -0
  6. package/Release_Note.md +579 -465
  7. package/crates/mint-cli/Cargo.toml +3 -1
  8. package/crates/mint-cli/src/agent/approval_prompts.rs +16 -3
  9. package/crates/mint-cli/src/agent/live_status.rs +367 -118
  10. package/crates/mint-cli/src/agent/markdown_render.rs +601 -61
  11. package/crates/mint-cli/src/agent.rs +452 -215
  12. package/crates/mint-cli/src/commands/agent.rs +16 -21
  13. package/crates/mint-cli/src/commands/eval.rs +9 -5
  14. package/crates/mint-cli/src/commands/git.rs +204 -0
  15. package/crates/mint-cli/src/commands/integrations.rs +28 -0
  16. package/crates/mint-cli/src/commands/knowledge.rs +1 -0
  17. package/crates/mint-cli/src/commands/mod.rs +37 -2
  18. package/crates/mint-cli/src/commands/tailnet_web.rs +235 -0
  19. package/crates/mint-cli/src/image.rs +26 -3
  20. package/crates/mint-cli/src/interactive/chat_tui.rs +4742 -0
  21. package/crates/mint-cli/src/interactive/command_ui.rs +477 -0
  22. package/crates/mint-cli/src/interactive/format.rs +8 -0
  23. package/crates/mint-cli/src/interactive/input_box.rs +38 -2
  24. package/crates/mint-cli/src/interactive/picker.rs +180 -37
  25. package/crates/mint-cli/src/interactive/resume_picker.rs +686 -0
  26. package/crates/mint-cli/src/interactive/slash_commands.rs +868 -450
  27. package/crates/mint-cli/src/interactive/thought_viewer.rs +286 -0
  28. package/crates/mint-cli/src/interactive.rs +400 -136
  29. package/crates/mint-cli/src/main.rs +84 -23
  30. package/crates/mint-cli/src/markdown.rs +12 -5
  31. package/crates/mint-cli/src/onboard.rs +32 -30
  32. package/crates/mint-cli/src/plugins_cli.rs +8 -5
  33. package/crates/mint-cli/src/setup.rs +10 -8
  34. package/crates/mint-cli/src/terminal_theme.rs +187 -0
  35. package/crates/mint-cli/src/updater.rs +56 -21
  36. package/crates/mint-core/src/agent/agent_loop.rs +1 -0
  37. package/crates/mint-core/src/agent/chat.rs +843 -177
  38. package/crates/mint-core/src/agent/code_tools.rs +83 -2
  39. package/crates/mint-core/src/agent/memory.rs +658 -20
  40. package/crates/mint-core/src/agent/skills.rs +1 -1
  41. package/crates/mint-core/src/api_server/routes/chat.rs +31 -5
  42. package/crates/mint-core/src/api_server/routes/linked_folders.rs +118 -3
  43. package/crates/mint-core/src/api_server/routes/misc.rs +10 -14
  44. package/crates/mint-core/src/api_server/routes/sessions.rs +44 -0
  45. package/crates/mint-core/src/api_server.rs +22 -3
  46. package/crates/mint-core/src/avatar_bridge.rs +2 -0
  47. package/crates/mint-core/src/browser/cdp.rs +74 -83
  48. package/crates/mint-core/src/browser/evidence.rs +260 -0
  49. package/crates/mint-core/src/browser/input.rs +1 -1
  50. package/crates/mint-core/src/browser/interact.rs +98 -124
  51. package/crates/mint-core/src/browser/lifecycle.rs +75 -4
  52. package/crates/mint-core/src/browser/mod.rs +16 -2
  53. package/crates/mint-core/src/browser/navigate.rs +27 -19
  54. package/crates/mint-core/src/browser/observe.js +40 -0
  55. package/crates/mint-core/src/browser/session.rs +1558 -0
  56. package/crates/mint-core/src/git/branches.rs +348 -0
  57. package/crates/mint-core/src/git/checkpoint.rs +40 -0
  58. package/crates/mint-core/src/git/diff.rs +206 -0
  59. package/crates/mint-core/src/git/mod.rs +10 -2
  60. package/crates/mint-core/src/integrations/channels.rs +1 -0
  61. package/crates/mint-core/src/lib.rs +22 -14
  62. package/crates/mint-core/src/live_sync.rs +28 -9
  63. package/crates/mint-core/src/media/auto_shorts.rs +1 -0
  64. package/crates/mint-core/src/media/gemini_live.rs +12 -1
  65. package/crates/mint-core/src/media/mic_transcribe.rs +1 -0
  66. package/crates/mint-core/src/media/subtitle.rs +1 -0
  67. package/crates/mint-core/src/orchestration/context_render.rs +1 -0
  68. package/crates/mint-core/src/orchestration/memory_skill.rs +6 -1
  69. package/crates/mint-core/src/orchestration/mod.rs +1024 -271
  70. package/crates/mint-core/src/orchestration/tools/browser.rs +16 -139
  71. package/crates/mint-core/src/orchestration/tools/misc.rs +2 -1
  72. package/crates/mint-core/src/orchestration/tools/web.rs +1 -1
  73. package/crates/mint-core/src/prompts/agent.rs +58 -29
  74. package/crates/mint-core/src/prompts/chat.rs +1 -1
  75. package/crates/mint-core/src/prompts/persona.rs +1 -1
  76. package/crates/mint-core/src/prompts/tool_catalog.rs +93 -25
  77. package/crates/mint-core/src/search/linked_folders/index.rs +732 -0
  78. package/crates/mint-core/src/search/linked_folders.rs +391 -130
  79. package/crates/mint-core/src/slash/mod.rs +470 -22
  80. package/crates/mint-core/src/slash/model_fetcher.rs +12 -3
  81. package/crates/mint-core/src/slash/models.rs +66 -10
  82. package/crates/mint-core/src/system/config.rs +230 -0
  83. package/crates/mint-core/src/system/workspace.rs +228 -0
  84. package/crates/mint-core/src/system.rs +1 -0
  85. package/crates/mint-core/tests/memory_persistence.rs +39 -0
  86. package/mint-presentation-demo.mp4 +0 -0
  87. package/out/web/assets/CliSessionsView-BxUVWEEL.js +1 -0
  88. package/out/web/assets/CliSessionsView-CBDTXuQv.css +1 -0
  89. package/out/web/assets/CodeReviewPage-DkMgfcos.css +1 -0
  90. package/out/web/assets/CodeReviewPage-jKlmLJwT.js +3 -0
  91. package/out/web/assets/CommandPalette-DnwPA5hy.js +1 -0
  92. package/out/web/assets/ImageStudioPanel-BR1XFwhR.js +1 -0
  93. package/out/web/assets/ImageStudioPanel-D0lnhQV5.css +1 -0
  94. package/out/web/assets/LinkedFoldersView-bi-CWQ-I.js +1 -0
  95. package/out/web/assets/McpRegistryPicker-D5tEFnyq.js +1 -0
  96. package/out/web/assets/McpServersView-BGG1dhFM.js +1 -0
  97. package/out/web/assets/MintDashboard-BIglDEWX.js +20 -0
  98. package/out/web/assets/MintDashboard-DSMywSgs.css +1 -0
  99. package/out/web/assets/ModelPanel-CbJ1PFoZ.js +1 -0
  100. package/out/web/assets/PicturesLibrary-CQP0fLP1.css +1 -0
  101. package/out/web/assets/PicturesLibrary-DoYN7T1p.js +1 -0
  102. package/out/web/assets/PluginsView-CU1HWXGk.js +1 -0
  103. package/out/web/assets/ScheduledTasksView-Bnl36y2N.js +1 -0
  104. package/out/web/assets/SettingsWindow-DhWLAn9T.css +1 -0
  105. package/out/web/assets/SettingsWindow-Dw8L01pw.js +2 -0
  106. package/out/web/assets/SkillsView-cnl8aY5p.js +2 -0
  107. package/out/web/assets/ToolSurfacePage-CgsQw6l5.css +1 -0
  108. package/out/web/assets/ToolSurfacePage-Cz2VJAPZ.js +37 -0
  109. package/out/web/assets/VeoStudioPanel-D4JnERWR.js +4 -0
  110. package/out/web/assets/VeoStudioPanel-DOj7_WR3.css +1 -0
  111. package/out/web/assets/WorkspacePanel-CbJ1PFoZ.js +1 -0
  112. package/out/web/assets/{abnfDiagram-VCTEODGH-DAOBA7ZG.js → abnfDiagram-VCTEODGH-ByMyfanq.js} +1 -1
  113. package/out/web/assets/{architecture-7GRP2DOG-CgSwQOPQ.js → architecture-7GRP2DOG-CLq2kEOB.js} +1 -1
  114. package/out/web/assets/{architectureDiagram-5GKGNRK7-CYp3yupP.js → architectureDiagram-5GKGNRK7-6PoVSmNG.js} +1 -1
  115. package/out/web/assets/{blockDiagram-NRAW4CY4-CyWybDWr.js → blockDiagram-NRAW4CY4-cKw9mAKi.js} +1 -1
  116. package/out/web/assets/{c4Diagram-UCG6FXSJ-BvY3U709.js → c4Diagram-UCG6FXSJ-Cqy8N5Ge.js} +1 -1
  117. package/out/web/assets/{chunk-75Z2AOVW-TLXCoZYv.js → chunk-75Z2AOVW-3qybijF5.js} +1 -1
  118. package/out/web/assets/chunk-CKBBP62Z-cIrXq6jN.js +2 -0
  119. package/out/web/assets/{chunk-CLGD4ZFX-xjsKtNS7.js → chunk-CLGD4ZFX-CndDQkww.js} +1 -1
  120. package/out/web/assets/chunk-DSNCTWBM-Cc4NxvgD.js +2 -0
  121. package/out/web/assets/chunk-DU6HZSFF-drzh6GsU.js +128 -0
  122. package/out/web/assets/{chunk-F27PBJKO-BFpgF55A.js → chunk-F27PBJKO-FiY35l4v.js} +1 -1
  123. package/out/web/assets/{chunk-G27WJ6UU-DfF7qW-C.js → chunk-G27WJ6UU-Bjt9Il4A.js} +1 -1
  124. package/out/web/assets/{chunk-GMAD6QVW-C-558kh_.js → chunk-GMAD6QVW-Bppi3Ctd.js} +1 -1
  125. package/out/web/assets/{chunk-JQ64N6SF-wJmeGKAw.js → chunk-JQ64N6SF-DGg5kcEV.js} +1 -1
  126. package/out/web/assets/{chunk-LCL6LL3I-C1wHD8Ie.js → chunk-LCL6LL3I-CCYcjd7p.js} +1 -1
  127. package/out/web/assets/{chunk-OBVCFTLP-BsRTPBqs.js → chunk-OBVCFTLP-DJeNil5M.js} +1 -1
  128. package/out/web/assets/{chunk-P2QGCYS3-HZIiM7Ni.js → chunk-P2QGCYS3-lRzkRjBB.js} +1 -1
  129. package/out/web/assets/{chunk-POPQ4Y6H-Dk9wvVb0.js → chunk-POPQ4Y6H-DouASMBW.js} +1 -1
  130. package/out/web/assets/{chunk-PWAF6VOD-BmjYLNbq.js → chunk-PWAF6VOD-DMmD1vVf.js} +1 -1
  131. package/out/web/assets/{chunk-R7TYR2AO-CaHIf-lK.js → chunk-R7TYR2AO-CYLA5UC5.js} +1 -1
  132. package/out/web/assets/{chunk-RHFEMEQ7-_T561hOU.js → chunk-RHFEMEQ7-BiXwEcUT.js} +1 -1
  133. package/out/web/assets/{chunk-SVP7TREG-CM-GGYoY.js → chunk-SVP7TREG-BV-zPslF.js} +1 -1
  134. package/out/web/assets/{chunk-TEH6E4GO-K2A8Vg2C.js → chunk-TEH6E4GO-B2RGEohZ.js} +1 -1
  135. package/out/web/assets/classDiagram-DTDB5LWJ-Dq0smRWk.js +1 -0
  136. package/out/web/assets/classDiagram-v2-JRS7N3AN-Dq0smRWk.js +1 -0
  137. package/out/web/assets/config-C-ZFtipU.css +1 -0
  138. package/out/web/assets/config-eEDngJXO.js +1 -0
  139. package/out/web/assets/core-hQ2VA9Ti.js +1 -0
  140. package/out/web/assets/{cynefin-OW5HDTMX-ClzaB6cc.js → cynefin-OW5HDTMX-Cas4csHM.js} +1 -1
  141. package/out/web/assets/{cynefinDiagram-5FMLGOSQ-D_JzZBzf.js → cynefinDiagram-5FMLGOSQ-Bbpj66Y3.js} +1 -1
  142. package/out/web/assets/{dagre-3AP2YEHR-BDuUeMHj.js → dagre-3AP2YEHR-B0-2RDEd.js} +1 -1
  143. package/out/web/assets/{diagram-S7CK7UJ4-DgtcfE8P.js → diagram-S7CK7UJ4-BdzEjUyH.js} +1 -1
  144. package/out/web/assets/{diagram-UQ7AKVKN-DTLoEYti.js → diagram-UQ7AKVKN-CJDwyPxF.js} +1 -1
  145. package/out/web/assets/{diagram-VSXAHHWV-ChGl9pXz.js → diagram-VSXAHHWV-BxaG1r_B.js} +1 -1
  146. package/out/web/assets/{diagram-VX7I27RA-Be8DWz0S.js → diagram-VX7I27RA-BMmUqm8f.js} +1 -1
  147. package/out/web/assets/{diagram-Z3DM3KII-BMXjRTOF.js → diagram-Z3DM3KII-CFtd03eE.js} +1 -1
  148. package/out/web/assets/dist-js-Bf2bhoku.js +1 -0
  149. package/out/web/assets/{ebnfDiagram-PWID7BFC-8Q9pl1CJ.js → ebnfDiagram-PWID7BFC-DwAen1hO.js} +1 -1
  150. package/out/web/assets/{erDiagram-SSCWMZ5O-DjH8Lnkn.js → erDiagram-SSCWMZ5O-BCZSHACj.js} +1 -1
  151. package/out/web/assets/event-ChBVpRy0.js +1 -0
  152. package/out/web/assets/{eventmodeling-NTZA5JFV-BKUH_DOp.js → eventmodeling-NTZA5JFV-XHStE4E_.js} +1 -1
  153. package/out/web/assets/fira-code-latin-600-normal-BmSSHshu.woff +0 -0
  154. package/out/web/assets/fira-code-latin-600-normal-CvYZpPHg.woff2 +0 -0
  155. package/out/web/assets/fira-code-symbols2-600-normal-Dvq6IQE5.woff +0 -0
  156. package/out/web/assets/flowDiagram-A5DVABFB-BLg7nEcd.js +1 -0
  157. package/out/web/assets/{ganttDiagram-EL5Y4UJY-D7fZKJNM.js → ganttDiagram-EL5Y4UJY-BAEu1Cql.js} +1 -1
  158. package/out/web/assets/{gitGraph-4MIJSDKK-BypWaaBU.js → gitGraph-4MIJSDKK-r32Vyper.js} +1 -1
  159. package/out/web/assets/{gitGraphDiagram-WWUBYQGX-DWiw_3bq.js → gitGraphDiagram-WWUBYQGX-z9o9qt6V.js} +1 -1
  160. package/out/web/assets/index-Btsf4L8M.css +1 -0
  161. package/out/web/assets/index-D8D9MeRA.js +11 -0
  162. package/out/web/assets/{info-A6RAGUB7-KkAUxT4j.js → info-A6RAGUB7-BvLaC2cw.js} +1 -1
  163. package/out/web/assets/{infoDiagram-RXCK75RN-BNb6E48y.js → infoDiagram-RXCK75RN-Be6WAXXw.js} +1 -1
  164. package/out/web/assets/{ishikawaDiagram-5VMMS53U-Caa-JoAK.js → ishikawaDiagram-5VMMS53U-DZjoHJHC.js} +1 -1
  165. package/out/web/assets/{journeyDiagram-EYS64GPL-DOrmFGz6.js → journeyDiagram-EYS64GPL-CtVkjkGm.js} +1 -1
  166. package/out/web/assets/{kanban-definition-3QL26DDD-BOWCYcK0.js → kanban-definition-3QL26DDD-CW5FMv1w.js} +1 -1
  167. package/out/web/assets/lucide-react-Ip3L6Jtn.js +1 -0
  168. package/out/web/assets/markdown-BSeeUbJH.js +38 -0
  169. package/out/web/assets/{mermaid-parser.core-BQqjCkS_.js → mermaid-parser.core-aUgCqsZ5.js} +3 -3
  170. package/out/web/assets/mermaid.core-D57sEiSL.js +11 -0
  171. package/out/web/assets/{mindmap-definition-FBJOCRG2-jTceWpr0.js → mindmap-definition-FBJOCRG2-DAmSpM3a.js} +1 -1
  172. package/out/web/assets/modelManager-tMVmJVAW.js +2 -0
  173. package/out/web/assets/oauthManager-9jxicDWJ.js +1 -0
  174. package/out/web/assets/{packet-AYTQ26CC-CJ5RXgol.js → packet-AYTQ26CC-DJ27iIoJ.js} +1 -1
  175. package/out/web/assets/{pegDiagram-XKGWAZYB-y8wMtd0y.js → pegDiagram-XKGWAZYB-Bj3ii-gS.js} +1 -1
  176. package/out/web/assets/{pie-WAS4IAKB-72fTBbl4.js → pie-WAS4IAKB-DG5mCUbc.js} +1 -1
  177. package/out/web/assets/{pieDiagram-E7YTZNPT-e0O02qWq.js → pieDiagram-E7YTZNPT-BrJLPnDA.js} +1 -1
  178. package/out/web/assets/prompt-latin-700-normal-BfbftDSq.woff +0 -0
  179. package/out/web/assets/prompt-latin-700-normal-I2gc831J.woff2 +0 -0
  180. package/out/web/assets/prompt-thai-700-normal-Cb5ilR-c.woff +0 -0
  181. package/out/web/assets/prompt-thai-700-normal-Cg4aQ0Nn.woff2 +0 -0
  182. package/out/web/assets/{quadrantDiagram-AXDQQJYC-C9phYLom.js → quadrantDiagram-AXDQQJYC-3x_TmF3j.js} +1 -1
  183. package/out/web/assets/{radar-RG4KPBEZ-BAU2hzUT.js → radar-RG4KPBEZ-CrXaTTuV.js} +1 -1
  184. package/out/web/assets/{railroad-74A4TZTK-B0bCAVHC.js → railroad-74A4TZTK-BpqMH9BE.js} +1 -1
  185. package/out/web/assets/{railroad-abnf-HS5TGJTU-WhxO7ndE.js → railroad-abnf-HS5TGJTU-DHI0uLlV.js} +1 -1
  186. package/out/web/assets/{railroad-ebnf-LZEXJU2U-BkA0m7-F.js → railroad-ebnf-LZEXJU2U-CQCb316y.js} +1 -1
  187. package/out/web/assets/{railroad-peg-WCYAUIDC-BsVpHIaj.js → railroad-peg-WCYAUIDC-Ph1giKkH.js} +1 -1
  188. package/out/web/assets/{railroadDiagram-O6MQD6OU-CyOLN65Q.js → railroadDiagram-O6MQD6OU-BRq6wIxx.js} +1 -1
  189. package/out/web/assets/{requirementDiagram-EFPCY7ZU-DQXJ7Dud.js → requirementDiagram-EFPCY7ZU-DIJj6G1g.js} +1 -1
  190. package/out/web/assets/{sankeyDiagram-P5KCCOFB-B2XLyIIc.js → sankeyDiagram-P5KCCOFB-DZajSryq.js} +1 -1
  191. package/out/web/assets/{sequenceDiagram-WJ2MYXX4-DGQY4wwm.js → sequenceDiagram-WJ2MYXX4-DxJCWyZS.js} +1 -1
  192. package/out/web/assets/{stateDiagram-HBIQ2CUA-DHZpDwNy.js → stateDiagram-HBIQ2CUA-k6voi8Vf.js} +1 -1
  193. package/out/web/assets/stateDiagram-v2-4QOOHH4V-DeEc0lGZ.js +1 -0
  194. package/out/web/assets/studio-B1mk40wD.js +1 -0
  195. package/out/web/assets/{swimlanes-XN3QIQJK-Bn_jcZz-.js → swimlanes-XN3QIQJK-igYhTjXB.js} +1 -1
  196. package/out/web/assets/swimlanesDiagram-VK2B7HYN-DpVik9v7.js +8 -0
  197. package/out/web/assets/{timeline-definition-24CTP7MA-CdTERuJZ.js → timeline-definition-24CTP7MA-Dke2p93p.js} +1 -1
  198. package/out/web/assets/{treeView-Q6P3EWNA-TKBKQG6R.js → treeView-Q6P3EWNA-hNELnXUs.js} +1 -1
  199. package/out/web/assets/{treemap-WGGIJYW6-BP7gQoiC.js → treemap-WGGIJYW6-D2B6wDsx.js} +1 -1
  200. package/out/web/assets/{vennDiagram-4TSXK5OY-BHUmxDuK.js → vennDiagram-4TSXK5OY-CDkW7rUP.js} +1 -1
  201. package/out/web/assets/{wardley-WFR3VGLG-9bct5AAN.js → wardley-WFR3VGLG-BECdXETi.js} +1 -1
  202. package/out/web/assets/{wardleyDiagram-VM6X3IG4-BfJwDDso.js → wardleyDiagram-VM6X3IG4-B5BycpQ4.js} +1 -1
  203. package/out/web/assets/window-5qYXKoW7.js +1 -0
  204. package/out/web/assets/{xychartDiagram-S5SC5T6Z-Dqd9Mvpo.js → xychartDiagram-S5SC5T6Z-CtJS3b--.js} +1 -1
  205. package/out/web/index-web.html +3 -4
  206. package/out/web/index.html +3 -4
  207. package/package.json +17 -6
  208. package/skills-lock.json +36 -0
  209. package/slash-commands.json +9 -0
  210. package/src/renderer/index-web.html +1 -0
  211. package/src/renderer/index.html +1 -0
  212. package/src/renderer/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  213. package/src/renderer/shared/agentProgress.ts +168 -3
  214. package/src/renderer/shared/components/AgentActivityDrawer.tsx +6 -6
  215. package/src/renderer/shared/components/AgentActivityTable.tsx +192 -132
  216. package/src/renderer/shared/components/ArtifactPreviewPanel.tsx +4 -4
  217. package/src/renderer/shared/components/AuthGate.tsx +4 -9
  218. package/src/renderer/shared/components/CalculationCard.tsx +41 -15
  219. package/src/renderer/shared/components/ChatMessageItem.tsx +20 -21
  220. package/src/renderer/shared/components/ChatPanel.tsx +432 -193
  221. package/src/renderer/shared/components/ChunkErrorBoundary.tsx +198 -49
  222. package/src/renderer/shared/components/CliSessionsView.tsx +495 -0
  223. package/src/renderer/shared/components/CodeReviewPage.tsx +565 -0
  224. package/src/renderer/shared/components/CommandPalette.tsx +8 -8
  225. package/src/renderer/shared/components/DashboardSidebar.tsx +862 -125
  226. package/src/renderer/shared/components/DesktopTitlebar.tsx +345 -0
  227. package/src/renderer/shared/components/DiffReviewModal.tsx +3 -3
  228. package/src/renderer/shared/components/GitBranchSelector.tsx +442 -0
  229. package/src/renderer/shared/components/ImageGenCard.tsx +31 -12
  230. package/src/renderer/shared/components/ImageSearchCard.tsx +59 -38
  231. package/src/renderer/shared/components/ImageStudioPanel.tsx +40 -41
  232. package/src/renderer/shared/components/InlineThoughtNote.tsx +27 -0
  233. package/src/renderer/shared/components/LinkedFoldersView.tsx +365 -46
  234. package/src/renderer/shared/components/McpRegistryPicker.tsx +1 -1
  235. package/src/renderer/shared/components/McpServersView.tsx +24 -22
  236. package/src/renderer/shared/components/MermaidCard.tsx +14 -8
  237. package/src/renderer/shared/components/MintDashboard.tsx +1141 -508
  238. package/src/renderer/shared/components/ModelSelectorPopover.tsx +535 -214
  239. package/src/renderer/shared/components/PlanChecklistWidget.tsx +1 -1
  240. package/src/renderer/shared/components/PluginsView.tsx +1 -1
  241. package/src/renderer/shared/components/RewindModal.tsx +6 -6
  242. package/src/renderer/shared/components/RunSummaryDashboard.tsx +3 -3
  243. package/src/renderer/shared/components/ScheduledTasksView.tsx +4 -4
  244. package/src/renderer/shared/components/ScreenCaptureDialog.css +221 -0
  245. package/src/renderer/shared/components/ScreenCaptureDialog.tsx +199 -0
  246. package/src/renderer/shared/components/Settings/AgentsTab.tsx +34 -39
  247. package/src/renderer/shared/components/Settings/AudioTab.tsx +8 -8
  248. package/src/renderer/shared/components/Settings/AutomationTab.tsx +8 -58
  249. package/src/renderer/shared/components/Settings/AvatarCropModal.tsx +368 -0
  250. package/src/renderer/shared/components/Settings/GeneralTab.tsx +335 -81
  251. package/src/renderer/shared/components/Settings/MemoryTab.tsx +3 -3
  252. package/src/renderer/shared/components/Settings/PluginsTab.tsx +20 -12
  253. package/src/renderer/shared/components/Settings/ProfileTab.tsx +29 -5
  254. package/src/renderer/shared/components/Settings/SearchableModelCombobox.tsx +411 -0
  255. package/src/renderer/shared/components/Settings/ThemeTab.tsx +401 -158
  256. package/src/renderer/shared/components/SkillsView.tsx +41 -16
  257. package/src/renderer/shared/components/SlashSuggestions.tsx +3 -2
  258. package/src/renderer/shared/components/SourcesBlock.tsx +44 -32
  259. package/src/renderer/shared/components/StockCard.tsx +58 -24
  260. package/src/renderer/shared/components/SubagentDagView.tsx +4 -4
  261. package/src/renderer/shared/components/TerminalDock.tsx +241 -0
  262. package/src/renderer/shared/components/ThinkingBlock.tsx +14 -8
  263. package/src/renderer/shared/components/ToolSurfacePage.tsx +520 -0
  264. package/src/renderer/shared/components/UiFeatureCard.tsx +267 -0
  265. package/src/renderer/shared/components/UiGridCard.tsx +188 -0
  266. package/src/renderer/shared/components/UiMockupWidget.tsx +149 -0
  267. package/src/renderer/shared/components/VeoStudioPanel.tsx +13 -29
  268. package/src/renderer/shared/components/WeatherCard.tsx +3 -3
  269. package/src/renderer/shared/components/WorkspaceContextPopover.tsx +133 -0
  270. package/src/renderer/shared/components/WorkspaceSelector.tsx +149 -0
  271. package/src/renderer/shared/constants/config.ts +28 -3
  272. package/src/renderer/shared/constants/models.ts +189 -2
  273. package/src/renderer/shared/conversation/coordinator.test.ts +27 -0
  274. package/src/renderer/shared/conversation/coordinator.ts +82 -0
  275. package/src/renderer/shared/conversation/syncView.test.ts +46 -0
  276. package/src/renderer/shared/conversation/syncView.ts +43 -0
  277. package/src/renderer/shared/conversation/useConversationCoordinator.ts +106 -0
  278. package/src/renderer/shared/css/agent-observability.css +35 -3
  279. package/src/renderer/shared/css/auth-gate.css +2 -2
  280. package/src/renderer/shared/css/chat-ui-cards.css +495 -0
  281. package/src/renderer/shared/css/code-review.css +823 -0
  282. package/src/renderer/shared/css/code-sessions.css +452 -0
  283. package/src/renderer/shared/css/file-changes.css +132 -0
  284. package/src/renderer/shared/css/image-studio.css +16 -16
  285. package/src/renderer/shared/css/management-views.css +277 -27
  286. package/src/renderer/shared/css/model-selector.css +442 -42
  287. package/src/renderer/shared/css/settings/agents.css +1 -1
  288. package/src/renderer/shared/css/settings/automation.css +13 -13
  289. package/src/renderer/shared/css/settings/general.css +526 -5
  290. package/src/renderer/shared/css/settings/plugins.css +5 -5
  291. package/src/renderer/shared/css/settings/profile.css +331 -1
  292. package/src/renderer/shared/css/settings/theme.css +651 -3
  293. package/src/renderer/shared/css/veo-studio.css +16 -15
  294. package/src/renderer/shared/fonts.ts +19 -37
  295. package/src/renderer/shared/platform.test.ts +34 -0
  296. package/src/renderer/shared/platform.ts +173 -6
  297. package/src/renderer/shared/theme/themeManager.ts +144 -0
  298. package/src/renderer/shared/theme/themes.ts +116 -0
  299. package/src/renderer/shared/theme/tokens.css +318 -0
  300. package/src/renderer/shared/types.ts +82 -1
  301. package/src/renderer/shared/utils/agentActivity.ts +126 -5
  302. package/src/renderer/shared/utils/cardJson.test.ts +35 -0
  303. package/src/renderer/shared/utils/cardJson.ts +30 -0
  304. package/src/renderer/shared/utils/fileIcons.ts +1 -1
  305. package/src/renderer/shared/utils/markdown.tsx +329 -80
  306. package/src/renderer/shared/utils/markdown.webImages.test.tsx +40 -0
  307. package/src/renderer/shared/utils/providers.ts +8 -3
  308. package/src/renderer/shared/utils/screenCapture.ts +43 -0
  309. package/src/renderer/shared/utils/slashCommandProcessor.ts +4 -1
  310. package/src/renderer/shared/utils/ui.ts +4 -64
  311. package/src/renderer/src/App.tsx +7 -0
  312. package/src/renderer/src/components/BrowserShell.tsx +108 -0
  313. package/src/renderer/src/components/BrowserSuggestionsPopup.tsx +91 -0
  314. package/src/renderer/src/components/Live2DStage.tsx +32 -9
  315. package/src/renderer/src/components/MintDashboard.tsx +4 -2
  316. package/src/renderer/src/components/ModelPanel.tsx +2 -1
  317. package/src/renderer/src/components/PicturesLibrary.tsx +3 -2
  318. package/src/renderer/src/components/ScreenPicker.css +190 -0
  319. package/src/renderer/src/components/ScreenPicker.tsx +185 -540
  320. package/src/renderer/src/components/SettingsWindow.tsx +40 -2
  321. package/src/renderer/src/components/SpotlightWindow.tsx +1 -0
  322. package/src/renderer/src/components/WidgetWindow.tsx +27 -3
  323. package/src/renderer/src/components/WorkspacePanel.tsx +61 -43
  324. package/src/renderer/src/components/browser-shell.css +185 -0
  325. package/src/renderer/src/components/browser-suggestions-popup.css +55 -0
  326. package/src/renderer/src/components/liveTranslateFrames.test.ts +23 -0
  327. package/src/renderer/src/components/liveTranslateFrames.ts +34 -0
  328. package/src/renderer/src/css/app-shell.css +394 -113
  329. package/src/renderer/src/css/chat.css +1926 -380
  330. package/src/renderer/src/css/dashboard.css +11 -0
  331. package/src/renderer/src/css/desktop-tools.css +730 -0
  332. package/src/renderer/src/css/misc.css +19 -22
  333. package/src/renderer/src/css/model.css +49 -48
  334. package/src/renderer/src/css/pictures.css +144 -136
  335. package/src/renderer/src/css/settings/base.css +357 -123
  336. package/src/renderer/src/css/sidebar-workspace.css +930 -291
  337. package/src/renderer/src/css/spotlight.css +15 -26
  338. package/src/renderer/src/css/tool-surfaces.css +728 -0
  339. package/src/renderer/src/css/widget.css +35 -7
  340. package/src/renderer/src/env.d.ts +3 -0
  341. package/src/renderer/src/hooks/useProviderModels.ts +2 -9
  342. package/src/renderer/src/index.css +53 -46
  343. package/src/renderer/src/main.tsx +11 -0
  344. package/src/renderer/src/tauri.ts +201 -30
  345. package/src/renderer/src-web/App.tsx +40 -0
  346. package/src/renderer/src-web/components/MintDashboard.tsx +4 -2
  347. package/src/renderer/src-web/components/PicturesLibrary.tsx +3 -2
  348. package/src/renderer/src-web/components/PullToRefresh.tsx +107 -0
  349. package/src/renderer/src-web/components/SettingsWindow.tsx +28 -2
  350. package/src/renderer/src-web/css/app-shell.css +174 -96
  351. package/src/renderer/src-web/css/chat.css +1519 -316
  352. package/src/renderer/src-web/css/dashboard.css +11 -0
  353. package/src/renderer/src-web/css/misc.css +17 -17
  354. package/src/renderer/src-web/css/mobile.css +678 -0
  355. package/src/renderer/src-web/css/model.css +46 -46
  356. package/src/renderer/src-web/css/pictures.css +81 -34
  357. package/src/renderer/src-web/css/pull-to-refresh.css +54 -0
  358. package/src/renderer/src-web/css/settings/base.css +316 -100
  359. package/src/renderer/src-web/css/settings/mobile.css +320 -0
  360. package/src/renderer/src-web/css/sidebar-workspace.css +545 -100
  361. package/src/renderer/src-web/css/spotlight.css +9 -26
  362. package/src/renderer/src-web/css/widget.css +0 -5
  363. package/src/renderer/src-web/env.d.ts +3 -0
  364. package/src/renderer/src-web/hooks/useProviderModels.ts +2 -9
  365. package/src/renderer/src-web/index.css +53 -96
  366. package/src/renderer/src-web/main.tsx +11 -0
  367. package/src/renderer/src-web/tauri.ts +200 -30
  368. package/vite.config.web.ts +1 -0
  369. package/out/web/assets/MintDashboard-DWSqucgb.js +0 -57
  370. package/out/web/assets/SettingsWindow-DFM2aj5B.js +0 -2
  371. package/out/web/assets/chunk-CKBBP62Z-nr1uKPj9.js +0 -2
  372. package/out/web/assets/chunk-DSNCTWBM-Dtj8Rqsd.js +0 -2
  373. package/out/web/assets/chunk-DU6HZSFF-2tv5K1wT.js +0 -128
  374. package/out/web/assets/classDiagram-DTDB5LWJ-BdSFArgw.js +0 -1
  375. package/out/web/assets/classDiagram-v2-JRS7N3AN-BdSFArgw.js +0 -1
  376. package/out/web/assets/core-DImejIUG.js +0 -1
  377. package/out/web/assets/dist-js-BxuKEVWM.js +0 -1
  378. package/out/web/assets/event-BNl8Zahw.js +0 -1
  379. package/out/web/assets/fira-code-cyrillic-400-normal-UC0NFL4U.woff2 +0 -0
  380. package/out/web/assets/fira-code-cyrillic-400-normal-dc1q3VD7.woff +0 -0
  381. package/out/web/assets/fira-code-cyrillic-500-normal-Bu7VCL72.woff +0 -0
  382. package/out/web/assets/fira-code-cyrillic-500-normal-CX35h3Mg.woff2 +0 -0
  383. package/out/web/assets/fira-code-cyrillic-ext-400-normal-Buh61xzB.woff +0 -0
  384. package/out/web/assets/fira-code-cyrillic-ext-400-normal-txZ9Fk_1.woff2 +0 -0
  385. package/out/web/assets/fira-code-cyrillic-ext-500-normal-CYRspHgm.woff2 +0 -0
  386. package/out/web/assets/fira-code-cyrillic-ext-500-normal-CwtLmSFD.woff +0 -0
  387. package/out/web/assets/fira-code-greek-400-normal-B2Gh_Y8s.woff2 +0 -0
  388. package/out/web/assets/fira-code-greek-400-normal-DobhaxvF.woff +0 -0
  389. package/out/web/assets/fira-code-greek-500-normal-CVO0IRNt.woff2 +0 -0
  390. package/out/web/assets/fira-code-greek-500-normal-DEXIWiey.woff +0 -0
  391. package/out/web/assets/fira-code-greek-ext-400-normal-DR7mBgIM.woff2 +0 -0
  392. package/out/web/assets/fira-code-greek-ext-400-normal-DSPUheWg.woff +0 -0
  393. package/out/web/assets/fira-code-greek-ext-500-normal-BO3iq16n.woff2 +0 -0
  394. package/out/web/assets/fira-code-greek-ext-500-normal-CMiNLXER.woff +0 -0
  395. package/out/web/assets/fira-code-latin-ext-400-normal-DG73JjOf.woff +0 -0
  396. package/out/web/assets/fira-code-latin-ext-400-normal-KSMg0QLl.woff2 +0 -0
  397. package/out/web/assets/fira-code-latin-ext-500-normal-CaANqXjI.woff +0 -0
  398. package/out/web/assets/fira-code-latin-ext-500-normal-Crd9e_oI.woff2 +0 -0
  399. package/out/web/assets/flowDiagram-A5DVABFB-BpnHUSU7.js +0 -1
  400. package/out/web/assets/index-CVRg270z.css +0 -1
  401. package/out/web/assets/index-DxZQr9yD.js +0 -10
  402. package/out/web/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
  403. package/out/web/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
  404. package/out/web/assets/inter-cyrillic-500-normal-BasfLYem.woff2 +0 -0
  405. package/out/web/assets/inter-cyrillic-500-normal-CxZf_p3X.woff +0 -0
  406. package/out/web/assets/inter-cyrillic-600-normal-4D_pXhcN.woff +0 -0
  407. package/out/web/assets/inter-cyrillic-600-normal-CWCymEST.woff2 +0 -0
  408. package/out/web/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
  409. package/out/web/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
  410. package/out/web/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 +0 -0
  411. package/out/web/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff +0 -0
  412. package/out/web/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff +0 -0
  413. package/out/web/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2 +0 -0
  414. package/out/web/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
  415. package/out/web/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
  416. package/out/web/assets/inter-greek-500-normal-BIZE56-Y.woff2 +0 -0
  417. package/out/web/assets/inter-greek-500-normal-Xzm54t5V.woff +0 -0
  418. package/out/web/assets/inter-greek-600-normal-BZpKdvQh.woff +0 -0
  419. package/out/web/assets/inter-greek-600-normal-plRanbMR.woff2 +0 -0
  420. package/out/web/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
  421. package/out/web/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
  422. package/out/web/assets/inter-greek-ext-500-normal-2j5mBUwD.woff +0 -0
  423. package/out/web/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 +0 -0
  424. package/out/web/assets/inter-greek-ext-600-normal-B8X0CLgF.woff +0 -0
  425. package/out/web/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2 +0 -0
  426. package/out/web/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
  427. package/out/web/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
  428. package/out/web/assets/inter-latin-500-normal-BL9OpVg8.woff +0 -0
  429. package/out/web/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
  430. package/out/web/assets/inter-latin-600-normal-CiBQ2DWP.woff +0 -0
  431. package/out/web/assets/inter-latin-600-normal-LgqL8muc.woff2 +0 -0
  432. package/out/web/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
  433. package/out/web/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
  434. package/out/web/assets/inter-latin-ext-500-normal-BxGbmqWO.woff +0 -0
  435. package/out/web/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 +0 -0
  436. package/out/web/assets/inter-latin-ext-600-normal-CIVaiw4L.woff +0 -0
  437. package/out/web/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2 +0 -0
  438. package/out/web/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
  439. package/out/web/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
  440. package/out/web/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
  441. package/out/web/assets/inter-vietnamese-500-normal-mJboJaSs.woff +0 -0
  442. package/out/web/assets/inter-vietnamese-600-normal-BuLX-rYi.woff +0 -0
  443. package/out/web/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
  444. package/out/web/assets/kanit-latin-400-normal-BUlsQXH3.woff2 +0 -0
  445. package/out/web/assets/kanit-latin-400-normal-HVZWrfev.woff +0 -0
  446. package/out/web/assets/kanit-latin-500-normal-CX_4XcKi.woff2 +0 -0
  447. package/out/web/assets/kanit-latin-500-normal-qBha86O4.woff +0 -0
  448. package/out/web/assets/kanit-latin-600-normal-0lS78yAd.woff2 +0 -0
  449. package/out/web/assets/kanit-latin-600-normal-DlacpeTg.woff +0 -0
  450. package/out/web/assets/kanit-latin-ext-400-normal-B2xPf58u.woff2 +0 -0
  451. package/out/web/assets/kanit-latin-ext-400-normal-CHvNKHHD.woff +0 -0
  452. package/out/web/assets/kanit-latin-ext-500-normal-BFdWrG22.woff +0 -0
  453. package/out/web/assets/kanit-latin-ext-500-normal-EHs3suD6.woff2 +0 -0
  454. package/out/web/assets/kanit-latin-ext-600-normal-BBDzoLaj.woff +0 -0
  455. package/out/web/assets/kanit-latin-ext-600-normal-DAX3wtuq.woff2 +0 -0
  456. package/out/web/assets/kanit-thai-400-normal-D2nliXKa.woff +0 -0
  457. package/out/web/assets/kanit-thai-400-normal-D80Pglro.woff2 +0 -0
  458. package/out/web/assets/kanit-thai-500-normal-BB8gri04.woff2 +0 -0
  459. package/out/web/assets/kanit-thai-500-normal-Iy_w0a80.woff +0 -0
  460. package/out/web/assets/kanit-thai-600-normal-Bj6oiaDc.woff2 +0 -0
  461. package/out/web/assets/kanit-thai-600-normal-wbTlPO7I.woff +0 -0
  462. package/out/web/assets/kanit-vietnamese-400-normal-DRI8YWyb.woff2 +0 -0
  463. package/out/web/assets/kanit-vietnamese-400-normal-dow6Bnto.woff +0 -0
  464. package/out/web/assets/kanit-vietnamese-500-normal-BzTrpCM3.woff2 +0 -0
  465. package/out/web/assets/kanit-vietnamese-500-normal-T1ndT7MF.woff +0 -0
  466. package/out/web/assets/kanit-vietnamese-600-normal-Bi7fw3I4.woff2 +0 -0
  467. package/out/web/assets/kanit-vietnamese-600-normal-DXCRAa_8.woff +0 -0
  468. package/out/web/assets/mali-latin-400-normal-ByPcZ8Gx.woff +0 -0
  469. package/out/web/assets/mali-latin-400-normal-Cuc6Ykl8.woff2 +0 -0
  470. package/out/web/assets/mali-latin-500-normal-B01M-LP6.woff2 +0 -0
  471. package/out/web/assets/mali-latin-500-normal-Thgqw_9f.woff +0 -0
  472. package/out/web/assets/mali-latin-600-normal-B9TiUNpT.woff2 +0 -0
  473. package/out/web/assets/mali-latin-600-normal-CycpQCwU.woff +0 -0
  474. package/out/web/assets/mali-latin-ext-400-normal-DUVdJQO4.woff +0 -0
  475. package/out/web/assets/mali-latin-ext-400-normal-iCG1ALuJ.woff2 +0 -0
  476. package/out/web/assets/mali-latin-ext-500-normal-BfJE4UMZ.woff2 +0 -0
  477. package/out/web/assets/mali-latin-ext-500-normal-FoLEyOKS.woff +0 -0
  478. package/out/web/assets/mali-latin-ext-600-normal-BTvIfiCp.woff2 +0 -0
  479. package/out/web/assets/mali-latin-ext-600-normal-DAQcLVmD.woff +0 -0
  480. package/out/web/assets/mali-thai-400-normal-BO7A3bLZ.woff2 +0 -0
  481. package/out/web/assets/mali-thai-400-normal-CX9VrjTn.woff +0 -0
  482. package/out/web/assets/mali-thai-500-normal-Cph2qha9.woff +0 -0
  483. package/out/web/assets/mali-thai-500-normal-D89rMT77.woff2 +0 -0
  484. package/out/web/assets/mali-thai-600-normal-DPgXT6rZ.woff +0 -0
  485. package/out/web/assets/mali-thai-600-normal-DlTx3OsB.woff2 +0 -0
  486. package/out/web/assets/mali-vietnamese-400-normal-DUKxzXaz.woff2 +0 -0
  487. package/out/web/assets/mali-vietnamese-400-normal-gFDLvsOK.woff +0 -0
  488. package/out/web/assets/mali-vietnamese-500-normal--OY07q2c.woff +0 -0
  489. package/out/web/assets/mali-vietnamese-500-normal-KDrNRwfW.woff2 +0 -0
  490. package/out/web/assets/mali-vietnamese-600-normal-CtTMUU7T.woff +0 -0
  491. package/out/web/assets/mali-vietnamese-600-normal-DFlJr66u.woff2 +0 -0
  492. package/out/web/assets/mermaid.core-DYGGlqOf.js +0 -11
  493. package/out/web/assets/mitr-latin-400-normal-Cb18vPmZ.woff +0 -0
  494. package/out/web/assets/mitr-latin-400-normal-CwbkLQ4a.woff2 +0 -0
  495. package/out/web/assets/mitr-latin-500-normal-B4JOhzAi.woff +0 -0
  496. package/out/web/assets/mitr-latin-500-normal-BmClOow2.woff2 +0 -0
  497. package/out/web/assets/mitr-latin-ext-400-normal-B3CPG7Yo.woff2 +0 -0
  498. package/out/web/assets/mitr-latin-ext-400-normal-DTx65hiC.woff +0 -0
  499. package/out/web/assets/mitr-latin-ext-500-normal-B_Diajz1.woff2 +0 -0
  500. package/out/web/assets/mitr-latin-ext-500-normal-DYOsVaVT.woff +0 -0
  501. package/out/web/assets/mitr-thai-400-normal-CS4Do6aM.woff +0 -0
  502. package/out/web/assets/mitr-thai-400-normal-CXWaAdVj.woff2 +0 -0
  503. package/out/web/assets/mitr-thai-500-normal-CVdBrEVH.woff2 +0 -0
  504. package/out/web/assets/mitr-thai-500-normal-CW_B5D-i.woff +0 -0
  505. package/out/web/assets/mitr-vietnamese-400-normal-CPMGWyoC.woff2 +0 -0
  506. package/out/web/assets/mitr-vietnamese-400-normal-Z6XhIpdY.woff +0 -0
  507. package/out/web/assets/mitr-vietnamese-500-normal-CDrv0585.woff2 +0 -0
  508. package/out/web/assets/mitr-vietnamese-500-normal-CMQWyq-Z.woff +0 -0
  509. package/out/web/assets/noto-sans-thai-latin-400-normal-BaWBrqFP.woff2 +0 -0
  510. package/out/web/assets/noto-sans-thai-latin-400-normal-Dh_FJjOB.woff +0 -0
  511. package/out/web/assets/noto-sans-thai-latin-500-normal-BC04jsmm.woff +0 -0
  512. package/out/web/assets/noto-sans-thai-latin-500-normal-fyBKClF1.woff2 +0 -0
  513. package/out/web/assets/noto-sans-thai-latin-600-normal-CemcjnVR.woff2 +0 -0
  514. package/out/web/assets/noto-sans-thai-latin-600-normal-Dbc-dNO6.woff +0 -0
  515. package/out/web/assets/noto-sans-thai-latin-ext-400-normal-B-1H0YkH.woff +0 -0
  516. package/out/web/assets/noto-sans-thai-latin-ext-400-normal-nBP59pVw.woff2 +0 -0
  517. package/out/web/assets/noto-sans-thai-latin-ext-500-normal-B-ZWb8SZ.woff2 +0 -0
  518. package/out/web/assets/noto-sans-thai-latin-ext-500-normal-CrEHO7C8.woff +0 -0
  519. package/out/web/assets/noto-sans-thai-latin-ext-600-normal-PkMZo0xa.woff +0 -0
  520. package/out/web/assets/noto-sans-thai-latin-ext-600-normal-maHHBsez.woff2 +0 -0
  521. package/out/web/assets/noto-sans-thai-thai-400-normal-BEOmKAI1.woff2 +0 -0
  522. package/out/web/assets/noto-sans-thai-thai-400-normal-Dxb_unuU.woff +0 -0
  523. package/out/web/assets/noto-sans-thai-thai-500-normal-BOGXO2tw.woff +0 -0
  524. package/out/web/assets/noto-sans-thai-thai-500-normal-CU_X86GQ.woff2 +0 -0
  525. package/out/web/assets/noto-sans-thai-thai-600-normal-CmgB8_JK.woff +0 -0
  526. package/out/web/assets/noto-sans-thai-thai-600-normal-Cs73sVjl.woff2 +0 -0
  527. package/out/web/assets/oauthManager-DNiwM8Rn.js +0 -2
  528. package/out/web/assets/oauthManager-DuamS1Av.css +0 -1
  529. package/out/web/assets/outfit-latin-300-normal-AWLfuCom.woff +0 -0
  530. package/out/web/assets/outfit-latin-300-normal-CRYTwY6m.woff2 +0 -0
  531. package/out/web/assets/outfit-latin-400-normal-BGsTXAXT.woff2 +0 -0
  532. package/out/web/assets/outfit-latin-400-normal-DMwTpYkH.woff +0 -0
  533. package/out/web/assets/outfit-latin-500-normal-ClnHRwRh.woff +0 -0
  534. package/out/web/assets/outfit-latin-500-normal-DKnIMDSk.woff2 +0 -0
  535. package/out/web/assets/outfit-latin-600-normal-B7SfZ07L.woff2 +0 -0
  536. package/out/web/assets/outfit-latin-600-normal-BEfTtDA7.woff +0 -0
  537. package/out/web/assets/outfit-latin-ext-300-normal-BYS6Dpvq.woff2 +0 -0
  538. package/out/web/assets/outfit-latin-ext-300-normal-CMIMshEd.woff +0 -0
  539. package/out/web/assets/outfit-latin-ext-400-normal-5tcqmc2S.woff2 +0 -0
  540. package/out/web/assets/outfit-latin-ext-400-normal-DHm7mdGe.woff +0 -0
  541. package/out/web/assets/outfit-latin-ext-500-normal-DrCvqoFD.woff +0 -0
  542. package/out/web/assets/outfit-latin-ext-500-normal-zeox_O30.woff2 +0 -0
  543. package/out/web/assets/outfit-latin-ext-600-normal-B85nYjL1.woff2 +0 -0
  544. package/out/web/assets/outfit-latin-ext-600-normal-CWJcPgd7.woff +0 -0
  545. package/out/web/assets/preload-helper-D0uHx7FM.js +0 -1
  546. package/out/web/assets/prompt-latin-ext-400-normal-1pHbN9uy.woff +0 -0
  547. package/out/web/assets/prompt-latin-ext-400-normal-DdSafGZ9.woff2 +0 -0
  548. package/out/web/assets/prompt-latin-ext-500-normal--EZ1um7s.woff2 +0 -0
  549. package/out/web/assets/prompt-latin-ext-500-normal-D-lI1EVT.woff +0 -0
  550. package/out/web/assets/prompt-latin-ext-600-normal-C8b50x67.woff +0 -0
  551. package/out/web/assets/prompt-latin-ext-600-normal-Cg9L7iJU.woff2 +0 -0
  552. package/out/web/assets/prompt-vietnamese-400-normal-BCPzsgPT.woff2 +0 -0
  553. package/out/web/assets/prompt-vietnamese-400-normal-D4pLyeNK.woff +0 -0
  554. package/out/web/assets/prompt-vietnamese-500-normal-DmzxmPwa.woff2 +0 -0
  555. package/out/web/assets/prompt-vietnamese-500-normal-w_sS_j2F.woff +0 -0
  556. package/out/web/assets/prompt-vietnamese-600-normal-1dyohtNh.woff +0 -0
  557. package/out/web/assets/prompt-vietnamese-600-normal-7QWjJBsF.woff2 +0 -0
  558. package/out/web/assets/sarabun-latin-400-normal-DmguIS-7.woff +0 -0
  559. package/out/web/assets/sarabun-latin-400-normal-URPBxl-K.woff2 +0 -0
  560. package/out/web/assets/sarabun-latin-500-normal-BjUTcdxu.woff2 +0 -0
  561. package/out/web/assets/sarabun-latin-500-normal-CJexTAnl.woff +0 -0
  562. package/out/web/assets/sarabun-latin-600-normal-9FonlkKx.woff +0 -0
  563. package/out/web/assets/sarabun-latin-600-normal-DMD3TROr.woff2 +0 -0
  564. package/out/web/assets/sarabun-latin-ext-400-normal-BbP7GpLL.woff2 +0 -0
  565. package/out/web/assets/sarabun-latin-ext-400-normal-BsmTn0SS.woff +0 -0
  566. package/out/web/assets/sarabun-latin-ext-500-normal-Cot16Bd2.woff +0 -0
  567. package/out/web/assets/sarabun-latin-ext-500-normal-DE1LysqI.woff2 +0 -0
  568. package/out/web/assets/sarabun-latin-ext-600-normal-0tXu9x_i.woff +0 -0
  569. package/out/web/assets/sarabun-latin-ext-600-normal-BRxjKUQ6.woff2 +0 -0
  570. package/out/web/assets/sarabun-thai-400-normal-C2DaJlKK.woff2 +0 -0
  571. package/out/web/assets/sarabun-thai-400-normal-CH-UbWgg.woff +0 -0
  572. package/out/web/assets/sarabun-thai-500-normal-BVssjame.woff2 +0 -0
  573. package/out/web/assets/sarabun-thai-500-normal-C3iDLEzi.woff +0 -0
  574. package/out/web/assets/sarabun-thai-600-normal-3dIAQ-_s.woff2 +0 -0
  575. package/out/web/assets/sarabun-thai-600-normal-DWKeTe6a.woff +0 -0
  576. package/out/web/assets/sarabun-vietnamese-400-normal-DPfkSCMy.woff +0 -0
  577. package/out/web/assets/sarabun-vietnamese-400-normal-igdrzAGY.woff2 +0 -0
  578. package/out/web/assets/sarabun-vietnamese-500-normal-CpRVvGRU.woff +0 -0
  579. package/out/web/assets/sarabun-vietnamese-500-normal-Dpe7Br9m.woff2 +0 -0
  580. package/out/web/assets/sarabun-vietnamese-600-normal-BMbOgAW-.woff +0 -0
  581. package/out/web/assets/sarabun-vietnamese-600-normal-DkxrOlLB.woff2 +0 -0
  582. package/out/web/assets/stateDiagram-v2-4QOOHH4V-s6P9g2_b.js +0 -1
  583. package/out/web/assets/swimlanesDiagram-VK2B7HYN-CV9fOLrV.js +0 -8
  584. package/out/web/assets/tauri-CNrHQ2Gb.js +0 -3
  585. package/out/web/assets/window-DkIhgI7B.js +0 -1
@@ -38,9 +38,9 @@
38
38
  }
39
39
 
40
40
  .change-expression-btn:hover {
41
- background: rgba(251, 191, 36, 0.15);
42
- border-color: rgba(251, 191, 36, 0.2);
43
- color: #fbbf24;
41
+ background: color-mix(in srgb, var(--flavor-amber) 15%, transparent);
42
+ border-color: color-mix(in srgb, var(--flavor-amber) 20%, transparent);
43
+ color: var(--flavor-amber);
44
44
  }
45
45
 
46
46
  .toggle-interaction-btn .interaction-off-mark {
@@ -48,21 +48,21 @@
48
48
  }
49
49
 
50
50
  .interaction-guide-btn:hover {
51
- background: rgba(34, 211, 238, 0.14);
52
- border-color: rgba(34, 211, 238, 0.2);
53
- color: #67e8f9;
51
+ background: color-mix(in srgb, var(--flavor-cyan) 14%, transparent);
52
+ border-color: color-mix(in srgb, var(--flavor-cyan) 20%, transparent);
53
+ color: var(--flavor-cyan);
54
54
  }
55
55
 
56
56
  .clear-btn:hover {
57
- background: rgba(251, 191, 36, 0.15);
58
- border-color: rgba(251, 191, 36, 0.2);
59
- color: #fbbf24;
57
+ background: color-mix(in srgb, var(--flavor-amber) 15%, transparent);
58
+ border-color: color-mix(in srgb, var(--flavor-amber) 20%, transparent);
59
+ color: var(--flavor-amber);
60
60
  }
61
61
 
62
62
  .settings-btn:hover {
63
63
  background: color-mix(in srgb, var(--accent) 15%, transparent);
64
64
  border-color: color-mix(in srgb, var(--accent) 20%, transparent);
65
- color: var(--accent);
65
+ color: var(--interactive-fg);
66
66
  }
67
67
 
68
68
  .sidebar-toggle {
@@ -128,12 +128,16 @@
128
128
  }
129
129
  }
130
130
 
131
+ .sidebar-mobile-close {
132
+ display: none;
133
+ }
134
+
131
135
  .sidebar-brand {
132
136
  display: flex;
133
137
  align-items: center;
134
138
  gap: 10px;
135
139
  padding: 0 8px 16px 2px;
136
- border-bottom: 1px solid rgba(255, 255, 255, 0.05);
140
+ border-bottom: 1px solid var(--border-subtle);
137
141
  margin-bottom: 14px;
138
142
  overflow: hidden;
139
143
  transition: all 0.22s ease;
@@ -147,7 +151,7 @@
147
151
  }
148
152
 
149
153
  .sidebar-brand.clickable:hover .sidebar-brand-name {
150
- color: var(--accent-hover);
154
+ color: var(--interactive-fg-hover);
151
155
  }
152
156
 
153
157
  .sidebar-brand.clickable:hover .sidebar-logo {
@@ -203,10 +207,10 @@
203
207
  }
204
208
 
205
209
  .sidebar-new-chat {
206
- background: var(--surface-strong);
207
- color: var(--text-main);
210
+ background: var(--bg-surface-raised);
211
+ color: var(--text-primary);
208
212
  margin-bottom: 4px;
209
- border: 1px solid var(--border);
213
+ border: 1px solid var(--border-default);
210
214
  }
211
215
 
212
216
  .sidebar-new-chat:hover,
@@ -217,8 +221,8 @@
217
221
  .sidebar-settings:hover,
218
222
  .sidebar-bottom-actions .clear-btn:hover,
219
223
  .sidebar-bottom-actions .settings-btn:hover {
220
- background: var(--surface-strong);
221
- color: var(--text-main);
224
+ background: var(--bg-surface-hover);
225
+ color: var(--text-primary);
222
226
  }
223
227
 
224
228
  .sidebar-account-container {
@@ -233,9 +237,9 @@
233
237
  width: 100%;
234
238
  padding: 8px;
235
239
  border-radius: var(--radius-lg);
236
- border: 1px solid var(--border);
237
- background: var(--panel-raised);
238
- color: inherit;
240
+ border: 1px solid var(--border-default);
241
+ background: var(--bg-surface-raised);
242
+ color: var(--text-primary);
239
243
  font: inherit;
240
244
  text-align: left;
241
245
  cursor: pointer;
@@ -243,7 +247,7 @@
243
247
  }
244
248
 
245
249
  .sidebar-account:hover {
246
- background: var(--surface-strong);
250
+ background: var(--bg-surface-hover);
247
251
  }
248
252
 
249
253
  .sidebar-account-chevron {
@@ -260,22 +264,21 @@
260
264
  right: 0;
261
265
  bottom: calc(100% + 8px);
262
266
  z-index: 1000;
263
- background: var(--surface-strong);
264
- border: 1px solid var(--border);
265
- border-radius: var(--radius-lg);
267
+ background: var(--bg-surface-raised);
268
+ border: 1px solid var(--border-default);
269
+ border-radius: var(--radius-lg, 12px);
266
270
  padding: 6px;
267
271
  display: flex;
268
272
  flex-direction: column;
269
273
  gap: 4px;
270
- box-shadow: var(--shadow-md);
271
- backdrop-filter: blur(12px);
272
- -webkit-backdrop-filter: blur(12px);
274
+ box-shadow: var(--shadow-lg);
273
275
  }
274
276
 
275
277
  .sidebar-account-menu-header {
276
- padding: 6px 10px 8px;
278
+ padding: 8px 12px 6px;
277
279
  color: var(--text-muted);
278
- font-size: 0.72rem;
280
+ font-size: 0.74rem;
281
+ font-weight: 600;
279
282
  overflow: hidden;
280
283
  text-overflow: ellipsis;
281
284
  white-space: nowrap;
@@ -284,7 +287,58 @@
284
287
  .sidebar-account-menu-divider {
285
288
  height: 1px;
286
289
  margin: 4px 2px;
287
- background: var(--border);
290
+ background: var(--border-subtle);
291
+ }
292
+
293
+ .sidebar-more-container {
294
+ position: relative;
295
+ width: 100%;
296
+ margin-bottom: 12px;
297
+ }
298
+
299
+ .sidebar-more-popover {
300
+ position: absolute;
301
+ left: 100%;
302
+ top: 0;
303
+ margin-left: 8px;
304
+ z-index: 1000;
305
+ background: var(--bg-surface-raised);
306
+ border: 1px solid var(--border-default);
307
+ border-radius: var(--radius-md, 8px);
308
+ padding: 6px;
309
+ min-width: 160px;
310
+ display: flex;
311
+ flex-direction: column;
312
+ gap: 4px;
313
+ box-shadow: var(--shadow-lg);
314
+ }
315
+
316
+ .sidebar-more-popover .popover-item,
317
+ .sidebar-account-menu .popover-item {
318
+ width: 100%;
319
+ height: 36px;
320
+ display: flex;
321
+ align-items: center;
322
+ gap: 10px;
323
+ border: 0;
324
+ border-radius: var(--radius-sm, 6px);
325
+ background: transparent;
326
+ color: var(--text-primary);
327
+ font-weight: 500;
328
+ cursor: pointer;
329
+ padding: 0 12px;
330
+ text-align: left;
331
+ font: inherit;
332
+ font-size: 0.9rem;
333
+ transition: background 0.15s ease, color 0.15s ease;
334
+ }
335
+
336
+ .sidebar-more-popover .popover-item:hover,
337
+ .sidebar-more-popover .popover-item.active,
338
+ .sidebar-account-menu .popover-item:hover,
339
+ .sidebar-account-menu .popover-item.active {
340
+ background: var(--bg-surface-hover);
341
+ color: var(--text-primary);
288
342
  }
289
343
 
290
344
  .sidebar-account-avatar {
@@ -297,7 +351,7 @@
297
351
  align-items: center;
298
352
  justify-content: center;
299
353
  background: var(--accent);
300
- color: #06120c;
354
+ color: var(--text-on-accent);
301
355
  font-size: 0.72rem;
302
356
  font-weight: 700;
303
357
  }
@@ -325,6 +379,7 @@
325
379
  white-space: nowrap;
326
380
  }
327
381
 
382
+
328
383
  .sidebar-top-action {
329
384
  margin-bottom: 4px;
330
385
  }
@@ -333,58 +388,6 @@
333
388
  margin-bottom: 12px;
334
389
  }
335
390
 
336
- .sidebar-more-container {
337
- position: relative;
338
- width: 100%;
339
- margin-bottom: 12px;
340
- }
341
-
342
- .sidebar-more-popover {
343
- position: absolute;
344
- left: 100%;
345
- top: 0;
346
- margin-left: 8px;
347
- z-index: 1000;
348
- background: var(--surface-strong);
349
- border: 1px solid var(--border);
350
- border-radius: var(--radius-md);
351
- padding: 6px;
352
- min-width: 160px;
353
- display: flex;
354
- flex-direction: column;
355
- gap: 4px;
356
- box-shadow: var(--shadow-md);
357
- backdrop-filter: blur(12px);
358
- -webkit-backdrop-filter: blur(12px);
359
- }
360
-
361
- .sidebar-more-popover .popover-item,
362
- .sidebar-account-menu .popover-item {
363
- width: 100%;
364
- height: 32px;
365
- display: flex;
366
- align-items: center;
367
- gap: 9px;
368
- border: 0;
369
- border-radius: var(--radius-sm);
370
- background: transparent;
371
- color: var(--text-soft);
372
- cursor: pointer;
373
- padding: 0 10px;
374
- text-align: left;
375
- font: inherit;
376
- font-size: 0.9rem;
377
- transition: background 0.16s ease, color 0.16s ease;
378
- }
379
-
380
- .sidebar-more-popover .popover-item:hover,
381
- .sidebar-more-popover .popover-item.active,
382
- .sidebar-account-menu .popover-item:hover,
383
- .sidebar-account-menu .popover-item.active {
384
- background: var(--surface-main);
385
- color: var(--text-main);
386
- }
387
-
388
391
  .sidebar-model-controls {
389
392
  display: grid;
390
393
  width: 100%;
@@ -393,8 +396,8 @@
393
396
  justify-content: stretch;
394
397
  gap: 2px;
395
398
  padding: 10px 0 18px;
396
- border-top: 1px solid rgba(255, 255, 255, 0.035);
397
- border-bottom: 1px solid rgba(255, 255, 255, 0.035);
399
+ border-top: 1px solid var(--border-subtle);
400
+ border-bottom: 1px solid var(--border-subtle);
398
401
  margin-bottom: 6px;
399
402
  }
400
403
 
@@ -429,33 +432,49 @@
429
432
  }
430
433
 
431
434
  .sidebar-section {
432
- flex: 1;
435
+ flex: 1 1 0;
433
436
  min-height: 0;
434
- overflow: hidden;
437
+ overflow-y: auto;
438
+ overflow-x: hidden;
439
+ overscroll-behavior: contain;
435
440
  padding-top: 6px;
436
- border-top: 1px solid rgba(255, 255, 255, 0.035);
441
+ padding-right: 2px;
442
+ padding-bottom: 12px;
443
+ border-top: 1px solid var(--border-subtle);
437
444
  display: flex;
438
445
  flex-direction: column;
446
+ scrollbar-color: color-mix(in srgb, var(--text-muted) 38%, transparent) transparent;
447
+ scrollbar-width: thin;
439
448
  }
440
449
 
441
- .sidebar-chat-list.sidebar-cli-list {
442
- flex: 0 0 auto;
450
+ .sidebar-section::-webkit-scrollbar {
451
+ width: 6px;
443
452
  }
444
453
 
445
- .sidebar-chat-list:not(.sidebar-cli-list) {
446
- flex: 1 1 auto;
447
- min-height: 0;
454
+ .sidebar-section::-webkit-scrollbar-track {
455
+ background: transparent;
456
+ }
457
+
458
+ .sidebar-section::-webkit-scrollbar-thumb {
459
+ border: 1px solid transparent;
460
+ border-radius: var(--radius-full);
461
+ background: color-mix(in srgb, var(--text-muted) 38%, transparent);
462
+ background-clip: padding-box;
448
463
  }
449
464
 
450
465
  .sidebar-section-title {
451
- padding: 0 10px 12px;
452
- color: var(--text-muted);
453
- font-size: 0.9rem;
466
+ padding: 8px 10px 6px;
467
+ color: var(--text-muted, #94a3b8);
468
+ font-size: 0.76rem;
469
+ font-weight: 600;
470
+ text-transform: none;
471
+ letter-spacing: 0.05em;
472
+ flex-shrink: 0;
454
473
  }
455
474
 
456
475
  .sidebar-subsection-title {
457
476
  padding-top: 14px;
458
- padding-bottom: 8px;
477
+ padding-bottom: 6px;
459
478
  }
460
479
 
461
480
  .sidebar-section-title.clickable {
@@ -469,51 +488,50 @@
469
488
  }
470
489
 
471
490
  .sidebar-project {
472
- height: 32px;
491
+ height: 36px;
473
492
  display: flex;
474
493
  align-items: center;
475
494
  gap: 9px;
476
495
  padding: 0 10px;
477
- color: var(--text-muted);
478
- border-radius: 3px;
496
+ color: var(--text-secondary);
497
+ border-radius: 7px;
479
498
  white-space: nowrap;
480
499
  overflow: hidden;
481
500
  text-overflow: ellipsis;
482
501
  border: 0;
483
502
  background: transparent;
484
503
  width: 100%;
485
- cursor: default;
504
+ cursor: pointer;
486
505
  text-align: left;
506
+ transition: background 0.14s ease, color 0.14s ease;
507
+ font-size: 0.89rem;
508
+ flex-shrink: 0;
487
509
  }
488
510
 
489
- .sidebar-chat-list {
490
- display: grid;
491
- gap: 0px;
492
- max-height: 360px;
493
- overflow-y: auto;
494
- padding-right: 2px;
495
- scrollbar-color: color-mix(in srgb, var(--text-muted) 38%, transparent) transparent;
496
- scrollbar-width: thin;
497
- }
498
-
499
- .sidebar-chat-list::-webkit-scrollbar {
500
- width: 8px;
511
+ .sidebar-chat-list.sidebar-cli-list {
512
+ flex: 0 0 auto;
513
+ display: flex;
514
+ flex-direction: column;
515
+ gap: 3px;
501
516
  }
502
517
 
503
- .sidebar-chat-list::-webkit-scrollbar-thumb {
504
- border: 2px solid transparent;
505
- border-radius: var(--radius-full);
506
- background: color-mix(in srgb, var(--text-muted) 38%, transparent);
507
- background-clip: padding-box;
518
+ .sidebar-chat-list:not(.sidebar-cli-list) {
519
+ flex: 0 0 auto;
520
+ display: flex;
521
+ flex-direction: column;
522
+ gap: 3px;
508
523
  }
509
524
 
510
525
  .sidebar-chat-item {
511
526
  cursor: pointer;
527
+ color: var(--text-secondary);
512
528
  }
513
529
 
514
- .sidebar-chat-item:hover {
515
- background: var(--surface-strong);
516
- color: var(--text-main);
530
+ .sidebar-chat-item:hover,
531
+ .sidebar-project:hover,
532
+ .sidebar-project.active {
533
+ background: var(--bg-surface-hover);
534
+ color: var(--text-primary);
517
535
  }
518
536
 
519
537
  .sidebar-chat-title {
@@ -522,29 +540,32 @@
522
540
  overflow: hidden;
523
541
  text-overflow: ellipsis;
524
542
  white-space: nowrap;
543
+ font-size: 0.89rem;
544
+ line-height: 1.45;
545
+ color: var(--text-primary);
525
546
  }
526
547
 
527
548
  .sidebar-chat-delete {
528
- width: 24px;
529
- height: 24px;
549
+ width: 26px;
550
+ height: 26px;
530
551
  margin-left: 2px;
531
552
  display: inline-flex;
532
553
  align-items: center;
533
554
  justify-content: center;
534
- border-radius: var(--radius-xs);
555
+ border-radius: var(--radius-xs, 4px);
535
556
  color: var(--text-muted);
536
557
  opacity: 0;
537
558
  flex: 0 0 auto;
538
559
  }
539
560
 
540
561
  .sidebar-chat-edit {
541
- width: 24px;
542
- height: 24px;
562
+ width: 26px;
563
+ height: 26px;
543
564
  margin-left: auto;
544
565
  display: inline-flex;
545
566
  align-items: center;
546
567
  justify-content: center;
547
- border-radius: var(--radius-xs);
568
+ border-radius: var(--radius-xs, 4px);
548
569
  color: var(--text-muted);
549
570
  opacity: 0;
550
571
  flex: 0 0 auto;
@@ -567,11 +588,58 @@
567
588
  background: var(--hover-edit-bg);
568
589
  }
569
590
 
591
+ .sidebar-chat-edit,
592
+ .sidebar-chat-delete { display: none !important; }
593
+ .sidebar-conversation-menu-trigger {
594
+ display: inline-flex;
595
+ align-items: center;
596
+ justify-content: center;
597
+ width: 24px;
598
+ height: 24px;
599
+ margin-left: auto;
600
+ flex: 0 0 auto;
601
+ border-radius: var(--radius-xs, 4px);
602
+ color: var(--text-muted);
603
+ opacity: 0;
604
+ cursor: pointer;
605
+ }
606
+ .sidebar-chat-item:hover .sidebar-conversation-menu-trigger,
607
+ .sidebar-conversation-menu-trigger:focus-visible { opacity: 1; }
608
+ .sidebar-conversation-menu-trigger:hover { color: var(--text-primary); background: var(--bg-surface-hover); }
609
+ .sidebar-conversation-menu-popover {
610
+ position: fixed;
611
+ z-index: 1000;
612
+ width: 190px;
613
+ padding: 4px;
614
+ border: 1px solid var(--border-subtle, rgba(255,255,255,.12));
615
+ border-radius: var(--radius-md, 8px);
616
+ background: var(--bg-surface, #202126);
617
+ box-shadow: 0 8px 24px rgba(0,0,0,.3);
618
+ }
619
+ .sidebar-conversation-menu-popover button {
620
+ display: flex;
621
+ gap: 8px;
622
+ align-items: center;
623
+ width: 100%;
624
+ padding: 7px 8px;
625
+ border: 0;
626
+ border-radius: var(--radius-sm, 5px);
627
+ color: var(--text-primary);
628
+ background: transparent;
629
+ text-align: left;
630
+ font-size: .8rem;
631
+ cursor: pointer;
632
+ }
633
+ .sidebar-conversation-menu-popover button:hover { background: var(--bg-surface-hover); }
634
+ .sidebar-conversation-menu-popover button.is-destructive { color: var(--color-danger, #f87171); }
635
+ .sidebar-conversation-menu-popover button span { flex: 1; }
636
+ @media (pointer: coarse) { .sidebar-conversation-menu-trigger { opacity: 1; } }
637
+
570
638
  .sidebar-chat-rename-input {
571
- background: rgba(255, 255, 255, 0.08);
572
- border: 1px solid rgba(255, 255, 255, 0.16);
639
+ background: var(--bg-input);
640
+ border: 1px solid var(--border-default);
573
641
  border-radius: var(--radius-xs);
574
- color: var(--text-main);
642
+ color: var(--text-primary);
575
643
  font-family: inherit;
576
644
  font-size: 0.82rem;
577
645
  padding: 2px 6px;
@@ -583,7 +651,7 @@
583
651
 
584
652
  .sidebar-chat-rename-input:focus {
585
653
  border-color: var(--accent);
586
- background: rgba(255, 255, 255, 0.12);
654
+ background: var(--bg-input-focus);
587
655
  }
588
656
 
589
657
  .sidebar-chat-item.active:hover .mint-status-pill {
@@ -630,12 +698,112 @@
630
698
  gap: 4px;
631
699
  }
632
700
 
633
- .app-body.sidebar-collapsed .sidebar-account {
701
+ /* Collapsed Sessions Rail */
702
+ .sidebar-collapsed-sessions {
703
+ flex: 1 1 0;
704
+ min-height: 0;
705
+ overflow-y: auto;
706
+ overflow-x: hidden;
707
+ display: flex;
708
+ flex-direction: column;
709
+ align-items: center;
710
+ gap: 4px;
711
+ padding: 8px 0;
712
+ margin-top: 4px;
713
+ width: 100%;
714
+ border-top: 1px solid var(--border-subtle);
715
+ scrollbar-width: none;
716
+ }
717
+
718
+ .sidebar-collapsed-sessions::-webkit-scrollbar {
719
+ display: none;
720
+ }
721
+
722
+ .sidebar-collapsed-item {
723
+ position: relative;
634
724
  width: 40px;
725
+ height: 34px;
726
+ display: flex;
727
+ align-items: center;
728
+ justify-content: center;
729
+ background: transparent;
730
+ border: 1px solid transparent;
731
+ border-radius: var(--radius-sm, 6px);
732
+ color: var(--text-soft, #94a3b8);
733
+ cursor: pointer;
734
+ transition: all 0.16s ease;
735
+ flex-shrink: 0;
736
+ padding: 0;
737
+ }
738
+
739
+ .sidebar-collapsed-item:hover {
740
+ background: var(--bg-surface-hover, rgba(255, 255, 255, 0.08));
741
+ color: var(--text-primary, #ffffff);
742
+ border-color: rgba(255, 255, 255, 0.08);
743
+ }
744
+
745
+ .sidebar-collapsed-item.is-active {
746
+ background: var(--bg-surface-active, rgba(255, 255, 255, 0.12));
747
+ color: var(--text-main);
748
+ border-color: rgba(255, 255, 255, 0.15);
749
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
750
+ }
751
+
752
+ .sidebar-collapsed-dot {
753
+ position: absolute;
754
+ right: 6px;
755
+ top: 6px;
756
+ width: 6px;
757
+ height: 6px;
758
+ border-radius: 50%;
759
+ background: var(--accent, #6366f1);
760
+ box-shadow: 0 0 6px var(--accent, #6366f1);
761
+ }
762
+
763
+ .app-body.sidebar-collapsed .sidebar-account-container {
764
+ margin-top: auto;
765
+ padding-top: 6px;
766
+ border-top: 1px solid var(--border-subtle);
767
+ display: flex;
768
+ justify-content: center;
769
+ width: 100%;
770
+ }
771
+
772
+ .app-body.sidebar-collapsed .sidebar-account {
773
+ width: 36px;
774
+ height: 36px;
635
775
  margin: 0 auto;
636
- padding: 4px;
776
+ padding: 0;
637
777
  justify-content: center;
638
- gap: 0;
778
+ align-items: center;
779
+ border-radius: 50%;
780
+ border: 1px solid var(--border-default);
781
+ background: var(--bg-surface-raised);
782
+ overflow: hidden;
783
+ box-sizing: border-box;
784
+ }
785
+
786
+ .app-body.sidebar-collapsed .sidebar-account:hover {
787
+ border-color: var(--accent);
788
+ box-shadow: 0 0 8px color-mix(in srgb, var(--accent) 30%, transparent);
789
+ }
790
+
791
+ .app-body.sidebar-collapsed .sidebar-account-avatar {
792
+ width: 100%;
793
+ height: 100%;
794
+ border-radius: 50%;
795
+ overflow: hidden;
796
+ display: flex;
797
+ align-items: center;
798
+ justify-content: center;
799
+ font-size: 0.85rem;
800
+ font-weight: 600;
801
+ }
802
+
803
+ .app-body.sidebar-collapsed .sidebar-account-avatar img {
804
+ width: 100%;
805
+ height: 100%;
806
+ object-fit: cover;
639
807
  }
640
808
 
641
809
  .app-body.sidebar-collapsed .sidebar-account-info,
@@ -651,6 +819,14 @@
651
819
  min-width: 200px;
652
820
  }
653
821
 
822
+ .sidebar-generating-text {
823
+ margin-left: auto;
824
+ font-size: 0.72rem;
825
+ font-weight: 500;
826
+ color: var(--interactive-fg);
827
+ opacity: 0.85;
828
+ }
829
+
654
830
  .mint-status-pill {
655
831
  margin-left: auto;
656
832
  min-width: 0;
@@ -659,7 +835,7 @@
659
835
  gap: 6px;
660
836
  padding: 3px 7px;
661
837
  border-radius: var(--radius-full);
662
- background: rgba(255, 255, 255, 0.055);
838
+ background: var(--bg-surface-soft);
663
839
  color: var(--text-muted);
664
840
  font-size: 0.68rem;
665
841
  line-height: 1;
@@ -670,8 +846,8 @@
670
846
  width: 7px;
671
847
  height: 7px;
672
848
  border-radius: 50%;
673
- background: #94a3b8;
674
- box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.12);
849
+ background: var(--text-muted);
850
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--text-muted) 12%, transparent);
675
851
  flex: 0 0 auto;
676
852
  }
677
853
 
@@ -749,117 +925,190 @@
749
925
  gap: 2px;
750
926
  margin-top: auto;
751
927
  padding-top: 10px;
752
- border-top: 1px solid rgba(255, 255, 255, 0.035);
928
+ border-top: 1px solid var(--border);
753
929
  }
754
930
 
931
+ /* Workspace file explorer
932
+ A compact, flat tool surface: hierarchy comes from alignment and rules,
933
+ rather than decorative cards, gradients, or elevated chrome. */
934
+
755
935
  .workspace-panel {
756
936
  min-width: 0;
757
937
  min-height: 0;
758
938
  height: 100%;
759
939
  display: grid;
760
- grid-template-rows: auto auto minmax(0, 1fr);
761
- padding: 16px 0 16px 14px;
762
- color: var(--text-main);
763
- animation: panelFadeIn 0.22s cubic-bezier(0.4, 0, 0.2, 1) forwards;
940
+ grid-template-rows: 54px minmax(0, 1fr);
941
+ padding: 0 0 20px 28px;
942
+ color: var(--text-primary);
943
+ overflow: hidden;
944
+ position: relative;
945
+ z-index: 1;
946
+ animation: workspacePanelEnter 0.32s cubic-bezier(0.16, 1, 0.3, 1) both;
764
947
  }
765
948
 
766
- .workspace-panel-header {
949
+ @keyframes workspacePanelEnter {
950
+ from {
951
+ opacity: 0;
952
+ transform: translateX(-10px);
953
+ }
954
+ to {
955
+ opacity: 1;
956
+ transform: translateX(0);
957
+ }
958
+ }
959
+
960
+ .workspace-panel-header {
961
+ min-width: 0;
767
962
  display: flex;
768
963
  align-items: center;
769
964
  justify-content: space-between;
770
965
  gap: 12px;
771
- padding: 0 10px 12px 0;
966
+ padding: 0 18px 0 0;
967
+ border-bottom: 1px solid var(--border-subtle);
968
+ }
969
+
970
+ .workspace-title-group {
971
+ display: flex;
972
+ align-items: center;
973
+ gap: 10px;
974
+ min-width: 0;
772
975
  }
773
976
 
774
- .workspace-kicker {
977
+ .workspace-title-icon {
978
+ width: 18px;
979
+ height: 18px;
980
+ flex: 0 0 18px;
981
+ color: var(--text-secondary);
982
+ }
983
+
984
+ .workspace-title-icon img {
775
985
  display: block;
776
- margin-bottom: 4px;
777
- color: var(--accent-hover);
778
- font-size: 0.68rem;
779
- font-weight: 700;
780
- letter-spacing: 0.08em;
781
- text-transform: uppercase;
986
+ width: 18px;
987
+ height: 18px;
988
+ object-fit: contain;
989
+ }
990
+
991
+ .workspace-title-copy {
992
+ min-width: 0;
782
993
  }
783
994
 
784
995
  .workspace-panel-header h2 {
785
- font-size: 1.05rem;
786
- font-weight: 650;
996
+ overflow: hidden;
997
+ margin: 0;
998
+ color: var(--text-primary);
999
+ font-size: 0.82rem;
1000
+ font-weight: 500;
1001
+ line-height: 1.35;
1002
+ text-overflow: ellipsis;
1003
+ white-space: nowrap;
787
1004
  }
788
1005
 
789
1006
  .workspace-agent-pill {
1007
+ flex: 0 0 auto;
790
1008
  display: inline-flex;
791
1009
  align-items: center;
792
- height: 24px;
793
- padding: 0 8px;
794
- border: 1px solid var(--border);
795
- border-radius: var(--radius-full);
796
- background: var(--surface-bg);
1010
+ gap: 7px;
1011
+ min-height: 20px;
1012
+ margin-left: 4px;
797
1013
  color: var(--text-muted);
798
- font-size: 0.68rem;
1014
+ font-size: 0.65rem;
1015
+ font-weight: 500;
1016
+ line-height: 1;
799
1017
  white-space: nowrap;
800
1018
  }
801
1019
 
802
- .workspace-agent-pill[data-state="agent"],
1020
+ .workspace-agent-pill::before {
1021
+ content: "";
1022
+ width: 6px;
1023
+ height: 6px;
1024
+ border-radius: 50%;
1025
+ background: currentColor;
1026
+ opacity: 0.72;
1027
+ }
1028
+
1029
+ .workspace-agent-pill[data-state="agent"] {
1030
+ color: var(--status-success);
1031
+ }
1032
+
803
1033
  .workspace-agent-pill[data-state="thinking"] {
804
- border-color: color-mix(in srgb, var(--accent) 38%, var(--border));
805
- color: var(--accent-hover);
1034
+ color: var(--status-thinking);
1035
+ }
1036
+
1037
+ .workspace-agent-pill[data-state="thinking"]::before {
1038
+ animation: workspaceStatusPulse 1.1s ease-in-out infinite;
806
1039
  }
807
1040
 
808
1041
  .workspace-panel-actions {
809
- display: grid;
810
- grid-template-columns: repeat(3, 1fr);
811
- gap: 8px;
812
- padding: 0 10px 12px 0;
1042
+ min-width: 0;
1043
+ display: flex;
1044
+ align-items: center;
1045
+ gap: 4px;
813
1046
  }
814
1047
 
815
1048
  .workspace-panel-actions button {
816
- height: 31px;
817
- border: 1px solid var(--border);
818
- border-radius: var(--radius-sm);
819
- background: linear-gradient(180deg, color-mix(in srgb, var(--surface-bg) 92%, #ffffff 4%), var(--surface-bg));
820
- color: var(--text-main);
821
- font-size: 0.75rem;
822
- font-weight: 650;
1049
+ width: 30px;
1050
+ height: 30px;
1051
+ flex: 0 0 30px;
1052
+ display: inline-flex;
1053
+ align-items: center;
1054
+ justify-content: center;
1055
+ border: 1px solid transparent;
1056
+ border-radius: var(--radius-xs);
1057
+ background: transparent;
1058
+ color: var(--text-secondary);
1059
+ padding: 0;
823
1060
  cursor: pointer;
1061
+ transition: background-color 120ms ease, color 120ms ease;
824
1062
  }
825
1063
 
826
- .workspace-panel-actions button:hover {
827
- border-color: color-mix(in srgb, var(--accent) 42%, var(--border));
828
- background: color-mix(in srgb, var(--accent) 12%, var(--surface-bg));
1064
+ .workspace-panel-actions button:hover:not(:disabled) {
1065
+ border-color: var(--border-subtle);
1066
+ background: var(--bg-surface-hover);
1067
+ color: var(--text-primary);
829
1068
  }
830
1069
 
831
- .workspace-panel-actions button:disabled {
832
- opacity: 0.45;
833
- cursor: not-allowed;
1070
+ .workspace-panel-actions button:active:not(:disabled) {
1071
+ background: var(--accent-subtle);
1072
+ color: var(--text-primary);
1073
+ }
1074
+
1075
+ .workspace-panel-actions button:focus-visible,
1076
+ .workspace-tree-row:focus-visible {
1077
+ outline: 2px solid var(--border-focus);
1078
+ outline-offset: -2px;
834
1079
  }
835
1080
 
836
- .workspace-panel-actions button:disabled:hover {
837
- border-color: var(--border);
838
- background: var(--surface-bg);
1081
+ .workspace-panel-actions button:disabled {
1082
+ color: var(--text-disabled);
1083
+ cursor: not-allowed;
1084
+ opacity: 0.62;
839
1085
  }
840
1086
 
841
1087
  .workspace-tree-shell {
1088
+ min-width: 0;
842
1089
  min-height: 0;
1090
+ margin-right: 18px;
843
1091
  overflow: auto;
844
- border: 1px solid color-mix(in srgb, var(--border) 86%, #ffffff 4%);
845
- border-radius: var(--radius-sm);
846
- background:
847
- linear-gradient(90deg, transparent calc(100% - 1px), color-mix(in srgb, var(--border) 72%, transparent) calc(100% - 1px)),
848
- color-mix(in srgb, var(--surface-bg) 80%, #060708 20%);
849
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025);
850
- scrollbar-color: color-mix(in srgb, var(--text-muted) 38%, transparent) transparent;
1092
+ overscroll-behavior: contain;
1093
+ background: var(--bg-surface);
1094
+ border-bottom: 1px solid var(--border-default);
1095
+ scrollbar-color: var(--border-strong) transparent;
851
1096
  scrollbar-width: thin;
852
1097
  }
853
1098
 
854
1099
  .workspace-tree-shell::-webkit-scrollbar {
855
- width: 10px;
856
- height: 10px;
1100
+ width: 9px;
1101
+ height: 9px;
1102
+ }
1103
+
1104
+ .workspace-tree-shell::-webkit-scrollbar-track {
1105
+ background: transparent;
857
1106
  }
858
1107
 
859
1108
  .workspace-tree-shell::-webkit-scrollbar-thumb {
860
1109
  border: 3px solid transparent;
861
1110
  border-radius: var(--radius-full);
862
- background: color-mix(in srgb, var(--text-muted) 38%, transparent);
1111
+ background: var(--border-strong);
863
1112
  background-clip: padding-box;
864
1113
  }
865
1114
 
@@ -867,16 +1116,16 @@
867
1116
  .workspace-tree-row {
868
1117
  width: 100%;
869
1118
  min-width: 0;
870
- height: 24px;
871
1119
  display: grid;
872
- grid-template-columns: 14px 18px minmax(0, 1fr);
1120
+ grid-template-columns: 14px 20px minmax(0, 1fr);
873
1121
  align-items: center;
874
- gap: 3px;
1122
+ gap: 5px;
875
1123
  border: 0;
1124
+ border-radius: 0;
876
1125
  background: transparent;
877
- color: var(--text-soft);
1126
+ color: var(--text-secondary);
878
1127
  font: inherit;
879
- font-size: 0.8rem;
1128
+ font-size: 0.78rem;
880
1129
  line-height: 1;
881
1130
  text-align: left;
882
1131
  }
@@ -884,45 +1133,58 @@
884
1133
  .workspace-root-row {
885
1134
  position: sticky;
886
1135
  top: 0;
887
- z-index: 1;
888
- height: 27px;
889
- padding: 0 8px 0 10px;
890
- border-bottom: 1px solid color-mix(in srgb, var(--border) 82%, transparent);
891
- background: color-mix(in srgb, var(--surface-strong) 88%, #ffffff 3%);
892
- color: var(--text-main);
893
- font-weight: 650;
894
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.18);
1136
+ z-index: 2;
1137
+ height: 34px;
1138
+ padding: 0 12px;
1139
+ border-bottom: 1px solid var(--border-default);
1140
+ background: var(--bg-surface-raised);
1141
+ color: var(--text-primary);
1142
+ font-weight: 600;
895
1143
  }
896
1144
 
897
- .workspace-tree-row {
898
- position: relative;
899
- cursor: default;
900
- padding-right: 8px;
1145
+ .workspace-root-row > span:last-child {
1146
+ min-width: 0;
1147
+ overflow: hidden;
1148
+ text-overflow: ellipsis;
1149
+ white-space: nowrap;
901
1150
  }
902
1151
 
903
- .workspace-tree-row.is-directory {
904
- color: var(--text-main);
905
- cursor: grab;
1152
+ .workspace-tree {
1153
+ min-width: 0;
1154
+ width: 100%;
1155
+ padding: 5px 0 10px;
906
1156
  }
907
1157
 
908
- .workspace-tree-row.is-file {
1158
+ .workspace-tree-row {
1159
+ position: relative;
1160
+ height: 29px;
1161
+ padding-right: 12px;
909
1162
  cursor: grab;
910
- }
911
-
912
- .workspace-tree-row:active {
913
- cursor: grabbing;
1163
+ user-select: none;
1164
+ transition: background-color 100ms ease, color 100ms ease;
914
1165
  }
915
1166
 
916
1167
  .workspace-tree-row:hover {
917
- background: color-mix(in srgb, var(--accent) 12%, transparent);
1168
+ background: var(--bg-surface-hover);
1169
+ color: var(--text-primary);
918
1170
  }
919
1171
 
920
- .workspace-tree-row:hover::before {
1172
+ .workspace-tree-row:hover::after,
1173
+ .workspace-tree-row:focus-visible::after {
921
1174
  content: "";
922
1175
  position: absolute;
923
- inset: 0 auto 0 0;
1176
+ inset: 5px auto 5px 0;
924
1177
  width: 2px;
925
- background: color-mix(in srgb, var(--accent) 74%, transparent);
1178
+ background: var(--accent);
1179
+ }
1180
+
1181
+ .workspace-tree-row:active {
1182
+ cursor: grabbing;
1183
+ }
1184
+
1185
+ .workspace-tree-row.is-directory {
1186
+ color: var(--text-primary);
1187
+ font-weight: 500;
926
1188
  }
927
1189
 
928
1190
  .workspace-tree-chevron {
@@ -942,8 +1204,9 @@
942
1204
  border-top: 4px solid transparent;
943
1205
  border-bottom: 4px solid transparent;
944
1206
  border-left: 5px solid currentColor;
945
- opacity: 0.82;
1207
+ opacity: 0.78;
946
1208
  transform-origin: 45% 50%;
1209
+ transition: transform 120ms ease;
947
1210
  }
948
1211
 
949
1212
  .workspace-tree-chevron[data-open="true"]::before {
@@ -956,106 +1219,54 @@
956
1219
 
957
1220
  .workspace-tree-icon {
958
1221
  position: relative;
959
- width: 18px;
960
- height: 18px;
1222
+ width: 20px;
1223
+ height: 20px;
961
1224
  display: inline-grid;
962
1225
  place-items: center;
963
1226
  overflow: hidden;
964
- color: #94a3b8;
965
- font-size: 0.54rem;
966
- font-weight: 800;
967
- letter-spacing: 0;
968
- text-align: center;
1227
+ color: var(--text-muted);
1228
+ font-family: 'Fira Code', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1229
+ font-size: 0.5rem;
1230
+ font-weight: 600;
1231
+ letter-spacing: -0.04em;
969
1232
  white-space: nowrap;
970
1233
  }
971
1234
 
972
1235
  .workspace-tree-icon.material-icon {
973
1236
  overflow: visible;
974
- color: inherit;
975
- }
976
-
977
- .workspace-tree-icon.material-icon::before,
978
- .workspace-tree-icon.material-icon::after {
979
- display: none;
980
1237
  }
981
1238
 
982
1239
  .workspace-tree-icon.material-icon img {
983
- width: 17px;
984
- height: 17px;
1240
+ width: 18px;
1241
+ height: 18px;
985
1242
  display: block;
986
1243
  object-fit: contain;
987
1244
  flex: 0 0 auto;
988
- filter: drop-shadow(0 1px 0 rgba(0, 0, 0, 0.18));
989
1245
  pointer-events: none;
990
1246
  user-select: none;
991
1247
  }
992
1248
 
993
- .workspace-tree-icon.folder {
994
- color: #7ee787;
995
- }
996
-
997
- .workspace-tree-icon.folder::before {
998
- content: "";
999
- position: absolute;
1000
- left: 2px;
1001
- right: 2px;
1002
- bottom: 4px;
1003
- height: 9px;
1004
- border-radius: 2px;
1005
- background: currentColor;
1006
- box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.24);
1007
- }
1008
-
1009
- .workspace-tree-icon.folder::after {
1010
- content: "";
1011
- position: absolute;
1012
- left: 3px;
1013
- top: 4px;
1014
- width: 7px;
1015
- height: 4px;
1016
- border-radius: 2px 2px 0 0;
1017
- background: currentColor;
1018
- }
1019
-
1020
1249
  .workspace-tree-icon.ts,
1021
1250
  .workspace-tree-icon.tsx {
1022
- color: #58a6ff;
1251
+ color: var(--syntax-property);
1023
1252
  }
1024
1253
 
1025
1254
  .workspace-tree-icon.js,
1026
1255
  .workspace-tree-icon.json {
1027
- color: #f2cc60;
1256
+ color: var(--syntax-flag);
1028
1257
  }
1029
1258
 
1030
1259
  .workspace-tree-icon.css {
1031
- color: #c297ff;
1260
+ color: var(--syntax-type);
1032
1261
  }
1033
1262
 
1034
1263
  .workspace-tree-icon.html,
1035
1264
  .workspace-tree-icon.md {
1036
- color: #7aa2f7;
1265
+ color: var(--syntax-function);
1037
1266
  }
1038
1267
 
1039
1268
  .workspace-tree-icon.rs {
1040
- color: #ffab70;
1041
- }
1042
-
1043
- .workspace-tree-icon.file::before,
1044
- .workspace-tree-icon.css::before,
1045
- .workspace-tree-icon.html::before,
1046
- .workspace-tree-icon.js::before,
1047
- .workspace-tree-icon.json::before,
1048
- .workspace-tree-icon.md::before,
1049
- .workspace-tree-icon.rs::before,
1050
- .workspace-tree-icon.ts::before,
1051
- .workspace-tree-icon.tsx::before {
1052
- content: "";
1053
- position: absolute;
1054
- inset: 2px 3px;
1055
- border: 1px solid currentColor;
1056
- border-radius: 2px;
1057
- background: color-mix(in srgb, currentColor 13%, transparent);
1058
- opacity: 0.84;
1269
+ color: var(--syntax-number);
1059
1270
  }
1060
1271
 
1061
1272
  .workspace-tree-name {
@@ -1066,13 +1277,81 @@
1066
1277
  }
1067
1278
 
1068
1279
  .workspace-tree-empty {
1069
- padding: 18px;
1280
+ max-width: 48ch;
1281
+ padding: 18px 12px;
1070
1282
  color: var(--text-muted);
1071
- font-size: 0.82rem;
1283
+ font-size: 0.78rem;
1284
+ line-height: 1.55;
1285
+ }
1286
+
1287
+ @keyframes workspaceStatusPulse {
1288
+ 0%, 100% {
1289
+ opacity: 0.45;
1290
+ transform: scale(0.9);
1291
+ }
1292
+ 50% {
1293
+ opacity: 1;
1294
+ transform: scale(1.15);
1295
+ }
1296
+ }
1297
+
1298
+ @media (prefers-reduced-motion: reduce) {
1299
+ .workspace-panel {
1300
+ animation: none;
1301
+ }
1302
+
1303
+ .workspace-agent-pill[data-state="thinking"]::before {
1304
+ animation: none;
1305
+ }
1306
+
1307
+ .workspace-panel-actions button,
1308
+ .workspace-tree-row,
1309
+ .workspace-tree-chevron::before {
1310
+ transition: none;
1311
+ }
1312
+ }
1313
+
1314
+ @media (forced-colors: active) {
1315
+ .workspace-panel-actions button:focus-visible,
1316
+ .workspace-tree-row:focus-visible {
1317
+ outline-color: Highlight;
1318
+ }
1319
+
1320
+ .workspace-tree-row:hover::after,
1321
+ .workspace-tree-row:focus-visible::after {
1322
+ background: Highlight;
1323
+ }
1072
1324
  }
1073
1325
 
1074
1326
  @media (max-width: 760px) {
1075
1327
 
1328
+ .workspace-panel {
1329
+ grid-template-rows: 54px minmax(0, 1fr);
1330
+ padding: 0 12px 12px;
1331
+ }
1332
+
1333
+ .workspace-panel-header {
1334
+ padding-right: 0;
1335
+ }
1336
+
1337
+ .workspace-tree-shell {
1338
+ margin-right: 0;
1339
+ }
1340
+
1341
+ .workspace-agent-pill {
1342
+ display: none;
1343
+ }
1344
+
1345
+ .workspace-panel-actions button {
1346
+ width: 34px;
1347
+ height: 34px;
1348
+ flex-basis: 34px;
1349
+ }
1350
+
1351
+ .workspace-tree-row {
1352
+ height: 34px;
1353
+ }
1354
+
1076
1355
  .toggle-model-btn,
1077
1356
  .change-expression-btn,
1078
1357
  .accessory-cycle-btn,
@@ -1095,7 +1374,22 @@
1095
1374
  }
1096
1375
 
1097
1376
  .workspace-sidebar {
1098
- display: none;
1377
+ display: flex;
1378
+ position: fixed;
1379
+ top: 0;
1380
+ left: 0;
1381
+ bottom: 0;
1382
+ width: 260px !important;
1383
+ height: 100%;
1384
+ z-index: 9999;
1385
+ transform: translateX(-100%);
1386
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1387
+ background: var(--chrome-bg);
1388
+ padding: 20px 10px 12px 14px !important;
1389
+ }
1390
+ .app-body.sidebar-collapsed .workspace-sidebar .sidebar-brand-name {
1391
+ display: inline !important;
1392
+ opacity: 1 !important;
1099
1393
  }
1100
1394
  }
1101
1395
 
@@ -1104,3 +1398,348 @@
1104
1398
  .sidebar-search-btn {
1105
1399
  margin-top: 4px;
1106
1400
  }
1401
+
1402
+ /* Sidebar Projects Grouping */
1403
+
1404
+ .sidebar-projects-list {
1405
+ display: flex;
1406
+ flex-direction: column;
1407
+ gap: 4px;
1408
+ margin-bottom: 8px;
1409
+ }
1410
+
1411
+ .sidebar-project-group {
1412
+ display: flex;
1413
+ flex-direction: column;
1414
+ position: relative;
1415
+ transition: opacity 0.15s ease, transform 0.15s ease;
1416
+ }
1417
+
1418
+ .sidebar-project-group.is-dragging {
1419
+ opacity: 0.35;
1420
+ transform: scale(0.98);
1421
+ }
1422
+
1423
+ .sidebar-project-group.drop-before::before {
1424
+ content: "";
1425
+ position: absolute;
1426
+ top: -2px;
1427
+ left: 4px;
1428
+ right: 4px;
1429
+ height: 2px;
1430
+ background: var(--flavor-teal, #2dd4bf);
1431
+ border-radius: 9999px;
1432
+ box-shadow: 0 0 8px var(--flavor-teal, #2dd4bf);
1433
+ z-index: 10;
1434
+ pointer-events: none;
1435
+ }
1436
+
1437
+ .sidebar-project-group.drop-after::after {
1438
+ content: "";
1439
+ position: absolute;
1440
+ bottom: -2px;
1441
+ left: 4px;
1442
+ right: 4px;
1443
+ height: 2px;
1444
+ background: var(--flavor-teal, #2dd4bf);
1445
+ border-radius: 9999px;
1446
+ box-shadow: 0 0 8px var(--flavor-teal, #2dd4bf);
1447
+ z-index: 10;
1448
+ pointer-events: none;
1449
+ }
1450
+
1451
+ .sidebar-project-drag-grip {
1452
+ display: inline-flex;
1453
+ align-items: center;
1454
+ justify-content: center;
1455
+ color: var(--text-muted);
1456
+ opacity: 0.25;
1457
+ cursor: grab;
1458
+ margin-right: 2px;
1459
+ flex-shrink: 0;
1460
+ transition: opacity 0.15s ease, color 0.15s ease;
1461
+ }
1462
+
1463
+ .sidebar-project-group-header:hover .sidebar-project-drag-grip {
1464
+ opacity: 0.85;
1465
+ color: var(--text-secondary);
1466
+ }
1467
+
1468
+ .sidebar-project-group-header:active .sidebar-project-drag-grip {
1469
+ cursor: grabbing;
1470
+ }
1471
+
1472
+ .sidebar-project-group-header {
1473
+ width: 100%;
1474
+ display: flex;
1475
+ align-items: center;
1476
+ justify-content: space-between;
1477
+ padding: 6px 8px;
1478
+ background: transparent;
1479
+ border: 1px solid transparent;
1480
+ border-radius: var(--radius-sm, 6px);
1481
+ color: var(--text-secondary);
1482
+ cursor: pointer;
1483
+ user-select: none;
1484
+ transition: background 0.15s ease, color 0.15s ease;
1485
+ text-align: left;
1486
+ }
1487
+
1488
+ .sidebar-project-group-header:hover {
1489
+ background: var(--bg-surface-hover);
1490
+ color: var(--text-primary);
1491
+ }
1492
+
1493
+ .sidebar-project-group-left {
1494
+ display: flex;
1495
+ align-items: center;
1496
+ gap: 7px;
1497
+ min-width: 0;
1498
+ flex: 1;
1499
+ }
1500
+
1501
+ .sidebar-project-folder-icon {
1502
+ flex-shrink: 0;
1503
+ color: var(--text-muted);
1504
+ }
1505
+
1506
+ .sidebar-project-group-header:hover .sidebar-project-folder-icon {
1507
+ color: var(--text-secondary);
1508
+ }
1509
+
1510
+ .sidebar-project-group-name {
1511
+ overflow: hidden;
1512
+ text-overflow: ellipsis;
1513
+ white-space: nowrap;
1514
+ font-size: 0.82rem;
1515
+ font-weight: 500;
1516
+ color: var(--text-primary);
1517
+ }
1518
+
1519
+ .sidebar-project-group-right {
1520
+ display: flex;
1521
+ align-items: center;
1522
+ gap: 5px;
1523
+ flex-shrink: 0;
1524
+ margin-left: 6px;
1525
+ }
1526
+
1527
+ .sidebar-project-add-btn {
1528
+ display: inline-flex;
1529
+ align-items: center;
1530
+ justify-content: center;
1531
+ width: 18px;
1532
+ height: 18px;
1533
+ border-radius: var(--radius-sm, 4px);
1534
+ color: var(--text-muted);
1535
+ cursor: pointer;
1536
+ opacity: 0;
1537
+ transition: opacity 0.15s ease, background 0.15s ease, color 0.15s ease, transform 0.15s ease;
1538
+ }
1539
+
1540
+ .sidebar-project-group-header:hover .sidebar-project-add-btn {
1541
+ opacity: 0.65;
1542
+ }
1543
+
1544
+ .sidebar-project-add-btn:hover {
1545
+ opacity: 1 !important;
1546
+ background: rgba(255, 255, 255, 0.1);
1547
+ color: var(--text-primary);
1548
+ transform: scale(1.1);
1549
+ }
1550
+
1551
+ .sidebar-project-menu-trigger {
1552
+ display: inline-flex;
1553
+ align-items: center;
1554
+ justify-content: center;
1555
+ width: 22px;
1556
+ height: 22px;
1557
+ padding: 0;
1558
+ border: 0;
1559
+ border-radius: var(--radius-sm, 4px);
1560
+ background: transparent;
1561
+ color: var(--text-muted);
1562
+ opacity: 0;
1563
+ cursor: pointer;
1564
+ }
1565
+ .sidebar-project-group-header:hover .sidebar-project-menu-trigger,
1566
+ .sidebar-project-menu-trigger:focus-visible { opacity: 1; }
1567
+ .sidebar-project-menu-trigger:hover { color: var(--text-primary); background: var(--bg-surface-hover); }
1568
+ @media (pointer: coarse) { .sidebar-project-menu-trigger { opacity: 1; } }
1569
+ .sidebar-project-menu-popover {
1570
+ position: fixed;
1571
+ z-index: 1000;
1572
+ width: 190px;
1573
+ padding: 4px;
1574
+ border: 1px solid var(--border-subtle, rgba(255,255,255,.12));
1575
+ border-radius: var(--radius-md, 8px);
1576
+ background: var(--bg-surface, #202126);
1577
+ box-shadow: 0 8px 24px rgba(0,0,0,.3);
1578
+ }
1579
+ .sidebar-project-menu-popover button {
1580
+ display: flex;
1581
+ gap: 8px;
1582
+ align-items: center;
1583
+ width: 100%;
1584
+ padding: 7px 8px;
1585
+ border: 0;
1586
+ border-radius: var(--radius-sm, 5px);
1587
+ color: var(--text-primary);
1588
+ background: transparent;
1589
+ text-align: left;
1590
+ font-size: .8rem;
1591
+ cursor: pointer;
1592
+ }
1593
+ .sidebar-project-menu-popover button:hover { background: var(--bg-surface-hover); }
1594
+ .sidebar-project-menu-popover button.is-destructive { color: var(--color-danger, #f87171); }
1595
+ .sidebar-project-menu-popover button span { flex: 1; }
1596
+
1597
+ .sidebar-project-group-count {
1598
+ font-size: 0.7rem;
1599
+ font-variant-numeric: tabular-nums;
1600
+ color: var(--text-muted);
1601
+ background: rgba(255, 255, 255, 0.06);
1602
+ padding: 1px 6px;
1603
+ border-radius: 9999px;
1604
+ line-height: 1.2;
1605
+ }
1606
+
1607
+ .sidebar-project-group-chevron {
1608
+ display: inline-flex;
1609
+ align-items: center;
1610
+ justify-content: center;
1611
+ color: var(--text-muted);
1612
+ }
1613
+
1614
+ .sidebar-project-sessions {
1615
+ margin-top: 2px;
1616
+ margin-left: 12px;
1617
+ padding-left: 6px;
1618
+ border-left: 1px solid rgba(255, 255, 255, 0.08);
1619
+ display: flex;
1620
+ flex-direction: column;
1621
+ gap: 2px;
1622
+ }
1623
+
1624
+ .sidebar-chat-item.is-indented {
1625
+ font-size: 0.84rem;
1626
+ padding-left: 8px;
1627
+ }
1628
+
1629
+ .sidebar-show-more-btn {
1630
+ background: transparent;
1631
+ border: none;
1632
+ color: var(--text-muted);
1633
+ font-size: 0.75rem;
1634
+ padding: 4px 8px;
1635
+ text-align: left;
1636
+ cursor: pointer;
1637
+ border-radius: var(--radius-xs, 4px);
1638
+ margin-top: 2px;
1639
+ transition: color 0.15s ease, background 0.15s ease;
1640
+ }
1641
+
1642
+ .sidebar-show-more-btn:hover {
1643
+ color: var(--text-secondary);
1644
+ background: var(--bg-surface-hover);
1645
+ }
1646
+
1647
+ /* Sidebar Move Popover */
1648
+
1649
+ .sidebar-move-popover {
1650
+ position: fixed;
1651
+ z-index: 99999;
1652
+ min-width: 200px;
1653
+ max-width: 280px;
1654
+ background: var(--bg-surface-raised, #18181b);
1655
+ border: 1px solid var(--border-default, #27272a);
1656
+ border-radius: var(--radius-md, 8px);
1657
+ padding: 6px;
1658
+ box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5), 0 8px 10px -6px rgba(0, 0, 0, 0.4);
1659
+ display: flex;
1660
+ flex-direction: column;
1661
+ gap: 2px;
1662
+ animation: sidebarMoveFadeIn 0.12s ease-out;
1663
+ }
1664
+
1665
+ @keyframes sidebarMoveFadeIn {
1666
+ from {
1667
+ opacity: 0;
1668
+ transform: translateY(-4px) scale(0.98);
1669
+ }
1670
+ to {
1671
+ opacity: 1;
1672
+ transform: translateY(0) scale(1);
1673
+ }
1674
+ }
1675
+
1676
+ .sidebar-move-header {
1677
+ font-size: 0.7rem;
1678
+ font-weight: 600;
1679
+ color: var(--text-muted);
1680
+ padding: 4px 8px 4px;
1681
+ text-transform: uppercase;
1682
+ letter-spacing: 0.05em;
1683
+ }
1684
+
1685
+ .sidebar-move-list {
1686
+ display: flex;
1687
+ flex-direction: column;
1688
+ gap: 2px;
1689
+ max-height: 200px;
1690
+ overflow-y: auto;
1691
+ }
1692
+
1693
+ .sidebar-move-item {
1694
+ display: flex;
1695
+ align-items: center;
1696
+ gap: 8px;
1697
+ padding: 6px 8px;
1698
+ border-radius: var(--radius-sm, 6px);
1699
+ font-size: 0.82rem;
1700
+ color: var(--text-primary);
1701
+ background: transparent;
1702
+ border: none;
1703
+ cursor: pointer;
1704
+ text-align: left;
1705
+ width: 100%;
1706
+ transition: background 0.12s ease;
1707
+ }
1708
+
1709
+ .sidebar-move-item:hover {
1710
+ background: var(--bg-surface-hover, rgba(255, 255, 255, 0.08));
1711
+ }
1712
+
1713
+ .sidebar-move-item.is-current {
1714
+ color: var(--text-secondary);
1715
+ font-weight: 500;
1716
+ }
1717
+
1718
+ .sidebar-move-item-icon {
1719
+ display: inline-flex;
1720
+ align-items: center;
1721
+ justify-content: center;
1722
+ width: 16px;
1723
+ flex-shrink: 0;
1724
+ color: var(--text-muted);
1725
+ }
1726
+
1727
+ .sidebar-move-item-name {
1728
+ flex: 1;
1729
+ overflow: hidden;
1730
+ text-overflow: ellipsis;
1731
+ white-space: nowrap;
1732
+ }
1733
+
1734
+ .sidebar-move-item-check {
1735
+ margin-left: auto;
1736
+ font-size: 0.85rem;
1737
+ color: var(--flavor-teal, #2dd4bf);
1738
+ font-weight: 600;
1739
+ }
1740
+
1741
+ .sidebar-move-divider {
1742
+ height: 1px;
1743
+ background: var(--border-subtle, rgba(255, 255, 255, 0.08));
1744
+ margin: 4px 2px;
1745
+ }