@qwen-code/qwen-code 0.21.0 → 0.21.1-nightly.20260730.1643a6c9a

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 (417) hide show
  1. package/bundled/qc-helper/docs/configuration/model-providers.md +2 -0
  2. package/bundled/qc-helper/docs/configuration/settings.md +39 -28
  3. package/bundled/qc-helper/docs/features/channels/_meta.ts +2 -0
  4. package/bundled/qc-helper/docs/features/channels/github.md +117 -0
  5. package/bundled/qc-helper/docs/features/channels/gitlab.md +171 -0
  6. package/bundled/qc-helper/docs/features/channels/overview.md +61 -6
  7. package/bundled/qc-helper/docs/features/code-review.md +1 -1
  8. package/bundled/qc-helper/docs/features/hooks.md +70 -15
  9. package/bundled/qc-helper/docs/features/mcp.md +9 -1
  10. package/bundled/qc-helper/docs/features/scheduled-tasks.md +3 -1
  11. package/bundled/qc-helper/docs/features/sub-agents.md +20 -0
  12. package/bundled/qc-helper/docs/qwen-serve.md +11 -7
  13. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +2 -2
  14. package/bundled/qc-helper/docs/support/troubleshooting.md +2 -1
  15. package/bundled/review/DESIGN.md +19 -0
  16. package/bundled/review/SKILL.md +120 -61
  17. package/chunks/MaxSizedBox-H77LGFDG.js +86 -0
  18. package/chunks/{StandaloneSessionPicker-BIRMPLRD.js → StandaloneSessionPicker-NGKLCYX4.js} +68 -67
  19. package/chunks/{acp-startup-profiler-RV3IV562.js → acp-startup-profiler-DFVPFQ6C.js} +2 -2
  20. package/chunks/{acpAgent-6J2U72PQ.js → acpAgent-RUN53PRW.js} +1381 -543
  21. package/chunks/agent-4CFRD2OG.js +82 -0
  22. package/chunks/agent-headless-XPUCIZLL.js +76 -0
  23. package/chunks/{anthropicContentGenerator-75BKLTSP.js → anthropicContentGenerator-V2QOGVYD.js} +79 -27
  24. package/chunks/{artifact-tool-Y5T7GG7F.js → artifact-tool-6K6U7XYJ.js} +4 -4
  25. package/chunks/{askUserQuestion-2H6747FR.js → askUserQuestion-GD2IJJ7I.js} +4 -4
  26. package/chunks/bridge-B2YJLSLT.js +92 -0
  27. package/chunks/{build-RV63TIRH.js → build-GDBLPA24.js} +1 -1
  28. package/chunks/{ca-25EDXPFZ.js → ca-6W3SK7OQ.js} +6 -1
  29. package/chunks/channel-management-service-RAPKQK24.js +418 -0
  30. package/chunks/channel-settings-store-KJQKY6NN.js +89 -0
  31. package/chunks/{channel-worker-group-2ZD7TVAT.js → channel-worker-group-7SZ7MR3K.js} +11 -6
  32. package/chunks/{channel-worker-manager-4OA4BCGB.js → channel-worker-manager-RN5KJYPF.js} +11 -6
  33. package/chunks/{channel-worker-supervisor-V7KCFJTS.js → channel-worker-supervisor-CABBXYHK.js} +7 -5
  34. package/chunks/{chunk-M5JM7OSF.js → chunk-2DN4J57Y.js} +2 -3
  35. package/chunks/{chunk-6GMVPFB2.js → chunk-2IIJTXYF.js} +45 -16
  36. package/chunks/{chunk-BPJSQIJX.js → chunk-2J3OJGTL.js} +0 -2
  37. package/chunks/{chunk-EPDRMGT4.js → chunk-2LKVPASC.js} +4 -28
  38. package/chunks/{chunk-PWTZEM3C.js → chunk-2LQTH543.js} +3 -37
  39. package/chunks/{chunk-CIKQ7KKO.js → chunk-2Q4CZ3V6.js} +713 -419
  40. package/chunks/{chunk-HIJQF5B5.js → chunk-3L2SPEBH.js} +1 -1
  41. package/chunks/{chunk-JXJFVC6E.js → chunk-3QDXECUB.js} +46 -11
  42. package/chunks/{chunk-PSOO6YXD.js → chunk-3RMX26V7.js} +9 -7
  43. package/chunks/{chunk-PC6JANNU.js → chunk-4755HD5V.js} +4 -4
  44. package/chunks/{chunk-GSN55ZRI.js → chunk-4D3MHM5F.js} +19 -7
  45. package/chunks/{chunk-EBJQ6AXW.js → chunk-4FQ4OKOU.js} +260 -14
  46. package/chunks/{chunk-BIQWWWJN.js → chunk-4G2BISNC.js} +1 -1
  47. package/chunks/{chunk-IKYJHJNF.js → chunk-5EHIP3GX.js} +3 -3
  48. package/chunks/chunk-5IDU2UGL.js +2196 -0
  49. package/chunks/{chunk-DHHOYAPR.js → chunk-5TBMQLGG.js} +7 -7
  50. package/chunks/{chunk-A4UCTEB5.js → chunk-5WV5S2GT.js} +0 -1
  51. package/chunks/chunk-5YKDXHUY.js +463 -0
  52. package/chunks/{chunk-K36B6G2O.js → chunk-5ZEFGTII.js} +5 -5
  53. package/chunks/{chunk-K4XWPEWB.js → chunk-64LQLPL7.js} +4 -33
  54. package/chunks/{chunk-TGILQ3YH.js → chunk-6CH6PHMZ.js} +141 -64
  55. package/chunks/chunk-6FMJLI5M.js +1591 -0
  56. package/chunks/chunk-6MPDY6ZG.js +76 -0
  57. package/chunks/{chunk-2NH6DYI4.js → chunk-6OF62NPQ.js} +12 -12
  58. package/chunks/{chunk-JZA3JUDJ.js → chunk-6QIGFD5W.js} +1 -1
  59. package/chunks/{chunk-ETSW4KLJ.js → chunk-72E7TSGG.js} +2 -2
  60. package/chunks/{chunk-OHNBB4XR.js → chunk-75GFAX4R.js} +1 -1
  61. package/chunks/{chunk-UDX5OBWR.js → chunk-77IMMLN2.js} +94 -4
  62. package/chunks/{chunk-TEHGS6UP.js → chunk-7A4V5CJY.js} +154 -16
  63. package/chunks/{chunk-QAF7NMK7.js → chunk-7BV2P4S3.js} +1 -1
  64. package/chunks/{chunk-RIBKPMRP.js → chunk-7RFNMXPU.js} +19 -6
  65. package/chunks/{chunk-KMQ33DO4.js → chunk-7UKQW4JU.js} +4 -4
  66. package/chunks/{chunk-A5L3JMUA.js → chunk-7XATOOE7.js} +18 -4
  67. package/chunks/{chunk-5I2IWRSH.js → chunk-A3NDJ5SB.js} +2 -2
  68. package/chunks/{chunk-JLU636DO.js → chunk-ALMR3E6Q.js} +1 -0
  69. package/chunks/{chunk-TPRQ7RZH.js → chunk-ANND7YTH.js} +2341 -940
  70. package/chunks/{chunk-PJIZUQVC.js → chunk-AZQ3DT76.js} +2 -2
  71. package/chunks/{chunk-KIM5GUMA.js → chunk-B47WVQ7T.js} +400 -162
  72. package/chunks/{chunk-UH3WSE5L.js → chunk-B4AJNNOL.js} +1 -6
  73. package/chunks/{chunk-BJX6ZSUK.js → chunk-BCZFQXWK.js} +2 -2
  74. package/chunks/{chunk-BKHWX6I2.js → chunk-CAEQL6GZ.js} +11 -3
  75. package/chunks/{chunk-J56UI34H.js → chunk-CI2PGI7Z.js} +4 -2
  76. package/chunks/{chunk-2SCDWPXI.js → chunk-CUWGNCKW.js} +5 -5
  77. package/chunks/{chunk-TOFQCPDC.js → chunk-CVHIL5IG.js} +4 -5
  78. package/chunks/{chunk-VRYUBFMC.js → chunk-CYIBLZBR.js} +1 -1
  79. package/chunks/{chunk-YBL3QUDD.js → chunk-CYPJYJIX.js} +1 -1
  80. package/chunks/{chunk-XVNQMZ2I.js → chunk-DGEIYUC3.js} +0 -1
  81. package/chunks/{chunk-7MVVZO4N.js → chunk-DGV27C34.js} +4 -4
  82. package/chunks/{chunk-BPZALHVR.js → chunk-DI35ZN7T.js} +1 -1
  83. package/chunks/chunk-DZLYR4U3.js +1252 -0
  84. package/chunks/{chunk-PHOF65IG.js → chunk-EYGWU66Z.js} +41594 -50416
  85. package/chunks/{chunk-7ZCNENPP.js → chunk-FANRZEAJ.js} +1 -1
  86. package/chunks/{chunk-WBL3FJEU.js → chunk-FC4KQFCS.js} +1 -1
  87. package/chunks/{chunk-5NBDS5S6.js → chunk-FCYYAB4S.js} +162 -7
  88. package/chunks/{chunk-L26JL52R.js → chunk-FH6SU2OG.js} +48 -61
  89. package/chunks/{chunk-OKY7HXPG.js → chunk-FNMZK765.js} +2 -2
  90. package/chunks/chunk-FYJ7W2PI.js +194 -0
  91. package/chunks/{chunk-BULDBTYC.js → chunk-G7XXKQYS.js} +3 -28
  92. package/chunks/{chunk-L5UHQJTJ.js → chunk-GATT5TKW.js} +1 -1
  93. package/chunks/{chunk-MVSUYZDT.js → chunk-GKWLJW7Z.js} +4 -4
  94. package/chunks/{chunk-VAK25FTU.js → chunk-GKX7E4CO.js} +1 -1
  95. package/chunks/{chunk-LS77BEZP.js → chunk-GLCZKT5V.js} +1 -5
  96. package/chunks/{chunk-FSITMZJH.js → chunk-GOXRFPH5.js} +18 -9
  97. package/chunks/{chunk-3RN6GBKS.js → chunk-HFAV3POZ.js} +1 -1
  98. package/chunks/{chunk-YX324OPW.js → chunk-HGQIL6NG.js} +1 -1
  99. package/chunks/{chunk-55DJUCI2.js → chunk-HOSENQJL.js} +53 -43
  100. package/chunks/{chunk-GZXCZHCT.js → chunk-I3G5JWBV.js} +1 -1
  101. package/chunks/{chunk-YH6G52F2.js → chunk-I3V7RKRZ.js} +4 -4
  102. package/chunks/{chunk-RF3EXIHJ.js → chunk-IQMYZTDI.js} +30 -19
  103. package/chunks/{chunk-RWTEFFPU.js → chunk-JCJ7LKNA.js} +6140 -5616
  104. package/chunks/{chunk-S3TWXGKA.js → chunk-JE7KQ2UP.js} +4 -2
  105. package/chunks/{chunk-63P4EL5V.js → chunk-JMONIXMJ.js} +1 -1
  106. package/chunks/{chunk-OFDOK3VM.js → chunk-JQTW5CA5.js} +8 -13
  107. package/chunks/chunk-JYBU6YUE.js +378 -0
  108. package/chunks/chunk-JZQUOT4B.js +81 -0
  109. package/chunks/{chunk-Q4M4MDQ4.js → chunk-K4GTOFKY.js} +1 -1
  110. package/chunks/{chunk-T2NCM2ET.js → chunk-K6KS3LTN.js} +2 -749
  111. package/chunks/{chunk-YPE6A4GC.js → chunk-KLESQCW6.js} +2 -2
  112. package/chunks/{chunk-JVPM2ULZ.js → chunk-KQGB3ME2.js} +6 -6
  113. package/chunks/{chunk-2W3OOD4W.js → chunk-L55JWS76.js} +6 -3
  114. package/chunks/{chunk-RHLZR4E5.js → chunk-LGAOC3ZS.js} +1 -1
  115. package/chunks/{chunk-LB6DUZ26.js → chunk-LI53FGDL.js} +258 -184
  116. package/chunks/{chunk-2X55UKQE.js → chunk-LIJID5PD.js} +3 -3
  117. package/chunks/{chunk-NH6KE4JX.js → chunk-LW3RFMG7.js} +3 -3
  118. package/chunks/{chunk-MZAXJAUM.js → chunk-LW67T6GH.js} +1 -1
  119. package/chunks/{chunk-RZIX2G32.js → chunk-M4O2DCE3.js} +1 -1
  120. package/chunks/{chunk-4WIZGAH3.js → chunk-MFW7APBA.js} +6 -58
  121. package/chunks/{chunk-VIA5XA4U.js → chunk-MKQOXP2O.js} +3 -1
  122. package/chunks/{chunk-FODK6UMO.js → chunk-MPHPFVKK.js} +0 -2
  123. package/chunks/{chunk-JESCGQM3.js → chunk-NAVJD2PQ.js} +8 -7
  124. package/chunks/{chunk-H5FFA6TH.js → chunk-NOKIVHOL.js} +16 -3
  125. package/chunks/{chunk-6OUGMXDC.js → chunk-NWNEANAT.js} +7 -7
  126. package/chunks/{chunk-LQIW3YFY.js → chunk-OAOPCTG6.js} +9 -7
  127. package/chunks/chunk-OCPBI7J5.js +18 -0
  128. package/chunks/{chunk-WCXCRJYB.js → chunk-OCUM7TJA.js} +1 -1
  129. package/chunks/{chunk-R5AFZNQW.js → chunk-OIG257JR.js} +14 -7
  130. package/chunks/{chunk-IKCX4CCL.js → chunk-OINT3ZNV.js} +118 -95
  131. package/chunks/{chunk-E5TUC6CA.js → chunk-OKF7JF3R.js} +3 -3
  132. package/chunks/chunk-PEK4ARMZ.js +319 -0
  133. package/chunks/chunk-PGHTM673.js +363 -0
  134. package/chunks/{record-artifact-RQKFYO5B.js → chunk-PMGFWLAZ.js} +22 -7
  135. package/chunks/{chunk-FNQ6T3CV.js → chunk-PONHVBRT.js} +10 -7
  136. package/chunks/{chunk-VDDGDZMA.js → chunk-QHWCP53L.js} +14 -7
  137. package/chunks/{chunk-ZFDTEDCF.js → chunk-RF4FA22B.js} +6 -6
  138. package/chunks/{chunk-6FGBXPWM.js → chunk-RPLGZJV2.js} +38 -44
  139. package/chunks/{chunk-NIBLUX3Y.js → chunk-RQLRERVY.js} +148 -21
  140. package/chunks/{chunk-LKEJ26GS.js → chunk-RWZPM2BP.js} +16 -11
  141. package/chunks/{chunk-6AM5D4ME.js → chunk-S6LOFUVP.js} +0 -12
  142. package/chunks/{chunk-IO3IX5Q4.js → chunk-S7G7Z3MP.js} +1 -1
  143. package/chunks/{chunk-MUP3T3AD.js → chunk-SGFT55XI.js} +1 -35
  144. package/chunks/{chunk-PWVFN2LF.js → chunk-SMWPUA2A.js} +1 -1
  145. package/chunks/{chunk-U7M2DMGW.js → chunk-SWRHIQDT.js} +130 -5
  146. package/chunks/{chunk-VYPFXUCB.js → chunk-SZ3KHTDR.js} +1 -1
  147. package/chunks/chunk-T26EAKDL.js +13 -0
  148. package/chunks/chunk-T3CHYWJZ.js +758 -0
  149. package/chunks/{chunk-SQCQ4KO2.js → chunk-TCBP4Q3K.js} +380 -317
  150. package/chunks/{chunk-ZNAUOR2I.js → chunk-TJHLQ45J.js} +2 -2
  151. package/chunks/{chunk-LK7CHLVP.js → chunk-U4VTUMMK.js} +0 -60
  152. package/chunks/{chunk-NL7LTRLR.js → chunk-UHUSJ6X7.js} +29 -68
  153. package/chunks/{chunk-LH2BYDQ5.js → chunk-UJBURGBH.js} +18 -12
  154. package/chunks/{chunk-ZOIFNCKL.js → chunk-UPUG4GXM.js} +3 -23
  155. package/chunks/{chunk-FQK6JAFG.js → chunk-URPQ5QZM.js} +4 -4
  156. package/chunks/{chunk-M4FMGVY4.js → chunk-V47JGII4.js} +3 -3
  157. package/chunks/{chunk-Y34KJKDC.js → chunk-VBX5IFEN.js} +1 -1
  158. package/chunks/{chunk-USTWD7QV.js → chunk-W4MIWP6M.js} +26 -16
  159. package/chunks/{chunk-HTR4WV6U.js → chunk-W4RQUHY3.js} +31 -1
  160. package/chunks/{chunk-J24WCGIN.js → chunk-W7D7QTCH.js} +4 -4
  161. package/chunks/{chunk-DLWL3Z7A.js → chunk-WBSMNTSV.js} +3 -3
  162. package/chunks/{chunk-2JZBVYTU.js → chunk-WZRWHXFE.js} +1 -8
  163. package/chunks/{chunk-COH43MRJ.js → chunk-XCGIMOLN.js} +27 -1
  164. package/chunks/{chunk-IJTOWOD7.js → chunk-XTLTBZIH.js} +83 -9
  165. package/chunks/{chunk-H4SBPHSA.js → chunk-XVYRMUI5.js} +3 -3
  166. package/chunks/{chunk-3QMGYBFN.js → chunk-XWWKIXVD.js} +1 -80
  167. package/chunks/{chunk-VULLI6WQ.js → chunk-XZB72HUB.js} +6 -6
  168. package/chunks/{chunk-3SJ43L4W.js → chunk-XZC5VLBZ.js} +2 -0
  169. package/chunks/{chunk-UUUTRMI2.js → chunk-Y4IHBGBP.js} +1 -1
  170. package/chunks/{chunk-PR75REBZ.js → chunk-Y6AXW2OG.js} +12 -82
  171. package/chunks/{chunk-IPUUTYMV.js → chunk-YDLJGZHL.js} +1 -1
  172. package/chunks/{chunk-MB4MZHMJ.js → chunk-YX4DHA6S.js} +211 -522
  173. package/chunks/chunk-Z4X5MTRT.js +133 -0
  174. package/chunks/{chunk-UW5EOVUN.js → chunk-ZBVS26BY.js} +4 -4
  175. package/chunks/{chunk-ZD6UTE4A.js → chunk-ZHBO7WVX.js} +1 -1
  176. package/chunks/{chunk-7JURR4JT.js → chunk-ZM63TFJH.js} +167 -81
  177. package/chunks/{chunk-HTO4JFDZ.js → chunk-ZPJWUGCS.js} +0 -1
  178. package/chunks/{chunk-X5XDDSSH.js → chunk-ZPZ7ZJEE.js} +28 -5
  179. package/chunks/{chunk-ACY3A37B.js → chunk-ZS6Q44DY.js} +23 -18
  180. package/chunks/{chunk-ZJHVAS7M.js → chunk-ZWUDSQBD.js} +4 -5
  181. package/chunks/{computer-use-SOQ4E3VX.js → computer-use-HRVGY7OB.js} +50 -49
  182. package/chunks/{config-utils-7V7GGIW6.js → config-utils-RUFMEUYD.js} +4 -3
  183. package/chunks/contextCommand-V3N7Q3UM.js +81 -0
  184. package/chunks/core-runtime-QGEW6WBW.js +135 -0
  185. package/chunks/{create-sub-session-IWW2IZ2T.js → create-sub-session-SBYUMSSS.js} +3 -3
  186. package/chunks/{create-sub-session-QRJLW5BV.js → create-sub-session-ZUWDNFO2.js} +47 -46
  187. package/chunks/{cron-create-YIID5XAW.js → cron-create-2QK6TCEC.js} +6 -6
  188. package/chunks/{cron-delete-ZVHYCEP2.js → cron-delete-FDCDFYMG.js} +5 -5
  189. package/chunks/{cron-list-XEGS463Q.js → cron-list-XN3WVBTP.js} +6 -6
  190. package/chunks/{daemon-YO6433NF.js → daemon-QH2G5B5E.js} +403 -17
  191. package/chunks/daemon-status-provider-MB54AMNV.js +91 -0
  192. package/chunks/daemon-trust-policy-3VFDF5LU.js +86 -0
  193. package/chunks/daemon-trust-policy-monitor-4KX2OK7G.js +173 -0
  194. package/chunks/{de-HGRCYDEJ.js → de-SY6O76BF.js} +6 -1
  195. package/chunks/deferred-core-runtime-UIJL6EEU.js +90 -0
  196. package/chunks/{dist-F6IBUDR4.js → dist-2PERFI23.js} +12 -9
  197. package/chunks/dist-AOOUOG5S.js +4389 -0
  198. package/chunks/{dist-46NQKLTW.js → dist-OAOC5OV4.js} +2 -2
  199. package/chunks/{dist-YFNEUWSE.js → dist-PVEAFLHY.js} +5 -4
  200. package/chunks/{dist-AIKFMUKK.js → dist-SL2LUMML.js} +1449 -14
  201. package/chunks/dist-ULIG4M5H.js +13415 -0
  202. package/chunks/{dist-WEAHOXDM.js → dist-WGMNT3JQ.js} +2 -1
  203. package/chunks/{dist-BBLXMS3N.js → dist-ZHXOBXDN.js} +3 -3
  204. package/chunks/earlyInputCapture-QBC4ZCV7.js +83 -0
  205. package/chunks/{edit-OBDSQURM.js → edit-7ABV72VV.js} +48 -47
  206. package/chunks/{en-MTWBNGDO.js → en-NBK3JKCE.js} +9 -1
  207. package/chunks/{enter-worktree-U6MRPQ2P.js → enter-worktree-4NOWT6I2.js} +48 -47
  208. package/chunks/{enterPlanMode-BC5QUZZ2.js → enterPlanMode-4NOQ6A56.js} +48 -47
  209. package/chunks/{environment-W5UFC2CH.js → environment-ABMFNOJO.js} +49 -48
  210. package/chunks/errors-UAX4AR5Q.js +89 -0
  211. package/chunks/esm-K5FARBNI.js +5548 -0
  212. package/chunks/{exit-worktree-DGNYMECB.js → exit-worktree-CF2O5AQM.js} +48 -47
  213. package/chunks/exitPlanMode-5KEF5DLM.js +74 -0
  214. package/chunks/{fast-path-JJZFJANL.js → fast-path-RWZGR7A6.js} +16 -6
  215. package/chunks/{fr-45RLL55O.js → fr-4KG5V7UT.js} +6 -1
  216. package/chunks/{gemini-QS36EBZV.js → gemini-A4LXWU5S.js} +103 -98
  217. package/chunks/{geminiContentGenerator-AG4KB6CV.js → geminiContentGenerator-VPXAS3BM.js} +40 -11
  218. package/chunks/{getMachineId-bsd-V7W3GODC.js → getMachineId-bsd-FG7IUY6U.js} +1 -1
  219. package/chunks/{getMachineId-darwin-TDO75DQP.js → getMachineId-darwin-GLCJI2RA.js} +1 -1
  220. package/chunks/{getMachineId-linux-TF43WQT2.js → getMachineId-linux-O6OPPAKO.js} +1 -1
  221. package/chunks/{getMachineId-unsupported-ZGUO3TXT.js → getMachineId-unsupported-S6CKYVGC.js} +1 -1
  222. package/chunks/{getMachineId-win-ECFYZZFQ.js → getMachineId-win-X5SRNEH7.js} +1 -1
  223. package/chunks/{glob-V7R3PSK3.js → glob-P6ZPQOPR.js} +48 -47
  224. package/chunks/goal-tools-H2NHZKGN.js +335 -0
  225. package/chunks/{grep-QYPSK7OP.js → grep-56M3IJ36.js} +50 -48
  226. package/chunks/handleAutoUpdate-N3IMC273.js +82 -0
  227. package/chunks/i18n-UFV5QINW.js +98 -0
  228. package/chunks/{image-gen-Z3VPGKRC.js → image-gen-GPYAKETO.js} +12 -12
  229. package/chunks/initializer-OXWZKLEX.js +87 -0
  230. package/chunks/installationInfo-V2YEC52N.js +81 -0
  231. package/chunks/{ja-B7DF7DFG.js → ja-F3GSQXMF.js} +6 -1
  232. package/chunks/{keychain-token-storage-MDTG3WRM.js → keychain-token-storage-72IYCAZV.js} +3 -3
  233. package/chunks/lib-RUF3WZA6.js +9 -0
  234. package/chunks/list-UN6EJ6WB.js +90 -0
  235. package/chunks/{list-agents-5KJJHR6I.js → list-agents-R6KDXQR3.js} +3 -3
  236. package/chunks/loadedSettingsAdapter-LZK2PMOY.js +84 -0
  237. package/chunks/{loggingContentGenerator-HS3S5H3Q.js → loggingContentGenerator-PSFMRX7M.js} +78 -113
  238. package/chunks/{loop-wakeup-FXKNNYSY.js → loop-wakeup-3IQKCYAH.js} +7 -7
  239. package/chunks/{ls-NTK6VOQJ.js → ls-DKZ37A7N.js} +5 -5
  240. package/chunks/{lsp-2JI24STP.js → lsp-QNWN7KN3.js} +3 -3
  241. package/chunks/{managed-npm-update-JYEMMXA3.js → managed-npm-update-D2AO3F47.js} +48 -47
  242. package/chunks/mcp-A2VAOKMH.js +84 -0
  243. package/chunks/{monitor-R3ODH5U6.js → monitor-7EJ3WBER.js} +48 -47
  244. package/chunks/nonInteractiveCli-43LIVN4A.js +146 -0
  245. package/chunks/{notebook-edit-BNOK452R.js → notebook-edit-IQD53ULF.js} +48 -47
  246. package/chunks/{openaiContentGenerator-WMCU3O2H.js → openaiContentGenerator-YPCMNGEZ.js} +26 -27
  247. package/chunks/pidfile-3SOOBWZA.js +87 -0
  248. package/chunks/process-registry-2CHQBXH5.js +157 -0
  249. package/chunks/{processUtils-RT7UNCC2.js → processUtils-FGVHFR4V.js} +2 -2
  250. package/chunks/{pt-22Q3FP73.js → pt-EQ33KWEN.js} +6 -1
  251. package/chunks/{qwenContentGenerator-HHCRK4SX.js → qwenContentGenerator-M6YW4D6A.js} +53 -52
  252. package/chunks/{qwenOAuth2-OWLB5AKH.js → qwenOAuth2-XSYKLMNR.js} +10 -10
  253. package/chunks/read-file-XOMBFIS7.js +29 -0
  254. package/chunks/{read-mcp-resource-4DKQWGHD.js → read-mcp-resource-GFTWYXMK.js} +4 -4
  255. package/chunks/record-artifact-JANPGVS4.js +21 -0
  256. package/chunks/resumeHistoryUtils-E4EVA4PO.js +92 -0
  257. package/chunks/ripGrep-M4NYA6AM.js +74 -0
  258. package/chunks/{ru-FZCNZHDC.js → ru-7OZAUKGG.js} +6 -1
  259. package/chunks/{run-qwen-serve-FU6HEM4J.js → run-qwen-serve-QLCU2BAZ.js} +953 -248
  260. package/chunks/{runtime-XXRRTNP6.js → runtime-T36WUYIO.js} +57 -55
  261. package/chunks/{scheduler-G2ZS2Z7E.js → scheduler-C3J45Z5W.js} +47 -46
  262. package/chunks/{sdk-exporters-grpc-AK3LGHNO.js → sdk-exporters-grpc-54L4LS5L.js} +4 -4
  263. package/chunks/{sdk-exporters-http-FYBSUCPD.js → sdk-exporters-http-BFOKQFRD.js} +7 -7
  264. package/chunks/{sdk-impl-GMVPB7NB.js → sdk-impl-6CJ3JQZL.js} +14 -14
  265. package/chunks/{send-message-Q6OOR6BR.js → send-message-RJ2R4PIV.js} +6 -12
  266. package/chunks/serve-7SWJTL3K.js +90 -0
  267. package/chunks/{server-4UMH7OIZ.js → server-T2B64F4O.js} +3887 -852
  268. package/chunks/{session-K3O3Q2SV.js → session-D546I4HT.js} +99 -94
  269. package/chunks/{settings-CR2EWTBA.js → settings-ZQOOTRR7.js} +51 -50
  270. package/chunks/shell-5OR4RAKF.js +84 -0
  271. package/chunks/{skill-I3SDA4MB.js → skill-X4E5JMKV.js} +20 -21
  272. package/chunks/skill-settings-ZS3XPDMT.js +92 -0
  273. package/chunks/spawnChannel-MILVKB3G.js +83 -0
  274. package/chunks/standalone-update-UTYCSPUO.js +93 -0
  275. package/chunks/{startInteractiveUI-SLZGHRPH.js → startInteractiveUI-S4R5J4EN.js} +1220 -895
  276. package/chunks/{syntheticOutput-I3757IWH.js → syntheticOutput-355CB6CJ.js} +4 -4
  277. package/chunks/{task-create-N7WQSGYA.js → task-create-KUQIS7RA.js} +10 -10
  278. package/chunks/{task-list-FOPULZEP.js → task-list-5XNNGTF4.js} +7 -7
  279. package/chunks/{task-stop-H6RHXFVQ.js → task-stop-4ROAOBXH.js} +3 -3
  280. package/chunks/{task-update-M57TFZJT.js → task-update-4FPFYGE3.js} +10 -10
  281. package/chunks/{team-create-YJALH5D2.js → team-create-MGD3Q7W4.js} +50 -49
  282. package/chunks/{team-delete-QE2UXJL7.js → team-delete-S2RCXA4P.js} +7 -7
  283. package/chunks/{team-plan-approval-34QFYKGN.js → team-plan-approval-VMVGLPDQ.js} +48 -47
  284. package/chunks/theme-manager-U4QE2YSY.js +78 -0
  285. package/chunks/{todoWrite-VQ7FKOHL.js → todoWrite-7WM3VDMY.js} +7 -7
  286. package/chunks/{tool-search-NF7GB6LE.js → tool-search-6T7VYTYZ.js} +19 -21
  287. package/chunks/total-session-admission-PLKO4EET.js +86 -0
  288. package/chunks/trustedFolders-QZU6BO46.js +96 -0
  289. package/chunks/{update-relaunch-WBUZJC5O.js → update-relaunch-NWPFNM5L.js} +5 -5
  290. package/chunks/updateCheck-KEOCGBZR.js +93 -0
  291. package/chunks/useAutoAcceptIndicator-O6XISZEA.js +94 -0
  292. package/chunks/{validateNonInterActiveAuth-3R223G3R.js → validateNonInterActiveAuth-WCHAHO75.js} +94 -89
  293. package/chunks/{version-HS7YSFHV.js → version-VP3VZ2BM.js} +1 -1
  294. package/chunks/{web-fetch-NKCSG7ZE.js → web-fetch-KM2FSOKS.js} +19 -21
  295. package/chunks/{web-search-S62WAP4S.js → web-search-WUR6PYBO.js} +13 -13
  296. package/chunks/{workflow-QAGU5RU4.js → workflow-S6XMX55R.js} +49 -48
  297. package/chunks/workspace-providers-status-JGIZRHVT.js +87 -0
  298. package/chunks/{workspace-registration-store-24JMHDGF.js → workspace-registration-store-JDEMOOFX.js} +1 -1
  299. package/chunks/workspace-registry-NIL6253M.js +94 -0
  300. package/chunks/workspace-service-UYB6MMWL.js +101 -0
  301. package/chunks/workspace-skills-status-GSJRWER4.js +87 -0
  302. package/chunks/workspace-trust-reconciler-V2TICK2A.js +347 -0
  303. package/chunks/write-file-QHD5ELJS.js +76 -0
  304. package/chunks/xterm-headless-NTYVIBT3.js +3475 -0
  305. package/chunks/{zh-LUIGBD55.js → zh-H3YDK5QW.js} +9 -1
  306. package/chunks/{zh-TW-F5KG2IYD.js → zh-TW-JYCP7XUA.js} +9 -1
  307. package/chunks/zoom-image-236QXDRH.js +224 -0
  308. package/cli.js +13 -13
  309. package/locales/ca.js +7 -2
  310. package/locales/de.js +7 -2
  311. package/locales/en.js +10 -2
  312. package/locales/fr.js +7 -2
  313. package/locales/ja.js +7 -2
  314. package/locales/pt.js +7 -2
  315. package/locales/ru.js +7 -2
  316. package/locales/zh-TW.js +10 -2
  317. package/locales/zh.js +10 -2
  318. package/package.json +5 -4
  319. package/web-shell/assets/{arc-DcbWnB9T.js → arc-DQN8gc5j.js} +1 -1
  320. package/web-shell/assets/{architectureDiagram-3BPJPVTR-kMMF5sud.js → architectureDiagram-3BPJPVTR-C6Z867cc.js} +1 -1
  321. package/web-shell/assets/{blockDiagram-GPEHLZMM-Htl9vTJS.js → blockDiagram-GPEHLZMM-BkyNf4_J.js} +1 -1
  322. package/web-shell/assets/{c4Diagram-AAUBKEIU-BnZnm0mQ.js → c4Diagram-AAUBKEIU-BA7aurej.js} +1 -1
  323. package/web-shell/assets/channel-YzToqAUt.js +1 -0
  324. package/web-shell/assets/{chunk-2J33WTMH-DziB7kDG.js → chunk-2J33WTMH-Dp_LERgD.js} +1 -1
  325. package/web-shell/assets/{chunk-4BX2VUAB-CmkD8daw.js → chunk-4BX2VUAB-CCwcnkeW.js} +1 -1
  326. package/web-shell/assets/{chunk-55IACEB6-CHAd9A_U.js → chunk-55IACEB6-e0ytWiup.js} +1 -1
  327. package/web-shell/assets/{chunk-727SXJPM-Dqaam3fE.js → chunk-727SXJPM-DBoZrQ--.js} +1 -1
  328. package/web-shell/assets/{chunk-AQP2D5EJ-D_-saBYM.js → chunk-AQP2D5EJ-dmHU5zKq.js} +1 -1
  329. package/web-shell/assets/{chunk-FMBD7UC4-B9r_veWD.js → chunk-FMBD7UC4-PP3UKzsN.js} +1 -1
  330. package/web-shell/assets/{chunk-ND2GUHAM-B3EaCSpL.js → chunk-ND2GUHAM-Bjy0PNsP.js} +1 -1
  331. package/web-shell/assets/{chunk-QZHKN3VN-CYq8x9mn.js → chunk-QZHKN3VN-CM0H6wrK.js} +1 -1
  332. package/web-shell/assets/classDiagram-4FO5ZUOK-_le9LVNU.js +1 -0
  333. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-_le9LVNU.js +1 -0
  334. package/web-shell/assets/{cose-bilkent-S5V4N54A-D0ng4uiB.js → cose-bilkent-S5V4N54A-B1B_Fozz.js} +1 -1
  335. package/web-shell/assets/{dagre-BM42HDAG-DCZollQv.js → dagre-BM42HDAG-DGFk7aBN.js} +1 -1
  336. package/web-shell/assets/{diagram-2AECGRRQ-Dfk2pWS0.js → diagram-2AECGRRQ-VdlYGHdV.js} +1 -1
  337. package/web-shell/assets/{diagram-5GNKFQAL-kX38ltWR.js → diagram-5GNKFQAL-xcEMWz6m.js} +1 -1
  338. package/web-shell/assets/{diagram-KO2AKTUF-CJz2vsXh.js → diagram-KO2AKTUF-B6Dd23eT.js} +1 -1
  339. package/web-shell/assets/{diagram-LMA3HP47-BvMLZm_7.js → diagram-LMA3HP47-C3bjiNTc.js} +1 -1
  340. package/web-shell/assets/{diagram-OG6HWLK6-l7kfStkO.js → diagram-OG6HWLK6-ChXfX8H6.js} +1 -1
  341. package/web-shell/assets/{erDiagram-TEJ5UH35-BSVa8GGT.js → erDiagram-TEJ5UH35-D7RBC3FG.js} +1 -1
  342. package/web-shell/assets/{flowDiagram-I6XJVG4X-CoawKIXH.js → flowDiagram-I6XJVG4X-bNsx8Fqb.js} +1 -1
  343. package/web-shell/assets/{ganttDiagram-6RSMTGT7-DFUDH0zF.js → ganttDiagram-6RSMTGT7-C_m4liOj.js} +1 -1
  344. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Y2pvpT4e.js → gitGraphDiagram-PVQCEYII-CzAqOmDr.js} +1 -1
  345. package/web-shell/assets/{index-D0GX0zZf.js → index-BArKGy43.js} +1 -1
  346. package/web-shell/assets/index-C2GE3DAF.js +74 -0
  347. package/web-shell/assets/index-_dIfJ82-.js +1625 -0
  348. package/web-shell/assets/index-heP6zO4t.css +5 -0
  349. package/web-shell/assets/{infoDiagram-5YYISTIA-CU8_zLiX.js → infoDiagram-5YYISTIA-BBw9H4RT.js} +1 -1
  350. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-AVQiV0DU.js → ishikawaDiagram-YF4QCWOH-C8Ns7cDb.js} +1 -1
  351. package/web-shell/assets/{journeyDiagram-JHISSGLW-DQ0VSKa3.js → journeyDiagram-JHISSGLW-BkW5h5si.js} +1 -1
  352. package/web-shell/assets/{kanban-definition-UN3LZRKU-BqnWqsE_.js → kanban-definition-UN3LZRKU-IUhsF7tq.js} +1 -1
  353. package/web-shell/assets/{linear-BkoihsaA.js → linear-CeDsMMjT.js} +1 -1
  354. package/web-shell/assets/{mermaid.core-5RJs-31j.js → mermaid.core-VTPU82QL.js} +5 -5
  355. package/web-shell/assets/{mindmap-definition-RKZ34NQL-D33Bxnpd.js → mindmap-definition-RKZ34NQL-DVohXDmC.js} +1 -1
  356. package/web-shell/assets/{pieDiagram-4H26LBE5-BuEAw3BH.js → pieDiagram-4H26LBE5-SxBFaID8.js} +1 -1
  357. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-Kox_usEq.js → quadrantDiagram-W4KKPZXB-BJt8o3Cs.js} +1 -1
  358. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CNjeUif0.js → requirementDiagram-4Y6WPE33-B02G8M7E.js} +1 -1
  359. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-BCd2OL_U.js → sankeyDiagram-5OEKKPKP-CzMCGPib.js} +1 -1
  360. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CF2ZTsz0.js → sequenceDiagram-3UESZ5HK-CzbJgSkE.js} +1 -1
  361. package/web-shell/assets/{stateDiagram-AJRCARHV-qenSzHtm.js → stateDiagram-AJRCARHV-DhiXBOKS.js} +1 -1
  362. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DILbnhvR.js +1 -0
  363. package/web-shell/assets/{timeline-definition-PNZ67QCA-B5DyWdgs.js → timeline-definition-PNZ67QCA-Btj5idQV.js} +1 -1
  364. package/web-shell/assets/{vennDiagram-CIIHVFJN-DqP4I_o_.js → vennDiagram-CIIHVFJN-CJz2YZq4.js} +1 -1
  365. package/web-shell/assets/{wardley-L42UT6IY-CJe2e4mg.js → wardley-L42UT6IY-CavIou7m.js} +1 -1
  366. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BMDSw-Rr.js → wardleyDiagram-YWT4CUSO-BRf62x8X.js} +1 -1
  367. package/web-shell/assets/{xychartDiagram-2RQKCTM6-BTVZYkxD.js → xychartDiagram-2RQKCTM6-ItOGZPM_.js} +1 -1
  368. package/web-shell/index.html +2 -2
  369. package/chunks/MaxSizedBox-5DPPWPGT.js +0 -85
  370. package/chunks/agent-6ODUANDO.js +0 -81
  371. package/chunks/agent-headless-7BYQTMHW.js +0 -75
  372. package/chunks/bridge-ZUB64FAE.js +0 -90
  373. package/chunks/chunk-LEH5C7FV.js +0 -232
  374. package/chunks/chunk-SZRN75WQ.js +0 -29
  375. package/chunks/chunk-UGYMA4EI.js +0 -219
  376. package/chunks/chunk-Z2BC6UJ5.js +0 -8575
  377. package/chunks/contextCommand-JLHYA34Z.js +0 -80
  378. package/chunks/daemon-status-provider-2233Q37D.js +0 -89
  379. package/chunks/earlyInputCapture-A7NDU3PF.js +0 -82
  380. package/chunks/errors-M7CLORXH.js +0 -88
  381. package/chunks/exitPlanMode-GXTBWQAR.js +0 -403
  382. package/chunks/handleAutoUpdate-6DBEZYPV.js +0 -81
  383. package/chunks/i18n-VUJJZIMU.js +0 -97
  384. package/chunks/initializer-UWAK5U5O.js +0 -86
  385. package/chunks/installationInfo-6O2YAA52.js +0 -80
  386. package/chunks/list-GB4ESM3T.js +0 -89
  387. package/chunks/loadedSettingsAdapter-OT6JVQ7U.js +0 -83
  388. package/chunks/mcp-6DBDJPFU.js +0 -83
  389. package/chunks/nonInteractiveCli-MOYCYBBU.js +0 -141
  390. package/chunks/pidfile-TFRZZZIO.js +0 -86
  391. package/chunks/read-file-APMO3PSX.js +0 -31
  392. package/chunks/resumeHistoryUtils-6KRYEAWZ.js +0 -91
  393. package/chunks/ripGrep-BEJDEDXW.js +0 -73
  394. package/chunks/serve-7BSTXJ4T.js +0 -89
  395. package/chunks/shell-HH3PF3A2.js +0 -83
  396. package/chunks/spawnChannel-RWNDBXGA.js +0 -82
  397. package/chunks/src-GE4TTTML.js +0 -3147
  398. package/chunks/standalone-update-Q6WFRZZQ.js +0 -92
  399. package/chunks/theme-manager-SWRILQHI.js +0 -77
  400. package/chunks/total-session-admission-DLHHHLD3.js +0 -84
  401. package/chunks/trustedFolders-KHXHY6PY.js +0 -93
  402. package/chunks/updateCheck-RKL6M5XN.js +0 -92
  403. package/chunks/useAutoAcceptIndicator-CFQ5BUJL.js +0 -93
  404. package/chunks/workspace-providers-status-QSVZUETE.js +0 -86
  405. package/chunks/workspace-registry-UT4RBNBM.js +0 -88
  406. package/chunks/workspace-service-JFWRUS4V.js +0 -98
  407. package/chunks/workspace-skills-status-ZBBKJOI2.js +0 -85
  408. package/chunks/write-file-VHIXW5M7.js +0 -73
  409. package/web-shell/assets/channel-Cq7YKtfC.js +0 -1
  410. package/web-shell/assets/classDiagram-4FO5ZUOK-CQ9aC1Tg.js +0 -1
  411. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CQ9aC1Tg.js +0 -1
  412. package/web-shell/assets/index-D9haPt0X.css +0 -5
  413. package/web-shell/assets/index-ckX9Pq5k.js +0 -1230
  414. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-B7W4zlCr.js +0 -1
  415. package/chunks/{chunk-TARRHLLG.js → chunk-QUGAUQGJ.js} +25 -25
  416. package/chunks/{chunk-U7ZFW55U.js → chunk-VOQXFAY5.js} +977 -977
  417. /package/chunks/{chunk-LXXMOYPL.js → chunk-VXZBKKQR.js} +0 -0
