@qwen-code/qwen-code 0.21.1 → 0.21.2-nightly.20260801.bc382c3ff

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 (367) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +9 -7
  2. package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
  3. package/bundled/qc-helper/docs/features/channels/github.md +49 -10
  4. package/bundled/qc-helper/docs/features/channels/gitlab.md +177 -0
  5. package/bundled/qc-helper/docs/features/code-review.md +20 -0
  6. package/bundled/qc-helper/docs/features/commands.md +1 -0
  7. package/bundled/qc-helper/docs/features/hooks.md +135 -18
  8. package/bundled/qc-helper/docs/features/memory.md +27 -0
  9. package/bundled/qc-helper/docs/features/skills.md +14 -0
  10. package/bundled/qc-helper/docs/features/sub-agents.md +55 -8
  11. package/bundled/qc-helper/docs/features/tool-use-summaries.md +7 -7
  12. package/bundled/qc-helper/docs/qwen-serve.md +28 -6
  13. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +2 -2
  14. package/bundled/review/SKILL.md +1 -1
  15. package/chunks/{MaxSizedBox-VI3ROJJA.js → MaxSizedBox-CDHTDITS.js} +45 -40
  16. package/chunks/{StandaloneSessionPicker-LYXKD2EV.js → StandaloneSessionPicker-L63HUAHP.js} +65 -60
  17. package/chunks/{acp-startup-profiler-DFVPFQ6C.js → acp-startup-profiler-3RICG2YW.js} +2 -2
  18. package/chunks/{acpAgent-WN5SRDQO.js → acpAgent-6WVVT2P3.js} +962 -599
  19. package/chunks/{agent-K6ECSM64.js → agent-KDM4CBOU.js} +40 -35
  20. package/chunks/agent-headless-AS7K2K57.js +79 -0
  21. package/chunks/{anthropicContentGenerator-V2QOGVYD.js → anthropicContentGenerator-WCBYB6JG.js} +337 -27
  22. package/chunks/{artifact-tool-6K6U7XYJ.js → artifact-tool-ANV4CFCR.js} +2 -2
  23. package/chunks/{askUserQuestion-GD2IJJ7I.js → askUserQuestion-MALEB47H.js} +2 -2
  24. package/chunks/{bridge-3KJEWDNE.js → bridge-JNEW6FES.js} +46 -41
  25. package/chunks/{build-S6DO7LMM.js → build-GDBLPA24.js} +1 -1
  26. package/chunks/{ca-6W3SK7OQ.js → ca-4OJN75WT.js} +46 -5
  27. package/chunks/{channel-management-service-XR7GZSWF.js → channel-management-service-QOO7TD3T.js} +21 -6
  28. package/chunks/{channel-settings-store-HW4FXXUA.js → channel-settings-store-4CSMTR4L.js} +47 -42
  29. package/chunks/{channel-worker-group-XDPTDWTX.js → channel-worker-group-ERSUOPIR.js} +8 -8
  30. package/chunks/{channel-worker-manager-YYEHVRRE.js → channel-worker-manager-X247YDQ7.js} +8 -8
  31. package/chunks/{channel-worker-supervisor-74HTWA2G.js → channel-worker-supervisor-ORJIEEPP.js} +4 -4
  32. package/chunks/{chunk-VWOOBLTY.js → chunk-25QQVOCG.js} +5 -5
  33. package/chunks/{chunk-CAPPWD3X.js → chunk-2A6MHYIA.js} +3 -3
  34. package/chunks/{chunk-2XSLTRFZ.js → chunk-2CTKGIFR.js} +2 -2
  35. package/chunks/{chunk-DZLYR4U3.js → chunk-2DNKEBXY.js} +1 -1
  36. package/chunks/{chunk-UWMLWVCA.js → chunk-2IIJTXYF.js} +26 -10
  37. package/chunks/{chunk-JYBU6YUE.js → chunk-2M5N3DHY.js} +1 -1
  38. package/chunks/{chunk-AQIDMUGU.js → chunk-2PNQQ4UR.js} +2 -2
  39. package/chunks/{chunk-OKF7JF3R.js → chunk-2UISUFHQ.js} +3 -3
  40. package/chunks/{chunk-2LQTH543.js → chunk-33FNCQSY.js} +2 -2
  41. package/chunks/{chunk-M7OONWYU.js → chunk-3LGZEYOF.js} +4 -2
  42. package/chunks/{chunk-ZURDMIDR.js → chunk-3MHPWQ2M.js} +242 -76
  43. package/chunks/{chunk-UHUSJ6X7.js → chunk-3RXUYQJI.js} +25 -6
  44. package/chunks/{chunk-E5Z2AVNV.js → chunk-3SH53ANB.js} +0 -11
  45. package/chunks/{chunk-BNWB5CYE.js → chunk-3WXMXT7C.js} +22 -11
  46. package/chunks/{chunk-A2D5BAVP.js → chunk-42IKVPST.js} +1 -1
  47. package/chunks/{chunk-2DN4J57Y.js → chunk-432XCUHF.js} +1 -1
  48. package/chunks/{chunk-EVKE2FZL.js → chunk-433VD3HX.js} +4 -4
  49. package/chunks/{chunk-Q43KPN7X.js → chunk-434YCHSV.js} +6 -6
  50. package/chunks/{chunk-5TBMQLGG.js → chunk-4LKVQFHM.js} +2 -2
  51. package/chunks/{chunk-YDLJGZHL.js → chunk-4NFY2S7N.js} +0 -33
  52. package/chunks/{chunk-6PE7N3A4.js → chunk-5UJ6A3CH.js} +145 -10
  53. package/chunks/{chunk-GNR2RNMP.js → chunk-5UZITEHA.js} +3 -3
  54. package/chunks/chunk-6FMJLI5M.js +1591 -0
  55. package/chunks/{chunk-RPLGZJV2.js → chunk-6O5DVH27.js} +1 -1
  56. package/chunks/{chunk-2RFKHEXL.js → chunk-6PLDPT2C.js} +1 -1
  57. package/chunks/{chunk-7AEJDLRA.js → chunk-7IYLHTTM.js} +3 -3
  58. package/chunks/{chunk-65PQENQP.js → chunk-7K2WTPQO.js} +5 -5
  59. package/chunks/{chunk-P4WOAOJW.js → chunk-7MY2AR5A.js} +72 -26
  60. package/chunks/{chunk-GXIJHV66.js → chunk-A2A34TSB.js} +3 -3
  61. package/chunks/{chunk-XWWKIXVD.js → chunk-A5YZ3FA2.js} +2 -1
  62. package/chunks/{chunk-64LQLPL7.js → chunk-A6SX5TAH.js} +3 -3
  63. package/chunks/{chunk-SZ3KHTDR.js → chunk-AKA24BGO.js} +1 -1
  64. package/chunks/chunk-AQ37AY7B.js +93 -0
  65. package/chunks/{chunk-2N7CODY5.js → chunk-AQEWCKX4.js} +2 -2
  66. package/chunks/{chunk-KCO4FLFJ.js → chunk-AYB4HSBI.js} +3 -3
  67. package/chunks/{chunk-WZRWHXFE.js → chunk-BFHXDAR7.js} +1 -1
  68. package/chunks/{chunk-L55JWS76.js → chunk-BGXZBI5B.js} +1 -1
  69. package/chunks/{chunk-5MKRTI4T.js → chunk-BKUN5QHP.js} +7 -7
  70. package/chunks/{chunk-Y4IHBGBP.js → chunk-BV4QX43X.js} +1 -1
  71. package/chunks/{chunk-PB3MBFKG.js → chunk-C4L2MEIT.js} +4 -4
  72. package/chunks/{chunk-TCIFAA7K.js → chunk-CHCLO3M7.js} +14 -14
  73. package/chunks/{chunk-CVHIL5IG.js → chunk-CWEIMFFW.js} +13 -6
  74. package/chunks/{chunk-2FAK6PNM.js → chunk-DUIJ2IXG.js} +5 -13
  75. package/chunks/{chunk-T2QMKU3R.js → chunk-DVGTU5TC.js} +19 -7
  76. package/chunks/{chunk-LGAOC3ZS.js → chunk-DYA25Y7U.js} +1 -1
  77. package/chunks/{chunk-SGFT55XI.js → chunk-E4WHKETF.js} +32 -4
  78. package/chunks/{chunk-WBL3FJEU.js → chunk-FC4KQFCS.js} +1 -1
  79. package/chunks/{chunk-MHAIJPTD.js → chunk-FJHA23GM.js} +12 -12
  80. package/chunks/{chunk-S7W2GKIO.js → chunk-G7XXKQYS.js} +2 -0
  81. package/chunks/{chunk-MR5EAQ5M.js → chunk-GALUTA2C.js} +1 -1
  82. package/chunks/{chunk-7I5GTCT4.js → chunk-GB3AB7TR.js} +4008 -3648
  83. package/chunks/{chunk-QIZKCVM3.js → chunk-GHJM2C2T.js} +6 -8
  84. package/chunks/chunk-GOFAQQZA.js +132 -0
  85. package/chunks/{chunk-BCZFQXWK.js → chunk-GTM6IHBB.js} +2 -2
  86. package/chunks/{chunk-5ZF5XXTS.js → chunk-GVISB2OH.js} +2 -2
  87. package/chunks/{chunk-FNMZK765.js → chunk-H36SETQS.js} +1 -1
  88. package/chunks/{chunk-UBEPNVDI.js → chunk-H4346YW5.js} +28 -16
  89. package/chunks/{chunk-CQL64ESB.js → chunk-H4DSRWAS.js} +24 -13
  90. package/chunks/{chunk-YGF33UXG.js → chunk-H6MC6VQX.js} +222 -173
  91. package/chunks/{chunk-GZXCZHCT.js → chunk-I3G5JWBV.js} +1 -1
  92. package/chunks/{chunk-Y6AXW2OG.js → chunk-I5GNT6ZS.js} +7 -1
  93. package/chunks/{chunk-GEBV2JGB.js → chunk-I6FAHB4N.js} +1 -1
  94. package/chunks/{chunk-UPUG4GXM.js → chunk-I7JDGNG6.js} +3 -3
  95. package/chunks/{chunk-JHNRZMHI.js → chunk-II6WPWHY.js} +9 -9
  96. package/chunks/{chunk-B4AJNNOL.js → chunk-J26HHFI5.js} +1 -1
  97. package/chunks/{chunk-S3TWXGKA.js → chunk-JE7KQ2UP.js} +4 -2
  98. package/chunks/{chunk-ZHBO7WVX.js → chunk-JELIWHXD.js} +1 -1
  99. package/chunks/{chunk-3EFXSQCM.js → chunk-JRIDA5HF.js} +7 -7
  100. package/chunks/{chunk-TFRMVU6R.js → chunk-K4CGQN4Q.js} +1 -1
  101. package/chunks/{chunk-WUZ7H6DP.js → chunk-K5Q62CGR.js} +1 -1
  102. package/chunks/{chunk-JCW2R7WC.js → chunk-K623ENWT.js} +3 -79
  103. package/chunks/{chunk-T2NCM2ET.js → chunk-K6KS3LTN.js} +2 -749
  104. package/chunks/{chunk-TDL6LB4K.js → chunk-KG22G46Y.js} +22 -10
  105. package/chunks/{chunk-GATT5TKW.js → chunk-KKN2IE7Q.js} +1 -1
  106. package/chunks/{chunk-JMONIXMJ.js → chunk-KVUBYJDM.js} +2 -2
  107. package/chunks/{chunk-TBBV36Y4.js → chunk-KXSYDCP2.js} +4 -4
  108. package/chunks/{chunk-EIF3FXTB.js → chunk-LAPK3GLC.js} +121 -18
  109. package/chunks/chunk-LBOVL47Y.js +29 -0
  110. package/chunks/{chunk-U3E3UQAA.js → chunk-LBWNSLJK.js} +4 -4
  111. package/chunks/{chunk-S4WJVPZW.js → chunk-LL4U3BSH.js} +15 -7
  112. package/chunks/{chunk-657BH7VM.js → chunk-LRJWFR6L.js} +4 -4
  113. package/chunks/{chunk-PT722TDT.js → chunk-M2F5PLOW.js} +770 -125
  114. package/chunks/{chunk-3L2SPEBH.js → chunk-M744OFVE.js} +1 -1
  115. package/chunks/{chunk-VYOXCEPJ.js → chunk-MBKPUM5Y.js} +1 -1
  116. package/chunks/chunk-MISUEWB4.js +8749 -0
  117. package/chunks/{chunk-PONHVBRT.js → chunk-MOHAWIAW.js} +2 -2
  118. package/chunks/{chunk-HMRM2A3U.js → chunk-MSIVKDRC.js} +4 -4
  119. package/chunks/{record-artifact-XAMSFSW4.js → chunk-MYT7N6QH.js} +22 -7
  120. package/chunks/{chunk-X5WNMMIA.js → chunk-NGWYUZZO.js} +11510 -15137
  121. package/chunks/{chunk-PQNHRFJC.js → chunk-NYX53SV4.js} +0 -2
  122. package/chunks/{chunk-6RPMI2AB.js → chunk-NZB4NDJL.js} +10 -10
  123. package/chunks/{chunk-BGTQCTQW.js → chunk-O2ZYHG33.js} +6 -5
  124. package/chunks/chunk-O6GEWCJA.js +21 -0
  125. package/chunks/{chunk-JX27F6QS.js → chunk-OBAIHYFT.js} +1 -1
  126. package/chunks/{chunk-BPZKP57P.js → chunk-OCRM53TT.js} +3 -3
  127. package/chunks/{chunk-V7RNNPGC.js → chunk-P5Y23G2L.js} +18 -1
  128. package/chunks/{chunk-FTD6DP4T.js → chunk-PDDYAXL2.js} +5 -1
  129. package/chunks/{chunk-JSD33JG6.js → chunk-PGEGUNH5.js} +67 -10
  130. package/chunks/{chunk-A4COXFB3.js → chunk-PGP7Y3RQ.js} +5 -5
  131. package/chunks/{chunk-T3O2B4XO.js → chunk-PHODQP2V.js} +6 -6
  132. package/chunks/{chunk-BMFALVGQ.js → chunk-PXA5AWHY.js} +1 -1
  133. package/chunks/chunk-QL4TN4HS.js +59 -0
  134. package/chunks/{chunk-W4MIWP6M.js → chunk-QMBEW7EW.js} +2 -2
  135. package/chunks/{chunk-U4VTUMMK.js → chunk-QONSRAEV.js} +1 -1
  136. package/chunks/{chunk-LW3RFMG7.js → chunk-QYPT3QUD.js} +3 -3
  137. package/chunks/{chunk-TV64SXKD.js → chunk-RGJ4JWSU.js} +131 -48
  138. package/chunks/{chunk-75MIQ3LV.js → chunk-RPYYTL7E.js} +61 -13
  139. package/chunks/{chunk-52ZSWYEG.js → chunk-SK2UKB45.js} +1 -1
  140. package/chunks/{chunk-PLDQBIO6.js → chunk-SWEBEXPI.js} +1 -1
  141. package/chunks/chunk-T3CHYWJZ.js +758 -0
  142. package/chunks/{chunk-VCPIZRYH.js → chunk-TFFMATHX.js} +9 -7
  143. package/chunks/{chunk-J7OACQDE.js → chunk-TNVKFQXQ.js} +458 -97
  144. package/chunks/{chunk-A3NDJ5SB.js → chunk-TYERNYH4.js} +2 -2
  145. package/chunks/{chunk-GKX7E4CO.js → chunk-U25CMJYY.js} +1 -1
  146. package/chunks/{chunk-7XATOOE7.js → chunk-UH7Z7Y45.js} +1 -1
  147. package/chunks/{chunk-XFZYFU3I.js → chunk-UHQ3L6GC.js} +1 -1
  148. package/chunks/{chunk-GZ3RCT54.js → chunk-UHTJC7O3.js} +1 -1
  149. package/chunks/{chunk-XZC5VLBZ.js → chunk-UKZEXS6K.js} +6 -0
  150. package/chunks/{chunk-LO4ROVP4.js → chunk-UOFFZNXV.js} +111 -13
  151. package/chunks/{chunk-5YKDXHUY.js → chunk-URN76TKR.js} +2 -2
  152. package/chunks/{chunk-T4TXDL7G.js → chunk-UWLG4UCE.js} +132 -35
  153. package/chunks/{chunk-KAMYKP7E.js → chunk-UWSXFI6E.js} +1 -1
  154. package/chunks/{chunk-7BAU433D.js → chunk-VS3GXRNZ.js} +1198 -240
  155. package/chunks/{chunk-EJGJIBRS.js → chunk-VWF42XC6.js} +3 -3
  156. package/chunks/{chunk-RCUQIPTN.js → chunk-W7XZ3KP5.js} +1 -1
  157. package/chunks/{chunk-OCESJA77.js → chunk-WISQLM4Q.js} +1197 -1154
  158. package/chunks/{chunk-NOKIVHOL.js → chunk-WK4TJUEA.js} +1 -1
  159. package/chunks/{chunk-JFMA7Y5M.js → chunk-WP4HGHFG.js} +5 -5
  160. package/chunks/{chunk-4G2BISNC.js → chunk-XC2VAFVZ.js} +1 -1
  161. package/chunks/{chunk-2LKVPASC.js → chunk-XC656O42.js} +3 -3
  162. package/chunks/{chunk-5KTQXHPY.js → chunk-XCLLRKY5.js} +3 -3
  163. package/chunks/{chunk-HV26XH34.js → chunk-XFDPIC4P.js} +3 -3
  164. package/chunks/{chunk-JTV5K7NH.js → chunk-XSA5EKTJ.js} +1 -1
  165. package/chunks/{chunk-75GFAX4R.js → chunk-YAVY33G4.js} +1 -1
  166. package/chunks/{chunk-WBSMNTSV.js → chunk-YXEVDA66.js} +2 -2
  167. package/chunks/{chunk-7DXQIJID.js → chunk-ZRFJ75D7.js} +3 -3
  168. package/chunks/{chunk-XBYYDKAZ.js → chunk-ZTN6OA5J.js} +8 -7
  169. package/chunks/{computer-use-ZTIDHMMA.js → computer-use-Z4NCIIJN.js} +40 -35
  170. package/chunks/{config-utils-NYSXDMEQ.js → config-utils-64LM6OEQ.js} +4 -4
  171. package/chunks/{contextCommand-2PIEU37Z.js → contextCommand-HVM7XFCB.js} +43 -38
  172. package/chunks/{core-runtime-3XEYLQFK.js → core-runtime-NL3ZBHBU.js} +40 -35
  173. package/chunks/{create-sub-session-SBYUMSSS.js → create-sub-session-AM32K2HD.js} +2 -2
  174. package/chunks/{create-sub-session-R76FVXCI.js → create-sub-session-XHSCDYFU.js} +43 -38
  175. package/chunks/{cron-create-2QK6TCEC.js → cron-create-HPXYE6C5.js} +4 -4
  176. package/chunks/{cron-delete-FDCDFYMG.js → cron-delete-FPVNTKPK.js} +4 -4
  177. package/chunks/{cron-list-XN3WVBTP.js → cron-list-ZEI6PAAV.js} +4 -4
  178. package/chunks/{daemon-Q2AB5Z23.js → daemon-PCNCI5YU.js} +72 -3
  179. package/chunks/daemon-status-provider-XD23SNAM.js +94 -0
  180. package/chunks/{daemon-trust-policy-ILUDTLHD.js → daemon-trust-policy-NOHK7IW5.js} +46 -41
  181. package/chunks/{daemon-trust-policy-monitor-HS3PKKRO.js → daemon-trust-policy-monitor-ZBTSR333.js} +46 -41
  182. package/chunks/{de-SY6O76BF.js → de-A6TI4LBB.js} +46 -5
  183. package/chunks/{deferred-core-runtime-X4QV662U.js → deferred-core-runtime-JJBHKM2C.js} +40 -35
  184. package/chunks/{dist-HVRQ2CFL.js → dist-4LAMY2SK.js} +1180 -5
  185. package/chunks/{dist-DOLYHMXE.js → dist-4T4NCJFL.js} +2 -2
  186. package/chunks/dist-7KOL6OMD.js +13467 -0
  187. package/chunks/{dist-SSU66DM4.js → dist-BH76AT7N.js} +1 -1
  188. package/chunks/{dist-BSTVRPMT.js → dist-BXA3JXVQ.js} +541 -19
  189. package/chunks/{dist-SV7Q3AWJ.js → dist-OEEFI6UU.js} +12 -9
  190. package/chunks/{dist-YGBBMK3Z.js → dist-SMLVOWKV.js} +5 -4
  191. package/chunks/{dist-IXQEQWRG.js → dist-V2RK6S6Q.js} +1 -1
  192. package/chunks/{earlyInputCapture-XKLZT7ZD.js → earlyInputCapture-KLAZDAIP.js} +41 -36
  193. package/chunks/{edit-HHGIOTQ2.js → edit-YQZWCISX.js} +40 -35
  194. package/chunks/{en-NBK3JKCE.js → en-RESOFG55.js} +46 -5
  195. package/chunks/{enter-worktree-ZN7PUQ46.js → enter-worktree-WLVWI3FP.js} +40 -35
  196. package/chunks/{enterPlanMode-EIFIDSIV.js → enterPlanMode-6RYXFQUD.js} +40 -35
  197. package/chunks/{environment-XXQ75D2Q.js → environment-DXJTXSVT.js} +43 -38
  198. package/chunks/{errors-4GMVU7CK.js → errors-XGAGG2S2.js} +43 -38
  199. package/chunks/{exit-worktree-GXMI4ATY.js → exit-worktree-C4276VPP.js} +40 -35
  200. package/chunks/{exitPlanMode-34UVY7M6.js → exitPlanMode-MM5HIRUF.js} +40 -35
  201. package/chunks/{fast-path-VPIVA7L6.js → fast-path-PIXYOHCH.js} +6 -2
  202. package/chunks/{fr-4KG5V7UT.js → fr-QF7RI5ZE.js} +46 -5
  203. package/chunks/{gemini-4BWIK4WD.js → gemini-43RLVUNP.js} +158 -96
  204. package/chunks/{geminiContentGenerator-3XVV5MSS.js → geminiContentGenerator-PNQ4TSID.js} +6 -6
  205. package/chunks/{glob-TZ2ABCJG.js → glob-ZMBQKAU5.js} +40 -35
  206. package/chunks/goal-tools-Y767F7LZ.js +335 -0
  207. package/chunks/{grep-BEF463NA.js → grep-HSV37W2Q.js} +40 -35
  208. package/chunks/handleAutoUpdate-QDHZPBAY.js +85 -0
  209. package/chunks/{i18n-FMM5FDXR.js → i18n-ME22A6RN.js} +42 -37
  210. package/chunks/{image-gen-HHVLF7HS.js → image-gen-IFC7ZWSB.js} +9 -9
  211. package/chunks/{initializer-625TIAIO.js → initializer-J7H2CHVB.js} +47 -42
  212. package/chunks/{installationInfo-6AM4I2Y3.js → installationInfo-R7FXPQN5.js} +41 -36
  213. package/chunks/{ja-F3GSQXMF.js → ja-URQESVGW.js} +46 -5
  214. package/chunks/{keychain-token-storage-72IYCAZV.js → keychain-token-storage-7BT4TQ2A.js} +2 -2
  215. package/chunks/{kittyProtocolDetector-MBRTDRBK.js → kittyProtocolDetector-BFLAKYXH.js} +1 -1
  216. package/chunks/list-OYDIBA4N.js +93 -0
  217. package/chunks/{list-agents-R6KDXQR3.js → list-agents-GATIBBQQ.js} +2 -2
  218. package/chunks/{loadedSettingsAdapter-SPUTNKAV.js → loadedSettingsAdapter-OK6GK2GE.js} +46 -41
  219. package/chunks/{loggingContentGenerator-LKOF7XI7.js → loggingContentGenerator-U4ZEG4GL.js} +53 -38
  220. package/chunks/{loop-wakeup-3IQKCYAH.js → loop-wakeup-3DZMQQQQ.js} +13 -6
  221. package/chunks/{ls-DKZ37A7N.js → ls-7F4GHXIH.js} +4 -4
  222. package/chunks/{lsp-QNWN7KN3.js → lsp-6FEHVBWI.js} +2 -2
  223. package/chunks/{managed-npm-update-ACQGGIN5.js → managed-npm-update-PGKAJLLO.js} +43 -38
  224. package/chunks/mcp-S4DXJD2G.js +87 -0
  225. package/chunks/{monitor-DF52UVHI.js → monitor-E5ZFMT74.js} +40 -35
  226. package/chunks/nonInteractiveCli-HNOHKEPE.js +149 -0
  227. package/chunks/{notebook-edit-FCWS4XVN.js → notebook-edit-6QDN6VZJ.js} +40 -35
  228. package/chunks/{openaiContentGenerator-7LDK3DCJ.js → openaiContentGenerator-3NLB2C5O.js} +19 -19
  229. package/chunks/{pidfile-6ERW3DF4.js → pidfile-ZMOIUGG6.js} +41 -36
  230. package/chunks/{processUtils-COKZAMUP.js → processUtils-E4QGQVWW.js} +2 -2
  231. package/chunks/{pt-EQ33KWEN.js → pt-EEEQXRUI.js} +46 -5
  232. package/chunks/{qwenContentGenerator-TKWUMR7N.js → qwenContentGenerator-2LFRWJTM.js} +46 -41
  233. package/chunks/{qwenOAuth2-7HMU47SF.js → qwenOAuth2-N32BUQDC.js} +8 -8
  234. package/chunks/{read-file-X6DRC574.js → read-file-GLDCWZBG.js} +11 -11
  235. package/chunks/{read-mcp-resource-GFTWYXMK.js → read-mcp-resource-AFS3UKZO.js} +2 -2
  236. package/chunks/record-artifact-ECZSCEG5.js +21 -0
  237. package/chunks/{resumeHistoryUtils-PFPM2GWM.js → resumeHistoryUtils-F5BE5QDW.js} +48 -43
  238. package/chunks/ripGrep-T23Y4AGY.js +77 -0
  239. package/chunks/{ru-7OZAUKGG.js → ru-WGZDYQAB.js} +46 -5
  240. package/chunks/{run-qwen-serve-TSTCO4XE.js → run-qwen-serve-TI2HGLLU.js} +290 -75
  241. package/chunks/{runtime-DAUPSUKI.js → runtime-WCWM3DO7.js} +53 -46
  242. package/chunks/{scheduler-KMADMT26.js → scheduler-2QZO5AV5.js} +40 -35
  243. package/chunks/{sdk-exporters-http-WO556XNU.js → sdk-exporters-http-IKNWQJNV.js} +3 -3
  244. package/chunks/{sdk-impl-LPAVACSF.js → sdk-impl-7CUUMQDB.js} +3 -3
  245. package/chunks/{send-message-SAWK4DZX.js → send-message-X7G2JSII.js} +6 -11
  246. package/chunks/{serve-NNRWS6F4.js → serve-DZOMYUFU.js} +46 -41
  247. package/chunks/{server-WEH7DVCH.js → server-N4AJRKIQ.js} +2269 -1016
  248. package/chunks/{session-WXC56V2I.js → session-GS6AKMN7.js} +151 -86
  249. package/chunks/{settings-DJDXFDZ3.js → settings-CUN3SELH.js} +50 -45
  250. package/chunks/{shell-JN5VRQXD.js → shell-NGBFVXC5.js} +40 -35
  251. package/chunks/{skill-SGXPKJCS.js → skill-SC2BSO75.js} +30 -16
  252. package/chunks/{skill-settings-VJ5PDMZI.js → skill-settings-XVPCPW5K.js} +45 -40
  253. package/chunks/{spawnChannel-ETMJW7YX.js → spawnChannel-RILO4YY3.js} +42 -37
  254. package/chunks/{standalone-update-MK3Z7KBI.js → standalone-update-TMLT6LVJ.js} +43 -38
  255. package/chunks/{startInteractiveUI-ZCGIXPGT.js → startInteractiveUI-J45WOEOU.js} +883 -1112
  256. package/chunks/{syntheticOutput-355CB6CJ.js → syntheticOutput-FHRY3BPQ.js} +3 -3
  257. package/chunks/{task-create-INGWNUG4.js → task-create-LAQXBIHC.js} +11 -10
  258. package/chunks/{task-list-5XNNGTF4.js → task-list-V6K5DRDH.js} +6 -6
  259. package/chunks/{task-stop-4ROAOBXH.js → task-stop-LQXE52L6.js} +2 -2
  260. package/chunks/{task-update-CRK5VWWZ.js → task-update-NXRCXSPB.js} +11 -10
  261. package/chunks/{team-create-QQGAJG7P.js → team-create-W3EVWCTA.js} +40 -35
  262. package/chunks/{team-delete-S2RCXA4P.js → team-delete-Z4KGO7RC.js} +6 -6
  263. package/chunks/{team-plan-approval-RT7Q5R6O.js → team-plan-approval-URYVKJF4.js} +40 -35
  264. package/chunks/theme-manager-CUAMS2NI.js +81 -0
  265. package/chunks/{todoWrite-7WM3VDMY.js → todoWrite-OFIZDI7P.js} +32 -4
  266. package/chunks/{tool-search-Z3Z4AYKP.js → tool-search-DCICFL32.js} +15 -14
  267. package/chunks/total-session-admission-3ZTAXVUK.js +89 -0
  268. package/chunks/{trustedFolders-X2JEIO57.js → trustedFolders-EVCN36O5.js} +42 -37
  269. package/chunks/{update-relaunch-VWNPYDIP.js → update-relaunch-XLW46RHQ.js} +5 -5
  270. package/chunks/{updateCheck-KAQH67DV.js → updateCheck-ZHVXDAIH.js} +44 -39
  271. package/chunks/{useAutoAcceptIndicator-JH6BCF7S.js → useAutoAcceptIndicator-ZGD6BJSP.js} +50 -45
  272. package/chunks/{validateNonInterActiveAuth-GIUJ2UFS.js → validateNonInterActiveAuth-R3BAQFDY.js} +88 -83
  273. package/chunks/{version-BGLYIJUY.js → version-PMWREGCG.js} +1 -1
  274. package/chunks/{web-fetch-OTDU4VQF.js → web-fetch-PGN27SGF.js} +14 -14
  275. package/chunks/{web-search-FP6SIHPR.js → web-search-KW4UNMRE.js} +8 -8
  276. package/chunks/{workflow-YCIVBYSB.js → workflow-SN3TJBTJ.js} +363 -310
  277. package/chunks/workspace-providers-status-O3HUZGGR.js +90 -0
  278. package/chunks/{workspace-registration-store-OTMS3H4C.js → workspace-registration-store-M3FJ74RS.js} +2 -2
  279. package/chunks/{workspace-registry-O63R6IZ4.js → workspace-registry-U7ISW23N.js} +47 -42
  280. package/chunks/{workspace-service-M6LLHKJ5.js → workspace-service-VH6IWADT.js} +53 -48
  281. package/chunks/{workspace-skills-status-C2V7BAIS.js → workspace-skills-status-XANARSZS.js} +48 -43
  282. package/chunks/{workspace-trust-reconciler-IBUPOUJN.js → workspace-trust-reconciler-35EFR4GC.js} +53 -48
  283. package/chunks/write-file-NCRSGUDT.js +79 -0
  284. package/chunks/{zh-H3YDK5QW.js → zh-OHX23Q44.js} +43 -5
  285. package/chunks/{zh-TW-JYCP7XUA.js → zh-TW-4G7YKDAQ.js} +43 -5
  286. package/chunks/zoom-image-X7CIADYC.js +224 -0
  287. package/cli.js +55 -48
  288. package/locales/ca.js +60 -4
  289. package/locales/de.js +62 -4
  290. package/locales/en.js +59 -4
  291. package/locales/fr.js +64 -4
  292. package/locales/ja.js +61 -4
  293. package/locales/pt.js +60 -4
  294. package/locales/ru.js +63 -4
  295. package/locales/zh-TW.js +52 -4
  296. package/locales/zh.js +52 -4
  297. package/package.json +3 -3
  298. package/web-shell/assets/{arc-75-Wdeo3.js → arc-CaMTqKio.js} +1 -1
  299. package/web-shell/assets/{architectureDiagram-3BPJPVTR-FKeXQbyP.js → architectureDiagram-3BPJPVTR-Bjxztij2.js} +1 -1
  300. package/web-shell/assets/{blockDiagram-GPEHLZMM-CY0vc-A3.js → blockDiagram-GPEHLZMM-BYJzeHi9.js} +1 -1
  301. package/web-shell/assets/{c4Diagram-AAUBKEIU-CNP-A-8u.js → c4Diagram-AAUBKEIU-fYAa-Eil.js} +1 -1
  302. package/web-shell/assets/channel-LEZei0-5.js +1 -0
  303. package/web-shell/assets/{chunk-2J33WTMH-GybS4Gii.js → chunk-2J33WTMH-B1OTlTml.js} +1 -1
  304. package/web-shell/assets/{chunk-4BX2VUAB-02H91V8v.js → chunk-4BX2VUAB-DNj4uy6k.js} +1 -1
  305. package/web-shell/assets/{chunk-55IACEB6-D3M-2VT6.js → chunk-55IACEB6-DAqNmg3c.js} +1 -1
  306. package/web-shell/assets/{chunk-727SXJPM-CCu29u4H.js → chunk-727SXJPM-BwB4ddxE.js} +1 -1
  307. package/web-shell/assets/{chunk-AQP2D5EJ-CaFKWgrn.js → chunk-AQP2D5EJ-DmHR_UZs.js} +1 -1
  308. package/web-shell/assets/{chunk-FMBD7UC4-ZZpPqIwQ.js → chunk-FMBD7UC4-BlfOXumo.js} +1 -1
  309. package/web-shell/assets/{chunk-ND2GUHAM-D22DqGs8.js → chunk-ND2GUHAM-BKogiSy7.js} +1 -1
  310. package/web-shell/assets/{chunk-QZHKN3VN-Bu85S0fw.js → chunk-QZHKN3VN-DEclVrOF.js} +1 -1
  311. package/web-shell/assets/classDiagram-4FO5ZUOK-BiaRhfvf.js +1 -0
  312. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BiaRhfvf.js +1 -0
  313. package/web-shell/assets/{cose-bilkent-S5V4N54A-f1CK1Gwe.js → cose-bilkent-S5V4N54A-CwtS21WT.js} +1 -1
  314. package/web-shell/assets/{dagre-BM42HDAG-D0Ow8F_n.js → dagre-BM42HDAG-BAAIlB4p.js} +1 -1
  315. package/web-shell/assets/{diagram-2AECGRRQ-BPrmTWp8.js → diagram-2AECGRRQ-ChljtF_V.js} +1 -1
  316. package/web-shell/assets/{diagram-5GNKFQAL-HccuFAzy.js → diagram-5GNKFQAL-BIXVd31-.js} +1 -1
  317. package/web-shell/assets/{diagram-KO2AKTUF-BrS76mbA.js → diagram-KO2AKTUF-BEiBaS15.js} +1 -1
  318. package/web-shell/assets/{diagram-LMA3HP47-V7T9lU-5.js → diagram-LMA3HP47-C-g4tWKM.js} +1 -1
  319. package/web-shell/assets/{diagram-OG6HWLK6-DKidyJMR.js → diagram-OG6HWLK6-CNCCbNQG.js} +1 -1
  320. package/web-shell/assets/{erDiagram-TEJ5UH35-DBadZIkp.js → erDiagram-TEJ5UH35-v8ysnsdI.js} +1 -1
  321. package/web-shell/assets/{flowDiagram-I6XJVG4X-BymfqdNJ.js → flowDiagram-I6XJVG4X-LKVlLjwA.js} +1 -1
  322. package/web-shell/assets/{ganttDiagram-6RSMTGT7-DOw340jf.js → ganttDiagram-6RSMTGT7-DA5MrKYG.js} +1 -1
  323. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-_8EiD8sl.js → gitGraphDiagram-PVQCEYII-Cyg5fe6d.js} +1 -1
  324. package/web-shell/assets/index-BgOcEaVt.js +1756 -0
  325. package/web-shell/assets/index-C2GE3DAF.js +74 -0
  326. package/web-shell/assets/{index-CKIadvET.js → index-CKdUkVVS.js} +1 -1
  327. package/web-shell/assets/index-DA5Lvscv.css +5 -0
  328. package/web-shell/assets/{infoDiagram-5YYISTIA-D61KYQBu.js → infoDiagram-5YYISTIA-SLsfu3Qd.js} +1 -1
  329. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CsiXSpNx.js → ishikawaDiagram-YF4QCWOH-CmHOmTNx.js} +1 -1
  330. package/web-shell/assets/{journeyDiagram-JHISSGLW-Sdfionyh.js → journeyDiagram-JHISSGLW-C3gM_HFQ.js} +1 -1
  331. package/web-shell/assets/{kanban-definition-UN3LZRKU-C3WI3Cnl.js → kanban-definition-UN3LZRKU-BbHD7duM.js} +1 -1
  332. package/web-shell/assets/{linear-Dpigcc62.js → linear-CSBvm435.js} +1 -1
  333. package/web-shell/assets/{mermaid.core-Ct97pqgW.js → mermaid.core-CPMw15lU.js} +5 -5
  334. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BzeaN0rB.js → mindmap-definition-RKZ34NQL-C_tNqXQW.js} +1 -1
  335. package/web-shell/assets/{pieDiagram-4H26LBE5-CvjgcbVD.js → pieDiagram-4H26LBE5-DH_N-8yY.js} +1 -1
  336. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BUzgTNdH.js → quadrantDiagram-W4KKPZXB-CRbS8UkN.js} +1 -1
  337. package/web-shell/assets/{requirementDiagram-4Y6WPE33-B7zKlgUQ.js → requirementDiagram-4Y6WPE33-DJgdZPZn.js} +1 -1
  338. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Bb9CQgrT.js → sankeyDiagram-5OEKKPKP-vhL1y5zx.js} +1 -1
  339. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DJ6V7itG.js → sequenceDiagram-3UESZ5HK-UQthhFwd.js} +1 -1
  340. package/web-shell/assets/{stateDiagram-AJRCARHV-IImflERY.js → stateDiagram-AJRCARHV-CAywEm20.js} +1 -1
  341. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-lfJQHw-7.js +1 -0
  342. package/web-shell/assets/{timeline-definition-PNZ67QCA-6Q_uWHKh.js → timeline-definition-PNZ67QCA-CLO8b3FD.js} +1 -1
  343. package/web-shell/assets/{vennDiagram-CIIHVFJN-TmyKyjwv.js → vennDiagram-CIIHVFJN-BNAAh0Mu.js} +1 -1
  344. package/web-shell/assets/{wardley-L42UT6IY-CRh9uiPv.js → wardley-L42UT6IY-CUY7bLpN.js} +1 -1
  345. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-59TKAW8w.js → wardleyDiagram-YWT4CUSO-CSg_ORdW.js} +1 -1
  346. package/web-shell/assets/{xychartDiagram-2RQKCTM6-GCSUIK2L.js → xychartDiagram-2RQKCTM6-BjffV208.js} +1 -1
  347. package/web-shell/index.html +2 -2
  348. package/chunks/agent-headless-NO4Y2HOE.js +0 -74
  349. package/chunks/chunk-6QIGFD5W.js +0 -82
  350. package/chunks/chunk-HGT6JR3U.js +0 -177
  351. package/chunks/daemon-status-provider-3XJI6CAL.js +0 -89
  352. package/chunks/handleAutoUpdate-L6ERF36Y.js +0 -80
  353. package/chunks/list-L2GA674Y.js +0 -88
  354. package/chunks/mcp-SZLHKFJW.js +0 -82
  355. package/chunks/nonInteractiveCli-5T7KYKLK.js +0 -144
  356. package/chunks/ripGrep-OWV2IVJC.js +0 -72
  357. package/chunks/theme-manager-EEWIQJ7J.js +0 -76
  358. package/chunks/total-session-admission-44JKRWQD.js +0 -84
  359. package/chunks/workspace-providers-status-S35YAIUS.js +0 -85
  360. package/chunks/write-file-3BZC3EAE.js +0 -72
  361. package/chunks/zoom-image-TZ6S2O57.js +0 -351
  362. package/web-shell/assets/channel-DPYMT76A.js +0 -1
  363. package/web-shell/assets/classDiagram-4FO5ZUOK--JstsIgL.js +0 -1
  364. package/web-shell/assets/classDiagram-v2-Q7XG4LA2--JstsIgL.js +0 -1
  365. package/web-shell/assets/index-D1eXNRHe.js +0 -1389
  366. package/web-shell/assets/index-DVLD4CQq.css +0 -5
  367. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CYI_YoNR.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";
