@qwen-code/qwen-code 0.19.9 → 0.19.10-nightly.20260715.c538bd70d

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 (310) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +8 -0
  2. package/bundled/qc-helper/docs/features/channels/dingtalk.md +3 -0
  3. package/bundled/qc-helper/docs/features/channels/overview.md +11 -3
  4. package/bundled/qc-helper/docs/features/code-review.md +88 -44
  5. package/bundled/qc-helper/docs/features/commands.md +6 -6
  6. package/bundled/qc-helper/docs/features/hooks.md +29 -0
  7. package/bundled/qc-helper/docs/features/sub-agents.md +21 -0
  8. package/bundled/qc-helper/docs/qwen-serve.md +46 -20
  9. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  10. package/bundled/review/DESIGN.md +219 -33
  11. package/bundled/review/SKILL.md +449 -153
  12. package/chunks/{MaxSizedBox-6HYJ3ZPJ.js → MaxSizedBox-LOOBDOTZ.js} +31 -31
  13. package/chunks/{StandaloneSessionPicker-WS4GXYOG.js → StandaloneSessionPicker-76CLZSH2.js} +51 -49
  14. package/chunks/{acpAgent-5FWSOZL5.js → acpAgent-DFJOK7EB.js} +567 -482
  15. package/chunks/{agent-HOLHB3RT.js → agent-OJQWXNHP.js} +26 -26
  16. package/chunks/{agent-headless-SXL6H56A.js → agent-headless-ND7GOORY.js} +26 -26
  17. package/chunks/{anthropicContentGenerator-L73TO3DB.js → anthropicContentGenerator-56U3YCP2.js} +5 -5
  18. package/chunks/{artifact-tool-U7IRTLIV.js → artifact-tool-MIZLXBLF.js} +2 -2
  19. package/chunks/{askUserQuestion-2DLUUZZG.js → askUserQuestion-XMJVPNWM.js} +2 -2
  20. package/chunks/{bridge-BCJQ7BBB.js → bridge-SNJK2JLK.js} +32 -32
  21. package/chunks/{ca-UJ6HC4H2.js → ca-C2JTT2N5.js} +4 -1
  22. package/chunks/channel-worker-group-K7QKH6IG.js +13 -0
  23. package/chunks/channel-worker-manager-YSFB4HUU.js +418 -0
  24. package/chunks/channel-worker-supervisor-QCKIOYZD.js +20 -0
  25. package/chunks/{chunk-CCDMCZPP.js → chunk-26UABK2C.js} +1 -1
  26. package/chunks/{chunk-LXNEJD34.js → chunk-2FO5GFKZ.js} +1 -1
  27. package/chunks/{chunk-L36P3NBD.js → chunk-2W3OOD4W.js} +2 -0
  28. package/chunks/{chunk-7R3CZA3Q.js → chunk-2Z5UX4KI.js} +1 -1
  29. package/chunks/chunk-3MX7D6QN.js +516 -0
  30. package/chunks/{chunk-CLFKOZEK.js → chunk-3XULHBC7.js} +1 -1
  31. package/chunks/chunk-4QZADKJS.js +34 -0
  32. package/chunks/{chunk-E2IY465S.js → chunk-4UDHAJFV.js} +10 -10
  33. package/chunks/{chunk-5U27BZ72.js → chunk-55SAYASQ.js} +190 -77
  34. package/chunks/chunk-5HBA2Z7V.js +28 -0
  35. package/chunks/{chunk-ZJE7NSL3.js → chunk-5M6IDOMF.js} +34 -97
  36. package/chunks/{chunk-HVY356M2.js → chunk-5SQ55XJZ.js} +3 -3
  37. package/chunks/{chunk-EAXLGSFP.js → chunk-6GRAQNTY.js} +8 -8
  38. package/chunks/{chunk-K434OPES.js → chunk-6WPJRYLZ.js} +3 -3
  39. package/chunks/{chunk-VWPVHAMO.js → chunk-7DXHIMXL.js} +5 -1
  40. package/chunks/{chunk-J4TSQ5EQ.js → chunk-7NFB7LBQ.js} +8 -1
  41. package/chunks/{chunk-5SFOMFG4.js → chunk-7R4DPSRA.js} +36 -2
  42. package/chunks/{chunk-W2UIXQDL.js → chunk-7STBROEV.js} +1 -1
  43. package/chunks/{chunk-BMGVRZN4.js → chunk-AETEZU4U.js} +1 -1
  44. package/chunks/{chunk-HPDUL5MF.js → chunk-AGZWN4WV.js} +1 -1
  45. package/chunks/{chunk-RDJSGHZE.js → chunk-ALGGS7UH.js} +1 -38
  46. package/chunks/{chunk-GWHYEOV2.js → chunk-ARKANCNX.js} +2 -1
  47. package/chunks/{chunk-34Z3U5RQ.js → chunk-AU4R7ACM.js} +518 -114
  48. package/chunks/{channel-worker-supervisor-WSOAAYUO.js → chunk-B7MFJBKE.js} +67 -35
  49. package/chunks/{chunk-524RQP4Q.js → chunk-B7NUUEXC.js} +10 -4
  50. package/chunks/{chunk-MC23XKFE.js → chunk-BLPMRN4B.js} +3 -3
  51. package/chunks/{chunk-A3XKDTSH.js → chunk-BRRKAUGR.js} +4 -4
  52. package/chunks/{chunk-W3JHSWRP.js → chunk-BUPLOPUA.js} +4 -4
  53. package/chunks/{chunk-3VAGG5T5.js → chunk-BYOOK22F.js} +121 -16
  54. package/chunks/{chunk-EMDMPBJ4.js → chunk-C47ENMZJ.js} +3 -3
  55. package/chunks/{chunk-3AHXV67U.js → chunk-C5TVXLJZ.js} +1 -1
  56. package/chunks/{chunk-X6TJ3YZV.js → chunk-CGT5TQIZ.js} +159 -57
  57. package/chunks/{chunk-4C5BQ2D2.js → chunk-CQQD7MDG.js} +82 -12
  58. package/chunks/{chunk-KKNMOEZH.js → chunk-E2UVIFI2.js} +185 -398
  59. package/chunks/{chunk-P67PFTUT.js → chunk-EPY4ZEU6.js} +4 -4
  60. package/chunks/{chunk-6PESIEKJ.js → chunk-EZSRHWGS.js} +68 -6
  61. package/chunks/{chunk-4GORAUCN.js → chunk-F333XEAU.js} +1 -1
  62. package/chunks/{chunk-YLV3XXFB.js → chunk-FBU7WRZI.js} +17 -1
  63. package/chunks/{chunk-Q6I5QHMH.js → chunk-FGTCZJOD.js} +1 -1
  64. package/chunks/{chunk-LK7KUE55.js → chunk-FSA7ERJ2.js} +1 -1
  65. package/chunks/{chunk-B4G2WOFA.js → chunk-FTU55ZZ7.js} +3 -3
  66. package/chunks/{chunk-EGYZ275M.js → chunk-GCD7PEDZ.js} +4 -4
  67. package/chunks/{chunk-SJHDYNHF.js → chunk-GDQQRV43.js} +3 -3
  68. package/chunks/{chunk-3BTRNWWD.js → chunk-GOXKNSDZ.js} +1 -64
  69. package/chunks/{chunk-GZRTYZ2R.js → chunk-GQKWT45X.js} +154 -1
  70. package/chunks/chunk-GYTKQYDB.js +23 -0
  71. package/chunks/{chunk-YVEDCAUE.js → chunk-HGT6JR3U.js} +19 -0
  72. package/chunks/{chunk-N3EMS75V.js → chunk-HKM2TEF7.js} +1268 -1233
  73. package/chunks/chunk-IDS7MSUP.js +74 -0
  74. package/chunks/{chunk-PVZM22CK.js → chunk-INKAZNYC.js} +5 -5
  75. package/chunks/{chunk-3G7CIHVV.js → chunk-IOQ75R4R.js} +4 -4
  76. package/chunks/{chunk-AURZZYMD.js → chunk-IQOOJSPR.js} +4 -4
  77. package/chunks/{chunk-AKIVHSJR.js → chunk-J4UQXGVL.js} +111 -93
  78. package/chunks/{chunk-VTU57BWZ.js → chunk-JEKOCLRN.js} +1 -1
  79. package/chunks/{chunk-B5ORX3FG.js → chunk-JGUT3LWZ.js} +6 -1
  80. package/chunks/{chunk-PDZ7MBDG.js → chunk-JIQHT2O6.js} +27 -6
  81. package/chunks/{chunk-XUOOWUZS.js → chunk-JPAH76WA.js} +1 -1
  82. package/chunks/{chunk-BAPGSC7U.js → chunk-K4LG6TVJ.js} +23 -9
  83. package/chunks/chunk-KET3M4K4.js +493 -0
  84. package/chunks/{chunk-ORBGV7NJ.js → chunk-KKRTYONM.js} +6 -4
  85. package/chunks/{chunk-SCGXUJBT.js → chunk-KPA5QGN2.js} +3 -3
  86. package/chunks/{chunk-IAVB3HM3.js → chunk-KSO42X3Z.js} +13 -0
  87. package/chunks/{chunk-4QLQE5WJ.js → chunk-L5U3ELZX.js} +1 -1
  88. package/chunks/{chunk-77XJ3SWN.js → chunk-LIUEXYPL.js} +5 -5
  89. package/chunks/{chunk-4ZVWQHEQ.js → chunk-LQIDP6K5.js} +1 -1
  90. package/chunks/{chunk-34MW4KTI.js → chunk-LT5CRUA5.js} +2 -2
  91. package/chunks/{chunk-DC5Z3DU6.js → chunk-LXLTBIDP.js} +43 -6
  92. package/chunks/{chunk-VA4KQY6V.js → chunk-MEK7CQJR.js} +3 -3
  93. package/chunks/{chunk-KHUQZZJ6.js → chunk-MO7O5722.js} +370 -36
  94. package/chunks/chunk-MR3PXB6E.js +48 -0
  95. package/chunks/{chunk-PODM4SZ4.js → chunk-MV52C5MA.js} +5 -5
  96. package/chunks/{chunk-WL4L7EZH.js → chunk-OA4JVLSA.js} +27 -1
  97. package/chunks/{chunk-X4NKFGFJ.js → chunk-OJAMDVF5.js} +0 -15
  98. package/chunks/{chunk-BZIFY5TF.js → chunk-OKAIGAYW.js} +3 -3
  99. package/chunks/{chunk-ECNYL4AA.js → chunk-OPNPGO6D.js} +1 -1
  100. package/chunks/{chunk-3SJSQXNS.js → chunk-PEJWA3QQ.js} +12 -8
  101. package/chunks/{chunk-MXL5UP4X.js → chunk-Q6TUALBE.js} +1 -1
  102. package/chunks/{chunk-QYMQSECS.js → chunk-QAW7PIHT.js} +2 -2
  103. package/chunks/{chunk-5HOMWMCL.js → chunk-QEDYXCLG.js} +4167 -1338
  104. package/chunks/chunk-QNNTA7IX.js +91 -0
  105. package/chunks/{chunk-D2GFWEXB.js → chunk-QNT5T4Q2.js} +6 -6
  106. package/chunks/{chunk-CUMMSHH6.js → chunk-R5XLNDE2.js} +1 -1
  107. package/chunks/{chunk-LUODI7WD.js → chunk-RCEEXIOO.js} +6 -4
  108. package/chunks/{chunk-WQUQVGTF.js → chunk-RQWDLG6Z.js} +183 -96
  109. package/chunks/{chunk-XYQSMABS.js → chunk-SLCVZX6F.js} +4 -4
  110. package/chunks/{chunk-CEA3E3JB.js → chunk-SPJQO2CE.js} +2 -2
  111. package/chunks/{chunk-JSG7ZSBC.js → chunk-TQBODCFD.js} +1 -1
  112. package/chunks/chunk-TV6K2FB4.js +224 -0
  113. package/chunks/{chunk-5XUCZNSY.js → chunk-TYLOFD2U.js} +1 -1
  114. package/chunks/{chunk-CNEIYWSA.js → chunk-UKWAQ7AV.js} +5 -5
  115. package/chunks/{chunk-7PU4FYLG.js → chunk-US4YQT62.js} +4 -4
  116. package/chunks/{chunk-Q4YQW46J.js → chunk-UYPPCIJQ.js} +36 -18
  117. package/chunks/{chunk-YAUFFXDS.js → chunk-UZKG7HFG.js} +12 -11
  118. package/chunks/{chunk-GWLSNBG4.js → chunk-VQLRHJKL.js} +30 -26
  119. package/chunks/{chunk-L6P4KPHR.js → chunk-VRUHAVZS.js} +59 -39
  120. package/chunks/{chunk-HKMAENAO.js → chunk-W2U4RJJU.js} +8 -6
  121. package/chunks/{chunk-ATAKVRIF.js → chunk-WDSCTLAB.js} +7 -7
  122. package/chunks/{chunk-ZLXQN2QS.js → chunk-WIEO4CWB.js} +1 -1
  123. package/chunks/{chunk-OQ4DRIOA.js → chunk-WJOC24IW.js} +2 -2
  124. package/chunks/{chunk-J3JA76CF.js → chunk-WTNZ6DXB.js} +1 -1
  125. package/chunks/{chunk-NVYTCB5Z.js → chunk-XCR44EEA.js} +14589 -13980
  126. package/chunks/{chunk-TDEXZKMT.js → chunk-Y66VOBRP.js} +2 -2
  127. package/chunks/{chunk-CC2ITGCF.js → chunk-YHN5SUIJ.js} +49 -6
  128. package/chunks/{chunk-D5SKC4YG.js → chunk-ZBAROUR6.js} +41 -13
  129. package/chunks/{chunk-U2NNEY4R.js → chunk-ZEEVKDO7.js} +1 -1
  130. package/chunks/{chunk-5VXNZWGF.js → chunk-ZLOHB76C.js} +1 -1
  131. package/chunks/{chunk-JZETEN3Z.js → chunk-ZNCLTRNU.js} +3 -3
  132. package/chunks/{chunk-TO6QE22P.js → chunk-ZP4ZZJJG.js} +26 -22
  133. package/chunks/{chunk-UOZWKTQG.js → chunk-ZPAHLFZU.js} +2 -2
  134. package/chunks/{chunk-XLA62MYB.js → chunk-ZTXZ7FM4.js} +2 -2
  135. package/chunks/{computer-use-HM37RX6A.js → computer-use-DRETHEQF.js} +26 -26
  136. package/chunks/{config-utils-NV2SVGPB.js → config-utils-XSHOMMK4.js} +3 -2
  137. package/chunks/{contextCommand-OF5SFGH2.js → contextCommand-7YJUW23J.js} +28 -28
  138. package/chunks/{create-sub-session-INX7TXJI.js → create-sub-session-EAB2U5XW.js} +2 -2
  139. package/chunks/{create-sub-session-KPRT7ECJ.js → create-sub-session-L5HOZAEL.js} +26 -26
  140. package/chunks/{cron-create-AMBKGZX6.js → cron-create-GMVKSXZT.js} +4 -4
  141. package/chunks/{cron-delete-LRU4OJYG.js → cron-delete-VDZKUAVK.js} +4 -4
  142. package/chunks/{cron-list-WVP2JXER.js → cron-list-UG7C7RAR.js} +4 -4
  143. package/chunks/{daemon-ARHTSTXP.js → daemon-MI5HF26N.js} +603 -62
  144. package/chunks/{daemon-status-provider-B2UTZUJ2.js → daemon-status-provider-2D47GOJT.js} +36 -36
  145. package/chunks/{de-EBJN3OVN.js → de-2VCDRDGU.js} +4 -1
  146. package/chunks/{dist-WKPOYU7O.js → dist-IEXZC5ZR.js} +1 -1
  147. package/chunks/{dist-XKU3ABM5.js → dist-PQK4GCKA.js} +1 -1
  148. package/chunks/{dist-VHV4EVHG.js → dist-U75JK3PF.js} +1 -1
  149. package/chunks/{dist-R7LN5AZE.js → dist-VXO7QBON.js} +2 -2
  150. package/chunks/{dist-PNVLTKTL.js → dist-WH4TZSH3.js} +158 -4
  151. package/chunks/{dist-QYCAEZIT.js → dist-X2ABIW5R.js} +5 -1
  152. package/chunks/{earlyInputCapture-3VTHRC4C.js → earlyInputCapture-OJQPGCSX.js} +27 -27
  153. package/chunks/{edit-VNI4NJ73.js → edit-LZOAFLT2.js} +27 -27
  154. package/chunks/{en-5A6LA7RK.js → en-NJCA3TAA.js} +5 -1
  155. package/chunks/{enter-worktree-IYYBKPZT.js → enter-worktree-VL2TCGI5.js} +26 -26
  156. package/chunks/{enterPlanMode-GMC5FD5A.js → enterPlanMode-QGHBHZWI.js} +42 -27
  157. package/chunks/{environment-5HSSRMJ7.js → environment-2G5IC2EU.js} +30 -29
  158. package/chunks/{errors-HMFCJJ7P.js → errors-7QNQDNI2.js} +28 -28
  159. package/chunks/{exit-worktree-6BHCMP5G.js → exit-worktree-5V3X2MRH.js} +26 -26
  160. package/chunks/{exitPlanMode-CJW7G74W.js → exitPlanMode-XDPNQB4H.js} +26 -26
  161. package/chunks/{fast-path-FRDMDVHG.js → fast-path-NNSD4BVZ.js} +3 -3
  162. package/chunks/{fast-path-settings-5QZE64HR.js → fast-path-settings-DAOVFADC.js} +6 -4
  163. package/chunks/{fr-YXRABLYZ.js → fr-5F3E7WKD.js} +4 -1
  164. package/chunks/{gemini-QYSEGHAX.js → gemini-RKDUWGXJ.js} +139 -76
  165. package/chunks/{geminiContentGenerator-J7YNZDYP.js → geminiContentGenerator-V7QGHXVF.js} +4 -4
  166. package/chunks/{glob-BRCSGFOT.js → glob-ZNQUUOTS.js} +28 -27
  167. package/chunks/{grep-EE2DUOSY.js → grep-NYIGLM7R.js} +26 -26
  168. package/chunks/{handleAutoUpdate-5NWTLR67.js → handleAutoUpdate-UBQ4IQXY.js} +30 -30
  169. package/chunks/{i18n-BASPENNQ.js → i18n-5T3S6SGP.js} +27 -27
  170. package/chunks/initializer-TJED246Q.js +73 -0
  171. package/chunks/{installationInfo-W6V4DT7W.js → installationInfo-OTEU7FKR.js} +27 -27
  172. package/chunks/{ja-7VQOANVG.js → ja-66J6B53L.js} +5 -2
  173. package/chunks/{keychain-token-storage-VKUBNCP4.js → keychain-token-storage-AU22CQI6.js} +2 -2
  174. package/chunks/list-6OHS7MFJ.js +76 -0
  175. package/chunks/loadedSettingsAdapter-5456XIYG.js +70 -0
  176. package/chunks/{loop-wakeup-WX7BLWWP.js → loop-wakeup-C4EXLYVA.js} +5 -5
  177. package/chunks/{ls-ZB2BDP6T.js → ls-2OUTG3IZ.js} +4 -4
  178. package/chunks/{lsp-V5DN4YUJ.js → lsp-4VMNXZW6.js} +2 -2
  179. package/chunks/mcp-NOWRPFKY.js +70 -0
  180. package/chunks/{monitor-X5Z3H4FY.js → monitor-CVDZO3IZ.js} +26 -26
  181. package/chunks/nonInteractiveCli-UGI7Y43E.js +129 -0
  182. package/chunks/{notebook-edit-TRM2QIJK.js → notebook-edit-NWIA5TEJ.js} +27 -27
  183. package/chunks/{openaiContentGenerator-AAYONPMF.js → openaiContentGenerator-KJONBBJO.js} +12 -12
  184. package/chunks/{pidfile-D4I4FTVA.js → pidfile-L3TGXMTF.js} +27 -27
  185. package/chunks/{pt-2C6YCSHL.js → pt-TFZO5Y6T.js} +4 -1
  186. package/chunks/{qwenContentGenerator-K3HZ2H76.js → qwenContentGenerator-GXUZB5SJ.js} +28 -28
  187. package/chunks/{qwenOAuth2-PJQ27GSO.js → qwenOAuth2-LEYOU7RU.js} +5 -5
  188. package/chunks/{read-file-7SZSIZOL.js → read-file-I4OUZXTA.js} +8 -8
  189. package/chunks/{read-mcp-resource-SM5DA4RG.js → read-mcp-resource-JUFHCKSC.js} +2 -2
  190. package/chunks/{record-artifact-4XKZX3UW.js → record-artifact-DWSMBXYY.js} +2 -2
  191. package/chunks/{ripGrep-YNPFVCZP.js → ripGrep-XLCXANIO.js} +26 -26
  192. package/chunks/{ru-6BBHVZZV.js → ru-4L4LFHIT.js} +4 -1
  193. package/chunks/{run-qwen-serve-DMWV5N6L.js → run-qwen-serve-R6SBP6YS.js} +1232 -371
  194. package/chunks/{runtime-57WWRVHN.js → runtime-U3S33YUQ.js} +42 -37
  195. package/chunks/{scheduler-YBLGWSIL.js → scheduler-65QCIELP.js} +26 -26
  196. package/chunks/{send-message-F36YD6KQ.js → send-message-JZ752NWD.js} +3 -3
  197. package/chunks/{serve-R63NK3CV.js → serve-PSPOFCOD.js} +36 -34
  198. package/chunks/{server-Z22GCAXP.js → server-6P5ZB56O.js} +5561 -1377
  199. package/chunks/{session-HKAAI7BN.js → session-ILLOYW75.js} +298 -98
  200. package/chunks/{settings-3EYN66GK.js → settings-RMUJGYIK.js} +34 -32
  201. package/chunks/{shell-6YXINTWJ.js → shell-65GTAN5Q.js} +28 -26
  202. package/chunks/{skill-OO57P4X6.js → skill-L76U3YCX.js} +10 -10
  203. package/chunks/{spawnChannel-JD7G4VU6.js → spawnChannel-LXIGZ4EM.js} +28 -28
  204. package/chunks/{src-G5UPLZSZ.js → src-DWZT2X3Z.js} +87 -27
  205. package/chunks/{standalone-update-OB7F4JPZ.js → standalone-update-F6SRKPSD.js} +28 -28
  206. package/chunks/{startInteractiveUI-73EGLIIH.js → startInteractiveUI-UEJQP7S3.js} +730 -397
  207. package/chunks/{syntheticOutput-34H7LGA7.js → syntheticOutput-LELY6HAI.js} +3 -3
  208. package/chunks/{task-create-FRGOEIKY.js → task-create-QY3BIMNM.js} +8 -7
  209. package/chunks/{task-list-OW766BXZ.js → task-list-D2U47WBJ.js} +6 -5
  210. package/chunks/{task-stop-SIR5SNBN.js → task-stop-N6E5IYLH.js} +2 -2
  211. package/chunks/{task-update-YRA532MT.js → task-update-HJCQILLB.js} +8 -7
  212. package/chunks/{team-create-PECAAPXK.js → team-create-4QBZVOGN.js} +26 -26
  213. package/chunks/{team-delete-6OSECUZC.js → team-delete-RCWYDRF4.js} +6 -5
  214. package/chunks/{team-plan-approval-L6F434RY.js → team-plan-approval-BK4CIOFV.js} +26 -26
  215. package/chunks/{theme-manager-ZG4RY6GU.js → theme-manager-5F2IGW6E.js} +27 -27
  216. package/chunks/{todoWrite-YDMFEV4G.js → todoWrite-FKCGATPJ.js} +4 -4
  217. package/chunks/{tool-search-THVIWAPB.js → tool-search-J2ESO33H.js} +9 -9
  218. package/chunks/{total-session-admission-JOKNRIIA.js → total-session-admission-U4LZ5QTQ.js} +33 -33
  219. package/chunks/tree-sitter-YJVE2ZUK.js +2980 -0
  220. package/chunks/{trustedFolders-EOGT3UVS.js → trustedFolders-TIDOXCJA.js} +29 -28
  221. package/chunks/types-ML3TRJQ5.js +16 -0
  222. package/chunks/{updateCheck-2KYEYVSB.js → updateCheck-VRVR26FI.js} +29 -29
  223. package/chunks/{validateNonInterActiveAuth-EN6ZQSR2.js → validateNonInterActiveAuth-UGKYAVLG.js} +75 -71
  224. package/chunks/{version-3UEA6ZIR.js → version-7HR6VZAT.js} +1 -1
  225. package/chunks/{web-fetch-PAAEQKBW.js → web-fetch-QGODBB6S.js} +5 -5
  226. package/chunks/{workflow-QCCCMYP3.js → workflow-EDQAITEW.js} +27 -27
  227. package/chunks/workspace-providers-status-27UGAK77.js +73 -0
  228. package/chunks/workspace-registration-store-5H7577YQ.js +27 -0
  229. package/chunks/{workspace-registry-24QFLQYH.js → workspace-registry-F3THGAXC.js} +33 -33
  230. package/chunks/workspace-service-4JSAQAHP.js +86 -0
  231. package/chunks/workspace-skills-status-5JTWZHZU.js +72 -0
  232. package/chunks/{write-file-I3MUDRIE.js → write-file-UY6XCZZM.js} +27 -27
  233. package/chunks/{zh-RQE7I22T.js → zh-FSAH32JB.js} +6 -2
  234. package/chunks/{zh-TW-TBPQGHKH.js → zh-TW-D2YIE2LO.js} +6 -2
  235. package/cli.js +11 -11
  236. package/locales/ca.js +6 -0
  237. package/locales/de.js +6 -0
  238. package/locales/en.js +8 -0
  239. package/locales/fr.js +6 -0
  240. package/locales/ja.js +7 -1
  241. package/locales/pt.js +6 -0
  242. package/locales/ru.js +6 -0
  243. package/locales/zh-TW.js +9 -1
  244. package/locales/zh.js +9 -1
  245. package/package.json +3 -3
  246. package/web-shell/assets/{arc-C15hqnJe.js → arc-CObt_TK9.js} +1 -1
  247. package/web-shell/assets/{architectureDiagram-3BPJPVTR-B-At37J_.js → architectureDiagram-3BPJPVTR-B7aiJ6CK.js} +1 -1
  248. package/web-shell/assets/{blockDiagram-GPEHLZMM-B51wjcU7.js → blockDiagram-GPEHLZMM-BSK2CrID.js} +1 -1
  249. package/web-shell/assets/{c4Diagram-AAUBKEIU-xBK7BAwN.js → c4Diagram-AAUBKEIU-Bhx2p7T_.js} +1 -1
  250. package/web-shell/assets/channel-BBaLq8MV.js +1 -0
  251. package/web-shell/assets/{chunk-2J33WTMH-xKmLg7Yr.js → chunk-2J33WTMH-c3Hzv0Ni.js} +1 -1
  252. package/web-shell/assets/{chunk-4BX2VUAB-BfkdKZCM.js → chunk-4BX2VUAB-DNXaK7ZF.js} +1 -1
  253. package/web-shell/assets/{chunk-55IACEB6-DT713sZf.js → chunk-55IACEB6-BXjvDj_i.js} +1 -1
  254. package/web-shell/assets/{chunk-727SXJPM-CYEeAamv.js → chunk-727SXJPM-B6CaKFp-.js} +1 -1
  255. package/web-shell/assets/{chunk-AQP2D5EJ-DBN-5CFd.js → chunk-AQP2D5EJ-tij6Mz9B.js} +1 -1
  256. package/web-shell/assets/{chunk-FMBD7UC4-CGZKk4PH.js → chunk-FMBD7UC4-DdlsGk2h.js} +1 -1
  257. package/web-shell/assets/{chunk-ND2GUHAM-qQbC2O-y.js → chunk-ND2GUHAM-CdgGZSHE.js} +1 -1
  258. package/web-shell/assets/{chunk-QZHKN3VN-B3zeXwsX.js → chunk-QZHKN3VN-D8oJn1C0.js} +1 -1
  259. package/web-shell/assets/classDiagram-4FO5ZUOK-B2ZK6sWE.js +1 -0
  260. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B2ZK6sWE.js +1 -0
  261. package/web-shell/assets/{cose-bilkent-S5V4N54A-BKsl1Wvy.js → cose-bilkent-S5V4N54A-BUVmNp1Y.js} +1 -1
  262. package/web-shell/assets/{dagre-BM42HDAG-CuuuLiBK.js → dagre-BM42HDAG-CO4q310O.js} +1 -1
  263. package/web-shell/assets/{diagram-2AECGRRQ-CG4_eKiV.js → diagram-2AECGRRQ-C6gFvWkg.js} +1 -1
  264. package/web-shell/assets/{diagram-5GNKFQAL-DSFTmZB1.js → diagram-5GNKFQAL-NG2I_c0h.js} +1 -1
  265. package/web-shell/assets/{diagram-KO2AKTUF-BxwlEHn8.js → diagram-KO2AKTUF-DFKMS6I9.js} +1 -1
  266. package/web-shell/assets/{diagram-LMA3HP47-BUAg-jMG.js → diagram-LMA3HP47-BiElfsfP.js} +1 -1
  267. package/web-shell/assets/{diagram-OG6HWLK6-BFM2jlO5.js → diagram-OG6HWLK6-zLWDYUqu.js} +1 -1
  268. package/web-shell/assets/{erDiagram-TEJ5UH35-CerbFPa2.js → erDiagram-TEJ5UH35-DoVaazhK.js} +1 -1
  269. package/web-shell/assets/{flowDiagram-I6XJVG4X-BNeZz5Zz.js → flowDiagram-I6XJVG4X-0RLz-mXg.js} +1 -1
  270. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CTOogLaM.js → ganttDiagram-6RSMTGT7-C-eX1A39.js} +3 -3
  271. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-yxSFkXPj.js → gitGraphDiagram-PVQCEYII-BauQu1Bu.js} +1 -1
  272. package/web-shell/assets/index-3uAT3ehO.css +5 -0
  273. package/web-shell/assets/index-CVHa2QH7.js +3 -0
  274. package/web-shell/assets/index-D1KigWat.js +1128 -0
  275. package/web-shell/assets/{infoDiagram-5YYISTIA-DYdAUevm.js → infoDiagram-5YYISTIA-C800cFvZ.js} +1 -1
  276. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CNuijZ90.js → ishikawaDiagram-YF4QCWOH-CFK1Jk6e.js} +1 -1
  277. package/web-shell/assets/{journeyDiagram-JHISSGLW-BTyiuonf.js → journeyDiagram-JHISSGLW-Cjx0WAC4.js} +1 -1
  278. package/web-shell/assets/{kanban-definition-UN3LZRKU-DPJo0Uow.js → kanban-definition-UN3LZRKU-DWMDHbiv.js} +1 -1
  279. package/web-shell/assets/{linear-C8wKCbIC.js → linear-vpW4FrZs.js} +1 -1
  280. package/web-shell/assets/{mermaid.core-BV5o7nW5.js → mermaid.core-DsHRUnDd.js} +5 -5
  281. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BtLcBmSt.js → mindmap-definition-RKZ34NQL-D3Eb1cAK.js} +1 -1
  282. package/web-shell/assets/{pieDiagram-4H26LBE5-C22J7A9Q.js → pieDiagram-4H26LBE5-Cr2-6sWt.js} +1 -1
  283. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DSL10wiL.js → quadrantDiagram-W4KKPZXB-Yd7yUgVp.js} +1 -1
  284. package/web-shell/assets/{requirementDiagram-4Y6WPE33-feqh0UpX.js → requirementDiagram-4Y6WPE33-BE6SprL8.js} +1 -1
  285. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Z4OVaWaZ.js → sankeyDiagram-5OEKKPKP-DzkuMK8d.js} +1 -1
  286. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DIluIcb1.js → sequenceDiagram-3UESZ5HK-wD9A3Dhi.js} +1 -1
  287. package/web-shell/assets/{stateDiagram-AJRCARHV-hlhnuoYH.js → stateDiagram-AJRCARHV-BOp5q1Nm.js} +1 -1
  288. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BDsWUmPG.js +1 -0
  289. package/web-shell/assets/{timeline-definition-PNZ67QCA-Dqf_CqgL.js → timeline-definition-PNZ67QCA-Btc08sUA.js} +1 -1
  290. package/web-shell/assets/{vennDiagram-CIIHVFJN-DD2QhaTX.js → vennDiagram-CIIHVFJN-Bv6upsOA.js} +1 -1
  291. package/web-shell/assets/{wardley-L42UT6IY-B2uI85U_.js → wardley-L42UT6IY-D-XamnCK.js} +1 -1
  292. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-U1aJX71g.js → wardleyDiagram-YWT4CUSO-BbP_5Wfp.js} +1 -1
  293. package/web-shell/assets/{xychartDiagram-2RQKCTM6-C0ODHUee.js → xychartDiagram-2RQKCTM6-CO5Hh28b.js} +1 -1
  294. package/web-shell/index.html +2 -2
  295. package/chunks/chunk-CU3L64TP.js +0 -93
  296. package/chunks/initializer-UTQ7FB7G.js +0 -71
  297. package/chunks/list-DEICDL65.js +0 -74
  298. package/chunks/loadedSettingsAdapter-NOWEGDYJ.js +0 -68
  299. package/chunks/mcp-L5JXEEIA.js +0 -68
  300. package/chunks/nonInteractiveCli-LS2K4X6A.js +0 -124
  301. package/chunks/types-JNKGKUJT.js +0 -12
  302. package/chunks/workspace-providers-status-4KMGETOJ.js +0 -71
  303. package/chunks/workspace-service-RVLBMSMZ.js +0 -80
  304. package/chunks/workspace-skills-status-DS4ZVFTO.js +0 -70
  305. package/web-shell/assets/channel-CLiQD50f.js +0 -1
  306. package/web-shell/assets/classDiagram-4FO5ZUOK-D3sYqow5.js +0 -1
  307. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-D3sYqow5.js +0 -1
  308. package/web-shell/assets/index-D5IWFVk1.css +0 -5
  309. package/web-shell/assets/index-KFJRDhX7.js +0 -783
  310. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BhQMwgpl.js +0 -1
