@qwen-code/qwen-code 0.19.7 → 0.19.8-nightly.20260710.205430235

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 (292) hide show
  1. package/bundled/qc-helper/SKILL.md +1 -0
  2. package/bundled/qc-helper/docs/configuration/auth.md +40 -55
  3. package/bundled/qc-helper/docs/configuration/model-providers.md +224 -218
  4. package/bundled/qc-helper/docs/configuration/settings.md +43 -36
  5. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  6. package/bundled/qc-helper/docs/features/channels/overview.md +20 -12
  7. package/bundled/qc-helper/docs/features/channels/plugins.md +1 -0
  8. package/bundled/qc-helper/docs/features/code-review.md +2 -1
  9. package/bundled/qc-helper/docs/features/commands.md +39 -38
  10. package/bundled/qc-helper/docs/features/computer-use.md +77 -0
  11. package/bundled/qc-helper/docs/features/hooks.md +36 -34
  12. package/bundled/qc-helper/docs/features/memory.md +1 -1
  13. package/bundled/qc-helper/docs/features/tool-use-summaries.md +19 -23
  14. package/bundled/qc-helper/docs/qwen-serve.md +22 -12
  15. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  16. package/bundled/review/DESIGN.md +14 -13
  17. package/bundled/review/SKILL.md +38 -61
  18. package/chunks/{MaxSizedBox-XY5LIO5O.js → MaxSizedBox-LOFYQFYJ.js} +13 -14
  19. package/chunks/{StandaloneSessionPicker-APISIRJZ.js → StandaloneSessionPicker-U5OQBGEB.js} +31 -29
  20. package/chunks/{acpAgent-MMOSC2YA.js → acpAgent-SDIFRIED.js} +637 -131
  21. package/chunks/{agent-TKIBLLQT.js → agent-JIBBVHNQ.js} +10 -10
  22. package/chunks/{agent-headless-VLX4C7KX.js → agent-headless-6LGZYJYU.js} +10 -10
  23. package/chunks/{anthropicContentGenerator-AKYPSZIV.js → anthropicContentGenerator-55REPTTF.js} +30 -3
  24. package/chunks/{artifact-tool-D233YJFH.js → artifact-tool-EIN46DPM.js} +1 -1
  25. package/chunks/{askUserQuestion-MKL5ZTMC.js → askUserQuestion-6YX6ZRX7.js} +1 -1
  26. package/chunks/{bridge-BCU73DZO.js → bridge-HVPFYNM4.js} +17 -16
  27. package/chunks/{ca-HCMB2I54.js → ca-MULEGDVS.js} +89 -5
  28. package/chunks/{channel-worker-supervisor-CRCVYQIE.js → channel-worker-supervisor-OPXXT4JK.js} +20 -3
  29. package/chunks/{chunk-DGHJTO2K.js → chunk-2AF26HVM.js} +31 -2
  30. package/chunks/{chunk-3B26UVCX.js → chunk-2GUVUHJY.js} +6 -4
  31. package/chunks/{chunk-FV7425LN.js → chunk-2SZOMGOR.js} +4 -1
  32. package/chunks/{chunk-CNSF3WO5.js → chunk-32KS5XSX.js} +3 -3
  33. package/chunks/{chunk-4UCTWSTP.js → chunk-34UUM3IN.js} +1 -1
  34. package/chunks/{chunk-G7ZG7CA6.js → chunk-3UP777ZS.js} +8 -7
  35. package/chunks/{chunk-MIG5SQNL.js → chunk-4CSVIZLT.js} +4 -4
  36. package/chunks/{chunk-GD236YPV.js → chunk-4ONWIT5C.js} +1 -1
  37. package/chunks/{chunk-4ZJIPVPB.js → chunk-4XK7TNBP.js} +8 -8
  38. package/chunks/{chunk-I4A4K72C.js → chunk-5F2H3PXG.js} +446 -232
  39. package/chunks/chunk-5HOF2K5U.js +19 -0
  40. package/chunks/{chunk-GMOWQOQQ.js → chunk-5ZVIYNLN.js} +228 -36
  41. package/chunks/chunk-6O6Z2I5Q.js +292 -0
  42. package/chunks/{chunk-RYFZCUJO.js → chunk-6QKT5VNZ.js} +14 -6
  43. package/chunks/{chunk-SD4N3QJ2.js → chunk-6ZPSVWLF.js} +61 -17
  44. package/chunks/{chunk-X265R5C6.js → chunk-7YGSDQ5J.js} +2 -2
  45. package/chunks/{chunk-PRDFOIZF.js → chunk-A6KEUFJO.js} +32 -5
  46. package/chunks/{chunk-OWVIH4HY.js → chunk-B5OAMPJ5.js} +389 -87
  47. package/chunks/{chunk-ME3YSROJ.js → chunk-CV2AT2WJ.js} +22 -10
  48. package/chunks/{chunk-U4FRHCLA.js → chunk-DDKUYKHA.js} +1912 -201
  49. package/chunks/{chunk-YDSYD7UI.js → chunk-E3SA2LY4.js} +2 -2
  50. package/chunks/{chunk-6IAWPIQ6.js → chunk-EDM5O3SX.js} +2 -2
  51. package/chunks/{chunk-CISB3IQF.js → chunk-FONJQQWI.js} +65 -6
  52. package/chunks/{chunk-FRFFNYUY.js → chunk-G3WIMNL4.js} +3 -3
  53. package/chunks/{chunk-B34OV7K2.js → chunk-GGQQA4JW.js} +13 -0
  54. package/chunks/chunk-GLE2YUPU.js +34 -0
  55. package/chunks/{chunk-MJI36HER.js → chunk-GOTMC3BX.js} +1 -1
  56. package/chunks/{chunk-RFIL6REB.js → chunk-GRB4QSBD.js} +168 -31
  57. package/chunks/chunk-GVVY7GSP.js +38 -0
  58. package/chunks/{chunk-7JGISHHZ.js → chunk-HDEUQRAR.js} +14 -156
  59. package/chunks/{chunk-NZEGNV4V.js → chunk-HPRI22FZ.js} +6 -6
  60. package/chunks/{chunk-STAZRKOT.js → chunk-I34IHZFJ.js} +117 -459
  61. package/chunks/{chunk-JF7DFPQ5.js → chunk-I3MBKL6Z.js} +12 -2
  62. package/chunks/{chunk-DNV4FSN5.js → chunk-I5XN6KDI.js} +21 -4
  63. package/chunks/{chunk-VZ7HY3YU.js → chunk-IAMRWMFU.js} +1 -1
  64. package/chunks/{chunk-44NROQYV.js → chunk-JOQMY62N.js} +1 -1
  65. package/chunks/{chunk-VQWAZSXN.js → chunk-JW4IKIZ2.js} +57 -35
  66. package/chunks/{chunk-SAIILPQ3.js → chunk-KJMYXFUR.js} +3 -1
  67. package/chunks/{chunk-AFOLR6YL.js → chunk-KQ6MKCFE.js} +102 -16
  68. package/chunks/{chunk-X3YGAX7V.js → chunk-KS2FRTYI.js} +2 -0
  69. package/chunks/{chunk-IUE7YWC3.js → chunk-LE7EF36E.js} +7 -7
  70. package/chunks/{chunk-B4U2M63D.js → chunk-LRY7HD3Q.js} +2101 -11
  71. package/chunks/{chunk-PUQLHSQ2.js → chunk-ME7E6WZB.js} +6 -8
  72. package/chunks/{chunk-LEIJKM7Q.js → chunk-MEK7ZRJ3.js} +1 -1
  73. package/chunks/{chunk-AJBEAUIS.js → chunk-MG2TNCRX.js} +4 -3
  74. package/chunks/{chunk-GL5TV7B5.js → chunk-MSMQURDV.js} +21 -5
  75. package/chunks/{chunk-6BN7NZ5Z.js → chunk-NXDJLKKX.js} +4 -6
  76. package/chunks/{chunk-FEJ2FZ3U.js → chunk-NY2ZOFMM.js} +1 -1
  77. package/chunks/{chunk-QZF5U5KA.js → chunk-NY5BE643.js} +8 -8
  78. package/chunks/{chunk-4RQIB5UZ.js → chunk-O2YT7VB4.js} +0 -34
  79. package/chunks/{chunk-4KJ2BPIT.js → chunk-OACJLMLD.js} +2 -38
  80. package/chunks/chunk-PCWSPWXZ.js +168 -0
  81. package/chunks/{chunk-XPJH4PKR.js → chunk-PJ74K3DH.js} +1 -1
  82. package/chunks/{chunk-FTFXDZYI.js → chunk-PW7VWRLX.js} +45 -29
  83. package/chunks/chunk-R3SLDK6Y.js +468 -0
  84. package/chunks/{chunk-4O344UEE.js → chunk-SDJOZOYY.js} +38 -18
  85. package/chunks/{chunk-ALZ75L2X.js → chunk-SMYIBRAA.js} +412 -376
  86. package/chunks/{chunk-CCGOFQV3.js → chunk-SS5P6JM6.js} +6 -5
  87. package/chunks/{chunk-AIY5UTFI.js → chunk-T3XHYGMG.js} +925 -2872
  88. package/chunks/{chunk-Q6OEPOOC.js → chunk-TB6GWNV4.js} +1 -1
  89. package/chunks/{chunk-24XYI5EI.js → chunk-TERKDCOZ.js} +3 -3
  90. package/chunks/chunk-TVO5C767.js +159 -0
  91. package/chunks/{chunk-TBAZMRW3.js → chunk-TVW53EK7.js} +1 -1
  92. package/chunks/chunk-TX5QZYK6.js +296 -0
  93. package/chunks/{chunk-JD33UY7E.js → chunk-TZRVTPJ6.js} +15 -9
  94. package/chunks/{chunk-65CFHNSE.js → chunk-UAFB2DNB.js} +59 -59
  95. package/chunks/{chunk-QAKFYMJI.js → chunk-UOXLB2LY.js} +152 -17
  96. package/chunks/chunk-V35MD7KN.js +13 -0
  97. package/chunks/{chunk-XSAFNANZ.js → chunk-VWDJHVXM.js} +12 -12
  98. package/chunks/{chunk-XISQIIT7.js → chunk-W77ZLCSX.js} +1 -1
  99. package/chunks/{chunk-BWVQN2HV.js → chunk-WTEIUA2V.js} +4 -4
  100. package/chunks/{chunk-TDGF35EN.js → chunk-XOHNA2S6.js} +1 -1
  101. package/chunks/{chunk-HJ3GX3Y3.js → chunk-XZVUZSDG.js} +25 -11
  102. package/chunks/{chunk-ADZG46HR.js → chunk-YHGCTQG3.js} +1 -1
  103. package/chunks/{chunk-2NPS2UDH.js → chunk-YUNPEB3Q.js} +478 -43
  104. package/chunks/chunk-Z3I3QJK3.js +47 -0
  105. package/chunks/{chunk-P7I3D7FM.js → chunk-Z466FBSA.js} +1 -1
  106. package/chunks/{chunk-YEGT55NW.js → chunk-ZDAZSR2O.js} +3009 -1220
  107. package/chunks/{chunk-VEB3NYSO.js → chunk-ZJQBTFJ6.js} +6 -1
  108. package/chunks/chunk-ZL5HN75Q.js +61 -0
  109. package/chunks/{computer-use-X4KUU3NM.js → computer-use-IW5XBECT.js} +10 -10
  110. package/chunks/{contextCommand-LAYJZF7H.js → contextCommand-4QPLK2SH.js} +14 -14
  111. package/chunks/create-sub-session-7JK3EYWA.js +212 -0
  112. package/chunks/create-sub-session-EVYZYAE3.js +364 -0
  113. package/chunks/{cron-create-JSXEIPVS.js → cron-create-2CCO2PW6.js} +2 -2
  114. package/chunks/{cron-delete-OIFVEPGU.js → cron-delete-ETVTP5IV.js} +2 -2
  115. package/chunks/{cron-list-D4ZX4IOE.js → cron-list-FS3KWOY5.js} +2 -2
  116. package/chunks/{daemon-F3I2RXP6.js → daemon-NNUYIBWA.js} +461 -0
  117. package/chunks/{daemon-status-provider-XSAFKVDS.js → daemon-status-provider-3EPG6BXX.js} +21 -19
  118. package/chunks/{de-PLLFDERI.js → de-QRG6J2CM.js} +89 -5
  119. package/chunks/{dist-YTRKAVUB.js → dist-3EIIFOJV.js} +1 -1
  120. package/chunks/{dist-PKFTNUHO.js → dist-7F5GWZDZ.js} +2 -1
  121. package/chunks/{dist-FQ5WRJPL.js → dist-CBJ7OJ5R.js} +2 -2
  122. package/chunks/{dist-OT7G2WNM.js → dist-LIFJ2YAI.js} +1 -1
  123. package/chunks/{dist-573HNSVO.js → dist-OKXOQ63L.js} +2 -1
  124. package/chunks/{dist-IMFFBMAT.js → dist-SU5LY5R4.js} +3 -1
  125. package/chunks/{earlyInputCapture-AERYYGXE.js → earlyInputCapture-HP5XAS7A.js} +10 -10
  126. package/chunks/{edit-WZTZDGCI.js → edit-MDICC6KH.js} +11 -11
  127. package/chunks/{en-GA2RMXY5.js → en-HF3KFWZG.js} +91 -5
  128. package/chunks/{enter-worktree-DEPXBJEL.js → enter-worktree-JWTRNEN4.js} +10 -10
  129. package/chunks/{enterPlanMode-JFGXZHHJ.js → enterPlanMode-GMRZMTBQ.js} +10 -10
  130. package/chunks/environment-2CJAFOFN.js +88 -0
  131. package/chunks/{errors-GMZL4QV7.js → errors-UZOVFD2U.js} +13 -13
  132. package/chunks/{exit-worktree-Y7XBK3VV.js → exit-worktree-QQGEG343.js} +10 -10
  133. package/chunks/{exitPlanMode-WQQER65F.js → exitPlanMode-YK2JVAAB.js} +10 -10
  134. package/chunks/{fast-path-W2U6XDNO.js → fast-path-6SD4JNQW.js} +12 -3
  135. package/chunks/{fast-path-settings-RCRXH2JG.js → fast-path-settings-RAQGCIT7.js} +3 -2
  136. package/chunks/{fr-GWNQG4XH.js → fr-RSCO6HHD.js} +89 -5
  137. package/chunks/{gemini-T4WX6SRW.js → gemini-TFQXPUZB.js} +436 -140
  138. package/chunks/{geminiContentGenerator-MKQACXEJ.js → geminiContentGenerator-LJ2BNXHX.js} +1 -1
  139. package/chunks/{glob-4KKSHZDF.js → glob-3IJ6JR5W.js} +10 -10
  140. package/chunks/{grep-GHRYXSLZ.js → grep-UFZ2RFQZ.js} +10 -10
  141. package/chunks/{handleAutoUpdate-HN7ZOSXY.js → handleAutoUpdate-TEZC5ZIR.js} +17 -13
  142. package/chunks/i18n-5QEODTJV.js +84 -0
  143. package/chunks/{initializer-SRN3IM42.js → initializer-222MPCLQ.js} +18 -16
  144. package/chunks/installationInfo-OZ62OHZ2.js +65 -0
  145. package/chunks/{ja-2HOTA47X.js → ja-RRFGG2DC.js} +89 -5
  146. package/chunks/{list-INTVXUPA.js → list-BN5VBIIE.js} +20 -18
  147. package/chunks/{loadedSettingsAdapter-QVHHQPGM.js → loadedSettingsAdapter-EHTUJRFB.js} +18 -16
  148. package/chunks/{loop-wakeup-OHWEMFP5.js → loop-wakeup-SR2KWT4B.js} +3 -3
  149. package/chunks/{ls-L654WOAT.js → ls-RUBQK5Q2.js} +2 -2
  150. package/chunks/{lsp-M35KE54Y.js → lsp-DUTVY2ZA.js} +3 -5
  151. package/chunks/{mcp-7V4T46RG.js → mcp-OPGHD26Y.js} +18 -16
  152. package/chunks/{monitor-464OY2UE.js → monitor-WXBDVYYV.js} +10 -10
  153. package/chunks/{nonInteractiveCli-LJEEODU2.js → nonInteractiveCli-CWIBGJ4U.js} +54 -49
  154. package/chunks/{notebook-edit-BLJYCNDO.js → notebook-edit-T7P7M73F.js} +11 -11
  155. package/chunks/{openaiContentGenerator-PFF6HYB2.js → openaiContentGenerator-OES264C3.js} +7 -7
  156. package/chunks/{pidfile-LIBUENIV.js → pidfile-LJ3NLS2P.js} +10 -10
  157. package/chunks/{pt-2THT3YHA.js → pt-D4CG46JM.js} +89 -5
  158. package/chunks/{qwenContentGenerator-SUUHZ6CR.js → qwenContentGenerator-QJ67LAJ5.js} +12 -12
  159. package/chunks/{read-file-L7TBQVX7.js → read-file-KZD7TLU7.js} +5 -5
  160. package/chunks/{read-mcp-resource-CNQHBSJM.js → read-mcp-resource-Q56IMYOH.js} +1 -1
  161. package/chunks/{record-artifact-PP3LKHTS.js → record-artifact-GZ5D5HZX.js} +4 -4
  162. package/chunks/{ripGrep-CKKX3GRB.js → ripGrep-KUJLX75U.js} +10 -10
  163. package/chunks/{ru-Z67YJHBG.js → ru-O2QUEL22.js} +89 -5
  164. package/chunks/{run-qwen-serve-5OKADVLE.js → run-qwen-serve-M52KVRGI.js} +664 -153
  165. package/chunks/{scheduler-ZRW3AIDU.js → scheduler-FFATTAYZ.js} +10 -10
  166. package/chunks/{send-message-OA6MV4EU.js → send-message-HAGK3VTV.js} +2 -2
  167. package/chunks/{serve-36WS32W6.js → serve-B5S32524.js} +21 -18
  168. package/chunks/{server-M372UENX.js → server-6HK5FJMR.js} +3301 -665
  169. package/chunks/{session-F5KSNP2N.js → session-3WB76VTQ.js} +55 -50
  170. package/chunks/{settings-WFLNS3WT.js → settings-W3IX7NHK.js} +27 -23
  171. package/chunks/{shell-DEDSWN56.js → shell-HZIU2ZG7.js} +10 -10
  172. package/chunks/{skill-A2TL2NPC.js → skill-34OUFB65.js} +5 -5
  173. package/chunks/{spawnChannel-RQHUWTCL.js → spawnChannel-FTZJ3I5O.js} +12 -12
  174. package/chunks/{src-XKZMNHXS.js → src-NELBIIGI.js} +48 -10
  175. package/chunks/standalone-update-LICI2VSK.js +79 -0
  176. package/chunks/{startInteractiveUI-REKSTOHU.js → startInteractiveUI-LZEV5YI2.js} +2203 -1764
  177. package/chunks/stdioHelpers-CA7MG65Z.js +14 -0
  178. package/chunks/{syntheticOutput-F7LSDCAR.js → syntheticOutput-XFFJVCGV.js} +2 -2
  179. package/chunks/{task-create-RPFZNB4B.js → task-create-VINUSVBF.js} +3 -3
  180. package/chunks/{task-list-TGGJX7EA.js → task-list-YZ2AWQEG.js} +1 -1
  181. package/chunks/{task-stop-W7NGTMYQ.js → task-stop-PEXPKUW3.js} +1 -1
  182. package/chunks/{task-update-5WUG5MVQ.js → task-update-BHIX57YH.js} +3 -3
  183. package/chunks/{team-create-TBQVWAG7.js → team-create-2JS2OYSF.js} +10 -10
  184. package/chunks/{team-delete-UHQQ2QQX.js → team-delete-2OHXSBVS.js} +1 -1
  185. package/chunks/{team-plan-approval-FZPGUSHJ.js → team-plan-approval-PHLGYUY7.js} +10 -10
  186. package/chunks/{theme-manager-DQZVNSOC.js → theme-manager-UYXLX37P.js} +10 -10
  187. package/chunks/{todoWrite-C4ZAMSR3.js → todoWrite-7Q4ELT4F.js} +1 -1
  188. package/chunks/{tool-search-FDQ3SLNJ.js → tool-search-2MWA3GWE.js} +6 -6
  189. package/chunks/total-session-admission-PRZK35X4.js +72 -0
  190. package/chunks/{trustedFolders-Z475EIHL.js → trustedFolders-IT4JBNPG.js} +12 -12
  191. package/chunks/{updateCheck-E2ZX7RL7.js → updateCheck-X3ZWDO3Z.js} +17 -13
  192. package/chunks/updateEventEmitter-NXWTRHXY.js +10 -0
  193. package/chunks/{validateNonInterActiveAuth-O4ECBHQL.js → validateNonInterActiveAuth-IAOL7CM3.js} +51 -45
  194. package/chunks/{version-CEDD6ZZR.js → version-25QF6A5H.js} +1 -1
  195. package/chunks/{web-fetch-UYGMOHW4.js → web-fetch-I7FOWHGA.js} +2 -2
  196. package/chunks/{workflow-CQQ4J4I6.js → workflow-LZZ5U3IT.js} +11 -11
  197. package/chunks/{workspace-providers-status-MVYXMYDG.js → workspace-providers-status-7DTOAWEL.js} +21 -18
  198. package/chunks/workspace-registry-BBIPESIZ.js +76 -0
  199. package/chunks/{workspace-service-OMBR6ZLG.js → workspace-service-SY3P3FUY.js} +25 -23
  200. package/chunks/{workspace-skills-status-IMMQ7CAY.js → workspace-skills-status-GTT2A4WN.js} +20 -18
  201. package/chunks/{write-file-VWGY7AJP.js → write-file-M6IHNW3V.js} +11 -11
  202. package/chunks/{zh-7XVVRTDH.js → zh-K2EH6BDD.js} +91 -5
  203. package/chunks/{zh-TW-DPH554OG.js → zh-TW-4GPXJ7ZY.js} +91 -5
  204. package/cli.js +13 -12
  205. package/locales/ca.js +115 -7
  206. package/locales/de.js +114 -7
  207. package/locales/en.js +118 -7
  208. package/locales/fr.js +115 -7
  209. package/locales/ja.js +116 -6
  210. package/locales/pt.js +114 -7
  211. package/locales/ru.js +114 -7
  212. package/locales/zh-TW.js +114 -6
  213. package/locales/zh.js +114 -6
  214. package/package.json +3 -6
  215. package/web-shell/assets/{arc-C7hjaa7g.js → arc-G3HZaqaL.js} +1 -1
  216. package/web-shell/assets/{architectureDiagram-3BPJPVTR-pm9KtMZY.js → architectureDiagram-3BPJPVTR-DhBrwwch.js} +1 -1
  217. package/web-shell/assets/{blockDiagram-GPEHLZMM-CApElKsU.js → blockDiagram-GPEHLZMM-16JbbF0N.js} +1 -1
  218. package/web-shell/assets/{c4Diagram-AAUBKEIU-BeDe0-9N.js → c4Diagram-AAUBKEIU-DQ3-pKgc.js} +1 -1
  219. package/web-shell/assets/channel-CX7ZHuuL.js +1 -0
  220. package/web-shell/assets/{chunk-2J33WTMH-DJEkmLdl.js → chunk-2J33WTMH-ERCn30sp.js} +1 -1
  221. package/web-shell/assets/{chunk-4BX2VUAB-DXX8gdpe.js → chunk-4BX2VUAB-DTysfbFi.js} +1 -1
  222. package/web-shell/assets/{chunk-55IACEB6-DORmk1kQ.js → chunk-55IACEB6-BFGrbTBi.js} +1 -1
  223. package/web-shell/assets/{chunk-727SXJPM-DWmO4mCZ.js → chunk-727SXJPM-DCX4Oar-.js} +1 -1
  224. package/web-shell/assets/{chunk-AQP2D5EJ-C7LRaYw2.js → chunk-AQP2D5EJ-CgT6sBr3.js} +1 -1
  225. package/web-shell/assets/{chunk-FMBD7UC4-CCdXgyC5.js → chunk-FMBD7UC4-C1Uuk1KV.js} +1 -1
  226. package/web-shell/assets/{chunk-ND2GUHAM-SyL_xvWc.js → chunk-ND2GUHAM-DajgESiu.js} +1 -1
  227. package/web-shell/assets/{chunk-QZHKN3VN-BzOuCKxa.js → chunk-QZHKN3VN-DLJSvy9X.js} +1 -1
  228. package/web-shell/assets/classDiagram-4FO5ZUOK-B-oT3UI8.js +1 -0
  229. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B-oT3UI8.js +1 -0
  230. package/web-shell/assets/{cose-bilkent-S5V4N54A-BMPWyDKc.js → cose-bilkent-S5V4N54A-CH3w3qs7.js} +1 -1
  231. package/web-shell/assets/{dagre-BM42HDAG-B_GnPWik.js → dagre-BM42HDAG-BloXan9B.js} +1 -1
  232. package/web-shell/assets/{diagram-2AECGRRQ-fJqMc3S_.js → diagram-2AECGRRQ-BbZiGcmK.js} +1 -1
  233. package/web-shell/assets/{diagram-5GNKFQAL-ximV3O9D.js → diagram-5GNKFQAL-GQlYvLJv.js} +1 -1
  234. package/web-shell/assets/{diagram-KO2AKTUF-2vVyjzqw.js → diagram-KO2AKTUF-CtIBvVq3.js} +1 -1
  235. package/web-shell/assets/{diagram-LMA3HP47-Dckcx1sT.js → diagram-LMA3HP47-D5TBo9a2.js} +1 -1
  236. package/web-shell/assets/{diagram-OG6HWLK6-BAVv47ga.js → diagram-OG6HWLK6-N0gQhw6R.js} +1 -1
  237. package/web-shell/assets/{erDiagram-TEJ5UH35-Bn3nf5J0.js → erDiagram-TEJ5UH35-zab9vDj3.js} +1 -1
  238. package/web-shell/assets/{flowDiagram-I6XJVG4X-BIbGF9JT.js → flowDiagram-I6XJVG4X-BnnjtWJa.js} +1 -1
  239. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CDbhb3AH.js → ganttDiagram-6RSMTGT7-2T0SQU4f.js} +1 -1
  240. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CbKG1a_w.js → gitGraphDiagram-PVQCEYII-DAD6_que.js} +1 -1
  241. package/web-shell/assets/index-XLkWfLja.css +5 -0
  242. package/web-shell/assets/index-srlTR1Jg.js +786 -0
  243. package/web-shell/assets/{infoDiagram-5YYISTIA-DUFxTy8m.js → infoDiagram-5YYISTIA-C-j8d0xO.js} +1 -1
  244. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D69hrBG8.js → ishikawaDiagram-YF4QCWOH-D97bAKoT.js} +1 -1
  245. package/web-shell/assets/{journeyDiagram-JHISSGLW-DsvEw51Y.js → journeyDiagram-JHISSGLW-BJAHfJmm.js} +1 -1
  246. package/web-shell/assets/{kanban-definition-UN3LZRKU-lFFjZEYd.js → kanban-definition-UN3LZRKU-CZgR5aac.js} +1 -1
  247. package/web-shell/assets/{linear-Bo5bWzvo.js → linear-DOd4kYhA.js} +1 -1
  248. package/web-shell/assets/{mermaid.core-C_HKMJx5.js → mermaid.core-BBaplnXA.js} +5 -5
  249. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DlV-NUTs.js → mindmap-definition-RKZ34NQL-IhBF_BR5.js} +1 -1
  250. package/web-shell/assets/{pieDiagram-4H26LBE5-B2e6FH2a.js → pieDiagram-4H26LBE5-B4R4sYyH.js} +1 -1
  251. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-D75kSk-b.js → quadrantDiagram-W4KKPZXB-DKd1SJ61.js} +1 -1
  252. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CQ6xakhM.js → requirementDiagram-4Y6WPE33-Cw96V0Xb.js} +1 -1
  253. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-J_XTKrcY.js → sankeyDiagram-5OEKKPKP-C6ne_yWi.js} +1 -1
  254. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-D7jTcBtf.js → sequenceDiagram-3UESZ5HK-CCyp4PDp.js} +1 -1
  255. package/web-shell/assets/{stateDiagram-AJRCARHV-CrlM_OT3.js → stateDiagram-AJRCARHV-DHvIqTmx.js} +1 -1
  256. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DvFhmpwA.js +1 -0
  257. package/web-shell/assets/{timeline-definition-PNZ67QCA-5oZi76Ef.js → timeline-definition-PNZ67QCA-amb3n9zH.js} +1 -1
  258. package/web-shell/assets/{vennDiagram-CIIHVFJN-DO5YptPK.js → vennDiagram-CIIHVFJN-Abf2qRFJ.js} +1 -1
  259. package/web-shell/assets/{wardley-L42UT6IY-4t1eJDvM.js → wardley-L42UT6IY-BBlOp1av.js} +1 -1
  260. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DKZc661S.js → wardleyDiagram-YWT4CUSO-gE_sZ0Ak.js} +1 -1
  261. package/web-shell/assets/{xychartDiagram-2RQKCTM6-su9hp08G.js → xychartDiagram-2RQKCTM6-BwOni53i.js} +1 -1
  262. package/web-shell/index.html +16 -4
  263. package/chunks/chunk-6SHO7WFF.js +0 -79
  264. package/chunks/chunk-IFEWJXFS.js +0 -37
  265. package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +0 -35
  266. package/node_modules/@qwen-code/audio-capture/dist/index.js +0 -48
  267. package/node_modules/@qwen-code/audio-capture/dist/index.js.map +0 -1
  268. package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +0 -7
  269. package/node_modules/@qwen-code/audio-capture/dist/platform.js +0 -18
  270. package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +0 -1
  271. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +0 -21
  272. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +0 -58
  273. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +0 -5
  274. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +0 -84
  275. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +0 -19
  276. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +0 -6
  277. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +0 -207
  278. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +0 -7
  279. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +0 -43
  280. package/node_modules/@qwen-code/audio-capture/package.json +0 -30
  281. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  282. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  283. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
  284. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
  285. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  286. package/web-shell/assets/channel-BNf1dW-j.js +0 -1
  287. package/web-shell/assets/classDiagram-4FO5ZUOK-uOIGlzgi.js +0 -1
  288. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-uOIGlzgi.js +0 -1
  289. package/web-shell/assets/index-CnE2ur2L.js +0 -779
  290. package/web-shell/assets/index-hSKXrlSE.css +0 -5
  291. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Bs4TK_84.js +0 -1
  292. /package/chunks/{chunk-Y6Z2O3WR.js → chunk-JM7BYJO5.js} +0 -0
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  SkillError
5
- } from "./chunk-YEGT55NW.js";
5
+ } from "./chunk-ZDAZSR2O.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";
@@ -84,6 +84,7 @@ var SERVE_CONTROL_EXT_METHODS = {
84
84
  sessionRewind: "qwen/control/session/rewind",
85
85
  sessionContinue: "qwen/control/session/continue",
86
86
  sessionTitle: "qwen/control/session/title",
87
+ sessionArtifactsPersist: "qwen/control/session/artifacts/persist",
87
88
  workspaceMcpRestart: "qwen/control/workspace/mcp/restart",
88
89
  workspaceMcpManage: "qwen/control/workspace/mcp/manage",
89
90
  workspaceAgentGenerate: "qwen/control/workspace/agents/generate",
@@ -109,7 +110,16 @@ var SERVE_CONTROL_EXT_METHODS = {
109
110
  * result: `{ payload }`.
110
111
  */
111
112
  clientMcpMessage: "qwen/control/client_mcp/message",
112
- sessionCd: "qwen/control/session/cd"
113
+ sessionCd: "qwen/control/session/cd",
114
+ /**
115
+ * Also called by the CHILD UP into the parent (like `clientMcpMessage`): the
116
+ * `create_sub_session` tool, running inside a child's agent turn, asks the
117
+ * daemon to spawn a fresh top-level sub-session and run a prompt in it. Params:
118
+ * `{ prompt, completion:'sent'|'first-turn', model?, name?, callerSessionId? }`;
119
+ * result: `{ sessionId, result?, stopReason? }` (result present only for the
120
+ * `first-turn` mode, which waits for the sub-session's first turn to finish).
121
+ */
122
+ createSubSession: "qwen/control/create-sub-session"
113
123
  };
114
124
  var IDLE_HOOK_EVENTS = {
115
125
  PreToolUse: { description: "Before tool execution", matcherKind: "toolName" },
@@ -1,16 +1,18 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
3
  import {
4
- DEFAULT_EXCLUDED_ENV_VARS,
5
- HOME_ENV_BOOTSTRAP_KEYS,
6
- PROJECT_ENV_HARDCODED_EXCLUSIONS,
7
4
  SETTINGS_DIRECTORY_NAME,
8
5
  V1_INDICATOR_KEYS,
9
6
  getGlobalQwenDirLite,
10
7
  getSystemDefaultsPath,
11
8
  getSystemSettingsPath,
12
9
  resolveEnvVarsInObject
13
- } from "./chunk-4RQIB5UZ.js";
10
+ } from "./chunk-O2YT7VB4.js";
11
+ import {
12
+ DEFAULT_EXCLUDED_ENV_VARS,
13
+ HOME_ENV_BOOTSTRAP_KEYS,
14
+ PROJECT_ENV_HARDCODED_EXCLUSIONS
15
+ } from "./chunk-Z3I3QJK3.js";
14
16
  import {
15
17
  getPathComparisonVariants,
16
18
  isWithinRoot,
@@ -365,6 +367,18 @@ function pickFastPathSettings(value) {
365
367
  if (isPlainObject(env)) {
366
368
  out.env = pickStringRecord(env);
367
369
  }
370
+ const general = value["general"];
371
+ if (isPlainObject(general)) {
372
+ const chatRecording = general["chatRecording"];
373
+ if (chatRecording !== void 0 && typeof chatRecording !== "boolean") {
374
+ throw new Error(
375
+ "Serve fast path settings general.chatRecording must be a boolean."
376
+ );
377
+ }
378
+ if (chatRecording !== void 0) {
379
+ out.general = { chatRecording };
380
+ }
381
+ }
368
382
  const advanced = value["advanced"];
369
383
  if (isPlainObject(advanced)) {
370
384
  const pickedAdvanced = {};
@@ -509,6 +523,9 @@ function mergeFastPathSettings(...sources) {
509
523
  if (source.env) {
510
524
  merged.env = { ...merged.env ?? {}, ...source.env };
511
525
  }
526
+ if (source.general) {
527
+ merged.general = { ...merged.general ?? {}, ...source.general };
528
+ }
512
529
  if (source.advanced?.excludedEnvVars) {
513
530
  merged.advanced = {
514
531
  ...merged.advanced ?? {},
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-OFEVLU4C.js";
6
6
  import {
7
7
  SchemaValidator
8
- } from "./chunk-X3YGAX7V.js";
8
+ } from "./chunk-KS2FRTYI.js";
9
9
  import {
10
10
  init_esbuild_shims
11
11
  } from "./chunk-A4BMJM77.js";
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-HW4N45EE.js";
6
6
  import {
7
7
  TextTokenizer
8
- } from "./chunk-CCGOFQV3.js";
8
+ } from "./chunk-SS5P6JM6.js";
9
9
  import {
10
10
  createDebugLogger
11
11
  } from "./chunk-22MNNNXE.js";
@@ -6,6 +6,9 @@ import {
6
6
  import {
7
7
  eastAsianWidth
8
8
  } from "./chunk-LGFAYIKX.js";
9
+ import {
10
+ t
11
+ } from "./chunk-UOXLB2LY.js";
9
12
  import {
10
13
  require_clean,
11
14
  require_constants,
@@ -24,7 +27,7 @@ import {
24
27
  ansi_regex_exports,
25
28
  init_ansi_regex,
26
29
  stripAnsi
27
- } from "./chunk-YEGT55NW.js";
30
+ } from "./chunk-ZDAZSR2O.js";
28
31
  import {
29
32
  require_graceful_fs
30
33
  } from "./chunk-X2XNQQJI.js";
@@ -3281,7 +3284,7 @@ var require_coerce = __commonJS({
3281
3284
  init_esbuild_shims();
3282
3285
  var SemVer = require_semver();
3283
3286
  var parse = require_parse();
3284
- var { safeRe: re, t } = require_re();
3287
+ var { safeRe: re, t: t2 } = require_re();
3285
3288
  var coerce = /* @__PURE__ */ __name((version, options) => {
3286
3289
  if (version instanceof SemVer) {
3287
3290
  return version;
@@ -3295,9 +3298,9 @@ var require_coerce = __commonJS({
3295
3298
  options = options || {};
3296
3299
  let match = null;
3297
3300
  if (!options.rtl) {
3298
- match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE]);
3301
+ match = version.match(options.includePrerelease ? re[t2.COERCEFULL] : re[t2.COERCE]);
3299
3302
  } else {
3300
- const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL];
3303
+ const coerceRtlRegex = options.includePrerelease ? re[t2.COERCERTLFULL] : re[t2.COERCERTL];
3301
3304
  let next;
3302
3305
  while ((next = coerceRtlRegex.exec(version)) && (!match || match.index + match[0].length !== version.length)) {
3303
3306
  if (!match || next.index + next[0].length !== match.index + match[0].length) {
@@ -3444,20 +3447,20 @@ var require_range = __commonJS({
3444
3447
  return cached;
3445
3448
  }
3446
3449
  const loose = this.options.loose;
3447
- const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE];
3450
+ const hr = loose ? re[t2.HYPHENRANGELOOSE] : re[t2.HYPHENRANGE];
3448
3451
  range = range.replace(hr, hyphenReplace(this.options.includePrerelease));
3449
3452
  debug("hyphen replace", range);
3450
- range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace);
3453
+ range = range.replace(re[t2.COMPARATORTRIM], comparatorTrimReplace);
3451
3454
  debug("comparator trim", range);
3452
- range = range.replace(re[t.TILDETRIM], tildeTrimReplace);
3455
+ range = range.replace(re[t2.TILDETRIM], tildeTrimReplace);
3453
3456
  debug("tilde trim", range);
3454
- range = range.replace(re[t.CARETTRIM], caretTrimReplace);
3457
+ range = range.replace(re[t2.CARETTRIM], caretTrimReplace);
3455
3458
  debug("caret trim", range);
3456
3459
  let rangeList = range.split(" ").map((comp) => parseComparator(comp, this.options)).join(" ").split(/\s+/).map((comp) => replaceGTE0(comp, this.options));
3457
3460
  if (loose) {
3458
3461
  rangeList = rangeList.filter((comp) => {
3459
3462
  debug("loose invalid filter", comp, this.options);
3460
- return !!comp.match(re[t.COMPARATORLOOSE]);
3463
+ return !!comp.match(re[t2.COMPARATORLOOSE]);
3461
3464
  });
3462
3465
  }
3463
3466
  debug("range list", rangeList);
@@ -3519,7 +3522,7 @@ var require_range = __commonJS({
3519
3522
  var SemVer = require_semver();
3520
3523
  var {
3521
3524
  safeRe: re,
3522
- t,
3525
+ t: t2,
3523
3526
  comparatorTrimReplace,
3524
3527
  tildeTrimReplace,
3525
3528
  caretTrimReplace
@@ -3540,7 +3543,7 @@ var require_range = __commonJS({
3540
3543
  return result;
3541
3544
  }, "isSatisfiable");
3542
3545
  var parseComparator = /* @__PURE__ */ __name((comp, options) => {
3543
- comp = comp.replace(re[t.BUILD], "");
3546
+ comp = comp.replace(re[t2.BUILD], "");
3544
3547
  debug("comp", comp, options);
3545
3548
  comp = replaceCarets(comp, options);
3546
3549
  debug("caret", comp);
@@ -3557,7 +3560,7 @@ var require_range = __commonJS({
3557
3560
  return comp.trim().split(/\s+/).map((c) => replaceTilde(c, options)).join(" ");
3558
3561
  }, "replaceTildes");
3559
3562
  var replaceTilde = /* @__PURE__ */ __name((comp, options) => {
3560
- const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE];
3563
+ const r = options.loose ? re[t2.TILDELOOSE] : re[t2.TILDE];
3561
3564
  return comp.replace(r, (_, M, m, p, pr) => {
3562
3565
  debug("tilde", comp, _, M, m, p, pr);
3563
3566
  let ret;
@@ -3582,7 +3585,7 @@ var require_range = __commonJS({
3582
3585
  }, "replaceCarets");
3583
3586
  var replaceCaret = /* @__PURE__ */ __name((comp, options) => {
3584
3587
  debug("caret", comp, options);
3585
- const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET];
3588
+ const r = options.loose ? re[t2.CARETLOOSE] : re[t2.CARET];
3586
3589
  const z = options.includePrerelease ? "-0" : "";
3587
3590
  return comp.replace(r, (_, M, m, p, pr) => {
3588
3591
  debug("caret", comp, _, M, m, p, pr);
@@ -3630,7 +3633,7 @@ var require_range = __commonJS({
3630
3633
  }, "replaceXRanges");
3631
3634
  var replaceXRange = /* @__PURE__ */ __name((comp, options) => {
3632
3635
  comp = comp.trim();
3633
- const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE];
3636
+ const r = options.loose ? re[t2.XRANGELOOSE] : re[t2.XRANGE];
3634
3637
  return comp.replace(r, (ret, gtlt, M, m, p, pr) => {
3635
3638
  debug("xRange", comp, ret, gtlt, M, m, p, pr);
3636
3639
  const xM = isX(M);
@@ -3685,11 +3688,11 @@ var require_range = __commonJS({
3685
3688
  }, "replaceXRange");
3686
3689
  var replaceStars = /* @__PURE__ */ __name((comp, options) => {
3687
3690
  debug("replaceStars", comp, options);
3688
- return comp.trim().replace(re[t.STAR], "");
3691
+ return comp.trim().replace(re[t2.STAR], "");
3689
3692
  }, "replaceStars");
3690
3693
  var replaceGTE0 = /* @__PURE__ */ __name((comp, options) => {
3691
3694
  debug("replaceGTE0", comp, options);
3692
- return comp.trim().replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], "");
3695
+ return comp.trim().replace(re[options.includePrerelease ? t2.GTE0PRE : t2.GTE0], "");
3693
3696
  }, "replaceGTE0");
3694
3697
  var hyphenReplace = /* @__PURE__ */ __name((incPr) => ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr) => {
3695
3698
  if (isX(fM)) {
@@ -3779,7 +3782,7 @@ var require_comparator = __commonJS({
3779
3782
  debug("comp", this);
3780
3783
  }
3781
3784
  parse(comp) {
3782
- const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR];
3785
+ const r = this.options.loose ? re[t2.COMPARATORLOOSE] : re[t2.COMPARATOR];
3783
3786
  const m = comp.match(r);
3784
3787
  if (!m) {
3785
3788
  throw new TypeError(`Invalid comparator: ${comp}`);
@@ -3853,7 +3856,7 @@ var require_comparator = __commonJS({
3853
3856
  };
3854
3857
  module.exports = Comparator;
3855
3858
  var parseOptions = require_parse_options();
3856
- var { safeRe: re, t } = require_re();
3859
+ var { safeRe: re, t: t2 } = require_re();
3857
3860
  var cmp = require_cmp();
3858
3861
  var debug = require_debug();
3859
3862
  var SemVer = require_semver();
@@ -8125,21 +8128,23 @@ function getBestAvailableUpdate(nightly, stable) {
8125
8128
  return import_semver2.default.gt(stableVer, nightlyVer) ? stable : nightly;
8126
8129
  }
8127
8130
  __name(getBestAvailableUpdate, "getBestAvailableUpdate");
8128
- async function checkForUpdates() {
8131
+ async function checkForUpdatesDetailed() {
8132
+ let currentVersion;
8129
8133
  try {
8130
8134
  if (process.env["DEV"] === "true") {
8131
- return null;
8135
+ return { status: "skipped", reason: "development mode" };
8132
8136
  }
8133
8137
  const packageJson3 = await getPackageJson();
8134
8138
  if (!packageJson3 || !packageJson3.name || !packageJson3.version) {
8135
- return null;
8139
+ return { status: "skipped", reason: "package metadata unavailable" };
8136
8140
  }
8137
- const { name, version: currentVersion } = packageJson3;
8138
- const isNightly = currentVersion.includes("nightly");
8141
+ const { name, version } = packageJson3;
8142
+ currentVersion = version;
8143
+ const isNightly = version.includes("nightly");
8139
8144
  const createNotifier = /* @__PURE__ */ __name((distTag) => updateNotifier({
8140
8145
  pkg: {
8141
8146
  name,
8142
- version: currentVersion
8147
+ version
8143
8148
  },
8144
8149
  updateCheckInterval: 0,
8145
8150
  shouldNotifyInNpmScript: true,
@@ -8154,33 +8159,50 @@ async function checkForUpdates() {
8154
8159
  nightlyUpdateInfo,
8155
8160
  latestUpdateInfo
8156
8161
  );
8157
- if (bestUpdate && import_semver2.default.gt(bestUpdate.latest, currentVersion)) {
8158
- const message = `A new version of Qwen Code is available! ${currentVersion} \u2192 ${bestUpdate.latest}`;
8162
+ if (bestUpdate && import_semver2.default.gt(bestUpdate.latest, version)) {
8159
8163
  return {
8160
- message,
8161
- update: { ...bestUpdate, current: currentVersion }
8164
+ status: "update",
8165
+ info: {
8166
+ message: t(
8167
+ "A new version of Qwen Code is available! {{current}} \u2192 {{latest}}",
8168
+ { current: version, latest: bestUpdate.latest }
8169
+ ),
8170
+ update: { ...bestUpdate, current: version }
8171
+ }
8162
8172
  };
8163
8173
  }
8164
8174
  } else {
8165
8175
  const updateInfo = await createNotifier("latest").fetchInfo();
8166
- if (updateInfo && import_semver2.default.gt(updateInfo.latest, currentVersion)) {
8167
- const message = `Qwen Code update available! ${currentVersion} \u2192 ${updateInfo.latest}`;
8176
+ if (updateInfo && import_semver2.default.gt(updateInfo.latest, version)) {
8168
8177
  return {
8169
- message,
8170
- update: { ...updateInfo, current: currentVersion }
8178
+ status: "update",
8179
+ info: {
8180
+ message: t("Qwen Code update available! {{current}} \u2192 {{latest}}", {
8181
+ current: version,
8182
+ latest: updateInfo.latest
8183
+ }),
8184
+ update: { ...updateInfo, current: version }
8185
+ }
8171
8186
  };
8172
8187
  }
8173
8188
  }
8174
- return null;
8189
+ return { status: "up-to-date", currentVersion: version };
8175
8190
  } catch (e) {
8176
- debugLogger.warn("Failed to check for updates: " + e);
8177
- return null;
8191
+ const error = e instanceof Error ? e : new Error(String(e));
8192
+ debugLogger.warn("Failed to check for updates: " + error);
8193
+ return { status: "error", error, currentVersion };
8178
8194
  }
8179
8195
  }
8196
+ __name(checkForUpdatesDetailed, "checkForUpdatesDetailed");
8197
+ async function checkForUpdates() {
8198
+ const result = await checkForUpdatesDetailed();
8199
+ return result.status === "update" ? result.info : null;
8200
+ }
8180
8201
  __name(checkForUpdates, "checkForUpdates");
8181
8202
 
8182
8203
  export {
8183
8204
  FETCH_TIMEOUT_MS,
8205
+ checkForUpdatesDetailed,
8184
8206
  checkForUpdates
8185
8207
  };
8186
8208
  /**
@@ -25,9 +25,11 @@ function isTerminalGoalStatusKind(kind) {
25
25
  );
26
26
  }
27
27
  __name(isTerminalGoalStatusKind, "isTerminalGoalStatusKind");
28
+ var isHistoryItemVisibleAfterRestore = /* @__PURE__ */ __name((item) => !item.display?.suppressOnRestore, "isHistoryItemVisibleAfterRestore");
28
29
 
29
30
  export {
30
- isTerminalGoalStatusKind
31
+ isTerminalGoalStatusKind,
32
+ isHistoryItemVisibleAfterRestore
31
33
  };
32
34
  /**
33
35
  * @license
@@ -2,12 +2,12 @@
2
2
  "use strict";
3
3
  import {
4
4
  buildPermissionSettings
5
- } from "./chunk-P7I3D7FM.js";
5
+ } from "./chunk-Z466FBSA.js";
6
6
  import {
7
7
  resolveVoiceStreamConfig,
8
8
  resolveVoiceTranscriptionConfig,
9
9
  transcribeVoiceAudio
10
- } from "./chunk-RYFZCUJO.js";
10
+ } from "./chunk-6QKT5VNZ.js";
11
11
  import {
12
12
  getVoiceSettingsScope,
13
13
  isSelectableVoiceModel,
@@ -16,15 +16,7 @@ import {
16
16
  readVoiceMode,
17
17
  readVoiceModel,
18
18
  resolveVoiceTransport
19
- } from "./chunk-ADZG46HR.js";
20
- import {
21
- WorkspacePermissionRulesSessionRequiredError,
22
- WorkspaceSettingsPartialPersistError
23
- } from "./chunk-BMFMJINR.js";
24
- import {
25
- getPersistScopeForModelSelection,
26
- loadSettings
27
- } from "./chunk-STAZRKOT.js";
19
+ } from "./chunk-YHGCTQG3.js";
28
20
  import {
29
21
  MCP_RESTART_SERVER_DEADLINE_MS
30
22
  } from "./chunk-P7M4GA57.js";
@@ -36,7 +28,7 @@ import {
36
28
  WorkspaceInitPathEscapeError,
37
29
  WorkspaceInitRaceError,
38
30
  WorkspaceInitSymlinkError
39
- } from "./chunk-B34OV7K2.js";
31
+ } from "./chunk-GGQQA4JW.js";
40
32
  import {
41
33
  SERVE_CONTROL_EXT_METHODS,
42
34
  SERVE_STATUS_EXT_METHODS,
@@ -49,16 +41,24 @@ import {
49
41
  createIdleWorkspaceProvidersStatus,
50
42
  createIdleWorkspaceSkillsStatus,
51
43
  mapDomainErrorToErrorKind
52
- } from "./chunk-JF7DFPQ5.js";
44
+ } from "./chunk-I3MBKL6Z.js";
45
+ import {
46
+ WorkspacePermissionRulesSessionRequiredError,
47
+ WorkspaceSettingsPartialPersistError
48
+ } from "./chunk-BMFMJINR.js";
49
+ import {
50
+ getPersistScopeForModelSelection,
51
+ loadSettings
52
+ } from "./chunk-I34IHZFJ.js";
53
53
  import {
54
54
  getWorkspaceTrustStatus
55
- } from "./chunk-MIG5SQNL.js";
55
+ } from "./chunk-4CSVIZLT.js";
56
56
  import {
57
57
  writeStderrLine
58
- } from "./chunk-Y6Z2O3WR.js";
58
+ } from "./chunk-JM7BYJO5.js";
59
59
  import {
60
60
  ModelsConfig
61
- } from "./chunk-YEGT55NW.js";
61
+ } from "./chunk-ZDAZSR2O.js";
62
62
  import {
63
63
  createDebugLogger
64
64
  } from "./chunk-22MNNNXE.js";
@@ -328,6 +328,29 @@ async function verifyParentPostOpen(target, wsCanonical, _fh) {
328
328
  );
329
329
  }
330
330
  __name(verifyParentPostOpen, "verifyParentPostOpen");
331
+ var TimeoutError = class extends Error {
332
+ static {
333
+ __name(this, "TimeoutError");
334
+ }
335
+ };
336
+ async function withTimeout(promise, timeoutMs, label) {
337
+ return await new Promise((resolve2, reject) => {
338
+ const timeout = setTimeout(() => {
339
+ reject(new TimeoutError(`${label} timed out after ${timeoutMs}ms`));
340
+ }, timeoutMs);
341
+ promise.then(
342
+ (value) => {
343
+ clearTimeout(timeout);
344
+ resolve2(value);
345
+ },
346
+ (err) => {
347
+ clearTimeout(timeout);
348
+ reject(err);
349
+ }
350
+ );
351
+ });
352
+ }
353
+ __name(withTimeout, "withTimeout");
331
354
  function createDaemonWorkspaceService(deps) {
332
355
  const {
333
356
  boundWorkspace,
@@ -339,12 +362,14 @@ function createDaemonWorkspaceService(deps) {
339
362
  persistDisabledTools,
340
363
  persistSetting,
341
364
  persistSettings,
365
+ preheatAcpChild: preheatAcpChildOnBridge,
342
366
  queryWorkspaceStatus,
343
367
  invokeWorkspaceCommand,
344
368
  refreshExtensionsForAllSessions: refreshExtensionsForAllSessionsOnBridge,
345
369
  publishWorkspaceEvent
346
370
  } = deps;
347
371
  let lastWorkspaceSkillsStatus;
372
+ let inFlightAcpPreheat;
348
373
  return {
349
374
  // -- Status queries (delegate to ACP child via queryWorkspaceStatus) --
350
375
  async getWorkspaceMcpStatus(_ctx) {
@@ -396,6 +421,62 @@ function createDaemonWorkspaceService(deps) {
396
421
  () => createIdleWorkspaceProvidersStatus(boundWorkspace)
397
422
  );
398
423
  },
424
+ async preheatAcpChild(_ctx, opts) {
425
+ const startedAt = Date.now();
426
+ const channelLive = /* @__PURE__ */ __name(() => isChannelLive?.() ?? false, "channelLive");
427
+ const finish = /* @__PURE__ */ __name((result) => ({
428
+ ...result,
429
+ durationMs: Date.now() - startedAt
430
+ }), "finish");
431
+ if (channelLive()) {
432
+ return finish({ ready: true, channelLive: true });
433
+ }
434
+ if (!preheatAcpChildOnBridge) {
435
+ return finish({
436
+ ready: false,
437
+ channelLive: false,
438
+ reason: "error",
439
+ error: "ACP preheat is not wired"
440
+ });
441
+ }
442
+ if (!inFlightAcpPreheat) {
443
+ inFlightAcpPreheat = preheatAcpChildOnBridge().finally(() => {
444
+ inFlightAcpPreheat = void 0;
445
+ });
446
+ void inFlightAcpPreheat.catch((err) => {
447
+ writeStderrLine(
448
+ `qwen serve: ACP preheat failed: ${err instanceof Error ? err.message : String(err)}`
449
+ );
450
+ });
451
+ }
452
+ try {
453
+ await withTimeout(
454
+ inFlightAcpPreheat,
455
+ opts?.timeoutMs ?? 5e3,
456
+ "ACP preheat"
457
+ );
458
+ } catch (err) {
459
+ if (err instanceof TimeoutError) {
460
+ inFlightAcpPreheat = void 0;
461
+ writeStderrLine(
462
+ `qwen serve: ACP preheat timed out after ${opts?.timeoutMs ?? 5e3}ms`
463
+ );
464
+ }
465
+ const live2 = channelLive();
466
+ const message = err instanceof Error ? err.message : String(err);
467
+ return finish({
468
+ ready: live2,
469
+ channelLive: live2,
470
+ reason: err instanceof TimeoutError ? "timeout" : "error",
471
+ error: message
472
+ });
473
+ }
474
+ const live = channelLive();
475
+ return finish({ ready: live, channelLive: live });
476
+ },
477
+ async getWorkspaceAcpStatus(_ctx) {
478
+ return { channelLive: isChannelLive?.() ?? false };
479
+ },
399
480
  async getWorkspaceEnvStatus(_ctx) {
400
481
  const acpChannelLive = isChannelLive?.() ?? false;
401
482
  if (!statusProvider) {
@@ -873,6 +954,9 @@ function createDaemonWorkspaceService(deps) {
873
954
  childError
874
955
  };
875
956
  },
957
+ invalidateWorkspaceSkillsStatus() {
958
+ lastWorkspaceSkillsStatus = void 0;
959
+ },
876
960
  async refreshExtensionsForAllSessions() {
877
961
  try {
878
962
  if (!refreshExtensionsForAllSessionsOnBridge) {
@@ -884,6 +968,8 @@ function createDaemonWorkspaceService(deps) {
884
968
  `qwen serve: refreshExtensionsForAllSessions failed: ${err instanceof Error ? err.message : String(err)}`
885
969
  );
886
970
  return { refreshed: 0, failed: 1 };
971
+ } finally {
972
+ lastWorkspaceSkillsStatus = void 0;
887
973
  }
888
974
  }
889
975
  };
@@ -15622,6 +15622,7 @@ var ToolNames = {
15622
15622
  CRON_LIST: "cron_list",
15623
15623
  CRON_DELETE: "cron_delete",
15624
15624
  LOOP_WAKEUP: "loop_wakeup",
15625
+ CREATE_SUB_SESSION: "create_sub_session",
15625
15626
  TASK_STOP: "task_stop",
15626
15627
  TASK_CREATE: "task_create",
15627
15628
  TASK_UPDATE: "task_update",
@@ -15668,6 +15669,7 @@ var ToolDisplayNames = {
15668
15669
  CRON_LIST: "CronList",
15669
15670
  CRON_DELETE: "CronDelete",
15670
15671
  LOOP_WAKEUP: "LoopWakeup",
15672
+ CREATE_SUB_SESSION: "CreateSubSession",
15671
15673
  TASK_STOP: "TaskStop",
15672
15674
  TASK_CREATE: "TaskCreate",
15673
15675
  TASK_UPDATE: "TaskUpdate",
@@ -2,20 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  mapSkillConfigToStatus
5
- } from "./chunk-6IAWPIQ6.js";
6
- import {
7
- loadSettings
8
- } from "./chunk-STAZRKOT.js";
5
+ } from "./chunk-EDM5O3SX.js";
9
6
  import {
10
7
  STATUS_SCHEMA_VERSION
11
- } from "./chunk-JF7DFPQ5.js";
8
+ } from "./chunk-I3MBKL6Z.js";
9
+ import {
10
+ loadSettings
11
+ } from "./chunk-I34IHZFJ.js";
12
12
  import {
13
13
  writeStderrLine
14
- } from "./chunk-Y6Z2O3WR.js";
14
+ } from "./chunk-JM7BYJO5.js";
15
15
  import {
16
16
  SkillManager,
17
17
  isSafeModeEnv
18
- } from "./chunk-YEGT55NW.js";
18
+ } from "./chunk-ZDAZSR2O.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-A4BMJM77.js";