@qwen-code/qwen-code 0.19.9 → 0.19.10-nightly.20260716.506ce0a1a

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 (323) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +14 -6
  2. package/bundled/qc-helper/docs/features/approval-mode.md +2 -2
  3. package/bundled/qc-helper/docs/features/channels/dingtalk.md +33 -0
  4. package/bundled/qc-helper/docs/features/channels/overview.md +64 -20
  5. package/bundled/qc-helper/docs/features/channels/wecom.md +8 -7
  6. package/bundled/qc-helper/docs/features/code-review.md +88 -44
  7. package/bundled/qc-helper/docs/features/commands.md +6 -6
  8. package/bundled/qc-helper/docs/features/hooks.md +29 -0
  9. package/bundled/qc-helper/docs/features/sandbox.md +2 -0
  10. package/bundled/qc-helper/docs/features/sub-agents.md +21 -0
  11. package/bundled/qc-helper/docs/qwen-serve.md +49 -20
  12. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  13. package/bundled/review/DESIGN.md +219 -33
  14. package/bundled/review/SKILL.md +429 -382
  15. package/chunks/{MaxSizedBox-6HYJ3ZPJ.js → MaxSizedBox-WOC3YDWA.js} +31 -32
  16. package/chunks/{StandaloneSessionPicker-WS4GXYOG.js → StandaloneSessionPicker-H5HZCAFD.js} +49 -48
  17. package/chunks/{acpAgent-5FWSOZL5.js → acpAgent-55YDJDNM.js} +922 -550
  18. package/chunks/{agent-HOLHB3RT.js → agent-H6VE5W3L.js} +26 -27
  19. package/chunks/{agent-headless-SXL6H56A.js → agent-headless-T4XJOCRU.js} +26 -27
  20. package/chunks/{anthropicContentGenerator-L73TO3DB.js → anthropicContentGenerator-HBRXJSP4.js} +78 -16
  21. package/chunks/{artifact-tool-U7IRTLIV.js → artifact-tool-MIZLXBLF.js} +2 -2
  22. package/chunks/{askUserQuestion-2DLUUZZG.js → askUserQuestion-XMJVPNWM.js} +2 -2
  23. package/chunks/{bridge-BCJQ7BBB.js → bridge-FTB6ZP3R.js} +31 -34
  24. package/chunks/{ca-UJ6HC4H2.js → ca-CODEN7TD.js} +9 -1
  25. package/chunks/channel-worker-group-K7QKH6IG.js +13 -0
  26. package/chunks/channel-worker-manager-CUDPU4CN.js +418 -0
  27. package/chunks/channel-worker-supervisor-4XTO2ZD3.js +20 -0
  28. package/chunks/{chunk-LXNEJD34.js → chunk-2FO5GFKZ.js} +1 -1
  29. package/chunks/{chunk-VA4KQY6V.js → chunk-2JNR4VP2.js} +3 -3
  30. package/chunks/{chunk-L36P3NBD.js → chunk-2W3OOD4W.js} +2 -0
  31. package/chunks/{chunk-7R3CZA3Q.js → chunk-2Z5UX4KI.js} +1 -1
  32. package/chunks/{chunk-CUMMSHH6.js → chunk-3DWIFU7L.js} +1 -1
  33. package/chunks/chunk-3MX7D6QN.js +516 -0
  34. package/chunks/{chunk-SJHDYNHF.js → chunk-4BJVSIS3.js} +3 -3
  35. package/chunks/{chunk-TO6QE22P.js → chunk-5CNYZ7TN.js} +26 -22
  36. package/chunks/{chunk-N3EMS75V.js → chunk-5DEJ4T6C.js} +1333 -1232
  37. package/chunks/chunk-5HBA2Z7V.js +28 -0
  38. package/chunks/{chunk-ZJE7NSL3.js → chunk-5M6IDOMF.js} +34 -97
  39. package/chunks/{chunk-SCGXUJBT.js → chunk-6LI3L22E.js} +3 -3
  40. package/chunks/{chunk-K434OPES.js → chunk-6WPJRYLZ.js} +3 -3
  41. package/chunks/{chunk-YAUFFXDS.js → chunk-7GM2RWCR.js} +12 -11
  42. package/chunks/{chunk-OQ4DRIOA.js → chunk-7HWE2W74.js} +2 -2
  43. package/chunks/{chunk-J4TSQ5EQ.js → chunk-7NFB7LBQ.js} +8 -1
  44. package/chunks/{chunk-MC23XKFE.js → chunk-A2HWMJVO.js} +37 -3
  45. package/chunks/{chunk-3G7CIHVV.js → chunk-ABNYOMDG.js} +4 -4
  46. package/chunks/{chunk-3AHXV67U.js → chunk-AGZLXLBY.js} +1 -1
  47. package/chunks/{chunk-RDJSGHZE.js → chunk-ALGGS7UH.js} +1 -38
  48. package/chunks/{chunk-Q4YQW46J.js → chunk-AMRZVQUY.js} +43 -40
  49. package/chunks/{chunk-W3JHSWRP.js → chunk-AN6C2U46.js} +4 -4
  50. package/chunks/{chunk-GWHYEOV2.js → chunk-ARKANCNX.js} +2 -1
  51. package/chunks/{chunk-5SFOMFG4.js → chunk-AVEOWVOM.js} +36 -2
  52. package/chunks/{chunk-34MW4KTI.js → chunk-BA5JGE5F.js} +2 -2
  53. package/chunks/{chunk-5HOMWMCL.js → chunk-BSJAQUFD.js} +5492 -1336
  54. package/chunks/{chunk-L6P4KPHR.js → chunk-BWJKL5DB.js} +58 -38
  55. package/chunks/{chunk-PVZM22CK.js → chunk-C32JFRGV.js} +5 -5
  56. package/chunks/{chunk-AKIVHSJR.js → chunk-CZIHPO7L.js} +163 -782
  57. package/chunks/chunk-DL7RCO6V.js +493 -0
  58. package/chunks/{chunk-KKNMOEZH.js → chunk-E2UVIFI2.js} +185 -398
  59. package/chunks/{chunk-5VXNZWGF.js → chunk-ENUQSKEY.js} +1 -1
  60. package/chunks/{chunk-PDZ7MBDG.js → chunk-EWILX3BM.js} +27 -6
  61. package/chunks/{chunk-BMGVRZN4.js → chunk-EZWX232B.js} +1 -1
  62. package/chunks/{chunk-4GORAUCN.js → chunk-F333XEAU.js} +1 -1
  63. package/chunks/{chunk-YLV3XXFB.js → chunk-FBU7WRZI.js} +17 -1
  64. package/chunks/chunk-FEOZBUMT.js +77 -0
  65. package/chunks/{chunk-5U27BZ72.js → chunk-FKEGVMPX.js} +269 -83
  66. package/chunks/chunk-FNX3LGAK.js +34 -0
  67. package/chunks/{chunk-LK7KUE55.js → chunk-FSA7ERJ2.js} +1 -1
  68. package/chunks/{chunk-PODM4SZ4.js → chunk-G3BIBPI7.js} +5 -5
  69. package/chunks/{chunk-A3XKDTSH.js → chunk-GA65O2TB.js} +4 -4
  70. package/chunks/{chunk-3BTRNWWD.js → chunk-GOXKNSDZ.js} +1 -64
  71. package/chunks/{channel-worker-supervisor-WSOAAYUO.js → chunk-GXGIM7QP.js} +67 -35
  72. package/chunks/{chunk-6PESIEKJ.js → chunk-GXUWGPYX.js} +68 -6
  73. package/chunks/chunk-GYTKQYDB.js +23 -0
  74. package/chunks/{chunk-GZRTYZ2R.js → chunk-H3XMJV7T.js} +218 -1
  75. package/chunks/{chunk-WQUQVGTF.js → chunk-HGRXW4HQ.js} +467 -106
  76. package/chunks/{chunk-YVEDCAUE.js → chunk-HGT6JR3U.js} +19 -0
  77. package/chunks/{chunk-ECNYL4AA.js → chunk-HUEWOHKV.js} +1 -1
  78. package/chunks/chunk-IDS7MSUP.js +74 -0
  79. package/chunks/{chunk-KHUQZZJ6.js → chunk-IHDRJLLR.js} +382 -36
  80. package/chunks/{chunk-CLFKOZEK.js → chunk-J4SEAF4X.js} +114 -4
  81. package/chunks/{chunk-B5ORX3FG.js → chunk-JGUT3LWZ.js} +6 -1
  82. package/chunks/{chunk-P67PFTUT.js → chunk-KEYEYCHZ.js} +4 -4
  83. package/chunks/{chunk-ORBGV7NJ.js → chunk-KKRTYONM.js} +6 -4
  84. package/chunks/{chunk-7PU4FYLG.js → chunk-KOXFAG6P.js} +4 -18
  85. package/chunks/{chunk-EGYZ275M.js → chunk-KWLVWNF5.js} +55 -7
  86. package/chunks/{chunk-XLA62MYB.js → chunk-KXECVZPD.js} +2 -2
  87. package/chunks/{chunk-IAVB3HM3.js → chunk-L4Y55KIS.js} +33 -1
  88. package/chunks/{chunk-4QLQE5WJ.js → chunk-L5U3ELZX.js} +1 -1
  89. package/chunks/{chunk-4ZVWQHEQ.js → chunk-LQIDP6K5.js} +1 -1
  90. package/chunks/{chunk-DC5Z3DU6.js → chunk-LXLTBIDP.js} +43 -6
  91. package/chunks/chunk-LXXMOYPL.js +22 -0
  92. package/chunks/{chunk-Q6I5QHMH.js → chunk-MFNKBXYH.js} +1 -1
  93. package/chunks/chunk-MR3PXB6E.js +48 -0
  94. package/chunks/{chunk-JZETEN3Z.js → chunk-N45S36AH.js} +3 -3
  95. package/chunks/{chunk-GWLSNBG4.js → chunk-NA3IG6XG.js} +748 -27
  96. package/chunks/{chunk-D5SKC4YG.js → chunk-O3M25JXE.js} +213 -29
  97. package/chunks/{chunk-EAXLGSFP.js → chunk-O6XGHDS5.js} +11 -11
  98. package/chunks/{chunk-WL4L7EZH.js → chunk-OA4JVLSA.js} +27 -1
  99. package/chunks/{chunk-X4NKFGFJ.js → chunk-OJAMDVF5.js} +0 -15
  100. package/chunks/{chunk-BZIFY5TF.js → chunk-OKAIGAYW.js} +3 -3
  101. package/chunks/{chunk-CNEIYWSA.js → chunk-OVIV236K.js} +5 -5
  102. package/chunks/{chunk-3SJSQXNS.js → chunk-PEJWA3QQ.js} +12 -8
  103. package/chunks/{chunk-E2IY465S.js → chunk-PWNOAWXB.js} +59 -12
  104. package/chunks/{chunk-B4G2WOFA.js → chunk-Q5MKHNIR.js} +28 -5
  105. package/chunks/{chunk-MXL5UP4X.js → chunk-Q6TUALBE.js} +1 -1
  106. package/chunks/{chunk-QYMQSECS.js → chunk-QAW7PIHT.js} +2 -2
  107. package/chunks/{chunk-HKMAENAO.js → chunk-QDTGDM2T.js} +14 -9
  108. package/chunks/{chunk-LUODI7WD.js → chunk-RCEEXIOO.js} +6 -4
  109. package/chunks/{chunk-W2UIXQDL.js → chunk-RTV5TUYB.js} +12 -4
  110. package/chunks/chunk-RW7DUKFO.js +91 -0
  111. package/chunks/{chunk-NVYTCB5Z.js → chunk-SA6QVLWI.js} +17325 -16259
  112. package/chunks/chunk-SJSI7PXU.js +59 -0
  113. package/chunks/{chunk-HVY356M2.js → chunk-SMGBWLNU.js} +3 -3
  114. package/chunks/{chunk-CEA3E3JB.js → chunk-SPJQO2CE.js} +2 -2
  115. package/chunks/{chunk-CC2ITGCF.js → chunk-STZQCNN3.js} +49 -6
  116. package/chunks/{chunk-HPDUL5MF.js → chunk-T2ZDAER2.js} +1 -1
  117. package/chunks/{chunk-XUOOWUZS.js → chunk-T3TQ3ACP.js} +1 -1
  118. package/chunks/{chunk-4C5BQ2D2.js → chunk-TIKDHS6V.js} +100 -17
  119. package/chunks/chunk-TV6K2FB4.js +224 -0
  120. package/chunks/{chunk-5XUCZNSY.js → chunk-TYLOFD2U.js} +1 -1
  121. package/chunks/{chunk-D2GFWEXB.js → chunk-UCUUH2JV.js} +6 -6
  122. package/chunks/{chunk-BAPGSC7U.js → chunk-UZP7K33Y.js} +23 -9
  123. package/chunks/{chunk-77XJ3SWN.js → chunk-VDAR6UO2.js} +8 -6
  124. package/chunks/{chunk-XYQSMABS.js → chunk-VKLVGA2D.js} +4 -4
  125. package/chunks/{chunk-JSG7ZSBC.js → chunk-VRR65QYW.js} +251 -3
  126. package/chunks/{chunk-U2NNEY4R.js → chunk-VT5AWJN4.js} +1 -1
  127. package/chunks/{chunk-ZLXQN2QS.js → chunk-WIEO4CWB.js} +1 -1
  128. package/chunks/{chunk-X6TJ3YZV.js → chunk-WKEO3GLZ.js} +160 -60
  129. package/chunks/{chunk-J3JA76CF.js → chunk-WTNZ6DXB.js} +1 -1
  130. package/chunks/{chunk-VWPVHAMO.js → chunk-XIWQ5QST.js} +8 -1
  131. package/chunks/{chunk-TDEXZKMT.js → chunk-Y66VOBRP.js} +2 -2
  132. package/chunks/{chunk-3VAGG5T5.js → chunk-YYBZUIPL.js} +1015 -100
  133. package/chunks/{chunk-CCDMCZPP.js → chunk-YZ3SBNP7.js} +1 -1
  134. package/chunks/{chunk-ATAKVRIF.js → chunk-Z3XA2TNG.js} +7 -7
  135. package/chunks/{chunk-EMDMPBJ4.js → chunk-Z7SVC7PJ.js} +10 -3
  136. package/chunks/{chunk-AURZZYMD.js → chunk-ZIVSSTUG.js} +4 -4
  137. package/chunks/{chunk-UOZWKTQG.js → chunk-ZPAHLFZU.js} +2 -2
  138. package/chunks/{chunk-34Z3U5RQ.js → chunk-ZQIYGQCG.js} +765 -168
  139. package/chunks/{computer-use-HM37RX6A.js → computer-use-NADT7ULB.js} +26 -27
  140. package/chunks/{config-utils-NV2SVGPB.js → config-utils-IQQT3GCI.js} +3 -2
  141. package/chunks/{contextCommand-OF5SFGH2.js → contextCommand-U7NEJYJ7.js} +28 -29
  142. package/chunks/{create-sub-session-INX7TXJI.js → create-sub-session-EAB2U5XW.js} +2 -2
  143. package/chunks/{create-sub-session-KPRT7ECJ.js → create-sub-session-SUN33INC.js} +26 -27
  144. package/chunks/{cron-create-AMBKGZX6.js → cron-create-GMVKSXZT.js} +4 -4
  145. package/chunks/{cron-delete-LRU4OJYG.js → cron-delete-VDZKUAVK.js} +4 -4
  146. package/chunks/{cron-list-WVP2JXER.js → cron-list-UG7C7RAR.js} +4 -4
  147. package/chunks/{daemon-ARHTSTXP.js → daemon-SJXEKP3H.js} +773 -126
  148. package/chunks/daemon-status-provider-WIIYLGZJ.js +74 -0
  149. package/chunks/{de-EBJN3OVN.js → de-NOXPCSYN.js} +9 -1
  150. package/chunks/{dist-XKU3ABM5.js → dist-4WCQEZIN.js} +4 -51
  151. package/chunks/{dist-QYCAEZIT.js → dist-DOPL5LSQ.js} +5 -1
  152. package/chunks/{dist-WKPOYU7O.js → dist-GXJVCOS7.js} +1 -1
  153. package/chunks/{dist-R7LN5AZE.js → dist-PX2ERZ6I.js} +2 -2
  154. package/chunks/{dist-PNVLTKTL.js → dist-V2YVLYOW.js} +215 -33
  155. package/chunks/{dist-VHV4EVHG.js → dist-VYWUKURL.js} +1 -1
  156. package/chunks/{earlyInputCapture-3VTHRC4C.js → earlyInputCapture-6FRM6UMU.js} +27 -28
  157. package/chunks/{edit-VNI4NJ73.js → edit-7GOIQTCZ.js} +27 -28
  158. package/chunks/{en-5A6LA7RK.js → en-JFVULHTB.js} +11 -1
  159. package/chunks/{enter-worktree-IYYBKPZT.js → enter-worktree-476E6WIK.js} +26 -27
  160. package/chunks/{enterPlanMode-GMC5FD5A.js → enterPlanMode-IRJM6W3C.js} +42 -28
  161. package/chunks/{environment-5HSSRMJ7.js → environment-ROMULS2X.js} +30 -30
  162. package/chunks/{errors-HMFCJJ7P.js → errors-OUIWPUDY.js} +28 -29
  163. package/chunks/{exit-worktree-6BHCMP5G.js → exit-worktree-PPSFK753.js} +26 -27
  164. package/chunks/{exitPlanMode-CJW7G74W.js → exitPlanMode-YKQMD4D7.js} +26 -27
  165. package/chunks/{fast-path-FRDMDVHG.js → fast-path-CNK2HHKH.js} +3 -3
  166. package/chunks/{fast-path-settings-5QZE64HR.js → fast-path-settings-DAOVFADC.js} +6 -4
  167. package/chunks/{fr-YXRABLYZ.js → fr-HVFNU42H.js} +9 -1
  168. package/chunks/{gemini-QYSEGHAX.js → gemini-WQNFT6TR.js} +216 -90
  169. package/chunks/{geminiContentGenerator-J7YNZDYP.js → geminiContentGenerator-4QJH2JDP.js} +4 -4
  170. package/chunks/{glob-BRCSGFOT.js → glob-36TVLBWW.js} +28 -28
  171. package/chunks/{grep-EE2DUOSY.js → grep-QTYLNO2M.js} +26 -27
  172. package/chunks/{handleAutoUpdate-5NWTLR67.js → handleAutoUpdate-36FQFODK.js} +30 -31
  173. package/chunks/{i18n-BASPENNQ.js → i18n-JUGYPVSP.js} +27 -28
  174. package/chunks/initializer-OBBJUS25.js +72 -0
  175. package/chunks/{installationInfo-W6V4DT7W.js → installationInfo-MCKTPX64.js} +27 -28
  176. package/chunks/{ja-7VQOANVG.js → ja-PY5AF544.js} +10 -2
  177. package/chunks/{keychain-token-storage-VKUBNCP4.js → keychain-token-storage-AU22CQI6.js} +2 -2
  178. package/chunks/list-VW5QY4VJ.js +75 -0
  179. package/chunks/loadedSettingsAdapter-IELOOXG6.js +69 -0
  180. package/chunks/{loop-wakeup-WX7BLWWP.js → loop-wakeup-QXWZSCYM.js} +5 -5
  181. package/chunks/{ls-ZB2BDP6T.js → ls-2OUTG3IZ.js} +4 -4
  182. package/chunks/{lsp-V5DN4YUJ.js → lsp-4VMNXZW6.js} +2 -2
  183. package/chunks/mcp-Q3EC37ZS.js +69 -0
  184. package/chunks/{monitor-X5Z3H4FY.js → monitor-DCZ27AFR.js} +26 -27
  185. package/chunks/nonInteractiveCli-KXD7PFO4.js +128 -0
  186. package/chunks/{notebook-edit-TRM2QIJK.js → notebook-edit-YU4XF5LI.js} +27 -28
  187. package/chunks/{openaiContentGenerator-AAYONPMF.js → openaiContentGenerator-KL5WER2D.js} +13 -13
  188. package/chunks/{pidfile-D4I4FTVA.js → pidfile-WBOD7EJV.js} +27 -28
  189. package/chunks/processUtils-AOV4R34M.js +29 -0
  190. package/chunks/{pt-2C6YCSHL.js → pt-A3PRQXMU.js} +9 -1
  191. package/chunks/{qwenContentGenerator-K3HZ2H76.js → qwenContentGenerator-YIGBHYE3.js} +28 -29
  192. package/chunks/{qwenOAuth2-PJQ27GSO.js → qwenOAuth2-LEYOU7RU.js} +5 -5
  193. package/chunks/{read-file-7SZSIZOL.js → read-file-WVL4Y76X.js} +9 -9
  194. package/chunks/{read-mcp-resource-SM5DA4RG.js → read-mcp-resource-JUFHCKSC.js} +2 -2
  195. package/chunks/{record-artifact-4XKZX3UW.js → record-artifact-DWSMBXYY.js} +2 -2
  196. package/chunks/{ripGrep-YNPFVCZP.js → ripGrep-6GSWJERP.js} +26 -27
  197. package/chunks/{ru-6BBHVZZV.js → ru-IBCWUTOC.js} +9 -1
  198. package/chunks/{run-qwen-serve-DMWV5N6L.js → run-qwen-serve-QYUQMEDT.js} +1233 -371
  199. package/chunks/{runtime-57WWRVHN.js → runtime-K2YZCNB3.js} +42 -38
  200. package/chunks/{scheduler-YBLGWSIL.js → scheduler-EQCSN7QV.js} +26 -27
  201. package/chunks/{send-message-F36YD6KQ.js → send-message-JZ752NWD.js} +3 -3
  202. package/chunks/{serve-R63NK3CV.js → serve-DX5UGZD4.js} +36 -35
  203. package/chunks/{server-Z22GCAXP.js → server-T6HJH3DR.js} +5869 -1398
  204. package/chunks/{session-HKAAI7BN.js → session-SNU6ACY6.js} +299 -100
  205. package/chunks/{settings-3EYN66GK.js → settings-AKHZZNEL.js} +34 -33
  206. package/chunks/{shell-6YXINTWJ.js → shell-EY74IEZK.js} +28 -27
  207. package/chunks/{skill-OO57P4X6.js → skill-DPU62O3H.js} +11 -11
  208. package/chunks/{spawnChannel-JD7G4VU6.js → spawnChannel-RQZRWJ2V.js} +28 -30
  209. package/chunks/{src-G5UPLZSZ.js → src-7FITDSVC.js} +164 -52
  210. package/chunks/{standalone-update-OB7F4JPZ.js → standalone-update-XO3RK6DO.js} +28 -29
  211. package/chunks/{startInteractiveUI-73EGLIIH.js → startInteractiveUI-DVWZRHYQ.js} +728 -382
  212. package/chunks/{syntheticOutput-34H7LGA7.js → syntheticOutput-LELY6HAI.js} +3 -3
  213. package/chunks/{task-create-FRGOEIKY.js → task-create-QY3BIMNM.js} +8 -7
  214. package/chunks/{task-list-OW766BXZ.js → task-list-D2U47WBJ.js} +6 -5
  215. package/chunks/{task-stop-SIR5SNBN.js → task-stop-N6E5IYLH.js} +2 -2
  216. package/chunks/{task-update-YRA532MT.js → task-update-HJCQILLB.js} +8 -7
  217. package/chunks/{team-create-PECAAPXK.js → team-create-FOSRT62K.js} +26 -27
  218. package/chunks/{team-delete-6OSECUZC.js → team-delete-RCWYDRF4.js} +6 -5
  219. package/chunks/{team-plan-approval-L6F434RY.js → team-plan-approval-6VUDV27J.js} +26 -27
  220. package/chunks/{theme-manager-ZG4RY6GU.js → theme-manager-6UT6IO5T.js} +27 -28
  221. package/chunks/{todoWrite-YDMFEV4G.js → todoWrite-FKCGATPJ.js} +4 -4
  222. package/chunks/{tool-search-THVIWAPB.js → tool-search-ASSFMMN5.js} +10 -10
  223. package/chunks/{total-session-admission-JOKNRIIA.js → total-session-admission-YYWUO23H.js} +32 -35
  224. package/chunks/tree-sitter-YJVE2ZUK.js +2980 -0
  225. package/chunks/{trustedFolders-EOGT3UVS.js → trustedFolders-4BWV2IBK.js} +29 -29
  226. package/chunks/types-ML3TRJQ5.js +16 -0
  227. package/chunks/update-relaunch-74DLGH73.js +87 -0
  228. package/chunks/{updateCheck-2KYEYVSB.js → updateCheck-CRFCGFO5.js} +31 -30
  229. package/chunks/{validateNonInterActiveAuth-EN6ZQSR2.js → validateNonInterActiveAuth-BTTEPBGQ.js} +76 -73
  230. package/chunks/{version-3UEA6ZIR.js → version-Y5JE5Q63.js} +1 -1
  231. package/chunks/{web-fetch-PAAEQKBW.js → web-fetch-CFCWTCAP.js} +5 -6
  232. package/chunks/{workflow-QCCCMYP3.js → workflow-6WC7VPQN.js} +27 -28
  233. package/chunks/workspace-providers-status-RVG2C5ZS.js +72 -0
  234. package/chunks/workspace-registration-store-SLEU3D3X.js +27 -0
  235. package/chunks/{workspace-registry-24QFLQYH.js → workspace-registry-QMWGVOTF.js} +32 -35
  236. package/chunks/workspace-service-G572JSEU.js +84 -0
  237. package/chunks/workspace-skills-status-VSSMSMNK.js +71 -0
  238. package/chunks/{write-file-I3MUDRIE.js → write-file-5XVDRORP.js} +27 -28
  239. package/chunks/{zh-RQE7I22T.js → zh-PAUNIMHQ.js} +12 -2
  240. package/chunks/{zh-TW-TBPQGHKH.js → zh-TW-GNEUIUFF.js} +12 -2
  241. package/cli-entry.js +92 -8
  242. package/cli.js +11 -11
  243. package/locales/ca.js +16 -0
  244. package/locales/de.js +16 -0
  245. package/locales/en.js +19 -0
  246. package/locales/fr.js +16 -0
  247. package/locales/ja.js +17 -1
  248. package/locales/pt.js +16 -0
  249. package/locales/ru.js +16 -0
  250. package/locales/zh-TW.js +20 -1
  251. package/locales/zh.js +20 -1
  252. package/package.json +3 -3
  253. package/web-shell/assets/{arc-C15hqnJe.js → arc-vx1tRwnX.js} +1 -1
  254. package/web-shell/assets/{architectureDiagram-3BPJPVTR-B-At37J_.js → architectureDiagram-3BPJPVTR-DBi6iUA1.js} +1 -1
  255. package/web-shell/assets/{blockDiagram-GPEHLZMM-B51wjcU7.js → blockDiagram-GPEHLZMM-Ga9JJ4Ak.js} +1 -1
  256. package/web-shell/assets/{c4Diagram-AAUBKEIU-xBK7BAwN.js → c4Diagram-AAUBKEIU-D8Vi5FYw.js} +1 -1
  257. package/web-shell/assets/channel-B29zQDTL.js +1 -0
  258. package/web-shell/assets/{chunk-2J33WTMH-xKmLg7Yr.js → chunk-2J33WTMH-CSV6yQpU.js} +1 -1
  259. package/web-shell/assets/{chunk-4BX2VUAB-BfkdKZCM.js → chunk-4BX2VUAB-toYlppdI.js} +1 -1
  260. package/web-shell/assets/{chunk-55IACEB6-DT713sZf.js → chunk-55IACEB6-DbjzuyAr.js} +1 -1
  261. package/web-shell/assets/{chunk-727SXJPM-CYEeAamv.js → chunk-727SXJPM-IkkSjSkk.js} +1 -1
  262. package/web-shell/assets/{chunk-AQP2D5EJ-DBN-5CFd.js → chunk-AQP2D5EJ-D5wUL6Zm.js} +1 -1
  263. package/web-shell/assets/{chunk-FMBD7UC4-CGZKk4PH.js → chunk-FMBD7UC4-C3o2DXG0.js} +1 -1
  264. package/web-shell/assets/{chunk-ND2GUHAM-qQbC2O-y.js → chunk-ND2GUHAM-CutIi14T.js} +1 -1
  265. package/web-shell/assets/{chunk-QZHKN3VN-B3zeXwsX.js → chunk-QZHKN3VN-DZ0NRHH-.js} +1 -1
  266. package/web-shell/assets/classDiagram-4FO5ZUOK-BNGI2SvC.js +1 -0
  267. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BNGI2SvC.js +1 -0
  268. package/web-shell/assets/{cose-bilkent-S5V4N54A-BKsl1Wvy.js → cose-bilkent-S5V4N54A-B3Dl88UJ.js} +1 -1
  269. package/web-shell/assets/{dagre-BM42HDAG-CuuuLiBK.js → dagre-BM42HDAG-DfTxfF6-.js} +1 -1
  270. package/web-shell/assets/{diagram-2AECGRRQ-CG4_eKiV.js → diagram-2AECGRRQ-CJyH98yO.js} +1 -1
  271. package/web-shell/assets/{diagram-5GNKFQAL-DSFTmZB1.js → diagram-5GNKFQAL-EbOiJNmW.js} +1 -1
  272. package/web-shell/assets/{diagram-KO2AKTUF-BxwlEHn8.js → diagram-KO2AKTUF-AYNqpqqA.js} +1 -1
  273. package/web-shell/assets/{diagram-LMA3HP47-BUAg-jMG.js → diagram-LMA3HP47-BY5VPa4H.js} +1 -1
  274. package/web-shell/assets/{diagram-OG6HWLK6-BFM2jlO5.js → diagram-OG6HWLK6-BhMYAKlk.js} +1 -1
  275. package/web-shell/assets/{erDiagram-TEJ5UH35-CerbFPa2.js → erDiagram-TEJ5UH35-Bp8S_F9l.js} +1 -1
  276. package/web-shell/assets/{flowDiagram-I6XJVG4X-BNeZz5Zz.js → flowDiagram-I6XJVG4X-az3TE9PU.js} +1 -1
  277. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CTOogLaM.js → ganttDiagram-6RSMTGT7-CfkAEpCe.js} +3 -3
  278. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-yxSFkXPj.js → gitGraphDiagram-PVQCEYII-D1QmjMCy.js} +1 -1
  279. package/web-shell/assets/index-C8sDwQUv.js +1130 -0
  280. package/web-shell/assets/index-CaBoc5bb.js +3 -0
  281. package/web-shell/assets/index-Dpg5Wymg.css +5 -0
  282. package/web-shell/assets/{infoDiagram-5YYISTIA-DYdAUevm.js → infoDiagram-5YYISTIA-D3ompLrG.js} +1 -1
  283. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CNuijZ90.js → ishikawaDiagram-YF4QCWOH-D3MRWp9I.js} +1 -1
  284. package/web-shell/assets/{journeyDiagram-JHISSGLW-BTyiuonf.js → journeyDiagram-JHISSGLW-DVkKCa44.js} +1 -1
  285. package/web-shell/assets/{kanban-definition-UN3LZRKU-DPJo0Uow.js → kanban-definition-UN3LZRKU-BLif81wF.js} +1 -1
  286. package/web-shell/assets/{linear-C8wKCbIC.js → linear-BDU96EGS.js} +1 -1
  287. package/web-shell/assets/{mermaid.core-BV5o7nW5.js → mermaid.core-B-CwC26B.js} +5 -5
  288. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BtLcBmSt.js → mindmap-definition-RKZ34NQL-CS1WOJ4G.js} +1 -1
  289. package/web-shell/assets/{pieDiagram-4H26LBE5-C22J7A9Q.js → pieDiagram-4H26LBE5-BzgtNXVP.js} +1 -1
  290. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DSL10wiL.js → quadrantDiagram-W4KKPZXB-BRfGC8MA.js} +1 -1
  291. package/web-shell/assets/{requirementDiagram-4Y6WPE33-feqh0UpX.js → requirementDiagram-4Y6WPE33-CPBZkC7g.js} +1 -1
  292. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Z4OVaWaZ.js → sankeyDiagram-5OEKKPKP-nqNvinIk.js} +1 -1
  293. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DIluIcb1.js → sequenceDiagram-3UESZ5HK-CM_Wdjh3.js} +1 -1
  294. package/web-shell/assets/{stateDiagram-AJRCARHV-hlhnuoYH.js → stateDiagram-AJRCARHV-L0y-48VE.js} +1 -1
  295. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BX1DdF8s.js +1 -0
  296. package/web-shell/assets/{timeline-definition-PNZ67QCA-Dqf_CqgL.js → timeline-definition-PNZ67QCA-B_n5rb3A.js} +1 -1
  297. package/web-shell/assets/{vennDiagram-CIIHVFJN-DD2QhaTX.js → vennDiagram-CIIHVFJN-C9NmLV5e.js} +1 -1
  298. package/web-shell/assets/{wardley-L42UT6IY-B2uI85U_.js → wardley-L42UT6IY-CrefK9gt.js} +1 -1
  299. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-U1aJX71g.js → wardleyDiagram-YWT4CUSO-BUccf-bC.js} +1 -1
  300. package/web-shell/assets/{xychartDiagram-2RQKCTM6-C0ODHUee.js → xychartDiagram-2RQKCTM6-DM6ef92l.js} +1 -1
  301. package/web-shell/index.html +2 -2
  302. package/chunks/chunk-524RQP4Q.js +0 -305
  303. package/chunks/chunk-CARU2RR2.js +0 -24
  304. package/chunks/chunk-CU3L64TP.js +0 -93
  305. package/chunks/chunk-OCPBI7J5.js +0 -18
  306. package/chunks/chunk-TEGEBB2I.js +0 -122
  307. package/chunks/chunk-VTU57BWZ.js +0 -30
  308. package/chunks/daemon-status-provider-B2UTZUJ2.js +0 -76
  309. package/chunks/initializer-UTQ7FB7G.js +0 -71
  310. package/chunks/list-DEICDL65.js +0 -74
  311. package/chunks/loadedSettingsAdapter-NOWEGDYJ.js +0 -68
  312. package/chunks/mcp-L5JXEEIA.js +0 -68
  313. package/chunks/nonInteractiveCli-LS2K4X6A.js +0 -124
  314. package/chunks/types-JNKGKUJT.js +0 -12
  315. package/chunks/workspace-providers-status-4KMGETOJ.js +0 -71
  316. package/chunks/workspace-service-RVLBMSMZ.js +0 -80
  317. package/chunks/workspace-skills-status-DS4ZVFTO.js +0 -70
  318. package/web-shell/assets/channel-CLiQD50f.js +0 -1
  319. package/web-shell/assets/classDiagram-4FO5ZUOK-D3sYqow5.js +0 -1
  320. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-D3sYqow5.js +0 -1
  321. package/web-shell/assets/index-D5IWFVk1.css +0 -5
  322. package/web-shell/assets/index-KFJRDhX7.js +0 -783
  323. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BhQMwgpl.js +0 -1