@@ -0,0 +1,74 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-5O2XNYP6.js";
6
+ import {
7
+ __name
8
+ } from "./chunk-J2S4EL5Y.js";
9
+
10
+ // packages/cli/src/config/storage-paths-lite.ts
11
+ init_esbuild_shims();
12
+ import * as os from "node:os";
13
+ import * as path from "node:path";
14
+ var SETTINGS_DIRECTORY_NAME = ".qwen";
15
+ function resolveConfigPathLite(dir, cwd) {
16
+ let resolved = dir;
17
+ if (resolved === "~" || resolved.startsWith("~/") || resolved.startsWith("~\\")) {
18
+ const relativeSegments = resolved === "~" ? [] : resolved.slice(2).split(/[/\\]+/).filter(Boolean);
19
+ resolved = path.join(os.homedir(), ...relativeSegments);
20
+ }
21
+ if (!path.isAbsolute(resolved)) {
22
+ resolved = path.resolve(cwd || process.cwd(), resolved);
23
+ }
24
+ return resolved;
25
+ }
26
+ __name(resolveConfigPathLite, "resolveConfigPathLite");
27
+ function getGlobalQwenDirLite() {
28
+ const envDir = process.env["QWEN_HOME"];
29
+ if (envDir) {
30
+ return resolveConfigPathLite(envDir);
31
+ }
32
+ const homeDir = os.homedir();
33
+ if (!homeDir) {
34
+ return path.join(os.tmpdir(), SETTINGS_DIRECTORY_NAME);
35
+ }
36
+ return path.join(homeDir, SETTINGS_DIRECTORY_NAME);
37
+ }
38
+ __name(getGlobalQwenDirLite, "getGlobalQwenDirLite");
39
+ function getSystemSettingsPath() {
40
+ if (process.env["QWEN_CODE_SYSTEM_SETTINGS_PATH"]) {
41
+ return process.env["QWEN_CODE_SYSTEM_SETTINGS_PATH"];
42
+ }
43
+ if (os.platform() === "darwin") {
44
+ return "/Library/Application Support/QwenCode/settings.json";
45
+ }
46
+ if (os.platform() === "win32") {
47
+ return "C:\\ProgramData\\qwen-code\\settings.json";
48
+ }
49
+ return "/etc/qwen-code/settings.json";
50
+ }
51
+ __name(getSystemSettingsPath, "getSystemSettingsPath");
52
+ function getSystemDefaultsPath() {
53
+ if (process.env["QWEN_CODE_SYSTEM_DEFAULTS_PATH"]) {
54
+ return process.env["QWEN_CODE_SYSTEM_DEFAULTS_PATH"];
55
+ }
56
+ return path.join(
57
+ path.dirname(getSystemSettingsPath()),
58
+ "system-defaults.json"
59
+ );
60
+ }
61
+ __name(getSystemDefaultsPath, "getSystemDefaultsPath");
62
+
63
+ export {
64
+ SETTINGS_DIRECTORY_NAME,
65
+ resolveConfigPathLite,
66
+ getGlobalQwenDirLite,
67
+ getSystemSettingsPath,
68
+ getSystemDefaultsPath
69
+ };
70
+ /**
71
+ * @license
72
+ * Copyright 2025 Qwen Team
73
+ * SPDX-License-Identifier: Apache-2.0
74
+ */
@@ -3,24 +3,24 @@
3
3
  import {
4
4
  AUTO_THEME_NAME,
5
5
  themeManager
6
- } from "./chunk-MXL5UP4X.js";
6
+ } from "./chunk-Q6TUALBE.js";
7
7
  import {
8
8
  initializeI18n,
9
9
  resolveLanguageSetting,
10
10
  t
11
- } from "./chunk-YAUFFXDS.js";
11
+ } from "./chunk-UZKG7HFG.js";
12
12
  import {
13
13
  IdeClient
14
- } from "./chunk-NVYTCB5Z.js";
14
+ } from "./chunk-XCR44EEA.js";
15
15
  import {
16
16
  AuthEvent,
17
17
  IdeConnectionEvent,
18
18
  logAuth,
19
19
  logIdeConnection
20
- } from "./chunk-3VAGG5T5.js";
20
+ } from "./chunk-BYOOK22F.js";
21
21
  import {
22
22
  getErrorMessage
23
- } from "./chunk-J4TSQ5EQ.js";
23
+ } from "./chunk-7NFB7LBQ.js";
24
24
  import {
25
25
  init_esbuild_shims
26
26
  } from "./chunk-5O2XNYP6.js";
