@qwen-code/qwen-code 0.21.7 → 0.21.8-nightly.20260810.55e20db328

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 (334) hide show
  1. package/README.md +2 -0
  2. package/bundled/qc-helper/docs/configuration/settings.md +73 -59
  3. package/bundled/qc-helper/docs/extension/introduction.md +15 -1
  4. package/bundled/qc-helper/docs/features/channels/dingtalk.md +40 -2
  5. package/bundled/qc-helper/docs/features/channels/feishu.md +13 -2
  6. package/bundled/qc-helper/docs/features/channels/github.md +13 -11
  7. package/bundled/qc-helper/docs/features/channels/gitlab.md +13 -11
  8. package/bundled/qc-helper/docs/features/channels/overview.md +49 -31
  9. package/bundled/qc-helper/docs/features/channels/plugins.md +2 -2
  10. package/bundled/qc-helper/docs/features/channels/qqbot.md +4 -2
  11. package/bundled/qc-helper/docs/features/channels/telegram.md +4 -2
  12. package/bundled/qc-helper/docs/features/channels/wecom.md +1 -1
  13. package/bundled/qc-helper/docs/features/code-review.md +4 -0
  14. package/bundled/qc-helper/docs/features/commands.md +1 -1
  15. package/bundled/qc-helper/docs/features/hooks.md +52 -0
  16. package/bundled/qc-helper/docs/integration-jetbrains.md +1 -0
  17. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +1 -1
  18. package/bundled/qc-helper/docs/qwen-serve.md +10 -5
  19. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +50 -36
  20. package/bundled/review/SKILL.md +32 -5
  21. package/chunks/{MaxSizedBox-ANWZBPTS.js → MaxSizedBox-A52T4GEU.js} +29 -25
  22. package/chunks/{StandaloneSessionPicker-XKS3VU3A.js → StandaloneSessionPicker-4J654SOB.js} +48 -44
  23. package/chunks/{acp-startup-profiler-ORIQ2CCQ.js → acp-startup-profiler-B5BYAMYQ.js} +2 -2
  24. package/chunks/{acpAgent-KUAZ3GCZ.js → acpAgent-65AM4AOR.js} +1833 -843
  25. package/chunks/{agent-T6PTGX5R.js → agent-SVQ7U7NJ.js} +28 -24
  26. package/chunks/{agent-headless-PR7YCB7S.js → agent-headless-XXGY2SQO.js} +28 -24
  27. package/chunks/{artifact-tool-U4VOZIK5.js → artifact-tool-N652YE4L.js} +1 -1
  28. package/chunks/{askUserQuestion-XOBQLPFA.js → askUserQuestion-ONW74PKJ.js} +1 -1
  29. package/chunks/{bridge-NU6YEEHK.js → bridge-Y32B5S3G.js} +34 -30
  30. package/chunks/{ca-NYKNH222.js → ca-ZLKAB4K3.js} +6 -0
  31. package/chunks/{channel-management-service-FSQ7SHYI.js → channel-management-service-PHELKOW2.js} +19 -10
  32. package/chunks/{channel-settings-store-35VQVUVV.js → channel-settings-store-OW43U6VB.js} +36 -32
  33. package/chunks/{channel-worker-group-JWQK224X.js → channel-worker-group-MSHT6CWR.js} +7 -7
  34. package/chunks/{channel-worker-manager-77E3OXRQ.js → channel-worker-manager-XXD3GDSK.js} +7 -7
  35. package/chunks/{channel-worker-supervisor-62YWUGP2.js → channel-worker-supervisor-IVSDIMI4.js} +4 -4
  36. package/chunks/{chunk-HYRDKNUY.js → chunk-2545EHZR.js} +1 -1
  37. package/chunks/{chunk-SPMY6CX6.js → chunk-2ASQDZSJ.js} +3 -3
  38. package/chunks/{chunk-CJXIIILK.js → chunk-2FRY5CRX.js} +1 -1
  39. package/chunks/{chunk-CNIID3TV.js → chunk-2UUMVNYT.js} +1 -1
  40. package/chunks/{chunk-KXSDEOFU.js → chunk-3KJQZEN3.js} +1 -1
  41. package/chunks/{chunk-22NBYCPD.js → chunk-3P2LV43B.js} +1 -1
  42. package/chunks/{chunk-Y7E5LNLO.js → chunk-47ZUMGGY.js} +2634 -2114
  43. package/chunks/{chunk-LA7YLSR6.js → chunk-4EOURKA4.js} +839 -153
  44. package/chunks/chunk-4JRM2BSM.js +48 -0
  45. package/chunks/{chunk-BGG4MBYD.js → chunk-4PYCZH2V.js} +4 -187
  46. package/chunks/{chunk-L4N6TIP7.js → chunk-4TRQPFDP.js} +4 -2
  47. package/chunks/{chunk-6XJMFJ4D.js → chunk-5WZL724W.js} +177 -120
  48. package/chunks/{chunk-23RZCH76.js → chunk-5ZTS3OQ3.js} +3 -3
  49. package/chunks/{chunk-VWOVHOTT.js → chunk-67EWJE77.js} +1 -1
  50. package/chunks/{chunk-3K7FH2KQ.js → chunk-67N6HB5H.js} +1310 -171
  51. package/chunks/{chunk-CXE7E23H.js → chunk-6Q5ABMTU.js} +45 -17
  52. package/chunks/{chunk-NG2R4N5O.js → chunk-6ZRFAKXK.js} +1 -1
  53. package/chunks/{chunk-RERATVSK.js → chunk-7XX5IBXL.js} +145 -10
  54. package/chunks/{chunk-S7CV4KO6.js → chunk-AKJQSWV4.js} +4 -4
  55. package/chunks/{chunk-5KH532V7.js → chunk-AUWN7BAG.js} +1 -1
  56. package/chunks/{chunk-DBOFL3LQ.js → chunk-BL65MO72.js} +10 -10
  57. package/chunks/{chunk-AKA24BGO.js → chunk-BT6GQIEJ.js} +1 -1
  58. package/chunks/{chunk-W7U4ESW2.js → chunk-CG3WBKJK.js} +1 -1
  59. package/chunks/{chunk-2M5N3DHY.js → chunk-CMOBWHWW.js} +1 -1
  60. package/chunks/chunk-COBO5EBO.js +135 -0
  61. package/chunks/chunk-CPG6P4GG.js +82 -0
  62. package/chunks/{chunk-3NB7TSE2.js → chunk-D2D7J3EW.js} +1 -1
  63. package/chunks/{chunk-NLREQJFK.js → chunk-DA4HRSBW.js} +15 -0
  64. package/chunks/{chunk-RNVQB725.js → chunk-DPMJLKUP.js} +2 -2
  65. package/chunks/{chunk-DIEFUBV6.js → chunk-DX3RGJMS.js} +218 -37
  66. package/chunks/{chunk-33ACCIIY.js → chunk-DZUO626D.js} +1 -1
  67. package/chunks/chunk-E2FPSSKP.js +244 -0
  68. package/chunks/{chunk-72LNFGUY.js → chunk-E2N554HK.js} +3 -3
  69. package/chunks/{chunk-6EOI4HOK.js → chunk-E2T7FLDU.js} +12 -17
  70. package/chunks/{chunk-EUQTXRKZ.js → chunk-EISUQQPS.js} +6 -6
  71. package/chunks/{chunk-H2UQ2M5Z.js → chunk-EUVOKP6Y.js} +96 -22
  72. package/chunks/{chunk-RMH5OWLD.js → chunk-F3II4BTZ.js} +1 -1
  73. package/chunks/{chunk-P3LEG54R.js → chunk-F6TUUA2U.js} +3 -3
  74. package/chunks/chunk-F6WFNA7U.js +22 -0
  75. package/chunks/{chunk-RZHU3ILK.js → chunk-FAD7OC7V.js} +4 -4
  76. package/chunks/{chunk-OMKQH5C5.js → chunk-FWWQIFDT.js} +6 -23
  77. package/chunks/{chunk-TLV2IMHR.js → chunk-FYB4GIDW.js} +3 -3
  78. package/chunks/{chunk-ZJ3VGYHK.js → chunk-GY24H6IA.js} +40 -22
  79. package/chunks/{chunk-P2AJ7FTI.js → chunk-H4JC7LZX.js} +1 -1
  80. package/chunks/{chunk-55LYDVPU.js → chunk-HDYQYYWB.js} +1 -1
  81. package/chunks/{chunk-PQBHU2IA.js → chunk-HKI3KHAO.js} +11 -11
  82. package/chunks/{chunk-Y4NGLFGJ.js → chunk-HUWENAHO.js} +1 -1
  83. package/chunks/{chunk-3ULCB3NE.js → chunk-HV76SFIA.js} +1 -1
  84. package/chunks/{chunk-CSZEXZBE.js → chunk-HWXGX534.js} +3 -3
  85. package/chunks/{chunk-E33LOKRA.js → chunk-I5VM3SKY.js} +22 -5
  86. package/chunks/{chunk-LZC3B5N2.js → chunk-IA7TGCN2.js} +2 -2
  87. package/chunks/{chunk-RGSBTHSU.js → chunk-KMS57JDD.js} +137 -7
  88. package/chunks/{chunk-VOARQPTA.js → chunk-KP25NJNM.js} +65 -21
  89. package/chunks/{chunk-6M26GBKX.js → chunk-L2AFWWJE.js} +42 -3
  90. package/chunks/{chunk-ZXU5UHMI.js → chunk-LHEC5V6G.js} +2 -2
  91. package/chunks/{chunk-J26HHFI5.js → chunk-LP2QGNSP.js} +32 -2
  92. package/chunks/{chunk-R574ATRM.js → chunk-M2PNLYGY.js} +41 -0
  93. package/chunks/{chunk-MKVZE4ZJ.js → chunk-MFDYOYZZ.js} +3 -2
  94. package/chunks/{chunk-ALGGS7UH.js → chunk-NPQ5ZKRP.js} +82 -1
  95. package/chunks/{chunk-YHEEE624.js → chunk-NV3F44FL.js} +7 -3
  96. package/chunks/{chunk-6GONZVLS.js → chunk-NZMXUSKS.js} +1 -1
  97. package/chunks/{chunk-HQB2KUAN.js → chunk-O277O7U6.js} +1 -1
  98. package/chunks/{chunk-Y4EWSQF7.js → chunk-OBP6QWD5.js} +2 -2
  99. package/chunks/{chunk-CYR3HI5X.js → chunk-OQTXYMKW.js} +2 -2
  100. package/chunks/{chunk-TYKC75AX.js → chunk-OR6R3IUW.js} +2 -2
  101. package/chunks/{chunk-TRLYP7OF.js → chunk-OSVH4SMN.js} +16 -141
  102. package/chunks/{chunk-FPM27XN4.js → chunk-OW2BWT2P.js} +4 -4
  103. package/chunks/{chunk-TDXGKHDN.js → chunk-P5ULXPK5.js} +2 -2
  104. package/chunks/{chunk-24ER7UV4.js → chunk-PBRVUF5B.js} +1 -1
  105. package/chunks/{chunk-LKRMNRSN.js → chunk-PDPFQ2FO.js} +2 -0
  106. package/chunks/{chunk-2VSTGY6M.js → chunk-PJRW65JO.js} +1 -1
  107. package/chunks/{chunk-6HVUFDS2.js → chunk-PNVPFARW.js} +22 -13
  108. package/chunks/{chunk-IC4Z6LX6.js → chunk-PYQADEFD.js} +5 -0
  109. package/chunks/chunk-R4ZA6GBK.js +208 -0
  110. package/chunks/{chunk-KR4ZSC7K.js → chunk-RMPLEWF3.js} +3 -3
  111. package/chunks/{chunk-EORNAQDT.js → chunk-RQ6U2JJQ.js} +1 -1
  112. package/chunks/{chunk-AE77C5ZU.js → chunk-RYQMJCUO.js} +1 -1
  113. package/chunks/{chunk-6UWFTUQL.js → chunk-S5CULOHB.js} +75 -31
  114. package/chunks/{chunk-7UFKAV7Y.js → chunk-S6HYI3MF.js} +2 -2
  115. package/chunks/chunk-SAH4BD2J.js +92 -0
  116. package/chunks/chunk-SR7RZ4MS.js +202 -0
  117. package/chunks/{chunk-QETYKPMG.js → chunk-T2O6NIOY.js} +1 -1
  118. package/chunks/chunk-TQOF5KBL.js +71 -0
  119. package/chunks/{chunk-OHJLEW5J.js → chunk-TWFFY5BP.js} +4 -4
  120. package/chunks/{chunk-SCI7K3GM.js → chunk-TXO5BMR2.js} +19 -10
  121. package/chunks/{chunk-YJQCUTT2.js → chunk-UAB6J2IE.js} +4 -4
  122. package/chunks/{chunk-OFI7IGST.js → chunk-UGUKH3SU.js} +10 -10
  123. package/chunks/{chunk-SHZYHGQH.js → chunk-V2226RFW.js} +1 -1
  124. package/chunks/{chunk-KKJJB5X6.js → chunk-V47QNK5W.js} +1526 -833
  125. package/chunks/{chunk-W4B7UBUS.js → chunk-VHXPSL57.js} +6 -6
  126. package/chunks/{chunk-WUC6ZFXO.js → chunk-VKJ4KTPJ.js} +1 -1
  127. package/chunks/{chunk-MAJS7AT4.js → chunk-VNNWAZSI.js} +2 -2
  128. package/chunks/{chunk-BVWVWGLE.js → chunk-WAUGQKUU.js} +4 -64
  129. package/chunks/{chunk-OH2VKQXH.js → chunk-WH6QMLUW.js} +37 -30
  130. package/chunks/{chunk-PJOBIWUG.js → chunk-WQYWK4DG.js} +1 -1
  131. package/chunks/{chunk-LEMXGVEP.js → chunk-YFRFZCIP.js} +3 -3
  132. package/chunks/{chunk-2U3WZGZG.js → chunk-YGT2AUJ7.js} +103 -135
  133. package/chunks/{chunk-6XU3PH66.js → chunk-YR7ZQ4RD.js} +22 -69
  134. package/chunks/{chunk-OA4JVLSA.js → chunk-Z7VOMGDC.js} +22 -1
  135. package/chunks/{chunk-RUL4S3K3.js → chunk-ZCJBCKL5.js} +175 -60
  136. package/chunks/{chunk-GSS34377.js → chunk-ZI5IH2HP.js} +2 -2
  137. package/chunks/{chunk-CB2464BK.js → chunk-ZIKTCMQF.js} +117 -10
  138. package/chunks/chunk-ZLBIFIMV.js +1099 -0
  139. package/chunks/{chunk-D3UEZIQH.js → chunk-ZSNBQXMZ.js} +48 -55
  140. package/chunks/{chunk-FZBZSYKU.js → chunk-ZV7LTLFE.js} +1 -1
  141. package/chunks/{computer-use-KEAPATUY.js → computer-use-SLN7DV2E.js} +28 -24
  142. package/chunks/{config-utils-K7SCOWHD.js → config-utils-ULCSRMWD.js} +4 -4
  143. package/chunks/{contextCommand-ZJA6A5K5.js → contextCommand-EHFYX6FW.js} +30 -26
  144. package/chunks/{core-runtime-QMJPWHCI.js → core-runtime-FBSP5IIG.js} +33 -29
  145. package/chunks/{create-sub-session-E4PBYXV5.js → create-sub-session-QIDZUOPU.js} +1 -1
  146. package/chunks/{create-sub-session-DJE6XICH.js → create-sub-session-WC7YGVSL.js} +29 -25
  147. package/chunks/{cron-create-GRBWYMIJ.js → cron-create-VONA5JYY.js} +1 -1
  148. package/chunks/{cron-delete-4CMKBR2M.js → cron-delete-5JXSP2MI.js} +1 -1
  149. package/chunks/{cron-list-W7K4ASOA.js → cron-list-KE4F2CIR.js} +1 -1
  150. package/chunks/{daemon-SCTQMM7Z.js → daemon-VSX3FHTY.js} +119 -4
  151. package/chunks/{daemon-status-provider-FSWDPE2G.js → daemon-status-provider-WW2AD2T7.js} +39 -35
  152. package/chunks/{daemon-trust-policy-P5L5VFAY.js → daemon-trust-policy-E4MAYWPI.js} +35 -31
  153. package/chunks/{daemon-trust-policy-monitor-73JYN6ET.js → daemon-trust-policy-monitor-XVIDV6T4.js} +35 -31
  154. package/chunks/{de-VL76CPLV.js → de-LIW4XVLN.js} +5 -0
  155. package/chunks/{deferred-core-runtime-BWRCCFTE.js → deferred-core-runtime-5SVUC6UC.js} +28 -24
  156. package/chunks/{display-image-O2XFPQTC.js → display-image-NQRSIBXM.js} +2 -2
  157. package/chunks/{dist-HVBMEYWK.js → dist-3NTTUAHT.js} +1 -1
  158. package/chunks/{dist-7JGAAQSC.js → dist-6BMOAE3Z.js} +2 -2
  159. package/chunks/{dist-3BMEUGTG.js → dist-B2CGTW6T.js} +1 -1
  160. package/chunks/{dist-C5U4LJKW.js → dist-EWW3J4HQ.js} +5 -4
  161. package/chunks/{dist-K4WWQBHS.js → dist-EZE3V3Q7.js} +55 -15
  162. package/chunks/{dist-DPPHJAVL.js → dist-J47AXBZC.js} +918 -142
  163. package/chunks/{dist-SFQ34F4M.js → dist-OTUO3AS2.js} +8 -1091
  164. package/chunks/{dist-KS4O2NKE.js → dist-Z3CS4OVP.js} +14 -8
  165. package/chunks/{earlyInputCapture-L5ST23A6.js → earlyInputCapture-72FYHYRD.js} +28 -24
  166. package/chunks/{edit-LHHRFNFK.js → edit-SWVVWHXW.js} +28 -24
  167. package/chunks/{en-IRJ2WN5T.js → en-SY5GTIGX.js} +6 -0
  168. package/chunks/{enter-worktree-6NXCRZPF.js → enter-worktree-2HF6WQEO.js} +28 -24
  169. package/chunks/{enterPlanMode-ZVQT4U7D.js → enterPlanMode-OW6S7L4P.js} +28 -24
  170. package/chunks/{environment-GJ2HWJOS.js → environment-LRTBTDXH.js} +32 -28
  171. package/chunks/{errors-6RLH3XXC.js → errors-4CO2DME6.js} +30 -26
  172. package/chunks/{exit-worktree-I2YLUHHY.js → exit-worktree-GHJEIRGL.js} +28 -24
  173. package/chunks/{exitPlanMode-7CCWKO7I.js → exitPlanMode-JVP4FNNK.js} +28 -24
  174. package/chunks/{fast-path-DVFD4HQD.js → fast-path-HCCY7GR2.js} +24 -3
  175. package/chunks/{fast-path-settings-WQJU2LAT.js → fast-path-settings-MN5QQQET.js} +6 -3
  176. package/chunks/{fr-GK3HQYVB.js → fr-RQFO7U4P.js} +5 -0
  177. package/chunks/{gemini-7FWGOYD4.js → gemini-V3YVRKXU.js} +85 -72
  178. package/chunks/{geminiContentGenerator-V2WVLIXU.js → geminiContentGenerator-LVPMQUWX.js} +1 -1
  179. package/chunks/{glob-3N6GGI75.js → glob-7HRXHYDR.js} +28 -24
  180. package/chunks/{goal-tools-APOW6UXL.js → goal-tools-PXWN5VK3.js} +4 -2
  181. package/chunks/{grep-V43ILZVX.js → grep-BITQUON5.js} +28 -24
  182. package/chunks/{handleAutoUpdate-A5WFVWIA.js → handleAutoUpdate-DKFY454S.js} +32 -28
  183. package/chunks/{i18n-PLVQ4FBZ.js → i18n-53BQIQSH.js} +29 -25
  184. package/chunks/{image-gen-7C6IK6DC.js → image-gen-H62FLDFB.js} +7 -5
  185. package/chunks/{initializer-CVAIKZYL.js → initializer-Q7NUQRSU.js} +35 -31
  186. package/chunks/{installationInfo-J6QDHNTK.js → installationInfo-BWFHT7WU.js} +29 -25
  187. package/chunks/{ja-3FA46IKD.js → ja-KOZKHJHZ.js} +5 -0
  188. package/chunks/{list-ZZ4OUUWV.js → list-OWQKR6JK.js} +38 -34
  189. package/chunks/{list-agents-KFFIIS2G.js → list-agents-Z4WABFDZ.js} +1 -1
  190. package/chunks/{loadedSettingsAdapter-QRYRJSWL.js → loadedSettingsAdapter-HNPKQMFA.js} +35 -31
  191. package/chunks/{loggingContentGenerator-OJCO75HM.js → loggingContentGenerator-A5I3VQUC.js} +10 -8
  192. package/chunks/{loop-wakeup-TLMJPMMP.js → loop-wakeup-UZ5RL5Y2.js} +2 -2
  193. package/chunks/{ls-UVVE2XGE.js → ls-TVHDGIES.js} +1 -1
  194. package/chunks/{lsp-QMEA2VLB.js → lsp-CVN6OQPI.js} +1 -1
  195. package/chunks/main-PXAUXNF2.js +8 -0
  196. package/chunks/{managed-npm-update-PCOSCP2N.js → managed-npm-update-CUUJGUTV.js} +29 -25
  197. package/chunks/{mcp-M3WKKWKY.js → mcp-GJSC7ZPO.js} +35 -31
  198. package/chunks/{monitor-GN24FH6C.js → monitor-TZ2II7JM.js} +38 -30
  199. package/chunks/{nonInteractiveCli-KPTU3VSQ.js → nonInteractiveCli-22RS4EVH.js} +72 -66
  200. package/chunks/{notebook-edit-4YM65BBO.js → notebook-edit-YZC3YPY2.js} +36 -24
  201. package/chunks/{openaiContentGenerator-EDQT6GTV.js → openaiContentGenerator-OIGO5XNF.js} +21 -11
  202. package/chunks/{pidfile-JOIIRN2C.js → pidfile-QJQ65RJ2.js} +28 -24
  203. package/chunks/{process-registry-2CHQBXH5.js → process-registry-PMJOA5CO.js} +15 -0
  204. package/chunks/{processUtils-5SV4MX3Q.js → processUtils-V5VSDIKS.js} +2 -2
  205. package/chunks/{pt-3AOBKPIJ.js → pt-U6AOCTMF.js} +5 -0
  206. package/chunks/{qwenContentGenerator-ODRJSUGR.js → qwenContentGenerator-HXM25BGB.js} +35 -30
  207. package/chunks/{qwenOAuth2-NESCMZ47.js → qwenOAuth2-7MTMS2Z5.js} +7 -5
  208. package/chunks/{read-file-HPSODLPK.js → read-file-PMGXB3ZB.js} +8 -6
  209. package/chunks/{read-mcp-resource-2TNSJTC3.js → read-mcp-resource-PZ4ZF6YL.js} +1 -1
  210. package/chunks/{record-artifact-RAON52FC.js → record-artifact-P4HFMS7X.js} +2 -2
  211. package/chunks/{resumeHistoryUtils-TXCOFFMQ.js → resumeHistoryUtils-YUTPLHUH.js} +33 -29
  212. package/chunks/{ripGrep-ZKQGTQAO.js → ripGrep-XUS66YIV.js} +28 -24
  213. package/chunks/{ru-VJRAMC4W.js → ru-CMX4UMYP.js} +5 -0
  214. package/chunks/{run-qwen-serve-ZPKPKECF.js → run-qwen-serve-4NVSU75L.js} +261 -62
  215. package/chunks/{runtime-2FLNNM36.js → runtime-QLRVP6HM.js} +40 -36
  216. package/chunks/{scheduler-365PJHNR.js → scheduler-PBB2NSOP.js} +28 -24
  217. package/chunks/{sdk-exporters-http-KHAB5JSD.js → sdk-exporters-http-XVTZQRCE.js} +2 -2
  218. package/chunks/{sdk-impl-KD7FSTC3.js → sdk-impl-7W7AKCS4.js} +7 -3
  219. package/chunks/{send-message-ZM7MRUGP.js → send-message-CAMSLG2L.js} +4 -3
  220. package/chunks/{serve-QD2RNLKJ.js → serve-BWKTRX72.js} +37 -31
  221. package/chunks/{server-XLJVLTYM.js → server-E7CH7WPK.js} +1437 -593
  222. package/chunks/{session-3VTUHH4Q.js → session-QEKSJ6YU.js} +166 -105
  223. package/chunks/{settings-KULVPCQC.js → settings-BRAOSJIM.js} +34 -30
  224. package/chunks/{shell-3SWW22MH.js → shell-OF3CK4AT.js} +28 -24
  225. package/chunks/{skill-KDHWYS7W.js → skill-HLH2NO2H.js} +9 -7
  226. package/chunks/{skill-settings-NMY4JEJC.js → skill-settings-DRPU7YI5.js} +34 -30
  227. package/chunks/{spawnChannel-ZKS4Q5OU.js → spawnChannel-4KO7YTFM.js} +31 -27
  228. package/chunks/{standalone-update-7CXPGAQ4.js → standalone-update-DJN2R3YW.js} +30 -26
  229. package/chunks/{startInteractiveUI-2QQLEKM6.js → startInteractiveUI-O3WQQ2WC.js} +384 -173
  230. package/chunks/{syntheticOutput-ZLCUTKO2.js → syntheticOutput-PEBJQYJV.js} +2 -2
  231. package/chunks/{task-create-CQP5UEA3.js → task-create-5NWCQSJF.js} +5 -4
  232. package/chunks/{task-list-XLEZOJXP.js → task-list-53265TRZ.js} +1 -1
  233. package/chunks/{task-stop-7ZQM5CFF.js → task-stop-FPCOIRYX.js} +1 -1
  234. package/chunks/{task-update-JA75U2SN.js → task-update-5HN577LS.js} +5 -4
  235. package/chunks/{team-create-2WTNGAOX.js → team-create-2E4ACBJD.js} +28 -24
  236. package/chunks/{team-delete-MHY3UZGY.js → team-delete-MMQB4OSC.js} +1 -1
  237. package/chunks/{team-plan-approval-LZTYLEG4.js → team-plan-approval-LWIDXYOA.js} +28 -24
  238. package/chunks/{terminal-image-renderer-R5HHAFJN.js → terminal-image-renderer-PJM7663W.js} +30 -26
  239. package/chunks/{theme-manager-PAUCSJFF.js → theme-manager-FDQTM3RP.js} +28 -24
  240. package/chunks/{todoWrite-UPVOHYGD.js → todoWrite-JGV6VLOX.js} +1 -1
  241. package/chunks/{tool-search-2BFCGLI6.js → tool-search-TL5ZXBF4.js} +11 -8
  242. package/chunks/{total-session-admission-MK4SINFK.js → total-session-admission-LS6EY5KT.js} +37 -32
  243. package/chunks/{trustedFolders-TJ5S26N7.js → trustedFolders-5RWP5OB7.js} +32 -26
  244. package/chunks/{types-ML3TRJQ5.js → types-WYCFCEHR.js} +5 -3
  245. package/chunks/{update-relaunch-N7AYLARF.js → update-relaunch-HWQ4USKY.js} +5 -5
  246. package/chunks/{updateCheck-QRZ3DVT5.js → updateCheck-EZMBTEIR.js} +31 -27
  247. package/chunks/{useAutoAcceptIndicator-DBJ7Y5AF.js → useAutoAcceptIndicator-JDMI627A.js} +37 -33
  248. package/chunks/{validateNonInterActiveAuth-6ZQWUDS3.js → validateNonInterActiveAuth-RRUHC5RO.js} +67 -63
  249. package/chunks/{version-AJQGQWXC.js → version-XS4UTKUX.js} +1 -1
  250. package/chunks/{web-fetch-QWJYRXFL.js → web-fetch-2JV7H6OM.js} +14 -10
  251. package/chunks/{web-search-2AOXJGHU.js → web-search-RCTN2GAM.js} +10 -7
  252. package/chunks/{workflow-ERH3SJG2.js → workflow-6MKLKQ6R.js} +909 -273
  253. package/chunks/{workspace-providers-status-HZ474RA4.js → workspace-providers-status-YZ2IJ4DK.js} +38 -34
  254. package/chunks/{workspace-registration-store-6EUP4JXG.js → workspace-registration-store-IYN72LBS.js} +1 -1
  255. package/chunks/{workspace-registry-R4APRRNC.js → workspace-registry-7LFBZQLT.js} +37 -32
  256. package/chunks/{workspace-service-HFIFDMU7.js → workspace-service-2EHSPRJB.js} +45 -39
  257. package/chunks/{workspace-skills-status-HAHEIHGK.js → workspace-skills-status-5VJ2D5HN.js} +36 -32
  258. package/chunks/{workspace-trust-reconciler-65GTAGDK.js → workspace-trust-reconciler-X2LZ6XCI.js} +44 -39
  259. package/chunks/{write-file-B34CDELV.js → write-file-CJK6SCCF.js} +28 -24
  260. package/chunks/{zh-ARWDLDLR.js → zh-AGL2FVBI.js} +6 -0
  261. package/chunks/{zh-TW-Y4RGI3P7.js → zh-TW-KI66MHQY.js} +6 -0
  262. package/chunks/{zoom-image-HPRBZHSS.js → zoom-image-BVW4RFYW.js} +8 -6
  263. package/cli.js +13 -13
  264. package/locales/ca.js +10 -0
  265. package/locales/de.js +9 -0
  266. package/locales/en.js +10 -0
  267. package/locales/fr.js +9 -0
  268. package/locales/ja.js +9 -0
  269. package/locales/pt.js +9 -0
  270. package/locales/ru.js +9 -0
  271. package/locales/zh-TW.js +10 -0
  272. package/locales/zh.js +10 -0
  273. package/package.json +3 -3
  274. package/web-shell/assets/{arc-Ip-FFDJ0.js → arc-DDtoJrAW.js} +1 -1
  275. package/web-shell/assets/{architectureDiagram-3BPJPVTR-CChqgwIb.js → architectureDiagram-3BPJPVTR-BAInIW4O.js} +1 -1
  276. package/web-shell/assets/{blockDiagram-GPEHLZMM-BHN-Tfss.js → blockDiagram-GPEHLZMM-ChPDk7fP.js} +1 -1
  277. package/web-shell/assets/{c4Diagram-AAUBKEIU-BhyjzDjN.js → c4Diagram-AAUBKEIU-Cd9BJuUy.js} +1 -1
  278. package/web-shell/assets/channel-0OQklTfP.js +1 -0
  279. package/web-shell/assets/{chunk-2J33WTMH-BB9eyHrx.js → chunk-2J33WTMH-COQkLp56.js} +1 -1
  280. package/web-shell/assets/{chunk-4BX2VUAB-BeV7ce_J.js → chunk-4BX2VUAB-GUJshQ_l.js} +1 -1
  281. package/web-shell/assets/{chunk-55IACEB6-DO7kXDiV.js → chunk-55IACEB6-Boaa7c10.js} +1 -1
  282. package/web-shell/assets/{chunk-727SXJPM-B27MPznD.js → chunk-727SXJPM-CcRXaly2.js} +1 -1
  283. package/web-shell/assets/{chunk-AQP2D5EJ-DHIjqjD_.js → chunk-AQP2D5EJ-BY0OARHh.js} +1 -1
  284. package/web-shell/assets/{chunk-FMBD7UC4-DabMqyN2.js → chunk-FMBD7UC4-DLFQfv0S.js} +1 -1
  285. package/web-shell/assets/{chunk-ND2GUHAM-Dw7Nnnxc.js → chunk-ND2GUHAM-C_S0u-D2.js} +1 -1
  286. package/web-shell/assets/{chunk-QZHKN3VN-DdaZew1Q.js → chunk-QZHKN3VN-DP9m64hw.js} +1 -1
  287. package/web-shell/assets/classDiagram-4FO5ZUOK-CZ4-apsu.js +1 -0
  288. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CZ4-apsu.js +1 -0
  289. package/web-shell/assets/{cose-bilkent-S5V4N54A-CgBpCYH5.js → cose-bilkent-S5V4N54A-CGY6zGE1.js} +1 -1
  290. package/web-shell/assets/{dagre-BM42HDAG-BB4IU8G0.js → dagre-BM42HDAG-yB7whKNn.js} +1 -1
  291. package/web-shell/assets/{diagram-2AECGRRQ-BcUTHU37.js → diagram-2AECGRRQ-Bdlc59La.js} +1 -1
  292. package/web-shell/assets/{diagram-5GNKFQAL-B6Lyihyv.js → diagram-5GNKFQAL-BUClP18L.js} +1 -1
  293. package/web-shell/assets/{diagram-KO2AKTUF-CRIJOjpG.js → diagram-KO2AKTUF-aZm08kjn.js} +1 -1
  294. package/web-shell/assets/{diagram-LMA3HP47-DdNiwWWT.js → diagram-LMA3HP47-7DGwEkxC.js} +1 -1
  295. package/web-shell/assets/{diagram-OG6HWLK6-Dz4b32Do.js → diagram-OG6HWLK6-CAGKayxx.js} +1 -1
  296. package/web-shell/assets/{erDiagram-TEJ5UH35-D-8NGw77.js → erDiagram-TEJ5UH35-CptoHHQi.js} +1 -1
  297. package/web-shell/assets/{flowDiagram-I6XJVG4X-Dun26LyM.js → flowDiagram-I6XJVG4X-CNOH0s7Q.js} +1 -1
  298. package/web-shell/assets/{ganttDiagram-6RSMTGT7-F10Hu1Gc.js → ganttDiagram-6RSMTGT7-CCQuCU3y.js} +1 -1
  299. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Bf8Ez6-D.js → gitGraphDiagram-PVQCEYII-B7gv9f4E.js} +1 -1
  300. package/web-shell/assets/{index-BXqw-nGq.js → index-BoUPVvpf.js} +1 -1
  301. package/web-shell/assets/index-D1YQXYsB.css +5 -0
  302. package/web-shell/assets/index-J4N7zCmU.js +1768 -0
  303. package/web-shell/assets/{infoDiagram-5YYISTIA-DVgTMLvj.js → infoDiagram-5YYISTIA-Bb3KYEbR.js} +1 -1
  304. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-uT-KepvK.js → ishikawaDiagram-YF4QCWOH-DWEzbAGi.js} +1 -1
  305. package/web-shell/assets/{journeyDiagram-JHISSGLW-Vg_XadQf.js → journeyDiagram-JHISSGLW-CmxwEqeb.js} +1 -1
  306. package/web-shell/assets/{kanban-definition-UN3LZRKU-Dyv1ESBE.js → kanban-definition-UN3LZRKU-Ci0gDD8O.js} +1 -1
  307. package/web-shell/assets/{linear-BMIepYX3.js → linear-BqxZqGhS.js} +1 -1
  308. package/web-shell/assets/{mermaid.core-zA8pJ9ag.js → mermaid.core-BDAFffHv.js} +5 -5
  309. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BCW_BZ_5.js → mindmap-definition-RKZ34NQL-Btvx-xvS.js} +1 -1
  310. package/web-shell/assets/{pieDiagram-4H26LBE5-DseNEGp2.js → pieDiagram-4H26LBE5-CKAg7yG7.js} +1 -1
  311. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-6Z7wr1Fi.js → quadrantDiagram-W4KKPZXB-DIt8E1mC.js} +1 -1
  312. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CVOlCRPf.js → requirementDiagram-4Y6WPE33-BA7mQWQJ.js} +1 -1
  313. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-CGhgrUJZ.js → sankeyDiagram-5OEKKPKP-D0JppnVU.js} +1 -1
  314. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-dlqmpLuQ.js → sequenceDiagram-3UESZ5HK-29DIQFjB.js} +1 -1
  315. package/web-shell/assets/{stateDiagram-AJRCARHV-B9EW10Xb.js → stateDiagram-AJRCARHV-iiXMdK--.js} +1 -1
  316. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CEGK3l80.js +1 -0
  317. package/web-shell/assets/{timeline-definition-PNZ67QCA-BBRh0mgZ.js → timeline-definition-PNZ67QCA-CeF7ngSW.js} +1 -1
  318. package/web-shell/assets/{vennDiagram-CIIHVFJN-B8Gs-REP.js → vennDiagram-CIIHVFJN-Beilq8D6.js} +1 -1
  319. package/web-shell/assets/{wardley-L42UT6IY-D_y80Ur7.js → wardley-L42UT6IY-DOYjY4zO.js} +1 -1
  320. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-D-CNfHJ-.js → wardleyDiagram-YWT4CUSO-Dtqp8o18.js} +1 -1
  321. package/web-shell/assets/{xychartDiagram-2RQKCTM6-DQ5CvELo.js → xychartDiagram-2RQKCTM6-cdAc0Dfv.js} +1 -1
  322. package/web-shell/index.html +2 -2
  323. package/chunks/chunk-6PEXNQTX.js +0 -68
  324. package/chunks/chunk-IUFV6FYU.js +0 -81
  325. package/chunks/chunk-RXFQM6FQ.js +0 -42
  326. package/web-shell/assets/channel-Cu8qd6OB.js +0 -1
  327. package/web-shell/assets/classDiagram-4FO5ZUOK-BI3KrXhq.js +0 -1
  328. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BI3KrXhq.js +0 -1
  329. package/web-shell/assets/index-QQlUCJGg.css +0 -5
  330. package/web-shell/assets/index-hcgjV7vS.js +0 -1768
  331. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CJTZJJ5X.js +0 -1
  332. package/chunks/{anthropicContentGenerator-DTMVEL5M.js → anthropicContentGenerator-SSFE2753.js} +9 -9
  333. /package/chunks/{chunk-VXZBKKQR.js → chunk-NTTBXH7U.js} +0 -0
  334. /package/chunks/{chunk-GRC5HGPI.js → chunk-OIBUG24X.js} +0 -0
