@qwen-code/qwen-code 0.23.3 → 0.23.4-dev.codemode-responses.20260914.87437db784

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 (464) hide show
  1. package/bundled/computer-use/SKILL.md +46 -198
  2. package/bundled/computer-use/references/macos.md +208 -0
  3. package/bundled/computer-use/references/windows-linux.md +247 -0
  4. package/bundled/goal-draft/SKILL.md +10 -10
  5. package/bundled/qc-helper/docs/configuration/settings.md +81 -71
  6. package/bundled/qc-helper/docs/extension/getting-started-extensions.md +2 -0
  7. package/bundled/qc-helper/docs/extension/introduction.md +9 -3
  8. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  9. package/bundled/qc-helper/docs/features/agent-board.md +89 -0
  10. package/bundled/qc-helper/docs/features/channels/dingtalk.md +3 -21
  11. package/bundled/qc-helper/docs/features/channels/dws.md +5 -1
  12. package/bundled/qc-helper/docs/features/channels/overview.md +5 -6
  13. package/bundled/qc-helper/docs/features/code-review.md +18 -4
  14. package/bundled/qc-helper/docs/features/commands.md +9 -0
  15. package/bundled/qc-helper/docs/features/computer-use.md +26 -8
  16. package/bundled/qc-helper/docs/features/cross-session-protocol.md +23 -5
  17. package/bundled/qc-helper/docs/features/followup-suggestions.md +17 -5
  18. package/bundled/qc-helper/docs/features/goals.md +22 -18
  19. package/bundled/qc-helper/docs/features/hooks.md +48 -37
  20. package/bundled/qc-helper/docs/features/skills.md +33 -3
  21. package/bundled/qc-helper/docs/features/status-line.md +2 -0
  22. package/bundled/qc-helper/docs/features/sub-agents.md +27 -0
  23. package/bundled/qc-helper/docs/qwen-serve.md +7 -3
  24. package/bundled/review/SKILL.md +20 -10
  25. package/bundled/review/references/persistence.md +2 -0
  26. package/bundled/workflow-authoring/SKILL.md +442 -0
  27. package/bundled/workflow-creator/SKILL.md +1 -1
  28. package/chunks/{MaxSizedBox-D4LW7RZZ.js → MaxSizedBox-CSMC6NNQ.js} +59 -55
  29. package/chunks/{StandaloneSessionPicker-ALTTRWUP.js → StandaloneSessionPicker-5G46NROB.js} +83 -79
  30. package/chunks/{acp-startup-profiler-KEU6VAYR.js → acp-startup-profiler-RUQNTNU5.js} +2 -2
  31. package/chunks/acp-subagent-executor-4JLSF7SA.js +141 -0
  32. package/chunks/{acpAgent-BBSW7XZG.js → acpAgent-WJ45JV2S.js} +1026 -355
  33. package/chunks/{agent-SQ6OY3QD.js → agent-KWNOVXAD.js} +43 -39
  34. package/chunks/{agent-headless-RI2THRQ7.js → agent-headless-TU5N3GFF.js} +43 -39
  35. package/chunks/{anthropicContentGenerator-JSKMKS6V.js → anthropicContentGenerator-H5YPXIDE.js} +37 -15
  36. package/chunks/{artifact-tool-PMYZCYNH.js → artifact-tool-MFGORTWZ.js} +59 -109
  37. package/chunks/{askUserQuestion-4M4YYIB4.js → askUserQuestion-WS4GUT7C.js} +3 -3
  38. package/chunks/{bridge-DAFMI72L.js → bridge-PF7UX6MH.js} +63 -58
  39. package/chunks/{build-63BIOYWK.js → build-5KWQBWEQ.js} +1 -1
  40. package/chunks/{ca-KC2AISNS.js → ca-GZ4FDJU2.js} +3 -3
  41. package/chunks/{channel-management-service-OWDXVL7R.js → channel-management-service-AFVIT4VH.js} +8 -8
  42. package/chunks/{channel-settings-store-4I6JONT7.js → channel-settings-store-3OVAGIC2.js} +68 -64
  43. package/chunks/{channel-worker-group-F2ZZMLNS.js → channel-worker-group-JR6JOELM.js} +8 -8
  44. package/chunks/{channel-worker-manager-2SZLJJSJ.js → channel-worker-manager-AVKJEZFL.js} +8 -8
  45. package/chunks/{channel-worker-supervisor-ZFNWMG6D.js → channel-worker-supervisor-OOYY7BAQ.js} +5 -5
  46. package/chunks/{chunk-6JACAGYH.js → chunk-2S2WIGCM.js} +1 -1
  47. package/chunks/{chunk-NRXWJXJ4.js → chunk-2YGR3VN6.js} +15 -15
  48. package/chunks/{chunk-IUVIBDKU.js → chunk-2YMRRI2C.js} +9 -10
  49. package/chunks/{chunk-3BTSSIJO.js → chunk-3DOAKZYD.js} +99 -14
  50. package/chunks/{chunk-F53KKZUD.js → chunk-3LMDSCLU.js} +158 -10
  51. package/chunks/{chunk-2ZN3O5FT.js → chunk-457DR2MC.js} +6 -6
  52. package/chunks/{chunk-WG7BL3FY.js → chunk-473RJLIH.js} +1 -1
  53. package/chunks/{chunk-W5ZQMAEM.js → chunk-4Y2I3CI3.js} +1 -1
  54. package/chunks/{chunk-HGEUHUEV.js → chunk-54B2LTKP.js} +1 -1
  55. package/chunks/{chunk-IRH27ZC2.js → chunk-5EZRLTLQ.js} +4 -4
  56. package/chunks/{chunk-DLH7YIX6.js → chunk-5FK4MSHB.js} +3 -3
  57. package/chunks/{chunk-CUEXOHQH.js → chunk-5ODRE7E5.js} +9 -15
  58. package/chunks/{chunk-532WHF4F.js → chunk-5VQR2DD7.js} +2 -2
  59. package/chunks/{chunk-3KQBQ6FM.js → chunk-63WKMKVD.js} +190 -28
  60. package/chunks/{chunk-YBUMTY7B.js → chunk-66N6C4EH.js} +1 -1
  61. package/chunks/{chunk-MLQNSPRZ.js → chunk-6MLDTOHU.js} +15 -5
  62. package/chunks/{chunk-SBRX4BDI.js → chunk-6NKDU7YL.js} +2 -2
  63. package/chunks/{chunk-3UXUOFO6.js → chunk-6TMXX4Z4.js} +9 -10
  64. package/chunks/{chunk-Y2MYW47X.js → chunk-6WXVEDT2.js} +9 -2
  65. package/chunks/{chunk-ZHKTKHMO.js → chunk-7MIBD3LG.js} +1 -1
  66. package/chunks/{chunk-EVTNACMT.js → chunk-A6QMKS5S.js} +12 -12
  67. package/chunks/{chunk-NOAG7N22.js → chunk-A6YU6R5N.js} +2 -2
  68. package/chunks/{chunk-76RGWKLS.js → chunk-ABNX6E6K.js} +1 -1
  69. package/chunks/chunk-ACHCT36C.js +28 -0
  70. package/chunks/{chunk-NE624IVP.js → chunk-ADQUK6WA.js} +1 -1
  71. package/chunks/{chunk-PLLIWEM3.js → chunk-AEWCOE64.js} +2 -2
  72. package/chunks/{chunk-3FPYT6QC.js → chunk-ARDHE6MM.js} +23 -0
  73. package/chunks/{chunk-LILGKQ4B.js → chunk-AXZMWAJV.js} +156 -26
  74. package/chunks/{chunk-SYLECP23.js → chunk-B776VKDA.js} +4 -4
  75. package/chunks/{chunk-AC6KDLH3.js → chunk-BNYQHLPR.js} +1 -1
  76. package/chunks/{chunk-BZM5U74J.js → chunk-BS7ON54G.js} +724 -468
  77. package/chunks/{chunk-TPKQIA7G.js → chunk-BSIOCNDK.js} +1 -1
  78. package/chunks/{chunk-U7O65WKL.js → chunk-BW2SMO6L.js} +1 -1
  79. package/chunks/{chunk-POC3YMHG.js → chunk-BY6CE34S.js} +4 -4
  80. package/chunks/{chunk-RLLRJJDR.js → chunk-C3VNHDWJ.js} +2 -2
  81. package/chunks/{chunk-WBCPROWX.js → chunk-C4HBZQNH.js} +1 -1
  82. package/chunks/{chunk-MSNHNAQZ.js → chunk-C5ABXOC2.js} +3 -3
  83. package/chunks/{chunk-NOO4QFXM.js → chunk-C75BXMPM.js} +1 -3
  84. package/chunks/chunk-CCWWPFZJ.js +191 -0
  85. package/chunks/chunk-CFMZLE3L.js +75 -0
  86. package/chunks/{chunk-N7VWZDWW.js → chunk-CFSBWJBB.js} +4462 -3840
  87. package/chunks/{chunk-KOKPXIAN.js → chunk-CL7JONZN.js} +3 -3
  88. package/chunks/{chunk-AXTFYDXT.js → chunk-CXXAZ2LZ.js} +1 -1
  89. package/chunks/{chunk-JYKWOREU.js → chunk-DBUOMHLZ.js} +13 -3
  90. package/chunks/{chunk-R4Q2PEFV.js → chunk-DLJBYORJ.js} +1 -1
  91. package/chunks/{chunk-DT75RKNH.js → chunk-DNVA2MQ2.js} +3 -3
  92. package/chunks/{chunk-J3TJH52D.js → chunk-DOTF2PF2.js} +1 -1
  93. package/chunks/{chunk-HGAELO7B.js → chunk-DQMBQCTY.js} +2 -2
  94. package/chunks/{chunk-2ALXPGB4.js → chunk-E6IR653O.js} +1 -1
  95. package/chunks/{chunk-ZKYR7QS4.js → chunk-EDB556X7.js} +2 -2
  96. package/chunks/chunk-EKJXDLDD.js +32 -0
  97. package/chunks/{chunk-NUQVB25K.js → chunk-EKMJR7M3.js} +2 -2
  98. package/chunks/{chunk-7QYWGTHB.js → chunk-EPVEPTI3.js} +44 -151
  99. package/chunks/{chunk-GCDXVPFK.js → chunk-EZSSJSKR.js} +31 -7
  100. package/chunks/{chunk-S6Q6Q4P2.js → chunk-FBDHP23D.js} +1 -1
  101. package/chunks/{chunk-UKZ45TJL.js → chunk-FFBP5POK.js} +420 -219
  102. package/chunks/{chunk-3I7W2POO.js → chunk-FGROOEKM.js} +5 -40
  103. package/chunks/{chunk-HNLMYDQE.js → chunk-FMLBBXHB.js} +13 -9
  104. package/chunks/{chunk-SSGAAWLY.js → chunk-GCV4NOHV.js} +95 -73
  105. package/chunks/{chunk-ALMR3E6Q.js → chunk-GDWE23OR.js} +3 -3
  106. package/chunks/{chunk-XBZTAGB7.js → chunk-GMN73IMT.js} +1 -1
  107. package/chunks/{chunk-IAEXTMED.js → chunk-GNV2SFO7.js} +173 -7
  108. package/chunks/{chunk-CXTPVBFA.js → chunk-GSS4SZNG.js} +100 -17
  109. package/chunks/chunk-GXN7DWZZ.js +154 -0
  110. package/chunks/{chunk-SODMFNAR.js → chunk-H23UWPF7.js} +5 -5
  111. package/chunks/{chunk-6HUXPLB5.js → chunk-HEOH7JZY.js} +5 -5
  112. package/chunks/{chunk-DTNV6UZY.js → chunk-HFJSQ4GL.js} +10 -24
  113. package/chunks/{chunk-GOXQL4YH.js → chunk-HWRXJQ6B.js} +2 -2
  114. package/chunks/{chunk-VZUCTJ2P.js → chunk-I6YJZGHS.js} +10 -10
  115. package/chunks/{chunk-RZHU3K6M.js → chunk-IAS753HG.js} +2 -20
  116. package/chunks/{chunk-EDMXGXAK.js → chunk-IBRQG2MP.js} +10 -13
  117. package/chunks/chunk-INGBUYL6.js +230 -0
  118. package/chunks/{chunk-7BXXIQG4.js → chunk-J73WJIMT.js} +36 -72
  119. package/chunks/{chunk-XGYHNWL3.js → chunk-J7LBAKDH.js} +3 -3
  120. package/chunks/{chunk-Z3GF56ME.js → chunk-JAYWZWZF.js} +3 -3
  121. package/chunks/{chunk-DYFOSJHU.js → chunk-JBFC2644.js} +2756 -1153
  122. package/chunks/{chunk-Q5BD56BW.js → chunk-JPCYCFYG.js} +7 -7
  123. package/chunks/{chunk-LG5Y4OWO.js → chunk-JRHKM3YQ.js} +2 -2
  124. package/chunks/{chunk-NHCZJQE4.js → chunk-JZKBMADP.js} +6 -6
  125. package/chunks/{chunk-MF6E7FSA.js → chunk-K7CQWBLT.js} +8 -201
  126. package/chunks/{chunk-K2OJUPOE.js → chunk-KP2FHIFR.js} +12 -0
  127. package/chunks/{chunk-ZU47FBOC.js → chunk-KSIOXYVX.js} +126 -12
  128. package/chunks/{chunk-IV7GDNKC.js → chunk-KZCK5JUN.js} +4 -4
  129. package/chunks/{chunk-3XLK2QMY.js → chunk-L3S2Y2FF.js} +59 -16
  130. package/chunks/{chunk-ZW2EUO2A.js → chunk-L6DIANLD.js} +1 -1
  131. package/chunks/{chunk-6W4HBUA2.js → chunk-LATAUG2M.js} +1 -1
  132. package/chunks/{chunk-RWVD5RRY.js → chunk-LBDASOPR.js} +3 -3
  133. package/chunks/{chunk-OX7IZ2G5.js → chunk-LF5AD7PY.js} +4 -4
  134. package/chunks/{chunk-NMRCXKQ5.js → chunk-LKCNETDW.js} +3 -3
  135. package/chunks/chunk-LMJSPC55.js +260 -0
  136. package/chunks/{chunk-X6K77VHC.js → chunk-LWWRJRCD.js} +1 -1
  137. package/chunks/{chunk-UXEO7E3V.js → chunk-LYD3T3H7.js} +1 -0
  138. package/chunks/{chunk-KFZYGSJN.js → chunk-M3YNPR56.js} +3 -3
  139. package/chunks/{chunk-HBQ2NXOU.js → chunk-MDG6GKSE.js} +2 -2
  140. package/chunks/{chunk-E4UEO3XM.js → chunk-ME4JBHSB.js} +324 -2
  141. package/chunks/{chunk-BV6Q5HMY.js → chunk-MJHLKWGJ.js} +8 -7
  142. package/chunks/{chunk-NFYEQRLG.js → chunk-MQRLLBMQ.js} +1 -1
  143. package/chunks/{chunk-O4KNCAX4.js → chunk-NCPFOLM2.js} +11 -0
  144. package/chunks/{chunk-2SZH22YO.js → chunk-NJ2OFVUX.js} +115 -97
  145. package/chunks/{chunk-DAWWT2ID.js → chunk-NN4EC2WO.js} +1374 -2164
  146. package/chunks/{chunk-6MBXY6WM.js → chunk-NRQI3PGS.js} +1 -1
  147. package/chunks/{chunk-HBU7EKY4.js → chunk-NRUKL236.js} +45 -15
  148. package/chunks/{chunk-53GWJOLP.js → chunk-NTCFKGQF.js} +3 -1
  149. package/chunks/{chunk-3CZ2BQV6.js → chunk-NXUZFW3G.js} +49 -19
  150. package/chunks/{chunk-X7UJKOHZ.js → chunk-OMDXAHCT.js} +4 -6
  151. package/chunks/{chunk-5GLDOLNQ.js → chunk-OWUAZXXN.js} +4 -3
  152. package/chunks/{chunk-2UWQX4FP.js → chunk-OZEV3R3S.js} +1 -1
  153. package/chunks/{acp-subagent-executor-LEUN3N7N.js → chunk-PAPBT3WP.js} +11 -110
  154. package/chunks/{chunk-7ICHPMBQ.js → chunk-PHSQVB6D.js} +4 -4
  155. package/chunks/{chunk-FCQJLMA2.js → chunk-Q3TFRP5G.js} +178 -8
  156. package/chunks/{chunk-YQHLFCPU.js → chunk-Q5CCYZD3.js} +32 -24
  157. package/chunks/chunk-QQL5BFOL.js +1416 -0
  158. package/chunks/{chunk-ZKZHSB5W.js → chunk-QR4Q425T.js} +9 -9
  159. package/chunks/{chunk-J6MB5ZHZ.js → chunk-QZW6WRB7.js} +2 -1
  160. package/chunks/{chunk-TP6FYVQT.js → chunk-RSWBT7AZ.js} +33 -1
  161. package/chunks/{chunk-2PJRI3EH.js → chunk-RVOD66ID.js} +218 -43
  162. package/chunks/{chunk-W5FIP7FC.js → chunk-S3PU3CNW.js} +5 -5
  163. package/chunks/chunk-S7UQ3V2H.js +87 -0
  164. package/chunks/{chunk-N6VQ37ZZ.js → chunk-SFL6U7U7.js} +1 -1
  165. package/chunks/{chunk-MOS5OAOG.js → chunk-SROLVJFY.js} +6 -6
  166. package/chunks/{chunk-HUXPEUFL.js → chunk-SYROIHU7.js} +1 -1
  167. package/chunks/{chunk-E7LB57MB.js → chunk-T3LUMYFP.js} +6 -6
  168. package/chunks/{chunk-PSPAM24S.js → chunk-TBSCTWKF.js} +6 -0
  169. package/chunks/{chunk-5KI7ZDTB.js → chunk-TV5WDW7R.js} +24 -12
  170. package/chunks/{chunk-NMCDMLHL.js → chunk-TXUJOKVR.js} +50 -35
  171. package/chunks/{chunk-NHJKAR6E.js → chunk-TYWLBEL2.js} +972 -18
  172. package/chunks/chunk-U6H3XTFA.js +95 -0
  173. package/chunks/{chunk-GSILBZLN.js → chunk-U7RWQBGZ.js} +2 -2
  174. package/chunks/{chunk-7APZIRH3.js → chunk-V3CMBOQ6.js} +5 -5
  175. package/chunks/{chunk-JXNIF2O5.js → chunk-V545KI73.js} +1 -1
  176. package/chunks/chunk-VGY2RGXL.js +100 -0
  177. package/chunks/{chunk-TBEXLLAO.js → chunk-VRQZESKP.js} +1 -1
  178. package/chunks/{chunk-FN3JNDRU.js → chunk-VVI7MK3V.js} +3 -3
  179. package/chunks/{chunk-EUURTIV6.js → chunk-WBSJ6VPZ.js} +10 -2
  180. package/chunks/{chunk-NLNQNBZ2.js → chunk-WD6YQI5M.js} +1 -1
  181. package/chunks/chunk-WFNEY5G7.js +347 -0
  182. package/chunks/{chunk-XKBFYTCD.js → chunk-WK6DEH3Q.js} +46 -0
  183. package/chunks/{chunk-36HCNKDS.js → chunk-WKVZES7O.js} +65 -14
  184. package/chunks/{chunk-BWAMMKIS.js → chunk-WLLRNQVT.js} +135 -6
  185. package/chunks/{chunk-MHAADZOZ.js → chunk-WMSP3XZK.js} +3 -3
  186. package/chunks/{chunk-IL5M5NYD.js → chunk-WUTXSXPP.js} +11 -9
  187. package/chunks/{chunk-NJQTG2G3.js → chunk-XE5ZFBVD.js} +11 -11
  188. package/chunks/{chunk-OLTN767L.js → chunk-XO3Z27IL.js} +2 -2
  189. package/chunks/{chunk-VX63RJXE.js → chunk-XX5HQLCZ.js} +7 -0
  190. package/chunks/{chunk-2Z3T52OC.js → chunk-Y5TM7SBV.js} +7 -2
  191. package/chunks/{chunk-V2P3DOQR.js → chunk-YDFOHRS5.js} +1 -1
  192. package/chunks/{chunk-QMUYLYT5.js → chunk-YGFJ6BRT.js} +1 -1
  193. package/chunks/{chunk-LK2WUCDQ.js → chunk-YM6KUQ2S.js} +1 -1
  194. package/chunks/{chunk-F42YYSCK.js → chunk-YVF4PKCV.js} +8 -8
  195. package/chunks/{chunk-LDVNJZGH.js → chunk-Z2H5HQS3.js} +17 -8
  196. package/chunks/chunk-Z72PLR74.js +36 -0
  197. package/chunks/{chunk-BWQLXU37.js → chunk-ZDHXRKRG.js} +381 -86
  198. package/chunks/{chunk-BHTYRHJF.js → chunk-ZJ7JQUGY.js} +4 -1
  199. package/chunks/{chunk-4ALNJDHL.js → chunk-ZKIAGIGH.js} +87 -4
  200. package/chunks/{chunk-VG3Q2NC4.js → chunk-ZNI3YJHS.js} +32 -12
  201. package/chunks/chunk-ZRZZLM37.js +2780 -0
  202. package/chunks/{chunk-Q2LVVIKF.js → chunk-ZZUXUBEB.js} +29 -12
  203. package/chunks/codex-subagent-executor-SM3TUSBA.js +586 -0
  204. package/chunks/{config-utils-L6KLDYIV.js → config-utils-JHKHFOG6.js} +60 -56
  205. package/chunks/{contextCommand-UYEH7NIU.js → contextCommand-XE4NDYQW.js} +58 -54
  206. package/chunks/{core-runtime-NVHT3Z3V.js → core-runtime-PNCWH3RE.js} +58 -55
  207. package/chunks/{create-sub-session-TIGCFGCS.js → create-sub-session-MSGNIM37.js} +5 -2
  208. package/chunks/{create-sub-session-YWASE5VH.js → create-sub-session-P7E5Y3HY.js} +169 -89
  209. package/chunks/{cron-create-AKWX67FO.js → cron-create-U2JJ5CCF.js} +3 -3
  210. package/chunks/{cron-delete-XPB6IYZJ.js → cron-delete-7DM4LJWD.js} +2 -2
  211. package/chunks/{cron-list-XBKO4WU5.js → cron-list-VCUSZK2Y.js} +2 -2
  212. package/chunks/{daemon-G5TYKZD6.js → daemon-NJB4PWZ7.js} +3 -1
  213. package/chunks/{daemon-git-worktree-guard-FOW4RQSK.js → daemon-git-worktree-guard-JFD5VZRN.js} +58 -54
  214. package/chunks/{daemon-status-provider-O5KQZYMP.js → daemon-status-provider-A3VFVFWW.js} +68 -63
  215. package/chunks/{daemon-trust-policy-3ATXEON7.js → daemon-trust-policy-NPZ47MZH.js} +64 -60
  216. package/chunks/{daemon-trust-policy-monitor-7MCNDNEC.js → daemon-trust-policy-monitor-XG2CHL3Z.js} +64 -60
  217. package/chunks/{de-UU2YTO37.js → de-VGY3VNBU.js} +3 -3
  218. package/chunks/{deferred-core-runtime-JK5IXL5K.js → deferred-core-runtime-V42EMU27.js} +56 -52
  219. package/chunks/{discovery-XP4RMDUM.js → discovery-5KUEPR65.js} +2 -2
  220. package/chunks/{display-image-NAH3AZ63.js → display-image-QTHALY6N.js} +3 -3
  221. package/chunks/{dist-KLZ7XGEQ.js → dist-2QYIVNS6.js} +1 -4
  222. package/chunks/{dist-AHJYPSJL.js → dist-GUB7QRYA.js} +2 -5
  223. package/chunks/{dist-ZXTZTE54.js → dist-MPUZZOG5.js} +4 -17
  224. package/chunks/{dist-F2DVGTL3.js → dist-NIOJXMGY.js} +111 -101
  225. package/chunks/{dist-KJGRVIGJ.js → dist-PA7WPFVE.js} +5 -36
  226. package/chunks/{dist-AIKC5E5P.js → dist-SE4J6Z4O.js} +43 -669
  227. package/chunks/{dist-H6G3K26N.js → dist-T6DDPDLQ.js} +14 -34
  228. package/chunks/{dist-GWNQVPZT.js → dist-TFGETXFN.js} +10 -33
  229. package/chunks/{dist-ZA52JXAS.js → dist-VDLSBCLM.js} +1 -5
  230. package/chunks/{edit-SY35KYIE.js → edit-E2ZGJDBJ.js} +46 -42
  231. package/chunks/{en-CAJHTIQT.js → en-E5ZO5TZW.js} +5 -3
  232. package/chunks/{enter-worktree-54L5QJ3N.js → enter-worktree-CAARFWBI.js} +6 -5
  233. package/chunks/{enterPlanMode-HXX6KQJR.js → enterPlanMode-442YAAZB.js} +43 -39
  234. package/chunks/{environment-DKXHG4HB.js → environment-DCJ5FVHM.js} +59 -55
  235. package/chunks/{errors-ADY7LQJJ.js → errors-ZWTDW2NJ.js} +58 -54
  236. package/chunks/exec-RPKEY6HP.js +505 -0
  237. package/chunks/{exit-worktree-EORJDKDS.js → exit-worktree-JXGGUOBP.js} +6 -5
  238. package/chunks/{exitPlanMode-HSK2CQI6.js → exitPlanMode-4PLQOFOO.js} +43 -39
  239. package/chunks/{fast-path-U636VWN2.js → fast-path-DBSGDGB3.js} +10 -10
  240. package/chunks/{fast-path-settings-V7MI7EZJ.js → fast-path-settings-XDYX7X5Z.js} +2 -2
  241. package/chunks/{fr-HKNWVXRJ.js → fr-UAZJJH5N.js} +3 -3
  242. package/chunks/{glob-GUGGTH5L.js → glob-VWOE4W7K.js} +43 -39
  243. package/chunks/{goal-tools-PXYRSQGX.js → goal-tools-K6SIBXMB.js} +49 -41
  244. package/chunks/{grep-3PKFKLCA.js → grep-H2I33VAO.js} +8 -3
  245. package/chunks/{handleAutoUpdate-5KHS4HIN.js → handleAutoUpdate-NCC3XELY.js} +61 -57
  246. package/chunks/{i18n-KSGKMUPT.js → i18n-GO7JI4PT.js} +57 -53
  247. package/chunks/{image-gen-OCCR2WWU.js → image-gen-5G2TQ3DY.js} +6 -5
  248. package/chunks/{initializer-YYT5XEZF.js → initializer-BXKAW5A6.js} +64 -60
  249. package/chunks/{installationInfo-UNSBPYW2.js → installationInfo-5JONIX62.js} +57 -53
  250. package/chunks/{ja-GJS5RZGU.js → ja-2RITCMAJ.js} +3 -3
  251. package/chunks/list-QW74LCLS.js +133 -0
  252. package/chunks/{list-agents-QLDXS5OD.js → list-agents-EWDCEPIW.js} +3 -3
  253. package/chunks/{llm-XGGLBGPH.js → llm-FJHSMJTM.js} +161 -125
  254. package/chunks/{llm-content-generator-ZHQQT5W7.js → llm-content-generator-3VLLPQS4.js} +14 -7
  255. package/chunks/{loadedSettingsAdapter-3DXLASK7.js → loadedSettingsAdapter-OLMQSKVC.js} +64 -60
  256. package/chunks/{loggingContentGenerator-V72OCCJO.js → loggingContentGenerator-IMLIJULY.js} +47 -43
  257. package/chunks/{loop-wakeup-HHMYIC7Z.js → loop-wakeup-VG6CGBQA.js} +4 -4
  258. package/chunks/{ls-N7ABR6HI.js → ls-6ZB3BEIR.js} +1 -1
  259. package/chunks/{lsp-LTOFWG5P.js → lsp-M54FQARP.js} +5 -1
  260. package/chunks/{managed-npm-update-HV5LPZH2.js → managed-npm-update-LXLBWCNA.js} +57 -53
  261. package/chunks/mcp-FOXA3372.js +127 -0
  262. package/chunks/model-configuration-SCOI2KPF.js +140 -0
  263. package/chunks/modelConfigUtils-EA44S64C.js +119 -0
  264. package/chunks/{monitor-TLBNM4MV.js → monitor-TJAHYCCY.js} +43 -39
  265. package/chunks/{nonInteractiveCli-LSJSQ2W4.js → nonInteractiveCli-QH2HABWC.js} +112 -107
  266. package/chunks/{notebook-edit-OSPOLZP6.js → notebook-edit-WEMSBUBS.js} +45 -41
  267. package/chunks/{openaiContentGenerator-BE4S5TRD.js → openaiContentGenerator-WD5DWYOA.js} +24 -19
  268. package/chunks/{openaiResponsesContentGenerator-RTCAJ5V5.js → openaiResponsesContentGenerator-AWRYZLJU.js} +110 -19
  269. package/chunks/{pidfile-H32FEPWA.js → pidfile-TQL2LCEG.js} +56 -52
  270. package/chunks/{processUtils-SSLIPDEA.js → processUtils-6ZU56DCI.js} +2 -2
  271. package/chunks/{prompt-terminal-ledger-I5SLL6UF.js → prompt-terminal-ledger-3HAKHXFV.js} +57 -53
  272. package/chunks/{pt-FXMYXEUV.js → pt-5ZF7ZQUV.js} +3 -3
  273. package/chunks/{qwenContentGenerator-TMQC623Z.js → qwenContentGenerator-3OIZQZLC.js} +47 -43
  274. package/chunks/{qwenOAuth2-3ZRQHHTC.js → qwenOAuth2-WIEUEFEY.js} +5 -4
  275. package/chunks/{read-file-T2QAIZE2.js → read-file-2PWWL6J2.js} +9 -8
  276. package/chunks/{read-mcp-resource-B37WANAQ.js → read-mcp-resource-LPSWXVOD.js} +1 -1
  277. package/chunks/{record-artifact-OAXWXZ5D.js → record-artifact-PXMNP7GZ.js} +3 -3
  278. package/chunks/{record-source-D7R7X3GT.js → record-source-2GSY5JD5.js} +6 -6
  279. package/chunks/{report-findings-AR3VC6EQ.js → report-findings-W6GR7SYZ.js} +4 -4
  280. package/chunks/{request-shutdown-IKNWTX5M.js → request-shutdown-53SNYGVR.js} +5 -5
  281. package/chunks/{resumeHistoryUtils-QLKDH5GY.js → resumeHistoryUtils-S4TEUTKE.js} +63 -59
  282. package/chunks/{ripGrep-YGWL7KCV.js → ripGrep-5NMGLMLX.js} +13 -11
  283. package/chunks/{ru-RMHURE5U.js → ru-7BNZFQKG.js} +3 -3
  284. package/chunks/{run-qwen-serve-26KZDECC.js → run-qwen-serve-6MGYRK4V.js} +314 -127
  285. package/chunks/{runtime-BMEIVDDG.js → runtime-ZJYUQCPP.js} +69 -65
  286. package/chunks/{scheduled-tasks-NCFPP6VQ.js → scheduled-tasks-5MKF4EV3.js} +66 -60
  287. package/chunks/{scheduler-47TVMUVN.js → scheduler-72DZWRH5.js} +58 -54
  288. package/chunks/{sdk-exporters-http-VWTF4W6K.js → sdk-exporters-http-3R2TRQHE.js} +2 -1
  289. package/chunks/{sdk-impl-G6FVTBQZ.js → sdk-impl-4WF3VZ2F.js} +3 -3
  290. package/chunks/{send-message-TWOGWCBG.js → send-message-UMJKN27Q.js} +7 -7
  291. package/chunks/{serve-KL3G6LQQ.js → serve-7ZDMMA7I.js} +66 -62
  292. package/chunks/{server-LBPYXZ5G.js → server-ONK5RTEV.js} +783 -350
  293. package/chunks/{session-YG6742LO.js → session-XQW2LM4S.js} +117 -112
  294. package/chunks/{session-attachments-root-OUBQDYC4.js → session-attachments-root-Q5IUCMQV.js} +56 -52
  295. package/chunks/{session-pr-refresh-EKGMYNAW.js → session-pr-refresh-MVECWT3W.js} +66 -60
  296. package/chunks/{settings-DDNHJX2L.js → settings-DL6K2HQ3.js} +67 -63
  297. package/chunks/{shell-KUCXWITU.js → shell-BLP25QJU.js} +43 -39
  298. package/chunks/{skill-JQLKPNWZ.js → skill-7KURUNLD.js} +128 -23
  299. package/chunks/{skill-settings-XERQCUXZ.js → skill-settings-MY76LM46.js} +72 -60
  300. package/chunks/{spawnChannel-GQ45QFGB.js → spawnChannel-IJLH3Z74.js} +60 -55
  301. package/chunks/{standalone-update-PRF3ILGZ.js → standalone-update-YQKN7VNO.js} +58 -54
  302. package/chunks/{start-opentui-ui-JDSOZE3N.js → start-opentui-ui-ORNGKZTG.js} +2693 -2160
  303. package/chunks/{startInteractiveUI-RRW3JVHN.js → startInteractiveUI-PRLIKB4U.js} +1610 -1773
  304. package/chunks/{syntheticOutput-F6F27JMK.js → syntheticOutput-EX5L5GYI.js} +2 -2
  305. package/chunks/{task-create-Y623TBHB.js → task-create-75HVPEAH.js} +7 -7
  306. package/chunks/{task-list-FCPEEGWL.js → task-list-ZLJSMRFA.js} +2 -2
  307. package/chunks/{task-stop-QTKZXLPH.js → task-stop-MD7P6QGK.js} +1 -1
  308. package/chunks/{task-update-YLSXF25N.js → task-update-RI7QNVDP.js} +20 -13
  309. package/chunks/{team-create-5DRLOLOE.js → team-create-ANLKOQ44.js} +43 -39
  310. package/chunks/{team-delete-S7TLHZCF.js → team-delete-RIDINW6I.js} +1 -1
  311. package/chunks/{team-plan-approval-MWSGAL5T.js → team-plan-approval-EFUENI6Y.js} +43 -39
  312. package/chunks/{terminal-image-renderer-H7PD4FQW.js → terminal-image-renderer-CXMFIWKC.js} +58 -54
  313. package/chunks/{theme-manager-7AV73D6R.js → theme-manager-JUFYQDQQ.js} +56 -52
  314. package/chunks/{todoWrite-5QI2H2FW.js → todoWrite-XSTG2VT5.js} +6 -3
  315. package/chunks/{tool-search-UGYTBLUV.js → tool-search-SNCEA4VA.js} +17 -12
  316. package/chunks/{total-session-admission-JIHSTJ5S.js → total-session-admission-UHYNUO3L.js} +63 -58
  317. package/chunks/{tree-sitter-4D7QS7F6.js → tree-sitter-NZ3QACD7.js} +1 -1
  318. package/chunks/{tree-sitter-bash-VEJGF5XF.js → tree-sitter-bash-WXHLMORC.js} +1 -1
  319. package/chunks/{trustedFolders-5VCBXFOP.js → trustedFolders-YBR5URPG.js} +57 -53
  320. package/chunks/{update-relaunch-4LF3APCV.js → update-relaunch-L6MTSN76.js} +5 -5
  321. package/chunks/{updateCheck-4T3WUE5F.js → updateCheck-Z3SPZXHC.js} +60 -56
  322. package/chunks/{useAutoAcceptIndicator-UMGB64Z6.js → useAutoAcceptIndicator-PR5XGMO6.js} +68 -64
  323. package/chunks/{validateNonInterActiveAuth-GFJ72U2C.js → validateNonInterActiveAuth-KFLTWEYW.js} +109 -104
  324. package/chunks/{version-EAAZN4T2.js → version-NGAKFVUF.js} +1 -1
  325. package/chunks/{web-fetch-VRU3A2NI.js → web-fetch-WPGTHGU5.js} +15 -13
  326. package/chunks/web-search-JT63IJJV.js +39 -0
  327. package/chunks/{web-shell-static-CCN4JZEE.js → web-shell-static-T7UGLVE4.js} +2 -7
  328. package/chunks/{workflow-UHPFALVZ.js → workflow-EB63BAL4.js} +179 -79
  329. package/chunks/workspace-providers-status-NEPR67D2.js +133 -0
  330. package/chunks/{workspace-registration-store-A7RGKW62.js → workspace-registration-store-CFWXOMGH.js} +2 -2
  331. package/chunks/{workspace-registry-C2NGE6SD.js → workspace-registry-6KRZXOGB.js} +63 -58
  332. package/chunks/{workspace-runtime-coordinator-QKMZ24YF.js → workspace-runtime-coordinator-SP4X3UVH.js} +66 -59
  333. package/chunks/{workspace-service-RQTTAGGC.js → workspace-service-PRMYJTTV.js} +70 -65
  334. package/chunks/workspace-skills-status-VYTZJ5MB.js +130 -0
  335. package/chunks/{workspace-trust-reconciler-KFWATZUU.js → workspace-trust-reconciler-B4QMGDMI.js} +73 -68
  336. package/chunks/{write-file-DPVB2SBQ.js → write-file-EGBMW7TS.js} +45 -41
  337. package/chunks/{zh-TW-2K2WRFPY.js → zh-TW-7PRVUGLW.js} +5 -3
  338. package/chunks/{zh-S5V3Z5CR.js → zh-V2EYTYJP.js} +5 -3
  339. package/chunks/{zoom-image-S7AWLAPC.js → zoom-image-UR6K2LDR.js} +11 -10
  340. package/cli.js +18 -17
  341. package/codeModeHost.js +4425 -0
  342. package/export-transcript-document.css +1 -1
  343. package/export-transcript-document.js +151 -151
  344. package/locales/ca.js +5 -6
  345. package/locales/de.js +5 -6
  346. package/locales/en.js +7 -6
  347. package/locales/fr.js +6 -6
  348. package/locales/ja.js +5 -6
  349. package/locales/pt.js +5 -6
  350. package/locales/ru.js +6 -6
  351. package/locales/zh-TW.js +7 -6
  352. package/locales/zh.js +7 -6
  353. package/package.json +4 -3
  354. package/web-shell/assets/{abnfDiagram-VCTEODGH-nU24rpIE.js → abnfDiagram-VCTEODGH-S_JCiANq.js} +1 -1
  355. package/web-shell/assets/{arc-D1hTu8QI.js → arc-DP-839Xn.js} +1 -1
  356. package/web-shell/assets/architectureDiagram-5GKGNRK7-C8rCd2KK.js +36 -0
  357. package/web-shell/assets/blockDiagram-NRAW4CY4-DQR82jwr.js +129 -0
  358. package/web-shell/assets/{c4Diagram-UCG6FXSJ-kEFoC1ei.js → c4Diagram-UCG6FXSJ-D21PNMRP.js} +4 -4
  359. package/web-shell/assets/channel-BgGrpX_z.js +1 -0
  360. package/web-shell/assets/{chunk-2Q5K7J3B-DbT9wS7j.js → chunk-2Q5K7J3B-KdDInGLi.js} +1 -1
  361. package/web-shell/assets/{chunk-5VM5RSS4-CNbULt6O.js → chunk-5VM5RSS4-ltb7zRmH.js} +1 -1
  362. package/web-shell/assets/{chunk-F27PBJKO-CbQRy4Tb.js → chunk-F27PBJKO-DcpQA0Ng.js} +1 -1
  363. package/web-shell/assets/chunk-G27WJ6UU-C8NDZxcy.js +231 -0
  364. package/web-shell/assets/chunk-JWPE2WC7-hXhhHTs1.js +1 -0
  365. package/web-shell/assets/chunk-LCL6LL3I-CLaOR-Hl.js +206 -0
  366. package/web-shell/assets/chunk-POPQ4Y6H-Y5_qlB1N.js +1 -0
  367. package/web-shell/assets/{chunk-SVP7TREG-DyBb2Axj.js → chunk-SVP7TREG-BWX2Voh7.js} +4 -4
  368. package/web-shell/assets/{chunk-XXDRQBXY-BIA0eb5B.js → chunk-XXDRQBXY-1wmj_kXI.js} +1 -1
  369. package/web-shell/assets/classDiagram-DTDB5LWJ-jUH7ADYs.js +1 -0
  370. package/web-shell/assets/classDiagram-v2-JRS7N3AN-jUH7ADYs.js +1 -0
  371. package/web-shell/assets/cose-bilkent-JH36ORCC-DpLc-cdd.js +1 -0
  372. package/web-shell/assets/cynefin-OW5HDTMX-DhxGiPZW.js +178 -0
  373. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-LENf_IUy.js → cynefinDiagram-5FMLGOSQ-Dl3jfBry.js} +1 -1
  374. package/web-shell/assets/{cytoscape.esm-CUqq0XTU.js → cytoscape.esm-DJK6lGiH.js} +3 -3
  375. package/web-shell/assets/dagre-3AP2YEHR-C8FA8vJk.js +4 -0
  376. package/web-shell/assets/diagram-S7CK7UJ4-D-quIUtW.js +30 -0
  377. package/web-shell/assets/diagram-UQ7AKVKN-Bjo09Uts.js +41 -0
  378. package/web-shell/assets/diagram-VSXAHHWV-IoI3ttq4.js +3 -0
  379. package/web-shell/assets/diagram-VX7I27RA-BKyOZ5SO.js +24 -0
  380. package/web-shell/assets/diagram-Z3DM3KII-Cu_OHEhw.js +24 -0
  381. package/web-shell/assets/{ebnfDiagram-PWID7BFC-BGpiquRm.js → ebnfDiagram-PWID7BFC-UVB-bbPg.js} +1 -1
  382. package/web-shell/assets/{erDiagram-SSCWMZ5O-D0besu_U.js → erDiagram-SSCWMZ5O-l8drddto.js} +13 -13
  383. package/web-shell/assets/flowDiagram-A5DVABFB-DU1I_VAI.js +168 -0
  384. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-CNlsAeNr.js → ganttDiagram-EL5Y4UJY-BLRH05uB.js} +1 -1
  385. package/web-shell/assets/gitGraphDiagram-WWUBYQGX-Czg_BkRE.js +106 -0
  386. package/web-shell/assets/index-CmMV8Jla.js +3 -0
  387. package/web-shell/assets/{index-CGT341lL.js → index-DohPy72Z.js} +1 -1
  388. package/web-shell/assets/index-DyMtNYuu.js +2207 -0
  389. package/web-shell/assets/index-n6N-2a3v.css +36 -0
  390. package/web-shell/assets/{infoDiagram-RXCK75RN-Bpai64Ll.js → infoDiagram-RXCK75RN-BpBvjkro.js} +1 -1
  391. package/web-shell/assets/ishikawaDiagram-5VMMS53U-phy1l3jm.js +70 -0
  392. package/web-shell/assets/{journeyDiagram-EYS64GPL-iz_DKgFX.js → journeyDiagram-EYS64GPL-oY-9LgVS.js} +1 -1
  393. package/web-shell/assets/kanban-definition-3QL26DDD-slZoy-sc.js +89 -0
  394. package/web-shell/assets/{layout-qEvKgnvU.js → layout-0hnn_P9l.js} +1 -1
  395. package/web-shell/assets/{linear-C6lklGdq.js → linear-7Wqe8DRy.js} +1 -1
  396. package/web-shell/assets/mermaid.core-BaK8n0bq.js +312 -0
  397. package/web-shell/assets/mindmap-definition-FBJOCRG2-BedUdy_E.js +96 -0
  398. package/web-shell/assets/{pegDiagram-XKGWAZYB-BhD0q0i6.js → pegDiagram-XKGWAZYB-DQLRdmxq.js} +1 -1
  399. package/web-shell/assets/pieDiagram-E7YTZNPT-UC20w9-5.js +39 -0
  400. package/web-shell/assets/quadrantDiagram-AXDQQJYC-CQx2Hmk3.js +7 -0
  401. package/web-shell/assets/qwen-code-notification-BRVagufF.png +0 -0
  402. package/web-shell/assets/{railroadDiagram-O6MQD6OU-E1g2KIFK.js → railroadDiagram-O6MQD6OU-2UEJe_y-.js} +1 -1
  403. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-CuerYJOe.js → requirementDiagram-EFPCY7ZU-DOAJggB4.js} +13 -13
  404. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CqWyCZGA.js → sankeyDiagram-P5KCCOFB-DnQ_qJo7.js} +7 -7
  405. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-B-YWb8x4.js → sequenceDiagram-WJ2MYXX4-DZrZUoCo.js} +16 -16
  406. package/web-shell/assets/sizeCapture-X5ZJPWSS-B5G4GDQB.js +1 -0
  407. package/web-shell/assets/{stateDiagram-HBIQ2CUA-C8LDpNHS.js → stateDiagram-HBIQ2CUA-Bn1cT0qF.js} +1 -1
  408. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-BF3xtNvJ.js +1 -0
  409. package/web-shell/assets/swimlanes-XN3QIQJK-Bzhcdn87.js +1 -0
  410. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-B753mA3E.js +8 -0
  411. package/web-shell/assets/timeline-definition-24CTP7MA-BqZ_3D10.js +120 -0
  412. package/web-shell/assets/vennDiagram-4TSXK5OY-z9kw1kmm.js +34 -0
  413. package/web-shell/assets/wardleyDiagram-VM6X3IG4-Cydp1zJW.js +78 -0
  414. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-ruD2Wjhg.js → xychartDiagram-S5SC5T6Z-j4X1lQKo.js} +1 -1
  415. package/web-shell/index.html +2 -2
  416. package/chunks/chunk-7Q2AXRDJ.js +0 -114
  417. package/chunks/chunk-AEY27Z35.js +0 -1411
  418. package/chunks/chunk-CFKIH3D3.js +0 -50
  419. package/chunks/chunk-HWVUSYSN.js +0 -126
  420. package/chunks/chunk-QHMLYMMS.js +0 -32
  421. package/chunks/chunk-SAH4BD2J.js +0 -92
  422. package/chunks/chunk-TWUKBNWM.js +0 -86
  423. package/chunks/chunk-ZTTC7T4X.js +0 -126
  424. package/chunks/list-YL6LDQKQ.js +0 -129
  425. package/chunks/mcp-IYVSIW6O.js +0 -123
  426. package/chunks/web-search-NEGYQNDJ.js +0 -912
  427. package/chunks/workspace-providers-status-AEYISSU2.js +0 -127
  428. package/chunks/workspace-skills-status-5HWZU3HX.js +0 -126
  429. package/web-shell/assets/architectureDiagram-5GKGNRK7-B_fgkKe7.js +0 -36
  430. package/web-shell/assets/blockDiagram-NRAW4CY4-C3pddUNg.js +0 -129
  431. package/web-shell/assets/channel-Blod4z1X.js +0 -1
  432. package/web-shell/assets/chunk-G27WJ6UU-CVbXTxYk.js +0 -231
  433. package/web-shell/assets/chunk-JWPE2WC7-D89c_BXy.js +0 -1
  434. package/web-shell/assets/chunk-LCL6LL3I-B7-I_9KB.js +0 -206
  435. package/web-shell/assets/chunk-POPQ4Y6H-DcLQFzS4.js +0 -1
  436. package/web-shell/assets/classDiagram-DTDB5LWJ-D6hFDMqb.js +0 -1
  437. package/web-shell/assets/classDiagram-v2-JRS7N3AN-D6hFDMqb.js +0 -1
  438. package/web-shell/assets/cose-bilkent-JH36ORCC-Db2FYN85.js +0 -1
  439. package/web-shell/assets/cynefin-OW5HDTMX-i4GwmBVy.js +0 -178
  440. package/web-shell/assets/dagre-3AP2YEHR-CF9XVrD9.js +0 -4
  441. package/web-shell/assets/diagram-S7CK7UJ4-DD5PJfSm.js +0 -30
  442. package/web-shell/assets/diagram-UQ7AKVKN-CjD_sBMj.js +0 -41
  443. package/web-shell/assets/diagram-VSXAHHWV-U5WwMqyA.js +0 -3
  444. package/web-shell/assets/diagram-VX7I27RA-BujpHJJf.js +0 -24
  445. package/web-shell/assets/diagram-Z3DM3KII-3ZLtKEXo.js +0 -24
  446. package/web-shell/assets/flowDiagram-A5DVABFB-9DwDuIyr.js +0 -168
  447. package/web-shell/assets/gitGraphDiagram-WWUBYQGX-C_pPFiTR.js +0 -106
  448. package/web-shell/assets/index-BYWs4JWq.js +0 -3
  449. package/web-shell/assets/index-D3YS6KuJ.js +0 -2173
  450. package/web-shell/assets/index-eBxK3rs2.css +0 -36
  451. package/web-shell/assets/ishikawaDiagram-5VMMS53U-ktpJFq4r.js +0 -70
  452. package/web-shell/assets/kanban-definition-3QL26DDD-m_gG00Yt.js +0 -89
  453. package/web-shell/assets/mermaid.core-DSCYB_2P.js +0 -312
  454. package/web-shell/assets/mindmap-definition-FBJOCRG2-DRQbT8w-.js +0 -96
  455. package/web-shell/assets/pieDiagram-E7YTZNPT-BvIGQCSd.js +0 -39
  456. package/web-shell/assets/quadrantDiagram-AXDQQJYC-BDQtfpU-.js +0 -7
  457. package/web-shell/assets/sizeCapture-X5ZJPWSS-BB7YY4Tl.js +0 -1
  458. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C4CbdvGa.js +0 -1
  459. package/web-shell/assets/swimlanes-XN3QIQJK-D94vOoxZ.js +0 -1
  460. package/web-shell/assets/swimlanesDiagram-VK2B7HYN--QNSIOC8.js +0 -8
  461. package/web-shell/assets/timeline-definition-24CTP7MA-C9C8uEYm.js +0 -120
  462. package/web-shell/assets/vennDiagram-4TSXK5OY-CYzMHbVW.js +0 -34
  463. package/web-shell/assets/wardleyDiagram-VM6X3IG4-G9nhtLES.js +0 -78
  464. package/chunks/{open-with-auth-6MVIHMXB.js → open-with-auth-XFCCJOO6.js} +3 -3
