codemini-cli 0.6.2 → 0.6.4

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 (653) hide show
  1. package/codemini-web/dist/assets/{AboutDialog-CBmrZqhV.js → AboutDialog-MRopwNIL.js} +2 -2
  2. package/codemini-web/dist/assets/CodeWikiPanel-UpK5xGE3.js +1 -0
  3. package/codemini-web/dist/assets/ConfigDialog-CNl28wsj.js +1 -0
  4. package/codemini-web/dist/assets/GitDiffDialog-gSysUg2J.js +3 -0
  5. package/codemini-web/dist/assets/MemoryDialog-DFUmo3Kl.js +3 -0
  6. package/codemini-web/dist/assets/MessageBubble-CGnnViv0.js +12 -0
  7. package/codemini-web/dist/assets/PatchDiff-B8rwvEg5.js +230 -0
  8. package/codemini-web/dist/assets/ProjectSelector-BF59M1zb.js +1 -0
  9. package/codemini-web/dist/assets/SkillDialog-CQTjbSiw.js +8 -0
  10. package/codemini-web/dist/assets/SoulDialog-BLjUGqqB.js +1 -0
  11. package/codemini-web/dist/assets/{angular-html-DQ1gtQ6R.js → angular-html-BtqWAyby.js} +1 -1
  12. package/codemini-web/dist/assets/{angular-html-kg4tCYym.js → angular-html-Dqm-Ium4.js} +1 -1
  13. package/codemini-web/dist/assets/{angular-ts-C_VTyikG.js → angular-ts-BUlY5dZZ.js} +1 -1
  14. package/codemini-web/dist/assets/{angular-ts-QUaQh54x.js → angular-ts-DXMH5pbz.js} +1 -1
  15. package/codemini-web/dist/assets/{apl-D2YQXnhn.js → apl-B9jkvghZ.js} +1 -1
  16. package/codemini-web/dist/assets/{apl-DTyfz60o.js → apl-Bt--uCmj.js} +1 -1
  17. package/codemini-web/dist/assets/{astro-DrBiKBx0.js → astro-P-Wk2Uo3.js} +1 -1
  18. package/codemini-web/dist/assets/{astro-STdMQy7_.js → astro-ZfS8gVPQ.js} +1 -1
  19. package/codemini-web/dist/assets/{blade-BzcRYrK8.js → blade-CxVOILUn.js} +1 -1
  20. package/codemini-web/dist/assets/{blade-DV-5zppA.js → blade-DsiMSXb3.js} +1 -1
  21. package/codemini-web/dist/assets/{bsl-D8KU0pjR.js → bsl-9Rfj8X2G.js} +1 -1
  22. package/codemini-web/dist/assets/{bsl-JaCMWPaY.js → bsl-CZ9gUG7G.js} +1 -1
  23. package/codemini-web/dist/assets/{cairo-D7Xpkdmw.js → cairo-B8t0-PSB.js} +1 -1
  24. package/codemini-web/dist/assets/{cairo-DcJUH2W4.js → cairo-CZcbsYHl.js} +1 -1
  25. package/codemini-web/dist/assets/chevron-right--85xg7qk.js +1 -0
  26. package/codemini-web/dist/assets/{chunk-BO2N2NFS-C-dwTHqR.js → chunk-BO2N2NFS-6uELoidu.js} +6 -6
  27. package/codemini-web/dist/assets/{cobol-VahErUC5.js → cobol-BdhxDqSp.js} +1 -1
  28. package/codemini-web/dist/assets/{cobol-DcObg-T7.js → cobol-C67LYEki.js} +1 -1
  29. package/codemini-web/dist/assets/{coffee-B5QkIGo_.js → coffee-C_zREOQP.js} +1 -1
  30. package/codemini-web/dist/assets/{coffee-eHrF22jH.js → coffee-DYSdownS.js} +1 -1
  31. package/codemini-web/dist/assets/{cpp-hpmt0Dm0.js → cpp-BcL70P81.js} +1 -1
  32. package/codemini-web/dist/assets/{cpp-oPWeBIxQ.js → cpp-CmF4N5qy.js} +1 -1
  33. package/codemini-web/dist/assets/{crystal-CoivzC9J.js → crystal-CoqbT5f8.js} +1 -1
  34. package/codemini-web/dist/assets/{crystal-s_8obDZh.js → crystal-N7P3W5Mw.js} +1 -1
  35. package/codemini-web/dist/assets/{edge--dOGTygN.js → edge-DrMWCZ8c.js} +1 -1
  36. package/codemini-web/dist/assets/{edge-C-DECmFd.js → edge-DytV3yX5.js} +1 -1
  37. package/codemini-web/dist/assets/{elixir-9z9mJoua.js → elixir-BLpitXJw.js} +1 -1
  38. package/codemini-web/dist/assets/{elixir-D3BiPlt5.js → elixir-CNV7hmh2.js} +1 -1
  39. package/codemini-web/dist/assets/{elm-BuOfOpho.js → elm-C5ZqKzP8.js} +1 -1
  40. package/codemini-web/dist/assets/{elm-DjcEOkt6.js → elm-DuNA2Kle.js} +1 -1
  41. package/codemini-web/dist/assets/{erb-B6UlpZlF.js → erb-Cx6GPjju.js} +1 -1
  42. package/codemini-web/dist/assets/{erb-omHMX7PR.js → erb-CxvZayEs.js} +1 -1
  43. package/codemini-web/dist/assets/{erlang-DJdyEhn7.js → erlang-3or6Qr_S.js} +1 -1
  44. package/codemini-web/dist/assets/{erlang-l2na0rr-.js → erlang-CdOz9ruD.js} +1 -1
  45. package/codemini-web/dist/assets/{fortran-fixed-form-72xY_C5B.js → fortran-fixed-form-BmD2L0UY.js} +1 -1
  46. package/codemini-web/dist/assets/{fortran-fixed-form-Dyncprn4.js → fortran-fixed-form-Hy2szps7.js} +1 -1
  47. package/codemini-web/dist/assets/{fsharp-CAeGcLFg.js → fsharp-CgGHW39K.js} +1 -1
  48. package/codemini-web/dist/assets/{fsharp-D6WYKxtq.js → fsharp-DgKUr7h2.js} +1 -1
  49. package/codemini-web/dist/assets/{gdresource-Bac2fAQZ.js → gdresource-BqgTfeIa.js} +1 -1
  50. package/codemini-web/dist/assets/{gdresource-D9tlxSca.js → gdresource-D6abIutu.js} +1 -1
  51. package/codemini-web/dist/assets/{git-commit-BQ43t81h.js → git-commit-CPnaL3nl.js} +1 -1
  52. package/codemini-web/dist/assets/{git-commit-CDZnUqIF.js → git-commit-DBwdkqC2.js} +1 -1
  53. package/codemini-web/dist/assets/{git-rebase-CrM8c9uR.js → git-rebase-BVjWygdV.js} +1 -1
  54. package/codemini-web/dist/assets/{git-rebase-nf_-tAIT.js → git-rebase-CLt-2irw.js} +1 -1
  55. package/codemini-web/dist/assets/{glimmer-js-CmAPRjq-.js → glimmer-js-BhZXPPf_.js} +1 -1
  56. package/codemini-web/dist/assets/{glimmer-js-BG6a3MVV.js → glimmer-js-bG2aM9pf.js} +1 -1
  57. package/codemini-web/dist/assets/{glimmer-ts-WUsACCRt.js → glimmer-ts-BZwU8tUk.js} +1 -1
  58. package/codemini-web/dist/assets/{glimmer-ts-CQha3IIl.js → glimmer-ts-D6GU3-HZ.js} +1 -1
  59. package/codemini-web/dist/assets/{glsl-CAJiER_N.js → glsl-BZXoHx-5.js} +1 -1
  60. package/codemini-web/dist/assets/{glsl-CUfWCqOt.js → glsl-BsJMlsXZ.js} +1 -1
  61. package/codemini-web/dist/assets/{graphql-B-xWjhGC.js → graphql-Bzui-_oF.js} +1 -1
  62. package/codemini-web/dist/assets/{graphql-CufH1FQw.js → graphql-lozg2JzK.js} +1 -1
  63. package/codemini-web/dist/assets/{hack-6ZyX-jpl.js → hack-BIx3oBuG.js} +1 -1
  64. package/codemini-web/dist/assets/{hack-D9TV3mFw.js → hack-Dl73UNBo.js} +1 -1
  65. package/codemini-web/dist/assets/{haml-CXPCOKlR.js → haml-BL3Pq-bL.js} +1 -1
  66. package/codemini-web/dist/assets/{haml-zf3skXy8.js → haml-CvBskpbA.js} +1 -1
  67. package/codemini-web/dist/assets/{handlebars-BFZlhIIV.js → handlebars-Ca8Ew3WT.js} +1 -1
  68. package/codemini-web/dist/assets/{handlebars-BzLrTccQ.js → handlebars-Dl0DZ9iU.js} +1 -1
  69. package/codemini-web/dist/assets/{highlighted-body-OFNGDK62-BlOR-p_j.js → highlighted-body-OFNGDK62-gb1UMBZ5.js} +1 -1
  70. package/codemini-web/dist/assets/{html-DLN1MsZQ.js → html-CCOAFbPU.js} +1 -1
  71. package/codemini-web/dist/assets/{html-CZRPtk7M.js → html-DFeJ4St6.js} +1 -1
  72. package/codemini-web/dist/assets/{html-derivative-DGaxN6Jm.js → html-derivative-BN80HtRR.js} +1 -1
  73. package/codemini-web/dist/assets/{html-derivative-Dryc40mO.js → html-derivative-BPYIQd1q.js} +1 -1
  74. package/codemini-web/dist/assets/{http-B3D7H2pi.js → http-BT0m2fV8.js} +1 -1
  75. package/codemini-web/dist/assets/{http-CD8xd_ys.js → http-BaSHFqsp.js} +1 -1
  76. package/codemini-web/dist/assets/{hurl-4R1-_fJo.js → hurl-Cu0t_0Ag.js} +1 -1
  77. package/codemini-web/dist/assets/{hurl-DhA9rL1f.js → hurl-QdCmCx_B.js} +1 -1
  78. package/codemini-web/dist/assets/{hxml-BNblpm3P.js → hxml-DlOl0PEf.js} +1 -1
  79. package/codemini-web/dist/assets/{hxml-y50fEZfK.js → hxml-IWjzRLpN.js} +1 -1
  80. package/codemini-web/dist/assets/index-1xqD0R5t.css +2 -0
  81. package/codemini-web/dist/assets/index-CDXQGwPs.js +65 -0
  82. package/codemini-web/dist/assets/{input-CNJXW0J8.js → input-Ca8O_061.js} +1 -1
  83. package/codemini-web/dist/assets/{jinja-BGFo9cp_.js → jinja-Cnv9YtxF.js} +1 -1
  84. package/codemini-web/dist/assets/{jinja-CMJRtHk5.js → jinja-CzKj-PyV.js} +1 -1
  85. package/codemini-web/dist/assets/{jison-CjADtx7J.js → jison-CMHmT6Zn.js} +1 -1
  86. package/codemini-web/dist/assets/{jison-DZG53562.js → jison-V0queBoO.js} +1 -1
  87. package/codemini-web/dist/assets/{julia-CrDH-yy9.js → julia-D6Tp2lkv.js} +1 -1
  88. package/codemini-web/dist/assets/{julia-DGoXLnGd.js → julia-ssnM4-62.js} +1 -1
  89. package/codemini-web/dist/assets/{just-BV8ObQSd.js → just-BYVm1Mrm.js} +1 -1
  90. package/codemini-web/dist/assets/{just-bFDeah4I.js → just-DNL8d4mn.js} +1 -1
  91. package/codemini-web/dist/assets/{latex-DDcspDwa.js → latex--PKG7pkB.js} +1 -1
  92. package/codemini-web/dist/assets/{latex-DHgb1D3g.js → latex-BKz2_Nxu.js} +1 -1
  93. package/codemini-web/dist/assets/lib-BXWizt13.js +1 -0
  94. package/codemini-web/dist/assets/{liquid-DY_Nh1yB.js → liquid-CmT9c2rW.js} +1 -1
  95. package/codemini-web/dist/assets/{liquid-CodJB6Oo.js → liquid-CnfwjcTC.js} +1 -1
  96. package/codemini-web/dist/assets/{lua-CSNL2IG5.js → lua-CG2sJZNs.js} +1 -1
  97. package/codemini-web/dist/assets/{lua-Mbb_FM_D.js → lua-D82-t9Zc.js} +1 -1
  98. package/codemini-web/dist/assets/{marko-CoJz_b4R.js → marko-BXWoQ9lL.js} +1 -1
  99. package/codemini-web/dist/assets/{marko-BtH_ko92.js → marko-CJF04FnX.js} +1 -1
  100. package/codemini-web/dist/assets/{mdc-U2Od-Be6.js → mdc-DjUuZ2FY.js} +1 -1
  101. package/codemini-web/dist/assets/{mdc-pc5Bd-NW.js → mdc-uFBHmEgm.js} +1 -1
  102. package/codemini-web/dist/assets/mermaid-GHXKKRXX-ROliF8Yd.js +1 -0
  103. package/codemini-web/dist/assets/{nextflow-C240AutA.js → nextflow-CK5HLJvq.js} +1 -1
  104. package/codemini-web/dist/assets/{nextflow-dLJhzX3Z.js → nextflow-S7dXFF9l.js} +1 -1
  105. package/codemini-web/dist/assets/{nginx-CeVyuhn6.js → nginx-3W9nM9y_.js} +1 -1
  106. package/codemini-web/dist/assets/{nginx-9UIFC5W_.js → nginx-BC64-3-i.js} +1 -1
  107. package/codemini-web/dist/assets/{nim-A60PrBkG.js → nim-DWppal1v.js} +1 -1
  108. package/codemini-web/dist/assets/{nim-DhQ1Hs8s.js → nim-x_81C3Qr.js} +1 -1
  109. package/codemini-web/dist/assets/{pencil-CARzRgk1.js → pencil-BhT11Ztp.js} +1 -1
  110. package/codemini-web/dist/assets/{perl-BPmyA-C2.js → perl-C6Dd0zxb.js} +1 -1
  111. package/codemini-web/dist/assets/{perl-CA0CUhlR.js → perl-Drip2S24.js} +1 -1
  112. package/codemini-web/dist/assets/{php-aSpTH15w.js → php-9sDqPlZW.js} +1 -1
  113. package/codemini-web/dist/assets/{php-DFR1z6f_.js → php-BbiCqfrp.js} +1 -1
  114. package/codemini-web/dist/assets/{pug-DXmP4Dd5.js → pug-BYheLFcw.js} +1 -1
  115. package/codemini-web/dist/assets/{pug-2MsinVHa.js → pug-D4U6GWCU.js} +1 -1
  116. package/codemini-web/dist/assets/{qml-Cp-MkXo2.js → qml-C7Gvixtn.js} +1 -1
  117. package/codemini-web/dist/assets/{qml-Dmd77dfv.js → qml-D3LW5Eh4.js} +1 -1
  118. package/codemini-web/dist/assets/{razor-BH58TmZI.js → razor-CeMDYz78.js} +1 -1
  119. package/codemini-web/dist/assets/{razor-knNn5G4N.js → razor-wtlbOx1Y.js} +1 -1
  120. package/codemini-web/dist/assets/refresh-cw-D7R5Lth6.js +1 -0
  121. package/codemini-web/dist/assets/{rst-BkVCrdGo.js → rst-4NiHKVzB.js} +1 -1
  122. package/codemini-web/dist/assets/{rst-l2oLaq8i.js → rst-CUgtqtsm.js} +1 -1
  123. package/codemini-web/dist/assets/{ruby-B4GtprLK.js → ruby-DJfS371J.js} +1 -1
  124. package/codemini-web/dist/assets/{ruby-gJeF3z-Y.js → ruby-DQmpjmxU.js} +1 -1
  125. package/codemini-web/dist/assets/{sas-CTgoo8hu.js → sas-B3ML-BPY.js} +1 -1
  126. package/codemini-web/dist/assets/{sas-Dav6qQnM.js → sas-BXFb3Byc.js} +1 -1
  127. package/codemini-web/dist/assets/{scss-B8ysOo22.js → scss-By7PHVyf.js} +1 -1
  128. package/codemini-web/dist/assets/{scss-C8Gq31Qt.js → scss-CQGBghOa.js} +1 -1
  129. package/codemini-web/dist/assets/select-DBvcHBzs.js +1 -0
  130. package/codemini-web/dist/assets/{shaderlab-BaYU-HWs.js → shaderlab-Ds6Ob14m.js} +1 -1
  131. package/codemini-web/dist/assets/{shaderlab-CSb6CBXg.js → shaderlab-jhHUXThs.js} +1 -1
  132. package/codemini-web/dist/assets/{shellsession-Ms8iC_in.js → shellsession-1pj9xPto.js} +1 -1
  133. package/codemini-web/dist/assets/{shellsession-eIO2JTpk.js → shellsession-mbgkQZNs.js} +1 -1
  134. package/codemini-web/dist/assets/{soy-CnmcxzZM.js → soy-Brdxowwc.js} +1 -1
  135. package/codemini-web/dist/assets/{soy-U7sqkat1.js → soy-CyoIOmkE.js} +1 -1
  136. package/codemini-web/dist/assets/{sparql-DrRAT0nC.js → sparql-D050l-1j.js} +1 -1
  137. package/codemini-web/dist/assets/{sparql-J1VOnnwM.js → sparql-EV95tWuj.js} +1 -1
  138. package/codemini-web/dist/assets/{stata-C07HETWZ.js → stata-Cxm-fX20.js} +1 -1
  139. package/codemini-web/dist/assets/{stata-C84Azx6N.js → stata-rcB48Bwa.js} +1 -1
  140. package/codemini-web/dist/assets/{surrealql-CHm1_yMm.js → surrealql-BEIq2Ti9.js} +1 -1
  141. package/codemini-web/dist/assets/{surrealql-D_Sm2j7-.js → surrealql-C89H8_VG.js} +1 -1
  142. package/codemini-web/dist/assets/{svelte-BgklcIcA.js → svelte-DLivETBJ.js} +1 -1
  143. package/codemini-web/dist/assets/{svelte-UDeamd-l.js → svelte-DVuJzFhW.js} +1 -1
  144. package/codemini-web/dist/assets/{templ-C1aXNqxr.js → templ-DCO78tPK.js} +1 -1
  145. package/codemini-web/dist/assets/{templ-Dej5xCfm.js → templ-Dr4toWAi.js} +1 -1
  146. package/codemini-web/dist/assets/{tex-CwV6ECg2.js → tex-C26OlX33.js} +1 -1
  147. package/codemini-web/dist/assets/{tex-DqduegnD.js → tex-CAFucSbn.js} +1 -1
  148. package/codemini-web/dist/assets/{trash-2-BvANH-oV.js → trash-2-BfNZcWfX.js} +1 -1
  149. package/codemini-web/dist/assets/{ts-tags-jpfdYtbg.js → ts-tags-DXz1U_l8.js} +1 -1
  150. package/codemini-web/dist/assets/{ts-tags-JHISWk_W.js → ts-tags-DxtnKICy.js} +1 -1
  151. package/codemini-web/dist/assets/{twig-Co8p9s-G.js → twig-BOjawstu.js} +1 -1
  152. package/codemini-web/dist/assets/{twig-Cq6hSxza.js → twig-l2jHuCJP.js} +1 -1
  153. package/codemini-web/dist/assets/{vue-CopUaTTK.js → vue-DTExrAHq.js} +1 -1
  154. package/codemini-web/dist/assets/{vue-CL6MdYNh.js → vue-d4Ps-pL3.js} +1 -1
  155. package/codemini-web/dist/assets/{vue-html-BJ2qlvpA.js → vue-html-Cc_wxOgn.js} +1 -1
  156. package/codemini-web/dist/assets/{vue-html-BkstOd36.js → vue-html-DF9b1rb0.js} +1 -1
  157. package/codemini-web/dist/assets/{vue-vine-BpJg_Jgw.js → vue-vine-A_lRwVWt.js} +1 -1
  158. package/codemini-web/dist/assets/{vue-vine-kdYS8aKZ.js → vue-vine-BDiNGm6C.js} +1 -1
  159. package/codemini-web/dist/assets/{xml-BVIbPGAO.js → xml-BUsFQ36n.js} +1 -1
  160. package/codemini-web/dist/assets/{xml-Cd8Ewme9.js → xml-DDsJXW9N.js} +1 -1
  161. package/codemini-web/dist/assets/{xsl-DsYdc3fS.js → xsl-DjgS9HxR.js} +1 -1
  162. package/codemini-web/dist/assets/{xsl-JOQu_a5N.js → xsl-TnKTzvHo.js} +1 -1
  163. package/codemini-web/dist/index.html +2 -2
  164. package/codemini-web/lib/runtime-bridge.js +325 -296
  165. package/codemini-web/server.js +482 -276
  166. package/package.json +1 -1
  167. package/src/core/agent-loop.js +188 -97
  168. package/src/core/chat-runtime.js +674 -571
  169. package/src/core/command-policy.js +73 -23
  170. package/src/core/config-store.js +11 -3
  171. package/src/core/git-oplog-change-tracker.js +387 -0
  172. package/src/core/non-git-backup.js +116 -0
  173. package/src/core/paths.js +123 -123
  174. package/src/core/session-store.js +148 -99
  175. package/src/core/tools.js +474 -396
  176. package/src/tui/chat-app.js +196 -56
  177. package/codemini-web/dist/assets/CodeWikiPanel-BjI4vz9H.js +0 -1
  178. package/codemini-web/dist/assets/ConfigDialog-hxEIuIXJ.js +0 -1
  179. package/codemini-web/dist/assets/GitDiffDialog-CVpmPcGi.js +0 -222
  180. package/codemini-web/dist/assets/MessageBubble-BkkfePXe.js +0 -6
  181. package/codemini-web/dist/assets/ProjectSelector-CjE9gbEY.js +0 -1
  182. package/codemini-web/dist/assets/SkillDialog-CpX5c2q5.js +0 -6
  183. package/codemini-web/dist/assets/SoulDialog-5ZMpAJl3.js +0 -1
  184. package/codemini-web/dist/assets/index-BkhgO3hd.js +0 -65
  185. package/codemini-web/dist/assets/index-COyr1sc3.css +0 -2
  186. package/codemini-web/dist/assets/lib-DQpX2ek0.js +0 -11
  187. package/codemini-web/dist/assets/lib-Dj6FJSN8.js +0 -1
  188. package/codemini-web/dist/assets/mermaid-GHXKKRXX-DV0jg4UB.js +0 -1
  189. package/codemini-web/dist/assets/select-BQ3BvnG8.js +0 -1
  190. /package/codemini-web/dist/assets/{abap-8gQxhw9X.js → abap-B7RnWQOG.js} +0 -0
  191. /package/codemini-web/dist/assets/{abap-DKGmjV0m.js → abap-NDM6s5zQ.js} +0 -0
  192. /package/codemini-web/dist/assets/{actionscript-3-Bvx2-wHH.js → actionscript-3-C9nBr3Mh.js} +0 -0
  193. /package/codemini-web/dist/assets/{actionscript-3-PQHI9sRP.js → actionscript-3-CRl2BRXz.js} +0 -0
  194. /package/codemini-web/dist/assets/{ada-7dCRqcEc.js → ada-BCQmYIk6.js} +0 -0
  195. /package/codemini-web/dist/assets/{ada-DXyixiJc.js → ada-CySgk42_.js} +0 -0
  196. /package/codemini-web/dist/assets/{andromeeda-CvHLbWZU.js → andromeeda-Bnm9WW1a.js} +0 -0
  197. /package/codemini-web/dist/assets/{andromeeda-D2bWTgXr.js → andromeeda-szAb-NZx.js} +0 -0
  198. /package/codemini-web/dist/assets/{apache-DuwFT_ko.js → apache-B22kDdQt.js} +0 -0
  199. /package/codemini-web/dist/assets/{apache-r4zD7Rt3.js → apache-CQgWNR0K.js} +0 -0
  200. /package/codemini-web/dist/assets/{apex-D3aemokf.js → apex-BkGtsu4e.js} +0 -0
  201. /package/codemini-web/dist/assets/{apex-ZrILV9y9.js → apex-CFa_x2c9.js} +0 -0
  202. /package/codemini-web/dist/assets/{applescript-B2uvrvew.js → applescript-CCGt--QU.js} +0 -0
  203. /package/codemini-web/dist/assets/{applescript-QewDI2Hm.js → applescript-Cb-r3lIv.js} +0 -0
  204. /package/codemini-web/dist/assets/{ara-CAKYVeDX.js → ara-CJYv1XlV.js} +0 -0
  205. /package/codemini-web/dist/assets/{ara-bfzpmn9d.js → ara-DKlv0ib1.js} +0 -0
  206. /package/codemini-web/dist/assets/{asciidoc-CN-ydgfB.js → asciidoc-BUOdyOiP.js} +0 -0
  207. /package/codemini-web/dist/assets/{asciidoc-xYtH5EEV.js → asciidoc-DxgPoKvx.js} +0 -0
  208. /package/codemini-web/dist/assets/{asm-DsgOTp4c.js → asm-2LyQSByb.js} +0 -0
  209. /package/codemini-web/dist/assets/{asm-DuNyKkDV.js → asm-BVk_pKLT.js} +0 -0
  210. /package/codemini-web/dist/assets/{aurora-x-CUFqx0Kt.js → aurora-x-B7Ot8iN2.js} +0 -0
  211. /package/codemini-web/dist/assets/{aurora-x-mlfFqJAh.js → aurora-x-DfOR6O80.js} +0 -0
  212. /package/codemini-web/dist/assets/{awk-BDSWDVpS.js → awk-CRf4hi6L.js} +0 -0
  213. /package/codemini-web/dist/assets/{awk-DETgsRcQ.js → awk-adfNbTQc.js} +0 -0
  214. /package/codemini-web/dist/assets/{ayu-dark-BTeHke7b.js → ayu-dark-ADZF52JZ.js} +0 -0
  215. /package/codemini-web/dist/assets/{ayu-dark-tcpgNy3s.js → ayu-dark-CqtoqjuU.js} +0 -0
  216. /package/codemini-web/dist/assets/{ayu-light-B3O22CFD.js → ayu-light-CMMeLqXc.js} +0 -0
  217. /package/codemini-web/dist/assets/{ayu-light-CoZXvb4i.js → ayu-light-OVSih2Vp.js} +0 -0
  218. /package/codemini-web/dist/assets/{ayu-mirage-DkAXwBmm.js → ayu-mirage-BCL1vSWF.js} +0 -0
  219. /package/codemini-web/dist/assets/{ayu-mirage-DlGy8b5I.js → ayu-mirage-BZvrYN67.js} +0 -0
  220. /package/codemini-web/dist/assets/{ballerina-Dj9SHEWp.js → ballerina-D3rdtcDY.js} +0 -0
  221. /package/codemini-web/dist/assets/{ballerina-eIQtFtZN.js → ballerina-G1jH5Moz.js} +0 -0
  222. /package/codemini-web/dist/assets/{bat-DVPhDFws.js → bat-BRck8_tt.js} +0 -0
  223. /package/codemini-web/dist/assets/{bat-Dr7SKqI2.js → bat-CHXtPpft.js} +0 -0
  224. /package/codemini-web/dist/assets/{beancount-C5lGUCpK.js → beancount-CvA0H4kE.js} +0 -0
  225. /package/codemini-web/dist/assets/{beancount-DRh4LoEp.js → beancount-EfboDiXG.js} +0 -0
  226. /package/codemini-web/dist/assets/{berry-BJPWN0aG.js → berry-CnzAF9lD.js} +0 -0
  227. /package/codemini-web/dist/assets/{berry-C-53c7Cz.js → berry-DAhQzFBm.js} +0 -0
  228. /package/codemini-web/dist/assets/{bibtex-BXZl-zGT.js → bibtex-CYUaqfOv.js} +0 -0
  229. /package/codemini-web/dist/assets/{bibtex-c-0Qlbu0.js → bibtex-CanpD3m2.js} +0 -0
  230. /package/codemini-web/dist/assets/{bicep-CCk_fREF.js → bicep-Cc0u08ve.js} +0 -0
  231. /package/codemini-web/dist/assets/{bicep-DUhze7H3.js → bicep-JoteVAmD.js} +0 -0
  232. /package/codemini-web/dist/assets/{bird2-D_94N4Us.js → bird2-BmGSmafQ.js} +0 -0
  233. /package/codemini-web/dist/assets/{bird2-DIkIj7Bl.js → bird2-CUmLoLjb.js} +0 -0
  234. /package/codemini-web/dist/assets/{c-6DvQDc19.js → c-Ce4Vw5YJ.js} +0 -0
  235. /package/codemini-web/dist/assets/{c-C6aegu_R.js → c-DKLNAy6n.js} +0 -0
  236. /package/codemini-web/dist/assets/{c3-CUFd2ak_.js → c3-Bld9q8eN.js} +0 -0
  237. /package/codemini-web/dist/assets/{c3-_P-DNRtg.js → c3-Cp6mH0y7.js} +0 -0
  238. /package/codemini-web/dist/assets/{cadence-CRyyaA0J.js → cadence-CAWv0bgn.js} +0 -0
  239. /package/codemini-web/dist/assets/{cadence-zuA3Lqsu.js → cadence-_3OaglmQ.js} +0 -0
  240. /package/codemini-web/dist/assets/{catppuccin-frappe-C4xh_RpD.js → catppuccin-frappe-Dn0XJ8jj.js} +0 -0
  241. /package/codemini-web/dist/assets/{catppuccin-frappe-CptwRcV-.js → catppuccin-frappe-gRmOBxIl.js} +0 -0
  242. /package/codemini-web/dist/assets/{catppuccin-latte-B5zTan83.js → catppuccin-latte-CNKGC9SI.js} +0 -0
  243. /package/codemini-web/dist/assets/{catppuccin-latte-ZIzlVBYe.js → catppuccin-latte-D25Kwd8S.js} +0 -0
  244. /package/codemini-web/dist/assets/{catppuccin-macchiato-D9kD7BY6.js → catppuccin-macchiato-Bc6w_RYC.js} +0 -0
  245. /package/codemini-web/dist/assets/{catppuccin-macchiato-DOZXEuSH.js → catppuccin-macchiato-CjoU0lf6.js} +0 -0
  246. /package/codemini-web/dist/assets/{catppuccin-mocha-DJlDggGb.js → catppuccin-mocha-DQ4pZxz-.js} +0 -0
  247. /package/codemini-web/dist/assets/{catppuccin-mocha-rnm_6i_u.js → catppuccin-mocha-Di4PH8Ri.js} +0 -0
  248. /package/codemini-web/dist/assets/{clarity-CRWl5goA.js → clarity-BnHuUVUS.js} +0 -0
  249. /package/codemini-web/dist/assets/{clarity-Dp-fzxYs.js → clarity-CVKtZWJu.js} +0 -0
  250. /package/codemini-web/dist/assets/{clojure-85kagXuc.js → clojure-BBjzfV1L.js} +0 -0
  251. /package/codemini-web/dist/assets/{clojure-Dva5KkQZ.js → clojure-C4w8xKrn.js} +0 -0
  252. /package/codemini-web/dist/assets/{cmake-5KZO_J3V.js → cmake-Dn2uxUrm.js} +0 -0
  253. /package/codemini-web/dist/assets/{cmake-BLlH-zTC.js → cmake-DuxpWyxB.js} +0 -0
  254. /package/codemini-web/dist/assets/{codeowners-CwITHnrC.js → codeowners-BK44uU1e.js} +0 -0
  255. /package/codemini-web/dist/assets/{codeowners-EEO8moZM.js → codeowners-BYgLRiPG.js} +0 -0
  256. /package/codemini-web/dist/assets/{codeql-C3IPOiKP.js → codeql-DmJo4bmm.js} +0 -0
  257. /package/codemini-web/dist/assets/{codeql-DsuZZPKs.js → codeql-comBgh3D.js} +0 -0
  258. /package/codemini-web/dist/assets/{common-lisp-DQj0fa1s.js → common-lisp-BKAyevA0.js} +0 -0
  259. /package/codemini-web/dist/assets/{common-lisp-DtIqam2P.js → common-lisp-xmwdM7sj.js} +0 -0
  260. /package/codemini-web/dist/assets/{coq-BGPtnnb4.js → coq-D004aLp-.js} +0 -0
  261. /package/codemini-web/dist/assets/{coq-CcjGcL2N.js → coq-DsaqZ5gv.js} +0 -0
  262. /package/codemini-web/dist/assets/{csharp-Bz4y1fn8.js → csharp-B1bok3CS.js} +0 -0
  263. /package/codemini-web/dist/assets/{csharp-CvOkmYFZ.js → csharp-BJRWJrkS.js} +0 -0
  264. /package/codemini-web/dist/assets/{css-DsnEBqY_.js → css-D2Zgfenk.js} +0 -0
  265. /package/codemini-web/dist/assets/{css-Cqx-Zivz.js → css-DI4Ka_1L.js} +0 -0
  266. /package/codemini-web/dist/assets/{csv-92JdhrVb.js → csv-BsMY8_5o.js} +0 -0
  267. /package/codemini-web/dist/assets/{csv-Cz8IGB-r.js → csv-Cx2EO4hN.js} +0 -0
  268. /package/codemini-web/dist/assets/{cue-BAtFpXsn.js → cue-5NODdLLQ.js} +0 -0
  269. /package/codemini-web/dist/assets/{cue-DO5iBckt.js → cue-BFvpulfw.js} +0 -0
  270. /package/codemini-web/dist/assets/{cypher-DrFFccaV.js → cypher-CloxltJj.js} +0 -0
  271. /package/codemini-web/dist/assets/{cypher-Dt0SBufN.js → cypher-DwXduOcz.js} +0 -0
  272. /package/codemini-web/dist/assets/{d-BIzkfvy1.js → d-ByN-nCZx.js} +0 -0
  273. /package/codemini-web/dist/assets/{d-POAmrdpL.js → d-D90yV2l6.js} +0 -0
  274. /package/codemini-web/dist/assets/{dark-plus-Ci223Kw7.js → dark-plus-BRQ4k4kr.js} +0 -0
  275. /package/codemini-web/dist/assets/{dark-plus-D-icMr_O.js → dark-plus-CmLXU_Iq.js} +0 -0
  276. /package/codemini-web/dist/assets/{dart-BA_zGMIh.js → dart-BL-Rg8Jo.js} +0 -0
  277. /package/codemini-web/dist/assets/{dart-Cv4z4sEx.js → dart-jaYeqpH7.js} +0 -0
  278. /package/codemini-web/dist/assets/{dax-CArXkuXO.js → dax-CQDoOssZ.js} +0 -0
  279. /package/codemini-web/dist/assets/{dax-Cw_LNvcO.js → dax-DfINWKOM.js} +0 -0
  280. /package/codemini-web/dist/assets/{desktop-BRifweK7.js → desktop-DssJfs2S.js} +0 -0
  281. /package/codemini-web/dist/assets/{desktop-B_uWbpWi.js → desktop-wuqAc75y.js} +0 -0
  282. /package/codemini-web/dist/assets/{diff-CTnn6Hu3.js → diff-BYMwyQmB.js} +0 -0
  283. /package/codemini-web/dist/assets/{diff-pSjjL-ZH.js → diff-DGLbp6Xl.js} +0 -0
  284. /package/codemini-web/dist/assets/{docker-D0ufKJwE.js → docker-B7aZDRTU.js} +0 -0
  285. /package/codemini-web/dist/assets/{docker-r0L9bSzI.js → docker-CfFDSeZZ.js} +0 -0
  286. /package/codemini-web/dist/assets/{dotenv-BKm_YkX-.js → dotenv-D3KyAIK0.js} +0 -0
  287. /package/codemini-web/dist/assets/{dotenv-DU-Uz6AA.js → dotenv-DVXB2U9o.js} +0 -0
  288. /package/codemini-web/dist/assets/{dracula-BkVbNmMW.js → dracula-6-t2eOMW.js} +0 -0
  289. /package/codemini-web/dist/assets/{dracula-C5lq8I7X.js → dracula-Dix5im8F.js} +0 -0
  290. /package/codemini-web/dist/assets/{dracula-soft-Benyby8y.js → dracula-soft-B4TZzIlp.js} +0 -0
  291. /package/codemini-web/dist/assets/{dracula-soft-QH3ntlSU.js → dracula-soft-DnrYBWgV.js} +0 -0
  292. /package/codemini-web/dist/assets/{dream-maker-Cp0hXi31.js → dream-maker-CaguOgbF.js} +0 -0
  293. /package/codemini-web/dist/assets/{dream-maker-DE3sVgWW.js → dream-maker-CjPuR0vx.js} +0 -0
  294. /package/codemini-web/dist/assets/{emacs-lisp-aMjKKeFP.js → emacs-lisp-BHg7FqFZ.js} +0 -0
  295. /package/codemini-web/dist/assets/{emacs-lisp-H4-vgzf_.js → emacs-lisp-BosL1Ugg.js} +0 -0
  296. /package/codemini-web/dist/assets/{everforest-dark-CDp5hxXO.js → everforest-dark-B4IVVaS6.js} +0 -0
  297. /package/codemini-web/dist/assets/{everforest-dark-KTiMpaXm.js → everforest-dark-DwEzvfit.js} +0 -0
  298. /package/codemini-web/dist/assets/{everforest-light-vtFhxTqx.js → everforest-light-CNoEiPUu.js} +0 -0
  299. /package/codemini-web/dist/assets/{everforest-light-yJZ9a76P.js → everforest-light-DnQkIdPL.js} +0 -0
  300. /package/codemini-web/dist/assets/{fennel-Bruivvq3.js → fennel-BiQcbtTd.js} +0 -0
  301. /package/codemini-web/dist/assets/{fennel-DNMUz8BE.js → fennel-DG6hK7z2.js} +0 -0
  302. /package/codemini-web/dist/assets/{fish-C44z9fhZ.js → fish-D3-ok12J.js} +0 -0
  303. /package/codemini-web/dist/assets/{fish-CaGhpV7s.js → fish-_zY__9L4.js} +0 -0
  304. /package/codemini-web/dist/assets/{fluent-BsmQk-nO.js → fluent-BBz3hVA9.js} +0 -0
  305. /package/codemini-web/dist/assets/{fluent-d_qH0cYL.js → fluent-CrjXrDzk.js} +0 -0
  306. /package/codemini-web/dist/assets/{fortran-free-form-B9mY58s0.js → fortran-free-form-Cyk1FB1e.js} +0 -0
  307. /package/codemini-web/dist/assets/{fortran-free-form-DYzg4zHf.js → fortran-free-form-Db24aQuN.js} +0 -0
  308. /package/codemini-web/dist/assets/{gdscript-B_WUGHIs.js → gdscript-CxxY7zMa.js} +0 -0
  309. /package/codemini-web/dist/assets/{gdscript-xj-VlIRU.js → gdscript-_NYgB0-E.js} +0 -0
  310. /package/codemini-web/dist/assets/{gdshader-BR6nyn6z.js → gdshader-Bhkdknye.js} +0 -0
  311. /package/codemini-web/dist/assets/{gdshader-BbYnAK14.js → gdshader-W85lNgcx.js} +0 -0
  312. /package/codemini-web/dist/assets/{genie-CNeJKHWH.js → genie-2WOhOayX.js} +0 -0
  313. /package/codemini-web/dist/assets/{genie-CW-a1unw.js → genie-C6BJUbST.js} +0 -0
  314. /package/codemini-web/dist/assets/{gherkin-By4Zv-ZP.js → gherkin-BsQJenZD.js} +0 -0
  315. /package/codemini-web/dist/assets/{gherkin-D8z0Dn14.js → gherkin-BzYX5w19.js} +0 -0
  316. /package/codemini-web/dist/assets/{github-dark-BLlNbGxe.js → github-dark-DH2_Q6FX.js} +0 -0
  317. /package/codemini-web/dist/assets/{github-dark-default-DPZ1YWUU.js → github-dark-default-B2Oq-dUJ.js} +0 -0
  318. /package/codemini-web/dist/assets/{github-dark-default-XYu-6ww7.js → github-dark-default-DTF8deNx.js} +0 -0
  319. /package/codemini-web/dist/assets/{github-dark-dimmed-BlMwpJVf.js → github-dark-dimmed-BvtnYOMy.js} +0 -0
  320. /package/codemini-web/dist/assets/{github-dark-dimmed-XAi8Eb3C.js → github-dark-dimmed-D0X0LfLF.js} +0 -0
  321. /package/codemini-web/dist/assets/{github-dark-C2YvJIRl.js → github-dark-fr8BfBxZ.js} +0 -0
  322. /package/codemini-web/dist/assets/{github-dark-high-contrast-D86iyx7L.js → github-dark-high-contrast-BAQfalyp.js} +0 -0
  323. /package/codemini-web/dist/assets/{github-dark-high-contrast-KRBg57oP.js → github-dark-high-contrast-CQhqa0EF.js} +0 -0
  324. /package/codemini-web/dist/assets/{github-light-BLj5WXD_.js → github-light-CEqFW-kl.js} +0 -0
  325. /package/codemini-web/dist/assets/{github-light-default-BLgrdOV4.js → github-light-default-9rPElOua.js} +0 -0
  326. /package/codemini-web/dist/assets/{github-light-default-BzOWmaf-.js → github-light-default-Co9J0YT2.js} +0 -0
  327. /package/codemini-web/dist/assets/{github-light-high-contrast-Bm3JPX7v.js → github-light-high-contrast-BFww7Aed.js} +0 -0
  328. /package/codemini-web/dist/assets/{github-light-high-contrast-Bmexxccr.js → github-light-high-contrast-Drx2T_ea.js} +0 -0
  329. /package/codemini-web/dist/assets/{github-light-DxDzpZWY.js → github-light-t2gQwbnC.js} +0 -0
  330. /package/codemini-web/dist/assets/{gleam-BtOZgVle.js → gleam-BjFNd70h.js} +0 -0
  331. /package/codemini-web/dist/assets/{gleam-Lf_XYEK-.js → gleam-_RSzgxb1.js} +0 -0
  332. /package/codemini-web/dist/assets/{gn-CY4VHHa6.js → gn-BlAV1bS1.js} +0 -0
  333. /package/codemini-web/dist/assets/{gn-JO9YMz2t.js → gn-MXj_EEiV.js} +0 -0
  334. /package/codemini-web/dist/assets/{gnuplot-DjZHg3_f.js → gnuplot-BTJRjb2O.js} +0 -0
  335. /package/codemini-web/dist/assets/{gnuplot-MPAbQV9r.js → gnuplot-C40vWoS_.js} +0 -0
  336. /package/codemini-web/dist/assets/{go-D2GlBE5F.js → go-B2Qj-jpc.js} +0 -0
  337. /package/codemini-web/dist/assets/{go-C6ThH8Hx.js → go-BF9dg2tN.js} +0 -0
  338. /package/codemini-web/dist/assets/{groovy-1vEGAvvX.js → groovy-42TXi0JD.js} +0 -0
  339. /package/codemini-web/dist/assets/{groovy-C_xCWdb_.js → groovy-YtV4YqmI.js} +0 -0
  340. /package/codemini-web/dist/assets/{gruvbox-dark-hard-DHhjEKTi.js → gruvbox-dark-hard-DN_E1XFW.js} +0 -0
  341. /package/codemini-web/dist/assets/{gruvbox-dark-hard-pdBjrsK5.js → gruvbox-dark-hard-DaxQoAo9.js} +0 -0
  342. /package/codemini-web/dist/assets/{gruvbox-dark-medium-CL0I2zDn.js → gruvbox-dark-medium-CR6ynfxn.js} +0 -0
  343. /package/codemini-web/dist/assets/{gruvbox-dark-medium-Csp4lPEF.js → gruvbox-dark-medium-xNyLsUVI.js} +0 -0
  344. /package/codemini-web/dist/assets/{gruvbox-dark-soft-BpNWvgik.js → gruvbox-dark-soft-CrCUBJhA.js} +0 -0
  345. /package/codemini-web/dist/assets/{gruvbox-dark-soft-Dy9vkRG2.js → gruvbox-dark-soft-QoKQNR_B.js} +0 -0
  346. /package/codemini-web/dist/assets/{gruvbox-light-hard-CC8CVJp5.js → gruvbox-light-hard-BqLHNay_.js} +0 -0
  347. /package/codemini-web/dist/assets/{gruvbox-light-hard-DO2pUUQV.js → gruvbox-light-hard-C3-JuKAe.js} +0 -0
  348. /package/codemini-web/dist/assets/{gruvbox-light-medium-B_nBvpHM.js → gruvbox-light-medium-676URJw_.js} +0 -0
  349. /package/codemini-web/dist/assets/{gruvbox-light-medium-D2yGUmJd.js → gruvbox-light-medium-86kxSNhL.js} +0 -0
  350. /package/codemini-web/dist/assets/{gruvbox-light-soft-C_9RTTTT.js → gruvbox-light-soft-BGpHIYJO.js} +0 -0
  351. /package/codemini-web/dist/assets/{gruvbox-light-soft-DuLKkKFi.js → gruvbox-light-soft-ByoztTEu.js} +0 -0
  352. /package/codemini-web/dist/assets/{haskell-BFZjB68l.js → haskell-C5VEzHiR.js} +0 -0
  353. /package/codemini-web/dist/assets/{haskell-DfX5asxK.js → haskell-KyntJ58h.js} +0 -0
  354. /package/codemini-web/dist/assets/{haxe-DDQKctJt.js → haxe-Bnka4w1v.js} +0 -0
  355. /package/codemini-web/dist/assets/{haxe-Me-TWuvr.js → haxe-DxCG7g2C.js} +0 -0
  356. /package/codemini-web/dist/assets/{hcl-DUAADz_v.js → hcl-B-KEcm-b.js} +0 -0
  357. /package/codemini-web/dist/assets/{hcl-Ry3nZWbt.js → hcl-nG8lPt58.js} +0 -0
  358. /package/codemini-web/dist/assets/{hjson-CGFDmpMn.js → hjson-BUjIWbox.js} +0 -0
  359. /package/codemini-web/dist/assets/{hjson-DyGphq4K.js → hjson-KcqWy6wG.js} +0 -0
  360. /package/codemini-web/dist/assets/{hlsl-BKWZVvKK.js → hlsl-CU9ay1Rj.js} +0 -0
  361. /package/codemini-web/dist/assets/{hlsl-BVEJlW36.js → hlsl-CblrQXA-.js} +0 -0
  362. /package/codemini-web/dist/assets/{horizon-BZmYXqIF.js → horizon-BDDUNMOh.js} +0 -0
  363. /package/codemini-web/dist/assets/{horizon-D3wQTjs_.js → horizon-MuIr_z-n.js} +0 -0
  364. /package/codemini-web/dist/assets/{horizon-bright-D0uooZm5.js → horizon-bright-Km86OX7k.js} +0 -0
  365. /package/codemini-web/dist/assets/{horizon-bright-Cfh8ud4W.js → horizon-bright-QtrMcZM-.js} +0 -0
  366. /package/codemini-web/dist/assets/{houston-BUtcOxf9.js → houston-CnK3oLKP.js} +0 -0
  367. /package/codemini-web/dist/assets/{houston-CGv9NbgY.js → houston-L6-nhcqy.js} +0 -0
  368. /package/codemini-web/dist/assets/{hy-BqI2sCU2.js → hy-9kqolRdI.js} +0 -0
  369. /package/codemini-web/dist/assets/{hy-oWi_RwAK.js → hy-V3ipcBGo.js} +0 -0
  370. /package/codemini-web/dist/assets/{imba-DnUn0wai.js → imba-AWBATAYY.js} +0 -0
  371. /package/codemini-web/dist/assets/{imba-iwzgkuTD.js → imba-rkedaZRd.js} +0 -0
  372. /package/codemini-web/dist/assets/{ini-BNaakZQr.js → ini-BIn__beW.js} +0 -0
  373. /package/codemini-web/dist/assets/{ini-DMV_1xp9.js → ini-P5JLg6LV.js} +0 -0
  374. /package/codemini-web/dist/assets/{java-CTslCthB.js → java-Bb7gkEG1.js} +0 -0
  375. /package/codemini-web/dist/assets/{java-DbkCw8gs.js → java-X5SW6zDn.js} +0 -0
  376. /package/codemini-web/dist/assets/{javascript-BzJBge5U.js → javascript-Cn8UGaJe.js} +0 -0
  377. /package/codemini-web/dist/assets/{javascript-DqHURDA-.js → javascript-DHaqiI3u.js} +0 -0
  378. /package/codemini-web/dist/assets/{json-Cu3T5nD7.js → json-BlCKYbAr.js} +0 -0
  379. /package/codemini-web/dist/assets/{json-DZN6rfPx.js → json-Yl_wWztW.js} +0 -0
  380. /package/codemini-web/dist/assets/{json5-DSzj6NCq.js → json5-B3B8AE2U.js} +0 -0
  381. /package/codemini-web/dist/assets/{json5-Y2CuQCK-.js → json5-Cj9weIvR.js} +0 -0
  382. /package/codemini-web/dist/assets/{jsonc-B30nqSUF.js → jsonc-COLeM0mA.js} +0 -0
  383. /package/codemini-web/dist/assets/{jsonc-DwzKY8NT.js → jsonc-CwVZHrLL.js} +0 -0
  384. /package/codemini-web/dist/assets/{jsonl-B7UEa0TN.js → jsonl-CfYcxfNz.js} +0 -0
  385. /package/codemini-web/dist/assets/{jsonl-C8L12LZq.js → jsonl-my2EVZQF.js} +0 -0
  386. /package/codemini-web/dist/assets/{jsonnet-DYAV3b_U.js → jsonnet-B351KcBZ.js} +0 -0
  387. /package/codemini-web/dist/assets/{jsonnet-ZiCJB3SD.js → jsonnet-Cg2yxMWZ.js} +0 -0
  388. /package/codemini-web/dist/assets/{jssm-6UFVEBGg.js → jssm-CVNVxyp8.js} +0 -0
  389. /package/codemini-web/dist/assets/{jssm-BOfC2rh1.js → jssm-f9sZK7il.js} +0 -0
  390. /package/codemini-web/dist/assets/{jsx-AgmFDCOF.js → jsx-C-BZR9Er.js} +0 -0
  391. /package/codemini-web/dist/assets/{jsx-BEmZt5uE.js → jsx-mn0xQF_s.js} +0 -0
  392. /package/codemini-web/dist/assets/{kanagawa-dragon-BVoApXR6.js → kanagawa-dragon-Bg-BKRuP.js} +0 -0
  393. /package/codemini-web/dist/assets/{kanagawa-dragon-DF1o80wl.js → kanagawa-dragon-qidiS05d.js} +0 -0
  394. /package/codemini-web/dist/assets/{kanagawa-lotus-BkVGQkvY.js → kanagawa-lotus-CVGoMXw8.js} +0 -0
  395. /package/codemini-web/dist/assets/{kanagawa-lotus-C-uV5im6.js → kanagawa-lotus-DCJgGK2A.js} +0 -0
  396. /package/codemini-web/dist/assets/{kanagawa-wave-BizPisns.js → kanagawa-wave-CVz5XkfW.js} +0 -0
  397. /package/codemini-web/dist/assets/{kanagawa-wave-Cl5W2OPg.js → kanagawa-wave-CuNbEAGB.js} +0 -0
  398. /package/codemini-web/dist/assets/{kdl-BCaiqQ4X.js → kdl-B2a5Hdo5.js} +0 -0
  399. /package/codemini-web/dist/assets/{kdl-Bg7xxjIF.js → kdl-CmBtNZAQ.js} +0 -0
  400. /package/codemini-web/dist/assets/{kotlin-CNprttl8.js → kotlin-BgCroCiE.js} +0 -0
  401. /package/codemini-web/dist/assets/{kotlin-DRaoVNCW.js → kotlin-CwntYu9G.js} +0 -0
  402. /package/codemini-web/dist/assets/{kusto-CW62F42W.js → kusto-Dto5Mt8f.js} +0 -0
  403. /package/codemini-web/dist/assets/{kusto-D3uRUZFA.js → kusto-DzqQhEgS.js} +0 -0
  404. /package/codemini-web/dist/assets/{laserwave-B1sGpeV2.js → laserwave-Bf5KiZGG.js} +0 -0
  405. /package/codemini-web/dist/assets/{laserwave-BypMvj8s.js → laserwave-DqmURGYs.js} +0 -0
  406. /package/codemini-web/dist/assets/{lean-BbKKg8_U.js → lean-CLemLjY9.js} +0 -0
  407. /package/codemini-web/dist/assets/{lean-CYwit69O.js → lean-bStt-IHo.js} +0 -0
  408. /package/codemini-web/dist/assets/{less-6BW8xQaX.js → less-Dycz37IB.js} +0 -0
  409. /package/codemini-web/dist/assets/{less-CMYX9LBx.js → less-_4Z4Zbgj.js} +0 -0
  410. /package/codemini-web/dist/assets/{light-plus-CytNlrnF.js → light-plus-BISup5vO.js} +0 -0
  411. /package/codemini-web/dist/assets/{light-plus-zSYF2DYe.js → light-plus-CUPZt_vJ.js} +0 -0
  412. /package/codemini-web/dist/assets/{llvm-BFcvUor4.js → llvm-B3vA1z1w.js} +0 -0
  413. /package/codemini-web/dist/assets/{llvm-OMExIg60.js → llvm-DAbx5jqK.js} +0 -0
  414. /package/codemini-web/dist/assets/{log-BBfW4u9k.js → log-BRjeW2DW.js} +0 -0
  415. /package/codemini-web/dist/assets/{log-BrS0_Y6P.js → log-CM4eTPwH.js} +0 -0
  416. /package/codemini-web/dist/assets/{logo-D8GGcRiY.js → logo-DCYIDlXZ.js} +0 -0
  417. /package/codemini-web/dist/assets/{logo-L3bKRswG.js → logo-Dyx9NcGm.js} +0 -0
  418. /package/codemini-web/dist/assets/{luau-B-E69GSh.js → luau-B3LrvOEt.js} +0 -0
  419. /package/codemini-web/dist/assets/{luau-CZIl0XK4.js → luau-BJOxIq3l.js} +0 -0
  420. /package/codemini-web/dist/assets/{make-CA9NajZk.js → make-Bep3F-fA.js} +0 -0
  421. /package/codemini-web/dist/assets/{make-mlZyflos.js → make-BmHGvFNV.js} +0 -0
  422. /package/codemini-web/dist/assets/{markdown-CppElJDR.js → markdown-BObkjWCp.js} +0 -0
  423. /package/codemini-web/dist/assets/{markdown-DkXb8qKc.js → markdown-qxcI0Ex1.js} +0 -0
  424. /package/codemini-web/dist/assets/{material-theme-BYnCtUED.js → material-theme-DfbSys7S.js} +0 -0
  425. /package/codemini-web/dist/assets/{material-theme-darker-BNfFk916.js → material-theme-darker-CXzTJODk.js} +0 -0
  426. /package/codemini-web/dist/assets/{material-theme-darker-s0o-qH0l.js → material-theme-darker-DM1OIivA.js} +0 -0
  427. /package/codemini-web/dist/assets/{material-theme-OBz0sIMu.js → material-theme-jZt3rhQh.js} +0 -0
  428. /package/codemini-web/dist/assets/{material-theme-lighter-BXApD6tt.js → material-theme-lighter-C7qz3G7H.js} +0 -0
  429. /package/codemini-web/dist/assets/{material-theme-lighter-D0OJsx_T.js → material-theme-lighter-HtgpH1FU.js} +0 -0
  430. /package/codemini-web/dist/assets/{material-theme-ocean-CKWC7YJB.js → material-theme-ocean-CeFuXoRG.js} +0 -0
  431. /package/codemini-web/dist/assets/{material-theme-ocean-Cl_PEvBf.js → material-theme-ocean-DmL5jMtS.js} +0 -0
  432. /package/codemini-web/dist/assets/{material-theme-palenight-CEFfV_mF.js → material-theme-palenight-BMg4YxS6.js} +0 -0
  433. /package/codemini-web/dist/assets/{material-theme-palenight-DOTFIR3W.js → material-theme-palenight-CRxwxFv4.js} +0 -0
  434. /package/codemini-web/dist/assets/{matlab-BiYD-Y7N.js → matlab-BjvFQgI4.js} +0 -0
  435. /package/codemini-web/dist/assets/{matlab-CwLrY_Ss.js → matlab-CeDNF4Ix.js} +0 -0
  436. /package/codemini-web/dist/assets/{mdx-OZt5aooY.js → mdx-C_WF1Zvy.js} +0 -0
  437. /package/codemini-web/dist/assets/{mdx-irdaVRH8.js → mdx-DnKU9cqA.js} +0 -0
  438. /package/codemini-web/dist/assets/{mermaid-CkReAMVX.js → mermaid-5NtVsV32.js} +0 -0
  439. /package/codemini-web/dist/assets/{mermaid-mzvznqsh.js → mermaid-CH8Qvaqo.js} +0 -0
  440. /package/codemini-web/dist/assets/{min-dark-BAbZNtjj.js → min-dark-B95jFnY0.js} +0 -0
  441. /package/codemini-web/dist/assets/{min-dark-DoFQ3_GG.js → min-dark-BQ7SSUoL.js} +0 -0
  442. /package/codemini-web/dist/assets/{min-light-BzEisXBR.js → min-light-BGgk1zEi.js} +0 -0
  443. /package/codemini-web/dist/assets/{min-light-o5Iu4PYL.js → min-light-CqwYUont.js} +0 -0
  444. /package/codemini-web/dist/assets/{mipsasm-B9ciUcum.js → mipsasm-BIZV50OU.js} +0 -0
  445. /package/codemini-web/dist/assets/{mipsasm-DONjtc4L.js → mipsasm-OAAwCDEg.js} +0 -0
  446. /package/codemini-web/dist/assets/{mojo-A9VdeGlD.js → mojo-Bh0Ln9-1.js} +0 -0
  447. /package/codemini-web/dist/assets/{mojo-CHKQ5hW9.js → mojo-COx3BOEA.js} +0 -0
  448. /package/codemini-web/dist/assets/{monokai-B8rLeJY_.js → monokai-C988KBom.js} +0 -0
  449. /package/codemini-web/dist/assets/{monokai-SjnsTHn6.js → monokai-D2lcpl-D.js} +0 -0
  450. /package/codemini-web/dist/assets/{moonbit-Bb7eeXNq.js → moonbit-C-CVJfEU.js} +0 -0
  451. /package/codemini-web/dist/assets/{moonbit-CWIHpJf0.js → moonbit-ChOfdbnC.js} +0 -0
  452. /package/codemini-web/dist/assets/{move-Dy7CmIgW.js → move-DjHf2uHT.js} +0 -0
  453. /package/codemini-web/dist/assets/{move-MA-qIPBB.js → move-jwG4QUY4.js} +0 -0
  454. /package/codemini-web/dist/assets/{narrat-Cq6wc063.js → narrat-Bv3slmdi.js} +0 -0
  455. /package/codemini-web/dist/assets/{narrat-NioX5-_j.js → narrat-CuRqtiDW.js} +0 -0
  456. /package/codemini-web/dist/assets/{nextflow-groovy-jKlTICX_.js → nextflow-groovy-CYeLXiaP.js} +0 -0
  457. /package/codemini-web/dist/assets/{nextflow-groovy-BgEBN3iS.js → nextflow-groovy-Dk0GcQpl.js} +0 -0
  458. /package/codemini-web/dist/assets/{night-owl-C_xVeV9U.js → night-owl-SjOLjRtB.js} +0 -0
  459. /package/codemini-web/dist/assets/{night-owl-DHaGAA37.js → night-owl-cv0FEuUh.js} +0 -0
  460. /package/codemini-web/dist/assets/{night-owl-light-B1H1b6pL.js → night-owl-light-CpcKp0OZ.js} +0 -0
  461. /package/codemini-web/dist/assets/{night-owl-light-C_DkqGGe.js → night-owl-light-DHrEzBAj.js} +0 -0
  462. /package/codemini-web/dist/assets/{nix-BZVKmCQS.js → nix-BtLlRvM0.js} +0 -0
  463. /package/codemini-web/dist/assets/{nix-CBdStlCf.js → nix-CcOD1khX.js} +0 -0
  464. /package/codemini-web/dist/assets/{nord-3ndmnVQb.js → nord-BGjNHkRW.js} +0 -0
  465. /package/codemini-web/dist/assets/{nord-CrTSutxR.js → nord-DiukgIFA.js} +0 -0
  466. /package/codemini-web/dist/assets/{nushell-BSMBFYgO.js → nushell-DUqFDYtM.js} +0 -0
  467. /package/codemini-web/dist/assets/{nushell-C8hgS98n.js → nushell-GFe6C8D1.js} +0 -0
  468. /package/codemini-web/dist/assets/{objective-c-BUiYTSad.js → objective-c-BUV8AyKp.js} +0 -0
  469. /package/codemini-web/dist/assets/{objective-c-DGGlUjtt.js → objective-c-Da4gtNmU.js} +0 -0
  470. /package/codemini-web/dist/assets/{objective-cpp-Bk8vAxra.js → objective-cpp-Du3a_PKx.js} +0 -0
  471. /package/codemini-web/dist/assets/{objective-cpp-BwY1U2XT.js → objective-cpp-U8QllJj4.js} +0 -0
  472. /package/codemini-web/dist/assets/{ocaml-D51PiCY5.js → ocaml-4v1g0DKj.js} +0 -0
  473. /package/codemini-web/dist/assets/{ocaml-KuZ2AeVv.js → ocaml-DwXjJdD9.js} +0 -0
  474. /package/codemini-web/dist/assets/{odin-CoC4d8pi.js → odin-BlEjbtjb.js} +0 -0
  475. /package/codemini-web/dist/assets/{odin-CvKV_dam.js → odin-C2CG6fMn.js} +0 -0
  476. /package/codemini-web/dist/assets/{one-dark-pro-BbI-DLX3.js → one-dark-pro-BL6Mm10K.js} +0 -0
  477. /package/codemini-web/dist/assets/{one-dark-pro-C9bEA2Dz.js → one-dark-pro-BwcbXd-T.js} +0 -0
  478. /package/codemini-web/dist/assets/{one-light-DZ_5GYrV.js → one-light-BOQW5zin.js} +0 -0
  479. /package/codemini-web/dist/assets/{one-light-Do56bP_A.js → one-light-Cx3Ps96S.js} +0 -0
  480. /package/codemini-web/dist/assets/{openscad-0H6ozqDa.js → openscad-Bs2SxlcB.js} +0 -0
  481. /package/codemini-web/dist/assets/{openscad-DCmPLSXt.js → openscad-C7dPmpxc.js} +0 -0
  482. /package/codemini-web/dist/assets/{pascal-BMY45JJO.js → pascal-B6AuHgs_.js} +0 -0
  483. /package/codemini-web/dist/assets/{pascal-DghlbeLm.js → pascal-ruAwSiza.js} +0 -0
  484. /package/codemini-web/dist/assets/{pierre-dark-Be9bUWwI.js → pierre-dark-8SGzlI93.js} +0 -0
  485. /package/codemini-web/dist/assets/{pierre-light-Cq6kCwdb.js → pierre-light-BJzkLopB.js} +0 -0
  486. /package/codemini-web/dist/assets/{pkl-BlBky-cR.js → pkl-Bdw5peeW.js} +0 -0
  487. /package/codemini-web/dist/assets/{pkl-BzGvIelR.js → pkl-BuPFXprX.js} +0 -0
  488. /package/codemini-web/dist/assets/{plastic-C50vuo0c.js → plastic-BiAROaFC.js} +0 -0
  489. /package/codemini-web/dist/assets/{plastic-CHL2Ec9b.js → plastic-CGwKUd0C.js} +0 -0
  490. /package/codemini-web/dist/assets/{plsql-B6Eq-lAd.js → plsql-DQ_z5ed2.js} +0 -0
  491. /package/codemini-web/dist/assets/{plsql-mtL4EDYx.js → plsql-DoG_QfBE.js} +0 -0
  492. /package/codemini-web/dist/assets/{po-9sFvF4V8.js → po-BvHij3iO.js} +0 -0
  493. /package/codemini-web/dist/assets/{po-ByS5p8Sz.js → po-DN-mfyYW.js} +0 -0
  494. /package/codemini-web/dist/assets/{poimandres-Cs9j_baE.js → poimandres-BbdNMHGS.js} +0 -0
  495. /package/codemini-web/dist/assets/{poimandres-Cu7ZGbJ7.js → poimandres-BdM9d7kg.js} +0 -0
  496. /package/codemini-web/dist/assets/{polar-COmSbiHW.js → polar-BZ5C-_XH.js} +0 -0
  497. /package/codemini-web/dist/assets/{polar-Dc9aglFR.js → polar-p_EVOYp2.js} +0 -0
  498. /package/codemini-web/dist/assets/{postcss-B_ncIJlb.js → postcss-BVVH-mhK.js} +0 -0
  499. /package/codemini-web/dist/assets/{postcss-D_ArMqNC.js → postcss-C_rkJ2pP.js} +0 -0
  500. /package/codemini-web/dist/assets/{powerquery-BzHwsYRb.js → powerquery-BBfv-1ce.js} +0 -0
  501. /package/codemini-web/dist/assets/{powerquery-CnV22x6V.js → powerquery-D2htabf9.js} +0 -0
  502. /package/codemini-web/dist/assets/{powershell-BGZYhdIS.js → powershell-BcfgzEsQ.js} +0 -0
  503. /package/codemini-web/dist/assets/{powershell-C6bIwB0M.js → powershell-NfY3J8Uu.js} +0 -0
  504. /package/codemini-web/dist/assets/{prisma-D5S9vj6g.js → prisma-CMeP8UTm.js} +0 -0
  505. /package/codemini-web/dist/assets/{prisma-rx7KPY6m.js → prisma-DFAqr_mL.js} +0 -0
  506. /package/codemini-web/dist/assets/{prolog-BfgX1o85.js → prolog-Cc9yvHML.js} +0 -0
  507. /package/codemini-web/dist/assets/{prolog-CHVuxG8M.js → prolog-rt-FXeeT.js} +0 -0
  508. /package/codemini-web/dist/assets/{proto-B_ioi7EM.js → proto-CNBX21YV.js} +0 -0
  509. /package/codemini-web/dist/assets/{proto-BhkmoXVj.js → proto-CYqgjQUT.js} +0 -0
  510. /package/codemini-web/dist/assets/{puppet-Brdz8eoo.js → puppet-BAAnN8uU.js} +0 -0
  511. /package/codemini-web/dist/assets/{puppet-tRlrvlcY.js → puppet-ZnM2F-kY.js} +0 -0
  512. /package/codemini-web/dist/assets/{purescript-Bwtvgqjl.js → purescript-hu-4rgo5.js} +0 -0
  513. /package/codemini-web/dist/assets/{purescript-DX3wKXeK.js → purescript-nyLIIaTP.js} +0 -0
  514. /package/codemini-web/dist/assets/{python-9qQRnRoJ.js → python-Dt6SBvxD.js} +0 -0
  515. /package/codemini-web/dist/assets/{python-CUtprRpG.js → python-DypNN-aL.js} +0 -0
  516. /package/codemini-web/dist/assets/{qmldir-BP8WEvx8.js → qmldir-BDEiw2QJ.js} +0 -0
  517. /package/codemini-web/dist/assets/{qmldir-ftS4SxdQ.js → qmldir-MBz01aYW.js} +0 -0
  518. /package/codemini-web/dist/assets/{qss-DrZJSiDh.js → qss-B8ZOZZRM.js} +0 -0
  519. /package/codemini-web/dist/assets/{qss-Mo-j41VR.js → qss-BjslRtqf.js} +0 -0
  520. /package/codemini-web/dist/assets/{r-BX0U3688.js → r-70IHnSKT.js} +0 -0
  521. /package/codemini-web/dist/assets/{r-DN76jn9o.js → r-UrwRxojO.js} +0 -0
  522. /package/codemini-web/dist/assets/{racket-CrTD1_3_.js → racket-emNFhxM0.js} +0 -0
  523. /package/codemini-web/dist/assets/{racket-DCvJyROq.js → racket-lrWGJ4l7.js} +0 -0
  524. /package/codemini-web/dist/assets/{raku-Bhig3MAC.js → raku-B1DWL3rh.js} +0 -0
  525. /package/codemini-web/dist/assets/{raku-CvVnta4t.js → raku-M_VGm79k.js} +0 -0
  526. /package/codemini-web/dist/assets/{red-CWX-2pbk.js → red-BcYVa2Jk.js} +0 -0
  527. /package/codemini-web/dist/assets/{red-CztBD70n.js → red-BvMgtCZO.js} +0 -0
  528. /package/codemini-web/dist/assets/{reg-99qFU_BD.js → reg-DL66XhHR.js} +0 -0
  529. /package/codemini-web/dist/assets/{reg-C0s7-4s0.js → reg-rRGLqGjW.js} +0 -0
  530. /package/codemini-web/dist/assets/{regexp-BIytsEkR.js → regexp-CEudNzRJ.js} +0 -0
  531. /package/codemini-web/dist/assets/{regexp-Cov7gRr6.js → regexp-PTdmEsyL.js} +0 -0
  532. /package/codemini-web/dist/assets/{rel-BuFiYCnx.js → rel-DlXaqz0b.js} +0 -0
  533. /package/codemini-web/dist/assets/{rel-D1_XRRAX.js → rel-DqcQFa7Q.js} +0 -0
  534. /package/codemini-web/dist/assets/{riscv-CdWUuizJ.js → riscv-CanSyeO8.js} +0 -0
  535. /package/codemini-web/dist/assets/{riscv-QV-e36TY.js → riscv-lk-jjtXM.js} +0 -0
  536. /package/codemini-web/dist/assets/{ron-B-EB7ZBI.js → ron-BQ46iNCb.js} +0 -0
  537. /package/codemini-web/dist/assets/{ron-B9EiEQzE.js → ron-CVeChqUp.js} +0 -0
  538. /package/codemini-web/dist/assets/{rose-pine-B05wARW4.js → rose-pine-BuTm62Vj.js} +0 -0
  539. /package/codemini-web/dist/assets/{rose-pine-Dxqc8n_1.js → rose-pine-ChTxq_yN.js} +0 -0
  540. /package/codemini-web/dist/assets/{rose-pine-dawn-CSpx1lq4.js → rose-pine-dawn-B670NuiP.js} +0 -0
  541. /package/codemini-web/dist/assets/{rose-pine-dawn-pz_3O4ep.js → rose-pine-dawn-RGM_kxZ2.js} +0 -0
  542. /package/codemini-web/dist/assets/{rose-pine-moon-B27idgkd.js → rose-pine-moon-6KoQonQX.js} +0 -0
  543. /package/codemini-web/dist/assets/{rose-pine-moon-DXyZaCQX.js → rose-pine-moon-NLV-cJvy.js} +0 -0
  544. /package/codemini-web/dist/assets/{rosmsg-7fMni2bi.js → rosmsg-Bw0HfGe_.js} +0 -0
  545. /package/codemini-web/dist/assets/{rosmsg-CcBwQf5j.js → rosmsg-CUVWbdrA.js} +0 -0
  546. /package/codemini-web/dist/assets/{rust-BHulpgn4.js → rust-CrVJvhfa.js} +0 -0
  547. /package/codemini-web/dist/assets/{rust-ppknoGus.js → rust-D83UuV7F.js} +0 -0
  548. /package/codemini-web/dist/assets/{sass-Baw41att.js → sass-CE2YZJdE.js} +0 -0
  549. /package/codemini-web/dist/assets/{sass-DwJf1cGc.js → sass-Dfpo5TpD.js} +0 -0
  550. /package/codemini-web/dist/assets/{scala-B_iky--A.js → scala-BjILTRgu.js} +0 -0
  551. /package/codemini-web/dist/assets/{scala-DtlnBhKt.js → scala-CyYhociv.js} +0 -0
  552. /package/codemini-web/dist/assets/{scheme-B8EPXl9-.js → scheme-BQ8c0gTd.js} +0 -0
  553. /package/codemini-web/dist/assets/{scheme-DYQMayIi.js → scheme-BrRWQ1yX.js} +0 -0
  554. /package/codemini-web/dist/assets/{sdbl-BQ-WHv_b.js → sdbl-CtZR2I6R.js} +0 -0
  555. /package/codemini-web/dist/assets/{sdbl-D0gXyfL6.js → sdbl-Ds7t3N0Q.js} +0 -0
  556. /package/codemini-web/dist/assets/{shellscript-B_ROtSU5.js → shellscript-Cim6Loaj.js} +0 -0
  557. /package/codemini-web/dist/assets/{shellscript-CPlx29kh.js → shellscript-wXQ3AlcS.js} +0 -0
  558. /package/codemini-web/dist/assets/{slack-dark-D27cdsBY.js → slack-dark-CrWftATe.js} +0 -0
  559. /package/codemini-web/dist/assets/{slack-dark-D_l_kxUG.js → slack-dark-nxsbRL6U.js} +0 -0
  560. /package/codemini-web/dist/assets/{slack-ochin-BE7dVjTN.js → slack-ochin-Cx2HX71B.js} +0 -0
  561. /package/codemini-web/dist/assets/{slack-ochin-BaRZ7cFo.js → slack-ochin-DJ-2OJXN.js} +0 -0
  562. /package/codemini-web/dist/assets/{smalltalk-B12I7SNP.js → smalltalk-DGeW9hbd.js} +0 -0
  563. /package/codemini-web/dist/assets/{smalltalk-DRM3jr39.js → smalltalk-FYMOGNo9.js} +0 -0
  564. /package/codemini-web/dist/assets/{snazzy-light-BayTLer3.js → snazzy-light-508iEJO_.js} +0 -0
  565. /package/codemini-web/dist/assets/{snazzy-light-CooAwQFN.js → snazzy-light-BxBnzmu0.js} +0 -0
  566. /package/codemini-web/dist/assets/{solarized-dark-DJyTII3y.js → solarized-dark-B3HMD5k3.js} +0 -0
  567. /package/codemini-web/dist/assets/{solarized-dark-Y31Htb59.js → solarized-dark-TCkigWjM.js} +0 -0
  568. /package/codemini-web/dist/assets/{solarized-light-AlAlWTlV.js → solarized-light-B-wiF2HZ.js} +0 -0
  569. /package/codemini-web/dist/assets/{solarized-light-B-u_T8hk.js → solarized-light-R2Rcjqww.js} +0 -0
  570. /package/codemini-web/dist/assets/{solidity-CYAp_sJG.js → solidity-46G7JVSr.js} +0 -0
  571. /package/codemini-web/dist/assets/{solidity-DGySeR8E.js → solidity-Bv4Kww1K.js} +0 -0
  572. /package/codemini-web/dist/assets/{splunk-DIQhxWy6.js → splunk-DHfVkGsm.js} +0 -0
  573. /package/codemini-web/dist/assets/{splunk-LsCTpuOP.js → splunk-DKgoBk9o.js} +0 -0
  574. /package/codemini-web/dist/assets/{sql-BHYM5i23.js → sql-Bx-skccv.js} +0 -0
  575. /package/codemini-web/dist/assets/{sql-Cl5BmUDB.js → sql-PkTJiLTy.js} +0 -0
  576. /package/codemini-web/dist/assets/{ssh-config-CTKraw7w.js → ssh-config-B2E5WPpD.js} +0 -0
  577. /package/codemini-web/dist/assets/{ssh-config-QxQe7y21.js → ssh-config-JoXpWa3y.js} +0 -0
  578. /package/codemini-web/dist/assets/{stylus-DZvi0832.js → stylus-BPw8WnNN.js} +0 -0
  579. /package/codemini-web/dist/assets/{stylus-MJorGDSp.js → stylus-C836DBsS.js} +0 -0
  580. /package/codemini-web/dist/assets/{swift-BBBWvOdl.js → swift-CFG3rDz_.js} +0 -0
  581. /package/codemini-web/dist/assets/{swift-vEJN8-U8.js → swift-Ce2Nlw8Q.js} +0 -0
  582. /package/codemini-web/dist/assets/{synthwave-84-CU96aGm9.js → synthwave-84-Br2i7yYN.js} +0 -0
  583. /package/codemini-web/dist/assets/{synthwave-84-Dq9WAwjJ.js → synthwave-84-CvU6yQ4V.js} +0 -0
  584. /package/codemini-web/dist/assets/{system-verilog-BNegUpQT.js → system-verilog-BVQtCmAV.js} +0 -0
  585. /package/codemini-web/dist/assets/{system-verilog-Ddagu-BW.js → system-verilog-Dkc37EdI.js} +0 -0
  586. /package/codemini-web/dist/assets/{systemd-BxlmhgV_.js → systemd-CcJTFvpw.js} +0 -0
  587. /package/codemini-web/dist/assets/{systemd-k28iMR-m.js → systemd-svl6VdYY.js} +0 -0
  588. /package/codemini-web/dist/assets/{talonscript-DprpkXjP.js → talonscript-CHxC2PG4.js} +0 -0
  589. /package/codemini-web/dist/assets/{talonscript-p-GlmLEL.js → talonscript-CWZYyS8Z.js} +0 -0
  590. /package/codemini-web/dist/assets/{tasl-BNm9EzXM.js → tasl-BfBucHfV.js} +0 -0
  591. /package/codemini-web/dist/assets/{tasl-CcWIX7df.js → tasl-woKXKJkx.js} +0 -0
  592. /package/codemini-web/dist/assets/{tcl-BQwTCs7_.js → tcl-6FTtarFH.js} +0 -0
  593. /package/codemini-web/dist/assets/{tcl-CDAGOvGJ.js → tcl-iBXrc9W2.js} +0 -0
  594. /package/codemini-web/dist/assets/{terraform-DLqNQanb.js → terraform-BywKBLRG.js} +0 -0
  595. /package/codemini-web/dist/assets/{terraform-DQhgYyF5.js → terraform-DHx5Kdyi.js} +0 -0
  596. /package/codemini-web/dist/assets/{tokyo-night-DxL5lL62.js → tokyo-night-BQsIhA-A.js} +0 -0
  597. /package/codemini-web/dist/assets/{tokyo-night-mZPbj36U.js → tokyo-night-D2gua4K6.js} +0 -0
  598. /package/codemini-web/dist/assets/{toml-BncMjmx0.js → toml-B35rd2Aj.js} +0 -0
  599. /package/codemini-web/dist/assets/{toml-C7zZe7mY.js → toml-BCbG8Uu3.js} +0 -0
  600. /package/codemini-web/dist/assets/{tsv--yOlbuAc.js → tsv-Bfk0YRxN.js} +0 -0
  601. /package/codemini-web/dist/assets/{tsv-BYgjC2V4.js → tsv-ZPaCtsKO.js} +0 -0
  602. /package/codemini-web/dist/assets/{tsx-CQpoSLkt.js → tsx-BPnxgPXu.js} +0 -0
  603. /package/codemini-web/dist/assets/{tsx-_xvh4DFW.js → tsx-Cvi8n1qy.js} +0 -0
  604. /package/codemini-web/dist/assets/{turtle-DO1RZ6-t.js → turtle-Cj8ap4C4.js} +0 -0
  605. /package/codemini-web/dist/assets/{turtle-ZCrKgE8E.js → turtle-DsCF_r1D.js} +0 -0
  606. /package/codemini-web/dist/assets/{typescript-BGytLZ-E.js → typescript-DESGzanZ.js} +0 -0
  607. /package/codemini-web/dist/assets/{typescript-Bl_SUyNj.js → typescript-DkKrEyJv.js} +0 -0
  608. /package/codemini-web/dist/assets/{typespec-9rD7KG94.js → typespec-tsneGPKg.js} +0 -0
  609. /package/codemini-web/dist/assets/{typespec-Bb7cO9Af.js → typespec-zSWU032W.js} +0 -0
  610. /package/codemini-web/dist/assets/{typst-CChrusEX.js → typst-BcQNhVIE.js} +0 -0
  611. /package/codemini-web/dist/assets/{typst-DJ10KoY6.js → typst-C6LmF4pH.js} +0 -0
  612. /package/codemini-web/dist/assets/{v-CutuAYrg.js → v-CPbK5D5K.js} +0 -0
  613. /package/codemini-web/dist/assets/{v-DCfT4ti_.js → v-D6v2lknR.js} +0 -0
  614. /package/codemini-web/dist/assets/{vala-APnq2lEm.js → vala-CTmcnleK.js} +0 -0
  615. /package/codemini-web/dist/assets/{vala-DJpFErrU.js → vala-CW2V92s6.js} +0 -0
  616. /package/codemini-web/dist/assets/{vb-2TNZABCr.js → vb-CHzBmKx-.js} +0 -0
  617. /package/codemini-web/dist/assets/{vb-DQuyY02M.js → vb-iQRhK9Tp.js} +0 -0
  618. /package/codemini-web/dist/assets/{verilog-Bc6dGayD.js → verilog-BxRFSB3_.js} +0 -0
  619. /package/codemini-web/dist/assets/{verilog-BuvxZrtu.js → verilog-Cu16TfKw.js} +0 -0
  620. /package/codemini-web/dist/assets/{vesper-5CiKYnlC.js → vesper-B0T1dCxY.js} +0 -0
  621. /package/codemini-web/dist/assets/{vesper-bM1AKkiO.js → vesper-D_U9vezF.js} +0 -0
  622. /package/codemini-web/dist/assets/{vhdl-2NYOzUvZ.js → vhdl-D4h06VsC.js} +0 -0
  623. /package/codemini-web/dist/assets/{vhdl-pScFq2IF.js → vhdl-suLxFY6N.js} +0 -0
  624. /package/codemini-web/dist/assets/{viml-AdCpKk5r.js → viml-BQu4-sFk.js} +0 -0
  625. /package/codemini-web/dist/assets/{viml-LZIbwXqf.js → viml-DMcwh6Y2.js} +0 -0
  626. /package/codemini-web/dist/assets/{vitesse-black-BhKXUSxn.js → vitesse-black-Dk8H62LF.js} +0 -0
  627. /package/codemini-web/dist/assets/{vitesse-black-DJ5O_Wf1.js → vitesse-black-sFXfT98A.js} +0 -0
  628. /package/codemini-web/dist/assets/{vitesse-dark-23Naczwl.js → vitesse-dark-B_8wZgsl.js} +0 -0
  629. /package/codemini-web/dist/assets/{vitesse-dark-BzqhRcAC.js → vitesse-dark-BuiSS132.js} +0 -0
  630. /package/codemini-web/dist/assets/{vitesse-light-BDEFVzPq.js → vitesse-light-BFFa4sOZ.js} +0 -0
  631. /package/codemini-web/dist/assets/{vitesse-light-C6rj90Ld.js → vitesse-light-DfdaVJLv.js} +0 -0
  632. /package/codemini-web/dist/assets/{vyper-CAC2wkEx.js → vyper-CU9IduFj.js} +0 -0
  633. /package/codemini-web/dist/assets/{vyper-Cli2Hz-N.js → vyper-DfAPtbtc.js} +0 -0
  634. /package/codemini-web/dist/assets/{wasm-BYEYHoBh.js → wasm-6aAEIEYl.js} +0 -0
  635. /package/codemini-web/dist/assets/{wasm-JuQDwMf4.js → wasm-ByDQ9GrP.js} +0 -0
  636. /package/codemini-web/dist/assets/{wasm-C_1NoYKf.js → wasm-C9fkFrNS.js} +0 -0
  637. /package/codemini-web/dist/assets/{wasm-DmLFHHUn.js → wasm-CdytVWOW.js} +0 -0
  638. /package/codemini-web/dist/assets/{wenyan-BtC3dCkd.js → wenyan-B_37P8uK.js} +0 -0
  639. /package/codemini-web/dist/assets/{wenyan-DZOq1WNp.js → wenyan-DNkN8oQc.js} +0 -0
  640. /package/codemini-web/dist/assets/{wgsl-BfhDoYq0.js → wgsl-Bggw1Yhv.js} +0 -0
  641. /package/codemini-web/dist/assets/{wgsl-sEaiSqkk.js → wgsl-by06Hq-s.js} +0 -0
  642. /package/codemini-web/dist/assets/{wikitext-BBK9d3N8.js → wikitext-CjjhOSjd.js} +0 -0
  643. /package/codemini-web/dist/assets/{wikitext-BN0a9cMl.js → wikitext-zXy-4mpr.js} +0 -0
  644. /package/codemini-web/dist/assets/{wit-B5eB3VJ4.js → wit--vc2X9vR.js} +0 -0
  645. /package/codemini-web/dist/assets/{wit-Drz0L2pK.js → wit-BHjrebka.js} +0 -0
  646. /package/codemini-web/dist/assets/{wolfram-BjzpXDTC.js → wolfram-Dr60-Zy4.js} +0 -0
  647. /package/codemini-web/dist/assets/{wolfram-hGtNh8mf.js → wolfram-Mw4XcN1t.js} +0 -0
  648. /package/codemini-web/dist/assets/{yaml-45PVuYHO.js → yaml--meH0-me.js} +0 -0
  649. /package/codemini-web/dist/assets/{yaml-CvJwaec9.js → yaml-CZT5eZge.js} +0 -0
  650. /package/codemini-web/dist/assets/{zenscript-ChrmAB59.js → zenscript-C94GGJ6Y.js} +0 -0
  651. /package/codemini-web/dist/assets/{zenscript-Dl5s7Kfy.js → zenscript-Cf2Qp-oj.js} +0 -0
  652. /package/codemini-web/dist/assets/{zig-BYKQoCIF.js → zig-DgUQodsP.js} +0 -0
  653. /package/codemini-web/dist/assets/{zig-Dashm4F0.js → zig-feO0kYCa.js} +0 -0
