@qwen-code/qwen-code 0.22.0 → 0.22.1

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 (449) hide show
  1. package/bundled/computer-use/SKILL.md +229 -0
  2. package/bundled/computer-use/agents/openai.yaml +4 -0
  3. package/bundled/coordinate/SKILL.md +5 -5
  4. package/bundled/qc-helper/docs/configuration/auth.md +7 -7
  5. package/bundled/qc-helper/docs/configuration/model-providers.md +70 -9
  6. package/bundled/qc-helper/docs/configuration/settings.md +40 -40
  7. package/bundled/qc-helper/docs/extension/introduction.md +3 -1
  8. package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
  9. package/bundled/qc-helper/docs/features/channels/dingtalk.md +12 -0
  10. package/bundled/qc-helper/docs/features/channels/dws.md +120 -0
  11. package/bundled/qc-helper/docs/features/channels/overview.md +3 -3
  12. package/bundled/qc-helper/docs/features/code-review.md +25 -21
  13. package/bundled/qc-helper/docs/features/commands.md +2 -2
  14. package/bundled/qc-helper/docs/features/computer-use.md +57 -51
  15. package/bundled/qc-helper/docs/features/mcp.md +35 -12
  16. package/bundled/qc-helper/docs/features/sub-agents.md +1 -1
  17. package/bundled/qc-helper/docs/features/worktree.md +1 -1
  18. package/bundled/qc-helper/docs/overview.md +1 -1
  19. package/bundled/qc-helper/docs/quickstart.md +1 -1
  20. package/bundled/qc-helper/docs/qwen-serve.md +29 -6
  21. package/bundled/review/SKILL.md +119 -417
  22. package/bundled/review/references/aone.md +18 -0
  23. package/bundled/review/references/persistence.md +105 -0
  24. package/bundled/review/references/posting.md +270 -0
  25. package/chunks/MaxSizedBox-UUTUE42J.js +112 -0
  26. package/chunks/{StandaloneSessionPicker-KTHPCSR6.js → StandaloneSessionPicker-XF2TVJFK.js} +87 -86
  27. package/chunks/{acp-startup-profiler-T4GEAPLX.js → acp-startup-profiler-GNYAL6LI.js} +2 -2
  28. package/chunks/{acpAgent-CRY3JZ5O.js → acpAgent-GY53MJIW.js} +2216 -1931
  29. package/chunks/agent-7U6CC5KF.js +97 -0
  30. package/chunks/agent-headless-32O4L2CT.js +87 -0
  31. package/chunks/{anthropicContentGenerator-Y2OX6LS4.js → anthropicContentGenerator-U76GTVB6.js} +128 -58
  32. package/chunks/{artifact-tool-SBXMTVCB.js → artifact-tool-XDJCZZCF.js} +2 -2
  33. package/chunks/{askUserQuestion-KEQJRFD6.js → askUserQuestion-ZXXERLEV.js} +2 -2
  34. package/chunks/bridge-DFX2FFH4.js +119 -0
  35. package/chunks/{ca-D3F4S6NG.js → ca-7HPYOYSZ.js} +3 -0
  36. package/chunks/{channel-management-service-IRTT7RNE.js → channel-management-service-HXXS3HOZ.js} +4 -4
  37. package/chunks/channel-settings-store-ELLH2M4M.js +117 -0
  38. package/chunks/{channel-worker-group-BJNMR2MP.js → channel-worker-group-EVDC2P4K.js} +8 -7
  39. package/chunks/{channel-worker-manager-EMA7CQDJ.js → channel-worker-manager-IJJZHGEI.js} +8 -7
  40. package/chunks/{channel-worker-supervisor-F6I6WSWW.js → channel-worker-supervisor-YSKB5GVB.js} +12 -7
  41. package/chunks/{chunk-2TRNCJK4.js → chunk-27ONXAFY.js} +1 -1
  42. package/chunks/{chunk-OVH5Y7KS.js → chunk-2CRNTW2B.js} +19 -3
  43. package/chunks/{read-package-up-UXSW3YPB.js → chunk-2EAZ43JQ.js} +1 -0
  44. package/chunks/{chunk-DB2OKNTU.js → chunk-2FN2HNTI.js} +2 -2
  45. package/chunks/{chunk-KM73TBQ4.js → chunk-2LD5U7Q3.js} +31 -0
  46. package/chunks/{chunk-QJHPWLZC.js → chunk-2MHGD7EE.js} +1 -1
  47. package/chunks/{chunk-BMCSKS37.js → chunk-2NCVUT3C.js} +6 -6
  48. package/chunks/{chunk-A5F2YNO6.js → chunk-2NNTE2ED.js} +245 -10
  49. package/chunks/{chunk-Z3JMO2CH.js → chunk-2SERYG4T.js} +1 -1
  50. package/chunks/{chunk-4J7OPYNS.js → chunk-2YDYDDE2.js} +6 -6
  51. package/chunks/{chunk-PXOJLJ5W.js → chunk-2YEZNBSD.js} +333 -184
  52. package/chunks/{chunk-UU4WC7DK.js → chunk-2ZV3CZKI.js} +82 -12
  53. package/chunks/{chunk-SE55HQGF.js → chunk-3B5DCAQU.js} +74 -52
  54. package/chunks/{chunk-UIRLQ3N7.js → chunk-3BV7TZNQ.js} +3 -3
  55. package/chunks/{chunk-2Z6LSQMF.js → chunk-3FSBMAYD.js} +1 -1
  56. package/chunks/{chunk-DJEHYM4H.js → chunk-3UZCLCXR.js} +3 -3
  57. package/chunks/{chunk-WWUSHZ7M.js → chunk-43C2II2G.js} +5 -5
  58. package/chunks/{chunk-2GXYDNXP.js → chunk-47SIHHPL.js} +8 -8
  59. package/chunks/{chunk-PHJJ3RVO.js → chunk-4DCP3362.js} +7 -15
  60. package/chunks/chunk-4K7NQDCG.js +104 -0
  61. package/chunks/{chunk-UZPYR3EV.js → chunk-4TPAG3O7.js} +1 -1
  62. package/chunks/{chunk-BEGIBJAZ.js → chunk-5CI4AXDD.js} +4 -4
  63. package/chunks/{chunk-7KOFLDEP.js → chunk-5JTIYALA.js} +1 -1
  64. package/chunks/{chunk-7HFULI45.js → chunk-5MK32KJV.js} +3 -3
  65. package/chunks/{chunk-CXJHQVEK.js → chunk-5PA6UEYA.js} +4 -0
  66. package/chunks/{chunk-IBJ5S45N.js → chunk-5T4LWWNX.js} +2 -2
  67. package/chunks/{chunk-VUMLT7E5.js → chunk-5Y2JCJAH.js} +2 -2
  68. package/chunks/{chunk-YZBDKFRQ.js → chunk-5ZYZPDDF.js} +993 -895
  69. package/chunks/{chunk-2A4C2MEG.js → chunk-62PXFOK4.js} +35 -12
  70. package/chunks/{chunk-IIWGSX4L.js → chunk-6E4WHQJV.js} +1 -1
  71. package/chunks/{chunk-6PCOVQO2.js → chunk-6HTMIKXZ.js} +8 -8
  72. package/chunks/{chunk-RDG44S5I.js → chunk-6KS24S3X.js} +2 -2
  73. package/chunks/{chunk-GAHYKJPV.js → chunk-6US7BF3G.js} +7 -59
  74. package/chunks/{chunk-MHG6NDS6.js → chunk-6YAR6ZU3.js} +2 -2
  75. package/chunks/{chunk-3CLIDIVQ.js → chunk-73WFGVIZ.js} +3 -3
  76. package/chunks/{chunk-ZZUVC6RI.js → chunk-76WGY6LW.js} +3 -3
  77. package/chunks/{chunk-XLDFW44M.js → chunk-77TOMRBG.js} +3 -3
  78. package/chunks/{chunk-PDL6LKB5.js → chunk-7AS7QX72.js} +1 -1
  79. package/chunks/{chunk-ND7NOI4P.js → chunk-7CWEZQ6T.js} +0 -15
  80. package/chunks/{chunk-DWCKACFL.js → chunk-7DPKPBOQ.js} +2 -2
  81. package/chunks/{chunk-45NQKMYB.js → chunk-7JPW6IYH.js} +1 -1
  82. package/chunks/{chunk-HDKCKCYO.js → chunk-7QGEJI7M.js} +1 -1
  83. package/chunks/{chunk-S4C4JJKE.js → chunk-A7X32SCT.js} +5 -5
  84. package/chunks/{chunk-O5Z7EB6Y.js → chunk-AYHQZBJ4.js} +170 -207
  85. package/chunks/{chunk-7DYNJFES.js → chunk-AYVIGUUK.js} +6 -1
  86. package/chunks/{chunk-7DMTAQJ6.js → chunk-BDHLBR46.js} +132 -49
  87. package/chunks/{chunk-43T5WDQ7.js → chunk-BFSFJR3D.js} +1 -1
  88. package/chunks/{chunk-AP3B7LKD.js → chunk-BKDAF7ES.js} +2 -2
  89. package/chunks/{chunk-B6UBOIFE.js → chunk-BQBUZDDH.js} +14 -11
  90. package/chunks/{chunk-VLRBJ24J.js → chunk-BVE5EMIG.js} +2 -2
  91. package/chunks/{chunk-P47E4SJC.js → chunk-BX2BZPFJ.js} +3 -3
  92. package/chunks/{chunk-OARZJFZX.js → chunk-C4WBKZJT.js} +4 -4
  93. package/chunks/{chunk-QKBYFU2Q.js → chunk-CFKIH3D3.js} +21 -1
  94. package/chunks/{chunk-URN2JIAQ.js → chunk-CITGRGCM.js} +2 -1
  95. package/chunks/{chunk-WU5E4HMO.js → chunk-CPPYZHBN.js} +1 -1
  96. package/chunks/chunk-DCSAVGDJ.js +20 -0
  97. package/chunks/{chunk-Q54XG7IX.js → chunk-DEYPMJPD.js} +1 -1
  98. package/chunks/{chunk-KSPRQSB4.js → chunk-DIMEPKCW.js} +52 -12
  99. package/chunks/{chunk-I432KXWD.js → chunk-DP7LABIB.js} +1 -1
  100. package/chunks/{chunk-36OF5PRW.js → chunk-E4I5MVBR.js} +7 -3
  101. package/chunks/{chunk-AW27A43Y.js → chunk-E55H6BZ7.js} +93 -1
  102. package/chunks/{chunk-K623ENWT.js → chunk-E6FGMDFQ.js} +4 -0
  103. package/chunks/{chunk-5XUTPXQU.js → chunk-EAV3TENS.js} +6 -9
  104. package/chunks/{chunk-LI4YHTQK.js → chunk-EB4VDXNI.js} +1 -1
  105. package/chunks/{chunk-JOLJTKIG.js → chunk-EC5BONC3.js} +1 -1
  106. package/chunks/{chunk-25NESM4G.js → chunk-EEQYTWGU.js} +29 -5
  107. package/chunks/{chunk-4CWDWDL6.js → chunk-EKP3M4RF.js} +1 -1
  108. package/chunks/{chunk-W4CRPSC5.js → chunk-ELY4QVIB.js} +1 -1
  109. package/chunks/{chunk-BB5IMQCV.js → chunk-EMGAVCBZ.js} +2 -2
  110. package/chunks/chunk-FBX2SDQ4.js +48 -0
  111. package/chunks/{chunk-C72BXMJ5.js → chunk-FJWICLG7.js} +1 -1
  112. package/chunks/{chunk-6FRJEE2S.js → chunk-FK4H3V6S.js} +5 -5
  113. package/chunks/{chunk-LDGWX737.js → chunk-FN5C6C7G.js} +160 -59
  114. package/chunks/{chunk-3ZFJUBTP.js → chunk-FPH6TXD3.js} +1 -1
  115. package/chunks/{chunk-WRT324N6.js → chunk-FVDQ5E67.js} +3 -3
  116. package/chunks/{chunk-VFACN2CE.js → chunk-GNMJNDZE.js} +1 -1
  117. package/chunks/{chunk-FVBVJEBG.js → chunk-GNRVKN76.js} +10 -8
  118. package/chunks/{chunk-PZRUV52H.js → chunk-GTUKW3I6.js} +20 -2
  119. package/chunks/chunk-GYTKQYDB.js +23 -0
  120. package/chunks/{chunk-VMJL7RH6.js → chunk-GZJUCMH4.js} +4 -4
  121. package/chunks/{chunk-MQP3MHWN.js → chunk-HJOWQUE2.js} +21 -15
  122. package/chunks/{chunk-ZS5BHEPD.js → chunk-I32QCIK7.js} +1 -1
  123. package/chunks/{chunk-7IV52LTO.js → chunk-I6VVOZDK.js} +2 -2
  124. package/chunks/{chunk-X7V3N6YH.js → chunk-I6YW3T3W.js} +218 -37
  125. package/chunks/{chunk-2E3V7G6Y.js → chunk-ICWGPK23.js} +55 -50
  126. package/chunks/{chunk-SQS55KR4.js → chunk-IJVDHPKD.js} +2 -2
  127. package/chunks/{chunk-QS4ENGVF.js → chunk-IKN3IUJP.js} +9 -8
  128. package/chunks/{chunk-2UZJWSVD.js → chunk-ILPXSKGQ.js} +2 -2
  129. package/chunks/{chunk-ZRYQMWEP.js → chunk-IPQA4SR5.js} +2 -2
  130. package/chunks/{chunk-XYQHT3AW.js → chunk-IRIX323G.js} +2 -2
  131. package/chunks/{chunk-5HJUPACR.js → chunk-J7MLXFC5.js} +2 -2
  132. package/chunks/{chunk-AZF6SME3.js → chunk-JECO75XD.js} +3 -3
  133. package/chunks/chunk-JLGFGPZJ.js +346 -0
  134. package/chunks/{chunk-WZDM44SB.js → chunk-JUIJ3FXC.js} +7 -7
  135. package/chunks/{chunk-A6NRNRKE.js → chunk-JVPFTDBK.js} +1 -1
  136. package/chunks/{chunk-2J3OJGTL.js → chunk-K2OJUPOE.js} +1 -21
  137. package/chunks/{chunk-GHY5OIYP.js → chunk-K63NK3KL.js} +13 -13
  138. package/chunks/{chunk-7JBHIQS2.js → chunk-KCOXDRQL.js} +7 -13
  139. package/chunks/{chunk-6NFAEG54.js → chunk-KOJ6MHD5.js} +24 -13
  140. package/chunks/{chunk-WS7PAXXR.js → chunk-KWFP3WV6.js} +18 -13
  141. package/chunks/{chunk-A5F63FEW.js → chunk-L436XFLJ.js} +1 -1
  142. package/chunks/{chunk-KIVGVFMM.js → chunk-LI2HEMKO.js} +16 -4
  143. package/chunks/{chunk-GIWB5QLV.js → chunk-LJP2BBMK.js} +4 -4
  144. package/chunks/{create-sub-session-XBCVGNFU.js → chunk-LRKMQPMD.js} +4 -6
  145. package/chunks/{chunk-6UQSU7CQ.js → chunk-MDZO5V2O.js} +58 -107
  146. package/chunks/{chunk-AO4M6NMD.js → chunk-MW5AHWOZ.js} +60 -20
  147. package/chunks/{chunk-FYZMB6DB.js → chunk-MYLXL7F6.js} +11 -11
  148. package/chunks/{chunk-ZLCT4C5A.js → chunk-MZS7GEC7.js} +1 -1
  149. package/chunks/{chunk-VEND4KA4.js → chunk-NER3H7PI.js} +1 -1
  150. package/chunks/{chunk-AVCCKIZ6.js → chunk-NVK4HJYQ.js} +1 -1
  151. package/chunks/{chunk-MPHLIJYL.js → chunk-NY3IJYAV.js} +14 -8
  152. package/chunks/{chunk-XZJKSETB.js → chunk-O3BUXIPM.js} +3 -3
  153. package/chunks/{chunk-4XPSVIED.js → chunk-O5YGAEQS.js} +6 -6
  154. package/chunks/{chunk-NW35NVFN.js → chunk-ODXCSIH5.js} +4 -4
  155. package/chunks/{chunk-5XHAOUWD.js → chunk-OI2DR6QB.js} +3 -3
  156. package/chunks/{chunk-BUGYW6FB.js → chunk-OQ6LTSX3.js} +1 -1
  157. package/chunks/{chunk-J5ZDDUKM.js → chunk-OT26ITEY.js} +4 -4
  158. package/chunks/{chunk-EFB657PR.js → chunk-OX44MOAN.js} +3 -3
  159. package/chunks/{chunk-LURJYO2T.js → chunk-OZ6KS6KW.js} +4 -0
  160. package/chunks/{chunk-4F5WV4RF.js → chunk-PAJGKZAA.js} +281 -10
  161. package/chunks/{chunk-HIK2OF33.js → chunk-PVBT5QPD.js} +1 -1
  162. package/chunks/chunk-QHMLYMMS.js +32 -0
  163. package/chunks/{chunk-U2UYQMM6.js → chunk-R2ZJH3FV.js} +3 -3
  164. package/chunks/{chunk-K52PZNU4.js → chunk-RRKNX553.js} +2 -2
  165. package/chunks/chunk-RXFQM6FQ.js +42 -0
  166. package/chunks/{chunk-SJ4HB27T.js → chunk-SDVF6A42.js} +3 -3
  167. package/chunks/{chunk-TBVSALA3.js → chunk-SKNVVYIJ.js} +3 -3
  168. package/chunks/{chunk-JGUBDRBC.js → chunk-SLEWBQWM.js} +3 -3
  169. package/chunks/{chunk-ZRFUT5VV.js → chunk-SM7ZVKTF.js} +7 -7
  170. package/chunks/{chunk-UUQFJILB.js → chunk-SQPOJ4ZI.js} +15 -3
  171. package/chunks/{chunk-RPJQ3O4M.js → chunk-SRGENTPF.js} +31 -41
  172. package/chunks/{chunk-ISJMN3ML.js → chunk-T2CRBIDJ.js} +1 -1
  173. package/chunks/{chunk-MZKWFWVG.js → chunk-T2HMXHYA.js} +6 -6
  174. package/chunks/{chunk-FEMQ6Y7W.js → chunk-T6OODF2U.js} +47 -126
  175. package/chunks/{chunk-VYC7XFYV.js → chunk-TKO4TLT6.js} +5 -5
  176. package/chunks/{chunk-KVGR4MCF.js → chunk-TOF4UZHH.js} +3 -3
  177. package/chunks/{chunk-LD5VIJ7S.js → chunk-TWSKM647.js} +1 -1
  178. package/chunks/{chunk-7NBVNAJJ.js → chunk-UCSV2IZW.js} +3 -3
  179. package/chunks/{chunk-FDD2IUEL.js → chunk-UX3IFLJM.js} +229 -21
  180. package/chunks/{chunk-YDJRMQU4.js → chunk-V3GINY6K.js} +3 -3
  181. package/chunks/{chunk-XL5K4SVK.js → chunk-VL4YX3FH.js} +1 -1
  182. package/chunks/{chunk-62JOGZL5.js → chunk-VMDURMFY.js} +199 -87
  183. package/chunks/{chunk-OE52YHCZ.js → chunk-W2WRNJKX.js} +11 -11
  184. package/chunks/{chunk-YLFLHKDL.js → chunk-W3N5XAZ6.js} +1 -1
  185. package/chunks/{chunk-IWOWEENB.js → chunk-WBT3STGU.js} +385 -25
  186. package/chunks/{chunk-S3G6YFQC.js → chunk-WEGXPP5E.js} +1 -1
  187. package/chunks/{chunk-RDQ7QB4Y.js → chunk-XJS54K4A.js} +2 -2
  188. package/chunks/{chunk-L4HVF7LM.js → chunk-XNXWEGKB.js} +3 -3
  189. package/chunks/{chunk-T6XLJRQY.js → chunk-XYX474JQ.js} +36509 -5182
  190. package/chunks/{chunk-F6WFNA7U.js → chunk-XZA32HII.js} +3 -6
  191. package/chunks/{chunk-NUGZAFR2.js → chunk-ZEADBZLO.js} +147 -6
  192. package/chunks/chunk-ZELCTN6Y.js +29 -0
  193. package/chunks/{chunk-TQOF5KBL.js → chunk-ZEZKIS2K.js} +0 -31
  194. package/chunks/{chunk-IOSEW6KP.js → chunk-ZJG323IA.js} +5 -4
  195. package/chunks/{chunk-VSNPOSDN.js → chunk-ZKAZP2ZG.js} +107 -12
  196. package/chunks/{chunk-YMVFIYHV.js → chunk-ZLTEQYNC.js} +2 -2
  197. package/chunks/{chunk-O5BDEWBC.js → chunk-ZWKGZB2K.js} +3 -3
  198. package/chunks/{chunk-6QSA4JHL.js → chunk-ZXDM7DYV.js} +2772 -814
  199. package/chunks/chunk-ZYNTSXWK.js +32 -0
  200. package/chunks/config-utils-7M6PCTLT.js +113 -0
  201. package/chunks/contextCommand-G4QG3TW6.js +108 -0
  202. package/chunks/{core-runtime-CES6JSVV.js → core-runtime-PKNQ63VL.js} +63 -58
  203. package/chunks/{create-sub-session-UJTPMVOG.js → create-sub-session-PLGPY6TV.js} +60 -58
  204. package/chunks/create-sub-session-RVHSWVAP.js +17 -0
  205. package/chunks/{cron-create-IKA56DAF.js → cron-create-IJGVR5R2.js} +4 -4
  206. package/chunks/{cron-delete-K5Q62EGH.js → cron-delete-4N5BI6GL.js} +4 -4
  207. package/chunks/{cron-list-QBFGAMP7.js → cron-list-2CATIPUX.js} +4 -4
  208. package/chunks/{daemon-RZZUPGOJ.js → daemon-NAYK4XXU.js} +51 -24
  209. package/chunks/{daemon-git-worktree-guard-3QY2BQYB.js → daemon-git-worktree-guard-LDBJXH2U.js} +338 -92
  210. package/chunks/daemon-status-provider-F5FEHVVG.js +118 -0
  211. package/chunks/daemon-trust-policy-C6YTU5CQ.js +114 -0
  212. package/chunks/{daemon-trust-policy-monitor-TK4K7M63.js → daemon-trust-policy-monitor-IGEJPHQ4.js} +68 -66
  213. package/chunks/{de-RYUHH2C6.js → de-X6HLSIFE.js} +1 -0
  214. package/chunks/deferred-core-runtime-GHT3GDOR.js +116 -0
  215. package/chunks/{display-image-OEJMJV3S.js → display-image-DR55LL6M.js} +5 -5
  216. package/chunks/dist-4Q7NTUNB.js +2512 -0
  217. package/chunks/{dist-ESS34DHC.js → dist-6H6RZ5H6.js} +2 -2
  218. package/chunks/{dist-LZO24N3E.js → dist-7CKN54NL.js} +1 -1
  219. package/chunks/{dist-5EV2G6MC.js → dist-DJBNNPLN.js} +1 -1
  220. package/chunks/{dist-J6P3C52Z.js → dist-FVJZSIO4.js} +28 -7
  221. package/chunks/{dist-K7IQB53U.js → dist-SATKXKUR.js} +1 -1
  222. package/chunks/{dist-ES6HNUW2.js → dist-TJUDJTCB.js} +246 -17
  223. package/chunks/{dist-VVQBOKDH.js → dist-UQUFZDIY.js} +1 -1
  224. package/chunks/{dist-2OG3PGKO.js → dist-ZBVOXSKF.js} +3 -3
  225. package/chunks/earlyInputCapture-HOSJTLWP.js +109 -0
  226. package/chunks/{edit-A2633SLR.js → edit-KSPVUEAS.js} +48 -48
  227. package/chunks/{en-3RHLPITS.js → en-6MDBWMTG.js} +3 -0
  228. package/chunks/{enter-worktree-OIAHE2TB.js → enter-worktree-UOZ6ZTP7.js} +7 -8
  229. package/chunks/{enterPlanMode-SUGIKLR7.js → enterPlanMode-DZTABSKN.js} +47 -47
  230. package/chunks/environment-JXOSW25V.js +131 -0
  231. package/chunks/errors-IOXFDE4J.js +115 -0
  232. package/chunks/{exit-worktree-3UT3SSWT.js → exit-worktree-G2QATUCV.js} +7 -8
  233. package/chunks/exitPlanMode-PZG4FXRB.js +85 -0
  234. package/chunks/{fast-path-3AVP3G35.js → fast-path-EBS7NAVL.js} +28 -7
  235. package/chunks/{fast-path-settings-WHX3J3ZI.js → fast-path-settings-XMFBYFUH.js} +2 -2
  236. package/chunks/{fr-4PL5GHG4.js → fr-FTZWF462.js} +1 -0
  237. package/chunks/{gemini-7PVQWHTH.js → gemini-JELEKOVS.js} +129 -123
  238. package/chunks/{geminiContentGenerator-B2FOJJDJ.js → geminiContentGenerator-I2CKP7XI.js} +16 -13
  239. package/chunks/{glob-7YGXE6OV.js → glob-TDVEVPQZ.js} +47 -47
  240. package/chunks/{goal-tools-TLJCE7YZ.js → goal-tools-CNVXMSZD.js} +72 -28
  241. package/chunks/{grep-6DV6LTON.js → grep-3NLSS32D.js} +6 -6
  242. package/chunks/handleAutoUpdate-AWAGHKOX.js +111 -0
  243. package/chunks/i18n-CYA25C5F.js +126 -0
  244. package/chunks/{image-gen-7CSCJ73T.js → image-gen-63NN2H5N.js} +9 -11
  245. package/chunks/initializer-JD2FLNLO.js +115 -0
  246. package/chunks/installationInfo-N3DCWVWR.js +109 -0
  247. package/chunks/{ja-HZ7X7PQO.js → ja-2GL5FKYJ.js} +1 -0
  248. package/chunks/{keychain-token-storage-MTFTAESK.js → keychain-token-storage-3MGFRYGM.js} +2 -2
  249. package/chunks/list-XDQAUET5.js +118 -0
  250. package/chunks/{list-agents-43XUEXJV.js → list-agents-EXRSHIDJ.js} +2 -2
  251. package/chunks/loadedSettingsAdapter-IK7H5JRK.js +112 -0
  252. package/chunks/{loggingContentGenerator-RNE66CKK.js → loggingContentGenerator-CZWUAHAI.js} +27 -30
  253. package/chunks/{loop-wakeup-E54KDUXC.js → loop-wakeup-XBPB2BRO.js} +5 -5
  254. package/chunks/{ls-CGL2UC3H.js → ls-WFONAND2.js} +4 -4
  255. package/chunks/{lsp-5IKUO5DX.js → lsp-DUKPDUXN.js} +2 -2
  256. package/chunks/{managed-npm-update-Y3SC3GLJ.js → managed-npm-update-54W23SP5.js} +61 -59
  257. package/chunks/mcp-2E7ZLMEE.js +112 -0
  258. package/chunks/{monitor-PXYSGSUN.js → monitor-A4J5QRGJ.js} +47 -47
  259. package/chunks/nonInteractiveCli-ZNDXB62Y.js +185 -0
  260. package/chunks/{notebook-edit-ISIBJVBR.js → notebook-edit-4ANFZON5.js} +48 -48
  261. package/chunks/open-with-auth-4UI3KHUR.js +55 -0
  262. package/chunks/{openaiContentGenerator-6TBOPEGT.js → openaiContentGenerator-JCCJJQZC.js} +29 -30
  263. package/chunks/pidfile-DHV2Y7UD.js +113 -0
  264. package/chunks/{processUtils-YK2TDTTU.js → processUtils-JJAR56SO.js} +2 -2
  265. package/chunks/prompt-terminal-ledger-LDZ6QVYA.js +107 -0
  266. package/chunks/{pt-QT5N2Q6Q.js → pt-XN2YWJVM.js} +1 -0
  267. package/chunks/{qwenContentGenerator-CLDMA2Y4.js → qwenContentGenerator-5JM44ZSA.js} +53 -59
  268. package/chunks/{qwenOAuth2-DLDR6UC5.js → qwenOAuth2-JIYAWXTW.js} +8 -10
  269. package/chunks/{read-file-2HOD2ATO.js → read-file-N3E5DY7N.js} +13 -14
  270. package/chunks/{read-mcp-resource-XYES2B42.js → read-mcp-resource-7A7NFSFL.js} +2 -2
  271. package/chunks/read-package-up-6T6ICKR7.js +13 -0
  272. package/chunks/{record-artifact-W3IBTGL7.js → record-artifact-CPJ4IJSD.js} +4 -5
  273. package/chunks/report-findings-VFM5DENC.js +33 -0
  274. package/chunks/request-shutdown-AXVOFN5C.js +133 -0
  275. package/chunks/resumeHistoryUtils-YQRITQAG.js +120 -0
  276. package/chunks/ripGrep-NEIHKBKB.js +39 -0
  277. package/chunks/{ru-STMG5BPD.js → ru-OLTMFJEW.js} +1 -0
  278. package/chunks/{run-qwen-serve-XJHOW2NY.js → run-qwen-serve-IWGPZADI.js} +622 -79
  279. package/chunks/{runtime-J4SPTJRQ.js → runtime-I76HPFUE.js} +73 -71
  280. package/chunks/{scheduler-VRAEZZ4E.js → scheduler-M6YL4K4I.js} +62 -60
  281. package/chunks/{sdk-exporters-http-RSIOP3G2.js → sdk-exporters-http-XXSKBD2C.js} +5 -5
  282. package/chunks/{sdk-impl-CB3KARSK.js → sdk-impl-VPNBLV7I.js} +7 -7
  283. package/chunks/{send-message-J4VT46OI.js → send-message-A2GXDX3B.js} +10 -31
  284. package/chunks/serve-XY5S63GN.js +120 -0
  285. package/chunks/{server-74ONDK62.js → server-TWXRRREO.js} +965 -405
  286. package/chunks/{session-BO6VBWJP.js → session-IT5ZXU7A.js} +151 -140
  287. package/chunks/{settings-35QZNFDG.js → settings-IX5HOOCG.js} +71 -69
  288. package/chunks/shell-LZ55AAJB.js +95 -0
  289. package/chunks/{skill-DKEMQSNJ.js → skill-WSZ53D2R.js} +108 -25
  290. package/chunks/skill-settings-5U7FTJIK.js +120 -0
  291. package/chunks/spawnChannel-TMC6VXGN.js +113 -0
  292. package/chunks/standalone-update-CUYGWTR4.js +120 -0
  293. package/chunks/{startInteractiveUI-J2QSGWPU.js → startInteractiveUI-O6BI2OSA.js} +381 -293
  294. package/chunks/{syntheticOutput-JAXMIMZP.js → syntheticOutput-5AJ444QT.js} +3 -3
  295. package/chunks/{task-create-I2H322E4.js → task-create-CDJSOEQD.js} +11 -11
  296. package/chunks/{task-list-3OLIWFTQ.js → task-list-BELMPA75.js} +5 -5
  297. package/chunks/{task-stop-JAUY6MSY.js → task-stop-U3S3KZG2.js} +2 -2
  298. package/chunks/{task-update-B3XO4CPI.js → task-update-77VCFDDZ.js} +11 -11
  299. package/chunks/{team-create-W534PMGX.js → team-create-UF4TMQEH.js} +48 -48
  300. package/chunks/{team-delete-Q7GE7RRI.js → team-delete-YWFXX77L.js} +5 -5
  301. package/chunks/{team-plan-approval-WNV6P6NG.js → team-plan-approval-U57NSR6C.js} +47 -47
  302. package/chunks/terminal-image-renderer-DRL3BROJ.js +116 -0
  303. package/chunks/theme-manager-HHJPUDRN.js +104 -0
  304. package/chunks/{todoWrite-FJJTY2TI.js → todoWrite-435EO2CS.js} +4 -4
  305. package/chunks/{tool-search-Y4KL3LRE.js → tool-search-SV35UV72.js} +18 -19
  306. package/chunks/total-session-admission-TQI7TCTL.js +114 -0
  307. package/chunks/trustedFolders-YKK67IP3.js +124 -0
  308. package/chunks/{update-relaunch-OHVFN6KF.js → update-relaunch-DX7LVA4P.js} +6 -6
  309. package/chunks/updateCheck-6JRTKTUF.js +120 -0
  310. package/chunks/useAutoAcceptIndicator-MYXYSKSL.js +122 -0
  311. package/chunks/{validateNonInterActiveAuth-WJXH426F.js → validateNonInterActiveAuth-B26O4YJP.js} +113 -106
  312. package/chunks/{version-QMDRADXM.js → version-K5D7VJ4B.js} +2 -2
  313. package/chunks/{web-fetch-ROS6P4LP.js → web-fetch-VFHZLLNZ.js} +25 -242
  314. package/chunks/{web-search-JS3E76O6.js → web-search-AQE5A4J5.js} +11 -11
  315. package/chunks/{web-shell-static-3NUTRHAH.js → web-shell-static-A6QMUNNV.js} +11 -4
  316. package/chunks/webapi-Z5OM224P.js +4118 -0
  317. package/chunks/{workflow-2FCMBTBZ.js → workflow-XL6AEUZ7.js} +635 -94
  318. package/chunks/workspace-providers-status-H6TG34YV.js +116 -0
  319. package/chunks/{workspace-registration-store-SU4EJKSD.js → workspace-registration-store-I4U3V5LL.js} +1 -1
  320. package/chunks/workspace-registry-2PWNIYNI.js +123 -0
  321. package/chunks/workspace-service-4FGTUJLA.js +131 -0
  322. package/chunks/workspace-skills-status-7VOLUDT6.js +115 -0
  323. package/chunks/{workspace-trust-reconciler-4Y4F7XIX.js → workspace-trust-reconciler-GJ466KCE.js} +74 -73
  324. package/chunks/write-file-PWOYCT2K.js +90 -0
  325. package/chunks/{zh-TW-NX43Z2S2.js → zh-TW-MV4FWFB6.js} +3 -0
  326. package/chunks/{zh-3JQ75KFU.js → zh-X3WGU6SI.js} +3 -0
  327. package/chunks/{zoom-image-DNBKCGGF.js → zoom-image-NYJPC3NI.js} +13 -14
  328. package/cli.js +15 -15
  329. package/locales/ca.js +3 -0
  330. package/locales/de.js +1 -0
  331. package/locales/en.js +3 -0
  332. package/locales/fr.js +1 -0
  333. package/locales/ja.js +1 -0
  334. package/locales/pt.js +1 -0
  335. package/locales/ru.js +1 -0
  336. package/locales/zh-TW.js +3 -0
  337. package/locales/zh.js +3 -0
  338. package/package.json +3 -3
  339. package/web-shell/assets/{abnfDiagram-VCTEODGH-DWHXEVlf.js → abnfDiagram-VCTEODGH-yq7z7Anb.js} +1 -1
  340. package/web-shell/assets/{arc-CXKjm86V.js → arc-CbJO0xnT.js} +1 -1
  341. package/web-shell/assets/{architectureDiagram-5GKGNRK7-B_ynI0cX.js → architectureDiagram-5GKGNRK7-CRh89421.js} +1 -1
  342. package/web-shell/assets/{blockDiagram-NRAW4CY4-DMebd9X0.js → blockDiagram-NRAW4CY4-C75KAhKv.js} +1 -1
  343. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BZ5BlxS-.js → c4Diagram-UCG6FXSJ-BzlMveFB.js} +1 -1
  344. package/web-shell/assets/channel-B3sGR79J.js +1 -0
  345. package/web-shell/assets/{chunk-2Q5K7J3B-CluJKopE.js → chunk-2Q5K7J3B-DA8QDX3a.js} +1 -1
  346. package/web-shell/assets/{chunk-5VM5RSS4-hzDAPFOo.js → chunk-5VM5RSS4-Bgu7gQ7Y.js} +1 -1
  347. package/web-shell/assets/{chunk-F27PBJKO-6vHioKJe.js → chunk-F27PBJKO-BOew7pIK.js} +1 -1
  348. package/web-shell/assets/{chunk-G27WJ6UU-B_5hKTGo.js → chunk-G27WJ6UU-DHx1I-hO.js} +1 -1
  349. package/web-shell/assets/{chunk-JWPE2WC7-CO9VoFCH.js → chunk-JWPE2WC7-SarFW0WU.js} +1 -1
  350. package/web-shell/assets/{chunk-LCL6LL3I-7L5JpxYu.js → chunk-LCL6LL3I-BLzP083Z.js} +1 -1
  351. package/web-shell/assets/{chunk-POPQ4Y6H-DHLJMAqj.js → chunk-POPQ4Y6H-Bmkv_iKm.js} +1 -1
  352. package/web-shell/assets/{chunk-SVP7TREG-Dt-4Cqdl.js → chunk-SVP7TREG-MPx9r1N2.js} +1 -1
  353. package/web-shell/assets/{chunk-XXDRQBXY-QlSQ3ssG.js → chunk-XXDRQBXY-Ck-09rKG.js} +1 -1
  354. package/web-shell/assets/classDiagram-DTDB5LWJ-sTGo0K3v.js +1 -0
  355. package/web-shell/assets/classDiagram-v2-JRS7N3AN-sTGo0K3v.js +1 -0
  356. package/web-shell/assets/{cose-bilkent-JH36ORCC-DMw3EOxl.js → cose-bilkent-JH36ORCC-DWm6lfOG.js} +1 -1
  357. package/web-shell/assets/{cynefin-OW5HDTMX-s6vEA7RQ.js → cynefin-OW5HDTMX-DcBUyr5R.js} +1 -1
  358. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-AOKsvYLt.js → cynefinDiagram-5FMLGOSQ-Df8qmd_p.js} +1 -1
  359. package/web-shell/assets/{dagre-3AP2YEHR-9QAZn3m7.js → dagre-3AP2YEHR-DDmGspD7.js} +1 -1
  360. package/web-shell/assets/{diagram-S7CK7UJ4-CWpnu4FN.js → diagram-S7CK7UJ4-BK_qFvbi.js} +1 -1
  361. package/web-shell/assets/{diagram-UQ7AKVKN-9l0jXD8q.js → diagram-UQ7AKVKN-Uw3AP_bi.js} +1 -1
  362. package/web-shell/assets/{diagram-VSXAHHWV-BMUHroj4.js → diagram-VSXAHHWV-CJOQKxY7.js} +1 -1
  363. package/web-shell/assets/{diagram-VX7I27RA-Co9x27vm.js → diagram-VX7I27RA-DhdvZna5.js} +1 -1
  364. package/web-shell/assets/{diagram-Z3DM3KII-BKnTeOER.js → diagram-Z3DM3KII-edQU0nlP.js} +1 -1
  365. package/web-shell/assets/{ebnfDiagram-PWID7BFC-QBZD9CKG.js → ebnfDiagram-PWID7BFC-4kugBEsO.js} +1 -1
  366. package/web-shell/assets/{erDiagram-SSCWMZ5O-dKWAEGun.js → erDiagram-SSCWMZ5O-BMkFivWO.js} +1 -1
  367. package/web-shell/assets/{flowDiagram-A5DVABFB-CR_UgVqj.js → flowDiagram-A5DVABFB-BM1ea8g-.js} +1 -1
  368. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DQUnjWO6.js → ganttDiagram-EL5Y4UJY-CXj_cKRf.js} +1 -1
  369. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-C4j59wPL.js → gitGraphDiagram-WWUBYQGX-D0nEqwqu.js} +1 -1
  370. package/web-shell/assets/{index-tYXRIPz4.js → index-B6JN54Pd.js} +1 -1
  371. package/web-shell/assets/{index-BN_m_uHJ.css → index-C-XlQn24.css} +1 -1
  372. package/web-shell/assets/index-DLjXM0dn.js +1860 -0
  373. package/web-shell/assets/{infoDiagram-RXCK75RN-mzqbt50w.js → infoDiagram-RXCK75RN-DF7aGGbQ.js} +1 -1
  374. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-ChLOqhGl.js → ishikawaDiagram-5VMMS53U-CZYNX1lL.js} +1 -1
  375. package/web-shell/assets/{journeyDiagram-EYS64GPL-SifZE-R8.js → journeyDiagram-EYS64GPL-CvrqMUz1.js} +1 -1
  376. package/web-shell/assets/{kanban-definition-3QL26DDD-Sft2qlbc.js → kanban-definition-3QL26DDD-BZNJQZBj.js} +1 -1
  377. package/web-shell/assets/{layout-O2uHVkPd.js → layout-Bf83x7D6.js} +1 -1
  378. package/web-shell/assets/{linear-BVqYgjSc.js → linear-Bkc3ES2f.js} +1 -1
  379. package/web-shell/assets/{mermaid.core-CZ9MQaJ6.js → mermaid.core-C6xuovwz.js} +6 -6
  380. package/web-shell/assets/{mindmap-definition-FBJOCRG2-BNQYjBqM.js → mindmap-definition-FBJOCRG2-DzH6gVRg.js} +1 -1
  381. package/web-shell/assets/{pegDiagram-XKGWAZYB-rh1J8uv6.js → pegDiagram-XKGWAZYB-DCvLh2fa.js} +1 -1
  382. package/web-shell/assets/{pieDiagram-E7YTZNPT-BQHR5mn9.js → pieDiagram-E7YTZNPT-BtjVlx_6.js} +1 -1
  383. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CLCbP7mK.js → quadrantDiagram-AXDQQJYC-IbroqxFe.js} +1 -1
  384. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CDQhrkbm.js → railroadDiagram-O6MQD6OU-BvMykiWW.js} +1 -1
  385. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BdP9uswg.js → requirementDiagram-EFPCY7ZU-D-HHMyrh.js} +1 -1
  386. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CFZDFBXF.js → sankeyDiagram-P5KCCOFB-C0XXhB6d.js} +1 -1
  387. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BW9WOJXI.js → sequenceDiagram-WJ2MYXX4-DseAXj5d.js} +1 -1
  388. package/web-shell/assets/{sizeCapture-X5ZJPWSS-CPMia32z.js → sizeCapture-X5ZJPWSS-Cek2EweK.js} +1 -1
  389. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BANp9p7F.js → stateDiagram-HBIQ2CUA-yLv8wafW.js} +1 -1
  390. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DeThXnol.js +1 -0
  391. package/web-shell/assets/{swimlanes-XN3QIQJK-JroXksK-.js → swimlanes-XN3QIQJK-Cwz-opvE.js} +1 -1
  392. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-GW0R1ZSv.js +8 -0
  393. package/web-shell/assets/{timeline-definition-24CTP7MA-DfuVIfYY.js → timeline-definition-24CTP7MA-BJuFD7OG.js} +1 -1
  394. package/web-shell/assets/{vennDiagram-4TSXK5OY-BZXoSjRB.js → vennDiagram-4TSXK5OY-CNAavdoV.js} +1 -1
  395. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-BdiY8avC.js → wardleyDiagram-VM6X3IG4-DaIjAidq.js} +1 -1
  396. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-DcXh_U4H.js → xychartDiagram-S5SC5T6Z-DkcQXjTy.js} +1 -1
  397. package/web-shell/index.html +19 -4
  398. package/chunks/MaxSizedBox-3OZJCC3J.js +0 -110
  399. package/chunks/agent-BFE3DQM3.js +0 -93
  400. package/chunks/agent-headless-LLVKZZ4P.js +0 -87
  401. package/chunks/bridge-EBYO4SYM.js +0 -118
  402. package/chunks/channel-settings-store-5VP2Y2YM.js +0 -115
  403. package/chunks/chunk-AXMWHKXA.js +0 -42
  404. package/chunks/chunk-IO257NUD.js +0 -623
  405. package/chunks/chunk-YHC2EYYG.js +0 -125
  406. package/chunks/computer-use-EGPWFEX6.js +0 -2142
  407. package/chunks/config-utils-WZ43VOBS.js +0 -25
  408. package/chunks/contextCommand-5DSEQI6S.js +0 -106
  409. package/chunks/daemon-status-provider-EYMLPYJU.js +0 -116
  410. package/chunks/daemon-trust-policy-CQYKZ7VO.js +0 -112
  411. package/chunks/deferred-core-runtime-WFEPUXZR.js +0 -114
  412. package/chunks/earlyInputCapture-PN4PP7V5.js +0 -107
  413. package/chunks/environment-WUPHLPKZ.js +0 -127
  414. package/chunks/errors-WPMPVIAT.js +0 -113
  415. package/chunks/exitPlanMode-MLFHYZNB.js +0 -85
  416. package/chunks/handleAutoUpdate-F5OTWUT5.js +0 -109
  417. package/chunks/i18n-C562S6KN.js +0 -124
  418. package/chunks/initializer-7YPGOFP4.js +0 -113
  419. package/chunks/installationInfo-ARU5Q2H7.js +0 -107
  420. package/chunks/list-KTSK275C.js +0 -116
  421. package/chunks/loadedSettingsAdapter-F3T2EQ5J.js +0 -110
  422. package/chunks/mcp-6ONTVPAY.js +0 -110
  423. package/chunks/nonInteractiveCli-KZDWFAN6.js +0 -178
  424. package/chunks/pidfile-IO7ALSZF.js +0 -111
  425. package/chunks/prompt-terminal-ledger-TCE7PMCE.js +0 -105
  426. package/chunks/resumeHistoryUtils-DDSBAQJS.js +0 -118
  427. package/chunks/ripGrep-E7P6K4QR.js +0 -40
  428. package/chunks/serve-KEAWV4TI.js +0 -118
  429. package/chunks/shell-H6K63WG3.js +0 -95
  430. package/chunks/skill-settings-TCKLXIXM.js +0 -118
  431. package/chunks/spawnChannel-2K6NKWM5.js +0 -111
  432. package/chunks/standalone-update-LSCGOEFP.js +0 -118
  433. package/chunks/terminal-image-renderer-UHX3UD66.js +0 -114
  434. package/chunks/theme-manager-6B47ZPIF.js +0 -102
  435. package/chunks/total-session-admission-NSCFWGJH.js +0 -113
  436. package/chunks/trustedFolders-7XMJWGQ3.js +0 -122
  437. package/chunks/updateCheck-EOVLHD4T.js +0 -118
  438. package/chunks/useAutoAcceptIndicator-ZNMIGBTN.js +0 -120
  439. package/chunks/workspace-providers-status-GPGU5YMT.js +0 -113
  440. package/chunks/workspace-registry-BQISXT6Y.js +0 -122
  441. package/chunks/workspace-service-LLY6HCUC.js +0 -129
  442. package/chunks/workspace-skills-status-L5N2Y3ZP.js +0 -113
  443. package/chunks/write-file-EJHU2Z3E.js +0 -90
  444. package/web-shell/assets/channel-Zg3WHgq_.js +0 -1
  445. package/web-shell/assets/classDiagram-DTDB5LWJ-C16l9jQz.js +0 -1
  446. package/web-shell/assets/classDiagram-v2-JRS7N3AN-C16l9jQz.js +0 -1
  447. package/web-shell/assets/index-DrlJu79f.js +0 -1792
  448. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-NZYAoQLU.js +0 -1
  449. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-3YdVX3vj.js +0 -8
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  AuthType
5
- } from "./chunk-2E3V7G6Y.js";
5
+ } from "./chunk-GTUKW3I6.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -13,6 +13,10 @@ import {
13
13
  // packages/core/src/utils/runtimeModelPrefix.ts
