@qwen-code/qwen-code 0.19.10 → 0.19.11-nightly.20260718.767a32484

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 (307) hide show
  1. package/bundled/qc-helper/docs/configuration/model-providers.md +11 -0
  2. package/bundled/qc-helper/docs/configuration/settings.md +15 -14
  3. package/bundled/qc-helper/docs/features/approval-mode.md +2 -2
  4. package/bundled/qc-helper/docs/features/channels/dingtalk.md +30 -0
  5. package/bundled/qc-helper/docs/features/channels/overview.md +66 -17
  6. package/bundled/qc-helper/docs/features/channels/wecom.md +8 -7
  7. package/bundled/qc-helper/docs/features/sandbox.md +2 -0
  8. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +42 -7
  9. package/bundled/qc-helper/docs/qwen-serve.md +77 -46
  10. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  11. package/bundled/review/SKILL.md +163 -403
  12. package/chunks/{MaxSizedBox-67ODZ4SZ.js → MaxSizedBox-ZFHA4QEQ.js} +30 -30
  13. package/chunks/{StandaloneSessionPicker-SIPBQT5Z.js → StandaloneSessionPicker-YRWOQVQA.js} +44 -44
  14. package/chunks/{acpAgent-VPZJXLFX.js → acpAgent-U2P2IESZ.js} +1423 -487
  15. package/chunks/{agent-Z7NWL6XL.js → agent-GQXX6X5Y.js} +26 -26
  16. package/chunks/{agent-headless-73HZ6ROQ.js → agent-headless-3572NBCK.js} +26 -26
  17. package/chunks/{anthropicContentGenerator-56U3YCP2.js → anthropicContentGenerator-Y65DMM64.js} +103 -18
  18. package/chunks/{artifact-tool-BWZZJ42H.js → artifact-tool-WR7I2XON.js} +2 -2
  19. package/chunks/{askUserQuestion-WU3S5A5T.js → askUserQuestion-B4FUTPHD.js} +2 -44
  20. package/chunks/{bridge-XFKW6S7Q.js → bridge-N5RMGD7G.js} +31 -33
  21. package/chunks/{ca-C2JTT2N5.js → ca-M3GQQ26D.js} +7 -2
  22. package/chunks/channel-worker-group-HZVJKLGX.js +21 -0
  23. package/chunks/{channel-worker-manager-5RWKSGEU.js → channel-worker-manager-3WDK4HNS.js} +34 -10
  24. package/chunks/{channel-worker-supervisor-PCDAZN4D.js → channel-worker-supervisor-U2W6Q5F7.js} +6 -4
  25. package/chunks/{chunk-YYPXHMWO.js → chunk-2XRGFF5K.js} +6 -6
  26. package/chunks/{chunk-ZKMGAFYV.js → chunk-2YSZE74N.js} +2 -2
  27. package/chunks/{chunk-L5U3ELZX.js → chunk-335ECZTA.js} +1 -1
  28. package/chunks/{chunk-5EBKKSBX.js → chunk-336KPNNV.js} +2 -2
  29. package/chunks/{chunk-Q5GLXH5Q.js → chunk-3CL5SEDT.js} +6 -6
  30. package/chunks/{chunk-2FO5GFKZ.js → chunk-3DJY4IFO.js} +1 -1
  31. package/chunks/{chunk-CJFNEBYB.js → chunk-3NWYQ7FX.js} +2 -2
  32. package/chunks/{chunk-WIASPMLX.js → chunk-3X2CFOUM.js} +358 -298
  33. package/chunks/{chunk-K7CRWKOE.js → chunk-3YJZ6WNY.js} +5812 -4520
  34. package/chunks/{chunk-Y66VOBRP.js → chunk-4CA4WUMS.js} +2 -2
  35. package/chunks/{chunk-LQIDP6K5.js → chunk-4CHDYDG3.js} +1 -1
  36. package/chunks/{chunk-TISZXPAX.js → chunk-4HCYNDMG.js} +1 -1
  37. package/chunks/chunk-4JBTZBCW.js +140 -0
  38. package/chunks/{chunk-TV6K2FB4.js → chunk-4RPARQ5D.js} +2 -2
  39. package/chunks/{chunk-RCEEXIOO.js → chunk-4XCVGEEX.js} +3 -3
  40. package/chunks/{chunk-N6FXRR6P.js → chunk-57RWF6R7.js} +1 -1
  41. package/chunks/chunk-5O34IMY5.js +59 -0
  42. package/chunks/{chunk-5LROA5W4.js → chunk-5QRK2VZG.js} +8 -8
  43. package/chunks/{chunk-7L4XBYVW.js → chunk-632KROVU.js} +10 -3
  44. package/chunks/{chunk-65N2J6V2.js → chunk-64XGKNSI.js} +3 -3
  45. package/chunks/{chunk-P6LART6G.js → chunk-66IT3EY2.js} +1059 -129
  46. package/chunks/{chunk-FXMC7SL2.js → chunk-6ITLKEOZ.js} +3 -3
  47. package/chunks/{chunk-F7NXQH4Y.js → chunk-6YIRYY3P.js} +1 -1
  48. package/chunks/{chunk-GGJII3FM.js → chunk-6Z5NRZVU.js} +92 -3
  49. package/chunks/{chunk-DPFBNG72.js → chunk-AEKYFMYE.js} +1 -1
  50. package/chunks/{chunk-2UUAIFQO.js → chunk-ANRANWVE.js} +9 -1
  51. package/chunks/{chunk-SXU3KKNI.js → chunk-ATJ7H5AS.js} +419 -76
  52. package/chunks/{chunk-6GETGQWP.js → chunk-C5NSOSF4.js} +64 -18
  53. package/chunks/{chunk-TQBODCFD.js → chunk-CMVFTMRD.js} +251 -3
  54. package/chunks/{chunk-DK33QJ3V.js → chunk-CZSAIBUB.js} +733 -14
  55. package/chunks/{chunk-3MX7D6QN.js → chunk-DASWPKXR.js} +32 -4
  56. package/chunks/{chunk-JSJFKYWT.js → chunk-DPSHAB47.js} +2 -2
  57. package/chunks/{chunk-7MJAZMXK.js → chunk-ECZFTRTP.js} +29 -78
  58. package/chunks/{chunk-H3FQOPPS.js → chunk-EKG3BHQY.js} +4 -4
  59. package/chunks/{chunk-FSA7ERJ2.js → chunk-F2RR4HO2.js} +1 -1
  60. package/chunks/{chunk-EQY6POVO.js → chunk-F5XYN5VF.js} +2 -2
  61. package/chunks/chunk-FEOZBUMT.js +77 -0
  62. package/chunks/{chunk-L62SEJWY.js → chunk-FHUXCRAF.js} +4 -4
  63. package/chunks/{chunk-OFEVHGVU.js → chunk-FSJGBUQI.js} +818 -31
  64. package/chunks/{chunk-FBU7WRZI.js → chunk-FUTHTZVV.js} +1 -1
  65. package/chunks/{chunk-ZRKBI3DP.js → chunk-FZRES4GK.js} +1 -1
  66. package/chunks/{chunk-OKAIGAYW.js → chunk-G274ETR6.js} +3 -3
  67. package/chunks/{chunk-6GKMJPOC.js → chunk-GA3WUOO7.js} +5 -5
  68. package/chunks/{chunk-X362TMXZ.js → chunk-GAQOQMHY.js} +8 -6
  69. package/chunks/{chunk-WLXYAKV7.js → chunk-GG6RSNWS.js} +9 -4
  70. package/chunks/{chunk-CEW4HDPK.js → chunk-GUNTLALV.js} +2484 -362
  71. package/chunks/{chunk-LXLTBIDP.js → chunk-HCCR43AY.js} +1 -1
  72. package/chunks/{chunk-RDRVMDWV.js → chunk-HIMIG6PI.js} +11 -11
  73. package/chunks/{chunk-MO7O5722.js → chunk-HQXQCIT2.js} +45 -5
  74. package/chunks/{chunk-LTNI523B.js → chunk-HT7L5FCZ.js} +28 -5
  75. package/chunks/{chunk-7NAWTFVY.js → chunk-IENO2YAT.js} +3 -3
  76. package/chunks/{chunk-3XJFUTNM.js → chunk-IK5TYYVR.js} +59 -12
  77. package/chunks/{chunk-AAR5SGMD.js → chunk-IVKLDHU6.js} +7 -5
  78. package/chunks/{chunk-6W6DI34P.js → chunk-IX7O5WI3.js} +180 -8
  79. package/chunks/{chunk-SPJQO2CE.js → chunk-J2MKYJKZ.js} +2 -2
  80. package/chunks/{chunk-SPUYQB4T.js → chunk-JBAQ5BYX.js} +1 -1
  81. package/chunks/{chunk-TYLOFD2U.js → chunk-JCJPZMJV.js} +1 -1
  82. package/chunks/chunk-JDIUK2Y3.js +226 -0
  83. package/chunks/{chunk-L37RC7MQ.js → chunk-JUVTV4NF.js} +1 -1
  84. package/chunks/{chunk-WDWJ4OQJ.js → chunk-K2GBHL73.js} +4 -4
  85. package/chunks/{chunk-HHEFI4RP.js → chunk-KEVDWH3U.js} +857 -137
  86. package/chunks/{chunk-YU56QGXX.js → chunk-KTKETHMY.js} +1 -1
  87. package/chunks/{chunk-WDW64OW3.js → chunk-LGY7PG7Q.js} +5 -5
  88. package/chunks/{chunk-E67NFMF4.js → chunk-LKR7QQ63.js} +37 -3
  89. package/chunks/{chunk-4YWLED2A.js → chunk-LSFVUGXT.js} +9 -6
  90. package/chunks/{chunk-W34A5MJH.js → chunk-LTD3CHGS.js} +1 -1
  91. package/chunks/chunk-LXXMOYPL.js +22 -0
  92. package/chunks/{chunk-BBNVFRGD.js → chunk-MI2V6IWU.js} +1 -1
  93. package/chunks/{chunk-UFOKA4PR.js → chunk-O2K6BLPZ.js} +114 -4
  94. package/chunks/{chunk-B5I2IIWY.js → chunk-OBYAX5QZ.js} +6 -6
  95. package/chunks/{chunk-V7EQTZYR.js → chunk-OCQ2QTFJ.js} +203 -47
  96. package/chunks/{chunk-VBRRNQB7.js → chunk-OPVIKLKK.js} +112 -25
  97. package/chunks/{chunk-2Z5UX4KI.js → chunk-OSSDHJDU.js} +1 -1
  98. package/chunks/{chunk-TTUO4DNG.js → chunk-OXOEOOQU.js} +126 -734
  99. package/chunks/{chunk-4FMG7EDJ.js → chunk-PWYLF7SS.js} +79 -16
  100. package/chunks/chunk-QFEY6OXH.js +45 -0
  101. package/chunks/{chunk-YX4LLZ3D.js → chunk-QPRDXJIC.js} +115 -40
  102. package/chunks/{chunk-7R4DPSRA.js → chunk-R3VWUU2E.js} +1 -1
  103. package/chunks/{chunk-XLIRF7IK.js → chunk-S4N3G4BB.js} +1 -1
  104. package/chunks/{chunk-ARKANCNX.js → chunk-SGPFJMRP.js} +1 -1
  105. package/chunks/{chunk-WTSXKLG5.js → chunk-SUARMD4Q.js} +1 -1
  106. package/chunks/{chunk-PZL23GTM.js → chunk-T3W4SDRB.js} +2 -0
  107. package/chunks/chunk-T4TZQJ7W.js +48 -0
  108. package/chunks/{chunk-K4PZ5F5T.js → chunk-TVYM3Q3J.js} +101 -8
  109. package/chunks/{chunk-4LD5APFL.js → chunk-TYQMGACW.js} +1 -0
  110. package/chunks/{chunk-6OATMEYN.js → chunk-U2LNTX56.js} +12 -4
  111. package/chunks/{chunk-422XAKCK.js → chunk-U2XBPBO3.js} +4 -3
  112. package/chunks/{chunk-LNUXFLLJ.js → chunk-U4FJ26D2.js} +54 -6
  113. package/chunks/{chunk-ZQTZXVHP.js → chunk-U6OPT4H2.js} +4 -18
  114. package/chunks/{chunk-7NFB7LBQ.js → chunk-UE5TZ55T.js} +8 -0
  115. package/chunks/{chunk-CUUXANEQ.js → chunk-URP6O2PP.js} +6 -1
  116. package/chunks/{chunk-GDQQRV43.js → chunk-V2FRLYHN.js} +3 -3
  117. package/chunks/{chunk-WIEO4CWB.js → chunk-VAJS2E2D.js} +1 -1
  118. package/chunks/{chunk-TXY2C3D2.js → chunk-VNN3JNYT.js} +1 -1
  119. package/chunks/{chunk-YHN5SUIJ.js → chunk-W7H223ZZ.js} +1 -1
  120. package/chunks/{chunk-WX6SD4IQ.js → chunk-WEPXQKGP.js} +1 -1
  121. package/chunks/{chunk-KSO42X3Z.js → chunk-X6YQWCIJ.js} +21 -2
  122. package/chunks/{chunk-URU5UEK6.js → chunk-XA7OKDWM.js} +135 -68
  123. package/chunks/{chunk-Q6TUALBE.js → chunk-XAAEDML2.js} +1 -1
  124. package/chunks/{chunk-KKRTYONM.js → chunk-XSPFQQRE.js} +3 -3
  125. package/chunks/{chunk-OATTJGPJ.js → chunk-Y72B36CP.js} +7 -7
  126. package/chunks/{chunk-ZPAHLFZU.js → chunk-Z2LBNX3R.js} +2 -2
  127. package/chunks/{chunk-XXJKGHZV.js → chunk-ZTSDZQZO.js} +131 -4
  128. package/chunks/{computer-use-IYTX45WA.js → computer-use-UIFBH25Y.js} +26 -26
  129. package/chunks/{config-utils-CFT33LTP.js → config-utils-2LHI7JXU.js} +3 -3
  130. package/chunks/{contextCommand-272V77WU.js → contextCommand-VGZHKEH2.js} +28 -28
  131. package/chunks/{create-sub-session-WNX2OQVX.js → create-sub-session-DIJOV6HV.js} +2 -2
  132. package/chunks/{create-sub-session-CBJMQLYP.js → create-sub-session-OFVI4H6I.js} +26 -26
  133. package/chunks/{cron-create-36TIFKRT.js → cron-create-34GVLSW5.js} +4 -4
  134. package/chunks/{cron-delete-OQD3WULU.js → cron-delete-NMVKUL45.js} +4 -4
  135. package/chunks/{cron-list-4533T2FH.js → cron-list-277ZOR7L.js} +4 -4
  136. package/chunks/{daemon-RNGFPMAB.js → daemon-72MEV3TY.js} +361 -84
  137. package/chunks/daemon-status-provider-ZJJ6AOG2.js +75 -0
  138. package/chunks/{de-2VCDRDGU.js → de-56TMDIKS.js} +7 -2
  139. package/chunks/{dist-3V3ZV6ML.js → dist-4W3UGU2A.js} +1 -1
  140. package/chunks/{dist-HNN7DR2L.js → dist-G6QCGO2K.js} +58 -30
  141. package/chunks/{dist-ERCPDVA6.js → dist-ILVRL322.js} +4 -51
  142. package/chunks/{dist-PHEPJLXD.js → dist-KEZ5JWH4.js} +2 -2
  143. package/chunks/{dist-JZE7F6YR.js → dist-LQHDHBPP.js} +1 -1
  144. package/chunks/{dist-MOEC47TR.js → dist-SVHAGOLN.js} +1 -1
  145. package/chunks/{earlyInputCapture-EN4BRREQ.js → earlyInputCapture-NPF4PVUE.js} +27 -27
  146. package/chunks/{edit-OMAF2QDR.js → edit-F7CT6NZH.js} +27 -27
  147. package/chunks/{en-NJCA3TAA.js → en-AXS2N62H.js} +12 -3
  148. package/chunks/{enter-worktree-BBZX52HG.js → enter-worktree-Z4ET3MZL.js} +26 -26
  149. package/chunks/{enterPlanMode-5NNFMBUY.js → enterPlanMode-VYR7T5NX.js} +27 -29
  150. package/chunks/{environment-7TEWMJYN.js → environment-MBTXL57Q.js} +28 -28
  151. package/chunks/{errors-I4VKVX3F.js → errors-HN36J4FR.js} +28 -28
  152. package/chunks/{exit-worktree-FUWRJI33.js → exit-worktree-RU7JYFMF.js} +26 -26
  153. package/chunks/exitPlanMode-LUBAWMZQ.js +390 -0
  154. package/chunks/{fast-path-ZA57TOH4.js → fast-path-RFT3CDNZ.js} +2 -2
  155. package/chunks/{fr-5F3E7WKD.js → fr-ZJPE5OVN.js} +7 -2
  156. package/chunks/{gemini-UOAKVXBG.js → gemini-37NTNKZF.js} +215 -231
  157. package/chunks/{geminiContentGenerator-G6UCE6MW.js → geminiContentGenerator-76HNOYNQ.js} +5 -5
  158. package/chunks/{glob-4GJQ2UFF.js → glob-DWD7JCZE.js} +32 -27
  159. package/chunks/{grep-5QSYXF2E.js → grep-NJRXFV5C.js} +32 -27
  160. package/chunks/{handleAutoUpdate-ULHNWL6R.js → handleAutoUpdate-7GBDXW6U.js} +30 -30
  161. package/chunks/{i18n-CYDUTF6F.js → i18n-MYD5VGED.js} +27 -27
  162. package/chunks/{initializer-NRFKUGIO.js → initializer-4DHPNAZG.js} +32 -32
  163. package/chunks/{installationInfo-WELKRHHE.js → installationInfo-RWOW6BZO.js} +27 -27
  164. package/chunks/{ja-66J6B53L.js → ja-57GG4QSL.js} +7 -2
  165. package/chunks/{keychain-token-storage-AU22CQI6.js → keychain-token-storage-K23CFKGN.js} +2 -2
  166. package/chunks/{list-JVDXEG2E.js → list-MMCNNHE7.js} +34 -34
  167. package/chunks/{loadedSettingsAdapter-WAM4VUTG.js → loadedSettingsAdapter-UK4JWPYU.js} +31 -31
  168. package/chunks/{loop-wakeup-MVUKDVCP.js → loop-wakeup-KCLY4XQM.js} +5 -5
  169. package/chunks/{ls-RXNIAQDE.js → ls-UNI4LAJ3.js} +4 -4
  170. package/chunks/{lsp-HB5LM5IL.js → lsp-HPACPJAN.js} +2 -2
  171. package/chunks/{mcp-YHOZN3ZM.js → mcp-AFCVA4UV.js} +31 -31
  172. package/chunks/{monitor-R7XZPJHQ.js → monitor-RK637BNO.js} +28 -27
  173. package/chunks/nonInteractiveCli-OUGWLHNV.js +129 -0
  174. package/chunks/{notebook-edit-6RNKE2L2.js → notebook-edit-LY2X3CMF.js} +27 -27
  175. package/chunks/{openaiContentGenerator-XNS5S64I.js → openaiContentGenerator-MDYDW7IA.js} +14 -14
  176. package/chunks/{pidfile-XE4RRR2P.js → pidfile-2NUYRLKB.js} +27 -27
  177. package/chunks/processUtils-7QH3VBVN.js +29 -0
  178. package/chunks/{pt-TFZO5Y6T.js → pt-MCGZ3RZ4.js} +7 -2
  179. package/chunks/{qwenContentGenerator-APDPJ3VN.js → qwenContentGenerator-3HT4TVDL.js} +28 -28
  180. package/chunks/{qwenOAuth2-LEYOU7RU.js → qwenOAuth2-3A4TJVZT.js} +5 -5
  181. package/chunks/{read-file-XSUWXSR7.js → read-file-NE4FREFR.js} +10 -10
  182. package/chunks/{read-mcp-resource-6LRTZKXI.js → read-mcp-resource-C6NT52T6.js} +2 -2
  183. package/chunks/{record-artifact-PMDTY4OS.js → record-artifact-ENCU7QCL.js} +2 -2
  184. package/chunks/{ripGrep-APB3CDMU.js → ripGrep-DBLXWQCJ.js} +26 -26
  185. package/chunks/{ru-4L4LFHIT.js → ru-GA3NZW5Q.js} +7 -2
  186. package/chunks/{run-qwen-serve-NWTGPERT.js → run-qwen-serve-3NOCI6IL.js} +63 -39
  187. package/chunks/{runtime-EIO3NQKR.js → runtime-ZI7DSZSS.js} +35 -35
  188. package/chunks/{scheduler-JJDZBDRN.js → scheduler-SOVEP5K7.js} +26 -26
  189. package/chunks/{send-message-SR4WSXP2.js → send-message-5IFPZTPE.js} +3 -3
  190. package/chunks/{serve-WTIPB3EI.js → serve-DB6OCXIA.js} +31 -31
  191. package/chunks/{server-NJPHQHLH.js → server-LDY4YVU4.js} +2257 -648
  192. package/chunks/{session-O4AO7FTS.js → session-D6OG5SKX.js} +99 -72
  193. package/chunks/{settings-HQNDK7TG.js → settings-L52ZV5LO.js} +30 -30
  194. package/chunks/{shell-UIXM6PWG.js → shell-IU27OY3Q.js} +28 -26
  195. package/chunks/{skill-3XMB4ULV.js → skill-BSOJT7LE.js} +12 -12
  196. package/chunks/{spawnChannel-3R632QRM.js → spawnChannel-HQAM25DD.js} +28 -29
  197. package/chunks/{src-USZKPUOC.js → src-7ZBIMTJZ.js} +130 -51
  198. package/chunks/{standalone-update-L5XW3D7K.js → standalone-update-77457VVK.js} +28 -28
  199. package/chunks/{startInteractiveUI-CPZOL2WB.js → startInteractiveUI-S7WC6EZG.js} +2310 -1835
  200. package/chunks/{syntheticOutput-YKFNUQZD.js → syntheticOutput-ULOVVLY4.js} +3 -3
  201. package/chunks/{task-create-NUFOHU53.js → task-create-V2DCDSET.js} +7 -7
  202. package/chunks/{task-list-Z2IKQY3S.js → task-list-DPL5ZN55.js} +5 -5
  203. package/chunks/{task-stop-KQFIVQTJ.js → task-stop-CPEQWOT6.js} +2 -2
  204. package/chunks/{task-update-HKADXSTD.js → task-update-ZR45M5Q7.js} +7 -7
  205. package/chunks/{team-create-XXPRF3IQ.js → team-create-CO7HSUON.js} +26 -26
  206. package/chunks/{team-delete-SDNTGZLG.js → team-delete-HIWXCWJU.js} +5 -5
  207. package/chunks/{team-plan-approval-EOTTKHDW.js → team-plan-approval-QDZF5YZY.js} +26 -26
  208. package/chunks/{theme-manager-P6UITO2L.js → theme-manager-UTUT3I4P.js} +27 -27
  209. package/chunks/todoWrite-HK6B3RHJ.js +358 -0
  210. package/chunks/{tool-search-DDNGK2LR.js → tool-search-2UUORA35.js} +11 -11
  211. package/chunks/{total-session-admission-PL5N7DNY.js → total-session-admission-NTWG6G3F.js} +32 -34
  212. package/chunks/{trustedFolders-C5LMF3UR.js → trustedFolders-YF37ZCN5.js} +27 -27
  213. package/chunks/update-relaunch-QFNHPMZZ.js +87 -0
  214. package/chunks/{updateCheck-QTVVISH7.js → updateCheck-B6O42VMD.js} +30 -28
  215. package/chunks/{validateNonInterActiveAuth-RY4RKBQG.js → validateNonInterActiveAuth-SCIWJ4CX.js} +65 -65
  216. package/chunks/{version-U45RYOSD.js → version-7DA6LAI3.js} +1 -1
  217. package/chunks/{web-fetch-ZSPR3PRR.js → web-fetch-B62SJXM2.js} +5 -6
  218. package/chunks/{workflow-TCIAQYOA.js → workflow-Q5WG4THP.js} +27 -27
  219. package/chunks/{workspace-providers-status-I3G2HYLY.js → workspace-providers-status-WWLAGWQW.js} +34 -34
  220. package/chunks/{workspace-registration-store-IH5GLZ6Y.js → workspace-registration-store-BVYQVY2H.js} +1 -1
  221. package/chunks/{workspace-registry-QEKBELIX.js → workspace-registry-OD7ACADD.js} +32 -34
  222. package/chunks/{workspace-service-ORKHGLP3.js → workspace-service-4LYJWS63.js} +37 -38
  223. package/chunks/{workspace-skills-status-D7QCNDYY.js → workspace-skills-status-P2AQLZZS.js} +32 -32
  224. package/chunks/{write-file-JGRQR5VM.js → write-file-TEPGXNM3.js} +60 -27
  225. package/chunks/{zh-FSAH32JB.js → zh-E34DZ2S3.js} +12 -3
  226. package/chunks/{zh-TW-D2YIE2LO.js → zh-TW-PEI2ZWUR.js} +12 -3
  227. package/cli-entry.js +92 -8
  228. package/cli.js +11 -11
  229. package/locales/ca.js +12 -2
  230. package/locales/de.js +12 -2
  231. package/locales/en.js +20 -5
  232. package/locales/fr.js +12 -2
  233. package/locales/ja.js +12 -2
  234. package/locales/pt.js +12 -2
  235. package/locales/ru.js +12 -2
  236. package/locales/zh-TW.js +19 -3
  237. package/locales/zh.js +19 -3
  238. package/package.json +3 -3
  239. package/web-shell/assets/{arc-CUeDlxvE.js → arc-Dh-N5oEG.js} +1 -1
  240. package/web-shell/assets/{architectureDiagram-3BPJPVTR-PiUszkQA.js → architectureDiagram-3BPJPVTR-DBOQgtfF.js} +1 -1
  241. package/web-shell/assets/{blockDiagram-GPEHLZMM-s2wYSO7e.js → blockDiagram-GPEHLZMM-Dyxbuyju.js} +1 -1
  242. package/web-shell/assets/{c4Diagram-AAUBKEIU-DyLxZoz9.js → c4Diagram-AAUBKEIU-DCJR5HPT.js} +1 -1
  243. package/web-shell/assets/channel-DY0fkcKT.js +1 -0
  244. package/web-shell/assets/{chunk-2J33WTMH-Dsdai7Tk.js → chunk-2J33WTMH-BkMUcy3O.js} +1 -1
  245. package/web-shell/assets/{chunk-4BX2VUAB-DEosOjV7.js → chunk-4BX2VUAB-BSm4pLQk.js} +1 -1
  246. package/web-shell/assets/{chunk-55IACEB6-sNsRLTXf.js → chunk-55IACEB6-CuRr-XgW.js} +1 -1
  247. package/web-shell/assets/{chunk-727SXJPM-DkRNZzmh.js → chunk-727SXJPM-CLv7-w3t.js} +1 -1
  248. package/web-shell/assets/{chunk-AQP2D5EJ-BrsRNpzd.js → chunk-AQP2D5EJ-Cz_n3-JW.js} +1 -1
  249. package/web-shell/assets/{chunk-FMBD7UC4-CI039lpl.js → chunk-FMBD7UC4-CFT_62Hq.js} +1 -1
  250. package/web-shell/assets/{chunk-ND2GUHAM-M-pkeIfu.js → chunk-ND2GUHAM-DWz6DOZ6.js} +1 -1
  251. package/web-shell/assets/{chunk-QZHKN3VN-C4ckGNbH.js → chunk-QZHKN3VN-C-mRhUzw.js} +1 -1
  252. package/web-shell/assets/classDiagram-4FO5ZUOK-DBvJ6PZo.js +1 -0
  253. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DBvJ6PZo.js +1 -0
  254. package/web-shell/assets/{cose-bilkent-S5V4N54A-BciKUAFq.js → cose-bilkent-S5V4N54A-BqCZS3i1.js} +1 -1
  255. package/web-shell/assets/{dagre-BM42HDAG-C1nTSgU6.js → dagre-BM42HDAG-BGasdP8i.js} +1 -1
  256. package/web-shell/assets/{diagram-2AECGRRQ-BDPNWr1m.js → diagram-2AECGRRQ-BSyLDkMy.js} +1 -1
  257. package/web-shell/assets/{diagram-5GNKFQAL-CNFhTszL.js → diagram-5GNKFQAL-CM-ZJxWC.js} +1 -1
  258. package/web-shell/assets/{diagram-KO2AKTUF-CjPa4p5a.js → diagram-KO2AKTUF-wJdzt_C5.js} +1 -1
  259. package/web-shell/assets/{diagram-LMA3HP47-ZzPykSyG.js → diagram-LMA3HP47-DiH2fhpL.js} +1 -1
  260. package/web-shell/assets/{diagram-OG6HWLK6-0UVtZ9A4.js → diagram-OG6HWLK6-BZ9z1ZBl.js} +1 -1
  261. package/web-shell/assets/{erDiagram-TEJ5UH35-CajDZCat.js → erDiagram-TEJ5UH35-BsyWDziR.js} +1 -1
  262. package/web-shell/assets/{flowDiagram-I6XJVG4X-BRuFBIvL.js → flowDiagram-I6XJVG4X-CzdkxIrq.js} +1 -1
  263. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BevGmJqG.js → ganttDiagram-6RSMTGT7-javIv2r2.js} +1 -1
  264. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DvPMpBMb.js → gitGraphDiagram-PVQCEYII-CjHstylC.js} +1 -1
  265. package/web-shell/assets/{index-DzHwQkQq.js → index-BnJGxpah.js} +1 -1
  266. package/web-shell/assets/index-DhXB9nTa.js +1161 -0
  267. package/web-shell/assets/index-vYHgZ7bL.css +5 -0
  268. package/web-shell/assets/{infoDiagram-5YYISTIA-Oixn7tA9.js → infoDiagram-5YYISTIA-yXuQsomo.js} +1 -1
  269. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BgKpeg-j.js → ishikawaDiagram-YF4QCWOH-a85JhE6F.js} +1 -1
  270. package/web-shell/assets/{journeyDiagram-JHISSGLW-74mwxIaA.js → journeyDiagram-JHISSGLW-Dak_4BVj.js} +1 -1
  271. package/web-shell/assets/{kanban-definition-UN3LZRKU-D4D6cEqA.js → kanban-definition-UN3LZRKU-COA-LuCV.js} +1 -1
  272. package/web-shell/assets/{linear-atZRE_L2.js → linear-DNAAAQWq.js} +1 -1
  273. package/web-shell/assets/{mermaid.core-KKudX-JC.js → mermaid.core-7Ff3aIUD.js} +5 -5
  274. package/web-shell/assets/{mindmap-definition-RKZ34NQL-CMCej9yG.js → mindmap-definition-RKZ34NQL-_rCOIODU.js} +1 -1
  275. package/web-shell/assets/{pieDiagram-4H26LBE5-nhx40X7q.js → pieDiagram-4H26LBE5-C9QCQ8EW.js} +1 -1
  276. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CUmVcN3M.js → quadrantDiagram-W4KKPZXB-CsaE4FA8.js} +1 -1
  277. package/web-shell/assets/{requirementDiagram-4Y6WPE33-C_vyEwyy.js → requirementDiagram-4Y6WPE33-tV78naTg.js} +1 -1
  278. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-DU6G4VWR.js → sankeyDiagram-5OEKKPKP-Dk3Rw7BZ.js} +1 -1
  279. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DdeRR_KJ.js → sequenceDiagram-3UESZ5HK-BGsAWcMX.js} +1 -1
  280. package/web-shell/assets/{stateDiagram-AJRCARHV-C6iCI8ps.js → stateDiagram-AJRCARHV-zSxdtdoB.js} +1 -1
  281. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-vLEEtDpO.js +1 -0
  282. package/web-shell/assets/{timeline-definition-PNZ67QCA-B_Ea8Cb7.js → timeline-definition-PNZ67QCA-j0BQh9Go.js} +1 -1
  283. package/web-shell/assets/{vennDiagram-CIIHVFJN-BPUVZEJA.js → vennDiagram-CIIHVFJN-CRaUFFIu.js} +1 -1
  284. package/web-shell/assets/{wardley-L42UT6IY-BWEj0lKY.js → wardley-L42UT6IY-D7Py_ofm.js} +1 -1
  285. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BvDsdIQw.js → wardleyDiagram-YWT4CUSO-BrDIAZcp.js} +1 -1
  286. package/web-shell/assets/{xychartDiagram-2RQKCTM6-crz0QhF_.js → xychartDiagram-2RQKCTM6-Cecdw-w2.js} +1 -1
  287. package/web-shell/index.html +2 -2
  288. package/chunks/channel-worker-group-K7QKH6IG.js +0 -13
  289. package/chunks/chunk-2HRYPZT5.js +0 -25
  290. package/chunks/chunk-B7NUUEXC.js +0 -311
  291. package/chunks/chunk-CARU2RR2.js +0 -24
  292. package/chunks/chunk-GYTKQYDB.js +0 -23
  293. package/chunks/chunk-LQU7EVFA.js +0 -30
  294. package/chunks/chunk-OCPBI7J5.js +0 -18
  295. package/chunks/chunk-OJAMDVF5.js +0 -66
  296. package/chunks/chunk-QAW7PIHT.js +0 -168
  297. package/chunks/chunk-TEGEBB2I.js +0 -122
  298. package/chunks/daemon-status-provider-L4STG5VO.js +0 -76
  299. package/chunks/exitPlanMode-IHCJ5EEI.js +0 -909
  300. package/chunks/nonInteractiveCli-NSOB6D74.js +0 -129
  301. package/chunks/todoWrite-YNXB27GB.js +0 -531
  302. package/web-shell/assets/channel-DkuJJ0qd.js +0 -1
  303. package/web-shell/assets/classDiagram-4FO5ZUOK-CwqHc0TB.js +0 -1
  304. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CwqHc0TB.js +0 -1
  305. package/web-shell/assets/index-Cnvv4VcI.css +0 -5
  306. package/web-shell/assets/index-D1Uyklxa.js +0 -1088
  307. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-C0_6nR6C.js +0 -1
