@qwen-code/qwen-code 0.22.0 → 0.22.2-nightly.20260828.7357136dd1

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 (483) 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/goal-draft/SKILL.md +109 -0
  5. package/bundled/qc-helper/docs/configuration/auth.md +7 -7
  6. package/bundled/qc-helper/docs/configuration/model-providers.md +70 -9
  7. package/bundled/qc-helper/docs/configuration/settings.md +48 -48
  8. package/bundled/qc-helper/docs/extension/introduction.md +3 -1
  9. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  10. package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
  11. package/bundled/qc-helper/docs/features/channels/dingtalk.md +12 -0
  12. package/bundled/qc-helper/docs/features/channels/dws.md +120 -0
  13. package/bundled/qc-helper/docs/features/channels/overview.md +37 -6
  14. package/bundled/qc-helper/docs/features/code-review.md +27 -23
  15. package/bundled/qc-helper/docs/features/commands.md +4 -3
  16. package/bundled/qc-helper/docs/features/computer-use.md +57 -51
  17. package/bundled/qc-helper/docs/features/goals.md +58 -0
  18. package/bundled/qc-helper/docs/features/headless.md +13 -11
  19. package/bundled/qc-helper/docs/features/mcp.md +35 -12
  20. package/bundled/qc-helper/docs/features/status-line.md +3 -3
  21. package/bundled/qc-helper/docs/features/sub-agents.md +1 -1
  22. package/bundled/qc-helper/docs/features/worktree.md +1 -1
  23. package/bundled/qc-helper/docs/overview.md +1 -1
  24. package/bundled/qc-helper/docs/quickstart.md +1 -1
  25. package/bundled/qc-helper/docs/qwen-serve.md +29 -6
  26. package/bundled/review/SKILL.md +185 -435
  27. package/bundled/review/references/aone.md +18 -0
  28. package/bundled/review/references/persistence.md +109 -0
  29. package/bundled/review/references/posting.md +272 -0
  30. package/chunks/MaxSizedBox-LMWXCLDV.js +110 -0
  31. package/chunks/{StandaloneSessionPicker-KTHPCSR6.js → StandaloneSessionPicker-W3F7U3JL.js} +87 -88
  32. package/chunks/{acp-startup-profiler-T4GEAPLX.js → acp-startup-profiler-GNYAL6LI.js} +2 -2
  33. package/chunks/{acpAgent-CRY3JZ5O.js → acpAgent-EYZ6EEHD.js} +3223 -2145
  34. package/chunks/agent-RBLGBY65.js +95 -0
  35. package/chunks/agent-headless-L5T4Y4OZ.js +85 -0
  36. package/chunks/{anthropicContentGenerator-Y2OX6LS4.js → anthropicContentGenerator-GMHML35Q.js} +128 -59
  37. package/chunks/{artifact-tool-SBXMTVCB.js → artifact-tool-XSMPHZBT.js} +11 -3
  38. package/chunks/{askUserQuestion-KEQJRFD6.js → askUserQuestion-4SWJY65V.js} +2 -2
  39. package/chunks/bridge-5LR2F2ND.js +119 -0
  40. package/chunks/{ca-D3F4S6NG.js → ca-7HPYOYSZ.js} +3 -0
  41. package/chunks/{channel-management-service-IRTT7RNE.js → channel-management-service-KHR3N6CH.js} +6 -6
  42. package/chunks/channel-settings-store-4FOAZW72.js +120 -0
  43. package/chunks/{channel-worker-group-BJNMR2MP.js → channel-worker-group-6NA6BBZV.js} +9 -7
  44. package/chunks/{channel-worker-manager-EMA7CQDJ.js → channel-worker-manager-NEZ2J6RK.js} +11 -8
  45. package/chunks/{channel-worker-supervisor-F6I6WSWW.js → channel-worker-supervisor-FKU7DIHJ.js} +12 -6
  46. package/chunks/{chunk-HDKCKCYO.js → chunk-23RFD54N.js} +1 -1
  47. package/chunks/{read-package-up-UXSW3YPB.js → chunk-2EAZ43JQ.js} +1 -0
  48. package/chunks/{chunk-KM73TBQ4.js → chunk-2LD5U7Q3.js} +31 -0
  49. package/chunks/{chunk-GIWB5QLV.js → chunk-2SXSLSQE.js} +4 -4
  50. package/chunks/chunk-2TNL5KPM.js +49 -0
  51. package/chunks/chunk-335CJSNF.js +2320 -0
  52. package/chunks/chunk-36LGBEM6.js +130 -0
  53. package/chunks/{chunk-O5BDEWBC.js → chunk-3JXM2CVW.js} +3 -3
  54. package/chunks/{chunk-2E3V7G6Y.js → chunk-3K6TUZHS.js} +55 -50
  55. package/chunks/{chunk-WWUSHZ7M.js → chunk-3OOXT6CR.js} +5 -5
  56. package/chunks/{chunk-2UZJWSVD.js → chunk-3WK3QDNV.js} +2 -2
  57. package/chunks/{chunk-4J7OPYNS.js → chunk-3XOKEVII.js} +6 -6
  58. package/chunks/chunk-3Y34Q3JV.js +1584 -0
  59. package/chunks/{chunk-YMVFIYHV.js → chunk-42IDLQWS.js} +26 -20
  60. package/chunks/{chunk-7HFULI45.js → chunk-454XFGH4.js} +3 -3
  61. package/chunks/chunk-4CMJKUND.js +95 -0
  62. package/chunks/{chunk-XLDFW44M.js → chunk-4K7KNVWH.js} +3 -3
  63. package/chunks/{chunk-YDJRMQU4.js → chunk-4QHPPXK2.js} +16 -8
  64. package/chunks/{chunk-7KOFLDEP.js → chunk-5JTIYALA.js} +1 -1
  65. package/chunks/{chunk-CXJHQVEK.js → chunk-5PA6UEYA.js} +4 -0
  66. package/chunks/{chunk-7NBVNAJJ.js → chunk-62GQFYID.js} +3 -3
  67. package/chunks/{chunk-JGUBDRBC.js → chunk-6DIGWMGT.js} +3 -3
  68. package/chunks/{chunk-X7V3N6YH.js → chunk-6JCGO55P.js} +885 -3380
  69. package/chunks/{chunk-HIK2OF33.js → chunk-6PJOTWAN.js} +1 -1
  70. package/chunks/{chunk-VUMLT7E5.js → chunk-6W2IK5KC.js} +956 -17
  71. package/chunks/{chunk-S4C4JJKE.js → chunk-6ZZBRRKQ.js} +5 -5
  72. package/chunks/{chunk-W4CRPSC5.js → chunk-7EQQR46F.js} +1 -1
  73. package/chunks/{chunk-PHJJ3RVO.js → chunk-7GWQW5ID.js} +7 -15
  74. package/chunks/chunk-7J6OTNGO.js +424 -0
  75. package/chunks/{chunk-URN2JIAQ.js → chunk-7TUBJBBJ.js} +5 -1
  76. package/chunks/{chunk-A5F63FEW.js → chunk-7VD6IPQM.js} +1 -1
  77. package/chunks/{chunk-36OF5PRW.js → chunk-ABS25QER.js} +7 -3
  78. package/chunks/{chunk-UU4WC7DK.js → chunk-AJGR6E6Z.js} +117 -30
  79. package/chunks/{chunk-MQP3MHWN.js → chunk-AU3MMVJF.js} +43 -20
  80. package/chunks/{chunk-ZS5BHEPD.js → chunk-AXC26UCQ.js} +1 -1
  81. package/chunks/{chunk-PDL6LKB5.js → chunk-AY3BNYEQ.js} +1 -1
  82. package/chunks/{chunk-O5Z7EB6Y.js → chunk-AYHQZBJ4.js} +170 -207
  83. package/chunks/{chunk-WRT324N6.js → chunk-B466ZSHZ.js} +3 -3
  84. package/chunks/{chunk-5XHAOUWD.js → chunk-B5OUL5EL.js} +3 -3
  85. package/chunks/{chunk-GAHYKJPV.js → chunk-B5PHIJGI.js} +186 -60
  86. package/chunks/{chunk-IBJ5S45N.js → chunk-B7CDU2SL.js} +2 -2
  87. package/chunks/{chunk-UZPYR3EV.js → chunk-BFPESSTR.js} +1 -1
  88. package/chunks/{chunk-43T5WDQ7.js → chunk-BFSFJR3D.js} +1 -1
  89. package/chunks/{chunk-IWOWEENB.js → chunk-BKWNKLZB.js} +404 -44
  90. package/chunks/{chunk-3CLIDIVQ.js → chunk-BOWFGCEU.js} +3 -3
  91. package/chunks/{chunk-BB5IMQCV.js → chunk-BPAKYXQ3.js} +2 -2
  92. package/chunks/{chunk-ZRYQMWEP.js → chunk-BWORX6FA.js} +2 -2
  93. package/chunks/{chunk-AP3B7LKD.js → chunk-BXDAPVQU.js} +2 -2
  94. package/chunks/{chunk-NUGZAFR2.js → chunk-C2X7KY45.js} +147 -6
  95. package/chunks/{chunk-MZKWFWVG.js → chunk-C3KURPP7.js} +6 -6
  96. package/chunks/{chunk-WZDM44SB.js → chunk-CAJTKR6W.js} +7 -7
  97. package/chunks/{chunk-DB2OKNTU.js → chunk-CFJY4DGX.js} +2 -2
  98. package/chunks/{chunk-QKBYFU2Q.js → chunk-CFKIH3D3.js} +21 -1
  99. package/chunks/{chunk-I432KXWD.js → chunk-CMHFCLBU.js} +1 -1
  100. package/chunks/{create-sub-session-XBCVGNFU.js → chunk-CQH5KTKC.js} +4 -6
  101. package/chunks/{chunk-5HJUPACR.js → chunk-CRKKHXTI.js} +185 -174
  102. package/chunks/{chunk-L4HVF7LM.js → chunk-CYAUBK46.js} +3 -3
  103. package/chunks/{chunk-AZF6SME3.js → chunk-D5LUXLUH.js} +3 -3
  104. package/chunks/{chunk-RPJQ3O4M.js → chunk-DFDWJE6Z.js} +60 -53
  105. package/chunks/{chunk-KSPRQSB4.js → chunk-DIMEPKCW.js} +52 -12
  106. package/chunks/chunk-DJBQCO2E.js +842 -0
  107. package/chunks/{chunk-OVH5Y7KS.js → chunk-DP4MWIM3.js} +19 -3
  108. package/chunks/{chunk-LI4YHTQK.js → chunk-DYXFD5RO.js} +182 -3
  109. package/chunks/{chunk-NW35NVFN.js → chunk-E3XVSVKK.js} +26 -4
  110. package/chunks/{chunk-VSNPOSDN.js → chunk-EB6QRGHM.js} +108 -13
  111. package/chunks/{chunk-FVBVJEBG.js → chunk-EKNBU2X7.js} +10 -8
  112. package/chunks/{chunk-DJEHYM4H.js → chunk-EKSCLBBF.js} +3 -3
  113. package/chunks/{chunk-624NHDGB.js → chunk-ERFDKH32.js} +11 -0
  114. package/chunks/chunk-EW5VVLJT.js +3525 -0
  115. package/chunks/{chunk-T6XLJRQY.js → chunk-EWIQ3NAE.js} +38774 -6955
  116. package/chunks/{chunk-4XPSVIED.js → chunk-FALBWZF4.js} +6 -6
  117. package/chunks/chunk-FBX2SDQ4.js +48 -0
  118. package/chunks/{chunk-VMJL7RH6.js → chunk-FEHMA4RO.js} +539 -651
  119. package/chunks/{chunk-PXOJLJ5W.js → chunk-FMFBLTLY.js} +606 -223
  120. package/chunks/{chunk-ZLCT4C5A.js → chunk-FTF2YIZ5.js} +1 -1
  121. package/chunks/{chunk-IOSEW6KP.js → chunk-G6FECKTJ.js} +9 -6
  122. package/chunks/{chunk-RDG44S5I.js → chunk-GGNE3JAW.js} +2 -2
  123. package/chunks/chunk-GYTKQYDB.js +23 -0
  124. package/chunks/{chunk-B6UBOIFE.js → chunk-H33EQVMG.js} +14 -11
  125. package/chunks/chunk-H72BQNM3.js +645 -0
  126. package/chunks/{chunk-YZBDKFRQ.js → chunk-HGIMWQVT.js} +995 -892
  127. package/chunks/chunk-HOCJDUFY.js +20 -0
  128. package/chunks/{chunk-6UQSU7CQ.js → chunk-HPXV655A.js} +60 -107
  129. package/chunks/{chunk-45NQKMYB.js → chunk-HVC3PNVC.js} +1 -1
  130. package/chunks/{chunk-QJHPWLZC.js → chunk-HYDJDQGJ.js} +1 -1
  131. package/chunks/{chunk-7DMTAQJ6.js → chunk-IB7FQJRY.js} +163 -57
  132. package/chunks/{chunk-AW27A43Y.js → chunk-ICURCKIU.js} +1428 -120
  133. package/chunks/{chunk-4F5WV4RF.js → chunk-ISKH4QX3.js} +288 -15
  134. package/chunks/{chunk-SE55HQGF.js → chunk-J6S24ZJE.js} +92 -70
  135. package/chunks/{chunk-7DYNJFES.js → chunk-JB4JIVTJ.js} +6 -1
  136. package/chunks/{chunk-OARZJFZX.js → chunk-JN4IWWMN.js} +4 -4
  137. package/chunks/{chunk-6PCOVQO2.js → chunk-JUUBLSZU.js} +8 -8
  138. package/chunks/{chunk-FEMQ6Y7W.js → chunk-JWALNCLT.js} +47 -126
  139. package/chunks/{chunk-TBVSALA3.js → chunk-K5KXUXWC.js} +3 -3
  140. package/chunks/{chunk-XYQHT3AW.js → chunk-KTJFDCX4.js} +2 -2
  141. package/chunks/{chunk-6FRJEE2S.js → chunk-LEFCFTEX.js} +6 -6
  142. package/chunks/{chunk-BUGYW6FB.js → chunk-LEGTMYAE.js} +1 -1
  143. package/chunks/{chunk-MPHLIJYL.js → chunk-LLZA2IK3.js} +20 -8
  144. package/chunks/{chunk-BEGIBJAZ.js → chunk-LNETQKBE.js} +4 -4
  145. package/chunks/{chunk-KVGR4MCF.js → chunk-LUEHOUHM.js} +3 -3
  146. package/chunks/{chunk-2A4C2MEG.js → chunk-LVPZO674.js} +35 -12
  147. package/chunks/{chunk-25NESM4G.js → chunk-M4ORUPYI.js} +29 -5
  148. package/chunks/{chunk-VFACN2CE.js → chunk-M6FOJXW3.js} +1 -1
  149. package/chunks/{chunk-FYZMB6DB.js → chunk-MAYHGRP4.js} +12 -12
  150. package/chunks/{chunk-K3LPAED5.js → chunk-MQM5PJML.js} +24 -4
  151. package/chunks/{chunk-ZRFUT5VV.js → chunk-MTJN7FOT.js} +7 -7
  152. package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
  153. package/chunks/{chunk-2TRNCJK4.js → chunk-NIFYWDYN.js} +1 -1
  154. package/chunks/{chunk-SQS55KR4.js → chunk-NU7RKEZR.js} +2 -2
  155. package/chunks/{chunk-U2UYQMM6.js → chunk-NXMBRVMQ.js} +3 -3
  156. package/chunks/chunk-OI4NY7RA.js +346 -0
  157. package/chunks/{chunk-LURJYO2T.js → chunk-OZ6KS6KW.js} +4 -0
  158. package/chunks/{chunk-K52PZNU4.js → chunk-PDQGMSZK.js} +2 -2
  159. package/chunks/{chunk-PZRUV52H.js → chunk-PPKZ7JOE.js} +20 -2
  160. package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
  161. package/chunks/{chunk-AO4M6NMD.js → chunk-PWIGAMA4.js} +146 -27
  162. package/chunks/{chunk-S3G6YFQC.js → chunk-QFCDF5PL.js} +1 -1
  163. package/chunks/chunk-QHMLYMMS.js +32 -0
  164. package/chunks/{chunk-5XUTPXQU.js → chunk-QPTRRPZU.js} +47 -13
  165. package/chunks/{chunk-UUQFJILB.js → chunk-RFI4YGMR.js} +34 -267
  166. package/chunks/{chunk-A6NRNRKE.js → chunk-RFIDDFAL.js} +1 -1
  167. package/chunks/chunk-RKFGE7JH.js +93 -0
  168. package/chunks/chunk-RNVFRIOO.js +275 -0
  169. package/chunks/{chunk-WU5E4HMO.js → chunk-RU7BK6B3.js} +1 -1
  170. package/chunks/{chunk-J5ZDDUKM.js → chunk-RVXDXY6I.js} +4 -4
  171. package/chunks/{chunk-OE52YHCZ.js → chunk-RWZB422L.js} +11 -11
  172. package/chunks/chunk-RXFQM6FQ.js +42 -0
  173. package/chunks/{chunk-MHG6NDS6.js → chunk-RYNZQGXN.js} +19 -2
  174. package/chunks/{chunk-4CWDWDL6.js → chunk-SJ5ERAW3.js} +1 -1
  175. package/chunks/{chunk-Q54XG7IX.js → chunk-SMPR7SPO.js} +1 -1
  176. package/chunks/{chunk-UIRLQ3N7.js → chunk-SRZZY4IY.js} +3 -3
  177. package/chunks/{chunk-ND7NOI4P.js → chunk-STUJ7IMZ.js} +0 -92
  178. package/chunks/{chunk-VYC7XFYV.js → chunk-SUX7HDNA.js} +5 -5
  179. package/chunks/{chunk-ZZUVC6RI.js → chunk-SVNO44PF.js} +3 -3
  180. package/chunks/{chunk-FDD2IUEL.js → chunk-SZLBBZH4.js} +370 -35
  181. package/chunks/{chunk-GHY5OIYP.js → chunk-T2NKRHZZ.js} +13 -13
  182. package/chunks/chunk-T4EFG2P5.js +113 -0
  183. package/chunks/{chunk-BMCSKS37.js → chunk-TLHUNMO7.js} +6 -6
  184. package/chunks/{chunk-JOLJTKIG.js → chunk-TPI7O7HR.js} +1 -1
  185. package/chunks/{chunk-6QSA4JHL.js → chunk-TQHGJYR3.js} +4492 -1121
  186. package/chunks/{chunk-ISJMN3ML.js → chunk-TTX2JUE6.js} +1 -1
  187. package/chunks/{chunk-EFB657PR.js → chunk-TW3E6YNO.js} +3 -3
  188. package/chunks/{chunk-LD5VIJ7S.js → chunk-TWSKM647.js} +1 -1
  189. package/chunks/chunk-U54AYGEC.js +337 -0
  190. package/chunks/{chunk-A5F2YNO6.js → chunk-UHQFIS7N.js} +260 -10
  191. package/chunks/{chunk-6NFAEG54.js → chunk-UTLCH2FK.js} +24 -13
  192. package/chunks/{chunk-7JBHIQS2.js → chunk-UY3PBNY3.js} +19 -37
  193. package/chunks/{chunk-DWCKACFL.js → chunk-V2NDP3I4.js} +2 -2
  194. package/chunks/{chunk-2GXYDNXP.js → chunk-V2QDDC5J.js} +19 -9
  195. package/chunks/{chunk-VLRBJ24J.js → chunk-V5J4J5TP.js} +2 -2
  196. package/chunks/{chunk-X2UOOG5V.js → chunk-VQUGEVGR.js} +1 -1
  197. package/chunks/{chunk-RDQ7QB4Y.js → chunk-VTHREBQM.js} +2 -2
  198. package/chunks/{chunk-YLFLHKDL.js → chunk-W3N5XAZ6.js} +1 -1
  199. package/chunks/{chunk-62JOGZL5.js → chunk-W6DUQ5GA.js} +11497 -10502
  200. package/chunks/{chunk-P47E4SJC.js → chunk-WALC5VJH.js} +4 -4
  201. package/chunks/{chunk-3ZFJUBTP.js → chunk-WAOIHTJS.js} +1 -1
  202. package/chunks/{chunk-KIVGVFMM.js → chunk-WBHKK3CU.js} +16 -4
  203. package/chunks/{chunk-XZJKSETB.js → chunk-WXEA74YB.js} +3 -3
  204. package/chunks/{chunk-VEND4KA4.js → chunk-X3ZRTCJD.js} +1 -1
  205. package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
  206. package/chunks/{chunk-XL5K4SVK.js → chunk-XF63PKEN.js} +1 -1
  207. package/chunks/{chunk-LDGWX737.js → chunk-XLLQJRAH.js} +323 -510
  208. package/chunks/{chunk-2Z6LSQMF.js → chunk-XQFT3QUF.js} +1 -1
  209. package/chunks/{chunk-P3QQPMQA.js → chunk-XZA32HII.js} +4 -4
  210. package/chunks/{chunk-C72BXMJ5.js → chunk-Y3QL45LS.js} +1 -1
  211. package/chunks/{chunk-QS4ENGVF.js → chunk-Y4TPOUEV.js} +17 -8
  212. package/chunks/{chunk-AVCCKIZ6.js → chunk-YRZX2PHA.js} +1 -1
  213. package/chunks/{chunk-Z3JMO2CH.js → chunk-YTDVNSUQ.js} +1 -1
  214. package/chunks/{chunk-WS7PAXXR.js → chunk-YWQ237GX.js} +15 -199
  215. package/chunks/chunk-ZELCTN6Y.js +29 -0
  216. package/chunks/{chunk-TQOF5KBL.js → chunk-ZEZKIS2K.js} +0 -31
  217. package/chunks/{chunk-IIWGSX4L.js → chunk-ZTP35P4B.js} +1 -1
  218. package/chunks/{chunk-K623ENWT.js → chunk-ZU4UDIWX.js} +23 -1
  219. package/chunks/chunk-ZYNTSXWK.js +32 -0
  220. package/chunks/config-utils-JVGAP34H.js +113 -0
  221. package/chunks/contextCommand-XDB7OSO7.js +106 -0
  222. package/chunks/{core-runtime-CES6JSVV.js → core-runtime-XHYA2RH7.js} +66 -63
  223. package/chunks/create-sub-session-23ITIELI.js +17 -0
  224. package/chunks/{create-sub-session-UJTPMVOG.js → create-sub-session-MHYCFNCM.js} +168 -87
  225. package/chunks/{cron-create-IKA56DAF.js → cron-create-KJ4IY6PP.js} +57 -10
  226. package/chunks/{cron-delete-K5Q62EGH.js → cron-delete-MBLQCAYY.js} +4 -4
  227. package/chunks/{cron-list-QBFGAMP7.js → cron-list-DWH2PQ47.js} +4 -4
  228. package/chunks/{daemon-RZZUPGOJ.js → daemon-K5XS42ID.js} +567 -27
  229. package/chunks/{daemon-git-worktree-guard-3QY2BQYB.js → daemon-git-worktree-guard-V3P5XLHB.js} +339 -95
  230. package/chunks/daemon-status-provider-KKU7ZTLM.js +117 -0
  231. package/chunks/daemon-trust-policy-TZGK34DW.js +112 -0
  232. package/chunks/{daemon-trust-policy-monitor-TK4K7M63.js → daemon-trust-policy-monitor-F23DD2M4.js} +69 -69
  233. package/chunks/{de-RYUHH2C6.js → de-X6HLSIFE.js} +1 -0
  234. package/chunks/deferred-core-runtime-LKLGBCGZ.js +114 -0
  235. package/chunks/{display-image-OEJMJV3S.js → display-image-BE7I6ZB6.js} +5 -5
  236. package/chunks/{dist-5EV2G6MC.js → dist-4WXLCBDR.js} +1 -1
  237. package/chunks/{dist-ES6HNUW2.js → dist-5VXFRTWU.js} +525 -64
  238. package/chunks/{dist-ESS34DHC.js → dist-6BPYWHVD.js} +89 -65
  239. package/chunks/{dist-2OG3PGKO.js → dist-GFN5DCBX.js} +76 -67
  240. package/chunks/{dist-K7IQB53U.js → dist-HZNT6GQS.js} +1 -1
  241. package/chunks/{dist-J6P3C52Z.js → dist-LVZCXVPF.js} +99 -26
  242. package/chunks/{dist-LZO24N3E.js → dist-N6W6E753.js} +71 -64
  243. package/chunks/dist-QDLFKWOL.js +2512 -0
  244. package/chunks/{dist-VVQBOKDH.js → dist-SWQMYP2Q.js} +18 -16
  245. package/chunks/earlyInputCapture-NERYFYTR.js +107 -0
  246. package/chunks/{edit-A2633SLR.js → edit-ACCATIXB.js} +49 -51
  247. package/chunks/{en-3RHLPITS.js → en-YLXBXM4Z.js} +5 -1
  248. package/chunks/{enter-worktree-OIAHE2TB.js → enter-worktree-35QCAAFP.js} +7 -8
  249. package/chunks/{enterPlanMode-SUGIKLR7.js → enterPlanMode-NEN6EPVM.js} +48 -50
  250. package/chunks/environment-CKWHBC5T.js +129 -0
  251. package/chunks/errors-XTZPNQ77.js +113 -0
  252. package/chunks/{exit-worktree-3UT3SSWT.js → exit-worktree-XQD6D543.js} +7 -8
  253. package/chunks/exitPlanMode-CY344X5J.js +83 -0
  254. package/chunks/{fast-path-3AVP3G35.js → fast-path-YSOX4PAM.js} +31 -10
  255. package/chunks/{fast-path-settings-WHX3J3ZI.js → fast-path-settings-XMFBYFUH.js} +2 -2
  256. package/chunks/{fr-4PL5GHG4.js → fr-FTZWF462.js} +1 -0
  257. package/chunks/{gemini-7PVQWHTH.js → gemini-VQY2YCPH.js} +137 -129
  258. package/chunks/{geminiContentGenerator-B2FOJJDJ.js → geminiContentGenerator-PAPXNIGU.js} +16 -13
  259. package/chunks/{glob-7YGXE6OV.js → glob-GVCUSBBF.js} +48 -50
  260. package/chunks/{goal-tools-TLJCE7YZ.js → goal-tools-5STK6OXW.js} +77 -31
  261. package/chunks/{grep-6DV6LTON.js → grep-5GPICQBU.js} +6 -6
  262. package/chunks/handleAutoUpdate-ZJPJN42W.js +109 -0
  263. package/chunks/i18n-BZYKOST7.js +124 -0
  264. package/chunks/{image-gen-7CSCJ73T.js → image-gen-J6FDGUZP.js} +8 -12
  265. package/chunks/initializer-GO2C5HE3.js +113 -0
  266. package/chunks/installationInfo-WM2GXQZ6.js +107 -0
  267. package/chunks/{ja-HZ7X7PQO.js → ja-2GL5FKYJ.js} +1 -0
  268. package/chunks/{keychain-token-storage-MTFTAESK.js → keychain-token-storage-37XPR34V.js} +2 -2
  269. package/chunks/list-ERDJB7PQ.js +116 -0
  270. package/chunks/{list-agents-43XUEXJV.js → list-agents-DI3YFTDT.js} +2 -2
  271. package/chunks/loadedSettingsAdapter-7JOCVOKV.js +110 -0
  272. package/chunks/{loggingContentGenerator-RNE66CKK.js → loggingContentGenerator-3ONLU3BS.js} +327 -39
  273. package/chunks/{loop-wakeup-E54KDUXC.js → loop-wakeup-XJFONSQ7.js} +5 -5
  274. package/chunks/{ls-CGL2UC3H.js → ls-3VAT2J7A.js} +4 -4
  275. package/chunks/{lsp-5IKUO5DX.js → lsp-5W7IRUBH.js} +2 -2
  276. package/chunks/{managed-npm-update-Y3SC3GLJ.js → managed-npm-update-TLRCC2GE.js} +62 -62
  277. package/chunks/mcp-2LH3QXR2.js +110 -0
  278. package/chunks/{monitor-PXYSGSUN.js → monitor-P7LDAL4W.js} +48 -50
  279. package/chunks/nonInteractiveCli-E5T7PZ27.js +184 -0
  280. package/chunks/{notebook-edit-ISIBJVBR.js → notebook-edit-F7KSG4WQ.js} +49 -51
  281. package/chunks/open-with-auth-4UI3KHUR.js +55 -0
  282. package/chunks/{openaiContentGenerator-6TBOPEGT.js → openaiContentGenerator-2EXCZUGN.js} +29 -32
  283. package/chunks/pidfile-P25DWA5Q.js +111 -0
  284. package/chunks/process-registry-OAEG6WGC.js +662 -0
  285. package/chunks/{processUtils-YK2TDTTU.js → processUtils-PVDKBL35.js} +2 -2
  286. package/chunks/prompt-terminal-ledger-AJ7T7OIV.js +105 -0
  287. package/chunks/{pt-QT5N2Q6Q.js → pt-XN2YWJVM.js} +1 -0
  288. package/chunks/{qwenContentGenerator-CLDMA2Y4.js → qwenContentGenerator-TBBRLWIT.js} +54 -62
  289. package/chunks/{qwenOAuth2-DLDR6UC5.js → qwenOAuth2-OF5WRBQT.js} +7 -11
  290. package/chunks/read-file-6IIY4RLJ.js +32 -0
  291. package/chunks/{read-mcp-resource-XYES2B42.js → read-mcp-resource-XD257PGJ.js} +2 -2
  292. package/chunks/read-package-up-6T6ICKR7.js +13 -0
  293. package/chunks/{record-artifact-W3IBTGL7.js → record-artifact-VW23GS4F.js} +4 -5
  294. package/chunks/report-findings-XA3FJG3N.js +33 -0
  295. package/chunks/request-shutdown-BCLA3JV2.js +133 -0
  296. package/chunks/resumeHistoryUtils-44IETXDY.js +118 -0
  297. package/chunks/ripGrep-E7ESZ7SS.js +39 -0
  298. package/chunks/{ru-STMG5BPD.js → ru-OLTMFJEW.js} +1 -0
  299. package/chunks/{run-qwen-serve-XJHOW2NY.js → run-qwen-serve-DXBCYW7V.js} +924 -356
  300. package/chunks/runtime-RUSPD35D.js +148 -0
  301. package/chunks/scheduled-tasks-DVRJZO6I.js +127 -0
  302. package/chunks/scheduler-TDRB2NSY.js +122 -0
  303. package/chunks/{sdk-exporters-http-RSIOP3G2.js → sdk-exporters-http-TTU2CHBU.js} +5 -5
  304. package/chunks/{sdk-impl-CB3KARSK.js → sdk-impl-UUMVYMAL.js} +12 -6
  305. package/chunks/{send-message-J4VT46OI.js → send-message-AJ4OCUBV.js} +24 -29
  306. package/chunks/serve-KITOM7OR.js +118 -0
  307. package/chunks/{server-74ONDK62.js → server-THCOMUC2.js} +5814 -4549
  308. package/chunks/{session-BO6VBWJP.js → session-XKR5MPXE.js} +152 -142
  309. package/chunks/session-pr-refresh-KRBH7KDA.js +278 -0
  310. package/chunks/{settings-35QZNFDG.js → settings-YXZ4XBKK.js} +72 -72
  311. package/chunks/shell-5FJ2DZ3W.js +93 -0
  312. package/chunks/{skill-DKEMQSNJ.js → skill-VMMJZ6CJ.js} +161 -33
  313. package/chunks/skill-settings-7SG4YA2W.js +118 -0
  314. package/chunks/spawnChannel-BPMIXRBI.js +112 -0
  315. package/chunks/standalone-update-QN5HFRIC.js +118 -0
  316. package/chunks/{startInteractiveUI-J2QSGWPU.js → startInteractiveUI-5A7RQFRP.js} +3139 -2438
  317. package/chunks/{syntheticOutput-JAXMIMZP.js → syntheticOutput-ML43GEFN.js} +3 -3
  318. package/chunks/{task-create-I2H322E4.js → task-create-QN4LYRSE.js} +11 -11
  319. package/chunks/{task-list-3OLIWFTQ.js → task-list-JPLGK45U.js} +5 -5
  320. package/chunks/{task-stop-JAUY6MSY.js → task-stop-CXEH5L2D.js} +2 -2
  321. package/chunks/{task-update-B3XO4CPI.js → task-update-IWEOJFV2.js} +11 -11
  322. package/chunks/{team-create-W534PMGX.js → team-create-HVGVUL2L.js} +49 -51
  323. package/chunks/{team-delete-Q7GE7RRI.js → team-delete-RZVVSGCY.js} +5 -5
  324. package/chunks/{team-plan-approval-WNV6P6NG.js → team-plan-approval-S5A5FQWU.js} +48 -50
  325. package/chunks/terminal-image-renderer-SIVPPXDI.js +114 -0
  326. package/chunks/theme-manager-TA33UZZX.js +102 -0
  327. package/chunks/{todoWrite-FJJTY2TI.js → todoWrite-WDJNQEMW.js} +43 -25
  328. package/chunks/{tool-search-Y4KL3LRE.js → tool-search-NX7IPDKP.js} +19 -20
  329. package/chunks/total-session-admission-PWXZBOVX.js +114 -0
  330. package/chunks/trustedFolders-V6Y4CU3F.js +122 -0
  331. package/chunks/{update-relaunch-OHVFN6KF.js → update-relaunch-CGSX3R37.js} +6 -6
  332. package/chunks/updateCheck-T5O2WGIB.js +118 -0
  333. package/chunks/useAutoAcceptIndicator-ULBJJWPY.js +120 -0
  334. package/chunks/{validateNonInterActiveAuth-WJXH426F.js → validateNonInterActiveAuth-E5S2JSRC.js} +114 -108
  335. package/chunks/{version-QMDRADXM.js → version-LS5JPU36.js} +2 -2
  336. package/chunks/{web-fetch-ROS6P4LP.js → web-fetch-RLMFZTS3.js} +25 -244
  337. package/chunks/{web-search-JS3E76O6.js → web-search-LMCIC4N5.js} +11 -13
  338. package/chunks/{web-shell-static-3NUTRHAH.js → web-shell-static-A6QMUNNV.js} +11 -4
  339. package/chunks/webapi-Z5OM224P.js +4118 -0
  340. package/chunks/{workflow-2FCMBTBZ.js → workflow-JBXU3IGA.js} +713 -138
  341. package/chunks/workspace-providers-status-525ORQBH.js +114 -0
  342. package/chunks/{workspace-registration-store-SU4EJKSD.js → workspace-registration-store-7Y44R4LV.js} +1 -1
  343. package/chunks/workspace-registry-HS4RWUSQ.js +123 -0
  344. package/chunks/workspace-service-7PXDM6EB.js +129 -0
  345. package/chunks/workspace-skills-status-FMJGC2XI.js +113 -0
  346. package/chunks/{workspace-trust-reconciler-4Y4F7XIX.js → workspace-trust-reconciler-3YTWSQBY.js} +78 -77
  347. package/chunks/write-file-BVQRYQQO.js +88 -0
  348. package/chunks/{zh-TW-NX43Z2S2.js → zh-TW-RPTMRTHG.js} +5 -1
  349. package/chunks/{zh-3JQ75KFU.js → zh-UNY63FR3.js} +5 -1
  350. package/chunks/{zoom-image-DNBKCGGF.js → zoom-image-FGCELNS4.js} +14 -15
  351. package/cli.js +13 -13
  352. package/locales/ca.js +3 -0
  353. package/locales/de.js +1 -0
  354. package/locales/en.js +5 -0
  355. package/locales/fr.js +1 -0
  356. package/locales/ja.js +1 -0
  357. package/locales/pt.js +1 -0
  358. package/locales/ru.js +1 -0
  359. package/locales/zh-TW.js +5 -0
  360. package/locales/zh.js +5 -0
  361. package/package.json +3 -3
  362. package/web-shell/assets/{abnfDiagram-VCTEODGH-DWHXEVlf.js → abnfDiagram-VCTEODGH-2XZDeWYO.js} +1 -1
  363. package/web-shell/assets/{arc-CXKjm86V.js → arc-B6UgMh90.js} +1 -1
  364. package/web-shell/assets/{architectureDiagram-5GKGNRK7-B_ynI0cX.js → architectureDiagram-5GKGNRK7-DZgNFeN1.js} +1 -1
  365. package/web-shell/assets/{blockDiagram-NRAW4CY4-DMebd9X0.js → blockDiagram-NRAW4CY4-DQ2wvBFN.js} +1 -1
  366. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BZ5BlxS-.js → c4Diagram-UCG6FXSJ-DMmQMrc4.js} +1 -1
  367. package/web-shell/assets/channel-D_TyfiTx.js +1 -0
  368. package/web-shell/assets/{chunk-2Q5K7J3B-CluJKopE.js → chunk-2Q5K7J3B-C8Zh2e9y.js} +1 -1
  369. package/web-shell/assets/{chunk-5VM5RSS4-hzDAPFOo.js → chunk-5VM5RSS4-C3LTenP8.js} +1 -1
  370. package/web-shell/assets/{chunk-F27PBJKO-6vHioKJe.js → chunk-F27PBJKO-CxABOc8n.js} +1 -1
  371. package/web-shell/assets/{chunk-G27WJ6UU-B_5hKTGo.js → chunk-G27WJ6UU-CD_JxHDC.js} +1 -1
  372. package/web-shell/assets/{chunk-JWPE2WC7-CO9VoFCH.js → chunk-JWPE2WC7-BdmZPmce.js} +1 -1
  373. package/web-shell/assets/{chunk-LCL6LL3I-7L5JpxYu.js → chunk-LCL6LL3I-80bcHmfK.js} +1 -1
  374. package/web-shell/assets/{chunk-POPQ4Y6H-DHLJMAqj.js → chunk-POPQ4Y6H-CNpLZyQF.js} +1 -1
  375. package/web-shell/assets/{chunk-SVP7TREG-Dt-4Cqdl.js → chunk-SVP7TREG-CXlKgMv3.js} +1 -1
  376. package/web-shell/assets/{chunk-XXDRQBXY-QlSQ3ssG.js → chunk-XXDRQBXY-CivyYyvL.js} +1 -1
  377. package/web-shell/assets/classDiagram-DTDB5LWJ-Bw_H3xMd.js +1 -0
  378. package/web-shell/assets/classDiagram-v2-JRS7N3AN-Bw_H3xMd.js +1 -0
  379. package/web-shell/assets/{cose-bilkent-JH36ORCC-DMw3EOxl.js → cose-bilkent-JH36ORCC-COAjRH3w.js} +1 -1
  380. package/web-shell/assets/{cynefin-OW5HDTMX-s6vEA7RQ.js → cynefin-OW5HDTMX-DqU1JHO6.js} +1 -1
  381. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-AOKsvYLt.js → cynefinDiagram-5FMLGOSQ-BCLI1Bvj.js} +1 -1
  382. package/web-shell/assets/{dagre-3AP2YEHR-9QAZn3m7.js → dagre-3AP2YEHR-DmAz8nqF.js} +1 -1
  383. package/web-shell/assets/{diagram-S7CK7UJ4-CWpnu4FN.js → diagram-S7CK7UJ4-Ck-5QLT5.js} +1 -1
  384. package/web-shell/assets/{diagram-UQ7AKVKN-9l0jXD8q.js → diagram-UQ7AKVKN-C0ljX0mW.js} +1 -1
  385. package/web-shell/assets/{diagram-VSXAHHWV-BMUHroj4.js → diagram-VSXAHHWV-DPgvT24v.js} +1 -1
  386. package/web-shell/assets/{diagram-VX7I27RA-Co9x27vm.js → diagram-VX7I27RA-D7hWr1LR.js} +1 -1
  387. package/web-shell/assets/{diagram-Z3DM3KII-BKnTeOER.js → diagram-Z3DM3KII-D59tlOta.js} +1 -1
  388. package/web-shell/assets/{ebnfDiagram-PWID7BFC-QBZD9CKG.js → ebnfDiagram-PWID7BFC-CY2DDx00.js} +1 -1
  389. package/web-shell/assets/{erDiagram-SSCWMZ5O-dKWAEGun.js → erDiagram-SSCWMZ5O-AR4h8Q8k.js} +1 -1
  390. package/web-shell/assets/{flowDiagram-A5DVABFB-CR_UgVqj.js → flowDiagram-A5DVABFB-DbF0HqBz.js} +1 -1
  391. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DQUnjWO6.js → ganttDiagram-EL5Y4UJY-J52mrIhc.js} +1 -1
  392. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-C4j59wPL.js → gitGraphDiagram-WWUBYQGX-CcgMY5EV.js} +1 -1
  393. package/web-shell/assets/index-BjUg3vPr.css +5 -0
  394. package/web-shell/assets/index-CFwYYVFU.js +1873 -0
  395. package/web-shell/assets/{index-tYXRIPz4.js → index-MQs7l15A.js} +1 -1
  396. package/web-shell/assets/{infoDiagram-RXCK75RN-mzqbt50w.js → infoDiagram-RXCK75RN-Buu3ibp2.js} +1 -1
  397. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-ChLOqhGl.js → ishikawaDiagram-5VMMS53U-CoKQxnF3.js} +1 -1
  398. package/web-shell/assets/{journeyDiagram-EYS64GPL-SifZE-R8.js → journeyDiagram-EYS64GPL-CxK35mTC.js} +1 -1
  399. package/web-shell/assets/{kanban-definition-3QL26DDD-Sft2qlbc.js → kanban-definition-3QL26DDD-tk2CHTQ1.js} +1 -1
  400. package/web-shell/assets/{layout-O2uHVkPd.js → layout-DEpMwb4u.js} +1 -1
  401. package/web-shell/assets/{linear-BVqYgjSc.js → linear-DSQsLh53.js} +1 -1
  402. package/web-shell/assets/{mermaid.core-CZ9MQaJ6.js → mermaid.core-DIZuPBQT.js} +6 -6
  403. package/web-shell/assets/{mindmap-definition-FBJOCRG2-BNQYjBqM.js → mindmap-definition-FBJOCRG2-CCAvk8r_.js} +1 -1
  404. package/web-shell/assets/{pegDiagram-XKGWAZYB-rh1J8uv6.js → pegDiagram-XKGWAZYB-CpJ28jxz.js} +1 -1
  405. package/web-shell/assets/{pieDiagram-E7YTZNPT-BQHR5mn9.js → pieDiagram-E7YTZNPT-ziJR2R32.js} +1 -1
  406. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CLCbP7mK.js → quadrantDiagram-AXDQQJYC-B60zE3Mh.js} +1 -1
  407. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CDQhrkbm.js → railroadDiagram-O6MQD6OU-M3GqQ_g1.js} +1 -1
  408. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BdP9uswg.js → requirementDiagram-EFPCY7ZU-ntCtYqTk.js} +1 -1
  409. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CFZDFBXF.js → sankeyDiagram-P5KCCOFB-AYLoItcZ.js} +1 -1
  410. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BW9WOJXI.js → sequenceDiagram-WJ2MYXX4-DEWk4Mlj.js} +1 -1
  411. package/web-shell/assets/{sizeCapture-X5ZJPWSS-CPMia32z.js → sizeCapture-X5ZJPWSS-OOWvzPay.js} +1 -1
  412. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BANp9p7F.js → stateDiagram-HBIQ2CUA-BcMmvxem.js} +1 -1
  413. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DRLLqPWO.js +1 -0
  414. package/web-shell/assets/{swimlanes-XN3QIQJK-JroXksK-.js → swimlanes-XN3QIQJK-DuZTWWvh.js} +1 -1
  415. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DOfLQQYt.js +8 -0
  416. package/web-shell/assets/{timeline-definition-24CTP7MA-DfuVIfYY.js → timeline-definition-24CTP7MA-CjqtZXEd.js} +1 -1
  417. package/web-shell/assets/{vennDiagram-4TSXK5OY-BZXoSjRB.js → vennDiagram-4TSXK5OY-knVCVkQ4.js} +1 -1
  418. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-BdiY8avC.js → wardleyDiagram-VM6X3IG4-yoWhw0a2.js} +1 -1
  419. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-DcXh_U4H.js → xychartDiagram-S5SC5T6Z-ue14E_gL.js} +1 -1
  420. package/web-shell/index.html +20 -5
  421. package/chunks/MaxSizedBox-3OZJCC3J.js +0 -110
  422. package/chunks/agent-BFE3DQM3.js +0 -93
  423. package/chunks/agent-headless-LLVKZZ4P.js +0 -87
  424. package/chunks/bridge-EBYO4SYM.js +0 -118
  425. package/chunks/channel-settings-store-5VP2Y2YM.js +0 -115
  426. package/chunks/chunk-2J3OJGTL.js +0 -98
  427. package/chunks/chunk-7IV52LTO.js +0 -202
  428. package/chunks/chunk-AXMWHKXA.js +0 -42
  429. package/chunks/chunk-F6WFNA7U.js +0 -22
  430. package/chunks/chunk-IO257NUD.js +0 -623
  431. package/chunks/chunk-JS73NNWF.js +0 -30
  432. package/chunks/chunk-SJ4HB27T.js +0 -945
  433. package/chunks/chunk-VGHZT6JR.js +0 -51
  434. package/chunks/chunk-YHC2EYYG.js +0 -125
  435. package/chunks/computer-use-EGPWFEX6.js +0 -2142
  436. package/chunks/config-utils-WZ43VOBS.js +0 -25
  437. package/chunks/contextCommand-5DSEQI6S.js +0 -106
  438. package/chunks/daemon-status-provider-EYMLPYJU.js +0 -116
  439. package/chunks/daemon-trust-policy-CQYKZ7VO.js +0 -112
  440. package/chunks/deferred-core-runtime-WFEPUXZR.js +0 -114
  441. package/chunks/earlyInputCapture-PN4PP7V5.js +0 -107
  442. package/chunks/environment-WUPHLPKZ.js +0 -127
  443. package/chunks/errors-WPMPVIAT.js +0 -113
  444. package/chunks/exitPlanMode-MLFHYZNB.js +0 -85
  445. package/chunks/handleAutoUpdate-F5OTWUT5.js +0 -109
  446. package/chunks/i18n-C562S6KN.js +0 -124
  447. package/chunks/initializer-7YPGOFP4.js +0 -113
  448. package/chunks/installationInfo-ARU5Q2H7.js +0 -107
  449. package/chunks/list-KTSK275C.js +0 -116
  450. package/chunks/loadedSettingsAdapter-F3T2EQ5J.js +0 -110
  451. package/chunks/mcp-6ONTVPAY.js +0 -110
  452. package/chunks/nonInteractiveCli-KZDWFAN6.js +0 -178
  453. package/chunks/pidfile-IO7ALSZF.js +0 -111
  454. package/chunks/process-registry-PMJOA5CO.js +0 -172
  455. package/chunks/prompt-terminal-ledger-TCE7PMCE.js +0 -105
  456. package/chunks/read-file-2HOD2ATO.js +0 -33
  457. package/chunks/resumeHistoryUtils-DDSBAQJS.js +0 -118
  458. package/chunks/ripGrep-E7P6K4QR.js +0 -40
  459. package/chunks/runtime-J4SPTJRQ.js +0 -148
  460. package/chunks/scheduler-VRAEZZ4E.js +0 -122
  461. package/chunks/serve-KEAWV4TI.js +0 -118
  462. package/chunks/shell-H6K63WG3.js +0 -95
  463. package/chunks/skill-settings-TCKLXIXM.js +0 -118
  464. package/chunks/spawnChannel-2K6NKWM5.js +0 -111
  465. package/chunks/standalone-update-LSCGOEFP.js +0 -118
  466. package/chunks/terminal-image-renderer-UHX3UD66.js +0 -114
  467. package/chunks/theme-manager-6B47ZPIF.js +0 -102
  468. package/chunks/total-session-admission-NSCFWGJH.js +0 -113
  469. package/chunks/trustedFolders-7XMJWGQ3.js +0 -122
  470. package/chunks/updateCheck-EOVLHD4T.js +0 -118
  471. package/chunks/useAutoAcceptIndicator-ZNMIGBTN.js +0 -120
  472. package/chunks/workspace-providers-status-GPGU5YMT.js +0 -113
  473. package/chunks/workspace-registry-BQISXT6Y.js +0 -122
  474. package/chunks/workspace-service-LLY6HCUC.js +0 -129
  475. package/chunks/workspace-skills-status-L5N2Y3ZP.js +0 -113
  476. package/chunks/write-file-EJHU2Z3E.js +0 -90
  477. package/web-shell/assets/channel-Zg3WHgq_.js +0 -1
  478. package/web-shell/assets/classDiagram-DTDB5LWJ-C16l9jQz.js +0 -1
  479. package/web-shell/assets/classDiagram-v2-JRS7N3AN-C16l9jQz.js +0 -1
  480. package/web-shell/assets/index-BN_m_uHJ.css +0 -5
  481. package/web-shell/assets/index-DrlJu79f.js +0 -1792
  482. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-NZYAoQLU.js +0 -1
  483. 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-FALBWZF4.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-ZTP35P4B.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-RVXDXY6I.js";