14
14
  init_esbuild_shims();
15
15
  var RUNTIME_SNAPSHOT_PREFIX = "$runtime|";
16
+ function buildRuntimeSnapshotId(authType, modelId) {
17
+ return `${RUNTIME_SNAPSHOT_PREFIX}${authType}|${modelId}`;
18
+ }
19
+ __name(buildRuntimeSnapshotId, "buildRuntimeSnapshotId");
16
20
  function stripRuntimeSnapshotPrefix(modelId) {
17
21
  let id = modelId;
18
22
  while (id.startsWith(RUNTIME_SNAPSHOT_PREFIX)) {
@@ -110,6 +114,7 @@ __name(resolveModelIdSelector, "resolveModelIdSelector");
110
114
 
111
115
  export {
112
116
  RUNTIME_SNAPSHOT_PREFIX,
117
+ buildRuntimeSnapshotId,
113
118
  stripRuntimeSnapshotPrefix,
114
119
  resolveModelId,
115
120
  buildModelIdContext
@@ -11,14 +11,14 @@ import {
11
11
  DEFAULT_TOOL_RESULTS_TOTAL_CHARS_THRESHOLD,
12
12
  DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
13
13
  DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD
14
- } from "./chunk-T6XLJRQY.js";
14
+ } from "./chunk-XYX474JQ.js";
15
15
  import {
16
16
  DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
17
17
  SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
18
- } from "./chunk-GAHYKJPV.js";
18
+ } from "./chunk-6US7BF3G.js";
19
19
  import {
20
20
  DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
21
- } from "./chunk-K52PZNU4.js";
21
+ } from "./chunk-RRKNX553.js";
22
22
  import {
23
23
  init_esbuild_shims
24
24
  } from "./chunk-5O2XNYP6.js";