@@ -1,12 +1,5 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import {
4
- relaunchApp
5
- } from "./chunk-LQU7EVFA.js";
6
- import {
7
- MINIMUM_MAX_HEIGHT,
8
- MaxSizedBox
9
- } from "./chunk-H3FQOPPS.js";
10
3
  import {
11
4
  CODE_FENCE_RE,
12
5
  TABLE_MAX_ROW_LINES,
@@ -18,18 +11,20 @@ import {
18
11
  getCommandSourceBadge,
19
12
  getCommandSourceGroup,
20
13
  getCommandSubcommandNames,
14
+ parseCodeFenceInfo,
21
15
  splitMarkdownTableRow,
22
16
  useSessionStats
23
- } from "./chunk-XXJKGHZV.js";
17
+ } from "./chunk-ZTSDZQZO.js";
24
18
  import {
25
19
  Colors,
26
20
  RowMouseController,
27
21
  SettingsContext,
22
+ layoutRowForEvent,
28
23
  measureElementPosition,
29
24
  useMouseEvents,
30
25
  useSettings,
31
26
  useTerminalSize
32
- } from "./chunk-422XAKCK.js";
27
+ } from "./chunk-U2XBPBO3.js";
33
28
  import {
34
29
  CompactToolGroupDisplay,
35
30
  SCREEN_READER_MODEL_PREFIX,
@@ -47,12 +42,18 @@ import {
47
42
  calculateErrorRate,
48
43
  computeDiffColumnWidths,
49
44
  computeSessionStats,
45
+ estimateCompactToolGroupHeight,
50
46
  getSystemInfoFields,
51
47
  isCollapsibleTool,
52
48
  levelLabel,
53
49
  useKeypress,
50
+ wrapAnsi,
54
51
  wrapForMultiplexer
55
- } from "./chunk-DK33QJ3V.js";
52
+ } from "./chunk-CZSAIBUB.js";
53
+ import {
54
+ MINIMUM_MAX_HEIGHT,
55
+ MaxSizedBox
56
+ } from "./chunk-EKG3BHQY.js";
56
57
  import {
57
58
  Box_default,
58
59
  Static,
@@ -62,7 +63,10 @@ import {
62
63
  theme,
63
64
  use_is_screen_reader_enabled_default,
64
65
  use_stdin_default
65
- } from "./chunk-K4PZ5F5T.js";
66
+ } from "./chunk-TVYM3Q3J.js";
67
+ import {
68
+ relaunchApp
69
+ } from "./chunk-5O34IMY5.js";
66
70
  import {
67
71
  isTerminalGoalStatusKind
68
72
  } from "./chunk-7X7TEQNX.js";
