@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
@@ -2,12 +2,12 @@
2
2
  "use strict";
3
3
  import {
4
4
  buildPermissionSettings
5
- } from "./chunk-5VXNZWGF.js";
5
+ } from "./chunk-ENUQSKEY.js";
6
6
  import {
7
7
  resolveVoiceStreamConfig,
8
8
  resolveVoiceTranscriptionConfig,
9
9
  transcribeVoiceAudio
10
- } from "./chunk-PDZ7MBDG.js";
10
+ } from "./chunk-EWILX3BM.js";
11
11
  import {
12
12
  getVoiceSettingsScope,
13
13
  isSelectableVoiceModel,
@@ -16,15 +16,15 @@ import {
16
16
  readVoiceMode,
17
17
  readVoiceModel,
18
18
  resolveVoiceTransport
19
- } from "./chunk-HPDUL5MF.js";
19
+ } from "./chunk-T2ZDAER2.js";
20
20
  import {
21
21
  WorkspacePermissionRulesSessionRequiredError,
22
- WorkspaceSettingsPartialPersistError
23
- } from "./chunk-WL4L7EZH.js";
24
- import {
25
- MCP_RESTART_SERVER_DEADLINE_MS
26
- } from "./chunk-OCPBI7J5.js";
22
+ WorkspaceSettingsPartialPersistError,
23
+ WorkspaceSkillNotFoundError,
24
+ WorkspaceSkillNotToggleableError
25
+ } from "./chunk-OA4JVLSA.js";
27
26
  import {
27
+ MCP_RESTART_SERVER_DEADLINE_MS,
28
28
  McpServerNotFoundError,
29
29
  McpServerRestartFailedError,
30
30
  SessionNotFoundError,
@@ -32,8 +32,9 @@ import {
32
32
  WorkspaceInitPathEscapeError,
33
33
  WorkspaceInitRaceError,
34
34
  WorkspaceInitSymlinkError
35
- } from "./chunk-IAVB3HM3.js";
35
+ } from "./chunk-L4Y55KIS.js";
36
36
  import {
37
+ BridgeChannelClosedError,
37
38
  SERVE_CONTROL_EXT_METHODS,
38
39
  SERVE_STATUS_EXT_METHODS,
39
40
  STATUS_SCHEMA_VERSION,
@@ -45,23 +46,23 @@ import {
45
46
  createIdleWorkspaceProvidersStatus,
46
47
  createIdleWorkspaceSkillsStatus,
47
48
  mapDomainErrorToErrorKind
48
- } from "./chunk-VWPVHAMO.js";
49
+ } from "./chunk-XIWQ5QST.js";
49
50
  import {
50
51
  getPersistScopeForModelSelection,
51
52
  loadSettings
52
- } from "./chunk-4C5BQ2D2.js";
53
+ } from "./chunk-TIKDHS6V.js";
53
54
  import {
54
55
  getWorkspaceTrustStatus
55
- } from "./chunk-HKMAENAO.js";
56
+ } from "./chunk-QDTGDM2T.js";
56
57
  import {
57
58
  writeStderrLine
58
59
  } from "./chunk-YUZI3WAC.js";
59
60
  import {
60
61
  ModelsConfig
61
- } from "./chunk-NVYTCB5Z.js";
62
+ } from "./chunk-SA6QVLWI.js";
62
63
  import {
63
64
  createDebugLogger
64
- } from "./chunk-J4TSQ5EQ.js";
65
+ } from "./chunk-7NFB7LBQ.js";
65
66
  import {
66
67
  init_esbuild_shims
67
68
  } from "./chunk-5O2XNYP6.js";
@@ -96,14 +97,11 @@ function voiceSettingsScopeToWire(scope) {
96
97
  }
97
98
  __name(voiceSettingsScopeToWire, "voiceSettingsScopeToWire");
