@qwen-code/qwen-code 0.21.10 → 0.21.11-nightly.20260814.45c2e73080

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 (378) hide show
  1. package/bundled/coordinate/SKILL.md +52 -0
  2. package/bundled/qc-helper/docs/configuration/model-providers.md +10 -8
  3. package/bundled/qc-helper/docs/configuration/settings.md +10 -0
  4. package/bundled/qc-helper/docs/extension/_meta.ts +1 -0
  5. package/bundled/qc-helper/docs/extension/agent-plugins.md +50 -0
  6. package/bundled/qc-helper/docs/extension/extension-releasing.md +3 -3
  7. package/bundled/qc-helper/docs/extension/introduction.md +17 -3
  8. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  9. package/bundled/qc-helper/docs/features/arena.md +4 -3
  10. package/bundled/qc-helper/docs/features/code-review.md +1 -1
  11. package/bundled/qc-helper/docs/features/commands.md +7 -6
  12. package/bundled/qc-helper/docs/features/dual-output.md +5 -0
  13. package/bundled/qc-helper/docs/features/headless.md +8 -0
  14. package/bundled/qc-helper/docs/features/multi-agent-coordination.md +30 -0
  15. package/bundled/qc-helper/docs/qwen-serve.md +40 -40
  16. package/bundled/review/SKILL.md +45 -23
  17. package/chunks/{MaxSizedBox-FKXYULMW.js → MaxSizedBox-P4Z76535.js} +45 -44
  18. package/chunks/{StandaloneSessionPicker-OQS3M7AY.js → StandaloneSessionPicker-TRWDBCJG.js} +65 -64
  19. package/chunks/{acp-startup-profiler-VNTFWYAC.js → acp-startup-profiler-TVI2OVUN.js} +2 -2
  20. package/chunks/{acpAgent-AGS6HLQQ.js → acpAgent-MSZHQSZ7.js} +1645 -579
  21. package/chunks/{agent-4NCVO27U.js → agent-TMTEYQGK.js} +42 -41
  22. package/chunks/agent-headless-54WWND2M.js +87 -0
  23. package/chunks/{anthropicContentGenerator-D3Y4RFT4.js → anthropicContentGenerator-7ZK7U65G.js} +8 -8
  24. package/chunks/{artifact-tool-N652YE4L.js → artifact-tool-7HVSSXYZ.js} +2 -2
  25. package/chunks/{askUserQuestion-ONW74PKJ.js → askUserQuestion-IQCA2SOX.js} +2 -2
  26. package/chunks/{bridge-FHINXZMN.js → bridge-CI2NKV64.js} +49 -48
  27. package/chunks/{ca-ZLKAB4K3.js → ca-4CQ6MYNQ.js} +2 -1
  28. package/chunks/{channel-management-service-PHELKOW2.js → channel-management-service-LNEYNMDX.js} +6 -6
  29. package/chunks/channel-settings-store-QU4WFXHO.js +102 -0
  30. package/chunks/{channel-worker-group-WQP4RCDO.js → channel-worker-group-Q5WQVOMZ.js} +8 -7
  31. package/chunks/{channel-worker-manager-MRDFAKIM.js → channel-worker-manager-Z3JLH72P.js} +8 -7
  32. package/chunks/{channel-worker-supervisor-IVSDIMI4.js → channel-worker-supervisor-CG5HHT7K.js} +6 -5
  33. package/chunks/{chunk-A7XMDZRI.js → chunk-2AG524A4.js} +5 -5
  34. package/chunks/{chunk-GM463R2B.js → chunk-2ASWIM4A.js} +1 -1
  35. package/chunks/{chunk-DP3IHZGG.js → chunk-2AUM35J5.js} +59 -7
  36. package/chunks/{chunk-TZEZYNYD.js → chunk-2N6CV4PW.js} +1 -1
  37. package/chunks/{chunk-BSI645OU.js → chunk-3LHSUFPE.js} +3 -3
  38. package/chunks/{chunk-DCZEPFB4.js → chunk-3XLWKV4S.js} +3 -3
  39. package/chunks/{chunk-YWPSGJFI.js → chunk-4IBNVBGJ.js} +2 -2
  40. package/chunks/{chunk-ZRBMO3C7.js → chunk-4IWFPTAH.js} +1 -1
  41. package/chunks/{chunk-B2GJNDTV.js → chunk-4JS2QK7P.js} +1 -1
  42. package/chunks/{chunk-5MZCSWI4.js → chunk-4NV6L4GZ.js} +1184 -1450
  43. package/chunks/{chunk-Y3OVRWRY.js → chunk-4QC6SUVN.js} +1 -1
  44. package/chunks/{chunk-AOHJKPKL.js → chunk-5KZNWF2M.js} +1 -1
  45. package/chunks/{chunk-UMD7WQTR.js → chunk-5XNR53C7.js} +10 -8
  46. package/chunks/{chunk-IIJEYBNH.js → chunk-66PLFJQ7.js} +197 -60
  47. package/chunks/{chunk-SEZ556DZ.js → chunk-67F2BEYW.js} +1 -1
  48. package/chunks/{chunk-7GTMV7UE.js → chunk-6KXHEN6M.js} +8700 -2449
  49. package/chunks/{chunk-FVKHVJZQ.js → chunk-6OJDN5ZT.js} +1 -1
  50. package/chunks/{chunk-CKASRHZI.js → chunk-6SU6OW5Z.js} +1 -1
  51. package/chunks/{chunk-NEOXOWYH.js → chunk-6YUEAYJ5.js} +7 -7
  52. package/chunks/{chunk-QGNOFE5E.js → chunk-766PXUQ3.js} +1 -1
  53. package/chunks/{chunk-UVX4Y6IN.js → chunk-7JL5YBSA.js} +1 -1
  54. package/chunks/{chunk-2PLNY5TN.js → chunk-7MAHENBD.js} +4 -4
  55. package/chunks/{chunk-L2AFWWJE.js → chunk-7UNST76G.js} +105 -24
  56. package/chunks/{chunk-HUWENAHO.js → chunk-7WUMS2UA.js} +1 -1
  57. package/chunks/{chunk-MVUQRLOH.js → chunk-A4BAHMJF.js} +3 -3
  58. package/chunks/{chunk-7MH4J33A.js → chunk-A6GQUQ7I.js} +2 -2
  59. package/chunks/{chunk-GNPNYXJB.js → chunk-AAZWJAPQ.js} +2 -2
  60. package/chunks/{chunk-DX3RGJMS.js → chunk-ADJDLEVO.js} +72 -13
  61. package/chunks/{chunk-IWTMYQ32.js → chunk-AN3LCBS7.js} +9 -8
  62. package/chunks/{chunk-LHEC5V6G.js → chunk-AXEL55JW.js} +2 -2
  63. package/chunks/{chunk-QUI267ZP.js → chunk-B66LYK4B.js} +492 -63
  64. package/chunks/{chunk-VNNWAZSI.js → chunk-BCGJZGFI.js} +3 -3
  65. package/chunks/{chunk-F6WDTQ3M.js → chunk-BRYHERQ6.js} +5 -5
  66. package/chunks/{chunk-6ZRFAKXK.js → chunk-C2DR57L6.js} +1 -1
  67. package/chunks/{chunk-26CXSA6V.js → chunk-CAOT4DYN.js} +2 -2
  68. package/chunks/{chunk-H6XPXXMH.js → chunk-CQ35AJ4Z.js} +252 -254
  69. package/chunks/{chunk-F24A2JBM.js → chunk-CUXI3S6E.js} +914 -175
  70. package/chunks/{chunk-AEL7KN2O.js → chunk-DANYMI4U.js} +2 -2
  71. package/chunks/{chunk-AAE6SR4Q.js → chunk-DX7V233D.js} +1 -1
  72. package/chunks/{chunk-PJRW65JO.js → chunk-E74YSVIN.js} +1 -1
  73. package/chunks/{chunk-OWMAZHIX.js → chunk-EGB2PIYM.js} +1 -1
  74. package/chunks/{chunk-TRRF5BSP.js → chunk-F4BUGC4Y.js} +1 -1
  75. package/chunks/{chunk-4MKXUHXY.js → chunk-FGQY4VOZ.js} +5 -5
  76. package/chunks/{chunk-ZBVS26BY.js → chunk-FPGTNKCP.js} +7 -5
  77. package/chunks/{chunk-SR7RZ4MS.js → chunk-FTGU6G45.js} +2 -2
  78. package/chunks/{chunk-IBUGFUXC.js → chunk-G2ZEKO4T.js} +12 -12
  79. package/chunks/{chunk-NDU63YLI.js → chunk-GN2SCYBA.js} +4 -4
  80. package/chunks/{chunk-NV3F44FL.js → chunk-GNRFC5UM.js} +2 -2
  81. package/chunks/{chunk-KKBPOU75.js → chunk-H6BFLALJ.js} +1 -1
  82. package/chunks/chunk-HHJLM3WQ.js +41 -0
  83. package/chunks/{chunk-LLCWZQCU.js → chunk-HM7TLULV.js} +3 -3
  84. package/chunks/{chunk-ECWR5LQR.js → chunk-I76FLAP7.js} +3 -3
  85. package/chunks/{chunk-Q3AL4JQ3.js → chunk-IAE7LYSB.js} +2 -2
  86. package/chunks/{chunk-DREZZAZM.js → chunk-IDNVCWXZ.js} +13 -5
  87. package/chunks/{chunk-YF5MALI4.js → chunk-IPMHLZPY.js} +20 -16
  88. package/chunks/{chunk-UDXSXLER.js → chunk-IW6RQPQB.js} +14 -4
  89. package/chunks/{chunk-UBX6NL47.js → chunk-JLT5HCGQ.js} +47 -3
  90. package/chunks/{chunk-COBO5EBO.js → chunk-JRTJEGSP.js} +1 -1
  91. package/chunks/{chunk-PBRVUF5B.js → chunk-JW5UEE3V.js} +1 -1
  92. package/chunks/{chunk-W4RQUHY3.js → chunk-K5IDV3PC.js} +184 -22
  93. package/chunks/{chunk-O3EU6GMH.js → chunk-KACBT7N7.js} +27 -4
  94. package/chunks/{chunk-MFDYOYZZ.js → chunk-KCGEAL2C.js} +25 -2
  95. package/chunks/{chunk-EI3HZX6C.js → chunk-KK3FEHPJ.js} +1 -1
  96. package/chunks/{chunk-OJUQF2PL.js → chunk-KRRRRU3X.js} +5 -5
  97. package/chunks/{chunk-J6SZID63.js → chunk-KTWUFHS4.js} +2 -2
  98. package/chunks/{chunk-E2FPSSKP.js → chunk-KZKEVWJW.js} +57 -13
  99. package/chunks/{chunk-ZJ4W6SUY.js → chunk-L6PE52MF.js} +3 -3
  100. package/chunks/{chunk-YGT2AUJ7.js → chunk-LAKFZU36.js} +39 -19
  101. package/chunks/{chunk-47PEPJO7.js → chunk-LKN5SEHD.js} +3 -3
  102. package/chunks/{chunk-OQTXYMKW.js → chunk-LSMCI42W.js} +3 -3
  103. package/chunks/{chunk-ABVRJU3D.js → chunk-LY2SB7GC.js} +7 -7
  104. package/chunks/{chunk-D27I6YJT.js → chunk-M53FFYQJ.js} +27 -18
  105. package/chunks/{chunk-YTFDX4PR.js → chunk-M6NDLY2T.js} +1 -1
  106. package/chunks/{chunk-3P2LV43B.js → chunk-MMEDZKWK.js} +3 -3
  107. package/chunks/{chunk-VFMASYQA.js → chunk-MS7GNABG.js} +3 -0
  108. package/chunks/{chunk-6LP743KE.js → chunk-MUTFMB5B.js} +78 -112
  109. package/chunks/{chunk-URK542T4.js → chunk-NF5J2WFA.js} +15 -2
  110. package/chunks/{chunk-VSFKIRRW.js → chunk-NH6U7L42.js} +4 -4
  111. package/chunks/{chunk-DA4HRSBW.js → chunk-NHZF4VCD.js} +1 -1
  112. package/chunks/{chunk-QG3FFJYU.js → chunk-NJE5NH5B.js} +1 -1
  113. package/chunks/{chunk-2UUMVNYT.js → chunk-NM33GGOM.js} +3 -3
  114. package/chunks/{chunk-FOGU3LJX.js → chunk-NW7SPXVG.js} +1 -1
  115. package/chunks/{chunk-EUNWC2VS.js → chunk-O6SLWH4X.js} +2 -2
  116. package/chunks/{chunk-EBZ6BJTF.js → chunk-OEVVUUYW.js} +1 -1
  117. package/chunks/chunk-OMVHZ7E6.js +1280 -0
  118. package/chunks/{chunk-KZ22NXBY.js → chunk-OT72MGHE.js} +4 -4
  119. package/chunks/{chunk-DZUO626D.js → chunk-OUCCIS3E.js} +3 -3
  120. package/chunks/{chunk-OONWZLFK.js → chunk-OYLYERMH.js} +4 -4
  121. package/chunks/{chunk-P3BJLFSZ.js → chunk-OYQM5XZ4.js} +3 -3
  122. package/chunks/{chunk-NRLFZWCT.js → chunk-PNU3TILU.js} +3 -3
  123. package/chunks/{chunk-M6HMMKVG.js → chunk-PSTHNTHF.js} +1 -1
  124. package/chunks/{chunk-4PYCZH2V.js → chunk-QEWAHAW2.js} +3 -3
  125. package/chunks/{chunk-QJMOAMXT.js → chunk-RG2S3GYC.js} +8 -8
  126. package/chunks/{chunk-CTJLZLB5.js → chunk-RQS2BGPI.js} +1 -1
  127. package/chunks/{chunk-Y4R47ZUH.js → chunk-RTBUTKAX.js} +7 -7
  128. package/chunks/{chunk-NV65ZUVM.js → chunk-RZZV6GQN.js} +1 -1
  129. package/chunks/{chunk-UEOKWYGY.js → chunk-SESSAEWC.js} +11 -11
  130. package/chunks/{chunk-CPG6P4GG.js → chunk-SKRHR6N2.js} +1 -1
  131. package/chunks/{chunk-WAUGQKUU.js → chunk-SNHBRO4C.js} +9 -5
  132. package/chunks/{chunk-KID7K6H2.js → chunk-SNPOURNX.js} +6 -6
  133. package/chunks/{chunk-VWKER4ZH.js → chunk-SQCTJ435.js} +3 -3
  134. package/chunks/{chunk-Z4JX4NSH.js → chunk-SXJ7JYQA.js} +23 -23
  135. package/chunks/{chunk-XVHYA33G.js → chunk-TD7JVTIA.js} +4 -4
  136. package/chunks/{chunk-IRZ2ZH72.js → chunk-TEFHXP7C.js} +4 -4
  137. package/chunks/{chunk-2FRY5CRX.js → chunk-TNETSI2A.js} +3 -3
  138. package/chunks/{chunk-IA7TGCN2.js → chunk-TROB4PZY.js} +4 -4
  139. package/chunks/{chunk-4TRQPFDP.js → chunk-U3O2EO5Y.js} +26 -20
  140. package/chunks/{chunk-VKJ4KTPJ.js → chunk-U7ROFHSH.js} +1 -1
  141. package/chunks/{chunk-Q3JQ7OSU.js → chunk-UBC6PMV7.js} +1 -1
  142. package/chunks/{chunk-W5UC37EE.js → chunk-UFHPAMAV.js} +6 -0
  143. package/chunks/{chunk-EQL65XGA.js → chunk-UHF5VBKO.js} +47 -21
  144. package/chunks/{chunk-S6HYI3MF.js → chunk-UQPLUR4A.js} +2 -2
  145. package/chunks/{chunk-HGCQ5SE7.js → chunk-UXEO7E3V.js} +21 -0
  146. package/chunks/{chunk-WCG5O7IP.js → chunk-V3NMFQD2.js} +2 -2
  147. package/chunks/{chunk-EKPKKXY2.js → chunk-V4SJMQVJ.js} +1 -1
  148. package/chunks/{chunk-ONSZH6VM.js → chunk-VFJVRSRK.js} +2 -2
  149. package/chunks/{chunk-MZSJ43WV.js → chunk-W5ZFJYUG.js} +13 -0
  150. package/chunks/{chunk-XCGIMOLN.js → chunk-WCCLLK7X.js} +14 -1
  151. package/chunks/{chunk-4WL6SY4F.js → chunk-WDSTNDEW.js} +1 -1
  152. package/chunks/{chunk-KONVMRK7.js → chunk-WFTBYUOR.js} +1 -1
  153. package/chunks/{chunk-EI3NWELG.js → chunk-WH32GXQS.js} +6233 -4342
  154. package/chunks/{chunk-MIKXJYZB.js → chunk-WS5TWVT6.js} +305 -291
  155. package/chunks/{chunk-VJNBRRZG.js → chunk-WZMH7II3.js} +1 -1
  156. package/chunks/{chunk-67EWJE77.js → chunk-XY7DGTIC.js} +1 -1
  157. package/chunks/{chunk-HV76SFIA.js → chunk-YI5G32RU.js} +3 -3
  158. package/chunks/{chunk-OIVKILPI.js → chunk-YMB77M76.js} +18 -0
  159. package/chunks/{chunk-AQAJJMRR.js → chunk-YPITLFHS.js} +1 -1
  160. package/chunks/{chunk-WOJZWRAZ.js → chunk-YRLW2MSX.js} +1 -1
  161. package/chunks/{chunk-ZZCWJWTF.js → chunk-YY23TR4M.js} +31 -11
  162. package/chunks/{chunk-URKIBIFC.js → chunk-YYI3Z3AO.js} +3 -3
  163. package/chunks/chunk-Z7B6SRPM.js +32 -0
  164. package/chunks/{chunk-6Q5ABMTU.js → chunk-ZGONVQ3D.js} +23 -19
  165. package/chunks/{chunk-GWVUR3QZ.js → chunk-ZM6LZON7.js} +3 -3
  166. package/chunks/{chunk-XCWO3SMQ.js → chunk-ZPZANKVP.js} +3 -3
  167. package/chunks/{chunk-OCSFNUU4.js → chunk-ZRD3BUEX.js} +8 -8
  168. package/chunks/{chunk-PYQADEFD.js → chunk-ZRT36RSF.js} +1 -1
  169. package/chunks/{chunk-JT7XS4YW.js → chunk-ZZ7RUTJ4.js} +1 -1
  170. package/chunks/{computer-use-WQFK33Z3.js → computer-use-7BMFU557.js} +42 -41
  171. package/chunks/{config-utils-ULCSRMWD.js → config-utils-I732W437.js} +6 -6
  172. package/chunks/{contextCommand-7EOZND7C.js → contextCommand-VJ6UOMM4.js} +44 -43
  173. package/chunks/{core-runtime-FGMQRM6E.js → core-runtime-PMRKP77C.js} +42 -41
  174. package/chunks/{create-sub-session-QIDZUOPU.js → create-sub-session-23ULO5PO.js} +2 -2
  175. package/chunks/{create-sub-session-QM2K5HLZ.js → create-sub-session-5A3MSW22.js} +42 -41
  176. package/chunks/{cron-create-VONA5JYY.js → cron-create-5WUTNKNF.js} +4 -4
  177. package/chunks/{cron-delete-5JXSP2MI.js → cron-delete-JEQ27YPS.js} +4 -4
  178. package/chunks/{cron-list-KE4F2CIR.js → cron-list-IXGCA7UR.js} +4 -4
  179. package/chunks/{daemon-GWD7BT6E.js → daemon-PXIC4ZDK.js} +186 -7
  180. package/chunks/daemon-status-provider-33BLPRUA.js +103 -0
  181. package/chunks/daemon-trust-policy-ZUV26YGP.js +99 -0
  182. package/chunks/{daemon-trust-policy-monitor-6UKEABN5.js → daemon-trust-policy-monitor-35WRTIMA.js} +49 -48
  183. package/chunks/{de-LIW4XVLN.js → de-UBEBKG6V.js} +2 -1
  184. package/chunks/{deferred-core-runtime-67GJXHXS.js → deferred-core-runtime-ZSLQKM7J.js} +42 -41
  185. package/chunks/{display-image-NQRSIBXM.js → display-image-CAD7RAUM.js} +4 -4
  186. package/chunks/{dist-6BMOAE3Z.js → dist-362MN6CP.js} +4 -4
  187. package/chunks/{dist-3NTTUAHT.js → dist-5VDE7U3A.js} +3 -3
  188. package/chunks/{dist-Z3CS4OVP.js → dist-6RK4U6VU.js} +11 -5
  189. package/chunks/{dist-B2CGTW6T.js → dist-CCUH2Z4C.js} +3 -3
  190. package/chunks/{dist-J47AXBZC.js → dist-EZHCZSW6.js} +3 -3
  191. package/chunks/{dist-EZE3V3Q7.js → dist-JIORWIDV.js} +3 -3
  192. package/chunks/{dist-EWW3J4HQ.js → dist-M3XMEIP2.js} +3 -3
  193. package/chunks/{dist-OTUO3AS2.js → dist-NN5ARGTQ.js} +13 -5
  194. package/chunks/{earlyInputCapture-IWMYR6OB.js → earlyInputCapture-UNMCTGJR.js} +43 -42
  195. package/chunks/{edit-ZFGROCAF.js → edit-TXVTSXHY.js} +42 -41
  196. package/chunks/{en-SY5GTIGX.js → en-X6YV7GME.js} +2 -1
  197. package/chunks/{enter-worktree-TZZZCDM5.js → enter-worktree-7Q3X4PW7.js} +42 -41
  198. package/chunks/{enterPlanMode-U77BI3R6.js → enterPlanMode-AZBU3ZB6.js} +42 -41
  199. package/chunks/{environment-HC37DS2I.js → environment-TGFFQISF.js} +45 -44
  200. package/chunks/{errors-6AG54JPD.js → errors-GVPFT7BA.js} +44 -43
  201. package/chunks/{exit-worktree-UYYWFPNK.js → exit-worktree-7INKYMWE.js} +42 -41
  202. package/chunks/exitPlanMode-5CE7CLAE.js +85 -0
  203. package/chunks/{fast-path-F5FSZ3O7.js → fast-path-7B6F74IR.js} +5 -5
  204. package/chunks/{fast-path-settings-RPAVBD7P.js → fast-path-settings-LNOFM2YP.js} +2 -2
  205. package/chunks/{fr-RQFO7U4P.js → fr-VENTC2BS.js} +2 -1
  206. package/chunks/{gemini-NKQHYM36.js → gemini-4RUYPDKT.js} +92 -91
  207. package/chunks/{geminiContentGenerator-HCWZOUX3.js → geminiContentGenerator-NLL52POY.js} +6 -6
  208. package/chunks/{glob-3PDXKBAO.js → glob-DHU3INUK.js} +42 -41
  209. package/chunks/{goal-tools-SWNB6GP4.js → goal-tools-LQFO4BRY.js} +4 -4
  210. package/chunks/{grep-5HZKZYVD.js → grep-523W6G52.js} +42 -41
  211. package/chunks/handleAutoUpdate-PKUQ3OQQ.js +94 -0
  212. package/chunks/{i18n-Q27KKNDL.js → i18n-HYL2UBJW.js} +43 -42
  213. package/chunks/{image-gen-2Z2RJ6W7.js → image-gen-NLIDBAKE.js} +10 -10
  214. package/chunks/initializer-DGH7RAJ7.js +100 -0
  215. package/chunks/{installationInfo-XXB75T7O.js → installationInfo-FZ4XWV7O.js} +43 -42
  216. package/chunks/{ja-KOZKHJHZ.js → ja-QHT4EQTO.js} +2 -1
  217. package/chunks/{keychain-token-storage-TVAMTNP7.js → keychain-token-storage-GU75J2T2.js} +2 -2
  218. package/chunks/list-RH5HGWRJ.js +103 -0
  219. package/chunks/{list-agents-Z4WABFDZ.js → list-agents-5PNMK2AM.js} +2 -2
  220. package/chunks/loadedSettingsAdapter-XMX2JDOU.js +97 -0
  221. package/chunks/{loggingContentGenerator-6NTFBM7Q.js → loggingContentGenerator-T3J4HZ7U.js} +139 -98
  222. package/chunks/{loop-wakeup-UZ5RL5Y2.js → loop-wakeup-OV65FEGR.js} +5 -5
  223. package/chunks/{ls-TVHDGIES.js → ls-7CETV7WV.js} +4 -4
  224. package/chunks/{lsp-CVN6OQPI.js → lsp-IWTJWFLT.js} +2 -2
  225. package/chunks/{managed-npm-update-SPHYQUWZ.js → managed-npm-update-E5ZGIGWV.js} +45 -44
  226. package/chunks/mcp-6LC572CW.js +97 -0
  227. package/chunks/{monitor-ZBBPAA54.js → monitor-HQUS4RTV.js} +42 -41
  228. package/chunks/nonInteractiveCli-X7HKTS5Z.js +163 -0
  229. package/chunks/{notebook-edit-5W3FW7Z2.js → notebook-edit-QPI3LTFM.js} +42 -41
  230. package/chunks/{openaiContentGenerator-TQANPEVZ.js → openaiContentGenerator-GGS72DVB.js} +29 -29
  231. package/chunks/{pidfile-EQOBLH4E.js → pidfile-HD3EB6GL.js} +43 -42
  232. package/chunks/{processUtils-7XQG7EHS.js → processUtils-2WNEPSW4.js} +2 -2
  233. package/chunks/{pt-U6AOCTMF.js → pt-VL3I5RNY.js} +2 -1
  234. package/chunks/{qwenContentGenerator-BKCPHHXU.js → qwenContentGenerator-WJYPELF3.js} +48 -48
  235. package/chunks/{qwenOAuth2-BJ6PQKE6.js → qwenOAuth2-RSMEBZU4.js} +9 -9
  236. package/chunks/read-file-URU5ALY3.js +32 -0
  237. package/chunks/{read-mcp-resource-PZ4ZF6YL.js → read-mcp-resource-THCSZHXO.js} +2 -2
  238. package/chunks/{read-package-up-TCM6I7S2.js → read-package-up-K6RKTL5D.js} +1 -1
  239. package/chunks/{record-artifact-P4HFMS7X.js → record-artifact-76YYQA5F.js} +3 -3
  240. package/chunks/{resumeHistoryUtils-6N6XGJJW.js → resumeHistoryUtils-XMC3CR2U.js} +49 -48
  241. package/chunks/ripGrep-6NYCUBVW.js +85 -0
  242. package/chunks/{ru-CMX4UMYP.js → ru-4RCKL4PY.js} +2 -1
  243. package/chunks/{run-qwen-serve-BCKBCAMX.js → run-qwen-serve-H4IXCJDQ.js} +165 -65
  244. package/chunks/{runtime-E2437YKL.js → runtime-EJHNZR7H.js} +55 -54
  245. package/chunks/{scheduler-K3D5Z655.js → scheduler-VVORKEEZ.js} +44 -43
  246. package/chunks/{sdk-exporters-http-XVTZQRCE.js → sdk-exporters-http-JYKTSCMG.js} +11 -7
  247. package/chunks/{sdk-impl-7W7AKCS4.js → sdk-impl-ROR54N3H.js} +13 -10
  248. package/chunks/{send-message-CAMSLG2L.js → send-message-P5SLP57G.js} +6 -6
  249. package/chunks/serve-3ULKH2KQ.js +107 -0
  250. package/chunks/{server-UD6INW7J.js → server-J52IQLRJ.js} +949 -303
  251. package/chunks/{session-GR4ZEVW4.js → session-MNWSMCC2.js} +118 -98
  252. package/chunks/{settings-5O24D3OJ.js → settings-WFCKUQZO.js} +48 -47
  253. package/chunks/{shell-UTLWLG5G.js → shell-H5DZN76B.js} +42 -41
  254. package/chunks/{skill-QQAZL4VO.js → skill-STSDBOIL.js} +19 -19
  255. package/chunks/{skill-settings-P3YHJVBZ.js → skill-settings-LTJAR2LV.js} +48 -47
  256. package/chunks/spawnChannel-XL27KTLE.js +98 -0
  257. package/chunks/{standalone-update-QP742MGP.js → standalone-update-3FUDL2R6.js} +44 -43
  258. package/chunks/{startInteractiveUI-YCS6AEPN.js → startInteractiveUI-5BFJCCWU.js} +596 -335
  259. package/chunks/{syntheticOutput-PEBJQYJV.js → syntheticOutput-SEW4NA47.js} +3 -3
  260. package/chunks/{task-create-5NWCQSJF.js → task-create-247EAVF7.js} +10 -10
  261. package/chunks/{task-list-53265TRZ.js → task-list-ZJN4QHLK.js} +5 -5
  262. package/chunks/{task-stop-FPCOIRYX.js → task-stop-MAYQJ42I.js} +2 -2
  263. package/chunks/{task-update-5HN577LS.js → task-update-CG4FALQF.js} +10 -10
  264. package/chunks/{team-create-WFH7OCDQ.js → team-create-FC2EYGE7.js} +44 -43
  265. package/chunks/{team-delete-MMQB4OSC.js → team-delete-3XVRPQBP.js} +5 -5
  266. package/chunks/{team-plan-approval-EGTT53MV.js → team-plan-approval-X673CRIZ.js} +42 -41
  267. package/chunks/{terminal-image-renderer-BWRESAQ7.js → terminal-image-renderer-MRNJ77H7.js} +44 -43
  268. package/chunks/theme-manager-6UMSB7DJ.js +89 -0
  269. package/chunks/{todoWrite-JGV6VLOX.js → todoWrite-IE2YTCK7.js} +4 -4
  270. package/chunks/{tool-search-TI5PTIBF.js → tool-search-7Z3PPA5O.js} +19 -19
  271. package/chunks/total-session-admission-NU4KV76R.js +99 -0
  272. package/chunks/{trustedFolders-4KYHA4IG.js → trustedFolders-SCUSHKHS.js} +43 -42
  273. package/chunks/{update-relaunch-WB6LGIF2.js → update-relaunch-M6BNKY4W.js} +5 -5
  274. package/chunks/{updateCheck-LOS5GYFC.js → updateCheck-QMZZ53S6.js} +48 -47
  275. package/chunks/{useAutoAcceptIndicator-MHAPY52L.js → useAutoAcceptIndicator-GAFG5PFE.js} +52 -51
  276. package/chunks/{validateNonInterActiveAuth-QV22HNQU.js → validateNonInterActiveAuth-V44BOAD2.js} +87 -86
  277. package/chunks/{version-DALWZHKQ.js → version-A4J2RQXD.js} +2 -2
  278. package/chunks/{web-fetch-JMJVMYFE.js → web-fetch-43TWEBWB.js} +19 -19
  279. package/chunks/{web-search-DNDUIPU5.js → web-search-CS3Q6JBI.js} +11 -11
  280. package/chunks/{workflow-JGNN64PM.js → workflow-ETQXJUPR.js} +115 -49
  281. package/chunks/workspace-providers-status-Y4FPKLHN.js +100 -0
  282. package/chunks/{workspace-registration-store-LRJG7QA4.js → workspace-registration-store-JASCK5RS.js} +1 -1
  283. package/chunks/{workspace-registry-KVXIFM36.js → workspace-registry-MU3VIM2D.js} +49 -48
  284. package/chunks/{workspace-service-PO4AAKKT.js → workspace-service-MHVHRNDX.js} +54 -53
  285. package/chunks/workspace-skills-status-QVQMNHGO.js +100 -0
  286. package/chunks/{workspace-trust-reconciler-DOZPCVHG.js → workspace-trust-reconciler-ABXDCISO.js} +56 -55
  287. package/chunks/write-file-YL7EPQRJ.js +87 -0
  288. package/chunks/{zh-AGL2FVBI.js → zh-LMSTK4WD.js} +2 -1
  289. package/chunks/{zh-TW-KI66MHQY.js → zh-TW-SQ4HTSCW.js} +2 -1
  290. package/chunks/{zoom-image-CNC77ZMA.js → zoom-image-ZQV6O2KE.js} +15 -15
  291. package/cli.js +13 -13
  292. package/locales/ca.js +1 -0
  293. package/locales/de.js +1 -0
  294. package/locales/en.js +1 -0
  295. package/locales/fr.js +1 -0
  296. package/locales/ja.js +1 -0
  297. package/locales/pt.js +1 -0
  298. package/locales/ru.js +1 -0
  299. package/locales/zh-TW.js +1 -0
  300. package/locales/zh.js +1 -0
  301. package/package.json +4 -4
  302. package/web-shell/assets/{arc-CDk0d60K.js → arc-BDKBUdHd.js} +1 -1
  303. package/web-shell/assets/{architectureDiagram-3BPJPVTR-h-W3I2lP.js → architectureDiagram-3BPJPVTR-DgMi5iOf.js} +1 -1
  304. package/web-shell/assets/{blockDiagram-GPEHLZMM-D1pvSmZg.js → blockDiagram-GPEHLZMM-DOyxD2BK.js} +1 -1
  305. package/web-shell/assets/{c4Diagram-AAUBKEIU-ByAm5ZNf.js → c4Diagram-AAUBKEIU-CmXzCE_n.js} +1 -1
  306. package/web-shell/assets/channel-BCff03Ag.js +1 -0
  307. package/web-shell/assets/{chunk-2J33WTMH-VrGPPOGV.js → chunk-2J33WTMH-Dr13N7PT.js} +1 -1
  308. package/web-shell/assets/{chunk-4BX2VUAB-B7hTowgG.js → chunk-4BX2VUAB-CIFcKNCP.js} +1 -1
  309. package/web-shell/assets/{chunk-55IACEB6-j1Fq8DpE.js → chunk-55IACEB6-B8jmrVPK.js} +1 -1
  310. package/web-shell/assets/{chunk-727SXJPM-UjABYpF2.js → chunk-727SXJPM-CQc0wjze.js} +1 -1
  311. package/web-shell/assets/{chunk-AQP2D5EJ-D4uBItrs.js → chunk-AQP2D5EJ-CGdZxT9s.js} +1 -1
  312. package/web-shell/assets/{chunk-FMBD7UC4-DeFbKlb8.js → chunk-FMBD7UC4-4iCBhCLJ.js} +1 -1
  313. package/web-shell/assets/{chunk-ND2GUHAM-rQJ8TIgT.js → chunk-ND2GUHAM-B0mMzZcM.js} +1 -1
  314. package/web-shell/assets/{chunk-QZHKN3VN-DAGcRxvq.js → chunk-QZHKN3VN-6CURQrGl.js} +1 -1
  315. package/web-shell/assets/classDiagram-4FO5ZUOK-DnwxH0ri.js +1 -0
  316. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DnwxH0ri.js +1 -0
  317. package/web-shell/assets/{cose-bilkent-S5V4N54A-MaE7MJSt.js → cose-bilkent-S5V4N54A-L6Fo1GN1.js} +1 -1
  318. package/web-shell/assets/{dagre-BM42HDAG-DzijYGSb.js → dagre-BM42HDAG-BTsGDeLA.js} +1 -1
  319. package/web-shell/assets/{diagram-2AECGRRQ-WdbG7WnX.js → diagram-2AECGRRQ-B4AXYZGR.js} +1 -1
  320. package/web-shell/assets/{diagram-5GNKFQAL-NYutsBnw.js → diagram-5GNKFQAL-C2yM5aNc.js} +1 -1
  321. package/web-shell/assets/{diagram-KO2AKTUF-Dqg0eBY0.js → diagram-KO2AKTUF-CrGLZmRK.js} +1 -1
  322. package/web-shell/assets/{diagram-LMA3HP47-C7vRP2Lb.js → diagram-LMA3HP47-rycHl4fv.js} +1 -1
  323. package/web-shell/assets/{diagram-OG6HWLK6-B2sEPpPt.js → diagram-OG6HWLK6-MQj80AQu.js} +1 -1
  324. package/web-shell/assets/{erDiagram-TEJ5UH35-a4zIbzm8.js → erDiagram-TEJ5UH35-DCgH-D0D.js} +1 -1
  325. package/web-shell/assets/{flowDiagram-I6XJVG4X-BK9y89ya.js → flowDiagram-I6XJVG4X-B0gnwCnt.js} +1 -1
  326. package/web-shell/assets/{ganttDiagram-6RSMTGT7-wUQTSNvV.js → ganttDiagram-6RSMTGT7-CB0OxXVE.js} +1 -1
  327. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Dnzt4SAi.js → gitGraphDiagram-PVQCEYII-xLxucse9.js} +1 -1
  328. package/web-shell/assets/{index-BA3wUcKL.js → index-BFFbq0E-.js} +1 -1
  329. package/web-shell/assets/index-D7XXR9S-.js +1789 -0
  330. package/web-shell/assets/index-Dk5RwPL9.css +5 -0
  331. package/web-shell/assets/{infoDiagram-5YYISTIA-DcaoToij.js → infoDiagram-5YYISTIA-7FCqN4qa.js} +1 -1
  332. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DzduqhP2.js → ishikawaDiagram-YF4QCWOH-BGyKlnik.js} +1 -1
  333. package/web-shell/assets/{journeyDiagram-JHISSGLW-BvviZR_O.js → journeyDiagram-JHISSGLW-CmgSXMLF.js} +1 -1
  334. package/web-shell/assets/{kanban-definition-UN3LZRKU-Efm2JxY3.js → kanban-definition-UN3LZRKU-CjT2mF6A.js} +1 -1
  335. package/web-shell/assets/{linear-DtY3IbOs.js → linear-CiTDGfCW.js} +1 -1
  336. package/web-shell/assets/{mermaid.core-PzpFqoMe.js → mermaid.core-_QnqxPRF.js} +5 -5
  337. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BLlTkHS0.js → mindmap-definition-RKZ34NQL-B1On14ZB.js} +1 -1
  338. package/web-shell/assets/{pieDiagram-4H26LBE5-D-mKF-jE.js → pieDiagram-4H26LBE5-x1Pf1OG2.js} +1 -1
  339. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DYCzslGm.js → quadrantDiagram-W4KKPZXB-ZawmK1Q9.js} +1 -1
  340. package/web-shell/assets/{requirementDiagram-4Y6WPE33-Dfpxlk7R.js → requirementDiagram-4Y6WPE33-krIMX0c8.js} +1 -1
  341. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-D5cRaaxh.js → sankeyDiagram-5OEKKPKP-aMJyxtx_.js} +1 -1
  342. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-s04DReiS.js → sequenceDiagram-3UESZ5HK-C530-Kqz.js} +1 -1
  343. package/web-shell/assets/{stateDiagram-AJRCARHV-01UNFgnb.js → stateDiagram-AJRCARHV-DObd9dT_.js} +1 -1
  344. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Bttf9Ae9.js +1 -0
  345. package/web-shell/assets/{timeline-definition-PNZ67QCA-DX8_wZBC.js → timeline-definition-PNZ67QCA-D9LnwQ1O.js} +1 -1
  346. package/web-shell/assets/{vennDiagram-CIIHVFJN-BK0FlBme.js → vennDiagram-CIIHVFJN-B_MT_v6Y.js} +1 -1
  347. package/web-shell/assets/{wardley-L42UT6IY-DkPc9UlD.js → wardley-L42UT6IY-DHKPz5Hu.js} +1 -1
  348. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DNKkpDAo.js → wardleyDiagram-YWT4CUSO-BoyKaItA.js} +1 -1
  349. package/web-shell/assets/{xychartDiagram-2RQKCTM6-CiPwg8QG.js → xychartDiagram-2RQKCTM6--xBJT7Kg.js} +1 -1
  350. package/web-shell/index.html +2 -2
  351. package/chunks/agent-headless-HYEHZFH6.js +0 -86
  352. package/chunks/channel-settings-store-OXYG5S5X.js +0 -101
  353. package/chunks/chunk-I5VM3SKY.js +0 -451
  354. package/chunks/chunk-PDPFQ2FO.js +0 -156
  355. package/chunks/daemon-status-provider-L3J6GKCT.js +0 -102
  356. package/chunks/daemon-trust-policy-4PHPY23S.js +0 -98
  357. package/chunks/exitPlanMode-RWJR2KGB.js +0 -84
  358. package/chunks/handleAutoUpdate-NHFSGYTF.js +0 -93
  359. package/chunks/initializer-Y5DJLT43.js +0 -99
  360. package/chunks/list-YHNQ32CS.js +0 -102
  361. package/chunks/loadedSettingsAdapter-GHUQK7H4.js +0 -96
  362. package/chunks/mcp-EA3KO6FS.js +0 -96
  363. package/chunks/nonInteractiveCli-NNOR56HU.js +0 -162
  364. package/chunks/read-file-KKTXGIZD.js +0 -32
  365. package/chunks/ripGrep-SJVAAYDV.js +0 -84
  366. package/chunks/serve-IH4XR5IL.js +0 -106
  367. package/chunks/spawnChannel-UAQMH6Y6.js +0 -94
  368. package/chunks/theme-manager-ZNDGAHJN.js +0 -88
  369. package/chunks/total-session-admission-66UDSOHO.js +0 -98
  370. package/chunks/workspace-providers-status-K22B3Z6B.js +0 -99
  371. package/chunks/workspace-skills-status-DDYCBVSH.js +0 -99
  372. package/chunks/write-file-TT6MWIKC.js +0 -86
  373. package/web-shell/assets/channel-DPFUV4oi.js +0 -1
  374. package/web-shell/assets/classDiagram-4FO5ZUOK-CLm0hVvw.js +0 -1
  375. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CLm0hVvw.js +0 -1
  376. package/web-shell/assets/index-BjC3yjjL.css +0 -5
  377. package/web-shell/assets/index-QzFq6w7o.js +0 -1775
  378. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DXb5olqv.js +0 -1
