@qwen-code/qwen-code 0.22.0-nightly.20260825.22bb5e8b9f → 0.22.1

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