@@ -0,0 +1,133 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-5O2XNYP6.js";
6
+ import {
7
+ __name
8
+ } from "./chunk-J2S4EL5Y.js";
9
+
10
+ // packages/cli/src/config/skill-settings.ts
11
+ init_esbuild_shims();
12
+ function normalizeSkillNames(value) {
13
+ if (!Array.isArray(value)) return /* @__PURE__ */ new Set();
14
+ return new Set(
15
+ value.filter((name) => typeof name === "string").map((name) => name.trim().toLowerCase()).filter(Boolean)
16
+ );
17
+ }
18
+ __name(normalizeSkillNames, "normalizeSkillNames");
19
+ function skillSettingStrings(settings, scope, key) {
20
+ const value = settings.forScope(scope).settings.skills?.[key];
21
+ return Array.isArray(value) ? value.filter((name) => typeof name === "string") : [];
22
+ }
23
+ __name(skillSettingStrings, "skillSettingStrings");
24
+ function resolveSkillSettings(settings) {
25
+ const hardDisabled = normalizeSkillNames(settings.merged.skills?.disabled);
26
+ const defaultDisabled = normalizeSkillNames(
27
+ settings.merged.skills?.defaultDisabled
28
+ );
29
+ const enabled = normalizeSkillNames(settings.merged.skills?.enabled);
30
+ const disablements = /* @__PURE__ */ new Map();
31
+ for (const name of defaultDisabled) {
32
+ if (!enabled.has(name)) disablements.set(name, { reason: "default" });
33
+ }
34
+ const lockedScopes = [
35
+ ["SystemDefaults" /* SystemDefaults */, "systemDefaults"],
36
+ ["User" /* User */, "user"],
37
+ ["System" /* System */, "system"]
38
+ ];
39
+ const lockedByName = /* @__PURE__ */ new Map();
40
+ for (const [scope, label] of lockedScopes) {
41
+ for (const name of normalizeSkillNames(
42
+ skillSettingStrings(settings, scope, "disabled")
43
+ )) {
44
+ lockedByName.set(name, label);
45
+ }
46
+ }
47
+ for (const name of hardDisabled) {
48
+ const lockedScope = lockedByName.get(name);
49
+ disablements.set(name, {
50
+ reason: "hard",
51
+ ...lockedScope ? { lockedScope } : {}
52
+ });
53
+ }
54
+ return {
55
+ disabledNames: new Set(disablements.keys()),
56
+ defaultDisabledNames: defaultDisabled,
57
+ enabledNames: enabled,
58
+ disablements
59
+ };
60
+ }
61
+ __name(resolveSkillSettings, "resolveSkillSettings");
62
+ function updateTarget(names, skillName, include) {
63
+ const normalizedName = skillName.trim().toLowerCase();
64
+ const next = [];
65
+ let found = false;
66
+ for (const name of names) {
67
+ if (name.trim().toLowerCase() !== normalizedName) {
68
+ next.push(name);
69
+ } else if (include && !found) {
70
+ next.push(skillName);
71
+ found = true;
72
+ }
73
+ }
74
+ if (include && !found) next.push(skillName);
75
+ return next;
76
+ }
77
+ __name(updateTarget, "updateTarget");
78
+ function updateWorkspaceSkillSettingLists(lists, skillName, enabled, defaultDisabled) {
79
+ const normalizedName = skillName.trim().toLowerCase();
80
+ const hadExplicitEnable = lists.enabled.some(
81
+ (name) => name.trim().toLowerCase() === normalizedName
82
+ );
83
+ if (enabled) {
84
+ return {
85
+ disabled: updateTarget(lists.disabled, skillName, false),
86
+ enabled: defaultDisabled || hadExplicitEnable ? updateTarget(lists.enabled, skillName, true) : lists.enabled
87
+ };
88
+ }
89
+ return {
90
+ disabled: updateTarget(lists.disabled, skillName, true),
91
+ enabled: updateTarget(lists.enabled, skillName, false)
92
+ };
93
+ }
94
+ __name(updateWorkspaceSkillSettingLists, "updateWorkspaceSkillSettingLists");
95
+ function computeWorkspaceSkillListUpdates(workspaceDisabled, lockedNames, workspaceEnabled, toggles) {
96
+ const previousDisabled = workspaceDisabled.filter(
97
+ (name) => !lockedNames.has(name.trim().toLowerCase())
98
+ );
99
+ const previousEnabled = [...workspaceEnabled];
100
+ let next = {
101
+ disabled: previousDisabled,
102
+ enabled: previousEnabled
103
+ };
104
+ for (const toggle of toggles) {
105
+ if (toggle.wasEnabled === toggle.isEnabled) continue;
106
+ next = updateWorkspaceSkillSettingLists(
107
+ next,
108
+ toggle.name,
109
+ toggle.isEnabled,
110
+ toggle.defaultDisabled
111
+ );
112
+ }
113
+ return {
114
+ disabled: next.disabled,
115
+ enabled: next.enabled,
116
+ disabledChanged: JSON.stringify(previousDisabled) !== JSON.stringify(next.disabled),
117
+ enabledChanged: JSON.stringify(previousEnabled) !== JSON.stringify(next.enabled)
118
+ };
119
+ }
120
+ __name(computeWorkspaceSkillListUpdates, "computeWorkspaceSkillListUpdates");
121
+
122
+ export {
123
+ normalizeSkillNames,
124
+ skillSettingStrings,
125
+ resolveSkillSettings,
126
+ updateWorkspaceSkillSettingLists,
127
+ computeWorkspaceSkillListUpdates
128
+ };
129
+ /**
130
+ * @license
131
+ * Copyright 2026 Qwen
132
+ * SPDX-License-Identifier: Apache-2.0
133
+ */
@@ -58,6 +58,10 @@ function normalize(model) {
58
58
  let s = (model ?? "").toLowerCase().trim();
59
59
  s = s.replace(/^.*\//, "");
60
60
  s = s.split("|").pop() ?? s;
61
+ s = s.replace(
62
+ /:(?:free|beta|extended|thinking|online|nitro|floor|latest|\d+(?:\.\d+)?(?:x\d+)?b(?:-[\w.]+)*)$/,
63
+ ""
64
+ );
61
65
  s = s.split(":").pop() ?? s;
62
66
  s = s.replace(/\s+/g, "-");
63
67
  s = s.replace(/-preview/g, "");
@@ -233,11 +237,7 @@ __name(reconcileMaxTokens, "reconcileMaxTokens");
233
237
 
234
238
  export {
235
239
  DEFAULT_TOKEN_LIMIT,
236
- DEFAULT_OUTPUT_TOKEN_LIMIT,
237
- ESCALATED_MAX_TOKENS,
238
240
  OUTPUT_TOKEN_CEILING,
239
- MIN_CLAMPED_OUTPUT_TOKENS,
240
- outputClampMargin,
241
241
  clampOutputTokensToWindow,
242
242
  parsePositiveIntegerEnvValue,
243
243
  normalize,
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  expandHomeDir
5
- } from "./chunk-NL7LTRLR.js";
5
+ } from "./chunk-UHUSJ6X7.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  MissingCliEntryError
5
- } from "./chunk-VIA5XA4U.js";
5
+ } from "./chunk-MKQOXP2O.js";
6
6
  import {
7
7
  redactLogCredentials
8
8
  } from "./chunk-M5GB774H.js";
