@qwen-code/qwen-code 0.21.6-preview.0 → 0.21.6

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 (238) hide show
  1. package/bundled/qc-helper/docs/features/channels/github.md +31 -19
  2. package/bundled/qc-helper/docs/features/code-review.md +3 -1
  3. package/bundled/review/SKILL.md +16 -11
  4. package/chunks/{MaxSizedBox-A3UYJS6B.js → MaxSizedBox-2HFKP4LI.js} +8 -8
  5. package/chunks/{StandaloneSessionPicker-NGLY26I4.js → StandaloneSessionPicker-RBV72M5N.js} +23 -23
  6. package/chunks/{acp-startup-profiler-3RICG2YW.js → acp-startup-profiler-ORIQ2CCQ.js} +2 -2
  7. package/chunks/{acpAgent-V54T2EEL.js → acpAgent-WO6JFCVQ.js} +1059 -118
  8. package/chunks/{agent-2P53VL2L.js → agent-AHGLYNZ4.js} +8 -8
  9. package/chunks/{agent-headless-6X4GCFRD.js → agent-headless-NTXKKGRO.js} +8 -8
  10. package/chunks/{bridge-TCFMLKHR.js → bridge-RPAU64CA.js} +13 -13
  11. package/chunks/{channel-management-service-5XPPTWUQ.js → channel-management-service-IGEUOVRT.js} +1 -1
  12. package/chunks/{channel-settings-store-B4HNMNQV.js → channel-settings-store-ON64MF7G.js} +15 -15
  13. package/chunks/{channel-worker-group-SVGPDH2C.js → channel-worker-group-JWQK224X.js} +5 -5
  14. package/chunks/{channel-worker-manager-72ZK2GTS.js → channel-worker-manager-77E3OXRQ.js} +5 -5
  15. package/chunks/{channel-worker-supervisor-NUEDVHX4.js → channel-worker-supervisor-62YWUGP2.js} +3 -3
  16. package/chunks/{chunk-AFZTZLFB.js → chunk-2POQWYM6.js} +2 -2
  17. package/chunks/{chunk-RTWF7FF7.js → chunk-3LZKY4V4.js} +3 -3
  18. package/chunks/{chunk-T4XY5CT4.js → chunk-3UOLYNTF.js} +5 -5
  19. package/chunks/{chunk-WAOLM6SQ.js → chunk-4JH77A2U.js} +1 -1
  20. package/chunks/{chunk-MISUEWB4.js → chunk-4S4OEQ6U.js} +10 -6
  21. package/chunks/{chunk-URJHXOSO.js → chunk-4WTAQEHV.js} +1 -1
  22. package/chunks/{chunk-BU4BRCPX.js → chunk-536SWZTA.js} +5 -5
  23. package/chunks/{chunk-6KEN3RIC.js → chunk-5MJGUQU5.js} +3 -3
  24. package/chunks/{chunk-Z5S6KH2B.js → chunk-75QMRMO7.js} +4 -4
  25. package/chunks/{chunk-DOA7MCDY.js → chunk-A4VTILZT.js} +898 -847
  26. package/chunks/{chunk-72DZPDH4.js → chunk-ACZRB7AD.js} +8 -3
  27. package/chunks/{chunk-P7LKADIT.js → chunk-BOGOR4HB.js} +5 -5
  28. package/chunks/{chunk-QL4TN4HS.js → chunk-BRVWYMKV.js} +1 -1
  29. package/chunks/{chunk-7FUVSN4D.js → chunk-C4CBJQKY.js} +1 -1
  30. package/chunks/{chunk-X6DV3WKN.js → chunk-CA4UIDFU.js} +1 -1
  31. package/chunks/{chunk-MVLM6PJK.js → chunk-CJ5WLD5Y.js} +6 -2
  32. package/chunks/{chunk-6D6V55ZQ.js → chunk-DIT4V3XH.js} +1 -1
  33. package/chunks/{chunk-DOICUTPO.js → chunk-DVBEGGLG.js} +8 -8
  34. package/chunks/{chunk-DTAPI453.js → chunk-EMYZIABH.js} +1 -1
  35. package/chunks/{chunk-4E5PO6R7.js → chunk-EXCEQD22.js} +3 -3
  36. package/chunks/{chunk-EHMN6SEG.js → chunk-FZFP7RZI.js} +3 -3
  37. package/chunks/{chunk-C4GRKMUL.js → chunk-G5NNWEYE.js} +5 -5
  38. package/chunks/{chunk-QWUYFMAR.js → chunk-GESMMPAK.js} +33 -33
  39. package/chunks/{chunk-WPKIU4PA.js → chunk-GK2H5GRC.js} +4 -4
  40. package/chunks/{chunk-SQ3ZJOYL.js → chunk-GWRHVJY2.js} +11 -11
  41. package/chunks/{chunk-BK2UNYWD.js → chunk-HIBNSEJE.js} +12 -0
  42. package/chunks/{chunk-5CDI4UOY.js → chunk-HY25ULVN.js} +1 -1
  43. package/chunks/{chunk-IISDPZ5X.js → chunk-IMOQO6YL.js} +1 -1
  44. package/chunks/{chunk-ZQL73PPE.js → chunk-JE44IPH6.js} +1 -1
  45. package/chunks/{chunk-NYZAL2W2.js → chunk-K2B3X3E7.js} +3 -3
  46. package/chunks/{chunk-OWAK7LMW.js → chunk-KGJGEEVR.js} +7 -0
  47. package/chunks/{chunk-546CDN6D.js → chunk-KHUA3NQV.js} +2 -2
  48. package/chunks/{chunk-7GYP5COR.js → chunk-LAAFLUQV.js} +1 -1
  49. package/chunks/{chunk-XNZBXQCG.js → chunk-MKVZE4ZJ.js} +1 -1
  50. package/chunks/{chunk-N47ZM2KI.js → chunk-N2GJU6KI.js} +9 -9
  51. package/chunks/{chunk-WIPQR44Y.js → chunk-NGJOAKJY.js} +3 -3
  52. package/chunks/chunk-NKLP3DCK.js +22 -0
  53. package/chunks/{chunk-3ZRS2XNY.js → chunk-NKSF7HYF.js} +1 -1
  54. package/chunks/{chunk-HKNSU4WX.js → chunk-O7V7N4G7.js} +1 -1
  55. package/chunks/{chunk-CJBRIJ7W.js → chunk-ODPXHGLL.js} +2 -2
  56. package/chunks/{chunk-4T6QMNX2.js → chunk-OP2OHZ7K.js} +183 -10
  57. package/chunks/{chunk-CDHNGCJI.js → chunk-OWSW7EYP.js} +5 -5
  58. package/chunks/{chunk-FDV3CXTD.js → chunk-OXX3FG2N.js} +2 -2
  59. package/chunks/{chunk-YUVTZ4UH.js → chunk-PPUOYL77.js} +70 -5
  60. package/chunks/{chunk-O656RSMC.js → chunk-PX5DNLSA.js} +1 -1
  61. package/chunks/{chunk-6KZP75GT.js → chunk-Q5RM32DR.js} +1 -1
  62. package/chunks/{chunk-AU3XNTMV.js → chunk-QZKYZCN3.js} +1 -1
  63. package/chunks/{chunk-UKZEXS6K.js → chunk-R574ATRM.js} +11 -0
  64. package/chunks/{chunk-XKTCA6BW.js → chunk-R5RBXLNC.js} +3 -3
  65. package/chunks/{chunk-NAYPZ72V.js → chunk-RFUHDCNF.js} +1 -1
  66. package/chunks/{chunk-QG2ACINA.js → chunk-RHTTKJTP.js} +1 -1
  67. package/chunks/{chunk-IKXE3AAC.js → chunk-RK2EE3T7.js} +1 -1
  68. package/chunks/{chunk-3DTM3RPU.js → chunk-S7CV4KO6.js} +3 -3
  69. package/chunks/{chunk-ZH7G3A4U.js → chunk-SKNE3KQC.js} +3 -3
  70. package/chunks/{chunk-PQTK2FVO.js → chunk-SLSWFHDF.js} +3 -3
  71. package/chunks/{chunk-2U7GPHA6.js → chunk-SQC6K5HI.js} +1 -1
  72. package/chunks/{chunk-Y5HIDFKZ.js → chunk-SQOMTWQT.js} +4 -4
  73. package/chunks/{chunk-CXYBX4AL.js → chunk-SUKEUUAA.js} +1 -1
  74. package/chunks/{chunk-WXS647W5.js → chunk-T4JSA7KU.js} +2 -2
  75. package/chunks/{chunk-I7JDGNG6.js → chunk-T5U6IM4C.js} +6 -2
  76. package/chunks/{chunk-TVFC3XF5.js → chunk-TGGEZINK.js} +5 -5
  77. package/chunks/{chunk-AVDEBBMI.js → chunk-TOGZTG4X.js} +2 -2
  78. package/chunks/{chunk-A6SX5TAH.js → chunk-TSERKWCX.js} +6 -2
  79. package/chunks/{chunk-XSGQKR37.js → chunk-U4AF3QLU.js} +355 -17
  80. package/chunks/{chunk-WIRAPZ62.js → chunk-UGTWD35F.js} +7 -1
  81. package/chunks/{chunk-DG563ZCS.js → chunk-ULPQQSDN.js} +2 -2
  82. package/chunks/{chunk-DBIEZC7T.js → chunk-VGFPFM4U.js} +3 -3
  83. package/chunks/{chunk-VDLXPEI5.js → chunk-VNQCPBC2.js} +3 -3
  84. package/chunks/{chunk-WVRJKSIG.js → chunk-VSALQLT7.js} +1 -1
  85. package/chunks/{chunk-EKWNNQQD.js → chunk-W5DXUTXD.js} +12 -6
  86. package/chunks/{chunk-M744OFVE.js → chunk-W7U4ESW2.js} +1 -1
  87. package/chunks/{chunk-MFBUJMQ3.js → chunk-WNU7TZTO.js} +4 -4
  88. package/chunks/{chunk-GTM6IHBB.js → chunk-WO2B5E5B.js} +1 -0
  89. package/chunks/{chunk-SPUDIAHX.js → chunk-XA4TMLFN.js} +11 -11
  90. package/chunks/{chunk-XOZ2R6XI.js → chunk-XM2O73NC.js} +1245 -295
  91. package/chunks/{chunk-NKST54XA.js → chunk-YMBOEAF4.js} +1 -1
  92. package/chunks/{chunk-QONSRAEV.js → chunk-YP5KH5Y7.js} +1 -1
  93. package/chunks/{chunk-XZCMQUOF.js → chunk-YZQTA3ID.js} +20 -11
  94. package/chunks/{computer-use-GTOP2CVH.js → computer-use-5HXJ2P4X.js} +8 -8
  95. package/chunks/{config-utils-LIRO7NSU.js → config-utils-VXD4SPVR.js} +2 -2
  96. package/chunks/{contextCommand-K6T6RRF3.js → contextCommand-7BEHRX2H.js} +11 -11
  97. package/chunks/{core-runtime-D2626QQU.js → core-runtime-U4VJ5TIV.js} +8 -8
  98. package/chunks/create-sub-session-QZNQY332.js +772 -0
  99. package/chunks/{daemon-CCIX4BMG.js → daemon-YI5RY62O.js} +115 -3
  100. package/chunks/{daemon-status-provider-2EHRZZVF.js → daemon-status-provider-UJUGTDTL.js} +17 -17
  101. package/chunks/{daemon-trust-policy-B3EPDJDR.js → daemon-trust-policy-ZHDD5VYQ.js} +14 -14
  102. package/chunks/{daemon-trust-policy-monitor-MFM5X26G.js → daemon-trust-policy-monitor-5SHYBDGA.js} +14 -14
  103. package/chunks/{deferred-core-runtime-KXN7HLN7.js → deferred-core-runtime-QWAEBTR5.js} +8 -8
  104. package/chunks/discovery-XLHITE74.js +220 -0
  105. package/chunks/{dist-IKGVITP3.js → dist-KS4O2NKE.js} +99 -6
  106. package/chunks/{earlyInputCapture-WUNYYFOS.js → earlyInputCapture-5BMSGKOI.js} +8 -8
  107. package/chunks/{edit-DMFCBP2D.js → edit-IVQQVYYK.js} +8 -8
  108. package/chunks/{enter-worktree-5SVBCXFC.js → enter-worktree-P3DF2N6O.js} +8 -8
  109. package/chunks/{enterPlanMode-QUIZFQ4M.js → enterPlanMode-KKTDVLAD.js} +8 -8
  110. package/chunks/{environment-U6QP23VJ.js → environment-W5TRDM3G.js} +11 -11
  111. package/chunks/{errors-GZWFA6ON.js → errors-GJJB36IG.js} +11 -11
  112. package/chunks/{exit-worktree-FUB44KAF.js → exit-worktree-LV5RLOCU.js} +8 -8
  113. package/chunks/{exitPlanMode-XSHHYR73.js → exitPlanMode-TUGOB2LL.js} +8 -8
  114. package/chunks/{fast-path-JHQJSIMZ.js → fast-path-2FU23PAQ.js} +2 -2
  115. package/chunks/{gemini-O44ETOKT.js → gemini-KDULDQPP.js} +47 -47
  116. package/chunks/{geminiContentGenerator-TTM4TZJM.js → geminiContentGenerator-LOCFHNVA.js} +1 -1
  117. package/chunks/{glob-YECOWTRW.js → glob-Z4NQFKWS.js} +8 -8
  118. package/chunks/{grep-BZO4LOTA.js → grep-Z67Z7EN6.js} +8 -8
  119. package/chunks/{handleAutoUpdate-TOO52D6H.js → handleAutoUpdate-DFUZE6I6.js} +13 -13
  120. package/chunks/{i18n-ARJYXZQ5.js → i18n-R4FMZ7N2.js} +10 -10
  121. package/chunks/{image-gen-J6Q2YBEU.js → image-gen-4CQJPQP5.js} +1 -1
  122. package/chunks/{initializer-CEZ4RPQV.js → initializer-DK672ZVE.js} +14 -14
  123. package/chunks/{installationInfo-AEGIIQAT.js → installationInfo-PO4Z3ES7.js} +9 -9
  124. package/chunks/{list-7XLPV5GC.js → list-QXQF6C53.js} +17 -17
  125. package/chunks/{loadedSettingsAdapter-YK5SBHOT.js → loadedSettingsAdapter-4D7GUGW6.js} +14 -14
  126. package/chunks/{loggingContentGenerator-I7QDXS43.js → loggingContentGenerator-2P3MNACM.js} +3 -3
  127. package/chunks/{managed-npm-update-YSL7PA7G.js → managed-npm-update-LWVJQTWO.js} +21 -12
  128. package/chunks/{mcp-RKFQZXP6.js → mcp-GHETAR6V.js} +14 -14
  129. package/chunks/{monitor-QHHJIKGL.js → monitor-4T7W4M6Q.js} +8 -8
  130. package/chunks/{nonInteractiveCli-XEBIE7MG.js → nonInteractiveCli-P4UKCJFM.js} +42 -42
  131. package/chunks/{notebook-edit-SG7X2EQA.js → notebook-edit-OC2V7U5D.js} +8 -8
  132. package/chunks/{openaiContentGenerator-63CVR33K.js → openaiContentGenerator-RAJUFWQY.js} +3 -3
  133. package/chunks/{pidfile-I3CXJGQD.js → pidfile-HVPYVRLS.js} +8 -8
  134. package/chunks/{processUtils-LJ3DSANX.js → processUtils-VIQ4JHVX.js} +2 -2
  135. package/chunks/{qwenContentGenerator-JINBVCH6.js → qwenContentGenerator-2QLCUFNZ.js} +9 -9
  136. package/chunks/{qwenOAuth2-SY2O3NRR.js → qwenOAuth2-J2X3EN43.js} +1 -1
  137. package/chunks/{read-file-PGTXF25I.js → read-file-ZNAN2B26.js} +2 -2
  138. package/chunks/{resumeHistoryUtils-FB2NFVZ2.js → resumeHistoryUtils-RCY7AL5Y.js} +12 -12
  139. package/chunks/{ripGrep-IY3KGPM6.js → ripGrep-C3KMLZM5.js} +8 -8
  140. package/chunks/{run-qwen-serve-UYEMGPKA.js → run-qwen-serve-3JN75CIQ.js} +481 -74
  141. package/chunks/{runtime-CG3BKRFE.js → runtime-VUA4WQYD.js} +17 -17
  142. package/chunks/{scheduler-VFUVGDE5.js → scheduler-Z4IBXCOY.js} +8 -8
  143. package/chunks/{serve-ZCCQ2G2L.js → serve-67T3P7XI.js} +14 -14
  144. package/chunks/{server-WS7LWXPP.js → server-46ZO2CLV.js} +7648 -596
  145. package/chunks/{session-IQLCT32T.js → session-B4IFAFC4.js} +45 -45
  146. package/chunks/{settings-NX4EUIE6.js → settings-AI2BTBOZ.js} +13 -13
  147. package/chunks/{shell-THDYM4CS.js → shell-BKII3B6E.js} +8 -8
  148. package/chunks/{skill-OXXZBNQB.js → skill-6CFOWVGA.js} +3 -3
  149. package/chunks/{skill-settings-T3JZ33T2.js → skill-settings-6BFQWMW4.js} +13 -13
  150. package/chunks/{spawnChannel-COLJMSA7.js → spawnChannel-FJXW35U7.js} +10 -10
  151. package/chunks/{standalone-update-ICW7H5IF.js → standalone-update-WVINHRNS.js} +11 -11
  152. package/chunks/{startInteractiveUI-6BDRXSMF.js → startInteractiveUI-YE57CJ57.js} +132 -132
  153. package/chunks/{stdioHelpers-HGIYTWAY.js → stdioHelpers-7A2EE64Z.js} +5 -3
  154. package/chunks/{task-create-2X4UP4F3.js → task-create-Q727MXHJ.js} +2 -2
  155. package/chunks/{task-list-WOLJPZ64.js → task-list-G6KPQ5JT.js} +1 -1
  156. package/chunks/{task-update-VDUSN36E.js → task-update-YB7PXO4R.js} +2 -2
  157. package/chunks/{team-create-BCSMDK4Z.js → team-create-GNC7NFY6.js} +8 -8
  158. package/chunks/{team-delete-D2VMSDOT.js → team-delete-GDO7H2T4.js} +1 -1
  159. package/chunks/{team-plan-approval-B5YRLJFV.js → team-plan-approval-ECALJLIO.js} +8 -8
  160. package/chunks/{terminal-image-renderer-PW6Z6VFY.js → terminal-image-renderer-II74TFVW.js} +8 -8
  161. package/chunks/{theme-manager-CMVKD2JH.js → theme-manager-2MGEDD22.js} +8 -8
  162. package/chunks/{tool-search-SQTUSG6P.js → tool-search-S6LRRACA.js} +2 -2
  163. package/chunks/{total-session-admission-XAXOSE46.js → total-session-admission-7WVAWQPU.js} +13 -13
  164. package/chunks/{trustedFolders-Z2UAEG2V.js → trustedFolders-NFS4KHO4.js} +10 -10
  165. package/chunks/{update-relaunch-JBLI6LJF.js → update-relaunch-Q5HLZ6UW.js} +6 -6
  166. package/chunks/{updateCheck-FDAVGOFT.js → updateCheck-UOVZSTP7.js} +12 -12
  167. package/chunks/{useAutoAcceptIndicator-PDZFIYRM.js → useAutoAcceptIndicator-PC6MOJCO.js} +16 -16
  168. package/chunks/{validateNonInterActiveAuth-Q4763ONQ.js → validateNonInterActiveAuth-YMQP3ZM7.js} +39 -39
  169. package/chunks/{version-C7MPCGWD.js → version-T4AQFZJH.js} +1 -1
  170. package/chunks/{web-fetch-L7RAPOJB.js → web-fetch-JQCJHEEX.js} +2 -2
  171. package/chunks/{web-search-IDOYUOWX.js → web-search-QGZ2KY4G.js} +2 -2
  172. package/chunks/{workflow-HXURUJB5.js → workflow-YIT27YWZ.js} +9 -9
  173. package/chunks/{workspace-providers-status-JZ3GPWNU.js → workspace-providers-status-FIDZQ2PL.js} +17 -17
  174. package/chunks/{workspace-registration-store-SM2PWB6L.js → workspace-registration-store-RCSPE4DU.js} +1 -1
  175. package/chunks/{workspace-registry-6W4ES7BJ.js → workspace-registry-5PEUCY6E.js} +13 -13
  176. package/chunks/{workspace-service-V47ZFJRX.js → workspace-service-LANDVPL7.js} +18 -18
  177. package/chunks/{workspace-skills-status-6ZQ45XKA.js → workspace-skills-status-2IQVJNIN.js} +15 -15
  178. package/chunks/{workspace-trust-reconciler-6V25LMCN.js → workspace-trust-reconciler-CZPZZCZC.js} +22 -22
  179. package/chunks/{write-file-H2QOF25K.js → write-file-G5VNGCOG.js} +8 -8
  180. package/chunks/{zoom-image-JTUSS43N.js → zoom-image-6RBLD7X6.js} +2 -2
  181. package/cli.js +15 -15
  182. package/package.json +3 -3
  183. package/web-shell/assets/{arc-DtI1rZcQ.js → arc-B-Vtkp1W.js} +1 -1
  184. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BPZwSVct.js → architectureDiagram-3BPJPVTR-qmTXIj64.js} +1 -1
  185. package/web-shell/assets/{blockDiagram-GPEHLZMM-BIQ03j4C.js → blockDiagram-GPEHLZMM-ZlnXEtdP.js} +1 -1
  186. package/web-shell/assets/{c4Diagram-AAUBKEIU-CB0RyFGm.js → c4Diagram-AAUBKEIU-Wyoirf6Z.js} +1 -1
  187. package/web-shell/assets/channel-DXaHnfjS.js +1 -0
  188. package/web-shell/assets/{chunk-2J33WTMH-B3WoS-4H.js → chunk-2J33WTMH-WQwbq9d8.js} +1 -1
  189. package/web-shell/assets/{chunk-4BX2VUAB-C98xYZ1X.js → chunk-4BX2VUAB-DQKnAXC4.js} +1 -1
  190. package/web-shell/assets/{chunk-55IACEB6-CbTIWRwQ.js → chunk-55IACEB6-DIdgXNcO.js} +1 -1
  191. package/web-shell/assets/{chunk-727SXJPM-DWGnKTPu.js → chunk-727SXJPM-CUwGOLEd.js} +1 -1
  192. package/web-shell/assets/{chunk-AQP2D5EJ-4__QyCEX.js → chunk-AQP2D5EJ-CCBGZFZ4.js} +1 -1
  193. package/web-shell/assets/{chunk-FMBD7UC4-DFtG1YCW.js → chunk-FMBD7UC4-DMGXProk.js} +1 -1
  194. package/web-shell/assets/{chunk-ND2GUHAM-rvAhW51N.js → chunk-ND2GUHAM-yejcFqsh.js} +1 -1
  195. package/web-shell/assets/{chunk-QZHKN3VN-DfiU9pwZ.js → chunk-QZHKN3VN-DxCyqTf7.js} +1 -1
  196. package/web-shell/assets/classDiagram-4FO5ZUOK-BigU82A0.js +1 -0
  197. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BigU82A0.js +1 -0
  198. package/web-shell/assets/{cose-bilkent-S5V4N54A-Cc4EIdxu.js → cose-bilkent-S5V4N54A-DOrF3cg_.js} +1 -1
  199. package/web-shell/assets/{dagre-BM42HDAG-CZNj4dGW.js → dagre-BM42HDAG-Be6CdYQ_.js} +1 -1
  200. package/web-shell/assets/{diagram-2AECGRRQ-D5tiqQCr.js → diagram-2AECGRRQ-B_Rjsft2.js} +1 -1
  201. package/web-shell/assets/{diagram-5GNKFQAL-pwzw0jVO.js → diagram-5GNKFQAL-BvQbKSm1.js} +1 -1
  202. package/web-shell/assets/{diagram-KO2AKTUF-4CWiM00x.js → diagram-KO2AKTUF-BsdmMdpS.js} +1 -1
  203. package/web-shell/assets/{diagram-LMA3HP47-Dd7rc7Qf.js → diagram-LMA3HP47-CrQlBaNr.js} +1 -1
  204. package/web-shell/assets/{diagram-OG6HWLK6-_vzV52ml.js → diagram-OG6HWLK6-aB1MD_DL.js} +1 -1
  205. package/web-shell/assets/{erDiagram-TEJ5UH35-CqbE2bx_.js → erDiagram-TEJ5UH35-F-eUUn9n.js} +1 -1
  206. package/web-shell/assets/{flowDiagram-I6XJVG4X-CaxNr7w4.js → flowDiagram-I6XJVG4X-DY_d8lUK.js} +1 -1
  207. package/web-shell/assets/{ganttDiagram-6RSMTGT7-AGjrtfUA.js → ganttDiagram-6RSMTGT7-Dqu7KBPg.js} +1 -1
  208. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-ADG2zSkc.js → gitGraphDiagram-PVQCEYII-2IkU_VEj.js} +1 -1
  209. package/web-shell/assets/{index-BOryKCqt.js → index-BuSbqggh.js} +1 -1
  210. package/web-shell/assets/index-DrfC2e9s.js +1768 -0
  211. package/web-shell/assets/index-QQlUCJGg.css +5 -0
  212. package/web-shell/assets/{infoDiagram-5YYISTIA-CE3B_IoZ.js → infoDiagram-5YYISTIA-C4orwzPw.js} +1 -1
  213. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CN-Frhoi.js → ishikawaDiagram-YF4QCWOH-fXUEfef_.js} +1 -1
  214. package/web-shell/assets/{journeyDiagram-JHISSGLW-CGgezS93.js → journeyDiagram-JHISSGLW-Bs0I1_J5.js} +1 -1
  215. package/web-shell/assets/{kanban-definition-UN3LZRKU-BqWijky5.js → kanban-definition-UN3LZRKU-BPRj1dw_.js} +1 -1
  216. package/web-shell/assets/{linear-D8sfpZf6.js → linear-DFS6ZDpW.js} +1 -1
  217. package/web-shell/assets/{mermaid.core-3PA4QrzM.js → mermaid.core-CZxjWMaO.js} +5 -5
  218. package/web-shell/assets/{mindmap-definition-RKZ34NQL-D9QxwiCY.js → mindmap-definition-RKZ34NQL-Dsr3PmNs.js} +1 -1
  219. package/web-shell/assets/{pieDiagram-4H26LBE5-Bioaf6uE.js → pieDiagram-4H26LBE5-D5Ngpz5Y.js} +1 -1
  220. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DBb2AS73.js → quadrantDiagram-W4KKPZXB-WJK9I25z.js} +1 -1
  221. package/web-shell/assets/{requirementDiagram-4Y6WPE33-DXOvZ3KB.js → requirementDiagram-4Y6WPE33-CmrYcwOH.js} +1 -1
  222. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-D9qg09Dm.js → sankeyDiagram-5OEKKPKP-7SjCc4Mv.js} +1 -1
  223. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DSAUIfpw.js → sequenceDiagram-3UESZ5HK-Dl9E0IRM.js} +1 -1
  224. package/web-shell/assets/{stateDiagram-AJRCARHV-BPZkzfQ3.js → stateDiagram-AJRCARHV-CRRio7yV.js} +1 -1
  225. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-1atT7XaU.js +1 -0
  226. package/web-shell/assets/{timeline-definition-PNZ67QCA-UDaQp9sP.js → timeline-definition-PNZ67QCA-DVyXjjfq.js} +1 -1
  227. package/web-shell/assets/{vennDiagram-CIIHVFJN-2ouhAnHO.js → vennDiagram-CIIHVFJN-Nb2Lckzq.js} +1 -1
  228. package/web-shell/assets/{wardley-L42UT6IY-Cq_WEvTK.js → wardley-L42UT6IY-DuL_otIP.js} +1 -1
  229. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Dt24aXOM.js → wardleyDiagram-YWT4CUSO-DVI9Q4Aa.js} +1 -1
  230. package/web-shell/assets/{xychartDiagram-2RQKCTM6-A5Xk2WCH.js → xychartDiagram-2RQKCTM6-BNjAm7KD.js} +1 -1
  231. package/web-shell/index.html +2 -2
  232. package/chunks/create-sub-session-MWUWNBM6.js +0 -401
  233. package/web-shell/assets/channel-vfbVFuM1.js +0 -1
  234. package/web-shell/assets/classDiagram-4FO5ZUOK-Cvr8atq3.js +0 -1
  235. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cvr8atq3.js +0 -1
  236. package/web-shell/assets/index-Cb1LjsCv.css +0 -5
  237. package/web-shell/assets/index-CvJDaIy8.js +0 -1756
  238. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DInOqnhZ.js +0 -1