@@ -4,7 +4,7 @@ import {
4
4
  matches,
5
5
  nextFireTime,
6
6
  parseCron
7
- } from "./chunk-IRH27ZC2.js";
7
+ } from "./chunk-5EZRLTLQ.js";
8
8
  import {
9
9
  humanReadableCron
10
10
  } from "./chunk-QHWCP53L.js";
@@ -13,6 +13,7 @@ import {
13
13
  addCronTask,
14
14
  annotateCronRunSession,
15
15
  appendCronRun,
16
+ cronTaskSessionDeletionId,
16
17
  generateCronTaskId,
17
18
  getCronFilePath,
18
19
  readCronTasks,
@@ -20,10 +21,10 @@ import {
20
21
  taskHasLegacyCondition,
21
22
  taskHasLegacyRunMode,
22
23
  updateCronTasks
23
- } from "./chunk-F53KKZUD.js";
24
+ } from "./chunk-3LMDSCLU.js";
24
25
  import {
25
26
  ToolNames
26
- } from "./chunk-TP6FYVQT.js";
27
+ } from "./chunk-RSWBT7AZ.js";
27
28
  import {
28
29
  Storage,
29
30
  createDebugLogger,
@@ -301,6 +302,15 @@ var CronScheduler = class {
301
302
  // eligible to fire them. Cleared on stop so a later enable still treats
302
303
  // genuinely overdue work as missed.
303
304
  armedDurableOneShots = /* @__PURE__ */ new Set();
305
+ // Exact persisted snapshots for active per-run one-shots. The tick removes
306
+ // such a task before its async fresh-session dispatch finishes; retain the
307
+ // original so a rejected dispatch can put the unexecuted task back without
308
+ // dropping route-only fields such as session ownership.
309
+ restorablePerRunOneShots = /* @__PURE__ */ new Map();
310
+ consumedPerRunOneShots = /* @__PURE__ */ new Set();
311
+ // The durable deletion generation observed by the task-file mutation that
312
+ // removed each consumed one-shot.
313
+ consumedPerRunRemovalGenerations = /* @__PURE__ */ new Map();
304
314
  // Ids of legacy tasks (a pre-removal `isolated` task with a `condition`
305
315
  // precondition) already reported as skipped, so the fail-closed remediation
306
316
  // breadcrumb is logged once per task rather than on every file reload.
@@ -504,7 +514,12 @@ var CronScheduler = class {
504
514
  */
505
515
  async delete(id) {
506
516
  const job = this.jobs.get(id);
507
- if (!job) return this.cancelWakeup(id);
517
+ if (!job) {
518
+ this.restorablePerRunOneShots.delete(id);
519
+ this.consumedPerRunOneShots.delete(id);
520
+ this.consumedPerRunRemovalGenerations.delete(id);
521
+ return this.cancelWakeup(id);
522
+ }
508
523
  this.jobs.delete(id);
509
524
  if (job.durable && this.projectRoot) {
510
525
  this.pendingRemoval.add(id);
@@ -516,6 +531,9 @@ var CronScheduler = class {
516
531
  throw error;
517
532
  }
518
533
  }
534
+ this.restorablePerRunOneShots.delete(id);
535
+ this.consumedPerRunOneShots.delete(id);
536
+ this.consumedPerRunRemovalGenerations.delete(id);
519
537
  this.armedDurableOneShots.delete(id);
520
538
  return true;
521
539
  }
@@ -705,6 +723,11 @@ var CronScheduler = class {
705
723
  }
706
724
  const diskIds = new Set(tasks.map((t) => t.id));
707
725
  for (const id of this.pendingAdd) diskIds.add(id);
726
+ for (const id of this.restorablePerRunOneShots.keys()) {
727
+ if (!diskIds.has(id) && !this.consumedPerRunOneShots.has(id)) {
728
+ this.restorablePerRunOneShots.delete(id);
729
+ }
730
+ }
708
731
  for (const job of this.jobs.values()) {
709
732
  if (job.durable && !diskIds.has(job.id)) {
710
733
  this.jobs.delete(job.id);
@@ -730,6 +753,15 @@ var CronScheduler = class {
730
753
  job.lastFiredAt = Math.max(existing.lastFiredAt, job.lastFiredAt ?? 0);
731
754
  }
732
755
  this.jobs.set(task.id, job);
756
+ if (!task.recurring && task.sessionMode === "per_run") {
757
+ this.restorablePerRunOneShots.set(task.id, {
758
+ task,
759
+ index: read.findIndex((candidate) => candidate.id === task.id)
760
+ });
761
+ } else {
762
+ this.restorablePerRunOneShots.delete(task.id);
763
+ this.consumedPerRunOneShots.delete(task.id);
764
+ }
733
765
  if (!task.recurring && this.#shouldFireDurable(job)) {
734
766
  this.armedDurableOneShots.add(task.id);
735
767
  } else {
@@ -958,6 +990,10 @@ var CronScheduler = class {
958
990
  /** Attributes an already-persisted per-run fire to the session it ran in,
959
991
  * and/or marks its fresh-session creation as failed. */
960
992
  async annotateRunSession(taskId, firedAt, outcome) {
993
+ if (outcome.sessionId && this.consumedPerRunOneShots.delete(taskId)) {
994
+ this.restorablePerRunOneShots.delete(taskId);
995
+ this.consumedPerRunRemovalGenerations.delete(taskId);
996
+ }
961
997
  if (!this.projectRoot) return;
962
998
  await Promise.resolve();
963
999
  await this.pendingPersist;
@@ -968,6 +1004,84 @@ var CronScheduler = class {
968
1004
  )
969
1005
  );
970
1006
  }
1007
+ /** Pauses and records a durable per-run one-shot that never dispatched. */
1008
+ async restoreConsumedOneShot(taskId) {
1009
+ const projectRoot = this.projectRoot;
1010
+ const snapshot = this.restorablePerRunOneShots.get(taskId);
1011
+ const firedAt = snapshot?.task.lastFiredAt;
1012
+ if (!projectRoot || !snapshot || firedAt == null || !this.consumedPerRunOneShots.has(taskId)) {
1013
+ return false;
1014
+ }
1015
+ await Promise.resolve();
1016
+ await this.pendingPersist;
1017
+ const removalGeneration = this.consumedPerRunRemovalGenerations.get(taskId);
1018
+ if (!this.consumedPerRunOneShots.has(taskId) || removalGeneration === void 0) {
1019
+ this.restorablePerRunOneShots.delete(taskId);
1020
+ this.consumedPerRunOneShots.delete(taskId);
1021
+ this.consumedPerRunRemovalGenerations.delete(taskId);
1022
+ return false;
1023
+ }
1024
+ this.armedDurableOneShots.delete(taskId);
1025
+ let restoreGenerations = /* @__PURE__ */ new Map();
1026
+ let restored = false;
1027
+ try {
1028
+ await updateCronTasks(
1029
+ projectRoot,
1030
+ (tasks) => {
1031
+ if ([...removalGeneration].some(
1032
+ ([id, generation]) => restoreGenerations.get(id) !== generation
1033
+ ))
1034
+ return tasks;
1035
+ const existing = tasks.findIndex((task) => task.id === taskId);
1036
+ const current = tasks[existing] ?? snapshot.task;
1037
+ const failed = {
1038
+ ...current,
1039
+ enabled: false,
1040
+ lastFiredAt: firedAt,
1041
+ runs: appendCronRun(current.runs, {
1042
+ at: firedAt,
1043
+ kind: "scheduled",
1044
+ sessionDispatchFailed: true
1045
+ })
1046
+ };
1047
+ restored = true;
1048
+ if (existing !== -1) {
1049
+ return tasks.map(
1050
+ (task, index) => index === existing ? failed : task
1051
+ );
1052
+ }
1053
+ const next = [...tasks];
1054
+ next.splice(Math.min(snapshot.index, next.length), 0, failed);
1055
+ return next;
1056
+ },
1057
+ {
1058
+ observeDeletionIds: [...removalGeneration.keys()],
1059
+ onDeletionGenerations: /* @__PURE__ */ __name((generations) => {
1060
+ restoreGenerations = generations;
1061
+ }, "onDeletionGenerations")
1062
+ }
1063
+ );
1064
+ } catch (error) {
1065
+ this.restorablePerRunOneShots.delete(taskId);
1066
+ this.consumedPerRunOneShots.delete(taskId);
1067
+ this.consumedPerRunRemovalGenerations.delete(taskId);
1068
+ console.warn(
1069
+ `CronScheduler: could not restore scheduled one-shot task ${taskId} after its run failed to dispatch \u2014 the task may be gone from disk with no recorded run.`
1070
+ );
1071
+ throw error;
1072
+ }
1073
+ if (!restored) {
1074
+ this.restorablePerRunOneShots.delete(taskId);
1075
+ this.consumedPerRunOneShots.delete(taskId);
1076
+ this.consumedPerRunRemovalGenerations.delete(taskId);
1077
+ return false;
1078
+ }
1079
+ this.pendingRemoval.delete(taskId);
1080
+ this.jobs.delete(taskId);
1081
+ this.consumedPerRunOneShots.delete(taskId);
1082
+ this.consumedPerRunRemovalGenerations.delete(taskId);
1083
+ return true;
1084
+ }
971
1085
  /**
972
1086
  * Starts the scheduler tick. Calls `onFire` when a job is due.
973
1087
  * Only fires when called — does not auto-fire missed intervals.
@@ -1122,12 +1236,41 @@ var CronScheduler = class {
1122
1236
  this.armedDurableOneShots.delete(id);
1123
1237
  }
1124
1238
  const removed = new Set(removedIds);
1239
+ const removedByFire = /* @__PURE__ */ new Set();
1240
+ let removalGenerations = /* @__PURE__ */ new Map();
1125
1241
  const guarded = [...firedAt.keys()];
1126
1242
  this.markFirePersistPending(guarded);
1243
+ const recordRemovalGenerations = /* @__PURE__ */ __name(() => {
1244
+ for (const id of removedByFire) {
1245
+ const generation = removalGenerations.get(id);
1246
+ if (generation !== void 0 && this.consumedPerRunOneShots.has(id)) {
1247
+ const observed = /* @__PURE__ */ new Map([[id, generation]]);
1248
+ const sessionId = this.restorablePerRunOneShots.get(id)?.task.sessionId;
1249
+ if (sessionId) {
1250
+ const key = cronTaskSessionDeletionId(sessionId);
1251
+ const sessionGeneration = removalGenerations.get(key);
1252
+ if (sessionGeneration === void 0) continue;
1253
+ observed.set(key, sessionGeneration);
1254
+ }
1255
+ this.consumedPerRunRemovalGenerations.set(id, observed);
1256
+ }
1257
+ }
1258
+ }, "recordRemovalGenerations");
1127
1259
  this.trackPersist(
1128
1260
  updateCronTasks(
1129
1261
  this.projectRoot,
1130
- (tasks) => tasks.filter((t) => !removed.has(t.id)).map((t) => {
1262
+ (tasks) => tasks.filter((t) => {
1263
+ if (!removed.has(t.id)) return true;
1264
+ removedByFire.add(t.id);
1265
+ const snapshot = this.restorablePerRunOneShots.get(t.id);
1266
+ if (snapshot) {
1267
+ snapshot.task = {
1268
+ ...t,
1269
+ lastFiredAt: snapshot.task.lastFiredAt
1270
+ };
1271
+ }
1272
+ return false;
1273
+ }).map((t) => {
1131
1274
  const stamp = firedAt.get(t.id);
1132
1275
  if (stamp === void 0 || (t.lastFiredAt ?? 0) >= stamp)
1133
1276
  return t;
@@ -1142,8 +1285,22 @@ var CronScheduler = class {
1142
1285
  ...t.sessionMode !== "per_run" && this.sessionId ? { sessionId: this.sessionId } : {}
1143
1286
  })
1144
1287
  };
1145
- })
1146
- ).finally(() => {
1288
+ }),
1289
+ {
1290
+ observeDeletionIds: /* @__PURE__ */ __name((tasks) => [
1291
+ ...removedIds,
1292
+ ...tasks.flatMap(
1293
+ (task) => removed.has(task.id) && task.sessionId ? [cronTaskSessionDeletionId(task.sessionId)] : []
1294
+ )
1295
+ ], "observeDeletionIds"),
1296
+ onDeletionGenerations: /* @__PURE__ */ __name((generations) => {
1297
+ removalGenerations = generations;
1298
+ }, "onDeletionGenerations")
1299
+ }
1300
+ ).then(recordRemovalGenerations, (error) => {
1301
+ recordRemovalGenerations();
1302
+ throw error;
1303
+ }).finally(() => {
1147
1304
  this.clearFirePersistPending(guarded);
1148
1305
  })
1149
1306
  );
@@ -1186,6 +1343,13 @@ var CronScheduler = class {
1186
1343
  if (!job.recurring || expired) {
1187
1344
  this.jobs.delete(job.id);
1188
1345
  }
1346
+ if (!job.recurring && job.durable && job.sessionMode === "per_run") {
1347
+ this.consumedPerRunOneShots.add(job.id);
1348
+ const snapshot = this.restorablePerRunOneShots.get(job.id);
1349
+ if (snapshot) {
1350
+ snapshot.task = { ...snapshot.task, lastFiredAt: matchedMinuteMs };
1351
+ }
1352
+ }
1189
1353
  if (this.onFire) {
1190
1354
  this.onFire(job);
1191
1355
  }
@@ -1274,6 +1438,8 @@ function durableTaskToJob(task, recurringMaxAgeMs, existing) {
1274
1438
  durable: true,
1275
1439
  ...task.sessionId ? { boundSessionId: task.sessionId } : {},
1276
1440
  ...task.sessionMode ? { sessionMode: task.sessionMode } : {},
1441
+ ...task.modelServiceId ? { modelServiceId: task.modelServiceId } : {},
1442
+ ...task.groupId ? { groupId: task.groupId } : {},
1277
1443
  ...task.name ? { name: task.name } : {},
1278
1444
  ...task.delivery && task.sessionId ? { delivery: task.delivery } : {}
1279
1445
  };
@@ -8,18 +8,18 @@ import {
8
8
  } from "./chunk-JL6APGBX.js";
9
9
  import {
10
10
  buildSessionAwareFetch
11
- } from "./chunk-NOO4QFXM.js";
11
+ } from "./chunk-C75BXMPM.js";
12
12
  import {
13
13
  isQwenFamilyWireModel,
14
14
  isTieredEffortWireModel
15
- } from "./chunk-ZHKTKHMO.js";
15
+ } from "./chunk-7MIBD3LG.js";
16
16
  import {
17
17
  REASONING_EFFORT_TIERS,
18
18
  clampReasoningEffort,
19
19
  getGptReasoningCapabilities,
20
20
  isReasoningEffortPlaceholder,
21
21
  parseModelReasoningCapabilities
22
- } from "./chunk-3FPYT6QC.js";
22
+ } from "./chunk-ARDHE6MM.js";
23
23
  import {
24
24
  defaultOutputCeiling,
25
25
  hasExplicitOutputLimit,
@@ -480,16 +480,20 @@ var DashScopeOpenAICompatibleProvider = class _DashScopeOpenAICompatibleProvider
480
480
  *
481
481
  * This method applies DashScope-specific configurations including:
482
482
  * - Cache control for the system message, last tool message (when tools are configured),
483
- * and the latest history message
483
+ * and the latest history message — or, when a reattach region trails the
484
+ * conversation, the last stable block before it
484
485
  * - Output token limits based on model capabilities
485
486
  * - Vision model specific parameters (vl_high_resolution_images)
486
487
  * - Request metadata for session tracking
487
488
  *
488
489
  * @param request - The original chat completion request parameters
489
490
  * @param userPromptId - Unique identifier for the user prompt for session tracking
491
+ * @param reattachBlockCount - Number of trailing blocks in the last message that
492
+ * belong to the regenerated reattach region; the conversation cache breakpoint
493
+ * is placed before them. Defaults to 0 (last block of the last message).
490
494
  * @returns Configured request with DashScope-specific parameters applied
491
495
  */
492
- buildRequest(request, userPromptId) {
496
+ buildRequest(request, userPromptId, reattachBlockCount = 0) {
493
497
  let messages = request.messages;
494
498
  let tools = request.tools;
495
499
  const flattenPlainTextForGlm = this.isGlmModel(request.model) && !this.hasFunctionCallingContext(request);
@@ -498,7 +502,8 @@ var DashScopeOpenAICompatibleProvider = class _DashScopeOpenAICompatibleProvider
498
502
  } else if (this.shouldEnableCacheControl()) {
499
503
  const { messages: updatedMessages, tools: updatedTools } = this.addDashScopeCacheControl(
500
504
  request,
501
- request.stream ? "all" : "system_only"
505
+ request.stream ? "all" : "system_only",
506
+ reattachBlockCount
502
507
  );
503
508
  messages = updatedMessages;
504
509
  tools = updatedTools;
@@ -530,7 +535,7 @@ var DashScopeOpenAICompatibleProvider = class _DashScopeOpenAICompatibleProvider
530
535
  ...requestParams,
531
536
  messages,
532
537
  ...tools ? { tools } : {},
533
- ...this.buildMetadata(userPromptId) || {},
538
+ ...this.buildRequestMetadata(request.model, userPromptId),
534
539
  ...dashscopeExtras2
535
540
  };
536
541
  if (hasQwenEffortConfig && "reasoning" in visionResult) {
@@ -552,7 +557,7 @@ var DashScopeOpenAICompatibleProvider = class _DashScopeOpenAICompatibleProvider
552
557
  // Preserve all original parameters including sampling params and adjusted max_tokens
553
558
  messages,
554
559
  ...tools ? { tools } : {},
555
- ...this.buildMetadata(userPromptId) || {},
560
+ ...this.buildRequestMetadata(request.model, userPromptId),
556
561
  ...dashscopeExtras
557
562
  };
558
563
  if (hasQwenEffortConfig && "reasoning" in result) {
@@ -737,6 +742,49 @@ var DashScopeOpenAICompatibleProvider = class _DashScopeOpenAICompatibleProvider
737
742
  }
738
743
  }
739
744
  conflictingKnobDropWarned = false;
745
+ /**
746
+ * DashScope is an aggregating gateway: a non-qwen model (e.g. `ZHIPU/GLM-...`)
747
+ * reached through the same endpoint has its request forwarded to that vendor's
748
+ * own backend, `metadata` object included. Those backends type `metadata` as a
749
+ * string, so the object fails to deserialize and the request is rejected with a
750
+ * flat 400, making the model unusable through Qwen Code. `metadata` is a
751
+ * platform-private tracing field (sessionId / promptId / channel) that only
752
+ * means anything to DashScope's own inference path, so gate it on the wire model
753
+ * the same way `buildQwenEffortConfig` gates the qwen-only thinking knobs, for
754
+ * the same stated reason: qwen-specific fields must not leak to a non-qwen model
755
+ * sharing the endpoint.
756
+ *
757
+ * This is orthogonal to which *origins* count as DashScope-compatible, so the
758
+ * `*.alicloudapi.com` recognition added in #9103 is untouched: a qwen model
759
+ * behind such a gateway still ships metadata.
760
+ */
761
+ buildRequestMetadata(model, userPromptId) {
762
+ if (!this.shouldSendRequestMetadata(model)) {
763
+ return {};
764
+ }
765
+ return this.buildMetadata(userPromptId) || {};
766
+ }
767
+ /**
768
+ * Auto by default: qwen-family wire models only, per the gateway reasoning on
769
+ * {@link buildRequestMetadata}. The client cannot tell a forwarded request from
770
+ * one DashScope serves itself, so an explicit `enableRequestMetadata` wins in
771
+ * both directions: `true` restores the field for a non-qwen model served
772
+ * first-party whose tracing still matters, `false` suppresses it everywhere.
773
+ * Read only from the provider's own config, never the session's. A
774
+ * side-model generator is built with its own per-model config but shares
775
+ * the session `Config`, and a cross-provider agent config deliberately
776
+ * clears this field, so any session fallback would let the main model's
777
+ * value decide a different model's request. On the main route the provider
778
+ * config is the same object the qwen-oauth hot switch mutates in place, so
779
+ * nothing is latched here.
780
+ */
781
+ shouldSendRequestMetadata(model) {
782
+ const configured = this.contentGeneratorConfig.enableRequestMetadata;
783
+ if (typeof configured === "boolean") {
784
+ return configured;
785
+ }
786
+ return isQwenFamilyWireModel(this.resolveWireModel(model));
787
+ }
740
788
  buildMetadata(userPromptId) {
741
789
  const channel = this.cliConfig.getChannel?.();
742
790
  return {
@@ -753,20 +801,25 @@ var DashScopeOpenAICompatibleProvider = class _DashScopeOpenAICompatibleProvider
753
801
  /**
754
802
  * Add cache control flag to specified message(s) for DashScope providers
755
803
  */
756
- addDashScopeCacheControl(request, cacheControl) {
804
+ addDashScopeCacheControl(request, cacheControl, reattachBlockCount = 0) {
757
805
  const messages = request.messages;
758
806
  const systemIndex = messages.findIndex((msg) => msg.role === "system");
759
807
  const lastIndex = messages.length - 1;
808
+ const stableBlock = reattachBlockCount > 0 && lastIndex >= 0 ? this.lastStableBlock(messages, reattachBlockCount) : { messageIndex: lastIndex, excludeTail: 0 };
760
809
  const updatedMessages = messages.length === 0 ? messages : messages.map((message, index) => {
810
+ const isConversationAnchor = stableBlock?.messageIndex === index && cacheControl === "all";
761
811
  const shouldAddCacheControl = Boolean(
762
- index === systemIndex && systemIndex !== -1 || index === lastIndex && cacheControl === "all"
812
+ index === systemIndex && systemIndex !== -1 || isConversationAnchor
763
813
  );
764
814
  if (!shouldAddCacheControl || !("content" in message) || message.content === null || message.content === void 0) {
765
815
  return message;
766
816
  }
767
817
  return {
768
818
  ...message,
769
- content: this.addCacheControlToContent(message.content)
819
+ content: this.addCacheControlToContent(
820
+ message.content,
821
+ isConversationAnchor && stableBlock ? stableBlock.excludeTail : 0
822
+ )
770
823
  };
771
824
  });
772
825
  const updatedTools = cacheControl === "all" && request.tools?.length ? this.addCacheControlToTools(request.tools) : request.tools;
@@ -775,6 +828,25 @@ var DashScopeOpenAICompatibleProvider = class _DashScopeOpenAICompatibleProvider
775
828
  tools: updatedTools
776
829
  };
777
830
  }
831
+ /**
832
+ * Locate the last block that is not part of the trailing reattach region,
833
+ * walking back through messages as needed. Returns the owning message index
834
+ * plus how many trailing blocks of that message to skip when stamping the
835
+ * conversation `cache_control` breakpoint.
836
+ */
837
+ lastStableBlock(messages, reattachBlockCount) {
838
+ let remaining = reattachBlockCount;
839
+ for (let index = messages.length - 1; index >= 0; index--) {
840
+ const content = messages[index].content;
841
+ const blockCount = typeof content === "string" ? content.length > 0 ? 1 : 0 : Array.isArray(content) ? content.length : 0;
842
+ if (blockCount === 0) continue;
843
+ if (blockCount > remaining) {
844
+ return { messageIndex: index, excludeTail: remaining };
845
+ }
846
+ remaining -= blockCount;
847
+ }
848
+ return void 0;
849
+ }
778
850
  addCacheControlToTools(tools) {
779
851
  if (tools.length === 0) {
780
852
  return tools;
@@ -790,9 +862,9 @@ var DashScopeOpenAICompatibleProvider = class _DashScopeOpenAICompatibleProvider
790
862
  /**
791
863
  * Add cache control to message content, handling both string and array formats
792
864
  */
793
- addCacheControlToContent(content) {
865
+ addCacheControlToContent(content, excludeTail = 0) {
794
866
  const contentArray = this.normalizeContentToArray(content);
795
- return this.addCacheControlToContentArray(contentArray);
867
+ return this.addCacheControlToContentArray(contentArray, excludeTail);
796
868
  }
797
869
  /**
798
870
  * Normalize content to array format
@@ -809,14 +881,25 @@ var DashScopeOpenAICompatibleProvider = class _DashScopeOpenAICompatibleProvider
809
881
  return [...content];
810
882
  }
811
883
  /**
812
- * Add cache control to the content array
884
+ * Add cache control to the content array, skipping `excludeTail` trailing
885
+ * blocks (the reattach region) so the breakpoint lands on the last stable
886
+ * block instead of a regenerated trailing image.
813
887
  */
814
- addCacheControlToContentArray(contentArray) {
888
+ addCacheControlToContentArray(contentArray, excludeTail = 0) {
815
889
  if (contentArray.length === 0) {
816
890
  return contentArray;
817
891
  }
818
- const lastItem = contentArray[contentArray.length - 1];
819
- contentArray[contentArray.length - 1] = {
892
+ let targetIndex = contentArray.length - 1 - excludeTail;
893
+ if (targetIndex < 0) {
894
+ return contentArray;
895
+ }
896
+ if (excludeTail > 0) {
897
+ while (targetIndex > 0 && contentArray[targetIndex].type !== "text") {
898
+ targetIndex -= 1;
899
+ }
900
+ }
901
+ const lastItem = contentArray[targetIndex];
902
+ contentArray[targetIndex] = {
820
903
  ...lastItem,
821
904
  cache_control: { type: "ephemeral" }
822
905
  };
@@ -0,0 +1,154 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ getNestedProperty,
5
+ getPersistScopeForModelSelection
6
+ } from "./chunk-J73WJIMT.js";
7
+ import {
8
+ getHomeEnvFallbackVars
9
+ } from "./chunk-A6YU6R5N.js";
10
+ import {
11
+ writeWithBackupSync
12
+ } from "./chunk-NTCFKGQF.js";
13
+ import {
14
+ resolveEnvVarsInObject
15
+ } from "./chunk-65I7S4Z3.js";
16
+ import {
17
+ init_esbuild_shims
18
+ } from "./chunk-5O2XNYP6.js";
19
+ import {
20
+ __name
21
+ } from "./chunk-J2S4EL5Y.js";
22
+
23
+ // packages/cli/src/config/loadedSettingsAdapter.ts
24
+ init_esbuild_shims();
25
+ import * as fs from "node:fs";
26
+ function preservePlaceholders(value, resolved, original) {
27
+ if (typeof original === "string" && value === resolved) return original;
28
+ if (Array.isArray(value) && Array.isArray(resolved) && Array.isArray(original)) {
29
+ return value.map(
30
+ (entry, index) => preservePlaceholders(entry, resolved[index], original[index])
31
+ );
32
+ }
33
+ if (value && resolved && original && typeof value === "object" && !Array.isArray(value) && typeof resolved === "object" && !Array.isArray(resolved) && typeof original === "object" && !Array.isArray(original)) {
34
+ return Object.fromEntries(
35
+ Object.entries(value).map(([key, entry]) => [
36
+ key,
37
+ preservePlaceholders(
38
+ entry,
39
+ resolved[key],
40
+ original[key]
41
+ )
42
+ ])
43
+ );
44
+ }
45
+ return value;
46
+ }
47
+ __name(preservePlaceholders, "preservePlaceholders");
48
+ function createLoadedSettingsAdapter(settings, scope) {
49
+ const persistScope = scope ?? getPersistScopeForModelSelection(settings);
50
+ const settingsFile = settings.forScope(persistScope);
51
+ let fileSnapshot;
52
+ let settingsSnapshot = null;
53
+ let originalSnapshot = null;
54
+ return {
55
+ getValue(key) {
56
+ return getNestedProperty(settings.merged, key);
57
+ },
58
+ setValue(key, value) {
59
+ for (const part of key.split(".")) {
60
+ if (part === "__proto__" || part === "constructor" || part === "prototype") {
61
+ throw new Error(
62
+ `Refusing to write settings key with reserved segment: ${key}`
63
+ );
64
+ }
65
+ }
66
+ const provider = key.startsWith("modelProviders.") && key.split(".").length === 2 ? key.slice("modelProviders.".length) : void 0;
67
+ if (!provider || !Array.isArray(value)) {
68
+ settings.setValue(persistScope, key, value);
69
+ return;
70
+ }
71
+ const previous = settings.merged.modelProviders?.[provider];
72
+ const source = [
73
+ "System" /* System */,
74
+ ...settings.isTrusted ? ["Workspace" /* Workspace */] : [],
75
+ "User" /* User */,
76
+ "SystemDefaults" /* SystemDefaults */
77
+ ].map(
78
+ (source2) => settings.forScope(source2).originalSettings.modelProviders
79
+ ).find((providers) => providers && Object.hasOwn(providers, provider));
80
+ const raw = source?.[provider];
81
+ const models = value;
82
+ const persisted = !Array.isArray(previous) || !Array.isArray(raw) ? models : models.map((model) => {
83
+ if (!model) return model;
84
+ const matches = previous.flatMap(
85
+ (entry, index2) => entry?.id === model.id && entry.baseUrl === model.baseUrl ? [index2] : []
86
+ );
87
+ if (matches.length > 1 && JSON.stringify(previous) !== JSON.stringify(raw)) {
88
+ throw new Error(
89
+ "Cannot preserve placeholders in an ambiguous model configuration. Remove duplicate model entries first."
90
+ );
91
+ }
92
+ const index = matches[0];
93
+ return index === void 0 ? model : preservePlaceholders(model, previous[index], raw[index]);
94
+ });
95
+ settings.setValue(persistScope, key, persisted);
96
+ settingsFile.settings.modelProviders = {
97
+ ...settingsFile.settings.modelProviders,
98
+ [provider]: resolveEnvVarsInObject(persisted, getHomeEnvFallbackVars())
99
+ };
100
+ settings.recomputeMerged();
101
+ },
102
+ getModelProviders() {
103
+ return settings.merged.modelProviders ?? {};
104
+ },
105
+ persist() {
106
+ },
107
+ backup() {
108
+ const contents = fs.existsSync(settingsFile.path) ? fs.readFileSync(settingsFile.path, "utf8") : null;
109
+ settingsSnapshot = structuredClone(settingsFile.settings);
110
+ originalSnapshot = structuredClone(settingsFile.originalSettings);
111
+ fileSnapshot = contents;
112
+ },
113
+ restore() {
114
+ if (fileSnapshot === void 0) return;
115
+ try {
116
+ if (fileSnapshot === null) {
117
+ fs.rmSync(settingsFile.path, { force: true });
118
+ } else {
119
+ writeWithBackupSync(settingsFile.path, fileSnapshot);
120
+ }
121
+ } finally {
122
+ if (settingsSnapshot !== null) {
123
+ settingsFile.settings = settingsSnapshot;
124
+ }
125
+ if (originalSnapshot !== null) {
126
+ settingsFile.originalSettings = originalSnapshot;
127
+ }
128
+ settings.recomputeMerged();
129
+ }
130
+ },
131
+ cleanupBackup() {
132
+ fileSnapshot = void 0;
133
+ settingsSnapshot = null;
134
+ originalSnapshot = null;
135
+ }
136
+ };
137
+ }
138
+ __name(createLoadedSettingsAdapter, "createLoadedSettingsAdapter");
139
+
140
+ export {
141
+ createLoadedSettingsAdapter
142
+ };
143
+ /**
144
+ * @license
145
+ * Copyright 2025 Qwen Team
146
+ * SPDX-License-Identifier: Apache-2.0
147
+ *
148
+ * Adapter that lets core's `applyProviderInstallPlan` write through
149
+ * `LoadedSettings` while preserving CLI-specific guarantees:
150
+ * - scope resolution via `getPersistScopeForModelSelection`
151
+ * - original file contents for transaction rollback
152
+ * - in-memory snapshot of `settings` / `originalSettings` for rollback
153
+ * - merged-settings recomputation after restore
154
+ */
@@ -5,26 +5,26 @@ import {
5
5
  } from "./chunk-57OAHC2Y.js";
6
6
  import {
7
7
  loadSettings
8
- } from "./chunk-7BXXIQG4.js";
8
+ } from "./chunk-J73WJIMT.js";
9
9
  import {
10
10
  getCurrentLanguage,
11
11
  t
12
- } from "./chunk-VZUCTJ2P.js";
12
+ } from "./chunk-I6YJZGHS.js";
13
13
  import {
14
14
  isWorkspaceTrusted
15
- } from "./chunk-53GWJOLP.js";
15
+ } from "./chunk-NTCFKGQF.js";
16
16
  import {
17
17
  ExtensionManager,
18
18
  getExtensionDescription,
19
19
  getExtensionDisplayName,
20
20
  require_prompts
21
- } from "./chunk-N7VWZDWW.js";
21
+ } from "./chunk-CFSBWJBB.js";
22
22
  import {
23
23
  stripAnsi
24
24
  } from "./chunk-TWPJO254.js";
25
25
  import {
26
26
  redactUrlCredentials
27
- } from "./chunk-W5ZQMAEM.js";
27
+ } from "./chunk-4Y2I3CI3.js";
28
28
  import {
29
29
  writeStdoutLine
30
30
  } from "./chunk-7FA2II6K.js";