@@ -206,15 +206,66 @@ function allowedPathRoots(workspaceRoot, config = {}) {
206
206
  .map((item) => path.resolve(item));
207
207
  }
208
208
 
209
- function isWithinAnyRoot(candidatePath, roots = []) {
210
- const resolvedCandidate = path.resolve(candidatePath);
211
- return roots.some((root) => {
212
- const relative = path.relative(root, resolvedCandidate);
213
- return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative));
214
- });
215
- }
216
-
217
- function validateCdSegment(command, workspaceRoot, config = {}) {
209
+ function isWithinAnyRoot(candidatePath, roots = []) {
210
+ const resolvedCandidate = path.resolve(candidatePath);
211
+ return roots.some((root) => {
212
+ const relative = path.relative(root, resolvedCandidate);
213
+ return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative));
214
+ });
215
+ }
216
+
217
+ function normalizeWindowsPathForCompare(value) {
218
+ return String(value || '').trim().replace(/\//g, '\\').replace(/\\+$/g, '').toLowerCase();
219
+ }
220
+
221
+ function isWindowsPathWithinAnyRoot(candidatePath, roots = []) {
222
+ const candidate = normalizeWindowsPathForCompare(candidatePath);
223
+ if (!/^[a-z]:\\/i.test(candidate)) return false;
224
+ return roots.some((root) => {
225
+ const normalizedRoot = normalizeWindowsPathForCompare(root);
226
+ return candidate === normalizedRoot || candidate.startsWith(`${normalizedRoot}\\`);
227
+ });
228
+ }
229
+
230
+ function collectWindowsAbsolutePathCandidates(command) {
231
+ const text = String(command || '');
232
+ const candidates = [];
233
+ let current = '';
234
+ let quote = '';
235
+
236
+ const flush = () => {
237
+ const token = current.trim();
238
+ current = '';
239
+ if (/^[A-Za-z]:[\\/]/.test(token)) candidates.push(token);
240
+ };
241
+
242
+ for (let i = 0; i < text.length; i += 1) {
243
+ const ch = text[i];
244
+ if (quote) {
245
+ if (ch === quote) {
246
+ flush();
247
+ quote = '';
248
+ } else {
249
+ current += ch;
250
+ }
251
+ continue;
252
+ }
253
+ if (ch === '"' || ch === '\'') {
254
+ flush();
255
+ quote = ch;
256
+ continue;
257
+ }
258
+ if (/\s/.test(ch)) {
259
+ flush();
260
+ continue;
261
+ }
262
+ current += ch;
263
+ }
264
+ flush();
265
+ return candidates;
266
+ }
267
+
268
+ function validateCdSegment(command, workspaceRoot, config = {}) {
218
269
  const tokens = tokenizeTopLevel(command);
219
270
  if (tokens.length === 1) {
220
271
  return { allowed: false, reason: 'cd requires a target path in safe mode' };
@@ -279,20 +330,19 @@ export function evaluateCommandPolicy(command, config, workspaceRoot = process.c
279
330
  }
280
331
  }
281
332
 
282
- const allowedLower = allowedPathRoots(workspaceRoot, config).map((item) => item.toLowerCase().replace(/\//g, '\\'));
283
- const windowsAbsPath = lower.match(/[a-z]:\\[^\s'"]+/g) || [];
284
- for (const p of windowsAbsPath) {
285
- if (!allowedLower.some((root) => p === root || p.startsWith(`${root}\\`))) {
286
- return { allowed: false, reason: `absolute path outside workspace or allowed paths: ${p}`, suggestion: suggestionForToken(token, config) };
287
- }
288
- }
289
-
290
- const posixAbsPath = cmd.match(/(?<![:/\w])\/(?!\/)[^\s'"]+/g) || [];
291
- const allowedResolved = allowedPathRoots(workspaceRoot, config);
292
- for (const p of posixAbsPath) {
293
- if (!isWithinAnyRoot(p, allowedResolved)) {
294
- return { allowed: false, reason: `absolute path outside workspace or allowed paths: ${p}`, suggestion: suggestionForToken(token, config) };
295
- }
333
+ const allowedRoots = allowedPathRoots(workspaceRoot, config);
334
+ const windowsAbsPath = collectWindowsAbsolutePathCandidates(cmd);
335
+ for (const p of windowsAbsPath) {
336
+ if (!isWindowsPathWithinAnyRoot(p, allowedRoots)) {
337
+ return { allowed: false, reason: `absolute path outside workspace or allowed paths: ${p}`, suggestion: suggestionForToken(token, config) };
338
+ }
339
+ }
340
+
341
+ const posixAbsPath = cmd.match(/(?<![:/\w])\/(?!\/)[^\s'"]+/g) || [];
342
+ for (const p of posixAbsPath) {
343
+ if (!isWithinAnyRoot(p, allowedRoots)) {
344
+ return { allowed: false, reason: `absolute path outside workspace or allowed paths: ${p}`, suggestion: suggestionForToken(token, config) };
345
+ }
296
346
  }
297
347
 
298
348
  return { allowed: true };
@@ -42,6 +42,7 @@ const DEFAULT_CONFIG = {
42
42
  },
43
43
  execution: {
44
44
  mode: 'normal',
45
+ approval_mode: 'review',
45
46
  always_allow_tools: [
46
47
  'read',
47
48
  'grep',
@@ -148,9 +149,16 @@ function normalizePolicyLists(config) {
148
149
  }
149
150
  next.model.name = String(next.model.name || DEFAULT_CONFIG.model.name).trim() || DEFAULT_CONFIG.model.name;
150
151
  next.model.fast_name = String(next.model.fast_name || '').trim();
151
- next.execution.mode = ['auto', 'normal', 'plan'].includes(String(next.execution.mode || '').toLowerCase())
152
- ? String(next.execution.mode).toLowerCase()
153
- : 'normal';
152
+ const rawExecutionMode = String(next.execution.mode || '').toLowerCase();
153
+ const rawApprovalMode = String(next.execution.approval_mode || next.execution.approvalMode || '').toLowerCase().replace(/-/g, '_');
154
+ next.execution.mode = ['normal', 'plan'].includes(rawExecutionMode)
155
+ ? rawExecutionMode
156
+ : 'normal';
157
+ next.execution.approval_mode = ['review', 'auto', 'full_access'].includes(rawApprovalMode)
158
+ ? rawApprovalMode
159
+ : rawExecutionMode === 'auto'
160
+ ? 'auto'
161
+ : 'review';
154
162
  const rawTools = Array.isArray(next.execution.always_allow_tools)
155
163
  ? next.execution.always_allow_tools
156
164
  : [];
@@ -0,0 +1,387 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import os from 'node:os';
4
+ import { spawn } from 'node:child_process';
5
+ import { normalizePath } from './string-utils.js';
6
+
7
+ const CHANGE_OPLOG_VERSION = 1;
8
+ const FILE_TOOLS = new Set(['edit', 'write', 'delete']);
9
+
10
+ function runGit(args, { cwd, input = null, allowFailure = false, timeoutMs = 120_000 } = {}) {
11
+ return new Promise((resolve, reject) => {
12
+ const child = spawn('git', args, {
13
+ cwd,
14
+ windowsHide: true,
15
+ stdio: ['pipe', 'pipe', 'pipe']
16
+ });
17
+ const stdoutChunks = [];
18
+ const stderrChunks = [];
19
+ const timer = setTimeout(() => {
20
+ try { child.kill(); } catch {}
21
+ }, timeoutMs);
22
+ child.stdout.on('data', (chunk) => stdoutChunks.push(Buffer.from(chunk)));
23
+ child.stderr.on('data', (chunk) => stderrChunks.push(Buffer.from(chunk)));
24
+ child.on('error', (error) => {
25
+ clearTimeout(timer);
26
+ reject(error);
27
+ });
28
+ child.on('close', (code) => {
29
+ clearTimeout(timer);
30
+ const stdoutBuffer = Buffer.concat(stdoutChunks);
31
+ const stderrBuffer = Buffer.concat(stderrChunks);
32
+ const result = {
33
+ code,
34
+ stdout: stdoutBuffer.toString('utf8'),
35
+ stderr: stderrBuffer.toString('utf8'),
36
+ stdoutBuffer,
37
+ stderrBuffer
38
+ };
39
+ if (code === 0 || allowFailure) resolve(result);
40
+ else reject(new Error(result.stderr.trim() || result.stdout.trim() || `git exited with code ${code}`));
41
+ });
42
+ if (input != null) child.stdin.end(input);
43
+ else child.stdin.end();
44
+ });
45
+ }
46
+
47
+ function changeId(prefix = 'op') {
48
+ const stamp = new Date().toISOString().replace(/[:.]/g, '-');
49
+ const rand = Math.random().toString(36).slice(2, 8);
50
+ return `${prefix}-${stamp}-${rand}`;
51
+ }
52
+
53
+ function normalizeRelativePath(value, { root = '' } = {}) {
54
+ let text = normalizePath(String(value || '').trim()).replace(/:\d+(?:-\d+)?$/, '');
55
+ if (!text || text === '.') return '';
56
+ if (/^[a-zA-Z]:\//.test(text) || text.startsWith('/')) {
57
+ if (!root) return '';
58
+ const absRoot = path.resolve(root);
59
+ const absTarget = path.resolve(text);
60
+ const rel = path.relative(absRoot, absTarget);
61
+ if (!rel || rel.startsWith('..') || path.isAbsolute(rel)) return '';
62
+ text = normalizePath(rel);
63
+ }
64
+ if (text.startsWith('../')) return '';
65
+ return text;
66
+ }
67
+
68
+ function extractPathCandidates(args = {}, declaredChanges = [], options = {}) {
69
+ const candidates = [];
70
+ for (const change of Array.isArray(declaredChanges) ? declaredChanges : [declaredChanges]) {
71
+ if (change?.path) candidates.push(change.path);
72
+ }
73
+ for (const value of [
74
+ args?.path,
75
+ args?.file,
76
+ args?.file_path,
77
+ args?.target,
78
+ args?.edit?.path,
79
+ args?.edit?.file,
80
+ args?.edit?.file_path,
81
+ args?.edit?.target?.path
82
+ ]) {
83
+ if (typeof value === 'string') candidates.push(value);
84
+ }
85
+ const out = [];
86
+ const seen = new Set();
87
+ for (const value of candidates) {
88
+ const normalized = normalizeRelativePath(value, options);
89
+ if (!normalized || seen.has(normalized)) continue;
90
+ seen.add(normalized);
91
+ out.push(normalized);
92
+ }
93
+ return out;
94
+ }
95
+
96
+ function parseStatusPaths(text) {
97
+ const parts = String(text || '').split('\0').filter(Boolean);
98
+ const paths = [];
99
+ for (let i = 0; i < parts.length; i += 1) {
100
+ const entry = parts[i];
101
+ if (entry.length < 4) continue;
102
+ const status = entry.slice(0, 2);
103
+ const filePath = normalizeRelativePath(entry.slice(3));
104
+ if (filePath) paths.push(filePath);
105
+ if (status.includes('R') || status.includes('C')) {
106
+ i += 1;
107
+ const renamedPath = normalizeRelativePath(parts[i] || '');
108
+ if (renamedPath) paths.push(renamedPath);
109
+ }
110
+ }
111
+ return [...new Set(paths)];
112
+ }
113
+
114
+ async function readWorktreeSnapshot(root, relativePath) {
115
+ const abs = path.resolve(root, relativePath);
116
+ if (!abs.startsWith(`${root}${path.sep}`) && abs !== root) {
117
+ return { exists: false, content: Buffer.alloc(0), hash: '' };
118
+ }
119
+ try {
120
+ const content = await fs.readFile(abs);
121
+ return { exists: true, content, hash: hashBuffer(content) };
122
+ } catch (error) {
123
+ if (error?.code === 'ENOENT') return { exists: false, content: Buffer.alloc(0), hash: '' };
124
+ throw error;
125
+ }
126
+ }
127
+
128
+ async function readHeadSnapshot(root, relativePath) {
129
+ try {
130
+ const result = await runGit(['show', `HEAD:${relativePath}`], {
131
+ cwd: root,
132
+ allowFailure: true,
133
+ timeoutMs: 60_000
134
+ });
135
+ if (result.code !== 0) return { exists: false, content: Buffer.alloc(0), hash: '' };
136
+ return { exists: true, content: result.stdoutBuffer, hash: hashBuffer(result.stdoutBuffer) };
137
+ } catch {
138
+ return { exists: false, content: Buffer.alloc(0), hash: '' };
139
+ }
140
+ }
141
+
142
+ function hashBuffer(buffer) {
143
+ let hash = 5381;
144
+ for (const byte of buffer) hash = ((hash << 5) + hash + byte) >>> 0;
145
+ return hash.toString(16);
146
+ }
147
+
148
+ function countPatchLines(patch) {
149
+ let added = 0;
150
+ let removed = 0;
151
+ for (const line of String(patch || '').split(/\r?\n/)) {
152
+ if (line.startsWith('+++') || line.startsWith('---')) continue;
153
+ if (line.startsWith('+')) added += 1;
154
+ else if (line.startsWith('-')) removed += 1;
155
+ }
156
+ return { added, removed };
157
+ }
158
+
159
+ function firstChangedLineFromPatch(patch) {
160
+ const match = String(patch || '').match(/^@@ -\d+(?:,\d+)? \+(\d+)(?:,\d+)? @@/m);
161
+ return match ? Math.max(1, Number(match[1]) || 1) : 0;
162
+ }
163
+
164
+ function actionFromSnapshots(before, after) {
165
+ if (!before.exists && after.exists) return 'create';
166
+ if (before.exists && !after.exists) return 'delete';
167
+ return 'edit';
168
+ }
169
+
170
+ async function writeTempSnapshot(dir, name, snapshot) {
171
+ const filePath = path.join(dir, name);
172
+ await fs.mkdir(path.dirname(filePath), { recursive: true });
173
+ await fs.writeFile(filePath, snapshot.content);
174
+ return filePath;
175
+ }
176
+
177
+ async function buildPatchForFile(root, relativePath, before, after) {
178
+ if (before.exists === after.exists && before.hash === after.hash) return '';
179
+ const tmp = await fs.mkdtemp(path.join(os.tmpdir(), 'codemini-oplog-'));
180
+ try {
181
+ const oldPath = normalizePath(path.posix.join('old', relativePath));
182
+ const newPath = normalizePath(path.posix.join('new', relativePath));
183
+ const beforePath = await writeTempSnapshot(tmp, oldPath, before.exists ? before : { content: Buffer.alloc(0) });
184
+ const afterPath = await writeTempSnapshot(tmp, newPath, after.exists ? after : { content: Buffer.alloc(0) });
185
+ const result = await runGit([
186
+ 'diff',
187
+ '--no-index',
188
+ '--no-color',
189
+ '--binary',
190
+ oldPath,
191
+ newPath
192
+ ], { cwd: tmp, allowFailure: true, timeoutMs: 120_000 });
193
+ if (result.code !== 1) return '';
194
+ const escaped = relativePath.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
195
+ return result.stdout
196
+ .replace(new RegExp(`diff --git a/old/${escaped} b/new/${escaped}`), `diff --git a/${relativePath} b/${relativePath}`)
197
+ .replace(new RegExp(`--- a/old/${escaped}`), before.exists ? `--- a/${relativePath}` : '--- /dev/null')
198
+ .replace(new RegExp(`\\+\\+\\+ b/new/${escaped}`), after.exists ? `+++ b/${relativePath}` : '+++ /dev/null');
199
+ } finally {
200
+ await fs.rm(tmp, { recursive: true, force: true }).catch(() => {});
201
+ }
202
+ }
203
+
204
+ async function writeJson(filePath, value) {
205
+ await fs.mkdir(path.dirname(filePath), { recursive: true });
206
+ await fs.writeFile(filePath, `${JSON.stringify(value, null, 2)}\n`, 'utf8');
207
+ }
208
+
209
+ async function readJson(filePath) {
210
+ return JSON.parse(await fs.readFile(filePath, 'utf8'));
211
+ }
212
+
213
+ export async function createGitOplogChangeTracker({ workspaceRoot = process.cwd(), sessionId } = {}) {
214
+ const startRoot = path.resolve(workspaceRoot);
215
+ const id = String(sessionId || '').trim();
216
+ if (!id) return { enabled: false, reason: 'missing-session' };
217
+
218
+ try {
219
+ const inside = await runGit(['rev-parse', '--is-inside-work-tree'], { cwd: startRoot, allowFailure: true });
220
+ if (inside.code !== 0 || inside.stdout.trim() !== 'true') {
221
+ return { enabled: false, reason: 'not-git-repo', workspaceRoot: startRoot };
222
+ }
223
+ const root = path.resolve((await runGit(['rev-parse', '--show-toplevel'], { cwd: startRoot })).stdout.trim());
224
+ const head = await runGit(['rev-parse', '--verify', 'HEAD'], { cwd: root, allowFailure: true });
225
+ const hasHead = head.code === 0;
226
+ const gitPath = (await runGit(['rev-parse', '--git-path', `codemini/sessions/${id}`], { cwd: root })).stdout.trim();
227
+ const oplogDir = path.resolve(root, gitPath);
228
+ const patchesDir = path.join(oplogDir, 'patches');
229
+ const opsDir = path.join(oplogDir, 'ops');
230
+ await fs.mkdir(patchesDir, { recursive: true });
231
+ await fs.mkdir(opsDir, { recursive: true });
232
+ if (hasHead) {
233
+ await runGit(['update-ref', `refs/codemini/sessions/${id}`, 'HEAD'], { cwd: root, allowFailure: true });
234
+ }
235
+ return {
236
+ enabled: true,
237
+ mode: 'git-oplog',
238
+ workspaceRoot: root,
239
+ sessionId: id,
240
+ baseCommit: hasHead ? head.stdout.trim() : '',
241
+ oplogDir,
242
+ patchesDir,
243
+ opsDir
244
+ };
245
+ } catch (error) {
246
+ return { enabled: false, reason: error instanceof Error ? error.message : String(error), workspaceRoot: startRoot };
247
+ }
248
+ }
249
+
250
+ export function isGitOplogChangeTrackerAvailable(tracker) {
251
+ return Boolean(tracker?.enabled && tracker.mode === 'git-oplog');
252
+ }
253
+
254
+ export async function beginGitOplogCapture(tracker, { toolName = '', args = {} } = {}) {
255
+ if (!isGitOplogChangeTrackerAvailable(tracker)) return null;
256
+ const explicitPaths = FILE_TOOLS.has(String(toolName || '')) ? extractPathCandidates(args, [], { root: tracker.workspaceRoot }) : [];
257
+ const status = await runGit(['status', '--porcelain=v1', '-z'], { cwd: tracker.workspaceRoot, allowFailure: true });
258
+ const dirtyPaths = parseStatusPaths(status.stdout);
259
+ const paths = explicitPaths.length ? explicitPaths : dirtyPaths;
260
+ const snapshots = new Map();
261
+ for (const filePath of paths) {
262
+ snapshots.set(filePath, await readWorktreeSnapshot(tracker.workspaceRoot, filePath));
263
+ }
264
+ return {
265
+ toolName,
266
+ explicit: explicitPaths.length > 0,
267
+ beforeDirtyPaths: dirtyPaths,
268
+ paths,
269
+ snapshots
270
+ };
271
+ }
272
+
273
+ export async function captureGitOplogChanges(tracker, capture, { toolName = '', toolCallId = '', summary = '', args = {}, declaredFileChanges = [] } = {}) {
274
+ if (!isGitOplogChangeTrackerAvailable(tracker) || !capture) return null;
275
+ const afterStatus = await runGit(['status', '--porcelain=v1', '-z'], { cwd: tracker.workspaceRoot, allowFailure: true });
276
+ const afterDirtyPaths = parseStatusPaths(afterStatus.stdout);
277
+ const declaredPaths = extractPathCandidates(args, declaredFileChanges, { root: tracker.workspaceRoot });
278
+ const candidates = new Set([
279
+ ...capture.paths,
280
+ ...declaredPaths,
281
+ ...(capture.explicit ? [] : capture.beforeDirtyPaths),
282
+ ...(capture.explicit ? [] : afterDirtyPaths)
283
+ ]);
284
+
285
+ const files = [];
286
+ const patches = [];
287
+ for (const filePath of candidates) {
288
+ const normalized = normalizeRelativePath(filePath, { root: tracker.workspaceRoot });
289
+ if (!normalized) continue;
290
+ let before = capture.snapshots.get(normalized);
291
+ if (!before) before = await readHeadSnapshot(tracker.workspaceRoot, normalized);
292
+ const after = await readWorktreeSnapshot(tracker.workspaceRoot, normalized);
293
+ const patch = await buildPatchForFile(tracker.workspaceRoot, normalized, before, after);
294
+ if (!patch.trim()) continue;
295
+ const stats = countPatchLines(patch);
296
+ files.push({
297
+ path: normalized,
298
+ action: actionFromSnapshots(before, after),
299
+ linesAdded: stats.added,
300
+ linesRemoved: stats.removed,
301
+ changedLine: firstChangedLineFromPatch(patch),
302
+ diffPreview: patch
303
+ });
304
+ patches.push(patch);
305
+ }
306
+ if (!files.length) return null;
307
+
308
+ const opId = changeId('op');
309
+ const patch = patches.join('\n');
310
+ const patchPath = path.join(tracker.patchesDir, `${opId}.patch`);
311
+ const opPath = path.join(tracker.opsDir, `${opId}.json`);
312
+ await fs.writeFile(patchPath, patch, 'utf8');
313
+ const op = {
314
+ version: CHANGE_OPLOG_VERSION,
315
+ id: opId,
316
+ sessionId: tracker.sessionId,
317
+ createdAt: new Date().toISOString(),
318
+ toolName,
319
+ toolCallId,
320
+ summary,
321
+ patchPath,
322
+ files: files.map(({ diffPreview, ...file }) => file),
323
+ revertedAt: null
324
+ };
325
+ await writeJson(opPath, op);
326
+ await fs.appendFile(path.join(tracker.oplogDir, 'ops.jsonl'), `${JSON.stringify({ ...op, patchPath: undefined })}\n`, 'utf8');
327
+ return files.map((file) => ({
328
+ ...file,
329
+ changeSetId: opId,
330
+ files: [{ path: file.path, action: file.action, linesAdded: file.linesAdded, linesRemoved: file.linesRemoved }]
331
+ }));
332
+ }
333
+
334
+ export async function listGitOplogChanges(tracker) {
335
+ if (!isGitOplogChangeTrackerAvailable(tracker)) return [];
336
+ let entries = [];
337
+ try {
338
+ entries = await fs.readdir(tracker.opsDir, { withFileTypes: true });
339
+ } catch {
340
+ return [];
341
+ }
342
+ const out = [];
343
+ for (const entry of entries) {
344
+ if (!entry.isFile() || !entry.name.endsWith('.json')) continue;
345
+ try { out.push(await readJson(path.join(tracker.opsDir, entry.name))); } catch {}
346
+ }
347
+ out.sort((a, b) => String(b.createdAt || '').localeCompare(String(a.createdAt || '')));
348
+ return out;
349
+ }
350
+
351
+ export async function readGitOplogChange(tracker, opId) {
352
+ if (!isGitOplogChangeTrackerAvailable(tracker)) throw new Error('Git change oplog is not available for this session');
353
+ const id = String(opId || '').trim();
354
+ if (!id) throw new Error('Missing change id');
355
+ return readJson(path.join(tracker.opsDir, `${id}.json`));
356
+ }
357
+
358
+ export async function readGitOplogPatch(tracker, opId) {
359
+ const op = await readGitOplogChange(tracker, opId);
360
+ return fs.readFile(op.patchPath, 'utf8');
361
+ }
362
+
363
+ export async function undoGitOplogChange(tracker, opId) {
364
+ if (!isGitOplogChangeTrackerAvailable(tracker)) throw new Error('Git change oplog is not available for this session');
365
+ const op = await readGitOplogChange(tracker, opId);
366
+ if (op.revertedAt) {
367
+ return { ok: false, alreadyReverted: true, changeSetId: op.id, message: 'Change already reverted' };
368
+ }
369
+ const patch = await fs.readFile(op.patchPath, 'utf8');
370
+ try {
371
+ await runGit(['apply', '-R', '--check', '--whitespace=nowarn'], {
372
+ cwd: tracker.workspaceRoot,
373
+ input: patch,
374
+ timeoutMs: 120_000
375
+ });
376
+ } catch (error) {
377
+ throw new Error(`Cannot undo this change cleanly because newer edits conflict with it. Undo newer changes first, or revert it manually. ${error?.message || ''}`.trim());
378
+ }
379
+ await runGit(['apply', '-R', '--whitespace=nowarn'], {
380
+ cwd: tracker.workspaceRoot,
381
+ input: patch,
382
+ timeoutMs: 120_000
383
+ });
384
+ op.revertedAt = new Date().toISOString();
385
+ await writeJson(path.join(tracker.opsDir, `${op.id}.json`), op);
386
+ return { ok: true, changeSetId: op.id };
387
+ }
@@ -0,0 +1,116 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { normalizePath } from './string-utils.js';
4
+
5
+ function normalizeRelativePath(value) {
6
+ const text = normalizePath(String(value || '').trim()).replace(/:\d+(?:-\d+)?$/, '');
7
+ if (!text || text === '.' || path.isAbsolute(text) || text.startsWith('../')) return '';
8
+ return text;
9
+ }
10
+
11
+ function safeBackupRelativePath(relativePath) {
12
+ return normalizeRelativePath(relativePath)
13
+ .split('/')
14
+ .map((part) => part.replace(/[<>:"\\|?*\x00-\x1F]/g, '_'))
15
+ .join('/');
16
+ }
17
+
18
+ async function readJson(filePath, fallback) {
19
+ try {
20
+ return JSON.parse(await fs.readFile(filePath, 'utf8'));
21
+ } catch {
22
+ return fallback;
23
+ }
24
+ }
25
+
26
+ async function writeJson(filePath, value) {
27
+ await fs.mkdir(path.dirname(filePath), { recursive: true });
28
+ await fs.writeFile(filePath, `${JSON.stringify(value, null, 2)}\n`, 'utf8');
29
+ }
30
+
31
+ export async function createNonGitBackupManager({ workspaceRoot = process.cwd(), sessionId } = {}) {
32
+ const root = path.resolve(workspaceRoot);
33
+ const id = String(sessionId || '').trim();
34
+ if (!id) return null;
35
+ const backupRoot = path.join(root, '.codemini', 'backups', 'sessions', id);
36
+ const filesRoot = path.join(backupRoot, 'files');
37
+ const manifestPath = path.join(backupRoot, 'manifest.json');
38
+ await fs.mkdir(filesRoot, { recursive: true });
39
+ const manifest = await readJson(manifestPath, {
40
+ version: 1,
41
+ sessionId: id,
42
+ createdAt: new Date().toISOString(),
43
+ files: {}
44
+ });
45
+
46
+ async function backupOnce(relativePath) {
47
+ const normalized = normalizeRelativePath(relativePath);
48
+ if (!normalized) return { ok: false, reason: 'invalid-path' };
49
+ const existing = manifest.files?.[normalized];
50
+ if (existing) {
51
+ return { ...existing, ok: true, reused: true, created: false };
52
+ }
53
+
54
+ const target = path.resolve(root, normalized);
55
+ const rel = path.relative(root, target);
56
+ if (rel.startsWith('..') || path.isAbsolute(rel)) {
57
+ return { ok: false, path: normalized, reason: 'outside-workspace' };
58
+ }
59
+
60
+ let stat;
61
+ try {
62
+ stat = await fs.stat(target);
63
+ } catch (error) {
64
+ if (error?.code !== 'ENOENT') throw error;
65
+ const entry = {
66
+ path: normalized,
67
+ existed: false,
68
+ backupPath: '',
69
+ backupRelativePath: '',
70
+ createdAt: new Date().toISOString()
71
+ };
72
+ manifest.files[normalized] = entry;
73
+ await writeJson(manifestPath, manifest);
74
+ return { ...entry, ok: true, reused: false, created: false };
75
+ }
76
+
77
+ if (!stat.isFile()) {
78
+ const entry = {
79
+ path: normalized,
80
+ existed: true,
81
+ backupPath: '',
82
+ backupRelativePath: '',
83
+ skipped: true,
84
+ reason: stat.isDirectory() ? 'directory' : 'not-file',
85
+ createdAt: new Date().toISOString()
86
+ };
87
+ manifest.files[normalized] = entry;
88
+ await writeJson(manifestPath, manifest);
89
+ return { ...entry, ok: true, reused: false, created: false };
90
+ }
91
+
92
+ const safeRelative = safeBackupRelativePath(normalized);
93
+ const backupPath = path.join(filesRoot, safeRelative);
94
+ await fs.mkdir(path.dirname(backupPath), { recursive: true });
95
+ await fs.copyFile(target, backupPath);
96
+ const entry = {
97
+ path: normalized,
98
+ existed: true,
99
+ backupPath,
100
+ backupRelativePath: normalizePath(path.relative(root, backupPath)),
101
+ createdAt: new Date().toISOString()
102
+ };
103
+ manifest.files[normalized] = entry;
104
+ await writeJson(manifestPath, manifest);
105
+ return { ...entry, ok: true, reused: false, created: true };
106
+ }
107
+
108
+ return {
109
+ mode: 'non-git-backup',
110
+ workspaceRoot: root,
111
+ sessionId: id,
112
+ backupRoot,
113
+ manifestPath,
114
+ backupOnce
115
+ };
116
+ }