@qwen-code/qwen-code 0.19.7 → 0.19.8-nightly.20260711.0ef3a76bd

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 (434) 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 +60 -51
  5. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  6. package/bundled/qc-helper/docs/features/channels/dingtalk.md +12 -2
  7. package/bundled/qc-helper/docs/features/channels/overview.md +86 -12
  8. package/bundled/qc-helper/docs/features/channels/plugins.md +1 -0
  9. package/bundled/qc-helper/docs/features/channels/wecom.md +6 -0
  10. package/bundled/qc-helper/docs/features/code-review.md +29 -5
  11. package/bundled/qc-helper/docs/features/commands.md +39 -38
  12. package/bundled/qc-helper/docs/features/computer-use.md +77 -0
  13. package/bundled/qc-helper/docs/features/hooks.md +36 -34
  14. package/bundled/qc-helper/docs/features/memory.md +1 -1
  15. package/bundled/qc-helper/docs/features/tool-use-summaries.md +19 -23
  16. package/bundled/qc-helper/docs/integration-vscode.md +2 -2
  17. package/bundled/qc-helper/docs/qwen-serve.md +40 -16
  18. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  19. package/bundled/review/DESIGN.md +93 -22
  20. package/bundled/review/SKILL.md +300 -87
  21. package/chunks/MaxSizedBox-4CX4IQWE.js +70 -0
  22. package/chunks/{StandaloneSessionPicker-APISIRJZ.js → StandaloneSessionPicker-TYUSSNJ6.js} +79 -77
  23. package/chunks/{acpAgent-MMOSC2YA.js → acpAgent-5HJEXOPR.js} +978 -205
  24. package/chunks/agent-PZF5IUUB.js +68 -0
  25. package/chunks/agent-headless-L4N7V2SG.js +62 -0
  26. package/chunks/{anthropicContentGenerator-AKYPSZIV.js → anthropicContentGenerator-L73TO3DB.js} +214 -31
  27. package/chunks/{artifact-tool-D233YJFH.js → artifact-tool-U7IRTLIV.js} +5 -5
  28. package/chunks/{askUserQuestion-MKL5ZTMC.js → askUserQuestion-2DLUUZZG.js} +6 -6
  29. package/chunks/bridge-OJL6LD42.js +78 -0
  30. package/chunks/{ca-HCMB2I54.js → ca-WTQOU43B.js} +91 -6
  31. package/chunks/{channel-worker-supervisor-CRCVYQIE.js → channel-worker-supervisor-LF66HCVT.js} +137 -13
  32. package/chunks/{chunk-QQDPRDVW.js → chunk-2HRYPZT5.js} +1 -1
  33. package/chunks/{chunk-JD33UY7E.js → chunk-2K56LTWA.js} +18 -12
  34. package/chunks/{chunk-XISQIIT7.js → chunk-2LV4JUNO.js} +4 -4
  35. package/chunks/chunk-2UU6DW5P.js +296 -0
  36. package/chunks/{chunk-2PSWA5ID.js → chunk-2X56YUSZ.js} +1 -1
  37. package/chunks/chunk-2ZQOQZIS.js +71 -0
  38. package/chunks/{chunk-Q6OEPOOC.js → chunk-3AMVHPEQ.js} +2 -2
  39. package/chunks/{chunk-4RQIB5UZ.js → chunk-3BTRNWWD.js} +1 -35
  40. package/chunks/{chunk-SD4N3QJ2.js → chunk-3QZ6GY6A.js} +66 -22
  41. package/chunks/{chunk-DNV4FSN5.js → chunk-3SJSQXNS.js} +24 -7
  42. package/chunks/{chunk-VQWAZSXN.js → chunk-3XATDZNP.js} +64 -42
  43. package/chunks/{chunk-LEIJKM7Q.js → chunk-3ZAIGBCP.js} +2 -2
  44. package/chunks/{chunk-2NPS2UDH.js → chunk-43JB7OF4.js} +905 -139
  45. package/chunks/chunk-43XJTCHT.js +444 -0
  46. package/chunks/{chunk-CNSF3WO5.js → chunk-47HXCVGG.js} +6 -6
  47. package/chunks/{chunk-VEB3NYSO.js → chunk-4GORAUCN.js} +8 -3
  48. package/chunks/{chunk-55ZMG67I.js → chunk-4LD5APFL.js} +4 -4
  49. package/chunks/{chunk-TLWA7TPR.js → chunk-4QLQE5WJ.js} +2 -2
  50. package/chunks/{chunk-UIDXQNMV.js → chunk-4WGODMVR.js} +1 -1
  51. package/chunks/{chunk-E6US47KI.js → chunk-4WKAA4KS.js} +1 -1
  52. package/chunks/{chunk-H6EMK6QK.js → chunk-4ZVWQHEQ.js} +11913 -5207
  53. package/chunks/{chunk-HW4N45EE.js → chunk-524RQP4Q.js} +29 -8
  54. package/chunks/{chunk-3GONHQOA.js → chunk-57OAHC2Y.js} +1 -1
  55. package/chunks/{chunk-B4U2M63D.js → chunk-5DOUQHL3.js} +2104 -14
  56. package/chunks/{chunk-JZSY4WP3.js → chunk-5DTTYNB7.js} +1 -1
  57. package/chunks/{chunk-A4BMJM77.js → chunk-5O2XNYP6.js} +1 -0
  58. package/chunks/{chunk-P7I3D7FM.js → chunk-5OIXALQ5.js} +2 -2
  59. package/chunks/chunk-5SFOMFG4.js +61 -0
  60. package/chunks/{chunk-QYNNN7BK.js → chunk-5XUCZNSY.js} +2 -2
  61. package/chunks/{chunk-FRFFNYUY.js → chunk-65F3I3PM.js} +5 -5
  62. package/chunks/{chunk-GO6LNQXT.js → chunk-6AM5D4ME.js} +1 -1
  63. package/chunks/{chunk-BWVQN2HV.js → chunk-6CR73ZIK.js} +7 -7
  64. package/chunks/{chunk-BJBWRCSK.js → chunk-6H67XLET.js} +1 -1
  65. package/chunks/{chunk-G7ZG7CA6.js → chunk-6RLROE6G.js} +9 -8
  66. package/chunks/{chunk-TBAZMRW3.js → chunk-6WH2WCSW.js} +2 -2
  67. package/chunks/{chunk-ZERZSAZL.js → chunk-75DOP5OR.js} +2 -2
  68. package/chunks/{chunk-FTFXDZYI.js → chunk-7KZNLIAI.js} +47 -31
  69. package/chunks/{chunk-HJ3GX3Y3.js → chunk-7PW5CTVR.js} +32 -18
  70. package/chunks/{chunk-NQKLOAVJ.js → chunk-7R3CZA3Q.js} +2 -2
  71. package/chunks/{chunk-SAIILPQ3.js → chunk-7X7TEQNX.js} +5 -3
  72. package/chunks/{chunk-IRJWHZWU.js → chunk-A4UCTEB5.js} +2 -2
  73. package/chunks/{chunk-XSAFNANZ.js → chunk-AHUEU3BP.js} +14 -14
  74. package/chunks/{chunk-X3YGAX7V.js → chunk-B5ORX3FG.js} +4 -2
  75. package/chunks/{chunk-ZN5T4BHI.js → chunk-BPZALHVR.js} +2 -2
  76. package/chunks/{chunk-IJRL2S3D.js → chunk-BZIFY5TF.js} +6 -6
  77. package/chunks/{chunk-AJBEAUIS.js → chunk-BZP7HZTK.js} +7 -6
  78. package/chunks/{chunk-OFEVLU4C.js → chunk-CARU2RR2.js} +1 -1
  79. package/chunks/{chunk-MIG5SQNL.js → chunk-CBKR4Q5K.js} +8 -8
  80. package/chunks/chunk-CC2ITGCF.js +176 -0
  81. package/chunks/{chunk-FV7425LN.js → chunk-CEA3E3JB.js} +18 -5
  82. package/chunks/{chunk-GD236YPV.js → chunk-CNOF2IZT.js} +3 -3
  83. package/chunks/chunk-COH43MRJ.js +34 -0
  84. package/chunks/{chunk-E5A7LHNN.js → chunk-CPBF7KYF.js} +1 -1
  85. package/chunks/{chunk-UWCTAVOD.js → chunk-CR3C7WXL.js} +1 -1
  86. package/chunks/{chunk-5P5XGNYH.js → chunk-CU3L64TP.js} +1 -1
  87. package/chunks/{chunk-IWKSG2AR.js → chunk-CXAOG665.js} +1 -1
  88. package/chunks/{chunk-MZ7BABX3.js → chunk-DC5Z3DU6.js} +2 -2
  89. package/chunks/{chunk-64WXLC72.js → chunk-DJ2GSRLV.js} +1 -1
  90. package/chunks/{chunk-4ZJIPVPB.js → chunk-DMN532MJ.js} +11 -11
  91. package/chunks/{chunk-QN5NZ3UQ.js → chunk-DMTGGOSA.js} +2 -2
  92. package/chunks/{chunk-KHDZHZMH.js → chunk-E5Z2AVNV.js} +1 -1
  93. package/chunks/chunk-F4PFZ7WP.js +239 -0
  94. package/chunks/{chunk-ME3YSROJ.js → chunk-FBSBT7JS.js} +25 -13
  95. package/chunks/{chunk-5IFG2VC4.js → chunk-FCMNKVXT.js} +1 -1
  96. package/chunks/{chunk-YDSYD7UI.js → chunk-FD3DA3B4.js} +3 -3
  97. package/chunks/{chunk-GL5TV7B5.js → chunk-GL22M2DU.js} +23 -7
  98. package/chunks/{chunk-AFOLR6YL.js → chunk-GQ4ZEYMI.js} +102 -16
  99. package/chunks/chunk-GRC5HGPI.js +13 -0
  100. package/chunks/{chunk-WMPVYQ4P.js → chunk-GWHYEOV2.js} +2 -2
  101. package/chunks/chunk-GZRTYZ2R.js +292 -0
  102. package/chunks/{chunk-A2X3KLC3.js → chunk-GZXCZHCT.js} +3 -3
  103. package/chunks/{chunk-K5PGHDBN.js → chunk-H6XPXXMH.js} +1 -1
  104. package/chunks/{chunk-24XYI5EI.js → chunk-HACY3IUM.js} +6 -6
  105. package/chunks/{chunk-DGHJTO2K.js → chunk-HIHQ3TWC.js} +38 -9
  106. package/chunks/{chunk-KYMBIKIW.js → chunk-HTHUX2T5.js} +1 -1
  107. package/chunks/{chunk-LQ7TMOCE.js → chunk-HTO4JFDZ.js} +1 -1
  108. package/chunks/{chunk-B34OV7K2.js → chunk-IAVB3HM3.js} +15 -2
  109. package/chunks/{chunk-4UCTWSTP.js → chunk-IDJEZU7C.js} +2 -2
  110. package/chunks/chunk-IEBIKN6A.js +38 -0
  111. package/chunks/{chunk-PRDFOIZF.js → chunk-IJEO2QSK.js} +73 -30
  112. package/chunks/{chunk-MJI36HER.js → chunk-IT6LIIVK.js} +2 -2
  113. package/chunks/{chunk-FEJ2FZ3U.js → chunk-J3JA76CF.js} +2 -2
  114. package/chunks/{chunk-4CGOWHKM.js → chunk-J4MOFEOK.js} +2 -2
  115. package/chunks/{chunk-22MNNNXE.js → chunk-J4TSQ5EQ.js} +3 -2
  116. package/chunks/{chunk-22IFUCVR.js → chunk-JESCGQM3.js} +1 -1
  117. package/chunks/{chunk-CCGOFQV3.js → chunk-JSG7ZSBC.js} +8 -7
  118. package/chunks/{chunk-X265R5C6.js → chunk-K434OPES.js} +5 -5
  119. package/chunks/{chunk-RFIL6REB.js → chunk-KHUQZZJ6.js} +185 -45
  120. package/chunks/{chunk-X2XNQQJI.js → chunk-KKNMOEZH.js} +4 -4
  121. package/chunks/{chunk-6BN7NZ5Z.js → chunk-KL23O5Z5.js} +7 -9
  122. package/chunks/{chunk-MRO43B25.js → chunk-KW7NOTN6.js} +1 -1
  123. package/chunks/{chunk-6IAWPIQ6.js → chunk-L36P3NBD.js} +3 -3
  124. package/chunks/{chunk-54YZOP7P.js → chunk-L573Z2QZ.js} +11894 -5190
  125. package/chunks/{chunk-STAZRKOT.js → chunk-L6GPKRH7.js} +132 -464
  126. package/chunks/{chunk-QAKFYMJI.js → chunk-LD5OWZ5E.js} +155 -19
  127. package/chunks/{chunk-E7KNELIZ.js → chunk-LK7KUE55.js} +2 -2
  128. package/chunks/{chunk-W7EEOR7D.js → chunk-LUODI7WD.js} +5 -5
  129. package/chunks/{chunk-CSOTA7KX.js → chunk-LXNEJD34.js} +2 -2
  130. package/chunks/{chunk-HLKG6CZN.js → chunk-M5GB774H.js} +1 -1
  131. package/chunks/{chunk-3B26UVCX.js → chunk-MC23XKFE.js} +39 -10
  132. package/chunks/{chunk-XPJH4PKR.js → chunk-MPEMTBUZ.js} +2 -2
  133. package/chunks/{chunk-GMOWQOQQ.js → chunk-MUCWGT7O.js} +248 -55
  134. package/chunks/{chunk-PC4ZXHU2.js → chunk-MXL5UP4X.js} +3 -3
  135. package/chunks/{chunk-PUQLHSQ2.js → chunk-N2FGNKOE.js} +10 -12
  136. package/chunks/{chunk-332PWN27.js → chunk-NHDKSOEY.js} +1 -1
  137. package/chunks/{chunk-65CFHNSE.js → chunk-NKHV3OHY.js} +62 -62
  138. package/chunks/{chunk-P7M4GA57.js → chunk-OCPBI7J5.js} +1 -1
  139. package/chunks/{chunk-42XGFRJS.js → chunk-ORBGV7NJ.js} +5 -5
  140. package/chunks/{chunk-ALZ75L2X.js → chunk-OZJLTZKP.js} +415 -379
  141. package/chunks/chunk-P3X7RYUQ.js +468 -0
  142. package/chunks/{chunk-AGHU5VRK.js → chunk-PZL23GTM.js} +1 -1
  143. package/chunks/{chunk-FXGLL2HL.js → chunk-Q7YDKOGY.js} +1 -1
  144. package/chunks/{chunk-LGFAYIKX.js → chunk-QHTIBUWB.js} +1 -1
  145. package/chunks/{chunk-AIY5UTFI.js → chunk-QK2JET6S.js} +934 -2881
  146. package/chunks/{chunk-P3MYAZBY.js → chunk-QMGX2KO2.js} +1 -1
  147. package/chunks/{chunk-QZF5U5KA.js → chunk-QNTUV3PP.js} +11 -11
  148. package/chunks/chunk-QRUIS3DN.js +47 -0
  149. package/chunks/{chunk-ITOGNELQ.js → chunk-QSWDGAIC.js} +2 -2
  150. package/chunks/{chunk-7JGISHHZ.js → chunk-QUJIDGIW.js} +15 -157
  151. package/chunks/{chunk-GHOTR7HL.js → chunk-QUPXZXLV.js} +1 -1
  152. package/chunks/{chunk-TDGF35EN.js → chunk-QYMQSECS.js} +3 -3
  153. package/chunks/{chunk-QYUE6W3T.js → chunk-RDJSGHZE.js} +1 -1
  154. package/chunks/{chunk-TLRYABYP.js → chunk-RKUWKYED.js} +1 -1
  155. package/chunks/{chunk-ADZG46HR.js → chunk-RRNR5U2U.js} +2 -2
  156. package/chunks/{chunk-4O344UEE.js → chunk-RW7CXRUM.js} +39 -19
  157. package/chunks/{chunk-RNBYOUGV.js → chunk-RXFQM6FQ.js} +1 -1
  158. package/chunks/{chunk-QXPI7FEC.js → chunk-S3TWXGKA.js} +4 -4
  159. package/chunks/{chunk-44NROQYV.js → chunk-SJHDYNHF.js} +4 -4
  160. package/chunks/{chunk-MLZQVCF3.js → chunk-SZRN75WQ.js} +1 -1
  161. package/chunks/{chunk-7RYW5LQV.js → chunk-T2NCM2ET.js} +2 -2
  162. package/chunks/{chunk-Z2Z3GUXZ.js → chunk-TB6UDU4T.js} +1 -1
  163. package/chunks/{chunk-SUAKHHK7.js → chunk-TDEXZKMT.js} +3 -3
  164. package/chunks/{chunk-EXPMGZZV.js → chunk-TEGEBB2I.js} +1 -1
  165. package/chunks/{chunk-JF7DFPQ5.js → chunk-TJCEUA3S.js} +15 -3
  166. package/chunks/{chunk-MX2YXRER.js → chunk-TJTKSVIV.js} +1 -1
  167. package/chunks/{chunk-H6BD2ELD.js → chunk-TYAMGABM.js} +2 -2
  168. package/chunks/{chunk-CISB3IQF.js → chunk-U3VSCGEJ.js} +100 -15
  169. package/chunks/{chunk-VRDMOSQS.js → chunk-UDXSXLER.js} +2 -2
  170. package/chunks/{chunk-AHNJGLFV.js → chunk-UOZWKTQG.js} +3 -3
  171. package/chunks/{chunk-CJCKDMWO.js → chunk-URK542T4.js} +1 -1
  172. package/chunks/{chunk-YEGT55NW.js → chunk-UUVCHN62.js} +5697 -2983
  173. package/chunks/{chunk-AHNXYU4O.js → chunk-V6WHFGST.js} +1 -1
  174. package/chunks/{chunk-U4FRHCLA.js → chunk-VAUPLGDZ.js} +2370 -364
  175. package/chunks/{chunk-ZTQ26VBE.js → chunk-VDDGDZMA.js} +1 -1
  176. package/chunks/{chunk-OMX7CUOE.js → chunk-VGC4I5JJ.js} +1 -1
  177. package/chunks/{chunk-IUE7YWC3.js → chunk-VIUKEWUL.js} +8 -8
  178. package/chunks/{chunk-43W4YSO6.js → chunk-VJNBRRZG.js} +2 -2
  179. package/chunks/{chunk-I4A4K72C.js → chunk-VL7GBUQA.js} +1309 -703
  180. package/chunks/{chunk-VZ7HY3YU.js → chunk-W2UIXQDL.js} +3 -3
  181. package/chunks/{chunk-ER3BKOLB.js → chunk-W7FJ3N32.js} +1 -1
  182. package/chunks/{chunk-3HX5LZ6R.js → chunk-WBL3FJEU.js} +2 -2
  183. package/chunks/{chunk-RYFZCUJO.js → chunk-WCUK2QXK.js} +17 -9
  184. package/chunks/{chunk-OWVIH4HY.js → chunk-WFHJDT4S.js} +421 -114
  185. package/chunks/{chunk-BMFMJINR.js → chunk-WL4L7EZH.js} +1 -1
  186. package/chunks/{chunk-NZEGNV4V.js → chunk-WPHYXKFL.js} +8 -51
  187. package/chunks/chunk-X4NKFGFJ.js +81 -0
  188. package/chunks/{chunk-3RW4AZJV.js → chunk-XFSFZCM5.js} +1 -1
  189. package/chunks/{chunk-2MPVVENX.js → chunk-XU457J4V.js} +2 -2
  190. package/chunks/{chunk-SIUQ3YYX.js → chunk-XVNQMZ2I.js} +1 -1
  191. package/chunks/{chunk-SYCJMSIJ.js → chunk-XWRJCPHC.js} +1 -1
  192. package/chunks/chunk-YAF2MQZ6.js +19 -0
  193. package/chunks/chunk-YF4RZPJP.js +168 -0
  194. package/chunks/{chunk-4KJ2BPIT.js → chunk-YLV3XXFB.js} +4 -40
  195. package/chunks/{chunk-BR4QREVK.js → chunk-YQ3U5MUC.js} +1 -1
  196. package/chunks/{chunk-Y6Z2O3WR.js → chunk-YUZI3WAC.js} +1 -1
  197. package/chunks/{chunk-II73RK2S.js → chunk-YVEDCAUE.js} +1 -1
  198. package/chunks/{chunk-SKAZWEV5.js → chunk-ZJE7NSL3.js} +1 -1
  199. package/chunks/{chunk-7LTB54MK.js → chunk-ZLXQN2QS.js} +2 -2
  200. package/chunks/cli-entry-path-4VJ3Y6T2.js +10 -0
  201. package/chunks/{computer-use-X4KUU3NM.js → computer-use-2ZTYDNN4.js} +50 -50
  202. package/chunks/config-utils-ZITWCFBY.js +23 -0
  203. package/chunks/contextCommand-6L4XCZZT.js +68 -0
  204. package/chunks/create-sub-session-INX7TXJI.js +207 -0
  205. package/chunks/create-sub-session-VZIOFS6N.js +375 -0
  206. package/chunks/{cron-create-JSXEIPVS.js → cron-create-AMBKGZX6.js} +9 -9
  207. package/chunks/{cron-delete-OIFVEPGU.js → cron-delete-LRU4OJYG.js} +7 -7
  208. package/chunks/{cron-list-D4ZX4IOE.js → cron-list-WVP2JXER.js} +14 -10
  209. package/chunks/{daemon-F3I2RXP6.js → daemon-QEDXW7ER.js} +554 -4
  210. package/chunks/daemon-status-provider-7XJZ3HPS.js +76 -0
  211. package/chunks/{de-PLLFDERI.js → de-XHBEYUMG.js} +91 -6
  212. package/chunks/{devtools-FM6GJPYG.js → devtools-4QFYJT6U.js} +3 -3
  213. package/chunks/{dist-573HNSVO.js → dist-EFXT7A3G.js} +12 -11
  214. package/chunks/{dist-PKFTNUHO.js → dist-KCRX7TGL.js} +529 -79
  215. package/chunks/{dist-OT7G2WNM.js → dist-MFEAEUV4.js} +1011 -197
  216. package/chunks/{dist-63IS3ZMI.js → dist-PZV5RKM6.js} +4 -4
  217. package/chunks/{dist-FQ5WRJPL.js → dist-QY3THJM5.js} +5 -5
  218. package/chunks/{dist-IMFFBMAT.js → dist-UJOR6KEQ.js} +32 -15
  219. package/chunks/{dist-YTRKAVUB.js → dist-ZWZB4CCN.js} +10 -10
  220. package/chunks/earlyInputCapture-TTWXFIWO.js +69 -0
  221. package/chunks/{edit-WZTZDGCI.js → edit-6UWFRZKY.js} +51 -51
  222. package/chunks/{en-GA2RMXY5.js → en-TKHUFIK7.js} +100 -6
  223. package/chunks/{enter-worktree-DEPXBJEL.js → enter-worktree-LS7SGAII.js} +50 -50
  224. package/chunks/{enterPlanMode-JFGXZHHJ.js → enterPlanMode-TSZYLEEP.js} +66 -51
  225. package/chunks/environment-XCVLHOXG.js +88 -0
  226. package/chunks/errors-KIANLUTC.js +75 -0
  227. package/chunks/{exit-worktree-Y7XBK3VV.js → exit-worktree-2QV6UJSW.js} +50 -50
  228. package/chunks/{exitPlanMode-WQQER65F.js → exitPlanMode-GVZG3F6S.js} +51 -51
  229. package/chunks/{fast-path-W2U6XDNO.js → fast-path-GNFZAMQK.js} +16 -7
  230. package/chunks/{fast-path-settings-RCRXH2JG.js → fast-path-settings-5QZE64HR.js} +6 -5
  231. package/chunks/{fileFromPath-IBEHA3CO.js → fileFromPath-UDALK7FM.js} +3 -3
  232. package/chunks/{fr-GWNQG4XH.js → fr-TBF6JZNE.js} +91 -6
  233. package/chunks/{gemini-T4WX6SRW.js → gemini-N3H6OLHR.js} +501 -197
  234. package/chunks/{geminiContentGenerator-MKQACXEJ.js → geminiContentGenerator-4C257R2N.js} +9 -9
  235. package/chunks/{getMachineId-bsd-4CASPIU4.js → getMachineId-bsd-EXV7SWPA.js} +3 -3
  236. package/chunks/{getMachineId-darwin-HPQPEMZR.js → getMachineId-darwin-IUOMFXU3.js} +3 -3
  237. package/chunks/{getMachineId-linux-AUARKYHL.js → getMachineId-linux-K7XJYFHL.js} +2 -2
  238. package/chunks/{getMachineId-unsupported-S32ZDA2T.js → getMachineId-unsupported-EA5FDRJ6.js} +2 -2
  239. package/chunks/{getMachineId-win-4EFLHYIJ.js → getMachineId-win-KBA6RAI5.js} +3 -3
  240. package/chunks/{glob-4KKSHZDF.js → glob-QTUI5I3Y.js} +95 -74
  241. package/chunks/{grep-GHRYXSLZ.js → grep-Z5MGLRCG.js} +50 -50
  242. package/chunks/handleAutoUpdate-FFF3CZGP.js +69 -0
  243. package/chunks/i18n-QQAJT7A2.js +84 -0
  244. package/chunks/initializer-LGQGC7ZT.js +71 -0
  245. package/chunks/installationInfo-4FEZGXIN.js +65 -0
  246. package/chunks/{ja-2HOTA47X.js → ja-CDXUA2H3.js} +92 -7
  247. package/chunks/{keychain-token-storage-UJV5XP4Z.js → keychain-token-storage-VKUBNCP4.js} +4 -4
  248. package/chunks/{kittyProtocolDetector-OJRCJLIU.js → kittyProtocolDetector-HCNNKJTI.js} +2 -2
  249. package/chunks/list-KIVFF3BB.js +74 -0
  250. package/chunks/loadedSettingsAdapter-EOD3RVZS.js +68 -0
  251. package/chunks/{loop-wakeup-OHWEMFP5.js → loop-wakeup-WX7BLWWP.js} +10 -10
  252. package/chunks/{lowlight-FYAAUU5J.js → lowlight-J2OZNPCA.js} +1 -1
  253. package/chunks/{ls-L654WOAT.js → ls-ZB2BDP6T.js} +6 -6
  254. package/chunks/{lsp-M35KE54Y.js → lsp-V5DN4YUJ.js} +6 -8
  255. package/chunks/mcp-D2P46DB4.js +68 -0
  256. package/chunks/{monitor-464OY2UE.js → monitor-4ZWVOL6J.js} +50 -50
  257. package/chunks/{multipart-parser-AJ4WASWR.js → multipart-parser-AWZKXSQN.js} +3 -3
  258. package/chunks/nonInteractiveCli-NAHUR2X6.js +124 -0
  259. package/chunks/{notebook-edit-BLJYCNDO.js → notebook-edit-RCQ2D2IE.js} +51 -51
  260. package/chunks/openaiContentGenerator-U655T5QC.js +56 -0
  261. package/chunks/pidfile-O3OO2TCP.js +73 -0
  262. package/chunks/{pt-2THT3YHA.js → pt-6IR2VRQY.js} +91 -6
  263. package/chunks/{qwenContentGenerator-SUUHZ6CR.js → qwenContentGenerator-ABGWCRS6.js} +52 -52
  264. package/chunks/{qwenOAuth2-ZV7YLMND.js → qwenOAuth2-PJQ27GSO.js} +9 -9
  265. package/chunks/read-file-X7M4GUPY.js +30 -0
  266. package/chunks/{read-mcp-resource-CNQHBSJM.js → read-mcp-resource-SM5DA4RG.js} +5 -5
  267. package/chunks/{read-package-up-ER5OJUGP.js → read-package-up-TCM6I7S2.js} +2 -2
  268. package/chunks/{record-artifact-PP3LKHTS.js → record-artifact-4XKZX3UW.js} +7 -7
  269. package/chunks/ripGrep-KMPJJK5J.js +60 -0
  270. package/chunks/{ru-Z67YJHBG.js → ru-DBTHQA3F.js} +91 -6
  271. package/chunks/{run-qwen-serve-5OKADVLE.js → run-qwen-serve-O6CMPURG.js} +958 -184
  272. package/chunks/runtime-THE2YO27.js +94 -0
  273. package/chunks/{scheduler-ZRW3AIDU.js → scheduler-XXEA6EFC.js} +51 -51
  274. package/chunks/{send-message-OA6MV4EU.js → send-message-F36YD6KQ.js} +7 -7
  275. package/chunks/serve-W6F44JQQ.js +74 -0
  276. package/chunks/{server-M372UENX.js → server-SAEKMY52.js} +4340 -829
  277. package/chunks/{session-F5KSNP2N.js → session-4GGYGOWY.js} +162 -117
  278. package/chunks/settings-PYEU5HVD.js +118 -0
  279. package/chunks/shell-JGQECKTH.js +68 -0
  280. package/chunks/{skill-A2TL2NPC.js → skill-XPP3C2DS.js} +24 -24
  281. package/chunks/spawnChannel-62QKQBQN.js +70 -0
  282. package/chunks/{src-XKZMNHXS.js → src-2656Q6SN.js} +126 -52
  283. package/chunks/{src-7XL4G4DC.js → src-VLI3TKEY.js} +4 -4
  284. package/chunks/standalone-update-X7AZVG5R.js +79 -0
  285. package/chunks/{startInteractiveUI-REKSTOHU.js → startInteractiveUI-DXR4K6T5.js} +2277 -1834
  286. package/chunks/stdioHelpers-UMY72QRP.js +14 -0
  287. package/chunks/{syntheticOutput-F7LSDCAR.js → syntheticOutput-34H7LGA7.js} +5 -5
  288. package/chunks/task-create-FRGOEIKY.js +22 -0
  289. package/chunks/{task-list-TGGJX7EA.js → task-list-OW766BXZ.js} +10 -10
  290. package/chunks/{task-stop-W7NGTMYQ.js → task-stop-SIR5SNBN.js} +4 -4
  291. package/chunks/{task-update-5WUG5MVQ.js → task-update-YRA532MT.js} +12 -12
  292. package/chunks/{team-create-TBQVWAG7.js → team-create-3EHCUCKA.js} +50 -50
  293. package/chunks/{team-delete-UHQQ2QQX.js → team-delete-6OSECUZC.js} +10 -10
  294. package/chunks/{team-plan-approval-FZPGUSHJ.js → team-plan-approval-KZ7NZIMX.js} +50 -50
  295. package/chunks/theme-manager-J7ANV4JR.js +64 -0
  296. package/chunks/{todoWrite-C4ZAMSR3.js → todoWrite-YDMFEV4G.js} +6 -6
  297. package/chunks/{tool-search-FDQ3SLNJ.js → tool-search-2XLGWG4H.js} +24 -24
  298. package/chunks/total-session-admission-EQIHUOL6.js +72 -0
  299. package/chunks/trustedFolders-BEX5334Z.js +79 -0
  300. package/chunks/{types-QX5C3CHJ.js → types-JNKGKUJT.js} +2 -2
  301. package/chunks/updateCheck-NKPJGJCR.js +69 -0
  302. package/chunks/updateEventEmitter-5MKC7BLQ.js +10 -0
  303. package/chunks/validateNonInterActiveAuth-6DGGGE4A.js +190 -0
  304. package/chunks/{version-CEDD6ZZR.js → version-FRVWU5ZU.js} +3 -3
  305. package/chunks/{web-fetch-UYGMOHW4.js → web-fetch-PAAEQKBW.js} +8 -8
  306. package/chunks/{workflow-CQQ4J4I6.js → workflow-LWFMECLD.js} +51 -51
  307. package/chunks/workspace-providers-status-NE7QWEYS.js +71 -0
  308. package/chunks/workspace-registry-RCWAP57G.js +76 -0
  309. package/chunks/workspace-service-4QUMVGBX.js +80 -0
  310. package/chunks/workspace-skills-status-L34BYRSY.js +70 -0
  311. package/chunks/{write-file-VWGY7AJP.js → write-file-WXO4M5FN.js} +51 -51
  312. package/chunks/{yargs-B64EYTCF.js → yargs-6H2AUULL.js} +2 -2
  313. package/chunks/{zh-7XVVRTDH.js → zh-LJP47LX7.js} +101 -7
  314. package/chunks/{zh-TW-DPH554OG.js → zh-TW-5ISMO3VJ.js} +101 -7
  315. package/cli.js +18 -17
  316. package/locales/ca.js +117 -7
  317. package/locales/de.js +116 -7
  318. package/locales/en.js +133 -7
  319. package/locales/fr.js +117 -7
  320. package/locales/ja.js +119 -7
  321. package/locales/pt.js +116 -7
  322. package/locales/ru.js +116 -7
  323. package/locales/zh-TW.js +130 -7
  324. package/locales/zh.js +130 -7
  325. package/package.json +3 -6
  326. package/web-shell/assets/{arc-C7hjaa7g.js → arc-BRDEF7h6.js} +1 -1
  327. package/web-shell/assets/{architectureDiagram-3BPJPVTR-pm9KtMZY.js → architectureDiagram-3BPJPVTR-Cxnk4Ygq.js} +1 -1
  328. package/web-shell/assets/{blockDiagram-GPEHLZMM-CApElKsU.js → blockDiagram-GPEHLZMM-BZrtayqw.js} +1 -1
  329. package/web-shell/assets/{c4Diagram-AAUBKEIU-BeDe0-9N.js → c4Diagram-AAUBKEIU-Djmbi1yB.js} +1 -1
  330. package/web-shell/assets/channel-C9zfQCn-.js +1 -0
  331. package/web-shell/assets/{chunk-2J33WTMH-DJEkmLdl.js → chunk-2J33WTMH-Cdokj-0U.js} +1 -1
  332. package/web-shell/assets/{chunk-4BX2VUAB-DXX8gdpe.js → chunk-4BX2VUAB-BI9Hx57o.js} +1 -1
  333. package/web-shell/assets/{chunk-55IACEB6-DORmk1kQ.js → chunk-55IACEB6-Cb17cEzj.js} +1 -1
  334. package/web-shell/assets/{chunk-727SXJPM-DWmO4mCZ.js → chunk-727SXJPM-DY1Fc0h_.js} +1 -1
  335. package/web-shell/assets/{chunk-AQP2D5EJ-C7LRaYw2.js → chunk-AQP2D5EJ-B10G71Hd.js} +1 -1
  336. package/web-shell/assets/{chunk-FMBD7UC4-CCdXgyC5.js → chunk-FMBD7UC4-BP6OoB6Z.js} +1 -1
  337. package/web-shell/assets/{chunk-ND2GUHAM-SyL_xvWc.js → chunk-ND2GUHAM-CWIIwUFC.js} +1 -1
  338. package/web-shell/assets/{chunk-QZHKN3VN-BzOuCKxa.js → chunk-QZHKN3VN-DMrqCfGO.js} +1 -1
  339. package/web-shell/assets/classDiagram-4FO5ZUOK-BVNaf5JM.js +1 -0
  340. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BVNaf5JM.js +1 -0
  341. package/web-shell/assets/{cose-bilkent-S5V4N54A-BMPWyDKc.js → cose-bilkent-S5V4N54A-CF-mpkgI.js} +1 -1
  342. package/web-shell/assets/{dagre-BM42HDAG-B_GnPWik.js → dagre-BM42HDAG-DfsRFsg7.js} +1 -1
  343. package/web-shell/assets/{diagram-2AECGRRQ-fJqMc3S_.js → diagram-2AECGRRQ-DBNwf6Dy.js} +1 -1
  344. package/web-shell/assets/{diagram-5GNKFQAL-ximV3O9D.js → diagram-5GNKFQAL-CD1TqV1j.js} +1 -1
  345. package/web-shell/assets/{diagram-KO2AKTUF-2vVyjzqw.js → diagram-KO2AKTUF-DkWlaLI2.js} +1 -1
  346. package/web-shell/assets/{diagram-LMA3HP47-Dckcx1sT.js → diagram-LMA3HP47-ClrAcxwF.js} +1 -1
  347. package/web-shell/assets/{diagram-OG6HWLK6-BAVv47ga.js → diagram-OG6HWLK6-Dr6dnPLw.js} +1 -1
  348. package/web-shell/assets/{erDiagram-TEJ5UH35-Bn3nf5J0.js → erDiagram-TEJ5UH35-Dm_vj18R.js} +1 -1
  349. package/web-shell/assets/{flowDiagram-I6XJVG4X-BIbGF9JT.js → flowDiagram-I6XJVG4X-lp3cMdZu.js} +1 -1
  350. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CDbhb3AH.js → ganttDiagram-6RSMTGT7-AtdCWZya.js} +3 -3
  351. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CbKG1a_w.js → gitGraphDiagram-PVQCEYII-BARTJafF.js} +1 -1
  352. package/web-shell/assets/index-BkNgyfu7.js +3 -0
  353. package/web-shell/assets/index-CihmnZZR.js +784 -0
  354. package/web-shell/assets/index-zfdXhnwH.css +5 -0
  355. package/web-shell/assets/{infoDiagram-5YYISTIA-DUFxTy8m.js → infoDiagram-5YYISTIA-CxbJ54_f.js} +1 -1
  356. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D69hrBG8.js → ishikawaDiagram-YF4QCWOH-hFoO0HQA.js} +1 -1
  357. package/web-shell/assets/{journeyDiagram-JHISSGLW-DsvEw51Y.js → journeyDiagram-JHISSGLW-Bo6cKnLe.js} +1 -1
  358. package/web-shell/assets/{kanban-definition-UN3LZRKU-lFFjZEYd.js → kanban-definition-UN3LZRKU-DIFrH-XL.js} +1 -1
  359. package/web-shell/assets/{linear-Bo5bWzvo.js → linear-Bjv_GjDd.js} +1 -1
  360. package/web-shell/assets/{mermaid.core-C_HKMJx5.js → mermaid.core-C_OiqQEP.js} +5 -5
  361. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DlV-NUTs.js → mindmap-definition-RKZ34NQL-B79Gk8aB.js} +1 -1
  362. package/web-shell/assets/{pieDiagram-4H26LBE5-B2e6FH2a.js → pieDiagram-4H26LBE5-B_P0gIHr.js} +1 -1
  363. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-D75kSk-b.js → quadrantDiagram-W4KKPZXB-BC7F0ohb.js} +1 -1
  364. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CQ6xakhM.js → requirementDiagram-4Y6WPE33-BrA5_NSW.js} +1 -1
  365. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-J_XTKrcY.js → sankeyDiagram-5OEKKPKP-Q2iqrNI_.js} +1 -1
  366. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-D7jTcBtf.js → sequenceDiagram-3UESZ5HK-6vdIWz4H.js} +1 -1
  367. package/web-shell/assets/{stateDiagram-AJRCARHV-CrlM_OT3.js → stateDiagram-AJRCARHV-DMzXNKcB.js} +1 -1
  368. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BWFH0OCO.js +1 -0
  369. package/web-shell/assets/{timeline-definition-PNZ67QCA-5oZi76Ef.js → timeline-definition-PNZ67QCA-BykEawmS.js} +1 -1
  370. package/web-shell/assets/{vennDiagram-CIIHVFJN-DO5YptPK.js → vennDiagram-CIIHVFJN-B24KD2X1.js} +1 -1
  371. package/web-shell/assets/{wardley-L42UT6IY-4t1eJDvM.js → wardley-L42UT6IY-C761G_tA.js} +1 -1
  372. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DKZc661S.js → wardleyDiagram-YWT4CUSO-CfwGJYqw.js} +1 -1
  373. package/web-shell/assets/{xychartDiagram-2RQKCTM6-su9hp08G.js → xychartDiagram-2RQKCTM6-BDu5AZ2D.js} +1 -1
  374. package/web-shell/index.html +16 -4
  375. package/chunks/MaxSizedBox-XY5LIO5O.js +0 -71
  376. package/chunks/agent-TKIBLLQT.js +0 -68
  377. package/chunks/agent-headless-VLX4C7KX.js +0 -62
  378. package/chunks/bridge-BCU73DZO.js +0 -77
  379. package/chunks/chunk-6SHO7WFF.js +0 -79
  380. package/chunks/chunk-IFEWJXFS.js +0 -37
  381. package/chunks/chunk-S6RLAIUR.js +0 -23
  382. package/chunks/contextCommand-LAYJZF7H.js +0 -68
  383. package/chunks/daemon-status-provider-XSAFKVDS.js +0 -74
  384. package/chunks/earlyInputCapture-AERYYGXE.js +0 -69
  385. package/chunks/errors-GMZL4QV7.js +0 -75
  386. package/chunks/handleAutoUpdate-HN7ZOSXY.js +0 -65
  387. package/chunks/initializer-SRN3IM42.js +0 -69
  388. package/chunks/list-INTVXUPA.js +0 -71
  389. package/chunks/loadedSettingsAdapter-QVHHQPGM.js +0 -66
  390. package/chunks/mcp-7V4T46RG.js +0 -66
  391. package/chunks/nonInteractiveCli-LJEEODU2.js +0 -116
  392. package/chunks/openaiContentGenerator-PFF6HYB2.js +0 -56
  393. package/chunks/pidfile-LIBUENIV.js +0 -73
  394. package/chunks/read-file-L7TBQVX7.js +0 -30
  395. package/chunks/ripGrep-CKKX3GRB.js +0 -60
  396. package/chunks/serve-36WS32W6.js +0 -71
  397. package/chunks/settings-WFLNS3WT.js +0 -114
  398. package/chunks/shell-DEDSWN56.js +0 -68
  399. package/chunks/spawnChannel-RQHUWTCL.js +0 -70
  400. package/chunks/task-create-RPFZNB4B.js +0 -22
  401. package/chunks/theme-manager-DQZVNSOC.js +0 -64
  402. package/chunks/trustedFolders-Z475EIHL.js +0 -79
  403. package/chunks/updateCheck-E2ZX7RL7.js +0 -65
  404. package/chunks/validateNonInterActiveAuth-O4ECBHQL.js +0 -181
  405. package/chunks/workspace-providers-status-MVYXMYDG.js +0 -68
  406. package/chunks/workspace-service-OMBR6ZLG.js +0 -78
  407. package/chunks/workspace-skills-status-IMMQ7CAY.js +0 -68
  408. package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +0 -35
  409. package/node_modules/@qwen-code/audio-capture/dist/index.js +0 -48
  410. package/node_modules/@qwen-code/audio-capture/dist/index.js.map +0 -1
  411. package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +0 -7
  412. package/node_modules/@qwen-code/audio-capture/dist/platform.js +0 -18
  413. package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +0 -1
  414. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +0 -21
  415. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +0 -58
  416. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +0 -5
  417. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +0 -84
  418. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +0 -19
  419. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +0 -6
  420. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +0 -207
  421. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +0 -7
  422. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +0 -43
  423. package/node_modules/@qwen-code/audio-capture/package.json +0 -30
  424. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  425. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  426. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
  427. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
  428. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  429. package/web-shell/assets/channel-BNf1dW-j.js +0 -1
  430. package/web-shell/assets/classDiagram-4FO5ZUOK-uOIGlzgi.js +0 -1
  431. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-uOIGlzgi.js +0 -1
  432. package/web-shell/assets/index-CnE2ur2L.js +0 -779
  433. package/web-shell/assets/index-hSKXrlSE.css +0 -5
  434. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Bs4TK_84.js +0 -1