@@ -1,8 +1,5 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import {
4
- relaunchApp
5
- } from "./chunk-VTU57BWZ.js";
6
3
  import {
7
4
  CODE_FENCE_RE,
8
5
  TABLE_MAX_ROW_LINES,
@@ -16,16 +13,17 @@ import {
16
13
  getCommandSubcommandNames,
17
14
  splitMarkdownTableRow,
18
15
  useSessionStats
19
- } from "./chunk-AURZZYMD.js";
16
+ } from "./chunk-ZIVSSTUG.js";
20
17
  import {
21
18
  Colors,
22
19
  RowMouseController,
23
20
  SettingsContext,
21
+ layoutRowForEvent,
24
22
  measureElementPosition,
25
23
  useMouseEvents,
26
24
  useSettings,
27
25
  useTerminalSize
28
- } from "./chunk-JZETEN3Z.js";
26
+ } from "./chunk-N45S36AH.js";
29
27
  import {
30
28
  CompactToolGroupDisplay,
31
29
  SCREEN_READER_MODEL_PREFIX,
@@ -43,19 +41,18 @@ import {
43
41
  calculateErrorRate,
44
42
  computeDiffColumnWidths,
45
43
  computeSessionStats,
44
+ estimateCompactToolGroupHeight,
46
45
  getSystemInfoFields,
47
46
  isCollapsibleTool,
48
47
  levelLabel,
49
48
  useKeypress,
49
+ wrapAnsi,
50
50
  wrapForMultiplexer
51
- } from "./chunk-GWLSNBG4.js";
52
- import {
53
- isTerminalGoalStatusKind
54
- } from "./chunk-7X7TEQNX.js";
51
+ } from "./chunk-NA3IG6XG.js";
55
52
  import {
56
53
  MINIMUM_MAX_HEIGHT,
57
54
  MaxSizedBox
58
- } from "./chunk-HVY356M2.js";
55
+ } from "./chunk-SMGBWLNU.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-OVIV236K.js";
66
+ import {
67
+ relaunchApp
68
+ } from "./chunk-SJSI7PXU.js";
69
+ import {
70
+ isTerminalGoalStatusKind
71
+ } from "./chunk-7X7TEQNX.js";
69
72
  import {
70
73
  require_react
71
74
  } from "./chunk-HTHUX2T5.js";
