@qwen-code/qwen-code 0.23.2-preview.0 → 0.23.3-nightly.20260910.c46cb85cf2

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 (409) hide show
  1. package/README.md +35 -15
  2. package/bundled/computer-use/SKILL.md +1 -1
  3. package/bundled/goal-draft/SKILL.md +2 -2
  4. package/bundled/qc-helper/docs/configuration/auth.md +1 -1
  5. package/bundled/qc-helper/docs/configuration/model-providers.md +76 -34
  6. package/bundled/qc-helper/docs/configuration/settings.md +5 -3
  7. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  8. package/bundled/qc-helper/docs/features/channels/dingtalk.md +1 -21
  9. package/bundled/qc-helper/docs/features/channels/dws.md +7 -1
  10. package/bundled/qc-helper/docs/features/channels/github.md +1 -9
  11. package/bundled/qc-helper/docs/features/channels/overview.md +30 -56
  12. package/bundled/qc-helper/docs/features/channels/qqbot.md +1 -2
  13. package/bundled/qc-helper/docs/features/commands.md +105 -18
  14. package/bundled/qc-helper/docs/features/computer-use.md +1 -1
  15. package/bundled/qc-helper/docs/features/cross-session-protocol.md +320 -0
  16. package/bundled/qc-helper/docs/features/goals.md +5 -3
  17. package/bundled/qc-helper/docs/features/hooks.md +14 -13
  18. package/bundled/qc-helper/docs/features/sub-agents.md +8 -0
  19. package/bundled/qc-helper/docs/qwen-serve.md +84 -53
  20. package/bundled/review/SKILL.md +82 -79
  21. package/bundled/review/references/posting.md +31 -14
  22. package/chunks/{MaxSizedBox-ZZJT3PJF.js → MaxSizedBox-UZW24XUX.js} +63 -55
  23. package/chunks/{StandaloneSessionPicker-DIOSZTMX.js → StandaloneSessionPicker-IDK7NAZL.js} +85 -77
  24. package/chunks/{acp-startup-profiler-KEU6VAYR.js → acp-startup-profiler-ARO4II44.js} +2 -2
  25. package/chunks/acp-subagent-executor-7TLJGISS.js +919 -0
  26. package/chunks/{acpAgent-62JUP5A7.js → acpAgent-YRCNNIIU.js} +939 -306
  27. package/chunks/{agent-NLPEQQDZ.js → agent-SGU5EE7U.js} +47 -41
  28. package/chunks/{agent-headless-Y2GR5F2Q.js → agent-headless-JVYBLNLT.js} +47 -41
  29. package/chunks/{anthropicContentGenerator-I7LQZH26.js → anthropicContentGenerator-SGIR5IKF.js} +68 -36
  30. package/chunks/{artifact-tool-P52OKKEF.js → artifact-tool-PMYZCYNH.js} +2 -2
  31. package/chunks/{askUserQuestion-I5W5S3D6.js → askUserQuestion-4M4YYIB4.js} +2 -2
  32. package/chunks/{bridge-Q66BD62H.js → bridge-YF6NYRPZ.js} +68 -60
  33. package/chunks/{ca-KC2AISNS.js → ca-MX3WCEEG.js} +1 -1
  34. package/chunks/{channel-management-service-TRTLQTSV.js → channel-management-service-E4HTMU7T.js} +9 -9
  35. package/chunks/{channel-settings-store-R5STFWUW.js → channel-settings-store-FZ5VKHQD.js} +74 -66
  36. package/chunks/{channel-worker-group-PIYPVCTF.js → channel-worker-group-X6WH4XWF.js} +9 -9
  37. package/chunks/{channel-worker-manager-FQHEDTD2.js → channel-worker-manager-SICFJDPJ.js} +19 -10
  38. package/chunks/{channel-worker-supervisor-XJPZZ3VK.js → channel-worker-supervisor-HSFAKML6.js} +6 -6
  39. package/chunks/{chunk-CLKE4IY3.js → chunk-2SZH22YO.js} +1 -1
  40. package/chunks/{chunk-OIPUQE3S.js → chunk-34ZYDM3F.js} +27 -12
  41. package/chunks/{chunk-HIXUUCGY.js → chunk-36HCNKDS.js} +1 -1
  42. package/chunks/{chunk-6YEOCHSE.js → chunk-3FPYT6QC.js} +101 -31
  43. package/chunks/{chunk-NFIDVZND.js → chunk-3I7W2POO.js} +3 -22
  44. package/chunks/{chunk-W3ONSAYO.js → chunk-3VPFA6L2.js} +3 -3
  45. package/chunks/chunk-532WHF4F.js +127 -0
  46. package/chunks/{chunk-J3TJH52D.js → chunk-5FFAUU4T.js} +1 -1
  47. package/chunks/{chunk-G5QLLD53.js → chunk-5FKZ7KFQ.js} +1864 -35
  48. package/chunks/{chunk-B44JBZBB.js → chunk-5GLDOLNQ.js} +132 -27
  49. package/chunks/{chunk-ORREXWOM.js → chunk-5ZJ3KK5J.js} +5 -5
  50. package/chunks/{chunk-2OR32P5M.js → chunk-6EDWSKN4.js} +125 -10
  51. package/chunks/{chunk-EA4NFWVG.js → chunk-6EOMQPTS.js} +4 -4
  52. package/chunks/{chunk-45ROPFQY.js → chunk-6NONRGYX.js} +1 -1
  53. package/chunks/{chunk-EHTKOO6W.js → chunk-6UK77U7D.js} +46 -3
  54. package/chunks/{chunk-QXXBW2G4.js → chunk-72BGC7RT.js} +4 -4
  55. package/chunks/{chunk-CRZBDVP2.js → chunk-74JEYK2C.js} +10 -10
  56. package/chunks/{chunk-B54PFQS5.js → chunk-7CLLH5TI.js} +1 -1
  57. package/chunks/{chunk-CG2PDIGD.js → chunk-7XM6KEVW.js} +1 -1
  58. package/chunks/{chunk-CALNF3Z3.js → chunk-7XVQNDFB.js} +1 -1
  59. package/chunks/{chunk-TK4XHPKW.js → chunk-7ZKDPTYO.js} +2 -2
  60. package/chunks/{chunk-ZIPYCXQP.js → chunk-7ZVIGDZF.js} +1 -1
  61. package/chunks/chunk-AEY27Z35.js +1411 -0
  62. package/chunks/{chunk-WIRYFL2L.js → chunk-ATH66AEU.js} +64 -59
  63. package/chunks/{chunk-33MLFMCL.js → chunk-AW2SIT3B.js} +3 -3
  64. package/chunks/{chunk-4BLTSTF6.js → chunk-AWMJRE5N.js} +4 -4
  65. package/chunks/chunk-AYEJOTIU.js +43 -0
  66. package/chunks/{chunk-M73KHGNR.js → chunk-B2TGBZXY.js} +420 -227
  67. package/chunks/{chunk-XDNFODER.js → chunk-B6BDT4RX.js} +1 -1
  68. package/chunks/{chunk-WZ4YULVF.js → chunk-BHR6IN2X.js} +3251 -974
  69. package/chunks/{chunk-GXIHBIHC.js → chunk-BI3WSRQE.js} +61 -72
  70. package/chunks/{chunk-NVS4Z6GT.js → chunk-BQOP3K76.js} +1 -1
  71. package/chunks/{chunk-R2266LQ5.js → chunk-BTWGOKHU.js} +2 -2
  72. package/chunks/{process-registry-OAEG6WGC.js → chunk-BYUAT5OC.js} +1 -0
  73. package/chunks/{chunk-XVTCSVBK.js → chunk-C4NLHK7X.js} +227 -298
  74. package/chunks/{chunk-NOO4QFXM.js → chunk-C75BXMPM.js} +1 -3
  75. package/chunks/chunk-CAAMI77K.js +937 -0
  76. package/chunks/chunk-CF5KXZZX.js +150 -0
  77. package/chunks/{chunk-SOA4HKRJ.js → chunk-CGKEUUYG.js} +2 -2
  78. package/chunks/{chunk-BF3RUIVP.js → chunk-CH2YDT6X.js} +36 -38
  79. package/chunks/{chunk-5HBA2Z7V.js → chunk-CJ3DHN5I.js} +3 -3
  80. package/chunks/{chunk-3BTHHXXE.js → chunk-CSHX5ZC4.js} +1 -1
  81. package/chunks/{chunk-UYDQYDW2.js → chunk-CUK6F5UF.js} +1 -1
  82. package/chunks/{chunk-RPFJJ33Z.js → chunk-DLH7YIX6.js} +3 -3
  83. package/chunks/{chunk-L6ZME3W7.js → chunk-DMX7RF6E.js} +1 -1
  84. package/chunks/{chunk-TRWQQBVH.js → chunk-DTNV6UZY.js} +1 -1
  85. package/chunks/{chunk-FDOGGKAA.js → chunk-E4UEO3XM.js} +5 -2
  86. package/chunks/{chunk-RN6V5HKE.js → chunk-E5GQNSJY.js} +3 -3
  87. package/chunks/chunk-ELRMZTPF.js +374 -0
  88. package/chunks/chunk-ERU3SDXT.js +27 -0
  89. package/chunks/{chunk-O2FEO2CB.js → chunk-EUURTIV6.js} +18 -2
  90. package/chunks/{chunk-4HOEU2OR.js → chunk-EWJTAP3Y.js} +1 -19
  91. package/chunks/{chunk-ZELCTN6Y.js → chunk-F23YN37B.js} +10 -0
  92. package/chunks/{chunk-BL6B2QS2.js → chunk-F2RKL5I2.js} +809 -1195
  93. package/chunks/{chunk-J4ECGDA3.js → chunk-F45SKYIQ.js} +3 -3
  94. package/chunks/{chunk-5WC2ECUK.js → chunk-FCQJLMA2.js} +114 -8
  95. package/chunks/{chunk-4JKLPTV6.js → chunk-FGRDUDCI.js} +13 -6
  96. package/chunks/{chunk-ZUNWKOAP.js → chunk-FGV2QEAO.js} +5 -27
  97. package/chunks/{chunk-4VY3ITHR.js → chunk-FN3JNDRU.js} +3 -3
  98. package/chunks/{chunk-XI7RST4D.js → chunk-FRVV5SSD.js} +2 -2
  99. package/chunks/{chunk-UXDVUFKU.js → chunk-FYZ5NZ3V.js} +2 -20
  100. package/chunks/{chunk-ALMR3E6Q.js → chunk-GDWE23OR.js} +3 -3
  101. package/chunks/{chunk-W7PXLIZJ.js → chunk-GP47UR3M.js} +6 -6
  102. package/chunks/{chunk-LNYV4GXX.js → chunk-GSKX53AN.js} +0 -139
  103. package/chunks/{chunk-MA5OUNN6.js → chunk-HG46TTAG.js} +1 -1
  104. package/chunks/{chunk-FETY36NQ.js → chunk-HGEUHUEV.js} +1 -1
  105. package/chunks/{chunk-UULHYZ4W.js → chunk-HL2DQG3Y.js} +148 -23
  106. package/chunks/{chunk-E6TI726I.js → chunk-HUXPEUFL.js} +1 -1
  107. package/chunks/{chunk-5DQ4YTIZ.js → chunk-HZTXKVSV.js} +1 -1
  108. package/chunks/{chunk-LYT2OU7D.js → chunk-IAEXTMED.js} +1 -1
  109. package/chunks/{chunk-CPJRFFPH.js → chunk-IFHJIEMN.js} +576 -169
  110. package/chunks/{chunk-IW6RQPQB.js → chunk-IJOS26LH.js} +1 -3
  111. package/chunks/{chunk-ORFIYTI2.js → chunk-IK2MWJP5.js} +1 -1
  112. package/chunks/{chunk-MWEF5MUK.js → chunk-IOUBOANU.js} +42 -13
  113. package/chunks/{chunk-KA5HR3G2.js → chunk-IUVIBDKU.js} +2 -2
  114. package/chunks/{chunk-PQWM4SX2.js → chunk-J2RNOJRV.js} +2 -2
  115. package/chunks/{chunk-VHPG7BH6.js → chunk-J5PYQVD2.js} +2 -2
  116. package/chunks/{chunk-JDPBJIKI.js → chunk-JDEW3V5B.js} +1 -1
  117. package/chunks/{chunk-RX3FYFCN.js → chunk-JEMDIKGQ.js} +7 -7
  118. package/chunks/chunk-JL6APGBX.js +43 -0
  119. package/chunks/{chunk-UHUT4IDM.js → chunk-JOMCZWX7.js} +9 -15
  120. package/chunks/{chunk-43CI6YWJ.js → chunk-JV5YASQA.js} +2777 -2151
  121. package/chunks/{chunk-N6S3NUYJ.js → chunk-JXNIF2O5.js} +1 -1
  122. package/chunks/chunk-K2OJUPOE.js +78 -0
  123. package/chunks/{chunk-QLM7D7W3.js → chunk-KFGPNCCY.js} +8 -8
  124. package/chunks/{chunk-7RXOEUFF.js → chunk-KHIBLKNK.js} +1 -1
  125. package/chunks/{chunk-5GD7LYOH.js → chunk-KVBNJ4K2.js} +5 -5
  126. package/chunks/{chunk-QJAFSFYA.js → chunk-KZ2CU2LH.js} +1 -1
  127. package/chunks/{chunk-DCPRCDSR.js → chunk-L2KF7HUE.js} +6 -6
  128. package/chunks/{chunk-4ALNJDHL.js → chunk-L3DTX6U4.js} +3 -1
  129. package/chunks/{chunk-3SH53ANB.js → chunk-LAP7X6EC.js} +12 -0
  130. package/chunks/{chunk-GM44O6F7.js → chunk-LEGNDA46.js} +1 -1
  131. package/chunks/{chunk-WXFCI3O5.js → chunk-LG5Y4OWO.js} +2 -2
  132. package/chunks/{chunk-3LPJ776W.js → chunk-LILGKQ4B.js} +10 -7
  133. package/chunks/{chunk-LBKYQ33T.js → chunk-LIR7YS2O.js} +18 -12
  134. package/chunks/{chunk-5Z4FCEPY.js → chunk-LK2WUCDQ.js} +625 -119
  135. package/chunks/{chunk-W673V2H3.js → chunk-LY2GK2PR.js} +4 -4
  136. package/chunks/{chunk-PQSCGZT2.js → chunk-MOS5OAOG.js} +36 -10
  137. package/chunks/chunk-MXOALJIL.js +691 -0
  138. package/chunks/chunk-NFXXBWSE.js +463 -0
  139. package/chunks/chunk-NUQ4GK5I.js +315 -0
  140. package/chunks/{chunk-J3VZF2AL.js → chunk-NUQVB25K.js} +2 -2
  141. package/chunks/{chunk-GNY7B3CA.js → chunk-NVIBH7WS.js} +1 -1
  142. package/chunks/{chunk-M6YLOETP.js → chunk-O3MKRN2I.js} +4 -4
  143. package/chunks/{chunk-ISPBBKJN.js → chunk-ONGZNOIP.js} +7 -2
  144. package/chunks/{chunk-Q2F43WTJ.js → chunk-OOLSYRZ7.js} +36 -19
  145. package/chunks/{chunk-63ACHB2H.js → chunk-PIGUW2U2.js} +197 -28
  146. package/chunks/{chunk-QAZ2MGYT.js → chunk-PLLIWEM3.js} +2 -2
  147. package/chunks/{chunk-ULY4ISY2.js → chunk-PMS4FVLY.js} +23 -8
  148. package/chunks/{chunk-NB3NDQQK.js → chunk-Q2XLNLAV.js} +1 -1
  149. package/chunks/{chunk-6GRDHIVI.js → chunk-Q6HXLBZF.js} +12 -12
  150. package/chunks/{chunk-EUXF6URV.js → chunk-QPWZX4ZV.js} +32 -34
  151. package/chunks/{chunk-DTB5BXRG.js → chunk-RJZTX2OF.js} +30 -17
  152. package/chunks/{chunk-PQEISIKS.js → chunk-SAH4BD2J.js} +0 -67
  153. package/chunks/{chunk-LUVXLLMS.js → chunk-SAWPURIU.js} +2 -2
  154. package/chunks/{chunk-WZS3X663.js → chunk-SNZWDV67.js} +43 -18
  155. package/chunks/{chunk-IRKQ4YYX.js → chunk-SVWWF5TZ.js} +29 -1
  156. package/chunks/{chunk-5VZFJTL2.js → chunk-SXEE6PND.js} +2 -2
  157. package/chunks/{chunk-743XE7N7.js → chunk-T4JVQR7Z.js} +2 -2
  158. package/chunks/{chunk-6RZX2HIH.js → chunk-TBEXLLAO.js} +2 -2
  159. package/chunks/{chunk-LN3WBOKU.js → chunk-TP2DUOB6.js} +8 -8
  160. package/chunks/{chunk-MWIO7MF6.js → chunk-TP6FYVQT.js} +2 -0
  161. package/chunks/{chunk-HRPFBHW7.js → chunk-TPKQIA7G.js} +1 -0
  162. package/chunks/{chunk-VH764G6B.js → chunk-TWC3FHUI.js} +4 -4
  163. package/chunks/{chunk-H3Q3RSKZ.js → chunk-U7O65WKL.js} +1 -1
  164. package/chunks/{chunk-IUJLW6ZI.js → chunk-UBEYS536.js} +7 -7
  165. package/chunks/{chunk-VEQBVJYH.js → chunk-UGS62IR2.js} +3 -3
  166. package/chunks/{chunk-VF6D6EGV.js → chunk-UKMWZ5NS.js} +109 -842
  167. package/chunks/{chunk-7GZCCHJL.js → chunk-VHKOULAI.js} +6 -5
  168. package/chunks/{chunk-ODBNTMZW.js → chunk-VID4BW52.js} +97 -86
  169. package/chunks/{chunk-7L35FKPF.js → chunk-VLZOU6UH.js} +7 -7
  170. package/chunks/{chunk-XBLG564H.js → chunk-VTBPMLRO.js} +12 -12
  171. package/chunks/{chunk-QTNCGZHQ.js → chunk-VX63RJXE.js} +9 -0
  172. package/chunks/{chunk-7VEYUF3N.js → chunk-W5ZQMAEM.js} +1 -1
  173. package/chunks/{chunk-XQ4RDO5B.js → chunk-WBCPROWX.js} +1 -1
  174. package/chunks/{chunk-RDV4NLI3.js → chunk-WS7MOFK6.js} +3 -3
  175. package/chunks/{chunk-FV4DM2M4.js → chunk-WXFK4MH7.js} +32 -12
  176. package/chunks/{chunk-XAXTQURR.js → chunk-WY4N6KS7.js} +4 -4
  177. package/chunks/{chunk-CABDNUJ4.js → chunk-XDQUDARC.js} +11 -14
  178. package/chunks/{chunk-YHDGABDC.js → chunk-XKBFYTCD.js} +1 -1
  179. package/chunks/{chunk-2EKVPSIJ.js → chunk-Y2MYW47X.js} +1 -1
  180. package/chunks/{chunk-Y6ZWXM44.js → chunk-YIU5PEAT.js} +2 -2
  181. package/chunks/{chunk-PSPAM24S.js → chunk-YKK2XXHF.js} +4 -0
  182. package/chunks/{chunk-HZ2HUXX7.js → chunk-YS2ZJSOA.js} +29 -12
  183. package/chunks/{chunk-OFVAS4AR.js → chunk-ZGQIIGNQ.js} +2 -2
  184. package/chunks/{chunk-HNLMYDQE.js → chunk-ZHECLGA6.js} +2 -4
  185. package/chunks/{chunk-XBVNNDPK.js → chunk-ZHKTKHMO.js} +8 -1
  186. package/chunks/{chunk-OWCFKIFQ.js → chunk-ZKYR7QS4.js} +1 -1
  187. package/chunks/{chunk-YZTGGCEE.js → chunk-ZKZHSB5W.js} +1 -1
  188. package/chunks/{chunk-ERXNTINK.js → chunk-ZT6EPPBY.js} +1 -1
  189. package/chunks/{chunk-565U2ANU.js → chunk-ZTTC7T4X.js} +1 -1
  190. package/chunks/{chunk-MMMA36MN.js → chunk-ZUQVZTWG.js} +3 -3
  191. package/chunks/{chunk-7OCIQNKX.js → chunk-ZW2EUO2A.js} +1 -1
  192. package/chunks/{config-utils-37FHWPTP.js → config-utils-S5LFS4RN.js} +67 -59
  193. package/chunks/{contextCommand-R4JUBV5N.js → contextCommand-XXKZMMSQ.js} +64 -56
  194. package/chunks/{core-runtime-6U4OXU5C.js → core-runtime-YGUA42AZ.js} +68 -59
  195. package/chunks/{create-sub-session-LLUYAGZN.js → create-sub-session-SEK6KCYR.js} +64 -56
  196. package/chunks/{create-sub-session-TGIX63YU.js → create-sub-session-TIGCFGCS.js} +2 -2
  197. package/chunks/{cron-create-GTPVMJCF.js → cron-create-AKWX67FO.js} +1 -1
  198. package/chunks/{cron-delete-ZBK27Z4K.js → cron-delete-XPB6IYZJ.js} +1 -1
  199. package/chunks/{cron-list-KTFKFDKC.js → cron-list-XBKO4WU5.js} +1 -1
  200. package/chunks/{daemon-UI6SQSBV.js → daemon-G5TYKZD6.js} +2 -2
  201. package/chunks/{daemon-git-worktree-guard-O2UTNFJC.js → daemon-git-worktree-guard-3AWINPPX.js} +65 -57
  202. package/chunks/{daemon-status-provider-7GMAKSTX.js → daemon-status-provider-RTKHKUFJ.js} +73 -65
  203. package/chunks/{daemon-trust-policy-VNP76VMO.js → daemon-trust-policy-6YQOC7B6.js} +69 -61
  204. package/chunks/{daemon-trust-policy-monitor-TD5O3BZA.js → daemon-trust-policy-monitor-EN5L23GS.js} +69 -61
  205. package/chunks/{de-UU2YTO37.js → de-OOLZAU2U.js} +1 -1
  206. package/chunks/{deferred-core-runtime-NJM63YJS.js → deferred-core-runtime-JPLQRVZO.js} +62 -54
  207. package/chunks/{display-image-CTNHJRZC.js → display-image-NAH3AZ63.js} +3 -3
  208. package/chunks/{dist-STAGIFNB.js → dist-3BJVSJ7D.js} +389 -724
  209. package/chunks/{dist-OR2ZQTXZ.js → dist-65Q3TRLH.js} +16 -36
  210. package/chunks/{dist-24TCWK5H.js → dist-HX2LG76F.js} +233 -35
  211. package/chunks/{dist-XJ25G6OH.js → dist-J7PDFK53.js} +13 -38
  212. package/chunks/{dist-WZTUKIDR.js → dist-JCXKXRH6.js} +3 -6
  213. package/chunks/{dist-M4CBX53H.js → dist-LHGMHIDK.js} +2 -6
  214. package/chunks/{dist-5I4HLUTO.js → dist-QPTIRE3U.js} +4 -13
  215. package/chunks/{dist-FDISN4AK.js → dist-SBK33YLC.js} +5 -40
  216. package/chunks/{dist-NQ2636VT.js → dist-WMFHZG3R.js} +2 -5
  217. package/chunks/{edit-GL7OA6RV.js → edit-QXJZIWRQ.js} +50 -44
  218. package/chunks/{en-YJNRUQG4.js → en-7BZ2OZKH.js} +2 -1
  219. package/chunks/{enter-worktree-YFTKHXHZ.js → enter-worktree-54L5QJ3N.js} +4 -4
  220. package/chunks/{enterPlanMode-VC4BCSZE.js → enterPlanMode-2ITCVQ5N.js} +47 -41
  221. package/chunks/{environment-BI6IBAZJ.js → environment-URPO5ORZ.js} +65 -57
  222. package/chunks/{errors-D6G2ZM2R.js → errors-TDUYLEKI.js} +64 -56
  223. package/chunks/{exit-worktree-NF2XEMES.js → exit-worktree-EORJDKDS.js} +4 -4
  224. package/chunks/{exitPlanMode-DX446CA6.js → exitPlanMode-RA7KMUEW.js} +47 -41
  225. package/chunks/{fast-path-MAYDLJIP.js → fast-path-Q2JYP64P.js} +7 -7
  226. package/chunks/{fast-path-settings-SATXY3PD.js → fast-path-settings-GTHZLVSS.js} +2 -2
  227. package/chunks/{fr-HKNWVXRJ.js → fr-JJWM2HUS.js} +1 -1
  228. package/chunks/{glob-TVKRFY36.js → glob-VHSV4BKE.js} +50 -44
  229. package/chunks/{goal-tools-CA6YANRN.js → goal-tools-5FIE56CK.js} +53 -43
  230. package/chunks/{grep-BLHF2S5D.js → grep-3PKFKLCA.js} +2 -2
  231. package/chunks/{handleAutoUpdate-AW4ZAHON.js → handleAutoUpdate-7FZFLKNZ.js} +65 -57
  232. package/chunks/{i18n-IH5CRAY7.js → i18n-NTFQDWKR.js} +63 -55
  233. package/chunks/{image-gen-XP4NNIYG.js → image-gen-TF3IQWSH.js} +7 -6
  234. package/chunks/{initializer-UBR37ZNM.js → initializer-LB3T635H.js} +69 -61
  235. package/chunks/{installationInfo-Y52756EC.js → installationInfo-KRO433ZG.js} +62 -54
  236. package/chunks/{ja-GJS5RZGU.js → ja-L67TXFDJ.js} +1 -1
  237. package/chunks/{list-7V5JDZPO.js → list-NEP3WPZ7.js} +72 -64
  238. package/chunks/{list-agents-I5TRH3J7.js → list-agents-QLDXS5OD.js} +18 -8
  239. package/chunks/{llm-QDB6JVF5.js → llm-AZEJEIAD.js} +141 -128
  240. package/chunks/{llm-content-generator-EO6MZCEO.js → llm-content-generator-KWXFHBR3.js} +6 -5
  241. package/chunks/{loadedSettingsAdapter-I3YQKMC4.js → loadedSettingsAdapter-NZORJLSD.js} +69 -61
  242. package/chunks/{loggingContentGenerator-MNXYUGDG.js → loggingContentGenerator-NGHVU6AK.js} +69 -62
  243. package/chunks/{loop-wakeup-HL6XOWI4.js → loop-wakeup-HHMYIC7Z.js} +2 -2
  244. package/chunks/{ls-YV7RKLKY.js → ls-N7ABR6HI.js} +4 -4
  245. package/chunks/{lsp-NO3AMRZT.js → lsp-LTOFWG5P.js} +1 -1
  246. package/chunks/{managed-npm-update-EA3EXPTO.js → managed-npm-update-3LHNBEAG.js} +62 -54
  247. package/chunks/{mcp-QTAJ544Y.js → mcp-4SWJKDX7.js} +69 -61
  248. package/chunks/{monitor-6FQKQOTP.js → monitor-V5EFBZC7.js} +49 -43
  249. package/chunks/{nonInteractiveCli-MRCTZL5X.js → nonInteractiveCli-5UFUBUAT.js} +117 -109
  250. package/chunks/{notebook-edit-BQQCKI7K.js → notebook-edit-ATV46KWD.js} +48 -42
  251. package/chunks/{open-with-auth-D6JD6LDS.js → open-with-auth-6MVIHMXB.js} +1 -1
  252. package/chunks/openai-WX26N5OJ.js +47 -0
  253. package/chunks/{openaiContentGenerator-TTSKXNVH.js → openaiContentGenerator-BKTO5QJK.js} +31 -25
  254. package/chunks/openaiResponsesContentGenerator-RTCAJ5V5.js +1658 -0
  255. package/chunks/{pidfile-KPIS6RIT.js → pidfile-JAIOWPI3.js} +65 -55
  256. package/chunks/process-registry-X6ZCASEN.js +10 -0
  257. package/chunks/{processUtils-ZCASPKK4.js → processUtils-TCQH3LVD.js} +2 -2
  258. package/chunks/{prompt-terminal-ledger-D6HM6TV7.js → prompt-terminal-ledger-BYXHEUHX.js} +63 -55
  259. package/chunks/{pt-FXMYXEUV.js → pt-77SBDL4B.js} +1 -1
  260. package/chunks/{qwenContentGenerator-GGZEFLBD.js → qwenContentGenerator-K5TJK75P.js} +60 -52
  261. package/chunks/{qwenOAuth2-KX6LVYQ3.js → qwenOAuth2-NOXRK323.js} +6 -5
  262. package/chunks/{read-file-VE5GDFLP.js → read-file-DL7GNZD5.js} +11 -9
  263. package/chunks/{read-mcp-resource-D3N75DGF.js → read-mcp-resource-B37WANAQ.js} +1 -1
  264. package/chunks/{record-artifact-Q5CRGJTP.js → record-artifact-OAXWXZ5D.js} +2 -2
  265. package/chunks/record-source-D7R7X3GT.js +22 -0
  266. package/chunks/{report-findings-TJ34R7QK.js → report-findings-AR3VC6EQ.js} +3 -3
  267. package/chunks/{request-shutdown-LRKMTBAD.js → request-shutdown-IKNWTX5M.js} +5 -5
  268. package/chunks/{resumeHistoryUtils-HSSGMYDC.js → resumeHistoryUtils-OYKXZ4YO.js} +68 -60
  269. package/chunks/{ripGrep-SEJE7AA6.js → ripGrep-EOUMIU4K.js} +15 -13
  270. package/chunks/{ru-RMHURE5U.js → ru-UYWHKWF2.js} +1 -1
  271. package/chunks/{run-qwen-serve-OJYVH7N6.js → run-qwen-serve-PPTGWC5B.js} +471 -152
  272. package/chunks/{runtime-KGMQQFJD.js → runtime-5RO22P2N.js} +77 -67
  273. package/chunks/{scheduled-tasks-7H5HWHYD.js → scheduled-tasks-YGERFWLZ.js} +70 -62
  274. package/chunks/{scheduler-BE42AKDG.js → scheduler-S6WU6M3C.js} +64 -56
  275. package/chunks/{sdk-exporters-grpc-MXTVSE3C.js → sdk-exporters-grpc-Y2ZUQDUQ.js} +2 -2
  276. package/chunks/{sdk-exporters-http-7R2ARBPV.js → sdk-exporters-http-VWTF4W6K.js} +3 -3
  277. package/chunks/{sdk-impl-YOLO7LV4.js → sdk-impl-G6FVTBQZ.js} +9 -9
  278. package/chunks/{send-message-AWKUDJBH.js → send-message-TWOGWCBG.js} +13 -10
  279. package/chunks/{serve-KZVKYMSL.js → serve-HT4WOCWS.js} +70 -62
  280. package/chunks/{server-PJRALPJQ.js → server-SWXVPRCS.js} +2977 -617
  281. package/chunks/{session-IHITXU2S.js → session-6DSFUOMO.js} +154 -119
  282. package/chunks/{session-attachments-root-GQ2TUI3Y.js → session-attachments-root-SOZCTQWW.js} +62 -54
  283. package/chunks/{session-pr-refresh-H43LULTE.js → session-pr-refresh-F7XUBQBH.js} +70 -62
  284. package/chunks/{settings-RKEQQDFC.js → settings-SWQH36PO.js} +74 -66
  285. package/chunks/{shell-6PJ444U5.js → shell-XUQL6EYV.js} +47 -41
  286. package/chunks/{skill-Q3UP7B5V.js → skill-HNRDD54C.js} +33 -23
  287. package/chunks/{skill-settings-LZR5YRRW.js → skill-settings-JU72PCII.js} +68 -60
  288. package/chunks/{spawnChannel-WM3DT2BF.js → spawnChannel-7ZVM3GBU.js} +65 -57
  289. package/chunks/{standalone-update-E5474IBI.js → standalone-update-64JQY2LX.js} +64 -56
  290. package/chunks/{start-opentui-ui-WLWZNQ2I.js → start-opentui-ui-RSLBXESU.js} +554 -297
  291. package/chunks/{startInteractiveUI-FBQSGWGO.js → startInteractiveUI-ZDPHD7XE.js} +1282 -1915
  292. package/chunks/{syntheticOutput-D2P5V6RG.js → syntheticOutput-F6F27JMK.js} +2 -2
  293. package/chunks/{task-create-PMAFST2T.js → task-create-Y623TBHB.js} +10 -10
  294. package/chunks/{task-list-R2HSY2NC.js → task-list-FCPEEGWL.js} +3 -3
  295. package/chunks/{task-stop-BFSKRTGV.js → task-stop-QTKZXLPH.js} +1 -1
  296. package/chunks/{task-update-JYC57USF.js → task-update-YLSXF25N.js} +10 -10
  297. package/chunks/{team-create-VIGUFUT4.js → team-create-U52VYSNO.js} +49 -43
  298. package/chunks/{team-delete-CBHVBTPB.js → team-delete-S7TLHZCF.js} +3 -3
  299. package/chunks/{team-plan-approval-HQVZA3MD.js → team-plan-approval-IQ4ADQIK.js} +47 -41
  300. package/chunks/{terminal-image-renderer-LUKNCOVM.js → terminal-image-renderer-ZEMF7LB2.js} +64 -56
  301. package/chunks/{theme-manager-LOENKYLY.js → theme-manager-DK2S2SOX.js} +62 -54
  302. package/chunks/{todoWrite-5ERKFWAK.js → todoWrite-5QI2H2FW.js} +4 -4
  303. package/chunks/{tool-search-ZIFAQCE2.js → tool-search-6U4OQG7K.js} +21 -15
  304. package/chunks/{total-session-admission-FUUJH3QH.js → total-session-admission-BOARHBZU.js} +68 -60
  305. package/chunks/{trustedFolders-C76KYROP.js → trustedFolders-GKQZXZSV.js} +63 -55
  306. package/chunks/{update-relaunch-4G2SRXKX.js → update-relaunch-GLACF7PX.js} +5 -5
  307. package/chunks/{updateCheck-EIZIO7HI.js → updateCheck-NLBSZB4Q.js} +64 -56
  308. package/chunks/{useAutoAcceptIndicator-EAA6KSY4.js → useAutoAcceptIndicator-3X3BYU7H.js} +72 -64
  309. package/chunks/{validateNonInterActiveAuth-BRX22QCN.js → validateNonInterActiveAuth-NE3JLOIR.js} +114 -106
  310. package/chunks/{version-E56RU7PR.js → version-6H5YAT4N.js} +3 -1
  311. package/chunks/{web-fetch-AAUCD7RM.js → web-fetch-RWSO7TTN.js} +15 -13
  312. package/chunks/{web-search-HFUQF44Q.js → web-search-DADI3LV5.js} +560 -322
  313. package/chunks/{web-shell-static-POZHGGXE.js → web-shell-static-CCN4JZEE.js} +5 -4
  314. package/chunks/workflow-LPGCZCIT.js +1224 -0
  315. package/chunks/workspace-providers-status-QBRBEFTO.js +127 -0
  316. package/chunks/{workspace-registration-store-YL7HLYYI.js → workspace-registration-store-WUKTMJPW.js} +3 -2
  317. package/chunks/{workspace-registry-BNRP2ELW.js → workspace-registry-CJV7KVGF.js} +68 -60
  318. package/chunks/{workspace-runtime-coordinator-WKGF7VHS.js → workspace-runtime-coordinator-7LYMFMFF.js} +71 -61
  319. package/chunks/{workspace-service-4MYO72MM.js → workspace-service-HWXZSA4J.js} +75 -67
  320. package/chunks/{workspace-skills-status-SU66TJLZ.js → workspace-skills-status-D6QXUWCC.js} +70 -62
  321. package/chunks/{workspace-trust-reconciler-D5QT7WQB.js → workspace-trust-reconciler-VZX7G7CZ.js} +75 -67
  322. package/chunks/{write-file-NVPQE2AZ.js → write-file-KKHV26YV.js} +49 -43
  323. package/chunks/{zh-VBFCRQBL.js → zh-J2GLI64H.js} +2 -1
  324. package/chunks/{zh-TW-N2TBF2F2.js → zh-TW-TBAICUJQ.js} +2 -1
  325. package/chunks/{zoom-image-RJHC66WG.js → zoom-image-OG7X7KAA.js} +12 -10
  326. package/cli.js +14 -14
  327. package/export-transcript-document.css +1 -0
  328. package/export-transcript-document.js +164 -165
  329. package/locales/ca.js +2 -2
  330. package/locales/de.js +2 -2
  331. package/locales/en.js +3 -2
  332. package/locales/fr.js +2 -2
  333. package/locales/ja.js +2 -2
  334. package/locales/pt.js +2 -2
  335. package/locales/ru.js +2 -2
  336. package/locales/zh-TW.js +3 -2
  337. package/locales/zh.js +3 -2
  338. package/package.json +6 -5
  339. package/web-shell/assets/{abnfDiagram-VCTEODGH-DHc6plZn.js → abnfDiagram-VCTEODGH-NT0lTLRG.js} +1 -1
  340. package/web-shell/assets/{arc-BQ9m8TDV.js → arc-DDqnIMMx.js} +1 -1
  341. package/web-shell/assets/{architectureDiagram-5GKGNRK7-D5ap3oVB.js → architectureDiagram-5GKGNRK7-DfYghE3W.js} +1 -1
  342. package/web-shell/assets/{blockDiagram-NRAW4CY4-BIbnyNph.js → blockDiagram-NRAW4CY4-DlqJIx5c.js} +1 -1
  343. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BRsdx_iG.js → c4Diagram-UCG6FXSJ-CinqLGU4.js} +1 -1
  344. package/web-shell/assets/channel-BHGoSkEv.js +1 -0
  345. package/web-shell/assets/{chunk-2Q5K7J3B-3lf1fNlx.js → chunk-2Q5K7J3B-CsjJX5M7.js} +1 -1
  346. package/web-shell/assets/{chunk-5VM5RSS4-DP8VNRc4.js → chunk-5VM5RSS4-CaVb2tdH.js} +1 -1
  347. package/web-shell/assets/{chunk-F27PBJKO-DrohDmZ6.js → chunk-F27PBJKO-CRyErlzW.js} +1 -1
  348. package/web-shell/assets/{chunk-G27WJ6UU-UZ2QhSx6.js → chunk-G27WJ6UU-7I79DZCf.js} +1 -1
  349. package/web-shell/assets/{chunk-JWPE2WC7-BIMHVcZK.js → chunk-JWPE2WC7-Dz4cac5F.js} +1 -1
  350. package/web-shell/assets/{chunk-LCL6LL3I-izRxdSDd.js → chunk-LCL6LL3I-Ls24Derb.js} +1 -1
  351. package/web-shell/assets/{chunk-POPQ4Y6H-CXADD4PP.js → chunk-POPQ4Y6H-JzYe4qx7.js} +1 -1
  352. package/web-shell/assets/{chunk-SVP7TREG-B96d8Y_1.js → chunk-SVP7TREG-BxDwesA-.js} +1 -1
  353. package/web-shell/assets/{chunk-XXDRQBXY-CF2sVQpv.js → chunk-XXDRQBXY-CW4hjgWc.js} +1 -1
  354. package/web-shell/assets/classDiagram-DTDB5LWJ-E47Xnn15.js +1 -0
  355. package/web-shell/assets/classDiagram-v2-JRS7N3AN-E47Xnn15.js +1 -0
  356. package/web-shell/assets/{cose-bilkent-JH36ORCC-CT6tXVAS.js → cose-bilkent-JH36ORCC-DxikE9iF.js} +1 -1
  357. package/web-shell/assets/{cynefin-OW5HDTMX-X1NS4vtV.js → cynefin-OW5HDTMX-CvVsIkVN.js} +1 -1
  358. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-DNsKNOT4.js → cynefinDiagram-5FMLGOSQ-CDHkk3wq.js} +1 -1
  359. package/web-shell/assets/{dagre-3AP2YEHR-9-AHKqsb.js → dagre-3AP2YEHR-BgLdkVLT.js} +1 -1
  360. package/web-shell/assets/{diagram-S7CK7UJ4-Bjgms7j6.js → diagram-S7CK7UJ4-DP43cGhe.js} +1 -1
  361. package/web-shell/assets/{diagram-UQ7AKVKN-h6bCprbE.js → diagram-UQ7AKVKN-BWrZYhoT.js} +1 -1
  362. package/web-shell/assets/{diagram-VSXAHHWV-4SbQXVLt.js → diagram-VSXAHHWV-B80wjH_n.js} +1 -1
  363. package/web-shell/assets/{diagram-VX7I27RA-B5gPCzzB.js → diagram-VX7I27RA-DPpKmDsY.js} +1 -1
  364. package/web-shell/assets/{diagram-Z3DM3KII-DFJXIA3A.js → diagram-Z3DM3KII-kaEBNbNU.js} +1 -1
  365. package/web-shell/assets/{ebnfDiagram-PWID7BFC-FwyaU7VY.js → ebnfDiagram-PWID7BFC-1-qbEZvk.js} +1 -1
  366. package/web-shell/assets/{erDiagram-SSCWMZ5O-8vJQh2te.js → erDiagram-SSCWMZ5O-CrK2gMkV.js} +1 -1
  367. package/web-shell/assets/{flowDiagram-A5DVABFB-BzA_1gMN.js → flowDiagram-A5DVABFB-Dic2xofW.js} +1 -1
  368. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-Co-ABbVX.js → ganttDiagram-EL5Y4UJY-DJko8vT7.js} +1 -1
  369. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-DW_FcyrX.js → gitGraphDiagram-WWUBYQGX-DxsQ-bHT.js} +1 -1
  370. package/web-shell/assets/index-DY8CxdBr.js +2173 -0
  371. package/web-shell/assets/index-eBxK3rs2.css +36 -0
  372. package/web-shell/assets/{index-BbMXfhNG.js → index-t7VBrUeD.js} +1 -1
  373. package/web-shell/assets/{infoDiagram-RXCK75RN-BEgfhUFN.js → infoDiagram-RXCK75RN-DcRUJbNi.js} +1 -1
  374. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-DCsMxQmc.js → ishikawaDiagram-5VMMS53U-CUPw-2_e.js} +1 -1
  375. package/web-shell/assets/{journeyDiagram-EYS64GPL-DyIEYoHz.js → journeyDiagram-EYS64GPL-yOHhZxkW.js} +1 -1
  376. package/web-shell/assets/{kanban-definition-3QL26DDD-CkxjqCNr.js → kanban-definition-3QL26DDD-CFUGBbqz.js} +1 -1
  377. package/web-shell/assets/{layout-BEWc0Al9.js → layout-BoilNfBU.js} +1 -1
  378. package/web-shell/assets/{linear-CNuNxirL.js → linear-DOuHaPrl.js} +1 -1
  379. package/web-shell/assets/{mermaid.core-DZBre674.js → mermaid.core-1G1fXWda.js} +6 -6
  380. package/web-shell/assets/{mindmap-definition-FBJOCRG2-CpafFz_F.js → mindmap-definition-FBJOCRG2-B8BhkrOX.js} +1 -1
  381. package/web-shell/assets/{pegDiagram-XKGWAZYB-DfZqk_dq.js → pegDiagram-XKGWAZYB-CipC5K1D.js} +1 -1
  382. package/web-shell/assets/{pieDiagram-E7YTZNPT-S0UWXlgC.js → pieDiagram-E7YTZNPT-CHBDFDUJ.js} +1 -1
  383. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-dd37_Ohj.js → quadrantDiagram-AXDQQJYC-_iiBkoZO.js} +1 -1
  384. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CH8NJZ7u.js → railroadDiagram-O6MQD6OU-Cx1peHDi.js} +1 -1
  385. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-CFdqWYih.js → requirementDiagram-EFPCY7ZU-CBRiPbdQ.js} +1 -1
  386. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CsddcEGD.js → sankeyDiagram-P5KCCOFB-TT6GcHaZ.js} +1 -1
  387. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BZ270mGw.js → sequenceDiagram-WJ2MYXX4-CWP42PNb.js} +1 -1
  388. package/web-shell/assets/{sizeCapture-X5ZJPWSS-CGaS4DBV.js → sizeCapture-X5ZJPWSS-Bp94roEG.js} +1 -1
  389. package/web-shell/assets/{stateDiagram-HBIQ2CUA-COpIzMu6.js → stateDiagram-HBIQ2CUA-0ftrzTAy.js} +1 -1
  390. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-PgAST0dK.js +1 -0
  391. package/web-shell/assets/{swimlanes-XN3QIQJK-CMF889m3.js → swimlanes-XN3QIQJK-D-FsenYJ.js} +1 -1
  392. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-BcWcB5bj.js +8 -0
  393. package/web-shell/assets/{timeline-definition-24CTP7MA-BelnxYz5.js → timeline-definition-24CTP7MA-Ctvrj28y.js} +1 -1
  394. package/web-shell/assets/{vennDiagram-4TSXK5OY-CU-NRqIB.js → vennDiagram-4TSXK5OY-5DZncjOt.js} +1 -1
  395. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CDNKqWh-.js → wardleyDiagram-VM6X3IG4-jZjYwPY7.js} +1 -1
  396. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-CLqguL5D.js → xychartDiagram-S5SC5T6Z-Ci6Q2C2_.js} +1 -1
  397. package/web-shell/index.html +29 -5
  398. package/chunks/chunk-V7RNNPGC.js +0 -44
  399. package/chunks/chunk-X35VIWWJ.js +0 -276
  400. package/chunks/workflow-3MABM53N.js +0 -2771
  401. package/chunks/workspace-providers-status-2FRLBZ5I.js +0 -119
  402. package/web-shell/assets/channel-uMMdTrYk.js +0 -1
  403. package/web-shell/assets/classDiagram-DTDB5LWJ-DcY-26Ig.js +0 -1
  404. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DcY-26Ig.js +0 -1
  405. package/web-shell/assets/index-Bu-rZoJ-.js +0 -2150
  406. package/web-shell/assets/index-CsPwZ1ut.css +0 -36
  407. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-D6qEVAji.js +0 -1
  408. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-mem5Jj4m.js +0 -8
  409. /package/chunks/{chunk-JA5CBKRP.js → chunk-7NXSVSFB.js} +0 -0