@@ -2,19 +2,19 @@
2
2
  "use strict";
3
3
  import {
4
4
  getErrorMessage
5
- } from "./chunk-VA4KQY6V.js";
5
+ } from "./chunk-MEK7CQJR.js";
6
6
  import {
7
7
  extensionToOutputString,
8
8
  getExtensionManager
9
- } from "./chunk-P67PFTUT.js";
9
+ } from "./chunk-EPY4ZEU6.js";
10
10
  import {
11
11
  loadSettings
12
- } from "./chunk-4C5BQ2D2.js";
12
+ } from "./chunk-CQQD7MDG.js";
13
13
  import {
14
14
  initializeI18n,
15
15
  resolveLanguageSetting,
16
16
  t
17
- } from "./chunk-YAUFFXDS.js";
17
+ } from "./chunk-UZKG7HFG.js";
18
18
  import {
19
19
  writeStderrLine,
20
20
  writeStdoutLine
@@ -2,19 +2,19 @@
2
2
  "use strict";
3
3
  import {
4
4
  getEffectiveSupportedModes
5
- } from "./chunk-GWLSNBG4.js";
5
+ } from "./chunk-VQLRHJKL.js";
6
6
  import {
7
7
  require_jsx_runtime
8
- } from "./chunk-CNEIYWSA.js";
8
+ } from "./chunk-UKWAQ7AV.js";
9
9
  import {
10
10
  require_react
11
11
  } from "./chunk-HTHUX2T5.js";
