@organizaone/o1-code 0.19.4 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. package/bundled/qc-helper/docs/features/sub-agents.md +29 -0
  2. package/chunks/{MaxSizedBox-IEWPEYLM.js → MaxSizedBox-K453N7OJ.js} +67 -67
  3. package/chunks/{StandaloneSessionPicker-O5XGGHSV.js → StandaloneSessionPicker-7LEKR6B6.js} +91 -90
  4. package/chunks/{acp-subagent-executor-SARFPLBX.js → acp-subagent-executor-KOZFCXR6.js} +70 -70
  5. package/chunks/{acpAgent-WI2WIHJ2.js → acpAgent-TXF2EESQ.js} +152 -151
  6. package/chunks/{agent-TRD3DVKW.js → agent-NTOX6TWC.js} +46 -46
  7. package/chunks/{agent-headless-L3ODBSIA.js → agent-headless-32TGYQU2.js} +46 -46
  8. package/chunks/{all-providers-Q4UTI7X7.js → all-providers-Q3J2KNYY.js} +2 -2
  9. package/chunks/{anthropicContentGenerator-R5EZMIUD.js → anthropicContentGenerator-C4H5D7AR.js} +10 -10
  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-MA3C46FT.js} +71 -71
  13. package/chunks/{bwrap-execution-PXKLC4L6.js → bwrap-execution-A5QZJK2I.js} +7 -7
  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-U3KIMPCC.js → chunk-2F3GZ6WG.js} +1 -1
  17. package/chunks/{chunk-IZSIFV6S.js → chunk-2I2NK33A.js} +1 -1
  18. package/chunks/{chunk-YCTMVTDP.js → chunk-2SMHE6PC.js} +1 -1
  19. package/chunks/{chunk-OBKNDDZW.js → chunk-2UDEKBYA.js} +54 -54
  20. package/chunks/{chunk-WK44MSGW.js → chunk-32722SNN.js} +1 -1
  21. package/chunks/{chunk-CFFFKDAX.js → chunk-3I7PGVYC.js} +1 -1
  22. package/chunks/{chunk-XC6BAHJR.js → chunk-3K7BQWZY.js} +1 -1
  23. package/chunks/{chunk-E554MWZ4.js → chunk-3SCPHVRF.js} +2 -2
  24. package/chunks/chunk-3UJ6A45H.js +259 -0
  25. package/chunks/{chunk-FRDIFAE7.js → chunk-3YBMUB43.js} +1 -1
  26. package/chunks/{chunk-VUJ4WYBZ.js → chunk-4P64F4DP.js} +1 -1
  27. package/chunks/{chunk-PCN4NLQX.js → chunk-5MP3GGWM.js} +2 -2
  28. package/chunks/{chunk-6XUAD5G6.js → chunk-62UWQRWK.js} +3 -3
  29. package/chunks/{chunk-OSMXNPJP.js → chunk-6CW53FOJ.js} +2 -2
  30. package/chunks/{chunk-7ONVZOIL.js → chunk-6UDLEDID.js} +1 -1
  31. package/chunks/{chunk-53B5T577.js → chunk-7ADYEHKM.js} +1 -1
  32. package/chunks/{chunk-GJFAQ4TA.js → chunk-7CDZR7TE.js} +5 -5
  33. package/chunks/{chunk-S3ERVFHU.js → chunk-7HCWHQSP.js} +9 -9
  34. package/chunks/{chunk-D5LBASZ7.js → chunk-7QFTUN62.js} +1 -1
  35. package/chunks/{chunk-Z3JO7QH2.js → chunk-A55LB5TM.js} +1 -1
  36. package/chunks/{chunk-XOVXSDNN.js → chunk-AGTM6524.js} +2 -2
  37. package/chunks/{chunk-LZPTOCB6.js → chunk-AIU3JWUX.js} +9 -9
  38. package/chunks/{chunk-RGEOMZSI.js → chunk-ASP55J6A.js} +14 -14
  39. package/chunks/{chunk-WN23CFGN.js → chunk-ASQLIG2L.js} +19 -19
  40. package/chunks/{chunk-FIXBGZLC.js → chunk-ASWPB74Q.js} +3 -3
  41. package/chunks/{chunk-KNSZB75B.js → chunk-BEZWXDOT.js} +10 -10
  42. package/chunks/{chunk-Q4SBLB6E.js → chunk-BLABAT4U.js} +2 -2
  43. package/chunks/{chunk-YO3SEHXM.js → chunk-BNJ3IJB7.js} +1 -1
  44. package/chunks/{chunk-74XOBBIF.js → chunk-BP4CPYAM.js} +1 -1
  45. package/chunks/{chunk-73IWVPN4.js → chunk-BRW37PKP.js} +69 -69
  46. package/chunks/{chunk-UOO4TFQV.js → chunk-BZRPH7VF.js} +16 -16
  47. package/chunks/{chunk-TD372APW.js → chunk-CCW6IQGJ.js} +5 -5
  48. package/chunks/{chunk-OMOKTMD5.js → chunk-CDXXQLVZ.js} +5 -5
  49. package/chunks/{chunk-2Z5S36GZ.js → chunk-CMS6LBMK.js} +2 -2
  50. package/chunks/{chunk-XOP6HC4S.js → chunk-D5Y6P57R.js} +3 -3
  51. package/chunks/{chunk-2XBK3KBR.js → chunk-D7DZAA5W.js} +3 -3
  52. package/chunks/{chunk-JOBNLOEW.js → chunk-DNFPKNWM.js} +2 -2
  53. package/chunks/{chunk-ZQBNP2ZQ.js → chunk-DNMM4RF7.js} +3 -3
  54. package/chunks/{chunk-ZHDGCGW7.js → chunk-DRONBPX2.js} +2 -2
  55. package/chunks/{chunk-HYGNYNEB.js → chunk-DV7OATUZ.js} +1 -1
  56. package/chunks/{chunk-QYUMJTBP.js → chunk-DVR4QCFA.js} +2 -2
  57. package/chunks/{chunk-5HVWJGQN.js → chunk-EFTQJBOI.js} +1 -1
  58. package/chunks/{chunk-7OBN7TW6.js → chunk-EOQIIUFY.js} +3 -3
  59. package/chunks/{chunk-3NT6BHLE.js → chunk-G2OKMHVX.js} +5 -5
  60. package/chunks/{chunk-LKU26DC5.js → chunk-G7HV5FVG.js} +2 -2
  61. package/chunks/{chunk-FAOCU5VJ.js → chunk-G7JBBQVU.js} +1 -1
  62. package/chunks/{chunk-NEHYQ3LT.js → chunk-GIB2TRUW.js} +15 -15
  63. package/chunks/{chunk-U6NS36IA.js → chunk-GT2ATHFG.js} +4 -4
  64. package/chunks/{chunk-75UFQ4VY.js → chunk-H2GNNVMW.js} +4 -4
  65. package/chunks/{chunk-FFUKRRCR.js → chunk-HAZNBQPI.js} +1 -1
  66. package/chunks/{chunk-PZPDQGRC.js → chunk-HCD2C6MU.js} +8 -8
  67. package/chunks/{chunk-ID6BF7FM.js → chunk-HO45CNDB.js} +1 -1
  68. package/chunks/{chunk-H5AU3734.js → chunk-HVQQIKDI.js} +1 -1
  69. package/chunks/{chunk-2MXORWOC.js → chunk-IMLPJ76O.js} +1 -1
  70. package/chunks/{chunk-DUHNRPAF.js → chunk-INGWSCK5.js} +1 -1
  71. package/chunks/{chunk-VBDGXRYM.js → chunk-IV56M43Z.js} +6 -6
  72. package/chunks/{chunk-H4GDMMIG.js → chunk-IVVMETSX.js} +1 -1
  73. package/chunks/{chunk-7LFCBMVX.js → chunk-JEUH2DSW.js} +2 -2
  74. package/chunks/{chunk-LJLEOFW5.js → chunk-JF3N4RE2.js} +1 -1
  75. package/chunks/{chunk-TC6APBKO.js → chunk-JIECZNY6.js} +1 -1
  76. package/chunks/{chunk-NIPNNHXO.js → chunk-JSRLBGQW.js} +9 -9
  77. package/chunks/{chunk-H4OG24QJ.js → chunk-JXHE3Q7W.js} +10 -10
  78. package/chunks/{chunk-GNF3RKRI.js → chunk-K3XD5ECD.js} +1 -1
  79. package/chunks/{chunk-NLDWAN5E.js → chunk-KPX5HEZT.js} +1 -1
  80. package/chunks/{chunk-QYVHXOTK.js → chunk-KT4SJM3N.js} +4 -4
  81. package/chunks/{chunk-7R7LA5F5.js → chunk-KUPFPBJP.js} +18 -18
  82. package/chunks/{chunk-HHG3UCD5.js → chunk-LO6VR36F.js} +25 -4
  83. package/chunks/{chunk-TZKJ3CYY.js → chunk-LOB3R2LB.js} +1 -1
  84. package/chunks/{chunk-7S2AYA27.js → chunk-M7ZHP7VU.js} +1 -1
  85. package/chunks/{chunk-O7ZK6JUE.js → chunk-N7CYQT7L.js} +26 -26
  86. package/chunks/{chunk-HFQJYTZB.js → chunk-NGEWU2DI.js} +3 -3
  87. package/chunks/{chunk-EAULWM27.js → chunk-NJYNBWEO.js} +2 -2
  88. package/chunks/{chunk-CJG6P7UJ.js → chunk-NZWZTJMM.js} +7 -7
  89. package/chunks/{chunk-2I7F4TTF.js → chunk-O3FUFDAZ.js} +1 -1
  90. package/chunks/{chunk-G5QZC3KV.js → chunk-OJAGNSHH.js} +3 -3
  91. package/chunks/{chunk-CQURIVUY.js → chunk-OMMOMHTD.js} +6 -6
  92. package/chunks/{chunk-ZPCVRY42.js → chunk-P2JIFC4O.js} +1 -1
  93. package/chunks/{chunk-R54WGB5K.js → chunk-P5SAF7QU.js} +7 -7
  94. package/chunks/{chunk-5MGXHMC4.js → chunk-P6KD4P3E.js} +1 -1
  95. package/chunks/{chunk-XVSSUT2K.js → chunk-PHCY2DQ2.js} +4 -4
  96. package/chunks/{chunk-OPYQYNSR.js → chunk-PJZS6TLH.js} +11 -11
  97. package/chunks/{chunk-B3E57DII.js → chunk-PUBQDZLP.js} +1 -1
  98. package/chunks/{chunk-NUADBQGA.js → chunk-PW5PDEJH.js} +11 -11
  99. package/chunks/{chunk-HKBLZQYR.js → chunk-Q6IDKPJW.js} +1 -1
  100. package/chunks/{chunk-V75J4GJ2.js → chunk-QCE3SPTV.js} +1 -1
  101. package/chunks/{chunk-ADHXMZ3K.js → chunk-QECJHTGC.js} +1 -1
  102. package/chunks/{chunk-ZJLBESKM.js → chunk-QFGPKAOX.js} +2 -2
  103. package/chunks/{chunk-63PQ6B3U.js → chunk-QHTEPXED.js} +1 -1
  104. package/chunks/{chunk-4LITKLIX.js → chunk-QIRJOOS6.js} +71 -71
  105. package/chunks/{chunk-WA5T74EJ.js → chunk-QMTHJGAM.js} +5 -5
  106. package/chunks/{chunk-RJBN74YD.js → chunk-QSFWRJQF.js} +2 -2
  107. package/chunks/{chunk-GQCAN53O.js → chunk-RV2TL4NM.js} +2 -2
  108. package/chunks/{chunk-HU66EQY6.js → chunk-RVRJZT5M.js} +1 -1
  109. package/chunks/{chunk-X4OQN3ZO.js → chunk-SDKL3D4L.js} +2 -2
  110. package/chunks/{chunk-VT3TJFQR.js → chunk-SHADJNT6.js} +2 -2
  111. package/chunks/{chunk-JX3AAXJY.js → chunk-SKPIIDV3.js} +1 -1
  112. package/chunks/{chunk-KC5PN54N.js → chunk-SSIOTLWY.js} +3 -3
  113. package/chunks/{chunk-RNEMD6QU.js → chunk-SU6K5JRJ.js} +1 -1
  114. package/chunks/{chunk-IWYGXAQU.js → chunk-SYMYKLO4.js} +2 -0
  115. package/chunks/{chunk-VEJCE7UR.js → chunk-SZ26YNBZ.js} +1 -1
  116. package/chunks/{chunk-FH534GWJ.js → chunk-T4WPMWU4.js} +1256 -1107
  117. package/chunks/{chunk-LH3T52KS.js → chunk-T5Z45XLU.js} +1 -1
  118. package/chunks/{chunk-2LB3FV6Y.js → chunk-TB7SJODY.js} +5 -5
  119. package/chunks/{chunk-MZI6FDZT.js → chunk-THO5UG52.js} +1 -1
  120. package/chunks/{chunk-7ZXK4ANS.js → chunk-TIWB6RLI.js} +29 -29
  121. package/chunks/{chunk-JFO6OCHQ.js → chunk-TYYTQIEZ.js} +1 -1
  122. package/chunks/{chunk-JKOS3HZY.js → chunk-UBBREU4U.js} +3 -3
  123. package/chunks/{chunk-QTI36T2P.js → chunk-ULFANPGF.js} +5 -5
  124. package/chunks/{chunk-OW44PTOE.js → chunk-UUZBSXW2.js} +8 -8
  125. package/chunks/{chunk-DQZYZDIL.js → chunk-UW4Q5E5P.js} +1 -1
  126. package/chunks/{chunk-OT7EXUL3.js → chunk-VCYXTJKE.js} +3 -3
  127. package/chunks/{chunk-GVWQRVLV.js → chunk-VEGSKFFR.js} +1 -1
  128. package/chunks/{chunk-QGBGLKMW.js → chunk-VHFC6CDB.js} +27 -27
  129. package/chunks/{chunk-SGO7T2LC.js → chunk-VRHNWL5X.js} +2 -2
  130. package/chunks/{chunk-YBZG6WG2.js → chunk-VYUHXV5Q.js} +2 -2
  131. package/chunks/{chunk-HDCVSMR4.js → chunk-WEPGJI5V.js} +67 -24
  132. package/chunks/{chunk-PPHCWNOW.js → chunk-WFLDNTCT.js} +4 -4
  133. package/chunks/{chunk-6GEEXVXS.js → chunk-WRHVLLKJ.js} +5 -5
  134. package/chunks/{chunk-OJSW65PQ.js → chunk-WXMXXBCC.js} +5 -2
  135. package/chunks/{chunk-FNALBCC7.js → chunk-WXTAP6NR.js} +1 -1
  136. package/chunks/{chunk-I5INQP6E.js → chunk-XA3N5TO5.js} +1 -1
  137. package/chunks/{chunk-FJHDFJVI.js → chunk-XI7IX5QR.js} +1 -1
  138. package/chunks/{chunk-Y5KGWAF5.js → chunk-Y5P7ZZEN.js} +3 -3
  139. package/chunks/{chunk-QG4PTE3V.js → chunk-Y7AZBD2R.js} +3 -3
  140. package/chunks/{chunk-4QVZPLPW.js → chunk-YMZWUG55.js} +4 -4
  141. package/chunks/{chunk-KHSEVS3O.js → chunk-YU6Z65RE.js} +2 -2
  142. package/chunks/{chunk-O7RFFTTE.js → chunk-YWMF5ROG.js} +4 -4
  143. package/chunks/{chunk-R4ECPR25.js → chunk-YXYCU2GM.js} +3 -3
  144. package/chunks/{chunk-6NPHWGZJ.js → chunk-ZHF2UQ6M.js} +1 -1
  145. package/chunks/{clip-audio-BJ42NS5B.js → clip-audio-5ZTGLERU.js} +1 -1
  146. package/chunks/{clip-image-FDBAIKGB.js → clip-image-HLDAHQPL.js} +1 -1
  147. package/chunks/{clip-video-6KVC2IFL.js → clip-video-NXRDICLV.js} +1 -1
  148. package/chunks/{codex-subagent-executor-Z7IEFWUH.js → codex-subagent-executor-XDCQSK23.js} +70 -70
  149. package/chunks/{config-AC45I6CL.js → config-72LNOXYX.js} +2 -2
  150. package/chunks/{container-execution-environment-O2I5SDUH.js → container-execution-environment-RKRAWXR3.js} +2 -2
  151. package/chunks/{contextCommand-ZTVVWBIV.js → contextCommand-6HRAN3Q2.js} +68 -68
  152. package/chunks/{convert-image-AYXBZ3TH.js → convert-image-4MPD5TZ5.js} +1 -1
  153. package/chunks/{core-runtime-UERTINTN.js → core-runtime-MFAU5CF4.js} +66 -66
  154. package/chunks/{create-sub-session-BJIHWC5U.js → create-sub-session-EUZQNTYQ.js} +67 -67
  155. package/chunks/{create-sub-session-O237VOIB.js → create-sub-session-UEQ23VBD.js} +2 -2
  156. package/chunks/{cron-create-FFFFZH7M.js → cron-create-WPK3NNT4.js} +1 -1
  157. package/chunks/{cron-delete-XXYQNHGZ.js → cron-delete-6V6MDQ6Z.js} +1 -1
  158. package/chunks/{cron-list-GBJYKY27.js → cron-list-TPJEL73F.js} +1 -1
  159. package/chunks/{daemon-git-worktree-guard-5KO4CWOV.js → daemon-git-worktree-guard-JHY5W4ZW.js} +67 -67
  160. package/chunks/{daemon-status-provider-77MFFWPG.js → daemon-status-provider-IV2EYOEH.js} +76 -76
  161. package/chunks/{daemon-trust-policy-QS7LZ4DW.js → daemon-trust-policy-ENUUMAXH.js} +72 -72
  162. package/chunks/{daemon-trust-policy-monitor-AY7BR4O7.js → daemon-trust-policy-monitor-FMG7RJKV.js} +72 -72
  163. package/chunks/{deferred-core-runtime-OCMBUSB5.js → deferred-core-runtime-CJQCZJPG.js} +69 -69
  164. package/chunks/{display-image-U6HZKF3G.js → display-image-T6P5QTKW.js} +3 -3
  165. package/chunks/{downsample-audio-HSPMS25U.js → downsample-audio-IGOEKKHD.js} +1 -1
  166. package/chunks/{downsample-image-BFBX343I.js → downsample-image-HDL6LZNC.js} +4 -4
  167. package/chunks/{downscale-video-GQ5ZMJRX.js → downscale-video-XZNDYVK4.js} +1 -1
  168. package/chunks/{edit-TLQKC3LG.js → edit-XGLKDGPA.js} +48 -48
  169. package/chunks/{en-YJDPOSAW.js → en-LFESTYTB.js} +42 -0
  170. package/chunks/{enter-worktree-MF4APJEN.js → enter-worktree-FY6Y6APX.js} +5 -5
  171. package/chunks/{enterPlanMode-76BPF6LH.js → enterPlanMode-7S4DMCPX.js} +48 -48
  172. package/chunks/{environment-AMUW2KX3.js → environment-2JAP76AW.js} +68 -68
  173. package/chunks/{errors-KNTKHM6L.js → errors-YOLWCYL7.js} +68 -68
  174. package/chunks/{exec-J7LCEEPS.js → exec-36YD62RP.js} +1 -1
  175. package/chunks/{execution-sandbox-config-VE7OGRXY.js → execution-sandbox-config-2RI6A7VE.js} +8 -8
  176. package/chunks/{execution-tool-263V5JEK.js → execution-tool-4HC3L4TQ.js} +49 -49
  177. package/chunks/{execution-worker-JHOCJBIN.js → execution-worker-5RRYF3B6.js} +57 -57
  178. package/chunks/{exit-worktree-DXSLV6EM.js → exit-worktree-Q3ZHCBYN.js} +5 -5
  179. package/chunks/{exitPlanMode-K6B2JODR.js → exitPlanMode-NZHLFZLJ.js} +46 -46
  180. package/chunks/{extract-audio-3LB2Q736.js → extract-audio-AYEXZ2KS.js} +1 -1
  181. package/chunks/{extract-keyframes-6ZP65BJF.js → extract-keyframes-UQVW7UH6.js} +1 -1
  182. package/chunks/{fast-path-FHLBTDKD.js → fast-path-NIGD342A.js} +5 -5
  183. package/chunks/{glob-EBASENJF.js → glob-ELCVZAJ4.js} +47 -47
  184. package/chunks/{goal-tools-QZECYB4S.js → goal-tools-7BG6WES7.js} +46 -46
  185. package/chunks/{grep-NAW5AFAD.js → grep-JBR55JCA.js} +3 -3
  186. package/chunks/{handleAutoUpdate-XBTIE4FC.js → handleAutoUpdate-5GKL7VQ6.js} +69 -69
  187. package/chunks/{i18n-J7ANXY2X.js → i18n-OMIA7E4U.js} +67 -67
  188. package/chunks/{image-gen-Q4E7L7EV.js → image-gen-27Q5XGGZ.js} +1 -1
  189. package/chunks/{initializer-6INBSHTX.js → initializer-NG5E4POR.js} +72 -72
  190. package/chunks/{installationInfo-VK32EWFR.js → installationInfo-7VHALE7P.js} +66 -66
  191. package/chunks/{list-KEQUWD6M.js → list-MWDQAIAZ.js} +74 -74
  192. package/chunks/{list-agents-A7UJ6VXZ.js → list-agents-T2EHYFCL.js} +1 -1
  193. package/chunks/{llm-CR5OP72L.js → llm-3ZAGCSJL.js} +125 -120
  194. package/chunks/{llm-content-generator-K2DRDNXN.js → llm-content-generator-SFPAYYOJ.js} +7 -7
  195. package/chunks/{loadedSettingsAdapter-PJPH4OCO.js → loadedSettingsAdapter-RBAYH3F2.js} +72 -72
  196. package/chunks/{local-execution-environment-QC5UHGMN.js → local-execution-environment-AJF47BTW.js} +57 -57
  197. package/chunks/{loggingContentGenerator-DJEMIYHV.js → loggingContentGenerator-5MDGVYRW.js} +58 -58
  198. package/chunks/{loop-wakeup-BKO62IMW.js → loop-wakeup-RC454BL4.js} +2 -2
  199. package/chunks/{ls-KIV7RGKE.js → ls-RZYAZPVC.js} +2 -2
  200. package/chunks/{lsp-TYQ3HXES.js → lsp-ZHD2YAJ5.js} +1 -1
  201. package/chunks/{managed-npm-update-3SDAWD4R.js → managed-npm-update-N2WHAQ6J.js} +66 -66
  202. package/chunks/{mcp-TYYYLGMV.js → mcp-YKMSQCHU.js} +72 -72
  203. package/chunks/{memory-side-query-BSVTSKCB.js → memory-side-query-DNXJZB7B.js} +2 -2
  204. package/chunks/{model-call-collection-FFR7ZNWD.js → model-call-collection-BE2H44PN.js} +3 -3
  205. package/chunks/{model-configuration-GUZIIGAH.js → model-configuration-4U5BOYQX.js} +73 -73
  206. package/chunks/{modelConfigUtils-PKQ46KSJ.js → modelConfigUtils-OJZUSINX.js} +68 -68
  207. package/chunks/{monitor-FNMBX5BB.js → monitor-3WKOMMC6.js} +47 -47
  208. package/chunks/{nonInteractiveCli-LATJ4A34.js → nonInteractiveCli-MGX6RBDW.js} +106 -105
  209. package/chunks/{nonInteractiveToolExecutor-YQOVVH6B.js → nonInteractiveToolExecutor-XVGERMMR.js} +47 -47
  210. package/chunks/{notebook-edit-BW4DJWZU.js → notebook-edit-WPIXQ25B.js} +47 -47
  211. package/chunks/{ocr-image-O6ECQNUE.js → ocr-image-UTGQDI5V.js} +3 -3
  212. package/chunks/{omni-YYVIGRGX.js → omni-34TDK3DM.js} +16 -16
  213. package/chunks/{openaiContentGenerator-FG3UZCTL.js → openaiContentGenerator-XNEEZYGM.js} +51 -51
  214. package/chunks/{openaiResponsesContentGenerator-XOT5DTAC.js → openaiResponsesContentGenerator-PAWM7H5R.js} +12 -12
  215. package/chunks/{processUtils-QBMARONE.js → processUtils-GJWNO6CX.js} +2 -2
  216. package/chunks/{prompt-terminal-ledger-VUCLICZG.js → prompt-terminal-ledger-LN6JQ2G2.js} +67 -67
  217. package/chunks/{pt-TSNNSVF3.js → pt-EY6TJFGW.js} +42 -0
  218. package/chunks/{reactive-degrade-VPQZF55X.js → reactive-degrade-7C3JTVTP.js} +12 -12
  219. package/chunks/{read-file-2O33TKD7.js → read-file-XZXFDCA6.js} +13 -13
  220. package/chunks/{read-mcp-resource-TYAD3TBP.js → read-mcp-resource-4NSQ2WFB.js} +1 -1
  221. package/chunks/{recall-media-memory-tool-WIFEB2OG.js → recall-media-memory-tool-7NAM2ZGH.js} +2 -2
  222. package/chunks/{record-artifact-IVE6QT4D.js → record-artifact-LAQGMYDN.js} +2 -2
  223. package/chunks/{record-source-ANENC5K7.js → record-source-NRW6TYWW.js} +6 -6
  224. package/chunks/{report-findings-W75NCFXY.js → report-findings-OVUUKGUX.js} +3 -3
  225. package/chunks/{request-shutdown-LRWCJOEG.js → request-shutdown-MXKAXR2D.js} +5 -5
  226. package/chunks/{resumeHistoryUtils-PLGVAEHT.js → resumeHistoryUtils-BLD2JYBR.js} +72 -72
  227. package/chunks/{ripGrep-U4HZCL4K.js → ripGrep-V2UHA5BK.js} +17 -17
  228. package/chunks/{run-o1-code-serve-B5XNSRQI.js → run-o1-code-serve-X6RDPQQN.js} +35 -35
  229. package/chunks/{runtime-shell-policy-R4LXGDDO.js → runtime-shell-policy-ENSGJINV.js} +1 -1
  230. package/chunks/{sandboxConfig-6LJHLGOT.js → sandboxConfig-BYPE3SB6.js} +66 -66
  231. package/chunks/{scheduled-tasks-DBHHUK3R.js → scheduled-tasks-YXWYCZIW.js} +74 -74
  232. package/chunks/{scheduler-XHIPT4EI.js → scheduler-XCPGPBZJ.js} +68 -68
  233. package/chunks/{sdk-exporters-grpc-7ZF7NWTA.js → sdk-exporters-grpc-U5H74BEL.js} +2 -2
  234. package/chunks/{sdk-exporters-http-73LTU25J.js → sdk-exporters-http-34H6REMF.js} +3 -3
  235. package/chunks/{sdk-impl-IAUUHG7Z.js → sdk-impl-5OTPCVXV.js} +5 -5
  236. package/chunks/{send-message-XY7EC52V.js → send-message-KFUNQQFA.js} +5 -5
  237. package/chunks/{serve-6MCT2M2A.js → serve-FBHWAMZQ.js} +72 -72
  238. package/chunks/{server-B3KEPLVK.js → server-UQLKGTWU.js} +131 -131
  239. package/chunks/{session-XDZM36XY.js → session-OGWTPHTK.js} +107 -106
  240. package/chunks/{session-DTLH45KY.js → session-VPWL2DX2.js} +1 -1
  241. package/chunks/{session-attachments-root-DUCWV5SV.js → session-attachments-root-M26TQWO6.js} +66 -66
  242. package/chunks/{session-pr-refresh-6XZHJOHJ.js → session-pr-refresh-XURIUCED.js} +73 -73
  243. package/chunks/{settings-EIBLUO2U.js → settings-6MJCNEY5.js} +71 -71
  244. package/chunks/{shell-7U5KEVDP.js → shell-RIIDO6RZ.js} +46 -46
  245. package/chunks/{skill-RQNSH7FP.js → skill-W5GW56BH.js} +17 -17
  246. package/chunks/{skill-settings-RLPBS65V.js → skill-settings-DMGR5FHY.js} +72 -72
  247. package/chunks/{spawnChannel-ORMDVKIV.js → spawnChannel-RWGGO6X2.js} +69 -69
  248. package/chunks/{standalone-update-EFWC3EXO.js → standalone-update-XVR7WYWV.js} +68 -68
  249. package/chunks/{startInteractiveUI-XPJQ6N4R.js → startInteractiveUI-QE25VGX2.js} +1632 -867
  250. package/chunks/{syntheticOutput-6NR7LSGN.js → syntheticOutput-KZMNOKOG.js} +2 -2
  251. package/chunks/{task-create-2BHPJUF3.js → task-create-EHGTZMSD.js} +6 -6
  252. package/chunks/{task-list-6LPOL5UB.js → task-list-ABYOHJDS.js} +1 -1
  253. package/chunks/{task-stop-VGLKJLBG.js → task-stop-6L7G4RYB.js} +2 -2
  254. package/chunks/{task-update-NGKKBFU5.js → task-update-LBXI5OVE.js} +6 -6
  255. package/chunks/{team-create-NQUT63NA.js → team-create-V5DQGWMS.js} +46 -46
  256. package/chunks/{team-delete-WBSKRFVF.js → team-delete-RL37ORM3.js} +1 -1
  257. package/chunks/{team-plan-approval-ZICR7PLR.js → team-plan-approval-2NIL3Q77.js} +46 -46
  258. package/chunks/{terminal-image-renderer-KNBEKIBU.js → terminal-image-renderer-CRCFT57H.js} +66 -66
  259. package/chunks/{theme-manager-ELLW2WSH.js → theme-manager-TCTYBF5V.js} +66 -66
  260. package/chunks/{todoWrite-AX43SXLU.js → todoWrite-ARTSGNNA.js} +1 -1
  261. package/chunks/{tool-call-GVZHLCX6.js → tool-call-V225426S.js} +6 -6
  262. package/chunks/{tool-result-media-GVAXAMIM.js → tool-result-media-IISRSEFL.js} +16 -16
  263. package/chunks/{tool-search-5YDYOBEY.js → tool-search-EMMXLL3Z.js} +17 -17
  264. package/chunks/{total-session-admission-5J6FUOHB.js → total-session-admission-I6256XRH.js} +71 -71
  265. package/chunks/{transcribe-audio-R6YC24KU.js → transcribe-audio-WOITX4I2.js} +2 -2
  266. package/chunks/{trustedFolders-L4OBHBMG.js → trustedFolders-VYKGMRLU.js} +67 -67
  267. package/chunks/{understand-video-segments-2WK4T6PO.js → understand-video-segments-YFCIFF7P.js} +3 -3
  268. package/chunks/{update-relaunch-OLWQOXJD.js → update-relaunch-N6Q6SXQR.js} +5 -5
  269. package/chunks/{updateCheck-P4256JN4.js → updateCheck-MHHINLNL.js} +68 -68
  270. package/chunks/{upload-config-W6QM7O7M.js → upload-config-4NBDT35S.js} +7 -7
  271. package/chunks/{useAutoAcceptIndicator-GAV5FOVS.js → useAutoAcceptIndicator-PSLAXXIF.js} +76 -75
  272. package/chunks/{validateNonInterActiveAuth-JSAM5DKT.js → validateNonInterActiveAuth-7Q7WV7ZN.js} +103 -102
  273. package/chunks/{version-J4K7YJEP.js → version-AJLUIHWI.js} +1 -1
  274. package/chunks/{web-fetch-KU4CTSQA.js → web-fetch-4HI4SH5S.js} +13 -13
  275. package/chunks/{web-search-6EC47GMF.js → web-search-432FZTQD.js} +9 -9
  276. package/chunks/{workflow-4LNE5CRK.js → workflow-KVNXIEIQ.js} +49 -49
  277. package/chunks/{workspace-providers-status-5X5EEQU4.js → workspace-providers-status-7UBH5FZO.js} +78 -78
  278. package/chunks/{workspace-registration-store-B7RGZ7XC.js → workspace-registration-store-NWN4IAHF.js} +1 -1
  279. package/chunks/{workspace-registry-DGFL345F.js → workspace-registry-X2NLZYDK.js} +71 -71
  280. package/chunks/{workspace-runtime-coordinator-JOUD45MU.js → workspace-runtime-coordinator-SGKJJPRO.js} +72 -72
  281. package/chunks/{workspace-service-MVNGRTAX.js → workspace-service-RABSJN2O.js} +77 -77
  282. package/chunks/{workspace-skills-status-54YB4YNO.js → workspace-skills-status-NWLUCLXW.js} +75 -75
  283. package/chunks/{workspace-trust-reconciler-XWTFKN7T.js → workspace-trust-reconciler-6L5CEM6N.js} +77 -77
  284. package/chunks/{write-file-PAA35JB5.js → write-file-C3GFBE6P.js} +49 -49
  285. package/chunks/{zoom-image-7UF6I5FM.js → zoom-image-DVMN6NQZ.js} +13 -13
  286. package/cli.js +14 -14
  287. package/execution-worker.js +1 -1
  288. package/export-transcript-document.js +3 -3
  289. package/locales/en.js +50 -0
  290. package/locales/pt.js +50 -0
  291. package/package.json +3 -2
  292. package/release-notes.json +13 -0
  293. package/vendor/ripgrep/COPYING +11 -0
  294. package/vendor/ripgrep/LICENSE-MIT +21 -0
  295. package/vendor/ripgrep/UNLICENSE +24 -0
  296. package/vendor/ripgrep/arm64-win32/rg.exe +0 -0
  297. package/web-shell/assets/{abnfDiagram-VCTEODGH-DaskAjYa.js → abnfDiagram-VCTEODGH-4tyJ-IOM.js} +1 -1
  298. package/web-shell/assets/{arc-CeF5eQNa.js → arc-D5XHMvp_.js} +1 -1
  299. package/web-shell/assets/{architectureDiagram-5GKGNRK7-0cJpQiMQ.js → architectureDiagram-5GKGNRK7-DTJyMJ4K.js} +1 -1
  300. package/web-shell/assets/{blockDiagram-NRAW4CY4-ZRZ9t0GN.js → blockDiagram-NRAW4CY4-llcJtAbu.js} +1 -1
  301. package/web-shell/assets/{c4Diagram-UCG6FXSJ-wIoBOLjK.js → c4Diagram-UCG6FXSJ-CVRnieKp.js} +1 -1
  302. package/web-shell/assets/channel-DrXxrVwN.js +1 -0
  303. package/web-shell/assets/{chunk-2Q5K7J3B-CRe2K3To.js → chunk-2Q5K7J3B-BBQuSBIP.js} +1 -1
  304. package/web-shell/assets/{chunk-5VM5RSS4-BG67yUA9.js → chunk-5VM5RSS4-KWslePRD.js} +1 -1
  305. package/web-shell/assets/{chunk-F27PBJKO-B1d6n5eI.js → chunk-F27PBJKO-Crl6QExg.js} +1 -1
  306. package/web-shell/assets/{chunk-G27WJ6UU-CIVn7PDx.js → chunk-G27WJ6UU-C-W9cosE.js} +1 -1
  307. package/web-shell/assets/{chunk-JWPE2WC7-BUCoEgYK.js → chunk-JWPE2WC7-B19IzqnN.js} +1 -1
  308. package/web-shell/assets/{chunk-LCL6LL3I-BEcferer.js → chunk-LCL6LL3I-BJqzCD90.js} +1 -1
  309. package/web-shell/assets/{chunk-POPQ4Y6H-CpdZE7zI.js → chunk-POPQ4Y6H-DYkXv4Bl.js} +1 -1
  310. package/web-shell/assets/{chunk-SVP7TREG-B9JFFHOW.js → chunk-SVP7TREG-DZaAk_mv.js} +1 -1
  311. package/web-shell/assets/{chunk-XXDRQBXY-D7hHjiYq.js → chunk-XXDRQBXY-DgbKuHRM.js} +1 -1
  312. package/web-shell/assets/classDiagram-DTDB5LWJ-BoFTh2ij.js +1 -0
  313. package/web-shell/assets/classDiagram-v2-JRS7N3AN-BoFTh2ij.js +1 -0
  314. package/web-shell/assets/{cose-bilkent-JH36ORCC-B3CuOihi.js → cose-bilkent-JH36ORCC-CrWjEQBv.js} +1 -1
  315. package/web-shell/assets/{cynefin-OW5HDTMX-BL-7Y9zJ.js → cynefin-OW5HDTMX-DbUKAEfO.js} +1 -1
  316. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-B4B-aYh1.js → cynefinDiagram-5FMLGOSQ-Ct60E7KW.js} +1 -1
  317. package/web-shell/assets/{dagre-3AP2YEHR-DeLGsLtP.js → dagre-3AP2YEHR-DqpsNq-m.js} +1 -1
  318. package/web-shell/assets/{diagram-S7CK7UJ4-CD1ow9s5.js → diagram-S7CK7UJ4-gK_a8S13.js} +1 -1
  319. package/web-shell/assets/{diagram-UQ7AKVKN-BLXrwSIS.js → diagram-UQ7AKVKN-IYxdlPdp.js} +1 -1
  320. package/web-shell/assets/{diagram-VSXAHHWV-C_4s_9Gq.js → diagram-VSXAHHWV-C7_1o5YQ.js} +1 -1
  321. package/web-shell/assets/{diagram-VX7I27RA-CDfysUiq.js → diagram-VX7I27RA-DsGivJVm.js} +1 -1
  322. package/web-shell/assets/{diagram-Z3DM3KII-B_nOMJNo.js → diagram-Z3DM3KII-3Iw2ASQH.js} +1 -1
  323. package/web-shell/assets/{ebnfDiagram-PWID7BFC-Bq9OS-2B.js → ebnfDiagram-PWID7BFC-HUst2lkU.js} +1 -1
  324. package/web-shell/assets/{erDiagram-SSCWMZ5O-DdYlHfr0.js → erDiagram-SSCWMZ5O-BFJOXs7K.js} +1 -1
  325. package/web-shell/assets/{flowDiagram-A5DVABFB-BEMFnzjR.js → flowDiagram-A5DVABFB-lZYOtflc.js} +1 -1
  326. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-CUnEB8YA.js → ganttDiagram-EL5Y4UJY-B2Q9UVpC.js} +1 -1
  327. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-BZ3xFWS5.js → gitGraphDiagram-WWUBYQGX-BIFm5rz-.js} +1 -1
  328. package/web-shell/assets/{index-X14MyJWi.js → index-C-r7y6m-.js} +5 -5
  329. package/web-shell/assets/{index-CQ5O0GyT.js → index-DLqoza9Y.js} +1 -1
  330. package/web-shell/assets/{infoDiagram-RXCK75RN-DdBkiCU5.js → infoDiagram-RXCK75RN-DV3V_JPX.js} +1 -1
  331. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CQwdIl4G.js → ishikawaDiagram-5VMMS53U-BsdDREEa.js} +1 -1
  332. package/web-shell/assets/{journeyDiagram-EYS64GPL-CHthIOzQ.js → journeyDiagram-EYS64GPL-0XvVKCig.js} +1 -1
  333. package/web-shell/assets/{kanban-definition-3QL26DDD-wsQvYKZn.js → kanban-definition-3QL26DDD-CiYa40sA.js} +1 -1
  334. package/web-shell/assets/{layout-BizdV6jP.js → layout-BSOIn-1S.js} +1 -1
  335. package/web-shell/assets/{linear-BjxyKDV-.js → linear-CkiKAyO2.js} +1 -1
  336. package/web-shell/assets/{mermaid.core-C5zbhLSB.js → mermaid.core-Q4YMjYlN.js} +6 -6
  337. package/web-shell/assets/{mindmap-definition-FBJOCRG2-B1fXC6cz.js → mindmap-definition-FBJOCRG2-DFR6o-MY.js} +1 -1
  338. package/web-shell/assets/{pegDiagram-XKGWAZYB-BWkVT1h_.js → pegDiagram-XKGWAZYB-BJHry1Zc.js} +1 -1
  339. package/web-shell/assets/{pieDiagram-E7YTZNPT-mXFpa0SY.js → pieDiagram-E7YTZNPT-UZQLuq5B.js} +1 -1
  340. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CgURyFxf.js → quadrantDiagram-AXDQQJYC-BjwMxG-u.js} +1 -1
  341. package/web-shell/assets/{railroadDiagram-O6MQD6OU-BKWdEmSU.js → railroadDiagram-O6MQD6OU-_YgpF2tc.js} +1 -1
  342. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-DQfXvBnO.js → requirementDiagram-EFPCY7ZU-B_ZzJOTx.js} +1 -1
  343. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C2NHJ-vh.js → sankeyDiagram-P5KCCOFB-B_OwV9en.js} +1 -1
  344. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BMY1NnO-.js → sequenceDiagram-WJ2MYXX4-CA2Vree8.js} +1 -1
  345. package/web-shell/assets/{sizeCapture-X5ZJPWSS-H_G6QbIF.js → sizeCapture-X5ZJPWSS-BUic5VOB.js} +1 -1
  346. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BpXGLI-f.js → stateDiagram-HBIQ2CUA-CjzVK9sL.js} +1 -1
  347. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-BfStDX1l.js +1 -0
  348. package/web-shell/assets/{swimlanes-XN3QIQJK-CK7vT1lz.js → swimlanes-XN3QIQJK-BJKsEct6.js} +1 -1
  349. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DAK1VhpN.js +8 -0
  350. package/web-shell/assets/{timeline-definition-24CTP7MA-hlwSiLfp.js → timeline-definition-24CTP7MA-1PAhR9eu.js} +1 -1
  351. package/web-shell/assets/{vennDiagram-4TSXK5OY-D6np4JGg.js → vennDiagram-4TSXK5OY-BCLxmcKg.js} +1 -1
  352. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CciJIRt_.js → wardleyDiagram-VM6X3IG4-ChpSHWtA.js} +1 -1
  353. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-KPEsUSHH.js → xychartDiagram-S5SC5T6Z-DNG5XUCm.js} +1 -1
  354. package/web-shell/index.html +1 -1
  355. package/web-shell/sw.js +1 -1
  356. package/windows-clipboard-worker.js +16 -0
  357. package/web-shell/assets/channel-Ys6W9vX4.js +0 -1
  358. package/web-shell/assets/classDiagram-DTDB5LWJ-BlO3Djxk.js +0 -1
  359. package/web-shell/assets/classDiagram-v2-JRS7N3AN-BlO3Djxk.js +0 -1
  360. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-D_O73PF_.js +0 -1
  361. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6yu1hgd.js +0 -8
  362. package/chunks/{chunk-Z3TVPPGU.js → chunk-IE4RH3YW.js} +3 -3
  363. package/chunks/{chunk-2JPUVHYB.js → chunk-JHRVJBV5.js} +3 -3
  364. /package/chunks/{chunk-YZBNAMA2.js → chunk-M6C3BI2P.js} +0 -0