@@ -17,6 +17,12 @@ var writeStderrLine = /* @__PURE__ */ __name((message) => {
17
17
  process.stderr.write(message.endsWith("\n") ? message : `${message}
18
18
  `);
19
19
  }, "writeStderrLine");
20
+ var writeStdoutLineSafe = /* @__PURE__ */ __name((message) => {
21
+ try {
22
+ writeStdoutLine(message);
23
+ } catch {
24
+ }
25
+ }, "writeStdoutLineSafe");
20
26
  var writeStderrLineSafe = /* @__PURE__ */ __name((message) => {
21
27
  try {
22
28
  writeStderrLine(message);
@@ -30,6 +36,7 @@ var clearScreen = /* @__PURE__ */ __name(() => {
30
36
  export {
31
37
  writeStdoutLine,
32
38
  writeStderrLine,
39
+ writeStdoutLineSafe,
33
40
  writeStderrLineSafe,
34
41
  clearScreen
35
42
  };
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  resolveBundleDir
5
- } from "./chunk-DOA7MCDY.js";
5
+ } from "./chunk-A4VTILZT.js";
6
6
  import {
7
7
  Storage
8
8
  } from "./chunk-3RXUYQJI.js";
9
9
  import {
10
10
  writeStderrLine
11
- } from "./chunk-OWAK7LMW.js";
11
+ } from "./chunk-KGJGEEVR.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  getPlugin,
8
8
  supportedTypes
9
- } from "./chunk-DTAPI453.js";
9
+ } from "./chunk-EMYZIABH.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -30,7 +30,7 @@ import {
30
30
  isChannelStartupReportType,