12
12
  import {
13
13
  getCachedStringWidth
14
- } from "./chunk-Q6I5QHMH.js";
14
+ } from "./chunk-FGTCZJOD.js";
15
15
  import {
16
16
  uiTelemetryService
17
- } from "./chunk-3VAGG5T5.js";
17
+ } from "./chunk-BYOOK22F.js";
18
18
  import {
19
19
  init_esbuild_shims
20
20
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,11 @@
2
2
  "use strict";
3
3
  import {
4
4
  relaunchApp
5
- } from "./chunk-VTU57BWZ.js";
5
+ } from "./chunk-JEKOCLRN.js";
6
+ import {
7
+ MINIMUM_MAX_HEIGHT,
8
+ MaxSizedBox
9
+ } from "./chunk-5SQ55XJZ.js";
6
10
  import {
7
11
  CODE_FENCE_RE,
8
12
  TABLE_MAX_ROW_LINES,
@@ -16,7 +20,7 @@ import {
16
20
  getCommandSubcommandNames,
17
21
  splitMarkdownTableRow,
18
22
  useSessionStats
19
- } from "./chunk-AURZZYMD.js";
23
+ } from "./chunk-IQOOJSPR.js";
20
24
  import {
21
25
  Colors,
22
26
  RowMouseController,
@@ -25,7 +29,7 @@ import {
25
29
  useMouseEvents,
26
30
  useSettings,
27
31
  useTerminalSize
28
- } from "./chunk-JZETEN3Z.js";
32
+ } from "./chunk-ZNCLTRNU.js";
29
33
  import {
30
34
  CompactToolGroupDisplay,
31
35
  SCREEN_READER_MODEL_PREFIX,
@@ -48,14 +52,7 @@ import {
48
52
  levelLabel,
49
53
  useKeypress,
50
54
  wrapForMultiplexer
51
- } from "./chunk-GWLSNBG4.js";
52
- import {
53
- isTerminalGoalStatusKind
54
- } from "./chunk-7X7TEQNX.js";
55
- import {
56
- MINIMUM_MAX_HEIGHT,
57
- MaxSizedBox
58
- } from "./chunk-HVY356M2.js";
55
+ } from "./chunk-VQLRHJKL.js";
59
56
  import {
60
57
  Box_default,
61
58
  Static,
@@ -65,53 +62,57 @@ import {
65
62
  theme,
66
63
  use_is_screen_reader_enabled_default,
67
64
  use_stdin_default
68
- } from "./chunk-CNEIYWSA.js";
65
+ } from "./chunk-UKWAQ7AV.js";
66
+ import {
67
+ isTerminalGoalStatusKind
68
+ } from "./chunk-7X7TEQNX.js";
69
69
  import {
70
70
  require_react
71
71
  } from "./chunk-HTHUX2T5.js";
