codemini-cli 0.5.0 → 0.5.2

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 (711) hide show
  1. package/LICENSE +0 -0
  2. package/OPERATIONS.md +1 -1
  3. package/README.md +25 -25
  4. package/bin/coder.js +0 -0
  5. package/codemini-web/dist/assets/Geist-Italic_wght_-vKc54d3Z.woff2 +0 -0
  6. package/codemini-web/dist/assets/Geist-Variable-CrgPqtmy.woff2 +0 -0
  7. package/codemini-web/dist/assets/GeistMono-Variable-BNLlm6Cd.woff2 +0 -0
  8. package/codemini-web/dist/assets/abap-9R7RjkQK.js +1 -0
  9. package/codemini-web/dist/assets/abap-BRbAAyvE.js +0 -0
  10. package/codemini-web/dist/assets/actionscript-3-CNowah7a.js +1 -0
  11. package/codemini-web/dist/assets/actionscript-3-Cj-0sM4g.js +0 -0
  12. package/codemini-web/dist/assets/ada-D5HmrmpD.js +1 -0
  13. package/codemini-web/dist/assets/ada-DhEA_nP5.js +0 -0
  14. package/codemini-web/dist/assets/andromeeda-CWmR-N6V.js +0 -0
  15. package/codemini-web/dist/assets/andromeeda-i_b3g2bn.js +1 -0
  16. package/codemini-web/dist/assets/{angular-html-Cde9qVP5.js → angular-html-CHsdtmkx.js} +1 -1
  17. package/codemini-web/dist/assets/angular-html-DlSp9HPG.js +1 -0
  18. package/codemini-web/dist/assets/{angular-ts-DefScAWP.js → angular-ts-B29Ypg6B.js} +1 -1
  19. package/codemini-web/dist/assets/angular-ts-JNDGGWj0.js +1 -0
  20. package/codemini-web/dist/assets/apache-D37U8o0r.js +1 -0
  21. package/codemini-web/dist/assets/apache-D5R2GKIs.js +0 -0
  22. package/codemini-web/dist/assets/apex-CszkG4lQ.js +1 -0
  23. package/codemini-web/dist/assets/apex-Qu8W4hal.js +0 -0
  24. package/codemini-web/dist/assets/apl-BASZ7uB_.js +1 -0
  25. package/codemini-web/dist/assets/{apl-w753UHCW.js → apl-Byuv-g-O.js} +1 -1
  26. package/codemini-web/dist/assets/applescript-Ajt9gmC_.js +1 -0
  27. package/codemini-web/dist/assets/applescript-CBey3ErE.js +0 -0
  28. package/codemini-web/dist/assets/ara-CRKnUAN1.js +0 -0
  29. package/codemini-web/dist/assets/ara-DpGk8XWf.js +1 -0
  30. package/codemini-web/dist/assets/asciidoc-1KYZEB6-.js +0 -0
  31. package/codemini-web/dist/assets/asciidoc-BdDORSgx.js +1 -0
  32. package/codemini-web/dist/assets/asm-DAaViY0U.js +0 -0
  33. package/codemini-web/dist/assets/asm-DGLRM3OU.js +1 -0
  34. package/codemini-web/dist/assets/{astro-DBA9Da7s.js → astro-CTzEugGW.js} +1 -1
  35. package/codemini-web/dist/assets/astro-l-XABzN2.js +1 -0
  36. package/codemini-web/dist/assets/aurora-x-DdfqxvM_.js +1 -0
  37. package/codemini-web/dist/assets/aurora-x-LPpmXm4i.js +0 -0
  38. package/codemini-web/dist/assets/awk-B-J9te9x.js +1 -0
  39. package/codemini-web/dist/assets/awk-ButuPTaW.js +0 -0
  40. package/codemini-web/dist/assets/ayu-dark-BdNJk5qF.js +1 -0
  41. package/codemini-web/dist/assets/ayu-dark-Dv4ngVMP.js +0 -0
  42. package/codemini-web/dist/assets/ayu-light-CxeOePuA.js +0 -0
  43. package/codemini-web/dist/assets/ayu-light-DkLNbAkT.js +1 -0
  44. package/codemini-web/dist/assets/ayu-mirage-BoyGjGHX.js +1 -0
  45. package/codemini-web/dist/assets/ayu-mirage-i2YLXKmY.js +0 -0
  46. package/codemini-web/dist/assets/ballerina-CZ8CAKmi.js +1 -0
  47. package/codemini-web/dist/assets/ballerina-DodmBVwR.js +0 -0
  48. package/codemini-web/dist/assets/bat-fNtaIqKE.js +1 -0
  49. package/codemini-web/dist/assets/bat-jA-YqDhG.js +0 -0
  50. package/codemini-web/dist/assets/beancount-9imagnS2.js +1 -0
  51. package/codemini-web/dist/assets/beancount-BCkjWTs-.js +0 -0
  52. package/codemini-web/dist/assets/berry-DjEHm1kC.js +0 -0
  53. package/codemini-web/dist/assets/berry-QTBYpUPn.js +1 -0
  54. package/codemini-web/dist/assets/bibtex-CzFWvn9u.js +1 -0
  55. package/codemini-web/dist/assets/bibtex-aOfmXHFj.js +0 -0
  56. package/codemini-web/dist/assets/bicep-BZLx0b6B.js +0 -0
  57. package/codemini-web/dist/assets/bicep-DLWEubga.js +1 -0
  58. package/codemini-web/dist/assets/bird2-V7dWeQhQ.js +1 -0
  59. package/codemini-web/dist/assets/{bird2-Bs7YDhA3.js → bird2-VVa6lZ01.js} +0 -0
  60. package/codemini-web/dist/assets/blade-B3_bxlV2.js +1 -0
  61. package/codemini-web/dist/assets/{blade-B-u5p0Rp.js → blade-Dt6km9YT.js} +1 -1
  62. package/codemini-web/dist/assets/bsl-CPV9KqsG.js +0 -0
  63. package/codemini-web/dist/assets/bsl-D3u1l2dW.js +1 -0
  64. package/codemini-web/dist/assets/c-Bv0tI3pq.js +0 -0
  65. package/codemini-web/dist/assets/c-CgTSul4N.js +1 -0
  66. package/codemini-web/dist/assets/c3-BDcFIiRd.js +0 -0
  67. package/codemini-web/dist/assets/c3-SmmwBAzR.js +1 -0
  68. package/codemini-web/dist/assets/cadence-DVNAI4pJ.js +1 -0
  69. package/codemini-web/dist/assets/cadence-DaglWUgA.js +0 -0
  70. package/codemini-web/dist/assets/cairo-CoQzhJ_o.js +1 -0
  71. package/codemini-web/dist/assets/cairo-CyiRuu7R.js +0 -0
  72. package/codemini-web/dist/assets/catppuccin-frappe-CSAC76is.js +0 -0
  73. package/codemini-web/dist/assets/catppuccin-frappe-DXCXlnyU.js +1 -0
  74. package/codemini-web/dist/assets/catppuccin-latte-BXW2qYGv.js +1 -0
  75. package/codemini-web/dist/assets/catppuccin-latte-Jt6sqtds.js +0 -0
  76. package/codemini-web/dist/assets/catppuccin-macchiato--32cesHH.js +1 -0
  77. package/codemini-web/dist/assets/catppuccin-macchiato-HM96_05s.js +0 -0
  78. package/codemini-web/dist/assets/catppuccin-mocha-BBRFilGN.js +1 -0
  79. package/codemini-web/dist/assets/catppuccin-mocha-CXgIAGBL.js +0 -0
  80. package/codemini-web/dist/assets/clarity-BJs8u8xG.js +1 -0
  81. package/codemini-web/dist/assets/clarity-DS5YLe8G.js +0 -0
  82. package/codemini-web/dist/assets/clojure-BVGPdaE2.js +0 -0
  83. package/codemini-web/dist/assets/clojure-DpYoDXXl.js +1 -0
  84. package/codemini-web/dist/assets/cmake-CCC7tP43.js +0 -0
  85. package/codemini-web/dist/assets/cmake-CdseusyP.js +1 -0
  86. package/codemini-web/dist/assets/{cobol-CkQrskif.js → cobol-D_kesMA-.js} +1 -1
  87. package/codemini-web/dist/assets/cobol-DqhY5el-.js +1 -0
  88. package/codemini-web/dist/assets/codeowners-5EAeZxPo.js +1 -0
  89. package/codemini-web/dist/assets/codeowners-DXhoR5Ap.js +0 -0
  90. package/codemini-web/dist/assets/codeql-BGjlu3KC.js +0 -0
  91. package/codemini-web/dist/assets/codeql-OkUuMGe9.js +1 -0
  92. package/codemini-web/dist/assets/coffee-DF15_0rk.js +1 -0
  93. package/codemini-web/dist/assets/coffee-rY-gkJy7.js +0 -0
  94. package/codemini-web/dist/assets/common-lisp-BE6wRQeA.js +0 -0
  95. package/codemini-web/dist/assets/common-lisp-DCRDlc4V.js +1 -0
  96. package/codemini-web/dist/assets/coq-CRT8yML1.js +0 -0
  97. package/codemini-web/dist/assets/coq-acwo70uY.js +1 -0
  98. package/codemini-web/dist/assets/cpp-Bw-qV0P6.js +0 -0
  99. package/codemini-web/dist/assets/cpp-Cudwe5mG.js +1 -0
  100. package/codemini-web/dist/assets/{crystal-Dh09vXLx.js → crystal-Bw1_1hFA.js} +1 -1
  101. package/codemini-web/dist/assets/crystal-DV9Nijjb.js +1 -0
  102. package/codemini-web/dist/assets/csharp-Ca2kU4Te.js +0 -0
  103. package/codemini-web/dist/assets/csharp-Cqz84DXU.js +1 -0
  104. package/codemini-web/dist/assets/{css-BTi88BmP.js → css-Dr0v2l-V.js} +0 -0
  105. package/codemini-web/dist/assets/css-z2ijrDWT.js +1 -0
  106. package/codemini-web/dist/assets/csv-CqpUSPyF.js +1 -0
  107. package/codemini-web/dist/assets/csv-DUpZC5ZD.js +0 -0
  108. package/codemini-web/dist/assets/cue-D4-Hq7Jx.js +1 -0
  109. package/codemini-web/dist/assets/cue-DlXQ7arx.js +0 -0
  110. package/codemini-web/dist/assets/cypher-CXMVfSpG.js +1 -0
  111. package/codemini-web/dist/assets/cypher-D6dhuZbo.js +0 -0
  112. package/codemini-web/dist/assets/d-BUgyoY6k.js +0 -0
  113. package/codemini-web/dist/assets/d-Cc_KoyiC.js +1 -0
  114. package/codemini-web/dist/assets/dark-plus-C0kLyDb3.js +1 -0
  115. package/codemini-web/dist/assets/dark-plus-DNkJKrcZ.js +0 -0
  116. package/codemini-web/dist/assets/{dart-Czrjv-nr.js → dart-BIyV3H7V.js} +0 -0
  117. package/codemini-web/dist/assets/dart-CVd7TDni.js +1 -0
  118. package/codemini-web/dist/assets/dax-DtoJMuz5.js +1 -0
  119. package/codemini-web/dist/assets/dax-sEzq00Tq.js +0 -0
  120. package/codemini-web/dist/assets/desktop-3VGbzlmJ.js +0 -0
  121. package/codemini-web/dist/assets/desktop-BkIJ2CMP.js +1 -0
  122. package/codemini-web/dist/assets/diff-D4HSRbRn.js +0 -0
  123. package/codemini-web/dist/assets/diff-RUsawely.js +1 -0
  124. package/codemini-web/dist/assets/docker-CDpVZYy7.js +1 -0
  125. package/codemini-web/dist/assets/docker-DkLGgDMo.js +0 -0
  126. package/codemini-web/dist/assets/dotenv-BWp1FaLo.js +0 -0
  127. package/codemini-web/dist/assets/dotenv-DWnlamm2.js +1 -0
  128. package/codemini-web/dist/assets/dracula-Donvxzd6.js +0 -0
  129. package/codemini-web/dist/assets/dracula-QP8aKUFB.js +1 -0
  130. package/codemini-web/dist/assets/dracula-soft-BNzyYlRI.js +1 -0
  131. package/codemini-web/dist/assets/dracula-soft-BqL-kkUg.js +0 -0
  132. package/codemini-web/dist/assets/dream-maker-DtLD6KM3.js +0 -0
  133. package/codemini-web/dist/assets/dream-maker-MNBsfIGU.js +1 -0
  134. package/codemini-web/dist/assets/{edge-CCRtknu5.js → edge-BosfXYh1.js} +1 -1
  135. package/codemini-web/dist/assets/edge-r5NIe9Lp.js +1 -0
  136. package/codemini-web/dist/assets/{elixir-5EYbFEoC.js → elixir-B04apOJS.js} +1 -1
  137. package/codemini-web/dist/assets/elixir-Dw_vsdUl.js +1 -0
  138. package/codemini-web/dist/assets/elm-Cezz_HNz.js +0 -0
  139. package/codemini-web/dist/assets/elm-DPfFNNkG.js +1 -0
  140. package/codemini-web/dist/assets/emacs-lisp-BHIDiQRU.js +1 -0
  141. package/codemini-web/dist/assets/{emacs-lisp-D4W-_rAk.js → emacs-lisp-CVlPXEEa.js} +0 -0
  142. package/codemini-web/dist/assets/{erb-C6pPz4fX.js → erb-BNioEFKQ.js} +1 -1
  143. package/codemini-web/dist/assets/erb-DZuoCU5t.js +1 -0
  144. package/codemini-web/dist/assets/erlang-BC8wryba.js +0 -0
  145. package/codemini-web/dist/assets/erlang-CqHCISqs.js +1 -0
  146. package/codemini-web/dist/assets/everforest-dark-DSK976eP.js +1 -0
  147. package/codemini-web/dist/assets/everforest-dark-pZNhY4MK.js +0 -0
  148. package/codemini-web/dist/assets/everforest-light-BijKClkf.js +0 -0
  149. package/codemini-web/dist/assets/everforest-light-BkaBVm1r.js +1 -0
  150. package/codemini-web/dist/assets/fennel-BsP4yvxI.js +1 -0
  151. package/codemini-web/dist/assets/fennel-Cd-BhZ0S.js +0 -0
  152. package/codemini-web/dist/assets/fish-CimYqIk1.js +1 -0
  153. package/codemini-web/dist/assets/fish-CpsjJ6FK.js +0 -0
  154. package/codemini-web/dist/assets/fluent-D1peBFgx.js +0 -0
  155. package/codemini-web/dist/assets/fluent-O-Iic89O.js +1 -0
  156. package/codemini-web/dist/assets/fortran-fixed-form-60ZQAHDk.js +1 -0
  157. package/codemini-web/dist/assets/fortran-fixed-form-CyrImzNA.js +0 -0
  158. package/codemini-web/dist/assets/fortran-free-form-BVNtEstX.js +1 -0
  159. package/codemini-web/dist/assets/fortran-free-form-CIAQqF5W.js +0 -0
  160. package/codemini-web/dist/assets/fsharp-Ch5ZVinn.js +1 -0
  161. package/codemini-web/dist/assets/fsharp-OCW_PZ4J.js +0 -0
  162. package/codemini-web/dist/assets/gdresource-Cl3bohRI.js +0 -0
  163. package/codemini-web/dist/assets/gdresource-CqNLhJW1.js +1 -0
  164. package/codemini-web/dist/assets/gdscript-B_XVILZe.js +0 -0
  165. package/codemini-web/dist/assets/gdscript-D-FJCTl3.js +1 -0
  166. package/codemini-web/dist/assets/gdshader-BOrkFM_X.js +0 -0
  167. package/codemini-web/dist/assets/gdshader-Czvzt8dR.js +1 -0
  168. package/codemini-web/dist/assets/genie-BE7nKhIq.js +0 -0
  169. package/codemini-web/dist/assets/genie-Mnf_jXpg.js +1 -0
  170. package/codemini-web/dist/assets/gherkin-DzGJhdqS.js +0 -0
  171. package/codemini-web/dist/assets/gherkin-DzkYuFEO.js +1 -0
  172. package/codemini-web/dist/assets/git-commit-CSWECvqq.js +1 -0
  173. package/codemini-web/dist/assets/git-commit-DJZpdBwB.js +0 -0
  174. package/codemini-web/dist/assets/git-rebase-BJE30GTP.js +0 -0
  175. package/codemini-web/dist/assets/git-rebase-MUvuytPe.js +1 -0
  176. package/codemini-web/dist/assets/github-dark-BB9G20EV.js +0 -0
  177. package/codemini-web/dist/assets/github-dark-C98YWDhk.js +1 -0
  178. package/codemini-web/dist/assets/github-dark-default-CBFNEU03.js +0 -0
  179. package/codemini-web/dist/assets/github-dark-default-CDGuVkyn.js +1 -0
  180. package/codemini-web/dist/assets/github-dark-dimmed-CarTohA3.js +1 -0
  181. package/codemini-web/dist/assets/github-dark-dimmed-sQhEp72S.js +0 -0
  182. package/codemini-web/dist/assets/github-dark-high-contrast-C8GVvrcM.js +0 -0
  183. package/codemini-web/dist/assets/github-dark-high-contrast-CsjOICAd.js +1 -0
  184. package/codemini-web/dist/assets/github-light-D17m3GP4.js +1 -0
  185. package/codemini-web/dist/assets/github-light-default-DiMoa1ZI.js +1 -0
  186. package/codemini-web/dist/assets/github-light-default-iyEXWnoa.js +0 -0
  187. package/codemini-web/dist/assets/github-light-high-contrast-DGwHD8Ty.js +1 -0
  188. package/codemini-web/dist/assets/github-light-high-contrast-DLnsZL7l.js +0 -0
  189. package/codemini-web/dist/assets/github-light-pT7U8Cnd.js +0 -0
  190. package/codemini-web/dist/assets/gleam-B9ISJjDl.js +0 -0
  191. package/codemini-web/dist/assets/gleam-MAXpOqqF.js +1 -0
  192. package/codemini-web/dist/assets/{glimmer-js-C4PTXfaW.js → glimmer-js-Dn6vjgHP.js} +1 -1
  193. package/codemini-web/dist/assets/glimmer-js-HDDEErW7.js +1 -0
  194. package/codemini-web/dist/assets/glimmer-ts-Dq0_BflX.js +1 -0
  195. package/codemini-web/dist/assets/{glimmer-ts-Df1V6YK_.js → glimmer-ts-mq-Q_zEE.js} +1 -1
  196. package/codemini-web/dist/assets/glsl-C4rvog10.js +1 -0
  197. package/codemini-web/dist/assets/glsl-C8VPaAWs.js +0 -0
  198. package/codemini-web/dist/assets/gn-BNADkWgR.js +1 -0
  199. package/codemini-web/dist/assets/gn-RQRMslrP.js +0 -0
  200. package/codemini-web/dist/assets/gnuplot-BRQvwTQM.js +1 -0
  201. package/codemini-web/dist/assets/gnuplot-CfIGZWjt.js +0 -0
  202. package/codemini-web/dist/assets/{go-BTh90-YS.js → go-D6k5URxL.js} +0 -0
  203. package/codemini-web/dist/assets/go-iV8pwUYW.js +1 -0
  204. package/codemini-web/dist/assets/graphql-Dg0Ewf8Q.js +1 -0
  205. package/codemini-web/dist/assets/graphql-WZCiqIl-.js +0 -0
  206. package/codemini-web/dist/assets/groovy-CxG1cXrE.js +1 -0
  207. package/codemini-web/dist/assets/groovy-lvGC2zUz.js +0 -0
  208. package/codemini-web/dist/assets/gruvbox-dark-hard-CC38iqQ4.js +0 -0
  209. package/codemini-web/dist/assets/gruvbox-dark-hard-Cnb1fzry.js +1 -0
  210. package/codemini-web/dist/assets/gruvbox-dark-medium-Cu5j8v_d.js +1 -0
  211. package/codemini-web/dist/assets/gruvbox-dark-medium-DaS0IqFN.js +0 -0
  212. package/codemini-web/dist/assets/gruvbox-dark-soft-BghHDwrM.js +1 -0
  213. package/codemini-web/dist/assets/gruvbox-dark-soft-C4niJipy.js +0 -0
  214. package/codemini-web/dist/assets/gruvbox-light-hard-BUhLUxUB.js +1 -0
  215. package/codemini-web/dist/assets/gruvbox-light-hard-DTfv4LmB.js +0 -0
  216. package/codemini-web/dist/assets/gruvbox-light-medium-GXeiXGL9.js +1 -0
  217. package/codemini-web/dist/assets/gruvbox-light-medium-m1VBpvsE.js +0 -0
  218. package/codemini-web/dist/assets/gruvbox-light-soft-CiE1IJdk.js +0 -0
  219. package/codemini-web/dist/assets/gruvbox-light-soft-pTZgKx7j.js +1 -0
  220. package/codemini-web/dist/assets/{hack-zJL_tEH0.js → hack-DeD259o6.js} +1 -1
  221. package/codemini-web/dist/assets/hack-DjE76gIx.js +1 -0
  222. package/codemini-web/dist/assets/{haml-qjVLLTZk.js → haml-B8MRe8CS.js} +1 -1
  223. package/codemini-web/dist/assets/haml-DyIc_iO2.js +1 -0
  224. package/codemini-web/dist/assets/handlebars-DQ4X08Zf.js +1 -0
  225. package/codemini-web/dist/assets/{handlebars-B3RyMMk0.js → handlebars-GoJyzhp1.js} +1 -1
  226. package/codemini-web/dist/assets/haskell-BZ8bGMYA.js +1 -0
  227. package/codemini-web/dist/assets/haskell-DdaZtXdd.js +0 -0
  228. package/codemini-web/dist/assets/haxe-1eAUKQ0B.js +1 -0
  229. package/codemini-web/dist/assets/haxe-Df79h8x1.js +0 -0
  230. package/codemini-web/dist/assets/hcl-BibREsa1.js +0 -0
  231. package/codemini-web/dist/assets/hcl-DQqvKq2I.js +1 -0
  232. package/codemini-web/dist/assets/{highlighted-body-OFNGDK62-CJHWad2r.js → highlighted-body-OFNGDK62-CDUecv8k.js} +1 -1
  233. package/codemini-web/dist/assets/hjson-D-iSecYq.js +0 -0
  234. package/codemini-web/dist/assets/hjson-DNWMSWLN.js +1 -0
  235. package/codemini-web/dist/assets/hlsl-CckLjo_3.js +0 -0
  236. package/codemini-web/dist/assets/hlsl-Df5oFh9i.js +1 -0
  237. package/codemini-web/dist/assets/horizon-BCbhfxa1.js +1 -0
  238. package/codemini-web/dist/assets/horizon-BG-OH9yH.js +0 -0
  239. package/codemini-web/dist/assets/horizon-bright-B0vmEjwb.js +1 -0
  240. package/codemini-web/dist/assets/{horizon-bright-CpoqdULz.js → horizon-bright-CXcxBcih.js} +0 -0
  241. package/codemini-web/dist/assets/houston-C8DdNIgg.js +0 -0
  242. package/codemini-web/dist/assets/houston-DHnjBE42.js +1 -0
  243. package/codemini-web/dist/assets/{html-DP-V-rfg.js → html-B7kk5NVw.js} +1 -1
  244. package/codemini-web/dist/assets/html-GfHBuoLs.js +1 -0
  245. package/codemini-web/dist/assets/{html-derivative-DB9UhNDN.js → html-derivative-Ba28nVB3.js} +1 -1
  246. package/codemini-web/dist/assets/html-derivative-ChSmSZXY.js +1 -0
  247. package/codemini-web/dist/assets/http-DMTBhQm8.js +1 -0
  248. package/codemini-web/dist/assets/http-Deln4Vyb.js +0 -0
  249. package/codemini-web/dist/assets/hurl-CYSuhGkj.js +0 -0
  250. package/codemini-web/dist/assets/hurl-XIpACwjS.js +1 -0
  251. package/codemini-web/dist/assets/hxml-BmF7ngDz.js +0 -0
  252. package/codemini-web/dist/assets/hxml-PnV_FpS-.js +1 -0
  253. package/codemini-web/dist/assets/hy-6acR1htR.js +0 -0
  254. package/codemini-web/dist/assets/hy-DaILHjW8.js +1 -0
  255. package/codemini-web/dist/assets/imba-BA6_JyKt.js +1 -0
  256. package/codemini-web/dist/assets/imba-I9bJJvhi.js +0 -0
  257. package/codemini-web/dist/assets/index-Cfk9ARKs.js +426 -0
  258. package/codemini-web/dist/assets/index-Dqq2DCEb.css +2 -0
  259. package/codemini-web/dist/assets/ini-DqXMcqXm.js +1 -0
  260. package/codemini-web/dist/assets/ini-ovi-wMtM.js +0 -0
  261. package/codemini-web/dist/assets/java-Ds1cyVrp.js +1 -0
  262. package/codemini-web/dist/assets/java-X0I2c5Az.js +0 -0
  263. package/codemini-web/dist/assets/javascript-Cx8CXBJR.js +1 -0
  264. package/codemini-web/dist/assets/javascript-WC6XFf_S.js +0 -0
  265. package/codemini-web/dist/assets/{jinja-BcRTlqOI.js → jinja-8ATGhxJO.js} +1 -1
  266. package/codemini-web/dist/assets/jinja-Dx5IcFSt.js +1 -0
  267. package/codemini-web/dist/assets/jison-CSsYnr7O.js +1 -0
  268. package/codemini-web/dist/assets/jison-DuNOGix6.js +0 -0
  269. package/codemini-web/dist/assets/json-CY14kIzN.js +1 -0
  270. package/codemini-web/dist/assets/json-CmuSmrUv.js +0 -0
  271. package/codemini-web/dist/assets/json5-Cus7zL-r.js +1 -0
  272. package/codemini-web/dist/assets/json5-JNG5kh3j.js +0 -0
  273. package/codemini-web/dist/assets/jsonc-Bo6bgSpa.js +0 -0
  274. package/codemini-web/dist/assets/jsonc-RzqrtWTz.js +1 -0
  275. package/codemini-web/dist/assets/jsonl-CLcLUtvq.js +1 -0
  276. package/codemini-web/dist/assets/jsonl-eDmbsRcr.js +0 -0
  277. package/codemini-web/dist/assets/jsonnet--7yRuAzt.js +1 -0
  278. package/codemini-web/dist/assets/jsonnet-BrmnmEy9.js +0 -0
  279. package/codemini-web/dist/assets/jssm-C-QfdDgD.js +0 -0
  280. package/codemini-web/dist/assets/jssm-Cid5Rr2Y.js +1 -0
  281. package/codemini-web/dist/assets/jsx-Bl4e1-KE.js +0 -0
  282. package/codemini-web/dist/assets/jsx-DmH5dwMF.js +1 -0
  283. package/codemini-web/dist/assets/julia-Cqc1ADyw.js +0 -0
  284. package/codemini-web/dist/assets/julia-vjG00jwO.js +1 -0
  285. package/codemini-web/dist/assets/{just-O9z-zIlY.js → just-BlUYrdKb.js} +1 -1
  286. package/codemini-web/dist/assets/just-C7G3KFgN.js +1 -0
  287. package/codemini-web/dist/assets/kanagawa-dragon-BxDDNs-7.js +1 -0
  288. package/codemini-web/dist/assets/kanagawa-dragon-Dc8jzBf8.js +0 -0
  289. package/codemini-web/dist/assets/kanagawa-lotus-BQyifewU.js +1 -0
  290. package/codemini-web/dist/assets/kanagawa-lotus-DglQpAHb.js +0 -0
  291. package/codemini-web/dist/assets/kanagawa-wave-BsJGVIZT.js +1 -0
  292. package/codemini-web/dist/assets/kanagawa-wave-CTxJC692.js +0 -0
  293. package/codemini-web/dist/assets/kdl-CPujEk7a.js +0 -0
  294. package/codemini-web/dist/assets/kdl-D2MbAIKj.js +1 -0
  295. package/codemini-web/dist/assets/kotlin-GNGS6f4G.js +0 -0
  296. package/codemini-web/dist/assets/kotlin-fpq87Jdo.js +1 -0
  297. package/codemini-web/dist/assets/{kusto-ByPWIc1b.js → kusto-B1r4va-8.js} +0 -0
  298. package/codemini-web/dist/assets/kusto-BcKmLn2p.js +1 -0
  299. package/codemini-web/dist/assets/laserwave-BLDq6SCM.js +0 -0
  300. package/codemini-web/dist/assets/laserwave-CrjhMkHv.js +1 -0
  301. package/codemini-web/dist/assets/latex-BEPTKliI.js +0 -0
  302. package/codemini-web/dist/assets/latex-D8-NgtPj.js +1 -0
  303. package/codemini-web/dist/assets/lean-B9Xp-kaJ.js +1 -0
  304. package/codemini-web/dist/assets/lean-CQ4oht2M.js +0 -0
  305. package/codemini-web/dist/assets/less-BKjOc0Gl.js +1 -0
  306. package/codemini-web/dist/assets/less-DgluPI4Z.js +0 -0
  307. package/codemini-web/dist/assets/light-plus-Ce6vIMrA.js +0 -0
  308. package/codemini-web/dist/assets/light-plus-DFt9HI_B.js +1 -0
  309. package/codemini-web/dist/assets/{liquid-BK2PyMjt.js → liquid-BUh7yINm.js} +1 -1
  310. package/codemini-web/dist/assets/liquid-D2m0XXrV.js +1 -0
  311. package/codemini-web/dist/assets/llvm-C_Bk8N51.js +0 -0
  312. package/codemini-web/dist/assets/llvm-XDy97SdL.js +1 -0
  313. package/codemini-web/dist/assets/log-Cqyx7kYB.js +0 -0
  314. package/codemini-web/dist/assets/log-tjGJZ7jx.js +1 -0
  315. package/codemini-web/dist/assets/logo-BMyACSNp.js +0 -0
  316. package/codemini-web/dist/assets/logo-rCQwad-6.js +1 -0
  317. package/codemini-web/dist/assets/lua-BeSXusec.js +1 -0
  318. package/codemini-web/dist/assets/lua-BroxvhVt.js +0 -0
  319. package/codemini-web/dist/assets/luau-C0wE4YeK.js +1 -0
  320. package/codemini-web/dist/assets/luau-Dw3qkd4h.js +0 -0
  321. package/codemini-web/dist/assets/make-DRoG6w-e.js +0 -0
  322. package/codemini-web/dist/assets/make-DZENZd8z.js +1 -0
  323. package/codemini-web/dist/assets/markdown-CbgVmtS5.js +1 -0
  324. package/codemini-web/dist/assets/markdown-DMIvNSB1.js +0 -0
  325. package/codemini-web/dist/assets/marko-DPnRthJQ.js +1 -0
  326. package/codemini-web/dist/assets/{marko-CTEKS39A.js → marko-Dm8xPXkG.js} +1 -1
  327. package/codemini-web/dist/assets/material-theme-D1yzOeFY.js +0 -0
  328. package/codemini-web/dist/assets/material-theme-YhiuxyiP.js +1 -0
  329. package/codemini-web/dist/assets/material-theme-darker-CKeuyK7B.js +1 -0
  330. package/codemini-web/dist/assets/material-theme-darker-DhWqiNtj.js +0 -0
  331. package/codemini-web/dist/assets/material-theme-lighter-C56RzTfM.js +1 -0
  332. package/codemini-web/dist/assets/material-theme-lighter-PKoq0Soa.js +0 -0
  333. package/codemini-web/dist/assets/material-theme-ocean-DUos8xKe.js +1 -0
  334. package/codemini-web/dist/assets/material-theme-ocean-TtH-ZZAj.js +0 -0
  335. package/codemini-web/dist/assets/material-theme-palenight-CZBKx4B1.js +1 -0
  336. package/codemini-web/dist/assets/material-theme-palenight-DPEAidnA.js +0 -0
  337. package/codemini-web/dist/assets/matlab-BJwkjxyL.js +1 -0
  338. package/codemini-web/dist/assets/matlab-Buftnej6.js +0 -0
  339. package/codemini-web/dist/assets/mdc-BLdFHYKv.js +1 -0
  340. package/codemini-web/dist/assets/{mdc-BOaCYzzL.js → mdc-Dzipcsdb.js} +1 -1
  341. package/codemini-web/dist/assets/mdx-BvkytFG9.js +1 -0
  342. package/codemini-web/dist/assets/mdx-COL7Vpwq.js +0 -0
  343. package/codemini-web/dist/assets/mermaid-Ctx7uNrT.js +1 -0
  344. package/codemini-web/dist/assets/mermaid-GHXKKRXX-BWSxGKNn.js +1 -0
  345. package/codemini-web/dist/assets/mermaid-tvyj1ZQ2.js +0 -0
  346. package/codemini-web/dist/assets/min-dark-BA-rwgF3.js +1 -0
  347. package/codemini-web/dist/assets/min-dark-D66g901Q.js +0 -0
  348. package/codemini-web/dist/assets/min-light-CMnDj2iG.js +0 -0
  349. package/codemini-web/dist/assets/min-light-DHUVhXnm.js +1 -0
  350. package/codemini-web/dist/assets/mipsasm-ByaU0dEX.js +1 -0
  351. package/codemini-web/dist/assets/mipsasm-C6fvALrw.js +0 -0
  352. package/codemini-web/dist/assets/mojo-B3qnM1a8.js +0 -0
  353. package/codemini-web/dist/assets/mojo-CqhYERP_.js +1 -0
  354. package/codemini-web/dist/assets/monokai-D3MyQCxG.js +1 -0
  355. package/codemini-web/dist/assets/monokai-DCoxt20T.js +0 -0
  356. package/codemini-web/dist/assets/moonbit-C4BfwLm6.js +1 -0
  357. package/codemini-web/dist/assets/moonbit-Cjo3d0oi.js +0 -0
  358. package/codemini-web/dist/assets/move-BZSDQnwS.js +0 -0
  359. package/codemini-web/dist/assets/move-DOj5FawL.js +1 -0
  360. package/codemini-web/dist/assets/narrat-CDHYPJWr.js +1 -0
  361. package/codemini-web/dist/assets/narrat-DY5cg5OF.js +0 -0
  362. package/codemini-web/dist/assets/{nextflow-Cto1mpL3.js → nextflow-BRiWOV-p.js} +1 -1
  363. package/codemini-web/dist/assets/nextflow-c8YCPRRb.js +1 -0
  364. package/codemini-web/dist/assets/nextflow-groovy-D6rYlJlL.js +1 -0
  365. package/codemini-web/dist/assets/{nextflow-groovy-D1X5Yd05.js → nextflow-groovy-o7ZjyFmf.js} +0 -0
  366. package/codemini-web/dist/assets/nginx-Da_Uewgc.js +0 -0
  367. package/codemini-web/dist/assets/nginx-u-hq5m-a.js +1 -0
  368. package/codemini-web/dist/assets/night-owl-DuMFo77c.js +0 -0
  369. package/codemini-web/dist/assets/night-owl-NHZjGVLB.js +1 -0
  370. package/codemini-web/dist/assets/night-owl-light-DcKosvl7.js +1 -0
  371. package/codemini-web/dist/assets/night-owl-light-DihOYNub.js +0 -0
  372. package/codemini-web/dist/assets/nim-B5b6_jZr.js +1 -0
  373. package/codemini-web/dist/assets/{nim-BZyx58NM.js → nim-CvgRYLO2.js} +1 -1
  374. package/codemini-web/dist/assets/nix-C2G-gZoY.js +0 -0
  375. package/codemini-web/dist/assets/nix-Csr5leD-.js +1 -0
  376. package/codemini-web/dist/assets/nord-CqZqLQaJ.js +0 -0
  377. package/codemini-web/dist/assets/nord-DomFMWpF.js +1 -0
  378. package/codemini-web/dist/assets/nushell-IZVQdI7Z.js +1 -0
  379. package/codemini-web/dist/assets/nushell-S11HUHTG.js +0 -0
  380. package/codemini-web/dist/assets/objective-c-D9GKvYFi.js +0 -0
  381. package/codemini-web/dist/assets/objective-c-DD1i5sf2.js +1 -0
  382. package/codemini-web/dist/assets/objective-cpp-CtzOCe2w.js +1 -0
  383. package/codemini-web/dist/assets/objective-cpp-SqrtXFXh.js +0 -0
  384. package/codemini-web/dist/assets/ocaml-BlMDMjEj.js +1 -0
  385. package/codemini-web/dist/assets/ocaml-C_PTi_Pz.js +0 -0
  386. package/codemini-web/dist/assets/odin-BWpZDKBG.js +0 -0
  387. package/codemini-web/dist/assets/odin-CoWSDSNi.js +1 -0
  388. package/codemini-web/dist/assets/one-dark-pro-DWENJxB_.js +1 -0
  389. package/codemini-web/dist/assets/one-dark-pro-DpWTHpwg.js +0 -0
  390. package/codemini-web/dist/assets/one-light-CEeF6aqP.js +1 -0
  391. package/codemini-web/dist/assets/one-light-Cu0d64Hp.js +0 -0
  392. package/codemini-web/dist/assets/openscad-BM4fjXzn.js +0 -0
  393. package/codemini-web/dist/assets/openscad-D3gRRPUh.js +1 -0
  394. package/codemini-web/dist/assets/pascal-DYsRufgb.js +0 -0
  395. package/codemini-web/dist/assets/pascal-G3gJIkHz.js +1 -0
  396. package/codemini-web/dist/assets/{perl-BW8t13Xq.js → perl-BIcNvyL6.js} +1 -1
  397. package/codemini-web/dist/assets/perl-DdF12AsD.js +1 -0
  398. package/codemini-web/dist/assets/php-BP-3TkW_.js +1 -0
  399. package/codemini-web/dist/assets/{php-Cq5FOhfR.js → php-CyQZnE0l.js} +1 -1
  400. package/codemini-web/dist/assets/pierre-dark-CBqOR10c.js +1 -0
  401. package/codemini-web/dist/assets/pierre-light-sgwdVCEP.js +1 -0
  402. package/codemini-web/dist/assets/pkl-DdsryWcC.js +1 -0
  403. package/codemini-web/dist/assets/pkl-Djf8ANrI.js +0 -0
  404. package/codemini-web/dist/assets/plastic-CmjIC4JL.js +0 -0
  405. package/codemini-web/dist/assets/plastic-CwUA_4-2.js +1 -0
  406. package/codemini-web/dist/assets/plsql-B1bmZxUF.js +0 -0
  407. package/codemini-web/dist/assets/plsql-C2yEtnCG.js +1 -0
  408. package/codemini-web/dist/assets/po-BvnTR3_f.js +0 -0
  409. package/codemini-web/dist/assets/po-Dy7ytuR1.js +1 -0
  410. package/codemini-web/dist/assets/poimandres-BTndTogr.js +0 -0
  411. package/codemini-web/dist/assets/poimandres-u68WOWhl.js +1 -0
  412. package/codemini-web/dist/assets/polar-CAj5SJyd.js +0 -0
  413. package/codemini-web/dist/assets/polar-CjLVWIyd.js +1 -0
  414. package/codemini-web/dist/assets/postcss-DiNtjF5e.js +1 -0
  415. package/codemini-web/dist/assets/postcss-DrpvRGGG.js +0 -0
  416. package/codemini-web/dist/assets/powerquery-I1Ei5hrS.js +0 -0
  417. package/codemini-web/dist/assets/powerquery-iC4Ra9LJ.js +1 -0
  418. package/codemini-web/dist/assets/powershell-Ch2YpFAx.js +1 -0
  419. package/codemini-web/dist/assets/powershell-Coc0WruX.js +0 -0
  420. package/codemini-web/dist/assets/prisma-HWctQCpn.js +1 -0
  421. package/codemini-web/dist/assets/prisma-Ojgxt2lx.js +0 -0
  422. package/codemini-web/dist/assets/prolog-C1UOAv4v.js +0 -0
  423. package/codemini-web/dist/assets/prolog-DHAsH4Hf.js +1 -0
  424. package/codemini-web/dist/assets/proto-D07RTuB5.js +0 -0
  425. package/codemini-web/dist/assets/proto-mTghX89X.js +1 -0
  426. package/codemini-web/dist/assets/pug-HwoxZo9M.js +1 -0
  427. package/codemini-web/dist/assets/{pug-B4WHazil.js → pug-_XoIcKf3.js} +1 -1
  428. package/codemini-web/dist/assets/puppet-D1Zcnrr5.js +1 -0
  429. package/codemini-web/dist/assets/puppet-D_zyrMo2.js +0 -0
  430. package/codemini-web/dist/assets/purescript-CV-DVmZj.js +0 -0
  431. package/codemini-web/dist/assets/purescript-s82m5f0Y.js +1 -0
  432. package/codemini-web/dist/assets/python-BhsI1K6K.js +1 -0
  433. package/codemini-web/dist/assets/python-DcnbpNOV.js +0 -0
  434. package/codemini-web/dist/assets/qml-CysuucQ6.js +1 -0
  435. package/codemini-web/dist/assets/qml-DWxWu28U.js +0 -0
  436. package/codemini-web/dist/assets/qmldir-BBNnU9RJ.js +0 -0
  437. package/codemini-web/dist/assets/qmldir-Bzkc2Njy.js +1 -0
  438. package/codemini-web/dist/assets/qss-CC0PKRbL.js +0 -0
  439. package/codemini-web/dist/assets/qss-CKbozdtF.js +1 -0
  440. package/codemini-web/dist/assets/r-B4lG5syH.js +0 -0
  441. package/codemini-web/dist/assets/r-BKej5r_k.js +1 -0
  442. package/codemini-web/dist/assets/racket-CUDoXUwy.js +1 -0
  443. package/codemini-web/dist/assets/racket-Cbwns2Cq.js +0 -0
  444. package/codemini-web/dist/assets/raku-CeV6tH_x.js +0 -0
  445. package/codemini-web/dist/assets/raku-XPAjN9OU.js +1 -0
  446. package/codemini-web/dist/assets/{razor-CQPYUgex.js → razor-DQ6FV4WL.js} +1 -1
  447. package/codemini-web/dist/assets/razor-ZpEr_C9H.js +1 -0
  448. package/codemini-web/dist/assets/red-8aRo80UF.js +1 -0
  449. package/codemini-web/dist/assets/red-CVEaJbMR.js +0 -0
  450. package/codemini-web/dist/assets/reg-B0B_plbq.js +1 -0
  451. package/codemini-web/dist/assets/reg-C_WE1pkC.js +0 -0
  452. package/codemini-web/dist/assets/regexp-CK-1EP63.js +1 -0
  453. package/codemini-web/dist/assets/regexp-da3KYCEG.js +0 -0
  454. package/codemini-web/dist/assets/rel-CpHQF4b7.js +0 -0
  455. package/codemini-web/dist/assets/rel-DhoFe2Y7.js +1 -0
  456. package/codemini-web/dist/assets/riscv-CKx_Jisq.js +1 -0
  457. package/codemini-web/dist/assets/riscv-Co5eiPIZ.js +0 -0
  458. package/codemini-web/dist/assets/rolldown-runtime-S-ySWqyJ.js +0 -0
  459. package/codemini-web/dist/assets/ron-CgTit1dG.js +0 -0
  460. package/codemini-web/dist/assets/ron-qyvgw9vu.js +1 -0
  461. package/codemini-web/dist/assets/rose-pine-BDTwvYHf.js +0 -0
  462. package/codemini-web/dist/assets/rose-pine-R3f76h4_.js +1 -0
  463. package/codemini-web/dist/assets/rose-pine-dawn-BS09rtpK.js +1 -0
  464. package/codemini-web/dist/assets/rose-pine-dawn-CAIk_wLV.js +0 -0
  465. package/codemini-web/dist/assets/rose-pine-moon-B4Q4DiPG.js +1 -0
  466. package/codemini-web/dist/assets/rose-pine-moon-C5gdiznP.js +0 -0
  467. package/codemini-web/dist/assets/rosmsg-C0tpzWlc.js +0 -0
  468. package/codemini-web/dist/assets/rosmsg-Dy_ItAfo.js +1 -0
  469. package/codemini-web/dist/assets/rst-CjO4XFKz.js +1 -0
  470. package/codemini-web/dist/assets/{rst-B-OS2pa5.js → rst-DDrWKQ9c.js} +1 -1
  471. package/codemini-web/dist/assets/ruby-BOVYgV5O.js +1 -0
  472. package/codemini-web/dist/assets/{ruby-BM15fmxz.js → ruby-CZgIYPlP.js} +1 -1
  473. package/codemini-web/dist/assets/rust-BWAfVMY4.js +0 -0
  474. package/codemini-web/dist/assets/rust-CNEVkiWF.js +1 -0
  475. package/codemini-web/dist/assets/sas-DPGT0TjQ.js +1 -0
  476. package/codemini-web/dist/assets/sas-DYNukvU9.js +0 -0
  477. package/codemini-web/dist/assets/sass-D2nye32F.js +1 -0
  478. package/codemini-web/dist/assets/sass-MovLey2R.js +0 -0
  479. package/codemini-web/dist/assets/scala-B8greAnE.js +1 -0
  480. package/codemini-web/dist/assets/scala-C2w7y2mZ.js +0 -0
  481. package/codemini-web/dist/assets/scheme-Bf85FNnm.js +0 -0
  482. package/codemini-web/dist/assets/scheme-Ci_aquns.js +1 -0
  483. package/codemini-web/dist/assets/{scss-C0BQ8YVM.js → scss-CaciJ0Gl.js} +1 -1
  484. package/codemini-web/dist/assets/scss-YARKxu2i.js +1 -0
  485. package/codemini-web/dist/assets/sdbl-D4tJqBiC.js +1 -0
  486. package/codemini-web/dist/assets/sdbl-DoQ_zDzo.js +0 -0
  487. package/codemini-web/dist/assets/shaderlab-JWcsxey4.js +1 -0
  488. package/codemini-web/dist/assets/shaderlab-TbUUdmUb.js +0 -0
  489. package/codemini-web/dist/assets/shellscript-CxhArCCJ.js +1 -0
  490. package/codemini-web/dist/assets/shellscript-KUJZnuCi.js +0 -0
  491. package/codemini-web/dist/assets/shellsession-BeWGuVoR.js +0 -0
  492. package/codemini-web/dist/assets/shellsession-DYmuifdt.js +1 -0
  493. package/codemini-web/dist/assets/slack-dark-BcN7KJ02.js +1 -0
  494. package/codemini-web/dist/assets/slack-dark-BnOYKTBJ.js +0 -0
  495. package/codemini-web/dist/assets/slack-ochin-43udxtUg.js +0 -0
  496. package/codemini-web/dist/assets/slack-ochin-D4iInQ9w.js +1 -0
  497. package/codemini-web/dist/assets/smalltalk-BwSireXb.js +1 -0
  498. package/codemini-web/dist/assets/smalltalk-Mlf5-xbr.js +0 -0
  499. package/codemini-web/dist/assets/snazzy-light-B45TfPsv.js +1 -0
  500. package/codemini-web/dist/assets/snazzy-light-kw-pZEiM.js +0 -0
  501. package/codemini-web/dist/assets/solarized-dark-8yYW1wLs.js +1 -0
  502. package/codemini-web/dist/assets/solarized-dark-BDezFa9V.js +0 -0
  503. package/codemini-web/dist/assets/solarized-light-BY3Hr0Ud.js +1 -0
  504. package/codemini-web/dist/assets/solarized-light-CkoenhS2.js +0 -0
  505. package/codemini-web/dist/assets/solidity-CIUlntDs.js +1 -0
  506. package/codemini-web/dist/assets/solidity-DYHGECBw.js +0 -0
  507. package/codemini-web/dist/assets/{soy-C6D0Ibo9.js → soy-7iHZG9Jz.js} +1 -1
  508. package/codemini-web/dist/assets/soy-h0dQKbQs.js +1 -0
  509. package/codemini-web/dist/assets/sparql-BGRSvFxd.js +1 -0
  510. package/codemini-web/dist/assets/sparql-DIFvSn1n.js +0 -0
  511. package/codemini-web/dist/assets/splunk-DOdklC0I.js +0 -0
  512. package/codemini-web/dist/assets/splunk-DueVPk5k.js +1 -0
  513. package/codemini-web/dist/assets/sql-CZAMrWdL.js +0 -0
  514. package/codemini-web/dist/assets/sql-Q6zkgi_w.js +1 -0
  515. package/codemini-web/dist/assets/ssh-config-DKIMErlp.js +1 -0
  516. package/codemini-web/dist/assets/ssh-config-DwwFW7AS.js +0 -0
  517. package/codemini-web/dist/assets/stata-C5mLa_ER.js +0 -0
  518. package/codemini-web/dist/assets/stata-lXN9BRaz.js +1 -0
  519. package/codemini-web/dist/assets/stylus-BO6mlOab.js +0 -0
  520. package/codemini-web/dist/assets/stylus-oqceM0yt.js +1 -0
  521. package/codemini-web/dist/assets/surrealql-DyoUfV6n.js +0 -0
  522. package/codemini-web/dist/assets/surrealql-l0SGzwOs.js +1 -0
  523. package/codemini-web/dist/assets/svelte-BM89dRu0.js +1 -0
  524. package/codemini-web/dist/assets/{svelte-DJ-0FpL2.js → svelte-CijnRGul.js} +1 -1
  525. package/codemini-web/dist/assets/swift-D9A08YU9.js +0 -0
  526. package/codemini-web/dist/assets/swift-foA31xPc.js +1 -0
  527. package/codemini-web/dist/assets/synthwave-84-B002ZU4p.js +1 -0
  528. package/codemini-web/dist/assets/synthwave-84-C69NN2j9.js +0 -0
  529. package/codemini-web/dist/assets/system-verilog-CCSGcM60.js +1 -0
  530. package/codemini-web/dist/assets/system-verilog-DjR3sN6w.js +0 -0
  531. package/codemini-web/dist/assets/systemd-BymS_eIJ.js +1 -0
  532. package/codemini-web/dist/assets/systemd-CJWuVSJU.js +0 -0
  533. package/codemini-web/dist/assets/talonscript-CXqq0wX-.js +0 -0
  534. package/codemini-web/dist/assets/talonscript-Ccc0122j.js +1 -0
  535. package/codemini-web/dist/assets/tasl-GVNf7pB7.js +0 -0
  536. package/codemini-web/dist/assets/tasl-o38sfjeU.js +1 -0
  537. package/codemini-web/dist/assets/tcl-DISPE-5Q.js +1 -0
  538. package/codemini-web/dist/assets/tcl-DNlfRSl5.js +0 -0
  539. package/codemini-web/dist/assets/{templ-7Bvm-rei.js → templ-CNjJl440.js} +1 -1
  540. package/codemini-web/dist/assets/templ-D1GoDFsp.js +1 -0
  541. package/codemini-web/dist/assets/terraform-DUK0FOOj.js +0 -0
  542. package/codemini-web/dist/assets/terraform-V85Kewcz.js +1 -0
  543. package/codemini-web/dist/assets/tex-CxEkh6NI.js +1 -0
  544. package/codemini-web/dist/assets/tex-ezg8IclB.js +0 -0
  545. package/codemini-web/dist/assets/tokyo-night-BLn5KNCP.js +1 -0
  546. package/codemini-web/dist/assets/tokyo-night-DWTtuXS3.js +0 -0
  547. package/codemini-web/dist/assets/toml-X5n3zjEH.js +0 -0
  548. package/codemini-web/dist/assets/toml-uEjeW8NC.js +1 -0
  549. package/codemini-web/dist/assets/{ts-tags-BfuR6EQ0.js → ts-tags-B88Nbzcl.js} +1 -1
  550. package/codemini-web/dist/assets/ts-tags-DV6nguf9.js +1 -0
  551. package/codemini-web/dist/assets/tsv-Bqs_rchc.js +0 -0
  552. package/codemini-web/dist/assets/tsv-DjGwUc04.js +1 -0
  553. package/codemini-web/dist/assets/tsx-5O-M05V0.js +1 -0
  554. package/codemini-web/dist/assets/tsx-CfyUE2pW.js +0 -0
  555. package/codemini-web/dist/assets/turtle-BsUuoeVK.js +0 -0
  556. package/codemini-web/dist/assets/turtle-PTxTluYn.js +1 -0
  557. package/codemini-web/dist/assets/twig-B3Kws0Fb.js +1 -0
  558. package/codemini-web/dist/assets/{twig-_uxJ-QmX.js → twig-BROkIZLg.js} +1 -1
  559. package/codemini-web/dist/assets/typescript-C6LvTgbf.js +0 -0
  560. package/codemini-web/dist/assets/typescript-hRweav8r.js +1 -0
  561. package/codemini-web/dist/assets/typespec-CKEcF6Kw.js +1 -0
  562. package/codemini-web/dist/assets/{typespec-8nkhqWz6.js → typespec-N7-U_jBZ.js} +0 -0
  563. package/codemini-web/dist/assets/typst-CPL77SDw.js +0 -0
  564. package/codemini-web/dist/assets/typst-DSQh9HII.js +1 -0
  565. package/codemini-web/dist/assets/v-CoJD3IPx.js +0 -0
  566. package/codemini-web/dist/assets/v-obK6h_YW.js +1 -0
  567. package/codemini-web/dist/assets/vala-C42IfotU.js +0 -0
  568. package/codemini-web/dist/assets/vala-DXa9jSo-.js +1 -0
  569. package/codemini-web/dist/assets/vb-CVMKTK26.js +0 -0
  570. package/codemini-web/dist/assets/vb-DEPbtYq-.js +1 -0
  571. package/codemini-web/dist/assets/verilog-Bs-185hK.js +1 -0
  572. package/codemini-web/dist/assets/verilog-P63PhzSt.js +0 -0
  573. package/codemini-web/dist/assets/vesper-B7BneC5G.js +1 -0
  574. package/codemini-web/dist/assets/vesper-BGr95374.js +0 -0
  575. package/codemini-web/dist/assets/vhdl-2WwUdgX8.js +0 -0
  576. package/codemini-web/dist/assets/vhdl-CBukgB2Z.js +1 -0
  577. package/codemini-web/dist/assets/viml-C1cRY0x6.js +1 -0
  578. package/codemini-web/dist/assets/viml-CGPGWJA6.js +0 -0
  579. package/codemini-web/dist/assets/vitesse-black-D3_12zni.js +1 -0
  580. package/codemini-web/dist/assets/vitesse-black-cI0k84-I.js +0 -0
  581. package/codemini-web/dist/assets/vitesse-dark-B_iF7INE.js +1 -0
  582. package/codemini-web/dist/assets/vitesse-dark-SouM0FMW.js +0 -0
  583. package/codemini-web/dist/assets/vitesse-light-DbrrMtxY.js +1 -0
  584. package/codemini-web/dist/assets/vitesse-light-WiCy6lDO.js +0 -0
  585. package/codemini-web/dist/assets/{vue-DkOBu49o.js → vue-BUQP_8VF.js} +1 -1
  586. package/codemini-web/dist/assets/vue-CT36qSUr.js +1 -0
  587. package/codemini-web/dist/assets/vue-html-Bx2Sgp8M.js +0 -0
  588. package/codemini-web/dist/assets/vue-html-bJyjqZnI.js +1 -0
  589. package/codemini-web/dist/assets/vue-vine-BLqV15Pm.js +1 -0
  590. package/codemini-web/dist/assets/{vue-vine-veyFk6GJ.js → vue-vine-RK3AHrhp.js} +1 -1
  591. package/codemini-web/dist/assets/vyper-BxVot6rR.js +1 -0
  592. package/codemini-web/dist/assets/vyper-DP_vqZO9.js +0 -0
  593. package/codemini-web/dist/assets/wasm-BNTPmfEI.js +1 -0
  594. package/codemini-web/dist/assets/wasm-Db7VBw0n.js +0 -0
  595. package/codemini-web/dist/assets/wasm-DiIFv9DE.js +0 -0
  596. package/codemini-web/dist/assets/wasm-o5uYkU9G.js +1 -0
  597. package/codemini-web/dist/assets/wenyan-MnC4h24X.js +1 -0
  598. package/codemini-web/dist/assets/wenyan-ZEcjghA1.js +0 -0
  599. package/codemini-web/dist/assets/wgsl-BgfkHnVi.js +1 -0
  600. package/codemini-web/dist/assets/wgsl-CdusuPLe.js +0 -0
  601. package/codemini-web/dist/assets/wikitext-CBIB6hmW.js +0 -0
  602. package/codemini-web/dist/assets/wikitext-DCOnP3yk.js +1 -0
  603. package/codemini-web/dist/assets/wit-5UDEI7sp.js +1 -0
  604. package/codemini-web/dist/assets/wit-ZhUbVeze.js +0 -0
  605. package/codemini-web/dist/assets/wolfram-HyMOyERF.js +0 -0
  606. package/codemini-web/dist/assets/wolfram-vvgPlu2n.js +1 -0
  607. package/codemini-web/dist/assets/xml-BkdunjRC.js +0 -0
  608. package/codemini-web/dist/assets/xml-DyJ3D9rW.js +1 -0
  609. package/codemini-web/dist/assets/xsl-BOsdDgv_.js +1 -0
  610. package/codemini-web/dist/assets/xsl-C66i1pDH.js +0 -0
  611. package/codemini-web/dist/assets/yaml-C-G727Y6.js +1 -0
  612. package/codemini-web/dist/assets/yaml-D_uvhEF7.js +0 -0
  613. package/codemini-web/dist/assets/zenscript-BPjqX0BY.js +1 -0
  614. package/codemini-web/dist/assets/zenscript-C6ZuzgrL.js +0 -0
  615. package/codemini-web/dist/assets/zig-Bd91oU8r.js +1 -0
  616. package/codemini-web/dist/assets/zig-Do2h8XKj.js +0 -0
  617. package/codemini-web/dist/codemini_logo.png +0 -0
  618. package/codemini-web/dist/favicon.ico +0 -0
  619. package/codemini-web/dist/index.html +6 -3
  620. package/codemini-web/lib/approval-manager.js +0 -0
  621. package/codemini-web/lib/runtime-bridge.js +22 -1
  622. package/codemini-web/server.js +919 -846
  623. package/deployment.md +5 -5
  624. package/package.json +1 -1
  625. package/skills/brainstorm/SKILL.md +3 -1
  626. package/skills/grill-me/SKILL.md +0 -0
  627. package/skills/project-requirements/SKILL.md +293 -291
  628. package/skills/superpowers-lite/SKILL.md +18 -32
  629. package/skills/writing-plans/SKILL.md +67 -67
  630. package/souls/anime.md +0 -0
  631. package/souls/caveman.md +0 -0
  632. package/souls/ceo.md +0 -0
  633. package/souls/default.md +0 -0
  634. package/souls/pirate.md +0 -0
  635. package/souls/playful.md +0 -0
  636. package/souls/professional.md +0 -0
  637. package/src/cli.js +0 -0
  638. package/src/commands/chat.js +1 -1
  639. package/src/commands/config.js +0 -0
  640. package/src/commands/doctor.js +0 -0
  641. package/src/commands/run.js +22 -7
  642. package/src/commands/skill.js +0 -0
  643. package/src/commands/web.js +0 -0
  644. package/src/core/agent-loop.js +11 -7
  645. package/src/core/ast.js +0 -0
  646. package/src/core/bounded-cache.js +0 -0
  647. package/src/core/chat-runtime.js +427 -91
  648. package/src/core/checkpoint-store.js +0 -0
  649. package/src/core/command-evaluator.js +9 -3
  650. package/src/core/command-loader.js +0 -0
  651. package/src/core/command-policy.js +0 -0
  652. package/src/core/command-risk.js +9 -1
  653. package/src/core/config-store.js +4 -2
  654. package/src/core/constants.js +0 -0
  655. package/src/core/context-compact.js +65 -3
  656. package/src/core/crypto-utils.js +0 -0
  657. package/src/core/default-system-prompt.js +12 -4
  658. package/src/core/dream-audit.js +0 -0
  659. package/src/core/dream-consolidate.js +0 -0
  660. package/src/core/dream-evaluator.js +0 -0
  661. package/src/core/fff-adapter.js +1 -1
  662. package/src/core/fs-utils.js +0 -0
  663. package/src/core/input-history-store.js +0 -0
  664. package/src/core/input-parser.js +0 -0
  665. package/src/core/memory-policy.js +0 -0
  666. package/src/core/memory-prompt.js +0 -0
  667. package/src/core/memory-store.js +0 -0
  668. package/src/core/paths.js +0 -0
  669. package/src/core/plan-state.js +0 -0
  670. package/src/core/project-index.js +0 -0
  671. package/src/core/provider/anthropic.js +0 -0
  672. package/src/core/provider/index.js +0 -0
  673. package/src/core/provider/openai-compatible.js +0 -0
  674. package/src/core/reflect-skill.js +1 -1
  675. package/src/core/reply-language.js +16 -1
  676. package/src/core/session-store.js +0 -0
  677. package/src/core/shell-profile.js +14 -1
  678. package/src/core/shell.js +0 -0
  679. package/src/core/skill-registry.js +0 -0
  680. package/src/core/soul.js +1 -3
  681. package/src/core/string-utils.js +0 -0
  682. package/src/core/system-prompt-composer.js +42 -0
  683. package/src/core/todo-state.js +0 -0
  684. package/src/core/tool-args.js +0 -0
  685. package/src/core/tool-output.js +0 -0
  686. package/src/core/tool-result-store.js +0 -0
  687. package/src/core/tools.js +2 -2
  688. package/src/tui/chat-app.js +13 -3
  689. package/src/tui/input-escape.js +0 -0
  690. package/src/tui/skill-activity/index.js +0 -0
  691. package/src/tui/tool-activity/common.js +0 -0
  692. package/src/tui/tool-activity/index.js +0 -0
  693. package/src/tui/tool-activity/presenters/command.js +0 -0
  694. package/src/tui/tool-activity/presenters/files.js +0 -0
  695. package/src/tui/tool-activity/presenters/misc.js +0 -0
  696. package/src/tui/tool-activity/presenters/system.js +0 -0
  697. package/src/tui/tool-narration/common.js +0 -0
  698. package/src/tui/tool-narration/presenters/change.js +0 -0
  699. package/src/tui/tool-narration/presenters/edit.js +0 -0
  700. package/src/tui/tool-narration/presenters/generic.js +0 -0
  701. package/src/tui/tool-narration/presenters/glob.js +0 -0
  702. package/src/tui/tool-narration/presenters/grep.js +0 -0
  703. package/src/tui/tool-narration/presenters/list.js +0 -0
  704. package/src/tui/tool-narration/presenters/read.js +0 -0
  705. package/src/tui/tool-narration/presenters/run.js +0 -0
  706. package/src/tui/tool-narration/presenters/write.js +0 -0
  707. package/src/tui/tool-narration.js +0 -0
  708. package/templates/project-requirements/report-shell.html +46 -46
  709. package/codemini-web/dist/assets/index-BZ01DHrh.js +0 -206
  710. package/codemini-web/dist/assets/index-Dq1mwNaQ.css +0 -2
  711. package/codemini-web/dist/assets/mermaid-GHXKKRXX-BuB6-G4r.js +0 -1
