@qwen-code/qwen-code 0.21.2 → 0.21.3-nightly.20260803.e1e5b42ce

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 (352) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +53 -38
  2. package/bundled/qc-helper/docs/features/channels/github.md +16 -5
  3. package/bundled/qc-helper/docs/features/channels/gitlab.md +6 -0
  4. package/bundled/qc-helper/docs/features/code-review.md +92 -24
  5. package/bundled/qc-helper/docs/features/commands.md +46 -38
  6. package/bundled/qc-helper/docs/features/hooks.md +115 -18
  7. package/bundled/qc-helper/docs/features/memory.md +27 -0
  8. package/bundled/qc-helper/docs/features/skills.md +46 -1
  9. package/bundled/qc-helper/docs/features/sub-agents.md +42 -9
  10. package/bundled/qc-helper/docs/features/tool-use-summaries.md +7 -7
  11. package/bundled/qc-helper/docs/qwen-serve.md +46 -25
  12. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +62 -31
  13. package/bundled/qc-helper/docs/support/troubleshooting.md +6 -1
  14. package/bundled/review/DESIGN.md +167 -32
  15. package/bundled/review/SKILL.md +207 -38
  16. package/chunks/{MaxSizedBox-TQBQ247P.js → MaxSizedBox-FCEK5P5K.js} +41 -38
  17. package/chunks/{StandaloneSessionPicker-2HPTKCLX.js → StandaloneSessionPicker-AT77J3PM.js} +63 -59
  18. package/chunks/{acp-startup-profiler-2C4A5ZTJ.js → acp-startup-profiler-3RICG2YW.js} +2 -2
  19. package/chunks/{acpAgent-PS6EDGH3.js → acpAgent-PBMKZ5KH.js} +664 -560
  20. package/chunks/{agent-VDOUB35F.js → agent-55W5BPK3.js} +37 -34
  21. package/chunks/{agent-headless-EO53EFS2.js → agent-headless-I7VMHI22.js} +37 -34
  22. package/chunks/{anthropicContentGenerator-OFHSZJBF.js → anthropicContentGenerator-3CAHEZBM.js} +341 -29
  23. package/chunks/{artifact-tool-RDN2W7ND.js → artifact-tool-TBOYEKTY.js} +2 -2
  24. package/chunks/{askUserQuestion-OZERWH5R.js → askUserQuestion-23Y5WZFJ.js} +2 -2
  25. package/chunks/{bridge-W7AZSRZQ.js → bridge-XNAWEDAN.js} +43 -40
  26. package/chunks/{ca-6W3SK7OQ.js → ca-NYKNH222.js} +50 -5
  27. package/chunks/{channel-management-service-5S7YCWX5.js → channel-management-service-UHX56NBO.js} +7 -7
  28. package/chunks/{channel-settings-store-JFVRSNER.js → channel-settings-store-7P6RJSSF.js} +44 -41
  29. package/chunks/{channel-worker-group-OVWGYMZS.js → channel-worker-group-NDG4WOOZ.js} +8 -8
  30. package/chunks/{channel-worker-manager-H55GKOQA.js → channel-worker-manager-ZCW6UW34.js} +8 -8
  31. package/chunks/{channel-worker-supervisor-CABBXYHK.js → channel-worker-supervisor-ATGFTZRN.js} +4 -4
  32. package/chunks/{chunk-6MPDY6ZG.js → chunk-24ER7UV4.js} +1 -1
  33. package/chunks/{chunk-QDK4F2N5.js → chunk-2DNKEBXY.js} +1 -1
  34. package/chunks/{chunk-AUOULH6Q.js → chunk-2GF3IDEK.js} +1610 -2196
  35. package/chunks/{chunk-JYBU6YUE.js → chunk-2M5N3DHY.js} +1 -1
  36. package/chunks/{chunk-LHKCY7DY.js → chunk-2UISUFHQ.js} +3 -3
  37. package/chunks/{chunk-BBIQAX4V.js → chunk-2ZCYE3F2.js} +30 -18
  38. package/chunks/{chunk-GJ2GBPBD.js → chunk-332FMXSD.js} +5 -5
  39. package/chunks/{chunk-JXVC2PL3.js → chunk-33FNCQSY.js} +2 -2
  40. package/chunks/{chunk-P755N4CS.js → chunk-3GALLNII.js} +6 -6
  41. package/chunks/{chunk-YANIWTRZ.js → chunk-3ICGQSVO.js} +1 -1
  42. package/chunks/{chunk-NBD76HUW.js → chunk-3LGZEYOF.js} +2 -2
  43. package/chunks/{chunk-E2BHWIDT.js → chunk-3RXUYQJI.js} +6 -2
  44. package/chunks/{chunk-E5Z2AVNV.js → chunk-3SH53ANB.js} +0 -11
  45. package/chunks/{chunk-N4ACHWNH.js → chunk-432XCUHF.js} +1 -1
  46. package/chunks/{chunk-JLZ3RBQG.js → chunk-44EJDGMS.js} +144 -11
  47. package/chunks/{chunk-KR32NIAN.js → chunk-4JP34TZ6.js} +10 -10
  48. package/chunks/{chunk-L2E5GFAG.js → chunk-4LKVQFHM.js} +2 -2
  49. package/chunks/{chunk-YDLJGZHL.js → chunk-4NFY2S7N.js} +0 -33
  50. package/chunks/{chunk-NHFEMWAZ.js → chunk-5WY5QEM6.js} +1 -1
  51. package/chunks/{chunk-56Z7QEAQ.js → chunk-6BUPGI3J.js} +16 -16
  52. package/chunks/{chunk-H6I4PGRV.js → chunk-6DNHLK7F.js} +4 -4
  53. package/chunks/{chunk-XQK4XXTN.js → chunk-6O5DVH27.js} +1 -1
  54. package/chunks/{chunk-2RFKHEXL.js → chunk-6PLDPT2C.js} +1 -1
  55. package/chunks/{chunk-Q5WZTTWE.js → chunk-7UPJXZLD.js} +6 -8
  56. package/chunks/{chunk-CBBP4BMC.js → chunk-7UXI6P72.js} +82 -207
  57. package/chunks/{chunk-6CQWRWUC.js → chunk-7XLPYF6B.js} +3 -3
  58. package/chunks/{chunk-VEMNQMHA.js → chunk-7ZH55K26.js} +5 -13
  59. package/chunks/{chunk-JJPKFJBT.js → chunk-A2FOI762.js} +3 -3
  60. package/chunks/{chunk-LYI2PZDK.js → chunk-A5LNZGJB.js} +2 -2
  61. package/chunks/{chunk-3APUUXRF.js → chunk-A5YZ3FA2.js} +2 -1
  62. package/chunks/{chunk-SHN4KHDK.js → chunk-A6SX5TAH.js} +3 -3
  63. package/chunks/{chunk-QCXGC7QB.js → chunk-A7PONO5G.js} +3 -3
  64. package/chunks/{chunk-SZ3KHTDR.js → chunk-AKA24BGO.js} +1 -1
  65. package/chunks/{chunk-RSVPYAGK.js → chunk-B4HXOGF5.js} +5 -5
  66. package/chunks/{chunk-D6MDRSZ6.js → chunk-BBXSRVSN.js} +22 -11
  67. package/chunks/{chunk-Q3T5KA2V.js → chunk-BFHXDAR7.js} +1 -1
  68. package/chunks/{chunk-L55JWS76.js → chunk-BGXZBI5B.js} +1 -1
  69. package/chunks/{chunk-2KKCCLPT.js → chunk-C4IUDGPI.js} +1 -1
  70. package/chunks/{chunk-MM7TH7ZM.js → chunk-CFDR3GNL.js} +18 -3
  71. package/chunks/{chunk-3F2WDAV6.js → chunk-CFVFQWFB.js} +14 -14
  72. package/chunks/{chunk-E2FN6SM7.js → chunk-CIUUYB23.js} +5 -5
  73. package/chunks/{chunk-JCJ7LKNA.js → chunk-DIEFUBV6.js} +1644 -1570
  74. package/chunks/{chunk-KWHKHSIS.js → chunk-DTAPI453.js} +8 -8
  75. package/chunks/{chunk-WWCMSZII.js → chunk-DV2GAGR7.js} +71 -7
  76. package/chunks/{chunk-675H6PLP.js → chunk-DYA25Y7U.js} +1 -1
  77. package/chunks/{chunk-3I6DUGQD.js → chunk-E4WHKETF.js} +32 -4
  78. package/chunks/{chunk-QTERJVPZ.js → chunk-EKTCKZV5.js} +1 -0
  79. package/chunks/{chunk-HX6RLYUO.js → chunk-ENOHFX2M.js} +4 -4
  80. package/chunks/{chunk-VMX5RZQH.js → chunk-EZZJHMFK.js} +18 -9
  81. package/chunks/{chunk-KXDONCPU.js → chunk-FBDRTW3I.js} +4 -4
  82. package/chunks/{chunk-FCYYAB4S.js → chunk-FHPKHXHT.js} +3 -3
  83. package/chunks/{chunk-DQ2O5QOJ.js → chunk-FJZS2MXB.js} +1 -1
  84. package/chunks/{chunk-EQNUDTL6.js → chunk-FVLPZSKH.js} +3 -3
  85. package/chunks/{chunk-2LEOZTBT.js → chunk-FYMMZV5F.js} +111 -26
  86. package/chunks/{chunk-UV6KF7T3.js → chunk-GNZ7MX73.js} +3 -3
  87. package/chunks/chunk-GOFAQQZA.js +132 -0
  88. package/chunks/{chunk-YUFIEIWC.js → chunk-GTM6IHBB.js} +2 -2
  89. package/chunks/{chunk-W3UKBMSI.js → chunk-GU5B6IF3.js} +118 -9
  90. package/chunks/{chunk-PCK4B6LR.js → chunk-GU5XWZU2.js} +1 -1
  91. package/chunks/{chunk-DEEABGH2.js → chunk-H2EDCJIM.js} +5954 -1766
  92. package/chunks/{chunk-FJ5WUMUQ.js → chunk-H36SETQS.js} +1 -1
  93. package/chunks/{chunk-6FMJLI5M.js → chunk-HFVW54NL.js} +41 -6
  94. package/chunks/chunk-HGCQ5SE7.js +136 -0
  95. package/chunks/{chunk-OFZKFPYG.js → chunk-HR4CHEQS.js} +3 -3
  96. package/chunks/{chunk-CO2U743O.js → chunk-I3GX6LGS.js} +4 -4
  97. package/chunks/{chunk-5NNHICSA.js → chunk-I7JDGNG6.js} +3 -3
  98. package/chunks/{chunk-RDJOB6S3.js → chunk-IEBT6DXF.js} +1 -1
  99. package/chunks/{chunk-EU5TBFJI.js → chunk-IV7QPMC2.js} +2 -2
  100. package/chunks/{chunk-B4AJNNOL.js → chunk-J26HHFI5.js} +1 -1
  101. package/chunks/{chunk-CNTR4GR6.js → chunk-JELIWHXD.js} +1 -1
  102. package/chunks/{chunk-FNDXMN7I.js → chunk-JQFMW7BD.js} +936 -223
  103. package/chunks/{chunk-IGTHU3T4.js → chunk-KKN2IE7Q.js} +1 -1
  104. package/chunks/{chunk-TZTAV5RH.js → chunk-KVUBYJDM.js} +2 -2
  105. package/chunks/{chunk-DUNI4EBW.js → chunk-KZXSAQYV.js} +86 -52
  106. package/chunks/chunk-LBOVL47Y.js +29 -0
  107. package/chunks/{chunk-FS674JW4.js → chunk-LBWNSLJK.js} +3 -3
  108. package/chunks/{chunk-I5BT7ADR.js → chunk-LEZFUYPM.js} +4 -4
  109. package/chunks/chunk-LLMGP5IC.js +222 -0
  110. package/chunks/{chunk-44F4LBWZ.js → chunk-LVW7BHTW.js} +56 -18
  111. package/chunks/{chunk-YGE3IXJP.js → chunk-M744OFVE.js} +1 -1
  112. package/chunks/chunk-MISUEWB4.js +8749 -0
  113. package/chunks/{chunk-7SJN2IWT.js → chunk-MJ2SKNTY.js} +5 -5
  114. package/chunks/{chunk-JE2CEOBO.js → chunk-MNTXIO6T.js} +4 -4
  115. package/chunks/{chunk-TEGJSJDF.js → chunk-MOHAWIAW.js} +2 -2
  116. package/chunks/{chunk-54YCNSK5.js → chunk-MVMBE5EH.js} +4521 -10220
  117. package/chunks/{chunk-PZEXDV3H.js → chunk-NCY2CDDX.js} +71 -43
  118. package/chunks/{chunk-TTJZAIFP.js → chunk-NJELCSFL.js} +3 -3
  119. package/chunks/{chunk-A7Y5H4TX.js → chunk-NXDJEZCI.js} +7 -7
  120. package/chunks/{chunk-PQNHRFJC.js → chunk-NYX53SV4.js} +0 -2
  121. package/chunks/{chunk-QARJNL2V.js → chunk-O2ZYHG33.js} +5 -4
  122. package/chunks/{chunk-6PQPKTXP.js → chunk-OPMLL3B3.js} +1 -1
  123. package/chunks/{chunk-PVNQRENX.js → chunk-OUQGNGIU.js} +1 -1
  124. package/chunks/{chunk-V7RNNPGC.js → chunk-P5Y23G2L.js} +18 -1
  125. package/chunks/{chunk-GURGAJTX.js → chunk-PDDYAXL2.js} +4 -1
  126. package/chunks/chunk-PWCQRLM5.js +1170 -0
  127. package/chunks/{chunk-GL4JOZXU.js → chunk-Q43MIWDH.js} +4 -4
  128. package/chunks/{chunk-V4XNUDPE.js → chunk-QFIYH5KR.js} +28 -7
  129. package/chunks/chunk-QL4TN4HS.js +59 -0
  130. package/chunks/{chunk-E6CJ2SMM.js → chunk-QMBEW7EW.js} +2 -2
  131. package/chunks/{chunk-U4VTUMMK.js → chunk-QONSRAEV.js} +1 -1
  132. package/chunks/{chunk-LOY7RWQG.js → chunk-QYPT3QUD.js} +3 -3
  133. package/chunks/{chunk-RG64CDT2.js → chunk-RJAVNGJJ.js} +131 -48
  134. package/chunks/{chunk-Z3S5EMOW.js → chunk-RPYYTL7E.js} +60 -12
  135. package/chunks/{chunk-V25K5ID7.js → chunk-SWCEYR6T.js} +1 -1
  136. package/chunks/{chunk-77V3VIKL.js → chunk-SXGNNAMC.js} +9 -9
  137. package/chunks/{chunk-7KAXXBER.js → chunk-TNQ5BEEB.js} +3 -3
  138. package/chunks/{chunk-R2XWGR75.js → chunk-TYERNYH4.js} +2 -2
  139. package/chunks/{chunk-45IOTAUS.js → chunk-U25CMJYY.js} +1 -1
  140. package/chunks/{chunk-7ULQIS27.js → chunk-UEJESCS7.js} +1 -1
  141. package/chunks/{chunk-HC45LTEN.js → chunk-UH7Z7Y45.js} +1 -1
  142. package/chunks/{chunk-P5VC5USY.js → chunk-UIKCPMID.js} +1 -1
  143. package/chunks/{chunk-CPZAH673.js → chunk-UKZEXS6K.js} +2 -0
  144. package/chunks/{chunk-HIVKI6O6.js → chunk-UO7AWUZJ.js} +9 -7
  145. package/chunks/{chunk-XP4L6KS3.js → chunk-URN76TKR.js} +2 -2
  146. package/chunks/{chunk-XUGZYLDH.js → chunk-UWSXFI6E.js} +1 -1
  147. package/chunks/{chunk-AOHY3QJ3.js → chunk-VA5NLVPT.js} +3 -3
  148. package/chunks/{chunk-FANRZEAJ.js → chunk-VWOVHOTT.js} +1 -1
  149. package/chunks/{chunk-NTDH4IML.js → chunk-W2K4OEW4.js} +7 -7
  150. package/chunks/{chunk-L32VV3ZJ.js → chunk-WH7W24EN.js} +12 -12
  151. package/chunks/{chunk-QTHQ6Z5X.js → chunk-WK4TJUEA.js} +1 -1
  152. package/chunks/{chunk-ZPZ7ZJEE.js → chunk-WUC6ZFXO.js} +1 -1
  153. package/chunks/{chunk-TIRRPCFS.js → chunk-X6QNZOTC.js} +1 -1
  154. package/chunks/{chunk-IIUGIWWY.js → chunk-XC2VAFVZ.js} +1 -1
  155. package/chunks/{chunk-D4HTUMGX.js → chunk-XC656O42.js} +3 -3
  156. package/chunks/{chunk-ZMOJ7ISP.js → chunk-XXOVLDZQ.js} +1 -1
  157. package/chunks/{chunk-THVU3RNH.js → chunk-YAVY33G4.js} +1 -1
  158. package/chunks/{chunk-PJOHNFIY.js → chunk-YIAC2OXH.js} +5 -5
  159. package/chunks/{chunk-CU47KXB5.js → chunk-YTSN63PD.js} +6 -6
  160. package/chunks/{chunk-DSFHVTWD.js → chunk-YXEVDA66.js} +2 -2
  161. package/chunks/{chunk-MB32MS4U.js → chunk-ZLJQIGCH.js} +260 -175
  162. package/chunks/{chunk-6TAASXWL.js → chunk-ZX6RZZFB.js} +3 -3
  163. package/chunks/{computer-use-5QWCFNKD.js → computer-use-BG2EHNJE.js} +37 -34
  164. package/chunks/{config-utils-WADIDWGG.js → config-utils-E3ZQTHGM.js} +4 -4
  165. package/chunks/{contextCommand-4Z7T7TUM.js → contextCommand-JAPYNKFC.js} +41 -38
  166. package/chunks/{core-runtime-6N4EFC2Q.js → core-runtime-2VCZN5QF.js} +37 -34
  167. package/chunks/{create-sub-session-AEREHZBQ.js → create-sub-session-52OUA2VU.js} +52 -43
  168. package/chunks/{create-sub-session-62YZWVAY.js → create-sub-session-J32WC64U.js} +2 -2
  169. package/chunks/{cron-create-6E7GIQTG.js → cron-create-HMFSHIAR.js} +4 -4
  170. package/chunks/{cron-delete-JD26XY3W.js → cron-delete-ZJFHOX57.js} +4 -4
  171. package/chunks/{cron-list-CUWFB44G.js → cron-list-ZEX2NBMN.js} +4 -4
  172. package/chunks/{daemon-PCNCI5YU.js → daemon-CCIX4BMG.js} +47 -6
  173. package/chunks/{daemon-status-provider-DDF7C5M7.js → daemon-status-provider-F2YGDKHR.js} +48 -45
  174. package/chunks/{daemon-trust-policy-Q4KSOJTR.js → daemon-trust-policy-XCY7JETR.js} +43 -40
  175. package/chunks/{daemon-trust-policy-monitor-V6FTE3IY.js → daemon-trust-policy-monitor-FBHB5GMQ.js} +43 -40
  176. package/chunks/{de-SY6O76BF.js → de-VL76CPLV.js} +50 -5
  177. package/chunks/{deferred-core-runtime-GHJ5GQHK.js → deferred-core-runtime-BBLJ4JUM.js} +37 -34
  178. package/chunks/display-image-2WOG27DY.js +184 -0
  179. package/chunks/{dist-ZHXOBXDN.js → dist-3BMEUGTG.js} +1 -1
  180. package/chunks/{dist-OAOC5OV4.js → dist-7JGAAQSC.js} +2 -2
  181. package/chunks/{dist-SL2LUMML.js → dist-A7H2KKUC.js} +1 -1
  182. package/chunks/{dist-ULIG4M5H.js → dist-C5U4LJKW.js} +162 -15
  183. package/chunks/{dist-2PERFI23.js → dist-DPPHJAVL.js} +3 -3
  184. package/chunks/{dist-PVEAFLHY.js → dist-HVBMEYWK.js} +1 -1
  185. package/chunks/{dist-26BIMQT6.js → dist-IKGVITP3.js} +676 -37
  186. package/chunks/{dist-WGMNT3JQ.js → dist-SFQ34F4M.js} +24 -6
  187. package/chunks/{earlyInputCapture-TQXLLISD.js → earlyInputCapture-ALVSMKP7.js} +38 -35
  188. package/chunks/{edit-FJEUV6KZ.js → edit-POB3CIHQ.js} +37 -34
  189. package/chunks/{en-NBK3JKCE.js → en-IRJ2WN5T.js} +61 -6
  190. package/chunks/{enter-worktree-7GE3TZ4P.js → enter-worktree-Q2N7UZWC.js} +37 -34
  191. package/chunks/{enterPlanMode-KR5TMPCJ.js → enterPlanMode-QGAH2GMP.js} +37 -34
  192. package/chunks/{environment-SWL3CMB3.js → environment-FE5AX2U5.js} +40 -37
  193. package/chunks/{errors-XQE7BGZV.js → errors-SLMCFLSC.js} +40 -37
  194. package/chunks/{exit-worktree-CHKTYNCV.js → exit-worktree-7WO2LPLF.js} +37 -34
  195. package/chunks/{exitPlanMode-QYAG6LWX.js → exitPlanMode-3PINWUTY.js} +37 -34
  196. package/chunks/{fast-path-Z2K7W6DC.js → fast-path-SVFFEL6U.js} +17 -4
  197. package/chunks/{fr-4KG5V7UT.js → fr-GK3HQYVB.js} +50 -5
  198. package/chunks/{gemini-YU4XKEDG.js → gemini-QECJNKNJ.js} +151 -90
  199. package/chunks/{geminiContentGenerator-ZZX6NBO4.js → geminiContentGenerator-ZFAZKT6R.js} +6 -6
  200. package/chunks/{glob-VYF5CXSX.js → glob-GXUNQYNR.js} +37 -34
  201. package/chunks/{goal-tools-HGO6VXPB.js → goal-tools-SPQ5M6D3.js} +3 -3
  202. package/chunks/{grep-5DP5ZUTW.js → grep-LVU5KBCV.js} +37 -34
  203. package/chunks/{handleAutoUpdate-UVBJ56DL.js → handleAutoUpdate-MPDHQY72.js} +43 -40
  204. package/chunks/{i18n-UQNYHEUD.js → i18n-LEYRN6RV.js} +39 -36
  205. package/chunks/{image-gen-WHPIZNWF.js → image-gen-4T2D4PTP.js} +9 -9
  206. package/chunks/{initializer-GMIICF4W.js → initializer-PQV2THBS.js} +44 -41
  207. package/chunks/{installationInfo-4MGG4WVI.js → installationInfo-XC3HXLTX.js} +38 -35
  208. package/chunks/{ja-F3GSQXMF.js → ja-3FA46IKD.js} +50 -5
  209. package/chunks/{keychain-token-storage-IKO4G53C.js → keychain-token-storage-7BT4TQ2A.js} +2 -2
  210. package/chunks/{kittyProtocolDetector-MBRTDRBK.js → kittyProtocolDetector-BFLAKYXH.js} +1 -1
  211. package/chunks/{list-CPN2W334.js → list-AQBTPZRG.js} +46 -43
  212. package/chunks/{list-agents-PXJ7ZUFB.js → list-agents-TWEGRJWO.js} +2 -2
  213. package/chunks/{loadedSettingsAdapter-ZQAV5NDO.js → loadedSettingsAdapter-EZYPDX2J.js} +43 -40
  214. package/chunks/{loggingContentGenerator-5E7W4IEP.js → loggingContentGenerator-WD6YWU7Q.js} +52 -37
  215. package/chunks/{loop-wakeup-Y26NQZ5I.js → loop-wakeup-6LLEOQYV.js} +5 -5
  216. package/chunks/{ls-ONQTTMQR.js → ls-H5WX22VK.js} +4 -4
  217. package/chunks/{lsp-YGHHRGMD.js → lsp-G6FXYEIS.js} +2 -2
  218. package/chunks/{managed-npm-update-MKKAXYXA.js → managed-npm-update-BMM57CHD.js} +40 -37
  219. package/chunks/{mcp-V5NTJF6X.js → mcp-FMI6NCWA.js} +43 -40
  220. package/chunks/{monitor-CO3ASY6E.js → monitor-PZJOYAA2.js} +37 -34
  221. package/chunks/nonInteractiveCli-QPX6R4LL.js +152 -0
  222. package/chunks/{notebook-edit-Z7AEE6FM.js → notebook-edit-GZF2SKTQ.js} +37 -34
  223. package/chunks/{openaiContentGenerator-CA3MQOP3.js → openaiContentGenerator-ZPLCFAAG.js} +18 -18
  224. package/chunks/{pidfile-NL7MKDRU.js → pidfile-PCADVJQW.js} +38 -35
  225. package/chunks/{processUtils-PB5K2DYH.js → processUtils-FKUVQVEU.js} +2 -2
  226. package/chunks/{pt-EQ33KWEN.js → pt-3AOBKPIJ.js} +50 -5
  227. package/chunks/{qwenContentGenerator-JYFNDCOS.js → qwenContentGenerator-2Y4R6YLB.js} +42 -40
  228. package/chunks/{qwenOAuth2-W2ALKQDD.js → qwenOAuth2-UCEHY3I2.js} +8 -8
  229. package/chunks/{read-file-IEOR5H5W.js → read-file-DYHDFVAS.js} +10 -10
  230. package/chunks/{read-mcp-resource-U2IJN5HM.js → read-mcp-resource-DRZSI3HE.js} +2 -2
  231. package/chunks/{record-artifact-MGPJ7EG4.js → record-artifact-IPIRWMFY.js} +3 -3
  232. package/chunks/{resumeHistoryUtils-BNBTP5AS.js → resumeHistoryUtils-5JS6R3AJ.js} +45 -42
  233. package/chunks/{ripGrep-UMQODKEB.js → ripGrep-2QOR3ZQT.js} +37 -34
  234. package/chunks/{ru-7OZAUKGG.js → ru-VJRAMC4W.js} +50 -5
  235. package/chunks/{run-qwen-serve-RN2R6QQW.js → run-qwen-serve-MTVRAUBR.js} +271 -60
  236. package/chunks/{runtime-QFJ2MJF5.js → runtime-DQGE2DYR.js} +50 -45
  237. package/chunks/{scheduler-AMYUFOZI.js → scheduler-BXIZQ4OO.js} +37 -34
  238. package/chunks/{sdk-exporters-http-4BQANSJ6.js → sdk-exporters-http-IKNWQJNV.js} +2 -2
  239. package/chunks/{sdk-impl-Z4VXWVFX.js → sdk-impl-7CUUMQDB.js} +2 -2
  240. package/chunks/{send-message-PMP4ATVM.js → send-message-LHJLVWFD.js} +5 -4
  241. package/chunks/{serve-EIIYJVX3.js → serve-D4GYHFLL.js} +44 -40
  242. package/chunks/{server-EP2LLAPD.js → server-S22MLWTJ.js} +618 -387
  243. package/chunks/{session-GMPZBLOW.js → session-AHNM6YXP.js} +151 -87
  244. package/chunks/{settings-LN7RNKBS.js → settings-77MDDUSX.js} +42 -39
  245. package/chunks/{shell-EM2OWU5X.js → shell-DLD2VQTQ.js} +37 -34
  246. package/chunks/{skill-T5VPSK73.js → skill-3B2PAQE4.js} +27 -14
  247. package/chunks/{skill-settings-GMR3GMNY.js → skill-settings-STR5NF4B.js} +42 -39
  248. package/chunks/{spawnChannel-YPCU62DI.js → spawnChannel-TOWYOVDZ.js} +39 -36
  249. package/chunks/{standalone-update-JAKIM2NF.js → standalone-update-F6ZWABD7.js} +40 -37
  250. package/chunks/{startInteractiveUI-YETQWGYF.js → startInteractiveUI-QR7MHDX7.js} +1829 -1036
  251. package/chunks/{syntheticOutput-D7E6ZFKR.js → syntheticOutput-EYL7DWO7.js} +3 -3
  252. package/chunks/{task-create-NFCYD43L.js → task-create-4ALZMGP5.js} +10 -9
  253. package/chunks/{task-list-TAVMGEVD.js → task-list-6CVQPORX.js} +6 -6
  254. package/chunks/{task-stop-ZDF2UJRM.js → task-stop-Y5ZTFVRX.js} +2 -2
  255. package/chunks/{task-update-6L7LHGEX.js → task-update-IKCEEWJ6.js} +10 -9
  256. package/chunks/{team-create-LFJ6HGNY.js → team-create-LQVIAVRF.js} +37 -34
  257. package/chunks/{team-delete-DPGGRQBU.js → team-delete-CE7DC53R.js} +6 -6
  258. package/chunks/{team-plan-approval-C2KLSDGO.js → team-plan-approval-G5PUNI52.js} +37 -34
  259. package/chunks/terminal-image-renderer-33GSM55L.js +90 -0
  260. package/chunks/{theme-manager-JQ3ZGBP5.js → theme-manager-DBFM5QOG.js} +38 -35
  261. package/chunks/{todoWrite-2UO5G6G6.js → todoWrite-FTZWQRZH.js} +108 -36
  262. package/chunks/{tool-search-FAZBFRJZ.js → tool-search-RGG7BBC4.js} +13 -12
  263. package/chunks/{total-session-admission-5CALIVYO.js → total-session-admission-LY3RMXXI.js} +44 -41
  264. package/chunks/{trustedFolders-KOPSP44S.js → trustedFolders-3M4IQ6K6.js} +39 -36
  265. package/chunks/{update-relaunch-6QL2TICS.js → update-relaunch-G3CMSX3M.js} +5 -5
  266. package/chunks/{updateCheck-4Q6RIKFW.js → updateCheck-ZKFGBDTG.js} +42 -39
  267. package/chunks/{useAutoAcceptIndicator-Q5BMKZV3.js → useAutoAcceptIndicator-7SAFZK5H.js} +47 -44
  268. package/chunks/{validateNonInterActiveAuth-GKOC5F6Z.js → validateNonInterActiveAuth-F2K6UGE4.js} +88 -84
  269. package/chunks/{version-VSATY2LD.js → version-KM6MYV2D.js} +1 -1
  270. package/chunks/{web-fetch-JCLKL6NL.js → web-fetch-SM4LZHRS.js} +13 -13
  271. package/chunks/{web-search-DSQTFUBX.js → web-search-OGKZNDAC.js} +8 -8
  272. package/chunks/{workflow-M6QAVKVJ.js → workflow-HU365RFR.js} +419 -304
  273. package/chunks/{workspace-providers-status-YKLTLMJA.js → workspace-providers-status-QKKXQHL7.js} +46 -43
  274. package/chunks/{workspace-registration-store-5DMGKU64.js → workspace-registration-store-7J7KOXFD.js} +2 -2
  275. package/chunks/{workspace-registry-PTYUSYXX.js → workspace-registry-KC66O6DH.js} +44 -41
  276. package/chunks/{workspace-service-25ML3T47.js → workspace-service-TEV5Q2AA.js} +51 -48
  277. package/chunks/{workspace-skills-status-YKZWOYRX.js → workspace-skills-status-VRL55OMU.js} +45 -42
  278. package/chunks/{workspace-trust-reconciler-5FI2S3OS.js → workspace-trust-reconciler-COC5M7CY.js} +50 -47
  279. package/chunks/{write-file-AY7VLP5X.js → write-file-3SO2BMNO.js} +37 -34
  280. package/chunks/{zh-H3YDK5QW.js → zh-ARWDLDLR.js} +58 -6
  281. package/chunks/{zh-TW-JYCP7XUA.js → zh-TW-Y4RGI3P7.js} +58 -6
  282. package/chunks/{zoom-image-S4LJZMD5.js → zoom-image-O3RWTVKV.js} +10 -10
  283. package/cli.js +32 -48
  284. package/locales/ca.js +68 -4
  285. package/locales/de.js +70 -4
  286. package/locales/en.js +84 -6
  287. package/locales/fr.js +72 -4
  288. package/locales/ja.js +69 -4
  289. package/locales/pt.js +68 -4
  290. package/locales/ru.js +71 -4
  291. package/locales/zh-TW.js +74 -6
  292. package/locales/zh.js +74 -6
  293. package/package.json +3 -3
  294. package/web-shell/assets/{arc-xjArKHU2.js → arc-KuwiZ67W.js} +1 -1
  295. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BgrQDNYG.js → architectureDiagram-3BPJPVTR-Cppop6HB.js} +1 -1
  296. package/web-shell/assets/{blockDiagram-GPEHLZMM-CXxWC-1_.js → blockDiagram-GPEHLZMM-DQ6HT72s.js} +1 -1
  297. package/web-shell/assets/{c4Diagram-AAUBKEIU-Dx1tLm3v.js → c4Diagram-AAUBKEIU-B8TX_Mh-.js} +1 -1
  298. package/web-shell/assets/channel-BZd6Ile0.js +1 -0
  299. package/web-shell/assets/{chunk-2J33WTMH-CBxjogVR.js → chunk-2J33WTMH-B2WBUTp8.js} +1 -1
  300. package/web-shell/assets/{chunk-4BX2VUAB-izb-rY5W.js → chunk-4BX2VUAB-DXUsWC6O.js} +1 -1
  301. package/web-shell/assets/{chunk-55IACEB6-NzLyvSb8.js → chunk-55IACEB6-DtB-6cyk.js} +1 -1
  302. package/web-shell/assets/{chunk-727SXJPM-DVyKb0dl.js → chunk-727SXJPM-B-PhPyC3.js} +1 -1
  303. package/web-shell/assets/{chunk-AQP2D5EJ-BtqL7NzB.js → chunk-AQP2D5EJ-DNaTFMSC.js} +1 -1
  304. package/web-shell/assets/{chunk-FMBD7UC4-iNpdKIO0.js → chunk-FMBD7UC4-DZ345tFf.js} +1 -1
  305. package/web-shell/assets/{chunk-ND2GUHAM-DI7cbFmX.js → chunk-ND2GUHAM-BR_EpgzJ.js} +1 -1
  306. package/web-shell/assets/{chunk-QZHKN3VN-3Y_-xFYs.js → chunk-QZHKN3VN-BTU-0gDT.js} +1 -1
  307. package/web-shell/assets/classDiagram-4FO5ZUOK-B7c-TqtK.js +1 -0
  308. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B7c-TqtK.js +1 -0
  309. package/web-shell/assets/{cose-bilkent-S5V4N54A--raRatZn.js → cose-bilkent-S5V4N54A-BmsKBCNt.js} +1 -1
  310. package/web-shell/assets/{dagre-BM42HDAG-B8SU70mO.js → dagre-BM42HDAG-Ba8YWdDC.js} +1 -1
  311. package/web-shell/assets/{diagram-2AECGRRQ-ewgoakXo.js → diagram-2AECGRRQ-CCt2SnI6.js} +1 -1
  312. package/web-shell/assets/{diagram-5GNKFQAL-Bm_JLTnS.js → diagram-5GNKFQAL-BVTLXEU7.js} +1 -1
  313. package/web-shell/assets/{diagram-KO2AKTUF-DEIUjUy9.js → diagram-KO2AKTUF-DpDAVCYV.js} +1 -1
  314. package/web-shell/assets/{diagram-LMA3HP47-C2Wmrpj-.js → diagram-LMA3HP47-8ljXg-TB.js} +1 -1
  315. package/web-shell/assets/{diagram-OG6HWLK6-CtYe6bFx.js → diagram-OG6HWLK6-JAXfQSmd.js} +1 -1
  316. package/web-shell/assets/{erDiagram-TEJ5UH35-DfpHcWLV.js → erDiagram-TEJ5UH35-CUeakG6k.js} +1 -1
  317. package/web-shell/assets/{flowDiagram-I6XJVG4X-CAiUhio5.js → flowDiagram-I6XJVG4X-Cd4Wrdwv.js} +1 -1
  318. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CYc7ezr4.js → ganttDiagram-6RSMTGT7-C0nMFvH_.js} +1 -1
  319. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-70lbkcRS.js → gitGraphDiagram-PVQCEYII-uKk88n_L.js} +1 -1
  320. package/web-shell/assets/index-BXGtjHs5.js +1756 -0
  321. package/web-shell/assets/{index-Ww86nT9f.js → index-C1UWBJSX.js} +1 -1
  322. package/web-shell/assets/index-WxSvj2tI.css +5 -0
  323. package/web-shell/assets/{infoDiagram-5YYISTIA-C7e8DWPa.js → infoDiagram-5YYISTIA-GfPN17hR.js} +1 -1
  324. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BYLr2op-.js → ishikawaDiagram-YF4QCWOH-CDbWTcGa.js} +1 -1
  325. package/web-shell/assets/{journeyDiagram-JHISSGLW-hEibAHKX.js → journeyDiagram-JHISSGLW-J8TvvVFz.js} +1 -1
  326. package/web-shell/assets/{kanban-definition-UN3LZRKU-F2rt8Uhp.js → kanban-definition-UN3LZRKU-Ds_ndLrs.js} +1 -1
  327. package/web-shell/assets/{linear-DPhyNezd.js → linear-DuL9O4i3.js} +1 -1
  328. package/web-shell/assets/{mermaid.core-ZUtnug0n.js → mermaid.core-DtK4PsQB.js} +5 -5
  329. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DDWcMoi8.js → mindmap-definition-RKZ34NQL-DD0r7MS3.js} +1 -1
  330. package/web-shell/assets/{pieDiagram-4H26LBE5-CTRKzw1_.js → pieDiagram-4H26LBE5-CxGPZ8Q-.js} +1 -1
  331. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CAEwYG_z.js → quadrantDiagram-W4KKPZXB-Ds7Buxed.js} +1 -1
  332. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CRjnH9D9.js → requirementDiagram-4Y6WPE33-DIx28ph5.js} +1 -1
  333. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-LPQT_sOd.js → sankeyDiagram-5OEKKPKP-AxdAYcVX.js} +1 -1
  334. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Ht2Iqvb0.js → sequenceDiagram-3UESZ5HK-CojoXAZ5.js} +1 -1
  335. package/web-shell/assets/{stateDiagram-AJRCARHV-CIUdqOXu.js → stateDiagram-AJRCARHV-Dy1WN3mi.js} +1 -1
  336. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BaTNMz02.js +1 -0
  337. package/web-shell/assets/{timeline-definition-PNZ67QCA-BcilneZF.js → timeline-definition-PNZ67QCA-DeWe_43M.js} +1 -1
  338. package/web-shell/assets/{vennDiagram-CIIHVFJN-BljwiiH1.js → vennDiagram-CIIHVFJN-BN8PVlFq.js} +1 -1
  339. package/web-shell/assets/{wardley-L42UT6IY-DeKjkYjq.js → wardley-L42UT6IY-CbjV_1hf.js} +1 -1
  340. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-L3U1H7KG.js → wardleyDiagram-YWT4CUSO-D2mw84_p.js} +1 -1
  341. package/web-shell/assets/{xychartDiagram-2RQKCTM6-IJnWsgMT.js → xychartDiagram-2RQKCTM6-er9CTQXi.js} +1 -1
  342. package/web-shell/index.html +2 -2
  343. package/chunks/chunk-4KP2F2TE.js +0 -82
  344. package/chunks/chunk-HGT6JR3U.js +0 -177
  345. package/chunks/nonInteractiveCli-ZJYEOO7U.js +0 -148
  346. package/web-shell/assets/channel-B1cyk94G.js +0 -1
  347. package/web-shell/assets/classDiagram-4FO5ZUOK-BpBYZoRE.js +0 -1
  348. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BpBYZoRE.js +0 -1
  349. package/web-shell/assets/index-C1k3PDuU.css +0 -5
  350. package/web-shell/assets/index-DZLIXILO.js +0 -1750
  351. package/web-shell/assets/insert-DmRbh9Rv.svg +0 -1
  352. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BmqqQZ6w.js +0 -1