72
72
  import {
73
73
  resolveColor,
74
74
  themeManager
75
- } from "./chunk-MXL5UP4X.js";
75
+ } from "./chunk-Q6TUALBE.js";
76
76
  import {
77
77
  cpLen,
78
78
  cpSlice,
79
79
  escapeAnsiCtrlCodes,
80
80
  getCachedStringWidth,
81
+ sanitizeMultilineForDisplay,
81
82
  sanitizeSensitiveText,
82
83
  sanitizeTerminalText,
83
84
  stringWidth,
84
85
  stripUnsafeCharacters,
85
86
  toCodePoints,
86
87
  wrapToVisualLines
87
- } from "./chunk-Q6I5QHMH.js";
88
+ } from "./chunk-FGTCZJOD.js";
88
89
  import {
89
90
  eastAsianWidth
90
91
  } from "./chunk-QHTIBUWB.js";
91
- import {
92
- require_has_flag,
93
- require_source
94
- } from "./chunk-57OAHC2Y.js";
95
92
  import {
96
93
  formatDuration,
97
94
  formatMemoryUsage,
98
95
  formatRelativeTime,
99
96
  formatTokenCount
100
97
  } from "./chunk-E5Z2AVNV.js";
98
+ import {
99
+ require_has_flag,
100
+ require_source
101
+ } from "./chunk-57OAHC2Y.js";
101
102
  import {
102
103
  createLoadedSettingsAdapter
103
- } from "./chunk-BMGVRZN4.js";
104
+ } from "./chunk-AETEZU4U.js";
104
105
  import {
105
106
  getPersistScopeForModelSelection
106
- } from "./chunk-4C5BQ2D2.js";
107
+ } from "./chunk-CQQD7MDG.js";
107
108
  import {
108
109
  getCurrentLanguage,
109
110
  localizeToolDisplayName,
110
111
  t
111
- } from "./chunk-YAUFFXDS.js";
112
+ } from "./chunk-UZKG7HFG.js";
112
113
  import {
113
114
  isWorkspaceTrusted
114
- } from "./chunk-HKMAENAO.js";
115
+ } from "./chunk-W2U4RJJU.js";
115
116
  import {
116
117
  ALL_PROVIDERS,
117
118
  IdeClient,
@@ -132,21 +133,21 @@ import {
132
133
  resolveMetadataKey,
133
134
  resolveOwnsModel,
134
135
  stripAnsi
135
- } from "./chunk-NVYTCB5Z.js";
136
+ } from "./chunk-XCR44EEA.js";
136
137
  import {
137
138
  MAIN_SOURCE,
138
139
  getMCPServerStatus
139
- } from "./chunk-3VAGG5T5.js";
140
+ } from "./chunk-BYOOK22F.js";
140
141
  import {
141
142
  ToolDisplayNames,
142
143
  ToolNames,
143
144
  ToolNamesMigration
144
- } from "./chunk-B5ORX3FG.js";
145
+ } from "./chunk-JGUT3LWZ.js";
145
146
  import {
146
147
  createDebugLogger,
147
148
  escapePath,
148
149
  unescapePath
149
- } from "./chunk-J4TSQ5EQ.js";
150
+ } from "./chunk-7NFB7LBQ.js";
150
151
  import {
151
152
  init_esbuild_shims
152
153
  } from "./chunk-5O2XNYP6.js";