@@ -34,18 +34,24 @@ import {
34
34
  resolveAcpHttpEnabled,
35
35
  setDeferredRuntimeRequestTiming,
36
36
  toDaemonStatusMemoryLimits
37
- } from "./chunk-RGSBTHSU.js";
37
+ } from "./chunk-KMS57JDD.js";
38
38
  import {
39
39
  isLoopbackBind
40
- } from "./chunk-RXFQM6FQ.js";
40
+ } from "./chunk-TQOF5KBL.js";
41
41
  import {
42
42
  formatMemoryBudgetStderr,
43
43
  resolveDaemonMemoryBudget
44
44
  } from "./chunk-HGCQ5SE7.js";
45
+ import {
46
+ resolveSessionRestoreTimeoutMs
47
+ } from "./chunk-4JRM2BSM.js";
45
48
  import {
46
49
  require_express,
47
50
  resolveWebShellDir
48
51
  } from "./chunk-GDXET5XU.js";
52
+ import {
53
+ resolveChannelCwd
54
+ } from "./chunk-67EWJE77.js";
49
55
  import {
50
56
  LIVE_HOST_PROTOCOL_VERSION
51
57
  } from "./chunk-NKLP3DCK.js";
@@ -61,27 +67,25 @@ import "./chunk-K6KS3LTN.js";
61
67
  import "./chunk-FC4KQFCS.js";