@@ -1,9 +1,8 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
3
  import {
4
- DaemonMetricsRing,
5
4
  computeCpuPercent
6
- } from "./chunk-HGT6JR3U.js";
5
+ } from "./chunk-LBOVL47Y.js";
7
6
  import {
8
7
  RUNTIME_STARTUP_CANCELLED_MESSAGE
9
8
  } from "./chunk-QUPXZXLV.js";
@@ -34,11 +33,16 @@ import {
34
33
  prepareManagedScratchRoot,
35
34
  require_express,
36
35
  resolveWebShellDir,
37
- setDeferredRuntimeRequestTiming
38
- } from "./chunk-MB32MS4U.js";
36
+ setDeferredRuntimeRequestTiming,
37
+ toDaemonStatusMemoryLimits
38
+ } from "./chunk-ZLJQIGCH.js";
39
39
  import {
40
40
  isLoopbackBind
41
41
  } from "./chunk-RXFQM6FQ.js";
42
+ import {
43
+ formatMemoryBudgetStderr,
44
+ resolveDaemonMemoryBudget
45
+ } from "./chunk-HGCQ5SE7.js";
42
46
  import {
43
47
  DEFAULT_COMPACTED_REPLAY_MAX_BYTES,
44
48
  DEFAULT_MAX_JOURNAL_BYTES,
@@ -47,10 +51,12 @@ import {
47
51
  normalizeMaxJournalBytes,
48
52
  normalizeMaxJournalEvents
49
53
  } from "./chunk-XCGIMOLN.js";
54
+ import "./chunk-K6KS3LTN.js";
50
55
  import "./chunk-FC4KQFCS.js";
56
+ import "./chunk-T3CHYWJZ.js";
51
57
  import {
52
58
  resolveChannelCwd
53
- } from "./chunk-FANRZEAJ.js";
59
+ } from "./chunk-VWOVHOTT.js";
54
60
  import {
55
61
  loadServeFastPathSettings,
56
62
  preResolveServeFastPathHomeEnvOverrides
@@ -59,39 +65,37 @@ import {
59
65
  MAX_REGISTERED_WORKSPACES,
60
66
  resolveWorkspaceInputs,
61
67
  workspaceRegistrationId
62
- } from "./chunk-LYI2PZDK.js";
63
- import "./chunk-E2FN6SM7.js";
68
+ } from "./chunk-A5LNZGJB.js";
69
+ import "./chunk-CIUUYB23.js";
64
70
  import {
65
71
  LOAD_REPLAY_META_KEY
66
- } from "./chunk-CPZAH673.js";
67
- import "./chunk-B4AJNNOL.js";
72
+ } from "./chunk-UKZEXS6K.js";
73
+ import "./chunk-J26HHFI5.js";
68
74
  import {
69
75
  canonicalizeWorkspace,
70
76
  translateAndCheckAbsoluteWorkspacePath
71
- } from "./chunk-2RFKHEXL.js";
72
- import "./chunk-FCYYAB4S.js";
77
+ } from "./chunk-6PLDPT2C.js";
78
+ import "./chunk-FHPKHXHT.js";
73
79
  import "./chunk-FYJ7W2PI.js";
