@qwen-code/qwen-code 0.22.0 → 0.22.1

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 (449) hide show
  1. package/bundled/computer-use/SKILL.md +229 -0
  2. package/bundled/computer-use/agents/openai.yaml +4 -0
  3. package/bundled/coordinate/SKILL.md +5 -5
  4. package/bundled/qc-helper/docs/configuration/auth.md +7 -7
  5. package/bundled/qc-helper/docs/configuration/model-providers.md +70 -9
  6. package/bundled/qc-helper/docs/configuration/settings.md +40 -40
  7. package/bundled/qc-helper/docs/extension/introduction.md +3 -1
  8. package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
  9. package/bundled/qc-helper/docs/features/channels/dingtalk.md +12 -0
  10. package/bundled/qc-helper/docs/features/channels/dws.md +120 -0
  11. package/bundled/qc-helper/docs/features/channels/overview.md +3 -3
  12. package/bundled/qc-helper/docs/features/code-review.md +25 -21
  13. package/bundled/qc-helper/docs/features/commands.md +2 -2
  14. package/bundled/qc-helper/docs/features/computer-use.md +57 -51
  15. package/bundled/qc-helper/docs/features/mcp.md +35 -12
  16. package/bundled/qc-helper/docs/features/sub-agents.md +1 -1
  17. package/bundled/qc-helper/docs/features/worktree.md +1 -1
  18. package/bundled/qc-helper/docs/overview.md +1 -1
  19. package/bundled/qc-helper/docs/quickstart.md +1 -1
  20. package/bundled/qc-helper/docs/qwen-serve.md +29 -6
  21. package/bundled/review/SKILL.md +119 -417
  22. package/bundled/review/references/aone.md +18 -0
  23. package/bundled/review/references/persistence.md +105 -0
  24. package/bundled/review/references/posting.md +270 -0
  25. package/chunks/MaxSizedBox-UUTUE42J.js +112 -0
  26. package/chunks/{StandaloneSessionPicker-KTHPCSR6.js → StandaloneSessionPicker-XF2TVJFK.js} +87 -86
  27. package/chunks/{acp-startup-profiler-T4GEAPLX.js → acp-startup-profiler-GNYAL6LI.js} +2 -2
  28. package/chunks/{acpAgent-CRY3JZ5O.js → acpAgent-GY53MJIW.js} +2216 -1931
  29. package/chunks/agent-7U6CC5KF.js +97 -0
  30. package/chunks/agent-headless-32O4L2CT.js +87 -0
  31. package/chunks/{anthropicContentGenerator-Y2OX6LS4.js → anthropicContentGenerator-U76GTVB6.js} +128 -58
  32. package/chunks/{artifact-tool-SBXMTVCB.js → artifact-tool-XDJCZZCF.js} +2 -2
  33. package/chunks/{askUserQuestion-KEQJRFD6.js → askUserQuestion-ZXXERLEV.js} +2 -2
  34. package/chunks/bridge-DFX2FFH4.js +119 -0
  35. package/chunks/{ca-D3F4S6NG.js → ca-7HPYOYSZ.js} +3 -0
  36. package/chunks/{channel-management-service-IRTT7RNE.js → channel-management-service-HXXS3HOZ.js} +4 -4
  37. package/chunks/channel-settings-store-ELLH2M4M.js +117 -0
  38. package/chunks/{channel-worker-group-BJNMR2MP.js → channel-worker-group-EVDC2P4K.js} +8 -7
  39. package/chunks/{channel-worker-manager-EMA7CQDJ.js → channel-worker-manager-IJJZHGEI.js} +8 -7
  40. package/chunks/{channel-worker-supervisor-F6I6WSWW.js → channel-worker-supervisor-YSKB5GVB.js} +12 -7
  41. package/chunks/{chunk-2TRNCJK4.js → chunk-27ONXAFY.js} +1 -1
  42. package/chunks/{chunk-OVH5Y7KS.js → chunk-2CRNTW2B.js} +19 -3
  43. package/chunks/{read-package-up-UXSW3YPB.js → chunk-2EAZ43JQ.js} +1 -0
  44. package/chunks/{chunk-DB2OKNTU.js → chunk-2FN2HNTI.js} +2 -2
  45. package/chunks/{chunk-KM73TBQ4.js → chunk-2LD5U7Q3.js} +31 -0
  46. package/chunks/{chunk-QJHPWLZC.js → chunk-2MHGD7EE.js} +1 -1
  47. package/chunks/{chunk-BMCSKS37.js → chunk-2NCVUT3C.js} +6 -6
  48. package/chunks/{chunk-A5F2YNO6.js → chunk-2NNTE2ED.js} +245 -10
  49. package/chunks/{chunk-Z3JMO2CH.js → chunk-2SERYG4T.js} +1 -1
  50. package/chunks/{chunk-4J7OPYNS.js → chunk-2YDYDDE2.js} +6 -6
  51. package/chunks/{chunk-PXOJLJ5W.js → chunk-2YEZNBSD.js} +333 -184
  52. package/chunks/{chunk-UU4WC7DK.js → chunk-2ZV3CZKI.js} +82 -12
  53. package/chunks/{chunk-SE55HQGF.js → chunk-3B5DCAQU.js} +74 -52
  54. package/chunks/{chunk-UIRLQ3N7.js → chunk-3BV7TZNQ.js} +3 -3
  55. package/chunks/{chunk-2Z6LSQMF.js → chunk-3FSBMAYD.js} +1 -1
  56. package/chunks/{chunk-DJEHYM4H.js → chunk-3UZCLCXR.js} +3 -3
  57. package/chunks/{chunk-WWUSHZ7M.js → chunk-43C2II2G.js} +5 -5
  58. package/chunks/{chunk-2GXYDNXP.js → chunk-47SIHHPL.js} +8 -8
  59. package/chunks/{chunk-PHJJ3RVO.js → chunk-4DCP3362.js} +7 -15
  60. package/chunks/chunk-4K7NQDCG.js +104 -0
  61. package/chunks/{chunk-UZPYR3EV.js → chunk-4TPAG3O7.js} +1 -1
  62. package/chunks/{chunk-BEGIBJAZ.js → chunk-5CI4AXDD.js} +4 -4
  63. package/chunks/{chunk-7KOFLDEP.js → chunk-5JTIYALA.js} +1 -1
  64. package/chunks/{chunk-7HFULI45.js → chunk-5MK32KJV.js} +3 -3
  65. package/chunks/{chunk-CXJHQVEK.js → chunk-5PA6UEYA.js} +4 -0
  66. package/chunks/{chunk-IBJ5S45N.js → chunk-5T4LWWNX.js} +2 -2
  67. package/chunks/{chunk-VUMLT7E5.js → chunk-5Y2JCJAH.js} +2 -2
  68. package/chunks/{chunk-YZBDKFRQ.js → chunk-5ZYZPDDF.js} +993 -895
  69. package/chunks/{chunk-2A4C2MEG.js → chunk-62PXFOK4.js} +35 -12
  70. package/chunks/{chunk-IIWGSX4L.js → chunk-6E4WHQJV.js} +1 -1
  71. package/chunks/{chunk-6PCOVQO2.js → chunk-6HTMIKXZ.js} +8 -8
  72. package/chunks/{chunk-RDG44S5I.js → chunk-6KS24S3X.js} +2 -2
  73. package/chunks/{chunk-GAHYKJPV.js → chunk-6US7BF3G.js} +7 -59
  74. package/chunks/{chunk-MHG6NDS6.js → chunk-6YAR6ZU3.js} +2 -2
  75. package/chunks/{chunk-3CLIDIVQ.js → chunk-73WFGVIZ.js} +3 -3
  76. package/chunks/{chunk-ZZUVC6RI.js → chunk-76WGY6LW.js} +3 -3
  77. package/chunks/{chunk-XLDFW44M.js → chunk-77TOMRBG.js} +3 -3
  78. package/chunks/{chunk-PDL6LKB5.js → chunk-7AS7QX72.js} +1 -1
  79. package/chunks/{chunk-ND7NOI4P.js → chunk-7CWEZQ6T.js} +0 -15
  80. package/chunks/{chunk-DWCKACFL.js → chunk-7DPKPBOQ.js} +2 -2
  81. package/chunks/{chunk-45NQKMYB.js → chunk-7JPW6IYH.js} +1 -1
  82. package/chunks/{chunk-HDKCKCYO.js → chunk-7QGEJI7M.js} +1 -1
  83. package/chunks/{chunk-S4C4JJKE.js → chunk-A7X32SCT.js} +5 -5
  84. package/chunks/{chunk-O5Z7EB6Y.js → chunk-AYHQZBJ4.js} +170 -207
  85. package/chunks/{chunk-7DYNJFES.js → chunk-AYVIGUUK.js} +6 -1
  86. package/chunks/{chunk-7DMTAQJ6.js → chunk-BDHLBR46.js} +132 -49
  87. package/chunks/{chunk-43T5WDQ7.js → chunk-BFSFJR3D.js} +1 -1
  88. package/chunks/{chunk-AP3B7LKD.js → chunk-BKDAF7ES.js} +2 -2
  89. package/chunks/{chunk-B6UBOIFE.js → chunk-BQBUZDDH.js} +14 -11
  90. package/chunks/{chunk-VLRBJ24J.js → chunk-BVE5EMIG.js} +2 -2
  91. package/chunks/{chunk-P47E4SJC.js → chunk-BX2BZPFJ.js} +3 -3
  92. package/chunks/{chunk-OARZJFZX.js → chunk-C4WBKZJT.js} +4 -4
  93. package/chunks/{chunk-QKBYFU2Q.js → chunk-CFKIH3D3.js} +21 -1
  94. package/chunks/{chunk-URN2JIAQ.js → chunk-CITGRGCM.js} +2 -1
  95. package/chunks/{chunk-WU5E4HMO.js → chunk-CPPYZHBN.js} +1 -1
  96. package/chunks/chunk-DCSAVGDJ.js +20 -0
  97. package/chunks/{chunk-Q54XG7IX.js → chunk-DEYPMJPD.js} +1 -1
  98. package/chunks/{chunk-KSPRQSB4.js → chunk-DIMEPKCW.js} +52 -12
  99. package/chunks/{chunk-I432KXWD.js → chunk-DP7LABIB.js} +1 -1
  100. package/chunks/{chunk-36OF5PRW.js → chunk-E4I5MVBR.js} +7 -3
  101. package/chunks/{chunk-AW27A43Y.js → chunk-E55H6BZ7.js} +93 -1
  102. package/chunks/{chunk-K623ENWT.js → chunk-E6FGMDFQ.js} +4 -0
  103. package/chunks/{chunk-5XUTPXQU.js → chunk-EAV3TENS.js} +6 -9
  104. package/chunks/{chunk-LI4YHTQK.js → chunk-EB4VDXNI.js} +1 -1
  105. package/chunks/{chunk-JOLJTKIG.js → chunk-EC5BONC3.js} +1 -1
  106. package/chunks/{chunk-25NESM4G.js → chunk-EEQYTWGU.js} +29 -5
  107. package/chunks/{chunk-4CWDWDL6.js → chunk-EKP3M4RF.js} +1 -1
  108. package/chunks/{chunk-W4CRPSC5.js → chunk-ELY4QVIB.js} +1 -1
  109. package/chunks/{chunk-BB5IMQCV.js → chunk-EMGAVCBZ.js} +2 -2
  110. package/chunks/chunk-FBX2SDQ4.js +48 -0
  111. package/chunks/{chunk-C72BXMJ5.js → chunk-FJWICLG7.js} +1 -1
  112. package/chunks/{chunk-6FRJEE2S.js → chunk-FK4H3V6S.js} +5 -5
  113. package/chunks/{chunk-LDGWX737.js → chunk-FN5C6C7G.js} +160 -59
  114. package/chunks/{chunk-3ZFJUBTP.js → chunk-FPH6TXD3.js} +1 -1
  115. package/chunks/{chunk-WRT324N6.js → chunk-FVDQ5E67.js} +3 -3
  116. package/chunks/{chunk-VFACN2CE.js → chunk-GNMJNDZE.js} +1 -1
  117. package/chunks/{chunk-FVBVJEBG.js → chunk-GNRVKN76.js} +10 -8
  118. package/chunks/{chunk-PZRUV52H.js → chunk-GTUKW3I6.js} +20 -2
  119. package/chunks/chunk-GYTKQYDB.js +23 -0
  120. package/chunks/{chunk-VMJL7RH6.js → chunk-GZJUCMH4.js} +4 -4
  121. package/chunks/{chunk-MQP3MHWN.js → chunk-HJOWQUE2.js} +21 -15
  122. package/chunks/{chunk-ZS5BHEPD.js → chunk-I32QCIK7.js} +1 -1
  123. package/chunks/{chunk-7IV52LTO.js → chunk-I6VVOZDK.js} +2 -2
  124. package/chunks/{chunk-X7V3N6YH.js → chunk-I6YW3T3W.js} +218 -37
  125. package/chunks/{chunk-2E3V7G6Y.js → chunk-ICWGPK23.js} +55 -50
  126. package/chunks/{chunk-SQS55KR4.js → chunk-IJVDHPKD.js} +2 -2
  127. package/chunks/{chunk-QS4ENGVF.js → chunk-IKN3IUJP.js} +9 -8
  128. package/chunks/{chunk-2UZJWSVD.js → chunk-ILPXSKGQ.js} +2 -2
  129. package/chunks/{chunk-ZRYQMWEP.js → chunk-IPQA4SR5.js} +2 -2
  130. package/chunks/{chunk-XYQHT3AW.js → chunk-IRIX323G.js} +2 -2
  131. package/chunks/{chunk-5HJUPACR.js → chunk-J7MLXFC5.js} +2 -2
  132. package/chunks/{chunk-AZF6SME3.js → chunk-JECO75XD.js} +3 -3
  133. package/chunks/chunk-JLGFGPZJ.js +346 -0
  134. package/chunks/{chunk-WZDM44SB.js → chunk-JUIJ3FXC.js} +7 -7
  135. package/chunks/{chunk-A6NRNRKE.js → chunk-JVPFTDBK.js} +1 -1
  136. package/chunks/{chunk-2J3OJGTL.js → chunk-K2OJUPOE.js} +1 -21
  137. package/chunks/{chunk-GHY5OIYP.js → chunk-K63NK3KL.js} +13 -13
  138. package/chunks/{chunk-7JBHIQS2.js → chunk-KCOXDRQL.js} +7 -13
  139. package/chunks/{chunk-6NFAEG54.js → chunk-KOJ6MHD5.js} +24 -13
  140. package/chunks/{chunk-WS7PAXXR.js → chunk-KWFP3WV6.js} +18 -13
  141. package/chunks/{chunk-A5F63FEW.js → chunk-L436XFLJ.js} +1 -1
  142. package/chunks/{chunk-KIVGVFMM.js → chunk-LI2HEMKO.js} +16 -4
  143. package/chunks/{chunk-GIWB5QLV.js → chunk-LJP2BBMK.js} +4 -4
  144. package/chunks/{create-sub-session-XBCVGNFU.js → chunk-LRKMQPMD.js} +4 -6
  145. package/chunks/{chunk-6UQSU7CQ.js → chunk-MDZO5V2O.js} +58 -107
  146. package/chunks/{chunk-AO4M6NMD.js → chunk-MW5AHWOZ.js} +60 -20
  147. package/chunks/{chunk-FYZMB6DB.js → chunk-MYLXL7F6.js} +11 -11
  148. package/chunks/{chunk-ZLCT4C5A.js → chunk-MZS7GEC7.js} +1 -1
  149. package/chunks/{chunk-VEND4KA4.js → chunk-NER3H7PI.js} +1 -1
  150. package/chunks/{chunk-AVCCKIZ6.js → chunk-NVK4HJYQ.js} +1 -1
  151. package/chunks/{chunk-MPHLIJYL.js → chunk-NY3IJYAV.js} +14 -8
  152. package/chunks/{chunk-XZJKSETB.js → chunk-O3BUXIPM.js} +3 -3
  153. package/chunks/{chunk-4XPSVIED.js → chunk-O5YGAEQS.js} +6 -6
  154. package/chunks/{chunk-NW35NVFN.js → chunk-ODXCSIH5.js} +4 -4
  155. package/chunks/{chunk-5XHAOUWD.js → chunk-OI2DR6QB.js} +3 -3
  156. package/chunks/{chunk-BUGYW6FB.js → chunk-OQ6LTSX3.js} +1 -1
  157. package/chunks/{chunk-J5ZDDUKM.js → chunk-OT26ITEY.js} +4 -4
  158. package/chunks/{chunk-EFB657PR.js → chunk-OX44MOAN.js} +3 -3
  159. package/chunks/{chunk-LURJYO2T.js → chunk-OZ6KS6KW.js} +4 -0
  160. package/chunks/{chunk-4F5WV4RF.js → chunk-PAJGKZAA.js} +281 -10
  161. package/chunks/{chunk-HIK2OF33.js → chunk-PVBT5QPD.js} +1 -1
  162. package/chunks/chunk-QHMLYMMS.js +32 -0
  163. package/chunks/{chunk-U2UYQMM6.js → chunk-R2ZJH3FV.js} +3 -3
  164. package/chunks/{chunk-K52PZNU4.js → chunk-RRKNX553.js} +2 -2
  165. package/chunks/chunk-RXFQM6FQ.js +42 -0
  166. package/chunks/{chunk-SJ4HB27T.js → chunk-SDVF6A42.js} +3 -3
  167. package/chunks/{chunk-TBVSALA3.js → chunk-SKNVVYIJ.js} +3 -3
  168. package/chunks/{chunk-JGUBDRBC.js → chunk-SLEWBQWM.js} +3 -3
  169. package/chunks/{chunk-ZRFUT5VV.js → chunk-SM7ZVKTF.js} +7 -7
  170. package/chunks/{chunk-UUQFJILB.js → chunk-SQPOJ4ZI.js} +15 -3
  171. package/chunks/{chunk-RPJQ3O4M.js → chunk-SRGENTPF.js} +31 -41
  172. package/chunks/{chunk-ISJMN3ML.js → chunk-T2CRBIDJ.js} +1 -1
  173. package/chunks/{chunk-MZKWFWVG.js → chunk-T2HMXHYA.js} +6 -6
  174. package/chunks/{chunk-FEMQ6Y7W.js → chunk-T6OODF2U.js} +47 -126
  175. package/chunks/{chunk-VYC7XFYV.js → chunk-TKO4TLT6.js} +5 -5
  176. package/chunks/{chunk-KVGR4MCF.js → chunk-TOF4UZHH.js} +3 -3
  177. package/chunks/{chunk-LD5VIJ7S.js → chunk-TWSKM647.js} +1 -1
  178. package/chunks/{chunk-7NBVNAJJ.js → chunk-UCSV2IZW.js} +3 -3
  179. package/chunks/{chunk-FDD2IUEL.js → chunk-UX3IFLJM.js} +229 -21
  180. package/chunks/{chunk-YDJRMQU4.js → chunk-V3GINY6K.js} +3 -3
  181. package/chunks/{chunk-XL5K4SVK.js → chunk-VL4YX3FH.js} +1 -1
  182. package/chunks/{chunk-62JOGZL5.js → chunk-VMDURMFY.js} +199 -87
  183. package/chunks/{chunk-OE52YHCZ.js → chunk-W2WRNJKX.js} +11 -11
  184. package/chunks/{chunk-YLFLHKDL.js → chunk-W3N5XAZ6.js} +1 -1
  185. package/chunks/{chunk-IWOWEENB.js → chunk-WBT3STGU.js} +385 -25
  186. package/chunks/{chunk-S3G6YFQC.js → chunk-WEGXPP5E.js} +1 -1
  187. package/chunks/{chunk-RDQ7QB4Y.js → chunk-XJS54K4A.js} +2 -2
  188. package/chunks/{chunk-L4HVF7LM.js → chunk-XNXWEGKB.js} +3 -3
  189. package/chunks/{chunk-T6XLJRQY.js → chunk-XYX474JQ.js} +36509 -5182
  190. package/chunks/{chunk-F6WFNA7U.js → chunk-XZA32HII.js} +3 -6
  191. package/chunks/{chunk-NUGZAFR2.js → chunk-ZEADBZLO.js} +147 -6
  192. package/chunks/chunk-ZELCTN6Y.js +29 -0
  193. package/chunks/{chunk-TQOF5KBL.js → chunk-ZEZKIS2K.js} +0 -31
  194. package/chunks/{chunk-IOSEW6KP.js → chunk-ZJG323IA.js} +5 -4
  195. package/chunks/{chunk-VSNPOSDN.js → chunk-ZKAZP2ZG.js} +107 -12
  196. package/chunks/{chunk-YMVFIYHV.js → chunk-ZLTEQYNC.js} +2 -2
  197. package/chunks/{chunk-O5BDEWBC.js → chunk-ZWKGZB2K.js} +3 -3
  198. package/chunks/{chunk-6QSA4JHL.js → chunk-ZXDM7DYV.js} +2772 -814
  199. package/chunks/chunk-ZYNTSXWK.js +32 -0
  200. package/chunks/config-utils-7M6PCTLT.js +113 -0
  201. package/chunks/contextCommand-G4QG3TW6.js +108 -0
  202. package/chunks/{core-runtime-CES6JSVV.js → core-runtime-PKNQ63VL.js} +63 -58
  203. package/chunks/{create-sub-session-UJTPMVOG.js → create-sub-session-PLGPY6TV.js} +60 -58
  204. package/chunks/create-sub-session-RVHSWVAP.js +17 -0
  205. package/chunks/{cron-create-IKA56DAF.js → cron-create-IJGVR5R2.js} +4 -4
  206. package/chunks/{cron-delete-K5Q62EGH.js → cron-delete-4N5BI6GL.js} +4 -4
  207. package/chunks/{cron-list-QBFGAMP7.js → cron-list-2CATIPUX.js} +4 -4
  208. package/chunks/{daemon-RZZUPGOJ.js → daemon-NAYK4XXU.js} +51 -24
  209. package/chunks/{daemon-git-worktree-guard-3QY2BQYB.js → daemon-git-worktree-guard-LDBJXH2U.js} +338 -92
  210. package/chunks/daemon-status-provider-F5FEHVVG.js +118 -0
  211. package/chunks/daemon-trust-policy-C6YTU5CQ.js +114 -0
  212. package/chunks/{daemon-trust-policy-monitor-TK4K7M63.js → daemon-trust-policy-monitor-IGEJPHQ4.js} +68 -66
  213. package/chunks/{de-RYUHH2C6.js → de-X6HLSIFE.js} +1 -0
  214. package/chunks/deferred-core-runtime-GHT3GDOR.js +116 -0
  215. package/chunks/{display-image-OEJMJV3S.js → display-image-DR55LL6M.js} +5 -5
  216. package/chunks/dist-4Q7NTUNB.js +2512 -0
  217. package/chunks/{dist-ESS34DHC.js → dist-6H6RZ5H6.js} +2 -2
  218. package/chunks/{dist-LZO24N3E.js → dist-7CKN54NL.js} +1 -1
  219. package/chunks/{dist-5EV2G6MC.js → dist-DJBNNPLN.js} +1 -1
  220. package/chunks/{dist-J6P3C52Z.js → dist-FVJZSIO4.js} +28 -7
  221. package/chunks/{dist-K7IQB53U.js → dist-SATKXKUR.js} +1 -1
  222. package/chunks/{dist-ES6HNUW2.js → dist-TJUDJTCB.js} +246 -17
  223. package/chunks/{dist-VVQBOKDH.js → dist-UQUFZDIY.js} +1 -1
  224. package/chunks/{dist-2OG3PGKO.js → dist-ZBVOXSKF.js} +3 -3
  225. package/chunks/earlyInputCapture-HOSJTLWP.js +109 -0
  226. package/chunks/{edit-A2633SLR.js → edit-KSPVUEAS.js} +48 -48
  227. package/chunks/{en-3RHLPITS.js → en-6MDBWMTG.js} +3 -0
  228. package/chunks/{enter-worktree-OIAHE2TB.js → enter-worktree-UOZ6ZTP7.js} +7 -8
  229. package/chunks/{enterPlanMode-SUGIKLR7.js → enterPlanMode-DZTABSKN.js} +47 -47
  230. package/chunks/environment-JXOSW25V.js +131 -0
  231. package/chunks/errors-IOXFDE4J.js +115 -0
  232. package/chunks/{exit-worktree-3UT3SSWT.js → exit-worktree-G2QATUCV.js} +7 -8
  233. package/chunks/exitPlanMode-PZG4FXRB.js +85 -0
  234. package/chunks/{fast-path-3AVP3G35.js → fast-path-EBS7NAVL.js} +28 -7
  235. package/chunks/{fast-path-settings-WHX3J3ZI.js → fast-path-settings-XMFBYFUH.js} +2 -2
  236. package/chunks/{fr-4PL5GHG4.js → fr-FTZWF462.js} +1 -0
  237. package/chunks/{gemini-7PVQWHTH.js → gemini-JELEKOVS.js} +129 -123
  238. package/chunks/{geminiContentGenerator-B2FOJJDJ.js → geminiContentGenerator-I2CKP7XI.js} +16 -13
  239. package/chunks/{glob-7YGXE6OV.js → glob-TDVEVPQZ.js} +47 -47
  240. package/chunks/{goal-tools-TLJCE7YZ.js → goal-tools-CNVXMSZD.js} +72 -28
  241. package/chunks/{grep-6DV6LTON.js → grep-3NLSS32D.js} +6 -6
  242. package/chunks/handleAutoUpdate-AWAGHKOX.js +111 -0
  243. package/chunks/i18n-CYA25C5F.js +126 -0
  244. package/chunks/{image-gen-7CSCJ73T.js → image-gen-63NN2H5N.js} +9 -11
  245. package/chunks/initializer-JD2FLNLO.js +115 -0
  246. package/chunks/installationInfo-N3DCWVWR.js +109 -0
  247. package/chunks/{ja-HZ7X7PQO.js → ja-2GL5FKYJ.js} +1 -0
  248. package/chunks/{keychain-token-storage-MTFTAESK.js → keychain-token-storage-3MGFRYGM.js} +2 -2
  249. package/chunks/list-XDQAUET5.js +118 -0
  250. package/chunks/{list-agents-43XUEXJV.js → list-agents-EXRSHIDJ.js} +2 -2
  251. package/chunks/loadedSettingsAdapter-IK7H5JRK.js +112 -0
  252. package/chunks/{loggingContentGenerator-RNE66CKK.js → loggingContentGenerator-CZWUAHAI.js} +27 -30
  253. package/chunks/{loop-wakeup-E54KDUXC.js → loop-wakeup-XBPB2BRO.js} +5 -5
  254. package/chunks/{ls-CGL2UC3H.js → ls-WFONAND2.js} +4 -4
  255. package/chunks/{lsp-5IKUO5DX.js → lsp-DUKPDUXN.js} +2 -2
  256. package/chunks/{managed-npm-update-Y3SC3GLJ.js → managed-npm-update-54W23SP5.js} +61 -59
  257. package/chunks/mcp-2E7ZLMEE.js +112 -0
  258. package/chunks/{monitor-PXYSGSUN.js → monitor-A4J5QRGJ.js} +47 -47
  259. package/chunks/nonInteractiveCli-ZNDXB62Y.js +185 -0
  260. package/chunks/{notebook-edit-ISIBJVBR.js → notebook-edit-4ANFZON5.js} +48 -48
  261. package/chunks/open-with-auth-4UI3KHUR.js +55 -0
  262. package/chunks/{openaiContentGenerator-6TBOPEGT.js → openaiContentGenerator-JCCJJQZC.js} +29 -30
  263. package/chunks/pidfile-DHV2Y7UD.js +113 -0
  264. package/chunks/{processUtils-YK2TDTTU.js → processUtils-JJAR56SO.js} +2 -2
  265. package/chunks/prompt-terminal-ledger-LDZ6QVYA.js +107 -0
  266. package/chunks/{pt-QT5N2Q6Q.js → pt-XN2YWJVM.js} +1 -0
  267. package/chunks/{qwenContentGenerator-CLDMA2Y4.js → qwenContentGenerator-5JM44ZSA.js} +53 -59
  268. package/chunks/{qwenOAuth2-DLDR6UC5.js → qwenOAuth2-JIYAWXTW.js} +8 -10
  269. package/chunks/{read-file-2HOD2ATO.js → read-file-N3E5DY7N.js} +13 -14
  270. package/chunks/{read-mcp-resource-XYES2B42.js → read-mcp-resource-7A7NFSFL.js} +2 -2
  271. package/chunks/read-package-up-6T6ICKR7.js +13 -0
  272. package/chunks/{record-artifact-W3IBTGL7.js → record-artifact-CPJ4IJSD.js} +4 -5
  273. package/chunks/report-findings-VFM5DENC.js +33 -0
  274. package/chunks/request-shutdown-AXVOFN5C.js +133 -0
  275. package/chunks/resumeHistoryUtils-YQRITQAG.js +120 -0
  276. package/chunks/ripGrep-NEIHKBKB.js +39 -0
  277. package/chunks/{ru-STMG5BPD.js → ru-OLTMFJEW.js} +1 -0
  278. package/chunks/{run-qwen-serve-XJHOW2NY.js → run-qwen-serve-IWGPZADI.js} +622 -79
  279. package/chunks/{runtime-J4SPTJRQ.js → runtime-I76HPFUE.js} +73 -71
  280. package/chunks/{scheduler-VRAEZZ4E.js → scheduler-M6YL4K4I.js} +62 -60
  281. package/chunks/{sdk-exporters-http-RSIOP3G2.js → sdk-exporters-http-XXSKBD2C.js} +5 -5
  282. package/chunks/{sdk-impl-CB3KARSK.js → sdk-impl-VPNBLV7I.js} +7 -7
  283. package/chunks/{send-message-J4VT46OI.js → send-message-A2GXDX3B.js} +10 -31
  284. package/chunks/serve-XY5S63GN.js +120 -0
  285. package/chunks/{server-74ONDK62.js → server-TWXRRREO.js} +965 -405
  286. package/chunks/{session-BO6VBWJP.js → session-IT5ZXU7A.js} +151 -140
  287. package/chunks/{settings-35QZNFDG.js → settings-IX5HOOCG.js} +71 -69
  288. package/chunks/shell-LZ55AAJB.js +95 -0
  289. package/chunks/{skill-DKEMQSNJ.js → skill-WSZ53D2R.js} +108 -25
  290. package/chunks/skill-settings-5U7FTJIK.js +120 -0
  291. package/chunks/spawnChannel-TMC6VXGN.js +113 -0
  292. package/chunks/standalone-update-CUYGWTR4.js +120 -0
  293. package/chunks/{startInteractiveUI-J2QSGWPU.js → startInteractiveUI-O6BI2OSA.js} +381 -293
  294. package/chunks/{syntheticOutput-JAXMIMZP.js → syntheticOutput-5AJ444QT.js} +3 -3
  295. package/chunks/{task-create-I2H322E4.js → task-create-CDJSOEQD.js} +11 -11
  296. package/chunks/{task-list-3OLIWFTQ.js → task-list-BELMPA75.js} +5 -5
  297. package/chunks/{task-stop-JAUY6MSY.js → task-stop-U3S3KZG2.js} +2 -2
  298. package/chunks/{task-update-B3XO4CPI.js → task-update-77VCFDDZ.js} +11 -11
  299. package/chunks/{team-create-W534PMGX.js → team-create-UF4TMQEH.js} +48 -48
  300. package/chunks/{team-delete-Q7GE7RRI.js → team-delete-YWFXX77L.js} +5 -5
  301. package/chunks/{team-plan-approval-WNV6P6NG.js → team-plan-approval-U57NSR6C.js} +47 -47
  302. package/chunks/terminal-image-renderer-DRL3BROJ.js +116 -0
  303. package/chunks/theme-manager-HHJPUDRN.js +104 -0
  304. package/chunks/{todoWrite-FJJTY2TI.js → todoWrite-435EO2CS.js} +4 -4
  305. package/chunks/{tool-search-Y4KL3LRE.js → tool-search-SV35UV72.js} +18 -19
  306. package/chunks/total-session-admission-TQI7TCTL.js +114 -0
  307. package/chunks/trustedFolders-YKK67IP3.js +124 -0
  308. package/chunks/{update-relaunch-OHVFN6KF.js → update-relaunch-DX7LVA4P.js} +6 -6
  309. package/chunks/updateCheck-6JRTKTUF.js +120 -0
  310. package/chunks/useAutoAcceptIndicator-MYXYSKSL.js +122 -0
  311. package/chunks/{validateNonInterActiveAuth-WJXH426F.js → validateNonInterActiveAuth-B26O4YJP.js} +113 -106
  312. package/chunks/{version-QMDRADXM.js → version-K5D7VJ4B.js} +2 -2
  313. package/chunks/{web-fetch-ROS6P4LP.js → web-fetch-VFHZLLNZ.js} +25 -242
  314. package/chunks/{web-search-JS3E76O6.js → web-search-AQE5A4J5.js} +11 -11
  315. package/chunks/{web-shell-static-3NUTRHAH.js → web-shell-static-A6QMUNNV.js} +11 -4
  316. package/chunks/webapi-Z5OM224P.js +4118 -0
  317. package/chunks/{workflow-2FCMBTBZ.js → workflow-XL6AEUZ7.js} +635 -94
  318. package/chunks/workspace-providers-status-H6TG34YV.js +116 -0
  319. package/chunks/{workspace-registration-store-SU4EJKSD.js → workspace-registration-store-I4U3V5LL.js} +1 -1
  320. package/chunks/workspace-registry-2PWNIYNI.js +123 -0
  321. package/chunks/workspace-service-4FGTUJLA.js +131 -0
  322. package/chunks/workspace-skills-status-7VOLUDT6.js +115 -0
  323. package/chunks/{workspace-trust-reconciler-4Y4F7XIX.js → workspace-trust-reconciler-GJ466KCE.js} +74 -73
  324. package/chunks/write-file-PWOYCT2K.js +90 -0
  325. package/chunks/{zh-TW-NX43Z2S2.js → zh-TW-MV4FWFB6.js} +3 -0
  326. package/chunks/{zh-3JQ75KFU.js → zh-X3WGU6SI.js} +3 -0
  327. package/chunks/{zoom-image-DNBKCGGF.js → zoom-image-NYJPC3NI.js} +13 -14
  328. package/cli.js +15 -15
  329. package/locales/ca.js +3 -0
  330. package/locales/de.js +1 -0
  331. package/locales/en.js +3 -0
  332. package/locales/fr.js +1 -0
  333. package/locales/ja.js +1 -0
  334. package/locales/pt.js +1 -0
  335. package/locales/ru.js +1 -0
  336. package/locales/zh-TW.js +3 -0
  337. package/locales/zh.js +3 -0
  338. package/package.json +3 -3
  339. package/web-shell/assets/{abnfDiagram-VCTEODGH-DWHXEVlf.js → abnfDiagram-VCTEODGH-yq7z7Anb.js} +1 -1
  340. package/web-shell/assets/{arc-CXKjm86V.js → arc-CbJO0xnT.js} +1 -1
  341. package/web-shell/assets/{architectureDiagram-5GKGNRK7-B_ynI0cX.js → architectureDiagram-5GKGNRK7-CRh89421.js} +1 -1
  342. package/web-shell/assets/{blockDiagram-NRAW4CY4-DMebd9X0.js → blockDiagram-NRAW4CY4-C75KAhKv.js} +1 -1
  343. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BZ5BlxS-.js → c4Diagram-UCG6FXSJ-BzlMveFB.js} +1 -1
  344. package/web-shell/assets/channel-B3sGR79J.js +1 -0
  345. package/web-shell/assets/{chunk-2Q5K7J3B-CluJKopE.js → chunk-2Q5K7J3B-DA8QDX3a.js} +1 -1
  346. package/web-shell/assets/{chunk-5VM5RSS4-hzDAPFOo.js → chunk-5VM5RSS4-Bgu7gQ7Y.js} +1 -1
  347. package/web-shell/assets/{chunk-F27PBJKO-6vHioKJe.js → chunk-F27PBJKO-BOew7pIK.js} +1 -1
  348. package/web-shell/assets/{chunk-G27WJ6UU-B_5hKTGo.js → chunk-G27WJ6UU-DHx1I-hO.js} +1 -1
  349. package/web-shell/assets/{chunk-JWPE2WC7-CO9VoFCH.js → chunk-JWPE2WC7-SarFW0WU.js} +1 -1
  350. package/web-shell/assets/{chunk-LCL6LL3I-7L5JpxYu.js → chunk-LCL6LL3I-BLzP083Z.js} +1 -1
  351. package/web-shell/assets/{chunk-POPQ4Y6H-DHLJMAqj.js → chunk-POPQ4Y6H-Bmkv_iKm.js} +1 -1
  352. package/web-shell/assets/{chunk-SVP7TREG-Dt-4Cqdl.js → chunk-SVP7TREG-MPx9r1N2.js} +1 -1
  353. package/web-shell/assets/{chunk-XXDRQBXY-QlSQ3ssG.js → chunk-XXDRQBXY-Ck-09rKG.js} +1 -1
  354. package/web-shell/assets/classDiagram-DTDB5LWJ-sTGo0K3v.js +1 -0
  355. package/web-shell/assets/classDiagram-v2-JRS7N3AN-sTGo0K3v.js +1 -0
  356. package/web-shell/assets/{cose-bilkent-JH36ORCC-DMw3EOxl.js → cose-bilkent-JH36ORCC-DWm6lfOG.js} +1 -1
  357. package/web-shell/assets/{cynefin-OW5HDTMX-s6vEA7RQ.js → cynefin-OW5HDTMX-DcBUyr5R.js} +1 -1
  358. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-AOKsvYLt.js → cynefinDiagram-5FMLGOSQ-Df8qmd_p.js} +1 -1
  359. package/web-shell/assets/{dagre-3AP2YEHR-9QAZn3m7.js → dagre-3AP2YEHR-DDmGspD7.js} +1 -1
  360. package/web-shell/assets/{diagram-S7CK7UJ4-CWpnu4FN.js → diagram-S7CK7UJ4-BK_qFvbi.js} +1 -1
  361. package/web-shell/assets/{diagram-UQ7AKVKN-9l0jXD8q.js → diagram-UQ7AKVKN-Uw3AP_bi.js} +1 -1
  362. package/web-shell/assets/{diagram-VSXAHHWV-BMUHroj4.js → diagram-VSXAHHWV-CJOQKxY7.js} +1 -1
  363. package/web-shell/assets/{diagram-VX7I27RA-Co9x27vm.js → diagram-VX7I27RA-DhdvZna5.js} +1 -1
  364. package/web-shell/assets/{diagram-Z3DM3KII-BKnTeOER.js → diagram-Z3DM3KII-edQU0nlP.js} +1 -1
  365. package/web-shell/assets/{ebnfDiagram-PWID7BFC-QBZD9CKG.js → ebnfDiagram-PWID7BFC-4kugBEsO.js} +1 -1
  366. package/web-shell/assets/{erDiagram-SSCWMZ5O-dKWAEGun.js → erDiagram-SSCWMZ5O-BMkFivWO.js} +1 -1
  367. package/web-shell/assets/{flowDiagram-A5DVABFB-CR_UgVqj.js → flowDiagram-A5DVABFB-BM1ea8g-.js} +1 -1
  368. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DQUnjWO6.js → ganttDiagram-EL5Y4UJY-CXj_cKRf.js} +1 -1
  369. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-C4j59wPL.js → gitGraphDiagram-WWUBYQGX-D0nEqwqu.js} +1 -1
  370. package/web-shell/assets/{index-tYXRIPz4.js → index-B6JN54Pd.js} +1 -1
  371. package/web-shell/assets/{index-BN_m_uHJ.css → index-C-XlQn24.css} +1 -1
  372. package/web-shell/assets/index-DLjXM0dn.js +1860 -0
  373. package/web-shell/assets/{infoDiagram-RXCK75RN-mzqbt50w.js → infoDiagram-RXCK75RN-DF7aGGbQ.js} +1 -1
  374. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-ChLOqhGl.js → ishikawaDiagram-5VMMS53U-CZYNX1lL.js} +1 -1
  375. package/web-shell/assets/{journeyDiagram-EYS64GPL-SifZE-R8.js → journeyDiagram-EYS64GPL-CvrqMUz1.js} +1 -1
  376. package/web-shell/assets/{kanban-definition-3QL26DDD-Sft2qlbc.js → kanban-definition-3QL26DDD-BZNJQZBj.js} +1 -1
  377. package/web-shell/assets/{layout-O2uHVkPd.js → layout-Bf83x7D6.js} +1 -1
  378. package/web-shell/assets/{linear-BVqYgjSc.js → linear-Bkc3ES2f.js} +1 -1
  379. package/web-shell/assets/{mermaid.core-CZ9MQaJ6.js → mermaid.core-C6xuovwz.js} +6 -6
  380. package/web-shell/assets/{mindmap-definition-FBJOCRG2-BNQYjBqM.js → mindmap-definition-FBJOCRG2-DzH6gVRg.js} +1 -1
  381. package/web-shell/assets/{pegDiagram-XKGWAZYB-rh1J8uv6.js → pegDiagram-XKGWAZYB-DCvLh2fa.js} +1 -1
  382. package/web-shell/assets/{pieDiagram-E7YTZNPT-BQHR5mn9.js → pieDiagram-E7YTZNPT-BtjVlx_6.js} +1 -1
  383. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CLCbP7mK.js → quadrantDiagram-AXDQQJYC-IbroqxFe.js} +1 -1
  384. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CDQhrkbm.js → railroadDiagram-O6MQD6OU-BvMykiWW.js} +1 -1
  385. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BdP9uswg.js → requirementDiagram-EFPCY7ZU-D-HHMyrh.js} +1 -1
  386. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CFZDFBXF.js → sankeyDiagram-P5KCCOFB-C0XXhB6d.js} +1 -1
  387. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BW9WOJXI.js → sequenceDiagram-WJ2MYXX4-DseAXj5d.js} +1 -1
  388. package/web-shell/assets/{sizeCapture-X5ZJPWSS-CPMia32z.js → sizeCapture-X5ZJPWSS-Cek2EweK.js} +1 -1
  389. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BANp9p7F.js → stateDiagram-HBIQ2CUA-yLv8wafW.js} +1 -1
  390. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DeThXnol.js +1 -0
  391. package/web-shell/assets/{swimlanes-XN3QIQJK-JroXksK-.js → swimlanes-XN3QIQJK-Cwz-opvE.js} +1 -1
  392. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-GW0R1ZSv.js +8 -0
  393. package/web-shell/assets/{timeline-definition-24CTP7MA-DfuVIfYY.js → timeline-definition-24CTP7MA-BJuFD7OG.js} +1 -1
  394. package/web-shell/assets/{vennDiagram-4TSXK5OY-BZXoSjRB.js → vennDiagram-4TSXK5OY-CNAavdoV.js} +1 -1
  395. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-BdiY8avC.js → wardleyDiagram-VM6X3IG4-DaIjAidq.js} +1 -1
  396. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-DcXh_U4H.js → xychartDiagram-S5SC5T6Z-DkcQXjTy.js} +1 -1
  397. package/web-shell/index.html +19 -4
  398. package/chunks/MaxSizedBox-3OZJCC3J.js +0 -110
  399. package/chunks/agent-BFE3DQM3.js +0 -93
  400. package/chunks/agent-headless-LLVKZZ4P.js +0 -87
  401. package/chunks/bridge-EBYO4SYM.js +0 -118
  402. package/chunks/channel-settings-store-5VP2Y2YM.js +0 -115
  403. package/chunks/chunk-AXMWHKXA.js +0 -42
  404. package/chunks/chunk-IO257NUD.js +0 -623
  405. package/chunks/chunk-YHC2EYYG.js +0 -125
  406. package/chunks/computer-use-EGPWFEX6.js +0 -2142
  407. package/chunks/config-utils-WZ43VOBS.js +0 -25
  408. package/chunks/contextCommand-5DSEQI6S.js +0 -106
  409. package/chunks/daemon-status-provider-EYMLPYJU.js +0 -116
  410. package/chunks/daemon-trust-policy-CQYKZ7VO.js +0 -112
  411. package/chunks/deferred-core-runtime-WFEPUXZR.js +0 -114
  412. package/chunks/earlyInputCapture-PN4PP7V5.js +0 -107
  413. package/chunks/environment-WUPHLPKZ.js +0 -127
  414. package/chunks/errors-WPMPVIAT.js +0 -113
  415. package/chunks/exitPlanMode-MLFHYZNB.js +0 -85
  416. package/chunks/handleAutoUpdate-F5OTWUT5.js +0 -109
  417. package/chunks/i18n-C562S6KN.js +0 -124
  418. package/chunks/initializer-7YPGOFP4.js +0 -113
  419. package/chunks/installationInfo-ARU5Q2H7.js +0 -107
  420. package/chunks/list-KTSK275C.js +0 -116
  421. package/chunks/loadedSettingsAdapter-F3T2EQ5J.js +0 -110
  422. package/chunks/mcp-6ONTVPAY.js +0 -110
  423. package/chunks/nonInteractiveCli-KZDWFAN6.js +0 -178
  424. package/chunks/pidfile-IO7ALSZF.js +0 -111
  425. package/chunks/prompt-terminal-ledger-TCE7PMCE.js +0 -105
  426. package/chunks/resumeHistoryUtils-DDSBAQJS.js +0 -118
  427. package/chunks/ripGrep-E7P6K4QR.js +0 -40
  428. package/chunks/serve-KEAWV4TI.js +0 -118
  429. package/chunks/shell-H6K63WG3.js +0 -95
  430. package/chunks/skill-settings-TCKLXIXM.js +0 -118
  431. package/chunks/spawnChannel-2K6NKWM5.js +0 -111
  432. package/chunks/standalone-update-LSCGOEFP.js +0 -118
  433. package/chunks/terminal-image-renderer-UHX3UD66.js +0 -114
  434. package/chunks/theme-manager-6B47ZPIF.js +0 -102
  435. package/chunks/total-session-admission-NSCFWGJH.js +0 -113
  436. package/chunks/trustedFolders-7XMJWGQ3.js +0 -122
  437. package/chunks/updateCheck-EOVLHD4T.js +0 -118
  438. package/chunks/useAutoAcceptIndicator-ZNMIGBTN.js +0 -120
  439. package/chunks/workspace-providers-status-GPGU5YMT.js +0 -113
  440. package/chunks/workspace-registry-BQISXT6Y.js +0 -122
  441. package/chunks/workspace-service-LLY6HCUC.js +0 -129
  442. package/chunks/workspace-skills-status-L5N2Y3ZP.js +0 -113
  443. package/chunks/write-file-EJHU2Z3E.js +0 -90
  444. package/web-shell/assets/channel-Zg3WHgq_.js +0 -1
  445. package/web-shell/assets/classDiagram-DTDB5LWJ-C16l9jQz.js +0 -1
  446. package/web-shell/assets/classDiagram-v2-JRS7N3AN-C16l9jQz.js +0 -1
  447. package/web-shell/assets/index-DrlJu79f.js +0 -1792
  448. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-NZYAoQLU.js +0 -1
  449. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-3YdVX3vj.js +0 -8