@@ -15,41 +15,21 @@ import {
15
15
  getToolInvalidReasons,
16
16
  isToolValid,
17
17
  normalizeModelIds,
18
+ pickAsciiArtTier,
19
+ resolveCustomBanner,
20
+ shortAsciiLogo,
18
21
  useFollowupSuggestionsCLI,
22
+ useGitBranchName,
19
23
  useLogger,
24
+ usePhraseCycler,
20
25
  useProviderSetupFlow,
21
26
  writeTerminalTitle
22
- } from "./chunk-CPJRFFPH.js";
23
- import "./chunk-CALNF3Z3.js";
24
- import "./chunk-4BLTSTF6.js";
27
+ } from "./chunk-IFHJIEMN.js";
28
+ import "./chunk-7XVQNDFB.js";
29
+ import "./chunk-AWMJRE5N.js";
25
30
  import {
26
31
  startPostRenderPrefetches
27
- } from "./chunk-XBLG564H.js";
28
- import {
29
- STATUS_LINE_PRESET_ITEMS,
30
- SessionStatsProvider,
31
- TOOL_DISPLAY_BY_NAME,
32
- TOOL_SUCCESS_RATE_HIGH,
33
- TOOL_SUCCESS_RATE_MEDIUM,
34
- flattenModelsBySource,
35
- formatTokenCount,
36
- getArenaStatusLabel,
37
- getStatusColor,
38
- keyMatchers,
39
- useSessionStats
40
- } from "./chunk-VH764G6B.js";
41
- import {
42
- ICON,
43
- applyCollapsePolicyAndSummary,
44
- buildResumedHistoryItems,
45
- coalesceFindingsHistoryItems,
46
- isFindingsListDisplay,
47
- shouldDisplayGoalStateCause,
48
- waitForGoalRuntime
49
- } from "./chunk-ULY4ISY2.js";
50
- import {
51
- stopAndGetCapturedInput
52
- } from "./chunk-EWNKP4V4.js";
32
+ } from "./chunk-VTBPMLRO.js";
53
33
  import {
54
34
  fireSessionDeleteHook
55
35
  } from "./chunk-L34XSHIZ.js";