@@ -72,7 +76,7 @@ import {
72
76
  import {
73
77
  resolveColor,
74
78
  themeManager
75
- } from "./chunk-Q6TUALBE.js";
79
+ } from "./chunk-XAAEDML2.js";
76
80
  import {
77
81
  cpLen,
78
82
  cpSlice,
@@ -85,10 +89,7 @@ import {
85
89
  stripUnsafeCharacters,
86
90
  toCodePoints,
87
91
  wrapToVisualLines
88
- } from "./chunk-WTSXKLG5.js";
89
- import {
90
- eastAsianWidth
91
- } from "./chunk-QHTIBUWB.js";
92
+ } from "./chunk-SUARMD4Q.js";
92
93
  import {
93
94
  formatDuration,
94
95
  formatMemoryUsage,
@@ -101,18 +102,18 @@ import {
101
102
  } from "./chunk-57OAHC2Y.js";
102
103
  import {
103
104
  createLoadedSettingsAdapter
104
- } from "./chunk-W34A5MJH.js";
105
+ } from "./chunk-LTD3CHGS.js";
105
106
  import {
106
107
  getPersistScopeForModelSelection
107
- } from "./chunk-6GETGQWP.js";
108
+ } from "./chunk-C5NSOSF4.js";
108
109
  import {
109
110
  getCurrentLanguage,
110
111
  localizeToolDisplayName,
111
112
  t
112
- } from "./chunk-RDRVMDWV.js";
113
+ } from "./chunk-HIMIG6PI.js";
113
114
  import {
114
115
  isWorkspaceTrusted
115
- } from "./chunk-4YWLED2A.js";
116
+ } from "./chunk-LSFVUGXT.js";
116
117
  import {
117
118
  ALL_PROVIDERS,
118
119
  IdeClient,
@@ -131,23 +132,27 @@ import {
131
132
  isValidEditorType,
132
133
  resolveBaseUrl,
133
134
  resolveMetadataKey,
134
- resolveOwnsModel,
135
+ resolveOwnsModel
136
+ } from "./chunk-3YJZ6WNY.js";
137
+ import {
135
138
  stripAnsi
136
- } from "./chunk-K7CRWKOE.js";
139
+ } from "./chunk-T4TZQJ7W.js";
137
140
  import {
138
141
  MAIN_SOURCE,
139
- getMCPServerStatus
140
- } from "./chunk-P6LART6G.js";
142
+ formatVisionBridgeNoticeDisplay,
143
+ getMCPServerStatus,
144
+ isVisionBridgeNoticeDisplay
145
+ } from "./chunk-66IT3EY2.js";
141
146
  import {
142
147
  ToolDisplayNames,
143
148
  ToolNames,
144
149
  ToolNamesMigration
145
- } from "./chunk-2UUAIFQO.js";
150
+ } from "./chunk-ANRANWVE.js";
146
151
  import {
147
152
  createDebugLogger,
148
153
  escapePath,
149
154
  unescapePath
150
- } from "./chunk-7NFB7LBQ.js";
155
+ } from "./chunk-UE5TZ55T.js";
151
156
  import {
152
157
  init_esbuild_shims
153
158
  } from "./chunk-5O2XNYP6.js";