@@ -1,18 +1,102 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ MAX_ACCEPTED_BACKLOG,
5
+ PeerMessaging,
6
+ classifyApiError,
7
+ fireSessionDeleteHook
8
+ } from "./chunk-P6KD4P3E.js";
3
9
  import {
4
10
  buildPermissionSuggestions
5
11
  } from "./chunk-CPURT2SU.js";
6
12
  import {
7
13
  TUI_CHAT_RECORDING_FAILURE_MESSAGE,
8
14
  reportChatRecordingFailureToAdapter
9
- } from "./chunk-2I7F4TTF.js";
15
+ } from "./chunk-O3FUFDAZ.js";
16
+ import {
17
+ MAX_SUGGESTIONS_TO_SHOW,
18
+ SESSION_MENTION_PREFIX,
19
+ buildMcpResourceRef,
20
+ buildMcpServerRef,
21
+ buildSessionRef,
22
+ getExtensionSuggestions,
23
+ handleAtCommand,
24
+ matchMcpServerPrefix,
25
+ normalizeDescription,
26
+ normalizePartList,
27
+ resolveAtCommandQuery
28
+ } from "./chunk-UUZBSXW2.js";
10
29
  import {
11
30
  StreamJsonOutputAdapter
12
- } from "./chunk-PPHCWNOW.js";
31
+ } from "./chunk-WFLDNTCT.js";
32
+ import {
33
+ BuiltinCommandLoader,
34
+ BundledSkillLoader,
35
+ CONTEXT_FILES_ANNOUNCEMENT_PREFIX,
36
+ CommandService,
37
+ DISPLAY_HOOK_EVENTS,
38
+ FileCommandLoader,
39
+ MAX_STACKED_SKILLS,
40
+ McpPromptLoader,
41
+ SLASH_COMMANDS_SKIP_RECORDING,
42
+ SavedWorkflowLoader,
43
+ SkillCommandLoader,
44
+ addConfigToMatcherGroup,
45
+ appendUserPromptExpansionAdditionalContext,
46
+ applyEffortSelection,
47
+ applyOutputStyleSelection,
48
+ buildBackgroundWorkBlockedMessage,
49
+ consumesContextAnnouncementLatch,
50
+ copyToClipboard,
51
+ createEmptyHookEventInfo,
52
+ dayKey,
53
+ describeRemoteOutcome,
54
+ describeRemoteSnapshot,
55
+ findMidInputSlashCommand,
56
+ findSlashCommandTokens,
57
+ formatApprovalModeDescription,
58
+ formatApprovalModeName,
59
+ formatLowRateLimit,
60
+ formatUserPromptExpansionBlockedMessage,
61
+ getAllConfigs,
62
+ getBestSlashCommandMatch,
63
+ getTranslatedSourceDisplayMap,
64
+ hasBlockingBackgroundWork,
65
+ hasSlashCommandPathSeparator,
66
+ isAtCommand,
67
+ isBtwCommand,
68
+ isContextFilesAnnouncement,
69
+ isCrossSessionMessagingEnabled,
70
+ isCrossSessionMessagingOptedIn,
71
+ isMidInputCompletableCommand,
72
+ isPickerOnlyModelInvocation,
73
+ isSlashCommand,
74
+ isStackedSkillCompletableCommand,
75
+ isValidStackedSkillPrefix,
76
+ loadOrganizaOneKeySummary,
77
+ loadSessionOutputStyles,
78
+ parseDayKey,
79
+ parseSlashCommand,
80
+ parseStackedSlashCommands,
81
+ quitCommand,
82
+ recordAutoSkillCommandUsage,
83
+ refreshExtensionContentRuntime,
84
+ resetBackgroundStateForSessionSwitch,
85
+ resolveOutputStyleChoice,
86
+ serializeUserPromptExpansionPrompt,
87
+ supportsMatchers
88
+ } from "./chunk-QIRJOOS6.js";
13
89
  import {
14
90
  startPostRenderPrefetches
15
- } from "./chunk-RGEOMZSI.js";
91
+ } from "./chunk-ASP55J6A.js";
92
+ import {
93
+ EXTENSION_RELOAD_FAILED_REASON,
94
+ ExtensionRefreshState,
95
+ appEvents,
96
+ cleanupReviewWorktreeLeases,
97
+ loadHierarchicalMemory,
98
+ openRemoteSession
99
+ } from "./chunk-BRW37PKP.js";
16
100
  import {
17
101
  AboutBox,
18
102
  BaseSelectionList,
@@ -114,7 +198,22 @@ import {
114
198
  useUIActions,
115
199
  useUIState,
116
200
  useVirtualViewport
117
- } from "./chunk-OBKNDDZW.js";
201
+ } from "./chunk-2UDEKBYA.js";
202
+ import {
203
+ BRAND,
204
+ MAX_EXTENSION_OWNER_LABEL_WIDTH,
205
+ computeSessionStats,
206
+ getCommandDisplayName,
207
+ getCommandSourceBadge,
208
+ getEffectiveSupportedModes,
209
+ repoDocUrl,
210
+ skillOriginLabel
211
+ } from "./chunk-CCW6IQGJ.js";
212
+ import {
213
+ MaxSizedBox,
214
+ OverflowProvider,
215
+ useOverflowState
216
+ } from "./chunk-DSAFH5CY.js";
118
217
  import {
119
218
  CATEGORY_LABELS,
120
219
  ICON,
@@ -136,126 +235,36 @@ import {
136
235
  showsToolLabel,
137
236
  useStreamingContext,
138
237
  waitForGoalRuntime
139
- } from "./chunk-H4OG24QJ.js";
140
- import {
141
- stopAndGetCapturedInput
142
- } from "./chunk-VFLUNXD6.js";
143
- import {
144
- useAutoAcceptIndicator
145
- } from "./chunk-SGO7T2LC.js";
146
- import {
147
- KeypressProvider,
148
- useFocus,
149
- useKeypress,
150
- useKeypressContext
151
- } from "./chunk-QTI36T2P.js";
152
- import {
153
- MAX_ACCEPTED_BACKLOG,
154
- PeerMessaging,
155
- classifyApiError,
156
- fireSessionDeleteHook
157
- } from "./chunk-5MGXHMC4.js";
158
- import {
159
- MAX_SUGGESTIONS_TO_SHOW,
160
- SESSION_MENTION_PREFIX,
161
- buildMcpResourceRef,
162
- buildMcpServerRef,
163
- buildSessionRef,
164
- getExtensionSuggestions,
165
- handleAtCommand,
166
- matchMcpServerPrefix,
167
- normalizeDescription,
168
- normalizePartList,
169
- resolveAtCommandQuery
170
- } from "./chunk-OW44PTOE.js";
171
- import {
172
- BuiltinCommandLoader,
173
- BundledSkillLoader,
174
- CONTEXT_FILES_ANNOUNCEMENT_PREFIX,
175
- CommandService,
176
- DISPLAY_HOOK_EVENTS,
177
- FileCommandLoader,
178
- MAX_STACKED_SKILLS,
179
- McpPromptLoader,
180
- SLASH_COMMANDS_SKIP_RECORDING,
181
- SavedWorkflowLoader,
182
- SkillCommandLoader,
183
- addConfigToMatcherGroup,
184
- appendUserPromptExpansionAdditionalContext,
185
- applyEffortSelection,
186
- applyOutputStyleSelection,
187
- buildBackgroundWorkBlockedMessage,
188
- consumesContextAnnouncementLatch,
189
- copyToClipboard,
190
- createEmptyHookEventInfo,
191
- dayKey,
192
- describeRemoteOutcome,
193
- describeRemoteSnapshot,
194
- findMidInputSlashCommand,
195
- findSlashCommandTokens,
196
- formatApprovalModeDescription,
197
- formatApprovalModeName,
198
- formatLowRateLimit,
199
- formatUserPromptExpansionBlockedMessage,
200
- getAllConfigs,
201
- getBestSlashCommandMatch,
202
- getTranslatedSourceDisplayMap,
203
- hasBlockingBackgroundWork,
204
- hasSlashCommandPathSeparator,
205
- isAtCommand,
206
- isBtwCommand,
207
- isContextFilesAnnouncement,
208
- isCrossSessionMessagingEnabled,
209
- isCrossSessionMessagingOptedIn,
210
- isMidInputCompletableCommand,
211
- isPickerOnlyModelInvocation,
212
- isSlashCommand,
213
- isStackedSkillCompletableCommand,
214
- isValidStackedSkillPrefix,
215
- loadOrganizaOneKeySummary,
216
- loadSessionOutputStyles,
217
- parseDayKey,
218
- parseSlashCommand,
219
- parseStackedSlashCommands,
220
- quitCommand,
221
- recordAutoSkillCommandUsage,
222
- refreshExtensionContentRuntime,
223
- resetBackgroundStateForSessionSwitch,
224
- resolveOutputStyleChoice,
225
- serializeUserPromptExpansionPrompt,
226
- supportsMatchers
227
- } from "./chunk-4LITKLIX.js";
228
- import {
229
- EXTENSION_RELOAD_FAILED_REASON,
230
- ExtensionRefreshState,
231
- appEvents,
232
- cleanupReviewWorktreeLeases,
233
- loadHierarchicalMemory,
234
- openRemoteSession
235
- } from "./chunk-73IWVPN4.js";
236
- import {
237
- BRAND,
238
- MAX_EXTENSION_OWNER_LABEL_WIDTH,
239
- computeSessionStats,
240
- getCommandDisplayName,
241
- getCommandSourceBadge,
242
- getEffectiveSupportedModes,
243
- repoDocUrl,
244
- skillOriginLabel
245
- } from "./chunk-TD372APW.js";
238
+ } from "./chunk-JXHE3Q7W.js";
246
239
  import {
247
240
  contextUsageLabel,
248
241
  formatDuration,
249
242
  formatPercentageUsed,
250
243
  formatRelativeTime,
251
244
  formatTokenCount
252
- } from "./chunk-74XOBBIF.js";
245
+ } from "./chunk-BP4CPYAM.js";
246
+ import {
247
+ extendedTheme,
248
+ theme
249
+ } from "./chunk-NTUVIB2G.js";
250
+ import {
251
+ stopAndGetCapturedInput
252
+ } from "./chunk-VFLUNXD6.js";
253
253
  import {
254
254
  disableKittyProtocol,
255
255
  isKittyProtocolEnabled,
256
256
  isKittyProtocolSupported,
257
257
  pushKittyProtocolFlags
258
258
  } from "./chunk-AYSIXE44.js";
259
+ import {
260
+ useAutoAcceptIndicator
261
+ } from "./chunk-VRHNWL5X.js";
262
+ import {
263
+ KeypressProvider,
264
+ useFocus,
265
+ useKeypress,
266
+ useKeypressContext
267
+ } from "./chunk-ULFANPGF.js";
259
268
  import {
260
269
  BEL,
261
270
  OSC_PREFIX,
@@ -268,29 +277,25 @@ import {
268
277
  oscKittyNotify,
269
278
  saveClipboardImage,
270
279
  writeOsc52
271
- } from "./chunk-HDCVSMR4.js";
280
+ } from "./chunk-WEPGJI5V.js";
281
+ import {
282
+ require_jsx_runtime
283
+ } from "./chunk-SKTOH6US.js";
272
284
  import {
273
285
  sanitizeDisplayText
274
- } from "./chunk-R54WGB5K.js";
286
+ } from "./chunk-P5SAF7QU.js";
275
287
  import "./chunk-AHKE26WU.js";
276
- import "./chunk-KC5PN54N.js";
288
+ import "./chunk-SSIOTLWY.js";
289
+ import {
290
+ AUTO_THEME_NAME,
291
+ DEFAULT_THEME,
292
+ themeManager
293
+ } from "./chunk-VFSP4ZUZ.js";
277
294
  import "./chunk-UMIHM32I.js";
278
295
  import {
279
296
  TOP_FRAME,
280
297
  glyphs
281
298
  } from "./chunk-U6ZAL4MF.js";
282
- import {
283
- MaxSizedBox,
284
- OverflowProvider,
285
- useOverflowState
286
- } from "./chunk-DSAFH5CY.js";
287
- import {
288
- extendedTheme,
289
- theme
290
- } from "./chunk-NTUVIB2G.js";
291
- import {
292
- require_jsx_runtime
293
- } from "./chunk-SKTOH6US.js";
294
299
  import {
295
300
  Box_default,
296
301
  Static,
@@ -308,7 +313,8 @@ import {
308
313
  import {
309
314
  require_react
310
315
  } from "./chunk-2KK65OQ6.js";
311
- import "./chunk-ID6BF7FM.js";
316
+ import "./chunk-4P64F4DP.js";
317
+ import "./chunk-HO45CNDB.js";
312
318
  import "./chunk-G4YDGSSX.js";
313
319
  import {
314
320
  MAX_INLINE_IMAGES_PER_ITEM,
@@ -317,42 +323,35 @@ import {
317
323
  } from "./chunk-KIN34HCU.js";
318
324
  import {
319
325
  setUpdateHandler
320
- } from "./chunk-LKU26DC5.js";
326
+ } from "./chunk-G7HV5FVG.js";
321
327
  import {
322
328
  isHistoryItemVisibleAfterRestore
323
329
  } from "./chunk-64WBFX5X.js";
324
- import "./chunk-X4OQN3ZO.js";
330
+ import "./chunk-SDKL3D4L.js";
325
331
  import "./chunk-7DQWDZUQ.js";
326
332
  import "./chunk-KD7GIK2D.js";
327
- import {
328
- AUTO_THEME_NAME,
329
- DEFAULT_THEME,
330
- themeManager
331
- } from "./chunk-VFSP4ZUZ.js";
333
+ import "./chunk-YXYCU2GM.js";
334
+ import "./chunk-LXUIOY3M.js";
332
335
  import {
333
336
  requestConsentInteractive,
334
337
  requestConsentOrFail
335
- } from "./chunk-VBDGXRYM.js";
338
+ } from "./chunk-IV56M43Z.js";
336
339
  import "./chunk-XZ3MQL2U.js";
337
340
  import {
338
341
  getErrorMessage as getErrorMessage2
339
- } from "./chunk-OT7EXUL3.js";
342
+ } from "./chunk-VCYXTJKE.js";
340
343
  import {
341
344
  relaunchApp
342
- } from "./chunk-HYGNYNEB.js";
345
+ } from "./chunk-DV7OATUZ.js";
343
346
  import "./chunk-XG36NMOI.js";
344
347
  import "./chunk-SPLQKNEP.js";
345
- import "./chunk-VUJ4WYBZ.js";
346
- import "./chunk-R4ECPR25.js";
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-KUPFPBJP.js";
354
354
  import "./chunk-LL7XM3LM.js";
355
- import "./chunk-5HVWJGQN.js";
356
355
  import {
357
356
  cpLen,
358
357
  cpSlice,
@@ -365,6 +364,7 @@ import {
365
364
  toCodePoints,
366
365
  truncateToWidth
367
366
  } from "./chunk-PJF3WRYZ.js";
367
+ import "./chunk-EFTQJBOI.js";
368
368
  import {
369
369
  stringWidth
370
370
  } from "./chunk-F5IN4KK7.js";
@@ -379,44 +379,44 @@ import {
379
379
  isStreamingVoiceModel,
380
380
  resolveVoiceStreamConfig,
381
381
  transcribeVoiceAudio
382
- } from "./chunk-Q4SBLB6E.js";
382
+ } from "./chunk-BLABAT4U.js";
383
383
  import {
384
384
  formatUnsupportedVoiceModelMessage,
385
385
  isSelectableVoiceModel
386
- } from "./chunk-7ONVZOIL.js";
386
+ } from "./chunk-6UDLEDID.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-RV2TL4NM.js";
393
+ import "./chunk-H2GNNVMW.js";
394
+ import {
395
+ isInlineModelOverrideAllowed
396
+ } from "./chunk-YU6Z65RE.js";
393
397
  import {
394
398
  buildHigherDisabled,
395
399
  computeWorkspaceSkillListUpdates,
396
400
  skillSettingStrings
397
- } from "./chunk-I5INQP6E.js";
401
+ } from "./chunk-XA3N5TO5.js";
398
402
  import "./chunk-W2R46PFD.js";
399
403
  import {
400
404
  createLoadedSettingsAdapter,
401
405
  getRawModelProviders
402
- } from "./chunk-QYVHXOTK.js";
406
+ } from "./chunk-KT4SJM3N.js";
403
407
  import {
404
408
  getExtendedSystemInfo
405
- } from "./chunk-6XUAD5G6.js";
406
- import "./chunk-PCN4NLQX.js";
407
- import "./chunk-QTAUA6ED.js";
409
+ } from "./chunk-62UWQRWK.js";
410
+ import "./chunk-5MP3GGWM.js";
408
411
  import "./chunk-LPCPB2S5.js";
409
412
  import "./chunk-LD2T7YET.js";
413
+ import "./chunk-QTAUA6ED.js";
410
414
  import "./chunk-O7MSLRFZ.js";
411
415
  import "./chunk-W3YES77O.js";
