diffing 0.2.1 → 0.3.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 (432) hide show
  1. package/README.md +158 -1
  2. package/dist/{cli-agent-ZAkixf4c.mjs → cli-agent-KxNAFIPf.mjs} +6 -2
  3. package/dist/cli-gh-CDGSpndZ.mjs +147 -0
  4. package/dist/cli.mjs +1064 -44
  5. package/dist/client/assets/{angular-html-DsssUIMZ.js → angular-html-DbbrJavS.js} +1 -1
  6. package/dist/client/assets/{angular-ts-dTg-sJ77.js → angular-ts-tCrxb1ht.js} +1 -1
  7. package/dist/client/assets/{apl-C1yUKbqz.js → apl-DawII0w7.js} +1 -1
  8. package/dist/client/assets/arc-DIRV7ZXr.js +1 -0
  9. package/dist/client/assets/architecture-7EHR7CIX-BM5HxebS.js +1 -0
  10. package/dist/client/assets/architectureDiagram-3BPJPVTR-3IoH78OV.js +36 -0
  11. package/dist/client/assets/array-CkF66D10.js +1 -0
  12. package/dist/client/assets/{astro-BI07ha2y.js → astro-DIyGTFXc.js} +1 -1
  13. package/dist/client/assets/{blade-DkzUGffS.js → blade-CuF4Z1mP.js} +1 -1
  14. package/dist/client/assets/blockDiagram-GPEHLZMM-CFxPndC0.js +132 -0
  15. package/dist/client/assets/{bsl-Dx5tFn3i.js → bsl-BrHd4RA2.js} +1 -1
  16. package/dist/client/assets/{c-KkuqqOvW.js → c-DUrjo9T5.js} +1 -1
  17. package/dist/client/assets/c4Diagram-AAUBKEIU-CGMBnkiv.js +10 -0
  18. package/dist/client/assets/{cairo-wCCQTdA9.js → cairo-BDZ6TRZS.js} +1 -1
  19. package/dist/client/assets/channel-D5AdjEWX.js +1 -0
  20. package/dist/client/assets/chunk-2J33WTMH-CJMBLaXy.js +1 -0
  21. package/dist/client/assets/chunk-3OPIFGDE-C9HQWVLl.js +62 -0
  22. package/dist/client/assets/chunk-4BX2VUAB-Qqg72GQd.js +1 -0
  23. package/dist/client/assets/chunk-4EGX6M5U-C70lfA2p.js +1 -0
  24. package/dist/client/assets/chunk-55IACEB6-DZF8brTR.js +1 -0
  25. package/dist/client/assets/chunk-5DO6E6H7-PprNUwlI.js +1 -0
  26. package/dist/client/assets/chunk-5ZQYHXKU-BflVFV5z.js +2 -0
  27. package/dist/client/assets/chunk-727SXJPM-COn6BRLY.js +206 -0
  28. package/dist/client/assets/chunk-AQP2D5EJ-CNOjODUR.js +231 -0
  29. package/dist/client/assets/chunk-BR22UD5L-D8XCYMy9.js +1 -0
  30. package/dist/client/assets/chunk-BSJP7CBP-PQX4ASCI.js +1 -0
  31. package/dist/client/assets/chunk-CSCIHK7Q-BfmUvL-L.js +124 -0
  32. package/dist/client/assets/chunk-FHYWG6QK-CcHPrHH1.js +1 -0
  33. package/dist/client/assets/chunk-FMBD7UC4-DorfwLnQ.js +15 -0
  34. package/dist/client/assets/chunk-KSCS5N6A-CXY93mId.js +10 -0
  35. package/dist/client/assets/chunk-L5ZTLDWV-BjMrSVmH.js +1 -0
  36. package/dist/client/assets/chunk-LZXEDZCA-q8jj6Nyb.js +2 -0
  37. package/dist/client/assets/chunk-MPE355IW-Bf9yHfDS.js +1 -0
  38. package/dist/client/assets/chunk-MZUSXYTE-CnUIUKI4.js +1 -0
  39. package/dist/client/assets/chunk-N66VUXT2-ahAf9GvV.js +1 -0
  40. package/dist/client/assets/chunk-ND2GUHAM-BRRQbYHl.js +1 -0
  41. package/dist/client/assets/chunk-NNHCCRGN-DHF3V75i.js +159 -0
  42. package/dist/client/assets/chunk-NZK2D7GU-Czt1qHrO.js +1 -0
  43. package/dist/client/assets/chunk-O5CBEL6O-DEopURak.js +70 -0
  44. package/dist/client/assets/chunk-PUPMXCY4-D0KKIhut.js +1 -0
  45. package/dist/client/assets/chunk-QZHKN3VN-BE917fn9.js +1 -0
  46. package/dist/client/assets/chunk-UIBZB4QT-TYsZ_c8u.js +1 -0
  47. package/dist/client/assets/chunk-WCWK7LTN-Dj8SfnMU.js +1 -0
  48. package/dist/client/assets/chunk-WU5MYG2G-DdoWnPla.js +1 -0
  49. package/dist/client/assets/chunk-XPW4576I-DocCoKUT.js +32 -0
  50. package/dist/client/assets/classDiagram-4FO5ZUOK-CxjhKO7s.js +1 -0
  51. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CSScAAQ4.js +1 -0
  52. package/dist/client/assets/{cobol-DRh7-jLi.js → cobol-BylylR2x.js} +1 -1
  53. package/dist/client/assets/{coffee-wR_ZAh9a.js → coffee-DCKfk8xx.js} +1 -1
  54. package/dist/client/assets/cose-bilkent-S5V4N54A-Cm0BD5CS.js +1 -0
  55. package/dist/client/assets/{cpp-OD_qyywn.js → cpp-CfKCIrGK.js} +1 -1
  56. package/dist/client/assets/{crystal-E4ahAddE.js → crystal-v-9RIu3l.js} +1 -1
  57. package/dist/client/assets/{css-2NgE_uxz.js → css-XjlXeGmZ.js} +1 -1
  58. package/dist/client/assets/cytoscape.esm-B7MQoI9k.js +321 -0
  59. package/dist/client/assets/dagre-BM42HDAG-kqgFUaF1.js +4 -0
  60. package/dist/client/assets/dagre-DAhKikc0.js +1 -0
  61. package/dist/client/assets/defaultLocale-B_TxGd0k.js +1 -0
  62. package/dist/client/assets/diagram-2AECGRRQ-B3hBvGUc.js +43 -0
  63. package/dist/client/assets/diagram-5GNKFQAL-r8zU8C-Y.js +10 -0
  64. package/dist/client/assets/diagram-KO2AKTUF-CDWD5zkZ.js +3 -0
  65. package/dist/client/assets/diagram-LMA3HP47-CRRfS6RD.js +24 -0
  66. package/dist/client/assets/diagram-OG6HWLK6-ChBS6E-K.js +24 -0
  67. package/dist/client/assets/dist-DUTeKbN7.js +1 -0
  68. package/dist/client/assets/{edge-8mbscxxD.js → edge-Cwh953i8.js} +1 -1
  69. package/dist/client/assets/{elixir-CJv1b3Q6.js → elixir-C4MgLzTj.js} +1 -1
  70. package/dist/client/assets/{elm-DUPzqZ9H.js → elm-CFBu8r7i.js} +1 -1
  71. package/dist/client/assets/erDiagram-TEJ5UH35-_03Fb9RH.js +85 -0
  72. package/dist/client/assets/{erb-ssvEF26z.js → erb-CrCna7R1.js} +1 -1
  73. package/dist/client/assets/{erlang-CtK0kQ6z.js → erlang-cuhwpmsu.js} +1 -1
  74. package/dist/client/assets/eventmodeling-FCH6USID-hlXE2E34.js +1 -0
  75. package/dist/client/assets/flowDiagram-I6XJVG4X-D9pSaH_8.js +162 -0
  76. package/dist/client/assets/{fortran-fixed-form-DBM4e0_k.js → fortran-fixed-form-DWr0EnJn.js} +1 -1
  77. package/dist/client/assets/{fsharp-CmzzGQLe.js → fsharp-CQ5iYSPA.js} +1 -1
  78. package/dist/client/assets/ganttDiagram-6RSMTGT7-DKBfXY9D.js +292 -0
  79. package/dist/client/assets/{gdresource-B_wbPqHd.js → gdresource-CN-lsNu5.js} +1 -1
  80. package/dist/client/assets/{git-commit-1z4D6NzL.js → git-commit-6e79eN7Q.js} +1 -1
  81. package/dist/client/assets/{git-rebase-DiWIK1Oa.js → git-rebase-CExLk2dD.js} +1 -1
  82. package/dist/client/assets/gitGraph-WXDBUCRP-D_3ZhTam.js +1 -0
  83. package/dist/client/assets/gitGraphDiagram-PVQCEYII-BPQ2kpJA.js +106 -0
  84. package/dist/client/assets/{glimmer-js-DrHg6AuA.js → glimmer-js-wjBSKaMu.js} +1 -1
  85. package/dist/client/assets/{glimmer-ts-wQSGOa8A.js → glimmer-ts-CyjMXDgZ.js} +1 -1
  86. package/dist/client/assets/{glsl-OY27QGY0.js → glsl-CWOoN8or.js} +1 -1
  87. package/dist/client/assets/graphlib-DBdw4opr.js +1 -0
  88. package/dist/client/assets/{graphql-CSWSqe6f.js → graphql-DI5CB58U.js} +1 -1
  89. package/dist/client/assets/{hack-Bi1v624Q.js → hack-Ct_Cm7Pr.js} +1 -1
  90. package/dist/client/assets/{haml-CX94zV9m.js → haml-DzAjli8d.js} +1 -1
  91. package/dist/client/assets/{handlebars-C1j6wnjG.js → handlebars-BfJB0RYx.js} +1 -1
  92. package/dist/client/assets/{html-BcAjMlB7.js → html-CK8auhK8.js} +1 -1
  93. package/dist/client/assets/{html-derivative-DcEpOzdx.js → html-derivative-B7VntYnF.js} +1 -1
  94. package/dist/client/assets/{http-BBxxSc6S.js → http-_Zy71Sv3.js} +1 -1
  95. package/dist/client/assets/{hurl-CpKRNTz4.js → hurl-VbL4I95z.js} +1 -1
  96. package/dist/client/assets/{hxml-DC4KwKt2.js → hxml-nwJci6H5.js} +1 -1
  97. package/dist/client/assets/{index-CoZyJYkw.css → index-C3p7VKOX.css} +1 -1
  98. package/dist/client/assets/index-Dv9jPmOc.js +3921 -0
  99. package/dist/client/assets/info-J43DQDTF-CAllC7mK.js +1 -0
  100. package/dist/client/assets/infoDiagram-5YYISTIA-B5RN-4Ke.js +2 -0
  101. package/dist/client/assets/init-Ce66tIvf.js +1 -0
  102. package/dist/client/assets/ishikawaDiagram-YF4QCWOH-DpbSX3Zy.js +70 -0
  103. package/dist/client/assets/{java-CFUlLvAA.js → java-0CC2DnK9.js} +1 -1
  104. package/dist/client/assets/{javascript-C-HnT3sE.js → javascript-DKSTP7rz.js} +1 -1
  105. package/dist/client/assets/{jinja-CPU8RwNP.js → jinja-DoGBHNJ6.js} +1 -1
  106. package/dist/client/assets/{jison-CW0TBQOs.js → jison-Bnl3lPA2.js} +1 -1
  107. package/dist/client/assets/journeyDiagram-JHISSGLW-B_X4_qPO.js +139 -0
  108. package/dist/client/assets/{json-qUjlNuEJ.js → json-BQ3Ddj6g.js} +1 -1
  109. package/dist/client/assets/{jsx-KWeo60kf.js → jsx-C_aFDuFZ.js} +1 -1
  110. package/dist/client/assets/{julia-CnJB8y2e.js → julia-nIjp5yMR.js} +1 -1
  111. package/dist/client/assets/{just-Do22d9PP.js → just-zc4yJ46n.js} +1 -1
  112. package/dist/client/assets/kanban-definition-UN3LZRKU-BSs4C5DW.js +89 -0
  113. package/dist/client/assets/katex-eRFNlMh0.js +257 -0
  114. package/dist/client/assets/{latex-CCPgzvKn.js → latex-BszBC80j.js} +1 -1
  115. package/dist/client/assets/line-C9HWVwPi.js +1 -0
  116. package/dist/client/assets/linear-DatJfpKY.js +1 -0
  117. package/dist/client/assets/{liquid-B9btdZoI.js → liquid-DglQpTge.js} +1 -1
  118. package/dist/client/assets/{lua-IFRifurW.js → lua-BcbliFeR.js} +1 -1
  119. package/dist/client/assets/{marko-CCaVBFq1.js → marko-BPm4M8j-.js} +1 -1
  120. package/dist/client/assets/{mdc-BtbnOLUc.js → mdc-BNUj07UF.js} +1 -1
  121. package/dist/client/assets/mermaid-parser.core-BVEKlqQr.js +4 -0
  122. package/dist/client/assets/mermaid.core-DVis21V_.js +9 -0
  123. package/dist/client/assets/mindmap-definition-RKZ34NQL-Cuo7KewF.js +96 -0
  124. package/dist/client/assets/{nextflow-CApkvBGW.js → nextflow-DSfydIxt.js} +1 -1
  125. package/dist/client/assets/{nginx-BkbFZHVt.js → nginx-CSSJwkd6.js} +1 -1
  126. package/dist/client/assets/{nim-2uCd5j65.js → nim-nQAskwTR.js} +1 -1
  127. package/dist/client/assets/ordinal-5ziJS8mo.js +1 -0
  128. package/dist/client/assets/packet-YPE3B663-Dy58IAiO.js +1 -0
  129. package/dist/client/assets/path-g3G46IZB.js +1 -0
  130. package/dist/client/assets/{perl-C4ixqSNT.js → perl-CtH8xYH6.js} +1 -1
  131. package/dist/client/assets/{php-DJ8WOtcI.js → php-Dcc3T2PH.js} +1 -1
  132. package/dist/client/assets/pie-LRSECV5Y-FXFFfdz2.js +1 -0
  133. package/dist/client/assets/pieDiagram-4H26LBE5-BfpvCRmo.js +30 -0
  134. package/dist/client/assets/{pug-BOaafhT5.js → pug-BCLaymlV.js} +1 -1
  135. package/dist/client/assets/{qml-CURE-1y4.js → qml-BpKydcOi.js} +1 -1
  136. package/dist/client/assets/quadrantDiagram-W4KKPZXB-CJY6un0-.js +7 -0
  137. package/dist/client/assets/{r-CPWmgzo3.js → r-BzCB9dpd.js} +1 -1
  138. package/dist/client/assets/radar-GUYGQ44K-BKTzSQ68.js +1 -0
  139. package/dist/client/assets/{razor-DH83VP_d.js → razor-BWmujqiQ.js} +1 -1
  140. package/dist/client/assets/{regexp-BXVWi-t_.js → regexp-urCI3YiZ.js} +1 -1
  141. package/dist/client/assets/requirementDiagram-4Y6WPE33-DIHWguS0.js +84 -0
  142. package/dist/client/assets/rough.esm-BBrzuQ0N.js +1 -0
  143. package/dist/client/assets/{rst-Bbxxs6E2.js → rst-YTDC9H6u.js} +1 -1
  144. package/dist/client/assets/{ruby-C-TuWES4.js → ruby-v1IXQAFZ.js} +1 -1
  145. package/dist/client/assets/sankeyDiagram-5OEKKPKP-DJRPEO_F.js +40 -0
  146. package/dist/client/assets/{sas-njzNYNOq.js → sas-KDUG3BSk.js} +1 -1
  147. package/dist/client/assets/{scss-D2i6rHB8.js → scss-pLIGFpjD.js} +1 -1
  148. package/dist/client/assets/sequenceDiagram-3UESZ5HK-DX0jVCOU.js +162 -0
  149. package/dist/client/assets/{shaderlab-DXAhMdPo.js → shaderlab-CbbQwRPF.js} +1 -1
  150. package/dist/client/assets/{shellscript-D6Bxi40C.js → shellscript-B5ZTyEsK.js} +1 -1
  151. package/dist/client/assets/{shellsession-Defxq-I6.js → shellsession-DVK3bw4p.js} +1 -1
  152. package/dist/client/assets/{soy-D0GKXrtT.js → soy-BXgyj2-T.js} +1 -1
  153. package/dist/client/assets/{sparql-BdcL8cbr.js → sparql-DEoxFJ5d.js} +1 -1
  154. package/dist/client/assets/{sql-BRW_ADkU.js → sql-G2vZCmw6.js} +1 -1
  155. package/dist/client/assets/src-D9zkqEEX.js +1 -0
  156. package/dist/client/assets/{stata-w7w59F48.js → stata-C4mEnygx.js} +1 -1
  157. package/dist/client/assets/stateDiagram-AJRCARHV-AMtMxKgQ.js +1 -0
  158. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-C89CM-_4.js +1 -0
  159. package/dist/client/assets/{surrealql-O-lLuqz7.js → surrealql-Bf8gsTcP.js} +1 -1
  160. package/dist/client/assets/{svelte-DN3DR5-t.js → svelte-C1oIyl9t.js} +1 -1
  161. package/dist/client/assets/{templ-CJ2JFoia.js → templ-PJcWUuTF.js} +1 -1
  162. package/dist/client/assets/{tex-CpWrf5g9.js → tex-B7Fnujsi.js} +1 -1
  163. package/dist/client/assets/timeline-definition-PNZ67QCA-BZJSqcAg.js +120 -0
  164. package/dist/client/assets/treeView-BLDUP644-DtjHwb6x.js +1 -0
  165. package/dist/client/assets/treemap-LRROVOQU-GqTXzMFU.js +1 -0
  166. package/dist/client/assets/{ts-tags-CZ6Af6Pe.js → ts-tags-CAAsFnUt.js} +1 -1
  167. package/dist/client/assets/{tsx-gIUSpRih.js → tsx-DAKyTsWW.js} +1 -1
  168. package/dist/client/assets/{twig-DwZINhmw.js → twig-Bd4dieZF.js} +1 -1
  169. package/dist/client/assets/{typescript-Dj2aMECR.js → typescript-8myByDGd.js} +1 -1
  170. package/dist/client/assets/vennDiagram-CIIHVFJN-CMjBZNs2.js +34 -0
  171. package/dist/client/assets/{vue-B5K0aWrP.js → vue-fBA2B-QU.js} +1 -1
  172. package/dist/client/assets/{vue-html-DKGgrypd.js → vue-html-DEZECpsR.js} +1 -1
  173. package/dist/client/assets/{vue-vine-B5iDYTCh.js → vue-vine-B_gG939R.js} +1 -1
  174. package/dist/client/assets/wardley-L42UT6IY-pROVAAhW.js +1 -0
  175. package/dist/client/assets/wardleyDiagram-YWT4CUSO-qeHmPLyL.js +78 -0
  176. package/dist/client/assets/{xml-CbTzxfc-.js → xml-DbXNss3s.js} +1 -1
  177. package/dist/client/assets/{xsl-Dj-Be6nx.js → xsl-B7_dgqqc.js} +1 -1
  178. package/dist/client/assets/xychartDiagram-2RQKCTM6-NN2Et7YL.js +7 -0
  179. package/dist/client/assets/{yaml-rTK8uEjh.js → yaml-DSyIApdJ.js} +1 -1
  180. package/dist/client/index.html +2 -2
  181. package/dist/{mcp-CE77qfjx.mjs → mcp-BWeWR4yd.mjs} +2 -1
  182. package/dist/plan-format-f62JWFI-.mjs +117 -0
  183. package/dist/{server-lock-DpCrvL-Z.mjs → server-lock-Dj9fG9md.mjs} +246 -122
  184. package/package.json +26 -14
  185. package/dist/cli-agent-BLPX3oOP.mjs +0 -443
  186. package/dist/cli-agent-BNwY5lZE.mjs +0 -446
  187. package/dist/cli-agent-CbzXDSSF.mjs +0 -446
  188. package/dist/cli-agent-Cfuy9fLC.mjs +0 -179
  189. package/dist/cli-agent-CtNivjQW.mjs +0 -179
  190. package/dist/cli-agent-DZBvZoXZ.mjs +0 -179
  191. package/dist/cli-agent-DsqbS3n7.mjs +0 -443
  192. package/dist/cli-agent-Vbs-ePHv.mjs +0 -443
  193. package/dist/cli-agent-WzJPMH52.mjs +0 -174
  194. package/dist/cli-agent-uYUoCA4X.mjs +0 -179
  195. package/dist/client/assets/index-Bwv7BWUp.js +0 -3959
  196. package/dist/mcp-BQmH_By-.mjs +0 -119
  197. package/dist/mcp-CFeE13n-.mjs +0 -254
  198. package/dist/mcp-CLgzC8_a.mjs +0 -119
  199. package/dist/mcp-D9E2HQZ9.mjs +0 -119
  200. package/dist/mcp-DKlThflu.mjs +0 -253
  201. package/dist/mcp-LVbLV17O.mjs +0 -119
  202. package/dist/mcp-SGCrfYGo.mjs +0 -254
  203. package/dist/mcp-nMwTAut3.mjs +0 -119
  204. package/dist/server-lock-B4crz9-_.mjs +0 -708
  205. package/dist/server-lock-BbiF7u3F.mjs +0 -493
  206. package/dist/server-lock-Bx9ixiF6.mjs +0 -575
  207. package/dist/server-lock-CAdqFSfl.mjs +0 -691
  208. package/dist/server-lock-DIkImokU.mjs +0 -487
  209. package/dist/server-lock-DbxpfF3j.mjs +0 -575
  210. package/dist/update-check-DJuFE9w6.mjs +0 -128
  211. package/dist/update-check-DSC02MWQ.mjs +0 -129
  212. package/dist/client/assets/{abap-CkQ0tsz-.js → abap-cWYhO34H.js} +0 -0
  213. package/dist/client/assets/{actionscript-3-DHm0ZfF4.js → actionscript-3-B80ndJsD.js} +0 -0
  214. package/dist/client/assets/{ada-DK_ua92Z.js → ada-C0C0SoYB.js} +0 -0
  215. package/dist/client/assets/{andromeeda-D2ccw8v4.js → andromeeda-Ch2kWS7s.js} +0 -0
  216. package/dist/client/assets/{apache-DXtpFu7o.js → apache-DBwBm4bB.js} +0 -0
  217. package/dist/client/assets/{apex-DlnRRWpl.js → apex-FcV7UxQi.js} +0 -0
  218. package/dist/client/assets/{applescript-CShk62ad.js → applescript-hQs8VNpS.js} +0 -0
  219. package/dist/client/assets/{ara-CWN-FDkm.js → ara-BOadBOZg.js} +0 -0
  220. package/dist/client/assets/{asciidoc-Bg-PM9Vn.js → asciidoc-BsfqiBck.js} +0 -0
  221. package/dist/client/assets/{asm-DKOhR24S.js → asm-C2vUqzqz.js} +0 -0
  222. package/dist/client/assets/{aurora-x-DpaEirL8.js → aurora-x-BHLqzt7j.js} +0 -0
  223. package/dist/client/assets/{awk-3ibKHffv.js → awk-D4e-eeZT.js} +0 -0
  224. package/dist/client/assets/{ayu-dark-ursiSH5k.js → ayu-dark-DCotN_ZT.js} +0 -0
  225. package/dist/client/assets/{ayu-light-DMjlrKmx.js → ayu-light-CKB6o_im.js} +0 -0
  226. package/dist/client/assets/{ayu-mirage-DZEMb75h.js → ayu-mirage-B38lW-C5.js} +0 -0
  227. package/dist/client/assets/{ballerina-xx7VNGxs.js → ballerina-BzvFqbha.js} +0 -0
  228. package/dist/client/assets/{bat-DGYsZ5wR.js → bat-CFyw2ERn.js} +0 -0
  229. package/dist/client/assets/{beancount-D_ATR1UV.js → beancount-a6Gsu5WX.js} +0 -0
  230. package/dist/client/assets/{berry-BqYMORfH.js → berry-C2jyz4Ah.js} +0 -0
  231. package/dist/client/assets/{bibtex-CQTBDajW.js → bibtex-Dyet-B83.js} +0 -0
  232. package/dist/client/assets/{bicep-CfNtxPrK.js → bicep-CghvUIvy.js} +0 -0
  233. package/dist/client/assets/{bird2-C0dUPe3I.js → bird2-nHigvs-R.js} +0 -0
  234. package/dist/client/assets/{c3-BUwZ5e3k.js → c3-9ZrcmAmr.js} +0 -0
  235. package/dist/client/assets/{cadence-C3OKDYrr.js → cadence-BPDgYNWy.js} +0 -0
  236. package/dist/client/assets/{catppuccin-frappe-CMnRXVZP.js → catppuccin-frappe-BY_2ofjk.js} +0 -0
  237. package/dist/client/assets/{catppuccin-latte-CqhXSjCC.js → catppuccin-latte-D6GXPBmA.js} +0 -0
  238. package/dist/client/assets/{catppuccin-macchiato-B6kneE0C.js → catppuccin-macchiato-BuW8_cyo.js} +0 -0
  239. package/dist/client/assets/{catppuccin-mocha-CP8YZpvj.js → catppuccin-mocha-znex9DPe.js} +0 -0
  240. package/dist/client/assets/{clarity-Crxe8gSr.js → clarity-Cmao5KSK.js} +0 -0
  241. package/dist/client/assets/{clojure-BuzOUPMr.js → clojure-D2dPuTkk.js} +0 -0
  242. package/dist/client/assets/{cmake-CCpZLdLI.js → cmake-DaqQuj4A.js} +0 -0
  243. package/dist/client/assets/{codeowners-Bo1VYpHz.js → codeowners-B748jmvc.js} +0 -0
  244. package/dist/client/assets/{codeql-Db01hzHE.js → codeql-CXb_8gHR.js} +0 -0
  245. package/dist/client/assets/{common-lisp-CMlJIc6Y.js → common-lisp-UZn9nc_5.js} +0 -0
  246. package/dist/client/assets/{coq-BlzBYp3f.js → coq-DtO6yBIf.js} +0 -0
  247. package/dist/client/assets/{csharp-kfNshAa7.js → csharp-C3YlYcLV.js} +0 -0
  248. package/dist/client/assets/{csv-Dr8ri5Nd.js → csv-BBwiVr0X.js} +0 -0
  249. package/dist/client/assets/{cue-jXfhyOwY.js → cue-ScBFXY5f.js} +0 -0
  250. package/dist/client/assets/{cypher-CayLeiaR.js → cypher-CGStaC1X.js} +0 -0
  251. package/dist/client/assets/{d-BMZQ0mAy.js → d-CuTCIvnX.js} +0 -0
  252. package/dist/client/assets/{dark-plus-B__q47Nr.js → dark-plus-BvePH-r3.js} +0 -0
  253. package/dist/client/assets/{dart-gMOEMyuz.js → dart-CqEodbm2.js} +0 -0
  254. package/dist/client/assets/{dax-C3t5LadU.js → dax-UdE5S0Dh.js} +0 -0
  255. package/dist/client/assets/{desktop-DmhXLwLR.js → desktop-DfmsfHJA.js} +0 -0
  256. package/dist/client/assets/{diff-togOXQX6.js → diff-CW0RWGd9.js} +0 -0
  257. package/dist/client/assets/{docker--6N01olR.js → docker-B1qtW4ha.js} +0 -0
  258. package/dist/client/assets/{dotenv-Bq930Yx8.js → dotenv-BUzOh1k8.js} +0 -0
  259. package/dist/client/assets/{dracula-CBkSghcw.js → dracula-kJQjC_Gy.js} +0 -0
  260. package/dist/client/assets/{dracula-soft-CCSYeoxL.js → dracula-soft-B3XhEjCl.js} +0 -0
  261. package/dist/client/assets/{dream-maker-BiMf3DHl.js → dream-maker-CBvk18nW.js} +0 -0
  262. package/dist/client/assets/{emacs-lisp-Dhht7he2.js → emacs-lisp-DvSgLhDc.js} +0 -0
  263. package/dist/client/assets/{everforest-dark-NqSz4oHS.js → everforest-dark-u0zLn75q.js} +0 -0
  264. package/dist/client/assets/{everforest-light-a3Yzs_lT.js → everforest-light-D3syIoAR.js} +0 -0
  265. package/dist/client/assets/{fennel-BExc9TZf.js → fennel-C-1kWlGf.js} +0 -0
  266. package/dist/client/assets/{fish-C2p-AJmZ.js → fish-CCpdtwqS.js} +0 -0
  267. package/dist/client/assets/{fluent-CeYzs8Qy.js → fluent-BLg032oD.js} +0 -0
  268. package/dist/client/assets/{fortran-free-form-BIQEK2Jw.js → fortran-free-form-Br4jRtSc.js} +0 -0
  269. package/dist/client/assets/{gdscript-B5JQPh_-.js → gdscript-hSAZM1eh.js} +0 -0
  270. package/dist/client/assets/{gdshader-vVjJ_Qr8.js → gdshader-D4XNAEs9.js} +0 -0
  271. package/dist/client/assets/{genie-DGl5rqC8.js → genie-DmN-ICAN.js} +0 -0
  272. package/dist/client/assets/{gherkin-CY_VLUnD.js → gherkin-cuHHmRcX.js} +0 -0
  273. package/dist/client/assets/{github-dark-ClO4AStc.js → github-dark-CEBLh0--.js} +0 -0
  274. package/dist/client/assets/{github-dark-default-CM0dPco8.js → github-dark-default-Dq0Z4Xai.js} +0 -0
  275. package/dist/client/assets/{github-dark-dimmed-Cb6xxpXY.js → github-dark-dimmed-D90YmS4w.js} +0 -0
  276. package/dist/client/assets/{github-dark-high-contrast-BpYtx2-M.js → github-dark-high-contrast-B6BWv1iC.js} +0 -0
  277. package/dist/client/assets/{github-light-default-BmnCWL6x.js → github-light-default-DsPWmj4v.js} +0 -0
  278. package/dist/client/assets/{github-light-high-contrast-rpagNF5O.js → github-light-high-contrast-C7aLb3kp.js} +0 -0
  279. package/dist/client/assets/{github-light-CeOVFgf_.js → github-light-lXSVSq5T.js} +0 -0
  280. package/dist/client/assets/{gleam-BarIG9kQ.js → gleam-D8VhqPDN.js} +0 -0
  281. package/dist/client/assets/{gn-DhYsTPYc.js → gn-BjGRlX27.js} +0 -0
  282. package/dist/client/assets/{gnuplot-CucLlTBc.js → gnuplot-BZCXuE4q.js} +0 -0
  283. package/dist/client/assets/{go-toi-uWvg.js → go-BJpWXZEs.js} +0 -0
  284. package/dist/client/assets/{groovy-Ds4dis_k.js → groovy-D9w3Dn-z.js} +0 -0
  285. package/dist/client/assets/{gruvbox-dark-hard-aPiW8pQh.js → gruvbox-dark-hard-_deksD0U.js} +0 -0
  286. package/dist/client/assets/{gruvbox-dark-medium-2HJCvzsS.js → gruvbox-dark-medium-CT31284j.js} +0 -0
  287. package/dist/client/assets/{gruvbox-dark-soft-Da97ODX9.js → gruvbox-dark-soft-BZuEUCbj.js} +0 -0
  288. package/dist/client/assets/{gruvbox-light-hard-BXlEipFe.js → gruvbox-light-hard-dxv4n_ZS.js} +0 -0
  289. package/dist/client/assets/{gruvbox-light-medium-Cun-GjGk.js → gruvbox-light-medium-BsW_fVfR.js} +0 -0
  290. package/dist/client/assets/{gruvbox-light-soft-Bd3qiiSw.js → gruvbox-light-soft-BiGy99gD.js} +0 -0
  291. package/dist/client/assets/{haskell-B_jvz5Po.js → haskell-DqDdKEgk.js} +0 -0
  292. package/dist/client/assets/{haxe-BRbuo5UO.js → haxe-DMg0jS3a.js} +0 -0
  293. package/dist/client/assets/{hcl-BzNUCtsK.js → hcl-SZIZUK_X.js} +0 -0
  294. package/dist/client/assets/{hjson-BxVo3sS2.js → hjson-DF1VspiE.js} +0 -0
  295. package/dist/client/assets/{hlsl-C8Wes1nf.js → hlsl-DPe9L0Dt.js} +0 -0
  296. package/dist/client/assets/{horizon-D54PjLAY.js → horizon-Ngud75Kn.js} +0 -0
  297. package/dist/client/assets/{horizon-bright-D9RccdIr.js → horizon-bright-Cnljd0XD.js} +0 -0
  298. package/dist/client/assets/{houston-CMu1N_4K.js → houston-BenZxlMr.js} +0 -0
  299. package/dist/client/assets/{hy-dMrJKKU_.js → hy-B0f-B1mH.js} +0 -0
  300. package/dist/client/assets/{imba-DG_oO8tg.js → imba-Bq3j1cW5.js} +0 -0
  301. package/dist/client/assets/{ini-geHw79Aj.js → ini-BayloP2U.js} +0 -0
  302. package/dist/client/assets/{json5-CDUsNqz6.js → json5-CRSfdIrY.js} +0 -0
  303. package/dist/client/assets/{jsonc-D48xcwyD.js → jsonc-y4g9DQPx.js} +0 -0
  304. package/dist/client/assets/{jsonl-cpIYDXEe.js → jsonl-D2paVn9r.js} +0 -0
  305. package/dist/client/assets/{jsonnet-Da1lhszN.js → jsonnet-CLH27mtz.js} +0 -0
  306. package/dist/client/assets/{jssm-B8BLrEGL.js → jssm-CPPYaqX-.js} +0 -0
  307. package/dist/client/assets/{kanagawa-dragon-2Sk8Rx83.js → kanagawa-dragon-Bt5mhLu1.js} +0 -0
  308. package/dist/client/assets/{kanagawa-lotus-CQVSWfJp.js → kanagawa-lotus-FGA3pRJk.js} +0 -0
  309. package/dist/client/assets/{kanagawa-wave-BKWNioLX.js → kanagawa-wave-DnLVZPAD.js} +0 -0
  310. package/dist/client/assets/{kdl-B-2tSRmp.js → kdl-D1BQjjnw.js} +0 -0
  311. package/dist/client/assets/{kotlin-DepsEzh3.js → kotlin-ndCaDnf0.js} +0 -0
  312. package/dist/client/assets/{kusto-BcCtXIb8.js → kusto-D-4nbkD3.js} +0 -0
  313. package/dist/client/assets/{laserwave-BUqkO46F.js → laserwave-D2qAZkaG.js} +0 -0
  314. package/dist/client/assets/{lean-CNO9ffpX.js → lean-YmtAsB0p.js} +0 -0
  315. package/dist/client/assets/{less-Dj0T9pWC.js → less-DyHub3ow.js} +0 -0
  316. package/dist/client/assets/{light-plus-C9Hnuc1T.js → light-plus-CP13QUvm.js} +0 -0
  317. package/dist/client/assets/{llvm-DbV9b66l.js → llvm-DCcqrY0D.js} +0 -0
  318. package/dist/client/assets/{log-BMblmPyH.js → log-DWAAMNbe.js} +0 -0
  319. package/dist/client/assets/{logo-B78qMxws.js → logo-ClQMGkNL.js} +0 -0
  320. package/dist/client/assets/{luau-BUd8xsdE.js → luau-CmcXFvLt.js} +0 -0
  321. package/dist/client/assets/{make-Ev-6cJrd.js → make-DcfJyUzm.js} +0 -0
  322. package/dist/client/assets/{markdown-CS4LI6sN.js → markdown-DXxotAxn.js} +0 -0
  323. package/dist/client/assets/{material-theme-5rA1zn0D.js → material-theme-JFoPTBSr.js} +0 -0
  324. package/dist/client/assets/{material-theme-darker-DGOEiL65.js → material-theme-darker-BHaqZ19v.js} +0 -0
  325. package/dist/client/assets/{material-theme-lighter-CULfFRX0.js → material-theme-lighter-CGnnS2bs.js} +0 -0
  326. package/dist/client/assets/{material-theme-ocean-LQZ9CleP.js → material-theme-ocean-Drhewjqf.js} +0 -0
  327. package/dist/client/assets/{material-theme-palenight-Di_f5oks.js → material-theme-palenight-DbUypmpb.js} +0 -0
  328. package/dist/client/assets/{matlab-C0qEtAx9.js → matlab-BlfbTznR.js} +0 -0
  329. package/dist/client/assets/{mdx-CzvnbLXb.js → mdx-H8fyPQd8.js} +0 -0
  330. package/dist/client/assets/{mermaid-BPquZaKt.js → mermaid-CWAV2dmV.js} +0 -0
  331. package/dist/client/assets/{min-dark-rkuIbtJV.js → min-dark-BEelvXUB.js} +0 -0
  332. package/dist/client/assets/{min-light-Dj_HOGsr.js → min-light-CTPBOACR.js} +0 -0
  333. package/dist/client/assets/{mipsasm-k5DQoS6j.js → mipsasm-BWYFAm2s.js} +0 -0
  334. package/dist/client/assets/{mojo-sTTDuNnR.js → mojo-DZcPJEIN.js} +0 -0
  335. package/dist/client/assets/{monokai-D5p-u2ij.js → monokai-DQlZXbkg.js} +0 -0
  336. package/dist/client/assets/{moonbit-j5ChFtBC.js → moonbit-6eslNlJL.js} +0 -0
  337. package/dist/client/assets/{move-Dj0Gmn6R.js → move-DxFc9-QU.js} +0 -0
  338. package/dist/client/assets/{narrat-DJgMz2oW.js → narrat-gv38dJOT.js} +0 -0
  339. package/dist/client/assets/{nextflow-groovy-eDLuZ_oi.js → nextflow-groovy-DV4H3hok.js} +0 -0
  340. package/dist/client/assets/{night-owl-CEdtPl3A.js → night-owl-BLcrYhaC.js} +0 -0
  341. package/dist/client/assets/{night-owl-light-GdSldewm.js → night-owl-light-BG-tBJOz.js} +0 -0
  342. package/dist/client/assets/{nix-CxIPS3pb.js → nix-NlOz3HGM.js} +0 -0
  343. package/dist/client/assets/{nord-3WFAz5H9.js → nord-Dm2F5_QB.js} +0 -0
  344. package/dist/client/assets/{nushell-GDfBmoBU.js → nushell-D86Z8aFF.js} +0 -0
  345. package/dist/client/assets/{objective-c-MFQ_MGUa.js → objective-c-iuJvUjCv.js} +0 -0
  346. package/dist/client/assets/{objective-cpp-Y83LcBE7.js → objective-cpp-C62JvfMT.js} +0 -0
  347. package/dist/client/assets/{ocaml-FxYfaJxu.js → ocaml-Rbryo9lg.js} +0 -0
  348. package/dist/client/assets/{odin-CprihY3z.js → odin-CfaOVNP_.js} +0 -0
  349. package/dist/client/assets/{one-dark-pro-BB6mpmmA.js → one-dark-pro-DC9SHdX0.js} +0 -0
  350. package/dist/client/assets/{one-light-BYLoxNtg.js → one-light-Doo39p0H.js} +0 -0
  351. package/dist/client/assets/{openscad-Bc1FbpOi.js → openscad-DCRhgheK.js} +0 -0
  352. package/dist/client/assets/{pascal-Bb4d8cUL.js → pascal-CTesTHtV.js} +0 -0
  353. package/dist/client/assets/{pierre-dark-cF19s-RM.js → pierre-dark-Gtc9M_gS.js} +0 -0
  354. package/dist/client/assets/{pierre-light-BdpX8OpD.js → pierre-light-EDxMHmhf.js} +0 -0
  355. package/dist/client/assets/{pkl-tM25Sq0w.js → pkl-BjUMjQkt.js} +0 -0
  356. package/dist/client/assets/{plastic-D3k2Xp_5.js → plastic-B3CcSpon.js} +0 -0
  357. package/dist/client/assets/{plsql-CLEfFhSj.js → plsql-BgKEZSSo.js} +0 -0
  358. package/dist/client/assets/{po-CaAzdrrh.js → po-C5s_CVt8.js} +0 -0
  359. package/dist/client/assets/{poimandres-bPTvT4Da.js → poimandres-BsK70ma5.js} +0 -0
  360. package/dist/client/assets/{polar-TG7aTGdK.js → polar-y4hX8qM0.js} +0 -0
  361. package/dist/client/assets/{postcss-8kqfa9f0.js → postcss-BHCm7Qae.js} +0 -0
  362. package/dist/client/assets/{powerquery-CtSu1Nfd.js → powerquery-C2vMt8aZ.js} +0 -0
  363. package/dist/client/assets/{powershell-87lLBHMy.js → powershell-DEcjmg1c.js} +0 -0
  364. package/dist/client/assets/{prisma-Dnf694DZ.js → prisma-Ba-Tcxy5.js} +0 -0
  365. package/dist/client/assets/{prolog-C0XbHTWa.js → prolog-B4o261Jv.js} +0 -0
  366. package/dist/client/assets/{proto-BZP-HLIb.js → proto-o3IZKiMR.js} +0 -0
  367. package/dist/client/assets/{puppet-CJYWgYC5.js → puppet-BC0dqZ31.js} +0 -0
  368. package/dist/client/assets/{purescript-B95Q6BAd.js → purescript-CLDw1y5G.js} +0 -0
  369. package/dist/client/assets/{python-CqTCsi7P.js → python-D1NFioGW.js} +0 -0
  370. package/dist/client/assets/{qmldir-DlIL4hls.js → qmldir-B7i9e9Vn.js} +0 -0
  371. package/dist/client/assets/{qss-BW72E0q_.js → qss-DIe6oKX8.js} +0 -0
  372. package/dist/client/assets/{racket-CCAimEsC.js → racket-CAOC_yyk.js} +0 -0
  373. package/dist/client/assets/{raku-mSuqElkM.js → raku-Ccua3vW6.js} +0 -0
  374. package/dist/client/assets/{red-C-DA4yBI.js → red-DtDH206x.js} +0 -0
  375. package/dist/client/assets/{reg-CGwMBJ2c.js → reg-CAYZT9kE.js} +0 -0
  376. package/dist/client/assets/{rel-JwrbYgX4.js → rel-cvB6F5nO.js} +0 -0
  377. package/dist/client/assets/{riscv-CoYyE75b.js → riscv-SYGtE4EN.js} +0 -0
  378. package/dist/client/assets/{ron-C5wrhnmJ.js → ron-CRt869SB.js} +0 -0
  379. package/dist/client/assets/{rose-pine-DlrMPYYd.js → rose-pine-CjBfSJ5b.js} +0 -0
  380. package/dist/client/assets/{rose-pine-dawn-DBHFtZD2.js → rose-pine-dawn-C0xwy7iJ.js} +0 -0
  381. package/dist/client/assets/{rose-pine-moon-BBfrpe5q.js → rose-pine-moon-BSNy9Ty0.js} +0 -0
  382. package/dist/client/assets/{rosmsg-DlimTR9t.js → rosmsg-BwrfJ66Z.js} +0 -0
  383. package/dist/client/assets/{rust-Cxnkxx3h.js → rust-DCKTTPxN.js} +0 -0
  384. package/dist/client/assets/{sass-DEyqUIpU.js → sass-CorcwySt.js} +0 -0
  385. package/dist/client/assets/{scala-i3RN3yAN.js → scala-DlI-OmYj.js} +0 -0
  386. package/dist/client/assets/{scheme-BcKdjYkO.js → scheme-CcNEGkZH.js} +0 -0
  387. package/dist/client/assets/{sdbl-Be_XWc3n.js → sdbl-AL_m-RO_.js} +0 -0
  388. package/dist/client/assets/{slack-dark-3PDtm74m.js → slack-dark-rMhrfPm6.js} +0 -0
  389. package/dist/client/assets/{slack-ochin-CwiuFRJD.js → slack-ochin-9w8X74hU.js} +0 -0
  390. package/dist/client/assets/{smalltalk-BdBlL6ks.js → smalltalk-Y2ogrfbk.js} +0 -0
  391. package/dist/client/assets/{snazzy-light-Dyqc8Is2.js → snazzy-light-DHr9ygpP.js} +0 -0
  392. package/dist/client/assets/{solarized-dark-DZiTscIX.js → solarized-dark-UPcKev9Q.js} +0 -0
  393. package/dist/client/assets/{solarized-light-DBcfxrfG.js → solarized-light-DUsjROvl.js} +0 -0
  394. package/dist/client/assets/{solidity-DH-yUSWc.js → solidity-Bfbm9QZQ.js} +0 -0
  395. package/dist/client/assets/{splunk-CIjc4kxs.js → splunk-6DJA2XFa.js} +0 -0
  396. package/dist/client/assets/{ssh-config-BKVd4drG.js → ssh-config-CbQtdF-u.js} +0 -0
  397. package/dist/client/assets/{stylus-tqAsmugv.js → stylus-B_iq45Sj.js} +0 -0
  398. package/dist/client/assets/{swift-CdDBQ3_Z.js → swift-C7KIgN-p.js} +0 -0
  399. package/dist/client/assets/{synthwave-84-CbbRs73K.js → synthwave-84-lf_Wt0K_.js} +0 -0
  400. package/dist/client/assets/{system-verilog-CBqEY-9v.js → system-verilog-C3G9wERd.js} +0 -0
  401. package/dist/client/assets/{systemd-khRP5zwK.js → systemd-CwxGrojj.js} +0 -0
  402. package/dist/client/assets/{talonscript-D_lneH-6.js → talonscript-DqnSo1EO.js} +0 -0
  403. package/dist/client/assets/{tasl-CLymawGe.js → tasl-T8ethp86.js} +0 -0
  404. package/dist/client/assets/{tcl-BRY1S87U.js → tcl-Ccl366o0.js} +0 -0
  405. package/dist/client/assets/{terraform-BqohMo2f.js → terraform-BBf6ZI_0.js} +0 -0
  406. package/dist/client/assets/{tokyo-night-BWUONxad.js → tokyo-night-BF5ata25.js} +0 -0
  407. package/dist/client/assets/{toml-C4c85Lwg.js → toml-C5Z_BR4r.js} +0 -0
  408. package/dist/client/assets/{tsv-DsZq9HBQ.js → tsv-rX8sUJs7.js} +0 -0
  409. package/dist/client/assets/{turtle-Dpr8zLlw.js → turtle-BM-MG8WY.js} +0 -0
  410. package/dist/client/assets/{typespec-DcqgATB-.js → typespec-C5gKydvR.js} +0 -0
  411. package/dist/client/assets/{typst-CeVxmuPg.js → typst--_5VchrY.js} +0 -0
  412. package/dist/client/assets/{v-C2Qsh2-1.js → v-C6PwpmTC.js} +0 -0
  413. package/dist/client/assets/{vala-CvZ3yL7c.js → vala-4pTaceSj.js} +0 -0
  414. package/dist/client/assets/{vb-B_p4qDw4.js → vb-DhoR5A6S.js} +0 -0
  415. package/dist/client/assets/{verilog-D8MGjxD7.js → verilog-B9f_1lPn.js} +0 -0
  416. package/dist/client/assets/{vesper-DossXiE1.js → vesper-CmBi_iCT.js} +0 -0
  417. package/dist/client/assets/{vhdl-MLyYh_Gz.js → vhdl-Cy4RAmOe.js} +0 -0
  418. package/dist/client/assets/{viml-BuYIArcz.js → viml-CFQW-CcD.js} +0 -0
  419. package/dist/client/assets/{vitesse-black-C3kc1227.js → vitesse-black-CE8RoBJP.js} +0 -0
  420. package/dist/client/assets/{vitesse-dark-kWOu5V36.js → vitesse-dark-BpF142p_.js} +0 -0
  421. package/dist/client/assets/{vitesse-light-DMtiL8bK.js → vitesse-light-CMwxPBrg.js} +0 -0
  422. package/dist/client/assets/{vyper-CNqG09-_.js → vyper-BW5zj9bE.js} +0 -0
  423. package/dist/client/assets/{wasm-BsQDV7Y0.js → wasm-BigxSLnm.js} +0 -0
  424. package/dist/client/assets/{wasm-DFVlQlgd.js → wasm-CSccDuAq.js} +0 -0
  425. package/dist/client/assets/{wenyan-BmOQge13.js → wenyan-BZzM1SQT.js} +0 -0
  426. package/dist/client/assets/{wgsl-CgWrmvIg.js → wgsl-xBPHbLlq.js} +0 -0
  427. package/dist/client/assets/{wikitext-DkwckXCk.js → wikitext-BXJWUNJK.js} +0 -0
  428. package/dist/client/assets/{wit-CtyVFGe7.js → wit-2GnUs67P.js} +0 -0
  429. package/dist/client/assets/{wolfram-CXE4FrKz.js → wolfram-DIFDmw-g.js} +0 -0
  430. package/dist/client/assets/{zenscript-DH15wJt0.js → zenscript-DQaUUjbx.js} +0 -0
  431. package/dist/client/assets/{zig-CqXN9brD.js → zig-BDepRvBi.js} +0 -0
  432. package/dist/{update-check-KL-2sGxE.mjs → update-check-DAPFCqpF.mjs} +1 -1
