@qwen-code/qwen-code 0.21.3 → 0.21.4-nightly.20260804.d6f55a1c9

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 (274) hide show
  1. package/bundled/qc-helper/docs/configuration/model-providers.md +8 -7
  2. package/bundled/qc-helper/docs/configuration/settings.md +14 -1
  3. package/bundled/qc-helper/docs/features/channels/github.md +12 -8
  4. package/bundled/qc-helper/docs/features/code-review.md +16 -1
  5. package/bundled/qc-helper/docs/features/commands.md +46 -40
  6. package/bundled/qc-helper/docs/features/mcp.md +11 -3
  7. package/bundled/qc-helper/docs/qwen-serve.md +27 -26
  8. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +50 -19
  9. package/bundled/review/SKILL.md +99 -23
  10. package/chunks/{MaxSizedBox-OJR636GP.js → MaxSizedBox-6J7WTW2Q.js} +16 -15
  11. package/chunks/{StandaloneSessionPicker-AMMBF5UY.js → StandaloneSessionPicker-J3HNBNWF.js} +30 -29
  12. package/chunks/{acpAgent-M57LVIQA.js → acpAgent-SGIEWC4W.js} +681 -291
  13. package/chunks/{agent-PE37ARLM.js → agent-W6IG55Q7.js} +16 -15
  14. package/chunks/{agent-headless-45ASME4R.js → agent-headless-EAPKUL6K.js} +16 -15
  15. package/chunks/{anthropicContentGenerator-WCBYB6JG.js → anthropicContentGenerator-3CAHEZBM.js} +4 -2
  16. package/chunks/{artifact-tool-TBOYEKTY.js → artifact-tool-RROCCJDA.js} +1 -1
  17. package/chunks/{askUserQuestion-23Y5WZFJ.js → askUserQuestion-2EPPBPUZ.js} +1 -1
  18. package/chunks/{bridge-K3ZRPO4D.js → bridge-SNQAVLI3.js} +17 -16
  19. package/chunks/{ca-4OJN75WT.js → ca-NYKNH222.js} +4 -0
  20. package/chunks/{channel-management-service-IXJ2MZTS.js → channel-management-service-UHX56NBO.js} +1 -1
  21. package/chunks/{channel-settings-store-PEAR3IME.js → channel-settings-store-TR7UMQVQ.js} +22 -21
  22. package/chunks/{chunk-L7FTDKCD.js → chunk-23DFTW2G.js} +21 -3
  23. package/chunks/{chunk-PWCQRLM5.js → chunk-2AGOQ7QO.js} +1 -1
  24. package/chunks/{chunk-HUIQ4FYC.js → chunk-2UYGQRYZ.js} +3 -3
  25. package/chunks/{chunk-4K3RV3OA.js → chunk-36Q4BOUL.js} +243 -108
  26. package/chunks/{chunk-2MI7ZTRT.js → chunk-3KTHFE53.js} +5 -5
  27. package/chunks/{chunk-QDWLUXKP.js → chunk-3X3CRYEU.js} +1 -1
  28. package/chunks/{chunk-YXEVDA66.js → chunk-4LLUH3A7.js} +19 -18
  29. package/chunks/{chunk-QPSYIV2O.js → chunk-4RNMAX6B.js} +2492 -690
  30. package/chunks/{chunk-O2ZYHG33.js → chunk-5L6CQ4ZU.js} +131 -67
  31. package/chunks/{chunk-HEBW74ZW.js → chunk-5WFVHBQR.js} +3 -3
  32. package/chunks/{chunk-LZV2BZPL.js → chunk-6BBIRJ6Z.js} +2 -2
  33. package/chunks/{chunk-TZTBZ25J.js → chunk-6WBWIPBF.js} +2 -2
  34. package/chunks/{chunk-QWDVZH24.js → chunk-7BUWEQD3.js} +3 -3
  35. package/chunks/{chunk-EGYJRIDF.js → chunk-7DKCE4VO.js} +2 -2
  36. package/chunks/{chunk-UQDFEU47.js → chunk-7E5BCHGR.js} +1165 -385
  37. package/chunks/{chunk-X6QNZOTC.js → chunk-7MFQLOHZ.js} +1 -1
  38. package/chunks/{chunk-MCXMWLFT.js → chunk-7VZZVBW7.js} +5 -5
  39. package/chunks/{chunk-FF75UUB2.js → chunk-7WE7B63C.js} +1 -1
  40. package/chunks/{chunk-M5LIY7Y6.js → chunk-AUM6IYIZ.js} +1 -1
  41. package/chunks/{chunk-K2J5JZ6B.js → chunk-B452JFK7.js} +1 -1
  42. package/chunks/{chunk-6NE5NTHJ.js → chunk-BDUPVCHA.js} +1 -1
  43. package/chunks/{chunk-SKSF3LGQ.js → chunk-BH4HRGTW.js} +4 -4
  44. package/chunks/{chunk-3XF4WT3B.js → chunk-BKLXFYJJ.js} +1 -1
  45. package/chunks/{chunk-RL6J3BPE.js → chunk-BQUXJJ72.js} +3 -3
  46. package/chunks/{chunk-H6FIBBXK.js → chunk-C4EK5K64.js} +13 -13
  47. package/chunks/{chunk-VUNRNRN6.js → chunk-CE424L46.js} +5 -5
  48. package/chunks/{chunk-DSGJLHM3.js → chunk-CJGLCNDE.js} +3 -3
  49. package/chunks/{chunk-FXVHVCNA.js → chunk-CTRZ7IDH.js} +1 -1
  50. package/chunks/{chunk-CFDR3GNL.js → chunk-D7D7RXIJ.js} +11 -0
  51. package/chunks/{chunk-ZGSUFIL5.js → chunk-DMI5SX2V.js} +1 -1
  52. package/chunks/{chunk-X6WUYMOV.js → chunk-DTAPI453.js} +2 -2
  53. package/chunks/{chunk-NW57GHNL.js → chunk-EF2FDVAL.js} +5 -5
  54. package/chunks/{chunk-BSKUTHLO.js → chunk-EVSV25NF.js} +16 -3
  55. package/chunks/{chunk-3MWNROHB.js → chunk-FQL6PVUI.js} +3 -3
  56. package/chunks/{chunk-IF6K42YJ.js → chunk-FSHOUNV4.js} +1 -1
  57. package/chunks/chunk-HGCQ5SE7.js +136 -0
  58. package/chunks/{chunk-GMSBXEH4.js → chunk-HTCXG5RY.js} +6 -6
  59. package/chunks/{chunk-FG63DZQA.js → chunk-I4PRUCND.js} +10 -10
  60. package/chunks/{chunk-YWMDTMAU.js → chunk-J2QPGVAE.js} +2 -2
  61. package/chunks/{chunk-RCXCGZG6.js → chunk-KCHQQBHO.js} +4 -4
  62. package/chunks/{chunk-LGT3YMLN.js → chunk-LEZFUYPM.js} +1 -1
  63. package/chunks/{chunk-G7XXKQYS.js → chunk-LKRMNRSN.js} +27 -1
  64. package/chunks/{chunk-WY2ENRDN.js → chunk-LZPIUB47.js} +1 -1
  65. package/chunks/{chunk-HFVW54NL.js → chunk-MBEMTXQT.js} +9 -2
  66. package/chunks/{chunk-RPYYTL7E.js → chunk-MGSSJT27.js} +2 -2
  67. package/chunks/{chunk-H35Q5CEG.js → chunk-MMWH7ERH.js} +6 -6
  68. package/chunks/{chunk-MUEJ4R3E.js → chunk-MP2XAFAD.js} +3 -3
  69. package/chunks/{chunk-R7XNRHYD.js → chunk-N64L3CUV.js} +1 -1
  70. package/chunks/{chunk-EIMKVOSF.js → chunk-NJ4ANA44.js} +1 -1
  71. package/chunks/{chunk-ZJES4C3I.js → chunk-O6GB7LVR.js} +2 -2
  72. package/chunks/{chunk-QWW6I2UO.js → chunk-PFQWATDS.js} +410 -39
  73. package/chunks/{chunk-XUMAD5IT.js → chunk-PMMWMPWV.js} +1 -1
  74. package/chunks/{chunk-H6ZYP74A.js → chunk-PUQDGXJV.js} +1 -1
  75. package/chunks/{chunk-XMJO6C44.js → chunk-PYXZLKUJ.js} +3 -3
  76. package/chunks/{chunk-KXWERR6P.js → chunk-QIS6FQFI.js} +10 -10
  77. package/chunks/{chunk-22YFMJBW.js → chunk-QK6BFCAL.js} +59 -7
  78. package/chunks/{chunk-HIXVWF7I.js → chunk-R2JZCL4S.js} +3 -3
  79. package/chunks/{chunk-N42C2FU3.js → chunk-RJ2KM6NF.js} +1 -1
  80. package/chunks/{chunk-2LZCLQIS.js → chunk-S5VUT4K2.js} +5 -5
  81. package/chunks/{chunk-4AGGSHCH.js → chunk-SVR6JPEL.js} +197 -53
  82. package/chunks/{chunk-SQ3YD5MI.js → chunk-T4LUW2CP.js} +4 -3
  83. package/chunks/{chunk-BKGA75MU.js → chunk-T7AALAF5.js} +1 -1
  84. package/chunks/{chunk-YU6TBRTA.js → chunk-URJHXOSO.js} +2 -2
  85. package/chunks/{chunk-MTR4JWQJ.js → chunk-UZNJUCOI.js} +4 -4
  86. package/chunks/{chunk-D2GPKXCQ.js → chunk-VQHIIPVE.js} +4 -4
  87. package/chunks/{chunk-IWGTGH4G.js → chunk-W2W6PMZX.js} +2 -2
  88. package/chunks/{chunk-SRY26X4H.js → chunk-WVAESIM6.js} +12 -3
  89. package/chunks/{chunk-5VYFXHY2.js → chunk-XKX3PNZR.js} +3 -3
  90. package/chunks/{chunk-BKXTHMOZ.js → chunk-XLD2R34T.js} +1 -1
  91. package/chunks/{chunk-5JPVOYWA.js → chunk-YT2BQ4JH.js} +5 -5
  92. package/chunks/{chunk-YPUHMQXV.js → chunk-Z5ZLRJFS.js} +1 -1
  93. package/chunks/{chunk-VA5NLVPT.js → chunk-Z7JILXGX.js} +1 -1
  94. package/chunks/{chunk-RR224BUP.js → chunk-ZLJQIGCH.js} +45 -1
  95. package/chunks/{chunk-TXABHVZD.js → chunk-ZNCRSKRP.js} +1 -1
  96. package/chunks/{chunk-UEJESCS7.js → chunk-ZPPP6VCL.js} +1 -1
  97. package/chunks/{chunk-Q3G5L5KF.js → chunk-ZQPHKE4K.js} +1 -1
  98. package/chunks/{computer-use-UJMK6JQU.js → computer-use-NFBEZ73C.js} +16 -15
  99. package/chunks/{config-utils-7COTJMWK.js → config-utils-E3ZQTHGM.js} +2 -2
  100. package/chunks/{contextCommand-4YABGF4S.js → contextCommand-HJN4W5PC.js} +18 -17
  101. package/chunks/{core-runtime-7M4VM3DA.js → core-runtime-Z4IALQ37.js} +16 -15
  102. package/chunks/{create-sub-session-J32WC64U.js → create-sub-session-6EWLAZD5.js} +1 -1
  103. package/chunks/{create-sub-session-HOFDW4N7.js → create-sub-session-MJKTT6R4.js} +28 -21
  104. package/chunks/{cron-create-HMFSHIAR.js → cron-create-CCRIULJE.js} +1 -1
  105. package/chunks/{cron-delete-ZJFHOX57.js → cron-delete-FCFW6BGP.js} +1 -1
  106. package/chunks/{cron-list-ZEX2NBMN.js → cron-list-QDBVCHRF.js} +1 -1
  107. package/chunks/{daemon-status-provider-W2U5Q3J5.js → daemon-status-provider-GR32VNM6.js} +21 -20
  108. package/chunks/{daemon-trust-policy-IFICWPXP.js → daemon-trust-policy-O4DGWLR5.js} +21 -20
  109. package/chunks/{daemon-trust-policy-monitor-GX7EO6FW.js → daemon-trust-policy-monitor-5RHH3YSK.js} +21 -20
  110. package/chunks/{de-A6TI4LBB.js → de-VL76CPLV.js} +4 -0
  111. package/chunks/{deferred-core-runtime-U36OOOKE.js → deferred-core-runtime-A5CKPGQZ.js} +16 -15
  112. package/chunks/{display-image-VS3TXYQH.js → display-image-GUJA352B.js} +2 -2
  113. package/chunks/{dist-NEBRI7WO.js → dist-C5U4LJKW.js} +95 -0
  114. package/chunks/{dist-4KAX7CCL.js → dist-IKGVITP3.js} +401 -24
  115. package/chunks/{earlyInputCapture-5ZWDH3SB.js → earlyInputCapture-ZB4EHBSD.js} +16 -15
  116. package/chunks/{edit-J7SW6UP6.js → edit-QSTJ353U.js} +17 -16
  117. package/chunks/{en-L4UQDLWW.js → en-IRJ2WN5T.js} +4 -0
  118. package/chunks/{enter-worktree-NRLOHRB6.js → enter-worktree-R73VWVFF.js} +16 -15
  119. package/chunks/{enterPlanMode-GDSTEFSM.js → enterPlanMode-OWFAGX5J.js} +16 -15
  120. package/chunks/{environment-KHYEKG5W.js → environment-57MAPDBT.js} +18 -17
  121. package/chunks/{errors-VNLAJV3O.js → errors-5BKZ3KMI.js} +18 -17
  122. package/chunks/{exit-worktree-ARVID7DF.js → exit-worktree-6O2324LA.js} +16 -15
  123. package/chunks/{exitPlanMode-4ZFY7KUH.js → exitPlanMode-GCRUFTNX.js} +16 -15
  124. package/chunks/{fast-path-KA65VREJ.js → fast-path-VN3BV4WN.js} +11 -2
  125. package/chunks/{fr-QF7RI5ZE.js → fr-GK3HQYVB.js} +4 -0
  126. package/chunks/{gemini-5PMCNPF7.js → gemini-K43YNDW7.js} +50 -48
  127. package/chunks/{geminiContentGenerator-NFSYJ4HA.js → geminiContentGenerator-BTPPSMCF.js} +1 -1
  128. package/chunks/{glob-F3EAUDAX.js → glob-4MLY2HOS.js} +16 -15
  129. package/chunks/{goal-tools-SPQ5M6D3.js → goal-tools-3AZKX5WQ.js} +2 -18
  130. package/chunks/{grep-UJMPVZER.js → grep-XFBSAUJW.js} +16 -15
  131. package/chunks/{handleAutoUpdate-MG4FRZPN.js → handleAutoUpdate-HWVO6M65.js} +20 -19
  132. package/chunks/{i18n-EVHV4ZF3.js → i18n-MASWUB3I.js} +17 -16
  133. package/chunks/{image-gen-UC7XVHI7.js → image-gen-XLFJRDFA.js} +2 -2
  134. package/chunks/{initializer-O5B6HUBI.js → initializer-M6JYLRYA.js} +21 -20
  135. package/chunks/{installationInfo-2LIKCNVX.js → installationInfo-TEJOXP5W.js} +17 -16
  136. package/chunks/{ja-URQESVGW.js → ja-3FA46IKD.js} +4 -0
  137. package/chunks/{list-BPKIE3Z4.js → list-UABKY6YY.js} +24 -23
  138. package/chunks/{list-agents-TWEGRJWO.js → list-agents-GC4BRET7.js} +1 -1
  139. package/chunks/{loadedSettingsAdapter-NGLFF4V4.js → loadedSettingsAdapter-L7PIVGJX.js} +21 -20
  140. package/chunks/{loggingContentGenerator-7TFESRG5.js → loggingContentGenerator-W7QO23AD.js} +8 -8
  141. package/chunks/{loop-wakeup-6LLEOQYV.js → loop-wakeup-SQQSBMEY.js} +2 -2
  142. package/chunks/{ls-H5WX22VK.js → ls-63CC3NNX.js} +1 -1
  143. package/chunks/{lsp-G6FXYEIS.js → lsp-P6NVJVNT.js} +1 -1
  144. package/chunks/{managed-npm-update-CLZGGV7F.js → managed-npm-update-WQ2J42H7.js} +17 -16
  145. package/chunks/{mcp-X5OZOOXX.js → mcp-A652OREB.js} +21 -20
  146. package/chunks/{monitor-TGSVSAZZ.js → monitor-Y7YAHCA6.js} +16 -15
  147. package/chunks/{nonInteractiveCli-GUMJ5JLG.js → nonInteractiveCli-EKLP5WCN.js} +48 -46
  148. package/chunks/{notebook-edit-EZISE7IC.js → notebook-edit-MALKVMST.js} +17 -16
  149. package/chunks/{openaiContentGenerator-ZAKS5A6P.js → openaiContentGenerator-WM2TUU7E.js} +8 -8
  150. package/chunks/{pidfile-PCMBX4LR.js → pidfile-QBNVWD7M.js} +16 -15
  151. package/chunks/{processUtils-2CSVE5BW.js → processUtils-4L46PM2I.js} +2 -2
  152. package/chunks/{pt-EEEQXRUI.js → pt-3AOBKPIJ.js} +4 -0
  153. package/chunks/{qwenContentGenerator-S3H6PIC4.js → qwenContentGenerator-GG6SY4YP.js} +17 -17
  154. package/chunks/{qwenOAuth2-MNU425VE.js → qwenOAuth2-PE27GJRG.js} +1 -1
  155. package/chunks/{read-file-HXJXHBI6.js → read-file-IHXKC6D3.js} +6 -6
  156. package/chunks/{read-mcp-resource-DRZSI3HE.js → read-mcp-resource-RTSSEER5.js} +1 -1
  157. package/chunks/{record-artifact-IPIRWMFY.js → record-artifact-L3BAHQFN.js} +2 -2
  158. package/chunks/{resumeHistoryUtils-4QAMC2S6.js → resumeHistoryUtils-BWVAHKRZ.js} +19 -18
  159. package/chunks/{ripGrep-MCETPF2E.js → ripGrep-7ASLNF5O.js} +16 -15
  160. package/chunks/{ru-WGZDYQAB.js → ru-VJRAMC4W.js} +4 -0
  161. package/chunks/{run-qwen-serve-3NMODTXV.js → run-qwen-serve-JLFJHJSU.js} +82 -35
  162. package/chunks/{runtime-AQOV7DVP.js → runtime-DVQFRHKX.js} +24 -23
  163. package/chunks/{scheduler-DN7SZ6ZE.js → scheduler-WMFCKI7V.js} +16 -15
  164. package/chunks/{sdk-exporters-http-IKNWQJNV.js → sdk-exporters-http-IL2346MJ.js} +6 -2
  165. package/chunks/{sdk-impl-7CUUMQDB.js → sdk-impl-SYKGVWOZ.js} +2 -2
  166. package/chunks/{send-message-HGCVVDTZ.js → send-message-TL6FIMMN.js} +3 -3
  167. package/chunks/{serve-WZB45HVT.js → serve-NYWUO6YF.js} +22 -20
  168. package/chunks/{server-GOTZFEEZ.js → server-WHLRWZCG.js} +44 -42
  169. package/chunks/{session-23LOFLWN.js → session-EN34VEJM.js} +49 -47
  170. package/chunks/{settings-LI2ORVXC.js → settings-FZH5YZLH.js} +20 -19
  171. package/chunks/{shell-GLC6OP3C.js → shell-FQLEHJKT.js} +16 -15
  172. package/chunks/{skill-C7W6M4GO.js → skill-QAXTGG6F.js} +7 -7
  173. package/chunks/{skill-settings-W25NCK5I.js → skill-settings-SRUMUJIE.js} +20 -19
  174. package/chunks/{spawnChannel-OHJLEBLD.js → spawnChannel-VYQCFI7T.js} +16 -15
  175. package/chunks/{standalone-update-E4V5V7WT.js → standalone-update-LEPP5BOB.js} +18 -17
  176. package/chunks/{startInteractiveUI-FKILLW7Q.js → startInteractiveUI-IQIG2MKN.js} +77 -62
  177. package/chunks/{syntheticOutput-EYL7DWO7.js → syntheticOutput-BN7E626U.js} +2 -2
  178. package/chunks/{task-create-CSCEG4SM.js → task-create-2X4UP4F3.js} +4 -4
  179. package/chunks/{task-list-6CVQPORX.js → task-list-WOLJPZ64.js} +1 -1
  180. package/chunks/{task-stop-Y5ZTFVRX.js → task-stop-TNXRNAL2.js} +1 -1
  181. package/chunks/{task-update-C52LNFU5.js → task-update-VDUSN36E.js} +4 -4
  182. package/chunks/{team-create-HBIJ7NHT.js → team-create-7B5NKWA2.js} +16 -15
  183. package/chunks/{team-delete-CE7DC53R.js → team-delete-D2VMSDOT.js} +1 -1
  184. package/chunks/{team-plan-approval-IBJOKS4J.js → team-plan-approval-J6TURTZC.js} +16 -15
  185. package/chunks/{terminal-image-renderer-BOQJPVLB.js → terminal-image-renderer-KZMAF5E5.js} +17 -16
  186. package/chunks/{theme-manager-NSS7VLUD.js → theme-manager-NPISCKAX.js} +16 -15
  187. package/chunks/{todoWrite-YKAA57W2.js → todoWrite-MHWHO5UO.js} +3 -2
  188. package/chunks/{tool-search-DEAS54VG.js → tool-search-MFTNRTFA.js} +8 -8
  189. package/chunks/{total-session-admission-4LWTX3WD.js → total-session-admission-42THE4X2.js} +17 -16
  190. package/chunks/{trustedFolders-NF3J2TA7.js → trustedFolders-OT7IORFI.js} +17 -16
  191. package/chunks/{update-relaunch-WUHRH5V3.js → update-relaunch-2NJAMGWQ.js} +5 -5
  192. package/chunks/{updateCheck-7EG4BLBH.js → updateCheck-XSIBJXYA.js} +19 -18
  193. package/chunks/{useAutoAcceptIndicator-ZRV56GVP.js → useAutoAcceptIndicator-VH4DU3JR.js} +22 -21
  194. package/chunks/{validateNonInterActiveAuth-WC2FPE3I.js → validateNonInterActiveAuth-JD3VEJ2O.js} +45 -43
  195. package/chunks/{version-6SS7KCUP.js → version-F75ALUI3.js} +1 -1
  196. package/chunks/{web-fetch-Y5QQMPKA.js → web-fetch-Y6VEJMFN.js} +6 -6
  197. package/chunks/{web-search-QKKEU723.js → web-search-BTKVYWOR.js} +4 -4
  198. package/chunks/{workflow-PWIU6Q2M.js → workflow-LWFOBFN3.js} +17 -16
  199. package/chunks/{workspace-providers-status-B2DM6FNK.js → workspace-providers-status-VFEB7C5S.js} +23 -22
  200. package/chunks/{workspace-registration-store-7Y33TTHJ.js → workspace-registration-store-MB24E7PA.js} +1 -1
  201. package/chunks/{workspace-registry-TSNJKLPC.js → workspace-registry-FHFAPD74.js} +17 -16
  202. package/chunks/{workspace-service-4I2QHDX4.js → workspace-service-A6EFCR5H.js} +24 -23
  203. package/chunks/{workspace-skills-status-HVXNWVGR.js → workspace-skills-status-SDX2JT7P.js} +21 -20
  204. package/chunks/{workspace-trust-reconciler-RDBBGMWP.js → workspace-trust-reconciler-5NOCATAW.js} +22 -21
  205. package/chunks/{write-file-RQ4DG5RY.js → write-file-OHTP7KKV.js} +16 -15
  206. package/chunks/{zh-72XPUG5P.js → zh-ARWDLDLR.js} +4 -0
  207. package/chunks/{zh-TW-LTB4SRH3.js → zh-TW-Y4RGI3P7.js} +4 -0
  208. package/chunks/{zoom-image-O5YCB7WN.js → zoom-image-WLSVNK2C.js} +6 -6
  209. package/cli.js +12 -12
  210. package/locales/ca.js +8 -0
  211. package/locales/de.js +8 -0
  212. package/locales/en.js +8 -0
  213. package/locales/fr.js +8 -0
  214. package/locales/ja.js +8 -0
  215. package/locales/pt.js +8 -0
  216. package/locales/ru.js +8 -0
  217. package/locales/zh-TW.js +7 -0
  218. package/locales/zh.js +7 -0
  219. package/package.json +3 -3
  220. package/web-shell/assets/{arc-Bd7d781i.js → arc-Dpg66jw7.js} +1 -1
  221. package/web-shell/assets/{architectureDiagram-3BPJPVTR-CpnOJqNE.js → architectureDiagram-3BPJPVTR-BJ4FIBxN.js} +1 -1
  222. package/web-shell/assets/{blockDiagram-GPEHLZMM-NxVTiWnk.js → blockDiagram-GPEHLZMM-VXmYdtYT.js} +1 -1
  223. package/web-shell/assets/{c4Diagram-AAUBKEIU-BWT75l82.js → c4Diagram-AAUBKEIU-BNLDb8FE.js} +1 -1
  224. package/web-shell/assets/channel-Bd9wOnaA.js +1 -0
  225. package/web-shell/assets/{chunk-2J33WTMH-Dzz03hk6.js → chunk-2J33WTMH-DR5yHxr0.js} +1 -1
  226. package/web-shell/assets/{chunk-4BX2VUAB-DRF-egfm.js → chunk-4BX2VUAB-Czkq8UZU.js} +1 -1
  227. package/web-shell/assets/{chunk-55IACEB6-Co15vq5x.js → chunk-55IACEB6-DugUgM6s.js} +1 -1
  228. package/web-shell/assets/{chunk-727SXJPM-DHSUk1J7.js → chunk-727SXJPM-Dw6quA1K.js} +1 -1
  229. package/web-shell/assets/{chunk-AQP2D5EJ-Br8u_E2R.js → chunk-AQP2D5EJ-BoVYOTTz.js} +1 -1
  230. package/web-shell/assets/{chunk-FMBD7UC4-DXbPTnqF.js → chunk-FMBD7UC4--Amcse-j.js} +1 -1
  231. package/web-shell/assets/{chunk-ND2GUHAM-BleQdi4d.js → chunk-ND2GUHAM-ajaEYAC8.js} +1 -1
  232. package/web-shell/assets/{chunk-QZHKN3VN-CqgBf-95.js → chunk-QZHKN3VN-CUNDZ7im.js} +1 -1
  233. package/web-shell/assets/classDiagram-4FO5ZUOK-XhCT8FE3.js +1 -0
  234. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-XhCT8FE3.js +1 -0
  235. package/web-shell/assets/{cose-bilkent-S5V4N54A-WS7b13Yg.js → cose-bilkent-S5V4N54A-BnfkD-m1.js} +1 -1
  236. package/web-shell/assets/{dagre-BM42HDAG-v_55ki8o.js → dagre-BM42HDAG-BuUdFk7Z.js} +1 -1
  237. package/web-shell/assets/{diagram-2AECGRRQ-DaYAjbdK.js → diagram-2AECGRRQ-B2ZXxoab.js} +1 -1
  238. package/web-shell/assets/{diagram-5GNKFQAL-D_Hy-L64.js → diagram-5GNKFQAL-BsgOICzM.js} +1 -1
  239. package/web-shell/assets/{diagram-KO2AKTUF-dB06cZyD.js → diagram-KO2AKTUF-DTTjG6U-.js} +1 -1
  240. package/web-shell/assets/{diagram-LMA3HP47-DzSluD4F.js → diagram-LMA3HP47-temLf1x7.js} +1 -1
  241. package/web-shell/assets/{diagram-OG6HWLK6-Cvb6CeXQ.js → diagram-OG6HWLK6-CRFjScs2.js} +1 -1
  242. package/web-shell/assets/{erDiagram-TEJ5UH35-7eB2Hmov.js → erDiagram-TEJ5UH35-D4oaY-rQ.js} +1 -1
  243. package/web-shell/assets/{flowDiagram-I6XJVG4X-B08iGCw_.js → flowDiagram-I6XJVG4X-BqG8B49b.js} +1 -1
  244. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BgsrCHq-.js → ganttDiagram-6RSMTGT7-DffQBdd5.js} +1 -1
  245. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DQLurQ2i.js → gitGraphDiagram-PVQCEYII-CMDPfseF.js} +1 -1
  246. package/web-shell/assets/index-2F4RsNzd.js +1756 -0
  247. package/web-shell/assets/index-CaucmEO_.css +5 -0
  248. package/web-shell/assets/{index-B_1Z0Mgr.js → index-qTQR_smP.js} +1 -1
  249. package/web-shell/assets/{infoDiagram-5YYISTIA-DXZGO8qB.js → infoDiagram-5YYISTIA-Cn3T83MA.js} +1 -1
  250. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-g7gbuH2w.js → ishikawaDiagram-YF4QCWOH-ijFs7e25.js} +1 -1
  251. package/web-shell/assets/{journeyDiagram-JHISSGLW-euefICGn.js → journeyDiagram-JHISSGLW-CINTv8VB.js} +1 -1
  252. package/web-shell/assets/{kanban-definition-UN3LZRKU-Dws8-mjG.js → kanban-definition-UN3LZRKU-CMGRZCxx.js} +1 -1
  253. package/web-shell/assets/{linear-C63F0tyh.js → linear-Co-2_37d.js} +1 -1
  254. package/web-shell/assets/{mermaid.core-fLrhp_4-.js → mermaid.core-DijbyaN5.js} +5 -5
  255. package/web-shell/assets/{mindmap-definition-RKZ34NQL-qRkydfT-.js → mindmap-definition-RKZ34NQL-k_sDYDPZ.js} +1 -1
  256. package/web-shell/assets/{pieDiagram-4H26LBE5-BZ0wQaKN.js → pieDiagram-4H26LBE5-CG-oz8V3.js} +1 -1
  257. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-Fjq6GbSZ.js → quadrantDiagram-W4KKPZXB-Baq7HIG2.js} +1 -1
  258. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CqWvjLHU.js → requirementDiagram-4Y6WPE33-CDM3ZvBt.js} +1 -1
  259. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-VcXX6PVZ.js → sankeyDiagram-5OEKKPKP-C2dJbWKN.js} +1 -1
  260. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-BJSRtxFr.js → sequenceDiagram-3UESZ5HK-Cf1_h59p.js} +1 -1
  261. package/web-shell/assets/{stateDiagram-AJRCARHV-Dt9zUwmZ.js → stateDiagram-AJRCARHV-CI5clUEc.js} +1 -1
  262. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BDc8asKD.js +1 -0
  263. package/web-shell/assets/{timeline-definition-PNZ67QCA-DQwlNRws.js → timeline-definition-PNZ67QCA-B2O8cAZX.js} +1 -1
  264. package/web-shell/assets/{vennDiagram-CIIHVFJN-DwxjUEtQ.js → vennDiagram-CIIHVFJN-BLsJ_h9s.js} +1 -1
  265. package/web-shell/assets/{wardley-L42UT6IY-D3QdMSpJ.js → wardley-L42UT6IY-BlPU4FTA.js} +1 -1
  266. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BddN8oK8.js → wardleyDiagram-YWT4CUSO-D_U-RdU4.js} +1 -1
  267. package/web-shell/assets/{xychartDiagram-2RQKCTM6-BUNuBrRJ.js → xychartDiagram-2RQKCTM6-BynXGSTl.js} +1 -1
  268. package/web-shell/index.html +2 -2
  269. package/web-shell/assets/channel-A434sWK5.js +0 -1
  270. package/web-shell/assets/classDiagram-4FO5ZUOK-CwPuhldB.js +0 -1
  271. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CwPuhldB.js +0 -1
  272. package/web-shell/assets/index-Bi1dP2mU.css +0 -5
  273. package/web-shell/assets/index-DJ-z1Oba.js +0 -1756
  274. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CCxQt56w.js +0 -1