412
- import "./chunk-RNEMD6QU.js";
413
- import "./chunk-75UFQ4VY.js";
414
- import {
415
- isInlineModelOverrideAllowed
416
- } from "./chunk-KHSEVS3O.js";
416
+ import "./chunk-SU6K5JRJ.js";
417
417
  import {
418
418
  loadMcpApprovals
419
- } from "./chunk-NIPNNHXO.js";
419
+ } from "./chunk-JSRLBGQW.js";
420
420
  import {
421
421
  CORRUPTED_SUFFIX,
422
422
  SettingScope,
@@ -439,7 +439,8 @@ import {
439
439
  settingExistsInScope,
440
440
  validateSettingValue,
441
441
  writeOutputLanguageAndRegisterPath
442
- } from "./chunk-PZPDQGRC.js";
442
+ } from "./chunk-HCD2C6MU.js";
443
+ import "./chunk-EDRKBK4B.js";
443
444
  import {
444
445
  LOGO_ANIMATIONS,
445
446
  LOGO_FRAME_MS,
@@ -449,16 +450,15 @@ import {
449
450
  pickLogoAnimation,
450
451
  renderLogoRows,
451
452
  restFrame
452
- } from "./chunk-QG4PTE3V.js";
453
- import "./chunk-EDRKBK4B.js";
453
+ } from "./chunk-Y7AZBD2R.js";
454
454
  import {
455
455
  getCurrentLanguage,
456
456
  localizeToolDisplayName,
457
457
  t,
458
458
  ta
459
- } from "./chunk-ZJLBESKM.js";
459
+ } from "./chunk-QFGPKAOX.js";
460
460
  import "./chunk-Q2V34OV7.js";
461
- import "./chunk-E554MWZ4.js";
461
+ import "./chunk-3SCPHVRF.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-JIECZNY6.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-YMZWUG55.js";
482
482
  import "./chunk-BHXBXELA.js";
483
483
  import "./chunk-MXCWSDSC.js";
484
484
  import {
@@ -522,19 +522,20 @@ import {
522
522
  subagentGenerator,
523
523
  supportsHyperlinks,
524
524
  wrapForMultiplexer
525
- } from "./chunk-QGBGLKMW.js";
525
+ } from "./chunk-VHFC6CDB.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
+ import "./chunk-SHADJNT6.js";
532
533
  import {
533
534
  clearWorktreeSession,
534
535
  isSessionRuntimeActive,
535
536
  readWorktreeSession,
536
537
  restoreWorktreeContext
537
- } from "./chunk-HKBLZQYR.js";
538
+ } from "./chunk-Q6IDKPJW.js";
538
539
  import "./chunk-4JDEAIW5.js";
539
540
  import {
540
541
  PEER_ADMISSION_LIMITS,
@@ -543,30 +544,30 @@ import {
543
544
  describeHoldCause,
544
545
  parseHeldExpiry
545
546
  } 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";
552
- import "./chunk-ZMZRVR62.js";
547
+ import "./chunk-OJAGNSHH.js";
553
548
  import "./chunk-NWCDFCWK.js";
549
+ import "./chunk-7HCWHQSP.js";
550
+ import "./chunk-32722SNN.js";
551
+ import "./chunk-AGTM6524.js";
552
+ import "./chunk-AIU3JWUX.js";
553
+ import "./chunk-ASWPB74Q.js";
554
+ import "./chunk-ZMZRVR62.js";
554
555
  import {
555
556
  WORKFLOW_AUTHORING_SKILL_NAME,
556
557
  isToolHiddenBehindToolSearch,
557
558
  resolveWorkflowAuthoringSurface,
558
559
  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";
560
+ } from "./chunk-BZRPH7VF.js";
561
+ import "./chunk-WRHVLLKJ.js";
562
+ import "./chunk-UW4Q5E5P.js";
563
+ import "./chunk-P2JIFC4O.js";
564
564
  import "./chunk-F3FKDGHN.js";
565
- import "./chunk-RJBN74YD.js";
565
+ import "./chunk-QSFWRJQF.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-2QYMJSSC.js";
570
+ import "./chunk-HVQQIKDI.js";
570
571
  import {
571
572
  ConditionalRulesRegistry,
572
573
  CoreToolScheduler,
@@ -628,13 +629,13 @@ import {
628
629
  saveWorkflowScript,
629
630
  updateSetting,
630
631
  validateWorkflowName
631
- } from "./chunk-FH534GWJ.js";
632
- import "./chunk-FNALBCC7.js";
632
+ } from "./chunk-T4WPMWU4.js";
633
+ import "./chunk-WXTAP6NR.js";
633
634
  import "./chunk-BZOAEOYF.js";
634
635
  import "./chunk-BIDB75DA.js";
635
636
  import "./chunk-GYGA6V6B.js";
636
637
  import "./chunk-EYWIFUPJ.js";
637
- import "./chunk-MZI6FDZT.js";
638
+ import "./chunk-THO5UG52.js";
638
639
  import "./chunk-7H3GWNGJ.js";
639
640
  import "./chunk-X427DWFD.js";
640
641
  import {
@@ -646,7 +647,7 @@ import {
646
647
  resolveBranchName,
647
648
  watchRepoBranch,
648
649
  writeRuntimeStatus
649
- } from "./chunk-2JPUVHYB.js";
650
+ } from "./chunk-JHRVJBV5.js";
650
651
  import "./chunk-DJOP5LOE.js";
651
652
  import {
652
653
  openBrowserSecurely,
@@ -670,79 +671,83 @@ import {
670
671
  elapsedActiveTime,
671
672
  goalPauseReasonForFailure,
672
673
  goalRequiresExactPermit
673
- } from "./chunk-JOBNLOEW.js";
674
- import "./chunk-HHG3UCD5.js";
674
+ } from "./chunk-DNFPKNWM.js";
675
+ import "./chunk-LO6VR36F.js";
676
+ import {
677
+ glob
678
+ } from "./chunk-4ESI3MQ5.js";
679
+ import "./chunk-CDYMT4OZ.js";
675
680
  import "./chunk-TC7UXK4M.js";
676
681
  import "./chunk-DS3COGEF.js";
677
682
  import {
678
683
  resolveModelId
679
- } from "./chunk-JX3AAXJY.js";
680
- import {
681
- glob
682
- } from "./chunk-4ESI3MQ5.js";
684
+ } from "./chunk-SKPIIDV3.js";
683
685
  import "./chunk-SYMKXR42.js";
684
686
  import "./chunk-JOBZWTVK.js";
685
- import "./chunk-CDYMT4OZ.js";
686
687
  import "./chunk-HPQNI3OQ.js";
687
- import "./chunk-ADHXMZ3K.js";
688
- import "./chunk-GNF3RKRI.js";
688
+ import "./chunk-QECJHTGC.js";
689
+ import "./chunk-K3XD5ECD.js";
689
690
  import "./chunk-CI2ZHR5C.js";
691
+ import {
692
+ BUILT_IN_OUTPUT_STYLES
693
+ } from "./chunk-M7ZHP7VU.js";
694
+ import {
695
+ NO_EXEC_CONFIG,
696
+ getGitBranch
697
+ } from "./chunk-IO32UWHY.js";
690
698
  import {
691
699
  ShellExecutionService,
692
700
  isSignalTermination
693
- } from "./chunk-XVSSUT2K.js";
701
+ } from "./chunk-PHCY2DQ2.js";
694
702
  import {
695
703
  stripAnsi
696
704
  } from "./chunk-WU3R2YUE.js";
697
705
  import {
698
706
  formatMemoryUsage
699
707
  } from "./chunk-M7AWQAB7.js";
708
+ import {
709
+ escapeShellArg
710
+ } from "./chunk-SBM747MY.js";
700
711
  import {
701
712
  resolveBundleDir
702
713
  } from "./chunk-Z2IHOXIK.js";
703
714
  import {
704
715
  promptIdContext
705
716
  } from "./chunk-5JTXPGNQ.js";
706
- import {
707
- escapeShellArg
708
- } from "./chunk-SBM747MY.js";
709
717
  import "./chunk-5QSLFAMR.js";
710
- import "./chunk-XC6BAHJR.js";
718
+ import "./chunk-3K7BQWZY.js";
711
719
  import "./chunk-4LCUE7BN.js";
712
720
  import "./chunk-RIN7SNJN.js";
713
- import "./chunk-GVWQRVLV.js";
721
+ import "./chunk-VEGSKFFR.js";
714
722
  import "./chunk-4J6KRUQB.js";
715
- import "./chunk-7LFCBMVX.js";
723
+ import "./chunk-JEUH2DSW.js";
716
724
  import {
717
725
  parseRule
718
- } from "./chunk-OJSW65PQ.js";
726
+ } from "./chunk-WXMXXBCC.js";
719
727
  import {
720
728
  APPROVAL_MODES
721
729
  } from "./chunk-KQAVEXYD.js";
722
730
  import "./chunk-WZCKDUBO.js";
723
- import {
724
- BUILT_IN_OUTPUT_STYLES
725
- } from "./chunk-7S2AYA27.js";
726
- import {
727
- NO_EXEC_CONFIG,
728
- getGitBranch
729
- } from "./chunk-IO32UWHY.js";
730
731
  import "./chunk-CZWW4DCB.js";
731
732
  import "./chunk-5UXWOCCO.js";
732
733
  import "./chunk-ETGSZYWP.js";
733
734
  import "./chunk-RCZHQZJJ.js";
734
735
  import "./chunk-6YS3YH6O.js";
735
- import "./chunk-OSMXNPJP.js";
736
+ import "./chunk-AVCUVYSA.js";
737
+ import "./chunk-6CW53FOJ.js";
736
738
  import "./chunk-HX6AICAX.js";
737
- import "./chunk-CQURIVUY.js";
739
+ import "./chunk-OMMOMHTD.js";
740
+ import "./chunk-65B6QBMP.js";
741
+ import "./chunk-O4IWNFDK.js";
742
+ import "./chunk-WMJL2XAM.js";
738
743
  import {
739
744
  runOutsideAgentContext
740
- } from "./chunk-V75J4GJ2.js";
745
+ } from "./chunk-QCE3SPTV.js";
741
746
  import "./chunk-FOZEB37P.js";
742
747
  import {
743
748
  getStartupContextLength
744
- } from "./chunk-ZQBNP2ZQ.js";
745
- import "./chunk-YCTMVTDP.js";
749
+ } from "./chunk-DNMM4RF7.js";
750
+ import "./chunk-2SMHE6PC.js";
746
751
  import "./chunk-JSFADKTB.js";
747
752
  import "./chunk-OHAUN3Q5.js";
748
753
  import {
@@ -752,21 +757,16 @@ import {
752
757
  HOOKS_CONFIG_FIELDS
753
758
  } from "./chunk-SRFL3HFU.js";
754
759
  import "./chunk-BQAZCJF7.js";
755
- import "./chunk-2QYMJSSC.js";
756
- import "./chunk-AVCUVYSA.js";
757
- import "./chunk-65B6QBMP.js";
758
- import "./chunk-O4IWNFDK.js";
759
- import "./chunk-WMJL2XAM.js";
760
760
  import {
761
761
  fetchKeyInfo,
762
762
  onLowRateLimit
763
- } from "./chunk-YBZG6WG2.js";
763
+ } from "./chunk-VYUHXV5Q.js";
764
764
  import "./chunk-TC2TJAOF.js";
765
765
  import "./chunk-CP63SY5N.js";
766
766
  import {
767
767
  resolveReasoningForModel
768
- } from "./chunk-LH3T52KS.js";
769
- import "./chunk-U3KIMPCC.js";
768
+ } from "./chunk-T5Z45XLU.js";
769
+ import "./chunk-2F3GZ6WG.js";
770
770
  import {
771
771
  ApiCancelEvent,
772
772
  AuthEvent,
@@ -805,15 +805,8 @@ import {
805
805
  runVisionBridge,
806
806
  shouldRunVisionBridge,
807
807
  splitImageParts
808
- } from "./chunk-WN23CFGN.js";
808
+ } from "./chunk-ASQLIG2L.js";
809
809
  import "./chunk-242JUBPM.js";
810
- import {
811
- DEFAULT_CONTEXT_FILENAME,
812
- getAllMemoryFilenames,
813
- getUnsupportedImageFormatWarning,
814
- isSupportedImageMimeType
815
- } from "./chunk-ROO6F2BT.js";
816
- import "./chunk-3CMX5LCG.js";
817
810
  import {
818
811
  AUTO_MEMORY_INDEX_FILENAME,
819
812
  getAutoMemoryProjectStateDir,
@@ -822,39 +815,58 @@ import {
822
815
  isAnyAutoMemPath
823
816
  } from "./chunk-5P5ZJMW2.js";
824
817
  import "./chunk-GADK6OTE.js";
818
+ import {
819
+ DEFAULT_CONTEXT_FILENAME,
820
+ getAllMemoryFilenames,
821
+ getUnsupportedImageFormatWarning,
822
+ isSupportedImageMimeType
823
+ } from "./chunk-ROO6F2BT.js";
824
+ import "./chunk-3CMX5LCG.js";
825
825
  import {
826
826
  runSideQuery
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";
836
835
  import "./chunk-23AFREUQ.js";
836
+ import "./chunk-IMLPJ76O.js";
837
+ import {
838
+ isShellProgressData
839
+ } from "./chunk-JOFGX5ZA.js";
840
+ import "./chunk-NO2WYQWE.js";
841
+ import "./chunk-V44Y3PCO.js";
842
+ import "./chunk-HAZNBQPI.js";
843
+ import {
844
+ ToolDisplayNames,
845
+ ToolNames
846
+ } from "./chunk-SYMYKLO4.js";
837
847
  import "./chunk-IQEM74QW.js";
838
848
  import {
839
849
  endInteractionSpan,
840
850
  getActiveInteractionSpan,
841
851
  redactUrlCredentials
842
- } from "./chunk-JFO6OCHQ.js";
852
+ } from "./chunk-TYYTQIEZ.js";
843
853
  import {
844
854
  isBinary,
845
855
  stripAnsiAndControl
846
856
  } from "./chunk-FKI7XUZK.js";
847
857
  import "./chunk-EPSJPAHV.js";
848
- import "./chunk-2MXORWOC.js";
849
858
  import {
850
- isShellProgressData
851
- } from "./chunk-JOFGX5ZA.js";
852
- import "./chunk-NO2WYQWE.js";
853
- import "./chunk-V44Y3PCO.js";
859
+ describeO1ConnectError,
860
+ forgetO1Connect,
861
+ isO1ConnectError,
862
+ o1ConnectBaseUrlFor,
863
+ openO1Connect,
864
+ setAsideUnreadableSecretStore,
865
+ setupO1Connect
866
+ } from "./chunk-JKXGHDQ2.js";
854
867
  import {
855
- ToolDisplayNames,
856
- ToolNames
857
- } from "./chunk-IWYGXAQU.js";
868
+ atomicWriteFileSync
869
+ } from "./chunk-EPJAMNLS.js";
858
870
  import {
859
871
  LOCAL_API_KEY_PLACEHOLDER,
860
872
  ORGANIZAONE_ENV_KEY,
@@ -883,7 +895,7 @@ import {
883
895
  resolveSavedModelApiKey,
884
896
  shouldShowStep,
885
897
  withdrawExportedCredential
886
- } from "./chunk-2XBK3KBR.js";
898
+ } from "./chunk-D7DZAA5W.js";
887
899
  import {
888
900
  DEFAULT_TOKEN_LIMIT,
889
901
  REASONING_EFFORT_TIERS,
@@ -891,19 +903,24 @@ import {
891
903
  parseModelReasoningCapabilities,
892
904
  reasoningEffortsForCapability
893
905
  } from "./chunk-72EBG4FJ.js";
906
+ import {
907
+ MAINLINE_CODER_MODEL
908
+ } from "./chunk-7CDZR7TE.js";
909
+ import "./chunk-LEXKU5FI.js";
910
+ import "./chunk-HDGYCLNB.js";
894
911
  import "./chunk-WPZM4XOT.js";
895
912
  import {
896
913
  FinishReason
897
914
  } from "./chunk-VYRPAY75.js";
898
915
  import "./chunk-S7GOFMLU.js";
899
916
  import "./chunk-RC67CA5Z.js";
900
- import "./chunk-FAOCU5VJ.js";
917
+ import "./chunk-G7JBBQVU.js";
901
918
  import "./chunk-HHIX6THS.js";
902
919
  import "./chunk-O6GD6SFV.js";
903
920
  import {
904
921
  registerCleanup,
905
922
  runExitCleanup
906
- } from "./chunk-CFFFKDAX.js";
923
+ } from "./chunk-3I7PGVYC.js";
907
924
  import {
908
925
  finalizeStartupProfile,
909
926
  profileCheckpoint
@@ -915,26 +932,12 @@ import {
915
932
  writeStderrLineSafe,
916
933
  writeStdoutLine
917
934
  } from "./chunk-RANA4SOY.js";
935
+ import {
936
+ getWindowsClipboardText
937
+ } from "./chunk-3UJ6A45H.js";
918
938
  import "./chunk-AK6T4SJC.js";
919
939
  import "./chunk-KMWAEX43.js";
920
940
  import "./chunk-EVC2HZ5T.js";
921
- import {
922
- describeO1ConnectError,
923
- forgetO1Connect,
924
- isO1ConnectError,
925
- o1ConnectBaseUrlFor,
926
- openO1Connect,
927
- setAsideUnreadableSecretStore,
928
- setupO1Connect
929
- } from "./chunk-JKXGHDQ2.js";
930
- import {
931
- atomicWriteFileSync
932
- } from "./chunk-EPJAMNLS.js";
933
- import {
934
- MAINLINE_CODER_MODEL
935
- } from "./chunk-GJFAQ4TA.js";
936
- import "./chunk-LEXKU5FI.js";
937
- import "./chunk-HDGYCLNB.js";
938
941
  import "./chunk-7TK6OY2J.js";
939
942
  import {
940
943
  createDebugLogger,
@@ -26609,8 +26612,593 @@ var WorkflowSaveOverlay = /* @__PURE__ */ __name(({
26609
26612
  ] });
26610
26613
  }, "WorkflowSaveOverlay");
26611
26614
 
26612
- // packages/cli/src/ui/components/background-view/BackgroundTasksDialog.tsx
26615
+ // packages/cli/src/ui/components/background-view/AgentDashboard.tsx
26616
+ init_esbuild_shims();
26617
+
26618
+ // packages/cli/src/ui/components/background-view/agent-dashboard-model.ts
26619
+ init_esbuild_shims();
26620
+ var AGENT_DASHBOARD_TABS = [
26621
+ "summary",
26622
+ "plan",
26623
+ "activity",
26624
+ "details"
26625
+ ];
26626
+ var MAX_FIELD_CHARS = 16384;
26627
+ var MAX_PLAN_ITEMS = 500;
26628
+ var MAX_PREPARED_ROWS = 2e3;
26629
+ function dashboardText(text) {
26630
+ const safe = sanitizeMultilineForDisplay(text).replace(/\t/g, " ");
26631
+ return safe.length > MAX_FIELD_CHARS ? safe.slice(0, MAX_FIELD_CHARS) + "\u2026" : safe;
26632
+ }
26633
+ __name(dashboardText, "dashboardText");
26634
+ function dashboardSingleLine(text, width) {
26635
+ return truncateToWidth(dashboardText(text).replace(/\s*\n\s*/g, " "), width);
26636
+ }
26637
+ __name(dashboardSingleLine, "dashboardSingleLine");
26638
+ function nextAgentDashboardTab(tab, direction) {
26639
+ const index = AGENT_DASHBOARD_TABS.indexOf(tab);
26640
+ return AGENT_DASHBOARD_TABS[(index + direction + AGENT_DASHBOARD_TABS.length) % AGENT_DASHBOARD_TABS.length];
26641
+ }
26642
+ __name(nextAgentDashboardTab, "nextAgentDashboardTab");
26643
+ function getAgentDashboardLayout(width, height) {
26644
+ const frameHeight = Math.max(3, height - 2);
26645
+ const bodyHeight = Math.max(1, frameHeight - 4);
26646
+ const split = width >= 116;
26647
+ const rosterWidth = split ? 30 : Math.max(1, width - 4);
26648
+ const detailWidth = Math.max(1, width - 4 - (split ? rosterWidth + 3 : 0));
26649
+ const headerRows = bodyHeight < 12 ? 4 : 6;
26650
+ const pageSize = Math.max(1, bodyHeight - headerRows);
26651
+ return {
26652
+ frameHeight,
26653
+ bodyHeight,
26654
+ split,
26655
+ rosterWidth,
26656
+ detailWidth,
26657
+ headerRows,
26658
+ pageSize
26659
+ };
26660
+ }
26661
+ __name(getAgentDashboardLayout, "getAgentDashboardLayout");
26662
+ function dashboardElapsed(entry, now = Date.now()) {
26663
+ return formatDuration(
26664
+ Math.floor(Math.max(0, (entry.endTime ?? now) - entry.startTime) / 1e3) * 1e3,
26665
+ { hideTrailingZeros: true }
26666
+ );
26667
+ }
26668
+ __name(dashboardElapsed, "dashboardElapsed");
26669
+ function dashboardStatus(entry) {
26670
+ if ((entry.kind === "agent" || entry.kind === "workflow") && entry.pendingApprovals?.length) {
26671
+ return { label: t("Awaiting approval"), icon: "!", tone: "warning" };
26672
+ }
26673
+ switch (entry.status) {
26674
+ case "running":
26675
+ return { label: t("Running"), icon: glyphs().dot, tone: "running" };
26676
+ case "pausing":
26677
+ return { label: t("Pausing"), icon: "\u2026", tone: "warning" };
26678
+ case "paused":
26679
+ return { label: t("Paused"), icon: "||", tone: "warning" };
26680
+ case "completed":
26681
+ return { label: t("Completed"), icon: glyphs().done, tone: "success" };
26682
+ case "failed":
26683
+ return { label: t("Failed"), icon: glyphs().failed, tone: "error" };
26684
+ case "cancelled":
26685
+ return { label: t("Stopped"), icon: glyphs().hollow, tone: "muted" };
26686
+ default:
26687
+ throw new Error("Unsupported background task status");
26688
+ }
26689
+ }
26690
+ __name(dashboardStatus, "dashboardStatus");
26691
+ function dashboardTaskLabel(entry) {
26692
+ if (entry.kind === "dream") return t("[dream] memory consolidation");
26693
+ if (entry.kind === "workflow")
26694
+ return "[workflow] " + (entry.meta?.name ?? entry.description ?? entry.runId);
26695
+ if (entry.kind === "agent")
26696
+ return entry.description || entry.subagentType || t("Agent");
26697
+ return "[" + entry.kind + "] " + (entry.description || entry.command);
26698
+ }
26699
+ __name(dashboardTaskLabel, "dashboardTaskLabel");
26700
+ function dashboardStats(entry) {
26701
+ const parts = [dashboardElapsed(entry)];
26702
+ if (entry.stats?.outputTokens !== void 0)
26703
+ parts.push(
26704
+ t("{{count}} tokens", {
26705
+ count: formatTokenCount(entry.stats.outputTokens)
26706
+ })
26707
+ );
26708
+ if (entry.stats?.toolUses !== void 0)
26709
+ parts.push(
26710
+ t(
26711
+ entry.stats.toolUses === 1 ? "{{count}} tool call" : "{{count}} tool calls",
26712
+ { count: String(entry.stats.toolUses) }
26713
+ )
26714
+ );
26715
+ return parts.join(" \xB7 ");
26716
+ }
26717
+ __name(dashboardStats, "dashboardStats");
26718
+ function dashboardActivity(name, description) {
26719
+ const display = localizeToolDisplayName(TOOL_DISPLAY_BY_NAME[name] ?? name);
26720
+ return description ? display + " \xB7 " + description : display;
26721
+ }
26722
+ __name(dashboardActivity, "dashboardActivity");
26723
+ function getAgentDashboardLines(entry, tab, width, entries = []) {
26724
+ const rows = [];
26725
+ let omitted = false;
26726
+ const add = /* @__PURE__ */ __name((text, tone = "secondary", bold = false) => {
26727
+ if (rows.length >= MAX_PREPARED_ROWS - 1) {
26728
+ omitted = true;
26729
+ return;
26730
+ }
26731
+ for (const part of wrapAnsi(dashboardText(text), Math.max(1, width), {
26732
+ hard: true,
26733
+ trim: false
26734
+ }).split("\n")) {
26735
+ if (rows.length >= MAX_PREPARED_ROWS - 1) {
26736
+ omitted = true;
26737
+ break;
26738
+ }
26739
+ rows.push({ text: part, tone, bold });
26740
+ }
26741
+ }, "add");
26742
+ const title = /* @__PURE__ */ __name((text) => {
26743
+ if (rows.length) add("");
26744
+ add(text, "title", true);
26745
+ }, "title");
26746
+ const activities = (entry.recentActivities ?? []).slice(-10);
26747
+ const current = activities.at(-1);
26748
+ const allTodos = entry.todoItems ?? [];
26749
+ const todos = allTodos.slice(0, MAX_PLAN_ITEMS);
26750
+ const completed = allTodos.filter(
26751
+ (todo) => todo.status === "completed"
26752
+ ).length;
26753
+ const showPlan = /* @__PURE__ */ __name(() => {
26754
+ if (!todos.length) {
26755
+ add(t("No plan recorded"), "muted");
26756
+ return;
26757
+ }
26758
+ for (const todo of todos) {
26759
+ if (rows.length >= MAX_PREPARED_ROWS - 1) {
26760
+ omitted = true;
26761
+ break;
26762
+ }
26763
+ const done = todo.status === "completed";
26764
+ const active = todo.status === "in_progress";
26765
+ add(
26766
+ (done ? glyphs().done : active ? ">" : glyphs().hollow) + " " + todo.content,
26767
+ done ? "success" : active ? "running" : "muted"
26768
+ );
26769
+ if (todo.blockedBy?.length)
26770
+ add(
26771
+ t("Depends on: {{ids}}", { ids: todo.blockedBy.join(", ") }),
26772
+ "muted"
26773
+ );
26774
+ }
26775
+ if (allTodos.length > todos.length)
26776
+ add(
26777
+ t("{{count}} more plan items", {
26778
+ count: String(allTodos.length - todos.length)
26779
+ }),
26780
+ "muted"
26781
+ );
26782
+ }, "showPlan");
26783
+ const alerts = /* @__PURE__ */ __name(() => {
26784
+ if (entry.pendingApprovals?.length) {
26785
+ title(t("Your action is required"));
26786
+ add(t("Press a to review the pending approval."), "warning");
26787
+ }
26788
+ if (entry.resumeBlockedReason) {
26789
+ title(t("Resume blocked"));
26790
+ add(entry.resumeBlockedReason, "error");
26791
+ }
26792
+ if (entry.error) {
26793
+ title(t("Error"));
26794
+ add(entry.error, "error");
26795
+ }
26796
+ }, "alerts");
26797
+ const planTitle = /* @__PURE__ */ __name(() => t("Declared plan") + (allTodos.length ? " \xB7 " + completed + "/" + allTodos.length : ""), "planTitle");
26798
+ if (tab === "summary") {
26799
+ alerts();
26800
+ title(entry.status === "completed" ? t("Result") : t("Now"));
26801
+ if (entry.status === "completed" && entry.result)
26802
+ add(entry.result, "primary");
26803
+ else if (current)
26804
+ add(dashboardActivity(current.name, current.description), "code");
26805
+ else add(t("No activity recorded"), "muted");
26806
+ title(planTitle());
26807
+ showPlan();
26808
+ title(t("Recent activity"));
26809
+ for (const activity of activities.slice(-4, -1).reverse()) {
26810
+ add(
26811
+ dashboardSingleLine(
26812
+ dashboardActivity(activity.name, activity.description),
26813
+ width
26814
+ ),
26815
+ "secondary"
26816
+ );
26817
+ }
26818
+ if (activities.length <= 1) add(t("No earlier activity recorded"), "muted");
26819
+ } else if (tab === "plan") {
26820
+ title(planTitle());
26821
+ showPlan();
26822
+ alerts();
26823
+ title(t("About progress"));
26824
+ add(
26825
+ t("Plan items describe declared work, not estimated time remaining."),
26826
+ "muted"
26827
+ );
26828
+ } else if (tab === "activity") {
26829
+ title(t("Current event"));
26830
+ if (current)
26831
+ add(dashboardActivity(current.name, current.description), "code");
26832
+ else add(t("No activity recorded"), "muted");
26833
+ title(t("Progress"));
26834
+ for (const activity of activities.slice(0, -1)) {
26835
+ add(
26836
+ dashboardSingleLine(
26837
+ dashboardActivity(activity.name, activity.description),
26838
+ width
26839
+ )
26840
+ );
26841
+ }
26842
+ alerts();
26843
+ } else {
26844
+ title(t("Prompt"));
26845
+ add(entry.prompt || t("No instruction recorded"));
26846
+ title(t("Parent"));
26847
+ const lookup = /* @__PURE__ */ __name((id) => entries.find(
26848
+ (item) => item.kind === "agent" && item.agentId === id
26849
+ ), "lookup");
26850
+ const { chain } = ancestorChain(entry, lookup);
26851
+ if (chain.length)
26852
+ add(
26853
+ [...chain].reverse().map((item) => {
26854
+ const parent = lookup(item.agentId ?? "");
26855
+ return parent ? (parent.subagentType ?? t("Agent")) + " \u2014 " + parent.description : item.agentId ?? "";
26856
+ }).join(" \u203A ")
26857
+ );
26858
+ else
26859
+ add(
26860
+ entry.parentName ? entry.parentName + " \xB7 " + t("no longer running") : t("Main session")
26861
+ );
26862
+ if ((entry.depth ?? 0) > 0)
26863
+ add(
26864
+ t("nested \xB7 level {{level}}", {
26865
+ level: String((entry.depth ?? 0) + 1)
26866
+ }),
26867
+ "muted"
26868
+ );
26869
+ if (entry.model) {
26870
+ title(t("Model"));
26871
+ add(entry.model);
26872
+ }
26873
+ const children = entries.filter(
26874
+ (child) => child.kind === "agent" && child.parentAgentId === entry.agentId
26875
+ ).sort(compareActiveThenTerminal);
26876
+ if (children.length) {
26877
+ title(t("Sub-agents"));
26878
+ for (const child of children.slice(0, 5))
26879
+ add(
26880
+ dashboardStatus(child).icon + " " + (child.kind === "agent" ? (child.subagentType ?? t("Agent")) + " \u2014 " : "") + dashboardTaskLabel(child)
26881
+ );
26882
+ if (children.length > 5)
26883
+ add(
26884
+ t("{{count}} more", { count: String(children.length - 5) }),
26885
+ "muted"
26886
+ );
26887
+ }
26888
+ if (entry.outputFile) {
26889
+ title(t("Transcript"));
26890
+ add(entry.outputFile, "code");
26891
+ }
26892
+ alerts();
26893
+ }
26894
+ if (omitted)
26895
+ rows.push({
26896
+ text: dashboardSingleLine(
26897
+ t("Additional content omitted; inspect the transcript."),
26898
+ width
26899
+ ),
26900
+ tone: "muted"
26901
+ });
26902
+ return rows;
26903
+ }
26904
+ __name(getAgentDashboardLines, "getAgentDashboardLines");
26905
+
26906
+ // packages/cli/src/ui/components/background-view/AgentDashboard.tsx
26613
26907
  var import_jsx_runtime109 = __toESM(require_jsx_runtime(), 1);