74
80
  import {
75
81
  ChannelDeliveryError,
76
82
  ChannelWebhookEnqueueError,
77
83
  QWEN_SERVER_TOKEN_ENV,
78
84
  isChannelDeliveryError
79
- } from "./chunk-U4VTUMMK.js";
85
+ } from "./chunk-QONSRAEV.js";
80
86
  import {
81
87
  normalizeWorkerDiagnostic,
82
88
  sanitizeWorkerDiagnostic
83
- } from "./chunk-6MPDY6ZG.js";
89
+ } from "./chunk-24ER7UV4.js";
84
90
  import {
85
91
  channelSelectionNames
86
92
  } from "./chunk-ALMR3E6Q.js";
87
93
  import "./chunk-BK2UNYWD.js";
88
94
  import "./chunk-M5GB774H.js";
89
95
  import "./chunk-5HBA2Z7V.js";
90
- import "./chunk-K6KS3LTN.js";
91
- import "./chunk-T3CHYWJZ.js";
92
96
  import {
93
97
  sanitizeLogText
94
- } from "./chunk-JCJ7LKNA.js";
98
+ } from "./chunk-DIEFUBV6.js";
95
99
  import "./chunk-UDXSXLER.js";
96
100
  import "./chunk-GOXKNSDZ.js";