@@ -9,13 +9,13 @@ import {
9
9
  staleArgsWarning,
10
10
  validateAuthMethod,
11
11
  writeSkillArgs
12
- } from "./chunk-QPSYIV2O.js";
12
+ } from "./chunk-4RNMAX6B.js";
13
13
  import {
14
14
  isKittyProtocolEnabled
15
15
  } from "./chunk-NYX53SV4.js";
16
16
  import {
17
17
  contextCommand
18
- } from "./chunk-SKSF3LGQ.js";
18
+ } from "./chunk-BH4HRGTW.js";
19
19
  import {
20
20
  calculateCost,
21
21
  computeSessionStats,
@@ -24,20 +24,20 @@ import {
24
24
  findInlineMathExpressions,
25
25
  getSystemInfoFields,
26
26
  levelLabel
27
- } from "./chunk-LZV2BZPL.js";
27
+ } from "./chunk-6BBIRJ6Z.js";
28
28
  import {
29
29
  VSCODE_SHIFT_ENTER_SEQUENCE,
30
30
  writeOsc52
31
31
  } from "./chunk-3LGZEYOF.js";
32
32
  import {
33
33
  rollbackStandaloneUpdate
34
- } from "./chunk-YWMDTMAU.js";
34
+ } from "./chunk-J2QPGVAE.js";
35
35
  import {
36
36
  themeManager
37
37
  } from "./chunk-KKN2IE7Q.js";
