reasonix 0.49.0 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/dashboard/dist/app.css +1 -0
  2. package/dashboard/dist/app.js +28 -30531
  3. package/dashboard/dist/app.js.map +1 -1
  4. package/dashboard/dist/assets/KaTeX_AMS-Regular.ttf +0 -0
  5. package/dashboard/dist/assets/KaTeX_AMS-Regular.woff +0 -0
  6. package/dashboard/dist/assets/KaTeX_AMS-Regular.woff2 +0 -0
  7. package/dashboard/dist/assets/KaTeX_Caligraphic-Bold.ttf +0 -0
  8. package/dashboard/dist/assets/KaTeX_Caligraphic-Bold.woff +0 -0
  9. package/dashboard/dist/assets/KaTeX_Caligraphic-Bold.woff2 +0 -0
  10. package/dashboard/dist/assets/KaTeX_Caligraphic-Regular.ttf +0 -0
  11. package/dashboard/dist/assets/KaTeX_Caligraphic-Regular.woff +0 -0
  12. package/dashboard/dist/assets/KaTeX_Caligraphic-Regular.woff2 +0 -0
  13. package/dashboard/dist/assets/KaTeX_Fraktur-Bold.ttf +0 -0
  14. package/dashboard/dist/assets/KaTeX_Fraktur-Bold.woff +0 -0
  15. package/dashboard/dist/assets/KaTeX_Fraktur-Bold.woff2 +0 -0
  16. package/dashboard/dist/assets/KaTeX_Fraktur-Regular.ttf +0 -0
  17. package/dashboard/dist/assets/KaTeX_Fraktur-Regular.woff +0 -0
  18. package/dashboard/dist/assets/KaTeX_Fraktur-Regular.woff2 +0 -0
  19. package/dashboard/dist/assets/KaTeX_Main-Bold.ttf +0 -0
  20. package/dashboard/dist/assets/KaTeX_Main-Bold.woff +0 -0
  21. package/dashboard/dist/assets/KaTeX_Main-Bold.woff2 +0 -0
  22. package/dashboard/dist/assets/KaTeX_Main-BoldItalic.ttf +0 -0
  23. package/dashboard/dist/assets/KaTeX_Main-BoldItalic.woff +0 -0
  24. package/dashboard/dist/assets/KaTeX_Main-BoldItalic.woff2 +0 -0
  25. package/dashboard/dist/assets/KaTeX_Main-Italic.ttf +0 -0
  26. package/dashboard/dist/assets/KaTeX_Main-Italic.woff +0 -0
  27. package/dashboard/dist/assets/KaTeX_Main-Italic.woff2 +0 -0
  28. package/dashboard/dist/assets/KaTeX_Main-Regular.ttf +0 -0
  29. package/dashboard/dist/assets/KaTeX_Main-Regular.woff +0 -0
  30. package/dashboard/dist/assets/KaTeX_Main-Regular.woff2 +0 -0
  31. package/dashboard/dist/assets/KaTeX_Math-BoldItalic.ttf +0 -0
  32. package/dashboard/dist/assets/KaTeX_Math-BoldItalic.woff +0 -0
  33. package/dashboard/dist/assets/KaTeX_Math-BoldItalic.woff2 +0 -0
  34. package/dashboard/dist/assets/KaTeX_Math-Italic.ttf +0 -0
  35. package/dashboard/dist/assets/KaTeX_Math-Italic.woff +0 -0
  36. package/dashboard/dist/assets/KaTeX_Math-Italic.woff2 +0 -0
  37. package/dashboard/dist/assets/KaTeX_SansSerif-Bold.ttf +0 -0
  38. package/dashboard/dist/assets/KaTeX_SansSerif-Bold.woff +0 -0
  39. package/dashboard/dist/assets/KaTeX_SansSerif-Bold.woff2 +0 -0
  40. package/dashboard/dist/assets/KaTeX_SansSerif-Italic.ttf +0 -0
  41. package/dashboard/dist/assets/KaTeX_SansSerif-Italic.woff +0 -0
  42. package/dashboard/dist/assets/KaTeX_SansSerif-Italic.woff2 +0 -0
  43. package/dashboard/dist/assets/KaTeX_SansSerif-Regular.ttf +0 -0
  44. package/dashboard/dist/assets/KaTeX_SansSerif-Regular.woff +0 -0
  45. package/dashboard/dist/assets/KaTeX_SansSerif-Regular.woff2 +0 -0
  46. package/dashboard/dist/assets/KaTeX_Script-Regular.ttf +0 -0
  47. package/dashboard/dist/assets/KaTeX_Script-Regular.woff +0 -0
  48. package/dashboard/dist/assets/KaTeX_Script-Regular.woff2 +0 -0
  49. package/dashboard/dist/assets/KaTeX_Size1-Regular.ttf +0 -0
  50. package/dashboard/dist/assets/KaTeX_Size1-Regular.woff +0 -0
  51. package/dashboard/dist/assets/KaTeX_Size1-Regular.woff2 +0 -0
  52. package/dashboard/dist/assets/KaTeX_Size2-Regular.ttf +0 -0
  53. package/dashboard/dist/assets/KaTeX_Size2-Regular.woff +0 -0
  54. package/dashboard/dist/assets/KaTeX_Size2-Regular.woff2 +0 -0
  55. package/dashboard/dist/assets/KaTeX_Size3-Regular.ttf +0 -0
  56. package/dashboard/dist/assets/KaTeX_Size3-Regular.woff +0 -0
  57. package/dashboard/dist/assets/KaTeX_Size4-Regular.ttf +0 -0
  58. package/dashboard/dist/assets/KaTeX_Size4-Regular.woff +0 -0
  59. package/dashboard/dist/assets/KaTeX_Size4-Regular.woff2 +0 -0
  60. package/dashboard/dist/assets/KaTeX_Typewriter-Regular.ttf +0 -0
  61. package/dashboard/dist/assets/KaTeX_Typewriter-Regular.woff +0 -0
  62. package/dashboard/dist/assets/KaTeX_Typewriter-Regular.woff2 +0 -0
  63. package/dashboard/dist/assets/geist-cyrillic-400-normal.woff +0 -0
  64. package/dashboard/dist/assets/geist-cyrillic-400-normal.woff2 +0 -0
  65. package/dashboard/dist/assets/geist-cyrillic-500-normal.woff +0 -0
  66. package/dashboard/dist/assets/geist-cyrillic-500-normal.woff2 +0 -0
  67. package/dashboard/dist/assets/geist-cyrillic-600-normal.woff +0 -0
  68. package/dashboard/dist/assets/geist-cyrillic-600-normal.woff2 +0 -0
  69. package/dashboard/dist/assets/geist-cyrillic-700-normal.woff +0 -0
  70. package/dashboard/dist/assets/geist-cyrillic-700-normal.woff2 +0 -0
  71. package/dashboard/dist/assets/geist-cyrillic-ext-500-normal.woff +0 -0
  72. package/dashboard/dist/assets/geist-cyrillic-ext-600-normal.woff +0 -0
  73. package/dashboard/dist/assets/geist-cyrillic-ext-700-normal.woff +0 -0
  74. package/dashboard/dist/assets/geist-latin-400-normal.woff +0 -0
  75. package/dashboard/dist/assets/geist-latin-400-normal.woff2 +0 -0
  76. package/dashboard/dist/assets/geist-latin-500-normal.woff +0 -0
  77. package/dashboard/dist/assets/geist-latin-500-normal.woff2 +0 -0
  78. package/dashboard/dist/assets/geist-latin-600-normal.woff +0 -0
  79. package/dashboard/dist/assets/geist-latin-600-normal.woff2 +0 -0
  80. package/dashboard/dist/assets/geist-latin-700-normal.woff +0 -0
  81. package/dashboard/dist/assets/geist-latin-700-normal.woff2 +0 -0
  82. package/dashboard/dist/assets/geist-latin-ext-400-normal.woff +0 -0
  83. package/dashboard/dist/assets/geist-latin-ext-400-normal.woff2 +0 -0
  84. package/dashboard/dist/assets/geist-latin-ext-500-normal.woff +0 -0
  85. package/dashboard/dist/assets/geist-latin-ext-500-normal.woff2 +0 -0
  86. package/dashboard/dist/assets/geist-latin-ext-600-normal.woff +0 -0
  87. package/dashboard/dist/assets/geist-latin-ext-600-normal.woff2 +0 -0
  88. package/dashboard/dist/assets/geist-latin-ext-700-normal.woff +0 -0
  89. package/dashboard/dist/assets/geist-latin-ext-700-normal.woff2 +0 -0
  90. package/dashboard/dist/assets/geist-mono-cyrillic-400-normal.woff +0 -0
  91. package/dashboard/dist/assets/geist-mono-cyrillic-400-normal.woff2 +0 -0
  92. package/dashboard/dist/assets/geist-mono-cyrillic-500-normal.woff +0 -0
  93. package/dashboard/dist/assets/geist-mono-cyrillic-500-normal.woff2 +0 -0
  94. package/dashboard/dist/assets/geist-mono-cyrillic-600-normal.woff +0 -0
  95. package/dashboard/dist/assets/geist-mono-cyrillic-600-normal.woff2 +0 -0
  96. package/dashboard/dist/assets/geist-mono-latin-400-normal.woff +0 -0
  97. package/dashboard/dist/assets/geist-mono-latin-400-normal.woff2 +0 -0
  98. package/dashboard/dist/assets/geist-mono-latin-500-normal.woff +0 -0
  99. package/dashboard/dist/assets/geist-mono-latin-500-normal.woff2 +0 -0
  100. package/dashboard/dist/assets/geist-mono-latin-600-normal.woff +0 -0
  101. package/dashboard/dist/assets/geist-mono-latin-600-normal.woff2 +0 -0
  102. package/dashboard/dist/assets/geist-mono-latin-ext-400-normal.woff +0 -0
  103. package/dashboard/dist/assets/geist-mono-latin-ext-400-normal.woff2 +0 -0
  104. package/dashboard/dist/assets/geist-mono-latin-ext-500-normal.woff +0 -0
  105. package/dashboard/dist/assets/geist-mono-latin-ext-500-normal.woff2 +0 -0
  106. package/dashboard/dist/assets/geist-mono-latin-ext-600-normal.woff +0 -0
  107. package/dashboard/dist/assets/geist-mono-latin-ext-600-normal.woff2 +0 -0
  108. package/dashboard/dist/assets/geist-mono-symbols2-400-normal.woff +0 -0
  109. package/dashboard/dist/assets/geist-mono-symbols2-500-normal.woff +0 -0
  110. package/dashboard/dist/assets/geist-mono-symbols2-600-normal.woff +0 -0
  111. package/dashboard/dist/assets/geist-mono-vietnamese-400-normal.woff +0 -0
  112. package/dashboard/dist/assets/geist-mono-vietnamese-500-normal.woff +0 -0
  113. package/dashboard/dist/assets/geist-mono-vietnamese-600-normal.woff +0 -0
  114. package/dashboard/dist/assets/geist-vietnamese-400-normal.woff +0 -0
  115. package/dashboard/dist/assets/geist-vietnamese-500-normal.woff +0 -0
  116. package/dashboard/dist/assets/geist-vietnamese-600-normal.woff +0 -0
  117. package/dashboard/dist/assets/geist-vietnamese-600-normal.woff2 +0 -0
  118. package/dashboard/dist/assets/geist-vietnamese-700-normal.woff +0 -0
  119. package/dashboard/dist/assets/inter-cyrillic-400-normal.woff +0 -0
  120. package/dashboard/dist/assets/inter-cyrillic-400-normal.woff2 +0 -0
  121. package/dashboard/dist/assets/inter-cyrillic-500-normal.woff +0 -0
  122. package/dashboard/dist/assets/inter-cyrillic-500-normal.woff2 +0 -0
  123. package/dashboard/dist/assets/inter-cyrillic-600-normal.woff +0 -0
  124. package/dashboard/dist/assets/inter-cyrillic-600-normal.woff2 +0 -0
  125. package/dashboard/dist/assets/inter-cyrillic-700-normal.woff +0 -0
  126. package/dashboard/dist/assets/inter-cyrillic-700-normal.woff2 +0 -0
  127. package/dashboard/dist/assets/inter-cyrillic-ext-400-normal.woff +0 -0
  128. package/dashboard/dist/assets/inter-cyrillic-ext-400-normal.woff2 +0 -0
  129. package/dashboard/dist/assets/inter-cyrillic-ext-500-normal.woff +0 -0
  130. package/dashboard/dist/assets/inter-cyrillic-ext-500-normal.woff2 +0 -0
  131. package/dashboard/dist/assets/inter-cyrillic-ext-600-normal.woff +0 -0
  132. package/dashboard/dist/assets/inter-cyrillic-ext-600-normal.woff2 +0 -0
  133. package/dashboard/dist/assets/inter-cyrillic-ext-700-normal.woff +0 -0
  134. package/dashboard/dist/assets/inter-cyrillic-ext-700-normal.woff2 +0 -0
  135. package/dashboard/dist/assets/inter-greek-400-normal.woff +0 -0
  136. package/dashboard/dist/assets/inter-greek-400-normal.woff2 +0 -0
  137. package/dashboard/dist/assets/inter-greek-500-normal.woff +0 -0
  138. package/dashboard/dist/assets/inter-greek-500-normal.woff2 +0 -0
  139. package/dashboard/dist/assets/inter-greek-600-normal.woff +0 -0
  140. package/dashboard/dist/assets/inter-greek-600-normal.woff2 +0 -0
  141. package/dashboard/dist/assets/inter-greek-700-normal.woff +0 -0
  142. package/dashboard/dist/assets/inter-greek-700-normal.woff2 +0 -0
  143. package/dashboard/dist/assets/inter-greek-ext-400-normal.woff +0 -0
  144. package/dashboard/dist/assets/inter-greek-ext-400-normal.woff2 +0 -0
  145. package/dashboard/dist/assets/inter-greek-ext-500-normal.woff +0 -0
  146. package/dashboard/dist/assets/inter-greek-ext-500-normal.woff2 +0 -0
  147. package/dashboard/dist/assets/inter-greek-ext-600-normal.woff +0 -0
  148. package/dashboard/dist/assets/inter-greek-ext-600-normal.woff2 +0 -0
  149. package/dashboard/dist/assets/inter-greek-ext-700-normal.woff +0 -0
  150. package/dashboard/dist/assets/inter-greek-ext-700-normal.woff2 +0 -0
  151. package/dashboard/dist/assets/inter-latin-400-normal.woff +0 -0
  152. package/dashboard/dist/assets/inter-latin-400-normal.woff2 +0 -0
  153. package/dashboard/dist/assets/inter-latin-500-normal.woff +0 -0
  154. package/dashboard/dist/assets/inter-latin-500-normal.woff2 +0 -0
  155. package/dashboard/dist/assets/inter-latin-600-normal.woff +0 -0
  156. package/dashboard/dist/assets/inter-latin-600-normal.woff2 +0 -0
  157. package/dashboard/dist/assets/inter-latin-700-normal.woff +0 -0
  158. package/dashboard/dist/assets/inter-latin-700-normal.woff2 +0 -0
  159. package/dashboard/dist/assets/inter-latin-ext-400-normal.woff +0 -0
  160. package/dashboard/dist/assets/inter-latin-ext-400-normal.woff2 +0 -0
  161. package/dashboard/dist/assets/inter-latin-ext-500-normal.woff +0 -0
  162. package/dashboard/dist/assets/inter-latin-ext-500-normal.woff2 +0 -0
  163. package/dashboard/dist/assets/inter-latin-ext-600-normal.woff +0 -0
  164. package/dashboard/dist/assets/inter-latin-ext-600-normal.woff2 +0 -0
  165. package/dashboard/dist/assets/inter-latin-ext-700-normal.woff +0 -0
  166. package/dashboard/dist/assets/inter-latin-ext-700-normal.woff2 +0 -0
  167. package/dashboard/dist/assets/inter-vietnamese-400-normal.woff +0 -0
  168. package/dashboard/dist/assets/inter-vietnamese-400-normal.woff2 +0 -0
  169. package/dashboard/dist/assets/inter-vietnamese-500-normal.woff +0 -0
  170. package/dashboard/dist/assets/inter-vietnamese-500-normal.woff2 +0 -0
  171. package/dashboard/dist/assets/inter-vietnamese-600-normal.woff +0 -0
  172. package/dashboard/dist/assets/inter-vietnamese-600-normal.woff2 +0 -0
  173. package/dashboard/dist/assets/inter-vietnamese-700-normal.woff +0 -0
  174. package/dashboard/dist/assets/inter-vietnamese-700-normal.woff2 +0 -0
  175. package/dashboard/dist/vendor-icons.js +102 -0
  176. package/dashboard/dist/vendor-icons.js.map +1 -0
  177. package/dashboard/dist/vendor-katex.css +1 -0
  178. package/dashboard/dist/vendor-katex.js +258 -0
  179. package/dashboard/dist/vendor-katex.js.map +1 -0
  180. package/dashboard/dist/vendor-markdown.js +36 -0
  181. package/dashboard/dist/vendor-markdown.js.map +1 -0
  182. package/dashboard/dist/vendor-prism.js +15 -0
  183. package/dashboard/dist/vendor-prism.js.map +1 -0
  184. package/dashboard/dist/vendor-react.js +50 -0
  185. package/dashboard/dist/vendor-react.js.map +1 -0
  186. package/dashboard/index.html +4 -3
  187. package/dist/cli/{acp-WFQIC6SO.js → acp-6B25WIFF.js} +48 -49
  188. package/dist/cli/acp-6B25WIFF.js.map +1 -0
  189. package/dist/cli/chat-7WASPB4O.js +50 -0
  190. package/dist/cli/{chunk-QF32ROX2.js → chunk-3KRRTLC5.js} +955 -788
  191. package/dist/cli/chunk-3KRRTLC5.js.map +1 -0
  192. package/dist/cli/{chunk-TEDWJKEI.js → chunk-3RNFYDDM.js} +11 -27
  193. package/dist/cli/chunk-3RNFYDDM.js.map +1 -0
  194. package/dist/cli/{chunk-ZWHSHFDP.js → chunk-6IUMTRFP.js} +35 -7
  195. package/dist/cli/chunk-6IUMTRFP.js.map +1 -0
  196. package/dist/cli/{chunk-GNS7BAT2.js → chunk-7WITYWKN.js} +2 -2
  197. package/dist/cli/{chunk-HIYTRCSW.js → chunk-7YPMTE3U.js} +65 -28
  198. package/dist/cli/chunk-7YPMTE3U.js.map +1 -0
  199. package/dist/cli/{chunk-DFX5ZH5L.js → chunk-AAHB2PFX.js} +2 -2
  200. package/dist/cli/{chunk-PB3MAFEI.js → chunk-AJIZ5KFK.js} +3 -3
  201. package/dist/cli/{chunk-U5XQDCK7.js → chunk-ALCOQP6R.js} +10 -9
  202. package/dist/cli/chunk-ALCOQP6R.js.map +1 -0
  203. package/dist/cli/{chunk-6OWJV3YW.js → chunk-CAGKEGNE.js} +1 -2
  204. package/dist/cli/{chunk-JNTMOX7G.js → chunk-ENFBF6HI.js} +15 -3
  205. package/dist/cli/chunk-ENFBF6HI.js.map +1 -0
  206. package/dist/cli/{chunk-J2IHQGPQ.js → chunk-EZ57UEZQ.js} +2 -2
  207. package/dist/cli/{chunk-QX5TWXRZ.js → chunk-FQSQFCBI.js} +41 -2
  208. package/dist/cli/chunk-FQSQFCBI.js.map +1 -0
  209. package/dist/cli/{chunk-ZAEJWKXB.js → chunk-GMSAB2TC.js} +2 -2
  210. package/dist/cli/{chunk-MQWO32ZD.js → chunk-GPUH2BNM.js} +123 -286
  211. package/dist/cli/chunk-GPUH2BNM.js.map +1 -0
  212. package/dist/cli/{chunk-7AST3QQ3.js → chunk-I4Q3QT4W.js} +2 -2
  213. package/dist/cli/{chunk-O5LIHAMP.js → chunk-I6FBSTTR.js} +3 -3
  214. package/dist/cli/{chunk-AWEULQG6.js → chunk-IBRTU5WO.js} +25 -15
  215. package/dist/cli/{chunk-AWEULQG6.js.map → chunk-IBRTU5WO.js.map} +1 -1
  216. package/dist/cli/{chunk-RRXUIPWG.js → chunk-IK6WWRIX.js} +1 -1
  217. package/dist/cli/chunk-IK6WWRIX.js.map +1 -0
  218. package/dist/cli/{chunk-WMTMMSXU.js → chunk-MXWPAPZW.js} +315 -233
  219. package/dist/cli/chunk-MXWPAPZW.js.map +1 -0
  220. package/dist/cli/{chunk-7JTKBJ2G.js → chunk-NLRC3DWQ.js} +3 -3
  221. package/dist/cli/{chunk-PXBQ6IZ7.js → chunk-OPGWCKKU.js} +2 -2
  222. package/dist/cli/{chunk-23ZPCIPR.js → chunk-OWA42BKS.js} +21 -20
  223. package/dist/cli/chunk-OWA42BKS.js.map +1 -0
  224. package/dist/cli/{chunk-YEF7C4XI.js → chunk-PYIZZAVQ.js} +102 -94
  225. package/dist/cli/chunk-PYIZZAVQ.js.map +1 -0
  226. package/dist/cli/{chunk-EQATK2L2.js → chunk-SVD4UPRQ.js} +4 -3
  227. package/dist/cli/chunk-SVD4UPRQ.js.map +1 -0
  228. package/dist/cli/{chunk-PEMG6CUB.js → chunk-TX652NBA.js} +2 -2
  229. package/dist/cli/{chunk-W46ZMNKO.js → chunk-VVMY4M7J.js} +21 -2
  230. package/dist/cli/chunk-VVMY4M7J.js.map +1 -0
  231. package/dist/cli/{chunk-TAIKVL35.js → chunk-WSBFVOCO.js} +2 -2
  232. package/dist/cli/{chunk-ASOLXV67.js → chunk-X2BQZQEE.js} +3 -3
  233. package/dist/cli/{chunk-E5WCLUIU.js → chunk-XJZWMU5P.js} +2 -2
  234. package/dist/cli/{chunk-MGTBP7GG.js → chunk-XWPZHWC2.js} +20 -7
  235. package/dist/cli/chunk-XWPZHWC2.js.map +1 -0
  236. package/dist/cli/{chunk-JGTX4RRQ.js → chunk-ZAXMJANP.js} +2 -2
  237. package/dist/cli/{code-R4IHI7SR.js → code-TBK2TASK.js} +49 -57
  238. package/dist/cli/code-TBK2TASK.js.map +1 -0
  239. package/dist/cli/{commands-DRHFCYMO.js → commands-NXTKSQTN.js} +4 -4
  240. package/dist/cli/{commit-AG5KB4YP.js → commit-IR5SPP7A.js} +7 -8
  241. package/dist/cli/commit-IR5SPP7A.js.map +1 -0
  242. package/dist/cli/config-XK5WQGTS.js +194 -0
  243. package/dist/cli/{desktop-JGL6GORA.js → desktop-5NTQBADL.js} +200 -113
  244. package/dist/cli/desktop-5NTQBADL.js.map +1 -0
  245. package/dist/cli/{diff-4Z7ETWZO.js → diff-JNYX5BSZ.js} +8 -8
  246. package/dist/cli/{doctor-VA3RHQLB.js → doctor-IKYLUFXX.js} +11 -11
  247. package/dist/cli/{events-VRYXOSKI.js → events-HSC57ONU.js} +12 -8
  248. package/dist/cli/{events-VRYXOSKI.js.map → events-HSC57ONU.js.map} +1 -1
  249. package/dist/cli/index.js +87 -84
  250. package/dist/cli/index.js.map +1 -1
  251. package/dist/cli/{mcp-LZO4HXFA.js → mcp-BDJJWOCD.js} +3 -3
  252. package/dist/cli/{mcp-browse-C3GXVMYZ.js → mcp-browse-NJRZDI6V.js} +8 -8
  253. package/dist/cli/{mcp-inspect-ZMYUNFDS.js → mcp-inspect-Y62NWZQL.js} +7 -6
  254. package/dist/cli/mcp-inspect-Y62NWZQL.js.map +1 -0
  255. package/dist/cli/{prompt-MC3U5KRP.js → prompt-UTOIFUQC.js} +5 -5
  256. package/dist/cli/{prune-sessions-OEPFH4N6.js → prune-sessions-UCUD4XAP.js} +4 -4
  257. package/dist/cli/{replay-4TP7ZUMZ.js → replay-VVIN64MN.js} +10 -19
  258. package/dist/cli/replay-VVIN64MN.js.map +1 -0
  259. package/dist/cli/{run-6MXQYBOE.js → run-76OBDZFB.js} +28 -25
  260. package/dist/cli/run-76OBDZFB.js.map +1 -0
  261. package/dist/cli/{server-Z3IMJNNI.js → server-SZZDKTH2.js} +404 -163
  262. package/dist/cli/server-SZZDKTH2.js.map +1 -0
  263. package/dist/cli/{sessions-NXQ5SAV7.js → sessions-FZTGRCM5.js} +18 -18
  264. package/dist/cli/{setup-LHZELI6I.js → setup-4UNENGOE.js} +14 -40
  265. package/dist/cli/setup-4UNENGOE.js.map +1 -0
  266. package/dist/cli/{stats-SUIJ3QWY.js → stats-F4NDOD7D.js} +6 -6
  267. package/dist/cli/stats-F4NDOD7D.js.map +1 -0
  268. package/dist/cli/version-LUVTWHLL.js +33 -0
  269. package/dist/index.d.ts +325 -299
  270. package/dist/index.js +438 -528
  271. package/dist/index.js.map +1 -1
  272. package/package.json +5 -3
  273. package/dist/cli/acp-WFQIC6SO.js.map +0 -1
  274. package/dist/cli/chat-D32JGNVH.js +0 -51
  275. package/dist/cli/chunk-23ZPCIPR.js.map +0 -1
  276. package/dist/cli/chunk-EQATK2L2.js.map +0 -1
  277. package/dist/cli/chunk-HIYTRCSW.js.map +0 -1
  278. package/dist/cli/chunk-JNTMOX7G.js.map +0 -1
  279. package/dist/cli/chunk-LGEKVMMV.js +0 -59
  280. package/dist/cli/chunk-LGEKVMMV.js.map +0 -1
  281. package/dist/cli/chunk-MGTBP7GG.js.map +0 -1
  282. package/dist/cli/chunk-MQWO32ZD.js.map +0 -1
  283. package/dist/cli/chunk-QF32ROX2.js.map +0 -1
  284. package/dist/cli/chunk-QX5TWXRZ.js.map +0 -1
  285. package/dist/cli/chunk-RRXUIPWG.js.map +0 -1
  286. package/dist/cli/chunk-TEDWJKEI.js.map +0 -1
  287. package/dist/cli/chunk-U5XQDCK7.js.map +0 -1
  288. package/dist/cli/chunk-W46ZMNKO.js.map +0 -1
  289. package/dist/cli/chunk-WMTMMSXU.js.map +0 -1
  290. package/dist/cli/chunk-YEF7C4XI.js.map +0 -1
  291. package/dist/cli/chunk-ZWHSHFDP.js.map +0 -1
  292. package/dist/cli/code-R4IHI7SR.js.map +0 -1
  293. package/dist/cli/commit-AG5KB4YP.js.map +0 -1
  294. package/dist/cli/desktop-JGL6GORA.js.map +0 -1
  295. package/dist/cli/mcp-inspect-ZMYUNFDS.js.map +0 -1
  296. package/dist/cli/replay-4TP7ZUMZ.js.map +0 -1
  297. package/dist/cli/run-6MXQYBOE.js.map +0 -1
  298. package/dist/cli/server-Z3IMJNNI.js.map +0 -1
  299. package/dist/cli/setup-LHZELI6I.js.map +0 -1
  300. package/dist/cli/version-BIFONEUB.js +0 -33
  301. /package/dist/cli/{chat-D32JGNVH.js.map → chat-7WASPB4O.js.map} +0 -0
  302. /package/dist/cli/{chunk-GNS7BAT2.js.map → chunk-7WITYWKN.js.map} +0 -0
  303. /package/dist/cli/{chunk-DFX5ZH5L.js.map → chunk-AAHB2PFX.js.map} +0 -0
  304. /package/dist/cli/{chunk-PB3MAFEI.js.map → chunk-AJIZ5KFK.js.map} +0 -0
  305. /package/dist/cli/{chunk-6OWJV3YW.js.map → chunk-CAGKEGNE.js.map} +0 -0
  306. /package/dist/cli/{chunk-J2IHQGPQ.js.map → chunk-EZ57UEZQ.js.map} +0 -0
  307. /package/dist/cli/{chunk-ZAEJWKXB.js.map → chunk-GMSAB2TC.js.map} +0 -0
  308. /package/dist/cli/{chunk-7AST3QQ3.js.map → chunk-I4Q3QT4W.js.map} +0 -0
  309. /package/dist/cli/{chunk-O5LIHAMP.js.map → chunk-I6FBSTTR.js.map} +0 -0
  310. /package/dist/cli/{chunk-7JTKBJ2G.js.map → chunk-NLRC3DWQ.js.map} +0 -0
  311. /package/dist/cli/{chunk-PXBQ6IZ7.js.map → chunk-OPGWCKKU.js.map} +0 -0
  312. /package/dist/cli/{chunk-PEMG6CUB.js.map → chunk-TX652NBA.js.map} +0 -0
  313. /package/dist/cli/{chunk-TAIKVL35.js.map → chunk-WSBFVOCO.js.map} +0 -0
  314. /package/dist/cli/{chunk-ASOLXV67.js.map → chunk-X2BQZQEE.js.map} +0 -0
  315. /package/dist/cli/{chunk-E5WCLUIU.js.map → chunk-XJZWMU5P.js.map} +0 -0
  316. /package/dist/cli/{chunk-JGTX4RRQ.js.map → chunk-ZAXMJANP.js.map} +0 -0
  317. /package/dist/cli/{commands-DRHFCYMO.js.map → commands-NXTKSQTN.js.map} +0 -0
  318. /package/dist/cli/{doctor-VA3RHQLB.js.map → config-XK5WQGTS.js.map} +0 -0
  319. /package/dist/cli/{diff-4Z7ETWZO.js.map → diff-JNYX5BSZ.js.map} +0 -0
  320. /package/dist/cli/{prompt-MC3U5KRP.js.map → doctor-IKYLUFXX.js.map} +0 -0
  321. /package/dist/cli/{mcp-LZO4HXFA.js.map → mcp-BDJJWOCD.js.map} +0 -0
  322. /package/dist/cli/{mcp-browse-C3GXVMYZ.js.map → mcp-browse-NJRZDI6V.js.map} +0 -0
  323. /package/dist/cli/{stats-SUIJ3QWY.js.map → prompt-UTOIFUQC.js.map} +0 -0
  324. /package/dist/cli/{prune-sessions-OEPFH4N6.js.map → prune-sessions-UCUD4XAP.js.map} +0 -0
  325. /package/dist/cli/{sessions-NXQ5SAV7.js.map → sessions-FZTGRCM5.js.map} +0 -0
  326. /package/dist/cli/{version-BIFONEUB.js.map → version-LUVTWHLL.js.map} +0 -0