@@ -26,6 +26,66 @@ import {
26
26
  __name
27
27
  } from "./chunk-J2S4EL5Y.js";
28
28
 
29
+ // packages/cli/src/utils/deepMerge.ts
30
+ init_esbuild_shims();
31
+ function isPlainObject(item) {
32
+ return !!item && typeof item === "object" && !Array.isArray(item);
33
+ }
34
+ __name(isPlainObject, "isPlainObject");
35
+ function mergeRecursively(target, source, getMergeStrategyForPath, path = []) {
36
+ for (const key of Object.keys(source)) {
37
+ if (key === "__proto__" || key === "constructor" || key === "prototype") {
38
+ continue;
39
+ }
40
+ const newPath = [...path, key];
41
+ const srcValue = source[key];
42
+ const objValue = target[key];
43
+ const mergeStrategy = getMergeStrategyForPath(newPath);
44
+ if (mergeStrategy === "shallow_merge" /* SHALLOW_MERGE */ && objValue && srcValue) {
45
+ const obj1 = typeof objValue === "object" && objValue !== null ? objValue : {};
46
+ const obj2 = typeof srcValue === "object" && srcValue !== null ? srcValue : {};
47
+ target[key] = { ...obj1, ...obj2 };
48
+ continue;
49
+ }
50
+ if (Array.isArray(objValue)) {
51
+ const srcArray = Array.isArray(srcValue) ? srcValue : [srcValue];
52
+ if (mergeStrategy === "concat" /* CONCAT */) {
53
+ target[key] = objValue.concat(srcArray);
54
+ continue;
55
+ }
56
+ if (mergeStrategy === "union" /* UNION */) {
57
+ target[key] = [...new Set(objValue.concat(srcArray))];
58
+ continue;
59
+ }
60
+ }
61
+ if (isPlainObject(objValue) && isPlainObject(srcValue)) {
62
+ mergeRecursively(objValue, srcValue, getMergeStrategyForPath, newPath);
63
+ } else if (isPlainObject(srcValue)) {
64
+ target[key] = {};
65
+ mergeRecursively(
66
+ target[key],
67
+ srcValue,
68
+ getMergeStrategyForPath,
69
+ newPath
70
+ );
71
+ } else {
72
+ target[key] = srcValue;
73
+ }
74
+ }
75
+ return target;
76
+ }
77
+ __name(mergeRecursively, "mergeRecursively");
78
+ function customDeepMerge(getMergeStrategyForPath, ...sources) {
79
+ const result = {};
80
+ for (const source of sources) {
81
+ if (source) {
82
+ mergeRecursively(result, source, getMergeStrategyForPath);
83
+ }
84
+ }
85
+ return result;
86
+ }
87
+ __name(customDeepMerge, "customDeepMerge");
88
+
29
89
  // packages/cli/src/config/settingsSchema.ts