package/README.md CHANGED
@@ -22,6 +22,16 @@ diffing
22
22
  ```
23
23
  This instantly spins up a local server, establishes an active repository watcher, and opens your default browser to an interactive code review dashboard.
24
24
 
25
+ Prefer the terminal? Add `--tui` for a native-Rust terminal UI — same review flow, no browser:
26
+ ```bash
27
+ diffing --tui
28
+ ```
29
+ > [!WARNING]
30
+ > The TUI is **experimental** in v0.3.0. The interface, keymap, and
31
+ > `server.json` (`mode: "tui"`) on-disk format may change in a minor
32
+ > release. The web UI is the supported path for production workflows.
33
+ > See [Native Terminal UI (TUI)](#native-terminal-ui-tui) for the full feature set, keymap, and stability notes.
34
+
25
35
  ### 3. Update
26
36
  Check if a new version is available on npm and upgrade instantly via the CLI:
27
37
  ```bash
@@ -40,7 +50,7 @@ A local Hono-powered review server delivers a full-featured GitHub-like code rev
40
50
  - **Status Dashboard (Comment Tracker)** — Bottom panel tracking open, replied, and resolved comments with filter tabs and click-to-navigate references to the relevant file and line.
41
51
  - **Git Diff Stats** — Toolbar displays repo name, branch, file count, and additions/deletions (`+X/-Y`) computed from the patch.
