@qwen-code/qwen-code 0.21.12 → 0.21.14-preview.0

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 (353) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +13 -5
  2. package/bundled/qc-helper/docs/features/code-review.md +18 -13
  3. package/bundled/qc-helper/docs/features/commands.md +120 -8
  4. package/bundled/qc-helper/docs/features/sub-agents.md +2 -2
  5. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +1 -1
  6. package/bundled/qc-helper/docs/qwen-serve.md +20 -3
  7. package/bundled/review/SKILL.md +130 -82
  8. package/chunks/{MaxSizedBox-ZSJJ2D5S.js → MaxSizedBox-3PZITE2Y.js} +46 -45
  9. package/chunks/{StandaloneSessionPicker-WHUHQXSA.js → StandaloneSessionPicker-2C34PNGO.js} +68 -67
  10. package/chunks/{acp-startup-profiler-SVPUHLXV.js → acp-startup-profiler-HUYGO57H.js} +2 -2
  11. package/chunks/{acpAgent-7JOAESF5.js → acpAgent-3J4NHAYT.js} +1098 -366
  12. package/chunks/{agent-E6V3VXQR.js → agent-VFX4RPP5.js} +42 -41
  13. package/chunks/agent-headless-6WCF4J6N.js +88 -0
  14. package/chunks/{anthropicContentGenerator-YDT4EOKO.js → anthropicContentGenerator-M7XRJMSK.js} +8 -8
  15. package/chunks/{artifact-tool-4GCQQDZI.js → artifact-tool-GEXTOPVO.js} +2 -2
  16. package/chunks/{askUserQuestion-HZJJLR3Z.js → askUserQuestion-B33XRSB7.js} +2 -2
  17. package/chunks/{bridge-NPBV53UA.js → bridge-XR5ZSR7U.js} +46 -45
  18. package/chunks/{ca-4CQ6MYNQ.js → ca-SLZJD6QH.js} +8 -0
  19. package/chunks/{channel-management-service-OADNGQM3.js → channel-management-service-X6LCQUAD.js} +1 -1
  20. package/chunks/{channel-settings-store-4ODLJ4X2.js → channel-settings-store-Z7BUEUJE.js} +50 -49
  21. package/chunks/{channel-worker-group-IHBIHQ45.js → channel-worker-group-TJ35JDPE.js} +4 -4
  22. package/chunks/{channel-worker-manager-GEHYJ5AE.js → channel-worker-manager-G5LKWGOG.js} +4 -4
  23. package/chunks/{channel-worker-supervisor-ZJIIWM4I.js → channel-worker-supervisor-OEVWBHGT.js} +2 -2
  24. package/chunks/{chunk-47BGDLJG.js → chunk-25GHLMQQ.js} +42 -20
  25. package/chunks/{chunk-2ZWH53I4.js → chunk-2B2BF7P7.js} +3 -3
  26. package/chunks/chunk-2C6HJMG3.js +757 -0
  27. package/chunks/{chunk-WM3LUQLO.js → chunk-2JXDFSVE.js} +6 -6
  28. package/chunks/{chunk-OYWVIXHT.js → chunk-2M55OBEB.js} +1 -1
  29. package/chunks/{chunk-B4VN3VDH.js → chunk-2OA3JMRD.js} +5 -5
  30. package/chunks/{chunk-GZDWTBT3.js → chunk-3EZLLVDF.js} +2 -2
  31. package/chunks/chunk-3PWCMXIR.js +9169 -0
  32. package/chunks/{chunk-XAFIL4BD.js → chunk-4KQ2TI2K.js} +5 -5
  33. package/chunks/{chunk-OPVF453Q.js → chunk-4V4DFJBS.js} +3 -3
  34. package/chunks/{chunk-DPTMKFIH.js → chunk-4ZMS3JCR.js} +43 -12
  35. package/chunks/{chunk-6JEIRPLN.js → chunk-55PIFSP2.js} +2 -2
  36. package/chunks/{chunk-V6OBVAST.js → chunk-57KOJ2KZ.js} +1 -1
  37. package/chunks/{chunk-QLTATTPS.js → chunk-5CVO7YES.js} +1 -1
  38. package/chunks/{chunk-OK47XBYH.js → chunk-5IYS4WWR.js} +1 -1
  39. package/chunks/chunk-5MK45KZ3.js +492 -0
  40. package/chunks/{chunk-OWXFBIB6.js → chunk-6DFPR7CS.js} +1 -1
  41. package/chunks/{chunk-YIGGWOJE.js → chunk-6HY6IF3Z.js} +1 -1
  42. package/chunks/{chunk-XDRXOSAD.js → chunk-6LAPGPVA.js} +7 -5
  43. package/chunks/{chunk-Q4ZPYNIZ.js → chunk-6PDOHRN6.js} +4 -4
  44. package/chunks/{chunk-OWGRUU7F.js → chunk-6QFDQMQX.js} +1 -1
  45. package/chunks/{chunk-MUNA4QDC.js → chunk-6VDPDHIP.js} +29 -8
  46. package/chunks/{chunk-MDNUCDKZ.js → chunk-73G3Z7QS.js} +3 -3
  47. package/chunks/{chunk-VIFA5VJD.js → chunk-7OCSX7FC.js} +1 -1
  48. package/chunks/{chunk-D2RNVVH6.js → chunk-AKBOLMUF.js} +96 -18
  49. package/chunks/{chunk-S6TCTH4Z.js → chunk-AQBHJ2IG.js} +12 -12
  50. package/chunks/{chunk-WCEI6J56.js → chunk-BOJNAPUE.js} +2 -2
  51. package/chunks/{chunk-DAV4QFD5.js → chunk-BQWNIPTE.js} +44 -3
  52. package/chunks/{chunk-HOSVOUDK.js → chunk-BUQDLC2G.js} +3 -0
  53. package/chunks/{chunk-LUISTZXI.js → chunk-CH5OFRV7.js} +2 -2
  54. package/chunks/{chunk-G6MUFRNI.js → chunk-CHHABXPE.js} +1 -1
  55. package/chunks/{chunk-4AOVQPJU.js → chunk-CPHEPGAO.js} +1 -1
  56. package/chunks/{chunk-MS7GNABG.js → chunk-CXJHQVEK.js} +8 -0
  57. package/chunks/{chunk-K5IDV3PC.js → chunk-D34RDOLP.js} +12 -2
  58. package/chunks/{chunk-3GM5DLBI.js → chunk-DGJ7O55J.js} +3 -3
  59. package/chunks/{chunk-7KJPO7YH.js → chunk-DRKYT2TR.js} +2 -2
  60. package/chunks/{chunk-PZW46OTB.js → chunk-DVR7XKO5.js} +2 -2
  61. package/chunks/{chunk-CQ6IPDQW.js → chunk-DZCV3ZYU.js} +3 -3
  62. package/chunks/{chunk-ULNWG62W.js → chunk-E3DYKPYZ.js} +3 -3
  63. package/chunks/{chunk-YCHNAKC5.js → chunk-E5RS7LF4.js} +44 -13
  64. package/chunks/{chunk-4NFY2S7N.js → chunk-E7REAOTN.js} +15 -0
  65. package/chunks/chunk-EOCQCNV4.js +3887 -0
  66. package/chunks/{chunk-D7QGE3RT.js → chunk-FAAUPSY2.js} +1 -1
  67. package/chunks/{chunk-2IVYL3IF.js → chunk-FCTLOVYW.js} +1 -1
  68. package/chunks/{chunk-QPBFRWCP.js → chunk-FS5NGKWC.js} +3 -3
  69. package/chunks/{chunk-RQJA2YYO.js → chunk-G6FFFICU.js} +4 -4
  70. package/chunks/{chunk-36XKGB7E.js → chunk-GV3OIADZ.js} +3 -3
  71. package/chunks/{chunk-3AEKDXKT.js → chunk-H4A72DE5.js} +1 -1
  72. package/chunks/{chunk-IH4Z54RJ.js → chunk-HGPMOXLZ.js} +5 -5
  73. package/chunks/{chunk-DG4IQ6JG.js → chunk-I3N2Z25H.js} +3 -3
  74. package/chunks/{chunk-WI6GIM2M.js → chunk-I7NTHW4C.js} +2 -2
  75. package/chunks/{chunk-ZBB5EZZV.js → chunk-IA2K2HJE.js} +2 -2
  76. package/chunks/{chunk-IRSLAS4M.js → chunk-IOTPI425.js} +19 -11
  77. package/chunks/{chunk-ROIJYS5K.js → chunk-ISRHAMNL.js} +3 -3
  78. package/chunks/{chunk-CGM3E75C.js → chunk-J63PKMYA.js} +3 -3
  79. package/chunks/{chunk-PTSEETCO.js → chunk-J6YS7Z25.js} +107 -13
  80. package/chunks/{chunk-ZQUY3ZJU.js → chunk-K3CECR5C.js} +4 -4
  81. package/chunks/{chunk-QBJYSIQ4.js → chunk-K3LPAED5.js} +53 -12
  82. package/chunks/{chunk-FRHQQC2Z.js → chunk-KBXKR5R2.js} +1 -1
  83. package/chunks/{chunk-4KM2SYK5.js → chunk-KC4WMLZO.js} +1491 -10579
  84. package/chunks/{chunk-IX4PWUDU.js → chunk-KSGWAYNE.js} +14350 -8679
  85. package/chunks/{chunk-CPFFU46D.js → chunk-KV27IEHM.js} +1 -1
  86. package/chunks/{chunk-OR64CU46.js → chunk-L6CCLB3G.js} +1 -1
  87. package/chunks/{chunk-M6NDLY2T.js → chunk-LD5VIJ7S.js} +1 -1
  88. package/chunks/{chunk-GXTMEATA.js → chunk-LLR424CQ.js} +18 -15
  89. package/chunks/{chunk-RDVNSJQU.js → chunk-LRDB2OLB.js} +3 -3
  90. package/chunks/{chunk-LSRI3ND3.js → chunk-MA2HEDVP.js} +1 -1
  91. package/chunks/{chunk-DFVXU5YM.js → chunk-MCG53LWC.js} +1 -1
  92. package/chunks/{chunk-YBVVOSOH.js → chunk-MIPFDQAF.js} +1 -1
  93. package/chunks/{chunk-KRXPRVGL.js → chunk-MLXTMF7H.js} +0 -1
  94. package/chunks/{chunk-BSR5AXZR.js → chunk-NRPXRNN4.js} +1 -1
  95. package/chunks/{chunk-X5SLJOMF.js → chunk-NV6LW6FT.js} +4 -4
  96. package/chunks/{chunk-YILJKX2T.js → chunk-NVRMCWTP.js} +10 -6
  97. package/chunks/chunk-NYWWQ437.js +24 -0
  98. package/chunks/{chunk-AKBFSOC5.js → chunk-OBJYN4MX.js} +2 -2
  99. package/chunks/{chunk-NX4A23LY.js → chunk-OJOP26ET.js} +3 -3
  100. package/chunks/{chunk-3GDBZJD6.js → chunk-OLZSWUZR.js} +7 -7
  101. package/chunks/{chunk-K34GJQOZ.js → chunk-OO4FKHLO.js} +4 -4
  102. package/chunks/{chunk-BSSLSQEW.js → chunk-OSAFWBNR.js} +3 -3
  103. package/chunks/{chunk-TMFWI4RC.js → chunk-OVY67CYC.js} +1 -1
  104. package/chunks/{chunk-6ZKSO6K7.js → chunk-P425IVUK.js} +7 -7
  105. package/chunks/{chunk-4XA4QIUA.js → chunk-PMS7O6SA.js} +1 -1
  106. package/chunks/{chunk-LCX5B364.js → chunk-PPTM4O4R.js} +3 -3
  107. package/chunks/{chunk-VPV7WBVT.js → chunk-PT4I7NBA.js} +1 -1
  108. package/chunks/{chunk-3LDGOQXZ.js → chunk-QECSDJET.js} +6 -6
  109. package/chunks/{chunk-FMIH5KMQ.js → chunk-QEJZUXSK.js} +1 -1
  110. package/chunks/{chunk-NLFLYSS4.js → chunk-QFJ5JHQR.js} +1 -1
  111. package/chunks/{chunk-KWX56CHZ.js → chunk-QIHHJKXT.js} +7 -7
  112. package/chunks/{chunk-TDESMS7M.js → chunk-RAQBBGS6.js} +50 -70
  113. package/chunks/{chunk-KEC5FHLM.js → chunk-ROIYNTHJ.js} +3 -3
  114. package/chunks/{chunk-63FNZTWG.js → chunk-RWDNJBWN.js} +2 -2
  115. package/chunks/{chunk-56HVDG3M.js → chunk-RXHBTKMG.js} +6 -6
  116. package/chunks/{chunk-MAKIANMX.js → chunk-S6CXQKDD.js} +3 -3
  117. package/chunks/{chunk-CIDQISGM.js → chunk-SA7GBPEA.js} +5 -5
  118. package/chunks/{chunk-YX2RDGAL.js → chunk-SBRIBTYN.js} +1 -1
  119. package/chunks/{chunk-TTRH3RTQ.js → chunk-SG7ZP5PG.js} +4 -4
  120. package/chunks/{chunk-XH3KAV2G.js → chunk-SGLPDKRT.js} +3 -3
  121. package/chunks/{chunk-JRIVMPD2.js → chunk-SLILKYV2.js} +4 -4
  122. package/chunks/{chunk-NW2GIPG3.js → chunk-SNQZZ765.js} +2 -2
  123. package/chunks/{chunk-I7BT2MME.js → chunk-SR2LYSMT.js} +1 -1
  124. package/chunks/{chunk-TXP5NGG3.js → chunk-SXCOEJO4.js} +1 -1
  125. package/chunks/{chunk-MELQSJOU.js → chunk-TNPWODIZ.js} +1 -1
  126. package/chunks/{chunk-VLHR7F4E.js → chunk-U6RZRKNM.js} +247 -198
  127. package/chunks/{chunk-HTYND72J.js → chunk-UC67T4SF.js} +3 -1
  128. package/chunks/{chunk-HG3UBTJ4.js → chunk-UYDGFWIJ.js} +609 -23
  129. package/chunks/{chunk-6P5EXEBL.js → chunk-VGAAAMRD.js} +1126 -232
  130. package/chunks/{chunk-WDVDVWJ3.js → chunk-VHPMDDPT.js} +6 -6
  131. package/chunks/{chunk-H7TMVHKE.js → chunk-WGHHA7ZH.js} +1 -1
  132. package/chunks/{chunk-FQDCO3CJ.js → chunk-WP4WIUOJ.js} +7 -0
  133. package/chunks/{chunk-5RUCD4ED.js → chunk-WPVUOVYX.js} +3 -3
  134. package/chunks/{chunk-EJOGLSNJ.js → chunk-WSSH2BNO.js} +2 -2
  135. package/chunks/{chunk-5AFGJNY6.js → chunk-WVIABDXV.js} +4 -4
  136. package/chunks/chunk-WZAD4ZNJ.js +59 -0
  137. package/chunks/{chunk-62X3CM7Q.js → chunk-X3YA3YGG.js} +8 -5
  138. package/chunks/{chunk-EBPLKY6U.js → chunk-XC377TLN.js} +5483 -3168
  139. package/chunks/{chunk-KLOMACIR.js → chunk-XLLKYULU.js} +2 -2
  140. package/chunks/{chunk-QSD4UH74.js → chunk-XO24LIZC.js} +254 -56
  141. package/chunks/{chunk-N4SVADAV.js → chunk-XT4RKHVE.js} +5 -4
  142. package/chunks/{chunk-PVXEJB66.js → chunk-XUJNK7Y6.js} +1 -1
  143. package/chunks/{chunk-YBHUXEC6.js → chunk-YECDICIO.js} +3 -3
  144. package/chunks/{chunk-FA5K6YI2.js → chunk-YFPZ3NNC.js} +36 -4
  145. package/chunks/{chunk-46UV252V.js → chunk-YHC2EYYG.js} +35 -38
  146. package/chunks/{chunk-6SPD4Z7F.js → chunk-YIWH3MKK.js} +8 -3
  147. package/chunks/{chunk-ZMY2P4L3.js → chunk-YXC7JYUI.js} +4 -4
  148. package/chunks/{chunk-TB4YFWXG.js → chunk-YZHRN3CF.js} +2 -2
  149. package/chunks/{chunk-TQDFSQQF.js → chunk-YZOSNW4R.js} +1 -1
  150. package/chunks/{chunk-DD6O3ZRD.js → chunk-ZIGC3MUS.js} +3 -5
  151. package/chunks/{chunk-CZ4OWGQQ.js → chunk-ZXEAEZFN.js} +63 -19
  152. package/chunks/{computer-use-F4URV4TU.js → computer-use-ABECHPS5.js} +42 -41
  153. package/chunks/{config-utils-Z3OW3IQG.js → config-utils-NJQA5YLJ.js} +2 -2
  154. package/chunks/{contextCommand-IGSS2U5J.js → contextCommand-4CD5HZQQ.js} +44 -43
  155. package/chunks/{core-runtime-H5CZDN3A.js → core-runtime-2MOVQ4VX.js} +42 -41
  156. package/chunks/{create-sub-session-XT6DLYOE.js → create-sub-session-KRQULJE6.js} +2 -2
  157. package/chunks/{create-sub-session-PA7MFTHK.js → create-sub-session-L6NNHG5N.js} +46 -44
  158. package/chunks/{cron-create-2JZ2TWTF.js → cron-create-NFRZEOQX.js} +4 -4
  159. package/chunks/{cron-delete-CTPD2P26.js → cron-delete-GFVSVO7C.js} +4 -4
  160. package/chunks/{cron-list-V44KHAF6.js → cron-list-NRW34CLU.js} +4 -4
  161. package/chunks/{daemon-GED37WOX.js → daemon-XH76IXOC.js} +436 -29
  162. package/chunks/{daemon-git-worktree-guard-LZDCNJGV.js → daemon-git-worktree-guard-BLXFEG4Q.js} +44 -43
  163. package/chunks/daemon-status-provider-XGD3TPTO.js +103 -0
  164. package/chunks/daemon-trust-policy-THEGCWPO.js +100 -0
  165. package/chunks/{daemon-trust-policy-monitor-2K2YETMT.js → daemon-trust-policy-monitor-L7L4ACWQ.js} +49 -48
  166. package/chunks/{de-UBEBKG6V.js → de-AH4LGCF5.js} +8 -0
  167. package/chunks/{deferred-core-runtime-FKJ3OYE7.js → deferred-core-runtime-YQLHDUGE.js} +42 -41
  168. package/chunks/discovery-X2NV535U.js +27 -0
  169. package/chunks/{display-image-M2ELAVN4.js → display-image-ON3EYFRD.js} +4 -4
  170. package/chunks/{dist-WJ4BHIEW.js → dist-ESS34DHC.js} +72 -0
  171. package/chunks/{earlyInputCapture-WJBSJQUF.js → earlyInputCapture-PCTXNW7N.js} +43 -42
  172. package/chunks/{edit-X73LA4YO.js → edit-QX2EGWYW.js} +45 -43
  173. package/chunks/{en-X6YV7GME.js → en-MD3GP5YL.js} +8 -0
  174. package/chunks/{enter-worktree-CLRQTIVN.js → enter-worktree-EM3ZZ2SB.js} +42 -41
  175. package/chunks/{enterPlanMode-6BDYUQ5T.js → enterPlanMode-ESCMVAKB.js} +42 -41
  176. package/chunks/{environment-WOAJXJDJ.js → environment-TOJI56YV.js} +45 -44
  177. package/chunks/{errors-7OY5MXYY.js → errors-DZ5FWWEM.js} +44 -43
  178. package/chunks/{exit-worktree-TFFJXCRT.js → exit-worktree-KUIJ36XA.js} +42 -41
  179. package/chunks/exitPlanMode-NFVY54FV.js +86 -0
  180. package/chunks/{fast-path-QQLGC37M.js → fast-path-JLQXJSH6.js} +3 -3
  181. package/chunks/{fast-path-settings-LNOFM2YP.js → fast-path-settings-WHX3J3ZI.js} +2 -2
  182. package/chunks/{fr-VENTC2BS.js → fr-ZEML2JWS.js} +8 -0
  183. package/chunks/{gemini-VHE62IJL.js → gemini-I7OT4FWL.js} +92 -91
  184. package/chunks/{geminiContentGenerator-VSHIEGAQ.js → geminiContentGenerator-GRIS77NJ.js} +6 -6
  185. package/chunks/{glob-VMEEDDLO.js → glob-7TBUUV6R.js} +42 -41
  186. package/chunks/{goal-tools-M4UDAZXP.js → goal-tools-K5OHOJ6B.js} +56 -12
  187. package/chunks/{grep-F4UAR7KX.js → grep-743SYWCZ.js} +42 -41
  188. package/chunks/handleAutoUpdate-GAOYUYOD.js +95 -0
  189. package/chunks/{i18n-ETW24DHW.js → i18n-2ITURYX6.js} +43 -42
  190. package/chunks/{image-gen-YPK2AZT4.js → image-gen-4OIWDZD6.js} +10 -10
  191. package/chunks/initializer-OC7LWA6X.js +101 -0
  192. package/chunks/{installationInfo-P7OTIR4P.js → installationInfo-CO47QX3Q.js} +43 -42
  193. package/chunks/{ja-QHT4EQTO.js → ja-UM5B2HMD.js} +8 -0
  194. package/chunks/{keychain-token-storage-NKKCUHI2.js → keychain-token-storage-3XFJ5ZB2.js} +2 -2
  195. package/chunks/list-ATR2SFWT.js +104 -0
  196. package/chunks/{list-agents-O6WSY4CT.js → list-agents-OSVDFI6S.js} +2 -2
  197. package/chunks/loadedSettingsAdapter-NK4B7AGK.js +98 -0
  198. package/chunks/{loggingContentGenerator-J2J2AANS.js → loggingContentGenerator-3WXBU5TQ.js} +67 -41
  199. package/chunks/{loop-wakeup-GVQRMUKS.js → loop-wakeup-HWVUU5CF.js} +5 -5
  200. package/chunks/{ls-6W2D7TKU.js → ls-D3HUFHDP.js} +4 -4
  201. package/chunks/{lsp-NJ4KFBI2.js → lsp-3QDDJTCS.js} +2 -2
  202. package/chunks/{managed-npm-update-WMV5ITKU.js → managed-npm-update-4SSBWI2D.js} +43 -42
  203. package/chunks/mcp-C62AE2QI.js +98 -0
  204. package/chunks/{monitor-2MM23VDV.js → monitor-FEYEGASA.js} +42 -41
  205. package/chunks/nonInteractiveCli-AJEV5ZWO.js +165 -0
  206. package/chunks/{notebook-edit-QD4TRKLY.js → notebook-edit-SLLTEY4O.js} +46 -44
  207. package/chunks/{openaiContentGenerator-KLHSPVN2.js → openaiContentGenerator-WLUGIAPX.js} +27 -26
  208. package/chunks/{pidfile-RQGZBNXT.js → pidfile-TV2VWUMB.js} +43 -42
  209. package/chunks/{processUtils-HZZDA2VV.js → processUtils-3IN2ZR55.js} +2 -2
  210. package/chunks/proper-lockfile-3LHWIM44.js +8 -0
  211. package/chunks/{pt-VL3I5RNY.js → pt-5BMJ3XYH.js} +8 -0
  212. package/chunks/{qwenContentGenerator-T75M2Z3B.js → qwenContentGenerator-GSGRFPJE.js} +47 -46
  213. package/chunks/{qwenOAuth2-5QZU444W.js → qwenOAuth2-JLSTIS4Z.js} +9 -9
  214. package/chunks/{read-file-LOVUSBJC.js → read-file-6PZZRGZZ.js} +15 -13
  215. package/chunks/{read-mcp-resource-GWCP23WG.js → read-mcp-resource-XD54ZQMC.js} +2 -2
  216. package/chunks/{record-artifact-IYQDEYMV.js → record-artifact-GLU3UWBV.js} +5 -3
  217. package/chunks/{resumeHistoryUtils-LVKSSQII.js → resumeHistoryUtils-5GEWKOOO.js} +49 -48
  218. package/chunks/ripGrep-FX7GBGFN.js +86 -0
  219. package/chunks/{ru-4RCKL4PY.js → ru-6GL66ORV.js} +8 -0
  220. package/chunks/{run-qwen-serve-GZW7B4WK.js → run-qwen-serve-7RHU3NSV.js} +423 -212
  221. package/chunks/{runtime-MYRXEO2E.js → runtime-EPOXAMLP.js} +52 -51
  222. package/chunks/{scheduler-DPTPI6FW.js → scheduler-F4Y7ENVV.js} +44 -43
  223. package/chunks/{sdk-exporters-http-NHBYB5FZ.js → sdk-exporters-http-NC746HLT.js} +3 -3
  224. package/chunks/{sdk-impl-SK4P5WON.js → sdk-impl-YVL7BP6Y.js} +3 -3
  225. package/chunks/{send-message-O7FO63UK.js → send-message-TNBG5EVA.js} +7 -7
  226. package/chunks/{serve-XCG4XCDA.js → serve-LQV4TN5A.js} +49 -50
  227. package/chunks/{server-AWQHKXLG.js → server-IZCKLIYQ.js} +5042 -1725
  228. package/chunks/{session-P5FKNCNR.js → session-52ZGTDVB.js} +87 -85
  229. package/chunks/{settings-CSYVIP2R.js → settings-WCVB34HW.js} +48 -47
  230. package/chunks/{shell-EGTSUO2P.js → shell-33BIUBLH.js} +42 -41
  231. package/chunks/{skill-IFUD72GF.js → skill-IYVQ2QNK.js} +20 -18
  232. package/chunks/{skill-settings-YOE7LBHE.js → skill-settings-YG4ZS4OZ.js} +48 -47
  233. package/chunks/{spawnChannel-PQSZIOLY.js → spawnChannel-BLA4YT4W.js} +44 -43
  234. package/chunks/{standalone-update-RB2EGUSF.js → standalone-update-ALRIPWSM.js} +44 -43
  235. package/chunks/{startInteractiveUI-KMYUJ2MU.js → startInteractiveUI-PISBXWKA.js} +614 -294
  236. package/chunks/{syntheticOutput-DVHJMUGV.js → syntheticOutput-7GWFIDXT.js} +3 -3
  237. package/chunks/{task-create-4NC7PDI4.js → task-create-EILHJJB7.js} +11 -11
  238. package/chunks/{task-list-LBSRMOC7.js → task-list-WGJR6YL5.js} +21 -7
  239. package/chunks/{task-stop-YFNATTIM.js → task-stop-X37KYTKB.js} +2 -2
  240. package/chunks/{task-update-BPLM52GD.js → task-update-XZAHVXJ5.js} +86 -15
  241. package/chunks/{team-create-B6A6MJBT.js → team-create-CIQDCC6A.js} +43 -43
  242. package/chunks/{team-delete-MKYMYBFM.js → team-delete-UEP4QOOT.js} +6 -6
  243. package/chunks/{team-plan-approval-5WO3CXXU.js → team-plan-approval-664XCRB4.js} +42 -41
  244. package/chunks/{terminal-image-renderer-BTRE2GEU.js → terminal-image-renderer-TEBO6ONY.js} +44 -43
  245. package/chunks/theme-manager-3CIFH2JV.js +90 -0
  246. package/chunks/{todoWrite-K5K7NRE5.js → todoWrite-ATS62CAP.js} +4 -4
  247. package/chunks/{tool-search-QNBLXUGR.js → tool-search-IJX5JHJB.js} +19 -17
  248. package/chunks/{total-session-admission-N4E5SFBO.js → total-session-admission-XBK2NVRV.js} +46 -45
  249. package/chunks/{trustedFolders-MQS46LIU.js → trustedFolders-OOFNLRWK.js} +43 -42
  250. package/chunks/{update-relaunch-536KRL33.js → update-relaunch-EIG7EYAQ.js} +5 -5
  251. package/chunks/{updateCheck-QJI2SYWF.js → updateCheck-KYDCBLSF.js} +46 -45
  252. package/chunks/{useAutoAcceptIndicator-7QASHD46.js → useAutoAcceptIndicator-RFX3KNBN.js} +52 -51
  253. package/chunks/{validateNonInterActiveAuth-ZNRGWBLV.js → validateNonInterActiveAuth-MZXSAITU.js} +83 -81
  254. package/chunks/{version-DBEQAFRW.js → version-PJC6ZNXV.js} +1 -1
  255. package/chunks/{web-fetch-MBIVXKPE.js → web-fetch-XXICVGKQ.js} +21 -18
  256. package/chunks/{web-search-4LBIN6VF.js → web-search-LHPM6QWC.js} +9 -9
  257. package/chunks/{workflow-LNMA55HY.js → workflow-4CUO2BV7.js} +159 -57
  258. package/chunks/workspace-providers-status-G4MUGH3X.js +101 -0
  259. package/chunks/{workspace-registration-store-BGRKKIYR.js → workspace-registration-store-QMDMFWBE.js} +2 -2
  260. package/chunks/{workspace-registry-L4NCJ34K.js → workspace-registry-FKBB4MZK.js} +48 -46
  261. package/chunks/{workspace-service-LOXYKYTR.js → workspace-service-TIDTTA65.js} +55 -54
  262. package/chunks/workspace-skills-status-LBC2TZKM.js +101 -0
  263. package/chunks/{workspace-trust-reconciler-H36TCR2S.js → workspace-trust-reconciler-4KJ567XP.js} +58 -56
  264. package/chunks/{write-file-JJAY7JSP.js → write-file-R6LAEER5.js} +42 -41
  265. package/chunks/{zh-TW-SQ4HTSCW.js → zh-TW-LVLBK4KF.js} +8 -0
  266. package/chunks/{zh-LMSTK4WD.js → zh-UBMWS2BJ.js} +8 -0
  267. package/chunks/{zoom-image-4MVVVM7E.js → zoom-image-XLCK6DDK.js} +20 -17
  268. package/cli.js +13 -13
  269. package/locales/ca.js +13 -0
  270. package/locales/de.js +12 -0
  271. package/locales/en.js +11 -0
  272. package/locales/fr.js +13 -0
  273. package/locales/ja.js +13 -0
  274. package/locales/pt.js +12 -0
  275. package/locales/ru.js +12 -0
  276. package/locales/zh-TW.js +11 -0
  277. package/locales/zh.js +11 -0
  278. package/package.json +3 -3
  279. package/web-shell/assets/{arc-B-89zHN4.js → arc-DItbX0DI.js} +1 -1
  280. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BkcOncHk.js → architectureDiagram-3BPJPVTR-CmnIlH8y.js} +1 -1
  281. package/web-shell/assets/{blockDiagram-GPEHLZMM-DQ4yboaF.js → blockDiagram-GPEHLZMM-pObnB9kw.js} +1 -1
  282. package/web-shell/assets/{c4Diagram-AAUBKEIU-C_8ZjPDI.js → c4Diagram-AAUBKEIU-BNBmMS0Y.js} +1 -1
  283. package/web-shell/assets/channel-hZnMfWA9.js +1 -0
  284. package/web-shell/assets/{chunk-2J33WTMH-naKVe1Bm.js → chunk-2J33WTMH-Dz4JBOO6.js} +1 -1
  285. package/web-shell/assets/{chunk-4BX2VUAB-DdoViKT2.js → chunk-4BX2VUAB-Cz2GnvAR.js} +1 -1
  286. package/web-shell/assets/{chunk-55IACEB6-DUDQZEwU.js → chunk-55IACEB6-CC6kOQYx.js} +1 -1
  287. package/web-shell/assets/{chunk-727SXJPM-BqpDTR5s.js → chunk-727SXJPM-Z4lY4gbh.js} +1 -1
  288. package/web-shell/assets/{chunk-AQP2D5EJ-CdmEknkT.js → chunk-AQP2D5EJ-Yz0hZr3D.js} +1 -1
  289. package/web-shell/assets/{chunk-FMBD7UC4-CH7fFTLB.js → chunk-FMBD7UC4-nKmTWTv9.js} +1 -1
  290. package/web-shell/assets/{chunk-ND2GUHAM-ObgSuFKF.js → chunk-ND2GUHAM-CjZz0f6Y.js} +1 -1
  291. package/web-shell/assets/{chunk-QZHKN3VN-D9fKdv_s.js → chunk-QZHKN3VN-Bab3FpuS.js} +1 -1
  292. package/web-shell/assets/classDiagram-4FO5ZUOK-BRnxm8DX.js +1 -0
  293. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BRnxm8DX.js +1 -0
  294. package/web-shell/assets/{cose-bilkent-S5V4N54A-CvzATMx9.js → cose-bilkent-S5V4N54A-BuSAGFox.js} +1 -1
  295. package/web-shell/assets/{dagre-BM42HDAG-M_xU21QW.js → dagre-BM42HDAG-CRZXTg3g.js} +1 -1
  296. package/web-shell/assets/{diagram-2AECGRRQ-CNrl9sW1.js → diagram-2AECGRRQ-BFx1Ayrz.js} +1 -1
  297. package/web-shell/assets/{diagram-5GNKFQAL-CUweVT6T.js → diagram-5GNKFQAL-B2hMZ3gS.js} +1 -1
  298. package/web-shell/assets/{diagram-KO2AKTUF-D3n6Lxjo.js → diagram-KO2AKTUF-DKxAQLmc.js} +1 -1
  299. package/web-shell/assets/{diagram-LMA3HP47-0SeFPK4t.js → diagram-LMA3HP47-Bo1xGqVY.js} +1 -1
  300. package/web-shell/assets/{diagram-OG6HWLK6-DAgyEwge.js → diagram-OG6HWLK6-B9NG78d-.js} +1 -1
  301. package/web-shell/assets/{erDiagram-TEJ5UH35-CzxBBDIK.js → erDiagram-TEJ5UH35-DltQKiqQ.js} +1 -1
  302. package/web-shell/assets/{flowDiagram-I6XJVG4X-B0uj0jyo.js → flowDiagram-I6XJVG4X-5xXGmS4I.js} +1 -1
  303. package/web-shell/assets/{ganttDiagram-6RSMTGT7-DFzcj5km.js → ganttDiagram-6RSMTGT7-bhGL5n0l.js} +1 -1
  304. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DylJ_Fc9.js → gitGraphDiagram-PVQCEYII-ZYnz9hgh.js} +1 -1
  305. package/web-shell/assets/{index-BKSAnXU9.js → index-CBBeUArD.js} +1 -1
  306. package/web-shell/assets/index-CbgU-jUo.css +5 -0
  307. package/web-shell/assets/index-_nhzXqab.js +1750 -0
  308. package/web-shell/assets/{infoDiagram-5YYISTIA-BYMcJVMI.js → infoDiagram-5YYISTIA-Cg-jamQf.js} +1 -1
  309. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-t1quI1S3.js → ishikawaDiagram-YF4QCWOH-CcmvKlyq.js} +1 -1
  310. package/web-shell/assets/{journeyDiagram-JHISSGLW-YM_QVUJm.js → journeyDiagram-JHISSGLW-BRsOQZp1.js} +1 -1
  311. package/web-shell/assets/{kanban-definition-UN3LZRKU-jw8OddK1.js → kanban-definition-UN3LZRKU-xW-dmEHK.js} +1 -1
  312. package/web-shell/assets/{linear-Dlr3RVuP.js → linear-ClBfEZH2.js} +1 -1
  313. package/web-shell/assets/{mermaid.core-CqGKzNzd.js → mermaid.core-D65NDkzc.js} +5 -5
  314. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BqureoOS.js → mindmap-definition-RKZ34NQL-CyvFslYa.js} +1 -1
  315. package/web-shell/assets/{pieDiagram-4H26LBE5-Da20HkK1.js → pieDiagram-4H26LBE5-BwSefMyG.js} +1 -1
  316. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BsNlMvJy.js → quadrantDiagram-W4KKPZXB-GqBJspFS.js} +1 -1
  317. package/web-shell/assets/{requirementDiagram-4Y6WPE33-DzVCQCse.js → requirementDiagram-4Y6WPE33-B137PlTJ.js} +1 -1
  318. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-BMo16voT.js → sankeyDiagram-5OEKKPKP-maHkkt8i.js} +1 -1
  319. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Bgi-pdHk.js → sequenceDiagram-3UESZ5HK-DJ1mRaG3.js} +1 -1
  320. package/web-shell/assets/{stateDiagram-AJRCARHV-xaPQXwGk.js → stateDiagram-AJRCARHV-aRmP7Q4i.js} +1 -1
  321. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Db39gvZ_.js +1 -0
  322. package/web-shell/assets/{timeline-definition-PNZ67QCA-C_9RuvKG.js → timeline-definition-PNZ67QCA-CIQ3BRPA.js} +1 -1
  323. package/web-shell/assets/{vennDiagram-CIIHVFJN-Bgu6vdla.js → vennDiagram-CIIHVFJN-DR9VPd5h.js} +1 -1
  324. package/web-shell/assets/{wardley-L42UT6IY-CFTZ8IrX.js → wardley-L42UT6IY-ZcfIbT4D.js} +1 -1
  325. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BASW9Vmt.js → wardleyDiagram-YWT4CUSO-D0jgPi4T.js} +1 -1
  326. package/web-shell/assets/{xychartDiagram-2RQKCTM6--Nh-CD3F.js → xychartDiagram-2RQKCTM6-BGWU4s5o.js} +1 -1
  327. package/web-shell/index.html +2 -2
  328. package/chunks/agent-headless-OEQNFOMH.js +0 -87
  329. package/chunks/chunk-DEDESZDL.js +0 -358
  330. package/chunks/chunk-MPHPFVKK.js +0 -48
  331. package/chunks/chunk-UI5UGEF4.js +0 -3576
  332. package/chunks/daemon-status-provider-QYM57Z44.js +0 -102
  333. package/chunks/daemon-trust-policy-TSRVEYZR.js +0 -99
  334. package/chunks/discovery-XLHITE74.js +0 -220
  335. package/chunks/exitPlanMode-WDURQMIU.js +0 -85
  336. package/chunks/handleAutoUpdate-GN7Z6QAC.js +0 -94
  337. package/chunks/initializer-UA6KQ7MS.js +0 -100
  338. package/chunks/list-GRAMIQOT.js +0 -103
  339. package/chunks/loadedSettingsAdapter-5O2TDS3I.js +0 -97
  340. package/chunks/mcp-XLP33CAI.js +0 -97
  341. package/chunks/nonInteractiveCli-KTA5K6FS.js +0 -163
  342. package/chunks/ripGrep-ZJSHKB6H.js +0 -85
  343. package/chunks/theme-manager-XL2N5SBY.js +0 -89
  344. package/chunks/workspace-providers-status-PDDMI6ST.js +0 -100
  345. package/chunks/workspace-skills-status-IJ5FOQI6.js +0 -100
  346. package/web-shell/assets/channel-Du2WFns8.js +0 -1
  347. package/web-shell/assets/classDiagram-4FO5ZUOK-Zw0HafH6.js +0 -1
  348. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Zw0HafH6.js +0 -1
  349. package/web-shell/assets/index-BIGQygTL.css +0 -5
  350. package/web-shell/assets/index-J7OMTqAN.js +0 -1789
  351. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-D5RqimXD.js +0 -1
  352. package/chunks/{chunk-SYHXR6WM.js → chunk-4W5U2TUT.js} +3 -3
  353. /package/chunks/{chunk-NTTBXH7U.js → chunk-UGK4K2N2.js} +0 -0
