@qwen-code/qwen-code 0.21.6 → 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 (288) 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/code-review.md +27 -0
  4. package/bundled/qc-helper/docs/qwen-serve.md +1 -1
  5. package/bundled/review/SKILL.md +48 -16
  6. package/chunks/{MaxSizedBox-2HFKP4LI.js → MaxSizedBox-NHT7OJY4.js} +38 -38
  7. package/chunks/{StandaloneSessionPicker-RBV72M5N.js → StandaloneSessionPicker-B2BHAP6E.js} +54 -53
  8. package/chunks/{acpAgent-WO6JFCVQ.js → acpAgent-ITFWQGW2.js} +80 -80
  9. package/chunks/{agent-AHGLYNZ4.js → agent-CQ66PAFN.js} +35 -35
  10. package/chunks/{agent-headless-NTXKKGRO.js → agent-headless-XFODWIW2.js} +35 -35
  11. package/chunks/{anthropicContentGenerator-3CAHEZBM.js → anthropicContentGenerator-DTMVEL5M.js} +7 -7
  12. package/chunks/{artifact-tool-RROCCJDA.js → artifact-tool-U4VOZIK5.js} +2 -2
  13. package/chunks/{askUserQuestion-2EPPBPUZ.js → askUserQuestion-XOBQLPFA.js} +2 -2
  14. package/chunks/{bridge-RPAU64CA.js → bridge-5XPZZ43S.js} +39 -39
  15. package/chunks/{channel-management-service-IGEUOVRT.js → channel-management-service-FSQ7SHYI.js} +1 -1
  16. package/chunks/{channel-settings-store-ON64MF7G.js → channel-settings-store-ZRWVDSMY.js} +41 -41
  17. package/chunks/{chunk-XC656O42.js → chunk-22NBYCPD.js} +3 -3
  18. package/chunks/chunk-2VSTGY6M.js +107 -0
  19. package/chunks/{chunk-MBEMTXQT.js → chunk-3K7FH2KQ.js} +1 -32
  20. package/chunks/{chunk-SKNE3KQC.js → chunk-3KY5HXE6.js} +4 -4
  21. package/chunks/{chunk-QYPT3QUD.js → chunk-3ULCB3NE.js} +3 -3
  22. package/chunks/{chunk-DVBEGGLG.js → chunk-4L3YFXQL.js} +10 -9
  23. package/chunks/{chunk-NGJOAKJY.js → chunk-4UKNQ2HI.js} +3 -3
  24. package/chunks/{chunk-QZKYZCN3.js → chunk-52AXQBAY.js} +3 -3
  25. package/chunks/{chunk-5MJGUQU5.js → chunk-5JFKVENR.js} +3 -3
  26. package/chunks/{chunk-TGGEZINK.js → chunk-5OYWFYX3.js} +7 -7
  27. package/chunks/{chunk-EXCEQD22.js → chunk-6IKXD7ZR.js} +4 -4
  28. package/chunks/{chunk-5L6CQ4ZU.js → chunk-6M26GBKX.js} +2 -2
  29. package/chunks/{chunk-XM2O73NC.js → chunk-7GXFPUOL.js} +2455 -1314
  30. package/chunks/{chunk-OP2OHZ7K.js → chunk-7HMDOAIC.js} +6 -6
  31. package/chunks/{chunk-33FNCQSY.js → chunk-7MH4J33A.js} +2 -2
  32. package/chunks/{chunk-2AGOQ7QO.js → chunk-7UFKAV7Y.js} +118 -6
  33. package/chunks/{chunk-JELIWHXD.js → chunk-AOHJKPKL.js} +1 -1
  34. package/chunks/{chunk-XA4TMLFN.js → chunk-ASSORJG6.js} +530 -388
  35. package/chunks/{chunk-GLNBDYUX.js → chunk-AXMWHKXA.js} +6 -2
  36. package/chunks/{chunk-H36SETQS.js → chunk-B2GJNDTV.js} +1 -1
  37. package/chunks/{chunk-3LZKY4V4.js → chunk-BDE433DP.js} +5 -5
  38. package/chunks/{chunk-DIT4V3XH.js → chunk-BEBG3YE6.js} +1 -1
  39. package/chunks/{chunk-QMBEW7EW.js → chunk-BGG4MBYD.js} +2 -2
  40. package/chunks/{chunk-6WBWIPBF.js → chunk-BVWVWGLE.js} +2 -2
  41. package/chunks/{chunk-GK2H5GRC.js → chunk-CFJIT7IA.js} +5 -5
  42. package/chunks/{chunk-2UISUFHQ.js → chunk-CJXIIILK.js} +3 -3
  43. package/chunks/{chunk-WK4TJUEA.js → chunk-CKASRHZI.js} +1 -1
  44. package/chunks/{chunk-Z7JILXGX.js → chunk-CNIID3TV.js} +3 -3
  45. package/chunks/{chunk-KKN2IE7Q.js → chunk-CTJLZLB5.js} +1 -1
  46. package/chunks/{chunk-4WTAQEHV.js → chunk-CYR3HI5X.js} +3 -3
  47. package/chunks/{chunk-4LKVQFHM.js → chunk-DREZZAZM.js} +2 -2
  48. package/chunks/{chunk-GESMMPAK.js → chunk-E24IQ3WV.js} +79 -59
  49. package/chunks/{chunk-T4JSA7KU.js → chunk-E2DXJHVN.js} +3 -3
  50. package/chunks/{chunk-SQC6K5HI.js → chunk-E33LOKRA.js} +1 -1
  51. package/chunks/{chunk-OWSW7EYP.js → chunk-ECTZI76Q.js} +6 -6
  52. package/chunks/{chunk-2DNKEBXY.js → chunk-EI3HZX6C.js} +1 -1
  53. package/chunks/{chunk-U25CMJYY.js → chunk-EKPKKXY2.js} +1 -1
  54. package/chunks/{chunk-432XCUHF.js → chunk-EQL65XGA.js} +1 -1
  55. package/chunks/{chunk-TYERNYH4.js → chunk-EUNWC2VS.js} +2 -2
  56. package/chunks/{chunk-KHUA3NQV.js → chunk-F4SQY4RB.js} +2 -2
  57. package/chunks/{chunk-YMBOEAF4.js → chunk-FBPPGNA4.js} +1 -1
  58. package/chunks/{chunk-WNU7TZTO.js → chunk-FCBM3ZRY.js} +3 -3
  59. package/chunks/{chunk-UH7Z7Y45.js → chunk-FOGU3LJX.js} +1 -1
  60. package/chunks/{chunk-PX5DNLSA.js → chunk-FTJUO7R2.js} +18 -10
  61. package/chunks/{chunk-E4WHKETF.js → chunk-FVKHVJZQ.js} +2 -49
  62. package/chunks/{chunk-YZQTA3ID.js → chunk-GDXET5XU.js} +31 -3396
  63. package/chunks/{chunk-A5YZ3FA2.js → chunk-GM463R2B.js} +1 -1
  64. package/chunks/{chunk-MOHAWIAW.js → chunk-GNPNYXJB.js} +2 -2
  65. package/chunks/{chunk-O7V7N4G7.js → chunk-GUHLKZ57.js} +198 -35
  66. package/chunks/{chunk-N2GJU6KI.js → chunk-HCVI44SK.js} +12 -12
  67. package/chunks/{chunk-OXX3FG2N.js → chunk-HMUV7245.js} +3 -3
  68. package/chunks/{chunk-A4VTILZT.js → chunk-I3LJQR5I.js} +115 -85
  69. package/chunks/{chunk-D7D7RXIJ.js → chunk-IC4Z6LX6.js} +1 -1
  70. package/chunks/{chunk-HU5TUALO.js → chunk-IIJEYBNH.js} +3 -3
  71. package/chunks/{chunk-EMYZIABH.js → chunk-IUFV6FYU.js} +1 -1
  72. package/chunks/{chunk-4S4OEQ6U.js → chunk-J6SZID63.js} +2 -2
  73. package/chunks/{chunk-G5NNWEYE.js → chunk-KGT25P47.js} +4 -4
  74. package/chunks/{chunk-BFHXDAR7.js → chunk-KKBPOU75.js} +1 -1
  75. package/chunks/{chunk-3UOLYNTF.js → chunk-KNTWLSVD.js} +6 -6
  76. package/chunks/{chunk-NKSF7HYF.js → chunk-KU4MUGRF.js} +1 -1
  77. package/chunks/{chunk-MGSSJT27.js → chunk-L4N6TIP7.js} +5 -3
  78. package/chunks/{chunk-VNQCPBC2.js → chunk-LFVXMYII.js} +3 -3
  79. package/chunks/{chunk-WVAESIM6.js → chunk-LZC3B5N2.js} +4 -4
  80. package/chunks/{chunk-U4AF3QLU.js → chunk-M5RUXX6P.js} +8 -8
  81. package/chunks/{chunk-6O5DVH27.js → chunk-M6HMMKVG.js} +1 -1
  82. package/chunks/{chunk-SLSWFHDF.js → chunk-MA5SUU2Q.js} +4 -4
  83. package/chunks/{chunk-C4CBJQKY.js → chunk-MPLEQFEL.js} +1 -1
  84. package/chunks/{chunk-T5U6IM4C.js → chunk-MVUQRLOH.js} +3 -3
  85. package/chunks/{chunk-GLWP3FDB.js → chunk-MZSJ43WV.js} +31 -2
  86. package/chunks/{chunk-ZPPP6VCL.js → chunk-NG2R4N5O.js} +1 -1
  87. package/chunks/{chunk-UGTWD35F.js → chunk-NLREQJFK.js} +1 -1
  88. package/chunks/{chunk-RK2EE3T7.js → chunk-OCEXSMWS.js} +2 -2
  89. package/chunks/{chunk-3RXUYQJI.js → chunk-OIVKILPI.js} +49 -0
  90. package/chunks/{chunk-LBWNSLJK.js → chunk-ONSZH6VM.js} +2 -2
  91. package/chunks/{chunk-R5RBXLNC.js → chunk-ORTYIRZU.js} +5 -5
  92. package/chunks/{chunk-HY25ULVN.js → chunk-ORYNZTB7.js} +131 -48
  93. package/chunks/{chunk-DYA25Y7U.js → chunk-OWMAZHIX.js} +1 -1
  94. package/chunks/{chunk-SQOMTWQT.js → chunk-P2PTEG3P.js} +4 -4
  95. package/chunks/{chunk-IMOQO6YL.js → chunk-P4PAGFDT.js} +1 -1
  96. package/chunks/{chunk-BOGOR4HB.js → chunk-PRYJZGR4.js} +7 -7
  97. package/chunks/{chunk-K2B3X3E7.js → chunk-PVNUY34T.js} +4 -4
  98. package/chunks/{chunk-WO2B5E5B.js → chunk-Q3JQ7OSU.js} +1 -1
  99. package/chunks/{chunk-GWRHVJY2.js → chunk-QBUXNKTM.js} +20 -20
  100. package/chunks/{chunk-75QMRMO7.js → chunk-QT34NLGU.js} +3 -3
  101. package/chunks/{chunk-CJ5WLD5Y.js → chunk-RFA3YH5R.js} +2 -2
  102. package/chunks/chunk-RGSBTHSU.js +3381 -0
  103. package/chunks/{chunk-Q5RM32DR.js → chunk-SDSQ7C4Y.js} +1 -1
  104. package/chunks/{chunk-YAVY33G4.js → chunk-SEZ556DZ.js} +1 -1
  105. package/chunks/chunk-SOORFWKY.js +155 -0
  106. package/chunks/{chunk-VGFPFM4U.js → chunk-ST774VGY.js} +42 -16
  107. package/chunks/{chunk-CA4UIDFU.js → chunk-T444EKH5.js} +1 -1
  108. package/chunks/{chunk-ODPXHGLL.js → chunk-T7WJWZCG.js} +2 -2
  109. package/chunks/{chunk-RFUHDCNF.js → chunk-TPQ6RO65.js} +1 -1
  110. package/chunks/{chunk-KVUBYJDM.js → chunk-TZEZYNYD.js} +1 -1
  111. package/chunks/{chunk-PPUOYL77.js → chunk-U5G2PZAQ.js} +49 -18
  112. package/chunks/{chunk-XC2VAFVZ.js → chunk-UVX4Y6IN.js} +1 -1
  113. package/chunks/{chunk-4JH77A2U.js → chunk-VHINCBEK.js} +1 -1
  114. package/chunks/{chunk-2POQWYM6.js → chunk-VIOH2OOE.js} +3 -3
  115. package/chunks/{chunk-URN76TKR.js → chunk-WCG5O7IP.js} +2 -2
  116. package/chunks/{chunk-RHTTKJTP.js → chunk-WIAN5MYB.js} +1 -1
  117. package/chunks/{chunk-JE44IPH6.js → chunk-WLAO54CV.js} +2 -2
  118. package/chunks/{chunk-W5DXUTXD.js → chunk-X26KCG3L.js} +8 -8
  119. package/chunks/{chunk-TOGZTG4X.js → chunk-X6VISCPN.js} +2 -2
  120. package/chunks/{chunk-TSERKWCX.js → chunk-XCWO3SMQ.js} +3 -3
  121. package/chunks/{chunk-VSALQLT7.js → chunk-XR4VN3GB.js} +1 -1
  122. package/chunks/{chunk-536SWZTA.js → chunk-Y4F5PBY5.js} +4 -4
  123. package/chunks/{chunk-3PRJYMXC.js → chunk-Y4NGLFGJ.js} +1 -1
  124. package/chunks/{chunk-ULPQQSDN.js → chunk-YD26XH5B.js} +3 -3
  125. package/chunks/{chunk-3LGZEYOF.js → chunk-YHEEE624.js} +2 -2
  126. package/chunks/{chunk-FZFP7RZI.js → chunk-YPQ4IEVV.js} +3 -3
  127. package/chunks/{chunk-SUKEUUAA.js → chunk-Z2MB7HS7.js} +1 -1
  128. package/chunks/{chunk-ACZRB7AD.js → chunk-ZFJBQATO.js} +3 -3
  129. package/chunks/{chunk-LAAFLUQV.js → chunk-ZXU5UHMI.js} +1 -1
  130. package/chunks/{computer-use-5HXJ2P4X.js → computer-use-4WCG6FX3.js} +35 -35
  131. package/chunks/{config-utils-VXD4SPVR.js → config-utils-K7SCOWHD.js} +2 -2
  132. package/chunks/{contextCommand-7BEHRX2H.js → contextCommand-MLJEOUZY.js} +37 -37
  133. package/chunks/{core-runtime-U4VJ5TIV.js → core-runtime-LKSDQXFB.js} +35 -35
  134. package/chunks/{create-sub-session-6EWLAZD5.js → create-sub-session-E4PBYXV5.js} +2 -2
  135. package/chunks/{create-sub-session-QZNQY332.js → create-sub-session-ZJ7OYXRW.js} +35 -35
  136. package/chunks/{cron-create-CCRIULJE.js → cron-create-GRBWYMIJ.js} +4 -4
  137. package/chunks/{cron-delete-FCFW6BGP.js → cron-delete-4CMKBR2M.js} +4 -4
  138. package/chunks/{cron-list-QDBVCHRF.js → cron-list-W7K4ASOA.js} +4 -4
  139. package/chunks/{daemon-YI5RY62O.js → daemon-SCTQMM7Z.js} +50 -2
  140. package/chunks/{daemon-status-provider-UJUGTDTL.js → daemon-status-provider-2TPABSC6.js} +43 -43
  141. package/chunks/{daemon-trust-policy-ZHDD5VYQ.js → daemon-trust-policy-U5Q3LRKV.js} +40 -40
  142. package/chunks/{daemon-trust-policy-monitor-5SHYBDGA.js → daemon-trust-policy-monitor-REIZABHN.js} +40 -40
  143. package/chunks/{deferred-core-runtime-QWAEBTR5.js → deferred-core-runtime-ONWSGDPN.js} +35 -35
  144. package/chunks/{display-image-GUJA352B.js → display-image-O2XFPQTC.js} +4 -4
  145. package/chunks/{dist-A7H2KKUC.js → dist-K4WWQBHS.js} +277 -98
  146. package/chunks/{earlyInputCapture-5BMSGKOI.js → earlyInputCapture-Q7CO2QN4.js} +36 -36
  147. package/chunks/{edit-IVQQVYYK.js → edit-PBU33DGY.js} +35 -35
  148. package/chunks/{enter-worktree-P3DF2N6O.js → enter-worktree-WCRF2AA5.js} +35 -35
  149. package/chunks/{enterPlanMode-KKTDVLAD.js → enterPlanMode-E2RXSZSG.js} +35 -35
  150. package/chunks/{environment-W5TRDM3G.js → environment-KA6OBBY4.js} +37 -37
  151. package/chunks/{errors-GJJB36IG.js → errors-XYCANYTN.js} +37 -37
  152. package/chunks/{exit-worktree-LV5RLOCU.js → exit-worktree-CQLRKE26.js} +35 -35
  153. package/chunks/{exitPlanMode-TUGOB2LL.js → exitPlanMode-AP7XQVRL.js} +35 -35
  154. package/chunks/{fast-path-2FU23PAQ.js → fast-path-DHKCBUUQ.js} +2 -2
  155. package/chunks/{gemini-KDULDQPP.js → gemini-RGYIKOL6.js} +72 -72
  156. package/chunks/{geminiContentGenerator-LOCFHNVA.js → geminiContentGenerator-ZLI7NARI.js} +6 -6
  157. package/chunks/{glob-Z4NQFKWS.js → glob-R4R7OG4W.js} +35 -35
  158. package/chunks/{goal-tools-3AZKX5WQ.js → goal-tools-APOW6UXL.js} +3 -3
  159. package/chunks/{grep-Z67Z7EN6.js → grep-BO5M2UCN.js} +35 -35
  160. package/chunks/{handleAutoUpdate-DFUZE6I6.js → handleAutoUpdate-ZTHIKBZM.js} +39 -39
  161. package/chunks/{i18n-R4FMZ7N2.js → i18n-GNC2NNVA.js} +36 -36
  162. package/chunks/{image-gen-4CQJPQP5.js → image-gen-2XYVOLT5.js} +9 -9
  163. package/chunks/{initializer-DK672ZVE.js → initializer-VXLEBSSB.js} +41 -41
  164. package/chunks/{installationInfo-PO4Z3ES7.js → installationInfo-QBJ7GECU.js} +36 -36
  165. package/chunks/{keychain-token-storage-7BT4TQ2A.js → keychain-token-storage-TVAMTNP7.js} +2 -2
  166. package/chunks/{list-QXQF6C53.js → list-VLARA3NO.js} +43 -43
  167. package/chunks/{list-agents-GC4BRET7.js → list-agents-KFFIIS2G.js} +2 -2
  168. package/chunks/{loadedSettingsAdapter-4D7GUGW6.js → loadedSettingsAdapter-AQWO3DKQ.js} +40 -40
  169. package/chunks/{loggingContentGenerator-2P3MNACM.js → loggingContentGenerator-JPOQJB44.js} +17 -17
  170. package/chunks/{loop-wakeup-SQQSBMEY.js → loop-wakeup-TLMJPMMP.js} +5 -5
  171. package/chunks/{ls-63CC3NNX.js → ls-UVVE2XGE.js} +4 -4
  172. package/chunks/{lsp-P6NVJVNT.js → lsp-QMEA2VLB.js} +2 -2
  173. package/chunks/{managed-npm-update-LWVJQTWO.js → managed-npm-update-LEIM7R7Z.js} +36 -36
  174. package/chunks/{mcp-GHETAR6V.js → mcp-WDSZDEUK.js} +40 -40
  175. package/chunks/{monitor-4T7W4M6Q.js → monitor-XEIMDJKT.js} +35 -35
  176. package/chunks/{nonInteractiveCli-P4UKCJFM.js → nonInteractiveCli-GA7CHB27.js} +72 -72
  177. package/chunks/{notebook-edit-OC2V7U5D.js → notebook-edit-HBVYJEYN.js} +35 -35
  178. package/chunks/{openaiContentGenerator-RAJUFWQY.js → openaiContentGenerator-D6DYXZD3.js} +19 -19
  179. package/chunks/{pidfile-HVPYVRLS.js → pidfile-DWDNVKET.js} +36 -36
  180. package/chunks/{processUtils-VIQ4JHVX.js → processUtils-Y2SQQ2RR.js} +2 -2
  181. package/chunks/{qwenContentGenerator-2QLCUFNZ.js → qwenContentGenerator-MTXRA2IT.js} +40 -40
  182. package/chunks/{qwenOAuth2-J2X3EN43.js → qwenOAuth2-HQSYUQ2E.js} +8 -8
  183. package/chunks/{read-file-ZNAN2B26.js → read-file-IUAEEXBO.js} +10 -10
  184. package/chunks/{read-mcp-resource-RTSSEER5.js → read-mcp-resource-2TNSJTC3.js} +2 -2
  185. package/chunks/{record-artifact-E6AWQU2Z.js → record-artifact-RAON52FC.js} +3 -3
  186. package/chunks/{resumeHistoryUtils-RCY7AL5Y.js → resumeHistoryUtils-J244DBOH.js} +41 -40
  187. package/chunks/{ripGrep-C3KMLZM5.js → ripGrep-NBENZCHO.js} +35 -35
  188. package/chunks/{run-qwen-serve-3JN75CIQ.js → run-qwen-serve-2G754FJE.js} +65 -43
  189. package/chunks/{runtime-VUA4WQYD.js → runtime-KBSESBIX.js} +43 -43
  190. package/chunks/{scheduler-Z4IBXCOY.js → scheduler-INHLDC26.js} +35 -35
  191. package/chunks/{sdk-exporters-http-IL2346MJ.js → sdk-exporters-http-KHAB5JSD.js} +2 -2
  192. package/chunks/{sdk-impl-SYKGVWOZ.js → sdk-impl-KD7FSTC3.js} +2 -2
  193. package/chunks/{send-message-TL6FIMMN.js → send-message-ZM7MRUGP.js} +5 -5
  194. package/chunks/{serve-67T3P7XI.js → serve-G2BCUQNM.js} +41 -41
  195. package/chunks/{server-46ZO2CLV.js → server-3BD6DIW3.js} +621 -332
  196. package/chunks/{session-B4IFAFC4.js → session-HGXANTYW.js} +73 -73
  197. package/chunks/{settings-AI2BTBOZ.js → settings-VYFBEZ2R.js} +39 -39
  198. package/chunks/{shell-BKII3B6E.js → shell-3LBKDXAW.js} +35 -35
  199. package/chunks/{skill-6CFOWVGA.js → skill-W576UXSL.js} +14 -14
  200. package/chunks/{skill-settings-6BFQWMW4.js → skill-settings-ZNUIJMJT.js} +39 -39
  201. package/chunks/{spawnChannel-FJXW35U7.js → spawnChannel-AUUVHV5S.js} +37 -37
  202. package/chunks/{standalone-update-WVINHRNS.js → standalone-update-WEQVL7DN.js} +37 -37
  203. package/chunks/{startInteractiveUI-YE57CJ57.js → startInteractiveUI-V3B5M5PY.js} +399 -159
  204. package/chunks/{syntheticOutput-BN7E626U.js → syntheticOutput-ZLCUTKO2.js} +3 -3
  205. package/chunks/{task-create-Q727MXHJ.js → task-create-CQP5UEA3.js} +9 -9
  206. package/chunks/{task-list-G6KPQ5JT.js → task-list-XLEZOJXP.js} +5 -5
  207. package/chunks/{task-stop-TNXRNAL2.js → task-stop-7ZQM5CFF.js} +2 -2
  208. package/chunks/{task-update-YB7PXO4R.js → task-update-JA75U2SN.js} +9 -9
  209. package/chunks/{team-create-GNC7NFY6.js → team-create-4TEVQYI5.js} +35 -35
  210. package/chunks/{team-delete-GDO7H2T4.js → team-delete-MHY3UZGY.js} +5 -5
  211. package/chunks/{team-plan-approval-ECALJLIO.js → team-plan-approval-UOSTAB7R.js} +35 -35
  212. package/chunks/{terminal-image-renderer-II74TFVW.js → terminal-image-renderer-VO6W4YSM.js} +41 -36
  213. package/chunks/{theme-manager-2MGEDD22.js → theme-manager-HOYUCAJ5.js} +36 -36
  214. package/chunks/{todoWrite-MHWHO5UO.js → todoWrite-UPVOHYGD.js} +4 -4
  215. package/chunks/{tool-search-S6LRRACA.js → tool-search-NRMWTH3L.js} +13 -13
  216. package/chunks/{total-session-admission-7WVAWQPU.js → total-session-admission-KHBGXD6A.js} +39 -39
  217. package/chunks/{trustedFolders-NFS4KHO4.js → trustedFolders-AH242HLO.js} +36 -36
  218. package/chunks/{update-relaunch-Q5HLZ6UW.js → update-relaunch-R3M25PND.js} +5 -5
  219. package/chunks/{updateCheck-UOVZSTP7.js → updateCheck-4O2CMHMG.js} +38 -38
  220. package/chunks/{useAutoAcceptIndicator-PC6MOJCO.js → useAutoAcceptIndicator-KZSKP3RY.js} +42 -42
  221. package/chunks/{validateNonInterActiveAuth-YMQP3ZM7.js → validateNonInterActiveAuth-7AXUFNBE.js} +69 -69
  222. package/chunks/{version-T4AQFZJH.js → version-BE7H2MTM.js} +1 -1
  223. package/chunks/{web-fetch-JQCJHEEX.js → web-fetch-C7FQ24BP.js} +13 -13
  224. package/chunks/{web-search-QGZ2KY4G.js → web-search-7FPW6ECJ.js} +9 -9
  225. package/chunks/web-shell-static-O73YPVVC.js +33 -0
  226. package/chunks/{workflow-YIT27YWZ.js → workflow-3LAE5AL7.js} +36 -36
  227. package/chunks/{workspace-providers-status-FIDZQ2PL.js → workspace-providers-status-UXZKS6SE.js} +43 -43
  228. package/chunks/{workspace-registration-store-RCSPE4DU.js → workspace-registration-store-DSS57KLV.js} +1 -1
  229. package/chunks/{workspace-registry-5PEUCY6E.js → workspace-registry-VOSOZ4WU.js} +39 -39
  230. package/chunks/{workspace-service-LANDVPL7.js → workspace-service-MWWHXZGQ.js} +45 -45
  231. package/chunks/{workspace-skills-status-2IQVJNIN.js → workspace-skills-status-DN56VF74.js} +41 -41
  232. package/chunks/{workspace-trust-reconciler-CZPZZCZC.js → workspace-trust-reconciler-3GOQYMND.js} +45 -45
  233. package/chunks/{write-file-G5VNGCOG.js → write-file-B4YZQZ2K.js} +35 -35
  234. package/chunks/{zoom-image-6RBLD7X6.js → zoom-image-L4QKXYG2.js} +10 -10
  235. package/cli.js +12 -12
  236. package/package.json +3 -3
  237. package/web-shell/assets/{arc-B-Vtkp1W.js → arc-Ip-FFDJ0.js} +1 -1
  238. package/web-shell/assets/{architectureDiagram-3BPJPVTR-qmTXIj64.js → architectureDiagram-3BPJPVTR-CChqgwIb.js} +1 -1
  239. package/web-shell/assets/{blockDiagram-GPEHLZMM-ZlnXEtdP.js → blockDiagram-GPEHLZMM-BHN-Tfss.js} +1 -1
  240. package/web-shell/assets/{c4Diagram-AAUBKEIU-Wyoirf6Z.js → c4Diagram-AAUBKEIU-BhyjzDjN.js} +1 -1
  241. package/web-shell/assets/channel-Cu8qd6OB.js +1 -0
  242. package/web-shell/assets/{chunk-2J33WTMH-WQwbq9d8.js → chunk-2J33WTMH-BB9eyHrx.js} +1 -1
  243. package/web-shell/assets/{chunk-4BX2VUAB-DQKnAXC4.js → chunk-4BX2VUAB-BeV7ce_J.js} +1 -1
  244. package/web-shell/assets/{chunk-55IACEB6-DIdgXNcO.js → chunk-55IACEB6-DO7kXDiV.js} +1 -1
  245. package/web-shell/assets/{chunk-727SXJPM-CUwGOLEd.js → chunk-727SXJPM-B27MPznD.js} +1 -1
  246. package/web-shell/assets/{chunk-AQP2D5EJ-CCBGZFZ4.js → chunk-AQP2D5EJ-DHIjqjD_.js} +1 -1
  247. package/web-shell/assets/{chunk-FMBD7UC4-DMGXProk.js → chunk-FMBD7UC4-DabMqyN2.js} +1 -1
  248. package/web-shell/assets/{chunk-ND2GUHAM-yejcFqsh.js → chunk-ND2GUHAM-Dw7Nnnxc.js} +1 -1
  249. package/web-shell/assets/{chunk-QZHKN3VN-DxCyqTf7.js → chunk-QZHKN3VN-DdaZew1Q.js} +1 -1
  250. package/web-shell/assets/classDiagram-4FO5ZUOK-BI3KrXhq.js +1 -0
  251. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BI3KrXhq.js +1 -0
  252. package/web-shell/assets/{cose-bilkent-S5V4N54A-DOrF3cg_.js → cose-bilkent-S5V4N54A-CgBpCYH5.js} +1 -1
  253. package/web-shell/assets/{dagre-BM42HDAG-Be6CdYQ_.js → dagre-BM42HDAG-BB4IU8G0.js} +1 -1
  254. package/web-shell/assets/{diagram-2AECGRRQ-B_Rjsft2.js → diagram-2AECGRRQ-BcUTHU37.js} +1 -1
  255. package/web-shell/assets/{diagram-5GNKFQAL-BvQbKSm1.js → diagram-5GNKFQAL-B6Lyihyv.js} +1 -1
  256. package/web-shell/assets/{diagram-KO2AKTUF-BsdmMdpS.js → diagram-KO2AKTUF-CRIJOjpG.js} +1 -1
  257. package/web-shell/assets/{diagram-LMA3HP47-CrQlBaNr.js → diagram-LMA3HP47-DdNiwWWT.js} +1 -1
  258. package/web-shell/assets/{diagram-OG6HWLK6-aB1MD_DL.js → diagram-OG6HWLK6-Dz4b32Do.js} +1 -1
  259. package/web-shell/assets/{erDiagram-TEJ5UH35-F-eUUn9n.js → erDiagram-TEJ5UH35-D-8NGw77.js} +1 -1
  260. package/web-shell/assets/{flowDiagram-I6XJVG4X-DY_d8lUK.js → flowDiagram-I6XJVG4X-Dun26LyM.js} +1 -1
  261. package/web-shell/assets/{ganttDiagram-6RSMTGT7-Dqu7KBPg.js → ganttDiagram-6RSMTGT7-F10Hu1Gc.js} +1 -1
  262. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-2IkU_VEj.js → gitGraphDiagram-PVQCEYII-Bf8Ez6-D.js} +1 -1
  263. package/web-shell/assets/{index-BuSbqggh.js → index-BXqw-nGq.js} +1 -1
  264. package/web-shell/assets/{index-DrfC2e9s.js → index-hcgjV7vS.js} +333 -333
  265. package/web-shell/assets/{infoDiagram-5YYISTIA-C4orwzPw.js → infoDiagram-5YYISTIA-DVgTMLvj.js} +1 -1
  266. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-fXUEfef_.js → ishikawaDiagram-YF4QCWOH-uT-KepvK.js} +1 -1
  267. package/web-shell/assets/{journeyDiagram-JHISSGLW-Bs0I1_J5.js → journeyDiagram-JHISSGLW-Vg_XadQf.js} +1 -1
  268. package/web-shell/assets/{kanban-definition-UN3LZRKU-BPRj1dw_.js → kanban-definition-UN3LZRKU-Dyv1ESBE.js} +1 -1
  269. package/web-shell/assets/{linear-DFS6ZDpW.js → linear-BMIepYX3.js} +1 -1
  270. package/web-shell/assets/{mermaid.core-CZxjWMaO.js → mermaid.core-zA8pJ9ag.js} +5 -5
  271. package/web-shell/assets/{mindmap-definition-RKZ34NQL-Dsr3PmNs.js → mindmap-definition-RKZ34NQL-BCW_BZ_5.js} +1 -1
  272. package/web-shell/assets/{pieDiagram-4H26LBE5-D5Ngpz5Y.js → pieDiagram-4H26LBE5-DseNEGp2.js} +1 -1
  273. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-WJK9I25z.js → quadrantDiagram-W4KKPZXB-6Z7wr1Fi.js} +1 -1
  274. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CmrYcwOH.js → requirementDiagram-4Y6WPE33-CVOlCRPf.js} +1 -1
  275. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-7SjCc4Mv.js → sankeyDiagram-5OEKKPKP-CGhgrUJZ.js} +1 -1
  276. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Dl9E0IRM.js → sequenceDiagram-3UESZ5HK-dlqmpLuQ.js} +1 -1
  277. package/web-shell/assets/{stateDiagram-AJRCARHV-CRRio7yV.js → stateDiagram-AJRCARHV-B9EW10Xb.js} +1 -1
  278. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CJTZJJ5X.js +1 -0
  279. package/web-shell/assets/{timeline-definition-PNZ67QCA-DVyXjjfq.js → timeline-definition-PNZ67QCA-BBRh0mgZ.js} +1 -1
  280. package/web-shell/assets/{vennDiagram-CIIHVFJN-Nb2Lckzq.js → vennDiagram-CIIHVFJN-B8Gs-REP.js} +1 -1
  281. package/web-shell/assets/{wardley-L42UT6IY-DuL_otIP.js → wardley-L42UT6IY-D_y80Ur7.js} +1 -1
  282. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DVI9Q4Aa.js → wardleyDiagram-YWT4CUSO-D-CNfHJ-.js} +1 -1
  283. package/web-shell/assets/{xychartDiagram-2RQKCTM6-BNjAm7KD.js → xychartDiagram-2RQKCTM6-DQ5CvELo.js} +1 -1
  284. package/web-shell/index.html +1 -1
  285. package/web-shell/assets/channel-DXaHnfjS.js +0 -1
  286. package/web-shell/assets/classDiagram-4FO5ZUOK-BigU82A0.js +0 -1
  287. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BigU82A0.js +0 -1
  288. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-1atT7XaU.js +0 -1
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  BaseJsonOutputAdapter
5
- } from "./chunk-NGJOAKJY.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-RFUHDCNF.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-KHUA3NQV.js";
36
+ } from "./chunk-F4SQY4RB.js";
33
37
  import {
34
38
  getToolResponseDisplayText,
35
39
  stripTrailingUserPromptSubmitContextPart
36
- } from "./chunk-A4VTILZT.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-A4VTILZT.js";
5
+ } from "./chunk-I3LJQR5I.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-KHUA3NQV.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
11
  } from "./chunk-KGJGEEVR.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-KHUA3NQV.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-KHUA3NQV.js";