72
75
  import {
73
76
  resolveColor,
74
77
  themeManager
75
- } from "./chunk-MXL5UP4X.js";
78
+ } from "./chunk-Q6TUALBE.js";
76
79
  import {
77
80
  cpLen,
78
81
  cpSlice,
79
82
  escapeAnsiCtrlCodes,
80
83
  getCachedStringWidth,
84
+ sanitizeMultilineForDisplay,
81
85
  sanitizeSensitiveText,
82
86
  sanitizeTerminalText,
83
87
  stringWidth,
84
88
  stripUnsafeCharacters,
85
89
  toCodePoints,
86
90
  wrapToVisualLines
87
- } from "./chunk-Q6I5QHMH.js";
88
- import {
89
- eastAsianWidth
90
- } from "./chunk-QHTIBUWB.js";
91
- import {
92
- require_has_flag,
93
- require_source
94
- } from "./chunk-57OAHC2Y.js";
91
+ } from "./chunk-MFNKBXYH.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-EZWX232B.js";
104
105
  import {
105
106
  getPersistScopeForModelSelection
106
- } from "./chunk-4C5BQ2D2.js";
107
+ } from "./chunk-TIKDHS6V.js";
107
108
  import {
108
109
  getCurrentLanguage,
109
110
  localizeToolDisplayName,
110
111
  t
111
- } from "./chunk-YAUFFXDS.js";
112
+ } from "./chunk-7GM2RWCR.js";
112
113
  import {
113
114
  isWorkspaceTrusted
114
- } from "./chunk-HKMAENAO.js";
115
+ } from "./chunk-QDTGDM2T.js";
115
116
  import {
116
117
  ALL_PROVIDERS,
117
118
  IdeClient,
@@ -132,21 +133,23 @@ import {
132
133
  resolveMetadataKey,
133
134
  resolveOwnsModel,
134
135
  stripAnsi
135
- } from "./chunk-NVYTCB5Z.js";
136
+ } from "./chunk-SA6QVLWI.js";
136
137
  import {
137
138
  MAIN_SOURCE,
138
- getMCPServerStatus
139
- } from "./chunk-3VAGG5T5.js";
139
+ formatVisionBridgeNoticeDisplay,
140
+ getMCPServerStatus,
141
+ isVisionBridgeNoticeDisplay
142
+ } from "./chunk-YYBZUIPL.js";
140
143
  import {
141
144
  ToolDisplayNames,
142
145
  ToolNames,
143
146
  ToolNamesMigration
144
- } from "./chunk-B5ORX3FG.js";
147
+ } from "./chunk-JGUT3LWZ.js";
145
148
  import {
146
149
  createDebugLogger,
147
150
  escapePath,
148
151
  unescapePath
149
- } from "./chunk-J4TSQ5EQ.js";
152
+ } from "./chunk-7NFB7LBQ.js";
150
153
  import {
151
154
  init_esbuild_shims
152
155
  } from "./chunk-5O2XNYP6.js";