@@ -1,34 +1,18 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import {
4
- CompactToolGroupDisplay,
5
- ICON,
6
- SCREEN_READER_MODEL_PREFIX,
7
- SCREEN_READER_USER_PREFIX,
8
- SHELL_COMMAND_NAME,
9
- SHELL_NAME,
10
- STATUS_INDICATOR_WIDTH,
11
- ToolElapsedTime,
12
- ToolStatusIndicator,
13
- buildResumedHistoryItems,
14
- build_default,
15
- estimateCompactToolGroupHeight,
16
- isCollapsibleTool,
17
- wrapAnsi
18
- } from "./chunk-UU4WC7DK.js";
19
3
  import {
20
4
  disableMouseEvents,
21
5
  enableMouseEvents,
22
6
  useKeypress,
23
7
  useKeypressContext
24
- } from "./chunk-4XPSVIED.js";
8
+ } from "./chunk-O5YGAEQS.js";
25
9
  import {
26
10
  formatSupportedModes,
27
11
  getCommandDisplayName,
28
12
  getCommandSourceBadge,
29
13
  getCommandSourceGroup,
30
14
  getCommandSubcommandNames
31
- } from "./chunk-IIWGSX4L.js";
15
+ } from "./chunk-6E4WHQJV.js";
32
16
  import {
33
17
  INLINE_CODE_SPAN_PATTERN_SOURCE,
34
18
  calculateAverageLatency,
@@ -43,19 +27,37 @@ import {
43
27
  readInlineMathSpanAt,
44
28
  unescapeMarkdownBeforeMath,
45
29
  unescapeMarkdownDollars
46
- } from "./chunk-J5ZDDUKM.js";
30
+ } from "./chunk-OT26ITEY.js";
31
+ import {
32
+ MINIMUM_MAX_HEIGHT,
33
+ MaxSizedBox
34
+ } from "./chunk-IJVDHPKD.js";
35
+ import {
36
+ CompactToolGroupDisplay,
37
+ ICON,
38
+ SCREEN_READER_MODEL_PREFIX,
39
+ SCREEN_READER_USER_PREFIX,
40
+ SHELL_COMMAND_NAME,
41
+ SHELL_NAME,
42
+ STATUS_INDICATOR_WIDTH,
43
+ ToolElapsedTime,
44
+ ToolStatusIndicator,
45
+ buildResumedHistoryItems,
46
+ build_default,
47
+ coalesceFindingsHistoryItems,
48
+ estimateCompactToolGroupHeight,
49
+ isCollapsibleTool,
50
+ isFindingsListDisplay,
51
+ wrapAnsi
52
+ } from "./chunk-2ZV3CZKI.js";
47
53
  import {
48
54
  formatDuration,
49
55
  formatRelativeTime,
50
56
  formatTokenCount
51
57
  } from "./chunk-3SH53ANB.js";
52
- import {
53
- MINIMUM_MAX_HEIGHT,
54
- MaxSizedBox
55
- } from "./chunk-SQS55KR4.js";
56
58
  import {
57
59
  theme
58
- } from "./chunk-3ZFJUBTP.js";
60
+ } from "./chunk-FPH6TXD3.js";
59
61
  import {
60
62
  require_jsx_runtime
61
63
  } from "./chunk-SV5PQVQE.js";
@@ -68,32 +70,32 @@ import {
68
70
  use_stdin_default,
69
71
  use_stdout_default
70
72
  } from "./chunk-5Q372OFJ.js";
71
- import {
72
- require_react
73
- } from "./chunk-5QWWOFGG.js";
74
73
  import {
75
74
  markKittyImageWritten,
76
75
  prepareInlineTerminalImage,
77
76
  renderMermaidImageAsync,
78
77
  renderTerminalImage,
79
78
  wasKittyImageWritten
80
- } from "./chunk-AP3B7LKD.js";
79
+ } from "./chunk-BKDAF7ES.js";
81
80
  import {
82
81
  formatInlineImageOverflow
83
- } from "./chunk-JOLJTKIG.js";
84
- import {
85
- relaunchApp
86
- } from "./chunk-AVCCKIZ6.js";
82
+ } from "./chunk-EC5BONC3.js";
87
83
  import {
88
84
  isTerminalGoalStatusKind
89
85
  } from "./chunk-EKTCKZV5.js";
90
86
  import {
91
87
  resolveColor,
92
88
  themeManager
93
- } from "./chunk-S3G6YFQC.js";
89
+ } from "./chunk-WEGXPP5E.js";
90
+ import {
91
+ require_react
92
+ } from "./chunk-5QWWOFGG.js";
94
93
  import {
95
94
  getErrorMessage
96
- } from "./chunk-OARZJFZX.js";
95
+ } from "./chunk-C4WBKZJT.js";
96
+ import {
97
+ relaunchApp
98
+ } from "./chunk-NVK4HJYQ.js";
97
99
  import {
98
100
  cpLen,
99
101
  cpSlice,
@@ -110,24 +112,24 @@ import {
110
112
  import {
111
113
  stringWidth
112
114
  } from "./chunk-2MIN6GRR.js";
113
- import {
114
- createLoadedSettingsAdapter
115
- } from "./chunk-PDL6LKB5.js";
116
115
  import {
117
116
  require_has_flag,
118
117
  require_source
119
118
  } from "./chunk-57OAHC2Y.js";
119
+ import {
120
+ createLoadedSettingsAdapter
121
+ } from "./chunk-7AS7QX72.js";
120
122
  import {
121
123
  getPersistScopeForModelSelection
122
- } from "./chunk-6UQSU7CQ.js";
124
+ } from "./chunk-MDZO5V2O.js";
123
125
  import {
124
126
  getCurrentLanguage,
125
127
  localizeToolDisplayName,
126
128
  t
127
- } from "./chunk-OE52YHCZ.js";
129
+ } from "./chunk-W2WRNJKX.js";
128
130
  import {
129
131
  isWorkspaceTrusted
130
- } from "./chunk-L4HVF7LM.js";
132
+ } from "./chunk-XNXWEGKB.js";
131
133
  import {
132
134
  ALL_PROVIDERS,
133
135
  PROVIDER_METADATA_NS,
@@ -140,12 +142,12 @@ import {
140
142
  resolveBaseUrl,
141
143
  resolveMetadataKey,
142
144
  resolveOwnsModel
143
- } from "./chunk-62JOGZL5.js";
145
+ } from "./chunk-VMDURMFY.js";
144
146
  import {
145
147
  sanitizeForOsc,
146
148
  supportsHyperlinks,
147
149
  wrapForMultiplexer
148
- } from "./chunk-O5BDEWBC.js";
150
+ } from "./chunk-ZWKGZB2K.js";
149
151
  import {
150
152
  IdeClient,
151
153
  ShellExecutionService,
@@ -157,7 +159,7 @@ import {
157
159
  getExternalEditorCommand,
158
160
  ideContextStore,
159
161
  isValidEditorType
160
- } from "./chunk-T6XLJRQY.js";
162
+ } from "./chunk-XYX474JQ.js";
161
163
  import {
162
164
  stripAnsi
163
165
  } from "./chunk-TWPJO254.js";
@@ -167,18 +169,18 @@ import {
167
169
  getMCPServerStatus,
168
170
  isVisionBridgeNoticeDisplay,
169
171
  uiTelemetryService
170
- } from "./chunk-FDD2IUEL.js";
172
+ } from "./chunk-UX3IFLJM.js";
171
173
  import {
172
174
  ToolDisplayNames,
173
175
  ToolNames,
174
176
  ToolNamesMigration,
175
177
  isTerminalImageDisplay
176
- } from "./chunk-6NFAEG54.js";
178
+ } from "./chunk-KOJ6MHD5.js";
177
179
  import {
178
180
  createDebugLogger,
179
181
  escapePath,
180
182
  unescapePath
181
- } from "./chunk-A5F2YNO6.js";
183
+ } from "./chunk-2NNTE2ED.js";
182
184
  import {
183
185
  init_esbuild_shims
184
186
  } from "./chunk-5O2XNYP6.js";
@@ -7183,6 +7185,72 @@ var TodoItemRow = /* @__PURE__ */ __name(({ todo }) => {
7183
7185
  ] });
7184
7186
  }, "TodoItemRow");
7185
7187
 
7188
+ // packages/cli/src/ui/components/FindingsDisplay.tsx
7189
+ init_esbuild_shims();
7190
+ var import_jsx_runtime14 = (
7191
+ // The unverified banner precedes the empty-state branch: an empty list is
7192
+ // still the product of the pass that reported it, and a low-effort "no
7193
+ // findings" that renders without the marker reads as a verified clean bill.
7194
+ __toESM(require_jsx_runtime(), 1)
7195
+ );
7196
+ var SEVERITY_COLORS = {
7197
+ Critical: /* @__PURE__ */ __name(() => Colors.AccentRed, "Critical"),
7198
+ Suggestion: /* @__PURE__ */ __name(() => Colors.AccentYellow, "Suggestion"),
7199
+ "Nice to have": /* @__PURE__ */ __name(() => Colors.Gray, "Nice to have")
7200
+ };
7201
+ function terminalSafe(text) {
7202
+ const withoutControls = text.replace(/[\u0000-\u001f\u007f-\u009f]/g, " ");
7203
+ return withoutControls.replace(/\s+/g, " ").trim();
7204
+ }
7205
+ __name(terminalSafe, "terminalSafe");
7206
+ var OUTCOME_LABELS = {
7207
+ fixed: "fixed",
7208
+ skipped: "skipped",
7209
+ no_change_needed: "no change needed"
7210
+ };
7211
+ var FindingsDisplay = /* @__PURE__ */ __name(({ data }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Box_default, { flexDirection: "column", children: [
7212
+ data.level === "low" && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Box_default, { minHeight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: Colors.Gray, children: "(low-effort pass \u2014 findings are unverified)" }) }),
7213
+ data.findings.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: Colors.Gray, children: "No findings." }) : data.findings.map((finding, index) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
7214
+ FindingRow,
7215
+ {
7216
+ finding
7217
+ },
7218
+ finding.id ?? `${finding.file}:${finding.line ?? ""}:${index}`
7219
+ )),
7220
+ data.omittedFindings !== void 0 && data.omittedFindings > 0 && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: Colors.Gray, children: `(+${data.omittedFindings} more finding${data.omittedFindings === 1 ? "" : "s"} removed by history compaction)` })
7221
+ ] }), "FindingsDisplay");
7222
+ var FindingRow = /* @__PURE__ */ __name(({ finding }) => {
7223
+ const severityColor = SEVERITY_COLORS[finding.severity]();
7224
+ const resolved = finding.outcome === "fixed" || finding.outcome === "no_change_needed";
7225
+ const icon = finding.outcome === void 0 ? ICON.CIRCLE_FILLED : resolved ? ICON.CHECK : ICON.CIRCLE_EMPTY;
7226
+ const where = terminalSafe(
7227
+ `${finding.file}${finding.line !== void 0 ? `:${finding.line}` : ""}`
7228
+ );
7229
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Box_default, { flexDirection: "row", minHeight: 1, children: [
7230
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Box_default, { width: 3, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: resolved ? Colors.AccentGreen : severityColor, children: icon }) }),
7231
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Text, { wrap: "wrap", children: [
7232
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: severityColor, bold: finding.severity === "Critical", children: finding.severity }),
7233
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Text, { color: Colors.Gray, children: [
7234
+ finding.id ? ` ${terminalSafe(finding.id)}` : "",
7235
+ " "
7236
+ ] }),
7237
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: Colors.AccentCyan, children: where }),
7238
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Text, { color: Colors.Foreground, strikethrough: resolved, children: [
7239
+ " ",
7240
+ terminalSafe(finding.shortSummary)
7241
+ ] }),
7242
+ finding.confidence === "low" && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: Colors.Gray, children: " (low confidence)" }),
7243
+ finding.outcome && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Text, { color: resolved ? Colors.AccentGreen : Colors.AccentYellow, children: [
7244
+ " ",
7245
+ "(",
7246
+ OUTCOME_LABELS[finding.outcome],
7247
+ finding.outcome === "skipped" && finding.outcomeNote ? `: ${terminalSafe(finding.outcomeNote)}` : "",
7248
+ ")"
7249
+ ] })
7250
+ ] }) })
7251
+ ] });
7252
+ }, "FindingRow");
7253
+
7186
7254
  // packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx
7187
7255
  init_esbuild_shims();
7188
7256
  var import_react26 = __toESM(require_react(), 1);
@@ -7927,7 +7995,7 @@ function RowMouseController({
7927
7995
  __name(RowMouseController, "RowMouseController");
7928
7996
 
7929
7997
  // packages/cli/src/ui/components/shared/BaseSelectionList.tsx
7930
- var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1);
7998
+ var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
7931
7999
  function getScrollOffsetForIndex(activeIndex, itemCount, maxItemsToShow) {
7932
8000
  return Math.max(
7933
8001
  0,
@@ -7977,8 +8045,8 @@ function BaseSelectionList({
7977
8045
  const itemRefs = (0, import_react20.useRef)([]);
7978
8046
  const visibleItems = items.slice(scrollOffset, scrollOffset + maxItemsToShow);
7979
8047
  const numberColumnWidth = String(items.length).length;
7980
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Box_default, { ref: containerRef, flexDirection: "column", gap: itemGap, children: [
7981
- mouseEnabled && isFocused && items.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
8048
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(Box_default, { ref: containerRef, flexDirection: "column", gap: itemGap, children: [
8049
+ mouseEnabled && isFocused && items.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
7982
8050
  RowMouseController,
7983
8051
  {
7984
8052
  containerRef,
@@ -7989,7 +8057,7 @@ function BaseSelectionList({
7989
8057
  onSelectIndex: selectIndex
7990
8058
  }
7991
8059
  ),
7992
- showScrollArrows && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
8060
+ showScrollArrows && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
7993
8061
  Text,
7994
8062
  {
7995
8063
  color: scrollOffset > 0 ? theme.text.primary : theme.text.secondary,
@@ -8017,7 +8085,7 @@ function BaseSelectionList({
8017
8085
  const itemNumberText = `${String(itemIndex + 1).padStart(
8018
8086
  numberColumnWidth
8019
8087
  )}.`;
8020
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
8088
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
8021
8089
  Box_default,
8022
8090
  {
8023
8091
  alignItems: "flex-start",
@@ -8025,7 +8093,7 @@ function BaseSelectionList({
8025
8093
  itemRefs.current[index] = node;
8026
8094
  },
8027
8095
  children: [
8028
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Box_default, { minWidth: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
8096
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Box_default, { minWidth: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
8029
8097
  Text,
8030
8098
  {
8031
8099
  color: isSelected ? theme.status.success : theme.text.primary,
@@ -8033,17 +8101,17 @@ function BaseSelectionList({
8033
8101
  children: isSelected ? "\u203A" : " "
8034
8102
  }
8035
8103
  ) }),
8036
- showNumbers && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
8104
+ showNumbers && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
8037
8105
  Box_default,
8038
8106
  {
8039
8107
  marginRight: 1,
8040
8108
  flexShrink: 0,
8041
8109
  minWidth: itemNumberText.length,
8042
8110
  "aria-state": { checked: isSelected },
8043
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: numberColor, children: itemNumberText })
8111
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Text, { color: numberColor, children: itemNumberText })
8044
8112
  }
8045
8113
  ),
8046
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Box_default, { flexGrow: 1, children: renderItem(item, {
8114
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Box_default, { flexGrow: 1, children: renderItem(item, {
8047
8115
  isSelected,
8048
8116
  titleColor,
8049
8117
  numberColor
@@ -8053,7 +8121,7 @@ function BaseSelectionList({
8053
8121
  item.key
8054
8122
  );
8055
8123
  }),
8056
- showScrollArrows && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
8124
+ showScrollArrows && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
8057
8125
  Text,
8058
8126
  {
8059
8127
  color: scrollOffset + maxItemsToShow < items.length ? theme.text.primary : theme.text.secondary,
@@ -8065,7 +8133,7 @@ function BaseSelectionList({
8065
8133
  __name(BaseSelectionList, "BaseSelectionList");
8066
8134
 
8067
8135
  // packages/cli/src/ui/components/shared/RadioButtonSelect.tsx
8068
- var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
8136
+ var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
8069
8137
  function RadioButtonSelect({
8070
8138
  items,
8071
8139
  initialIndex = 0,
@@ -8076,7 +8144,7 @@ function RadioButtonSelect({
8076
8144
  maxItemsToShow = 10,
8077
8145
  showNumbers = true
8078
8146
  }) {
8079
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
8147
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
8080
8148
  BaseSelectionList,
8081
8149
  {
8082
8150
  items,
@@ -8089,13 +8157,13 @@ function RadioButtonSelect({
8089
8157
  maxItemsToShow,
8090
8158
  renderItem: (item, { titleColor }) => {
8091
8159
  if (item.themeNameDisplay && item.themeTypeDisplay) {
8092
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(Text, { color: titleColor, wrap: "truncate", children: [
8160
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Text, { color: titleColor, wrap: "truncate", children: [
8093
8161
  item.themeNameDisplay,
8094
8162
  " ",
8095
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Text, { color: theme.text.secondary, children: item.themeTypeDisplay })
8163
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: theme.text.secondary, children: item.themeTypeDisplay })
8096
8164
  ] }, item.key);
8097
8165
  }
8098
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Text, { color: titleColor, wrap: "truncate", children: item.label });
8166
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: titleColor, wrap: "truncate", children: item.label });
8099
8167
  }
8100
8168
  }
8101
8169
  );
@@ -10966,7 +11034,7 @@ function renderSoftwareCursor(text) {
10966
11034
  __name(renderSoftwareCursor, "renderSoftwareCursor");
10967
11035
 
10968
11036
  // packages/cli/src/ui/components/shared/TextInput.tsx
10969
- var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
11037
+ var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
10970
11038
  function ellipsizeMiddle(text, width) {
10971
11039
  if (width <= 0) return "";
10972
11040
  if (stringWidth(text) <= width) return text;
@@ -11088,13 +11156,13 @@ function TextInput({
11088
11156
  const [cursorVisualRowAbsolute, cursorVisualColAbsolute] = buffer.visualCursor;
11089
11157
  const scrollVisualRow = buffer.visualScrollRow;
11090
11158
  const shouldRenderCursor = isActive && cursorVisible;
11091
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Box_default, { flexDirection: "column", gap: 1, children: [
11092
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Box_default, { children: [
11093
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: theme.text.accent, children: "> " }),
11094
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Box_default, { flexGrow: 1, flexDirection: "column", children: buffer.text.length === 0 && placeholder ? shouldRenderCursor ? /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Text, { children: [
11159
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { flexDirection: "column", gap: 1, children: [
11160
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { children: [
11161
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { color: theme.text.accent, children: "> " }),
11162
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { flexGrow: 1, flexDirection: "column", children: buffer.text.length === 0 && placeholder ? shouldRenderCursor ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Text, { children: [
11095
11163
  renderSoftwareCursor(placeholder.slice(0, 1)),
11096
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: Colors.Gray, children: placeholder.slice(1) })
11097
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: Colors.Gray, children: placeholder }) : ellipsizeOverflow && stringWidth(buffer.text) > inputWidth ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { children: ellipsizeMiddle(buffer.text, inputWidth) }) : linesToRender.map((lineText, visualIdxInRenderedSet) => {
11164
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { color: Colors.Gray, children: placeholder.slice(1) })
11165
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { color: Colors.Gray, children: placeholder }) : ellipsizeOverflow && stringWidth(buffer.text) > inputWidth ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { children: ellipsizeMiddle(buffer.text, inputWidth) }) : linesToRender.map((lineText, visualIdxInRenderedSet) => {
11098
11166
  const cursorVisualRow = cursorVisualRowAbsolute - scrollVisualRow;
11099
11167
  let display = cpSlice(lineText, 0, inputWidth);
11100
11168
  const currentVisualWidth = stringWidth(display);
@@ -11117,10 +11185,10 @@ function TextInput({
11117
11185
  }
11118
11186
  }
11119
11187
  }
11120
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { children: display }, `line-${visualIdxInRenderedSet}`);
11188
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { children: display }, `line-${visualIdxInRenderedSet}`);
11121
11189
  }) })
11122
11190
  ] }),
11123
- validationErrors.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Box_default, { flexDirection: "column", children: validationErrors.map((error, index) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Text, { color: theme.status.error, children: [
11191
+ validationErrors.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { flexDirection: "column", children: validationErrors.map((error, index) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Text, { color: theme.status.error, children: [
11124
11192
  "\u26A0 ",
11125
11193
  error
11126
11194
  ] }, index)) })
@@ -11129,7 +11197,7 @@ function TextInput({
11129
11197
  __name(TextInput, "TextInput");
11130
11198
 
11131
11199
  // packages/cli/src/ui/components/messages/AskUserQuestionDialog.tsx
11132
- var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
11200
+ var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
11133
11201
  function computeHeaderCap(headerWidths, available) {
11134
11202
  const ascending = [...headerWidths].sort((a, b) => a - b);
11135
11203
  let remaining = available;
@@ -11351,36 +11419,36 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
11351
11419
  { isActive: isFocused }
11352
11420
  );
11353
11421
  if (isSubmitTab) {
11354
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { flexDirection: "column", padding: 1, children: [
11355
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { marginBottom: 1, flexDirection: "row", gap: 1, children: [
11422
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", padding: 1, children: [
11423
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { marginBottom: 1, flexDirection: "row", gap: 1, children: [
11356
11424
  confirmationDetails.questions.map((q, idx) => {
11357
11425
  const isAnswered = getAnswerForQuestion(idx) !== void 0;
11358
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Text, { dimColor: true, children: [
11426
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Text, { dimColor: true, children: [
11359
11427
  " ",
11360
11428
  truncateToWidth(q.header, headerCap),
11361
11429
  isAnswered ? " \u2713" : ""
11362
11430
  ] }) }, idx);
11363
11431
  }),
11364
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Text, { color: theme.text.accent, bold: true, children: [
11432
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Text, { color: theme.text.accent, bold: true, children: [
11365
11433
  "\u25B8 ",
11366
11434
  t("Submit")
11367
11435
  ] }) })
11368
11436
  ] }),
11369
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
11370
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { bold: true, children: t("Your answers:") }),
11437
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
11438
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { bold: true, children: t("Your answers:") }),
11371
11439
  confirmationDetails.questions.map((q, idx) => {
11372
11440
  const answer = getAnswerForQuestion(idx);
11373
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Text, { children: [
11441
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Text, { children: [
11374
11442
  q.header,
11375
11443
  ":",
11376
11444
  " ",
11377
- answer ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { color: theme.text.accent, children: answer }) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { dimColor: true, children: t("(not answered)") })
11445
+ answer ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { color: theme.text.accent, children: answer }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { dimColor: true, children: t("(not answered)") })
11378
11446
  ] }) }, idx);
11379
11447
  })
11380
11448
  ] }),
11381
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { marginTop: 1, marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { children: t("Ready to submit your answers?") }) }),
11382
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { flexDirection: "column", children: [
11383
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
11449
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { marginTop: 1, marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { children: t("Ready to submit your answers?") }) }),
11450
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", children: [
11451
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
11384
11452
  Text,
11385
11453
  {
11386
11454
  color: selectedIndex === 0 ? theme.text.accent : theme.text.primary,
@@ -11392,7 +11460,7 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
11392
11460
  ]
11393
11461
  }
11394
11462
  ) }),
11395
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
11463
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
11396
11464
  Text,
11397
11465
  {
11398
11466
  color: selectedIndex === 1 ? theme.text.accent : theme.text.primary,
@@ -11405,14 +11473,14 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
11405
11473
  }
11406
11474
  ) })
11407
11475
  ] }),
11408
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { dimColor: true, children: t("\u2191/\u2193: Navigate | \u2190/\u2192: Switch tabs | Enter: Select") }) })
11476
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { dimColor: true, children: t("\u2191/\u2193: Navigate | \u2190/\u2192: Switch tabs | Enter: Select") }) })
11409
11477
  ] });