97
101
  import {
@@ -99,18 +103,15 @@ import {
99
103
  resolveConfigPathLite
100
104
  } from "./chunk-IDS7MSUP.js";
101
105
  import "./chunk-6PEXNQTX.js";
102
- import "./chunk-ALGGS7UH.js";
103
- import {
104
- isWithinRoot
105
- } from "./chunk-MR3PXB6E.js";
106
106
  import {
107
107
  getCliVersion
108
- } from "./chunk-2KKCCLPT.js";
108
+ } from "./chunk-C4IUDGPI.js";
109
109
  import "./chunk-VJNBRRZG.js";
110
+ import "./chunk-ALGGS7UH.js";
110
111
  import {
111
- writeStderrLine,
112
- writeStdoutLine
113
- } from "./chunk-OWAK7LMW.js";
112
+ isWithinRoot
113
+ } from "./chunk-MR3PXB6E.js";
114
+ import "./chunk-GOFAQQZA.js";
114
115
  import "./chunk-5M6IDOMF.js";
115
116
  import "./chunk-TWPJO254.js";
116
117
  import "./chunk-H6XPXXMH.js";
@@ -124,6 +125,10 @@ import {
124
125
  profileCheckpoint
125
126
  } from "./chunk-QSWDGAIC.js";
126
127
  import "./chunk-Q7YDKOGY.js";