@@ -2467,14 +2472,16 @@ function colorizeLine(line, language, theme2) {
2467
2472
  );
2468
2473
  }
2469
2474
  __name(colorizeLine, "colorizeLine");
2470
- function colorizeCode(code, language, availableHeight, maxWidth, theme2, settings, tabWidth = 4) {
2475
+ function colorizeCode(code, language, availableHeight, maxWidth, options = {}) {
2476
+ const { theme: theme2, settings, tabWidth = 4, startLineNumber = 1 } = options;
2477
+ const firstLineNumber = Math.max(1, Math.trunc(startLineNumber));
2471
2478
  const codeToHighlight = code.replace(/\n$/, "").replace(/\t/g, " ".repeat(tabWidth));
2472
2479
  const activeTheme = theme2 || themeManager.getActiveTheme();
2473
2480
  const showLineNumbers = settings?.merged.ui?.showLineNumbers ?? true;
2474
2481
  const lowlight = ensureLowlightLoading();
2475
2482
  try {
2476
2483
  let lines = codeToHighlight.split("\n");
2477
- const padWidth = String(lines.length).length;
2484
+ const padWidth = String(lines.length + firstLineNumber - 1).length;
2478
2485
  let hiddenLinesCount = 0;
2479
2486
  if (availableHeight !== void 0) {
2480
2487
  availableHeight = Math.max(availableHeight, MINIMUM_MAX_HEIGHT);
@@ -2499,10 +2506,9 @@ function colorizeCode(code, language, availableHeight, maxWidth, theme2, setting
2499
2506
  lowlight
2500
2507
  );
2501
2508
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box_default, { children: [
2502
- showLineNumbers && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { color: activeTheme.colors.Gray, children: `${String(index + 1 + hiddenLinesCount).padStart(
2503
- padWidth,
2504
- " "
2505
- )} ` }),
2509
+ showLineNumbers && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { color: activeTheme.colors.Gray, children: `${String(
2510
+ index + firstLineNumber + hiddenLinesCount
2511
+ ).padStart(padWidth, " ")} ` }),
2506
2512
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { color: activeTheme.defaultColor, wrap: "wrap", children: contentToRender })
2507
2513
  ] }, index);
2508
2514
  })
@@ -2514,7 +2520,7 @@ function colorizeCode(code, language, availableHeight, maxWidth, theme2, setting
2514
2520
  error
2515
2521
  );
2516
2522
  const lines = codeToHighlight.split("\n");
2517
- const padWidth = String(lines.length).length;
2523
+ const padWidth = String(lines.length + firstLineNumber - 1).length;
2518
2524
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
2519
2525
  MaxSizedBox,
2520
2526
  {
@@ -2522,7 +2528,7 @@ function colorizeCode(code, language, availableHeight, maxWidth, theme2, setting
2522
2528
  maxWidth,
2523
2529
  overflowDirection: "top",
2524
2530
  children: lines.map((line, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box_default, { children: [
2525
- showLineNumbers && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { color: activeTheme.defaultColor, children: `${String(index + 1).padStart(padWidth, " ")} ` }),
2531
+ showLineNumbers && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { color: activeTheme.defaultColor, children: `${String(index + firstLineNumber).padStart(padWidth, " ")} ` }),
2526
2532
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { color: activeTheme.colors.Gray, children: line })
2527
2533
  ] }, index))
2528
2534
  }
@@ -2534,679 +2540,6 @@ __name(colorizeCode, "colorizeCode");
2534
2540
  // packages/cli/src/ui/utils/TableRenderer.tsx
2535
2541
  init_esbuild_shims();
2536
2542
 