@@ -0,0 +1,239 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ getExtensionManager
5
+ } from "./chunk-WPHYXKFL.js";
6
+ import {
7
+ getPlugin,
8
+ parseChannelConfig,
9
+ registerPlugin
10
+ } from "./chunk-43XJTCHT.js";
11
+ import {
12
+ loadSettings
13
+ } from "./chunk-L6GPKRH7.js";
14
+ import {
15
+ sanitizeLogText
16
+ } from "./chunk-43JB7OF4.js";
17
+ import {
18
+ writeStderrLine,
19
+ writeStdoutLine
20
+ } from "./chunk-YUZI3WAC.js";
21
+ import {
22
+ Storage
23
+ } from "./chunk-J4TSQ5EQ.js";
24
+ import {
25
+ init_esbuild_shims
26
+ } from "./chunk-5O2XNYP6.js";
27
+ import {
28
+ __name
29
+ } from "./chunk-J2S4EL5Y.js";
30
+
31
+ // packages/cli/src/commands/channel/runtime.ts
32
+ init_esbuild_shims();
33
+ import * as path from "node:path";
34
+ import { pathToFileURL } from "node:url";
35
+ function sessionsPath() {
36
+ return path.join(Storage.getGlobalQwenDir(), "channels", "sessions.json");
37
+ }
38
+ __name(sessionsPath, "sessionsPath");
39
+ function channelLoopPath() {
40
+ return path.join(Storage.getGlobalQwenDir(), "channels", "cron.json");
41
+ }
42
+ __name(channelLoopPath, "channelLoopPath");
43
+ function loadChannelsConfig(cwd = process.cwd(), settings = loadSettings(cwd)) {
44
+ const channels = settings.merged.channels;
45
+ return channels || {};
46
+ }
47
+ __name(loadChannelsConfig, "loadChannelsConfig");
48
+ function resolveExtensionChannelEntrySpecifier(extensionPath, entry) {
49
+ return pathToFileURL(path.join(extensionPath, entry)).href;
50
+ }
51
+ __name(resolveExtensionChannelEntrySpecifier, "resolveExtensionChannelEntrySpecifier");
52
+ async function loadChannelsFromExtensions() {
53
+ let loaded = 0;
54
+ try {
55
+ const extensionManager = await getExtensionManager();
56
+ const extensions = extensionManager.getLoadedExtensions().filter((e) => e.isActive && e.channels);
57
+ for (const ext of extensions) {
58
+ for (const [channelType, channelDef] of Object.entries(ext.channels)) {
59
+ if (await getPlugin(channelType)) {
60
+ writeStderrLine(
61
+ `[Extensions] Skipping channel "${channelType}" from "${ext.name}": type already registered`
62
+ );
63
+ continue;
64
+ }
65
+ const entrySpecifier = resolveExtensionChannelEntrySpecifier(
66
+ ext.path,
67
+ channelDef.entry
68
+ );
69
+ try {
70
+ const module = await import(entrySpecifier);
71
+ const plugin = module.plugin;
72
+ if (!plugin || typeof plugin.createChannel !== "function") {
73
+ writeStderrLine(
74
+ `[Extensions] "${ext.name}": channel entry point does not export a valid plugin object`
75
+ );
76
+ continue;
77
+ }
78
+ if (plugin.channelType !== channelType) {
79
+ writeStderrLine(
80
+ `[Extensions] "${ext.name}": channelType mismatch \u2014 manifest says "${channelType}", plugin says "${plugin.channelType}"`
81
+ );
82
+ continue;
83
+ }
84
+ registerPlugin(plugin);
85
+ loaded++;
86
+ writeStdoutLine(
87
+ `[Extensions] Loaded channel "${channelType}" from "${ext.name}"`
88
+ );
89
+ } catch (err) {
90
+ writeStderrLine(
91
+ `[Extensions] Failed to load channel "${channelType}" from "${ext.name}": ${err instanceof Error ? err.message : String(err)}`
92
+ );
93
+ }
94
+ }
95
+ }
96
+ } catch (err) {
97
+ writeStderrLine(
98
+ `[Extensions] Failed to load extensions: ${err instanceof Error ? err.message : String(err)}`
99
+ );
100
+ }
101
+ return loaded;
102
+ }
103
+ __name(loadChannelsFromExtensions, "loadChannelsFromExtensions");
104
+ async function createChannel(name, config, bridge, options) {
105
+ const channelPlugin = await getPlugin(config.type);
106
+ if (!channelPlugin) {
107
+ throw new Error(`Unknown channel type: "${config.type}".`);
108
+ }
109
+ return channelPlugin.createChannel(name, config, bridge, options);
110
+ }
111
+ __name(createChannel, "createChannel");
112
+ function selectFirstModel(parsed, bridgeLabel) {
113
+ const models = [
114
+ ...new Set(
115
+ parsed.map((channel) => channel.config.model).filter((model) => Boolean(model))
116
+ )
117
+ ];
118
+ if (models.length > 1) {
119
+ writeStderrLine(
120
+ `[Channel] Warning: Multiple models configured (${models.join(", ")}). ${bridgeLabel} will use "${models[0]}".`
121
+ );
122
+ }
123
+ return models[0];
124
+ }
125
+ __name(selectFirstModel, "selectFirstModel");
126
+ function registerToolCallDispatch(bridge, router, channels) {
127
+ bridge.on("toolCall", (event) => {
128
+ const target = router.getTarget(event.sessionId);
129
+ if (target) {
130
+ const channel = channels.get(target.channelName);
131
+ if (channel) {
132
+ channel.dispatchToolCall(event);
133
+ }
134
+ }
135
+ });
136
+ }
137
+ __name(registerToolCallDispatch, "registerToolCallDispatch");
138
+ function cancelPermissionRequest(bridge, requestId) {
139
+ if (!bridge.respondToPermission) {
140
+ return;
141
+ }
142
+ void bridge.respondToPermission(requestId, { outcome: { outcome: "cancelled" } }).catch((err) => {
143
+ writeStderrLine(
144
+ `[Channel] Permission cancellation failed for ${sanitizeLogText(requestId, 128)}: ${err instanceof Error ? sanitizeLogText(err.message, 512) : sanitizeLogText(String(err), 512)}`
145
+ );
146
+ });
147
+ }
148
+ __name(cancelPermissionRequest, "cancelPermissionRequest");
149
+ function registerPermissionRelay(bridge, router, channels) {
150
+ bridge.on("permissionRequest", (event) => {
151
+ const target = router.getTarget(event.sessionId);
152
+ if (!target) {
153
+ writeStderrLine(
154
+ `[Channel] No route for session ${sanitizeLogText(event.sessionId, 128)}; cancelling permission ${sanitizeLogText(event.requestId, 128)}`
155
+ );
156
+ cancelPermissionRequest(bridge, event.requestId);
157
+ return;
158
+ }
159
+ const channel = channels.get(target.channelName);
160
+ if (!channel) {
161
+ writeStderrLine(
162
+ `[Channel] No channel "${sanitizeLogText(target.channelName, 64)}" for session ${sanitizeLogText(event.sessionId, 128)}; cancelling permission ${sanitizeLogText(event.requestId, 128)}`
163
+ );
164
+ cancelPermissionRequest(bridge, event.requestId);
165
+ return;
166
+ }
167
+ channel.dispatchPermissionRequest(event).catch((err) => {
168
+ writeStderrLine(
169
+ `[Channel] Permission relay failed for ${sanitizeLogText(event.requestId, 128)}: ${err instanceof Error ? sanitizeLogText(err.message, 512) : sanitizeLogText(String(err), 512)}`
170
+ );
171
+ cancelPermissionRequest(bridge, event.requestId);
172
+ });
173
+ });
174
+ bridge.on("permissionResolved", (event) => {
175
+ for (const channel of channels.values()) {
176
+ channel.dispatchPermissionResolved(event);
177
+ }
178
+ });
179
+ }
180
+ __name(registerPermissionRelay, "registerPermissionRelay");
181
+ function registerSessionCleanup(bridge, router, channels) {
182
+ bridge.on("sessionDied", (event) => {
183
+ const safeId = sanitizeLogText(event.sessionId, 128);
184
+ const safeReason = event.reason ? sanitizeLogText(event.reason, 512) : "";
185
+ writeStderrLine(
186
+ `[Channel] Session ${safeId} died${safeReason ? ` (${safeReason})` : ""}, removing routing state`
187
+ );
188
+ const target = router.getTarget(event.sessionId);
189
+ const channel = target ? channels.get(target.channelName) : void 0;
190
+ if (channel) {
191
+ channel.onSessionDied(event.sessionId);
192
+ } else {
193
+ router.removeSessionId(event.sessionId);
194
+ }
195
+ });
196
+ }
197
+ __name(registerSessionCleanup, "registerSessionCleanup");
198
+ async function parseConfiguredChannels(channelsConfig, selectedNames, opts = {}) {
199
+ const parsed = [];
200
+ for (const name of selectedNames) {
201
+ const rawConfig = channelsConfig[name];
202
+ if (!rawConfig || typeof rawConfig !== "object") {
203
+ throw new Error(
204
+ `Error in channel "${name}": channel is not configured. Add a "${name}" entry under "channels" in settings.json.`
205
+ );
206
+ }
207
+ try {
208
+ parsed.push({
209
+ name,
210
+ config: await parseChannelConfig(
211
+ name,
212
+ rawConfig,
213
+ opts.defaultCwd,
214
+ { resolveEnvVars: "available" }
215
+ )
216
+ });
217
+ } catch (err) {
218
+ throw new Error(
219
+ `Error in channel "${name}": ${err instanceof Error ? err.message : String(err)}`
220
+ );
221
+ }
222
+ }
223
+ return parsed;
224
+ }
225
+ __name(parseConfiguredChannels, "parseConfiguredChannels");
226
+
227
+ export {
228
+ sessionsPath,
229
+ channelLoopPath,
230
+ loadChannelsConfig,
231
+ resolveExtensionChannelEntrySpecifier,
232
+ loadChannelsFromExtensions,
233
+ createChannel,
234
+ selectFirstModel,
235
+ registerToolCallDispatch,
236
+ registerPermissionRelay,
237
+ registerSessionCleanup,
238
+ parseConfiguredChannels
239
+ };
@@ -2,30 +2,33 @@
2
2
  "use strict";