31
+ import {
32
+ MINIMUM_MAX_HEIGHT,
33
+ MaxSizedBox
34
+ } from "./chunk-NU7RKEZR.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-AJGR6E6Z.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-WAOIHTJS.js";
59
61
  import {
60
62
  require_jsx_runtime
61
63
  } from "./chunk-SV5PQVQE.js";
@@ -77,23 +79,23 @@ import {
77
79
  renderMermaidImageAsync,
78
80
  renderTerminalImage,
79
81
  wasKittyImageWritten
80
- } from "./chunk-AP3B7LKD.js";
82
+ } from "./chunk-BXDAPVQU.js";
81
83
  import {
82
84
  formatInlineImageOverflow
83
- } from "./chunk-JOLJTKIG.js";
84
- import {
85
- relaunchApp
86
- } from "./chunk-AVCCKIZ6.js";
85
+ } from "./chunk-TPI7O7HR.js";
87
86
  import {
88
87
  isTerminalGoalStatusKind
89
88
  } from "./chunk-EKTCKZV5.js";
90
89
  import {
91
90
  resolveColor,
92
91
  themeManager
93
- } from "./chunk-S3G6YFQC.js";
92
+ } from "./chunk-QFCDF5PL.js";
94
93
  import {
95
94
  getErrorMessage
96
- } from "./chunk-OARZJFZX.js";
95
+ } from "./chunk-JN4IWWMN.js";
96
+ import {
97
+ relaunchApp
98
+ } from "./chunk-YRZX2PHA.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-AY3BNYEQ.js";
120
122
  import {
121
123
  getPersistScopeForModelSelection
122
- } from "./chunk-6UQSU7CQ.js";
124
+ } from "./chunk-HPXV655A.js";
123
125
  import {
124
126
  getCurrentLanguage,
125
127
  localizeToolDisplayName,
126
128
  t
127
- } from "./chunk-OE52YHCZ.js";
129
+ } from "./chunk-RWZB422L.js";
128
130
  import {
129
131
  isWorkspaceTrusted
130
- } from "./chunk-L4HVF7LM.js";
132
+ } from "./chunk-CYAUBK46.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-W6DUQ5GA.js";
144
146
  import {
145
147
  sanitizeForOsc,
146
148
  supportsHyperlinks,
147
149
  wrapForMultiplexer
148
- } from "./chunk-O5BDEWBC.js";
150
+ } from "./chunk-3JXM2CVW.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-EWIQ3NAE.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-SZLBBZH4.js";
171
173
  import {
172
174
  ToolDisplayNames,
173
175
  ToolNames,
174
176
  ToolNamesMigration,
175
177
  isTerminalImageDisplay
176
- } from "./chunk-6NFAEG54.js";
178
+ } from "./chunk-UTLCH2FK.js";
177
179
  import {
178
180
  createDebugLogger,
179
181
  escapePath,
180
182
  unescapePath
181
- } from "./chunk-A5F2YNO6.js";
183
+ } from "./chunk-UHQFIS7N.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,13 @@ 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
+ }) => {
12388
+ if (data.unchanged) {
12389
+ return null;
12390
+ }
12391
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TodoDisplay, { todos: data.todos });
12392
+ }, "TodoResultRenderer");
12393
+ var PlanResultRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childWidth }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12309
12394
  PlanSummaryDisplay,