98
99
  function buildWorkspaceVoiceSettingsWrites(settings, update, opts = {}) {
99
- const voiceSettingsScope = getVoiceSettingsScope(
100
- settings,
101
- opts.workspaceTrusted
102
- );
100
+ const voiceSettingsScope = opts.scopeOverride ?? getVoiceSettingsScope(settings, opts.workspaceTrusted);
103
101
  const writes = [];
104
102
  if (update.voiceModel !== void 0) {
105
103
  writes.push({
106
- scope: getPersistScopeForModelSelection(settings),
104
+ scope: opts.scopeOverride ?? getPersistScopeForModelSelection(settings),
107
105
  key: "voiceModel",
108
106
  value: update.voiceModel
109
107
  });
@@ -158,13 +156,13 @@ function listAvailableVoiceModels(settings) {
158
156
  );
159
157
  }
160
158
  __name(listAvailableVoiceModels, "listAvailableVoiceModels");
161
- function hasConfiguredBatchVoiceTranscriptionModel(settings) {
159
+ function hasConfiguredBatchVoiceTranscriptionModel(settings, opts = {}) {
162
160
  for (const model of listAvailableVoiceModels(settings)) {
163
161
  if (model.transport !== "qwen-asr-chat") {
164
162
  continue;
165
163
  }
166
164
  try {
167
- validateWorkspaceVoiceConfig(settings, model.id);
165
+ validateWorkspaceVoiceConfig(settings, model.id, opts);
168
166
  return true;
169
167
  } catch (err) {
170
168
  debugLogger.debug(
@@ -223,14 +221,24 @@ function validateWorkspaceVoiceModel(settings, voiceModel) {
223
221
  return { id: model.id, transport };
224
222
  }
225
223
  __name(validateWorkspaceVoiceModel, "validateWorkspaceVoiceModel");
226
- function validateWorkspaceVoiceConfig(settings, voiceModel) {
224
+ function validateWorkspaceVoiceConfig(settings, voiceModel, opts = {}) {
227
225
  const descriptor = validateWorkspaceVoiceModel(settings, voiceModel);
228
226
  try {
229
227
  const config = createVoiceModelSource(settings);
230
228
  if (descriptor.transport === "qwen-asr-chat") {
231
- resolveVoiceTranscriptionConfig({ config, settings, voiceModel });
229
+ resolveVoiceTranscriptionConfig({
230
+ config,
231
+ settings,
232
+ voiceModel,
233
+ env: opts.env
234
+ });
232
235
  } else {
233
- resolveVoiceStreamConfig({ config, settings, voiceModel });
236
+ resolveVoiceStreamConfig({
237
+ config,
238
+ settings,
239
+ voiceModel,
240
+ env: opts.env
241
+ });
234
242
  }
235
243
  } catch (err) {
236
244
  throw new WorkspaceVoiceError(
@@ -242,7 +250,7 @@ function validateWorkspaceVoiceConfig(settings, voiceModel) {
242
250
  return descriptor;
243
251
  }
244
252
  __name(validateWorkspaceVoiceConfig, "validateWorkspaceVoiceConfig");
245
- function validateWorkspaceVoiceState(settings, update) {
253
+ function validateWorkspaceVoiceState(settings, update, opts = {}) {
246
254
  if (update.enabled === void 0 && update.mode === void 0 && update.language === void 0 && update.voiceModel === void 0) {
247
255
  throw new WorkspaceVoiceError(
248
256
  400,
@@ -265,7 +273,7 @@ function validateWorkspaceVoiceState(settings, update) {
265
273
  "A valid voiceModel is required before enabling voice."
266
274
  );
267
275
  }
268
- validateWorkspaceVoiceConfig(settings, nextVoiceModel);
276
+ validateWorkspaceVoiceConfig(settings, nextVoiceModel, opts);
269
277
  }
270
278
  __name(validateWorkspaceVoiceState, "validateWorkspaceVoiceState");
271
279
  async function transcribeWorkspaceVoiceAudio(input) {
@@ -286,6 +294,7 @@ async function transcribeWorkspaceVoiceAudio(input) {
286
294
  config: createVoiceModelSource(input.settings),
287
295
  settings: input.settings,
288
296
  voiceModel: input.voiceModel,
297
+ env: input.env,
289
298
  abortSignal: input.abortSignal
290
299
  }
291
300
  );
@@ -360,8 +369,11 @@ function createDaemonWorkspaceService(deps) {
360
369
  workspaceSkillsStatusProvider,
361
370
  isChannelLive,
362
371
  persistDisabledTools,
372
+ persistDisabledSkills,
363
373
  persistSetting,
364
374
  persistSettings,
375
+ voiceEnv,
376
+ voiceSettingsScope,
365
377
  preheatAcpChild: preheatAcpChildOnBridge,
366
378
  queryWorkspaceStatus,
367
379
  invokeWorkspaceCommand,
@@ -370,6 +382,35 @@ function createDaemonWorkspaceService(deps) {
370
382
  } = deps;
371
383
  let lastWorkspaceSkillsStatus;
372
384
  let inFlightAcpPreheat;
385
+ const getWorkspaceSkillsStatus = /* @__PURE__ */ __name(async () => {
386
+ let status;
387
+ try {
388
+ status = await queryWorkspaceStatus(
389
+ SERVE_STATUS_EXT_METHODS.workspaceSkills,
390
+ () => createIdleWorkspaceSkillsStatus(boundWorkspace)
391
+ );
392
+ } catch (err) {
393
+ writeStderrLine(
394
+ `qwen serve: getWorkspaceSkillsStatus query failed: ${err instanceof Error ? err.message : String(err)}`
395
+ );
396
+ status = createIdleWorkspaceSkillsStatus(boundWorkspace);
397
+ }
398
+ if (status.initialized) {
399
+ lastWorkspaceSkillsStatus = status;
400
+ return status;
401
+ }
402
+ if (lastWorkspaceSkillsStatus) return lastWorkspaceSkillsStatus;
403
+ if (workspaceSkillsStatusProvider) {
404
+ try {
405
+ return await workspaceSkillsStatusProvider(boundWorkspace);
406
+ } catch (err) {
407
+ writeStderrLine(
408
+ `qwen serve: getWorkspaceSkillsStatus local provider failed: ${err instanceof Error ? err.message : String(err)}`
409
+ );
410
+ }
411
+ }
412
+ return status;
413
+ }, "getWorkspaceSkillsStatus");
373
414
  return {
374
415
  // -- Status queries (delegate to ACP child via queryWorkspaceStatus) --
375
416
  async getWorkspaceMcpStatus(_ctx) {
@@ -379,35 +420,7 @@ function createDaemonWorkspaceService(deps) {
379
420
  );
380
421
  },
381
422
  async getWorkspaceSkillsStatus(_ctx) {
382
- let status;
383
- try {
384
- status = await queryWorkspaceStatus(
385
- SERVE_STATUS_EXT_METHODS.workspaceSkills,
386
- () => createIdleWorkspaceSkillsStatus(boundWorkspace)
387
- );
388
- } catch (err) {
389
- writeStderrLine(
390
- `qwen serve: getWorkspaceSkillsStatus query failed: ${err instanceof Error ? err.message : String(err)}`
391
- );
392
- status = createIdleWorkspaceSkillsStatus(boundWorkspace);
393
- }
394
- if (status.initialized) {
395
- lastWorkspaceSkillsStatus = status;
396
- return status;
397
- }
398
- if (lastWorkspaceSkillsStatus) {
399
- return lastWorkspaceSkillsStatus;
400
- }
401
- if (workspaceSkillsStatusProvider) {
402
- try {
403
- return await workspaceSkillsStatusProvider(boundWorkspace);
404
- } catch (err) {
405
- writeStderrLine(
406
- `qwen serve: getWorkspaceSkillsStatus local provider failed: ${err instanceof Error ? err.message : String(err)}`
407
- );
408
- }
409
- }
410
- return status;
423
+ return getWorkspaceSkillsStatus();
411
424
  },
412
425
  async getWorkspaceProvidersStatus(_ctx) {
413
426
  if (workspaceProvidersStatusProvider) {
@@ -566,7 +579,10 @@ function createDaemonWorkspaceService(deps) {
566
579
  async getWorkspaceVoiceStatus(_ctx) {
567
580
  return buildWorkspaceVoiceStatus(
568
581
  boundWorkspace,
569
- loadSettings(boundWorkspace)
582
+ loadSettings(
583
+ boundWorkspace,
584
+ voiceEnv ? { skipLoadEnvironment: true } : true
585
+ )
570
586
  );
571
587
  },
572
588
  // -- Mutations --
@@ -619,11 +635,15 @@ function createDaemonWorkspaceService(deps) {
619
635
  "Workspace voice settings persistence is not available"
620
636
  );
621
637
  }
622
- const settings = loadSettings(boundWorkspace);
623
- validateWorkspaceVoiceState(settings, request);
638
+ const settings = loadSettings(
639
+ boundWorkspace,
640
+ voiceEnv ? { skipLoadEnvironment: true } : true
641
+ );
642
+ validateWorkspaceVoiceState(settings, request, { env: voiceEnv });
624
643
  const workspaceTrusted = getWorkspaceTrustStatus(settings.merged, boundWorkspace).effective.state === "trusted";
625
644
  const writes = buildWorkspaceVoiceSettingsWrites(settings, request, {
626
- workspaceTrusted
645
+ workspaceTrusted,
646
+ ...voiceSettingsScope ? { scopeOverride: voiceSettingsScope } : {}
627
647
  });
628
648
  const publishWrite = /* @__PURE__ */ __name((write) => {
629
649
  publishWorkspaceEvent({
@@ -664,6 +684,9 @@ function createDaemonWorkspaceService(deps) {
664
684
  writeStderrLine(
665
685
  `qwen serve: workspace voice partial persist error (workspace=${boundWorkspace}, committed=${committed.length}/${writes.length}, failedKey=${write.key}, failedScope=${voiceSettingsScopeToWire(write.scope)}): ${err instanceof Error ? err.message : String(err)}`
666
686
  );
687
+ for (const committedWrite of committed) {
688
+ publishWrite(committedWrite);
689
+ }
667
690
  throw new WorkspaceSettingsPartialPersistError(
668
691
  `Voice settings partial persist failed: committed=${committed.length}/${writes.length}`,
669
692
  committed,
@@ -678,7 +701,10 @@ function createDaemonWorkspaceService(deps) {
678
701
  }
679
702
  return buildWorkspaceVoiceStatus(
680
703
  boundWorkspace,
681
- loadSettings(boundWorkspace)
704
+ loadSettings(
705
+ boundWorkspace,
706
+ voiceEnv ? { skipLoadEnvironment: true } : true
707
+ )
682
708
  );
683
709
  },
684
710
  async setWorkspaceToolEnabled(ctx, toolName, enabled) {
@@ -690,6 +716,80 @@ function createDaemonWorkspaceService(deps) {
690
716
  });
691
717
  return { toolName, enabled };
692
718
  },
719
+ async setWorkspaceSkillEnabled(ctx, requestedSkillName, enabled) {
720
+ const normalizedName = requestedSkillName.trim().toLowerCase();
721
+ const status = await getWorkspaceSkillsStatus();
722
+ const skill = status.skills.find(
723
+ (candidate) => candidate.name.trim().toLowerCase() === normalizedName
724
+ );
725
+ if (!skill) throw new WorkspaceSkillNotFoundError(requestedSkillName);
726
+ if (skill.userInvocable === false) {
727
+ throw new WorkspaceSkillNotToggleableError(
728
+ skill.name,
729
+ "not_user_invocable"
730
+ );
731
+ }
732
+ const disabled = loadSettings(boundWorkspace).merged.skills?.disabled;
733
+ const disabledNames = new Set(
734
+ (Array.isArray(disabled) ? disabled : []).filter((name) => typeof name === "string").map((name) => name.trim().toLowerCase()).filter(Boolean)
735
+ );
736
+ if (skill.level === "extension" && skill.status === "disabled" && !disabledNames.has(normalizedName)) {
737
+ throw new WorkspaceSkillNotToggleableError(
738
+ skill.name,
739
+ "inactive_extension"
740
+ );
741
+ }
742
+ const persisted = await persistDisabledSkills(
743
+ boundWorkspace,
744
+ skill.name,
745
+ enabled
746
+ );
747
+ const channelLive = isChannelLive?.() ?? false;
748
+ let activation = channelLive ? "applied" : "deferred";
749
+ let sessionsRefreshed = 0;
750
+ let sessionsFailed = 0;
751
+ if (persisted.changed) {
752
+ lastWorkspaceSkillsStatus = void 0;
753
+ if (channelLive) {
754
+ try {
755
+ const refreshed = await invokeWorkspaceCommand(
756
+ SERVE_CONTROL_EXT_METHODS.workspaceSkillsRefresh,
757
+ { cwd: boundWorkspace }
758
+ );
759
+ sessionsRefreshed = refreshed.sessionsRefreshed;
760
+ sessionsFailed = refreshed.sessionsFailed;
761
+ if (sessionsFailed > 0) activation = "partial";
762
+ } catch (err) {
763
+ if (err instanceof SessionNotFoundError || err instanceof BridgeChannelClosedError) {
764
+ activation = "deferred";
765
+ } else {
766
+ activation = "partial";
767
+ sessionsFailed = 1;
768
+ writeStderrLine(
769
+ `qwen serve: workspace skill refresh failed: ${err instanceof Error ? err.message : String(err)}`
770
+ );
771
+ }
772
+ }
773
+ }
774
+ publishWorkspaceEvent({
775
+ type: "settings_changed",
776
+ data: {
777
+ key: "skills.disabled",
778
+ value: persisted.disabled.length > 0 ? persisted.disabled : void 0,
779
+ scope: "workspace"
780
+ },
781
+ originatorClientId: ctx.originatorClientId
782
+ });
783
+ }
784
+ return {
785
+ skillName: skill.name,
786
+ enabled,
787
+ changed: persisted.changed,
788
+ activation,
789
+ sessionsRefreshed,
790
+ sessionsFailed
791
+ };
792
+ },
693
793
  async initWorkspace(ctx, opts) {
694
794
  const filename = contextFilename;
695
795
  const target = path.resolve(boundWorkspace, filename);
@@ -5,7 +5,7 @@ import {
5
5
  BaseToolInvocation,
6
6
  ToolDisplayNames,
7
7
  ToolNames
8
- } from "./chunk-B5ORX3FG.js";
8
+ } from "./chunk-JGUT3LWZ.js";
9
9
  import {
10
10
  init_esbuild_shims
11
11
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  SkillError
5
- } from "./chunk-NVYTCB5Z.js";
5
+ } from "./chunk-SA6QVLWI.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -79,6 +79,8 @@ var SERVE_CONTROL_EXT_METHODS = {
79
79
  sessionBranch: "qwen/control/session/branch",
80
80
  sessionForkAgent: "qwen/control/session/fork_agent",
81
81
  sessionRecap: "qwen/control/session/recap",
82
+ sessionGenerationStart: "qwen/control/session/generation/start",
83
+ sessionGenerationCancel: "qwen/control/session/generation/cancel",
82
84
  sessionBtw: "qwen/control/session/btw",
83
85
  sessionShellHistory: "qwen/control/session/shell_history",
84
86
  sessionLanguage: "qwen/control/session/language",
@@ -86,6 +88,7 @@ var SERVE_CONTROL_EXT_METHODS = {
86
88
  sessionContinue: "qwen/control/session/continue",
87
89
  sessionTitle: "qwen/control/session/title",
88
90
  sessionParent: "qwen/control/session/parent",
91
+ sessionSource: "qwen/control/session/source",
89
92
  sessionArtifactsPersist: "qwen/control/session/artifacts/persist",
90
93
  workspaceMcpRestart: "qwen/control/workspace/mcp/restart",
91
94
  workspaceMcpManage: "qwen/control/workspace/mcp/manage",
@@ -100,6 +103,7 @@ var SERVE_CONTROL_EXT_METHODS = {
100
103
  workspaceMcpRuntimeAdd: "qwen/control/workspace/mcp/runtime-add",
101
104
  workspaceMcpRuntimeRemove: "qwen/control/workspace/mcp/runtime-remove",
102
105
  workspaceReload: "qwen/control/workspace/reload",
106
+ workspaceSkillsRefresh: "qwen/control/workspace/skills/refresh",
103
107
  workspaceExtensionsRefresh: "qwen/control/workspace/extensions/refresh",
104
108
  /**
105
109
  * Reverse tool channel (issue #5626, Phase 2). Unlike every other entry
@@ -144,6 +148,9 @@ var IDLE_HOOK_EVENTS = {
144
148
  description: "When a new session is started",
145
149
  matcherKind: "sessionTrigger"
146
150
  },
151
+ MessageDisplay: {
152
+ description: "Repeatedly, as the assistant reply streams"
153
+ },
147
154
  Stop: { description: "Right before Qwen Code concludes its response" },
148
155
  SubagentStart: {
149
156
  description: "When a subagent is started",
@@ -2,11 +2,11 @@
2
2
  "use strict";
3
3
  import {
4
4
  atomicWriteFileSync
5
- } from "./chunk-ZLXQN2QS.js";
5
+ } from "./chunk-WIEO4CWB.js";
6
6
  import {
7
7
  Storage,
8
8
  createDebugLogger
9
- } from "./chunk-J4TSQ5EQ.js";
9
+ } from "./chunk-7NFB7LBQ.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";