38
38
  import {
39
39
  getErrorMessage as getErrorMessage2
40
- } from "./chunk-EGYJRIDF.js";
40
+ } from "./chunk-7DKCE4VO.js";
41
41
  import {
42
42
  GITHUB_WORKFLOW_PATHS,
43
43
  INSIGHT_CSS,
@@ -51,7 +51,7 @@ import {
51
51
  toJson,
52
52
  toJsonl,
53
53
  toMarkdown
54
- } from "./chunk-VUNRNRN6.js";
54
+ } from "./chunk-CE424L46.js";
55
55
  import {
56
56
  stripUnsafeCharacters,
57
57
  toCodePoints
@@ -63,12 +63,12 @@ import {
63
63
  isVoiceEnabled,
64
64
  readVoiceMode,
65
65
  readVoiceModel
66
- } from "./chunk-BKGA75MU.js";
66
+ } from "./chunk-T7AALAF5.js";
67
67
  import {
68
68
  getExtendedSystemInfo,
69
69
  getGitVersion,
70
70
  getNpmVersion
71
- } from "./chunk-QWDVZH24.js";
71
+ } from "./chunk-7BUWEQD3.js";
72
72
  import {
73
73
  formatDuration,
74
74
  formatTokenCount
@@ -76,7 +76,7 @@ import {
76
76
  import {
77
77
  isInlineModelOverrideAllowed,
78
78
  parseAcpModelOption
79
- } from "./chunk-5VYFXHY2.js";
79
+ } from "./chunk-XKX3PNZR.js";
80
80
  import {
81
81
  OUTPUT_LANGUAGE_AUTO,
82
82
  getAllSettingKeys,
@@ -88,7 +88,7 @@ import {
88
88
  resolveOutputLanguageOrPreserveAuto,
89
89
  validateSettingValue,
90
90
  writeOutputLanguageAndRegisterPath
91
- } from "./chunk-22YFMJBW.js";
91
+ } from "./chunk-QK6BFCAL.js";
92
92
  import {
93
93
  SUPPORTED_LANGUAGES,
94
94
  getCurrentLanguage,
@@ -96,14 +96,14 @@ import {
96
96
  resolveSupportedLanguage,
97
97
  setLanguageAsync,
98
98
  t
99
- } from "./chunk-KXWERR6P.js";
99
+ } from "./chunk-QIS6FQFI.js";
100
100
  import {
101
101
  getInstallationInfo
102
- } from "./chunk-FXVHVCNA.js";
102
+ } from "./chunk-CTRZ7IDH.js";
103
103
  import {
104
104
  isFolderTrustEnabled,
105
105
  loadTrustedFolders
106
- } from "./chunk-M5LIY7Y6.js";
106
+ } from "./chunk-AUM6IYIZ.js";
107
107
  import {
108
108
  require_strip_json_comments
109
109
  } from "./chunk-ALGGS7UH.js";