2537
- // packages/cli/node_modules/wrap-ansi/index.js
2538
- init_esbuild_shims();
2539
-
2540
- // packages/cli/node_modules/wrap-ansi/node_modules/string-width/index.js
2541
- init_esbuild_shims();
2542
- var segmenter = new Intl.Segmenter();
2543
- var zeroWidthClusterRegex = new RegExp("^(?:\\p{Default_Ignorable_Code_Point}|\\p{Control}|\\p{Format}|\\p{Mark}|\\p{Surrogate})+$", "v");
2544
- var leadingNonPrintingRegex = new RegExp("^[\\p{Default_Ignorable_Code_Point}\\p{Control}\\p{Format}\\p{Mark}\\p{Surrogate}]+", "v");
2545
- var rgiEmojiRegex = new RegExp("^\\p{RGI_Emoji}$", "v");
2546
- var unqualifiedKeycapRegex = /^[\d#*]\u20E3$/;
2547
- var extendedPictographicRegex = new RegExp("\\p{Extended_Pictographic}", "gu");
2548
- function isDoubleWidthNonRgiEmojiSequence(segment) {
2549
- if (segment.length > 50) {
2550
- return false;
2551
- }
2552
- if (unqualifiedKeycapRegex.test(segment)) {
2553
- return true;
2554
- }
2555
- if (segment.includes("\u200D")) {
2556
- const pictographics = segment.match(extendedPictographicRegex);
2557
- return pictographics !== null && pictographics.length >= 2;
2558
- }
2559
- return false;
2560
- }
2561
- __name(isDoubleWidthNonRgiEmojiSequence, "isDoubleWidthNonRgiEmojiSequence");
2562
- function baseVisible(segment) {
2563
- return segment.replace(leadingNonPrintingRegex, "");
2564
- }
2565
- __name(baseVisible, "baseVisible");
2566
- function isZeroWidthCluster(segment) {
2567
- return zeroWidthClusterRegex.test(segment);
2568
- }
2569
- __name(isZeroWidthCluster, "isZeroWidthCluster");
2570
- function isHangulLeadingJamo(codePoint) {
2571
- return codePoint >= 4352 && codePoint <= 4447 || codePoint >= 43360 && codePoint <= 43388;
2572
- }
2573
- __name(isHangulLeadingJamo, "isHangulLeadingJamo");
2574
- function isHangulVowelJamo(codePoint) {
2575
- return codePoint >= 4448 && codePoint <= 4519 || codePoint >= 55216 && codePoint <= 55238;
2576
- }
2577
- __name(isHangulVowelJamo, "isHangulVowelJamo");
2578
- function isHangulTrailingJamo(codePoint) {
2579
- return codePoint >= 4520 && codePoint <= 4607 || codePoint >= 55243 && codePoint <= 55291;
2580
- }
2581
- __name(isHangulTrailingJamo, "isHangulTrailingJamo");
2582
- function isHangulJamo(codePoint) {
2583
- return isHangulLeadingJamo(codePoint) || isHangulVowelJamo(codePoint) || isHangulTrailingJamo(codePoint);
2584
- }
2585
- __name(isHangulJamo, "isHangulJamo");
2586
- function hangulClusterWidth(visibleSegment, eastAsianWidthOptions) {
2587
- const codePoints = [];
2588
- for (const character of visibleSegment) {
2589
- if (zeroWidthClusterRegex.test(character)) {
2590
- continue;
2591
- }
2592
- codePoints.push(character.codePointAt(0));
2593
- }
2594
- if (codePoints.length === 0) {
2595
- return void 0;
2596
- }
2597
- let width = 0;
2598
- for (let index = 0; index < codePoints.length; index++) {
2599
- const codePoint = codePoints[index];
2600
- if (!isHangulJamo(codePoint)) {
2601
- if (width === 0) {
2602
- return void 0;
2603
- }
2604
- for (let remaining = index; remaining < codePoints.length; remaining++) {
2605
- width += eastAsianWidth(codePoints[remaining], eastAsianWidthOptions);
2606
- }
2607
- return width;
2608
- }
2609
- if (isHangulLeadingJamo(codePoint) && isHangulVowelJamo(codePoints[index + 1])) {
2610
- width += 2;
2611
- index += isHangulTrailingJamo(codePoints[index + 2]) ? 2 : 1;
2612
- continue;
2613
- }
2614
- width += eastAsianWidth(codePoint, eastAsianWidthOptions);
2615
- }
2616
- return width;
2617
- }
2618
- __name(hangulClusterWidth, "hangulClusterWidth");
2619
- function trailingHalfwidthWidth(visibleSegment, eastAsianWidthOptions) {
2620
- let extra = 0;
2621
- let first = true;
2622
- for (const character of visibleSegment) {
2623
- if (first) {
2624
- first = false;
2625
- continue;
2626
- }
2627
- if (character >= "\uFF00" && character <= "\uFFEF") {
2628
- extra += eastAsianWidth(character.codePointAt(0), eastAsianWidthOptions);
2629
- }
2630
- }
2631
- return extra;
2632
- }
2633
- __name(trailingHalfwidthWidth, "trailingHalfwidthWidth");
2634
- function stringWidth2(input, options = {}) {
2635
- if (typeof input !== "string" || input.length === 0) {
2636
- return 0;
2637
- }
2638
- const {
2639
- ambiguousIsNarrow = true,
2640
- countAnsiEscapeCodes = false
2641
- } = options;
2642
- let string = input;
2643
- if (!countAnsiEscapeCodes && (string.includes("\x1B") || string.includes("\x9B"))) {
2644
- string = stripAnsi(string);
2645
- }
2646
- if (string.length === 0) {
2647
- return 0;
2648
- }
2649
- if (/^[\u0020-\u007E]*$/.test(string)) {
2650
- return string.length;
2651
- }
2652
- let width = 0;
2653
- const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow };
2654
- for (const { segment } of segmenter.segment(string)) {
2655
- if (isZeroWidthCluster(segment)) {
2656
- continue;
2657
- }
2658
- if (rgiEmojiRegex.test(segment) || isDoubleWidthNonRgiEmojiSequence(segment)) {
2659
- width += 2;
2660
- continue;
2661
- }
2662
- const visibleSegment = baseVisible(segment);
2663
- const hangulWidth = hangulClusterWidth(visibleSegment, eastAsianWidthOptions);
2664
- if (hangulWidth !== void 0) {
2665
- width += hangulWidth;
2666
- continue;
2667
- }
2668
- const codePoint = visibleSegment.codePointAt(0);
2669
- width += eastAsianWidth(codePoint, eastAsianWidthOptions);
2670
- width += trailingHalfwidthWidth(visibleSegment, eastAsianWidthOptions);
2671
- }
2672
- return width;
2673
- }
2674
- __name(stringWidth2, "stringWidth");
2675
-
2676
- // packages/cli/node_modules/ansi-styles/index.js
2677
- init_esbuild_shims();
2678
- var ANSI_BACKGROUND_OFFSET = 10;
2679
- var wrapAnsi16 = /* @__PURE__ */ __name((offset = 0) => (code) => `\x1B[${code + offset}m`, "wrapAnsi16");
2680
- var wrapAnsi256 = /* @__PURE__ */ __name((offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`, "wrapAnsi256");
2681
- var wrapAnsi16m = /* @__PURE__ */ __name((offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`, "wrapAnsi16m");
2682
- var styles = {
2683
- modifier: {
2684
- reset: [0, 0],
2685
- // 21 isn't widely supported and 22 does the same thing
2686
- bold: [1, 22],
2687
- dim: [2, 22],
2688
- italic: [3, 23],
2689
- underline: [4, 24],
2690
- overline: [53, 55],
2691
- inverse: [7, 27],
2692
- hidden: [8, 28],
2693
- strikethrough: [9, 29]
2694
- },
2695
- color: {
2696
- black: [30, 39],
2697
- red: [31, 39],
2698
- green: [32, 39],
2699
- yellow: [33, 39],
2700
- blue: [34, 39],
2701
- magenta: [35, 39],
2702
- cyan: [36, 39],
2703
- white: [37, 39],
2704
- // Bright color
2705
- blackBright: [90, 39],
2706
- gray: [90, 39],
2707
- // Alias of `blackBright`
2708
- grey: [90, 39],
2709
- // Alias of `blackBright`
2710
- redBright: [91, 39],
2711
- greenBright: [92, 39],
2712
- yellowBright: [93, 39],
2713
- blueBright: [94, 39],
2714
- magentaBright: [95, 39],
2715
- cyanBright: [96, 39],
2716
- whiteBright: [97, 39]
2717
- },
2718
- bgColor: {
2719
- bgBlack: [40, 49],
2720
- bgRed: [41, 49],
2721
- bgGreen: [42, 49],
2722
- bgYellow: [43, 49],
2723
- bgBlue: [44, 49],
2724
- bgMagenta: [45, 49],
2725
- bgCyan: [46, 49],
2726
- bgWhite: [47, 49],
2727
- // Bright color
2728
- bgBlackBright: [100, 49],
2729
- bgGray: [100, 49],
2730
- // Alias of `bgBlackBright`
2731
- bgGrey: [100, 49],
2732
- // Alias of `bgBlackBright`
2733
- bgRedBright: [101, 49],
2734
- bgGreenBright: [102, 49],
2735
- bgYellowBright: [103, 49],
2736
- bgBlueBright: [104, 49],
2737
- bgMagentaBright: [105, 49],
2738
- bgCyanBright: [106, 49],
2739
- bgWhiteBright: [107, 49]
2740
- }
2741
- };
2742
- var modifierNames = Object.keys(styles.modifier);
2743
- var foregroundColorNames = Object.keys(styles.color);
2744
- var backgroundColorNames = Object.keys(styles.bgColor);
2745
- var colorNames = [...foregroundColorNames, ...backgroundColorNames];
2746
- function assembleStyles() {
2747
- const codes = /* @__PURE__ */ new Map();
2748
- for (const [groupName, group] of Object.entries(styles)) {
2749
- for (const [styleName, style] of Object.entries(group)) {
2750
- styles[styleName] = {
2751
- open: `\x1B[${style[0]}m`,
2752
- close: `\x1B[${style[1]}m`
2753
- };
2754
- group[styleName] = styles[styleName];
2755
- codes.set(style[0], style[1]);
2756
- }
2757
- Object.defineProperty(styles, groupName, {
2758
- value: group,
2759
- enumerable: false
2760
- });
2761
- }
2762
- Object.defineProperty(styles, "codes", {
2763
- value: codes,
2764
- enumerable: false
2765
- });
2766
- styles.color.close = "\x1B[39m";
2767
- styles.bgColor.close = "\x1B[49m";
2768
- styles.color.ansi = wrapAnsi16();
2769
- styles.color.ansi256 = wrapAnsi256();
2770
- styles.color.ansi16m = wrapAnsi16m();
2771
- styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
2772
- styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
2773
- styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
2774
- Object.defineProperties(styles, {
2775
- rgbToAnsi256: {
2776
- value(red, green, blue) {
2777
- if (red === green && green === blue) {
2778
- if (red < 8) {
2779
- return 16;
2780
- }
2781
- if (red > 248) {
2782
- return 231;
2783
- }
2784
- return Math.round((red - 8) / 247 * 24) + 232;
2785
- }
2786
- return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
2787
- },
2788
- enumerable: false
2789
- },
2790
- hexToRgb: {
2791
- value(hex) {
2792
- const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
2793
- if (!matches) {
2794
- return [0, 0, 0];
2795
- }
2796
- let [colorString] = matches;
2797
- if (colorString.length === 3) {
2798
- colorString = [...colorString].map((character) => character + character).join("");
2799
- }
2800
- const integer = Number.parseInt(colorString, 16);
2801
- return [
2802
- /* eslint-disable no-bitwise */
2803
- integer >> 16 & 255,
2804
- integer >> 8 & 255,
2805
- integer & 255
2806
- /* eslint-enable no-bitwise */
2807
- ];
2808
- },
2809
- enumerable: false
2810
- },
2811
- hexToAnsi256: {
2812
- value: /* @__PURE__ */ __name((hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)), "value"),
2813
- enumerable: false
2814
- },
2815
- ansi256ToAnsi: {
2816
- value(code) {
2817
- if (code < 8) {
2818
- return 30 + code;
2819
- }
2820
- if (code < 16) {
2821
- return 90 + (code - 8);
2822
- }
2823
- let red;
2824
- let green;
2825
- let blue;
2826
- if (code >= 232) {
2827
- red = ((code - 232) * 10 + 8) / 255;
2828
- green = red;
2829
- blue = red;
2830
- } else {
2831
- code -= 16;
2832
- const remainder = code % 36;
2833
- red = Math.floor(code / 36) / 5;
2834
- green = Math.floor(remainder / 6) / 5;
2835
- blue = remainder % 6 / 5;
2836
- }
2837
- const value = Math.max(red, green, blue) * 2;
2838
- if (value === 0) {
2839
- return 30;
2840
- }
2841
- let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
2842
- if (value === 2) {
2843
- result += 60;
2844
- }
2845
- return result;
2846
- },
2847
- enumerable: false
2848
- },
2849
- rgbToAnsi: {
2850
- value: /* @__PURE__ */ __name((red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)), "value"),
2851
- enumerable: false
2852
- },
2853
- hexToAnsi: {
2854
- value: /* @__PURE__ */ __name((hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)), "value"),
2855
- enumerable: false
2856
- }
2857
- });
2858
- return styles;
2859
- }
2860
- __name(assembleStyles, "assembleStyles");
2861
- var ansiStyles = assembleStyles();
2862
- var ansi_styles_default = ansiStyles;
2863
-
2864
- // packages/cli/node_modules/wrap-ansi/index.js
2865
- var ANSI_ESCAPE = "\x1B";
2866
- var ANSI_ESCAPE_CSI = "\x9B";
2867
- var ESCAPES = /* @__PURE__ */ new Set([
2868
- ANSI_ESCAPE,
2869
- ANSI_ESCAPE_CSI
2870
- ]);
2871
- var ANSI_ESCAPE_BELL = "\x07";
2872
- var ANSI_CSI = "[";
2873
- var ANSI_OSC = "]";
2874
- var ANSI_SGR_TERMINATOR = "m";
2875
- var ANSI_SGR_RESET = 0;
2876
- var ANSI_SGR_RESET_FOREGROUND = 39;
2877
- var ANSI_SGR_RESET_BACKGROUND = 49;
2878
- var ANSI_SGR_RESET_UNDERLINE_COLOR = 59;
2879
- var ANSI_SGR_FOREGROUND_EXTENDED = 38;
2880
- var ANSI_SGR_BACKGROUND_EXTENDED = 48;
2881
- var ANSI_SGR_UNDERLINE_COLOR_EXTENDED = 58;
2882
- var ANSI_SGR_COLOR_MODE_256 = 5;
2883
- var ANSI_SGR_COLOR_MODE_RGB = 2;
2884
- var ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;
2885
- var ANSI_ESCAPE_REGEX = new RegExp(`^\\u001B(?:\\${ANSI_CSI}(?<sgr>[0-9;]*)${ANSI_SGR_TERMINATOR}|${ANSI_ESCAPE_LINK}(?<uri>[^\\u0007\\u001B]*)(?:\\u0007|\\u001B\\\\))`);
2886
- var ANSI_ESCAPE_CSI_REGEX = new RegExp(`^\\u009B(?<sgr>[0-9;]*)${ANSI_SGR_TERMINATOR}`);
2887
- var ANSI_SGR_MODIFIER_CLOSE_CODES = new Set(ansi_styles_default.codes.values());
2888
- ANSI_SGR_MODIFIER_CLOSE_CODES.delete(ANSI_SGR_RESET);
2889
- var segmenter2 = new Intl.Segmenter();
2890
- var getGraphemes = /* @__PURE__ */ __name((string) => Array.from(segmenter2.segment(string), ({ segment }) => segment), "getGraphemes");
2891
- var TAB_SIZE = 8;
2892
- var wrapAnsiCode = /* @__PURE__ */ __name((code) => `${ANSI_ESCAPE}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`, "wrapAnsiCode");
2893
- var wrapAnsiHyperlink = /* @__PURE__ */ __name((url) => `${ANSI_ESCAPE}${ANSI_ESCAPE_LINK}${url}${ANSI_ESCAPE_BELL}`, "wrapAnsiHyperlink");
2894
- var getSgrTokens = /* @__PURE__ */ __name((sgrParameters) => {
2895
- const codes = sgrParameters.split(";").map((sgrParameter) => sgrParameter === "" ? ANSI_SGR_RESET : Number.parseInt(sgrParameter, 10));
2896
- const sgrTokens = [];
2897
- for (let index = 0; index < codes.length; index++) {
2898
- const code = codes[index];
2899
- if (!Number.isFinite(code)) {
2900
- continue;
2901
- }
2902
- if (code === ANSI_SGR_FOREGROUND_EXTENDED || code === ANSI_SGR_BACKGROUND_EXTENDED || code === ANSI_SGR_UNDERLINE_COLOR_EXTENDED) {
2903
- if (index + 1 >= codes.length) {
2904
- break;
2905
- }
2906
- const mode = codes[index + 1];
2907
- if (mode === ANSI_SGR_COLOR_MODE_256 && Number.isFinite(codes[index + 2])) {
2908
- sgrTokens.push([code, mode, codes[index + 2]]);
2909
- index += 2;
2910
- continue;
2911
- }
2912
- const red = codes[index + 2];
2913
- const green = codes[index + 3];
2914
- const blue = codes[index + 4];
2915
- if (mode === ANSI_SGR_COLOR_MODE_RGB && Number.isFinite(red) && Number.isFinite(green) && Number.isFinite(blue)) {
2916
- sgrTokens.push([code, mode, red, green, blue]);
2917
- index += 4;
2918
- continue;
2919
- }
2920
- break;
2921
- }
2922
- sgrTokens.push([code]);
2923
- }
2924
- return sgrTokens;
2925
- }, "getSgrTokens");
2926
- var removeActiveStyle = /* @__PURE__ */ __name((activeStyles, family) => {
2927
- const activeStyleIndex = activeStyles.findIndex((activeStyle) => activeStyle.family === family);
2928
- if (activeStyleIndex !== -1) {
2929
- activeStyles.splice(activeStyleIndex, 1);
2930
- }
2931
- }, "removeActiveStyle");
2932
- var upsertActiveStyle = /* @__PURE__ */ __name((activeStyles, nextActiveStyle) => {
2933
- removeActiveStyle(activeStyles, nextActiveStyle.family);
2934
- activeStyles.push(nextActiveStyle);
2935
- }, "upsertActiveStyle");
2936
- var removeModifierStylesByClose = /* @__PURE__ */ __name((activeStyles, closeCode) => {
2937
- for (let index = activeStyles.length - 1; index >= 0; index--) {
2938
- const activeStyle = activeStyles[index];
2939
- if (activeStyle.family.startsWith("modifier-") && activeStyle.close === closeCode) {
2940
- activeStyles.splice(index, 1);
2941
- }
2942
- }
2943
- }, "removeModifierStylesByClose");
2944
- var getColorStyle = /* @__PURE__ */ __name((code, sgrToken) => {
2945
- if (code >= 30 && code <= 37 || code >= 90 && code <= 97 || code === ANSI_SGR_FOREGROUND_EXTENDED && sgrToken.length > 1) {
2946
- return {
2947
- family: "foreground",
2948
- open: sgrToken.join(";"),
2949
- close: ANSI_SGR_RESET_FOREGROUND
2950
- };
2951
- }
2952
- if (code >= 40 && code <= 47 || code >= 100 && code <= 107 || code === ANSI_SGR_BACKGROUND_EXTENDED && sgrToken.length > 1) {
2953
- return {
2954
- family: "background",
2955
- open: sgrToken.join(";"),
2956
- close: ANSI_SGR_RESET_BACKGROUND
2957
- };
2958
- }
2959
- if (code === ANSI_SGR_UNDERLINE_COLOR_EXTENDED && sgrToken.length > 1) {
2960
- return {
2961
- family: "underlineColor",
2962
- open: sgrToken.join(";"),
2963
- close: ANSI_SGR_RESET_UNDERLINE_COLOR
2964
- };
2965
- }
2966
- }, "getColorStyle");
2967
- var applySgrResetCode = /* @__PURE__ */ __name((code, activeStyles) => {
2968
- if (code === ANSI_SGR_RESET) {
2969
- activeStyles.length = 0;
2970
- return true;
2971
- }
2972
- if (code === ANSI_SGR_RESET_FOREGROUND) {
2973
- removeActiveStyle(activeStyles, "foreground");
2974
- return true;
2975
- }
2976
- if (code === ANSI_SGR_RESET_BACKGROUND) {
2977
- removeActiveStyle(activeStyles, "background");
2978
- return true;
2979
- }
2980
- if (code === ANSI_SGR_RESET_UNDERLINE_COLOR) {
2981
- removeActiveStyle(activeStyles, "underlineColor");
2982
- return true;
2983
- }
2984
- if (ANSI_SGR_MODIFIER_CLOSE_CODES.has(code)) {
2985
- removeModifierStylesByClose(activeStyles, code);
2986
- return true;
2987
- }
2988
- return false;
2989
- }, "applySgrResetCode");
2990
- var applySgrToken = /* @__PURE__ */ __name((sgrToken, activeStyles) => {
2991
- const [code] = sgrToken;
2992
- if (applySgrResetCode(code, activeStyles)) {
2993
- return;
2994
- }
2995
- const colorStyle = getColorStyle(code, sgrToken);
2996
- if (colorStyle) {
2997
- upsertActiveStyle(activeStyles, colorStyle);
2998
- return;
2999
- }
3000
- const close = ansi_styles_default.codes.get(code);
3001
- if (close !== void 0 && close !== ANSI_SGR_RESET) {
3002
- upsertActiveStyle(activeStyles, {
3003
- family: `modifier-${code}`,
3004
- open: sgrToken.join(";"),
3005
- close
3006
- });
3007
- }
3008
- }, "applySgrToken");
3009
- var applySgrParameters = /* @__PURE__ */ __name((sgrParameters, activeStyles) => {
3010
- for (const sgrToken of getSgrTokens(sgrParameters)) {
3011
- applySgrToken(sgrToken, activeStyles);
3012
- }
3013
- }, "applySgrParameters");
3014
- var applySgrResets = /* @__PURE__ */ __name((sgrParameters, activeStyles) => {
3015
- for (const sgrToken of getSgrTokens(sgrParameters)) {
3016
- const [code] = sgrToken;
3017
- applySgrResetCode(code, activeStyles);
3018
- }
3019
- }, "applySgrResets");
3020
- var applyLeadingSgrResets = /* @__PURE__ */ __name((string, activeStyles) => {
3021
- let remainder = string;
3022
- while (remainder.length > 0) {
3023
- if (remainder.startsWith(ANSI_ESCAPE) && remainder[1] !== "\\") {
3024
- const match = ANSI_ESCAPE_REGEX.exec(remainder);
3025
- if (!match) {
3026
- break;
3027
- }
3028
- if (match.groups.sgr !== void 0) {
3029
- applySgrResets(match.groups.sgr, activeStyles);
3030
- }
3031
- remainder = remainder.slice(match[0].length);
3032
- continue;
3033
- }
3034
- if (remainder.startsWith(ANSI_ESCAPE_CSI)) {
3035
- const match = ANSI_ESCAPE_CSI_REGEX.exec(remainder);
3036
- if (!match || match.groups.sgr === void 0) {
3037
- break;
3038
- }
3039
- applySgrResets(match.groups.sgr, activeStyles);
3040
- remainder = remainder.slice(match[0].length);
3041
- continue;
3042
- }
3043
- break;
3044
- }
3045
- }, "applyLeadingSgrResets");
3046
- var getClosingSgrSequence = /* @__PURE__ */ __name((activeStyles) => [...activeStyles].reverse().map((activeStyle) => wrapAnsiCode(activeStyle.close)).join(""), "getClosingSgrSequence");
3047
- var getOpeningSgrSequence = /* @__PURE__ */ __name((activeStyles) => activeStyles.map((activeStyle) => wrapAnsiCode(activeStyle.open)).join(""), "getOpeningSgrSequence");
3048
- var wordLengths = /* @__PURE__ */ __name((string) => string.split(" ").map((word) => stringWidth2(word)), "wordLengths");
3049
- var wrapWord = /* @__PURE__ */ __name((rows, word, columns) => {
3050
- const characters = getGraphemes(word);
3051
- let isInsideEscape = false;
3052
- let isInsideLinkEscape = false;
3053
- let visible = stringWidth2(stripAnsi(rows.at(-1)));
3054
- for (const [index, character] of characters.entries()) {
3055
- const characterLength = stringWidth2(character);
3056
- if (visible + characterLength <= columns) {
3057
- rows[rows.length - 1] += character;
3058
- } else {
3059
- rows.push(character);
3060
- visible = 0;
3061
- }
3062
- if (ESCAPES.has(character) && !(isInsideLinkEscape && character === ANSI_ESCAPE && characters[index + 1] === "\\")) {
3063
- isInsideEscape = true;
3064
- const ansiEscapeLinkCandidate = characters.slice(index + 1, index + 1 + ANSI_ESCAPE_LINK.length).join("");
3065
- isInsideLinkEscape = ansiEscapeLinkCandidate === ANSI_ESCAPE_LINK;
3066
- }
3067
- if (isInsideEscape) {
3068
- if (isInsideLinkEscape) {
3069
- if (character === ANSI_ESCAPE_BELL || character === "\\" && index > 0 && characters[index - 1] === ANSI_ESCAPE) {
3070
- isInsideEscape = false;
3071
- isInsideLinkEscape = false;
3072
- }
3073
- } else if (character === ANSI_SGR_TERMINATOR) {
3074
- isInsideEscape = false;
3075
- }
3076
- continue;
3077
- }
3078
- visible += characterLength;
3079
- if (visible === columns && index < characters.length - 1) {
3080
- rows.push("");
3081
- visible = 0;
3082
- }
3083
- }
3084
- if (!visible && rows.at(-1).length > 0 && rows.length > 1) {
3085
- rows[rows.length - 2] += rows.pop();
3086
- }
3087
- }, "wrapWord");
3088
- var stringVisibleTrimSpacesRight = /* @__PURE__ */ __name((string) => {
3089
- const words = string.split(" ");
3090
- let last = words.length;
3091
- while (last > 0) {
3092
- if (stringWidth2(words[last - 1]) > 0) {
3093
- break;
3094
- }
3095
- last--;
3096
- }
3097
- if (last === words.length) {
3098
- return string;
3099
- }
3100
- return words.slice(0, last).join(" ") + words.slice(last).join("");
3101
- }, "stringVisibleTrimSpacesRight");
3102
- var expandTabs = /* @__PURE__ */ __name((line) => {
3103
- if (!line.includes(" ")) {
3104
- return line;
3105
- }
3106
- const segments = line.split(" ");
3107
- let visible = 0;
3108
- let expandedLine = "";
3109
- for (const [index, segment] of segments.entries()) {
3110
- expandedLine += segment;
3111
- visible += stringWidth2(segment);
3112
- if (index < segments.length - 1) {
3113
- const spaces = TAB_SIZE - visible % TAB_SIZE;
3114
- expandedLine += " ".repeat(spaces);
3115
- visible += spaces;
3116
- }
3117
- }
3118
- return expandedLine;
3119
- }, "expandTabs");
3120
- var exec = /* @__PURE__ */ __name((string, columns, options = {}) => {
3121
- if (options.trim !== false && string.trim() === "") {
3122
- return "";
3123
- }
3124
- let returnValue = "";
3125
- let escapeUrl;
3126
- const activeStyles = [];
3127
- const lengths = wordLengths(string);
3128
- let rows = [""];
3129
- for (const [index, word] of string.split(" ").entries()) {
3130
- if (options.trim !== false) {
3131
- rows[rows.length - 1] = rows.at(-1).trimStart();
3132
- }
3133
- let rowLength = stringWidth2(rows.at(-1));
3134
- if (index !== 0) {
3135
- if (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {
3136
- rows.push("");
3137
- rowLength = 0;
3138
- }
3139
- if (rowLength > 0 || options.trim === false) {
3140
- rows[rows.length - 1] += " ";
3141
- rowLength++;
3142
- }
3143
- }
3144
- if (options.hard && options.wordWrap !== false && lengths[index] > columns) {
3145
- const remainingColumns = columns - rowLength;
3146
- const breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns);
3147
- const breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns);
3148
- if (breaksStartingNextLine < breaksStartingThisLine) {
3149
- rows.push("");
3150
- }
3151
- wrapWord(rows, word, columns);
3152
- continue;
3153
- }
3154
- if (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) {
3155
- if (options.wordWrap === false && rowLength < columns) {
3156
- wrapWord(rows, word, columns);
3157
- continue;
3158
- }
3159
- rows.push("");
3160
- }
3161
- if (rowLength + lengths[index] > columns && options.wordWrap === false) {
3162
- wrapWord(rows, word, columns);
3163
- continue;
3164
- }
3165
- rows[rows.length - 1] += word;
3166
- }
3167
- if (options.trim !== false) {
3168
- rows = rows.map((row) => stringVisibleTrimSpacesRight(row));
3169
- }
3170
- const preString = rows.join("\n");
3171
- const pre = getGraphemes(preString);
3172
- let preStringIndex = 0;
3173
- for (const [index, character] of pre.entries()) {
3174
- returnValue += character;
3175
- if (character === ANSI_ESCAPE && pre[index + 1] !== "\\") {
3176
- const { groups } = ANSI_ESCAPE_REGEX.exec(preString.slice(preStringIndex)) || { groups: {} };
3177
- if (groups.sgr !== void 0) {
3178
- applySgrParameters(groups.sgr, activeStyles);
3179
- } else if (groups.uri !== void 0) {
3180
- escapeUrl = groups.uri.length === 0 ? void 0 : groups.uri;
3181
- }
3182
- } else if (character === ANSI_ESCAPE_CSI) {
3183
- const { groups } = ANSI_ESCAPE_CSI_REGEX.exec(preString.slice(preStringIndex)) || { groups: {} };
3184
- if (groups.sgr !== void 0) {
3185
- applySgrParameters(groups.sgr, activeStyles);
3186
- }
3187
- }
3188
- if (pre[index + 1] === "\n") {
3189
- if (escapeUrl) {
3190
- returnValue += wrapAnsiHyperlink("");
3191
- }
3192
- returnValue += getClosingSgrSequence(activeStyles);
3193
- } else if (character === "\n") {
3194
- const openingStyles = [...activeStyles];
3195
- applyLeadingSgrResets(preString.slice(preStringIndex + 1), openingStyles);
3196
- returnValue += getOpeningSgrSequence(openingStyles);
3197
- if (escapeUrl) {
3198
- returnValue += wrapAnsiHyperlink(escapeUrl);
3199
- }
3200
- }
3201
- preStringIndex += character.length;
3202
- }
3203
- return returnValue;
3204
- }, "exec");
3205
- function wrapAnsi(string, columns, options) {
3206
- return String(string).normalize().replaceAll("\r\n", "\n").split("\n").map((line) => exec(expandTabs(line), columns, options)).join("\n");
3207
- }
3208
- __name(wrapAnsi, "wrapAnsi");
3209
-
3210
2543
  // packages/cli/src/ui/utils/latexRenderer.ts
