@qwen-code/qwen-code 0.21.6-preview.0 → 0.21.7-nightly.20260807.fca8f3c1f

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 (309) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +19 -9
  2. package/bundled/qc-helper/docs/features/channels/dingtalk.md +1 -1
  3. package/bundled/qc-helper/docs/features/channels/github.md +31 -19
  4. package/bundled/qc-helper/docs/features/code-review.md +30 -1
  5. package/bundled/qc-helper/docs/qwen-serve.md +1 -1
  6. package/bundled/review/SKILL.md +59 -22
  7. package/chunks/{MaxSizedBox-A3UYJS6B.js → MaxSizedBox-NHT7OJY4.js} +38 -38
  8. package/chunks/{StandaloneSessionPicker-NGLY26I4.js → StandaloneSessionPicker-B2BHAP6E.js} +56 -55
  9. package/chunks/{acp-startup-profiler-3RICG2YW.js → acp-startup-profiler-ORIQ2CCQ.js} +2 -2
  10. package/chunks/{acpAgent-V54T2EEL.js → acpAgent-ITFWQGW2.js} +1091 -150
  11. package/chunks/{agent-2P53VL2L.js → agent-CQ66PAFN.js} +35 -35
  12. package/chunks/{agent-headless-6X4GCFRD.js → agent-headless-XFODWIW2.js} +35 -35
  13. package/chunks/{anthropicContentGenerator-3CAHEZBM.js → anthropicContentGenerator-DTMVEL5M.js} +7 -7
  14. package/chunks/{artifact-tool-RROCCJDA.js → artifact-tool-U4VOZIK5.js} +2 -2
  15. package/chunks/{askUserQuestion-2EPPBPUZ.js → askUserQuestion-XOBQLPFA.js} +2 -2
  16. package/chunks/{bridge-TCFMLKHR.js → bridge-5XPZZ43S.js} +41 -41
  17. package/chunks/{channel-management-service-5XPPTWUQ.js → channel-management-service-FSQ7SHYI.js} +1 -1
  18. package/chunks/{channel-settings-store-B4HNMNQV.js → channel-settings-store-ZRWVDSMY.js} +42 -42
  19. package/chunks/{channel-worker-group-SVGPDH2C.js → channel-worker-group-JWQK224X.js} +5 -5
  20. package/chunks/{channel-worker-manager-72ZK2GTS.js → channel-worker-manager-77E3OXRQ.js} +5 -5
  21. package/chunks/{channel-worker-supervisor-NUEDVHX4.js → channel-worker-supervisor-62YWUGP2.js} +3 -3
  22. package/chunks/{chunk-XC656O42.js → chunk-22NBYCPD.js} +3 -3
  23. package/chunks/chunk-2VSTGY6M.js +107 -0
  24. package/chunks/{chunk-MBEMTXQT.js → chunk-3K7FH2KQ.js} +1 -32
  25. package/chunks/{chunk-ZH7G3A4U.js → chunk-3KY5HXE6.js} +4 -4
  26. package/chunks/{chunk-QYPT3QUD.js → chunk-3ULCB3NE.js} +3 -3
  27. package/chunks/{chunk-DOICUTPO.js → chunk-4L3YFXQL.js} +11 -10
  28. package/chunks/{chunk-WIPQR44Y.js → chunk-4UKNQ2HI.js} +3 -3
  29. package/chunks/{chunk-AU3XNTMV.js → chunk-52AXQBAY.js} +3 -3
  30. package/chunks/{chunk-6KEN3RIC.js → chunk-5JFKVENR.js} +3 -3
  31. package/chunks/{chunk-TVFC3XF5.js → chunk-5OYWFYX3.js} +7 -7
  32. package/chunks/{chunk-4E5PO6R7.js → chunk-6IKXD7ZR.js} +4 -4
  33. package/chunks/{chunk-5L6CQ4ZU.js → chunk-6M26GBKX.js} +2 -2
  34. package/chunks/{chunk-XOZ2R6XI.js → chunk-7GXFPUOL.js} +3578 -1487
  35. package/chunks/{chunk-4T6QMNX2.js → chunk-7HMDOAIC.js} +185 -12
  36. package/chunks/{chunk-33FNCQSY.js → chunk-7MH4J33A.js} +2 -2
  37. package/chunks/{chunk-2AGOQ7QO.js → chunk-7UFKAV7Y.js} +118 -6
  38. package/chunks/{chunk-JELIWHXD.js → chunk-AOHJKPKL.js} +1 -1
  39. package/chunks/{chunk-SPUDIAHX.js → chunk-ASSORJG6.js} +530 -388
  40. package/chunks/{chunk-GLNBDYUX.js → chunk-AXMWHKXA.js} +6 -2
  41. package/chunks/{chunk-H36SETQS.js → chunk-B2GJNDTV.js} +1 -1
  42. package/chunks/{chunk-RTWF7FF7.js → chunk-BDE433DP.js} +5 -5
  43. package/chunks/{chunk-6D6V55ZQ.js → chunk-BEBG3YE6.js} +1 -1
  44. package/chunks/{chunk-QMBEW7EW.js → chunk-BGG4MBYD.js} +2 -2
  45. package/chunks/{chunk-QL4TN4HS.js → chunk-BRVWYMKV.js} +1 -1
  46. package/chunks/{chunk-6WBWIPBF.js → chunk-BVWVWGLE.js} +2 -2
  47. package/chunks/{chunk-WPKIU4PA.js → chunk-CFJIT7IA.js} +6 -6
  48. package/chunks/{chunk-2UISUFHQ.js → chunk-CJXIIILK.js} +3 -3
  49. package/chunks/{chunk-WK4TJUEA.js → chunk-CKASRHZI.js} +1 -1
  50. package/chunks/{chunk-Z7JILXGX.js → chunk-CNIID3TV.js} +3 -3
  51. package/chunks/{chunk-KKN2IE7Q.js → chunk-CTJLZLB5.js} +1 -1
  52. package/chunks/{chunk-URJHXOSO.js → chunk-CYR3HI5X.js} +3 -3
  53. package/chunks/{chunk-4LKVQFHM.js → chunk-DREZZAZM.js} +2 -2
  54. package/chunks/{chunk-QWUYFMAR.js → chunk-E24IQ3WV.js} +87 -67
  55. package/chunks/{chunk-WXS647W5.js → chunk-E2DXJHVN.js} +3 -3
  56. package/chunks/{chunk-2U7GPHA6.js → chunk-E33LOKRA.js} +1 -1
  57. package/chunks/{chunk-CDHNGCJI.js → chunk-ECTZI76Q.js} +7 -7
  58. package/chunks/{chunk-2DNKEBXY.js → chunk-EI3HZX6C.js} +1 -1
  59. package/chunks/{chunk-U25CMJYY.js → chunk-EKPKKXY2.js} +1 -1
  60. package/chunks/{chunk-432XCUHF.js → chunk-EQL65XGA.js} +1 -1
  61. package/chunks/{chunk-TYERNYH4.js → chunk-EUNWC2VS.js} +2 -2
  62. package/chunks/{chunk-546CDN6D.js → chunk-F4SQY4RB.js} +3 -3
  63. package/chunks/{chunk-NKST54XA.js → chunk-FBPPGNA4.js} +1 -1
  64. package/chunks/{chunk-MFBUJMQ3.js → chunk-FCBM3ZRY.js} +4 -4
  65. package/chunks/{chunk-UH7Z7Y45.js → chunk-FOGU3LJX.js} +1 -1
  66. package/chunks/{chunk-O656RSMC.js → chunk-FTJUO7R2.js} +18 -10
  67. package/chunks/{chunk-E4WHKETF.js → chunk-FVKHVJZQ.js} +2 -49
  68. package/chunks/{chunk-XZCMQUOF.js → chunk-GDXET5XU.js} +31 -3387
  69. package/chunks/{chunk-A5YZ3FA2.js → chunk-GM463R2B.js} +1 -1
  70. package/chunks/{chunk-MOHAWIAW.js → chunk-GNPNYXJB.js} +2 -2
  71. package/chunks/{chunk-HKNSU4WX.js → chunk-GUHLKZ57.js} +198 -35
  72. package/chunks/{chunk-N47ZM2KI.js → chunk-HCVI44SK.js} +12 -12
  73. package/chunks/{chunk-BK2UNYWD.js → chunk-HIBNSEJE.js} +12 -0
  74. package/chunks/{chunk-FDV3CXTD.js → chunk-HMUV7245.js} +3 -3
  75. package/chunks/{chunk-DOA7MCDY.js → chunk-I3LJQR5I.js} +973 -892
  76. package/chunks/{chunk-D7D7RXIJ.js → chunk-IC4Z6LX6.js} +1 -1
  77. package/chunks/{chunk-HU5TUALO.js → chunk-IIJEYBNH.js} +3 -3
  78. package/chunks/{chunk-DTAPI453.js → chunk-IUFV6FYU.js} +2 -2
  79. package/chunks/{chunk-MISUEWB4.js → chunk-J6SZID63.js} +12 -8
  80. package/chunks/{chunk-OWAK7LMW.js → chunk-KGJGEEVR.js} +7 -0
  81. package/chunks/{chunk-C4GRKMUL.js → chunk-KGT25P47.js} +5 -5
  82. package/chunks/{chunk-BFHXDAR7.js → chunk-KKBPOU75.js} +1 -1
  83. package/chunks/{chunk-T4XY5CT4.js → chunk-KNTWLSVD.js} +7 -7
  84. package/chunks/{chunk-3ZRS2XNY.js → chunk-KU4MUGRF.js} +1 -1
  85. package/chunks/{chunk-MGSSJT27.js → chunk-L4N6TIP7.js} +5 -3
  86. package/chunks/{chunk-VDLXPEI5.js → chunk-LFVXMYII.js} +3 -3
  87. package/chunks/{chunk-WVAESIM6.js → chunk-LZC3B5N2.js} +4 -4
  88. package/chunks/{chunk-XSGQKR37.js → chunk-M5RUXX6P.js} +358 -20
  89. package/chunks/{chunk-6O5DVH27.js → chunk-M6HMMKVG.js} +1 -1
  90. package/chunks/{chunk-PQTK2FVO.js → chunk-MA5SUU2Q.js} +4 -4
  91. package/chunks/{chunk-XNZBXQCG.js → chunk-MKVZE4ZJ.js} +1 -1
  92. package/chunks/{chunk-7FUVSN4D.js → chunk-MPLEQFEL.js} +1 -1
  93. package/chunks/{chunk-I7JDGNG6.js → chunk-MVUQRLOH.js} +9 -5
  94. package/chunks/{chunk-GLWP3FDB.js → chunk-MZSJ43WV.js} +31 -2
  95. package/chunks/{chunk-ZPPP6VCL.js → chunk-NG2R4N5O.js} +1 -1
  96. package/chunks/chunk-NKLP3DCK.js +22 -0
  97. package/chunks/{chunk-WIRAPZ62.js → chunk-NLREQJFK.js} +7 -1
  98. package/chunks/{chunk-IKXE3AAC.js → chunk-OCEXSMWS.js} +2 -2
  99. package/chunks/{chunk-3RXUYQJI.js → chunk-OIVKILPI.js} +49 -0
  100. package/chunks/{chunk-LBWNSLJK.js → chunk-ONSZH6VM.js} +2 -2
  101. package/chunks/{chunk-XKTCA6BW.js → chunk-ORTYIRZU.js} +5 -5
  102. package/chunks/{chunk-5CDI4UOY.js → chunk-ORYNZTB7.js} +131 -48
  103. package/chunks/{chunk-DYA25Y7U.js → chunk-OWMAZHIX.js} +1 -1
  104. package/chunks/{chunk-Y5HIDFKZ.js → chunk-P2PTEG3P.js} +4 -4
  105. package/chunks/{chunk-IISDPZ5X.js → chunk-P4PAGFDT.js} +1 -1
  106. package/chunks/{chunk-P7LKADIT.js → chunk-PRYJZGR4.js} +7 -7
  107. package/chunks/{chunk-NYZAL2W2.js → chunk-PVNUY34T.js} +4 -4
  108. package/chunks/{chunk-GTM6IHBB.js → chunk-Q3JQ7OSU.js} +2 -1
  109. package/chunks/{chunk-SQ3ZJOYL.js → chunk-QBUXNKTM.js} +20 -20
  110. package/chunks/{chunk-Z5S6KH2B.js → chunk-QT34NLGU.js} +6 -6
  111. package/chunks/{chunk-UKZEXS6K.js → chunk-R574ATRM.js} +11 -0
  112. package/chunks/{chunk-MVLM6PJK.js → chunk-RFA3YH5R.js} +6 -2
  113. package/chunks/chunk-RGSBTHSU.js +3381 -0
  114. package/chunks/{chunk-3DTM3RPU.js → chunk-S7CV4KO6.js} +3 -3
  115. package/chunks/{chunk-6KZP75GT.js → chunk-SDSQ7C4Y.js} +1 -1
  116. package/chunks/{chunk-YAVY33G4.js → chunk-SEZ556DZ.js} +1 -1
  117. package/chunks/chunk-SOORFWKY.js +155 -0
  118. package/chunks/{chunk-DBIEZC7T.js → chunk-ST774VGY.js} +42 -16
  119. package/chunks/{chunk-X6DV3WKN.js → chunk-T444EKH5.js} +1 -1
  120. package/chunks/{chunk-CJBRIJ7W.js → chunk-T7WJWZCG.js} +3 -3
  121. package/chunks/{chunk-NAYPZ72V.js → chunk-TPQ6RO65.js} +1 -1
  122. package/chunks/{chunk-KVUBYJDM.js → chunk-TZEZYNYD.js} +1 -1
  123. package/chunks/{chunk-YUVTZ4UH.js → chunk-U5G2PZAQ.js} +114 -18
  124. package/chunks/{chunk-XC2VAFVZ.js → chunk-UVX4Y6IN.js} +1 -1
  125. package/chunks/{chunk-WAOLM6SQ.js → chunk-VHINCBEK.js} +1 -1
  126. package/chunks/{chunk-AFZTZLFB.js → chunk-VIOH2OOE.js} +3 -3
  127. package/chunks/{chunk-M744OFVE.js → chunk-W7U4ESW2.js} +1 -1
  128. package/chunks/{chunk-URN76TKR.js → chunk-WCG5O7IP.js} +2 -2
  129. package/chunks/{chunk-QG2ACINA.js → chunk-WIAN5MYB.js} +1 -1
  130. package/chunks/{chunk-ZQL73PPE.js → chunk-WLAO54CV.js} +2 -2
  131. package/chunks/{chunk-EKWNNQQD.js → chunk-X26KCG3L.js} +16 -10
  132. package/chunks/{chunk-AVDEBBMI.js → chunk-X6VISCPN.js} +2 -2
  133. package/chunks/{chunk-A6SX5TAH.js → chunk-XCWO3SMQ.js} +9 -5
  134. package/chunks/{chunk-WVRJKSIG.js → chunk-XR4VN3GB.js} +1 -1
  135. package/chunks/{chunk-BU4BRCPX.js → chunk-Y4F5PBY5.js} +5 -5
  136. package/chunks/{chunk-3PRJYMXC.js → chunk-Y4NGLFGJ.js} +1 -1
  137. package/chunks/{chunk-DG563ZCS.js → chunk-YD26XH5B.js} +3 -3
  138. package/chunks/{chunk-3LGZEYOF.js → chunk-YHEEE624.js} +2 -2
  139. package/chunks/{chunk-QONSRAEV.js → chunk-YP5KH5Y7.js} +1 -1
  140. package/chunks/{chunk-EHMN6SEG.js → chunk-YPQ4IEVV.js} +4 -4
  141. package/chunks/{chunk-CXYBX4AL.js → chunk-Z2MB7HS7.js} +1 -1
  142. package/chunks/{chunk-72DZPDH4.js → chunk-ZFJBQATO.js} +10 -5
  143. package/chunks/{chunk-7GYP5COR.js → chunk-ZXU5UHMI.js} +1 -1
  144. package/chunks/{computer-use-GTOP2CVH.js → computer-use-4WCG6FX3.js} +35 -35
  145. package/chunks/{config-utils-LIRO7NSU.js → config-utils-K7SCOWHD.js} +2 -2
  146. package/chunks/{contextCommand-K6T6RRF3.js → contextCommand-MLJEOUZY.js} +38 -38
  147. package/chunks/{core-runtime-D2626QQU.js → core-runtime-LKSDQXFB.js} +35 -35
  148. package/chunks/{create-sub-session-6EWLAZD5.js → create-sub-session-E4PBYXV5.js} +2 -2
  149. package/chunks/create-sub-session-ZJ7OYXRW.js +772 -0
  150. package/chunks/{cron-create-CCRIULJE.js → cron-create-GRBWYMIJ.js} +4 -4
  151. package/chunks/{cron-delete-FCFW6BGP.js → cron-delete-4CMKBR2M.js} +4 -4
  152. package/chunks/{cron-list-QDBVCHRF.js → cron-list-W7K4ASOA.js} +4 -4
  153. package/chunks/{daemon-CCIX4BMG.js → daemon-SCTQMM7Z.js} +165 -5
  154. package/chunks/{daemon-status-provider-2EHRZZVF.js → daemon-status-provider-2TPABSC6.js} +45 -45
  155. package/chunks/{daemon-trust-policy-B3EPDJDR.js → daemon-trust-policy-U5Q3LRKV.js} +41 -41
  156. package/chunks/{daemon-trust-policy-monitor-MFM5X26G.js → daemon-trust-policy-monitor-REIZABHN.js} +41 -41
  157. package/chunks/{deferred-core-runtime-KXN7HLN7.js → deferred-core-runtime-ONWSGDPN.js} +35 -35
  158. package/chunks/discovery-XLHITE74.js +220 -0
  159. package/chunks/{display-image-GUJA352B.js → display-image-O2XFPQTC.js} +4 -4
  160. package/chunks/{dist-A7H2KKUC.js → dist-K4WWQBHS.js} +277 -98
  161. package/chunks/{dist-IKGVITP3.js → dist-KS4O2NKE.js} +99 -6
  162. package/chunks/{earlyInputCapture-WUNYYFOS.js → earlyInputCapture-Q7CO2QN4.js} +36 -36
  163. package/chunks/{edit-DMFCBP2D.js → edit-PBU33DGY.js} +35 -35
  164. package/chunks/{enter-worktree-5SVBCXFC.js → enter-worktree-WCRF2AA5.js} +35 -35
  165. package/chunks/{enterPlanMode-QUIZFQ4M.js → enterPlanMode-E2RXSZSG.js} +35 -35
  166. package/chunks/{environment-U6QP23VJ.js → environment-KA6OBBY4.js} +38 -38
  167. package/chunks/{errors-GZWFA6ON.js → errors-XYCANYTN.js} +38 -38
  168. package/chunks/{exit-worktree-FUB44KAF.js → exit-worktree-CQLRKE26.js} +35 -35
  169. package/chunks/{exitPlanMode-XSHHYR73.js → exitPlanMode-AP7XQVRL.js} +35 -35
  170. package/chunks/{fast-path-JHQJSIMZ.js → fast-path-DHKCBUUQ.js} +2 -2
  171. package/chunks/{gemini-O44ETOKT.js → gemini-RGYIKOL6.js} +78 -78
  172. package/chunks/{geminiContentGenerator-TTM4TZJM.js → geminiContentGenerator-ZLI7NARI.js} +6 -6
  173. package/chunks/{glob-YECOWTRW.js → glob-R4R7OG4W.js} +35 -35
  174. package/chunks/{goal-tools-3AZKX5WQ.js → goal-tools-APOW6UXL.js} +3 -3
  175. package/chunks/{grep-BZO4LOTA.js → grep-BO5M2UCN.js} +35 -35
  176. package/chunks/{handleAutoUpdate-TOO52D6H.js → handleAutoUpdate-ZTHIKBZM.js} +40 -40
  177. package/chunks/{i18n-ARJYXZQ5.js → i18n-GNC2NNVA.js} +37 -37
  178. package/chunks/{image-gen-J6Q2YBEU.js → image-gen-2XYVOLT5.js} +9 -9
  179. package/chunks/{initializer-CEZ4RPQV.js → initializer-VXLEBSSB.js} +42 -42
  180. package/chunks/{installationInfo-AEGIIQAT.js → installationInfo-QBJ7GECU.js} +36 -36
  181. package/chunks/{keychain-token-storage-7BT4TQ2A.js → keychain-token-storage-TVAMTNP7.js} +2 -2
  182. package/chunks/{list-7XLPV5GC.js → list-VLARA3NO.js} +44 -44
  183. package/chunks/{list-agents-GC4BRET7.js → list-agents-KFFIIS2G.js} +2 -2
  184. package/chunks/{loadedSettingsAdapter-YK5SBHOT.js → loadedSettingsAdapter-AQWO3DKQ.js} +41 -41
  185. package/chunks/{loggingContentGenerator-I7QDXS43.js → loggingContentGenerator-JPOQJB44.js} +17 -17
  186. package/chunks/{loop-wakeup-SQQSBMEY.js → loop-wakeup-TLMJPMMP.js} +5 -5
  187. package/chunks/{ls-63CC3NNX.js → ls-UVVE2XGE.js} +4 -4
  188. package/chunks/{lsp-P6NVJVNT.js → lsp-QMEA2VLB.js} +2 -2
  189. package/chunks/{managed-npm-update-YSL7PA7G.js → managed-npm-update-LEIM7R7Z.js} +48 -39
  190. package/chunks/{mcp-RKFQZXP6.js → mcp-WDSZDEUK.js} +41 -41
  191. package/chunks/{monitor-QHHJIKGL.js → monitor-XEIMDJKT.js} +35 -35
  192. package/chunks/{nonInteractiveCli-XEBIE7MG.js → nonInteractiveCli-GA7CHB27.js} +75 -75
  193. package/chunks/{notebook-edit-SG7X2EQA.js → notebook-edit-HBVYJEYN.js} +35 -35
  194. package/chunks/{openaiContentGenerator-63CVR33K.js → openaiContentGenerator-D6DYXZD3.js} +19 -19
  195. package/chunks/{pidfile-I3CXJGQD.js → pidfile-DWDNVKET.js} +36 -36
  196. package/chunks/{processUtils-LJ3DSANX.js → processUtils-Y2SQQ2RR.js} +2 -2
  197. package/chunks/{qwenContentGenerator-JINBVCH6.js → qwenContentGenerator-MTXRA2IT.js} +40 -40
  198. package/chunks/{qwenOAuth2-SY2O3NRR.js → qwenOAuth2-HQSYUQ2E.js} +8 -8
  199. package/chunks/{read-file-PGTXF25I.js → read-file-IUAEEXBO.js} +10 -10
  200. package/chunks/{read-mcp-resource-RTSSEER5.js → read-mcp-resource-2TNSJTC3.js} +2 -2
  201. package/chunks/{record-artifact-E6AWQU2Z.js → record-artifact-RAON52FC.js} +3 -3
  202. package/chunks/{resumeHistoryUtils-FB2NFVZ2.js → resumeHistoryUtils-J244DBOH.js} +42 -41
  203. package/chunks/{ripGrep-IY3KGPM6.js → ripGrep-NBENZCHO.js} +35 -35
  204. package/chunks/{run-qwen-serve-UYEMGPKA.js → run-qwen-serve-2G754FJE.js} +516 -87
  205. package/chunks/{runtime-CG3BKRFE.js → runtime-KBSESBIX.js} +44 -44
  206. package/chunks/{scheduler-VFUVGDE5.js → scheduler-INHLDC26.js} +35 -35
  207. package/chunks/{sdk-exporters-http-IL2346MJ.js → sdk-exporters-http-KHAB5JSD.js} +2 -2
  208. package/chunks/{sdk-impl-SYKGVWOZ.js → sdk-impl-KD7FSTC3.js} +2 -2
  209. package/chunks/{send-message-TL6FIMMN.js → send-message-ZM7MRUGP.js} +5 -5
  210. package/chunks/{serve-ZCCQ2G2L.js → serve-G2BCUQNM.js} +42 -42
  211. package/chunks/{server-WS7LWXPP.js → server-3BD6DIW3.js} +7952 -611
  212. package/chunks/{session-IQLCT32T.js → session-HGXANTYW.js} +78 -78
  213. package/chunks/{settings-NX4EUIE6.js → settings-VYFBEZ2R.js} +40 -40
  214. package/chunks/{shell-THDYM4CS.js → shell-3LBKDXAW.js} +35 -35
  215. package/chunks/{skill-OXXZBNQB.js → skill-W576UXSL.js} +14 -14
  216. package/chunks/{skill-settings-T3JZ33T2.js → skill-settings-ZNUIJMJT.js} +40 -40
  217. package/chunks/{spawnChannel-COLJMSA7.js → spawnChannel-AUUVHV5S.js} +37 -37
  218. package/chunks/{standalone-update-ICW7H5IF.js → standalone-update-WEQVL7DN.js} +38 -38
  219. package/chunks/{startInteractiveUI-6BDRXSMF.js → startInteractiveUI-V3B5M5PY.js} +473 -233
  220. package/chunks/{stdioHelpers-HGIYTWAY.js → stdioHelpers-7A2EE64Z.js} +5 -3
  221. package/chunks/{syntheticOutput-BN7E626U.js → syntheticOutput-ZLCUTKO2.js} +3 -3
  222. package/chunks/{task-create-2X4UP4F3.js → task-create-CQP5UEA3.js} +9 -9
  223. package/chunks/{task-list-WOLJPZ64.js → task-list-XLEZOJXP.js} +5 -5
  224. package/chunks/{task-stop-TNXRNAL2.js → task-stop-7ZQM5CFF.js} +2 -2
  225. package/chunks/{task-update-VDUSN36E.js → task-update-JA75U2SN.js} +9 -9
  226. package/chunks/{team-create-BCSMDK4Z.js → team-create-4TEVQYI5.js} +35 -35
  227. package/chunks/{team-delete-D2VMSDOT.js → team-delete-MHY3UZGY.js} +5 -5
  228. package/chunks/{team-plan-approval-B5YRLJFV.js → team-plan-approval-UOSTAB7R.js} +35 -35
  229. package/chunks/{terminal-image-renderer-PW6Z6VFY.js → terminal-image-renderer-VO6W4YSM.js} +41 -36
  230. package/chunks/{theme-manager-CMVKD2JH.js → theme-manager-HOYUCAJ5.js} +36 -36
  231. package/chunks/{todoWrite-MHWHO5UO.js → todoWrite-UPVOHYGD.js} +4 -4
  232. package/chunks/{tool-search-SQTUSG6P.js → tool-search-NRMWTH3L.js} +13 -13
  233. package/chunks/{total-session-admission-XAXOSE46.js → total-session-admission-KHBGXD6A.js} +41 -41
  234. package/chunks/{trustedFolders-Z2UAEG2V.js → trustedFolders-AH242HLO.js} +37 -37
  235. package/chunks/{update-relaunch-JBLI6LJF.js → update-relaunch-R3M25PND.js} +6 -6
  236. package/chunks/{updateCheck-FDAVGOFT.js → updateCheck-4O2CMHMG.js} +39 -39
  237. package/chunks/{useAutoAcceptIndicator-PDZFIYRM.js → useAutoAcceptIndicator-KZSKP3RY.js} +44 -44
  238. package/chunks/{validateNonInterActiveAuth-Q4763ONQ.js → validateNonInterActiveAuth-7AXUFNBE.js} +72 -72
  239. package/chunks/{version-C7MPCGWD.js → version-BE7H2MTM.js} +1 -1
  240. package/chunks/{web-fetch-L7RAPOJB.js → web-fetch-C7FQ24BP.js} +13 -13
  241. package/chunks/{web-search-IDOYUOWX.js → web-search-7FPW6ECJ.js} +9 -9
  242. package/chunks/web-shell-static-O73YPVVC.js +33 -0
  243. package/chunks/{workflow-HXURUJB5.js → workflow-3LAE5AL7.js} +36 -36
  244. package/chunks/{workspace-providers-status-JZ3GPWNU.js → workspace-providers-status-UXZKS6SE.js} +44 -44
  245. package/chunks/{workspace-registration-store-SM2PWB6L.js → workspace-registration-store-DSS57KLV.js} +1 -1
  246. package/chunks/{workspace-registry-6W4ES7BJ.js → workspace-registry-VOSOZ4WU.js} +41 -41
  247. package/chunks/{workspace-service-V47ZFJRX.js → workspace-service-MWWHXZGQ.js} +46 -46
  248. package/chunks/{workspace-skills-status-6ZQ45XKA.js → workspace-skills-status-DN56VF74.js} +42 -42
  249. package/chunks/{workspace-trust-reconciler-6V25LMCN.js → workspace-trust-reconciler-3GOQYMND.js} +50 -50
  250. package/chunks/{write-file-H2QOF25K.js → write-file-B4YZQZ2K.js} +35 -35
  251. package/chunks/{zoom-image-JTUSS43N.js → zoom-image-L4QKXYG2.js} +10 -10
  252. package/cli.js +15 -15
  253. package/package.json +3 -3
  254. package/web-shell/assets/{arc-DtI1rZcQ.js → arc-Ip-FFDJ0.js} +1 -1
  255. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BPZwSVct.js → architectureDiagram-3BPJPVTR-CChqgwIb.js} +1 -1
  256. package/web-shell/assets/{blockDiagram-GPEHLZMM-BIQ03j4C.js → blockDiagram-GPEHLZMM-BHN-Tfss.js} +1 -1
  257. package/web-shell/assets/{c4Diagram-AAUBKEIU-CB0RyFGm.js → c4Diagram-AAUBKEIU-BhyjzDjN.js} +1 -1
  258. package/web-shell/assets/channel-Cu8qd6OB.js +1 -0
  259. package/web-shell/assets/{chunk-2J33WTMH-B3WoS-4H.js → chunk-2J33WTMH-BB9eyHrx.js} +1 -1
  260. package/web-shell/assets/{chunk-4BX2VUAB-C98xYZ1X.js → chunk-4BX2VUAB-BeV7ce_J.js} +1 -1
  261. package/web-shell/assets/{chunk-55IACEB6-CbTIWRwQ.js → chunk-55IACEB6-DO7kXDiV.js} +1 -1
  262. package/web-shell/assets/{chunk-727SXJPM-DWGnKTPu.js → chunk-727SXJPM-B27MPznD.js} +1 -1
  263. package/web-shell/assets/{chunk-AQP2D5EJ-4__QyCEX.js → chunk-AQP2D5EJ-DHIjqjD_.js} +1 -1
  264. package/web-shell/assets/{chunk-FMBD7UC4-DFtG1YCW.js → chunk-FMBD7UC4-DabMqyN2.js} +1 -1
  265. package/web-shell/assets/{chunk-ND2GUHAM-rvAhW51N.js → chunk-ND2GUHAM-Dw7Nnnxc.js} +1 -1
  266. package/web-shell/assets/{chunk-QZHKN3VN-DfiU9pwZ.js → chunk-QZHKN3VN-DdaZew1Q.js} +1 -1
  267. package/web-shell/assets/classDiagram-4FO5ZUOK-BI3KrXhq.js +1 -0
  268. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BI3KrXhq.js +1 -0
  269. package/web-shell/assets/{cose-bilkent-S5V4N54A-Cc4EIdxu.js → cose-bilkent-S5V4N54A-CgBpCYH5.js} +1 -1
  270. package/web-shell/assets/{dagre-BM42HDAG-CZNj4dGW.js → dagre-BM42HDAG-BB4IU8G0.js} +1 -1
  271. package/web-shell/assets/{diagram-2AECGRRQ-D5tiqQCr.js → diagram-2AECGRRQ-BcUTHU37.js} +1 -1
  272. package/web-shell/assets/{diagram-5GNKFQAL-pwzw0jVO.js → diagram-5GNKFQAL-B6Lyihyv.js} +1 -1
  273. package/web-shell/assets/{diagram-KO2AKTUF-4CWiM00x.js → diagram-KO2AKTUF-CRIJOjpG.js} +1 -1
  274. package/web-shell/assets/{diagram-LMA3HP47-Dd7rc7Qf.js → diagram-LMA3HP47-DdNiwWWT.js} +1 -1
  275. package/web-shell/assets/{diagram-OG6HWLK6-_vzV52ml.js → diagram-OG6HWLK6-Dz4b32Do.js} +1 -1
  276. package/web-shell/assets/{erDiagram-TEJ5UH35-CqbE2bx_.js → erDiagram-TEJ5UH35-D-8NGw77.js} +1 -1
  277. package/web-shell/assets/{flowDiagram-I6XJVG4X-CaxNr7w4.js → flowDiagram-I6XJVG4X-Dun26LyM.js} +1 -1
  278. package/web-shell/assets/{ganttDiagram-6RSMTGT7-AGjrtfUA.js → ganttDiagram-6RSMTGT7-F10Hu1Gc.js} +1 -1
  279. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-ADG2zSkc.js → gitGraphDiagram-PVQCEYII-Bf8Ez6-D.js} +1 -1
  280. package/web-shell/assets/{index-BOryKCqt.js → index-BXqw-nGq.js} +1 -1
  281. package/web-shell/assets/index-QQlUCJGg.css +5 -0
  282. package/web-shell/assets/index-hcgjV7vS.js +1768 -0
  283. package/web-shell/assets/{infoDiagram-5YYISTIA-CE3B_IoZ.js → infoDiagram-5YYISTIA-DVgTMLvj.js} +1 -1
  284. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CN-Frhoi.js → ishikawaDiagram-YF4QCWOH-uT-KepvK.js} +1 -1
  285. package/web-shell/assets/{journeyDiagram-JHISSGLW-CGgezS93.js → journeyDiagram-JHISSGLW-Vg_XadQf.js} +1 -1
  286. package/web-shell/assets/{kanban-definition-UN3LZRKU-BqWijky5.js → kanban-definition-UN3LZRKU-Dyv1ESBE.js} +1 -1
  287. package/web-shell/assets/{linear-D8sfpZf6.js → linear-BMIepYX3.js} +1 -1
  288. package/web-shell/assets/{mermaid.core-3PA4QrzM.js → mermaid.core-zA8pJ9ag.js} +5 -5
  289. package/web-shell/assets/{mindmap-definition-RKZ34NQL-D9QxwiCY.js → mindmap-definition-RKZ34NQL-BCW_BZ_5.js} +1 -1
  290. package/web-shell/assets/{pieDiagram-4H26LBE5-Bioaf6uE.js → pieDiagram-4H26LBE5-DseNEGp2.js} +1 -1
  291. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DBb2AS73.js → quadrantDiagram-W4KKPZXB-6Z7wr1Fi.js} +1 -1
  292. package/web-shell/assets/{requirementDiagram-4Y6WPE33-DXOvZ3KB.js → requirementDiagram-4Y6WPE33-CVOlCRPf.js} +1 -1
  293. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-D9qg09Dm.js → sankeyDiagram-5OEKKPKP-CGhgrUJZ.js} +1 -1
  294. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DSAUIfpw.js → sequenceDiagram-3UESZ5HK-dlqmpLuQ.js} +1 -1
  295. package/web-shell/assets/{stateDiagram-AJRCARHV-BPZkzfQ3.js → stateDiagram-AJRCARHV-B9EW10Xb.js} +1 -1
  296. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CJTZJJ5X.js +1 -0
  297. package/web-shell/assets/{timeline-definition-PNZ67QCA-UDaQp9sP.js → timeline-definition-PNZ67QCA-BBRh0mgZ.js} +1 -1
  298. package/web-shell/assets/{vennDiagram-CIIHVFJN-2ouhAnHO.js → vennDiagram-CIIHVFJN-B8Gs-REP.js} +1 -1
  299. package/web-shell/assets/{wardley-L42UT6IY-Cq_WEvTK.js → wardley-L42UT6IY-D_y80Ur7.js} +1 -1
  300. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Dt24aXOM.js → wardleyDiagram-YWT4CUSO-D-CNfHJ-.js} +1 -1
  301. package/web-shell/assets/{xychartDiagram-2RQKCTM6-A5Xk2WCH.js → xychartDiagram-2RQKCTM6-DQ5CvELo.js} +1 -1
  302. package/web-shell/index.html +2 -2
  303. package/chunks/create-sub-session-MWUWNBM6.js +0 -401
  304. package/web-shell/assets/channel-vfbVFuM1.js +0 -1
  305. package/web-shell/assets/classDiagram-4FO5ZUOK-Cvr8atq3.js +0 -1
  306. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cvr8atq3.js +0 -1
  307. package/web-shell/assets/index-Cb1LjsCv.css +0 -5
  308. package/web-shell/assets/index-CvJDaIy8.js +0 -1756
  309. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DInOqnhZ.js +0 -1