12310
12395
  {
12311
12396
  data,
@@ -12317,14 +12402,14 @@ var priorApprovalCalls = /* @__PURE__ */ __name((data) => (data.toolCalls ?? [])
12317
12402
  var SubagentApprovalContext = /* @__PURE__ */ __name(({ data }) => {
12318
12403
  const priorCalls = priorApprovalCalls(data);
12319
12404
  if (priorCalls.length === 0) return null;
12320
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Box_default, { flexDirection: "column", children: priorCalls.map((call) => {
12405
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { flexDirection: "column", children: priorCalls.map((call) => {
12321
12406
  const glyph = call.status === "failed" ? "\u2716" : call.status === "success" ? "\u2714" : ICON.CIRCLE_EMPTY;
12322
12407
  const displayName = localizeToolDisplayName(
12323
12408
  TOOL_DISPLAY_BY_NAME[call.name] ?? call.name
12324
12409
  );
12325
12410
  const desc = (call.description ?? "").replace(/\s*\n\s*/g, " ").trim();
12326
12411
  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);
12412
+ 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
12413
  }) });
12329
12414
  }, "SubagentApprovalContext");
12330
12415
  var SubagentExecutionRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childWidth, config, isFocused }) => {
@@ -12336,14 +12421,14 @@ var SubagentExecutionRenderer = /* @__PURE__ */ __name(({ data, availableHeight,
12336
12421
  MINIMUM_MAX_HEIGHT,
12337
12422
  availableHeight - contextLines - HEADER_LINES
12338
12423
  ) : 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: ":" })
12424
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 1, children: [
12425
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { children: [
12426
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: "Approval requested by " }),
12427
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { bold: true, color: theme.text.accent, children: agentLabel }),
12428
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: ":" })
12344
12429
  ] }),
12345
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SubagentApprovalContext, { data }),
12346
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12430
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SubagentApprovalContext, { data }),
12431
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12347
12432
  ToolConfirmationMessage,
12348
12433
  {
12349
12434
  confirmationDetails: data.pendingConfirmation,
@@ -12358,16 +12443,16 @@ var SubagentExecutionRenderer = /* @__PURE__ */ __name(({ data, availableHeight,
12358
12443
  }
12359
12444
  if (data.pendingConfirmation) {
12360
12445
  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: [
12446
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { paddingLeft: 1, children: [
12447
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { color: theme.text.secondary, dimColor: true, children: [
12363
12448
  "\u25CC Queued approval:",
12364
12449
  " "
12365
12450
  ] }),
12366
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { dimColor: true, children: agentLabel })
12451
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { dimColor: true, children: agentLabel })
12367
12452
  ] });
12368
12453
  }
12369
12454
  if (data.status === "completed" || data.status === "failed" || data.status === "cancelled") {
12370
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SubagentScrollbackSummary, { data });
12455
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SubagentScrollbackSummary, { data });
12371
12456
  }
12372
12457
  return null;
12373
12458
  }, "SubagentExecutionRenderer");
@@ -12407,12 +12492,12 @@ var SubagentScrollbackSummary = /* @__PURE__ */ __name(({ data }) => {
12407
12492
  const typePrefix = data.subagentName ? `${escapeAnsiCtrlCodes(data.subagentName)}: ` : "";
12408
12493
  const safeDescription = escapeAnsiCtrlCodes(data.taskDescription ?? "");
12409
12494
  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 })
12495
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { wrap: "truncate-end", children: [
12496
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color, children: `${glyph} ` }),
12497
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { bold: true, children: typePrefix }),
12498
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: safeDescription }),
12499
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: tail }),
12500
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: reason })
12416
12501
  ] }) });
12417
12502
  }, "SubagentScrollbackSummary");
12418
12503
  var StringResultRenderer = /* @__PURE__ */ __name(({ data, renderAsMarkdown, availableHeight, childWidth }) => {
@@ -12421,7 +12506,7 @@ var StringResultRenderer = /* @__PURE__ */ __name(({ data, renderAsMarkdown, ava
12421
12506
  displayData = "..." + displayData.slice(-MAXIMUM_RESULT_DISPLAY_CHARACTERS);
12422
12507
  }
12423
12508
  if (renderAsMarkdown) {
12424
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12509
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12425
12510
  MarkdownDisplay,
12426
12511
  {
12427
12512
  text: displayData,
@@ -12436,25 +12521,25 @@ var StringResultRenderer = /* @__PURE__ */ __name(({ data, renderAsMarkdown, ava
12436
12521
  availableHeight,
12437
12522
  childWidth
12438
12523
  );
12439
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12524
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12440
12525
  MaxSizedBox,
12441
12526
  {
12442
12527
  maxHeight: availableHeight,
12443
12528
  maxWidth: childWidth,
12444
12529
  additionalHiddenLinesCount: sliced.hiddenLinesCount,
12445
12530
  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 }) })
12531
+ 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
12532
  }
12448
12533
  );
12449
12534
  }, "StringResultRenderer");
12450
12535
  var DiffResultRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childWidth, settings }) => {
12451
12536
  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: [
12537
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { flexDirection: "column", children: [
12538
+ data.truncatedForSession && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { color: theme.status.warning, wrap: "wrap", children: [
12454
12539
  data.fileDiffTruncated ? "Saved session preview only; full diff omitted from JSONL" : "Saved session preview only; full file contents truncated in JSONL",
12455
12540
  data.fileDiffTruncated && typeof data.fileDiffLength === "number" ? ` (${data.fileDiffLength} chars).` : "."
12456
12541
  ] }),
12457
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12542
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12458
12543
  DiffRenderer,
12459
12544
  {
12460
12545
  diffContent: data.fileDiff,
@@ -12556,10 +12641,10 @@ var ToolMessage = /* @__PURE__ */ __name(({
12556
12641
  effectiveResultDisplay
12557
12642
  );
12558
12643
  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)(
12644
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { paddingY: 0, flexDirection: "column", children: [
12645
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { minHeight: 1, children: [
12646
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ToolStatusIndicator, { status, name }),
12647
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12563
12648
  ToolInfo,
12564
12649
  {
12565
12650
  name,
@@ -12572,8 +12657,8 @@ var ToolMessage = /* @__PURE__ */ __name(({
12572
12657
  )
12573
12658
  }
12574
12659
  ),
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)(
12660
+ 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)" }) }),
12661
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12577
12662
  ToolElapsedTime,
12578
12663
  {
12579
12664
  status,
@@ -12581,9 +12666,9 @@ var ToolMessage = /* @__PURE__ */ __name(({
12581
12666
  timeoutMs: shellTimeoutMs
12582
12667
  }
12583
12668
  ),
12584
- emphasis === "high" && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(TrailingIndicator, {})
12669
+ emphasis === "high" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TrailingIndicator, {})
12585
12670
  ] }),
12586
- visionBridgeNoticeText && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12671
+ visionBridgeNoticeText && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12587
12672
  StringResultRenderer,
12588
12673
  {
12589
12674
  data: visionBridgeNoticeText,
@@ -12591,9 +12676,10 @@ var ToolMessage = /* @__PURE__ */ __name(({
12591
12676
  childWidth: innerWidth
12592
12677
  }
12593
12678
  ) }),
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)(
12679
+ 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: [
12680
+ effectiveDisplayRenderer.type === "todo" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TodoResultRenderer, { data: effectiveDisplayRenderer.data }),
12681
+ effectiveDisplayRenderer.type === "findings" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(FindingsDisplay, { data: effectiveDisplayRenderer.data }),
12682
+ effectiveDisplayRenderer.type === "plan" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12597
12683
  PlanResultRenderer,
12598
12684
  {
12599
12685
  data: effectiveDisplayRenderer.data,
@@ -12601,7 +12687,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
12601
12687
  childWidth: innerWidth
12602
12688
  }
12603
12689
  ),
12604
- effectiveDisplayRenderer.type === "task" && config && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12690
+ effectiveDisplayRenderer.type === "task" && config && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12605
12691
  SubagentExecutionRenderer,
12606
12692
  {
12607
12693
  data: effectiveDisplayRenderer.data,
@@ -12612,7 +12698,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
12612
12698
  isPending
12613
12699
  }
12614
12700
  ),
12615
- effectiveDisplayRenderer.type === "diff" && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12701
+ effectiveDisplayRenderer.type === "diff" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12616
12702
  DiffResultRenderer,
12617
12703
  {
12618
12704
  data: effectiveDisplayRenderer.data,
@@ -12621,8 +12707,8 @@ var ToolMessage = /* @__PURE__ */ __name(({
12621
12707
  settings
12622
12708
  }
12623
12709
  ),
12624
- effectiveDisplayRenderer.type === "ansi" && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
12625
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12710
+ effectiveDisplayRenderer.type === "ansi" && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
12711
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12626
12712
  AnsiOutputText,
12627
12713
  {
12628
12714
  data: effectiveDisplayRenderer.data,
@@ -12630,7 +12716,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
12630
12716
  maxWidth: innerWidth
12631
12717
  }
12632
12718
  ),
12633
- effectiveDisplayRenderer.stats && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12719
+ effectiveDisplayRenderer.stats && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12634
12720
  ShellStatsBar,
12635
12721
  {
12636
12722
  ...effectiveDisplayRenderer.stats,
@@ -12638,7 +12724,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
12638
12724
  }
12639
12725
  )
12640
12726
  ] }),
12641
- effectiveDisplayRenderer.type === "image" && config && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12727
+ effectiveDisplayRenderer.type === "image" && config && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12642
12728
  TerminalImage,
12643
12729
  {
12644
12730
  data: effectiveDisplayRenderer.data,
@@ -12647,7 +12733,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
12647
12733
  availableTerminalHeight: availableHeight
12648
12734
  }
12649
12735
  ),
12650
- effectiveDisplayRenderer.type === "string" && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12736
+ effectiveDisplayRenderer.type === "string" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12651
12737
  StringResultRenderer,
12652
12738
  {
12653
12739
  data: effectiveDisplayRenderer.data,
@@ -12657,14 +12743,14 @@ var ToolMessage = /* @__PURE__ */ __name(({
12657
12743
  }
12658
12744
  )
12659
12745
  ] }) }),
12660
- ((images?.length ?? 0) > 0 || omittedImageCount !== void 0 && omittedImageCount > 0) && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
12746
+ ((images?.length ?? 0) > 0 || omittedImageCount !== void 0 && omittedImageCount > 0) && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
12661
12747
  Box_default,
12662
12748
  {
12663
12749
  paddingLeft: STATUS_INDICATOR_WIDTH,
12664
12750
  width: "100%",
12665
12751
  flexDirection: "column",
12666
12752
  children: [
12667
- images?.map((image, index) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12753
+ images?.map((image, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12668
12754
  TerminalImage,
12669
12755
  {
12670
12756
  image,
@@ -12673,11 +12759,11 @@ var ToolMessage = /* @__PURE__ */ __name(({
12673
12759
  },
12674
12760
  index
12675
12761
  )),
12676
- omittedImageCount !== void 0 && omittedImageCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { dimColor: true, children: formatInlineImageOverflow(omittedImageCount) })
12762
+ omittedImageCount !== void 0 && omittedImageCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { dimColor: true, children: formatInlineImageOverflow(omittedImageCount) })
12677
12763
  ]
12678
12764
  }
12679
12765
  ),
12680
- isThisShellFocused && config && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
12766
+ isThisShellFocused && config && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
12681
12767
  ShellInputPrompt,
12682
12768
  {
12683
12769
  activeShellPtyId: activeShellPtyId ?? null,
@@ -12731,15 +12817,15 @@ var ToolInfo = /* @__PURE__ */ __name(({
12731
12817
  }
12732
12818
  }
12733
12819
  }, [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: [
12820
+ 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: [
12821
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: nameColor, bold: true, children: localizeToolDisplayName(name) }),
12822
+ !hideDescription && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
12737
12823
  " ",
12738
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { color: theme.text.secondary, children: description })
12824
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: description })
12739
12825
  ] })
12740
12826
  ] }) });
12741
12827
  }, "ToolInfo");
12742
- var TrailingIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Text, { color: theme.text.primary, wrap: "truncate", children: [
12828
+ var TrailingIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { color: theme.text.primary, wrap: "truncate", children: [
12743
12829
  " ",
12744
12830
  "\u2190"
12745
12831
  ] }), "TrailingIndicator");
@@ -12747,7 +12833,7 @@ var TrailingIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_
12747
12833
  // packages/cli/src/ui/components/messages/InlineParallelAgentsDisplay.tsx
12748
12834
  init_esbuild_shims();
12749
12835
  var import_react29 = __toESM(require_react(), 1);
12750
- var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
12836
+ var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
12751
12837
  function deriveAgentId(toolCall, resultDisplay) {
12752
12838
  return `${resultDisplay.subagentName}-${toolCall.callId}`;
12753
12839
  }
@@ -12867,15 +12953,15 @@ var InlineParallelAgentsDisplay = /* @__PURE__ */ __name(({ toolCalls, contentWi
12867
12953
  visibleRows = [];
12868
12954
  }
12869
12955
  }
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: [
12956
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, paddingX: 1, children: [
12957
+ /* @__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 }) }),
12958
+ 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
12959
  "\u2026 +",
12874
12960
  overflowCount,
12875
12961
  " more ",
12876
12962
  overflowCount === 1 ? "agent" : "agents"
12877
12963
  ] }) }),
12878
- visibleRows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(AgentRow, { row, now }, row.agentId))
12964
+ visibleRows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(AgentRow, { row, now }, row.agentId))
12879
12965
  ] });
12880
12966
  }, "InlineParallelAgentsDisplay");
12881
12967
  var AgentRow = /* @__PURE__ */ __name(({ row, now }) => {
@@ -12889,16 +12975,16 @@ var AgentRow = /* @__PURE__ */ __name(({ row, now }) => {
12889
12975
  if (elapsed) trailingParts.push(elapsed);
12890
12976
  if (tokens) trailingParts.push(`${tokens} tok`);
12891
12977
  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 }) })
12978
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Box_default, { flexDirection: "row", children: [
12979
+ /* @__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 }) }),
12980
+ /* @__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 }) }),
12981
+ /* @__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 }) }),
12982
+ /* @__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
12983
  ] });
12898
12984
  }, "AgentRow");
12899
12985
 
12900
12986
  // packages/cli/src/ui/components/messages/ToolGroupMessage.tsx
12901
- var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
12987
+ var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
12902
12988
  function isAgentWithPendingConfirmation(rd) {
12903
12989
  return typeof rd === "object" && rd !== null && "type" in rd && rd.type === "task_execution" && rd.pendingConfirmation !== void 0;
12904
12990
  }
@@ -12991,7 +13077,7 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
12991
13077
  if (inlineToolCalls.length === 0) {
12992
13078
  return null;
12993
13079
  }
12994
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
13080
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
12995
13081
  InlineParallelAgentsDisplay,
12996
13082
  {
12997
13083
  toolCalls: inlineToolCalls,
@@ -13008,15 +13094,15 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
13008
13094
  if (allMemOpsComplete) {
13009
13095
  const readCount = memoryReadCount ?? 0;
13010
13096
  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: [
13097
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, children: [
13098
+ readCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Text, { dimColor: true, children: [
13013
13099
  ICON.CIRCLE_FILLED + " ",
13014
13100
  "Recalled ",
13015
13101
  readCount,
13016
13102
  " ",
13017
13103
  readCount === 1 ? "memory" : "memories"
13018
13104
  ] }) }),
13019
- writeCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Text, { dimColor: true, children: [
13105
+ writeCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Text, { dimColor: true, children: [
13020
13106
  ICON.CIRCLE_FILLED + " ",
13021
13107
  "Wrote ",
13022
13108
  writeCount,
@@ -13034,7 +13120,7 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
13034
13120
  (t2) => !isCollapsibleTool(t2.name) || t2.status === "Canceled" /* Canceled */ || hasInlineImageOutput(t2)
13035
13121
  );
13036
13122
  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: [
13123
+ 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
13124
  ICON.CIRCLE_FILLED + " ",
13039
13125
  [
13040
13126
  (memoryReadCount ?? 0) > 0 && `Recalled ${memoryReadCount} ${memoryReadCount === 1 ? "memory" : "memories"}`,
@@ -13042,8 +13128,8 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
13042
13128
  ].filter(Boolean).join(", ")
13043
13129
  ] }) }) : null;