3
3
  import {
4
4
  HEADLESS_YOLO_NO_SANDBOX_WARNING
5
- } from "./chunk-BJBWRCSK.js";
5
+ } from "./chunk-6H67XLET.js";
6
6
  import {
7
- normalizeServeChannelSelection
8
- } from "./chunk-MX2YXRER.js";
7
+ DEFAULT_RING_SIZE
8
+ } from "./chunk-6RLROE6G.js";
9
+ import {
10
+ DEFAULT_COMPACTED_REPLAY_MAX_BYTES
11
+ } from "./chunk-COH43MRJ.js";
9
12
  import {
10
13
  loadSettings
11
- } from "./chunk-STAZRKOT.js";
14
+ } from "./chunk-L6GPKRH7.js";
12
15
  import {
13
- DEFAULT_RING_SIZE
14
- } from "./chunk-G7ZG7CA6.js";
16
+ normalizeServeChannelSelection
17
+ } from "./chunk-TJTKSVIV.js";
15
18
  import {
16
19
  writeStderrLine
17
- } from "./chunk-Y6Z2O3WR.js";
20
+ } from "./chunk-YUZI3WAC.js";
18
21
  import {
19
22
  MCP_BUDGET_WARN_FRACTION,
20
23
  parsePositiveIntegerEnv
21
- } from "./chunk-YEGT55NW.js";
24
+ } from "./chunk-UUVCHN62.js";
22
25
  import {
23
26
  openBrowserSecurely,
24
27
  shouldLaunchBrowser
25
- } from "./chunk-22IFUCVR.js";
28
+ } from "./chunk-JESCGQM3.js";
26
29
  import {
27
30
  init_esbuild_shims
28
- } from "./chunk-A4BMJM77.js";
31
+ } from "./chunk-5O2XNYP6.js";
29
32
  import {
30
33
  __name
31
34
  } from "./chunk-J2S4EL5Y.js";