11410
11478
  }
11411
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { flexDirection: "column", padding: 1, children: [
11412
- hasMultipleQuestions && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { marginBottom: 1, flexDirection: "row", gap: 1, children: [
11479
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", padding: 1, children: [
11480
+ hasMultipleQuestions && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { marginBottom: 1, flexDirection: "row", gap: 1, children: [
11413
11481
  confirmationDetails.questions.map((q, idx) => {
11414
11482
  const isAnswered = getAnswerForQuestion(idx) !== void 0;
11415
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
11483
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
11416
11484
  Text,
11417
11485
  {
11418
11486
  color: idx === currentQuestionIndex ? theme.text.accent : theme.text.primary,
@@ -11426,16 +11494,16 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
11426
11494
  }
11427
11495
  ) }, idx);
11428
11496
  }),
11429
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Text, { dimColor: true, children: [
11497
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Text, { dimColor: true, children: [
11430
11498
  " ",
11431
11499
  t("Submit")
11432
11500
  ] }) })
11433
11501
  ] }),
11434
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
11435
- !hasMultipleQuestions && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { color: theme.text.accent, bold: true, children: currentQuestion.header }) }),
11436
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { children: currentQuestion.question })
11502
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
11503
+ !hasMultipleQuestions && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { color: theme.text.accent, bold: true, children: currentQuestion.header }) }),
11504
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { children: currentQuestion.question })
11437
11505
  ] }),
11438
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
11506
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
11439
11507
  currentQuestion.options.map((opt, index) => {
11440
11508
  const isSelected = selectedIndex === index;
11441
11509
  const isMultiChecked = isMultiSelect && (multiSelectedOptions[currentQuestionIndex] ?? []).includes(
@@ -11444,8 +11512,8 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
11444
11512
  const isAnswered = !isMultiSelect && selectedOptions[currentQuestionIndex] === opt.label;
11445
11513
  const isHighlighted = isSelected || isAnswered || isMultiChecked;
11446
11514
  const prefixWidth = 2 + (isMultiSelect ? 4 : 0) + String(index + 1).length + 2;
11447
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { flexDirection: "column", children: [
11448
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
11515
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", children: [
11516
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
11449
11517
  Text,
11450
11518
  {
11451
11519
  color: isHighlighted ? theme.text.accent : theme.text.primary,
@@ -11460,13 +11528,13 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
11460
11528
  ]
11461
11529
  }
11462
11530
  ) }),
11463
- opt.description && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { marginLeft: prefixWidth, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { dimColor: true, children: opt.description }) })
11531
+ opt.description && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { marginLeft: prefixWidth, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { dimColor: true, children: opt.description }) })
11464
11532
  ] }, index);
11465
11533
  }),
11466
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { flexDirection: "column", children: isCustomInputSelected ? (
11534
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { flexDirection: "column", children: isCustomInputSelected ? (
11467
11535
  // Inline TextInput replaces the option text
11468
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { children: [
11469
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Text, { color: theme.text.accent, bold: true, children: [
11536
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { children: [
11537
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Text, { color: theme.text.accent, bold: true, children: [
11470
11538
  "\u276F",
11471
11539
  " ",
11472
11540
  isMultiSelect ? customInputChecked[currentQuestionIndex] ? "[\u2713] " : "[ ] " : "",
@@ -11474,7 +11542,7 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
11474
11542
  ".",
11475
11543
  " "
11476
11544
  ] }),
11477
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
11545
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
11478
11546
  TextInput,
11479
11547
  {
11480
11548
  value: currentCustomInputValue,
@@ -11505,7 +11573,7 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
11505
11573
  ] })
11506
11574
  ) : (
11507
11575
  // Show typed value or placeholder when not selected
11508
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
11576
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
11509
11577
  Text,
11510
11578
  {
11511
11579
  color: isCustomInputAnswer || customInputChecked[currentQuestionIndex] ? theme.text.accent : theme.text.primary,
@@ -11524,7 +11592,7 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
11524
11592
  ) })
11525
11593
  ) })
11526
11594
  ] }),
11527
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { flexDirection: "column", marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { dimColor: true, children: hasMultipleQuestions ? isMultiSelect ? t(
11595
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { flexDirection: "column", marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { dimColor: true, children: hasMultipleQuestions ? isMultiSelect ? t(
11528
11596
  "\u2191/\u2193: Navigate | \u2190/\u2192: Switch tabs | Space: Toggle | Enter: Confirm | Esc: Cancel"
11529
11597
  ) : t(
11530
11598
  "\u2191/\u2193: Navigate | \u2190/\u2192: Switch tabs | Enter: Select | Esc: Cancel"
@@ -11535,7 +11603,7 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
11535
11603
  }, "AskUserQuestionDialog");
11536
11604
 
11537
11605
  // packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx
11538
- var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
11606
+ var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
11539
11607
  var COMPACT_BODY_MAX_LINES = 5;
11540
11608
  var ToolConfirmationMessage = /* @__PURE__ */ __name(({
11541
11609
  confirmationDetails,
@@ -11650,7 +11718,7 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
11650
11718
  __name(warningsHeight, "warningsHeight");
11651
11719
  if (confirmationDetails.type === "edit") {
11652
11720
  if (confirmationDetails.isModifying) {
11653
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
11721
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
11654
11722
  Box_default,
11655
11723
  {
11656
11724
  minWidth: "90%",
@@ -11660,11 +11728,11 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
11660
11728
  padding: 1,
11661
11729
  overflow: "hidden",
11662
11730
  children: [
11663
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Text, { color: theme.text.primary, children: [
11731
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Text, { color: theme.text.primary, children: [
11664
11732
  t("Modify in progress:"),
11665
11733
  " "
11666
11734
  ] }),
11667
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { color: theme.status.success, children: t("Save and close external editor to continue") })
11735
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.status.success, children: t("Save and close external editor to continue") })
11668
11736
  ]
11669
11737
  }
11670
11738
  );
@@ -11724,7 +11792,7 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
11724
11792
  } else if (diffHeight !== void 0) {
11725
11793
  diffHeight = Math.max(diffHeight - warningsHeight(warnings), 1);
11726
11794
  }
11727
- const renderedDiff = diffHeight === void 0 || diffHeight >= MINIMUM_MAX_HEIGHT ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
11795
+ const renderedDiff = diffHeight === void 0 || diffHeight >= MINIMUM_MAX_HEIGHT ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
11728
11796
  DiffRenderer,
11729
11797
  {
11730
11798
  diffContent: confirmationDetails.fileDiff,
@@ -11733,30 +11801,30 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
11733
11801
  contentWidth,
11734
11802
  settings
11735
11803
  }
11736
- ) : diffHeight === 1 ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: "... diff hidden ..." }) : null;
11737
- bodyContent = /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", children: [
11738
- warnings.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
11804
+ ) : diffHeight === 1 ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: "... diff hidden ..." }) : null;
11805
+ bodyContent = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box_default, { flexDirection: "column", children: [
11806
+ warnings.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
11739
11807
  Box_default,
11740
11808
  {
11741
11809
  flexDirection: "column",
11742
11810
  paddingX: 1,
11743
11811
  marginLeft: 1,
11744
11812
  marginBottom: warningMarginBottom,
11745
- children: constrainWarnings && warningMaxHeight === 1 ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Text, { color: theme.status.warning, wrap: "truncate", children: [
11813
+ children: constrainWarnings && warningMaxHeight === 1 ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Text, { color: theme.status.warning, wrap: "truncate", children: [
11746
11814
  "\u26A0 ",
11747
11815
  warnings.at(-1)?.replace(/\r\n?|\n/g, " \u21B5 ")
11748
- ] }) : constrainWarnings ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
11816
+ ] }) : constrainWarnings ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
11749
11817
  MaxSizedBox,
11750
11818
  {
11751
11819
  maxHeight: warningMaxHeight,
11752
11820
  maxWidth: warningContentWidth,
11753
11821
  overflowDirection: "bottom",
11754
- children: warnings.map((warning, idx) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Text, { color: theme.status.warning, wrap: "truncate", children: [
11822
+ children: warnings.map((warning, idx) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Text, { color: theme.status.warning, wrap: "truncate", children: [
11755
11823
  "\u26A0 ",
11756
11824
  warning.replace(/\r\n?|\n/g, " \u21B5 ")
11757
11825
  ] }) }, idx))
11758
11826
  }
11759
- ) : warnings.map((warning, idx) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Text, { color: theme.status.warning, children: [
11827
+ ) : warnings.map((warning, idx) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Text, { color: theme.status.warning, children: [
11760
11828
  "\u26A0 ",
11761
11829
  warning
11762
11830
  ] }, idx))
@@ -11815,17 +11883,17 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
11815
11883
  1
11816
11884
  );
11817
11885
  }
11818
- bodyContent = /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", children: [
11819
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { paddingX: 1, marginLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
11886
+ bodyContent = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box_default, { flexDirection: "column", children: [
11887
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box_default, { paddingX: 1, marginLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
11820
11888
  MaxSizedBox,
11821
11889
  {
11822
11890
  maxHeight: bodyContentHeight,
11823
11891
  maxWidth: Math.max(contentWidth, 1),
11824
11892
  overflowDirection: "bottom",
11825
- children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { color: theme.text.link, children: executionProps.command }) })
11893
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.link, children: executionProps.command }) })
11826
11894
  }
11827
11895
  ) }),
11828
- warningsCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { flexDirection: "column", paddingX: 1, marginLeft: 1, marginTop: 1, children: warnings.map((warning, idx) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Text, { color: theme.status.warning, children: [
11896
+ warningsCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box_default, { flexDirection: "column", paddingX: 1, marginLeft: 1, marginTop: 1, children: warnings.map((warning, idx) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Text, { color: theme.status.warning, children: [
11829
11897
  "\u26A0 ",
11830
11898
  warning
11831
11899
  ] }, idx)) }) : null
@@ -11860,8 +11928,8 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
11860
11928
  COMPACT_BODY_MAX_LINES
11861
11929
  ) : availableBodyContentHeight();
11862
11930
  const planHeight = rawPlanHeight === void 0 ? void 0 : Math.max(rawPlanHeight - 1, 1);
11863
- bodyContent = /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", paddingX: 1, marginLeft: 1, children: [
11864
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
11931
+ bodyContent = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box_default, { flexDirection: "column", paddingX: 1, marginLeft: 1, children: [
11932
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
11865
11933
  MarkdownDisplay,
11866
11934
  {
11867
11935
  text: planProps.plan,
@@ -11871,7 +11939,7 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
11871
11939
  enforceHeightBudget: true
11872
11940
  }
11873
11941
  ),
11874
- planViewError ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { color: theme.status.error, wrap: "truncate", children: planViewError }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: t("o open full plan in editor") })
11942
+ planViewError ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.status.error, wrap: "truncate", children: planViewError }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: t("o open full plan in editor") })
11875
11943
  ] });
11876
11944
  } else if (confirmationDetails.type === "info") {
11877
11945
  const infoProps = confirmationDetails;
@@ -11904,27 +11972,27 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
11904
11972
  value: "cancel" /* Cancel */,
11905
11973
  key: "No, suggest changes (esc)"
11906
11974
  });
11907
- bodyContent = /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", paddingX: 1, marginLeft: 1, children: [
11908
- infoProps.renderPromptAsPlainText ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
11975
+ bodyContent = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box_default, { flexDirection: "column", paddingX: 1, marginLeft: 1, children: [
11976
+ infoProps.renderPromptAsPlainText ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
11909
11977
  MaxSizedBox,
11910
11978
  {
11911
11979
  maxHeight: availableBodyContentHeight(),
11912
11980
  maxWidth: warningContentWidth,
11913
11981
  overflowDirection: "bottom",
11914
- children: infoProps.prompt.split("\n").map((line, index) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { color: theme.text.link, wrap: "wrap", children: line }) }, index))
11982
+ children: infoProps.prompt.split("\n").map((line, index) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.link, wrap: "wrap", children: line }) }, index))
11915
11983
  }
11916
- ) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { color: theme.text.link, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(RenderInline, { text: infoProps.prompt, textColor: theme.text.link }) }),
11917
- displayUrls && infoProps.urls && infoProps.urls.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
11918
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { color: theme.text.primary, children: t("URLs to fetch:") }),
11919
- infoProps.urls.map((url) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Text, { children: [
11984
+ ) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.link, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(RenderInline, { text: infoProps.prompt, textColor: theme.text.link }) }),
11985
+ displayUrls && infoProps.urls && infoProps.urls.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
11986
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.primary, children: t("URLs to fetch:") }),
11987
+ infoProps.urls.map((url) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Text, { children: [
11920
11988
  " ",
11921
11989
  "- ",
11922
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(RenderInline, { text: url })
11990
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(RenderInline, { text: url })
11923
11991
  ] }, url))
11924
11992
  ] })
11925
11993
  ] });
11926
11994
  } else if (confirmationDetails.type === "ask_user_question") {
11927
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
11995
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
11928
11996
  AskUserQuestionDialog,
11929
11997
  {
11930
11998
  confirmationDetails,
@@ -11935,9 +12003,9 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
11935
12003
  );
11936
12004
  } else {
11937
12005
  const mcpProps = confirmationDetails;
11938
- bodyContent = /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", paddingX: 1, marginLeft: 1, children: [
11939
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { color: theme.text.link, children: t("MCP Server: {{server}}", { server: mcpProps.serverName }) }),
11940
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { color: theme.text.link, children: t("Tool: {{tool}}", { tool: mcpProps.toolName }) })
12006
+ bodyContent = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box_default, { flexDirection: "column", paddingX: 1, marginLeft: 1, children: [
12007
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.link, children: t("MCP Server: {{server}}", { server: mcpProps.serverName }) }),
12008
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.link, children: t("Tool: {{tool}}", { tool: mcpProps.toolName }) })
11941
12009
  ] });
11942
12010
  question = t(
11943
12011
  'Allow execution of MCP tool "{{tool}}" from server "{{server}}"?',
@@ -11988,8 +12056,8 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
11988
12056
  0,
11989
12057
  switchOption
11990
12058
  );
11991
- bodyContent = /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", children: [
11992
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { paddingX: 1, marginLeft: 1, marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Text, { color: theme.status.warning, children: [
12059
+ bodyContent = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box_default, { flexDirection: "column", children: [
12060
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box_default, { paddingX: 1, marginLeft: 1, marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Text, { color: theme.status.warning, children: [
11993
12061
  "\u26A0 ",
11994
12062
  autoModeFallback.message
11995
12063
  ] }) }),
@@ -12028,8 +12096,8 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
12028
12096
  const outerPadding = compactMode ? 0 : 1;
12029
12097
  const sectionMargin = compactMode ? 0 : 1;
12030
12098
  const outerWidth = compactMode ? void 0 : contentWidth;
12031
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", padding: outerPadding, width: outerWidth, children: [
12032
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
12099
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box_default, { flexDirection: "column", padding: outerPadding, width: outerWidth, children: [
12100
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
12033
12101
  Box_default,
12034
12102
  {
12035
12103
  flexGrow: 1,
@@ -12039,8 +12107,8 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
12039
12107
  children: bodyContent
12040
12108
  }
12041
12109
  ),
12042
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { marginBottom: sectionMargin, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { color: theme.text.primary, wrap: "truncate", children: renderedQuestion }) }),
12043
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
12110
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box_default, { marginBottom: sectionMargin, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.primary, wrap: "truncate", children: renderedQuestion }) }),
12111
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
12044
12112
  RadioButtonSelect,
12045
12113
  {
12046
12114
  items: renderedOptions,
@@ -12053,7 +12121,7 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
12053
12121
 
12054
12122
  // packages/cli/src/ui/components/PlanSummaryDisplay.tsx
12055
12123
  init_esbuild_shims();
12056
- var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
12124
+ var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1);
12057
12125
  var PlanSummaryDisplay = /* @__PURE__ */ __name(({
12058
12126
  data,
12059
12127
  availableHeight,
@@ -12061,9 +12129,9 @@ var PlanSummaryDisplay = /* @__PURE__ */ __name(({
12061
12129
  }) => {
12062
12130
  const { message, plan, rejected } = data;
12063
12131
  const messageColor = rejected ? Colors.AccentYellow : Colors.AccentGreen;
12064
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box_default, { flexDirection: "column", children: [
12065
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: messageColor, wrap: "wrap", children: message }) }),
12066
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
12132
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Box_default, { flexDirection: "column", children: [
12133
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { color: messageColor, wrap: "wrap", children: message }) }),
12134
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12067
12135
  MarkdownDisplay,
12068
12136
  {
12069
12137
  text: plan,
@@ -12185,7 +12253,7 @@ var TOOL_DISPLAY_BY_NAME = Object.fromEntries(
12185
12253
  );
12186
12254
 
12187
12255
  // packages/cli/src/ui/components/messages/ToolMessage.tsx
12188
- var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1);
12256
+ var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
12189
12257
  var AGENT_TOOL_NAMES = /* @__PURE__ */ new Set([
12190
12258
  ToolNames.AGENT,
12191
12259
  ...Object.entries(ToolNamesMigration).filter(([, canonical]) => canonical === ToolNames.AGENT).map(([legacy]) => legacy)
@@ -12256,6 +12324,12 @@ var useResultDisplayRenderer = /* @__PURE__ */ __name((resultDisplay) => import_
12256
12324
  data: resultDisplay
12257
12325
  };
12258
12326
  }
12327
+ if (typeof resultDisplay === "object" && resultDisplay !== null && "type" in resultDisplay && resultDisplay.type === "findings_list") {
12328
+ return {
12329
+ type: "findings",
12330
+ data: resultDisplay
12331
+ };
12332
+ }
12259
12333
  if (typeof resultDisplay === "object" && resultDisplay !== null && "type" in resultDisplay && resultDisplay.type === "plan_summary") {
12260
12334
  return {
12261
12335
  type: "plan",
@@ -12297,6 +12371,12 @@ var useResultDisplayRenderer = /* @__PURE__ */ __name((resultDisplay) => import_
12297
12371
  if (typeof resultDisplay === "object" && resultDisplay !== null && "type" in resultDisplay && (resultDisplay.type === "team_result" || resultDisplay.type === "task_list")) {
12298
12372
  return { type: "none" };
12299
12373
  }
12374
+ if (typeof resultDisplay === "object" && resultDisplay !== null && "type" in resultDisplay && resultDisplay.type === "mcp_app" && "fallbackText" in resultDisplay && typeof resultDisplay.fallbackText === "string") {
12375
+ return {
12376
+ type: "string",
12377
+ data: resultDisplay.fallbackText
12378
+ };
12379
+ }
12300
12380
  return {
12301
12381
  type: "string",
12302
12382
  data: typeof resultDisplay === "string" ? resultDisplay : JSON.stringify(resultDisplay)
@@ -12304,8 +12384,8 @@ var useResultDisplayRenderer = /* @__PURE__ */ __name((resultDisplay) => import_
12304
12384
  }, [resultDisplay]), "useResultDisplayRenderer");
12305
12385
  var TodoResultRenderer = /* @__PURE__ */ __name(({
12306
12386
  data
12307
- }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(TodoDisplay, { todos: data.todos }), "TodoResultRenderer");
12308
- var PlanResultRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childWidth }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12387
+ }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TodoDisplay, { todos: data.todos }), "TodoResultRenderer");
12388
+ var PlanResultRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childWidth }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12309
12389
  PlanSummaryDisplay,
12310
12390
  {
12311
12391
  data,
@@ -12317,14 +12397,14 @@ var priorApprovalCalls = /* @__PURE__ */ __name((data) => (data.toolCalls ?? [])
12317
12397
  var SubagentApprovalContext = /* @__PURE__ */ __name(({ data }) => {
12318
12398
  const priorCalls = priorApprovalCalls(data);
12319
12399
  if (priorCalls.length === 0) return null;
12320
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Box_default, { flexDirection: "column", children: priorCalls.map((call) => {
12400
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { flexDirection: "column", children: priorCalls.map((call) => {
12321
12401
  const glyph = call.status === "failed" ? "\u2716" : call.status === "success" ? "\u2714" : ICON.CIRCLE_EMPTY;
12322
12402
  const displayName = localizeToolDisplayName(
12323
12403
  TOOL_DISPLAY_BY_NAME[call.name] ?? call.name
12324
12404
  );
12325
12405
  const desc = (call.description ?? "").replace(/\s*\n\s*/g, " ").trim();
12326
12406
  const label = desc ? `${displayName} ${desc}` : displayName;
12327
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: ` ${glyph} ${sanitizeMultilineForDisplay(label)}` }) }, call.callId);
12407
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: ` ${glyph} ${sanitizeMultilineForDisplay(label)}` }) }, call.callId);
12328
12408
  }) });
12329
12409
  }, "SubagentApprovalContext");
12330
12410
  var SubagentExecutionRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childWidth, config, isFocused }) => {
@@ -12336,14 +12416,14 @@ var SubagentExecutionRenderer = /* @__PURE__ */ __name(({ data, availableHeight,
12336
12416
  MINIMUM_MAX_HEIGHT,
12337
12417
  availableHeight - contextLines - HEADER_LINES
12338
12418
  ) : availableHeight;
12339
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 1, children: [
12340
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Box_default, { children: [
12341
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { color: theme.text.secondary, children: "Approval requested by " }),
12342
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { bold: true, color: theme.text.accent, children: agentLabel }),
12343
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { color: theme.text.secondary, children: ":" })
12419
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 1, children: [
12420
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { children: [
12421
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: "Approval requested by " }),
12422
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { bold: true, color: theme.text.accent, children: agentLabel }),
12423
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: ":" })
12344
12424
  ] }),
12345
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SubagentApprovalContext, { data }),
12346
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12425
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SubagentApprovalContext, { data }),
12426
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12347
12427
  ToolConfirmationMessage,
12348
12428
  {
12349
12429
  confirmationDetails: data.pendingConfirmation,
@@ -12358,16 +12438,16 @@ var SubagentExecutionRenderer = /* @__PURE__ */ __name(({ data, availableHeight,
12358
12438
  }
12359
12439
  if (data.pendingConfirmation) {
12360
12440
  const agentLabel = escapeAnsiCtrlCodes(data.subagentName || "agent");
12361
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Box_default, { paddingLeft: 1, children: [
12362
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Text, { color: theme.text.secondary, dimColor: true, children: [
12441
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { paddingLeft: 1, children: [
12442
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { color: theme.text.secondary, dimColor: true, children: [
12363
12443
  "\u25CC Queued approval:",
12364
12444
  " "
12365
12445
  ] }),
12366
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { dimColor: true, children: agentLabel })
12446
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { dimColor: true, children: agentLabel })
12367
12447
  ] });
12368
12448
  }
12369
12449
  if (data.status === "completed" || data.status === "failed" || data.status === "cancelled") {
12370
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SubagentScrollbackSummary, { data });
12450
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SubagentScrollbackSummary, { data });
12371
12451
  }
12372
12452
  return null;
12373
12453
  }, "SubagentExecutionRenderer");
@@ -12407,12 +12487,12 @@ var SubagentScrollbackSummary = /* @__PURE__ */ __name(({ data }) => {
12407
12487
  const typePrefix = data.subagentName ? `${escapeAnsiCtrlCodes(data.subagentName)}: ` : "";
12408
12488
  const safeDescription = escapeAnsiCtrlCodes(data.taskDescription ?? "");
12409
12489
  const reason = data.status !== "completed" && data.terminateReason ? ` \xB7 ${escapeAnsiCtrlCodes(data.terminateReason)}` : "";
12410
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Text, { wrap: "truncate-end", children: [
12411
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { color, children: `${glyph} ` }),
12412
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { bold: true, children: typePrefix }),
12413
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { color: theme.text.secondary, children: safeDescription }),
12414
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { color: theme.text.secondary, children: tail }),
12415
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { color: theme.text.secondary, children: reason })
12490
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { wrap: "truncate-end", children: [
12491
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color, children: `${glyph} ` }),
12492
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { bold: true, children: typePrefix }),
12493
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: safeDescription }),
12494
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: tail }),
12495
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: reason })
12416
12496
  ] }) });
12417
12497
  }, "SubagentScrollbackSummary");
12418
12498
  var StringResultRenderer = /* @__PURE__ */ __name(({ data, renderAsMarkdown, availableHeight, childWidth }) => {
@@ -12421,7 +12501,7 @@ var StringResultRenderer = /* @__PURE__ */ __name(({ data, renderAsMarkdown, ava
12421
12501
  displayData = "..." + displayData.slice(-MAXIMUM_RESULT_DISPLAY_CHARACTERS);
12422
12502
  }
12423
12503
  if (renderAsMarkdown) {
12424
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12504
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12425
12505
  MarkdownDisplay,
12426
12506
  {
12427
12507
  text: displayData,
@@ -12436,25 +12516,25 @@ var StringResultRenderer = /* @__PURE__ */ __name(({ data, renderAsMarkdown, ava
12436
12516
  availableHeight,
12437
12517
  childWidth
12438
12518
  );
12439
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12519
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12440
12520
  MaxSizedBox,
12441
12521
  {
12442
12522
  maxHeight: availableHeight,
12443
12523
  maxWidth: childWidth,
12444
12524
  additionalHiddenLinesCount: sliced.hiddenLinesCount,
12445
12525
  sourceBoundaries: sliced.sourceBoundaries,
12446
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { wrap: "wrap", color: theme.text.primary, children: sliced.text }) })
12526
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { wrap: "wrap", color: theme.text.primary, children: sliced.text }) })
12447
12527
  }
12448
12528
  );
12449
12529
  }, "StringResultRenderer");
