@qwen-code/qwen-code 0.20.1-preview.7215 → 0.20.1

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 (326) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +1 -1
  2. package/bundled/qc-helper/docs/features/auto-mode.md +19 -16
  3. package/bundled/qc-helper/docs/features/commands.md +54 -0
  4. package/bundled/qc-helper/docs/features/sub-agents.md +16 -7
  5. package/bundled/qc-helper/docs/integration-github-action.md +10 -10
  6. package/bundled/qc-helper/docs/qwen-serve.md +2 -1
  7. package/bundled/review/DESIGN.md +2 -2
  8. package/bundled/review/SKILL.md +4 -4
  9. package/chunks/{MaxSizedBox-EH6G5AEH.js → MaxSizedBox-4WZYPSRU.js} +40 -36
  10. package/chunks/{StandaloneSessionPicker-264A3TEA.js → StandaloneSessionPicker-PE4JAIFA.js} +58 -54
  11. package/chunks/{acpAgent-6RBIJFDI.js → acpAgent-BVIKGJ2C.js} +1503 -520
  12. package/chunks/{agent-QURXGAA3.js → agent-DHLFAOUV.js} +36 -32
  13. package/chunks/{agent-headless-CRGX4ICQ.js → agent-headless-ZP5WTNXZ.js} +36 -32
  14. package/chunks/{anthropicContentGenerator-BWBAZGTW.js → anthropicContentGenerator-NMSS7IMV.js} +11 -11
  15. package/chunks/{artifact-tool-IUJ7QWCX.js → artifact-tool-56T5IMBP.js} +3 -3
  16. package/chunks/{askUserQuestion-IUMUUTDQ.js → askUserQuestion-E25OBIC2.js} +3 -3
  17. package/chunks/{bridge-MNFVKPMI.js → bridge-XAK7JKMD.js} +41 -37
  18. package/chunks/{build-SSCNEHZZ.js → build-GHIZ4MSZ.js} +1 -1
  19. package/chunks/{ca-2SL2BXTK.js → ca-N6VVUFVB.js} +611 -201
  20. package/chunks/{channel-worker-group-53CMOPFT.js → channel-worker-group-LFBT7K64.js} +5 -5
  21. package/chunks/{channel-worker-manager-UTXILKC2.js → channel-worker-manager-3RUPERG2.js} +5 -5
  22. package/chunks/{channel-worker-supervisor-ZGO2W2MD.js → channel-worker-supervisor-A3KVATD3.js} +4 -4
  23. package/chunks/{chunk-IUSNI6IX.js → chunk-27CLX4FV.js} +1 -1
  24. package/chunks/{chunk-2HOVDT7W.js → chunk-2LI23QA6.js} +1 -1
  25. package/chunks/chunk-2RFKHEXL.js +74 -0
  26. package/chunks/{chunk-LZYWWWCZ.js → chunk-3KQSDUK3.js} +3 -3
  27. package/chunks/{chunk-NOWTNYC7.js → chunk-3LH5Q2AR.js} +8 -8
  28. package/chunks/{chunk-IB35C3IL.js → chunk-3SXF4GMQ.js} +1 -1
  29. package/chunks/chunk-43T5WDQ7.js +127 -0
  30. package/chunks/{chunk-KXEGCGUG.js → chunk-4BRH6FP5.js} +31 -6
  31. package/chunks/{chunk-TTSKHF43.js → chunk-4DSBFQMI.js} +2 -2
  32. package/chunks/{chunk-JD3MKVKL.js → chunk-4K56OJFJ.js} +1 -1
  33. package/chunks/{chunk-KTUQMDEP.js → chunk-4K7VDKAD.js} +1 -1
  34. package/chunks/{chunk-QKYTTBYW.js → chunk-4LVZNIDO.js} +1 -1
  35. package/chunks/{chunk-OF2BBLYQ.js → chunk-52T5UHAZ.js} +2 -2
  36. package/chunks/{chunk-ZEOZL37W.js → chunk-57FIIFJN.js} +1 -1
  37. package/chunks/{chunk-WAX3ITOA.js → chunk-5EA5NVXS.js} +1 -1
  38. package/chunks/chunk-5G2SK2OO.js +20600 -0
  39. package/chunks/{chunk-6EFTQYW7.js → chunk-5I5BM454.js} +1 -1
  40. package/chunks/{chunk-GMGDLUC7.js → chunk-6IL7KRLE.js} +1 -1
  41. package/chunks/{chunk-26LLB6FM.js → chunk-6NHK6HS7.js} +2 -2
  42. package/chunks/{chunk-FVS747N7.js → chunk-6PRNSLMB.js} +11 -6
  43. package/chunks/chunk-6PVPNMXU.js +29 -0
  44. package/chunks/{chunk-BDBMYST4.js → chunk-6X4GWOPW.js} +1 -1
  45. package/chunks/{chunk-4ODB7WIB.js → chunk-6ZBPS62S.js} +1 -1
  46. package/chunks/{chunk-E5GIFWE3.js → chunk-766HLFAG.js} +54 -33
  47. package/chunks/{chunk-SDXIH6OA.js → chunk-76OFFG6L.js} +137 -5
  48. package/chunks/{chunk-ANHT55MR.js → chunk-7LH6CHKG.js} +1 -1
  49. package/chunks/{chunk-Y4CRUWFZ.js → chunk-7NDXG4MB.js} +60 -35
  50. package/chunks/{chunk-KPZNOZPC.js → chunk-7SWFAKVH.js} +22 -22
  51. package/chunks/{chunk-AYCDXHZB.js → chunk-7Z6JQEL6.js} +1 -1
  52. package/chunks/{chunk-5NWV4NFB.js → chunk-AZD6KAV7.js} +3 -3
  53. package/chunks/{chunk-7YBZGNEC.js → chunk-BKZEHVPV.js} +176 -168
  54. package/chunks/{chunk-WXAXH7IJ.js → chunk-BWQRDISK.js} +1 -1
  55. package/chunks/{chunk-X4CGDBKA.js → chunk-BZAEENUV.js} +3 -3
  56. package/chunks/{chunk-BF32GYSY.js → chunk-CHXKGIMK.js} +1 -1
  57. package/chunks/{chunk-4SLLEAQP.js → chunk-D53NR4GO.js} +562 -301
  58. package/chunks/{chunk-FLTN6NRU.js → chunk-D6ZOVZLF.js} +5 -1
  59. package/chunks/{chunk-NBMIC7DR.js → chunk-D7WXIW7H.js} +4 -4
  60. package/chunks/{chunk-MKLKHZAK.js → chunk-DPRMI6NU.js} +1 -1
  61. package/chunks/{chunk-AR27OPIU.js → chunk-DRIXALGM.js} +2 -2
  62. package/chunks/{chunk-5SCI6E3E.js → chunk-E4IMU4Y5.js} +1 -1
  63. package/chunks/{chunk-Z5Q65RVH.js → chunk-EC2ET5ZZ.js} +1 -1
  64. package/chunks/{chunk-B453NMZJ.js → chunk-EFIOE2EH.js} +3 -3
  65. package/chunks/{chunk-OKWRU4NO.js → chunk-EWXXMRMP.js} +3 -3
  66. package/chunks/{chunk-NEEB7UEN.js → chunk-FFFM6NJV.js} +1 -2
  67. package/chunks/{chunk-JVTCARQ6.js → chunk-G6LRTI62.js} +4 -4
  68. package/chunks/{chunk-6OH6A5EX.js → chunk-GEB2CGUV.js} +20262 -17752
  69. package/chunks/{chunk-OONJNQ42.js → chunk-GPSKDNEE.js} +3 -3
  70. package/chunks/{chunk-FNGK2Z5B.js → chunk-H4AR2JQF.js} +3 -3
  71. package/chunks/chunk-HTR4WV6U.js +327 -0
  72. package/chunks/chunk-IS2SBY6T.js +2256 -0
  73. package/chunks/{chunk-G45X5TRN.js → chunk-JCW2R7WC.js} +1 -72
  74. package/chunks/{chunk-6GUTHAN7.js → chunk-JHFVJQRO.js} +1 -1
  75. package/chunks/{chunk-IE4JSQ5L.js → chunk-JIBBZH37.js} +27 -23
  76. package/chunks/{chunk-UJEZQ562.js → chunk-JJEFX6U5.js} +3 -3
  77. package/chunks/{chunk-QOK6RMIP.js → chunk-JKFHJK5U.js} +4 -4
  78. package/chunks/{chunk-GA7VRJVN.js → chunk-JO7FGOSY.js} +5 -5
  79. package/chunks/{chunk-WOT64EP2.js → chunk-JTUAAVUT.js} +2 -2
  80. package/chunks/{chunk-MAQQGNQ5.js → chunk-JYS55H6Z.js} +66 -7
  81. package/chunks/{chunk-DA7OOKVN.js → chunk-KDPIV6WC.js} +29 -2
  82. package/chunks/{chunk-EIAK6Q2B.js → chunk-KHOVYUHX.js} +2 -2
  83. package/chunks/{chunk-OLMETXLX.js → chunk-KQQ757OQ.js} +2 -2
  84. package/chunks/{chunk-Z6UEAQTP.js → chunk-KSZZBDVD.js} +165 -48
  85. package/chunks/chunk-KWK7UE6L.js +6194 -0
  86. package/chunks/{chunk-OOCI5VVU.js → chunk-LIZRAKPB.js} +1 -1
  87. package/chunks/{chunk-VFAE4AGH.js → chunk-LPMBFOWH.js} +73 -68
  88. package/chunks/{chunk-IKP5DXZY.js → chunk-LYEKAAEH.js} +5 -5
  89. package/chunks/chunk-M7WBGLYP.js +151 -0
  90. package/chunks/{chunk-P2YAOGJD.js → chunk-MTSYH4MB.js} +3 -3
  91. package/chunks/{chunk-WKRXIHD6.js → chunk-N5ARKAVE.js} +8 -8
  92. package/chunks/chunk-NABLFI57.js +82 -0
  93. package/chunks/{chunk-CVDW42JT.js → chunk-NNFK277W.js} +1 -1
  94. package/chunks/{chunk-467G3SV5.js → chunk-NPQDJGKU.js} +1 -1
  95. package/chunks/chunk-OQ5SYCPE.js +10017 -0
  96. package/chunks/{chunk-C27BYUX6.js → chunk-OQB4EXO4.js} +14 -11
  97. package/chunks/{chunk-RELYEO3R.js → chunk-OUDZVU7H.js} +242 -1607
  98. package/chunks/{chunk-3EUZWNWA.js → chunk-PBED7USE.js} +1 -1
  99. package/chunks/{chunk-WBTZGWQ6.js → chunk-PIHKWN7M.js} +1 -1
  100. package/chunks/{chunk-XNP57UDV.js → chunk-PPIHLGNE.js} +2 -2
  101. package/chunks/{chunk-Q4RBU7WX.js → chunk-PSVSP2OS.js} +6 -6
  102. package/chunks/{chunk-BRXIO5WY.js → chunk-Q2V2ADXF.js} +7 -7
  103. package/chunks/{chunk-JDI67JFB.js → chunk-Q2YKNMLS.js} +3 -3
  104. package/chunks/{chunk-BAIEQKR5.js → chunk-Q3GGJDYN.js} +5 -5
  105. package/chunks/{chunk-PBATSWUQ.js → chunk-QBUDF33N.js} +1 -1
  106. package/chunks/{chunk-OMH3276Y.js → chunk-QD6BRERJ.js} +7 -7
  107. package/chunks/{chunk-Y2ENGUD6.js → chunk-QKTHJXCS.js} +1 -1
  108. package/chunks/{chunk-BVLROR2T.js → chunk-QLJUC7TG.js} +1 -1
  109. package/chunks/{chunk-UEY4AYUL.js → chunk-QNLNLENL.js} +2 -2
  110. package/chunks/{chunk-7KDI2IB2.js → chunk-QSJ6JIF5.js} +4 -4
  111. package/chunks/{chunk-Q3ZBFXK4.js → chunk-QUHJRRUA.js} +126 -30
  112. package/chunks/{chunk-N6YTEVLV.js → chunk-R3BCL5XW.js} +10 -4
  113. package/chunks/{chunk-EVSTCA7S.js → chunk-R7MPKABX.js} +307 -86
  114. package/chunks/{chunk-RFIAR4YL.js → chunk-RV4C2ZFG.js} +1 -1
  115. package/chunks/{chunk-NIJEXGV6.js → chunk-RVLZCXEE.js} +79 -10
  116. package/chunks/{chunk-T7DDD7CZ.js → chunk-RYSMKY43.js} +4 -4
  117. package/chunks/{chunk-MC2DOZS7.js → chunk-S3YQCNJE.js} +3 -3
  118. package/chunks/{chunk-4WUAQ2DO.js → chunk-SP32MK6J.js} +2 -2
  119. package/chunks/{chunk-JNWZQ27S.js → chunk-SP5WRGVG.js} +3 -3
  120. package/chunks/{chunk-FSL5W5TI.js → chunk-T2L47JJK.js} +3 -3
  121. package/chunks/{chunk-TB6UDU4T.js → chunk-THJNPLI4.js} +16 -16
  122. package/chunks/{chunk-TCKTNY66.js → chunk-TPR35HHZ.js} +6 -6
  123. package/chunks/{chunk-UQES76OO.js → chunk-TXRKCFWS.js} +6 -6
  124. package/chunks/chunk-U7ZFW55U.js +2098 -0
  125. package/chunks/{chunk-W7H223ZZ.js → chunk-UGYMA4EI.js} +1 -1
  126. package/chunks/{chunk-X6YQWCIJ.js → chunk-UH3WSE5L.js} +13 -1
  127. package/chunks/{chunk-R3VWUU2E.js → chunk-VYPFXUCB.js} +1 -1
  128. package/chunks/{chunk-2DXOIVUI.js → chunk-WCFTQD7H.js} +11 -11
  129. package/chunks/chunk-WHGVTP7Q.js +1049 -0
  130. package/chunks/{chunk-PWVTCGBP.js → chunk-WML6JOGQ.js} +31 -19
  131. package/chunks/{chunk-D2VIDMVM.js → chunk-X6N25LXS.js} +2 -2
  132. package/chunks/{chunk-Z5R4JMOL.js → chunk-X7XWGRDT.js} +4 -4
  133. package/chunks/chunk-XHATNRQA.js +1500 -0
  134. package/chunks/{chunk-V25Z5UUB.js → chunk-Y2DAH52F.js} +7 -6
  135. package/chunks/{chunk-S35ZDXOS.js → chunk-YM3SZTH4.js} +2 -1
  136. package/chunks/{chunk-GKY2OJ7R.js → chunk-ZHERRXZJ.js} +1 -1
  137. package/chunks/{computer-use-R7KA6UJ6.js → computer-use-MV4K6WJM.js} +41 -37
  138. package/chunks/{config-utils-6FXFJUYB.js → config-utils-WYUQ7II4.js} +3 -3
  139. package/chunks/{contextCommand-KAQQPHZ4.js → contextCommand-TQD36VNX.js} +38 -34
  140. package/chunks/{create-sub-session-X5RVIHCK.js → create-sub-session-AZ77LBL3.js} +3 -3
  141. package/chunks/{create-sub-session-TDPDBU4K.js → create-sub-session-JOW4BKMC.js} +36 -32
  142. package/chunks/{cron-create-AC5FFLN7.js → cron-create-KTWJM7QT.js} +5 -5
  143. package/chunks/{cron-delete-JEB3FAHA.js → cron-delete-2P3I5ULL.js} +5 -5
  144. package/chunks/{cron-list-NBYPCNIB.js → cron-list-PXDPGEDQ.js} +5 -5
  145. package/chunks/{daemon-RG2MAI6T.js → daemon-KLPTQIE4.js} +138 -81
  146. package/chunks/daemon-status-provider-TII4SMCZ.js +81 -0
  147. package/chunks/{de-I7ZIYXZC.js → de-4IBXM7CN.js} +5 -1
  148. package/chunks/{dist-2BHAYBKP.js → dist-HMU6CYS4.js} +2 -2
  149. package/chunks/{dist-AU7NQQRP.js → dist-OAV7LJGJ.js} +1 -1
  150. package/chunks/{dist-FUTEXY6A.js → dist-OMW6WDEO.js} +1 -1
  151. package/chunks/{dist-2MIU4UUH.js → dist-PJLG2XYX.js} +1 -1
  152. package/chunks/{dist-53PZYC5B.js → dist-UIFWIFRO.js} +2 -2
  153. package/chunks/{dist-WGTQO7F2.js → dist-XRYV6TJP.js} +65 -25
  154. package/chunks/{earlyInputCapture-WC7RI5HV.js → earlyInputCapture-2V57RG6H.js} +37 -33
  155. package/chunks/{edit-6MHKCJCM.js → edit-TTUH7PWR.js} +43 -41
  156. package/chunks/{en-XE34GKAA.js → en-USMCCJAJ.js} +5 -1
  157. package/chunks/{enter-worktree-O7VJ2E7A.js → enter-worktree-D4IVCXYB.js} +41 -37
  158. package/chunks/{enterPlanMode-5XYAALIO.js → enterPlanMode-WRUJTVYN.js} +47 -38
  159. package/chunks/{environment-LSKFNLBU.js → environment-SEPKXB2C.js} +38 -34
  160. package/chunks/{errors-ZFVCY6HG.js → errors-YSVGBLBU.js} +38 -34
  161. package/chunks/{exit-worktree-MYIK66T7.js → exit-worktree-MZ4JSSP6.js} +41 -37
  162. package/chunks/{exitPlanMode-7MBNU76O.js → exitPlanMode-HAZLSSOJ.js} +41 -37
  163. package/chunks/{fast-path-RNLIB64C.js → fast-path-EVBVIE2U.js} +4 -3
  164. package/chunks/{fast-path-settings-DAOVFADC.js → fast-path-settings-XB3CPUJT.js} +2 -2
  165. package/chunks/{fr-X7KDVZIY.js → fr-WVHEBDDB.js} +5 -1
  166. package/chunks/{gemini-WK5ISEAQ.js → gemini-APQ76464.js} +100 -95
  167. package/chunks/{geminiContentGenerator-NUJQBZBW.js → geminiContentGenerator-LB4MA2LI.js} +5 -5
  168. package/chunks/{getMachineId-bsd-EXV7SWPA.js → getMachineId-bsd-QFVLPUPT.js} +1 -1
  169. package/chunks/{getMachineId-darwin-IUOMFXU3.js → getMachineId-darwin-DGMQQE2E.js} +1 -1
  170. package/chunks/{getMachineId-linux-K7XJYFHL.js → getMachineId-linux-R4Z6CSWC.js} +1 -1
  171. package/chunks/{getMachineId-unsupported-EA5FDRJ6.js → getMachineId-unsupported-Z3SBVBUV.js} +1 -1
  172. package/chunks/{getMachineId-win-KBA6RAI5.js → getMachineId-win-SCK5UFDT.js} +1 -1
  173. package/chunks/{glob-7P6RYY4L.js → glob-LABYMYKG.js} +43 -39
  174. package/chunks/{grep-V3QHNP2J.js → grep-HKIKJCAS.js} +43 -39
  175. package/chunks/{handleAutoUpdate-AAQ6PL3E.js → handleAutoUpdate-RWAAL2UM.js} +40 -36
  176. package/chunks/{i18n-B7IO7WQT.js → i18n-ZUVDAJIJ.js} +37 -33
  177. package/chunks/{initializer-E5TIC3CW.js → initializer-7YUHIC36.js} +43 -39
  178. package/chunks/{installationInfo-XLPNAISK.js → installationInfo-DVEOMWDE.js} +39 -33
  179. package/chunks/{ja-2ICT3KXF.js → ja-KY4ROZTE.js} +5 -1
  180. package/chunks/{keychain-token-storage-DWRJMNH3.js → keychain-token-storage-6ACJDYIB.js} +3 -3
  181. package/chunks/list-WHCZSIR2.js +82 -0
  182. package/chunks/{loadedSettingsAdapter-X5BSC6CE.js → loadedSettingsAdapter-YCWN6AK3.js} +42 -38
  183. package/chunks/{loop-wakeup-HMHCT5GU.js → loop-wakeup-RNMRVA66.js} +6 -6
  184. package/chunks/{ls-IW5HYDG4.js → ls-J2ZI5XYK.js} +5 -5
  185. package/chunks/{lsp-4RL52YIZ.js → lsp-UMS3NUB5.js} +3 -3
  186. package/chunks/managed-npm-update-PG3463CJ.js +333 -0
  187. package/chunks/{mcp-4C4HWXAR.js → mcp-VLHDCKAN.js} +42 -38
  188. package/chunks/{monitor-3CJDNZB2.js → monitor-GG4F4YM6.js} +41 -37
  189. package/chunks/nonInteractiveCli-UYXYV4YX.js +133 -0
  190. package/chunks/{notebook-edit-MX366HCT.js → notebook-edit-US4VLN6Q.js} +44 -42
  191. package/chunks/{openaiContentGenerator-KRPNNJGZ.js → openaiContentGenerator-CVEDTMDB.js} +20 -18
  192. package/chunks/{pidfile-K7T2JLUJ.js → pidfile-QQ45OIOY.js} +37 -33
  193. package/chunks/{processUtils-YXL3VIBR.js → processUtils-3WMHLQE5.js} +2 -2
  194. package/chunks/{pt-JJ4XPIBP.js → pt-OK455PLH.js} +5 -1
  195. package/chunks/{qwenContentGenerator-GJVXFZ3U.js → qwenContentGenerator-Y2GRNYZQ.js} +42 -38
  196. package/chunks/{qwenOAuth2-UZTIBQLY.js → qwenOAuth2-J2X6E5VO.js} +18 -16
  197. package/chunks/{read-file-S5XQSYOW.js → read-file-C7Z266CU.js} +13 -11
  198. package/chunks/{read-mcp-resource-OIBCNIX7.js → read-mcp-resource-F6HYMDUY.js} +3 -3
  199. package/chunks/{record-artifact-HDMK4LHG.js → record-artifact-7GCFLDD7.js} +3 -3
  200. package/chunks/{resumeHistoryUtils-IKR6XD2S.js → resumeHistoryUtils-KBQWX77U.js} +43 -39
  201. package/chunks/{ripGrep-H65GRSQX.js → ripGrep-RW26MTQ3.js} +36 -32
  202. package/chunks/{ru-STR4KTW7.js → ru-7SPDGMGD.js} +5 -1
  203. package/chunks/{run-qwen-serve-7SKAQOAA.js → run-qwen-serve-MXFMOMEL.js} +104 -82
  204. package/chunks/{runtime-I2STBGPR.js → runtime-APNO3V6D.js} +48 -42
  205. package/chunks/{scheduler-6F7HETNO.js → scheduler-L6FYCGVO.js} +36 -32
  206. package/chunks/sdk-exporters-grpc-ETLH47EP.js +23214 -0
  207. package/chunks/sdk-exporters-http-IDGLRBGP.js +563 -0
  208. package/chunks/sdk-impl-5ESZBGJQ.js +9186 -0
  209. package/chunks/{send-message-WXVVK4DB.js → send-message-PYIJ2PZL.js} +6 -4
  210. package/chunks/{serve-4ATEWSEA.js → serve-6QBXDVWT.js} +42 -38
  211. package/chunks/{server-YPUPFV2O.js → server-5TJJEMVQ.js} +1006 -305
  212. package/chunks/{session-AZFIERIY.js → session-BWEUHKQB.js} +92 -176
  213. package/chunks/{settings-EFQHLTM3.js → settings-O7IUQNRR.js} +45 -41
  214. package/chunks/{shell-FWXWBJ4Q.js → shell-R5L4NQYY.js} +36 -32
  215. package/chunks/{skill-A634MNCD.js → skill-ITEOSNW6.js} +24 -20
  216. package/chunks/{spawnChannel-KKBGGR47.js → spawnChannel-E7NTWSGW.js} +38 -34
  217. package/chunks/{src-BVROLD6N.js → src-FFXGUTNL.js} +303 -237
  218. package/chunks/{standalone-update-ERLA3BDC.js → standalone-update-JCJOXW4P.js} +38 -34
  219. package/chunks/{startInteractiveUI-3VZ23WAY.js → startInteractiveUI-IJSBLZFO.js} +1057 -864
  220. package/chunks/{syntheticOutput-HCUFXSIA.js → syntheticOutput-H7RTI5KL.js} +4 -4
  221. package/chunks/{task-create-RIY5JTFC.js → task-create-7474AJJD.js} +10 -8
  222. package/chunks/{task-list-XBUCV3CO.js → task-list-633HGOIB.js} +6 -6
  223. package/chunks/{task-stop-QDFCCYR5.js → task-stop-MNUGHPIA.js} +3 -3
  224. package/chunks/{task-update-7PXKJQOI.js → task-update-66GQB5LI.js} +10 -8
  225. package/chunks/{team-create-ZZO7QFQ7.js → team-create-OVSZTJZO.js} +44 -40
  226. package/chunks/{team-delete-TNSSE2S5.js → team-delete-BB3CG3QF.js} +6 -6
  227. package/chunks/{team-plan-approval-3BZBJ46K.js → team-plan-approval-SLEVDLT5.js} +41 -37
  228. package/chunks/{theme-manager-FSFWNXFJ.js → theme-manager-V6ZQISHM.js} +37 -33
  229. package/chunks/{todoWrite-OMAIGB6V.js → todoWrite-KRAUN54W.js} +5 -5
  230. package/chunks/{tool-search-VYXAAIDW.js → tool-search-KYIF6C6E.js} +21 -17
  231. package/chunks/{total-session-admission-PSMLQICS.js → total-session-admission-EU77XTL7.js} +42 -38
  232. package/chunks/{trustedFolders-QA3RK2NV.js → trustedFolders-DDEF3ADH.js} +37 -33
  233. package/chunks/{update-relaunch-LNLZFX3J.js → update-relaunch-XEZTDP6K.js} +17 -17
  234. package/chunks/updateCheck-KZ5LZ545.js +89 -0
  235. package/chunks/{useAutoAcceptIndicator-DIWN27LT.js → useAutoAcceptIndicator-47EZERGQ.js} +47 -43
  236. package/chunks/{validateNonInterActiveAuth-LOEOFCAF.js → validateNonInterActiveAuth-J2DM4LWZ.js} +79 -75
  237. package/chunks/{version-HBF2VBLE.js → version-PN7WYXHP.js} +1 -1
  238. package/chunks/{web-fetch-BWGSD2BD.js → web-fetch-WRI5QRFR.js} +100 -42
  239. package/chunks/{web-search-OOHTCVR3.js → web-search-2HCXNAVX.js} +111 -60
  240. package/chunks/{workflow-LJAJBOR4.js → workflow-U5XBPGQZ.js} +48 -43
  241. package/chunks/workspace-providers-status-2T54GIJZ.js +79 -0
  242. package/chunks/{workspace-registration-store-4EHGQW4Y.js → workspace-registration-store-F3V4KBIW.js} +8 -2
  243. package/chunks/{workspace-registry-BKD7VC4Y.js → workspace-registry-U6QVZ5BU.js} +42 -38
  244. package/chunks/{workspace-service-75RHX6KR.js → workspace-service-734D36QD.js} +49 -45
  245. package/chunks/{workspace-skills-status-WBZBZI6A.js → workspace-skills-status-5ABUKOAQ.js} +43 -39
  246. package/chunks/write-file-CIH4I4CS.js +66 -0
  247. package/chunks/{zh-TW-4RR3YHNN.js → zh-TW-BM47YBFH.js} +5 -1
  248. package/chunks/{zh-6ANG2HTL.js → zh-WY5DWYZD.js} +5 -1
  249. package/cli-entry.js +164 -12
  250. package/cli.js +18 -11
  251. package/locales/ca.js +772 -203
  252. package/locales/de.js +8 -2
  253. package/locales/en.js +8 -2
  254. package/locales/fr.js +8 -2
  255. package/locales/ja.js +8 -2
  256. package/locales/pt.js +8 -2
  257. package/locales/ru.js +8 -2
  258. package/locales/zh-TW.js +8 -2
  259. package/locales/zh.js +8 -2
  260. package/package.json +3 -3
  261. package/web-shell/assets/{arc-Buk1besA.js → arc-ByltRugA.js} +1 -1
  262. package/web-shell/assets/{architectureDiagram-3BPJPVTR-B1aUKYDC.js → architectureDiagram-3BPJPVTR-CCRTto5d.js} +1 -1
  263. package/web-shell/assets/{blockDiagram-GPEHLZMM-CRTdg3Zx.js → blockDiagram-GPEHLZMM-Jfy36u1L.js} +1 -1
  264. package/web-shell/assets/{c4Diagram-AAUBKEIU-DFdRMp5g.js → c4Diagram-AAUBKEIU-4d5FfEZ0.js} +1 -1
  265. package/web-shell/assets/channel-4N2UIFcG.js +1 -0
  266. package/web-shell/assets/{chunk-2J33WTMH-4rYQdkEI.js → chunk-2J33WTMH-BPwxCEro.js} +1 -1
  267. package/web-shell/assets/{chunk-4BX2VUAB-Coi-pQJy.js → chunk-4BX2VUAB-jY7ZmJWY.js} +1 -1
  268. package/web-shell/assets/{chunk-55IACEB6-BtBjz02t.js → chunk-55IACEB6-C98HgCsS.js} +1 -1
  269. package/web-shell/assets/{chunk-727SXJPM-CGYOWorl.js → chunk-727SXJPM-cDu-ge-q.js} +1 -1
  270. package/web-shell/assets/{chunk-AQP2D5EJ-CH5AKhqx.js → chunk-AQP2D5EJ-BKdJwxXK.js} +1 -1
  271. package/web-shell/assets/{chunk-FMBD7UC4-Cd50-w85.js → chunk-FMBD7UC4-DnuxqwMu.js} +1 -1
  272. package/web-shell/assets/{chunk-ND2GUHAM-C2wF3KCK.js → chunk-ND2GUHAM-C4fZNPv0.js} +1 -1
  273. package/web-shell/assets/{chunk-QZHKN3VN-pCeRTaWi.js → chunk-QZHKN3VN-Cf4XWOmz.js} +1 -1
  274. package/web-shell/assets/classDiagram-4FO5ZUOK-Q4dYOtsh.js +1 -0
  275. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Q4dYOtsh.js +1 -0
  276. package/web-shell/assets/{cose-bilkent-S5V4N54A-B-_fAB6D.js → cose-bilkent-S5V4N54A-C82mFiqj.js} +1 -1
  277. package/web-shell/assets/{dagre-BM42HDAG-ChSPNHpL.js → dagre-BM42HDAG-Df8KACER.js} +1 -1
  278. package/web-shell/assets/{diagram-2AECGRRQ-BX7cFOF3.js → diagram-2AECGRRQ-EzNs7s_2.js} +1 -1
  279. package/web-shell/assets/{diagram-5GNKFQAL-BQUTW92n.js → diagram-5GNKFQAL-BRLNvreg.js} +1 -1
  280. package/web-shell/assets/{diagram-KO2AKTUF-BkYPh3e4.js → diagram-KO2AKTUF-2HLYHRjC.js} +1 -1
  281. package/web-shell/assets/{diagram-LMA3HP47-Cl6jsNyx.js → diagram-LMA3HP47-DeH0NzSp.js} +1 -1
  282. package/web-shell/assets/{diagram-OG6HWLK6-DRWoHz8n.js → diagram-OG6HWLK6-k5Gn47-G.js} +1 -1
  283. package/web-shell/assets/{erDiagram-TEJ5UH35-CGvFcZco.js → erDiagram-TEJ5UH35-gPHFo79f.js} +1 -1
  284. package/web-shell/assets/{flowDiagram-I6XJVG4X-vms6oVdv.js → flowDiagram-I6XJVG4X-DYBOiTRW.js} +1 -1
  285. package/web-shell/assets/{ganttDiagram-6RSMTGT7-ukT_sfmi.js → ganttDiagram-6RSMTGT7-cxjAuic9.js} +1 -1
  286. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Bn2ZE2Ut.js → gitGraphDiagram-PVQCEYII-3nPqpmCP.js} +1 -1
  287. package/web-shell/assets/index-B7jzUZ_s.css +5 -0
  288. package/web-shell/assets/{index-wFXp7W68.js → index-Cl8d-1bK.js} +1 -1
  289. package/web-shell/assets/index-gE8OWwj_.js +1197 -0
  290. package/web-shell/assets/{infoDiagram-5YYISTIA-DHJdSi7x.js → infoDiagram-5YYISTIA-Dph21pR5.js} +1 -1
  291. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DOvd2Wph.js → ishikawaDiagram-YF4QCWOH-Cjg1hSaG.js} +1 -1
  292. package/web-shell/assets/{journeyDiagram-JHISSGLW-CH_urMCT.js → journeyDiagram-JHISSGLW-CR-IzvnU.js} +1 -1
  293. package/web-shell/assets/{kanban-definition-UN3LZRKU-FKiBdgbH.js → kanban-definition-UN3LZRKU-BYmuybuC.js} +1 -1
  294. package/web-shell/assets/{linear-0ZVQFVKf.js → linear-CngEEoy8.js} +1 -1
  295. package/web-shell/assets/{mermaid.core-DJ05ZZIK.js → mermaid.core-G6fbZRPf.js} +5 -5
  296. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BPuUhkUm.js → mindmap-definition-RKZ34NQL-BtnqnUwJ.js} +1 -1
  297. package/web-shell/assets/{pieDiagram-4H26LBE5-yLFKcXyG.js → pieDiagram-4H26LBE5-XTq6UHIA.js} +1 -1
  298. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-irWqc1pE.js → quadrantDiagram-W4KKPZXB-D1J5PrsS.js} +1 -1
  299. package/web-shell/assets/{requirementDiagram-4Y6WPE33-B_4uMoIV.js → requirementDiagram-4Y6WPE33-CLcBUy3t.js} +1 -1
  300. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-ciA4GPwk.js → sankeyDiagram-5OEKKPKP-iwKV02_6.js} +1 -1
  301. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CRdZvy0U.js → sequenceDiagram-3UESZ5HK-7NFYQcEX.js} +1 -1
  302. package/web-shell/assets/{stateDiagram-AJRCARHV-DaYIkCCn.js → stateDiagram-AJRCARHV-Bvm4Wih6.js} +1 -1
  303. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-xXU_zO2Z.js +1 -0
  304. package/web-shell/assets/{timeline-definition-PNZ67QCA-oBUKv6iH.js → timeline-definition-PNZ67QCA-B4FZFE9O.js} +1 -1
  305. package/web-shell/assets/{vennDiagram-CIIHVFJN-CGW9Sdmb.js → vennDiagram-CIIHVFJN-CvMBpmtL.js} +1 -1
  306. package/web-shell/assets/{wardley-L42UT6IY-CvwKJOCm.js → wardley-L42UT6IY-E3ag2327.js} +1 -1
  307. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Ipc260sN.js → wardleyDiagram-YWT4CUSO-BEXWlgxC.js} +1 -1
  308. package/web-shell/assets/{xychartDiagram-2RQKCTM6-D6-CM7pK.js → xychartDiagram-2RQKCTM6-CICK05gI.js} +1 -1
  309. package/web-shell/index.html +2 -2
  310. package/chunks/chunk-ETD6K42I.js +0 -358
  311. package/chunks/chunk-I5NLVPZJ.js +0 -45
  312. package/chunks/chunk-ONWW74X6.js +0 -74639
  313. package/chunks/chunk-W7FJ3N32.js +0 -49
  314. package/chunks/daemon-status-provider-LVTVJGAD.js +0 -77
  315. package/chunks/list-3CZR5I42.js +0 -78
  316. package/chunks/nonInteractiveCli-QTEHDDFH.js +0 -129
  317. package/chunks/updateCheck-JJEUQ54U.js +0 -73
  318. package/chunks/workspace-providers-status-FYV7TTHA.js +0 -75
  319. package/chunks/write-file-M2DTFILF.js +0 -599
  320. package/web-shell/assets/channel-04R0vLbG.js +0 -1
  321. package/web-shell/assets/classDiagram-4FO5ZUOK-Bw9SOwAV.js +0 -1
  322. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Bw9SOwAV.js +0 -1
  323. package/web-shell/assets/index-DgkKrjw3.js +0 -1187
  324. package/web-shell/assets/index-Rv6mOAN9.css +0 -5
  325. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DWBoO4UY.js +0 -1
  326. package/chunks/{chunk-PEJWA3QQ.js → chunk-QZJY47IE.js} +5 -5
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-C27BYUX6.js";
5
+ } from "./chunk-OQB4EXO4.js";
6
6
  import {
7
7
  __qwen_filename,
8
8
  init_esbuild_shims
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  themeManager
5
- } from "./chunk-AYCDXHZB.js";
5
+ } from "./chunk-7Z6JQEL6.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -5,10 +5,10 @@ import {
5
5
  } from "./chunk-FODK6UMO.js";