13044
13130
  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)(
13131
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, children: [
13132
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
13047
13133
  CompactToolGroupDisplay,
13048
13134
  {
13049
13135
  toolCalls: collapsibleTools,
@@ -13076,8 +13162,8 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
13076
13162
  ),
13077
13163
  1
13078
13164
  ) : 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)(
13165
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, gap: 0, children: [
13166
+ collapsibleTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
13081
13167
  CompactToolGroupDisplay,
13082
13168
  {
13083
13169
  toolCalls: collapsibleTools,
@@ -13088,8 +13174,8 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
13088
13174
  nonCollapsibleTools.map((tool) => {
13089
13175
  const isConfirming = toolAwaitingApproval?.callId === tool.callId;
13090
13176
  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)(
13177
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box_default, { flexDirection: "column", minHeight: 1, children: [
13178
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box_default, { flexDirection: "row", alignItems: "center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
13093
13179
  ToolMessage,
13094
13180
  {
13095
13181
  ...tool,
@@ -13105,7 +13191,7 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
13105
13191
  isPending
13106
13192
  }
13107
13193
  ) }),
13108
- tool.status === "Confirming" /* Confirming */ && isConfirming && tool.confirmationDetails && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
13194
+ tool.status === "Confirming" /* Confirming */ && isConfirming && tool.confirmationDetails && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
13109
13195
  ToolConfirmationMessage,
13110
13196
  {
13111
13197
  confirmationDetails: tool.confirmationDetails,
@@ -13122,13 +13208,21 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
13122
13208
 
13123
13209
  // packages/cli/src/ui/components/messages/CompressionMessage.tsx
13124
13210
  init_esbuild_shims();
13125
- var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
13211
+ var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
13126
13212
  function CompressionMessage({
13127
13213
  compression
13128
13214
  }) {
13129
- const { isPending, originalTokenCount, newTokenCount, compressionStatus } = compression;
13215
+ const {
13216
+ isPending,
13217
+ originalTokenCount,
13218
+ newTokenCount,
13219
+ compressionStatus,
13220
+ originalTokenCountIsEstimated,
13221
+ newTokenCountIsEstimated
13222
+ } = compression;
13130
13223
  const originalTokens = originalTokenCount ?? 0;
13131
13224
  const newTokens = newTokenCount ?? 0;
13225
+ const formatTokens2 = /* @__PURE__ */ __name((count, isEstimated) => isEstimated ? `~${count}` : String(count), "formatTokens");
13132
13226
  const getCompressionText = /* @__PURE__ */ __name(() => {
13133
13227
  if (isPending) {
13134
13228
  return t("Compressing chat history");
@@ -13138,8 +13232,11 @@ function CompressionMessage({
13138
13232
  return t(
13139
13233
  "Chat history compressed from {{originalTokens}} to {{newTokens}} tokens.",
13140
13234
  {
13141
- originalTokens: String(originalTokens),
13142
- newTokens: String(newTokens)
13235
+ originalTokens: formatTokens2(
13236
+ originalTokens,
13237
+ originalTokenCountIsEstimated
13238
+ ),
13239
+ newTokens: formatTokens2(newTokens, newTokenCountIsEstimated)
13143
13240
  }
13144
13241
  );
13145
13242
  case 2 /* COMPRESSION_FAILED_INFLATED_TOKEN_COUNT */:
@@ -13160,9 +13257,9 @@ function CompressionMessage({
13160
13257
  }
13161
13258
  }, "getCompressionText");
13162
13259
  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)(
13260
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Box_default, { flexDirection: "row", children: [
13261
+ /* @__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 }) }),
13262
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
13166
13263
  Text,
13167
13264
  {
13168
13265
  color: compression.isPending ? theme.text.accent : theme.status.success,
@@ -13176,7 +13273,7 @@ __name(CompressionMessage, "CompressionMessage");
13176
13273
 
13177
13274
  // packages/cli/src/ui/components/messages/SummaryMessage.tsx
13178
13275
  init_esbuild_shims();
13179
- var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
13276
+ var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1);
13180
13277
  var SummaryMessage = /* @__PURE__ */ __name(({ summary }) => {
13181
13278
  const getText = /* @__PURE__ */ __name(() => {
13182
13279
  if (summary.isPending) {
@@ -13199,13 +13296,13 @@ var SummaryMessage = /* @__PURE__ */ __name(({ summary }) => {
13199
13296
  }, "getText");
13200
13297
  const getIcon = /* @__PURE__ */ __name(() => {
13201
13298
  if (summary.isPending) {
13202
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(build_default, { type: "dots" });
13299
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(build_default, { type: "dots" });
13203
13300
  }
13204
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text, { color: Colors.AccentGreen, children: "\u2713" });
13301
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Text, { color: Colors.AccentGreen, children: "\u2713" });
13205
13302
  }, "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)(
13303
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Box_default, { flexDirection: "row", children: [
13304
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Box_default, { width: 2, flexShrink: 0, children: getIcon() }),
13305
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
13209
13306
  Text,
13210
13307
  {
13211
13308
  color: summary.isPending ? Colors.AccentPurple : Colors.AccentGreen,
@@ -13386,7 +13483,7 @@ Link.propTypes = {
13386
13483
  var dist_default = Link;
13387
13484
 
13388
13485
  // packages/cli/src/ui/components/messages/StatusMessages.tsx
13389
- var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1);
13486
+ var import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1);
13390
13487
  var StatusMessage = /* @__PURE__ */ __name(({
13391
13488
  text,
13392
13489
  prefix,
@@ -13399,11 +13496,11 @@ var StatusMessage = /* @__PURE__ */ __name(({
13399
13496
  return null;
13400
13497
  }
13401
13498
  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 }),
13499
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Box_default, { flexDirection: "row", children: [
13500
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Box_default, { width: prefixWidth, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text, { color: prefixColor, children: prefix }) }),
13501
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
13502
+ text && text.trim() !== "" && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Text, { wrap: "wrap", color: textColor, children: [
13503
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(RenderInline, { text }),
13407
13504
  children
13408
13505
  ] }),
13409
13506
  footer
@@ -13414,17 +13511,17 @@ var InfoMessage = /* @__PURE__ */ __name(({
13414
13511
  text,
13415
13512
  linkUrl,
13416
13513
  linkText
13417
- }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
13514
+ }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
13418
13515
  StatusMessage,
13419
13516
  {
13420
13517
  text,
13421
13518
  prefix: ICON.CIRCLE_FILLED,
13422
13519
  prefixColor: theme.text.primary,
13423
13520
  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 }) })
13521
+ 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
13522
  }
13426
13523
  ), "InfoMessage");
13427
- var SuccessMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
13524
+ var SuccessMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
13428
13525
  StatusMessage,
13429
13526
  {
13430
13527
  text,
@@ -13433,7 +13530,7 @@ var SuccessMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, im
13433
13530
  textColor: theme.status.success
13434
13531
  }
13435
13532
  ), "SuccessMessage");
13436
- var WarningMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
13533
+ var WarningMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
13437
13534
  StatusMessage,
13438
13535
  {
13439
13536
  text,
@@ -13445,21 +13542,21 @@ var WarningMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, im
13445
13542
  var ErrorMessage = /* @__PURE__ */ __name(({
13446
13543
  text,
13447
13544
  hint
13448
- }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
13545
+ }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
13449
13546
  StatusMessage,
13450
13547
  {
13451
13548
  text,
13452
13549
  prefix: "\u2715",
13453
13550
  prefixColor: theme.status.error,
13454
13551
  textColor: theme.status.error,
13455
- children: hint && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Text, { color: theme.text.secondary, children: [
13552
+ children: hint && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Text, { color: theme.text.secondary, children: [
13456
13553
  " (",
13457
13554
  hint,
13458
13555
  ")"
13459
13556
  ] })
13460
13557
  }
13461
13558
  ), "ErrorMessage");
13462
- var RetryCountdownMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
13559
+ var RetryCountdownMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
13463
13560
  StatusMessage,
13464
13561
  {
13465
13562
  text,
@@ -13468,7 +13565,7 @@ var RetryCountdownMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */
13468
13565
  textColor: theme.text.secondary
13469
13566
  }
13470
13567
  ), "RetryCountdownMessage");
13471
- var VisionNoticeMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
13568
+ var VisionNoticeMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
13472
13569
  StatusMessage,
13473
13570
  {
13474
13571
  text,
@@ -13477,23 +13574,23 @@ var VisionNoticeMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (
13477
13574
  textColor: theme.text.secondary
13478
13575
  }
13479
13576
  ), "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: [
13577
+ var AwayRecapMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Box_default, { flexDirection: "row", children: [
13578
+ /* @__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 }) }),
13579
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Text, { wrap: "wrap", children: [
13580
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Text, { color: theme.text.secondary, bold: true, children: [
13484
13581
  "recap:",
13485
13582
  " "
13486
13583
  ] }),
13487
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Text, { color: theme.text.secondary, italic: true, children: text })
13584
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text, { color: theme.text.secondary, italic: true, children: text })
13488
13585
  ] })
13489
13586
  ] }), "AwayRecapMessage");
13490
13587
 
13491
13588
  // packages/cli/src/ui/components/AboutBox.tsx
13492
13589
  init_esbuild_shims();
13493
- var import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1);
13590
+ var import_jsx_runtime27 = __toESM(require_jsx_runtime(), 1);
13494
13591
  var AboutBox = /* @__PURE__ */ __name(({ width, ...props }) => {
13495
13592
  const fields = getSystemInfoFields(props);
13496
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
13593
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
13497
13594
  Box_default,
13498
13595
  {
13499
13596
  borderStyle: "round",
@@ -13502,15 +13599,15 @@ var AboutBox = /* @__PURE__ */ __name(({ width, ...props }) => {
13502
13599
  padding: 1,
13503
13600
  width,
13504
13601
  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)(
13602
+ /* @__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") }) }),
13603
+ fields.map((field) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
13507
13604
  Box_default,
13508
13605
  {
13509
13606
  flexDirection: "row",
13510
13607
  marginTop: field.label === t("Auth") ? 1 : 0,
13511
13608
  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 }) })
13609
+ /* @__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 }) }),
13610
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { color: theme.text.primary, children: field.value }) })
13514
13611
  ]
13515
13612
  },
13516
13613
  field.label
@@ -13640,20 +13737,20 @@ function sortSources(sources) {
13640
13737
  __name(sortSources, "sortSources");
13641
13738
 
13642
13739
  // 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 })
13740
+ var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1);
13741
+ var StatRow = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { children: [
13742
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: 28, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.link, children: title }) }),
13743
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { flexGrow: 1, children })
13647
13744
  ] }), "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: [
13745
+ var SubStatRow = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { paddingLeft: 2, children: [
13746
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: 26, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
13650
13747
  "\xBB ",
13651
13748
  title
13652
13749
  ] }) }),
13653
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { flexGrow: 1, children })
13750
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { flexGrow: 1, children })
13654
13751
  ] }), "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 }),
13752
+ var Section = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { flexDirection: "column", width: "100%", marginBottom: 1, children: [
13753
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.primary, children: title }),
13657
13754
  children
13658
13755
  ] }), "Section");
13659
13756
  var ModelUsageTable = /* @__PURE__ */ __name(({ models, totalCachedTokens, cacheEfficiency }) => {
@@ -13662,14 +13759,14 @@ var ModelUsageTable = /* @__PURE__ */ __name(({ models, totalCachedTokens, cache
13662
13759
  const inputTokensWidth = 15;
13663
13760
  const outputTokensWidth = 15;
13664
13761
  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") }) })
13762
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
13763
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { children: [
13764
+ /* @__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") }) }),
13765
+ /* @__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") }) }),
13766
+ /* @__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") }) }),
13767
+ /* @__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
13768
  ] }),
13672
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
13769
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
13673
13770
  Box_default,
13674
13771
  {
13675
13772
  borderStyle: "round",
@@ -13681,15 +13778,15 @@ var ModelUsageTable = /* @__PURE__ */ __name(({ models, totalCachedTokens, cache
13681
13778
  width: nameWidth + requestsWidth + inputTokensWidth + outputTokensWidth
13682
13779
  }
13683
13780
  ),
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() }) })
13781
+ entries.map(({ key, label, metrics }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { children: [
13782
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: nameWidth, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.primary, children: label }) }),
13783
+ /* @__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 }) }),
13784
+ /* @__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() }) }),
13785
+ /* @__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
13786
  ] }, 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:") }),
13787
+ cacheEfficiency > 0 && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
13788
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.primary, children: [
13789
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.status.success, children: t("Savings Highlight:") }),
13693
13790
  " ",
13694
13791
  totalCachedTokens.toLocaleString(),
13695
13792
  " (",
@@ -13698,8 +13795,8 @@ var ModelUsageTable = /* @__PURE__ */ __name(({ models, totalCachedTokens, cache
13698
13795
  " ",
13699
13796
  t("of input tokens were served from the cache, reducing costs.")
13700
13797
  ] }),
13701
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { height: 1 }),
13702
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.text.secondary, children: [
13798
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { height: 1 }),
13799
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
13703
13800
  "\xBB ",
13704
13801
  t("Tip: For a full token breakdown, run `/stats model`.")
13705
13802
  ] })
@@ -13731,11 +13828,11 @@ var StatsDisplay = /* @__PURE__ */ __name(({
13731
13828
  const renderTitle = /* @__PURE__ */ __name(() => {
13732
13829
  if (title) {
13733
13830
  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 });
13831
+ 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
13832
  }
13736
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Session Stats") });
13833
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Session Stats") });
13737
13834
  }, "renderTitle");
13738
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
13835
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
13739
13836
  Box_default,
13740
13837
  {
13741
13838
  borderStyle: "round",
@@ -13746,33 +13843,33 @@ var StatsDisplay = /* @__PURE__ */ __name(({
13746
13843
  width,
13747
13844
  children: [
13748
13845
  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: [
13846
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { height: 1 }),
13847
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Section, { title: t("Interaction Summary"), children: [
13848
+ /* @__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 }) }),
13849
+ /* @__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
13850
  tools.totalCalls,
13754
13851
  " (",
13755
13852
  " ",
13756
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.status.success, children: [
13853
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.success, children: [
13757
13854
  "\u2713 ",
13758
13855
  tools.totalSuccess
13759
13856
  ] }),
13760
13857
  " ",
13761
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.status.error, children: [
13858
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.error, children: [
13762
13859
  "x ",
13763
13860
  tools.totalFail
13764
13861
  ] }),
13765
13862
  " )"
13766
13863
  ] }) }),
13767
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(StatRow, { title: t("Success Rate:"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: successColor, children: [
13864
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StatRow, { title: t("Success Rate:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: successColor, children: [
13768
13865
  computed.successRate.toFixed(1),
13769
13866
  "%"
13770
13867
  ] }) }),
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: [
13868
+ 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
13869
  computed.agreementRate.toFixed(1),
13773
13870
  "%",
13774
13871
  " ",
13775
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.text.secondary, children: [
13872
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
13776
13873
  "(",
13777
13874
  computed.totalDecisions,
13778
13875
  " ",
@@ -13780,41 +13877,41 @@ var StatsDisplay = /* @__PURE__ */ __name(({
13780
13877
  ")"
13781
13878
  ] })
13782
13879
  ] }) }),
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: [
13880
+ 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: [
13881
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.success, children: [
13785
13882
  "+",
13786
13883
  files.totalLinesAdded
13787
13884
  ] }),
13788
13885
  " ",
13789
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.status.error, children: [
13886
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.error, children: [
13790
13887
  "-",
13791
13888
  files.totalLinesRemoved
13792
13889
  ] })
13793
13890
  ] }) })
13794
13891
  ] }),
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: [
13892
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Section, { title: t("Performance"), children: [
13893
+ /* @__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 }) }),
13894
+ /* @__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) }) }),
13895
+ /* @__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
13896
  formatDuration(computed.totalApiTime),
13800
13897
  " ",
13801
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.text.secondary, children: [
13898
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
13802
13899
  "(",
13803
13900
  computed.apiTimePercent.toFixed(1),
13804
13901
  "%)"
13805
13902
  ] })
13806
13903
  ] }) }),
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: [
13904
+ /* @__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
13905
  formatDuration(computed.totalToolTime),
13809
13906
  " ",
13810
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text, { color: theme.text.secondary, children: [
13907
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
13811
13908
  "(",
13812
13909
  computed.toolTimePercent.toFixed(1),
13813
13910
  "%)"
13814
13911
  ] })
13815
13912
  ] }) })
13816
13913
  ] }),
13817
- Object.keys(models).length > 0 && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
13914
+ Object.keys(models).length > 0 && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
13818
13915
  ModelUsageTable,
13819
13916
  {
13820
13917
  models,
@@ -13829,7 +13926,7 @@ var StatsDisplay = /* @__PURE__ */ __name(({
13829
13926
 
13830
13927
  // packages/cli/src/ui/components/ModelStatsDisplay.tsx
13831
13928
  init_esbuild_shims();
13832
- var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1);
13929
+ var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
13833
13930
  var METRIC_COL_WIDTH = 28;
13834
13931
  var MODEL_COL_WIDTH = 24;
13835
13932
  var PANEL_HORIZONTAL_CHROME_WIDTH = 6;
@@ -13839,8 +13936,8 @@ var StatRow2 = /* @__PURE__ */ __name(({
13839
13936
  modelColWidth,
13840
13937
  isSubtle = false,
13841
13938
  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)(
13939
+ }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
13940
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: METRIC_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13844
13941
  Text,
13845
13942
  {
13846
13943
  bold: isSection,
@@ -13848,7 +13945,7 @@ var StatRow2 = /* @__PURE__ */ __name(({
13848
13945
  children: isSubtle ? ` \u21B3 ${title}` : title
13849
13946
  }
13850
13947
  ) }),
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))
13948
+ 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
13949
  ] }), "StatRow");
13853
13950
  var ModelStatsDisplay = /* @__PURE__ */ __name(({
13854
13951
  width
@@ -13859,7 +13956,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13859
13956
  const settings = useSettings();
13860
13957
  const modelPricing = settings.merged.modelPricing;
13861
13958
  if (entries.length === 0) {
13862
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
13959
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13863
13960
  Box_default,
13864
13961
  {
13865
13962
  borderStyle: "round",
@@ -13867,7 +13964,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13867
13964
  paddingY: 1,
13868
13965
  paddingX: 2,
13869
13966
  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.") })
13967
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.text.primary, children: t("No API calls have been made in this session.") })
13871
13968
  }
13872
13969
  );
13873
13970
  }
@@ -13888,7 +13985,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13888
13985
  pricing: modelPricing?.[getModelName(key)]
13889
13986
  }) != null
13890
13987
  );
13891
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
13988
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
13892
13989
  Box_default,
13893
13990
  {
13894
13991
  borderStyle: "round",
@@ -13898,13 +13995,13 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13898
13995
  paddingX: 2,
13899
13996
  width,
13900
13997
  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))
13998
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Model Stats For Nerds") }),
13999
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { height: 1 }),
14000
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
14001
+ /* @__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") }) }),
14002
+ 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
14003
  ] }),
13907
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14004
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13908
14005
  Box_default,
13909
14006
  {
13910
14007
  borderStyle: "single",
@@ -13915,7 +14012,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13915
14012
  borderColor: theme.border.default
13916
14013
  }
13917
14014
  ),
13918
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14015
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13919
14016
  StatRow2,
13920
14017
  {
13921
14018
  title: t("API"),
@@ -13924,7 +14021,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13924
14021
  isSection: true
13925
14022
  }
13926
14023
  ),
13927
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14024
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13928
14025
  StatRow2,
13929
14026
  {
13930
14027
  title: t("Requests"),
@@ -13932,13 +14029,13 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13932
14029
  modelColWidth
13933
14030
  }
13934
14031
  ),
13935
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14032
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13936
14033
  StatRow2,
13937
14034
  {
13938
14035
  title: t("Errors"),
13939
14036
  values: getModelValues((m) => {
13940
14037
  const errorRate = calculateErrorRate(m);
13941
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
14038
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
13942
14039
  Text,
13943
14040
  {
13944
14041
  color: m.api.totalErrors > 0 ? theme.status.error : theme.text.primary,
@@ -13954,7 +14051,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13954
14051
  modelColWidth
13955
14052
  }
13956
14053
  ),
13957
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14054
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13958
14055
  StatRow2,
13959
14056
  {
13960
14057
  title: t("Avg Latency"),
@@ -13965,8 +14062,8 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13965
14062
  modelColWidth
13966
14063
  }
13967
14064
  ),
13968
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { height: 1 }),
13969
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14065
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { height: 1 }),
14066
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13970
14067
  StatRow2,
13971
14068
  {
13972
14069
  title: t("Tokens"),
@@ -13975,15 +14072,15 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13975
14072
  isSection: true
13976
14073
  }
13977
14074
  ),
13978
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14075
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13979
14076
  StatRow2,
13980
14077
  {
13981
14078
  title: t("Total"),
13982
- values: getModelValues((m) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.status.warning, children: m.tokens.total.toLocaleString() })),
14079
+ values: getModelValues((m) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.status.warning, children: m.tokens.total.toLocaleString() })),
13983
14080
  modelColWidth
13984
14081
  }
13985
14082
  ),
13986
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14083
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13987
14084
  StatRow2,
13988
14085
  {
13989
14086
  title: t("Prompt"),
@@ -13992,14 +14089,14 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
13992
14089
  modelColWidth
13993
14090
  }
13994
14091
  ),
13995
- hasCached && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14092
+ hasCached && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
13996
14093
  StatRow2,
13997
14094
  {
13998
14095
  title: t("Cached"),
13999
14096
  isSubtle: true,
14000
14097
  values: getModelValues((m) => {
14001
14098
  const cacheHitRate = calculateCacheHitRate(m);
14002
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.success, children: [
14099
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Text, { color: theme.status.success, children: [
14003
14100
  m.tokens.cached.toLocaleString(),
14004
14101
  " (",
14005
14102
  cacheHitRate.toFixed(1),
@@ -14009,7 +14106,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
14009
14106
  modelColWidth
14010
14107
  }
14011
14108
  ),
14012
- hasThoughts && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14109
+ hasThoughts && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14013
14110
  StatRow2,
14014
14111
  {
14015
14112
  title: t("Thoughts"),
@@ -14018,7 +14115,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
14018
14115
  modelColWidth
14019
14116
  }
14020
14117
  ),
14021
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14118
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14022
14119
  StatRow2,
14023
14120
  {
14024
14121
  title: t("Output"),
@@ -14027,9 +14124,9 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
14027
14124
  modelColWidth
14028
14125
  }
14029
14126
  ),
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)(
14127
+ hasPricing && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
14128
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { height: 1 }),
14129
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14033
14130
  StatRow2,
14034
14131
  {
14035
14132
  title: t("Cost"),
@@ -14038,7 +14135,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
14038
14135
  isSection: true
14039
14136
  }
14040
14137
  ),
14041
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14138
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14042
14139
  StatRow2,
14043
14140
  {
14044
14141
  title: t("Estimated"),
@@ -14061,7 +14158,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
14061
14158
 
14062
14159
  // packages/cli/src/ui/components/ToolStatsDisplay.tsx
14063
14160
  init_esbuild_shims();
14064
- var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
14161
+ var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1);
14065
14162
  var TOOL_NAME_COL_WIDTH = 25;
14066
14163
  var CALLS_COL_WIDTH = 8;
14067
14164
  var SUCCESS_RATE_COL_WIDTH = 15;
@@ -14073,14 +14170,14 @@ var StatRow3 = /* @__PURE__ */ __name(({ name, stats }) => {
14073
14170
  green: TOOL_SUCCESS_RATE_HIGH,
14074
14171
  yellow: TOOL_SUCCESS_RATE_MEDIUM
14075
14172
  });
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: [
14173
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
14174
+ /* @__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 }) }),
14175
+ /* @__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 }) }),
14176
+ /* @__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
14177
  successRate.toFixed(1),
14081
14178
  "%"
14082
14179
  ] }) }),
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) }) })
14180
+ /* @__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
14181
  ] });
14085
14182
  }, "StatRow");
14086
14183
  var ToolStatsDisplay = /* @__PURE__ */ __name(({
@@ -14092,7 +14189,7 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
14092
14189
  ([, metrics]) => metrics.count > 0
14093
14190
  );
14094
14191
  if (activeTools.length === 0) {
14095
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14192
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14096
14193
  Box_default,
14097
14194
  {
14098
14195
  borderStyle: "round",
@@ -14100,7 +14197,7 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
14100
14197
  paddingY: 1,
14101
14198
  paddingX: 2,
14102
14199
  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.") })
14200
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t("No tool calls have been made in this session.") })
14104
14201
  }
14105
14202
  );
14106
14203
  }
@@ -14119,7 +14216,7 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
14119
14216
  green: USER_AGREEMENT_RATE_HIGH,
14120
14217
  yellow: USER_AGREEMENT_RATE_MEDIUM
14121
14218
  });
14122
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
14219
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
14123
14220
  Box_default,
14124
14221
  {
14125
14222
  borderStyle: "round",
@@ -14129,15 +14226,15 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
14129
14226
  paddingX: 2,
14130
14227
  width,
14131
14228
  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") }) })
14229
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Tool Stats For Nerds") }),
14230
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { height: 1 }),
14231
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
14232
+ /* @__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") }) }),
14233
+ /* @__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") }) }),
14234
+ /* @__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") }) }),
14235
+ /* @__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
14236
  ] }),
14140
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14237
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14141
14238
  Box_default,
14142
14239
  {
14143
14240
  borderStyle: "single",
@@ -14149,50 +14246,50 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
14149
14246
  width: "100%"
14150
14247
  }
14151
14248
  ),
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)(
14249
+ activeTools.map(([name, stats2]) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(StatRow3, { name, stats: stats2 }, name)),
14250
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { height: 1 }),
14251
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.primary, children: t("User Decision Summary") }),
14252
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
14253
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14157
14254
  Box_default,
14158
14255
  {
14159
14256
  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:") })
14257
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.link, children: t("Total Reviewed Suggestions:") })
14161
14258
  }
14162
14259
  ),
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 }) })
14260
+ /* @__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
14261
  ] }),
14165
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
14166
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14262
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
14263
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14167
14264
  Box_default,
14168
14265
  {
14169
14266
  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:") })
14267
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t(" \xBB Accepted:") })
14171
14268
  }
14172
14269
  ),
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 }) })
14270
+ /* @__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
14271
  ] }),
14175
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
14176
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14272
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
14273
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14177
14274
  Box_default,
14178
14275
  {
14179
14276
  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:") })
14277
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t(" \xBB Rejected:") })
14181
14278
  }
14182
14279
  ),
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 }) })
14280
+ /* @__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
14281
  ] }),
14185
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
14186
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14282
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
14283
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14187
14284
  Box_default,
14188
14285
  {
14189
14286
  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:") })
14287
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t(" \xBB Modified:") })
14191
14288
  }
14192
14289
  ),
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 }) })
14290
+ /* @__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
14291
  ] }),
14195
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14292
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14196
14293
  Box_default,
14197
14294
  {
14198
14295
  borderStyle: "single",
@@ -14204,15 +14301,15 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
14204
14301
  width: "100%"
14205
14302
  }
14206
14303
  ),
14207
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
14208
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
14304
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
14305
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14209
14306
  Box_default,
14210
14307
  {
14211
14308
  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:") })
14309
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t(" Overall Agreement Rate:") })
14213
14310
  }
14214
14311
  ),
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)}%` : "--" }) })
14312
+ /* @__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
14313
  ] })
14217
14314
  ]
14218
14315
  }
@@ -14221,7 +14318,7 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
14221
14318
 
14222
14319
  // packages/cli/src/ui/components/SkillStatsDisplay.tsx
14223
14320
  init_esbuild_shims();
14224
- var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1);
14321
+ var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1);
14225
14322
  var SKILL_NAME_COL_WIDTH = 30;
14226
14323
  var CALLS_COL_WIDTH2 = 8;
14227
14324
  var SUCCESS_COL_WIDTH = 8;
@@ -14233,12 +14330,12 @@ var StatRow4 = /* @__PURE__ */ __name(({ name, stats }) => {
14233
14330
  green: TOOL_SUCCESS_RATE_HIGH,
14234
14331
  yellow: TOOL_SUCCESS_RATE_MEDIUM
14235
14332
  });
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: [
14333
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Box_default, { children: [
14334
+ /* @__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 }) }),
14335
+ /* @__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 }) }),
14336
+ /* @__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 }) }),
14337
+ /* @__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 }) }),
14338
+ /* @__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
14339
  successRate.toFixed(1),
14243
14340
  "%"
14244
14341
  ] }) })
@@ -14259,7 +14356,7 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
14259
14356
  return countDelta !== 0 ? countDelta : leftName.localeCompare(rightName);
14260
14357
  });
14261
14358
  if (activeSkills.length === 0) {
14262
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14359
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
14263
14360
  Box_default,
14264
14361
  {
14265
14362
  borderStyle: "round",
@@ -14267,11 +14364,11 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
14267
14364
  paddingY: 1,
14268
14365
  paddingX: 2,
14269
14366
  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.") })
14367
+ children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { color: theme.text.primary, children: t("No skill calls have been made in this session.") })
14271
14368
  }
14272
14369
  );
14273
14370
  }
14274
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
14371
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
14275
14372
  Box_default,
14276
14373
  {
14277
14374
  borderStyle: "round",
@@ -14281,16 +14378,16 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
14281
14378
  paddingX: 2,
14282
14379
  width,
14283
14380
  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") }) })
14381
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Skill Stats For Nerds") }),
14382
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { height: 1 }),
14383
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Box_default, { children: [
14384
+ /* @__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") }) }),
14385
+ /* @__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") }) }),
14386
+ /* @__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") }) }),
14387
+ /* @__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") }) }),
14388
+ /* @__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
14389
  ] }),
14293
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14390
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
14294
14391
  Box_default,
14295
14392
  {
14296
14393
  borderStyle: "single",
@@ -14302,7 +14399,7 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
14302
14399
  width: "100%"
14303
14400
  }
14304
14401
  ),
14305
- activeSkills.map(([name, skillStats]) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(StatRow4, { name, stats: skillStats }, name))
14402
+ activeSkills.map(([name, skillStats]) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(StatRow4, { name, stats: skillStats }, name))
14306
14403
  ]
14307
14404
  }
14308
14405
  );
@@ -14310,7 +14407,7 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
14310
14407
 
14311
14408
  // packages/cli/src/ui/components/SessionSummaryDisplay.tsx
14312
14409
  init_esbuild_shims();
14313
- var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1);
14410
+ var import_jsx_runtime32 = __toESM(require_jsx_runtime(), 1);
14314
14411
  var SessionSummaryDisplay = /* @__PURE__ */ __name(({
14315
14412
  duration,
14316
14413
  width
@@ -14319,8 +14416,8 @@ var SessionSummaryDisplay = /* @__PURE__ */ __name(({
14319
14416
  const { stats } = useSessionStats();
14320
14417
  const hasMessages = stats.promptCount > 0;
14321
14418
  const canResume = !!config.getChatRecordingService();
14322
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
14323
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
14419
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
14420
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
14324
14421
  StatsDisplay,
14325
14422
  {
14326
14423
  title: t("Agent powering down. Goodbye!"),
@@ -14328,10 +14425,10 @@ var SessionSummaryDisplay = /* @__PURE__ */ __name(({
14328
14425
  width
14329
14426
  }
14330
14427
  ),
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: [
14428
+ 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
14429
  t("To continue this session, run"),
14333
14430
  " ",
14334
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Text, { color: theme.text.accent, children: [
14431
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Text, { color: theme.text.accent, children: [
14335
14432
  "qwen --resume ",
14336
14433
  stats.sessionId
14337
14434
  ] })
@@ -14342,7 +14439,7 @@ var SessionSummaryDisplay = /* @__PURE__ */ __name(({
14342
14439
  // packages/cli/src/ui/components/Help.tsx
14343
14440
  init_esbuild_shims();
14344
14441
  var import_react33 = __toESM(require_react(), 1);
14345
- var import_jsx_runtime32 = __toESM(require_jsx_runtime(), 1);
14442
+ var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1);
14346
14443
  var DEFAULT_WIDTH = 100;
14347
14444
  var KEY_COL_WIDTH = 20;
14348
14445
  var COMMAND_LIST_VISIBLE_LINES = 18;
@@ -14382,13 +14479,13 @@ var Help = /* @__PURE__ */ __name(({
14382
14479
  },
14383
14480
  { isActive: isInteractive }
14384
14481
  );
14385
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { flexDirection: "column", width: safeWidth, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
14482
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { flexDirection: "column", width: safeWidth, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
14386
14483
  Box_default,
14387
14484
  {
14388
14485
  borderColor: theme.border.default,
14389
14486
  borderStyle: "single",
14390
14487
  width: safeWidth,
14391
- children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
14488
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
14392
14489
  Box_default,
14393
14490
  {
14394
14491
  flexDirection: "column",
@@ -14396,10 +14493,10 @@ var Help = /* @__PURE__ */ __name(({
14396
14493
  paddingY: 1,
14397
14494
  width: safeWidth - 2,
14398
14495
  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)(
14496
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(HelpTabs, { activeTab }),
14497
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { marginTop: 1, children: [
14498
+ activeTab === "general" && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GeneralHelp, { width: bodyWidth }),
14499
+ activeTab === "commands" && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
14403
14500
  CommandsHelp,
14404
14501
  {
14405
14502
  commands,
@@ -14408,7 +14505,7 @@ var Help = /* @__PURE__ */ __name(({
14408
14505
  isInteractive
14409
14506
  }
14410
14507
  ),
14411
- activeTab === "custom-commands" && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
14508
+ activeTab === "custom-commands" && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
14412
14509
  CommandsHelp,
14413
14510
  {
14414
14511
  commands,
@@ -14418,24 +14515,24 @@ var Help = /* @__PURE__ */ __name(({
14418
14515
  }
14419
14516
  )
14420
14517
  ] }),
14421
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Text, { color: theme.text.secondary, children: [
14518
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { color: theme.text.secondary, children: [
14422
14519
  t("For more help:"),
14423
14520
  " ",
14424
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Text, { underline: true, children: DOCS_URL })
14521
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { underline: true, children: DOCS_URL })
14425
14522
  ] }) }),
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") }) })
14523
+ /* @__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
14524
  ]
14428
14525
  }
14429
14526
  )
14430
14527
  }
14431
14528
  ) });
14432
14529
  }, "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: " " }),
14530
+ var HelpTabs = /* @__PURE__ */ __name(({ activeTab }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "row", children: [
14531
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { bold: true, color: theme.text.accent, children: "Qwen Code" }),
14532
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.secondary, children: " " }),
14436
14533
  TAB_DEFS.map(({ tab, labelKey }) => {
14437
14534
  const active = tab === activeTab;
14438
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { marginLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
14535
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
14439
14536
  Text,
14440
14537
  {
14441
14538
  color: active ? theme.background.primary : theme.text.primary,
@@ -14468,13 +14565,13 @@ var GeneralHelp = /* @__PURE__ */ __name(({ width }) => {
14468
14565
  const left = shortcuts.slice(0, Math.ceil(shortcuts.length / 2));
14469
14566
  const right = shortcuts.slice(Math.ceil(shortcuts.length / 2));
14470
14567
  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(
14568
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "column", children: [
14569
+ /* @__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
14570
  "Qwen Code understands your codebase, makes edits with your permission, and executes commands right from your terminal."
14474
14571
  ) }) }),
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)(
14572
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Shortcuts") }),
14573
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "row", gap: 2, children: [
14574
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { flexDirection: "column", width: colWidth, children: left.map(([key, desc]) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
14478
14575
  ShortcutRow,
14479
14576
  {
14480
14577
  shortcutKey: key,
@@ -14483,7 +14580,7 @@ var GeneralHelp = /* @__PURE__ */ __name(({ width }) => {
14483
14580
  },
14484
14581
  key
14485
14582
  )) }),
14486
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { flexDirection: "column", width: colWidth, children: right.map(([key, desc]) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
14583
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { flexDirection: "column", width: colWidth, children: right.map(([key, desc]) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
14487
14584
  ShortcutRow,
14488
14585
  {
14489
14586
  shortcutKey: key,
@@ -14495,9 +14592,9 @@ var GeneralHelp = /* @__PURE__ */ __name(({ width }) => {
14495
14592
  ] })
14496
14593
  ] });
14497
14594
  }, "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) })
14595
+ var ShortcutRow = /* @__PURE__ */ __name(({ shortcutKey, desc, width }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "row", width, children: [
14596
+ /* @__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 }) }),
14597
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.primary, wrap: "truncate", children: truncateText2(desc, width - KEY_COL_WIDTH - 1) })
14501
14598
  ] }), "ShortcutRow");
14502
14599
  var CommandsHelp = /* @__PURE__ */ __name(({ commands, width, customOnly, isInteractive }) => {
14503
14600
  const groups = (0, import_react33.useMemo)(
@@ -14535,17 +14632,17 @@ var CommandsHelp = /* @__PURE__ */ __name(({ commands, width, customOnly, isInte
14535
14632
  { isActive: isInteractive }
14536
14633
  );
14537
14634
  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.") });
14635
+ 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
14636
  }
14540
14637
  const visibleLines = lines.slice(
14541
14638
  scrollOffset,
14542
14639
  scrollOffset + COMMAND_LIST_VISIBLE_LINES
14543
14640
  );
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) => {
14641
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "column", children: [
14642
+ /* @__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:") }) }),
14643
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { flexDirection: "column", height: COMMAND_LIST_VISIBLE_LINES, children: visibleLines.map((line, index) => {
14547
14644
  const stableKey = line.type === "blank" ? `blank:${index}` : `${line.type}:${line.text}:${index}`;
14548
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(CommandLine, { line }, stableKey);
14645
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(CommandLine, { line }, stableKey);
14549
14646
  }) }),
14550
14647
  maxScroll > 0 && (() => {
14551
14648
  const totalCommands = lines.filter(
@@ -14557,7 +14654,7 @@ var CommandsHelp = /* @__PURE__ */ __name(({ commands, width, customOnly, isInte
14557
14654
  const firstCmd = visibleSignatures.length > 0 ? visibleSignatures[0].commandIndex + 1 : 0;
14558
14655
  const lastCmd = visibleSignatures.length > 0 ? visibleSignatures[visibleSignatures.length - 1].commandIndex + 1 : 0;
14559
14656
  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: [
14657
+ 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
14658
  t("Use \u2191/\u2193 to scroll"),
14562
14659
  " ",
14563
14660
  `(${range}/${totalCommands})`
@@ -14568,28 +14665,28 @@ var CommandsHelp = /* @__PURE__ */ __name(({ commands, width, customOnly, isInte
14568
14665
  var CommandLine = /* @__PURE__ */ __name(({ line }) => {
14569
14666
  switch (line.type) {
14570
14667
  case "group":
14571
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Text, { bold: true, color: theme.text.primary, children: [
14668
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { bold: true, color: theme.text.primary, children: [
14572
14669
  line.text,
14573
14670
  " ",
14574
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Text, { color: theme.text.secondary, children: `(${line.count})` })
14671
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.secondary, children: `(${line.count})` })
14575
14672
  ] });
14576
14673
  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: [
14674
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "row", children: [
14675
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { color: theme.text.accent, children: [
14579
14676
  " ",
14580
14677
  line.text
14581
14678
  ] }),
14582
- line.meta && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Text, { color: theme.text.secondary, children: [
14679
+ line.meta && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { color: theme.text.secondary, children: [
14583
14680
  " ",
14584
14681
  line.meta
14585
14682
  ] })
14586
14683
  ] });
14587
14684
  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 }) });
14685
+ 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
14686
  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 }) });
14687
+ 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
14688
  case "blank":
14592
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Text, { children: " " });
14689
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { children: " " });
14593
14690
  default:
14594
14691
  return null;
14595
14692
  }
@@ -14739,6 +14836,11 @@ function useHistory() {
14739
14836
  `[ADD_ITEM] type=${newItem.type}, textSize=${textSize}, historyLength=${newHistory.length}`
14740
14837
  );
14741
14838
  }
14839
+ if (newItem.type === "tool_group" && newItem.tools.some(
14840
+ (tool) => isFindingsListDisplay(tool.resultDisplay)
14841
+ )) {
14842
+ return coalesceFindingsHistoryItems(newHistory);
14843
+ }
14742
14844
  return newHistory;
14743
14845
  });
14744
14846
  return id;
@@ -14858,6 +14960,7 @@ ${UI_COMPACT_CLEARED_IMAGE_MESSAGE}` : UI_COMPACT_CLEARED_IMAGE_MESSAGE,
14858
14960
  ...t2,
14859
14961
  resultDisplay: UI_COMPACT_CLEARED_MESSAGE,
14860
14962
  detailedDisplay: void 0,
14963
+ supersededFindingsDisplay: void 0,
14861
14964
  images: void 0,
14862
14965
  omittedImageCount: void 0
14863
14966
  };
@@ -14905,7 +15008,7 @@ var import_react37 = __toESM(require_react(), 1);
14905
15008
 
14906
15009
  // packages/cli/src/ui/IdeIntegrationNudge.tsx
14907
15010
  init_esbuild_shims();
14908
- var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1);
15011
+ var import_jsx_runtime34 = __toESM(require_jsx_runtime(), 1);
14909
15012
  function IdeIntegrationNudge({
14910
15013
  ide,
14911
15014
  onComplete
@@ -14951,7 +15054,7 @@ function IdeIntegrationNudge({
14951
15054
  }
14952
15055
  ];
14953
15056
  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)(
15057
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
14955
15058
  Box_default,
14956
15059
  {
14957
15060
  flexDirection: "column",
@@ -14961,14 +15064,14 @@ function IdeIntegrationNudge({
14961
15064
  width: "100%",
14962
15065
  marginLeft: 1,
14963
15066
  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: "> " }),
15067
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Box_default, { marginBottom: 1, flexDirection: "column", children: [
15068
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Text, { children: [
15069
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text, { color: theme.status.warning, children: "> " }),
14967
15070
  `Do you want to connect ${ideName ?? "your editor"} to Qwen Code?`
14968
15071
  ] }),
14969
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.secondary, children: installText })
15072
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text, { color: theme.text.secondary, children: installText })
14970
15073
  ] }),
14971
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(RadioButtonSelect, { items: OPTIONS, onSelect: onComplete })
15074
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(RadioButtonSelect, { items: OPTIONS, onSelect: onComplete })
14972
15075
  ]
14973
15076
  }
14974
15077
  );
@@ -14977,7 +15080,7 @@ __name(IdeIntegrationNudge, "IdeIntegrationNudge");
14977
15080
 
14978
15081
  // packages/cli/src/ui/CommandFormatMigrationNudge.tsx
14979
15082
  init_esbuild_shims();
14980
- var import_jsx_runtime34 = __toESM(require_jsx_runtime(), 1);
15083
+ var import_jsx_runtime35 = __toESM(require_jsx_runtime(), 1);
14981
15084
  function CommandFormatMigrationNudge({
14982
15085
  tomlFiles,
14983
15086
  onComplete
@@ -15011,7 +15114,7 @@ function CommandFormatMigrationNudge({
15011
15114
  const count = tomlFiles.length;
15012
15115
  const fileList = count <= 3 ? tomlFiles.map((f) => ` \u2022 ${f}`).join("\n") : ` \u2022 ${tomlFiles.slice(0, 2).join("\n \u2022 ")}
15013
15116
  \u2022 ${t("... and {{count}} more", { count: String(count - 2) })}`;
15014
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
15117
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
15015
15118
  Box_default,
15016
15119
  {
15017
15120
  flexDirection: "column",
@@ -15021,20 +15124,20 @@ function CommandFormatMigrationNudge({
15021
15124
  width: "100%",
15022
15125
  marginLeft: 1,
15023
15126
  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") })
15127
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Box_default, { marginBottom: 1, flexDirection: "column", children: [
15128
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Text, { children: [
15129
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.status.warning, children: "\u26A0 " }),
15130
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { bold: true, children: t("Command Format Migration") })
15028
15131
  ] }),
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(
15132
+ /* @__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) }) }),
15133
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.text.secondary, children: fileList }),
15134
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { children: "" }),
15135
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.text.secondary, children: t(
15033
15136
  "The TOML format is deprecated. Would you like to migrate them to Markdown format?"
15034
15137
  ) }),
15035
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text, { color: theme.text.secondary, children: t("(Backups will be created and original files will be preserved)") })
15138
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.text.secondary, children: t("(Backups will be created and original files will be preserved)") })
15036
15139
  ] }),
15037
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(RadioButtonSelect, { items: OPTIONS, onSelect: onComplete })
15140
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(RadioButtonSelect, { items: OPTIONS, onSelect: onComplete })
15038
15141
  ]
15039
15142
  }
15040
15143
  );
@@ -15046,7 +15149,7 @@ init_esbuild_shims();
15046
15149
  var import_react35 = __toESM(require_react(), 1);
15047
15150
  import * as process3 from "node:process";
15048
15151
  import * as path3 from "node:path";
15049
- var import_jsx_runtime35 = __toESM(require_jsx_runtime(), 1);
15152
+ var import_jsx_runtime36 = __toESM(require_jsx_runtime(), 1);
15050
15153
  var FolderTrustDialog = /* @__PURE__ */ __name(({
15051
15154
  onSelect,
15052
15155
  isRestarting
@@ -15088,8 +15191,8 @@ var FolderTrustDialog = /* @__PURE__ */ __name(({
15088
15191
  key: "Don't trust (esc)"
15089
15192
  }
15090
15193
  ];
15091
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Box_default, { flexDirection: "column", children: [
15092
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
15194
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Box_default, { flexDirection: "column", children: [
15195
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
15093
15196
  Box_default,
15094
15197
  {
15095
15198
  flexDirection: "column",
@@ -15099,11 +15202,11 @@ var FolderTrustDialog = /* @__PURE__ */ __name(({
15099
15202
  width: "100%",
15100
15203
  marginLeft: 1,
15101
15204
  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." })
15205
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15206
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { bold: true, color: theme.text.primary, children: "Do you trust this folder?" }),
15207
+ /* @__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
15208
  ] }),
15106
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
15209
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
15107
15210
  RadioButtonSelect,
15108
15211
  {
15109
15212
  items: options,
@@ -15114,13 +15217,13 @@ var FolderTrustDialog = /* @__PURE__ */ __name(({
15114
15217
  ]
15115
15218
  }
15116
15219
  ),
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..." }) })
15220
+ 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
15221
  ] });
15119
15222
  }, "FolderTrustDialog");
15120
15223
 
15121
15224
  // packages/cli/src/ui/components/mcp/MCPServerApprovalDialog.tsx
15122
15225
  init_esbuild_shims();
15123
- var import_jsx_runtime36 = __toESM(require_jsx_runtime(), 1);
15226
+ var import_jsx_runtime37 = __toESM(require_jsx_runtime(), 1);
15124
15227
  var MCPServerApprovalDialog = /* @__PURE__ */ __name(({ serverName, summary, source, pendingServers, remaining, onSelect }) => {
15125
15228
  useKeypress(
15126
15229
  (key) => {
@@ -15147,7 +15250,7 @@ var MCPServerApprovalDialog = /* @__PURE__ */ __name(({ serverName, summary, sou
15147
15250
  key: "reject"
15148
15251
  }
15149
15252
  ];
15150
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
15253
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
15151
15254
  Box_default,
15152
15255
  {
15153
15256
  flexDirection: "column",
@@ -15157,21 +15260,21 @@ var MCPServerApprovalDialog = /* @__PURE__ */ __name(({ serverName, summary, sou
15157
15260
  width: "100%",
15158
15261
  marginLeft: 1,
15159
15262
  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.` })
15263
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15264
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { bold: true, color: theme.text.primary, children: `Untrusted MCP server in ${source}` }),
15265
+ /* @__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
15266
  ] }),
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 }),
15267
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15268
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Text, { color: theme.text.primary, children: [
15269
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { bold: true, children: serverName }),
15167
15270
  ` ${summary}`
15168
15271
  ] }),
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))
15272
+ remaining > 0 && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
15273
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { color: theme.text.secondary, children: "Approve all will trust these servers:" }),
15274
+ pendingServers.map((server) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { color: theme.text.secondary, children: ` ${server.name} ${server.summary}` }, server.name))
15172
15275
  ] })
15173
15276
  ] }),
15174
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(RadioButtonSelect, { items: options, onSelect, isFocused: true })
15277
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(RadioButtonSelect, { items: options, onSelect, isFocused: true })
15175
15278
  ]
15176
15279
  }
15177
15280
  ) });
@@ -15594,17 +15697,17 @@ function extensionUpdatesReducer(state, action) {
15594
15697
  __name(extensionUpdatesReducer, "extensionUpdatesReducer");
15595
15698
 
15596
15699
  // packages/cli/src/ui/components/views/ExtensionsList.tsx
15597
- var import_jsx_runtime37 = __toESM(require_jsx_runtime(), 1);
15700
+ var import_jsx_runtime38 = __toESM(require_jsx_runtime(), 1);
15598
15701
  var debugLogger8 = createDebugLogger("EXTENSIONS_LIST");
15599
15702
  var ExtensionsList = /* @__PURE__ */ __name(() => {
15600
15703
  const { extensionsUpdateState, commandContext } = useUIState();
15601
15704
  const extensions = commandContext.services.config?.getExtensions() || [];
15602
15705
  if (extensions.length === 0) {
15603
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { children: "No extensions installed." });
15706
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { children: "No extensions installed." });
15604
15707
  }
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) => {
15708
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, marginBottom: 1, children: [
15709
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { children: "Installed extensions:" }),
15710
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Box_default, { flexDirection: "column", paddingLeft: 2, children: extensions.map((ext) => {
15608
15711
  const state = extensionsUpdateState.get(ext.name);
15609
15712
  const isActive = ext.isActive;
15610
15713
  const activeString = isActive ? "active" : "disabled";
@@ -15633,15 +15736,15 @@ var ExtensionsList = /* @__PURE__ */ __name(() => {
15633
15736
  debugLogger8.error(`Unhandled ExtensionUpdateState ${state}`);
15634
15737
  break;
15635
15738
  }
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})` })
15739
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15740
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Text, { children: [
15741
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { color: "cyan", children: `${getExtensionDisplayName(ext, getCurrentLanguage())} (v${ext.version})` }),
15742
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { color: activeColor, children: ` - ${activeString}` }),
15743
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { color: stateColor, children: ` (${stateText})` })
15641
15744
  ] }),
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: [
15745
+ ext.resolvedSettings && ext.resolvedSettings.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 2, children: [
15746
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { children: "settings:" }),
15747
+ ext.resolvedSettings.map((setting) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Text, { children: [
15645
15748
  "- ",
15646
15749
  setting.name,
15647
15750
  ": ",
@@ -15655,33 +15758,33 @@ var ExtensionsList = /* @__PURE__ */ __name(() => {
15655
15758
 
15656
15759
  // packages/cli/src/ui/components/views/SkillsList.tsx
15657
15760
  init_esbuild_shims();
15658
- var import_jsx_runtime38 = __toESM(require_jsx_runtime(), 1);
15761
+ var import_jsx_runtime39 = __toESM(require_jsx_runtime(), 1);
15659
15762
  var NAME_COLUMN = 24;
15660
15763
  function truncate(text, max) {
15661
15764
  if (text.length <= max) return text;
15662
15765
  return `${text.slice(0, Math.max(0, max - 1))}\u2026`;
15663
15766
  }
15664
15767
  __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: [
15768
+ var SkillsList = /* @__PURE__ */ __name(({ skills }) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15769
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Available skills:") }),
15770
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Box_default, { height: 1 }),
15771
+ skills.length > 0 ? skills.map((skill) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Box_default, { flexDirection: "row", children: [
15772
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.primary, children: [
15670
15773
  " ",
15671
15774
  "- "
15672
15775
  ] }),
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: [
15776
+ /* @__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 }),
15777
+ skill.description && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.secondary, children: [
15675
15778
  " ",
15676
15779
  truncate(skill.description, 80)
15677
15780
  ] }),
15678
- skill.level && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Text, { color: theme.text.secondary, children: [
15781
+ skill.level && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.secondary, children: [
15679
15782
  " ",
15680
15783
  "(",
15681
15784
  levelLabel(skill.level),
15682
15785
  ")"
15683
15786
  ] })
15684
- ] }, skill.name)) : /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Text, { color: theme.text.primary, children: [
15787
+ ] }, skill.name)) : /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.primary, children: [
15685
15788
  " ",
15686
15789
  t("No skills available")
15687
15790
  ] })
@@ -15689,25 +15792,25 @@ var SkillsList = /* @__PURE__ */ __name(({ skills }) => /* @__PURE__ */ (0, impo
15689
15792
 
15690
15793
  // packages/cli/src/ui/components/views/ToolsList.tsx
15691
15794
  init_esbuild_shims();
15692
- var import_jsx_runtime39 = __toESM(require_jsx_runtime(), 1);
15795
+ var import_jsx_runtime40 = __toESM(require_jsx_runtime(), 1);
15693
15796
  var ToolsList = /* @__PURE__ */ __name(({
15694
15797
  tools,
15695
15798
  showDescriptions,
15696
15799
  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: [
15800
+ }) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", children: [
15801
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Available Qwen Code CLI tools:") }),
15802
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Box_default, { height: 1 }),
15803
+ tools.length > 0 ? tools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "row", children: [
15804
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { color: theme.text.primary, children: [
15702
15805
  " ",
15703
15806
  "- "
15704
15807
  ] }),
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: [
15808
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", children: [
15809
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { bold: true, color: theme.text.accent, children: [
15707
15810
  tool.displayName,
15708
15811
  showDescriptions ? ` (${tool.name})` : ""
15709
15812
  ] }),
15710
- showDescriptions && tool.description && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
15813
+ showDescriptions && tool.description && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
15711
15814
  MarkdownDisplay,
15712
15815
  {
15713
15816
  contentWidth,
@@ -15716,7 +15819,7 @@ var ToolsList = /* @__PURE__ */ __name(({
15716
15819
  }
15717
15820
  )
15718
15821
  ] })
15719
- ] }, tool.name)) : /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.primary, children: [
15822
+ ] }, tool.name)) : /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { color: theme.text.primary, children: [
15720
15823
  " ",
15721
15824
  t("No tools available")
15722
15825
  ] })
@@ -15724,7 +15827,7 @@ var ToolsList = /* @__PURE__ */ __name(({
15724
15827
 
15725
15828
  // packages/cli/src/ui/components/views/McpStatus.tsx
15726
15829
  init_esbuild_shims();
15727
- var import_jsx_runtime40 = __toESM(require_jsx_runtime(), 1);
15830
+ var import_jsx_runtime41 = __toESM(require_jsx_runtime(), 1);
15728
15831
  var McpStatus = /* @__PURE__ */ __name(({
15729
15832
  servers,
15730
15833
  tools,
@@ -15740,19 +15843,19 @@ var McpStatus = /* @__PURE__ */ __name(({
15740
15843
  }) => {
15741
15844
  const serverNames = Object.keys(servers);
15742
15845
  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.") }) });
15846
+ 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
15847
  }
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)...", {
15848
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", children: [
15849
+ discoveryInProgress && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15850
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.status.warning, children: t("\u25CC MCP servers are starting up ({{count}} initializing)...", {
15748
15851
  count: String(connectingServers.length)
15749
15852
  }) }),
15750
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.primary, children: t(
15853
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: t(
15751
15854
  "Note: First startup may take longer. Tool availability will update automatically."
15752
15855
  ) })
15753
15856
  ] }),
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 }),
15857
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { bold: true, children: t("Configured MCP servers:") }),
15858
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { height: 1 }),
15756
15859
  serverNames.map((serverName) => {
15757
15860
  const server = servers[serverName];
15758
15861
  const serverTools = tools.filter(
@@ -15807,140 +15910,140 @@ var McpStatus = /* @__PURE__ */ __name(({
15807
15910
  const serverAuthStatus = authStatus[serverName];
15808
15911
  let authStatusNode = null;
15809
15912
  if (serverAuthStatus === "authenticated") {
15810
- authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
15913
+ authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15811
15914
  " (",
15812
15915
  t("OAuth"),
15813
15916
  ")"
15814
15917
  ] });
15815
15918
  } else if (serverAuthStatus === "expired") {
15816
- authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { color: theme.status.error, children: [
15919
+ authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.status.error, children: [
15817
15920
  " (",
15818
15921
  t("OAuth expired"),
15819
15922
  ")"
15820
15923
  ] });
15821
15924
  } else if (serverAuthStatus === "unauthenticated") {
15822
- authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { color: theme.status.warning, children: [
15925
+ authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.status.warning, children: [
15823
15926
  " ",
15824
15927
  "(",
15825
15928
  t("OAuth not authenticated"),
15826
15929
  ")"
15827
15930
  ] });
15828
15931
  }
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: [
15932
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
15933
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { children: [
15934
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: statusColor, children: [
15832
15935
  statusIndicator,
15833
15936
  " "
15834
15937
  ] }),
15835
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { bold: true, children: serverDisplayName }),
15836
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
15938
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { bold: true, children: serverDisplayName }),
15939
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15837
15940
  " - ",
15838
15941
  statusText,
15839
15942
  status === "connected" /* CONNECTED */ && parts.length > 0 && ` (${parts.join(", ")})`
15840
15943
  ] }),
15841
15944
  authStatusNode
15842
15945
  ] }),
15843
- status === "connecting" /* CONNECTING */ && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
15946
+ status === "connecting" /* CONNECTING */ && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15844
15947
  " (",
15845
15948
  t("tools and prompts will appear when ready"),
15846
15949
  ")"
15847
15950
  ] }),
15848
- status === "disconnected" /* DISCONNECTED */ && toolCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
15951
+ status === "disconnected" /* DISCONNECTED */ && toolCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15849
15952
  "(",
15850
15953
  t("{{count}} tools cached", { count: String(toolCount) }),
15851
15954
  ")"
15852
15955
  ] }),
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:") }),
15956
+ showDescriptions && server?.description && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, children: server.description.trim() }),
15957
+ serverTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginLeft: 2, children: [
15958
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: t("Tools:") }),
15856
15959
  serverTools.map((tool) => {
15857
15960
  const schemaContent = showSchema && tool.schema && (tool.schema.parametersJsonSchema || tool.schema.parameters) ? JSON.stringify(
15858
15961
  tool.schema.parametersJsonSchema ?? tool.schema.parameters,
15859
15962
  null,
15860
15963
  2
15861
15964
  ) : null;
15862
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", children: [
15863
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
15965
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", children: [
15966
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15864
15967
  "- ",
15865
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.primary, children: tool.name })
15968
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: tool.name })
15866
15969
  ] }),
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 })
15970
+ 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() }) }),
15971
+ schemaContent && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginLeft: 4, children: [
15972
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, children: t("Parameters:") }),
15973
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, children: schemaContent })
15871
15974
  ] })
15872
15975
  ] }, tool.name);
15873
15976
  })
15874
15977
  ] }),
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: [
15978
+ serverPrompts.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginLeft: 2, children: [
15979
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: t("Prompts:") }),
15980
+ serverPrompts.map((prompt) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", children: [
15981
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15879
15982
  "- ",
15880
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.primary, children: prompt.name })
15983
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: prompt.name })
15881
15984
  ] }),
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() }) })
15985
+ 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
15986
  ] }, prompt.name))
15884
15987
  ] })
15885
15988
  ] }, serverName);
15886
15989
  }),
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: [
15990
+ blockedServers.map((server) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { marginBottom: 1, children: [
15991
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.status.error, children: "\u25CF " }),
15992
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { bold: true, children: [
15890
15993
  server.name,
15891
15994
  server.extensionName ? ` ${t("(from {{extensionName}})", {
15892
15995
  extensionName: server.extensionName
15893
15996
  })}` : ""
15894
15997
  ] }),
15895
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
15998
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15896
15999
  " - ",
15897
16000
  t("Blocked")
15898
16001
  ] })
15899
16002
  ] }, 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: [
16003
+ showTips && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16004
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: t("\u2605 Tips:") }),
16005
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15903
16006
  " ",
15904
16007
  "- ",
15905
16008
  t("Use"),
15906
16009
  " ",
15907
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.accent, children: "/mcp desc" }),
16010
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "/mcp desc" }),
15908
16011
  " ",
15909
16012
  t("to show server and tool descriptions")
15910
16013
  ] }),
15911
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
16014
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15912
16015
  " ",
15913
16016
  "- ",
15914
16017
  t("Use"),
15915
16018
  " ",
15916
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.accent, children: "/mcp schema" }),
16019
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "/mcp schema" }),
15917
16020
  " ",
15918
16021
  t("to show tool parameter schemas")
15919
16022
  ] }),
15920
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
16023
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15921
16024
  " ",
15922
16025
  "- ",
15923
16026
  t("Use"),
15924
16027
  " ",
15925
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.accent, children: "/mcp nodesc" }),
16028
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "/mcp nodesc" }),
15926
16029
  " ",
15927
16030
  t("to hide descriptions")
15928
16031
  ] }),
15929
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
16032
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15930
16033
  " ",
15931
16034
  "- ",
15932
16035
  t("Use"),
15933
16036
  " ",
15934
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.accent, children: "/mcp" }),
16037
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "/mcp" }),
15935
16038
  " ",
15936
16039
  t("to authenticate with OAuth-enabled servers")
15937
16040
  ] }),
15938
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { children: [
16041
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
15939
16042
  " ",
15940
16043
  "- ",
15941
16044
  t("Press"),
15942
16045
  " ",
15943
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { color: theme.text.accent, children: "Ctrl+T" }),
16046
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "Ctrl+T" }),
15944
16047
  " ",
15945
16048
  t("to toggle tool descriptions on/off")
15946
16049
  ] })
@@ -15950,7 +16053,7 @@ var McpStatus = /* @__PURE__ */ __name(({
15950
16053
 
15951
16054
  // packages/cli/src/ui/components/views/ContextUsage.tsx
15952
16055
  init_esbuild_shims();
15953
- var import_jsx_runtime41 = __toESM(require_jsx_runtime(), 1);
16056
+ var import_jsx_runtime42 = __toESM(require_jsx_runtime(), 1);
15954
16057
  var FILLED = "\u2588";
15955
16058
  var BUFFER = "\u2592";
15956
16059
  var EMPTY = "\u2591";
@@ -15982,10 +16085,10 @@ var ProgressBar = /* @__PURE__ */ __name(({ usedPercentage, bufferPercentage, wi
15982
16085
  } else if (usedPercentage > 60) {
15983
16086
  usedColor = theme.status.warning;
15984
16087
  }
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 })
16088
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { children: [
16089
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: usedColor, children: usedStr }),
16090
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.secondary, children: freeStr }),
16091
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.status.warning, children: bufferStr })
15989
16092
  ] });
15990
16093
  }, "ProgressBar");
15991
16094
  function formatPercentage(tokens, contextWindowSize) {
@@ -16007,18 +16110,18 @@ var CategoryRow = /* @__PURE__ */ __name(({
16007
16110
  }) => {
16008
16111
  const percentageStr = formatPercentage(tokens, contextWindowSize);
16009
16112
  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 }) })
16113
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, children: [
16114
+ /* @__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 }) }),
16115
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 24, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.primary, children: label }) }),
16116
+ /* @__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
16117
  ] });
16015
16118
  }, "CategoryRow");
16016
16119
  var ThresholdRow = /* @__PURE__ */ __name(({ label, tokens, isCurrent, hint }) => {
16017
16120
  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: [
16121
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, children: [
16122
+ /* @__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" : " " }) }),
16123
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 22, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.primary, children: label }) }),
16124
+ /* @__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
16125
  tokenStr,
16023
16126
  hint ? ` ${hint}` : ""
16024
16127
  ] }) })
@@ -16039,16 +16142,16 @@ function tierColor(tier) {
16039
16142
  }
16040
16143
  }
16041
16144
  __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)(
16145
+ var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier }) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16146
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Compaction thresholds") }),
16147
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16045
16148
  ThresholdRow,
16046
16149
  {
16047
16150
  label: t("Effective window"),
16048
16151
  tokens: thresholds.effectiveWindow
16049
16152
  }
16050
16153
  ),
16051
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16154
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16052
16155
  ThresholdRow,
16053
16156
  {
16054
16157
  label: t("Warn threshold"),
@@ -16056,7 +16159,7 @@ var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier })
16056
16159
  isCurrent: currentTier === "warn"
16057
16160
  }
16058
16161
  ),
16059
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16162
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16060
16163
  ThresholdRow,
16061
16164
  {
16062
16165
  label: t("Auto threshold"),
@@ -16064,7 +16167,7 @@ var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier })
16064
16167
  isCurrent: currentTier === "auto"
16065
16168
  }
16066
16169
  ),
16067
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16170
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16068
16171
  ThresholdRow,
16069
16172
  {
16070
16173
  label: t("Hard threshold"),
@@ -16072,22 +16175,22 @@ var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier })
16072
16175
  isCurrent: currentTier === "hard"
16073
16176
  }
16074
16177
  ),
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 }) })
16178
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, children: [
16179
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 2, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { children: " " }) }),
16180
+ /* @__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") }) }),
16181
+ /* @__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
16182
  ] })
16080
16183
  ] }), "CompactionThresholds");
16081
16184
  var DETAIL_NAME_MAX_LEN = 30;
16082
16185
  var DetailRow = /* @__PURE__ */ __name(({ name, tokens }) => {
16083
16186
  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: [
16187
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, paddingLeft: 2, children: [
16188
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
16086
16189
  "\u2514",
16087
16190
  " "
16088
16191
  ] }),
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 }) })
16192
+ /* @__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) }) }),
16193
+ /* @__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
16194
  ] });
16092
16195
  }, "DetailRow");
16093
16196
  var ContextUsage = /* @__PURE__ */ __name(({
@@ -16118,7 +16221,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16118
16221
  const bTotal = b.tokens + (b.bodyTokens ?? 0);
16119
16222
  return bTotal - aTotal;
16120
16223
  });
16121
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
16224
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
16122
16225
  Box_default,
16123
16226
  {
16124
16227
  borderStyle: "round",
@@ -16127,12 +16230,12 @@ var ContextUsage = /* @__PURE__ */ __name(({
16127
16230
  paddingY: 1,
16128
16231
  paddingX: 2,
16129
16232
  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: [
16233
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Context Usage") }),
16234
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { height: 1 }),
16235
+ !hasTokenCount ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
16236
+ /* @__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.") }) }),
16237
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Estimated pre-conversation overhead") }),
16238
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
16136
16239
  t("Model"),
16137
16240
  ": ",
16138
16241
  modelName,
@@ -16143,15 +16246,15 @@ var ContextUsage = /* @__PURE__ */ __name(({
16143
16246
  " ",
16144
16247
  t("tokens")
16145
16248
  ] }),
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: [
16249
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { height: 1 })
16250
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
16251
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, marginBottom: 1, children: [
16252
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
16150
16253
  t("Model"),
16151
16254
  ": ",
16152
16255
  modelName
16153
16256
  ] }),
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: [
16257
+ /* @__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
16258
  t("Context window"),
16156
16259
  ": ",
16157
16260
  formatTokens(contextWindowSize),
@@ -16159,10 +16262,10 @@ var ContextUsage = /* @__PURE__ */ __name(({
16159
16262
  t("tokens")
16160
16263
  ] }) })
16161
16264
  ] }),
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(
16265
+ 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
16266
  "Token usage is estimated until provider usage is received."
16164
16267
  ) }) }),
16165
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { width: CONTENT_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16268
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: CONTENT_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16166
16269
  ProgressBar,
16167
16270
  {
16168
16271
  usedPercentage: Math.min(percentage, 100),
@@ -16170,9 +16273,9 @@ var ContextUsage = /* @__PURE__ */ __name(({
16170
16273
  width: CONTENT_WIDTH
16171
16274
  }
16172
16275
  ) }),
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)(
16276
+ 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.") }) }),
16277
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { height: 1 }),
16278
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16176
16279
  CategoryRow,
16177
16280
  {
16178
16281
  symbol: FILLED,
@@ -16183,7 +16286,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16183
16286
  isOverLimit
16184
16287
  }
16185
16288
  ),
16186
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16289
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16187
16290
  CategoryRow,
16188
16291
  {
16189
16292
  symbol: EMPTY,
@@ -16193,7 +16296,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16193
16296
  symbolColor: theme.text.secondary
16194
16297
  }
16195
16298
  ),
16196
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16299
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16197
16300
  CategoryRow,
16198
16301
  {
16199
16302
  symbol: BUFFER,
@@ -16203,10 +16306,10 @@ var ContextUsage = /* @__PURE__ */ __name(({
16203
16306
  symbolColor: theme.status.warning
16204
16307
  }
16205
16308
  ),
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") })
16309
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { height: 1 }),
16310
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Usage by category") })
16208
16311
  ] }),
16209
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16312
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16210
16313
  CategoryRow,
16211
16314
  {
16212
16315
  symbol: FILLED,
@@ -16216,7 +16319,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16216
16319
  symbolColor: theme.text.accent
16217
16320
  }
16218
16321
  ),
16219
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16322
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16220
16323
  CategoryRow,
16221
16324
  {
16222
16325
  symbol: FILLED,
@@ -16226,7 +16329,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16226
16329
  symbolColor: theme.text.accent
16227
16330
  }
16228
16331
  ),
16229
- breakdown.mcpTools > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16332
+ breakdown.mcpTools > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16230
16333
  CategoryRow,
16231
16334
  {
16232
16335
  symbol: FILLED,
@@ -16236,7 +16339,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16236
16339
  symbolColor: theme.text.accent
16237
16340
  }
16238
16341
  ),
16239
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16342
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16240
16343
  CategoryRow,
16241
16344
  {
16242
16345
  symbol: FILLED,
@@ -16246,7 +16349,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16246
16349
  symbolColor: theme.text.accent
16247
16350
  }
16248
16351
  ),
16249
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16352
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16250
16353
  CategoryRow,
16251
16354
  {
16252
16355
  symbol: FILLED,
@@ -16256,7 +16359,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16256
16359
  symbolColor: theme.text.accent
16257
16360
  }
16258
16361
  ),
16259
- hasTokenCount && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16362
+ hasTokenCount && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16260
16363
  CategoryRow,
16261
16364
  {
16262
16365
  symbol: FILLED,
@@ -16266,17 +16369,17 @@ var ContextUsage = /* @__PURE__ */ __name(({
16266
16369
  symbolColor: theme.text.accent
16267
16370
  }
16268
16371
  ),
16269
- breakdown.thresholds && breakdown.currentTier && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
16372
+ breakdown.thresholds && breakdown.currentTier && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16270
16373
  CompactionThresholds,
16271
16374
  {
16272
16375
  thresholds: breakdown.thresholds,
16273
16376
  currentTier: breakdown.currentTier
16274
16377
  }
16275
16378
  ),
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)(
16379
+ showDetails ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
16380
+ sortedBuiltinTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16381
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Built-in tools") }),
16382
+ sortedBuiltinTools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16280
16383
  DetailRow,
16281
16384
  {
16282
16385
  name: tool.name,
@@ -16285,9 +16388,9 @@ var ContextUsage = /* @__PURE__ */ __name(({
16285
16388
  tool.name
16286
16389
  ))
16287
16390
  ] }),
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)(
16391
+ sortedMcpTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16392
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("MCP tools") }),
16393
+ sortedMcpTools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16291
16394
  DetailRow,
16292
16395
  {
16293
16396
  name: tool.name,
@@ -16296,9 +16399,9 @@ var ContextUsage = /* @__PURE__ */ __name(({
16296
16399
  tool.name
16297
16400
  ))
16298
16401
  ] }),
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)(
16402
+ sortedMemoryFiles.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16403
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Memory files") }),
16404
+ sortedMemoryFiles.map((file) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
16302
16405
  DetailRow,
16303
16406
  {
16304
16407
  name: file.path,
@@ -16307,34 +16410,34 @@ var ContextUsage = /* @__PURE__ */ __name(({
16307
16410
  file.path
16308
16411
  ))
16309
16412
  ] }),
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: [
16413
+ sortedSkills.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16414
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Skills") }),
16415
+ sortedSkills.map((skill) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", children: [
16416
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, paddingLeft: 2, children: [
16417
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
16315
16418
  "\u2514",
16316
16419
  " "
16317
16420
  ] }),
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: [
16421
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: 32, children: [
16422
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.link, children: truncateName(skill.name, DETAIL_NAME_MAX_LEN) }),
16423
+ skill.loaded && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.status.success, children: [
16321
16424
  " ",
16322
16425
  t("active")
16323
16426
  ] })
16324
16427
  ] }),
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: [
16428
+ /* @__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
16429
  formatTokens(skill.tokens),
16327
16430
  " ",
16328
16431
  t("tokens")
16329
16432
  ] }) })
16330
16433
  ] }),
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: [
16434
+ skill.loaded && skill.bodyTokens != null && skill.bodyTokens > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, paddingLeft: 4, children: [
16435
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
16333
16436
  " \u2514",
16334
16437
  " "
16335
16438
  ] }),
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: [
16439
+ /* @__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") }) }),
16440
+ /* @__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
16441
  "+",
16339
16442
  formatTokens(skill.bodyTokens),
16340
16443
  " ",
@@ -16343,7 +16446,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16343
16446
  ] })
16344
16447
  ] }, skill.name))
16345
16448
  ] })
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.") }) })
16449
+ ] }) : /* @__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
16450
  ]
16348
16451
  }
16349
16452
  );
@@ -16351,7 +16454,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
16351
16454
 
16352
16455
  // packages/cli/src/ui/components/views/DoctorReport.tsx
16353
16456
  init_esbuild_shims();
16354
- var import_jsx_runtime42 = __toESM(require_jsx_runtime(), 1);
16457
+ var import_jsx_runtime43 = __toESM(require_jsx_runtime(), 1);
16355
16458
  var STATUS_ICONS2 = {
16356
16459
  pass: "\u2713",
16357
16460
  // checkmark
@@ -16394,7 +16497,7 @@ var DoctorReport = /* @__PURE__ */ __name(({
16394
16497
  const groups = groupByCategory(checks);
16395
16498
  const categoryEntries = Array.from(groups.entries());
16396
16499
  const nameColWidth = Math.max(20, ...checks.map((c) => c.name.length + 2));
16397
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
16500
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
16398
16501
  Box_default,
16399
16502
  {
16400
16503
  borderStyle: "round",
@@ -16404,26 +16507,26 @@ var DoctorReport = /* @__PURE__ */ __name(({
16404
16507
  paddingX: 2,
16405
16508
  width,
16406
16509
  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)(
16510
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Doctor Report") }),
16511
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { height: 1 }),
16512
+ categoryEntries.map(([category, items], groupIdx) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
16410
16513
  Box_default,
16411
16514
  {
16412
16515
  flexDirection: "column",
16413
16516
  marginTop: groupIdx > 0 ? 1 : 0,
16414
16517
  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: [
16518
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { bold: true, color: theme.text.link, children: category }),
16519
+ items.map((check) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { flexDirection: "column", children: [
16520
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { flexDirection: "row", children: [
16521
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: getStatusColor2(check.status), children: [
16419
16522
  " ",
16420
16523
  STATUS_ICONS2[check.status],
16421
16524
  " "
16422
16525
  ] }),
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 })
16526
+ /* @__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 }) }),
16527
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { dimColor: true, children: check.message })
16425
16528
  ] }),
16426
- check.detail && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { marginLeft: 6, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { dimColor: true, children: [
16529
+ check.detail && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { marginLeft: 6, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { dimColor: true, children: [
16427
16530
  "-> ",
16428
16531
  check.detail
16429
16532
  ] }) })
@@ -16432,21 +16535,21 @@ var DoctorReport = /* @__PURE__ */ __name(({
16432
16535
  },
16433
16536
  category
16434
16537
  )),
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: [
16538
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { marginTop: 1, children: [
16539
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { dimColor: true, children: "-- " }),
16540
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.status.success, children: [
16438
16541
  summary.pass,
16439
16542
  " ",
16440
16543
  t("passed")
16441
16544
  ] }),
16442
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { dimColor: true, children: ", " }),
16443
- /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.status.warning, children: [
16545
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { dimColor: true, children: ", " }),
16546
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.status.warning, children: [
16444
16547
  summary.warn,
16445
16548
  " ",
16446
16549
  t("warnings")
16447
16550
  ] }),
16448
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { dimColor: true, children: ", " }),
16449
- /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.status.error, children: [
16551
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { dimColor: true, children: ", " }),
16552
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.status.error, children: [
16450
16553
  summary.fail,
16451
16554
  " ",
16452
16555
  t("failures")
@@ -16459,7 +16562,7 @@ var DoctorReport = /* @__PURE__ */ __name(({
16459
16562
 
16460
16563
  // packages/cli/src/ui/components/arena/ArenaCards.tsx
16461
16564
  init_esbuild_shims();
16462
- var import_jsx_runtime43 = __toESM(require_jsx_runtime(), 1);
16565
+ var import_jsx_runtime44 = __toESM(require_jsx_runtime(), 1);
16463
16566
  var ArenaAgentCard = /* @__PURE__ */ __name(({
16464
16567
  agent,
16465
16568
  width
@@ -16469,8 +16572,8 @@ var ArenaAgentCard = /* @__PURE__ */ __name(({
16469
16572
  const tokens = agent.totalTokens.toLocaleString();
16470
16573
  const inTokens = agent.inputTokens.toLocaleString();
16471
16574
  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: [
16575
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", width, children: [
16576
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color, children: [
16474
16577
  icon,
16475
16578
  " ",
16476
16579
  agent.label,
@@ -16479,7 +16582,7 @@ var ArenaAgentCard = /* @__PURE__ */ __name(({
16479
16582
  " \xB7 ",
16480
16583
  duration
16481
16584
  ] }) }),
16482
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.text.secondary, children: [
16585
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
16483
16586
  "Tokens: ",
16484
16587
  tokens,
16485
16588
  " (in ",
@@ -16488,25 +16591,25 @@ var ArenaAgentCard = /* @__PURE__ */ __name(({
16488
16591
  outTokens,
16489
16592
  ")"
16490
16593
  ] }) }),
16491
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.text.secondary, children: [
16594
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
16492
16595
  "Tool Calls: ",
16493
16596
  agent.toolCalls,
16494
- agent.failedToolCalls > 0 && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [
16597
+ agent.failedToolCalls > 0 && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, { children: [
16495
16598
  " ",
16496
16599
  "(",
16497
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.status.success, children: [
16600
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.success, children: [
16498
16601
  "\u2713 ",
16499
16602
  agent.successfulToolCalls
16500
16603
  ] }),
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: [
16604
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: " " }),
16605
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.error, children: [
16503
16606
  "\u2715 ",
16504
16607
  agent.failedToolCalls
16505
16608
  ] }),
16506
16609
  ")"
16507
16610
  ] })
16508
16611
  ] }) }),
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 }) })
16612
+ 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
16613
  ] });
16511
16614
  }, "ArenaAgentCard");
16512
16615
  function getDiffStats(diff, diffSummary) {
@@ -16573,7 +16676,7 @@ var ArenaSessionCard = /* @__PURE__ */ __name(({
16573
16676
  width
16574
16677
  }) => {
16575
16678
  const titleLabel = sessionStatus === "idle" || sessionStatus === "completed" ? "Arena Comparison Summary" : sessionStatus === "cancelled" ? "Arena Cancelled" : "Arena Failed";
16576
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
16679
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
16577
16680
  Box_default,
16578
16681
  {
16579
16682
  borderStyle: "round",
@@ -16583,91 +16686,91 @@ var ArenaSessionCard = /* @__PURE__ */ __name(({
16583
16686
  paddingY: 1,
16584
16687
  width,
16585
16688
  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:" }),
16689
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: titleLabel }) }),
16690
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
16691
+ (sessionStatus === "idle" || sessionStatus === "completed") && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, { children: [
16692
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", children: [
16693
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: "Status Summary:" }),
16591
16694
  agents.map((agent, index) => {
16592
16695
  const { text: statusText, color } = getArenaStatusLabel(
16593
16696
  agent.status
16594
16697
  );
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: [
16698
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { marginLeft: 2, children: [
16699
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
16597
16700
  index === agents.length - 1 ? "\u2514\u2500" : "\u251C\u2500",
16598
16701
  " ",
16599
16702
  agent.label,
16600
16703
  ":",
16601
16704
  " "
16602
16705
  ] }),
16603
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color, children: statusText })
16706
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color, children: statusText })
16604
16707
  ] }, agent.label);
16605
16708
  })
16606
16709
  ] }),
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: [
16710
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
16711
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", children: [
16712
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: "Files Modified:" }),
16713
+ getComparisonFileGroups(agents).map((group, index, groups) => /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { marginLeft: 2, children: [
16714
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
16612
16715
  getTreeBranch(index, groups.length),
16613
16716
  " ",
16614
16717
  group.label,
16615
16718
  ":",
16616
16719
  " "
16617
16720
  ] }),
16618
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color: theme.text.primary, children: formatFileList(group.files) })
16721
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.primary, children: formatFileList(group.files) })
16619
16722
  ] }, group.label))
16620
16723
  ] }),
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:" }),
16724
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
16725
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", children: [
16726
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: "Approach Summary:" }),
16624
16727
  agents.map((agent, index) => {
16625
16728
  const diffStats = getDiffStats(agent.diff, agent.diffSummary);
16626
16729
  const files = getAgentFiles(agent).length;
16627
16730
  const branch = index === agents.length - 1 ? "\u2514\u2500" : "\u251C\u2500";
16628
16731
  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: [
16732
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { children: [
16733
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
16631
16734
  branch,
16632
16735
  " ",
16633
16736
  agent.label,
16634
16737
  ":",
16635
16738
  " "
16636
16739
  ] }),
16637
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.text.primary, children: [
16740
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.primary, children: [
16638
16741
  summary,
16639
16742
  " "
16640
16743
  ] }),
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: [
16744
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: "(" }),
16745
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.accent, children: files }),
16746
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: files === 1 ? " file, " : " files, " }),
16747
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.success, children: [
16645
16748
  "+",
16646
16749
  diffStats.additions
16647
16750
  ] }),
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: [
16751
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: " " }),
16752
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.error, children: [
16650
16753
  "-",
16651
16754
  diffStats.deletions
16652
16755
  ] }),
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)" })
16756
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: " lines, " }),
16757
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.accent, children: agent.toolCalls }),
16758
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: agent.toolCalls === 1 ? " tool call)" : " tool calls)" })
16656
16759
  ] }) }, agent.label);
16657
16760
  })
16658
16761
  ] }),
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: [
16762
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
16763
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", children: [
16764
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: "Token Efficiency:" }),
16765
+ agents.map((agent, index) => /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { marginLeft: 2, children: [
16766
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
16664
16767
  index === agents.length - 1 ? "\u2514\u2500" : "\u251C\u2500",
16665
16768
  " ",
16666
16769
  agent.label,
16667
16770
  ":",
16668
16771
  " "
16669
16772
  ] }),
16670
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.text.primary, children: [
16773
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.primary, children: [
16671
16774
  agent.outputTokens.toLocaleString(),
16672
16775
  " tokens \xB7 runtime",
16673
16776
  " ",
@@ -16676,15 +16779,15 @@ var ArenaSessionCard = /* @__PURE__ */ __name(({
16676
16779
  ] }, agent.label))
16677
16780
  ] })
16678
16781
  ] }),
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: [
16782
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
16783
+ 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
16784
  "Run ",
16682
- /* @__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" }),
16683
16786
  " to view detailed diff or pick a winner."
16684
16787
  ] }) }),
16685
- sessionStatus === "completed" && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.text.secondary, children: [
16788
+ sessionStatus === "completed" && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
16686
16789
  "Run ",
16687
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color: theme.text.accent, children: "/arena select" }),
16790
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.accent, children: "/arena select" }),
16688
16791
  " to pick a winner."
16689
16792
  ] }) })
16690
16793
  ]
@@ -16694,7 +16797,7 @@ var ArenaSessionCard = /* @__PURE__ */ __name(({
16694
16797
 
16695
16798
  // packages/cli/src/ui/components/messages/InsightProgressMessage.tsx
16696
16799
  init_esbuild_shims();
16697
- var import_jsx_runtime44 = __toESM(require_jsx_runtime(), 1);
16800
+ var import_jsx_runtime45 = __toESM(require_jsx_runtime(), 1);
16698
16801
  var InsightProgressMessage = /* @__PURE__ */ __name(({
16699
16802
  progress
16700
16803
  }) => {
@@ -16704,28 +16807,28 @@ var InsightProgressMessage = /* @__PURE__ */ __name(({
16704
16807
  const remainingWidth = width - completedWidth;
16705
16808
  const bar = "\u2588".repeat(Math.max(0, completedWidth)) + "\u2591".repeat(Math.max(0, remainingWidth));
16706
16809
  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: [
16810
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Box_default, { flexDirection: "column", children: [
16811
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Text, { color: theme.status.error, children: [
16709
16812
  "\u2715 ",
16710
16813
  stage
16711
16814
  ] }),
16712
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: error })
16815
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { color: theme.text.secondary, children: error })
16713
16816
  ] });
16714
16817
  }
16715
16818
  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: [
16819
+ 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
16820
  "\u2713 ",
16718
16821
  stage
16719
16822
  ] }) });
16720
16823
  }
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: [
16824
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Box_default, { flexDirection: "row", children: [
16825
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { color: theme.text.accent, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(build_default, { type: "dots" }) }),
16826
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { children: " " }),
16827
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Text, { color: theme.text.secondary, children: [
16725
16828
  bar,
16726
16829
  " "
16727
16830
  ] }),
16728
- /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.accent, children: [
16831
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Text, { color: theme.text.accent, children: [
16729
16832
  stage,
16730
16833
  progress.detail ? ` (${progress.detail})` : ""
16731
16834
  ] })
@@ -16735,7 +16838,7 @@ var InsightProgressMessage = /* @__PURE__ */ __name(({
16735
16838
  // packages/cli/src/ui/components/messages/BtwMessage.tsx
16736
16839
  init_esbuild_shims();
16737
16840
  var import_react41 = __toESM(require_react(), 1);
16738
- var import_jsx_runtime45 = __toESM(require_jsx_runtime(), 1);
16841
+ var import_jsx_runtime46 = __toESM(require_jsx_runtime(), 1);
16739
16842
  var BTW_SELF_CHROME = 4;
16740
16843
  function normalizeCodeFences(text) {
16741
16844
  return text.replace(/([^\n])(```|~~~)/g, "$1\n$2");
@@ -16748,7 +16851,7 @@ var BtwMessageInternal = /* @__PURE__ */ __name(({
16748
16851
  const { columns: terminalWidth } = useTerminalSize();
16749
16852
  const baseWidth = containerWidth ?? terminalWidth;
16750
16853
  const contentWidth = Math.max(2, baseWidth - BTW_SELF_CHROME);
16751
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
16854
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
16752
16855
  Box_default,
16753
16856
  {
16754
16857
  flexDirection: "column",
@@ -16757,18 +16860,18 @@ var BtwMessageInternal = /* @__PURE__ */ __name(({
16757
16860
  paddingX: 1,
16758
16861
  width: "100%",
16759
16862
  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 })
16863
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { flexDirection: "row", children: [
16864
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { color: Colors.AccentYellow, bold: true, children: "/btw " }),
16865
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { wrap: "wrap", color: Colors.AccentYellow, children: btw.question })
16763
16866
  ] }),
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...") })
16867
+ btw.isPending ? /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16868
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { children: [
16869
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { color: Colors.AccentYellow, children: "+ " }),
16870
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { color: Colors.AccentYellow, children: t("Answering...") })
16768
16871
  ] }),
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)(
16872
+ /* @__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") }) })
16873
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
16874
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
16772
16875
  MarkdownDisplay,
16773
16876
  {
16774
16877
  text: normalizeCodeFences(btw.answer),
@@ -16776,7 +16879,7 @@ var BtwMessageInternal = /* @__PURE__ */ __name(({
16776
16879
  contentWidth
16777
16880
  }
16778
16881
  ),
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") }) })
16882
+ /* @__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
16883
  ] })
16781
16884
  ]
16782
16885
  }
@@ -16787,7 +16890,7 @@ var BtwMessage = import_react41.default.memo(BtwMessageInternal);
16787
16890
  // packages/cli/src/ui/components/messages/AdvisorMessage.tsx
16788
16891
  init_esbuild_shims();
16789
16892
  var import_react42 = __toESM(require_react(), 1);
16790
- var import_jsx_runtime46 = __toESM(require_jsx_runtime(), 1);
16893
+ var import_jsx_runtime47 = __toESM(require_jsx_runtime(), 1);
16791
16894
  var ADVISOR_SELF_CHROME = 4;
16792
16895
  var AdvisorMessageInternal = /* @__PURE__ */ __name(({
16793
16896
  text,
@@ -16797,7 +16900,7 @@ var AdvisorMessageInternal = /* @__PURE__ */ __name(({
16797
16900
  const { columns: terminalWidth } = useTerminalSize();
16798
16901
  const baseWidth = containerWidth ?? terminalWidth;
16799
16902
  const contentWidth = Math.max(2, baseWidth - ADVISOR_SELF_CHROME);
16800
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
16903
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
16801
16904
  Box_default,
16802
16905
  {
16803
16906
  flexDirection: "column",
@@ -16806,11 +16909,11 @@ var AdvisorMessageInternal = /* @__PURE__ */ __name(({
16806
16909
  paddingX: 1,
16807
16910
  width: "100%",
16808
16911
  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}` })
16912
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(Box_default, { flexDirection: "row", children: [
16913
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Text, { color: Colors.AccentCyan, bold: true, children: "/advisor" }),
16914
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Text, { color: Colors.AccentCyan, children: ` \xB7 ${model}` })
16812
16915
  ] }),
16813
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Box_default, { flexDirection: "column", marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
16916
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Box_default, { flexDirection: "column", marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
16814
16917
  MarkdownDisplay,
16815
16918
  {
16816
16919
  text,
@@ -16826,16 +16929,16 @@ var AdvisorMessage = import_react42.default.memo(AdvisorMessageInternal);
16826
16929
 
16827
16930
  // packages/cli/src/ui/components/messages/MemorySavedMessage.tsx
16828
16931
  init_esbuild_shims();
16829
- var import_jsx_runtime47 = __toESM(require_jsx_runtime(), 1);
16932
+ var import_jsx_runtime48 = __toESM(require_jsx_runtime(), 1);
16830
16933
  var MemorySavedMessage = /* @__PURE__ */ __name(({
16831
16934
  item
16832
16935
  }) => {
16833
16936
  const verb = item.verb ?? "Saved";
16834
16937
  const n = item.writtenCount;
16835
16938
  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: [
16939
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Box_default, { flexDirection: "row", children: [
16940
+ /* @__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 }) }),
16941
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Text, { dimColor: true, children: [
16839
16942
  verb,
16840
16943
  " ",
16841
16944
  n,
@@ -16847,28 +16950,28 @@ var MemorySavedMessage = /* @__PURE__ */ __name(({
16847
16950
 
16848
16951
  // packages/cli/src/ui/components/messages/DiffStatsDisplay.tsx
16849
16952
  init_esbuild_shims();
16850
- var import_jsx_runtime48 = __toESM(require_jsx_runtime(), 1);
16953
+ var import_jsx_runtime49 = __toESM(require_jsx_runtime(), 1);
16851
16954
  var DiffStatsDisplay = /* @__PURE__ */ __name(({
16852
16955
  model
16853
16956
  }) => {
16854
16957
  const { filesCount, linesAdded, linesRemoved, rows, hiddenCount } = model;
16855
16958
  const { addWidth, remWidth, statColumnWidth } = computeDiffColumnWidths(rows);
16856
16959
  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: [
16960
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Box_default, { flexDirection: "column", children: [
16961
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { children: [
16962
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: headerLabel }),
16963
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.secondary, children: ", " }),
16964
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.status.success, children: [
16862
16965
  "+",
16863
16966
  linesAdded
16864
16967
  ] }),
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: [
16968
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.secondary, children: " / " }),
16969
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.status.error, children: [
16867
16970
  "-",
16868
16971
  linesRemoved
16869
16972
  ] })
16870
16973
  ] }),
16871
- rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
16974
+ rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
16872
16975
  DiffRow,
16873
16976
  {
16874
16977
  row,
@@ -16878,7 +16981,7 @@ var DiffStatsDisplay = /* @__PURE__ */ __name(({
16878
16981
  },
16879
16982
  row.filename
16880
16983
  )),
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: [
16984
+ 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
16985
  " ",
16883
16986
  t("\u2026and {{hidden}} more (showing first {{shown}})", {
16884
16987
  hidden: String(hiddenCount),
@@ -16898,16 +17001,16 @@ var DiffRow = /* @__PURE__ */ __name(({
16898
17001
  if (row.isBinary) {
16899
17002
  const marker = padRight("~", statColumnWidth);
16900
17003
  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: [
17004
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { children: [
17005
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
17006
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.secondary, children: marker }),
17007
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
17008
+ safeOldPath ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
16906
17009
  safeOldPath,
16907
17010
  " \u2192 "
16908
17011
  ] }) : 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: [
17012
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: safeName }),
17013
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
16911
17014
  " ",
16912
17015
  suffix2
16913
17016
  ] })
@@ -16921,24 +17024,24 @@ var DiffRow = /* @__PURE__ */ __name(({
16921
17024
  } else if (row.isDeleted) {
16922
17025
  suffix = t("(deleted)");
16923
17026
  }
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: [
17027
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { 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.success, children: [
16927
17030
  "+",
16928
17031
  added
16929
17032
  ] }),
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: [
17033
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
17034
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.status.error, children: [
16932
17035
  "-",
16933
17036
  removed
16934
17037
  ] }),
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: [
17038
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
17039
+ safeOldPath ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
16937
17040
  safeOldPath,
16938
17041
  " \u2192 "
16939
17042
  ] }) : 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: [
17043
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: safeName }),
17044
+ suffix && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
16942
17045
  " ",
16943
17046
  suffix
16944
17047
  ] })
@@ -16952,7 +17055,7 @@ __name(padRight, "padRight");
16952
17055
  // packages/cli/src/ui/components/messages/GoalStatusMessage.tsx
16953
17056
  init_esbuild_shims();
16954
17057
  var import_react43 = __toESM(require_react(), 1);
16955
- var import_jsx_runtime49 = __toESM(require_jsx_runtime(), 1);
17058
+ var import_jsx_runtime50 = __toESM(require_jsx_runtime(), 1);
16956
17059
  var pluralTurns = /* @__PURE__ */ __name((n) => n === 1 ? "turn" : "turns", "pluralTurns");
16957
17060
  function assertNeverGoalStatusKind(kind) {
16958
17061
  throw new Error(`Unexpected goal status kind: ${kind}`);
@@ -16965,9 +17068,9 @@ var GoalStateCard = /* @__PURE__ */ __name(({
16965
17068
  const goal = snapshot.goal;
16966
17069
  if (!goal) {
16967
17070
  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" })
17071
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
17072
+ /* @__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 }) }),
17073
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: theme.text.secondary, children: "Goal cleared" })
16971
17074
  ] });
16972
17075
  }
16973
17076
  const lifecycle = (() => {
@@ -17025,21 +17128,21 @@ var GoalStateCard = /* @__PURE__ */ __name(({
17025
17128
  }
17026
17129
  const subtitle = stats.length > 0 ? stats.join(" \xB7 ") : null;
17027
17130
  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: [
17131
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
17132
+ /* @__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 }) }),
17133
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
17134
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: lifecycle.color, children: [
17032
17135
  lifecycle.title,
17033
- subtitle ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
17136
+ subtitle ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, children: [
17034
17137
  " \xB7 ",
17035
17138
  subtitle
17036
17139
  ] }) : null
17037
17140
  ] }),
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 }) })
17141
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
17142
+ /* @__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:" }) }),
17143
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { wrap: "wrap", children: goal.objective }) })
17041
17144
  ] }),
17042
- reason ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
17145
+ reason ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
17043
17146
  "Reason: ",
17044
17147
  reason
17045
17148
  ] }) : null
@@ -17047,24 +17150,24 @@ var GoalStateCard = /* @__PURE__ */ __name(({
17047
17150
  ] });
17048
17151
  }, "GoalStateCard");
17049
17152
  var GoalStatusMessageInternal = /* @__PURE__ */ __name((props) => {
17050
- if (props.snapshot) return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(GoalStateCard, { ...props });
17153
+ if (props.snapshot) return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(GoalStateCard, { ...props });
17051
17154
  const { kind, condition, iterations, durationMs, lastReason } = props;
17052
17155
  if (kind === "checking") {
17053
17156
  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: [
17157
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
17158
+ /* @__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 }) }),
17159
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
17160
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, children: [
17058
17161
  "Goal check",
17059
17162
  typeof iterations === "number" && iterations > 0 ? ` \xB7 turn ${iterations}` : "",
17060
17163
  " ",
17061
17164
  "\xB7 not yet met"
17062
17165
  ] }),
17063
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
17166
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
17064
17167
  "Goal: ",
17065
17168
  condition
17066
17169
  ] }),
17067
- reason ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
17170
+ reason ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
17068
17171
  "Judge: ",
17069
17172
  reason
17070
17173
  ] }) : null
@@ -17121,21 +17224,21 @@ var GoalStatusMessageInternal = /* @__PURE__ */ __name((props) => {
17121
17224
  stats.push(formatDuration(durationMs, { hideTrailingZeros: true }));
17122
17225
  }
17123
17226
  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: [
17227
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
17228
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: prefixColor, children: prefix }) }),
17229
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
17230
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: prefixColor, children: [
17128
17231
  title,
17129
- subtitle ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
17232
+ subtitle ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, children: [
17130
17233
  " \xB7 ",
17131
17234
  subtitle
17132
17235
  ] }) : null
17133
17236
  ] }),
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 }) })
17237
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
17238
+ /* @__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:" }) }),
17239
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { wrap: "wrap", children: condition }) })
17137
17240
  ] }),
17138
- isTerminalGoalStatusKind(kind) && lastReason?.trim() ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
17241
+ isTerminalGoalStatusKind(kind) && lastReason?.trim() ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
17139
17242
  "Last check: ",
17140
17243
  lastReason.trim()
17141
17244
  ] }) : null
@@ -17158,7 +17261,7 @@ var useThoughtExpanded = /* @__PURE__ */ __name(() => (0, import_react44.useCont
17158
17261
  var ThoughtExpandedProvider = ThoughtExpandedContext.Provider;
17159
17262
 
17160
17263
  // packages/cli/src/ui/components/HistoryItemDisplay.tsx
17161
- var import_jsx_runtime50 = __toESM(require_jsx_runtime(), 1);
17264
+ var import_jsx_runtime51 = __toESM(require_jsx_runtime(), 1);
17162
17265
  var ClickableThinkMessage = /* @__PURE__ */ __name(({
17163
17266
  text,
17164
17267
  isPending,
@@ -17207,7 +17310,7 @@ var ClickableThinkMessage = /* @__PURE__ */ __name(({
17207
17310
  ),
17208
17311
  { isActive }
17209
17312
  );
17210
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { ref: isActive ? ref : void 0, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17313
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { ref: isActive ? ref : void 0, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17211
17314
  ThinkMessage,
17212
17315
  {
17213
17316
  text,
@@ -17284,7 +17387,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17284
17387
  const itemForDisplay = (0, import_react45.useMemo)(() => escapeAnsiCtrlCodes(item), [item]);
17285
17388
  const contentWidth = terminalWidth - 4;
17286
17389
  const boxWidth = mainAreaWidth || contentWidth;
17287
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
17390
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
17288
17391
  Box_default,
17289
17392
  {
17290
17393
  flexDirection: "column",
@@ -17292,11 +17395,11 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17292
17395
  marginLeft: 2,
17293
17396
  marginRight: 2,
17294
17397
  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: [
17398
+ itemForDisplay.type === "user" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(UserMessage, { text: itemForDisplay.text }),
17399
+ itemForDisplay.type === "notification" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(InfoMessage, { text: itemForDisplay.text }),
17400
+ itemForDisplay.type === "user_shell" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(UserShellMessage, { text: itemForDisplay.text }),
17401
+ itemForDisplay.type === "gemini" && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_jsx_runtime51.Fragment, { children: [
17402
+ showTimestamps && itemForDisplay.timestamp != null && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Text, { dimColor: true, children: [
17300
17403
  "[",
17301
17404
  new Date(itemForDisplay.timestamp).toLocaleTimeString("en-US", {
17302
17405
  hour12: false,
@@ -17306,7 +17409,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17306
17409
  }),
17307
17410
  "]"
17308
17411
  ] }),
17309
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17412
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17310
17413
  AssistantMessage,
17311
17414
  {
17312
17415
  text: itemForDisplay.text,
@@ -17319,7 +17422,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17319
17422
  }
17320
17423
  )
17321
17424
  ] }),
17322
- itemForDisplay.type === "gemini_content" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17425
+ itemForDisplay.type === "gemini_content" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17323
17426
  AssistantMessageContent,
17324
17427
  {
17325
17428
  text: itemForDisplay.text,
@@ -17331,7 +17434,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17331
17434
  sourceCopyIndexOffsets
17332
17435
  }
17333
17436
  ),
17334
- itemForDisplay.type === "gemini_thought" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17437
+ itemForDisplay.type === "gemini_thought" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17335
17438
  ClickableThinkMessage,
17336
17439
  {
17337
17440
  text: itemForDisplay.text.trimEnd(),
@@ -17343,7 +17446,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17343
17446
  onToggle: () => toggleThought(thoughtGroupHeadId)
17344
17447
  }
17345
17448
  ),
17346
- itemForDisplay.type === "gemini_thought_content" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17449
+ itemForDisplay.type === "gemini_thought_content" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17347
17450
  ThinkMessageContent,
17348
17451
  {
17349
17452
  text: itemForDisplay.text.trimEnd(),
@@ -17353,7 +17456,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17353
17456
  contentWidth
17354
17457
  }
17355
17458
  ),
17356
- itemForDisplay.type === "info" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17459
+ itemForDisplay.type === "info" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17357
17460
  InfoMessage,
17358
17461
  {
17359
17462
  text: itemForDisplay.text,
@@ -17361,26 +17464,26 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17361
17464
  linkText: itemForDisplay.linkText
17362
17465
  }
17363
17466
  ),
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)(
17467
+ itemForDisplay.type === "success" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SuccessMessage, { text: itemForDisplay.text }),
17468
+ itemForDisplay.type === "warning" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(WarningMessage, { text: itemForDisplay.text }),
17469
+ itemForDisplay.type === "error" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ErrorMessage, { text: itemForDisplay.text, hint: itemForDisplay.hint }),
17470
+ itemForDisplay.type === "retry_countdown" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(RetryCountdownMessage, { text: itemForDisplay.text }),
17471
+ itemForDisplay.type === "vision_notice" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(VisionNoticeMessage, { text: itemForDisplay.text }),
17472
+ itemForDisplay.type === "about" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(AboutBox, { ...itemForDisplay.systemInfo, width: boxWidth }),
17473
+ itemForDisplay.type === "help" && commands && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Help, { commands, width: boxWidth }),
17474
+ itemForDisplay.type === "stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(StatsDisplay, { duration: itemForDisplay.duration, width: boxWidth }),
17475
+ itemForDisplay.type === "diff_stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DiffStatsDisplay, { model: itemForDisplay.model }),
17476
+ itemForDisplay.type === "model_stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ModelStatsDisplay, { width: boxWidth }),
17477
+ itemForDisplay.type === "tool_stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ToolStatsDisplay, { width: boxWidth }),
17478
+ itemForDisplay.type === "skill_stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SkillStatsDisplay, { width: boxWidth }),
17479
+ itemForDisplay.type === "quit" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17377
17480
  SessionSummaryDisplay,
17378
17481
  {
17379
17482
  duration: itemForDisplay.duration,
17380
17483
  width: boxWidth
17381
17484
  }
17382
17485
  ),
17383
- itemForDisplay.type === "tool_group" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17486
+ itemForDisplay.type === "tool_group" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17384
17487
  ToolGroupMessage,
17385
17488
  {
17386
17489
  toolCalls: itemForDisplay.tools,
@@ -17397,14 +17500,14 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17397
17500
  fullDetail
17398
17501
  }
17399
17502
  ),
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 })
17503
+ itemForDisplay.type === "tool_use_summary" && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Box_default, { flexDirection: "row", children: [
17504
+ /* @__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 }) }),
17505
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { dimColor: true, children: itemForDisplay.summary })
17403
17506
  ] }),
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)(
17507
+ itemForDisplay.type === "compression" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(CompressionMessage, { compression: itemForDisplay.compression }),
17508
+ itemForDisplay.type === "summary" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SummaryMessage, { summary: itemForDisplay.summary }),
17509
+ itemForDisplay.type === "extensions_list" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ExtensionsList, {}),
17510
+ itemForDisplay.type === "tools_list" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17408
17511
  ToolsList,
17409
17512
  {
17410
17513
  contentWidth,
@@ -17412,9 +17515,9 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17412
17515
  showDescriptions: itemForDisplay.showDescriptions
17413
17516
  }
17414
17517
  ),
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)(
17518
+ itemForDisplay.type === "skills_list" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SkillsList, { skills: itemForDisplay.skills }),
17519
+ itemForDisplay.type === "mcp_status" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(McpStatus, { ...itemForDisplay, serverStatus: getMCPServerStatus }),
17520
+ itemForDisplay.type === "context_usage" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17418
17521
  ContextUsage,
17419
17522
  {
17420
17523
  modelName: itemForDisplay.modelName,
@@ -17429,7 +17532,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17429
17532
  showDetails: itemForDisplay.showDetails
17430
17533
  }
17431
17534
  ),
17432
- itemForDisplay.type === "doctor" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17535
+ itemForDisplay.type === "doctor" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17433
17536
  DoctorReport,
17434
17537
  {
17435
17538
  checks: itemForDisplay.checks,
@@ -17437,8 +17540,8 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17437
17540
  width: boxWidth
17438
17541
  }
17439
17542
  ),
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)(
17543
+ itemForDisplay.type === "arena_agent_complete" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ArenaAgentCard, { agent: itemForDisplay.agent, width: boxWidth }),
17544
+ itemForDisplay.type === "arena_session_complete" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17442
17545
  ArenaSessionCard,
17443
17546
  {
17444
17547
  sessionStatus: itemForDisplay.sessionStatus,
@@ -17448,9 +17551,9 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17448
17551
  width: boxWidth
17449
17552
  }
17450
17553
  ),
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)(
17554
+ itemForDisplay.type === "insight_progress" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(InsightProgressMessage, { progress: itemForDisplay.progress }),
17555
+ itemForDisplay.type === "btw" && itemForDisplay.btw && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(BtwMessage, { btw: itemForDisplay.btw, containerWidth: contentWidth }),
17556
+ itemForDisplay.type === "advisor" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17454
17557
  AdvisorMessage,
17455
17558
  {
17456
17559
  text: itemForDisplay.text,
@@ -17458,20 +17561,20 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
17458
17561
  containerWidth: contentWidth
17459
17562
  }
17460
17563
  ),
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:
17564
+ 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
17565
  ${itemForDisplay.reason}
17463
17566
 
17464
17567
  Original prompt: ${sanitizeSensitiveText(itemForDisplay.originalPrompt)}` }) }),
17465
- itemForDisplay.type === "stop_hook_loop" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17568
+ itemForDisplay.type === "stop_hook_loop" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17466
17569
  InfoMessage,
17467
17570
  {
17468
17571
  text: `Ran ${itemForDisplay.stopHookCount} stop hooks
17469
17572
  \u23BF Stop hook error: ${itemForDisplay.reasons[itemForDisplay.reasons.length - 1]}`
17470
17573
  }
17471
17574
  ),
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)(
17575
+ itemForDisplay.type === "stop_hook_system_message" && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Box_default, { flexDirection: "column", children: [
17576
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { color: theme.text.primary, children: " \u23BF Stop says:" }),
17577
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { marginLeft: 4, flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17475
17578
  MarkdownDisplay,
17476
17579
  {
17477
17580
  text: itemForDisplay.message,
@@ -17480,9 +17583,9 @@ Original prompt: ${sanitizeSensitiveText(itemForDisplay.originalPrompt)}` }) }),
17480
17583
  }
17481
17584
  ) })
17482
17585
  ] }),
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)(
17586
+ itemForDisplay.type === "memory_saved" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(MemorySavedMessage, { item: itemForDisplay }),
17587
+ itemForDisplay.type === "away_recap" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(AwayRecapMessage, { text: itemForDisplay.text }),
17588
+ itemForDisplay.type === "goal_status" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17486
17589
  GoalStatusMessage,
17487
17590
  {
17488
17591
  kind: itemForDisplay.kind,
@@ -17492,7 +17595,7 @@ Original prompt: ${sanitizeSensitiveText(itemForDisplay.originalPrompt)}` }) }),
17492
17595
  lastReason: itemForDisplay.lastReason
17493
17596
  }
17494
17597
  ),
17495
- itemForDisplay.type === "goal_state" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
17598
+ itemForDisplay.type === "goal_state" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17496
17599
  GoalStatusMessage,
17497
17600
  {
17498
17601
  snapshot: itemForDisplay.snapshot,
@@ -17508,7 +17611,7 @@ var HistoryItemDisplay = (0, import_react45.memo)(HistoryItemDisplayComponent);
17508
17611
  HistoryItemDisplay.displayName = "HistoryItemDisplay";
17509
17612
 
17510
17613
  // packages/cli/src/ui/components/SessionPreview.tsx
17511
- var import_jsx_runtime51 = __toESM(require_jsx_runtime(), 1);
17614
+ var import_jsx_runtime52 = __toESM(require_jsx_runtime(), 1);
17512
17615
  function SessionPreview(props) {
17513
17616
  const {
17514
17617
  sessionService,
@@ -17583,19 +17686,19 @@ function SessionPreview(props) {
17583
17686
  metaParts.push(gitBranch);
17584
17687
  }
17585
17688
  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");
17689
+ 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");
17690
+ 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");
17691
+ 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");
17692
+ 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;
17693
+ 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
17694
  if (data && !error) {
17592
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { flexDirection: "column", width: boxWidth, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17695
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { flexDirection: "column", width: boxWidth, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
17593
17696
  Static,
17594
17697
  {
17595
17698
  items: [
17596
17699
  header,
17597
17700
  topSeparator,
17598
- ...items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
17701
+ ...items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
17599
17702
  HistoryItemDisplay,
17600
17703
  {
17601
17704
  item,
@@ -17614,10 +17717,10 @@ function SessionPreview(props) {
17614
17717
  sessionId
17615
17718
  ) });
17616
17719
  }
17617
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Box_default, { flexDirection: "column", width: boxWidth, children: [
17720
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Box_default, { flexDirection: "column", width: boxWidth, children: [
17618
17721
  header,
17619
17722
  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...") }) }),
17723
+ 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
17724
  footerSeparator,
17622
17725
  meta,
17623
17726
  footer
@@ -17626,7 +17729,7 @@ function SessionPreview(props) {
17626
17729
  __name(SessionPreview, "SessionPreview");
17627
17730
 
17628
17731
  // packages/cli/src/ui/components/SessionPicker.tsx
17629
- var import_jsx_runtime52 = __toESM(require_jsx_runtime(), 1);
17732
+ var import_jsx_runtime53 = __toESM(require_jsx_runtime(), 1);
17630
17733
  var PREFIX_CHARS = {
17631
17734
  selected: "\u203A ",
17632
17735
  scrollUp: "\u2191 ",
@@ -17659,9 +17762,9 @@ function SessionListItemView({
17659
17762
  Math.max(1, maxPromptWidth - checkboxWidth)
17660
17763
  );
17661
17764
  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)(
17765
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Box_default, { flexDirection: "column", marginBottom: isLast ? 0 : 1, children: [
17766
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Box_default, { children: [
17767
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
17665
17768
  Text,
17666
17769
  {
17667
17770
  color: isSelected ? theme.text.accent : showUpIndicator || showDownIndicator ? theme.text.secondary : void 0,
@@ -17669,7 +17772,7 @@ function SessionListItemView({
17669
17772
  children: prefix
17670
17773
  }
17671
17774
  ),
17672
- isChecked !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
17775
+ isChecked !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
17673
17776
  Text,
17674
17777
  {
17675
17778
  color: isDisabled ? theme.text.secondary : isChecked ? theme.text.accent : isSelected ? theme.text.accent : theme.text.secondary,
@@ -17677,7 +17780,7 @@ function SessionListItemView({
17677
17780
  children: isChecked ? "[x] " : "[ ] "
17678
17781
  }
17679
17782
  ),
17680
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
17783
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
17681
17784
  Text,
17682
17785
  {
17683
17786
  color: isDisabled ? theme.text.secondary : isSelected ? theme.text.accent : isAutoTitle ? theme.text.secondary : theme.text.primary,
@@ -17686,7 +17789,7 @@ function SessionListItemView({
17686
17789
  }
17687
17790
  )
17688
17791
  ] }),
17689
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Text, { color: theme.text.secondary, children: [
17792
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.secondary, children: [
17690
17793
  timeAgo,
17691
17794
  messageText !== void 0 && ` \xB7 ${messageText}`,
17692
17795
  session.gitBranch && ` \xB7 ${session.gitBranch}`,
@@ -17735,7 +17838,7 @@ function SessionPicker(props) {
17735
17838
  const previewed = picker.filteredSessions.find(
17736
17839
  (s) => s.sessionId === picker.previewSessionId
17737
17840
  );
17738
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
17841
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
17739
17842
  SessionPreview,
17740
17843
  {
17741
17844
  sessionService,
@@ -17749,14 +17852,14 @@ function SessionPicker(props) {
17749
17852
  }
17750
17853
  );
17751
17854
  }
17752
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
17855
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
17753
17856
  Box_default,
17754
17857
  {
17755
17858
  flexDirection: "column",
17756
17859
  width: boxWidth,
17757
17860
  height: height - 1,
17758
17861
  overflow: "hidden",
17759
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
17862
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
17760
17863
  Box_default,
17761
17864
  {
17762
17865
  flexDirection: "column",
@@ -17766,38 +17869,38 @@ function SessionPicker(props) {
17766
17869
  height: height - 1,
17767
17870
  overflow: "hidden",
17768
17871
  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: [
17872
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Box_default, { paddingX: 1, children: [
17873
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { bold: true, color: theme.text.primary, children: title ?? t("Resume Session") }),
17874
+ picker.filterByBranch && currentBranch && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.secondary, children: [
17772
17875
  " ",
17773
17876
  t("(branch: {{branch}})", { branch: currentBranch })
17774
17877
  ] }),
17775
- picker.searchQuery !== "" && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Text, { color: theme.text.secondary, children: [
17878
+ picker.searchQuery !== "" && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.secondary, children: [
17776
17879
  " ",
17777
17880
  t("({{count}} matches)", {
17778
17881
  count: String(picker.filteredSessions.length)
17779
17882
  })
17780
17883
  ] })
17781
17884
  ] }),
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: [
17885
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { paddingX: 1, children: picker.isSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
17886
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Search: ") }),
17887
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.primary, children: [
17785
17888
  picker.searchQuery,
17786
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: "\u258C" })
17889
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: "\u258C" })
17787
17890
  ] })
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}}"', {
17891
+ ] }) : picker.searchQuery !== "" ? /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
17892
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Filter: ") }),
17893
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.primary, children: picker.searchQuery })
17894
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Press / to search") }) }),
17895
+ /* @__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) }) }),
17896
+ /* @__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
17897
  query: picker.searchQuery
17795
17898
  }) : picker.filterByBranch ? t('No sessions found for branch "{{branch}}"', {
17796
17899
  branch: currentBranch ?? ""
17797
17900
  }) : t("No sessions found") }) }) : picker.visibleSessions.map((session, visibleIndex) => {
17798
17901
  const actualIndex = picker.scrollOffset + visibleIndex;
17799
17902
  const isDisabled = picker.disabledIdSet.has(session.sessionId);
17800
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
17903
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
17801
17904
  SessionListItemView,
17802
17905
  {
17803
17906
  session,
@@ -17816,10 +17919,10 @@ function SessionPicker(props) {
17816
17919
  session.sessionId
17817
17920
  );
17818
17921
  }) }),
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)(
17922
+ /* @__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) }) }),
17923
+ /* @__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: [
17924
+ currentBranch && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.secondary, children: [
17925
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
17823
17926
  Text,
17824
17927
  {
17825
17928
  bold: picker.filterByBranch,
@@ -17829,7 +17932,7 @@ function SessionPicker(props) {
17829
17932
  ),
17830
17933
  t(" to toggle branch \xB7 ")
17831
17934
  ] }),
17832
- enablePreview && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: t("Space to preview \xB7 ") }),
17935
+ enablePreview && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Space to preview \xB7 ") }),
17833
17936
  enableMultiSelect && (() => {
17834
17937
  let committableCheckedCount = 0;
17835
17938
  for (const id of picker.checkedIds) {
@@ -17837,11 +17940,11 @@ function SessionPicker(props) {
17837
17940
  committableCheckedCount++;
17838
17941
  }
17839
17942
  }
17840
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: committableCheckedCount > 0 ? t("Space to toggle \xB7 {{count}} selected \xB7 ", {
17943
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: committableCheckedCount > 0 ? t("Space to toggle \xB7 {{count}} selected \xB7 ", {
17841
17944
  count: String(committableCheckedCount)
17842
17945
  }) : t("Space to select multiple \xB7 ") });
17843
17946
  })(),
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") })
17947
+ /* @__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
17948
  ] }) }) })
17846
17949
  ]
17847
17950
  }