12450
12530
  var DiffResultRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childWidth, settings }) => {
12451
12531
  const diffHeight = data.truncatedForSession && availableHeight !== void 0 ? Math.max(1, availableHeight - 1) : availableHeight;
12452
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Box_default, { flexDirection: "column", children: [
12453
- data.truncatedForSession && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Text, { color: theme.status.warning, wrap: "wrap", children: [
12532
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { flexDirection: "column", children: [
12533
+ data.truncatedForSession && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { color: theme.status.warning, wrap: "wrap", children: [
12454
12534
  data.fileDiffTruncated ? "Saved session preview only; full diff omitted from JSONL" : "Saved session preview only; full file contents truncated in JSONL",
12455
12535
  data.fileDiffTruncated && typeof data.fileDiffLength === "number" ? ` (${data.fileDiffLength} chars).` : "."
12456
12536
  ] }),
12457
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12537
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12458
12538
  DiffRenderer,
12459
12539
  {
12460
12540
  diffContent: data.fileDiff,
@@ -12556,10 +12636,10 @@ var ToolMessage = /* @__PURE__ */ __name(({
12556
12636
  effectiveResultDisplay
12557
12637
  );
12558
12638
  const shouldCollapseResult = !forceShowResult && status === "Success" /* Success */ && isCollapsibleTool(name) && (effectiveDisplayRenderer.type === "string" || effectiveDisplayRenderer.type === "ansi");
12559
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Box_default, { paddingY: 0, flexDirection: "column", children: [
12560
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Box_default, { minHeight: 1, children: [
12561
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ToolStatusIndicator, { status, name }),
12562
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12639
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { paddingY: 0, flexDirection: "column", children: [
12640
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { minHeight: 1, children: [
12641
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ToolStatusIndicator, { status, name }),
12642
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12563
12643
  ToolInfo,
12564
12644
  {
12565
12645
  name,
@@ -12572,8 +12652,8 @@ var ToolMessage = /* @__PURE__ */ __name(({
12572
12652
  )
12573
12653
  }
12574
12654
  ),
12575
- shouldShowFocusHint && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Box_default, { marginLeft: 1, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { color: theme.text.accent, children: isThisShellFocused ? "(Focused)" : "(ctrl+f to focus)" }) }),
12576
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12655
+ shouldShowFocusHint && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { marginLeft: 1, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.accent, children: isThisShellFocused ? "(Focused)" : "(ctrl+f to focus)" }) }),
12656
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12577
12657
  ToolElapsedTime,
12578
12658
  {
12579
12659
  status,
@@ -12581,9 +12661,9 @@ var ToolMessage = /* @__PURE__ */ __name(({
12581
12661
  timeoutMs: shellTimeoutMs
12582
12662
  }
12583
12663
  ),
12584
- emphasis === "high" && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(TrailingIndicator, {})
12664
+ emphasis === "high" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TrailingIndicator, {})
12585
12665
  ] }),
12586
- visionBridgeNoticeText && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12666
+ visionBridgeNoticeText && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12587
12667
  StringResultRenderer,
12588
12668
  {
12589
12669
  data: visionBridgeNoticeText,
@@ -12591,9 +12671,10 @@ var ToolMessage = /* @__PURE__ */ __name(({
12591
12671
  childWidth: innerWidth
12592
12672
  }
12593
12673
  ) }),
12594
- effectiveDisplayRenderer.type !== "none" && !shouldCollapseResult && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Box_default, { flexDirection: "column", children: [
12595
- effectiveDisplayRenderer.type === "todo" && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(TodoResultRenderer, { data: effectiveDisplayRenderer.data }),
12596
- effectiveDisplayRenderer.type === "plan" && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12674
+ effectiveDisplayRenderer.type !== "none" && !shouldCollapseResult && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { flexDirection: "column", children: [
12675
+ effectiveDisplayRenderer.type === "todo" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TodoResultRenderer, { data: effectiveDisplayRenderer.data }),
12676
+ effectiveDisplayRenderer.type === "findings" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(FindingsDisplay, { data: effectiveDisplayRenderer.data }),
12677
+ effectiveDisplayRenderer.type === "plan" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12597
12678
  PlanResultRenderer,
12598
12679
  {
12599
12680
  data: effectiveDisplayRenderer.data,
@@ -12601,7 +12682,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
12601
12682
  childWidth: innerWidth
12602
12683
  }
12603
12684
  ),
12604
- effectiveDisplayRenderer.type === "task" && config && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12685
+ effectiveDisplayRenderer.type === "task" && config && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12605
12686
  SubagentExecutionRenderer,
12606
12687
  {
12607
12688
  data: effectiveDisplayRenderer.data,
@@ -12612,7 +12693,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
12612
12693
  isPending
12613
12694
  }
12614
12695
  ),
12615
- effectiveDisplayRenderer.type === "diff" && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12696
+ effectiveDisplayRenderer.type === "diff" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12616
12697
  DiffResultRenderer,
12617
12698
  {
12618
12699
  data: effectiveDisplayRenderer.data,
@@ -12621,8 +12702,8 @@ var ToolMessage = /* @__PURE__ */ __name(({
12621
12702
  settings
12622
12703
  }
12623
12704
  ),
12624
- effectiveDisplayRenderer.type === "ansi" && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
12625
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12705
+ effectiveDisplayRenderer.type === "ansi" && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
12706
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12626
12707
  AnsiOutputText,
12627
12708
  {
12628
12709
  data: effectiveDisplayRenderer.data,
@@ -12630,7 +12711,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
12630
12711
  maxWidth: innerWidth
12631
12712
  }
12632
12713
  ),
12633
- effectiveDisplayRenderer.stats && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12714
+ effectiveDisplayRenderer.stats && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12634
12715
  ShellStatsBar,
12635
12716
  {
12636
12717
  ...effectiveDisplayRenderer.stats,
@@ -12638,7 +12719,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
12638
12719
  }
12639
12720
  )
12640
12721
  ] }),
12641
- effectiveDisplayRenderer.type === "image" && config && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12722
+ effectiveDisplayRenderer.type === "image" && config && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12642
12723
  TerminalImage,
12643
12724
  {
12644
12725
  data: effectiveDisplayRenderer.data,
@@ -12647,7 +12728,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
12647
12728
  availableTerminalHeight: availableHeight
12648
12729
  }
12649
12730
  ),
12650
- effectiveDisplayRenderer.type === "string" && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12731
+ effectiveDisplayRenderer.type === "string" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12651
12732
  StringResultRenderer,
12652
12733
  {
12653
12734
  data: effectiveDisplayRenderer.data,
@@ -12657,14 +12738,14 @@ var ToolMessage = /* @__PURE__ */ __name(({
12657
12738
  }
12658
12739
  )
12659
12740
  ] }) }),
12660
- ((images?.length ?? 0) > 0 || omittedImageCount !== void 0 && omittedImageCount > 0) && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
12741
+ ((images?.length ?? 0) > 0 || omittedImageCount !== void 0 && omittedImageCount > 0) && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
12661
12742
  Box_default,
12662
12743
  {
12663
12744
  paddingLeft: STATUS_INDICATOR_WIDTH,
12664
12745
  width: "100%",
12665
12746
  flexDirection: "column",
12666
12747
  children: [
12667
- images?.map((image, index) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12748
+ images?.map((image, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12668
12749
  TerminalImage,
12669
12750
  {
12670
12751
  image,
@@ -12673,11 +12754,11 @@ var ToolMessage = /* @__PURE__ */ __name(({
12673
12754
  },
12674
12755
  index
12675
12756
  )),
12676
- omittedImageCount !== void 0 && omittedImageCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { dimColor: true, children: formatInlineImageOverflow(omittedImageCount) })
12757
+ omittedImageCount !== void 0 && omittedImageCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { dimColor: true, children: formatInlineImageOverflow(omittedImageCount) })
12677
12758
  ]
12678
12759
  }
12679
12760
  ),
12680
- isThisShellFocused && config && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12761
+ isThisShellFocused && config && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12681
12762
  ShellInputPrompt,
12682
12763
  {
12683
12764
  activeShellPtyId: activeShellPtyId ?? null,
@@ -12731,15 +12812,15 @@ var ToolInfo = /* @__PURE__ */ __name(({
12731
12812
  }
12732
12813
  }
12733
12814
  }, [emphasis]);
12734
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Text, { wrap: "wrap", strikethrough: status === "Canceled" /* Canceled */, children: [
12735
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { color: nameColor, bold: true, children: localizeToolDisplayName(name) }),
12736
- !hideDescription && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
12815
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { wrap: "wrap", strikethrough: status === "Canceled" /* Canceled */, children: [
12816
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: nameColor, bold: true, children: localizeToolDisplayName(name) }),
12817
+ !hideDescription && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
12737
12818
  " ",
12738
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { color: theme.text.secondary, children: description })
12819
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: description })
12739
12820
  ] })
12740
12821
  ] }) });
12741
12822
  }, "ToolInfo");
12742
- var TrailingIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Text, { color: theme.text.primary, wrap: "truncate", children: [
12823
+ var TrailingIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { color: theme.text.primary, wrap: "truncate", children: [
12743
12824
  " ",
12744
12825
  "\u2190"
12745
12826
  ] }), "TrailingIndicator");
@@ -12747,7 +12828,7 @@ var TrailingIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_
12747
12828
  // packages/cli/src/ui/components/messages/InlineParallelAgentsDisplay.tsx
12748
12829
  init_esbuild_shims();
12749
12830
  var import_react29 = __toESM(require_react(), 1);
12750
- var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
12831
+ var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
12751
12832
  function deriveAgentId(toolCall, resultDisplay) {
12752
12833
  return `${resultDisplay.subagentName}-${toolCall.callId}`;
12753
12834
  }
@@ -12867,15 +12948,15 @@ var InlineParallelAgentsDisplay = /* @__PURE__ */ __name(({ toolCalls, contentWi
12867
12948
  visibleRows = [];
12868
12949
  }
12869
12950
  }
12870
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, paddingX: 1, children: [
12871
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { bold: true, color: theme.text.accent, wrap: "truncate-end", children: headerLabel }) }),
12872
- overflowCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [
12951
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, paddingX: 1, children: [
12952
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text, { bold: true, color: theme.text.accent, wrap: "truncate-end", children: headerLabel }) }),
12953
+ overflowCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [
12873
12954
  "\u2026 +",
12874
12955
  overflowCount,
12875
12956
  " more ",
12876
12957
  overflowCount === 1 ? "agent" : "agents"
12877
12958
  ] }) }),
12878
- visibleRows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(AgentRow, { row, now }, row.agentId))
12959
+ visibleRows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(AgentRow, { row, now }, row.agentId))
12879
12960
  ] });
12880
12961
  }, "InlineParallelAgentsDisplay");
12881
12962
  var AgentRow = /* @__PURE__ */ __name(({ row, now }) => {
@@ -12889,16 +12970,16 @@ var AgentRow = /* @__PURE__ */ __name(({ row, now }) => {
12889
12970
  if (elapsed) trailingParts.push(elapsed);
12890
12971
  if (tokens) trailingParts.push(`${tokens} tok`);
12891
12972
  const trailing = trailingParts.join(" \xB7 ");
12892
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { flexDirection: "row", children: [
12893
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { flexShrink: 0, marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color, wrap: "truncate-end", children: glyph }) }),
12894
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { flexShrink: 0, marginRight: 1, width: NAME_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { wrap: "truncate-end", children: displayName }) }),
12895
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { flexShrink: 1, flexGrow: 1, marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: activity }) }),
12896
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: trailing }) })
12973
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Box_default, { flexDirection: "row", children: [
12974
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box_default, { flexShrink: 0, marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text, { color, wrap: "truncate-end", children: glyph }) }),
12975
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box_default, { flexShrink: 0, marginRight: 1, width: NAME_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text, { wrap: "truncate-end", children: displayName }) }),
12976
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box_default, { flexShrink: 1, flexGrow: 1, marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: activity }) }),
12977
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: trailing }) })
12897
12978
  ] });
12898
12979
  }, "AgentRow");
12899
12980
 
12900
12981
  // packages/cli/src/ui/components/messages/ToolGroupMessage.tsx
12901
- var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
12982
+ var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
12902
12983
  function isAgentWithPendingConfirmation(rd) {
12903
12984
  return typeof rd === "object" && rd !== null && "type" in rd && rd.type === "task_execution" && rd.pendingConfirmation !== void 0;
12904
12985
  }
@@ -12991,7 +13072,7 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
12991
13072
  if (inlineToolCalls.length === 0) {
12992
13073
  return null;
12993
13074
  }
12994
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
13075
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
12995
13076
  InlineParallelAgentsDisplay,
12996
13077
  {
12997
13078
  toolCalls: inlineToolCalls,
@@ -13008,15 +13089,15 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
13008
13089
  if (allMemOpsComplete) {
13009
13090
  const readCount = memoryReadCount ?? 0;
13010
13091
  const writeCount = memoryWriteCount ?? 0;
13011
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, children: [
13012
- readCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Text, { dimColor: true, children: [
13092
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, children: [
13093
+ readCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Text, { dimColor: true, children: [
13013
13094
  ICON.CIRCLE_FILLED + " ",
13014
13095
  "Recalled ",
13015
13096
  readCount,
13016
13097
  " ",
13017
13098
  readCount === 1 ? "memory" : "memories"
13018
13099
  ] }) }),
13019
- writeCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Text, { dimColor: true, children: [
13100
+ writeCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Text, { dimColor: true, children: [
13020
13101
  ICON.CIRCLE_FILLED + " ",
13021
13102
  "Wrote ",
13022
13103
  writeCount,
@@ -13034,7 +13115,7 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
13034
13115
  (t2) => !isCollapsibleTool(t2.name) || t2.status === "Canceled" /* Canceled */ || hasInlineImageOutput(t2)
13035
13116
  );
13036
13117
  const hasMemoryBadge = !isMemoryOnlyGroup && ((memoryWriteCount ?? 0) > 0 || (memoryReadCount ?? 0) > 0);
13037
- const memoryBadge = hasMemoryBadge ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Text, { dimColor: true, children: [
13118
+ const memoryBadge = hasMemoryBadge ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Text, { dimColor: true, children: [
13038
13119
  ICON.CIRCLE_FILLED + " ",
13039
13120
  [
13040
13121
  (memoryReadCount ?? 0) > 0 && `Recalled ${memoryReadCount} ${memoryReadCount === 1 ? "memory" : "memories"}`,
@@ -13042,8 +13123,8 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
13042
13123
  ].filter(Boolean).join(", ")
13043
13124
  ] }) }) : null;
13044
13125
  if (collapsibleTools.length > 0 && nonCollapsibleTools.length === 0) {
13045
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, children: [
13046
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
13126
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, children: [
13127
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
13047
13128
  CompactToolGroupDisplay,
13048
13129
  {
13049
13130
  toolCalls: collapsibleTools,
@@ -13076,8 +13157,8 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
13076
13157
  ),
13077
13158
  1
13078
13159
  ) : void 0;
13079
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, gap: 0, children: [
13080
- collapsibleTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
13160
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, gap: 0, children: [
13161
+ collapsibleTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
13081
13162
  CompactToolGroupDisplay,
13082
13163
  {
13083
13164
  toolCalls: collapsibleTools,
@@ -13088,8 +13169,8 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
13088
13169
  nonCollapsibleTools.map((tool) => {
13089
13170
  const isConfirming = toolAwaitingApproval?.callId === tool.callId;
13090
13171
  const isSubagentFocused = isFocused && !toolAwaitingApproval && keyboardFocusedSubagentCallId === tool.callId;
13091
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Box_default, { flexDirection: "column", minHeight: 1, children: [
13092
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box_default, { flexDirection: "row", alignItems: "center", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
13172
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box_default, { flexDirection: "column", minHeight: 1, children: [
13173
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box_default, { flexDirection: "row", alignItems: "center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
13093
13174
  ToolMessage,
13094
13175
  {
13095
13176
  ...tool,
@@ -13105,7 +13186,7 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
13105
13186
  isPending
13106
13187
  }
13107
13188
  ) }),
13108
- tool.status === "Confirming" /* Confirming */ && isConfirming && tool.confirmationDetails && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
13189
+ tool.status === "Confirming" /* Confirming */ && isConfirming && tool.confirmationDetails && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
13109
13190
  ToolConfirmationMessage,
13110
13191
  {
13111
13192
  confirmationDetails: tool.confirmationDetails,
@@ -13122,13 +13203,21 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
13122
13203
 
13123
13204
  // packages/cli/src/ui/components/messages/CompressionMessage.tsx
13124
13205
  init_esbuild_shims();
13125
- var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
13206
+ var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
13126
13207
  function CompressionMessage({
13127
13208
  compression
13128
13209
  }) {
13129
- const { isPending, originalTokenCount, newTokenCount, compressionStatus } = compression;
13210
+ const {
13211
+ isPending,
13212
+ originalTokenCount,
13213
+ newTokenCount,
13214
+ compressionStatus,
13215
+ originalTokenCountIsEstimated,
13216
+ newTokenCountIsEstimated
13217
+ } = compression;
13130
13218
  const originalTokens = originalTokenCount ?? 0;
13131
13219
  const newTokens = newTokenCount ?? 0;
13220
+ const formatTokens2 = /* @__PURE__ */ __name((count, isEstimated) => isEstimated ? `~${count}` : String(count), "formatTokens");
13132
13221
  const getCompressionText = /* @__PURE__ */ __name(() => {
13133
13222
  if (isPending) {
13134
13223
  return t("Compressing chat history");
@@ -13138,8 +13227,11 @@ function CompressionMessage({
13138
13227
  return t(
13139
13228
  "Chat history compressed from {{originalTokens}} to {{newTokens}} tokens.",
13140
13229
  {
13141
- originalTokens: String(originalTokens),
13142
- newTokens: String(newTokens)
13230
+ originalTokens: formatTokens2(
13231
+ originalTokens,
13232
+ originalTokenCountIsEstimated
13233
+ ),
13234
+ newTokens: formatTokens2(newTokens, newTokenCountIsEstimated)
13143
13235
  }
13144
13236
  );
13145
13237
  case 2 /* COMPRESSION_FAILED_INFLATED_TOKEN_COUNT */:
@@ -13160,9 +13252,9 @@ function CompressionMessage({
13160
13252
  }
13161
13253
  }, "getCompressionText");
13162
13254
  const text = getCompressionText();
13163
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box_default, { flexDirection: "row", children: [
13164
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box_default, { width: 2, flexShrink: 0, children: isPending ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(build_default, { type: "dots" }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Text, { color: theme.text.accent, children: ICON.DIAMOND }) }),
13165
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
13255
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Box_default, { flexDirection: "row", children: [
13256
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Box_default, { width: 2, flexShrink: 0, children: isPending ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(build_default, { type: "dots" }) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text, { color: theme.text.accent, children: ICON.DIAMOND }) }),
13257
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
13166
13258
  Text,
13167
13259
  {
13168
13260
  color: compression.isPending ? theme.text.accent : theme.status.success,
@@ -13176,7 +13268,7 @@ __name(CompressionMessage, "CompressionMessage");
13176
13268
 
13177
13269
  // packages/cli/src/ui/components/messages/SummaryMessage.tsx
13178
13270
  init_esbuild_shims();
13179
- var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
13271
+ var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1);
13180
13272
  var SummaryMessage = /* @__PURE__ */ __name(({ summary }) => {
13181
13273
  const getText = /* @__PURE__ */ __name(() => {
13182
13274
  if (summary.isPending) {
@@ -13199,13 +13291,13 @@ var SummaryMessage = /* @__PURE__ */ __name(({ summary }) => {
13199
13291
  }, "getText");
13200
13292
  const getIcon = /* @__PURE__ */ __name(() => {
13201
13293
  if (summary.isPending) {
13202
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(build_default, { type: "dots" });
13294
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(build_default, { type: "dots" });
13203
13295
  }
13204
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text, { color: Colors.AccentGreen, children: "\u2713" });
13296
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Text, { color: Colors.AccentGreen, children: "\u2713" });
13205
13297
  }, "getIcon");
13206
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Box_default, { flexDirection: "row", children: [
13207
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Box_default, { width: 2, flexShrink: 0, children: getIcon() }),
13208
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
13298
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Box_default, { flexDirection: "row", children: [
13299
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Box_default, { width: 2, flexShrink: 0, children: getIcon() }),
13300
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
13209
13301
  Text,
13210
13302
  {
13211
13303
  color: summary.isPending ? Colors.AccentPurple : Colors.AccentGreen,
@@ -13386,7 +13478,7 @@ Link.propTypes = {
13386
13478
  var dist_default = Link;
13387
13479
 
13388
13480
  // packages/cli/src/ui/components/messages/StatusMessages.tsx
13389
- var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1);
13481
+ var import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1);
13390
13482
  var StatusMessage = /* @__PURE__ */ __name(({
13391
13483
  text,
13392
13484
  prefix,
@@ -13399,11 +13491,11 @@ var StatusMessage = /* @__PURE__ */ __name(({
13399
13491
  return null;
13400
13492
  }
13401
13493
  const prefixWidth = stringWidth(prefix) + 1;
13402
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Box_default, { flexDirection: "row", children: [
13403
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Box_default, { width: prefixWidth, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Text, { color: prefixColor, children: prefix }) }),
13404
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
13405
- text && text.trim() !== "" && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Text, { wrap: "wrap", color: textColor, children: [
13406
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(RenderInline, { text }),
13494
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Box_default, { flexDirection: "row", children: [
13495
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Box_default, { width: prefixWidth, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text, { color: prefixColor, children: prefix }) }),
13496
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
13497
+ text && text.trim() !== "" && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Text, { wrap: "wrap", color: textColor, children: [
13498
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(RenderInline, { text }),
13407
13499
  children
13408
13500
  ] }),
13409
13501
  footer
@@ -13414,17 +13506,17 @@ var InfoMessage = /* @__PURE__ */ __name(({
13414
13506
  text,
13415
13507
  linkUrl,
13416
13508
  linkText
13417
- }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
13509
+ }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
13418
13510
  StatusMessage,
13419
13511
  {
13420
13512
  text,
13421
13513
  prefix: ICON.CIRCLE_FILLED,
13422
13514
  prefixColor: theme.text.primary,
13423
13515
  textColor: theme.text.primary,
13424
- footer: linkUrl && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(dist_default, { url: linkUrl, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Text, { color: theme.text.link, underline: true, children: linkText ?? linkUrl }) })
13516
+ footer: linkUrl && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(dist_default, { url: linkUrl, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text, { color: theme.text.link, underline: true, children: linkText ?? linkUrl }) })
13425
13517
  }
13426
13518
  ), "InfoMessage");
13427
- var SuccessMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
13519
+ var SuccessMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
13428
13520
  StatusMessage,
13429
13521
  {
13430
13522
  text,
@@ -13433,7 +13525,7 @@ var SuccessMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, im
13433
13525
  textColor: theme.status.success
13434
13526
  }
13435
13527
  ), "SuccessMessage");
13436
- var WarningMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
13528
+ var WarningMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
13437
13529
  StatusMessage,
13438
13530
  {
13439
13531
  text,
@@ -13445,21 +13537,21 @@ var WarningMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, im
13445
13537
  var ErrorMessage = /* @__PURE__ */ __name(({
13446
13538
  text,
13447
13539
  hint
13448
- }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
13540
+ }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
13449
13541
  StatusMessage,
13450
13542
  {
13451
13543
  text,
13452
13544
  prefix: "\u2715",
13453
13545
  prefixColor: theme.status.error,
13454
13546
  textColor: theme.status.error,
13455
- children: hint && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Text, { color: theme.text.secondary, children: [
13547
+ children: hint && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Text, { color: theme.text.secondary, children: [
13456
13548
  " (",
13457
13549
  hint,
13458
13550
  ")"
13459
13551
  ] })
13460
13552
  }
13461
13553
  ), "ErrorMessage");
13462
- var RetryCountdownMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
13554
+ var RetryCountdownMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
13463
13555
  StatusMessage,
13464
13556
  {
13465
13557
  text,
@@ -13468,7 +13560,7 @@ var RetryCountdownMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */
13468
13560
  textColor: theme.text.secondary
13469
13561
  }
13470
13562
  ), "RetryCountdownMessage");
13471
- var VisionNoticeMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
13563
+ var VisionNoticeMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
13472
13564
  StatusMessage,
13473
13565
  {
13474
13566
  text,
@@ -13477,23 +13569,23 @@ var VisionNoticeMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (
13477
13569
  textColor: theme.text.secondary
13478
13570
  }
13479
13571
  ), "VisionNoticeMessage");
13480
- var AwayRecapMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Box_default, { flexDirection: "row", children: [
13481
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Text, { color: theme.text.secondary, children: ICON.REFERENCE }) }),
13482
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Text, { wrap: "wrap", children: [
13483
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Text, { color: theme.text.secondary, bold: true, children: [
13572
+ var AwayRecapMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Box_default, { flexDirection: "row", children: [
13573
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text, { color: theme.text.secondary, children: ICON.REFERENCE }) }),
13574
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Text, { wrap: "wrap", children: [
13575
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Text, { color: theme.text.secondary, bold: true, children: [
13484
13576
  "recap:",
13485
13577
  " "
13486
13578
  ] }),
13487
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Text, { color: theme.text.secondary, italic: true, children: text })
13579
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text, { color: theme.text.secondary, italic: true, children: text })
13488
13580
  ] })
13489
13581
  ] }), "AwayRecapMessage");
13490
13582
 
13491
13583
  // packages/cli/src/ui/components/AboutBox.tsx
13492
13584
  init_esbuild_shims();
13493
- var import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1);
13585
+ var import_jsx_runtime27 = __toESM(require_jsx_runtime(), 1);
13494
13586
  var AboutBox = /* @__PURE__ */ __name(({ width, ...props }) => {
13495
13587
  const fields = getSystemInfoFields(props);
13496
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
13588
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
13497
13589
  Box_default,
13498
13590
  {
13499
13591
  borderStyle: "round",
@@ -13502,15 +13594,15 @@ var AboutBox = /* @__PURE__ */ __name(({ width, ...props }) => {
13502
13594
  padding: 1,
13503
13595
  width,
13504
13596
  children: [
13505
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Status") }) }),
13506
- fields.map((field) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
13597
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Status") }) }),
13598
+ fields.map((field) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
13507
13599
  Box_default,
13508
13600
  {
13509
13601
  flexDirection: "row",
13510
13602
  marginTop: field.label === t("Auth") ? 1 : 0,
13511
13603
  children: [
13512
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Box_default, { width: "35%", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text, { bold: true, color: theme.text.link, children: field.label }) }),
13513
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text, { color: theme.text.primary, children: field.value }) })
13604
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { width: "35%", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { bold: true, color: theme.text.link, children: field.label }) }),
13605
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { color: theme.text.primary, children: field.value }) })
13514
13606
  ]
13515
13607
  },
13516
13608
  field.label
@@ -13640,20 +13732,20 @@ function sortSources(sources) {
13640
13732
  __name(sortSources, "sortSources");
13641
13733
 
13642
13734
  // packages/cli/src/ui/components/StatsDisplay.tsx
13643
- var import_jsx_runtime27 = __toESM(require_jsx_runtime(), 1);
13644
- var StatRow = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Box_default, { children: [
13645
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { width: 28, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { color: theme.text.link, children: title }) }),
13646
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { flexGrow: 1, children })
13735
+ var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1);
13736
+ var StatRow = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { children: [
13737
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: 28, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.link, children: title }) }),
13738
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { flexGrow: 1, children })
13647
13739
  ] }), "StatRow");
13648
- var SubStatRow = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Box_default, { paddingLeft: 2, children: [
13649
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { width: 26, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.text.secondary, children: [
13740
+ var SubStatRow = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { paddingLeft: 2, children: [
13741
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: 26, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
13650
13742
  "\xBB ",
13651
13743
  title
13652
13744
  ] }) }),
13653
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { flexGrow: 1, children })
13745
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { flexGrow: 1, children })
13654
13746
  ] }), "SubStatRow");
13655
- var Section = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Box_default, { flexDirection: "column", width: "100%", marginBottom: 1, children: [
13656
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { bold: true, color: theme.text.primary, children: title }),
13747
+ var Section = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { flexDirection: "column", width: "100%", marginBottom: 1, children: [
13748
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.primary, children: title }),
13657
13749
  children
13658
13750
  ] }), "Section");
13659
13751
  var ModelUsageTable = /* @__PURE__ */ __name(({ models, totalCachedTokens, cacheEfficiency }) => {
@@ -13662,14 +13754,14 @@ var ModelUsageTable = /* @__PURE__ */ __name(({ models, totalCachedTokens, cache
13662
13754
  const inputTokensWidth = 15;
13663
13755
  const outputTokensWidth = 15;
13664
13756
  const entries = flattenModelsBySource(models);
13665
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
13666
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Box_default, { children: [
13667
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { width: nameWidth, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Model Usage") }) }),
13668
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { width: requestsWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Reqs") }) }),
13669
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { width: inputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Input Tokens") }) }),
13670
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { width: outputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Output Tokens") }) })
13757
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
13758
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { children: [
13759
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: nameWidth, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Model Usage") }) }),
13760
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: requestsWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Reqs") }) }),
13761
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: inputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Input Tokens") }) }),
13762
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: outputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Output Tokens") }) })
13671
13763
  ] }),
13672
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
13764
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
13673
13765
  Box_default,
13674
13766
  {
13675
13767
  borderStyle: "round",
@@ -13681,15 +13773,15 @@ var ModelUsageTable = /* @__PURE__ */ __name(({ models, totalCachedTokens, cache
13681
13773
  width: nameWidth + requestsWidth + inputTokensWidth + outputTokensWidth
13682
13774
  }
13683
13775
  ),
13684
- entries.map(({ key, label, metrics }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Box_default, { children: [
13685
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { width: nameWidth, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { color: theme.text.primary, children: label }) }),
13686
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { width: requestsWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { color: theme.text.primary, children: metrics.api.totalRequests }) }),
13687
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { width: inputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { color: theme.status.warning, children: metrics.tokens.prompt.toLocaleString() }) }),
13688
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { width: outputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { color: theme.status.warning, children: metrics.tokens.candidates.toLocaleString() }) })
13776
+ entries.map(({ key, label, metrics }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { children: [
13777
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: nameWidth, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.primary, children: label }) }),
13778
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: requestsWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.primary, children: metrics.api.totalRequests }) }),
13779
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: inputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.status.warning, children: metrics.tokens.prompt.toLocaleString() }) }),
13780
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: outputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.status.warning, children: metrics.tokens.candidates.toLocaleString() }) })
13689
13781
  ] }, key)),
13690
- cacheEfficiency > 0 && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
13691
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.text.primary, children: [
13692
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { color: theme.status.success, children: t("Savings Highlight:") }),
13782
+ cacheEfficiency > 0 && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
13783
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.primary, children: [
13784
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.status.success, children: t("Savings Highlight:") }),
13693
13785
  " ",
13694
13786
  totalCachedTokens.toLocaleString(),
13695
13787
  " (",
@@ -13698,8 +13790,8 @@ var ModelUsageTable = /* @__PURE__ */ __name(({ models, totalCachedTokens, cache
13698
13790
  " ",
13699
13791
  t("of input tokens were served from the cache, reducing costs.")
13700
13792
  ] }),
13701
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { height: 1 }),
13702
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.text.secondary, children: [
13793
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { height: 1 }),
13794
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
13703
13795
  "\xBB ",
13704
13796
  t("Tip: For a full token breakdown, run `/stats model`.")
13705
13797
  ] })
@@ -13731,11 +13823,11 @@ var StatsDisplay = /* @__PURE__ */ __name(({
13731
13823
  const renderTitle = /* @__PURE__ */ __name(() => {
13732
13824
  if (title) {
13733
13825
  const gradientColors = getRenderableGradientColors(theme.ui.gradient);
13734
- return gradientColors ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(dist_default2, { colors: gradientColors, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { bold: true, color: theme.text.primary, children: title }) }) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { bold: true, color: theme.text.accent, children: title });
13826
+ return gradientColors ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(dist_default2, { colors: gradientColors, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.primary, children: title }) }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.accent, children: title });
13735
13827
  }
13736
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Session Stats") });
13828
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Session Stats") });
13737
13829
  }, "renderTitle");
13738
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
13830
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
13739
13831
  Box_default,
13740
13832
  {
13741
13833
  borderStyle: "round",
@@ -13746,33 +13838,33 @@ var StatsDisplay = /* @__PURE__ */ __name(({
13746
13838
  width,
13747
13839
  children: [
13748
13840
  renderTitle(),
13749
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { height: 1 }),
13750
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Section, { title: t("Interaction Summary"), children: [
13751
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(StatRow, { title: t("Session ID:"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { color: theme.text.primary, children: stats.sessionId }) }),
13752
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(StatRow, { title: t("Tool Calls:"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.text.primary, children: [
13841
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { height: 1 }),
13842
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Section, { title: t("Interaction Summary"), children: [
13843
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StatRow, { title: t("Session ID:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.primary, children: stats.sessionId }) }),
13844
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StatRow, { title: t("Tool Calls:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.primary, children: [
13753
13845
  tools.totalCalls,
13754
13846
  " (",
13755
13847
  " ",
13756
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.status.success, children: [
13848
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.success, children: [
13757
13849
  "\u2713 ",
13758
13850
  tools.totalSuccess
13759
13851
  ] }),
13760
13852
  " ",
13761
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.status.error, children: [
13853
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.error, children: [
13762
13854
  "x ",
13763
13855
  tools.totalFail
13764
13856
  ] }),
13765
13857
  " )"
13766
13858
  ] }) }),
13767
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(StatRow, { title: t("Success Rate:"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: successColor, children: [
13859
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StatRow, { title: t("Success Rate:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: successColor, children: [
13768
13860
  computed.successRate.toFixed(1),
13769
13861
  "%"
13770
13862
  ] }) }),
13771
- computed.totalDecisions > 0 && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(StatRow, { title: t("User Agreement:"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: agreementColor, children: [
13863
+ computed.totalDecisions > 0 && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StatRow, { title: t("User Agreement:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: agreementColor, children: [
13772
13864
  computed.agreementRate.toFixed(1),
13773
13865
  "%",
13774
13866
  " ",
13775
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.text.secondary, children: [
13867
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
13776
13868
  "(",
13777
13869
  computed.totalDecisions,
13778
13870
  " ",
@@ -13780,41 +13872,41 @@ var StatsDisplay = /* @__PURE__ */ __name(({
13780
13872
  ")"
13781
13873
  ] })
13782
13874
  ] }) }),
13783
- files && (files.totalLinesAdded > 0 || files.totalLinesRemoved > 0) && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(StatRow, { title: t("Code Changes:"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.text.primary, children: [
13784
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.status.success, children: [
13875
+ files && (files.totalLinesAdded > 0 || files.totalLinesRemoved > 0) && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StatRow, { title: t("Code Changes:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.primary, children: [
13876
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.success, children: [
13785
13877
  "+",
13786
13878
  files.totalLinesAdded
13787
13879
  ] }),
13788
13880
  " ",
13789
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.status.error, children: [
13881
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.error, children: [
13790
13882
  "-",
13791
13883
  files.totalLinesRemoved
13792
13884
  ] })
13793
13885
  ] }) })
13794
13886
  ] }),
13795
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Section, { title: t("Performance"), children: [
13796
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(StatRow, { title: t("Wall Time:"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { color: theme.text.primary, children: duration }) }),
13797
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(StatRow, { title: t("Agent Active:"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { color: theme.text.primary, children: formatDuration(computed.agentActiveTime) }) }),
13798
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SubStatRow, { title: t("API Time:"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.text.primary, children: [
13887
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Section, { title: t("Performance"), children: [
13888
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StatRow, { title: t("Wall Time:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.primary, children: duration }) }),
13889
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StatRow, { title: t("Agent Active:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.primary, children: formatDuration(computed.agentActiveTime) }) }),
13890
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SubStatRow, { title: t("API Time:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.primary, children: [
13799
13891
  formatDuration(computed.totalApiTime),
13800
13892
  " ",
13801
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.text.secondary, children: [
13893
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
13802
13894
  "(",
13803
13895
  computed.apiTimePercent.toFixed(1),
13804
13896
  "%)"
13805
13897
  ] })
13806
13898
  ] }) }),
13807
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SubStatRow, { title: t("Tool Time:"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.text.primary, children: [
13899
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SubStatRow, { title: t("Tool Time:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.primary, children: [
13808
13900
  formatDuration(computed.totalToolTime),
13809
13901
  " ",
13810
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.text.secondary, children: [
13902
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
13811
13903
  "(",
13812
13904
  computed.toolTimePercent.toFixed(1),
13813
13905
  "%)"
13814
13906
  ] })
13815
13907
  ] }) })
13816
13908
  ] }),
13817
- Object.keys(models).length > 0 && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
13909
+ Object.keys(models).length > 0 && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
13818
13910
  ModelUsageTable,
13819
13911
  {
13820
13912
  models,
@@ -13829,7 +13921,7 @@ var StatsDisplay = /* @__PURE__ */ __name(({
13829
13921
 
13830
13922
  // packages/cli/src/ui/components/ModelStatsDisplay.tsx
13831
13923
  init_esbuild_shims();
13832
- var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1);
13924
+ var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
13833
13925
  var METRIC_COL_WIDTH = 28;
13834
13926
  var MODEL_COL_WIDTH = 24;
13835
13927
  var PANEL_HORIZONTAL_CHROME_WIDTH = 6;
@@ -13839,8 +13931,8 @@ var StatRow2 = /* @__PURE__ */ __name(({
13839
13931
  modelColWidth,
13840
13932
  isSubtle = false,
13841
13933
  isSection = false
13842
- }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { children: [
13843
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: METRIC_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
13934
+ }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
13935
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: METRIC_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13844
13936
  Text,
13845
13937
  {
13846
13938
  bold: isSection,
@@ -13848,7 +13940,7 @@ var StatRow2 = /* @__PURE__ */ __name(({
13848
13940
  children: isSubtle ? ` \u21B3 ${title}` : title
13849
13941
  }
13850
13942
  ) }),
13851
- values.map((value, index) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: modelColWidth, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.primary, children: value }) }, index))
13943
+ values.map((value, index) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: modelColWidth, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.text.primary, children: value }) }, index))
13852
13944
  ] }), "StatRow");
13853
13945
  var ModelStatsDisplay = /* @__PURE__ */ __name(({
13854
13946
  width
@@ -13859,7 +13951,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13859
13951
  const settings = useSettings();
13860
13952
  const modelPricing = settings.merged.modelPricing;
13861
13953
  if (entries.length === 0) {
13862
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
13954
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13863
13955
  Box_default,
13864
13956
  {
13865
13957
  borderStyle: "round",
@@ -13867,7 +13959,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13867
13959
  paddingY: 1,
13868
13960
  paddingX: 2,
13869
13961
  width,
13870
- children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.primary, children: t("No API calls have been made in this session.") })
13962
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.text.primary, children: t("No API calls have been made in this session.") })
13871
13963
  }
13872
13964
  );
13873
13965
  }
