@organizaone/o1-code 0.19.4 → 0.20.0

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 (347) hide show
  1. package/bundled/qc-helper/docs/features/sub-agents.md +29 -0
  2. package/chunks/{MaxSizedBox-IEWPEYLM.js → MaxSizedBox-K6ZIOTK2.js} +42 -42
  3. package/chunks/{StandaloneSessionPicker-O5XGGHSV.js → StandaloneSessionPicker-GMN2NSOX.js} +58 -58
  4. package/chunks/{acp-subagent-executor-SARFPLBX.js → acp-subagent-executor-3KANENTV.js} +45 -45
  5. package/chunks/{acpAgent-WI2WIHJ2.js → acpAgent-TH5RJUQR.js} +88 -88
  6. package/chunks/{agent-TRD3DVKW.js → agent-A4HBS5YW.js} +26 -26
  7. package/chunks/{agent-headless-L3ODBSIA.js → agent-headless-HLZTE5G2.js} +26 -26
  8. package/chunks/{all-providers-Q4UTI7X7.js → all-providers-LYA6G2FD.js} +2 -2
  9. package/chunks/{anthropicContentGenerator-R5EZMIUD.js → anthropicContentGenerator-XZTRPOXZ.js} +5 -5
  10. package/chunks/{artifact-tool-YPTGDOWY.js → artifact-tool-VKDCERQZ.js} +1 -1
  11. package/chunks/{askUserQuestion-SVDY6XLX.js → askUserQuestion-NWK5LQIZ.js} +2 -2
  12. package/chunks/{bridge-CWUXZNK2.js → bridge-KO43BLNM.js} +45 -45
  13. package/chunks/{bwrap-execution-PXKLC4L6.js → bwrap-execution-32LOZ3PS.js} +5 -5
  14. package/chunks/{caption-audio-EK6K45W3.js → caption-audio-OLLSPHW7.js} +3 -3
  15. package/chunks/{caption-image-WDXLQK6T.js → caption-image-ARAQIU6W.js} +3 -3
  16. package/chunks/{chunk-FIXBGZLC.js → chunk-2D2DZP65.js} +3 -3
  17. package/chunks/{chunk-75UFQ4VY.js → chunk-2G3AZNJ5.js} +4 -4
  18. package/chunks/{chunk-IZSIFV6S.js → chunk-2I2NK33A.js} +1 -1
  19. package/chunks/{chunk-YCTMVTDP.js → chunk-2SMHE6PC.js} +1 -1
  20. package/chunks/{chunk-WK44MSGW.js → chunk-32722SNN.js} +1 -1
  21. package/chunks/{chunk-ID6BF7FM.js → chunk-3CWK2CPF.js} +1 -1
  22. package/chunks/{chunk-R54WGB5K.js → chunk-3GJ4USZZ.js} +7 -7
  23. package/chunks/{chunk-FRDIFAE7.js → chunk-3YBMUB43.js} +1 -1
  24. package/chunks/{chunk-KHSEVS3O.js → chunk-5SM3EYY4.js} +2 -2
  25. package/chunks/{chunk-ZJLBESKM.js → chunk-6BOPO2CB.js} +2 -2
  26. package/chunks/{chunk-OSMXNPJP.js → chunk-6CW53FOJ.js} +2 -2
  27. package/chunks/{chunk-6NPHWGZJ.js → chunk-6ZM4Q4KZ.js} +1 -1
  28. package/chunks/{chunk-2LB3FV6Y.js → chunk-76RPLLAU.js} +2 -2
  29. package/chunks/{chunk-ZPCVRY42.js → chunk-7FKHLWEJ.js} +1 -1
  30. package/chunks/{chunk-PPHCWNOW.js → chunk-7WR2OWSW.js} +4 -4
  31. package/chunks/{chunk-O7ZK6JUE.js → chunk-7WWRFD54.js} +18 -18
  32. package/chunks/{chunk-CFFFKDAX.js → chunk-A3JZZ2KW.js} +1 -1
  33. package/chunks/{chunk-EAULWM27.js → chunk-ABUSH24T.js} +2 -2
  34. package/chunks/{chunk-QGBGLKMW.js → chunk-ACYDX6SG.js} +11 -11
  35. package/chunks/{chunk-GQCAN53O.js → chunk-AD7SSY2F.js} +2 -2
  36. package/chunks/{chunk-7OBN7TW6.js → chunk-AFLUT27F.js} +3 -3
  37. package/chunks/{chunk-XOVXSDNN.js → chunk-AGTM6524.js} +2 -2
  38. package/chunks/{chunk-OW44PTOE.js → chunk-ALDQ36W4.js} +8 -8
  39. package/chunks/{chunk-Q4SBLB6E.js → chunk-B7UDYBFE.js} +2 -2
  40. package/chunks/{chunk-YO3SEHXM.js → chunk-BNJ3IJB7.js} +1 -1
  41. package/chunks/{chunk-FAOCU5VJ.js → chunk-BZHLXJWH.js} +1 -1
  42. package/chunks/{chunk-WA5T74EJ.js → chunk-C5YZ6RZC.js} +2 -2
  43. package/chunks/{chunk-UOO4TFQV.js → chunk-CCDVLPJU.js} +7 -7
  44. package/chunks/{chunk-ZHDGCGW7.js → chunk-CMHOR7E6.js} +2 -2
  45. package/chunks/{chunk-5HVWJGQN.js → chunk-DAP4EYT4.js} +1 -1
  46. package/chunks/{chunk-D5LBASZ7.js → chunk-DCSRFE4W.js} +1 -1
  47. package/chunks/{chunk-OBKNDDZW.js → chunk-DHERIROV.js} +17 -17
  48. package/chunks/{chunk-ZQBNP2ZQ.js → chunk-DNMM4RF7.js} +3 -3
  49. package/chunks/{chunk-O7RFFTTE.js → chunk-DR6BI3PJ.js} +3 -3
  50. package/chunks/{chunk-QYUMJTBP.js → chunk-DVR4QCFA.js} +2 -2
  51. package/chunks/{chunk-7R7LA5F5.js → chunk-DYGCZZA5.js} +11 -11
  52. package/chunks/{chunk-G5QZC3KV.js → chunk-ESJUUVTV.js} +2 -2
  53. package/chunks/{chunk-2I7F4TTF.js → chunk-FB7XHMPT.js} +1 -1
  54. package/chunks/{chunk-TC6APBKO.js → chunk-FC4ZD65F.js} +1 -1
  55. package/chunks/{chunk-2Z5S36GZ.js → chunk-GONQNZPP.js} +2 -2
  56. package/chunks/{chunk-OPYQYNSR.js → chunk-H4USGTKZ.js} +9 -9
  57. package/chunks/{chunk-FFUKRRCR.js → chunk-HAZNBQPI.js} +1 -1
  58. package/chunks/{chunk-VBDGXRYM.js → chunk-HFIGGSUW.js} +5 -5
  59. package/chunks/{chunk-2XBK3KBR.js → chunk-I3YBDADP.js} +3 -3
  60. package/chunks/{chunk-2MXORWOC.js → chunk-IMLPJ76O.js} +1 -1
  61. package/chunks/{chunk-DUHNRPAF.js → chunk-INGWSCK5.js} +1 -1
  62. package/chunks/{chunk-X4OQN3ZO.js → chunk-IPWNPFIR.js} +2 -2
  63. package/chunks/{chunk-VUJ4WYBZ.js → chunk-ITCYJNMA.js} +1 -1
  64. package/chunks/{chunk-H4GDMMIG.js → chunk-IVVMETSX.js} +1 -1
  65. package/chunks/{chunk-NUADBQGA.js → chunk-J3O3M5DH.js} +9 -9
  66. package/chunks/{chunk-7LFCBMVX.js → chunk-JEUH2DSW.js} +2 -2
  67. package/chunks/{chunk-QTI36T2P.js → chunk-JMM2J43E.js} +2 -2
  68. package/chunks/{chunk-53B5T577.js → chunk-JO2NW4DA.js} +1 -1
  69. package/chunks/{chunk-OT7EXUL3.js → chunk-JZZN42BL.js} +3 -3
  70. package/chunks/{chunk-WN23CFGN.js → chunk-KBDFOYPK.js} +3 -3
  71. package/chunks/{chunk-H4OG24QJ.js → chunk-KGYXJDO6.js} +7 -7
  72. package/chunks/{chunk-XVSSUT2K.js → chunk-KICY6OQ7.js} +1 -1
  73. package/chunks/{chunk-LJLEOFW5.js → chunk-KOVGLJMF.js} +1 -1
  74. package/chunks/{chunk-NLDWAN5E.js → chunk-KPX5HEZT.js} +1 -1
  75. package/chunks/{chunk-HFQJYTZB.js → chunk-KRHTSRMS.js} +3 -3
  76. package/chunks/{chunk-4LITKLIX.js → chunk-LDYAEBUL.js} +40 -40
  77. package/chunks/{chunk-7ZXK4ANS.js → chunk-LIK66ZNQ.js} +6 -6
  78. package/chunks/{chunk-Y5KGWAF5.js → chunk-LQN6XWDX.js} +3 -3
  79. package/chunks/{chunk-3NT6BHLE.js → chunk-LWPSKRES.js} +5 -5
  80. package/chunks/{chunk-E554MWZ4.js → chunk-M4U4RIDA.js} +2 -2
  81. package/chunks/{chunk-7S2AYA27.js → chunk-M7ZHP7VU.js} +1 -1
  82. package/chunks/{chunk-GNF3RKRI.js → chunk-MYZICQ6P.js} +1 -1
  83. package/chunks/{chunk-PZPDQGRC.js → chunk-N343WURR.js} +5 -5
  84. package/chunks/{chunk-LZPTOCB6.js → chunk-N362SBSD.js} +6 -6
  85. package/chunks/{chunk-B3E57DII.js → chunk-NDRT2N3P.js} +1 -1
  86. package/chunks/{chunk-QYVHXOTK.js → chunk-NFNJSERR.js} +4 -4
  87. package/chunks/{chunk-5MGXHMC4.js → chunk-O56BQSMS.js} +1 -1
  88. package/chunks/{chunk-6GEEXVXS.js → chunk-O66QLTOQ.js} +5 -5
  89. package/chunks/{chunk-KNSZB75B.js → chunk-OPXI2LPT.js} +4 -4
  90. package/chunks/{chunk-SGO7T2LC.js → chunk-P2GXVRDK.js} +2 -2
  91. package/chunks/{chunk-7ONVZOIL.js → chunk-P37WPAXB.js} +1 -1
  92. package/chunks/{chunk-HU66EQY6.js → chunk-P7OMODYK.js} +1 -1
  93. package/chunks/{chunk-QG4PTE3V.js → chunk-PASZSKHI.js} +2 -2
  94. package/chunks/{chunk-U6NS36IA.js → chunk-PKIF4YYA.js} +1 -1
  95. package/chunks/{chunk-CQURIVUY.js → chunk-PPR66GNG.js} +3 -3
  96. package/chunks/{chunk-OMOKTMD5.js → chunk-PRZNHEG5.js} +5 -5
  97. package/chunks/{chunk-74XOBBIF.js → chunk-PUL422GV.js} +1 -1
  98. package/chunks/{chunk-TD372APW.js → chunk-PWDV5AMU.js} +4 -4
  99. package/chunks/{chunk-HYGNYNEB.js → chunk-PXRDPUM6.js} +1 -1
  100. package/chunks/{chunk-I5INQP6E.js → chunk-Q3Z74K26.js} +1 -1
  101. package/chunks/{chunk-RJBN74YD.js → chunk-Q4XOBX7I.js} +2 -2
  102. package/chunks/{chunk-V75J4GJ2.js → chunk-QCE3SPTV.js} +1 -1
  103. package/chunks/{chunk-KC5PN54N.js → chunk-QCYPQQ2L.js} +3 -3
  104. package/chunks/{chunk-73IWVPN4.js → chunk-QO7EA4CI.js} +39 -39
  105. package/chunks/{chunk-XOP6HC4S.js → chunk-R2W4OGBP.js} +3 -3
  106. package/chunks/{chunk-JOBNLOEW.js → chunk-RGEJESCO.js} +1 -1
  107. package/chunks/{chunk-LKU26DC5.js → chunk-RSIHHBWT.js} +2 -2
  108. package/chunks/{chunk-VT3TJFQR.js → chunk-SHADJNT6.js} +2 -2
  109. package/chunks/{chunk-IWYGXAQU.js → chunk-SYMYKLO4.js} +2 -0
  110. package/chunks/{chunk-VEJCE7UR.js → chunk-SZ26YNBZ.js} +1 -1
  111. package/chunks/{chunk-RNEMD6QU.js → chunk-T65U3AIV.js} +1 -1
  112. package/chunks/{chunk-HDCVSMR4.js → chunk-TBNE3YTN.js} +1 -1
  113. package/chunks/{chunk-GJFAQ4TA.js → chunk-TFAHTLY5.js} +5 -5
  114. package/chunks/{chunk-MZI6FDZT.js → chunk-THO5UG52.js} +1 -1
  115. package/chunks/{chunk-JX3AAXJY.js → chunk-TR2AGNCI.js} +1 -1
  116. package/chunks/{chunk-4QVZPLPW.js → chunk-TW633LAC.js} +1 -1
  117. package/chunks/{chunk-H5AU3734.js → chunk-UBWKBJKK.js} +1 -1
  118. package/chunks/{chunk-XC6BAHJR.js → chunk-UQXFYLTF.js} +1 -1
  119. package/chunks/{chunk-RGEOMZSI.js → chunk-UV5VCYRN.js} +10 -10
  120. package/chunks/{chunk-DQZYZDIL.js → chunk-UW4Q5E5P.js} +1 -1
  121. package/chunks/{chunk-GVWQRVLV.js → chunk-VEGSKFFR.js} +1 -1
  122. package/chunks/{chunk-FH534GWJ.js → chunk-VGPRZT2M.js} +1140 -991
  123. package/chunks/{chunk-ADHXMZ3K.js → chunk-VXEIBLIB.js} +1 -1
  124. package/chunks/{chunk-LH3T52KS.js → chunk-WPZXZXSA.js} +1 -1
  125. package/chunks/{chunk-OJSW65PQ.js → chunk-WXMXXBCC.js} +5 -2
  126. package/chunks/{chunk-FNALBCC7.js → chunk-WXTAP6NR.js} +1 -1
  127. package/chunks/{chunk-PCN4NLQX.js → chunk-XHXYPNK5.js} +2 -2
  128. package/chunks/{chunk-FJHDFJVI.js → chunk-XI7IX5QR.js} +1 -1
  129. package/chunks/{chunk-NIPNNHXO.js → chunk-XIQ7VRJT.js} +6 -6
  130. package/chunks/{chunk-NEHYQ3LT.js → chunk-XJ3KXFNA.js} +9 -9
  131. package/chunks/{chunk-6XUAD5G6.js → chunk-XY2UI5DC.js} +3 -3
  132. package/chunks/{chunk-S3ERVFHU.js → chunk-Y4ENGAFT.js} +5 -5
  133. package/chunks/{chunk-YBZG6WG2.js → chunk-YAUMOXEH.js} +2 -2
  134. package/chunks/{chunk-CJG6P7UJ.js → chunk-YCMQJ2GA.js} +7 -7
  135. package/chunks/{chunk-TZKJ3CYY.js → chunk-YDHYL34R.js} +1 -1
  136. package/chunks/{chunk-R4ECPR25.js → chunk-YIHZLW3P.js} +3 -3
  137. package/chunks/{chunk-JKOS3HZY.js → chunk-Z5T3GXGZ.js} +3 -3
  138. package/chunks/{chunk-63PQ6B3U.js → chunk-ZC4KJUW4.js} +1 -1
  139. package/chunks/{clip-audio-BJ42NS5B.js → clip-audio-5ZTGLERU.js} +1 -1
  140. package/chunks/{clip-image-FDBAIKGB.js → clip-image-HLDAHQPL.js} +1 -1
  141. package/chunks/{clip-video-6KVC2IFL.js → clip-video-NXRDICLV.js} +1 -1
  142. package/chunks/{codex-subagent-executor-Z7IEFWUH.js → codex-subagent-executor-3QBYJANY.js} +45 -45
  143. package/chunks/{config-AC45I6CL.js → config-72LNOXYX.js} +2 -2
  144. package/chunks/{container-execution-environment-O2I5SDUH.js → container-execution-environment-RKRAWXR3.js} +2 -2
  145. package/chunks/{contextCommand-ZTVVWBIV.js → contextCommand-XD5VM34S.js} +44 -44
  146. package/chunks/{convert-image-AYXBZ3TH.js → convert-image-4MPD5TZ5.js} +1 -1
  147. package/chunks/{core-runtime-UERTINTN.js → core-runtime-H5ARE4YW.js} +42 -42
  148. package/chunks/{create-sub-session-BJIHWC5U.js → create-sub-session-5XUSWWWA.js} +43 -43
  149. package/chunks/{create-sub-session-O237VOIB.js → create-sub-session-UEQ23VBD.js} +2 -2
  150. package/chunks/{cron-create-FFFFZH7M.js → cron-create-WPK3NNT4.js} +1 -1
  151. package/chunks/{cron-delete-XXYQNHGZ.js → cron-delete-6V6MDQ6Z.js} +1 -1
  152. package/chunks/{cron-list-GBJYKY27.js → cron-list-TPJEL73F.js} +1 -1
  153. package/chunks/{daemon-git-worktree-guard-5KO4CWOV.js → daemon-git-worktree-guard-UXVYSWGD.js} +42 -42
  154. package/chunks/{daemon-status-provider-77MFFWPG.js → daemon-status-provider-2GUHT46G.js} +50 -50
  155. package/chunks/{daemon-trust-policy-QS7LZ4DW.js → daemon-trust-policy-YH6C3EEL.js} +48 -48
  156. package/chunks/{daemon-trust-policy-monitor-AY7BR4O7.js → daemon-trust-policy-monitor-7PXJHNLO.js} +48 -48
  157. package/chunks/{deferred-core-runtime-OCMBUSB5.js → deferred-core-runtime-HPHPB3AS.js} +42 -42
  158. package/chunks/{display-image-U6HZKF3G.js → display-image-T6P5QTKW.js} +3 -3
  159. package/chunks/{downsample-audio-HSPMS25U.js → downsample-audio-IGOEKKHD.js} +1 -1
  160. package/chunks/{downsample-image-BFBX343I.js → downsample-image-FUPJVVNL.js} +1 -1
  161. package/chunks/{downscale-video-GQ5ZMJRX.js → downscale-video-XZNDYVK4.js} +1 -1
  162. package/chunks/{edit-TLQKC3LG.js → edit-UIFP2PGV.js} +28 -28
  163. package/chunks/{en-YJDPOSAW.js → en-WAWVEHRK.js} +41 -0
  164. package/chunks/{enter-worktree-MF4APJEN.js → enter-worktree-MBAQRK6N.js} +1 -1
  165. package/chunks/{enterPlanMode-76BPF6LH.js → enterPlanMode-PKYBAO3X.js} +26 -26
  166. package/chunks/{environment-AMUW2KX3.js → environment-3XRGCIX6.js} +44 -44
  167. package/chunks/{errors-KNTKHM6L.js → errors-Q2Q7NGQP.js} +44 -44
  168. package/chunks/{exec-J7LCEEPS.js → exec-36YD62RP.js} +1 -1
  169. package/chunks/{execution-sandbox-config-VE7OGRXY.js → execution-sandbox-config-KJBPOX4U.js} +6 -6
  170. package/chunks/{execution-tool-263V5JEK.js → execution-tool-Q2DAXXRD.js} +29 -29
  171. package/chunks/{execution-worker-JHOCJBIN.js → execution-worker-T2WTYSQ7.js} +36 -36
  172. package/chunks/{exit-worktree-DXSLV6EM.js → exit-worktree-AWEYW2UJ.js} +1 -1
  173. package/chunks/{exitPlanMode-K6B2JODR.js → exitPlanMode-BLJWPV4R.js} +26 -26
  174. package/chunks/{extract-audio-3LB2Q736.js → extract-audio-AYEXZ2KS.js} +1 -1
  175. package/chunks/{extract-keyframes-6ZP65BJF.js → extract-keyframes-UQVW7UH6.js} +1 -1
  176. package/chunks/{fast-path-FHLBTDKD.js → fast-path-X2GELFLG.js} +2 -2
  177. package/chunks/{glob-EBASENJF.js → glob-L6UEBSLC.js} +27 -27
  178. package/chunks/{goal-tools-QZECYB4S.js → goal-tools-ZND566V3.js} +26 -26
  179. package/chunks/{grep-NAW5AFAD.js → grep-5HGH34M6.js} +2 -2
  180. package/chunks/{handleAutoUpdate-XBTIE4FC.js → handleAutoUpdate-LGVBHACP.js} +45 -45
  181. package/chunks/{i18n-J7ANXY2X.js → i18n-OTJKGAV5.js} +43 -43
  182. package/chunks/{image-gen-Q4E7L7EV.js → image-gen-27Q5XGGZ.js} +1 -1
  183. package/chunks/{initializer-6INBSHTX.js → initializer-CUFHN7NP.js} +48 -48
  184. package/chunks/{installationInfo-VK32EWFR.js → installationInfo-FQLMYK6U.js} +42 -42
  185. package/chunks/{list-KEQUWD6M.js → list-L4CAJRDW.js} +50 -50
  186. package/chunks/{list-agents-A7UJ6VXZ.js → list-agents-T2EHYFCL.js} +1 -1
  187. package/chunks/{llm-CR5OP72L.js → llm-DRLY3EPV.js} +75 -75
  188. package/chunks/{llm-content-generator-K2DRDNXN.js → llm-content-generator-KM3RKFZX.js} +4 -4
  189. package/chunks/{loadedSettingsAdapter-PJPH4OCO.js → loadedSettingsAdapter-EKQLWXD2.js} +48 -48
  190. package/chunks/{local-execution-environment-QC5UHGMN.js → local-execution-environment-JC6OC65I.js} +36 -36
  191. package/chunks/{loggingContentGenerator-DJEMIYHV.js → loggingContentGenerator-RPWVHJXT.js} +27 -27
  192. package/chunks/{loop-wakeup-BKO62IMW.js → loop-wakeup-RC454BL4.js} +2 -2
  193. package/chunks/{ls-KIV7RGKE.js → ls-RZYAZPVC.js} +2 -2
  194. package/chunks/{lsp-TYQ3HXES.js → lsp-ZHD2YAJ5.js} +1 -1
  195. package/chunks/{managed-npm-update-3SDAWD4R.js → managed-npm-update-LU6KESGU.js} +42 -42
  196. package/chunks/{mcp-TYYYLGMV.js → mcp-C2I7NSP3.js} +48 -48
  197. package/chunks/{memory-side-query-BSVTSKCB.js → memory-side-query-DNXJZB7B.js} +2 -2
  198. package/chunks/{model-call-collection-FFR7ZNWD.js → model-call-collection-QAYYACHB.js} +3 -3
  199. package/chunks/{model-configuration-GUZIIGAH.js → model-configuration-RJ75ARJ7.js} +49 -49
  200. package/chunks/{modelConfigUtils-PKQ46KSJ.js → modelConfigUtils-O3FI7FOY.js} +44 -44
  201. package/chunks/{monitor-FNMBX5BB.js → monitor-YXVBM5LR.js} +26 -26
  202. package/chunks/{nonInteractiveCli-LATJ4A34.js → nonInteractiveCli-3IIAHJL7.js} +78 -78
  203. package/chunks/{nonInteractiveToolExecutor-YQOVVH6B.js → nonInteractiveToolExecutor-PXSMVOJQ.js} +27 -27
  204. package/chunks/{notebook-edit-BW4DJWZU.js → notebook-edit-CQYOYPLP.js} +27 -27
  205. package/chunks/{ocr-image-O6ECQNUE.js → ocr-image-UTGQDI5V.js} +3 -3
  206. package/chunks/{omni-YYVIGRGX.js → omni-PDUOKKBQ.js} +14 -14
  207. package/chunks/{openaiContentGenerator-FG3UZCTL.js → openaiContentGenerator-C3PXKTPV.js} +15 -15
  208. package/chunks/{openaiResponsesContentGenerator-XOT5DTAC.js → openaiResponsesContentGenerator-SLIXPGB7.js} +6 -6
  209. package/chunks/{processUtils-QBMARONE.js → processUtils-YYPY2SFA.js} +2 -2
  210. package/chunks/{prompt-terminal-ledger-VUCLICZG.js → prompt-terminal-ledger-UYCYWEM5.js} +43 -43
  211. package/chunks/{pt-TSNNSVF3.js → pt-753KIWB2.js} +41 -0
  212. package/chunks/{reactive-degrade-VPQZF55X.js → reactive-degrade-FUVEFE6Z.js} +10 -10
  213. package/chunks/{read-file-2O33TKD7.js → read-file-Y77OTEMB.js} +6 -6
  214. package/chunks/{read-mcp-resource-TYAD3TBP.js → read-mcp-resource-4NSQ2WFB.js} +1 -1
  215. package/chunks/{recall-media-memory-tool-WIFEB2OG.js → recall-media-memory-tool-7NAM2ZGH.js} +2 -2
  216. package/chunks/{record-artifact-IVE6QT4D.js → record-artifact-LAQGMYDN.js} +2 -2
  217. package/chunks/{record-source-ANENC5K7.js → record-source-NRW6TYWW.js} +6 -6
  218. package/chunks/{report-findings-W75NCFXY.js → report-findings-OVUUKGUX.js} +3 -3
  219. package/chunks/{request-shutdown-LRWCJOEG.js → request-shutdown-MXKAXR2D.js} +5 -5
  220. package/chunks/{resumeHistoryUtils-PLGVAEHT.js → resumeHistoryUtils-5O5SRG7J.js} +46 -46
  221. package/chunks/{ripGrep-U4HZCL4K.js → ripGrep-ZZFRUTTO.js} +7 -7
  222. package/chunks/{run-o1-code-serve-B5XNSRQI.js → run-o1-code-serve-37AU45X3.js} +32 -32
  223. package/chunks/{runtime-shell-policy-R4LXGDDO.js → runtime-shell-policy-6WE6FYXV.js} +1 -1
  224. package/chunks/{sandboxConfig-6LJHLGOT.js → sandboxConfig-JIAWD4WT.js} +42 -42
  225. package/chunks/{scheduled-tasks-DBHHUK3R.js → scheduled-tasks-I6FYEPHY.js} +48 -48
  226. package/chunks/{scheduler-XHIPT4EI.js → scheduler-A234SXNR.js} +44 -44
  227. package/chunks/{send-message-XY7EC52V.js → send-message-KFUNQQFA.js} +5 -5
  228. package/chunks/{serve-6MCT2M2A.js → serve-DQ7KR6A3.js} +48 -48
  229. package/chunks/{server-B3KEPLVK.js → server-5OPR2KC5.js} +79 -79
  230. package/chunks/{session-XDZM36XY.js → session-3T2KLRRJ.js} +79 -79
  231. package/chunks/{session-DTLH45KY.js → session-NK4B45E6.js} +1 -1
  232. package/chunks/{session-attachments-root-DUCWV5SV.js → session-attachments-root-DZDFKMRO.js} +42 -42
  233. package/chunks/{session-pr-refresh-6XZHJOHJ.js → session-pr-refresh-PO26A3TW.js} +47 -47
  234. package/chunks/{settings-EIBLUO2U.js → settings-AYOSYUSY.js} +47 -47
  235. package/chunks/{shell-7U5KEVDP.js → shell-LM4ZECHQ.js} +26 -26
  236. package/chunks/{skill-RQNSH7FP.js → skill-5GTMZLHX.js} +8 -8
  237. package/chunks/{skill-settings-RLPBS65V.js → skill-settings-TGUCUPFY.js} +48 -48
  238. package/chunks/{spawnChannel-ORMDVKIV.js → spawnChannel-RZEUK5CK.js} +44 -44
  239. package/chunks/{standalone-update-EFWC3EXO.js → standalone-update-NFFBVU35.js} +44 -44
  240. package/chunks/{startInteractiveUI-XPJQ6N4R.js → startInteractiveUI-YG3LWCTV.js} +1453 -687
  241. package/chunks/{syntheticOutput-6NR7LSGN.js → syntheticOutput-KZMNOKOG.js} +2 -2
  242. package/chunks/{task-create-2BHPJUF3.js → task-create-EHGTZMSD.js} +6 -6
  243. package/chunks/{task-list-6LPOL5UB.js → task-list-ABYOHJDS.js} +1 -1
  244. package/chunks/{task-stop-VGLKJLBG.js → task-stop-6L7G4RYB.js} +2 -2
  245. package/chunks/{task-update-NGKKBFU5.js → task-update-LBXI5OVE.js} +6 -6
  246. package/chunks/{team-create-NQUT63NA.js → team-create-ZTHGVM55.js} +26 -26
  247. package/chunks/{team-delete-WBSKRFVF.js → team-delete-RL37ORM3.js} +1 -1
  248. package/chunks/{team-plan-approval-ZICR7PLR.js → team-plan-approval-XQM5QHQV.js} +26 -26
  249. package/chunks/{terminal-image-renderer-KNBEKIBU.js → terminal-image-renderer-4GM5REOR.js} +42 -42
  250. package/chunks/{theme-manager-ELLW2WSH.js → theme-manager-7PQ67ZJ6.js} +42 -42
  251. package/chunks/{todoWrite-AX43SXLU.js → todoWrite-ARTSGNNA.js} +1 -1
  252. package/chunks/{tool-call-GVZHLCX6.js → tool-call-V225426S.js} +6 -6
  253. package/chunks/{tool-result-media-GVAXAMIM.js → tool-result-media-IM7ZZGPN.js} +14 -14
  254. package/chunks/{tool-search-5YDYOBEY.js → tool-search-IS4DQX6M.js} +10 -10
  255. package/chunks/{total-session-admission-5J6FUOHB.js → total-session-admission-OCMJER6L.js} +45 -45
  256. package/chunks/{transcribe-audio-R6YC24KU.js → transcribe-audio-WOITX4I2.js} +2 -2
  257. package/chunks/{trustedFolders-L4OBHBMG.js → trustedFolders-CFYQFHI4.js} +43 -43
  258. package/chunks/{understand-video-segments-2WK4T6PO.js → understand-video-segments-YFCIFF7P.js} +3 -3
  259. package/chunks/{update-relaunch-OLWQOXJD.js → update-relaunch-UZRGARRI.js} +5 -5
  260. package/chunks/{updateCheck-P4256JN4.js → updateCheck-XMIPWEAF.js} +44 -44
  261. package/chunks/{upload-config-W6QM7O7M.js → upload-config-V6A4FZP4.js} +6 -6
  262. package/chunks/{useAutoAcceptIndicator-GAV5FOVS.js → useAutoAcceptIndicator-TNSI5JZ6.js} +50 -50
  263. package/chunks/{validateNonInterActiveAuth-JSAM5DKT.js → validateNonInterActiveAuth-X3DNLPAQ.js} +75 -75
  264. package/chunks/{version-J4K7YJEP.js → version-S2HOZZWG.js} +1 -1
  265. package/chunks/{web-fetch-KU4CTSQA.js → web-fetch-I4EYZQHF.js} +6 -6
  266. package/chunks/{web-search-6EC47GMF.js → web-search-3QMHJZHC.js} +8 -8
  267. package/chunks/{workflow-4LNE5CRK.js → workflow-QKVFIOSW.js} +27 -27
  268. package/chunks/{workspace-providers-status-5X5EEQU4.js → workspace-providers-status-OK37NIGF.js} +54 -54
  269. package/chunks/{workspace-registration-store-B7RGZ7XC.js → workspace-registration-store-E4HOHHEY.js} +1 -1
  270. package/chunks/{workspace-registry-DGFL345F.js → workspace-registry-X4DOIOKQ.js} +45 -45
  271. package/chunks/{workspace-runtime-coordinator-JOUD45MU.js → workspace-runtime-coordinator-S7VOLP7R.js} +46 -46
  272. package/chunks/{workspace-service-MVNGRTAX.js → workspace-service-72UZ465I.js} +53 -53
  273. package/chunks/{workspace-skills-status-54YB4YNO.js → workspace-skills-status-HIGZR2VJ.js} +51 -51
  274. package/chunks/{workspace-trust-reconciler-XWTFKN7T.js → workspace-trust-reconciler-CL3KMM3N.js} +51 -51
  275. package/chunks/{write-file-PAA35JB5.js → write-file-YXOVF7VS.js} +29 -29
  276. package/chunks/{zoom-image-7UF6I5FM.js → zoom-image-TVVCQIUM.js} +6 -6
  277. package/cli.js +12 -12
  278. package/execution-worker.js +1 -1
  279. package/export-transcript-document.js +3 -3
  280. package/locales/en.js +48 -0
  281. package/locales/pt.js +48 -0
  282. package/package.json +2 -2
  283. package/release-notes.json +6 -0
  284. package/web-shell/assets/{abnfDiagram-VCTEODGH-DaskAjYa.js → abnfDiagram-VCTEODGH-BHkxXw31.js} +1 -1
  285. package/web-shell/assets/{arc-CeF5eQNa.js → arc-BxDMC9VR.js} +1 -1
  286. package/web-shell/assets/{architectureDiagram-5GKGNRK7-0cJpQiMQ.js → architectureDiagram-5GKGNRK7-D-Z-7c7-.js} +1 -1
  287. package/web-shell/assets/{blockDiagram-NRAW4CY4-ZRZ9t0GN.js → blockDiagram-NRAW4CY4-WF6lVAAv.js} +1 -1
  288. package/web-shell/assets/{c4Diagram-UCG6FXSJ-wIoBOLjK.js → c4Diagram-UCG6FXSJ-QfuHuNrF.js} +1 -1
  289. package/web-shell/assets/channel-Jc8sAjXl.js +1 -0
  290. package/web-shell/assets/{chunk-2Q5K7J3B-CRe2K3To.js → chunk-2Q5K7J3B-DzYleJ6u.js} +1 -1
  291. package/web-shell/assets/{chunk-5VM5RSS4-BG67yUA9.js → chunk-5VM5RSS4-C3EiPOCs.js} +1 -1
  292. package/web-shell/assets/{chunk-F27PBJKO-B1d6n5eI.js → chunk-F27PBJKO-GknYYisN.js} +1 -1
  293. package/web-shell/assets/{chunk-G27WJ6UU-CIVn7PDx.js → chunk-G27WJ6UU-DRvn2m5Q.js} +1 -1
  294. package/web-shell/assets/{chunk-JWPE2WC7-BUCoEgYK.js → chunk-JWPE2WC7-Dvjzh5Eo.js} +1 -1
  295. package/web-shell/assets/{chunk-LCL6LL3I-BEcferer.js → chunk-LCL6LL3I-D3vU9Mn_.js} +1 -1
  296. package/web-shell/assets/{chunk-POPQ4Y6H-CpdZE7zI.js → chunk-POPQ4Y6H-BgtuwENg.js} +1 -1
  297. package/web-shell/assets/{chunk-SVP7TREG-B9JFFHOW.js → chunk-SVP7TREG-Bttyyzbd.js} +1 -1
  298. package/web-shell/assets/{chunk-XXDRQBXY-D7hHjiYq.js → chunk-XXDRQBXY-COo5CguA.js} +1 -1
  299. package/web-shell/assets/classDiagram-DTDB5LWJ-nRq5wacL.js +1 -0
  300. package/web-shell/assets/classDiagram-v2-JRS7N3AN-nRq5wacL.js +1 -0
  301. package/web-shell/assets/{cose-bilkent-JH36ORCC-B3CuOihi.js → cose-bilkent-JH36ORCC-DnWXhUAO.js} +1 -1
  302. package/web-shell/assets/{cynefin-OW5HDTMX-BL-7Y9zJ.js → cynefin-OW5HDTMX-8ZCxR8Je.js} +1 -1
  303. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-B4B-aYh1.js → cynefinDiagram-5FMLGOSQ-kZPFiIZP.js} +1 -1
  304. package/web-shell/assets/{dagre-3AP2YEHR-DeLGsLtP.js → dagre-3AP2YEHR-CGh6F-gj.js} +1 -1
  305. package/web-shell/assets/{diagram-S7CK7UJ4-CD1ow9s5.js → diagram-S7CK7UJ4-CxKuiWHp.js} +1 -1
  306. package/web-shell/assets/{diagram-UQ7AKVKN-BLXrwSIS.js → diagram-UQ7AKVKN-gajXkHeF.js} +1 -1
  307. package/web-shell/assets/{diagram-VSXAHHWV-C_4s_9Gq.js → diagram-VSXAHHWV-T6pnpmJZ.js} +1 -1
  308. package/web-shell/assets/{diagram-VX7I27RA-CDfysUiq.js → diagram-VX7I27RA-B9ckIvrZ.js} +1 -1
  309. package/web-shell/assets/{diagram-Z3DM3KII-B_nOMJNo.js → diagram-Z3DM3KII-BpenUGiF.js} +1 -1
  310. package/web-shell/assets/{ebnfDiagram-PWID7BFC-Bq9OS-2B.js → ebnfDiagram-PWID7BFC-DXKq9JCk.js} +1 -1
  311. package/web-shell/assets/{erDiagram-SSCWMZ5O-DdYlHfr0.js → erDiagram-SSCWMZ5O-CauiDq96.js} +1 -1
  312. package/web-shell/assets/{flowDiagram-A5DVABFB-BEMFnzjR.js → flowDiagram-A5DVABFB-Cl0QzUn4.js} +1 -1
  313. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-CUnEB8YA.js → ganttDiagram-EL5Y4UJY-DA7dTfru.js} +1 -1
  314. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-BZ3xFWS5.js → gitGraphDiagram-WWUBYQGX-9gaEuKuR.js} +1 -1
  315. package/web-shell/assets/{index-X14MyJWi.js → index-B6Z-ZPI-.js} +5 -5
  316. package/web-shell/assets/{index-CQ5O0GyT.js → index-wuoxV_5z.js} +1 -1
  317. package/web-shell/assets/{infoDiagram-RXCK75RN-DdBkiCU5.js → infoDiagram-RXCK75RN-n3Kb6fwf.js} +1 -1
  318. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CQwdIl4G.js → ishikawaDiagram-5VMMS53U-Dfv5zN3j.js} +1 -1
  319. package/web-shell/assets/{journeyDiagram-EYS64GPL-CHthIOzQ.js → journeyDiagram-EYS64GPL-B08W7lko.js} +1 -1
  320. package/web-shell/assets/{kanban-definition-3QL26DDD-wsQvYKZn.js → kanban-definition-3QL26DDD-BukEczk5.js} +1 -1
  321. package/web-shell/assets/{layout-BizdV6jP.js → layout-D4EhlXcx.js} +1 -1
  322. package/web-shell/assets/{linear-BjxyKDV-.js → linear-C19v39fE.js} +1 -1
  323. package/web-shell/assets/{mermaid.core-C5zbhLSB.js → mermaid.core-BZbXiwUJ.js} +6 -6
  324. package/web-shell/assets/{mindmap-definition-FBJOCRG2-B1fXC6cz.js → mindmap-definition-FBJOCRG2-DCZZVWM8.js} +1 -1
  325. package/web-shell/assets/{pegDiagram-XKGWAZYB-BWkVT1h_.js → pegDiagram-XKGWAZYB-CR0NaUZU.js} +1 -1
  326. package/web-shell/assets/{pieDiagram-E7YTZNPT-mXFpa0SY.js → pieDiagram-E7YTZNPT-BosTtKl6.js} +1 -1
  327. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CgURyFxf.js → quadrantDiagram-AXDQQJYC-DybxMpkV.js} +1 -1
  328. package/web-shell/assets/{railroadDiagram-O6MQD6OU-BKWdEmSU.js → railroadDiagram-O6MQD6OU-DOUs7Er5.js} +1 -1
  329. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-DQfXvBnO.js → requirementDiagram-EFPCY7ZU-NA0GzEca.js} +1 -1
  330. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C2NHJ-vh.js → sankeyDiagram-P5KCCOFB-DO10w9NW.js} +1 -1
  331. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BMY1NnO-.js → sequenceDiagram-WJ2MYXX4-DJTqs15w.js} +1 -1
  332. package/web-shell/assets/{sizeCapture-X5ZJPWSS-H_G6QbIF.js → sizeCapture-X5ZJPWSS-D3E7rt6e.js} +1 -1
  333. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BpXGLI-f.js → stateDiagram-HBIQ2CUA-65jdEgV4.js} +1 -1
  334. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-Ce4MCIHU.js +1 -0
  335. package/web-shell/assets/{swimlanes-XN3QIQJK-CK7vT1lz.js → swimlanes-XN3QIQJK-B1Rvb0SG.js} +1 -1
  336. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DnoCF_Z1.js +8 -0
  337. package/web-shell/assets/{timeline-definition-24CTP7MA-hlwSiLfp.js → timeline-definition-24CTP7MA-BrK3c4-F.js} +1 -1
  338. package/web-shell/assets/{vennDiagram-4TSXK5OY-D6np4JGg.js → vennDiagram-4TSXK5OY-DRsUph9j.js} +1 -1
  339. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CciJIRt_.js → wardleyDiagram-VM6X3IG4-C1UUQE5C.js} +1 -1
  340. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-KPEsUSHH.js → xychartDiagram-S5SC5T6Z-BgUAjHM3.js} +1 -1
  341. package/web-shell/index.html +1 -1
  342. package/web-shell/sw.js +1 -1
  343. package/web-shell/assets/channel-Ys6W9vX4.js +0 -1
  344. package/web-shell/assets/classDiagram-DTDB5LWJ-BlO3Djxk.js +0 -1
  345. package/web-shell/assets/classDiagram-v2-JRS7N3AN-BlO3Djxk.js +0 -1
  346. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-D_O73PF_.js +0 -1
  347. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6yu1hgd.js +0 -8