@@ -125,6 +125,144 @@ function callHook(hook, value) {
125
125
  }
126
126
  __name(callHook, "callHook");
127
127
 
128
+ // packages/acp-bridge/src/process-registry.ts
129
+ init_esbuild_shims();
130
+ var TERM_GRACE_MS = 5e3;
131
+ var EXIT_DEADLINE_MS = 1e4;
132
+ var ProcessRegistry = class {
133
+ static {
134
+ __name(this, "ProcessRegistry");
135
+ }
136
+ reservations = /* @__PURE__ */ new Set();
137
+ children = /* @__PURE__ */ new Set();
138
+ draining = false;
139
+ shutdownPromise;
140
+ reserve() {
141
+ if (this.draining) {
142
+ throw new Error("ACP process registry is draining");
143
+ }
144
+ const token = Symbol("acp-child");
145
+ this.reservations.add(token);
146
+ let settled = false;
147
+ return {
148
+ attach: /* @__PURE__ */ __name((child) => {
149
+ if (settled || !this.reservations.delete(token)) {
150
+ throw new Error("ACP process reservation is no longer active");
151
+ }
152
+ settled = true;
153
+ const tracked = new TrackedChild(child, () => {
154
+ this.children.delete(tracked);
155
+ });
156
+ this.children.add(tracked);
157
+ if (this.draining) void tracked.terminate().catch(() => {
158
+ });
159
+ return tracked;
160
+ }, "attach"),
161
+ cancel: /* @__PURE__ */ __name(() => {
162
+ if (settled) return;
163
+ settled = true;
164
+ this.reservations.delete(token);
165
+ }, "cancel")
166
+ };
167
+ }
168
+ shutdown() {
169
+ if (this.shutdownPromise) return this.shutdownPromise;
170
+ this.draining = true;
171
+ this.shutdownPromise = Promise.allSettled(
172
+ [...this.children].map((child) => child.terminate())
173
+ ).then((results) => {
174
+ const failures = results.flatMap(
175
+ (result) => result.status === "rejected" ? [result.reason] : []
176
+ );
177
+ if (failures.length > 0) {
178
+ throw new AggregateError(failures, "ACP child process shutdown failed");
179
+ }
180
+ });
181
+ return this.shutdownPromise;
182
+ }
183
+ killAllSync() {
184
+ this.draining = true;
185
+ for (const child of this.children) child.killSync();
186
+ }
187
+ get activeProcessCount() {
188
+ return this.children.size;
189
+ }
190
+ };
191
+ var TrackedChild = class {
192
+ constructor(child, onExit) {
193
+ this.child = child;
194
+ this.onExit = onExit;
195
+ this.exited = new Promise((resolve) => {
196
+ const finish = /* @__PURE__ */ __name((info) => {
197
+ if (this.exitedSettled) return;
198
+ this.exitedSettled = true;
199
+ this.onExit();
200
+ resolve(info);
201
+ }, "finish");
202
+ child.once("exit", (exitCode, signalCode) => {
203
+ finish({ exitCode, signalCode });
204
+ });
205
+ child.once("spawn", () => {
206
+ this.spawnConfirmed = true;
207
+ });
208
+ child.once("error", () => {
209
+ if (!this.spawnConfirmed) finish(void 0);
210
+ });
211
+ });
212
+ }
213
+ static {
214
+ __name(this, "TrackedChild");
215
+ }
216
+ exited;
217
+ exitedSettled = false;
218
+ spawnConfirmed = false;
219
+ terminatePromise;
220
+ terminate() {
221
+ this.terminatePromise ??= this.terminateOnce();
222
+ return this.terminatePromise;
223
+ }
224
+ killSync() {
225
+ if (this.exitedSettled) return;
226
+ try {
227
+ this.child.kill("SIGKILL");
228
+ } catch {
229
+ }
230
+ }
231
+ async terminateOnce() {
232
+ if (this.exitedSettled) return;
233
+ try {
234
+ this.child.kill("SIGTERM");
235
+ } catch {
236
+ if (this.exitedSettled) return;
237
+ }
238
+ let hardKillTimer;
239
+ let deadlineTimer;
240
+ const deadline = new Promise((_, reject) => {
241
+ hardKillTimer = setTimeout(() => this.killSync(), TERM_GRACE_MS);
242
+ hardKillTimer.unref();
243
+ deadlineTimer = setTimeout(() => {
244
+ reject(
245
+ new Error(
246
+ `ACP child pid=${this.child.pid ?? "unknown"} did not exit within ${EXIT_DEADLINE_MS}ms`
247
+ )
248
+ );
249
+ }, EXIT_DEADLINE_MS);
250
+ deadlineTimer.unref();
251
+ });
252
+ try {
253
+ const exitInfo = await Promise.race([this.exited, deadline]);
254
+ if (exitInfo && (exitInfo.exitCode !== 0 || exitInfo.signalCode !== null)) {
255
+ throw new Error(
256
+ `ACP child pid=${this.child.pid ?? "unknown"} exited uncleanly during shutdown (code=${exitInfo.exitCode ?? "none"}, signal=${exitInfo.signalCode ?? "none"})`
257
+ );
258
+ }
259
+ } finally {
260
+ if (hardKillTimer) clearTimeout(hardKillTimer);
261
+ if (deadlineTimer) clearTimeout(deadlineTimer);
262
+ }
263
+ }
264
+ };
265
+
128
266
  // packages/acp-bridge/src/spawnChannel.ts