30
90
  init_esbuild_shims();
31
91
  var DEFAULT_OPENAI_LOG_RETENTION_DAYS = 7;
@@ -56,7 +116,7 @@ var HOOK_DEFINITION_ITEMS = {
56
116
  type: {
57
117
  type: "string",
58
118
  description: 'The type of hook. Note: "function" type is only available via SDK registration, not settings.json.',
59
- enum: ["command", "http"],
119
+ enum: ["command", "http", "prompt"],
60
120
  required: true
61
121
  },
62
122
  command: {
@@ -67,6 +127,14 @@ var HOOK_DEFINITION_ITEMS = {
67
127
  type: "string",
68
128
  description: 'The URL to send the POST request to. Required for "http" type.'
69
129
  },
130
+ prompt: {
131
+ type: "string",
132
+ description: 'The prompt to send to the model. Required for "prompt" type.'
133
+ },
134
+ model: {
135
+ type: "string",
136
+ description: 'The optional model to use for a "prompt" hook.'
137
+ },
70
138
  headers: {
71
139
  type: "object",
72
140
  description: "HTTP headers to include in the request. Supports env var interpolation ($VAR, ${VAR}).",
@@ -522,6 +590,20 @@ var SETTINGS_SCHEMA = {
522
590
  description: `Append the attribution footer naming the model and CLI version (e.g. "_\u2014 qwen3-coder via Qwen Code /review (v0.21.2)_") to review bodies and inline comments posted to GitHub. Disable to post reviews without VISIBLE AI attribution: no footer, and no "**[Critical]**"/"**[Suggestion]**" severity markers on posted comments and body lists. Unattributed posts stay identifiable in the raw source: each posted comment carries an invisible severity marker ("<!-- qwen-review critical -->") and the review body carries a ledger marker ("<!-- qwen-review-ledger ... -->") \u2014 anything reading comment bodies (GitHub API automation, the workflows this setting couples to) still recognizes a /review artifact, and presubmit duplicate detection recognizes the reviewing account's earlier posts by the severity marker, though unattributed posts from other accounts escape it. Another consequence: qwen-autofix's Critical-only mode (engaged after round 5, or earlier when a counting window's diff-growth budget trips) no longer recognizes the posted findings as Critical and defers them. Only honored from User, System, and SystemDefaults settings scopes; values set in Workspace settings are ignored, so a repository cannot set review policy for its reviewers.`,
523
591
  showInDialog: true
524
592
  },
593
+ sandbox: {
594
+ type: "enum",
595
+ label: "Sandbox the reviewed code: review",
596
+ category: "General",
597
+ requiresRestart: false,
598
+ default: "off",
599
+ description: 'Run the REVIEWED repository\'s own commands \u2014 `npm ci` with its install scripts, the build, the test suite, and every mutation probe \u2014 inside a container instead of directly as you. A review executes the code it is reviewing, and today those commands inherit the review process\'s whole environment (on CI that includes the model and GitHub credentials). "auto" uses a container when docker or podman answers and runs directly when neither does; "required" refuses to run them unsandboxed, which makes the evidence that depends on execution (build/test findings, mutation verdicts, `Source: [probe]`) unavailable for that run rather than ending the review; "off" is today\'s behaviour and stays the default, because containerising a build by surprise changes what native modules compile against. Only honored from User, System, and SystemDefaults settings scopes; values set in Workspace settings are ignored, so a repository cannot switch off the containment that exists to contain it.',
600
+ showInDialog: true,
601
+ options: [
602
+ { value: "off", label: "Off (run the reviewed code directly)" },
603
+ { value: "auto", label: "Auto (container when one is available)" },
604
+ { value: "required", label: "Required (never run it unsandboxed)" }
605
+ ]
606
+ },
525
607
  effort: {
526
608
  type: "enum",
527
609
  label: "Default effort: review",
@@ -568,6 +650,15 @@ var SETTINGS_SCHEMA = {
568
650
  default: 0,
569
651
  description: `Lower the reverse-audit loop's round cap for every high-effort review. The cap is normally chosen from the diff topology (10 small / 5 chunked; a huge diff is 3 when the run has a review deadline and 5 when it does not, because that reduction answers a CI ceiling and applies only where one exists) because a round costs one agent on a small diff and ~90 minutes on a huge one; this setting can only LOWER whichever tier applies, never raise it \u2014 a value that is not a whole number above zero, or that is out of range (below 3, or above the plan's own tier), is ignored and leaves the tier alone \u2014 JSON Schema has no integer type here, so a fraction validates in an editor and is then discarded at runtime. Understand what it buys before enabling: the loop ends on two consecutive dry rounds, so cutting the cap does not make reviews converge sooner, it makes them stop before converging more often \u2014 and every such stop is disclosed as unreviewed scope and caps the verdict at Comment, so a cheaper review is also one that can no longer Approve. To spend LESS on reviews generally, prefer "effort". Nothing here makes a loop run LONGER: a review deadline bounds a run rather than extending it, and on a huge diff setting one lowers the cap from 5 to 3 rather than raising it. Only honored from User, System, and SystemDefaults settings scopes; values set in Workspace settings are ignored, so a repository cannot set review policy for its reviewers.`,
570
652
  showInDialog: true
653
+ },
654
+ approachRounds: {
655
+ type: "number",
656
+ label: "Approach-signal round threshold: review",
657
+ category: "General",
658
+ requiresRestart: false,
659
+ default: 0,
660
+ description: "How many rounds a pull request must reach before the review may add one advisory paragraph saying the shape of the change, rather than the current patch, looks like the open question. It appears only when the diff has also grown several times over since the review first measured it, and never on an Approve. It is disclosure only: it adds no finding, changes no verdict, and blocks nothing \u2014 it exists because every finding is anchored to a line in the current diff, so the review can report where an approach leaks but never that a different approach would retire all of the leaks at once. Leave at 0 to keep the built-in threshold of 5 rounds; raise it to make the paragraph appear later, and set it very high to silence it. A value that is not a whole number above zero is ignored. Only honored from User, System, and SystemDefaults settings scopes; values set in Workspace settings are ignored, so a repository cannot set review policy for its reviewers.",
661
+ showInDialog: true
571
662
  }
572
663
  }
573
664
  },
@@ -586,11 +677,16 @@ var SETTINGS_SCHEMA = {
586
677
  category: "General",
587
678
  requiresRestart: false,
588
679
  default: "text",
589
- description: "The format of the CLI output.",
680
+ description: "The format of the CLI output. With `stream-json`, runs started with a prompt behave as non-interactive (headless), matching `--output-format stream-json`. Flags validated at argv parse time (`--include-partial-messages`, `--input-format stream-json`) still require the explicit `--output-format stream-json` flag.",
590
681
  showInDialog: false,
682
+ // The values are the runtime's `OutputFormat` enum members, and the
683
+ // settingsSchema test pins these options against
684
+ // `Object.values(OutputFormat)`, so a format added in core fails
685
+ // that test until this list and the regenerated JSON follow.
591
686
  options: [
592
- { value: "text", label: "Text" },
593
- { value: "json", label: "JSON" }
687
+ { value: "text" /* TEXT */, label: "Text" },
688
+ { value: "json" /* JSON */, label: "JSON" },
689
+ { value: "stream-json" /* STREAM_JSON */, label: "Stream JSON" }
594
690
  ]
595
691
  },
596
692
  showTimestamps: {
@@ -1184,7 +1280,7 @@ var SETTINGS_SCHEMA = {
1184
1280
  category: "Model",
1185
1281
  requiresRestart: false,
1186
1282
  default: "",
1187
- description: "Model used by the built-in image_gen tool. Set with /model --image. The selected model must be marked imageOnly in modelProviders.",
1283
+ description: "Model used by the built-in image_gen tool. Set with /model --image. The selected route must set supportsImageGeneration: true (or legacy imageOnly: true) in modelProviders.",
1188
1284
  showInDialog: false
1189
1285
  },
1190
1286
  visionBridgeTimeoutMs: {
@@ -1409,6 +1505,18 @@ var SETTINGS_SCHEMA = {
1409
1505
  parentKey: "generationConfig",
1410
1506
  showInDialog: false
1411
1507
  },
1508
+ streamIdleTimeoutMs: {
1509
+ type: "integer",
1510
+ label: "Stream Idle Timeout",
1511
+ category: "Generation Configuration",
1512
+ requiresRestart: false,
1513
+ default: void 0,
1514
+ description: "Maximum inactivity between streamed chunks for OpenAI-compatible models, in milliseconds. Set to 0 to disable the idle guard. For provider-backed models, configure this field in the selected modelProviders entry.",
1515
+ minimum: 0,
1516
+ maximum: 2147483647,
1517
+ parentKey: "generationConfig",
1518
+ showInDialog: false
1519
+ },
1412
1520
  maxRetries: {
1413
1521
  type: "number",
1414
1522
  label: "Max Retries",
@@ -2378,6 +2486,20 @@ var SETTINGS_SCHEMA = {
2378
2486
  description: 'Use the bundled ripgrep binary. When set to false, the system-level "rg" command will be used instead. This setting is only effective when useRipgrep is true.',
2379
2487
  showInDialog: false
2380
2488
  },
2489
+ workflowsEnabled: {
2490
+ type: "boolean",
2491
+ label: "Dynamic Workflows",
2492
+ category: "Tools",
2493
+ // The Workflow tool is registered once while building the tool
2494
+ // registry and /workflows is gated when commands load. Keyword
2495
+ // steering reads the same startup-built Config on each submission,
2496
+ // so changing the settings file mid-session cannot update any of the
2497
+ // three surfaces until the next launch.
2498
+ requiresRestart: true,
2499
+ default: false,
2500
+ description: 'Enable the Workflow tool, which lets the model author and run a script that orchestrates subagents in parallel. Off by default; a run can dispatch many subagents and spend tokens accordingly. The QWEN_CODE_ENABLE_WORKFLOWS=1 and QWEN_CODE_DISABLE_WORKFLOWS=1 environment variables override this setting (disable wins). Unrelated to the Session Workflow plan-and-review view; to stop the "workflow" keyword from steering a turn, see Disable Workflow Keyword Trigger.',
2501
+ showInDialog: true
2502
+ },
2381
2503
  truncateToolOutputThreshold: {
2382
2504
  type: "number",
2383
2505
  label: "Tool Output Truncation Threshold",
@@ -2404,46 +2526,6 @@ var SETTINGS_SCHEMA = {
2404
2526
  default: DEFAULT_TOOL_OUTPUT_BATCH_BUDGET,
2405
2527
  description: "Per-message character budget for the combined text output of one batch of tool calls. Oversized batches are reduced deterministically and recoverable output is persisted when possible. Set to -1 to disable.",
2406
2528
  showInDialog: false
2407
- },
2408
- computerUse: {
2409
- type: "object",
2410
- label: "Computer Use",
2411
- category: "Tools",
2412
- requiresRestart: true,
2413
- default: {},
2414
- description: "Cross-platform desktop automation via the cua-driver native driver (trycua/cua). On first invocation a pinned, signed + notarized binary (~20MB) is downloaded into ~/.qwen/computer-use/ and the user is walked through macOS Accessibility / Screen Recording permissions if needed. Exposes cua-driver's full tool surface (click, type_text, scroll, drag, press_key, get_window_state, page, launch_app, and more).",
2415
- showInDialog: false,
2416
- properties: {
2417
- enabled: {
2418
- type: "boolean",
2419
- label: "Enable Computer Use",
2420
- category: "Tools",
2421
- requiresRestart: true,
2422
- default: true,
2423
- description: "When enabled (default), the cua-driver computer_use__* tools are registered as deferred built-ins. Set to false to prevent the driver from being downloaded or spawned.",
2424
- showInDialog: true
2425
- },
2426
- idleTimeoutMs: {
2427
- type: "number",
2428
- label: "Idle Timeout",
2429
- category: "Tools",
2430
- requiresRestart: true,
2431
- default: 3e5,
2432
- minimum: 0,
2433
- maximum: 2147483647,
2434
- description: "Milliseconds to keep the cua-driver process alive after the last computer_use__* call. The default is 300000 (5 minutes). Set to 0 to keep it running until qwen-code exits.",
2435
- showInDialog: false
2436
- },
2437
- maxImageDimension: {
2438
- type: "number",
2439
- label: "Max Screenshot Dimension",
2440
- category: "Tools",
2441
- requiresRestart: true,
2442
- default: -1,
2443
- description: "Longest-edge pixel cap applied to cua-driver screenshots (via set_config's max_image_dimension). -1 (default) keeps cua-driver's built-in default (1568); 0 disables resizing (full resolution); a positive value caps the longest edge. Lower caps cut vision-token cost at the expense of fine detail. Overridable via the QWEN_COMPUTER_USE_MAX_IMAGE_DIMENSION env var.",
2444
- showInDialog: false
2445
- }
2446
- }
2447
2529
  }
2448
2530
  }
2449
2531
  },
@@ -2462,7 +2544,7 @@ var SETTINGS_SCHEMA = {
2462
2544
  category: "Daemon",
2463
2545
  requiresRestart: true,
2464
2546
  default: "first-responder",
2465
- description: 'How permission requests resolve when multiple clients are attached. `first-responder` (default) = any client decides, first wins. `designated` = only the prompt originator decides; falls back to first-responder if originator is anonymous. NOTE: client identity comes from self-declared X-Qwen-Client-Id with no proof-of-possession (pair-token identity is not implemented yet), so any client observing originatorClientId on SSE frames can register with the same id and impersonate the originator. `consensus` = N-of-M voters must agree. Default N=floor(M/2)+1, which means UNANIMITY for M=2 (quorum=2, both must agree) and supermajority for larger even M (M=4 \u2192 quorum=3; M=6 \u2192 quorum=4). For M=2 specifically, split votes resolve only via permissionTimeoutMs. `local-only` = only loopback clients can RESOLVE; remote clients can still ABORT a pending permission via the cancel sentinel ({outcome:"cancelled"}) \u2014 cancel stays cross-policy for consistency. Strict-cancel-too deployments need a dedicated loopback-bound daemon. Requires daemon restart \u2014 read once at boot.',
2547
+ description: 'How permission requests resolve when multiple clients are attached. `first-responder` (default) = any client decides, first wins. `designated` = only the prompt originator decides; falls back to first-responder if originator is anonymous. NOTE: client identity comes from self-declared X-Qwen-Client-Id with no proof-of-possession (pair-token identity is not implemented yet), so any client observing originatorClientId on SSE frames can register with the same id and impersonate the originator. `consensus` = N-of-M voters must agree. Default N=floor(M/2)+1, which means UNANIMITY for M=2 (quorum=2, both must agree) and supermajority for larger even M (M=4 \u2192 quorum=3; M=6 \u2192 quorum=4). For M=2 specifically, split votes resolve only via the configured permission timeout, voter cancellation, or session cancellation. `local-only` = only loopback clients can RESOLVE; remote clients can still ABORT a pending permission via the cancel sentinel ({outcome:"cancelled"}) \u2014 cancel stays cross-policy for consistency. Strict-cancel-too deployments need a dedicated loopback-bound daemon. Requires daemon restart \u2014 read once at boot.',
2466
2548
  showInDialog: true,
2467
2549
  options: [
2468
2550
  { value: "first-responder", label: "First Responder" },
@@ -3435,6 +3517,7 @@ function getSettingsSchema() {
3435
3517
  __name(getSettingsSchema, "getSettingsSchema");
3436
3518
 
3437
3519
  export {
3520
+ customDeepMerge,
3438
3521
  DEFAULT_OPENAI_LOG_RETENTION_DAYS,
3439
3522
  TOGGLE_TYPES,
3440
3523
  getSettingsSchema
@@ -7,7 +7,7 @@ import {
7
7
  __name
8
8
  } from "./chunk-J2S4EL5Y.js";
9
9
 
10
- // packages/cli/src/utils/permission-suggestions.ts
10
+ // packages/cli/src/nonInteractive/permission-suggestions.ts
11
11
  init_esbuild_shims();
12
12
  function withWarnings(description, details) {
13
13
  const warnings = Array.isArray(details["warnings"]) ? details["warnings"].filter(
@@ -2,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  MAX_INLINE_IMAGE_ENCODED_LENGTH
5
- } from "./chunk-JOLJTKIG.js";
5
+ } from "./chunk-EC5BONC3.js";
6
6
  import {
7
7
  MAX_TERMINAL_IMAGE_BYTES
8
- } from "./chunk-6NFAEG54.js";
8
+ } from "./chunk-KOJ6MHD5.js";
9
9
  import {
10
10
  init_esbuild_shims
11
11
  } from "./chunk-5O2XNYP6.js";
@@ -5,25 +5,25 @@ import {
5
5
  relaxSchemaForFunctionCalling,
6
6
  safeJsonParse,
7
7
  setGenAiUsageProvenance
8
- } from "./chunk-36OF5PRW.js";
8
+ } from "./chunk-E4I5MVBR.js";
9
9
  import {
10
- InvalidStreamError,
11
10
  createOpenAIReasoningThoughtPart
12
- } from "./chunk-2J3OJGTL.js";
11
+ } from "./chunk-K2OJUPOE.js";
13
12
  import {
13
+ InvalidStreamError,
14
14
  setToolCallPreparations
15
- } from "./chunk-QKBYFU2Q.js";
16
- import {
17
- normalizeMcpToolName
18
- } from "./chunk-WZAD4ZNJ.js";
15
+ } from "./chunk-CFKIH3D3.js";
19
16
  import {
20
17
  TOKEN_ESTIMATE_UNITS_PER_TOKEN,
21
18
  estimateTextTokenUnits,
22
19
  estimateTextTokens
23
- } from "./chunk-YHC2EYYG.js";
20
+ } from "./chunk-WBT3STGU.js";
21
+ import {
22
+ normalizeMcpToolName
23
+ } from "./chunk-WZAD4ZNJ.js";
24
24
  import {
25
25
  createDebugLogger
26
- } from "./chunk-A5F2YNO6.js";
26
+ } from "./chunk-2NNTE2ED.js";
27
27
  import {
28
28
  FinishReason,
29
29
  GenerateContentResponse
@@ -1236,15 +1236,18 @@ function convertOpenAIChunkToGemini(chunk, requestContext) {
1236
1236
  }
1237
1237
  __name(convertOpenAIChunkToGemini, "convertOpenAIChunkToGemini");
1238
1238
  function mapOpenAIFinishReasonToGemini(openaiReason) {
1239
- if (!openaiReason) return FinishReason.FINISH_REASON_UNSPECIFIED;
1239
+ if (typeof openaiReason !== "string") {
1240
+ return FinishReason.FINISH_REASON_UNSPECIFIED;
1241
+ }
1240
1242
  const mapping = {
1241
1243
  stop: FinishReason.STOP,
1242
1244
  length: FinishReason.MAX_TOKENS,
1245
+ max_tokens: FinishReason.MAX_TOKENS,
1243
1246
  content_filter: FinishReason.SAFETY,
1244
1247
  function_call: FinishReason.STOP,
1245
1248
  tool_calls: FinishReason.STOP
1246
1249
  };
1247
- return mapping[openaiReason] || FinishReason.FINISH_REASON_UNSPECIFIED;
1250
+ return mapping[openaiReason.toLowerCase()] || FinishReason.FINISH_REASON_UNSPECIFIED;
1248
1251
  }
1249
1252
  __name(mapOpenAIFinishReasonToGemini, "mapOpenAIFinishReasonToGemini");
1250
1253
  function mapGeminiFinishReasonToOpenAI(geminiReason) {
@@ -2,14 +2,14 @@
2
2
  "use strict";
3
3
  import {
4
4
  getCurrentAgentId
5
- } from "./chunk-I432KXWD.js";
5
+ } from "./chunk-DP7LABIB.js";
6
6
  import {
7
7
  getTeammateContext,
8
8
  isTeammate
9
9
  } from "./chunk-S6LOFUVP.js";
10
10
  import {
11
11
  ToolNames
12
- } from "./chunk-6NFAEG54.js";
12
+ } from "./chunk-KOJ6MHD5.js";
13
13
  import {
14
14
  init_esbuild_shims
15
15
  } from "./chunk-5O2XNYP6.js";
@@ -8,14 +8,14 @@ import {
8
8
  } from "./chunk-Z4X5MTRT.js";
9
9
  import {
10
10
  STATUS_SCHEMA_VERSION
11
- } from "./chunk-URN2JIAQ.js";
11
+ } from "./chunk-CITGRGCM.js";
12
12
  import {
13
13
  loadSettings
14
- } from "./chunk-6UQSU7CQ.js";
14
+ } from "./chunk-MDZO5V2O.js";
15
15
  import {
16
16
  SkillManager,
17
17
  isSafeModeEnv
18
- } from "./chunk-T6XLJRQY.js";
18
+ } from "./chunk-XYX474JQ.js";
19
19
  import {
20
20
  writeStderrLine
21
21
  } from "./chunk-KGJGEEVR.js";