@@ -6,13 +6,13 @@ import {
6
6
  import {
7
7
  TUI_CHAT_RECORDING_FAILURE_MESSAGE,
8
8
  reportChatRecordingFailureToAdapter
9
- } from "./chunk-2I7F4TTF.js";
9
+ } from "./chunk-FB7XHMPT.js";
10
10
  import {
11
11
  StreamJsonOutputAdapter
12
- } from "./chunk-PPHCWNOW.js";
12
+ } from "./chunk-7WR2OWSW.js";
13
13
  import {
14
14
  startPostRenderPrefetches
15
- } from "./chunk-RGEOMZSI.js";
15
+ } from "./chunk-UV5VCYRN.js";
16
16
  import {
17
17
  AboutBox,
18
18
  BaseSelectionList,
@@ -114,7 +114,7 @@ import {
114
114
  useUIActions,
115
115
  useUIState,
116
116
  useVirtualViewport
117
- } from "./chunk-OBKNDDZW.js";
117
+ } from "./chunk-DHERIROV.js";
118
118
  import {
119
119
  CATEGORY_LABELS,
120
120
  ICON,
@@ -136,25 +136,25 @@ import {
136
136
  showsToolLabel,
137
137
  useStreamingContext,
138
138
  waitForGoalRuntime
139
- } from "./chunk-H4OG24QJ.js";
139
+ } from "./chunk-KGYXJDO6.js";
140
140
  import {
141
141
  stopAndGetCapturedInput
142
142
  } from "./chunk-VFLUNXD6.js";
143
143
  import {
144
144
  useAutoAcceptIndicator
145
- } from "./chunk-SGO7T2LC.js";
145
+ } from "./chunk-P2GXVRDK.js";
146
146
  import {
147
147
  KeypressProvider,
148
148
  useFocus,
149
149
  useKeypress,
150
150
  useKeypressContext
151
- } from "./chunk-QTI36T2P.js";
151
+ } from "./chunk-JMM2J43E.js";
152
152
  import {
153
153
  MAX_ACCEPTED_BACKLOG,
154
154
  PeerMessaging,
155
155
  classifyApiError,
156
156
  fireSessionDeleteHook
157
- } from "./chunk-5MGXHMC4.js";
157
+ } from "./chunk-O56BQSMS.js";
158
158
  import {
159
159
  MAX_SUGGESTIONS_TO_SHOW,
160
160
  SESSION_MENTION_PREFIX,
@@ -167,7 +167,7 @@ import {
167
167
  normalizeDescription,
168
168
  normalizePartList,
169
169
  resolveAtCommandQuery
170
- } from "./chunk-OW44PTOE.js";
170
+ } from "./chunk-ALDQ36W4.js";
171
171
  import {
172
172
  BuiltinCommandLoader,
173
173
  BundledSkillLoader,
@@ -224,7 +224,7 @@ import {
224
224
  resolveOutputStyleChoice,
225
225
  serializeUserPromptExpansionPrompt,
226
226
  supportsMatchers
227
- } from "./chunk-4LITKLIX.js";
227
+ } from "./chunk-LDYAEBUL.js";
228
228
  import {
229
229
  EXTENSION_RELOAD_FAILED_REASON,
230
230
  ExtensionRefreshState,
@@ -232,7 +232,7 @@ import {
232
232
  cleanupReviewWorktreeLeases,
233
233
  loadHierarchicalMemory,
234
234
  openRemoteSession
235
- } from "./chunk-73IWVPN4.js";
235
+ } from "./chunk-QO7EA4CI.js";
236
236
  import {
237
237
  BRAND,
238
238
  MAX_EXTENSION_OWNER_LABEL_WIDTH,
@@ -242,14 +242,14 @@ import {
242
242
  getEffectiveSupportedModes,
243
243
  repoDocUrl,
244
244
  skillOriginLabel
245
- } from "./chunk-TD372APW.js";
245
+ } from "./chunk-PWDV5AMU.js";
246
246
  import {
247
247
  contextUsageLabel,
248
248
  formatDuration,
249
249
  formatPercentageUsed,
250
250
  formatRelativeTime,
251
251
  formatTokenCount
252
- } from "./chunk-74XOBBIF.js";
252
+ } from "./chunk-PUL422GV.js";
253
253
  import {
254
254
  disableKittyProtocol,
255
255
  isKittyProtocolEnabled,
@@ -268,12 +268,12 @@ import {
268
268
  oscKittyNotify,
269
269
  saveClipboardImage,
270
270
  writeOsc52
271
- } from "./chunk-HDCVSMR4.js";
271
+ } from "./chunk-TBNE3YTN.js";
272
272
  import {
273
273
  sanitizeDisplayText
274
- } from "./chunk-R54WGB5K.js";
274
+ } from "./chunk-3GJ4USZZ.js";
275
275
  import "./chunk-AHKE26WU.js";
276
- import "./chunk-KC5PN54N.js";
276
+ import "./chunk-QCYPQQ2L.js";
277
277
  import "./chunk-UMIHM32I.js";
278
278
  import {
279
279
  TOP_FRAME,
@@ -308,7 +308,7 @@ import {
308
308
  import {
309
309
  require_react
310
310
  } from "./chunk-2KK65OQ6.js";
311
- import "./chunk-ID6BF7FM.js";
311
+ import "./chunk-3CWK2CPF.js";
312
312
  import "./chunk-G4YDGSSX.js";
313
313
  import {
314
314
  MAX_INLINE_IMAGES_PER_ITEM,
@@ -317,11 +317,11 @@ import {
317
317
  } from "./chunk-KIN34HCU.js";
318
318
  import {
319
319
  setUpdateHandler
320
- } from "./chunk-LKU26DC5.js";
320
+ } from "./chunk-RSIHHBWT.js";
321
321
  import {
322
322
  isHistoryItemVisibleAfterRestore
323
323
  } from "./chunk-64WBFX5X.js";
324
- import "./chunk-X4OQN3ZO.js";
324
+ import "./chunk-IPWNPFIR.js";
325
325
  import "./chunk-7DQWDZUQ.js";
326
326
  import "./chunk-KD7GIK2D.js";
327
327
  import {
@@ -332,27 +332,27 @@ import {
332
332
  import {
333
333
  requestConsentInteractive,
334
334
  requestConsentOrFail
335
- } from "./chunk-VBDGXRYM.js";
335
+ } from "./chunk-HFIGGSUW.js";
336
336
  import "./chunk-XZ3MQL2U.js";
337
337
  import {
338
338
  getErrorMessage as getErrorMessage2
339
- } from "./chunk-OT7EXUL3.js";
339
+ } from "./chunk-JZZN42BL.js";
340
340
  import {
341
341
  relaunchApp
342
- } from "./chunk-HYGNYNEB.js";
342
+ } from "./chunk-PXRDPUM6.js";
343
343
  import "./chunk-XG36NMOI.js";
344
344
  import "./chunk-SPLQKNEP.js";
345
- import "./chunk-VUJ4WYBZ.js";
346
- import "./chunk-R4ECPR25.js";
345
+ import "./chunk-ITCYJNMA.js";
346
+ import "./chunk-YIHZLW3P.js";
347
347
  import "./chunk-LXUIOY3M.js";
348
348
  import {
349
349
  openDashScopeAsrRealtimeStream,
350
350
  openVoiceStream,
351
351
  openVoiceStreamWithRetry
352
352
  } from "./chunk-MTSHGY6F.js";
353
- import "./chunk-7R7LA5F5.js";
353
+ import "./chunk-DYGCZZA5.js";
354
354
  import "./chunk-LL7XM3LM.js";
355
- import "./chunk-5HVWJGQN.js";
355
+ import "./chunk-DAP4EYT4.js";
356
356
  import {
357
357
  cpLen,
358
358
  cpSlice,
@@ -379,44 +379,44 @@ import {
379
379
  isStreamingVoiceModel,
380
380
  resolveVoiceStreamConfig,
381
381
  transcribeVoiceAudio
382
- } from "./chunk-Q4SBLB6E.js";
382
+ } from "./chunk-B7UDYBFE.js";
383
383
  import {
384
384
  formatUnsupportedVoiceModelMessage,
385
385
  isSelectableVoiceModel
386
- } from "./chunk-7ONVZOIL.js";
386
+ } from "./chunk-P37WPAXB.js";
387
387
  import "./chunk-TESN7CJW.js";
388
388
  import {
389
389
  REASONING_EFFORT_DEFAULT,
390
390
  getReasoningEffortsForConfig,
391
391
  getReasoningForDisplay
392
- } from "./chunk-GQCAN53O.js";
392
+ } from "./chunk-AD7SSY2F.js";
393
393
  import {
394
394
  buildHigherDisabled,
395
395
  computeWorkspaceSkillListUpdates,
396
396
  skillSettingStrings
397
- } from "./chunk-I5INQP6E.js";
397
+ } from "./chunk-Q3Z74K26.js";
398
398
  import "./chunk-W2R46PFD.js";
399
399
  import {
400
400
  createLoadedSettingsAdapter,
401
401
  getRawModelProviders
402
- } from "./chunk-QYVHXOTK.js";
402
+ } from "./chunk-NFNJSERR.js";
403
403
  import {
404
404
  getExtendedSystemInfo
405
- } from "./chunk-6XUAD5G6.js";
406
- import "./chunk-PCN4NLQX.js";
405
+ } from "./chunk-XY2UI5DC.js";
406
+ import "./chunk-XHXYPNK5.js";
407
407
  import "./chunk-QTAUA6ED.js";
408
408
  import "./chunk-LPCPB2S5.js";
409
409
  import "./chunk-LD2T7YET.js";
410
410
  import "./chunk-O7MSLRFZ.js";
411
411
  import "./chunk-W3YES77O.js";
412
- import "./chunk-RNEMD6QU.js";
413
- import "./chunk-75UFQ4VY.js";
412
+ import "./chunk-T65U3AIV.js";
413
+ import "./chunk-2G3AZNJ5.js";
414
414
  import {
415
415
  isInlineModelOverrideAllowed
416
- } from "./chunk-KHSEVS3O.js";
416
+ } from "./chunk-5SM3EYY4.js";
417
417
  import {
418
418
  loadMcpApprovals
419
- } from "./chunk-NIPNNHXO.js";
419
+ } from "./chunk-XIQ7VRJT.js";
420
420
  import {
421
421
  CORRUPTED_SUFFIX,
422
422
  SettingScope,
@@ -439,7 +439,7 @@ import {
439
439
  settingExistsInScope,
440
440
  validateSettingValue,
441
441
  writeOutputLanguageAndRegisterPath
442
- } from "./chunk-PZPDQGRC.js";
442
+ } from "./chunk-N343WURR.js";
443
443
  import {
444
444
  LOGO_ANIMATIONS,
445
445
  LOGO_FRAME_MS,
@@ -449,16 +449,16 @@ import {
449
449
  pickLogoAnimation,
450
450
  renderLogoRows,
451
451
  restFrame
452
- } from "./chunk-QG4PTE3V.js";
452
+ } from "./chunk-PASZSKHI.js";
453
453
  import "./chunk-EDRKBK4B.js";
454
454
  import {
455
455
  getCurrentLanguage,
456
456
  localizeToolDisplayName,
457
457
  t,
458
458
  ta
459
- } from "./chunk-ZJLBESKM.js";
459
+ } from "./chunk-6BOPO2CB.js";
460
460
  import "./chunk-Q2V34OV7.js";
461
- import "./chunk-E554MWZ4.js";
461
+ import "./chunk-M4U4RIDA.js";
462
462
  import {
463
463
  require_semver
464
464
  } from "./chunk-U4T5CWGD.js";
@@ -471,14 +471,14 @@ import "./chunk-FMWE3YMM.js";
471
471
  import {
472
472
  formatVersionLabel,
473
473
  getCliVersion
474
- } from "./chunk-TC6APBKO.js";
474
+ } from "./chunk-FC4ZD65F.js";
475
475
  import "./chunk-Y75AMWDB.js";
476
476
  import "./chunk-FRITN2AG.js";
477
477
  import "./chunk-F4S6U26O.js";
478
478
  import {
479
479
  isWorkspaceTrusted,
480
480
  loadTrustedFolders
481
- } from "./chunk-4QVZPLPW.js";
481
+ } from "./chunk-TW633LAC.js";
482
482
  import "./chunk-BHXBXELA.js";
483
483
  import "./chunk-MXCWSDSC.js";
484
484
  import {
@@ -522,13 +522,13 @@ import {
522
522
  subagentGenerator,
523
523
  supportsHyperlinks,
524
524
  wrapForMultiplexer
525
- } from "./chunk-QGBGLKMW.js";
525
+ } from "./chunk-ACYDX6SG.js";
526
526
  import "./chunk-MYMATZAY.js";
527
527
  import "./chunk-6IFQXZTP.js";
528
528
  import {
529
529
  require_strip_json_comments
530
530
  } from "./chunk-YCZIOHKD.js";
531
- import "./chunk-YO3SEHXM.js";
531
+ import "./chunk-BNJ3IJB7.js";
532
532
  import {
533
533
  clearWorktreeSession,
534
534
  isSessionRuntimeActive,
@@ -543,12 +543,12 @@ import {
543
543
  describeHoldCause,
544
544
  parseHeldExpiry
545
545
  } from "./chunk-AEGEUWVC.js";
546
- import "./chunk-G5QZC3KV.js";
547
- import "./chunk-VT3TJFQR.js";
548
- import "./chunk-S3ERVFHU.js";
549
- import "./chunk-WK44MSGW.js";
550
- import "./chunk-LZPTOCB6.js";
551
- import "./chunk-FIXBGZLC.js";
546
+ import "./chunk-ESJUUVTV.js";
547
+ import "./chunk-SHADJNT6.js";
548
+ import "./chunk-Y4ENGAFT.js";
549
+ import "./chunk-32722SNN.js";
550
+ import "./chunk-N362SBSD.js";
551
+ import "./chunk-2D2DZP65.js";
552
552
  import "./chunk-ZMZRVR62.js";
553
553
  import "./chunk-NWCDFCWK.js";
554
554
  import {
@@ -556,17 +556,17 @@ import {
556
556
  isToolHiddenBehindToolSearch,
557
557
  resolveWorkflowAuthoringSurface,
558
558
  toolSearchBridgeSentence
559
- } from "./chunk-UOO4TFQV.js";
560
- import "./chunk-XOVXSDNN.js";
561
- import "./chunk-6GEEXVXS.js";
562
- import "./chunk-DQZYZDIL.js";
563
- import "./chunk-ZPCVRY42.js";
559
+ } from "./chunk-CCDVLPJU.js";
560
+ import "./chunk-AGTM6524.js";
561
+ import "./chunk-O66QLTOQ.js";
562
+ import "./chunk-UW4Q5E5P.js";
563
+ import "./chunk-7FKHLWEJ.js";
564
564
  import "./chunk-F3FKDGHN.js";
565
- import "./chunk-RJBN74YD.js";
565
+ import "./chunk-Q4XOBX7I.js";
566
566
  import "./chunk-UBWL27PO.js";
567
567
  import "./chunk-DM6W2QYB.js";
568
568
  import "./chunk-UAACCQBD.js";
569
- import "./chunk-H5AU3734.js";
569
+ import "./chunk-UBWKBJKK.js";
570
570
  import {
571
571
  ConditionalRulesRegistry,
572
572
  CoreToolScheduler,
@@ -628,13 +628,13 @@ import {
628
628
  saveWorkflowScript,
629
629
  updateSetting,
630
630
  validateWorkflowName
631
- } from "./chunk-FH534GWJ.js";
632
- import "./chunk-FNALBCC7.js";
631
+ } from "./chunk-VGPRZT2M.js";
632
+ import "./chunk-WXTAP6NR.js";
633
633
  import "./chunk-BZOAEOYF.js";
634
634
  import "./chunk-BIDB75DA.js";
635
635
  import "./chunk-GYGA6V6B.js";
636
636
  import "./chunk-EYWIFUPJ.js";
637
- import "./chunk-MZI6FDZT.js";
637
+ import "./chunk-THO5UG52.js";
638
638
  import "./chunk-7H3GWNGJ.js";
639
639
  import "./chunk-X427DWFD.js";
640
640
  import {
@@ -670,13 +670,13 @@ import {
670
670
  elapsedActiveTime,
671
671
  goalPauseReasonForFailure,
672
672
  goalRequiresExactPermit
673
- } from "./chunk-JOBNLOEW.js";
673
+ } from "./chunk-RGEJESCO.js";
674
674
  import "./chunk-HHG3UCD5.js";
675
675
  import "./chunk-TC7UXK4M.js";
676
676
  import "./chunk-DS3COGEF.js";
677
677
  import {
678
678
  resolveModelId
679
- } from "./chunk-JX3AAXJY.js";
679
+ } from "./chunk-TR2AGNCI.js";
680
680
  import {
681
681
  glob
682
682
  } from "./chunk-4ESI3MQ5.js";
@@ -684,13 +684,13 @@ import "./chunk-SYMKXR42.js";
684
684
  import "./chunk-JOBZWTVK.js";
685
685
  import "./chunk-CDYMT4OZ.js";
686
686
  import "./chunk-HPQNI3OQ.js";
687
- import "./chunk-ADHXMZ3K.js";
688
- import "./chunk-GNF3RKRI.js";
687
+ import "./chunk-VXEIBLIB.js";
688
+ import "./chunk-MYZICQ6P.js";
689
689
  import "./chunk-CI2ZHR5C.js";
690
690
  import {
691
691
  ShellExecutionService,
692
692
  isSignalTermination
693
- } from "./chunk-XVSSUT2K.js";
693
+ } from "./chunk-KICY6OQ7.js";
694
694
  import {
695
695
  stripAnsi
696
696
  } from "./chunk-WU3R2YUE.js";
@@ -707,22 +707,22 @@ import {
707
707
  escapeShellArg
708
708
  } from "./chunk-SBM747MY.js";
709
709
  import "./chunk-5QSLFAMR.js";
710
- import "./chunk-XC6BAHJR.js";
710
+ import "./chunk-UQXFYLTF.js";
711
711
  import "./chunk-4LCUE7BN.js";
712
712
  import "./chunk-RIN7SNJN.js";
713
- import "./chunk-GVWQRVLV.js";
713
+ import "./chunk-VEGSKFFR.js";
714
714
  import "./chunk-4J6KRUQB.js";
715
- import "./chunk-7LFCBMVX.js";
715
+ import "./chunk-JEUH2DSW.js";
716
716
  import {
717
717
  parseRule
718
- } from "./chunk-OJSW65PQ.js";
718
+ } from "./chunk-WXMXXBCC.js";
719
719
  import {
720
720
  APPROVAL_MODES
721
721
  } from "./chunk-KQAVEXYD.js";
722
722
  import "./chunk-WZCKDUBO.js";
723
723
  import {
724
724
  BUILT_IN_OUTPUT_STYLES
725
- } from "./chunk-7S2AYA27.js";
725
+ } from "./chunk-M7ZHP7VU.js";
726
726
  import {
727
727
  NO_EXEC_CONFIG,
728
728
  getGitBranch
@@ -732,17 +732,17 @@ import "./chunk-5UXWOCCO.js";
732
732
  import "./chunk-ETGSZYWP.js";
733
733
  import "./chunk-RCZHQZJJ.js";
734
734
  import "./chunk-6YS3YH6O.js";
735
- import "./chunk-OSMXNPJP.js";
735
+ import "./chunk-6CW53FOJ.js";
736
736
  import "./chunk-HX6AICAX.js";
737
- import "./chunk-CQURIVUY.js";
737
+ import "./chunk-PPR66GNG.js";
738
738
  import {
739
739
  runOutsideAgentContext
740
- } from "./chunk-V75J4GJ2.js";
740
+ } from "./chunk-QCE3SPTV.js";
741
741
  import "./chunk-FOZEB37P.js";
742
742
  import {
743
743
  getStartupContextLength
744
- } from "./chunk-ZQBNP2ZQ.js";
745
- import "./chunk-YCTMVTDP.js";
744
+ } from "./chunk-DNMM4RF7.js";
745
+ import "./chunk-2SMHE6PC.js";
746
746
  import "./chunk-JSFADKTB.js";
747
747
  import "./chunk-OHAUN3Q5.js";
748
748
  import {
@@ -760,12 +760,12 @@ import "./chunk-WMJL2XAM.js";
760
760
  import {
761
761
  fetchKeyInfo,
762
762
  onLowRateLimit
763
- } from "./chunk-YBZG6WG2.js";
763
+ } from "./chunk-YAUMOXEH.js";
764
764
  import "./chunk-TC2TJAOF.js";
765
765
  import "./chunk-CP63SY5N.js";
766
766
  import {
767
767
  resolveReasoningForModel
768
- } from "./chunk-LH3T52KS.js";
768
+ } from "./chunk-WPZXZXSA.js";
769
769
  import "./chunk-U3KIMPCC.js";
770
770
  import {
771
771
  ApiCancelEvent,
@@ -805,7 +805,7 @@ import {
805
805
  runVisionBridge,
806
806
  shouldRunVisionBridge,
807
807
  splitImageParts
808
- } from "./chunk-WN23CFGN.js";
808
+ } from "./chunk-KBDFOYPK.js";
809
809
  import "./chunk-242JUBPM.js";
810
810
  import {
811
811
  DEFAULT_CONTEXT_FILENAME,
@@ -827,12 +827,12 @@ import {
827
827
  } from "./chunk-IC57EPC7.js";
828
828
  import {
829
829
  clampInlineMediaPart
830
- } from "./chunk-VEJCE7UR.js";
830
+ } from "./chunk-SZ26YNBZ.js";
831
831
  import "./chunk-R7FX7HIR.js";
832
832
  import "./chunk-V4XETRAG.js";
833
833
  import "./chunk-ABTPVII7.js";
834
834
  import "./chunk-HOPKSSYR.js";
835
- import "./chunk-FFUKRRCR.js";
835
+ import "./chunk-HAZNBQPI.js";
836
836
  import "./chunk-23AFREUQ.js";
837
837
  import "./chunk-IQEM74QW.js";
838
838
  import {
@@ -845,7 +845,7 @@ import {
845
845
  stripAnsiAndControl
846
846
  } from "./chunk-FKI7XUZK.js";
847
847
  import "./chunk-EPSJPAHV.js";
848
- import "./chunk-2MXORWOC.js";
848
+ import "./chunk-IMLPJ76O.js";
849
849
  import {
850
850
  isShellProgressData
851
851
  } from "./chunk-JOFGX5ZA.js";
@@ -854,7 +854,7 @@ import "./chunk-V44Y3PCO.js";
854
854
  import {
855
855
  ToolDisplayNames,
856
856
  ToolNames
857
- } from "./chunk-IWYGXAQU.js";
857
+ } from "./chunk-SYMYKLO4.js";
858
858
  import {
859
859
  LOCAL_API_KEY_PLACEHOLDER,
860
860
  ORGANIZAONE_ENV_KEY,
@@ -883,7 +883,7 @@ import {
883
883
  resolveSavedModelApiKey,
884
884
  shouldShowStep,
885
885
  withdrawExportedCredential
886
- } from "./chunk-2XBK3KBR.js";
886
+ } from "./chunk-I3YBDADP.js";
887
887
  import {
888
888
  DEFAULT_TOKEN_LIMIT,
889
889
  REASONING_EFFORT_TIERS,
@@ -897,13 +897,13 @@ import {
897
897
  } from "./chunk-VYRPAY75.js";
898
898
  import "./chunk-S7GOFMLU.js";
899
899
  import "./chunk-RC67CA5Z.js";
900
- import "./chunk-FAOCU5VJ.js";
900
+ import "./chunk-BZHLXJWH.js";
901
901
  import "./chunk-HHIX6THS.js";
902
902
  import "./chunk-O6GD6SFV.js";
903
903
  import {
904
904
  registerCleanup,
905
905
  runExitCleanup
906
- } from "./chunk-CFFFKDAX.js";
906
+ } from "./chunk-A3JZZ2KW.js";
907
907
  import {
908
908
  finalizeStartupProfile,
909
909
  profileCheckpoint
@@ -932,7 +932,7 @@ import {
932
932
  } from "./chunk-EPJAMNLS.js";
933
933
  import {
934
934
  MAINLINE_CODER_MODEL
935
- } from "./chunk-GJFAQ4TA.js";
935
+ } from "./chunk-TFAHTLY5.js";
936
936
  import "./chunk-LEXKU5FI.js";
937
937
  import "./chunk-HDGYCLNB.js";
938
938
  import "./chunk-7TK6OY2J.js";
@@ -26609,8 +26609,593 @@ var WorkflowSaveOverlay = /* @__PURE__ */ __name(({
26609
26609
  ] });
26610
26610
  }, "WorkflowSaveOverlay");
26611
26611
 