@@ -57,7 +37,7 @@ import {
57
37
  MAX_SUGGESTIONS_TO_SHOW,
58
38
  handleAtCommand,
59
39
  sanitizeDisplayText
60
- } from "./chunk-QXXBW2G4.js";
40
+ } from "./chunk-72BGC7RT.js";
61
41
  import {
62
42
  BuiltinCommandLoader,
63
43
  BundledSkillLoader,
@@ -72,6 +52,7 @@ import {
72
52
  applyOutputStyleSelection,
73
53
  buildBackgroundWorkBlockedMessage,
74
54
  findMidInputSlashCommand,
55
+ formatApprovalModeName,
75
56
  formatUserPromptExpansionBlockedMessage,
76
57
  hasBlockingBackgroundWork,
77
58
  hasSlashCommandPathSeparator,
@@ -89,18 +70,33 @@ import {
89
70
  refreshExtensionContentRuntime,
90
71
  resetBackgroundStateForSessionSwitch,
91
72
  serializeUserPromptExpansionPrompt
92
- } from "./chunk-ODBNTMZW.js";
73
+ } from "./chunk-VID4BW52.js";
93
74
  import {
94
75
  EXTENSION_RELOAD_FAILED_REASON,
95
76
  ExtensionRefreshState
96
- } from "./chunk-WZ4YULVF.js";
77
+ } from "./chunk-BHR6IN2X.js";
78
+ import "./chunk-NYX53SV4.js";
79
+ import "./chunk-VLZOU6UH.js";
80
+ import {
81
+ STATUS_LINE_PRESET_ITEMS,
82
+ SessionStatsProvider,
83
+ TOOL_DISPLAY_BY_NAME,
84
+ TOOL_SUCCESS_RATE_HIGH,
85
+ TOOL_SUCCESS_RATE_MEDIUM,
86
+ flattenModelsBySource,
87
+ formatTokenCount,
88
+ getArenaStatusLabel,
89
+ getStatusColor,
90
+ keyMatchers,
91
+ useSessionStats
92
+ } from "./chunk-TWC3FHUI.js";
97
93
  import {
98
94
  formatSupportedModes,
99
95
  getCommandDisplayName,
100
96
  getCommandSourceBadge,
101
97
  getCommandSourceGroup,
102
98
  getCommandSubcommandNames
103
- } from "./chunk-QJAFSFYA.js";
99
+ } from "./chunk-KZ2CU2LH.js";
104
100
  import {
105
101
  calculateCost,
106
102
  computeSessionStats,
@@ -108,27 +104,34 @@ import {
108
104
  getSystemInfoFields,
109
105
  levelLabel,
110
106
  redactProxy
111
- } from "./chunk-W3ONSAYO.js";
112
- import {
113
- formatDuration
114
- } from "./chunk-3SH53ANB.js";
115
- import "./chunk-NYX53SV4.js";
107
+ } from "./chunk-3VPFA6L2.js";
116
108
  import {
117
109
  CTRL_EXIT_PROMPT_DURATION_MS,
118
110
  cleanupOldClipboardImages,
119
111
  clipboardHasImage,
120
112
  saveClipboardImage
121
- } from "./chunk-UYDQYDW2.js";
122
- import "./chunk-7L35FKPF.js";
113
+ } from "./chunk-CUK6F5UF.js";
123
114
  import "./chunk-4WGODMVR.js";