@@ -7356,6 +7357,7 @@ var AssistantMessageContent = /* @__PURE__ */ __name(({
7356
7357
  }
7357
7358
  ), "AssistantMessageContent");
7358
7359
  var MAX_STREAMING_THINKING_VISUAL_LINES = 4;
7360
+ var BRIEF_THOUGHT_THRESHOLD_MS = 1e3;
7359
7361
  function tailVisualLines(text, width, maxLines) {
7360
7362
  const charBudget = maxLines * width * 2;
7361
7363
  let sliceStart = Math.max(0, text.length - charBudget);
@@ -7369,6 +7371,31 @@ function tailVisualLines(text, width, maxLines) {
7369
7371
  return lines.slice(-maxLines).join("\n");
7370
7372
  }
7371
7373
  __name(tailVisualLines, "tailVisualLines");
7374
+ var ThinkBody = /* @__PURE__ */ __name(({ text, isPending, expanded, availableTerminalHeight, contentWidth }) => {
7375
+ if (!isPending && !expanded) return null;
7376
+ if (isPending && !expanded) {
7377
+ const innerWidth = Math.max(contentWidth - 2, 20);
7378
+ const maxLines = availableTerminalHeight != null ? Math.max(
7379
+ 1,
7380
+ Math.min(
7381
+ MAX_STREAMING_THINKING_VISUAL_LINES,
7382
+ Math.floor(availableTerminalHeight / 3)
7383
+ )
7384
+ ) : MAX_STREAMING_THINKING_VISUAL_LINES;
7385
+ const display = tailVisualLines(text, innerWidth, maxLines);
7386
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Text, { dimColor: true, wrap: "truncate", children: display }) });
7387
+ }
7388
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Box_default, { paddingLeft: 2, flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
7389
+ MarkdownDisplay,
7390
+ {
7391
+ text,
7392
+ isPending,
7393
+ availableTerminalHeight,
7394
+ contentWidth: contentWidth - 2,
7395
+ textColor: theme.text.secondary
7396
+ }
7397
+ ) });
7398
+ }, "ThinkBody");
7372
7399
  var ThinkMessage = /* @__PURE__ */ __name(({
7373
7400
  text,
7374
7401
  isPending,
@@ -7379,54 +7406,35 @@ var ThinkMessage = /* @__PURE__ */ __name(({
7379
7406
  clickable = false
7380
7407
  }) => {
7381
7408
  const durationSuffix = durationMs != null ? ` ${formatDuration2(durationMs)}` : "";
7409
+ const completedLabel = durationMs == null ? null : durationMs < BRIEF_THOUGHT_THRESHOLD_MS ? t("Thought briefly") : `${t("Thought for")} ${formatDuration2(durationMs)}`;
7382
7410
  if (!isPending && !expanded) {
7383
- const label = durationMs != null ? `${t("Thought for")} ${formatDuration2(durationMs)}` : t("Thinking");
7411
+ const label2 = completedLabel ?? t("Thinking");
7384
7412
  const hint = clickable ? t("(click or {{keyHint}} to expand)", { keyHint: toggleKeyHint }) : t("({{keyHint}} to expand)", { keyHint: toggleKeyHint });
7385
7413
  return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Text, { dimColor: true, italic: true, children: [
7386
7414
  THINKING_ICON,
7387
- label,
7415
+ label2,
7388
7416
  " ",
7389
7417
  hint
7390
7418
  ] });
7391
7419
  }
7392
- if (isPending) {
7393
- const innerWidth = Math.max(contentWidth - 2, 20);
7394
- const maxLines = availableTerminalHeight != null ? Math.max(
7395
- 1,
7396
- Math.min(
7397
- MAX_STREAMING_THINKING_VISUAL_LINES,
7398
- Math.floor(availableTerminalHeight / 3)
7399
- )
7400
- ) : MAX_STREAMING_THINKING_VISUAL_LINES;
7401
- const display = tailVisualLines(text, innerWidth, maxLines);
7402
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Box_default, { flexDirection: "column", children: [
7403
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Text, { dimColor: true, italic: true, children: [
7404
- THINKING_ICON_PENDING,
7405
- t("Thinking"),
7406
- "\u2026",
7407
- durationSuffix
7408
- ] }),
7409
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Text, { dimColor: true, wrap: "truncate", children: display }) })
7410
- ] });
7411
- }
7412
- const expandedLabel = durationMs != null ? `${t("Thought for")} ${formatDuration2(durationMs)}` : `${t("Thinking")}\u2026`;
7420
+ const label = isPending ? `${t("Thinking")}\u2026${durationSuffix}` : completedLabel ?? `${t("Thinking")}\u2026`;
7421
+ const collapseHint = !isPending && expanded ? ` ${t("({{keyHint}} to collapse)", { keyHint: toggleKeyHint })}` : "";
7413
7422
  return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Box_default, { flexDirection: "column", children: [
7414
7423
  /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Text, { dimColor: true, italic: true, children: [
7415
- THINKING_ICON,
7416
- expandedLabel,
7417
- " ",
7418
- t("({{keyHint}} to collapse)", { keyHint: toggleKeyHint })
7424
+ isPending ? THINKING_ICON_PENDING : THINKING_ICON,
7425
+ label,
7426
+ collapseHint
7419
7427
  ] }),
7420
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Box_default, { paddingLeft: 2, flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
7421
- MarkdownDisplay,
7428
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
7429
+ ThinkBody,
7422
7430
  {
7423
7431
  text,
7424
- isPending: false,
7432
+ isPending,
7433
+ expanded,
7425
7434
  availableTerminalHeight,
7426
- contentWidth: contentWidth - 2,
7427
- textColor: theme.text.secondary
7435
+ contentWidth
7428
7436
  }
7429
- ) })
7437
+ )
7430
7438
  ] });