26612
- // packages/cli/src/ui/components/background-view/BackgroundTasksDialog.tsx
26612
+ // packages/cli/src/ui/components/background-view/AgentDashboard.tsx
26613
+ init_esbuild_shims();
26614
+
26615
+ // packages/cli/src/ui/components/background-view/agent-dashboard-model.ts
26616
+ init_esbuild_shims();
26617
+ var AGENT_DASHBOARD_TABS = [
26618
+ "summary",
26619
+ "plan",
26620
+ "activity",
26621
+ "details"
26622
+ ];
26623
+ var MAX_FIELD_CHARS = 16384;
26624
+ var MAX_PLAN_ITEMS = 500;
26625
+ var MAX_PREPARED_ROWS = 2e3;
26626
+ function dashboardText(text) {
26627
+ const safe = sanitizeMultilineForDisplay(text).replace(/\t/g, " ");
26628
+ return safe.length > MAX_FIELD_CHARS ? safe.slice(0, MAX_FIELD_CHARS) + "\u2026" : safe;
26629
+ }
26630
+ __name(dashboardText, "dashboardText");
26631
+ function dashboardSingleLine(text, width) {
26632
+ return truncateToWidth(dashboardText(text).replace(/\s*\n\s*/g, " "), width);
26633
+ }
26634
+ __name(dashboardSingleLine, "dashboardSingleLine");
26635
+ function nextAgentDashboardTab(tab, direction) {
26636
+ const index = AGENT_DASHBOARD_TABS.indexOf(tab);
26637
+ return AGENT_DASHBOARD_TABS[(index + direction + AGENT_DASHBOARD_TABS.length) % AGENT_DASHBOARD_TABS.length];
26638
+ }
26639
+ __name(nextAgentDashboardTab, "nextAgentDashboardTab");
26640
+ function getAgentDashboardLayout(width, height) {
26641
+ const frameHeight = Math.max(3, height - 2);
26642
+ const bodyHeight = Math.max(1, frameHeight - 4);
26643
+ const split = width >= 116;
26644
+ const rosterWidth = split ? 30 : Math.max(1, width - 4);
26645
+ const detailWidth = Math.max(1, width - 4 - (split ? rosterWidth + 3 : 0));
26646
+ const headerRows = bodyHeight < 12 ? 4 : 6;
26647
+ const pageSize = Math.max(1, bodyHeight - headerRows);
26648
+ return {
26649
+ frameHeight,
26650
+ bodyHeight,
26651
+ split,
26652
+ rosterWidth,
26653
+ detailWidth,
26654
+ headerRows,
26655
+ pageSize
26656
+ };
26657
+ }
26658
+ __name(getAgentDashboardLayout, "getAgentDashboardLayout");
26659
+ function dashboardElapsed(entry, now = Date.now()) {
26660
+ return formatDuration(
26661
+ Math.floor(Math.max(0, (entry.endTime ?? now) - entry.startTime) / 1e3) * 1e3,
26662
+ { hideTrailingZeros: true }
26663
+ );
26664
+ }
26665
+ __name(dashboardElapsed, "dashboardElapsed");
26666
+ function dashboardStatus(entry) {
26667
+ if ((entry.kind === "agent" || entry.kind === "workflow") && entry.pendingApprovals?.length) {
26668
+ return { label: t("Awaiting approval"), icon: "!", tone: "warning" };
26669
+ }
26670
+ switch (entry.status) {
26671
+ case "running":
26672
+ return { label: t("Running"), icon: glyphs().dot, tone: "running" };
26673
+ case "pausing":
26674
+ return { label: t("Pausing"), icon: "\u2026", tone: "warning" };
26675
+ case "paused":
26676
+ return { label: t("Paused"), icon: "||", tone: "warning" };
26677
+ case "completed":
26678
+ return { label: t("Completed"), icon: glyphs().done, tone: "success" };
26679
+ case "failed":
26680
+ return { label: t("Failed"), icon: glyphs().failed, tone: "error" };
26681
+ case "cancelled":
26682
+ return { label: t("Stopped"), icon: glyphs().hollow, tone: "muted" };
26683
+ default:
26684
+ throw new Error("Unsupported background task status");
26685
+ }
26686
+ }
26687
+ __name(dashboardStatus, "dashboardStatus");
26688
+ function dashboardTaskLabel(entry) {
26689
+ if (entry.kind === "dream") return t("[dream] memory consolidation");
26690
+ if (entry.kind === "workflow")
26691
+ return "[workflow] " + (entry.meta?.name ?? entry.description ?? entry.runId);
26692
+ if (entry.kind === "agent")
26693
+ return entry.description || entry.subagentType || t("Agent");
26694
+ return "[" + entry.kind + "] " + (entry.description || entry.command);
26695
+ }
26696
+ __name(dashboardTaskLabel, "dashboardTaskLabel");
26697
+ function dashboardStats(entry) {
26698
+ const parts = [dashboardElapsed(entry)];
26699
+ if (entry.stats?.outputTokens !== void 0)
26700
+ parts.push(
26701
+ t("{{count}} tokens", {
26702
+ count: formatTokenCount(entry.stats.outputTokens)
26703
+ })
26704
+ );
26705
+ if (entry.stats?.toolUses !== void 0)
26706
+ parts.push(
26707
+ t(
26708
+ entry.stats.toolUses === 1 ? "{{count}} tool call" : "{{count}} tool calls",
26709
+ { count: String(entry.stats.toolUses) }
26710
+ )
26711
+ );
26712
+ return parts.join(" \xB7 ");
26713
+ }
26714
+ __name(dashboardStats, "dashboardStats");
26715
+ function dashboardActivity(name, description) {
26716
+ const display = localizeToolDisplayName(TOOL_DISPLAY_BY_NAME[name] ?? name);
26717
+ return description ? display + " \xB7 " + description : display;
26718
+ }
26719
+ __name(dashboardActivity, "dashboardActivity");
26720
+ function getAgentDashboardLines(entry, tab, width, entries = []) {
26721
+ const rows = [];
26722
+ let omitted = false;
26723
+ const add = /* @__PURE__ */ __name((text, tone = "secondary", bold = false) => {
26724
+ if (rows.length >= MAX_PREPARED_ROWS - 1) {
26725
+ omitted = true;
26726
+ return;
26727
+ }
26728
+ for (const part of wrapAnsi(dashboardText(text), Math.max(1, width), {
26729
+ hard: true,
26730
+ trim: false
26731
+ }).split("\n")) {
26732
+ if (rows.length >= MAX_PREPARED_ROWS - 1) {
26733
+ omitted = true;
26734
+ break;
26735
+ }
26736
+ rows.push({ text: part, tone, bold });
26737
+ }
26738
+ }, "add");
26739
+ const title = /* @__PURE__ */ __name((text) => {
26740
+ if (rows.length) add("");
26741
+ add(text, "title", true);
26742
+ }, "title");
26743
+ const activities = (entry.recentActivities ?? []).slice(-10);
26744
+ const current = activities.at(-1);
26745
+ const allTodos = entry.todoItems ?? [];
26746
+ const todos = allTodos.slice(0, MAX_PLAN_ITEMS);
26747
+ const completed = allTodos.filter(
26748
+ (todo) => todo.status === "completed"
26749
+ ).length;
26750
+ const showPlan = /* @__PURE__ */ __name(() => {
26751
+ if (!todos.length) {
26752
+ add(t("No plan recorded"), "muted");
26753
+ return;
26754
+ }
26755
+ for (const todo of todos) {
26756
+ if (rows.length >= MAX_PREPARED_ROWS - 1) {
26757
+ omitted = true;
26758
+ break;
26759
+ }
26760
+ const done = todo.status === "completed";
26761
+ const active = todo.status === "in_progress";
26762
+ add(
26763
+ (done ? glyphs().done : active ? ">" : glyphs().hollow) + " " + todo.content,
26764
+ done ? "success" : active ? "running" : "muted"
26765
+ );
26766
+ if (todo.blockedBy?.length)
26767
+ add(
26768
+ t("Depends on: {{ids}}", { ids: todo.blockedBy.join(", ") }),
26769
+ "muted"
26770
+ );
26771
+ }
26772
+ if (allTodos.length > todos.length)
26773
+ add(
26774
+ t("{{count}} more plan items", {
26775
+ count: String(allTodos.length - todos.length)
26776
+ }),
26777
+ "muted"
26778
+ );
26779
+ }, "showPlan");
26780
+ const alerts = /* @__PURE__ */ __name(() => {
26781
+ if (entry.pendingApprovals?.length) {
26782
+ title(t("Your action is required"));
26783
+ add(t("Press a to review the pending approval."), "warning");
26784
+ }
26785
+ if (entry.resumeBlockedReason) {
26786
+ title(t("Resume blocked"));
26787
+ add(entry.resumeBlockedReason, "error");
26788
+ }
26789
+ if (entry.error) {
26790
+ title(t("Error"));
26791
+ add(entry.error, "error");
26792
+ }
26793
+ }, "alerts");
26794
+ const planTitle = /* @__PURE__ */ __name(() => t("Declared plan") + (allTodos.length ? " \xB7 " + completed + "/" + allTodos.length : ""), "planTitle");
26795
+ if (tab === "summary") {
26796
+ alerts();
26797
+ title(entry.status === "completed" ? t("Result") : t("Now"));
26798
+ if (entry.status === "completed" && entry.result)
26799
+ add(entry.result, "primary");
26800
+ else if (current)
26801
+ add(dashboardActivity(current.name, current.description), "code");
26802
+ else add(t("No activity recorded"), "muted");
26803
+ title(planTitle());
26804
+ showPlan();
26805
+ title(t("Recent activity"));
26806
+ for (const activity of activities.slice(-4, -1).reverse()) {
26807
+ add(
26808
+ dashboardSingleLine(
26809
+ dashboardActivity(activity.name, activity.description),
26810
+ width
26811
+ ),
26812
+ "secondary"
26813
+ );
26814
+ }
26815
+ if (activities.length <= 1) add(t("No earlier activity recorded"), "muted");
26816
+ } else if (tab === "plan") {
26817
+ title(planTitle());
26818
+ showPlan();
26819
+ alerts();
26820
+ title(t("About progress"));
26821
+ add(
26822
+ t("Plan items describe declared work, not estimated time remaining."),
26823
+ "muted"
26824
+ );
26825
+ } else if (tab === "activity") {
26826
+ title(t("Current event"));
26827
+ if (current)
26828
+ add(dashboardActivity(current.name, current.description), "code");
26829
+ else add(t("No activity recorded"), "muted");
26830
+ title(t("Progress"));
26831
+ for (const activity of activities.slice(0, -1)) {
26832
+ add(
26833
+ dashboardSingleLine(
26834
+ dashboardActivity(activity.name, activity.description),
26835
+ width
26836
+ )
26837
+ );
26838
+ }
26839
+ alerts();
26840
+ } else {
26841
+ title(t("Prompt"));
26842
+ add(entry.prompt || t("No instruction recorded"));
26843
+ title(t("Parent"));
26844
+ const lookup = /* @__PURE__ */ __name((id) => entries.find(
26845
+ (item) => item.kind === "agent" && item.agentId === id
26846
+ ), "lookup");
26847
+ const { chain } = ancestorChain(entry, lookup);
26848
+ if (chain.length)
26849
+ add(
26850
+ [...chain].reverse().map((item) => {
26851
+ const parent = lookup(item.agentId ?? "");
26852
+ return parent ? (parent.subagentType ?? t("Agent")) + " \u2014 " + parent.description : item.agentId ?? "";
26853
+ }).join(" \u203A ")
26854
+ );
26855
+ else
26856
+ add(
26857
+ entry.parentName ? entry.parentName + " \xB7 " + t("no longer running") : t("Main session")
26858
+ );
26859
+ if ((entry.depth ?? 0) > 0)
26860
+ add(
26861
+ t("nested \xB7 level {{level}}", {
26862
+ level: String((entry.depth ?? 0) + 1)
26863
+ }),
26864
+ "muted"
26865
+ );
26866
+ if (entry.model) {
26867
+ title(t("Model"));
26868
+ add(entry.model);
26869
+ }
26870
+ const children = entries.filter(
26871
+ (child) => child.kind === "agent" && child.parentAgentId === entry.agentId
26872
+ ).sort(compareActiveThenTerminal);
26873
+ if (children.length) {
26874
+ title(t("Sub-agents"));
26875
+ for (const child of children.slice(0, 5))
26876
+ add(
26877
+ dashboardStatus(child).icon + " " + (child.kind === "agent" ? (child.subagentType ?? t("Agent")) + " \u2014 " : "") + dashboardTaskLabel(child)
26878
+ );
26879
+ if (children.length > 5)
26880
+ add(
26881
+ t("{{count}} more", { count: String(children.length - 5) }),
26882
+ "muted"
26883
+ );
26884
+ }
26885
+ if (entry.outputFile) {
26886
+ title(t("Transcript"));
26887
+ add(entry.outputFile, "code");
26888
+ }
26889
+ alerts();
26890
+ }
26891
+ if (omitted)
26892
+ rows.push({
26893
+ text: dashboardSingleLine(
26894
+ t("Additional content omitted; inspect the transcript."),
26895
+ width
26896
+ ),
26897
+ tone: "muted"
26898
+ });
26899
+ return rows;
26900
+ }
26901
+ __name(getAgentDashboardLines, "getAgentDashboardLines");
26902
+
26903
+ // packages/cli/src/ui/components/background-view/AgentDashboard.tsx
26613
26904
  var import_jsx_runtime109 = __toESM(require_jsx_runtime(), 1);
26905
+ function toneColor(tone) {
26906
+ return {
26907
+ title: theme.text.accent,
26908
+ primary: theme.text.primary,
26909
+ secondary: theme.text.secondary,
26910
+ muted: extendedTheme.text.muted,
26911
+ code: theme.text.code,
26912
+ success: theme.status.success,
26913
+ warning: theme.status.warning,
26914
+ error: theme.status.error,
26915
+ running: extendedTheme.ui.brand
26916
+ }[tone];
26917
+ }
26918
+ __name(toneColor, "toneColor");
26919
+ function DashboardLine({
26920
+ value,
26921
+ width
26922
+ }) {
26923
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: toneColor(value.tone), bold: value.bold, wrap: "truncate-end", children: dashboardSingleLine(value.text || " ", width) });
26924
+ }
26925
+ __name(DashboardLine, "DashboardLine");
26926
+ var tabLabels = {
26927
+ summary: "Agent summary",
26928
+ plan: "Agent plan",
26929
+ activity: "Agent activity",
26930
+ details: "Agent details"
26931
+ };
26932
+ function DashboardTabs({
26933
+ tab,
26934
+ width
26935
+ }) {
26936
+ const names = AGENT_DASHBOARD_TABS.map((key) => t(tabLabels[key]));
26937
+ const naturalWidth = names.reduce(
26938
+ (sum, name) => sum + getCachedStringWidth(name) + 2,
26939
+ 0
26940
+ );
26941
+ const slot = Math.max(1, Math.floor(width / names.length));
26942
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { wrap: "truncate-end", children: AGENT_DASHBOARD_TABS.map((key, index) => {
26943
+ const padding = naturalWidth <= width || slot >= 3 ? " " : "";
26944
+ const name = dashboardSingleLine(
26945
+ names[index],
26946
+ naturalWidth <= width ? width : Math.max(1, slot - padding.length * 2)
26947
+ );
26948
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
26949
+ Text,
26950
+ {
26951
+ bold: tab === key,
26952
+ color: tab === key ? theme.background.primary : theme.text.secondary,
26953
+ backgroundColor: tab === key ? theme.text.accent : void 0,
26954
+ children: padding + name + padding
26955
+ },
26956
+ key
26957
+ );
26958
+ }) });
26959
+ }
26960
+ __name(DashboardTabs, "DashboardTabs");
26961
+ function AgentDashboard({
26962
+ entries,
26963
+ selectedEntry,
26964
+ selectedIndex,
26965
+ detailFocused,
26966
+ tab,
26967
+ scrollOffset,
26968
+ width,
26969
+ height,
26970
+ actionHints,
26971
+ footerMessage,
26972
+ renderOtherDetail
26973
+ }) {
26974
+ const layout = getAgentDashboardLayout(width, height);
26975
+ const { bodyHeight, rosterWidth, detailWidth, split, headerRows, pageSize } = layout;
26976
+ const agent = selectedEntry?.kind === "agent" ? selectedEntry : void 0;
26977
+ const lines = agent ? getAgentDashboardLines(agent, tab, detailWidth, entries) : [];
26978
+ const offset = Math.max(0, Math.min(scrollOffset, lines.length - pageSize));
26979
+ const visibleCount = Math.max(1, Math.floor((bodyHeight - 2) / 4));
26980
+ const start = Math.min(
26981
+ Math.max(0, selectedIndex - visibleCount + 1),
26982
+ Math.max(0, entries.length - visibleCount)
26983
+ );
26984
+ const tree = computeAgentTreeInfo(entries);
26985
+ const blocking = computeUserBlockingIds(entries);
26986
+ const count = /* @__PURE__ */ __name((status2) => entries.filter(
26987
+ (item) => item.status === status2 && (status2 !== "running" || item.kind !== "agent" && item.kind !== "workflow" || !item.pendingApprovals?.length)
26988
+ ).length, "count");
26989
+ const approvals = entries.filter(
26990
+ (item) => (item.kind === "agent" || item.kind === "workflow") && item.pendingApprovals?.length
26991
+ ).length;
26992
+ const title = entries.every((item) => item.kind === "agent") ? t("Agents") : t("Background tasks");
26993
+ const summary = width >= 100 ? title + " \xB7 " + t("{{count}} running", { count: String(count("running")) }) + " \xB7 " + t("{{count}} awaiting approval", { count: String(approvals) }) + " \xB7 " + t("{{count}} completed", { count: String(count("completed")) }) + " \xB7 " + t("{{count}} failed", { count: String(count("failed")) }) : title + " \xB7 " + entries.length + " \xB7 " + glyphs().dot + " " + count("running") + " \xB7 " + glyphs().warning + " " + approvals + " \xB7 " + glyphs().done + " " + count("completed") + " \xB7 " + glyphs().failed + " " + count("failed");
26994
+ const showDetail = split || detailFocused;
26995
+ const footerWidth = Math.max(1, width);
26996
+ const tabsHint = t("\u2190\u2192 tabs");
26997
+ const backHint = t(width < 60 ? "esc back" : "esc back to list");
26998
+ const listHint = t(
26999
+ width < 60 ? "\u2191\u2193 agents \xB7 enter view \xB7 esc close" : "\u2191\u2193 agents \xB7 enter view \xB7 \u2190\u2192 tabs \xB7 esc close"
27000
+ );
27001
+ const detailHintWidth = getCachedStringWidth(tabsHint + " \xB7 " + backHint);
27002
+ const beforeDetailHint = footerWidth >= detailHintWidth + 12 ? t("\u2191\u2193 scroll") + " \xB7 " : "";
27003
+ const status = selectedEntry ? dashboardStatus(selectedEntry) : void 0;
27004
+ if (width < 36 || height < 12)
27005
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { width: Math.max(1, width), height: Math.max(1, height), children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.status.warning, wrap: "truncate-end", children: dashboardSingleLine(
27006
+ t("Enlarge the terminal to inspect agents. Esc closes."),
27007
+ width
27008
+ ) }) });
27009
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { flexDirection: "column", width, height, flexShrink: 0, children: [
27010
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27011
+ Box_default,
27012
+ {
27013
+ flexDirection: "column",
27014
+ width,
27015
+ height: layout.frameHeight,
27016
+ borderStyle: glyphs().borderStyle,
27017
+ borderColor: extendedTheme.ui.rule,
27018
+ paddingX: 1,
27019
+ flexShrink: 0,
27020
+ children: [
27021
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, wrap: "truncate-end", children: dashboardSingleLine(summary, Math.max(1, width - 4)) }),
27022
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { height: 1, flexShrink: 0 }),
27023
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27024
+ Box_default,
27025
+ {
27026
+ flexDirection: "row",
27027
+ height: bodyHeight,
27028
+ flexShrink: 0,
27029
+ overflow: "hidden",
27030
+ children: [
27031
+ (split || !detailFocused) && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27032
+ Box_default,
27033
+ {
27034
+ flexDirection: "column",
27035
+ width: rosterWidth,
27036
+ height: bodyHeight,
27037
+ flexShrink: 0,
27038
+ children: [
27039
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27040
+ Box_default,
27041
+ {
27042
+ flexDirection: "column",
27043
+ height: Math.max(0, bodyHeight - 1),
27044
+ overflow: "hidden",
27045
+ flexShrink: 0,
27046
+ children: [
27047
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, wrap: "truncate-end", children: dashboardSingleLine(t("Agents \xB7 main session"), rosterWidth) }),
27048
+ entries.slice(start, start + visibleCount).map((item, localIndex) => {
27049
+ const selected = localIndex + start === selectedIndex;
27050
+ const itemStatus = dashboardStatus(item);
27051
+ const prefix = item.kind === "agent" ? treeRowPrefix(item, tree.get(item.agentId)) : "";
27052
+ const blockLabel = item.kind === "agent" && blocking.has(item.agentId) ? "[blocking] " : "";
27053
+ const label = dashboardSingleLine(
27054
+ prefix + blockLabel + dashboardTaskLabel(item),
27055
+ Math.max(
27056
+ 0,
27057
+ rosterWidth - getCachedStringWidth(
27058
+ glyphs().prompt + " " + itemStatus.icon + " "
27059
+ )
27060
+ )
27061
+ );
27062
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27063
+ Box_default,
27064
+ {
27065
+ flexDirection: "column",
27066
+ flexShrink: 0,
27067
+ children: [
27068
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Text, { wrap: "truncate-end", children: [
27069
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.ui.brand, children: selected ? glyphs().prompt + " " : " " }),
27070
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: toneColor(itemStatus.tone), children: itemStatus.icon + " " }),
27071
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27072
+ Text,
27073
+ {
27074
+ color: selected ? theme.text.primary : theme.text.secondary,
27075
+ bold: selected,
27076
+ children: label
27077
+ }
27078
+ )
27079
+ ] }),
27080
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27081
+ Text,
27082
+ {
27083
+ color: toneColor(itemStatus.tone),
27084
+ wrap: "truncate-end",
27085
+ children: dashboardSingleLine(
27086
+ " " + itemStatus.label,
27087
+ rosterWidth
27088
+ )
27089
+ }
27090
+ ),
27091
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27092
+ Text,
27093
+ {
27094
+ color: extendedTheme.text.muted,
27095
+ wrap: "truncate-end",
27096
+ children: dashboardSingleLine(
27097
+ " " + (item.kind === "agent" ? dashboardStats(item) : dashboardElapsed(item)),
27098
+ rosterWidth
27099
+ )
27100
+ }
27101
+ ),
27102
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: " " })
27103
+ ]
27104
+ },
27105
+ entryId(item)
27106
+ );
27107
+ })
27108
+ ]
27109
+ }
27110
+ ),
27111
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: dashboardSingleLine(
27112
+ t("{{count}} tasks \xB7 {{start}}\u2013{{end}} visible", {
27113
+ count: String(entries.length),
27114
+ start: String(start + 1),
27115
+ end: String(Math.min(start + visibleCount, entries.length))
27116
+ }),
27117
+ rosterWidth
27118
+ ) })
27119
+ ]
27120
+ }
27121
+ ),
27122
+ split && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { width: 3, flexDirection: "column", flexShrink: 0, children: Array.from({ length: bodyHeight }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.ui.rule, children: " \u2502 " }, index)) }),
27123
+ showDetail && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27124
+ Box_default,
27125
+ {
27126
+ flexDirection: "column",
27127
+ width: detailWidth,
27128
+ height: bodyHeight,
27129
+ flexShrink: 0,
27130
+ overflow: "hidden",
27131
+ children: agent ? /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_jsx_runtime109.Fragment, { children: [
27132
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, wrap: "truncate-end", children: dashboardSingleLine(
27133
+ dashboardTaskLabel(agent),
27134
+ detailWidth
27135
+ ) }),
27136
+ headerRows === 6 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: dashboardSingleLine(
27137
+ (agent.subagentType ?? t("Agent")) + " \xB7 " + agent.agentId,
27138
+ detailWidth
27139
+ ) }),
27140
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27141
+ Text,
27142
+ {
27143
+ color: status ? toneColor(status.tone) : void 0,
27144
+ wrap: "truncate-end",
27145
+ children: dashboardSingleLine(
27146
+ (status ? status.icon + " " + status.label + " \xB7 " : "") + dashboardStats(agent),
27147
+ detailWidth
27148
+ )
27149
+ }
27150
+ ),
27151
+ headerRows === 6 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: " " }),
27152
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(DashboardTabs, { tab, width: detailWidth }),
27153
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: " " }),
27154
+ lines.slice(offset, offset + pageSize).map((value, index) => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27155
+ DashboardLine,
27156
+ {
27157
+ value,
27158
+ width: detailWidth
27159
+ },
27160
+ index
27161
+ ))
27162
+ ] }) : selectedEntry ? renderOtherDetail(selectedEntry, bodyHeight, detailWidth) : /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: t("No entry to show.") })
27163
+ }
27164
+ )
27165
+ ]
27166
+ }
27167
+ )
27168
+ ]
27169
+ }
27170
+ ),
27171
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { height: 2, flexDirection: "column", flexShrink: 0, children: footerMessage ? /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.status.warning, children: dashboardSingleLine(footerMessage, footerWidth * 2) }) : /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_jsx_runtime109.Fragment, { children: [
27172
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: detailFocused ? /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_jsx_runtime109.Fragment, { children: [
27173
+ beforeDetailHint,
27174
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, children: tabsHint }),
27175
+ " \xB7 ",
27176
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, children: backHint })
27177
+ ] }) : dashboardSingleLine(listHint, footerWidth) }),
27178
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { justifyContent: "space-between", children: [
27179
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: dashboardSingleLine(
27180
+ actionHints.join(" \xB7 "),
27181
+ Math.max(1, footerWidth - 22)
27182
+ ) }),
27183
+ agent && showDetail && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.text.muted, children: dashboardSingleLine(
27184
+ t("lines {{start}}\u2013{{end}}/{{total}}", {
27185
+ start: String(Math.min(offset + 1, lines.length)),
27186
+ end: String(Math.min(offset + pageSize, lines.length)),
27187
+ total: String(lines.length)
27188
+ }),
27189
+ 21
27190
+ ) })
27191
+ ] })
27192
+ ] }) })
27193
+ ] });
27194
+ }
27195
+ __name(AgentDashboard, "AgentDashboard");
27196
+
27197
+ // packages/cli/src/ui/components/background-view/BackgroundTasksDialog.tsx
27198
+ var import_jsx_runtime110 = __toESM(require_jsx_runtime(), 1);
26614
27199
  var MAX_LIVE_LABEL_CHARS = 4096;
26615
27200
  function formatActivityLabel(name, description) {
26616
27201
  const display = localizeToolDisplayName(TOOL_DISPLAY_BY_NAME[name] ?? name);
@@ -26794,12 +27379,12 @@ function truncateToWidth2(text, maxWidth) {
26794
27379
  __name(truncateToWidth2, "truncateToWidth");
26795
27380
  var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
26796
27381
  if (entries.length === 0) {
26797
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { flexDirection: "column", children: [
26798
- /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { paddingX: 1, children: [
26799
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, children: t("Background tasks") }),
26800
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, children: " (0)" })
27382
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", children: [
27383
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { paddingX: 1, children: [
27384
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, children: t("Background tasks") }),
27385
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: " (0)" })
26801
27386
  ] }),
26802
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, children: t("No tasks currently running") }) })
27387
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: t("No tasks currently running") }) })
26803
27388
  ] });
26804
27389
  }
26805
27390
  const fits = entries.length <= maxRows;
@@ -26817,27 +27402,27 @@ var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
26817
27402
  const visible = entries.slice(windowStart, windowEnd);
26818
27403
  const treeInfo = computeAgentTreeInfo(entries);
26819
27404
  const blockingIds = computeUserBlockingIds(entries);
26820
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { flexDirection: "column", children: [
26821
- /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { paddingX: 1, children: [
26822
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, children: t("Background tasks") }),
26823
- /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Text, { color: theme.text.secondary, children: [
27405
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", children: [
27406
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { paddingX: 1, children: [
27407
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, children: t("Background tasks") }),
27408
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { color: theme.text.secondary, children: [
26824
27409
  " (",
26825
27410
  entries.length,
26826
27411
  ")"
26827
27412
  ] })
26828
27413
  ] }),
26829
- /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { flexDirection: "column", children: [
26830
- hiddenAbove > 0 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, children: ` ^ ${t("{{count}} more above", { count: String(hiddenAbove) })}` }) }),
27414
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", children: [
27415
+ hiddenAbove > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: ` ^ ${t("{{count}} more above", { count: String(hiddenAbove) })}` }) }),
26831
27416
  visible.map((entry, visibleIdx) => {
26832
27417
  const idx = windowStart + visibleIdx;
26833
27418
  const isSelected = idx === selectedIndex;
26834
27419
  const presentation2 = statusPresentation(entry.status);
26835
27420
  const labelColor = isSelected ? theme.text.accent : presentation2 ? presentation2.labelColor : theme.text.primary;
26836
27421
  const treePrefix = entry.kind === "agent" ? treeRowPrefix(entry, treeInfo.get(entry.agentId)) : "";
26837
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { flexDirection: "row", paddingX: 1, children: [
26838
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: isSelected ? theme.text.accent : void 0, children: isSelected ? "> " : " " }),
26839
- treePrefix !== "" && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, children: treePrefix }),
26840
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: labelColor, children: escapeAnsiCtrlCodes(
27422
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "row", paddingX: 1, children: [
27423
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: isSelected ? theme.text.accent : void 0, children: isSelected ? "> " : " " }),
27424
+ treePrefix !== "" && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: treePrefix }),
27425
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: labelColor, children: escapeAnsiCtrlCodes(
26841
27426
  rowLabel2(
26842
27427
  entry,
26843
27428
  entry.kind === "agent" && blockingIds.has(entry.agentId)
@@ -26845,14 +27430,14 @@ var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
26845
27430
  ) })
26846
27431
  ] }, entryId(entry));
26847
27432
  }),
26848
- hiddenBelow > 0 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, children: ` v ${t("{{count}} more below", { count: String(hiddenBelow) })}` }) })
27433
+ hiddenBelow > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: ` v ${t("{{count}} more below", { count: String(hiddenBelow) })}` }) })
26849
27434
  ] })
26850
27435
  ] });
26851
27436
  }, "ListBody");
26852
27437
  var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
26853
27438
  switch (entry.kind) {
26854
27439
  case "agent":
26855
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27440
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
26856
27441
  AgentDetailBody,
26857
27442
  {
26858
27443
  entry,
@@ -26861,7 +27446,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
26861
27446
  }
26862
27447
  );
26863
27448
  case "shell":
26864
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27449
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
26865
27450
  ShellDetailBody,
26866
27451
  {
26867
27452
  entry,
@@ -26870,7 +27455,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
26870
27455
  }
26871
27456
  );
26872
27457
  case "monitor":
26873
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27458
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
26874
27459
  MonitorDetailBody,
26875
27460
  {
26876
27461
  entry,
@@ -26879,7 +27464,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
26879
27464
  }
26880
27465
  );
26881
27466
  case "workflow":
26882
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27467
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
26883
27468
  WorkflowDetailBody,
26884
27469
  {
26885
27470
  entry,
@@ -26888,7 +27473,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
26888
27473
  }
26889
27474
  );
26890
27475
  case "dream":
26891
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27476
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
26892
27477
  DreamDetailBody,
26893
27478
  {
26894
27479
  entry,
@@ -26919,35 +27504,35 @@ var DreamDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
26919
27504
  const visibleTopics = topics.slice(0, MAX_TOPICS);
26920
27505
  const hiddenTopicCount = Math.max(0, topics.length - visibleTopics.length);
26921
27506
  const hasError = Boolean(entry.error);
26922
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27507
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
26923
27508
  MaxSizedBox,
26924
27509
  {
26925
27510
  maxHeight,
26926
27511
  maxWidth,
26927
27512
  overflowDirection: "bottom",
26928
27513
  children: [
26929
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
26930
- /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { children: [
26931
- presentation2 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
26932
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
27514
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
27515
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
27516
+ presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
27517
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
26933
27518
  ] }),
26934
- entry.sessionCount !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
26935
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
26936
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, dimColor: true, children: t("Sessions reviewing") }) }),
26937
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: String(entry.sessionCount) }) })
27519
+ entry.sessionCount !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27520
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27521
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Sessions reviewing") }) }),
27522
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { children: String(entry.sessionCount) }) })
26938
27523
  ] }),
26939
- entry.progressText && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
26940
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
26941
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, dimColor: true, children: t("Progress") }) }),
26942
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { wrap: "wrap", children: entry.progressText }) })
27524
+ entry.progressText && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27525
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27526
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Progress") }) }),
27527
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "wrap", children: entry.progressText }) })
26943
27528
  ] }),
26944
- topics.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
26945
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
26946
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, dimColor: true, children: t("Topics touched ({{count}})", {
27529
+ topics.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27530
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27531
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Topics touched ({{count}})", {
26947
27532
  count: String(topics.length)
26948
27533
  }) }) }),
26949
- visibleTopics.map((topic) => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: ` \xB7 ${topic}` }) }, topic)),
26950
- hiddenTopicCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27534
+ visibleTopics.map((topic) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { children: ` \xB7 ${topic}` }) }, topic)),
27535
+ hiddenTopicCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
26951
27536
  Text,
26952
27537
  {
26953
27538
  color: theme.text.secondary,
@@ -26955,24 +27540,24 @@ var DreamDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
26955
27540
  }