115
+ import {
116
+ ICON,
117
+ SPINNER_FRAMES,
118
+ SPINNER_INTERVAL_MS,
119
+ applyCollapsePolicyAndSummary,
120
+ buildResumedHistoryItems,
121
+ coalesceFindingsHistoryItems,
122
+ isFindingsListDisplay,
123
+ shouldDisplayGoalStateCause,
124
+ waitForGoalRuntime
125
+ } from "./chunk-PMS4FVLY.js";
126
+ import {
127
+ contextUsageLabel,
128
+ formatDuration,
129
+ formatPercentageUsed
130
+ } from "./chunk-LAP7X6EC.js";
124
131
  import "./chunk-4LIPOIXS.js";
125
132
  import {
126
133
  require_jsx_runtime
127
134
  } from "./chunk-SV5PQVQE.js";
128
- import {
129
- AUTO_THEME_NAME,
130
- themeManager
131
- } from "./chunk-2XRE4KE4.js";
132
135
  import {
133
136
  require_constants,
134
137
  require_react_reconciler
@@ -136,92 +139,98 @@ import {
136
139
  import {
137
140
  require_react
138
141
  } from "./chunk-5QWWOFGG.js";
139
- import "./chunk-W673V2H3.js";
140
142
  import {
141
- getErrorMessage as getErrorMessage2
142
- } from "./chunk-VEQBVJYH.js";
143
- import "./chunk-CG2PDIGD.js";
144
- import "./chunk-XQ4RDO5B.js";
143
+ stopAndGetCapturedInput
144
+ } from "./chunk-EWNKP4V4.js";
145
+ import "./chunk-WBCPROWX.js";
145
146
  import {
146
147
  setUpdateHandler
147
- } from "./chunk-VHPG7BH6.js";
148
+ } from "./chunk-J5PYQVD2.js";
148
149
  import "./chunk-EKTCKZV5.js";
149
- import "./chunk-LUVXLLMS.js";
150
+ import "./chunk-SAWPURIU.js";
151
+ import {
152
+ AUTO_THEME_NAME,
153
+ themeManager
154
+ } from "./chunk-2XRE4KE4.js";
155
+ import "./chunk-KFGPNCCY.js";
156
+ import "./chunk-6H67XLET.js";
157
+ import "./chunk-LY2GK2PR.js";
158
+ import {
159
+ getErrorMessage as getErrorMessage2
160
+ } from "./chunk-UGS62IR2.js";
161
+ import "./chunk-7XM6KEVW.js";
150
162
  import "./chunk-YAF2MQZ6.js";
151
163
  import "./chunk-24FVUD5P.js";
152
- import "./chunk-QLM7D7W3.js";
153
- import "./chunk-6H67XLET.js";
154
- import "./chunk-UULHYZ4W.js";
164
+ import "./chunk-HL2DQG3Y.js";
155
165
  import "./chunk-M3JGHRMQ.js";
156
166
  import "./chunk-VFFQAOPR.js";
157
- import "./chunk-ERXNTINK.js";
158
167
  import {
159
168
  cpLen,
160
169
  escapeAnsiCtrlCodes,
170
+ getAsciiArtWidth,
161
171
  getCachedStringWidth,
162
172
  sanitizeMultilineForDisplay,
163
173
  sanitizeSensitiveText,
164
174
  sanitizeTerminalText,
165
- toCodePoints
175
+ toCodePoints,
176
+ truncateToWidth
166
177
  } from "./chunk-47ECGEJC.js";
178
+ import "./chunk-ZT6EPPBY.js";
167
179
  import "./chunk-2MIN6GRR.js";
168
180
  import "./chunk-QHTIBUWB.js";
169
181
  import "./chunk-TXASDT2M.js";
182
+ import "./chunk-4VQBQLIZ.js";
170
183
  import "./chunk-PB7JBAHF.js";
171
184
  import "./chunk-UXEO7E3V.js";
172
- import "./chunk-4VQBQLIZ.js";
173
- import "./chunk-DMEUXLSS.js";
174
185
  import {
175
186
  isValidSessionId
176
187
  } from "./chunk-ZEZKIS2K.js";
177
188
  import {
178
189
  formatUnsupportedVoiceModelMessage,
179
190
  isSelectableVoiceModel
180
- } from "./chunk-NB3NDQQK.js";
191
+ } from "./chunk-Q2XLNLAV.js";
181
192
  import "./chunk-Y53DG2HA.js";
193
+ import "./chunk-FCQJLMA2.js";
194
+ import "./chunk-DMEUXLSS.js";
195
+ import {
196
+ createLoadedSettingsAdapter
197
+ } from "./chunk-BQOP3K76.js";
182
198
  import {
183
199
  getExtendedSystemInfo
184
- } from "./chunk-EA4NFWVG.js";
185
- import "./chunk-R2266LQ5.js";
200
+ } from "./chunk-6EOMQPTS.js";
201
+ import "./chunk-BTWGOKHU.js";
186
202
  import "./chunk-7U5G6JXI.js";
187
203
  import "./chunk-WCCLLK7X.js";
188
204
  import {
189
205
  getReasoningEffortsForConfig
190
- } from "./chunk-2OR32P5M.js";
191
- import "./chunk-7GZCCHJL.js";
206
+ } from "./chunk-6EDWSKN4.js";
207
+ import "./chunk-VHKOULAI.js";
192
208
  import "./chunk-HWVUSYSN.js";
193
- import "./chunk-5WC2ECUK.js";
194
- import "./chunk-4JKLPTV6.js";
195
- import "./chunk-ORREXWOM.js";
209
+ import "./chunk-FGRDUDCI.js";
210
+ import "./chunk-5ZJ3KK5J.js";
196
211
  import "./chunk-57OAHC2Y.js";
197
- import "./chunk-UXDVUFKU.js";
198
- import "./chunk-UHUT4IDM.js";
199
- import "./chunk-3BTHHXXE.js";
212
+ import "./chunk-FYZ5NZ3V.js";
213
+ import "./chunk-JOMCZWX7.js";
214
+ import "./chunk-CSHX5ZC4.js";
200
215
  import "./chunk-V6WHFGST.js";
201
- import {
202
- createLoadedSettingsAdapter
203
- } from "./chunk-NVS4Z6GT.js";
204
- import "./chunk-45ROPFQY.js";
205
- import "./chunk-2AUM35J5.js";
206
- import "./chunk-N6VQ37ZZ.js";
207
- import "./chunk-PSPAM24S.js";
208
- import "./chunk-6PLDPT2C.js";
216
+ import "./chunk-YKK2XXHF.js";
209
217
  import "./chunk-FYJ7W2PI.js";
210
218
  import "./chunk-STUJ7IMZ.js";
211
- import "./chunk-GM44O6F7.js";
219
+ import "./chunk-LEGNDA46.js";
220
+ import "./chunk-GDWE23OR.js";
212
221
  import "./chunk-GYTKQYDB.js";
213
- import "./chunk-ALMR3E6Q.js";
214
222
  import "./chunk-RKFGE7JH.js";
223
+ import "./chunk-CJ3DHN5I.js";
215
224
  import "./chunk-UDG5EZJI.js";
216
225
  import "./chunk-M5GB774H.js";
217
226
  import "./chunk-3VUENPWF.js";
218
- import "./chunk-XVTCSVBK.js";
219
- import "./chunk-IW6RQPQB.js";
220
- import "./chunk-5HBA2Z7V.js";
221
- import "./chunk-X35VIWWJ.js";
227
+ import "./chunk-NFXXBWSE.js";
228
+ import "./chunk-6NONRGYX.js";
229
+ import "./chunk-C4NLHK7X.js";
230
+ import "./chunk-IJOS26LH.js";
222
231
  import {
223
232
  loadMcpApprovals
224
- } from "./chunk-W7PXLIZJ.js";
233
+ } from "./chunk-GP47UR3M.js";
225
234
  import {
226
235
  getDefaultValue,
227
236
  getDialogSettingKeys,
@@ -233,66 +242,72 @@ import {
233
242
  getSettingDefinition,
234
243
  isAutoLanguage,
235
244
  isDefaultValue,
245
+ nextBooleanSettingValue,
236
246
  requiresRestart,
237
247
  saveModifiedSettings,
238
248
  setPendingSettingValueAny,
239
249
  validateSettingValue
240
- } from "./chunk-Q2F43WTJ.js";
250
+ } from "./chunk-OOLSYRZ7.js";
251
+ import "./chunk-RKUWKYED.js";
241
252
  import {
242
253
  TOGGLE_TYPES
243
- } from "./chunk-MWEF5MUK.js";
244
- import "./chunk-RKUWKYED.js";
254
+ } from "./chunk-IOUBOANU.js";
255
+ import "./chunk-YIU5PEAT.js";
256
+ import "./chunk-2AUM35J5.js";
257
+ import "./chunk-N6VQ37ZZ.js";
245
258
  import "./chunk-BW4333PP.js";
259
+ import "./chunk-VX63RJXE.js";
260
+ import "./chunk-6PLDPT2C.js";
246
261
  import "./chunk-IDS7MSUP.js";
247
262
  import {
248
263
  t
249
- } from "./chunk-CRZBDVP2.js";
264
+ } from "./chunk-74JEYK2C.js";
250
265
  import "./chunk-5EJZE3FP.js";
251
- import "./chunk-Y6ZWXM44.js";
252
- import "./chunk-QTNCGZHQ.js";
266
+ import "./chunk-XFSFZCM5.js";
253
267
  import "./chunk-2EAZ43JQ.js";
254
268
  import "./chunk-NF5J2WFA.js";
255
269
  import {
270
+ formatVersionLabel,
256
271
  getCliVersion
257
- } from "./chunk-ISPBBKJN.js";
272
+ } from "./chunk-ONGZNOIP.js";
258
273
  import "./chunk-W3N5XAZ6.js";
259
- import "./chunk-7RXOEUFF.js";
274
+ import "./chunk-KHIBLKNK.js";
260
275
  import "./chunk-NPQ5ZKRP.js";
261
276
  import "./chunk-MR3PXB6E.js";
262
277
  import {
263
- ALIBABA_PROVIDERS,
264
278
  FileSearchFactory,
265
279
  Fzf,
266
- THIRD_PARTY_PROVIDERS,
267
280
  applyProviderInstallPlan,
268
- buildInstallPlan,
269
281
  buildSessionRecoveryPlan,
282
+ generatePromptSuggestion
283
+ } from "./chunk-F2RKL5I2.js";
284
+ import "./chunk-GELRJXE2.js";
285
+ import "./chunk-32CM56LO.js";
286
+ import {
287
+ ALIBABA_PROVIDERS,
288
+ THIRD_PARTY_PROVIDERS,
289
+ buildInstallPlan,
270
290
  customProvider,
271
291
  findExistingProviderModels,
272
292
  findProviderByCredentials,
273
293
  findProviderById,
274
- generatePromptSuggestion,
275
294
  getDefaultModelIds,
276
295
  resolveMetadataKey
277
- } from "./chunk-BL6B2QS2.js";
278
- import "./chunk-GELRJXE2.js";
279
- import "./chunk-32CM56LO.js";
280
- import "./chunk-G5QLLD53.js";
281
- import "./chunk-XFSFZCM5.js";
282
- import "./chunk-2EKVPSIJ.js";
296
+ } from "./chunk-AEY27Z35.js";
297
+ import "./chunk-Y2MYW47X.js";
283
298
  import "./chunk-LJZSMWOH.js";