@@ -2,19 +2,19 @@
2
2
  "use strict";
3
3
  import {
4
4
  JsonFormatter
5
- } from "./chunk-62JOGZL5.js";
5
+ } from "./chunk-VMDURMFY.js";
6
6
  import {
7
7
  parseAndFormatApiError
8
- } from "./chunk-T6XLJRQY.js";
8
+ } from "./chunk-XYX474JQ.js";
9
9
  import {
10
10
  FatalBudgetExceededError,
11
11
  FatalCancellationError,
12
12
  FatalTurnLimitedError,
13
13
  createDebugLogger
14
- } from "./chunk-A5F2YNO6.js";
14
+ } from "./chunk-2NNTE2ED.js";
15
15
  import {
16
16
  runExitCleanup
17
- } from "./chunk-4CWDWDL6.js";
17
+ } from "./chunk-EKP3M4RF.js";
18
18
  import {
19
19
  writeStderrLine
20
20
  } from "./chunk-KGJGEEVR.js";
@@ -19,12 +19,32 @@ function getToolCallPreparations(response) {
19
19
  }
20
20
  __name(getToolCallPreparations, "getToolCallPreparations");
21
21
 
22
+ // packages/core/src/core/invalid-stream-error.ts
23
+ init_esbuild_shims();
24
+ var InvalidStreamError = class extends Error {
25
+ static {
26
+ __name(this, "InvalidStreamError");
27
+ }
28
+ type;
29
+ constructor(message, type) {
30
+ super(message);
31
+ this.name = "InvalidStreamError";
32
+ this.type = type;
33
+ }
34
+ };
35
+
22
36
  export {
23
37
  setToolCallPreparations,
24
- getToolCallPreparations
38
+ getToolCallPreparations,
39
+ InvalidStreamError
25
40
  };
