@qwen-code/qwen-code 0.19.9 → 0.19.10-nightly.20260716.506ce0a1a

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 (323) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +14 -6
  2. package/bundled/qc-helper/docs/features/approval-mode.md +2 -2
  3. package/bundled/qc-helper/docs/features/channels/dingtalk.md +33 -0
  4. package/bundled/qc-helper/docs/features/channels/overview.md +64 -20
  5. package/bundled/qc-helper/docs/features/channels/wecom.md +8 -7
  6. package/bundled/qc-helper/docs/features/code-review.md +88 -44
  7. package/bundled/qc-helper/docs/features/commands.md +6 -6
  8. package/bundled/qc-helper/docs/features/hooks.md +29 -0
  9. package/bundled/qc-helper/docs/features/sandbox.md +2 -0
  10. package/bundled/qc-helper/docs/features/sub-agents.md +21 -0
  11. package/bundled/qc-helper/docs/qwen-serve.md +49 -20
  12. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  13. package/bundled/review/DESIGN.md +219 -33
  14. package/bundled/review/SKILL.md +429 -382
  15. package/chunks/{MaxSizedBox-6HYJ3ZPJ.js → MaxSizedBox-WOC3YDWA.js} +31 -32
  16. package/chunks/{StandaloneSessionPicker-WS4GXYOG.js → StandaloneSessionPicker-H5HZCAFD.js} +49 -48
  17. package/chunks/{acpAgent-5FWSOZL5.js → acpAgent-55YDJDNM.js} +922 -550
  18. package/chunks/{agent-HOLHB3RT.js → agent-H6VE5W3L.js} +26 -27
  19. package/chunks/{agent-headless-SXL6H56A.js → agent-headless-T4XJOCRU.js} +26 -27
  20. package/chunks/{anthropicContentGenerator-L73TO3DB.js → anthropicContentGenerator-HBRXJSP4.js} +78 -16
  21. package/chunks/{artifact-tool-U7IRTLIV.js → artifact-tool-MIZLXBLF.js} +2 -2
  22. package/chunks/{askUserQuestion-2DLUUZZG.js → askUserQuestion-XMJVPNWM.js} +2 -2
  23. package/chunks/{bridge-BCJQ7BBB.js → bridge-FTB6ZP3R.js} +31 -34
  24. package/chunks/{ca-UJ6HC4H2.js → ca-CODEN7TD.js} +9 -1
  25. package/chunks/channel-worker-group-K7QKH6IG.js +13 -0
  26. package/chunks/channel-worker-manager-CUDPU4CN.js +418 -0
  27. package/chunks/channel-worker-supervisor-4XTO2ZD3.js +20 -0
  28. package/chunks/{chunk-LXNEJD34.js → chunk-2FO5GFKZ.js} +1 -1
  29. package/chunks/{chunk-VA4KQY6V.js → chunk-2JNR4VP2.js} +3 -3
  30. package/chunks/{chunk-L36P3NBD.js → chunk-2W3OOD4W.js} +2 -0
  31. package/chunks/{chunk-7R3CZA3Q.js → chunk-2Z5UX4KI.js} +1 -1
  32. package/chunks/{chunk-CUMMSHH6.js → chunk-3DWIFU7L.js} +1 -1
  33. package/chunks/chunk-3MX7D6QN.js +516 -0
  34. package/chunks/{chunk-SJHDYNHF.js → chunk-4BJVSIS3.js} +3 -3
  35. package/chunks/{chunk-TO6QE22P.js → chunk-5CNYZ7TN.js} +26 -22
  36. package/chunks/{chunk-N3EMS75V.js → chunk-5DEJ4T6C.js} +1333 -1232
  37. package/chunks/chunk-5HBA2Z7V.js +28 -0
  38. package/chunks/{chunk-ZJE7NSL3.js → chunk-5M6IDOMF.js} +34 -97
  39. package/chunks/{chunk-SCGXUJBT.js → chunk-6LI3L22E.js} +3 -3
  40. package/chunks/{chunk-K434OPES.js → chunk-6WPJRYLZ.js} +3 -3
  41. package/chunks/{chunk-YAUFFXDS.js → chunk-7GM2RWCR.js} +12 -11
  42. package/chunks/{chunk-OQ4DRIOA.js → chunk-7HWE2W74.js} +2 -2
  43. package/chunks/{chunk-J4TSQ5EQ.js → chunk-7NFB7LBQ.js} +8 -1
  44. package/chunks/{chunk-MC23XKFE.js → chunk-A2HWMJVO.js} +37 -3
  45. package/chunks/{chunk-3G7CIHVV.js → chunk-ABNYOMDG.js} +4 -4
  46. package/chunks/{chunk-3AHXV67U.js → chunk-AGZLXLBY.js} +1 -1
  47. package/chunks/{chunk-RDJSGHZE.js → chunk-ALGGS7UH.js} +1 -38
  48. package/chunks/{chunk-Q4YQW46J.js → chunk-AMRZVQUY.js} +43 -40
  49. package/chunks/{chunk-W3JHSWRP.js → chunk-AN6C2U46.js} +4 -4
  50. package/chunks/{chunk-GWHYEOV2.js → chunk-ARKANCNX.js} +2 -1
  51. package/chunks/{chunk-5SFOMFG4.js → chunk-AVEOWVOM.js} +36 -2
  52. package/chunks/{chunk-34MW4KTI.js → chunk-BA5JGE5F.js} +2 -2
  53. package/chunks/{chunk-5HOMWMCL.js → chunk-BSJAQUFD.js} +5492 -1336
  54. package/chunks/{chunk-L6P4KPHR.js → chunk-BWJKL5DB.js} +58 -38
  55. package/chunks/{chunk-PVZM22CK.js → chunk-C32JFRGV.js} +5 -5
  56. package/chunks/{chunk-AKIVHSJR.js → chunk-CZIHPO7L.js} +163 -782
  57. package/chunks/chunk-DL7RCO6V.js +493 -0
  58. package/chunks/{chunk-KKNMOEZH.js → chunk-E2UVIFI2.js} +185 -398
  59. package/chunks/{chunk-5VXNZWGF.js → chunk-ENUQSKEY.js} +1 -1
  60. package/chunks/{chunk-PDZ7MBDG.js → chunk-EWILX3BM.js} +27 -6
  61. package/chunks/{chunk-BMGVRZN4.js → chunk-EZWX232B.js} +1 -1
  62. package/chunks/{chunk-4GORAUCN.js → chunk-F333XEAU.js} +1 -1
  63. package/chunks/{chunk-YLV3XXFB.js → chunk-FBU7WRZI.js} +17 -1
  64. package/chunks/chunk-FEOZBUMT.js +77 -0
  65. package/chunks/{chunk-5U27BZ72.js → chunk-FKEGVMPX.js} +269 -83
  66. package/chunks/chunk-FNX3LGAK.js +34 -0
  67. package/chunks/{chunk-LK7KUE55.js → chunk-FSA7ERJ2.js} +1 -1
  68. package/chunks/{chunk-PODM4SZ4.js → chunk-G3BIBPI7.js} +5 -5
  69. package/chunks/{chunk-A3XKDTSH.js → chunk-GA65O2TB.js} +4 -4
  70. package/chunks/{chunk-3BTRNWWD.js → chunk-GOXKNSDZ.js} +1 -64
  71. package/chunks/{channel-worker-supervisor-WSOAAYUO.js → chunk-GXGIM7QP.js} +67 -35
  72. package/chunks/{chunk-6PESIEKJ.js → chunk-GXUWGPYX.js} +68 -6
  73. package/chunks/chunk-GYTKQYDB.js +23 -0
  74. package/chunks/{chunk-GZRTYZ2R.js → chunk-H3XMJV7T.js} +218 -1
  75. package/chunks/{chunk-WQUQVGTF.js → chunk-HGRXW4HQ.js} +467 -106
  76. package/chunks/{chunk-YVEDCAUE.js → chunk-HGT6JR3U.js} +19 -0
  77. package/chunks/{chunk-ECNYL4AA.js → chunk-HUEWOHKV.js} +1 -1
  78. package/chunks/chunk-IDS7MSUP.js +74 -0
  79. package/chunks/{chunk-KHUQZZJ6.js → chunk-IHDRJLLR.js} +382 -36
  80. package/chunks/{chunk-CLFKOZEK.js → chunk-J4SEAF4X.js} +114 -4
  81. package/chunks/{chunk-B5ORX3FG.js → chunk-JGUT3LWZ.js} +6 -1
  82. package/chunks/{chunk-P67PFTUT.js → chunk-KEYEYCHZ.js} +4 -4
  83. package/chunks/{chunk-ORBGV7NJ.js → chunk-KKRTYONM.js} +6 -4
  84. package/chunks/{chunk-7PU4FYLG.js → chunk-KOXFAG6P.js} +4 -18
  85. package/chunks/{chunk-EGYZ275M.js → chunk-KWLVWNF5.js} +55 -7
  86. package/chunks/{chunk-XLA62MYB.js → chunk-KXECVZPD.js} +2 -2
  87. package/chunks/{chunk-IAVB3HM3.js → chunk-L4Y55KIS.js} +33 -1
  88. package/chunks/{chunk-4QLQE5WJ.js → chunk-L5U3ELZX.js} +1 -1
  89. package/chunks/{chunk-4ZVWQHEQ.js → chunk-LQIDP6K5.js} +1 -1
  90. package/chunks/{chunk-DC5Z3DU6.js → chunk-LXLTBIDP.js} +43 -6
  91. package/chunks/chunk-LXXMOYPL.js +22 -0
  92. package/chunks/{chunk-Q6I5QHMH.js → chunk-MFNKBXYH.js} +1 -1
  93. package/chunks/chunk-MR3PXB6E.js +48 -0
  94. package/chunks/{chunk-JZETEN3Z.js → chunk-N45S36AH.js} +3 -3
  95. package/chunks/{chunk-GWLSNBG4.js → chunk-NA3IG6XG.js} +748 -27
  96. package/chunks/{chunk-D5SKC4YG.js → chunk-O3M25JXE.js} +213 -29
  97. package/chunks/{chunk-EAXLGSFP.js → chunk-O6XGHDS5.js} +11 -11
  98. package/chunks/{chunk-WL4L7EZH.js → chunk-OA4JVLSA.js} +27 -1
  99. package/chunks/{chunk-X4NKFGFJ.js → chunk-OJAMDVF5.js} +0 -15
  100. package/chunks/{chunk-BZIFY5TF.js → chunk-OKAIGAYW.js} +3 -3
  101. package/chunks/{chunk-CNEIYWSA.js → chunk-OVIV236K.js} +5 -5
  102. package/chunks/{chunk-3SJSQXNS.js → chunk-PEJWA3QQ.js} +12 -8
  103. package/chunks/{chunk-E2IY465S.js → chunk-PWNOAWXB.js} +59 -12
  104. package/chunks/{chunk-B4G2WOFA.js → chunk-Q5MKHNIR.js} +28 -5
  105. package/chunks/{chunk-MXL5UP4X.js → chunk-Q6TUALBE.js} +1 -1
  106. package/chunks/{chunk-QYMQSECS.js → chunk-QAW7PIHT.js} +2 -2
  107. package/chunks/{chunk-HKMAENAO.js → chunk-QDTGDM2T.js} +14 -9
  108. package/chunks/{chunk-LUODI7WD.js → chunk-RCEEXIOO.js} +6 -4
  109. package/chunks/{chunk-W2UIXQDL.js → chunk-RTV5TUYB.js} +12 -4
  110. package/chunks/chunk-RW7DUKFO.js +91 -0
  111. package/chunks/{chunk-NVYTCB5Z.js → chunk-SA6QVLWI.js} +17325 -16259
  112. package/chunks/chunk-SJSI7PXU.js +59 -0
  113. package/chunks/{chunk-HVY356M2.js → chunk-SMGBWLNU.js} +3 -3
  114. package/chunks/{chunk-CEA3E3JB.js → chunk-SPJQO2CE.js} +2 -2
  115. package/chunks/{chunk-CC2ITGCF.js → chunk-STZQCNN3.js} +49 -6
  116. package/chunks/{chunk-HPDUL5MF.js → chunk-T2ZDAER2.js} +1 -1
  117. package/chunks/{chunk-XUOOWUZS.js → chunk-T3TQ3ACP.js} +1 -1
  118. package/chunks/{chunk-4C5BQ2D2.js → chunk-TIKDHS6V.js} +100 -17
  119. package/chunks/chunk-TV6K2FB4.js +224 -0
  120. package/chunks/{chunk-5XUCZNSY.js → chunk-TYLOFD2U.js} +1 -1
  121. package/chunks/{chunk-D2GFWEXB.js → chunk-UCUUH2JV.js} +6 -6
  122. package/chunks/{chunk-BAPGSC7U.js → chunk-UZP7K33Y.js} +23 -9
  123. package/chunks/{chunk-77XJ3SWN.js → chunk-VDAR6UO2.js} +8 -6
  124. package/chunks/{chunk-XYQSMABS.js → chunk-VKLVGA2D.js} +4 -4
  125. package/chunks/{chunk-JSG7ZSBC.js → chunk-VRR65QYW.js} +251 -3
  126. package/chunks/{chunk-U2NNEY4R.js → chunk-VT5AWJN4.js} +1 -1
  127. package/chunks/{chunk-ZLXQN2QS.js → chunk-WIEO4CWB.js} +1 -1
  128. package/chunks/{chunk-X6TJ3YZV.js → chunk-WKEO3GLZ.js} +160 -60
  129. package/chunks/{chunk-J3JA76CF.js → chunk-WTNZ6DXB.js} +1 -1
  130. package/chunks/{chunk-VWPVHAMO.js → chunk-XIWQ5QST.js} +8 -1
  131. package/chunks/{chunk-TDEXZKMT.js → chunk-Y66VOBRP.js} +2 -2
  132. package/chunks/{chunk-3VAGG5T5.js → chunk-YYBZUIPL.js} +1015 -100
  133. package/chunks/{chunk-CCDMCZPP.js → chunk-YZ3SBNP7.js} +1 -1
  134. package/chunks/{chunk-ATAKVRIF.js → chunk-Z3XA2TNG.js} +7 -7
  135. package/chunks/{chunk-EMDMPBJ4.js → chunk-Z7SVC7PJ.js} +10 -3
  136. package/chunks/{chunk-AURZZYMD.js → chunk-ZIVSSTUG.js} +4 -4
  137. package/chunks/{chunk-UOZWKTQG.js → chunk-ZPAHLFZU.js} +2 -2
  138. package/chunks/{chunk-34Z3U5RQ.js → chunk-ZQIYGQCG.js} +765 -168
  139. package/chunks/{computer-use-HM37RX6A.js → computer-use-NADT7ULB.js} +26 -27
  140. package/chunks/{config-utils-NV2SVGPB.js → config-utils-IQQT3GCI.js} +3 -2
  141. package/chunks/{contextCommand-OF5SFGH2.js → contextCommand-U7NEJYJ7.js} +28 -29
  142. package/chunks/{create-sub-session-INX7TXJI.js → create-sub-session-EAB2U5XW.js} +2 -2
  143. package/chunks/{create-sub-session-KPRT7ECJ.js → create-sub-session-SUN33INC.js} +26 -27
  144. package/chunks/{cron-create-AMBKGZX6.js → cron-create-GMVKSXZT.js} +4 -4
  145. package/chunks/{cron-delete-LRU4OJYG.js → cron-delete-VDZKUAVK.js} +4 -4
  146. package/chunks/{cron-list-WVP2JXER.js → cron-list-UG7C7RAR.js} +4 -4
  147. package/chunks/{daemon-ARHTSTXP.js → daemon-SJXEKP3H.js} +773 -126
  148. package/chunks/daemon-status-provider-WIIYLGZJ.js +74 -0
  149. package/chunks/{de-EBJN3OVN.js → de-NOXPCSYN.js} +9 -1
  150. package/chunks/{dist-XKU3ABM5.js → dist-4WCQEZIN.js} +4 -51
  151. package/chunks/{dist-QYCAEZIT.js → dist-DOPL5LSQ.js} +5 -1
  152. package/chunks/{dist-WKPOYU7O.js → dist-GXJVCOS7.js} +1 -1
  153. package/chunks/{dist-R7LN5AZE.js → dist-PX2ERZ6I.js} +2 -2
  154. package/chunks/{dist-PNVLTKTL.js → dist-V2YVLYOW.js} +215 -33
  155. package/chunks/{dist-VHV4EVHG.js → dist-VYWUKURL.js} +1 -1
  156. package/chunks/{earlyInputCapture-3VTHRC4C.js → earlyInputCapture-6FRM6UMU.js} +27 -28
  157. package/chunks/{edit-VNI4NJ73.js → edit-7GOIQTCZ.js} +27 -28
  158. package/chunks/{en-5A6LA7RK.js → en-JFVULHTB.js} +11 -1
  159. package/chunks/{enter-worktree-IYYBKPZT.js → enter-worktree-476E6WIK.js} +26 -27
  160. package/chunks/{enterPlanMode-GMC5FD5A.js → enterPlanMode-IRJM6W3C.js} +42 -28
  161. package/chunks/{environment-5HSSRMJ7.js → environment-ROMULS2X.js} +30 -30
  162. package/chunks/{errors-HMFCJJ7P.js → errors-OUIWPUDY.js} +28 -29
  163. package/chunks/{exit-worktree-6BHCMP5G.js → exit-worktree-PPSFK753.js} +26 -27
  164. package/chunks/{exitPlanMode-CJW7G74W.js → exitPlanMode-YKQMD4D7.js} +26 -27
  165. package/chunks/{fast-path-FRDMDVHG.js → fast-path-CNK2HHKH.js} +3 -3
  166. package/chunks/{fast-path-settings-5QZE64HR.js → fast-path-settings-DAOVFADC.js} +6 -4
  167. package/chunks/{fr-YXRABLYZ.js → fr-HVFNU42H.js} +9 -1
  168. package/chunks/{gemini-QYSEGHAX.js → gemini-WQNFT6TR.js} +216 -90
  169. package/chunks/{geminiContentGenerator-J7YNZDYP.js → geminiContentGenerator-4QJH2JDP.js} +4 -4
  170. package/chunks/{glob-BRCSGFOT.js → glob-36TVLBWW.js} +28 -28
  171. package/chunks/{grep-EE2DUOSY.js → grep-QTYLNO2M.js} +26 -27
  172. package/chunks/{handleAutoUpdate-5NWTLR67.js → handleAutoUpdate-36FQFODK.js} +30 -31
  173. package/chunks/{i18n-BASPENNQ.js → i18n-JUGYPVSP.js} +27 -28
  174. package/chunks/initializer-OBBJUS25.js +72 -0
  175. package/chunks/{installationInfo-W6V4DT7W.js → installationInfo-MCKTPX64.js} +27 -28
  176. package/chunks/{ja-7VQOANVG.js → ja-PY5AF544.js} +10 -2
  177. package/chunks/{keychain-token-storage-VKUBNCP4.js → keychain-token-storage-AU22CQI6.js} +2 -2
  178. package/chunks/list-VW5QY4VJ.js +75 -0
  179. package/chunks/loadedSettingsAdapter-IELOOXG6.js +69 -0
  180. package/chunks/{loop-wakeup-WX7BLWWP.js → loop-wakeup-QXWZSCYM.js} +5 -5
  181. package/chunks/{ls-ZB2BDP6T.js → ls-2OUTG3IZ.js} +4 -4
  182. package/chunks/{lsp-V5DN4YUJ.js → lsp-4VMNXZW6.js} +2 -2
  183. package/chunks/mcp-Q3EC37ZS.js +69 -0
  184. package/chunks/{monitor-X5Z3H4FY.js → monitor-DCZ27AFR.js} +26 -27
  185. package/chunks/nonInteractiveCli-KXD7PFO4.js +128 -0
  186. package/chunks/{notebook-edit-TRM2QIJK.js → notebook-edit-YU4XF5LI.js} +27 -28
  187. package/chunks/{openaiContentGenerator-AAYONPMF.js → openaiContentGenerator-KL5WER2D.js} +13 -13
  188. package/chunks/{pidfile-D4I4FTVA.js → pidfile-WBOD7EJV.js} +27 -28
  189. package/chunks/processUtils-AOV4R34M.js +29 -0
  190. package/chunks/{pt-2C6YCSHL.js → pt-A3PRQXMU.js} +9 -1
  191. package/chunks/{qwenContentGenerator-K3HZ2H76.js → qwenContentGenerator-YIGBHYE3.js} +28 -29
  192. package/chunks/{qwenOAuth2-PJQ27GSO.js → qwenOAuth2-LEYOU7RU.js} +5 -5
  193. package/chunks/{read-file-7SZSIZOL.js → read-file-WVL4Y76X.js} +9 -9
  194. package/chunks/{read-mcp-resource-SM5DA4RG.js → read-mcp-resource-JUFHCKSC.js} +2 -2
  195. package/chunks/{record-artifact-4XKZX3UW.js → record-artifact-DWSMBXYY.js} +2 -2
  196. package/chunks/{ripGrep-YNPFVCZP.js → ripGrep-6GSWJERP.js} +26 -27
  197. package/chunks/{ru-6BBHVZZV.js → ru-IBCWUTOC.js} +9 -1
  198. package/chunks/{run-qwen-serve-DMWV5N6L.js → run-qwen-serve-QYUQMEDT.js} +1233 -371
  199. package/chunks/{runtime-57WWRVHN.js → runtime-K2YZCNB3.js} +42 -38
  200. package/chunks/{scheduler-YBLGWSIL.js → scheduler-EQCSN7QV.js} +26 -27
  201. package/chunks/{send-message-F36YD6KQ.js → send-message-JZ752NWD.js} +3 -3
  202. package/chunks/{serve-R63NK3CV.js → serve-DX5UGZD4.js} +36 -35
  203. package/chunks/{server-Z22GCAXP.js → server-T6HJH3DR.js} +5869 -1398
  204. package/chunks/{session-HKAAI7BN.js → session-SNU6ACY6.js} +299 -100
  205. package/chunks/{settings-3EYN66GK.js → settings-AKHZZNEL.js} +34 -33
  206. package/chunks/{shell-6YXINTWJ.js → shell-EY74IEZK.js} +28 -27
  207. package/chunks/{skill-OO57P4X6.js → skill-DPU62O3H.js} +11 -11
  208. package/chunks/{spawnChannel-JD7G4VU6.js → spawnChannel-RQZRWJ2V.js} +28 -30
  209. package/chunks/{src-G5UPLZSZ.js → src-7FITDSVC.js} +164 -52
  210. package/chunks/{standalone-update-OB7F4JPZ.js → standalone-update-XO3RK6DO.js} +28 -29
  211. package/chunks/{startInteractiveUI-73EGLIIH.js → startInteractiveUI-DVWZRHYQ.js} +728 -382
  212. package/chunks/{syntheticOutput-34H7LGA7.js → syntheticOutput-LELY6HAI.js} +3 -3
  213. package/chunks/{task-create-FRGOEIKY.js → task-create-QY3BIMNM.js} +8 -7
  214. package/chunks/{task-list-OW766BXZ.js → task-list-D2U47WBJ.js} +6 -5
  215. package/chunks/{task-stop-SIR5SNBN.js → task-stop-N6E5IYLH.js} +2 -2
  216. package/chunks/{task-update-YRA532MT.js → task-update-HJCQILLB.js} +8 -7
  217. package/chunks/{team-create-PECAAPXK.js → team-create-FOSRT62K.js} +26 -27
  218. package/chunks/{team-delete-6OSECUZC.js → team-delete-RCWYDRF4.js} +6 -5
  219. package/chunks/{team-plan-approval-L6F434RY.js → team-plan-approval-6VUDV27J.js} +26 -27
  220. package/chunks/{theme-manager-ZG4RY6GU.js → theme-manager-6UT6IO5T.js} +27 -28
  221. package/chunks/{todoWrite-YDMFEV4G.js → todoWrite-FKCGATPJ.js} +4 -4
  222. package/chunks/{tool-search-THVIWAPB.js → tool-search-ASSFMMN5.js} +10 -10
  223. package/chunks/{total-session-admission-JOKNRIIA.js → total-session-admission-YYWUO23H.js} +32 -35
  224. package/chunks/tree-sitter-YJVE2ZUK.js +2980 -0
  225. package/chunks/{trustedFolders-EOGT3UVS.js → trustedFolders-4BWV2IBK.js} +29 -29
  226. package/chunks/types-ML3TRJQ5.js +16 -0
  227. package/chunks/update-relaunch-74DLGH73.js +87 -0
  228. package/chunks/{updateCheck-2KYEYVSB.js → updateCheck-CRFCGFO5.js} +31 -30
  229. package/chunks/{validateNonInterActiveAuth-EN6ZQSR2.js → validateNonInterActiveAuth-BTTEPBGQ.js} +76 -73
  230. package/chunks/{version-3UEA6ZIR.js → version-Y5JE5Q63.js} +1 -1
  231. package/chunks/{web-fetch-PAAEQKBW.js → web-fetch-CFCWTCAP.js} +5 -6
  232. package/chunks/{workflow-QCCCMYP3.js → workflow-6WC7VPQN.js} +27 -28
  233. package/chunks/workspace-providers-status-RVG2C5ZS.js +72 -0
  234. package/chunks/workspace-registration-store-SLEU3D3X.js +27 -0
  235. package/chunks/{workspace-registry-24QFLQYH.js → workspace-registry-QMWGVOTF.js} +32 -35
  236. package/chunks/workspace-service-G572JSEU.js +84 -0
  237. package/chunks/workspace-skills-status-VSSMSMNK.js +71 -0
  238. package/chunks/{write-file-I3MUDRIE.js → write-file-5XVDRORP.js} +27 -28
  239. package/chunks/{zh-RQE7I22T.js → zh-PAUNIMHQ.js} +12 -2
  240. package/chunks/{zh-TW-TBPQGHKH.js → zh-TW-GNEUIUFF.js} +12 -2
  241. package/cli-entry.js +92 -8
  242. package/cli.js +11 -11
  243. package/locales/ca.js +16 -0
  244. package/locales/de.js +16 -0
  245. package/locales/en.js +19 -0
  246. package/locales/fr.js +16 -0
  247. package/locales/ja.js +17 -1
  248. package/locales/pt.js +16 -0
  249. package/locales/ru.js +16 -0
  250. package/locales/zh-TW.js +20 -1
  251. package/locales/zh.js +20 -1
  252. package/package.json +3 -3
  253. package/web-shell/assets/{arc-C15hqnJe.js → arc-vx1tRwnX.js} +1 -1
  254. package/web-shell/assets/{architectureDiagram-3BPJPVTR-B-At37J_.js → architectureDiagram-3BPJPVTR-DBi6iUA1.js} +1 -1
  255. package/web-shell/assets/{blockDiagram-GPEHLZMM-B51wjcU7.js → blockDiagram-GPEHLZMM-Ga9JJ4Ak.js} +1 -1
  256. package/web-shell/assets/{c4Diagram-AAUBKEIU-xBK7BAwN.js → c4Diagram-AAUBKEIU-D8Vi5FYw.js} +1 -1
  257. package/web-shell/assets/channel-B29zQDTL.js +1 -0
  258. package/web-shell/assets/{chunk-2J33WTMH-xKmLg7Yr.js → chunk-2J33WTMH-CSV6yQpU.js} +1 -1
  259. package/web-shell/assets/{chunk-4BX2VUAB-BfkdKZCM.js → chunk-4BX2VUAB-toYlppdI.js} +1 -1
  260. package/web-shell/assets/{chunk-55IACEB6-DT713sZf.js → chunk-55IACEB6-DbjzuyAr.js} +1 -1
  261. package/web-shell/assets/{chunk-727SXJPM-CYEeAamv.js → chunk-727SXJPM-IkkSjSkk.js} +1 -1
  262. package/web-shell/assets/{chunk-AQP2D5EJ-DBN-5CFd.js → chunk-AQP2D5EJ-D5wUL6Zm.js} +1 -1
  263. package/web-shell/assets/{chunk-FMBD7UC4-CGZKk4PH.js → chunk-FMBD7UC4-C3o2DXG0.js} +1 -1
  264. package/web-shell/assets/{chunk-ND2GUHAM-qQbC2O-y.js → chunk-ND2GUHAM-CutIi14T.js} +1 -1
  265. package/web-shell/assets/{chunk-QZHKN3VN-B3zeXwsX.js → chunk-QZHKN3VN-DZ0NRHH-.js} +1 -1
  266. package/web-shell/assets/classDiagram-4FO5ZUOK-BNGI2SvC.js +1 -0
  267. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BNGI2SvC.js +1 -0
  268. package/web-shell/assets/{cose-bilkent-S5V4N54A-BKsl1Wvy.js → cose-bilkent-S5V4N54A-B3Dl88UJ.js} +1 -1
  269. package/web-shell/assets/{dagre-BM42HDAG-CuuuLiBK.js → dagre-BM42HDAG-DfTxfF6-.js} +1 -1
  270. package/web-shell/assets/{diagram-2AECGRRQ-CG4_eKiV.js → diagram-2AECGRRQ-CJyH98yO.js} +1 -1
  271. package/web-shell/assets/{diagram-5GNKFQAL-DSFTmZB1.js → diagram-5GNKFQAL-EbOiJNmW.js} +1 -1
  272. package/web-shell/assets/{diagram-KO2AKTUF-BxwlEHn8.js → diagram-KO2AKTUF-AYNqpqqA.js} +1 -1
  273. package/web-shell/assets/{diagram-LMA3HP47-BUAg-jMG.js → diagram-LMA3HP47-BY5VPa4H.js} +1 -1
  274. package/web-shell/assets/{diagram-OG6HWLK6-BFM2jlO5.js → diagram-OG6HWLK6-BhMYAKlk.js} +1 -1
  275. package/web-shell/assets/{erDiagram-TEJ5UH35-CerbFPa2.js → erDiagram-TEJ5UH35-Bp8S_F9l.js} +1 -1
  276. package/web-shell/assets/{flowDiagram-I6XJVG4X-BNeZz5Zz.js → flowDiagram-I6XJVG4X-az3TE9PU.js} +1 -1
  277. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CTOogLaM.js → ganttDiagram-6RSMTGT7-CfkAEpCe.js} +3 -3
  278. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-yxSFkXPj.js → gitGraphDiagram-PVQCEYII-D1QmjMCy.js} +1 -1
  279. package/web-shell/assets/index-C8sDwQUv.js +1130 -0
  280. package/web-shell/assets/index-CaBoc5bb.js +3 -0
  281. package/web-shell/assets/index-Dpg5Wymg.css +5 -0
  282. package/web-shell/assets/{infoDiagram-5YYISTIA-DYdAUevm.js → infoDiagram-5YYISTIA-D3ompLrG.js} +1 -1
  283. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CNuijZ90.js → ishikawaDiagram-YF4QCWOH-D3MRWp9I.js} +1 -1
  284. package/web-shell/assets/{journeyDiagram-JHISSGLW-BTyiuonf.js → journeyDiagram-JHISSGLW-DVkKCa44.js} +1 -1
  285. package/web-shell/assets/{kanban-definition-UN3LZRKU-DPJo0Uow.js → kanban-definition-UN3LZRKU-BLif81wF.js} +1 -1
  286. package/web-shell/assets/{linear-C8wKCbIC.js → linear-BDU96EGS.js} +1 -1
  287. package/web-shell/assets/{mermaid.core-BV5o7nW5.js → mermaid.core-B-CwC26B.js} +5 -5
  288. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BtLcBmSt.js → mindmap-definition-RKZ34NQL-CS1WOJ4G.js} +1 -1
  289. package/web-shell/assets/{pieDiagram-4H26LBE5-C22J7A9Q.js → pieDiagram-4H26LBE5-BzgtNXVP.js} +1 -1
  290. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DSL10wiL.js → quadrantDiagram-W4KKPZXB-BRfGC8MA.js} +1 -1
  291. package/web-shell/assets/{requirementDiagram-4Y6WPE33-feqh0UpX.js → requirementDiagram-4Y6WPE33-CPBZkC7g.js} +1 -1
  292. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Z4OVaWaZ.js → sankeyDiagram-5OEKKPKP-nqNvinIk.js} +1 -1
  293. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DIluIcb1.js → sequenceDiagram-3UESZ5HK-CM_Wdjh3.js} +1 -1
  294. package/web-shell/assets/{stateDiagram-AJRCARHV-hlhnuoYH.js → stateDiagram-AJRCARHV-L0y-48VE.js} +1 -1
  295. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BX1DdF8s.js +1 -0
  296. package/web-shell/assets/{timeline-definition-PNZ67QCA-Dqf_CqgL.js → timeline-definition-PNZ67QCA-B_n5rb3A.js} +1 -1
  297. package/web-shell/assets/{vennDiagram-CIIHVFJN-DD2QhaTX.js → vennDiagram-CIIHVFJN-C9NmLV5e.js} +1 -1
  298. package/web-shell/assets/{wardley-L42UT6IY-B2uI85U_.js → wardley-L42UT6IY-CrefK9gt.js} +1 -1
  299. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-U1aJX71g.js → wardleyDiagram-YWT4CUSO-BUccf-bC.js} +1 -1
  300. package/web-shell/assets/{xychartDiagram-2RQKCTM6-C0ODHUee.js → xychartDiagram-2RQKCTM6-DM6ef92l.js} +1 -1
  301. package/web-shell/index.html +2 -2
  302. package/chunks/chunk-524RQP4Q.js +0 -305
  303. package/chunks/chunk-CARU2RR2.js +0 -24
  304. package/chunks/chunk-CU3L64TP.js +0 -93
  305. package/chunks/chunk-OCPBI7J5.js +0 -18
  306. package/chunks/chunk-TEGEBB2I.js +0 -122
  307. package/chunks/chunk-VTU57BWZ.js +0 -30
  308. package/chunks/daemon-status-provider-B2UTZUJ2.js +0 -76
  309. package/chunks/initializer-UTQ7FB7G.js +0 -71
  310. package/chunks/list-DEICDL65.js +0 -74
  311. package/chunks/loadedSettingsAdapter-NOWEGDYJ.js +0 -68
  312. package/chunks/mcp-L5JXEEIA.js +0 -68
  313. package/chunks/nonInteractiveCli-LS2K4X6A.js +0 -124
  314. package/chunks/types-JNKGKUJT.js +0 -12
  315. package/chunks/workspace-providers-status-4KMGETOJ.js +0 -71
  316. package/chunks/workspace-service-RVLBMSMZ.js +0 -80
  317. package/chunks/workspace-skills-status-DS4ZVFTO.js +0 -70
  318. package/web-shell/assets/channel-CLiQD50f.js +0 -1
  319. package/web-shell/assets/classDiagram-4FO5ZUOK-D3sYqow5.js +0 -1
  320. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-D3sYqow5.js +0 -1
  321. package/web-shell/assets/index-D5IWFVk1.css +0 -5
  322. package/web-shell/assets/index-KFJRDhX7.js +0 -783
  323. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BhQMwgpl.js +0 -1