@@ -35,7 +34,7 @@ import {
35
34
  require_express,
36
35
  resolveWebShellDir,
37
36
  setDeferredRuntimeRequestTiming
38
- } from "./chunk-YGF33UXG.js";
37
+ } from "./chunk-H6MC6VQX.js";
39
38
  import {
40
39
  isLoopbackBind
41
40
  } from "./chunk-RXFQM6FQ.js";
@@ -47,72 +46,70 @@ import {
47
46
  normalizeMaxJournalBytes,
48
47
  normalizeMaxJournalEvents
49
48
  } from "./chunk-XCGIMOLN.js";
50
- import "./chunk-WBL3FJEU.js";
49
+ import "./chunk-FC4KQFCS.js";
51
50
  import {
52
51
  resolveChannelCwd
53
- } from "./chunk-TFRMVU6R.js";
52
+ } from "./chunk-K4CGQN4Q.js";
53
+ import {
54
+ loadServeFastPathSettings,
55
+ preResolveServeFastPathHomeEnvOverrides
56
+ } from "./chunk-D3UEZIQH.js";
54
57
  import {
55
58
  MAX_REGISTERED_WORKSPACES,
56
59
  resolveWorkspaceInputs,
57
60
  workspaceRegistrationId
58
- } from "./chunk-AQIDMUGU.js";
59
- import "./chunk-T2QMKU3R.js";
61
+ } from "./chunk-2PNQQ4UR.js";
62
+ import "./chunk-DVGTU5TC.js";
60
63
  import {
61
64
  LOAD_REPLAY_META_KEY
62
- } from "./chunk-XZC5VLBZ.js";
63
- import "./chunk-B4AJNNOL.js";
65
+ } from "./chunk-UKZEXS6K.js";
66
+ import "./chunk-J26HHFI5.js";
64
67
  import {
65
68
  canonicalizeWorkspace,
66
69
  translateAndCheckAbsoluteWorkspacePath
67
- } from "./chunk-2RFKHEXL.js";
68
- import "./chunk-GNR2RNMP.js";
70
+ } from "./chunk-6PLDPT2C.js";
71
+ import "./chunk-5UZITEHA.js";
69
72
  import "./chunk-FYJ7W2PI.js";