6
6
  import {
7
7
  TextTokenizer
8
- } from "./chunk-MAQQGNQ5.js";
8
+ } from "./chunk-JYS55H6Z.js";
9
9
  import {
10
10
  createDebugLogger
11
- } from "./chunk-C27BYUX6.js";
11
+ } from "./chunk-OQB4EXO4.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-RS7MT2QG.js";
6
6
  import {
7
7
  formatHistoryGapNotice
8
- } from "./chunk-CVDW42JT.js";
8
+ } from "./chunk-NNFK277W.js";
9
9
  import {
10
10
  isGoalStatusKind,
11
11
  isTerminalGoalStatusKind
@@ -23,18 +23,18 @@ import {
23
23
  setGoalTerminalObserver,
24
24
  setLastGoalTerminal,
25
25
  unregisterGoalHook
26
- } from "./chunk-6OH6A5EX.js";
26
+ } from "./chunk-GEB2CGUV.js";
27
27
  import {
28
28
  apiActivityTracker,
29
29
  formatVisionBridgeNoticeDisplay,
30
30
  isVisionBridgeNoticeDisplay
31
- } from "./chunk-ONWW74X6.js";
31
+ } from "./chunk-5G2SK2OO.js";
32
32
  import {
33
33
  ToolNames
34
- } from "./chunk-S35ZDXOS.js";
34
+ } from "./chunk-YM3SZTH4.js";
35
35
  import {
36
36
  createDebugLogger
37
- } from "./chunk-C27BYUX6.js";
37
+ } from "./chunk-OQB4EXO4.js";
38
38
  import {
39
39
  init_esbuild_shims
40
40
  } from "./chunk-5O2XNYP6.js";