@@ -2533,679 +2536,6 @@ __name(colorizeCode, "colorizeCode");
2533
2536
  // packages/cli/src/ui/utils/TableRenderer.tsx
2534
2537
  init_esbuild_shims();
2535
2538
 
2536
- // packages/cli/node_modules/wrap-ansi/index.js
2537
- init_esbuild_shims();
2538
-
2539
- // packages/cli/node_modules/wrap-ansi/node_modules/string-width/index.js
2540
- init_esbuild_shims();
2541
- var segmenter = new Intl.Segmenter();
2542
- var zeroWidthClusterRegex = new RegExp("^(?:\\p{Default_Ignorable_Code_Point}|\\p{Control}|\\p{Format}|\\p{Mark}|\\p{Surrogate})+$", "v");
2543
- var leadingNonPrintingRegex = new RegExp("^[\\p{Default_Ignorable_Code_Point}\\p{Control}\\p{Format}\\p{Mark}\\p{Surrogate}]+", "v");
2544
- var rgiEmojiRegex = new RegExp("^\\p{RGI_Emoji}$", "v");
2545
- var unqualifiedKeycapRegex = /^[\d#*]\u20E3$/;
2546
- var extendedPictographicRegex = new RegExp("\\p{Extended_Pictographic}", "gu");
2547
- function isDoubleWidthNonRgiEmojiSequence(segment) {
2548
- if (segment.length > 50) {
2549
- return false;
2550
- }
2551
- if (unqualifiedKeycapRegex.test(segment)) {
2552
- return true;
2553
- }
2554
- if (segment.includes("\u200D")) {
2555
- const pictographics = segment.match(extendedPictographicRegex);
2556
- return pictographics !== null && pictographics.length >= 2;
2557
- }
2558
- return false;
2559
- }
2560
- __name(isDoubleWidthNonRgiEmojiSequence, "isDoubleWidthNonRgiEmojiSequence");
2561
- function baseVisible(segment) {
2562
- return segment.replace(leadingNonPrintingRegex, "");
2563
- }
2564
- __name(baseVisible, "baseVisible");
2565
- function isZeroWidthCluster(segment) {
2566
- return zeroWidthClusterRegex.test(segment);
2567
- }
2568
- __name(isZeroWidthCluster, "isZeroWidthCluster");
2569
- function isHangulLeadingJamo(codePoint) {
2570
- return codePoint >= 4352 && codePoint <= 4447 || codePoint >= 43360 && codePoint <= 43388;
2571
- }
2572
- __name(isHangulLeadingJamo, "isHangulLeadingJamo");
2573
- function isHangulVowelJamo(codePoint) {
2574
- return codePoint >= 4448 && codePoint <= 4519 || codePoint >= 55216 && codePoint <= 55238;
2575
- }
2576
- __name(isHangulVowelJamo, "isHangulVowelJamo");
2577
- function isHangulTrailingJamo(codePoint) {
2578
- return codePoint >= 4520 && codePoint <= 4607 || codePoint >= 55243 && codePoint <= 55291;
2579
- }
2580
- __name(isHangulTrailingJamo, "isHangulTrailingJamo");
2581
- function isHangulJamo(codePoint) {
2582
- return isHangulLeadingJamo(codePoint) || isHangulVowelJamo(codePoint) || isHangulTrailingJamo(codePoint);
2583
- }
2584
- __name(isHangulJamo, "isHangulJamo");
2585
- function hangulClusterWidth(visibleSegment, eastAsianWidthOptions) {
2586
- const codePoints = [];
2587
- for (const character of visibleSegment) {
2588
- if (zeroWidthClusterRegex.test(character)) {
2589
- continue;
2590
- }
2591
- codePoints.push(character.codePointAt(0));
2592
- }
2593
- if (codePoints.length === 0) {
2594
- return void 0;
2595
- }
2596
- let width = 0;
2597
- for (let index = 0; index < codePoints.length; index++) {
2598
- const codePoint = codePoints[index];
2599
- if (!isHangulJamo(codePoint)) {
2600
- if (width === 0) {
2601
- return void 0;
2602
- }
2603
- for (let remaining = index; remaining < codePoints.length; remaining++) {
2604
- width += eastAsianWidth(codePoints[remaining], eastAsianWidthOptions);
2605
- }
2606
- return width;
2607
- }
2608
- if (isHangulLeadingJamo(codePoint) && isHangulVowelJamo(codePoints[index + 1])) {
2609
- width += 2;
2610
- index += isHangulTrailingJamo(codePoints[index + 2]) ? 2 : 1;
2611
- continue;
2612
- }
2613
- width += eastAsianWidth(codePoint, eastAsianWidthOptions);
2614
- }
2615
- return width;
2616
- }
2617
- __name(hangulClusterWidth, "hangulClusterWidth");
2618
- function trailingHalfwidthWidth(visibleSegment, eastAsianWidthOptions) {
2619
- let extra = 0;
2620
- let first = true;
2621
- for (const character of visibleSegment) {
2622
- if (first) {
2623
- first = false;
2624
- continue;
2625
- }
2626
- if (character >= "\uFF00" && character <= "\uFFEF") {
2627
- extra += eastAsianWidth(character.codePointAt(0), eastAsianWidthOptions);
2628
- }
2629
- }
2630
- return extra;
2631
- }
2632
- __name(trailingHalfwidthWidth, "trailingHalfwidthWidth");
2633
- function stringWidth2(input, options = {}) {
2634
- if (typeof input !== "string" || input.length === 0) {
2635
- return 0;
2636
- }
2637
- const {
2638
- ambiguousIsNarrow = true,
2639
- countAnsiEscapeCodes = false
2640
- } = options;
2641
- let string = input;
2642
- if (!countAnsiEscapeCodes && (string.includes("\x1B") || string.includes("\x9B"))) {
2643
- string = stripAnsi(string);
2644
- }
2645
- if (string.length === 0) {
2646
- return 0;
2647
- }
2648
- if (/^[\u0020-\u007E]*$/.test(string)) {
2649
- return string.length;
2650
- }
2651
- let width = 0;
2652
- const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow };
2653
- for (const { segment } of segmenter.segment(string)) {
2654
- if (isZeroWidthCluster(segment)) {
2655
- continue;
2656
- }
2657
- if (rgiEmojiRegex.test(segment) || isDoubleWidthNonRgiEmojiSequence(segment)) {
2658
- width += 2;
2659
- continue;
2660
- }
2661
- const visibleSegment = baseVisible(segment);
2662
- const hangulWidth = hangulClusterWidth(visibleSegment, eastAsianWidthOptions);
2663
- if (hangulWidth !== void 0) {
2664
- width += hangulWidth;
2665
- continue;
2666
- }
2667
- const codePoint = visibleSegment.codePointAt(0);
2668
- width += eastAsianWidth(codePoint, eastAsianWidthOptions);
2669
- width += trailingHalfwidthWidth(visibleSegment, eastAsianWidthOptions);
2670
- }
2671
- return width;
2672
- }
2673
- __name(stringWidth2, "stringWidth");
2674
-
2675
- // packages/cli/node_modules/ansi-styles/index.js
2676
- init_esbuild_shims();
2677
- var ANSI_BACKGROUND_OFFSET = 10;
2678
- var wrapAnsi16 = /* @__PURE__ */ __name((offset = 0) => (code) => `\x1B[${code + offset}m`, "wrapAnsi16");
2679
- var wrapAnsi256 = /* @__PURE__ */ __name((offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`, "wrapAnsi256");
2680
- var wrapAnsi16m = /* @__PURE__ */ __name((offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`, "wrapAnsi16m");
2681
- var styles = {
2682
- modifier: {
2683
- reset: [0, 0],
2684
- // 21 isn't widely supported and 22 does the same thing
2685
- bold: [1, 22],
2686
- dim: [2, 22],
2687
- italic: [3, 23],
2688
- underline: [4, 24],
2689
- overline: [53, 55],
2690
- inverse: [7, 27],
2691
- hidden: [8, 28],
2692
- strikethrough: [9, 29]
2693
- },
2694
- color: {
2695
- black: [30, 39],
2696
- red: [31, 39],
2697
- green: [32, 39],
2698
- yellow: [33, 39],
2699
- blue: [34, 39],
2700
- magenta: [35, 39],
2701
- cyan: [36, 39],
2702
- white: [37, 39],
2703
- // Bright color
2704
- blackBright: [90, 39],
2705
- gray: [90, 39],
2706
- // Alias of `blackBright`
2707
- grey: [90, 39],
2708
- // Alias of `blackBright`
2709
- redBright: [91, 39],
2710
- greenBright: [92, 39],
2711
- yellowBright: [93, 39],
2712
- blueBright: [94, 39],
2713
- magentaBright: [95, 39],
2714
- cyanBright: [96, 39],
2715
- whiteBright: [97, 39]
2716
- },
2717
- bgColor: {
2718
- bgBlack: [40, 49],
2719
- bgRed: [41, 49],
2720
- bgGreen: [42, 49],
2721
- bgYellow: [43, 49],
2722
- bgBlue: [44, 49],
2723
- bgMagenta: [45, 49],
2724
- bgCyan: [46, 49],
2725
- bgWhite: [47, 49],
2726
- // Bright color
2727
- bgBlackBright: [100, 49],
2728
- bgGray: [100, 49],
2729
- // Alias of `bgBlackBright`
2730
- bgGrey: [100, 49],
2731
- // Alias of `bgBlackBright`
2732
- bgRedBright: [101, 49],
2733
- bgGreenBright: [102, 49],
2734
- bgYellowBright: [103, 49],
2735
- bgBlueBright: [104, 49],
2736
- bgMagentaBright: [105, 49],
2737
- bgCyanBright: [106, 49],
2738
- bgWhiteBright: [107, 49]
2739
- }
2740
- };
2741
- var modifierNames = Object.keys(styles.modifier);
2742
- var foregroundColorNames = Object.keys(styles.color);
2743
- var backgroundColorNames = Object.keys(styles.bgColor);
2744
- var colorNames = [...foregroundColorNames, ...backgroundColorNames];
2745
- function assembleStyles() {
2746
- const codes = /* @__PURE__ */ new Map();
2747
- for (const [groupName, group] of Object.entries(styles)) {
2748
- for (const [styleName, style] of Object.entries(group)) {
2749
- styles[styleName] = {
2750
- open: `\x1B[${style[0]}m`,
2751
- close: `\x1B[${style[1]}m`
2752
- };
2753
- group[styleName] = styles[styleName];
2754
- codes.set(style[0], style[1]);
2755
- }
2756
- Object.defineProperty(styles, groupName, {
2757
- value: group,
2758
- enumerable: false
2759
- });
2760
- }
2761
- Object.defineProperty(styles, "codes", {
2762
- value: codes,
2763
- enumerable: false
2764
- });
2765
- styles.color.close = "\x1B[39m";
2766
- styles.bgColor.close = "\x1B[49m";
2767
- styles.color.ansi = wrapAnsi16();
2768
- styles.color.ansi256 = wrapAnsi256();
2769
- styles.color.ansi16m = wrapAnsi16m();
2770
- styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
2771
- styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
2772
- styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
2773
- Object.defineProperties(styles, {
2774
- rgbToAnsi256: {
2775
- value(red, green, blue) {
2776
- if (red === green && green === blue) {
2777
- if (red < 8) {
2778
- return 16;
2779
- }
2780
- if (red > 248) {
2781
- return 231;
2782
- }
2783
- return Math.round((red - 8) / 247 * 24) + 232;
2784
- }
2785
- return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
2786
- },
2787
- enumerable: false
2788
- },
2789
- hexToRgb: {
2790
- value(hex) {
2791
- const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
2792
- if (!matches) {
2793
- return [0, 0, 0];
2794
- }
2795
- let [colorString] = matches;
2796
- if (colorString.length === 3) {
2797
- colorString = [...colorString].map((character) => character + character).join("");
2798
- }
2799
- const integer = Number.parseInt(colorString, 16);
2800
- return [
2801
- /* eslint-disable no-bitwise */
2802
- integer >> 16 & 255,
2803
- integer >> 8 & 255,
2804
- integer & 255
2805
- /* eslint-enable no-bitwise */
2806
- ];
2807
- },
2808
- enumerable: false
2809
- },
2810
- hexToAnsi256: {
2811
- value: /* @__PURE__ */ __name((hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)), "value"),
2812
- enumerable: false
2813
- },
2814
- ansi256ToAnsi: {
2815
- value(code) {
2816
- if (code < 8) {
2817
- return 30 + code;
2818
- }
2819
- if (code < 16) {
2820
- return 90 + (code - 8);
2821
- }
2822
- let red;
2823
- let green;
2824
- let blue;
2825
- if (code >= 232) {
2826
- red = ((code - 232) * 10 + 8) / 255;
2827
- green = red;
2828
- blue = red;
2829
- } else {
2830
- code -= 16;
2831
- const remainder = code % 36;
2832
- red = Math.floor(code / 36) / 5;
2833
- green = Math.floor(remainder / 6) / 5;
2834
- blue = remainder % 6 / 5;
2835
- }
2836
- const value = Math.max(red, green, blue) * 2;
2837
- if (value === 0) {
2838
- return 30;
2839
- }
2840
- let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
2841
- if (value === 2) {
2842
- result += 60;
2843
- }
2844
- return result;
2845
- },
2846
- enumerable: false
2847
- },
2848
- rgbToAnsi: {
2849
- value: /* @__PURE__ */ __name((red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)), "value"),
2850
- enumerable: false
2851
- },
2852
- hexToAnsi: {
2853
- value: /* @__PURE__ */ __name((hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)), "value"),
2854
- enumerable: false
2855
- }
2856
- });
2857
- return styles;
2858
- }
2859
- __name(assembleStyles, "assembleStyles");
2860
- var ansiStyles = assembleStyles();
2861
- var ansi_styles_default = ansiStyles;
2862
-
2863
- // packages/cli/node_modules/wrap-ansi/index.js
2864
- var ANSI_ESCAPE = "\x1B";
2865
- var ANSI_ESCAPE_CSI = "\x9B";
2866
- var ESCAPES = /* @__PURE__ */ new Set([
2867
- ANSI_ESCAPE,
2868
- ANSI_ESCAPE_CSI
2869
- ]);
2870
- var ANSI_ESCAPE_BELL = "\x07";
2871
- var ANSI_CSI = "[";
2872
- var ANSI_OSC = "]";
2873
- var ANSI_SGR_TERMINATOR = "m";
2874
- var ANSI_SGR_RESET = 0;
2875
- var ANSI_SGR_RESET_FOREGROUND = 39;
2876
- var ANSI_SGR_RESET_BACKGROUND = 49;
2877
- var ANSI_SGR_RESET_UNDERLINE_COLOR = 59;
2878
- var ANSI_SGR_FOREGROUND_EXTENDED = 38;
2879
- var ANSI_SGR_BACKGROUND_EXTENDED = 48;
2880
- var ANSI_SGR_UNDERLINE_COLOR_EXTENDED = 58;
2881
- var ANSI_SGR_COLOR_MODE_256 = 5;
2882
- var ANSI_SGR_COLOR_MODE_RGB = 2;
2883
- var ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;
2884
- var ANSI_ESCAPE_REGEX = new RegExp(`^\\u001B(?:\\${ANSI_CSI}(?<sgr>[0-9;]*)${ANSI_SGR_TERMINATOR}|${ANSI_ESCAPE_LINK}(?<uri>[^\\u0007\\u001B]*)(?:\\u0007|\\u001B\\\\))`);
2885
- var ANSI_ESCAPE_CSI_REGEX = new RegExp(`^\\u009B(?<sgr>[0-9;]*)${ANSI_SGR_TERMINATOR}`);
2886
- var ANSI_SGR_MODIFIER_CLOSE_CODES = new Set(ansi_styles_default.codes.values());
2887
- ANSI_SGR_MODIFIER_CLOSE_CODES.delete(ANSI_SGR_RESET);
2888
- var segmenter2 = new Intl.Segmenter();
2889
- var getGraphemes = /* @__PURE__ */ __name((string) => Array.from(segmenter2.segment(string), ({ segment }) => segment), "getGraphemes");
2890
- var TAB_SIZE = 8;
2891
- var wrapAnsiCode = /* @__PURE__ */ __name((code) => `${ANSI_ESCAPE}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`, "wrapAnsiCode");
2892
- var wrapAnsiHyperlink = /* @__PURE__ */ __name((url) => `${ANSI_ESCAPE}${ANSI_ESCAPE_LINK}${url}${ANSI_ESCAPE_BELL}`, "wrapAnsiHyperlink");
2893
- var getSgrTokens = /* @__PURE__ */ __name((sgrParameters) => {
2894
- const codes = sgrParameters.split(";").map((sgrParameter) => sgrParameter === "" ? ANSI_SGR_RESET : Number.parseInt(sgrParameter, 10));
2895
- const sgrTokens = [];
2896
- for (let index = 0; index < codes.length; index++) {
2897
- const code = codes[index];
2898
- if (!Number.isFinite(code)) {
2899
- continue;
2900
- }
2901
- if (code === ANSI_SGR_FOREGROUND_EXTENDED || code === ANSI_SGR_BACKGROUND_EXTENDED || code === ANSI_SGR_UNDERLINE_COLOR_EXTENDED) {
2902
- if (index + 1 >= codes.length) {
2903
- break;
2904
- }
2905
- const mode = codes[index + 1];
2906
- if (mode === ANSI_SGR_COLOR_MODE_256 && Number.isFinite(codes[index + 2])) {
2907
- sgrTokens.push([code, mode, codes[index + 2]]);
2908
- index += 2;
2909
- continue;
2910
- }
2911
- const red = codes[index + 2];
2912
- const green = codes[index + 3];
2913
- const blue = codes[index + 4];
2914
- if (mode === ANSI_SGR_COLOR_MODE_RGB && Number.isFinite(red) && Number.isFinite(green) && Number.isFinite(blue)) {
2915
- sgrTokens.push([code, mode, red, green, blue]);
2916
- index += 4;
2917
- continue;
2918
- }
2919
- break;
2920
- }
2921
- sgrTokens.push([code]);
2922
- }
2923
- return sgrTokens;
2924
- }, "getSgrTokens");
2925
- var removeActiveStyle = /* @__PURE__ */ __name((activeStyles, family) => {
2926
- const activeStyleIndex = activeStyles.findIndex((activeStyle) => activeStyle.family === family);
2927
- if (activeStyleIndex !== -1) {
2928
- activeStyles.splice(activeStyleIndex, 1);
2929
- }
2930
- }, "removeActiveStyle");
2931
- var upsertActiveStyle = /* @__PURE__ */ __name((activeStyles, nextActiveStyle) => {
2932
- removeActiveStyle(activeStyles, nextActiveStyle.family);
2933
- activeStyles.push(nextActiveStyle);
2934
- }, "upsertActiveStyle");
2935
- var removeModifierStylesByClose = /* @__PURE__ */ __name((activeStyles, closeCode) => {
2936
- for (let index = activeStyles.length - 1; index >= 0; index--) {
2937
- const activeStyle = activeStyles[index];
2938
- if (activeStyle.family.startsWith("modifier-") && activeStyle.close === closeCode) {
2939
- activeStyles.splice(index, 1);
2940
- }
2941
- }
2942
- }, "removeModifierStylesByClose");
2943
- var getColorStyle = /* @__PURE__ */ __name((code, sgrToken) => {
2944
- if (code >= 30 && code <= 37 || code >= 90 && code <= 97 || code === ANSI_SGR_FOREGROUND_EXTENDED && sgrToken.length > 1) {
2945
- return {
2946
- family: "foreground",
2947
- open: sgrToken.join(";"),
2948
- close: ANSI_SGR_RESET_FOREGROUND
2949
- };
2950
- }
2951
- if (code >= 40 && code <= 47 || code >= 100 && code <= 107 || code === ANSI_SGR_BACKGROUND_EXTENDED && sgrToken.length > 1) {
2952
- return {
2953
- family: "background",
2954
- open: sgrToken.join(";"),
2955
- close: ANSI_SGR_RESET_BACKGROUND
2956
- };
2957
- }
2958
- if (code === ANSI_SGR_UNDERLINE_COLOR_EXTENDED && sgrToken.length > 1) {
2959
- return {
2960
- family: "underlineColor",
2961
- open: sgrToken.join(";"),
2962
- close: ANSI_SGR_RESET_UNDERLINE_COLOR
2963
- };
2964
- }
2965
- }, "getColorStyle");
2966
- var applySgrResetCode = /* @__PURE__ */ __name((code, activeStyles) => {
2967
- if (code === ANSI_SGR_RESET) {
2968
- activeStyles.length = 0;
2969
- return true;
2970
- }
2971
- if (code === ANSI_SGR_RESET_FOREGROUND) {
2972
- removeActiveStyle(activeStyles, "foreground");
2973
- return true;
2974
- }
2975
- if (code === ANSI_SGR_RESET_BACKGROUND) {
2976
- removeActiveStyle(activeStyles, "background");
2977
- return true;
2978
- }
2979
- if (code === ANSI_SGR_RESET_UNDERLINE_COLOR) {
2980
- removeActiveStyle(activeStyles, "underlineColor");
2981
- return true;
2982
- }
2983
- if (ANSI_SGR_MODIFIER_CLOSE_CODES.has(code)) {
2984
- removeModifierStylesByClose(activeStyles, code);
2985
- return true;
2986
- }
2987
- return false;
2988
- }, "applySgrResetCode");
2989
- var applySgrToken = /* @__PURE__ */ __name((sgrToken, activeStyles) => {
2990
- const [code] = sgrToken;
2991
- if (applySgrResetCode(code, activeStyles)) {
2992
- return;
2993
- }
2994
- const colorStyle = getColorStyle(code, sgrToken);
2995
- if (colorStyle) {
2996
- upsertActiveStyle(activeStyles, colorStyle);
2997
- return;
2998
- }
2999
- const close = ansi_styles_default.codes.get(code);
3000
- if (close !== void 0 && close !== ANSI_SGR_RESET) {
3001
- upsertActiveStyle(activeStyles, {
3002
- family: `modifier-${code}`,
3003
- open: sgrToken.join(";"),
3004
- close
3005
- });
3006
- }
3007
- }, "applySgrToken");
3008
- var applySgrParameters = /* @__PURE__ */ __name((sgrParameters, activeStyles) => {
3009
- for (const sgrToken of getSgrTokens(sgrParameters)) {
3010
- applySgrToken(sgrToken, activeStyles);
3011
- }
3012
- }, "applySgrParameters");
3013
- var applySgrResets = /* @__PURE__ */ __name((sgrParameters, activeStyles) => {
3014
- for (const sgrToken of getSgrTokens(sgrParameters)) {
3015
- const [code] = sgrToken;
3016
- applySgrResetCode(code, activeStyles);
3017
- }
3018
- }, "applySgrResets");
3019
- var applyLeadingSgrResets = /* @__PURE__ */ __name((string, activeStyles) => {
3020
- let remainder = string;
3021
- while (remainder.length > 0) {
3022
- if (remainder.startsWith(ANSI_ESCAPE) && remainder[1] !== "\\") {
3023
- const match = ANSI_ESCAPE_REGEX.exec(remainder);
3024
- if (!match) {
3025
- break;
3026
- }
3027
- if (match.groups.sgr !== void 0) {
3028
- applySgrResets(match.groups.sgr, activeStyles);
3029
- }
3030
- remainder = remainder.slice(match[0].length);
3031
- continue;
3032
- }
3033
- if (remainder.startsWith(ANSI_ESCAPE_CSI)) {
3034
- const match = ANSI_ESCAPE_CSI_REGEX.exec(remainder);
3035
- if (!match || match.groups.sgr === void 0) {
3036
- break;
3037
- }
3038
- applySgrResets(match.groups.sgr, activeStyles);
3039
- remainder = remainder.slice(match[0].length);
3040
- continue;
3041
- }
3042
- break;
3043
- }
3044
- }, "applyLeadingSgrResets");
3045
- var getClosingSgrSequence = /* @__PURE__ */ __name((activeStyles) => [...activeStyles].reverse().map((activeStyle) => wrapAnsiCode(activeStyle.close)).join(""), "getClosingSgrSequence");
3046
- var getOpeningSgrSequence = /* @__PURE__ */ __name((activeStyles) => activeStyles.map((activeStyle) => wrapAnsiCode(activeStyle.open)).join(""), "getOpeningSgrSequence");
3047
- var wordLengths = /* @__PURE__ */ __name((string) => string.split(" ").map((word) => stringWidth2(word)), "wordLengths");
3048
- var wrapWord = /* @__PURE__ */ __name((rows, word, columns) => {
3049
- const characters = getGraphemes(word);
3050
- let isInsideEscape = false;
3051
- let isInsideLinkEscape = false;
3052
- let visible = stringWidth2(stripAnsi(rows.at(-1)));
3053
- for (const [index, character] of characters.entries()) {
3054
- const characterLength = stringWidth2(character);
3055
- if (visible + characterLength <= columns) {
3056
- rows[rows.length - 1] += character;
3057
- } else {
3058
- rows.push(character);
3059
- visible = 0;
3060
- }
3061
- if (ESCAPES.has(character) && !(isInsideLinkEscape && character === ANSI_ESCAPE && characters[index + 1] === "\\")) {
3062
- isInsideEscape = true;
3063
- const ansiEscapeLinkCandidate = characters.slice(index + 1, index + 1 + ANSI_ESCAPE_LINK.length).join("");
3064
- isInsideLinkEscape = ansiEscapeLinkCandidate === ANSI_ESCAPE_LINK;
3065
- }
3066
- if (isInsideEscape) {
3067
- if (isInsideLinkEscape) {
3068
- if (character === ANSI_ESCAPE_BELL || character === "\\" && index > 0 && characters[index - 1] === ANSI_ESCAPE) {
3069
- isInsideEscape = false;
3070
- isInsideLinkEscape = false;
3071
- }
3072
- } else if (character === ANSI_SGR_TERMINATOR) {
3073
- isInsideEscape = false;
3074
- }
3075
- continue;
3076
- }
3077
- visible += characterLength;
3078
- if (visible === columns && index < characters.length - 1) {
3079
- rows.push("");
3080
- visible = 0;
3081
- }
3082
- }
3083
- if (!visible && rows.at(-1).length > 0 && rows.length > 1) {
3084
- rows[rows.length - 2] += rows.pop();
3085
- }
3086
- }, "wrapWord");
3087
- var stringVisibleTrimSpacesRight = /* @__PURE__ */ __name((string) => {
3088
- const words = string.split(" ");
3089
- let last = words.length;
3090
- while (last > 0) {
3091
- if (stringWidth2(words[last - 1]) > 0) {
3092
- break;
3093
- }
3094
- last--;
3095
- }
3096
- if (last === words.length) {
3097
- return string;
3098
- }
3099
- return words.slice(0, last).join(" ") + words.slice(last).join("");
3100
- }, "stringVisibleTrimSpacesRight");
3101
- var expandTabs = /* @__PURE__ */ __name((line) => {
3102
- if (!line.includes(" ")) {
3103
- return line;
3104
- }
3105
- const segments = line.split(" ");
3106
- let visible = 0;
3107
- let expandedLine = "";
3108
- for (const [index, segment] of segments.entries()) {
3109
- expandedLine += segment;
3110
- visible += stringWidth2(segment);
3111
- if (index < segments.length - 1) {
3112
- const spaces = TAB_SIZE - visible % TAB_SIZE;
3113
- expandedLine += " ".repeat(spaces);
3114
- visible += spaces;
3115
- }
3116
- }
3117
- return expandedLine;
3118
- }, "expandTabs");
3119
- var exec = /* @__PURE__ */ __name((string, columns, options = {}) => {
3120
- if (options.trim !== false && string.trim() === "") {
3121
- return "";
3122
- }
3123
- let returnValue = "";
3124
- let escapeUrl;
3125
- const activeStyles = [];
3126
- const lengths = wordLengths(string);
3127
- let rows = [""];
3128
- for (const [index, word] of string.split(" ").entries()) {
3129
- if (options.trim !== false) {
3130
- rows[rows.length - 1] = rows.at(-1).trimStart();
3131
- }
3132
- let rowLength = stringWidth2(rows.at(-1));
3133
- if (index !== 0) {
3134
- if (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {
3135
- rows.push("");
3136
- rowLength = 0;
3137
- }
3138
- if (rowLength > 0 || options.trim === false) {
3139
- rows[rows.length - 1] += " ";
3140
- rowLength++;
3141
- }
3142
- }
3143
- if (options.hard && options.wordWrap !== false && lengths[index] > columns) {
3144
- const remainingColumns = columns - rowLength;
3145
- const breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns);
3146
- const breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns);
3147
- if (breaksStartingNextLine < breaksStartingThisLine) {
3148
- rows.push("");
3149
- }
3150
- wrapWord(rows, word, columns);
3151
- continue;
3152
- }
3153
- if (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) {
3154
- if (options.wordWrap === false && rowLength < columns) {
3155
- wrapWord(rows, word, columns);
3156
- continue;
3157
- }
3158
- rows.push("");
3159
- }
3160
- if (rowLength + lengths[index] > columns && options.wordWrap === false) {
3161
- wrapWord(rows, word, columns);
3162
- continue;
3163
- }
3164
- rows[rows.length - 1] += word;
3165
- }
3166
- if (options.trim !== false) {
3167
- rows = rows.map((row) => stringVisibleTrimSpacesRight(row));
3168
- }
3169
- const preString = rows.join("\n");
3170
- const pre = getGraphemes(preString);
3171
- let preStringIndex = 0;
3172
- for (const [index, character] of pre.entries()) {
3173
- returnValue += character;
3174
- if (character === ANSI_ESCAPE && pre[index + 1] !== "\\") {
3175
- const { groups } = ANSI_ESCAPE_REGEX.exec(preString.slice(preStringIndex)) || { groups: {} };
3176
- if (groups.sgr !== void 0) {
3177
- applySgrParameters(groups.sgr, activeStyles);
3178
- } else if (groups.uri !== void 0) {
3179
- escapeUrl = groups.uri.length === 0 ? void 0 : groups.uri;
3180
- }
3181
- } else if (character === ANSI_ESCAPE_CSI) {
3182
- const { groups } = ANSI_ESCAPE_CSI_REGEX.exec(preString.slice(preStringIndex)) || { groups: {} };
3183
- if (groups.sgr !== void 0) {
3184
- applySgrParameters(groups.sgr, activeStyles);
3185
- }
3186
- }
3187
- if (pre[index + 1] === "\n") {
3188
- if (escapeUrl) {
3189
- returnValue += wrapAnsiHyperlink("");
3190
- }
3191
- returnValue += getClosingSgrSequence(activeStyles);
3192
- } else if (character === "\n") {
3193
- const openingStyles = [...activeStyles];
3194
- applyLeadingSgrResets(preString.slice(preStringIndex + 1), openingStyles);
3195
- returnValue += getOpeningSgrSequence(openingStyles);
3196
- if (escapeUrl) {
3197
- returnValue += wrapAnsiHyperlink(escapeUrl);
3198
- }
3199
- }
3200
- preStringIndex += character.length;
3201
- }
3202
- return returnValue;
3203
- }, "exec");
3204
- function wrapAnsi(string, columns, options) {
3205
- return String(string).normalize().replaceAll("\r\n", "\n").split("\n").map((line) => exec(expandTabs(line), columns, options)).join("\n");
3206
- }
3207
- __name(wrapAnsi, "wrapAnsi");
3208
-
3209
2539
  // packages/cli/src/ui/utils/latexRenderer.ts