@@ -2,17 +2,17 @@
2
2
  "use strict";
3
3
  import {
4
4
  CLIENT_MCP_OVER_WS_CONFIG_FLAG
5
- } from "./chunk-UKZEXS6K.js";
5
+ } from "./chunk-R574ATRM.js";
6
6
  import {
7
7
  SessionNotFoundError
8
8
  } from "./chunk-J26HHFI5.js";
9
9
  import {
10
10
  ChannelWorkerStartupError
11
- } from "./chunk-XNZBXQCG.js";
11
+ } from "./chunk-MKVZE4ZJ.js";
12
12
  import {
13
13
  ChannelDeliveryError,
14
14
  ChannelWebhookEnqueueError
15
- } from "./chunk-QONSRAEV.js";
15
+ } from "./chunk-YP5KH5Y7.js";
16
16
  import {
17
17
  CHANNEL_LOOP_MCP_SERVER_NAME
18
18
  } from "./chunk-DIEFUBV6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  BaseJsonOutputAdapter
5
- } from "./chunk-WIPQR44Y.js";
5
+ } from "./chunk-4UKNQ2HI.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-3RXUYQJI.js";
5
+ } from "./chunk-OIVKILPI.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -0,0 +1,155 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ require_express
5
+ } from "./chunk-GDXET5XU.js";
6
+ import {
7
+ writeStderrLine
8
+ } from "./chunk-KGJGEEVR.js";
9
+ import {
10
+ init_esbuild_shims
11
+ } from "./chunk-5O2XNYP6.js";
12
+ import {
13
+ __name,
14
+ __toESM
15
+ } from "./chunk-J2S4EL5Y.js";
16
+
17
+ // packages/cli/src/serve/web-shell-static.ts
18
+ init_esbuild_shims();
19
+ var import_express = __toESM(require_express(), 1);
20
+ import * as path from "node:path";
21
+
22
+ // packages/cli/src/serve/debug-mode.ts
23
+ init_esbuild_shims();
24
+ function isServeDebugMode() {
25
+ const value = process.env["QWEN_SERVE_DEBUG"];
26
+ if (!value) return false;
27
+ return !["0", "false", "off", "no"].includes(value.trim().toLowerCase());
28
+ }
29
+ __name(isServeDebugMode, "isServeDebugMode");
30
+
31
+ // packages/cli/src/serve/web-shell-static.ts
32
+ var WEB_SHELL_CSP_DIRECTIVES = [
33
+ "default-src 'self'",
34
+ "script-src 'self' 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval'",
35
+ "style-src 'self' 'unsafe-inline'",
36
+ "font-src 'self' data:",
37
+ "img-src 'self' data: blob:",
38
+ "connect-src 'self'",
39
+ "worker-src 'self' blob:",
40
+ // base-uri does NOT fall back to default-src; lock it so an injected <base>
41
+ // (the SPA renders AI-generated markdown) cannot repoint relative URLs to an
42
+ // attacker origin.
43
+ "base-uri 'none'"
44
+ ];
45
+ function buildWebShellCsp(frameAncestors = []) {
46
+ const fa = frameAncestors.length ? `frame-ancestors ${frameAncestors.join(" ")}` : "frame-ancestors 'none'";
47
+ return [...WEB_SHELL_CSP_DIRECTIVES, fa].join("; ");
48
+ }
49
+ __name(buildWebShellCsp, "buildWebShellCsp");
50
+ var WEB_SHELL_CSP = buildWebShellCsp();
51
+ function isDocumentNavigation(req) {
52
+ const fetchMode = req.headers["sec-fetch-mode"];
53
+ const fetchDest = req.headers["sec-fetch-dest"];
54
+ const accept = req.headers.accept ?? "";
55
+ return fetchMode === "navigate" || fetchDest === "document" || accept.trim().toLowerCase().startsWith("text/html");
56
+ }
57
+ __name(isDocumentNavigation, "isDocumentNavigation");
58
+ var SESSION_DEEP_LINK_PATH = /^\/session\/[^/]+\/?$/u;
59
+ function isPreAuthWebShellRequest(req) {
60
+ if (req.method !== "GET" && req.method !== "HEAD") return false;
61
+ const reqPath = req.path.toLowerCase();
62
+ if (reqPath === "/" || // Express non-strict routing compiles `/` to `/^(?:\/)(?:\/$)?$/i`, so
63
+ // a raw `//` also matches `app.get('/')` pre-auth (but `///` does not).
64
+ reqPath === "//" || reqPath === "/assets" || reqPath.startsWith("/assets/"))
65
+ return true;
66
+ return SESSION_DEEP_LINK_PATH.test(reqPath) && isDocumentNavigation(req);
67
+ }
68
+ __name(isPreAuthWebShellRequest, "isPreAuthWebShellRequest");
69
+ function createSendIndex(webShellDir, frameAncestors = []) {
70
+ const indexPath = path.join(webShellDir, "index.html");
71
+ const csp = buildWebShellCsp(frameAncestors);
72
+ return (res) => {
73
+ res.status(200).set("Content-Security-Policy", csp).set("X-Content-Type-Options", "nosniff").set("Referrer-Policy", "no-referrer").set(
74
+ // `microphone=(self)` lets the same-origin Web Shell document request
75
+ // the mic for voice dictation (the prompt won't even appear under an
76
+ // empty `microphone=()` allowlist). Still blocks cross-origin iframes;
77
+ // camera/geolocation/payment stay disabled (unused).
78
+ "Permissions-Policy",
79
+ "camera=(), microphone=(self), geolocation=(), payment=()"
80
+ ).set("Cache-Control", "no-cache");
81
+ if (frameAncestors.length === 0) {
82
+ res.set("X-Frame-Options", "DENY");
83
+ }
84
+ res.sendFile(
85
+ indexPath,
86
+ { cacheControl: false, dotfiles: "allow" },
87
+ (err) => {
88
+ if (!err) return;
89
+ writeStderrLine(
90
+ `qwen serve: Web Shell index send failed: ${err instanceof Error ? err.message : String(err)}`
91
+ );
92
+ if (!res.headersSent) {
93
+ res.status(500).type("text/plain").send("Failed to load Web Shell");
94
+ } else {
95
+ res.end();
96
+ }
97
+ }
98
+ );
99
+ };
100
+ }
101
+ __name(createSendIndex, "createSendIndex");
102
+ function mountWebShellAssets(app, webShellDir, frameAncestors = []) {
103
+ const sendIndex = createSendIndex(webShellDir, frameAncestors);
104
+ app.use(
105
+ "/assets",
106
+ import_express.default.static(path.join(webShellDir, "assets"), {
107
+ index: false,
108
+ immutable: true,
109
+ maxAge: "1y"
110
+ })
111
+ );
112
+ app.use("/assets", (req, res) => {
113
+ if (isServeDebugMode()) {
114
+ writeStderrLine(
115
+ `qwen serve: Web Shell asset not found: ${req.originalUrl}`
116
+ );
117
+ }
118
+ res.status(404).type("text/plain").send("Not found");
119
+ });
120
+ app.get("/", (_req, res) => sendIndex(res));
121
+ app.get("/session/:id", (req, res, next) => {
122
+ if (!isDocumentNavigation(req)) return next();
123
+ sendIndex(res);
124
+ });
125
+ }
126
+ __name(mountWebShellAssets, "mountWebShellAssets");
127
+ function mountWebShellSpaFallback(app, webShellDir, frameAncestors = []) {
128
+ const sendIndex = createSendIndex(webShellDir, frameAncestors);
129
+ app.use((req, res, next) => {
130
+ if (req.method !== "GET" && req.method !== "HEAD") return next();
131
+ if (!isDocumentNavigation(req)) return next();
132
+ if (isServeDebugMode()) {
133
+ writeStderrLine(
134
+ `qwen serve: Web Shell SPA fallback served for ${req.method} ${req.originalUrl}`
135
+ );
136
+ }
137
+ sendIndex(res);
138
+ });
139
+ }
140
+ __name(mountWebShellSpaFallback, "mountWebShellSpaFallback");
141
+
142
+ export {
143
+ isServeDebugMode,
144
+ buildWebShellCsp,
145
+ WEB_SHELL_CSP,
146
+ isDocumentNavigation,
147
+ isPreAuthWebShellRequest,
148
+ mountWebShellAssets,
149
+ mountWebShellSpaFallback
150
+ };
151
+ /**
152
+ * @license
153
+ * Copyright 2025 Qwen Team
154
+ * SPDX-License-Identifier: Apache-2.0
155
+ */
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  theme
5
- } from "./chunk-U25CMJYY.js";
5
+ } from "./chunk-EKPKKXY2.js";
6
6
  import {
7
7
  require_jsx_runtime
8
8
  } from "./chunk-SV5PQVQE.js";