3211
2544
  init_esbuild_shims();
3212
2545
  var COMMAND_REPLACEMENTS = {
@@ -6451,7 +5784,7 @@ function countMarkdownSourceBlocks(text) {
6451
5784
  }
6452
5785
  if (codeFenceMatch) {
6453
5786
  activeCodeFence = codeFenceMatch[1];
6454
- const lang = codeFenceMatch[2]?.trim().split(/\s+/)[0]?.toLowerCase() || null;
5787
+ const lang = parseCodeFenceInfo(codeFenceMatch[2]).lang?.toLowerCase();
6455
5788
  if (lang) {
6456
5789
  codeBlockLanguageCounts.set(
6457
5790
  lang,
@@ -6480,14 +5813,15 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
6480
5813
  availableTerminalHeight,
6481
5814
  contentWidth,
6482
5815
  textColor = theme.text.primary,
6483
- sourceCopyIndexOffsets
5816
+ sourceCopyIndexOffsets,
5817
+ enforceHeightBudget = false
6484
5818
  }) => {
6485
5819
  const { renderMode } = useRenderMode();
6486
5820
  if (!text) return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, {});
6487
5821
  const renderVisualBlocks = renderMode === "render";
6488
5822
  const displayText = isPending ? text.trimEnd() : text;
6489
5823
  const allLines = displayText.split(/\r?\n/);
6490
- const pendingRenderedBudget = isPending && availableTerminalHeight !== void 0 ? Math.max(MIN_PENDING_CONTENT_LINES, availableTerminalHeight - 2) : void 0;
5824
+ const pendingRenderedBudget = (isPending || enforceHeightBudget) && availableTerminalHeight !== void 0 ? Math.max(MIN_PENDING_CONTENT_LINES, availableTerminalHeight - 2) : void 0;
6491
5825
  const headerRegex = /^ *(#{1,4}) +(.*)/;
6492
5826
  const codeFenceRegex = CODE_FENCE_RE;
6493
5827
  const ulItemRegex = /^([ \t]*)([-*+]) +(.*)/;
@@ -6498,6 +5832,7 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
6498
5832
  const tableRowRegex = TABLE_ROW_RE;
6499
5833
  const tableSeparatorRegex = TABLE_SEPARATOR_RE;
6500
5834
  let lines = allLines;
5835
+ let droppedSourceLines = 0;
6501
5836
  if (pendingRenderedBudget !== void 0) {
6502
5837
  const tableClampRows = availableTerminalHeight !== void 0 ? Math.max(2, availableTerminalHeight - TABLE_PENDING_RESERVED_ROWS) : Number.MAX_SAFE_INTEGER;
6503
5838
  const { keptLines } = fitPendingSlice(
@@ -6508,8 +5843,10 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
6508
5843
  );
6509
5844
  if (keptLines < allLines.length) {
6510
5845
  lines = allLines.slice(0, keptLines);
5846
+ droppedSourceLines = allLines.length - keptLines;
6511
5847
  }
6512
5848
  }
5849
+ const showTruncationCue = enforceHeightBudget && !isPending && droppedSourceLines > 0;
6513
5850
  if (isPending && renderVisualBlocks && lines.length > 0) {
6514
5851
  let start = lines.length;
6515
5852
  while (start > 0 && /^\s*\|/.test(lines[start - 1])) start--;
@@ -6582,6 +5919,7 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
6582
5919
  let codeBlockIndex = 0;
6583
5920
  let currentCodeBlockIndex = 0;
6584
5921
  let currentCodeBlockLangIndex = 0;
5922
+ let currentCodeBlockStartLine = 1;
6585
5923
  const codeBlockLanguageCounts = new Map(
6586
5924
  sourceCopyIndexOffsets?.codeBlockLanguageCounts
6587
5925
  );
@@ -6619,7 +5957,8 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
6619
5957
  codeBlockLangIndex: currentCodeBlockLangIndex,
6620
5958
  isPending,
6621
5959
  availableTerminalHeight,
6622
- contentWidth
5960
+ contentWidth,
5961
+ startLineNumber: currentCodeBlockStartLine
6623
5962
  },
6624
5963
  key
6625
5964
  )
@@ -6672,7 +6011,9 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
6672
6011
  codeBlockIndex += 1;
6673
6012
  currentCodeBlockIndex = codeBlockIndex;
6674
6013
  codeBlockFence = codeFenceMatch[1];
6675
- codeBlockLang = codeFenceMatch[2]?.trim().split(/\s+/)[0] || null;
6014
+ const fenceInfo = parseCodeFenceInfo(codeFenceMatch[2]);
6015
+ codeBlockLang = fenceInfo.lang;
6016
+ currentCodeBlockStartLine = fenceInfo.startLine;
6676
6017
  if (codeBlockLang) {
6677
6018
  const normalizedLang = codeBlockLang.toLowerCase();
6678
6019
  const nextLangIndex = (codeBlockLanguageCounts.get(normalizedLang) ?? 0) + 1;
@@ -6896,7 +6237,8 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
6896
6237
  codeBlockLangIndex: currentCodeBlockLangIndex,
6897
6238
  isPending,
6898
6239
  availableTerminalHeight,
6899
- contentWidth
6240
+ contentWidth,
6241
+ startLineNumber: currentCodeBlockStartLine
6900
6242
  },
6901
6243
  "line-eof"
6902
6244
  )
@@ -6935,6 +6277,19 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
6935
6277
  )