3210
2540
  init_esbuild_shims();
3211
2541
  var COMMAND_REPLACEMENTS = {
@@ -6479,14 +5809,15 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
6479
5809
  availableTerminalHeight,
6480
5810
  contentWidth,
6481
5811
  textColor = theme.text.primary,
6482
- sourceCopyIndexOffsets
5812
+ sourceCopyIndexOffsets,
5813
+ enforceHeightBudget = false
6483
5814
  }) => {
6484
5815
  const { renderMode } = useRenderMode();
6485
5816
  if (!text) return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, {});
6486
5817
  const renderVisualBlocks = renderMode === "render";
6487
5818
  const displayText = isPending ? text.trimEnd() : text;
6488
5819
  const allLines = displayText.split(/\r?\n/);
6489
- const pendingRenderedBudget = isPending && availableTerminalHeight !== void 0 ? Math.max(MIN_PENDING_CONTENT_LINES, availableTerminalHeight - 2) : void 0;
5820
+ const pendingRenderedBudget = (isPending || enforceHeightBudget) && availableTerminalHeight !== void 0 ? Math.max(MIN_PENDING_CONTENT_LINES, availableTerminalHeight - 2) : void 0;
6490
5821
  const headerRegex = /^ *(#{1,4}) +(.*)/;
6491
5822
  const codeFenceRegex = CODE_FENCE_RE;
6492
5823
  const ulItemRegex = /^([ \t]*)([-*+]) +(.*)/;
@@ -6497,6 +5828,7 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
6497
5828
  const tableRowRegex = TABLE_ROW_RE;
6498
5829
  const tableSeparatorRegex = TABLE_SEPARATOR_RE;
6499
5830
  let lines = allLines;
5831
+ let droppedSourceLines = 0;
6500
5832
  if (pendingRenderedBudget !== void 0) {
6501
5833
  const tableClampRows = availableTerminalHeight !== void 0 ? Math.max(2, availableTerminalHeight - TABLE_PENDING_RESERVED_ROWS) : Number.MAX_SAFE_INTEGER;
6502
5834
  const { keptLines } = fitPendingSlice(
@@ -6507,8 +5839,10 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
6507
5839
  );
6508
5840
  if (keptLines < allLines.length) {
6509
5841
  lines = allLines.slice(0, keptLines);
5842
+ droppedSourceLines = allLines.length - keptLines;
6510
5843
  }
6511
5844
  }
5845
+ const showTruncationCue = enforceHeightBudget && !isPending && droppedSourceLines > 0;
6512
5846
  if (isPending && renderVisualBlocks && lines.length > 0) {
6513
5847
  let start = lines.length;
6514
5848
  while (start > 0 && /^\s*\|/.test(lines[start - 1])) start--;
@@ -6934,6 +6268,19 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
6934
6268
  )
6935
6269
  );