@@ -14,10 +14,14 @@ import {
14
14
  import {
15
15
  require_react
16
16
  } from "./chunk-5QWWOFGG.js";
17
+ import {
18
+ collectInlineImages,
19
+ extractInlineContentRuns
20
+ } from "./chunk-2VSTGY6M.js";
17
21
  import {
18
22
  formatHistoryGapNotice,
19
23
  indexGapsByChild
20
- } from "./chunk-NAYPZ72V.js";
24
+ } from "./chunk-TPQ6RO65.js";
21
25
  import {
22
26
  stringWidth
23
27
  } from "./chunk-2MIN6GRR.js";
@@ -29,21 +33,21 @@ import {
29
33
  } from "./chunk-3SH53ANB.js";
30
34
  import {
31
35
  t
32
- } from "./chunk-546CDN6D.js";
36
+ } from "./chunk-F4SQY4RB.js";
33
37
  import {
34
38
  getToolResponseDisplayText,
35
39
  stripTrailingUserPromptSubmitContextPart
36
- } from "./chunk-DOA7MCDY.js";
40
+ } from "./chunk-I3LJQR5I.js";
37
41
  import {
38
42
  stripAnsi
39
43
  } from "./chunk-TWPJO254.js";
40
44
  import {
41
45
  GoalPersistenceUnavailableError,
42
46
  parseGoalStateRecordPayloadV2
43
- } from "./chunk-MBEMTXQT.js";
47
+ } from "./chunk-3K7FH2KQ.js";
44
48
  import {
45
49
  ToolDisplayNames
46
- } from "./chunk-D7D7RXIJ.js";
50
+ } from "./chunk-IC4Z6LX6.js";
47
51
  import {
48
52
  init_esbuild_shims
49
53
  } from "./chunk-5O2XNYP6.js";