129
267
  var cachedMemoryArgs;
130
268
  function getAcpMemoryArgs() {
@@ -178,6 +316,7 @@ function createStderrForwarder(opts) {
178
316
  }
179
317
  __name(createStderrForwarder, "createStderrForwarder");
180
318
  function createSpawnChannelFactory(options = {}) {
319
+ const processRegistry = options.processRegistry ?? new ProcessRegistry();
181
320
  return async (workspaceCwd, childEnvOverrides) => {
182
321
  const sourceEnv = options.sourceEnv ?? process.env;
183
322
  const cliEntry = sourceEnv["QWEN_CLI_ENTRY"] || process.argv[1];
@@ -194,21 +333,29 @@ function createSpawnChannelFactory(options = {}) {
194
333
  const execArgs = process.execArgv.filter(
195
334
  (a) => !/^--inspect(-brk)?($|=)/.test(a)
196
335
  );
197
- const child = spawn(
198
- process.execPath,
199
- [
200
- ...execArgs,
201
- ...memoryArgs,
202
- cliEntry,
203
- "--acp",
204
- ...options.extraArgs ?? []
205
- ],
206
- {
207
- cwd: workspaceCwd,
208
- stdio: ["pipe", "pipe", "pipe"],
209
- env: childEnv
210
- }
211
- );
336
+ const reservation = processRegistry.reserve();
337
+ let child;
338
+ try {
339
+ child = spawn(
340
+ process.execPath,
341
+ [
342
+ ...execArgs,
343
+ ...memoryArgs,
344
+ cliEntry,
345
+ "--acp",
346
+ ...options.extraArgs ?? []
347
+ ],
348
+ {
349
+ cwd: workspaceCwd,
350
+ stdio: ["pipe", "pipe", "pipe"],
351
+ env: childEnv
352
+ }
353
+ );
354
+ } catch (error) {
355
+ reservation.cancel();
356
+ throw error;
357
+ }
358
+ const trackedChild = reservation.attach(child);
212
359
  if (child.stderr) {
213
360
  const prefix = `[serve pid=${child.pid} cwd=${workspaceCwd}] `;
214
361
  const forwarder = createStderrForwarder({
@@ -221,21 +368,8 @@ function createSpawnChannelFactory(options = {}) {
221
368
  child.stderr.on("error", () => {
222
369
  });
223
370
  }
224
- const exited = new Promise((resolve) => {
225
- let resolved = false;
226
- const finish = /* @__PURE__ */ __name((info) => {
227
- if (resolved) return;
228
- resolved = true;
229
- resolve(info);
230
- }, "finish");
231
- child.once(
232
- "exit",
233
- (code, signal) => finish({ exitCode: code, signalCode: signal })
234
- );
235
- child.once("error", () => finish(void 0));
236
- });
237
371
  if (!child.stdin || !child.stdout) {
238
- child.kill("SIGKILL");
372
+ trackedChild.killSync();
239
373
  throw new Error(
240
374
  "Spawned ACP child has no stdin/stdout \u2014 cannot establish NDJSON channel."
241
375
  );
@@ -245,22 +379,14 @@ function createSpawnChannelFactory(options = {}) {
245
379
  const stream = ndJsonStream(writable, readable, options.pipeHooks);
246
380
  return {
247
381
  stream,
248
- kill: /* @__PURE__ */ __name(() => killChild(child), "kill"),
249
- killSync: /* @__PURE__ */ __name(() => {
250
- if (child.exitCode === null && child.signalCode === null) {
251
- try {
252
- child.kill("SIGKILL");
253
- } catch {
254
- }
255
- }
256
- }, "killSync"),
257
- exited
382
+ kill: /* @__PURE__ */ __name(() => trackedChild.terminate(), "kill"),
383
+ killSync: /* @__PURE__ */ __name(() => trackedChild.killSync(), "killSync"),
384
+ exited: trackedChild.exited
258
385
  };
259
386
  };
260
387
  }
261
388
  __name(createSpawnChannelFactory, "createSpawnChannelFactory");
262
389
  var defaultSpawnChannelFactory = createSpawnChannelFactory();
263
- var KILL_HARD_DEADLINE_MS = 1e4;
264
390
  var SCRUBBED_CHILD_ENV_KEYS = /* @__PURE__ */ new Set([
265
391
  "QWEN_SERVER_TOKEN",
266
392
  "QWEN_CODE_SIMPLE"
@@ -283,46 +409,6 @@ function scrubChildEnv(source, scrubbed, overrides) {
283
409
  return childEnv;
284
410
  }
285
411
  __name(scrubChildEnv, "scrubChildEnv");
286
- function killChild(child) {
287
- return new Promise((resolve) => {
288
- if (child.exitCode !== null || child.signalCode !== null) {
289
- resolve();
290
- return;
291
- }
292
- let resolved = false;
293
- const finish = /* @__PURE__ */ __name(() => {
294
- if (resolved) return;
295
- resolved = true;
296
- child.removeListener("exit", finish);
297
- resolve();
298
- }, "finish");
299
- child.once("exit", finish);
300
- try {
301
- child.kill("SIGTERM");
302
- } catch {
303
- finish();
304
- return;
305
- }
306
- setTimeout(() => {
307
- if (!resolved && child.exitCode === null && child.signalCode === null) {
308
- try {
309
- child.kill("SIGKILL");
310
- } catch {
311
- }
312
- }
313
- }, 5e3).unref();
314
- setTimeout(() => {
315
- if (!resolved) {
316
- process.stderr.write(
317
- `qwen serve: killChild hard deadline (${KILL_HARD_DEADLINE_MS}ms) reached; child pid=${child.pid} still alive (uninterruptible sleep?) \u2014 abandoning. Operator should check for zombie qwen --acp processes holding workspace resources.
318
- `
319
- );
320
- finish();
321
- }
322
- }, KILL_HARD_DEADLINE_MS).unref();
323
- });
324
- }
325
- __name(killChild, "killChild");
326
412
 
327
413
  export {
328
414
  ndJsonStream,
@@ -89,7 +89,6 @@ function summarizeMcpResource(formatted) {
89
89
  __name(summarizeMcpResource, "summarizeMcpResource");
90
90
 
91
91
  export {
92
- MAX_MCP_RESOURCE_TEXT_CHARS,
93
92
  MAX_MCP_RESOURCE_BLOB_CHARS,
94
93
  formatMcpResourceContents,
95
94
  emptyMcpResourceText,
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  getGlobalQwenDir
5
- } from "./chunk-RWTEFFPU.js";
5
+ } from "./chunk-JCJ7LKNA.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -12,7 +12,8 @@ import {
12
12
 
13
13
  // packages/channels/weixin/dist/accounts.js
14
14
  init_esbuild_shims();
15
- import { existsSync, mkdirSync, readFileSync, writeFileSync, unlinkSync, chmodSync } from "node:fs";
15
+ import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync, unlinkSync, renameSync } from "node:fs";
16
+ import { randomBytes } from "node:crypto";
16
17
  import { join } from "node:path";
17
18
  var DEFAULT_BASE_URL = "https://ilinkai.weixin.qq.com";
18
19
  function getStateDir() {
@@ -40,15 +41,37 @@ function loadAccount() {
40
41
  __name(loadAccount, "loadAccount");
41
42
  function saveAccount(data) {
42
43
  const p = accountPath();
43
- writeFileSync(p, JSON.stringify(data, null, 2), "utf-8");
44
- chmodSync(p, 384);
44
+ const tmp = `${p}.${randomBytes(6).toString("hex")}.tmp`;
45
+ try {
46
+ writeFileSync(tmp, JSON.stringify(data, null, 2), {
47
+ encoding: "utf-8",
48
+ mode: 384,
49
+ flag: "wx"
50
+ });
51
+ renameSync(tmp, p);
52
+ } catch (e) {
53
+ try {
54
+ unlinkSync(tmp);
55
+ } catch {
56
+ }
57
+ throw e;
58
+ }
45
59
  }
46
60
  __name(saveAccount, "saveAccount");
47
61
  function clearAccount() {
48
- const p = accountPath();
62
+ const dir = getStateDir();
63
+ const p = join(dir, "account.json");
49
64
  if (existsSync(p)) {
50
65
  unlinkSync(p);
51
66
  }
67
+ for (const f of readdirSync(dir)) {
68
+ if (f.startsWith("account.json.") && f.endsWith(".tmp")) {
69
+ try {
70
+ unlinkSync(join(dir, f));
71
+ } catch {
72
+ }
73
+ }
74
+ }
52
75
  }
53
76
  __name(clearAccount, "clearAccount");
54
77
 
@@ -2,20 +2,23 @@
2
2
  "use strict";
3
3
  import {
4
4
  mapSkillConfigToStatus
5
- } from "./chunk-2W3OOD4W.js";
5
+ } from "./chunk-L55JWS76.js";
6
6
  import {
7
7
  STATUS_SCHEMA_VERSION
8
- } from "./chunk-VIA5XA4U.js";
8
+ } from "./chunk-MKQOXP2O.js";
9
+ import {
10
+ resolveSkillSettings
11
+ } from "./chunk-Z4X5MTRT.js";
9
12
  import {
10
13
  loadSettings
11
- } from "./chunk-TEHGS6UP.js";
14
+ } from "./chunk-7A4V5CJY.js";
12
15
  import {
13
16
  writeStderrLine
14
17
  } from "./chunk-OWAK7LMW.js";
15
18
  import {
16
19
  SkillManager,
17
20
  isSafeModeEnv
18
- } from "./chunk-PHOF65IG.js";
21
+ } from "./chunk-EYGWU66Z.js";
19
22
  import {
20
23
  init_esbuild_shims
21
24
  } from "./chunk-5O2XNYP6.js";
@@ -25,17 +28,18 @@ import {
25
28
 
26
29
  // packages/cli/src/serve/workspace-skills-status.ts
27
30
  init_esbuild_shims();
28
- function createWorkspaceSkillsStatusProvider() {
31
+ function createWorkspaceSkillsStatusProvider(options = {}) {
29
32
  const managers = /* @__PURE__ */ new Map();
30
33
  const provider = /* @__PURE__ */ __name((workspaceCwd) => buildWorkspaceSkillsStatus(
31
34
  workspaceCwd,
32
- managers
35
+ managers,
36
+ options.workspaceTrusted ?? true
33
37
  ), "provider");
34
38
  provider.invalidate = (workspaceCwd) => managers.delete(workspaceCwd);
35
39
  return provider;
36
40
  }
37
41
  __name(createWorkspaceSkillsStatusProvider, "createWorkspaceSkillsStatusProvider");
38
- async function buildWorkspaceSkillsStatus(workspaceCwd, managers) {
42
+ async function buildWorkspaceSkillsStatus(workspaceCwd, managers, workspaceTrusted) {
39
43
  try {
40
44
  let skillManager = managers.get(workspaceCwd);
41
45
  if (!skillManager) {
@@ -43,7 +47,7 @@ async function buildWorkspaceSkillsStatus(workspaceCwd, managers) {
43
47
  // Honor the safe-mode env the same way `Config` does when no explicit
44
48
  // flag is passed, so an operator running in safe mode gets the same
45
49
  // bundled-only listing the child would produce.
46
- isSafeMode: /* @__PURE__ */ __name(() => isSafeModeEnv(), "isSafeMode"),
50
+ isSafeMode: /* @__PURE__ */ __name(() => !workspaceTrusted || isSafeModeEnv(), "isSafeMode"),
47
51
  // Bare mode is the interactive `--bare` CLI flag; the daemon never runs
48
52
  // bare, so it is always off here.
49
53
  getBareMode: /* @__PURE__ */ __name(() => false, "getBareMode"),
@@ -55,13 +59,22 @@ async function buildWorkspaceSkillsStatus(workspaceCwd, managers) {
55
59
  skillManager = new SkillManager(shim);
56
60
  managers.set(workspaceCwd, skillManager);
57
61
  }
58
- const disabled = readDisabledSkillNames(workspaceCwd);
62
+ const disablements = resolveSkillSettings(
63
+ loadSettings(workspaceCwd, {
64
+ consumeCorruptionEnvVars: false,
65
+ skipLoadEnvironment: !workspaceTrusted,
66
+ skipWorkspaceSettings: !workspaceTrusted,
67
+ workspaceTrusted
68
+ })
69
+ ).disablements;
59
70
  const skills = await skillManager.listSkills();
60
71
  return {
61
72
  v: STATUS_SCHEMA_VERSION,
62
73
  workspaceCwd,
63
74
  initialized: true,
64
- skills: skills.map((skill) => mapSkillConfigToStatus(skill, disabled))
75
+ skills: skills.map(
76
+ (skill) => mapSkillConfigToStatus(skill, disablements)
77
+ )
65
78
  };
66
79
  } catch (error) {
67
80
  const message = error instanceof Error ? error.message : String(error);
@@ -84,14 +97,6 @@ async function buildWorkspaceSkillsStatus(workspaceCwd, managers) {
84
97
  }
85
98
  }
86
99
  __name(buildWorkspaceSkillsStatus, "buildWorkspaceSkillsStatus");
87
- function readDisabledSkillNames(workspaceCwd) {
88
- const raw = loadSettings(workspaceCwd, false).merged.skills?.disabled;
89
- if (!Array.isArray(raw)) return /* @__PURE__ */ new Set();
90
- return new Set(
91
- raw.filter((name) => typeof name === "string").map((name) => name.trim().toLowerCase()).filter(Boolean)
92
- );
93
- }
94
- __name(readDisabledSkillNames, "readDisabledSkillNames");
95
100
 
96
101
  export {
97
102
  createWorkspaceSkillsStatusProvider
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  getRateLimitErrorDetails
5
- } from "./chunk-6FGBXPWM.js";
5
+ } from "./chunk-RPLGZJV2.js";
6
6
  import {
7
7
  isInternalPromptId
8
- } from "./chunk-CIKQ7KKO.js";
8
+ } from "./chunk-2Q4CZ3V6.js";
9
9
  import {
10
10
  createDebugLogger
11
- } from "./chunk-NL7LTRLR.js";
11
+ } from "./chunk-UHUSJ6X7.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -279,8 +279,7 @@ var openaiLogger = new OpenAILogger();
279
279
 
280
280
  export {
281
281
  resolveOpenAILogDir,
282
- OpenAILogger,
283
- openaiLogger
282
+ OpenAILogger
284
283
  };
285
284
  /**
286
285
  * @license