@@ -174,13 +174,13 @@ import {
174
174
  runForkedAgent,
175
175
  tryGenerateSessionTitle,
176
176
  unregisterGoalHook
177
- } from "./chunk-UQDFEU47.js";
177
+ } from "./chunk-7E5BCHGR.js";
178
178
  import {
179
179
  external_exports
180
180
  } from "./chunk-H6XPXXMH.js";
181
181
  import {
182
182
  resolveModelId
183
- } from "./chunk-XUMAD5IT.js";
183
+ } from "./chunk-PMMWMPWV.js";
184
184
  import {
185
185
  getAutoSkillCuratorStatus,
186
186
  parse,
@@ -195,11 +195,11 @@ import {
195
195
  } from "./chunk-A5YZ3FA2.js";
196
196
  import {
197
197
  APPROVAL_MODES
198
- } from "./chunk-TZTBZ25J.js";
198
+ } from "./chunk-6WBWIPBF.js";
199
199
  import {
200
200
  FORK_SUBAGENT_TYPE,
201
201
  stripStartupContext
202
- } from "./chunk-SRY26X4H.js";
202
+ } from "./chunk-WVAESIM6.js";
203
203
  import {
204
204
  applySkillAllowedTools,
205
205
  buildSkillLlmContent
@@ -213,7 +213,7 @@ import {
213
213
  } from "./chunk-DGEIYUC3.js";
214
214
  import {
215
215
  resolveOpenAILogDir
216
- } from "./chunk-EIMKVOSF.js";
216
+ } from "./chunk-NJ4ANA44.js";
217
217
  import {
218
218
  IdeConnectionEvent,
219
219
  formatTokenUsageSummaryAsCsv,
@@ -227,14 +227,14 @@ import {
227
227
  recordSkillInvocation,
228
228
  runSideQuery,
229
229
  uiTelemetryService
230
- } from "./chunk-4K3RV3OA.js";
230
+ } from "./chunk-36Q4BOUL.js";
231
231
  import {
232
232
  getAutoMemoryRoot
233
233
  } from "./chunk-E4WHKETF.js";