@@ -3183,7 +3187,7 @@ function convertToHistoryItems(conversation, config, historyGaps) {
3183
3187
  case "assistant": {
3184
3188
  const parts = record.message?.parts;
3185
3189
  const thoughtText = !config ? extractThoughtTextFromParts(parts) : "";
3186
- const text = extractTextFromParts(parts);
3190
+ const displayRuns = extractInlineContentRuns(parts, "\n");
3187
3191
  const functionCalls = extractFunctionCalls(parts);
3188
3192
  if (thoughtText) {
3189
3193
  if (currentToolGroup.length > 0) {
@@ -3195,7 +3199,7 @@ function convertToHistoryItems(conversation, config, historyGaps) {
3195
3199
  }
3196
3200
  items.push({ type: "gemini_thought", text: thoughtText });
3197
3201
  }
3198
- if (text) {
3202
+ if (displayRuns.length > 0) {
3199
3203
  if (currentToolGroup.length > 0) {
3200
3204
  items.push({
3201
3205
  type: "tool_group",
@@ -3203,11 +3207,27 @@ function convertToHistoryItems(conversation, config, historyGaps) {
3203
3207
  });
3204
3208
  currentToolGroup = [];
3205
3209
  }
3206
- items.push({
3207
- type: "gemini",
3208
- text,
3209
- timestamp: new Date(record.timestamp).getTime()
3210
- });
3210
+ for (const [index, run] of displayRuns.entries()) {
3211
+ const type = index === 0 ? "gemini" : "gemini_content";
3212
+ const timestamp = index === 0 ? { timestamp: new Date(record.timestamp).getTime() } : {};
3213
+ if (run.kind === "text") {
3214
+ items.push({ type, text: run.text, ...timestamp });
3215
+ } else if (run.kind === "image") {
3216
+ items.push({
3217
+ type,
3218
+ text: "",
3219
+ images: [run.image],
3220
+ ...timestamp
3221
+ });
3222
+ } else {
3223
+ items.push({
3224
+ type,
3225
+ text: "",
3226
+ omittedImageCount: run.count,
3227
+ ...timestamp
3228
+ });
3229
+ }
3230
+ }
3211
3231
  }
3212
3232
  for (const fc of functionCalls) {
3213
3233
  const tool = getTool(config, fc.name);
@@ -3229,6 +3249,7 @@ function convertToHistoryItems(conversation, config, historyGaps) {
3229
3249
  const callId = record.toolCallResult.callId;
3230
3250
  const toolCall = currentToolGroup.find((t2) => t2.callId === callId);
3231
3251
  if (toolCall) {
3252
+ const responseParts = record.toolCallResult.responseParts ?? record.message?.parts;
3232
3253
  const rawDisplay = record.toolCallResult.resultDisplay;
3233
3254
  toolCall.resultDisplay = rawDisplay;
3234
3255
  if (record.toolCallResult.visionBridgeNotice !== void 0) {
@@ -3236,10 +3257,15 @@ function convertToHistoryItems(conversation, config, historyGaps) {
3236
3257
  }
3237
3258
  const rawStatus = record.toolCallResult["status"];
3238
3259
  toolCall.status = rawStatus === "error" ? "Error" /* Error */ : "Success" /* Success */;
3260
+ const { images, omittedImageCount } = collectInlineImages(responseParts);
3261
+ if (images.length > 0) {
3262
+ toolCall.images = images;
3263
+ }
3264
+ if (omittedImageCount > 0) {
3265
+ toolCall.omittedImageCount = omittedImageCount;
3266
+ }
3239
3267
  if (toolCall.status === "Success" /* Success */ && isCollapsibleTool(toolCall.name)) {
3240
- toolCall.detailedDisplay = getToolResponseDisplayText(
3241
- record.toolCallResult.responseParts ?? record.message?.parts
3242
- );
3268
+ toolCall.detailedDisplay = getToolResponseDisplayText(responseParts);
3243
3269
  }
3244
3270
  }
3245
3271
  pendingToolCalls.delete(callId || "");
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  parseRule
5
- } from "./chunk-DOA7MCDY.js";
5
+ } from "./chunk-I3LJQR5I.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-546CDN6D.js";
5
+ } from "./chunk-F4SQY4RB.js";
6
6
  import {
7
7
  createDebugLogger
8
- } from "./chunk-3RXUYQJI.js";
8
+ } from "./chunk-OIVKILPI.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";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-546CDN6D.js";
5
+ } from "./chunk-F4SQY4RB.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-3RXUYQJI.js";
5
+ } from "./chunk-OIVKILPI.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -21,12 +21,12 @@ import {
21
21
  getLanguageNameFromLocale,
22
22
  getLanguageSettingsOptions,
23
23
  t
24
- } from "./chunk-546CDN6D.js";
24
+ } from "./chunk-F4SQY4RB.js";
25
25
  import {
26
26
  getHomeEnvFallbackVars,
27
27
  loadEnvironment,
28
28
  preResolveHomeEnvOverrides
29
- } from "./chunk-IKXE3AAC.js";
29
+ } from "./chunk-OCEXSMWS.js";
30
30
  import {
31
31
  ENV_CORRUPTED_PATH,
32
32
  ENV_WAS_RECOVERED
@@ -34,7 +34,7 @@ import {
34
34
  import {
35
35
  isWorkspaceTrusted,
36
36
  updateSettingsFilePreservingFormat
37
- } from "./chunk-72DZPDH4.js";
37
+ } from "./chunk-ZFJBQATO.js";
38
38
  import {
39
39
  require_strip_json_comments
40
40
  } from "./chunk-ALGGS7UH.js";
@@ -46,13 +46,13 @@ import {
46
46
  DEFAULT_TOOL_RESULTS_TOTAL_CHARS_THRESHOLD,
47
47
  DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
48
48
  DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD
49
- } from "./chunk-DOA7MCDY.js";
49
+ } from "./chunk-I3LJQR5I.js";
50
50
  import {
51
51
  stripRuntimeSnapshotPrefix
52
- } from "./chunk-6D6V55ZQ.js";
52
+ } from "./chunk-BEBG3YE6.js";
53
53
  import {
54
54
  DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
55
- } from "./chunk-432XCUHF.js";
55
+ } from "./chunk-EQL65XGA.js";
56
56
  import {
57
57
  DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
58
58
  SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
@@ -62,7 +62,7 @@ import {
62
62
  Storage,
63
63
  createDebugLogger,
64
64
  getErrorMessage
65
- } from "./chunk-3RXUYQJI.js";
65
+ } from "./chunk-OIVKILPI.js";
66
66
  import {
67
67
  init_esbuild_shims
68
68
  } from "./chunk-5O2XNYP6.js";