70
73
  import {
71
74
  ChannelDeliveryError,
72
75
  ChannelWebhookEnqueueError,
73
76
  QWEN_SERVER_TOKEN_ENV,
74
77
  isChannelDeliveryError
75
- } from "./chunk-U4VTUMMK.js";
78
+ } from "./chunk-QONSRAEV.js";
76
79
  import {
77
80
  normalizeWorkerDiagnostic,
78
81
  sanitizeWorkerDiagnostic
79
- } from "./chunk-GZ3RCT54.js";
82
+ } from "./chunk-UHTJC7O3.js";
80
83
  import {
81
84
  channelSelectionNames
82
85
  } from "./chunk-ALMR3E6Q.js";
83
86
  import "./chunk-BK2UNYWD.js";
84
87
  import "./chunk-M5GB774H.js";
85
88
  import "./chunk-5HBA2Z7V.js";
86
- import "./chunk-T2NCM2ET.js";
89
+ import "./chunk-K6KS3LTN.js";
90
+ import "./chunk-T3CHYWJZ.js";
87
91
  import {
88
92
  sanitizeLogText
89
- } from "./chunk-7I5GTCT4.js";
93
+ } from "./chunk-GB3AB7TR.js";
90
94
  import "./chunk-UDXSXLER.js";
91
- import {
92
- loadServeFastPathSettings,
93
- preResolveServeFastPathHomeEnvOverrides
94
- } from "./chunk-D3UEZIQH.js";
95
95
  import "./chunk-GOXKNSDZ.js";