234
234
  import {
235
235
  ToolNames,
236
236
  isShellProgressData
237
- } from "./chunk-CFDR3GNL.js";
237
+ } from "./chunk-D7D7RXIJ.js";
238
238
  import {
239
239
  Storage,
240
240
  createDebugLogger,
@@ -248,7 +248,7 @@ import {
248
248
  isCpuProfileRecording,
249
249
  startCpuProfile,
250
250
  stopCpuProfile
251
- } from "./chunk-R7XNRHYD.js";
251
+ } from "./chunk-N64L3CUV.js";
252
252
  import {
253
253
  init_esbuild_shims
254
254
  } from "./chunk-5O2XNYP6.js";
@@ -1945,7 +1945,7 @@ var approvalModeCommand = {
1945
1945
  };
1946
1946
  }
1947
1947
  }
1948
- const autoModeNotices = mode === "auto" /* AUTO */ && priorMode !== "auto" /* AUTO */ && config ? await import("./useAutoAcceptIndicator-ZRV56GVP.js") : void 0;
1948
+ const autoModeNotices = mode === "auto" /* AUTO */ && priorMode !== "auto" /* AUTO */ && config ? await import("./useAutoAcceptIndicator-VH4DU3JR.js") : void 0;
1949
1949
  if (config) {
1950
1950
  try {
1951
1951
  config.setApprovalMode(mode);
@@ -6532,12 +6532,12 @@ var goalCommand = {
6532
6532
  kind: "built-in" /* BUILT_IN */,
6533
6533
  supportedModes: ["interactive", "non_interactive", "acp"],
6534
6534
  action: /* @__PURE__ */ __name(async (context, args) => {
6535
- if (context.executionMode !== "interactive") {
6535
+ if (context.executionMode === "acp") {
6536
6536
  const operation2 = parseGoalCommand(args);
6537
6537
  if (operation2.kind === "error") return errorMessage(operation2.message);
6538
6538
  if (operation2.kind !== "status" && operation2.kind !== "clear" && operation2.kind !== "set") {
6539
6539
  return errorMessage(
6540
- `'/goal ${operation2.kind}' is only available in interactive mode.`
6540
+ `'/goal ${operation2.kind}' is not available in ACP mode.`
6541
6541
  );
6542
6542
  }
6543
6543
  const explicitSet = operation2.kind === "set";
@@ -6682,7 +6682,7 @@ var expandNowCommand = {
6682
6682
  content: t("History is already expanded in this session.")
6683
6683
  };
6684
6684
  }
6685
- const { expandCollapsedHistory } = await import("./resumeHistoryUtils-4QAMC2S6.js");
6685
+ const { expandCollapsedHistory } = await import("./resumeHistoryUtils-BWVAHKRZ.js");
6686
6686
  const updated = expandCollapsedHistory(history);
6687
6687
  loadHistory(updated);
6688
6688
  refreshStatic();
@@ -11143,6 +11143,59 @@ var statsCommand = {
11143
11143
  init_esbuild_shims();
11144
11144
  import * as fsPromises from "fs/promises";
11145
11145
  import path12 from "path";
11146
+ var realpathNearestExisting3 = /* @__PURE__ */ __name(async (targetPath) => {
11147
+ let currentPath = targetPath;
11148
+ for (; ; ) {
11149
+ try {
11150
+ return await fsPromises.realpath(currentPath);
11151
+ } catch (error) {
11152
+ if (error.code !== "ENOENT") {
11153
+ throw error;
11154
+ }
11155
+ const parentPath = path12.dirname(currentPath);
11156
+ if (parentPath === currentPath) {
11157
+ return currentPath;
11158
+ }
11159
+ currentPath = parentPath;
11160
+ }
11161
+ }
11162
+ }, "realpathNearestExisting");
11163
+ var assertLeafNotSymlinkEscape = /* @__PURE__ */ __name(async (filePath, realProjectRoot) => {
11164
+ let current = filePath;
11165
+ const seen = /* @__PURE__ */ new Set();
11166
+ for (; ; ) {
11167
+ const linkStat = await fsPromises.lstat(current).catch(() => null);
11168
+ if (!linkStat?.isSymbolicLink()) break;
11169
+ if (seen.has(current)) {
11170
+ throw new Error(t("Summary path must be within the project root."));
11171
+ }
11172
+ seen.add(current);
11173
+ const linkTarget = await fsPromises.readlink(current);
11174
+ current = path12.isAbsolute(linkTarget) ? linkTarget : path12.resolve(path12.dirname(current), linkTarget);
11175
+ }
11176
+ const realTarget = await realpathNearestExisting3(current);
11177
+ if (!isSubpath(realProjectRoot, realTarget)) {
11178
+ throw new Error(t("Summary path must be within the project root."));
11179
+ }
11180
+ }, "assertLeafNotSymlinkEscape");
11181
+ var SUMMARY_FOOTER_PREFIX = "\n---\n\n## Summary Metadata\n**Update time**: ";
11182
+ var buildSummaryFooter = /* @__PURE__ */ __name((timestamp) => `${SUMMARY_FOOTER_PREFIX}${timestamp}
11183
+ `, "buildSummaryFooter");
11184
+ var readSummaryTail = /* @__PURE__ */ __name(async (p, bytes = 4096) => {
11185
+ const handle = await fsPromises.open(p, "r");
11186
+ try {
11187
+ const { size } = await handle.stat();
11188
+ const length = Math.min(size, bytes);
11189
+ const buffer = Buffer.alloc(length);
11190
+ await handle.read(buffer, 0, length, Math.max(0, size - length));
11191
+ return buffer.toString("utf8");
11192
+ } finally {
11193
+ await handle.close();
11194
+ }
11195
+ }, "readSummaryTail");
11196
+ var isGeneratedSummary = /* @__PURE__ */ __name((content) => new RegExp(
11197
+ `${SUMMARY_FOOTER_PREFIX.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}[^\\n]*\\n?$`
11198
+ ).test(content.replace(/\r\n/g, "\n")), "isGeneratedSummary");
11146
11199
  var summaryCommand = {
11147
11200
  name: "summary",
11148
11201
  get description() {
@@ -11150,9 +11203,10 @@ var summaryCommand = {
11150
11203
  "Generate a project summary and save it to .qwen/PROJECT_SUMMARY.md"
11151
11204
  );
11152
11205
  },
11206
+ argumentHint: "[path]",
11153
11207
  kind: "built-in" /* BUILT_IN */,
11154
11208
  supportedModes: ["interactive", "non_interactive", "acp"],
11155
- action: /* @__PURE__ */ __name(async (context) => {
11209
+ action: /* @__PURE__ */ __name(async (context, args) => {
11156
11210
  const { config } = context.services;
11157
11211
  const { ui } = context;
11158
11212
  const executionMode = context.executionMode ?? "interactive";
@@ -11233,25 +11287,111 @@ var summaryCommand = {
11233
11287
  }
11234
11288
  return result.text;
11235
11289
  }, "generateSummaryMarkdown");
11236
- const saveSummaryToDisk = /* @__PURE__ */ __name(async (markdownSummary) => {
11290
+ const resolveSummaryTarget = /* @__PURE__ */ __name(async () => {
11237
11291
  const projectRoot = config.getProjectRoot();
11238
- const qwenDir = path12.join(projectRoot, ".qwen");
11239
- try {
11240
- await fsPromises.mkdir(qwenDir, { recursive: true });
11241
- } catch (_err) {
11292
+ const defaultSummaryPath = path12.join(
11293
+ projectRoot,
11294
+ ".qwen",
11295
+ "PROJECT_SUMMARY.md"
11296
+ );
11297
+ const customPath = args?.trim();
11298
+ if (!customPath) {
11299
+ return {
11300
+ summaryPath: defaultSummaryPath,
11301
+ filePathForDisplay: ".qwen/PROJECT_SUMMARY.md",
11302
+ isDefaultTarget: true,
11303
+ realProjectRoot: await fsPromises.realpath(projectRoot)
11304
+ };
11305
+ }
11306
+ const resolved = resolvePath(projectRoot, customPath);
11307
+ if (!isSubpath(projectRoot, resolved)) {
11308
+ throw new Error(t("Summary path must be within the project root."));
11309
+ }
11310
+ const realProjectRoot = await fsPromises.realpath(projectRoot);
11311
+ await assertLeafNotSymlinkEscape(resolved, realProjectRoot);
11312
+ const realResolved = await realpathNearestExisting3(resolved);
11313
+ if (!isSubpath(realProjectRoot, realResolved)) {
11314
+ throw new Error(t("Summary path must be within the project root."));
11315
+ }
11316
+ const hasTrailingSep = customPath.endsWith("/") || customPath.endsWith(path12.sep);
11317
+ const resolvedStat = await fsPromises.stat(resolved).catch(() => null);
11318
+ if (hasTrailingSep && resolvedStat?.isFile()) {
11319
+ throw new Error(
11320
+ t(
11321
+ "Summary path ends with a separator but is an existing file: {{path}}",
11322
+ { path: customPath }
11323
+ )
11324
+ );
11242
11325
  }
11243
- const summaryPath = path12.join(qwenDir, "PROJECT_SUMMARY.md");
11326
+ const isDir = hasTrailingSep || (resolvedStat?.isDirectory() ?? false);
11327
+ const summaryPath = isDir ? path12.join(resolved, "PROJECT_SUMMARY.md") : resolved;
11328
+ if (isDir) {
11329
+ await assertLeafNotSymlinkEscape(summaryPath, realProjectRoot);
11330
+ }
11331
+ const filePathForDisplay = (path12.isAbsolute(customPath) ? summaryPath : path12.relative(projectRoot, summaryPath)).replaceAll(path12.sep, "/");
11332
+ const isDefaultTarget = summaryPath === defaultSummaryPath;
11333
+ const existingStat = await fsPromises.stat(summaryPath).catch(() => null);
11334
+ if (existingStat?.isDirectory()) {
11335
+ throw new Error(
11336
+ t("Summary path resolves to an existing directory: {{path}}", {
11337
+ path: filePathForDisplay
11338
+ })
11339
+ );
11340
+ }
11341
+ if (!isDefaultTarget && existingStat?.isFile() && existingStat.size > 0) {
11342
+ const existing = await readSummaryTail(summaryPath).catch(() => "");
11343
+ if (!isGeneratedSummary(existing)) {
11344
+ throw new Error(
11345
+ t(
11346
+ "Summary path already exists and is not a generated summary: {{path}}",
11347
+ { path: filePathForDisplay }
11348
+ )
11349
+ );
11350
+ }
11351
+ }
11352
+ return {
11353
+ summaryPath,
11354
+ filePathForDisplay,
11355
+ isDefaultTarget,
11356
+ realProjectRoot
11357
+ };
11358
+ }, "resolveSummaryTarget");
11359
+ const saveSummaryToDisk = /* @__PURE__ */ __name(async (markdownSummary, target) => {
11244
11360
  const summaryContent = `${markdownSummary}
11245
-
11246
- ---
11247
-
11248
- ## Summary Metadata
11249
- **Update time**: ${(/* @__PURE__ */ new Date()).toISOString()}
11250
- `;
11251
- await fsPromises.writeFile(summaryPath, summaryContent, "utf8");
11361
+ ${buildSummaryFooter(
11362
+ (/* @__PURE__ */ new Date()).toISOString()
11363
+ )}`;
11364
+ if (!target.isDefaultTarget) {
11365
+ await assertLeafNotSymlinkEscape(
11366
+ target.summaryPath,
11367
+ target.realProjectRoot
11368
+ );
11369
+ }
11370
+ const preWriteStat = await fsPromises.stat(target.summaryPath).catch(() => null);
11371
+ if (!target.isDefaultTarget && preWriteStat?.isFile() && preWriteStat.size > 0) {
11372
+ const existing = await readSummaryTail(target.summaryPath).catch(
11373
+ () => ""
11374
+ );
11375
+ if (!isGeneratedSummary(existing)) {
11376
+ throw new Error(
11377
+ t(
11378
+ "Summary path already exists and is not a generated summary: {{path}}",
11379
+ { path: target.filePathForDisplay }
11380
+ )
11381
+ );
11382
+ }
11383
+ }
11384
+ await fsPromises.mkdir(path12.dirname(target.summaryPath), {
11385
+ recursive: true,
11386
+ ...target.isDefaultTarget ? { mode: 448 } : {}
11387
+ });
11388
+ await fsPromises.writeFile(target.summaryPath, summaryContent, {
11389
+ encoding: "utf8",
11390
+ mode: 384
11391
+ });
11252
11392
  return {
11253
- filePathForDisplay: ".qwen/PROJECT_SUMMARY.md",
11254
- fullPath: summaryPath
11393
+ filePathForDisplay: target.filePathForDisplay,
11394
+ fullPath: target.summaryPath
11255
11395
  };
11256
11396
  }, "saveSummaryToDisk");
11257
11397
  const emitInteractivePending = /* @__PURE__ */ __name((stage) => {
@@ -11325,13 +11465,17 @@ var summaryCommand = {
11325
11465
  };
11326
11466
  }, "returnNoConversationMessage");
11327
11467
  const executeSummaryGeneration = /* @__PURE__ */ __name(async (history2) => {
11468
+ const target = await resolveSummaryTarget();
11328
11469
  emitInteractivePending("generating");
11329
11470
  const markdownSummary = await generateSummaryMarkdown(history2);
11330
11471
  if (abortSignal?.aborted) {
11331
11472
  throw new DOMException("Summary generation cancelled.", "AbortError");
11332
11473
  }
11333
11474
  emitInteractivePending("saving");
11334
- const { filePathForDisplay } = await saveSummaryToDisk(markdownSummary);
11475
+ const { filePathForDisplay } = await saveSummaryToDisk(
11476
+ markdownSummary,
11477
+ target
11478
+ );
11335
11479
  completeInteractive(filePathForDisplay);
11336
11480
  return { markdownSummary, filePathForDisplay };
11337
11481
  }, "executeSummaryGeneration");
@@ -11385,7 +11529,7 @@ var summaryCommand = {
11385
11529
  return {
11386
11530
  type: "message",
11387
11531
  messageType: "error",
11388
- content: formatErrorMessage3(error)
11532
+ content: executionMode === "interactive" ? "" : formatErrorMessage3(error)
11389
11533
  };
11390
11534
  }
11391
11535
  }, "action")
@@ -13750,10 +13894,10 @@ var updateCommand = {
13750
13894
  { performStandaloneUpdate },
13751
13895
  installationInfo
13752
13896
  ] = await Promise.all([
13753
- import("./updateCheck-7EG4BLBH.js"),
13754
- import("./processUtils-2CSVE5BW.js"),
13755
- import("./standalone-update-E4V5V7WT.js"),
13756
- import("./installationInfo-2LIKCNVX.js")
13897
+ import("./updateCheck-XSIBJXYA.js"),
13898
+ import("./processUtils-4L46PM2I.js"),
13899
+ import("./standalone-update-LEPP5BOB.js"),
13900
+ import("./installationInfo-TEJOXP5W.js")
13757
13901
  ]);
13758
13902
  const { formatUpdateInstructions, getInstallationInfo: getInstallationInfo2 } = installationInfo;
13759
13903
  const settings = context.services.settings;
@@ -15307,6 +15451,12 @@ function handleCommandResult(result, outputHistoryItems) {
15307
15451
  type: "stream_messages",
15308
15452
  messages: result.messages
15309
15453
  };
15454
+ case "goal_control":
15455
+ return {
15456
+ type: "goal_control",
15457
+ operation: result.operation,
15458
+ response: result.response
15459
+ };
15310
15460
  /**
15311
15461
  * Currently return types below are never generated due to the
15312
15462
  * whitelist of allowed slash commands in ACP and non-interactive mode.
@@ -15348,12 +15498,6 @@ function handleCommandResult(result, outputHistoryItems) {
15348
15498
  reason: "Action confirmation is not supported in non-interactive mode. Commands requiring confirmation cannot be executed.",
15349
15499
  originalType: "confirm_action"
15350
15500
  };
15351
- case "goal_control":
15352
- return {
15353
- type: "unsupported",
15354
- reason: "Goal control is not supported in non-interactive mode yet.",
15355
- originalType: "goal_control"
15356
- };
15357
15501
  default: {
15358
15502
  const _exhaustive = result;
15359
15503
  return {
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  DashScopeOpenAICompatibleProvider,
5
5
  DefaultOpenAICompatibleProvider
6
- } from "./chunk-YXEVDA66.js";
6
+ } from "./chunk-4LLUH3A7.js";
7
7
  import {
8
8
  RequestTokenizer
9
9
  } from "./chunk-H36SETQS.js";
@@ -41,7 +41,7 @@ import {
41
41
  import {
42
42
  ProtocolTagSanitizedEvent,
43
43
  logProtocolTagSanitized
44
- } from "./chunk-4K3RV3OA.js";
44
+ } from "./chunk-36Q4BOUL.js";
45
45
  import {
46
46
  reconcileMaxTokens
47
47
  } from "./chunk-ZBVS26BY.js";
@@ -1443,7 +1443,8 @@ var ContentGenerationPipeline = class {
1443
1443
  }
1444
1444
  }
1445
1445
  const typed = providerRequest;
1446
- if (isDashScope && typed["tool_choice"] === "required" && (thinkingMandatory || typed["enable_thinking"] === true)) {
1446
+ const reasoningEffort = typed["reasoning_effort"];
1447
+ if (isDashScope && typed["tool_choice"] === "required" && (thinkingMandatory || typed["enable_thinking"] === true || typeof reasoningEffort === "string" && reasoningEffort !== "none")) {
1447
1448
  delete typed["tool_choice"];
1448
1449
  }
1449
1450
  return providerRequest;
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-KXWERR6P.js";
5
+ } from "./chunk-QIS6FQFI.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  getPlanRequiredTeammatePreApprovalMessage,
8
8
  isPlanRequiredTeammateAwaitingApproval
9
- } from "./chunk-TZTBZ25J.js";
9
+ } from "./chunk-6WBWIPBF.js";
10
10
  import {
11
11
  resolveActiveTeamName
12
12
  } from "./chunk-S6LOFUVP.js";
@@ -15,7 +15,7 @@ import {
15
15
  BaseToolInvocation,
16
16
  ToolDisplayNames,
17
17
  ToolNames
18
- } from "./chunk-CFDR3GNL.js";
18
+ } from "./chunk-D7D7RXIJ.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -2,19 +2,19 @@
2
2
  "use strict";
3
3
  import {
4
4
  getErrorMessage
5
- } from "./chunk-EGYJRIDF.js";
5
+ } from "./chunk-7DKCE4VO.js";
6
6
  import {
7
7
  extensionToOutputString,
8
8
  getExtensionManager
9
- } from "./chunk-D2GPKXCQ.js";
9
+ } from "./chunk-VQHIIPVE.js";
10
10
  import {
11
11
  loadSettings
12
- } from "./chunk-22YFMJBW.js";
12
+ } from "./chunk-QK6BFCAL.js";
13
13
  import {
14
14
  initializeI18n,
15
15
  resolveLanguageSetting,
16
16
  t
17
- } from "./chunk-KXWERR6P.js";
17
+ } from "./chunk-QIS6FQFI.js";
18
18
  import {
19
19
  writeStderrLine,
20
20
  writeStdoutLine
@@ -5,21 +5,21 @@ import {
5
5
  } from "./chunk-57OAHC2Y.js";
6
6
  import {
7
7
  loadSettings
8
- } from "./chunk-22YFMJBW.js";
8
+ } from "./chunk-QK6BFCAL.js";
9
9
  import {
10
10
  getCurrentLanguage,
11
11
  t
12
- } from "./chunk-KXWERR6P.js";
12
+ } from "./chunk-QIS6FQFI.js";
13
13
  import {
14
14
  isWorkspaceTrusted
15
- } from "./chunk-M5LIY7Y6.js";
15
+ } from "./chunk-AUM6IYIZ.js";
16
16
  import {
17
17
  ExtensionManager,
18
18
  getExtensionDescription,
19
19
  getExtensionDisplayName,
20
20
  redactUrlCredentials,
21
21
  require_prompts
22
- } from "./chunk-UQDFEU47.js";
22
+ } from "./chunk-7E5BCHGR.js";
23
23
  import {
24
24
  stripAnsi
25
25
  } from "./chunk-TWPJO254.js";
@@ -5,10 +5,10 @@ import {
5
5
  } from "./chunk-DP3IHZGG.js";
6
6
  import {
7
7
  t
8
- } from "./chunk-KXWERR6P.js";
8
+ } from "./chunk-QIS6FQFI.js";
9
9
  import {
10
10
  getNpmCliPath
11
- } from "./chunk-FXVHVCNA.js";
11
+ } from "./chunk-CTRZ7IDH.js";
12
12
  import {
13
13
  getPackageJson
14
14
  } from "./chunk-VJNBRRZG.js";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-432XCUHF.js";
13
13
  import {
14
14
  ToolNames
15
- } from "./chunk-CFDR3GNL.js";
15
+ } from "./chunk-D7D7RXIJ.js";
16
16
  import {
17
17
  createDebugLogger,
18
18
  getErrorMessage,
@@ -692,7 +692,7 @@ __name(resolveForkExecutionAllowedTools, "resolveForkExecutionAllowedTools");
692
692
  function registerForkDisplayImageForCache(config, advertisedToolNames) {
693
693
  if (!advertisedToolNames.includes(ToolNames.DISPLAY_IMAGE)) return;
694
694
  config.getToolRegistry().registerFactory(ToolNames.DISPLAY_IMAGE, async () => {
695
- const { DisplayImageTool } = await import("./display-image-VS3TXYQH.js");
695
+ const { DisplayImageTool } = await import("./display-image-GUJA352B.js");
696
696
  return new DisplayImageTool(config);
697
697
  });
698
698
  }
@@ -793,7 +793,16 @@ function buildForkedMessages(directive, assistantMessage, executionAllowedTools,
793
793
  }
794
794
  const fullAssistantMessage = {
795
795
  role: assistantMessage.role,
796
- parts: [...assistantMessage.parts || []]
796
+ parts: (assistantMessage.parts || []).map(
797
+ (part) => part.functionCall ? {
798
+ ...part,
799
+ functionCall: {
800
+ id: part.functionCall.id,
801
+ name: part.functionCall.name,
802
+ args: {}
803
+ }
804
+ } : part
805
+ )
797
806
  };
798
807
  const toolResultParts = buildFunctionResponseParts(
799
808
  assistantMessage,
@@ -3,13 +3,13 @@
3
3
  import {
4
4
  resolveModelConfig,
5
5
  resolveProviderProtocol
6
- } from "./chunk-UQDFEU47.js";
6
+ } from "./chunk-7E5BCHGR.js";
7
7
  import {
8
8
  external_exports
9
9
  } from "./chunk-H6XPXXMH.js";
10
10
  import {
11
11
  stripRuntimeSnapshotPrefix
12
- } from "./chunk-XUMAD5IT.js";
12
+ } from "./chunk-PMMWMPWV.js";
13
13
  import {
14
14
  REASONING_EFFORT_TIERS,
15
15
  normalizeReasoningEffort
@@ -17,7 +17,7 @@ import {
17
17
  import {
18
18
  AuthType,
19
19
  MODEL_GENERATION_CONFIG_FIELDS
20
- } from "./chunk-H35Q5CEG.js";
20
+ } from "./chunk-MMWH7ERH.js";
21
21
  import {
22
22
  init_esbuild_shims
23
23
  } from "./chunk-5O2XNYP6.js";
@@ -14,7 +14,7 @@ import {
14
14
  init_esbuild_shims();
15
15
  async function getCliVersion() {
16
16
  const pkgJson = await getPackageJson();
17
- return "0.21.3";
17
+ return "0.21.4-nightly.20260804.d6f55a1c9";
18
18
  }
19
19
  __name(getCliVersion, "getCliVersion");
20
20