26908
+ function toneColor(tone) {
26909
+ return {
26910
+ title: theme.text.accent,
26911
+ primary: theme.text.primary,
26912
+ secondary: theme.text.secondary,
26913
+ muted: extendedTheme.text.muted,
26914
+ code: theme.text.code,
26915
+ success: theme.status.success,
26916
+ warning: theme.status.warning,
26917
+ error: theme.status.error,
26918
+ running: extendedTheme.ui.brand
26919
+ }[tone];
26920
+ }
26921
+ __name(toneColor, "toneColor");
26922
+ function DashboardLine({
26923
+ value,
26924
+ width
26925
+ }) {
26926
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: toneColor(value.tone), bold: value.bold, wrap: "truncate-end", children: dashboardSingleLine(value.text || " ", width) });
26927
+ }
26928
+ __name(DashboardLine, "DashboardLine");
26929
+ var tabLabels = {
26930
+ summary: "Agent summary",
26931
+ plan: "Agent plan",
26932
+ activity: "Agent activity",
26933
+ details: "Agent details"
26934
+ };
26935
+ function DashboardTabs({
26936
+ tab,
26937
+ width
26938
+ }) {
26939
+ const names = AGENT_DASHBOARD_TABS.map((key) => t(tabLabels[key]));
26940
+ const naturalWidth = names.reduce(
26941
+ (sum, name) => sum + getCachedStringWidth(name) + 2,
26942
+ 0
26943
+ );
26944
+ const slot = Math.max(1, Math.floor(width / names.length));
26945
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { wrap: "truncate-end", children: AGENT_DASHBOARD_TABS.map((key, index) => {
26946
+ const padding = naturalWidth <= width || slot >= 3 ? " " : "";
26947
+ const name = dashboardSingleLine(
26948
+ names[index],
26949
+ naturalWidth <= width ? width : Math.max(1, slot - padding.length * 2)
26950
+ );
26951
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
26952
+ Text,
26953
+ {
26954
+ bold: tab === key,
26955
+ color: tab === key ? theme.background.primary : theme.text.secondary,
26956
+ backgroundColor: tab === key ? theme.text.accent : void 0,
26957
+ children: padding + name + padding
26958
+ },
26959
+ key
26960
+ );
26961
+ }) });
26962
+ }
26963
+ __name(DashboardTabs, "DashboardTabs");
26964
+ function AgentDashboard({
26965
+ entries,
26966
+ selectedEntry,
26967
+ selectedIndex,
26968
+ detailFocused,
26969
+ tab,
26970
+ scrollOffset,
26971
+ width,
26972
+ height,
26973
+ actionHints,
26974
+ footerMessage,
26975
+ renderOtherDetail
26976
+ }) {
26977
+ const layout = getAgentDashboardLayout(width, height);
26978
+ const { bodyHeight, rosterWidth, detailWidth, split, headerRows, pageSize } = layout;
26979
+ const agent = selectedEntry?.kind === "agent" ? selectedEntry : void 0;
26980
+ const lines = agent ? getAgentDashboardLines(agent, tab, detailWidth, entries) : [];
26981
+ const offset = Math.max(0, Math.min(scrollOffset, lines.length - pageSize));
26982
+ const visibleCount = Math.max(1, Math.floor((bodyHeight - 2) / 4));
26983
+ const start = Math.min(
26984
+ Math.max(0, selectedIndex - visibleCount + 1),
26985
+ Math.max(0, entries.length - visibleCount)
26986
+ );
26987
+ const tree = computeAgentTreeInfo(entries);
26988
+ const blocking = computeUserBlockingIds(entries);
26989
+ const count = /* @__PURE__ */ __name((status2) => entries.filter(
26990
+ (item) => item.status === status2 && (status2 !== "running" || item.kind !== "agent" && item.kind !== "workflow" || !item.pendingApprovals?.length)
26991
+ ).length, "count");
26992
+ const approvals = entries.filter(
26993
+ (item) => (item.kind === "agent" || item.kind === "workflow") && item.pendingApprovals?.length
26994
+ ).length;
26995
+ const title = entries.every((item) => item.kind === "agent") ? t("Agents") : t("Background tasks");
26996
+ 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");
26997
+ const showDetail = split || detailFocused;
26998
+ const footerWidth = Math.max(1, width);
26999
+ const tabsHint = t("\u2190\u2192 tabs");
27000
+ const backHint = t(width < 60 ? "esc back" : "esc back to list");
27001
+ const listHint = t(
27002
+ width < 60 ? "\u2191\u2193 agents \xB7 enter view \xB7 esc close" : "\u2191\u2193 agents \xB7 enter view \xB7 \u2190\u2192 tabs \xB7 esc close"
27003
+ );
27004
+ const detailHintWidth = getCachedStringWidth(tabsHint + " \xB7 " + backHint);
27005
+ const beforeDetailHint = footerWidth >= detailHintWidth + 12 ? t("\u2191\u2193 scroll") + " \xB7 " : "";
27006
+ const status = selectedEntry ? dashboardStatus(selectedEntry) : void 0;
27007
+ if (width < 36 || height < 12)
27008
+ 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(
27009
+ t("Enlarge the terminal to inspect agents. Esc closes."),
27010
+ width
27011
+ ) }) });
27012
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { flexDirection: "column", width, height, flexShrink: 0, children: [
27013
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27014
+ Box_default,
27015
+ {
27016
+ flexDirection: "column",
27017
+ width,
27018
+ height: layout.frameHeight,
27019
+ borderStyle: glyphs().borderStyle,
27020
+ borderColor: extendedTheme.ui.rule,
27021
+ paddingX: 1,
27022
+ flexShrink: 0,
27023
+ children: [
27024
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, wrap: "truncate-end", children: dashboardSingleLine(summary, Math.max(1, width - 4)) }),
27025
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { height: 1, flexShrink: 0 }),
27026
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27027
+ Box_default,
27028
+ {
27029
+ flexDirection: "row",
27030
+ height: bodyHeight,
27031
+ flexShrink: 0,
27032
+ overflow: "hidden",
27033
+ children: [
27034
+ (split || !detailFocused) && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27035
+ Box_default,
27036
+ {
27037
+ flexDirection: "column",
27038
+ width: rosterWidth,
27039
+ height: bodyHeight,
27040
+ flexShrink: 0,
27041
+ children: [
27042
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27043
+ Box_default,
27044
+ {
27045
+ flexDirection: "column",
27046
+ height: Math.max(0, bodyHeight - 1),
27047
+ overflow: "hidden",
27048
+ flexShrink: 0,
27049
+ children: [
27050
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, wrap: "truncate-end", children: dashboardSingleLine(t("Agents \xB7 main session"), rosterWidth) }),
27051
+ entries.slice(start, start + visibleCount).map((item, localIndex) => {
27052
+ const selected = localIndex + start === selectedIndex;
27053
+ const itemStatus = dashboardStatus(item);
27054
+ const prefix = item.kind === "agent" ? treeRowPrefix(item, tree.get(item.agentId)) : "";
27055
+ const blockLabel = item.kind === "agent" && blocking.has(item.agentId) ? "[blocking] " : "";
27056
+ const label = dashboardSingleLine(
27057
+ prefix + blockLabel + dashboardTaskLabel(item),
27058
+ Math.max(
27059
+ 0,
27060
+ rosterWidth - getCachedStringWidth(
27061
+ glyphs().prompt + " " + itemStatus.icon + " "
27062
+ )
27063
+ )
27064
+ );
27065
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27066
+ Box_default,
27067
+ {
27068
+ flexDirection: "column",
27069
+ flexShrink: 0,
27070
+ children: [
27071
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Text, { wrap: "truncate-end", children: [
27072
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.ui.brand, children: selected ? glyphs().prompt + " " : " " }),
27073
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: toneColor(itemStatus.tone), children: itemStatus.icon + " " }),
27074
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27075
+ Text,
27076
+ {
27077
+ color: selected ? theme.text.primary : theme.text.secondary,
27078
+ bold: selected,
27079
+ children: label
27080
+ }
27081
+ )
27082
+ ] }),
27083
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27084
+ Text,
27085
+ {
27086
+ color: toneColor(itemStatus.tone),
27087
+ wrap: "truncate-end",
27088
+ children: dashboardSingleLine(
27089
+ " " + itemStatus.label,
27090
+ rosterWidth
27091
+ )
27092
+ }
27093
+ ),
27094
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27095
+ Text,
27096
+ {
27097
+ color: extendedTheme.text.muted,
27098
+ wrap: "truncate-end",
27099
+ children: dashboardSingleLine(
27100
+ " " + (item.kind === "agent" ? dashboardStats(item) : dashboardElapsed(item)),
27101
+ rosterWidth
27102
+ )
27103
+ }
27104
+ ),
27105
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: " " })
27106
+ ]
27107
+ },
27108
+ entryId(item)
27109
+ );
27110
+ })
27111
+ ]
27112
+ }
27113
+ ),
27114
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: dashboardSingleLine(
27115
+ t("{{count}} tasks \xB7 {{start}}\u2013{{end}} visible", {
27116
+ count: String(entries.length),
27117
+ start: String(start + 1),
27118
+ end: String(Math.min(start + visibleCount, entries.length))
27119
+ }),
27120
+ rosterWidth
27121
+ ) })
27122
+ ]
27123
+ }
27124
+ ),
27125
+ 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)) }),
27126
+ showDetail && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27127
+ Box_default,
27128
+ {
27129
+ flexDirection: "column",
27130
+ width: detailWidth,
27131
+ height: bodyHeight,
27132
+ flexShrink: 0,
27133
+ overflow: "hidden",
27134
+ children: agent ? /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_jsx_runtime109.Fragment, { children: [
27135
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, wrap: "truncate-end", children: dashboardSingleLine(
27136
+ dashboardTaskLabel(agent),
27137
+ detailWidth
27138
+ ) }),
27139
+ headerRows === 6 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: dashboardSingleLine(
27140
+ (agent.subagentType ?? t("Agent")) + " \xB7 " + agent.agentId,
27141
+ detailWidth
27142
+ ) }),
27143
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27144
+ Text,
27145
+ {
27146
+ color: status ? toneColor(status.tone) : void 0,
27147
+ wrap: "truncate-end",
27148
+ children: dashboardSingleLine(
27149
+ (status ? status.icon + " " + status.label + " \xB7 " : "") + dashboardStats(agent),
27150
+ detailWidth
27151
+ )
27152
+ }
27153
+ ),
27154
+ headerRows === 6 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: " " }),
27155
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(DashboardTabs, { tab, width: detailWidth }),
27156
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: " " }),
27157
+ lines.slice(offset, offset + pageSize).map((value, index) => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27158
+ DashboardLine,
27159
+ {
27160
+ value,
27161
+ width: detailWidth
27162
+ },
27163
+ index
27164
+ ))
27165
+ ] }) : selectedEntry ? renderOtherDetail(selectedEntry, bodyHeight, detailWidth) : /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: t("No entry to show.") })
27166
+ }
27167
+ )
27168
+ ]
27169
+ }
27170
+ )
27171
+ ]
27172
+ }
27173
+ ),
27174
+ /* @__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: [
27175
+ /* @__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: [
27176
+ beforeDetailHint,
27177
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, children: tabsHint }),
27178
+ " \xB7 ",
27179
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, children: backHint })
27180
+ ] }) : dashboardSingleLine(listHint, footerWidth) }),
27181
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { justifyContent: "space-between", children: [
27182
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: dashboardSingleLine(
27183
+ actionHints.join(" \xB7 "),
27184
+ Math.max(1, footerWidth - 22)
27185
+ ) }),
27186
+ agent && showDetail && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.text.muted, children: dashboardSingleLine(
27187
+ t("lines {{start}}\u2013{{end}}/{{total}}", {
27188
+ start: String(Math.min(offset + 1, lines.length)),
27189
+ end: String(Math.min(offset + pageSize, lines.length)),
27190
+ total: String(lines.length)
27191
+ }),
27192
+ 21
27193
+ ) })
27194
+ ] })
27195
+ ] }) })
27196
+ ] });
27197
+ }
27198
+ __name(AgentDashboard, "AgentDashboard");
27199
+
27200
+ // packages/cli/src/ui/components/background-view/BackgroundTasksDialog.tsx
27201
+ var import_jsx_runtime110 = __toESM(require_jsx_runtime(), 1);
26614
27202
  var MAX_LIVE_LABEL_CHARS = 4096;
26615
27203
  function formatActivityLabel(name, description) {
26616
27204
  const display = localizeToolDisplayName(TOOL_DISPLAY_BY_NAME[name] ?? name);
@@ -26794,12 +27382,12 @@ function truncateToWidth2(text, maxWidth) {
26794
27382
  __name(truncateToWidth2, "truncateToWidth");
26795
27383
  var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
26796
27384
  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)" })
27385
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", children: [
27386
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { paddingX: 1, children: [
27387
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, children: t("Background tasks") }),
27388
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: " (0)" })
26801
27389
  ] }),
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") }) })
27390
+ /* @__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
27391
  ] });
26804
27392
  }
26805
27393
  const fits = entries.length <= maxRows;
@@ -26817,27 +27405,27 @@ var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
26817
27405
  const visible = entries.slice(windowStart, windowEnd);
26818
27406
  const treeInfo = computeAgentTreeInfo(entries);
26819
27407
  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: [
27408
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", children: [
27409
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { paddingX: 1, children: [
27410
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, children: t("Background tasks") }),
27411
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { color: theme.text.secondary, children: [
26824
27412
  " (",
26825
27413
  entries.length,
26826
27414
  ")"
26827
27415
  ] })
26828
27416
  ] }),
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) })}` }) }),
27417
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", children: [
27418
+ 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
27419
  visible.map((entry, visibleIdx) => {
26832
27420
  const idx = windowStart + visibleIdx;
26833
27421
  const isSelected = idx === selectedIndex;
26834
27422
  const presentation2 = statusPresentation(entry.status);
26835
27423
  const labelColor = isSelected ? theme.text.accent : presentation2 ? presentation2.labelColor : theme.text.primary;
26836
27424
  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(
27425
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "row", paddingX: 1, children: [
27426
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: isSelected ? theme.text.accent : void 0, children: isSelected ? "> " : " " }),
27427
+ treePrefix !== "" && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: treePrefix }),
27428
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: labelColor, children: escapeAnsiCtrlCodes(
26841
27429
  rowLabel2(
26842
27430
  entry,
26843
27431
  entry.kind === "agent" && blockingIds.has(entry.agentId)
@@ -26845,14 +27433,14 @@ var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
26845
27433
  ) })
26846
27434
  ] }, entryId(entry));
26847
27435
  }),
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) })}` }) })
27436
+ 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
27437
  ] })
26850
27438
  ] });
26851
27439
  }, "ListBody");
26852
27440
  var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
26853
27441
  switch (entry.kind) {
26854
27442
  case "agent":
26855
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27443
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
26856
27444
  AgentDetailBody,
26857
27445
  {
26858
27446
  entry,
@@ -26861,7 +27449,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
26861
27449
  }
26862
27450
  );
26863
27451
  case "shell":
26864
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27452
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
26865
27453
  ShellDetailBody,
26866
27454
  {
26867
27455
  entry,
@@ -26870,7 +27458,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
26870
27458
  }
26871
27459
  );
26872
27460
  case "monitor":
26873
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27461
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
26874
27462
  MonitorDetailBody,
26875
27463
  {
26876
27464
  entry,
@@ -26879,7 +27467,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
26879
27467
  }
26880
27468
  );
26881
27469
  case "workflow":
26882
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27470
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
26883
27471
  WorkflowDetailBody,
26884
27472
  {
26885
27473
  entry,
@@ -26888,7 +27476,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
26888
27476
  }
26889
27477
  );
26890
27478
  case "dream":
26891
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27479
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
26892
27480
  DreamDetailBody,
26893
27481
  {
26894
27482
  entry,
@@ -26919,35 +27507,35 @@ var DreamDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
26919
27507
  const visibleTopics = topics.slice(0, MAX_TOPICS);
26920
27508
  const hiddenTopicCount = Math.max(0, topics.length - visibleTopics.length);
26921
27509
  const hasError = Boolean(entry.error);
26922
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27510
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
26923
27511
  MaxSizedBox,
26924
27512
  {
26925
27513
  maxHeight,
26926
27514
  maxWidth,
26927
27515
  overflowDirection: "bottom",
26928
27516
  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 ") })
27517
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
27518
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
27519
+ presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
27520
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
26933
27521
  ] }),
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) }) })
27522
+ entry.sessionCount !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27523
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27524
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Sessions reviewing") }) }),
27525
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { children: String(entry.sessionCount) }) })
26938
27526
  ] }),
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 }) })
27527
+ entry.progressText && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27528
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27529
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Progress") }) }),
27530
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "wrap", children: entry.progressText }) })
26943
27531
  ] }),
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}})", {
27532
+ topics.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27533
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27534
+ /* @__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
27535
  count: String(topics.length)
26948
27536
  }) }) }),
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)(
27537
+ visibleTopics.map((topic) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { children: ` \xB7 ${topic}` }) }, topic)),
27538
+ hiddenTopicCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
26951
27539
  Text,
26952
27540
  {
26953
27541
  color: theme.text.secondary,
@@ -26955,24 +27543,24 @@ var DreamDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
26955
27543
  }
26956
27544
  ) })
26957
27545
  ] }),
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 }) })
27546
+ hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27547
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27548
+ /* @__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") }) }),
27549
+ /* @__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
27550
  ] }),
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(
27551
+ entry.lockReleaseError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27552
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27553
+ /* @__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") }) }),
27554
+ /* @__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 }) }),
27555
+ /* @__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
27556
  "Subsequent dreams may be skipped as locked until the next session's staleness sweep cleans the file."
26969
27557
  ) }) })
26970
27558
  ] }),
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(
27559
+ entry.metadataWriteError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27560
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27561
+ /* @__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") }) }),
27562
+ /* @__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 }) }),
27563
+ /* @__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
27564
  "The scheduler gate did not see this dream's timestamp; the next dream cycle may re-fire sooner than usual."
26977
27565
  ) }) })
26978
27566
  ] })
@@ -27048,28 +27636,28 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
27048
27636
  const shownHistory = historyActivities.slice(
27049
27637
  Math.max(0, historyActivities.length - historyBudget)
27050
27638
  );
27051
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27639
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
27052
27640
  MaxSizedBox,
27053
27641
  {
27054
27642
  maxHeight,
27055
27643
  maxWidth,
27056
27644
  overflowDirection: "bottom",
27057
27645
  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 ") })
27646
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
27647
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
27648
+ presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
27649
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
27062
27650
  ] }),
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)}` }) })
27651
+ parentLine !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27652
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27653
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Parent") }) }),
27654
+ /* @__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
27655
  ] }),
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: [
27656
+ visibleChildAgents.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27657
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27658
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { bold: true, dimColor: true, children: [
27071
27659
  t("Sub-agents"),
27072
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
27660
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
27073
27661
  Text,
27074
27662
  {
27075
27663
  color: theme.text.secondary,
@@ -27077,14 +27665,14 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
27077
27665
  }
27078
27666
  )
27079
27667
  ] }) }),
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(
27668
+ 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
27669
  `${child.subagentType ?? "agent"} \u2014 ${child.description}`
27082
27670
  )} \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) })}` }) })
27671
+ 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
27672
  ] }),
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") }) }),
27673
+ activities.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27674
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27675
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Progress") }) }),
27088
27676
  shownHistory.map((a, i) => {
27089
27677
  const prefix = " ";
27090
27678
  const fullLabel = sanitizeMultilineForDisplay(
@@ -27094,7 +27682,7 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
27094
27682
  fullLabel,
27095
27683
  Math.max(0, maxWidth - getCachedStringWidth(prefix))
27096
27684
  );
27097
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Text, { color: theme.text.secondary, children: [
27685
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { color: theme.text.secondary, children: [
27098
27686
  prefix,
27099
27687
  label
27100
27688
  ] }) }, `${a.at}-${i}`);
@@ -27106,27 +27694,27 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
27106
27694
  // Prefix and label must be ONE string child: MaxSizedBox's wrap
27107
27695
  // layout drops the prefix's trailing space when they arrive as
27108
27696
  // 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")
27697
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.primary, children: `> ${liveLabel}` }) }, "live")
27110
27698
  ] }),
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)}` }) })
27699
+ entry.outputFile && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27700
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27701
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Transcript") }) }),
27702
+ /* @__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
27703
  ] }),
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}`))
27704
+ visiblePromptLines.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27705
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27706
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Prompt") }) }),
27707
+ 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
27708
  ] }),
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 }) })
27709
+ hasBlockedReason && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27710
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27711
+ /* @__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") }) }),
27712
+ /* @__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
27713
  ] }),
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 }) })
27714
+ hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27715
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27716
+ /* @__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") }) }),
27717
+ /* @__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
27718
  ] })
27131
27719
  ]
27132
27720
  }
@@ -27145,28 +27733,28 @@ var ShellDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
27145
27733
  );
27146
27734
  }
27147
27735
  const hasError = entry.status === "failed" && Boolean(entry.error);
27148
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27736
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
27149
27737
  MaxSizedBox,
27150
27738
  {
27151
27739
  maxHeight,
27152
27740
  maxWidth,
27153
27741
  overflowDirection: "bottom",
27154
27742
  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 ") })
27743
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
27744
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
27745
+ presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
27746
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
27159
27747
  ] }),
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 }) })
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("Working dir") }) }),
27750
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: entry.cwd }) }),
27751
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27752
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Output file") }) }),
27753
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: entry.outputFile }) }),
27754
+ hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27755
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27756
+ /* @__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") }) }),
27757
+ /* @__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
27758
  ] })
27171
27759
  ]
27172
27760
  }
@@ -27193,25 +27781,25 @@ var MonitorDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth })
27193
27781
  const hasError = Boolean(entry.error);
27194
27782
  const errorIsFailure = entry.status === "failed";
27195
27783
  const errorColor = errorIsFailure ? theme.status.error : theme.status.warning;
27196
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27784
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
27197
27785
  MaxSizedBox,
27198
27786
  {
27199
27787
  maxHeight,
27200
27788
  maxWidth,
27201
27789
  overflowDirection: "bottom",
27202
27790
  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 ") })
27791
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
27792
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
27793
+ presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
27794
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
27207
27795
  ] }),
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 }) })
27796
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27797
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Command") }) }),
27798
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: entry.command }) }),
27799
+ hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27800
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27801
+ /* @__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") }) }),
27802
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: errorColor, wrap: "wrap", children: entry.error }) })
27215
27803
  ] })
27216
27804
  ]
27217
27805
  }
@@ -27244,33 +27832,33 @@ var WorkflowDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth })
27244
27832
  );
27245
27833
  const visibleLogs = entry.recentLogs.slice(-MAX_VISIBLE_LOG_LINES);
27246
27834
  const hasError = Boolean(entry.error);
27247
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
27835
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
27248
27836
  MaxSizedBox,
27249
27837
  {
27250
27838
  maxHeight,
27251
27839
  maxWidth,
27252
27840
  overflowDirection: "bottom",
27253
27841
  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 ") })
27842
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
27843
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
27844
+ presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
27845
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
27258
27846
  ] }),
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 }) })
27847
+ entry.meta?.description && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27848
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27849
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "wrap", children: entry.meta.description }) })
27262
27850
  ] }),
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(
27851
+ (entry.status === "pausing" || entry.status === "paused") && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27852
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27853
+ /* @__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
27854
  "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
27855
  ) : t(
27268
27856
  "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
27857
  ) }) })
27270
27858
  ] }),
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(
27859
+ entry.sizeWarning && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27860
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27861
+ /* @__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
27862
  "Large workflow: {{agents}} agents scheduled (warning threshold {{cap}}).",
27275
27863
  {
27276
27864
  agents: String(entry.sizeWarning.scheduledAgents),
@@ -27286,31 +27874,31 @@ var WorkflowDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth })
27286
27874
  }
27287
27875
  )}` }) })
27288
27876
  ] }),
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")}` }) }),
27877
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27878
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Phases") }) }),
27879
+ 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: [
27880
+ 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
27881
  visiblePhases.map((phaseTitle, i) => {
27294
27882
  const isCurrent = isActiveWorkflowStatus(entry.status) && i === visiblePhases.length - 1 && entry.currentPhase === phaseTitle;
27295
27883
  const marker = isCurrent ? "\u25B8" : "\xB7";
27296
27884
  const phaseTokens = entry.perPhaseTokens.get(phaseTitle) ?? 0;
27297
27885
  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}`);
27886
+ 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
27887
  }),
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(
27888
+ (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
27889
  entry.perPhaseTokens.get(null) ?? 0
27302
27890
  )}t` }) })
27303
27891
  ] }),
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}`))
27892
+ entry.recentLogs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27893
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27894
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Logs") }) }),
27895
+ 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")}` }) }),
27896
+ 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
27897
  ] }),
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 }) })
27898
+ hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
27899
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
27900
+ /* @__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") }) }),
27901
+ /* @__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
27902
  ] })
27315
27903
  ]
27316
27904
  }
@@ -27326,6 +27914,7 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27326
27914
  moveSelectionUp,
27327
27915
  moveSelectionDown,
27328
27916
  closeDialog,
27917
+ openDialog,
27329
27918
  enterDetail,
27330
27919
  exitDetail,
27331
27920
  cancelSelected,
@@ -27334,6 +27923,16 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27334
27923
  setSelectedIndex
27335
27924
  } = useBackgroundTaskViewActions();
27336
27925
  const config = useConfig();
27926
+ const hasAgents = entries.some((entry) => entry.kind === "agent");
27927
+ const [agentTab, setAgentTab] = (0, import_react87.useState)("summary");
27928
+ const [agentScrollOffset, setAgentScrollOffset] = (0, import_react87.useState)(0);
27929
+ const [reviewingApproval, setReviewingApproval] = (0, import_react87.useState)(
27930
+ null
27931
+ );
27932
+ const agentLayout = getAgentDashboardLayout(
27933
+ terminalWidth,
27934
+ availableTerminalHeight
27935
+ );
27337
27936
  const detailContentHeight = Math.max(10, availableTerminalHeight - 6);
27338
27937
  const detailContentWidth = Math.max(10, terminalWidth - 4);
27339
27938
  const listMaxRows = Math.max(3, availableTerminalHeight - 10);
@@ -27372,6 +27971,12 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27372
27971
  return fromSnapshot;
27373
27972
  }, [entries, selectedIndex, config, activityTick]);
27374
27973
  const selectedEntryId = selectedEntry ? entryId(selectedEntry) : void 0;
27974
+ (0, import_react87.useEffect)(() => {
27975
+ setAgentScrollOffset(0);
27976
+ }, [selectedEntryId, agentTab, dialogOpen]);
27977
+ (0, import_react87.useEffect)(() => {
27978
+ setReviewingApproval(null);
27979
+ }, [selectedEntryId, dialogOpen]);
27375
27980
  const selectedAgentIdForActivity = selectedEntry?.kind === "agent" ? selectedEntry.agentId : void 0;
27376
27981
  const selectedApproval = selectedEntry?.kind === "agent" && selectedEntry.pendingApprovals?.[0] ? {
27377
27982
  kind: "agent",
@@ -27382,7 +27987,13 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27382
27987
  approval: selectedEntry.pendingApprovals[0],
27383
27988
  ownerId: selectedEntry.runId
27384
27989
  } : void 0;
27385
- const approvalActive = isDetailMode && Boolean(selectedApproval);
27990
+ const agentApprovalKey = selectedApproval?.kind === "agent" ? JSON.stringify([
27991
+ selectedApproval.ownerId,
27992
+ selectedApproval.approval.callId,
27993
+ selectedApproval.approval.subagentId,
27994
+ selectedApproval.approval.at
27995
+ ]) : void 0;
27996
+ const approvalActive = Boolean(selectedApproval) && (selectedApproval?.kind === "agent" ? reviewingApproval === agentApprovalKey : isDetailMode);
27386
27997
  const approvalUsesQuestionDialog = selectedApproval?.approval.confirmationDetails.type === "ask_user_question";
27387
27998
  const approvalConfirmationDetails = selectedApproval ? (
27388
27999
  // The spread restores every field except `onConfirm`; the cast is
@@ -27412,7 +28023,8 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27412
28023
  }
27413
28024
  ) : void 0;
27414
28025
  (0, import_react87.useEffect)(() => {
27415
- if (!dialogOpen || !isDetailMode || !selectedAgentIdForActivity) return;
28026
+ if (!dialogOpen || !isDetailMode && !agentLayout.split || !selectedAgentIdForActivity)
28027
+ return;
27416
28028
  const registry = config.getBackgroundTaskRegistry();
27417
28029
  const onActivity = /* @__PURE__ */ __name((entry) => {
27418
28030
  if (entry.agentId !== selectedAgentIdForActivity) return;
@@ -27425,12 +28037,13 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27425
28037
  dialogMode,
27426
28038
  isDetailMode,
27427
28039
  config,
27428
- selectedAgentIdForActivity
28040
+ selectedAgentIdForActivity,
28041
+ agentLayout.split
27429
28042
  ]);