62
68
  import "./chunk-T3CHYWJZ.js";
63
69
  import {
64
- resolveChannelCwd
65
- } from "./chunk-VWOVHOTT.js";
66
- import {
70
+ consumeServeFastPathRejectedLoaderKeys,
67
71
  loadServeFastPathSettings,
68
72
  preResolveServeFastPathHomeEnvOverrides
69
- } from "./chunk-D3UEZIQH.js";
73
+ } from "./chunk-ZSNBQXMZ.js";
70
74
  import {
71
75
  MAX_REGISTERED_WORKSPACES,
72
76
  resolveWorkspaceInputs,
73
77
  workspaceRegistrationId
74
- } from "./chunk-P2AJ7FTI.js";
75
- import "./chunk-S7CV4KO6.js";
78
+ } from "./chunk-H4JC7LZX.js";
79
+ import "./chunk-AKJQSWV4.js";
76
80
  import {
77
81
  LOAD_REPLAY_META_KEY
78
- } from "./chunk-R574ATRM.js";
79
- import "./chunk-J26HHFI5.js";
82
+ } from "./chunk-M2PNLYGY.js";
83
+ import "./chunk-LP2QGNSP.js";
80
84
  import {
81
85
  canonicalizeWorkspace,
82
86
  translateAndCheckAbsoluteWorkspacePath
83
87
  } from "./chunk-6PLDPT2C.js";