284
- import "./chunk-YZTGGCEE.js";
285
- import "./chunk-DCPRCDSR.js";
299
+ import "./chunk-TP2DUOB6.js";
300
+ import "./chunk-NUQVB25K.js";
301
+ import "./chunk-ZKZHSB5W.js";
302
+ import "./chunk-L2KF7HUE.js";
286
303
  import "./chunk-DJXSOEFB.js";
287
- import "./chunk-LN3WBOKU.js";
288
- import "./chunk-J3VZF2AL.js";
289
- import "./chunk-OWCFKIFQ.js";
290
- import "./chunk-ZPJWUGCS.js";
291
- import "./chunk-5Z4FCEPY.js";
304
+ import "./chunk-ZKYR7QS4.js";
305
+ import "./chunk-532WHF4F.js";
292
306
  import "./chunk-BUQN5LTI.js";
293
- import "./chunk-XDNFODER.js";
294
- import "./chunk-XI7RST4D.js";
295
- import "./chunk-VNOVK4I7.js";
307
+ import "./chunk-ZPJWUGCS.js";
308
+ import "./chunk-LK2WUCDQ.js";
309
+ import "./chunk-5FKZ7KFQ.js";
310
+ import "./chunk-FRVV5SSD.js";
296
311
  import {
297
312
  CoreToolScheduler,
298
313
  DISPLAY_MODE,
@@ -322,67 +337,75 @@ import {
322
337
  parseRule,
323
338
  parseVisionModelSetting,
324
339
  refreshMemoryInstruction
325
- } from "./chunk-43CI6YWJ.js";
340
+ } from "./chunk-JV5YASQA.js";
326
341
  import "./chunk-GOFAQQZA.js";
327
- import "./chunk-65I7S4Z3.js";
328
- import "./chunk-6HUXPLB5.js";
329
342
  import "./chunk-TWPJO254.js";
330
343
  import "./chunk-CQ35AJ4Z.js";
331
- import "./chunk-YHDGABDC.js";
332
- import "./chunk-LYT2OU7D.js";
333
- import "./chunk-B54PFQS5.js";
334
- import {
335
- writeRuntimeStatus
336
- } from "./chunk-HIXUUCGY.js";
337
- import "./chunk-6PVPNMXU.js";
344
+ import "./chunk-65I7S4Z3.js";
345
+ import "./chunk-6HUXPLB5.js";
346
+ import "./chunk-7CLLH5TI.js";
347
+ import "./chunk-XKBFYTCD.js";
338
348
  import {
339
349
  resolveModelId
340
- } from "./chunk-565U2ANU.js";
341
- import "./chunk-FDOGGKAA.js";
350
+ } from "./chunk-ZTTC7T4X.js";
351
+ import "./chunk-E4UEO3XM.js";
352
+ import "./chunk-IAEXTMED.js";
342
353
  import "./chunk-IRH27ZC2.js";
343
354
  import "./chunk-QHWCP53L.js";
344
355
  import "./chunk-F53KKZUD.js";
356
+ import "./chunk-O6GEWCJA.js";
357
+ import {
358
+ writeRuntimeStatus
359
+ } from "./chunk-36HCNKDS.js";
360
+ import "./chunk-6PVPNMXU.js";
361
+ import "./chunk-2SZH22YO.js";
345
362
  import {
346
363
  resolveBundleDir
347
- } from "./chunk-TRWQQBVH.js";
364
+ } from "./chunk-DTNV6UZY.js";
348
365
  import "./chunk-QJNDUTOL.js";
349
- import "./chunk-N6S3NUYJ.js";
350
- import "./chunk-O6GEWCJA.js";
366
+ import "./chunk-JXNIF2O5.js";
367
+ import "./chunk-CGKEUUYG.js";
368
+ import "./chunk-ELRMZTPF.js";
351
369
  import {
352
370
  formatMemoryUsage
353
371
  } from "./chunk-CHEIIBT3.js";
354
- import "./chunk-QAZ2MGYT.js";
372
+ import "./chunk-PLLIWEM3.js";
355
373
  import {
356
374
  registerSession
357
- } from "./chunk-B44JBZBB.js";
358
- import "./chunk-BF3RUIVP.js";
375
+ } from "./chunk-5GLDOLNQ.js";
376
+ import "./chunk-CH2YDT6X.js";
359
377
  import {
360
378
  APPROVAL_MODES
361
379
  } from "./chunk-JX6XHPTX.js";
362
- import "./chunk-CLKE4IY3.js";
363
380
  import "./chunk-ZSTCM3MX.js";
364
- import "./chunk-SOA4HKRJ.js";
365
381
  import "./chunk-MLXTMF7H.js";
366
- import "./chunk-3LPJ776W.js";
382
+ import "./chunk-LILGKQ4B.js";
367
383
  import "./chunk-3CZ2BQV6.js";
368
- import "./chunk-PQEISIKS.js";
369
- import "./chunk-VF6D6EGV.js";
370
- import "./chunk-H3Q3RSKZ.js";
384
+ import "./chunk-SAH4BD2J.js";
385
+ import "./chunk-CAAMI77K.js";
386
+ import "./chunk-U7O65WKL.js";
371
387
  import "./chunk-S6LOFUVP.js";
388
+ import "./chunk-FN3JNDRU.js";
389
+ import "./chunk-EUURTIV6.js";
390
+ import "./chunk-G6UUOCUT.js";
391
+ import {
392
+ isPathWithinRoot
393
+ } from "./chunk-IZ2U57NY.js";
394
+ import "./chunk-NUQ4GK5I.js";
395
+ import "./chunk-K2OJUPOE.js";
396
+ import "./chunk-B6BDT4RX.js";
372
397
  import "./chunk-NAVJD2PQ.js";
373
- import "./chunk-OFVAS4AR.js";
374
- import "./chunk-HNLMYDQE.js";
398
+ import "./chunk-ZGQIIGNQ.js";
399
+ import "./chunk-ZHECLGA6.js";
375
400
  import "./chunk-QHMLYMMS.js";
401
+ import "./chunk-VNOVK4I7.js";
376
402
  import "./chunk-CFKIH3D3.js";
377
- import {
378
- REASONING_EFFORT_TIERS,
379
- applyReasoningEffort
380
- } from "./chunk-6YEOCHSE.js";
403
+ import "./chunk-JL6APGBX.js";
381
404
  import "./chunk-DJ2GSRLV.js";
382
- import "./chunk-4ALNJDHL.js";
383
- import "./chunk-NOO4QFXM.js";
405
+ import "./chunk-L3DTX6U4.js";
406
+ import "./chunk-C75BXMPM.js";
384
407
  import "./chunk-KFFCDLKV.js";
385
- import "./chunk-7OCIQNKX.js";
408
+ import "./chunk-ZW2EUO2A.js";
386
409
  import {
387
410
  AuthEvent,
388
411
  ModelSlashCommandEvent,
@@ -406,53 +429,55 @@ import {
406
429
  shouldRunVisionBridge,
407
430
  splitImageParts,
408
431
  uiTelemetryService
409
- } from "./chunk-OIPUQE3S.js";
432
+ } from "./chunk-34ZYDM3F.js";
410
433
  import "./chunk-5ETULJLP.js";
411
- import "./chunk-XBVNNDPK.js";
434
+ import "./chunk-ZHKTKHMO.js";
412
435
  import "./chunk-VGC4I5JJ.js";
436
+ import "./chunk-EDIDYZBT.js";
437
+ import "./chunk-HD7O6WLV.js";
413
438
  import {
414
439
  getAllGeminiMdFilenames,
415
440
  getUnsupportedImageFormatWarning,
416
441
  isSupportedImageMimeType
417
442
  } from "./chunk-J6MB5ZHZ.js";
418
- import "./chunk-EDIDYZBT.js";
419
- import "./chunk-HD7O6WLV.js";
420
443
  import "./chunk-WZAD4ZNJ.js";
444
+ import {
445
+ REASONING_EFFORT_TIERS,
446
+ applyReasoningEffort
447
+ } from "./chunk-3FPYT6QC.js";
421
448
  import "./chunk-FPGTNKCP.js";
422
449
  import "./chunk-TIGXX4PA.js";
423
- import "./chunk-DTB5BXRG.js";
450
+ import "./chunk-RJZTX2OF.js";
424
451
  import "./chunk-XFFRI3WM.js";
425
- import "./chunk-4HOEU2OR.js";
452
+ import "./chunk-ERU3SDXT.js";
453
+ import "./chunk-EWJTAP3Y.js";
426
454
  import "./chunk-HHJLM3WQ.js";
427
455
  import {
428
456
  isBinary,
429
457
  redactUrlCredentials
430
- } from "./chunk-7VEYUF3N.js";
458
+ } from "./chunk-W5ZQMAEM.js";
431
459
  import "./chunk-74TONY4F.js";
432
- import "./chunk-E6TI726I.js";
433
- import "./chunk-4VY3ITHR.js";
434
- import "./chunk-O2FEO2CB.js";
435
- import "./chunk-G6UUOCUT.js";
436
- import {
437
- isPathWithinRoot
438
- } from "./chunk-IZ2U57NY.js";
460
+ import "./chunk-HUXPEUFL.js";
439
461
  import {
440
462
  ToolNames,
441
463
  isShellProgressData
442
- } from "./chunk-MWIO7MF6.js";
464
+ } from "./chunk-TP6FYVQT.js";
443
465
  import {
444
466
  Storage,
445
467
  createDebugLogger,
446
468
  escapePath,
447
469
  getErrorMessage,
448
- isDebugLogFileEnabled
470
+ isDebugLogFileEnabled,
471
+ shortenPath,
472
+ tildeifyPath
449
473
  } from "./chunk-ZAFYHRVY.js";
450
- import "./chunk-L6ZME3W7.js";
451
- import "./chunk-HRPFBHW7.js";
474
+ import "./chunk-TBWQLLFO.js";
475
+ import "./chunk-DMX7RF6E.js";
476
+ import "./chunk-TPKQIA7G.js";
452
477
  import {
453
478
  registerCleanup,
454
479
  runExitCleanup
455
- } from "./chunk-JDPBJIKI.js";
480
+ } from "./chunk-JDEW3V5B.js";
456
481
  import {
457
482
  profileCheckpoint
458
483
  } from "./chunk-QILD6R27.js";
@@ -461,6 +486,7 @@ import {
461
486
  writeStderrLine,
462
487
  writeStdoutLine
463
488
  } from "./chunk-7FA2II6K.js";
489
+ import "./chunk-UKMWZ5NS.js";
464
490
  import "./chunk-75DOP5OR.js";
465
491
  import "./chunk-DMTGGOSA.js";
466
492
  import "./chunk-YQ3U5MUC.js";
@@ -468,7 +494,6 @@ import "./chunk-EFT7OMDN.js";
468
494
  import "./chunk-MATEIJZF.js";
469
495
  import "./chunk-J5TTWBZK.js";
470
496
  import "./chunk-RVIGZBIT.js";
471
- import "./chunk-TBWQLLFO.js";
472
497
  import {
473
498
  init_esbuild_shims
474
499
  } from "./chunk-5O2XNYP6.js";