26956
27541
  ) })
26957
27542
  ] }),
26958
- hasError && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
26959
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
26960
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.status.error, children: t("Error") }) }),
26961
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.status.error, wrap: "wrap", children: entry.error }) })
27543
+ hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27544
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27545
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.error, children: t("Error") }) }),
27546
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.error, wrap: "wrap", children: entry.error }) })
26962
27547
  ] }),
26963
- entry.lockReleaseError && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
26964
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
26965
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.status.warning, children: t("Lock release warning") }) }),
26966
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.status.warning, wrap: "wrap", children: entry.lockReleaseError }) }),
26967
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, wrap: "wrap", children: t(
27548
+ entry.lockReleaseError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27549
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27550
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.warning, children: t("Lock release warning") }) }),
27551
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.warning, wrap: "wrap", children: entry.lockReleaseError }) }),
27552
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, wrap: "wrap", children: t(
26968
27553
  "Subsequent dreams may be skipped as locked until the next session's staleness sweep cleans the file."
26969
27554
  ) }) })
26970
27555
  ] }),
26971
- entry.metadataWriteError && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
26972
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
26973
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.status.warning, children: t("Metadata write warning") }) }),
26974
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.status.warning, wrap: "wrap", children: entry.metadataWriteError }) }),
26975
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, wrap: "wrap", children: t(
27556
+ entry.metadataWriteError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27557
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27558
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.warning, children: t("Metadata write warning") }) }),
27559
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.warning, wrap: "wrap", children: entry.metadataWriteError }) }),
27560
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, wrap: "wrap", children: t(
26976
27561
  "The scheduler gate did not see this dream's timestamp; the next dream cycle may re-fire sooner than usual."
26977
27562
  ) }) })
26978
27563
  ] })
@@ -27048,28 +27633,28 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
27048
27633
  const shownHistory = historyActivities.slice(
27049
27634
  Math.max(0, historyActivities.length - historyBudget)
27050
27635
  );
27051
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27636
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
27052
27637
  MaxSizedBox,
27053
27638
  {
27054
27639
  maxHeight,
27055
27640
  maxWidth,
27056
27641
  overflowDirection: "bottom",
27057
27642
  children: [
27058
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
27059
- /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { children: [
27060
- presentation2 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
27061
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
27643
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
27644
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
27645
+ presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
27646
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
27062
27647
  ] }),
27063
- parentLine !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
27064
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27065
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, dimColor: true, children: t("Parent") }) }),
27066
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: ` ${escapeAnsiCtrlCodes(parentLine)}` }) })
27648
+ parentLine !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27649
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27650
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Parent") }) }),
27651
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: ` ${escapeAnsiCtrlCodes(parentLine)}` }) })
27067
27652
  ] }),
27068
- visibleChildAgents.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
27069
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27070
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Text, { bold: true, dimColor: true, children: [
27653
+ visibleChildAgents.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27654
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27655
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { bold: true, dimColor: true, children: [
27071
27656
  t("Sub-agents"),
27072
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27657
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
27073
27658
  Text,
27074
27659
  {
27075
27660
  color: theme.text.secondary,
@@ -27077,14 +27662,14 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
27077
27662
  }
27078
27663
  )
27079
27664
  ] }) }),
27080
- visibleChildAgents.map((child) => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: ` ${statusGlyph(child.status)} ${escapeAnsiCtrlCodes(
27665
+ visibleChildAgents.map((child) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: ` ${statusGlyph(child.status)} ${escapeAnsiCtrlCodes(
27081
27666
  `${child.subagentType ?? "agent"} \u2014 ${child.description}`
27082
27667
  )} \xB7 ${elapsedFor(child)}` }) }, child.agentId)),
27083
- hiddenChildCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, children: ` \u2026 ${t("{{count}} more", { count: String(hiddenChildCount) })}` }) })
27668
+ hiddenChildCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: ` \u2026 ${t("{{count}} more", { count: String(hiddenChildCount) })}` }) })
27084
27669
  ] }),
27085
- activities.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
27086
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27087
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, dimColor: true, children: t("Progress") }) }),
27670
+ activities.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27671
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27672
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Progress") }) }),
27088
27673
  shownHistory.map((a, i) => {
27089
27674
  const prefix = " ";
27090
27675
  const fullLabel = sanitizeMultilineForDisplay(
@@ -27094,7 +27679,7 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
27094
27679
  fullLabel,
27095
27680
  Math.max(0, maxWidth - getCachedStringWidth(prefix))
27096
27681
  );
27097
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Text, { color: theme.text.secondary, children: [
27682
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { color: theme.text.secondary, children: [
27098
27683
  prefix,
27099
27684
  label
27100
27685
  ] }) }, `${a.at}-${i}`);
@@ -27106,27 +27691,27 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
27106
27691
  // Prefix and label must be ONE string child: MaxSizedBox's wrap
27107
27692
  // layout drops the prefix's trailing space when they arrive as
27108
27693
  // separate segments (`> Shell` → `>Shell`).
27109
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.primary, children: `> ${liveLabel}` }) }, "live")
27694
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.primary, children: `> ${liveLabel}` }) }, "live")
27110
27695
  ] }),
27111
- entry.outputFile && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
27112
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27113
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, dimColor: true, children: t("Transcript") }) }),
27114
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, wrap: "wrap", children: ` ${escapeAnsiCtrlCodes(entry.outputFile)}` }) })
27696
+ entry.outputFile && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27697
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27698
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Transcript") }) }),
27699
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, wrap: "wrap", children: ` ${escapeAnsiCtrlCodes(entry.outputFile)}` }) })
27115
27700
  ] }),
27116
- visiblePromptLines.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
27117
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27118
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, dimColor: true, children: t("Prompt") }) }),
27119
- visiblePromptLines.map((line, i) => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { wrap: "truncate-end", children: escapeAnsiCtrlCodes(line) || " " }) }, `prompt-${i}`))
27701
+ visiblePromptLines.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27702
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27703
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Prompt") }) }),
27704
+ visiblePromptLines.map((line, i) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: escapeAnsiCtrlCodes(line) || " " }) }, `prompt-${i}`))
27120
27705
  ] }),
27121
- hasBlockedReason && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
27122
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27123
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.status.error, children: t("Resume blocked") }) }),
27124
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.status.error, wrap: "wrap", children: blockedReason }) })
27706
+ hasBlockedReason && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27707
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27708
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.error, children: t("Resume blocked") }) }),
27709
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.error, wrap: "wrap", children: blockedReason }) })
27125
27710
  ] }),
27126
- hasError && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
27127
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27128
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.status.error, children: t("Error") }) }),
27129
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.status.error, wrap: "wrap", children: entry.error }) })
27711
+ hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27712
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27713
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.error, children: t("Error") }) }),
27714
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.error, wrap: "wrap", children: entry.error }) })
27130
27715
  ] })
27131
27716
  ]
27132
27717
  }
@@ -27145,28 +27730,28 @@ var ShellDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
27145
27730
  );
27146
27731
  }
27147
27732
  const hasError = entry.status === "failed" && Boolean(entry.error);
27148
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27733
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
27149
27734
  MaxSizedBox,
27150
27735
  {
27151
27736
  maxHeight,
27152
27737
  maxWidth,
27153
27738
  overflowDirection: "bottom",
27154
27739
  children: [
27155
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
27156
- /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { children: [
27157
- presentation2 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
27158
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
27740
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
27741
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
27742
+ presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
27743
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
27159
27744
  ] }),
27160
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27161
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, dimColor: true, children: t("Working dir") }) }),
27162
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { wrap: "truncate-end", children: entry.cwd }) }),
27163
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27164
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, dimColor: true, children: t("Output file") }) }),
27165
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { wrap: "truncate-end", children: entry.outputFile }) }),
27166
- hasError && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
27167
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27168
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.status.error, children: t("Error") }) }),
27169
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.status.error, wrap: "wrap", children: entry.error }) })
27745
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27746
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Working dir") }) }),
27747
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: entry.cwd }) }),
27748
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27749
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Output file") }) }),
27750
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: entry.outputFile }) }),
27751
+ hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27752
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27753
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.error, children: t("Error") }) }),
27754
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.error, wrap: "wrap", children: entry.error }) })
27170
27755
  ] })
27171
27756
  ]
27172
27757
  }
@@ -27193,25 +27778,25 @@ var MonitorDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth })
27193
27778
  const hasError = Boolean(entry.error);
27194
27779
  const errorIsFailure = entry.status === "failed";
27195
27780
  const errorColor = errorIsFailure ? theme.status.error : theme.status.warning;
27196
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27781
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
27197
27782
  MaxSizedBox,
27198
27783
  {
27199
27784
  maxHeight,
27200
27785
  maxWidth,
27201
27786
  overflowDirection: "bottom",
27202
27787
  children: [
27203
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
27204
- /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { children: [
27205
- presentation2 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
27206
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
27788
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
27789
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
27790
+ presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
27791
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
27207
27792
  ] }),
27208
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27209
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, dimColor: true, children: t("Command") }) }),
27210
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { wrap: "truncate-end", children: entry.command }) }),
27211
- hasError && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
27212
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27213
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: errorColor, children: errorIsFailure ? t("Error") : t("Stopped because") }) }),
27214
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: errorColor, wrap: "wrap", children: entry.error }) })
27793
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27794
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Command") }) }),
27795
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: entry.command }) }),
27796
+ hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27797
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27798
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: errorColor, children: errorIsFailure ? t("Error") : t("Stopped because") }) }),
27799
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: errorColor, wrap: "wrap", children: entry.error }) })
27215
27800
  ] })
27216
27801
  ]
27217
27802
  }
@@ -27244,33 +27829,33 @@ var WorkflowDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth })
27244
27829
  );
27245
27830
  const visibleLogs = entry.recentLogs.slice(-MAX_VISIBLE_LOG_LINES);
27246
27831
  const hasError = Boolean(entry.error);
27247
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27832
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
27248
27833
  MaxSizedBox,
27249
27834
  {
27250
27835
  maxHeight,
27251
27836
  maxWidth,
27252
27837
  overflowDirection: "bottom",
27253
27838
  children: [
27254
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
27255
- /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { children: [
27256
- presentation2 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
27257
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
27839
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
27840
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
27841
+ presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
27842
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
27258
27843
  ] }),
27259
- entry.meta?.description && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
27260
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27261
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { wrap: "wrap", children: entry.meta.description }) })
27844
+ entry.meta?.description && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27845
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27846
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "wrap", children: entry.meta.description }) })
27262
27847
  ] }),
27263
- (entry.status === "pausing" || entry.status === "paused") && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
27264
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27265
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.status.warning, children: entry.status === "pausing" ? t(
27848
+ (entry.status === "pausing" || entry.status === "paused") && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27849
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27850
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.warning, children: entry.status === "pausing" ? t(
27266
27851
  "Pause is cooperative; in-flight work may finish before the workflow is paused. An agent call waiting on a tool approval keeps the run in this state and still counts against the active-time limit until the approval is answered."
27267
27852
  ) : t(
27268
27853
  "Paused: no new agents will start; script code between agent calls keeps running. Press p to resume. /clear, /branch, and switching sessions cancel paused runs."
27269
27854
  ) }) })
27270
27855
  ] }),
27271
- entry.sizeWarning && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
27272
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27273
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.status.warning, wrap: "wrap", children: `\u26A0 ${entry.sizeWarning.axis === "agents" ? t(
27856
+ entry.sizeWarning && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27857
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27858
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.warning, wrap: "wrap", children: `\u26A0 ${entry.sizeWarning.axis === "agents" ? t(
27274
27859
  "Large workflow: {{agents}} agents scheduled (warning threshold {{cap}}).",
27275
27860
  {
27276
27861
  agents: String(entry.sizeWarning.scheduledAgents),
@@ -27286,31 +27871,31 @@ var WorkflowDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth })
27286
27871
  }
27287
27872
  )}` }) })
27288
27873
  ] }),
27289
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27290
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, dimColor: true, children: t("Phases") }) }),
27291
- entry.phases.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { dimColor: true, children: t("(no phase recorded yet)") }) }) : /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
27292
- phaseOverflow > 0 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { dimColor: true, children: `+${phaseOverflow} ${t("more above")}` }) }),
27874
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27875
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Phases") }) }),
27876
+ entry.phases.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { dimColor: true, children: t("(no phase recorded yet)") }) }) : /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27877
+ phaseOverflow > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { dimColor: true, children: `+${phaseOverflow} ${t("more above")}` }) }),
27293
27878
  visiblePhases.map((phaseTitle, i) => {
27294
27879
  const isCurrent = isActiveWorkflowStatus(entry.status) && i === visiblePhases.length - 1 && entry.currentPhase === phaseTitle;
27295
27880
  const marker = isCurrent ? "\u25B8" : "\xB7";
27296
27881
  const phaseTokens = entry.perPhaseTokens.get(phaseTitle) ?? 0;
27297
27882
  const tokenChip = phaseTokens > 0 ? ` \xB7 ${formatTokenCount(phaseTokens)}t` : "";
27298
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: isCurrent ? theme.status.success : void 0, children: ` ${marker} ${phaseTitle}${tokenChip}` }) }, `${phaseTitle}-${i}`);
27883
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: isCurrent ? theme.status.success : void 0, children: ` ${marker} ${phaseTitle}${tokenChip}` }) }, `${phaseTitle}-${i}`);
27299
27884
  }),