96
96
  import {
97
97
  getGlobalQwenDirLite,
98
98
  resolveConfigPathLite
99
99
  } from "./chunk-IDS7MSUP.js";
100
100
  import "./chunk-6PEXNQTX.js";
101
- import {
102
- getCliVersion
103
- } from "./chunk-VYOXCEPJ.js";
104
- import "./chunk-VJNBRRZG.js";
105
101
  import "./chunk-ALGGS7UH.js";
106
102
  import {
107
103
  isWithinRoot
108
104
  } from "./chunk-MR3PXB6E.js";
109
105
  import {
110
- writeStderrLine,
111
- writeStdoutLine
112
- } from "./chunk-OWAK7LMW.js";
106
+ getCliVersion
107
+ } from "./chunk-MBKPUM5Y.js";
108
+ import "./chunk-VJNBRRZG.js";
109
+ import "./chunk-GOFAQQZA.js";
110
+ import "./chunk-5M6IDOMF.js";
113
111
  import "./chunk-TWPJO254.js";
114
112
  import "./chunk-H6XPXXMH.js";
115
- import "./chunk-5M6IDOMF.js";
116
113
  import {
117
114
  require_proper_lockfile
118
115
  } from "./chunk-KRXPRVGL.js";
@@ -123,6 +120,10 @@ import {
123
120
  profileCheckpoint
124
121
  } from "./chunk-QSWDGAIC.js";