31
31
  isChannelWebhookEnqueueErrorCode,
32
32
  isChannelWebhookTaskResultMessage
33
- } from "./chunk-QONSRAEV.js";
33
+ } from "./chunk-YP5KH5Y7.js";
34
34
  import {
35
35
  createWorkerDiagnosticRedactor,
36
36
  normalizeWorkerDiagnostic,
@@ -2,20 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  appEvents
5
- } from "./chunk-XOZ2R6XI.js";
5
+ } from "./chunk-XM2O73NC.js";
6
6
  import {
7
7
  CUSTOM_SANDBOX_IMAGE_ENV_VAR,
8
8
  HOST_UPDATE_RELAUNCH_ENV_VAR,
9
9
  SKIP_UPDATE_CHECK_ENV_VAR,
10
10
  requestUpdateOnExit
11
- } from "./chunk-CXYBX4AL.js";
11
+ } from "./chunk-SUKEUUAA.js";
12
12
  import {
13
13
  loadUndici
14
14
  } from "./chunk-3Z43GZUQ.js";
15
15
  import {
16
16
  IdeClient,
17
17
  getAllProviderBaseUrls
18
- } from "./chunk-DOA7MCDY.js";
18
+ } from "./chunk-A4VTILZT.js";
19
19
  import {
20
20
  detectRuntime,
21
21
  getOrCreateSharedDispatcher,
@@ -231,11 +231,11 @@ function startPostRenderPrefetches(config, settings, options = {}) {
231
231
  { updateEventEmitter },
232
232
  { t }
233
233
  ] = await Promise.all([
234
- import("./updateCheck-FDAVGOFT.js"),
235
- import("./handleAutoUpdate-TOO52D6H.js"),
236
- import("./installationInfo-AEGIIQAT.js"),
234
+ import("./updateCheck-UOVZSTP7.js"),
235
+ import("./handleAutoUpdate-DFUZE6I6.js"),
236
+ import("./installationInfo-PO4Z3ES7.js"),
237
237
  import("./updateEventEmitter-5MKC7BLQ.js"),
238
- import("./i18n-ARJYXZQ5.js")
238
+ import("./i18n-R4FMZ7N2.js")
239
239
  ]);
240
240
  const updateCheckSkippedMessage = /* @__PURE__ */ __name((error) => t("Update check skipped ({{reason}}) \u2014 run /update to retry.", {
241
241
  reason: describeUpdateCheckFailure(error)
@@ -308,7 +308,7 @@ ${t(
308
308
  state: "connecting"
309
309
  });
310
310
  try {
311
- const { connectIdeForStartup } = await import("./initializer-CEZ4RPQV.js");
311
+ const { connectIdeForStartup } = await import("./initializer-DK672ZVE.js");
312
312
  await withTimeout(
313
313
  connectIdeForStartup(config),
314
314
  "ide_connect",
@@ -332,7 +332,7 @@ ${t(
332
332
  }
333
333
  if (config.isInteractive()) {
334
334
  runDeferredTask("background_housekeeping", async () => {
335
- const { startBackgroundHousekeeping } = await import("./scheduler-VFUVGDE5.js");
335
+ const { startBackgroundHousekeeping } = await import("./scheduler-Z4IBXCOY.js");
336
336
  startBackgroundHousekeeping(config, settings);
337
337
  });
338
338
  }
@@ -2,14 +2,14 @@
2
2
  "use strict";
3
3
  import {
4
4
  functionResponsePartsToString
5
- } from "./chunk-QWUYFMAR.js";
5
+ } from "./chunk-GESMMPAK.js";
6
6
  import {
7
7
  parseAndFormatApiError
8
- } from "./chunk-DOA7MCDY.js";
8
+ } from "./chunk-A4VTILZT.js";
9
9
  import {
10
10
  formatVisionBridgeNoticeDisplay,
11
11
  isVisionBridgeNoticeDisplay
12
- } from "./chunk-O656RSMC.js";
12
+ } from "./chunk-PX5DNLSA.js";
13
13
  import {
14
14
  init_esbuild_shims
15
15
  } from "./chunk-5O2XNYP6.js";
@@ -0,0 +1,22 @@
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/live/types.ts
8
+ init_esbuild_shims();
9
+ var LIVE_HOST_PROTOCOL_VERSION = 6;
10
+ var LIVE_HOST_BUNDLE_ID = "com.alibaba.qwen-code.live-host";
11
+ var LIVE_INPUT_AUDIO_EPOCH_BYTES = 8;
12
+
13
+ export {
14
+ LIVE_HOST_PROTOCOL_VERSION,
15
+ LIVE_HOST_BUNDLE_ID,
16
+ LIVE_INPUT_AUDIO_EPOCH_BYTES
17
+ };
18
+ /**
19
+ * @license
20
+ * Copyright 2026 Qwen Team
21
+ * SPDX-License-Identifier: Apache-2.0
22
+ */
@@ -6,7 +6,7 @@ import {
6
6
  getNestedProperty,
7
7
  getPersistScopeForModelSelection,
8
8
  restoreSettingsFromBackup
9
- } from "./chunk-YUVTZ4UH.js";
9
+ } from "./chunk-PPUOYL77.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -5,7 +5,7 @@ import {
5
5
  isTranscribableVoiceModel,
6
6
  readVoiceLanguage,
7
7
  resolveVoiceTransport
8
- } from "./chunk-7FUVSN4D.js";
8
+ } from "./chunk-C4CBJQKY.js";
9
9
  import {
10
10
  resolvePath
11
11
  } from "./chunk-JELIWHXD.js";
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-546CDN6D.js";
5
+ } from "./chunk-KHUA3NQV.js";
6
6
  import {
7
7
  createDebugLogger
8
8
  } from "./chunk-3RXUYQJI.js";