6936
6270
  }
6271
+ if (showTruncationCue) {
6272
+ contentBlocks.push(
6273
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
6274
+ Text,
6275
+ {
6276
+ color: theme.text.secondary,
6277
+ wrap: "truncate-end",
6278
+ children: `... ${droppedSourceLines} more line${droppedSourceLines === 1 ? "" : "s"} not shown (viewport too small) ...`
6279
+ },
6280
+ `truncation-cue-${contentBlocks.length}`
6281
+ )
6282
+ );
6283
+ }
6937
6284
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: contentBlocks });
6938
6285
  }, "MarkdownDisplayInternal");
6939
6286
  var RenderCodeBlockInternal = /* @__PURE__ */ __name(({
@@ -7356,6 +6703,7 @@ var AssistantMessageContent = /* @__PURE__ */ __name(({
7356
6703
  }
7357
6704
  ), "AssistantMessageContent");
7358
6705
  var MAX_STREAMING_THINKING_VISUAL_LINES = 4;
6706
+ var BRIEF_THOUGHT_THRESHOLD_MS = 1e3;
7359
6707
  function tailVisualLines(text, width, maxLines) {
7360
6708
  const charBudget = maxLines * width * 2;
7361
6709
  let sliceStart = Math.max(0, text.length - charBudget);
@@ -7369,6 +6717,31 @@ function tailVisualLines(text, width, maxLines) {
7369
6717
  return lines.slice(-maxLines).join("\n");
7370
6718
  }
7371
6719
  __name(tailVisualLines, "tailVisualLines");
6720
+ var ThinkBody = /* @__PURE__ */ __name(({ text, isPending, expanded, availableTerminalHeight, contentWidth }) => {
6721
+ if (!isPending && !expanded) return null;
6722
+ if (isPending && !expanded) {
6723
+ const innerWidth = Math.max(contentWidth - 2, 20);
6724
+ const maxLines = availableTerminalHeight != null ? Math.max(
6725
+ 1,
6726
+ Math.min(
6727
+ MAX_STREAMING_THINKING_VISUAL_LINES,
6728
+ Math.floor(availableTerminalHeight / 3)
6729
+ )
6730
+ ) : MAX_STREAMING_THINKING_VISUAL_LINES;
6731
+ const display = tailVisualLines(text, innerWidth, maxLines);
6732
+ 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 }) });
6733
+ }
6734
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Box_default, { paddingLeft: 2, flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
6735
+ MarkdownDisplay,
6736
+ {
6737
+ text,
6738
+ isPending,
6739
+ availableTerminalHeight,
6740
+ contentWidth: contentWidth - 2,
6741
+ textColor: theme.text.secondary
6742
+ }
6743
+ ) });
6744
+ }, "ThinkBody");
7372
6745
  var ThinkMessage = /* @__PURE__ */ __name(({
7373
6746
  text,
7374
6747
  isPending,
@@ -7379,54 +6752,35 @@ var ThinkMessage = /* @__PURE__ */ __name(({
7379
6752
  clickable = false
7380
6753
  }) => {
7381
6754
  const durationSuffix = durationMs != null ? ` ${formatDuration2(durationMs)}` : "";
6755
+ const completedLabel = durationMs == null ? null : durationMs < BRIEF_THOUGHT_THRESHOLD_MS ? t("Thought briefly") : `${t("Thought for")} ${formatDuration2(durationMs)}`;
7382
6756
  if (!isPending && !expanded) {
7383
- const label = durationMs != null ? `${t("Thought for")} ${formatDuration2(durationMs)}` : t("Thinking");
6757
+ const label2 = completedLabel ?? t("Thinking");
7384
6758
  const hint = clickable ? t("(click or {{keyHint}} to expand)", { keyHint: toggleKeyHint }) : t("({{keyHint}} to expand)", { keyHint: toggleKeyHint });
7385
6759
  return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Text, { dimColor: true, italic: true, children: [
7386
6760
  THINKING_ICON,
7387
- label,
6761
+ label2,
7388
6762
  " ",
7389
6763
  hint
7390
6764
  ] });
7391
6765
  }
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`;
6766
+ const label = isPending ? `${t("Thinking")}\u2026${durationSuffix}` : completedLabel ?? `${t("Thinking")}\u2026`;
6767
+ const collapseHint = !isPending && expanded ? ` ${t("({{keyHint}} to collapse)", { keyHint: toggleKeyHint })}` : "";
7413
6768
  return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Box_default, { flexDirection: "column", children: [
7414
6769
  /* @__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 })
6770
+ isPending ? THINKING_ICON_PENDING : THINKING_ICON,
6771
+ label,
6772
+ collapseHint
7419
6773
  ] }),
7420
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Box_default, { paddingLeft: 2, flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
7421
- MarkdownDisplay,
6774
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
6775
+ ThinkBody,
7422
6776
  {
7423
6777
  text,
7424
- isPending: false,
6778
+ isPending,
6779
+ expanded,
7425
6780
  availableTerminalHeight,
7426
- contentWidth: contentWidth - 2,
7427
- textColor: theme.text.secondary
6781
+ contentWidth
7428
6782
  }
7429
- ) })
6783
+ )
7430
6784
  ] });
7431
6785
  }, "ThinkMessage");
7432
6786
  var ThinkMessageContent = /* @__PURE__ */ __name(({
@@ -7435,33 +6789,16 @@ var ThinkMessageContent = /* @__PURE__ */ __name(({
7435
6789
  expanded = false,
7436
6790
  availableTerminalHeight,
7437
6791
  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 }) });
6792
+ }) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
6793
+ ThinkBody,
6794
+ {
6795
+ text,
6796
+ isPending,
6797
+ expanded,
6798
+ availableTerminalHeight,
6799
+ contentWidth
7453
6800
  }
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");
6801
+ ), "ThinkMessageContent");
7465
6802
 
7466
6803
  // packages/cli/src/ui/components/messages/ToolGroupMessage.tsx
7467
6804
  init_esbuild_shims();
@@ -9262,15 +8599,15 @@ var isCjkChar = /* @__PURE__ */ __name((char) => CJK_CHAR_REGEX.test(char), "isC
9262
8599
  var WORD_BOUNDARIES_CACHE_MAX = 500;
9263
8600
  var SEGMENTER_LENGTH_LIMIT = 1500;
9264
8601
  var wordBoundariesCache = null;
9265
- var segmenter3 = null;
8602
+ var segmenter = null;
9266
8603
  function ensureSegmenterLoaded() {
9267
- if (segmenter3 !== null) return;
8604
+ if (segmenter !== null) return;
9268
8605
  try {
9269
- segmenter3 = new Intl.Segmenter("zh", { granularity: "word" });
8606
+ segmenter = new Intl.Segmenter("zh", { granularity: "word" });
9270
8607
  debugLogger4.info("Intl.Segmenter: initialized successfully");
9271
8608
  } catch (err) {
9272
8609
  debugLogger4.warn("Intl.Segmenter: failed to initialize", err);
9273
- segmenter3 = false;
8610
+ segmenter = false;
9274
8611
  }
9275
8612
  }
9276
8613
  __name(ensureSegmenterLoaded, "ensureSegmenterLoaded");
@@ -9310,14 +8647,14 @@ function getWordBoundaries(line, codePoints) {
9310
8647
  return cached;
9311
8648
  }
9312
8649
  ensureSegmenterLoaded();
9313
- if (!segmenter3) {
8650
+ if (!segmenter) {
9314
8651
  const fallback = charByCharFallback(line);
9315
8652
  evictCacheIfNeeded();
9316
8653
  wordBoundariesCache.set(line, fallback);
9317
8654
  return fallback;
9318
8655
  }
9319
8656
  try {
9320
- const segments = segmenter3.segment(line);
8657
+ const segments = segmenter.segment(line);
9321
8658
  const cpToStrIdx = [];
9322
8659
  let strIdx = 0;
9323
8660
  for (let i = 0; i < cps.length; i++) {
@@ -12042,7 +11379,8 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
12042
11379
  text: planProps.plan,
12043
11380
  isPending: false,
12044
11381
  availableTerminalHeight: planHeight,
12045
- contentWidth
11382
+ contentWidth,
11383
+ enforceHeightBudget: true
12046
11384
  }
12047
11385
  ) });
12048
11386
  } else if (confirmationDetails.type === "info") {
@@ -12307,12 +11645,22 @@ var ShellInputPrompt = /* @__PURE__ */ __name(({
12307
11645
  return null;
12308
11646
  }, "ShellInputPrompt");
12309
11647
 
11648
+ // packages/cli/src/ui/utils/tool-display-map.ts
11649
+ init_esbuild_shims();
11650
+ var TOOL_DISPLAY_BY_NAME = Object.fromEntries(
11651
+ Object.keys(ToolNames).map((key) => [
11652
+ ToolNames[key],
11653
+ ToolDisplayNames[key]
11654
+ ])
11655
+ );
11656
+
12310
11657
  // packages/cli/src/ui/components/messages/ToolMessage.tsx
12311
11658
  var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
12312
11659
  var AGENT_TOOL_NAMES = /* @__PURE__ */ new Set([
12313
11660
  ToolNames.AGENT,
12314
11661
  ...Object.entries(ToolNamesMigration).filter(([, canonical]) => canonical === ToolNames.AGENT).map(([legacy]) => legacy)
12315
11662
  ]);
11663
+ var APPROVAL_CONTEXT_CALLS = 3;
12316
11664
  var STATIC_HEIGHT = 1;
12317
11665
  var RESERVED_LINE_COUNT = 5;
12318
11666
  var MIN_LINES_SHOWN = 2;
@@ -12431,21 +11779,42 @@ var PlanResultRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childW
12431
11779
  childWidth
12432
11780
  }
12433
11781
  ), "PlanResultRenderer");
11782
+ var priorApprovalCalls = /* @__PURE__ */ __name((data) => (data.toolCalls ?? []).filter((call) => call.status !== "awaiting_approval").slice(-APPROVAL_CONTEXT_CALLS), "priorApprovalCalls");
11783
+ var SubagentApprovalContext = /* @__PURE__ */ __name(({ data }) => {
11784
+ const priorCalls = priorApprovalCalls(data);
11785
+ if (priorCalls.length === 0) return null;
11786
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { flexDirection: "column", children: priorCalls.map((call) => {
11787
+ const glyph = call.status === "failed" ? "\u2716" : call.status === "success" ? "\u2714" : "\u25CB";
11788
+ const displayName = localizeToolDisplayName(
11789
+ TOOL_DISPLAY_BY_NAME[call.name] ?? call.name
11790
+ );
11791
+ const desc = (call.description ?? "").replace(/\s*\n\s*/g, " ").trim();
11792
+ const label = desc ? `${displayName} ${desc}` : displayName;
11793
+ 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);
11794
+ }) });
11795
+ }, "SubagentApprovalContext");
12434
11796
  var SubagentExecutionRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childWidth, config, isFocused }) => {
12435
11797
  if (data.pendingConfirmation && isFocused) {
12436
11798
  const agentLabel = escapeAnsiCtrlCodes(data.subagentName || "agent");
11799
+ const HEADER_LINES = 1;
11800
+ const contextLines = priorApprovalCalls(data).length;
11801
+ const confirmationHeight = availableHeight !== void 0 ? Math.max(
11802
+ MINIMUM_MAX_HEIGHT,
11803
+ availableHeight - contextLines - HEADER_LINES
11804
+ ) : availableHeight;
12437
11805
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 1, children: [
12438
11806
  /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { children: [
12439
11807
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { color: theme.text.secondary, children: "Approval requested by " }),
12440
11808
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { bold: true, color: theme.text.accent, children: agentLabel }),
12441
11809
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { color: theme.text.secondary, children: ":" })
12442
11810
  ] }),
11811
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SubagentApprovalContext, { data }),
12443
11812
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
12444
11813
  ToolConfirmationMessage,
12445
11814
  {
12446
11815
  confirmationDetails: data.pendingConfirmation,
12447
11816
  isFocused,
12448
- availableTerminalHeight: availableHeight,
11817
+ availableTerminalHeight: confirmationHeight,
12449
11818
  contentWidth: childWidth - 2,
12450
11819
  compactMode: true,
12451
11820
  config
@@ -12634,7 +12003,11 @@ var ToolMessage = /* @__PURE__ */ __name(({
12634
12003
  () => usingDetailedDisplay && typeof detailedDisplay === "string" ? sanitizeTerminalText(detailedDisplay) : detailedDisplay,
12635
12004
  [detailedDisplay, usingDetailedDisplay]
12636
12005
  );
12637
- const effectiveResultDisplay = usingDetailedDisplay ? sanitizedDetailedDisplay : resultDisplay;
12006
+ const visionBridgeNoticeDisplay = isVisionBridgeNoticeDisplay(resultDisplay) ? resultDisplay : void 0;
12007
+ const visionBridgeNoticeText = visionBridgeNoticeDisplay ? sanitizeTerminalText(
12008
+ formatVisionBridgeNoticeDisplay(visionBridgeNoticeDisplay)
12009
+ ) : void 0;
12010
+ const effectiveResultDisplay = usingDetailedDisplay ? sanitizedDetailedDisplay : visionBridgeNoticeDisplay ? void 0 : resultDisplay;
12638
12011
  if (usingDetailedDisplay) {
12639
12012
  renderOutputAsMarkdown = false;
12640
12013
  }
@@ -12665,6 +12038,14 @@ var ToolMessage = /* @__PURE__ */ __name(({
12665
12038
  ),
12666
12039
  emphasis === "high" && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(TrailingIndicator, {})
12667
12040
  ] }),
12041
+ visionBridgeNoticeText && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
12042
+ StringResultRenderer,
12043
+ {
12044
+ data: visionBridgeNoticeText,
12045
+ renderAsMarkdown: false,
12046
+ childWidth: innerWidth
12047
+ }
12048
+ ) }),
12668
12049
  effectiveDisplayRenderer.type !== "none" && !shouldCollapseResult && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { flexDirection: "column", children: [
12669
12050
  effectiveDisplayRenderer.type === "todo" && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(TodoResultRenderer, { data: effectiveDisplayRenderer.data }),
12670
12051
  effectiveDisplayRenderer.type === "plan" && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
@@ -12774,12 +12155,6 @@ function isAgentResult(rd) {
12774
12155
  return typeof rd === "object" && rd !== null && "type" in rd && rd.type === "task_execution";
12775
12156
  }
12776
12157
  __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
12158
  function activityLabel(row) {
12784
12159
  const last = row.recentActivity;
12785
12160
  if (!last) return "";
@@ -12906,7 +12281,7 @@ var AgentRow = /* @__PURE__ */ __name(({ row, now }) => {
12906
12281
  const { glyph, color } = statusGlyph(row.status);
12907
12282
  const safeName = escapeAnsiCtrlCodes(row.name);
12908
12283
  const displayName = truncateMiddle(safeName, NAME_COL_WIDTH);
12909
- const activity = escapeAnsiCtrlCodes(activityLabel(row));
12284
+ const activity = sanitizeMultilineForDisplay(activityLabel(row));
12910
12285
  const elapsed = elapsedLabel(row, now);
12911
12286
  const tokens = row.tokenCount && row.tokenCount > 0 ? formatTokenCount(row.tokenCount) : "";
12912
12287
  const trailingParts = [];
@@ -13073,7 +12448,10 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
13073
12448
  memoryBadge
13074
12449
  ] });
13075
12450
  }
13076
- const collapsibleSummaryHeight = collapsibleTools.length > 0 ? 1 : 0;
12451
+ const collapsibleSummaryHeight = estimateCompactToolGroupHeight(
12452
+ collapsibleTools,
12453
+ contentWidth
12454
+ );
13077
12455
  const memoryBadgeHeight = hasMemoryBadge ? 1 : 0;
13078
12456
  const staticHeight = (
13079
12457
  /* marginBottom */
@@ -15564,6 +14942,7 @@ var ExtensionsList = /* @__PURE__ */ __name(() => {
15564
14942
  break;
15565
14943
  case "update available" /* UPDATE_AVAILABLE */:
15566
14944
  case "updated, needs restart" /* UPDATED_NEEDS_RESTART */:
14945
+ case "updated with warnings" /* UPDATED_WITH_WARNINGS */:
15567
14946
  stateColor = "yellow";
15568
14947
  break;
15569
14948
  case "error" /* ERROR */:
@@ -16970,6 +16349,7 @@ var ClickableThinkMessage = /* @__PURE__ */ __name(({
16970
16349
  onToggle
16971
16350
  }) => {
16972
16351
  const ref = (0, import_react34.useRef)(null);
16352
+ const { rows: terminalHeight } = useTerminalSize();
16973
16353
  const settings = useSettings();
16974
16354
  const clickable = !!settings.merged.ui?.useTerminalBuffer;
16975
16355
  const isActive = !isPending;
@@ -16979,12 +16359,12 @@ var ClickableThinkMessage = /* @__PURE__ */ __name(({
16979
16359
  if (event.name !== "left-press" || !ref.current) return;
16980
16360
  const metrics = measureElementPosition(ref.current);
16981
16361
  const col = event.col - 1;
16982
- const row = event.row - 1;
16362
+ const row = layoutRowForEvent(ref.current, event.row, terminalHeight);
16983
16363
  if (col >= metrics.x && col < metrics.x + metrics.width && row >= metrics.y && row < metrics.y + metrics.height) {
16984
16364
  onToggle();
16985
16365
  }
16986
16366
  },
16987
- [onToggle]
16367
+ [onToggle, terminalHeight]
16988
16368
  ),
16989
16369
  { isActive }
16990
16370
  );
@@ -17646,6 +17026,7 @@ export {
17646
17026
  renderSoftwareCursor,
17647
17027
  TextInput,
17648
17028
  ToolConfirmationMessage,
17029
+ TOOL_DISPLAY_BY_NAME,
17649
17030
  dist_default,
17650
17031
  AboutBox,
17651
17032
  dist_default2,