27430
28043
  const selectedStatus = selectedEntry?.status;
27431
28044
  const selectedShouldTick = selectedEntry?.kind === "workflow" ? isActiveWorkflowStatus(selectedEntry.status) : selectedStatus === "running";
27432
28045
  (0, import_react87.useEffect)(() => {
27433
- if (!dialogOpen || !isDetailMode || !selectedEntryId || !selectedShouldTick)
28046
+ if (!dialogOpen || !isDetailMode && !agentLayout.split || !selectedEntryId || !selectedShouldTick)
27434
28047
  return;
27435
28048
  const id = setInterval(() => setActivityTick((n) => n + 1), 1e3);
27436
28049
  return () => clearInterval(id);
@@ -27439,7 +28052,8 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27439
28052
  dialogMode,
27440
28053
  isDetailMode,
27441
28054
  selectedEntryId,
27442
- selectedShouldTick
28055
+ selectedShouldTick,
28056
+ agentLayout.split
27443
28057
  ]);
27444
28058
  const initialDetailStatusRef = (0, import_react87.useRef)(null);
27445
28059
  (0, import_react87.useEffect)(() => {
@@ -27512,6 +28126,7 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27512
28126
  if (saveActive) return;
27513
28127
  if (approvalActive && !approvalUsesQuestionDialog) {
27514
28128
  if (key.name === "left") {
28129
+ setReviewingApproval(null);
27515
28130
  exitDetail();
27516
28131
  return;
27517
28132
  }
@@ -27524,6 +28139,57 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27524
28139
  if (approvalActive && approvalUsesQuestionDialog) {
27525
28140
  return;
27526
28141
  }
28142
+ if (hasAgents && (dialogMode === "list" || selectedEntry?.kind === "agent")) {
28143
+ if ((key.name === "left" || key.name === "right" || key.name === "tab") && !key.ctrl && !key.meta) {
28144
+ if (selectedEntry?.kind === "agent") {
28145
+ setAgentTab(
28146
+ (tab) => nextAgentDashboardTab(
28147
+ tab,
28148
+ key.name === "left" || key.shift ? -1 : 1
28149
+ )
28150
+ );
28151
+ }
28152
+ return;
28153
+ }
28154
+ if (key.sequence === "a" && !key.ctrl && !key.meta && selectedApproval?.kind === "agent") {
28155
+ if (isDetailMode || agentLayout.split)
28156
+ setReviewingApproval(agentApprovalKey ?? null);
28157
+ return;
28158
+ }
28159
+ if (isDetailMode && selectedEntry?.kind === "agent") {
28160
+ if (key.name === "escape") {
28161
+ if (pendingCancelEntryId) setPendingCancelEntryId(null);
28162
+ else {
28163
+ setReviewingApproval(null);
28164
+ if (dialogMode === "detail-from-panel") openDialog();
28165
+ else exitDetail();
28166
+ }
28167
+ return;
28168
+ }
28169
+ if (key.name === "return" || key.name === "space") return;
28170
+ const up = keyMatchers["selectionUp" /* SELECTION_UP */](key);
28171
+ const down = keyMatchers["selectionDown" /* SELECTION_DOWN */](key);
28172
+ const pageUp = key.name === "pageup";
28173
+ const pageDown = key.name === "pagedown";
28174
+ if (up || down || pageUp || pageDown) {
28175
+ const maxOffset = Math.max(
28176
+ 0,
28177
+ getAgentDashboardLines(
28178
+ selectedEntry,
28179
+ agentTab,
28180
+ agentLayout.detailWidth,
28181
+ entries
28182
+ ).length - agentLayout.pageSize
28183
+ );
28184
+ const direction = up || pageUp ? -1 : 1;
28185
+ const step = pageUp || pageDown ? agentLayout.pageSize : 1;
28186
+ setAgentScrollOffset(
28187
+ (offset) => Math.max(0, Math.min(maxOffset, offset + direction * step))
28188
+ );
28189
+ return;
28190
+ }
28191
+ }
28192
+ }
27527
28193
  if (dialogMode === "list") {
27528
28194
  if (keyMatchers["selectionUp" /* SELECTION_UP */](key)) {
27529
28195
  moveSelectionUp();
@@ -27633,7 +28299,95 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27633
28299
  }
27634
28300
  if (workflowSaveTarget) hints.push("s save");
27635
28301
  }
27636
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
28302
+ if (approvalActive && selectedApproval?.kind === "agent" && approvalConfirmationDetails && selectedEntry?.kind === "agent") {
28303
+ const nestedOwner = selectedApproval.approval.subagentId;
28304
+ const headingRows = nestedOwner ? 3 : 2;
28305
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
28306
+ Box_default,
28307
+ {
28308
+ flexDirection: "column",
28309
+ width: terminalWidth,
28310
+ height: availableTerminalHeight,
28311
+ flexShrink: 0,
28312
+ children: [
28313
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
28314
+ Box_default,
28315
+ {
28316
+ flexDirection: "column",
28317
+ width: terminalWidth,
28318
+ height: Math.max(1, availableTerminalHeight - 1),
28319
+ borderStyle: glyphs().borderStyle,
28320
+ borderColor: theme.status.warning,
28321
+ paddingX: 1,
28322
+ flexShrink: 0,
28323
+ children: [
28324
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.warning, wrap: "truncate-end", children: t("Background agent needs approval") }),
28325
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: dashboardSingleLine(
28326
+ selectedEntry.description,
28327
+ Math.max(1, terminalWidth - 4)
28328
+ ) }),
28329
+ nestedOwner && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [
28330
+ t("from nested agent"),
28331
+ ":",
28332
+ " ",
28333
+ dashboardSingleLine(nestedOwner, Math.max(1, terminalWidth - 4))
28334
+ ] }),
28335
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28336
+ ToolConfirmationMessage,
28337
+ {
28338
+ confirmationDetails: approvalConfirmationDetails,
28339
+ config,
28340
+ isFocused: true,
28341
+ contentWidth: Math.max(1, terminalWidth - 4),
28342
+ availableTerminalHeight: Math.max(
28343
+ 1,
28344
+ availableTerminalHeight - headingRows - 3
28345
+ ),
28346
+ compactMode: true
28347
+ }
28348
+ )
28349
+ ]
28350
+ }
28351
+ ),
28352
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: showCancelConfirmHint ? t(
28353
+ "Press x again to stop; this ends the blocking turn. Esc cancels."
28354
+ ) : approvalUsesQuestionDialog ? t("Approve or deny the request above") : t("\u2190 back \xB7 x stop") })
28355
+ ]
28356
+ }
28357
+ );
28358
+ }
28359
+ if (hasAgents && (dialogMode === "list" || selectedEntry?.kind === "agent") && !approvalActive && !saveActive) {
28360
+ const actionHints = [];
28361
+ if (selectedEntry?.kind === "agent" && selectedEntry.pendingApprovals?.length)
28362
+ actionHints.push(t("a review approval"));
28363
+ if (selectedEntry && isStoppableEntry(selectedEntry))
28364
+ actionHints.push(t("x stop"));
28365
+ if (selectedEntryAllowsResume) actionHints.push(t("r resume"));
28366
+ if (selectedEntry?.kind === "agent" && selectedEntry.status === "paused")
28367
+ actionHints.push(t("x abandon"));
28368
+ if (selectedWorkflowPauseHint) actionHints.push(selectedWorkflowPauseHint);
28369
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28370
+ AgentDashboard,
28371
+ {
28372
+ entries,
28373
+ selectedEntry,
28374
+ selectedIndex,
28375
+ detailFocused: isDetailMode,
28376
+ tab: agentTab,
28377
+ scrollOffset: agentScrollOffset,
28378
+ width: terminalWidth,
28379
+ height: availableTerminalHeight,
28380
+ actionHints,
28381
+ footerMessage: showCancelConfirmHint ? t(
28382
+ "Press x again to stop; this ends the blocking turn. Esc cancels."
28383
+ ) : pauseRejected?.entryKey === selectedEntryKey ? t(
28384
+ "Pause/resume was rejected; the workflow state changed. Try again."
28385
+ ) : void 0,
28386
+ renderOtherDetail: (entry, height, width) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(DetailBody, { entry, maxHeight: height, maxWidth: width })
28387
+ }
28388
+ );
28389
+ }
28390
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
27637
28391
  Box_default,