9
9
  import {
10
10
  writeStderrLine
11
- } from "./chunk-OWAK7LMW.js";
11
+ } from "./chunk-KGJGEEVR.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-OCPBI7J5.js";
18
18
  import {
19
19
  defaultSpawnChannelFactory
20
- } from "./chunk-2U7GPHA6.js";
20
+ } from "./chunk-SQC6K5HI.js";
21
21
  import {
22
22
  BridgeChannelClosedError,
23
23
  BridgeTimeoutError,
@@ -26,11 +26,12 @@ import {
26
26
  STATUS_SCHEMA_VERSION,
27
27
  createIdleWorkspaceExtensionsStatus,
28
28
  createIdleWorkspaceHooksStatus
29
- } from "./chunk-WIRAPZ62.js";
29
+ } from "./chunk-UGTWD35F.js";
30
30
  import {
31
31
  CHANNEL_STARTUP_PROFILE_META_KEY,
32
32
  CHANNEL_STARTUP_PROFILE_VERSION,
33
33
  DAEMON_CHANNEL_DELIVERY_META_KEY,
34
+ DAEMON_MODEL_PROMPT_META_KEY,
34
35
  LOAD_REPLAY_BULK_MODE,
35
36
  LOAD_REPLAY_HIDE_INHERITED_META_KEY,
36
37
  LOAD_REPLAY_META_KEY,
@@ -42,8 +43,9 @@ import {
42
43
  REQUESTED_SESSION_ID_META_KEY,
43
44
  TODO_STOP_GUARD_CONTINUATION_CLAIM_METHOD,
44
45
  TODO_STOP_GUARD_QUEUE_RELEASE_METHOD,
45
- WORKTREE_MCP_DEFER_META_KEY
46
- } from "./chunk-UKZEXS6K.js";
46
+ WORKTREE_MCP_DEFER_META_KEY,
47
+ isValidTrustedModelPrompt
48
+ } from "./chunk-R574ATRM.js";
47
49
  import {
48
50
  BranchWhilePromptActiveError,
49
51
  CancelSentinelCollisionError,
@@ -71,9 +73,12 @@ import {
71
73
  } from "./chunk-6PLDPT2C.js";
72
74
  import {
73
75
  CHANNEL_DELIVERY_ERROR_CODES,
76
+ LIVE_TASK_TOOL_NAMES,
77
+ MAX_LIVE_SCREEN_CONTEXT_TEXT_CHARS,
78
+ MAX_LIVE_SPEAK_TO_USER_MESSAGE_CHARS,
74
79
  MAX_SUB_SESSION_NAME_CHARS,
75
80
  MAX_SUB_SESSION_PROMPT_CHARS
76
- } from "./chunk-BK2UNYWD.js";
81
+ } from "./chunk-HIBNSEJE.js";
77
82
  import {
78
83
  EXTERNAL_TOOL_GUARD_READY_META_KEY,
79
84
  EXTERNAL_TOOL_GUARD_REQUIRED_VALUE,
@@ -95,7 +100,7 @@ import {
95
100
  metadataBudgetBytes,
96
101
  normalizeSnapshotPayload,
97
102
  stableSessionArtifactId
98
- } from "./chunk-DOA7MCDY.js";
103
+ } from "./chunk-A4VTILZT.js";
99
104
  import {
100
105
  DAEMON_TRACEPARENT_META_KEY,
101
106
  DAEMON_TRACESTATE_META_KEY
@@ -104,7 +109,7 @@ import {
104
109
  INVOCATION_CONTEXT_META_KEY,
105
110
  PRIVATE_ACP_CAPABILITY_ENV,
106
111
  PRIVATE_PARENT_CAPABILITY_META_KEY
107
- } from "./chunk-O656RSMC.js";
112
+ } from "./chunk-PX5DNLSA.js";
108
113
  import {
109
114
  init_esbuild_shims
110
115
  } from "./chunk-5O2XNYP6.js";