125
122
  import "./chunk-Q7YDKOGY.js";
123
+ import {
124
+ writeStderrLine,
125
+ writeStdoutLine
126
+ } from "./chunk-OWAK7LMW.js";
126
127
  import "./chunk-DMTGGOSA.js";
127
128
  import "./chunk-YQ3U5MUC.js";
128
129
  import {
@@ -143,6 +144,10 @@ import * as path from "node:path";
143
144
  import * as os from "node:os";
144
145
  import { monitorEventLoopDelay, performance as performance2 } from "node:perf_hooks";
145
146
 
147
+ // packages/core/dist/src/memory/scopes.js
148
+ init_esbuild_shims();
149
+ var MEMORY_PROJECT_SCOPES = ["git-root", "workspace"];
150
+
146
151
  // packages/cli/src/serve/permission-audit.ts
147
152
  init_esbuild_shims();
148
153
  var DEFAULT_PERMISSION_AUDIT_RING_SIZE = 512;
@@ -1268,7 +1273,7 @@ function createConcreteLogger(input) {
1268
1273
  }
1269
1274
  });
1270
1275
  let timeout;
1271
- const deadline = new Promise((resolve) => {
1276
+ const deadline = new Promise((resolve2) => {
1272
1277
  timeout = setTimeout(() => {
1273
1278
  try {
1274
1279
  input.warnOnce(
@@ -1277,7 +1282,7 @@ function createConcreteLogger(input) {
1277
1282
  );
1278
1283
  } catch {
1279
1284
  } finally {
1280
- resolve();
1285
+ resolve2();
1281
1286
  }
1282
1287
  }, input.policy.closeDrainBudgetMs);
1283
1288
  timeout.unref();
@@ -1621,6 +1626,156 @@ ${capUtf8Record(
1621
1626
  }
1622
1627
  __name(initDaemonLogger, "initDaemonLogger");
1623
1628
 
1629
+ // packages/cli/src/serve/daemon-metrics-ring.ts
1630
+ init_esbuild_shims();
1631
+ var MAX_SAMPLES_PER_WINDOW = 4096;
1632
+ var DaemonMetricsRing = class {
1633
+ static {
1634
+ __name(this, "DaemonMetricsRing");
1635
+ }
1636
+ capacity;
1637
+ buckets = [];
1638
+ curRequests = 0;
1639
+ curErrors = 0;
1640
+ curDurations = [];
1641
+ curPromptsCompleted = 0;
1642
+ curQueueWaits = [];
1643
+ curPromptDurations = [];
1644
+ curLlmDurations = [];
1645
+ curLlmApiErrors = 0;
1646
+ curLlmApiRetries = 0;
1647
+ curPipeInBytes = 0;
1648
+ curPipeOutBytes = 0;
1649
+ curTokensIn = 0;
1650
+ curTokensOut = 0;
1651
+ constructor(options) {
1652
+ this.capacity = Math.max(1, Math.floor(options.capacity));
1653
+ }
1654
+ /** Fold one completed HTTP request into the open window. */
1655
+ recordRequest(durationMs, statusCode) {
1656
+ this.curRequests += 1;
1657
+ if (statusCode >= 400) this.curErrors += 1;
1658
+ pushCapped(this.curDurations, durationMs);
1659
+ }
1660
+ /** Fold one prompt's queue wait (dispatched from the per-session FIFO). */
1661
+ recordPromptQueueWait(durationMs) {
1662
+ pushCapped(this.curQueueWaits, durationMs);
1663
+ }
1664
+ /** Fold one finished prompt's end-to-end duration (also counts throughput). */
1665
+ recordPromptDuration(durationMs) {
1666
+ this.curPromptsCompleted += 1;
1667
+ pushCapped(this.curPromptDurations, durationMs);
1668
+ }
1669
+ /** Fold one model round's LLM API round-trip time (from the token frame). */
1670
+ recordLlmDuration(durationMs) {
1671
+ pushCapped(this.curLlmDurations, durationMs);
1672
+ }
1673
+ /**
1674
+ * Fold one model round's per-round model-API-error and automatic-retry
1675
+ * increments (from the same token frame) into the open window. Both are
1676
+ * plain counters — a burst in one window accrues exactly, past the sample
1677
+ * cap that only bounds the percentile arrays. Non-finite / negative inputs
1678
+ * are ignored so a malformed frame cannot poison the totals.
1679
+ */
1680
+ recordApiActivity(errors, retries) {
1681
+ if (Number.isFinite(errors) && errors > 0) this.curLlmApiErrors += errors;
1682
+ if (Number.isFinite(retries) && retries > 0) {
1683
+ this.curLlmApiRetries += retries;
1684
+ }
1685
+ }
1686
+ /** Fold one ACP-child pipe message's payload size into the open window. */
1687
+ recordPipe(direction, bytes) {
1688
+ if (!Number.isFinite(bytes) || bytes < 0) return;
1689
+ if (direction === "inbound") this.curPipeInBytes += bytes;
1690
+ else this.curPipeOutBytes += bytes;
1691
+ }
1692
+ /** Fold one model turn's token usage into the open window. */
1693
+ recordTokens(inputTokens, outputTokens) {
1694
+ if (Number.isFinite(inputTokens) && inputTokens > 0) {
1695
+ this.curTokensIn += inputTokens;
1696
+ }
1697
+ if (Number.isFinite(outputTokens) && outputTokens > 0) {
1698
+ this.curTokensOut += outputTokens;
1699
+ }
1700
+ }
1701
+ /**
1702
+ * Seal the open window into a bucket stamped at `now` (folding in the
1703
+ * gauges), append it, evict the oldest past capacity, then reset the
1704
+ * accumulators for the next window.
1705
+ */
1706
+ sample(now, gauges) {
1707
+ this.buckets.push({
1708
+ t: now,
1709
+ activeSessions: finiteGauge(gauges.activeSessions),
1710
+ activePrompts: finiteGauge(gauges.activePrompts),
1711
+ queuedPrompts: finiteGauge(gauges.queuedPrompts),
1712
+ requests: this.curRequests,
1713
+ errors: this.curErrors,
1714
+ latencyP50Ms: percentile(this.curDurations, 0.5),
1715
+ latencyP95Ms: percentile(this.curDurations, 0.95),
1716
+ promptsCompleted: this.curPromptsCompleted,
1717
+ promptQueueWaitP95Ms: percentile(this.curQueueWaits, 0.95),
1718
+ promptDurationP95Ms: percentile(this.curPromptDurations, 0.95),
1719
+ llmApiP50Ms: percentile(this.curLlmDurations, 0.5),
1720
+ llmApiP95Ms: percentile(this.curLlmDurations, 0.95),
1721
+ llmApiErrors: this.curLlmApiErrors,
1722
+ llmApiRetries: this.curLlmApiRetries,
1723
+ cpuPercent: finiteGauge(gauges.cpuPercent),
1724
+ rssBytes: finiteGauge(gauges.rssBytes),
1725
+ heapUsedBytes: finiteGauge(gauges.heapUsedBytes),
1726
+ eventLoopLagP99Ms: finiteGauge(gauges.eventLoopLagP99Ms),
1727
+ pipeInBytes: this.curPipeInBytes,
1728
+ pipeOutBytes: this.curPipeOutBytes,
1729
+ sseConnections: finiteGauge(gauges.sseConnections),
1730
+ wsConnections: finiteGauge(gauges.wsConnections),
1731
+ acpConnections: finiteGauge(gauges.acpConnections),
1732
+ rateLimitRejected: finiteGauge(gauges.rateLimitRejected),
1733
+ tokensIn: this.curTokensIn,
1734
+ tokensOut: this.curTokensOut,
1735
+ childCpuPercent: finiteGauge(gauges.childCpuPercent),
1736
+ childRssBytes: finiteGauge(gauges.childRssBytes)
1737
+ });
1738
+ if (this.buckets.length > this.capacity) {
1739
+ this.buckets.splice(0, this.buckets.length - this.capacity);
1740
+ }
1741
+ this.curRequests = 0;
1742
+ this.curErrors = 0;
1743
+ this.curDurations.length = 0;
1744
+ this.curPromptsCompleted = 0;
1745
+ this.curQueueWaits.length = 0;
1746
+ this.curPromptDurations.length = 0;
1747
+ this.curLlmDurations.length = 0;
1748
+ this.curLlmApiErrors = 0;
1749
+ this.curLlmApiRetries = 0;
1750
+ this.curPipeInBytes = 0;
1751
+ this.curPipeOutBytes = 0;
1752
+ this.curTokensIn = 0;
1753
+ this.curTokensOut = 0;
1754
+ }
1755
+ /** Oldest→newest copy of the retained buckets (safe to serialize). */
1756
+ snapshot() {
1757
+ return this.buckets.slice();
1758
+ }
1759
+ };
1760
+ function finiteGauge(value) {
1761
+ return Number.isFinite(value) ? value : 0;
1762
+ }
1763
+ __name(finiteGauge, "finiteGauge");
1764
+ function pushCapped(target, value) {
1765
+ if (Number.isFinite(value) && value >= 0 && target.length < MAX_SAMPLES_PER_WINDOW) {
1766
+ target.push(value);
1767
+ }
1768
+ }
1769
+ __name(pushCapped, "pushCapped");
1770
+ function percentile(samples, q) {
1771
+ if (samples.length === 0) return 0;
1772
+ const sorted = samples.slice().sort((a, b) => a - b);
1773
+ const rank = Math.ceil(q * sorted.length);
1774
+ const idx = Math.min(sorted.length - 1, Math.max(0, rank - 1));
1775
+ return sorted[idx];
1776
+ }
1777
+ __name(percentile, "percentile");
1778
+
1624
1779
  // packages/cli/src/serve/large-pipe-frame-observer.ts
1625
1780
  init_esbuild_shims();
1626
1781
  var LARGE_PIPE_FRAME_THRESHOLD_BYTES = 256 * 1024;
@@ -2325,8 +2480,8 @@ async function flushDaemonLogBounded(daemonLog, budgetMs) {
2325
2480
  await Promise.race([
2326
2481
  daemonLog.flush().catch(() => {
2327
2482
  }),
2328
- new Promise((resolve) => {
2329
- timer = setTimeout(resolve, budgetMs);
2483
+ new Promise((resolve2) => {
2484
+ timer = setTimeout(resolve2, budgetMs);
2330
2485
  timer.unref();
2331
2486
  })
2332
2487
  ]);
@@ -2370,7 +2525,7 @@ var FAST_PATH_RUNTIME_START_AFTER_HEALTH_MS = 50;
2370
2525
  var FAST_PATH_RUNTIME_START_FALLBACK_MS = 1e3;
2371
2526
  var RUNTIME_STARTUP_TIMEOUT_ENV = "QWEN_SERVE_RUNTIME_STARTUP_TIMEOUT_MS";
2372
2527
  var MAX_EVENT_RING_SIZE = 1e6;
2373
- var DEFAULT_MAX_SESSIONS = 20;
2528
+ var DEFAULT_MAX_SESSIONS = 32;
2374
2529
  var DEFAULT_MAX_PENDING_PROMPTS_PER_SESSION = 5;
2375
2530
  var DEFAULT_EVENT_RING_SIZE = 8e3;
2376
2531
  var DEFAULT_SESSION_IDLE_TIMEOUT_MS = 30 * 6e4;
@@ -2548,12 +2703,12 @@ var retryableChannelWorkerShutdownErrors = /* @__PURE__ */ new WeakSet();
2548
2703
  var channelWorkerRuntimePromise;
2549
2704
  async function loadChannelWorkerRuntime() {
2550
2705
  channelWorkerRuntimePromise ??= Promise.all([
2551
- import("./channel-worker-supervisor-74HTWA2G.js"),
2552
- import("./pidfile-6ERW3DF4.js"),
2553
- import("./runtime-DAUPSUKI.js"),
2706
+ import("./channel-worker-supervisor-ORJIEEPP.js"),
2707
+ import("./pidfile-ZMOIUGG6.js"),
2708
+ import("./runtime-WCWM3DO7.js"),
2554
2709
  import("./cli-entry-path-4VJ3Y6T2.js"),
2555
- import("./channel-worker-group-XDPTDWTX.js"),
2556
- import("./channel-worker-manager-YYEHVRRE.js")
2710
+ import("./channel-worker-group-ERSUOPIR.js"),
2711
+ import("./channel-worker-manager-X247YDQ7.js")
2557
2712
  ]).then(
2558
2713
  ([
2559
2714
  supervisor,
@@ -2658,7 +2813,7 @@ function shouldPreheatBridge(deps) {
2658
2813
  __name(shouldPreheatBridge, "shouldPreheatBridge");
2659
2814
  var coreRuntimePromise;
2660
2815
  function loadCoreRuntime() {
2661
- coreRuntimePromise ??= import("./core-runtime-3XEYLQFK.js");
2816
+ coreRuntimePromise ??= import("./core-runtime-NL3ZBHBU.js");
2662
2817
  return coreRuntimePromise;
2663
2818
  }
2664
2819
  __name(loadCoreRuntime, "loadCoreRuntime");
@@ -2688,10 +2843,10 @@ __name(resolveDaemonLogBaseDirForRun, "resolveDaemonLogBaseDirForRun");
2688
2843
  var settingsRuntimePromise;
2689
2844
  function loadSettingsRuntimeModules() {
2690
2845
  settingsRuntimePromise ??= Promise.all([
2691
- import("./settings-DJDXFDZ3.js"),
2692
- import("./environment-XXQ75D2Q.js"),
2693
- import("./loadedSettingsAdapter-SPUTNKAV.js"),
2694
- import("./trustedFolders-X2JEIO57.js")
2846
+ import("./settings-CUN3SELH.js"),
2847
+ import("./environment-DXJTXSVT.js"),
2848
+ import("./loadedSettingsAdapter-OK6GK2GE.js"),
2849
+ import("./trustedFolders-EVCN36O5.js")
2695
2850
  ]).then(([settings, environment, loadedSettingsAdapter, trustedFolders]) => ({
2696
2851
  settings,
2697
2852
  environment,
@@ -2704,8 +2859,8 @@ __name(loadSettingsRuntimeModules, "loadSettingsRuntimeModules");
2704
2859
  var channelWebhookConfigRuntimePromise;
2705
2860
  function loadChannelWebhookConfigRuntime() {
2706
2861
  channelWebhookConfigRuntimePromise ??= Promise.all([
2707
- import("./runtime-DAUPSUKI.js"),
2708
- import("./config-utils-NYSXDMEQ.js")
2862
+ import("./runtime-WCWM3DO7.js"),
2863
+ import("./config-utils-64LM6OEQ.js")
2709
2864
  ]).then(([channelRuntime, configUtils]) => ({
2710
2865
  loadChannelsConfig: channelRuntime.loadChannelsConfig,
2711
2866
  parseChannelWebhookConfig: configUtils.parseChannelWebhookConfig
@@ -2730,17 +2885,17 @@ async function loadServeRuntimeModules() {
2730
2885
  totalSessionAdmissionModule,
2731
2886
  workspaceRegistryModule
2732
2887
  ] = await Promise.all([
2733
- import("./server-WEH7DVCH.js"),
2734
- import("./bridge-3KJEWDNE.js"),
2735
- import("./spawnChannel-ETMJW7YX.js"),
2888
+ import("./server-N4AJRKIQ.js"),
2889
+ import("./bridge-JNEW6FES.js"),
2890
+ import("./spawnChannel-RILO4YY3.js"),
2736
2891
  import("./process-registry-2CHQBXH5.js"),
2737
- import("./workspace-service-M6LLHKJ5.js"),
2892
+ import("./workspace-service-VH6IWADT.js"),
2738
2893
  import("./types-ML3TRJQ5.js"),
2739
- import("./daemon-status-provider-3XJI6CAL.js"),
2740
- import("./workspace-providers-status-S35YAIUS.js"),
2741
- import("./workspace-skills-status-C2V7BAIS.js"),
2742
- import("./total-session-admission-44JKRWQD.js"),
2743
- import("./workspace-registry-O63R6IZ4.js")
2894
+ import("./daemon-status-provider-XD23SNAM.js"),
2895
+ import("./workspace-providers-status-O3HUZGGR.js"),
2896
+ import("./workspace-skills-status-XANARSZS.js"),
2897
+ import("./total-session-admission-3ZTAXVUK.js"),
2898
+ import("./workspace-registry-U7ISW23N.js")
2744
2899
  ]);
2745
2900
  return {
2746
2901
  createServeApp: serverModule.createServeApp,
@@ -2934,12 +3089,12 @@ async function waitForRuntimeStartingForShutdown(runtimeStarting, daemonLog, tim
2934
3089
  let timer;
2935
3090
  await Promise.race([
2936
3091
  runtimeStarting,
2937
- new Promise((resolve) => {
3092
+ new Promise((resolve2) => {
2938
3093
  timer = setTimeout(() => {
2939
3094
  daemonLog.warn(
2940
3095
  `${timeoutMs}ms runtime-startup wait reached during shutdown; continuing listener close`
2941
3096
  );
2942
- resolve();
3097
+ resolve2();
2943
3098
  }, timeoutMs);
2944
3099
  timer.unref();
2945
3100
  })
@@ -3402,9 +3557,19 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
3402
3557
  status: deps.bridge ? "external_bridge" : shouldPreheat ? "scheduled" : "not_scheduled"
3403
3558
  }
3404
3559
  };
3560
+ if (optsIn.memoryProjectScope !== void 0 && !MEMORY_PROJECT_SCOPES.includes(
3561
+ optsIn.memoryProjectScope
3562
+ )) {
3563
+ throw new TypeError(
3564
+ `Invalid memoryProjectScope: ${String(optsIn.memoryProjectScope)}. Must be "git-root" or "workspace".`
3565
+ );
3566
+ }
3405
3567
  preResolveServeFastPathHomeEnvOverrides();
3406
3568
  const daemonRuntimeBaseEnv = Object.freeze({
3407
- ...process.env
3569
+ ...process.env,
3570
+ ...optsIn.memoryProjectScope !== void 0 ? {
3571
+ QWEN_CODE_MEMORY_PROJECT_SCOPE: optsIn.memoryProjectScope
3572
+ } : {}
3408
3573
  });
3409
3574
  const rawToken = optsIn.token ?? process.env[QWEN_SERVER_TOKEN_ENV];
3410
3575
  const token = typeof rawToken === "string" && rawToken.trim().length > 0 ? rawToken.trim() : void 0;
@@ -3633,7 +3798,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
3633
3798
  }
3634
3799
  let workspaceRegistrationStore = deps.workspaceRegistrationStore;
3635
3800
  if (workspaceRegistrationStore === void 0 && process.env["QWEN_SERVE_NO_PERSISTENT_REGISTRATION"] !== "1") {
3636
- const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-OTMS3H4C.js");
3801
+ const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-M3FJ74RS.js");
3637
3802
  workspaceRegistrationStore = new WorkspaceRegistrationStore(boundWorkspace);
3638
3803
  }
3639
3804
  if (workspaceRegistrationStore) {
@@ -3890,8 +4055,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
3890
4055
  let startRuntimeAfterHealth;
3891
4056
  let startRuntimeForRequest;
3892
4057
  const deferRuntimeUntilFirstHealth = deps.resolveOnListen === true && deps.deferRuntimeUntilFirstHealth === true;
3893
- const runtimeReady = new Promise((resolve, reject) => {
3894
- markRuntimeReady = resolve;
4058
+ const runtimeReady = new Promise((resolve2, reject) => {
4059
+ markRuntimeReady = resolve2;
3895
4060
  markRuntimeFailed = reject;
3896
4061
  });
3897
4062
  void runtimeReady.catch(() => {
@@ -4144,7 +4309,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4144
4309
  loadCoreRuntime(),
4145
4310
  loadSettingsRuntimeModules(),
4146
4311
  cliVersionPromise,
4147
- import("./daemon-trust-policy-ILUDTLHD.js")
4312
+ import("./daemon-trust-policy-NOHK7IW5.js")
4148
4313
  ]);
4149
4314
  cliVersion = resolvedCliVersion;
4150
4315
  settingsRuntime.environment.preResolveHomeEnvOverrides();
@@ -4200,6 +4365,29 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4200
4365
  envFileReadFailed: false,
4201
4366
  envFileReadFailures: Object.freeze([])
4202
4367
  };
4368
+ const resolveSessionRuntimeBaseDir = /* @__PURE__ */ __name((workspace, settings, effectiveEnv) => {
4369
+ const resolveConfiguredPath = /* @__PURE__ */ __name((configuredPath, relativeTo) => {
4370
+ const expanded = configuredPath === "~" ? os.homedir() : configuredPath.startsWith("~/") || configuredPath.startsWith("~\\") ? path.join(
4371
+ os.homedir(),
4372
+ ...configuredPath.slice(2).split(/[/\\]+/).filter(Boolean)
4373
+ ) : configuredPath;
4374
+ return path.resolve(relativeTo, expanded);
4375
+ }, "resolveConfiguredPath");
4376
+ const runtimeDir = effectiveEnv["QWEN_RUNTIME_DIR"];
4377
+ if (runtimeDir) {
4378
+ return resolveConfiguredPath(runtimeDir, process.cwd());
4379
+ }
4380
+ const settingsDir = settings?.merged.advanced?.runtimeOutputDir;
4381
+ if (settingsDir) {
4382
+ return resolveConfiguredPath(settingsDir, workspace);
4383
+ }
4384
+ const qwenHome = effectiveEnv["QWEN_HOME"];
4385
+ if (qwenHome) {
4386
+ return resolveConfiguredPath(qwenHome, process.cwd());
4387
+ }
4388
+ const homeDir = os.homedir();
4389
+ return homeDir ? path.join(homeDir, ".qwen") : path.join(os.tmpdir(), ".qwen");
4390
+ }, "resolveSessionRuntimeBaseDir");
4203
4391
  const logRuntimeEnvFileReadFailures = /* @__PURE__ */ __name((workspace, snapshot) => {
4204
4392
  if (!snapshot.envFileReadFailed) return;
4205
4393
  const failedFiles = snapshot.envFileReadFailures ?? [];
@@ -4209,14 +4397,21 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4209
4397
  });
4210
4398
  }, "logRuntimeEnvFileReadFailures");
4211
4399
  logRuntimeEnvFileReadFailures(boundWorkspace, runtimeEnvSnapshot);
4400
+ const primarySessionRuntimeBaseDir = resolveSessionRuntimeBaseDir(
4401
+ boundWorkspace,
4402
+ runtimeBootSettings,
4403
+ runtimeEnvSnapshot.effectiveEnv
4404
+ );
4212
4405
  const runtimeEffectiveEnv = {
4213
- ...runtimeEnvSnapshot.effectiveEnv
4406
+ ...runtimeEnvSnapshot.effectiveEnv,
4407
+ QWEN_RUNTIME_DIR: primarySessionRuntimeBaseDir
4214
4408
  };
4215
4409
  const replaceRuntimeEffectiveEnv = /* @__PURE__ */ __name((nextEnv) => {
4216
4410
  for (const key of Object.keys(runtimeEffectiveEnv)) {
4217
4411
  delete runtimeEffectiveEnv[key];
4218
4412
  }
4219
4413
  Object.assign(runtimeEffectiveEnv, nextEnv);
4414
+ runtimeEffectiveEnv["QWEN_RUNTIME_DIR"] = primarySessionRuntimeBaseDir;
4220
4415
  }, "replaceRuntimeEffectiveEnv");
4221
4416
  const primaryRuntimeEnv = {
4222
4417
  mode: "runtime-overlay",
@@ -4479,7 +4674,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4479
4674
  resolveSkillSettings,
4480
4675
  skillSettingStrings,
4481
4676
  updateWorkspaceSkillSettingLists
4482
- } = await import("./skill-settings-VJ5PDMZI.js");
4677
+ } = await import("./skill-settings-XVPCPW5K.js");
4483
4678
  const fresh = loadSettingsForPersistence(workspace);
4484
4679
  const normalizedName = skillName.trim().toLowerCase();
4485
4680
  const resolved = resolveSkillSettings(fresh);
@@ -4578,7 +4773,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4578
4773
  );
4579
4774
  }
4580
4775
  }), "persistSettingsFn");
4581
- const { createSubSessionLauncher } = await import("./create-sub-session-R76FVXCI.js");
4776
+ const { createSubSessionLauncher } = await import("./create-sub-session-XHSCDYFU.js");
4582
4777
  const subSessionLauncher = createSubSessionLauncher({
4583
4778
  getBridge: /* @__PURE__ */ __name(() => bridgeRef, "getBridge"),
4584
4779
  boundWorkspace
@@ -4746,6 +4941,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4746
4941
  {
4747
4942
  workspaceId: daemonWorkspaceHash,
4748
4943
  workspaceCwd: boundWorkspace,
4944
+ sessionRuntimeBaseDir: primarySessionRuntimeBaseDir,
4749
4945
  ...workspaceInputs[0]?.displayName ? { displayName: workspaceInputs[0].displayName } : {},
4750
4946
  primary: true,
4751
4947
  trusted: trustedWorkspace,
@@ -4774,7 +4970,15 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4774
4970
  envFileReadFailures: Object.freeze([])
4775
4971
  };
4776
4972
  logRuntimeEnvFileReadFailures(workspace, snapshot);
4777
- const effectiveEnv = { ...snapshot.effectiveEnv };
4973
+ const sessionRuntimeBaseDir = resolveSessionRuntimeBaseDir(
4974
+ workspace,
4975
+ settings,
4976
+ snapshot.effectiveEnv
4977
+ );
4978
+ const effectiveEnv = {
4979
+ ...snapshot.effectiveEnv,
4980
+ QWEN_RUNTIME_DIR: sessionRuntimeBaseDir
4981
+ };
4778
4982
  const metadata = {
4779
4983
  mode: "runtime-overlay",
4780
4984
  overlayKeys: [...snapshot.overlayKeys],
@@ -4786,11 +4990,13 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4786
4990
  return {
4787
4991
  metadata,
4788
4992
  effectiveEnv,
4993
+ sessionRuntimeBaseDir,
4789
4994
  replace(nextEnv) {
4790
4995
  for (const key of Object.keys(effectiveEnv)) {
4791
4996
  delete effectiveEnv[key];
4792
4997
  }
4793
4998
  Object.assign(effectiveEnv, nextEnv);
4999
+ effectiveEnv["QWEN_RUNTIME_DIR"] = sessionRuntimeBaseDir;
4794
5000
  }
4795
5001
  };
4796
5002
  }, "createRuntimeEnvMetadata");
@@ -5017,6 +5223,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5017
5223
  const secondaryRuntime = {
5018
5224
  workspaceId: secondaryWorkspaceHash,
5019
5225
  workspaceCwd: workspaceInput.cwd,
5226
+ sessionRuntimeBaseDir: secondaryEnv.sessionRuntimeBaseDir,
5020
5227
  ...workspaceInput.displayName ? { displayName: workspaceInput.displayName } : {},
5021
5228
  primary: false,
5022
5229
  trusted: secondaryTrusted,
@@ -5378,6 +5585,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5378
5585
  const wsRuntime = {
5379
5586
  workspaceId: wsHash,
5380
5587
  workspaceCwd: cwd,
5588
+ sessionRuntimeBaseDir: wsEnv.sessionRuntimeBaseDir,
5381
5589
  ...buildOptions?.displayName !== void 0 ? { displayName: buildOptions.displayName } : {},
5382
5590
  primary: buildOptions?.primary ?? false,
5383
5591
  trusted,
@@ -5666,8 +5874,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5666
5874
  { createChannelManagementService },
5667
5875
  { WorkspaceChannelSettingsStore }
5668
5876
  ] = await Promise.all([
5669
- import("./channel-management-service-XR7GZSWF.js"),
5670
- import("./channel-settings-store-HW4FXXUA.js")
5877
+ import("./channel-management-service-QOO7TD3T.js"),
5878
+ import("./channel-settings-store-4CSMTR4L.js")
5671
5879
  ]);
5672
5880
  return createChannelManagementService({
5673
5881
  workspaceCwd: targetRuntime.workspaceCwd,
@@ -5863,8 +6071,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5863
6071
  { createWorkspaceTrustReconciler },
5864
6072
  { createDaemonTrustPolicyMonitor }
5865
6073
  ] = await Promise.all([
5866
- import("./workspace-trust-reconciler-IBUPOUJN.js"),
5867
- import("./daemon-trust-policy-monitor-HS3PKKRO.js")
6074
+ import("./workspace-trust-reconciler-35EFR4GC.js"),
6075
+ import("./daemon-trust-policy-monitor-ZBTSR333.js")
5868
6076
  ]);
5869
6077
  const materializationFor = /* @__PURE__ */ __name((entry, snapshot, decision) => {
5870
6078
  const boundWorkspaces2 = entry.primary && decision.targetTrusted ? runtime.resolveBoundWorkspacesFromIdeEnv(
@@ -5959,7 +6167,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5959
6167
  handle?.disposeWorkspace(runtimeToDispose.workspaceId);
5960
6168
  const deadline = Date.now() + 1e3;
5961
6169
  while ((handle?.getWorkspaceActivity(runtimeToDispose.workspaceId).memoryTasks ?? 0) > 0 && Date.now() < deadline) {
5962
- await new Promise((resolve) => setTimeout(resolve, 25));
6170
+ await new Promise((resolve2) => setTimeout(resolve2, 25));
5963
6171
  }
5964
6172
  if ((handle?.getWorkspaceActivity(runtimeToDispose.workspaceId).memoryTasks ?? 0) > 0) {
5965
6173
  throw new Error(
@@ -6071,7 +6279,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6071
6279
  );
6072
6280
  }
6073
6281
  const channelValidationSettingsRuntime = opts.channelSelection ? await loadSettingsRuntimeModules() : void 0;
6074
- const channelValidationTrustPolicy = opts.channelSelection ? await import("./daemon-trust-policy-ILUDTLHD.js") : void 0;
6282
+ const channelValidationTrustPolicy = opts.channelSelection ? await import("./daemon-trust-policy-NOHK7IW5.js") : void 0;
6075
6283
  const channelValidationTrustSnapshot = channelValidationTrustPolicy ? await channelValidationTrustPolicy.readDaemonTrustPolicySnapshot() : void 0;
6076
6284
  const resolveChannelWorkspaceGroupsAtListen = /* @__PURE__ */ __name(() => {
6077
6285
  if (!opts.channelSelection || !channelValidationSettingsRuntime || !channelRuntime) {
@@ -6177,7 +6385,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6177
6385
  if (opts.channelSelection) {
6178
6386
  reserveChannelServicePidfile(opts.channelSelection);
6179
6387
  }
6180
- return await new Promise((resolve, reject) => {
6388
+ return await new Promise((resolve2, reject) => {
6181
6389
  const onListening = /* @__PURE__ */ __name((error) => {
6182
6390
  if (error) return;
6183
6391
  startup.listenerReadyAt = (/* @__PURE__ */ new Date()).toISOString();
@@ -6332,7 +6540,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6332
6540
  daemonLog.error("runtime startup failed", error2);
6333
6541
  markRuntimeFailed(error2);
6334
6542
  if (closeServerAfterChannelWorkerStartupFailure && server.listening) {
6335
- runtimeFailureListenerClose = new Promise((resolve2) => {
6543
+ runtimeFailureListenerClose = new Promise((resolve3) => {
6336
6544
  server.close((closeErr) => {
6337
6545
  if (closeErr) {
6338
6546
  daemonLog.error(
@@ -6340,7 +6548,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6340
6548
  closeErr
6341
6549
  );
6342
6550
  }
6343
- resolve2();
6551
+ resolve3();
6344
6552
  });
6345
6553
  });
6346
6554
  server.closeAllConnections();
@@ -6673,7 +6881,9 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6673
6881
  channelControlDraining = true;
6674
6882
  const initiallyMountedApp = runtimeApp ?? runtimeAppForCleanup;
6675
6883
  const initiallyMountedManagement = initiallyMountedApp?.locals?.["workspaceManagementHandle"];
6884
+ const initiallyMountedSessionMaintenance = initiallyMountedApp?.locals?.["sessionArchiveCoordinator"];
6676
6885
  const initialManagementWait = initiallyMountedManagement?.sealAndWait?.();
6886
+ const initialSessionMaintenanceWait = initiallyMountedSessionMaintenance?.sealMaintenanceAndWait?.();
6677
6887
  let processRegistryShutdown;
6678
6888
  const startProcessRegistryShutdown = /* @__PURE__ */ __name(() => {
6679
6889
  processRegistryShutdown ??= managedProcessRegistry?.shutdown().then(
@@ -6748,10 +6958,15 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6748
6958
  );
6749
6959
  const appForCleanup = runtimeApp ?? runtimeAppForCleanup;
6750
6960
  const workspaceManagementHandle = appForCleanup?.locals?.["workspaceManagementHandle"];
6961
+ const sessionMaintenance = appForCleanup?.locals?.["sessionArchiveCoordinator"];
6751
6962
  await initialManagementWait;
6752
6963
  if (workspaceManagementHandle !== initiallyMountedManagement) {
6753
6964
  await workspaceManagementHandle?.sealAndWait?.();
6754
6965
  }
6966
+ await initialSessionMaintenanceWait;
6967
+ if (sessionMaintenance !== initiallyMountedSessionMaintenance) {
6968
+ await sessionMaintenance?.sealMaintenanceAndWait?.();
6969
+ }
6755
6970
  stopTrustPolicyMonitor(appForCleanup);
6756
6971
  const waitForTrustPolicyIdle = appForCleanup?.locals?.["waitForTrustPolicyIdle"];
6757
6972
  await waitForTrustPolicyIdle?.().catch((err) => {
@@ -6881,13 +7096,13 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6881
7096
  if (deps.resolveOnListen) {
6882
7097
  loggerPublished = true;
6883
7098
  loggerLifecycle.published();
6884
- resolve(handle);
7099
+ resolve2(handle);
6885
7100
  } else {
6886
7101
  void runtimeReady.then(
6887
7102
  () => {
6888
7103
  loggerPublished = true;
6889
7104
  loggerLifecycle.published();
6890
- resolve(handle);
7105
+ resolve2(handle);
6891
7106
  },
6892
7107
  (err) => {
6893
7108
  void handle.close().then(