@@ -10,11 +10,11 @@ import {
10
10
  } from "./chunk-CPBF7KYF.js";
11
11
  import {
12
12
  atomicWriteJSON
13
- } from "./chunk-YBHUXEC6.js";
13
+ } from "./chunk-YECDICIO.js";
14
14
  import {
15
15
  Storage,
16
16
  isNodeError
17
- } from "./chunk-HOSVOUDK.js";
17
+ } from "./chunk-BUQDLC2G.js";
18
18
  import {
19
19
  init_esbuild_shims
20
20
  } from "./chunk-5O2XNYP6.js";
@@ -24,8 +24,86 @@ import {
24
24
 
25
25
  // packages/core/src/agents/team/teamHelpers.ts
26
26
  init_esbuild_shims();
27
- import * as fs from "node:fs/promises";
27
+ import * as fs2 from "node:fs/promises";
28
28
  import * as path from "node:path";
29
+
30
+ // packages/core/src/utils/process-liveness.ts
31
+ init_esbuild_shims();
32
+ import * as fs from "node:fs";
33
+ function isPidAlive(pid) {
34
+ if (!Number.isInteger(pid) || pid <= 0) return false;
35
+ try {
36
+ process.kill(pid, 0);
37
+ return !isZombie(pid);
38
+ } catch (err) {
39
+ return isNodeError(err) && (err.code === "EPERM" || err.code === "EACCES") && !isZombie(pid);
40
+ }
41
+ }
42
+ __name(isPidAlive, "isPidAlive");
43
+ function isZombie(pid) {
44
+ if (process.platform !== "linux") return false;
45
+ let raw;
46
+ try {
47
+ raw = fs.readFileSync(`/proc/${pid}/stat`, "utf8");
48
+ } catch {
49
+ return false;
50
+ }
51
+ const commEnd = raw.lastIndexOf(")");
52
+ if (commEnd === -1) return false;
53
+ return raw.slice(commEnd + 1).trimStart().startsWith("Z");
54
+ }
55
+ __name(isZombie, "isZombie");
56
+ function readProcStartToken(pid) {
57
+ if (process.platform !== "linux") return null;
58
+ if (!Number.isInteger(pid) || pid <= 0) return null;
59
+ const bootId = readLocalBootId();
60
+ if (bootId === null) return null;
61
+ let raw;
62
+ try {
63
+ raw = fs.readFileSync(`/proc/${pid}/stat`, "utf8");
64
+ } catch {
65
+ return null;
66
+ }
67
+ const commEnd = raw.lastIndexOf(")");
68
+ if (commEnd === -1) return null;
69
+ const fields = raw.slice(commEnd + 1).trim().split(/\s+/);
70
+ const startTime = fields[19];
71
+ return startTime !== void 0 && /^\d+$/.test(startTime) ? `${bootId}:${startTime}` : null;
72
+ }
73
+ __name(readProcStartToken, "readProcStartToken");
74
+ var cachedBootId;
75
+ function readLocalBootId() {
76
+ if (cachedBootId !== void 0) return cachedBootId;
77
+ try {
78
+ const value = fs.readFileSync("/proc/sys/kernel/random/boot_id", "utf8").trim();
79
+ if (/^[0-9a-f-]+$/i.test(value)) {
80
+ cachedBootId = value;
81
+ return value;
82
+ }
83
+ } catch {
84
+ }
85
+ return null;
86
+ }
87
+ __name(readLocalBootId, "readLocalBootId");
88
+ function readPidNamespaceId() {
89
+ if (process.platform !== "linux") return null;
90
+ try {
91
+ return fs.statSync("/proc/self/ns/pid").ino;
92
+ } catch {
93
+ return null;
94
+ }
95
+ }
96
+ __name(readPidNamespaceId, "readPidNamespaceId");
97
+ function isSameProcess(pid, procStart) {
98
+ if (!isPidAlive(pid)) return false;
99
+ if (procStart == null) return true;
100
+ const current = readProcStartToken(pid);
101
+ if (current === null) return true;
102
+ return current === procStart;
103
+ }
104
+ __name(isSameProcess, "isSameProcess");
105
+
106
+ // packages/core/src/agents/team/teamHelpers.ts
29
107
  function getTeamsRootDir() {
30
108
  return path.join(Storage.getGlobalQwenDir(), TEAMS_DIR);
31
109
  }
@@ -103,7 +181,7 @@ __name(classifyShutdownResponse, "classifyShutdownResponse");
103
181
  async function readTeamFile(teamName) {
104
182
  const filePath = getTeamFilePath(teamName);
105
183
  try {
106
- const raw = await fs.readFile(filePath, "utf-8");
184
+ const raw = await fs2.readFile(filePath, "utf-8");
107
185
  return JSON.parse(raw);
108
186
  } catch (err) {
109
187
  if (isNodeError(err) && err.code === "ENOENT") {
@@ -115,28 +193,19 @@ async function readTeamFile(teamName) {
115
193
  __name(readTeamFile, "readTeamFile");
116
194
  async function writeTeamFile(teamName, teamFile) {
117
195
  const filePath = getTeamFilePath(teamName);
118
- await fs.mkdir(path.dirname(filePath), { recursive: true });
196
+ await fs2.mkdir(path.dirname(filePath), { recursive: true });
119
197
  await atomicWriteJSON(filePath, teamFile);
120
198
  }
121
199
  __name(writeTeamFile, "writeTeamFile");
122
200
  async function createTeamFile(teamName, teamFile) {
123
201
  const filePath = getTeamFilePath(teamName);
124
- await fs.mkdir(path.dirname(filePath), { recursive: true });
125
- await fs.writeFile(filePath, JSON.stringify(teamFile, null, 2) + "\n", {
202
+ await fs2.mkdir(path.dirname(filePath), { recursive: true });
203
+ await fs2.writeFile(filePath, JSON.stringify(teamFile, null, 2) + "\n", {
126
204
  encoding: "utf-8",
127
205
  flag: "wx"
128
206
  });
129
207
  }
130
208
  __name(createTeamFile, "createTeamFile");
131
- function isPidAlive(pid) {
132
- try {
133
- process.kill(pid, 0);
134
- return true;
135
- } catch (err) {
136
- return isNodeError(err) && err.code === "EPERM";
137
- }
138
- }
139
- __name(isPidAlive, "isPidAlive");
140
209
  async function tryReclaimStaleTeam(teamName) {
141
210
  let existing;
142
211
  try {
@@ -162,13 +231,17 @@ async function deleteTeamDirs(teamName) {
162
231
  const teamDir = getTeamDir(teamName);
163
232
  const tasksDir = getTasksDir(teamName);
164
233
  await Promise.allSettled([
165
- fs.rm(teamDir, { recursive: true, force: true }),
166
- fs.rm(tasksDir, { recursive: true, force: true })
234
+ fs2.rm(teamDir, { recursive: true, force: true }),
235
+ fs2.rm(tasksDir, { recursive: true, force: true })
167
236
  ]);
168
237
  }
169
238
  __name(deleteTeamDirs, "deleteTeamDirs");
170
239
 
171
240
  export {
241
+ readProcStartToken,
242
+ readLocalBootId,
243
+ readPidNamespaceId,
244
+ isSameProcess,
172
245
  getTeamDir,
173
246
  getInboxesDir,
174
247
  getTasksDir,
@@ -183,6 +256,11 @@ export {
183
256
  tryReclaimStaleTeam,
184
257
  deleteTeamDirs
185
258
  };
259
+ /**
260
+ * @license
261
+ * Copyright 2026 Qwen
262
+ * SPDX-License-Identifier: Apache-2.0
263
+ */
186
264
  /**
187
265
  * @license
188
266
  * Copyright 2025 Qwen
@@ -2,32 +2,32 @@
2
2
  "use strict";
3
3
  import {
4
4
  appEvents
5
- } from "./chunk-IX4PWUDU.js";
5
+ } from "./chunk-KSGWAYNE.js";
6
6
  import {
7
7
  CUSTOM_SANDBOX_IMAGE_ENV_VAR,
8
8
  HOST_UPDATE_RELAUNCH_ENV_VAR,
9
9
  SKIP_UPDATE_CHECK_ENV_VAR,
10
10
  requestUpdateOnExit
11
- } from "./chunk-DFVXU5YM.js";
11
+ } from "./chunk-MCG53LWC.js";
12
12
  import {
13
13
  loadUndici
14
14
  } from "./chunk-3Z43GZUQ.js";
15
15
  import {
16
16
  IdeClient,
17
17
  getAllProviderBaseUrls
18
- } from "./chunk-EBPLKY6U.js";
18
+ } from "./chunk-XC377TLN.js";
19
19
  import {
20
20
  detectRuntime,
21
21
  getOrCreateSharedDispatcher,
22
22
  preloadRuntimeFetchModule,
23
23
  redactProxyCredentials
24
- } from "./chunk-4AOVQPJU.js";
24
+ } from "./chunk-CPHEPGAO.js";
25
25
  import {
26
26
  initializeTelemetry
27
- } from "./chunk-N4SVADAV.js";
27
+ } from "./chunk-XT4RKHVE.js";
28
28
  import {
29
29
  createDebugLogger
30
- } from "./chunk-HOSVOUDK.js";
30
+ } from "./chunk-BUQDLC2G.js";
31
31
  import {
32
32
  recordStartupEvent
33
33
  } from "./chunk-QILD6R27.js";
@@ -231,11 +231,11 @@ function startPostRenderPrefetches(config, settings, options = {}) {
231
231
  { updateEventEmitter },
232
232
  { t }
233
233
  ] = await Promise.all([
234
- import("./updateCheck-QJI2SYWF.js"),
235
- import("./handleAutoUpdate-GN7Z6QAC.js"),
236
- import("./installationInfo-P7OTIR4P.js"),
234
+ import("./updateCheck-KYDCBLSF.js"),
235
+ import("./handleAutoUpdate-GAOYUYOD.js"),
236
+ import("./installationInfo-CO47QX3Q.js"),
237
237
  import("./updateEventEmitter-5MKC7BLQ.js"),
238
- import("./i18n-ETW24DHW.js")
238
+ import("./i18n-2ITURYX6.js")
239
239
  ]);
240
240
  const updateCheckSkippedMessage = /* @__PURE__ */ __name((error) => t("Update check skipped ({{reason}}) \u2014 run /update to retry.", {
241
241
  reason: describeUpdateCheckFailure(error)
@@ -308,7 +308,7 @@ ${t(
308
308
  state: "connecting"
309
309
  });
310
310
  try {
311
- const { connectIdeForStartup } = await import("./initializer-UA6KQ7MS.js");
311
+ const { connectIdeForStartup } = await import("./initializer-OC7LWA6X.js");
312
312
  await withTimeout(
313
313
  connectIdeForStartup(config),
314
314
  "ide_connect",
@@ -332,7 +332,7 @@ ${t(
332
332
  }
333
333
  if (config.isInteractive()) {
334
334
  runDeferredTask("background_housekeeping", async () => {
335
- const { startBackgroundHousekeeping } = await import("./scheduler-DPTPI6FW.js");
335
+ const { startBackgroundHousekeeping } = await import("./scheduler-F4Y7ENVV.js");
336
336
  startBackgroundHousekeeping(config, settings);
337
337
  });
338
338
  }
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-MR3PXB6E.js";
16
16
  import {
17
17
  require_proper_lockfile
18
- } from "./chunk-KRXPRVGL.js";
18
+ } from "./chunk-MLXTMF7H.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -563,7 +563,7 @@ var WorkspaceRegistrationStore = class {
563
563
  return removed;
564
564
  }
565
565
  async update(mutate) {
566
- const { atomicWriteFile } = await import("./deferred-core-runtime-FKJ3OYE7.js");
566
+ const { atomicWriteFile } = await import("./deferred-core-runtime-YQLHDUGE.js");
567
567
  return withInProcessLock(this.filePath, async () => {
568
568
  const lock = await acquireFileLock(this.filePath);
569
569
  let committed = false;
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  MissingCliEntryError
5
- } from "./chunk-HTYND72J.js";
5
+ } from "./chunk-UC67T4SF.js";
6
6
  import {
7
7
  redactLogCredentials
8
8
  } from "./chunk-M5GB774H.js";
@@ -814,6 +814,44 @@ var TrackedChild = class {
814
814
  }
815
815
  };
816
816
 
817
+ // packages/acp-bridge/src/json-string-bytes.ts
818
+ init_esbuild_shims();
819
+ function estimateJsonStringBytes(value, limitBytes) {
820
+ const unescapedBytes = Buffer.byteLength(value, "utf8") + 2;
821
+ if (unescapedBytes > limitBytes) return limitBytes + 1;
822
+ if (!/["\\]|[^ -\ud7ff\ue000-\uffff]/u.test(value)) {
823
+ return unescapedBytes;
824
+ }
825
+ let bytes = 2;
826
+ for (let index = 0; index < value.length; index++) {
827
+ const code = value.charCodeAt(index);
828
+ if (code === 34 || code === 92) {
829
+ bytes += 2;
830
+ } else if (code <= 31) {
831
+ bytes += code === 8 || code === 9 || code === 10 || code === 12 || code === 13 ? 2 : 6;
832
+ } else if (code >= 55296 && code <= 56319) {
833
+ const next = value.charCodeAt(index + 1);
834
+ if (next >= 56320 && next <= 57343) {
835
+ bytes += 4;
836
+ index++;
837
+ } else {
838
+ bytes += 6;
839
+ }
840
+ } else if (code >= 56320 && code <= 57343) {
841
+ bytes += 6;
842
+ } else if (code <= 127) {
843
+ bytes++;
844
+ } else if (code <= 2047) {
845
+ bytes += 2;
846
+ } else {
847
+ bytes += 3;
848
+ }
849
+ if (bytes > limitBytes) return limitBytes + 1;
850
+ }
851
+ return bytes;
852
+ }
853
+ __name(estimateJsonStringBytes, "estimateJsonStringBytes");
854
+
817
855
  // packages/acp-bridge/src/spawnChannel.ts
818
856
  var cachedMemoryArgs;
819
857
  var DAEMON_ACP_NDJSON_LIMITS = Object.freeze({
@@ -993,7 +1031,7 @@ function estimatePreparedResponseBytes(value, limitBytes) {
993
1031
  if (!descriptor || descriptor.get || descriptor.set) {
994
1032
  return limitBytes + 1;
995
1033
  }
996
- bytes += (frame.first ? 0 : 1) + Buffer.byteLength(next.value) + 3;
1034
+ bytes += (frame.first ? 0 : 1) + estimateJsonStringBytes(next.value, Math.max(0, limitBytes - bytes)) + 1;
997
1035
  if (bytes > limitBytes) return limitBytes + 1;
998
1036
  stack.push({ ...frame, first: false });
999
1037
  stack.push({ kind: "value", value: descriptor.value });
@@ -1005,7 +1043,10 @@ function estimatePreparedResponseBytes(value, limitBytes) {
1005
1043
  } else if (current === void 0) {
1006
1044
  bytes += 4;
1007
1045
  } else if (typeof current === "string") {
1008
- bytes += Buffer.byteLength(current) + 2;
1046
+ bytes += estimateJsonStringBytes(
1047
+ current,
1048
+ Math.max(0, limitBytes - bytes)
1049
+ );
1009
1050
  } else if (typeof current === "number") {
1010
1051
  bytes += 24;
1011
1052
  } else if (typeof current === "boolean") {
@@ -232,16 +232,19 @@ var ForbiddenError = class extends Error {
232
232
  static {
233
233
  __name(this, "ForbiddenError");
234
234
  }
235
+ status = 403;
235
236
  };
236
237
  var UnauthorizedError = class extends Error {
237
238
  static {
238
239
  __name(this, "UnauthorizedError");
239
240
  }
241
+ status = 401;
240
242
  };
241
243
  var BadRequestError = class extends Error {
242
244
  static {
243
245
  __name(this, "BadRequestError");
244
246
  }
247
+ status = 400;
245
248
  };
246
249
  function toFriendlyError(error) {
247
250
  if (error && typeof error === "object" && "response" in error) {
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  CLIENT_MCP_OVER_WS_CONFIG_FLAG
5
- } from "./chunk-FQDCO3CJ.js";
5
+ } from "./chunk-WP4WIUOJ.js";
6
6
  import {
7
7
  SessionNotFoundError
8
8
  } from "./chunk-624NHDGB.js";
9
9
  import {
10
10
  ChannelWorkerStartupError
11
- } from "./chunk-SYHXR6WM.js";
11
+ } from "./chunk-4W5U2TUT.js";
12
12
  import {
13
13
  ChannelDeliveryError,
14
14
  ChannelWebhookEnqueueError
@@ -6,7 +6,7 @@ import {
6
6
  realpathNearestExisting,
7
7
  resolvePath,
8
8
  sanitizeCwd
9
- } from "./chunk-HOSVOUDK.js";
9
+ } from "./chunk-BUQDLC2G.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-HOSVOUDK.js";
5
+ } from "./chunk-BUQDLC2G.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -189,6 +189,14 @@ var PROJECT_ENV_HARDCODED_EXCLUSIONS = [
189
189
  // operator set in the daemon's launch env still apply.
190
190
  "QWEN_CDP_MCP_COMMAND",
191
191
  "QWEN_SERVE_CDP_TUNNEL_OVER_WS",
192
+ // QWEN_SERVE_NEW_FILE_MODE decides the creation mode of every agent-written
193
+ // NEW file (owner-only 0600 vs umask-derived). A project `.env` flipping it
194
+ // to `system` would silently widen file visibility daemon-wide — including
195
+ // files written for OTHER workspaces — with no warning, since `system` is a
196
+ // valid value. The fail-closed 0600 posture is an operator decision
197
+ // (documented as a per-daemon opt-in), so only the daemon's launch
198
+ // environment or a home `.env` may set it.
199
+ "QWEN_SERVE_NEW_FILE_MODE",
192
200
  // DEV gates the daemon's inherited-loader-env scrub (run-qwen-serve.ts);
193
201
  // only the dev harness (scripts/dev.js) stamps it into the launch env. A
194
202
  // project file setting it would silently keep loader vars in the base env
@@ -415,16 +415,25 @@ function unregisterSessionProjectDir(sessionId) {
415
415
  }
416
416
  __name(unregisterSessionProjectDir, "unregisterSessionProjectDir");
417
417
  var modelBySession = /* @__PURE__ */ new Map();
418
- function registerSessionModel(sessionId, model) {
419
- if (sessionId && model) modelBySession.set(sessionId, model);
418
+ var modelIdentityBySession = /* @__PURE__ */ new Map();
419
+ function registerSessionModel(sessionId, model, identity) {
420
+ if (!sessionId || !model) return;
421
+ modelBySession.set(sessionId, model);
422
+ if (identity) modelIdentityBySession.set(sessionId, identity);
423
+ else modelIdentityBySession.delete(sessionId);
420
424
  }
421
425
  __name(registerSessionModel, "registerSessionModel");
422
426
  function getSessionModel(sessionId) {
423
427
  return modelBySession.get(sessionId);
424
428
  }
425
429
  __name(getSessionModel, "getSessionModel");
430
+ function getSessionModelIdentity(sessionId) {
431
+ return modelIdentityBySession.get(sessionId);
432
+ }
433
+ __name(getSessionModelIdentity, "getSessionModelIdentity");
426
434
  function unregisterSessionModel(sessionId) {
427
435
  modelBySession.delete(sessionId);
436
+ modelIdentityBySession.delete(sessionId);
428
437
  }
429
438
  __name(unregisterSessionModel, "unregisterSessionModel");
430
439
 
@@ -505,6 +514,7 @@ export {
505
514
  unregisterSessionProjectDir,
506
515
  registerSessionModel,
507
516
  getSessionModel,
517
+ getSessionModelIdentity,
508
518
  unregisterSessionModel
509
519
  };
510
520
  /**
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  getRateLimitErrorDetails
5
- } from "./chunk-D7QGE3RT.js";
5
+ } from "./chunk-FAAUPSY2.js";
6
6
  import {
7
7
  isInternalPromptId
8
- } from "./chunk-4KM2SYK5.js";
8
+ } from "./chunk-KC4WMLZO.js";
9
9
  import {
10
10
  createDebugLogger
11
- } from "./chunk-HOSVOUDK.js";
11
+ } from "./chunk-BUQDLC2G.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -2,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  isGitRepository
5
- } from "./chunk-EBPLKY6U.js";
5
+ } from "./chunk-XC377TLN.js";
6
6
  import {
7
7
  createDebugLogger
8
- } from "./chunk-HOSVOUDK.js";
8
+ } from "./chunk-BUQDLC2G.js";
9
9
  import {
10
10
  init_esbuild_shims
11
11
  } from "./chunk-5O2XNYP6.js";
@@ -2,11 +2,11 @@
2
2
  "use strict";
3
3
  import {
4
4
  atomicWriteFileSync
5
- } from "./chunk-YBHUXEC6.js";
5
+ } from "./chunk-YECDICIO.js";
6
6
  import {
7
7
  Storage,
8
8
  createDebugLogger
9
- } from "./chunk-HOSVOUDK.js";
9
+ } from "./chunk-BUQDLC2G.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -2,16 +2,16 @@
2
2
  "use strict";
3
3
  import {
4
4
  useKeypress
5
- } from "./chunk-56HVDG3M.js";
5
+ } from "./chunk-RXHBTKMG.js";
6
6
  import {
7
7
  require_react
8
8
  } from "./chunk-5QWWOFGG.js";
9
9
  import {
10
10
  t
11
- } from "./chunk-IRSLAS4M.js";
11
+ } from "./chunk-IOTPI425.js";
12
12
  import {
13
13
  APPROVAL_MODES
14
- } from "./chunk-63FNZTWG.js";
14
+ } from "./chunk-RWDNJBWN.js";
15
15
  import {
16
16
  init_esbuild_shims
17
17
  } from "./chunk-5O2XNYP6.js";
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  isPrivateHost
5
- } from "./chunk-KEC5FHLM.js";
5
+ } from "./chunk-ROIYNTHJ.js";
6
6
  import {
7
7
  loadUndici
8
- } from "./chunk-4AOVQPJU.js";
8
+ } from "./chunk-CPHEPGAO.js";
9
9
  import {
10
10
  getErrorMessage
11
- } from "./chunk-HOSVOUDK.js";
11
+ } from "./chunk-BUQDLC2G.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -2,12 +2,12 @@
2
2
  "use strict";
3
3
  import {
4
4
  buildPermissionSettings
5
- } from "./chunk-YX2RDGAL.js";
5
+ } from "./chunk-SBRIBTYN.js";
6
6
  import {
7
7
  resolveVoiceStreamConfig,
8
8
  resolveVoiceTranscriptionConfig,
9
9
  transcribeVoiceAudio
10
- } from "./chunk-LCX5B364.js";
10
+ } from "./chunk-PPTM4O4R.js";
11
11
  import {
12
12
  getVoiceSettingsScope,
13
13
  isSelectableVoiceModel,
@@ -16,7 +16,10 @@ import {
16
16
  readVoiceMode,
17
17
  readVoiceModel,
18
18
  resolveVoiceTransport
19
- } from "./chunk-VIFA5VJD.js";
19
+ } from "./chunk-7OCSX7FC.js";
20
+ import {
21
+ MCP_RESTART_SERVER_DEADLINE_MS
22
+ } from "./chunk-OCPBI7J5.js";
20
23
  import {
21
24
  resolveSkillSettings
22
25
  } from "./chunk-Z4X5MTRT.js";
@@ -27,9 +30,6 @@ import {
27
30
  WorkspaceSkillNotToggleableError,
28
31
  mapWorkspaceSkillToggleError
29
32
  } from "./chunk-Z7VOMGDC.js";
30
- import {
31
- MCP_RESTART_SERVER_DEADLINE_MS
32
- } from "./chunk-OCPBI7J5.js";
33
33
  import {
34
34
  BridgeChannelClosedError,
35
35
  SERVE_CONTROL_EXT_METHODS,
@@ -43,7 +43,7 @@ import {
43
43
  createIdleWorkspaceProvidersStatus,
44
44
  createIdleWorkspaceSkillsStatus,
45
45
  mapDomainErrorToErrorKind
46
- } from "./chunk-HTYND72J.js";
46
+ } from "./chunk-UC67T4SF.js";
47
47
  import {
48
48
  McpServerNotFoundError,
49
49
  McpServerRestartFailedError,
@@ -56,19 +56,19 @@ import {
56
56
  import {
57
57
  getPersistScopeForModelSelection,
58
58
  loadSettings
59
- } from "./chunk-3GDBZJD6.js";
59
+ } from "./chunk-OLZSWUZR.js";
60
60
  import {
61
61
  getWorkspaceTrustStatus
62
- } from "./chunk-ZMY2P4L3.js";
62
+ } from "./chunk-YXC7JYUI.js";
63
63
  import {
64
64
  ModelsConfig,
65
65
  SkillManager,
66
66
  require_yauzl
67
- } from "./chunk-EBPLKY6U.js";
67
+ } from "./chunk-XC377TLN.js";
68
68
  import {
69
69
  Storage,
70
70
  createDebugLogger
71
- } from "./chunk-HOSVOUDK.js";
71
+ } from "./chunk-BUQDLC2G.js";
72
72
  import {
73
73
  writeStderrLine,
74
74
  writeStderrLineSafe
@@ -83,6 +83,7 @@ import {
83
83
 
84
84
  // packages/cli/src/serve/workspace-service/index.ts
85
85
  init_esbuild_shims();
86
+ import { randomUUID } from "node:crypto";
86
87
  import { promises as fs2, constants as fsConstants } from "node:fs";
87
88
  import * as path2 from "node:path";
88
89
 
@@ -1070,6 +1071,20 @@ __name(deleteWorkspaceSkill, "deleteWorkspaceSkill");
1070
1071
 
1071
1072
  // packages/cli/src/serve/workspace-service/index.ts
1072
1073
  var WORKSPACE_SKILLS_SNAPSHOT_TTL_MS = 5e3;
1074
+ function createSkillToggleMutation(input) {
1075
+ return {
1076
+ id: randomUUID(),
1077
+ kind: "skill_toggle",
1078
+ skills: input.skills.map((skill) => ({
1079
+ name: skill.name,
1080
+ enabled: skill.enabled
1081
+ })),
1082
+ activation: input.activation,
1083
+ sessionsRefreshed: input.sessionsRefreshed,
1084
+ sessionsFailed: input.sessionsFailed
1085
+ };
1086
+ }
1087
+ __name(createSkillToggleMutation, "createSkillToggleMutation");
1073
1088
  async function canonicalizeExistingAncestor(inputPath) {
1074
1089
  let current = inputPath;
1075
1090
  while (true) {
@@ -1653,13 +1668,20 @@ function createDaemonWorkspaceService(deps) {
1653
1668
  value: persisted.disabled.length > 0 ? persisted.disabled : void 0
1654
1669
  }
1655
1670
  ];
1671
+ const mutation = createSkillToggleMutation({
1672
+ skills: [{ name: skill.name, enabled }],
1673
+ activation,
1674
+ sessionsRefreshed,
1675
+ sessionsFailed
1676
+ });
1656
1677
  for (const change of settingsChanges) {
1657
1678
  publishWorkspaceEvent({
1658
1679
  type: "settings_changed",
1659
1680
  data: {
1660
1681
  key: change.key,
1661
1682
  value: change.value,
1662
- scope: "workspace"
1683
+ scope: "workspace",
1684
+ mutation
1663
1685
  },
1664
1686
  originatorClientId: ctx.originatorClientId
1665
1687
  });
@@ -1792,10 +1814,19 @@ function createDaemonWorkspaceService(deps) {
1792
1814
  invalidateWorkspaceSkillsSnapshot();
1793
1815
  }
1794
1816
  assertActiveGeneration();
1817
+ const mutation = createSkillToggleMutation({
1818
+ skills: results.filter((result) => result.changed).map((result) => ({
1819
+ name: result.skillName,
1820
+ enabled: result.enabled
1821
+ })),
1822
+ activation,
1823
+ sessionsRefreshed,
1824
+ sessionsFailed
1825
+ });
1795
1826
  for (const change of persisted.settingsChanges) {
1796
1827
  publishWorkspaceEvent({
1797
1828
  type: "settings_changed",
1798
- data: { ...change, scope: "workspace" },
1829
+ data: { ...change, scope: "workspace", mutation },
1799
1830
  originatorClientId: ctx.originatorClientId
1800
1831
  });
1801
1832
  }