@@ -918,6 +918,11 @@ var DefaultTranscriptReplayMachine = class {
918
918
  let ordinal = 0;
919
919
  for (const pending of [...this.pendingToolCalls.values()]) {
920
920
  this.pendingToolCalls.delete(pending.callId);
921
+ this.report(
922
+ "missing_tool_result",
923
+ "A transcript tool call has no persisted result.",
924
+ pending.sourceRecordId
925
+ );
921
926
  yield {
922
927
  sourceRecordId: pending.sourceRecordId,
923
928
  ...pending.sourceTimestamp ? { sourceTimestamp: pending.sourceTimestamp } : {},
@@ -2493,7 +2498,7 @@ async function extractMetadata(conversation, config) {
2493
2498
  const gitBranch = firstRecord?.gitBranch;
2494
2499
  let gitRepo;
2495
2500
  if (cwd) {
2496
- const { getGitRepoName } = await import("./src-BVROLD6N.js");
2501
+ const { getGitRepoName } = await import("./src-FFXGUTNL.js");
2497
2502
  gitRepo = getGitRepoName(cwd);
2498
2503
  }
2499
2504
  let model;
@@ -0,0 +1,29 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-5O2XNYP6.js";
6
+ import {
7
+ __name
8
+ } from "./chunk-J2S4EL5Y.js";
9
+
10
+ // packages/core/src/utils/env.ts
11
+ init_esbuild_shims();
12
+ function parsePositiveIntegerEnv(value, fallback) {
13
+ const trimmed = value?.trim();
14
+ if (!trimmed || !/^\d+$/.test(trimmed)) {
15
+ return fallback;
16
+ }
17
+ const parsed = Number(trimmed);
18
+ return Number.isSafeInteger(parsed) && parsed > 0 ? parsed : fallback;
19
+ }
20
+ __name(parsePositiveIntegerEnv, "parsePositiveIntegerEnv");
21
+
22
+ export {
23
+ parsePositiveIntegerEnv
24
+ };
25
+ /**
26
+ * @license
27
+ * Copyright 2025 Qwen
28
+ * SPDX-License-Identifier: Apache-2.0
29
+ */
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  createDebugLogger,
5
5
  isNodeError
6
- } from "./chunk-C27BYUX6.js";
6
+ } from "./chunk-OQB4EXO4.js";
7
7
  import {
8
8
  init_esbuild_shims
9
9
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  resolvePath
5
- } from "./chunk-NIJEXGV6.js";
5
+ } from "./chunk-RVLZCXEE.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -1,21 +1,21 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import {
4
- getInstallationInfo,
5
- resolveUpdateCommand
6
- } from "./chunk-DA7OOKVN.js";
7
3
  import {
8
4
  performStandaloneUpdate
9
- } from "./chunk-LZYWWWCZ.js";
5
+ } from "./chunk-3KQSDUK3.js";
10
6
  import {
11
7
  updateEventEmitter
12
8
  } from "./chunk-YAF2MQZ6.js";