@@ -2636,6 +2636,19 @@ var SETTINGS_SCHEMA = {
2636
2636
  default: false,
2637
2637
  description: "When true, HTTP hooks may target private/link-local IP ranges (the SSRF IP-range checks are skipped). Cloud metadata hostnames (e.g. 169.254.169.254, metadata.google.internal) remain blocked. Only honored from User, System, and SystemDefaults settings scopes; values set in Workspace settings are ignored so a cloned repository cannot self-grant this bypass. Enable only in trusted, managed environments, and pair with security.allowedHttpHookUrls.",
2638
2638
  showInDialog: false
2639
+ },
2640
+ allowedInsecureVoiceBaseUrls: {
2641
+ type: "array",
2642
+ label: "Allowed Insecure Voice Base URLs",
2643
+ category: "Security",
2644
+ requiresRestart: false,
2645
+ default: [],
2646
+ description: "Complete voice base URLs that may use HTTP or private-network addresses. Entries must include an explicit http:// or https:// scheme and the full provider path; only URL serialization and trailing slashes are normalized. Wildcards are not supported; metadata, link-local, local-use NAT64, 6to4, and Teredo addresses remain blocked even when listed, as do hostnames that resolve to loopback; IPv4-mapped, IPv4-compatible, and well-known NAT64 (64:ff9b::/96) literals are classified by their embedded IPv4 address. Only honored from User, System, and SystemDefaults settings scopes; values set in Workspace settings are ignored. Enable only for trusted endpoints in managed private networks. Cleartext HTTP also exposes the provider API key transmitted in the Authorization header. An allowlisted hostname is only as trustworthy as its DNS; prefer IP-literal entries when the gateway address is stable.",
2647
+ showInDialog: false,
2648
+ items: {
2649
+ type: "string",
2650
+ description: "Complete voice provider base URL with explicit scheme and full path (no wildcards)"
2651
+ }
2639
2652
  }