128
+ import {
129
+ writeStderrLine,
130
+ writeStdoutLine
131
+ } from "./chunk-OWAK7LMW.js";
127
132
  import "./chunk-DMTGGOSA.js";
128
133
  import "./chunk-YQ3U5MUC.js";
129
134
  import {
@@ -144,6 +149,10 @@ import * as path from "node:path";
144
149
  import * as os from "node:os";
145
150
  import { monitorEventLoopDelay, performance as performance2 } from "node:perf_hooks";
146
151
 
152
+ // packages/core/dist/src/memory/scopes.js
153
+ init_esbuild_shims();
154
+ var MEMORY_PROJECT_SCOPES = ["git-root", "workspace"];
155
+
147
156
  // packages/cli/src/serve/permission-audit.ts
148
157
  init_esbuild_shims();
149
158
  var DEFAULT_PERMISSION_AUDIT_RING_SIZE = 512;
@@ -1622,6 +1631,156 @@ ${capUtf8Record(
1622
1631
  }
1623
1632
  __name(initDaemonLogger, "initDaemonLogger");
1624
1633
 
1634
+ // packages/cli/src/serve/daemon-metrics-ring.ts
1635
+ init_esbuild_shims();
1636
+ var MAX_SAMPLES_PER_WINDOW = 4096;
1637
+ var DaemonMetricsRing = class {
1638
+ static {
1639
+ __name(this, "DaemonMetricsRing");
1640
+ }
1641
+ capacity;
1642
+ buckets = [];
1643
+ curRequests = 0;
1644
+ curErrors = 0;
1645
+ curDurations = [];
1646
+ curPromptsCompleted = 0;
1647
+ curQueueWaits = [];
1648
+ curPromptDurations = [];
1649
+ curLlmDurations = [];
1650
+ curLlmApiErrors = 0;
1651
+ curLlmApiRetries = 0;
1652
+ curPipeInBytes = 0;
1653
+ curPipeOutBytes = 0;
1654
+ curTokensIn = 0;
1655
+ curTokensOut = 0;
1656
+ constructor(options) {
1657
+ this.capacity = Math.max(1, Math.floor(options.capacity));
1658
+ }
1659
+ /** Fold one completed HTTP request into the open window. */
1660
+ recordRequest(durationMs, statusCode) {
1661
+ this.curRequests += 1;
1662
+ if (statusCode >= 400) this.curErrors += 1;
1663
+ pushCapped(this.curDurations, durationMs);
1664
+ }
1665
+ /** Fold one prompt's queue wait (dispatched from the per-session FIFO). */
1666
+ recordPromptQueueWait(durationMs) {
1667
+ pushCapped(this.curQueueWaits, durationMs);
1668
+ }
1669
+ /** Fold one finished prompt's end-to-end duration (also counts throughput). */
1670
+ recordPromptDuration(durationMs) {
1671
+ this.curPromptsCompleted += 1;
1672
+ pushCapped(this.curPromptDurations, durationMs);
1673
+ }
1674
+ /** Fold one model round's LLM API round-trip time (from the token frame). */
1675
+ recordLlmDuration(durationMs) {
1676
+ pushCapped(this.curLlmDurations, durationMs);
1677
+ }
1678
+ /**
1679
+ * Fold one model round's per-round model-API-error and automatic-retry
1680
+ * increments (from the same token frame) into the open window. Both are
1681
+ * plain counters — a burst in one window accrues exactly, past the sample
1682
+ * cap that only bounds the percentile arrays. Non-finite / negative inputs
1683
+ * are ignored so a malformed frame cannot poison the totals.
1684
+ */
1685
+ recordApiActivity(errors, retries) {
1686
+ if (Number.isFinite(errors) && errors > 0) this.curLlmApiErrors += errors;
1687
+ if (Number.isFinite(retries) && retries > 0) {
1688
+ this.curLlmApiRetries += retries;
1689
+ }
1690
+ }
1691
+ /** Fold one ACP-child pipe message's payload size into the open window. */
1692
+ recordPipe(direction, bytes) {
1693
+ if (!Number.isFinite(bytes) || bytes < 0) return;
1694
+ if (direction === "inbound") this.curPipeInBytes += bytes;
1695
+ else this.curPipeOutBytes += bytes;
1696
+ }
1697
+ /** Fold one model turn's token usage into the open window. */
1698
+ recordTokens(inputTokens, outputTokens) {
1699
+ if (Number.isFinite(inputTokens) && inputTokens > 0) {
1700
+ this.curTokensIn += inputTokens;
1701
+ }
1702
+ if (Number.isFinite(outputTokens) && outputTokens > 0) {
1703
+ this.curTokensOut += outputTokens;
1704
+ }
1705
+ }
1706
+ /**
1707
+ * Seal the open window into a bucket stamped at `now` (folding in the
1708
+ * gauges), append it, evict the oldest past capacity, then reset the
1709
+ * accumulators for the next window.
1710
+ */
1711
+ sample(now, gauges) {
1712
+ this.buckets.push({
1713
+ t: now,
1714
+ activeSessions: finiteGauge(gauges.activeSessions),
1715
+ activePrompts: finiteGauge(gauges.activePrompts),
1716
+ queuedPrompts: finiteGauge(gauges.queuedPrompts),
1717
+ requests: this.curRequests,
1718
+ errors: this.curErrors,
1719
+ latencyP50Ms: percentile(this.curDurations, 0.5),
1720
+ latencyP95Ms: percentile(this.curDurations, 0.95),
1721
+ promptsCompleted: this.curPromptsCompleted,
1722
+ promptQueueWaitP95Ms: percentile(this.curQueueWaits, 0.95),
1723
+ promptDurationP95Ms: percentile(this.curPromptDurations, 0.95),
1724
+ llmApiP50Ms: percentile(this.curLlmDurations, 0.5),
1725
+ llmApiP95Ms: percentile(this.curLlmDurations, 0.95),
1726
+ llmApiErrors: this.curLlmApiErrors,
1727
+ llmApiRetries: this.curLlmApiRetries,
1728
+ cpuPercent: finiteGauge(gauges.cpuPercent),
1729
+ rssBytes: finiteGauge(gauges.rssBytes),
1730
+ heapUsedBytes: finiteGauge(gauges.heapUsedBytes),
1731
+ eventLoopLagP99Ms: finiteGauge(gauges.eventLoopLagP99Ms),
1732
+ pipeInBytes: this.curPipeInBytes,
1733
+ pipeOutBytes: this.curPipeOutBytes,
1734
+ sseConnections: finiteGauge(gauges.sseConnections),
1735
+ wsConnections: finiteGauge(gauges.wsConnections),
1736
+ acpConnections: finiteGauge(gauges.acpConnections),
1737
+ rateLimitRejected: finiteGauge(gauges.rateLimitRejected),
1738
+ tokensIn: this.curTokensIn,
1739
+ tokensOut: this.curTokensOut,
1740
+ childCpuPercent: finiteGauge(gauges.childCpuPercent),
1741
+ childRssBytes: finiteGauge(gauges.childRssBytes)
1742
+ });
1743
+ if (this.buckets.length > this.capacity) {
1744
+ this.buckets.splice(0, this.buckets.length - this.capacity);
1745
+ }
1746
+ this.curRequests = 0;
1747
+ this.curErrors = 0;
1748
+ this.curDurations.length = 0;
1749
+ this.curPromptsCompleted = 0;
1750
+ this.curQueueWaits.length = 0;
1751
+ this.curPromptDurations.length = 0;
1752
+ this.curLlmDurations.length = 0;
1753
+ this.curLlmApiErrors = 0;
1754
+ this.curLlmApiRetries = 0;
1755
+ this.curPipeInBytes = 0;
1756
+ this.curPipeOutBytes = 0;
1757
+ this.curTokensIn = 0;
1758
+ this.curTokensOut = 0;
1759
+ }
1760
+ /** Oldest→newest copy of the retained buckets (safe to serialize). */
1761
+ snapshot() {
1762
+ return this.buckets.slice();
1763
+ }
1764
+ };
1765
+ function finiteGauge(value) {
1766
+ return Number.isFinite(value) ? value : 0;
1767
+ }
1768
+ __name(finiteGauge, "finiteGauge");
1769
+ function pushCapped(target, value) {
1770
+ if (Number.isFinite(value) && value >= 0 && target.length < MAX_SAMPLES_PER_WINDOW) {
1771
+ target.push(value);
1772
+ }
1773
+ }
1774
+ __name(pushCapped, "pushCapped");
1775
+ function percentile(samples, q) {
1776
+ if (samples.length === 0) return 0;
1777
+ const sorted = samples.slice().sort((a, b) => a - b);
1778
+ const rank = Math.ceil(q * sorted.length);
1779
+ const idx = Math.min(sorted.length - 1, Math.max(0, rank - 1));
1780
+ return sorted[idx];
1781
+ }
1782
+ __name(percentile, "percentile");
1783
+
1625
1784
  // packages/cli/src/serve/large-pipe-frame-observer.ts
1626
1785
  init_esbuild_shims();
1627
1786
  var LARGE_PIPE_FRAME_THRESHOLD_BYTES = 256 * 1024;
@@ -2371,7 +2530,7 @@ var FAST_PATH_RUNTIME_START_AFTER_HEALTH_MS = 50;
2371
2530
  var FAST_PATH_RUNTIME_START_FALLBACK_MS = 1e3;
2372
2531
  var RUNTIME_STARTUP_TIMEOUT_ENV = "QWEN_SERVE_RUNTIME_STARTUP_TIMEOUT_MS";
2373
2532
  var MAX_EVENT_RING_SIZE = 1e6;
2374
- var DEFAULT_MAX_SESSIONS = 20;
2533
+ var DEFAULT_MAX_SESSIONS = 32;
2375
2534
  var DEFAULT_MAX_PENDING_PROMPTS_PER_SESSION = 5;
2376
2535
  var DEFAULT_EVENT_RING_SIZE = 8e3;
2377
2536
  var DEFAULT_SESSION_IDLE_TIMEOUT_MS = 30 * 6e4;
@@ -2537,6 +2696,31 @@ function sessionArtifactsPersistenceAvailableFromSettings(settings) {
2537
2696
  return settings?.general?.chatRecording !== false;
2538
2697
  }
2539
2698
  __name(sessionArtifactsPersistenceAvailableFromSettings, "sessionArtifactsPersistenceAvailableFromSettings");
2699
+ function subSessionConcurrencyCapsFromSettings(serve, onWarning = writeStderrLine) {
2700
+ const asCap = /* @__PURE__ */ __name((key, value) => {
2701
+ if (value === void 0) return void 0;
2702
+ if (typeof value === "number" && Number.isInteger(value) && value >= 1) {
2703
+ return value;
2704
+ }
2705
+ onWarning(
2706
+ `qwen serve: ignoring invalid ${key} (${JSON.stringify(value)}); expected a positive integer, falling back to the built-in default.`
2707
+ );
2708
+ return void 0;
2709
+ }, "asCap");
2710
+ const maxConcurrentPerCaller = asCap(
2711
+ "maxConcurrentSubSessionsPerCaller",
2712
+ serve.maxConcurrentSubSessionsPerCaller
2713
+ );
2714
+ const maxConcurrentTotal = asCap(
2715
+ "maxConcurrentSubSessionsTotal",
2716
+ serve.maxConcurrentSubSessionsTotal
2717
+ );
2718
+ return {
2719
+ ...maxConcurrentPerCaller !== void 0 ? { maxConcurrentPerCaller } : {},
2720
+ ...maxConcurrentTotal !== void 0 ? { maxConcurrentTotal } : {}
2721
+ };
2722
+ }
2723
+ __name(subSessionConcurrencyCapsFromSettings, "subSessionConcurrencyCapsFromSettings");
2540
2724
  var settingsWriteLocks = /* @__PURE__ */ new Map();
2541
2725
  function withSettingsLock(workspace, fn) {
2542
2726
  const prev = settingsWriteLocks.get(workspace) ?? Promise.resolve();
@@ -2549,12 +2733,12 @@ var retryableChannelWorkerShutdownErrors = /* @__PURE__ */ new WeakSet();
2549
2733
  var channelWorkerRuntimePromise;
2550
2734
  async function loadChannelWorkerRuntime() {
2551
2735
  channelWorkerRuntimePromise ??= Promise.all([
2552
- import("./channel-worker-supervisor-CABBXYHK.js"),
2553
- import("./pidfile-NL7MKDRU.js"),
2554
- import("./runtime-QFJ2MJF5.js"),
2736
+ import("./channel-worker-supervisor-ATGFTZRN.js"),
2737
+ import("./pidfile-PCADVJQW.js"),
2738
+ import("./runtime-DQGE2DYR.js"),
2555
2739
  import("./cli-entry-path-4VJ3Y6T2.js"),
2556
- import("./channel-worker-group-OVWGYMZS.js"),
2557
- import("./channel-worker-manager-H55GKOQA.js")
2740
+ import("./channel-worker-group-NDG4WOOZ.js"),
2741
+ import("./channel-worker-manager-ZCW6UW34.js")
2558
2742
  ]).then(
2559
2743
  ([
2560
2744
  supervisor,
@@ -2659,7 +2843,7 @@ function shouldPreheatBridge(deps) {
2659
2843
  __name(shouldPreheatBridge, "shouldPreheatBridge");
2660
2844
  var coreRuntimePromise;
2661
2845
  function loadCoreRuntime() {
2662
- coreRuntimePromise ??= import("./core-runtime-6N4EFC2Q.js");
2846
+ coreRuntimePromise ??= import("./core-runtime-2VCZN5QF.js");
2663
2847
  return coreRuntimePromise;
2664
2848
  }
2665
2849
  __name(loadCoreRuntime, "loadCoreRuntime");
@@ -2689,10 +2873,10 @@ __name(resolveDaemonLogBaseDirForRun, "resolveDaemonLogBaseDirForRun");
2689
2873
  var settingsRuntimePromise;
2690
2874
  function loadSettingsRuntimeModules() {
2691
2875
  settingsRuntimePromise ??= Promise.all([
2692
- import("./settings-LN7RNKBS.js"),
2693
- import("./environment-SWL3CMB3.js"),
2694
- import("./loadedSettingsAdapter-ZQAV5NDO.js"),
2695
- import("./trustedFolders-KOPSP44S.js")
2876
+ import("./settings-77MDDUSX.js"),
2877
+ import("./environment-FE5AX2U5.js"),
2878
+ import("./loadedSettingsAdapter-EZYPDX2J.js"),
2879
+ import("./trustedFolders-3M4IQ6K6.js")
2696
2880
  ]).then(([settings, environment, loadedSettingsAdapter, trustedFolders]) => ({
2697
2881
  settings,
2698
2882
  environment,
@@ -2705,8 +2889,8 @@ __name(loadSettingsRuntimeModules, "loadSettingsRuntimeModules");
2705
2889
  var channelWebhookConfigRuntimePromise;
2706
2890
  function loadChannelWebhookConfigRuntime() {
2707
2891
  channelWebhookConfigRuntimePromise ??= Promise.all([
2708
- import("./runtime-QFJ2MJF5.js"),
2709
- import("./config-utils-WADIDWGG.js")
2892
+ import("./runtime-DQGE2DYR.js"),
2893
+ import("./config-utils-E3ZQTHGM.js")
2710
2894
  ]).then(([channelRuntime, configUtils]) => ({
2711
2895
  loadChannelsConfig: channelRuntime.loadChannelsConfig,
2712
2896
  parseChannelWebhookConfig: configUtils.parseChannelWebhookConfig
@@ -2731,17 +2915,17 @@ async function loadServeRuntimeModules() {
2731
2915
  totalSessionAdmissionModule,
2732
2916
  workspaceRegistryModule
2733
2917
  ] = await Promise.all([
2734
- import("./server-EP2LLAPD.js"),
2735
- import("./bridge-W7AZSRZQ.js"),
2736
- import("./spawnChannel-YPCU62DI.js"),
2918
+ import("./server-S22MLWTJ.js"),
2919
+ import("./bridge-XNAWEDAN.js"),
2920
+ import("./spawnChannel-TOWYOVDZ.js"),
2737
2921
  import("./process-registry-2CHQBXH5.js"),
2738
- import("./workspace-service-25ML3T47.js"),
2922
+ import("./workspace-service-TEV5Q2AA.js"),
2739
2923
  import("./types-ML3TRJQ5.js"),
2740
- import("./daemon-status-provider-DDF7C5M7.js"),
2741
- import("./workspace-providers-status-YKLTLMJA.js"),
2742
- import("./workspace-skills-status-YKZWOYRX.js"),
2743
- import("./total-session-admission-5CALIVYO.js"),
2744
- import("./workspace-registry-PTYUSYXX.js")
2924
+ import("./daemon-status-provider-F2YGDKHR.js"),
2925
+ import("./workspace-providers-status-QKKXQHL7.js"),
2926
+ import("./workspace-skills-status-VRL55OMU.js"),
2927
+ import("./total-session-admission-LY3RMXXI.js"),
2928
+ import("./workspace-registry-KC66O6DH.js")
2745
2929
  ]);
2746
2930
  return {
2747
2931
  createServeApp: serverModule.createServeApp,
@@ -3115,7 +3299,8 @@ function createBootstrapServeApp(input) {
3115
3299
  writerIdleTimeoutMs: positiveFiniteOrNull(opts.writerIdleTimeoutMs),
3116
3300
  channelIdleTimeoutMs: channelIdleTimeoutMs(opts.channelIdleTimeoutMs),
3117
3301
  sessionIdleTimeoutMs: sessionIdleTimeoutMs(opts.sessionIdleTimeoutMs),
3118
- acpConnectionCap: null
3302
+ acpConnectionCap: null,
3303
+ memory: toDaemonStatusMemoryLimits(opts.daemonMemoryBudget)
3119
3304
  },
3120
3305
  capabilities: {
3121
3306
  protocolVersions: getServeProtocolVersions(),
@@ -3403,9 +3588,19 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
3403
3588
  status: deps.bridge ? "external_bridge" : shouldPreheat ? "scheduled" : "not_scheduled"
3404
3589
  }
3405
3590
  };
3591
+ if (optsIn.memoryProjectScope !== void 0 && !MEMORY_PROJECT_SCOPES.includes(
3592
+ optsIn.memoryProjectScope
3593
+ )) {
3594
+ throw new TypeError(
3595
+ `Invalid memoryProjectScope: ${String(optsIn.memoryProjectScope)}. Must be "git-root" or "workspace".`
3596
+ );
3597
+ }
3406
3598
  preResolveServeFastPathHomeEnvOverrides();
3407
3599
  const daemonRuntimeBaseEnv = Object.freeze({
3408
- ...process.env
3600
+ ...process.env,
3601
+ ...optsIn.memoryProjectScope !== void 0 ? {
3602
+ QWEN_CODE_MEMORY_PROJECT_SCOPE: optsIn.memoryProjectScope
3603
+ } : {}
3409
3604
  });
3410
3605
  const rawToken = optsIn.token ?? process.env[QWEN_SERVER_TOKEN_ENV];
3411
3606
  const token = typeof rawToken === "string" && rawToken.trim().length > 0 ? rawToken.trim() : void 0;
@@ -3632,9 +3827,15 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
3632
3827
  `At most ${MAX_REGISTERED_WORKSPACES} --workspace values may be registered.`
3633
3828
  );
3634
3829
  }
3830
+ opts.daemonMemoryBudget = resolveDaemonMemoryBudget({
3831
+ budgetMb: opts.memoryBudgetMb
3832
+ });
3833
+ if (opts.daemonMemoryBudget.budgetSource === "flag" || opts.daemonMemoryBudget.insufficientMemory) {
3834
+ writeStderrLine(formatMemoryBudgetStderr(opts.daemonMemoryBudget));
3835
+ }
3635
3836
  let workspaceRegistrationStore = deps.workspaceRegistrationStore;
3636
3837
  if (workspaceRegistrationStore === void 0 && process.env["QWEN_SERVE_NO_PERSISTENT_REGISTRATION"] !== "1") {
3637
- const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-5DMGKU64.js");
3838
+ const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-7J7KOXFD.js");
3638
3839
  workspaceRegistrationStore = new WorkspaceRegistrationStore(boundWorkspace);
3639
3840
  }
3640
3841
  if (workspaceRegistrationStore) {
@@ -4145,7 +4346,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4145
4346
  loadCoreRuntime(),
4146
4347
  loadSettingsRuntimeModules(),
4147
4348
  cliVersionPromise,
4148
- import("./daemon-trust-policy-Q4KSOJTR.js")
4349
+ import("./daemon-trust-policy-XCY7JETR.js")
4149
4350
  ]);
4150
4351
  cliVersion = resolvedCliVersion;
4151
4352
  settingsRuntime.environment.preResolveHomeEnvOverrides();
@@ -4510,7 +4711,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4510
4711
  resolveSkillSettings,
4511
4712
  skillSettingStrings,
4512
4713
  updateWorkspaceSkillSettingLists
4513
- } = await import("./skill-settings-GMR3GMNY.js");
4714
+ } = await import("./skill-settings-STR5NF4B.js");
4514
4715
  const fresh = loadSettingsForPersistence(workspace);
4515
4716
  const normalizedName = skillName.trim().toLowerCase();
4516
4717
  const resolved = resolveSkillSettings(fresh);
@@ -4609,10 +4810,13 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4609
4810
  );
4610
4811
  }
4611
4812
  }), "persistSettingsFn");
4612
- const { createSubSessionLauncher } = await import("./create-sub-session-AEREHZBQ.js");
4813
+ const { createSubSessionLauncher } = await import("./create-sub-session-52OUA2VU.js");
4613
4814
  const subSessionLauncher = createSubSessionLauncher({
4614
4815
  getBridge: /* @__PURE__ */ __name(() => bridgeRef, "getBridge"),
4615
- boundWorkspace
4816
+ boundWorkspace,
4817
+ ...subSessionConcurrencyCapsFromSettings(
4818
+ runtimeBootSettings?.merged.serve ?? {}
4819
+ )
4616
4820
  });
4617
4821
  const bridge = deps.bridge ?? runtime.createAcpSessionBridge({
4618
4822
  // Reverse tool channel: let `BridgeClient.extMethod` reach the WS
@@ -4911,7 +5115,10 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4911
5115
  let secondaryBridgeRef;
4912
5116
  const secondarySubSessionLauncher = createSubSessionLauncher({
4913
5117
  getBridge: /* @__PURE__ */ __name(() => secondaryBridgeRef, "getBridge"),
4914
- boundWorkspace: workspaceInput.cwd
5118
+ boundWorkspace: workspaceInput.cwd,
5119
+ ...subSessionConcurrencyCapsFromSettings(
5120
+ secondarySettings?.merged.serve ?? {}
5121
+ )
4915
5122
  });
4916
5123
  const secondaryBridge = runtime.createAcpSessionBridge({
4917
5124
  clientMcpSender: secondaryClientMcpSenderRegistry.lookup,
@@ -5248,7 +5455,10 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5248
5455
  let wsBridgeRef;
5249
5456
  const wsSubSessionLauncher = createSubSessionLauncher({
5250
5457
  getBridge: /* @__PURE__ */ __name(() => wsBridgeRef, "getBridge"),
5251
- boundWorkspace: cwd
5458
+ boundWorkspace: cwd,
5459
+ ...subSessionConcurrencyCapsFromSettings(
5460
+ wsSettings?.merged.serve ?? {}
5461
+ )
5252
5462
  });
5253
5463
  let wsBridge;
5254
5464
  try {
@@ -5710,8 +5920,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5710
5920
  { createChannelManagementService },
5711
5921
  { WorkspaceChannelSettingsStore }
5712
5922
  ] = await Promise.all([
5713
- import("./channel-management-service-5S7YCWX5.js"),
5714
- import("./channel-settings-store-JFVRSNER.js")
5923
+ import("./channel-management-service-UHX56NBO.js"),
5924
+ import("./channel-settings-store-7P6RJSSF.js")
5715
5925
  ]);
5716
5926
  return createChannelManagementService({
5717
5927
  workspaceCwd: targetRuntime.workspaceCwd,
@@ -5907,8 +6117,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5907
6117
  { createWorkspaceTrustReconciler },
5908
6118
  { createDaemonTrustPolicyMonitor }
5909
6119
  ] = await Promise.all([
5910
- import("./workspace-trust-reconciler-5FI2S3OS.js"),
5911
- import("./daemon-trust-policy-monitor-V6FTE3IY.js")
6120
+ import("./workspace-trust-reconciler-COC5M7CY.js"),
6121
+ import("./daemon-trust-policy-monitor-FBHB5GMQ.js")
5912
6122
  ]);
5913
6123
  const materializationFor = /* @__PURE__ */ __name((entry, snapshot, decision) => {
5914
6124
  const boundWorkspaces2 = entry.primary && decision.targetTrusted ? runtime.resolveBoundWorkspacesFromIdeEnv(
@@ -6115,7 +6325,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6115
6325
  );
6116
6326
  }
6117
6327
  const channelValidationSettingsRuntime = opts.channelSelection ? await loadSettingsRuntimeModules() : void 0;
6118
- const channelValidationTrustPolicy = opts.channelSelection ? await import("./daemon-trust-policy-Q4KSOJTR.js") : void 0;
6328
+ const channelValidationTrustPolicy = opts.channelSelection ? await import("./daemon-trust-policy-XCY7JETR.js") : void 0;
6119
6329
  const channelValidationTrustSnapshot = channelValidationTrustPolicy ? await channelValidationTrustPolicy.readDaemonTrustPolicySnapshot() : void 0;
6120
6330
  const resolveChannelWorkspaceGroupsAtListen = /* @__PURE__ */ __name(() => {
6121
6331
  if (!opts.channelSelection || !channelValidationSettingsRuntime || !channelRuntime) {
@@ -7026,6 +7236,7 @@ export {
7026
7236
  formatChannelWorkerDaemonUrl,
7027
7237
  resolveRuntimeStartupTimeoutMs,
7028
7238
  runQwenServe,
7239
+ subSessionConcurrencyCapsFromSettings,
7029
7240
  validateAndCanonicalizeWorkspaceInput,
7030
7241
  validatePolicyConfig,
7031
7242
  waitForRuntimeStartingForShutdown