@@ -1835,7 +1840,7 @@ function sliceLineRange(content, startLine, endLine) {
1835
1840
  }
1836
1841
  __name(sliceLineRange, "sliceLineRange");
1837
1842
  var BridgeClient = class {
1838
- constructor(resolveEntry, resolvePendingRestoreEvents, mediator, permissionTimeoutMs, maxPendingPerSession, fileSystem, onModelPromoted, onModePromoted, clientMcpSender, ownsSession = () => true, onTokenUsage, onCreateSubSession, onGenerationEvent, onWorkspaceGenerationEvent, onChannelDelivery, hasSessionSpawnInFlight = () => false, externalToolGuard) {
1843
+ constructor(resolveEntry, resolvePendingRestoreEvents, mediator, permissionTimeoutMs, maxPendingPerSession, fileSystem, onModelPromoted, onModePromoted, clientMcpSender, ownsSession = () => true, onTokenUsage, onCreateSubSession, onGenerationEvent, onWorkspaceGenerationEvent, onChannelDelivery, hasSessionSpawnInFlight = () => false, getLiveScreenContextCaptureHandler = () => void 0, getLiveTaskToolRequestHandler = () => void 0, getLiveSpeakToUserHandler = () => void 0, externalToolGuard) {
1839
1844
  this.resolveEntry = resolveEntry;
1840
1845
  this.resolvePendingRestoreEvents = resolvePendingRestoreEvents;
1841
1846
  this.mediator = mediator;
@@ -1852,6 +1857,9 @@ var BridgeClient = class {
1852
1857
  this.onWorkspaceGenerationEvent = onWorkspaceGenerationEvent;
1853
1858
  this.onChannelDelivery = onChannelDelivery;
1854
1859
  this.hasSessionSpawnInFlight = hasSessionSpawnInFlight;
1860
+ this.getLiveScreenContextCaptureHandler = getLiveScreenContextCaptureHandler;
1861
+ this.getLiveTaskToolRequestHandler = getLiveTaskToolRequestHandler;
1862
+ this.getLiveSpeakToUserHandler = getLiveSpeakToUserHandler;
1855
1863
  this.externalToolGuard = externalToolGuard;
1856
1864
  }
1857
1865
  static {
@@ -2130,6 +2138,15 @@ var BridgeClient = class {
2130
2138
  if (method === SERVE_CONTROL_EXT_METHODS.createSubSession) {
2131
2139
  return this.handleCreateSubSession(params);
2132
2140
  }
2141
+ if (method === SERVE_CONTROL_EXT_METHODS.liveCaptureScreenContext) {
2142
+ return this.handleLiveScreenContextCapture(params);
2143
+ }
2144
+ if (method === SERVE_CONTROL_EXT_METHODS.liveTaskTool) {
2145
+ return this.handleLiveTaskTool(params);
2146
+ }
2147
+ if (method === SERVE_CONTROL_EXT_METHODS.liveSpeakToUser) {
2148
+ return this.handleLiveSpeakToUser(params);
2149
+ }
2133
2150
  if (method === SERVE_CONTROL_EXT_METHODS.channelDelivery) {
2134
2151
  return this.handleChannelDelivery(params);
2135
2152
  }
@@ -2484,6 +2501,71 @@ var BridgeClient = class {
2484
2501
  ...result.parentSessionPersisted !== void 0 ? { parentSessionPersisted: result.parentSessionPersisted } : {}
2485
2502
  };
2486
2503
  }
2504
+ async handleLiveScreenContextCapture(params) {
2505
+ const handler = this.getLiveScreenContextCaptureHandler();
2506
+ if (!handler) {
2507
+ throw RequestError.methodNotFound(
2508
+ SERVE_CONTROL_EXT_METHODS.liveCaptureScreenContext
2509
+ );
2510
+ }
2511
+ const callerSessionId = params["callerSessionId"];
2512
+ if (typeof callerSessionId !== "string" || callerSessionId.length === 0 || !this.ownsSession(callerSessionId)) {
2513
+ throw RequestError.invalidParams(
2514
+ void 0,
2515
+ "`callerSessionId` is required and must name a session owned by this connection"
2516
+ );
2517
+ }
2518
+ const result = await handler({ callerSessionId });
2519
+ if (result.appName.length === 0 || result.appName.length > 512 || result.windowTitle !== void 0 && result.windowTitle.length > 2048 || result.accessibilityText.length > MAX_LIVE_SCREEN_CONTEXT_TEXT_CHARS || result.screenshotPath.length === 0 || result.screenshotPath.length > 4096) {
2520
+ throw RequestError.internalError(void 0, "Invalid Appshot result.");
2521
+ }
2522
+ return {
2523
+ appName: result.appName,
2524
+ ...result.windowTitle ? { windowTitle: result.windowTitle } : {},
2525
+ accessibilityText: result.accessibilityText,
2526
+ screenshotPath: result.screenshotPath
2527
+ };
2528
+ }
2529
+ async handleLiveTaskTool(params) {
2530
+ const handler = this.getLiveTaskToolRequestHandler();
2531
+ if (!handler) {
2532
+ throw RequestError.methodNotFound(SERVE_CONTROL_EXT_METHODS.liveTaskTool);
2533
+ }
2534
+ const callerSessionId = params["callerSessionId"];
2535
+ const name = params["name"];
2536
+ const args = params["arguments"];
2537
+ if (typeof callerSessionId !== "string" || callerSessionId.length === 0 || !this.ownsSession(callerSessionId) || typeof name !== "string" || !LIVE_TASK_TOOL_NAMES.includes(
2538
+ name
2539
+ ) || typeof args !== "object" || args === null || Array.isArray(args)) {
2540
+ throw RequestError.invalidParams(
2541
+ void 0,
2542
+ "Invalid Live task-tool request."
2543
+ );
2544
+ }
2545
+ return handler({
2546
+ callerSessionId,
2547
+ name,
2548
+ arguments: args
2549
+ });
2550
+ }
2551
+ async handleLiveSpeakToUser(params) {
2552
+ const handler = this.getLiveSpeakToUserHandler();
2553
+ if (!handler) {
2554
+ throw RequestError.methodNotFound(
2555
+ SERVE_CONTROL_EXT_METHODS.liveSpeakToUser
2556
+ );
2557
+ }
2558
+ const callerSessionId = params["callerSessionId"];
2559
+ const message = params["message"];
2560
+ if (typeof callerSessionId !== "string" || callerSessionId.length === 0 || !this.ownsSession(callerSessionId) || typeof message !== "string" || message.trim().length === 0 || message.length > MAX_LIVE_SPEAK_TO_USER_MESSAGE_CHARS) {
2561
+ throw RequestError.invalidParams(
2562
+ void 0,
2563
+ "Invalid Live speak-to-user request."
2564
+ );
2565
+ }
2566
+ await handler({ callerSessionId, message });
2567
+ return { accepted: true };
2568
+ }
2487
2569
  /**
2488
2570
  * Handle child->bridge ACP `extNotification` calls. Recognized methods are
2489
2571
  * `qwen/notify/session/model-update`,
@@ -2493,11 +2575,26 @@ var BridgeClient = class {
2493
2575
  * `qwen/notify/session/prompt-suggestion` (followup assist),
2494
2576
  * `qwen/notify/session/artifact-event` (hook artifacts),
2495
2577
  * `qwen/notify/session/terminal-sequence`, and
2578
+ * `_qwencode/end_turn` (background-notification turns), and
2496
2579
  * `qwen/notify/session/mcp-budget-event` — each translated into a
2497
2580
  * session-scoped SSE frame. Unknown methods are dropped silently for
2498
2581
  * forward-compat.
2499
2582
  */
2500
2583
  async extNotification(method, params) {
2584
+ if (method === "_qwencode/end_turn") {
2585
+ const sessionId2 = params["sessionId"];
2586
+ const reason = params["reason"];
2587
+ if (typeof sessionId2 !== "string" || sessionId2.length === 0 || typeof reason !== "string" || reason.length === 0 || reason.length > 128 || params["source"] !== "background_notification") {
2588
+ return;
2589
+ }
2590
+ const entry = this.resolveEntry(sessionId2);
2591
+ if (!entry || !this.ownsSession(sessionId2)) return;
2592
+ entry.events.publish({
2593
+ type: "background_notification_turn_complete",
2594
+ data: { sessionId: sessionId2, reason }
2595
+ });
2596
+ return;
2597
+ }
2501
2598
  if (method === "qwen/notify/session/generation/event") {
2502
2599
  const sessionId2 = params["sessionId"];
2503
2600
  const requestId = params["requestId"];
@@ -5993,6 +6090,9 @@ var DEFAULT_MAX_PENDING_PER_SESSION = 64;
5993
6090
  var DEFAULT_SESSION_REAP_INTERVAL_MS = 6e4;
5994
6091
  var DEFAULT_SESSION_IDLE_TIMEOUT_MS = 30 * 6e4;
5995
6092
  function createAcpSessionBridge(opts) {
6093
+ let liveScreenContextCaptureHandler;
6094
+ let liveTaskToolRequestHandler;
6095
+ let liveSpeakToUserHandler;
5996
6096
  const defaultSessionScope = opts.sessionScope ?? "single";
5997
6097
  let maxSessions;
5998
6098
  if (opts.maxSessions === void 0) {
@@ -6560,6 +6660,9 @@ function createAcpSessionBridge(opts) {
6560
6660
  },
6561
6661
  opts.onChannelDelivery,
6562
6662
  () => channelInfo?.sessionIds === sessionIds && channelInfo.sessionSpawnsInFlight > 0,
6663
+ () => liveScreenContextCaptureHandler,
6664
+ () => liveTaskToolRequestHandler,
6665
+ () => liveSpeakToUserHandler,
6563
6666
  opts.externalToolGuard
6564
6667
  );
6565
6668
  connection = new ClientSideConnection(() => client, channel.stream);
@@ -7750,9 +7853,15 @@ function createAcpSessionBridge(opts) {
7750
7853
  };
7751
7854
  }
7752
7855
  if (action === "load") {
7856
+ const liveJournal = snapshot.liveJournal.map((event) => {
7857
+ if (!entry.activePromptId || event.type !== "history_truncated" || !event.data || typeof event.data !== "object" || event.data.scope !== "live_journal") {
7858
+ return event;
7859
+ }
7860
+ return { ...event, promptId: entry.activePromptId };
7861
+ });
7753
7862
  return {
7754
7863
  compactedReplay: snapshot.compactedTurns,
7755
- liveJournal: snapshot.liveJournal,
7864
+ liveJournal,
7756
7865
  lastEventId: snapshot.lastEventId,
7757
7866
  eventEpoch,
7758
7867
  ...replayStatus,
@@ -7923,6 +8032,7 @@ function createAcpSessionBridge(opts) {
7923
8032
  return {
7924
8033
  sessionId: existing.sessionId,
7925
8034
  workspaceCwd: existing.workspaceCwd,
8035
+ ...existing.effectiveCwd !== existing.workspaceCwd ? { currentCwd: existing.effectiveCwd } : {},
7926
8036
  attached: true,
7927
8037
  clientId,
7928
8038
  createdAt: existing.createdAt,
@@ -8120,6 +8230,7 @@ function createAcpSessionBridge(opts) {
8120
8230
  return {
8121
8231
  sessionId: racedEntry.sessionId,
8122
8232
  workspaceCwd: racedEntry.workspaceCwd,
8233
+ ...racedEntry.effectiveCwd !== racedEntry.workspaceCwd ? { currentCwd: racedEntry.effectiveCwd } : {},
8123
8234
  attached: true,
8124
8235
  clientId: clientId2,
8125
8236
  createdAt: racedEntry.createdAt,
@@ -8355,6 +8466,15 @@ function createAcpSessionBridge(opts) {
8355
8466
  __name(closeSessionImpl, "closeSessionImpl");
8356
8467
  startSessionReaper();
8357
8468
  const bridgeApi = {
8469
+ setLiveScreenContextCaptureHandler(handler) {
8470
+ liveScreenContextCaptureHandler = handler;
8471
+ },
8472
+ setLiveTaskToolRequestHandler(handler) {
8473
+ liveTaskToolRequestHandler = handler;
8474
+ },
8475
+ setLiveSpeakToUserHandler(handler) {
8476
+ liveSpeakToUserHandler = handler;
8477
+ },
8358
8478
  getDaemonStatusSnapshot() {
8359
8479
  return {
8360
8480
  limits: {
@@ -8478,6 +8598,7 @@ function createAcpSessionBridge(opts) {
8478
8598
  return {
8479
8599
  sessionId: existing.sessionId,
8480
8600
  workspaceCwd: existing.workspaceCwd,
8601
+ ...existing.effectiveCwd !== existing.workspaceCwd ? { currentCwd: existing.effectiveCwd } : {},
8481
8602
  attached: true,
8482
8603
  clientId,
8483
8604
  createdAt: existing.createdAt,
@@ -8581,6 +8702,12 @@ function createAcpSessionBridge(opts) {
8581
8702
  entry,
8582
8703
  context?.clientId
8583
8704
  );
8705
+ const modelPrompt = context?.modelPrompt;
8706
+ if (modelPrompt !== void 0 && !isValidTrustedModelPrompt(modelPrompt)) {
8707
+ throw new TypeError(
8708
+ "Bridge modelPrompt must be a non-empty bounded string."
8709
+ );
8710
+ }
8584
8711
  if (signal?.aborted) {
8585
8712
  throw new DOMException("Prompt aborted", "AbortError");
8586
8713
  }
@@ -8627,6 +8754,14 @@ function createAcpSessionBridge(opts) {
8627
8754
  state: isQueued ? "queued" : "running"
8628
8755
  };
8629
8756
  entry.pendingPromptList.push(pendingEntry);
8757
+ try {
8758
+ context?.onPromptAdmitted?.();
8759
+ } catch (error) {
8760
+ opts.onDiagnosticLine?.(
8761
+ `qwen serve: prompt admission observer failed for session=${sessionId}: ${error instanceof Error ? error.message : String(error)}`,
8762
+ "warn"
8763
+ );
8764
+ }
8630
8765
  const deadlineMs = context?.deadlineMs;
8631
8766
  const hasDeadline = typeof deadlineMs === "number" && Number.isFinite(deadlineMs) && deadlineMs > 0;
8632
8767
  let deadlineReject;
@@ -8755,6 +8890,7 @@ function createAcpSessionBridge(opts) {
8755
8890
  delete meta[PRIVATE_PARENT_CAPABILITY_META_KEY];
8756
8891
  delete meta[DAEMON_CONTINUE_META_KEY];
8757
8892
  delete meta[DAEMON_CHANNEL_DELIVERY_META_KEY];
8893
+ delete meta[DAEMON_MODEL_PROMPT_META_KEY];
8758
8894
  if (isRetry) {
8759
8895
  meta[DAEMON_RETRY_META_KEY] = true;
8760
8896
  }
@@ -8764,6 +8900,9 @@ function createAcpSessionBridge(opts) {
8764
8900
  if (context?.channelDelivery) {
8765
8901
  meta[DAEMON_CHANNEL_DELIVERY_META_KEY] = context.channelDelivery;
8766
8902
  }
8903
+ if (modelPrompt !== void 0) {
8904
+ meta[DAEMON_MODEL_PROMPT_META_KEY] = modelPrompt;
8905
+ }
8767
8906
  meta[INVOCATION_CONTEXT_META_KEY] = invocationContext;
8768
8907
  if (Object.keys(meta).length > 0) {
8769
8908
  copy._meta = meta;
@@ -9292,7 +9431,8 @@ function createAcpSessionBridge(opts) {
9292
9431
  {
9293
9432
  sessionId,
9294
9433
  path: req.path,
9295
- ...req.allowedRoots ? { allowedRoots: req.allowedRoots } : {}
9434
+ ...req.allowedRoots ? { allowedRoots: req.allowedRoots } : {},
9435
+ ...req.managedRelocation ? { managedRelocation: req.managedRelocation } : {}
9296
9436
  }
9297
9437
  );
9298
9438
  const extResult = raw;
@@ -10030,6 +10170,20 @@ function createAcpSessionBridge(opts) {
10030
10170
  refreshed: result.refreshed ?? false
10031
10171
  };
10032
10172
  },
10173
+ async setSessionLiveConversationActive(sessionId, active) {
10174
+ await requestSessionStatus(
10175
+ sessionId,
10176
+ SERVE_CONTROL_EXT_METHODS.sessionLiveConversation,
10177
+ { active }
10178
+ );
10179
+ },
10180
+ async appendSessionLiveTranscript(sessionId, entries, model) {
10181
+ await requestSessionStatus(
10182
+ sessionId,
10183
+ SERVE_CONTROL_EXT_METHODS.sessionLiveTranscript,
10184
+ { entries, model }
10185
+ );
10186
+ },
10033
10187
  async setSessionApprovalMode(sessionId, mode, opts2, context) {
10034
10188
  const entry = byId.get(sessionId);
10035
10189
  if (!entry) throw new SessionNotFoundError(sessionId);
@@ -10237,6 +10391,24 @@ function createAcpSessionBridge(opts) {
10237
10391
  entry.midTurnMessageQueue.splice(index, 1);
10238
10392
  return { removed: true };
10239
10393
  },
10394
+ async enqueueBackgroundNotification(sessionId, notification) {
10395
+ const entry = byId.get(sessionId);
10396
+ if (!entry) throw new SessionNotFoundError(sessionId);
10397
+ const info = channelInfoForEntry(entry);
10398
+ if (!info || info.isDying) throw new SessionNotFoundError(sessionId);
10399
+ const response = await Promise.race([
10400
+ withTimeout(
10401
+ entry.connection.extMethod(
10402
+ SERVE_CONTROL_EXT_METHODS.sessionBackgroundNotification,
10403
+ { sessionId, ...notification }
10404
+ ),
10405
+ initTimeoutMs,
10406
+ SERVE_CONTROL_EXT_METHODS.sessionBackgroundNotification
10407
+ ),
10408
+ getTransportClosedReject(entry)
10409
+ ]);
10410
+ return { sessionId, accepted: response["accepted"] === true };
10411
+ },
10240
10412
  async generateSessionBtw(sessionId, question, signal, _context) {
10241
10413
  const entry = byId.get(sessionId);
10242
10414
  if (!entry) throw new SessionNotFoundError(sessionId);
@@ -11119,6 +11291,7 @@ export {
11119
11291
  SessionArtifactAuthorizationError,
11120
11292
  SESSION_SOURCE_META_KEY,
11121
11293
  parseSessionSource,
11294
+ isA2uiToolMeta,
11122
11295
  extractErrorMessage,
11123
11296
  extractErrorCode,
11124
11297
  classifyTurnErrorKind,
@@ -2,20 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  getExtensionManager
5
- } from "./chunk-C4GRKMUL.js";
5
+ } from "./chunk-G5NNWEYE.js";
6
6
  import {
7
7
  parseChannelConfig
8
- } from "./chunk-7GYP5COR.js";
8
+ } from "./chunk-LAAFLUQV.js";
9
9
  import {
10
10
  getPlugin,
11
11
  registerPlugin
12
- } from "./chunk-DTAPI453.js";
12
+ } from "./chunk-EMYZIABH.js";
13
13
  import {
14
14
  sanitizeLogText
15
15
  } from "./chunk-DIEFUBV6.js";
16
16
  import {
17
17
  loadSettings
18
- } from "./chunk-YUVTZ4UH.js";
18
+ } from "./chunk-PPUOYL77.js";
19
19
  import {
20
20
  hashDaemonWorkspace
21
21
  } from "./chunk-MGSSJT27.js";
@@ -25,7 +25,7 @@ import {
25
25
  import {
26
26
  writeStderrLine,
27
27
  writeStdoutLine
28
- } from "./chunk-OWAK7LMW.js";
28
+ } from "./chunk-KGJGEEVR.js";
29
29
  import {
30
30
  init_esbuild_shims
31
31
  } from "./chunk-5O2XNYP6.js";
@@ -5,10 +5,10 @@ import {
5
5
  } from "./chunk-DP3IHZGG.js";
6
6
  import {
7
7
  t
8
- } from "./chunk-546CDN6D.js";
8
+ } from "./chunk-KHUA3NQV.js";
9
9
  import {
10
10
  getNpmCliPath
11
- } from "./chunk-ZQL73PPE.js";
11
+ } from "./chunk-JE44IPH6.js";
12
12
  import {
13
13
  getPackageJson
14
14
  } from "./chunk-VJNBRRZG.js";