@@ -13888,7 +13980,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13888
13980
  pricing: modelPricing?.[getModelName(key)]
13889
13981
  }) != null
13890
13982
  );
13891
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
13983
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
13892
13984
  Box_default,
13893
13985
  {
13894
13986
  borderStyle: "round",
@@ -13898,13 +13990,13 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13898
13990
  paddingX: 2,
13899
13991
  width,
13900
13992
  children: [
13901
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Model Stats For Nerds") }),
13902
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { height: 1 }),
13903
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { children: [
13904
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: METRIC_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Metric") }) }),
13905
- entries.map(({ key, label }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: modelColWidth, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.primary, children: label }) }, key))
13993
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Model Stats For Nerds") }),
13994
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { height: 1 }),
13995
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
13996
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: METRIC_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Metric") }) }),
13997
+ entries.map(({ key, label }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: modelColWidth, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { bold: true, color: theme.text.primary, children: label }) }, key))
13906
13998
  ] }),
13907
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
13999
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13908
14000
  Box_default,
13909
14001
  {
13910
14002
  borderStyle: "single",
@@ -13915,7 +14007,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13915
14007
  borderColor: theme.border.default
13916
14008
  }
13917
14009
  ),
13918
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14010
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13919
14011
  StatRow2,
13920
14012
  {
13921
14013
  title: t("API"),
@@ -13924,7 +14016,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13924
14016
  isSection: true
13925
14017
  }
13926
14018
  ),
13927
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14019
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13928
14020
  StatRow2,
13929
14021
  {
13930
14022
  title: t("Requests"),
@@ -13932,13 +14024,13 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13932
14024
  modelColWidth
13933
14025
  }
13934
14026
  ),
13935
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14027
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13936
14028
  StatRow2,
13937
14029
  {
13938
14030
  title: t("Errors"),
13939
14031
  values: getModelValues((m) => {
13940
14032
  const errorRate = calculateErrorRate(m);
13941
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
14033
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
13942
14034
  Text,
13943
14035
  {
13944
14036
  color: m.api.totalErrors > 0 ? theme.status.error : theme.text.primary,
@@ -13954,7 +14046,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13954
14046
  modelColWidth
13955
14047
  }
13956
14048
  ),
13957
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14049
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13958
14050
  StatRow2,
13959
14051
  {
13960
14052
  title: t("Avg Latency"),
@@ -13965,8 +14057,8 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13965
14057
  modelColWidth
13966
14058
  }
13967
14059
  ),
13968
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { height: 1 }),
13969
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14060
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { height: 1 }),
14061
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13970
14062
  StatRow2,
13971
14063
  {
13972
14064
  title: t("Tokens"),
@@ -13975,15 +14067,15 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13975
14067
  isSection: true
13976
14068
  }
13977
14069
  ),
13978
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14070
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13979
14071
  StatRow2,
13980
14072
  {
13981
14073
  title: t("Total"),
13982
- values: getModelValues((m) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.status.warning, children: m.tokens.total.toLocaleString() })),
14074
+ values: getModelValues((m) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.status.warning, children: m.tokens.total.toLocaleString() })),
13983
14075
  modelColWidth
13984
14076
  }
13985
14077
  ),
13986
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14078
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13987
14079
  StatRow2,
13988
14080
  {
13989
14081
  title: t("Prompt"),
@@ -13992,14 +14084,14 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13992
14084
  modelColWidth
13993
14085
  }
13994
14086
  ),
13995
- hasCached && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14087
+ hasCached && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13996
14088
  StatRow2,
13997
14089
  {
13998
14090
  title: t("Cached"),
13999
14091
  isSubtle: true,
14000
14092
  values: getModelValues((m) => {
14001
14093
  const cacheHitRate = calculateCacheHitRate(m);
14002
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.success, children: [
14094
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Text, { color: theme.status.success, children: [
14003
14095
  m.tokens.cached.toLocaleString(),
14004
14096
  " (",
14005
14097
  cacheHitRate.toFixed(1),
@@ -14009,7 +14101,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
14009
14101
  modelColWidth
14010
14102
  }
14011
14103
  ),
14012
- hasThoughts && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14104
+ hasThoughts && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14013
14105
  StatRow2,
14014
14106
  {
14015
14107
  title: t("Thoughts"),
@@ -14018,7 +14110,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
14018
14110
  modelColWidth
14019
14111
  }
14020
14112
  ),
14021
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14113
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14022
14114
  StatRow2,
14023
14115
  {
14024
14116
  title: t("Output"),
@@ -14027,9 +14119,9 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
14027
14119
  modelColWidth
14028
14120
  }
14029
14121
  ),
14030
- hasPricing && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
14031
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { height: 1 }),
14032
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14122
+ hasPricing && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
14123
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { height: 1 }),
14124
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14033
14125
  StatRow2,
14034
14126
  {
14035
14127
  title: t("Cost"),
@@ -14038,7 +14130,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
14038
14130
  isSection: true
14039
14131
  }
14040
14132
  ),
14041
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14133
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14042
14134
  StatRow2,
14043
14135
  {
14044
14136
  title: t("Estimated"),
@@ -14061,7 +14153,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
14061
14153
 
14062
14154
  // packages/cli/src/ui/components/ToolStatsDisplay.tsx
14063
14155
  init_esbuild_shims();
14064
- var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
14156
+ var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1);
14065
14157
  var TOOL_NAME_COL_WIDTH = 25;
14066
14158
  var CALLS_COL_WIDTH = 8;
14067
14159
  var SUCCESS_RATE_COL_WIDTH = 15;
@@ -14073,14 +14165,14 @@ var StatRow3 = /* @__PURE__ */ __name(({ name, stats }) => {
14073
14165
  green: TOOL_SUCCESS_RATE_HIGH,
14074
14166
  yellow: TOOL_SUCCESS_RATE_MEDIUM
14075
14167
  });
14076
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
14077
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: TOOL_NAME_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.text.link, children: name }) }),
14078
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: CALLS_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.text.primary, children: stats.count }) }),
14079
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: SUCCESS_RATE_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Text, { color: successColor, children: [
14168
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
14169
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: TOOL_NAME_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.link, children: name }) }),
14170
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: CALLS_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: stats.count }) }),
14171
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: SUCCESS_RATE_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Text, { color: successColor, children: [
14080
14172
  successRate.toFixed(1),
14081
14173
  "%"
14082
14174
  ] }) }),
14083
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.text.primary, children: formatDuration(avgDuration) }) })
14175
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: formatDuration(avgDuration) }) })
14084
14176
  ] });
14085
14177
  }, "StatRow");
14086
14178
  var ToolStatsDisplay = /* @__PURE__ */ __name(({
@@ -14092,7 +14184,7 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
14092
14184
  ([, metrics]) => metrics.count > 0
14093
14185
  );
14094
14186
  if (activeTools.length === 0) {
14095
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14187
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14096
14188
  Box_default,
14097
14189
  {
14098
14190
  borderStyle: "round",
@@ -14100,7 +14192,7 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
14100
14192
  paddingY: 1,
14101
14193
  paddingX: 2,
14102
14194
  width,
14103
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.text.primary, children: t("No tool calls have been made in this session.") })
14195
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t("No tool calls have been made in this session.") })
14104
14196
  }
14105
14197
  );
14106
14198
  }
@@ -14119,7 +14211,7 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
14119
14211
  green: USER_AGREEMENT_RATE_HIGH,
14120
14212
  yellow: USER_AGREEMENT_RATE_MEDIUM
14121
14213
  });
14122
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
14214
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
14123
14215
  Box_default,
14124
14216
  {
14125
14217
  borderStyle: "round",
@@ -14129,15 +14221,15 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
14129
14221
  paddingX: 2,
14130
14222
  width,
14131
14223
  children: [
14132
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Tool Stats For Nerds") }),
14133
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { height: 1 }),
14134
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
14135
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: TOOL_NAME_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Tool Name") }) }),
14136
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: CALLS_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Calls") }) }),
14137
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: SUCCESS_RATE_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Success Rate") }) }),
14138
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Avg Duration") }) })
14224
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Tool Stats For Nerds") }),
14225
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { height: 1 }),
14226
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
14227
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: TOOL_NAME_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Tool Name") }) }),
14228
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: CALLS_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Calls") }) }),
14229
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: SUCCESS_RATE_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Success Rate") }) }),
14230
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Avg Duration") }) })
14139
14231
  ] }),
14140
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14232
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14141
14233
  Box_default,
14142
14234
  {
14143
14235
  borderStyle: "single",
@@ -14149,50 +14241,50 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
14149
14241
  width: "100%"
14150
14242
  }
14151
14243
  ),
14152
- activeTools.map(([name, stats2]) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(StatRow3, { name, stats: stats2 }, name)),
14153
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { height: 1 }),
14154
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { bold: true, color: theme.text.primary, children: t("User Decision Summary") }),
14155
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
14156
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14244
+ activeTools.map(([name, stats2]) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(StatRow3, { name, stats: stats2 }, name)),
14245
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { height: 1 }),
14246
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.primary, children: t("User Decision Summary") }),
14247
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
14248
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14157
14249
  Box_default,
14158
14250
  {
14159
14251
  width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
14160
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.text.link, children: t("Total Reviewed Suggestions:") })
14252
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.link, children: t("Total Reviewed Suggestions:") })
14161
14253
  }
14162
14254
  ),
14163
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.text.primary, children: totalReviewed }) })
14255
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: totalReviewed }) })
14164
14256
  ] }),
14165
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
14166
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14257
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
14258
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14167
14259
  Box_default,
14168
14260
  {
14169
14261
  width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
14170
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.text.primary, children: t(" \xBB Accepted:") })
14262
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t(" \xBB Accepted:") })
14171
14263
  }
14172
14264
  ),
14173
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.status.success, children: totalDecisions.accept }) })
14265
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.status.success, children: totalDecisions.accept }) })
14174
14266
  ] }),
14175
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
14176
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14267
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
14268
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14177
14269
  Box_default,
14178
14270
  {
14179
14271
  width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
14180
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.text.primary, children: t(" \xBB Rejected:") })
14272
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t(" \xBB Rejected:") })
14181
14273
  }
14182
14274
  ),
14183
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.status.error, children: totalDecisions.reject }) })
14275
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.status.error, children: totalDecisions.reject }) })
14184
14276
  ] }),
14185
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
14186
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14277
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
14278
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14187
14279
  Box_default,
14188
14280
  {
14189
14281
  width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
14190
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.text.primary, children: t(" \xBB Modified:") })
14282
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t(" \xBB Modified:") })
14191
14283
  }
14192
14284
  ),
14193
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.status.warning, children: totalDecisions.modify }) })
14285
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.status.warning, children: totalDecisions.modify }) })
14194
14286
  ] }),
14195
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14287
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14196
14288
  Box_default,
14197
14289
  {
14198
14290
  borderStyle: "single",
@@ -14204,15 +14296,15 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
14204
14296
  width: "100%"
14205
14297
  }
14206
14298
  ),
14207
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
14208
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14299
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
14300
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14209
14301
  Box_default,
14210
14302
  {
14211
14303
  width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
14212
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.text.primary, children: t(" Overall Agreement Rate:") })
14304
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t(" Overall Agreement Rate:") })
14213
14305
  }
14214
14306
  ),
14215
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { bold: true, color: totalReviewed > 0 ? agreementColor : void 0, children: totalReviewed > 0 ? `${agreementRate.toFixed(1)}%` : "--" }) })
14307
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: totalReviewed > 0 ? agreementColor : void 0, children: totalReviewed > 0 ? `${agreementRate.toFixed(1)}%` : "--" }) })
14216
14308
  ] })
14217
14309
  ]
14218
14310
  }
@@ -14221,7 +14313,7 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
14221
14313
 
14222
14314
  // packages/cli/src/ui/components/SkillStatsDisplay.tsx
14223
14315
  init_esbuild_shims();
14224
- var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1);
14316
+ var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1);
14225
14317
  var SKILL_NAME_COL_WIDTH = 30;
14226
14318
  var CALLS_COL_WIDTH2 = 8;
14227
14319
  var SUCCESS_COL_WIDTH = 8;
@@ -14233,12 +14325,12 @@ var StatRow4 = /* @__PURE__ */ __name(({ name, stats }) => {
14233
14325
  green: TOOL_SUCCESS_RATE_HIGH,
14234
14326
  yellow: TOOL_SUCCESS_RATE_MEDIUM
14235
14327
  });
14236
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
14237
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: SKILL_NAME_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.link, children: name }) }),
14238
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: CALLS_COL_WIDTH2, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: stats.count }) }),
14239
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: SUCCESS_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.status.success, children: stats.success }) }),
14240
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: FAIL_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: stats.fail > 0 ? theme.status.error : theme.text.primary, children: stats.fail }) }),
14241
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: SUCCESS_RATE_COL_WIDTH2, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Text, { color: successColor, children: [
14328
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Box_default, { children: [
14329
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: SKILL_NAME_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { color: theme.text.link, children: name }) }),
14330
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: CALLS_COL_WIDTH2, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { color: theme.text.primary, children: stats.count }) }),
14331
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: SUCCESS_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { color: theme.status.success, children: stats.success }) }),
14332
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: FAIL_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { color: stats.fail > 0 ? theme.status.error : theme.text.primary, children: stats.fail }) }),
14333
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: SUCCESS_RATE_COL_WIDTH2, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Text, { color: successColor, children: [
14242
14334
  successRate.toFixed(1),
14243
14335
  "%"
14244
14336
  ] }) })
@@ -14259,7 +14351,7 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
14259
14351
  return countDelta !== 0 ? countDelta : leftName.localeCompare(rightName);
14260
14352
  });
14261
14353
  if (activeSkills.length === 0) {
14262
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14354
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
14263
14355
  Box_default,
14264
14356
  {
14265
14357
  borderStyle: "round",
@@ -14267,11 +14359,11 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
14267
14359
  paddingY: 1,
14268
14360
  paddingX: 2,
14269
14361
  width,
14270
- children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t("No skill calls have been made in this session.") })
14362
+ children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { color: theme.text.primary, children: t("No skill calls have been made in this session.") })
14271
14363
  }
14272
14364
  );
14273
14365
  }
14274
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
14366
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
14275
14367
  Box_default,
14276
14368
  {
14277
14369
  borderStyle: "round",
@@ -14281,16 +14373,16 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
14281
14373
  paddingX: 2,
14282
14374
  width,
14283
14375
  children: [
14284
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Skill Stats For Nerds") }),
14285
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { height: 1 }),
14286
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
14287
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: SKILL_NAME_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Skill Name") }) }),
14288
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: CALLS_COL_WIDTH2, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Calls") }) }),
14289
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: SUCCESS_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.primary, children: t("OK") }) }),
14290
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: FAIL_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Fail") }) }),
14291
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: SUCCESS_RATE_COL_WIDTH2, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Success Rate") }) })
14376
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Skill Stats For Nerds") }),
14377
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { height: 1 }),
14378
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Box_default, { children: [
14379
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: SKILL_NAME_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Skill Name") }) }),
14380
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: CALLS_COL_WIDTH2, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Calls") }) }),
14381
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: SUCCESS_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { bold: true, color: theme.text.primary, children: t("OK") }) }),
14382
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: FAIL_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Fail") }) }),
14383
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: SUCCESS_RATE_COL_WIDTH2, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Success Rate") }) })
14292
14384
  ] }),
14293
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14385
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
14294
14386
  Box_default,
14295
14387
  {
14296
14388
  borderStyle: "single",
@@ -14302,7 +14394,7 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
14302
14394
  width: "100%"
14303
14395
  }
14304
14396
  ),
14305
- activeSkills.map(([name, skillStats]) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(StatRow4, { name, stats: skillStats }, name))
14397
+ activeSkills.map(([name, skillStats]) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(StatRow4, { name, stats: skillStats }, name))
14306
14398
  ]
14307
14399
  }
14308
14400
  );
@@ -14310,7 +14402,7 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
14310
14402
 
14311
14403
  // packages/cli/src/ui/components/SessionSummaryDisplay.tsx
14312
14404
  init_esbuild_shims();