24
+ } from "./chunk-F4SQY4RB.js";
25
25
  import {
26
26
  getHomeEnvFallbackVars,
27
27
  loadEnvironment,
28
28
  preResolveHomeEnvOverrides
29
- } from "./chunk-RK2EE3T7.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-ACZRB7AD.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-A4VTILZT.js";
49
+ } from "./chunk-I3LJQR5I.js";
50
50
  import {
51
51
  stripRuntimeSnapshotPrefix
52
- } from "./chunk-DIT4V3XH.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
  },
@@ -4695,6 +4708,11 @@ function getSettingsWarnings(loadedSettings) {
4695
4708
  `Warning: security.allowPrivateNetworkHooks in workspace settings (${workspaceFile.path}) is ignored. This setting is only honored from User, System, or SystemDefaults scope settings.`
4696
4709
  );
4697
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
+ }
4698
4716
  return [...warningSet];
4699
4717
  }
4700
4718
  __name(getSettingsWarnings, "getSettingsWarnings");
@@ -4710,19 +4728,20 @@ function tagMcpServerScope(settings, scope) {
4710
4728
  return { ...settings, mcpServers: tagged };
4711
4729
  }
4712
4730
  __name(tagMcpServerScope, "tagMcpServerScope");
4713
- function stripWorkspacePrivateNetworkHooks(settings) {
4714
- if (settings.security?.allowPrivateNetworkHooks === void 0) {
4731
+ function stripWorkspaceSecurityBypasses(settings) {
4732
+ if (settings.security?.allowPrivateNetworkHooks === void 0 && settings.security?.allowedInsecureVoiceBaseUrls === void 0) {
4715
4733
  return settings;
4716
4734
  }
4717
- const { allowPrivateNetworkHooks: _stripped, ...restSecurity } = settings.security;
4735
+ const {
4736
+ allowPrivateNetworkHooks: _privateHooks,
4737
+ allowedInsecureVoiceBaseUrls: _insecureVoice,
4738
+ ...restSecurity
4739
+ } = settings.security;
4718
4740
  return { ...settings, security: restSecurity };
4719
4741
  }
4720
- __name(stripWorkspacePrivateNetworkHooks, "stripWorkspacePrivateNetworkHooks");
4742
+ __name(stripWorkspaceSecurityBypasses, "stripWorkspaceSecurityBypasses");
4721
4743
  function mergeSettings(system, systemDefaults, user, workspace, isTrusted) {
4722
- const safeWorkspace = isTrusted ? tagMcpServerScope(
4723
- stripWorkspacePrivateNetworkHooks(workspace),
4724
- "workspace"
4725
- ) : {};
4744
+ const safeWorkspace = isTrusted ? tagMcpServerScope(stripWorkspaceSecurityBypasses(workspace), "workspace") : {};
4726
4745
  return customDeepMerge(
4727
4746
  getMergeStrategyForPath,
4728
4747
  {},
@@ -4789,17 +4808,29 @@ var LoadedSettings = class {
4789
4808
  throw new Error(`Invalid scope: ${scope}`);
4790
4809
  }
4791
4810
  }
4792
- setValue(scope, key, value, assertCanCommit) {
4811
+ setValue(scope, key, value, assertCanCommit, opts = {}) {
4793
4812
  if (key === "model.name" && typeof value === "string") {
4794
4813
  value = stripRuntimeSnapshotPrefix(value);
4795
4814
  }
4796
4815
  assertCanCommit?.();
4797
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
+ }
4798
4828
  setNestedPropertySafe(settingsFile.settings, key, value);
4799
4829
  setNestedPropertySafe(settingsFile.originalSettings, key, value);
4800
4830
  this._merged = this.computeMergedSettings();
4801
- const replacePath = key === "mcpServers" ? key.split(".") : [];
4802
- saveSettings(settingsFile, createSettingsUpdate(key, value), replacePath);
4831
+ if (!opts.throwOnWriteFailure) {
4832
+ saveSettings(settingsFile, createSettingsUpdate(key, value), replacePath);
4833
+ }
4803
4834
  }
4804
4835
  setValues(writes, onScopeCommitted, assertCanCommit) {
4805
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-QWAEBTR5.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-KHUA3NQV.js";
11
+ } from "./chunk-F4SQY4RB.js";
12
12
  import {
13
13
  So
14
- } from "./chunk-A4VTILZT.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";
@@ -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-QWAEBTR5.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-A4VTILZT.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";
@@ -1,11 +1,11 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ formatHistoryGapNotice
5
+ } from "./chunk-TPQ6RO65.js";
3
6
  import {
4
7
  sanitizeTerminalText
5
8
  } from "./chunk-4NFY2S7N.js";
6
- import {
7
- formatHistoryGapNotice
8
- } from "./chunk-RFUHDCNF.js";
9
9
  import {
10
10
  isGoalStatusKind,
11
11
  isTerminalGoalStatusKind
@@ -19,18 +19,18 @@ import {
19
19
  setGoalTerminalObserver,
20
20
  setLastGoalTerminal,
21
21
  unregisterGoalHook
22
- } from "./chunk-A4VTILZT.js";
22
+ } from "./chunk-I3LJQR5I.js";
23
23
  import {
24
24
  apiActivityTracker,
25
25
  formatVisionBridgeNoticeDisplay,
26
26
  isVisionBridgeNoticeDisplay
27
- } from "./chunk-PX5DNLSA.js";
27
+ } from "./chunk-FTJUO7R2.js";
28
28
  import {
29
29
  ToolNames
30
- } from "./chunk-D7D7RXIJ.js";
30
+ } from "./chunk-IC4Z6LX6.js";
31
31
  import {
32
32
  createDebugLogger
33
- } from "./chunk-3RXUYQJI.js";
33
+ } from "./chunk-OIVKILPI.js";
34
34
  import {
35
35
  writeStderrLine,
36
36
  writeStderrLineSafe
@@ -2869,7 +2869,7 @@ async function extractMetadata(conversation, config) {
2869
2869
  const gitBranch = firstRecord?.gitBranch;
2870
2870
  let gitRepo;
2871
2871
  if (cwd) {
2872
- const { getGitRepoName } = await import("./deferred-core-runtime-QWAEBTR5.js");
2872
+ const { getGitRepoName } = await import("./deferred-core-runtime-ONWSGDPN.js");
2873
2873
  gitRepo = getGitRepoName(cwd);
2874
2874
  }
2875
2875
  let model;
@@ -5,12 +5,12 @@ import {
5
5
  } from "./chunk-4NFY2S7N.js";
6
6
  import {
7
7
  t
8
- } from "./chunk-KHUA3NQV.js";
8
+ } from "./chunk-F4SQY4RB.js";
9
9
  import {
10
10
  fetchGitDiff,
11
11
  findProviderByCredentials,
12
12
  resolveMetadataKey
13
- } from "./chunk-A4VTILZT.js";
13
+ } from "./chunk-I3LJQR5I.js";
14
14
  import {
15
15
  init_esbuild_shims
16
16
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  getTasksDir
5
- } from "./chunk-33FNCQSY.js";
5
+ } from "./chunk-7MH4J33A.js";
6
6
  import {
7
7
  require_proper_lockfile
8
8
  } from "./chunk-KRXPRVGL.js";
@@ -11,11 +11,11 @@ import {
11
11
  } from "./chunk-VGC4I5JJ.js";
12
12
  import {
13
13
  atomicWriteJSON
14
- } from "./chunk-UH7Z7Y45.js";
14
+ } from "./chunk-FOGU3LJX.js";
15
15
  import {
16
16
  createDebugLogger,
17
17
  isNodeError
18
- } from "./chunk-3RXUYQJI.js";
18
+ } from "./chunk-OIVKILPI.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  registerCleanup
5
- } from "./chunk-RHTTKJTP.js";
5
+ } from "./chunk-WIAN5MYB.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";