27300
- (entry.perPhaseTokens.get(null) ?? 0) > 0 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { dimColor: true, children: ` \xB7 ${t("(no phase)")} \xB7 ${formatTokenCount(
27885
+ (entry.perPhaseTokens.get(null) ?? 0) > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { dimColor: true, children: ` \xB7 ${t("(no phase)")} \xB7 ${formatTokenCount(
27301
27886
  entry.perPhaseTokens.get(null) ?? 0
27302
27887
  )}t` }) })
27303
27888
  ] }),
27304
- entry.recentLogs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
27305
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27306
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, dimColor: true, children: t("Logs") }) }),
27307
- logOverflow > 0 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { dimColor: true, children: `+${logOverflow} ${t("more above")}` }) }),
27308
- visibleLogs.map((line, i) => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { wrap: "truncate-end", dimColor: true, children: line }) }, `log-${i}`))
27889
+ entry.recentLogs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27890
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27891
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Logs") }) }),
27892
+ logOverflow > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { dimColor: true, children: `+${logOverflow} ${t("more above")}` }) }),
27893
+ visibleLogs.map((line, i) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", dimColor: true, children: line }) }, `log-${i}`))
27309
27894
  ] }),
27310
- hasError && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_react87.Fragment, { children: [
27311
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, {}),
27312
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.status.error, children: t("Error") }) }),
27313
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.status.error, wrap: "wrap", children: entry.error }) })
27895
+ hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27896
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27897
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.error, children: t("Error") }) }),
27898
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.error, wrap: "wrap", children: entry.error }) })
27314
27899
  ] })
27315
27900
  ]
27316
27901
  }
@@ -27326,6 +27911,7 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27326
27911
  moveSelectionUp,
27327
27912
  moveSelectionDown,
27328
27913
  closeDialog,
27914
+ openDialog,
27329
27915
  enterDetail,
27330
27916
  exitDetail,
27331
27917
  cancelSelected,
@@ -27334,6 +27920,16 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27334
27920
  setSelectedIndex
27335
27921
  } = useBackgroundTaskViewActions();
27336
27922
  const config = useConfig();
27923
+ const hasAgents = entries.some((entry) => entry.kind === "agent");
27924
+ const [agentTab, setAgentTab] = (0, import_react87.useState)("summary");
27925
+ const [agentScrollOffset, setAgentScrollOffset] = (0, import_react87.useState)(0);
27926
+ const [reviewingApproval, setReviewingApproval] = (0, import_react87.useState)(
27927
+ null
27928
+ );
27929
+ const agentLayout = getAgentDashboardLayout(
27930
+ terminalWidth,
27931
+ availableTerminalHeight
27932
+ );
27337
27933
  const detailContentHeight = Math.max(10, availableTerminalHeight - 6);
27338
27934
  const detailContentWidth = Math.max(10, terminalWidth - 4);
27339
27935
  const listMaxRows = Math.max(3, availableTerminalHeight - 10);
@@ -27372,6 +27968,12 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27372
27968
  return fromSnapshot;
27373
27969
  }, [entries, selectedIndex, config, activityTick]);
27374
27970
  const selectedEntryId = selectedEntry ? entryId(selectedEntry) : void 0;
27971
+ (0, import_react87.useEffect)(() => {
27972
+ setAgentScrollOffset(0);
27973
+ }, [selectedEntryId, agentTab, dialogOpen]);
27974
+ (0, import_react87.useEffect)(() => {
27975
+ setReviewingApproval(null);
27976
+ }, [selectedEntryId, dialogOpen]);
27375
27977
  const selectedAgentIdForActivity = selectedEntry?.kind === "agent" ? selectedEntry.agentId : void 0;
27376
27978
  const selectedApproval = selectedEntry?.kind === "agent" && selectedEntry.pendingApprovals?.[0] ? {
27377
27979
  kind: "agent",
@@ -27382,7 +27984,13 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27382
27984
  approval: selectedEntry.pendingApprovals[0],
27383
27985
  ownerId: selectedEntry.runId
27384
27986
  } : void 0;
27385
- const approvalActive = isDetailMode && Boolean(selectedApproval);
27987
+ const agentApprovalKey = selectedApproval?.kind === "agent" ? JSON.stringify([
27988
+ selectedApproval.ownerId,
27989
+ selectedApproval.approval.callId,
27990
+ selectedApproval.approval.subagentId,
27991
+ selectedApproval.approval.at
27992
+ ]) : void 0;
27993
+ const approvalActive = Boolean(selectedApproval) && (selectedApproval?.kind === "agent" ? reviewingApproval === agentApprovalKey : isDetailMode);
27386
27994
  const approvalUsesQuestionDialog = selectedApproval?.approval.confirmationDetails.type === "ask_user_question";
27387
27995
  const approvalConfirmationDetails = selectedApproval ? (
27388
27996
  // The spread restores every field except `onConfirm`; the cast is
@@ -27412,7 +28020,8 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27412
28020
  }
27413
28021
  ) : void 0;
27414
28022
  (0, import_react87.useEffect)(() => {
27415
- if (!dialogOpen || !isDetailMode || !selectedAgentIdForActivity) return;
28023
+ if (!dialogOpen || !isDetailMode && !agentLayout.split || !selectedAgentIdForActivity)
28024
+ return;
27416
28025
  const registry = config.getBackgroundTaskRegistry();
27417
28026
  const onActivity = /* @__PURE__ */ __name((entry) => {
27418
28027
  if (entry.agentId !== selectedAgentIdForActivity) return;
@@ -27425,12 +28034,13 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27425
28034
  dialogMode,
27426
28035
  isDetailMode,
27427
28036
  config,
27428
- selectedAgentIdForActivity
28037
+ selectedAgentIdForActivity,
28038
+ agentLayout.split
27429
28039
  ]);
27430
28040
  const selectedStatus = selectedEntry?.status;
27431
28041
  const selectedShouldTick = selectedEntry?.kind === "workflow" ? isActiveWorkflowStatus(selectedEntry.status) : selectedStatus === "running";
27432
28042
  (0, import_react87.useEffect)(() => {
27433
- if (!dialogOpen || !isDetailMode || !selectedEntryId || !selectedShouldTick)
28043
+ if (!dialogOpen || !isDetailMode && !agentLayout.split || !selectedEntryId || !selectedShouldTick)
27434
28044
  return;
27435
28045
  const id = setInterval(() => setActivityTick((n) => n + 1), 1e3);
27436
28046
  return () => clearInterval(id);
@@ -27439,7 +28049,8 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27439
28049
  dialogMode,
27440
28050
  isDetailMode,
27441
28051
  selectedEntryId,
27442
- selectedShouldTick
28052
+ selectedShouldTick,
28053
+ agentLayout.split
27443
28054
  ]);
27444
28055
  const initialDetailStatusRef = (0, import_react87.useRef)(null);
27445
28056
  (0, import_react87.useEffect)(() => {
@@ -27512,6 +28123,7 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27512
28123
  if (saveActive) return;
27513
28124
  if (approvalActive && !approvalUsesQuestionDialog) {
27514
28125
  if (key.name === "left") {
28126
+ setReviewingApproval(null);
27515
28127
  exitDetail();
27516
28128
  return;
27517
28129
  }
@@ -27524,6 +28136,57 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27524
28136
  if (approvalActive && approvalUsesQuestionDialog) {
27525
28137
  return;
27526
28138
  }
28139
+ if (hasAgents && (dialogMode === "list" || selectedEntry?.kind === "agent")) {
28140
+ if ((key.name === "left" || key.name === "right" || key.name === "tab") && !key.ctrl && !key.meta) {
28141
+ if (selectedEntry?.kind === "agent") {
28142
+ setAgentTab(
28143
+ (tab) => nextAgentDashboardTab(
28144
+ tab,
28145
+ key.name === "left" || key.shift ? -1 : 1
28146
+ )
28147
+ );
28148
+ }
28149
+ return;
28150
+ }
28151
+ if (key.sequence === "a" && !key.ctrl && !key.meta && selectedApproval?.kind === "agent") {
28152
+ if (isDetailMode || agentLayout.split)
28153
+ setReviewingApproval(agentApprovalKey ?? null);
28154
+ return;
28155
+ }
28156
+ if (isDetailMode && selectedEntry?.kind === "agent") {
28157
+ if (key.name === "escape") {
28158
+ if (pendingCancelEntryId) setPendingCancelEntryId(null);
28159
+ else {
28160
+ setReviewingApproval(null);
28161
+ if (dialogMode === "detail-from-panel") openDialog();
28162
+ else exitDetail();
28163
+ }
28164
+ return;
28165
+ }
28166
+ if (key.name === "return" || key.name === "space") return;
28167
+ const up = keyMatchers["selectionUp" /* SELECTION_UP */](key);
28168
+ const down = keyMatchers["selectionDown" /* SELECTION_DOWN */](key);
28169
+ const pageUp = key.name === "pageup";
28170
+ const pageDown = key.name === "pagedown";
28171
+ if (up || down || pageUp || pageDown) {
28172
+ const maxOffset = Math.max(
28173
+ 0,
28174
+ getAgentDashboardLines(
28175
+ selectedEntry,
28176
+ agentTab,
28177
+ agentLayout.detailWidth,
28178
+ entries
28179
+ ).length - agentLayout.pageSize
28180
+ );
28181
+ const direction = up || pageUp ? -1 : 1;
28182
+ const step = pageUp || pageDown ? agentLayout.pageSize : 1;
28183
+ setAgentScrollOffset(
28184
+ (offset) => Math.max(0, Math.min(maxOffset, offset + direction * step))
28185
+ );
28186
+ return;
28187
+ }
28188
+ }
28189
+ }
27527
28190
  if (dialogMode === "list") {
27528
28191
  if (keyMatchers["selectionUp" /* SELECTION_UP */](key)) {
27529
28192
  moveSelectionUp();
@@ -27633,7 +28296,95 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27633
28296
  }
27634
28297
  if (workflowSaveTarget) hints.push("s save");
27635
28298
  }
27636
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
28299
+ if (approvalActive && selectedApproval?.kind === "agent" && approvalConfirmationDetails && selectedEntry?.kind === "agent") {
28300
+ const nestedOwner = selectedApproval.approval.subagentId;
28301
+ const headingRows = nestedOwner ? 3 : 2;
28302
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
28303
+ Box_default,
28304
+ {
28305
+ flexDirection: "column",
28306
+ width: terminalWidth,
28307
+ height: availableTerminalHeight,
28308
+ flexShrink: 0,
28309
+ children: [
28310
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
28311
+ Box_default,
28312
+ {
28313
+ flexDirection: "column",
28314
+ width: terminalWidth,
28315
+ height: Math.max(1, availableTerminalHeight - 1),
28316
+ borderStyle: glyphs().borderStyle,
28317
+ borderColor: theme.status.warning,
28318
+ paddingX: 1,
28319
+ flexShrink: 0,
28320
+ children: [
28321
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.warning, wrap: "truncate-end", children: t("Background agent needs approval") }),
28322
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: dashboardSingleLine(
28323
+ selectedEntry.description,
28324
+ Math.max(1, terminalWidth - 4)
28325
+ ) }),
28326
+ nestedOwner && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [
28327
+ t("from nested agent"),
28328
+ ":",
28329
+ " ",
28330
+ dashboardSingleLine(nestedOwner, Math.max(1, terminalWidth - 4))
28331
+ ] }),
28332
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28333
+ ToolConfirmationMessage,
28334
+ {
28335
+ confirmationDetails: approvalConfirmationDetails,
28336
+ config,
28337
+ isFocused: true,
28338
+ contentWidth: Math.max(1, terminalWidth - 4),
28339
+ availableTerminalHeight: Math.max(
28340
+ 1,
28341
+ availableTerminalHeight - headingRows - 3
28342
+ ),
28343
+ compactMode: true
28344
+ }
28345
+ )
28346
+ ]
28347
+ }
28348
+ ),
28349
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: showCancelConfirmHint ? t(
28350
+ "Press x again to stop; this ends the blocking turn. Esc cancels."
28351
+ ) : approvalUsesQuestionDialog ? t("Approve or deny the request above") : t("\u2190 back \xB7 x stop") })
28352
+ ]
28353
+ }
28354
+ );
28355
+ }
28356
+ if (hasAgents && (dialogMode === "list" || selectedEntry?.kind === "agent") && !approvalActive && !saveActive) {
28357
+ const actionHints = [];
28358
+ if (selectedEntry?.kind === "agent" && selectedEntry.pendingApprovals?.length)
28359
+ actionHints.push(t("a review approval"));
28360
+ if (selectedEntry && isStoppableEntry(selectedEntry))
28361
+ actionHints.push(t("x stop"));
28362
+ if (selectedEntryAllowsResume) actionHints.push(t("r resume"));
28363
+ if (selectedEntry?.kind === "agent" && selectedEntry.status === "paused")
28364
+ actionHints.push(t("x abandon"));
28365
+ if (selectedWorkflowPauseHint) actionHints.push(selectedWorkflowPauseHint);
28366
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28367
+ AgentDashboard,
28368
+ {
28369
+ entries,
28370
+ selectedEntry,
28371
+ selectedIndex,
28372
+ detailFocused: isDetailMode,
28373
+ tab: agentTab,
28374
+ scrollOffset: agentScrollOffset,
28375
+ width: terminalWidth,
28376
+ height: availableTerminalHeight,
28377
+ actionHints,
28378
+ footerMessage: showCancelConfirmHint ? t(
28379
+ "Press x again to stop; this ends the blocking turn. Esc cancels."
28380
+ ) : pauseRejected?.entryKey === selectedEntryKey ? t(
28381
+ "Pause/resume was rejected; the workflow state changed. Try again."
28382
+ ) : void 0,
28383
+ renderOtherDetail: (entry, height, width) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(DetailBody, { entry, maxHeight: height, maxWidth: width })
28384
+ }
28385
+ );
28386
+ }
28387
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
27637
28388
  Box_default,
27638
28389
  {
27639
28390
  flexDirection: "column",
@@ -27642,32 +28393,32 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27642
28393
  marginTop: 1,
27643
28394
  paddingX: 1,
27644
28395
  children: [
27645
- dialogMode === "list" && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Background tasks") }) }),
27646
- /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { marginTop: dialogMode === "list" ? 1 : 0, flexDirection: "column", children: [
27647
- dialogMode === "list" ? /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
28396
+ dialogMode === "list" && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Background tasks") }) }),
28397
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { marginTop: dialogMode === "list" ? 1 : 0, flexDirection: "column", children: [
28398
+ dialogMode === "list" ? /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
27648
28399
  ListBody,
27649
28400
  {
27650
28401
  entries,
27651
28402
  selectedIndex,
27652
28403
  maxRows: listMaxRows
27653
28404
  }
27654
- ) : selectedEntry ? /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
28405
+ ) : selectedEntry ? /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
27655
28406
  DetailBody,
27656
28407
  {
27657
28408
  entry: selectedEntry,
27658
28409
  maxHeight: approvalActive ? Math.max(6, Math.floor(detailContentHeight / 2)) : detailContentHeight,
27659
28410
  maxWidth: detailContentWidth
27660
28411
  }
27661
- ) : /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, children: t("No entry to show.") }) }),
27662
- approvalActive && approvalConfirmationDetails && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, paddingX: 1, children: [
27663
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.status.warning, children: selectedApproval?.kind === "workflow" ? `[workflow] ${t("needs approval")}` : t("Background agent needs approval") }),
27664
- selectedApproval?.kind === "agent" && selectedApproval.approval.subagentId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Text, { color: theme.text.secondary, children: [
28412
+ ) : /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: t("No entry to show.") }) }),
28413
+ approvalActive && approvalConfirmationDetails && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, paddingX: 1, children: [
28414
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.warning, children: selectedApproval?.kind === "workflow" ? `[workflow] ${t("needs approval")}` : t("Background agent needs approval") }),
28415
+ selectedApproval?.kind === "agent" && selectedApproval.approval.subagentId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { color: theme.text.secondary, children: [
27665
28416
  t("from nested agent"),
27666
28417
  ":",
27667
28418
  " ",
27668
28419
  selectedApproval.approval.subagentId
27669
28420
  ] }),
27670
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
28421
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
27671
28422
  ToolConfirmationMessage,
27672
28423
  {
27673
28424
  confirmationDetails: approvalConfirmationDetails,
@@ -27683,7 +28434,7 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27683
28434
  )
27684
28435
  ] })
27685
28436
  ] }),
27686
- saveActive && workflowSaveTarget && config ? /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
28437
+ saveActive && workflowSaveTarget && config ? /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
27687
28438
  WorkflowSaveOverlay,
27688
28439
  {
27689
28440
  script: workflowSaveTarget.script,
@@ -27692,16 +28443,16 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27692
28443
  isActive: saveActive,
27693
28444
  onClose: () => setSaveActive(false)
27694
28445
  }
27695
- ) : /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { marginTop: 1, paddingX: 1, children: pauseRejected && pauseRejected.entryKey === selectedEntryKey ? /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.status.warning, children: t(
28446
+ ) : /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { marginTop: 1, paddingX: 1, children: pauseRejected && pauseRejected.entryKey === selectedEntryKey ? /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.warning, children: t(
27696
28447
  "Pause/resume was rejected; the workflow state changed. Try again."
27697
- ) }) : /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, children: hints.join(" \xB7 ") }) })
28448
+ ) }) : /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: hints.join(" \xB7 ") }) })
27698
28449
  ]
27699
28450
  }
27700
28451
  );
27701
28452
  }, "BackgroundTasksDialog");
27702
28453
 
27703
28454
  // packages/cli/src/ui/components/DialogManager.tsx
27704
- var import_jsx_runtime110 = __toESM(require_jsx_runtime(), 1);
28455
+ var import_jsx_runtime111 = __toESM(require_jsx_runtime(), 1);
27705
28456
  var DialogManager = /* @__PURE__ */ __name(({
27706
28457
  addItem,
27707
28458
  terminalWidth
@@ -27720,7 +28471,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27720
28471
  const constrainedDialogHeight = constrainHeight ? dialogMaxHeight : void 0;
27721
28472
  const listDialogHeight = dialogMaxHeight;
27722
28473
  if (uiState.showWelcomeBackDialog && uiState.welcomeBackInfo?.hasHistory) {
27723
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28474
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27724
28475
  WelcomeBackDialog,
27725
28476
  {
27726
28477
  welcomeBackInfo: uiState.welcomeBackInfo,
@@ -27730,7 +28481,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27730
28481
  );
27731
28482
  }
27732
28483
  if (uiState.showWorktreeExitDialog && uiState.activeWorktree) {
27733
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28484
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27734
28485
  WorktreeExitDialog,
27735
28486
  {
27736
28487
  slug: uiState.activeWorktree.slug,
@@ -27744,10 +28495,10 @@ var DialogManager = /* @__PURE__ */ __name(({
27744
28495
  );
27745
28496
  }
27746
28497
  if (uiState.showIdeRestartPrompt) {
27747
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(IdeTrustChangeDialog, { reason: uiState.ideTrustRestartReason });
28498
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(IdeTrustChangeDialog, { reason: uiState.ideTrustRestartReason });
27748
28499
  }
27749
28500
  if (uiState.shouldShowIdePrompt) {
27750
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28501
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27751
28502
  IdeIntegrationNudge,
27752
28503
  {
27753
28504
  ide: uiState.currentIDE,
@@ -27756,7 +28507,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27756
28507
  );
27757
28508
  }
27758
28509
  if (uiState.shouldShowCommandMigrationNudge) {
27759
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28510
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27760
28511
  CommandFormatMigrationNudge,
27761
28512
  {
27762
28513
  tomlFiles: uiState.commandMigrationTomlFiles,
@@ -27765,7 +28516,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27765
28516
  );
27766
28517
  }
27767
28518
  if (uiState.isFolderTrustDialogOpen) {
27768
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28519
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27769
28520
  FolderTrustDialog,
27770
28521
  {
27771
28522
  onSelect: uiActions.handleFolderTrustSelect,
@@ -27774,7 +28525,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27774
28525
  );
27775
28526
  }
27776
28527
  if (uiState.isMcpApprovalDialogOpen && uiState.currentMcpApproval) {
27777
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28528
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27778
28529
  MCPServerApprovalDialog,
27779
28530
  {
27780
28531
  serverName: uiState.currentMcpApproval.name,
@@ -27787,7 +28538,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27787
28538
  );
27788
28539
  }
27789
28540
  if (uiState.shellConfirmationRequest) {
27790
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28541
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27791
28542
  ShellConfirmationDialog,
27792
28543
  {
27793
28544
  request: uiState.shellConfirmationRequest,
@@ -27797,7 +28548,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27797
28548
  );
27798
28549
  }
27799
28550
  if (uiState.loopDetectionConfirmationRequest) {
27800
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28551
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27801
28552
  LoopDetectionConfirmation,
27802
28553
  {
27803
28554
  onComplete: uiState.loopDetectionConfirmationRequest.onComplete
@@ -27805,7 +28556,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27805
28556
  );
27806
28557
  }
27807
28558
  if (uiState.confirmationRequest) {
27808
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28559
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27809
28560
  ConsentPrompt,
27810
28561
  {
27811
28562
  prompt: uiState.confirmationRequest.prompt,
@@ -27817,7 +28568,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27817
28568
  }
27818
28569
  if (uiState.confirmUpdateExtensionRequests.length > 0 && !uiState.isExtensionsManagerDialogOpen) {
27819
28570
  const request = uiState.confirmUpdateExtensionRequests[0];
27820
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28571
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27821
28572
  ConsentPrompt,
27822
28573
  {
27823
28574
  prompt: request.prompt,
@@ -27828,7 +28579,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27828
28579
  );
27829
28580
  }
27830
28581
  if (uiState.providerUpdateRequest) {
27831
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28582
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27832
28583
  ProviderUpdatePrompt,
27833
28584
  {
27834
28585
  entries: uiState.providerUpdateRequest.entries,
@@ -27838,7 +28589,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27838
28589
  }
27839
28590
  if (uiState.settingInputRequests.length > 0 && !uiState.isExtensionsManagerDialogOpen) {
27840
28591
  const request = uiState.settingInputRequests[0];
27841
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28592
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27842
28593
  SettingInputPrompt,
27843
28594
  {
27844
28595
  settingName: request.settingName,
@@ -27853,7 +28604,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27853
28604
  }
27854
28605
  if (uiState.pluginChoiceRequests.length > 0 && !uiState.isExtensionsManagerDialogOpen) {
27855
28606
  const request = uiState.pluginChoiceRequests[0];
27856
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28607
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27857
28608
  PluginChoicePrompt,
27858
28609
  {
27859
28610
  marketplaceName: request.marketplaceName,
@@ -27867,9 +28618,9 @@ var DialogManager = /* @__PURE__ */ __name(({
27867
28618
  );
27868
28619
  }
27869
28620
  if (uiState.isThemeDialogOpen) {
27870
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", children: [
27871
- uiState.themeError && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.error, children: uiState.themeError }) }),
27872
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28621
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(Box_default, { flexDirection: "column", children: [
28622
+ uiState.themeError && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Text, { color: theme.status.error, children: uiState.themeError }) }),
28623
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27873
28624
  ThemeDialog,
27874
28625
  {
27875
28626
  onSelect: uiActions.handleThemeSelect,
@@ -27882,9 +28633,9 @@ var DialogManager = /* @__PURE__ */ __name(({
27882
28633
  ] });
27883
28634
  }
27884
28635
  if (uiState.isEditorDialogOpen) {
27885
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", children: [
27886
- uiState.editorError && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.error, children: uiState.editorError }) }),
27887
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28636
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(Box_default, { flexDirection: "column", children: [
28637
+ uiState.editorError && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Text, { color: theme.status.error, children: uiState.editorError }) }),
28638
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27888
28639
  EditorSettingsDialog,
27889
28640
  {
27890
28641
  onSelect: uiActions.handleEditorSelect,
@@ -27895,7 +28646,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27895
28646
  ] });
27896
28647
  }
27897
28648
  if (uiState.isModelDialogOpen) {
27898
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28649
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27899
28650
  ModelDialog,
27900
28651
  {
27901
28652
  onClose: uiActions.closeModelDialog,
@@ -27910,7 +28661,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27910
28661
  );
27911
28662
  }
27912
28663
  if (uiState.isSettingsDialogOpen) {
27913
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28664
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27914
28665
  SettingsDialog,
27915
28666
  {
27916
28667
  settings,
@@ -27941,7 +28692,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27941
28692
  ) });
27942
28693
  }
27943
28694
  if (uiState.isStatusLineDialogOpen) {
27944
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28695
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27945
28696
  StatusLineDialog,
27946
28697
  {
27947
28698
  settings,
@@ -27955,10 +28706,10 @@ var DialogManager = /* @__PURE__ */ __name(({
27955
28706
  );
27956
28707
  }
27957
28708
  if (uiState.isMemoryDialogOpen) {
27958
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(MemoryDialog, { onClose: uiActions.closeMemoryDialog });
28709
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(MemoryDialog, { onClose: uiActions.closeMemoryDialog });
27959
28710
  }
27960
28711
  if (uiState.isHelpDialogOpen) {
27961
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28712
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27962
28713
  Help,
27963
28714
  {
27964
28715
  commands: uiState.slashCommands,
@@ -27972,7 +28723,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27972
28723
  }
27973
28724
  if (uiState.isApprovalModeDialogOpen) {
27974
28725
  const currentMode = config.getApprovalMode();
27975
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28726
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27976
28727
  ApprovalModeDialog,
27977
28728
  {
27978
28729
  settings,
@@ -27983,7 +28734,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27983
28734
  ) });
27984
28735
  }
27985
28736
  if (uiState.isEffortDialogOpen) {
27986
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28737
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27987
28738
  EffortDialog,
27988
28739
  {
27989
28740
  currentEffort: config.getReasoningEffort(),
@@ -27993,7 +28744,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27993
28744
  ) });
27994
28745
  }
27995
28746
  if (uiState.isOutputStyleDialogOpen) {
27996
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28747
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27997
28748
  OutputStyleDialog,
27998
28749
  {
27999
28750
  currentStyleName: config.getOutputStyle()?.name,
@@ -28003,7 +28754,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28003
28754
  ) });
28004
28755
  }
28005
28756
  if (uiState.activeArenaDialog === "start") {
28006
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28757
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28007
28758
  ArenaStartDialog,
28008
28759
  {
28009
28760
  onClose: () => uiActions.closeArenaDialog(),
@@ -28014,7 +28765,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28014
28765
  if (uiState.activeArenaDialog === "status") {
28015
28766
  const arenaManager = config.getArenaManager();
28016
28767
  if (arenaManager) {
28017
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28768
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28018
28769
  ArenaStatusDialog,
28019
28770
  {
28020
28771
  manager: arenaManager,
@@ -28025,7 +28776,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28025
28776
  }
28026
28777
  }
28027
28778
  if (uiState.activeArenaDialog === "stop") {
28028
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28779
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28029
28780
  ArenaStopDialog,
28030
28781
  {
28031
28782
  config,
@@ -28037,7 +28788,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28037
28788
  if (uiState.activeArenaDialog === "select") {
28038
28789
  const arenaManager = config.getArenaManager();
28039
28790
  if (arenaManager) {
28040
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28791
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28041
28792
  ArenaSelectDialog,
28042
28793
  {
28043
28794
  manager: arenaManager,
@@ -28049,11 +28800,11 @@ var DialogManager = /* @__PURE__ */ __name(({
28049
28800
  }
28050
28801
  }
28051
28802
  if (uiState.auth.isAuthDialogOpen || uiState.auth.authError) {
28052
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(AuthDialog, {}) });
28803
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(AuthDialog, {}) });
28053
28804
  }
28054
28805
  if (uiState.auth.isAuthenticating) {
28055
28806
  if (uiState.auth.pendingAuthType === "openai" /* USE_OPENAI */ && uiState.auth.externalAuthState) {
28056
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28807
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28057
28808
  ExternalAuthProgress,
28058
28809
  {
28059
28810
  title: uiState.auth.externalAuthState.title,
@@ -28068,13 +28819,13 @@ var DialogManager = /* @__PURE__ */ __name(({
28068
28819
  }
28069
28820
  }
28070
28821
  if (uiState.isTrustDialogOpen) {
28071
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(TrustDialog, { onExit: uiActions.closeTrustDialog, addItem });
28822
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(TrustDialog, { onExit: uiActions.closeTrustDialog, addItem });
28072
28823
  }
28073
28824
  if (uiState.isPermissionsDialogOpen) {
28074
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(PermissionsDialog, { onExit: uiActions.closePermissionsDialog });
28825
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(PermissionsDialog, { onExit: uiActions.closePermissionsDialog });
28075
28826
  }
28076
28827
  if (uiState.isSubagentCreateDialogOpen) {
28077
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28828
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28078
28829
  AgentCreationWizard,
28079
28830
  {
28080
28831
  onClose: uiActions.closeSubagentCreateDialog,
@@ -28083,7 +28834,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28083
28834
  );
28084
28835
  }
28085
28836
  if (uiState.isAgentsManagerDialogOpen) {
28086
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28837
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28087
28838
  AgentsManagerDialog,
28088
28839
  {
28089
28840
  onClose: uiActions.closeAgentsManagerDialog,
@@ -28092,7 +28843,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28092
28843
  );
28093
28844
  }
28094
28845
  if (uiState.isSkillsManagerDialogOpen) {
28095
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28846
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28096
28847
  SkillsManagerDialog,
28097
28848
  {
28098
28849
  settings,
@@ -28106,7 +28857,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28106
28857
  );
28107
28858
  }
28108
28859
  if (uiState.isExtensionsManagerDialogOpen) {
28109
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28860
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28110
28861
  ExtensionsManagerDialog,
28111
28862
  {
28112
28863
  onClose: uiActions.closeExtensionsManagerDialog,
@@ -28115,19 +28866,19 @@ var DialogManager = /* @__PURE__ */ __name(({
28115
28866
  );
28116
28867
  }
28117
28868
  if (uiState.isHooksDialogOpen) {
28118
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(HooksManagementDialog, { onClose: uiActions.closeHooksDialog });
28869
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(HooksManagementDialog, { onClose: uiActions.closeHooksDialog });
28119
28870
  }
28120
28871
  if (uiState.isStatsDialogOpen) {
28121
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(StatsDialog, { onClose: uiActions.closeStatsDialog, width: mainAreaWidth });
28872
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(StatsDialog, { onClose: uiActions.closeStatsDialog, width: mainAreaWidth });
28122
28873
  }
28123
28874
  if (uiState.isRemoteDialogOpen) {
28124
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(RemoteControlDialog, { onClose: uiActions.closeRemoteDialog });
28875
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(RemoteControlDialog, { onClose: uiActions.closeRemoteDialog });
28125
28876
  }
28126
28877
  if (uiState.isMcpDialogOpen) {
28127
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(MCPManagementDialog, { onClose: uiActions.closeMcpDialog });
28878
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(MCPManagementDialog, { onClose: uiActions.closeMcpDialog });
28128
28879
  }
28129
28880
  if (uiState.isResumeDialogOpen) {
28130
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28881
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28131
28882
  SessionPicker,
28132
28883
  {
28133
28884
  sessionService: config.getSessionService(),
@@ -28141,7 +28892,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28141
28892
  }
28142
28893
  if (uiState.isDeleteDialogOpen) {
28143
28894
  const currentSessionId = config.getSessionId();
28144
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28895
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28145
28896
  SessionPicker,
28146
28897
  {
28147
28898
  sessionService: config.getSessionService(),
@@ -28156,7 +28907,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28156
28907
  );
28157
28908
  }
28158
28909
  if (uiState.isRewindSelectorOpen) {
28159
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28910
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28160
28911
  RewindSelector,
28161
28912
  {
28162
28913
  history: uiState.history,
@@ -28168,7 +28919,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28168
28919
  );
28169
28920
  }
28170
28921
  if (uiState.isDiffDialogOpen) {
28171
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28922
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28172
28923
  DiffDialog,
28173
28924
  {
28174
28925
  history: uiState.history,
@@ -28180,7 +28931,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28180
28931
  );
28181
28932
  }
28182
28933
  if (uiState.isSkillReviewDialogOpen && uiState.skillReviewPending) {
28183
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28934
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28184
28935
  SkillReviewDialog,
28185
28936
  {
28186
28937
  skills: uiState.skillReviewPending.skills,
@@ -28193,11 +28944,14 @@ var DialogManager = /* @__PURE__ */ __name(({
28193
28944
  );
28194
28945
  }
28195
28946
  if (bgTasksDialogOpen) {
28196
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28947
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28197
28948
  BackgroundTasksDialog,
28198
28949
  {
28199
28950
  availableTerminalHeight: listDialogHeight,
28200
- terminalWidth: mainAreaWidth
28951
+ terminalWidth: Math.max(
28952
+ 1,
28953
+ terminalWidth - sideMargin(getLayoutTier(terminalWidth)) * 2
28954
+ )
28201
28955
  }
28202
28956
  );
28203
28957
  }
@@ -28270,7 +29024,7 @@ function isNarrowWidth(width) {
28270
29024
  __name(isNarrowWidth, "isNarrowWidth");
28271
29025
 
28272
29026
  // packages/cli/src/ui/components/LoadingIndicator.tsx
28273
- var import_jsx_runtime111 = __toESM(require_jsx_runtime(), 1);
29027
+ var import_jsx_runtime112 = __toESM(require_jsx_runtime(), 1);
28274
29028
  var LoadingIndicator = /* @__PURE__ */ __name(({
28275
29029
  currentLoadingPhrase,
28276
29030
  elapsedTime,
@@ -28311,34 +29065,34 @@ var LoadingIndicator = /* @__PURE__ */ __name(({
28311
29065
  time: timeStr,
28312
29066
  tokens: `${tokenStr}${tokenRateStr}`
28313
29067
  }) : null;
28314
- return /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(Box_default, { paddingLeft: 2, flexDirection: "column", children: [
28315
- /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(
29068
+ return /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(Box_default, { paddingLeft: 2, flexDirection: "column", children: [
29069
+ /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(
28316
29070
  Box_default,
28317
29071
  {
28318
29072
  width: "100%",
28319
29073
  flexDirection: isNarrow ? "column" : "row",
28320
29074
  alignItems: isNarrow ? "flex-start" : "center",
28321
29075
  children: [
28322
- /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(Box_default, { children: [
28323
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
29076
+ /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(Box_default, { children: [
29077
+ /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
28324
29078
  RespondingSpinner,
28325
29079
  {
28326
29080
  nonRespondingDisplay: streamingState === "waiting_for_confirmation" /* WaitingForConfirmation */ ? WAITING_SPINNER_FRAME : ""
28327
29081
  }
28328
29082
  ) }),
28329
- primaryText && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Text, { color: theme.text.accent, wrap: "truncate-end", children: primaryText }),
28330
- !isNarrow && cancelAndTimerContent && /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(Text, { color: theme.text.secondary, children: [
29083
+ primaryText && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { color: theme.text.accent, wrap: "truncate-end", children: primaryText }),
29084
+ !isNarrow && cancelAndTimerContent && /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(Text, { color: theme.text.secondary, children: [
28331
29085
  " ",
28332
29086
  cancelAndTimerContent
28333
29087
  ] })
28334
29088
  ] }),
28335
- !isNarrow && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexGrow: 1 }),
28336
- !isNarrow && rightContent && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { children: rightContent })
29089
+ !isNarrow && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { flexGrow: 1 }),
29090
+ !isNarrow && rightContent && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { children: rightContent })
28337
29091
  ]
28338
29092
  }
28339
29093
  ),
28340
- isNarrow && cancelAndTimerContent && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Text, { color: theme.text.secondary, children: cancelAndTimerContent }) }),
28341
- isNarrow && rightContent && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { children: rightContent })
29094
+ isNarrow && cancelAndTimerContent && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { color: theme.text.secondary, children: cancelAndTimerContent }) }),
29095
+ isNarrow && rightContent && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { children: rightContent })
28342
29096
  ] });
28343
29097
  }, "LoadingIndicator");
28344
29098
  function formatTokensPerSecond(tokensPerSecond) {
@@ -28349,7 +29103,7 @@ function formatTokensPerSecond(tokensPerSecond) {
28349
29103
  return `${rounded} t/s`;
28350
29104
  }
28351
29105
  __name(formatTokensPerSecond, "formatTokensPerSecond");
28352
- var LiveLoadingIndicator = /* @__PURE__ */ __name(({ elapsedClock, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(LoadingIndicator, { ...props, elapsedTime: useElapsedSeconds(elapsedClock) }), "LiveLoadingIndicator");
29106
+ var LiveLoadingIndicator = /* @__PURE__ */ __name(({ elapsedClock, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(LoadingIndicator, { ...props, elapsedTime: useElapsedSeconds(elapsedClock) }), "LiveLoadingIndicator");
28353
29107
 
28354
29108
  // packages/cli/src/ui/components/InputPrompt.tsx
28355
29109
  init_esbuild_shims();
@@ -28393,7 +29147,7 @@ __name(CompletionCategoryMouseController, "CompletionCategoryMouseController");
28393
29147
  // packages/cli/src/ui/components/PrepareLabel.tsx
28394
29148
  init_esbuild_shims();
28395
29149
  var import_react91 = __toESM(require_react(), 1);
28396
- var import_jsx_runtime112 = __toESM(require_jsx_runtime(), 1);
29150
+ var import_jsx_runtime113 = __toESM(require_jsx_runtime(), 1);
28397
29151
  var MAX_WIDTH = 150;
28398
29152
  var _PrepareLabel = /* @__PURE__ */ __name(({
28399
29153
  label,
@@ -28405,7 +29159,7 @@ var _PrepareLabel = /* @__PURE__ */ __name(({
28405
29159
  const hasMatch = matchedIndex !== void 0 && matchedIndex >= 0 && matchedIndex < label.length && userInput.length > 0;
28406
29160
  if (!hasMatch) {
28407
29161
  const display = isExpanded ? label : label.length > MAX_WIDTH ? label.slice(0, MAX_WIDTH) + "..." : label;
28408
- return /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { wrap: "wrap", color: textColor, children: display });
29162
+ return /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { wrap: "wrap", color: textColor, children: display });
28409
29163
  }
28410
29164
  const matchLength = userInput.length;
28411
29165
  let before = "";
@@ -28444,9 +29198,9 @@ var _PrepareLabel = /* @__PURE__ */ __name(({
28444
29198
  after = after.length >= 3 ? after.slice(0, -3) + "..." : "...";
28445
29199
  }
28446
29200
  }
28447
- return /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(Text, { color: textColor, wrap: "wrap", children: [
29201
+ return /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(Text, { color: textColor, wrap: "wrap", children: [
28448
29202
  before,
28449
- match ? match.split(/(\s+)/).map((part, index) => /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
29203
+ match ? match.split(/(\s+)/).map((part, index) => /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
28450
29204
  Text,
28451
29205
  {
28452
29206
  color: theme.background.primary,
@@ -28461,7 +29215,7 @@ var _PrepareLabel = /* @__PURE__ */ __name(({
28461
29215
  var PrepareLabel = import_react91.default.memo(_PrepareLabel);
28462
29216
 
28463
29217
  // packages/cli/src/ui/components/SuggestionsDisplay.tsx
28464
- var import_jsx_runtime113 = __toESM(require_jsx_runtime(), 1);
29218
+ var import_jsx_runtime114 = __toESM(require_jsx_runtime(), 1);
28465
29219
  function categoryLabel(cat) {
28466
29220
  switch (cat) {
28467
29221
  case "all":
@@ -28503,7 +29257,7 @@ function SuggestionsDisplay({
28503
29257
  const itemRefs = (0, import_react92.useRef)([]);
28504
29258
  const categoryRefs = (0, import_react92.useRef)([]);
28505
29259
  if (isLoading) {
28506
- return /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Box_default, { width, children: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: "gray", children: t("Loading suggestions...") }) });
29260
+ return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Box_default, { width, children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: "gray", children: t("Loading suggestions...") }) });
28507
29261
  }
28508
29262
  const filteredSuggestions = activeCategory === "all" ? suggestions : suggestions.filter((s) => (s.category ?? "file") === activeCategory);
28509
29263
  const showTabBar = (availableCategories?.length ?? 0) > 2;
@@ -28533,7 +29287,7 @@ function SuggestionsDisplay({
28533
29287
  Math.max(...describedLabelLengths),
28534
29288
  Math.max(contentWidth - MIN_DESCRIPTION_WIDTH - 2, 1)
28535
29289
  ) : 0;
28536
- return /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(
29290
+ return /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
28537
29291
  Box_default,
28538
29292
  {
28539
29293
  flexDirection: "column",
@@ -28543,7 +29297,7 @@ function SuggestionsDisplay({
28543
29297
  borderColor: extendedTheme.ui.rule,
28544
29298
  paddingX: 1,
28545
29299
  children: [
28546
- mouseEnabled && onHoverIndex && onSelectIndex && /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
29300
+ mouseEnabled && onHoverIndex && onSelectIndex && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
28547
29301
  RowMouseController,
28548
29302
  {
28549
29303
  containerRef,
@@ -28553,7 +29307,7 @@ function SuggestionsDisplay({
28553
29307
  onSelectIndex
28554
29308
  }
28555
29309
  ),
28556
- mouseEnabled && showTabBar && availableCategories && onSelectCategory && /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
29310
+ mouseEnabled && showTabBar && availableCategories && onSelectCategory && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
28557
29311
  CompletionCategoryMouseController,
28558
29312
  {
28559
29313
  containerRef,
@@ -28562,17 +29316,17 @@ function SuggestionsDisplay({
28562
29316
  onSelectCategory
28563
29317
  }
28564
29318
  ),
28565
- showTabBar && availableCategories && /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(Box_default, { flexDirection: "row", marginBottom: 1, children: [
29319
+ showTabBar && availableCategories && /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Box_default, { flexDirection: "row", marginBottom: 1, children: [
28566
29320
  availableCategories.map((cat, i) => {
28567
29321
  const active = cat === activeCategory;
28568
- return /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
29322
+ return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
28569
29323
  Box_default,
28570
29324
  {
28571
29325
  marginLeft: i === 0 ? 0 : 1,
28572
29326
  ref: (node) => {
28573
29327
  categoryRefs.current[i] = node;
28574
29328
  },
28575
- children: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
29329
+ children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
28576
29330
  Text,
28577
29331
  {
28578
29332
  color: active ? theme.background.primary : theme.text.secondary,
@@ -28584,9 +29338,9 @@ function SuggestionsDisplay({
28584
29338
  cat
28585
29339
  );
28586
29340
  }),
28587
- /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: theme.text.secondary, children: t("(\u2190/\u2192 to switch)") }) })
29341
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: theme.text.secondary, children: t("(\u2190/\u2192 to switch)") }) })
28588
29342
  ] }),
28589
- scrollOffset > 0 && /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: theme.text.primary, children: "\u25B2" }),
29343
+ scrollOffset > 0 && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: theme.text.primary, children: "\u25B2" }),
28590
29344
  visibleSuggestions.map((suggestion, index) => {
28591
29345
  const originalIndex = startIndex + index;
28592
29346
  const isActive = originalIndex === activeIndex;
@@ -28599,7 +29353,7 @@ function SuggestionsDisplay({
28599
29353
  contentWidth - labelColumnWidth - 2 - expansionIndicatorWidth,
28600
29354
  1
28601
29355
  );
28602
- const labelElement = /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
29356
+ const labelElement = /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
28603
29357
  PrepareLabel,
28604
29358
  {
28605
29359
  label: displayLabel,
@@ -28609,7 +29363,7 @@ function SuggestionsDisplay({
28609
29363
  isExpanded
28610
29364
  }
28611
29365
  );
28612
- return /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(
29366
+ return /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
28613
29367
  Box_default,
28614
29368
  {
28615
29369
  flexDirection: "row",
@@ -28617,49 +29371,49 @@ function SuggestionsDisplay({
28617
29371
  itemRefs.current[index] = node;
28618
29372
  },
28619
29373
  children: [
28620
- /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Box_default, { width: ACTIVE_MARKER_WIDTH, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: extendedTheme.ui.brand, children: isActive ? `${glyphs().prompt} ` : " " }) }),
28621
- /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
29374
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Box_default, { width: ACTIVE_MARKER_WIDTH, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: extendedTheme.ui.brand, children: isActive ? `${glyphs().prompt} ` : " " }) }),
29375
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
28622
29376
  Box_default,
28623
29377
  {
28624
29378
  ...mode === "slash" || suggestion.description ? { width: labelColumnWidth, flexShrink: 0 } : { flexShrink: 1 },
28625
- children: /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(Box_default, { children: [
28626
- /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Box_default, { flexShrink: 0, children: labelElement }),
28627
- suggestion.argumentHint && /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [
29379
+ children: /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Box_default, { children: [
29380
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Box_default, { flexShrink: 0, children: labelElement }),
29381
+ suggestion.argumentHint && /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [
28628
29382
  " ",
28629
29383
  suggestion.argumentHint
28630
29384
  ] }),
28631
- suggestion.sourceBadge && /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(Text, { color: textColor, wrap: "truncate-end", children: [
29385
+ suggestion.sourceBadge && /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Text, { color: textColor, wrap: "truncate-end", children: [
28632
29386
  " ",
28633
29387
  suggestion.sourceBadge
28634
29388
  ] })
28635
29389
  ] })
28636
29390
  }
28637
29391
  ),
28638
- suggestion.description && /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
29392
+ suggestion.description && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
28639
29393
  Box_default,
28640
29394
  {
28641
29395
  width: descriptionColumnWidth,
28642
29396
  flexGrow: 1,
28643
29397
  flexShrink: 1,
28644
29398
  paddingLeft: 2,
28645
- children: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: normalizeDescription(suggestion.description) })
29399
+ children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: normalizeDescription(suggestion.description) })
28646
29400
  }
28647
29401
  ),
28648
- isActive && isLong && /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: Colors.Gray, children: isExpanded ? " \u2190 " : " \u2192 " }) })
29402
+ isActive && isLong && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: Colors.Gray, children: isExpanded ? " \u2190 " : " \u2192 " }) })
28649
29403
  ]
28650
29404
  },
28651
29405
  `${suggestion.value}-${originalIndex}`
28652
29406
  );
28653
29407
  }),
28654
- endIndex < filteredSuggestions.length && /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: "gray", children: "\u25BC" }),
28655
- filteredSuggestions.length > MAX_SUGGESTIONS_TO_SHOW && /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(Text, { color: "gray", children: [
29408
+ endIndex < filteredSuggestions.length && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: "gray", children: "\u25BC" }),
29409
+ filteredSuggestions.length > MAX_SUGGESTIONS_TO_SHOW && /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Text, { color: "gray", children: [
28656
29410
  "(",
28657
29411
  activeIndex + 1,
28658
29412
  "/",
28659
29413
  filteredSuggestions.length,
28660
29414
  ")"
28661
29415
  ] }),
28662
- /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: t("\u2191\u2193 navigate \xB7 tab complete \xB7 enter select \xB7 esc close") })
29416
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: t("\u2191\u2193 navigate \xB7 tab complete \xB7 enter select \xB7 esc close") })
28663
29417
  ]
28664
29418
  }
28665
29419
  );
@@ -31032,7 +31786,7 @@ function useTeamInProcess(config, actions) {
31032
31786
  __name(useTeamInProcess, "useTeamInProcess");
31033
31787
 
31034
31788
  // packages/cli/src/ui/contexts/AgentViewContext.tsx
31035
- var import_jsx_runtime114 = __toESM(require_jsx_runtime(), 1);
31789
+ var import_jsx_runtime115 = __toESM(require_jsx_runtime(), 1);
31036
31790
  var AgentViewStateContext = (0, import_react106.createContext)(null);
31037
31791
  var AgentViewActionsContext = (0, import_react106.createContext)(null);
31038
31792
  var DEFAULT_STATE2 = {
@@ -31290,8 +32044,8 @@ function AgentViewProvider({
31290
32044
  );
31291
32045
  useArenaInProcess(config ?? null, actions);
31292
32046
  useTeamInProcess(config ?? null, actions);
31293
- return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(AgentViewStateContext.Provider, { value: state, children: /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(AgentViewActionsContext.Provider, { value: actions, children: [
31294
- [...agents.keys()].map((agentId) => /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(AgentQueueFlusher, { agentId }, agentId)),
32047
+ return /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(AgentViewStateContext.Provider, { value: state, children: /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(AgentViewActionsContext.Provider, { value: actions, children: [
32048
+ [...agents.keys()].map((agentId) => /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(AgentQueueFlusher, { agentId }, agentId)),
31295
32049
  children
31296
32050
  ] }) });
31297
32051
  }
@@ -31336,7 +32090,7 @@ __name(getLiveAgentPanelLayoutKey, "getLiveAgentPanelLayoutKey");
31336
32090
 
31337
32091
  // packages/cli/src/ui/FeedbackDialog.tsx
31338
32092
  init_esbuild_shims();
31339
- var import_jsx_runtime115 = __toESM(require_jsx_runtime(), 1);
32093
+ var import_jsx_runtime116 = __toESM(require_jsx_runtime(), 1);
31340
32094
  var FEEDBACK_OPTIONS = {
31341
32095
  GOOD: 1,
31342
32096
  BAD: 2,
@@ -31369,39 +32123,39 @@ var FeedbackDialog = /* @__PURE__ */ __name(() => {
31369
32123
  },
31370
32124
  { isActive: uiState.isFeedbackDialogOpen }
31371
32125
  );
31372
- return /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(Box_default, { flexDirection: "column", marginY: 1, children: [
31373
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(Box_default, { children: [
31374
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(Text, { color: "cyan", children: ICON.CIRCLE_FILLED + " " }),
31375
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(Text, { bold: true, children: t("How is O1-Code doing this session? (optional)") })
32126
+ return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Box_default, { flexDirection: "column", marginY: 1, children: [
32127
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Box_default, { children: [
32128
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: "cyan", children: ICON.CIRCLE_FILLED + " " }),
32129
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { bold: true, children: t("How is O1-Code doing this session? (optional)") })
31376
32130
  ] }),
31377
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(Box_default, { marginTop: 1, children: [
31378
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(Text, { color: "cyan", children: [
32131
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Box_default, { marginTop: 1, children: [
32132
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { color: "cyan", children: [
31379
32133
  FEEDBACK_OPTION_KEYS[FEEDBACK_OPTIONS.GOOD],
31380
32134
  ":",
31381
32135
  " "
31382
32136
  ] }),
31383
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(Text, { children: t("Good") }),
31384
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(Text, { children: " " }),
31385
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(Text, { color: "cyan", children: [
32137
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: t("Good") }),
32138
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: " " }),
32139
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { color: "cyan", children: [
31386
32140
  FEEDBACK_OPTION_KEYS[FEEDBACK_OPTIONS.BAD],
31387
32141
  ": "
31388
32142
  ] }),
31389
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(Text, { children: t("Bad") }),
31390
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(Text, { children: " " }),
31391
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(Text, { color: "cyan", children: [
32143
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: t("Bad") }),
32144
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: " " }),
32145
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { color: "cyan", children: [
31392
32146
  FEEDBACK_OPTION_KEYS[FEEDBACK_OPTIONS.FINE],
31393
32147
  ":",
31394
32148
  " "
31395
32149
  ] }),
31396
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(Text, { children: t("Fine") }),
31397
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(Text, { children: " " }),
31398
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(Text, { color: "cyan", children: [
32150
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: t("Fine") }),
32151
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: " " }),
32152
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { color: "cyan", children: [
31399
32153
  FEEDBACK_OPTION_KEYS[FEEDBACK_OPTIONS.DISMISS],
31400
32154
  ":",
31401
32155
  " "
31402
32156
  ] }),
31403
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(Text, { children: t("Dismiss") }),
31404
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(Text, { children: " " })
32157
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: t("Dismiss") }),
32158
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: " " })
31405
32159
  ] })
31406
32160
  ] });
31407
32161
  }, "FeedbackDialog");
@@ -31524,7 +32278,7 @@ function TextInputMouseController({
31524
32278
  __name(TextInputMouseController, "TextInputMouseController");
31525
32279
 
31526
32280
  // packages/cli/src/ui/components/BaseTextInput.tsx
31527
- var import_jsx_runtime116 = __toESM(require_jsx_runtime(), 1);
32281
+ var import_jsx_runtime117 = __toESM(require_jsx_runtime(), 1);
31528
32282
  var INPUT_MAX_VISIBLE_LINES = 6;
31529
32283
  var LABEL_RESERVED_COLUMNS = 7;
31530
32284
  function defaultRenderLine({
@@ -31534,11 +32288,11 @@ function defaultRenderLine({
31534
32288
  showCursor
31535
32289
  }) {
31536
32290
  if (!isOnCursorLine || !showCursor || terminalShowsInputCursor()) {
31537
- return /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: lineText || " " });
32291
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { children: lineText || " " });
31538
32292
  }
31539
32293
  const len = cpLen(lineText);
31540
32294
  if (cursorCol >= len) {
31541
- return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { children: [
32295
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Text, { children: [
31542
32296
  lineText,
31543
32297
  renderSoftwareCursor(" ")
31544
32298
  ] });
@@ -31546,7 +32300,7 @@ function defaultRenderLine({
31546
32300
  const before = cpSlice(lineText, 0, cursorCol);
31547
32301
  const cursorChar = cpSlice(lineText, cursorCol, cursorCol + 1);
31548
32302
  const after = cpSlice(lineText, cursorCol + 1);
31549
- return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { children: [
32303
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Text, { children: [
31550
32304
  before,
31551
32305
  renderSoftwareCursor(cursorChar),
31552
32306
  after
@@ -31719,13 +32473,13 @@ var BaseTextInput = /* @__PURE__ */ __name(({
31719
32473
  });
31720
32474
  setCursorPosition(cursorPosition);
31721
32475
  const resolvedBorderColor = borderColor ?? theme.border.focused;
31722
- const resolvedPrefix = prefix ?? /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: theme.text.accent, children: "> " });
32476
+ const resolvedPrefix = prefix ?? /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: theme.text.accent, children: "> " });
31723
32477
  const columns = process.stdout.columns || 80;
31724
32478
  const labelBudget = columns - LABEL_RESERVED_COLUMNS;
31725
32479
  const renderedLabel = topRightLabel ? truncateToWidth(topRightLabel, labelBudget) : "";
31726
32480
  const frame = TOP_FRAME[glyphs().borderStyle];
31727
- return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Box_default, { ref: boxRef, flexDirection: "column", children: [
31728
- mouseEnabled && isActive && /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
32481
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Box_default, { ref: boxRef, flexDirection: "column", children: [
32482
+ mouseEnabled && isActive && /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
31729
32483
  TextInputMouseController,
31730
32484
  {
31731
32485
  linesRef,
@@ -31738,9 +32492,9 @@ var BaseTextInput = /* @__PURE__ */ __name(({
31738
32492
  // The rule starts from zero width and takes only what the label leaves:
31739
32493
  // sized from its content (the whole terminal width) it pushed the
31740
32494
  // label and the corner past the input's right edge.
31741
- /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Box_default, { children: [
31742
- /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: resolvedBorderColor, children: frame.topLeft }),
31743
- /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
32495
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Box_default, { children: [
32496
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: resolvedBorderColor, children: frame.topLeft }),
32497
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
31744
32498
  Box_default,
31745
32499
  {
31746
32500
  flexGrow: 1,
@@ -31748,12 +32502,12 @@ var BaseTextInput = /* @__PURE__ */ __name(({
31748
32502
  flexBasis: 0,
31749
32503
  height: 1,
31750
32504
  overflow: "hidden",
31751
- children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: resolvedBorderColor, children: frame.top.repeat(columns) })
32505
+ children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: resolvedBorderColor, children: frame.top.repeat(columns) })
31752
32506
  }
31753
32507
  ),
31754
- /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: resolvedBorderColor, children: ` ${renderedLabel} ${frame.top.repeat(2)}${frame.topRight}` }) })
32508
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: resolvedBorderColor, children: ` ${renderedLabel} ${frame.top.repeat(2)}${frame.topRight}` }) })
31755
32509
  ] }),
31756
- /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(
32510
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(
31757
32511
  Box_default,
31758
32512
  {
31759
32513
  borderStyle: glyphs().borderStyle,
@@ -31762,7 +32516,7 @@ var BaseTextInput = /* @__PURE__ */ __name(({
31762
32516
  paddingX: 1,
31763
32517
  children: [
31764
32518
  resolvedPrefix,
31765
- /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(
32519
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(
31766
32520
  Box_default,
31767
32521
  {
31768
32522
  flexGrow: 1,
@@ -31771,16 +32525,16 @@ var BaseTextInput = /* @__PURE__ */ __name(({
31771
32525
  minWidth: 0,
31772
32526
  flexDirection: "column",
31773
32527
  children: [
31774
- scrollVisualRow > 0 && /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: extendedTheme.text.muted, children: `${glyphs().up} ${t("{{count}} lines above", {
32528
+ scrollVisualRow > 0 && /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: extendedTheme.text.muted, children: `${glyphs().up} ${t("{{count}} lines above", {
31775
32529
  count: String(scrollVisualRow)
31776
32530
  })}` }),
31777
- /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Box_default, { flexGrow: 1, minWidth: 0, flexDirection: "column", ref: linesRef, children: buffer.text.length === 0 && placeholder ? showCursor && !terminalShowsInputCursor() ? /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { children: [
32531
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Box_default, { flexGrow: 1, minWidth: 0, flexDirection: "column", ref: linesRef, children: buffer.text.length === 0 && placeholder ? showCursor && !terminalShowsInputCursor() ? /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Text, { children: [
31778
32532
  renderSoftwareCursor(placeholder.slice(0, 1)),
31779
- /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: extendedTheme.text.placeholder, children: placeholder.slice(1) })
31780
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: extendedTheme.text.placeholder, children: placeholder }) : linesToRender.map((lineText, idx) => {
32533
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: extendedTheme.text.placeholder, children: placeholder.slice(1) })
32534
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: extendedTheme.text.placeholder, children: placeholder }) : linesToRender.map((lineText, idx) => {
31781
32535
  const absoluteVisualIndex = scrollVisualRow + idx;
31782
32536
  const isOnCursorLine = absoluteVisualIndex === cursorVisualRow;
31783
- return /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Box_default, { height: 1, children: renderLine({
32537
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Box_default, { height: 1, children: renderLine({
31784
32538
  lineText,
31785
32539
  isOnCursorLine,
31786
32540
  cursorCol: cursorVisualCol,
@@ -31791,7 +32545,7 @@ var BaseTextInput = /* @__PURE__ */ __name(({
31791
32545
  scrollVisualRow
31792
32546
  }) }, idx);
31793
32547
  }) }),
31794
- (buffer.allVisualLines?.length ?? 0) > 1 && /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Box_default, { justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: extendedTheme.text.muted, children: t("{{count}} lines \xB7 enter sends \xB7 shift+enter new line", {
32548
+ (buffer.allVisualLines?.length ?? 0) > 1 && /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Box_default, { justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: extendedTheme.text.muted, children: t("{{count}} lines \xB7 enter sends \xB7 shift+enter new line", {
31795
32549
  count: String(buffer.allVisualLines.length)
31796
32550
  }) }) })
31797
32551
  ]
@@ -31806,7 +32560,7 @@ var BaseTextInput = /* @__PURE__ */ __name(({
31806
32560
  // packages/cli/src/ui/components/SlashCommandMenu.tsx
31807
32561
  init_esbuild_shims();
31808
32562
  var import_react109 = __toESM(require_react(), 1);
31809
- var import_jsx_runtime117 = __toESM(require_jsx_runtime(), 1);
32563
+ var import_jsx_runtime118 = __toESM(require_jsx_runtime(), 1);
31810
32564
  var GROUPS = [
31811
32565
  {
31812
32566
  id: "sessions",
@@ -32202,7 +32956,7 @@ function SlashCommandMenu({
32202
32956
  );
32203
32957
  if (group || query) {
32204
32958
  const title = parent ? `/${parent.path}` : group?.label ?? t("Search");
32205
- return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Box_default, { marginX: 2, children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
32959
+ return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Box_default, { marginX: 2, children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
32206
32960
  SelectionDialog,
32207
32961
  {
32208
32962
  title: `${t("Commands")} \u203A ${title}`,
@@ -32238,7 +32992,7 @@ function SlashCommandMenu({
32238
32992
  ) });
32239
32993
  }
32240
32994
  const listRows = Math.max(1, height - 3);
32241
- return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(
32995
+ return /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(
32242
32996
  Box_default,
32243
32997
  {
32244
32998
  marginX: 2,
@@ -32250,7 +33004,7 @@ function SlashCommandMenu({
32250
33004
  flexDirection: "column",
32251
33005
  overflow: "hidden",
32252
33006
  children: [
32253
- /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Box_default, { height: listRows, overflow: "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
33007
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Box_default, { height: listRows, overflow: "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
32254
33008
  BaseSelectionList,
32255
33009
  {
32256
33010
  items: groups.map((group2) => ({
@@ -32269,17 +33023,17 @@ function SlashCommandMenu({
32269
33023
  setGroupId(id);
32270
33024
  setHighlighted(void 0);
32271
33025
  },
32272
- renderItem: (item, { titleColor, isSelected }) => /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Box_default, { width: "100%", children: [
32273
- /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Box_default, { width: "45%", children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { bold: isSelected, color: titleColor, wrap: "truncate-end", children: item.label }) }),
32274
- /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Box_default, { flexGrow: 1, minWidth: 0, children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: item.description }) })
33026
+ renderItem: (item, { titleColor, isSelected }) => /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(Box_default, { width: "100%", children: [
33027
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Box_default, { width: "45%", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Text, { bold: isSelected, color: titleColor, wrap: "truncate-end", children: item.label }) }),
33028
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Box_default, { flexGrow: 1, minWidth: 0, children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: item.description }) })
32275
33029
  ] })
32276
33030
  }
32277
33031
  ) }),
32278
- height >= 4 && /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Box_default, { height: 1, flexShrink: 0, children: [
32279
- /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Box_default, { flexGrow: 1, minWidth: 0, children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: t(
33032
+ height >= 4 && /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(Box_default, { height: 1, flexShrink: 0, children: [
33033
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Box_default, { flexGrow: 1, minWidth: 0, children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: t(
32280
33034
  "Type to search commands \xB7 \u2191\u2193 navigate \xB7 enter open \xB7 esc close"
32281
33035
  ) }) }),
32282
- /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Box_default, { marginLeft: 1, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Text, { color: extendedTheme.text.muted, children: [
33036
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Box_default, { marginLeft: 1, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(Text, { color: extendedTheme.text.muted, children: [
32283
33037
  Math.max(
32284
33038
  0,
32285
33039
  groups.findIndex((group2) => group2.id === highlightedGroup)
@@ -33379,7 +34133,7 @@ __name(refineVoiceTranscript, "refineVoiceTranscript");
33379
34133
 
33380
34134
  // packages/cli/src/ui/components/VoiceIndicator.tsx
33381
34135
  init_esbuild_shims();
33382
- var import_jsx_runtime118 = __toESM(require_jsx_runtime(), 1);
34136
+ var import_jsx_runtime119 = __toESM(require_jsx_runtime(), 1);
33383
34137
  var METER_WIDTH = 16;
33384
34138
  var LEVEL_GAIN = 12;
33385
34139
  function meter(level) {
@@ -33397,13 +34151,13 @@ function VoiceIndicator({
33397
34151
  if (status === "idle") {
33398
34152
  return null;
33399
34153
  }
33400
- return /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 1, children: [
33401
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Box_default, { children: status === "recording" ? /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(import_jsx_runtime118.Fragment, { children: [
33402
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Text, { color: "redBright", children: "\u25CF " }),
33403
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Text, { color: "cyan", children: meter(audioLevel) }),
33404
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Text, { color: "gray", children: " " + t("listening\u2026") })
33405
- ] }) : status === "refining" ? /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Text, { color: "yellow", children: "\u25C6 " + t("refining\u2026") }) : /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Text, { color: "yellow", children: "\u25C6 " + t("transcribing\u2026") }) }),
33406
- interimText ? /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Text, { dimColor: true, wrap: "truncate-end", children: escapeAnsiCtrlCodes(interimText) }) : null
34154
+ return /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 1, children: [
34155
+ /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Box_default, { children: status === "recording" ? /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(import_jsx_runtime119.Fragment, { children: [
34156
+ /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: "redBright", children: "\u25CF " }),
34157
+ /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: "cyan", children: meter(audioLevel) }),
34158
+ /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: "gray", children: " " + t("listening\u2026") })
34159
+ ] }) : status === "refining" ? /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: "yellow", children: "\u25C6 " + t("refining\u2026") }) : /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: "yellow", children: "\u25C6 " + t("transcribing\u2026") }) }),
34160
+ interimText ? /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { dimColor: true, wrap: "truncate-end", children: escapeAnsiCtrlCodes(interimText) }) : null
33407
34161
  ] });
33408
34162
  }
33409
34163
  __name(VoiceIndicator, "VoiceIndicator");
@@ -33411,7 +34165,7 @@ __name(VoiceIndicator, "VoiceIndicator");
33411
34165
  // packages/cli/src/ui/components/AttachmentPreparation.tsx
33412
34166
  init_esbuild_shims();
33413
34167
  var import_react111 = __toESM(require_react(), 1);
33414
- var import_jsx_runtime119 = __toESM(require_jsx_runtime(), 1);
34168
+ var import_jsx_runtime120 = __toESM(require_jsx_runtime(), 1);
33415
34169
  var frames = ["\u280B", "\u2819", "\u2839", "\u2838", "\u283C", "\u2834", "\u2826", "\u2827", "\u2807", "\u280F"];
33416
34170
  function AttachmentPreparation({
33417
34171
  state,
@@ -33429,13 +34183,13 @@ function AttachmentPreparation({
33429
34183
  }, [busy, startedAt]);
33430
34184
  if (!busy && state !== "error" && !notice) return null;
33431
34185
  const elapsed = Math.max(0, now - startedAt) / 1e3;
33432
- return /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(Box_default, { marginLeft: 2, marginRight: 2, flexDirection: "column", children: [
33433
- busy && /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(Text, { color: extendedTheme.ui.brandSoft, wrap: "truncate-end", children: [
34186
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Box_default, { marginLeft: 2, marginRight: 2, flexDirection: "column", children: [
34187
+ busy && /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Text, { color: extendedTheme.ui.brandSoft, wrap: "truncate-end", children: [
33434
34188
  frames[Math.floor(now / 100) % frames.length],
33435
34189
  " ",
33436
34190
  pasteBytes !== void 0 ? t("Pasting text\u2026 {{size}} KB", {
33437
34191
  size: String(Math.ceil(pasteBytes / 1024))
33438
- }) : /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(import_jsx_runtime119.Fragment, { children: [
34192
+ }) : /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(import_jsx_runtime120.Fragment, { children: [
33439
34193
  t(
33440
34194
  state === "reading" ? "Reading image\u2026" : "Preparing attachment\u2026"
33441
34195
  ),
@@ -33446,15 +34200,15 @@ function AttachmentPreparation({
33446
34200
  t("Esc to cancel")
33447
34201
  ] })
33448
34202
  ] }),
33449
- state === "error" && /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(Text, { color: theme.status.error, children: [
34203
+ state === "error" && /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Text, { color: theme.status.error, children: [
33450
34204
  "\u26A0",
33451
34205
  " ",
33452
34206
  t(
33453
34207
  "Could not prepare the attachment. Paste it again to retry; Esc to dismiss."
33454
34208
  )
33455
34209
  ] }),
33456
- notice === "wait" && /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: theme.status.warning, children: t("Wait for the attachment to finish preparing before sending.") }),
33457
- notice === "cancelled" && /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: theme.text.secondary, children: t("Attachment preparation cancelled. Your prompt was preserved.") })
34210
+ notice === "wait" && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: theme.status.warning, children: t("Wait for the attachment to finish preparing before sending.") }),
34211
+ notice === "cancelled" && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: theme.text.secondary, children: t("Attachment preparation cancelled. Your prompt was preserved.") })
33458
34212
  ] });
33459
34213
  }
33460
34214
  __name(AttachmentPreparation, "AttachmentPreparation");
@@ -33595,7 +34349,7 @@ function clearPromptStash(targetDir) {
33595
34349
  __name(clearPromptStash, "clearPromptStash");
33596
34350
 
33597
34351
  // packages/cli/src/ui/components/InputPrompt.tsx
33598
- var import_jsx_runtime120 = __toESM(require_jsx_runtime(), 1);
34352
+ var import_jsx_runtime121 = __toESM(require_jsx_runtime(), 1);
33599
34353
  var PASTED_IMAGE_EXTENSIONS = /\.(png|jpe?g|gif|webp|bmp)$/i;
33600
34354
  function classifyPastedImagePaths(pasted) {
33601
34355
  const tokens = pasted.split(/ (?=@?\/|@?[A-Za-z]:\\)/).flatMap((part) => part.split("\n")).map((token) => token.trim()).filter(Boolean);
@@ -34961,7 +35715,7 @@ ${currentText}`);
34961
35715
  }
34962
35716
  const color2 = seg.type === "command" || seg.type === "file" ? theme.text.accent : theme.text.primary;
34963
35717
  renderedLine.push(
34964
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: color2, children: display }, `token-${segIdx}`)
35718
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: color2, children: display }, `token-${segIdx}`)
34965
35719
  );
34966
35720
  });
34967
35721
  if (isOnCursorLine && cursorVisualColAbsolute === cpLen(lineText)) {
@@ -34969,34 +35723,34 @@ ${currentText}`);
34969
35723
  if (ghostText && showCursorOpt && ghostText.text.length > 0) {
34970
35724
  if (!drawCursor) {
34971
35725
  renderedLine.push(
34972
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: theme.text.secondary, children: ghostText.showCursorBeforeText ? ` ${ghostText.text}` : ghostText.text }, "ghost-rest")
35726
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.secondary, children: ghostText.showCursorBeforeText ? ` ${ghostText.text}` : ghostText.text }, "ghost-rest")
34973
35727
  );
34974
35728
  } else if (ghostText.showCursorBeforeText) {
34975
35729
  renderedLine.push(
34976
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { children: renderSoftwareCursor(" ") }, "ghost-cursor")
35730
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { children: renderSoftwareCursor(" ") }, "ghost-cursor")
34977
35731
  );
34978
35732
  renderedLine.push(
34979
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: theme.text.secondary, children: ghostText.text }, "ghost-rest")
35733
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.secondary, children: ghostText.text }, "ghost-rest")
34980
35734
  );
34981
35735
  } else {
34982
35736
  const firstChar = ghostText.text[0];
34983
35737
  const rest = ghostText.text.slice(firstChar.length);
34984
35738
  renderedLine.push(
34985
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { children: renderSoftwareCursor(firstChar) }, "ghost-cursor")
35739
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { children: renderSoftwareCursor(firstChar) }, "ghost-cursor")
34986
35740
  );