@@ -380,49 +380,49 @@ Notes:
380
380
 
381
381
  ## CLI flags
382
382
 
383
- | Flag | Default | Purpose |
384
- | --------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
385
- | `--port <n>` | `4170` | TCP port. `0` = OS-assigned ephemeral port. |
386
- | `--hostname <addr>` | `127.0.0.1` | Bind interface. Anything beyond loopback requires a token. |
387
- | `--local-control` | `false` | Share the authenticated Web Shell on every non-loopback IPv4 interface with a fresh per-process token, labelled terminal QR codes, exact browser origins, a fixed port, and best-effort sleep inhibition. Conflicts with `--token`, `--allow-origin`, `--no-web`, `--port 0`, and non-default `--hostname`; add `--tls-cert` + `--tls-key` for secure-context browser APIs such as voice input. |
388
- | `--token <str>` | — | Bearer token. Falls back to `QWEN_SERVER_TOKEN` env var (with leading/trailing whitespace stripped — handy for `$(cat token.txt)`). |
389
- | `--require-auth` | `false` | Refuse to start without a bearer token, even on loopback. Hardens the `127.0.0.1` developer default for shared dev hosts / CI runners / multi-tenant workstations where any local user can hit the listener. Boots only with `--token` or `QWEN_SERVER_TOKEN` set; gates `/health` behind the bearer too. |
390
- | `--tls-cert <path>` | — | Path to a PEM certificate file. Serve over **HTTPS** instead of HTTP. Must be paired with `--tls-key` (boot fails if only one is given). Unlocks secure-context browser APIs — voice input (`getUserMedia`), WebRTC — over a LAN IP, which browsers otherwise block on plain `http://`. TLS termination only; no auto-generation / ACME. See [HTTPS / TLS](#https--tls-for-mobile--cross-device-access) below. |
391
- | `--tls-key <path>` | — | Path to a PEM private key file. Must be paired with `--tls-cert`. |
392
- | `--max-sessions <n>` | `32` | Cap on concurrent live sessions. New `POST /session` requests that would spawn a fresh child return `503` (with `Retry-After: 5`) when the cap is hit; attaches to existing sessions are NOT counted. Set to `0` to disable. Sized for single-user / small-team usage; raise it if your deployment has the RAM/FD headroom (~30–50 MB per session). |
393
- | `--max-total-sessions <n>` | derived | Optional non-negative integer daemon-wide cap on fresh session creation across all registered workspace runtimes. It applies to new child sessions, session restore, and branch/fork-created sessions; attaching to an existing live session does not consume a slot. Set to `0` for unlimited. When omitted with several startup/restored workspaces, the daemon derives a fixed cap from the per-workspace limit and the startup workspace count; later dynamic registration does not recompute it. |
394
- | `--max-pending-prompts-per-session <n>` | `5` | Per-session cap on prompts accepted by `POST /session/:id/prompt` but not yet settled, including queued prompts and the active prompt. The bridge rejects overflow synchronously with `503`, `Retry-After: 5`, and `code: "prompt_queue_full"` before returning a `promptId`. Set to `0` to disable. `branchSession` serializes on the same FIFO but does not count against this prompt cap. |
395
- | `--workspace <path>` | `process.cwd()` | Absolute workspace directory registered by this daemon. Repeat the flag to host multiple workspaces in one process; the first is primary and remains the default when a request omits `cwd`. Relative values are rejected. Session requests whose canonical `cwd` is not registered return `400 workspace_mismatch`. |
396
- | `--memory-project-scope <mode>` | `git-root` | Project-memory partitioning mode. `git-root` (default) shares memory among workspaces resolved to the same Git root; `workspace` keys memory by the exact registered workspace directory so each daemon workspace gets its own isolated memory. Overrides `QWEN_CODE_MEMORY_PROJECT_SCOPE` when provided; an unrecognized env value is ignored with a one-time warning and falls back to `git-root`. Switching to `workspace` does not migrate existing git-root project memory — those entries stop being visible until you switch back. |
397
- | `--channel <name\|all>` | — | Experimental daemon-managed channel worker. Repeat the flag to select multiple configured channels, or pass `all` to start every configured channel. `all` cannot be combined with named channels. Selected channel `cwd` values must resolve to a registered workspace; a multi-workspace daemon runs one worker per owning workspace. The worker is owned by `qwen serve`; stop the daemon to stop serve-managed channels. |
398
- | `--max-connections <n>` | `256` | Listener-level TCP connection cap (`server.maxConnections`). Bounds raw socket count irrespective of session count — slow / phantom SSE clients get rejected at accept time once full. Raise alongside `--max-sessions` if your deployment expects many SSE subscribers per session. |
399
- | `--memory-budget-mb <n>` | 50% of cgroup/host | Total memory budget in MB for the whole daemon process tree. When unset, derived as 50% of the cgroup limit or host memory; either way the effective value is capped at resolved available memory, and both the configured and effective figures are reported. Currently observation only — it does not change how any `qwen --acp` child is sized. Resolved figures appear under `limits.memory` in `GET /daemon/status`, alongside registered and live child counts and advisory per-child shares under `runtime.memory`. A host too small for the minimum reports `insufficientMemory` rather than being clamped upward; because the derived fraction is 50%, any host under ~2 GB trips this. Pass an explicit `--memory-budget-mb 1024` on such a host to override the derived figure (the flag still requires at least 1024 MB of available memory to clear the warning). Must be an integer in `[1024, 1048576]`. |
400
- | `--memory-pressure-mode <mode>` | `observe` | Whether the daemon turns its own memory reading into a verdict. `observe` (default) reports the pressure level under `runtime.memory.pressure` in `GET /daemon/status` and raises a `daemon_memory_pressure` issue — a `warning`, so the overall `status` leaves `ok` — whenever the level leaves `normal`. `off` still reports every figure, including the level, but raises no issue, so the overall `status` is unchanged; use it while calibrating, or if you alert on the top-level status. The level is the worse of two ratios: RSS against available memory (what the cgroup OOM killer watches) and V8 heap used against this process's heap ceiling. It covers the daemon root process only; compare it against `runtime.memory.children.rssBytes` for the children. Nothing remediates in either mode. One of `off`, `observe`. |
401
- | `--child-heap-mode <mode>` | `observe` | Whether the daemon models a per-child heap partition of `--memory-budget-mb`. `observe` (default) reports what it would apply — `limits.memory.childHeap.perChildCeilingMb` and `maxConcurrentChildren` — and counts spawns that would have exceeded the limit. **Nothing is applied**: no child is sized from the budget and no spawn is refused. `off` models nothing, and says so on the wire: `maxConcurrentChildren` and `perChildCeilingMb` are both `null` rather than carrying a partition you switched off. A refusal count of 0 does **not** mean the partition would be safe to apply: children still run on the much larger host-derived ceiling, so a workload needing more old space than the modeled ceiling looks perfectly healthy here. Applying the partition ships with the measurement that can answer that. |
402
- | `--event-ring-size <n>` | `8000` | Per-session SSE replay ring depth (#3803 §02 target). Sets the backlog available to `GET /session/:id/events` with `Last-Event-ID: N`. Larger = more reconnect headroom at the cost of a few hundred KB extra RAM per session. SDK clients can additionally request a larger per-subscriber backlog cap on a specific subscription via `?maxQueued=N` (range `[16, 2048]`, default 256). Daemons also emit a non-terminal `slow_client_warning` SSE frame at 75% queue fill so clients can drain / reconnect before getting evicted. Pre-flight `caps.features.slow_client_warning`. |
403
- | `--compacted-replay-max-bytes <n>` | `4194304` | Per-live-session byte cap for the retained replay events in the bounded snapshot returned by `POST /session/:id/load`. The cap applies to `compactedReplay`; the current in-flight `liveJournal` is separately capped by `--max-journal-events` and `--max-journal-bytes`. Values must be positive safe integers; invalid values fail at boot, and the hard ceiling is 256 MiB. When older retained replay is dropped, the snapshot begins with `history_truncated`. This does not limit the on-disk transcript. |
404
- | `--max-journal-events <n>` | `10000` | Per-session cap on replay entries retained in the in-flight `liveJournal` for the current unfinished turn. Consecutive compatible text or thought chunks share an entry, with at most 256 source events per entry; other event boundaries are preserved. When exceeded, the oldest entries are dropped and a `history_truncated` marker is prepended. The marker's `truncatedEvents` and `retainedEvents` counts describe source events. Must be a positive safe integer. |
405
- | `--max-journal-bytes <n>` | `8388608` | Per-session byte cap on the in-flight `liveJournal`, accounted from the serialized source events even when compatible chunks share a replay entry. When exceeded, the oldest entries are dropped whole (at least one entry is always kept), so the retained tail can be much smaller than the cap. Must be a positive safe integer. Defaults to 8 MiB. |
406
- | `--mcp-client-budget <n>` | — | Positive integer cap on live MCP clients. When `mcp_workspace_pool` is advertised, the cap and transports are shared per workspace runtime; when the tag is absent, the legacy per-session manager enforces it. Combine with `--mcp-budget-mode`. When unset, no accounting-driven enforcement (but `GET /workspace/mcp` still reports `clientCount`). Distinct from claude-code's `MCP_SERVER_CONNECTION_BATCH_SIZE`, which gates startup concurrency rather than total live clients. Pre-flight `caps.features.mcp_guardrails` and `caps.features.mcp_workspace_pool`. |
407
- | `--mcp-budget-mode <m>` | `warn` / `off` | How `--mcp-client-budget` is enforced. `warn` (default when budget set): no refusal, snapshot's `budgets[0].status` flips to `warning` at ≥75% of budget. `enforce`: connects past the cap are refused, per-server cell shows `disabledReason: 'budget'`, deterministic by `mcpServers` declaration order. `off` (default when budget unset): pure observability. Boot rejects `enforce` without a budget. |
408
- | `--external-tool-guard-mode <m>` | `off` | Managed ACP external pre-execution policy. `off` makes no provider calls and advertises no capability. `required` fails startup unless a compatible provider completes the v1 handshake, then fails every supported top-level tool invocation closed unless its single prepare request is allowed. |
409
- | `--external-tool-guard-endpoint <url>` | — | Origin-only loopback HTTP(S) provider URL used in `required` mode, for example `http://127.0.0.1:8787`. Paths, URL credentials, redirects, non-loopback hosts, and proxy routing are not accepted. |
410
- | `--external-tool-guard-timeout-ms <n>` | `3000` | Integer `100..30000`; applies independently to the startup handshake and each prepare request. |
411
- | `--http-bridge` | `true` | Stage 1 mode: production attempts to preheat one primary `qwen --acp` child for compatibility and retries on first use after failure, while each trusted secondary can start one child on demand. Sessions targeting a runtime multiplex onto its child via ACP `newSession()`; untrusted secondaries cannot start ACP. Stage 2 native in-process becomes available later. |
412
- | `--initialize-timeout-ms <n>` | `10000` | ACP child request timeout, including the `initialize` handshake (ms). Must be a positive integer up to `2147483647`. Values above the JS timer ceiling (`2^31-1`) are rejected at boot because Node silently compresses them to 1 ms. Cold-container deployments that need extra headroom for child startup can raise this; the same value governs `newSession`, workspace-status polls, and other ACP ext-method deadlines. |
413
- | `--session-restore-timeout-ms <n>` | `60000` | ACP session load/resume deadline in milliseconds. Must be a positive integer up to `2147483647`; `0` is invalid. If omitted, the default is 60 seconds, raised to an explicitly supplied `--initialize-timeout-ms` when that value is larger; a shorter initialize timeout never lowers the restore budget. The SDK and WebUI add 10 and 15 seconds of client headroom. A timeout returns retryable `504 session_restore_timeout`; it does not imply that the daemon itself exited. |
414
- | `--allow-origin <pat>` | — | T2.4 ([#4514](https://github.com/QwenLM/qwen-code/issues/4514)). Cross-origin allowlist for browser webui clients. Repeatable. Each value is `*` (any origin — boot refuses if no bearer token is configured; `--require-auth` on loopback is recommended so `/health` is also bearer-gated, since it is pre-auth on loopback by default; the Web Shell static assets stay pre-auth in every mode, so pass `--no-web` to remove them) or a canonical URL origin (`<scheme>://<host>[:<port>]`, no trailing slash / path / userinfo / query). **Subdomain wildcards (`https://*.example.com`) are intentionally unsupported** — list each subdomain explicitly, or use `*` with a configured token (and `--require-auth` for full hardening). Matched origins receive CORS response headers (`Access-Control-Allow-Origin`, `Vary: Origin`, methods, headers, max-age, and exposed `Retry-After`); unmatched origins still get a 403 with the same envelope as today's wall. `Origin: null` (sandboxed iframes, file:// docs) is always rejected, even under `*`. Pre-flight via `caps.features.allow_origin`. Loopback self-origin hits are unaffected. |
415
- | `--web` / `--no-web` | `true` | Serve the built Web Shell SPA at the daemon root (`GET /`, `/assets/*`, and `GET /session/<id>` document navigations). These entry points are registered **before** the bearer-auth gate — a browser can't attach a token to a `<script>` subresource or an address-bar navigation, and the shell carries no secrets. Every API route stays token-gated regardless, and the SPA deep-link fallback for all other paths sits behind the bearer gate too. On non-loopback binds a one-line stderr warning notes the UI is reachable without auth. Use `--no-web` for an API-only daemon. No effect when the build omits the Web Shell assets (the daemon logs a breadcrumb and runs API-only). |
416
- | `--open` | `false` | After the listener is up, open the Web Shell in your default browser at the daemon URL (with `#token=` appended as a URL fragment when a token is configured — a fragment is never sent to the server, keeping the token out of access logs and Referer headers). No-op with `--no-web`, or in headless / CI / SSH environments where no browser is available. |
383
+ | Flag | Default | Purpose |
384
+ | --------------------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
385
+ | `--port <n>` | `4170` | TCP port. `0` = OS-assigned ephemeral port. |
386
+ | `--hostname <addr>` | `127.0.0.1` | Bind interface. Anything beyond loopback requires a token. |
387
+ | `--local-control` | `false` | Share the authenticated Web Shell on every non-loopback IPv4 interface with a fresh per-process token, labelled terminal QR codes, exact browser origins, a fixed port, and best-effort sleep inhibition. Conflicts with `--token`, `--allow-origin`, `--no-web`, `--port 0`, and non-default `--hostname`; add `--tls-cert` + `--tls-key` for secure-context browser APIs such as voice input. |
388
+ | `--token <str>` | — | Bearer token. Falls back to `QWEN_SERVER_TOKEN` env var (with leading/trailing whitespace stripped — handy for `$(cat token.txt)`). |
389
+ | `--require-auth` | `false` | Refuse to start without a bearer token, even on loopback. Hardens the `127.0.0.1` developer default for shared dev hosts / CI runners / multi-tenant workstations where any local user can hit the listener. Boots only with `--token` or `QWEN_SERVER_TOKEN` set; gates `/health` behind the bearer too. |
390
+ | `--tls-cert <path>` | — | Path to a PEM certificate file. Serve over **HTTPS** instead of HTTP. Must be paired with `--tls-key` (boot fails if only one is given). Unlocks secure-context browser APIs — voice input (`getUserMedia`), WebRTC — over a LAN IP, which browsers otherwise block on plain `http://`. TLS termination only; no auto-generation / ACME. See [HTTPS / TLS](#https--tls-for-mobile--cross-device-access) below. |
391
+ | `--tls-key <path>` | — | Path to a PEM private key file. Must be paired with `--tls-cert`. |
392
+ | `--max-sessions <n>` | `32` | Cap on concurrent live sessions. New `POST /session` requests that would spawn a fresh child return `503` (with `Retry-After: 5`) when the cap is hit; attaches to existing sessions are NOT counted. Set to `0` to disable. Sized for single-user / small-team usage; raise it if your deployment has the RAM/FD headroom (~30–50 MB per session). |
393
+ | `--max-total-sessions <n>` | derived | Optional non-negative integer daemon-wide cap on fresh session creation across all registered workspace runtimes. It applies to new child sessions, session restore, and branch/fork-created sessions; attaching to an existing live session does not consume a slot. Set to `0` for unlimited. When omitted with several startup/restored workspaces, the daemon derives a fixed cap from the per-workspace limit and the startup workspace count; later dynamic registration does not recompute it. |
394
+ | `--max-pending-prompts-per-session <n>` | `5` | Per-session cap on prompts accepted by `POST /session/:id/prompt` but not yet settled, including queued prompts and the active prompt. The bridge rejects overflow synchronously with `503`, `Retry-After: 5`, and `code: "prompt_queue_full"` before returning a `promptId`. Set to `0` to disable. `branchSession` serializes on the same FIFO but does not count against this prompt cap. |
395
+ | `--workspace <path>` | `process.cwd()` | Absolute workspace directory registered by this daemon. Repeat the flag to host multiple workspaces in one process; the first is primary and remains the default when a request omits `cwd`. Relative values are rejected. Session requests whose canonical `cwd` is not registered return `400 workspace_mismatch`. |
396
+ | `--memory-project-scope <mode>` | `workspace` | Project-memory partitioning mode. `workspace` (default) keys memory by the exact registered workspace directory so each daemon workspace gets its own isolated memory; `git-root` is the legacy compatibility mode shared by workspaces resolved to the same Git root. Overrides `QWEN_CODE_MEMORY_PROJECT_SCOPE` when provided; a blank env value is treated as unset, while an unrecognized non-empty value is ignored with a one-time warning and retains the legacy `git-root` behavior. The new default does not migrate existing git-root project memory — use an explicit `git-root` scope to read those entries during migration. |
397
+ | `--channel <name\|all>` | — | Experimental daemon-managed channel worker. Repeat the flag to select multiple configured channels, or pass `all` to start every configured channel. `all` cannot be combined with named channels. Selected channel `cwd` values must resolve to a registered workspace; a multi-workspace daemon runs one worker per owning workspace. The worker is owned by `qwen serve`; stop the daemon to stop serve-managed channels. |
398
+ | `--max-connections <n>` | `256` | Listener-level TCP connection cap (`server.maxConnections`). Bounds raw socket count irrespective of session count — slow / phantom SSE clients get rejected at accept time once full. Raise alongside `--max-sessions` if your deployment expects many SSE subscribers per session. |
399
+ | `--memory-budget-mb <n>` | 50% of cgroup/host | Total memory budget in MB for the whole daemon process tree. When unset, derived as 50% of the cgroup limit or host memory; either way the effective value is capped at resolved available memory, and both the configured and effective figures are reported. It does not change how any `qwen --acp` child is sized; the one consumer today is adaptive live-journal growth: one daemon-wide growth pool derived as 5% of the effective budget (capped at `1024` MB; on hosts reporting `insufficientMemory` the pool is 0 and adaptive growth is disabled) is shared by every workspace bridge — see `--max-journal-bytes`. Resolved figures appear under `limits.memory` in `GET /daemon/status`, alongside registered and live child counts and advisory per-child shares under `runtime.memory`. A host too small for the minimum reports `insufficientMemory` rather than being clamped upward; because the derived fraction is 50%, any host under ~2 GB trips this. Pass an explicit `--memory-budget-mb 1024` on such a host to override the derived figure (the flag still requires at least 1024 MB of available memory to clear the warning). Must be an integer in `[1024, 1048576]`. |
400
+ | `--memory-pressure-mode <mode>` | `observe` | Whether the daemon turns its own memory reading into a verdict. `observe` (default) reports the pressure level under `runtime.memory.pressure` in `GET /daemon/status` and raises a `daemon_memory_pressure` issue — a `warning`, so the overall `status` leaves `ok` — whenever the level leaves `normal`. `off` still reports every figure, including the level, but raises no issue, so the overall `status` is unchanged; use it while calibrating, or if you alert on the top-level status. The level is the worse of two ratios: RSS against available memory (what the cgroup OOM killer watches) and V8 heap used against this process's heap ceiling. It covers the daemon root process only; compare it against `runtime.memory.children.rssBytes` for the children. Nothing remediates in either mode. One of `off`, `observe`. |
401
+ | `--child-heap-mode <mode>` | `observe` | Whether the daemon models a per-child heap partition of `--memory-budget-mb`. `observe` (default) reports what it would apply — `limits.memory.childHeap.perChildCeilingMb` and `maxConcurrentChildren` — and counts spawns that would have exceeded the limit. **Nothing is applied**: no child is sized from the budget and no spawn is refused. `off` models nothing, and says so on the wire: `maxConcurrentChildren` and `perChildCeilingMb` are both `null` rather than carrying a partition you switched off. A refusal count of 0 does **not** mean the partition would be safe to apply: children still run on the much larger host-derived ceiling, so a workload needing more old space than the modeled ceiling looks perfectly healthy here. Applying the partition ships with the measurement that can answer that. |
402
+ | `--event-ring-size <n>` | `8000` | Per-session SSE replay ring depth (#3803 §02 target). Sets the backlog available to `GET /session/:id/events` with `Last-Event-ID: N`. Larger = more reconnect headroom at the cost of a few hundred KB extra RAM per session. SDK clients can additionally request a larger per-subscriber backlog cap on a specific subscription via `?maxQueued=N` (range `[16, 2048]`, default 256). Daemons also emit a non-terminal `slow_client_warning` SSE frame at 75% queue fill so clients can drain / reconnect before getting evicted. Pre-flight `caps.features.slow_client_warning`. |
403
+ | `--compacted-replay-max-bytes <n>` | `4194304` | Per-live-session byte cap for the retained replay events in the bounded snapshot returned by `POST /session/:id/load`. The cap applies to `compactedReplay`; the current in-flight `liveJournal` is separately capped by `--max-journal-events` and `--max-journal-bytes` (baseline caps that adaptive growth can raise — see `--max-journal-bytes`). Values must be positive safe integers; invalid values fail at boot, and the hard ceiling is 256 MiB. When older retained replay is dropped, the snapshot begins with `history_truncated`. This does not limit the on-disk transcript. |
404
+ | `--max-journal-events <n>` | `10000` | Per-session baseline cap on replay entries retained in the in-flight `liveJournal` for the current unfinished turn. Consecutive compatible text or thought chunks share an entry, with at most 256 source events per entry; other event boundaries are preserved. When exceeded, the daemon first tries adaptive growth (see `--max-journal-bytes`); if no headroom is granted or the grant does not cover the overshoot, the oldest entries are dropped and a `history_truncated` marker is prepended. The marker's `truncatedEvents` and `retainedEvents` counts describe source events. Must be a positive safe integer. Pinning this flag (or `--max-journal-bytes`) disables adaptive growth. |
405
+ | `--max-journal-bytes <n>` | `8388608` | Per-session baseline byte cap on the in-flight `liveJournal`, accounted from the serialized source events even when compatible chunks share a replay entry. When a turn outgrows the cap, adaptive growth raises the session's caps toward double (up to a per-session hard cap of 256 MiB, limited by the remaining pool headroom) while the growth granted across all of the daemon's live sessions fits in one shared growth pool sized at 5% of the daemon's effective memory budget — the `--memory-budget-mb` value when passed, capped at resolved available memory, otherwise 50% of auto-detected memory (see `--memory-budget-mb`) — capped at `1024` MB; on hosts reporting `insufficientMemory` the pool is 0 and adaptive growth is disabled. Growth happens on demand, and only as far as the pool allows; when it is refused, the pool is exhausted, or a grant does not cover the overshoot, the oldest entries are dropped whole (at least one entry is always kept), so the retained tail can be much smaller than the cap. Pinning this flag (or `--max-journal-events`) disables adaptive growth. Must be a positive safe integer. Defaults to 8 MiB. |
406
+ | `--mcp-client-budget <n>` | — | Positive integer cap on live MCP clients. When `mcp_workspace_pool` is advertised, the cap and transports are shared per workspace runtime; when the tag is absent, the legacy per-session manager enforces it. Combine with `--mcp-budget-mode`. When unset, no accounting-driven enforcement (but `GET /workspace/mcp` still reports `clientCount`). Distinct from claude-code's `MCP_SERVER_CONNECTION_BATCH_SIZE`, which gates startup concurrency rather than total live clients. Pre-flight `caps.features.mcp_guardrails` and `caps.features.mcp_workspace_pool`. |
407
+ | `--mcp-budget-mode <m>` | `warn` / `off` | How `--mcp-client-budget` is enforced. `warn` (default when budget set): no refusal, snapshot's `budgets[0].status` flips to `warning` at ≥75% of budget. `enforce`: connects past the cap are refused, per-server cell shows `disabledReason: 'budget'`, deterministic by `mcpServers` declaration order. `off` (default when budget unset): pure observability. Boot rejects `enforce` without a budget. |
408
+ | `--external-tool-guard-mode <m>` | `off` | Managed ACP external pre-execution policy. `off` makes no provider calls and advertises no capability. `required` fails startup unless a compatible provider completes the v1 handshake, then fails every supported top-level tool invocation closed unless its single prepare request is allowed. |
409
+ | `--external-tool-guard-endpoint <url>` | — | Origin-only loopback HTTP(S) provider URL used in `required` mode, for example `http://127.0.0.1:8787`. Paths, URL credentials, redirects, non-loopback hosts, and proxy routing are not accepted. |
410
+ | `--external-tool-guard-timeout-ms <n>` | `3000` | Integer `100..30000`; applies independently to the startup handshake and each prepare request. |
411
+ | `--http-bridge` | `true` | Stage 1 mode: production attempts to preheat one primary `qwen --acp` child for compatibility and retries on first use after failure, while each trusted secondary can start one child on demand. Sessions targeting a runtime multiplex onto its child via ACP `newSession()`; untrusted secondaries cannot start ACP. Stage 2 native in-process becomes available later. |
412
+ | `--initialize-timeout-ms <n>` | `10000` | ACP child request timeout, including the `initialize` handshake (ms). Must be a positive integer up to `2147483647`. Values above the JS timer ceiling (`2^31-1`) are rejected at boot because Node silently compresses them to 1 ms. Cold-container deployments that need extra headroom for child startup can raise this; the same value governs `newSession`, workspace-status polls, and other ACP ext-method deadlines. |
413
+ | `--session-restore-timeout-ms <n>` | `60000` | ACP session load/resume deadline in milliseconds. Must be a positive integer up to `2147483647`; `0` is invalid. If omitted, the default is 60 seconds, raised to an explicitly supplied `--initialize-timeout-ms` when that value is larger; a shorter initialize timeout never lowers the restore budget. The SDK and WebUI add 10 and 15 seconds of client headroom. A timeout returns retryable `504 session_restore_timeout`; it does not imply that the daemon itself exited. |
414
+ | `--allow-origin <pat>` | — | T2.4 ([#4514](https://github.com/QwenLM/qwen-code/issues/4514)). Cross-origin allowlist for browser webui clients. Repeatable. Each value is `*` (any origin — boot refuses if no bearer token is configured; `--require-auth` on loopback is recommended so `/health` is also bearer-gated, since it is pre-auth on loopback by default; the Web Shell static assets stay pre-auth in every mode, so pass `--no-web` to remove them) or a canonical URL origin (`<scheme>://<host>[:<port>]`, no trailing slash / path / userinfo / query). **Subdomain wildcards (`https://*.example.com`) are intentionally unsupported** — list each subdomain explicitly, or use `*` with a configured token (and `--require-auth` for full hardening). Matched origins receive CORS response headers (`Access-Control-Allow-Origin`, `Vary: Origin`, methods, headers, max-age, and exposed `Retry-After`); unmatched origins still get a 403 with the same envelope as today's wall. `Origin: null` (sandboxed iframes, file:// docs) is always rejected, even under `*`. Pre-flight via `caps.features.allow_origin`. Loopback self-origin hits are unaffected. |
415
+ | `--web` / `--no-web` | `true` | Serve the built Web Shell SPA at the daemon root (`GET /`, `/assets/*`, and `GET /session/<id>` document navigations). These entry points are registered **before** the bearer-auth gate — a browser can't attach a token to a `<script>` subresource or an address-bar navigation, and the shell carries no secrets. Every API route stays token-gated regardless, and the SPA deep-link fallback for all other paths sits behind the bearer gate too. On non-loopback binds a one-line stderr warning notes the UI is reachable without auth. Use `--no-web` for an API-only daemon. No effect when the build omits the Web Shell assets (the daemon logs a breadcrumb and runs API-only). |
416
+ | `--open` | `false` | After the listener is up, open the Web Shell in your default browser at the daemon URL (with `#token=` appended as a URL fragment when a token is configured — a fragment is never sent to the server, keeping the token out of access logs and Referer headers). No-op with `--no-web`, or in headless / CI / SSH environments where no browser is available. |
417
417
 
418
418
  > **Memory project scope caveats.**
419
419
  >
420
- > - **Daemon vs. standalone CLI.** `--memory-project-scope` (and
421
- > `QWEN_CODE_MEMORY_PROJECT_SCOPE`) only affects daemon-managed runtimes.
422
- > A standalone `qwen` TUI started in the same directory still uses the
423
- > git-root scope unless the environment variable is exported globally. To keep
424
- > both entry points consistent, pin the scope in the workspace `.env` or
425
- > `settings.env` so every process that reads the workspace agrees.
420
+ > - **Daemon vs. standalone CLI.** The flag or daemon launch environment sets
421
+ > one frozen scope for every runtime owned by that daemon. A workspace `.env`
422
+ > or `settings.env` cannot override it for one registered workspace. A
423
+ > standalone `qwen` TUI still defaults to git-root scope; to keep both entry
424
+ > points consistent, export `QWEN_CODE_MEMORY_PROJECT_SCOPE` in the shell or
425
+ > service environment that launches them.
426
426
  > - **Directory-name collisions.** The storage key is derived by
427
427
  > `sanitizeCwd`, which replaces every non-alphanumeric character with
428
428
  > `-`. Sibling directories that differ only in punctuation (e.g.