7431
7439
  }, "ThinkMessage");
7432
7440
  var ThinkMessageContent = /* @__PURE__ */ __name(({
@@ -7435,33 +7443,16 @@ var ThinkMessageContent = /* @__PURE__ */ __name(({
7435
7443
  expanded = false,
7436
7444
  availableTerminalHeight,
7437
7445
  contentWidth
7438
- }) => {
7439
- if (!isPending && !expanded) {
7440
- return null;
7441
- }
7442
- if (isPending) {
7443
- const innerWidth = Math.max(contentWidth - 2, 20);
7444
- const maxLines = availableTerminalHeight != null ? Math.max(
7445
- 1,
7446
- Math.min(
7447
- MAX_STREAMING_THINKING_VISUAL_LINES,
7448
- Math.floor(availableTerminalHeight / 3)
7449
- )
7450
- ) : MAX_STREAMING_THINKING_VISUAL_LINES;
7451
- const display = tailVisualLines(text, innerWidth, maxLines);
7452
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Text, { dimColor: true, wrap: "truncate", children: display }) });
7446
+ }) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
7447
+ ThinkBody,
7448
+ {
7449
+ text,
7450
+ isPending,
7451
+ expanded,
7452
+ availableTerminalHeight,
7453
+ contentWidth
7453
7454
  }
7454
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Box_default, { paddingLeft: 2, flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
7455
- MarkdownDisplay,
7456
- {
7457
- text,
7458
- isPending: false,
7459
- availableTerminalHeight,
7460
- contentWidth: contentWidth - 2,
7461
- textColor: theme.text.secondary
7462
- }
7463
- ) });
7464
- }, "ThinkMessageContent");
7455
+ ), "ThinkMessageContent");
7465
7456
 
7466
7457
  // packages/cli/src/ui/components/messages/ToolGroupMessage.tsx
7467
7458
  init_esbuild_shims();
@@ -12307,12 +12298,22 @@ var ShellInputPrompt = /* @__PURE__ */ __name(({
12307
12298
  return null;
12308
12299
  }, "ShellInputPrompt");
12309
12300
 
12301
+ // packages/cli/src/ui/utils/tool-display-map.ts
12302
+ init_esbuild_shims();
12303
+ var TOOL_DISPLAY_BY_NAME = Object.fromEntries(
12304
+ Object.keys(ToolNames).map((key) => [
12305
+ ToolNames[key],
12306
+ ToolDisplayNames[key]
12307
+ ])
12308
+ );
12309
+
12310
12310
  // packages/cli/src/ui/components/messages/ToolMessage.tsx
12311
12311
  var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
12312
12312
  var AGENT_TOOL_NAMES = /* @__PURE__ */ new Set([
12313
12313
  ToolNames.AGENT,
12314
12314
  ...Object.entries(ToolNamesMigration).filter(([, canonical]) => canonical === ToolNames.AGENT).map(([legacy]) => legacy)
12315
12315
  ]);
12316
+ var APPROVAL_CONTEXT_CALLS = 3;
12316
12317
  var STATIC_HEIGHT = 1;
12317
12318
  var RESERVED_LINE_COUNT = 5;
12318
12319
  var MIN_LINES_SHOWN = 2;
@@ -12431,21 +12432,42 @@ var PlanResultRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childW
12431
12432
  childWidth
12432
12433
  }
12433
12434
  ), "PlanResultRenderer");
12435
+ var priorApprovalCalls = /* @__PURE__ */ __name((data) => (data.toolCalls ?? []).filter((call) => call.status !== "awaiting_approval").slice(-APPROVAL_CONTEXT_CALLS), "priorApprovalCalls");
12436
+ var SubagentApprovalContext = /* @__PURE__ */ __name(({ data }) => {
12437
+ const priorCalls = priorApprovalCalls(data);
12438
+ if (priorCalls.length === 0) return null;
12439
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { flexDirection: "column", children: priorCalls.map((call) => {
12440
+ const glyph = call.status === "failed" ? "\u2716" : call.status === "success" ? "\u2714" : "\u25CB";
12441
+ const displayName = localizeToolDisplayName(
12442
+ TOOL_DISPLAY_BY_NAME[call.name] ?? call.name
12443
+ );
12444
+ const desc = (call.description ?? "").replace(/\s*\n\s*/g, " ").trim();
12445
+ const label = desc ? `${displayName} ${desc}` : displayName;
12446
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: ` ${glyph} ${sanitizeMultilineForDisplay(label)}` }) }, call.callId);
12447
+ }) });
12448
+ }, "SubagentApprovalContext");
12434
12449
  var SubagentExecutionRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childWidth, config, isFocused }) => {
12435
12450
  if (data.pendingConfirmation && isFocused) {
12436
12451
  const agentLabel = escapeAnsiCtrlCodes(data.subagentName || "agent");
12452
+ const HEADER_LINES = 1;
12453
+ const contextLines = priorApprovalCalls(data).length;
12454
+ const confirmationHeight = availableHeight !== void 0 ? Math.max(
12455
+ MINIMUM_MAX_HEIGHT,
12456
+ availableHeight - contextLines - HEADER_LINES
12457
+ ) : availableHeight;
12437
12458
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 1, children: [
12438
12459
  /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { children: [
12439
12460
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { color: theme.text.secondary, children: "Approval requested by " }),
12440
12461
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { bold: true, color: theme.text.accent, children: agentLabel }),
12441
12462
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { color: theme.text.secondary, children: ":" })
12442
12463
  ] }),