@@ -88,6 +91,9 @@ var serveCommand = {
88
91
  type: "number",
89
92
  default: 20,
90
93
  description: "Cap on concurrent live sessions. New spawn requests beyond this return 503; attach to existing sessions still works. Set to 0 to disable."
94
+ }).option("max-total-sessions", {
95
+ type: "number",
96
+ description: "Non-negative integer cap on concurrent live sessions across all workspace runtimes. Set to 0 to disable."
91
97
  }).option("max-pending-prompts-per-session", {
92
98
  type: "number",
93
99
  default: 5,
@@ -96,7 +102,7 @@ var serveCommand = {
96
102
  type: "string",
97
103
  array: true,
98
104
  requiresArg: true,
99
- description: "Absolute workspace path this daemon binds to. POST /session requests with a mismatched cwd return 400 workspace_mismatch. Defaults to process.cwd() when omitted. For multi-workspace deployments, run one `qwen serve` per workspace on separate ports (or behind an external orchestrator)."
105
+ description: "Absolute workspace path this daemon binds to. POST /session requests with a mismatched cwd return 400 workspace_mismatch. Defaults to process.cwd() when omitted. Repeat for sessions-only multi-workspace mode; legacy workspace APIs remain primary-workspace only."
100
106
  }).option("max-connections", {
101
107
  type: "number",
102
108
  default: 256,
@@ -139,10 +145,14 @@ var serveCommand = {
139
145
  // one place rather than drifting between CLI and bus.
140
146
  default: DEFAULT_RING_SIZE,
141
147
  description: "Per-session SSE replay ring depth. Sets the replay backlog available to `GET /session/:id/events` reconnects that send a `Last-Event-ID: N` header. Larger = more reconnect headroom at the cost of a few hundred KB extra RAM per session. Must be a positive finite integer."
148
+ }).option("compacted-replay-max-bytes", {
149
+ type: "number",
150
+ default: DEFAULT_COMPACTED_REPLAY_MAX_BYTES,
151
+ description: "Per-session in-memory compacted replay snapshot byte cap for `POST /session/:id/load` late attaches. Larger = more recent history in load snapshots at higher heap cost. Must be a positive safe integer no larger than 256 MiB."
142
152
  }).option("http-bridge", {
143
153
  type: "boolean",
144
154
  default: true,
145
- description: "Stage 1 mode: one `qwen --acp` child per daemon (the daemon binds to one workspace at boot, multiplexing N sessions onto that child via the agent's native `newSession()`). Stage 2 native in-process mode is not yet implemented; this flag will become opt-in then."
155
+ description: "HTTP bridge mode: one `qwen --acp` child per registered workspace (sessions-only multi-workspace routing is enabled when multiple --workspace values are supplied). Stage 2 native in-process mode is not yet implemented; this flag will become opt-in then."
146
156
  }).option("mcp-client-budget", {
147
157
  type: "number",
148
158
  description: "Cap on live MCP clients spawned inside the ACP child for the bound workspace. Positive integer. Combine with --mcp-budget-mode to control behavior at the cap. When unset, mode defaults to off (no accounting-driven enforcement, but GET /workspace/mcp still reports `clientCount`). Distinct from claude-code MCP_SERVER_CONNECTION_BATCH_SIZE which gates startup concurrency, not the total client count."
@@ -287,7 +297,7 @@ var serveCommand = {
287
297
  process.exit(1);
288
298
  }
289
299
  }
290
- const { runQwenServe } = await import("./run-qwen-serve-5OKADVLE.js");
300
+ const { runQwenServe } = await import("./run-qwen-serve-O6CMPURG.js");
291
301
  try {
292
302
  const handle = await runQwenServe({
293
303
  port: argv.port,
@@ -295,9 +305,11 @@ var serveCommand = {
295
305
  token: argv.token,
296
306
  mode: "http-bridge",
297
307
  maxSessions: argv["max-sessions"],
308
+ ...argv["max-total-sessions"] !== void 0 ? { maxTotalSessions: argv["max-total-sessions"] } : {},
298
309
  maxPendingPromptsPerSession,
299
310
  maxConnections: argv["max-connections"],
300
311
  eventRingSize: argv["event-ring-size"],
312
+ compactedReplayMaxBytes: argv["compacted-replay-max-bytes"],
301
313
  workspace: argv.workspace,
302
314
  requireAuth: argv["require-auth"],
303
315
  enableSessionShell: argv["enable-session-shell"],
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  init_esbuild_shims
5
- } from "./chunk-A4BMJM77.js";
5
+ } from "./chunk-5O2XNYP6.js";
6
6
  import {
7
7
  __commonJS,
8
8
  __name,
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  functionResponsePartsToString
5
- } from "./chunk-OWVIH4HY.js";
5
+ } from "./chunk-WFHJDT4S.js";
6
6
  import {
7
7
  parseAndFormatApiError
8
- } from "./chunk-YEGT55NW.js";
8
+ } from "./chunk-UUVCHN62.js";
9
9
  import {
10
10
  init_esbuild_shims
11
- } from "./chunk-A4BMJM77.js";
11
+ } from "./chunk-5O2XNYP6.js";
12
12
  import {
13
13
  __name
14
14
  } from "./chunk-J2S4EL5Y.js";
@@ -2,15 +2,15 @@
2
2
  "use strict";
3
3
  import {
4
4
  eastAsianWidth
5
- } from "./chunk-LGFAYIKX.js";
5
+ } from "./chunk-QHTIBUWB.js";
6
6
  import {
7
7
  ansiRegex,
8
8
  init_ansi_regex,
9
9
  stripAnsi
10
- } from "./chunk-YEGT55NW.js";
10
+ } from "./chunk-UUVCHN62.js";
11
11
  import {
12
12
  init_esbuild_shims
13
- } from "./chunk-A4BMJM77.js";
13
+ } from "./chunk-5O2XNYP6.js";
14
14
  import {
15
15
  __commonJS,
16
16
  __name,
@@ -182,6 +182,12 @@ function wrapToVisualLines(text, width) {
182
182
  }
183
183
  __name(wrapToVisualLines, "wrapToVisualLines");
184
184
  var regex = ansiRegex();
185
+ var BARE_C0_CONTROL_CHARS_REGEX = /[\x00-\x08\x0b-\x1f\x7f-\x9f]/g;
186
+ var BIDI_OVERRIDE_CHARS_REGEX = /[\u200e\u200f\u202a-\u202e\u2066-\u2069]/g;
187
+ function sanitizeTerminalText(value) {
188
+ return escapeAnsiCtrlCodes(value).replace(BARE_C0_CONTROL_CHARS_REGEX, "").replace(BIDI_OVERRIDE_CHARS_REGEX, "");
189
+ }
190
+ __name(sanitizeTerminalText, "sanitizeTerminalText");
185
191
  function escapeAnsiCtrlCodes(obj) {
186
192
  if (typeof obj === "string") {
187
193
  if (obj.search(regex) === -1) {
@@ -280,7 +286,8 @@ function sanitizeSensitiveText(text, maxLength = 200) {
280
286
  }
281
287
  __name(sanitizeSensitiveText, "sanitizeSensitiveText");
282
288
  var FILENAME_CONTROL_CHARS_REGEX = /[\x00-\x1f\x7f-\x9f]/g;
283
- function escapeFilenameControlChar(ch) {
289
+ var MULTILINE_CONTROL_CHARS_REGEX = /[\x00-\x08\x0b-\x1f\x7f-\x9f]/g;
290
+ function escapeControlChar(ch) {
284
291
  switch (ch) {
285
292
  case "\b":
286
293
  return "\\b";
@@ -298,14 +305,21 @@ function escapeFilenameControlChar(ch) {
298
305
  }
299
306
  }
300
307
  }
301
- __name(escapeFilenameControlChar, "escapeFilenameControlChar");
308
+ __name(escapeControlChar, "escapeControlChar");
302
309
  function sanitizeFilenameForDisplay(name) {
303
310
  return escapeAnsiCtrlCodes(name).replace(
304
311
  FILENAME_CONTROL_CHARS_REGEX,
305
- escapeFilenameControlChar
312
+ escapeControlChar
306
313
  );
307
314
  }
308
315
  __name(sanitizeFilenameForDisplay, "sanitizeFilenameForDisplay");
316
+ function sanitizeMultilineForDisplay(text) {
317
+ return escapeAnsiCtrlCodes(text).replace(
318
+ MULTILINE_CONTROL_CHARS_REGEX,
319
+ escapeControlChar
320
+ );
321
+ }
322
+ __name(sanitizeMultilineForDisplay, "sanitizeMultilineForDisplay");
309
323
 
310
324
  export {
311
325
  stringWidth,
@@ -316,9 +330,11 @@ export {
316
330
  stripUnsafeCharacters,
317
331
  getCachedStringWidth,
318
332
  wrapToVisualLines,
333
+ sanitizeTerminalText,
319
334
  escapeAnsiCtrlCodes,
320
335
  sanitizeSensitiveText,
321
- sanitizeFilenameForDisplay
336
+ sanitizeFilenameForDisplay,
337
+ sanitizeMultilineForDisplay
322
338
  };
323
339
  /**
324
340
  * @license
@@ -2,12 +2,12 @@
2
2
  "use strict";
3
3
  import {
4
4
  buildPermissionSettings
5
- } from "./chunk-P7I3D7FM.js";
5
+ } from "./chunk-5OIXALQ5.js";
6
6
  import {
7
7
  resolveVoiceStreamConfig,
8
8
  resolveVoiceTranscriptionConfig,
9
9
  transcribeVoiceAudio
10
- } from "./chunk-RYFZCUJO.js";
10
+ } from "./chunk-WCUK2QXK.js";
11
11
  import {
12
12
  getVoiceSettingsScope,
13
13
  isSelectableVoiceModel,
@@ -16,18 +16,14 @@ import {
16
16
  readVoiceMode,
17
17
  readVoiceModel,
18
18
  resolveVoiceTransport
19
- } from "./chunk-ADZG46HR.js";
19
+ } from "./chunk-RRNR5U2U.js";
20
20
  import {
21
21
  WorkspacePermissionRulesSessionRequiredError,
22
22
  WorkspaceSettingsPartialPersistError
23
- } from "./chunk-BMFMJINR.js";
24
- import {
25
- getPersistScopeForModelSelection,
26
- loadSettings
27
- } from "./chunk-STAZRKOT.js";
23
+ } from "./chunk-WL4L7EZH.js";
28
24
  import {
29
25
  MCP_RESTART_SERVER_DEADLINE_MS
30
- } from "./chunk-P7M4GA57.js";
26
+ } from "./chunk-OCPBI7J5.js";
31
27
  import {
32
28
  McpServerNotFoundError,
33
29
  McpServerRestartFailedError,
@@ -36,7 +32,7 @@ import {
36
32
  WorkspaceInitPathEscapeError,
37
33
  WorkspaceInitRaceError,
38
34
  WorkspaceInitSymlinkError
39
- } from "./chunk-B34OV7K2.js";
35
+ } from "./chunk-IAVB3HM3.js";
40
36
  import {
41
37
  SERVE_CONTROL_EXT_METHODS,
42
38
  SERVE_STATUS_EXT_METHODS,
@@ -49,22 +45,26 @@ import {
49
45
  createIdleWorkspaceProvidersStatus,
50
46
  createIdleWorkspaceSkillsStatus,
51
47
  mapDomainErrorToErrorKind
52
- } from "./chunk-JF7DFPQ5.js";
48
+ } from "./chunk-TJCEUA3S.js";
49
+ import {
50
+ getPersistScopeForModelSelection,
51
+ loadSettings
52
+ } from "./chunk-L6GPKRH7.js";
53
53
  import {
54
54
  getWorkspaceTrustStatus
55
- } from "./chunk-MIG5SQNL.js";
55
+ } from "./chunk-CBKR4Q5K.js";
56
56
  import {
57
57
  writeStderrLine
58
- } from "./chunk-Y6Z2O3WR.js";
58
+ } from "./chunk-YUZI3WAC.js";
59
59
  import {
60
60
  ModelsConfig
61
- } from "./chunk-YEGT55NW.js";
61
+ } from "./chunk-UUVCHN62.js";
62
62
  import {
63
63
  createDebugLogger
64
- } from "./chunk-22MNNNXE.js";
64
+ } from "./chunk-J4TSQ5EQ.js";
65
65
  import {
66
66
  init_esbuild_shims
67
- } from "./chunk-A4BMJM77.js";
67
+ } from "./chunk-5O2XNYP6.js";
68
68
  import {
69
69
  __name
70
70
  } from "./chunk-J2S4EL5Y.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
  };
@@ -0,0 +1,13 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-5O2XNYP6.js";
6
+
7
+ // packages/cli/src/serve/acp-session-bridge.ts
8
+ init_esbuild_shims();
9
+ /**
10
+ * @license
11
+ * Copyright 2025 Qwen Team
12
+ * SPDX-License-Identifier: Apache-2.0
13
+ */
@@ -2,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-22MNNNXE.js";
5
+ } from "./chunk-J4TSQ5EQ.js";
6
6
  import {
7
7
  init_esbuild_shims
8
- } from "./chunk-A4BMJM77.js";
8
+ } from "./chunk-5O2XNYP6.js";
9
9
  import {
10
10
  __name
11
11
  } from "./chunk-J2S4EL5Y.js";