26
41
  /**
27
42
  * @license
28
43
  * Copyright 2025 Google LLC
29
44
  * SPDX-License-Identifier: Apache-2.0
30
45
  */
46
+ /**
47
+ * @license
48
+ * Copyright 2025 Qwen
49
+ * SPDX-License-Identifier: Apache-2.0
50
+ */
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  SkillError
5
- } from "./chunk-VUMLT7E5.js";
5
+ } from "./chunk-5Y2JCJAH.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -62,6 +62,7 @@ var MissingCliEntryError = class extends Error {
62
62
  }
63
63
  };
64
64
  var SERVE_STATUS_EXT_METHODS = {
65
+ channelPing: "qwen/status/channel/ping",
65
66
  workspaceMcp: "qwen/status/workspace/mcp",
66
67
  workspaceMcpTools: "qwen/status/workspace/mcp/tools",
67
68
  workspaceMcpResources: "qwen/status/workspace/mcp/resources",
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-E7REAOTN.js";
6
6
  import {
7
7
  createDebugLogger
8
- } from "./chunk-A5F2YNO6.js";
8
+ } from "./chunk-2NNTE2ED.js";
9
9
  import {
10
10
  wrapper_default
11
11
  } from "./chunk-J3NNHTV6.js";
@@ -0,0 +1,20 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-5O2XNYP6.js";
6
+
7
+ // packages/cli/src/generated/git-commit.ts
8
+ init_esbuild_shims();
9
+ var GIT_COMMIT_INFO = "2755dbe139";
10
+ var CLI_VERSION = "0.22.1";
11
+
12
+ export {
13
+ GIT_COMMIT_INFO,
14
+ CLI_VERSION
15
+ };
16
+ /**
17
+ * @license
18
+ * Copyright 2026 Google LLC
19
+ * SPDX-License-Identifier: Apache-2.0
20
+ */
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-A5F2YNO6.js";
5
+ } from "./chunk-2NNTE2ED.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
  require_express