14313
- var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1);
14405
+ var import_jsx_runtime32 = __toESM(require_jsx_runtime(), 1);
14314
14406
  var SessionSummaryDisplay = /* @__PURE__ */ __name(({
14315
14407
  duration,
14316
14408
  width
@@ -14319,8 +14411,8 @@ var SessionSummaryDisplay = /* @__PURE__ */ __name(({
14319
14411
  const { stats } = useSessionStats();
14320
14412
  const hasMessages = stats.promptCount > 0;
14321
14413
  const canResume = !!config.getChatRecordingService();
14322
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
14323
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
14414
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
14415
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
14324
14416
  StatsDisplay,
14325
14417
  {
14326
14418
  title: t("Agent powering down. Goodbye!"),
@@ -14328,10 +14420,10 @@ var SessionSummaryDisplay = /* @__PURE__ */ __name(({
14328
14420
  width
14329
14421
  }
14330
14422
  ),
14331
- hasMessages && canResume && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Text, { color: theme.text.secondary, children: [
14423
+ hasMessages && canResume && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Text, { color: theme.text.secondary, children: [
14332
14424
  t("To continue this session, run"),
14333
14425
  " ",
14334
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Text, { color: theme.text.accent, children: [
14426
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Text, { color: theme.text.accent, children: [
14335
14427
  "qwen --resume ",
14336
14428
  stats.sessionId
14337
14429
  ] })
@@ -14342,7 +14434,7 @@ var SessionSummaryDisplay = /* @__PURE__ */ __name(({
14342
14434
  // packages/cli/src/ui/components/Help.tsx
14343
14435
  init_esbuild_shims();
14344
14436
  var import_react33 = __toESM(require_react(), 1);
14345
- var import_jsx_runtime32 = __toESM(require_jsx_runtime(), 1);
14437
+ var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1);
14346
14438
  var DEFAULT_WIDTH = 100;
14347
14439
  var KEY_COL_WIDTH = 20;
14348
14440
  var COMMAND_LIST_VISIBLE_LINES = 18;
@@ -14382,13 +14474,13 @@ var Help = /* @__PURE__ */ __name(({
14382
14474
  },
14383
14475
  { isActive: isInteractive }
14384
14476
  );
14385
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { flexDirection: "column", width: safeWidth, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
14477
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { flexDirection: "column", width: safeWidth, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
14386
14478
  Box_default,
14387
14479
  {
14388
14480
  borderColor: theme.border.default,
14389
14481
  borderStyle: "single",
14390
14482
  width: safeWidth,
14391
- children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
14483
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
14392
14484
  Box_default,
14393
14485
  {
14394
14486
  flexDirection: "column",
@@ -14396,10 +14488,10 @@ var Help = /* @__PURE__ */ __name(({
14396
14488
  paddingY: 1,
14397
14489
  width: safeWidth - 2,
14398
14490
  children: [
14399
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(HelpTabs, { activeTab }),
14400
- /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Box_default, { marginTop: 1, children: [
14401
- activeTab === "general" && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(GeneralHelp, { width: bodyWidth }),
14402
- activeTab === "commands" && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
14491
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(HelpTabs, { activeTab }),
14492
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { marginTop: 1, children: [
14493
+ activeTab === "general" && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GeneralHelp, { width: bodyWidth }),
14494
+ activeTab === "commands" && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
14403
14495
  CommandsHelp,
14404
14496
  {
14405
14497
  commands,
@@ -14408,7 +14500,7 @@ var Help = /* @__PURE__ */ __name(({
14408
14500
  isInteractive
14409
14501
  }
14410
14502
  ),
14411
- activeTab === "custom-commands" && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
14503
+ activeTab === "custom-commands" && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
14412
14504
  CommandsHelp,
14413
14505
  {
14414
14506
  commands,
@@ -14418,24 +14510,24 @@ var Help = /* @__PURE__ */ __name(({
14418
14510
  }
14419
14511
  )
14420
14512
  ] }),
14421
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Text, { color: theme.text.secondary, children: [
14513
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { color: theme.text.secondary, children: [
14422
14514
  t("For more help:"),
14423
14515
  " ",
14424
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Text, { underline: true, children: DOCS_URL })
14516
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { underline: true, children: DOCS_URL })
14425
14517
  ] }) }),
14426
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Text, { italic: true, color: theme.text.secondary, children: t("Tab/Shift+Tab to switch tabs \xB7 Esc to cancel") }) })
14518
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { italic: true, color: theme.text.secondary, children: t("Tab/Shift+Tab to switch tabs \xB7 Esc to cancel") }) })
14427
14519
  ]
14428
14520
  }
14429
14521
  )
14430
14522
  }
14431
14523
  ) });
14432
14524
  }, "Help");
14433
- var HelpTabs = /* @__PURE__ */ __name(({ activeTab }) => /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Box_default, { flexDirection: "row", children: [
14434
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Text, { bold: true, color: theme.text.accent, children: "Qwen Code" }),
14435
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Text, { color: theme.text.secondary, children: " " }),
14525
+ var HelpTabs = /* @__PURE__ */ __name(({ activeTab }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "row", children: [
14526
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { bold: true, color: theme.text.accent, children: "Qwen Code" }),
14527
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.secondary, children: " " }),
14436
14528
  TAB_DEFS.map(({ tab, labelKey }) => {
14437
14529
  const active = tab === activeTab;
14438
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { marginLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
14530
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
14439
14531
  Text,
14440
14532
  {
14441
14533
  color: active ? theme.background.primary : theme.text.primary,
@@ -14468,13 +14560,13 @@ var GeneralHelp = /* @__PURE__ */ __name(({ width }) => {
14468
14560
  const left = shortcuts.slice(0, Math.ceil(shortcuts.length / 2));
14469
14561
  const right = shortcuts.slice(Math.ceil(shortcuts.length / 2));
14470
14562
  const colWidth = Math.floor((width - 2) / 2);
14471
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Box_default, { flexDirection: "column", children: [
14472
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Text, { color: theme.text.primary, children: t(
14563
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "column", children: [
14564
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.primary, children: t(
14473
14565
  "Qwen Code understands your codebase, makes edits with your permission, and executes commands right from your terminal."
14474
14566
  ) }) }),
14475
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Shortcuts") }),
14476
- /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Box_default, { flexDirection: "row", gap: 2, children: [
14477
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { flexDirection: "column", width: colWidth, children: left.map(([key, desc]) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
14567
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Shortcuts") }),
14568
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "row", gap: 2, children: [
14569
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { flexDirection: "column", width: colWidth, children: left.map(([key, desc]) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
14478
14570
  ShortcutRow,
14479
14571
  {
14480
14572
  shortcutKey: key,
@@ -14483,7 +14575,7 @@ var GeneralHelp = /* @__PURE__ */ __name(({ width }) => {
14483
14575
  },
14484
14576
  key
14485
14577
  )) }),
14486
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { flexDirection: "column", width: colWidth, children: right.map(([key, desc]) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
14578
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { flexDirection: "column", width: colWidth, children: right.map(([key, desc]) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
14487
14579
  ShortcutRow,
14488
14580
  {
14489
14581
  shortcutKey: key,
@@ -14495,9 +14587,9 @@ var GeneralHelp = /* @__PURE__ */ __name(({ width }) => {
14495
14587
  ] })
14496
14588
  ] });
14497
14589
  }, "GeneralHelp");
14498
- var ShortcutRow = /* @__PURE__ */ __name(({ shortcutKey, desc, width }) => /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Box_default, { flexDirection: "row", width, children: [
14499
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { width: KEY_COL_WIDTH, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Text, { color: theme.text.accent, children: shortcutKey }) }),
14500
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Text, { color: theme.text.primary, wrap: "truncate", children: truncateText2(desc, width - KEY_COL_WIDTH - 1) })
14590
+ var ShortcutRow = /* @__PURE__ */ __name(({ shortcutKey, desc, width }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "row", width, children: [
14591
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { width: KEY_COL_WIDTH, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.accent, children: shortcutKey }) }),
14592
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.primary, wrap: "truncate", children: truncateText2(desc, width - KEY_COL_WIDTH - 1) })
14501
14593
  ] }), "ShortcutRow");
14502
14594
  var CommandsHelp = /* @__PURE__ */ __name(({ commands, width, customOnly, isInteractive }) => {
14503
14595
  const groups = (0, import_react33.useMemo)(
@@ -14535,17 +14627,17 @@ var CommandsHelp = /* @__PURE__ */ __name(({ commands, width, customOnly, isInte
14535
14627
  { isActive: isInteractive }
14536
14628
  );
14537
14629
  if (groups.length === 0) {
14538
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Text, { color: theme.text.secondary, children: customOnly ? t("No custom commands are currently available.") : t("No commands are currently available.") });
14630
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.secondary, children: customOnly ? t("No custom commands are currently available.") : t("No commands are currently available.") });
14539
14631
  }
14540
14632
  const visibleLines = lines.slice(
14541
14633
  scrollOffset,
14542
14634
  scrollOffset + COMMAND_LIST_VISIBLE_LINES
14543
14635
  );
14544
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Box_default, { flexDirection: "column", children: [
14545
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Text, { color: theme.text.primary, children: customOnly ? t("Browse custom, skill, plugin, and MCP commands:") : t("Browse built-in commands:") }) }),
14546
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { flexDirection: "column", height: COMMAND_LIST_VISIBLE_LINES, children: visibleLines.map((line, index) => {
14636
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "column", children: [
14637
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.primary, children: customOnly ? t("Browse custom, skill, plugin, and MCP commands:") : t("Browse built-in commands:") }) }),
14638
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { flexDirection: "column", height: COMMAND_LIST_VISIBLE_LINES, children: visibleLines.map((line, index) => {
14547
14639
  const stableKey = line.type === "blank" ? `blank:${index}` : `${line.type}:${line.text}:${index}`;
14548
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(CommandLine, { line }, stableKey);
14640
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(CommandLine, { line }, stableKey);
14549
14641
  }) }),
14550
14642
  maxScroll > 0 && (() => {
14551
14643
  const totalCommands = lines.filter(
@@ -14557,7 +14649,7 @@ var CommandsHelp = /* @__PURE__ */ __name(({ commands, width, customOnly, isInte
14557
14649
  const firstCmd = visibleSignatures.length > 0 ? visibleSignatures[0].commandIndex + 1 : 0;
14558
14650
  const lastCmd = visibleSignatures.length > 0 ? visibleSignatures[visibleSignatures.length - 1].commandIndex + 1 : 0;
14559
14651
  const range = firstCmd === lastCmd ? `${firstCmd}` : `${firstCmd}-${lastCmd}`;
14560
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Text, { color: theme.text.secondary, children: [
14652
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { color: theme.text.secondary, children: [
14561
14653
  t("Use \u2191/\u2193 to scroll"),
14562
14654
  " ",
14563
14655
  `(${range}/${totalCommands})`
@@ -14568,28 +14660,28 @@ var CommandsHelp = /* @__PURE__ */ __name(({ commands, width, customOnly, isInte
14568
14660
  var CommandLine = /* @__PURE__ */ __name(({ line }) => {
14569
14661
  switch (line.type) {
14570
14662
  case "group":
14571
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Text, { bold: true, color: theme.text.primary, children: [
14663
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { bold: true, color: theme.text.primary, children: [
14572
14664
  line.text,
14573
14665
  " ",
14574
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Text, { color: theme.text.secondary, children: `(${line.count})` })
14666
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.secondary, children: `(${line.count})` })
14575
14667
  ] });
14576
14668
  case "signature":
14577
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Box_default, { flexDirection: "row", children: [
14578
- /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Text, { color: theme.text.accent, children: [
14669
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "row", children: [
14670
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { color: theme.text.accent, children: [
14579
14671
  " ",
14580
14672
  line.text
14581
14673
  ] }),
14582
- line.meta && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Text, { color: theme.text.secondary, children: [
14674
+ line.meta && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { color: theme.text.secondary, children: [
14583
14675
  " ",
14584
14676
  line.meta
14585
14677
  ] })
14586
14678
  ] });
14587
14679
  case "description":
14588
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { paddingLeft: 4, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Text, { color: theme.text.primary, wrap: "truncate", children: line.text }) });
14680
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { paddingLeft: 4, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.primary, wrap: "truncate", children: line.text }) });
14589
14681
  case "subcommands":
14590
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { paddingLeft: 4, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: line.text }) });
14682
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { paddingLeft: 4, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: line.text }) });
14591
14683
  case "blank":
14592
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Text, { children: " " });
14684
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { children: " " });
14593
14685
  default:
14594
14686
  return null;
14595
14687
  }
@@ -14739,6 +14831,11 @@ function useHistory() {
14739
14831
  `[ADD_ITEM] type=${newItem.type}, textSize=${textSize}, historyLength=${newHistory.length}`
14740
14832
  );
14741
14833
  }
14834
+ if (newItem.type === "tool_group" && newItem.tools.some(
14835
+ (tool) => isFindingsListDisplay(tool.resultDisplay)
14836
+ )) {
14837
+ return coalesceFindingsHistoryItems(newHistory);
14838
+ }
14742
14839
  return newHistory;
14743
14840
  });
14744
14841
  return id;
@@ -14858,6 +14955,7 @@ ${UI_COMPACT_CLEARED_IMAGE_MESSAGE}` : UI_COMPACT_CLEARED_IMAGE_MESSAGE,
14858
14955
  ...t2,
14859
14956
  resultDisplay: UI_COMPACT_CLEARED_MESSAGE,
14860
14957
  detailedDisplay: void 0,
14958
+ supersededFindingsDisplay: void 0,
14861
14959
  images: void 0,
14862
14960
  omittedImageCount: void 0
14863
14961
  };
@@ -14905,7 +15003,7 @@ var import_react37 = __toESM(require_react(), 1);
14905
15003
 
14906
15004
  // packages/cli/src/ui/IdeIntegrationNudge.tsx
14907
15005
  init_esbuild_shims();
14908
- var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1);
15006
+ var import_jsx_runtime34 = __toESM(require_jsx_runtime(), 1);
14909
15007
  function IdeIntegrationNudge({
14910
15008
  ide,
14911
15009
  onComplete
@@ -14951,7 +15049,7 @@ function IdeIntegrationNudge({
14951
15049
  }
14952
15050
  ];
14953
15051
  const installText = isInSandbox ? `Note: In sandbox environments, IDE integration requires manual setup on the host system. If you select Yes, you'll receive instructions on how to set this up.` : isExtensionPreInstalled ? `If you select Yes, the CLI will connect to your ${ideName ?? "editor"} and have access to your open files and display diffs directly.` : `If you select Yes, we'll install an extension that allows the CLI to access your open files and display diffs directly in ${ideName ?? "your editor"}.`;
14954
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
15052
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
14955
15053
  Box_default,
14956
15054
  {
14957
15055
  flexDirection: "column",
@@ -14961,14 +15059,14 @@ function IdeIntegrationNudge({
14961
15059
  width: "100%",
14962
15060
  marginLeft: 1,
14963
15061
  children: [
14964
- /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { marginBottom: 1, flexDirection: "column", children: [
14965
- /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { children: [
14966
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.status.warning, children: "> " }),
15062
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Box_default, { marginBottom: 1, flexDirection: "column", children: [
15063
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Text, { children: [
15064
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text, { color: theme.status.warning, children: "> " }),
14967
15065
  `Do you want to connect ${ideName ?? "your editor"} to Qwen Code?`
14968
15066
  ] }),
14969
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.secondary, children: installText })
15067
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text, { color: theme.text.secondary, children: installText })
14970
15068
  ] }),
14971
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(RadioButtonSelect, { items: OPTIONS, onSelect: onComplete })
15069
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(RadioButtonSelect, { items: OPTIONS, onSelect: onComplete })
14972
15070
  ]
14973
15071
  }
14974
15072
  );
@@ -14977,7 +15075,7 @@ __name(IdeIntegrationNudge, "IdeIntegrationNudge");
14977
15075
 
14978
15076
  // packages/cli/src/ui/CommandFormatMigrationNudge.tsx
14979
15077
  init_esbuild_shims();
14980
- var import_jsx_runtime34 = __toESM(require_jsx_runtime(), 1);
15078
+ var import_jsx_runtime35 = __toESM(require_jsx_runtime(), 1);
14981
15079
  function CommandFormatMigrationNudge({
14982
15080
  tomlFiles,
14983
15081
  onComplete
@@ -15011,7 +15109,7 @@ function CommandFormatMigrationNudge({
15011
15109
  const count = tomlFiles.length;
15012
15110
  const fileList = count <= 3 ? tomlFiles.map((f) => ` \u2022 ${f}`).join("\n") : ` \u2022 ${tomlFiles.slice(0, 2).join("\n \u2022 ")}
15013
15111
  \u2022 ${t("... and {{count}} more", { count: String(count - 2) })}`;
15014
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
15112
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
15015
15113
  Box_default,
15016
15114
  {
15017
15115
  flexDirection: "column",
@@ -15021,20 +15119,20 @@ function CommandFormatMigrationNudge({
15021
15119
  width: "100%",
15022
15120
  marginLeft: 1,
15023
15121
  children: [
15024
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Box_default, { marginBottom: 1, flexDirection: "column", children: [
15025
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Text, { children: [
15026
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text, { color: theme.status.warning, children: "\u26A0 " }),
15027
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text, { bold: true, children: t("Command Format Migration") })
15122
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Box_default, { marginBottom: 1, flexDirection: "column", children: [
15123
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Text, { children: [
15124
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.status.warning, children: "\u26A0 " }),
15125
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { bold: true, children: t("Command Format Migration") })
15028
15126
  ] }),
15029
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text, { color: theme.text.secondary, children: count > 1 ? t("Found {{count}} TOML command files:", { count: String(count) }) : t("Found {{count}} TOML command file:", { count: String(count) }) }),
15030
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text, { color: theme.text.secondary, children: fileList }),
15031
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text, { children: "" }),
15032
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text, { color: theme.text.secondary, children: t(
15127
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.text.secondary, children: count > 1 ? t("Found {{count}} TOML command files:", { count: String(count) }) : t("Found {{count}} TOML command file:", { count: String(count) }) }),
15128
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.text.secondary, children: fileList }),
15129
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { children: "" }),
15130
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.text.secondary, children: t(
15033
15131
  "The TOML format is deprecated. Would you like to migrate them to Markdown format?"
15034
15132
  ) }),
15035
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text, { color: theme.text.secondary, children: t("(Backups will be created and original files will be preserved)") })
15133
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.text.secondary, children: t("(Backups will be created and original files will be preserved)") })
15036
15134
  ] }),
15037
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(RadioButtonSelect, { items: OPTIONS, onSelect: onComplete })
15135
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(RadioButtonSelect, { items: OPTIONS, onSelect: onComplete })
15038
15136
  ]
15039
15137
  }
15040
15138
  );
@@ -15046,7 +15144,7 @@ init_esbuild_shims();
15046
15144
  var import_react35 = __toESM(require_react(), 1);
15047
15145
  import * as process3 from "node:process";
15048
15146
  import * as path3 from "node:path";
15049
- var import_jsx_runtime35 = __toESM(require_jsx_runtime(), 1);
15147
+ var import_jsx_runtime36 = __toESM(require_jsx_runtime(), 1);
15050
15148
  var FolderTrustDialog = /* @__PURE__ */ __name(({
15051
15149
  onSelect,
15052
15150
  isRestarting
@@ -15088,8 +15186,8 @@ var FolderTrustDialog = /* @__PURE__ */ __name(({
15088
15186
  key: "Don't trust (esc)"
15089
15187
  }
15090
15188
  ];
15091
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Box_default, { flexDirection: "column", children: [
15092
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
15189
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Box_default, { flexDirection: "column", children: [
15190
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
15093
15191
  Box_default,
15094
15192
  {
15095
15193
  flexDirection: "column",
@@ -15099,11 +15197,11 @@ var FolderTrustDialog = /* @__PURE__ */ __name(({
15099
15197
  width: "100%",
15100
15198
  marginLeft: 1,
15101
15199
  children: [
15102
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15103
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { bold: true, color: theme.text.primary, children: "Do you trust this folder?" }),
15104
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.text.primary, children: "Trusting a folder allows Qwen Code to execute commands it suggests. This is a security feature to prevent accidental execution in untrusted directories." })
15200
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15201
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { bold: true, color: theme.text.primary, children: "Do you trust this folder?" }),
15202
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { color: theme.text.primary, children: "Trusting a folder allows Qwen Code to execute commands it suggests. This is a security feature to prevent accidental execution in untrusted directories." })
15105
15203
  ] }),
15106
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
15204
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
15107
15205
  RadioButtonSelect,
15108
15206
  {
15109
15207
  items: options,
@@ -15114,13 +15212,13 @@ var FolderTrustDialog = /* @__PURE__ */ __name(({
15114
15212
  ]
15115
15213
  }
15116
15214
  ),
15117
- isRestarting && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Box_default, { marginLeft: 1, marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.status.warning, children: "Qwen Code is restarting to apply the trust changes..." }) })
15215
+ isRestarting && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Box_default, { marginLeft: 1, marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { color: theme.status.warning, children: "Qwen Code is restarting to apply the trust changes..." }) })
15118
15216
  ] });
15119
15217
  }, "FolderTrustDialog");
15120
15218
 
15121
15219
  // packages/cli/src/ui/components/mcp/MCPServerApprovalDialog.tsx
15122
15220
  init_esbuild_shims();
15123
- var import_jsx_runtime36 = __toESM(require_jsx_runtime(), 1);
15221
+ var import_jsx_runtime37 = __toESM(require_jsx_runtime(), 1);
15124
15222
  var MCPServerApprovalDialog = /* @__PURE__ */ __name(({ serverName, summary, source, pendingServers, remaining, onSelect }) => {
15125
15223
  useKeypress(
15126
15224
  (key) => {
@@ -15147,7 +15245,7 @@ var MCPServerApprovalDialog = /* @__PURE__ */ __name(({ serverName, summary, sou
15147
15245
  key: "reject"
15148
15246
  }
15149
15247
  ];
15150
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
15248
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
15151
15249
  Box_default,
15152
15250
  {
15153
15251
  flexDirection: "column",
@@ -15157,21 +15255,21 @@ var MCPServerApprovalDialog = /* @__PURE__ */ __name(({ serverName, summary, sou
15157
15255
  width: "100%",
15158
15256
  marginLeft: 1,
15159
15257
  children: [
15160
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15161
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { bold: true, color: theme.text.primary, children: `Untrusted MCP server in ${source}` }),
15162
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { color: theme.text.primary, children: `This workspace declares an MCP server. Approving lets Qwen Code start it and run its tools. Approval is bound to this exact configuration \u2014 if ${source} changes, you will be asked again.` })
15258
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15259
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { bold: true, color: theme.text.primary, children: `Untrusted MCP server in ${source}` }),
15260
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { color: theme.text.primary, children: `This workspace declares an MCP server. Approving lets Qwen Code start it and run its tools. Approval is bound to this exact configuration \u2014 if ${source} changes, you will be asked again.` })
15163
15261
  ] }),
15164
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15165
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Text, { color: theme.text.primary, children: [
15166
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { bold: true, children: serverName }),
15262
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15263
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Text, { color: theme.text.primary, children: [
15264
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { bold: true, children: serverName }),
15167
15265
  ` ${summary}`
15168
15266
  ] }),
15169
- remaining > 0 && /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
15170
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { color: theme.text.secondary, children: "Approve all will trust these servers:" }),
15171
- pendingServers.map((server) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { color: theme.text.secondary, children: ` ${server.name} ${server.summary}` }, server.name))
15267
+ remaining > 0 && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
15268
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { color: theme.text.secondary, children: "Approve all will trust these servers:" }),
15269
+ pendingServers.map((server) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { color: theme.text.secondary, children: ` ${server.name} ${server.summary}` }, server.name))
15172
15270
  ] })
15173
15271
  ] }),
15174
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(RadioButtonSelect, { items: options, onSelect, isFocused: true })
15272
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(RadioButtonSelect, { items: options, onSelect, isFocused: true })
15175
15273
  ]
15176
15274
  }
15177
15275
  ) });
@@ -15594,17 +15692,17 @@ function extensionUpdatesReducer(state, action) {
15594
15692
  __name(extensionUpdatesReducer, "extensionUpdatesReducer");
15595
15693
 
15596
15694
  // packages/cli/src/ui/components/views/ExtensionsList.tsx
15597
- var import_jsx_runtime37 = __toESM(require_jsx_runtime(), 1);
15695
+ var import_jsx_runtime38 = __toESM(require_jsx_runtime(), 1);
15598
15696
  var debugLogger8 = createDebugLogger("EXTENSIONS_LIST");
15599
15697
  var ExtensionsList = /* @__PURE__ */ __name(() => {
15600
15698
  const { extensionsUpdateState, commandContext } = useUIState();
15601
15699
  const extensions = commandContext.services.config?.getExtensions() || [];
15602
15700
  if (extensions.length === 0) {
15603
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { children: "No extensions installed." });
15701
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { children: "No extensions installed." });
15604
15702
  }
15605
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, marginBottom: 1, children: [
15606
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { children: "Installed extensions:" }),
15607
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Box_default, { flexDirection: "column", paddingLeft: 2, children: extensions.map((ext) => {
15703
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, marginBottom: 1, children: [
15704
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { children: "Installed extensions:" }),
15705
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Box_default, { flexDirection: "column", paddingLeft: 2, children: extensions.map((ext) => {
15608
15706
  const state = extensionsUpdateState.get(ext.name);
15609
15707
  const isActive = ext.isActive;
15610
15708
  const activeString = isActive ? "active" : "disabled";
@@ -15633,15 +15731,15 @@ var ExtensionsList = /* @__PURE__ */ __name(() => {
15633
15731
  debugLogger8.error(`Unhandled ExtensionUpdateState ${state}`);
15634
15732
  break;
15635
15733
  }
15636
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15637
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Text, { children: [
15638
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { color: "cyan", children: `${getExtensionDisplayName(ext, getCurrentLanguage())} (v${ext.version})` }),
15639
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { color: activeColor, children: ` - ${activeString}` }),
15640
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { color: stateColor, children: ` (${stateText})` })
15734
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15735
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Text, { children: [
15736
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { color: "cyan", children: `${getExtensionDisplayName(ext, getCurrentLanguage())} (v${ext.version})` }),
15737
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { color: activeColor, children: ` - ${activeString}` }),
15738
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { color: stateColor, children: ` (${stateText})` })
15641
15739
  ] }),
15642
- ext.resolvedSettings && ext.resolvedSettings.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 2, children: [
15643
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { children: "settings:" }),
15644
- ext.resolvedSettings.map((setting) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Text, { children: [
15740
+ ext.resolvedSettings && ext.resolvedSettings.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 2, children: [
15741
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { children: "settings:" }),
15742
+ ext.resolvedSettings.map((setting) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Text, { children: [
15645
15743
  "- ",
15646
15744
  setting.name,
15647
15745
  ": ",
@@ -15655,33 +15753,33 @@ var ExtensionsList = /* @__PURE__ */ __name(() => {
15655
15753
 
15656
15754
  // packages/cli/src/ui/components/views/SkillsList.tsx
15657
15755
  init_esbuild_shims();
15658
- var import_jsx_runtime38 = __toESM(require_jsx_runtime(), 1);
15756
+ var import_jsx_runtime39 = __toESM(require_jsx_runtime(), 1);
15659
15757
  var NAME_COLUMN = 24;
15660
15758
  function truncate(text, max) {
15661
15759
  if (text.length <= max) return text;
15662
15760
  return `${text.slice(0, Math.max(0, max - 1))}\u2026`;
15663
15761
  }
15664
15762
  __name(truncate, "truncate");
15665
- var SkillsList = /* @__PURE__ */ __name(({ skills }) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15666
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Available skills:") }),
15667
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Box_default, { height: 1 }),
15668
- skills.length > 0 ? skills.map((skill) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Box_default, { flexDirection: "row", children: [
15669
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Text, { color: theme.text.primary, children: [
15763
+ var SkillsList = /* @__PURE__ */ __name(({ skills }) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15764
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Available skills:") }),
15765
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Box_default, { height: 1 }),
15766
+ skills.length > 0 ? skills.map((skill) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Box_default, { flexDirection: "row", children: [
15767
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.primary, children: [
15670
15768
  " ",
15671
15769
  "- "
15672
15770
  ] }),
15673
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { bold: true, color: theme.text.accent, children: skill.description ? truncate(skill.name, NAME_COLUMN).padEnd(NAME_COLUMN) : skill.name }),
15674
- skill.description && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Text, { color: theme.text.secondary, children: [
15771
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Text, { bold: true, color: theme.text.accent, children: skill.description ? truncate(skill.name, NAME_COLUMN).padEnd(NAME_COLUMN) : skill.name }),
15772
+ skill.description && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.secondary, children: [
15675
15773
  " ",
15676
15774
  truncate(skill.description, 80)
15677
15775
  ] }),
15678
- skill.level && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Text, { color: theme.text.secondary, children: [
15776
+ skill.level && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.secondary, children: [
15679
15777
  " ",
15680
15778
  "(",
15681
15779
  levelLabel(skill.level),
15682
15780
  ")"
15683
15781
  ] })
15684
- ] }, skill.name)) : /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Text, { color: theme.text.primary, children: [
15782
+ ] }, skill.name)) : /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.primary, children: [
15685
15783
  " ",
15686
15784
  t("No skills available")
15687
15785
  ] })
@@ -15689,25 +15787,25 @@ var SkillsList = /* @__PURE__ */ __name(({ skills }) => /* @__PURE__ */ (0, impo
15689
15787
 
15690
15788
  // packages/cli/src/ui/components/views/ToolsList.tsx
15691
15789
  init_esbuild_shims();
15692
- var import_jsx_runtime39 = __toESM(require_jsx_runtime(), 1);
15790
+ var import_jsx_runtime40 = __toESM(require_jsx_runtime(), 1);
15693
15791
  var ToolsList = /* @__PURE__ */ __name(({
15694
15792
  tools,
15695
15793
  showDescriptions,
15696
15794
  contentWidth
15697
- }) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Box_default, { flexDirection: "column", children: [
15698
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Available Qwen Code CLI tools:") }),
15699
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Box_default, { height: 1 }),
15700
- tools.length > 0 ? tools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Box_default, { flexDirection: "row", children: [
15701
- /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.primary, children: [
15795
+ }) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", children: [
15796
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Available Qwen Code CLI tools:") }),
15797
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Box_default, { height: 1 }),
15798
+ tools.length > 0 ? tools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "row", children: [
15799
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { color: theme.text.primary, children: [
15702
15800
  " ",
15703
15801
  "- "
15704
15802
  ] }),
15705
- /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Box_default, { flexDirection: "column", children: [
15706
- /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { bold: true, color: theme.text.accent, children: [
15803
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", children: [
15804
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { bold: true, color: theme.text.accent, children: [
15707
15805
  tool.displayName,
15708
15806
  showDescriptions ? ` (${tool.name})` : ""
15709
15807
  ] }),
15710
- showDescriptions && tool.description && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
15808
+ showDescriptions && tool.description && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
15711
15809
  MarkdownDisplay,
15712
15810
  {
15713
15811
  contentWidth,
@@ -15716,7 +15814,7 @@ var ToolsList = /* @__PURE__ */ __name(({
15716
15814
  }
15717
15815
  )
15718
15816
  ] })
15719
- ] }, tool.name)) : /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.primary, children: [
15817
+ ] }, tool.name)) : /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { color: theme.text.primary, children: [
15720
15818
  " ",
15721
15819
  t("No tools available")
15722
15820
  ] })
@@ -15724,7 +15822,7 @@ var ToolsList = /* @__PURE__ */ __name(({
15724
15822
 
15725
15823
  // packages/cli/src/ui/components/views/McpStatus.tsx
15726
15824
  init_esbuild_shims();
15727
- var import_jsx_runtime40 = __toESM(require_jsx_runtime(), 1);
15825
+ var import_jsx_runtime41 = __toESM(require_jsx_runtime(), 1);
15728
15826
  var McpStatus = /* @__PURE__ */ __name(({
15729
15827
  servers,
15730
15828
  tools,
@@ -15740,19 +15838,19 @@ var McpStatus = /* @__PURE__ */ __name(({
15740
15838
  }) => {
15741
15839
  const serverNames = Object.keys(servers);
15742
15840
  if (serverNames.length === 0 && blockedServers.length === 0) {
15743
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { children: t("No MCP servers configured.") }) });
15841
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { children: t("No MCP servers configured.") }) });
15744
15842
  }
15745
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", children: [
15746
- discoveryInProgress && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15747
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.status.warning, children: t("\u25CC MCP servers are starting up ({{count}} initializing)...", {
15843
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", children: [
15844
+ discoveryInProgress && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15845
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.status.warning, children: t("\u25CC MCP servers are starting up ({{count}} initializing)...", {
15748
15846
  count: String(connectingServers.length)
15749
15847
  }) }),
15750
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.primary, children: t(
15848
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: t(
15751
15849
  "Note: First startup may take longer. Tool availability will update automatically."
15752
15850
  ) })
15753
15851
  ] }),
15754
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { bold: true, children: t("Configured MCP servers:") }),
15755
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Box_default, { height: 1 }),
15852
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { bold: true, children: t("Configured MCP servers:") }),
15853
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { height: 1 }),
15756
15854
  serverNames.map((serverName) => {
15757
15855
  const server = servers[serverName];
15758
15856
  const serverTools = tools.filter(
@@ -15807,140 +15905,140 @@ var McpStatus = /* @__PURE__ */ __name(({
15807
15905
  const serverAuthStatus = authStatus[serverName];
15808
15906
  let authStatusNode = null;
15809
15907
  if (serverAuthStatus === "authenticated") {
15810
- authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
15908
+ authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15811
15909
  " (",
15812
15910
  t("OAuth"),
15813
15911
  ")"
15814
15912
  ] });
15815
15913
  } else if (serverAuthStatus === "expired") {
15816
- authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { color: theme.status.error, children: [
15914
+ authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.status.error, children: [
15817
15915
  " (",
15818
15916
  t("OAuth expired"),
15819
15917
  ")"
15820
15918
  ] });
15821
15919
  } else if (serverAuthStatus === "unauthenticated") {
15822
- authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { color: theme.status.warning, children: [
15920
+ authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.status.warning, children: [
15823
15921
  " ",
15824
15922
  "(",
15825
15923
  t("OAuth not authenticated"),
15826
15924
  ")"
15827
15925
  ] });
15828
15926
  }
15829
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15830
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { children: [
15831
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { color: statusColor, children: [
15927
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15928
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { children: [
15929
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: statusColor, children: [
15832
15930
  statusIndicator,
15833
15931
  " "
15834
15932
  ] }),
15835
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { bold: true, children: serverDisplayName }),
15836
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
15933
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { bold: true, children: serverDisplayName }),
15934
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15837
15935
  " - ",
15838
15936
  statusText,
15839
15937
  status === "connected" /* CONNECTED */ && parts.length > 0 && ` (${parts.join(", ")})`
15840
15938
  ] }),
15841
15939
  authStatusNode
15842
15940
  ] }),
15843
- status === "connecting" /* CONNECTING */ && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
15941
+ status === "connecting" /* CONNECTING */ && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15844
15942
  " (",
15845
15943
  t("tools and prompts will appear when ready"),
15846
15944
  ")"
15847
15945
  ] }),
15848
- status === "disconnected" /* DISCONNECTED */ && toolCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
15946
+ status === "disconnected" /* DISCONNECTED */ && toolCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15849
15947
  "(",
15850
15948
  t("{{count}} tools cached", { count: String(toolCount) }),
15851
15949
  ")"
15852
15950
  ] }),
15853
- showDescriptions && server?.description && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.secondary, children: server.description.trim() }),
15854
- serverTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", marginLeft: 2, children: [
15855
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.primary, children: t("Tools:") }),
15951
+ showDescriptions && server?.description && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, children: server.description.trim() }),
15952
+ serverTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginLeft: 2, children: [
15953
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: t("Tools:") }),
15856
15954
  serverTools.map((tool) => {
15857
15955
  const schemaContent = showSchema && tool.schema && (tool.schema.parametersJsonSchema || tool.schema.parameters) ? JSON.stringify(
15858
15956
  tool.schema.parametersJsonSchema ?? tool.schema.parameters,
15859
15957
  null,
15860
15958
  2
15861
15959
  ) : null;
15862
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", children: [
15863
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
15960
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", children: [
15961
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15864
15962
  "- ",
15865
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.primary, children: tool.name })
15963
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: tool.name })
15866
15964
  ] }),
15867
- showDescriptions && tool.description && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.secondary, children: tool.description.trim() }) }),
15868
- schemaContent && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", marginLeft: 4, children: [
15869
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.secondary, children: t("Parameters:") }),
15870
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.secondary, children: schemaContent })
15965
+ showDescriptions && tool.description && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, children: tool.description.trim() }) }),
15966
+ schemaContent && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginLeft: 4, children: [
15967
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, children: t("Parameters:") }),
15968
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, children: schemaContent })
15871
15969
  ] })
15872
15970
  ] }, tool.name);
15873
15971
  })
15874
15972
  ] }),
15875
- serverPrompts.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", marginLeft: 2, children: [
15876
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.primary, children: t("Prompts:") }),
15877
- serverPrompts.map((prompt) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", children: [
15878
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
15973
+ serverPrompts.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginLeft: 2, children: [
15974
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: t("Prompts:") }),
15975
+ serverPrompts.map((prompt) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", children: [
15976
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15879
15977
  "- ",
15880
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.primary, children: prompt.name })
15978
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: prompt.name })
15881
15979
  ] }),
15882
- showDescriptions && prompt.description && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.primary, children: prompt.description.trim() }) })
15980
+ showDescriptions && prompt.description && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: prompt.description.trim() }) })
15883
15981
  ] }, prompt.name))
15884
15982
  ] })
15885
15983
  ] }, serverName);
15886
15984
  }),
15887
- blockedServers.map((server) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { marginBottom: 1, children: [
15888
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.status.error, children: "\u25CF " }),
15889
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { bold: true, children: [
15985
+ blockedServers.map((server) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { marginBottom: 1, children: [
15986
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.status.error, children: "\u25CF " }),
15987
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { bold: true, children: [
15890
15988
  server.name,
15891
15989
  server.extensionName ? ` ${t("(from {{extensionName}})", {
15892
15990
  extensionName: server.extensionName
15893
15991
  })}` : ""
15894
15992
  ] }),
15895
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
15993
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15896
15994
  " - ",
15897
15995
  t("Blocked")
15898
15996
  ] })
15899
15997
  ] }, server.name)),
15900
- showTips && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
15901
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.accent, children: t("\u2605 Tips:") }),
15902
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
15998
+ showTips && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
15999
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: t("\u2605 Tips:") }),
16000
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15903
16001
  " ",
15904
16002
  "- ",
15905
16003
  t("Use"),
15906
16004
  " ",
15907
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.accent, children: "/mcp desc" }),
16005
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "/mcp desc" }),
15908
16006
  " ",
15909
16007
  t("to show server and tool descriptions")
15910
16008
  ] }),
15911
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
16009
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15912
16010
  " ",
15913
16011
  "- ",
15914
16012
  t("Use"),
15915
16013
  " ",
15916
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.accent, children: "/mcp schema" }),
16014
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "/mcp schema" }),
15917
16015
  " ",
15918
16016
  t("to show tool parameter schemas")
15919
16017
  ] }),
15920
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
16018
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15921
16019
  " ",
15922
16020
  "- ",
15923
16021
  t("Use"),
15924
16022
  " ",
15925
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.accent, children: "/mcp nodesc" }),
16023
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "/mcp nodesc" }),
15926
16024
  " ",
15927
16025
  t("to hide descriptions")
15928
16026
  ] }),
15929
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
16027
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15930
16028
  " ",
15931
16029
  "- ",
15932
16030
  t("Use"),
15933
16031
  " ",
15934
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.accent, children: "/mcp" }),
16032
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "/mcp" }),
15935
16033
  " ",
15936
16034
  t("to authenticate with OAuth-enabled servers")
15937
16035
  ] }),
15938
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
16036
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15939
16037
  " ",
15940
16038
  "- ",
15941
16039
  t("Press"),
15942
16040
  " ",
15943
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.accent, children: "Ctrl+T" }),
16041
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "Ctrl+T" }),
15944
16042
  " ",
15945
16043
  t("to toggle tool descriptions on/off")
15946
16044
  ] })
@@ -15950,7 +16048,7 @@ var McpStatus = /* @__PURE__ */ __name(({
15950
16048
 
15951
16049
  // packages/cli/src/ui/components/views/ContextUsage.tsx
15952
16050
  init_esbuild_shims();
15953
- var import_jsx_runtime41 = __toESM(require_jsx_runtime(), 1);
16051
+ var import_jsx_runtime42 = __toESM(require_jsx_runtime(), 1);
15954
16052
  var FILLED = "\u2588";
15955
16053
  var BUFFER = "\u2592";
15956
16054
  var EMPTY = "\u2591";
@@ -15982,10 +16080,10 @@ var ProgressBar = /* @__PURE__ */ __name(({ usedPercentage, bufferPercentage, wi
15982
16080
  } else if (usedPercentage > 60) {
15983
16081
  usedColor = theme.status.warning;
15984
16082
  }
15985
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15986
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: usedColor, children: usedStr }),
15987
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, children: freeStr }),
15988
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.status.warning, children: bufferStr })
16083
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { children: [
16084
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: usedColor, children: usedStr }),
16085
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.secondary, children: freeStr }),
16086
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.status.warning, children: bufferStr })
15989
16087
  ] });
15990
16088
  }, "ProgressBar");
15991
16089
  function formatPercentage(tokens, contextWindowSize) {
@@ -16007,18 +16105,18 @@ var CategoryRow = /* @__PURE__ */ __name(({
16007
16105
  }) => {
16008
16106
  const percentageStr = formatPercentage(tokens, contextWindowSize);
16009
16107
  const tokenStr = `${formatTokens(tokens)} ${t("tokens")} (${percentageStr}%)`;
16010
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { width: CONTENT_WIDTH, children: [
16011
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { width: 2, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: symbolColor || theme.text.secondary, children: symbol }) }),
16012
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { width: 24, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: label }) }),
16013
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: isOverLimit ? theme.status.error : theme.text.secondary, children: tokenStr }) })
16108
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, children: [
16109
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 2, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: symbolColor || theme.text.secondary, children: symbol }) }),
16110
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 24, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.primary, children: label }) }),
16111
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: isOverLimit ? theme.status.error : theme.text.secondary, children: tokenStr }) })
16014
16112
  ] });
16015
16113
  }, "CategoryRow");
16016
16114
  var ThresholdRow = /* @__PURE__ */ __name(({ label, tokens, isCurrent, hint }) => {
16017
16115
  const tokenStr = `${formatTokens(tokens)} ${t("tokens")}`;
16018
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { width: CONTENT_WIDTH, children: [
16019
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { width: 2, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: isCurrent ? theme.status.warning : theme.text.secondary, children: isCurrent ? "\u25B6" : " " }) }),
16020
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { width: 22, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: label }) }),
16021
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.text.secondary, children: [
16116
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, children: [
16117
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 2, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: isCurrent ? theme.status.warning : theme.text.secondary, children: isCurrent ? "\u25B6" : " " }) }),
16118
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 22, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.primary, children: label }) }),
16119
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
16022
16120
  tokenStr,
16023
16121
  hint ? ` ${hint}` : ""
16024
16122
  ] }) })
@@ -16039,16 +16137,16 @@ function tierColor(tier) {
16039
16137
  }
16040
16138
  }
16041
16139
  __name(tierColor, "tierColor");
16042
- var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier }) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16043
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Compaction thresholds") }),
16044
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16140
+ var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier }) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16141
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Compaction thresholds") }),
16142
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16045
16143
  ThresholdRow,
16046
16144
  {
16047
16145
  label: t("Effective window"),
16048
16146
  tokens: thresholds.effectiveWindow
16049
16147
  }
16050
16148
  ),
16051
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16149
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16052
16150
  ThresholdRow,
16053
16151
  {
16054
16152
  label: t("Warn threshold"),
@@ -16056,7 +16154,7 @@ var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier })
16056
16154
  isCurrent: currentTier === "warn"
16057
16155
  }
16058
16156
  ),
16059
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16157
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16060
16158
  ThresholdRow,
16061
16159
  {
16062
16160
  label: t("Auto threshold"),
@@ -16064,7 +16162,7 @@ var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier })
16064
16162
  isCurrent: currentTier === "auto"
16065
16163
  }
16066
16164
  ),
16067
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16165
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16068
16166
  ThresholdRow,
16069
16167
  {
16070
16168
  label: t("Hard threshold"),
@@ -16072,22 +16170,22 @@ var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier })
16072
16170
  isCurrent: currentTier === "hard"
16073
16171
  }
16074
16172
  ),
16075
- /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { width: CONTENT_WIDTH, children: [
16076
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { width: 2, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { children: " " }) }),
16077
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { width: 22, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: t("Current tier") }) }),
16078
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { bold: true, color: tierColor(currentTier), children: currentTier }) })
16173
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, children: [
16174
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 2, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { children: " " }) }),
16175
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 22, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.primary, children: t("Current tier") }) }),
16176
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: tierColor(currentTier), children: currentTier }) })
16079
16177
  ] })
16080
16178
  ] }), "CompactionThresholds");
16081
16179
  var DETAIL_NAME_MAX_LEN = 30;
16082
16180
  var DetailRow = /* @__PURE__ */ __name(({ name, tokens }) => {
16083
16181
  const tokenStr = tokens > 0 ? `${formatTokens(tokens)} ${t("tokens")}` : `0 ${t("tokens")}`;
16084
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { width: CONTENT_WIDTH, paddingLeft: 2, children: [
16085
- /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.text.secondary, children: [
16182
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, paddingLeft: 2, children: [
16183
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
16086
16184
  "\u2514",
16087
16185
  " "
16088
16186
  ] }),
16089
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { width: 32, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.link, children: truncateName(name, DETAIL_NAME_MAX_LEN) }) }),
16090
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, children: tokenStr }) })
16187
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 32, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.link, children: truncateName(name, DETAIL_NAME_MAX_LEN) }) }),
16188
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.secondary, children: tokenStr }) })
16091
16189
  ] });
16092
16190
  }, "DetailRow");
16093
16191
  var ContextUsage = /* @__PURE__ */ __name(({
@@ -16118,7 +16216,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16118
16216
  const bTotal = b.tokens + (b.bodyTokens ?? 0);
16119
16217
  return bTotal - aTotal;
16120
16218
  });
16121
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
16219
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
16122
16220
  Box_default,
16123
16221
  {
16124
16222
  borderStyle: "round",
@@ -16127,12 +16225,12 @@ var ContextUsage = /* @__PURE__ */ __name(({
16127
16225
  paddingY: 1,
16128
16226
  paddingX: 2,
16129
16227
  children: [
16130
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Context Usage") }),
16131
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { height: 1 }),
16132
- !hasTokenCount ? /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [
16133
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.status.warning, italic: true, children: t("No API response yet. Send a message to see actual usage.") }) }),
16134
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Estimated pre-conversation overhead") }),
16135
- /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.text.secondary, children: [
16228
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Context Usage") }),
16229
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { height: 1 }),
16230
+ !hasTokenCount ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
16231
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.status.warning, italic: true, children: t("No API response yet. Send a message to see actual usage.") }) }),
16232
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Estimated pre-conversation overhead") }),
16233
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
16136
16234
  t("Model"),
16137
16235
  ": ",
16138
16236
  modelName,
@@ -16143,15 +16241,15 @@ var ContextUsage = /* @__PURE__ */ __name(({
16143
16241
  " ",
16144
16242
  t("tokens")
16145
16243
  ] }),
16146
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { height: 1 })
16147
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [
16148
- /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { width: CONTENT_WIDTH, marginBottom: 1, children: [
16149
- /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.text.secondary, children: [
16244
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { height: 1 })
16245
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
16246
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, marginBottom: 1, children: [
16247
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
16150
16248
  t("Model"),
16151
16249
  ": ",
16152
16250
  modelName
16153
16251
  ] }),
16154
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.text.secondary, children: [
16252
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
16155
16253
  t("Context window"),
16156
16254
  ": ",
16157
16255
  formatTokens(contextWindowSize),
@@ -16159,10 +16257,10 @@ var ContextUsage = /* @__PURE__ */ __name(({
16159
16257
  t("tokens")
16160
16258
  ] }) })
16161
16259
  ] }),
16162
- isEstimated && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.status.warning, italic: true, children: t(
16260
+ isEstimated && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.status.warning, italic: true, children: t(
16163
16261
  "Token usage is estimated until provider usage is received."
16164
16262
  ) }) }),
16165
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { width: CONTENT_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16263
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: CONTENT_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16166
16264
  ProgressBar,
16167
16265
  {
16168
16266
  usedPercentage: Math.min(percentage, 100),
@@ -16170,9 +16268,9 @@ var ContextUsage = /* @__PURE__ */ __name(({
16170
16268
  width: CONTENT_WIDTH
16171
16269
  }
16172
16270
  ) }),
16173
- isOverLimit && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.status.error, children: t("Context exceeds limit! Use /compress or /clear to reduce.") }) }),
16174
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { height: 1 }),
16175
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16271
+ isOverLimit && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.status.error, children: t("Context exceeds limit! Use /compress or /clear to reduce.") }) }),
16272
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { height: 1 }),
16273
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16176
16274
  CategoryRow,
16177
16275
  {
16178
16276
  symbol: FILLED,
@@ -16183,7 +16281,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16183
16281
  isOverLimit
16184
16282
  }
16185
16283
  ),
16186
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16284
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16187
16285
  CategoryRow,
16188
16286
  {
16189
16287
  symbol: EMPTY,
@@ -16193,7 +16291,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16193
16291
  symbolColor: theme.text.secondary
16194
16292
  }
16195
16293
  ),
16196
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16294
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16197
16295
  CategoryRow,
16198
16296
  {
16199
16297
  symbol: BUFFER,
@@ -16203,10 +16301,10 @@ var ContextUsage = /* @__PURE__ */ __name(({
16203
16301
  symbolColor: theme.status.warning
16204
16302
  }
16205
16303
  ),
16206
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { height: 1 }),
16207
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Usage by category") })
16304
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { height: 1 }),
16305
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Usage by category") })
16208
16306
  ] }),
16209
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16307
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16210
16308
  CategoryRow,
16211
16309
  {
16212
16310
  symbol: FILLED,
@@ -16216,7 +16314,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16216
16314
  symbolColor: theme.text.accent
16217
16315
  }
16218
16316
  ),
16219
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16317
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16220
16318
  CategoryRow,
16221
16319
  {
16222
16320
  symbol: FILLED,
@@ -16226,7 +16324,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16226
16324
  symbolColor: theme.text.accent
16227
16325
  }
16228
16326
  ),
16229
- breakdown.mcpTools > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16327
+ breakdown.mcpTools > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16230
16328
  CategoryRow,
16231
16329
  {
16232
16330
  symbol: FILLED,
@@ -16236,7 +16334,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16236
16334
  symbolColor: theme.text.accent
16237
16335
  }
16238
16336
  ),
16239
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16337
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16240
16338
  CategoryRow,
16241
16339
  {
16242
16340
  symbol: FILLED,
@@ -16246,7 +16344,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16246
16344
  symbolColor: theme.text.accent
16247
16345
  }
16248
16346
  ),
16249
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16347
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16250
16348
  CategoryRow,
16251
16349
  {
16252
16350
  symbol: FILLED,
@@ -16256,7 +16354,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16256
16354
  symbolColor: theme.text.accent
16257
16355
  }
16258
16356
  ),
16259
- hasTokenCount && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16357
+ hasTokenCount && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16260
16358
  CategoryRow,
16261
16359
  {
16262
16360
  symbol: FILLED,
@@ -16266,17 +16364,17 @@ var ContextUsage = /* @__PURE__ */ __name(({
16266
16364
  symbolColor: theme.text.accent
16267
16365
  }
16268
16366
  ),
16269
- breakdown.thresholds && breakdown.currentTier && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16367
+ breakdown.thresholds && breakdown.currentTier && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16270
16368
  CompactionThresholds,
16271
16369
  {
16272
16370
  thresholds: breakdown.thresholds,
16273
16371
  currentTier: breakdown.currentTier
16274
16372
  }
16275
16373
  ),
16276
- showDetails ? /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [
16277
- sortedBuiltinTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16278
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Built-in tools") }),
16279
- sortedBuiltinTools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16374
+ showDetails ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
16375
+ sortedBuiltinTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16376
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Built-in tools") }),
16377
+ sortedBuiltinTools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16280
16378
  DetailRow,
16281
16379
  {
16282
16380
  name: tool.name,
@@ -16285,9 +16383,9 @@ var ContextUsage = /* @__PURE__ */ __name(({
16285
16383
  tool.name
16286
16384
  ))
16287
16385
  ] }),
16288
- sortedMcpTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16289
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { bold: true, color: theme.text.primary, children: t("MCP tools") }),
16290
- sortedMcpTools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16386
+ sortedMcpTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16387
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("MCP tools") }),
16388
+ sortedMcpTools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16291
16389
  DetailRow,
16292
16390
  {
16293
16391
  name: tool.name,
@@ -16296,9 +16394,9 @@ var ContextUsage = /* @__PURE__ */ __name(({
16296
16394
  tool.name
16297
16395
  ))
16298
16396
  ] }),
16299
- sortedMemoryFiles.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16300
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Memory files") }),
16301
- sortedMemoryFiles.map((file) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16397
+ sortedMemoryFiles.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16398
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Memory files") }),
16399
+ sortedMemoryFiles.map((file) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16302
16400
  DetailRow,
16303
16401
  {
16304
16402
  name: file.path,
@@ -16307,34 +16405,34 @@ var ContextUsage = /* @__PURE__ */ __name(({
16307
16405
  file.path
16308
16406
  ))
16309
16407
  ] }),
16310
- sortedSkills.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16311
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Skills") }),
16312
- sortedSkills.map((skill) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", children: [
16313
- /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { width: CONTENT_WIDTH, paddingLeft: 2, children: [
16314
- /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.text.secondary, children: [
16408
+ sortedSkills.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16409
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Skills") }),
16410
+ sortedSkills.map((skill) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", children: [
16411
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, paddingLeft: 2, children: [
16412
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
16315
16413
  "\u2514",
16316
16414
  " "
16317
16415
  ] }),
16318
- /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { width: 32, children: [
16319
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.link, children: truncateName(skill.name, DETAIL_NAME_MAX_LEN) }),
16320
- skill.loaded && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.status.success, children: [
16416
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: 32, children: [
16417
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.link, children: truncateName(skill.name, DETAIL_NAME_MAX_LEN) }),
16418
+ skill.loaded && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.status.success, children: [
16321
16419
  " ",
16322
16420
  t("active")
16323
16421
  ] })
16324
16422
  ] }),
16325
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.text.secondary, children: [
16423
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
16326
16424
  formatTokens(skill.tokens),
16327
16425
  " ",
16328
16426
  t("tokens")
16329
16427
  ] }) })
16330
16428
  ] }),
16331
- skill.loaded && skill.bodyTokens != null && skill.bodyTokens > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { width: CONTENT_WIDTH, paddingLeft: 4, children: [
16332
- /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.text.secondary, children: [
16429
+ skill.loaded && skill.bodyTokens != null && skill.bodyTokens > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, paddingLeft: 4, children: [
16430
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
16333
16431
  " \u2514",
16334
16432
  " "
16335
16433
  ] }),
16336
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { width: 30, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, italic: true, children: t("body loaded") }) }),
16337
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.status.success, children: [
16434
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 30, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.secondary, italic: true, children: t("body loaded") }) }),
16435
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.status.success, children: [
16338
16436
  "+",
16339
16437
  formatTokens(skill.bodyTokens),
16340
16438
  " ",
@@ -16343,7 +16441,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16343
16441
  ] })
16344
16442
  ] }, skill.name))
16345
16443
  ] })
16346
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, italic: true, children: t("Run /context detail for per-item breakdown.") }) })
16444
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.secondary, italic: true, children: t("Run /context detail for per-item breakdown.") }) })
16347
16445
  ]
16348
16446
  }
16349
16447
  );
@@ -16351,7 +16449,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16351
16449
 
16352
16450
  // packages/cli/src/ui/components/views/DoctorReport.tsx
16353
16451
  init_esbuild_shims();
16354
- var import_jsx_runtime42 = __toESM(require_jsx_runtime(), 1);
16452
+ var import_jsx_runtime43 = __toESM(require_jsx_runtime(), 1);
16355
16453
  var STATUS_ICONS2 = {
16356
16454
  pass: "\u2713",
16357
16455
  // checkmark
@@ -16394,7 +16492,7 @@ var DoctorReport = /* @__PURE__ */ __name(({
16394
16492
  const groups = groupByCategory(checks);
16395
16493
  const categoryEntries = Array.from(groups.entries());
16396
16494
  const nameColWidth = Math.max(20, ...checks.map((c) => c.name.length + 2));
16397
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
16495
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
16398
16496
  Box_default,
16399
16497
  {
16400
16498
  borderStyle: "round",
@@ -16404,26 +16502,26 @@ var DoctorReport = /* @__PURE__ */ __name(({
16404
16502
  paddingX: 2,
16405
16503
  width,
16406
16504
  children: [
16407
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Doctor Report") }),
16408
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { height: 1 }),
16409
- categoryEntries.map(([category, items], groupIdx) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
16505
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Doctor Report") }),
16506
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { height: 1 }),
16507
+ categoryEntries.map(([category, items], groupIdx) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
16410
16508
  Box_default,
16411
16509
  {
16412
16510
  flexDirection: "column",
16413
16511
  marginTop: groupIdx > 0 ? 1 : 0,
16414
16512
  children: [
16415
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.link, children: category }),
16416
- items.map((check) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", children: [
16417
- /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "row", children: [
16418
- /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: getStatusColor2(check.status), children: [
16513
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { bold: true, color: theme.text.link, children: category }),
16514
+ items.map((check) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { flexDirection: "column", children: [
16515
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { flexDirection: "row", children: [
16516
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: getStatusColor2(check.status), children: [
16419
16517
  " ",
16420
16518
  STATUS_ICONS2[check.status],
16421
16519
  " "
16422
16520
  ] }),
16423
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: nameColWidth, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.primary, children: check.name }) }),
16424
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { dimColor: true, children: check.message })
16521
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { width: nameColWidth, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color: theme.text.primary, children: check.name }) }),
16522
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { dimColor: true, children: check.message })
16425
16523
  ] }),
16426
- check.detail && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { marginLeft: 6, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { dimColor: true, children: [
16524
+ check.detail && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { marginLeft: 6, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { dimColor: true, children: [
16427
16525
  "-> ",
16428
16526
  check.detail
16429
16527
  ] }) })
@@ -16432,21 +16530,21 @@ var DoctorReport = /* @__PURE__ */ __name(({
16432
16530
  },
16433
16531
  category
16434
16532
  )),
16435
- /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { marginTop: 1, children: [
16436
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { dimColor: true, children: "-- " }),
16437
- /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.status.success, children: [
16533
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { marginTop: 1, children: [
16534
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { dimColor: true, children: "-- " }),
16535
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.status.success, children: [
16438
16536
  summary.pass,
16439
16537
  " ",
16440
16538
  t("passed")
16441
16539
  ] }),
16442
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { dimColor: true, children: ", " }),
16443
- /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.status.warning, children: [
16540
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { dimColor: true, children: ", " }),
16541
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.status.warning, children: [
16444
16542
  summary.warn,
16445
16543
  " ",
16446
16544
  t("warnings")
16447
16545
  ] }),
16448
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { dimColor: true, children: ", " }),
16449
- /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.status.error, children: [
16546
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { dimColor: true, children: ", " }),
16547
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.status.error, children: [
16450
16548
  summary.fail,
16451
16549
  " ",
16452
16550
  t("failures")
@@ -16459,7 +16557,7 @@ var DoctorReport = /* @__PURE__ */ __name(({
16459
16557
 
16460
16558
  // packages/cli/src/ui/components/arena/ArenaCards.tsx
16461
16559
  init_esbuild_shims();
16462
- var import_jsx_runtime43 = __toESM(require_jsx_runtime(), 1);
16560
+ var import_jsx_runtime44 = __toESM(require_jsx_runtime(), 1);
16463
16561
  var ArenaAgentCard = /* @__PURE__ */ __name(({
16464
16562
  agent,
16465
16563
  width
@@ -16469,8 +16567,8 @@ var ArenaAgentCard = /* @__PURE__ */ __name(({
16469
16567
  const tokens = agent.totalTokens.toLocaleString();
16470
16568
  const inTokens = agent.inputTokens.toLocaleString();
16471
16569
  const outTokens = agent.outputTokens.toLocaleString();
16472
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { flexDirection: "column", width, children: [
16473
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color, children: [
16570
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", width, children: [
16571
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color, children: [
16474
16572
  icon,
16475
16573
  " ",
16476
16574
  agent.label,
@@ -16479,7 +16577,7 @@ var ArenaAgentCard = /* @__PURE__ */ __name(({
16479
16577
  " \xB7 ",
16480
16578
  duration
16481
16579
  ] }) }),
16482
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.text.secondary, children: [
16580
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
16483
16581
  "Tokens: ",
16484
16582
  tokens,
16485
16583
  " (in ",
@@ -16488,25 +16586,25 @@ var ArenaAgentCard = /* @__PURE__ */ __name(({
16488
16586
  outTokens,
16489
16587
  ")"
16490
16588
  ] }) }),
16491
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.text.secondary, children: [
16589
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
16492
16590
  "Tool Calls: ",
16493
16591
  agent.toolCalls,
16494
- agent.failedToolCalls > 0 && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [
16592
+ agent.failedToolCalls > 0 && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, { children: [
16495
16593
  " ",
16496
16594
  "(",
16497
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.status.success, children: [
16595
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.success, children: [
16498
16596
  "\u2713 ",
16499
16597
  agent.successfulToolCalls
16500
16598
  ] }),
16501
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color: theme.text.secondary, children: " " }),
16502
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.status.error, children: [
16599
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: " " }),
16600
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.error, children: [
16503
16601
  "\u2715 ",
16504
16602
  agent.failedToolCalls
16505
16603
  ] }),
16506
16604
  ")"
16507
16605
  ] })
16508
16606
  ] }) }),
16509
- agent.error && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color: theme.status.error, children: agent.error }) })
16607
+ agent.error && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.status.error, children: agent.error }) })
16510
16608
  ] });
16511
16609
  }, "ArenaAgentCard");
16512
16610
  function getDiffStats(diff, diffSummary) {
@@ -16573,7 +16671,7 @@ var ArenaSessionCard = /* @__PURE__ */ __name(({
16573
16671
  width
16574
16672
  }) => {
16575
16673
  const titleLabel = sessionStatus === "idle" || sessionStatus === "completed" ? "Arena Comparison Summary" : sessionStatus === "cancelled" ? "Arena Cancelled" : "Arena Failed";
16576
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
16674
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
16577
16675
  Box_default,
16578
16676
  {
16579
16677
  borderStyle: "round",
@@ -16583,91 +16681,91 @@ var ArenaSessionCard = /* @__PURE__ */ __name(({
16583
16681
  paddingY: 1,
16584
16682
  width,
16585
16683
  children: [
16586
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { bold: true, color: theme.text.primary, children: titleLabel }) }),
16587
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { height: 1 }),
16588
- (sessionStatus === "idle" || sessionStatus === "completed") && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [
16589
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { flexDirection: "column", children: [
16590
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { bold: true, color: theme.text.primary, children: "Status Summary:" }),
16684
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: titleLabel }) }),
16685
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
16686
+ (sessionStatus === "idle" || sessionStatus === "completed") && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, { children: [
16687
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", children: [
16688
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: "Status Summary:" }),
16591
16689
  agents.map((agent, index) => {
16592
16690
  const { text: statusText, color } = getArenaStatusLabel(
16593
16691
  agent.status
16594
16692
  );
16595
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { marginLeft: 2, children: [
16596
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.text.secondary, children: [
16693
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { marginLeft: 2, children: [
16694
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
16597
16695
  index === agents.length - 1 ? "\u2514\u2500" : "\u251C\u2500",
16598
16696
  " ",
16599
16697
  agent.label,
16600
16698
  ":",
16601
16699
  " "
16602
16700
  ] }),
16603
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color, children: statusText })
16701
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color, children: statusText })
16604
16702
  ] }, agent.label);
16605
16703
  })
16606
16704
  ] }),
16607
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { height: 1 }),
16608
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { flexDirection: "column", children: [
16609
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { bold: true, color: theme.text.primary, children: "Files Modified:" }),
16610
- getComparisonFileGroups(agents).map((group, index, groups) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { marginLeft: 2, children: [
16611
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.text.secondary, children: [
16705
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
16706
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", children: [
16707
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: "Files Modified:" }),
16708
+ getComparisonFileGroups(agents).map((group, index, groups) => /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { marginLeft: 2, children: [
16709
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
16612
16710
  getTreeBranch(index, groups.length),
16613
16711
  " ",
16614
16712
  group.label,
16615
16713
  ":",
16616
16714
  " "
16617
16715
  ] }),
16618
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color: theme.text.primary, children: formatFileList(group.files) })
16716
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.primary, children: formatFileList(group.files) })
16619
16717
  ] }, group.label))
16620
16718
  ] }),
16621
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { height: 1 }),
16622
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { flexDirection: "column", children: [
16623
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { bold: true, color: theme.text.primary, children: "Approach Summary:" }),
16719
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
16720
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", children: [
16721
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: "Approach Summary:" }),
16624
16722
  agents.map((agent, index) => {
16625
16723
  const diffStats = getDiffStats(agent.diff, agent.diffSummary);
16626
16724
  const files = getAgentFiles(agent).length;
16627
16725
  const branch = index === agents.length - 1 ? "\u2514\u2500" : "\u251C\u2500";
16628
16726
  const summary = agent.approachSummary ?? "No approach summary available.";
16629
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { children: [
16630
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.text.secondary, children: [
16727
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { children: [
16728
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
16631
16729
  branch,
16632
16730
  " ",
16633
16731
  agent.label,
16634
16732
  ":",
16635
16733
  " "
16636
16734
  ] }),
16637
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.text.primary, children: [
16735
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.primary, children: [
16638
16736
  summary,
16639
16737
  " "
16640
16738
  ] }),
16641
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color: theme.text.secondary, children: "(" }),
16642
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color: theme.text.accent, children: files }),
16643
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color: theme.text.secondary, children: files === 1 ? " file, " : " files, " }),
16644
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.status.success, children: [
16739
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: "(" }),
16740
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.accent, children: files }),
16741
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: files === 1 ? " file, " : " files, " }),
16742
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.success, children: [
16645
16743
  "+",
16646
16744
  diffStats.additions
16647
16745
  ] }),
16648
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color: theme.text.secondary, children: " " }),
16649
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.status.error, children: [
16746
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: " " }),
16747
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.error, children: [
16650
16748
  "-",
16651
16749
  diffStats.deletions
16652
16750
  ] }),
16653
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color: theme.text.secondary, children: " lines, " }),
16654
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color: theme.text.accent, children: agent.toolCalls }),
16655
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color: theme.text.secondary, children: agent.toolCalls === 1 ? " tool call)" : " tool calls)" })
16751
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: " lines, " }),
16752
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.accent, children: agent.toolCalls }),
16753
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: agent.toolCalls === 1 ? " tool call)" : " tool calls)" })
16656
16754
  ] }) }, agent.label);
16657
16755
  })
16658
16756
  ] }),
16659
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { height: 1 }),
16660
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { flexDirection: "column", children: [
16661
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { bold: true, color: theme.text.primary, children: "Token Efficiency:" }),
16662
- agents.map((agent, index) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { marginLeft: 2, children: [
16663
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.text.secondary, children: [
16757
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
16758
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", children: [
16759
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: "Token Efficiency:" }),
16760
+ agents.map((agent, index) => /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { marginLeft: 2, children: [
16761
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
16664
16762
  index === agents.length - 1 ? "\u2514\u2500" : "\u251C\u2500",
16665
16763
  " ",
16666
16764
  agent.label,
16667
16765
  ":",
16668
16766
  " "
16669
16767
  ] }),
16670
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.text.primary, children: [
16768
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.primary, children: [
16671
16769
  agent.outputTokens.toLocaleString(),
16672
16770
  " tokens \xB7 runtime",
16673
16771
  " ",
@@ -16676,15 +16774,15 @@ var ArenaSessionCard = /* @__PURE__ */ __name(({
16676
16774
  ] }, agent.label))
16677
16775
  ] })
16678
16776
  ] }),
16679
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { height: 1 }),
16680
- sessionStatus === "idle" && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.text.secondary, children: [
16777
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
16778
+ sessionStatus === "idle" && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
16681
16779
  "Run ",
16682
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color: theme.text.accent, children: "/arena select" }),
16780
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.accent, children: "/arena select" }),
16683
16781
  " to view detailed diff or pick a winner."
16684
16782
  ] }) }),
16685
- sessionStatus === "completed" && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.text.secondary, children: [
16783
+ sessionStatus === "completed" && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
16686
16784
  "Run ",
16687
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color: theme.text.accent, children: "/arena select" }),
16785
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.accent, children: "/arena select" }),
16688
16786
  " to pick a winner."
16689
16787
  ] }) })
16690
16788
  ]
@@ -16694,7 +16792,7 @@ var ArenaSessionCard = /* @__PURE__ */ __name(({
16694
16792
 
16695
16793
  // packages/cli/src/ui/components/messages/InsightProgressMessage.tsx
16696
16794
  init_esbuild_shims();
16697
- var import_jsx_runtime44 = __toESM(require_jsx_runtime(), 1);
16795
+ var import_jsx_runtime45 = __toESM(require_jsx_runtime(), 1);
16698
16796
  var InsightProgressMessage = /* @__PURE__ */ __name(({
16699
16797
  progress
16700
16798
  }) => {
@@ -16704,28 +16802,28 @@ var InsightProgressMessage = /* @__PURE__ */ __name(({
16704
16802
  const remainingWidth = width - completedWidth;
16705
16803
  const bar = "\u2588".repeat(Math.max(0, completedWidth)) + "\u2591".repeat(Math.max(0, remainingWidth));
16706
16804
  if (error) {
16707
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", children: [
16708
- /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.error, children: [
16805
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Box_default, { flexDirection: "column", children: [
16806
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Text, { color: theme.status.error, children: [
16709
16807
  "\u2715 ",
16710
16808
  stage
16711
16809
  ] }),
16712
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: error })
16810
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { color: theme.text.secondary, children: error })
16713
16811
  ] });
16714
16812
  }
16715
16813
  if (isComplete) {
16716
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { flexDirection: "row", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.success, children: [
16814
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Box_default, { flexDirection: "row", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Text, { color: theme.status.success, children: [
16717
16815
  "\u2713 ",
16718
16816
  stage
16719
16817
  ] }) });
16720
16818
  }
16721
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "row", children: [
16722
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.accent, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(build_default, { type: "dots" }) }),
16723
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { children: " " }),
16724
- /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
16819
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Box_default, { flexDirection: "row", children: [
16820
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { color: theme.text.accent, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(build_default, { type: "dots" }) }),
16821
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { children: " " }),
16822
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Text, { color: theme.text.secondary, children: [
16725
16823
  bar,
16726
16824
  " "
16727
16825
  ] }),
16728
- /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.accent, children: [
16826
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Text, { color: theme.text.accent, children: [
16729
16827
  stage,
16730
16828
  progress.detail ? ` (${progress.detail})` : ""
16731
16829
  ] })
@@ -16735,7 +16833,7 @@ var InsightProgressMessage = /* @__PURE__ */ __name(({
16735
16833
  // packages/cli/src/ui/components/messages/BtwMessage.tsx
16736
16834
  init_esbuild_shims();
16737
16835
  var import_react41 = __toESM(require_react(), 1);
16738
- var import_jsx_runtime45 = __toESM(require_jsx_runtime(), 1);
16836
+ var import_jsx_runtime46 = __toESM(require_jsx_runtime(), 1);
16739
16837
  var BTW_SELF_CHROME = 4;
16740
16838
  function normalizeCodeFences(text) {
16741
16839
  return text.replace(/([^\n])(```|~~~)/g, "$1\n$2");
@@ -16748,7 +16846,7 @@ var BtwMessageInternal = /* @__PURE__ */ __name(({
16748
16846
  const { columns: terminalWidth } = useTerminalSize();
16749
16847
  const baseWidth = containerWidth ?? terminalWidth;
16750
16848
  const contentWidth = Math.max(2, baseWidth - BTW_SELF_CHROME);
16751
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
16849
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
16752
16850
  Box_default,
16753
16851
  {
16754
16852
  flexDirection: "column",
@@ -16757,18 +16855,18 @@ var BtwMessageInternal = /* @__PURE__ */ __name(({
16757
16855
  paddingX: 1,
16758
16856
  width: "100%",
16759
16857
  children: [
16760
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Box_default, { flexDirection: "row", children: [
16761
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { color: Colors.AccentYellow, bold: true, children: "/btw " }),
16762
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { wrap: "wrap", color: Colors.AccentYellow, children: btw.question })
16858
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { flexDirection: "row", children: [
16859
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { color: Colors.AccentYellow, bold: true, children: "/btw " }),
16860
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { wrap: "wrap", color: Colors.AccentYellow, children: btw.question })
16763
16861
  ] }),
16764
- btw.isPending ? /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16765
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Box_default, { children: [
16766
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { color: Colors.AccentYellow, children: "+ " }),
16767
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { color: Colors.AccentYellow, children: t("Answering...") })
16862
+ btw.isPending ? /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16863
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { children: [
16864
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { color: Colors.AccentYellow, children: "+ " }),
16865
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { color: Colors.AccentYellow, children: t("Answering...") })
16768
16866
  ] }),
16769
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { dimColor: true, children: t("Press Escape, Ctrl+C, or Ctrl+D to cancel") }) })
16770
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16771
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
16867
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { dimColor: true, children: t("Press Escape, Ctrl+C, or Ctrl+D to cancel") }) })
16868
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16869
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
16772
16870
  MarkdownDisplay,
16773
16871
  {
16774
16872
  text: normalizeCodeFences(btw.answer),
@@ -16776,7 +16874,7 @@ var BtwMessageInternal = /* @__PURE__ */ __name(({
16776
16874
  contentWidth
16777
16875
  }
16778
16876
  ),
16779
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { dimColor: true, children: t("Press Space, Enter, or Escape to dismiss") }) })
16877
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { dimColor: true, children: t("Press Space, Enter, or Escape to dismiss") }) })
16780
16878
  ] })
16781
16879
  ]
16782
16880
  }