34987
35741
  if (rest.length > 0) {
34988
35742
  renderedLine.push(
34989
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: theme.text.secondary, children: rest }, "ghost-rest")
35743
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.secondary, children: rest }, "ghost-rest")
34990
35744
  );
34991
35745
  }
34992
35746
  }
34993
35747
  } else if (!terminalShowsInputCursor()) {
34994
35748
  renderedLine.push(
34995
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { children: showCursorOpt ? renderSoftwareCursor(" ") : " " }, `cursor-end-${cursorVisualColAbsolute}`)
35749
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { children: showCursorOpt ? renderSoftwareCursor(" ") : " " }, `cursor-end-${cursorVisualColAbsolute}`)
34996
35750
  );
34997
35751
  }
34998
35752
  }
34999
- return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { children: renderedLine });
35753
+ return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { children: renderedLine });
35000
35754
  },
35001
35755
  [slashCommands]
35002
35756
  );
@@ -35134,27 +35888,27 @@ ${currentText}`);
35134
35888
  }
35135
35889
  const borderColor = isShellFocused && !isEmbeddedShellFocused && !agentTabBarFocused ? shellModeActive ? statusColor ?? extendedTheme.ui.brand : extendedTheme.ui.brand : theme.border.default;
35136
35890
  const voiceStatusLabel = voiceInput.status === "recording" ? t("Voice: recording") : voiceInput.status === "transcribing" ? t("Voice: transcribing") : voiceInput.status === "refining" ? t("Voice: refining") : void 0;
35137
- const prefixNode = /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(
35891
+ const prefixNode = /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
35138
35892
  Text,
35139
35893
  {
35140
35894
  color: shellModeActive ? statusColor : extendedTheme.ui.brand,
35141
35895
  "aria-label": statusText || void 0,
35142
35896
  children: [
35143
- shellModeActive ? reverseSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Text, { color: theme.text.link, "aria-label": SCREEN_READER_USER_PREFIX, children: [
35897
+ shellModeActive ? reverseSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(Text, { color: theme.text.link, "aria-label": SCREEN_READER_USER_PREFIX, children: [
35144
35898
  "(r:)",
35145
35899
  " "
35146
- ] }) : "!" : commandSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: theme.text.accent, children: "(r:) " }) : glyphs().prompt,
35900
+ ] }) : "!" : commandSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.accent, children: "(r:) " }) : glyphs().prompt,
35147
35901
  " "
35148
35902
  ]
35149
35903
  }
35150
35904
  );
35151
- return /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(import_jsx_runtime120.Fragment, { children: [
35152
- attachments.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Box_default, { marginLeft: 2, flexDirection: "column", children: attachments.map((att, idx) => {
35905
+ return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(import_jsx_runtime121.Fragment, { children: [
35906
+ attachments.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Box_default, { marginLeft: 2, flexDirection: "column", children: attachments.map((att, idx) => {
35153
35907
  const selected = isAttachmentMode && idx === selectedAttachmentIndex;
35154
35908
  const label = t("Attachments: ");
35155
- return /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Box_default, { minWidth: 0, children: [
35156
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: extendedTheme.activity.read, children: idx === 0 ? label : " ".repeat(stringWidth(label)) }) }),
35157
- /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(
35909
+ return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(Box_default, { minWidth: 0, children: [
35910
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: extendedTheme.activity.read, children: idx === 0 ? label : " ".repeat(stringWidth(label)) }) }),
35911
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
35158
35912
  Text,
35159
35913
  {
35160
35914
  wrap: "truncate-end",
@@ -35172,7 +35926,7 @@ ${currentText}`);
35172
35926
  )
35173
35927
  ] }, att.id);
35174
35928
  }) }),
35175
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
35929
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
35176
35930
  AttachmentPreparation,
35177
35931
  {
35178
35932
  state: attachmentPreparation.state,
@@ -35181,7 +35935,7 @@ ${currentText}`);
35181
35935
  pasteBytes: pasteProgress?.active ? pasteProgress.receivedBytes : void 0
35182
35936
  }
35183
35937
  ),
35184
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
35938
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
35185
35939
  VoiceIndicator,
35186
35940
  {
35187
35941
  status: voiceInput.status,
@@ -35189,7 +35943,7 @@ ${currentText}`);
35189
35943
  audioLevel: voiceInput.audioLevel
35190
35944
  }
35191
35945
  ),
35192
- !slashMenuPanelOpen && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
35946
+ !slashMenuPanelOpen && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
35193
35947
  BaseTextInput,
35194
35948
  {
35195
35949
  buffer,
@@ -35209,7 +35963,7 @@ ${currentText}`);
35209
35963
  mouseEnabled: mouseInteractionsEnabled
35210
35964
  }
35211
35965
  ),
35212
- showSlashMenu && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
35966
+ showSlashMenu && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
35213
35967
  SlashCommandMenu,
35214
35968
  {
35215
35969
  query: buffer.text.slice(1),
@@ -35238,7 +35992,7 @@ ${currentText}`);
35238
35992
  }
35239
35993
  }
35240
35994
  ),
