diffing 0.2.1 → 0.4.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 (436) hide show
  1. package/README.md +169 -3
  2. package/dist/{cli-agent-BNwY5lZE.mjs → cli-agent-B4hU6Xay.mjs} +58 -5
  3. package/dist/{cli-agent-CbzXDSSF.mjs → cli-agent-B_PHd635.mjs} +58 -5
  4. package/dist/{cli-agent-ZAkixf4c.mjs → cli-agent-KxNAFIPf.mjs} +6 -2
  5. package/dist/cli-gh-CDGSpndZ.mjs +147 -0
  6. package/dist/cli-gh-abs-IJrz.mjs +147 -0
  7. package/dist/cli.mjs +1214 -56
  8. package/dist/client/assets/{angular-html-DsssUIMZ.js → angular-html-BVFBJbbm.js} +1 -1
  9. package/dist/client/assets/{angular-ts-dTg-sJ77.js → angular-ts-CbJB4bNJ.js} +1 -1
  10. package/dist/client/assets/{apl-C1yUKbqz.js → apl-MzqTwOQT.js} +1 -1
  11. package/dist/client/assets/arc-DkYz3FVO.js +1 -0
  12. package/dist/client/assets/architecture-7EHR7CIX-BM5HxebS.js +1 -0
  13. package/dist/client/assets/architectureDiagram-3BPJPVTR-CU3k1-_g.js +36 -0
  14. package/dist/client/assets/array-CkF66D10.js +1 -0
  15. package/dist/client/assets/{astro-BI07ha2y.js → astro-DDblGxmh.js} +1 -1
  16. package/dist/client/assets/{blade-DkzUGffS.js → blade-DlgT3iuV.js} +1 -1
  17. package/dist/client/assets/blockDiagram-GPEHLZMM-1lwkHRY_.js +132 -0
  18. package/dist/client/assets/{bsl-Dx5tFn3i.js → bsl-BrHd4RA2.js} +1 -1
  19. package/dist/client/assets/{c-KkuqqOvW.js → c-BL61MF4M.js} +1 -1
  20. package/dist/client/assets/c4Diagram-AAUBKEIU-BPBjnNM8.js +10 -0
  21. package/dist/client/assets/{cairo-wCCQTdA9.js → cairo-BDZ6TRZS.js} +1 -1
  22. package/dist/client/assets/channel-BX6tZjG6.js +1 -0
  23. package/dist/client/assets/chunk-2J33WTMH-C_SASPYW.js +1 -0
  24. package/dist/client/assets/chunk-3OPIFGDE-CTcbOBts.js +62 -0
  25. package/dist/client/assets/chunk-4BX2VUAB-BipHnfY4.js +1 -0
  26. package/dist/client/assets/chunk-4EGX6M5U-C70lfA2p.js +1 -0
  27. package/dist/client/assets/chunk-55IACEB6-BzJYLlnc.js +1 -0
  28. package/dist/client/assets/chunk-5DO6E6H7-PprNUwlI.js +1 -0
  29. package/dist/client/assets/chunk-5ZQYHXKU-CorupEGf.js +2 -0
  30. package/dist/client/assets/chunk-727SXJPM-Cqjzb4FZ.js +206 -0
  31. package/dist/client/assets/chunk-AQP2D5EJ-DcaAmtSe.js +231 -0
  32. package/dist/client/assets/chunk-BR22UD5L-D8XCYMy9.js +1 -0
  33. package/dist/client/assets/chunk-BSJP7CBP-CiBjSxwv.js +1 -0
  34. package/dist/client/assets/chunk-CSCIHK7Q-BTbf6qN3.js +124 -0
  35. package/dist/client/assets/chunk-FHYWG6QK-CcHPrHH1.js +1 -0
  36. package/dist/client/assets/chunk-FMBD7UC4-BA8_ZS2e.js +15 -0
  37. package/dist/client/assets/chunk-KSCS5N6A-ChcT2GOp.js +10 -0
  38. package/dist/client/assets/chunk-L5ZTLDWV-BjzpE0xm.js +1 -0
  39. package/dist/client/assets/chunk-LZXEDZCA-Bu0azrf_.js +2 -0
  40. package/dist/client/assets/chunk-MPE355IW-Bf9yHfDS.js +1 -0
  41. package/dist/client/assets/chunk-MZUSXYTE-CnUIUKI4.js +1 -0
  42. package/dist/client/assets/chunk-N66VUXT2-ahAf9GvV.js +1 -0
  43. package/dist/client/assets/chunk-ND2GUHAM-Co55RNsd.js +1 -0
  44. package/dist/client/assets/chunk-NNHCCRGN-DHF3V75i.js +159 -0
  45. package/dist/client/assets/chunk-NZK2D7GU-CtPYeO8_.js +1 -0
  46. package/dist/client/assets/chunk-O5CBEL6O-CzRKb_Hn.js +70 -0
  47. package/dist/client/assets/chunk-PUPMXCY4-D0KKIhut.js +1 -0
  48. package/dist/client/assets/chunk-QZHKN3VN-BCSN705V.js +1 -0
  49. package/dist/client/assets/chunk-UIBZB4QT-TYsZ_c8u.js +1 -0
  50. package/dist/client/assets/chunk-WCWK7LTN-Dj8SfnMU.js +1 -0
  51. package/dist/client/assets/chunk-WU5MYG2G-xPWDnrji.js +1 -0
  52. package/dist/client/assets/chunk-XPW4576I-CYH9wUok.js +32 -0
  53. package/dist/client/assets/classDiagram-4FO5ZUOK-7xfBUC5E.js +1 -0
  54. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CFM5yYso.js +1 -0
  55. package/dist/client/assets/{cobol-DRh7-jLi.js → cobol-D37UDAkO.js} +1 -1
  56. package/dist/client/assets/{coffee-wR_ZAh9a.js → coffee-NCjhDwWZ.js} +1 -1
  57. package/dist/client/assets/cose-bilkent-S5V4N54A-B8RnQ-yF.js +1 -0
  58. package/dist/client/assets/{cpp-OD_qyywn.js → cpp-CQUNgUz4.js} +1 -1
  59. package/dist/client/assets/{crystal-E4ahAddE.js → crystal-DGHLJtZ_.js} +1 -1
  60. package/dist/client/assets/{css-2NgE_uxz.js → css-xCgEbp_3.js} +1 -1
  61. package/dist/client/assets/cytoscape.esm-B7MQoI9k.js +321 -0
  62. package/dist/client/assets/dagre-BM42HDAG-CvmQMXPT.js +4 -0
  63. package/dist/client/assets/dagre-DAhKikc0.js +1 -0
  64. package/dist/client/assets/defaultLocale-B_TxGd0k.js +1 -0
  65. package/dist/client/assets/diagram-2AECGRRQ-wIyWTlXo.js +43 -0
  66. package/dist/client/assets/diagram-5GNKFQAL-BLMMWtHj.js +10 -0
  67. package/dist/client/assets/diagram-KO2AKTUF-Duz_hHky.js +3 -0
  68. package/dist/client/assets/diagram-LMA3HP47-CftQIrJ1.js +24 -0
  69. package/dist/client/assets/diagram-OG6HWLK6-7odjt2qL.js +24 -0
  70. package/dist/client/assets/dist-PmPhNea3.js +1 -0
  71. package/dist/client/assets/{edge-8mbscxxD.js → edge-C6_UFojU.js} +1 -1
  72. package/dist/client/assets/{elixir-CJv1b3Q6.js → elixir-B12MoaTY.js} +1 -1
  73. package/dist/client/assets/{elm-DUPzqZ9H.js → elm-C80KxC_R.js} +1 -1
  74. package/dist/client/assets/erDiagram-TEJ5UH35-DOeyf617.js +85 -0
  75. package/dist/client/assets/{erb-ssvEF26z.js → erb-DqelkF7l.js} +1 -1
  76. package/dist/client/assets/{erlang-CtK0kQ6z.js → erlang-cuhwpmsu.js} +1 -1
  77. package/dist/client/assets/eventmodeling-FCH6USID-hlXE2E34.js +1 -0
  78. package/dist/client/assets/flowDiagram-I6XJVG4X-BJX7W8r0.js +162 -0
  79. package/dist/client/assets/{fortran-fixed-form-DBM4e0_k.js → fortran-fixed-form-DWr0EnJn.js} +1 -1
  80. package/dist/client/assets/{fsharp-CmzzGQLe.js → fsharp-CQ5iYSPA.js} +1 -1
  81. package/dist/client/assets/ganttDiagram-6RSMTGT7-CFWnCca0.js +292 -0
  82. package/dist/client/assets/{gdresource-B_wbPqHd.js → gdresource-CN-lsNu5.js} +1 -1
  83. package/dist/client/assets/{git-commit-1z4D6NzL.js → git-commit-6e79eN7Q.js} +1 -1
  84. package/dist/client/assets/{git-rebase-DiWIK1Oa.js → git-rebase-7L4r_tbx.js} +1 -1
  85. package/dist/client/assets/gitGraph-WXDBUCRP-D_3ZhTam.js +1 -0
  86. package/dist/client/assets/gitGraphDiagram-PVQCEYII-oNErRHPR.js +106 -0
  87. package/dist/client/assets/{glimmer-js-DrHg6AuA.js → glimmer-js-8OQAbTGs.js} +1 -1
  88. package/dist/client/assets/{glimmer-ts-wQSGOa8A.js → glimmer-ts-3IyQiCHC.js} +1 -1
  89. package/dist/client/assets/{glsl-OY27QGY0.js → glsl-Bi_bzGJK.js} +1 -1
  90. package/dist/client/assets/graphlib-DBdw4opr.js +1 -0
  91. package/dist/client/assets/{graphql-CSWSqe6f.js → graphql-YcGxsBfT.js} +1 -1
  92. package/dist/client/assets/{hack-Bi1v624Q.js → hack-C9IpUqi6.js} +1 -1
  93. package/dist/client/assets/{haml-CX94zV9m.js → haml-YWDwVGeX.js} +1 -1
  94. package/dist/client/assets/{handlebars-C1j6wnjG.js → handlebars-zyG7ocdI.js} +1 -1
  95. package/dist/client/assets/{html-BcAjMlB7.js → html-CHYhpzfH.js} +1 -1
  96. package/dist/client/assets/{html-derivative-DcEpOzdx.js → html-derivative-BhgSILdB.js} +1 -1
  97. package/dist/client/assets/{http-BBxxSc6S.js → http-BPv6bUpq.js} +1 -1
  98. package/dist/client/assets/{hurl-CpKRNTz4.js → hurl-CpohSten.js} +1 -1
  99. package/dist/client/assets/{hxml-DC4KwKt2.js → hxml-nwJci6H5.js} +1 -1
  100. package/dist/client/assets/index-BIrpcT6-.js +3922 -0
  101. package/dist/client/assets/index-CMyunQt6.css +1 -0
  102. package/dist/client/assets/info-J43DQDTF-CAllC7mK.js +1 -0
  103. package/dist/client/assets/infoDiagram-5YYISTIA-D1xM4RZP.js +2 -0
  104. package/dist/client/assets/init-Ce66tIvf.js +1 -0
  105. package/dist/client/assets/ishikawaDiagram-YF4QCWOH-7DsxXa1L.js +70 -0
  106. package/dist/client/assets/{java-CFUlLvAA.js → java-Bt4sAY2m.js} +1 -1
  107. package/dist/client/assets/{javascript-C-HnT3sE.js → javascript-DZjI42QZ.js} +1 -1
  108. package/dist/client/assets/{jinja-CPU8RwNP.js → jinja-D2zTW07t.js} +1 -1
  109. package/dist/client/assets/{jison-CW0TBQOs.js → jison-Dz-ndIM5.js} +1 -1
  110. package/dist/client/assets/journeyDiagram-JHISSGLW-C_A1TmoL.js +139 -0
  111. package/dist/client/assets/{json-qUjlNuEJ.js → json-Ykn4LhOH.js} +1 -1
  112. package/dist/client/assets/{jsx-KWeo60kf.js → jsx-Ce8SKNSt.js} +1 -1
  113. package/dist/client/assets/{julia-CnJB8y2e.js → julia-DlfibiGU.js} +1 -1
  114. package/dist/client/assets/{just-Do22d9PP.js → just-CT2PIeY2.js} +1 -1
  115. package/dist/client/assets/kanban-definition-UN3LZRKU-ccKLE8Df.js +89 -0
  116. package/dist/client/assets/katex-eRFNlMh0.js +257 -0
  117. package/dist/client/assets/{latex-CCPgzvKn.js → latex-Dkfo8_p4.js} +1 -1
  118. package/dist/client/assets/line-BbqJI7bZ.js +1 -0
  119. package/dist/client/assets/linear-B7c0dSOq.js +1 -0
  120. package/dist/client/assets/{liquid-B9btdZoI.js → liquid-dWmg5egV.js} +1 -1
  121. package/dist/client/assets/{lua-IFRifurW.js → lua-6hNhLpj8.js} +1 -1
  122. package/dist/client/assets/{marko-CCaVBFq1.js → marko-DTVuQVoJ.js} +1 -1
  123. package/dist/client/assets/{mdc-BtbnOLUc.js → mdc-LbJVW6cj.js} +1 -1
  124. package/dist/client/assets/mermaid-parser.core-f-eKVdX9.js +4 -0
  125. package/dist/client/assets/mermaid.core-ClMOD6O3.js +9 -0
  126. package/dist/client/assets/mindmap-definition-RKZ34NQL-vaLTR09L.js +96 -0
  127. package/dist/client/assets/{nextflow-CApkvBGW.js → nextflow-DSfydIxt.js} +1 -1
  128. package/dist/client/assets/{nginx-BkbFZHVt.js → nginx-BvMTgdwH.js} +1 -1
  129. package/dist/client/assets/{nim-2uCd5j65.js → nim-BdGYhiTu.js} +1 -1
  130. package/dist/client/assets/ordinal-5ziJS8mo.js +1 -0
  131. package/dist/client/assets/packet-YPE3B663-Dy58IAiO.js +1 -0
  132. package/dist/client/assets/path-g3G46IZB.js +1 -0
  133. package/dist/client/assets/{perl-C4ixqSNT.js → perl-DamEOAxn.js} +1 -1
  134. package/dist/client/assets/{php-DJ8WOtcI.js → php-DtubpAAy.js} +1 -1
  135. package/dist/client/assets/pie-LRSECV5Y-FXFFfdz2.js +1 -0
  136. package/dist/client/assets/pieDiagram-4H26LBE5-yuTkGKaM.js +30 -0
  137. package/dist/client/assets/{pug-BOaafhT5.js → pug-CMYtl1BN.js} +1 -1
  138. package/dist/client/assets/{qml-CURE-1y4.js → qml-D76DCV4U.js} +1 -1
  139. package/dist/client/assets/quadrantDiagram-W4KKPZXB-Db00tlGp.js +7 -0
  140. package/dist/client/assets/{r-CPWmgzo3.js → r-gMTLVmYP.js} +1 -1
  141. package/dist/client/assets/radar-GUYGQ44K-BKTzSQ68.js +1 -0
  142. package/dist/client/assets/{razor-DH83VP_d.js → razor-1oOg77PO.js} +1 -1
  143. package/dist/client/assets/{regexp-BXVWi-t_.js → regexp-BJzbycG8.js} +1 -1
  144. package/dist/client/assets/requirementDiagram-4Y6WPE33-CwCGFaVe.js +84 -0
  145. package/dist/client/assets/rough.esm-BBrzuQ0N.js +1 -0
  146. package/dist/client/assets/{rst-Bbxxs6E2.js → rst-Be7RtxcU.js} +1 -1
  147. package/dist/client/assets/{ruby-C-TuWES4.js → ruby-oyNd3WUZ.js} +1 -1
  148. package/dist/client/assets/sankeyDiagram-5OEKKPKP-D78nH-eA.js +40 -0
  149. package/dist/client/assets/{sas-njzNYNOq.js → sas-Bx8dCxcK.js} +1 -1
  150. package/dist/client/assets/{scss-D2i6rHB8.js → scss-DzZEPh1d.js} +1 -1
  151. package/dist/client/assets/sequenceDiagram-3UESZ5HK-CEy9mjHg.js +162 -0
  152. package/dist/client/assets/{shaderlab-DXAhMdPo.js → shaderlab-CbbQwRPF.js} +1 -1
  153. package/dist/client/assets/{shellscript-D6Bxi40C.js → shellscript-t9s0AoBc.js} +1 -1
  154. package/dist/client/assets/{shellsession-Defxq-I6.js → shellsession-NczJO6Io.js} +1 -1
  155. package/dist/client/assets/{soy-D0GKXrtT.js → soy-Dl6InSac.js} +1 -1
  156. package/dist/client/assets/{sparql-BdcL8cbr.js → sparql-DEoxFJ5d.js} +1 -1
  157. package/dist/client/assets/{sql-BRW_ADkU.js → sql-DXkZEc28.js} +1 -1
  158. package/dist/client/assets/src-DCIMHd9M.js +1 -0
  159. package/dist/client/assets/{stata-w7w59F48.js → stata-DmpUDP7M.js} +1 -1
  160. package/dist/client/assets/stateDiagram-AJRCARHV-Cz0qtN4R.js +1 -0
  161. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-Dye5cILT.js +1 -0
  162. package/dist/client/assets/{surrealql-O-lLuqz7.js → surrealql-BAZp4tA6.js} +1 -1
  163. package/dist/client/assets/{svelte-DN3DR5-t.js → svelte-DXBMAgu7.js} +1 -1
  164. package/dist/client/assets/{templ-CJ2JFoia.js → templ-CF-yfRM7.js} +1 -1
  165. package/dist/client/assets/{tex-CpWrf5g9.js → tex-D5tGX-j9.js} +1 -1
  166. package/dist/client/assets/timeline-definition-PNZ67QCA-B6_u5aFI.js +120 -0
  167. package/dist/client/assets/treeView-BLDUP644-DtjHwb6x.js +1 -0
  168. package/dist/client/assets/treemap-LRROVOQU-GqTXzMFU.js +1 -0
  169. package/dist/client/assets/{ts-tags-CZ6Af6Pe.js → ts-tags-DWMVxoO1.js} +1 -1
  170. package/dist/client/assets/{tsx-gIUSpRih.js → tsx-C6QVlWvX.js} +1 -1
  171. package/dist/client/assets/{twig-DwZINhmw.js → twig-DKFN0Lvm.js} +1 -1
  172. package/dist/client/assets/{typescript-Dj2aMECR.js → typescript-DVfrnfSW.js} +1 -1
  173. package/dist/client/assets/vennDiagram-CIIHVFJN-C_-TQFos.js +34 -0
  174. package/dist/client/assets/{vue-B5K0aWrP.js → vue-BCLQ-g1T.js} +1 -1
  175. package/dist/client/assets/{vue-html-DKGgrypd.js → vue-html-Ddr0JbE-.js} +1 -1
  176. package/dist/client/assets/{vue-vine-B5iDYTCh.js → vue-vine-CX36RUs5.js} +1 -1
  177. package/dist/client/assets/wardley-L42UT6IY-pROVAAhW.js +1 -0
  178. package/dist/client/assets/wardleyDiagram-YWT4CUSO-BJQg7Pb-.js +78 -0
  179. package/dist/client/assets/{xml-CbTzxfc-.js → xml-FnMA1W8C.js} +1 -1
  180. package/dist/client/assets/{xsl-Dj-Be6nx.js → xsl-CLduN3zs.js} +1 -1
  181. package/dist/client/assets/xychartDiagram-2RQKCTM6-1Ux8tle4.js +7 -0
  182. package/dist/client/assets/{yaml-rTK8uEjh.js → yaml-B6hNfHm7.js} +1 -1
  183. package/dist/client/index.html +2 -2
  184. package/dist/{mcp-CE77qfjx.mjs → mcp-BWeWR4yd.mjs} +2 -1
  185. package/dist/{mcp-CFeE13n-.mjs → mcp-DNZQvKKF.mjs} +45 -1
  186. package/dist/{mcp-SGCrfYGo.mjs → mcp-DO4zfNZX.mjs} +45 -1
  187. package/dist/plan-format-DVnF8xrq.mjs +126 -0
  188. package/dist/plan-format-f62JWFI-.mjs +117 -0
  189. package/dist/plan-format-mSDtsPcC.mjs +132 -0
  190. package/dist/{server-lock-B4crz9-_.mjs → server-lock-D73NKKbn.mjs} +267 -133
  191. package/dist/{server-lock-DpCrvL-Z.mjs → server-lock-Dj9fG9md.mjs} +246 -122
  192. package/package.json +26 -14
  193. package/dist/cli-agent-BLPX3oOP.mjs +0 -443
  194. package/dist/cli-agent-Cfuy9fLC.mjs +0 -179
  195. package/dist/cli-agent-CtNivjQW.mjs +0 -179
  196. package/dist/cli-agent-DZBvZoXZ.mjs +0 -179
  197. package/dist/cli-agent-DsqbS3n7.mjs +0 -443
  198. package/dist/cli-agent-Vbs-ePHv.mjs +0 -443
  199. package/dist/cli-agent-WzJPMH52.mjs +0 -174
  200. package/dist/cli-agent-uYUoCA4X.mjs +0 -179
  201. package/dist/client/assets/index-Bwv7BWUp.js +0 -3959
  202. package/dist/client/assets/index-CoZyJYkw.css +0 -1
  203. package/dist/mcp-BQmH_By-.mjs +0 -119
  204. package/dist/mcp-CLgzC8_a.mjs +0 -119
  205. package/dist/mcp-D9E2HQZ9.mjs +0 -119
  206. package/dist/mcp-DKlThflu.mjs +0 -253
  207. package/dist/mcp-LVbLV17O.mjs +0 -119
  208. package/dist/mcp-nMwTAut3.mjs +0 -119
  209. package/dist/server-lock-BbiF7u3F.mjs +0 -493
  210. package/dist/server-lock-Bx9ixiF6.mjs +0 -575
  211. package/dist/server-lock-CAdqFSfl.mjs +0 -691
  212. package/dist/server-lock-DIkImokU.mjs +0 -487
  213. package/dist/server-lock-DbxpfF3j.mjs +0 -575
  214. package/dist/update-check-DJuFE9w6.mjs +0 -128
  215. package/dist/update-check-DSC02MWQ.mjs +0 -129
  216. package/dist/client/assets/{abap-CkQ0tsz-.js → abap-cWYhO34H.js} +0 -0
  217. package/dist/client/assets/{actionscript-3-DHm0ZfF4.js → actionscript-3-B80ndJsD.js} +0 -0
  218. package/dist/client/assets/{ada-DK_ua92Z.js → ada-C0C0SoYB.js} +0 -0
  219. package/dist/client/assets/{andromeeda-D2ccw8v4.js → andromeeda-Ch2kWS7s.js} +0 -0
  220. package/dist/client/assets/{apache-DXtpFu7o.js → apache-DBwBm4bB.js} +0 -0
  221. package/dist/client/assets/{apex-DlnRRWpl.js → apex-FcV7UxQi.js} +0 -0
  222. package/dist/client/assets/{applescript-CShk62ad.js → applescript-hQs8VNpS.js} +0 -0
  223. package/dist/client/assets/{ara-CWN-FDkm.js → ara-BOadBOZg.js} +0 -0
  224. package/dist/client/assets/{asciidoc-Bg-PM9Vn.js → asciidoc-BsfqiBck.js} +0 -0
  225. package/dist/client/assets/{asm-DKOhR24S.js → asm-C2vUqzqz.js} +0 -0
  226. package/dist/client/assets/{aurora-x-DpaEirL8.js → aurora-x-BHLqzt7j.js} +0 -0
  227. package/dist/client/assets/{awk-3ibKHffv.js → awk-D4e-eeZT.js} +0 -0
  228. package/dist/client/assets/{ayu-dark-ursiSH5k.js → ayu-dark-DCotN_ZT.js} +0 -0
  229. package/dist/client/assets/{ayu-light-DMjlrKmx.js → ayu-light-CKB6o_im.js} +0 -0
  230. package/dist/client/assets/{ayu-mirage-DZEMb75h.js → ayu-mirage-B38lW-C5.js} +0 -0
  231. package/dist/client/assets/{ballerina-xx7VNGxs.js → ballerina-BzvFqbha.js} +0 -0
  232. package/dist/client/assets/{bat-DGYsZ5wR.js → bat-CFyw2ERn.js} +0 -0
  233. package/dist/client/assets/{beancount-D_ATR1UV.js → beancount-a6Gsu5WX.js} +0 -0
  234. package/dist/client/assets/{berry-BqYMORfH.js → berry-C2jyz4Ah.js} +0 -0
  235. package/dist/client/assets/{bibtex-CQTBDajW.js → bibtex-Dyet-B83.js} +0 -0
  236. package/dist/client/assets/{bicep-CfNtxPrK.js → bicep-CghvUIvy.js} +0 -0
  237. package/dist/client/assets/{bird2-C0dUPe3I.js → bird2-nHigvs-R.js} +0 -0
  238. package/dist/client/assets/{c3-BUwZ5e3k.js → c3-9ZrcmAmr.js} +0 -0
  239. package/dist/client/assets/{cadence-C3OKDYrr.js → cadence-BPDgYNWy.js} +0 -0
  240. package/dist/client/assets/{catppuccin-frappe-CMnRXVZP.js → catppuccin-frappe-BY_2ofjk.js} +0 -0
  241. package/dist/client/assets/{catppuccin-latte-CqhXSjCC.js → catppuccin-latte-D6GXPBmA.js} +0 -0
  242. package/dist/client/assets/{catppuccin-macchiato-B6kneE0C.js → catppuccin-macchiato-BuW8_cyo.js} +0 -0
  243. package/dist/client/assets/{catppuccin-mocha-CP8YZpvj.js → catppuccin-mocha-znex9DPe.js} +0 -0
  244. package/dist/client/assets/{clarity-Crxe8gSr.js → clarity-Cmao5KSK.js} +0 -0
  245. package/dist/client/assets/{clojure-BuzOUPMr.js → clojure-D2dPuTkk.js} +0 -0
  246. package/dist/client/assets/{cmake-CCpZLdLI.js → cmake-DaqQuj4A.js} +0 -0
  247. package/dist/client/assets/{codeowners-Bo1VYpHz.js → codeowners-B748jmvc.js} +0 -0
  248. package/dist/client/assets/{codeql-Db01hzHE.js → codeql-CXb_8gHR.js} +0 -0
  249. package/dist/client/assets/{common-lisp-CMlJIc6Y.js → common-lisp-UZn9nc_5.js} +0 -0
  250. package/dist/client/assets/{coq-BlzBYp3f.js → coq-DtO6yBIf.js} +0 -0
  251. package/dist/client/assets/{csharp-kfNshAa7.js → csharp-C3YlYcLV.js} +0 -0
  252. package/dist/client/assets/{csv-Dr8ri5Nd.js → csv-BBwiVr0X.js} +0 -0
  253. package/dist/client/assets/{cue-jXfhyOwY.js → cue-ScBFXY5f.js} +0 -0
  254. package/dist/client/assets/{cypher-CayLeiaR.js → cypher-CGStaC1X.js} +0 -0
  255. package/dist/client/assets/{d-BMZQ0mAy.js → d-CuTCIvnX.js} +0 -0
  256. package/dist/client/assets/{dark-plus-B__q47Nr.js → dark-plus-BvePH-r3.js} +0 -0
  257. package/dist/client/assets/{dart-gMOEMyuz.js → dart-CqEodbm2.js} +0 -0
  258. package/dist/client/assets/{dax-C3t5LadU.js → dax-UdE5S0Dh.js} +0 -0
  259. package/dist/client/assets/{desktop-DmhXLwLR.js → desktop-DfmsfHJA.js} +0 -0
  260. package/dist/client/assets/{diff-togOXQX6.js → diff-CW0RWGd9.js} +0 -0
  261. package/dist/client/assets/{docker--6N01olR.js → docker-B1qtW4ha.js} +0 -0
  262. package/dist/client/assets/{dotenv-Bq930Yx8.js → dotenv-BUzOh1k8.js} +0 -0
  263. package/dist/client/assets/{dracula-CBkSghcw.js → dracula-kJQjC_Gy.js} +0 -0
  264. package/dist/client/assets/{dracula-soft-CCSYeoxL.js → dracula-soft-B3XhEjCl.js} +0 -0
  265. package/dist/client/assets/{dream-maker-BiMf3DHl.js → dream-maker-CBvk18nW.js} +0 -0
  266. package/dist/client/assets/{emacs-lisp-Dhht7he2.js → emacs-lisp-DvSgLhDc.js} +0 -0
  267. package/dist/client/assets/{everforest-dark-NqSz4oHS.js → everforest-dark-u0zLn75q.js} +0 -0
  268. package/dist/client/assets/{everforest-light-a3Yzs_lT.js → everforest-light-D3syIoAR.js} +0 -0
  269. package/dist/client/assets/{fennel-BExc9TZf.js → fennel-C-1kWlGf.js} +0 -0
  270. package/dist/client/assets/{fish-C2p-AJmZ.js → fish-CCpdtwqS.js} +0 -0
  271. package/dist/client/assets/{fluent-CeYzs8Qy.js → fluent-BLg032oD.js} +0 -0
  272. package/dist/client/assets/{fortran-free-form-BIQEK2Jw.js → fortran-free-form-Br4jRtSc.js} +0 -0
  273. package/dist/client/assets/{gdscript-B5JQPh_-.js → gdscript-hSAZM1eh.js} +0 -0
  274. package/dist/client/assets/{gdshader-vVjJ_Qr8.js → gdshader-D4XNAEs9.js} +0 -0
  275. package/dist/client/assets/{genie-DGl5rqC8.js → genie-DmN-ICAN.js} +0 -0
  276. package/dist/client/assets/{gherkin-CY_VLUnD.js → gherkin-cuHHmRcX.js} +0 -0
  277. package/dist/client/assets/{github-dark-ClO4AStc.js → github-dark-CEBLh0--.js} +0 -0
  278. package/dist/client/assets/{github-dark-default-CM0dPco8.js → github-dark-default-Dq0Z4Xai.js} +0 -0
  279. package/dist/client/assets/{github-dark-dimmed-Cb6xxpXY.js → github-dark-dimmed-D90YmS4w.js} +0 -0
  280. package/dist/client/assets/{github-dark-high-contrast-BpYtx2-M.js → github-dark-high-contrast-B6BWv1iC.js} +0 -0
  281. package/dist/client/assets/{github-light-default-BmnCWL6x.js → github-light-default-DsPWmj4v.js} +0 -0
  282. package/dist/client/assets/{github-light-high-contrast-rpagNF5O.js → github-light-high-contrast-C7aLb3kp.js} +0 -0
  283. package/dist/client/assets/{github-light-CeOVFgf_.js → github-light-lXSVSq5T.js} +0 -0
  284. package/dist/client/assets/{gleam-BarIG9kQ.js → gleam-D8VhqPDN.js} +0 -0
  285. package/dist/client/assets/{gn-DhYsTPYc.js → gn-BjGRlX27.js} +0 -0
  286. package/dist/client/assets/{gnuplot-CucLlTBc.js → gnuplot-BZCXuE4q.js} +0 -0
  287. package/dist/client/assets/{go-toi-uWvg.js → go-BJpWXZEs.js} +0 -0
  288. package/dist/client/assets/{groovy-Ds4dis_k.js → groovy-D9w3Dn-z.js} +0 -0
  289. package/dist/client/assets/{gruvbox-dark-hard-aPiW8pQh.js → gruvbox-dark-hard-_deksD0U.js} +0 -0
  290. package/dist/client/assets/{gruvbox-dark-medium-2HJCvzsS.js → gruvbox-dark-medium-CT31284j.js} +0 -0
  291. package/dist/client/assets/{gruvbox-dark-soft-Da97ODX9.js → gruvbox-dark-soft-BZuEUCbj.js} +0 -0
  292. package/dist/client/assets/{gruvbox-light-hard-BXlEipFe.js → gruvbox-light-hard-dxv4n_ZS.js} +0 -0
  293. package/dist/client/assets/{gruvbox-light-medium-Cun-GjGk.js → gruvbox-light-medium-BsW_fVfR.js} +0 -0
  294. package/dist/client/assets/{gruvbox-light-soft-Bd3qiiSw.js → gruvbox-light-soft-BiGy99gD.js} +0 -0
  295. package/dist/client/assets/{haskell-B_jvz5Po.js → haskell-DqDdKEgk.js} +0 -0
  296. package/dist/client/assets/{haxe-BRbuo5UO.js → haxe-DMg0jS3a.js} +0 -0
  297. package/dist/client/assets/{hcl-BzNUCtsK.js → hcl-SZIZUK_X.js} +0 -0
  298. package/dist/client/assets/{hjson-BxVo3sS2.js → hjson-DF1VspiE.js} +0 -0
  299. package/dist/client/assets/{hlsl-C8Wes1nf.js → hlsl-DPe9L0Dt.js} +0 -0
  300. package/dist/client/assets/{horizon-D54PjLAY.js → horizon-Ngud75Kn.js} +0 -0
  301. package/dist/client/assets/{horizon-bright-D9RccdIr.js → horizon-bright-Cnljd0XD.js} +0 -0
  302. package/dist/client/assets/{houston-CMu1N_4K.js → houston-BenZxlMr.js} +0 -0
  303. package/dist/client/assets/{hy-dMrJKKU_.js → hy-B0f-B1mH.js} +0 -0
  304. package/dist/client/assets/{imba-DG_oO8tg.js → imba-Bq3j1cW5.js} +0 -0
  305. package/dist/client/assets/{ini-geHw79Aj.js → ini-BayloP2U.js} +0 -0
  306. package/dist/client/assets/{json5-CDUsNqz6.js → json5-CRSfdIrY.js} +0 -0
  307. package/dist/client/assets/{jsonc-D48xcwyD.js → jsonc-y4g9DQPx.js} +0 -0
  308. package/dist/client/assets/{jsonl-cpIYDXEe.js → jsonl-D2paVn9r.js} +0 -0
  309. package/dist/client/assets/{jsonnet-Da1lhszN.js → jsonnet-CLH27mtz.js} +0 -0
  310. package/dist/client/assets/{jssm-B8BLrEGL.js → jssm-CPPYaqX-.js} +0 -0
  311. package/dist/client/assets/{kanagawa-dragon-2Sk8Rx83.js → kanagawa-dragon-Bt5mhLu1.js} +0 -0
  312. package/dist/client/assets/{kanagawa-lotus-CQVSWfJp.js → kanagawa-lotus-FGA3pRJk.js} +0 -0
  313. package/dist/client/assets/{kanagawa-wave-BKWNioLX.js → kanagawa-wave-DnLVZPAD.js} +0 -0
  314. package/dist/client/assets/{kdl-B-2tSRmp.js → kdl-D1BQjjnw.js} +0 -0
  315. package/dist/client/assets/{kotlin-DepsEzh3.js → kotlin-ndCaDnf0.js} +0 -0
  316. package/dist/client/assets/{kusto-BcCtXIb8.js → kusto-D-4nbkD3.js} +0 -0
  317. package/dist/client/assets/{laserwave-BUqkO46F.js → laserwave-D2qAZkaG.js} +0 -0
  318. package/dist/client/assets/{lean-CNO9ffpX.js → lean-YmtAsB0p.js} +0 -0
  319. package/dist/client/assets/{less-Dj0T9pWC.js → less-DyHub3ow.js} +0 -0
  320. package/dist/client/assets/{light-plus-C9Hnuc1T.js → light-plus-CP13QUvm.js} +0 -0
  321. package/dist/client/assets/{llvm-DbV9b66l.js → llvm-DCcqrY0D.js} +0 -0
  322. package/dist/client/assets/{log-BMblmPyH.js → log-DWAAMNbe.js} +0 -0
  323. package/dist/client/assets/{logo-B78qMxws.js → logo-ClQMGkNL.js} +0 -0
  324. package/dist/client/assets/{luau-BUd8xsdE.js → luau-CmcXFvLt.js} +0 -0
  325. package/dist/client/assets/{make-Ev-6cJrd.js → make-DcfJyUzm.js} +0 -0
  326. package/dist/client/assets/{markdown-CS4LI6sN.js → markdown-DXxotAxn.js} +0 -0
  327. package/dist/client/assets/{material-theme-5rA1zn0D.js → material-theme-JFoPTBSr.js} +0 -0
  328. package/dist/client/assets/{material-theme-darker-DGOEiL65.js → material-theme-darker-BHaqZ19v.js} +0 -0
  329. package/dist/client/assets/{material-theme-lighter-CULfFRX0.js → material-theme-lighter-CGnnS2bs.js} +0 -0
  330. package/dist/client/assets/{material-theme-ocean-LQZ9CleP.js → material-theme-ocean-Drhewjqf.js} +0 -0
  331. package/dist/client/assets/{material-theme-palenight-Di_f5oks.js → material-theme-palenight-DbUypmpb.js} +0 -0
  332. package/dist/client/assets/{matlab-C0qEtAx9.js → matlab-BlfbTznR.js} +0 -0
  333. package/dist/client/assets/{mdx-CzvnbLXb.js → mdx-H8fyPQd8.js} +0 -0
  334. package/dist/client/assets/{mermaid-BPquZaKt.js → mermaid-CWAV2dmV.js} +0 -0
  335. package/dist/client/assets/{min-dark-rkuIbtJV.js → min-dark-BEelvXUB.js} +0 -0
  336. package/dist/client/assets/{min-light-Dj_HOGsr.js → min-light-CTPBOACR.js} +0 -0
  337. package/dist/client/assets/{mipsasm-k5DQoS6j.js → mipsasm-BWYFAm2s.js} +0 -0
  338. package/dist/client/assets/{mojo-sTTDuNnR.js → mojo-DZcPJEIN.js} +0 -0
  339. package/dist/client/assets/{monokai-D5p-u2ij.js → monokai-DQlZXbkg.js} +0 -0
  340. package/dist/client/assets/{moonbit-j5ChFtBC.js → moonbit-6eslNlJL.js} +0 -0
  341. package/dist/client/assets/{move-Dj0Gmn6R.js → move-DxFc9-QU.js} +0 -0
  342. package/dist/client/assets/{narrat-DJgMz2oW.js → narrat-gv38dJOT.js} +0 -0
  343. package/dist/client/assets/{nextflow-groovy-eDLuZ_oi.js → nextflow-groovy-DV4H3hok.js} +0 -0
  344. package/dist/client/assets/{night-owl-CEdtPl3A.js → night-owl-BLcrYhaC.js} +0 -0
  345. package/dist/client/assets/{night-owl-light-GdSldewm.js → night-owl-light-BG-tBJOz.js} +0 -0
  346. package/dist/client/assets/{nix-CxIPS3pb.js → nix-NlOz3HGM.js} +0 -0
  347. package/dist/client/assets/{nord-3WFAz5H9.js → nord-Dm2F5_QB.js} +0 -0
  348. package/dist/client/assets/{nushell-GDfBmoBU.js → nushell-D86Z8aFF.js} +0 -0
  349. package/dist/client/assets/{objective-c-MFQ_MGUa.js → objective-c-iuJvUjCv.js} +0 -0
  350. package/dist/client/assets/{objective-cpp-Y83LcBE7.js → objective-cpp-C62JvfMT.js} +0 -0
  351. package/dist/client/assets/{ocaml-FxYfaJxu.js → ocaml-Rbryo9lg.js} +0 -0
  352. package/dist/client/assets/{odin-CprihY3z.js → odin-CfaOVNP_.js} +0 -0
  353. package/dist/client/assets/{one-dark-pro-BB6mpmmA.js → one-dark-pro-DC9SHdX0.js} +0 -0
  354. package/dist/client/assets/{one-light-BYLoxNtg.js → one-light-Doo39p0H.js} +0 -0
  355. package/dist/client/assets/{openscad-Bc1FbpOi.js → openscad-DCRhgheK.js} +0 -0
  356. package/dist/client/assets/{pascal-Bb4d8cUL.js → pascal-CTesTHtV.js} +0 -0
  357. package/dist/client/assets/{pierre-dark-cF19s-RM.js → pierre-dark-Gtc9M_gS.js} +0 -0
  358. package/dist/client/assets/{pierre-light-BdpX8OpD.js → pierre-light-EDxMHmhf.js} +0 -0
  359. package/dist/client/assets/{pkl-tM25Sq0w.js → pkl-BjUMjQkt.js} +0 -0
  360. package/dist/client/assets/{plastic-D3k2Xp_5.js → plastic-B3CcSpon.js} +0 -0
  361. package/dist/client/assets/{plsql-CLEfFhSj.js → plsql-BgKEZSSo.js} +0 -0
  362. package/dist/client/assets/{po-CaAzdrrh.js → po-C5s_CVt8.js} +0 -0
  363. package/dist/client/assets/{poimandres-bPTvT4Da.js → poimandres-BsK70ma5.js} +0 -0
  364. package/dist/client/assets/{polar-TG7aTGdK.js → polar-y4hX8qM0.js} +0 -0
  365. package/dist/client/assets/{postcss-8kqfa9f0.js → postcss-BHCm7Qae.js} +0 -0
  366. package/dist/client/assets/{powerquery-CtSu1Nfd.js → powerquery-C2vMt8aZ.js} +0 -0
  367. package/dist/client/assets/{powershell-87lLBHMy.js → powershell-DEcjmg1c.js} +0 -0
  368. package/dist/client/assets/{prisma-Dnf694DZ.js → prisma-Ba-Tcxy5.js} +0 -0
  369. package/dist/client/assets/{prolog-C0XbHTWa.js → prolog-B4o261Jv.js} +0 -0
  370. package/dist/client/assets/{proto-BZP-HLIb.js → proto-o3IZKiMR.js} +0 -0
  371. package/dist/client/assets/{puppet-CJYWgYC5.js → puppet-BC0dqZ31.js} +0 -0
  372. package/dist/client/assets/{purescript-B95Q6BAd.js → purescript-CLDw1y5G.js} +0 -0
  373. package/dist/client/assets/{python-CqTCsi7P.js → python-D1NFioGW.js} +0 -0
  374. package/dist/client/assets/{qmldir-DlIL4hls.js → qmldir-B7i9e9Vn.js} +0 -0
  375. package/dist/client/assets/{qss-BW72E0q_.js → qss-DIe6oKX8.js} +0 -0
  376. package/dist/client/assets/{racket-CCAimEsC.js → racket-CAOC_yyk.js} +0 -0
  377. package/dist/client/assets/{raku-mSuqElkM.js → raku-Ccua3vW6.js} +0 -0
  378. package/dist/client/assets/{red-C-DA4yBI.js → red-DtDH206x.js} +0 -0
  379. package/dist/client/assets/{reg-CGwMBJ2c.js → reg-CAYZT9kE.js} +0 -0
  380. package/dist/client/assets/{rel-JwrbYgX4.js → rel-cvB6F5nO.js} +0 -0
  381. package/dist/client/assets/{riscv-CoYyE75b.js → riscv-SYGtE4EN.js} +0 -0
  382. package/dist/client/assets/{ron-C5wrhnmJ.js → ron-CRt869SB.js} +0 -0
  383. package/dist/client/assets/{rose-pine-DlrMPYYd.js → rose-pine-CjBfSJ5b.js} +0 -0
  384. package/dist/client/assets/{rose-pine-dawn-DBHFtZD2.js → rose-pine-dawn-C0xwy7iJ.js} +0 -0
  385. package/dist/client/assets/{rose-pine-moon-BBfrpe5q.js → rose-pine-moon-BSNy9Ty0.js} +0 -0
  386. package/dist/client/assets/{rosmsg-DlimTR9t.js → rosmsg-BwrfJ66Z.js} +0 -0
  387. package/dist/client/assets/{rust-Cxnkxx3h.js → rust-DCKTTPxN.js} +0 -0
  388. package/dist/client/assets/{sass-DEyqUIpU.js → sass-CorcwySt.js} +0 -0
  389. package/dist/client/assets/{scala-i3RN3yAN.js → scala-DlI-OmYj.js} +0 -0
  390. package/dist/client/assets/{scheme-BcKdjYkO.js → scheme-CcNEGkZH.js} +0 -0
  391. package/dist/client/assets/{sdbl-Be_XWc3n.js → sdbl-AL_m-RO_.js} +0 -0
  392. package/dist/client/assets/{slack-dark-3PDtm74m.js → slack-dark-rMhrfPm6.js} +0 -0
  393. package/dist/client/assets/{slack-ochin-CwiuFRJD.js → slack-ochin-9w8X74hU.js} +0 -0
  394. package/dist/client/assets/{smalltalk-BdBlL6ks.js → smalltalk-Y2ogrfbk.js} +0 -0
  395. package/dist/client/assets/{snazzy-light-Dyqc8Is2.js → snazzy-light-DHr9ygpP.js} +0 -0
  396. package/dist/client/assets/{solarized-dark-DZiTscIX.js → solarized-dark-UPcKev9Q.js} +0 -0
  397. package/dist/client/assets/{solarized-light-DBcfxrfG.js → solarized-light-DUsjROvl.js} +0 -0
  398. package/dist/client/assets/{solidity-DH-yUSWc.js → solidity-Bfbm9QZQ.js} +0 -0
  399. package/dist/client/assets/{splunk-CIjc4kxs.js → splunk-6DJA2XFa.js} +0 -0
  400. package/dist/client/assets/{ssh-config-BKVd4drG.js → ssh-config-CbQtdF-u.js} +0 -0
  401. package/dist/client/assets/{stylus-tqAsmugv.js → stylus-B_iq45Sj.js} +0 -0
  402. package/dist/client/assets/{swift-CdDBQ3_Z.js → swift-C7KIgN-p.js} +0 -0
  403. package/dist/client/assets/{synthwave-84-CbbRs73K.js → synthwave-84-lf_Wt0K_.js} +0 -0
  404. package/dist/client/assets/{system-verilog-CBqEY-9v.js → system-verilog-C3G9wERd.js} +0 -0
  405. package/dist/client/assets/{systemd-khRP5zwK.js → systemd-CwxGrojj.js} +0 -0
  406. package/dist/client/assets/{talonscript-D_lneH-6.js → talonscript-DqnSo1EO.js} +0 -0
  407. package/dist/client/assets/{tasl-CLymawGe.js → tasl-T8ethp86.js} +0 -0
  408. package/dist/client/assets/{tcl-BRY1S87U.js → tcl-Ccl366o0.js} +0 -0
  409. package/dist/client/assets/{terraform-BqohMo2f.js → terraform-BBf6ZI_0.js} +0 -0
  410. package/dist/client/assets/{tokyo-night-BWUONxad.js → tokyo-night-BF5ata25.js} +0 -0
  411. package/dist/client/assets/{toml-C4c85Lwg.js → toml-C5Z_BR4r.js} +0 -0
  412. package/dist/client/assets/{tsv-DsZq9HBQ.js → tsv-rX8sUJs7.js} +0 -0
  413. package/dist/client/assets/{turtle-Dpr8zLlw.js → turtle-BM-MG8WY.js} +0 -0
  414. package/dist/client/assets/{typespec-DcqgATB-.js → typespec-C5gKydvR.js} +0 -0
  415. package/dist/client/assets/{typst-CeVxmuPg.js → typst--_5VchrY.js} +0 -0
  416. package/dist/client/assets/{v-C2Qsh2-1.js → v-C6PwpmTC.js} +0 -0
  417. package/dist/client/assets/{vala-CvZ3yL7c.js → vala-4pTaceSj.js} +0 -0
  418. package/dist/client/assets/{vb-B_p4qDw4.js → vb-DhoR5A6S.js} +0 -0
  419. package/dist/client/assets/{verilog-D8MGjxD7.js → verilog-B9f_1lPn.js} +0 -0
  420. package/dist/client/assets/{vesper-DossXiE1.js → vesper-CmBi_iCT.js} +0 -0
  421. package/dist/client/assets/{vhdl-MLyYh_Gz.js → vhdl-Cy4RAmOe.js} +0 -0
  422. package/dist/client/assets/{viml-BuYIArcz.js → viml-CFQW-CcD.js} +0 -0
  423. package/dist/client/assets/{vitesse-black-C3kc1227.js → vitesse-black-CE8RoBJP.js} +0 -0
  424. package/dist/client/assets/{vitesse-dark-kWOu5V36.js → vitesse-dark-BpF142p_.js} +0 -0
  425. package/dist/client/assets/{vitesse-light-DMtiL8bK.js → vitesse-light-CMwxPBrg.js} +0 -0
  426. package/dist/client/assets/{vyper-CNqG09-_.js → vyper-BW5zj9bE.js} +0 -0
  427. package/dist/client/assets/{wasm-BsQDV7Y0.js → wasm-BigxSLnm.js} +0 -0
  428. package/dist/client/assets/{wasm-DFVlQlgd.js → wasm-CSccDuAq.js} +0 -0
  429. package/dist/client/assets/{wenyan-BmOQge13.js → wenyan-BZzM1SQT.js} +0 -0
  430. package/dist/client/assets/{wgsl-CgWrmvIg.js → wgsl-xBPHbLlq.js} +0 -0
  431. package/dist/client/assets/{wikitext-DkwckXCk.js → wikitext-BXJWUNJK.js} +0 -0
  432. package/dist/client/assets/{wit-CtyVFGe7.js → wit-2GnUs67P.js} +0 -0
  433. package/dist/client/assets/{wolfram-CXE4FrKz.js → wolfram-DIFDmw-g.js} +0 -0
  434. package/dist/client/assets/{zenscript-DH15wJt0.js → zenscript-DQaUUjbx.js} +0 -0
  435. package/dist/client/assets/{zig-CqXN9brD.js → zig-BDepRvBi.js} +0 -0
  436. package/dist/{update-check-KL-2sGxE.mjs → update-check-DAPFCqpF.mjs} +1 -1