@@ -16787,7 +16885,7 @@ var BtwMessage = import_react41.default.memo(BtwMessageInternal);
16787
16885
  // packages/cli/src/ui/components/messages/AdvisorMessage.tsx
16788
16886
  init_esbuild_shims();
16789
16887
  var import_react42 = __toESM(require_react(), 1);
16790
- var import_jsx_runtime46 = __toESM(require_jsx_runtime(), 1);
16888
+ var import_jsx_runtime47 = __toESM(require_jsx_runtime(), 1);
16791
16889
  var ADVISOR_SELF_CHROME = 4;
16792
16890
  var AdvisorMessageInternal = /* @__PURE__ */ __name(({
16793
16891
  text,
@@ -16797,7 +16895,7 @@ var AdvisorMessageInternal = /* @__PURE__ */ __name(({
16797
16895
  const { columns: terminalWidth } = useTerminalSize();
16798
16896
  const baseWidth = containerWidth ?? terminalWidth;
16799
16897
  const contentWidth = Math.max(2, baseWidth - ADVISOR_SELF_CHROME);
16800
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
16898
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
16801
16899
  Box_default,
16802
16900
  {
16803
16901
  flexDirection: "column",
@@ -16806,11 +16904,11 @@ var AdvisorMessageInternal = /* @__PURE__ */ __name(({
16806
16904
  paddingX: 1,
16807
16905
  width: "100%",
16808
16906
  children: [
16809
- /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { flexDirection: "row", children: [
16810
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { color: Colors.AccentCyan, bold: true, children: "/advisor" }),
16811
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { color: Colors.AccentCyan, children: ` \xB7 ${model}` })
16907
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(Box_default, { flexDirection: "row", children: [
16908
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Text, { color: Colors.AccentCyan, bold: true, children: "/advisor" }),
16909
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Text, { color: Colors.AccentCyan, children: ` \xB7 ${model}` })
16812
16910
  ] }),
16813
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Box_default, { flexDirection: "column", marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
16911
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Box_default, { flexDirection: "column", marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
16814
16912
  MarkdownDisplay,
16815
16913
  {
16816
16914
  text,
@@ -16826,16 +16924,16 @@ var AdvisorMessage = import_react42.default.memo(AdvisorMessageInternal);
16826
16924
 
16827
16925
  // packages/cli/src/ui/components/messages/MemorySavedMessage.tsx
16828
16926
  init_esbuild_shims();
16829
- var import_jsx_runtime47 = __toESM(require_jsx_runtime(), 1);
16927
+ var import_jsx_runtime48 = __toESM(require_jsx_runtime(), 1);
16830
16928
  var MemorySavedMessage = /* @__PURE__ */ __name(({
16831
16929
  item
16832
16930
  }) => {
16833
16931
  const verb = item.verb ?? "Saved";
16834
16932
  const n = item.writtenCount;
16835
16933
  const label = n === 1 ? "memory" : "memories";
16836
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(Box_default, { flexDirection: "row", children: [
16837
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Text, { dimColor: true, children: ICON.CIRCLE_FILLED }) }),
16838
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(Text, { dimColor: true, children: [
16934
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Box_default, { flexDirection: "row", children: [
16935
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Text, { dimColor: true, children: ICON.CIRCLE_FILLED }) }),
16936
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Text, { dimColor: true, children: [
16839
16937
  verb,
16840
16938
  " ",
16841
16939
  n,
@@ -16847,28 +16945,28 @@ var MemorySavedMessage = /* @__PURE__ */ __name(({
16847
16945
 
16848
16946
  // packages/cli/src/ui/components/messages/DiffStatsDisplay.tsx
16849
16947
  init_esbuild_shims();
16850
- var import_jsx_runtime48 = __toESM(require_jsx_runtime(), 1);
16948
+ var import_jsx_runtime49 = __toESM(require_jsx_runtime(), 1);
16851
16949
  var DiffStatsDisplay = /* @__PURE__ */ __name(({
16852
16950
  model
16853
16951
  }) => {
16854
16952
  const { filesCount, linesAdded, linesRemoved, rows, hiddenCount } = model;
16855
16953
  const { addWidth, remWidth, statColumnWidth } = computeDiffColumnWidths(rows);
16856
16954
  const headerLabel = filesCount === 1 ? t("{{count}} file changed", { count: String(filesCount) }) : t("{{count}} files changed", { count: String(filesCount) });
16857
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Box_default, { flexDirection: "column", children: [
16858
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Text, { children: [
16859
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Text, { color: theme.text.primary, children: headerLabel }),
16860
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Text, { color: theme.text.secondary, children: ", " }),
16861
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Text, { color: theme.status.success, children: [
16955
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Box_default, { flexDirection: "column", children: [
16956
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { children: [
16957
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: headerLabel }),
16958
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.secondary, children: ", " }),
16959
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.status.success, children: [
16862
16960
  "+",
16863
16961
  linesAdded
16864
16962
  ] }),
16865
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Text, { color: theme.text.secondary, children: " / " }),
16866
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Text, { color: theme.status.error, children: [
16963
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.secondary, children: " / " }),
16964
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.status.error, children: [
16867
16965
  "-",
16868
16966
  linesRemoved
16869
16967
  ] })
16870
16968
  ] }),
16871
- rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
16969
+ rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
16872
16970
  DiffRow,
16873
16971
  {
16874
16972
  row,
@@ -16878,7 +16976,7 @@ var DiffStatsDisplay = /* @__PURE__ */ __name(({
16878
16976
  },
16879
16977
  row.filename
16880
16978
  )),
16881
- hiddenCount > 0 && rows.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Text, { color: theme.text.secondary, children: [
16979
+ hiddenCount > 0 && rows.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
16882
16980
  " ",
16883
16981
  t("\u2026and {{hidden}} more (showing first {{shown}})", {
16884
16982
  hidden: String(hiddenCount),
@@ -16898,16 +16996,16 @@ var DiffRow = /* @__PURE__ */ __name(({
16898
16996
  if (row.isBinary) {
16899
16997
  const marker = padRight("~", statColumnWidth);
16900
16998
  const suffix2 = row.isUntracked ? t("(binary, new)") : row.isDeleted ? t("(binary, deleted)") : t("(binary)");
16901
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Text, { children: [
16902
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Text, { color: theme.text.primary, children: " " }),
16903
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Text, { color: theme.text.secondary, children: marker }),
16904
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Text, { color: theme.text.primary, children: " " }),
16905
- safeOldPath ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Text, { color: theme.text.secondary, children: [
16999
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { children: [
17000
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
17001
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.secondary, children: marker }),
17002
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
17003
+ safeOldPath ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
16906
17004
  safeOldPath,
16907
17005
  " \u2192 "
16908
17006
  ] }) : null,
16909
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Text, { color: theme.text.primary, children: safeName }),
16910
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Text, { color: theme.text.secondary, children: [
17007
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: safeName }),
17008
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
16911
17009
  " ",
16912
17010
  suffix2
16913
17011
  ] })
@@ -16921,24 +17019,24 @@ var DiffRow = /* @__PURE__ */ __name(({
16921
17019
  } else if (row.isDeleted) {
16922
17020
  suffix = t("(deleted)");
16923
17021
  }
16924
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Text, { children: [
16925
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Text, { color: theme.text.primary, children: " " }),
16926
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Text, { color: theme.status.success, children: [
17022
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { children: [
17023
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
17024
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.status.success, children: [
16927
17025
  "+",
16928
17026
  added
16929
17027
  ] }),
16930
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Text, { color: theme.text.primary, children: " " }),
16931
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Text, { color: theme.status.error, children: [
17028
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
17029
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.status.error, children: [
16932
17030
  "-",
16933
17031
  removed
16934
17032
  ] }),
16935
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Text, { color: theme.text.primary, children: " " }),
16936
- safeOldPath ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Text, { color: theme.text.secondary, children: [
17033
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
17034
+ safeOldPath ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
16937
17035
  safeOldPath,
16938
17036
  " \u2192 "
16939
17037
  ] }) : null,
16940
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Text, { color: theme.text.primary, children: safeName }),
16941
- suffix && /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Text, { color: theme.text.secondary, children: [
17038
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: safeName }),
17039
+ suffix && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
16942
17040
  " ",
16943
17041
  suffix
16944
17042
  ] })
@@ -16952,7 +17050,7 @@ __name(padRight, "padRight");
16952
17050
  // packages/cli/src/ui/components/messages/GoalStatusMessage.tsx
16953
17051
  init_esbuild_shims();
16954
17052
  var import_react43 = __toESM(require_react(), 1);
16955
- var import_jsx_runtime49 = __toESM(require_jsx_runtime(), 1);
17053
+ var import_jsx_runtime50 = __toESM(require_jsx_runtime(), 1);
16956
17054
  var pluralTurns = /* @__PURE__ */ __name((n) => n === 1 ? "turn" : "turns", "pluralTurns");
16957
17055
  function assertNeverGoalStatusKind(kind) {
16958
17056
  throw new Error(`Unexpected goal status kind: ${kind}`);
@@ -16965,9 +17063,9 @@ var GoalStateCard = /* @__PURE__ */ __name(({
16965
17063
  const goal = snapshot.goal;
16966
17064
  if (!goal) {
16967
17065
  if (cause !== "clear") return null;
16968
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Box_default, { flexDirection: "row", children: [
16969
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.secondary, children: ICON.CIRCLE_EMPTY }) }),
16970
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.secondary, children: "Goal cleared" })
17066
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
17067
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: theme.text.secondary, children: ICON.CIRCLE_EMPTY }) }),
17068
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: theme.text.secondary, children: "Goal cleared" })
16971
17069
  ] });
16972
17070
  }
16973
17071
  const lifecycle = (() => {
@@ -17025,21 +17123,21 @@ var GoalStateCard = /* @__PURE__ */ __name(({
17025
17123
  }
17026
17124
  const subtitle = stats.length > 0 ? stats.join(" \xB7 ") : null;
17027
17125
  const reason = goal.status !== "active" || snapshot.activity === "verifying" ? goal.lastReason?.trim() : void 0;
17028
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Box_default, { flexDirection: "row", children: [
17029
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: lifecycle.color, children: lifecycle.prefix }) }),
17030
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
17031
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: lifecycle.color, children: [
17126
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
17127
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: lifecycle.color, children: lifecycle.prefix }) }),
17128
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
17129
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: lifecycle.color, children: [
17032
17130
  lifecycle.title,
17033
- subtitle ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
17131
+ subtitle ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, children: [
17034
17132
  " \xB7 ",
17035
17133
  subtitle
17036
17134
  ] }) : null
17037
17135
  ] }),
17038
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Box_default, { flexDirection: "row", children: [
17039
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { flexShrink: 0, marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.secondary, children: "Goal:" }) }),
17040
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { wrap: "wrap", children: goal.objective }) })
17136
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
17137
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { flexShrink: 0, marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: theme.text.secondary, children: "Goal:" }) }),
17138
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { wrap: "wrap", children: goal.objective }) })
17041
17139
  ] }),