84
- import "./chunk-MKVZE4ZJ.js";
88
+ import "./chunk-MFDYOYZZ.js";
85
89
  import "./chunk-FYJ7W2PI.js";
86
90
  import {
87
91
  ChannelDeliveryError,
@@ -92,33 +96,39 @@ import {
92
96
  import {
93
97
  normalizeWorkerDiagnostic,
94
98
  sanitizeWorkerDiagnostic
95
- } from "./chunk-24ER7UV4.js";
99
+ } from "./chunk-PBRVUF5B.js";
96
100
  import {
97
101
  channelSelectionNames
98
102
  } from "./chunk-ALMR3E6Q.js";
99
103
  import "./chunk-HIBNSEJE.js";
104
+ import "./chunk-M5GB774H.js";
100
105
  import {
101
106
  EXTERNAL_TOOL_GUARD_REQUIRED_VALUE,
102
107
  EXTERNAL_TOOL_GUARD_TOKEN_ENV,
103
108
  PRIVATE_EXTERNAL_TOOL_GUARD_ENV
104
109
  } from "./chunk-BKHCW2BI.js";
105
- import "./chunk-M5GB774H.js";
106
- import "./chunk-5HBA2Z7V.js";
110
+ import {
111
+ MAX_DAEMON_WORKSPACES
112
+ } from "./chunk-5HBA2Z7V.js";
107
113
  import {
108
114
  sanitizeLogText
109
- } from "./chunk-DIEFUBV6.js";
115
+ } from "./chunk-DX3RGJMS.js";
110
116
  import "./chunk-UDXSXLER.js";