5
- } from "./chunk-O5Z7EB6Y.js";
5
+ } from "./chunk-AYHQZBJ4.js";
6
6
  import {
7
7
  writeStderrLine
8
8
  } from "./chunk-KGJGEEVR.js";
@@ -42,9 +42,43 @@ var WEB_SHELL_CSP_DIRECTIVES = [
42
42
  // attacker origin.
43
43
  "base-uri 'none'"
44
44
  ];
45
- function buildWebShellCsp(frameAncestors = []) {
45
+ function loopbackSandboxOrigins(hostHeader) {
46
+ const port = portFromHostHeader(hostHeader);
47
+ const suffix = port ? `:${port}` : "";
48
+ const hosts = ["localhost", "127.0.0.1"];
49
+ return ["http", "https"].flatMap(
50
+ (scheme) => hosts.map((host) => `${scheme}://${host}${suffix}`)
51
+ );
52
+ }
53
+ __name(loopbackSandboxOrigins, "loopbackSandboxOrigins");
54
+ function portFromHostHeader(hostHeader) {
55
+ if (!hostHeader) return void 0;
56
+ if (hostHeader.startsWith("[")) {
57
+ const end = hostHeader.indexOf("]");
58
+ if (end === -1) return void 0;
59
+ const rest = hostHeader.slice(end + 1);
60
+ return rest.startsWith(":") && /^\d+$/u.test(rest.slice(1)) ? rest.slice(1) : void 0;
61
+ }
62
+ const colon = hostHeader.lastIndexOf(":");
63
+ if (colon === -1) return void 0;
64
+ const port = hostHeader.slice(colon + 1);
65
+ return /^\d+$/u.test(port) ? port : void 0;
66
+ }
67
+ __name(portFromHostHeader, "portFromHostHeader");
68
+ function buildWebShellPermissionsPolicy() {
69
+ return [
70
+ "camera=()",
71
+ "microphone=(self)",
72
+ "geolocation=()",
73
+ "payment=()",
74
+ "clipboard-write=(self)"
75
+ ].join(", ");
76
+ }
77
+ __name(buildWebShellPermissionsPolicy, "buildWebShellPermissionsPolicy");
78
+ function buildWebShellCsp(frameAncestors = [], frameSrcOrigins = loopbackSandboxOrigins(void 0)) {
46
79
  const fa = frameAncestors.length ? `frame-ancestors ${frameAncestors.join(" ")}` : "frame-ancestors 'none'";
47
- return [...WEB_SHELL_CSP_DIRECTIVES, fa].join("; ");
80
+ const frameSrc = `frame-src ${frameSrcOrigins.join(" ")}`;
81
+ return [...WEB_SHELL_CSP_DIRECTIVES, frameSrc, fa].join("; ");
48
82
  }
49
83
  __name(buildWebShellCsp, "buildWebShellCsp");
50
84
  var WEB_SHELL_CSP = buildWebShellCsp();
@@ -61,22 +95,25 @@ function isPreAuthWebShellRequest(req) {
61
95
  const reqPath = req.path.toLowerCase();
62
96
  if (reqPath === "/" || // Express non-strict routing compiles `/` to `/^(?:\/)(?:\/$)?$/i`, so
63
97
  // a raw `//` also matches `app.get('/')` pre-auth (but `///` does not).
64
- reqPath === "//" || reqPath === "/assets" || reqPath.startsWith("/assets/"))
98
+ reqPath === "//" || reqPath === "/assets" || reqPath.startsWith("/assets/") || reqPath === "/mcp-app-sandbox")
65
99
  return true;
66
100
  return SESSION_DEEP_LINK_PATH.test(reqPath) && isDocumentNavigation(req);
67
101
  }