17042
- reason ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
17140
+ reason ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
17043
17141
  "Reason: ",
17044
17142
  reason
17045
17143
  ] }) : null
@@ -17047,24 +17145,24 @@ var GoalStateCard = /* @__PURE__ */ __name(({
17047
17145
  ] });
17048
17146
  }, "GoalStateCard");
17049
17147
  var GoalStatusMessageInternal = /* @__PURE__ */ __name((props) => {
17050
- if (props.snapshot) return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(GoalStateCard, { ...props });
17148
+ if (props.snapshot) return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(GoalStateCard, { ...props });
17051
17149
  const { kind, condition, iterations, durationMs, lastReason } = props;
17052
17150
  if (kind === "checking") {
17053
17151
  const reason = lastReason?.trim();
17054
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Box_default, { flexDirection: "row", children: [
17055
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.secondary, children: ICON.CIRCLE_EMPTY }) }),
17056
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
17057
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
17152
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
17153
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: theme.text.secondary, children: ICON.CIRCLE_EMPTY }) }),
17154
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
17155
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, children: [
17058
17156
  "Goal check",
17059
17157
  typeof iterations === "number" && iterations > 0 ? ` \xB7 turn ${iterations}` : "",
17060
17158
  " ",
17061
17159
  "\xB7 not yet met"
17062
17160
  ] }),
17063
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
17161
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
17064
17162
  "Goal: ",
17065
17163
  condition
17066
17164
  ] }),
17067
- reason ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
17165
+ reason ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
17068
17166
  "Judge: ",
17069
17167
  reason
17070
17168
  ] }) : null
@@ -17121,21 +17219,21 @@ var GoalStatusMessageInternal = /* @__PURE__ */ __name((props) => {
17121
17219
  stats.push(formatDuration(durationMs, { hideTrailingZeros: true }));
17122
17220
  }
17123
17221
  const subtitle = stats.length > 0 ? stats.join(" \xB7 ") : null;
17124
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Box_default, { flexDirection: "row", children: [
17125
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: prefixColor, children: prefix }) }),
17126
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
17127
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: prefixColor, children: [
17222
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
17223
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: prefixColor, children: prefix }) }),
17224
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
17225
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: prefixColor, children: [
17128
17226
  title,
17129
- subtitle ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
17227
+ subtitle ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, children: [
17130
17228
  " \xB7 ",
17131
17229
  subtitle
17132
17230
  ] }) : null
17133
17231
  ] }),
17134
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Box_default, { flexDirection: "row", children: [
17135
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { flexShrink: 0, marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.secondary, children: "Goal:" }) }),
17136
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { wrap: "wrap", children: condition }) })
17232
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
17233
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { flexShrink: 0, marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: theme.text.secondary, children: "Goal:" }) }),
17234
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { wrap: "wrap", children: condition }) })
17137
17235
  ] }),
17138
- isTerminalGoalStatusKind(kind) && lastReason?.trim() ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
17236
+ isTerminalGoalStatusKind(kind) && lastReason?.trim() ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
17139
17237
  "Last check: ",
17140
17238
  lastReason.trim()
17141
17239
  ] }) : null
@@ -17158,7 +17256,7 @@ var useThoughtExpanded = /* @__PURE__ */ __name(() => (0, import_react44.useCont
17158
17256
  var ThoughtExpandedProvider = ThoughtExpandedContext.Provider;
17159
17257
 
17160
17258
  // packages/cli/src/ui/components/HistoryItemDisplay.tsx
17161
- var import_jsx_runtime50 = __toESM(require_jsx_runtime(), 1);
17259
+ var import_jsx_runtime51 = __toESM(require_jsx_runtime(), 1);
17162
17260
  var ClickableThinkMessage = /* @__PURE__ */ __name(({
17163
17261
  text,
17164
17262
  isPending,
@@ -17207,7 +17305,7 @@ var ClickableThinkMessage = /* @__PURE__ */ __name(({
17207
17305
  ),
17208
17306
  { isActive }
17209
17307
  );
17210
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { ref: isActive ? ref : void 0, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17308
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { ref: isActive ? ref : void 0, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17211
17309
  ThinkMessage,
17212
17310
  {
17213
17311
  text,
@@ -17284,7 +17382,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17284
17382
  const itemForDisplay = (0, import_react45.useMemo)(() => escapeAnsiCtrlCodes(item), [item]);
17285
17383
  const contentWidth = terminalWidth - 4;
17286
17384
  const boxWidth = mainAreaWidth || contentWidth;
17287
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
17385
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
17288
17386
  Box_default,
17289
17387
  {
17290
17388
  flexDirection: "column",
@@ -17292,11 +17390,11 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17292
17390
  marginLeft: 2,
17293
17391
  marginRight: 2,
17294
17392
  children: [
17295
- itemForDisplay.type === "user" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(UserMessage, { text: itemForDisplay.text }),
17296
- itemForDisplay.type === "notification" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(InfoMessage, { text: itemForDisplay.text }),
17297
- itemForDisplay.type === "user_shell" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(UserShellMessage, { text: itemForDisplay.text }),
17298
- itemForDisplay.type === "gemini" && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, { children: [
17299
- showTimestamps && itemForDisplay.timestamp != null && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { dimColor: true, children: [
17393
+ itemForDisplay.type === "user" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(UserMessage, { text: itemForDisplay.text }),
17394
+ itemForDisplay.type === "notification" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(InfoMessage, { text: itemForDisplay.text }),
17395
+ itemForDisplay.type === "user_shell" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(UserShellMessage, { text: itemForDisplay.text }),
17396
+ itemForDisplay.type === "gemini" && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_jsx_runtime51.Fragment, { children: [
17397
+ showTimestamps && itemForDisplay.timestamp != null && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Text, { dimColor: true, children: [
17300
17398
  "[",
17301
17399
  new Date(itemForDisplay.timestamp).toLocaleTimeString("en-US", {
17302
17400
  hour12: false,
@@ -17306,7 +17404,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17306
17404
  }),
17307
17405
  "]"
17308
17406
  ] }),
17309
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17407
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17310
17408
  AssistantMessage,
17311
17409
  {
17312
17410
  text: itemForDisplay.text,
@@ -17319,7 +17417,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17319
17417
  }
17320
17418
  )
17321
17419
  ] }),
17322
- itemForDisplay.type === "gemini_content" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17420
+ itemForDisplay.type === "gemini_content" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17323
17421
  AssistantMessageContent,
17324
17422
  {
17325
17423
  text: itemForDisplay.text,
@@ -17331,7 +17429,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17331
17429
  sourceCopyIndexOffsets
17332
17430
  }
17333
17431
  ),
17334
- itemForDisplay.type === "gemini_thought" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17432
+ itemForDisplay.type === "gemini_thought" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17335
17433
  ClickableThinkMessage,
17336
17434
  {
17337
17435
  text: itemForDisplay.text.trimEnd(),
@@ -17343,7 +17441,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17343
17441
  onToggle: () => toggleThought(thoughtGroupHeadId)
17344
17442
  }
17345
17443
  ),
17346
- itemForDisplay.type === "gemini_thought_content" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17444
+ itemForDisplay.type === "gemini_thought_content" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17347
17445
  ThinkMessageContent,
17348
17446
  {
17349
17447
  text: itemForDisplay.text.trimEnd(),
@@ -17353,7 +17451,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17353
17451
  contentWidth
17354
17452
  }
17355
17453
  ),
17356
- itemForDisplay.type === "info" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17454
+ itemForDisplay.type === "info" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17357
17455
  InfoMessage,
17358
17456
  {
17359
17457
  text: itemForDisplay.text,
@@ -17361,26 +17459,26 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17361
17459
  linkText: itemForDisplay.linkText
17362
17460
  }
17363
17461
  ),
17364
- itemForDisplay.type === "success" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SuccessMessage, { text: itemForDisplay.text }),
17365
- itemForDisplay.type === "warning" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(WarningMessage, { text: itemForDisplay.text }),
17366
- itemForDisplay.type === "error" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ErrorMessage, { text: itemForDisplay.text, hint: itemForDisplay.hint }),
17367
- itemForDisplay.type === "retry_countdown" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(RetryCountdownMessage, { text: itemForDisplay.text }),
17368
- itemForDisplay.type === "vision_notice" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(VisionNoticeMessage, { text: itemForDisplay.text }),
17369
- itemForDisplay.type === "about" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(AboutBox, { ...itemForDisplay.systemInfo, width: boxWidth }),
17370
- itemForDisplay.type === "help" && commands && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Help, { commands, width: boxWidth }),
17371
- itemForDisplay.type === "stats" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(StatsDisplay, { duration: itemForDisplay.duration, width: boxWidth }),
17372
- itemForDisplay.type === "diff_stats" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(DiffStatsDisplay, { model: itemForDisplay.model }),
17373
- itemForDisplay.type === "model_stats" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ModelStatsDisplay, { width: boxWidth }),
17374
- itemForDisplay.type === "tool_stats" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ToolStatsDisplay, { width: boxWidth }),
17375
- itemForDisplay.type === "skill_stats" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SkillStatsDisplay, { width: boxWidth }),
17376
- itemForDisplay.type === "quit" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17462
+ itemForDisplay.type === "success" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SuccessMessage, { text: itemForDisplay.text }),
17463
+ itemForDisplay.type === "warning" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(WarningMessage, { text: itemForDisplay.text }),
17464
+ itemForDisplay.type === "error" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ErrorMessage, { text: itemForDisplay.text, hint: itemForDisplay.hint }),
17465
+ itemForDisplay.type === "retry_countdown" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(RetryCountdownMessage, { text: itemForDisplay.text }),
17466
+ itemForDisplay.type === "vision_notice" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(VisionNoticeMessage, { text: itemForDisplay.text }),
17467
+ itemForDisplay.type === "about" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(AboutBox, { ...itemForDisplay.systemInfo, width: boxWidth }),
17468
+ itemForDisplay.type === "help" && commands && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Help, { commands, width: boxWidth }),
17469
+ itemForDisplay.type === "stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(StatsDisplay, { duration: itemForDisplay.duration, width: boxWidth }),
17470
+ itemForDisplay.type === "diff_stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DiffStatsDisplay, { model: itemForDisplay.model }),
17471
+ itemForDisplay.type === "model_stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ModelStatsDisplay, { width: boxWidth }),
17472
+ itemForDisplay.type === "tool_stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ToolStatsDisplay, { width: boxWidth }),
17473
+ itemForDisplay.type === "skill_stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SkillStatsDisplay, { width: boxWidth }),
17474
+ itemForDisplay.type === "quit" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17377
17475
  SessionSummaryDisplay,
17378
17476
  {
17379
17477
  duration: itemForDisplay.duration,
17380
17478
  width: boxWidth
17381
17479
  }
17382
17480
  ),
17383
- itemForDisplay.type === "tool_group" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17481
+ itemForDisplay.type === "tool_group" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17384
17482
  ToolGroupMessage,
17385
17483
  {
17386
17484
  toolCalls: itemForDisplay.tools,
@@ -17397,14 +17495,14 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17397
17495
  fullDetail
17398
17496
  }
17399
17497
  ),
17400
- itemForDisplay.type === "tool_use_summary" && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
17401
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { dimColor: true, children: ICON.CIRCLE_FILLED }) }),
17402
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { dimColor: true, children: itemForDisplay.summary })
17498
+ itemForDisplay.type === "tool_use_summary" && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Box_default, { flexDirection: "row", children: [
17499
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { dimColor: true, children: ICON.CIRCLE_FILLED }) }),
17500
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { dimColor: true, children: itemForDisplay.summary })
17403
17501
  ] }),
17404
- itemForDisplay.type === "compression" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(CompressionMessage, { compression: itemForDisplay.compression }),
17405
- itemForDisplay.type === "summary" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SummaryMessage, { summary: itemForDisplay.summary }),
17406
- itemForDisplay.type === "extensions_list" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ExtensionsList, {}),
17407
- itemForDisplay.type === "tools_list" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17502
+ itemForDisplay.type === "compression" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(CompressionMessage, { compression: itemForDisplay.compression }),
17503
+ itemForDisplay.type === "summary" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SummaryMessage, { summary: itemForDisplay.summary }),
17504
+ itemForDisplay.type === "extensions_list" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ExtensionsList, {}),
17505
+ itemForDisplay.type === "tools_list" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17408
17506
  ToolsList,
17409
17507
  {
17410
17508
  contentWidth,
@@ -17412,9 +17510,9 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17412
17510
  showDescriptions: itemForDisplay.showDescriptions
17413
17511
  }
17414
17512
  ),
17415
- itemForDisplay.type === "skills_list" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SkillsList, { skills: itemForDisplay.skills }),
17416
- itemForDisplay.type === "mcp_status" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(McpStatus, { ...itemForDisplay, serverStatus: getMCPServerStatus }),
17417
- itemForDisplay.type === "context_usage" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17513
+ itemForDisplay.type === "skills_list" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SkillsList, { skills: itemForDisplay.skills }),
17514
+ itemForDisplay.type === "mcp_status" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(McpStatus, { ...itemForDisplay, serverStatus: getMCPServerStatus }),
17515
+ itemForDisplay.type === "context_usage" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17418
17516
  ContextUsage,
17419
17517
  {
17420
17518
  modelName: itemForDisplay.modelName,
@@ -17429,7 +17527,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17429
17527
  showDetails: itemForDisplay.showDetails
17430
17528
  }
17431
17529
  ),
17432
- itemForDisplay.type === "doctor" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17530
+ itemForDisplay.type === "doctor" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17433
17531
  DoctorReport,
17434
17532
  {
17435
17533
  checks: itemForDisplay.checks,
@@ -17437,8 +17535,8 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17437
17535
  width: boxWidth
17438
17536
  }
17439
17537
  ),
17440
- itemForDisplay.type === "arena_agent_complete" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ArenaAgentCard, { agent: itemForDisplay.agent, width: boxWidth }),
17441
- itemForDisplay.type === "arena_session_complete" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17538
+ itemForDisplay.type === "arena_agent_complete" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ArenaAgentCard, { agent: itemForDisplay.agent, width: boxWidth }),
17539
+ itemForDisplay.type === "arena_session_complete" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17442
17540
  ArenaSessionCard,
17443
17541
  {
17444
17542
  sessionStatus: itemForDisplay.sessionStatus,
@@ -17448,9 +17546,9 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17448
17546
  width: boxWidth
17449
17547
  }
17450
17548
  ),
17451
- itemForDisplay.type === "insight_progress" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(InsightProgressMessage, { progress: itemForDisplay.progress }),
17452
- itemForDisplay.type === "btw" && itemForDisplay.btw && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(BtwMessage, { btw: itemForDisplay.btw, containerWidth: contentWidth }),
17453
- itemForDisplay.type === "advisor" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17549
+ itemForDisplay.type === "insight_progress" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(InsightProgressMessage, { progress: itemForDisplay.progress }),
17550
+ itemForDisplay.type === "btw" && itemForDisplay.btw && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(BtwMessage, { btw: itemForDisplay.btw, containerWidth: contentWidth }),
17551
+ itemForDisplay.type === "advisor" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17454
17552
  AdvisorMessage,
17455
17553
  {
17456
17554
  text: itemForDisplay.text,
@@ -17458,20 +17556,20 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17458
17556
  containerWidth: contentWidth
17459
17557
  }
17460
17558
  ),
17461
- itemForDisplay.type === "user_prompt_submit_blocked" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: theme.status.warning, children: `\u2715 UserPromptSubmit operation blocked by hook:
17559
+ itemForDisplay.type === "user_prompt_submit_blocked" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { color: theme.status.warning, children: `\u2715 UserPromptSubmit operation blocked by hook:
17462
17560
  ${itemForDisplay.reason}
17463
17561
 
17464
17562
  Original prompt: ${sanitizeSensitiveText(itemForDisplay.originalPrompt)}` }) }),
17465
- itemForDisplay.type === "stop_hook_loop" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17563
+ itemForDisplay.type === "stop_hook_loop" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17466
17564
  InfoMessage,
17467
17565
  {
17468
17566
  text: `Ran ${itemForDisplay.stopHookCount} stop hooks
17469
17567
  \u23BF Stop hook error: ${itemForDisplay.reasons[itemForDisplay.reasons.length - 1]}`
17470
17568
  }
17471
17569
  ),
17472
- itemForDisplay.type === "stop_hook_system_message" && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "column", children: [
17473
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: theme.text.primary, children: " \u23BF Stop says:" }),
17474
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { marginLeft: 4, flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17570
+ itemForDisplay.type === "stop_hook_system_message" && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Box_default, { flexDirection: "column", children: [
17571
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { color: theme.text.primary, children: " \u23BF Stop says:" }),
17572
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { marginLeft: 4, flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17475
17573
  MarkdownDisplay,
17476
17574
  {
17477
17575
  text: itemForDisplay.message,
@@ -17480,9 +17578,9 @@ Original prompt: ${sanitizeSensitiveText(itemForDisplay.originalPrompt)}` }) }),
17480
17578
  }
17481
17579
  ) })
17482
17580
  ] }),
17483
- itemForDisplay.type === "memory_saved" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(MemorySavedMessage, { item: itemForDisplay }),
17484
- itemForDisplay.type === "away_recap" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(AwayRecapMessage, { text: itemForDisplay.text }),
17485
- itemForDisplay.type === "goal_status" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17581
+ itemForDisplay.type === "memory_saved" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(MemorySavedMessage, { item: itemForDisplay }),
17582
+ itemForDisplay.type === "away_recap" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(AwayRecapMessage, { text: itemForDisplay.text }),
17583
+ itemForDisplay.type === "goal_status" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17486
17584
  GoalStatusMessage,
17487
17585
  {
17488
17586
  kind: itemForDisplay.kind,
@@ -17492,7 +17590,7 @@ Original prompt: ${sanitizeSensitiveText(itemForDisplay.originalPrompt)}` }) }),
17492
17590
  lastReason: itemForDisplay.lastReason
17493
17591
  }
17494
17592
  ),
17495
- itemForDisplay.type === "goal_state" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17593
+ itemForDisplay.type === "goal_state" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17496
17594
  GoalStatusMessage,
17497
17595
  {
17498
17596
  snapshot: itemForDisplay.snapshot,
@@ -17508,7 +17606,7 @@ var HistoryItemDisplay = (0, import_react45.memo)(HistoryItemDisplayComponent);
17508
17606
  HistoryItemDisplay.displayName = "HistoryItemDisplay";
17509
17607
 
17510
17608
  // packages/cli/src/ui/components/SessionPreview.tsx
17511
- var import_jsx_runtime51 = __toESM(require_jsx_runtime(), 1);
17609
+ var import_jsx_runtime52 = __toESM(require_jsx_runtime(), 1);
17512
17610
  function SessionPreview(props) {
17513
17611
  const {
17514
17612
  sessionService,
@@ -17583,19 +17681,19 @@ function SessionPreview(props) {
17583
17681
  metaParts.push(gitBranch);
17584
17682
  }
17585
17683
  const metaLine = metaParts.join(" \xB7 ");
17586
- const header = /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { bold: true, color: theme.text.primary, children: sessionTitle ?? t("Session Preview") }) }, "header");
17587
- const topSeparator = /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { color: theme.border.default, children: "\u2500".repeat(separatorWidth) }) }, "top-separator");
17588
- const footerSeparator = /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { color: theme.border.default, children: "\u2500".repeat(separatorWidth) }) }, "footer-separator");
17589
- const meta = metaLine ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { color: theme.text.secondary, children: metaLine }) }, "meta") : null;
17590
- const footer = /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { color: theme.text.secondary, children: t("Enter to resume \xB7 Esc to back") }) }, "footer");
17684
+ const header = /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { bold: true, color: theme.text.primary, children: sessionTitle ?? t("Session Preview") }) }, "header");
17685
+ const topSeparator = /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.border.default, children: "\u2500".repeat(separatorWidth) }) }, "top-separator");
17686
+ const footerSeparator = /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.border.default, children: "\u2500".repeat(separatorWidth) }) }, "footer-separator");
17687
+ const meta = metaLine ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: metaLine }) }, "meta") : null;
17688
+ const footer = /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: t("Enter to resume \xB7 Esc to back") }) }, "footer");
17591
17689
  if (data && !error) {
17592
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { flexDirection: "column", width: boxWidth, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17690
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { flexDirection: "column", width: boxWidth, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
17593
17691
  Static,
17594
17692
  {
17595
17693
  items: [
17596
17694
  header,
17597
17695
  topSeparator,
17598
- ...items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17696
+ ...items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
17599
17697
  HistoryItemDisplay,
17600
17698
  {
17601
17699
  item,
@@ -17614,10 +17712,10 @@ function SessionPreview(props) {
17614
17712
  sessionId
17615
17713
  ) });
17616
17714
  }
17617
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Box_default, { flexDirection: "column", width: boxWidth, children: [
17715
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Box_default, { flexDirection: "column", width: boxWidth, children: [
17618
17716
  header,
17619
17717
  topSeparator,
17620
- error ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { paddingY: 1, justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { color: theme.status.error, children: error }) }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { paddingY: 1, justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { color: theme.text.secondary, children: t("Loading session preview...") }) }),
17718
+ error ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { paddingY: 1, justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.status.error, children: error }) }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { paddingY: 1, justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: t("Loading session preview...") }) }),
17621
17719
  footerSeparator,
17622
17720
  meta,
17623
17721
  footer
@@ -17626,7 +17724,7 @@ function SessionPreview(props) {
17626
17724
  __name(SessionPreview, "SessionPreview");
17627
17725
 
17628
17726
  // packages/cli/src/ui/components/SessionPicker.tsx
17629
- var import_jsx_runtime52 = __toESM(require_jsx_runtime(), 1);
17727
+ var import_jsx_runtime53 = __toESM(require_jsx_runtime(), 1);
17630
17728
  var PREFIX_CHARS = {
17631
17729
  selected: "\u203A ",
17632
17730
  scrollUp: "\u2191 ",
@@ -17659,9 +17757,9 @@ function SessionListItemView({
17659
17757
  Math.max(1, maxPromptWidth - checkboxWidth)
17660
17758
  );
17661
17759
  const isAutoTitle = session.titleSource === "auto" && Boolean(session.customTitle);
17662
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Box_default, { flexDirection: "column", marginBottom: isLast ? 0 : 1, children: [
17663
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Box_default, { children: [
17664
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
17760
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Box_default, { flexDirection: "column", marginBottom: isLast ? 0 : 1, children: [
17761
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Box_default, { children: [
17762
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
17665
17763
  Text,
17666
17764
  {
17667
17765
  color: isSelected ? theme.text.accent : showUpIndicator || showDownIndicator ? theme.text.secondary : void 0,
@@ -17669,7 +17767,7 @@ function SessionListItemView({
17669
17767
  children: prefix
17670
17768
  }
17671
17769
  ),
17672
- isChecked !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
17770
+ isChecked !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
17673
17771
  Text,
17674
17772
  {
17675
17773
  color: isDisabled ? theme.text.secondary : isChecked ? theme.text.accent : isSelected ? theme.text.accent : theme.text.secondary,
@@ -17677,7 +17775,7 @@ function SessionListItemView({
17677
17775
  children: isChecked ? "[x] " : "[ ] "
17678
17776
  }
17679
17777
  ),
17680
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
17778
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
17681
17779
  Text,
17682
17780
  {
17683
17781
  color: isDisabled ? theme.text.secondary : isSelected ? theme.text.accent : isAutoTitle ? theme.text.secondary : theme.text.primary,
@@ -17686,7 +17784,7 @@ function SessionListItemView({
17686
17784
  }
17687
17785
  )
17688
17786
  ] }),
17689
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Text, { color: theme.text.secondary, children: [
17787
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.secondary, children: [
17690
17788
  timeAgo,
17691
17789
  messageText !== void 0 && ` \xB7 ${messageText}`,
17692
17790
  session.gitBranch && ` \xB7 ${session.gitBranch}`,
@@ -17735,7 +17833,7 @@ function SessionPicker(props) {
17735
17833
  const previewed = picker.filteredSessions.find(
17736
17834
  (s) => s.sessionId === picker.previewSessionId
17737
17835
  );
17738
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
17836
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
17739
17837
  SessionPreview,
17740
17838
  {
17741
17839
  sessionService,
@@ -17749,14 +17847,14 @@ function SessionPicker(props) {
17749
17847
  }
17750
17848
  );
17751
17849
  }
17752
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
17850
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
17753
17851
  Box_default,
17754
17852
  {
17755
17853
  flexDirection: "column",
17756
17854
  width: boxWidth,
17757
17855
  height: height - 1,
17758
17856
  overflow: "hidden",
17759
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
17857
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
17760
17858
  Box_default,
17761
17859
  {
17762
17860
  flexDirection: "column",
@@ -17766,38 +17864,38 @@ function SessionPicker(props) {
17766
17864
  height: height - 1,
17767
17865
  overflow: "hidden",
17768
17866
  children: [
17769
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Box_default, { paddingX: 1, children: [
17770
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { bold: true, color: theme.text.primary, children: title ?? t("Resume Session") }),
17771
- picker.filterByBranch && currentBranch && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Text, { color: theme.text.secondary, children: [
17867
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Box_default, { paddingX: 1, children: [
17868
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { bold: true, color: theme.text.primary, children: title ?? t("Resume Session") }),
17869
+ picker.filterByBranch && currentBranch && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.secondary, children: [
17772
17870
  " ",
17773
17871
  t("(branch: {{branch}})", { branch: currentBranch })
17774
17872
  ] }),
17775
- picker.searchQuery !== "" && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Text, { color: theme.text.secondary, children: [
17873
+ picker.searchQuery !== "" && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.secondary, children: [
17776
17874
  " ",
17777
17875
  t("({{count}} matches)", {
17778
17876
  count: String(picker.filteredSessions.length)
17779
17877
  })
17780
17878
  ] })
17781
17879
  ] }),
17782
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { paddingX: 1, children: picker.isSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
17783
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: t("Search: ") }),
17784
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Text, { color: theme.text.primary, children: [
17880
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { paddingX: 1, children: picker.isSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
17881
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Search: ") }),
17882
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.primary, children: [
17785
17883
  picker.searchQuery,
17786
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: "\u258C" })
17884
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: "\u258C" })
17787
17885
  ] })
17788
- ] }) : picker.searchQuery !== "" ? /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
17789
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: t("Filter: ") }),
17790
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.primary, children: picker.searchQuery })
17791
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: t("Press / to search") }) }),
17792
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.border.default, children: "\u2500".repeat(boxWidth - 2) }) }),
17793
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { flexDirection: "column", flexGrow: 1, paddingX: 1, overflow: "hidden", children: !sessionService || picker.isLoading ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { paddingY: 1, justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: t("Loading sessions...") }) }) : picker.filteredSessions.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { paddingY: 1, justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: picker.searchQuery !== "" ? t('No sessions match "{{query}}"', {
17886
+ ] }) : picker.searchQuery !== "" ? /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
17887
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Filter: ") }),
17888
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.primary, children: picker.searchQuery })
17889
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Press / to search") }) }),
17890
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.border.default, children: "\u2500".repeat(boxWidth - 2) }) }),
17891
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { flexDirection: "column", flexGrow: 1, paddingX: 1, overflow: "hidden", children: !sessionService || picker.isLoading ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { paddingY: 1, justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Loading sessions...") }) }) : picker.filteredSessions.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { paddingY: 1, justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: picker.searchQuery !== "" ? t('No sessions match "{{query}}"', {
17794
17892
  query: picker.searchQuery
17795
17893
  }) : picker.filterByBranch ? t('No sessions found for branch "{{branch}}"', {
17796
17894
  branch: currentBranch ?? ""
17797
17895
  }) : t("No sessions found") }) }) : picker.visibleSessions.map((session, visibleIndex) => {
17798
17896
  const actualIndex = picker.scrollOffset + visibleIndex;
17799
17897
  const isDisabled = picker.disabledIdSet.has(session.sessionId);
17800
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
17898
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
17801
17899
  SessionListItemView,
17802
17900
  {
17803
17901
  session,
@@ -17816,10 +17914,10 @@ function SessionPicker(props) {
17816
17914
  session.sessionId
17817
17915
  );
17818
17916
  }) }),
17819
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.border.default, children: "\u2500".repeat(boxWidth - 2) }) }),
17820
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { flexDirection: "row", children: picker.isSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: t("Type to search \xB7 Enter to commit \xB7 Esc to clear") }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
17821
- currentBranch && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Text, { color: theme.text.secondary, children: [
17822
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
17917
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.border.default, children: "\u2500".repeat(boxWidth - 2) }) }),
17918
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { flexDirection: "row", children: picker.isSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Type to search \xB7 Enter to commit \xB7 Esc to clear") }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
17919
+ currentBranch && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.secondary, children: [
17920
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
17823
17921
  Text,
17824
17922
  {
17825
17923
  bold: picker.filterByBranch,
@@ -17829,7 +17927,7 @@ function SessionPicker(props) {
17829
17927
  ),
17830
17928
  t(" to toggle branch \xB7 ")
17831
17929
  ] }),
17832
- enablePreview && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: t("Space to preview \xB7 ") }),
17930
+ enablePreview && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Space to preview \xB7 ") }),
17833
17931
  enableMultiSelect && (() => {
17834
17932
  let committableCheckedCount = 0;
17835
17933
  for (const id of picker.checkedIds) {
@@ -17837,11 +17935,11 @@ function SessionPicker(props) {
17837
17935
  committableCheckedCount++;
17838
17936
  }
17839
17937
  }
17840
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: committableCheckedCount > 0 ? t("Space to toggle \xB7 {{count}} selected \xB7 ", {
17938
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: committableCheckedCount > 0 ? t("Space to toggle \xB7 {{count}} selected \xB7 ", {
17841
17939
  count: String(committableCheckedCount)
17842
17940
  }) : t("Space to select multiple \xB7 ") });
17843
17941
  })(),
17844
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: t("\u2191\u2193 to navigate \xB7 Type to search \xB7 Esc to cancel") })
17942
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("\u2191\u2193 to navigate \xB7 Type to search \xB7 Esc to cancel") })
17845
17943
  ] }) }) })
17846
17944
  ]
17847
17945
  }