111
117
  import "./chunk-GOXKNSDZ.js";
112
118
  import {
113
119
  getGlobalQwenDirLite,
114
120
  resolveConfigPathLite
115
121
  } from "./chunk-IDS7MSUP.js";
116
- import "./chunk-6PEXNQTX.js";
122
+ import {
123
+ scrubAndReportInheritedLoaderEnv,
124
+ scrubInheritedLoaderEnv,
125
+ setLoaderKeyRejectionReporter
126
+ } from "./chunk-R4ZA6GBK.js";
117
127
  import {
118
128
  getCliVersion
119
- } from "./chunk-FZBZSYKU.js";
129
+ } from "./chunk-ZV7LTLFE.js";
120
130
  import "./chunk-VJNBRRZG.js";
121
- import "./chunk-ALGGS7UH.js";
131
+ import "./chunk-NPQ5ZKRP.js";
122
132
  import {
123
133
  isWithinRoot
124
134
  } from "./chunk-MR3PXB6E.js";
@@ -160,6 +170,46 @@ import * as path from "node:path";
160
170
  import * as os from "node:os";
161
171
  import { monitorEventLoopDelay, performance as performance2 } from "node:perf_hooks";
162
172
 
173
+ // packages/acp-bridge/dist/child-heap-policy.js
174
+ init_esbuild_shims();
175
+
176
+ // packages/acp-bridge/dist/daemon-memory-budget.js
177
+ init_esbuild_shims();
178
+ var MIN_CHILD_HEAP_MB = 512;
179
+
180
+ // packages/acp-bridge/dist/child-heap-policy.js
181
+ function createChildHeapPolicy(options) {
182
+ const { budget, mode } = options;
183
+ let refusals = 0;
184
+ const admissible = Math.min(Math.floor(budget.childPoolMb / MIN_CHILD_HEAP_MB), MAX_DAEMON_WORKSPACES);
185
+ const rawCeilingMb = admissible > 0 ? Math.min(Math.floor(budget.childPoolMb / admissible), budget.legacyChildCeilingMb) : null;
186
+ const modelable = rawCeilingMb !== null && rawCeilingMb >= MIN_CHILD_HEAP_MB;
187
+ const maxConcurrentChildren = modelable ? admissible : 0;
188
+ const perChildCeilingMb = modelable ? rawCeilingMb : null;
189
+ return {
190
+ decide(concurrentChildren) {
191
+ if (mode === "off")
192
+ return { refuse: false };
193
+ const refuse = concurrentChildren > maxConcurrentChildren;
194
+ if (refuse)
195
+ refusals += 1;
196
+ return { refuse };
197
+ },
198
+ snapshot() {
199
+ const modeled = mode !== "off";
200
+ return {
201
+ mode,
202
+ childPoolMb: budget.childPoolMb,
203
+ minChildHeapMb: MIN_CHILD_HEAP_MB,
204
+ maxConcurrentChildren: modeled ? maxConcurrentChildren : null,
205
+ perChildCeilingMb: modeled ? perChildCeilingMb : null,
206
+ refusals
207
+ };
208
+ }
209
+ };
210
+ }
211
+ __name(createChildHeapPolicy, "createChildHeapPolicy");
212
+
163
213
  // packages/core/dist/src/memory/scopes.js
164
214
  init_esbuild_shims();
165
215
  var MEMORY_PROJECT_SCOPES = ["git-root", "workspace"];
@@ -2932,12 +2982,12 @@ var retryableChannelWorkerShutdownErrors = /* @__PURE__ */ new WeakSet();
2932
2982
  var channelWorkerRuntimePromise;