@@ -0,0 +1,59 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ runExitCleanup
5
+ } from "./chunk-HUEWOHKV.js";
6
+ import {
7
+ init_esbuild_shims
8
+ } from "./chunk-5O2XNYP6.js";
9
+ import {
10
+ __name
11
+ } from "./chunk-J2S4EL5Y.js";
12
+
13
+ // packages/cli/src/utils/processUtils.ts
14
+ init_esbuild_shims();
15
+ var RELAUNCH_EXIT_CODE = 42;
16
+ var UPDATE_RELAUNCH_EXIT_CODE = 43;
17
+ var UPDATE_COMPLETE_EXIT_CODE = 44;
18
+ var SKIP_UPDATE_CHECK_ENV_VAR = "QWEN_CODE_SKIP_UPDATE_CHECK_ONCE";
19
+ var CUSTOM_SANDBOX_IMAGE_ENV_VAR = "QWEN_CODE_CUSTOM_SANDBOX_IMAGE";
20
+ var HOST_UPDATE_RELAUNCH_ENV_VAR = "QWEN_CODE_HOST_UPDATE_RELAUNCH";
21
+ var UPDATE_ON_EXIT_MESSAGE = "qwen-code:update-on-exit";
22
+ async function relaunchApp() {
23
+ await runExitCleanup();
24
+ process.exit(RELAUNCH_EXIT_CODE);
25
+ }
26
+ __name(relaunchApp, "relaunchApp");
27
+ async function relaunchForUpdate() {
28
+ await runExitCleanup();
29
+ process.exit(UPDATE_RELAUNCH_EXIT_CODE);
30
+ }
31
+ __name(relaunchForUpdate, "relaunchForUpdate");
32
+ function requestUpdateOnExit() {
33
+ if (!process.send) return false;
34
+ try {
35
+ process.send({ type: UPDATE_ON_EXIT_MESSAGE });
36
+ return true;
37
+ } catch {
38
+ return false;
39
+ }
40
+ }
41
+ __name(requestUpdateOnExit, "requestUpdateOnExit");
42
+
43
+ export {
44
+ RELAUNCH_EXIT_CODE,
45
+ UPDATE_RELAUNCH_EXIT_CODE,
46
+ UPDATE_COMPLETE_EXIT_CODE,
47
+ SKIP_UPDATE_CHECK_ENV_VAR,
48
+ CUSTOM_SANDBOX_IMAGE_ENV_VAR,
49
+ HOST_UPDATE_RELAUNCH_ENV_VAR,
50
+ UPDATE_ON_EXIT_MESSAGE,
51
+ relaunchApp,
52
+ relaunchForUpdate,
53
+ requestUpdateOnExit
54
+ };
55
+ /**
56
+ * @license
57
+ * Copyright 2025 Google LLC
58
+ * SPDX-License-Identifier: Apache-2.0
59
+ */
@@ -5,17 +5,17 @@ import {
5
5
  Text,
6
6
  require_jsx_runtime,
7
7
  theme
8
- } from "./chunk-CNEIYWSA.js";
8
+ } from "./chunk-OVIV236K.js";
9
9
  import {
10
10
  require_react
11
11
  } from "./chunk-HTHUX2T5.js";