13
9
  import {
14
10
  t
15
- } from "./chunk-2DXOIVUI.js";
11
+ } from "./chunk-WCFTQD7H.js";
12
+ import {
13
+ getInstallationInfo,
14
+ resolveUpdateCommand
15
+ } from "./chunk-KDPIV6WC.js";
16
16
  import {
17
17
  createDebugLogger
18
- } from "./chunk-C27BYUX6.js";
18
+ } from "./chunk-OQB4EXO4.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -34,7 +34,7 @@ var spawnWrapper = spawn;
34
34
  // packages/cli/src/utils/handleAutoUpdate.ts
35
35
  import os from "node:os";
36
36
  var debugLogger = createDebugLogger("AUTO_UPDATE");
37
- var UPDATE_SUCCESS_MESSAGE = "Update successful! Please restart Qwen Code to use the new version. Switching model providers before restarting may not work correctly.";
37
+ var UPDATE_SUCCESS_MESSAGE = "Update successful! The new version will be used on your next run.";
38
38
  var UPDATE_FAILED_MESSAGE = "Automatic update failed. Please try updating manually.";
39
39
  function handleAutoUpdate(info, settings, projectRoot, spawnFn = spawnWrapper) {
40
40
  if (!info) {
@@ -78,37 +78,56 @@ ${installationInfo.updateMessage}`;
78
78
  installationInfo.updateCommand,
79
79
  info.update.latest
80
80
  );
81
- const isWindows = os.platform() === "win32";
82
- const shell = isWindows ? "cmd.exe" : "bash";
83
- const shellArgs = isWindows ? ["/c", updateCommand] : ["-c", updateCommand];
84
- const updateProcess = spawnFn(shell, shellArgs, {
85
- stdio: ["pipe", "ignore", "pipe"]
81
+ const platform = os.platform();
82
+ const isWindows = platform === "win32";
83
+ const isManagedNpmUpdate = installationInfo.packageManager === "npm" /* NPM */;
84
+ const command = isManagedNpmUpdate ? process.execPath : isWindows ? "cmd.exe" : "bash";
85
+ const commandArgs = isManagedNpmUpdate ? [process.argv[1]] : isWindows ? ["/c", updateCommand] : ["-c", updateCommand];
86
+ const updateProcess = spawnFn(command, commandArgs, {
87
+ ...isManagedNpmUpdate ? {
88
+ detached: true,
89
+ env: {
90
+ ...process.env,
91
+ QWEN_CODE_MANAGED_NPM_UPDATE_VERSION: info.update.latest
92
+ },
93
+ stdio: ["ignore", "ignore", "pipe"],
94
+ windowsHide: true
95
+ } : { stdio: ["pipe", "ignore", "pipe"] }
86
96
  });
87
97
  let errorOutput = "";
88
- updateProcess.stderr.on("data", (data) => {
98
+ updateProcess.stderr?.on("data", (data) => {
89
99
  errorOutput += data.toString();
90
100
  });
91
- updateProcess.on("close", (code) => {
92
- if (code === 0) {
93
- updateEventEmitter.emit("update-success", {
94
- message: t(UPDATE_SUCCESS_MESSAGE)
95
- });
96
- } else {
97
- debugLogger.warn(
98
- `Automatic update command failed: ${updateCommand}; stderr: ${errorOutput.trim()}`
101
+ return new Promise((resolve) => {
102
+ let settled = false;
103
+ const finish = /* @__PURE__ */ __name((error) => {
104
+ if (settled) return;
105
+ settled = true;
106
+ try {
107
+ if (error) throw error;
108
+ updateEventEmitter.emit("update-success", {
109
+ message: t(UPDATE_SUCCESS_MESSAGE)
110
+ });
111
+ resolve(true);
112
+ } catch (error2) {
113
+ debugLogger.warn("Automatic update failed:", error2);
114
+ updateEventEmitter.emit("update-failed", {
115
+ message: t(UPDATE_FAILED_MESSAGE)
116
+ });
117
+ resolve(false);
118
+ }
119
+ }, "finish");
120
+ updateProcess.once("close", (code) => {
121
+ finish(
122
+ code === 0 ? void 0 : new Error(
123
+ `Command failed: ${updateCommand}; stderr: ${errorOutput.trim()}`
124
+ )
99
125
  );
100
- updateEventEmitter.emit("update-failed", {
101
- message: t(UPDATE_FAILED_MESSAGE)
102
- });
103
- }
104
- });
105
- updateProcess.on("error", (err) => {
106
- debugLogger.warn("Automatic update command failed to start:", err);
107
- updateEventEmitter.emit("update-failed", {
108
- message: t(UPDATE_FAILED_MESSAGE)
126
+ });
127
+ updateProcess.once("error", (error) => {
128
+ finish(error);
109
129
  });
110
130
  });
111
- return updateProcess;
112
131
  }
113
132
  __name(handleAutoUpdate, "handleAutoUpdate");
114
133
  function setUpdateHandler(addItem, setUpdateInfo, isIdleRef = { current: true }) {
@@ -137,7 +156,9 @@ function setUpdateHandler(addItem, setUpdateInfo, isIdleRef = { current: true })
137
156
  const handleUpdateFailed = /* @__PURE__ */ __name((data) => {
138
157
  setUpdateInfo(null);
139
158
  addItemOrDefer({
140
- type: "error" /* ERROR */,
159
+ // Background update-check failures are emitted with severity 'warning'
160
+ // (#7049); actual update installation failures stay errors.
161
+ type: data?.severity === "warning" ? "warning" /* WARNING */ : "error" /* ERROR */,
141
162
  text: data?.message ?? t(UPDATE_FAILED_MESSAGE)
142
163
  });
143
164
  }, "handleUpdateFailed");
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  MAX_WORKSPACE_PATH_LENGTH,
5
5
  canonicalizeWorkspace
6
- } from "./chunk-W7FJ3N32.js";
6
+ } from "./chunk-2RFKHEXL.js";
7
7
  import {
8
8
  MAX_DAEMON_WORKSPACES
9
9
  } from "./chunk-5HBA2Z7V.js";
@@ -124,6 +124,7 @@ __name(resolveWorkspaceInputs, "resolveWorkspaceInputs");
124
124
  var SCHEMA_VERSION = 1;
125
125
  var MAX_SECONDARY_WORKSPACES = MAX_REGISTERED_WORKSPACES - 1;
126
126
  var MAX_STORE_BYTES = 256 * 1024;
127
+ var MAX_WORKSPACE_DISPLAY_NAME_LENGTH = 256;
127
128
  var LOCK_OPTIONS = {
128
129
  realpath: false,
129
130
  stale: 1e4,
@@ -136,6 +137,43 @@ var LOCK_OPTIONS = {
136
137
  randomize: true
137
138
  }
138
139
  };
140
+ var WorkspaceDisplayNameValidationError = class extends Error {
141
+ static {
142
+ __name(this, "WorkspaceDisplayNameValidationError");
143
+ }
144
+ constructor(message) {
145
+ super(message);
146
+ this.name = "WorkspaceDisplayNameValidationError";
147
+ }
148
+ };
149
+ function containsDisplayNameControlCharacter(value) {
150
+ for (const character of value) {
151
+ const codePoint = character.codePointAt(0);
152
+ if (codePoint <= 31 || codePoint === 127) return true;
153
+ }
154
+ return false;
155
+ }
156
+ __name(containsDisplayNameControlCharacter, "containsDisplayNameControlCharacter");
157
+ function normalizeWorkspaceDisplayName(value) {
158
+ if (typeof value !== "string") {
159
+ throw new WorkspaceDisplayNameValidationError(
160
+ "Workspace display name must be a string"
161
+ );
162
+ }
163
+ const trimmed = value.trim();
164
+ if (trimmed.length > MAX_WORKSPACE_DISPLAY_NAME_LENGTH) {
165
+ throw new WorkspaceDisplayNameValidationError(
166
+ `Workspace display name exceeds ${MAX_WORKSPACE_DISPLAY_NAME_LENGTH} characters`
167
+ );
168
+ }
169
+ if (containsDisplayNameControlCharacter(trimmed)) {
170
+ throw new WorkspaceDisplayNameValidationError(
171
+ "Workspace display name contains control characters"
172
+ );
173
+ }
174
+ return trimmed.length === 0 ? void 0 : trimmed;
175
+ }
176
+ __name(normalizeWorkspaceDisplayName, "normalizeWorkspaceDisplayName");
139
177
  var WorkspaceRegistrationStoreError = class extends Error {
140
178
  static {
141
179
  __name(this, "WorkspaceRegistrationStoreError");
@@ -196,6 +234,38 @@ function validateWorkspacePath(value, label) {
196
234
  return value;
197
235
  }
198
236
  __name(validateWorkspacePath, "validateWorkspacePath");
237
+ function validateStoredDisplayName(value, label) {
238
+ let displayName;
239
+ try {
240
+ displayName = normalizeWorkspaceDisplayName(value);
241
+ } catch (err) {
242
+ throw new WorkspaceRegistrationStoreError(
243
+ `${label} is invalid: ${err instanceof Error ? err.message : String(err)}`
244
+ );
245
+ }
246
+ if (displayName === void 0) {
247
+ throw new WorkspaceRegistrationStoreError(`${label} must not be empty`);
248
+ }
249
+ return displayName;
250
+ }
251
+ __name(validateStoredDisplayName, "validateStoredDisplayName");
252
+ function setSnapshotDisplayName(snapshot, registrationId, displayName) {
253
+ if (displayName === void 0) {
254
+ if (!snapshot.displayNames || !Object.hasOwn(snapshot.displayNames, registrationId)) {
255
+ return false;
256
+ }
257
+ delete snapshot.displayNames[registrationId];
258
+ if (Object.keys(snapshot.displayNames).length === 0) {
259
+ delete snapshot.displayNames;
260
+ }
261
+ return true;
262
+ }
263
+ if (snapshot.displayNames?.[registrationId] === displayName) return false;
264
+ snapshot.displayNames ??= {};
265
+ snapshot.displayNames[registrationId] = displayName;
266
+ return true;
267
+ }
268
+ __name(setSnapshotDisplayName, "setSnapshotDisplayName");
199
269
  function parseSnapshot(raw, primaryWorkspace) {
200
270
  let value;
201
271
  try {
@@ -252,7 +322,34 @@ function parseSnapshot(raw, primaryWorkspace) {
252
322
  seen.add(normalizedWorkspace);
253
323
  return workspace;
254
324
  });
255
- return { schemaVersion: SCHEMA_VERSION, primaryWorkspace, workspaces };
325
+ const rawDisplayNames = record["displayNames"];
326
+ let displayNames;
327
+ if (rawDisplayNames !== void 0) {
328
+ if (typeof rawDisplayNames !== "object" || rawDisplayNames === null || Array.isArray(rawDisplayNames)) {
329
+ throw new WorkspaceRegistrationStoreError(
330
+ "Workspace registration store displayNames must be an object"
331
+ );
332
+ }
333
+ const registrationIds = new Set(workspaces.map(workspaceRegistrationId));
334
+ for (const [registrationId, value2] of Object.entries(rawDisplayNames)) {
335
+ if (!registrationIds.has(registrationId)) {
336
+ throw new WorkspaceRegistrationStoreError(
337
+ `Workspace registration store displayNames contains unknown registration id ${JSON.stringify(registrationId)}`
338
+ );
339
+ }
340
+ displayNames ??= {};
341
+ displayNames[registrationId] = validateStoredDisplayName(
342
+ value2,
343
+ `displayNames[${JSON.stringify(registrationId)}]`
344
+ );
345
+ }
346
+ }
347
+ return {
348
+ schemaVersion: SCHEMA_VERSION,
349
+ primaryWorkspace,
350
+ workspaces,
351
+ ...displayNames ? { displayNames } : {}
352
+ };
256
353
  }
257
354
  __name(parseSnapshot, "parseSnapshot");
258
355
  var updateChains = /* @__PURE__ */ new Map();
@@ -391,8 +488,9 @@ var WorkspaceRegistrationStore = class {
391
488
  await file.close();
392
489
  }
393
490
  }
394
- async add(workspace) {
491
+ async add(workspace, displayName) {
395
492
  validateWorkspacePath(workspace, "workspace");
493
+ const normalizedDisplayName = displayName === void 0 ? void 0 : normalizeWorkspaceDisplayName(displayName);
396
494
  if (normalizedScopePath(workspace) === normalizedScopePath(this.primaryWorkspace)) {
397
495
  throw new WorkspaceRegistrationStoreError(
398
496
  "Primary workspace cannot be stored as a secondary registration"
@@ -411,30 +509,61 @@ var WorkspaceRegistrationStore = class {
411
509
  );
412
510
  }
413
511
  snapshot.workspaces.push(workspace);
512
+ if (normalizedDisplayName !== void 0) {
513
+ snapshot.displayNames ??= {};
514
+ snapshot.displayNames[workspaceRegistrationId(workspace)] = normalizedDisplayName;
515
+ }
414
516
  return true;
415
517
  });
416
518
  }
417
519
  async removeById(id) {
418
520
  return await this.removeByIds([id]) > 0;
419
521
  }
522
+ async setDisplayNameByIds(ids, displayName) {
523
+ const normalizedDisplayName = displayName === void 0 ? void 0 : normalizeWorkspaceDisplayName(displayName);
524
+ const requested = new Set(ids);
525
+ if (requested.size === 0) return 0;
526
+ let matched = 0;
527
+ await this.update((snapshot) => {
528
+ let changed = false;
529
+ for (const workspace of snapshot.workspaces) {
530
+ const registrationId = workspaceRegistrationId(workspace);
531
+ if (!requested.has(registrationId)) continue;
532
+ matched++;
533
+ changed = setSnapshotDisplayName(
534
+ snapshot,
535
+ registrationId,
536
+ normalizedDisplayName
537
+ ) || changed;
538
+ }
539
+ return changed;
540
+ });
541
+ return matched;
542
+ }
420
543
  async removeByIds(ids) {
421
544
  const requested = new Set(ids);
422
545
  if (requested.size === 0) return 0;
423
546
  let removed = 0;
424
547
  await this.update((snapshot) => {
548
+ const removedIds = /* @__PURE__ */ new Set();
425
549
  const retained = snapshot.workspaces.filter((workspace) => {
426
- if (!requested.has(workspaceRegistrationId(workspace))) return true;
550
+ const registrationId = workspaceRegistrationId(workspace);
551
+ if (!requested.has(registrationId)) return true;
427
552
  removed++;
553
+ removedIds.add(registrationId);
428
554
  return false;
429
555
  });
430
556
  if (removed === 0) return false;
431
557
  snapshot.workspaces.splice(0, snapshot.workspaces.length, ...retained);
558
+ for (const registrationId of removedIds) {
559
+ setSnapshotDisplayName(snapshot, registrationId, void 0);
560
+ }
432
561
  return true;
433
562
  });
434
563
  return removed;
435
564
  }
436
565
  async update(mutate) {
437
- const { atomicWriteFile } = await import("./src-BVROLD6N.js");
566
+ const { atomicWriteFile } = await import("./src-FFXGUTNL.js");
438
567
  return withInProcessLock(this.filePath, async () => {
439
568
  const lock = await acquireFileLock(this.filePath);
440
569
  let committed = false;
@@ -478,6 +607,9 @@ var WorkspaceRegistrationStore = class {
478
607
  export {
479
608
  MAX_REGISTERED_WORKSPACES,
480
609
  resolveWorkspaceInputs,
610
+ MAX_WORKSPACE_DISPLAY_NAME_LENGTH,
611
+ WorkspaceDisplayNameValidationError,
612
+ normalizeWorkspaceDisplayName,
481
613
  WorkspaceRegistrationStoreError,
482
614
  WorkspaceRegistrationStoreLimitError,
483
615
  WorkspaceRegistrationStoreCommittedError,
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  BaseJsonOutputAdapter
5
- } from "./chunk-BAIEQKR5.js";
5
+ } from "./chunk-Q3GGJDYN.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,12 +2,12 @@
2
2
  "use strict";
3
3
  import {
4
4
  buildPermissionSettings
5
- } from "./chunk-WAX3ITOA.js";
5
+ } from "./chunk-5EA5NVXS.js";
6
6
  import {
7
7
  resolveVoiceStreamConfig,
8
8
  resolveVoiceTranscriptionConfig,
9
9
  transcribeVoiceAudio
10
- } from "./chunk-B453NMZJ.js";
10
+ } from "./chunk-EFIOE2EH.js";
11
11
  import {
12
12
  getVoiceSettingsScope,
13
13
  isSelectableVoiceModel,
@@ -16,7 +16,13 @@ import {
16
16
  readVoiceMode,
17
17
  readVoiceModel,
18
18
  resolveVoiceTransport
19
- } from "./chunk-IB35C3IL.js";
19
+ } from "./chunk-3SXF4GMQ.js";
20
+ import {
21
+ WorkspacePermissionRulesSessionRequiredError,
22
+ WorkspaceSettingsPartialPersistError,
23
+ WorkspaceSkillNotFoundError,
24
+ WorkspaceSkillNotToggleableError
25
+ } from "./chunk-OA4JVLSA.js";
20
26
  import {
21
27
  MCP_RESTART_SERVER_DEADLINE_MS,
22
28
  McpServerNotFoundError,
@@ -26,7 +32,7 @@ import {
26
32
  WorkspaceInitPathEscapeError,
27
33
  WorkspaceInitRaceError,
28
34
  WorkspaceInitSymlinkError
29
- } from "./chunk-X6YQWCIJ.js";
35
+ } from "./chunk-UH3WSE5L.js";
30
36
  import {
31
37
  BridgeChannelClosedError,
32
38
  SERVE_CONTROL_EXT_METHODS,
@@ -40,32 +46,27 @@ import {
40
46
  createIdleWorkspaceProvidersStatus,
41
47
  createIdleWorkspaceSkillsStatus,
42
48
  mapDomainErrorToErrorKind
43
- } from "./chunk-WXAXH7IJ.js";
44
- import {
45
- WorkspacePermissionRulesSessionRequiredError,
46
- WorkspaceSettingsPartialPersistError,
47
- WorkspaceSkillNotFoundError,
48
- WorkspaceSkillNotToggleableError
49
- } from "./chunk-OA4JVLSA.js";
49
+ } from "./chunk-BWQRDISK.js";
50
50
  import {
51
51
  getPersistScopeForModelSelection,
52
52
  loadSettings
53
- } from "./chunk-KPZNOZPC.js";
53
+ } from "./chunk-7SWFAKVH.js";
54
54
  import {
55
55
  getWorkspaceTrustStatus
56
- } from "./chunk-MC2DOZS7.js";
56
+ } from "./chunk-S3YQCNJE.js";
57
57
  import {
58
- writeStderrLine
58
+ writeStderrLine,
59
+ writeStderrLineSafe
59
60
  } from "./chunk-OWAK7LMW.js";
60
61
  import {
61
62
  ModelsConfig,
62
63
  SkillManager,
63
64
  require_yauzl
64
- } from "./chunk-6OH6A5EX.js";
65
+ } from "./chunk-GEB2CGUV.js";
65
66
  import {
66
67
  Storage,
67
68
  createDebugLogger
68
- } from "./chunk-C27BYUX6.js";
69
+ } from "./chunk-OQB4EXO4.js";
69
70
  import {
70
71
  init_esbuild_shims
71
72
  } from "./chunk-5O2XNYP6.js";
@@ -1187,11 +1188,11 @@ function createDaemonWorkspaceService(deps) {
1187
1188
  );
1188
1189
  },
1189
1190
  async preheatAcpChild(_ctx, opts) {
1190
- const startedAt = Date.now();
1191
+ const startedAt = performance.now();
1191
1192
  const channelLive = /* @__PURE__ */ __name(() => isChannelLive?.() ?? false, "channelLive");
1192
1193
  const finish = /* @__PURE__ */ __name((result) => ({
1193
1194
  ...result,
1194
- durationMs: Date.now() - startedAt
1195
+ durationMs: Math.max(0, Math.round(performance.now() - startedAt))
1195
1196
  }), "finish");
1196
1197
  if (channelLive()) {
1197
1198
  return finish({ ready: true, channelLive: true });
@@ -1201,43 +1202,67 @@ function createDaemonWorkspaceService(deps) {
1201
1202
  ready: false,
1202
1203
  channelLive: false,
1203
1204
  reason: "error",
1204
- error: "ACP preheat is not wired"
1205
+ error: "ACP preheat is unavailable"
1205
1206
  });
1206
1207
  }
1207
1208
  if (!inFlightAcpPreheat) {
1208
- inFlightAcpPreheat = preheatAcpChildOnBridge().finally(() => {
1209
- inFlightAcpPreheat = void 0;
1210
- });
1211
- void inFlightAcpPreheat.catch((err) => {
1212
- writeStderrLine(
1213
- `qwen serve: ACP preheat failed: ${err instanceof Error ? err.message : String(err)}`
1214
- );
1215
- });
1209
+ const promise = Promise.resolve().then(preheatAcpChildOnBridge);
1210
+ inFlightAcpPreheat = promise;
1211
+ void promise.then(
1212
+ () => {
1213
+ if (inFlightAcpPreheat === promise) {
1214
+ inFlightAcpPreheat = void 0;
1215
+ }
1216
+ },
1217
+ (err) => {
1218
+ try {
1219
+ writeStderrLineSafe(
1220
+ `qwen serve: ACP preheat failed: ${err instanceof Error ? err.message : String(err)}`
1221
+ );
1222
+ } finally {
1223
+ if (inFlightAcpPreheat === promise) {
1224
+ inFlightAcpPreheat = void 0;
1225
+ }
1226
+ }
1227
+ }
1228
+ );
1216
1229
  }
1230
+ const sharedPreheat = inFlightAcpPreheat;
1217
1231
  try {
1218
1232
  await withTimeout(
1219
- inFlightAcpPreheat,
1233
+ sharedPreheat,
1220
1234
  opts?.timeoutMs ?? 5e3,
1221
1235
  "ACP preheat"
1222
1236
  );
1223
1237
  } catch (err) {
1224
1238
  if (err instanceof TimeoutError) {
1225
- inFlightAcpPreheat = void 0;
1226
- writeStderrLine(
1239
+ writeStderrLineSafe(
1227
1240
  `qwen serve: ACP preheat timed out after ${opts?.timeoutMs ?? 5e3}ms`
1228
1241
  );
1229
1242
  }
1230
1243
  const live2 = channelLive();
1231
- const message = err instanceof Error ? err.message : String(err);
1244
+ if (live2) {
1245
+ return finish({ ready: true, channelLive: true });
1246
+ }
1232
1247
  return finish({
1233
- ready: live2,
1234
- channelLive: live2,
1248
+ ready: false,
1249
+ channelLive: false,
1235
1250
  reason: err instanceof TimeoutError ? "timeout" : "error",
1236
- error: message
1251
+ error: err instanceof TimeoutError ? "ACP preheat did not complete before the timeout" : "ACP preheat failed"
1237
1252
  });
1238
1253
  }
1239
1254
  const live = channelLive();
1240
- return finish({ ready: live, channelLive: live });
1255
+ if (!live) {
1256
+ writeStderrLineSafe(
1257
+ "qwen serve: ACP preheat resolved without a live channel"
1258
+ );
1259
+ }
1260
+ return live ? finish({ ready: true, channelLive: true }) : finish({
1261
+ ready: false,
1262
+ channelLive: false,
1263
+ reason: "error",
1264
+ error: "ACP preheat did not produce a live channel"
1265
+ });
1241
1266
  },
1242
1267
  async getWorkspaceAcpStatus(_ctx) {
1243
1268
  return { channelLive: isChannelLive?.() ?? false };