2933
2983
  async function loadChannelWorkerRuntime() {
2934
2984
  channelWorkerRuntimePromise ??= Promise.all([
2935
- import("./channel-worker-supervisor-62YWUGP2.js"),
2936
- import("./pidfile-JOIIRN2C.js"),
2937
- import("./runtime-2FLNNM36.js"),
2985
+ import("./channel-worker-supervisor-IVSDIMI4.js"),
2986
+ import("./pidfile-QJQ65RJ2.js"),
2987
+ import("./runtime-QLRVP6HM.js"),
2938
2988
  import("./cli-entry-path-4VJ3Y6T2.js"),
2939
- import("./channel-worker-group-JWQK224X.js"),
2940
- import("./channel-worker-manager-77E3OXRQ.js")
2989
+ import("./channel-worker-group-MSHT6CWR.js"),
2990
+ import("./channel-worker-manager-XXD3GDSK.js")
2941
2991
  ]).then(
2942
2992
  ([
2943
2993
  supervisor,
@@ -3042,7 +3092,7 @@ function shouldPreheatBridge(deps) {
3042
3092
  __name(shouldPreheatBridge, "shouldPreheatBridge");
3043
3093
  var coreRuntimePromise;
3044
3094
  function loadCoreRuntime() {
3045
- coreRuntimePromise ??= import("./core-runtime-QMJPWHCI.js");
3095
+ coreRuntimePromise ??= import("./core-runtime-FBSP5IIG.js");
3046
3096
  return coreRuntimePromise;
3047
3097
  }
3048
3098
  __name(loadCoreRuntime, "loadCoreRuntime");
@@ -3078,10 +3128,10 @@ __name(resolveDaemonLogBaseDirForRun, "resolveDaemonLogBaseDirForRun");
3078
3128
  var settingsRuntimePromise;
3079
3129
  function loadSettingsRuntimeModules() {
3080
3130
  settingsRuntimePromise ??= Promise.all([
3081
- import("./settings-KULVPCQC.js"),
3082
- import("./environment-GJ2HWJOS.js"),
3083
- import("./loadedSettingsAdapter-QRYRJSWL.js"),
3084
- import("./trustedFolders-TJ5S26N7.js")
3131
+ import("./settings-BRAOSJIM.js"),
3132
+ import("./environment-LRTBTDXH.js"),
3133
+ import("./loadedSettingsAdapter-HNPKQMFA.js"),
3134
+ import("./trustedFolders-5RWP5OB7.js")
3085
3135
  ]).then(([settings, environment, loadedSettingsAdapter, trustedFolders]) => ({
3086
3136
  settings,
3087
3137
  environment,
@@ -3094,8 +3144,8 @@ __name(loadSettingsRuntimeModules, "loadSettingsRuntimeModules");
3094
3144
  var channelWebhookConfigRuntimePromise;
3095
3145
  function loadChannelWebhookConfigRuntime() {
3096
3146
  channelWebhookConfigRuntimePromise ??= Promise.all([
3097
- import("./runtime-2FLNNM36.js"),
3098
- import("./config-utils-K7SCOWHD.js")
3147
+ import("./runtime-QLRVP6HM.js"),
3148
+ import("./config-utils-ULCSRMWD.js")
3099
3149
  ]).then(([channelRuntime, configUtils]) => ({
3100
3150
  loadChannelsConfig: channelRuntime.loadChannelsConfig,
3101
3151
  parseChannelWebhookConfig: configUtils.parseChannelWebhookConfig
@@ -3120,17 +3170,17 @@ async function loadServeRuntimeModules() {
3120
3170
  totalSessionAdmissionModule,
3121
3171
  workspaceRegistryModule
3122
3172
  ] = await Promise.all([
3123
- import("./server-XLJVLTYM.js"),
3124
- import("./bridge-NU6YEEHK.js"),
3125
- import("./spawnChannel-ZKS4Q5OU.js"),
3126
- import("./process-registry-2CHQBXH5.js"),
3127
- import("./workspace-service-HFIFDMU7.js"),
3128
- import("./types-ML3TRJQ5.js"),
3129
- import("./daemon-status-provider-FSWDPE2G.js"),
3130
- import("./workspace-providers-status-HZ474RA4.js"),
3131
- import("./workspace-skills-status-HAHEIHGK.js"),
3132
- import("./total-session-admission-MK4SINFK.js"),
3133
- import("./workspace-registry-R4APRRNC.js")
3173
+ import("./server-E7CH7WPK.js"),
3174
+ import("./bridge-Y32B5S3G.js"),
3175
+ import("./spawnChannel-4KO7YTFM.js"),
3176
+ import("./process-registry-PMJOA5CO.js"),
3177
+ import("./workspace-service-2EHSPRJB.js"),
3178
+ import("./types-WYCFCEHR.js"),
3179
+ import("./daemon-status-provider-WW2AD2T7.js"),
3180
+ import("./workspace-providers-status-YZ2IJ4DK.js"),
3181
+ import("./workspace-skills-status-5VJ2D5HN.js"),
3182
+ import("./total-session-admission-LS6EY5KT.js"),
3183
+ import("./workspace-registry-7LFBZQLT.js")
3134
3184
  ]);
3135
3185
  return {
3136
3186
  createServeApp: serverModule.createServeApp,
@@ -3220,7 +3270,8 @@ function createBootstrapCapabilities(input) {
3220
3270
  limits: {
3221
3271
  maxPendingPromptsPerSession: advertisedMaxPendingPromptsPerSession(
3222
3272
  input.opts.maxPendingPromptsPerSession
3223
- )
3273
+ ),
3274
+ sessionRestoreTimeoutMs: resolveSessionRestoreTimeoutMs(input.opts)
3224
3275
  }
3225
3276
  };
3226
3277
  }
@@ -3515,6 +3566,9 @@ function createBootstrapServeApp(input) {
3515
3566
  channelIdleTimeoutMs: channelIdleTimeoutMs(opts.channelIdleTimeoutMs),
3516
3567
  sessionIdleTimeoutMs: sessionIdleTimeoutMs(opts.sessionIdleTimeoutMs),
3517
3568
  acpConnectionCap: null,
3569
+ // No child-heap policy during bootstrap: it is built with the
3570
+ // runtime, so `enforced` is correctly false and `childHeap` null in
3571
+ // this window even when the flag says `enforce`.
3518
3572
  memory: toDaemonStatusMemoryLimits(opts.daemonMemoryBudget)
3519
3573
  },
3520
3574
  capabilities: {
@@ -3767,6 +3821,7 @@ __name(validateAndCanonicalizeWorkspaceInput, "validateAndCanonicalizeWorkspaceI
3767
3821
  async function runQwenServe(optsIn, deps = {}) {
3768
3822
  let daemonLog;
3769
3823
  let owner = "startup";
3824
+ let restoreScrubbedLoaderEnv;
3770
3825
  try {
3771
3826
  return await runQwenServeImpl(optsIn, deps, {
3772
3827
  initialized: /* @__PURE__ */ __name((logger) => {
@@ -3777,9 +3832,15 @@ async function runQwenServe(optsIn, deps = {}) {
3777
3832
  }, "published"),
3778
3833
  signalOwned: /* @__PURE__ */ __name(() => {
3779
3834
  if (owner === "startup") owner = "signal";
3780
- }, "signalOwned")
3835
+ }, "signalOwned"),
3836
+ scrubApplied: /* @__PURE__ */ __name((restore) => {
3837
+ restoreScrubbedLoaderEnv = restore;
3838
+ }, "scrubApplied")
3781
3839
  });
3782
3840
  } catch (error) {
3841
+ if (daemonLog) {
3842
+ setLoaderKeyRejectionReporter(void 0);
3843
+ }
3783
3844
  if (daemonLog && owner === "startup") {
3784
3845
  const startupLog = daemonLog;
3785
3846
  writeDaemonLifecycleBestEffort(
@@ -3790,6 +3851,7 @@ async function runQwenServe(optsIn, deps = {}) {
3790
3851
  );
3791
3852
  await startupLog.close();
3792
3853
  }
3854
+ restoreScrubbedLoaderEnv?.();
3793
3855
  throw error;
3794
3856
  }
3795
3857
  }
@@ -3815,12 +3877,31 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
3815
3877
  );
3816
3878
  }
3817
3879
  preResolveServeFastPathHomeEnvOverrides();
3818
- const daemonRuntimeBaseEnv = Object.freeze({
3880
+ const launchEnv = { ...process.env };
3881
+ const baseEnv = {
3819
3882
  ...process.env,
3820
3883
  ...optsIn.memoryProjectScope !== void 0 ? {
3821
3884
  QWEN_CODE_MEMORY_PROJECT_SCOPE: optsIn.memoryProjectScope
3822
3885
  } : {}
3823
- });
3886
+ };
3887
+ if (process.env["DEV"] !== "true") {
3888
+ scrubInheritedLoaderEnv(baseEnv);
3889
+ }
3890
+ const daemonRuntimeBaseEnv = Object.freeze(baseEnv);
3891
+ const scrubbedLoaderEnvKeys = scrubAndReportInheritedLoaderEnv(
3892
+ process.env,
3893
+ "qwen serve",
3894
+ "daemon"
3895
+ );
3896
+ const restoreScrubbedLoaderEnv = /* @__PURE__ */ __name(() => {
3897
+ for (const key of scrubbedLoaderEnvKeys) {
3898
+ if (Object.hasOwn(process.env, key)) continue;
3899
+ const value = launchEnv[key];
3900
+ if (value === void 0) continue;
3901
+ process.env[key] = value;
3902
+ }
3903
+ }, "restoreScrubbedLoaderEnv");
3904
+ loggerLifecycle.scrubApplied(restoreScrubbedLoaderEnv);
3824
3905
  const rawToken = optsIn.token ?? process.env[QWEN_SERVER_TOKEN_ENV];
3825
3906
  const token = typeof rawToken === "string" && rawToken.trim().length > 0 ? rawToken.trim() : void 0;
3826
3907
  const channelDeliveryDiagnosticRedaction = {
@@ -4054,7 +4135,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4054
4135
  }
4055
4136
  let workspaceRegistrationStore = deps.workspaceRegistrationStore;
4056
4137
  if (workspaceRegistrationStore === void 0 && process.env["QWEN_SERVE_NO_PERSISTENT_REGISTRATION"] !== "1") {
4057
- const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-6EUP4JXG.js");
4138
+ const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-IYN72LBS.js");
4058
4139
  workspaceRegistrationStore = new WorkspaceRegistrationStore(boundWorkspace);
4059
4140
  }
4060
4141
  if (workspaceRegistrationStore) {
@@ -4153,6 +4234,25 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4153
4234
  baseDir: daemonLogBaseDir
4154
4235
  });
4155
4236
  loggerLifecycle.initialized(daemonLog);
4237
+ setLoaderKeyRejectionReporter((source, freshKeys) => {
4238
+ daemonLog.warn(
4239
+ "rejected loader-affecting env keys; they were not applied",
4240
+ { source, rejectedKeys: freshKeys }
4241
+ );
4242
+ });
4243
+ if (scrubbedLoaderEnvKeys.length > 0) {
4244
+ daemonLog.info(
4245
+ "scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them",
4246
+ { removedKeys: scrubbedLoaderEnvKeys }
4247
+ );
4248
+ }
4249
+ const fastPathRejectedLoaderKeys = consumeServeFastPathRejectedLoaderKeys();
4250
+ if (fastPathRejectedLoaderKeys.length > 0) {
4251
+ daemonLog.info(
4252
+ "rejected loader-affecting env keys during serve fast-path boot; they were not applied to the daemon process",
4253
+ { rejectedKeys: fastPathRejectedLoaderKeys }
4254
+ );
4255
+ }
4156
4256
  let loggerPublished = false;
4157
4257
  let loggerSignalOwned = false;
4158
4258
  writeStderrLine(
@@ -4251,6 +4351,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4251
4351
  }
4252
4352
  assertTimerDelayInRange("initializeTimeoutMs", opts.initializeTimeoutMs);
4253
4353
  }
4354
+ const sessionRestoreTimeoutMs = resolveSessionRestoreTimeoutMs(opts);
4355
+ opts.sessionRestoreTimeoutMs = sessionRestoreTimeoutMs;
4254
4356
  if (opts.permissionResponseTimeoutMs !== void 0) {
4255
4357
  if (!Number.isFinite(opts.permissionResponseTimeoutMs) || !Number.isInteger(opts.permissionResponseTimeoutMs) || opts.permissionResponseTimeoutMs < 0) {
4256
4358
  throw new TypeError(
@@ -4326,6 +4428,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4326
4428
  let runtimeAppForCleanup;
4327
4429
  let bridgeRef = deps.bridge;
4328
4430
  let managedProcessRegistry;
4431
+ let managedChildHeapPolicy;
4329
4432
  const internalRuntimeBridgesForCleanup = [];
4330
4433
  let daemonEventLoopMonitor;
4331
4434
  let daemonMetricsSampler;
@@ -4592,7 +4695,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4592
4695
  loadCoreRuntime(),
4593
4696
  loadSettingsRuntimeModules(),
4594
4697
  cliVersionPromise,
4595
- import("./daemon-trust-policy-P5L5VFAY.js")
4698
+ import("./daemon-trust-policy-E4MAYWPI.js")
4596
4699
  ]);
4597
4700
  cliVersion = resolvedCliVersion;
4598
4701
  settingsRuntime.environment.preResolveHomeEnvOverrides();
@@ -4870,6 +4973,11 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4870
4973
  const runWorkspaceTrustOperation = /* @__PURE__ */ __name((operation) => workspaceTrustOperationGate.runExclusive("runtime-topology", operation), "runWorkspaceTrustOperation");
4871
4974
  const processRegistry = new runtime.ProcessRegistry();
4872
4975
  managedProcessRegistry = processRegistry;
4976
+ const childHeapPolicy = opts.daemonMemoryBudget && !deps.bridge ? createChildHeapPolicy({
4977
+ budget: opts.daemonMemoryBudget,
4978
+ mode: opts.childHeapMode ?? "observe"
4979
+ }) : void 0;
4980
+ managedChildHeapPolicy = childHeapPolicy;
4873
4981
  const fsFactory = runtime.resolveBridgeFsFactory({
4874
4982
  // Secondary roots share a write-capable factory only after their own
4875
4983
  // folder trust check passes; untrusted secondary roots stay outside.
@@ -4893,6 +5001,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4893
5001
  });
4894
5002
  const channelFactory = runtime.createSpawnChannelFactory({
4895
5003
  processRegistry,
5004
+ childHeapPolicy,
4896
5005
  sourceEnv: runtimeEffectiveEnv,
4897
5006
  onDiagnosticLine: diagnosticSink,
4898
5007
  pipeHooks: {
@@ -4958,7 +5067,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4958
5067
  resolveSkillSettings,
4959
5068
  skillSettingStrings,
4960
5069
  updateWorkspaceSkillSettingLists
4961
- } = await import("./skill-settings-NMY4JEJC.js");
5070
+ } = await import("./skill-settings-DRPU7YI5.js");
4962
5071
  const fresh = loadSettingsForPersistence(workspace);
4963
5072
  const normalizedName = skillName.trim().toLowerCase();
4964
5073
  const resolved = resolveSkillSettings(fresh);
@@ -5017,6 +5126,77 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5017
5126
  settingsChanges
5018
5127
  };
5019
5128
  }), "persistDisabledSkillsFn");
5129
+ const persistDisabledSkillsBatchFn = /* @__PURE__ */ __name((workspace, skillNames, enabled, assertGenerationOpen) => withSettingsLock(workspace, async () => {
5130
+ assertGenerationOpen?.();
5131
+ const {
5132
+ resolveSkillSettings,
5133
+ skillSettingStrings,
5134
+ updateWorkspaceSkillSettingLists
5135
+ } = await import("./skill-settings-DRPU7YI5.js");
5136
+ const fresh = loadSettingsForPersistence(workspace);
5137
+ const resolved = resolveSkillSettings(fresh);
5138
+ const initialDisabled = skillSettingStrings(
5139
+ fresh,
5140
+ WORKSPACE_SETTING_SCOPE,
5141
+ "disabled"
5142
+ );
5143
+ const initialEnabled = skillSettingStrings(
5144
+ fresh,
5145
+ WORKSPACE_SETTING_SCOPE,
5146
+ "enabled"
5147
+ );
5148
+ let next = { disabled: initialDisabled, enabled: initialEnabled };
5149
+ const outcomes = [];
5150
+ for (const skillName of skillNames) {
5151
+ const normalizedName = skillName.trim().toLowerCase();
5152
+ const disablement = resolved.disablements.get(normalizedName);
5153
+ if (disablement?.reason === "hard" && disablement.lockedScope) {
5154
+ outcomes.push({
5155
+ skillName,
5156
+ error: new runtime.WorkspaceSkillNotToggleableError(
5157
+ skillName,
5158
+ "locked",
5159
+ disablement.lockedScope
5160
+ )
5161
+ });
5162
+ continue;
5163
+ }
5164
+ const updated = updateWorkspaceSkillSettingLists(
5165
+ next,
5166
+ skillName,
5167
+ enabled,
5168
+ resolved.defaultDisabledNames.has(normalizedName) && !resolved.enabledNames.has(normalizedName)
5169
+ );
5170
+ const changed = JSON.stringify(updated.disabled) !== JSON.stringify(next.disabled) || JSON.stringify(updated.enabled) !== JSON.stringify(next.enabled);
5171
+ next = updated;
5172
+ outcomes.push({ skillName, changed });
5173
+ }
5174
+ const settingsChanges = [];
5175
+ if (JSON.stringify(next.disabled) !== JSON.stringify(initialDisabled)) {
5176
+ settingsChanges.push({
5177
+ key: "skills.disabled",
5178
+ value: next.disabled.length > 0 ? next.disabled : void 0
5179
+ });
5180
+ }
5181
+ if (JSON.stringify(next.enabled) !== JSON.stringify(initialEnabled)) {
5182
+ settingsChanges.push({
5183
+ key: "skills.enabled",
5184
+ value: next.enabled.length > 0 ? next.enabled : void 0
5185
+ });
5186
+ }
5187
+ if (settingsChanges.length > 0) {
5188
+ assertGenerationOpen?.();
5189
+ fresh.setValues(
5190
+ settingsChanges.map((change) => ({
5191
+ scope: WORKSPACE_SETTING_SCOPE,
5192
+ ...change
5193
+ })),
5194
+ void 0,
5195
+ assertGenerationOpen
5196
+ );
5197
+ }
5198
+ return { outcomes, settingsChanges };
5199
+ }), "persistDisabledSkillsBatchFn");
5020
5200
  const persistSettingFn = /* @__PURE__ */ __name((workspace, scope, key, value, assertGenerationOpen) => withSettingsLock(workspace, async () => {
5021
5201
  assertGenerationOpen?.();
5022
5202
  const fresh = loadSettingsForPersistence(workspace);
@@ -5057,7 +5237,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5057
5237
  );
5058
5238
  }
5059
5239
  }), "persistSettingsFn");
5060
- const { createSubSessionLauncher } = await import("./create-sub-session-DJE6XICH.js");
5240
+ const { createSubSessionLauncher } = await import("./create-sub-session-WC7YGVSL.js");
5061
5241
  const subSessionLauncher = createSubSessionLauncher({
5062
5242
  getBridge: /* @__PURE__ */ __name(() => bridgeRef, "getBridge"),
5063
5243
  boundWorkspace,
@@ -5092,6 +5272,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5092
5272
  ...opts.maxJournalBytes !== void 0 ? { maxJournalBytes: opts.maxJournalBytes } : {},
5093
5273
  ...opts.channelIdleTimeoutMs !== void 0 ? { channelIdleTimeoutMs: opts.channelIdleTimeoutMs } : {},
5094
5274
  ...opts.initializeTimeoutMs !== void 0 ? { initializeTimeoutMs: opts.initializeTimeoutMs } : {},
5275
+ sessionRestoreTimeoutMs,
5095
5276
  ...opts.sessionReapIntervalMs !== void 0 ? { sessionReapIntervalMs: opts.sessionReapIntervalMs } : {},
5096
5277
  ...opts.sessionIdleTimeoutMs !== void 0 ? { sessionIdleTimeoutMs: opts.sessionIdleTimeoutMs } : {},
5097
5278
  ...opts.permissionResponseTimeoutMs !== void 0 ? { permissionResponseTimeoutMs: opts.permissionResponseTimeoutMs } : {},
@@ -5106,6 +5287,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5106
5287
  ...permissionConsensusQuorum !== void 0 ? { permissionConsensusQuorum } : {},
5107
5288
  permissionAudit: permissionAuditPublisher,
5108
5289
  statusProvider,
5290
+ delegateReadTextFileToClient: false,
5109
5291
  fileSystem: createBridgeFileSystemAdapter(fsFactory),
5110
5292
  persistApprovalMode: /* @__PURE__ */ __name((workspace, mode) => withSettingsLock(workspace, async () => {
5111
5293
  primaryGenerationGuard.assertOpen();
@@ -5147,6 +5329,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5147
5329
  isChannelLive: /* @__PURE__ */ __name(() => bridge.isChannelLive(), "isChannelLive"),
5148
5330
  persistDisabledTools: persistDisabledToolsFn,
5149
5331
  persistDisabledSkills: persistDisabledSkillsFn,
5332
+ persistDisabledSkillsBatch: persistDisabledSkillsBatchFn,
5150
5333
  persistSetting: persistSettingFn,
5151
5334
  persistSettings: persistSettingsFn,
5152
5335
  preheatAcpChild: /* @__PURE__ */ __name(() => bridge.preheat(), "preheatAcpChild"),
@@ -5346,6 +5529,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5346
5529
  });
5347
5530
  const secondaryChannelFactory = runtime.createSpawnChannelFactory({
5348
5531
  processRegistry,
5532
+ childHeapPolicy,
5349
5533
  sourceEnv: secondaryEnv.effectiveEnv,
5350
5534
  onDiagnosticLine: diagnosticSink,
5351
5535
  pipeHooks: {
@@ -5393,6 +5577,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5393
5577
  ...opts.maxJournalBytes !== void 0 ? { maxJournalBytes: opts.maxJournalBytes } : {},
5394
5578
  ...opts.channelIdleTimeoutMs !== void 0 ? { channelIdleTimeoutMs: opts.channelIdleTimeoutMs } : {},
5395
5579
  ...opts.initializeTimeoutMs !== void 0 ? { initializeTimeoutMs: opts.initializeTimeoutMs } : {},
5580
+ sessionRestoreTimeoutMs,
5396
5581
  ...opts.sessionReapIntervalMs !== void 0 ? { sessionReapIntervalMs: opts.sessionReapIntervalMs } : {},
5397
5582
  ...opts.sessionIdleTimeoutMs !== void 0 ? { sessionIdleTimeoutMs: opts.sessionIdleTimeoutMs } : {},
5398
5583
  ...opts.permissionResponseTimeoutMs !== void 0 ? { permissionResponseTimeoutMs: opts.permissionResponseTimeoutMs } : {},
@@ -5409,6 +5594,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5409
5594
  } : {},
5410
5595
  permissionAudit: permissionAuditPublisher,
5411
5596
  statusProvider: secondaryStatusProvider,
5597
+ delegateReadTextFileToClient: false,
5412
5598
  fileSystem: createBridgeFileSystemAdapter(secondaryBridgeFsFactory),
5413
5599
  persistApprovalMode: /* @__PURE__ */ __name((workspace, mode) => withSettingsLock(workspace, async () => {
5414
5600
  secondaryGenerationGuard.assertOpen();
@@ -5454,6 +5640,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5454
5640
  preheatAcpChild: /* @__PURE__ */ __name(() => secondaryBridge.preheat(), "preheatAcpChild"),
5455
5641
  persistDisabledTools: persistDisabledToolsFn,
5456
5642
  persistDisabledSkills: persistDisabledSkillsFn,
5643
+ persistDisabledSkillsBatch: persistDisabledSkillsBatchFn,
5457
5644
  persistSetting: persistSettingFn,
5458
5645
  persistSettings: persistSettingsFn,
5459
5646
  reloadDaemonEnv: /* @__PURE__ */ __name((workspace, assertGenerationOpen) => withSettingsLock(workspace, async () => {
@@ -5581,11 +5768,14 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5581
5768
  const primaryRuntimeBridge = primaryEntry.state === "active" ? primaryEntry.current?.runtime.bridge : void 0;
5582
5769
  const child = primaryRuntimeBridge?.getChildResourceSnapshot?.();
5583
5770
  if (runtime.getActiveSseCount() > 0 || (acp?.wsStreams ?? 0) > 0) {
5584
- void primaryRuntimeBridge?.refreshChildResource?.().catch((err) => {
5585
- daemonLog.warn(
5586
- `ACP child resource refresh failed: ${err instanceof Error ? err.message : String(err)}`
5587
- );
5588
- });
5771
+ for (const managed of workspaceRegistry.listManaged()) {
5772
+ void managed.bridge.refreshChildResource?.().catch((err) => {
5773
+ daemonLog.warn("ACP child resource refresh failed", {
5774
+ workspaceId: managed.workspaceId,
5775
+ error: err instanceof Error ? err.message : String(err)
5776
+ });
5777
+ });
5778
+ }
5589
5779
  }
5590
5780
  metricsRing.sample(nowMs, {
5591
5781
  cpuPercent,
@@ -5690,6 +5880,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5690
5880
  }) : wsFsFactory;
5691
5881
  const wsChannelFactory = runtime.createSpawnChannelFactory({
5692
5882
  processRegistry,
5883
+ childHeapPolicy,
5693
5884
  sourceEnv: wsEnv.effectiveEnv,
5694
5885
  onDiagnosticLine: diagnosticSink,
5695
5886
  pipeHooks: {
@@ -5748,6 +5939,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5748
5939
  ...opts.maxJournalBytes !== void 0 ? { maxJournalBytes: opts.maxJournalBytes } : {},
5749
5940
  ...opts.channelIdleTimeoutMs !== void 0 ? { channelIdleTimeoutMs: opts.channelIdleTimeoutMs } : {},
5750
5941
  ...opts.initializeTimeoutMs !== void 0 ? { initializeTimeoutMs: opts.initializeTimeoutMs } : {},
5942
+ sessionRestoreTimeoutMs,
5751
5943
  ...opts.sessionReapIntervalMs !== void 0 ? { sessionReapIntervalMs: opts.sessionReapIntervalMs } : {},
5752
5944
  ...opts.sessionIdleTimeoutMs !== void 0 ? { sessionIdleTimeoutMs: opts.sessionIdleTimeoutMs } : {},
5753
5945
  ...opts.permissionResponseTimeoutMs !== void 0 ? { permissionResponseTimeoutMs: opts.permissionResponseTimeoutMs } : {},
@@ -5766,6 +5958,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5766
5958
  statusProvider: runtime.createDaemonStatusProvider({
5767
5959
  env: wsEnv.effectiveEnv
5768
5960
  }),
5961
+ delegateReadTextFileToClient: false,
5769
5962
  fileSystem: createBridgeFileSystemAdapter(wsFsFactory),
5770
5963
  persistApprovalMode: /* @__PURE__ */ __name((workspace, mode) => withSettingsLock(workspace, async () => {
5771
5964
  generationGuard.assertOpen();
@@ -5816,6 +6009,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5816
6009
  preheatAcpChild: /* @__PURE__ */ __name(() => wsBridge.preheat(), "preheatAcpChild"),
5817
6010
  persistDisabledTools: persistDisabledToolsFn,
5818
6011
  persistDisabledSkills: persistDisabledSkillsFn,
6012
+ persistDisabledSkillsBatch: persistDisabledSkillsBatchFn,
5819
6013
  persistSetting: persistSettingFn,
5820
6014
  persistSettings: persistSettingsFn,
5821
6015
  reloadDaemonEnv: /* @__PURE__ */ __name((workspace, assertGenerationOpen) => withSettingsLock(workspace, async () => {
@@ -6195,8 +6389,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6195
6389
  { createChannelManagementService },
6196
6390
  { WorkspaceChannelSettingsStore }
6197
6391
  ] = await Promise.all([
6198
- import("./channel-management-service-FSQ7SHYI.js"),
6199
- import("./channel-settings-store-35VQVUVV.js")
6392
+ import("./channel-management-service-PHELKOW2.js"),
6393
+ import("./channel-settings-store-OW43U6VB.js")
6200
6394
  ]);
6201
6395
  return createChannelManagementService({
6202
6396
  workspaceCwd: targetRuntime.workspaceCwd,
@@ -6251,6 +6445,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6251
6445
  }, "validateWorkspaceRuntimeForPublication");
6252
6446
  const app2 = runtime.createServeApp(opts, () => actualPort, {
6253
6447
  workspaceRegistry,
6448
+ getSessionBridges: /* @__PURE__ */ __name(() => runtimeBridges, "getSessionBridges"),
6254
6449
  createWorkspaceRuntime: createDynamicWorkspaceRuntime,
6255
6450
  ...workspaceTrustHotReloadAvailable ? {
6256
6451
  validateWorkspaceRuntimeForPublication,
@@ -6329,6 +6524,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6329
6524
  }), "getPerfSnapshot"),
6330
6525
  getMetricsSeries: /* @__PURE__ */ __name(() => metricsRing.snapshot(), "getMetricsSeries"),
6331
6526
  getTotalSessionAdmissionSnapshot: totalSessionAdmission.snapshot,
6527
+ getChildHeapPolicySnapshot: /* @__PURE__ */ __name(() => managedChildHeapPolicy?.snapshot(), "getChildHeapPolicySnapshot"),
6332
6528
  recordDaemonRequest: /* @__PURE__ */ __name((durationMs, statusCode) => metricsRing.recordRequest(durationMs, statusCode), "recordDaemonRequest"),
6333
6529
  workspace: workspaceService,
6334
6530
  // Reverse tool channel (#5626): the SAME registry wired into `bridge` above,
@@ -6336,6 +6532,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6336
6532
  clientMcpSenderRegistry,
6337
6533
  persistDisabledTools: persistDisabledToolsFn,
6338
6534
  persistDisabledSkills: persistDisabledSkillsFn,
6535
+ persistDisabledSkillsBatch: persistDisabledSkillsBatchFn,
6339
6536
  persistSetting: persistSettingFn,
6340
6537
  persistSettings: persistSettingsFn,
6341
6538
  sessionArtifactsPersistenceAvailable: sessionArtifactsPersistenceAvailableFromSettings(
@@ -6394,8 +6591,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6394
6591
  { createWorkspaceTrustReconciler },
6395
6592
  { createDaemonTrustPolicyMonitor }
6396
6593
  ] = await Promise.all([
6397
- import("./workspace-trust-reconciler-65GTAGDK.js"),
6398
- import("./daemon-trust-policy-monitor-73JYN6ET.js")
6594
+ import("./workspace-trust-reconciler-X2LZ6XCI.js"),
6595
+ import("./daemon-trust-policy-monitor-XVIDV6T4.js")
6399
6596
  ]);
6400
6597
  const materializationFor = /* @__PURE__ */ __name((entry, snapshot, decision) => {
6401
6598
  const boundWorkspaces2 = entry.primary && decision.targetTrusted ? runtime.resolveBoundWorkspacesFromIdeEnv(
@@ -6610,7 +6807,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6610
6807
  );
6611
6808
  }
6612
6809
  const channelValidationSettingsRuntime = opts.channelSelection ? await loadSettingsRuntimeModules() : void 0;
6613
- const channelValidationTrustPolicy = opts.channelSelection ? await import("./daemon-trust-policy-P5L5VFAY.js") : void 0;
6810
+ const channelValidationTrustPolicy = opts.channelSelection ? await import("./daemon-trust-policy-E4MAYWPI.js") : void 0;
6614
6811
  const channelValidationTrustSnapshot = channelValidationTrustPolicy ? await channelValidationTrustPolicy.readDaemonTrustPolicySnapshot() : void 0;
6615
6812
  const resolveChannelWorkspaceGroupsAtListen = /* @__PURE__ */ __name(() => {
6616
6813
  if (!opts.channelSelection || !channelValidationSettingsRuntime || !channelRuntime) {
@@ -7441,8 +7638,10 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7441
7638
  daemonLog.info("daemon stopped");
7442
7639
  }
7443
7640
  });
7641
+ setLoaderKeyRejectionReporter(void 0);
7444
7642
  await daemonLog.close();
7445
7643
  }
7644
+ restoreScrubbedLoaderEnv();
7446
7645
  if (finalErr) rej(finalErr);
7447
7646
  else res();
7448
7647
  });
@@ -7672,7 +7871,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7672
7871
  server.once("error", (err) => {
7673
7872
  server.close();
7674
7873
  const nextPort = attemptPort + 1;
7675
- if (err.code === "EADDRINUSE" && opts.port !== 0 && nextPort <= 65535 && attempt < MAX_PORT_ATTEMPTS - 1) {
7874
+ if (err.code === "EADDRINUSE" && opts.strictPort !== true && opts.port !== 0 && nextPort <= 65535 && attempt < MAX_PORT_ATTEMPTS - 1) {
7676
7875
  writeStderrLine(
7677
7876
  `qwen serve: port ${attemptPort} is in use, trying ${nextPort}...`
7678
7877
  );
@@ -7708,11 +7907,11 @@ export {
7708
7907
  };
7709
7908
  /**
7710
7909
  * @license
7711
- * Copyright 2025 Qwen Team
7910
+ * Copyright 2026 Qwen Team
7712
7911
  * SPDX-License-Identifier: Apache-2.0
7713
7912
  */
7714
7913
  /**
7715
7914
  * @license
7716
- * Copyright 2026 Qwen Team
7915
+ * Copyright 2025 Qwen Team
7717
7916
  * SPDX-License-Identifier: Apache-2.0
7718
7917
  */