12
12
  import {
13
13
  stringWidth,
14
14
  toCodePoints
15
- } from "./chunk-Q6I5QHMH.js";
15
+ } from "./chunk-MFNKBXYH.js";
16
16
  import {
17
17
  createDebugLogger
18
- } from "./chunk-J4TSQ5EQ.js";
18
+ } from "./chunk-7NFB7LBQ.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -5,11 +5,11 @@ import {
5
5
  } from "./chunk-VGC4I5JJ.js";
6
6
  import {
7
7
  atomicWriteJSON
8
- } from "./chunk-ZLXQN2QS.js";
8
+ } from "./chunk-WIEO4CWB.js";
9
9
  import {
10
10
  Storage,
11
11
  getProjectHash
12
- } from "./chunk-J4TSQ5EQ.js";
12
+ } from "./chunk-7NFB7LBQ.js";
13
13
  import {
14
14
  init_esbuild_shims
15
15
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  SessionNotFoundError
5
- } from "./chunk-IAVB3HM3.js";
5
+ } from "./chunk-L4Y55KIS.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -38,6 +38,12 @@ function createWorkspaceSessionOwnerIndex() {
38
38
  register,
39
39
  remove,
40
40
  getWorkspaceCwds: /* @__PURE__ */ __name((sessionId) => [...bySessionId.get(sessionId) ?? []], "getWorkspaceCwds"),