27638
28392
  {
27639
28393
  flexDirection: "column",
@@ -27642,32 +28396,32 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27642
28396
  marginTop: 1,
27643
28397
  paddingX: 1,
27644
28398
  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)(
28399
+ 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") }) }),
28400
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { marginTop: dialogMode === "list" ? 1 : 0, flexDirection: "column", children: [
28401
+ dialogMode === "list" ? /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
27648
28402
  ListBody,
27649
28403
  {
27650
28404
  entries,
27651
28405
  selectedIndex,
27652
28406
  maxRows: listMaxRows
27653
28407
  }
27654
- ) : selectedEntry ? /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
28408
+ ) : selectedEntry ? /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
27655
28409
  DetailBody,
27656
28410
  {
27657
28411
  entry: selectedEntry,
27658
28412
  maxHeight: approvalActive ? Math.max(6, Math.floor(detailContentHeight / 2)) : detailContentHeight,
27659
28413
  maxWidth: detailContentWidth
27660
28414
  }
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: [
28415
+ ) : /* @__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.") }) }),
28416
+ approvalActive && approvalConfirmationDetails && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, paddingX: 1, children: [
28417
+ /* @__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") }),
28418
+ selectedApproval?.kind === "agent" && selectedApproval.approval.subagentId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { color: theme.text.secondary, children: [
27665
28419
  t("from nested agent"),
27666
28420
  ":",
27667
28421
  " ",
27668
28422
  selectedApproval.approval.subagentId
27669
28423
  ] }),
27670
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
28424
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
27671
28425
  ToolConfirmationMessage,
27672
28426
  {
27673
28427
  confirmationDetails: approvalConfirmationDetails,
@@ -27683,7 +28437,7 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27683
28437
  )
27684
28438
  ] })
27685
28439
  ] }),
27686
- saveActive && workflowSaveTarget && config ? /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
28440
+ saveActive && workflowSaveTarget && config ? /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
27687
28441
  WorkflowSaveOverlay,
27688
28442
  {
27689
28443
  script: workflowSaveTarget.script,
@@ -27692,16 +28446,16 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
27692
28446
  isActive: saveActive,
27693
28447
  onClose: () => setSaveActive(false)
27694
28448
  }
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(
28449
+ ) : /* @__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
28450
  "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 ") }) })
28451
+ ) }) : /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: hints.join(" \xB7 ") }) })
27698
28452
  ]
27699
28453
  }
27700
28454
  );
27701
28455
  }, "BackgroundTasksDialog");
27702
28456
 
27703
28457
  // packages/cli/src/ui/components/DialogManager.tsx
27704
- var import_jsx_runtime110 = __toESM(require_jsx_runtime(), 1);
28458
+ var import_jsx_runtime111 = __toESM(require_jsx_runtime(), 1);
27705
28459
  var DialogManager = /* @__PURE__ */ __name(({
27706
28460
  addItem,
27707
28461
  terminalWidth
@@ -27720,7 +28474,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27720
28474
  const constrainedDialogHeight = constrainHeight ? dialogMaxHeight : void 0;
27721
28475
  const listDialogHeight = dialogMaxHeight;
27722
28476
  if (uiState.showWelcomeBackDialog && uiState.welcomeBackInfo?.hasHistory) {
27723
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28477
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27724
28478
  WelcomeBackDialog,
27725
28479
  {
27726
28480
  welcomeBackInfo: uiState.welcomeBackInfo,
@@ -27730,7 +28484,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27730
28484
  );
27731
28485
  }
27732
28486
  if (uiState.showWorktreeExitDialog && uiState.activeWorktree) {
27733
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28487
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27734
28488
  WorktreeExitDialog,
27735
28489
  {
27736
28490
  slug: uiState.activeWorktree.slug,
@@ -27744,10 +28498,10 @@ var DialogManager = /* @__PURE__ */ __name(({
27744
28498
  );
27745
28499
  }
27746
28500
  if (uiState.showIdeRestartPrompt) {
27747
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(IdeTrustChangeDialog, { reason: uiState.ideTrustRestartReason });
28501
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(IdeTrustChangeDialog, { reason: uiState.ideTrustRestartReason });
27748
28502
  }
27749
28503
  if (uiState.shouldShowIdePrompt) {
27750
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28504
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27751
28505
  IdeIntegrationNudge,
27752
28506
  {
27753
28507
  ide: uiState.currentIDE,
@@ -27756,7 +28510,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27756
28510
  );
27757
28511
  }
27758
28512
  if (uiState.shouldShowCommandMigrationNudge) {
27759
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28513
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27760
28514
  CommandFormatMigrationNudge,
27761
28515
  {
27762
28516
  tomlFiles: uiState.commandMigrationTomlFiles,
@@ -27765,7 +28519,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27765
28519
  );
27766
28520
  }
27767
28521
  if (uiState.isFolderTrustDialogOpen) {
27768
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28522
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27769
28523
  FolderTrustDialog,
27770
28524
  {
27771
28525
  onSelect: uiActions.handleFolderTrustSelect,
@@ -27774,7 +28528,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27774
28528
  );
27775
28529
  }
27776
28530
  if (uiState.isMcpApprovalDialogOpen && uiState.currentMcpApproval) {
27777
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28531
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27778
28532
  MCPServerApprovalDialog,
27779
28533
  {
27780
28534
  serverName: uiState.currentMcpApproval.name,
@@ -27787,7 +28541,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27787
28541
  );
27788
28542
  }
27789
28543
  if (uiState.shellConfirmationRequest) {
27790
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28544
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27791
28545
  ShellConfirmationDialog,
27792
28546
  {
27793
28547
  request: uiState.shellConfirmationRequest,
@@ -27797,7 +28551,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27797
28551
  );
27798
28552
  }
27799
28553
  if (uiState.loopDetectionConfirmationRequest) {
27800
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28554
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27801
28555
  LoopDetectionConfirmation,
27802
28556
  {
27803
28557
  onComplete: uiState.loopDetectionConfirmationRequest.onComplete
@@ -27805,7 +28559,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27805
28559
  );
27806
28560
  }
27807
28561
  if (uiState.confirmationRequest) {
27808
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28562
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27809
28563
  ConsentPrompt,
27810
28564
  {
27811
28565
  prompt: uiState.confirmationRequest.prompt,
@@ -27817,7 +28571,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27817
28571
  }
27818
28572
  if (uiState.confirmUpdateExtensionRequests.length > 0 && !uiState.isExtensionsManagerDialogOpen) {
27819
28573
  const request = uiState.confirmUpdateExtensionRequests[0];
27820
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28574
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27821
28575
  ConsentPrompt,
27822
28576
  {
27823
28577
  prompt: request.prompt,
@@ -27828,7 +28582,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27828
28582
  );
27829
28583
  }
27830
28584
  if (uiState.providerUpdateRequest) {
27831
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28585
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27832
28586
  ProviderUpdatePrompt,
27833
28587
  {
27834
28588
  entries: uiState.providerUpdateRequest.entries,
@@ -27838,7 +28592,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27838
28592
  }
27839
28593
  if (uiState.settingInputRequests.length > 0 && !uiState.isExtensionsManagerDialogOpen) {
27840
28594
  const request = uiState.settingInputRequests[0];
27841
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28595
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27842
28596
  SettingInputPrompt,
27843
28597
  {
27844
28598
  settingName: request.settingName,
@@ -27853,7 +28607,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27853
28607
  }
27854
28608
  if (uiState.pluginChoiceRequests.length > 0 && !uiState.isExtensionsManagerDialogOpen) {
27855
28609
  const request = uiState.pluginChoiceRequests[0];
27856
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28610
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27857
28611
  PluginChoicePrompt,
27858
28612
  {
27859
28613
  marketplaceName: request.marketplaceName,
@@ -27867,9 +28621,9 @@ var DialogManager = /* @__PURE__ */ __name(({
27867
28621
  );
27868
28622
  }
27869
28623
  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)(
28624
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(Box_default, { flexDirection: "column", children: [
28625
+ 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 }) }),
28626
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27873
28627
  ThemeDialog,
27874
28628
  {
27875
28629
  onSelect: uiActions.handleThemeSelect,
@@ -27882,9 +28636,9 @@ var DialogManager = /* @__PURE__ */ __name(({
27882
28636
  ] });
27883
28637
  }
27884
28638
  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)(
28639
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(Box_default, { flexDirection: "column", children: [
28640
+ 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 }) }),
28641
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27888
28642
  EditorSettingsDialog,
27889
28643
  {
27890
28644
  onSelect: uiActions.handleEditorSelect,
@@ -27895,7 +28649,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27895
28649
  ] });
27896
28650
  }
27897
28651
  if (uiState.isModelDialogOpen) {
27898
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28652
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27899
28653
  ModelDialog,
27900
28654
  {
27901
28655
  onClose: uiActions.closeModelDialog,
@@ -27910,7 +28664,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27910
28664
  );
27911
28665
  }
27912
28666
  if (uiState.isSettingsDialogOpen) {
27913
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28667
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27914
28668
  SettingsDialog,
27915
28669
  {
27916
28670
  settings,
@@ -27941,7 +28695,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27941
28695
  ) });
27942
28696
  }
27943
28697
  if (uiState.isStatusLineDialogOpen) {
27944
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28698
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27945
28699
  StatusLineDialog,
27946
28700
  {
27947
28701
  settings,
@@ -27955,10 +28709,10 @@ var DialogManager = /* @__PURE__ */ __name(({
27955
28709
  );
27956
28710
  }
27957
28711
  if (uiState.isMemoryDialogOpen) {
27958
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(MemoryDialog, { onClose: uiActions.closeMemoryDialog });
28712
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(MemoryDialog, { onClose: uiActions.closeMemoryDialog });
27959
28713
  }
27960
28714
  if (uiState.isHelpDialogOpen) {
27961
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28715
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27962
28716
  Help,
27963
28717
  {
27964
28718
  commands: uiState.slashCommands,
@@ -27972,7 +28726,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27972
28726
  }
27973
28727
  if (uiState.isApprovalModeDialogOpen) {
27974
28728
  const currentMode = config.getApprovalMode();
27975
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28729
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27976
28730
  ApprovalModeDialog,
27977
28731
  {
27978
28732
  settings,
@@ -27983,7 +28737,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27983
28737
  ) });
27984
28738
  }
27985
28739
  if (uiState.isEffortDialogOpen) {
27986
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28740
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27987
28741
  EffortDialog,
27988
28742
  {
27989
28743
  currentEffort: config.getReasoningEffort(),
@@ -27993,7 +28747,7 @@ var DialogManager = /* @__PURE__ */ __name(({
27993
28747
  ) });
27994
28748
  }
27995
28749
  if (uiState.isOutputStyleDialogOpen) {
27996
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28750
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
27997
28751
  OutputStyleDialog,
27998
28752
  {
27999
28753
  currentStyleName: config.getOutputStyle()?.name,
@@ -28003,7 +28757,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28003
28757
  ) });
28004
28758
  }
28005
28759
  if (uiState.activeArenaDialog === "start") {
28006
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28760
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28007
28761
  ArenaStartDialog,
28008
28762
  {
28009
28763
  onClose: () => uiActions.closeArenaDialog(),
@@ -28014,7 +28768,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28014
28768
  if (uiState.activeArenaDialog === "status") {
28015
28769
  const arenaManager = config.getArenaManager();
28016
28770
  if (arenaManager) {
28017
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28771
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28018
28772
  ArenaStatusDialog,
28019
28773
  {
28020
28774
  manager: arenaManager,
@@ -28025,7 +28779,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28025
28779
  }
28026
28780
  }
28027
28781
  if (uiState.activeArenaDialog === "stop") {
28028
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28782
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28029
28783
  ArenaStopDialog,
28030
28784
  {
28031
28785
  config,
@@ -28037,7 +28791,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28037
28791
  if (uiState.activeArenaDialog === "select") {
28038
28792
  const arenaManager = config.getArenaManager();
28039
28793
  if (arenaManager) {
28040
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28794
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28041
28795
  ArenaSelectDialog,
28042
28796
  {
28043
28797
  manager: arenaManager,
@@ -28049,11 +28803,11 @@ var DialogManager = /* @__PURE__ */ __name(({
28049
28803
  }
28050
28804
  }
28051
28805
  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, {}) });
28806
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(AuthDialog, {}) });
28053
28807
  }
28054
28808
  if (uiState.auth.isAuthenticating) {
28055
28809
  if (uiState.auth.pendingAuthType === "openai" /* USE_OPENAI */ && uiState.auth.externalAuthState) {
28056
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28810
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28057
28811
  ExternalAuthProgress,
28058
28812
  {
28059
28813
  title: uiState.auth.externalAuthState.title,
@@ -28068,13 +28822,13 @@ var DialogManager = /* @__PURE__ */ __name(({
28068
28822
  }
28069
28823
  }
28070
28824
  if (uiState.isTrustDialogOpen) {
28071
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(TrustDialog, { onExit: uiActions.closeTrustDialog, addItem });
28825
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(TrustDialog, { onExit: uiActions.closeTrustDialog, addItem });
28072
28826
  }
28073
28827
  if (uiState.isPermissionsDialogOpen) {
28074
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(PermissionsDialog, { onExit: uiActions.closePermissionsDialog });
28828
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(PermissionsDialog, { onExit: uiActions.closePermissionsDialog });
28075
28829
  }
28076
28830
  if (uiState.isSubagentCreateDialogOpen) {
28077
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28831
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28078
28832
  AgentCreationWizard,
28079
28833
  {
28080
28834
  onClose: uiActions.closeSubagentCreateDialog,
@@ -28083,7 +28837,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28083
28837
  );
28084
28838
  }
28085
28839
  if (uiState.isAgentsManagerDialogOpen) {
28086
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28840
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28087
28841
  AgentsManagerDialog,
28088
28842
  {
28089
28843
  onClose: uiActions.closeAgentsManagerDialog,
@@ -28092,7 +28846,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28092
28846
  );
28093
28847
  }
28094
28848
  if (uiState.isSkillsManagerDialogOpen) {
28095
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28849
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28096
28850
  SkillsManagerDialog,
28097
28851
  {
28098
28852
  settings,
@@ -28106,7 +28860,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28106
28860
  );
28107
28861
  }
28108
28862
  if (uiState.isExtensionsManagerDialogOpen) {
28109
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28863
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28110
28864
  ExtensionsManagerDialog,
28111
28865
  {
28112
28866
  onClose: uiActions.closeExtensionsManagerDialog,
@@ -28115,19 +28869,19 @@ var DialogManager = /* @__PURE__ */ __name(({
28115
28869
  );
28116
28870
  }
28117
28871
  if (uiState.isHooksDialogOpen) {
28118
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(HooksManagementDialog, { onClose: uiActions.closeHooksDialog });
28872
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(HooksManagementDialog, { onClose: uiActions.closeHooksDialog });
28119
28873
  }
28120
28874
  if (uiState.isStatsDialogOpen) {
28121
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(StatsDialog, { onClose: uiActions.closeStatsDialog, width: mainAreaWidth });
28875
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(StatsDialog, { onClose: uiActions.closeStatsDialog, width: mainAreaWidth });
28122
28876
  }
28123
28877
  if (uiState.isRemoteDialogOpen) {
28124
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(RemoteControlDialog, { onClose: uiActions.closeRemoteDialog });
28878
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(RemoteControlDialog, { onClose: uiActions.closeRemoteDialog });
28125
28879
  }
28126
28880
  if (uiState.isMcpDialogOpen) {
28127
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(MCPManagementDialog, { onClose: uiActions.closeMcpDialog });
28881
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(MCPManagementDialog, { onClose: uiActions.closeMcpDialog });
28128
28882
  }
28129
28883
  if (uiState.isResumeDialogOpen) {
28130
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28884
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28131
28885
  SessionPicker,
28132
28886
  {
28133
28887
  sessionService: config.getSessionService(),
@@ -28141,7 +28895,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28141
28895
  }
28142
28896
  if (uiState.isDeleteDialogOpen) {
28143
28897
  const currentSessionId = config.getSessionId();
28144
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28898
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28145
28899
  SessionPicker,
28146
28900
  {
28147
28901
  sessionService: config.getSessionService(),
@@ -28156,7 +28910,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28156
28910
  );
28157
28911
  }
28158
28912
  if (uiState.isRewindSelectorOpen) {
28159
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28913
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28160
28914
  RewindSelector,
28161
28915
  {
28162
28916
  history: uiState.history,
@@ -28168,7 +28922,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28168
28922
  );
28169
28923
  }
28170
28924
  if (uiState.isDiffDialogOpen) {
28171
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28925
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28172
28926
  DiffDialog,
28173
28927
  {
28174
28928
  history: uiState.history,
@@ -28180,7 +28934,7 @@ var DialogManager = /* @__PURE__ */ __name(({
28180
28934
  );
28181
28935
  }
28182
28936
  if (uiState.isSkillReviewDialogOpen && uiState.skillReviewPending) {
28183
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28937
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28184
28938
  SkillReviewDialog,
28185
28939
  {
28186
28940
  skills: uiState.skillReviewPending.skills,
@@ -28193,11 +28947,14 @@ var DialogManager = /* @__PURE__ */ __name(({
28193
28947
  );
28194
28948
  }
28195
28949
  if (bgTasksDialogOpen) {
28196
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
28950
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
28197
28951
  BackgroundTasksDialog,
28198
28952
  {
28199
28953
  availableTerminalHeight: listDialogHeight,
28200
- terminalWidth: mainAreaWidth
28954
+ terminalWidth: Math.max(
28955
+ 1,
28956
+ terminalWidth - sideMargin(getLayoutTier(terminalWidth)) * 2
28957
+ )
28201
28958
  }
28202
28959
  );
28203
28960
  }
@@ -28270,7 +29027,7 @@ function isNarrowWidth(width) {
28270
29027
  __name(isNarrowWidth, "isNarrowWidth");
28271
29028
 
28272
29029
  // packages/cli/src/ui/components/LoadingIndicator.tsx
28273
- var import_jsx_runtime111 = __toESM(require_jsx_runtime(), 1);
29030
+ var import_jsx_runtime112 = __toESM(require_jsx_runtime(), 1);
28274
29031
  var LoadingIndicator = /* @__PURE__ */ __name(({
28275
29032
  currentLoadingPhrase,
28276
29033
  elapsedTime,
@@ -28311,34 +29068,34 @@ var LoadingIndicator = /* @__PURE__ */ __name(({
28311
29068
  time: timeStr,
28312
29069
  tokens: `${tokenStr}${tokenRateStr}`
28313
29070
  }) : null;
28314
- return /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(Box_default, { paddingLeft: 2, flexDirection: "column", children: [
28315
- /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(
29071
+ return /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(Box_default, { paddingLeft: 2, flexDirection: "column", children: [
29072
+ /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(
28316
29073
  Box_default,
28317
29074
  {
28318
29075
  width: "100%",
28319
29076
  flexDirection: isNarrow ? "column" : "row",
28320
29077
  alignItems: isNarrow ? "flex-start" : "center",
28321
29078
  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)(
29079
+ /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(Box_default, { children: [
29080
+ /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
28324
29081
  RespondingSpinner,
28325
29082
  {
28326
29083
  nonRespondingDisplay: streamingState === "waiting_for_confirmation" /* WaitingForConfirmation */ ? WAITING_SPINNER_FRAME : ""
28327
29084
  }
28328
29085
  ) }),
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: [
29086
+ primaryText && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { color: theme.text.accent, wrap: "truncate-end", children: primaryText }),
29087
+ !isNarrow && cancelAndTimerContent && /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(Text, { color: theme.text.secondary, children: [
28331
29088
  " ",
28332
29089
  cancelAndTimerContent
28333
29090
  ] })
28334
29091
  ] }),
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 })
29092
+ !isNarrow && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { flexGrow: 1 }),
29093
+ !isNarrow && rightContent && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { children: rightContent })
28337
29094
  ]
28338
29095
  }
28339
29096
  ),
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 })
29097
+ isNarrow && cancelAndTimerContent && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { color: theme.text.secondary, children: cancelAndTimerContent }) }),
29098
+ isNarrow && rightContent && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { children: rightContent })
28342
29099
  ] });
28343
29100
  }, "LoadingIndicator");
28344
29101
  function formatTokensPerSecond(tokensPerSecond) {
@@ -28349,7 +29106,7 @@ function formatTokensPerSecond(tokensPerSecond) {
28349
29106
  return `${rounded} t/s`;
28350
29107
  }
28351
29108
  __name(formatTokensPerSecond, "formatTokensPerSecond");
28352
- var LiveLoadingIndicator = /* @__PURE__ */ __name(({ elapsedClock, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(LoadingIndicator, { ...props, elapsedTime: useElapsedSeconds(elapsedClock) }), "LiveLoadingIndicator");
29109
+ var LiveLoadingIndicator = /* @__PURE__ */ __name(({ elapsedClock, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(LoadingIndicator, { ...props, elapsedTime: useElapsedSeconds(elapsedClock) }), "LiveLoadingIndicator");
28353
29110
 
28354
29111
  // packages/cli/src/ui/components/InputPrompt.tsx
28355
29112
  init_esbuild_shims();
@@ -28393,7 +29150,7 @@ __name(CompletionCategoryMouseController, "CompletionCategoryMouseController");
28393
29150
  // packages/cli/src/ui/components/PrepareLabel.tsx
28394
29151
  init_esbuild_shims();
28395
29152
  var import_react91 = __toESM(require_react(), 1);
28396
- var import_jsx_runtime112 = __toESM(require_jsx_runtime(), 1);
29153
+ var import_jsx_runtime113 = __toESM(require_jsx_runtime(), 1);
28397
29154
  var MAX_WIDTH = 150;
28398
29155
  var _PrepareLabel = /* @__PURE__ */ __name(({
28399
29156
  label,
@@ -28405,7 +29162,7 @@ var _PrepareLabel = /* @__PURE__ */ __name(({
28405
29162
  const hasMatch = matchedIndex !== void 0 && matchedIndex >= 0 && matchedIndex < label.length && userInput.length > 0;
28406
29163
  if (!hasMatch) {
28407
29164
  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 });
29165
+ return /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { wrap: "wrap", color: textColor, children: display });
28409
29166
  }
28410
29167
  const matchLength = userInput.length;
28411
29168
  let before = "";
@@ -28444,9 +29201,9 @@ var _PrepareLabel = /* @__PURE__ */ __name(({
28444
29201
  after = after.length >= 3 ? after.slice(0, -3) + "..." : "...";
28445
29202
  }
28446
29203
  }
28447
- return /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(Text, { color: textColor, wrap: "wrap", children: [
29204
+ return /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(Text, { color: textColor, wrap: "wrap", children: [
28448
29205
  before,
28449
- match ? match.split(/(\s+)/).map((part, index) => /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
29206
+ match ? match.split(/(\s+)/).map((part, index) => /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
28450
29207
  Text,
28451
29208
  {
28452
29209
  color: theme.background.primary,
@@ -28461,7 +29218,7 @@ var _PrepareLabel = /* @__PURE__ */ __name(({
28461
29218
  var PrepareLabel = import_react91.default.memo(_PrepareLabel);
28462
29219
 
28463
29220
  // packages/cli/src/ui/components/SuggestionsDisplay.tsx
28464
- var import_jsx_runtime113 = __toESM(require_jsx_runtime(), 1);
29221
+ var import_jsx_runtime114 = __toESM(require_jsx_runtime(), 1);
28465
29222
  function categoryLabel(cat) {
28466
29223
  switch (cat) {
28467
29224
  case "all":
@@ -28503,7 +29260,7 @@ function SuggestionsDisplay({
28503
29260
  const itemRefs = (0, import_react92.useRef)([]);
28504
29261
  const categoryRefs = (0, import_react92.useRef)([]);
28505
29262
  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...") }) });
29263
+ 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
29264
  }
28508
29265
  const filteredSuggestions = activeCategory === "all" ? suggestions : suggestions.filter((s) => (s.category ?? "file") === activeCategory);
28509
29266
  const showTabBar = (availableCategories?.length ?? 0) > 2;
@@ -28533,7 +29290,7 @@ function SuggestionsDisplay({
28533
29290
  Math.max(...describedLabelLengths),
28534
29291
  Math.max(contentWidth - MIN_DESCRIPTION_WIDTH - 2, 1)
28535
29292
  ) : 0;
28536
- return /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(
29293
+ return /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
28537
29294
  Box_default,
28538
29295
  {
28539
29296
  flexDirection: "column",
@@ -28543,7 +29300,7 @@ function SuggestionsDisplay({
28543
29300
  borderColor: extendedTheme.ui.rule,
28544
29301
  paddingX: 1,
28545
29302
  children: [
28546
- mouseEnabled && onHoverIndex && onSelectIndex && /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
29303
+ mouseEnabled && onHoverIndex && onSelectIndex && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
28547
29304
  RowMouseController,
28548
29305
  {
28549
29306
  containerRef,
@@ -28553,7 +29310,7 @@ function SuggestionsDisplay({
28553
29310
  onSelectIndex
28554
29311
  }
28555
29312
  ),
28556
- mouseEnabled && showTabBar && availableCategories && onSelectCategory && /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
29313
+ mouseEnabled && showTabBar && availableCategories && onSelectCategory && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
28557
29314
  CompletionCategoryMouseController,
28558
29315
  {
28559
29316
  containerRef,
@@ -28562,17 +29319,17 @@ function SuggestionsDisplay({
28562
29319
  onSelectCategory
28563
29320
  }
28564
29321
  ),
28565
- showTabBar && availableCategories && /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(Box_default, { flexDirection: "row", marginBottom: 1, children: [
29322
+ showTabBar && availableCategories && /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Box_default, { flexDirection: "row", marginBottom: 1, children: [
28566
29323
  availableCategories.map((cat, i) => {
28567
29324
  const active = cat === activeCategory;
28568
- return /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
29325
+ return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
28569
29326
  Box_default,
28570
29327
  {
28571
29328
  marginLeft: i === 0 ? 0 : 1,
28572
29329
  ref: (node) => {
28573
29330
  categoryRefs.current[i] = node;
28574
29331
  },
28575
- children: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
29332
+ children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
28576
29333
  Text,
28577
29334
  {
28578
29335
  color: active ? theme.background.primary : theme.text.secondary,
@@ -28584,9 +29341,9 @@ function SuggestionsDisplay({
28584
29341
  cat
28585
29342
  );
28586
29343
  }),
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)") }) })
29344
+ /* @__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
29345
  ] }),
28589
- scrollOffset > 0 && /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: theme.text.primary, children: "\u25B2" }),
29346
+ scrollOffset > 0 && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: theme.text.primary, children: "\u25B2" }),
28590
29347
  visibleSuggestions.map((suggestion, index) => {
28591
29348
  const originalIndex = startIndex + index;
28592
29349
  const isActive = originalIndex === activeIndex;
@@ -28599,7 +29356,7 @@ function SuggestionsDisplay({
28599
29356
  contentWidth - labelColumnWidth - 2 - expansionIndicatorWidth,
28600
29357
  1
28601
29358
  );
28602
- const labelElement = /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
29359
+ const labelElement = /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
28603
29360
  PrepareLabel,
28604
29361
  {
28605
29362
  label: displayLabel,
@@ -28609,7 +29366,7 @@ function SuggestionsDisplay({
28609
29366
  isExpanded
28610
29367
  }
28611
29368
  );
28612
- return /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(
29369
+ return /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
28613
29370
  Box_default,
28614
29371
  {
28615
29372
  flexDirection: "row",
@@ -28617,49 +29374,49 @@ function SuggestionsDisplay({
28617
29374
  itemRefs.current[index] = node;
28618
29375
  },
28619
29376
  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)(
29377
+ /* @__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} ` : " " }) }),
29378
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
28622
29379
  Box_default,
28623
29380
  {
28624
29381
  ...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: [
29382
+ children: /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Box_default, { children: [
29383
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Box_default, { flexShrink: 0, children: labelElement }),
29384
+ suggestion.argumentHint && /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [
28628
29385
  " ",
28629
29386
  suggestion.argumentHint
28630
29387
  ] }),
28631
- suggestion.sourceBadge && /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(Text, { color: textColor, wrap: "truncate-end", children: [
29388
+ suggestion.sourceBadge && /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Text, { color: textColor, wrap: "truncate-end", children: [
28632
29389
  " ",
28633
29390
  suggestion.sourceBadge
28634
29391
  ] })
28635
29392
  ] })
28636
29393
  }
28637
29394
  ),
28638
- suggestion.description && /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
29395
+ suggestion.description && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
28639
29396
  Box_default,
28640
29397
  {
28641
29398
  width: descriptionColumnWidth,
28642
29399
  flexGrow: 1,
28643
29400
  flexShrink: 1,
28644
29401
  paddingLeft: 2,
28645
- children: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: normalizeDescription(suggestion.description) })
29402
+ children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: normalizeDescription(suggestion.description) })
28646
29403
  }
28647
29404
  ),
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 " }) })
29405
+ 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
29406
  ]
28650
29407
  },
28651
29408
  `${suggestion.value}-${originalIndex}`
28652
29409
  );
28653
29410
  }),
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: [
29411
+ endIndex < filteredSuggestions.length && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: "gray", children: "\u25BC" }),
29412
+ filteredSuggestions.length > MAX_SUGGESTIONS_TO_SHOW && /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Text, { color: "gray", children: [
28656
29413
  "(",
28657
29414
  activeIndex + 1,
28658
29415
  "/",
28659
29416
  filteredSuggestions.length,
28660
29417
  ")"
28661
29418
  ] }),
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") })
29419
+ /* @__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
29420
  ]
28664
29421
  }
28665
29422
  );
@@ -31032,7 +31789,7 @@ function useTeamInProcess(config, actions) {
31032
31789
  __name(useTeamInProcess, "useTeamInProcess");
31033
31790
 
31034
31791
  // packages/cli/src/ui/contexts/AgentViewContext.tsx
31035
- var import_jsx_runtime114 = __toESM(require_jsx_runtime(), 1);
31792
+ var import_jsx_runtime115 = __toESM(require_jsx_runtime(), 1);
31036
31793
  var AgentViewStateContext = (0, import_react106.createContext)(null);
31037
31794
  var AgentViewActionsContext = (0, import_react106.createContext)(null);
31038
31795
  var DEFAULT_STATE2 = {
@@ -31290,8 +32047,8 @@ function AgentViewProvider({
31290
32047
  );
31291
32048
  useArenaInProcess(config ?? null, actions);
31292
32049
  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)),
32050
+ return /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(AgentViewStateContext.Provider, { value: state, children: /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(AgentViewActionsContext.Provider, { value: actions, children: [
32051
+ [...agents.keys()].map((agentId) => /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(AgentQueueFlusher, { agentId }, agentId)),
31295
32052
  children
31296
32053
  ] }) });
31297
32054
  }
@@ -31336,7 +32093,7 @@ __name(getLiveAgentPanelLayoutKey, "getLiveAgentPanelLayoutKey");
31336
32093
 
31337
32094
  // packages/cli/src/ui/FeedbackDialog.tsx
31338
32095
  init_esbuild_shims();
31339
- var import_jsx_runtime115 = __toESM(require_jsx_runtime(), 1);
32096
+ var import_jsx_runtime116 = __toESM(require_jsx_runtime(), 1);
31340
32097
  var FEEDBACK_OPTIONS = {
31341
32098
  GOOD: 1,
31342
32099
  BAD: 2,
@@ -31369,39 +32126,39 @@ var FeedbackDialog = /* @__PURE__ */ __name(() => {
31369
32126
  },
31370
32127
  { isActive: uiState.isFeedbackDialogOpen }
31371
32128
  );
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)") })
32129
+ return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Box_default, { flexDirection: "column", marginY: 1, children: [
32130
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Box_default, { children: [
32131
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: "cyan", children: ICON.CIRCLE_FILLED + " " }),
32132
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { bold: true, children: t("How is O1-Code doing this session? (optional)") })
31376
32133
  ] }),
31377
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(Box_default, { marginTop: 1, children: [
31378
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(Text, { color: "cyan", children: [
32134
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Box_default, { marginTop: 1, children: [
32135
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { color: "cyan", children: [
31379
32136
  FEEDBACK_OPTION_KEYS[FEEDBACK_OPTIONS.GOOD],
31380
32137
  ":",
31381
32138
  " "
31382
32139
  ] }),
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: [
32140
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: t("Good") }),
32141
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: " " }),
32142
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { color: "cyan", children: [
31386
32143
  FEEDBACK_OPTION_KEYS[FEEDBACK_OPTIONS.BAD],
31387
32144
  ": "
31388
32145
  ] }),
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: [
32146
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: t("Bad") }),
32147
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: " " }),
32148
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { color: "cyan", children: [
31392
32149
  FEEDBACK_OPTION_KEYS[FEEDBACK_OPTIONS.FINE],
31393
32150
  ":",
31394
32151
  " "
31395
32152
  ] }),
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: [
32153
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: t("Fine") }),
32154
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: " " }),
32155
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { color: "cyan", children: [
31399
32156
  FEEDBACK_OPTION_KEYS[FEEDBACK_OPTIONS.DISMISS],
31400
32157
  ":",
31401
32158
  " "
31402
32159
  ] }),
31403
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(Text, { children: t("Dismiss") }),
31404
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(Text, { children: " " })
32160
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: t("Dismiss") }),
32161
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: " " })
31405
32162
  ] })
31406
32163
  ] });
31407
32164
  }, "FeedbackDialog");
@@ -31524,7 +32281,7 @@ function TextInputMouseController({
31524
32281
  __name(TextInputMouseController, "TextInputMouseController");
31525
32282
 
31526
32283
  // packages/cli/src/ui/components/BaseTextInput.tsx
31527
- var import_jsx_runtime116 = __toESM(require_jsx_runtime(), 1);
32284
+ var import_jsx_runtime117 = __toESM(require_jsx_runtime(), 1);
31528
32285
  var INPUT_MAX_VISIBLE_LINES = 6;
31529
32286
  var LABEL_RESERVED_COLUMNS = 7;
31530
32287
  function defaultRenderLine({
@@ -31534,11 +32291,11 @@ function defaultRenderLine({
31534
32291
  showCursor
31535
32292
  }) {
31536
32293
  if (!isOnCursorLine || !showCursor || terminalShowsInputCursor()) {
31537
- return /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: lineText || " " });
32294
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { children: lineText || " " });
31538
32295
  }
31539
32296
  const len = cpLen(lineText);
31540
32297
  if (cursorCol >= len) {
31541
- return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { children: [
32298
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Text, { children: [
31542
32299
  lineText,
31543
32300
  renderSoftwareCursor(" ")
31544
32301
  ] });
@@ -31546,7 +32303,7 @@ function defaultRenderLine({
31546
32303
  const before = cpSlice(lineText, 0, cursorCol);
31547
32304
  const cursorChar = cpSlice(lineText, cursorCol, cursorCol + 1);
31548
32305
  const after = cpSlice(lineText, cursorCol + 1);
31549
- return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { children: [
32306
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Text, { children: [
31550
32307
  before,
31551
32308
  renderSoftwareCursor(cursorChar),
31552
32309
  after
@@ -31719,13 +32476,13 @@ var BaseTextInput = /* @__PURE__ */ __name(({
31719
32476
  });
31720
32477
  setCursorPosition(cursorPosition);
31721
32478
  const resolvedBorderColor = borderColor ?? theme.border.focused;
31722
- const resolvedPrefix = prefix ?? /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: theme.text.accent, children: "> " });
32479
+ const resolvedPrefix = prefix ?? /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: theme.text.accent, children: "> " });
31723
32480
  const columns = process.stdout.columns || 80;
31724
32481
  const labelBudget = columns - LABEL_RESERVED_COLUMNS;
31725
32482
  const renderedLabel = topRightLabel ? truncateToWidth(topRightLabel, labelBudget) : "";
31726
32483
  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)(
32484
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Box_default, { ref: boxRef, flexDirection: "column", children: [
32485
+ mouseEnabled && isActive && /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
31729
32486
  TextInputMouseController,
31730
32487
  {
31731
32488
  linesRef,
@@ -31738,9 +32495,9 @@ var BaseTextInput = /* @__PURE__ */ __name(({
31738
32495
  // The rule starts from zero width and takes only what the label leaves:
31739
32496
  // sized from its content (the whole terminal width) it pushed the
31740
32497
  // 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)(
32498
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Box_default, { children: [
32499
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: resolvedBorderColor, children: frame.topLeft }),
32500
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
31744
32501
  Box_default,
31745
32502
  {
31746
32503
  flexGrow: 1,
@@ -31748,12 +32505,12 @@ var BaseTextInput = /* @__PURE__ */ __name(({
31748
32505
  flexBasis: 0,
31749
32506
  height: 1,
31750
32507
  overflow: "hidden",
31751
- children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: resolvedBorderColor, children: frame.top.repeat(columns) })
32508
+ children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: resolvedBorderColor, children: frame.top.repeat(columns) })
31752
32509
  }
31753
32510
  ),
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}` }) })
32511
+ /* @__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
32512
  ] }),
31756
- /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(
32513
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(
31757
32514
  Box_default,
31758
32515
  {
31759
32516
  borderStyle: glyphs().borderStyle,
@@ -31762,7 +32519,7 @@ var BaseTextInput = /* @__PURE__ */ __name(({
31762
32519
  paddingX: 1,
31763
32520
  children: [
31764
32521
  resolvedPrefix,
31765
- /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(
32522
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(
31766
32523
  Box_default,
31767
32524
  {
31768
32525
  flexGrow: 1,
@@ -31771,16 +32528,16 @@ var BaseTextInput = /* @__PURE__ */ __name(({
31771
32528
  minWidth: 0,
31772
32529
  flexDirection: "column",
31773
32530
  children: [
31774
- scrollVisualRow > 0 && /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: extendedTheme.text.muted, children: `${glyphs().up} ${t("{{count}} lines above", {
32531
+ scrollVisualRow > 0 && /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: extendedTheme.text.muted, children: `${glyphs().up} ${t("{{count}} lines above", {
31775
32532
  count: String(scrollVisualRow)
31776
32533
  })}` }),
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: [
32534
+ /* @__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
32535
  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) => {
32536
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: extendedTheme.text.placeholder, children: placeholder.slice(1) })
32537
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: extendedTheme.text.placeholder, children: placeholder }) : linesToRender.map((lineText, idx) => {
31781
32538
  const absoluteVisualIndex = scrollVisualRow + idx;
31782
32539
  const isOnCursorLine = absoluteVisualIndex === cursorVisualRow;
31783
- return /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Box_default, { height: 1, children: renderLine({
32540
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Box_default, { height: 1, children: renderLine({
31784
32541
  lineText,
31785
32542
  isOnCursorLine,
31786
32543
  cursorCol: cursorVisualCol,
@@ -31791,7 +32548,7 @@ var BaseTextInput = /* @__PURE__ */ __name(({
31791
32548
  scrollVisualRow
31792
32549
  }) }, idx);
31793
32550
  }) }),
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", {
32551
+ (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
32552
  count: String(buffer.allVisualLines.length)
31796
32553
  }) }) })
31797
32554
  ]
@@ -31806,7 +32563,7 @@ var BaseTextInput = /* @__PURE__ */ __name(({
31806
32563
  // packages/cli/src/ui/components/SlashCommandMenu.tsx
31807
32564
  init_esbuild_shims();
31808
32565
  var import_react109 = __toESM(require_react(), 1);
31809
- var import_jsx_runtime117 = __toESM(require_jsx_runtime(), 1);
32566
+ var import_jsx_runtime118 = __toESM(require_jsx_runtime(), 1);
31810
32567
  var GROUPS = [
31811
32568
  {
31812
32569
  id: "sessions",
@@ -32202,7 +32959,7 @@ function SlashCommandMenu({
32202
32959
  );
32203
32960
  if (group || query) {
32204
32961
  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)(
32962
+ return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Box_default, { marginX: 2, children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
32206
32963
  SelectionDialog,
32207
32964
  {
32208
32965
  title: `${t("Commands")} \u203A ${title}`,
@@ -32238,7 +32995,7 @@ function SlashCommandMenu({
32238
32995
  ) });
32239
32996
  }
32240
32997
  const listRows = Math.max(1, height - 3);
32241
- return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(
32998
+ return /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(
32242
32999
  Box_default,
32243
33000
  {
32244
33001
  marginX: 2,
@@ -32250,7 +33007,7 @@ function SlashCommandMenu({
32250
33007
  flexDirection: "column",
32251
33008
  overflow: "hidden",
32252
33009
  children: [
32253
- /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Box_default, { height: listRows, overflow: "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
33010
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Box_default, { height: listRows, overflow: "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
32254
33011
  BaseSelectionList,
32255
33012
  {
32256
33013
  items: groups.map((group2) => ({
@@ -32269,17 +33026,17 @@ function SlashCommandMenu({
32269
33026
  setGroupId(id);
32270
33027
  setHighlighted(void 0);
32271
33028
  },
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 }) })
33029
+ renderItem: (item, { titleColor, isSelected }) => /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(Box_default, { width: "100%", children: [
33030
+ /* @__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 }) }),
33031
+ /* @__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
33032
  ] })
32276
33033
  }
32277
33034
  ) }),
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(
33035
+ height >= 4 && /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(Box_default, { height: 1, flexShrink: 0, children: [
33036
+ /* @__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
33037
  "Type to search commands \xB7 \u2191\u2193 navigate \xB7 enter open \xB7 esc close"
32281
33038
  ) }) }),
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: [
33039
+ /* @__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
33040
  Math.max(
32284
33041
  0,
32285
33042
  groups.findIndex((group2) => group2.id === highlightedGroup)
@@ -33379,7 +34136,7 @@ __name(refineVoiceTranscript, "refineVoiceTranscript");
33379
34136
 
33380
34137
  // packages/cli/src/ui/components/VoiceIndicator.tsx
33381
34138
  init_esbuild_shims();
33382
- var import_jsx_runtime118 = __toESM(require_jsx_runtime(), 1);
34139
+ var import_jsx_runtime119 = __toESM(require_jsx_runtime(), 1);
33383
34140
  var METER_WIDTH = 16;
33384
34141
  var LEVEL_GAIN = 12;
33385
34142
  function meter(level) {
@@ -33397,13 +34154,13 @@ function VoiceIndicator({
33397
34154
  if (status === "idle") {
33398
34155
  return null;
33399
34156
  }
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
34157
+ return /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 1, children: [
34158
+ /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Box_default, { children: status === "recording" ? /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(import_jsx_runtime119.Fragment, { children: [
34159
+ /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: "redBright", children: "\u25CF " }),
34160
+ /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: "cyan", children: meter(audioLevel) }),
34161
+ /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: "gray", children: " " + t("listening\u2026") })
34162
+ ] }) : 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") }) }),
34163
+ interimText ? /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { dimColor: true, wrap: "truncate-end", children: escapeAnsiCtrlCodes(interimText) }) : null
33407
34164
  ] });
33408
34165
  }
33409
34166
  __name(VoiceIndicator, "VoiceIndicator");
@@ -33411,7 +34168,7 @@ __name(VoiceIndicator, "VoiceIndicator");
33411
34168
  // packages/cli/src/ui/components/AttachmentPreparation.tsx
33412
34169
  init_esbuild_shims();
33413
34170
  var import_react111 = __toESM(require_react(), 1);
33414
- var import_jsx_runtime119 = __toESM(require_jsx_runtime(), 1);
34171
+ var import_jsx_runtime120 = __toESM(require_jsx_runtime(), 1);
33415
34172
  var frames = ["\u280B", "\u2819", "\u2839", "\u2838", "\u283C", "\u2834", "\u2826", "\u2827", "\u2807", "\u280F"];
33416
34173
  function AttachmentPreparation({
33417
34174
  state,
@@ -33429,13 +34186,13 @@ function AttachmentPreparation({
33429
34186
  }, [busy, startedAt]);
33430
34187
  if (!busy && state !== "error" && !notice) return null;
33431
34188
  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: [
34189
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Box_default, { marginLeft: 2, marginRight: 2, flexDirection: "column", children: [
34190
+ busy && /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Text, { color: extendedTheme.ui.brandSoft, wrap: "truncate-end", children: [
33434
34191
  frames[Math.floor(now / 100) % frames.length],
33435
34192
  " ",
33436
34193
  pasteBytes !== void 0 ? t("Pasting text\u2026 {{size}} KB", {
33437
34194
  size: String(Math.ceil(pasteBytes / 1024))
33438
- }) : /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(import_jsx_runtime119.Fragment, { children: [
34195
+ }) : /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(import_jsx_runtime120.Fragment, { children: [
33439
34196
  t(
33440
34197
  state === "reading" ? "Reading image\u2026" : "Preparing attachment\u2026"
33441
34198
  ),
@@ -33446,15 +34203,15 @@ function AttachmentPreparation({
33446
34203
  t("Esc to cancel")
33447
34204
  ] })
33448
34205
  ] }),
33449
- state === "error" && /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(Text, { color: theme.status.error, children: [
34206
+ state === "error" && /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Text, { color: theme.status.error, children: [
33450
34207
  "\u26A0",
33451
34208
  " ",
33452
34209
  t(
33453
34210
  "Could not prepare the attachment. Paste it again to retry; Esc to dismiss."
33454
34211
  )
33455
34212
  ] }),
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.") })
34213
+ notice === "wait" && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: theme.status.warning, children: t("Wait for the attachment to finish preparing before sending.") }),
34214
+ notice === "cancelled" && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: theme.text.secondary, children: t("Attachment preparation cancelled. Your prompt was preserved.") })
33458
34215
  ] });
33459
34216
  }
33460
34217
  __name(AttachmentPreparation, "AttachmentPreparation");
@@ -33595,7 +34352,7 @@ function clearPromptStash(targetDir) {
33595
34352
  __name(clearPromptStash, "clearPromptStash");
33596
34353
 
33597
34354
  // packages/cli/src/ui/components/InputPrompt.tsx
33598
- var import_jsx_runtime120 = __toESM(require_jsx_runtime(), 1);
34355
+ var import_jsx_runtime121 = __toESM(require_jsx_runtime(), 1);
33599
34356
  var PASTED_IMAGE_EXTENSIONS = /\.(png|jpe?g|gif|webp|bmp)$/i;
33600
34357
  function classifyPastedImagePaths(pasted) {
33601
34358
  const tokens = pasted.split(/ (?=@?\/|@?[A-Za-z]:\\)/).flatMap((part) => part.split("\n")).map((token) => token.trim()).filter(Boolean);
@@ -34086,7 +34843,7 @@ ${finalValue.trim()}`;
34086
34843
  {
34087
34844
  type: "error",
34088
34845
  text: t(
34089
- "Clipboard image paste is unavailable because the native clipboard module could not be loaded. Reinstall O1-Code or use the npm installation method."
34846
+ "Clipboard images are unavailable in this session. Attach the image file directly."
34090
34847
  )
34091
34848
  },
34092
34849
  Date.now()
@@ -34961,7 +35718,7 @@ ${currentText}`);
34961
35718
  }
34962
35719
  const color2 = seg.type === "command" || seg.type === "file" ? theme.text.accent : theme.text.primary;
34963
35720
  renderedLine.push(
34964
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: color2, children: display }, `token-${segIdx}`)
35721
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: color2, children: display }, `token-${segIdx}`)
34965
35722
  );
34966
35723
  });
34967
35724
  if (isOnCursorLine && cursorVisualColAbsolute === cpLen(lineText)) {
@@ -34969,34 +35726,34 @@ ${currentText}`);
34969
35726
  if (ghostText && showCursorOpt && ghostText.text.length > 0) {
34970
35727
  if (!drawCursor) {
34971
35728
  renderedLine.push(
34972
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: theme.text.secondary, children: ghostText.showCursorBeforeText ? ` ${ghostText.text}` : ghostText.text }, "ghost-rest")
35729
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.secondary, children: ghostText.showCursorBeforeText ? ` ${ghostText.text}` : ghostText.text }, "ghost-rest")
34973
35730
  );
34974
35731
  } else if (ghostText.showCursorBeforeText) {
34975
35732
  renderedLine.push(
34976
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { children: renderSoftwareCursor(" ") }, "ghost-cursor")
35733
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { children: renderSoftwareCursor(" ") }, "ghost-cursor")
34977
35734
  );
34978
35735
  renderedLine.push(
34979
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: theme.text.secondary, children: ghostText.text }, "ghost-rest")
35736
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.secondary, children: ghostText.text }, "ghost-rest")
34980
35737
  );
34981
35738
  } else {
34982
35739
  const firstChar = ghostText.text[0];
34983
35740
  const rest = ghostText.text.slice(firstChar.length);
34984
35741
  renderedLine.push(
34985
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { children: renderSoftwareCursor(firstChar) }, "ghost-cursor")
35742
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { children: renderSoftwareCursor(firstChar) }, "ghost-cursor")
34986
35743
  );
34987
35744
  if (rest.length > 0) {
34988
35745
  renderedLine.push(
34989
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: theme.text.secondary, children: rest }, "ghost-rest")
35746
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.secondary, children: rest }, "ghost-rest")
34990
35747
  );
34991
35748
  }
34992
35749
  }
34993
35750
  } else if (!terminalShowsInputCursor()) {
34994
35751
  renderedLine.push(
34995
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { children: showCursorOpt ? renderSoftwareCursor(" ") : " " }, `cursor-end-${cursorVisualColAbsolute}`)
35752
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { children: showCursorOpt ? renderSoftwareCursor(" ") : " " }, `cursor-end-${cursorVisualColAbsolute}`)
34996
35753
  );
34997
35754
  }
34998
35755
  }
34999
- return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { children: renderedLine });
35756
+ return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { children: renderedLine });
35000
35757
  },
35001
35758
  [slashCommands]
35002
35759
  );
@@ -35134,27 +35891,27 @@ ${currentText}`);
35134
35891
  }
35135
35892
  const borderColor = isShellFocused && !isEmbeddedShellFocused && !agentTabBarFocused ? shellModeActive ? statusColor ?? extendedTheme.ui.brand : extendedTheme.ui.brand : theme.border.default;
35136
35893
  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)(
35894
+ const prefixNode = /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
35138
35895
  Text,
35139
35896
  {
35140
35897
  color: shellModeActive ? statusColor : extendedTheme.ui.brand,
35141
35898
  "aria-label": statusText || void 0,
35142
35899
  children: [
35143
- shellModeActive ? reverseSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Text, { color: theme.text.link, "aria-label": SCREEN_READER_USER_PREFIX, children: [
35900
+ shellModeActive ? reverseSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(Text, { color: theme.text.link, "aria-label": SCREEN_READER_USER_PREFIX, children: [
35144
35901
  "(r:)",
35145
35902
  " "
35146
- ] }) : "!" : commandSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: theme.text.accent, children: "(r:) " }) : glyphs().prompt,
35903
+ ] }) : "!" : commandSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.accent, children: "(r:) " }) : glyphs().prompt,
35147
35904
  " "
35148
35905
  ]
35149
35906
  }
35150
35907
  );
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) => {
35908
+ return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(import_jsx_runtime121.Fragment, { children: [
35909
+ attachments.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Box_default, { marginLeft: 2, flexDirection: "column", children: attachments.map((att, idx) => {
35153
35910
  const selected = isAttachmentMode && idx === selectedAttachmentIndex;
35154
35911
  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)(
35912
+ return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(Box_default, { minWidth: 0, children: [
35913
+ /* @__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)) }) }),
35914
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
35158
35915
  Text,
35159
35916
  {
35160
35917
  wrap: "truncate-end",
@@ -35172,7 +35929,7 @@ ${currentText}`);
35172
35929
  )
35173
35930
  ] }, att.id);
35174
35931
  }) }),
35175
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
35932
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
35176
35933
  AttachmentPreparation,
35177
35934
  {
35178
35935
  state: attachmentPreparation.state,
@@ -35181,7 +35938,7 @@ ${currentText}`);
35181
35938
  pasteBytes: pasteProgress?.active ? pasteProgress.receivedBytes : void 0
35182
35939
  }
35183
35940
  ),
35184
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
35941
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
35185
35942
  VoiceIndicator,
35186
35943
  {
35187
35944
  status: voiceInput.status,
@@ -35189,7 +35946,7 @@ ${currentText}`);
35189
35946
  audioLevel: voiceInput.audioLevel
35190
35947
  }
35191
35948
  ),
35192
- !slashMenuPanelOpen && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
35949
+ !slashMenuPanelOpen && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
35193
35950
  BaseTextInput,
35194
35951
  {
35195
35952
  buffer,
@@ -35209,7 +35966,7 @@ ${currentText}`);
35209
35966
  mouseEnabled: mouseInteractionsEnabled
35210
35967
  }
35211
35968
  ),
35212
- showSlashMenu && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
35969
+ showSlashMenu && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
35213
35970
  SlashCommandMenu,
35214
35971
  {
35215
35972
  query: buffer.text.slice(1),
@@ -35238,7 +35995,7 @@ ${currentText}`);
35238
35995
  }
35239
35996
  }
35240
35997
  ),
35241
- shouldShowSuggestions && !showSlashMenu && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Box_default, { marginLeft: 2, marginRight: 2, children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
35998
+ shouldShowSuggestions && !showSlashMenu && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Box_default, { marginLeft: 2, marginRight: 2, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
35242
35999
  SuggestionsDisplay,
35243
36000
  {
35244
36001
  suggestions: suggestionDisplayProps.suggestions,
@@ -35257,7 +36014,7 @@ ${currentText}`);
35257
36014
  onSelectCategory: suggestionsFromExport || commandSearchActive || reverseSearchActive ? void 0 : handleCategorySelect
35258
36015
  }
35259
36016
  ) }),
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") }) })
36017
+ 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
36018
  ] });
35262
36019
  }, "InputPrompt");
35263
36020
 
@@ -35267,10 +36024,10 @@ var import_react117 = __toESM(require_react(), 1);
35267
36024
 
35268
36025
  // packages/cli/src/ui/components/ShellModeIndicator.tsx
35269
36026
  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: [
36027
+ var import_jsx_runtime122 = __toESM(require_jsx_runtime(), 1);
36028
+ var ShellModeIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(Text, { color: theme.ui.symbol, children: [
35272
36029
  "shell mode enabled",
35273
- /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.secondary, children: " (esc to disable)" })
36030
+ /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Text, { color: theme.text.secondary, children: " (esc to disable)" })
35274
36031
  ] }), "ShellModeIndicator");
35275
36032
 
35276
36033
  // packages/cli/src/ui/hooks/use-layout-tier.ts
@@ -35851,7 +36608,7 @@ function useConfigInitMessage(isConfigInitialized) {
35851
36608
  __name(useConfigInitMessage, "useConfigInitMessage");
35852
36609
 
35853
36610
  // packages/cli/src/ui/components/Footer.tsx
35854
- var import_jsx_runtime122 = __toESM(require_jsx_runtime(), 1);
36611
+ var import_jsx_runtime123 = __toESM(require_jsx_runtime(), 1);
35855
36612
  function readReasoning(config) {
35856
36613
  const generationConfig = config.getContentGeneratorConfig();
35857
36614
  if (!generationConfig) return void 0;
@@ -35917,23 +36674,23 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
35917
36674
  const worktreeBranch = settings.merged.ui?.hideBuiltinWorktreeIndicator ? void 0 : uiState.activeWorktree?.branch;
35918
36675
  const branch = worktreeBranch ?? uiState.branchName;
35919
36676
  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, {}),
36677
+ 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;
36678
+ 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: [
36679
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Spinner, {}),
35923
36680
  " ",
35924
36681
  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, {}),
36682
+ ] }) : uiState.startupIdeConnectionStatus.state === "connecting" ? /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(Text, { color: theme.text.secondary, children: [
36683
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Spinner, {}),
35927
36684
  " ",
35928
36685
  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}}", {
36686
+ ] }) : uiState.startupIdeConnectionStatus.state === "failed" ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.status.warning, children: t("IDE connection unavailable: {{message}}", {
35930
36687
  message: uiState.startupIdeConnectionStatus.message
35931
36688
  }) }) : null;
35932
36689
  const showStatusLine = statusLineLines.length > 0 && !uiState.ctrlCPressedOnce && !uiState.ctrlDPressedOnce;
35933
36690
  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 }) });
36691
+ 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
36692
  }
35936
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(
36693
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
35937
36694
  Box_default,
35938
36695
  {
35939
36696
  ref: containerRef,
@@ -35941,7 +36698,7 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
35941
36698
  paddingX: sideMargin(tier),
35942
36699
  justifyContent: "space-between",
35943
36700
  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)(
36701
+ /* @__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
36702
  ModeZone,
35946
36703
  {
35947
36704
  tier,
@@ -35953,10 +36710,10 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
35953
36710
  summaryMode: displayMode === "summary"
35954
36711
  }
35955
36712
  ) }),
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 }) }),
36713
+ 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
36714
  showStatusLine ? (
35958
36715
  // A custom status line replaces the usage zone and takes the room left.
35959
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
36716
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
35960
36717
  Box_default,
35961
36718
  {
35962
36719
  ref: statusLineRef,
@@ -35967,7 +36724,7 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
35967
36724
  alignItems: "flex-end",
35968
36725
  maxHeight: MAX_STATUS_LINES,
35969
36726
  overflow: "hidden",
35970
- children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
36727
+ children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
35971
36728
  Text,
35972
36729
  {
35973
36730
  color: respectUserColors ? void 0 : useThemeColors ? theme.text.accent : void 0,
@@ -35978,7 +36735,7 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
35978
36735
  )
35979
36736
  }
35980
36737
  )
35981
- ) : /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
36738
+ ) : /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
35982
36739
  UsageZone,
35983
36740
  {
35984
36741
  tier,
@@ -36030,7 +36787,7 @@ __name(getActiveSkill, "getActiveSkill");
36030
36787
  // packages/cli/src/ui/components/background-view/BackgroundTasksPill.tsx
36031
36788
  init_esbuild_shims();
36032
36789
  var import_react118 = __toESM(require_react(), 1);
36033
- var import_jsx_runtime123 = __toESM(require_jsx_runtime(), 1);
36790
+ var import_jsx_runtime124 = __toESM(require_jsx_runtime(), 1);
36034
36791
  var KIND_NAMES = {
36035
36792
  agent: { singular: "local agent", plural: "local agents" },
36036
36793
  shell: { singular: "shell", plural: "shells" },
@@ -36111,21 +36868,21 @@ var BackgroundTasksPill = /* @__PURE__ */ __name(() => {
36111
36868
  );
36112
36869
  const needsApproval = hasPendingApproval(entries);
36113
36870
  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 })
36871
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
36872
+ label && /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
36873
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: " \xB7 " }),
36874
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { inverse: pillFocused && monitoring === 0, wrap: "truncate", children: label })
36118
36875
  ] }),
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")}` })
36876
+ pillFocused && /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: ` ${t("enter open \xB7 \u2191 history \xB7 esc back")}` }),
36877
+ needsApproval && /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: theme.status.warning, wrap: "truncate", children: ` \u26A0 ${t("needs approval")}` }),
36878
+ largeWorkflow && /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: theme.status.warning, wrap: "truncate", children: ` \u26A0 ${t("Large workflow")}` })
36122
36879
  ] });
36123
36880
  }, "BackgroundTasksPill");
36124
36881
 
36125
36882
  // packages/cli/src/ui/components/GoalPill.tsx
36126
36883
  init_esbuild_shims();
36127
36884
  var import_react119 = __toESM(require_react(), 1);
36128
- var import_jsx_runtime124 = __toESM(require_jsx_runtime(), 1);
36885
+ var import_jsx_runtime125 = __toESM(require_jsx_runtime(), 1);
36129
36886
  var ELAPSED_REFRESH_MS = 1e3;
36130
36887
  function formatSpend(goal) {
36131
36888
  if (goal.tokensUsed <= 0) return "";
@@ -36229,19 +36986,19 @@ var GoalPill = /* @__PURE__ */ __name(({ snapshot }) => {
36229
36986
  const spend = formatSpend(goal);
36230
36987
  const detail = [elapsed, spend].filter(Boolean).join(" \xB7 ");
36231
36988
  const suffix = detail ? ` (${detail})` : "";
36232
- return /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(Text, { color: visible.color, children: [
36989
+ return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(Text, { color: visible.color, children: [
36233
36990
  visible.icon,
36234
36991
  " /goal ",
36235
36992
  visible.label,
36236
36993
  suffix,
36237
- goal.status === "blocked" && /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: extendedTheme.text.muted, children: " \xB7 /goal clear" })
36994
+ goal.status === "blocked" && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Text, { color: extendedTheme.text.muted, children: " \xB7 /goal clear" })
36238
36995
  ] });
36239
36996
  }, "GoalPill");
36240
36997
 
36241
36998
  // packages/cli/src/ui/components/CronPill.tsx
36242
36999
  init_esbuild_shims();
36243
37000
  var import_react120 = __toESM(require_react(), 1);
36244
- var import_jsx_runtime125 = __toESM(require_jsx_runtime(), 1);
37001
+ var import_jsx_runtime126 = __toESM(require_jsx_runtime(), 1);
36245
37002
  var POLL_INTERVAL_MS = 1e3;
36246
37003
  function getScheduledTaskCount(config) {
36247
37004
  if (!config?.isCronEnabled?.()) return 0;
@@ -36266,7 +37023,7 @@ __name(useFooterCronTaskCount, "useFooterCronTaskCount");
36266
37023
  var CronPill = /* @__PURE__ */ __name(({ count }) => {
36267
37024
  if (count <= 0) return null;
36268
37025
  const noun = count === 1 ? "scheduled task" : "scheduled tasks";
36269
- return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(Text, { color: theme.text.accent, children: [
37026
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(Text, { color: theme.text.accent, children: [
36270
37027
  ICON.BULLSEYE,
36271
37028
  " ",
36272
37029
  count,
@@ -36276,7 +37033,7 @@ var CronPill = /* @__PURE__ */ __name(({ count }) => {
36276
37033
  }, "CronPill");
36277
37034
 
36278
37035
  // packages/cli/src/ui/components/ActivityLine.tsx
36279
- var import_jsx_runtime126 = __toESM(require_jsx_runtime(), 1);
37036
+ var import_jsx_runtime127 = __toESM(require_jsx_runtime(), 1);
36280
37037
  function remoteFooterSnapshot(status) {
36281
37038
  if (!status) return null;
36282
37039
  if (status.active) return status.snapshot;
@@ -36295,19 +37052,19 @@ function planProgress(todos) {
36295
37052
  __name(planProgress, "planProgress");
36296
37053
  var ActivityChips = /* @__PURE__ */ __name(({ tier, active, monitoring = 0, monitoringFocused = false }) => {
36297
37054
  const wide = atLeast(tier, "compact");
36298
- return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(Text, { wrap: "truncate", children: [
37055
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Text, { wrap: "truncate", children: [
36299
37056
  CATEGORIES.map(([category, label], i) => {
36300
37057
  const on = category === active;
36301
- return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(Text, { children: [
37058
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Text, { children: [
36302
37059
  i > 0 && (wide ? " " : " "),
36303
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
37060
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
36304
37061
  Text,
36305
37062
  {
36306
37063
  color: on ? extendedTheme.activity[category] : extendedTheme.ui.separator,
36307
37064
  children: glyphs().dot
36308
37065
  }
36309
37066
  ),
36310
- (on || wide) && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
37067
+ (on || wide) && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
36311
37068
  Text,
36312
37069
  {
36313
37070
  color: on ? theme.text.primary : extendedTheme.text.muted,
@@ -36317,10 +37074,10 @@ var ActivityChips = /* @__PURE__ */ __name(({ tier, active, monitoring = 0, moni
36317
37074
  )
36318
37075
  ] }, category);
36319
37076
  }),
36320
- monitoring > 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(Text, { children: [
37077
+ monitoring > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Text, { children: [
36321
37078
  wide ? " " : " ",
36322
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Text, { color: extendedTheme.ui.brandSoft, children: glyphs().dot }),
36323
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
37079
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: extendedTheme.ui.brandSoft, children: glyphs().dot }),
37080
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
36324
37081
  Text,
36325
37082
  {
36326
37083
  color: extendedTheme.ui.brandSoft,
@@ -36332,7 +37089,7 @@ var ActivityChips = /* @__PURE__ */ __name(({ tier, active, monitoring = 0, moni
36332
37089
  ] })
36333
37090
  ] });
36334
37091
  }, "ActivityChips");
36335
- var Sep2 = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Text, { color: extendedTheme.ui.separator, children: " \xB7 " }), "Sep");
37092
+ var Sep2 = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: extendedTheme.ui.separator, children: " \xB7 " }), "Sep");
36336
37093
  var ActivityLine = /* @__PURE__ */ __name(() => {
36337
37094
  const uiState = useUIState();
36338
37095
  const remoteSnapshot = remoteFooterSnapshot(uiState.remoteStatus);
@@ -36353,14 +37110,14 @@ var ActivityLine = /* @__PURE__ */ __name(() => {
36353
37110
  uiState.turnStartHistoryIndex
36354
37111
  ) : null;
36355
37112
  const reviewCount = uiState.isSkillReviewDialogOpen ? 0 : uiState.skillReviewPending?.skills.length ?? 0;
36356
- return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(
37113
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
36357
37114
  Box_default,
36358
37115
  {
36359
37116
  width: "100%",
36360
37117
  paddingX: sideMargin(tier),
36361
37118
  justifyContent: "space-between",
36362
37119
  children: [
36363
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Box_default, { flexShrink: 1, minWidth: 0, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
37120
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Box_default, { flexShrink: 1, minWidth: 0, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
36364
37121
  ActivityChips,
36365
37122
  {
36366
37123
  tier,
@@ -36369,38 +37126,38 @@ var ActivityLine = /* @__PURE__ */ __name(() => {
36369
37126
  monitoringFocused: pillFocused && monitoring > 0
36370
37127
  }
36371
37128
  ) }),
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, {}),
37129
+ /* @__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: [
37130
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(BackgroundTasksPill, {}),
37131
+ plan && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
37132
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
36376
37133
  `${t("plan")} `,
36377
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Text, { color: theme.text.primary, bold: true, children: `${plan.done}/${plan.total}` })
37134
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.primary, bold: true, children: `${plan.done}/${plan.total}` })
36378
37135
  ] }),
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}` })
37136
+ skill && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
37137
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
37138
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: extendedTheme.ui.brandSoft, bold: true, children: `${glyphs().dot} ${skill}` })
36382
37139
  ] }),
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 })
37140
+ isLiveGoalSnapshot(goal) && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
37141
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
37142
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(GoalPill, { snapshot: goal })
36386
37143
  ] }),
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 })
37144
+ cronCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
37145
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
37146
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(CronPill, { count: cronCount })
36390
37147
  ] }),
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", {
37148
+ reviewCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
37149
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
37150
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.status.warning, children: t("{{count}} skill(s) pending review", {
36394
37151
  count: String(reviewCount)
36395
37152
  }) })
36396
37153
  ] }),
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") })
37154
+ uiState.workflowKeywordActive && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
37155
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
37156
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.accent, children: t("workflow active") })
36400
37157
  ] }),
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)(
37158
+ remoteSnapshot && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
37159
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
37160
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
36404
37161
  Text,
36405
37162
  {
36406
37163
  color: remoteSnapshot.state === "online" ? extendedTheme.ui.brandSoft : theme.status.warning,
@@ -36416,7 +37173,7 @@ var ActivityLine = /* @__PURE__ */ __name(() => {
36416
37173
 
36417
37174
  // packages/cli/src/ui/components/KeyboardShortcuts.tsx
36418
37175
  init_esbuild_shims();
36419
- var import_jsx_runtime127 = __toESM(require_jsx_runtime(), 1);
37176
+ var import_jsx_runtime128 = __toESM(require_jsx_runtime(), 1);
36420
37177
  var getNewlineKey = /* @__PURE__ */ __name(() => process.platform === "win32" ? "ctrl+enter" : "ctrl+j", "getNewlineKey");
36421
37178
  var getPasteKey = /* @__PURE__ */ __name(() => {
36422
37179
  if (process.platform === "win32") return "alt+v";
@@ -36442,8 +37199,8 @@ var getShortcuts = /* @__PURE__ */ __name(() => [
36442
37199
  { key: getPasteKey(), description: t("to paste images") },
36443
37200
  { key: getExternalEditorKey(), description: t("for external editor") }
36444
37201
  ], "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 }),
37202
+ var ShortcutItem = /* @__PURE__ */ __name(({ shortcut }) => /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(Text, { color: theme.text.secondary, children: [
37203
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Text, { color: theme.text.accent, children: shortcut.key }),
36447
37204
  " ",
36448
37205
  shortcut.description
36449
37206
  ] }), "ShortcutItem");
@@ -36484,18 +37241,18 @@ var KeyboardShortcuts = /* @__PURE__ */ __name(() => {
36484
37241
  columns.push(shortcuts.slice(startIndex, startIndex + count));
36485
37242
  startIndex += count;
36486
37243
  }
36487
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
37244
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
36488
37245
  Box_default,
36489
37246
  {
36490
37247
  flexDirection: "row",
36491
37248
  marginLeft: MARGIN_LEFT,
36492
37249
  marginRight: MARGIN_RIGHT,
36493
- children: columns.map((column, colIndex) => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
37250
+ children: columns.map((column, colIndex) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
36494
37251
  Box_default,
36495
37252
  {
36496
37253
  flexDirection: "column",
36497
37254
  marginRight: colIndex < numColumns - 1 ? COLUMN_GAP : 0,
36498
- children: column.map((shortcut) => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(ShortcutItem, { shortcut }, shortcut.key))
37255
+ children: column.map((shortcut) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(ShortcutItem, { shortcut }, shortcut.key))
36499
37256
  },
36500
37257
  colIndex
36501
37258
  ))
@@ -36504,7 +37261,7 @@ var KeyboardShortcuts = /* @__PURE__ */ __name(() => {
36504
37261
  }, "KeyboardShortcuts");
36505
37262
 
36506
37263
  // packages/cli/src/ui/components/Composer.tsx
36507
- var import_jsx_runtime128 = __toESM(require_jsx_runtime(), 1);
37264
+ var import_jsx_runtime129 = __toESM(require_jsx_runtime(), 1);
36508
37265
  var Composer = /* @__PURE__ */ __name(({ footerRef, inputLinesRef }) => {
36509
37266
  const config = useConfig();
36510
37267
  const isScreenReaderEnabled = use_is_screen_reader_enabled_default();
@@ -36533,8 +37290,8 @@ var Composer = /* @__PURE__ */ __name(({ footerRef, inputLinesRef }) => {
36533
37290
  },
36534
37291
  [uiActions]
36535
37292
  );
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)(
37293
+ return /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
37294
+ !uiState.useTerminalBuffer && !uiState.embeddedShellFocused && !suppressBottomLoadingIndicator && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
36538
37295
  LiveLoadingIndicator,
36539
37296
  {
36540
37297
  currentLoadingPhrase: config.getAccessibility()?.enableLoadingPhrases === false ? void 0 : uiState.currentLoadingPhrase,
@@ -36548,22 +37305,22 @@ var Composer = /* @__PURE__ */ __name(({ footerRef, inputLinesRef }) => {
36548
37305
  isReceivingContent
36549
37306
  }
36550
37307
  ),
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: [
37308
+ !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
37309
  "(",
36553
37310
  t("Esc to cancel"),
36554
37311
  ")"
36555
37312
  ] }) }),
36556
- !uiState.useTerminalBuffer && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
37313
+ !uiState.useTerminalBuffer && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
36557
37314
  Box_default,
36558
37315
  {
36559
37316
  marginTop: uiState.messageQueue.length > 0 ? 1 : 0,
36560
37317
  paddingLeft: 2,
36561
- children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(QueuedMessageDisplay, { messageQueue: uiState.messageQueue })
37318
+ children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(QueuedMessageDisplay, { messageQueue: uiState.messageQueue })
36562
37319
  }
36563
37320
  ),
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)(
37321
+ uiState.isFeedbackDialogOpen && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(FeedbackDialog, {}),
37322
+ uiState.isInputActive && !showSuggestions && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(ActivityLine, {}),
37323
+ uiState.isInputActive && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
36567
37324
  InputPrompt,
36568
37325
  {
36569
37326
  buffer: uiState.buffer,
@@ -36595,18 +37352,18 @@ var Composer = /* @__PURE__ */ __name(({ footerRef, inputLinesRef }) => {
36595
37352
  voiceMicWarnedStatusRef: uiState.voiceMicWarnedStatusRef
36596
37353
  }
36597
37354
  ),
36598
- (uiState.isInputActive || !uiState.isConfigInitialized) && !showSuggestions && (showShortcuts ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(KeyboardShortcuts, {}) : !isScreenReaderEnabled && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Footer, { containerRef: footerRef }))
37355
+ (uiState.isInputActive || !uiState.isConfigInitialized) && !showSuggestions && (showShortcuts ? /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(KeyboardShortcuts, {}) : !isScreenReaderEnabled && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Footer, { containerRef: footerRef }))
36599
37356
  ] });
36600
37357
  }, "Composer");
36601
37358
 
36602
37359
  // packages/cli/src/ui/components/ExitWarning.tsx
36603
37360
  init_esbuild_shims();
36604
- var import_jsx_runtime129 = __toESM(require_jsx_runtime(), 1);
37361
+ var import_jsx_runtime130 = __toESM(require_jsx_runtime(), 1);
36605
37362
  var ExitWarning = /* @__PURE__ */ __name(() => {
36606
37363
  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." }) })
37364
+ return /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_jsx_runtime130.Fragment, { children: [
37365
+ 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." }) }),
37366
+ 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
37367
  ] });
36611
37368
  }, "ExitWarning");
36612
37369
 
@@ -36784,7 +37541,7 @@ function getStickyTodoMaxVisibleItemsForMode(terminalHeight, useTerminalBuffer)
36784
37541
  __name(getStickyTodoMaxVisibleItemsForMode, "getStickyTodoMaxVisibleItemsForMode");
36785
37542
 
36786
37543
  // packages/cli/src/ui/components/StickyTodoList.tsx
36787
- var import_jsx_runtime130 = __toESM(require_jsx_runtime(), 1);
37544
+ var import_jsx_runtime131 = __toESM(require_jsx_runtime(), 1);
36788
37545
  var STATUS_ICONS = {
36789
37546
  pending: ICON.CIRCLE_EMPTY,
36790
37547
  in_progress: ICON.CIRCLE_LEFT_HALF,
@@ -36827,7 +37584,7 @@ var StickyTodoListComponent = /* @__PURE__ */ __name(({
36827
37584
  )
36828
37585
  ) + 1;
36829
37586
  const contentColumnWidth = Math.max(1, width - numberColumnWidth - 6);
36830
- return /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(
37587
+ return /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(
36831
37588
  Box_default,
36832
37589
  {
36833
37590
  marginX: 2,
@@ -36837,14 +37594,14 @@ var StickyTodoListComponent = /* @__PURE__ */ __name(({
36837
37594
  borderColor: theme.border.default,
36838
37595
  paddingX: 1,
36839
37596
  children: [
36840
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Text, { color: theme.text.secondary, bold: true, children: t("Current tasks") }),
37597
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Text, { color: theme.text.secondary, bold: true, children: t("Current tasks") }),
36841
37598
  visibleTodos.map((todo, index) => {
36842
37599
  const todoNumber = todoNumberById.get(todo.id) ?? `${index + 1}.`;
36843
37600
  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)(
37601
+ return /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(Box_default, { flexDirection: "row", height: 1, children: [
37602
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: numberColumnWidth, children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Text, { color: theme.text.secondary, children: todoNumber }) }),
37603
+ /* @__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] }) }),
37604
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: contentColumnWidth, children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
36848
37605
  Text,
36849
37606
  {
36850
37607
  color: itemColor,
@@ -36855,10 +37612,10 @@ var StickyTodoListComponent = /* @__PURE__ */ __name(({
36855
37612
  ) })
36856
37613
  ] }, todo.id);
36857
37614
  }),
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", {
37615
+ hiddenTodoCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(Box_default, { flexDirection: "row", height: 1, children: [
37616
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: numberColumnWidth }),
37617
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: 2 }),
37618
+ /* @__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
37619
  count: String(hiddenTodoCount)
36863
37620
  }) }) })
36864
37621
  ] })
@@ -36872,9 +37629,11 @@ var StickyTodoList = (0, import_react122.memo)(
36872
37629
  );
36873
37630
 
36874
37631
  // packages/cli/src/ui/layouts/ScreenReaderAppLayout.tsx
36875
- var import_jsx_runtime131 = __toESM(require_jsx_runtime(), 1);
37632
+ var import_jsx_runtime132 = __toESM(require_jsx_runtime(), 1);
36876
37633
  var ScreenReaderAppLayout = /* @__PURE__ */ __name(() => {
36877
37634
  const uiState = useUIState();
37635
+ const { dialogOpen: backgroundDialogOpen } = useBackgroundTaskViewState();
37636
+ const backgroundMargin = sideMargin(getLayoutTier(uiState.terminalWidth));
36878
37637
  const stickyTodoWidth = Math.min(uiState.mainAreaWidth, 64);
36879
37638
  const stickyTodoMaxVisibleItems = getStickyTodoMaxVisibleItemsForMode(
36880
37639
  uiState.terminalHeight,
@@ -36886,47 +37645,55 @@ var ScreenReaderAppLayout = /* @__PURE__ */ __name(() => {
36886
37645
  );
36887
37646
  const dialogHeight = uiState.constrainHeight ? dialogMaxHeight : void 0;
36888
37647
  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,
37648
+ return /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(
37649
+ Box_default,
37650
+ {
37651
+ flexDirection: "column",
37652
+ width: backgroundDialogOpen ? uiState.terminalWidth : "90%",
37653
+ height: "100%",
37654
+ children: [
37655
+ !uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(UpdateNotification, { message: uiState.updateInfo.message }),
37656
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Notifications, {}),
37657
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Footer, {}),
37658
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Box_default, { flexGrow: 1, overflow: "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(MainContent, {}) }),
37659
+ uiState.dialogsVisible ? /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
37660
+ Box_default,
36904
37661
  {
36905
- terminalWidth: uiState.terminalWidth,
36906
- addItem: uiState.historyManager.addItem
37662
+ marginX: backgroundDialogOpen ? backgroundMargin : 2,
37663
+ flexDirection: "column",
37664
+ width: backgroundDialogOpen ? Math.max(1, uiState.terminalWidth - backgroundMargin * 2) : uiState.mainAreaWidth,
37665
+ height: dialogHeight,
37666
+ overflow: uiState.constrainHeight ? "hidden" : void 0,
37667
+ children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
37668
+ DialogManager,
37669
+ {
37670
+ terminalWidth: uiState.terminalWidth,
37671
+ addItem: uiState.historyManager.addItem
37672
+ }
37673
+ )
36907
37674
  }
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
- ] });
37675
+ ) : /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(import_jsx_runtime132.Fragment, { children: [
37676
+ shouldShowStickyTodos && /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
37677
+ StickyTodoList,
37678
+ {
37679
+ todos: uiState.stickyTodos,
37680
+ width: stickyTodoWidth,
37681
+ maxVisibleItems: stickyTodoMaxVisibleItems
37682
+ }
37683
+ ),
37684
+ uiState.btwItem && /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Box_default, { marginX: 2, width: uiState.mainAreaWidth, children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
37685
+ BtwMessage,
37686
+ {
37687
+ btw: uiState.btwItem.btw,
37688
+ containerWidth: uiState.mainAreaWidth
37689
+ }
37690
+ ) }),
37691
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Composer, {})
37692
+ ] }),
37693
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(ExitWarning, {})
37694
+ ]
37695
+ }
37696
+ );
36930
37697
  }, "ScreenReaderAppLayout");
36931
37698
 
36932
37699
  // packages/cli/src/ui/layouts/DefaultAppLayout.tsx
@@ -36941,7 +37708,7 @@ var ScrollContext = (0, import_react123.createContext)(null);
36941
37708
  // packages/cli/src/ui/components/agent-view/AgentTabBar.tsx
36942
37709
  init_esbuild_shims();
36943
37710
  var import_react124 = __toESM(require_react(), 1);
36944
- var import_jsx_runtime132 = __toESM(require_jsx_runtime(), 1);
37711
+ var import_jsx_runtime133 = __toESM(require_jsx_runtime(), 1);
36945
37712
  function statusIndicator(agent) {
36946
37713
  const status = agent.interactiveAgent.getStatus();
36947
37714
  switch (status) {
@@ -37014,8 +37781,8 @@ var AgentTabBar = /* @__PURE__ */ __name(() => {
37014
37781
  }, [agents, forceRender]);
37015
37782
  const isFocused = agentTabBarFocused;
37016
37783
  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)(
37784
+ return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(Box_default, { flexDirection: "row", paddingX: 1, children: [
37785
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Box_default, { marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
37019
37786
  Text,
37020
37787
  {
37021
37788
  bold: activeView === "main",
@@ -37025,12 +37792,12 @@ var AgentTabBar = /* @__PURE__ */ __name(() => {
37025
37792
  children: " Main "
37026
37793
  }
37027
37794
  ) }),
37028
- /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Text, { dimColor: !isFocused, color: theme.border.default, children: "\u2502" }),
37795
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Text, { dimColor: !isFocused, color: theme.border.default, children: "\u2502" }),
37029
37796
  [...agents.entries()].map(([agentId, agent]) => {
37030
37797
  const isActive = activeView === agentId;
37031
37798
  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)(
37799
+ return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(Box_default, { marginLeft: 1, children: [
37800
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
37034
37801
  Text,
37035
37802
  {
37036
37803
  bold: isActive,
@@ -37040,10 +37807,10 @@ var AgentTabBar = /* @__PURE__ */ __name(() => {
37040
37807
  children: ` ${agent.modelId} `
37041
37808
  }
37042
37809
  ),
37043
- /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Text, { dimColor: !isFocused, color: indicatorColor, children: ` ${symbol}` })
37810
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Text, { dimColor: !isFocused, color: indicatorColor, children: ` ${symbol}` })
37044
37811
  ] }, agentId);
37045
37812
  }),
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 }) })
37813
+ /* @__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
37814
  ] });
37048
37815
  }, "AgentTabBar");
37049
37816
 
@@ -37165,7 +37932,7 @@ __name(agentMessagesToHistoryItems, "agentMessagesToHistoryItems");
37165
37932
 
37166
37933
  // packages/cli/src/ui/components/agent-view/AgentHeader.tsx
37167
37934
  init_esbuild_shims();
37168
- var import_jsx_runtime133 = __toESM(require_jsx_runtime(), 1);
37935
+ var import_jsx_runtime134 = __toESM(require_jsx_runtime(), 1);
37169
37936
  var AgentHeader = /* @__PURE__ */ __name(({
37170
37937
  modelId,
37171
37938
  modelName,
@@ -37176,7 +37943,7 @@ var AgentHeader = /* @__PURE__ */ __name(({
37176
37943
  const maxPathLen = Math.max(20, terminalWidth - 12);
37177
37944
  const displayPath = shortenPath(tildeifyPath(workingDirectory), maxPathLen);
37178
37945
  const modelText = modelName && modelName !== modelId ? `${modelId} (${modelName})` : modelId;
37179
- return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(
37946
+ return /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(
37180
37947
  Box_default,
37181
37948
  {
37182
37949
  flexDirection: "column",
@@ -37186,17 +37953,17 @@ var AgentHeader = /* @__PURE__ */ __name(({
37186
37953
  borderColor: theme.border.default,
37187
37954
  paddingX: 1,
37188
37955
  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 })
37956
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(Text, { children: [
37957
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.secondary, children: "Model: " }),
37958
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.primary, children: modelText })
37192
37959
  ] }),
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 })
37960
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(Text, { children: [
37961
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.secondary, children: "Path: " }),
37962
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.primary, children: displayPath })
37196
37963
  ] }),
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 })
37964
+ gitBranch && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(Text, { children: [
37965
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.secondary, children: "Branch: " }),
37966
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.primary, children: gitBranch })
37200
37967
  ] })
37201
37968
  ]
37202
37969
  }
@@ -37204,7 +37971,7 @@ var AgentHeader = /* @__PURE__ */ __name(({
37204
37971
  }, "AgentHeader");
37205
37972
 
37206
37973
  // packages/cli/src/ui/components/agent-view/AgentChatContent.tsx
37207
- var import_jsx_runtime134 = __toESM(require_jsx_runtime(), 1);
37974
+ var import_jsx_runtime135 = __toESM(require_jsx_runtime(), 1);
37208
37975
  var AgentChatContent = /* @__PURE__ */ __name(({
37209
37976
  core,
37210
37977
  interactiveAgent,
@@ -37320,12 +38087,12 @@ var AgentChatContent = /* @__PURE__ */ __name(({
37320
38087
  [instanceKey]
37321
38088
  );
37322
38089
  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)(
38090
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(Box_default, { flexDirection: "column", children: [
38091
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
37325
38092
  Static,
37326
38093
  {
37327
38094
  items: [
37328
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
38095
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
37329
38096
  AgentHeader,
37330
38097
  {
37331
38098
  modelId: agentModelId,
@@ -37335,7 +38102,7 @@ var AgentChatContent = /* @__PURE__ */ __name(({
37335
38102
  },
37336
38103
  "agent-header"
37337
38104
  ),
37338
- ...committedItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
38105
+ ...committedItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
37339
38106
  HistoryItemDisplay,
37340
38107
  {
37341
38108
  item,
@@ -37352,7 +38119,7 @@ var AgentChatContent = /* @__PURE__ */ __name(({
37352
38119
  },
37353
38120
  `agent-${instanceKey}-${historyRemountKey}`
37354
38121
  ),
37355
- pendingItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
38122
+ pendingItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
37356
38123
  HistoryItemDisplay,
37357
38124
  {
37358
38125
  item,
@@ -37367,13 +38134,13 @@ var AgentChatContent = /* @__PURE__ */ __name(({
37367
38134
  },
37368
38135
  item.id
37369
38136
  )),
37370
- isRunning && /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Box_default, { marginX: 2, marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(RespondingSpinner, {}) })
38137
+ isRunning && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Box_default, { marginX: 2, marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(RespondingSpinner, {}) })
37371
38138
  ] });
37372
38139
  }, "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");
38140
+ 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
38141
 
37375
38142
  // packages/cli/src/ui/components/agent-view/AgentChatView.tsx
37376
- var import_jsx_runtime135 = __toESM(require_jsx_runtime(), 1);
38143
+ var import_jsx_runtime136 = __toESM(require_jsx_runtime(), 1);
37377
38144
  var debugLogger29 = createDebugLogger("AGENT_TAB_RENDER");
37378
38145
  var AgentChatView = /* @__PURE__ */ __name(({ agentId }) => {
37379
38146
  const { agents } = useAgentViewState();
@@ -37382,7 +38149,7 @@ var AgentChatView = /* @__PURE__ */ __name(({ agentId }) => {
37382
38149
  const interactiveAgent = agent?.interactiveAgent;
37383
38150
  const core = interactiveAgent?.getCore();
37384
38151
  if (!agent || !interactiveAgent || !core) {
37385
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(AgentChatMissing, { label: `Agent "${agentId}" not found.` });
38152
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(AgentChatMissing, { label: `Agent "${agentId}" not found.` });
37386
38153
  }
37387
38154
  return (
37388
38155
  // Non-fatal per-tab containment: the app-level boundary is
@@ -37392,15 +38159,15 @@ var AgentChatView = /* @__PURE__ */ __name(({ agentId }) => {
37392
38159
  // keeping the session and the other tabs alive. Keyed by agentId so
37393
38160
  // switching tabs starts from fresh boundary state: one crashed tab
37394
38161
  // must not strand every later tab in its fallback.
37395
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
38162
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(
37396
38163
  ErrorBoundary,
37397
38164
  {
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." })
38165
+ fallback: (error) => /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(Box_default, { flexDirection: "column", paddingX: 1, children: [
38166
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.status.error, bold: true, children: "Something went wrong while rendering this agent tab." }),
38167
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.text.secondary, children: sanitizeTerminalText(error.message) }),
38168
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.text.secondary, dimColor: true, children: "The session is still running; other tabs are unaffected." }),
38169
+ /* @__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." }),
38170
+ /* @__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
38171
  ] }),
37405
38172
  onError: (error, info) => {
37406
38173
  setAgentShellFocused(false);
@@ -37410,7 +38177,7 @@ ${info.componentStack ?? ""}
37410
38177
  ${error.stack ?? ""}`
37411
38178
  );
37412
38179
  },
37413
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
38180
+ children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(
37414
38181
  AgentChatContent,
37415
38182
  {
37416
38183
  core,
@@ -37434,7 +38201,7 @@ init_esbuild_shims();
37434
38201
 
37435
38202
  // packages/cli/src/ui/components/AutoAcceptIndicator.tsx
37436
38203
  init_esbuild_shims();
37437
- var import_jsx_runtime136 = __toESM(require_jsx_runtime(), 1);
38204
+ var import_jsx_runtime137 = __toESM(require_jsx_runtime(), 1);
37438
38205
  var AutoAcceptIndicator = /* @__PURE__ */ __name(({
37439
38206
  approvalMode
37440
38207
  }) => {
@@ -37466,15 +38233,15 @@ var AutoAcceptIndicator = /* @__PURE__ */ __name(({
37466
38233
  default:
37467
38234
  break;
37468
38235
  }
37469
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(Text, { color: textColor, children: [
38236
+ return /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(Text, { color: textColor, children: [
37470
38237
  textContent,
37471
- subText && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.text.secondary, children: subText })
38238
+ subText && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(Text, { color: theme.text.secondary, children: subText })
37472
38239
  ] });
37473
38240
  }, "AutoAcceptIndicator");
37474
38241
 
37475
38242
  // packages/cli/src/ui/components/ContextUsageDisplay.tsx
37476
38243
  init_esbuild_shims();
37477
- var import_jsx_runtime137 = __toESM(require_jsx_runtime(), 1);
38244
+ var import_jsx_runtime138 = __toESM(require_jsx_runtime(), 1);
37478
38245
  var ContextUsageDisplay = /* @__PURE__ */ __name(({
37479
38246
  promptTokenCount,
37480
38247
  terminalWidth,
@@ -37488,19 +38255,19 @@ var ContextUsageDisplay = /* @__PURE__ */ __name(({
37488
38255
  const isOverLimit = percentage > 1;
37489
38256
  const label = contextUsageLabel(terminalWidth);
37490
38257
  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: [
38258
+ 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
38259
  percentageUsed,
37493
38260
  label
37494
38261
  ] }) });
37495
38262
  }
37496
- return /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(Text, { color: theme.text.secondary, children: [
38263
+ return /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(Text, { color: theme.text.secondary, children: [
37497
38264
  percentageUsed,
37498
38265
  label
37499
38266
  ] });
37500
38267
  }, "ContextUsageDisplay");
37501
38268
 
37502
38269
  // packages/cli/src/ui/components/agent-view/AgentFooter.tsx
37503
- var import_jsx_runtime138 = __toESM(require_jsx_runtime(), 1);
38270
+ var import_jsx_runtime139 = __toESM(require_jsx_runtime(), 1);
37504
38271
  var AgentFooter = /* @__PURE__ */ __name(({
37505
38272
  approvalMode,
37506
38273
  promptTokenCount,
@@ -37512,7 +38279,7 @@ var AgentFooter = /* @__PURE__ */ __name(({
37512
38279
  if (!showApproval && !showContext) {
37513
38280
  return null;
37514
38281
  }
37515
- return /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(
38282
+ return /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(
37516
38283
  Box_default,
37517
38284
  {
37518
38285
  justifyContent: "space-between",
@@ -37520,8 +38287,8 @@ var AgentFooter = /* @__PURE__ */ __name(({
37520
38287
  flexDirection: "row",
37521
38288
  alignItems: "center",
37522
38289
  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)(
38290
+ /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(Box_default, { marginLeft: 2, children: showApproval ? /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(AutoAcceptIndicator, { approvalMode }) : null }),
38291
+ /* @__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
38292
  ContextUsageDisplay,
37526
38293
  {
37527
38294
  promptTokenCount,
@@ -37535,7 +38302,7 @@ var AgentFooter = /* @__PURE__ */ __name(({
37535
38302
  }, "AgentFooter");
37536
38303
 
37537
38304
  // packages/cli/src/ui/components/agent-view/AgentComposer.tsx
37538
- var import_jsx_runtime139 = __toESM(require_jsx_runtime(), 1);
38305
+ var import_jsx_runtime140 = __toESM(require_jsx_runtime(), 1);
37539
38306
  var EMPTY_MESSAGE_QUEUE2 = [];
37540
38307
  var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
37541
38308
  const {
@@ -37654,21 +38421,21 @@ var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
37654
38421
  }
37655
38422
  }, [status, interactiveAgent]);
37656
38423
  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: [
38424
+ const prefixNode = /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(Text, { color: extendedTheme.ui.brand, children: [
37658
38425
  glyphs().prompt,
37659
38426
  " "
37660
38427
  ] });
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)(
38428
+ 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: [
38429
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
37663
38430
  LoadingIndicator,
37664
38431
  {
37665
38432
  currentLoadingPhrase: streamingState === "responding" /* Responding */ ? t("Thinking\u2026") : void 0,
37666
38433
  elapsedTime
37667
38434
  }
37668
38435
  ),
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)(
38436
+ 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 }) }),
38437
+ /* @__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 }) }),
38438
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
37672
38439
  BaseTextInput,
37673
38440
  {
37674
38441
  buffer,
@@ -37681,7 +38448,7 @@ var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
37681
38448
  isActive: isInputActive && !agentShellFocused
37682
38449
  }
37683
38450
  ),
37684
- /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(
38451
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
37685
38452
  AgentFooter,
37686
38453
  {
37687
38454
  approvalMode: agentApprovalMode,
@@ -37696,7 +38463,7 @@ var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
37696
38463
  // packages/cli/src/ui/components/background-view/LiveAgentPanel.tsx
37697
38464
  init_esbuild_shims();
37698
38465
  var import_react127 = __toESM(require_react(), 1);
37699
- var import_jsx_runtime140 = __toESM(require_jsx_runtime(), 1);
38466
+ var import_jsx_runtime141 = __toESM(require_jsx_runtime(), 1);
37700
38467
  var DEFAULT_MAX_ROWS = LIVE_AGENT_PANEL_MAX_ROWS;
37701
38468
  var DEFAULT_SUBAGENT_TYPE = DEFAULT_BUILTIN_SUBAGENT_TYPE;
37702
38469
  function isAgentEntry(entry) {
@@ -37814,7 +38581,7 @@ var LiveAgentPanel = /* @__PURE__ */ __name(({
37814
38581
  }
37815
38582
  }, [hasVisibleAgent, livePanelFocused, setLivePanelFocused]);
37816
38583
  if (dialogOpen) return null;
37817
- return /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
38584
+ return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
37818
38585
  LiveAgentPanelBody,
37819
38586
  {
37820
38587
  snapshots: liveAgentSnapshots,
@@ -37838,19 +38605,19 @@ var LiveAgentPanelBody = /* @__PURE__ */ __name(({ snapshots, now, maxRows, widt
37838
38605
  const visible = overflow > 0 ? visibleAgentsAsc.slice(-maxRows) : visibleAgentsAsc;
37839
38606
  const totalItems = 1 + visible.length;
37840
38607
  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" })
38608
+ return /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, width, paddingX: 2, children: [
38609
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(Box_default, { children: [
38610
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: focused ? theme.text.accent : theme.text.secondary, children: focused && clampedIndex === 0 ? "\u25B8 " : " " }),
38611
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { bold: true, color: theme.text.accent, children: "main" })
37845
38612
  ] }),
37846
- overflow > 0 && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
38613
+ overflow > 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
37847
38614
  Text,
37848
38615
  {
37849
38616
  color: theme.text.secondary,
37850
38617
  children: ` ^ ${overflow} more above (\u2193 to view all)`
37851
38618
  }
37852
38619
  ) }),
37853
- visible.map((entry, idx) => /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
38620
+ visible.map((entry, idx) => /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
37854
38621
  AgentRow,
37855
38622
  {
37856
38623
  entry,
@@ -37860,7 +38627,7 @@ var LiveAgentPanelBody = /* @__PURE__ */ __name(({ snapshots, now, maxRows, widt
37860
38627
  },
37861
38628
  entry.agentId
37862
38629
  )),
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" }) })
38630
+ 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
38631
  ] });
37865
38632
  }, "LiveAgentPanelBody");
37866
38633
  var AgentRow = /* @__PURE__ */ __name(({ entry, now, selected = false, tree }) => {
@@ -37875,33 +38642,33 @@ var AgentRow = /* @__PURE__ */ __name(({ entry, now, selected = false, tree }) =
37875
38642
  const prefix = selected ? "\u25B8 " : " ";
37876
38643
  const treePrefix = treeRowPrefix(entry, tree);
37877
38644
  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: ": " })
38645
+ return /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(Box_default, { flexDirection: "row", children: [
38646
+ /* @__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 }) }),
38647
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Box_default, { flexShrink: 1, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(Text, { wrap: "truncate-end", children: [
38648
+ treePrefix !== "" && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: treePrefix }),
38649
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: color2, children: `${glyph} ` }),
38650
+ showType && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_jsx_runtime141.Fragment, { children: [
38651
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { bold: true, children: safeSubagentType }),
38652
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: ": " })
37886
38653
  ] }),
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 })
38654
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: label }),
38655
+ activity && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: ` (${activity})` }),
38656
+ orphanNote && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: orphanNote })
37890
38657
  ] }) }),
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 }) })
38658
+ /* @__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
38659
  ] });
37893
38660
  }, "AgentRow");
37894
38661
 
37895
38662
  // packages/cli/src/ui/context-menu/ContextMenuOverlay.tsx
37896
38663
  init_esbuild_shims();
37897
38664
  var import_react128 = __toESM(require_react(), 1);
37898
- var import_jsx_runtime141 = __toESM(require_jsx_runtime(), 1);
38665
+ var import_jsx_runtime142 = __toESM(require_jsx_runtime(), 1);
37899
38666
  var ContextMenuOverlay = /* @__PURE__ */ __name(() => {
37900
38667
  const { menu } = useContextMenu();
37901
38668
  if (!menu) {
37902
38669
  return null;
37903
38670
  }
37904
- return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(ActiveContextMenu, {});
38671
+ return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(ActiveContextMenu, {});
37905
38672
  }, "ContextMenuOverlay");
37906
38673
  var ActiveContextMenu = /* @__PURE__ */ __name(() => {
37907
38674
  const { menu, selectedIndex, closeMenu, setSelectedIndex, executeIndex } = useContextMenu();
@@ -37935,7 +38702,7 @@ var ActiveContextMenu = /* @__PURE__ */ __name(() => {
37935
38702
  (max, item) => Math.max(max, item.label.length),
37936
38703
  0
37937
38704
  );
37938
- return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
38705
+ return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
37939
38706
  Box_default,
37940
38707
  {
37941
38708
  position: "absolute",
@@ -37947,7 +38714,7 @@ var ActiveContextMenu = /* @__PURE__ */ __name(() => {
37947
38714
  paddingX: 0,
37948
38715
  children: menu.items.map((item, index) => {
37949
38716
  const selected = index === selectedIndex;
37950
- return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
38717
+ return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
37951
38718
  Text,
37952
38719
  {
37953
38720
  selectable: false,
@@ -37962,10 +38729,10 @@ var ActiveContextMenu = /* @__PURE__ */ __name(() => {
37962
38729
  }, "ActiveContextMenu");
37963
38730
 
37964
38731
  // packages/cli/src/ui/layouts/DefaultAppLayout.tsx
37965
- var import_jsx_runtime142 = __toESM(require_jsx_runtime(), 1);
38732
+ var import_jsx_runtime143 = __toESM(require_jsx_runtime(), 1);
37966
38733
  var PinnedHeader = /* @__PURE__ */ __name(() => {
37967
38734
  const { version } = useAppContext();
37968
- return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(AppHeader, { version, pinned: true });
38735
+ return /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AppHeader, { version, pinned: true });
37969
38736
  }, "PinnedHeader");
37970
38737
  var DefaultAppLayout = /* @__PURE__ */ __name(() => {
37971
38738
  const uiState = useUIState();
@@ -37982,6 +38749,8 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
37982
38749
  const { refreshStatic } = useUIActions();
37983
38750
  const { activeView, agents } = useAgentViewState();
37984
38751
  const { columns: terminalWidth } = useTerminalSize();
38752
+ const { dialogOpen: backgroundDialogOpen } = useBackgroundTaskViewState();
38753
+ const backgroundMargin = sideMargin(getLayoutTier(terminalWidth));
37985
38754
  const hasAgents = agents.size > 0;
37986
38755
  const isAgentTab = activeView !== "main" && agents.has(activeView);
37987
38756
  const stickyTodoWidth = Math.min(uiState.mainAreaWidth, 64);
@@ -38003,17 +38772,17 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
38003
38772
  refreshStatic();
38004
38773
  }
38005
38774
  }, [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, {})
38775
+ return /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Box_default, { flexDirection: "column", width: terminalWidth, children: [
38776
+ uiState.useTerminalBuffer && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(PinnedHeader, {}),
38777
+ isAgentTab ? /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(import_jsx_runtime143.Fragment, { children: [
38778
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AgentChatView, { agentId: activeView }),
38779
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Box_default, { flexDirection: "column", ref: uiState.mainControlsRef, children: [
38780
+ !uiState.useTerminalBuffer && !uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(UpdateNotification, { message: uiState.updateInfo.message }),
38781
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AgentComposer, { agentId: activeView }, activeView),
38782
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(ExitWarning, {})
38014
38783
  ] })
38015
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(ScrollContext.Provider, { value: scrollActions, children: [
38016
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
38784
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(ScrollContext.Provider, { value: scrollActions, children: [
38785
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
38017
38786
  MainContent,
38018
38787
  {
38019
38788
  footerRef,
@@ -38021,18 +38790,18 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
38021
38790
  scrollActionsRef
38022
38791
  }
38023
38792
  ),
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)(
38793
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Box_default, { flexDirection: "column", ref: uiState.mainControlsRef, children: [
38794
+ !uiState.useTerminalBuffer && !uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(UpdateNotification, { message: uiState.updateInfo.message }),
38795
+ uiState.dialogsVisible ? /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
38027
38796
  Box_default,
38028
38797
  {
38029
- marginX: 2,
38798
+ marginX: backgroundDialogOpen ? backgroundMargin : 2,
38030
38799
  flexDirection: "column",
38031
- width: uiState.isSettingsDialogOpen ? Math.max(1, terminalWidth - 4) : uiState.isApprovalModeDialogOpen ? Math.max(1, Math.min(terminalWidth - 4, 140)) : uiState.mainAreaWidth,
38800
+ 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
38801
  height: uiState.isApprovalModeDialogOpen || uiState.isSettingsDialogOpen ? void 0 : dialogHeight,
38033
38802
  maxHeight: dialogHeight,
38034
38803
  overflow: uiState.constrainHeight ? "hidden" : void 0,
38035
- children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
38804
+ children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
38036
38805
  DialogManager,
38037
38806
  {
38038
38807
  terminalWidth: uiState.terminalWidth,
@@ -38040,8 +38809,8 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
38040
38809
  }
38041
38810
  )
38042
38811
  }
38043
- ) : /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(import_jsx_runtime142.Fragment, { children: [
38044
- shouldShowStickyTodos && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
38812
+ ) : /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(import_jsx_runtime143.Fragment, { children: [
38813
+ shouldShowStickyTodos && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
38045
38814
  StickyTodoList,
38046
38815
  {
38047
38816
  todos: uiState.stickyTodos,
@@ -38049,17 +38818,17 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
38049
38818
  maxVisibleItems: stickyTodoMaxVisibleItems
38050
38819
  }
38051
38820
  ),
38052
- uiState.btwItem && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(Box_default, { marginX: 2, width: uiState.mainAreaWidth, children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
38821
+ uiState.btwItem && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(Box_default, { marginX: 2, width: uiState.mainAreaWidth, children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
38053
38822
  BtwMessage,
38054
38823
  {
38055
38824
  btw: uiState.btwItem.btw,
38056
38825
  containerWidth: uiState.mainAreaWidth
38057
38826
  }
38058
38827
  ) }),
38059
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(Composer, { footerRef, inputLinesRef })
38828
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(Composer, { footerRef, inputLinesRef })
38060
38829
  ] }),
38061
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(ExitWarning, {}),
38062
- !uiState.dialogsVisible && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
38830
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(ExitWarning, {}),
38831
+ !uiState.dialogsVisible && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
38063
38832
  LiveAgentPanel,
38064
38833
  {
38065
38834
  width: uiState.terminalWidth,
@@ -38068,24 +38837,24 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
38068
38837
  )
38069
38838
  ] })
38070
38839
  ] }),
38071
- hasAgents && !uiState.dialogsVisible && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(AgentTabBar, {}),
38072
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(ContextMenuOverlay, {})
38840
+ hasAgents && !uiState.dialogsVisible && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AgentTabBar, {}),
38841
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(ContextMenuOverlay, {})
38073
38842
  ] });
38074
38843
  }, "DefaultAppLayout");
38075
38844
 
38076
38845
  // packages/cli/src/ui/App.tsx
38077
38846
  import fs8 from "node:fs";
38078
- var import_jsx_runtime143 = __toESM(require_jsx_runtime(), 1);
38847
+ var import_jsx_runtime144 = __toESM(require_jsx_runtime(), 1);
38079
38848
  var App = /* @__PURE__ */ __name(({ onExitSummary }) => {
38080
38849
  const uiState = useUIState();
38081
38850
  const settings = useSettings();
38082
38851
  const isScreenReaderEnabled = use_is_screen_reader_enabled_default();
38083
38852
  const [dismissed, setDismissed] = (0, import_react130.useState)(false);
38084
38853
  if (uiState.quittingMessages) {
38085
- return /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(QuittingDisplay, { onExit: onExitSummary });
38854
+ return /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(QuittingDisplay, { onExit: onExitSummary });
38086
38855
  }
38087
38856
  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)(
38857
+ 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
38858
  SettingsCorruptedDialog,
38090
38859
  {
38091
38860
  corruptedPath: settings.corruptedPath,
@@ -38131,7 +38900,7 @@ var App = /* @__PURE__ */ __name(({ onExitSummary }) => {
38131
38900
  }
38132
38901
  ) }) });
38133
38902
  }
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, {}) });
38903
+ 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
38904
  }, "App");
38136
38905
 
38137
38906
  // packages/cli/src/ui/utils/terminal-resize-reflow.ts
@@ -46515,13 +47284,9 @@ import { execFile as execFile3, execFileSync } from "child_process";
46515
47284
 
46516
47285
  // packages/cli/src/ui/utils/clipboard-text.ts
46517
47286
  init_esbuild_shims();
46518
- import { createRequire } from "node:module";
46519
47287
  function readWindowsClipboardText() {
46520
47288
  try {
46521
- const native = createRequire(import.meta.url)(
46522
- "@teddyzhu/clipboard"
46523
- );
46524
- return new native.ClipboardManager().getText();
47289
+ return getWindowsClipboardText();
46525
47290
  } catch {
46526
47291
  return void 0;
46527
47292
  }
@@ -50245,7 +51010,7 @@ function historyToRemoteEvents(items, sessionId) {
50245
51010
  __name(historyToRemoteEvents, "historyToRemoteEvents");
50246
51011
 
50247
51012
  // packages/cli/src/ui/AppContainer.tsx
50248
- var import_jsx_runtime144 = __toESM(require_jsx_runtime(), 1);
51013
+ var import_jsx_runtime145 = __toESM(require_jsx_runtime(), 1);
50249
51014
  var MCP_BATCH_FLUSH_MS = 16;
50250
51015
  var STARTUP_PROFILE_FINALIZE_CAP_MS = 35e3;
50251
51016
  var CTRL_EXIT_PROMPT_DURATION_MS = 1e3;
@@ -54139,18 +54904,18 @@ ${migrationResult.failedFiles.map((f) => ` \u2022 ${f.file}: ${f.error}`).join(
54139
54904
  }),
54140
54905
  [expandedToolBatchIds, expandToolBatch]
54141
54906
  );
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)(
54907
+ 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
54908
  AppContext.Provider,
54144
54909
  {
54145
54910
  value: {
54146
54911
  version: props.version,
54147
54912
  startupWarnings
54148
54913
  },
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)(
54914
+ 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
54915
  ContextMenuProvider,
54151
54916
  {
54152
54917
  onMenuChange: handleContextMenuChange,
54153
- children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(App, { onExitSummary: finishExit })
54918
+ children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(App, { onExitSummary: finishExit })
54154
54919
  }
54155
54920
  ) }) }) }) }) })
54156
54921
  }
@@ -54252,7 +55017,7 @@ function installSynchronizedOutput(stdout = process.stdout, env = process.env) {
54252
55017
  __name(installSynchronizedOutput, "installSynchronizedOutput");
54253
55018
 
54254
55019
  // packages/cli/src/ui/startInteractiveUI.tsx
54255
- var import_jsx_runtime145 = __toESM(require_jsx_runtime(), 1);
55020
+ var import_jsx_runtime146 = __toESM(require_jsx_runtime(), 1);
54256
55021
  var debugLogger41 = createDebugLogger("STARTUP");
54257
55022
  var PRESSURE_CHECK_INTERVAL_MS = 3e4;
54258
55023
  async function startInteractiveUI(config, settings, startupWarnings, workspaceRoot = process.cwd(), initializationResult, options = {}) {
@@ -54359,7 +55124,7 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
54359
55124
  alive = false;
54360
55125
  };
54361
55126
  }, []);
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)(
55127
+ 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
55128
  KeypressProvider,
54364
55129
  {
54365
55130
  kittyProtocolEnabled: kittyProtocolStatus.enabled,
@@ -54367,7 +55132,7 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
54367
55132
  debugKeystrokeLogging: settings.merged.general?.debugKeystrokeLogging,
54368
55133
  pasteWorkaround: process.platform === "win32" || nodeMajorVersion < 20,
54369
55134
  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)(
55135
+ 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
55136
  AppContainer,
54372
55137
  {
54373
55138
  config,
@@ -54387,7 +55152,7 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
54387
55152
  if (useVP) {
54388
55153
  process.stdout.setMaxListeners(0);
54389
55154
  }
54390
- const appTree = /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
55155
+ const appTree = /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
54391
55156
  ErrorBoundary,
54392
55157
  {
54393
55158
  recordForExitEcho: true,
@@ -54401,11 +55166,11 @@ ${error.stack ?? ""}`
54401
55166
  void runExitCleanup().then(() => process.exit(1));
54402
55167
  }, 5e3);
54403
55168
  },
54404
- children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(AppWrapper, {})
55169
+ children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(AppWrapper, {})
54405
55170
  }
54406
55171
  );
54407
55172
  const instance = render_default(
54408
- process.env["DEBUG"] ? /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(import_react181.default.StrictMode, { children: appTree }) : appTree,
55173
+ process.env["DEBUG"] ? /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(import_react181.default.StrictMode, { children: appTree }) : appTree,
54409
55174
  {
54410
55175
  exitOnCtrlC: false,
54411
55176
  isScreenReaderEnabled: config.getScreenReader(),