@@ -1756,126 +1756,9 @@ var require_picomatch2 = __commonJS({
1756
1756
  }
1757
1757
  });
1758
1758
 
1759
- // src/mcp/shell-split.ts
1760
- function shellSplit(input) {
1761
- const tokens = [];
1762
- let cur = "";
1763
- let quote = null;
1764
- let i = 0;
1765
- const s = input;
1766
- while (i < s.length) {
1767
- const ch = s[i];
1768
- if (quote) {
1769
- if (ch === quote) {
1770
- quote = null;
1771
- i++;
1772
- continue;
1773
- }
1774
- if (ch === "\\" && quote === '"' && i + 1 < s.length) {
1775
- cur += s[i + 1];
1776
- i += 2;
1777
- continue;
1778
- }
1779
- cur += ch;
1780
- i++;
1781
- continue;
1782
- }
1783
- if (ch === '"' || ch === "'") {
1784
- quote = ch;
1785
- i++;
1786
- continue;
1787
- }
1788
- if (ch === " " || ch === " ") {
1789
- if (cur.length > 0) {
1790
- tokens.push(cur);
1791
- cur = "";
1792
- }
1793
- i++;
1794
- continue;
1795
- }
1796
- cur += ch;
1797
- i++;
1798
- }
1799
- if (quote) {
1800
- throw new Error(
1801
- `shellSplit: unterminated ${quote === '"' ? "double" : "single"} quote in input`
1802
- );
1803
- }
1804
- if (cur.length > 0) tokens.push(cur);
1805
- return tokens;
1806
- }
1807
-
1808
- // src/mcp/spec.ts
1809
- function getMcpServerEnv(spec) {
1810
- return spec.transport === "stdio" ? spec.env : void 0;
1811
- }
1812
- function getMcpServerHeaders(spec) {
1813
- return spec.transport !== "stdio" ? spec.headers : void 0;
1814
- }
1815
- function overlayMatchedSpec(parsed, matched) {
1816
- switch (parsed.transport) {
1817
- case "stdio":
1818
- return matched ? { ...parsed, disabled: matched.disabled, env: getMcpServerEnv(matched) } : { ...parsed };
1819
- case "sse":
1820
- return matched ? { ...parsed, disabled: matched.disabled, headers: getMcpServerHeaders(matched) } : { ...parsed };
1821
- case "streamable-http":
1822
- return matched ? { ...parsed, disabled: matched.disabled, headers: getMcpServerHeaders(matched) } : { ...parsed };
1823
- }
1824
- }
1825
- function specToRaw(spec) {
1826
- if (spec.transport === "stdio") {
1827
- const args = spec.args.map((a) => {
1828
- if (a.includes(" ") || a.includes('"') || a.includes(" ")) {
1829
- return `"${a.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;
1830
- }
1831
- return a;
1832
- }).join(" ");
1833
- const body = args ? `${spec.command} ${args}` : spec.command;
1834
- return spec.name ? `${spec.name}=${body}` : body;
1835
- }
1836
- if (spec.transport === "sse") {
1837
- return spec.name ? `${spec.name}=${spec.url}` : spec.url;
1838
- }
1839
- return spec.name ? `${spec.name}=streamable+${spec.url}` : `streamable+${spec.url}`;
1840
- }
1841
- var NAME_PREFIX = /^([a-zA-Z_][a-zA-Z0-9_-]*)=(.*)$/;
1842
- var HTTP_URL = /^https?:\/\//i;
1843
- var STREAMABLE_PREFIX = /^streamable\+(https?:\/\/.+)$/i;
1844
- function parseMcpSpec(input) {
1845
- const trimmed = input.trim();
1846
- if (!trimmed) {
1847
- throw new Error("empty MCP spec");
1848
- }
1849
- const nameMatch = NAME_PREFIX.exec(trimmed);
1850
- const name = nameMatch ? nameMatch[1] : null;
1851
- const body = (nameMatch ? nameMatch[2] : trimmed).trim();
1852
- if (!body) {
1853
- throw new Error(`MCP spec has name but no command: ${input}`);
1854
- }
1855
- const streamMatch = STREAMABLE_PREFIX.exec(body);
1856
- if (streamMatch) {
1857
- return { transport: "streamable-http", name, url: streamMatch[1] };
1858
- }
1859
- if (HTTP_URL.test(body)) {
1860
- return { transport: "sse", name, url: body };
1861
- }
1862
- const argv = shellSplit(body);
1863
- if (argv.length === 0) {
1864
- throw new Error(`MCP spec has name but no command: ${input}`);
1865
- }
1866
- const [command, ...args] = argv;
1867
- return { transport: "stdio", name, command, args };
1868
- }
1869
-
1870
1759
  // src/config.ts
1871
- import {
1872
- appendFileSync,
1873
- chmodSync,
1874
- mkdirSync,
1875
- readFileSync,
1876
- renameSync,
1877
- writeFileSync
1878
- } from "fs";
1760
+ import { randomBytes } from "crypto";
1761
+ import { chmodSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "fs";
1879
1762
  import { homedir } from "os";
1880
1763
  import { dirname, isAbsolute, join, resolve } from "path";
1881
1764
 
@@ -16418,39 +16301,6 @@ function card(fg, tone) {
16418
16301
  function defineTheme(base) {
16419
16302
  return { ...base, card: card(base.fg, base.tone) };
16420
16303
  }
16421
- var githubDark = defineTheme({
16422
- fg: {
16423
- strong: "#e6edf3",
16424
- body: "#c9d1d9",
16425
- sub: "#8b949e",
16426
- meta: "#6e7681",
16427
- faint: "#484f58"
16428
- },
16429
- tone: {
16430
- brand: "#79c0ff",
16431
- accent: "#d2a8ff",
16432
- violet: "#b395f5",
16433
- ok: "#7ee787",
16434
- warn: "#f0b07d",
16435
- err: "#ff8b81",
16436
- info: "#79c0ff"
16437
- },
16438
- toneActive: {
16439
- brand: "#a5d6ff",
16440
- accent: "#e2c5ff",
16441
- violet: "#c8aaff",
16442
- ok: "#a8f5ad",
16443
- warn: "#ffc99e",
16444
- err: "#ffaba3",
16445
- info: "#a5d6ff"
16446
- },
16447
- surface: {
16448
- bg: "#0a0c10",
16449
- bgInput: "#0d1015",
16450
- bgCode: "#06080c",
16451
- bgElev: "#11141a"
16452
- }
16453
- });
16454
16304
  var dark = defineTheme({
16455
16305
  fg: {
16456
16306
  strong: "#f4f7fb",
@@ -16479,7 +16329,7 @@ var dark = defineTheme({
16479
16329
  },
16480
16330
  surface: {
16481
16331
  bg: "#0b1020",
16482
- bgInput: "#111827",
16332
+ bgInput: "#0f172a",
16483
16333
  bgCode: "#080c16",
16484
16334
  bgElev: "#151d2f"
16485
16335
  }
@@ -16512,12 +16362,12 @@ var light = defineTheme({
16512
16362
  },
16513
16363
  surface: {
16514
16364
  bg: "#ffffff",
16515
- bgInput: "#f8fafc",
16365
+ bgInput: "#f1f5f9",
16516
16366
  bgCode: "#f3f4f6",
16517
16367
  bgElev: "#eef2f7"
16518
16368
  }
16519
16369
  });
16520
- var tokyoNight = defineTheme({
16370
+ var midnight = defineTheme({
16521
16371
  fg: {
16522
16372
  strong: "#c0caf5",
16523
16373
  body: "#a9b1d6",
@@ -16550,37 +16400,37 @@ var tokyoNight = defineTheme({
16550
16400
  bgElev: "#24283b"
16551
16401
  }
16552
16402
  });
16553
- var githubLight = defineTheme({
16403
+ var deepBlue = defineTheme({
16554
16404
  fg: {
16555
- strong: "#1f2328",
16556
- body: "#24292f",
16557
- sub: "#57606a",
16558
- meta: "#6e7781",
16559
- faint: "#8c959f"
16405
+ strong: "#ffffff",
16406
+ body: "#e0e0e0",
16407
+ sub: "#b0b0b0",
16408
+ meta: "#808080",
16409
+ faint: "#606060"
16560
16410
  },
16561
16411
  tone: {
16562
- brand: "#0969da",
16563
- accent: "#8250df",
16564
- violet: "#6639ba",
16565
- ok: "#1a7f37",
16566
- warn: "#9a6700",
16567
- err: "#cf222e",
16568
- info: "#0969da"
16412
+ brand: "#0153e5",
16413
+ accent: "#4d94ff",
16414
+ violet: "#7b68ee",
16415
+ ok: "#4caf50",
16416
+ warn: "#ff9800",
16417
+ err: "#f44336",
16418
+ info: "#2196f3"
16569
16419
  },
16570
16420
  toneActive: {
16571
- brand: "#0550ae",
16572
- accent: "#6639ba",
16573
- violet: "#512a97",
16574
- ok: "#116329",
16575
- warn: "#7d4e00",
16576
- err: "#a40e26",
16577
- info: "#0550ae"
16421
+ brand: "#4d94ff",
16422
+ accent: "#80b3ff",
16423
+ violet: "#9b8bff",
16424
+ ok: "#66bb6a",
16425
+ warn: "#ffb74d",
16426
+ err: "#ef5350",
16427
+ info: "#42a5f5"
16578
16428
  },
16579
16429
  surface: {
16580
- bg: "#ffffff",
16581
- bgInput: "#f6f8fa",
16582
- bgCode: "#f6f8fa",
16583
- bgElev: "#eaeef2"
16430
+ bg: "#0a0a0a",
16431
+ bgInput: "#1e1e1e",
16432
+ bgCode: "#141414",
16433
+ bgElev: "#252525"
16584
16434
  }
16585
16435
  });
16586
16436
  var highContrast = defineTheme({
@@ -16617,20 +16467,21 @@ var highContrast = defineTheme({
16617
16467
  }
16618
16468
  });
16619
16469
  var THEMES = {
16620
- default: githubDark,
16621
16470
  dark,
16622
16471
  light,
16623
- "tokyo-night": tokyoNight,
16624
- "github-dark": githubDark,
16625
- "github-light": githubLight,
16472
+ midnight,
16473
+ "deep-blue": deepBlue,
16626
16474
  "high-contrast": highContrast
16627
16475
  };
16628
- var DEFAULT_THEME_NAME = "default";
16476
+ var DEFAULT_THEME_NAME = "dark";
16629
16477
  function isThemeName(value) {
16630
16478
  return Object.prototype.hasOwnProperty.call(THEMES, value);
16631
16479
  }
16632
16480
  function resolveThemeName(value) {
16633
16481
  if (!value || value === "auto") return DEFAULT_THEME_NAME;
16482
+ if (value === "default" || value === "github-dark") return "dark";
16483
+ if (value === "github-light") return "light";
16484
+ if (value === "tokyo-night") return "midnight";
16634
16485
  return isThemeName(value) ? value : DEFAULT_THEME_NAME;
16635
16486
  }
16636
16487
  function listThemeNames() {
@@ -16812,6 +16663,117 @@ function compileFilters(cfg) {
16812
16663
  };
16813
16664
  }
16814
16665
 
16666
+ // src/mcp/shell-split.ts
16667
+ function shellSplit(input) {
16668
+ const tokens = [];
16669
+ let cur = "";
16670
+ let quote = null;
16671
+ let i = 0;
16672
+ const s = input;
16673
+ while (i < s.length) {
16674
+ const ch = s[i];
16675
+ if (quote) {
16676
+ if (ch === quote) {
16677
+ quote = null;
16678
+ i++;
16679
+ continue;
16680
+ }
16681
+ if (ch === "\\" && quote === '"' && i + 1 < s.length) {
16682
+ cur += s[i + 1];
16683
+ i += 2;
16684
+ continue;
16685
+ }
16686
+ cur += ch;
16687
+ i++;
16688
+ continue;
16689
+ }
16690
+ if (ch === '"' || ch === "'") {
16691
+ quote = ch;
16692
+ i++;
16693
+ continue;
16694
+ }
16695
+ if (ch === " " || ch === " ") {
16696
+ if (cur.length > 0) {
16697
+ tokens.push(cur);
16698
+ cur = "";
16699
+ }
16700
+ i++;
16701
+ continue;
16702
+ }
16703
+ cur += ch;
16704
+ i++;
16705
+ }
16706
+ if (quote) {
16707
+ throw new Error(
16708
+ `shellSplit: unterminated ${quote === '"' ? "double" : "single"} quote in input`
16709
+ );
16710
+ }
16711
+ if (cur.length > 0) tokens.push(cur);
16712
+ return tokens;
16713
+ }
16714
+
16715
+ // src/mcp/spec.ts
16716
+ function getMcpServerEnv(spec) {
16717
+ return spec.transport === "stdio" ? spec.env : void 0;
16718
+ }
16719
+ function getMcpServerHeaders(spec) {
16720
+ return spec.transport !== "stdio" ? spec.headers : void 0;
16721
+ }
16722
+ function overlayMatchedSpec(parsed, matched) {
16723
+ switch (parsed.transport) {
16724
+ case "stdio":
16725
+ return matched ? { ...parsed, disabled: matched.disabled, env: getMcpServerEnv(matched) } : { ...parsed };
16726
+ case "sse":
16727
+ return matched ? { ...parsed, disabled: matched.disabled, headers: getMcpServerHeaders(matched) } : { ...parsed };
16728
+ case "streamable-http":
16729
+ return matched ? { ...parsed, disabled: matched.disabled, headers: getMcpServerHeaders(matched) } : { ...parsed };
16730
+ }
16731
+ }
16732
+ function specToRaw(spec) {
16733
+ if (spec.transport === "stdio") {
16734
+ const args = spec.args.map((a) => {
16735
+ if (a.includes(" ") || a.includes('"') || a.includes(" ")) {
16736
+ return `"${a.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;
16737
+ }
16738
+ return a;
16739
+ }).join(" ");
16740
+ const body = args ? `${spec.command} ${args}` : spec.command;
16741
+ return spec.name ? `${spec.name}=${body}` : body;
16742
+ }
16743
+ if (spec.transport === "sse") {
16744
+ return spec.name ? `${spec.name}=${spec.url}` : spec.url;
16745
+ }
16746
+ return spec.name ? `${spec.name}=streamable+${spec.url}` : `streamable+${spec.url}`;
16747
+ }
16748
+ var NAME_PREFIX = /^([a-zA-Z_][a-zA-Z0-9_-]*)=(.*)$/;
16749
+ var HTTP_URL = /^https?:\/\//i;
16750
+ var STREAMABLE_PREFIX = /^streamable\+(https?:\/\/.+)$/i;
16751
+ function parseMcpSpec(input) {
16752
+ const trimmed = input.trim();
16753
+ if (!trimmed) {
16754
+ throw new Error("empty MCP spec");
16755
+ }
16756
+ const nameMatch = NAME_PREFIX.exec(trimmed);
16757
+ const name = nameMatch ? nameMatch[1] : null;
16758
+ const body = (nameMatch ? nameMatch[2] : trimmed).trim();
16759
+ if (!body) {
16760
+ throw new Error(`MCP spec has name but no command: ${input}`);
16761
+ }
16762
+ const streamMatch = STREAMABLE_PREFIX.exec(body);
16763
+ if (streamMatch) {
16764
+ return { transport: "streamable-http", name, url: streamMatch[1] };
16765
+ }
16766
+ if (HTTP_URL.test(body)) {
16767
+ return { transport: "sse", name, url: body };
16768
+ }
16769
+ const argv = shellSplit(body);
16770
+ if (argv.length === 0) {
16771
+ throw new Error(`MCP spec has name but no command: ${input}`);
16772
+ }
16773
+ const [command, ...args] = argv;
16774
+ return { transport: "stdio", name, command, args };
16775
+ }
16776
+
16815
16777
  // src/qq/access.ts