68
102
  __name(isPreAuthWebShellRequest, "isPreAuthWebShellRequest");
69
103
  function createSendIndex(webShellDir, frameAncestors = []) {
70
104
  const indexPath = path.join(webShellDir, "index.html");
71
- const csp = buildWebShellCsp(frameAncestors);
72
- return (res) => {
105
+ return (req, res) => {
106
+ const sandboxOrigins = loopbackSandboxOrigins(req.get("host"));
107
+ const csp = buildWebShellCsp(frameAncestors, sandboxOrigins);
73
108
  res.status(200).set("Content-Security-Policy", csp).set("X-Content-Type-Options", "nosniff").set("Referrer-Policy", "no-referrer").set(
74
109
  // `microphone=(self)` lets the same-origin Web Shell document request
75
110
  // 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).
111
+ // empty `microphone=()` allowlist). Camera/geolocation stay disabled:
112
+ // the MCP App inner iframe is opaque-origin, so those grants cannot
113
+ // work there, and this header also blocks delegating them to the
114
+ // cross-origin sandbox.
78
115
  "Permissions-Policy",
79
- "camera=(), microphone=(self), geolocation=(), payment=()"
116
+ buildWebShellPermissionsPolicy()
80
117
  ).set("Cache-Control", "no-cache");
81
118
  if (frameAncestors.length === 0) {
82
119
  res.set("X-Frame-Options", "DENY");
@@ -117,10 +154,10 @@ function mountWebShellAssets(app, webShellDir, frameAncestors = []) {
117
154
  }
118
155
  res.status(404).type("text/plain").send("Not found");
119
156
  });
120
- app.get("/", (_req, res) => sendIndex(res));
157
+ app.get("/", (req, res) => sendIndex(req, res));
121
158
  app.get("/session/:id", (req, res, next) => {
122
159
  if (!isDocumentNavigation(req)) return next();
123
- sendIndex(res);
160
+ sendIndex(req, res);
124
161
  });
125
162
  }
126
163
  __name(mountWebShellAssets, "mountWebShellAssets");
@@ -134,13 +171,16 @@ function mountWebShellSpaFallback(app, webShellDir, frameAncestors = []) {
134
171
  `qwen serve: Web Shell SPA fallback served for ${req.method} ${req.originalUrl}`
135
172
  );
136
173
  }
137
- sendIndex(res);
174
+ sendIndex(req, res);
138
175
  });
139
176
  }
140
177
  __name(mountWebShellSpaFallback, "mountWebShellSpaFallback");
141
178
 
142
179
  export {
143
180
  isServeDebugMode,
181
+ loopbackSandboxOrigins,
182
+ portFromHostHeader,
183
+ buildWebShellPermissionsPolicy,
144
184
  buildWebShellCsp,
145
185
  WEB_SHELL_CSP,
146
186
  isDocumentNavigation,