41
+ removeWorkspace: /* @__PURE__ */ __name((workspaceCwd) => {
42
+ for (const [sessionId, owners] of bySessionId) {
43
+ owners.delete(workspaceCwd);
44
+ if (owners.size === 0) bySessionId.delete(sessionId);
45
+ }
46
+ }, "removeWorkspace"),
41
47
  handleBridgeSessionLifecycle: /* @__PURE__ */ __name((event) => {
42
48
  if (event.type === "registered") {
43
49
  register(event.sessionId, event.workspaceCwd);
@@ -81,11 +87,15 @@ function createWorkspaceRegistry(inputRuntimes, options = {}) {
81
87
  byId.set(runtime.workspaceId, runtime);
82
88
  }
83
89
  const runtimes = [...inputRuntimes];
90
+ const states = new WeakMap(
91
+ inputRuntimes.map((runtime) => [runtime, "active"])
92
+ );
84
93
  const primary = primaryRuntimes[0];
85
94
  const sessionOwnerIndex = options.sessionOwnerIndex;
86
95
  const scanLiveOwners = /* @__PURE__ */ __name((sessionId) => {
87
96
  const matches = [];
88
97
  for (const runtime of runtimes) {
98
+ if (states.get(runtime) !== "active") continue;
89
99
  try {
90
100
  runtime.bridge.getSessionSummary(sessionId);
91
101
  matches.push(runtime);
@@ -107,10 +117,24 @@ function createWorkspaceRegistry(inputRuntimes, options = {}) {
107
117
  primary,
108
118
  // Return a frozen snapshot: `runtimes` is mutable internally (see `add`),
109
119
  // but callers must not be able to push/splice into the registry's state.
110
- list: /* @__PURE__ */ __name(() => Object.freeze([...runtimes]), "list"),
111
- getByWorkspaceCwd: /* @__PURE__ */ __name((workspaceCwd) => byCwd.get(workspaceCwd), "getByWorkspaceCwd"),
112
- getByWorkspaceId: /* @__PURE__ */ __name((workspaceId) => byId.get(workspaceId), "getByWorkspaceId"),
113
- resolveWorkspaceCwd: /* @__PURE__ */ __name((workspaceCwd) => workspaceCwd === void 0 ? primary : byCwd.get(workspaceCwd), "resolveWorkspaceCwd"),
120
+ list: /* @__PURE__ */ __name(() => Object.freeze(
121
+ runtimes.filter((runtime) => states.get(runtime) === "active")
122
+ ), "list"),
123
+ listManaged: /* @__PURE__ */ __name(() => Object.freeze([...runtimes]), "listManaged"),
124
+ getByWorkspaceCwd: /* @__PURE__ */ __name((workspaceCwd) => {
125
+ const runtime = byCwd.get(workspaceCwd);
126
+ return runtime && states.get(runtime) === "active" ? runtime : void 0;
127
+ }, "getByWorkspaceCwd"),
128
+ getByWorkspaceId: /* @__PURE__ */ __name((workspaceId) => {
129
+ const runtime = byId.get(workspaceId);
130
+ return runtime && states.get(runtime) === "active" ? runtime : void 0;
131
+ }, "getByWorkspaceId"),
132
+ getManagedByWorkspaceCwd: /* @__PURE__ */ __name((workspaceCwd) => byCwd.get(workspaceCwd), "getManagedByWorkspaceCwd"),
133
+ getManagedByWorkspaceId: /* @__PURE__ */ __name((workspaceId) => byId.get(workspaceId), "getManagedByWorkspaceId"),
134
+ resolveWorkspaceCwd: /* @__PURE__ */ __name((workspaceCwd) => workspaceCwd === void 0 ? primary : (() => {
135
+ const runtime = byCwd.get(workspaceCwd);
136
+ return runtime && states.get(runtime) === "active" ? runtime : void 0;
137
+ })(), "resolveWorkspaceCwd"),
114
138
  add: /* @__PURE__ */ __name((runtime) => {
115
139
  if (byCwd.has(runtime.workspaceCwd)) {
116
140
  throw new Error(
@@ -125,17 +149,36 @@ function createWorkspaceRegistry(inputRuntimes, options = {}) {
125
149
  byCwd.set(runtime.workspaceCwd, runtime);
126
150
  byId.set(runtime.workspaceId, runtime);
127
151
  runtimes.push(runtime);
152
+ states.set(runtime, "active");
128
153
  }, "add"),
154
+ beginDrain: /* @__PURE__ */ __name((runtime) => {
155
+ if (runtime.primary || states.get(runtime) !== "active") return false;
156
+ states.set(runtime, "draining");
157
+ return true;
158
+ }, "beginDrain"),
159
+ cancelDrain: /* @__PURE__ */ __name((runtime) => {
160
+ if (states.get(runtime) === "draining") states.set(runtime, "active");
161
+ }, "cancelDrain"),
162
+ completeDrain: /* @__PURE__ */ __name((runtime) => {
163
+ if (runtime.primary || states.get(runtime) !== "draining") return;
164
+ states.set(runtime, "removed");
165
+ byCwd.delete(runtime.workspaceCwd);
166
+ byId.delete(runtime.workspaceId);
167
+ const index = runtimes.indexOf(runtime);
168
+ if (index >= 0) runtimes.splice(index, 1);
169
+ sessionOwnerIndex?.removeWorkspace(runtime.workspaceCwd);
170
+ }, "completeDrain"),
129
171
  resolveLiveSessionOwner: /* @__PURE__ */ __name((sessionId) => {
130
172
  const indexedCwds = sessionOwnerIndex?.getWorkspaceCwds(sessionId) ?? [];
131
173
  if (indexedCwds.length > 0) {
132
174
  const matches = [];
133
175
  for (const workspaceCwd of indexedCwds) {
134
176
  const runtime = byCwd.get(workspaceCwd);
135
- if (!runtime) {
177
+ if (!runtime || states.get(runtime) === "removed") {
136
178
  sessionOwnerIndex?.remove(sessionId, workspaceCwd);
137
179
  continue;
138
180
  }
181
+ if (states.get(runtime) !== "active") continue;
139
182
  try {
140
183
  runtime.bridge.getSessionSummary(sessionId);
141
184
  matches.push(runtime);
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-YAUFFXDS.js";
5
+ } from "./chunk-7GM2RWCR.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  BaseJsonOutputAdapter
5
- } from "./chunk-B4G2WOFA.js";
5
+ } from "./chunk-Q5MKHNIR.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -10,22 +10,24 @@ import {
10
10
  getLanguageNameFromLocale,
11
11
  getLanguageSettingsOptions,
12
12
  t
13
- } from "./chunk-YAUFFXDS.js";
13
+ } from "./chunk-7GM2RWCR.js";
14
14
  import {
15
15
  getHomeEnvFallbackVars,
16
16
  loadEnvironment,
17
17
  preResolveHomeEnvOverrides
18
- } from "./chunk-SCGXUJBT.js";
18
+ } from "./chunk-6LI3L22E.js";
19
19
  import {
20
20
  CONSOLIDATED_DISABLE_KEYS,
21
21
  V1_INDICATOR_KEYS,
22
22
  V1_TO_V2_MIGRATION_MAP,
23
23
  V1_TO_V2_PRESERVE_DISABLE_MAP,
24
24
  V2_CONTAINER_KEYS,
25
- getSystemDefaultsPath,
26
- getSystemSettingsPath,
27
25
  resolveEnvVarsInObject
28
- } from "./chunk-3BTRNWWD.js";
26
+ } from "./chunk-GOXKNSDZ.js";
27
+ import {
28
+ getSystemDefaultsPath,
29
+ getSystemSettingsPath
30
+ } from "./chunk-IDS7MSUP.js";
29
31
  import {
30
32
  ENV_CORRUPTED_PATH,
31
33
  ENV_WAS_RECOVERED
@@ -33,10 +35,10 @@ import {
33
35
  import {
34
36
  isWorkspaceTrusted,
35
37
  updateSettingsFilePreservingFormat
36
- } from "./chunk-HKMAENAO.js";
38
+ } from "./chunk-QDTGDM2T.js";
37
39
  import {
38
40
  require_strip_json_comments
39
- } from "./chunk-RDJSGHZE.js";
41
+ } from "./chunk-ALGGS7UH.js";
40
42
  import {
41
43
  DEFAULT_MAX_SUBAGENT_DEPTH,
42
44
  DEFAULT_MAX_TOOL_CALLS_PER_TURN,
@@ -46,20 +48,20 @@ import {
46
48
  DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
47
49
  DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
48
50
  stripRuntimeSnapshotPrefix
49
- } from "./chunk-NVYTCB5Z.js";
51
+ } from "./chunk-SA6QVLWI.js";
50
52
  import {
51
53
  DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
52
- } from "./chunk-4QLQE5WJ.js";
54
+ } from "./chunk-L5U3ELZX.js";
53
55
  import {
54
56
  DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
55
57
  SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
56
- } from "./chunk-3VAGG5T5.js";
58
+ } from "./chunk-YYBZUIPL.js";
57
59
  import {
58
60
  FatalConfigError,
59
61
  Storage,
60
62
  createDebugLogger,
61
63
  getErrorMessage
62
- } from "./chunk-J4TSQ5EQ.js";
64
+ } from "./chunk-7NFB7LBQ.js";
63
65
  import {
64
66
  init_esbuild_shims
65
67
  } from "./chunk-5O2XNYP6.js";
@@ -100,6 +102,18 @@ function getPersistScopeForModelSelection(settings) {
100
102
  return getModelProvidersOwnerScope(settings) ?? "User" /* User */;
101
103
  }
102
104
  __name(getPersistScopeForModelSelection, "getPersistScopeForModelSelection");
105
+ function getWritableScopes(settings) {
106
+ return settings.isTrusted ? ["Workspace" /* Workspace */, "User" /* User */] : ["User" /* User */];
107
+ }
108
+ __name(getWritableScopes, "getWritableScopes");
109
+ function getOwnKeyScope(settings, key) {
110
+ for (const scope of getWritableScopes(settings)) {
111
+ const obj = settings.forScope(scope).settings;
112
+ if (Object.prototype.hasOwnProperty.call(obj, key)) return scope;
113
+ }
114
+ return void 0;
115
+ }
116
+ __name(getOwnKeyScope, "getOwnKeyScope");
103
117
 
104
118
  // packages/cli/src/config/settingsSchema.ts
105
119
  init_esbuild_shims();
@@ -486,6 +500,19 @@ var SETTINGS_SCHEMA = {
486
500
  description: "Play terminal bell sound when response completes or needs approval.",
487
501
  showInDialog: true
488
502
  },
503
+ notificationMode: {
504
+ type: "enum",
505
+ label: "Notification Mode",
506
+ category: "General",
507
+ requiresRestart: false,
508
+ default: "all",
509
+ description: 'Which unfocused-terminal events fire a bell/OS notification. "all" fires on every tool approval prompt AND on task completion (current behavior). "task-complete" suppresses the per-approval notification and only fires when a long task returns to idle. Requires `terminalBell` to be enabled; otherwise no notifications fire regardless of mode.',
510
+ showInDialog: true,
511
+ options: [
512
+ { value: "all", label: "All (approvals + task completion)" },
513
+ { value: "task-complete", label: "Task completion only" }
514
+ ]
515
+ },
489
516
  preventSystemSleep: {
490
517
  type: "boolean",
491
518
  label: "Prevent System Sleep While Running",
@@ -1173,12 +1200,12 @@ var SETTINGS_SCHEMA = {
1173
1200
  ]
1174
1201
  },
1175
1202
  maxSessionTurns: {
1176
- type: "number",
1203
+ type: "integer",
1177
1204
  label: "Max Session Turns",
1178
1205
  category: "Model",
1179
1206
  requiresRestart: false,
1180
1207
  default: -1,
1181
- description: "Maximum number of user/model/tool turns to keep in a session. -1 means unlimited.",
1208
+ description: "Maximum number of user/model/tool turns to keep in a session. Must be an integer; -1 means unlimited.",
1182
1209
  showInDialog: false
1183
1210
  },
1184
1211
  maxWallTimeSeconds: {
@@ -1254,7 +1281,7 @@ var SETTINGS_SCHEMA = {
1254
1281
  showInDialog: false
1255
1282
  },
1256
1283
  maxToolCallsPerTurn: {
1257
- type: "number",
1284
+ type: "integer",
1258
1285
  label: "Max Tool Calls Per Turn",
1259
1286
  category: "Model",
1260
1287
  requiresRestart: false,
@@ -1603,7 +1630,7 @@ var SETTINGS_SCHEMA = {
1603
1630
  label: "Enable Auto Skill",
1604
1631
  category: "Memory",
1605
1632
  requiresRestart: false,
1606
- default: true,
1633
+ default: false,
1607
1634
  description: "Enable background review for reusable project skills after tool-heavy sessions.",
1608
1635
  showInDialog: false
1609
1636
  },
@@ -1955,6 +1982,28 @@ var SETTINGS_SCHEMA = {
1955
1982
  default: false,
1956
1983
  description: "Show color in shell output.",
1957
1984
  showInDialog: false
1985
+ },
1986
+ defaultTimeoutMs: {
1987
+ type: "integer",
1988
+ minimum: 0,
1989
+ maximum: 6e5,
1990
+ label: "Default Command Timeout (ms)",
1991
+ category: "Tools",
1992
+ requiresRestart: true,
1993
+ default: void 0,
1994
+ description: "Default timeout, in milliseconds, for foreground shell commands started by the agent. A per-call timeout on the shell tool overrides this. When unset, foreground commands time out after 120000 ms (2 minutes). Set to 0 to disable the timeout.",
1995
+ showInDialog: false
1996
+ },
1997
+ heartbeatIntervalMs: {
1998
+ type: "integer",
1999
+ minimum: 0,
2000
+ maximum: 6e5,
2001
+ label: "Silent Command Heartbeat Interval (ms)",
2002
+ category: "Tools",
2003
+ requiresRestart: true,
2004
+ default: void 0,
2005
+ description: "Interval, in milliseconds, between liveness heartbeats emitted while a foreground shell command produces no output. Heartbeats are forwarded to ACP clients and stream-json consumers so they can tell a silent command from a dead session. When unset, heartbeats fire every 10000 ms (10 seconds). Set to 0 to disable heartbeats.",
2006
+ showInDialog: false
1958
2007
  }
1959
2008
  }
1960
2009
  },
@@ -2013,7 +2062,7 @@ var SETTINGS_SCHEMA = {
2013
2062
  label: "Tool Approval Mode",
2014
2063
  category: "Tools",
2015
2064
  requiresRestart: false,
2016
- default: "default" /* DEFAULT */,
2065
+ default: "auto" /* AUTO */,
2017
2066
  description: "Approval mode for tool usage. Controls how tools are approved before execution.",
2018
2067
  showInDialog: true,
2019
2068
  options: [
@@ -2407,9 +2456,29 @@ var SETTINGS_SCHEMA = {
2407
2456
  category: "Advanced",
2408
2457
  requiresRestart: false,
2409
2458
  default: {},
2410
- description: "Settings for multi-agent collaboration features (Arena, Team, Swarm).",
2459
+ description: "Settings for built-in agents and multi-agent collaboration features (Arena, Team, Swarm).",
2411
2460
  showInDialog: false,
2412
2461
  properties: {
2462
+ builtin: {
2463
+ type: "object",
2464
+ label: "Built-in Agents",
2465
+ category: "Advanced",
2466
+ requiresRestart: true,
2467
+ default: {},
2468
+ description: "Settings for built-in subagents.",
2469
+ showInDialog: false,
2470
+ properties: {
2471
+ exploreModel: {
2472
+ type: "string",
2473
+ label: "Explore Model",
2474
+ category: "Model",
2475
+ requiresRestart: true,
2476
+ default: "inherit",
2477
+ description: 'Model selector for the built-in Explore subagent. Use "inherit" for the main session model, "fast" for fastModel, a model ID, or an authType:model-id selector. Custom same-name agents are unaffected.',
2478
+ showInDialog: false
2479
+ }
2480
+ }
2481
+ },
2413
2482
  maxParallelAgents: {
2414
2483
  type: "number",
2415
2484
  label: "Max Parallel Agents",
@@ -2573,6 +2642,17 @@ var SETTINGS_SCHEMA = {
2573
2642
  mergeStrategy: "concat" /* CONCAT */,
2574
2643
  items: HOOK_DEFINITION_ITEMS
2575
2644
  },
2645
+ MessageDisplay: {
2646
+ type: "array",
2647
+ label: "Message Display Hooks",
2648
+ category: "Advanced",
2649
+ requiresRestart: false,
2650
+ default: [],
2651
+ description: "Hooks that execute repeatedly as the assistant reply streams, before the After Agent (Stop) hooks fire.",
2652
+ showInDialog: false,
2653
+ mergeStrategy: "concat" /* CONCAT */,
2654
+ items: HOOK_DEFINITION_ITEMS
2655
+ },
2576
2656
  Notification: {
2577
2657
  type: "array",
2578
2658
  label: "Notification Hooks",
@@ -4658,7 +4738,10 @@ function saveSettings(settingsFile, updates = settingsFile.originalSettings, rep
4658
4738
  __name(saveSettings, "saveSettings");
4659
4739
 
4660
4740
  export {
4741
+ getModelProvidersOwnerScope,
4661
4742
  getPersistScopeForModelSelection,
4743
+ getWritableScopes,
4744
+ getOwnKeyScope,
4662
4745
  TOGGLE_TYPES,
4663
4746
  OUTPUT_LANGUAGE_AUTO,
4664
4747
  isAutoLanguage,
@@ -0,0 +1,224 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ INBOXES_DIR,
5
+ LEADER_NAME,
6
+ TASKS_DIR,
7
+ TEAMMATE_COLORS,
8
+ TEAMS_DIR,
9
+ TEAM_CONFIG_FILENAME
10
+ } from "./chunk-CPBF7KYF.js";
11
+ import {
12
+ atomicWriteJSON
13
+ } from "./chunk-WIEO4CWB.js";
14
+ import {
15
+ Storage,
16
+ isNodeError
17
+ } from "./chunk-7NFB7LBQ.js";
18
+ import {
19
+ init_esbuild_shims
20
+ } from "./chunk-5O2XNYP6.js";
21
+ import {
22
+ __name
23
+ } from "./chunk-J2S4EL5Y.js";
24
+
25
+ // packages/core/src/agents/team/teamHelpers.ts
26
+ init_esbuild_shims();
27
+ import * as fs from "node:fs/promises";
28
+ import * as path from "node:path";
29
+ function getTeamsRootDir() {
30
+ return path.join(Storage.getGlobalQwenDir(), TEAMS_DIR);
31
+ }
32
+ __name(getTeamsRootDir, "getTeamsRootDir");
33
+ function getTeamDir(teamName) {
34
+ return path.join(getTeamsRootDir(), teamName);
35
+ }
36
+ __name(getTeamDir, "getTeamDir");
37
+ function getTeamFilePath(teamName) {
38
+ return path.join(getTeamDir(teamName), TEAM_CONFIG_FILENAME);
39
+ }
40
+ __name(getTeamFilePath, "getTeamFilePath");
41
+ function getInboxesDir(teamName) {
42
+ return path.join(getTeamDir(teamName), INBOXES_DIR);
43
+ }
44
+ __name(getInboxesDir, "getInboxesDir");
45
+ function getTasksDir(teamName) {
46
+ return path.join(Storage.getGlobalQwenDir(), TASKS_DIR, teamName);
47
+ }
48
+ __name(getTasksDir, "getTasksDir");
49
+ function sanitizeName(name) {
50
+ return name.toLowerCase().replace(/[^a-z0-9-]/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
51
+ }
52
+ __name(sanitizeName, "sanitizeName");
53
+ function formatAgentId(name, teamName) {
54
+ return `${sanitizeName(name)}@${sanitizeName(teamName)}`;
55
+ }
56
+ __name(formatAgentId, "formatAgentId");
57
+ function generateUniqueTeammateName(baseName, existingMembers) {
58
+ const sanitized = sanitizeName(baseName);
59
+ if (!sanitized) {
60
+ throw new Error(
61
+ `Teammate name "${baseName}" sanitizes to an empty string. Choose a name with at least one alphanumeric character.`
62
+ );
63
+ }
64
+ if (sanitized === LEADER_NAME) {
65
+ throw new Error(
66
+ `"${LEADER_NAME}" is reserved for the team leader. Choose a different teammate name.`
67
+ );
68
+ }
69
+ const existingNames = new Set(existingMembers.map((m) => m.name));
70
+ if (existingNames.has(sanitized)) {
71
+ const existingList = [...existingNames].join(", ") || "<none>";
72
+ throw new Error(
73
+ `A teammate named "${sanitized}" already exists in this team (existing: ${existingList}). Choose a different name.`
74
+ );
75
+ }
76
+ return sanitized;
77
+ }
78
+ __name(generateUniqueTeammateName, "generateUniqueTeammateName");
79
+ function assignTeammateColor(existingMembers) {
80
+ const usedColors = new Set(
81
+ existingMembers.map((m) => m.color).filter((c) => c !== void 0)
82
+ );
83
+ for (const color of TEAMMATE_COLORS) {
84
+ if (!usedColors.has(color)) {
85
+ return color;
86
+ }
87
+ }
88
+ return TEAMMATE_COLORS[existingMembers.length % TEAMMATE_COLORS.length];
89
+ }
90
+ __name(assignTeammateColor, "assignTeammateColor");
91
+ function clearTeammateColors(members) {
92
+ return members.map((m) => {
93
+ const { color: _, ...rest } = m;
94
+ return rest;
95
+ });
96
+ }
97
+ __name(clearTeammateColors, "clearTeammateColors");
98
+ function setMemberActive(members, agentId, isActive) {
99
+ return members.map((m) => m.agentId === agentId ? { ...m, isActive } : m);
100
+ }
101
+ __name(setMemberActive, "setMemberActive");
102
+ function findMemberById(members, agentId) {
103
+ return members.find((m) => m.agentId === agentId);
104
+ }
105
+ __name(findMemberById, "findMemberById");
106
+ function findMemberByName(members, name) {
107
+ const sanitized = sanitizeName(name);
108
+ return members.find((m) => m.name === sanitized);
109
+ }
110
+ __name(findMemberByName, "findMemberByName");
111
+ function classifyShutdownResponse(message) {
112
+ const trimmed = message.trimStart();
113
+ if (/^shutdown_approved\b/i.test(trimmed)) return "shutdown_approved";
114
+ if (/^shutdown_rejected\b/i.test(trimmed)) return "shutdown_rejected";
115
+ return void 0;
116
+ }
117
+ __name(classifyShutdownResponse, "classifyShutdownResponse");
118
+ async function readTeamFile(teamName) {
119
+ const filePath = getTeamFilePath(teamName);
120
+ try {
121
+ const raw = await fs.readFile(filePath, "utf-8");
122
+ return JSON.parse(raw);
123
+ } catch (err) {
124
+ if (isNodeError(err) && err.code === "ENOENT") {
125
+ return void 0;
126
+ }
127
+ throw err;
128
+ }
129
+ }
130
+ __name(readTeamFile, "readTeamFile");
131
+ async function writeTeamFile(teamName, teamFile) {
132
+ const filePath = getTeamFilePath(teamName);
133
+ await fs.mkdir(path.dirname(filePath), { recursive: true });
134
+ await atomicWriteJSON(filePath, teamFile);
135
+ }
136
+ __name(writeTeamFile, "writeTeamFile");
137
+ async function createTeamFile(teamName, teamFile) {
138
+ const filePath = getTeamFilePath(teamName);
139
+ await fs.mkdir(path.dirname(filePath), { recursive: true });
140
+ await fs.writeFile(filePath, JSON.stringify(teamFile, null, 2) + "\n", {
141
+ encoding: "utf-8",
142
+ flag: "wx"
143
+ });
144
+ }
145
+ __name(createTeamFile, "createTeamFile");
146
+ function isPidAlive(pid) {
147
+ try {
148
+ process.kill(pid, 0);
149
+ return true;
150
+ } catch (err) {
151
+ return isNodeError(err) && err.code === "EPERM";
152
+ }
153
+ }
154
+ __name(isPidAlive, "isPidAlive");
155
+ async function tryReclaimStaleTeam(teamName) {
156
+ let existing;
157
+ try {
158
+ existing = await readTeamFile(teamName);
159
+ } catch {
160
+ return false;
161
+ }
162
+ if (!existing) {
163
+ await deleteTeamDirs(teamName);
164
+ return true;
165
+ }
166
+ if (typeof existing.leadPid !== "number" || existing.leadPid <= 0) {
167
+ return false;
168
+ }
169
+ if (existing.leadPid !== process.pid && isPidAlive(existing.leadPid)) {
170
+ return false;
171
+ }
172
+ await deleteTeamDirs(teamName);
173
+ return true;
174
+ }
175
+ __name(tryReclaimStaleTeam, "tryReclaimStaleTeam");
176
+ async function deleteTeamDirs(teamName) {
177
+ const teamDir = getTeamDir(teamName);
178
+ const tasksDir = getTasksDir(teamName);
179
+ await Promise.allSettled([
180
+ fs.rm(teamDir, { recursive: true, force: true }),
181
+ fs.rm(tasksDir, { recursive: true, force: true })
182
+ ]);
183
+ }
184
+ __name(deleteTeamDirs, "deleteTeamDirs");
185
+ async function listTeamNames() {
186
+ const teamsRoot = getTeamsRootDir();
187
+ try {
188
+ const entries = await fs.readdir(teamsRoot, {
189
+ withFileTypes: true
190
+ });
191
+ return entries.filter((e) => e.isDirectory()).map((e) => e.name);
192
+ } catch {
193
+ return [];
194
+ }
195
+ }
196
+ __name(listTeamNames, "listTeamNames");
197
+
198
+ export {
199
+ getTeamsRootDir,
200
+ getTeamDir,
201
+ getTeamFilePath,
202
+ getInboxesDir,
203
+ getTasksDir,
204
+ sanitizeName,
205
+ formatAgentId,
206
+ generateUniqueTeammateName,
207
+ assignTeammateColor,
208
+ clearTeammateColors,
209
+ setMemberActive,
210
+ findMemberById,
211
+ findMemberByName,
212
+ classifyShutdownResponse,
213
+ readTeamFile,
214
+ writeTeamFile,
215
+ createTeamFile,
216
+ tryReclaimStaleTeam,
217
+ deleteTeamDirs,
218
+ listTeamNames
219
+ };
220
+ /**
221
+ * @license
222
+ * Copyright 2025 Qwen
223
+ * SPDX-License-Identifier: Apache-2.0
224
+ */
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-J4TSQ5EQ.js";
5
+ } from "./chunk-7NFB7LBQ.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";