35241
- shouldShowSuggestions && !showSlashMenu && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Box_default, { marginLeft: 2, marginRight: 2, children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
35995
+ shouldShowSuggestions && !showSlashMenu && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Box_default, { marginLeft: 2, marginRight: 2, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
35242
35996
  SuggestionsDisplay,
35243
35997
  {
35244
35998
  suggestions: suggestionDisplayProps.suggestions,
@@ -35257,7 +36011,7 @@ ${currentText}`);
35257
36011
  onSelectCategory: suggestionsFromExport || commandSearchActive || reverseSearchActive ? void 0 : handleCategorySelect
35258
36012
  }
35259
36013
  ) }),
35260
- attachments.length > 0 && !shouldShowSuggestions && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Box_default, { marginLeft: 2, marginRight: 2, children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: theme.text.secondary, children: isAttachmentMode ? t("\u2190 \u2192 select, Delete to remove, \u2193 to exit") : t("\u2191 to manage attachments") }) })
36014
+ attachments.length > 0 && !shouldShowSuggestions && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Box_default, { marginLeft: 2, marginRight: 2, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.secondary, children: isAttachmentMode ? t("\u2190 \u2192 select, Delete to remove, \u2193 to exit") : t("\u2191 to manage attachments") }) })
35261
36015
  ] });
35262
36016
  }, "InputPrompt");
35263
36017
 
@@ -35267,10 +36021,10 @@ var import_react117 = __toESM(require_react(), 1);
35267
36021
 
35268
36022
  // packages/cli/src/ui/components/ShellModeIndicator.tsx
35269
36023
  init_esbuild_shims();
35270
- var import_jsx_runtime121 = __toESM(require_jsx_runtime(), 1);
35271
- var ShellModeIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(Text, { color: theme.ui.symbol, children: [
36024
+ var import_jsx_runtime122 = __toESM(require_jsx_runtime(), 1);
36025
+ var ShellModeIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(Text, { color: theme.ui.symbol, children: [
35272
36026
  "shell mode enabled",
35273
- /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.secondary, children: " (esc to disable)" })
36027
+ /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Text, { color: theme.text.secondary, children: " (esc to disable)" })
35274
36028
  ] }), "ShellModeIndicator");
35275
36029
 
35276
36030
  // packages/cli/src/ui/hooks/use-layout-tier.ts
@@ -35851,7 +36605,7 @@ function useConfigInitMessage(isConfigInitialized) {
35851
36605
  __name(useConfigInitMessage, "useConfigInitMessage");
35852
36606
 
35853
36607
  // packages/cli/src/ui/components/Footer.tsx
35854
- var import_jsx_runtime122 = __toESM(require_jsx_runtime(), 1);
36608
+ var import_jsx_runtime123 = __toESM(require_jsx_runtime(), 1);
35855
36609
  function readReasoning(config) {
35856
36610
  const generationConfig = config.getContentGeneratorConfig();
35857
36611
  if (!generationConfig) return void 0;
@@ -35917,23 +36671,23 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
35917
36671
  const worktreeBranch = settings.merged.ui?.hideBuiltinWorktreeIndicator ? void 0 : uiState.activeWorktree?.branch;
35918
36672
  const branch = worktreeBranch ?? uiState.branchName;
35919
36673
  const model = generationConfig ? config.getModelDisplayName().replace(/^\[[^\]]+\]\s*/, "") : "\u2014";
35920
- const transientNotice = uiState.ctrlCPressedOnce ? /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Text, { color: theme.status.warning, children: t("Press Ctrl+C again to exit.") }) : uiState.ctrlDPressedOnce ? /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Text, { color: theme.status.warning, children: t("Press Ctrl+D again to exit.") }) : uiState.showEscapePrompt ? /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Text, { color: theme.text.secondary, children: t("Press Esc again to clear.") }) : uiState.rewindEscPending ? /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Text, { color: theme.text.secondary, children: t("Press Esc again to rewind conversation.") }) : null;
35921
- const lastingState = vimEnabled && vimMode === "INSERT" ? /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Text, { color: theme.text.secondary, children: "-- INSERT --" }) : vimEnabled && vimMode === "NORMAL" ? /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Text, { color: theme.text.secondary, children: "-- NORMAL --" }) : uiState.shellModeActive ? /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(ShellModeIndicator, {}) : configInitMessage ? /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(Text, { color: theme.text.secondary, children: [
35922
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Spinner, {}),
36674
+ const transientNotice = uiState.ctrlCPressedOnce ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.status.warning, children: t("Press Ctrl+C again to exit.") }) : uiState.ctrlDPressedOnce ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.status.warning, children: t("Press Ctrl+D again to exit.") }) : uiState.showEscapePrompt ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.text.secondary, children: t("Press Esc again to clear.") }) : uiState.rewindEscPending ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.text.secondary, children: t("Press Esc again to rewind conversation.") }) : null;
36675
+ const lastingState = vimEnabled && vimMode === "INSERT" ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.text.secondary, children: "-- INSERT --" }) : vimEnabled && vimMode === "NORMAL" ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.text.secondary, children: "-- NORMAL --" }) : uiState.shellModeActive ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(ShellModeIndicator, {}) : configInitMessage ? /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(Text, { color: theme.text.secondary, children: [
36676
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Spinner, {}),
35923
36677
  " ",
35924
36678
  configInitMessage
35925
- ] }) : uiState.startupIdeConnectionStatus.state === "connecting" ? /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(Text, { color: theme.text.secondary, children: [
35926
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Spinner, {}),
36679
+ ] }) : uiState.startupIdeConnectionStatus.state === "connecting" ? /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(Text, { color: theme.text.secondary, children: [
36680
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Spinner, {}),
35927
36681
  " ",
35928
36682
  t("IDE connecting... context may be unavailable")
35929
- ] }) : uiState.startupIdeConnectionStatus.state === "failed" ? /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Text, { color: theme.status.warning, children: t("IDE connection unavailable: {{message}}", {
36683
+ ] }) : uiState.startupIdeConnectionStatus.state === "failed" ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.status.warning, children: t("IDE connection unavailable: {{message}}", {
35930
36684
  message: uiState.startupIdeConnectionStatus.message
35931
36685
  }) }) : null;
35932
36686
  const showStatusLine = statusLineLines.length > 0 && !uiState.ctrlCPressedOnce && !uiState.ctrlDPressedOnce;
35933
36687
  if (transientNotice) {
35934
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Box_default, { ref: containerRef, width: "100%", paddingX: sideMargin(tier), children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Text, { wrap: "truncate", children: transientNotice }) });
36688
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Box_default, { ref: containerRef, width: "100%", paddingX: sideMargin(tier), children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { wrap: "truncate", children: transientNotice }) });
35935
36689
  }
35936
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(
36690
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
35937
36691
  Box_default,
35938
36692
  {
35939
36693
  ref: containerRef,
@@ -35941,7 +36695,7 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
35941
36695
  paddingX: sideMargin(tier),
35942
36696
  justifyContent: "space-between",
35943
36697
  children: [
35944
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Box_default, { flexShrink: showStatusLine ? 0 : 1, minWidth: 0, children: lastingState ? /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Text, { wrap: "truncate", children: lastingState }) : /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
36698
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Box_default, { flexShrink: showStatusLine ? 0 : 1, minWidth: 0, children: lastingState ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { wrap: "truncate", children: lastingState }) : /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
35945
36699
  ModeZone,
35946
36700
  {
35947
36701
  tier,
@@ -35953,10 +36707,10 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
35953
36707
  summaryMode: displayMode === "summary"
35954
36708
  }
35955
36709
  ) }),
35956
- atLeast(tier, "medium") && /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Box_default, { flexShrink: 1, minWidth: 0, marginX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(GitZone, { branch, diff }) }),
36710
+ atLeast(tier, "medium") && /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Box_default, { flexShrink: 1, minWidth: 0, marginX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(GitZone, { branch, diff }) }),
35957
36711
  showStatusLine ? (
35958
36712
  // A custom status line replaces the usage zone and takes the room left.
35959
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
36713
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
35960
36714
  Box_default,
35961
36715
  {
35962
36716
  ref: statusLineRef,
@@ -35967,7 +36721,7 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
35967
36721
  alignItems: "flex-end",
35968
36722
  maxHeight: MAX_STATUS_LINES,
35969
36723
  overflow: "hidden",
35970
- children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
36724
+ children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
35971
36725
  Text,
35972
36726
  {
35973
36727
  color: respectUserColors ? void 0 : useThemeColors ? theme.text.accent : void 0,
@@ -35978,7 +36732,7 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
35978
36732
  )
35979
36733
  }
35980
36734
  )
35981
- ) : /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
36735
+ ) : /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
35982
36736
  UsageZone,
35983
36737
  {
35984
36738
  tier,
@@ -36030,7 +36784,7 @@ __name(getActiveSkill, "getActiveSkill");
36030
36784
  // packages/cli/src/ui/components/background-view/BackgroundTasksPill.tsx
36031
36785
  init_esbuild_shims();
36032
36786
  var import_react118 = __toESM(require_react(), 1);
36033
- var import_jsx_runtime123 = __toESM(require_jsx_runtime(), 1);
36787
+ var import_jsx_runtime124 = __toESM(require_jsx_runtime(), 1);
36034
36788
  var KIND_NAMES = {
36035
36789
  agent: { singular: "local agent", plural: "local agents" },
36036
36790
  shell: { singular: "shell", plural: "shells" },
@@ -36111,21 +36865,21 @@ var BackgroundTasksPill = /* @__PURE__ */ __name(() => {
36111
36865
  );
36112
36866
  const needsApproval = hasPendingApproval(entries);
36113
36867
  const largeWorkflow = hasLargeWorkflow(entries);
36114
- return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_jsx_runtime123.Fragment, { children: [
36115
- label && /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_jsx_runtime123.Fragment, { children: [
36116
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: " \xB7 " }),
36117
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { inverse: pillFocused && monitoring === 0, wrap: "truncate", children: label })
36868
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
36869
+ label && /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
36870
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: " \xB7 " }),
36871
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { inverse: pillFocused && monitoring === 0, wrap: "truncate", children: label })
36118
36872
  ] }),
36119
- pillFocused && /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: ` ${t("enter open \xB7 \u2191 history \xB7 esc back")}` }),
36120
- needsApproval && /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.status.warning, wrap: "truncate", children: ` \u26A0 ${t("needs approval")}` }),
36121
- largeWorkflow && /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.status.warning, wrap: "truncate", children: ` \u26A0 ${t("Large workflow")}` })
36873
+ pillFocused && /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: ` ${t("enter open \xB7 \u2191 history \xB7 esc back")}` }),
36874
+ needsApproval && /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: theme.status.warning, wrap: "truncate", children: ` \u26A0 ${t("needs approval")}` }),
36875
+ largeWorkflow && /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: theme.status.warning, wrap: "truncate", children: ` \u26A0 ${t("Large workflow")}` })
36122
36876
  ] });
36123
36877
  }, "BackgroundTasksPill");
36124
36878
 
36125
36879
  // packages/cli/src/ui/components/GoalPill.tsx
36126
36880
  init_esbuild_shims();
36127
36881
  var import_react119 = __toESM(require_react(), 1);
36128
- var import_jsx_runtime124 = __toESM(require_jsx_runtime(), 1);
36882
+ var import_jsx_runtime125 = __toESM(require_jsx_runtime(), 1);
36129
36883
  var ELAPSED_REFRESH_MS = 1e3;
36130
36884
  function formatSpend(goal) {
36131
36885
  if (goal.tokensUsed <= 0) return "";
@@ -36229,19 +36983,19 @@ var GoalPill = /* @__PURE__ */ __name(({ snapshot }) => {
36229
36983
  const spend = formatSpend(goal);
36230
36984
  const detail = [elapsed, spend].filter(Boolean).join(" \xB7 ");
36231
36985
  const suffix = detail ? ` (${detail})` : "";
36232
- return /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(Text, { color: visible.color, children: [
36986
+ return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(Text, { color: visible.color, children: [
36233
36987
  visible.icon,
36234
36988
  " /goal ",
36235
36989
  visible.label,
36236
36990
  suffix,
36237
- goal.status === "blocked" && /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: extendedTheme.text.muted, children: " \xB7 /goal clear" })
36991
+ goal.status === "blocked" && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Text, { color: extendedTheme.text.muted, children: " \xB7 /goal clear" })
36238
36992
  ] });
36239
36993
  }, "GoalPill");
36240
36994
 
36241
36995
  // packages/cli/src/ui/components/CronPill.tsx
36242
36996
  init_esbuild_shims();
36243
36997
  var import_react120 = __toESM(require_react(), 1);
36244
- var import_jsx_runtime125 = __toESM(require_jsx_runtime(), 1);
36998
+ var import_jsx_runtime126 = __toESM(require_jsx_runtime(), 1);
36245
36999
  var POLL_INTERVAL_MS = 1e3;
36246
37000
  function getScheduledTaskCount(config) {
36247
37001
  if (!config?.isCronEnabled?.()) return 0;
@@ -36266,7 +37020,7 @@ __name(useFooterCronTaskCount, "useFooterCronTaskCount");
36266
37020
  var CronPill = /* @__PURE__ */ __name(({ count }) => {
36267
37021
  if (count <= 0) return null;
36268
37022
  const noun = count === 1 ? "scheduled task" : "scheduled tasks";
36269
- return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(Text, { color: theme.text.accent, children: [
37023
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(Text, { color: theme.text.accent, children: [
36270
37024
  ICON.BULLSEYE,
36271
37025
  " ",
36272
37026
  count,
@@ -36276,7 +37030,7 @@ var CronPill = /* @__PURE__ */ __name(({ count }) => {
36276
37030
  }, "CronPill");
36277
37031
 
36278
37032
  // packages/cli/src/ui/components/ActivityLine.tsx
36279
- var import_jsx_runtime126 = __toESM(require_jsx_runtime(), 1);
37033
+ var import_jsx_runtime127 = __toESM(require_jsx_runtime(), 1);
36280
37034
  function remoteFooterSnapshot(status) {
36281
37035
  if (!status) return null;
36282
37036
  if (status.active) return status.snapshot;
@@ -36295,19 +37049,19 @@ function planProgress(todos) {
36295
37049
  __name(planProgress, "planProgress");
36296
37050
  var ActivityChips = /* @__PURE__ */ __name(({ tier, active, monitoring = 0, monitoringFocused = false }) => {
36297
37051
  const wide = atLeast(tier, "compact");
36298
- return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(Text, { wrap: "truncate", children: [
37052
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Text, { wrap: "truncate", children: [
36299
37053
  CATEGORIES.map(([category, label], i) => {
36300
37054
  const on = category === active;
36301
- return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(Text, { children: [
37055
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Text, { children: [
36302
37056
  i > 0 && (wide ? " " : " "),
36303
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
37057
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
36304
37058
  Text,
36305
37059
  {
36306
37060
  color: on ? extendedTheme.activity[category] : extendedTheme.ui.separator,
36307
37061
  children: glyphs().dot
36308
37062
  }
36309
37063
  ),
36310
- (on || wide) && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
37064
+ (on || wide) && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
36311
37065
  Text,
36312
37066
  {
36313
37067
  color: on ? theme.text.primary : extendedTheme.text.muted,
@@ -36317,10 +37071,10 @@ var ActivityChips = /* @__PURE__ */ __name(({ tier, active, monitoring = 0, moni
36317
37071
  )
36318
37072
  ] }, category);
36319
37073
  }),
36320
- monitoring > 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(Text, { children: [
37074
+ monitoring > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Text, { children: [
36321
37075
  wide ? " " : " ",
36322
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Text, { color: extendedTheme.ui.brandSoft, children: glyphs().dot }),
36323
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
37076
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: extendedTheme.ui.brandSoft, children: glyphs().dot }),
37077
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
36324
37078
  Text,
36325
37079
  {
36326
37080
  color: extendedTheme.ui.brandSoft,
@@ -36332,7 +37086,7 @@ var ActivityChips = /* @__PURE__ */ __name(({ tier, active, monitoring = 0, moni
36332
37086
  ] })
36333
37087
  ] });
36334
37088
  }, "ActivityChips");
36335
- var Sep2 = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Text, { color: extendedTheme.ui.separator, children: " \xB7 " }), "Sep");
37089
+ var Sep2 = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: extendedTheme.ui.separator, children: " \xB7 " }), "Sep");
36336
37090
  var ActivityLine = /* @__PURE__ */ __name(() => {
36337
37091
  const uiState = useUIState();
36338
37092
  const remoteSnapshot = remoteFooterSnapshot(uiState.remoteStatus);
@@ -36353,14 +37107,14 @@ var ActivityLine = /* @__PURE__ */ __name(() => {
36353
37107
  uiState.turnStartHistoryIndex
36354
37108
  ) : null;
36355
37109
  const reviewCount = uiState.isSkillReviewDialogOpen ? 0 : uiState.skillReviewPending?.skills.length ?? 0;
36356
- return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(
37110
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
36357
37111
  Box_default,
36358
37112
  {
36359
37113
  width: "100%",
36360
37114
  paddingX: sideMargin(tier),
36361
37115
  justifyContent: "space-between",
36362
37116
  children: [
36363
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Box_default, { flexShrink: 1, minWidth: 0, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
37117
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Box_default, { flexShrink: 1, minWidth: 0, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
36364
37118
  ActivityChips,
36365
37119
  {
36366
37120
  tier,
@@ -36369,38 +37123,38 @@ var ActivityLine = /* @__PURE__ */ __name(() => {
36369
37123
  monitoringFocused: pillFocused && monitoring > 0
36370
37124
  }
36371
37125
  ) }),
36372
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Box_default, { flexShrink: 1, minWidth: 0, marginLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(Text, { color: extendedTheme.text.muted, wrap: "truncate", children: [
36373
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(BackgroundTasksPill, {}),
36374
- plan && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_jsx_runtime126.Fragment, { children: [
36375
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Sep2, {}),
37126
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Box_default, { flexShrink: 1, minWidth: 0, marginLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Text, { color: extendedTheme.text.muted, wrap: "truncate", children: [
37127
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(BackgroundTasksPill, {}),
37128
+ plan && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
37129
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
36376
37130
  `${t("plan")} `,
36377
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Text, { color: theme.text.primary, bold: true, children: `${plan.done}/${plan.total}` })
37131
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.primary, bold: true, children: `${plan.done}/${plan.total}` })
36378
37132
  ] }),
36379
- skill && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_jsx_runtime126.Fragment, { children: [
36380
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Sep2, {}),
36381
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Text, { color: extendedTheme.ui.brandSoft, bold: true, children: `${glyphs().dot} ${skill}` })
37133
+ skill && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
37134
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
37135
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: extendedTheme.ui.brandSoft, bold: true, children: `${glyphs().dot} ${skill}` })
36382
37136
  ] }),
36383
- isLiveGoalSnapshot(goal) && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_jsx_runtime126.Fragment, { children: [
36384
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Sep2, {}),
36385
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(GoalPill, { snapshot: goal })
37137
+ isLiveGoalSnapshot(goal) && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
37138
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
37139
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(GoalPill, { snapshot: goal })
36386
37140
  ] }),
36387
- cronCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_jsx_runtime126.Fragment, { children: [
36388
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Sep2, {}),
36389
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(CronPill, { count: cronCount })
37141
+ cronCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
37142
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
37143
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(CronPill, { count: cronCount })
36390
37144
  ] }),
36391
- reviewCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_jsx_runtime126.Fragment, { children: [
36392
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Sep2, {}),
36393
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Text, { color: theme.status.warning, children: t("{{count}} skill(s) pending review", {
37145
+ reviewCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
37146
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
37147
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.status.warning, children: t("{{count}} skill(s) pending review", {
36394
37148
  count: String(reviewCount)
36395
37149
  }) })
36396
37150
  ] }),
36397
- uiState.workflowKeywordActive && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_jsx_runtime126.Fragment, { children: [
36398
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Sep2, {}),
36399
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Text, { color: theme.text.accent, children: t("workflow active") })
37151
+ uiState.workflowKeywordActive && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
37152
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
37153
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.accent, children: t("workflow active") })
36400
37154
  ] }),
36401
- remoteSnapshot && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_jsx_runtime126.Fragment, { children: [
36402
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Sep2, {}),
36403
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
37155
+ remoteSnapshot && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
37156
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
37157
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
36404
37158
  Text,
36405
37159
  {
36406
37160
  color: remoteSnapshot.state === "online" ? extendedTheme.ui.brandSoft : theme.status.warning,
@@ -36416,7 +37170,7 @@ var ActivityLine = /* @__PURE__ */ __name(() => {
36416
37170
 
36417
37171
  // packages/cli/src/ui/components/KeyboardShortcuts.tsx
36418
37172
  init_esbuild_shims();
36419
- var import_jsx_runtime127 = __toESM(require_jsx_runtime(), 1);
37173
+ var import_jsx_runtime128 = __toESM(require_jsx_runtime(), 1);
36420
37174
  var getNewlineKey = /* @__PURE__ */ __name(() => process.platform === "win32" ? "ctrl+enter" : "ctrl+j", "getNewlineKey");
36421
37175
  var getPasteKey = /* @__PURE__ */ __name(() => {
36422
37176
  if (process.platform === "win32") return "alt+v";
@@ -36442,8 +37196,8 @@ var getShortcuts = /* @__PURE__ */ __name(() => [
36442
37196
  { key: getPasteKey(), description: t("to paste images") },
36443
37197
  { key: getExternalEditorKey(), description: t("for external editor") }
36444
37198
  ], "getShortcuts");
36445
- var ShortcutItem = /* @__PURE__ */ __name(({ shortcut }) => /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Text, { color: theme.text.secondary, children: [
36446
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.accent, children: shortcut.key }),
37199
+ var ShortcutItem = /* @__PURE__ */ __name(({ shortcut }) => /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(Text, { color: theme.text.secondary, children: [
37200
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Text, { color: theme.text.accent, children: shortcut.key }),
36447
37201
  " ",
36448
37202
  shortcut.description
36449
37203
  ] }), "ShortcutItem");
@@ -36484,18 +37238,18 @@ var KeyboardShortcuts = /* @__PURE__ */ __name(() => {
36484
37238
  columns.push(shortcuts.slice(startIndex, startIndex + count));
36485
37239
  startIndex += count;
36486
37240
  }
36487
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
37241
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
36488
37242
  Box_default,
36489
37243
  {
36490
37244
  flexDirection: "row",
36491
37245
  marginLeft: MARGIN_LEFT,
36492
37246
  marginRight: MARGIN_RIGHT,
36493
- children: columns.map((column, colIndex) => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
37247
+ children: columns.map((column, colIndex) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
36494
37248
  Box_default,
36495
37249
  {
36496
37250
  flexDirection: "column",
36497
37251
  marginRight: colIndex < numColumns - 1 ? COLUMN_GAP : 0,
36498
- children: column.map((shortcut) => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(ShortcutItem, { shortcut }, shortcut.key))
37252
+ children: column.map((shortcut) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(ShortcutItem, { shortcut }, shortcut.key))
36499
37253
  },
36500
37254
  colIndex
36501
37255
  ))
@@ -36504,7 +37258,7 @@ var KeyboardShortcuts = /* @__PURE__ */ __name(() => {
36504
37258
  }, "KeyboardShortcuts");
36505
37259
 
36506
37260
  // packages/cli/src/ui/components/Composer.tsx
36507
- var import_jsx_runtime128 = __toESM(require_jsx_runtime(), 1);
37261
+ var import_jsx_runtime129 = __toESM(require_jsx_runtime(), 1);
36508
37262
  var Composer = /* @__PURE__ */ __name(({ footerRef, inputLinesRef }) => {
36509
37263
  const config = useConfig();
36510
37264
  const isScreenReaderEnabled = use_is_screen_reader_enabled_default();
@@ -36533,8 +37287,8 @@ var Composer = /* @__PURE__ */ __name(({ footerRef, inputLinesRef }) => {
36533
37287
  },
36534
37288
  [uiActions]
36535
37289
  );
36536
- return /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
36537
- !uiState.useTerminalBuffer && !uiState.embeddedShellFocused && !suppressBottomLoadingIndicator && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
37290
+ return /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
37291
+ !uiState.useTerminalBuffer && !uiState.embeddedShellFocused && !suppressBottomLoadingIndicator && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
36538
37292
  LiveLoadingIndicator,
36539
37293
  {
36540
37294
  currentLoadingPhrase: config.getAccessibility()?.enableLoadingPhrases === false ? void 0 : uiState.currentLoadingPhrase,
@@ -36548,22 +37302,22 @@ var Composer = /* @__PURE__ */ __name(({ footerRef, inputLinesRef }) => {
36548
37302
  isReceivingContent
36549
37303
  }
36550
37304
  ),
36551
- !uiState.useTerminalBuffer && !uiState.embeddedShellFocused && suppressBottomLoadingIndicator && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(Text, { color: theme.text.secondary, children: [
37305
+ !uiState.useTerminalBuffer && !uiState.embeddedShellFocused && suppressBottomLoadingIndicator && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(Text, { color: theme.text.secondary, children: [
36552
37306
  "(",
36553
37307
  t("Esc to cancel"),
36554
37308
  ")"
36555
37309
  ] }) }),
36556
- !uiState.useTerminalBuffer && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
37310
+ !uiState.useTerminalBuffer && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
36557
37311
  Box_default,
36558
37312
  {
36559
37313
  marginTop: uiState.messageQueue.length > 0 ? 1 : 0,
36560
37314
  paddingLeft: 2,
36561
- children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(QueuedMessageDisplay, { messageQueue: uiState.messageQueue })
37315
+ children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(QueuedMessageDisplay, { messageQueue: uiState.messageQueue })
36562
37316
  }
36563
37317
  ),
36564
- uiState.isFeedbackDialogOpen && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(FeedbackDialog, {}),
36565
- uiState.isInputActive && !showSuggestions && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(ActivityLine, {}),
36566
- uiState.isInputActive && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
37318
+ uiState.isFeedbackDialogOpen && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(FeedbackDialog, {}),
37319
+ uiState.isInputActive && !showSuggestions && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(ActivityLine, {}),
37320
+ uiState.isInputActive && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
36567
37321
  InputPrompt,
36568
37322
  {
36569
37323
  buffer: uiState.buffer,
@@ -36595,18 +37349,18 @@ var Composer = /* @__PURE__ */ __name(({ footerRef, inputLinesRef }) => {
36595
37349
  voiceMicWarnedStatusRef: uiState.voiceMicWarnedStatusRef
36596
37350
  }
36597
37351
  ),
36598
- (uiState.isInputActive || !uiState.isConfigInitialized) && !showSuggestions && (showShortcuts ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(KeyboardShortcuts, {}) : !isScreenReaderEnabled && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Footer, { containerRef: footerRef }))
37352
+ (uiState.isInputActive || !uiState.isConfigInitialized) && !showSuggestions && (showShortcuts ? /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(KeyboardShortcuts, {}) : !isScreenReaderEnabled && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Footer, { containerRef: footerRef }))
36599
37353
  ] });
36600
37354
  }, "Composer");
36601
37355
 
36602
37356
  // packages/cli/src/ui/components/ExitWarning.tsx
36603
37357
  init_esbuild_shims();
36604
- var import_jsx_runtime129 = __toESM(require_jsx_runtime(), 1);
37358
+ var import_jsx_runtime130 = __toESM(require_jsx_runtime(), 1);
36605
37359
  var ExitWarning = /* @__PURE__ */ __name(() => {
36606
37360
  const uiState = useUIState();
36607
- return /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(import_jsx_runtime129.Fragment, { children: [
36608
- uiState.dialogsVisible && uiState.ctrlCPressedOnce && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Text, { color: theme.status.warning, children: "Press Ctrl+C again to exit." }) }),
36609
- uiState.dialogsVisible && uiState.ctrlDPressedOnce && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Text, { color: theme.status.warning, children: "Press Ctrl+D again to exit." }) })
37361
+ return /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_jsx_runtime130.Fragment, { children: [
37362
+ uiState.dialogsVisible && uiState.ctrlCPressedOnce && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Text, { color: theme.status.warning, children: "Press Ctrl+C again to exit." }) }),
37363
+ uiState.dialogsVisible && uiState.ctrlDPressedOnce && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Text, { color: theme.status.warning, children: "Press Ctrl+D again to exit." }) })
36610
37364
  ] });
36611
37365
  }, "ExitWarning");
36612
37366
 
@@ -36784,7 +37538,7 @@ function getStickyTodoMaxVisibleItemsForMode(terminalHeight, useTerminalBuffer)
36784
37538
  __name(getStickyTodoMaxVisibleItemsForMode, "getStickyTodoMaxVisibleItemsForMode");
36785
37539
 
36786
37540
  // packages/cli/src/ui/components/StickyTodoList.tsx
36787
- var import_jsx_runtime130 = __toESM(require_jsx_runtime(), 1);
37541
+ var import_jsx_runtime131 = __toESM(require_jsx_runtime(), 1);
36788
37542
  var STATUS_ICONS = {
36789
37543
  pending: ICON.CIRCLE_EMPTY,
36790
37544
  in_progress: ICON.CIRCLE_LEFT_HALF,
@@ -36827,7 +37581,7 @@ var StickyTodoListComponent = /* @__PURE__ */ __name(({
36827
37581
  )
36828
37582
  ) + 1;
36829
37583
  const contentColumnWidth = Math.max(1, width - numberColumnWidth - 6);
36830
- return /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(
37584
+ return /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(
36831
37585
  Box_default,
36832
37586
  {
36833
37587
  marginX: 2,
@@ -36837,14 +37591,14 @@ var StickyTodoListComponent = /* @__PURE__ */ __name(({
36837
37591
  borderColor: theme.border.default,
36838
37592
  paddingX: 1,
36839
37593
  children: [
36840
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Text, { color: theme.text.secondary, bold: true, children: t("Current tasks") }),
37594
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Text, { color: theme.text.secondary, bold: true, children: t("Current tasks") }),
36841
37595
  visibleTodos.map((todo, index) => {
36842
37596
  const todoNumber = todoNumberById.get(todo.id) ?? `${index + 1}.`;
36843
37597
  const itemColor = todo.status === "in_progress" ? Colors.AccentGreen : Colors.Foreground;
36844
- return /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(Box_default, { flexDirection: "row", height: 1, children: [
36845
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Box_default, { width: numberColumnWidth, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Text, { color: theme.text.secondary, children: todoNumber }) }),
36846
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Box_default, { width: 2, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Text, { color: itemColor, children: STATUS_ICONS[todo.status] }) }),
36847
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Box_default, { width: contentColumnWidth, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
37598
+ return /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(Box_default, { flexDirection: "row", height: 1, children: [
37599
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: numberColumnWidth, children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Text, { color: theme.text.secondary, children: todoNumber }) }),
37600
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: 2, children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Text, { color: itemColor, children: STATUS_ICONS[todo.status] }) }),
37601
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: contentColumnWidth, children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
36848
37602
  Text,
36849
37603
  {
36850
37604
  color: itemColor,
@@ -36855,10 +37609,10 @@ var StickyTodoListComponent = /* @__PURE__ */ __name(({
36855
37609
  ) })
36856
37610
  ] }, todo.id);
36857
37611
  }),
36858
- hiddenTodoCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(Box_default, { flexDirection: "row", height: 1, children: [
36859
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Box_default, { width: numberColumnWidth }),
36860
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Box_default, { width: 2 }),
36861
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Box_default, { width: contentColumnWidth, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: t("... and {{count}} more", {
37612
+ hiddenTodoCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(Box_default, { flexDirection: "row", height: 1, children: [
37613
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: numberColumnWidth }),
37614
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: 2 }),
37615
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: contentColumnWidth, children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: t("... and {{count}} more", {
36862
37616
  count: String(hiddenTodoCount)
36863
37617
  }) }) })
36864
37618
  ] })
@@ -36872,9 +37626,11 @@ var StickyTodoList = (0, import_react122.memo)(
36872
37626
  );
36873
37627
 
36874
37628
  // packages/cli/src/ui/layouts/ScreenReaderAppLayout.tsx
36875
- var import_jsx_runtime131 = __toESM(require_jsx_runtime(), 1);
37629
+ var import_jsx_runtime132 = __toESM(require_jsx_runtime(), 1);
36876
37630
  var ScreenReaderAppLayout = /* @__PURE__ */ __name(() => {
36877
37631
  const uiState = useUIState();
37632
+ const { dialogOpen: backgroundDialogOpen } = useBackgroundTaskViewState();
37633
+ const backgroundMargin = sideMargin(getLayoutTier(uiState.terminalWidth));
36878
37634
  const stickyTodoWidth = Math.min(uiState.mainAreaWidth, 64);
36879
37635
  const stickyTodoMaxVisibleItems = getStickyTodoMaxVisibleItemsForMode(
36880
37636
  uiState.terminalHeight,
@@ -36886,47 +37642,55 @@ var ScreenReaderAppLayout = /* @__PURE__ */ __name(() => {
36886
37642
  );
36887
37643
  const dialogHeight = uiState.constrainHeight ? dialogMaxHeight : void 0;
36888
37644
  const shouldShowStickyTodos = uiState.stickyTodos !== null && !uiState.dialogsVisible && !uiState.isFeedbackDialogOpen && uiState.streamingState === "responding" /* Responding */;
36889
- return /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(Box_default, { flexDirection: "column", width: "90%", height: "100%", children: [
36890
- !uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(UpdateNotification, { message: uiState.updateInfo.message }),
36891
- /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Notifications, {}),
36892
- /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Footer, {}),
36893
- /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { flexGrow: 1, overflow: "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(MainContent, {}) }),
36894
- uiState.dialogsVisible ? /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
36895
- Box_default,
36896
- {
36897
- marginX: 2,
36898
- flexDirection: "column",
36899
- width: uiState.mainAreaWidth,
36900
- height: dialogHeight,
36901
- overflow: uiState.constrainHeight ? "hidden" : void 0,
36902
- children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
36903
- DialogManager,
37645
+ return /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(
37646
+ Box_default,
37647
+ {
37648
+ flexDirection: "column",
37649
+ width: backgroundDialogOpen ? uiState.terminalWidth : "90%",
37650
+ height: "100%",
37651
+ children: [
37652
+ !uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(UpdateNotification, { message: uiState.updateInfo.message }),
37653
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Notifications, {}),
37654
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Footer, {}),
37655
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Box_default, { flexGrow: 1, overflow: "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(MainContent, {}) }),
37656
+ uiState.dialogsVisible ? /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
37657
+ Box_default,
36904
37658
  {
36905
- terminalWidth: uiState.terminalWidth,
36906
- addItem: uiState.historyManager.addItem
37659
+ marginX: backgroundDialogOpen ? backgroundMargin : 2,
37660
+ flexDirection: "column",
37661
+ width: backgroundDialogOpen ? Math.max(1, uiState.terminalWidth - backgroundMargin * 2) : uiState.mainAreaWidth,
37662
+ height: dialogHeight,
37663
+ overflow: uiState.constrainHeight ? "hidden" : void 0,
37664
+ children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
37665
+ DialogManager,
37666
+ {
37667
+ terminalWidth: uiState.terminalWidth,
37668
+ addItem: uiState.historyManager.addItem
37669
+ }
37670
+ )
36907
37671
  }
36908
- )
36909
- }
36910
- ) : /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(import_jsx_runtime131.Fragment, { children: [
36911
- shouldShowStickyTodos && /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
36912
- StickyTodoList,
36913
- {
36914
- todos: uiState.stickyTodos,
36915
- width: stickyTodoWidth,
36916
- maxVisibleItems: stickyTodoMaxVisibleItems
36917
- }
36918
- ),
36919
- uiState.btwItem && /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { marginX: 2, width: uiState.mainAreaWidth, children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
36920
- BtwMessage,
36921
- {
36922
- btw: uiState.btwItem.btw,
36923
- containerWidth: uiState.mainAreaWidth
36924
- }
36925
- ) }),
36926
- /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Composer, {})
36927
- ] }),
36928
- /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(ExitWarning, {})
36929
- ] });
37672
+ ) : /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(import_jsx_runtime132.Fragment, { children: [
37673
+ shouldShowStickyTodos && /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
37674
+ StickyTodoList,
37675
+ {
37676
+ todos: uiState.stickyTodos,
37677
+ width: stickyTodoWidth,
37678
+ maxVisibleItems: stickyTodoMaxVisibleItems
37679
+ }
37680
+ ),
37681
+ uiState.btwItem && /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Box_default, { marginX: 2, width: uiState.mainAreaWidth, children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
37682
+ BtwMessage,
37683
+ {
37684
+ btw: uiState.btwItem.btw,
37685
+ containerWidth: uiState.mainAreaWidth
37686
+ }
37687
+ ) }),
37688
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Composer, {})
37689
+ ] }),
37690
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(ExitWarning, {})
37691
+ ]
37692
+ }
37693
+ );
36930
37694
  }, "ScreenReaderAppLayout");
36931
37695
 
36932
37696
  // packages/cli/src/ui/layouts/DefaultAppLayout.tsx
@@ -36941,7 +37705,7 @@ var ScrollContext = (0, import_react123.createContext)(null);
36941
37705
  // packages/cli/src/ui/components/agent-view/AgentTabBar.tsx
36942
37706
  init_esbuild_shims();
36943
37707
  var import_react124 = __toESM(require_react(), 1);
36944
- var import_jsx_runtime132 = __toESM(require_jsx_runtime(), 1);
37708
+ var import_jsx_runtime133 = __toESM(require_jsx_runtime(), 1);
36945
37709
  function statusIndicator(agent) {
36946
37710
  const status = agent.interactiveAgent.getStatus();
36947
37711
  switch (status) {
@@ -37014,8 +37778,8 @@ var AgentTabBar = /* @__PURE__ */ __name(() => {
37014
37778
  }, [agents, forceRender]);
37015
37779
  const isFocused = agentTabBarFocused;
37016
37780
  const hint = isFocused ? "\u2190/\u2192 switch \u2191 input" : "\u2193 tabs";
37017
- return /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(Box_default, { flexDirection: "row", paddingX: 1, children: [
37018
- /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Box_default, { marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
37781
+ return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(Box_default, { flexDirection: "row", paddingX: 1, children: [
37782
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Box_default, { marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
37019
37783
  Text,
37020
37784
  {
37021
37785
  bold: activeView === "main",
@@ -37025,12 +37789,12 @@ var AgentTabBar = /* @__PURE__ */ __name(() => {
37025
37789
  children: " Main "
37026
37790
  }
37027
37791
  ) }),
37028
- /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Text, { dimColor: !isFocused, color: theme.border.default, children: "\u2502" }),
37792
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Text, { dimColor: !isFocused, color: theme.border.default, children: "\u2502" }),
37029
37793
  [...agents.entries()].map(([agentId, agent]) => {
37030
37794
  const isActive = activeView === agentId;
37031
37795
  const { symbol, color: indicatorColor } = statusIndicator(agent);
37032
- return /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(Box_default, { marginLeft: 1, children: [
37033
- /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
37796
+ return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(Box_default, { marginLeft: 1, children: [
37797
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
37034
37798
  Text,
37035
37799
  {
37036
37800
  bold: isActive,
@@ -37040,10 +37804,10 @@ var AgentTabBar = /* @__PURE__ */ __name(() => {
37040
37804
  children: ` ${agent.modelId} `
37041
37805
  }
37042
37806
  ),
37043
- /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Text, { dimColor: !isFocused, color: indicatorColor, children: ` ${symbol}` })
37807
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Text, { dimColor: !isFocused, color: indicatorColor, children: ` ${symbol}` })
37044
37808
  ] }, agentId);
37045
37809
  }),
37046
- /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Text, { color: theme.text.secondary, children: hint }) })
37810
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Text, { color: theme.text.secondary, children: hint }) })
37047
37811
  ] });
37048
37812
  }, "AgentTabBar");
37049
37813
 
@@ -37165,7 +37929,7 @@ __name(agentMessagesToHistoryItems, "agentMessagesToHistoryItems");
37165
37929
 
37166
37930
  // packages/cli/src/ui/components/agent-view/AgentHeader.tsx
37167
37931
  init_esbuild_shims();
37168
- var import_jsx_runtime133 = __toESM(require_jsx_runtime(), 1);
37932
+ var import_jsx_runtime134 = __toESM(require_jsx_runtime(), 1);
37169
37933
  var AgentHeader = /* @__PURE__ */ __name(({
37170
37934
  modelId,
37171
37935
  modelName,
@@ -37176,7 +37940,7 @@ var AgentHeader = /* @__PURE__ */ __name(({
37176
37940
  const maxPathLen = Math.max(20, terminalWidth - 12);
37177
37941
  const displayPath = shortenPath(tildeifyPath(workingDirectory), maxPathLen);
37178
37942
  const modelText = modelName && modelName !== modelId ? `${modelId} (${modelName})` : modelId;
37179
- return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(
37943
+ return /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(
37180
37944
  Box_default,
37181
37945
  {
37182
37946
  flexDirection: "column",
@@ -37186,17 +37950,17 @@ var AgentHeader = /* @__PURE__ */ __name(({
37186
37950
  borderColor: theme.border.default,
37187
37951
  paddingX: 1,
37188
37952
  children: [
37189
- /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(Text, { children: [
37190
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Text, { color: theme.text.secondary, children: "Model: " }),
37191
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Text, { color: theme.text.primary, children: modelText })
37953
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(Text, { children: [
37954
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.secondary, children: "Model: " }),
37955
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.primary, children: modelText })
37192
37956
  ] }),
37193
- /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(Text, { children: [
37194
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Text, { color: theme.text.secondary, children: "Path: " }),
37195
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Text, { color: theme.text.primary, children: displayPath })
37957
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(Text, { children: [
37958
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.secondary, children: "Path: " }),
37959
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.primary, children: displayPath })
37196
37960
  ] }),
37197
- gitBranch && /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(Text, { children: [
37198
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Text, { color: theme.text.secondary, children: "Branch: " }),
37199
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Text, { color: theme.text.primary, children: gitBranch })
37961
+ gitBranch && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(Text, { children: [
37962
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.secondary, children: "Branch: " }),
37963
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.primary, children: gitBranch })
37200
37964
  ] })
37201
37965
  ]
37202
37966
  }
@@ -37204,7 +37968,7 @@ var AgentHeader = /* @__PURE__ */ __name(({
37204
37968
  }, "AgentHeader");
37205
37969
 
37206
37970
  // packages/cli/src/ui/components/agent-view/AgentChatContent.tsx
37207
- var import_jsx_runtime134 = __toESM(require_jsx_runtime(), 1);
37971
+ var import_jsx_runtime135 = __toESM(require_jsx_runtime(), 1);
37208
37972
  var AgentChatContent = /* @__PURE__ */ __name(({
37209
37973
  core,
37210
37974
  interactiveAgent,
@@ -37320,12 +38084,12 @@ var AgentChatContent = /* @__PURE__ */ __name(({
37320
38084
  [instanceKey]
37321
38085
  );
37322
38086
  const agentModelId = core.modelConfig.model ?? "";
37323
- return /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(Box_default, { flexDirection: "column", children: [
37324
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
38087
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(Box_default, { flexDirection: "column", children: [
38088
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
37325
38089
  Static,
37326
38090
  {
37327
38091
  items: [
37328
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
38092
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
37329
38093
  AgentHeader,
37330
38094
  {
37331
38095
  modelId: agentModelId,
@@ -37335,7 +38099,7 @@ var AgentChatContent = /* @__PURE__ */ __name(({
37335
38099
  },
37336
38100
  "agent-header"
37337
38101
  ),
37338
- ...committedItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
38102
+ ...committedItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
37339
38103
  HistoryItemDisplay,
37340
38104
  {
37341
38105
  item,
@@ -37352,7 +38116,7 @@ var AgentChatContent = /* @__PURE__ */ __name(({
37352
38116
  },
37353
38117
  `agent-${instanceKey}-${historyRemountKey}`
37354
38118
  ),
37355
- pendingItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
38119
+ pendingItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
37356
38120
  HistoryItemDisplay,
37357
38121
  {
37358
38122
  item,
@@ -37367,13 +38131,13 @@ var AgentChatContent = /* @__PURE__ */ __name(({
37367
38131
  },
37368
38132
  item.id
37369
38133
  )),
37370
- isRunning && /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Box_default, { marginX: 2, marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(RespondingSpinner, {}) })
38134
+ isRunning && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Box_default, { marginX: 2, marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(RespondingSpinner, {}) })
37371
38135
  ] });
37372
38136
  }, "AgentChatContent");
37373
- var AgentChatMissing = /* @__PURE__ */ __name(({ label }) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Box_default, { marginX: 2, children: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.status.error, children: label }) }), "AgentChatMissing");
38137
+ var AgentChatMissing = /* @__PURE__ */ __name(({ label }) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Box_default, { marginX: 2, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Text, { color: theme.status.error, children: label }) }), "AgentChatMissing");
37374
38138
 
37375
38139
  // packages/cli/src/ui/components/agent-view/AgentChatView.tsx
37376
- var import_jsx_runtime135 = __toESM(require_jsx_runtime(), 1);
38140
+ var import_jsx_runtime136 = __toESM(require_jsx_runtime(), 1);
37377
38141
  var debugLogger29 = createDebugLogger("AGENT_TAB_RENDER");
37378
38142
  var AgentChatView = /* @__PURE__ */ __name(({ agentId }) => {
37379
38143
  const { agents } = useAgentViewState();
@@ -37382,7 +38146,7 @@ var AgentChatView = /* @__PURE__ */ __name(({ agentId }) => {
37382
38146
  const interactiveAgent = agent?.interactiveAgent;
37383
38147
  const core = interactiveAgent?.getCore();
37384
38148
  if (!agent || !interactiveAgent || !core) {
37385
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(AgentChatMissing, { label: `Agent "${agentId}" not found.` });
38149
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(AgentChatMissing, { label: `Agent "${agentId}" not found.` });
37386
38150
  }
37387
38151
  return (
37388
38152
  // Non-fatal per-tab containment: the app-level boundary is
@@ -37392,15 +38156,15 @@ var AgentChatView = /* @__PURE__ */ __name(({ agentId }) => {
37392
38156
  // keeping the session and the other tabs alive. Keyed by agentId so
37393
38157
  // switching tabs starts from fresh boundary state: one crashed tab
37394
38158
  // must not strand every later tab in its fallback.
37395
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
38159
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(
37396
38160
  ErrorBoundary,
37397
38161
  {
37398
- fallback: (error) => /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(Box_default, { flexDirection: "column", paddingX: 1, children: [
37399
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Text, { color: theme.status.error, bold: true, children: "Something went wrong while rendering this agent tab." }),
37400
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Text, { color: theme.text.secondary, children: sanitizeTerminalText(error.message) }),
37401
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Text, { color: theme.text.secondary, dimColor: true, children: "The session is still running; other tabs are unaffected." }),
37402
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Text, { color: theme.text.secondary, dimColor: true, children: "Switch to another tab and back to retry rendering this tab." }),
37403
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Text, { color: theme.text.secondary, dimColor: true, children: "Set O1CODE_DEBUG_LOG_FILE=1 and reproduce for a full log." })
38162
+ fallback: (error) => /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(Box_default, { flexDirection: "column", paddingX: 1, children: [
38163
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.status.error, bold: true, children: "Something went wrong while rendering this agent tab." }),
38164
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.text.secondary, children: sanitizeTerminalText(error.message) }),
38165
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.text.secondary, dimColor: true, children: "The session is still running; other tabs are unaffected." }),
38166
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.text.secondary, dimColor: true, children: "Switch to another tab and back to retry rendering this tab." }),
38167
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.text.secondary, dimColor: true, children: "Set O1CODE_DEBUG_LOG_FILE=1 and reproduce for a full log." })
37404
38168
  ] }),
37405
38169
  onError: (error, info) => {
37406
38170
  setAgentShellFocused(false);
@@ -37410,7 +38174,7 @@ ${info.componentStack ?? ""}
37410
38174
  ${error.stack ?? ""}`
37411
38175
  );
37412
38176
  },
37413
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
38177
+ children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(
37414
38178
  AgentChatContent,
37415
38179
  {
37416
38180
  core,
@@ -37434,7 +38198,7 @@ init_esbuild_shims();
37434
38198
 
37435
38199
  // packages/cli/src/ui/components/AutoAcceptIndicator.tsx
37436
38200
  init_esbuild_shims();
37437
- var import_jsx_runtime136 = __toESM(require_jsx_runtime(), 1);
38201
+ var import_jsx_runtime137 = __toESM(require_jsx_runtime(), 1);
37438
38202
  var AutoAcceptIndicator = /* @__PURE__ */ __name(({
37439
38203
  approvalMode
37440
38204
  }) => {
@@ -37466,15 +38230,15 @@ var AutoAcceptIndicator = /* @__PURE__ */ __name(({
37466
38230
  default:
37467
38231
  break;
37468
38232
  }
37469
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(Text, { color: textColor, children: [
38233
+ return /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(Text, { color: textColor, children: [
37470
38234
  textContent,
37471
- subText && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.text.secondary, children: subText })
38235
+ subText && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(Text, { color: theme.text.secondary, children: subText })
37472
38236
  ] });
37473
38237
  }, "AutoAcceptIndicator");
37474
38238
 
37475
38239
  // packages/cli/src/ui/components/ContextUsageDisplay.tsx
37476
38240
  init_esbuild_shims();
37477
- var import_jsx_runtime137 = __toESM(require_jsx_runtime(), 1);
38241
+ var import_jsx_runtime138 = __toESM(require_jsx_runtime(), 1);
37478
38242
  var ContextUsageDisplay = /* @__PURE__ */ __name(({
37479
38243
  promptTokenCount,
37480
38244
  terminalWidth,
@@ -37488,19 +38252,19 @@ var ContextUsageDisplay = /* @__PURE__ */ __name(({
37488
38252
  const isOverLimit = percentage > 1;
37489
38253
  const label = contextUsageLabel(terminalWidth);
37490
38254
  if (isOverLimit) {
37491
- return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_jsx_runtime137.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(Text, { color: theme.status.error, children: [
38255
+ return /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_jsx_runtime138.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(Text, { color: theme.status.error, children: [
37492
38256
  percentageUsed,
37493
38257
  label
37494
38258
  ] }) });
37495
38259
  }
37496
- return /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(Text, { color: theme.text.secondary, children: [
38260
+ return /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(Text, { color: theme.text.secondary, children: [
37497
38261
  percentageUsed,
37498
38262
  label
37499
38263
  ] });
37500
38264
  }, "ContextUsageDisplay");
37501
38265
 
37502
38266
  // packages/cli/src/ui/components/agent-view/AgentFooter.tsx
37503
- var import_jsx_runtime138 = __toESM(require_jsx_runtime(), 1);
38267
+ var import_jsx_runtime139 = __toESM(require_jsx_runtime(), 1);
37504
38268
  var AgentFooter = /* @__PURE__ */ __name(({
37505
38269
  approvalMode,
37506
38270
  promptTokenCount,
@@ -37512,7 +38276,7 @@ var AgentFooter = /* @__PURE__ */ __name(({
37512
38276
  if (!showApproval && !showContext) {
37513
38277
  return null;
37514
38278
  }
37515
- return /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(
38279
+ return /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(
37516
38280
  Box_default,
37517
38281
  {
37518
38282
  justifyContent: "space-between",
@@ -37520,8 +38284,8 @@ var AgentFooter = /* @__PURE__ */ __name(({
37520
38284
  flexDirection: "row",
37521
38285
  alignItems: "center",
37522
38286
  children: [
37523
- /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(Box_default, { marginLeft: 2, children: showApproval ? /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(AutoAcceptIndicator, { approvalMode }) : null }),
37524
- /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(Box_default, { marginRight: 2, children: showContext && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(Text, { color: theme.text.accent, children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(
38287
+ /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(Box_default, { marginLeft: 2, children: showApproval ? /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(AutoAcceptIndicator, { approvalMode }) : null }),
38288
+ /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(Box_default, { marginRight: 2, children: showContext && /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(Text, { color: theme.text.accent, children: /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(
37525
38289
  ContextUsageDisplay,
37526
38290
  {
37527
38291
  promptTokenCount,
@@ -37535,7 +38299,7 @@ var AgentFooter = /* @__PURE__ */ __name(({
37535
38299
  }, "AgentFooter");
37536
38300
 
37537
38301
  // packages/cli/src/ui/components/agent-view/AgentComposer.tsx
37538
- var import_jsx_runtime139 = __toESM(require_jsx_runtime(), 1);
38302
+ var import_jsx_runtime140 = __toESM(require_jsx_runtime(), 1);
37539
38303
  var EMPTY_MESSAGE_QUEUE2 = [];
37540
38304
  var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
37541
38305
  const {
@@ -37654,21 +38418,21 @@ var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
37654
38418
  }
37655
38419
  }, [status, interactiveAgent]);
37656
38420
  const inputBorderColor = !isInputActive || agentTabBarFocused ? theme.border.default : extendedTheme.ui.brand;
37657
- const prefixNode = /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(Text, { color: extendedTheme.ui.brand, children: [
38421
+ const prefixNode = /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(Text, { color: extendedTheme.ui.brand, children: [
37658
38422
  glyphs().prompt,
37659
38423
  " "
37660
38424
  ] });
37661
- return /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(StreamingContext.Provider, { value: streamingState, children: /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
37662
- /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(
38425
+ return /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(StreamingContext.Provider, { value: streamingState, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
38426
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
37663
38427
  LoadingIndicator,
37664
38428
  {
37665
38429
  currentLoadingPhrase: streamingState === "responding" /* Responding */ ? t("Thinking\u2026") : void 0,
37666
38430
  elapsedTime
37667
38431
  }
37668
38432
  ),
37669
- statusLabel && /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(Text, { color: statusLabel.color, children: statusLabel.text }) }),
37670
- /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(Box_default, { marginTop: messageQueue.length > 0 ? 1 : 0, paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(QueuedMessageDisplay, { messageQueue, showHint: false }) }),
37671
- /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(
38433
+ statusLabel && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Text, { color: statusLabel.color, children: statusLabel.text }) }),
38434
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Box_default, { marginTop: messageQueue.length > 0 ? 1 : 0, paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(QueuedMessageDisplay, { messageQueue, showHint: false }) }),
38435
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
37672
38436
  BaseTextInput,
37673
38437
  {
37674
38438
  buffer,
@@ -37681,7 +38445,7 @@ var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
37681
38445
  isActive: isInputActive && !agentShellFocused
37682
38446
  }
37683
38447
  ),
37684
- /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(
38448
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
37685
38449
  AgentFooter,
37686
38450
  {
37687
38451
  approvalMode: agentApprovalMode,
@@ -37696,7 +38460,7 @@ var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
37696
38460
  // packages/cli/src/ui/components/background-view/LiveAgentPanel.tsx
37697
38461
  init_esbuild_shims();
37698
38462
  var import_react127 = __toESM(require_react(), 1);
37699
- var import_jsx_runtime140 = __toESM(require_jsx_runtime(), 1);
38463
+ var import_jsx_runtime141 = __toESM(require_jsx_runtime(), 1);
37700
38464
  var DEFAULT_MAX_ROWS = LIVE_AGENT_PANEL_MAX_ROWS;
37701
38465
  var DEFAULT_SUBAGENT_TYPE = DEFAULT_BUILTIN_SUBAGENT_TYPE;
37702
38466
  function isAgentEntry(entry) {
@@ -37814,7 +38578,7 @@ var LiveAgentPanel = /* @__PURE__ */ __name(({
37814
38578
  }
37815
38579
  }, [hasVisibleAgent, livePanelFocused, setLivePanelFocused]);
37816
38580
  if (dialogOpen) return null;
37817
- return /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
38581
+ return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
37818
38582
  LiveAgentPanelBody,
37819
38583
  {
37820
38584
  snapshots: liveAgentSnapshots,
@@ -37838,19 +38602,19 @@ var LiveAgentPanelBody = /* @__PURE__ */ __name(({ snapshots, now, maxRows, widt
37838
38602
  const visible = overflow > 0 ? visibleAgentsAsc.slice(-maxRows) : visibleAgentsAsc;
37839
38603
  const totalItems = 1 + visible.length;
37840
38604
  const clampedIndex = Math.min(selectedIndex, totalItems - 1);
37841
- return /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, width, paddingX: 2, children: [
37842
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(Box_default, { children: [
37843
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Text, { color: focused ? theme.text.accent : theme.text.secondary, children: focused && clampedIndex === 0 ? "\u25B8 " : " " }),
37844
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Text, { bold: true, color: theme.text.accent, children: "main" })
38605
+ return /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, width, paddingX: 2, children: [
38606
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(Box_default, { children: [
38607
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: focused ? theme.text.accent : theme.text.secondary, children: focused && clampedIndex === 0 ? "\u25B8 " : " " }),
38608
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { bold: true, color: theme.text.accent, children: "main" })
37845
38609
  ] }),
37846
- overflow > 0 && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
38610
+ overflow > 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
37847
38611
  Text,
37848
38612
  {
37849
38613
  color: theme.text.secondary,
37850
38614
  children: ` ^ ${overflow} more above (\u2193 to view all)`
37851
38615
  }
37852
38616
  ) }),
37853
- visible.map((entry, idx) => /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
38617
+ visible.map((entry, idx) => /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
37854
38618
  AgentRow,
37855
38619
  {
37856
38620
  entry,
@@ -37860,7 +38624,7 @@ var LiveAgentPanelBody = /* @__PURE__ */ __name(({ snapshots, now, maxRows, widt
37860
38624
  },
37861
38625
  entry.agentId
37862
38626
  )),
37863
- focused && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Text, { color: theme.text.secondary, children: " \u2191\u2193 navigate \xB7 Enter detail \xB7 Esc back" }) })
38627
+ focused && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: " \u2191\u2193 navigate \xB7 Enter detail \xB7 Esc back" }) })
37864
38628
  ] });
37865
38629
  }, "LiveAgentPanelBody");
37866
38630
  var AgentRow = /* @__PURE__ */ __name(({ entry, now, selected = false, tree }) => {
@@ -37875,33 +38639,33 @@ var AgentRow = /* @__PURE__ */ __name(({ entry, now, selected = false, tree }) =
37875
38639
  const prefix = selected ? "\u25B8 " : " ";
37876
38640
  const treePrefix = treeRowPrefix(entry, tree);
37877
38641
  const orphanNote = tree?.orphaned ? entry.parentName ? ` \xB7 from ${escapeAnsiCtrlCodes(entry.parentName)}` : " \xB7 nested" : "";
37878
- return /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(Box_default, { flexDirection: "row", children: [
37879
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Text, { color: selected ? theme.text.accent : theme.text.secondary, children: prefix }) }),
37880
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Box_default, { flexShrink: 1, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(Text, { wrap: "truncate-end", children: [
37881
- treePrefix !== "" && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Text, { color: theme.text.secondary, children: treePrefix }),
37882
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Text, { color: color2, children: `${glyph} ` }),
37883
- showType && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_jsx_runtime140.Fragment, { children: [
37884
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Text, { bold: true, children: safeSubagentType }),
37885
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Text, { color: theme.text.secondary, children: ": " })
38642
+ return /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(Box_default, { flexDirection: "row", children: [
38643
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: selected ? theme.text.accent : theme.text.secondary, children: prefix }) }),
38644
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Box_default, { flexShrink: 1, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(Text, { wrap: "truncate-end", children: [
38645
+ treePrefix !== "" && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: treePrefix }),
38646
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: color2, children: `${glyph} ` }),
38647
+ showType && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_jsx_runtime141.Fragment, { children: [
38648
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { bold: true, children: safeSubagentType }),
38649
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: ": " })
37886
38650
  ] }),
37887
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Text, { color: theme.text.secondary, children: label }),
37888
- activity && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Text, { color: theme.text.secondary, children: ` (${activity})` }),
37889
- orphanNote && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Text, { color: theme.text.secondary, children: orphanNote })
38651
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: label }),
38652
+ activity && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: ` (${activity})` }),
38653
+ orphanNote && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: orphanNote })
37890
38654
  ] }) }),
37891
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Text, { color: theme.text.secondary, children: tail }) })
38655
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: tail }) })
37892
38656
  ] });
37893
38657
  }, "AgentRow");
37894
38658
 
37895
38659
  // packages/cli/src/ui/context-menu/ContextMenuOverlay.tsx
37896
38660
  init_esbuild_shims();
37897
38661
  var import_react128 = __toESM(require_react(), 1);
37898
- var import_jsx_runtime141 = __toESM(require_jsx_runtime(), 1);
38662
+ var import_jsx_runtime142 = __toESM(require_jsx_runtime(), 1);
37899
38663
  var ContextMenuOverlay = /* @__PURE__ */ __name(() => {
37900
38664
  const { menu } = useContextMenu();
37901
38665
  if (!menu) {
37902
38666
  return null;
37903
38667
  }
37904
- return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(ActiveContextMenu, {});
38668
+ return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(ActiveContextMenu, {});
37905
38669
  }, "ContextMenuOverlay");
37906
38670
  var ActiveContextMenu = /* @__PURE__ */ __name(() => {
37907
38671
  const { menu, selectedIndex, closeMenu, setSelectedIndex, executeIndex } = useContextMenu();
@@ -37935,7 +38699,7 @@ var ActiveContextMenu = /* @__PURE__ */ __name(() => {
37935
38699
  (max, item) => Math.max(max, item.label.length),
37936
38700
  0
37937
38701
  );
37938
- return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
38702
+ return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
37939
38703
  Box_default,
37940
38704
  {
37941
38705
  position: "absolute",
@@ -37947,7 +38711,7 @@ var ActiveContextMenu = /* @__PURE__ */ __name(() => {
37947
38711
  paddingX: 0,
37948
38712
  children: menu.items.map((item, index) => {
37949
38713
  const selected = index === selectedIndex;
37950
- return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
38714
+ return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
37951
38715
  Text,
37952
38716
  {
37953
38717
  selectable: false,
@@ -37962,10 +38726,10 @@ var ActiveContextMenu = /* @__PURE__ */ __name(() => {
37962
38726
  }, "ActiveContextMenu");
37963
38727
 
37964
38728
  // packages/cli/src/ui/layouts/DefaultAppLayout.tsx
37965
- var import_jsx_runtime142 = __toESM(require_jsx_runtime(), 1);
38729
+ var import_jsx_runtime143 = __toESM(require_jsx_runtime(), 1);
37966
38730
  var PinnedHeader = /* @__PURE__ */ __name(() => {
37967
38731
  const { version } = useAppContext();
37968
- return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(AppHeader, { version, pinned: true });
38732
+ return /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AppHeader, { version, pinned: true });
37969
38733
  }, "PinnedHeader");
37970
38734
  var DefaultAppLayout = /* @__PURE__ */ __name(() => {
37971
38735
  const uiState = useUIState();
@@ -37982,6 +38746,8 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
37982
38746
  const { refreshStatic } = useUIActions();
37983
38747
  const { activeView, agents } = useAgentViewState();
37984
38748
  const { columns: terminalWidth } = useTerminalSize();
38749
+ const { dialogOpen: backgroundDialogOpen } = useBackgroundTaskViewState();
38750
+ const backgroundMargin = sideMargin(getLayoutTier(terminalWidth));
37985
38751
  const hasAgents = agents.size > 0;
37986
38752
  const isAgentTab = activeView !== "main" && agents.has(activeView);
37987
38753
  const stickyTodoWidth = Math.min(uiState.mainAreaWidth, 64);
@@ -38003,17 +38769,17 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
38003
38769
  refreshStatic();
38004
38770
  }
38005
38771
  }, [activeView, refreshStatic]);
38006
- return /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(Box_default, { flexDirection: "column", width: terminalWidth, children: [
38007
- uiState.useTerminalBuffer && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(PinnedHeader, {}),
38008
- isAgentTab ? /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(import_jsx_runtime142.Fragment, { children: [
38009
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(AgentChatView, { agentId: activeView }),
38010
- /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(Box_default, { flexDirection: "column", ref: uiState.mainControlsRef, children: [
38011
- !uiState.useTerminalBuffer && !uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(UpdateNotification, { message: uiState.updateInfo.message }),
38012
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(AgentComposer, { agentId: activeView }, activeView),
38013
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(ExitWarning, {})
38772
+ return /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Box_default, { flexDirection: "column", width: terminalWidth, children: [
38773
+ uiState.useTerminalBuffer && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(PinnedHeader, {}),
38774
+ isAgentTab ? /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(import_jsx_runtime143.Fragment, { children: [
38775
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AgentChatView, { agentId: activeView }),
38776
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Box_default, { flexDirection: "column", ref: uiState.mainControlsRef, children: [
38777
+ !uiState.useTerminalBuffer && !uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(UpdateNotification, { message: uiState.updateInfo.message }),
38778
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AgentComposer, { agentId: activeView }, activeView),
38779
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(ExitWarning, {})
38014
38780
  ] })
38015
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(ScrollContext.Provider, { value: scrollActions, children: [
38016
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
38781
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(ScrollContext.Provider, { value: scrollActions, children: [
38782
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
38017
38783
  MainContent,
38018
38784
  {
38019
38785
  footerRef,
@@ -38021,18 +38787,18 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
38021
38787
  scrollActionsRef
38022
38788
  }
38023
38789
  ),
38024
- /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(Box_default, { flexDirection: "column", ref: uiState.mainControlsRef, children: [
38025
- !uiState.useTerminalBuffer && !uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(UpdateNotification, { message: uiState.updateInfo.message }),
38026
- uiState.dialogsVisible ? /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
38790
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Box_default, { flexDirection: "column", ref: uiState.mainControlsRef, children: [
38791
+ !uiState.useTerminalBuffer && !uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(UpdateNotification, { message: uiState.updateInfo.message }),
38792
+ uiState.dialogsVisible ? /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
38027
38793
  Box_default,
38028
38794
  {
38029
- marginX: 2,
38795
+ marginX: backgroundDialogOpen ? backgroundMargin : 2,
38030
38796
  flexDirection: "column",
38031
- width: uiState.isSettingsDialogOpen ? Math.max(1, terminalWidth - 4) : uiState.isApprovalModeDialogOpen ? Math.max(1, Math.min(terminalWidth - 4, 140)) : uiState.mainAreaWidth,
38797
+ width: backgroundDialogOpen ? Math.max(1, terminalWidth - backgroundMargin * 2) : uiState.isSettingsDialogOpen ? Math.max(1, terminalWidth - 4) : uiState.isApprovalModeDialogOpen ? Math.max(1, Math.min(terminalWidth - 4, 140)) : uiState.mainAreaWidth,
38032
38798
  height: uiState.isApprovalModeDialogOpen || uiState.isSettingsDialogOpen ? void 0 : dialogHeight,
38033
38799
  maxHeight: dialogHeight,
38034
38800
  overflow: uiState.constrainHeight ? "hidden" : void 0,
38035
- children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
38801
+ children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
38036
38802
  DialogManager,
38037
38803
  {
38038
38804
  terminalWidth: uiState.terminalWidth,
@@ -38040,8 +38806,8 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
38040
38806
  }
38041
38807
  )
38042
38808
  }
38043
- ) : /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(import_jsx_runtime142.Fragment, { children: [
38044
- shouldShowStickyTodos && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
38809
+ ) : /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(import_jsx_runtime143.Fragment, { children: [
38810
+ shouldShowStickyTodos && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
38045
38811
  StickyTodoList,
38046
38812
  {
38047
38813
  todos: uiState.stickyTodos,
@@ -38049,17 +38815,17 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
38049
38815
  maxVisibleItems: stickyTodoMaxVisibleItems
38050
38816
  }
38051
38817
  ),
38052
- uiState.btwItem && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(Box_default, { marginX: 2, width: uiState.mainAreaWidth, children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
38818
+ uiState.btwItem && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(Box_default, { marginX: 2, width: uiState.mainAreaWidth, children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
38053
38819
  BtwMessage,
38054
38820
  {
38055
38821
  btw: uiState.btwItem.btw,
38056
38822
  containerWidth: uiState.mainAreaWidth
38057
38823
  }
38058
38824
  ) }),
38059
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(Composer, { footerRef, inputLinesRef })
38825
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(Composer, { footerRef, inputLinesRef })
38060
38826
  ] }),
38061
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(ExitWarning, {}),
38062
- !uiState.dialogsVisible && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
38827
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(ExitWarning, {}),
38828
+ !uiState.dialogsVisible && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
38063
38829
  LiveAgentPanel,
38064
38830
  {
38065
38831
  width: uiState.terminalWidth,
@@ -38068,24 +38834,24 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
38068
38834
  )
38069
38835
  ] })
38070
38836
  ] }),
38071
- hasAgents && !uiState.dialogsVisible && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(AgentTabBar, {}),
38072
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(ContextMenuOverlay, {})
38837
+ hasAgents && !uiState.dialogsVisible && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AgentTabBar, {}),
38838
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(ContextMenuOverlay, {})
38073
38839
  ] });
38074
38840
  }, "DefaultAppLayout");
38075
38841
 
38076
38842
  // packages/cli/src/ui/App.tsx
38077
38843
  import fs8 from "node:fs";
38078
- var import_jsx_runtime143 = __toESM(require_jsx_runtime(), 1);
38844
+ var import_jsx_runtime144 = __toESM(require_jsx_runtime(), 1);
38079
38845
  var App = /* @__PURE__ */ __name(({ onExitSummary }) => {
38080
38846
  const uiState = useUIState();
38081
38847
  const settings = useSettings();
38082
38848
  const isScreenReaderEnabled = use_is_screen_reader_enabled_default();
38083
38849
  const [dismissed, setDismissed] = (0, import_react130.useState)(false);
38084
38850
  if (uiState.quittingMessages) {
38085
- return /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(QuittingDisplay, { onExit: onExitSummary });
38851
+ return /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(QuittingDisplay, { onExit: onExitSummary });
38086
38852
  }
38087
38853
  if (settings.corruptedPath && !dismissed) {
38088
- return /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(StreamingContext.Provider, { value: uiState.streamingState, children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(Box_default, { marginX: 2, children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
38854
+ return /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(StreamingContext.Provider, { value: uiState.streamingState, children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(Box_default, { marginX: 2, children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
38089
38855
  SettingsCorruptedDialog,
38090
38856
  {
38091
38857
  corruptedPath: settings.corruptedPath,
@@ -38131,7 +38897,7 @@ var App = /* @__PURE__ */ __name(({ onExitSummary }) => {
38131
38897
  }
38132
38898
  ) }) });
38133
38899
  }
38134
- return /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(StreamingContext.Provider, { value: uiState.streamingState, children: isScreenReaderEnabled ? /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(ScreenReaderAppLayout, {}) : /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(DefaultAppLayout, {}) });
38900
+ return /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(StreamingContext.Provider, { value: uiState.streamingState, children: isScreenReaderEnabled ? /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(ScreenReaderAppLayout, {}) : /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(DefaultAppLayout, {}) });
38135
38901
  }, "App");
38136
38902
 
38137
38903
  // packages/cli/src/ui/utils/terminal-resize-reflow.ts
@@ -50245,7 +51011,7 @@ function historyToRemoteEvents(items, sessionId) {
50245
51011
  __name(historyToRemoteEvents, "historyToRemoteEvents");
50246
51012
 
50247
51013
  // packages/cli/src/ui/AppContainer.tsx
50248
- var import_jsx_runtime144 = __toESM(require_jsx_runtime(), 1);
51014
+ var import_jsx_runtime145 = __toESM(require_jsx_runtime(), 1);
50249
51015
  var MCP_BATCH_FLUSH_MS = 16;
50250
51016
  var STARTUP_PROFILE_FINALIZE_CAP_MS = 35e3;
50251
51017
  var CTRL_EXIT_PROMPT_DURATION_MS = 1e3;
@@ -54139,18 +54905,18 @@ ${migrationResult.failedFiles.map((f) => ` \u2022 ${f.file}: ${f.error}`).join(
54139
54905
  }),
54140
54906
  [expandedToolBatchIds, expandToolBatch]
54141
54907
  );
54142
- return /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(VirtualViewportContext.Provider, { value: useTerminalBuffer, children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(UIStateContext.Provider, { value: uiState, children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(UIActionsContext.Provider, { value: uiActions, children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(ConfigContext.Provider, { value: config, children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
54908
+ return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(VirtualViewportContext.Provider, { value: useTerminalBuffer, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(UIStateContext.Provider, { value: uiState, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(UIActionsContext.Provider, { value: uiActions, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(ConfigContext.Provider, { value: config, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
54143
54909
  AppContext.Provider,
54144
54910
  {
54145
54911
  value: {
54146
54912
  version: props.version,
54147
54913
  startupWarnings
54148
54914
  },
54149
- children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(ThoughtExpandedProvider, { value: thoughtExpandedValue, children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(ToolDetailsExpandedProvider, { value: toolDetailsExpandedValue, children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(RenderModeProvider, { value: renderModeValue, children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(TerminalOutputProvider, { value: writeRaw, children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(ShellFocusContext.Provider, { value: isFocused, children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
54915
+ children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(ThoughtExpandedProvider, { value: thoughtExpandedValue, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(ToolDetailsExpandedProvider, { value: toolDetailsExpandedValue, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(RenderModeProvider, { value: renderModeValue, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(TerminalOutputProvider, { value: writeRaw, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(ShellFocusContext.Provider, { value: isFocused, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
54150
54916
  ContextMenuProvider,
54151
54917
  {
54152
54918
  onMenuChange: handleContextMenuChange,
54153
- children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(App, { onExitSummary: finishExit })
54919
+ children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(App, { onExitSummary: finishExit })
54154
54920
  }
54155
54921
  ) }) }) }) }) })
54156
54922
  }
@@ -54252,7 +55018,7 @@ function installSynchronizedOutput(stdout = process.stdout, env = process.env) {
54252
55018
  __name(installSynchronizedOutput, "installSynchronizedOutput");
54253
55019
 
54254
55020
  // packages/cli/src/ui/startInteractiveUI.tsx
54255
- var import_jsx_runtime145 = __toESM(require_jsx_runtime(), 1);
55021
+ var import_jsx_runtime146 = __toESM(require_jsx_runtime(), 1);
54256
55022
  var debugLogger41 = createDebugLogger("STARTUP");
54257
55023
  var PRESSURE_CHECK_INTERVAL_MS = 3e4;
54258
55024
  async function startInteractiveUI(config, settings, startupWarnings, workspaceRoot = process.cwd(), initializationResult, options = {}) {
@@ -54359,7 +55125,7 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
54359
55125
  alive = false;
54360
55126
  };
54361
55127
  }, []);
54362
- return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(PeerInboxFailureContext.Provider, { value: peerInboxFailure, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(PeerMessagingContext.Provider, { value: peerMessaging, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(RemoteInputContext.Provider, { value: remoteInputWatcher, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(DualOutputContext.Provider, { value: dualOutputSinks, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(RemoteControllerContext.Provider, { value: remoteController, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(SettingsContext.Provider, { value: settings, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
55128
+ return /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(PeerInboxFailureContext.Provider, { value: peerInboxFailure, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(PeerMessagingContext.Provider, { value: peerMessaging, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(RemoteInputContext.Provider, { value: remoteInputWatcher, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(DualOutputContext.Provider, { value: dualOutputSinks, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(RemoteControllerContext.Provider, { value: remoteController, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(SettingsContext.Provider, { value: settings, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
54363
55129
  KeypressProvider,
54364
55130
  {
54365
55131
  kittyProtocolEnabled: kittyProtocolStatus.enabled,
@@ -54367,7 +55133,7 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
54367
55133
  debugKeystrokeLogging: settings.merged.general?.debugKeystrokeLogging,
54368
55134
  pasteWorkaround: process.platform === "win32" || nodeMajorVersion < 20,
54369
55135
  initialCapturedInput,
54370
- children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(SessionStatsProvider, { sessionId: config.getSessionId(), children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(VimModeProvider, { settings, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(AgentViewProvider, { config, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(BackgroundTaskViewProvider, { config, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
55136
+ children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(SessionStatsProvider, { sessionId: config.getSessionId(), children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(VimModeProvider, { settings, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(AgentViewProvider, { config, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(BackgroundTaskViewProvider, { config, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
54371
55137
  AppContainer,
54372
55138
  {
54373
55139
  config,
@@ -54387,7 +55153,7 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
54387
55153
  if (useVP) {
54388
55154
  process.stdout.setMaxListeners(0);
54389
55155
  }
54390
- const appTree = /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
55156
+ const appTree = /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
54391
55157
  ErrorBoundary,
54392
55158
  {
54393
55159
  recordForExitEcho: true,
@@ -54401,11 +55167,11 @@ ${error.stack ?? ""}`
54401
55167
  void runExitCleanup().then(() => process.exit(1));
54402
55168
  }, 5e3);
54403
55169
  },
54404
- children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(AppWrapper, {})
55170
+ children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(AppWrapper, {})
54405
55171
  }
54406
55172
  );
54407
55173
  const instance = render_default(
54408
- process.env["DEBUG"] ? /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(import_react181.default.StrictMode, { children: appTree }) : appTree,
55174
+ process.env["DEBUG"] ? /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(import_react181.default.StrictMode, { children: appTree }) : appTree,
54409
55175
  {
54410
55176
  exitOnCtrlC: false,
54411
55177
  isScreenReaderEnabled: config.getScreenReader(),