2640
2653
  }
2641
2654
  },
@@ -3098,6 +3111,71 @@ var SETTINGS_SCHEMA = {
3098
3111
  description: "Settings to enable experimental features.",
3099
3112
  showInDialog: false,
3100
3113
  properties: {
3114
+ liveVoice: {
3115
+ type: "object",
3116
+ label: "Live Voice",
3117
+ category: "Experimental",
3118
+ requiresRestart: false,
3119
+ default: {},
3120
+ description: "Experimental realtime voice conversations through Qwen Live Host on macOS WebShell.",
3121
+ showInDialog: false,
3122
+ properties: {
3123
+ enabled: {
3124
+ type: "boolean",
3125
+ label: "Live Voice",
3126
+ category: "Experimental",
3127
+ requiresRestart: false,
3128
+ default: false,
3129
+ description: "Enable experimental realtime voice conversations on macOS WebShell.",
3130
+ showInDialog: false
3131
+ },
3132
+ apiKey: {
3133
+ type: "string",
3134
+ label: "DashScope Realtime API Key",
3135
+ category: "Experimental",
3136
+ requiresRestart: false,
3137
+ default: "",
3138
+ description: "Dedicated DashScope API key for qwen3.5-omni-plus-realtime.",
3139
+ showInDialog: false
3140
+ },
3141
+ model: {
3142
+ type: "string",
3143
+ label: "Live Voice Model",
3144
+ category: "Experimental",
3145
+ requiresRestart: false,
3146
+ default: "qwen3.5-omni-plus-realtime",
3147
+ description: "Upstream Realtime model used for Live Voice.",
3148
+ showInDialog: false
3149
+ },
3150
+ endpoint: {
3151
+ type: "string",
3152
+ label: "Live Voice Endpoint",
3153
+ category: "Experimental",
3154
+ requiresRestart: false,
3155
+ default: "wss://dashscope.aliyuncs.com/api-ws/v1/realtime",
3156
+ description: "Advanced override for the DashScope Realtime WebSocket endpoint.",
3157
+ showInDialog: false
3158
+ },
3159
+ voice: {
3160
+ type: "string",
3161
+ label: "Live Voice Output Voice",
3162
+ category: "Experimental",
3163
+ requiresRestart: false,
3164
+ default: "Tina",
3165
+ description: "Voice used for Realtime model audio output.",
3166
+ showInDialog: false
3167
+ },
3168
+ shortcut: {
3169
+ type: "string",
3170
+ label: "Live Voice Global Shortcut",
3171
+ category: "Experimental",
3172
+ requiresRestart: false,
3173
+ default: "Command+E",
3174
+ description: "Electron accelerator registered globally by Qwen Live Host.",
3175
+ showInDialog: false
3176
+ }
3177
+ }
3178
+ },
3101
3179
  sessionWorkflow: {
3102
3180
  type: "boolean",
3103
3181
  label: "Session Workflow Plan & Review",
@@ -4630,6 +4708,11 @@ function getSettingsWarnings(loadedSettings) {
4630
4708
  `Warning: security.allowPrivateNetworkHooks in workspace settings (${workspaceFile.path}) is ignored. This setting is only honored from User, System, or SystemDefaults scope settings.`
4631
4709
  );
4632
4710
  }
4711
+ if (workspaceFile.rawJson !== void 0 && workspaceFile.originalSettings.security?.allowedInsecureVoiceBaseUrls !== void 0) {
4712
+ warningSet.add(
4713
+ `Warning: security.allowedInsecureVoiceBaseUrls in workspace settings (${workspaceFile.path}) is ignored. This setting is only honored from User, System, or SystemDefaults scope settings.`
4714
+ );
4715
+ }
4633
4716
  return [...warningSet];
4634
4717
  }
4635
4718
  __name(getSettingsWarnings, "getSettingsWarnings");
@@ -4645,19 +4728,20 @@ function tagMcpServerScope(settings, scope) {
4645
4728
  return { ...settings, mcpServers: tagged };
4646
4729
  }
4647
4730
  __name(tagMcpServerScope, "tagMcpServerScope");
4648
- function stripWorkspacePrivateNetworkHooks(settings) {
4649
- if (settings.security?.allowPrivateNetworkHooks === void 0) {
4731
+ function stripWorkspaceSecurityBypasses(settings) {
4732
+ if (settings.security?.allowPrivateNetworkHooks === void 0 && settings.security?.allowedInsecureVoiceBaseUrls === void 0) {
4650
4733
  return settings;
4651
4734
  }
4652
- const { allowPrivateNetworkHooks: _stripped, ...restSecurity } = settings.security;
4735
+ const {
4736
+ allowPrivateNetworkHooks: _privateHooks,
4737
+ allowedInsecureVoiceBaseUrls: _insecureVoice,
4738
+ ...restSecurity
4739
+ } = settings.security;
4653
4740
  return { ...settings, security: restSecurity };
4654
4741
  }
4655
- __name(stripWorkspacePrivateNetworkHooks, "stripWorkspacePrivateNetworkHooks");
4742
+ __name(stripWorkspaceSecurityBypasses, "stripWorkspaceSecurityBypasses");
4656
4743
  function mergeSettings(system, systemDefaults, user, workspace, isTrusted) {
4657
- const safeWorkspace = isTrusted ? tagMcpServerScope(
4658
- stripWorkspacePrivateNetworkHooks(workspace),
4659
- "workspace"
4660
- ) : {};
4744
+ const safeWorkspace = isTrusted ? tagMcpServerScope(stripWorkspaceSecurityBypasses(workspace), "workspace") : {};
4661
4745
  return customDeepMerge(
4662
4746
  getMergeStrategyForPath,
4663
4747
  {},
@@ -4724,17 +4808,29 @@ var LoadedSettings = class {
4724
4808
  throw new Error(`Invalid scope: ${scope}`);
4725
4809
  }
4726
4810
  }
4727
- setValue(scope, key, value, assertCanCommit) {
4811
+ setValue(scope, key, value, assertCanCommit, opts = {}) {
4728
4812
  if (key === "model.name" && typeof value === "string") {
4729
4813
  value = stripRuntimeSnapshotPrefix(value);
4730
4814
  }
4731
4815
  assertCanCommit?.();
4732
4816
  const settingsFile = this.forScope(scope);
4817
+ const replacePath = key === "mcpServers" ? key.split(".") : [];
4818
+ if (opts.throwOnWriteFailure) {
4819
+ saveSettings(
4820
+ settingsFile,
4821
+ createSettingsUpdate(key, value),
4822
+ replacePath,
4823
+ {
4824
+ throwOnWriteFailure: true
4825
+ }
4826
+ );
4827
+ }
4733
4828
  setNestedPropertySafe(settingsFile.settings, key, value);
4734
4829
  setNestedPropertySafe(settingsFile.originalSettings, key, value);
4735
4830
  this._merged = this.computeMergedSettings();
4736
- const replacePath = key === "mcpServers" ? key.split(".") : [];
4737
- saveSettings(settingsFile, createSettingsUpdate(key, value), replacePath);
4831
+ if (!opts.throwOnWriteFailure) {
4832
+ saveSettings(settingsFile, createSettingsUpdate(key, value), replacePath);
4833
+ }
4738
4834
  }
4739
4835
  setValues(writes, onScopeCommitted, assertCanCommit) {
4740
4836
  const scopes = /* @__PURE__ */ new Set();
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  Storage
5
- } from "./chunk-3RXUYQJI.js";
5
+ } from "./chunk-OIVKILPI.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -563,7 +563,7 @@ var WorkspaceRegistrationStore = class {
563
563
  return removed;
564
564
  }
565
565
  async update(mutate) {
566
- const { atomicWriteFile } = await import("./deferred-core-runtime-KXN7HLN7.js");
566
+ const { atomicWriteFile } = await import("./deferred-core-runtime-ONWSGDPN.js");
567
567
  return withInProcessLock(this.filePath, async () => {
568
568
  const lock = await acquireFileLock(this.filePath);
569
569
  let committed = false;
@@ -8,13 +8,13 @@ import {
8
8
  } from "./chunk-3Z43GZUQ.js";
9
9
  import {
10
10
  t
11
- } from "./chunk-546CDN6D.js";
11
+ } from "./chunk-F4SQY4RB.js";
12
12
  import {
13
13
  So
14
- } from "./chunk-DOA7MCDY.js";
14
+ } from "./chunk-I3LJQR5I.js";
15
15
  import {
16
16
  createDebugLogger
17
- } from "./chunk-3RXUYQJI.js";
17
+ } from "./chunk-OIVKILPI.js";
18
18
  import {
19
19
  init_esbuild_shims
20
20
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  CHANNEL_STARTUP_PROFILE_VERSION
5
- } from "./chunk-UKZEXS6K.js";
5
+ } from "./chunk-R574ATRM.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -6,10 +6,10 @@ import {
6
6
  extractGeminiContent,
7
7
  extractOpenAiContent,
8
8
  stringifyGenAiJson
9
- } from "./chunk-2DNKEBXY.js";
9
+ } from "./chunk-EI3HZX6C.js";
10
10
  import {
11
11
  createDebugLogger
12
- } from "./chunk-3RXUYQJI.js";
12
+ } from "./chunk-OIVKILPI.js";
13
13
  import {
14
14
  ROOT_CONTEXT,
15
15
  context,
@@ -64,7 +64,7 @@ async function runExitCleanup(options = {}) {
64
64
  }
65
65
  __name(runExitCleanup, "runExitCleanup");
66
66
  async function cleanupCheckpoints() {
67
- const { Storage } = await import("./deferred-core-runtime-KXN7HLN7.js");
67
+ const { Storage } = await import("./deferred-core-runtime-ONWSGDPN.js");
68
68
  const storage = new Storage(process.cwd());
69
69
  const tempDir = storage.getProjectTempDir();
70
70
  const checkpointsDir = join(tempDir, "checkpoints");
@@ -2,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  isGitRepository
5
- } from "./chunk-DOA7MCDY.js";
5
+ } from "./chunk-I3LJQR5I.js";
6
6
  import {
7
7
  createDebugLogger
8
- } from "./chunk-3RXUYQJI.js";
8
+ } from "./chunk-OIVKILPI.js";
9
9
  import {
10
10
  init_esbuild_shims
11
11
  } from "./chunk-5O2XNYP6.js";