6936
6278
  );
6937
6279
  }
6280
+ if (showTruncationCue) {
6281
+ contentBlocks.push(
6282
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
6283
+ Text,
6284
+ {
6285
+ color: theme.text.secondary,
6286
+ wrap: "truncate-end",
6287
+ children: `... ${droppedSourceLines} more line${droppedSourceLines === 1 ? "" : "s"} not shown (viewport too small) ...`
6288
+ },
6289
+ `truncation-cue-${contentBlocks.length}`
6290
+ )
6291
+ );
6292
+ }
6938
6293
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: contentBlocks });
6939
6294
  }, "MarkdownDisplayInternal");
6940
6295
  var RenderCodeBlockInternal = /* @__PURE__ */ __name(({
@@ -6944,7 +6299,8 @@ var RenderCodeBlockInternal = /* @__PURE__ */ __name(({
6944
6299
  codeBlockLangIndex,
6945
6300
  isPending,
6946
6301
  availableTerminalHeight,
6947
- contentWidth
6302
+ contentWidth,
6303
+ startLineNumber = 1
6948
6304
  }) => {
6949
6305
  const settings = useSettings();
6950
6306
  const { renderMode } = useRenderMode();
@@ -6988,8 +6344,7 @@ var RenderCodeBlockInternal = /* @__PURE__ */ __name(({
6988
6344
  lang,
6989
6345
  availableTerminalHeight,
6990
6346
  contentWidth - CODE_BLOCK_PREFIX_PADDING,
6991
- void 0,
6992
- settings
6347
+ { settings, startLineNumber }
6993
6348
  );
6994
6349
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Box_default, { paddingLeft: CODE_BLOCK_PREFIX_PADDING, flexDirection: "column", children: colorizedTruncatedCode });
6995
6350
  }
@@ -6999,8 +6354,7 @@ var RenderCodeBlockInternal = /* @__PURE__ */ __name(({
6999
6354
  lang,
7000
6355
  availableTerminalHeight,
7001
6356
  contentWidth - CODE_BLOCK_PREFIX_PADDING,
7002
- void 0,
7003
- settings
6357
+ { settings, startLineNumber }
7004
6358
  );
7005
6359
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
7006
6360
  Box_default,
@@ -7566,9 +6920,7 @@ var DiffRenderer = /* @__PURE__ */ __name(({
7566
6920
  language,
7567
6921
  availableTerminalHeight,
7568
6922
  contentWidth,
7569
- theme2,
7570
- settings,
7571
- tabWidth
6923
+ { theme: theme2, settings, tabWidth }
7572
6924
  );
7573
6925
  } else {
7574
6926
  renderedOutput = renderDiffContent(
@@ -7839,6 +7191,7 @@ var Command = /* @__PURE__ */ ((Command2) => {
7839
7191
  Command2["COMPLETION_UP"] = "completionUp";
7840
7192
  Command2["COMPLETION_DOWN"] = "completionDown";
7841
7193
  Command2["SUBMIT"] = "submit";
7194
+ Command2["QUEUE_MESSAGE"] = "queueMessage";
7842
7195
  Command2["NEWLINE"] = "newline";
7843
7196
  Command2["VOICE_PUSH_TO_TALK"] = "voicePushToTalk";
7844
7197
  Command2["OPEN_EXTERNAL_EDITOR"] = "openExternalEditor";
@@ -7932,6 +7285,9 @@ var defaultKeyBindings = {
7932
7285
  shift: false
7933
7286
  }
7934
7287
  ],
7288
+ ["queueMessage" /* QUEUE_MESSAGE */]: [
7289
+ { key: "q", ctrl: true, command: false, shift: false, paste: false }
7290
+ ],
7935
7291
  // Split into multiple data-driven bindings
7936
7292
  // Now also includes shift+enter for multi-line input
7937
7293
  ["newline" /* NEWLINE */]: [
@@ -9253,15 +8609,15 @@ var isCjkChar = /* @__PURE__ */ __name((char) => CJK_CHAR_REGEX.test(char), "isC
9253
8609
  var WORD_BOUNDARIES_CACHE_MAX = 500;
9254
8610
  var SEGMENTER_LENGTH_LIMIT = 1500;
9255
8611
  var wordBoundariesCache = null;
9256
- var segmenter3 = null;
8612
+ var segmenter = null;
9257
8613
  function ensureSegmenterLoaded() {
9258
- if (segmenter3 !== null) return;
8614
+ if (segmenter !== null) return;
9259
8615
  try {
9260
- segmenter3 = new Intl.Segmenter("zh", { granularity: "word" });
8616
+ segmenter = new Intl.Segmenter("zh", { granularity: "word" });
9261
8617
  debugLogger4.info("Intl.Segmenter: initialized successfully");
9262
8618
  } catch (err) {
9263
8619
  debugLogger4.warn("Intl.Segmenter: failed to initialize", err);
9264
- segmenter3 = false;
8620
+ segmenter = false;
9265
8621
  }
9266
8622
  }
9267
8623
  __name(ensureSegmenterLoaded, "ensureSegmenterLoaded");
@@ -9301,14 +8657,14 @@ function getWordBoundaries(line, codePoints) {
9301
8657
  return cached;
9302
8658
  }
9303
8659
  ensureSegmenterLoaded();
9304
- if (!segmenter3) {
8660
+ if (!segmenter) {
9305
8661
  const fallback = charByCharFallback(line);
9306
8662
  evictCacheIfNeeded();
9307
8663
  wordBoundariesCache.set(line, fallback);
9308
8664
  return fallback;
9309
8665
  }
9310
8666
  try {
9311
- const segments = segmenter3.segment(line);
8667
+ const segments = segmenter.segment(line);
9312
8668
  const cpToStrIdx = [];
9313
8669
  let strIdx = 0;
9314
8670
  for (let i = 0; i < cps.length; i++) {
@@ -12033,7 +11389,8 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
12033
11389
  text: planProps.plan,
12034
11390
  isPending: false,
12035
11391
  availableTerminalHeight: planHeight,
12036
- contentWidth
11392
+ contentWidth,
11393
+ enforceHeightBudget: true
12037
11394
  }
12038
11395
  ) });
12039
11396
  } else if (confirmationDetails.type === "info") {
@@ -12656,7 +12013,11 @@ var ToolMessage = /* @__PURE__ */ __name(({
12656
12013
  () => usingDetailedDisplay && typeof detailedDisplay === "string" ? sanitizeTerminalText(detailedDisplay) : detailedDisplay,
12657
12014
  [detailedDisplay, usingDetailedDisplay]
12658
12015
  );
12659
- const effectiveResultDisplay = usingDetailedDisplay ? sanitizedDetailedDisplay : resultDisplay;
12016
+ const visionBridgeNoticeDisplay = isVisionBridgeNoticeDisplay(resultDisplay) ? resultDisplay : void 0;
12017
+ const visionBridgeNoticeText = visionBridgeNoticeDisplay ? sanitizeTerminalText(
12018
+ formatVisionBridgeNoticeDisplay(visionBridgeNoticeDisplay)
12019
+ ) : void 0;
12020
+ const effectiveResultDisplay = usingDetailedDisplay ? sanitizedDetailedDisplay : visionBridgeNoticeDisplay ? void 0 : resultDisplay;
12660
12021
  if (usingDetailedDisplay) {
12661
12022
  renderOutputAsMarkdown = false;
12662
12023
  }
@@ -12687,6 +12048,14 @@ var ToolMessage = /* @__PURE__ */ __name(({
12687
12048
  ),
12688
12049
  emphasis === "high" && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(TrailingIndicator, {})
12689
12050
  ] }),
12051
+ visionBridgeNoticeText && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
12052
+ StringResultRenderer,
12053
+ {
12054
+ data: visionBridgeNoticeText,
12055
+ renderAsMarkdown: false,
12056
+ childWidth: innerWidth
12057
+ }
12058
+ ) }),
12690
12059
  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: [
12691
12060
  effectiveDisplayRenderer.type === "todo" && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(TodoResultRenderer, { data: effectiveDisplayRenderer.data }),
12692
12061
  effectiveDisplayRenderer.type === "plan" && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
@@ -13089,7 +12458,10 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
13089
12458
  memoryBadge
13090
12459
  ] });
13091
12460
  }
13092
- const collapsibleSummaryHeight = collapsibleTools.length > 0 ? 1 : 0;
12461
+ const collapsibleSummaryHeight = estimateCompactToolGroupHeight(
12462
+ collapsibleTools,
12463
+ contentWidth
12464
+ );
13093
12465
  const memoryBadgeHeight = hasMemoryBadge ? 1 : 0;
13094
12466
  const staticHeight = (
13095
12467
  /* marginBottom */
@@ -14486,6 +13858,7 @@ var GeneralHelp = /* @__PURE__ */ __name(({ width }) => {
14486
13858
  ["Tab", t("Accept ghost text or completion")],
14487
13859
  ["Esc Esc", t("Clear input or cancel operation")],
14488
13860
  ["Ctrl+L", t("Clear the screen")],
13861
+ ["Ctrl+Q", t("Queue message for the next turn")],
14489
13862
  [
14490
13863
  process.platform === "win32" ? "Ctrl+Enter" : "Ctrl+J",
14491
13864
  t("Insert a newline")
@@ -16987,21 +16360,40 @@ var ClickableThinkMessage = /* @__PURE__ */ __name(({
16987
16360
  onToggle
16988
16361
  }) => {
16989
16362
  const ref = (0, import_react34.useRef)(null);
16363
+ const pressRef = (0, import_react34.useRef)(null);
16364
+ const { rows: terminalHeight } = useTerminalSize();
16990
16365
  const settings = useSettings();
16991
16366
  const clickable = !!settings.merged.ui?.useTerminalBuffer;
16992
16367
  const isActive = !isPending;
16993
16368
  useMouseEvents(
16994
16369
  (0, import_react34.useCallback)(
16995
16370
  (event) => {
16996
- if (event.name !== "left-press" || !ref.current) return;
16371
+ if (!ref.current) return;
16372
+ if (event.name === "move") {
16373
+ if (pressRef.current && (event.col !== pressRef.current.col || event.row !== pressRef.current.row)) {
16374
+ pressRef.current = null;
16375
+ }
16376
+ return;
16377
+ }
16378
+ if (event.name !== "left-press" && event.name !== "left-release") {
16379
+ pressRef.current = null;
16380
+ return;
16381
+ }
16997
16382
  const metrics = measureElementPosition(ref.current);
16998
16383
  const col = event.col - 1;
16999
- const row = event.row - 1;
17000
- if (col >= metrics.x && col < metrics.x + metrics.width && row >= metrics.y && row < metrics.y + metrics.height) {
16384
+ const row = layoutRowForEvent(ref.current, event.row, terminalHeight);
16385
+ const isInside = col >= metrics.x && col < metrics.x + metrics.width && row >= metrics.y && row < metrics.y + metrics.height;
16386
+ if (event.name === "left-press") {
16387
+ pressRef.current = isInside ? { col: event.col, row: event.row } : null;
16388
+ return;
16389
+ }
16390
+ const press = pressRef.current;
16391
+ pressRef.current = null;
16392
+ if (isInside && press?.col === event.col && press.row === event.row) {
17001
16393
  onToggle();
17002
16394
  }
17003
16395
  },
17004
- [onToggle]
16396
+ [onToggle, terminalHeight]
17005
16397
  ),
17006
16398
  { isActive }
17007
16399
  );