@@ -20,13 +20,13 @@ import { createCheckpoint, listCheckpoints, loadCheckpoint } from './checkpoint-
20
20
  import {
21
21
  compactMessagesLocally,
22
22
  estimateMessagesTokens,
23
+ microCompactMessages,
23
24
  parseCompactArgs
24
25
  } from './context-compact.js';
25
- import { buildSystemPromptWithReplyLanguage } from './reply-language.js';
26
- import { buildSystemPromptWithSoul } from './soul.js';
26
+ import { getReplyLanguage, getReplyLanguageName } from './reply-language.js';
27
+ import { composeSystemPrompt } from './system-prompt-composer.js';
27
28
  import { getProjectPlansDir, getProjectSpecsDir, getProjectWorkspaceDir, getSessionsDir } from './paths.js';
28
29
  import { buildProjectContextSnippet, initializeProjectIndex } from './project-index.js';
29
- import { buildMemorySnapshot } from './memory-prompt.js';
30
30
  import { forgetMemory, listMemories, rememberMemory, searchMemories, captureToInbox, listInbox } from './memory-store.js';
31
31
  import { runDreamConsolidation } from './dream-consolidate.js';
32
32
  import { normalizePlanState } from './plan-state.js';
@@ -115,6 +115,8 @@ function getCompletionCopy(language = 'zh') {
115
115
  'context.read_file_default_lines': 'read_file 默认行数窗口',
116
116
  'context.read_file_max_chars': 'read_file 字符上限',
117
117
  'context.prompt_budget_audit': 'Prompt 预算审计开关',
118
+ 'context.microcompact_enabled': '微压缩(micro-compact)开关',
119
+ 'context.microcompact_keep_recent': '微压缩保留最近工具结果数',
118
120
  'sessions.max_sessions': '会话保留上限',
119
121
  'sessions.retention_days': '会话保留天数',
120
122
  'shell.default': '默认 shell',
@@ -220,6 +222,8 @@ function getCompletionCopy(language = 'zh') {
220
222
  'context.read_file_default_lines': 'default read_file line window',
221
223
  'context.read_file_max_chars': 'read_file character limit',
222
224
  'context.prompt_budget_audit': 'prompt budget audit switch',
225
+ 'context.microcompact_enabled': 'micro-compact enabled',
226
+ 'context.microcompact_keep_recent': 'micro-compact keep recent tool results',
223
227
  'sessions.max_sessions': 'stored session limit',
224
228
  'sessions.retention_days': 'session retention days',
225
229
  'shell.default': 'default shell',
@@ -341,6 +345,104 @@ const PROJECT_REQUIREMENTS_SECTION_MARKERS = [
341
345
  { key: 'questions', marker: 'REQUIREMENTS_OPEN_QUESTIONS', labels: ['10', 'open questions', 'unknowns', '待确认问题', '待确认', '问题'] },
342
346
  { key: 'evidence', marker: 'REQUIREMENTS_EVIDENCE_INDEX', labels: ['11', 'evidence', 'source evidence', 'source evidence index', '源码证据索引', '证据索引', '源码证据'] }
343
347
  ];
348
+ const PROJECT_REQUIREMENTS_SHELL_COPY = {
349
+ en: {
350
+ html_lang: 'en',
351
+ title: 'Project Requirements Report',
352
+ meta_workspace: 'Workspace',
353
+ meta_date: 'Date',
354
+ meta_generated: 'Generated',
355
+ nav_label: 'Report sections',
356
+ nav_summary: 'Summary',
357
+ nav_architecture: 'Architecture',
358
+ nav_interfaces: 'Interfaces',
359
+ nav_requirements: 'Requirements',
360
+ nav_flows: 'Flows',
361
+ nav_domain: 'Domain Model',
362
+ nav_security: 'Security',
363
+ nav_errors: 'Errors',
364
+ nav_nonfunctional: 'Non-functional',
365
+ nav_questions: 'Open Questions',
366
+ nav_evidence: 'Evidence',
367
+ search_placeholder: 'Search APIs, modules, evidence...',
368
+ expand_all: 'Expand all',
369
+ collapse_all: 'Collapse all',
370
+ questions_only: 'Questions only',
371
+ show_all_sections: 'Show all sections',
372
+ no_results: 'No matching content found.',
373
+ heading_summary: 'Executive Summary',
374
+ heading_architecture: 'System Architecture',
375
+ heading_interfaces: 'Interface Inventory',
376
+ heading_requirements: 'Requirement Cards',
377
+ heading_flows: 'Core Flows',
378
+ heading_domain: 'Domain Model And Data Ownership',
379
+ heading_security: 'Permissions, Security, And Compliance',
380
+ heading_errors: 'Error Handling And Edge Cases',
381
+ heading_nonfunctional: 'Non-functional Requirements',
382
+ heading_questions: 'Open Questions',
383
+ heading_evidence: 'Source Evidence Index',
384
+ pending_summary: 'Pending summary.',
385
+ pending_architecture: 'Pending architecture map.',
386
+ pending_interfaces: 'Pending interface inventory.',
387
+ pending_requirements: 'Pending requirement cards.',
388
+ pending_flows: 'Pending flow diagrams.',
389
+ pending_domain: 'Pending domain model and data ownership.',
390
+ pending_security: 'Pending permissions, security, and compliance notes.',
391
+ pending_errors: 'Pending error handling and edge cases.',
392
+ pending_nonfunctional: 'Pending non-functional requirements.',
393
+ pending_questions: 'Pending open questions.',
394
+ pending_evidence: 'Pending evidence index.',
395
+ back_to_top: 'Back to top'
396
+ },
397
+ zh: {
398
+ html_lang: 'zh-CN',
399
+ title: '项目需求报告',
400
+ meta_workspace: '工作区',
401
+ meta_date: '日期',
402
+ meta_generated: '生成时间',
403
+ nav_label: '报告章节',
404
+ nav_summary: '摘要',
405
+ nav_architecture: '系统架构',
406
+ nav_interfaces: '接口清单',
407
+ nav_requirements: '需求卡片',
408
+ nav_flows: '核心流程',
409
+ nav_domain: '领域模型',
410
+ nav_security: '权限与安全',
411
+ nav_errors: '异常与边界',
412
+ nav_nonfunctional: '非功能需求',
413
+ nav_questions: '开放问题',
414
+ nav_evidence: '证据索引',
415
+ search_placeholder: '搜索 API、模块、证据...',
416
+ expand_all: '全部展开',
417
+ collapse_all: '全部收起',
418
+ questions_only: '仅看问题',
419
+ show_all_sections: '显示全部章节',
420
+ no_results: '未找到匹配内容。',
421
+ heading_summary: '执行摘要',
422
+ heading_architecture: '系统架构',
423
+ heading_interfaces: '接口清单',
424
+ heading_requirements: '需求卡片',
425
+ heading_flows: '核心流程',
426
+ heading_domain: '领域模型与数据归属',
427
+ heading_security: '权限、安全与合规',
428
+ heading_errors: '异常处理与边界情况',
429
+ heading_nonfunctional: '非功能需求',
430
+ heading_questions: '开放问题',
431
+ heading_evidence: '源码证据索引',
432
+ pending_summary: '等待填写摘要。',
433
+ pending_architecture: '等待填写架构图。',
434
+ pending_interfaces: '等待填写接口清单。',
435
+ pending_requirements: '等待填写需求卡片。',
436
+ pending_flows: '等待填写流程图。',
437
+ pending_domain: '等待填写领域模型与数据归属。',
438
+ pending_security: '等待填写权限、安全与合规说明。',
439
+ pending_errors: '等待填写异常处理与边界情况。',
440
+ pending_nonfunctional: '等待填写非功能需求。',
441
+ pending_questions: '等待填写开放问题。',
442
+ pending_evidence: '等待填写证据索引。',
443
+ back_to_top: '返回顶部'
444
+ }
445
+ };
344
446
  const PLAN_MEMORY_MARKERS = {
345
447
  findings: ['<!-- plan-findings-start -->', '<!-- plan-findings-end -->'],
346
448
  progress: ['<!-- plan-progress-start -->', '<!-- plan-progress-end -->']
@@ -483,16 +585,52 @@ function buildPipelineStepGuidance({ role, stepIndex, totalSteps, isFirst, isLas
483
585
  return lines.join('\n');
484
586
  }
485
587
 
486
- function buildSubAgentContextPacket(session) {
588
+ function extractTaskKeywords(task) {
589
+ const text = String(task || '').toLowerCase();
590
+ const tokens = text.match(/[a-z0-9_./:-]{3,}|[\u4e00-\u9fa5]{2,}/g) || [];
591
+ const stop = new Set([
592
+ 'the', 'and', 'for', 'with', 'that', 'this', 'from', 'into', 'task',
593
+ 'please', 'update', 'change', 'fix', 'implement', 'review', 'test'
594
+ ]);
595
+ return [...new Set(tokens.filter((token) => !stop.has(token)))].slice(0, 24);
596
+ }
597
+
598
+ function scoreMessageForTask(message, keywords) {
599
+ if (!keywords.length) return 0;
600
+ const text = String(message?.content || '').toLowerCase();
601
+ if (!text) return 0;
602
+ let score = 0;
603
+ for (const keyword of keywords) {
604
+ if (text.includes(keyword)) score += keyword.includes('/') || keyword.includes('.') ? 3 : 1;
605
+ }
606
+ return score;
607
+ }
608
+
609
+ function buildSubAgentContextPacket(session, task = '') {
487
610
  const source = Array.isArray(session?.messages) ? session.messages : [];
488
- const recent = source
611
+ const candidates = source
489
612
  .filter((msg) => msg && (msg.role === 'user' || msg.role === 'assistant'))
490
- .slice(-SUB_AGENT_CONTEXT_MAX_MESSAGES);
491
- if (recent.length === 0) return '';
613
+ .map((msg, index) => ({ msg, index }));
614
+ if (candidates.length === 0) return '';
615
+ const keywords = extractTaskKeywords(task);
616
+ const recentStart = Math.max(0, candidates.length - SUB_AGENT_CONTEXT_MAX_MESSAGES);
617
+ const ranked = candidates
618
+ .map((item, order) => ({
619
+ ...item,
620
+ score: scoreMessageForTask(item.msg, keywords),
621
+ recentScore: order >= recentStart ? 1 : 0
622
+ }))
623
+ .sort((a, b) => {
624
+ const scoreDelta = (b.score + b.recentScore) - (a.score + a.recentScore);
625
+ if (scoreDelta !== 0) return scoreDelta;
626
+ return b.index - a.index;
627
+ })
628
+ .slice(0, SUB_AGENT_CONTEXT_MAX_MESSAGES)
629
+ .sort((a, b) => a.index - b.index);
492
630
 
493
631
  const lines = [];
494
632
  let usedChars = 0;
495
- for (const msg of recent) {
633
+ for (const { msg } of ranked) {
496
634
  const role = msg.role === 'assistant' ? 'assistant' : 'user';
497
635
  const text = trimInline(msg.content, 260);
498
636
  if (!text) continue;
@@ -503,7 +641,7 @@ function buildSubAgentContextPacket(session) {
503
641
  }
504
642
  if (lines.length === 0) return '';
505
643
  return [
506
- 'Scoped parent context (recent only, not full history):',
644
+ 'Scoped parent context (task-relevant snippets, not full history):',
507
645
  ...lines,
508
646
  'Use this context only if it helps the current task.'
509
647
  ].join('\n');
@@ -1234,8 +1372,8 @@ function classifyAutoRoute(text = '') {
1234
1372
  };
1235
1373
  }
1236
1374
 
1237
- function buildMediumTaskSystemPrompt(systemPrompt) {
1238
- const guidance = [
1375
+ function buildMediumTaskPromptBlock() {
1376
+ return [
1239
1377
  'Task Mode: medium',
1240
1378
  'Execution guidance:',
1241
1379
  '- Give a brief execution outline before coding.',
@@ -1244,12 +1382,11 @@ function buildMediumTaskSystemPrompt(systemPrompt) {
1244
1382
  '- Verify the changed behavior before finishing.',
1245
1383
  '- If major ambiguity appears mid-task, say so clearly and ask for a plan instead of guessing.'
1246
1384
  ].join('\n');
1247
- return `${systemPrompt}\n\n${guidance}`;
1248
1385
  }
1249
1386
 
1250
- function buildAutoSkillSystemPrompt(baseSystemPrompt, commands, config, text) {
1387
+ function buildAutoSkillPromptBlock(commands, config, text) {
1251
1388
  const selected = classifyAutoRoute(text).selectedSkills.filter((name) => isSkillEnabled(config, name, commands.get(name)));
1252
- if (selected.length === 0) return baseSystemPrompt;
1389
+ if (selected.length === 0) return '';
1253
1390
 
1254
1391
  const blocks = [];
1255
1392
  for (const name of selected) {
@@ -1257,8 +1394,7 @@ function buildAutoSkillSystemPrompt(baseSystemPrompt, commands, config, text) {
1257
1394
  if (!skill || skill.metadata?.type !== 'skill') continue;
1258
1395
  blocks.push(`[Auto skill: ${name}]\n${skill.content}`);
1259
1396
  }
1260
- if (blocks.length === 0) return baseSystemPrompt;
1261
- return `${baseSystemPrompt}\n\n${blocks.join('\n\n')}`;
1397
+ return blocks.join('\n\n');
1262
1398
  }
1263
1399
 
1264
1400
  function extractJsonBlock(text) {
@@ -1745,6 +1881,13 @@ async function buildAutoPlanFinalSummary({
1745
1881
  }
1746
1882
 
1747
1883
  try {
1884
+ const summarySystemPrompt = await composeSystemPrompt({
1885
+ shellRulesPrompt: systemPrompt,
1886
+ config,
1887
+ skillsPrompt: 'You are writing the final execution summary for a completed auto plan. Focus on closure, verification status, and the next action.',
1888
+ includeSoul: false,
1889
+ includeMemory: false
1890
+ });
1748
1891
  const result = await createChatCompletion({
1749
1892
  sdkProvider: config.sdk?.provider,
1750
1893
  baseUrl: config.gateway.base_url,
@@ -1753,7 +1896,7 @@ async function buildAutoPlanFinalSummary({
1753
1896
  messages: [
1754
1897
  {
1755
1898
  role: 'system',
1756
- content: `${systemPrompt}\nYou are writing the final execution summary for a completed auto plan. Focus on closure, verification status, and the next action.`
1899
+ content: summarySystemPrompt
1757
1900
  },
1758
1901
  {
1759
1902
  role: 'user',
@@ -1876,6 +2019,13 @@ async function buildSpecWithModel({
1876
2019
  '## Testing / Validation',
1877
2020
  'Make it concrete, scoped, and suitable for turning into a sub-agent implementation plan.'
1878
2021
  ].join('\n');
2022
+ const specSystemPrompt = await composeSystemPrompt({
2023
+ shellRulesPrompt: systemPrompt,
2024
+ config,
2025
+ skillsPrompt: prompt,
2026
+ includeSoul: false,
2027
+ includeMemory: false
2028
+ });
1879
2029
 
1880
2030
  const result = await createChatCompletion({
1881
2031
  sdkProvider: config.sdk?.provider,
@@ -1883,7 +2033,7 @@ async function buildSpecWithModel({
1883
2033
  apiKey: config.gateway.api_key,
1884
2034
  model: model || config.model.name,
1885
2035
  messages: [
1886
- { role: 'system', content: `${systemPrompt}\n${prompt}` },
2036
+ { role: 'system', content: specSystemPrompt },
1887
2037
  { role: 'user', content: `Topic: ${topic}` }
1888
2038
  ],
1889
2039
  timeoutMs: config.gateway.timeout_ms || 1800000,
@@ -1936,6 +2086,13 @@ async function buildPlanFromSpecWithModel({
1936
2086
  '## Task Breakdown',
1937
2087
  'Make the plan concrete and ordered for a coding agent.'
1938
2088
  ].join('\n');
2089
+ const planSystemPrompt = await composeSystemPrompt({
2090
+ shellRulesPrompt: systemPrompt,
2091
+ config,
2092
+ skillsPrompt: prompt,
2093
+ includeSoul: false,
2094
+ includeMemory: false
2095
+ });
1939
2096
 
1940
2097
  const result = await createChatCompletion({
1941
2098
  sdkProvider: config.sdk?.provider,
@@ -1943,7 +2100,7 @@ async function buildPlanFromSpecWithModel({
1943
2100
  apiKey: config.gateway.api_key,
1944
2101
  model: model || config.model.name,
1945
2102
  messages: [
1946
- { role: 'system', content: `${systemPrompt}\n${prompt}` },
2103
+ { role: 'system', content: planSystemPrompt },
1947
2104
  {
1948
2105
  role: 'user',
1949
2106
  content: `Spec path: ${specPath || '(inline)'}\n\nProject implementation constraints:\n${projectConstraints}\n\n${specText}`
@@ -2150,6 +2307,22 @@ function buildRuntimeStateSnapshot({ currentSession, config, model, executionMod
2150
2307
  value: currentSession?.planState?.status === 'pending_reflect_skill',
2151
2308
  enumerable: false,
2152
2309
  writable: false
2310
+ },
2311
+ replyLanguage: {
2312
+ value: getReplyLanguage(config),
2313
+ enumerable: false,
2314
+ writable: false
2315
+ },
2316
+ toJSON: {
2317
+ value: () => ({
2318
+ ...snapshot,
2319
+ currentContextTokens,
2320
+ contextUsagePct,
2321
+ pendingReflectSkill: currentSession?.planState?.status === 'pending_reflect_skill',
2322
+ replyLanguage: getReplyLanguage(config)
2323
+ }),
2324
+ enumerable: false,
2325
+ writable: false
2153
2326
  }
2154
2327
  });
2155
2328
  return snapshot;
@@ -2417,28 +2590,61 @@ async function askModel({
2417
2590
  signal,
2418
2591
  allowedTools,
2419
2592
  maxSteps: maxStepsOverride,
2420
- skipAnalysisNudge = false
2593
+ skipAnalysisNudge = false,
2594
+ compactedForModel: compactedInput = null,
2595
+ onCompactedUpdate = null
2421
2596
  }) {
2597
+ let compacted = compactedInput;
2422
2598
  const modelInputText = typeof modelText === 'string' && modelText ? modelText : text;
2423
2599
  const maxContextTokens = effectiveMaxContextTokens(config);
2424
- const triggerPct = Number(config.context?.preflight_trigger_pct || 92);
2600
+ const triggerPct = Number(config.context?.preflight_trigger_pct || 60);
2425
2601
  const hardPct = Number(config.context?.hard_limit_pct || 98);
2426
- const preflightTokens = estimatePromptTokensForRequest(session.messages, modelInputText);
2602
+ const messagesForEstimate = compacted ?? session.messages;
2603
+ const preflightTokens = estimatePromptTokensForRequest(messagesForEstimate, modelInputText);
2427
2604
  const preflightPct = (preflightTokens / maxContextTokens) * 100;
2428
2605
 
2429
2606
  if (persistSession && preflightPct >= triggerPct) {
2430
- const auto = compactMessagesLocally(session.messages, {
2431
- mode: preflightPct >= hardPct ? 'aggressive' : 'conservative'
2432
- });
2433
- if (auto.changed) {
2434
- session.messages = auto.compacted.map((m) => ({ ...m, at: new Date().toISOString() }));
2435
- await saveSession(session);
2436
- if (onAgentEvent) {
2437
- onAgentEvent({
2438
- type: 'compact:auto',
2439
- mode: preflightPct >= hardPct ? 'aggressive' : 'conservative',
2440
- threshold: Math.round(preflightPct)
2441
- });
2607
+ const compactSource = compacted ?? session.messages;
2608
+ // Phase 0: try micro-compact first (in-place tool result clearing)
2609
+ const microEnabled = config.context?.microcompact_enabled !== false;
2610
+ const microKeep = Number(config.context?.microcompact_keep_recent || 5);
2611
+ let needsMacro = true;
2612
+ if (microEnabled) {
2613
+ const micro = microCompactMessages(compactSource, { keepRecent: microKeep, enabled: true });
2614
+ if (micro.changed) {
2615
+ compacted = micro.messages.map((m) => ({ ...m, at: new Date().toISOString() }));
2616
+ if (onCompactedUpdate) onCompactedUpdate(compacted);
2617
+ const afterMicroTokens = estimateMessagesTokens(compacted);
2618
+ const afterMicroPct = (afterMicroTokens / maxContextTokens) * 100;
2619
+ if (onAgentEvent) {
2620
+ onAgentEvent({
2621
+ type: 'compact:auto',
2622
+ mode: 'micro',
2623
+ threshold: Math.round(preflightPct),
2624
+ tokensSaved: micro.tokensSaved
2625
+ });
2626
+ }
2627
+ if (afterMicroPct < triggerPct) {
2628
+ needsMacro = false;
2629
+ }
2630
+ }
2631
+ }
2632
+ if (needsMacro) {
2633
+ const macroSource = compacted ?? compactSource;
2634
+ const auto = compactMessagesLocally(macroSource, {
2635
+ mode: preflightPct >= hardPct ? 'aggressive' : 'conservative',
2636
+ force: true
2637
+ });
2638
+ if (auto.changed) {
2639
+ compacted = auto.compacted.map((m) => ({ ...m, at: new Date().toISOString() }));
2640
+ if (onCompactedUpdate) onCompactedUpdate(compacted, { boundaryIndex: auto.boundaryIndex, mode: preflightPct >= hardPct ? 'aggressive' : 'conservative' });
2641
+ if (onAgentEvent) {
2642
+ onAgentEvent({
2643
+ type: 'compact:auto',
2644
+ mode: preflightPct >= hardPct ? 'aggressive' : 'conservative',
2645
+ threshold: Math.round(preflightPct)
2646
+ });
2647
+ }
2442
2648
  }
2443
2649
  }
2444
2650
  }
@@ -2505,9 +2711,15 @@ async function askModel({
2505
2711
  const projectContextSnippet = await buildProjectContextSnippet(process.cwd(), modelInputText).catch(() => '');
2506
2712
  const projectContextGuidance =
2507
2713
  'Use this project context as lightweight guidance and verify important details with fresh reads when needed.';
2508
- const effectiveSystemPrompt = projectContextSnippet
2509
- ? `${systemPrompt}\n\n${projectContextSnippet}\n\n${projectContextGuidance}`
2510
- : systemPrompt;
2714
+ const effectiveSystemPrompt = await composeSystemPrompt({
2715
+ shellRulesPrompt: systemPrompt,
2716
+ config,
2717
+ workspaceRoot: process.cwd(),
2718
+ includeSoul: false,
2719
+ includeMemory: false,
2720
+ projectContextSnippet,
2721
+ projectContextGuidance
2722
+ });
2511
2723
 
2512
2724
  const { definitions, handlers, formatters, deferredDefinitions, dispose: disposeTools } = getBuiltinTools({
2513
2725
  workspaceRoot: process.cwd(),
@@ -2642,6 +2854,7 @@ async function askModel({
2642
2854
  if (onAgentEvent) onAgentEvent(event);
2643
2855
  };
2644
2856
 
2857
+ const sessionLenBeforeLoop = session.messages.length;
2645
2858
  const loopUserPrompt = persistSession ? '' : modelInputText;
2646
2859
  const expectedModelText = typeof modelText === 'string' && modelText && modelText !== text ? modelText : '';
2647
2860
  const loopResult = await runAgentLoop({
@@ -2651,7 +2864,7 @@ async function askModel({
2651
2864
  maxSteps: maxStepsOverride ?? Number(config.execution?.max_steps || 16),
2652
2865
  toolDefinitions: filteredDefinitions,
2653
2866
  toolHandlers: filteredHandlers,
2654
- initialMessages: toOpenAIMessages(session.messages),
2867
+ initialMessages: toOpenAIMessages(compacted ?? session.messages),
2655
2868
  onEvent: wrappedAgentEvent,
2656
2869
  executionMode: executionMode || config.execution?.mode || 'normal',
2657
2870
  alwaysAllowTools:
@@ -2701,9 +2914,15 @@ async function askModel({
2701
2914
  });
2702
2915
 
2703
2916
  if (persistSession) {
2704
- session.messages = loopResult.messages
2705
- .filter((m) => m.role !== 'system')
2706
- .map((m) => ({ ...m, at: new Date().toISOString() }));
2917
+ // Sync new messages to compacted view
2918
+ if (compacted) {
2919
+ const newMsgs = session.messages.slice(sessionLenBeforeLoop);
2920
+ for (const msg of newMsgs) {
2921
+ compacted.push({ ...msg });
2922
+ }
2923
+ if (onCompactedUpdate) onCompactedUpdate(compacted);
2924
+ }
2925
+ // Handle model_content rewrite on the new user message
2707
2926
  if (expectedModelText) {
2708
2927
  for (let i = session.messages.length - 1; i >= 0; i -= 1) {
2709
2928
  const message = session.messages[i];
@@ -2752,7 +2971,7 @@ async function runSubAgentTask({
2752
2971
  }) {
2753
2972
  const subSession = { id: `sub-${Date.now()}`, messages: [] };
2754
2973
  const rolePrompt = getSubAgentRolePrompt(role);
2755
- const contextPacket = buildSubAgentContextPacket(parentSession);
2974
+ const contextPacket = buildSubAgentContextPacket(parentSession, task || goal);
2756
2975
  const evidencePacket = buildSubAgentEvidencePacket(parentSession);
2757
2976
  const handoffPacket = buildStepArtifactPacket(priorSteps, role);
2758
2977
  const handoffFocusPaths = collectStepArtifacts(priorSteps, role)?.focusPaths || [];
@@ -2807,12 +3026,19 @@ async function runSubAgentTask({
2807
3026
  };
2808
3027
  const roleAllowedTools = ROLE_TOOL_POLICY[role];
2809
3028
  if (onSessionActive) onSessionActive(subSession);
3029
+ const subSystemPrompt = await composeSystemPrompt({
3030
+ shellRulesPrompt: systemPrompt,
3031
+ config,
3032
+ skillsPrompt: [rolePrompt, extraRolePrompt].filter(Boolean).join('\n\n'),
3033
+ includeSoul: false,
3034
+ includeMemory: false
3035
+ });
2810
3036
  const subResult = await askModel({
2811
3037
  text: scopedTask,
2812
3038
  session: subSession,
2813
3039
  config,
2814
3040
  model,
2815
- systemPrompt: `${systemPrompt}\n${rolePrompt}${extraRolePrompt ? `\n${extraRolePrompt}` : ''}`,
3041
+ systemPrompt: subSystemPrompt,
2816
3042
  onAgentEvent: wrappedOnAgentEvent,
2817
3043
  persistSession: false,
2818
3044
  executionMode: 'auto',
@@ -3122,13 +3348,20 @@ async function buildAutoPlanAndRun({
3122
3348
  };
3123
3349
  let planningError = '';
3124
3350
  try {
3351
+ const plannerSystemPrompt = await composeSystemPrompt({
3352
+ shellRulesPrompt: systemPrompt,
3353
+ config,
3354
+ skillsPrompt: plannerPrompt,
3355
+ includeSoul: false,
3356
+ includeMemory: false
3357
+ });
3125
3358
  const planning = await createChatCompletion({
3126
3359
  sdkProvider: config.sdk?.provider,
3127
3360
  baseUrl: config.gateway.base_url,
3128
3361
  apiKey: config.gateway.api_key,
3129
3362
  model: model || config.model.name,
3130
3363
  messages: [
3131
- { role: 'system', content: `${systemPrompt}\n${plannerPrompt}` },
3364
+ { role: 'system', content: plannerSystemPrompt },
3132
3365
  {
3133
3366
  role: 'user',
3134
3367
  content: [
@@ -3288,15 +3521,17 @@ function renderProjectRequirementsSectionContract(ignoredSections = []) {
3288
3521
  return lines.join('\n');
3289
3522
  }
3290
3523
 
3291
- function buildProjectRequirementsSteps(renderedSkillPrompt, args = []) {
3524
+ function buildProjectRequirementsSteps(renderedSkillPrompt, args = [], config = {}) {
3292
3525
  const options = parseProjectRequirementsOptions(args);
3293
3526
  const userArgs = options.raw;
3294
3527
  const requestedFocus = userArgs ? `User request/focus: ${userArgs}` : 'User request/focus: full workspace requirements report.';
3528
+ const replyLanguageName = getReplyLanguageName(config);
3295
3529
  const reportDate = formatLocalDate();
3296
3530
  const reportPath = `docs/requirements/${reportDate}-project-requirements.html`;
3297
3531
  const companionPath = `docs/requirements/${reportDate}-project-requirements.md`;
3298
3532
  const reportContract = [
3299
3533
  requestedFocus,
3534
+ `Reply language: write generated report prose, UI labels inserted into the report, review notes, and final user-facing status in ${replyLanguageName} unless the user explicitly requested a different language. Do not translate REQUIREMENTS_* marker names or source code identifiers.`,
3300
3535
  `Primary report path: ${reportPath}`,
3301
3536
  `Optional companion Markdown path: ${companionPath}`,
3302
3537
  'A pre-created HTML shell already exists at the primary report path.',
@@ -3531,7 +3766,8 @@ async function createProjectRequirementsShell({
3531
3766
  planFile,
3532
3767
  goal,
3533
3768
  steps,
3534
- depth = 'standard'
3769
+ depth = 'standard',
3770
+ config = {}
3535
3771
  }) {
3536
3772
  const workspaceRoot = process.cwd();
3537
3773
  const absoluteReportPath = path.resolve(workspaceRoot, reportPath);
@@ -3539,8 +3775,9 @@ async function createProjectRequirementsShell({
3539
3775
  await fs.mkdir(path.dirname(absoluteReportPath), { recursive: true });
3540
3776
  const template = await fs.readFile(PROJECT_REQUIREMENTS_TEMPLATE, 'utf8');
3541
3777
  const now = new Date().toISOString();
3778
+ const shellCopy = PROJECT_REQUIREMENTS_SHELL_COPY[getReplyLanguage(config)] || PROJECT_REQUIREMENTS_SHELL_COPY.zh;
3542
3779
  const html = replaceTemplateVariables(template, {
3543
- title: 'Project Requirements Report',
3780
+ ...shellCopy,
3544
3781
  workspace_name: path.basename(workspaceRoot) || workspaceRoot,
3545
3782
  date: formatLocalDate(),
3546
3783
  generated_at: now
@@ -3617,7 +3854,7 @@ async function runProjectRequirementsPipeline({
3617
3854
  const reportPath = `docs/requirements/${reportDate}-project-requirements.html`;
3618
3855
  const companionPath = `docs/requirements/${reportDate}-project-requirements.md`;
3619
3856
  const manifestPath = `docs/requirements/${reportDate}-project-requirements.manifest.json`;
3620
- const steps = buildProjectRequirementsSteps(renderedSkillPrompt, parsedInput.args);
3857
+ const steps = buildProjectRequirementsSteps(renderedSkillPrompt, parsedInput.args, config);
3621
3858
  const planFile = await writeMarkdownInProjectDir(
3622
3859
  'plans',
3623
3860
  'project-requirements-pipeline',
@@ -3632,7 +3869,8 @@ async function runProjectRequirementsPipeline({
3632
3869
  planFile,
3633
3870
  goal,
3634
3871
  steps,
3635
- depth: options.depth
3872
+ depth: options.depth,
3873
+ config
3636
3874
  });
3637
3875
  const planState = {
3638
3876
  status: 'approved',
@@ -3756,13 +3994,20 @@ async function revisePendingPlanWithModel({
3756
3994
  'Keep roles minimal and only include steps that materially help the goal.',
3757
3995
  'Always keep a summarizer as the final step.'
3758
3996
  ].join('\n');
3997
+ const revisionSystemPrompt = await composeSystemPrompt({
3998
+ shellRulesPrompt: systemPrompt,
3999
+ config,
4000
+ skillsPrompt: prompt,
4001
+ includeSoul: false,
4002
+ includeMemory: false
4003
+ });
3759
4004
  const result = await createChatCompletion({
3760
4005
  sdkProvider: config.sdk?.provider,
3761
4006
  baseUrl: config.gateway.base_url,
3762
4007
  apiKey: config.gateway.api_key,
3763
4008
  model: model || config.model.name,
3764
4009
  messages: [
3765
- { role: 'system', content: `${systemPrompt}\n${prompt}` },
4010
+ { role: 'system', content: revisionSystemPrompt },
3766
4011
  {
3767
4012
  role: 'user',
3768
4013
  content: [
@@ -3940,6 +4185,13 @@ export async function createChatRuntime({
3940
4185
  threshold: 60,
3941
4186
  mode: 'conservative'
3942
4187
  };
4188
+ let compactedForModel = currentSession.compact?.view || null;
4189
+ const setCompactedView = (view, meta = {}) => {
4190
+ compactedForModel = view;
4191
+ currentSession.compact = view
4192
+ ? { view, timestamp: new Date().toISOString(), ...meta }
4193
+ : null;
4194
+ };
3943
4195
  let historyIdCache = [currentSession.id];
3944
4196
  let historySessionCache = [
3945
4197
  {
@@ -3998,6 +4250,8 @@ export async function createChatRuntime({
3998
4250
  'context.tool_result_max_chars',
3999
4251
  'context.read_file_default_lines',
4000
4252
  'context.read_file_max_chars',
4253
+ 'context.microcompact_enabled',
4254
+ 'context.microcompact_keep_recent',
4001
4255
  'sessions.max_sessions',
4002
4256
  'sessions.retention_days',
4003
4257
  'shell.timeout_ms',
@@ -4069,6 +4323,7 @@ export async function createChatRuntime({
4069
4323
  const compactOptions = [
4070
4324
  '--preview',
4071
4325
  '--restore',
4326
+ '--micro',
4072
4327
  '--aggressive',
4073
4328
  '--conservative',
4074
4329
  '--default',
@@ -4545,14 +4800,14 @@ export async function createChatRuntime({
4545
4800
  };
4546
4801
 
4547
4802
  const buildActiveSystemPrompt = async () => {
4548
- const soulPrompt = await buildSystemPromptWithSoul(baseSystemPrompt, config);
4549
- const memorySnapshot = await buildMemorySnapshot({
4550
- config,
4551
- workspaceRoot: process.cwd()
4552
- }).catch(() => '');
4553
4803
  const memoryGuide =
4554
4804
  'Persistent memory stores durable preferences and stable workflow knowledge. Verify changeable details from files, and only write memory for future-useful, non-sensitive facts.';
4555
- return [soulPrompt, memorySnapshot, memoryGuide].filter(Boolean).join('\n\n');
4805
+ return composeSystemPrompt({
4806
+ shellRulesPrompt: baseSystemPrompt,
4807
+ config,
4808
+ workspaceRoot: process.cwd(),
4809
+ extraPrompts: [memoryGuide]
4810
+ });
4556
4811
  };
4557
4812
 
4558
4813
  const isImmediateLocalInput = (line) => {
@@ -5326,7 +5581,9 @@ export async function createChatRuntime({
5326
5581
  onAgentEvent,
5327
5582
  requestToolApproval: activeRequestToolApproval,
5328
5583
  executionMode,
5329
- signal
5584
+ signal,
5585
+ compactedForModel,
5586
+ onCompactedUpdate: setCompactedView
5330
5587
  });
5331
5588
  return { type: 'assistant', text: result.text, aborted: !!result.aborted };
5332
5589
  }
@@ -5390,18 +5647,35 @@ export async function createChatRuntime({
5390
5647
  if (cargs.mode) compactState.mode = cargs.mode;
5391
5648
 
5392
5649
  if (cargs.restore) {
5393
- if (!compactState.backupMessages) {
5394
- return { type: 'system', text: 'No backup available to restore' };
5395
- }
5396
- currentSession.messages = structuredClone(compactState.backupMessages);
5397
- await saveSession(currentSession);
5398
- const text = 'Context restored from backup';
5650
+ setCompactedView(null);
5651
+ const text = 'Context restored to full view';
5399
5652
  await persistLocalExchange(line, text, { includeUser: false });
5400
5653
  return { type: 'system', text };
5401
5654
  }
5402
5655
 
5403
- const beforeTokens = estimateMessagesTokens(currentSession.messages);
5404
- const result = compactMessagesLocally(currentSession.messages, { mode: compactState.mode });
5656
+ const compactSource = compactedForModel ?? currentSession.messages;
5657
+ const beforeTokens = estimateMessagesTokens(compactSource);
5658
+
5659
+ // --micro: only do micro-compact (in-place tool result clearing)
5660
+ if (cargs.micro) {
5661
+ const microKeep = Number(config.context?.microcompact_keep_recent || 5);
5662
+ const micro = microCompactMessages(compactSource, { keepRecent: microKeep, enabled: true });
5663
+ if (!micro.changed) {
5664
+ return { type: 'system', text: 'Micro-compact: nothing to clear' };
5665
+ }
5666
+ const afterTokens = estimateMessagesTokens(micro.messages);
5667
+ const report = `Micro-compact ${cargs.preview ? 'preview' : 'applied'}: ${beforeTokens} -> ${afterTokens} tokens (saved ${micro.tokensSaved})`;
5668
+
5669
+ if (cargs.preview) {
5670
+ return { type: 'system', text: report };
5671
+ }
5672
+
5673
+ setCompactedView(micro.messages.map((m) => ({ ...m, at: new Date().toISOString() })));
5674
+ await persistLocalExchange(line, report, { includeUser: false });
5675
+ return { type: 'system', text: report };
5676
+ }
5677
+
5678
+ const result = compactMessagesLocally(compactSource, { mode: compactState.mode, force: true });
5405
5679
  if (!result.changed) {
5406
5680
  return { type: 'system', text: 'Nothing to compact yet' };
5407
5681
  }
@@ -5412,9 +5686,10 @@ export async function createChatRuntime({
5412
5686
  return { type: 'system', text: `${report}\n\n${result.summary}` };
5413
5687
  }
5414
5688
 
5415
- compactState.backupMessages = structuredClone(currentSession.messages);
5416
- currentSession.messages = result.compacted.map((m) => ({ ...m, at: new Date().toISOString() }));
5417
- await saveSession(currentSession);
5689
+ setCompactedView(
5690
+ result.compacted.map((m) => ({ ...m, at: new Date().toISOString() })),
5691
+ { boundaryIndex: result.boundaryIndex, mode: compactState.mode }
5692
+ );
5418
5693
  await captureCompactSummary({
5419
5694
  summary: result.summary,
5420
5695
  mode: compactState.mode,
@@ -5488,7 +5763,9 @@ export async function createChatRuntime({
5488
5763
  onAgentEvent,
5489
5764
  requestToolApproval: activeRequestToolApproval,
5490
5765
  executionMode,
5491
- signal
5766
+ signal,
5767
+ compactedForModel,
5768
+ onCompactedUpdate: setCompactedView
5492
5769
  });
5493
5770
  } catch (error) {
5494
5771
  if (custom.metadata.type === 'skill' && onAgentEvent) {
@@ -5591,32 +5868,71 @@ export async function createChatRuntime({
5591
5868
  }
5592
5869
 
5593
5870
  if (compactState.autoEnabled) {
5594
- const currentTokens = estimateMessagesTokens(currentSession.messages);
5871
+ const compactSource = compactedForModel ?? currentSession.messages;
5872
+ const currentTokens = estimateMessagesTokens(compactSource);
5595
5873
  const maxTokens = effectiveMaxContextTokens(config);
5596
5874
  const usagePct = (currentTokens / maxTokens) * 100;
5597
5875
  if (usagePct >= compactState.threshold) {
5598
- const autoResult = compactMessagesLocally(currentSession.messages, {
5599
- mode: compactState.mode
5600
- });
5601
- if (autoResult.changed) {
5602
- compactState.backupMessages = structuredClone(currentSession.messages);
5603
- currentSession.messages = autoResult.compacted.map((m) => ({
5604
- ...m,
5605
- at: new Date().toISOString()
5606
- }));
5607
- await saveSession(currentSession);
5608
- await captureCompactSummary({
5609
- summary: autoResult.summary,
5876
+ // Phase 0: try micro-compact first
5877
+ const microEnabled = config.context?.microcompact_enabled !== false;
5878
+ const microKeep = Number(config.context?.microcompact_keep_recent || 5);
5879
+ let needsMacro = true;
5880
+ if (microEnabled) {
5881
+ const micro = microCompactMessages(compactSource, { keepRecent: microKeep, enabled: true });
5882
+ if (micro.changed) {
5883
+ setCompactedView(micro.messages.map((m) => ({
5884
+ ...m,
5885
+ at: new Date().toISOString()
5886
+ })));
5887
+ const afterMicroTokens = estimateMessagesTokens(compactedForModel);
5888
+ const afterMicroPct = (afterMicroTokens / maxTokens) * 100;
5889
+ if (onAgentEvent) {
5890
+ onAgentEvent({
5891
+ type: 'compact:auto',
5892
+ mode: 'micro',
5893
+ threshold: compactState.threshold,
5894
+ tokensSaved: micro.tokensSaved
5895
+ });
5896
+ }
5897
+ if (afterMicroPct < compactState.threshold) {
5898
+ needsMacro = false;
5899
+ await captureCompactSummary({
5900
+ summary: `Micro-compact saved ${micro.tokensSaved} tokens`,
5901
+ mode: 'micro',
5902
+ beforeTokens: currentTokens,
5903
+ afterTokens: afterMicroTokens
5904
+ });
5905
+ }
5906
+ }
5907
+ }
5908
+ // Phase 1: macro compact if still over threshold
5909
+ if (needsMacro) {
5910
+ const macroSource = compactedForModel ?? compactSource;
5911
+ const autoResult = compactMessagesLocally(macroSource, {
5610
5912
  mode: compactState.mode,
5611
- beforeTokens: currentTokens,
5612
- afterTokens: estimateMessagesTokens(currentSession.messages)
5913
+ force: true
5613
5914
  });
5614
- if (onAgentEvent) {
5615
- onAgentEvent({
5616
- type: 'compact:auto',
5915
+ if (autoResult.changed) {
5916
+ setCompactedView(
5917
+ autoResult.compacted.map((m) => ({
5918
+ ...m,
5919
+ at: new Date().toISOString()
5920
+ })),
5921
+ { boundaryIndex: autoResult.boundaryIndex, mode: compactState.mode }
5922
+ );
5923
+ await captureCompactSummary({
5924
+ summary: autoResult.summary,
5617
5925
  mode: compactState.mode,
5618
- threshold: compactState.threshold
5926
+ beforeTokens: currentTokens,
5927
+ afterTokens: estimateMessagesTokens(compactedForModel)
5619
5928
  });
5929
+ if (onAgentEvent) {
5930
+ onAgentEvent({
5931
+ type: 'compact:auto',
5932
+ mode: compactState.mode,
5933
+ threshold: compactState.threshold
5934
+ });
5935
+ }
5620
5936
  }
5621
5937
  }
5622
5938
  }
@@ -5658,10 +5974,27 @@ export async function createChatRuntime({
5658
5974
  names: selectedAutoSkills
5659
5975
  });
5660
5976
  }
5661
- const skillPrompt = buildAutoSkillSystemPrompt(activeReplySystemPrompt, commands, config, expandedText);
5977
+ const autoSkillPrompt = buildAutoSkillPromptBlock(commands, config, expandedText);
5978
+ const skillPrompt = autoSkillPrompt
5979
+ ? await composeSystemPrompt({
5980
+ shellRulesPrompt: activeReplySystemPrompt,
5981
+ config,
5982
+ workspaceRoot: process.cwd(),
5983
+ skillsPrompt: autoSkillPrompt,
5984
+ includeSoul: false,
5985
+ includeMemory: false
5986
+ })
5987
+ : activeReplySystemPrompt;
5662
5988
  const routedSystemPrompt =
5663
5989
  autoRoute.mode === 'direct_medium'
5664
- ? buildMediumTaskSystemPrompt(skillPrompt)
5990
+ ? await composeSystemPrompt({
5991
+ shellRulesPrompt: skillPrompt,
5992
+ config,
5993
+ workspaceRoot: process.cwd(),
5994
+ skillsPrompt: buildMediumTaskPromptBlock(),
5995
+ includeSoul: false,
5996
+ includeMemory: false
5997
+ })
5665
5998
  : skillPrompt;
5666
5999
  const result = await askModel({
5667
6000
  text: expandedText,
@@ -5672,7 +6005,9 @@ export async function createChatRuntime({
5672
6005
  onAgentEvent,
5673
6006
  requestToolApproval: activeRequestToolApproval,
5674
6007
  executionMode,
5675
- signal
6008
+ signal,
6009
+ compactedForModel,
6010
+ onCompactedUpdate: setCompactedView
5676
6011
  });
5677
6012
  await saveDirectMemoryPrompt(expandedText);
5678
6013
  await captureUserPromptForDream(expandedText);
@@ -5695,6 +6030,7 @@ export async function createChatRuntime({
5695
6030
  getInputHistory: () => loadInputHistory(),
5696
6031
  getCurrentSessionId: () => currentSession.id,
5697
6032
  getSessionMessages: () => currentSession.messages || [],
6033
+ getSessionCompact: () => currentSession.compact || null,
5698
6034
  reloadConfig: async () => {
5699
6035
  config = await loadConfig();
5700
6036
  return config;