12464
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SubagentApprovalContext, { data }),
12443
12465
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
12444
12466
  ToolConfirmationMessage,
12445
12467
  {
12446
12468
  confirmationDetails: data.pendingConfirmation,
12447
12469
  isFocused,
12448
- availableTerminalHeight: availableHeight,
12470
+ availableTerminalHeight: confirmationHeight,
12449
12471
  contentWidth: childWidth - 2,
12450
12472
  compactMode: true,
12451
12473
  config
@@ -12774,12 +12796,6 @@ function isAgentResult(rd) {
12774
12796
  return typeof rd === "object" && rd !== null && "type" in rd && rd.type === "task_execution";
12775
12797
  }
12776
12798
  __name(isAgentResult, "isAgentResult");
12777
- var TOOL_DISPLAY_BY_NAME = Object.fromEntries(
12778
- Object.keys(ToolNames).map((key) => [
12779
- ToolNames[key],
12780
- ToolDisplayNames[key]
12781
- ])
12782
- );
12783
12799
  function activityLabel(row) {
12784
12800
  const last = row.recentActivity;
12785
12801
  if (!last) return "";
@@ -12906,7 +12922,7 @@ var AgentRow = /* @__PURE__ */ __name(({ row, now }) => {
12906
12922
  const { glyph, color } = statusGlyph(row.status);
12907
12923
  const safeName = escapeAnsiCtrlCodes(row.name);
12908
12924
  const displayName = truncateMiddle(safeName, NAME_COL_WIDTH);
12909
- const activity = escapeAnsiCtrlCodes(activityLabel(row));
12925
+ const activity = sanitizeMultilineForDisplay(activityLabel(row));
12910
12926
  const elapsed = elapsedLabel(row, now);
12911
12927
  const tokens = row.tokenCount && row.tokenCount > 0 ? formatTokenCount(row.tokenCount) : "";
12912
12928
  const trailingParts = [];
@@ -15564,6 +15580,7 @@ var ExtensionsList = /* @__PURE__ */ __name(() => {
15564
15580
  break;
15565
15581
  case "update available" /* UPDATE_AVAILABLE */:
15566
15582
  case "updated, needs restart" /* UPDATED_NEEDS_RESTART */:
15583
+ case "updated with warnings" /* UPDATED_WITH_WARNINGS */:
15567
15584
  stateColor = "yellow";
15568
15585
  break;
15569
15586
  case "error" /* ERROR */:
@@ -17646,6 +17663,7 @@ export {
17646
17663
  renderSoftwareCursor,
17647
17664
  TextInput,
17648
17665
  ToolConfirmationMessage,
17666
+ TOOL_DISPLAY_BY_NAME,
17649
17667
  dist_default,
17650
17668
  AboutBox,
17651
17669
  dist_default2,
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  runExitCleanup
5
- } from "./chunk-ECNYL4AA.js";
5
+ } from "./chunk-OPNPGO6D.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-J4TSQ5EQ.js";
5
+ } from "./chunk-7NFB7LBQ.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -15562,6 +15562,10 @@ function hasCycleInSchema(schema) {
15562
15562
  return traverse(schema, /* @__PURE__ */ new Set(), /* @__PURE__ */ new Set());
15563
15563
  }
15564
15564
  __name(hasCycleInSchema, "hasCycleInSchema");
15565
+ function isShellProgressData(display) {
15566
+ return typeof display === "object" && display !== null && "type" in display && display.type === "shell_progress";
15567
+ }
15568
+ __name(isShellProgressData, "isShellProgressData");
15565
15569
  var ToolConfirmationOutcome = /* @__PURE__ */ ((ToolConfirmationOutcome2) => {
15566
15570
  ToolConfirmationOutcome2["ProceedOnce"] = "proceed_once";
15567
15571
  ToolConfirmationOutcome2["ProceedAlways"] = "proceed_always";
@@ -15723,6 +15727,7 @@ export {
15723
15727
  BaseDeclarativeTool,
15724
15728
  isTool,
15725
15729
  hasCycleInSchema,
15730
+ isShellProgressData,
15726
15731
  ToolConfirmationOutcome,
15727
15732
  Kind,
15728
15733
  MUTATOR_KINDS,
@@ -5,14 +5,14 @@ import {
5
5
  isTranscribableVoiceModel,
6
6
  readVoiceLanguage,
7
7
  resolveVoiceTransport
8
- } from "./chunk-HPDUL5MF.js";
8
+ } from "./chunk-AGZWN4WV.js";
9
9
  import {
10
10
  resolvePath
11
- } from "./chunk-LK7KUE55.js";
11
+ } from "./chunk-FSA7ERJ2.js";
12
12
  import {
13
13
  createDebugLogger,
14
14
  isSubpath
15
- } from "./chunk-J4TSQ5EQ.js";
15
+ } from "./chunk-7NFB7LBQ.js";
16
16
  import {
17
17
  init_esbuild_shims
18
18
  } from "./chunk-5O2XNYP6.js";
@@ -339,7 +339,7 @@ async function defaultLookupHost(hostname) {
339
339
  return dnsLookup(hostname, { all: true });
340
340
  }
341
341
  __name(defaultLookupHost, "defaultLookupHost");
342
- async function assertVoiceBaseUrlNetworkAllowed(voiceConfig, lookupHost) {
342
+ async function assertVoiceBaseUrlNetworkAllowed(voiceConfig, lookupHost, abortSignal) {
343
343
  const hostname = normalizeHostname(new URL(voiceConfig.baseUrl).hostname);
344
344
  if (isLoopbackHost(hostname)) {
345
345
  return;
@@ -353,12 +353,29 @@ async function assertVoiceBaseUrlNetworkAllowed(voiceConfig, lookupHost) {
353
353
  return;
354
354
  }
355
355
  let result;
356
+ let onAbort;
356
357
  try {
357
- result = await (lookupHost ?? defaultLookupHost)(hostname);
358
+ if (abortSignal?.aborted) {
359
+ throw abortSignal.reason;
360
+ }
361
+ const lookup = (lookupHost ?? defaultLookupHost)(hostname);
362
+ result = abortSignal ? await Promise.race([
363
+ lookup,
364
+ new Promise((_resolve, reject) => {
365
+ onAbort = /* @__PURE__ */ __name(() => reject(abortSignal.reason), "onAbort");
366
+ if (abortSignal.aborted) onAbort();
367
+ else abortSignal.addEventListener("abort", onAbort, { once: true });
368
+ })
369
+ ]) : await lookup;
358
370
  } catch {
371
+ if (abortSignal?.aborted) {
372
+ throw abortSignal.reason instanceof Error ? abortSignal.reason : new Error("Voice request was aborted.");
373
+ }
359
374
  throw new Error(
360
375
  `Voice model '${voiceConfig.model}': DNS lookup failed for ${hostname}. Cannot verify network safety.`
361
376
  );
377
+ } finally {
378
+ if (onAbort) abortSignal?.removeEventListener("abort", onAbort);
362
379
  }
363
380
  const records = Array.isArray(result) ? result : [result];
364
381
  if (records.some((record) => isPrivateNetworkIp(record.address))) {
@@ -649,7 +666,11 @@ async function transcribeViaQwenAsr(audio, voiceConfig, options, fetchFn) {
649
666
  __name(transcribeViaQwenAsr, "transcribeViaQwenAsr");
650
667
  async function transcribeVoiceAudio(audio, args) {
651
668
  const voiceConfig = resolveVoiceTranscriptionConfig(args);
652
- await assertVoiceBaseUrlNetworkAllowed(voiceConfig, args.lookupHost);
669
+ await assertVoiceBaseUrlNetworkAllowed(
670
+ voiceConfig,
671
+ args.lookupHost,
672
+ args.abortSignal
673
+ );
653
674
  const fetchFn = args.fetchFn ?? fetch;
654
675
  const language = resolveLanguageCode(readVoiceLanguage(args.settings));
655
676
  const keytermsContext = buildKeytermsContext(args.settings);
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  BaseJsonOutputAdapter
5
- } from "./chunk-B4G2WOFA.js";
5
+ } from "./chunk-FTU55ZZ7.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";