@@ -504,7 +529,7 @@ var require_jsx_dev_runtime = __commonJS({
504
529
 
505
530
  // packages/cli/src/ui/opentui/start-opentui-ui.tsx
506
531
  init_esbuild_shims();
507
- var import_react55 = __toESM(require_react(), 1);
532
+ var import_react59 = __toESM(require_react(), 1);
508
533
  import { stat as stat2 } from "node:fs/promises";
509
534
  import { basename as basename3 } from "node:path";
510
535
 
@@ -8533,12 +8558,12 @@ function resolveWorkerImportSpecifier(specifier) {
8533
8558
  if (isRuntimeSpecifier(specifier)) {
8534
8559
  return specifier;
8535
8560
  }
8536
- const nodePath2 = getBuiltinModule("node:path");
8561
+ const nodePath3 = getBuiltinModule("node:path");
8537
8562
  const nodeUrl = getBuiltinModule("node:url");
8538
- if (!nodePath2 || !nodeUrl) {
8563
+ if (!nodePath3 || !nodeUrl) {
8539
8564
  throw new Error(WORKER_UNAVAILABLE);
8540
8565
  }
8541
- const absolutePath = nodePath2.isAbsolute(specifier) ? specifier : nodePath2.resolve(specifier);
8566
+ const absolutePath = nodePath3.isAbsolute(specifier) ? specifier : nodePath3.resolve(specifier);
8542
8567
  return nodeUrl.pathToFileURL(absolutePath).href;
8543
8568
  }
8544
8569
  __name(resolveWorkerImportSpecifier, "resolveWorkerImportSpecifier");
@@ -41024,7 +41049,7 @@ __name(useUpdateNoticeFlush, "useUpdateNoticeFlush");
41024
41049
 
41025
41050
  // packages/cli/src/ui/opentui/opentui-app-shell.tsx
41026
41051
  init_esbuild_shims();
41027
- var import_react50 = __toESM(require_react(), 1);
41052
+ var import_react54 = __toESM(require_react(), 1);
41028
41053
 
41029
41054
  // packages/cli/src/ui/opentui/opentui-host.ts
41030
41055
  init_esbuild_shims();
@@ -41097,6 +41122,9 @@ function renderResultDisplay(display) {
41097
41122
  if (Array.isArray(o["ansiOutput"])) {
41098
41123
  return o["ansiOutput"].map((line) => line.map((t3) => t3.text ?? "").join("")).join("\n");
41099
41124
  }
41125
+ if (o["type"] === "ask_user_question_answers" && typeof o["text"] === "string") {
41126
+ return o["text"];
41127
+ }
41100
41128
  if (o["type"] === "plan_summary") {
41101
41129
  const message = typeof o["message"] === "string" ? o["message"] : "";
41102
41130
  const plan = typeof o["plan"] === "string" ? o["plan"] : "";
@@ -41393,6 +41421,11 @@ function createEventMapper(context) {
41393
41421
  out.push({ type: "stop-hook-message", message: ev.value });
41394
41422
  break;
41395
41423
  }
41424
+ case "goal_settlement_failed": {
41425
+ closeThought();
41426
+ out.push({ type: "warning", text: ev.value });
41427
+ break;
41428
+ }
41396
41429
  case "user_prompt_submit_blocked": {
41397
41430
  closeThought();
41398
41431
  const v3 = ev.value;
@@ -47184,7 +47217,7 @@ __name(filterSettingsItems, "filterSettingsItems");
47184
47217
  function nextToggleValue(definition, currentValue) {
47185
47218
  if (!definition || !TOGGLE_TYPES.has(definition.type)) return void 0;
47186
47219
  if (definition.type === "boolean") {
47187
- return !currentValue;
47220
+ return nextBooleanSettingValue(currentValue, definition.default);
47188
47221
  }
47189
47222
  if (definition.type === "enum" && definition.options) {
47190
47223
  const options = definition.options;
@@ -50492,6 +50525,12 @@ var PROTOCOL_ITEMS = [
50492
50525
  description: t("Standard OpenAI API format (most common)"),
50493
50526
  value: "openai" /* USE_OPENAI */
50494
50527
  },
50528
+ {
50529
+ key: "openai-responses" /* USE_OPENAI_RESPONSES */,
50530
+ label: t("OpenAI Responses"),
50531
+ description: t("OpenAI Responses API \u2014 streaming reasoning + tool use"),
50532
+ value: "openai-responses" /* USE_OPENAI_RESPONSES */
50533
+ },
50495
50534
  {
50496
50535
  key: "anthropic" /* USE_ANTHROPIC */,
50497
50536
  label: t("Anthropic-compatible"),
@@ -53464,9 +53503,212 @@ ${current}` : popped);
53464
53503
  }
53465
53504
  __name(OpenTuiInputPrompt, "OpenTuiInputPrompt");
53466
53505
 
53467
- // packages/cli/src/ui/opentui/dialogs-confirm.tsx
53506
+ // packages/cli/src/ui/opentui/opentui-header.tsx
53468
53507
  init_esbuild_shims();
53469
53508
  var import_react48 = __toESM(require_react(), 1);
53509
+ var LOGO_GRADIENT = ["#4796E4", "#847ACE", "#C3677F"];
53510
+ function lerpHex(a, b3, t3) {
53511
+ const pa = [1, 3, 5].map((i) => parseInt(a.slice(i, i + 2), 16));
53512
+ const pb = [1, 3, 5].map((i) => parseInt(b3.slice(i, i + 2), 16));
53513
+ return "#" + pa.map(
53514
+ (v3, i) => Math.round(v3 + (pb[i] - v3) * t3).toString(16).padStart(2, "0")
53515
+ ).join("");
53516
+ }
53517
+ __name(lerpHex, "lerpHex");
53518
+ function gradientAt(stops, t3) {
53519
+ if (stops.length === 0) return C2.accent;
53520
+ if (stops.length === 1) return stops[0];
53521
+ const seg = Math.min(stops.length - 1, Math.floor(t3 * (stops.length - 1)));
53522
+ const lt = t3 * (stops.length - 1) - seg;
53523
+ return lerpHex(stops[seg], stops[seg + 1], lt);
53524
+ }
53525
+ __name(gradientAt, "gradientAt");
53526
+ function GradientLogo({ logo }) {
53527
+ const lines = logo.replace(/^\n/, "").split("\n");
53528
+ const w3 = Math.max(...lines.map((l) => [...l].length), 1);
53529
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("box", { flexDirection: "column", flexShrink: 0, children: lines.map((line, li) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("box", { flexDirection: "row", children: [...line].map((ch, ci) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: gradientAt(LOGO_GRADIENT, ci / w3), children: ch }, ci)) }, li)) });
53530
+ }
53531
+ __name(GradientLogo, "GradientLogo");
53532
+ function buildBanner(config, settings, width) {
53533
+ const versionLabel = formatVersionLabel(config.getCliVersion() ?? "unknown");
53534
+ const cg = config.getContentGeneratorConfig();
53535
+ const model = config.getModelDisplayName();
53536
+ const targetDir = config.getTargetDir();
53537
+ let authLabel = "";
53538
+ try {
53539
+ if (cg?.authType) {
53540
+ const matched = findProviderByCredentials(cg.baseUrl, cg.apiKeyEnvKey);
53541
+ authLabel = matched && resolveMetadataKey(matched) && matched.label || (cg.authType === "qwen-oauth" ? "Qwen OAuth" : "API Key");
53542
+ }
53543
+ } catch {
53544
+ authLabel = "";
53545
+ }
53546
+ const authModelText = authLabel ? `${authLabel} | ${model}` : model;
53547
+ const hint = " (/model to change)";
53548
+ const custom = resolveCustomBanner(settings);
53549
+ const containerMarginX = 2;
53550
+ const logoGap = 2;
53551
+ const infoPanelChromeWidth = 2 + 1 * 2;
53552
+ const minInfoPanelWidth = 40 + infoPanelChromeWidth;
53553
+ const available = Math.max(0, width - containerMarginX * 2);
53554
+ const hasCustomArt = Boolean(custom.asciiArt.small || custom.asciiArt.large);
53555
+ const customTier = pickAsciiArtTier(
53556
+ custom.asciiArt.small,
53557
+ custom.asciiArt.large,
53558
+ available,
53559
+ logoGap,
53560
+ minInfoPanelWidth,
53561
+ getAsciiArtWidth
53562
+ );
53563
+ const displayLogo = customTier ?? (hasCustomArt ? "" : shortAsciiLogo);
53564
+ const logoWidth = getAsciiArtWidth(displayLogo);
53565
+ const showLogo = displayLogo !== "" && available >= logoWidth + logoGap + minInfoPanelWidth;
53566
+ const maxInfoPanelWidth = 60;
53567
+ const infoPanelWidth = showLogo ? Math.min(available - logoWidth - logoGap, maxInfoPanelWidth) : available;
53568
+ const maxPathLength = Math.max(0, infoPanelWidth - infoPanelChromeWidth);
53569
+ const infoPanelContentWidth = Math.max(
53570
+ 0,
53571
+ infoPanelWidth - infoPanelChromeWidth
53572
+ );
53573
+ const showModelHint = infoPanelContentWidth > 0 && getCachedStringWidth(authModelText + hint) <= infoPanelContentWidth;
53574
+ const shortenedPath = shortenPath(
53575
+ tildeifyPath(targetDir),
53576
+ Math.max(3, maxPathLength)
53577
+ );
53578
+ const displayPath = maxPathLength <= 0 ? "" : shortenedPath.length > maxPathLength ? shortenedPath.slice(0, maxPathLength) : shortenedPath;
53579
+ const infoPanel = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
53580
+ "box",
53581
+ {
53582
+ flexDirection: "column",
53583
+ borderStyle: "single",
53584
+ paddingX: 1,
53585
+ width: infoPanelWidth,
53586
+ flexGrow: showLogo ? 0 : 1,
53587
+ children: [
53588
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "row", children: [
53589
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.accent, attributes: 1, children: custom.title ?? ">_ Qwen Code" }),
53590
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: ` (${versionLabel})` })
53591
+ ] }),
53592
+ custom.subtitle ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: custom.subtitle }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { children: " " }),
53593
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "row", children: [
53594
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: authModelText }),
53595
+ showModelHint && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: hint })
53596
+ ] }),
53597
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: displayPath })
53598
+ ]
53599
+ }
53600
+ );
53601
+ if (!showLogo) {
53602
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
53603
+ "box",
53604
+ {
53605
+ marginLeft: containerMarginX,
53606
+ marginRight: containerMarginX,
53607
+ flexShrink: 0,
53608
+ children: infoPanel
53609
+ }
53610
+ );
53611
+ }
53612
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
53613
+ "box",
53614
+ {
53615
+ flexDirection: "row",
53616
+ alignItems: "center",
53617
+ marginLeft: containerMarginX,
53618
+ marginRight: containerMarginX,
53619
+ flexShrink: 0,
53620
+ children: [
53621
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(GradientLogo, { logo: displayLogo }),
53622
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("box", { width: logoGap }),
53623
+ infoPanel
53624
+ ]
53625
+ }
53626
+ );
53627
+ }
53628
+ __name(buildBanner, "buildBanner");
53629
+ function OpenTuiBanner({ config, settings }) {
53630
+ const { width } = useTerminalDimensions();
53631
+ const showBanner = !config.getScreenReader() && !settings.merged.ui?.hideBanner;
53632
+ const banner = (0, import_react48.useMemo)(
53633
+ () => showBanner ? buildBanner(config, settings, width) : null,
53634
+ [showBanner, config, settings, width]
53635
+ );
53636
+ return banner;
53637
+ }
53638
+ __name(OpenTuiBanner, "OpenTuiBanner");
53639
+
53640
+ // packages/cli/src/ui/opentui/opentui-footer.tsx
53641
+ init_esbuild_shims();
53642
+ var import_react50 = __toESM(require_react(), 1);
53643
+ import nodePath2 from "node:path";
53644
+ function Spinner() {
53645
+ const [frame, setFrame] = (0, import_react50.useState)(0);
53646
+ (0, import_react50.useEffect)(() => {
53647
+ const spin = setInterval(() => setFrame((f2) => f2 + 1), SPINNER_INTERVAL_MS);
53648
+ return () => clearInterval(spin);
53649
+ }, []);
53650
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("box", { width: 2, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: SPINNER_FRAMES[frame % SPINNER_FRAMES.length] }) });
53651
+ }
53652
+ __name(Spinner, "Spinner");
53653
+ function OpenTuiLoadingIndicator({
53654
+ streaming
53655
+ }) {
53656
+ const [elapsed, setElapsed] = (0, import_react50.useState)(0);
53657
+ const { width } = useTerminalDimensions();
53658
+ const phrase = usePhraseCycler(streaming, false);
53659
+ (0, import_react50.useEffect)(() => {
53660
+ if (!streaming) return;
53661
+ setElapsed(0);
53662
+ const tick = setInterval(() => setElapsed((s) => s + 1), 1e3);
53663
+ return () => clearInterval(tick);
53664
+ }, [streaming]);
53665
+ if (!streaming) return null;
53666
+ const suffix2 = t("({{time}}{{tokens}} \xB7 esc to cancel)", {
53667
+ time: `${elapsed}s`,
53668
+ tokens: ""
53669
+ });
53670
+ const phraseBudget = Math.max(0, width - 5 - getCachedStringWidth(suffix2));
53671
+ const line = [truncateToWidth(phrase, phraseBudget), suffix2].filter(Boolean).join(" ");
53672
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { paddingLeft: 1, paddingRight: 1, flexDirection: "row", children: [
53673
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Spinner, {}),
53674
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: line })
53675
+ ] });
53676
+ }
53677
+ __name(OpenTuiLoadingIndicator, "OpenTuiLoadingIndicator");
53678
+ function OpenTuiFooter({
53679
+ config,
53680
+ streaming,
53681
+ queueLength = 0,
53682
+ sessionName = null,
53683
+ approvalMode
53684
+ }) {
53685
+ const { width } = useTerminalDimensions();
53686
+ const targetDir = config.getTargetDir();
53687
+ const gitBranch = useGitBranchName(targetDir) ?? "";
53688
+ const footerModel = config.getModel();
53689
+ const promptTokenCount = uiTelemetryService.getLastPromptTokenCount();
53690
+ const contextWindowSize = config.getContentGeneratorConfig()?.contextWindowSize;
53691
+ const contextLabel = contextWindowSize && promptTokenCount > 0 ? ` \xB7 ${fmtTokens(contextWindowSize)} ${formatPercentageUsed(
53692
+ promptTokenCount / contextWindowSize
53693
+ )}${contextUsageLabel(width)}` : "";
53694
+ const footerLine1 = `\u279C ${nodePath2.basename(targetDir)}` + (sessionName ? ` \xB7 ${sessionName}` : "") + (gitBranch ? ` \xB7 git:(${gitBranch})` : "") + (footerModel ? ` \xB7 ${footerModel}` : "") + contextLabel;
53695
+ const hintSegments = [
53696
+ streaming ? t("Enter to steer \xB7 Ctrl+Q to queue") : null,
53697
+ approvalMode ? formatApprovalModeName(approvalMode) : null,
53698
+ queueLength > 0 ? `\u23F3 ${t("{{count}} queued", { count: String(queueLength) })}` : null
53699
+ ].filter((segment) => segment !== null);
53700
+ const footerLine2 = hintSegments.join(" \xB7 ");
53701
+ const rowBudget = Math.max(0, width - 2);
53702
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "column", paddingLeft: 1, paddingRight: 1, flexShrink: 0, children: [
53703
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: truncateToWidth(footerLine1, rowBudget) }),
53704
+ footerLine2 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: truncateToWidth(footerLine2, rowBudget) })
53705
+ ] });
53706
+ }
53707
+ __name(OpenTuiFooter, "OpenTuiFooter");
53708
+
53709
+ // packages/cli/src/ui/opentui/dialogs-confirm.tsx
53710
+ init_esbuild_shims();
53711
+ var import_react52 = __toESM(require_react(), 1);
53470
53712
 
53471
53713
  // packages/cli/src/ui/opentui/diff-render.ts
53472
53714
  init_esbuild_shims();
@@ -53587,7 +53829,7 @@ function buildOutcomeOptions(details) {
53587
53829
  }
53588
53830
  __name(buildOutcomeOptions, "buildOutcomeOptions");
53589
53831
  function DiffBody({ fileDiff }) {
53590
- const lines = (0, import_react48.useMemo)(() => renderDiffBody(fileDiff), [fileDiff]);
53832
+ const lines = (0, import_react52.useMemo)(() => renderDiffBody(fileDiff), [fileDiff]);
53591
53833
  const window = tailWindow(lines, MAX_BODY_ROWS);
53592
53834
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "column", children: [
53593
53835
  window.hiddenCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -53602,14 +53844,14 @@ function DiffBody({ fileDiff }) {
53602
53844
  }
53603
53845
  __name(DiffBody, "DiffBody");
53604
53846
  function TextBody({ text }) {
53605
- const [expanded, setExpanded] = (0, import_react48.useState)(false);
53847
+ const [expanded, setExpanded] = (0, import_react52.useState)(false);
53606
53848
  const { width, height } = useTerminalDimensions();
53607
- const rows = (0, import_react48.useMemo)(() => sanitizeTerminalText(text).split("\n"), [text]);
53608
- const window = (0, import_react48.useMemo)(
53849
+ const rows = (0, import_react52.useMemo)(() => sanitizeTerminalText(text).split("\n"), [text]);
53850
+ const window = (0, import_react52.useMemo)(
53609
53851
  () => headWindowPhysical(rows, width, MAX_BODY_ROWS),
53610
53852
  [rows, width]
53611
53853
  );
53612
- const expandedWindow = (0, import_react48.useMemo)(
53854
+ const expandedWindow = (0, import_react52.useMemo)(
53613
53855
  () => tailWindowPhysical(
53614
53856
  rows,
53615
53857
  width,
@@ -53691,7 +53933,7 @@ function ConfirmationBody({
53691
53933
  }
53692
53934
  __name(ConfirmationBody, "ConfirmationBody");
53693
53935
  function OutcomeSelect(props) {
53694
- const items = (0, import_react48.useMemo)(
53936
+ const items = (0, import_react52.useMemo)(
53695
53937
  () => props.options.map((option, index) => ({
53696
53938
  key: `${option.value}-${index}`,
53697
53939
  value: option.value,
@@ -53724,8 +53966,8 @@ __name(OutcomeSelect, "OutcomeSelect");
53724
53966
  function OpenTuiToolConfirmation(props) {
53725
53967
  const { call, onSettled } = props;
53726
53968
  const details = call.confirmationDetails;
53727
- const settledRef = (0, import_react48.useRef)(false);
53728
- const settle = (0, import_react48.useCallback)(
53969
+ const settledRef = (0, import_react52.useRef)(false);
53970
+ const settle = (0, import_react52.useCallback)(
53729
53971
  (outcome, payload) => {
53730
53972
  if (settledRef.current) return;
53731
53973
  settledRef.current = true;
@@ -53779,12 +54021,12 @@ function OpenTuiToolConfirmation(props) {
53779
54021
  __name(OpenTuiToolConfirmation, "OpenTuiToolConfirmation");
53780
54022
  function AskUserQuestionFlow(props) {
53781
54023
  const { details, onAnswered } = props;
53782
- const [index, setIndex] = (0, import_react48.useState)(0);
53783
- const [answers, setAnswers] = (0, import_react48.useState)({});
53784
- const [selected, setSelected] = (0, import_react48.useState)(/* @__PURE__ */ new Set());
54024
+ const [index, setIndex] = (0, import_react52.useState)(0);
54025
+ const [answers, setAnswers] = (0, import_react52.useState)({});
54026
+ const [selected, setSelected] = (0, import_react52.useState)(/* @__PURE__ */ new Set());
53785
54027
  const question = details.questions[index];
53786
54028
  const isMulti = question?.multiSelect === true;
53787
- const commitQuestion = (0, import_react48.useCallback)(
54029
+ const commitQuestion = (0, import_react52.useCallback)(
53788
54030
  (value) => {
53789
54031
  if (value === void 0) return;
53790
54032
  const nextAnswers = { ...answers, [index]: value };
@@ -53802,7 +54044,7 @@ function AskUserQuestionFlow(props) {
53802
54044
  },
53803
54045
  [answers, index, details.questions.length, onAnswered]
53804
54046
  );
53805
- const items = (0, import_react48.useMemo)(
54047
+ const items = (0, import_react52.useMemo)(
53806
54048
  () => (question?.options ?? []).map((option, i) => ({
53807
54049
  key: `${option.label}-${i}`,
53808
54050
  value: option.label
@@ -53837,7 +54079,7 @@ function AskUserQuestionFlow(props) {
53837
54079
  commitQuestion([...selected].join(", "));
53838
54080
  }
53839
54081
  });
53840
- (0, import_react48.useEffect)(() => {
54082
+ (0, import_react52.useEffect)(() => {
53841
54083
  if (details.questions.length === 0 || !question?.options?.length) {
53842
54084
  onAnswered(null);
53843
54085
  }
@@ -53880,7 +54122,7 @@ function AskUserQuestionFlow(props) {
53880
54122
  __name(AskUserQuestionFlow, "AskUserQuestionFlow");
53881
54123
  function OpenTuiShellConfirmation(props) {
53882
54124
  const { commands, onResolve } = props;
53883
- const options = (0, import_react48.useMemo)(
54125
+ const options = (0, import_react52.useMemo)(
53884
54126
  () => [
53885
54127
  {
53886
54128
  label: t("Yes, allow once"),
@@ -53927,7 +54169,7 @@ function OpenTuiShellConfirmation(props) {
53927
54169
  __name(OpenTuiShellConfirmation, "OpenTuiShellConfirmation");
53928
54170
  function OpenTuiActionConfirmation(props) {
53929
54171
  const { prompt, onResolve } = props;
53930
- const options = (0, import_react48.useMemo)(
54172
+ const options = (0, import_react52.useMemo)(
53931
54173
  () => [
53932
54174
  { key: "yes", value: true },
53933
54175
  { key: "no", value: false }
@@ -53995,22 +54237,22 @@ function OpenTuiApp(props) {
53995
54237
  onPromptSuggestionDismiss,
53996
54238
  onPromptSuggestionAbort
53997
54239
  } = props;
53998
- const [dialog, setDialog] = (0, import_react50.useState)(
54240
+ const [dialog, setDialog] = (0, import_react54.useState)(
53999
54241
  props.initialDialog ?? null
54000
54242
  );
54001
- const [noticeText, setNoticeText] = (0, import_react50.useState)(null);
54002
- const [commandList, setCommandList] = (0, import_react50.useState)(
54243
+ const [noticeText, setNoticeText] = (0, import_react54.useState)(null);
54244
+ const [commandList, setCommandList] = (0, import_react54.useState)(
54003
54245
  commands ?? []
54004
54246
  );
54005
- const notify = (0, import_react50.useCallback)((text) => setNoticeText(text), []);
54006
- const [shellModeActive, setShellModeActive] = (0, import_react50.useState)(false);
54007
- const shellControllersRef = (0, import_react50.useRef)(/* @__PURE__ */ new Set());
54247
+ const notify = (0, import_react54.useCallback)((text) => setNoticeText(text), []);
54248
+ const [shellModeActive, setShellModeActive] = (0, import_react54.useState)(false);
54249
+ const shellControllersRef = (0, import_react54.useRef)(/* @__PURE__ */ new Set());
54008
54250
  const { width: terminalWidth, height: terminalHeight } = useTerminalDimensions();
54009
- const toggleShellMode = (0, import_react50.useCallback)(
54251
+ const toggleShellMode = (0, import_react54.useCallback)(
54010
54252
  () => setShellModeActive((active) => !active),
54011
54253
  []
54012
54254
  );
54013
- const runShellCommand = (0, import_react50.useCallback)(
54255
+ const runShellCommand = (0, import_react54.useCallback)(
54014
54256
  (command) => {
54015
54257
  const emit = props.onTranscriptEvent;
54016
54258
  if (!emit) return;
@@ -54041,7 +54283,7 @@ function OpenTuiApp(props) {
54041
54283
  },
54042
54284
  [config, props.onTranscriptEvent, terminalWidth, terminalHeight]
54043
54285
  );
54044
- (0, import_react50.useEffect)(
54286
+ (0, import_react54.useEffect)(
54045
54287
  () => () => {
54046
54288
  for (const controller of shellControllersRef.current) {
54047
54289
  controller.abort();
@@ -54049,7 +54291,7 @@ function OpenTuiApp(props) {
54049
54291
  },
54050
54292
  []
54051
54293
  );
54052
- const handleSelectSetting = (0, import_react50.useCallback)((name) => {
54294
+ const handleSelectSetting = (0, import_react54.useCallback)((name) => {
54053
54295
  if (name === "ui.theme") setDialog({ dialog: "theme" });
54054
54296
  else if (name === "general.preferredEditor")
54055
54297
  setDialog({ dialog: "editor" });
@@ -54058,15 +54300,15 @@ function OpenTuiApp(props) {
54058
54300
  setDialog({ dialog: "model", mode: "vision" });
54059
54301
  else setDialog(null);
54060
54302
  }, []);
54061
- const fillComposer = (0, import_react50.useCallback)(
54303
+ const fillComposer = (0, import_react54.useCallback)(
54062
54304
  (text) => {
54063
54305
  injectCapturedInput(() => props.composerHandle?.current ?? null, text);
54064
54306
  },
54065
54307
  [props.composerHandle]
54066
54308
  );
54067
- const [modals, setModals] = (0, import_react50.useState)([]);
54068
- const modalSeq = (0, import_react50.useRef)(0);
54069
- const confirmations = (0, import_react50.useMemo)(
54309
+ const [modals, setModals] = (0, import_react54.useState)([]);
54310
+ const modalSeq = (0, import_react54.useRef)(0);
54311
+ const confirmations = (0, import_react54.useMemo)(
54070
54312
  () => ({
54071
54313
  presentShell: /* @__PURE__ */ __name((commandsToRun) => new Promise((resolve4) => {
54072
54314
  modalSeq.current += 1;
@@ -54091,14 +54333,14 @@ function OpenTuiApp(props) {
54091
54333
  []
54092
54334
  );
54093
54335
  const activeModal = modals[0] ?? null;
54094
- const closeShellModal = (0, import_react50.useCallback)(
54336
+ const closeShellModal = (0, import_react54.useCallback)(
54095
54337
  (modal, resolution) => {
54096
54338
  setModals((prev) => prev.filter((m3) => m3.id !== modal.id));
54097
54339
  modal.resolve(resolution);
54098
54340
  },
54099
54341
  []
54100
54342
  );
54101
- const closeActionModal = (0, import_react50.useCallback)(
54343
+ const closeActionModal = (0, import_react54.useCallback)(
54102
54344
  (modal, confirmed) => {
54103
54345
  setModals((prev) => prev.filter((m3) => m3.id !== modal.id));
54104
54346
  modal.resolve(confirmed);
@@ -54106,7 +54348,7 @@ function OpenTuiApp(props) {
54106
54348
  []
54107
54349
  );
54108
54350
  const activeToolCall = waitingToolCalls?.[0] ?? null;
54109
- const transcript = (0, import_react50.useMemo)(
54351
+ const transcript = (0, import_react54.useMemo)(
54110
54352
  () => ({
54111
54353
  reset: /* @__PURE__ */ __name((events) => onTranscriptReset?.(events), "reset"),
54112
54354
  // /clear semantics: a fresh transcript — the live turn's reset with an
@@ -54116,7 +54358,7 @@ function OpenTuiApp(props) {
54116
54358
  }),
54117
54359
  [onTranscriptReset, onTranscriptEvent]
54118
54360
  );
54119
- const host = (0, import_react50.useMemo)(
54361
+ const host = (0, import_react54.useMemo)(
54120
54362
  () => new OpenTuiAppHost({
54121
54363
  config,
54122
54364
  settings,
@@ -54145,27 +54387,27 @@ function OpenTuiApp(props) {
54145
54387
  getSessionStats
54146
54388
  ]
54147
54389
  );
54148
- (0, import_react50.useSyncExternalStore)(
54149
- (0, import_react50.useCallback)((cb) => host.subscribe(cb), [host]),
54150
- (0, import_react50.useCallback)(() => host.getVersion(), [host])
54390
+ (0, import_react54.useSyncExternalStore)(
54391
+ (0, import_react54.useCallback)((cb) => host.subscribe(cb), [host]),
54392
+ (0, import_react54.useCallback)(() => host.getVersion(), [host])
54151
54393
  );
54152
- (0, import_react50.useEffect)(() => {
54394
+ (0, import_react54.useEffect)(() => {
54153
54395
  host.setStreaming(!!streaming);
54154
54396
  }, [host, streaming]);
54155
- const gateway = (0, import_react50.useMemo)(() => new OpenTuiSlashGateway(), []);
54156
- const reloadRef = (0, import_react50.useRef)(null);
54157
- const deferredCommandsRef = (0, import_react50.useRef)([]);
54158
- const [deferredRevision, setDeferredRevision] = (0, import_react50.useState)(0);
54159
- const drainingRef = (0, import_react50.useRef)(false);
54160
- const streamingRef = (0, import_react50.useRef)(streaming);
54161
- (0, import_react50.useEffect)(() => {
54397
+ const gateway = (0, import_react54.useMemo)(() => new OpenTuiSlashGateway(), []);
54398
+ const reloadRef = (0, import_react54.useRef)(null);
54399
+ const deferredCommandsRef = (0, import_react54.useRef)([]);
54400
+ const [deferredRevision, setDeferredRevision] = (0, import_react54.useState)(0);
54401
+ const drainingRef = (0, import_react54.useRef)(false);
54402
+ const streamingRef = (0, import_react54.useRef)(streaming);
54403
+ (0, import_react54.useEffect)(() => {
54162
54404
  streamingRef.current = streaming;
54163
54405
  }, [streaming]);
54164
- const dialogRef = (0, import_react50.useRef)(dialog);
54165
- (0, import_react50.useEffect)(() => {
54406
+ const dialogRef = (0, import_react54.useRef)(dialog);
54407
+ (0, import_react54.useEffect)(() => {
54166
54408
  dialogRef.current = dialog;
54167
54409
  }, [dialog]);
54168
- (0, import_react50.useEffect)(() => {
54410
+ (0, import_react54.useEffect)(() => {
54169
54411
  const dispatcher = new OpenTuiSlashDispatcher(
54170
54412
  host,
54171
54413
  { config, settings, logger, extensionRefreshState },
@@ -54200,7 +54442,7 @@ function OpenTuiApp(props) {
54200
54442
  commands,
54201
54443
  extensionRefreshState
54202
54444
  ]);
54203
- const applyOutcome = (0, import_react50.useCallback)(
54445
+ const applyOutcome = (0, import_react54.useCallback)(
54204
54446
  (outcome) => {
54205
54447
  switch (outcome.kind) {
54206
54448
  case "handled":
@@ -54238,7 +54480,7 @@ function OpenTuiApp(props) {
54238
54480
  },
54239
54481
  [onSubmitPrompt, onQuit, onInterrupt, onPopQueue, notify]
54240
54482
  );
54241
- const onSubmit = (0, import_react50.useCallback)(
54483
+ const onSubmit = (0, import_react54.useCallback)(
54242
54484
  async (text, imagePaths) => {
54243
54485
  setNoticeText(null);
54244
54486
  const submission = normalizeQuitSubmission(text);
@@ -54296,7 +54538,7 @@ function OpenTuiApp(props) {
54296
54538
  runShellCommand
54297
54539
  ]
54298
54540
  );
54299
- (0, import_react50.useEffect)(() => {
54541
+ (0, import_react54.useEffect)(() => {
54300
54542
  if (isExitInProgress()) return;
54301
54543
  if (streaming || dialog || shellControllersRef.current.size > 0 || deferredCommandsRef.current.length === 0) {
54302
54544
  return;
@@ -54363,7 +54605,7 @@ function OpenTuiApp(props) {
54363
54605
  onSubmitPrompt,
54364
54606
  runShellCommand
54365
54607
  ]);
54366
- const userMessages = (0, import_react50.useMemo)(
54608
+ const userMessages = (0, import_react54.useMemo)(
54367
54609
  () => host.getHistory().filter((item) => item.type === "user").map((item) => item.text ?? ""),
54368
54610
  // eslint-disable-next-line react-hooks/exhaustive-deps
54369
54611
  [host, host.getVersion()]
@@ -54374,6 +54616,7 @@ function OpenTuiApp(props) {
54374
54616
  recordForExitEcho: true,
54375
54617
  onError: (error) => onRenderError?.(error),
54376
54618
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "column", flexGrow: 1, flexShrink: 0, children: [
54619
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(OpenTuiBanner, { config, settings }),
54377
54620
  renderMain ? renderMain() : null,
54378
54621
  !dialog && !activeModal && !activeToolCall && updateNotice ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { children: updateNotice }) : null,
54379
54622
  noticeText ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { children: noticeText }) : null,
@@ -54414,26 +54657,39 @@ function OpenTuiApp(props) {
54414
54657
  availableTerminalHeight: props.availableTerminalHeight
54415
54658
  },
54416
54659
  dialog.dialog
54417
- ) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
54418
- OpenTuiInputPrompt,
54660
+ ) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
54661
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(OpenTuiLoadingIndicator, { streaming: Boolean(streaming) }),
54662
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
54663
+ OpenTuiInputPrompt,
54664
+ {
54665
+ onSubmit: (text, imagePaths) => {
54666
+ void onSubmit(text, imagePaths);
54667
+ },
54668
+ userMessages,
54669
+ config,
54670
+ focus: true,
54671
+ streaming,
54672
+ onInterrupt,
54673
+ approvalMode,
54674
+ queueLength,
54675
+ onPopQueue,
54676
+ composerHandle: props.composerHandle,
54677
+ promptSuggestion,
54678
+ onPromptSuggestionDismiss,
54679
+ onPromptSuggestionAbort,
54680
+ shellModeActive,
54681
+ onToggleShellMode: toggleShellMode
54682
+ }
54683
+ )
54684
+ ] }),
54685
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
54686
+ OpenTuiFooter,
54419
54687
  {
54420
- onSubmit: (text, imagePaths) => {
54421
- void onSubmit(text, imagePaths);
54422
- },
54423
- userMessages,
54424
54688
  config,
54425
- focus: true,
54426
- streaming,
54427
- onInterrupt,
54689
+ streaming: Boolean(streaming),
54428
54690
  approvalMode,
54429
54691
  queueLength,
54430
- onPopQueue,
54431
- composerHandle: props.composerHandle,
54432
- promptSuggestion,
54433
- onPromptSuggestionDismiss,
54434
- onPromptSuggestionAbort,
54435
- shellModeActive,
54436
- onToggleShellMode: toggleShellMode
54692
+ sessionName: host.sessionName
54437
54693
  }
54438
54694
  )
54439
54695
  ] })
@@ -54444,7 +54700,7 @@ __name(OpenTuiApp, "OpenTuiApp");
54444
54700
 
54445
54701
  // packages/cli/src/ui/opentui/followup-generation.ts
54446
54702
  init_esbuild_shims();
54447
- var import_react52 = __toESM(require_react(), 1);
54703
+ var import_react56 = __toESM(require_react(), 1);
54448
54704
  function useFollowupSuggestionGeneration({
54449
54705
  config,
54450
54706
  settings,
@@ -54452,12 +54708,12 @@ function useFollowupSuggestionGeneration({
54452
54708
  items,
54453
54709
  waitingCalls
54454
54710
  }) {
54455
- const [promptSuggestion, setPromptSuggestion] = (0, import_react52.useState)(null);
54456
- const abortRef = (0, import_react52.useRef)(null);
54457
- const streamingRef = (0, import_react52.useRef)(streaming);
54711
+ const [promptSuggestion, setPromptSuggestion] = (0, import_react56.useState)(null);
54712
+ const abortRef = (0, import_react56.useRef)(null);
54713
+ const streamingRef = (0, import_react56.useRef)(streaming);
54458
54714
  const followupEnabled = settings.merged.ui?.enableFollowupSuggestions !== false;
54459
54715
  const cacheSharingEnabled = settings.merged.ui?.enableCacheSharing !== false;
54460
- (0, import_react52.useEffect)(() => {
54716
+ (0, import_react56.useEffect)(() => {
54461
54717
  const wasStreaming = streamingRef.current;
54462
54718
  if (!followupEnabled || wasStreaming !== streaming) {
54463
54719
  abortRef.current?.abort();
@@ -54494,7 +54750,7 @@ function useFollowupSuggestionGeneration({
54494
54750
  items,
54495
54751
  waitingCalls
54496
54752
  ]);
54497
- (0, import_react52.useEffect)(
54753
+ (0, import_react56.useEffect)(
54498
54754
  () => () => {
54499
54755
  abortRef.current?.abort();
54500
54756
  },
@@ -54646,7 +54902,7 @@ var OpenTuiRuntime = class _OpenTuiRuntime {
54646
54902
 
54647
54903
  // packages/cli/src/ui/opentui/transcript-view.tsx
54648
54904
  init_esbuild_shims();
54649
- var import_react53 = __toESM(require_react(), 1);
54905
+ var import_react57 = __toESM(require_react(), 1);
54650
54906
 
54651
54907
  // packages/cli/src/ui/opentui/live-session-model.ts
54652
54908
  init_esbuild_shims();
@@ -55844,7 +56100,7 @@ function AssistantRow({
55844
56100
  }
55845
56101
  __name(AssistantRow, "AssistantRow");
55846
56102
  function ThinkingRow({ text, done }) {
55847
- const [expanded, setExpanded] = (0, import_react53.useState)(false);
56103
+ const [expanded, setExpanded] = (0, import_react57.useState)(false);
55848
56104
  const meta = thinkingMeta(done, expanded, false);
55849
56105
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
55850
56106
  "box",
@@ -55995,8 +56251,8 @@ function RetryRows({
55995
56251
  delayMs,
55996
56252
  startedAt
55997
56253
  }) {
55998
- const [now, setNow] = (0, import_react53.useState)(() => Date.now());
55999
- (0, import_react53.useEffect)(() => {
56254
+ const [now, setNow] = (0, import_react57.useState)(() => Date.now());
56255
+ (0, import_react57.useEffect)(() => {
56000
56256
  const timer = setInterval(() => setNow(Date.now()), 1e3);
56001
56257
  return () => clearInterval(timer);
56002
56258
  }, []);
@@ -56240,7 +56496,7 @@ __name(ArenaSessionRow, "ArenaSessionRow");
56240
56496
 
56241
56497
  // packages/cli/src/ui/opentui/live-turn.ts
56242
56498
  init_esbuild_shims();
56243
- var import_react54 = __toESM(require_react(), 1);
56499
+ var import_react58 = __toESM(require_react(), 1);
56244
56500
  import { readFileSync } from "node:fs";
56245
56501
 
56246
56502
  // packages/cli/src/ui/opentui/live-session.ts
@@ -56840,43 +57096,43 @@ function foldBatch(events) {
56840
57096
  __name(foldBatch, "foldBatch");
56841
57097
  function useOpenTuiLiveTurn(options) {
56842
57098
  const { config } = options;
56843
- const [items, setItems] = (0, import_react54.useState)([]);
56844
- const [streaming, setStreaming] = (0, import_react54.useState)(false);
56845
- const [waitingCalls, setWaitingCalls] = (0, import_react54.useState)(
57099
+ const [items, setItems] = (0, import_react58.useState)([]);
57100
+ const [streaming, setStreaming] = (0, import_react58.useState)(false);
57101
+ const [waitingCalls, setWaitingCalls] = (0, import_react58.useState)(
56846
57102
  []
56847
57103
  );
56848
- const queueRef = (0, import_react54.useRef)([]);
56849
- const [queueLength, setQueueLength] = (0, import_react54.useState)(0);
56850
- const abortRef = (0, import_react54.useRef)(null);
56851
- const streamingRef = (0, import_react54.useRef)(false);
56852
- const turnSeqRef = (0, import_react54.useRef)(0);
56853
- const waitingCallsRef = (0, import_react54.useRef)([]);
57104
+ const queueRef = (0, import_react58.useRef)([]);
57105
+ const [queueLength, setQueueLength] = (0, import_react58.useState)(0);
57106
+ const abortRef = (0, import_react58.useRef)(null);
57107
+ const streamingRef = (0, import_react58.useRef)(false);
57108
+ const turnSeqRef = (0, import_react58.useRef)(0);
57109
+ const waitingCallsRef = (0, import_react58.useRef)([]);
56854
57110
  waitingCallsRef.current = waitingCalls;
56855
- const setBusy = (0, import_react54.useCallback)((busy) => {
57111
+ const setBusy = (0, import_react58.useCallback)((busy) => {
56856
57112
  if (streamingRef.current === busy) return;
56857
57113
  streamingRef.current = busy;
56858
57114
  setStreaming(busy);
56859
57115
  }, []);
56860
- const apply = (0, import_react54.useCallback)((ev) => {
57116
+ const apply = (0, import_react58.useCallback)((ev) => {
56861
57117
  setItems((prev) => foldLiveEvent(prev, ev));
56862
57118
  }, []);
56863
- const pushQueue = (0, import_react54.useCallback)((text) => {
57119
+ const pushQueue = (0, import_react58.useCallback)((text) => {
56864
57120
  queueRef.current.push(text);
56865
57121
  setQueueLength(queueRef.current.length);
56866
57122
  }, []);
56867
- const drainQueue = (0, import_react54.useCallback)(() => {
57123
+ const drainQueue = (0, import_react58.useCallback)(() => {
56868
57124
  const drained = queueRef.current;
56869
57125
  queueRef.current = [];
56870
57126
  setQueueLength(0);
56871
57127
  return drained;
56872
57128
  }, []);
56873
- const restoreQueue = (0, import_react54.useCallback)((texts) => {
57129
+ const restoreQueue = (0, import_react58.useCallback)((texts) => {
56874
57130
  const restored = texts.map((text) => text.trim()).filter(Boolean);
56875
57131
  if (restored.length === 0) return;
56876
57132
  queueRef.current = [...restored, ...queueRef.current];
56877
57133
  setQueueLength(queueRef.current.length);
56878
57134
  }, []);
56879
- const runTurn = (0, import_react54.useCallback)(
57135
+ const runTurn = (0, import_react58.useCallback)(
56880
57136
  async (prompt, promptId, turnOptions) => {
56881
57137
  const seq = ++turnSeqRef.current;
56882
57138
  const abort = new AbortController();
@@ -56933,7 +57189,7 @@ function useOpenTuiLiveTurn(options) {
56933
57189
  },
56934
57190
  [config, apply, drainQueue, restoreQueue, setBusy]
56935
57191
  );
56936
- const submit = (0, import_react54.useCallback)(
57192
+ const submit = (0, import_react58.useCallback)(
56937
57193
  (content, imagePaths, options2) => {
56938
57194
  const text = typeof content === "string" ? content : collectText(normalizeParts(content));
56939
57195
  if (streamingRef.current) {
@@ -56957,10 +57213,10 @@ function useOpenTuiLiveTurn(options) {
56957
57213
  },
56958
57214
  [config, apply, pushQueue, runTurn]
56959
57215
  );
56960
- const interrupt = (0, import_react54.useCallback)(() => {
57216
+ const interrupt = (0, import_react58.useCallback)(() => {
56961
57217
  abortRef.current?.abort();
56962
57218
  }, []);
56963
- const resetTranscript = (0, import_react54.useCallback)(
57219
+ const resetTranscript = (0, import_react58.useCallback)(
56964
57220
  (events) => {
56965
57221
  turnSeqRef.current += 1;
56966
57222
  const abort = abortRef.current;
@@ -56979,14 +57235,14 @@ function useOpenTuiLiveTurn(options) {
56979
57235
  },
56980
57236
  [setBusy]
56981
57237
  );
56982
- const settleWaitingCall = (0, import_react54.useCallback)((callId) => {
57238
+ const settleWaitingCall = (0, import_react58.useCallback)((callId) => {
56983
57239
  setWaitingCalls((prev) => prev.filter((c2) => c2.callId !== callId));
56984
57240
  }, []);
56985
- const popQueue = (0, import_react54.useCallback)(() => {
57241
+ const popQueue = (0, import_react58.useCallback)(() => {
56986
57242
  if (queueRef.current.length === 0) return null;
56987
57243
  return drainQueue().join("\n\n");
56988
57244
  }, [drainQueue]);
56989
- (0, import_react54.useEffect)(() => () => abortRef.current?.abort(), []);
57245
+ (0, import_react58.useEffect)(() => () => abortRef.current?.abort(), []);
56990
57246
  return {
56991
57247
  items,
56992
57248
  streaming,
@@ -57076,29 +57332,29 @@ function OpenTuiEntryApp({
57076
57332
  items: live.items,
57077
57333
  waitingCalls: live.waitingCalls
57078
57334
  });
57079
- const statsRef = (0, import_react55.useRef)(stats);
57080
- (0, import_react55.useEffect)(() => {
57335
+ const statsRef = (0, import_react59.useRef)(stats);
57336
+ (0, import_react59.useEffect)(() => {
57081
57337
  statsRef.current = stats;
57082
57338
  }, [stats]);
57083
- const getSessionStats = (0, import_react55.useCallback)(() => statsRef.current, []);
57084
- const composerHandle = (0, import_react55.useRef)(null);
57085
- (0, import_react55.useEffect)(
57339
+ const getSessionStats = (0, import_react59.useCallback)(() => statsRef.current, []);
57340
+ const composerHandle = (0, import_react59.useRef)(null);
57341
+ (0, import_react59.useEffect)(
57086
57342
  () => armCapturedInputInjection(() => composerHandle.current, capturedText),
57087
57343
  [capturedText]
57088
57344
  );
57089
- (0, import_react55.useEffect)(() => {
57345
+ (0, import_react59.useEffect)(() => {
57090
57346
  const resumeEvents = resumeEventsFromConfig(config);
57091
57347
  if (resumeEvents) resetTranscript(resumeEvents);
57092
57348
  for (const warning of startupWarnings) {
57093
57349
  applyEvent({ type: "warning", text: warning });
57094
57350
  }
57095
57351
  }, []);
57096
- const [updateNotice, setUpdateNotice] = (0, import_react55.useState)(null);
57097
- const isIdleRef = (0, import_react55.useRef)(true);
57098
- (0, import_react55.useEffect)(() => {
57352
+ const [updateNotice, setUpdateNotice] = (0, import_react59.useState)(null);
57353
+ const isIdleRef = (0, import_react59.useRef)(true);
57354
+ (0, import_react59.useEffect)(() => {
57099
57355
  isIdleRef.current = !live.streaming;
57100
57356
  }, [live.streaming]);
57101
- const addUpdateItem = (0, import_react55.useCallback)(
57357
+ const addUpdateItem = (0, import_react59.useCallback)(
57102
57358
  (item) => {
57103
57359
  if (item.type === "info" /* INFO */) {
57104
57360
  applyEvent({ type: "info", text: item.text });
@@ -57110,22 +57366,22 @@ function OpenTuiEntryApp({
57110
57366
  },
57111
57367
  [applyEvent]
57112
57368
  );
57113
- const setUpdateInfo = (0, import_react55.useCallback)((info) => {
57369
+ const setUpdateInfo = (0, import_react59.useCallback)((info) => {
57114
57370
  setUpdateNotice(info?.message ?? null);
57115
57371
  }, []);
57116
57372
  useUpdateNoticeFlush(addUpdateItem, setUpdateInfo, isIdleRef, live.streaming);
57117
- const [exitHint, setExitHint] = (0, import_react55.useState)(null);
57118
- const exitGuard = (0, import_react55.useMemo)(
57373
+ const [exitHint, setExitHint] = (0, import_react59.useState)(null);
57374
+ const exitGuard = (0, import_react59.useMemo)(
57119
57375
  () => createExitGuard({ onWindowExpired: /* @__PURE__ */ __name(() => setExitHint(null), "onWindowExpired") }),
57120
57376
  []
57121
57377
  );
57122
- (0, import_react55.useEffect)(() => () => exitGuard.dispose(), [exitGuard]);
57123
- const streamingRef = (0, import_react55.useRef)(live.streaming);
57124
- (0, import_react55.useEffect)(() => {
57378
+ (0, import_react59.useEffect)(() => () => exitGuard.dispose(), [exitGuard]);
57379
+ const streamingRef = (0, import_react59.useRef)(live.streaming);
57380
+ (0, import_react59.useEffect)(() => {
57125
57381
  streamingRef.current = live.streaming;
57126
57382
  }, [live.streaming]);
57127
- const waitingCallsRef = (0, import_react55.useRef)(live.waitingCalls);
57128
- (0, import_react55.useEffect)(() => {
57383
+ const waitingCallsRef = (0, import_react59.useRef)(live.waitingCalls);
57384
+ (0, import_react59.useEffect)(() => {
57129
57385
  waitingCallsRef.current = live.waitingCalls;
57130
57386
  }, [live.waitingCalls]);
57131
57387
  useKeyboard((key) => {
@@ -57148,7 +57404,7 @@ function OpenTuiEntryApp({
57148
57404
  setExitHint(exitGuardHint(guardKey));
57149
57405
  }
57150
57406
  });
57151
- const renderMain = (0, import_react55.useCallback)(
57407
+ const renderMain = (0, import_react59.useCallback)(
57152
57408
  () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "column", flexGrow: 1, children: [
57153
57409
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
57154
57410
  OpenTuiTranscriptView,
@@ -57162,7 +57418,7 @@ function OpenTuiEntryApp({
57162
57418
  ] }),
57163
57419
  [live.items, width, height, exitHint]
57164
57420
  );
57165
- const handleRenderError = (0, import_react55.useCallback)(
57421
+ const handleRenderError = (0, import_react59.useCallback)(
57166
57422
  (error) => {
57167
57423
  debugLogger4.error(
57168
57424
  `[FATAL_RENDER_ERROR] ${error.message}
@@ -57174,15 +57430,15 @@ ${error.stack ?? ""}`
57174
57430
  },
57175
57431
  [config]
57176
57432
  );
57177
- const handleStartNewSession = (0, import_react55.useCallback)(
57433
+ const handleStartNewSession = (0, import_react59.useCallback)(
57178
57434
  (sessionId) => startNewSession(sessionId),
57179
57435
  [startNewSession]
57180
57436
  );
57181
- const handleSubmitPrompt = (0, import_react55.useCallback)(
57437
+ const handleSubmitPrompt = (0, import_react59.useCallback)(
57182
57438
  (content, imagePaths, options) => submit(content, imagePaths, options),
57183
57439
  [submit]
57184
57440
  );
57185
- const handleQuit = (0, import_react55.useCallback)(() => {
57441
+ const handleQuit = (0, import_react59.useCallback)(() => {
57186
57442
  void exitSession(config, 0);
57187
57443
  }, [config]);
57188
57444
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -57253,7 +57509,7 @@ async function startOpenTuiUI(config, settings, startupWarnings, workspaceRoot =
57253
57509
  // children must sit in the props object: the provider declares it as a
57254
57510
  // required prop, which createElement's rest-children overloads can't fill.
57255
57511
  // eslint-disable-next-line react/no-children-prop
57256
- (0, import_react55.createElement)(SessionStatsProvider, {
57512
+ (0, import_react59.createElement)(SessionStatsProvider, {
57257
57513
  sessionId: config.getSessionId(),
57258
57514
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
57259
57515
  OpenTuiEntryApp,
@@ -57312,7 +57568,8 @@ qwen --resume ${sessionId}`
57312
57568
  registerSession({
57313
57569
  sessionId: config.getSessionId(),
57314
57570
  cwd: config.getTargetDir(),
57315
- qwenVersion: version
57571
+ qwenVersion: version,
57572
+ kind: "tui"
57316
57573
  })
57317
57574
  );
57318
57575
  registerCleanup(() => config.unregisterSessionRegistry());