42
52
  - **Server-Side State & Drafts Persistence** — No browser storage is used. All settings, UI panels sizing, session states, and comment drafts are securely stored and persisted server-side in the project's global `.diffing` directory (and global settings inside `~/.config/diffing/settings.json`).
43
- - **Dynamic Font Customization** — Dynamically load, cache, and apply any Google Fonts or local system fonts for both UI typography and monospace code rendering, easily configurable via the settings font picker.
53
+ - **Dynamic Font Customization** — Pick any [Google Fonts](https://fonts.google.com/) family or locally-installed system font for both UI typography and monospace code rendering, configurable via the settings font picker. Google-hosted families are fetched automatically as web fonts and render everywhere; local fonts are applied by name (see the [note on custom fonts](#a-note-on-custom-fonts)).
44
54
  - **Resizable Panels** — Drag-to-resize sidebar (240px–640px) and comment tracker panel (100px–600px). Panel states are instantly saved server-side for absolute consistency across browser sessions.
45
55
  - **Skeleton Loading Screen** — Full shimmer placeholder UI for toolbar, sidebar, search, tree nodes, and file diffs during initial load.
46
56
  - **Image Diff Previews** — Visual side-by-side comparison for added, changed, and deleted image files (PNG, JPEG, GIF, WebP, SVG, BMP, ICO, AVIF).
@@ -131,6 +141,52 @@ A vim-style status bar at the bottom displays the current mode (NORMAL/INSERT),
131
141
  <img width="1840" height="1196" alt="image" src="https://github.com/user-attachments/assets/d230d020-4fb2-475a-a8a0-0ae11bb271ff" />
132
142
 
133
143
 
144
+ ---
145
+
146
+ ## Native Terminal UI (TUI) — *Experimental*
147
+
148
+ > [!WARNING]
149
+ > The TUI is **experimental** in v0.3.0. The interface, keymap, and on-disk
150
+ > format of `server.json` (`mode: "tui"`) may change in a minor release
151
+ > before stabilisation. The web UI is the supported path for production
152
+ > workflows; please open an issue before depending on the TUI for CI / agent
153
+ > automation. The web review flow, plan review, and PR review are unaffected.
154
+
155
+ `diffing --tui` opens an **opt-in native-Rust terminal interface** that mirrors the web review dashboard — no browser, no Electron, no port. It's a leaf renderer in a new `crates/diffing-tui/` binary: the Node CLI is still the single source of truth for arg parsing, lockfile discovery, and agent handoff, and the TUI reads the same `~/.diffing/<repo>/*` state on disk and writes a `server.json` with `mode: "tui"`.
156
+
157
+ The default `diffing` behaviour is **byte-identical** with and without `--tui` — the TUI is strictly opt-in. If the env cannot support a TUI (piped stdin, CI, no raw mode) or the binary is missing, you get a one-line stderr note and the normal `git diff` output. The web mode is also unaffected by the TUI build; the same `diffing` install serves either.
158
+
159
+ ```bash
160
+ diffing --tui # Open the current working tree in the TUI
161
+ diffing --tui --staged # Review staged changes in the TUI
162
+ diffing --tui HEAD~3 # Review working tree vs. 3 commits ago
163
+ diffing --tui main..feature # Compare two branches in the TUI
164
+ diffing --tui -- -- src/ # Limit a TUI review to a directory
165
+ ```
166
+
167
+ **Stack** — Rust 1.78+ workspace (`crates/diffing-core/` shared lib + `crates/diffing-tui/` binary), `ratatui` + `crossterm` for rendering, `syntect` for syntax highlighting, `notify-debouncer-full` for live updates.
168
+
169
+ **Features**
170
+
171
+ - **Unified diff render** with a virtualised file card, syntect highlighter, and the same 8 Shiki-compatible colour themes as the web UI.
172
+ - **Vim-style file tree & keymap** — `j/k/gg/G/J/K/Tab/w/t/m/?/` motions, plus `c` (new comment), `e/r/x` (edit / reply / resolve), `]`/`[` (next / previous thread), `?` (help).
173
+ - **Full comment CRUD** — mirrors `src/lib/comments.ts` byte-for-byte; the comment tracker at the bottom lists open / replied / resolved threads with click-to-jump navigation.
174
+ - **Multi-line `tui-textarea` form** with markdown rendering in the preview pane.
175
+ - **Live updates** via `notify` watcher on `comments.json` and the repo working tree — write a comment in another window and it appears immediately.
176
+ - **Send review & agent handoff** — verdict radios + general-comment popover with a live XML preview. Submits via the same `format_comments` envelope as the web UI, copies to clipboard (`pbcopy` / `wl-copy` / `xclip` / `xsel` / `clip.exe`), and persists `pending-review.xml`. The agent-status indicator in the status bar mirrors the web UI's "Send to agent" connection dot.
177
+ - **Cross-platform** — macOS, Linux, and Windows are all first-class. The TUI liveness probe uses `kill(pid, 0)` on Unix and `tasklist /NH /FO CSV` on Windows. Clipboard works on Wayland (`wl-copy`), X11 (`xclip` / `xsel`), macOS (`pbcopy`), and Windows (`clip.exe` / PowerShell `Set-Clipboard`).
178
+
179
+ **Caveat** — the TUI's "Send to agent" writes the review to disk + clipboard but does not actively unblock a long-polling `diffing await-review`; that requires a Node-side change in a follow-up. The web UI's send button remains the supported native handoff path. The `pending-review.xml` is still produced and the review session is still round-incremented — only the long-poll wake-up is missing.
180
+
181
+ **Building the binary locally**
182
+
183
+ ```bash
184
+ pnpm build:tui # debug build → target/debug/diffing-tui
185
+ pnpm build:tui --release # release build → target/release/diffing-tui
186
+ ```
187
+
188
+ The CLI auto-discovers the binary in the following search order: sibling of `dist/cli.mjs`, `bin/`, `target/release/`, `target/debug/`, then `$PATH`. A `cargo build` (debug) workflow is supported out of the box; you don't need `--release` just to use the TUI.
189
+
134
190
  ---
135
191
 
136
192
  ## Console Startup Animations & Quotes
@@ -315,7 +371,79 @@ self-documenting `<plan-review>` envelope:
315
371
 
316
372
  <img width="1667" height="1087" alt="image" src="https://github.com/user-attachments/assets/00e884b5-4c90-4a9a-9e24-9ae57d80f3f2" />
317
373
 
374
+ ---
375
+
376
+ ## Reviewing a GitHub PR
377
+
378
+ `diffing` can open a GitHub PR in the same diff UI you use for the working
379
+ tree, and push your review back to GitHub when you're done. The "Send to
380
+ agent" handoff is **structurally absent** in PR mode — there's no way to
381
+ accidentally route a PR review to a coding agent.
382
+
383
+ ```text
384
+ # All of these open PR #1234 in the current repo:
385
+ diffing "gh pr 1234"
386
+ diffing --gh-pr 1234
387
+
388
+ # Full URL form:
389
+ diffing "gh pr https://github.com/ahmedragab20/diffing/pull/1234"
390
+ diffing --gh-pr https://github.com/ahmedragab20/diffing/pull/1234
391
+
392
+ # owner/repo#N shorthand (skips the cwd-repo check):
393
+ diffing "gh pr ahmedragab20/diffing#1234"
394
+ ```
395
+
396
+ The PR diff loads in the existing `<DiffViewer>` / `<FileTree>` machinery.
397
+ Existing review comments on the PR are fetched and shown as a read-only
398
+ summary strip below each file so you can see what was already said before
399
+ adding your own. Comments you write are kept visually distinct.
400
+
401
+ When you click **Submit to GitHub**, `diffing` builds a `POST
402
+ /repos/{owner}/{repo}/pulls/{pull_number}/reviews` payload and POSTs it
403
+ to GitHub. Multi-line comments are expanded to N single-line comments
404
+ with a `[part N/M]` prefix. Existing comments are **never re-POSTed** —
405
+ only the new ones you wrote in this session.
406
+
407
+ ### Headless subcommands
408
+
409
+ For CI / agent use, the same flow is exposed as a `gh` subcommand with no
410
+ UI:
411
+
412
+ ```text
413
+ # Submit the current in-progress review to GitHub.
414
+ diffing gh pr-review 1234 --decision request-changes --body "Please address the range"
415
+
416
+ # Dump PR metadata (title, owner, head SHA, existing comments) as JSON.
417
+ diffing gh pr-fetch 1234
418
+
419
+ # List the PR-mode comments in this diffing session (mirrors `diffing comments`).
420
+ diffing gh pr-list-comments
421
+
422
+ # Show the active PR session (ref, owner/repo#n, comment count, submitted status).
423
+ diffing gh status
424
+ ```
425
+
426
+ ### Authentication
427
+
428
+ The submit path uses the same precedence as the rest of the GitHub
429
+ ecosystem:
430
+
431
+ 1. **`gh` CLI** — preferred; uses your existing `gh auth login` session.
432
+ 2. **Token env var** — `$GH_TOKEN`, then `$GITHUB_TOKEN`, then
433
+ `$GITHUB_API_TOKEN` (any of the three).
434
+ 3. If neither is available, the submit fails with a clear one-line
435
+ message telling you to run `gh auth login` or set `$GITHUB_TOKEN`.
436
+
437
+ The `gh` binary is **only** used for the submit and refresh steps; the
438
+ diff itself is rendered locally, so PR review works offline once the
439
+ session is open.
440
+
441
+ ### Storage
318
442
 
443
+ PR-mode state lives in `pr-session.json` (in the per-repo
444
+ `~/.diffing/<repo>-<hash>/` directory) — a separate file from
445
+ `comments.json` and `plans.json`, so a local review and a PR review can
446
+ coexist without colliding.
319
447
 
320
448
  ---
321
449
 
@@ -354,6 +482,12 @@ Fine-grained control over how diffs are rendered:
354
482
 
355
483
  All settings persist to `~/.config/diffing/settings.json` and the UI updates are wrapped in `useTransition` for non-blocking responsiveness.
356
484
 
485
+ #### A note on custom fonts
486
+
487
+ Google-hosted families (e.g. `Fira Code`, `Source Code Pro`, `IBM Plex Mono`, `Roboto Mono`) are fetched automatically as web fonts and render in any browser. A **locally-installed** font — a Nerd Font, or a commercial font like `Dank Mono` — is applied by name and renders only if it is installed on your machine **and** your browser allows pages to use local fonts.
488
+
489
+ Privacy-hardened browsers block this: **Brave**, with Shields / "Block fingerprinting" enabled (the default), refuses to render uncommon local fonts as an anti-fingerprinting measure, so the selection silently falls back to the default monospace even though it is installed. To use a local-only font there, either pick a Google-hosted equivalent, or open **Shields** for the diffing site, set fingerprinting to *Allow all*, and reload.
490
+
357
491
  ---
358
492
 
359
493
  ## Merge Conflict Resolution
@@ -410,6 +544,23 @@ To integrate flawlessly with your existing developer shell workflows, build pipe
410
544
  > [!TIP]
411
545
  > For a full list of all git option categories (algorithms, whitespace ignoring, context lines, word-level diffs, moved/copied detection, and path filtering) supported by `diffing`, see the [CLI Reference Manual](docs/cli.md).
412
546
 
547
+ ### `diffing show` — Review a Commit's Changes (Drop-in for `git show`)
548
+
549
+ `diffing <sha>` runs `git diff <sha>`, which means "diff between `<sha>` and the working tree" — not the changes that commit introduced. If the working tree matches `<sha>`, the patch is empty and the file list renders blank.
550
+
551
+ To review the changes **of** a commit, use the new `show` subcommand. It mirrors `git show` and surfaces each commit's metadata (subject, author, date, message body) above the diff in the web UI:
552
+
553
+ ```bash
554
+ diffing show HEAD # Review the tip commit's metadata + diff
555
+ diffing show HEAD~3..HEAD # Review the last 3 commits as a series
556
+ diffing show v1.0 # The commit a tag points to
557
+ diffing show abc123 def456 # Two specific commits, oldest-first
558
+ diffing show HEAD -- src/ # Limit a commit review to a directory
559
+ diffing show HEAD~2..HEAD --terminal # Stream `git show` to your terminal
560
+ ```
561
+
562
+ `show` accepts every form `git show` understands (single commit, range, tag, branch tip, multiple SHAs) and is strictly opt-in — `diffing <sha>` keeps its current `git diff <sha>` semantics so existing muscle memory and scripts are unaffected.
563
+
413
564
  ---
414
565
 
415
566
  ## Integration & Configuration
@@ -502,6 +653,12 @@ For advanced features, internal API endpoints, sequence specifications, and conf
502
653
 
503
654
  ---
504
655
 
656
+ ## Landing Page
657
+
658
+ <img width="1287" height="6579" alt="screencapture-localhost-3000-2026-05-31-20_57_04" src="https://github.com/user-attachments/assets/a163b00e-a85a-428f-b8d5-2a33ff9fa1eb" />
659
+
660
+ ---
661
+
505
662
  👉🏻 The project was intially forked from **wong2/diffx**
506
663
 
507
664
  ## License
@@ -1,4 +1,5 @@
1
- import { c as formatComments, n as readServerLock, o as formatPlanReview, t as isLockAlive } from "./server-lock-DpCrvL-Z.mjs";
1
+ import { a as formatComments, n as readServerLock, t as isLockAlive } from "./server-lock-Dj9fG9md.mjs";
2
+ import { n as formatPlanReview } from "./plan-format-f62JWFI-.mjs";
2
3
  import { parseArgs } from "node:util";
3
4
  import { readFile } from "node:fs/promises";
4
5
  //#region src/cli-agent.ts
@@ -435,8 +436,11 @@ async function runSubcommand(name, args) {
435
436
  case "url": return url();
436
437
  case "plan": return plan(args);
437
438
  case "update":
438
- const { runUpdateCommand } = await import("./update-check-DJuFE9w6.mjs");
439
+ const { runUpdateCommand } = await import("./update-check-DAPFCqpF.mjs");
439
440
  return runUpdateCommand();
441
+ case "gh":
442
+ const { runGhSubcommand } = await import("./cli-gh-CDGSpndZ.mjs");
443
+ return runGhSubcommand(args);
440
444
  default:
441
445
  console.error(`Unknown subcommand: ${name}`);
442
446
  return EXIT_USAGE;
@@ -0,0 +1,147 @@
1
+ import { a as formatComments, n as readServerLock, t as isLockAlive } from "./server-lock-Dj9fG9md.mjs";
2
+ import { parseArgs } from "node:util";
3
+ //#region src/cli-gh.ts
4
+ /**
5
+ * `diffing gh …` — the headless / port-agnostic surface for the PR review
6
+ * mode. Mirrors the shape of the local review CLI: each subcommand resolves
7
+ * the running server from the per-repo lockfile and talks to it via
8
+ * localhost HTTP. No port ever leaves the lockfile.
9
+ *
10
+ * diffing gh pr-fetch <ref> → GET /api/gh/pr/init then dump
11
+ * diffing gh pr-review → POST /api/gh/submit (current session)
12
+ * diffing gh pr-list-comments → GET /api/gh/pr-session/comments (XML)
13
+ * diffing gh status → GET /api/gh/session (one-line summary)
14
+ */
15
+ const EXIT_OK = 0;
16
+ const EXIT_NO_SERVER = 3;
17
+ const EXIT_NOT_FOUND = 4;
18
+ const EXIT_USAGE = 5;
19
+ function baseUrl() {
20
+ const lock = readServerLock();
21
+ if (!lock || !isLockAlive(lock)) {
22
+ console.error("No diffing server running for this repo. Start one with `diffing \"gh pr <ref>\"`.");
23
+ process.exit(EXIT_NO_SERVER);
24
+ }
25
+ return `http://${lock.host === "0.0.0.0" || lock.host === "::" ? "127.0.0.1" : lock.host}:${lock.port}`;
26
+ }
27
+ async function ghStatus() {
28
+ const base = baseUrl();
29
+ const res = await fetch(`${base}/api/gh/session`);
30
+ if (res.status === 404) {
31
+ console.error("No active PR session. Start one with `diffing \"gh pr <ref>\"`.");
32
+ return EXIT_NOT_FOUND;
33
+ }
34
+ const s = await res.json();
35
+ const submittedLine = s.submittedAt ? `submitted at ${new Date(s.submittedAt).toISOString()} → ${s.submittedReviewUrl ?? "(no url)"}` : "not submitted yet";
36
+ console.log(`${s.owner}/${s.repo}#${s.pullNumber} ${s.title}`);
37
+ console.log(` url: ${s.url}`);
38
+ console.log(` author: ${s.author?.login ?? "(unknown)"}`);
39
+ console.log(` +${s.additions} -${s.deletions} (${s.changedFiles} files)`);
40
+ console.log(` head: ${s.headSha.slice(0, 7)}`);
41
+ console.log(` base: ${s.baseSha.slice(0, 7)}`);
42
+ console.log(` existing: ${s.existingComments?.length ?? 0} review comments (read-only context)`);
43
+ console.log(` new: ${s.comments?.length ?? 0} comments in this session`);
44
+ console.log(` status: ${submittedLine}`);
45
+ return EXIT_OK;
46
+ }
47
+ async function ghPrFetch(args) {
48
+ const { values, positionals } = parseArgs({
49
+ args,
50
+ options: { json: { type: "boolean" } },
51
+ allowPositionals: true
52
+ });
53
+ const ref = positionals[0];
54
+ if (!ref) {
55
+ console.error("Usage: diffing gh pr-fetch <ref> [--json]");
56
+ return EXIT_USAGE;
57
+ }
58
+ const base = baseUrl();
59
+ const res = await fetch(`${base}/api/gh/pr/init`, {
60
+ method: "POST",
61
+ headers: { "Content-Type": "application/json" },
62
+ body: JSON.stringify({ ref })
63
+ });
64
+ if (!res.ok) {
65
+ const err = await res.json().catch(() => ({}));
66
+ console.error(`Failed to fetch PR: ${err.error ?? res.statusText}`);
67
+ return 1;
68
+ }
69
+ const result = await res.json();
70
+ if (values.json) process.stdout.write(JSON.stringify(result, null, 2) + "\n");
71
+ else console.log(`${result.owner}/${result.repo}#${result.pullNumber} ${result.url}`);
72
+ return EXIT_OK;
73
+ }
74
+ async function ghPrListComments() {
75
+ const base = baseUrl();
76
+ const res = await fetch(`${base}/api/gh/pr-session/comments`);
77
+ if (res.status === 404) {
78
+ console.error("No active PR session.");
79
+ return EXIT_NOT_FOUND;
80
+ }
81
+ const comments = await res.json();
82
+ process.stdout.write(formatComments(comments) + "\n");
83
+ return EXIT_OK;
84
+ }
85
+ async function ghPrReview(args) {
86
+ const { values } = parseArgs({
87
+ args,
88
+ options: {
89
+ decision: {
90
+ type: "string",
91
+ short: "d"
92
+ },
93
+ body: {
94
+ type: "string",
95
+ short: "b"
96
+ },
97
+ "dry-run": { type: "boolean" },
98
+ json: { type: "boolean" }
99
+ },
100
+ allowPositionals: false
101
+ });
102
+ const decision = values.decision;
103
+ if (decision !== "approve" && decision !== "comment" && decision !== "request-changes") {
104
+ console.error("Usage: diffing gh pr-review --decision <approve|comment|request-changes> [--body <text>] [--dry-run]");
105
+ return EXIT_USAGE;
106
+ }
107
+ const base = baseUrl();
108
+ const payload = {
109
+ decision,
110
+ body: values.body ?? "",
111
+ dryRun: values["dry-run"] === true
112
+ };
113
+ const res = await fetch(`${base}/api/gh/submit`, {
114
+ method: "POST",
115
+ headers: { "Content-Type": "application/json" },
116
+ body: JSON.stringify(payload)
117
+ });
118
+ if (!res.ok) {
119
+ const err = await res.json().catch(() => ({}));
120
+ console.error(`Failed to submit review: ${err.error ?? res.statusText}`);
121
+ return 1;
122
+ }
123
+ const result = await res.json();
124
+ if (values.json) process.stdout.write(JSON.stringify(result, null, 2) + "\n");
125
+ else if (result.ok) if (result.dryRun) console.log("Dry run OK — payload would have been accepted by GitHub.");
126
+ else console.log(`Review submitted via ${result.authSource}: ${result.reviewUrl ?? `#${result.reviewId}`}`);
127
+ else {
128
+ console.error(`Submit failed (auth=${result.authSource}): ${result.error ?? "unknown error"}`);
129
+ return 1;
130
+ }
131
+ return EXIT_OK;
132
+ }
133
+ async function runGhSubcommand(args) {
134
+ const action = args[0];
135
+ const rest = args.slice(1);
136
+ switch (action) {
137
+ case "status": return ghStatus();
138
+ case "pr-fetch": return ghPrFetch(rest);
139
+ case "pr-review": return ghPrReview(rest);
140
+ case "pr-list-comments": return ghPrListComments();
141
+ default:
142
+ console.error("Usage: diffing gh <status|pr-fetch|pr-review|pr-list-comments> [...]");
143
+ return EXIT_USAGE;
144
+ }
145
+ }
146
+ //#endregion
147
+ export { runGhSubcommand };