16816
16778
  function normalizeQQOpenId(value) {
16817
16779
  const trimmed = value?.trim();
@@ -16987,6 +16949,15 @@ function formatWait(ms) {
16987
16949
  }
16988
16950
 
16989
16951
  // src/config.ts
16952
+ var DEFAULT_MODEL = "deepseek-v4-flash";
16953
+ var SUPPORTED_OFFICIAL_MODELS = [
16954
+ "deepseek-v4-flash",
16955
+ "deepseek-v4-pro"
16956
+ ];
16957
+ var REASONING_EFFORT_VALUES = ["low", "medium", "high", "max"];
16958
+ function isReasoningEffort(value) {
16959
+ return value === "low" || value === "medium" || value === "high" || value === "max";
16960
+ }
16990
16961
  var BUILTIN_TYPE_DOCS = {
16991
16962
  user: "role / skills / preferences",
16992
16963
  feedback: "corrections or confirmed approaches",
@@ -17102,8 +17073,35 @@ function readConfig(path = defaultConfigPath()) {
17102
17073
  }
17103
17074
  return {};
17104
17075
  }
17076
+ function loadDashboardEnabled(noConfig = false, path = defaultConfigPath()) {
17077
+ if (noConfig) return true;
17078
+ const v = readConfig(path).dashboard?.enabled;
17079
+ return v !== false;
17080
+ }
17081
+ function ensureDashboardToken(path = defaultConfigPath()) {
17082
+ const cfg = readConfig(path);
17083
+ const existing = cfg.dashboard?.token?.trim();
17084
+ if (existing && existing.length >= 16) return existing;
17085
+ const minted = randomBytes(32).toString("hex");
17086
+ const next = { ...cfg, dashboard: { ...cfg.dashboard, token: minted } };
17087
+ writeConfig(next, path);
17088
+ return minted;
17089
+ }
17090
+ function saveDashboardPort(port, path = defaultConfigPath()) {
17091
+ if (!Number.isInteger(port) || port < 1 || port > 65535) return;
17092
+ const cfg = readConfig(path);
17093
+ if (cfg.dashboard?.port === port) return;
17094
+ const next = { ...cfg, dashboard: { ...cfg.dashboard, port } };
17095
+ writeConfig(next, path);
17096
+ }
17097
+ function clearDashboardToken(path = defaultConfigPath()) {
17098
+ const cfg = readConfig(path);
17099
+ if (!cfg.dashboard?.token) return;
17100
+ const { token: _drop, ...rest } = cfg.dashboard;
17101
+ const next = { ...cfg, dashboard: rest };
17102
+ writeConfig(next, path);
17103
+ }
17105
17104
  function writeConfig(cfg, path = defaultConfigPath()) {
17106
- debugLogConfigWrite(cfg, path);
17107
17105
  mkdirSync(dirname(path), { recursive: true });
17108
17106
  const tmp = `${path}.${process.pid}.tmp`;
17109
17107
  writeFileSync(tmp, JSON.stringify(cfg, null, 2), "utf8");
@@ -17113,26 +17111,19 @@ function writeConfig(cfg, path = defaultConfigPath()) {
17113
17111
  }
17114
17112
  renameSync(tmp, path);
17115
17113
  }
17116
- function debugLogConfigWrite(cfg, configPath) {
17117
- const debugPath = process.env.REASONIX_DEBUG_PRESET;
17118
- if (!debugPath) return;
17119
- try {
17120
- const stack = new Error("trace").stack ?? "";
17121
- const keys = Object.keys(cfg).sort().join(",");
17122
- const presetField = cfg.preset === void 0 ? "(absent)" : JSON.stringify(cfg.preset);
17123
- const line = `${(/* @__PURE__ */ new Date()).toISOString()} writeConfig pid=${process.pid} \u2192 ${configPath}
17124
- keys=[${keys}]
17125
- preset=${presetField}
17126
- ${stack.split("\n").slice(1, 10).map((l) => ` ${l.trim()}`).join("\n")}
17127
-
17128
- `;
17129
- appendFileSync(debugPath, line);
17130
- } catch {
17131
- }
17132
- }
17133
17114
  function loadLanguage(path = defaultConfigPath()) {
17134
17115
  return readConfig(path).lang;
17135
17116
  }
17117
+ function mcpEnvFor(serverName, cfg) {
17118
+ if (!serverName) return void 0;
17119
+ const entry = cfg.mcpEnv?.[serverName];
17120
+ if (!entry) return void 0;
17121
+ const filtered = {};
17122
+ for (const [k, v] of Object.entries(entry)) {
17123
+ if (typeof v === "string" && v.length > 0) filtered[k] = v;
17124
+ }
17125
+ return Object.keys(filtered).length > 0 ? filtered : void 0;
17126
+ }
17136
17127
  function inferMcpTransport(cfg) {
17137
17128
  const declared = cfg.transport ?? cfg.type;
17138
17129
  if (declared === "http") return "streamable-http";
@@ -17238,13 +17229,26 @@ function saveLanguage(lang, path = defaultConfigPath()) {
17238
17229
  cfg.lang = lang;
17239
17230
  writeConfig(cfg, path);
17240
17231
  }
17232
+ function loadEndpoint(path = defaultConfigPath()) {
17233
+ if (process.env.DEEPSEEK_BASE_URL) {
17234
+ return { baseUrl: process.env.DEEPSEEK_BASE_URL, apiKey: process.env.DEEPSEEK_API_KEY };
17235
+ }
17236
+ const cfg = readConfig(path);
17237
+ if (cfg.baseUrl) {
17238
+ return { baseUrl: cfg.baseUrl, apiKey: cfg.apiKey };
17239
+ }
17240
+ return { baseUrl: void 0, apiKey: process.env.DEEPSEEK_API_KEY ?? cfg.apiKey };
17241
+ }
17241
17242
  function loadApiKey(path = defaultConfigPath()) {
17242
- if (process.env.DEEPSEEK_API_KEY) return process.env.DEEPSEEK_API_KEY;
17243
- return readConfig(path).apiKey;
17243
+ return loadEndpoint(path).apiKey;
17244
17244
  }
17245
17245
  function loadBaseUrl(path = defaultConfigPath()) {
17246
- if (process.env.DEEPSEEK_BASE_URL) return process.env.DEEPSEEK_BASE_URL;
17247
- return readConfig(path).baseUrl;
17246
+ return loadEndpoint(path).baseUrl;
17247
+ }
17248
+ function bridgeEndpointEnv(path = defaultConfigPath()) {
17249
+ const ep = loadEndpoint(path);
17250
+ if (ep.apiKey) process.env.DEEPSEEK_API_KEY = ep.apiKey;
17251
+ if (ep.baseUrl) process.env.DEEPSEEK_BASE_URL = ep.baseUrl;
17248
17252
  }
17249
17253
  function isNonNegativeNumber(value) {
17250
17254
  return typeof value === "number" && Number.isFinite(value) && value >= 0;
@@ -17284,6 +17288,11 @@ function loadRateLimit(path = defaultConfigPath()) {
17284
17288
  if (typeof rpm !== "number" || !Number.isInteger(rpm) || rpm <= 0) return void 0;
17285
17289
  return { rpm };
17286
17290
  }
17291
+ function loadMouseWheelRows(path = defaultConfigPath()) {
17292
+ const raw = readConfig(path).mouseWheelRows;
17293
+ if (typeof raw !== "number" || !Number.isInteger(raw) || raw < 1) return void 0;
17294
+ return Math.min(raw, 10);
17295
+ }
17287
17296
  function loadToolRateLimit(path = defaultConfigPath()) {
17288
17297
  return normalizeToolRateLimitConfig(readConfig(path).toolRateLimit);
17289
17298
  }
@@ -17345,6 +17354,24 @@ function saveSkillPaths(paths, baseDir = process.cwd(), path = defaultConfigPath
17345
17354
  writeConfig(cfg, path);
17346
17355
  return normalized;
17347
17356
  }
17357
+ function loadSubagentModels(path = defaultConfigPath()) {
17358
+ const raw = readConfig(path).subagentModels;
17359
+ if (!raw || typeof raw !== "object") return {};
17360
+ const out = {};
17361
+ for (const [name, value] of Object.entries(raw)) {
17362
+ if (value === "flash" || value === "pro") out[name] = value;
17363
+ }
17364
+ return out;
17365
+ }
17366
+ function saveSubagentModels(map2, path = defaultConfigPath()) {
17367
+ const cfg = readConfig(path);
17368
+ const out = {};
17369
+ for (const [name, value] of Object.entries(map2)) {
17370
+ if (value === "flash" || value === "pro") out[name] = value;
17371
+ }
17372
+ cfg.subagentModels = Object.keys(out).length > 0 ? out : void 0;
17373
+ writeConfig(cfg, path);
17374
+ }
17348
17375
  function addSkillPath(skillPath, baseDir = process.cwd(), path = defaultConfigPath()) {
17349
17376
  const entry = normalizeSkillPathEntries([skillPath], baseDir)[0];
17350
17377
  if (!entry) return { error: "skill path is empty" };
@@ -17504,9 +17531,36 @@ function addProjectPathAllowed(rootDir, prefix, path = defaultConfigPath()) {
17504
17531
  cfg.projects[key].pathAllowed = [...existing, trimmed];
17505
17532
  writeConfig(cfg, path);
17506
17533
  }
17534
+ function removeProjectPathAllowed(rootDir, prefix, path = defaultConfigPath()) {
17535
+ const trimmed = prefix.trim();
17536
+ if (!trimmed) return false;
17537
+ const cfg = readConfig(path);
17538
+ const key = findProjectKey(cfg, rootDir);
17539
+ if (key === void 0) return false;
17540
+ const existing = cfg.projects?.[key]?.pathAllowed ?? [];
17541
+ if (!existing.includes(trimmed)) return false;
17542
+ const next = existing.filter((p) => p !== trimmed);
17543
+ if (!cfg.projects) cfg.projects = {};
17544
+ if (!cfg.projects[key]) cfg.projects[key] = {};
17545
+ cfg.projects[key].pathAllowed = next;
17546
+ writeConfig(cfg, path);
17547
+ return true;
17548
+ }
17549
+ function clearProjectPathAllowed(rootDir, path = defaultConfigPath()) {
17550
+ const cfg = readConfig(path);
17551
+ const key = findProjectKey(cfg, rootDir);
17552
+ if (key === void 0) return 0;
17553
+ const existing = cfg.projects?.[key]?.pathAllowed ?? [];
17554
+ if (existing.length === 0) return 0;
17555
+ if (!cfg.projects) cfg.projects = {};
17556
+ if (!cfg.projects[key]) cfg.projects[key] = {};
17557
+ cfg.projects[key].pathAllowed = [];
17558
+ writeConfig(cfg, path);
17559
+ return existing.length;
17560
+ }
17507
17561
  function loadEditMode(path = defaultConfigPath()) {
17508
17562
  const v = readConfig(path).editMode;
17509
- if (v === "auto" || v === "yolo") return v;
17563
+ if (v === "auto" || v === "yolo" || v === "plan") return v;
17510
17564
  return "review";
17511
17565
  }
17512
17566
  function saveEditMode(mode, path = defaultConfigPath()) {
@@ -17532,7 +17586,7 @@ function mouseClipboardHintShown(path = defaultConfigPath()) {
17532
17586
  }
17533
17587
  function loadReasoningEffort(path = defaultConfigPath()) {
17534
17588
  const v = readConfig(path).reasoningEffort;
17535
- return v === "high" ? "high" : "max";
17589
+ return isReasoningEffort(v) ? v : "high";
17536
17590
  }
17537
17591
  function loadTheme(path = defaultConfigPath()) {
17538
17592
  const value = readConfig(path).theme;
@@ -17554,6 +17608,22 @@ function saveReasoningEffort(effort, path = defaultConfigPath()) {
17554
17608
  cfg.reasoningEffort = effort;
17555
17609
  writeConfig(cfg, path);
17556
17610
  }
17611
+ function loadModel(path = defaultConfigPath()) {
17612
+ const cfg = readConfig(path);
17613
+ const raw = cfg.model;
17614
+ const trimmed = typeof raw === "string" ? raw.trim() : "";
17615
+ if (!trimmed) return DEFAULT_MODEL;
17616
+ const customEndpoint = cfg.baseUrl?.trim() || process.env.DEEPSEEK_BASE_URL;
17617
+ if (customEndpoint) return trimmed;
17618
+ return SUPPORTED_OFFICIAL_MODELS.includes(trimmed) ? trimmed : DEFAULT_MODEL;
17619
+ }
17620
+ function saveModel(model, path = defaultConfigPath()) {
17621
+ const trimmed = model.trim();
17622
+ if (!trimmed) return;
17623
+ const cfg = readConfig(path);
17624
+ cfg.model = trimmed;
17625
+ writeConfig(cfg, path);
17626
+ }
17557
17627
  function loadWorkspaceDir(path = defaultConfigPath()) {
17558
17628
  const v = readConfig(path).workspaceDir;
17559
17629
  return typeof v === "string" && v.trim() ? v : void 0;
@@ -17576,6 +17646,14 @@ function saveEditor(editor, path = defaultConfigPath()) {
17576
17646
  else cfg.editor = void 0;
17577
17647
  writeConfig(cfg, path);
17578
17648
  }
17649
+ function loadShowSystemEvents(path = defaultConfigPath()) {
17650
+ return readConfig(path).thread?.showSystemEvents !== false;
17651
+ }
17652
+ function saveShowSystemEvents(on, path = defaultConfigPath()) {
17653
+ const cfg = readConfig(path);
17654
+ cfg.thread = { ...cfg.thread ?? {}, showSystemEvents: on };
17655
+ writeConfig(cfg, path);
17656
+ }
17579
17657
  function loadRecentWorkspaces(path = defaultConfigPath()) {
17580
17658
  const v = readConfig(path).recentWorkspaces;
17581
17659
  return Array.isArray(v) ? v.filter((s) => typeof s === "string") : [];
@@ -17615,34 +17693,17 @@ function saveDesktopOpenTabs(tabs, path = defaultConfigPath()) {
17615
17693
  cfg.desktopOpenTabs = cleaned.length === 0 ? void 0 : cleaned;
17616
17694
  writeConfig(cfg, path);
17617
17695
  }
17618
- function loadPreset(path = defaultConfigPath()) {
17619
- return readConfig(path).preset;
17620
- }
17621
- function savePreset(preset, path = defaultConfigPath()) {
17622
- debugLogPresetWrite(preset, path);
17623
- const cfg = readConfig(path);
17624
- cfg.preset = preset;
17625
- writeConfig(cfg, path);
17626
- }
17627
- function debugLogPresetWrite(preset, configPath) {
17628
- const debugPath = process.env.REASONIX_DEBUG_PRESET;
17629
- if (!debugPath) return;
17630
- try {
17631
- const stack = new Error("trace").stack ?? "";
17632
- const line = `${(/* @__PURE__ */ new Date()).toISOString()} savePreset(${JSON.stringify(preset)}) \u2192 ${configPath}
17633
- ${stack.split("\n").slice(1, 8).map((l) => ` ${l.trim()}`).join("\n")}
17634
-
17635
- `;
17636
- appendFileSync(debugPath, line);
17637
- } catch {
17638
- }
17639
- }
17640
17696
  function loadIndexUserConfig(path = defaultConfigPath()) {
17641
17697
  return readConfig(path).index ?? {};
17642
17698
  }
17643
17699
  function loadIndexConfig(path = defaultConfigPath()) {
17644
17700
  return resolveIndexConfig(readConfig(path).index);
17645
17701
  }
17702
+ function saveIndexConfig(user, path = defaultConfigPath()) {
17703
+ const cfg = readConfig(path);
17704
+ cfg.index = user;
17705
+ writeConfig(cfg, path);
17706
+ }
17646
17707
  function loadSemanticEmbeddingUserConfig(path = defaultConfigPath()) {
17647
17708
  return normalizeSemanticEmbeddingUserConfig(readConfig(path).semantic);
17648
17709
  }
@@ -17832,6 +17893,10 @@ export {
17832
17893
  describeQQAccess,
17833
17894
  ToolRateLimiter,
17834
17895
  parseRateLimitedToolResult,
17896
+ DEFAULT_MODEL,
17897
+ SUPPORTED_OFFICIAL_MODELS,
17898
+ REASONING_EFFORT_VALUES,
17899
+ isReasoningEffort,
17835
17900
  loadMemoryTypeRegistry,
17836
17901
  memoryTypeDefaults,
17837
17902
  loadMetasoApiKey,
@@ -17840,22 +17905,34 @@ export {
17840
17905
  loadExaApiKey,
17841
17906
  defaultConfigPath,
17842
17907
  readConfig,
17908
+ loadDashboardEnabled,
17909
+ ensureDashboardToken,
17910
+ saveDashboardPort,
17911
+ clearDashboardToken,
17843
17912
  writeConfig,
17844
17913
  loadLanguage,
17914
+ mcpEnvFor,
17845
17915
  normalizeMcpConfig,
17846
17916
  saveLanguage,
17917
+ loadEndpoint,
17847
17918
  loadApiKey,
17848
17919
  loadBaseUrl,
17920
+ bridgeEndpointEnv,
17849
17921
  loadPricingOverride,
17850
17922
  loadProxyConfig,
17851
17923
  loadRateLimit,
17924
+ loadMouseWheelRows,
17852
17925
  loadToolRateLimit,
17853
17926
  saveBaseUrl,
17927
+ resolveSkillPath,
17854
17928
  normalizeSkillPathEntries,
17855
17929
  normalizeSkillPaths,
17856
17930
  resolveSkillPaths,
17857
17931
  loadSkillPaths,
17858
17932
  loadResolvedSkillPaths,
17933
+ saveSkillPaths,
17934
+ loadSubagentModels,
17935
+ saveSubagentModels,
17859
17936
  addSkillPath,
17860
17937
  removeSkillPath,
17861
17938
  searchEnabled,
@@ -17871,6 +17948,8 @@ export {
17871
17948
  trustProjectHooks,
17872
17949
  loadProjectPathAllowed,
17873
17950
  addProjectPathAllowed,
17951
+ removeProjectPathAllowed,
17952
+ clearProjectPathAllowed,
17874
17953
  loadEditMode,
17875
17954
  saveEditMode,
17876
17955
  loadEngineeringLifecycleMode,
@@ -17882,18 +17961,21 @@ export {
17882
17961
  resolveThemePreference,
17883
17962
  saveTheme,
17884
17963
  saveReasoningEffort,
17964
+ loadModel,
17965
+ saveModel,
17885
17966
  loadWorkspaceDir,
17886
17967
  saveWorkspaceDir,
17887
17968
  loadEditor,
17888
17969
  saveEditor,
17970
+ loadShowSystemEvents,
17971
+ saveShowSystemEvents,
17889
17972
  loadRecentWorkspaces,
17890
17973
  pushRecentWorkspace,
17891
17974
  loadDesktopOpenTabs,
17892
17975
  saveDesktopOpenTabs,
17893
- loadPreset,
17894
- savePreset,
17895
17976
  loadIndexUserConfig,
17896
17977
  loadIndexConfig,
17978
+ saveIndexConfig,
17897
17979
  loadSemanticEmbeddingUserConfig,
17898
17980
  saveSemanticEmbeddingConfig,
17899
17981
  resolveSemanticEmbeddingConfig,
@@ -17905,4 +17987,4 @@ export {
17905
17987
  loadQQConfig,
17906
17988
  saveQQConfig
17907
17989
  };
17908
- //# sourceMappingURL=chunk-WMTMMSXU.js.map
17990
+ //# sourceMappingURL=chunk-MXWPAPZW.js.map