@@ -1 +0,0 @@
1
- *,:before,:after{box-sizing:border-box;margin:0;padding:0}button,input,select,textarea{font-family:inherit}button,a,select,input,textarea,.btn,.ft-row,.settings-item,.viewed-label,.file-diff-card,.comment-bubble,.comment-form{transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast)}.theme-switching,.theme-switching *,.theme-switching :before,.theme-switching :after{transition:none!important}:root{--toolbar-height:60px;--font-sans:"Geist Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-xs:11px;--text-sm:12px;--text-base:13px;--text-md:14px;--text-lg:16px;--text-xl:19px;--leading-tight:1.3;--leading-normal:1.5;--font-weight-medium:500;--font-weight-semibold:600;--space-0-5:2px;--space-1:4px;--space-1-5:6px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-xs:3px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:10px;--radius-round:9999px;--control-height:28px;--control-height-sm:24px;--shadow-flat:0 0 0 0 #0000;--shadow-sm:0 1px 2px 0 #0000001f;--shadow-md:0 2px 6px -1px #0000002e, 0 1px 2px 0 #0000001f;--shadow-lg:0 8px 24px -6px #0000004d, 0 2px 6px -2px #0000002e;--shadow-overlay:0 16px 48px -12px #00000073, 0 4px 12px -4px #00000040;--ring-width:2px;--ring-color:var(--border-focus);--ring:0 0 0 var(--ring-width) var(--ring-color);--transition-fast:.12s cubic-bezier(.4, 0, .2, 1);--transition-smooth:.2s cubic-bezier(.4, 0, .2, 1);--transition-bounce:.18s cubic-bezier(.4, 0, .2, 1);--bg-primary:#2e3440;--bg-secondary:#242933;--bg-secondary-rgb:36, 41, 51;--bg-tertiary:#3b4252;--text-primary:#eceff4;--text-secondary:#e5e9f0;--text-muted:#d8dee9;--border-color:#3b4252;--border-focus:#88c0d0;--primary:#88c0d0;--primary-hover:#8fbcbb;--accent:#b48ead;--success:#a3be8c;--danger:#bf616a;--warning:#ebcb8b;--comment-bg:#3b4252;--comment-border:#4c566a;--accent-subtle:#88c0d01f;--border-weak:#3b4252;--border-normal:#434c5e;--border-strong:#88c0d0;--feedback-success-bg:#a3be8c1f;--feedback-success-border:#a3be8c;--feedback-success-text:#a3be8c;--feedback-danger-bg:#bf616a1f;--feedback-danger-border:#bf616a;--feedback-danger-text:#bf616a;--feedback-warning-bg:#ebcb8b1f;--feedback-warning-border:#ebcb8b;--feedback-warning-text:#ebcb8b}[data-theme=nord]{--bg-primary:#2e3440;--bg-secondary:#242933;--bg-secondary-rgb:36, 41, 51;--bg-tertiary:#3b4252;--text-primary:#eceff4;--text-secondary:#e5e9f0;--text-muted:#d8dee9;--border-color:#3b4252;--border-focus:#88c0d0;--primary:#88c0d0;--primary-hover:#8fbcbb;--accent:#b48ead;--success:#a3be8c;--danger:#bf616a;--warning:#ebcb8b;--comment-bg:#3b4252;--comment-border:#4c566a;--accent-subtle:#88c0d01f;--border-weak:#3b4252;--border-normal:#434c5e;--border-strong:#88c0d0;--feedback-success-bg:#a3be8c1f;--feedback-success-border:#a3be8c;--feedback-success-text:#a3be8c;--feedback-danger-bg:#bf616a1f;--feedback-danger-border:#bf616a;--feedback-danger-text:#bf616a;--feedback-warning-bg:#ebcb8b1f;--feedback-warning-border:#ebcb8b;--feedback-warning-text:#ebcb8b}[data-theme=catppuccin-mocha]{--bg-primary:#1e1e2e;--bg-secondary:#181825;--bg-secondary-rgb:24, 24, 37;--bg-tertiary:#313244;--text-primary:#cdd6f4;--text-secondary:#a6adc8;--text-muted:#7f849c;--border-color:#313244;--border-focus:#cba6f7;--primary:#cba6f7;--primary-hover:#f5c2e7;--accent:#f5c2e7;--success:#a6e3a1;--danger:#f38ba8;--warning:#f9e2af;--comment-bg:#11111b;--comment-border:#313244;--accent-subtle:#cba6f726;--border-weak:#313244;--border-normal:#45475a;--border-strong:#cba6f7;--feedback-success-bg:#a6e3a11f;--feedback-success-border:#a6e3a1;--feedback-success-text:#a6e3a1;--feedback-danger-bg:#f38ba81f;--feedback-danger-border:#f38ba8;--feedback-danger-text:#f38ba8;--feedback-warning-bg:#f9e2af1f;--feedback-warning-border:#f9e2af;--feedback-warning-text:#f9e2af}[data-theme=catppuccin-latte]{--bg-primary:#eff1f5;--bg-secondary:#e6e9ef;--bg-secondary-rgb:230, 233, 239;--bg-tertiary:#ccd0da;--text-primary:#4c4f69;--text-secondary:#6c6f85;--text-muted:#8c8fa1;--border-color:#ccd0da;--border-focus:#8839ef;--primary:#8839ef;--primary-hover:#ea76cb;--accent:#ea76cb;--success:#40a02b;--danger:#d20f39;--warning:#df8e1d;--comment-bg:#dce0e8;--comment-border:#8839ef;--accent-subtle:#8839ef1a;--border-weak:#ccd0da;--border-normal:#bcc0cc;--border-strong:#8839ef;--feedback-success-bg:#40a02b1f;--feedback-success-border:#40a02b;--feedback-success-text:#40a02b;--feedback-danger-bg:#d20f391a;--feedback-danger-border:#d20f39;--feedback-danger-text:#d20f39;--feedback-warning-bg:#df8e1d1f;--feedback-warning-border:#df8e1d;--feedback-warning-text:#df8e1d}[data-theme=solarized-dark]{--bg-primary:#002b36;--bg-secondary:#073642;--bg-secondary-rgb:7, 54, 66;--bg-tertiary:#586e75;--text-primary:#839496;--text-secondary:#93a1a1;--text-muted:#657b83;--border-color:#073642;--border-focus:#268bd2;--primary:#268bd2;--primary-hover:#2aa198;--accent:#d33682;--success:#859900;--danger:#dc322f;--warning:#b58900;--comment-bg:#073642;--comment-border:#586e75;--accent-subtle:#268bd226;--border-weak:#073642;--border-normal:#586e75;--border-strong:#268bd2;--feedback-success-bg:#8599001f;--feedback-success-border:#859900;--feedback-success-text:#859900;--feedback-danger-bg:#dc322f1f;--feedback-danger-border:#dc322f;--feedback-danger-text:#dc322f;--feedback-warning-bg:#b589001f;--feedback-warning-border:#b58900;--feedback-warning-text:#b58900}[data-theme=solarized-light]{--bg-primary:#fdf6e3;--bg-secondary:#eee8d5;--bg-secondary-rgb:238, 232, 213;--bg-tertiary:#93a1a1;--text-primary:#657b83;--text-secondary:#586e75;--text-muted:#93a1a1;--border-color:#eee8d5;--border-focus:#268bd2;--primary:#268bd2;--primary-hover:#2aa198;--accent:#d33682;--success:#859900;--danger:#dc322f;--warning:#b58900;--comment-bg:#eee8d5;--comment-border:#93a1a1;--accent-subtle:#268bd21a;--border-weak:#eee8d5;--border-normal:#93a1a1;--border-strong:#268bd2;--feedback-success-bg:#8599001f;--feedback-success-border:#859900;--feedback-success-text:#859900;--feedback-danger-bg:#dc322f1a;--feedback-danger-border:#dc322f;--feedback-danger-text:#dc322f;--feedback-warning-bg:#b589001a;--feedback-warning-border:#b58900;--feedback-warning-text:#b58900}[data-theme=monokai]{--bg-primary:#272822;--bg-secondary:#1e1f1c;--bg-secondary-rgb:30, 31, 28;--bg-tertiary:#3e3d32;--text-primary:#f8f8f2;--text-secondary:#f8f8f0;--text-muted:#cfcfc2;--border-color:#3e3d32;--border-focus:#66d9ef;--primary:#a6e22e;--primary-hover:#f92672;--accent:#ae81ff;--success:#a6e22e;--danger:#f92672;--warning:#e6db74;--comment-bg:#3e3d32;--comment-border:#75715e;--accent-subtle:#a6e22e26;--border-weak:#3e3d32;--border-normal:#75715e;--border-strong:#66d9ef;--feedback-success-bg:#a6e22e1f;--feedback-success-border:#a6e22e;--feedback-success-text:#a6e22e;--feedback-danger-bg:#f926721f;--feedback-danger-border:#f92672;--feedback-danger-text:#f92672;--feedback-warning-bg:#e6db741f;--feedback-warning-border:#e6db74;--feedback-warning-text:#e6db74}[data-theme=ayu-dark]{--bg-primary:#0f1419;--bg-secondary:#0a0e14;--bg-secondary-rgb:10, 14, 20;--bg-tertiary:#1a202c;--text-primary:#e6e1cf;--text-secondary:#b3b1ad;--text-muted:gray;--border-color:#1a1f29;--border-focus:#ffb454;--primary:#ffb454;--primary-hover:#f29718;--accent:#e6b450;--success:#7fd962;--danger:#f26d78;--warning:#f2a766;--comment-bg:#151a24;--comment-border:#3e4b5e;--accent-subtle:#ffb4541f;--border-weak:#1a1f29;--border-normal:#3e4b5e;--border-strong:#ffb454;--feedback-success-bg:#7fd9621f;--feedback-success-border:#7fd962;--feedback-success-text:#7fd962;--feedback-danger-bg:#f26d781f;--feedback-danger-border:#f26d78;--feedback-danger-text:#f26d78;--feedback-warning-bg:#f2a7661f;--feedback-warning-border:#f2a766;--feedback-warning-text:#f2a766}[data-theme=github-dark]{--bg-primary:#0d1117;--bg-secondary:#161b22;--bg-secondary-rgb:22, 27, 34;--bg-tertiary:#21262d;--text-primary:#e6edf3;--text-secondary:#c9d1d9;--text-muted:#9aa6b4;--border-color:#30363d;--border-focus:#58a6ff;--primary:#1f6feb;--primary-hover:#388bfd;--accent:#bc8cff;--success:#238636;--danger:#da3637;--warning:#d29922;--comment-bg:#1f1500;--comment-border:#9e6a03;--accent-subtle:#58a6ff1f;--border-weak:#21262d;--border-normal:#30363d;--border-strong:#58a6ff;--feedback-success-bg:#2ea0431f;--feedback-success-border:#3fb950;--feedback-success-text:#3fb950;--feedback-danger-bg:#f851491f;--feedback-danger-border:#f85149;--feedback-danger-text:#f85149;--feedback-warning-bg:#d299221f;--feedback-warning-border:#d29922;--feedback-warning-text:#d29922}[data-theme=github-light]{--bg-primary:#fff;--bg-secondary:#f6f8fa;--bg-secondary-rgb:246, 248, 250;--bg-tertiary:#eff1f3;--text-primary:#24292f;--text-secondary:#57606a;--text-muted:#656d76;--border-color:#d0d7de;--border-focus:#0969da;--primary:#0969da;--primary-hover:#0550ae;--accent:#8250df;--success:#1a7f37;--danger:#cf222e;--warning:#9e6a03;--comment-bg:#fff8c5;--comment-border:#d4a72c;--accent-subtle:#0969da1a;--border-weak:#d0d7de;--border-normal:#afb8c1;--border-strong:#0969da;--feedback-success-bg:#2ea0431f;--feedback-success-border:#1a7f37;--feedback-success-text:#116329;--feedback-danger-bg:#f851491a;--feedback-danger-border:#cf222e;--feedback-danger-text:#b62324;--feedback-warning-bg:#fff8c580;--feedback-warning-border:#9e6a03;--feedback-warning-text:#9e6a03}[data-theme=dracula]{--bg-primary:#282a36;--bg-secondary:#1e1f29;--bg-secondary-rgb:30, 31, 41;--bg-tertiary:#343746;--text-primary:#f8f8f2;--text-secondary:#e2e2e0;--text-muted:#8da0db;--border-color:#44475a;--border-focus:#bd93f9;--primary:#bd93f9;--primary-hover:#ff79c6;--accent:#ff79c6;--success:#50fa7b;--danger:#f55;--warning:#f1fa8c;--comment-bg:#343746;--comment-border:#bd93f9;--accent-subtle:#bd93f926;--border-weak:#343746;--border-normal:#44475a;--border-strong:#bd93f9;--feedback-success-bg:#50fa7b1f;--feedback-success-border:#50fa7b;--feedback-success-text:#50fa7b;--feedback-danger-bg:#ff55551f;--feedback-danger-border:#f55;--feedback-danger-text:#f55;--feedback-warning-bg:#f1fa8c1f;--feedback-warning-border:#f1fa8c;--feedback-warning-text:#f1fa8c}[data-theme=one-dark]{--bg-primary:#282c34;--bg-secondary:#21252b;--bg-secondary-rgb:33, 37, 43;--bg-tertiary:#2c313c;--text-primary:#abb2bf;--text-secondary:#9da5b4;--text-muted:#8b95a5;--border-color:#181a1f;--border-focus:#61afef;--primary:#61afef;--primary-hover:#528bff;--accent:#c678dd;--success:#98c379;--danger:#e06c75;--warning:#d19a66;--comment-bg:#2c313c;--comment-border:#5c6370;--accent-subtle:#61afef26;--border-weak:#2c313c;--border-normal:#3e4452;--border-strong:#61afef;--feedback-success-bg:#98c3791f;--feedback-success-border:#98c379;--feedback-success-text:#98c379;--feedback-danger-bg:#e06c751f;--feedback-danger-border:#e06c75;--feedback-danger-text:#e06c75;--feedback-warning-bg:#d19a661f;--feedback-warning-border:#d19a66;--feedback-warning-text:#d19a66}[data-theme=synthwave-84]{--bg-primary:#2b213a;--bg-secondary:#241b2f;--bg-secondary-rgb:36, 27, 47;--bg-tertiary:#372948;--text-primary:#f0e6f6;--text-secondary:#e1b4f1;--text-muted:#b59bc8;--border-color:#463465;--border-focus:#f92aad;--primary:#f92aad;--primary-hover:#3ef1f2;--accent:#3ef1f2;--success:#3ef1f2;--danger:#fe4450;--warning:#fede5d;--comment-bg:#372948;--comment-border:#f92aad;--accent-subtle:#f92aad26;--border-weak:#372948;--border-normal:#463465;--border-strong:#f92aad;--feedback-success-bg:#3ef1f21f;--feedback-success-border:#3ef1f2;--feedback-success-text:#3ef1f2;--feedback-danger-bg:#fe44501f;--feedback-danger-border:#fe4450;--feedback-danger-text:#fe4450;--feedback-warning-bg:#fede5d1f;--feedback-warning-border:#fede5d;--feedback-warning-text:#fede5d}[data-theme=tokyo-night]{--bg-primary:#1a1b26;--bg-secondary:#16161e;--bg-secondary-rgb:22, 22, 30;--bg-tertiary:#24283b;--text-primary:#a9b1d6;--text-secondary:#9aa5ce;--text-muted:#8b97d3;--border-color:#24283b;--border-focus:#7aa2f7;--primary:#7aa2f7;--primary-hover:#89ddff;--accent:#bb9af7;--success:#9ece6a;--danger:#f7768e;--warning:#e0af68;--comment-bg:#24283b;--comment-border:#7aa2f7;--accent-subtle:#7aa2f726;--border-weak:#24283b;--border-normal:#383e5a;--border-strong:#7aa2f7;--feedback-success-bg:#9ece6a1f;--feedback-success-border:#9ece6a;--feedback-success-text:#9ece6a;--feedback-danger-bg:#f7768e1f;--feedback-danger-border:#f7768e;--feedback-danger-text:#f7768e;--feedback-warning-bg:#e0af681f;--feedback-warning-border:#e0af68;--feedback-warning-text:#e0af68}[data-theme=github-dark-dimmed]{--bg-primary:#22272e;--bg-secondary:#1c2128;--bg-secondary-rgb:28, 33, 40;--bg-tertiary:#2d333b;--text-primary:#adbac7;--text-secondary:#768390;--text-muted:#636e7b;--border-color:#444c56;--border-focus:#316dca;--primary:#539bf5;--primary-hover:#6cb6ff;--accent:#bc8cff;--success:#347d39;--danger:#c93c37;--warning:#966000;--comment-bg:#2d2209;--comment-border:#765400;--accent-subtle:#539bf51f;--border-weak:#2d333b;--border-normal:#444c56;--border-strong:#539bf5;--feedback-success-bg:#347d391f;--feedback-success-border:#347d39;--feedback-success-text:#57ab5a;--feedback-danger-bg:#c93c371f;--feedback-danger-border:#c93c37;--feedback-danger-text:#ff7b72;--feedback-warning-bg:#9660001f;--feedback-warning-border:#966000;--feedback-warning-text:#c69026}[data-theme=github-dark-high-contrast]{--bg-primary:#0a0c10;--bg-secondary:#010409;--bg-secondary-rgb:1, 4, 9;--bg-tertiary:#272b33;--text-primary:#fff;--text-secondary:#f0f6fc;--text-muted:#8b949e;--border-color:#7a828e;--border-focus:#409eff;--primary:#409eff;--primary-hover:#71b7ff;--accent:#dbb7ff;--success:#09b63f;--danger:#f85149;--warning:#f0b72f;--comment-bg:#2e1d00;--comment-border:#f0b72f;--accent-subtle:#409eff26;--border-weak:#484f58;--border-normal:#7a828e;--border-strong:#409eff;--feedback-success-bg:#09b63f26;--feedback-success-border:#09b63f;--feedback-success-text:#09b63f;--feedback-danger-bg:#f8514926;--feedback-danger-border:#f85149;--feedback-danger-text:#f85149;--feedback-warning-bg:#f0b72f26;--feedback-warning-border:#f0b72f;--feedback-warning-text:#f0b72f}[data-theme=github-light-high-contrast]{--bg-primary:#fff;--bg-secondary:#f6f8fa;--bg-secondary-rgb:246, 248, 250;--bg-tertiary:#eaebec;--text-primary:#010409;--text-secondary:#0f1419;--text-muted:#4b535d;--border-color:#24292f;--border-focus:#0969da;--primary:#0969da;--primary-hover:#0550ae;--accent:#8250df;--success:#1a7f37;--danger:#cf222e;--warning:#9e6a03;--comment-bg:#fff8c5;--comment-border:#9e6a03;--accent-subtle:#0969da1f;--border-weak:#57606a;--border-normal:#24292f;--border-strong:#0969da;--feedback-success-bg:#1a7f371f;--feedback-success-border:#1a7f37;--feedback-success-text:#116329;--feedback-danger-bg:#cf222e1a;--feedback-danger-border:#cf222e;--feedback-danger-text:#b62324;--feedback-warning-bg:#fff8c580;--feedback-warning-border:#9e6a03;--feedback-warning-text:#9e6a03}[data-theme=catppuccin-frappe]{--bg-primary:#303446;--bg-secondary:#292c3c;--bg-secondary-rgb:41, 44, 60;--bg-tertiary:#414559;--text-primary:#c6d0f5;--text-secondary:#a5adce;--text-muted:#838ba7;--border-color:#414559;--border-focus:#ca9ee6;--primary:#ca9ee6;--primary-hover:#f4b8e4;--accent:#ea999c;--success:#a6d189;--danger:#e78284;--warning:#e5c890;--comment-bg:#232634;--comment-border:#ca9ee6;--accent-subtle:#ca9ee626;--border-weak:#414559;--border-normal:#51576d;--border-strong:#ca9ee6;--feedback-success-bg:#a6d1891f;--feedback-success-border:#a6d189;--feedback-success-text:#a6d189;--feedback-danger-bg:#e782841f;--feedback-danger-border:#e78284;--feedback-danger-text:#e78284;--feedback-warning-bg:#e5c8901f;--feedback-warning-border:#e5c890;--feedback-warning-text:#e5c890}[data-theme=catppuccin-macchiato]{--bg-primary:#24273a;--bg-secondary:#1e2030;--bg-secondary-rgb:30, 32, 48;--bg-tertiary:#363a4f;--text-primary:#cad3f5;--text-secondary:#a5adcb;--text-muted:#8087a2;--border-color:#363a4f;--border-focus:#c6a0f6;--primary:#c6a0f6;--primary-hover:#f5bde6;--accent:#ee99a0;--success:#a6da95;--danger:#ed8796;--warning:#eed49f;--comment-bg:#181926;--comment-border:#c6a0f6;--accent-subtle:#c6a0f626;--border-weak:#363a4f;--border-normal:#494d64;--border-strong:#c6a0f6;--feedback-success-bg:#a6da951f;--feedback-success-border:#a6da95;--feedback-success-text:#a6da95;--feedback-danger-bg:#ed87961f;--feedback-danger-border:#ed8796;--feedback-danger-text:#ed8796;--feedback-warning-bg:#eed49f1f;--feedback-warning-border:#eed49f;--feedback-warning-text:#eed49f}[data-theme=ayu-light]{--bg-primary:#fafafa;--bg-secondary:#f3f3f3;--bg-secondary-rgb:243, 243, 243;--bg-tertiary:#e6e6e6;--text-primary:#5c6773;--text-secondary:#828c99;--text-muted:#abb2bf;--border-color:#e6e6e6;--border-focus:#f90;--primary:#f90;--primary-hover:#f29718;--accent:#e6b450;--success:#66bf3c;--danger:#f34;--warning:#f90;--comment-bg:#f0f4fc;--comment-border:#f90;--accent-subtle:#ff99001a;--border-weak:#e6e6e6;--border-normal:#d9d9d9;--border-strong:#f90;--feedback-success-bg:#66bf3c1f;--feedback-success-border:#66bf3c;--feedback-success-text:#59aa33;--feedback-danger-bg:#ff334414;--feedback-danger-border:#f34;--feedback-danger-text:#d92635;--feedback-warning-bg:#ff99001a;--feedback-warning-border:#f90;--feedback-warning-text:#e68a00}[data-theme=andromeeda]{--bg-primary:#090b10;--bg-secondary:#0e1117;--bg-secondary-rgb:14, 17, 23;--bg-tertiary:#181c25;--text-primary:#e1e3e6;--text-secondary:#a0a5ad;--text-muted:#696d77;--border-color:#1c212d;--border-focus:#00e8c6;--primary:#00e8c6;--primary-hover:#00f5d4;--accent:#ff007f;--success:#4bf1a7;--danger:#ff4d6d;--warning:#ffb703;--comment-bg:#181c25;--comment-border:#00e8c6;--accent-subtle:#00e8c61f;--border-weak:#181c25;--border-normal:#1c212d;--border-strong:#00e8c6;--feedback-success-bg:#4bf1a71f;--feedback-success-border:#4bf1a7;--feedback-success-text:#4bf1a7;--feedback-danger-bg:#ff4d6d1f;--feedback-danger-border:#ff4d6d;--feedback-danger-text:#ff4d6d;--feedback-warning-bg:#ffb7031f;--feedback-warning-border:#ffb703;--feedback-warning-text:#ffb703}[data-theme=aurora-x]{--bg-primary:#07090f;--bg-secondary:#0c0e15;--bg-secondary-rgb:12, 14, 21;--bg-tertiary:#161b25;--text-primary:#abb2bf;--text-secondary:#828997;--text-muted:#5c6370;--border-color:#1b2230;--border-focus:#2eb5e5;--primary:#2eb5e5;--primary-hover:#4dc3ff;--accent:#a074c4;--success:#7fdbca;--danger:#e06c75;--warning:#e2c08d;--comment-bg:#161b25;--comment-border:#2eb5e5;--accent-subtle:#2eb5e51f;--border-weak:#161b25;--border-normal:#1b2230;--border-strong:#2eb5e5;--feedback-success-bg:#7fdbca1f;--feedback-success-border:#7fdbca;--feedback-success-text:#7fdbca;--feedback-danger-bg:#e06c751f;--feedback-danger-border:#e06c75;--feedback-danger-text:#e06c75;--feedback-warning-bg:#e2c08d1f;--feedback-warning-border:#e2c08d;--feedback-warning-text:#e2c08d}[data-theme=dark-plus]{--bg-primary:#1e1e1e;--bg-secondary:#252526;--bg-secondary-rgb:37, 37, 38;--bg-tertiary:#37373d;--text-primary:#d4d4d4;--text-secondary:#858585;--text-muted:#626262;--border-color:#3c3c3c;--border-focus:#0e639c;--primary:#0e639c;--primary-hover:#17b;--accent:#c586c0;--success:#4ec9b0;--danger:#f48771;--warning:#cca700;--comment-bg:#2d2d2d;--comment-border:#0e639c;--accent-subtle:#0e639c1f;--border-weak:#2d2d2d;--border-normal:#3c3c3c;--border-strong:#0e639c;--feedback-success-bg:#4ec9b01f;--feedback-success-border:#4ec9b0;--feedback-success-text:#4ec9b0;--feedback-danger-bg:#f487711f;--feedback-danger-border:#f48771;--feedback-danger-text:#f48771;--feedback-warning-bg:#cca7001f;--feedback-warning-border:#cca700;--feedback-warning-text:#cca700}[data-theme=light-plus]{--bg-primary:#fff;--bg-secondary:#f3f3f3;--bg-secondary-rgb:243, 243, 243;--bg-tertiary:#e4e4e7;--text-primary:#333;--text-secondary:#616161;--text-muted:#969696;--border-color:#e4e4e7;--border-focus:#007acc;--primary:#007acc;--primary-hover:#0062a3;--accent:#af00db;--success:green;--danger:#cd3131;--warning:#b26b00;--comment-bg:#f2f7fc;--comment-border:#007acc;--accent-subtle:#007acc1a;--border-weak:#e4e4e7;--border-normal:#d4d4d8;--border-strong:#007acc;--feedback-success-bg:#00800014;--feedback-success-border:green;--feedback-success-text:green;--feedback-danger-bg:#cd313114;--feedback-danger-border:#cd3131;--feedback-danger-text:#b52020;--feedback-warning-bg:#b26b0014;--feedback-warning-border:#b26b00;--feedback-warning-text:#965a00}[data-theme=houston]{--bg-primary:#131415;--bg-secondary:#17191e;--bg-secondary-rgb:23, 25, 30;--bg-tertiary:#1f232a;--text-primary:#e3e6e8;--text-secondary:#87909c;--text-muted:#505864;--border-color:#242933;--border-focus:#ff5d01;--primary:#ff5d01;--primary-hover:#ff7e33;--accent:#b05cff;--success:#4ade80;--danger:#f87171;--warning:#fbbf24;--comment-bg:#1f232a;--comment-border:#ff5d01;--accent-subtle:#ff5d011f;--border-weak:#1f232a;--border-normal:#242933;--border-strong:#ff5d01;--feedback-success-bg:#4ade801f;--feedback-success-border:#4ade80;--feedback-success-text:#4ade80;--feedback-danger-bg:#f871711f;--feedback-danger-border:#f87171;--feedback-danger-text:#f87171;--feedback-warning-bg:#fbbf241f;--feedback-warning-border:#fbbf24;--feedback-warning-text:#fbbf24}[data-theme=laserwave]{--bg-primary:#1b1d28;--bg-secondary:#181a23;--bg-secondary-rgb:24, 26, 35;--bg-tertiary:#2a2e3f;--text-primary:#ebedef;--text-secondary:#90a4ae;--text-muted:#546e7a;--border-color:#272a39;--border-focus:#ffe261;--primary:#ffe261;--primary-hover:#fff099;--accent:#40e0d0;--success:#b0f4b0;--danger:#ff8080;--warning:#ffe261;--comment-bg:#2a2e3f;--comment-border:#ffe261;--accent-subtle:#ffe2611f;--border-weak:#2a2e3f;--border-normal:#272a39;--border-strong:#ffe261;--feedback-success-bg:#b0f4b01f;--feedback-success-border:#b0f4b0;--feedback-success-text:#b0f4b0;--feedback-danger-bg:#ff80801f;--feedback-danger-border:#ff8080;--feedback-danger-text:#ff8080;--feedback-warning-bg:#ffe2611f;--feedback-warning-border:#ffe261;--feedback-warning-text:#ffe261}[data-theme=material-theme]{--bg-primary:#263238;--bg-secondary:#1e272c;--bg-secondary-rgb:30, 39, 44;--bg-tertiary:#32424a;--text-primary:#eff;--text-secondary:#b0bec5;--text-muted:#546e7a;--border-color:#2c3b41;--border-focus:#80cbd8;--primary:#80cbd8;--primary-hover:#b2ebf2;--accent:#c792ea;--success:#c3e88d;--danger:#f07178;--warning:#f7ebc6;--comment-bg:#32424a;--comment-border:#80cbd8;--accent-subtle:#80cbd81f;--border-weak:#32424a;--border-normal:#2c3b41;--border-strong:#80cbd8;--feedback-success-bg:#c3e88d1f;--feedback-success-border:#c3e88d;--feedback-success-text:#c3e88d;--feedback-danger-bg:#f071781f;--feedback-danger-border:#f07178;--feedback-danger-text:#f07178;--feedback-warning-bg:#f7ebc61f;--feedback-warning-border:#f7ebc6;--feedback-warning-text:#f7ebc6}[data-theme=material-theme-darker]{--bg-primary:#212121;--bg-secondary:#1a1a1a;--bg-secondary-rgb:26, 26, 26;--bg-tertiary:#2e2e2e;--text-primary:#eff;--text-secondary:#b0bec5;--text-muted:#616161;--border-color:#2a2a2a;--border-focus:#80cbd8;--primary:#80cbd8;--primary-hover:#b2ebf2;--accent:#c792ea;--success:#c3e88d;--danger:#f07178;--warning:#f7ebc6;--comment-bg:#2e2e2e;--comment-border:#80cbd8;--accent-subtle:#80cbd81f;--border-weak:#2e2e2e;--border-normal:#2a2a2a;--border-strong:#80cbd8;--feedback-success-bg:#c3e88d1f;--feedback-success-border:#c3e88d;--feedback-success-text:#c3e88d;--feedback-danger-bg:#f071781f;--feedback-danger-border:#f07178;--feedback-danger-text:#f07178;--feedback-warning-bg:#f7ebc61f;--feedback-warning-border:#f7ebc6;--feedback-warning-text:#f7ebc6}[data-theme=material-theme-lighter]{--bg-primary:#fafafa;--bg-secondary:#eeeded;--bg-secondary-rgb:238, 237, 237;--bg-tertiary:#e6e5e5;--text-primary:#80cbc4;--text-secondary:#90a4ae;--text-muted:#b0bec5;--border-color:#e6e5e5;--border-focus:#80cbd8;--primary:#80cbd8;--primary-hover:#4dd0e1;--accent:#7c4dff;--success:#9ccc65;--danger:#ef5350;--warning:#ffb74d;--comment-bg:#f0f8f8;--comment-border:#80cbd8;--accent-subtle:#80cbd81f;--border-weak:#e6e5e5;--border-normal:#d5d4d4;--border-strong:#80cbd8;--feedback-success-bg:#9ccc651f;--feedback-success-border:#9ccc65;--feedback-success-text:#7cb342;--feedback-danger-bg:#ef535014;--feedback-danger-border:#ef5350;--feedback-danger-text:#e53935;--feedback-warning-bg:#ffb74d14;--feedback-warning-border:#ffb74d;--feedback-warning-text:#fb8c00}[data-theme=material-theme-ocean]{--bg-primary:#0f111a;--bg-secondary:#090b10;--bg-secondary-rgb:9, 11, 16;--bg-tertiary:#1a1c28;--text-primary:#8f93a2;--text-secondary:#676b79;--text-muted:#464b5d;--border-color:#1a1c28;--border-focus:#80cbd8;--primary:#80cbd8;--primary-hover:#b2ebf2;--accent:#c792ea;--success:#c3e88d;--danger:#f07178;--warning:#f7ebc6;--comment-bg:#1a1c28;--comment-border:#80cbd8;--accent-subtle:#80cbd81f;--border-weak:#1a1c28;--border-normal:#232635;--border-strong:#80cbd8;--feedback-success-bg:#c3e88d1f;--feedback-success-border:#c3e88d;--feedback-success-text:#c3e88d;--feedback-danger-bg:#f071781f;--feedback-danger-border:#f07178;--feedback-danger-text:#f07178;--feedback-warning-bg:#f7ebc61f;--feedback-warning-border:#f7ebc6;--feedback-warning-text:#f7ebc6}[data-theme=material-theme-palenight]{--bg-primary:#292d3e;--bg-secondary:#202331;--bg-secondary-rgb:32, 35, 49;--bg-tertiary:#343b51;--text-primary:#a6accd;--text-secondary:#7e84a2;--text-muted:#535974;--border-color:#2b3043;--border-focus:#80cbd8;--primary:#80cbd8;--primary-hover:#b2ebf2;--accent:#c792ea;--success:#c3e88d;--danger:#f07178;--warning:#f7ebc6;--comment-bg:#343b51;--comment-border:#80cbd8;--accent-subtle:#80cbd81f;--border-weak:#343b51;--border-normal:#2b3043;--border-strong:#80cbd8;--feedback-success-bg:#c3e88d1f;--feedback-success-border:#c3e88d;--feedback-success-text:#c3e88d;--feedback-danger-bg:#f071781f;--feedback-danger-border:#f07178;--feedback-danger-text:#f07178;--feedback-warning-bg:#f7ebc61f;--feedback-warning-border:#f7ebc6;--feedback-warning-text:#f7ebc6}[data-theme=min-dark]{--bg-primary:#1f1f1f;--bg-secondary:#181818;--bg-secondary-rgb:24, 24, 24;--bg-tertiary:#2e2e2e;--text-primary:#fff;--text-secondary:#b3b3b3;--text-muted:#666;--border-color:#2e2e2e;--border-focus:#fff;--primary:#fff;--primary-hover:#e6e6e6;--accent:#ccc;--success:#4caf50;--danger:#f44336;--warning:#ffeb3b;--comment-bg:#2e2e2e;--comment-border:#fff;--accent-subtle:#ffffff1f;--border-weak:#2e2e2e;--border-normal:#3e3e3e;--border-strong:#fff;--feedback-success-bg:#4caf501f;--feedback-success-border:#4caf50;--feedback-success-text:#4caf50;--feedback-danger-bg:#f443361f;--feedback-danger-border:#f44336;--feedback-danger-text:#f44336;--feedback-warning-bg:#ffeb3b1f;--feedback-warning-border:#ffeb3b;--feedback-warning-text:#ffeb3b}[data-theme=min-light]{--bg-primary:#fff;--bg-secondary:#f5f5f5;--bg-secondary-rgb:245, 245, 245;--bg-tertiary:#e5e5e5;--text-primary:#111;--text-secondary:#666;--text-muted:#999;--border-color:#e5e5e5;--border-focus:#111;--primary:#111;--primary-hover:#333;--accent:#444;--success:#2e7d32;--danger:#c62828;--warning:#f9a825;--comment-bg:#f9f9f9;--comment-border:#111;--accent-subtle:#11111114;--border-weak:#e5e5e5;--border-normal:#ccc;--border-strong:#111;--feedback-success-bg:#2e7d3214;--feedback-success-border:#2e7d32;--feedback-success-text:#2e7d32;--feedback-danger-bg:#c6282814;--feedback-danger-border:#c62828;--feedback-danger-text:#c62828;--feedback-warning-bg:#f9a82514;--feedback-warning-border:#f9a825;--feedback-warning-text:#f9a825}[data-theme=night-owl]{--bg-primary:#011627;--bg-secondary:#0b2942;--bg-secondary-rgb:11, 41, 66;--bg-tertiary:#0f3d5f;--text-primary:#d6deeb;--text-secondary:#addb67;--text-muted:#5f7e97;--border-color:#103b5f;--border-focus:#7fdbca;--primary:#7fdbca;--primary-hover:#bbf7ed;--accent:#c792ea;--success:#a1efe4;--danger:#ef5350;--warning:#f7ecb5;--comment-bg:#0f3d5f;--comment-border:#7fdbca;--accent-subtle:#7fdbca1f;--border-weak:#0f3d5f;--border-normal:#103b5f;--border-strong:#7fdbca;--feedback-success-bg:#a1efe41f;--feedback-success-border:#addb67;--feedback-success-text:#addb67;--feedback-danger-bg:#ef53501f;--feedback-danger-border:#ef5350;--feedback-danger-text:#ef5350;--feedback-warning-bg:#f7ecb51f;--feedback-warning-border:#f7ecb5;--feedback-warning-text:#f7ecb5}[data-theme=one-light]{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-secondary-rgb:240, 240, 240;--bg-tertiary:#e5e5e6;--text-primary:#383a42;--text-secondary:#696c77;--text-muted:#a0a1a7;--border-color:#e5e5e6;--border-focus:#40a9ff;--primary:#40a9ff;--primary-hover:#1890ff;--accent:#a626a4;--success:#50a14f;--danger:#e45649;--warning:#c18401;--comment-bg:#f4f5f7;--comment-border:#40a9ff;--accent-subtle:#40a9ff1a;--border-weak:#e5e5e6;--border-normal:#d3d3d4;--border-strong:#40a9ff;--feedback-success-bg:#50a14f14;--feedback-success-border:#50a14f;--feedback-success-text:#50a14f;--feedback-danger-bg:#e4564914;--feedback-danger-border:#e45649;--feedback-danger-text:#e45649;--feedback-warning-bg:#c1840114;--feedback-warning-border:#c18401;--feedback-warning-text:#c18401}[data-theme=plastic]{--bg-primary:#21252b;--bg-secondary:#1b1d23;--bg-secondary-rgb:27, 29, 35;--bg-tertiary:#2b313a;--text-primary:#abb2bf;--text-secondary:#828997;--text-muted:#5c6370;--border-color:#181a1f;--border-focus:#61afef;--primary:#61afef;--primary-hover:#4fa1e0;--accent:#d19a66;--success:#98c379;--danger:#e06c75;--warning:#e5c07b;--comment-bg:#2b313a;--comment-border:#61afef;--accent-subtle:#61afef1f;--border-weak:#2b313a;--border-normal:#181a1f;--border-strong:#61afef;--feedback-success-bg:#98c3791f;--feedback-success-border:#98c379;--feedback-success-text:#98c379;--feedback-danger-bg:#e06c751f;--feedback-danger-border:#e06c75;--feedback-danger-text:#e06c75;--feedback-warning-bg:#e5c07b1f;--feedback-warning-border:#e5c07b;--feedback-warning-text:#e5c07b}[data-theme=poimandres]{--bg-primary:#1b1e28;--bg-secondary:#171922;--bg-secondary-rgb:23, 25, 34;--bg-tertiary:#252936;--text-primary:#a6accd;--text-secondary:#767c9d;--text-muted:#505570;--border-color:#252936;--border-focus:#50cad2;--primary:#50cad2;--primary-hover:#71dfef;--accent:#addb67;--success:#5fb3b3;--danger:#e06c75;--warning:#ffe261;--comment-bg:#252936;--comment-border:#50cad2;--accent-subtle:#50cad21f;--border-weak:#252936;--border-normal:#303546;--border-strong:#50cad2;--feedback-success-bg:#5fb3b31f;--feedback-success-border:#5fb3b3;--feedback-success-text:#5fb3b3;--feedback-danger-bg:#e06c751f;--feedback-danger-border:#e06c75;--feedback-danger-text:#e06c75;--feedback-warning-bg:#ffe2611f;--feedback-warning-border:#ffe261;--feedback-warning-text:#ffe261}[data-theme=rose-pine]{--bg-primary:#191724;--bg-secondary:#1f1d2e;--bg-secondary-rgb:31, 29, 46;--bg-tertiary:#26233a;--text-primary:#e0def4;--text-secondary:#908caa;--text-muted:#6e6a86;--border-color:#26233a;--border-focus:#c4a7e7;--primary:#c4a7e7;--primary-hover:#ea9a97;--accent:#ea9a97;--success:#31748f;--danger:#ebbcbc;--warning:#f6c177;--comment-bg:#1f1d2e;--comment-border:#c4a7e7;--accent-subtle:#c4a7e726;--border-weak:#26233a;--border-normal:#403d52;--border-strong:#c4a7e7;--feedback-success-bg:#31748f26;--feedback-success-border:#31748f;--feedback-success-text:#31748f;--feedback-danger-bg:#ebbcbc26;--feedback-danger-border:#ebbcbc;--feedback-danger-text:#ebbcbc;--feedback-warning-bg:#f6c17726;--feedback-warning-border:#f6c177;--feedback-warning-text:#f6c177}[data-theme=rose-pine-moon]{--bg-primary:#232136;--bg-secondary:#2a283e;--bg-secondary-rgb:42, 40, 62;--bg-tertiary:#393552;--text-primary:#e0def4;--text-secondary:#908caa;--text-muted:#6e6a86;--border-color:#393552;--border-focus:#c4a7e7;--primary:#c4a7e7;--primary-hover:#ea9a97;--accent:#ea9a97;--success:#31748f;--danger:#ebbcbc;--warning:#f6c177;--comment-bg:#2a283e;--comment-border:#c4a7e7;--accent-subtle:#c4a7e726;--border-weak:#393552;--border-normal:#4a4664;--border-strong:#c4a7e7;--feedback-success-bg:#31748f26;--feedback-success-border:#31748f;--feedback-success-text:#31748f;--feedback-danger-bg:#ebbcbc26;--feedback-danger-border:#ebbcbc;--feedback-danger-text:#ebbcbc;--feedback-warning-bg:#f6c17726;--feedback-warning-border:#f6c177;--feedback-warning-text:#f6c177}[data-theme=rose-pine-dawn]{--bg-primary:#faf4ed;--bg-secondary:#f2e9e1;--bg-secondary-rgb:242, 233, 225;--bg-tertiary:#dfd5cb;--text-primary:#575279;--text-secondary:#797593;--text-muted:#9893a5;--border-color:#dfd5cb;--border-focus:#907aa9;--primary:#907aa9;--primary-hover:#d7827e;--accent:#d7827e;--success:#286983;--danger:#b75e5e;--warning:#ea9d34;--comment-bg:#f4ece6;--comment-border:#907aa9;--accent-subtle:#907aa91f;--border-weak:#dfd5cb;--border-normal:#d1c5b8;--border-strong:#907aa9;--feedback-success-bg:#28698314;--feedback-success-border:#286983;--feedback-success-text:#286983;--feedback-danger-bg:#b75e5e14;--feedback-danger-border:#b75e5e;--feedback-danger-text:#a14040;--feedback-warning-bg:#ea9d3414;--feedback-warning-border:#ea9d34;--feedback-warning-text:#c07a1c}[data-theme=slack-dark]{--bg-primary:#1a1d21;--bg-secondary:#222529;--bg-secondary-rgb:34, 37, 41;--bg-tertiary:#2a2d31;--text-primary:#d1d2d3;--text-secondary:#868686;--text-muted:#606060;--border-color:#2a2d31;--border-focus:#36c5f0;--primary:#36c5f0;--primary-hover:#2eb67d;--accent:#ecb22e;--success:#2eb67d;--danger:#e01e5a;--warning:#ecb22e;--comment-bg:#2a2d31;--comment-border:#36c5f0;--accent-subtle:#36c5f01f;--border-weak:#2a2d31;--border-normal:#383c40;--border-strong:#36c5f0;--feedback-success-bg:#2eb67d1f;--feedback-success-border:#2eb67d;--feedback-success-text:#2eb67d;--feedback-danger-bg:#e01e5a1f;--feedback-danger-border:#e01e5a;--feedback-danger-text:#e01e5a;--feedback-warning-bg:#ecb22e1f;--feedback-warning-border:#ecb22e;--feedback-warning-text:#ecb22e}[data-theme=slack-ochre]{--bg-primary:#222;--bg-secondary:#2b2b2b;--bg-secondary-rgb:43, 43, 43;--bg-tertiary:#333;--text-primary:#dfdfdf;--text-secondary:#999;--text-muted:#666;--border-color:#333;--border-focus:#e8912d;--primary:#e8912d;--primary-hover:#f0ad5d;--accent:#36c5f0;--success:#2eb67d;--danger:#e01e5a;--warning:#e8912d;--comment-bg:#333;--comment-border:#e8912d;--accent-subtle:#e8912d1f;--border-weak:#333;--border-normal:#404040;--border-strong:#e8912d;--feedback-success-bg:#2eb67d1f;--feedback-success-border:#2eb67d;--feedback-success-text:#2eb67d;--feedback-danger-bg:#e01e5a1f;--feedback-danger-border:#e01e5a;--feedback-danger-text:#e01e5a;--feedback-warning-bg:#e8912d1f;--feedback-warning-border:#e8912d;--feedback-warning-text:#e8912d}[data-theme=vesper]{--bg-primary:#101010;--bg-secondary:#161616;--bg-secondary-rgb:22, 22, 22;--bg-tertiary:#222;--text-primary:#fff;--text-secondary:#a0a0a0;--text-muted:#505050;--border-color:#222;--border-focus:#ffc600;--primary:#ffc600;--primary-hover:#ffd633;--accent:#ff8a00;--success:#10b981;--danger:#ef4444;--warning:#ffc600;--comment-bg:#222;--comment-border:#ffc600;--accent-subtle:#ffc6001f;--border-weak:#222;--border-normal:#333;--border-strong:#ffc600;--feedback-success-bg:#10b9811f;--feedback-success-border:#10b981;--feedback-success-text:#10b981;--feedback-danger-bg:#ef44441f;--feedback-danger-border:#ef4444;--feedback-danger-text:#ef4444;--feedback-warning-bg:#ffc6001f;--feedback-warning-border:#ffc600;--feedback-warning-text:#ffc600}[data-theme=vitesse-black]{--bg-primary:#000;--bg-secondary:#0b0b0b;--bg-secondary-rgb:11, 11, 11;--bg-tertiary:#181818;--text-primary:#dbdbdb;--text-secondary:#888;--text-muted:#444;--border-color:#1c1c1c;--border-focus:#4d9375;--primary:#4d9375;--primary-hover:#60ab88;--accent:#cb7676;--success:#4d9375;--danger:#cb7676;--warning:#d09a56;--comment-bg:#181818;--comment-border:#4d9375;--accent-subtle:#4d93751f;--border-weak:#181818;--border-normal:#1c1c1c;--border-strong:#4d9375;--feedback-success-bg:#4d93751f;--feedback-success-border:#4d9375;--feedback-success-text:#4d9375;--feedback-danger-bg:#cb76761f;--feedback-danger-border:#cb7676;--feedback-danger-text:#cb7676;--feedback-warning-bg:#d09a561f;--feedback-warning-border:#d09a56;--feedback-warning-text:#d09a56}[data-theme=vitesse-dark]{--bg-primary:#121212;--bg-secondary:#181818;--bg-secondary-rgb:24, 24, 24;--bg-tertiary:#222;--text-primary:#dbdbdb;--text-secondary:#888;--text-muted:#444;--border-color:#242424;--border-focus:#4d9375;--primary:#4d9375;--primary-hover:#60ab88;--accent:#cb7676;--success:#4d9375;--danger:#cb7676;--warning:#d09a56;--comment-bg:#222;--comment-border:#4d9375;--accent-subtle:#4d93751f;--border-weak:#222;--border-normal:#242424;--border-strong:#4d9375;--feedback-success-bg:#4d93751f;--feedback-success-border:#4d9375;--feedback-success-text:#4d9375;--feedback-danger-bg:#cb76761f;--feedback-danger-border:#cb7676;--feedback-danger-text:#cb7676;--feedback-warning-bg:#d09a561f;--feedback-warning-border:#d09a56;--feedback-warning-text:#d09a56}[data-theme=vitesse-light]{--bg-primary:#fff;--bg-secondary:#fafafa;--bg-secondary-rgb:250, 250, 250;--bg-tertiary:#f0f0f0;--text-primary:#393939;--text-secondary:#888;--text-muted:#b0b0b0;--border-color:#f0f0f0;--border-focus:#1b655f;--primary:#1b655f;--primary-hover:#154c48;--accent:#a53b3b;--success:#1b655f;--danger:#a53b3b;--warning:#a8722a;--comment-bg:#f5fcfc;--comment-border:#1b655f;--accent-subtle:#1b655f1a;--border-weak:#f0f0f0;--border-normal:#e0e0e0;--border-strong:#1b655f;--feedback-success-bg:#1b655f14;--feedback-success-border:#1b655f;--feedback-success-text:#1b655f;--feedback-danger-bg:#a53b3b14;--feedback-danger-border:#a53b3b;--feedback-danger-text:#8c2020;--feedback-warning-bg:#a8722a14;--feedback-warning-border:#a8722a;--feedback-warning-text:#8c5a1a}[data-theme=nightfox]{--bg-primary:#192330;--bg-secondary:#131a24;--bg-secondary-rgb:19, 26, 36;--bg-tertiary:#223245;--text-primary:#cdcecf;--text-secondary:#aeafb0;--text-muted:#71839b;--border-color:#223245;--border-focus:#719cd6;--primary:#719cd6;--primary-hover:#8cb4eb;--accent:#dbc270;--success:#81b29a;--danger:#c94f6d;--warning:#dbc270;--comment-bg:#223245;--comment-border:#719cd6;--accent-subtle:#719cd61f;--border-weak:#223245;--border-normal:#2b3e54;--border-strong:#719cd6;--feedback-success-bg:#81b29a1f;--feedback-success-border:#81b29a;--feedback-success-text:#81b29a;--feedback-danger-bg:#c94f6d1f;--feedback-danger-border:#c94f6d;--feedback-danger-text:#c94f6d;--feedback-warning-bg:#dbc2701f;--feedback-warning-border:#dbc270;--feedback-warning-text:#dbc270}[data-theme=nordfox]{--bg-primary:#2e3440;--bg-secondary:#232831;--bg-secondary-rgb:35, 40, 49;--bg-tertiary:#3b4252;--text-primary:#eceff4;--text-secondary:#e5e9f0;--text-muted:#81a1c1;--border-color:#3b4252;--border-focus:#81a1c1;--primary:#81a1c1;--primary-hover:#88c0d0;--accent:#b48ead;--success:#a3be8c;--danger:#bf616a;--warning:#ebcb8b;--comment-bg:#3b4252;--comment-border:#81a1c1;--accent-subtle:#81a1c11f;--border-weak:#3b4252;--border-normal:#434c5e;--border-strong:#81a1c1;--feedback-success-bg:#a3be8c1f;--feedback-success-border:#a3be8c;--feedback-success-text:#a3be8c;--feedback-danger-bg:#bf616a1f;--feedback-danger-border:#bf616a;--feedback-danger-text:#bf616a;--feedback-warning-bg:#ebcb8b1f;--feedback-warning-border:#ebcb8b;--feedback-warning-text:#ebcb8b}[data-theme=duskfox]{--bg-primary:#232136;--bg-secondary:#1d1b2d;--bg-secondary-rgb:29, 27, 45;--bg-tertiary:#2d2a45;--text-primary:#e0def4;--text-secondary:#908caa;--text-muted:#86b3b3;--border-color:#2d2a45;--border-focus:#86b3b3;--primary:#86b3b3;--primary-hover:#9cc7c7;--accent:#ea9a97;--success:#a3be8c;--danger:#ebbcbc;--warning:#f6c177;--comment-bg:#1d1b2d;--comment-border:#86b3b3;--accent-subtle:#86b3b326;--border-weak:#2d2a45;--border-normal:#3e3a5c;--border-strong:#86b3b3;--feedback-success-bg:#a3be8c1f;--feedback-success-border:#a3be8c;--feedback-success-text:#a3be8c;--feedback-danger-bg:#ebbcbc1f;--feedback-danger-border:#ebbcbc;--feedback-danger-text:#ebbcbc;--feedback-warning-bg:#f6c1771f;--feedback-warning-border:#f6c177;--feedback-warning-text:#f6c177}[data-theme=terafox]{--bg-primary:#152528;--bg-secondary:#0f1c1e;--bg-secondary-rgb:15, 28, 30;--bg-tertiary:#1d3337;--text-primary:#cbd9dc;--text-secondary:#5a93aa;--text-muted:#4e6e75;--border-color:#1d3337;--border-focus:#5a93aa;--primary:#5a93aa;--primary-hover:#73a9bf;--accent:#ff8349;--success:#afd47e;--danger:#e85c5c;--warning:#fda47f;--comment-bg:#1d3337;--comment-border:#5a93aa;--accent-subtle:#5a93aa1f;--border-weak:#1d3337;--border-normal:#254146;--border-strong:#5a93aa;--feedback-success-bg:#afd47e1f;--feedback-success-border:#afd47e;--feedback-success-text:#afd47e;--feedback-danger-bg:#e85c5c1f;--feedback-danger-border:#e85c5c;--feedback-danger-text:#e85c5c;--feedback-warning-bg:#fda47f1f;--feedback-warning-border:#fda47f;--feedback-warning-text:#fda47f}[data-theme=carbonfox]{--bg-primary:#161616;--bg-secondary:#111;--bg-secondary-rgb:17, 17, 17;--bg-tertiary:#262626;--text-primary:#f4f4f4;--text-secondary:#a8a8a8;--text-muted:#78a9ff;--border-color:#262626;--border-focus:#78a9ff;--primary:#78a9ff;--primary-hover:#99c0ff;--accent:#be95ff;--success:#42be65;--danger:#fa4d56;--warning:#de9000;--comment-bg:#262626;--comment-border:#78a9ff;--accent-subtle:#78a9ff1f;--border-weak:#262626;--border-normal:#393939;--border-strong:#78a9ff;--feedback-success-bg:#42be651f;--feedback-success-border:#42be65;--feedback-success-text:#42be65;--feedback-danger-bg:#fa4d561f;--feedback-danger-border:#fa4d56;--feedback-danger-text:#fa4d56;--feedback-warning-bg:#de90001f;--feedback-warning-border:#de9000;--feedback-warning-text:#de9000}[data-theme=dayfox]{--bg-primary:#f6f2ee;--bg-secondary:#ebe5df;--bg-secondary-rgb:235, 229, 223;--bg-tertiary:#e4dbd4;--text-primary:#3d2b1f;--text-secondary:#68574b;--text-muted:#2848a9;--border-color:#e4dbd4;--border-focus:#2848a9;--primary:#2848a9;--primary-hover:#395bbd;--accent:#957b07;--success:#39684c;--danger:#a52222;--warning:#957b07;--comment-bg:#ebe5df;--comment-border:#2848a9;--accent-subtle:#2848a91a;--border-weak:#e4dbd4;--border-normal:#d5c7bc;--border-strong:#2848a9;--feedback-success-bg:#39684c14;--feedback-success-border:#39684c;--feedback-success-text:#39684c;--feedback-danger-bg:#a5222214;--feedback-danger-border:#a52222;--feedback-danger-text:#8b1818;--feedback-warning-bg:#957b0714;--feedback-warning-border:#957b07;--feedback-warning-text:#7a6200}[data-theme=dawnfox]{--bg-primary:#eae5e5;--bg-secondary:#e0d8d8;--bg-secondary-rgb:224, 216, 216;--bg-tertiary:#d6cccc;--text-primary:#574f4f;--text-secondary:#7e7575;--text-muted:#614d85;--border-color:#d6cccc;--border-focus:#614d85;--primary:#614d85;--primary-hover:#765f9d;--accent:#a05e2b;--success:#486a5a;--danger:#a04a4a;--warning:#a05e2b;--comment-bg:#e0d8d8;--comment-border:#614d85;--accent-subtle:#614d851a;--border-weak:#d6cccc;--border-normal:#c2b2b2;--border-strong:#614d85;--feedback-success-bg:#486a5a14;--feedback-success-border:#486a5a;--feedback-success-text:#486a5a;--feedback-danger-bg:#a04a4a14;--feedback-danger-border:#a04a4a;--feedback-danger-text:#853535;--feedback-warning-bg:#a05e2b14;--feedback-warning-border:#a05e2b;--feedback-warning-text:#854a1c}html{scrollbar-gutter:stable}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.5}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary)}.app{flex-direction:column;min-height:100vh;display:flex}.toolbar{z-index:100;height:var(--toolbar-height);box-sizing:border-box;background:rgba(var(--bg-secondary-rgb), .75);-webkit-backdrop-filter:blur(20px)saturate(180%);border-bottom:1px solid var(--border-weak);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.toolbar-left{align-items:center;gap:14px;display:flex}.toolbar-title{letter-spacing:-.6px;color:var(--text-primary);font-size:18px;font-weight:800;font-family:var(--font-sans)}.toolbar-branch{color:var(--primary);background:var(--accent-subtle);border-radius:var(--radius-round);border:1px solid rgba(var(--bg-secondary-rgb), .2);align-items:center;gap:6px;padding:4px 12px;font-size:12px;font-weight:600;display:flex;box-shadow:inset 0 1px #ffffff0d}.toolbar-stat{color:var(--text-muted);font-size:13px;font-weight:500}.stat-additions{color:var(--feedback-success-text);margin-left:4px;font-weight:700}.stat-deletions{color:var(--feedback-danger-text);margin-left:4px;font-weight:700}.toolbar-checkbox{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:12px;font-weight:500;display:flex}.toolbar-checkbox input{cursor:pointer;accent-color:var(--primary)}.toolbar-viewed{color:var(--text-secondary);align-items:center;gap:8px;font-size:12px;font-weight:500;display:flex}.toolbar-viewed-bar{background:var(--border-weak);border-radius:var(--radius-round);width:90px;height:6px;overflow:hidden}.toolbar-viewed-fill{background:var(--feedback-success-border);border-radius:var(--radius-round);height:100%;transition:width var(--transition-smooth);display:block}.toolbar-right{align-items:center;gap:12px;display:flex}.toolbar-search-btn{align-items:center;display:inline-flex}.toolbar-search-kbd{font-family:var(--font-mono);border-radius:var(--radius-xs);background:var(--bg-tertiary);border:1px solid var(--border-weak);color:var(--text-muted);margin-left:8px;padding:2px 4px;font-size:10px;line-height:1}.settings-btn{justify-content:center;align-items:center;padding:6px 12px;display:inline-flex}.settings-item{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:10px 18px;font-size:13px;font-weight:500;display:flex}.settings-item-spaced{justify-content:space-between}.settings-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.settings-item input[type=checkbox]{cursor:pointer;accent-color:var(--primary)}.toolbar-toggle{border:1px solid var(--border-normal);border-radius:var(--radius-md);background:var(--bg-secondary);padding:2px;display:flex;overflow:hidden}.btn{font-family:var(--font-sans);border:1px solid var(--border-normal);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:600;display:inline-flex}.btn:hover:not(:disabled){background:var(--bg-secondary);color:var(--primary);border-color:var(--primary)}.btn:active:not(:disabled){background:var(--bg-tertiary)}.btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none!important;transform:none!important}.btn-primary{background:var(--primary);color:var(--bg-primary);border-color:var(--primary);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);color:var(--bg-primary);border-color:var(--primary-hover)}.btn-secondary{border-color:var(--border-normal);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-normal)}.btn-sm{border-radius:var(--radius-sm);padding:6px 12px;font-size:13px}.toolbar-toggle .btn-sm{border-radius:var(--radius-sm);border:none;font-weight:600}.btn-active,.btn.btn-active:hover{background:var(--primary);color:var(--bg-primary);border-color:var(--primary);box-shadow:var(--shadow-sm)}.app-body{flex:1;display:flex}.sidebar{top:var(--toolbar-height);width:var(--sidebar-width,320px);min-width:var(--sidebar-width,320px);height:calc(100vh - var(--toolbar-height));border-right:1px solid var(--border-weak);background:var(--bg-secondary);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;position:sticky;overflow:hidden}.sidebar-collapsed{width:52px;min-width:52px}.sidebar-resize-handle{top:var(--toolbar-height);height:calc(100vh - var(--toolbar-height));cursor:col-resize;z-index:3;background:0 0;flex-shrink:0;width:6px;margin-left:-3px;margin-right:-3px;transition:background .15s;position:sticky}.sidebar-resize-handle:hover,.sidebar-resize-handle:active{background:var(--border-focus)}.sidebar-resize-guide{top:var(--toolbar-height);background:var(--primary);width:2px;box-shadow:0 0 0 1px var(--primary), 0 0 8px var(--primary);z-index:50;pointer-events:none;opacity:0;will-change:transform;position:fixed;bottom:0;left:0;transform:translate(-10px)}.sidebar-resize-guide-active{opacity:.9}.sidebar-toggle{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-toggle:hover{background:var(--bg-tertiary);color:var(--text-primary)}.main{background:var(--bg-primary);flex:1;min-width:0;padding:16px 24px}.diff-viewer{flex-direction:column;gap:24px;width:100%;display:flex}.file-diff-card{border:1px solid var(--border-normal);border-radius:var(--radius-lg);background:var(--bg-secondary);box-shadow:var(--shadow-md);transition:box-shadow var(--transition-smooth), border-color var(--transition-fast);content-visibility:auto;contain-intrinsic-size:auto 480px;scroll-margin-top:90px}.file-diff-card:hover{box-shadow:var(--shadow-lg);border-color:var(--border-strong)}.file-diff-viewed{opacity:.55;box-shadow:var(--shadow-sm)}.file-diff-collapsed{contain-intrinsic-size:auto 44px}.file-diff-viewed-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:12px 20px;font-size:13px;font-weight:600;display:flex}.file-diff-viewed-name{color:var(--text-muted);font-family:var(--font-mono)}.viewed-label{color:var(--text-secondary);border:1px solid var(--border-color);background:var(--bg-primary);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:6px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-flex}.viewed-label input{cursor:pointer}.viewed-label:hover{background:var(--bg-tertiary);color:var(--text-primary)}.viewed-checked{color:var(--success);border-color:var(--success);background:#a3be8c1a}.gutter-add-btn{background:var(--primary);width:20px;height:20px;color:var(--bg-primary);cursor:pointer;opacity:0;transition:opacity var(--transition-fast), background var(--transition-fast);box-shadow:var(--shadow-md);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:14px;font-weight:700;line-height:1;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gutter-add-btn:hover{background:var(--primary-hover)}[data-line]:hover .gutter-add-btn,[data-column-number]:hover .gutter-add-btn{opacity:1}.comment-bubble-canvas{background:var(--bg-secondary);border:1px solid var(--border-normal);border-radius:var(--radius-lg);width:calc(100% - 40px);max-width:min(720px,100% - 40px);box-shadow:var(--shadow-md), 0 4px 24px #0000000a;box-sizing:border-box;min-width:0;margin:14px 20px;scroll-margin-top:110px;overflow:hidden}.comment-node{gap:14px;padding:16px 20px;display:flex;position:relative}.comment-node:not(:last-child){border-bottom:1px solid var(--border-weak)}.comment-node-resolved{opacity:.6}.comment-avatar-col{flex-direction:column;flex-shrink:0;align-items:center;display:flex}.comment-avatar-circle{border-radius:var(--radius-round);text-transform:uppercase;width:32px;height:32px;box-shadow:var(--shadow-sm);-webkit-user-select:none;user-select:none;border:1.5px solid var(--border-normal);justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.comment-avatar-user{background:var(--bg-tertiary);color:var(--text-secondary);border-color:var(--border-normal)}.comment-avatar-agent{background:var(--accent-subtle);color:var(--primary);border-color:var(--border-focus)}.comment-content-col{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.comment-node-header{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;font-size:13px;display:flex}.comment-node-author{color:var(--text-primary);font-weight:750;font-family:var(--font-sans)}.comment-node-badge{text-transform:uppercase;border-radius:var(--radius-sm);letter-spacing:.4px;padding:1px 6px;font-size:10px;font-weight:800}.comment-node-badge-user{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-weak)}.comment-node-badge-agent{background:var(--accent-subtle);color:var(--primary);border:1px solid rgba(var(--bg-secondary-rgb), .2)}.comment-node-time{color:var(--text-muted);font-size:11.5px;font-weight:500}.comment-node-actions{opacity:0;transition:opacity var(--transition-fast);align-items:center;gap:4px;margin-left:auto;display:flex}.comment-node:hover .comment-node-actions,.comment-node:focus-within .comment-node-actions{opacity:1}.comment-node-btn{width:24px;height:24px;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.comment-node-btn:hover{background:var(--accent-subtle);color:var(--primary)}.comment-node-btn-delete:hover{background:var(--feedback-danger-bg);color:var(--feedback-danger-text)}.comment-node-body{color:var(--text-secondary);word-break:break-word;overflow-wrap:break-word;min-width:0;font-size:13.5px;line-height:1.6}.comment-resolved-line{text-decoration:line-through;color:var(--text-muted)!important}.comment-canvas-footer{background:rgba(var(--bg-secondary-rgb), .15);border-top:1px solid var(--border-weak);padding:12px 20px}.comment-reply-trigger{background:var(--bg-primary);border:1px solid var(--border-normal);border-radius:var(--radius-md);color:var(--text-muted);cursor:text;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:500;display:flex}.comment-reply-trigger:hover{border-color:var(--primary);color:var(--text-secondary)}.comment-canvas-resolved-banner{color:var(--feedback-success-text);align-items:center;gap:6px;font-size:12.5px;font-weight:700;display:flex}.comment-form{background:var(--bg-secondary);border:1px solid var(--border-normal);border-radius:var(--radius-lg);box-sizing:border-box}.comment-form textarea{width:100%;font-family:var(--font-sans);border:1px solid var(--border-normal);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);resize:vertical;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:12px 16px;font-size:14px;line-height:1.5}.comment-form textarea:focus{border-color:var(--border-strong);box-shadow:0 0 0 3px var(--accent-subtle)}.comment-form-tabs{border-bottom:1px solid var(--border-weak);gap:8px;margin-bottom:12px;padding-bottom:4px;display:flex}.comment-form-tab-btn{cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;padding:6px 12px;font-size:13px;font-weight:600}.comment-form-tab-btn-active{color:var(--text-primary);border-bottom:2px solid var(--primary);margin-bottom:-6px}.comment-form-tab-btn-inactive{color:var(--text-muted)}.comment-form-tab-btn-inactive:hover{color:var(--text-secondary)}.cmt{background:var(--bg-secondary);flex-direction:column;flex:1;min-height:0;display:flex}.cmt-head{border-bottom:1px solid var(--border-weak);background:var(--bg-secondary);flex-shrink:0;padding:10px 12px 8px}.cmt-title{color:var(--text-primary);align-items:center;gap:7px;font-size:13px;font-weight:700;display:flex}.cmt-total{color:var(--text-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px;font-weight:600}.cmt-filters{gap:4px;margin-top:8px;display:flex}.cmt-filter{border-radius:var(--radius-round);color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.cmt-filter:hover:not(:disabled){color:var(--text-primary);background:var(--bg-tertiary)}.cmt-filter:disabled{opacity:.4;cursor:default}.cmt-filter:focus-visible{box-shadow:var(--ring);outline:none}.cmt-filter-active{color:var(--text-primary);background:var(--accent-subtle);border-color:var(--primary)}.cmt-filter-count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:10px}.cmt-filter-active .cmt-filter-count{color:var(--primary)}.cmt-list{flex-direction:column;flex:1;gap:8px;min-height:0;margin:0;padding:8px;list-style:none;display:flex;overflow-y:auto}.cmt-empty{text-align:center;color:var(--text-muted);padding:24px 8px;font-size:12px}.cmt-card{border:1px solid var(--border-normal);border-left:2px solid var(--border-normal);border-radius:var(--radius-md);background:var(--bg-primary);flex-direction:column;gap:7px;padding:9px 11px;display:flex}.cmt-card-open{border-left-color:var(--feedback-warning-border)}.cmt-card-replied{border-left-color:var(--primary)}.cmt-card-resolved{border-left-color:var(--feedback-success-border);opacity:.72}.cmt-card-top{align-items:center;gap:7px;display:flex}.cmt-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.cmt-dot-open{background:var(--feedback-warning-border)}.cmt-dot-replied{background:var(--primary)}.cmt-dot-resolved{background:var(--feedback-success-border)}.cmt-loc{cursor:pointer;background:0 0;border:none;align-items:baseline;gap:2px;min-width:0;padding:0;display:inline-flex}.cmt-loc:hover .cmt-loc-file{color:var(--primary);text-decoration:underline}.cmt-loc:focus-visible{outline:none}.cmt-loc:focus-visible .cmt-loc-file{color:var(--primary)}.cmt-loc-file{font-family:var(--font-mono);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-size:11px;font-weight:700;overflow:hidden}.cmt-loc-line{font-family:var(--font-mono);color:var(--text-muted);font-size:11px}.cmt-time{color:var(--text-muted);white-space:nowrap;flex-shrink:0;margin-left:auto;font-size:10px}.cmt-codeline{text-align:left;border-radius:var(--radius-xs);background:var(--bg-secondary);cursor:pointer;border:none;width:100%;padding:4px 7px;display:block;overflow:hidden}.cmt-codeline code{font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;font-size:11px}.cmt-codeline:hover code{color:var(--text-secondary)}.cmt-body{color:var(--text-primary);white-space:pre-wrap;word-break:break-word;font-size:12.5px;line-height:1.45}.cmt-actions{align-items:center;gap:4px;display:flex}.cmt-act{border-radius:var(--radius-sm);height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:4px;padding:0 7px;font-size:11px;font-weight:600;display:inline-flex}.cmt-act:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.cmt-act:disabled{opacity:.45;cursor:default}.cmt-act:focus-visible{box-shadow:var(--ring);outline:none}.cmt-act-resolved{color:var(--feedback-success-text)}.cmt-act-del{margin-left:auto}.cmt-act-del:hover{background:var(--feedback-danger-bg);color:var(--feedback-danger-text)}.cmt-act-danger{color:var(--feedback-danger-text);background:var(--feedback-danger-bg)}.cmt-act-primary{color:var(--bg-primary);background:var(--primary);border-color:var(--primary)}.cmt-act-primary:hover:not(:disabled){background:var(--primary-hover);color:var(--bg-primary)}.cmt-confirm{align-items:center;gap:4px;margin-left:auto;display:inline-flex}.cmt-thread-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-self:flex-start;align-items:center;gap:4px;padding:0;font-size:11px;font-weight:600;display:inline-flex}.cmt-thread-toggle:hover{color:var(--primary)}.cmt-chev{transition:transform var(--transition-fast)}.cmt-chev-open{transform:rotate(90deg)}.cmt-replies{border-left:2px solid var(--border-weak);flex-direction:column;gap:6px;margin:0;padding:0 0 0 9px;list-style:none;display:flex}.cmt-reply{flex-direction:column;gap:3px;display:flex}.cmt-reply-head{align-items:center;gap:6px;display:flex}.cmt-reply-who{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;align-items:center;gap:3px;font-size:10px;font-weight:700;display:inline-flex}.cmt-reply-who-agent{color:var(--primary)}.cmt-reply-act{border-radius:var(--radius-xs);width:18px;height:18px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.cmt-reply-act:hover{background:var(--bg-tertiary);color:var(--text-primary)}.cmt-reply-act.cmt-act-del{margin-left:0}.cmt-reply-act.cmt-act-del:hover{background:var(--feedback-danger-bg);color:var(--feedback-danger-text)}.cmt-reply-body{color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.4}.cmt-composer{flex-direction:column;gap:6px;display:flex}.cmt-composer-input{resize:vertical;border:1px solid var(--border-normal);border-radius:var(--radius-sm);background:var(--bg-secondary);width:100%;min-height:46px;color:var(--text-primary);font-family:var(--font-sans);padding:6px 8px;font-size:12px;line-height:1.4}.cmt-composer-input:focus-visible{border-color:var(--primary);box-shadow:var(--ring);outline:none}.cmt-composer-actions{justify-content:flex-end;gap:6px;display:flex}.comment-delete-confirm{align-items:center;gap:4px;display:flex}.comment-delete-confirm-yes:hover{background:#bf616a33!important}.comment-bubble-edit:focus-visible,.comment-bubble-delete:focus-visible{opacity:1;outline:2px solid var(--primary);outline-offset:1px}.comment-bubble-footer button:focus-visible,button:focus-visible,a:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.binary-diff-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:12px 20px;font-size:13px;font-weight:600;display:flex}.binary-diff-name{font-family:var(--font-mono)}.binary-diff-body{background:var(--bg-primary);padding:30px}.binary-diff-message{text-align:center;color:var(--text-muted);padding:40px;font-size:14px;font-weight:500}.image-preview{justify-content:center;display:flex}.image-preview-compare{gap:30px}.image-preview-panel{flex-direction:column;flex:1;align-items:center;gap:10px;min-width:0;max-width:50%;display:flex}.image-preview:not(.image-preview-compare) .image-preview-panel{max-width:80%}.image-preview-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:12px;font-weight:700}.image-preview-label-added{color:var(--success)}.image-preview-label-deleted{color:var(--danger)}.image-preview-img{border:1px solid var(--border-color);max-width:100%;max-height:500px;box-shadow:var(--shadow-md);background:repeating-conic-gradient(#0000000d 0% 25%,#0000 0% 50%) 50%/16px 16px;border-radius:8px}.image-preview-deleted{opacity:.5}.loading,.error,.empty-state{min-height:60vh;color:var(--text-muted);justify-content:center;align-items:center;font-size:16px;font-weight:500;display:flex}.error{color:var(--danger)}.ft{min-height:0;font-size:13px;font-family:var(--font-sans);flex:0 auto;overflow-y:auto}.ft-search{border-bottom:1px solid var(--border-weak);background:var(--bg-secondary);align-items:center;gap:10px;padding:14px 16px;display:flex}.sidebar-collapsed .ft-search{border-bottom:none;justify-content:center;padding:14px 8px}.ft-search-wrapper{flex:1;align-items:center;min-width:0;display:flex;position:relative}.ft-search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:12px}.ft-search-input{border:1px solid var(--border-normal);border-radius:var(--radius-md);background:var(--bg-primary);width:100%;color:var(--text-primary);outline:none;padding:8px 12px 8px 36px;font-size:13px;font-weight:500}.ft-search-input:focus{border-color:var(--border-strong);box-shadow:0 0 0 3px var(--accent-subtle)}.ft-list{margin:0;padding:0;list-style:none}.ft-root{padding:8px 0}.ft-row{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius-sm);align-items:center;gap:8px;min-height:36px;margin:1px 6px;padding:6px 16px;display:flex}.ft-row:hover{background:var(--bg-tertiary);color:var(--text-primary)}.ft-icon{flex-shrink:0}.ft-folder-icon{color:var(--primary)}.icon-modified{color:var(--text-muted)}.icon-viewed,.icon-added{color:var(--feedback-success-border)}.icon-deleted{color:var(--feedback-danger-border)}.icon-renamed{color:var(--accent)}.icon-untracked{color:var(--text-muted)}.ft-chevron{color:var(--text-muted);transition:transform var(--transition-fast);flex-shrink:0}.ft-chevron-expanded{transform:rotate(90deg)}.ft-dir-name{color:var(--text-primary);letter-spacing:-.2px;font-weight:650}.ft-file-active{font-weight:700;background:var(--accent-subtle)!important;border-left:3px solid var(--primary)!important;border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-top-right-radius:var(--radius-sm)!important;border-bottom-right-radius:var(--radius-sm)!important;color:var(--primary)!important}.ft-file-viewed .ft-file-name{color:var(--text-muted)}.ft-file-name{text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);flex:1;font-size:12px;overflow:hidden}.ft-comment-count{color:var(--feedback-warning-text);background:var(--feedback-warning-bg);border-radius:var(--radius-round);border:1px solid var(--feedback-warning-border);flex-shrink:0;align-items:center;gap:4px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:700;display:flex}.ct-wrapper{height:var(--comment-panel-height,220px);border-top:1px solid var(--border-color);flex-direction:column;display:flex;overflow:hidden}.ct-resize-handle{cursor:row-resize;border-top:1px solid var(--border-color);z-index:2;background:0 0;flex-shrink:0;height:6px;transition:background .15s;position:relative}.ct-resize-handle:hover,.ct-resize-handle:active{background:var(--border-focus)}file-tree,.ft-pierre-tree{--trees-theme-sidebar-bg:var(--bg-secondary);--trees-theme-sidebar-fg:var(--text-primary);--trees-theme-sidebar-header-fg:var(--text-muted);--trees-theme-list-hover-bg:var(--bg-tertiary);--trees-theme-list-active-selection-fg:var(--text-primary);--trees-theme-list-active-selection-bg:#81a1c133;--trees-theme-focus-ring:var(--border-focus);--trees-theme-input-bg:var(--bg-primary);--trees-theme-sidebar-border:var(--border-color);--trees-theme-input-border:var(--border-color);--trees-theme-git-added-fg:var(--success);--trees-theme-git-modified-fg:var(--text-muted);--trees-theme-git-deleted-fg:var(--danger);--trees-font-family-override:var(--font-sans);height:100%}.skeleton-app{pointer-events:none;-webkit-user-select:none;user-select:none}.skeleton-item{background:var(--bg-tertiary);border-radius:4px;position:relative;overflow:hidden}.skeleton-toolbar{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;height:60px;padding:0 20px;display:flex}.skeleton-logo{width:120px;height:24px}.skeleton-stats{width:250px;height:20px;margin-left:40px}.skeleton-actions{border-radius:6px;width:300px;height:32px}.skeleton-sidebar{gap:16px;padding:16px 0}.skeleton-search{background:var(--bg-tertiary);border-radius:8px;height:32px;margin:0 16px;position:relative;overflow:hidden}.skeleton-tree-nodes{flex-direction:column;gap:12px;padding:0 16px;display:flex}.skeleton-tree-node{align-items:center;gap:8px;height:24px;display:flex}.skeleton-node-icon{background:var(--bg-tertiary);border-radius:4px;width:16px;height:16px;position:relative;overflow:hidden}.skeleton-node-text{background:var(--bg-tertiary);border-radius:3px;height:14px;position:relative;overflow:hidden}.skeleton-main{padding:30px}.skeleton-card{border-color:var(--border-color)}.skeleton-card-header{background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:12px 20px;display:flex;position:relative;overflow:hidden}.skeleton-card-title{background:var(--border-color);border-radius:4px;height:16px;position:relative;overflow:hidden}.skeleton-card-badge{background:var(--border-color);border-radius:6px;width:70px;height:24px;position:relative;overflow:hidden}.skeleton-card-body{background:var(--bg-secondary);flex-direction:column;gap:8px;padding:20px;display:flex}.skeleton-code-line{background:var(--bg-tertiary);border-radius:3px;height:16px;position:relative;overflow:hidden}.skeleton-search:after,.skeleton-logo:after,.skeleton-stats:after,.skeleton-actions:after,.skeleton-node-icon:after,.skeleton-node-text:after,.skeleton-card-header:after,.skeleton-card-title:after,.skeleton-card-badge:after,.skeleton-code-line:after{content:"";background:linear-gradient(90deg,#fff0 0%,#ffffff0a 30%,#ffffff14 50%,#ffffff0a 70%,#fff0 100%);animation:1.6s ease-in-out infinite shimmer-swipe;position:absolute;inset:0;transform:translate(-100%)}@keyframes shimmer-swipe{to{transform:translate(100%)}}.markdown-body{word-break:break-word;overflow-wrap:anywhere}.markdown-body a{transition:color var(--transition-fast);text-decoration:underline;color:var(--primary)!important}.markdown-body a:hover{color:var(--primary-hover,var(--primary))!important}.markdown-body h1,.markdown-body h2,.markdown-body h3{color:var(--text-primary);margin-top:12px;margin-bottom:8px;font-weight:700;line-height:1.25}.markdown-body h1{border-bottom:1px solid var(--border-color);padding-bottom:4px;font-size:1.4em}.markdown-body h2{font-size:1.2em}.markdown-body h3{font-size:1.1em}.markdown-body p{color:var(--text-primary);margin-top:0;margin-bottom:8px;line-height:1.6}.markdown-body img{border:1px solid var(--border-color);border-radius:var(--radius-sm);max-width:100%;height:auto;margin:8px 0;display:block}.markdown-body code{font-family:var(--font-mono);background:var(--bg-primary);border:1px solid var(--border-color);color:var(--primary);border-radius:4px;padding:2px 6px;font-size:12px}.markdown-body pre{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;margin:8px 0;padding:12px 16px;line-height:1.5;overflow:auto}.markdown-body pre code{color:var(--text-primary);background:0 0;border:none;border-radius:0;padding:0}.markdown-body pre:has(code.language-suggestion){border-left:4px solid var(--accent);background:#81a1c10d}.markdown-body blockquote{color:var(--text-muted);border-left:4px solid var(--border-color);margin:8px 0;padding:0 12px;font-style:italic}.markdown-body ul,.markdown-body ol{margin-top:0;margin-bottom:8px;padding-left:20px}.markdown-body ul{list-style-type:disc}.markdown-body ol{list-style-type:decimal}.markdown-body li{margin:4px 0;line-height:1.5}.markdown-body li.task-list-item{align-items:center;margin-left:-20px;list-style-type:none;display:flex}[data-selected-line]{background-color:#ebba001f!important}[data-column-number][data-selected-line]{background-color:#ebba002e!important;border-right:2px solid #ebba0080!important}[data-selected-line][data-hovered]{background-color:#ebba0029!important}.markdown-body pre{border:1px solid var(--border-color);border-radius:8px;margin:12px 0;padding:12px 16px;overflow-x:auto;background:var(--bg-primary)!important}.markdown-body code{font-family:var(--font-mono);color:var(--text-primary);background:0 0;border-radius:0;padding:0;font-size:13px;line-height:1.5}.markdown-body p>code,.markdown-body li>code{background:var(--bg-primary);border:1px solid var(--border-color);color:var(--primary-hover);white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;border-radius:4px;padding:2px 6px;font-size:12.5px}.hljs-comment,.hljs-quote{color:var(--text-muted);font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:var(--accent);font-weight:600}.hljs-number,.hljs-literal,.hljs-variable,.hljs-template-variable,.hljs-tag .hljs-attr{color:var(--warning)}.hljs-string,.hljs-doctag,.hljs-regexp{color:var(--success)}.hljs-title,.hljs-section,.hljs-selector-id,.hljs-title.class_,.hljs-title.function_{color:var(--border-focus)}.hljs-built_in,.hljs-type,.hljs-symbol,.hljs-bullet,.hljs-attribute,.hljs-meta{color:var(--primary)}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.markdown-body pre:has(code.language-suggestion){display:none!important}.markdown-body img{border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:6px;margin:8px 0;display:block;max-width:100%!important;height:auto!important}.symbol-flash{animation:1.2s ease-out symbolFlash}@keyframes symbolFlash{0%{box-shadow:0 0 0 2px var(--primary-hover)}to{box-shadow:0 0 #0000}}.searchpalette{width:640px;max-width:calc(100vw - var(--space-8));transition:opacity var(--transition-fast), transform var(--transition-smooth), width var(--transition-smooth)}.searchpalette.searchpalette--split{width:min(960px, calc(100vw - var(--space-8)))}.searchpalette-header{border-bottom:1px solid var(--border-color);flex-direction:column;gap:9px;padding:11px 12px 10px;display:flex}.searchpalette-input-row{align-items:center;gap:9px;display:flex}.searchpalette-search-icon{color:var(--text-muted);flex-shrink:0}.searchpalette-input{min-width:0;color:var(--text-primary);font-size:14px;font-family:var(--font-sans);background:0 0;border:none;outline:none;flex:1;padding:2px 0}.searchpalette-input::placeholder{color:var(--text-muted)}.searchpalette-spinner{color:var(--text-muted);flex-shrink:0}.searchpalette-clear{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:center;padding:2px;display:flex}.searchpalette-clear:hover{color:var(--text-primary);background:var(--bg-tertiary)}.searchpalette-count{font-size:11px;font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;flex-shrink:0;margin-left:2px}.searchpalette-controls{align-items:center;gap:8px;display:flex}.searchpalette-scopes{background:var(--bg-secondary);border:1px solid var(--border-weak);border-radius:var(--radius-round);align-items:center;gap:3px;padding:2px;display:flex}.searchpalette-scope{border-radius:var(--radius-round);color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;align-items:center;gap:5px;padding:3px 11px;font-size:11px;font-weight:600;display:inline-flex}.searchpalette-scope:hover{color:var(--text-primary)}.searchpalette-scope:focus-visible{box-shadow:var(--ring);outline:none}.searchpalette-scope.is-active{color:var(--text-primary);background:var(--accent-subtle)}.searchpalette-toggles{align-items:center;gap:6px;margin-left:auto;display:flex}.searchpalette-toggle{border:1px solid var(--border-weak);border-radius:var(--radius-sm);background:var(--bg-secondary);min-width:26px;height:24px;color:var(--text-muted);font-size:11px;font-weight:600;font-family:var(--font-mono);cursor:pointer;transition:color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);justify-content:center;align-items:center;gap:4px;padding:0 8px;display:inline-flex}.searchpalette-toggle:hover{color:var(--text-primary);background:var(--bg-tertiary)}.searchpalette-toggle:focus-visible{box-shadow:var(--ring);outline:none}.searchpalette-toggle.is-active{color:var(--text-primary);background:var(--accent-subtle);border-color:var(--primary)}.searchpalette-note{color:var(--feedback-danger-text);font-size:11px;font-family:var(--font-mono)}.searchpalette-body{flex:auto;min-height:0;max-height:62vh;display:flex;overflow:hidden}.searchpalette--split .searchpalette-body{height:64vh;max-height:64vh}.searchpalette-list{flex:1;min-width:0;padding:0;overflow-y:auto}.searchpalette--split .searchpalette-list{border-right:1px solid var(--border-color);flex:0 0 340px}.searchpalette-list::-webkit-scrollbar{width:6px}.searchpalette-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.searchpalette-state{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:36px 16px;font-size:13px;display:flex}.searchpalette-state--error{color:var(--feedback-danger-text)}.searchpalette-state-detail{color:var(--text-muted);font-size:11.5px}.searchpalette-retry{border:1px solid var(--border-normal);border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;margin-top:4px;padding:4px 12px;font-size:12px}.searchpalette-row{border-left:3px solid #0000;border-bottom:1px solid var(--border-weak);cursor:pointer;transition:background var(--transition-fast), border-left-color var(--transition-fast);border-radius:0;align-items:flex-start;gap:12px;padding:9px 14px;scroll-margin:0;display:flex}.searchpalette-row:hover{background:var(--bg-secondary)}.searchpalette-row.is-focused{background:var(--bg-tertiary);border-left-color:var(--primary)}.searchpalette-row.is-indiff{border-left-color:var(--accent-subtle)}.searchpalette-row.is-indiff.is-focused{border-left-color:var(--primary)}.searchpalette-row:last-child{border-bottom:none}.searchpalette-tile{border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid var(--border-weak);width:24px;height:24px;color:var(--text-muted);font-family:var(--font-mono);flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:13px;font-weight:700;display:flex}.searchpalette-tile--file{color:var(--primary)}.searchpalette-tile--text{color:var(--text-muted)}.searchpalette-tile--symbol{color:var(--accent)}.searchpalette-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex;overflow:hidden}.searchpalette-primary{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;display:block;overflow:hidden}.searchpalette-code{font-family:var(--font-mono);font-weight:500}.searchpalette-secondary{font-size:11px;font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;display:flex;overflow:hidden}.searchpalette-crumb{color:var(--text-muted);opacity:.7;text-overflow:ellipsis;overflow:hidden}.searchpalette-sigtail{font-weight:400;font-family:var(--font-mono);color:var(--text-muted);margin-left:8px;font-size:11.5px}.searchpalette-mark{color:var(--accent);background:0 0;font-weight:700}.searchpalette-rail{flex-shrink:0;align-items:center;gap:6px;margin-top:2px;display:flex}.searchpalette-pill{font-size:9.5px;font-weight:700;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.4px;border-radius:var(--radius-sm);padding:1px 6px}.searchpalette-pill--diff{color:var(--accent);background:var(--accent-subtle)}.searchpalette-git{width:16px;height:16px;font-size:10px;font-weight:700;font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid var(--border-weak);color:var(--text-muted);justify-content:center;align-items:center;display:inline-flex}.searchpalette-git--modified{color:var(--accent)}.searchpalette-git--deleted{color:var(--feedback-danger-text)}.searchpalette-kind-badge{font-size:10px;font-weight:600;font-family:var(--font-mono);color:var(--text-muted);flex-shrink:0;align-self:center}.searchpalette-preview{background:var(--bg-primary,var(--bg-secondary));flex-direction:column;flex:1;min-width:0;display:flex}.searchpalette-preview-head{border-bottom:1px solid var(--border-color);color:var(--text-secondary);font-size:12px;font-family:var(--font-mono);align-items:center;gap:7px;padding:8px 10px;display:flex}.searchpalette-preview-path{text-overflow:ellipsis;white-space:nowrap;text-align:left;direction:rtl;flex:1;min-width:0;overflow:hidden}.searchpalette-preview-body{flex:1;min-height:0;padding:6px 2px;overflow:auto}.searchpalette-foot{border-top:1px solid var(--border-color);color:var(--text-muted);align-items:center;gap:14px;padding:7px 12px;font-size:11px;display:flex}.searchpalette-foot kbd{font-family:var(--font-mono);border-radius:var(--radius-xs);background:var(--bg-tertiary);border:1px solid var(--border-weak);color:var(--text-secondary);margin-right:4px;padding:1px 4px;font-size:10px}@media (prefers-reduced-motion:reduce){.searchpalette{transition:none}}.vim-status-bar{background:rgba(var(--bg-secondary-rgb,36, 41, 51), .78);-webkit-backdrop-filter:blur(16px)saturate(180%);border:1px solid var(--border-normal);border-radius:var(--radius-round);box-shadow:var(--shadow-lg), inset 0 1px 0 0 #ffffff0d;z-index:250;font-family:var(--font-sans);color:var(--text-primary);animation:status-bar-fade-in var(--transition-bounce);align-items:center;gap:12px;padding:6px 14px;font-size:12px;display:flex;position:fixed;bottom:24px;right:24px}@keyframes status-bar-fade-in{0%{opacity:0;transform:translateY(16px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.vim-mode-badge{font-family:var(--font-mono);border-radius:var(--radius-round);letter-spacing:.6px;text-shadow:0 1px 1px #0000001a;padding:3px 10px;font-size:10px;font-weight:800;box-shadow:inset 0 1px #ffffff1a}.vim-mode-normal{background:var(--feedback-success-border);color:var(--bg-primary)}.vim-mode-insert{background:var(--primary);color:var(--bg-primary)}.vim-status-content{border-right:1px solid var(--border-weak);align-items:center;gap:8px;max-width:280px;padding-right:12px;display:flex}.vim-status-icon{color:var(--text-muted);flex-shrink:0}.vim-status-file{white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.vim-file-dir{color:var(--text-muted);font-family:var(--font-mono);font-size:10px}.vim-file-name{color:var(--text-secondary);font-weight:600}.vim-status-placeholder{color:var(--text-muted);font-size:11px;font-style:italic}.vim-status-help-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:6px;padding:3px 8px;font-size:11px;font-weight:600;display:flex}.vim-status-help-btn:hover{color:var(--primary);background:var(--accent-subtle)}.shortcuts-overlay{-webkit-backdrop-filter:blur(8px);z-index:400;animation:shortcuts-fade-in var(--transition-fast);background:#0000008c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}@keyframes shortcuts-fade-in{0%{opacity:0}to{opacity:1}}.shortcuts-modal{width:50vw}.shortcuts-header{border-bottom:1px solid var(--border-weak);background:var(--bg-secondary);justify-content:space-between;align-items:center;padding:16px 22px;display:flex}.shortcuts-header-title{color:var(--text-primary);align-items:center;gap:10px;display:flex}.shortcuts-header-title h2{letter-spacing:-.4px;margin:0;font-size:16px;font-weight:700}.shortcuts-icon{color:var(--primary)}.shortcuts-close-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:flex}.shortcuts-close-btn:hover{color:var(--text-primary);background:var(--bg-tertiary)}.shortcuts-body{flex-direction:column;flex:1;gap:16px;padding:22px;display:flex;overflow-y:auto}.shortcuts-intro{color:var(--text-secondary);background:var(--accent-subtle);border-left:3px solid var(--primary);padding:12px 16px;font-size:13px;line-height:1.5}.shortcuts-grid{grid-template-columns:repeat(2,1fr);gap:18px;display:grid}@media (width<=600px){.shortcuts-grid{grid-template-columns:1fr}}.shortcuts-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:14px}.shortcuts-section-title{color:var(--primary-hover);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:8px;margin-top:0;margin-bottom:12px;font-size:12.5px;font-weight:700;display:flex}.shortcuts-list{flex-direction:column;gap:8px;display:flex}.shortcuts-row{border-bottom:1px dashed #ffffff0a;justify-content:space-between;align-items:center;padding-bottom:6px;font-size:12.5px;display:flex}[data-theme=github-light] .shortcuts-row{border-bottom:1px dashed #0000000d}.shortcuts-desc{color:var(--text-secondary)}.shortcuts-keys{align-items:center;gap:3px;display:flex}.kbd-plus{color:var(--text-muted);font-size:10px}.vim-kbd{font-family:var(--font-mono);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-color);border-bottom:2px solid #00000040;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:600;line-height:1;display:inline-block;box-shadow:0 1px #ffffff0d}[data-theme=github-light] .vim-kbd{border-bottom:2px solid #00000026;box-shadow:0 1px #0000000d}.vim-kbd-small{font-family:var(--font-mono);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-color);border-bottom:2px solid #00000040;border-radius:3px;margin-left:2px;padding:1px 4px;font-size:9px;font-weight:600;line-height:1;display:inline-block}[data-theme=github-light] .vim-kbd-small{border-bottom:2px solid #00000026}.shortcuts-footer{border-top:1px solid var(--border-color);background:var(--bg-secondary);text-align:center;color:var(--text-muted);padding:12px 20px;font-size:11.5px}@keyframes lineFlash{0%{background-color:#ebba0066}to{background-color:#0000}}.file-diff-card-header{top:var(--toolbar-height);z-index:10;background:var(--bg-secondary);border-bottom:1px solid var(--border-weak);-webkit-user-select:none;user-select:none;border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);justify-content:space-between;align-items:center;padding:14px 20px;display:flex;position:sticky}.file-diff-card-header:hover{background:var(--bg-tertiary);cursor:pointer}.file-diff-collapsed .file-diff-card-header{border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);border-bottom:none}.file-diff-card-body{border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);overflow:hidden}.file-diff-header-left{align-items:center;gap:12px;min-width:0;display:flex}.file-diff-collapse-indicator{color:var(--text-muted);border-radius:var(--radius-sm);justify-content:center;align-items:center;width:20px;height:20px;display:flex}.file-diff-card-header:hover .file-diff-collapse-indicator{background:var(--accent-subtle);color:var(--primary)}.file-diff-name{font-size:14px;font-weight:700;font-family:var(--font-mono);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.3px;overflow:hidden}.file-diff-header-right{align-items:center;gap:12px;display:flex}.diff-status-badge{border-radius:var(--radius-round);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:700;font-family:var(--font-sans);padding:2px 8px;box-shadow:inset 0 1px #ffffff0d}.diff-status-new{background:var(--feedback-success-bg);color:var(--feedback-success-text);border:1px solid var(--feedback-success-border)}.diff-status-deleted{background:var(--feedback-danger-bg);color:var(--feedback-danger-text);border:1px solid var(--feedback-danger-border)}.diff-status-renamed{background:var(--accent-subtle);color:var(--accent);border:1px solid var(--accent)}.diff-status-modified{background:var(--feedback-warning-bg);color:var(--feedback-warning-text);border:1px solid var(--feedback-warning-border)}.file-diff-edit-btn{background:var(--bg-tertiary);border:1px solid var(--border-normal);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:6px;padding:5px 12px;font-size:11px;font-weight:600;display:inline-flex}.file-diff-edit-btn:hover:not(:disabled){background:var(--bg-secondary);color:var(--primary);border-color:var(--primary)}.file-diff-edit-btn:active:not(:disabled){background:var(--bg-tertiary)}.file-diff-edit-btn:disabled{opacity:.45;cursor:not-allowed}.file-diff-comment-badge{border-radius:var(--radius-round);background:var(--accent-subtle);color:var(--accent);border:1px solid var(--accent);font-size:10px;font-weight:700;font-family:var(--font-sans);align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.file-diff-selection-badge{border-radius:var(--radius-round);background:var(--feedback-warning-bg);color:var(--feedback-warning-text);border:1px solid var(--feedback-warning-border);font-size:10px;font-weight:700;font-family:var(--font-sans);padding:2px 8px;animation:.2s ease-out badge-flash}.file-diff-permalink-flash{border-radius:var(--radius-round);background:var(--feedback-success-bg);color:var(--feedback-success-text);border:1px solid var(--feedback-success-border);font-size:10px;font-weight:700;font-family:var(--font-mono);padding:2px 8px;animation:.2s ease-out badge-flash}@keyframes badge-flash{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.spin{animation:.8s linear infinite diffing-spin}.merge-conflict-banner{border-radius:var(--radius-md);background:var(--feedback-warning-bg);color:var(--feedback-warning-text);border:1px solid var(--feedback-warning-border);font-family:var(--font-sans);flex-direction:column;gap:4px;margin:12px 16px 0;padding:12px 16px;display:flex}.merge-conflict-banner strong{font-size:14px;font-weight:700}.merge-conflict-card{border:1px solid var(--feedback-warning-border);border-radius:var(--radius-md);background:var(--bg-secondary);margin:12px 16px;overflow:hidden}.merge-conflict-card-loading,.merge-conflict-card-error{color:var(--text-secondary);font-family:var(--font-sans);align-items:center;gap:8px;padding:12px 16px;font-size:13px;display:flex}.merge-conflict-card-error{color:var(--feedback-danger-text);background:var(--feedback-danger-bg);border-top:1px solid var(--feedback-danger-border)}.merge-conflict-header{background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.merge-conflict-title{font-family:var(--font-mono);color:var(--text-primary);align-items:center;gap:8px;min-width:0;font-size:13px;font-weight:600;display:flex}.merge-conflict-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.merge-conflict-actions{align-items:center;gap:10px;display:flex}.merge-conflict-status{color:var(--text-secondary);font-size:11px;font-weight:600;font-family:var(--font-sans)}.merge-conflict-buttons{gap:4px;padding:2px 6px;display:inline-flex}.merge-conflict-btn{border-radius:var(--radius-sm);border:1px solid var(--border-normal);background:var(--bg-tertiary);color:var(--text-secondary);font-family:var(--font-sans);cursor:pointer;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.merge-conflict-btn:hover{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--primary)}.merge-conflict-btn-current:hover{border-color:var(--feedback-success-border);color:var(--feedback-success-text)}.merge-conflict-btn-incoming:hover{border-color:var(--feedback-danger-border);color:var(--feedback-danger-text)}.file-diff-hunk-actions{background:var(--bg-tertiary);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);font-family:var(--font-sans);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 20px;font-size:11px;display:flex}.file-diff-hunk-actions-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:10px;font-weight:700}.file-diff-hunk-actions-buttons{flex-wrap:wrap;gap:4px;display:flex}.file-diff-hunk-revert-btn{border-radius:var(--radius-sm);border:1px solid var(--border-normal);background:var(--bg-secondary);color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.file-diff-hunk-revert-btn:hover:not(:disabled){border-color:var(--feedback-warning-border);color:var(--feedback-warning-text);background:var(--feedback-warning-bg)}.file-diff-hunk-revert-btn:disabled{opacity:.45;cursor:not-allowed}.file-diff-hunk-error{color:var(--feedback-danger-text);background:var(--feedback-danger-bg);border:1px solid var(--feedback-danger-border);border-radius:var(--radius-sm);font-family:var(--font-mono);align-items:center;gap:4px;padding:3px 8px;display:inline-flex}@keyframes diffing-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.settings-section-label{text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);border-top:1px solid var(--border-color);margin-top:4px;padding:10px 14px 4px;font-size:10px;font-weight:700}.settings-section-label:first-child{border-top:none;margin-top:0}.agent-waiting-dot{width:7px;height:7px;margin-right:var(--space-1,4px);background:var(--success);box-shadow:0 0 0 0 var(--success);vertical-align:middle;border-radius:50%;animation:1.6s ease-out infinite agent-waiting-pulse;display:inline-block}@keyframes agent-waiting-pulse{0%{box-shadow:0 0 #a3be8c80}70%{box-shadow:0 0 0 5px #a3be8c00}to{box-shadow:0 0 #a3be8c00}}.agent-toast{z-index:1200;background:var(--bg-secondary);border:1px solid var(--border-strong);border-radius:var(--radius-md);max-width:380px;box-shadow:var(--shadow-lg);align-items:stretch;animation:.28s cubic-bezier(.16,1,.3,1) agent-toast-in;display:flex;position:fixed;bottom:64px;right:24px;overflow:hidden}@keyframes agent-toast-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.agent-toast-body{text-align:left;cursor:pointer;color:var(--text-primary);background:0 0;border:none;flex:1;align-items:flex-start;gap:10px;min-width:0;padding:12px 14px;display:flex}.agent-toast-body:hover{background:var(--accent-subtle)}.agent-toast-icon{background:var(--accent-subtle);width:28px;height:28px;color:var(--primary-hover);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.agent-toast-text{flex-direction:column;gap:2px;min-width:0;display:flex}.agent-toast-title{color:var(--text-primary);font-size:13px;font-weight:600}.agent-toast-file{font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.agent-toast-preview{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;display:-webkit-box;overflow:hidden}.agent-toast-close{border:none;border-left:1px solid var(--border-weak);color:var(--text-muted);cursor:pointer;background:0 0;align-items:flex-start;padding:10px;display:flex}.agent-toast-close:hover{color:var(--text-primary);background:var(--bg-tertiary)}.refresh-bar{z-index:1300;background:linear-gradient(90deg, transparent, var(--primary-hover), transparent);background-repeat:no-repeat;background-size:40% 100%;height:2px;animation:1s linear infinite refresh-bar-slide;position:fixed;top:0;left:0;right:0}@keyframes refresh-bar-slide{0%{background-position:-40% 0}to{background-position:140% 0}}.ui-modal-backdrop{z-index:400;-webkit-backdrop-filter:blur(6px);transition:opacity var(--transition-fast);background:#0000008c;position:fixed;inset:0}.ui-modal-backdrop[data-starting-style],.ui-modal-backdrop[data-ending-style]{opacity:0}.ui-modal-popup{z-index:401;max-width:calc(100vw - var(--space-8));background:var(--bg-secondary);border:1px solid var(--border-normal);border-radius:var(--radius-lg);max-height:90vh;box-shadow:var(--shadow-overlay);transition:opacity var(--transition-fast), transform var(--transition-smooth);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.ui-modal-popup:focus-visible{outline:none}.ui-modal-popup[data-starting-style],.ui-modal-popup[data-ending-style]{opacity:0;transform:translate(-50%,-46%)scale(.97)}.ui-modal-popup.ui-modal--palette{top:12vh;transform:translate(-50%)}.ui-modal-popup.ui-modal--palette[data-starting-style],.ui-modal-popup.ui-modal--palette[data-ending-style]{opacity:0;transform:translate(-50%,-10px)scale(.98)}.ui-tooltip{z-index:600;padding:var(--space-1) var(--space-2);font-family:var(--font-sans);font-size:var(--text-xs);font-weight:var(--font-weight-medium);line-height:var(--leading-tight);color:var(--text-primary);background:var(--bg-tertiary);border:1px solid var(--border-normal);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);transition:opacity var(--transition-fast), transform var(--transition-fast)}.ui-tooltip[data-starting-style],.ui-tooltip[data-ending-style]{opacity:0;transform:scale(.96)}.ui-popover-positioner{z-index:500}.ui-popover{z-index:420;background:var(--bg-secondary);border:1px solid var(--border-normal);border-radius:var(--radius-md);min-width:220px;box-shadow:var(--shadow-lg);transform-origin:var(--transform-origin);transition:opacity var(--transition-fast), transform var(--transition-fast)}.ui-popover:focus-visible{outline:none}.ui-popover[data-starting-style],.ui-popover[data-ending-style]{opacity:0;transform:scale(.97)}.popover-scroll{flex-direction:column;max-height:70vh;display:flex;overflow-y:auto}.theme-popover{min-width:240px}.settings-popover{min-width:280px}.send-review-popover{padding:0}.srp{flex-direction:column;width:420px;max-width:90vw;max-height:70vh;display:flex}.srp-head{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-weak);color:var(--text-primary);display:flex}.srp-title{font-size:.85rem;font-weight:600}.srp-count{color:var(--text-muted);background:var(--bg-tertiary);border-radius:var(--radius-round);margin-left:auto;padding:1px 8px;font-size:.72rem}.srp-list{padding:var(--space-1-5);gap:var(--space-1-5);flex-direction:column;flex:1;min-height:0;margin:0;list-style:none;display:flex;overflow-y:auto}.srp-item{border:1px solid var(--border-weak);border-radius:var(--radius-sm);padding:var(--space-2);background:var(--bg-primary)}.srp-item-top{align-items:center;gap:var(--space-2);display:flex}.srp-item-loc{align-items:baseline;gap:2px;min-width:0;display:flex;overflow:hidden}.srp-item-file{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;font-weight:600;overflow:hidden}.srp-item-line{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.72rem}.srp-item-resolved{text-transform:uppercase;letter-spacing:.04em;color:var(--feedback-success,var(--text-muted));font-size:.66rem}.srp-item-actions{flex-shrink:0;gap:2px;margin-left:auto;display:flex}.srp-icon-btn{border-radius:var(--radius-sm);width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.srp-icon-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.srp-icon-btn-danger:hover{color:var(--feedback-danger,#e06c75)}.srp-item-code{margin:var(--space-1) 0 var(--space-1) 0;background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;padding:2px 6px;font-size:.72rem;display:block;overflow:hidden}.srp-item-body{margin:var(--space-1) 0 0 0;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;font-size:.8rem}.srp-item-edit,.srp-general-input{width:100%;margin-top:var(--space-1);padding:var(--space-1-5) var(--space-2);font:inherit;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-normal);border-radius:var(--radius-sm);resize:vertical;box-sizing:border-box;font-size:.8rem}.srp-item-edit:focus,.srp-general-input:focus{border-color:var(--border-focus);outline:none}.srp-general{padding:var(--space-2) var(--space-3);border-top:1px solid var(--border-weak)}.srp-general-label{color:var(--text-secondary);font-size:.76rem;font-weight:600;display:block}.srp-optional{color:var(--text-muted);font-weight:400}.srp-empty{padding:var(--space-2) var(--space-3);color:var(--text-muted);border-top:1px solid var(--border-weak);margin:0;font-size:.78rem}.md-field{margin-top:var(--space-1)}.md-field .srp-general-input{margin-top:0}.md-field-preview{width:100%;min-height:62px;max-height:240px;padding:var(--space-1-5) var(--space-2);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-normal);border-radius:var(--radius-sm);box-sizing:border-box;font-size:.8rem;line-height:1.55;overflow-y:auto}.md-field-empty{color:var(--text-muted);font-style:italic}.srp-footer{justify-content:flex-end;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-top:1px solid var(--border-weak);display:flex}.settings-panel{gap:var(--space-0-5);padding:var(--space-1)}.theme-item{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-1-5) var(--space-2);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;text-align:left;background:0 0;border:none;display:flex}.theme-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.theme-item-active{background:var(--accent-subtle);color:var(--text-primary);font-weight:var(--font-weight-semibold)}.theme-swatches{gap:var(--space-1);flex-shrink:0;display:flex}.theme-swatch{border-radius:var(--radius-round);border:1px solid #ffffff1f;width:9px;height:9px}.ui-select-trigger{justify-content:space-between;align-items:center;gap:var(--space-2);min-width:130px;height:var(--control-height-sm);padding:0 var(--space-2);background:var(--bg-tertiary);border:1px solid var(--border-normal);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);display:inline-flex}.ui-select-trigger:hover{border-color:var(--border-strong)}.ui-select-trigger:focus-visible{box-shadow:var(--ring);outline:none}.ui-select-icon{color:var(--text-muted);flex-shrink:0;display:inline-flex}.ui-select-positioner{z-index:520}.ui-select-popup{background:var(--bg-secondary);border:1px solid var(--border-normal);border-radius:var(--radius-md);min-width:150px;box-shadow:var(--shadow-lg);padding:var(--space-1);max-height:40vh;transition:opacity var(--transition-fast), transform var(--transition-fast);overflow-y:auto}.ui-select-popup[data-starting-style],.ui-select-popup[data-ending-style]{opacity:0;transform:scale(.97)}.ui-select-item{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;display:flex}.ui-select-item[data-highlighted]{background:var(--bg-tertiary);color:var(--text-primary)}.ui-select-item[data-selected]{color:var(--text-primary);font-weight:var(--font-weight-medium)}.ui-select-indicator{color:var(--primary-hover);display:inline-flex}.settings-btn.icon-only{padding:0 var(--space-2)}.hunk-revert-modal{width:680px;max-width:90vw}.hunk-preview-intro{color:var(--text-secondary);margin-bottom:12px;font-size:13px;line-height:1.5}.hunk-preview-container{border:1px solid var(--border-normal);border-radius:var(--radius-md);background:var(--bg-primary);margin-bottom:16px;overflow:hidden}.hunk-preview-header{background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);color:var(--text-muted);font-size:11px;font-weight:600;font-family:var(--font-sans);justify-content:space-between;padding:8px 12px;display:flex}.hunk-preview-code{max-height:300px;font-family:var(--font-mono);padding:8px 0;font-size:12px;line-height:1.6;overflow-y:auto}.hunk-preview-line{white-space:pre-wrap;word-break:break-all;padding:1px 16px;display:flex}.hunk-preview-line-deletion{background:var(--feedback-danger-bg);border-left:3px solid var(--feedback-danger-border);color:var(--feedback-danger-text)}.hunk-preview-line-addition{background:var(--feedback-success-bg);border-left:3px solid var(--feedback-success-border);color:var(--feedback-success-text)}.hunk-preview-sign{-webkit-user-select:none;user-select:none;opacity:.8;flex-shrink:0;width:20px;font-weight:700}.hunk-preview-text{flex:1}.modal-footer{border-top:1px solid var(--border-weak);background:rgba(var(--bg-tertiary-rgb,29, 33, 41), .35);justify-content:flex-end;align-items:center;gap:12px;padding:16px 22px;display:flex}.hunk-revert-btn-primary{border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:var(--feedback-warning-border);border:1px solid var(--feedback-warning-border);color:var(--bg-primary);justify-content:center;align-items:center;padding:8px 16px;font-size:12px;font-weight:600;display:inline-flex;box-shadow:0 1px 2px #0000001a,inset 0 1px #ffffff1a}.hunk-revert-btn-primary:hover:not(:disabled){background:var(--feedback-warning-text);border-color:var(--feedback-warning-text);transform:translateY(-1px);box-shadow:0 0 12px #ebba0059}.hunk-revert-btn-primary:active:not(:disabled){box-shadow:none;transform:translateY(0)}.hunk-revert-btn-primary:disabled{opacity:.5;cursor:not-allowed}.hunk-revert-btn-secondary{border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:var(--bg-secondary);border:1px solid var(--border-normal);color:var(--text-secondary);justify-content:center;align-items:center;padding:8px 16px;font-size:12px;font-weight:600;display:inline-flex}.hunk-revert-btn-secondary:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-strong)}.hunk-revert-btn-secondary:active:not(:disabled){background:var(--bg-secondary)}.ui-modal-popup.theme-modal{border-radius:var(--radius-xl);background:var(--bg-secondary);border:1px solid var(--border-normal);width:620px;max-width:calc(100vw - 32px);max-height:80vh;box-shadow:var(--shadow-overlay);overflow:hidden}.theme-modal-content{outline:none;flex-direction:column;height:100%;display:flex}.theme-modal-header{border-bottom:1px solid var(--border-weak);background:rgba(var(--bg-secondary-rgb), .5);padding:20px 24px 14px}.theme-modal-title-row{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.theme-modal-title{letter-spacing:-.3px;color:var(--text-primary);font-size:16px;font-weight:700}.theme-modal-close-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-round);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:flex}.theme-modal-close-btn:hover{color:var(--text-primary);background:var(--bg-tertiary)}.theme-modal-search-wrapper{align-items:center;margin-bottom:16px;display:flex;position:relative}.theme-modal-search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:14px}.theme-modal-search-input{width:100%;height:40px;font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-normal);border-radius:var(--radius-md);transition:all var(--transition-fast);padding:0 40px;font-size:13px;box-shadow:inset 0 1px 2px #0000000d}.theme-modal-search-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 2px var(--accent-subtle);outline:none}.theme-modal-clear-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-round);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;right:12px}.theme-modal-clear-btn:hover{color:var(--text-primary);background:var(--bg-tertiary)}.theme-modal-filters{gap:8px;display:flex}.theme-filter-tab{font-family:var(--font-sans);border-radius:var(--radius-round);background:var(--bg-primary);border:1px solid var(--border-normal);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);align-items:center;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex}.theme-filter-tab:hover{color:var(--text-primary);border-color:var(--border-strong);background:var(--bg-tertiary)}.theme-filter-tab.active{background:var(--accent-subtle);border-color:var(--border-strong);color:var(--primary)}.theme-modal-list{background:rgba(var(--bg-secondary-rgb), .2);flex:1;max-height:420px;padding:16px 24px;overflow-y:auto}.theme-modal-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.theme-modal-card{border-radius:var(--radius-md);background:var(--bg-primary);border:1px solid var(--border-normal);cursor:pointer;text-align:left;transition:all var(--transition-fast);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.theme-modal-card:hover{background:var(--bg-tertiary);border-color:var(--border-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.theme-modal-card.focused{border-color:var(--border-focus);box-shadow:0 0 0 2.5px var(--accent-subtle);background:var(--bg-tertiary)}.theme-modal-card.active{border-color:var(--border-strong);background:rgba(var(--bg-secondary-rgb), .4)}.theme-card-info{flex-direction:column;gap:3px;display:flex}.theme-card-name{color:var(--text-primary);font-size:13px;font-weight:600}.theme-card-meta{display:flex}.theme-meta-tag{border-radius:var(--radius-xs);text-transform:uppercase;padding:1px 6px;font-size:10px;font-weight:600}.dark-tag{color:var(--text-muted);background:#00000040}.light-tag{color:var(--text-secondary);background:#fff6}.theme-card-right{align-items:center;gap:12px;display:flex}.theme-swatch{border-radius:var(--radius-round);border:1px solid #ffffff1a;width:12px;height:12px;display:inline-block;box-shadow:0 1px 2px #00000026}.theme-card-status{justify-content:center;align-items:center;width:16px;display:flex}.theme-check-icon{color:var(--primary);filter:drop-shadow(0 1px 2px #00000026)}.theme-modal-empty{flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:40px 0;display:flex}.theme-modal-empty-text{color:var(--text-muted);font-size:13px;font-weight:500}.theme-modal-footer{border-top:1px solid var(--border-weak);background:var(--bg-primary);justify-content:center;align-items:center;gap:20px;padding:12px 24px;display:flex}.theme-footer-item{color:var(--text-muted);align-items:center;gap:6px;font-size:11px;font-weight:500;display:flex}.theme-footer-item kbd{font-family:var(--font-mono);background:var(--bg-tertiary);border:1px solid var(--border-weak);border-radius:var(--radius-xs);color:var(--text-secondary);padding:2px 5px;font-size:9px;box-shadow:0 1px #0003}.font-picker-list{flex-direction:column;gap:2px;padding:8px;display:flex}.font-picker-item{border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast), border-color var(--transition-fast);text-align:left;background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;width:100%;padding:8px 12px;display:flex}.font-picker-item:hover,.font-picker-item.focused{background:var(--bg-tertiary);border-color:var(--border-weak)}.font-picker-item.active{background:var(--accent-subtle);border-color:var(--border-strong)}.font-picker-name{color:var(--text-primary);align-items:center;font-size:13px;line-height:1.4;display:flex}.font-picker-default-name{color:var(--text-secondary);font-family:var(--font-sans);font-style:italic}.font-picker-status{flex-shrink:0;justify-content:center;align-items:center;width:16px;display:flex}.hunk-history-section{border-top:1px solid var(--border-color);flex-direction:column;gap:20px;margin-top:24px;padding-top:20px;display:flex}.hunk-history-block{flex-direction:column;gap:10px;display:flex}.hunk-history-title{text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);align-items:center;gap:6px;margin:0;font-size:11px;font-weight:700;display:flex}.hunk-history-commits{flex-direction:column;gap:8px;display:flex}.hunk-history-commit-card{background:var(--bg-secondary);border:1px solid var(--border-color);transition:border-color var(--transition-fast), background var(--transition-fast);border-radius:6px;flex-direction:column;gap:6px;padding:10px 14px;display:flex}.hunk-history-commit-card:hover{border-color:var(--border-normal);background:var(--bg-tertiary)}.hunk-history-commit-header{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.hunk-history-commit-hash{font-family:var(--font-mono);color:var(--accent);background:var(--accent-subtle);letter-spacing:.2px;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:600}.hunk-history-commit-author{color:var(--text-secondary);align-items:center;gap:4px;font-size:11.5px;font-weight:500;display:inline-flex}.hunk-history-commit-date{color:var(--text-muted);align-items:center;gap:4px;font-size:11.5px;display:inline-flex}.hunk-history-commit-msg{color:var(--text-primary);font-size:13px;font-weight:500;line-height:1.4}.hunk-history-log{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:6px;flex-direction:column;display:flex;overflow:hidden}.hunk-history-log-row{border-bottom:1px solid var(--border-weak);transition:background var(--transition-fast);grid-template-columns:80px 1fr 120px 90px;align-items:center;gap:12px;padding:8px 14px;font-size:12px;display:grid}.hunk-history-log-row:hover{background:var(--bg-tertiary)}.hunk-history-log-row:last-child{border-bottom:none}.hunk-history-log-hash{font-family:var(--font-mono);color:var(--text-muted);font-weight:600}.hunk-history-log-msg{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.hunk-history-log-author{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.hunk-history-log-date{color:var(--text-muted);text-align:right}.hunk-history-loading,.hunk-history-error{color:var(--text-muted);border:1px dashed var(--border-color);background:#ffffff03;border-radius:6px;justify-content:center;align-items:center;gap:10px;padding:24px 16px;font-size:13px;display:flex}.toolbar-plans-btn{align-items:center;display:inline-flex;position:relative}.toolbar-plans-btn-pending{border-color:var(--primary);color:var(--primary)}.toolbar-plans-badge{border-radius:var(--radius-round);background:var(--primary);color:#fff;justify-content:center;align-items:center;min-width:16px;height:16px;margin-left:6px;padding:0 5px;font-size:10px;font-weight:700;display:inline-flex}.plan-app-toolbar{justify-content:space-between;align-items:center;display:flex}.plan-app-title{align-items:center;display:inline-flex}.plan-sidebar{padding:0;overflow-y:auto}.plan-main{padding:0}.plan-list{flex-direction:column;display:flex}.plan-list-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:12px 16px 8px;font-size:11px;font-weight:700}.plan-list-empty{color:var(--text-muted);padding:12px 16px;font-size:13px}.plan-list-item{cursor:pointer;transition:background var(--transition-fast);border-left:2px solid #0000;padding:10px 16px}.plan-list-item:hover{background:var(--bg-tertiary)}.plan-list-item-active{background:var(--accent-subtle);border-left-color:var(--primary)}.plan-list-item-top{align-items:center;gap:8px;display:flex}.plan-list-item-title{min-width:0;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;font-weight:600;overflow:hidden}.plan-list-delete{color:var(--text-muted);cursor:pointer;opacity:0;border-radius:var(--radius-sm);background:0 0;border:none;padding:2px;display:inline-flex}.plan-list-item:hover .plan-list-delete{opacity:1}.plan-list-delete:hover{color:var(--danger);background:var(--feedback-danger-bg)}.plan-list-item-sub{color:var(--text-muted);align-items:center;gap:5px;margin-top:4px;margin-left:27px;font-size:11px;display:flex}.plan-list-item-model{font-family:var(--font-mono);align-items:center;gap:3px;display:inline-flex}.plan-list-item-time{margin-left:auto}.plan-badge{border-radius:var(--radius-sm);border:1px solid var(--border-color);align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.plan-badge-dot{border-radius:var(--radius-round);padding:3px}.plan-badge-pending{color:var(--text-secondary);background:var(--bg-tertiary)}.plan-badge-approved{color:var(--feedback-success-text);background:var(--feedback-success-bg);border-color:var(--feedback-success-border)}.plan-badge-changes{color:var(--feedback-warning-text);background:var(--feedback-warning-bg);border-color:var(--feedback-warning-border)}.plan-badge-rejected{color:var(--feedback-danger-text);background:var(--feedback-danger-bg);border-color:var(--feedback-danger-border)}.plan-review{flex-direction:column;display:flex}.plan-review-head{top:var(--toolbar-height);z-index:5;background:var(--bg-primary);border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;display:flex;position:sticky}.plan-review-head-main{flex:1;min-width:0}.plan-review-title{color:var(--text-primary);word-break:break-word;margin:0;font-size:16px;font-weight:700}.plan-review-meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.plan-review-chip{border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-secondary);align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.plan-review-chip-model{font-family:var(--font-mono)}.plan-review-chip-selection{background:var(--accent-subtle);color:var(--primary)}.plan-review-head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.plan-view-toggle{gap:0;display:inline-flex}.plan-view-toggle .btn{align-items:center;display:inline-flex}.plan-decision-banner{border-radius:var(--radius-md);border:1px solid var(--border-color);align-items:center;gap:10px;margin:16px 20px 0;padding:10px 14px;display:flex}.plan-decision-banner-text{flex-direction:column;gap:2px;display:flex}.plan-decision-banner-note{opacity:.9;font-size:13px;font-weight:400}.plan-general-section{border:1px solid var(--border-color);background:#ffffff05;border-radius:8px;flex-direction:column;gap:12px;margin:16px 20px 0;padding:12px;display:flex}.plan-general-header{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.plan-general-form{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px}.plan-rendered{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);margin:16px 20px;padding:20px 24px;font-size:14px;line-height:1.7}.plan-file{border:1px solid var(--border-normal);border-radius:var(--radius-md);margin:16px 20px;overflow:hidden}.plan-empty-state{text-align:center;height:100%;min-height:320px;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px;display:flex}.plan-empty-hint{max-width:460px;color:var(--text-muted);font-size:13px}.plan-empty-hint code{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-secondary);padding:1px 5px;font-size:12px}.plan-comment-section-chip{border-radius:var(--radius-sm);background:var(--accent-subtle);border:1px solid var(--primary);color:var(--primary);white-space:nowrap;text-overflow:ellipsis;max-width:220px;padding:1px 6px;font-size:10px;font-weight:700;overflow:hidden}.plan-comment-line-chip{border-radius:var(--radius-sm);background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-secondary);font-size:10px;font-weight:600;font-family:var(--font-mono);padding:1px 5px}.plan-comment-line-chip-general{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.5px;color:var(--primary);background:var(--accent-subtle);border-color:var(--primary)}.plan-comment-resolved-collapsed{justify-content:space-between;align-items:center;display:flex}.plan-comment-resolved-left{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.plan-comment-show-resolved{color:var(--primary);cursor:pointer;background:0 0;border:none;font-size:12px;font-weight:600}.plan-verdict-options{padding:var(--space-1);flex-direction:column;gap:8px;display:flex}.plan-verdict-option{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-secondary);cursor:pointer;text-align:left;width:100%;transition:border-color var(--transition-fast), background var(--transition-fast);align-items:center;gap:10px;padding:10px 12px;display:flex}.plan-verdict-option:hover{background:var(--bg-tertiary)}.plan-verdict-option-selected{border-color:var(--primary);background:var(--accent-subtle)}.plan-verdict-icon{border-radius:var(--radius-round);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.plan-verdict-approve .plan-verdict-icon{background:var(--feedback-success-bg);color:var(--feedback-success-text)}.plan-verdict-changes .plan-verdict-icon{background:var(--feedback-warning-bg);color:var(--feedback-warning-text)}.plan-verdict-reject .plan-verdict-icon{background:var(--feedback-danger-bg);color:var(--feedback-danger-text)}.plan-verdict-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.plan-verdict-label{color:var(--text-primary);font-size:13px;font-weight:600}.plan-verdict-desc{color:var(--text-muted);font-size:11px}.plan-verdict-radio{border-radius:var(--radius-round);border:2px solid var(--border-strong);flex-shrink:0;width:16px;height:16px}.plan-verdict-option-selected .plan-verdict-radio{border-color:var(--primary);background:radial-gradient(circle, var(--primary) 0 4px, transparent 5px)}
@@ -1,119 +0,0 @@
1
- import { a as formatComments, n as readServerLock, t as isLockAlive } from "./server-lock-DbxpfF3j.mjs";
2
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
- import { z } from "zod";
5
- //#region src/mcp.ts
6
- /**
7
- * MCP server exposing diffing's review handoff as cross-vendor tools, so any
8
- * MCP-capable agent (Claude, Cursor, Codex, Gemini, …) can drive the same loop
9
- * the CLI does. Launched via `diffing mcp` over stdio. The port is discovered
10
- * per call from the per-repo lockfile, so the MCP server works whether it
11
- * starts before or after the diffing web server.
12
- *
13
- * Client config (no port needed):
14
- * { "mcpServers": { "diffing": { "command": "diffing", "args": ["mcp"] } } }
15
- */
16
- /** Resolve the running server's base URL, throwing a tool-friendly error. */
17
- function baseUrl() {
18
- const lock = readServerLock();
19
- if (!lock || !isLockAlive(lock)) throw new Error("No diffing server running for this repo. Start one with `diffing` in the repository, then retry.");
20
- return `http://${lock.host === "0.0.0.0" || lock.host === "::" ? "127.0.0.1" : lock.host}:${lock.port}`;
21
- }
22
- function textResult(text, structuredContent) {
23
- return {
24
- content: [{
25
- type: "text",
26
- text
27
- }],
28
- ...structuredContent ? { structuredContent } : {}
29
- };
30
- }
31
- async function startMcpServer() {
32
- const server = new McpServer({
33
- name: "diffing",
34
- version: "0.1.0"
35
- });
36
- server.registerTool("await_review", {
37
- title: "Await review",
38
- description: "Block until the human clicks \"Send to agent\" in the diffing UI, then return the review comments as XML. Re-poll-safe: returns the next review batch.",
39
- inputSchema: { timeoutSeconds: z.number().optional() }
40
- }, async ({ timeoutSeconds }, extra) => {
41
- const base = baseUrl();
42
- const totalBudgetMs = (timeoutSeconds ?? 570) * 1e3;
43
- const progressToken = extra?._meta?.progressToken;
44
- let sinceRound = 0;
45
- try {
46
- sinceRound = (await fetch(`${base}/api/review/status`).then((r) => r.json())).round ?? 0;
47
- } catch {}
48
- const deadline = Date.now() + totalBudgetMs;
49
- let cycle = 0;
50
- while (Date.now() < deadline) {
51
- const result = await (await fetch(`${base}/api/review/await?timeoutMs=25000&sinceRound=${sinceRound}`, { signal: extra?.signal })).json();
52
- if (result.status === "released") return textResult(result.payload.commentXml, {
53
- round: result.payload.round,
54
- openCount: result.payload.openCount,
55
- comments: result.payload.comments
56
- });
57
- sinceRound = result.round ?? sinceRound;
58
- cycle += 1;
59
- if (progressToken !== void 0) await extra?.sendNotification?.({
60
- method: "notifications/progress",
61
- params: {
62
- progressToken,
63
- progress: cycle,
64
- message: "Waiting for the human to send their review…"
65
- }
66
- }).catch(() => {});
67
- }
68
- return textResult("No review was sent within the timeout. Call await_review again to keep waiting.");
69
- });
70
- server.registerTool("list_comments", {
71
- title: "List comments",
72
- description: "Fetch the current review comments as XML (and structured data). Set openOnly to skip resolved comments.",
73
- inputSchema: { openOnly: z.boolean().optional() }
74
- }, async ({ openOnly }) => {
75
- const all = await fetch(`${baseUrl()}/api/comments`).then((r) => r.json());
76
- const selected = openOnly ? all.filter((c) => c.status === "open") : all;
77
- return textResult(formatComments(selected), { comments: selected });
78
- });
79
- server.registerTool("reply_to_comment", {
80
- title: "Reply to comment",
81
- description: "Post an agent reply to a review comment. Shows up in the diffing UI in real time.",
82
- inputSchema: {
83
- commentId: z.string(),
84
- body: z.string(),
85
- model: z.string().optional()
86
- }
87
- }, async ({ commentId, body, model }) => {
88
- const res = await fetch(`${baseUrl()}/api/comments/${commentId}/replies`, {
89
- method: "POST",
90
- headers: { "Content-Type": "application/json" },
91
- body: JSON.stringify({
92
- body,
93
- role: "agent",
94
- model
95
- })
96
- });
97
- if (res.status === 404) throw new Error(`Comment ${commentId} not found.`);
98
- if (!res.ok) throw new Error(`Failed to reply: HTTP ${res.status}`);
99
- return textResult(`Replied to ${commentId}.`);
100
- });
101
- server.registerTool("resolve_comment", {
102
- title: "Resolve comment",
103
- description: "Mark a review comment as resolved.",
104
- inputSchema: { commentId: z.string() }
105
- }, async ({ commentId }) => {
106
- const res = await fetch(`${baseUrl()}/api/comments/${commentId}`, {
107
- method: "PUT",
108
- headers: { "Content-Type": "application/json" },
109
- body: JSON.stringify({ status: "resolved" })
110
- });
111
- if (res.status === 404) throw new Error(`Comment ${commentId} not found.`);
112
- if (!res.ok) throw new Error(`Failed to resolve: HTTP ${res.status}`);
113
- return textResult(`Resolved ${commentId}.`);
114
- });
115
- const transport = new StdioServerTransport();
116
- await server.connect(transport);
117
- }
118
- //#endregion
119
- export { startMcpServer };
@@ -1,119 +0,0 @@
1
- import { a as formatComments, n as readServerLock, t as isLockAlive } from "./server-lock-BbiF7u3F.mjs";
2
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
- import { z } from "zod";
5
- //#region src/mcp.ts
6
- /**
7
- * MCP server exposing diffit's review handoff as cross-vendor tools, so any
8
- * MCP-capable agent (Claude, Cursor, Codex, Gemini, …) can drive the same loop
9
- * the CLI does. Launched via `diffit mcp` over stdio. The port is discovered
10
- * per call from the per-repo lockfile, so the MCP server works whether it
11
- * starts before or after the diffit web server.
12
- *
13
- * Client config (no port needed):
14
- * { "mcpServers": { "diffit": { "command": "diffit", "args": ["mcp"] } } }
15
- */
16
- /** Resolve the running server's base URL, throwing a tool-friendly error. */
17
- function baseUrl() {
18
- const lock = readServerLock();
19
- if (!lock || !isLockAlive(lock)) throw new Error("No diffit server running for this repo. Start one with `diffit` in the repository, then retry.");
20
- return `http://${lock.host === "0.0.0.0" || lock.host === "::" ? "127.0.0.1" : lock.host}:${lock.port}`;
21
- }
22
- function textResult(text, structuredContent) {
23
- return {
24
- content: [{
25
- type: "text",
26
- text
27
- }],
28
- ...structuredContent ? { structuredContent } : {}
29
- };
30
- }
31
- async function startMcpServer() {
32
- const server = new McpServer({
33
- name: "diffit",
34
- version: "0.12.1"
35
- });
36
- server.registerTool("await_review", {
37
- title: "Await review",
38
- description: "Block until the human clicks \"Send to agent\" in the diffit UI, then return the review comments as XML. Re-poll-safe: returns the next review batch.",
39
- inputSchema: { timeoutSeconds: z.number().optional() }
40
- }, async ({ timeoutSeconds }, extra) => {
41
- const base = baseUrl();
42
- const totalBudgetMs = (timeoutSeconds ?? 570) * 1e3;
43
- const progressToken = extra?._meta?.progressToken;
44
- let sinceRound = 0;
45
- try {
46
- sinceRound = (await fetch(`${base}/api/review/status`).then((r) => r.json())).round ?? 0;
47
- } catch {}
48
- const deadline = Date.now() + totalBudgetMs;
49
- let cycle = 0;
50
- while (Date.now() < deadline) {
51
- const result = await (await fetch(`${base}/api/review/await?timeoutMs=25000&sinceRound=${sinceRound}`, { signal: extra?.signal })).json();
52
- if (result.status === "released") return textResult(result.payload.commentXml, {
53
- round: result.payload.round,
54
- openCount: result.payload.openCount,
55
- comments: result.payload.comments
56
- });
57
- sinceRound = result.round ?? sinceRound;
58
- cycle += 1;
59
- if (progressToken !== void 0) await extra?.sendNotification?.({
60
- method: "notifications/progress",
61
- params: {
62
- progressToken,
63
- progress: cycle,
64
- message: "Waiting for the human to send their review…"
65
- }
66
- }).catch(() => {});
67
- }
68
- return textResult("No review was sent within the timeout. Call await_review again to keep waiting.");
69
- });
70
- server.registerTool("list_comments", {
71
- title: "List comments",
72
- description: "Fetch the current review comments as XML (and structured data). Set openOnly to skip resolved comments.",
73
- inputSchema: { openOnly: z.boolean().optional() }
74
- }, async ({ openOnly }) => {
75
- const all = await fetch(`${baseUrl()}/api/comments`).then((r) => r.json());
76
- const selected = openOnly ? all.filter((c) => c.status === "open") : all;
77
- return textResult(formatComments(selected), { comments: selected });
78
- });
79
- server.registerTool("reply_to_comment", {
80
- title: "Reply to comment",
81
- description: "Post an agent reply to a review comment. Shows up in the diffit UI in real time.",
82
- inputSchema: {
83
- commentId: z.string(),
84
- body: z.string(),
85
- model: z.string().optional()
86
- }
87
- }, async ({ commentId, body, model }) => {
88
- const res = await fetch(`${baseUrl()}/api/comments/${commentId}/replies`, {
89
- method: "POST",
90
- headers: { "Content-Type": "application/json" },
91
- body: JSON.stringify({
92
- body,
93
- role: "agent",
94
- model
95
- })
96
- });
97
- if (res.status === 404) throw new Error(`Comment ${commentId} not found.`);
98
- if (!res.ok) throw new Error(`Failed to reply: HTTP ${res.status}`);
99
- return textResult(`Replied to ${commentId}.`);
100
- });
101
- server.registerTool("resolve_comment", {
102
- title: "Resolve comment",
103
- description: "Mark a review comment as resolved.",
104
- inputSchema: { commentId: z.string() }
105
- }, async ({ commentId }) => {
106
- const res = await fetch(`${baseUrl()}/api/comments/${commentId}`, {
107
- method: "PUT",
108
- headers: { "Content-Type": "application/json" },
109
- body: JSON.stringify({ status: "resolved" })
110
- });
111
- if (res.status === 404) throw new Error(`Comment ${commentId} not found.`);
112
- if (!res.ok) throw new Error(`Failed to resolve: HTTP ${res.status}`);
113
- return textResult(`Resolved ${commentId}.`);
114
- });
115
- const transport = new StdioServerTransport();
116
- await server.connect(transport);
117
- }
118
- //#endregion
119
- export { startMcpServer };
@@ -1,119 +0,0 @@
1
- import { a as formatComments, n as readServerLock, t as isLockAlive } from "./server-lock-DbxpfF3j.mjs";
2
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
- import { z } from "zod";
5
- //#region src/mcp.ts
6
- /**
7
- * MCP server exposing diffing's review handoff as cross-vendor tools, so any
8
- * MCP-capable agent (Claude, Cursor, Codex, Gemini, …) can drive the same loop
9
- * the CLI does. Launched via `diffing mcp` over stdio. The port is discovered
10
- * per call from the per-repo lockfile, so the MCP server works whether it
11
- * starts before or after the diffing web server.
12
- *
13
- * Client config (no port needed):
14
- * { "mcpServers": { "diffing": { "command": "diffing", "args": ["mcp"] } } }
15
- */
16
- /** Resolve the running server's base URL, throwing a tool-friendly error. */
17
- function baseUrl() {
18
- const lock = readServerLock();
19
- if (!lock || !isLockAlive(lock)) throw new Error("No diffing server running for this repo. Start one with `diffing` in the repository, then retry.");
20
- return `http://${lock.host === "0.0.0.0" || lock.host === "::" ? "127.0.0.1" : lock.host}:${lock.port}`;
21
- }
22
- function textResult(text, structuredContent) {
23
- return {
24
- content: [{
25
- type: "text",
26
- text
27
- }],
28
- ...structuredContent ? { structuredContent } : {}
29
- };
30
- }
31
- async function startMcpServer() {
32
- const server = new McpServer({
33
- name: "diffing",
34
- version: "0.12.1"
35
- });
36
- server.registerTool("await_review", {
37
- title: "Await review",
38
- description: "Block until the human clicks \"Send to agent\" in the diffing UI, then return the review comments as XML. Re-poll-safe: returns the next review batch.",
39
- inputSchema: { timeoutSeconds: z.number().optional() }
40
- }, async ({ timeoutSeconds }, extra) => {
41
- const base = baseUrl();
42
- const totalBudgetMs = (timeoutSeconds ?? 570) * 1e3;
43
- const progressToken = extra?._meta?.progressToken;
44
- let sinceRound = 0;
45
- try {
46
- sinceRound = (await fetch(`${base}/api/review/status`).then((r) => r.json())).round ?? 0;
47
- } catch {}
48
- const deadline = Date.now() + totalBudgetMs;
49
- let cycle = 0;
50
- while (Date.now() < deadline) {
51
- const result = await (await fetch(`${base}/api/review/await?timeoutMs=25000&sinceRound=${sinceRound}`, { signal: extra?.signal })).json();
52
- if (result.status === "released") return textResult(result.payload.commentXml, {
53
- round: result.payload.round,
54
- openCount: result.payload.openCount,
55
- comments: result.payload.comments
56
- });
57
- sinceRound = result.round ?? sinceRound;
58
- cycle += 1;
59
- if (progressToken !== void 0) await extra?.sendNotification?.({
60
- method: "notifications/progress",
61
- params: {
62
- progressToken,
63
- progress: cycle,
64
- message: "Waiting for the human to send their review…"
65
- }
66
- }).catch(() => {});
67
- }
68
- return textResult("No review was sent within the timeout. Call await_review again to keep waiting.");
69
- });
70
- server.registerTool("list_comments", {
71
- title: "List comments",
72
- description: "Fetch the current review comments as XML (and structured data). Set openOnly to skip resolved comments.",
73
- inputSchema: { openOnly: z.boolean().optional() }
74
- }, async ({ openOnly }) => {
75
- const all = await fetch(`${baseUrl()}/api/comments`).then((r) => r.json());
76
- const selected = openOnly ? all.filter((c) => c.status === "open") : all;
77
- return textResult(formatComments(selected), { comments: selected });
78
- });
79
- server.registerTool("reply_to_comment", {
80
- title: "Reply to comment",
81
- description: "Post an agent reply to a review comment. Shows up in the diffing UI in real time.",
82
- inputSchema: {
83
- commentId: z.string(),
84
- body: z.string(),
85
- model: z.string().optional()
86
- }
87
- }, async ({ commentId, body, model }) => {
88
- const res = await fetch(`${baseUrl()}/api/comments/${commentId}/replies`, {
89
- method: "POST",
90
- headers: { "Content-Type": "application/json" },
91
- body: JSON.stringify({
92
- body,
93
- role: "agent",
94
- model
95
- })
96
- });
97
- if (res.status === 404) throw new Error(`Comment ${commentId} not found.`);
98
- if (!res.ok) throw new Error(`Failed to reply: HTTP ${res.status}`);
99
- return textResult(`Replied to ${commentId}.`);
100
- });
101
- server.registerTool("resolve_comment", {
102
- title: "Resolve comment",
103
- description: "Mark a review comment as resolved.",
104
- inputSchema: { commentId: z.string() }
105
- }, async ({ commentId }) => {
106
- const res = await fetch(`${baseUrl()}/api/comments/${commentId}`, {
107
- method: "PUT",
108
- headers: { "Content-Type": "application/json" },
109
- body: JSON.stringify({ status: "resolved" })
110
- });
111
- if (res.status === 404) throw new Error(`Comment ${commentId} not found.`);
112
- if (!res.ok) throw new Error(`Failed to resolve: HTTP ${res.status}`);
113
- return textResult(`Resolved ${commentId}.`);
114
- });
115
- const transport = new StdioServerTransport();
116
- await server.connect(transport);
117
- }
118
- //#endregion
119
- export { startMcpServer };