@qwen-code/qwen-code 0.21.12-preview.4 → 0.21.12

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 (337) hide show
  1. package/bundled/qc-helper/docs/features/channels/overview.md +1 -1
  2. package/bundled/qc-helper/docs/features/channels/plugins.md +11 -11
  3. package/bundled/qc-helper/docs/qwen-serve.md +65 -0
  4. package/chunks/{MaxSizedBox-GFI5RYXH.js → MaxSizedBox-ZSJJ2D5S.js} +45 -45
  5. package/chunks/{StandaloneSessionPicker-JFWRY4V2.js → StandaloneSessionPicker-WHUHQXSA.js} +64 -65
  6. package/chunks/{acp-startup-profiler-TVI2OVUN.js → acp-startup-profiler-SVPUHLXV.js} +2 -2
  7. package/chunks/{acpAgent-7YC6SNIS.js → acpAgent-7JOAESF5.js} +378 -201
  8. package/chunks/{agent-43KVQSB5.js → agent-E6V3VXQR.js} +41 -41
  9. package/chunks/{agent-headless-P2N7PDGQ.js → agent-headless-OEQNFOMH.js} +41 -41
  10. package/chunks/{anthropicContentGenerator-ZBBX5VMY.js → anthropicContentGenerator-YDT4EOKO.js} +25 -25
  11. package/chunks/{artifact-tool-RWJAKYBZ.js → artifact-tool-4GCQQDZI.js} +5 -5
  12. package/chunks/{askUserQuestion-IQCA2SOX.js → askUserQuestion-HZJJLR3Z.js} +2 -2
  13. package/chunks/{bridge-ZBMNALLA.js → bridge-NPBV53UA.js} +47 -47
  14. package/chunks/{build-RZS65IIX.js → build-GDBLPA24.js} +1 -1
  15. package/chunks/{channel-management-service-5ZYX4ROW.js → channel-management-service-OADNGQM3.js} +4 -4
  16. package/chunks/{channel-settings-store-ZJWM7EDP.js → channel-settings-store-4ODLJ4X2.js} +48 -48
  17. package/chunks/{channel-worker-group-QFJKXO7R.js → channel-worker-group-IHBIHQ45.js} +7 -7
  18. package/chunks/{channel-worker-manager-PWD2UURZ.js → channel-worker-manager-GEHYJ5AE.js} +7 -7
  19. package/chunks/{channel-worker-supervisor-XQJBGFCM.js → channel-worker-supervisor-ZJIIWM4I.js} +5 -5
  20. package/chunks/{chunk-LHOG4E6Y.js → chunk-22C7BQ6D.js} +3 -3
  21. package/chunks/{chunk-2SB4SLKC.js → chunk-2IIJTXYF.js} +1 -3
  22. package/chunks/{chunk-QSMZHJ62.js → chunk-2IVYL3IF.js} +1 -1
  23. package/chunks/{chunk-QEWAHAW2.js → chunk-2ZWH53I4.js} +3 -3
  24. package/chunks/{chunk-6NQWER7D.js → chunk-36XKGB7E.js} +3 -3
  25. package/chunks/{chunk-7JL5YBSA.js → chunk-3AEKDXKT.js} +1 -1
  26. package/chunks/{chunk-H2U4FK62.js → chunk-3GDBZJD6.js} +6 -6
  27. package/chunks/{chunk-VPZMLGD3.js → chunk-3GM5DLBI.js} +5 -5
  28. package/chunks/{chunk-PYLVQ6RT.js → chunk-3LDGOQXZ.js} +6 -6
  29. package/chunks/{chunk-BKHCW2BI.js → chunk-3VUENPWF.js} +10 -0
  30. package/chunks/{chunk-XY7DGTIC.js → chunk-45NQKMYB.js} +1 -1
  31. package/chunks/{chunk-QWAI7FNT.js → chunk-47BGDLJG.js} +119 -27
  32. package/chunks/{chunk-H6BFLALJ.js → chunk-4AOVQPJU.js} +1 -1
  33. package/chunks/{chunk-UAAWNTOC.js → chunk-4KM2SYK5.js} +12 -12
  34. package/chunks/{chunk-VRQD5D7R.js → chunk-4XA4QIUA.js} +1 -1
  35. package/chunks/{chunk-BNRIQWXW.js → chunk-56HVDG3M.js} +4 -4
  36. package/chunks/{chunk-KB4ISUT3.js → chunk-5AFGJNY6.js} +4 -4
  37. package/chunks/{chunk-KTWUFHS4.js → chunk-5RUCD4ED.js} +2 -2
  38. package/chunks/{chunk-TB6DPBE4.js → chunk-62X3CM7Q.js} +7 -7
  39. package/chunks/{chunk-SNHBRO4C.js → chunk-63FNZTWG.js} +2 -2
  40. package/chunks/{chunk-GDNDZJSG.js → chunk-6JEIRPLN.js} +47 -4
  41. package/chunks/{chunk-A2QIWDFO.js → chunk-6P5EXEBL.js} +159 -34
  42. package/chunks/{chunk-NAOHSM56.js → chunk-6SPD4Z7F.js} +1 -1
  43. package/chunks/{chunk-MTV5W6WN.js → chunk-6ZKSO6K7.js} +7 -7
  44. package/chunks/{chunk-QSDPJROT.js → chunk-7KJPO7YH.js} +2 -2
  45. package/chunks/{chunk-JVY7FHUZ.js → chunk-7U5G6JXI.js} +9 -0
  46. package/chunks/{chunk-JW5UEE3V.js → chunk-A6NRNRKE.js} +1 -1
  47. package/chunks/{chunk-AAZWJAPQ.js → chunk-AKBFSOC5.js} +2 -2
  48. package/chunks/{chunk-ADJDLEVO.js → chunk-AW27A43Y.js} +9 -11
  49. package/chunks/{chunk-M4NWDIFU.js → chunk-AZQ3DT76.js} +1 -1
  50. package/chunks/{chunk-HY5OHJEC.js → chunk-B4VN3VDH.js} +5 -5
  51. package/chunks/{chunk-VUTOV2HG.js → chunk-BSR5AXZR.js} +4 -3
  52. package/chunks/{chunk-ARL4UGRW.js → chunk-BSSLSQEW.js} +3 -3
  53. package/chunks/{chunk-OSA2TFDI.js → chunk-CGM3E75C.js} +3 -3
  54. package/chunks/{chunk-OIZWCOYC.js → chunk-CIDQISGM.js} +5 -5
  55. package/chunks/{chunk-67F2BEYW.js → chunk-CPFFU46D.js} +1 -1
  56. package/chunks/{chunk-HOJZ2QQA.js → chunk-CQ6IPDQW.js} +3 -3
  57. package/chunks/{chunk-UWIJU22K.js → chunk-CZ4OWGQQ.js} +6 -8
  58. package/chunks/{chunk-A6GQUQ7I.js → chunk-D2RNVVH6.js} +2 -2
  59. package/chunks/{chunk-PSTHNTHF.js → chunk-D7QGE3RT.js} +1 -1
  60. package/chunks/{chunk-2U3UCXZ3.js → chunk-DAV4QFD5.js} +2 -11
  61. package/chunks/{chunk-4JS2QK7P.js → chunk-DD6O3ZRD.js} +1 -1
  62. package/chunks/{chunk-7WUMS2UA.js → chunk-DEDESZDL.js} +1 -1
  63. package/chunks/{chunk-VYDQD5J4.js → chunk-DFVXU5YM.js} +1 -1
  64. package/chunks/{chunk-CDDLHCC2.js → chunk-DG4IQ6JG.js} +5 -5
  65. package/chunks/{chunk-B66LYK4B.js → chunk-DPTMKFIH.js} +1 -1
  66. package/chunks/{chunk-GHOUZ5X4.js → chunk-EBPLKY6U.js} +384 -311
  67. package/chunks/{chunk-XL6GYJL2.js → chunk-EJOGLSNJ.js} +2 -2
  68. package/chunks/{chunk-4X5J3V2I.js → chunk-FA5K6YI2.js} +2 -2
  69. package/chunks/{chunk-ZZ7RUTJ4.js → chunk-FMIH5KMQ.js} +1 -1
  70. package/chunks/{chunk-UFHPAMAV.js → chunk-FQDCO3CJ.js} +6 -1
  71. package/chunks/{chunk-UHF5VBKO.js → chunk-FRHQQC2Z.js} +1 -1
  72. package/chunks/{chunk-6OJDN5ZT.js → chunk-G6MUFRNI.js} +1 -1
  73. package/chunks/{chunk-XUBM2A4F.js → chunk-GXTMEATA.js} +15 -34
  74. package/chunks/{chunk-V3NMFQD2.js → chunk-GZDWTBT3.js} +2 -2
  75. package/chunks/{chunk-5KZNWF2M.js → chunk-H7TMVHKE.js} +1 -1
  76. package/chunks/{chunk-YY23TR4M.js → chunk-HG3UBTJ4.js} +1 -1
  77. package/chunks/{chunk-YMB77M76.js → chunk-HOSVOUDK.js} +56 -0
  78. package/chunks/{chunk-NHZF4VCD.js → chunk-HTYND72J.js} +1 -1
  79. package/chunks/{chunk-JBZYGFIB.js → chunk-I7BT2MME.js} +1 -1
  80. package/chunks/{chunk-N3J3CO35.js → chunk-IH4Z54RJ.js} +7 -5
  81. package/chunks/{chunk-JXS2JNMZ.js → chunk-IRSLAS4M.js} +2 -2
  82. package/chunks/{chunk-CTEGMF77.js → chunk-IX4PWUDU.js} +155 -87
  83. package/chunks/{chunk-A4BAHMJF.js → chunk-JRIVMPD2.js} +3 -3
  84. package/chunks/{chunk-Q7YDKOGY.js → chunk-JVEGA3MM.js} +1 -1
  85. package/chunks/{chunk-U5C2GIN2.js → chunk-K34GJQOZ.js} +117 -3
  86. package/chunks/{chunk-YI5G32RU.js → chunk-KEC5FHLM.js} +3 -3
  87. package/chunks/{chunk-2RTRFLWH.js → chunk-KLOMACIR.js} +6 -6
  88. package/chunks/{chunk-XJ6IMYUS.js → chunk-KWX56CHZ.js} +7 -7
  89. package/chunks/{chunk-Y2HK3ELT.js → chunk-LCX5B364.js} +3 -3
  90. package/chunks/{chunk-JRTJEGSP.js → chunk-LSRI3ND3.js} +1 -1
  91. package/chunks/{chunk-T4G33L3W.js → chunk-LUISTZXI.js} +3 -3
  92. package/chunks/{chunk-Q7ALOKK7.js → chunk-MAKIANMX.js} +3 -3
  93. package/chunks/{chunk-QXFAQDBV.js → chunk-MDNUCDKZ.js} +2 -2
  94. package/chunks/{chunk-BXAGPCYH.js → chunk-MELQSJOU.js} +1 -1
  95. package/chunks/{chunk-B7IBCWDW.js → chunk-MUNA4QDC.js} +4 -4
  96. package/chunks/{chunk-3MJ44LNC.js → chunk-N4SVADAV.js} +264 -138
  97. package/chunks/{chunk-KK3FEHPJ.js → chunk-NLFLYSS4.js} +1 -1
  98. package/chunks/{chunk-UPUAGRKY.js → chunk-NW2GIPG3.js} +2 -4
  99. package/chunks/{chunk-LSMCI42W.js → chunk-NX4A23LY.js} +3 -3
  100. package/chunks/{chunk-TN3REXN4.js → chunk-OK47XBYH.js} +79 -36
  101. package/chunks/{chunk-L3YACXS2.js → chunk-OPVF453Q.js} +3 -3
  102. package/chunks/{chunk-NX5QZVRS.js → chunk-OR64CU46.js} +1 -1
  103. package/chunks/{chunk-JOVJCXN4.js → chunk-OWGRUU7F.js} +1 -1
  104. package/chunks/{chunk-V2U6FOJB.js → chunk-OWXFBIB6.js} +1 -1
  105. package/chunks/{chunk-6LDLDK6E.js → chunk-OYWVIXHT.js} +1 -3
  106. package/chunks/{chunk-V7RNNPGC.js → chunk-P5Y23G2L.js} +18 -1
  107. package/chunks/{chunk-32SNBMNP.js → chunk-PTSEETCO.js} +27 -27
  108. package/chunks/{chunk-C2DR57L6.js → chunk-PVXEJB66.js} +1 -1
  109. package/chunks/{chunk-O6SLWH4X.js → chunk-PZW46OTB.js} +2 -2
  110. package/chunks/{chunk-ECDXUCEO.js → chunk-Q4ZPYNIZ.js} +4 -4
  111. package/chunks/{chunk-QSWDGAIC.js → chunk-QILD6R27.js} +1 -1
  112. package/chunks/{chunk-6SU6OW5Z.js → chunk-QLTATTPS.js} +1 -1
  113. package/chunks/{chunk-NM33GGOM.js → chunk-QPBFRWCP.js} +3 -3
  114. package/chunks/{chunk-DUFZ3OW6.js → chunk-QSD4UH74.js} +842 -62
  115. package/chunks/{chunk-6T5HCY34.js → chunk-RDVNSJQU.js} +3 -3
  116. package/chunks/{chunk-3JI5D6RU.js → chunk-ROIJYS5K.js} +6 -6
  117. package/chunks/{chunk-WIHSDI6U.js → chunk-RQJA2YYO.js} +4 -4
  118. package/chunks/{chunk-JRMUA53D.js → chunk-S6TCTH4Z.js} +13 -13
  119. package/chunks/{chunk-FVHLDSQS.js → chunk-SYHXR6WM.js} +5 -5
  120. package/chunks/{chunk-FTGU6G45.js → chunk-TB4YFWXG.js} +2 -2
  121. package/chunks/{chunk-SFBRH5RY.js → chunk-TDESMS7M.js} +8 -8
  122. package/chunks/{chunk-EGB2PIYM.js → chunk-TMFWI4RC.js} +1 -1
  123. package/chunks/{chunk-2N6CV4PW.js → chunk-TQDFSQQF.js} +1 -1
  124. package/chunks/{chunk-TROB4PZY.js → chunk-TTRH3RTQ.js} +4 -4
  125. package/chunks/{chunk-E74YSVIN.js → chunk-TXP5NGG3.js} +1 -1
  126. package/chunks/{chunk-E3GLDLYB.js → chunk-TYAMGABM.js} +0 -6
  127. package/chunks/{chunk-APQTLUZ3.js → chunk-UI5UGEF4.js} +129 -8
  128. package/chunks/{chunk-TNETSI2A.js → chunk-ULNWG62W.js} +3 -3
  129. package/chunks/{chunk-FNVF5RR4.js → chunk-V6OBVAST.js} +1 -1
  130. package/chunks/{chunk-BGIKUE5J.js → chunk-VIFA5VJD.js} +1 -1
  131. package/chunks/{chunk-HWCHDINS.js → chunk-VLHR7F4E.js} +595 -58
  132. package/chunks/{chunk-SKRHR6N2.js → chunk-VPV7WBVT.js} +1 -1
  133. package/chunks/{chunk-FB5CQZMK.js → chunk-WCEI6J56.js} +1 -1
  134. package/chunks/{chunk-ORR5EFCL.js → chunk-WDVDVWJ3.js} +6 -6
  135. package/chunks/{chunk-B2BKFWJK.js → chunk-WI6GIM2M.js} +2 -2
  136. package/chunks/{chunk-N56NYJWY.js → chunk-WM3LUQLO.js} +7 -7
  137. package/chunks/{chunk-JGD35ZSJ.js → chunk-X5SLJOMF.js} +9 -7
  138. package/chunks/{chunk-Y5C24BUY.js → chunk-XAFIL4BD.js} +5 -5
  139. package/chunks/{chunk-IJCZP2MA.js → chunk-XDRXOSAD.js} +3 -3
  140. package/chunks/{chunk-FXWGMPAP.js → chunk-XH3KAV2G.js} +2 -2
  141. package/chunks/{chunk-NW7SPXVG.js → chunk-YBHUXEC6.js} +1 -1
  142. package/chunks/{chunk-2ASWIM4A.js → chunk-YBVVOSOH.js} +1 -1
  143. package/chunks/{chunk-62TIEFNN.js → chunk-YCHNAKC5.js} +16 -14
  144. package/chunks/{chunk-ZRT36RSF.js → chunk-YIGGWOJE.js} +1 -1
  145. package/chunks/{chunk-ZPZANKVP.js → chunk-YILJKX2T.js} +3 -3
  146. package/chunks/{chunk-Y2EOB7WZ.js → chunk-YX2RDGAL.js} +1 -1
  147. package/chunks/{chunk-UQPLUR4A.js → chunk-ZBB5EZZV.js} +2 -2
  148. package/chunks/{chunk-U7ROFHSH.js → chunk-ZLCT4C5A.js} +1 -1
  149. package/chunks/{chunk-ZA2JN5IZ.js → chunk-ZMY2P4L3.js} +3 -3
  150. package/chunks/{chunk-LIBTBTHP.js → chunk-ZQUY3ZJU.js} +4 -4
  151. package/chunks/{computer-use-J5VUY257.js → computer-use-F4URV4TU.js} +44 -44
  152. package/chunks/{config-utils-7JZQN6L2.js → config-utils-Z3OW3IQG.js} +4 -4
  153. package/chunks/{contextCommand-RCTGC36R.js → contextCommand-IGSS2U5J.js} +43 -43
  154. package/chunks/{core-runtime-REBZ5ZYE.js → core-runtime-H5CZDN3A.js} +41 -41
  155. package/chunks/{create-sub-session-TEEUROAZ.js → create-sub-session-PA7MFTHK.js} +41 -41
  156. package/chunks/{create-sub-session-23ULO5PO.js → create-sub-session-XT6DLYOE.js} +2 -2
  157. package/chunks/{cron-create-5WUTNKNF.js → cron-create-2JZ2TWTF.js} +4 -4
  158. package/chunks/{cron-delete-JEQ27YPS.js → cron-delete-CTPD2P26.js} +4 -4
  159. package/chunks/{cron-list-IXGCA7UR.js → cron-list-V44KHAF6.js} +4 -4
  160. package/chunks/{daemon-UBVOQMWY.js → daemon-GED37WOX.js} +28 -1
  161. package/chunks/daemon-git-worktree-guard-LZDCNJGV.js +2062 -0
  162. package/chunks/{daemon-status-provider-SV7KRLJ4.js → daemon-status-provider-QYM57Z44.js} +51 -52
  163. package/chunks/{daemon-trust-policy-LFUJ4NGF.js → daemon-trust-policy-TSRVEYZR.js} +47 -47
  164. package/chunks/{daemon-trust-policy-monitor-BQZ77NDD.js → daemon-trust-policy-monitor-2K2YETMT.js} +47 -47
  165. package/chunks/{deferred-core-runtime-F4XOQJQL.js → deferred-core-runtime-FKJ3OYE7.js} +43 -43
  166. package/chunks/{devtools-X6ROTKHE.js → devtools-4QFYJT6U.js} +1 -1
  167. package/chunks/{display-image-CAD7RAUM.js → display-image-M2ELAVN4.js} +4 -4
  168. package/chunks/{dist-B3ODKYEB.js → dist-4ZPG4BY6.js} +2 -2
  169. package/chunks/{dist-CCUH2Z4C.js → dist-BROOP2EG.js} +1 -1
  170. package/chunks/{dist-DANKRAB3.js → dist-IYYN3RUT.js} +2 -2
  171. package/chunks/{dist-5VDE7U3A.js → dist-JWMKPWT5.js} +3 -1
  172. package/chunks/{dist-6RK4U6VU.js → dist-K7IQB53U.js} +1 -1
  173. package/chunks/{dist-EZHCZSW6.js → dist-MAQXAQ2Y.js} +1 -1
  174. package/chunks/{dist-362MN6CP.js → dist-WJ4BHIEW.js} +2 -2
  175. package/chunks/{dist-M3XMEIP2.js → dist-YEPL4RAW.js} +1 -1
  176. package/chunks/{earlyInputCapture-JAJXDT2N.js → earlyInputCapture-WJBSJQUF.js} +42 -42
  177. package/chunks/{edit-OXBMFY5B.js → edit-X73LA4YO.js} +49 -48
  178. package/chunks/{enter-worktree-XS4JX4PO.js → enter-worktree-CLRQTIVN.js} +46 -46
  179. package/chunks/{enterPlanMode-J6PDPFFT.js → enterPlanMode-6BDYUQ5T.js} +47 -47
  180. package/chunks/{environment-BQW6FAZL.js → environment-WOAJXJDJ.js} +43 -43
  181. package/chunks/{errors-TMSN7AZN.js → errors-7OY5MXYY.js} +43 -43
  182. package/chunks/{exit-worktree-2RIE6DAO.js → exit-worktree-TFFJXCRT.js} +46 -46
  183. package/chunks/{exitPlanMode-QQL27HU4.js → exitPlanMode-WDURQMIU.js} +41 -41
  184. package/chunks/{external-tool-guard-provider-5HTGOPGU.js → external-tool-guard-provider-TE4DRY36.js} +1 -1
  185. package/chunks/{fast-path-TSGUVE5K.js → fast-path-QQLGC37M.js} +3 -3
  186. package/chunks/{gemini-RLTFENFV.js → gemini-VHE62IJL.js} +107 -102
  187. package/chunks/{geminiContentGenerator-B6W6PSO7.js → geminiContentGenerator-VSHIEGAQ.js} +11 -11
  188. package/chunks/{glob-JKVAHWL5.js → glob-VMEEDDLO.js} +48 -48
  189. package/chunks/{goal-tools-LQFO4BRY.js → goal-tools-M4UDAZXP.js} +4 -4
  190. package/chunks/{grep-6CN23ZPS.js → grep-F4UAR7KX.js} +46 -46
  191. package/chunks/{handleAutoUpdate-Y6BUNMBG.js → handleAutoUpdate-GN7Z6QAC.js} +45 -45
  192. package/chunks/{i18n-Y5PM6L5V.js → i18n-ETW24DHW.js} +42 -42
  193. package/chunks/{image-gen-DC2IQZ73.js → image-gen-YPK2AZT4.js} +11 -11
  194. package/chunks/{initializer-OYKKBNHO.js → initializer-UA6KQ7MS.js} +48 -48
  195. package/chunks/{installationInfo-63AFHLWA.js → installationInfo-P7OTIR4P.js} +42 -42
  196. package/chunks/{keychain-token-storage-GU75J2T2.js → keychain-token-storage-NKKCUHI2.js} +2 -2
  197. package/chunks/{list-KA63R3R6.js → list-GRAMIQOT.js} +50 -50
  198. package/chunks/{list-agents-5PNMK2AM.js → list-agents-O6WSY4CT.js} +2 -2
  199. package/chunks/{loadedSettingsAdapter-IGBJN7C5.js → loadedSettingsAdapter-5O2TDS3I.js} +47 -47
  200. package/chunks/{loggingContentGenerator-Z3NADCTQ.js → loggingContentGenerator-J2J2AANS.js} +54 -45
  201. package/chunks/{loop-wakeup-OV65FEGR.js → loop-wakeup-GVQRMUKS.js} +5 -5
  202. package/chunks/{ls-RPRSX26R.js → ls-6W2D7TKU.js} +6 -6
  203. package/chunks/{lsp-IWTJWFLT.js → lsp-NJ4KFBI2.js} +2 -2
  204. package/chunks/{managed-npm-update-HA262PFM.js → managed-npm-update-WMV5ITKU.js} +42 -42
  205. package/chunks/{mcp-T5ZUOKT3.js → mcp-XLP33CAI.js} +47 -47
  206. package/chunks/{monitor-SLGY7CYB.js → monitor-2MM23VDV.js} +46 -46
  207. package/chunks/{node-YSOU44FX.js → node-UUDY34IG.js} +3 -3
  208. package/chunks/nonInteractiveCli-KTA5K6FS.js +163 -0
  209. package/chunks/{notebook-edit-STSSB5KQ.js → notebook-edit-QD4TRKLY.js} +46 -46
  210. package/chunks/{openaiContentGenerator-OQED57JE.js → openaiContentGenerator-KLHSPVN2.js} +30 -30
  211. package/chunks/{pidfile-GES3MIHH.js → pidfile-RQGZBNXT.js} +42 -42
  212. package/chunks/{processUtils-FU6VMUOL.js → processUtils-HZZDA2VV.js} +2 -2
  213. package/chunks/{qwenContentGenerator-HWJSEGUL.js → qwenContentGenerator-T75M2Z3B.js} +49 -49
  214. package/chunks/{qwenOAuth2-PAIR7XEW.js → qwenOAuth2-5QZU444W.js} +10 -10
  215. package/chunks/{read-file-IYEBTQT5.js → read-file-LOVUSBJC.js} +11 -11
  216. package/chunks/{read-mcp-resource-THCSZHXO.js → read-mcp-resource-GWCP23WG.js} +2 -2
  217. package/chunks/{record-artifact-76YYQA5F.js → record-artifact-IYQDEYMV.js} +3 -3
  218. package/chunks/{resumeHistoryUtils-WP446RP5.js → resumeHistoryUtils-LVKSSQII.js} +49 -49
  219. package/chunks/{ripGrep-VV2CRCL2.js → ripGrep-ZJSHKB6H.js} +41 -41
  220. package/chunks/{run-qwen-serve-AHQCTALV.js → run-qwen-serve-GZW7B4WK.js} +68 -61
  221. package/chunks/{runtime-AUUZGDK6.js → runtime-MYRXEO2E.js} +52 -52
  222. package/chunks/{scheduler-Y4UPEURR.js → scheduler-DPTPI6FW.js} +43 -43
  223. package/chunks/{sdk-exporters-grpc-4QKV6MCX.js → sdk-exporters-grpc-54L4LS5L.js} +2 -2
  224. package/chunks/{sdk-exporters-http-A7XLKZO7.js → sdk-exporters-http-NHBYB5FZ.js} +12 -12
  225. package/chunks/{sdk-impl-XO4UF6PR.js → sdk-impl-SK4P5WON.js} +8 -8
  226. package/chunks/{send-message-P5SLP57G.js → send-message-O7FO63UK.js} +6 -6
  227. package/chunks/{serve-WI3SE4MY.js → serve-XCG4XCDA.js} +49 -49
  228. package/chunks/{server-G6JU6UWL.js → server-AWQHKXLG.js} +122 -117
  229. package/chunks/{session-2AO2UACB.js → session-P5FKNCNR.js} +91 -94
  230. package/chunks/{settings-3HRWSH66.js → settings-CSYVIP2R.js} +46 -46
  231. package/chunks/{shell-AR7XFLHA.js → shell-EGTSUO2P.js} +41 -41
  232. package/chunks/{skill-K6NOUUYM.js → skill-IFUD72GF.js} +21 -21
  233. package/chunks/{skill-settings-IOXQYS6X.js → skill-settings-YOE7LBHE.js} +46 -46
  234. package/chunks/{spawnChannel-V6P6HF4V.js → spawnChannel-PQSZIOLY.js} +44 -46
  235. package/chunks/{standalone-update-K5G3L2OJ.js → standalone-update-RB2EGUSF.js} +43 -43
  236. package/chunks/{startInteractiveUI-TRRP52QX.js → startInteractiveUI-KMYUJ2MU.js} +3036 -2405
  237. package/chunks/{syntheticOutput-SEW4NA47.js → syntheticOutput-DVHJMUGV.js} +3 -3
  238. package/chunks/{task-create-247EAVF7.js → task-create-4NC7PDI4.js} +11 -11
  239. package/chunks/{task-list-ZJN4QHLK.js → task-list-LBSRMOC7.js} +5 -5
  240. package/chunks/{task-stop-MAYQJ42I.js → task-stop-YFNATTIM.js} +2 -2
  241. package/chunks/{task-update-SU5TMZGG.js → task-update-BPLM52GD.js} +12 -12
  242. package/chunks/{team-create-IEEEBLE2.js → team-create-B6A6MJBT.js} +46 -46
  243. package/chunks/{team-delete-3XVRPQBP.js → team-delete-MKYMYBFM.js} +5 -5
  244. package/chunks/{team-plan-approval-SJGNS5JL.js → team-plan-approval-5WO3CXXU.js} +47 -47
  245. package/chunks/{terminal-image-renderer-C4RQMC67.js → terminal-image-renderer-BTRE2GEU.js} +43 -43
  246. package/chunks/{theme-manager-IKZQJQ6C.js → theme-manager-XL2N5SBY.js} +42 -42
  247. package/chunks/{todoWrite-IE2YTCK7.js → todoWrite-K5K7NRE5.js} +4 -4
  248. package/chunks/{tool-search-4UVNFYWU.js → tool-search-QNBLXUGR.js} +17 -17
  249. package/chunks/{total-session-admission-DIN6FTZP.js → total-session-admission-N4E5SFBO.js} +47 -47
  250. package/chunks/{trustedFolders-IAHOLV6A.js → trustedFolders-MQS46LIU.js} +42 -42
  251. package/chunks/{update-relaunch-5QSJ5CWP.js → update-relaunch-536KRL33.js} +5 -5
  252. package/chunks/{updateCheck-N4RT7HOZ.js → updateCheck-QJI2SYWF.js} +45 -45
  253. package/chunks/{useAutoAcceptIndicator-25T26VZS.js → useAutoAcceptIndicator-7QASHD46.js} +50 -50
  254. package/chunks/{validateNonInterActiveAuth-MCTVPLFE.js → validateNonInterActiveAuth-ZNRGWBLV.js} +83 -85
  255. package/chunks/{version-6PLZ7PCV.js → version-DBEQAFRW.js} +1 -1
  256. package/chunks/{web-fetch-5ANX6FSM.js → web-fetch-MBIVXKPE.js} +20 -20
  257. package/chunks/{web-search-KQJWWRHW.js → web-search-4LBIN6VF.js} +16 -16
  258. package/chunks/{workflow-C57ZKFUF.js → workflow-LNMA55HY.js} +54 -53
  259. package/chunks/{workspace-providers-status-3QAE4G4Y.js → workspace-providers-status-PDDMI6ST.js} +50 -50
  260. package/chunks/{workspace-registration-store-Q3J5LV6T.js → workspace-registration-store-BGRKKIYR.js} +1 -1
  261. package/chunks/{workspace-registry-DSJ5NAII.js → workspace-registry-L4NCJ34K.js} +47 -47
  262. package/chunks/{workspace-service-QW5LH7FA.js → workspace-service-LOXYKYTR.js} +53 -53
  263. package/chunks/{workspace-skills-status-N34ALJPZ.js → workspace-skills-status-IJ5FOQI6.js} +48 -48
  264. package/chunks/{workspace-trust-reconciler-YTOL7QEV.js → workspace-trust-reconciler-H36TCR2S.js} +55 -55
  265. package/chunks/{write-file-MSFRVUZB.js → write-file-JJAY7JSP.js} +41 -41
  266. package/chunks/{zoom-image-4TQA5GHG.js → zoom-image-4MVVVM7E.js} +11 -11
  267. package/cli.js +18 -17
  268. package/package.json +3 -3
  269. package/web-shell/assets/{arc-lZ04kynw.js → arc-B-89zHN4.js} +1 -1
  270. package/web-shell/assets/{architectureDiagram-3BPJPVTR-B1wZVhzD.js → architectureDiagram-3BPJPVTR-BkcOncHk.js} +1 -1
  271. package/web-shell/assets/{blockDiagram-GPEHLZMM-CO0e0yJt.js → blockDiagram-GPEHLZMM-DQ4yboaF.js} +1 -1
  272. package/web-shell/assets/{c4Diagram-AAUBKEIU-Dfpo6Qie.js → c4Diagram-AAUBKEIU-C_8ZjPDI.js} +1 -1
  273. package/web-shell/assets/channel-Du2WFns8.js +1 -0
  274. package/web-shell/assets/{chunk-2J33WTMH-BvxArftT.js → chunk-2J33WTMH-naKVe1Bm.js} +1 -1
  275. package/web-shell/assets/{chunk-4BX2VUAB-BS2XXjGY.js → chunk-4BX2VUAB-DdoViKT2.js} +1 -1
  276. package/web-shell/assets/{chunk-55IACEB6-CYL6h3Ph.js → chunk-55IACEB6-DUDQZEwU.js} +1 -1
  277. package/web-shell/assets/{chunk-727SXJPM-C-cWPX30.js → chunk-727SXJPM-BqpDTR5s.js} +1 -1
  278. package/web-shell/assets/{chunk-AQP2D5EJ-CJLxNbVV.js → chunk-AQP2D5EJ-CdmEknkT.js} +1 -1
  279. package/web-shell/assets/{chunk-FMBD7UC4-DwfzKywA.js → chunk-FMBD7UC4-CH7fFTLB.js} +1 -1
  280. package/web-shell/assets/{chunk-ND2GUHAM-BI5raYHQ.js → chunk-ND2GUHAM-ObgSuFKF.js} +1 -1
  281. package/web-shell/assets/{chunk-QZHKN3VN-_GkNI90J.js → chunk-QZHKN3VN-D9fKdv_s.js} +1 -1
  282. package/web-shell/assets/classDiagram-4FO5ZUOK-Zw0HafH6.js +1 -0
  283. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Zw0HafH6.js +1 -0
  284. package/web-shell/assets/{cose-bilkent-S5V4N54A-BAVLNxh9.js → cose-bilkent-S5V4N54A-CvzATMx9.js} +1 -1
  285. package/web-shell/assets/{dagre-BM42HDAG-BD4XNLqp.js → dagre-BM42HDAG-M_xU21QW.js} +1 -1
  286. package/web-shell/assets/{diagram-2AECGRRQ-WO567p8w.js → diagram-2AECGRRQ-CNrl9sW1.js} +1 -1
  287. package/web-shell/assets/{diagram-5GNKFQAL-mAk23VWO.js → diagram-5GNKFQAL-CUweVT6T.js} +1 -1
  288. package/web-shell/assets/{diagram-KO2AKTUF-YQEeHKze.js → diagram-KO2AKTUF-D3n6Lxjo.js} +1 -1
  289. package/web-shell/assets/{diagram-LMA3HP47-CMVjxAjv.js → diagram-LMA3HP47-0SeFPK4t.js} +1 -1
  290. package/web-shell/assets/{diagram-OG6HWLK6-42hPvbM-.js → diagram-OG6HWLK6-DAgyEwge.js} +1 -1
  291. package/web-shell/assets/{erDiagram-TEJ5UH35-CXU_cPfu.js → erDiagram-TEJ5UH35-CzxBBDIK.js} +1 -1
  292. package/web-shell/assets/{flowDiagram-I6XJVG4X-D-3TdhMT.js → flowDiagram-I6XJVG4X-B0uj0jyo.js} +1 -1
  293. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CsgkXolz.js → ganttDiagram-6RSMTGT7-DFzcj5km.js} +1 -1
  294. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-B6Q3PBLD.js → gitGraphDiagram-PVQCEYII-DylJ_Fc9.js} +1 -1
  295. package/web-shell/assets/index-BIGQygTL.css +5 -0
  296. package/web-shell/assets/{index-BFrkGj2B.js → index-BKSAnXU9.js} +1 -1
  297. package/web-shell/assets/index-J7OMTqAN.js +1789 -0
  298. package/web-shell/assets/{infoDiagram-5YYISTIA-jiAfSXp8.js → infoDiagram-5YYISTIA-BYMcJVMI.js} +1 -1
  299. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BWif5KeJ.js → ishikawaDiagram-YF4QCWOH-t1quI1S3.js} +1 -1
  300. package/web-shell/assets/{journeyDiagram-JHISSGLW-B-GAZthS.js → journeyDiagram-JHISSGLW-YM_QVUJm.js} +1 -1
  301. package/web-shell/assets/{kanban-definition-UN3LZRKU-9TEuATdL.js → kanban-definition-UN3LZRKU-jw8OddK1.js} +1 -1
  302. package/web-shell/assets/{linear-dy_QPfyE.js → linear-Dlr3RVuP.js} +1 -1
  303. package/web-shell/assets/{mermaid.core-DB2uLAnq.js → mermaid.core-CqGKzNzd.js} +5 -5
  304. package/web-shell/assets/{mindmap-definition-RKZ34NQL-ey_dyxi-.js → mindmap-definition-RKZ34NQL-BqureoOS.js} +1 -1
  305. package/web-shell/assets/{pieDiagram-4H26LBE5-_6BuMdDj.js → pieDiagram-4H26LBE5-Da20HkK1.js} +1 -1
  306. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-B2rM19W2.js → quadrantDiagram-W4KKPZXB-BsNlMvJy.js} +1 -1
  307. package/web-shell/assets/{requirementDiagram-4Y6WPE33-DWj8b7vW.js → requirementDiagram-4Y6WPE33-DzVCQCse.js} +1 -1
  308. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-D5dtYh0N.js → sankeyDiagram-5OEKKPKP-BMo16voT.js} +1 -1
  309. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DVkdn_qW.js → sequenceDiagram-3UESZ5HK-Bgi-pdHk.js} +1 -1
  310. package/web-shell/assets/{stateDiagram-AJRCARHV-DgwD_fi6.js → stateDiagram-AJRCARHV-xaPQXwGk.js} +1 -1
  311. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-D5RqimXD.js +1 -0
  312. package/web-shell/assets/{timeline-definition-PNZ67QCA-vNr_1UNX.js → timeline-definition-PNZ67QCA-C_9RuvKG.js} +1 -1
  313. package/web-shell/assets/{vennDiagram-CIIHVFJN-ChFcGAcu.js → vennDiagram-CIIHVFJN-Bgu6vdla.js} +1 -1
  314. package/web-shell/assets/{wardley-L42UT6IY-C8PXoSWk.js → wardley-L42UT6IY-CFTZ8IrX.js} +1 -1
  315. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-C2nqOV6i.js → wardleyDiagram-YWT4CUSO-BASW9Vmt.js} +1 -1
  316. package/web-shell/assets/{xychartDiagram-2RQKCTM6-BntaqhSB.js → xychartDiagram-2RQKCTM6--Nh-CD3F.js} +1 -1
  317. package/web-shell/index.html +2 -2
  318. package/chunks/chunk-CJNKGZLC.js +0 -649
  319. package/chunks/chunk-L34XSHIZ.js +0 -28
  320. package/chunks/chunk-MUN34TTF.js +0 -830
  321. package/chunks/chunk-N2TNM3QB.js +0 -9
  322. package/chunks/chunk-O4MVJKSX.js +0 -622
  323. package/chunks/chunk-WLML6VIA.js +0 -18
  324. package/chunks/chunk-ZBBVBZBR.js +0 -137
  325. package/chunks/chunk-bdqvmfwv-OHYAFAAO.js +0 -17446
  326. package/chunks/dispatch-FW7DX2CR.js +0 -43
  327. package/chunks/nonInteractiveCli-R5PK5B5G.js +0 -166
  328. package/chunks/opentui-entry-UTJ6MHDI.js +0 -52344
  329. package/chunks/runtime-gate-T4ICWGQJ.js +0 -89
  330. package/chunks/wrapper-46Z24CTM.js +0 -35
  331. package/web-shell/assets/channel-BxvRq3pV.js +0 -1
  332. package/web-shell/assets/classDiagram-4FO5ZUOK-tL8nAxYf.js +0 -1
  333. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-tL8nAxYf.js +0 -1
  334. package/web-shell/assets/index-BgjULKyF.css +0 -5
  335. package/web-shell/assets/index-CxXlPYfl.js +0 -1789
  336. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BWGkVGVB.js +0 -1
  337. /package/chunks/{chunk-44CTCCLY.js → chunk-NWNEANAT.js} +0 -0
@@ -40,7 +40,7 @@ import {
40
40
  CronScheduler,
41
41
  DEFAULT_RECURRING_MAX_AGE_DAYS,
42
42
  normalizeRecurringMaxAge
43
- } from "./chunk-NM33GGOM.js";
43
+ } from "./chunk-QPBFRWCP.js";
44
44
  import {
45
45
  consumeUnread,
46
46
  forwardApproval,
@@ -49,13 +49,13 @@ import {
49
49
  sendStructuredMessage,
50
50
  wrapConfirmWithBadge,
51
51
  writeMessage
52
- } from "./chunk-A4BAHMJF.js";
52
+ } from "./chunk-JRIVMPD2.js";
53
53
  import {
54
54
  claimTask,
55
55
  listTasks,
56
56
  onTasksUpdated,
57
57
  unassignTeammateTasks
58
- } from "./chunk-ZPZANKVP.js";
58
+ } from "./chunk-YILJKX2T.js";
59
59
  import {
60
60
  assignTeammateColor,
61
61
  classifyShutdownResponse,
@@ -63,7 +63,7 @@ import {
63
63
  formatAgentId,
64
64
  generateUniqueTeammateName,
65
65
  writeTeamFile
66
- } from "./chunk-A6GQUQ7I.js";
66
+ } from "./chunk-D2RNVVH6.js";
67
67
  import {
68
68
  parsePositiveIntegerEnv
69
69
  } from "./chunk-6PVPNMXU.js";
@@ -71,13 +71,13 @@ import {
71
71
  RUNTIME_SNAPSHOT_PREFIX,
72
72
  buildModelIdContext,
73
73
  resolveModelId
74
- } from "./chunk-JBZYGFIB.js";
74
+ } from "./chunk-I7BT2MME.js";
75
75
  import {
76
76
  ARTIFACT_TITLE_MAX_LENGTH,
77
77
  ARTIFACT_WORKSPACE_PATH_MAX_LENGTH,
78
78
  hasControlCharacter,
79
79
  hasUnsafeDisplayPayload
80
- } from "./chunk-7WUMS2UA.js";
80
+ } from "./chunk-DEDESZDL.js";
81
81
  import {
82
82
  promptIdContext,
83
83
  todoWorkChainContext
@@ -86,22 +86,6 @@ import {
86
86
  LEADER_NAME,
87
87
  MAX_TEAMMATES
88
88
  } from "./chunk-CPBF7KYF.js";
89
- import {
90
- APPROVAL_MODES,
91
- READ_ONLY_INSPECTION_TOOLS,
92
- SUBAGENT_PLAN_LIFECYCLE_TOOLS,
93
- buildSubagentPlanToolBlockedResult,
94
- getLeaderOnlyToolUnavailableMessage,
95
- getPlanRequiredTeammatePreApprovalMessage,
96
- getSubagentPlanToolUnavailableMessage,
97
- isLeaderOnlyToolUnavailableInSubagent,
98
- isPlanLifecycleToolUnavailableInSubagent,
99
- isPlanRequiredTeammateAwaitingApproval,
100
- isPlanRequiredTeammateContext,
101
- isPlanRequiredTeammatePreApprovalAllowedTool,
102
- isSubagentLikeExecutionContext,
103
- shouldUsePlanOnlyReminderInSubagentContext
104
- } from "./chunk-SNHBRO4C.js";
105
89
  import {
106
90
  SKILL_FILE_NAME,
107
91
  SKILL_NAME_PATTERN,
@@ -121,7 +105,7 @@ import {
121
105
  require_dist as require_dist2,
122
106
  stringify,
123
107
  validateSkillName
124
- } from "./chunk-KTWUFHS4.js";
108
+ } from "./chunk-5RUCD4ED.js";
125
109
  import {
126
110
  require_proper_lockfile
127
111
  } from "./chunk-KRXPRVGL.js";
@@ -139,15 +123,15 @@ import {
139
123
  createHookOutput,
140
124
  getHookKey,
141
125
  isToolArtifactLike
142
- } from "./chunk-2ASWIM4A.js";
126
+ } from "./chunk-YBVVOSOH.js";
143
127
  import {
144
128
  BaseTokenStorage,
145
129
  KeychainTokenStorage
146
- } from "./chunk-67F2BEYW.js";
130
+ } from "./chunk-CPFFU46D.js";
147
131
  import {
148
132
  normalizeImageGenerationBaseUrl,
149
133
  resolveNetworkTarget
150
- } from "./chunk-TNETSI2A.js";
134
+ } from "./chunk-ULNWG62W.js";
151
135
  import {
152
136
  EvidenceSourceUnavailableError,
153
137
  GoalEvidenceCheckpointAccumulator,
@@ -173,22 +157,40 @@ import {
173
157
  validateTranscriptRecord,
174
158
  walkTranscriptUuidChain,
175
159
  wrapUserPromptSubmitContext
176
- } from "./chunk-B66LYK4B.js";
160
+ } from "./chunk-DPTMKFIH.js";
161
+ import {
162
+ APPROVAL_MODES,
163
+ READ_ONLY_INSPECTION_TOOLS,
164
+ SUBAGENT_PLAN_LIFECYCLE_TOOLS,
165
+ buildSubagentPlanToolBlockedResult,
166
+ getLeaderOnlyToolUnavailableMessage,
167
+ getPlanRequiredTeammatePreApprovalMessage,
168
+ getSubagentPlanToolUnavailableMessage,
169
+ isLeaderOnlyToolUnavailableInSubagent,
170
+ isPlanLifecycleToolUnavailableInSubagent,
171
+ isPlanRequiredTeammateAwaitingApproval,
172
+ isPlanRequiredTeammateContext,
173
+ isPlanRequiredTeammatePreApprovalAllowedTool,
174
+ isSubagentLikeExecutionContext,
175
+ shouldUsePlanOnlyReminderInSubagentContext
176
+ } from "./chunk-63FNZTWG.js";
177
177
  import {
178
+ AgentOutputMessageCapture,
178
179
  DEFAULT_OTLP_ENDPOINT,
179
180
  DEFAULT_TELEMETRY_TARGET,
181
+ addAgentInputMessageAttributes,
180
182
  addDaemonRequestAttribute,
181
183
  addToolArgumentsAttributes,
182
184
  addToolCallResultAttributes,
183
185
  addUserPromptAttributes
184
- } from "./chunk-U5C2GIN2.js";
186
+ } from "./chunk-K34GJQOZ.js";
185
187
  import {
186
188
  supportsOpenAIPrefixCaching
187
189
  } from "./chunk-SAH4BD2J.js";
188
190
  import {
189
191
  DashScopeOpenAICompatibleProvider,
190
192
  selectDashScopeThinkingKnob
191
- } from "./chunk-2RTRFLWH.js";
193
+ } from "./chunk-KLOMACIR.js";
192
194
  import {
193
195
  childLaunchDepth,
194
196
  getCurrentAgentDepth,
@@ -199,7 +201,7 @@ import {
199
201
  runWithAgentContext,
200
202
  runWithRuntimeContentGenerator,
201
203
  spawnBlockReason
202
- } from "./chunk-SKRHR6N2.js";
204
+ } from "./chunk-VPV7WBVT.js";
203
205
  import {
204
206
  getTeammateContext,
205
207
  isTeammate,
@@ -209,6 +211,92 @@ import {
209
211
  InvalidStreamError,
210
212
  getThoughtSummary
211
213
  } from "./chunk-2J3OJGTL.js";
214
+ import {
215
+ BUBBLE_APPROVAL_MODE,
216
+ FORK_AGENT,
217
+ FORK_DEFAULT_MAX_TURNS,
218
+ FORK_PLACEHOLDER_RESULT,
219
+ FORK_SUBAGENT_TYPE,
220
+ SubagentError,
221
+ SubagentErrorCode,
222
+ buildAvailableSkillsReminder,
223
+ buildChangedAgentsReminder,
224
+ buildChangedMcpToolsReminder,
225
+ buildChangedSkillsReminder,
226
+ buildChildMessage,
227
+ buildDeferredToolsReminder,
228
+ buildForkExecutionAllowlist,
229
+ buildForkedMessages,
230
+ buildFunctionResponseParts,
231
+ buildMcpServerInstructionsReminder,
232
+ buildPinnedWorktreeNotice,
233
+ buildWorktreeNotice,
234
+ formatDateForContext,
235
+ getDirectoryContextString,
236
+ getFolderStructure,
237
+ getInitialChatHistory,
238
+ getStartupContextLength,
239
+ isSystemReminderContent,
240
+ normalizeForkTurns,
241
+ registerForkDisplayImageForCache,
242
+ resolveForkExecutionAllowedTools,
243
+ runInForkContext,
244
+ selectForkHistory,
245
+ stripSystemReminderBlocks,
246
+ validateForkToolList
247
+ } from "./chunk-TTRH3RTQ.js";
248
+ import {
249
+ collectAvailableSkillEntries,
250
+ renderAvailableSkillsBlock
251
+ } from "./chunk-K623ENWT.js";
252
+ import {
253
+ escapeSystemReminderTags,
254
+ escapeXml
255
+ } from "./chunk-AQ37AY7B.js";
256
+ import {
257
+ DEFAULT_FILE_FILTERING_OPTIONS,
258
+ DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES,
259
+ QwenIgnoreParser,
260
+ WorkspaceContext,
261
+ formatQwenIgnoreFileNames,
262
+ getQwenIgnoreFileNames,
263
+ isPathWithinRoot,
264
+ require_ignore
265
+ } from "./chunk-FRHQQC2Z.js";
266
+ import {
267
+ openBrowserSecurely,
268
+ shouldAttemptBrowserLaunch
269
+ } from "./chunk-NAVJD2PQ.js";
270
+ import {
271
+ isUnattendedMode,
272
+ retryWithBackoff
273
+ } from "./chunk-2ZWH53I4.js";
274
+ import {
275
+ classifyRetryError,
276
+ isFallbackEligible
277
+ } from "./chunk-TB4YFWXG.js";
278
+ import {
279
+ QUOTA_EXHAUSTED_PREFIX,
280
+ formatQuotaExhaustedMessage,
281
+ getRateLimitErrorDetails,
282
+ getRateLimitRetryDelayMs,
283
+ isApiError,
284
+ isQuotaExhaustedError,
285
+ isRateLimitError,
286
+ isStructuredError
287
+ } from "./chunk-D7QGE3RT.js";
288
+ import {
289
+ DEFAULT_OPENAI_BASE_URL
290
+ } from "./chunk-AXMWHKXA.js";
291
+ import {
292
+ getToolCallPreparations,
293
+ setToolCallPreparations
294
+ } from "./chunk-GLCZKT5V.js";
295
+ import {
296
+ combineAbortSignals,
297
+ createAbortController,
298
+ createChildAbortController
299
+ } from "./chunk-DJ2GSRLV.js";
212
300
  import {
213
301
  ApiRetryEvent,
214
302
  COMBINED_PASS_TOLERANCE_FACTOR,
@@ -326,7 +414,7 @@ import {
326
414
  updateMCPServerStatus,
327
415
  writeLine,
328
416
  writeLineSync
329
- } from "./chunk-UAAWNTOC.js";
417
+ } from "./chunk-4KM2SYK5.js";
330
418
  import {
331
419
  defaultModalities,
332
420
  isTieredEffortWireModel
@@ -355,65 +443,13 @@ import {
355
443
  isManagedMemoryPath,
356
444
  isTeamAutoMemPath,
357
445
  isUserAutoMemPath
358
- } from "./chunk-6OJDN5ZT.js";
446
+ } from "./chunk-G6MUFRNI.js";
359
447
  import {
360
448
  runSideQuery
361
- } from "./chunk-JRTJEGSP.js";
449
+ } from "./chunk-LSRI3ND3.js";
362
450
  import {
363
451
  STRUCTURED_OUTPUT_REDACTED_ARGS
364
- } from "./chunk-C2DR57L6.js";
365
- import {
366
- BUBBLE_APPROVAL_MODE,
367
- FORK_AGENT,
368
- FORK_DEFAULT_MAX_TURNS,
369
- FORK_PLACEHOLDER_RESULT,
370
- FORK_SUBAGENT_TYPE,
371
- SubagentError,
372
- SubagentErrorCode,
373
- buildAvailableSkillsReminder,
374
- buildChangedAgentsReminder,
375
- buildChangedMcpToolsReminder,
376
- buildChangedSkillsReminder,
377
- buildChildMessage,
378
- buildDeferredToolsReminder,
379
- buildForkExecutionAllowlist,
380
- buildForkedMessages,
381
- buildFunctionResponseParts,
382
- buildMcpServerInstructionsReminder,
383
- buildPinnedWorktreeNotice,
384
- buildWorktreeNotice,
385
- formatDateForContext,
386
- getDirectoryContextString,
387
- getFolderStructure,
388
- getInitialChatHistory,
389
- getStartupContextLength,
390
- isSystemReminderContent,
391
- normalizeForkTurns,
392
- registerForkDisplayImageForCache,
393
- resolveForkExecutionAllowedTools,
394
- runInForkContext,
395
- selectForkHistory,
396
- stripSystemReminderBlocks,
397
- validateForkToolList
398
- } from "./chunk-TROB4PZY.js";
399
- import {
400
- collectAvailableSkillEntries,
401
- renderAvailableSkillsBlock
402
- } from "./chunk-K623ENWT.js";
403
- import {
404
- escapeSystemReminderTags,
405
- escapeXml
406
- } from "./chunk-AQ37AY7B.js";
407
- import {
408
- DEFAULT_FILE_FILTERING_OPTIONS,
409
- DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES,
410
- QwenIgnoreParser,
411
- WorkspaceContext,
412
- formatQwenIgnoreFileNames,
413
- getQwenIgnoreFileNames,
414
- isPathWithinRoot,
415
- require_ignore
416
- } from "./chunk-UHF5VBKO.js";
452
+ } from "./chunk-PVXEJB66.js";
417
453
  import {
418
454
  AgentStatistics,
419
455
  BaseDeclarativeTool,
@@ -432,29 +468,7 @@ import {
432
468
  require_dist,
433
469
  require_fast_deep_equal,
434
470
  require_fast_uri
435
- } from "./chunk-ZRT36RSF.js";
436
- import {
437
- openBrowserSecurely,
438
- shouldAttemptBrowserLaunch
439
- } from "./chunk-NAVJD2PQ.js";
440
- import {
441
- isUnattendedMode,
442
- retryWithBackoff
443
- } from "./chunk-QEWAHAW2.js";
444
- import {
445
- classifyRetryError,
446
- isFallbackEligible
447
- } from "./chunk-FTGU6G45.js";
448
- import {
449
- QUOTA_EXHAUSTED_PREFIX,
450
- formatQuotaExhaustedMessage,
451
- getRateLimitErrorDetails,
452
- getRateLimitRetryDelayMs,
453
- isApiError,
454
- isQuotaExhaustedError,
455
- isRateLimitError,
456
- isStructuredError
457
- } from "./chunk-PSTHNTHF.js";
471
+ } from "./chunk-YIGGWOJE.js";
458
472
  import {
459
473
  AUTH_ENV_MAPPINGS,
460
474
  AuthType,
@@ -466,24 +480,11 @@ import {
466
480
  createContentGenerator,
467
481
  resetPreloadedContentGenerator,
468
482
  resolveContentGeneratorConfigWithSources
469
- } from "./chunk-XJ6IMYUS.js";
483
+ } from "./chunk-KWX56CHZ.js";
470
484
  import {
471
485
  DEFAULT_QWEN_EMBEDDING_MODEL,
472
486
  DEFAULT_QWEN_MODEL
473
487
  } from "./chunk-F6WFNA7U.js";
474
- import {
475
- atomicWriteFile,
476
- atomicWriteFileSync,
477
- atomicWriteJSON,
478
- renameWithRetry
479
- } from "./chunk-NW7SPXVG.js";
480
- import {
481
- DEFAULT_OPENAI_BASE_URL
482
- } from "./chunk-AXMWHKXA.js";
483
- import {
484
- getToolCallPreparations,
485
- setToolCallPreparations
486
- } from "./chunk-GLCZKT5V.js";
487
488
  import {
488
489
  normalizeMcpToolName,
489
490
  sanitizeToolNameForProvider
@@ -497,18 +498,19 @@ import {
497
498
  parsePositiveIntegerEnvValue,
498
499
  tokenLimit
499
500
  } from "./chunk-FPGTNKCP.js";
500
- import {
501
- combineAbortSignals,
502
- createAbortController,
503
- createChildAbortController
504
- } from "./chunk-DJ2GSRLV.js";
505
501
  import {
506
502
  getOrCreateMcpDispatcher,
507
503
  loadUndici,
508
504
  preloadRuntimeFetchModule,
509
505
  redactProxyError,
510
506
  setResolvedProxyUrlForRuntimeFetch
511
- } from "./chunk-H6BFLALJ.js";
507
+ } from "./chunk-4AOVQPJU.js";
508
+ import {
509
+ atomicWriteFile,
510
+ atomicWriteFileSync,
511
+ atomicWriteJSON,
512
+ renameWithRetry
513
+ } from "./chunk-YBHUXEC6.js";
512
514
  import {
513
515
  endHookSpan,
514
516
  endInteractionSpan,
@@ -518,10 +520,14 @@ import {
518
520
  endToolSpan,
519
521
  getActiveInteractionSpan,
520
522
  initializeTelemetry,
523
+ isBinary,
521
524
  isPerformanceMonitoringActive,
522
525
  isTelemetrySdkInitialized,
526
+ normalizeContent,
523
527
  recordCpuUsage,
528
+ recordInteractionActivity,
524
529
  recordMemoryUsage,
530
+ redactUrlCredentials,
525
531
  refreshSessionContext,
526
532
  runInSubagentSpanContext,
527
533
  runInToolSpanContext,
@@ -533,8 +539,9 @@ import {
533
539
  startToolBlockedOnUserSpan,
534
540
  startToolExecutionSpan,
535
541
  startToolSpan,
542
+ stripAnsiAndControl,
536
543
  truncateSpanError
537
- } from "./chunk-3MJ44LNC.js";
544
+ } from "./chunk-N4SVADAV.js";
538
545
  import {
539
546
  safeJsonStringify
540
547
  } from "./chunk-HHJLM3WQ.js";
@@ -576,6 +583,7 @@ import {
576
583
  formatTraceparent,
577
584
  getErrorMessage,
578
585
  getErrorStatus,
586
+ getErrorType,
579
587
  getProjectHash,
580
588
  getTraceContext,
581
589
  isAbortError,
@@ -591,7 +599,7 @@ import {
591
599
  tildeifyPath,
592
600
  toFriendlyError,
593
601
  unescapePath
594
- } from "./chunk-YMB77M76.js";
602
+ } from "./chunk-HOSVOUDK.js";
595
603
  import {
596
604
  require_src
597
605
  } from "./chunk-AMDSOFFV.js";
@@ -44961,6 +44969,19 @@ function detectCommandSubstitution(command) {
44961
44969
  }
44962
44970
  }
44963
44971
  if (char === "\\" && !inSingleQuotes) {
44972
+ if (nextChar === "\n" && command[i - 1] === "$") {
44973
+ let dollarStart = i - 1;
44974
+ while (dollarStart > 0 && command[dollarStart - 1] === "$") {
44975
+ dollarStart--;
44976
+ }
44977
+ let escapeStart = dollarStart;
44978
+ while (escapeStart > 0 && command[escapeStart - 1] === "\\") {
44979
+ escapeStart--;
44980
+ }
44981
+ if ((i - dollarStart) % 2 === 1 && (dollarStart - escapeStart) % 2 === 0 && command[i + 2] === "(") {
44982
+ return true;
44983
+ }
44984
+ }
44964
44985
  i += 2;
44965
44986
  continue;
44966
44987
  }
@@ -44983,6 +45004,9 @@ function detectCommandSubstitution(command) {
44983
45004
  if (char === "$" && nextChar === "(") {
44984
45005
  return true;
44985
45006
  }
45007
+ if (char === "$" && nextChar === "{" && /^\$\{[A-Za-z_][A-Za-z0-9_]*@P\}/.test(command.slice(i))) {
45008
+ return true;
45009
+ }
44986
45010
  if (char === "<" && nextChar === "(" && !inDoubleQuotes && !inBackticks) {
44987
45011
  return true;
44988
45012
  }
@@ -44998,7 +45022,7 @@ function detectCommandSubstitution(command) {
44998
45022
  return false;
44999
45023
  }
45000
45024
  __name(detectCommandSubstitution, "detectCommandSubstitution");
45001
- var COMMAND_SUBSTITUTION_WARNING = "Contains command substitution ($(...), backticks, <(...), or >(...)).";
45025
+ var COMMAND_SUBSTITUTION_WARNING = "Contains command substitution ($(...), backticks, <(...), >(...), or ${parameter@P}).";
45002
45026
  function hasShellSubstitution(rawCommand) {
45003
45027
  if (typeof rawCommand !== "string" || rawCommand.length === 0) return false;
45004
45028
  if (detectCommandSubstitution(rawCommand)) return true;
@@ -45018,7 +45042,7 @@ async function checkCommandPermissions(command, config, sessionAllowlist) {
45018
45042
  return {
45019
45043
  allAllowed: false,
45020
45044
  disallowedCommands: [command],
45021
- blockReason: "Command substitution using $(), `` ` ``, <(), or >() is not allowed for security reasons",
45045
+ blockReason: "Command substitution using $(), `` ` ``, <(), >(), or ${parameter@P} is not allowed for security reasons",
45022
45046
  isHardDenial: true
45023
45047
  };
45024
45048
  }
@@ -47894,7 +47918,16 @@ function evaluateSubstitutions(node) {
47894
47918
  /* @__PURE__ */ new Set(["command_substitution", "process_substitution"]),
47895
47919
  true
47896
47920
  );
47897
- if (substitutions.length === 0) return "read-only";
47921
+ if (substitutions.length === 0) {
47922
+ for (const expansion of collectDescendants(node, /* @__PURE__ */ new Set(["expansion"]))) {
47923
+ for (let i = 0; i < expansion.childCount - 1; i++) {
47924
+ if (expansion.child(i)?.type === "@" && expansion.child(i + 1)?.type === "P") {
47925
+ return "unknown";
47926
+ }
47927
+ }
47928
+ }
47929
+ return "read-only";
47930
+ }
47898
47931
  return mergeSafety(
47899
47932
  "unknown",
47900
47933
  ...substitutions.flatMap((substitution) => substitution.namedChildren).map(evaluateStatementSafety)
@@ -48042,6 +48075,13 @@ async function classifyInternal(command, cwd) {
48042
48075
  const safety = mergeSafety(
48043
48076
  ...root.namedChildren.map(evaluateStatementSafety)
48044
48077
  );
48078
+ if (safety === "read-only" && command.includes("\\\n")) {
48079
+ const normalizedSafety = await classifyInternal(
48080
+ command.replaceAll("\\\n", ""),
48081
+ cwd
48082
+ );
48083
+ if (normalizedSafety !== "read-only") return "unknown";
48084
+ }
48045
48085
  if (safety !== "read-only" || !cwd) return safety;
48046
48086
  return localGitConfigMakesCommandUnsafe(root, cwd) ? "unknown" : "read-only";
48047
48087
  } finally {
@@ -59802,7 +59842,7 @@ var HybridTokenStorage = class extends BaseTokenStorage {
59802
59842
  const forceFileStorage = process.env[FORCE_FILE_STORAGE_ENV_VAR] === "true";
59803
59843
  if (!forceFileStorage) {
59804
59844
  try {
59805
- const { KeychainTokenStorage: KeychainTokenStorage2 } = await import("./keychain-token-storage-GU75J2T2.js");
59845
+ const { KeychainTokenStorage: KeychainTokenStorage2 } = await import("./keychain-token-storage-NKKCUHI2.js");
59806
59846
  const keychainStorage = new KeychainTokenStorage2(this.serviceName);
59807
59847
  const isAvailable = await keychainStorage.isAvailable();
59808
59848
  if (isAvailable) {
@@ -61949,7 +61989,7 @@ function populateMcpServerCommand(mcpServers, mcpServerCommand, cwd) {
61949
61989
  __name(populateMcpServerCommand, "populateMcpServerCommand");
61950
61990
  async function discoverTools(mcpServerName, mcpServerConfig, mcpClient, cliConfig, opts) {
61951
61991
  try {
61952
- const { mcpToTool } = await import("./node-YSOU44FX.js");
61992
+ const { mcpToTool } = await import("./node-UUDY34IG.js");
61953
61993
  const mcpCallableTool = mcpToTool(mcpClient, {
61954
61994
  timeout: mcpServerConfig.timeout ?? MCP_DEFAULT_TIMEOUT_MSEC
61955
61995
  });
@@ -80420,9 +80460,8 @@ init_esbuild_shims();
80420
80460
 
80421
80461
  // packages/core/src/utils/getPty.ts
80422
80462
  init_esbuild_shims();
80423
- var BUN_FORCE_PTY_ENV_VAR = "QWEN_TUI_FORCE_PTY";
80424
80463
  var getPty = /* @__PURE__ */ __name(async () => {
80425
- if ("bun" in process.versions && process.env[BUN_FORCE_PTY_ENV_VAR] !== "1") {
80464
+ if ("bun" in process.versions) {
80426
80465
  return null;
80427
80466
  }
80428
80467
  try {
@@ -80445,45 +80484,6 @@ import { spawn as cpSpawn, spawnSync as spawnSync3 } from "node:child_process";
80445
80484
  import { TextDecoder as TextDecoder2 } from "node:util";
80446
80485
  import os11 from "node:os";
80447
80486
 
80448
- // packages/core/src/utils/textUtils.ts
80449
- init_esbuild_shims();
80450
- import { stripVTControlCharacters as stripVTControlCharacters2 } from "node:util";
80451
- var CONTROL_CHARS_RE = /[\u0000-\u001f\u007f-\u009f]/g;
80452
- function stripAnsiAndControl(text) {
80453
- return stripVTControlCharacters2(text).replace(CONTROL_CHARS_RE, "");
80454
- }
80455
- __name(stripAnsiAndControl, "stripAnsiAndControl");
80456
- function safeLiteralReplace(str, oldString, newString) {
80457
- if (oldString === "" || !str.includes(oldString)) {
80458
- return str;
80459
- }
80460
- if (!newString.includes("$")) {
80461
- return str.replaceAll(oldString, newString);
80462
- }
80463
- const escapedNewString = newString.replaceAll("$", "$$$$");
80464
- return str.replaceAll(oldString, escapedNewString);
80465
- }
80466
- __name(safeLiteralReplace, "safeLiteralReplace");
80467
- function isBinary(data, sampleSize = 512) {
80468
- if (!data) {
80469
- return false;
80470
- }
80471
- const sample = data.length > sampleSize ? data.subarray(0, sampleSize) : data;
80472
- for (const byte of sample) {
80473
- if (byte === 0) {
80474
- return true;
80475
- }
80476
- }
80477
- return false;
80478
- }
80479
- __name(isBinary, "isBinary");
80480
- function normalizeContent(content) {
80481
- let normalized2 = content.replace(/^\uFEFF/, "");
80482
- normalized2 = normalized2.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
80483
- return normalized2;
80484
- }
80485
- __name(normalizeContent, "normalizeContent");
80486
-
80487
80487
  // packages/core/src/utils/load-xterm-headless.ts
80488
80488
  init_esbuild_shims();
80489
80489
  var xtermHeadlessModulePromise;
@@ -83339,8 +83339,8 @@ var BackgroundShellRegistry = class {
83339
83339
  /**
83340
83340
  * Subscribe to new-entry events. Called synchronously inside `register()`.
83341
83341
  * Setting `undefined` clears the existing subscriber. Single-subscriber on
83342
- * purpose — the UI hook is the only consumer in the codebase, and a list
83343
- * would invite drift in error-handling.
83342
+ * purpose — each runtime installs one owner callback, and a list would
83343
+ * invite drift in error-handling.
83344
83344
  */
83345
83345
  setRegisterCallback(cb) {
83346
83346
  this.registerCallback = cb;
@@ -83349,14 +83349,19 @@ var BackgroundShellRegistry = class {
83349
83349
  this.notificationCallback = cb;
83350
83350
  }
83351
83351
  /**
83352
- * Subscribe to status transitions (running → terminal). Called
83353
- * synchronously inside `complete()` / `fail()` / `cancel()` after the
83354
- * entry has been mutated. Same single-subscriber rationale as
83355
- * `setRegisterCallback`.
83352
+ * Subscribe to registration and status transitions (running → terminal).
83353
+ * Called synchronously after the registry has been mutated. Same
83354
+ * single-subscriber rationale as `setRegisterCallback`.
83356
83355
  */
83357
83356
  setStatusChangeCallback(cb) {
83358
83357
  this.statusChangeCallback = cb;
83359
83358
  }
83359
+ /** Retract `cb` only if it is still the installed callback. */
83360
+ clearStatusChangeCallback(cb) {
83361
+ if (this.statusChangeCallback === cb) {
83362
+ this.statusChangeCallback = void 0;
83363
+ }
83364
+ }
83360
83365
  register(registration) {
83361
83366
  const entry = registration;
83362
83367
  entry.id = registration.shellId;
@@ -83612,8 +83617,8 @@ var BackgroundShellRegistry = class {
83612
83617
  * statusChange callback exactly once after the loop. The per-entry
83613
83618
  * `cancel()` path would have triggered both side channels for every
83614
83619
  * running shell — wasteful on shutdown / `/clear` where the only
83615
- * subscriber (`useBackgroundTaskView`) just re-pulls `getAll()`
83616
- * regardless of the entry argument.
83620
+ * current subscriber just re-pulls the registry regardless of the entry
83621
+ * argument.
83617
83622
  */
83618
83623
  abortAll() {
83619
83624
  const endTime = Date.now();
@@ -96570,16 +96575,6 @@ import * as fs52 from "node:fs";
96570
96575
  import * as path55 from "node:path";
96571
96576
  import * as os16 from "node:os";
96572
96577
 
96573
- // packages/core/src/extension/redaction.ts
96574
- init_esbuild_shims();
96575
- var REDACTED_URL_CREDENTIAL = "***REDACTED***";
96576
- var URL_CREDENTIALS_PATTERN = /\b([a-z][a-z0-9+.-]*:\/\/)(?:[^/\s]+@)+/gi;
96577
- var UPLOAD_IDENTITY_PATTERN = /\bupload:v1:[0-9a-fA-F-]+:/gu;
96578
- function redactUrlCredentials(source) {
96579
- return source.replace(UPLOAD_IDENTITY_PATTERN, "upload:").replace(URL_CREDENTIALS_PATTERN, `$1${REDACTED_URL_CREDENTIAL}@`);
96580
- }
96581
- __name(redactUrlCredentials, "redactUrlCredentials");
96582
-
96583
96578
  // packages/core/src/extension/http-client.ts
96584
96579
  init_esbuild_shims();
96585
96580
  import * as http2 from "node:http";
@@ -116723,6 +116718,8 @@ async function runSpeculativeLoop(config, state, cacheSafe, modelOverride) {
116723
116718
  toolName: canonicalToolName(name),
116724
116719
  args: invocation.params,
116725
116720
  signal: state.abortController.signal,
116721
+ sessionId: config.getSessionId(),
116722
+ cwd: config.getTargetDir(),
116726
116723
  ...invocationContext ? { invocationContext } : {}
116727
116724
  }
116728
116725
  );
@@ -129876,6 +129873,11 @@ __name(buildReplacement, "buildReplacement");
129876
129873
 
129877
129874
  // packages/core/src/tools/shell.ts
129878
129875
  var debugLogger125 = createDebugLogger("SHELL");
129876
+ var DEFAULT_SHELL_OUTPUT_THRESHOLD = 3e4;
129877
+ function getShellOutputThreshold(config) {
129878
+ return config.isTruncateToolOutputThresholdExplicit() ? config.getTruncateToolOutputThreshold() : DEFAULT_SHELL_OUTPUT_THRESHOLD;
129879
+ }
129880
+ __name(getShellOutputThreshold, "getShellOutputThreshold");
129879
129881
  function statusFileGuidance(outputPath) {
129880
129882
  return `status file: ${statusFilePathFor(outputPath)}
129881
129883
  To check whether this process is still running, Read the status file (status: running|completed|failed|cancelled). Do NOT infer liveness from the output file: programs often block-buffer stdout when not attached to a TTY, so an empty output file is normal while the process is alive (for live output, re-run with e.g. \`python -u\` or \`stdbuf -oL\`).`;
@@ -131531,6 +131533,7 @@ ${result.output}` : result.output;
131531
131533
  let persistedOutputFiles;
131532
131534
  if (typeof llmContent === "string") {
131533
131535
  const originalLlmContent = llmContent;
131536
+ const outputThreshold = getShellOutputThreshold(this.config);
131534
131537
  const truncatedResult = await truncateToolOutput(
131535
131538
  this.config,
131536
131539
  ShellTool.Name,
@@ -131541,11 +131544,11 @@ ${result.output}` : result.output;
131541
131544
  // scheduler) so the long-run hint below is appended OUTSIDE the
131542
131545
  // truncation envelope; the scheduler's sentinel makes its later pass a
131543
131546
  // no-op here. lines: Infinity keeps this char-only so the global line
131544
- // cap can't undercut the declared 30k char budget — many short lines
131547
+ // cap can't undercut the effective Shell char budget — many short lines
131545
131548
  // (e.g. `find /`, `ls -R`) would otherwise truncate while chars remain.
131546
131549
  {
131547
- threshold: 3e4,
131548
- previewChars: 4e3,
131550
+ threshold: outputThreshold,
131551
+ previewChars: Math.min(4e3, outputThreshold),
131549
131552
  keep: "both",
131550
131553
  lines: Number.POSITIVE_INFINITY
131551
131554
  }
@@ -132743,7 +132746,7 @@ var ShellTool = class _ShellTool extends BaseDeclarativeTool {
132743
132746
  }
132744
132747
  static Name = ToolNames.SHELL;
132745
132748
  get maxOutputChars() {
132746
- return 3e4;
132749
+ return getShellOutputThreshold(this.config);
132747
132750
  }
132748
132751
  validateToolParamValues(params) {
132749
132752
  if (!params.command.trim()) {
@@ -132892,6 +132895,7 @@ var TRUNCATION_EDIT_REJECTION = "Your previous response was truncated due to max
132892
132895
  function setToolSpanFailure(span, failureKind, message) {
132893
132896
  try {
132894
132897
  span.setAttribute(TOOL_FAILURE_KIND_ATTRIBUTE, failureKind);
132898
+ span.setAttribute("error.type", failureKind);
132895
132899
  span.setAttribute("success", false);
132896
132900
  } catch {
132897
132901
  }
@@ -133731,7 +133735,8 @@ var CoreToolScheduler = class {
133731
133735
  * second call for the same callId is a no-op.
133732
133736
  *
133733
133737
  * No `metadata` parameter: every caller pre-sets span status via
133734
- * `setToolSpan{Failure,Cancelled,Ok}` before this call (#4321 review).
133738
+ * `setToolSpan{Failure,Cancelled}` or the success path before this call
133739
+ * (#4321 review).
133735
133740
  */
133736
133741
  finalizeToolSpan(callId, force = false) {
133737
133742
  this.bouncedAwaitingApproval.delete(callId);
@@ -135660,6 +135665,8 @@ var CoreToolScheduler = class {
135660
135665
  toolName: canonicalName,
135661
135666
  args: invocation.params,
135662
135667
  signal,
135668
+ sessionId: this.config.getSessionId(),
135669
+ cwd: this.config.getTargetDir(),
135663
135670
  ...invocationContext ? { invocationContext } : {}
135664
135671
  }
135665
135672
  );
@@ -136212,7 +136219,6 @@ ${body}
136212
136219
  return;
136213
136220
  }
136214
136221
  this.setStatusInternal(callId, "success", successResponse);
136215
- safeSetStatus(span, { code: SpanStatusCode.OK });
136216
136222
  try {
136217
136223
  span.setAttribute("success", true);
136218
136224
  } catch {
@@ -145506,6 +145512,33 @@ var GeminiClient = class _GeminiClient {
145506
145512
  }
145507
145513
  async *sendMessageStream(request, callerSignal, prompt_id, options2, turns = MAX_TURNS2) {
145508
145514
  const messageType = options2?.type ?? "userQuery" /* UserQuery */;
145515
+ const startsInteraction = messageType === "userQuery" /* UserQuery */ || messageType === "retry" /* Retry */ || messageType === "cron" /* Cron */ || messageType === "notification" /* Notification */ || messageType === "teammate" /* Teammate */ || messageType === "goal" /* Goal */;
145516
+ let interactionOwner = startsInteraction ? void 0 : getActiveInteractionSpan(prompt_id);
145517
+ if (interactionOwner) {
145518
+ recordInteractionActivity(prompt_id, interactionOwner);
145519
+ }
145520
+ const agentOutput = new AgentOutputMessageCapture(this.config);
145521
+ const endCurrentInteraction = /* @__PURE__ */ __name((status, errorMessage, errorType) => {
145522
+ if (!interactionOwner || getActiveInteractionSpan(prompt_id) !== interactionOwner) {
145523
+ return;
145524
+ }
145525
+ if (status === "ok" && this.config.getJsonSchema?.()) {
145526
+ endInteractionSpan("error", {
145527
+ promptId: prompt_id,
145528
+ errorMessage: "model did not produce structured output",
145529
+ errorType: "structured_output_missing"
145530
+ });
145531
+ return;
145532
+ }
145533
+ if (status === "ok") {
145534
+ agentOutput.writeToSpan(interactionOwner);
145535
+ }
145536
+ endInteractionSpan(status, {
145537
+ promptId: prompt_id,
145538
+ ...errorMessage ? { errorMessage } : {},
145539
+ ...errorType ? { errorType } : {}
145540
+ });
145541
+ }, "endCurrentInteraction");
145509
145542
  if (messageType === "userQuery" /* UserQuery */ || messageType === "cron" /* Cron */ || messageType === "notification" /* Notification */ || messageType === "teammate" /* Teammate */) {
145510
145543
  await this.config.assertCanStartTurn();
145511
145544
  }
@@ -145663,6 +145696,23 @@ var GeminiClient = class _GeminiClient {
145663
145696
  pushCountAfterStrip = currentPushCount();
145664
145697
  }
145665
145698
  const preHookUserPromptText = messageType === "userQuery" /* UserQuery */ ? partToString(request) : void 0;
145699
+ if (startsInteraction) {
145700
+ this.loopDetector.reset(prompt_id);
145701
+ this.lastPromptId = prompt_id;
145702
+ startInteractionSpan(this.config, {
145703
+ promptId: prompt_id,
145704
+ model: options2?.modelOverride ?? this.config.getModel(),
145705
+ messageType
145706
+ });
145707
+ interactionOwner = getActiveInteractionSpan(prompt_id);
145708
+ if (interactionOwner && messageType === "userQuery" /* UserQuery */ && typeof options2?.submittedPrompt === "string") {
145709
+ addAgentInputMessageAttributes(
145710
+ this.config,
145711
+ interactionOwner,
145712
+ options2.submittedPrompt
145713
+ );
145714
+ }
145715
+ }
145666
145716
  let userPromptRecordPayload;
145667
145717
  let hooksEnabled;
145668
145718
  let messageBus;
@@ -145703,9 +145753,12 @@ var GeminiClient = class _GeminiClient {
145703
145753
  await runtime.finishTurn(goalPermit);
145704
145754
  goalPermitReleased = true;
145705
145755
  closeGoalStateEvents();
145756
+ endCurrentInteraction("cancelled");
145706
145757
  for (const goalEvent of takePendingGoalEvents()) {
145707
145758
  yield goalEvent;
145708
145759
  }
145760
+ } else {
145761
+ endCurrentInteraction("cancelled");
145709
145762
  }
145710
145763
  yield {
145711
145764
  type: "user_prompt_submit_blocked" /* UserPromptSubmitBlocked */,
@@ -145733,6 +145786,11 @@ var GeminiClient = class _GeminiClient {
145733
145786
  }
145734
145787
  }
145735
145788
  } catch (error) {
145789
+ endCurrentInteraction(
145790
+ signal.aborted ? "cancelled" : "error",
145791
+ signal.aborted ? void 0 : "UserPromptSubmit hook failed",
145792
+ signal.aborted ? void 0 : getErrorType(error)
145793
+ );
145736
145794
  for (const goalEvent of await finalizeInterruptedGoalTurn()) {
145737
145795
  yield goalEvent;
145738
145796
  }
@@ -145782,6 +145840,11 @@ var GeminiClient = class _GeminiClient {
145782
145840
  }
145783
145841
  if (goalRuntime) bindGoalStateEvents(goalRuntime);
145784
145842
  } catch (error) {
145843
+ endCurrentInteraction(
145844
+ signal.aborted ? "cancelled" : "error",
145845
+ signal.aborted ? void 0 : "Goal turn admission failed",
145846
+ signal.aborted ? void 0 : getErrorType(error)
145847
+ );
145785
145848
  for (const goalEvent of await finalizeInterruptedGoalTurn()) {
145786
145849
  yield goalEvent;
145787
145850
  }
@@ -145813,20 +145876,12 @@ var GeminiClient = class _GeminiClient {
145813
145876
  );
145814
145877
  this.activeAutomaticTodoWorkChainPromptIds.add(prompt_id);
145815
145878
  }
145816
- const isTopLevelInteraction = messageType === "userQuery" /* UserQuery */ || messageType === "cron" /* Cron */ || messageType === "notification" /* Notification */ || messageType === "teammate" /* Teammate */;
145817
145879
  if (messageType === "goal" /* Goal */) {
145818
145880
  this.loopDetector.reset(prompt_id);
145819
145881
  this.lastPromptId = prompt_id;
145820
145882
  }
145821
- if (isTopLevelInteraction) {
145822
- this.loopDetector.reset(prompt_id);
145823
- this.lastPromptId = prompt_id;
145824
- startInteractionSpan(this.config, {
145825
- promptId: prompt_id,
145826
- model: options2?.modelOverride ?? this.config.getModel(),
145827
- messageType
145828
- });
145829
- const interactionSpan = getActiveInteractionSpan();
145883
+ if (startsInteraction) {
145884
+ const interactionSpan = interactionOwner;
145830
145885
  if (interactionSpan && this.config.getTelemetryIncludeSensitiveSpanAttributes?.()) {
145831
145886
  addUserPromptAttributes(
145832
145887
  this.config,
@@ -145960,18 +146015,18 @@ var GeminiClient = class _GeminiClient {
145960
146015
  if (this.config.getMaxSessionTurns() > 0 && this.sessionTurnCount > this.config.getMaxSessionTurns()) {
145961
146016
  this.cancelPendingMemoryPrefetch("no_safe_delivery_point");
145962
146017
  yield { type: "max_session_turns" /* MaxSessionTurns */ };
145963
- if (isTopLevelInteraction)
145964
- endInteractionSpan("error", {
145965
- errorMessage: "max session turns exceeded"
145966
- });
146018
+ endCurrentInteraction(
146019
+ "error",
146020
+ "max session turns exceeded",
146021
+ "max_session_turns"
146022
+ );
145967
146023
  return new Turn(this.getChat(), prompt_id);
145968
146024
  }
145969
146025
  }
145970
146026
  const boundedTurns = messageType === "goal" /* Goal */ ? MAX_TURNS2 : Math.min(turns, MAX_TURNS2);
145971
146027
  if (!boundedTurns) {
145972
146028
  this.cancelPendingMemoryPrefetch("no_safe_delivery_point");
145973
- if (isTopLevelInteraction)
145974
- endInteractionSpan("error", { errorMessage: "max turns exhausted" });
146029
+ endCurrentInteraction("error", "max turns exhausted", "max_turns");
145975
146030
  return new Turn(this.getChat(), prompt_id);
145976
146031
  }
145977
146032
  const takeSteerInput = /* @__PURE__ */ __name(async (nextTurnBudget) => {
@@ -146005,10 +146060,11 @@ var GeminiClient = class _GeminiClient {
146005
146060
  message: `Session token limit exceeded: ${lastPromptTokenCount} tokens > ${sessionTokenLimit} limit. Please start a new session or increase the sessionTokenLimit in your settings.json.`
146006
146061
  }
146007
146062
  };
146008
- if (isTopLevelInteraction)
146009
- endInteractionSpan("error", {
146010
- errorMessage: "session token limit exceeded"
146011
- });
146063
+ endCurrentInteraction(
146064
+ "error",
146065
+ "session token limit exceeded",
146066
+ "session_token_limit"
146067
+ );
146012
146068
  return new Turn(this.getChat(), prompt_id);
146013
146069
  }
146014
146070
  }
@@ -146042,7 +146098,7 @@ var GeminiClient = class _GeminiClient {
146042
146098
  );
146043
146099
  await arenaAgentClient.reportCancelled();
146044
146100
  this.cancelPendingMemoryPrefetch("abort");
146045
- if (isTopLevelInteraction) endInteractionSpan("cancelled");
146101
+ endCurrentInteraction("cancelled");
146046
146102
  return new Turn(this.getChat(), prompt_id);
146047
146103
  }
146048
146104
  }
@@ -146177,6 +146233,7 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146177
146233
  signal,
146178
146234
  (message) => this.config.getDebugLogger().warn(message)
146179
146235
  ) : null;
146236
+ agentOutput.beginResponse();
146180
146237
  const resultStream = turn.run(model, requestToSend, signal);
146181
146238
  let didUpdateIdeContextState = false;
146182
146239
  let steerInputSettled = false;
@@ -146190,6 +146247,14 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146190
146247
  hasToolCalls = true;
146191
146248
  } else if (event.type === "retry" /* Retry */ || event.type === "model_fallback" /* ModelFallback */) {
146192
146249
  hasToolCalls = false;
146250
+ agentOutput.restartAttempt(
146251
+ event.type === "retry" /* Retry */ && event.isContinuation === true
146252
+ );
146253
+ }
146254
+ if (event.type === "content" /* Content */) {
146255
+ agentOutput.appendText(event.value);
146256
+ } else if (event.type === "finished" /* Finished */) {
146257
+ agentOutput.observeFinishReason(event.value?.reason);
146193
146258
  }
146194
146259
  if (messageDisplay && event.type === "content" /* Content */) {
146195
146260
  messageDisplay.addChunk(event.value);
@@ -146214,8 +146279,7 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146214
146279
  await arenaAgentClient.reportError("Loop detected");
146215
146280
  }
146216
146281
  this.lastApiCompletionTimestamp = Date.now();
146217
- if (isTopLevelInteraction)
146218
- endInteractionSpan("error", { errorMessage: "loop detected" });
146282
+ endCurrentInteraction("error", "loop detected", "loop_detected");
146219
146283
  this.cancelPendingMemoryPrefetch("no_safe_delivery_point");
146220
146284
  this.fireLoopDetectedStopFailure(loopType);
146221
146285
  return turn;
@@ -146235,8 +146299,7 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146235
146299
  await arenaAgentClient.reportError("Loop detected");
146236
146300
  }
146237
146301
  this.lastApiCompletionTimestamp = Date.now();
146238
- if (isTopLevelInteraction)
146239
- endInteractionSpan("error", { errorMessage: "loop detected" });
146302
+ endCurrentInteraction("error", "loop detected", "loop_detected");
146240
146303
  this.cancelPendingMemoryPrefetch("no_safe_delivery_point");
146241
146304
  this.fireLoopDetectedStopFailure(loopType);
146242
146305
  return turn;
@@ -146283,10 +146346,12 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146283
146346
  await arenaAgentClient.reportError(errorMsg);
146284
146347
  }
146285
146348
  this.lastApiCompletionTimestamp = Date.now();
146286
- if (isTopLevelInteraction) {
146287
- const errMsg = event.value instanceof Error ? "[API error]" : "unknown error";
146288
- endInteractionSpan("error", { errorMessage: errMsg });
146289
- }
146349
+ const errMsg = event.value instanceof Error ? "[API error]" : "unknown error";
146350
+ endCurrentInteraction(
146351
+ "error",
146352
+ errMsg,
146353
+ event.value instanceof Error ? getErrorType(event.value) : "api_error"
146354
+ );
146290
146355
  this.cancelPendingMemoryPrefetch("no_safe_delivery_point");
146291
146356
  return turn;
146292
146357
  }
@@ -146294,6 +146359,9 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146294
146359
  } finally {
146295
146360
  await messageDisplay?.finish();
146296
146361
  }
146362
+ agentOutput.commitResponse(
146363
+ hasToolCalls || turn.pendingToolCalls.length > 0
146364
+ );
146297
146365
  for (const goalEvent of signal.aborted ? await finalizeInterruptedGoalTurn() : takePendingGoalEvents()) {
146298
146366
  yield goalEvent;
146299
146367
  }
@@ -146320,9 +146388,10 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146320
146388
  } finally {
146321
146389
  settleSteerInput(steerInput, pushCountBefore);
146322
146390
  }
146323
- if (isTopLevelInteraction)
146324
- endInteractionSpan(signal.aborted ? "cancelled" : "ok");
146325
146391
  hasToolCalls = steeredTurn.pendingToolCalls.length > 0;
146392
+ if (!hasToolCalls) {
146393
+ endCurrentInteraction(signal.aborted ? "cancelled" : "ok");
146394
+ }
146326
146395
  normalCompletion = true;
146327
146396
  return steeredTurn;
146328
146397
  }
@@ -146360,7 +146429,7 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146360
146429
  if (activeGoalEvent2) {
146361
146430
  yield activeGoalEvent2;
146362
146431
  }
146363
- if (isTopLevelInteraction) endInteractionSpan("cancelled");
146432
+ endCurrentInteraction("cancelled");
146364
146433
  return turn;
146365
146434
  }
146366
146435
  const hookOutput = response.output ? createHookOutput("Stop", response.output) : void 0;
@@ -146392,7 +146461,7 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146392
146461
  for (const goalEvent of await finalizeInterruptedGoalTurn()) {
146393
146462
  yield goalEvent;
146394
146463
  }
146395
- if (isTopLevelInteraction) endInteractionSpan("ok");
146464
+ endCurrentInteraction("ok");
146396
146465
  return turn;
146397
146466
  } else {
146398
146467
  for (const goalEvent of takePendingGoalEvents()) {
@@ -146416,7 +146485,7 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146416
146485
  for (const goalEvent of await finalizeInterruptedGoalTurn()) {
146417
146486
  yield goalEvent;
146418
146487
  }
146419
- if (isTopLevelInteraction) endInteractionSpan("cancelled");
146488
+ endCurrentInteraction("cancelled");
146420
146489
  return turn;
146421
146490
  }
146422
146491
  const continueRequest = [{ text: continueReason }];
@@ -146445,8 +146514,9 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146445
146514
  } finally {
146446
146515
  settleSteerInput(pendingSteer, pushCountBefore);
146447
146516
  }
146448
- if (isTopLevelInteraction) {
146449
- endInteractionSpan(signal.aborted ? "cancelled" : "ok");
146517
+ hasToolCalls = hookTurn.pendingToolCalls.length > 0;
146518
+ if (!hasToolCalls) {
146519
+ endCurrentInteraction(signal.aborted ? "cancelled" : "ok");
146450
146520
  }
146451
146521
  normalCompletion = true;
146452
146522
  return hookTurn;
@@ -146460,7 +146530,7 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146460
146530
  if (activeGoalEvent3) {
146461
146531
  yield activeGoalEvent3;
146462
146532
  }
146463
- if (isTopLevelInteraction) endInteractionSpan("cancelled");
146533
+ endCurrentInteraction("cancelled");
146464
146534
  return turn;
146465
146535
  }
146466
146536
  const continueReason = getStopHookContinuationReason(stopOutput);
@@ -146492,7 +146562,7 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146492
146562
  value: warning
146493
146563
  };
146494
146564
  debugLogger136.warn(warning);
146495
- if (isTopLevelInteraction) endInteractionSpan("ok");
146565
+ endCurrentInteraction("ok");
146496
146566
  return turn;
146497
146567
  }
146498
146568
  const activeGoalEvent2 = maybeEmitActiveGoalChange(
@@ -146527,7 +146597,7 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146527
146597
  const discardGoalContinuation = goalContinuationChanged && response.hasNonGoalBlockingStopHook === false;
146528
146598
  const continuationReasonAfterSteer = discardGoalContinuation ? void 0 : goalContinuationChanged && response.hasNonGoalBlockingStopHook === true ? response.nonGoalBlockingStopReason || "No reason provided" : continueReason;
146529
146599
  if (!continuationReasonAfterSteer && !pendingSteer) {
146530
- if (isTopLevelInteraction) endInteractionSpan("ok");
146600
+ endCurrentInteraction("ok");
146531
146601
  normalCompletion = true;
146532
146602
  return turn;
146533
146603
  }
@@ -146563,9 +146633,10 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146563
146633
  } finally {
146564
146634
  settleSteerInput(pendingSteer, pushCountBefore);
146565
146635
  }
146566
- if (isTopLevelInteraction)
146567
- endInteractionSpan(signal.aborted ? "cancelled" : "ok");
146568
146636
  hasToolCalls = hookTurn.pendingToolCalls.length > 0;
146637
+ if (!hasToolCalls) {
146638
+ endCurrentInteraction(signal.aborted ? "cancelled" : "ok");
146639
+ }
146569
146640
  normalCompletion = true;
146570
146641
  return hookTurn;
146571
146642
  }
@@ -146590,6 +146661,7 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146590
146661
  for (const goalEvent of takePendingGoalEvents()) {
146591
146662
  yield goalEvent;
146592
146663
  }
146664
+ endCurrentInteraction("ok");
146593
146665
  normalCompletion = true;
146594
146666
  return turn;
146595
146667
  }
@@ -146619,7 +146691,7 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146619
146691
  if (arenaAgentClient) {
146620
146692
  await arenaAgentClient.reportCompleted();
146621
146693
  }
146622
- if (isTopLevelInteraction) endInteractionSpan("ok");
146694
+ endCurrentInteraction("ok");
146623
146695
  return turn;
146624
146696
  }
146625
146697
  const nextSpeakerCheck = await checkNextSpeaker(
@@ -146658,9 +146730,10 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146658
146730
  } finally {
146659
146731
  settleSteerInput(pendingSteer, pushCountBefore);
146660
146732
  }
146661
- if (isTopLevelInteraction)
146662
- endInteractionSpan(signal.aborted ? "cancelled" : "ok");
146663
146733
  hasToolCalls = continueTurn.pendingToolCalls.length > 0;
146734
+ if (!hasToolCalls) {
146735
+ endCurrentInteraction(signal.aborted ? "cancelled" : "ok");
146736
+ }
146664
146737
  normalCompletion = true;
146665
146738
  return continueTurn;
146666
146739
  }
@@ -146674,8 +146747,8 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146674
146747
  if (signal?.aborted && arenaAgentClient) {
146675
146748
  await arenaAgentClient.reportCancelled();
146676
146749
  }
146677
- if (isTopLevelInteraction) {
146678
- endInteractionSpan(signal?.aborted ? "cancelled" : "ok");
146750
+ if (!hasToolCalls) {
146751
+ endCurrentInteraction(signal?.aborted ? "cancelled" : "ok");
146679
146752
  }
146680
146753
  if (!hasToolCalls) {
146681
146754
  this.cancelPendingMemoryPrefetch("no_safe_delivery_point");
@@ -146707,10 +146780,12 @@ The current date is: ${today}. Note: This is the authoritative current date \u20
146707
146780
  signal?.aborted ? "abort" : "no_safe_delivery_point"
146708
146781
  );
146709
146782
  }
146710
- if (isTopLevelInteraction) {
146711
- endInteractionSpan(signal?.aborted ? "cancelled" : "error", {
146712
- errorMessage: "unexpected exit"
146713
- });
146783
+ if (!normalCompletion) {
146784
+ endCurrentInteraction(
146785
+ signal?.aborted ? "cancelled" : "error",
146786
+ signal?.aborted ? void 0 : "unexpected exit",
146787
+ signal?.aborted ? void 0 : "unexpected_exit"
146788
+ );
146714
146789
  }
146715
146790
  }
146716
146791
  }
@@ -148711,6 +148786,7 @@ var Config = class _Config {
148711
148786
  runtimeStatusWrite = Promise.resolve();
148712
148787
  fileExclusions;
148713
148788
  truncateToolOutputThreshold;
148789
+ truncateToolOutputThresholdExplicit;
148714
148790
  truncateToolOutputLines;
148715
148791
  toolOutputBatchBudget;
148716
148792
  shellDefaultTimeoutMs;
@@ -148963,6 +149039,7 @@ var Config = class _Config {
148963
149039
  maxBufferedOutputBytes: params.shellExecutionConfig?.maxBufferedOutputBytes
148964
149040
  };
148965
149041
  this.truncateToolOutputThreshold = params.truncateToolOutputThreshold ?? DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD;
149042
+ this.truncateToolOutputThresholdExplicit = params.truncateToolOutputThreshold != null;
148966
149043
  this.truncateToolOutputLines = params.truncateToolOutputLines ?? DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES;
148967
149044
  this.toolOutputBatchBudget = params.toolOutputBatchBudget ?? DEFAULT_TOOL_OUTPUT_BATCH_BUDGET;
148968
149045
  this.shellDefaultTimeoutMs = params.shellDefaultTimeoutMs !== void 0 && Number.isInteger(params.shellDefaultTimeoutMs) && params.shellDefaultTimeoutMs >= 0 && params.shellDefaultTimeoutMs <= 2147483647 ? params.shellDefaultTimeoutMs : void 0;
@@ -152820,6 +152897,9 @@ var Config = class _Config {
152820
152897
  }
152821
152898
  return this.truncateToolOutputThreshold;
152822
152899
  }
152900
+ isTruncateToolOutputThresholdExplicit() {
152901
+ return this.truncateToolOutputThresholdExplicit;
152902
+ }
152823
152903
  getTruncateToolOutputLines() {
152824
152904
  if (this.truncateToolOutputLines <= 0) {
152825
152905
  return Number.POSITIVE_INFINITY;
@@ -153370,7 +153450,7 @@ var Config = class _Config {
153370
153450
  }
153371
153451
  if (!enabled) return;
153372
153452
  registry.registerFactory(ToolNames.IMAGE_GEN, async () => {
153373
- const { ImageGenTool } = await import("./image-gen-DC2IQZ73.js");
153453
+ const { ImageGenTool } = await import("./image-gen-YPK2AZT4.js");
153374
153454
  return new ImageGenTool(this);
153375
153455
  });
153376
153456
  }
@@ -153400,36 +153480,36 @@ var Config = class _Config {
153400
153480
  if (options2?.forSubAgent) return;
153401
153481
  const schema = this.jsonSchema;
153402
153482
  await registerLazy(ToolNames.STRUCTURED_OUTPUT, async () => {
153403
- const { SyntheticOutputTool } = await import("./syntheticOutput-SEW4NA47.js");
153483
+ const { SyntheticOutputTool } = await import("./syntheticOutput-DVHJMUGV.js");
153404
153484
  return new SyntheticOutputTool(schema);
153405
153485
  });
153406
153486
  }, "registerStructuredOutputIfRequested");
153407
153487
  const registerGoalWorkerTools = /* @__PURE__ */ __name(async () => {
153408
153488
  if (options2?.forSubAgent) return;
153409
153489
  await registerLazy(ToolNames.GET_GOAL, async () => {
153410
- const { GetGoalTool } = await import("./goal-tools-LQFO4BRY.js");
153490
+ const { GetGoalTool } = await import("./goal-tools-M4UDAZXP.js");
153411
153491
  return new GetGoalTool(this);
153412
153492
  });
153413
153493
  await registerLazy(ToolNames.UPDATE_GOAL, async () => {
153414
- const { UpdateGoalTool } = await import("./goal-tools-LQFO4BRY.js");
153494
+ const { UpdateGoalTool } = await import("./goal-tools-M4UDAZXP.js");
153415
153495
  return new UpdateGoalTool(this);
153416
153496
  });
153417
153497
  }, "registerGoalWorkerTools");
153418
153498
  if (this.getBareMode()) {
153419
153499
  await registerLazy(ToolNames.READ_FILE, async () => {
153420
- const { ReadFileTool } = await import("./read-file-IYEBTQT5.js");
153500
+ const { ReadFileTool } = await import("./read-file-LOVUSBJC.js");
153421
153501
  return new ReadFileTool(this);
153422
153502
  });
153423
153503
  await registerLazy(ToolNames.EDIT, async () => {
153424
- const { EditTool } = await import("./edit-OXBMFY5B.js");
153504
+ const { EditTool } = await import("./edit-X73LA4YO.js");
153425
153505
  return new EditTool(this);
153426
153506
  });
153427
153507
  await registerLazy(ToolNames.NOTEBOOK_EDIT, async () => {
153428
- const { NotebookEditTool } = await import("./notebook-edit-STSSB5KQ.js");
153508
+ const { NotebookEditTool } = await import("./notebook-edit-QD4TRKLY.js");
153429
153509
  return new NotebookEditTool(this);
153430
153510
  });
153431
153511
  await registerLazy(ToolNames.SHELL, async () => {
153432
- const { ShellTool: ShellTool2 } = await import("./shell-AR7XFLHA.js");
153512
+ const { ShellTool: ShellTool2 } = await import("./shell-EGTSUO2P.js");
153433
153513
  return new ShellTool2(this);
153434
153514
  });
153435
153515
  await registerGoalWorkerTools();
@@ -153441,43 +153521,43 @@ var Config = class _Config {
153441
153521
  }
153442
153522
  await registerGoalWorkerTools();
153443
153523
  await registerLazy(ToolNames.TOOL_SEARCH, async () => {
153444
- const { ToolSearchTool } = await import("./tool-search-4UVNFYWU.js");
153524
+ const { ToolSearchTool } = await import("./tool-search-QNBLXUGR.js");
153445
153525
  return new ToolSearchTool(this);
153446
153526
  });
153447
153527
  await registerLazy(ToolNames.READ_MCP_RESOURCE, async () => {
153448
- const { ReadMcpResourceTool } = await import("./read-mcp-resource-THCSZHXO.js");
153528
+ const { ReadMcpResourceTool } = await import("./read-mcp-resource-GWCP23WG.js");
153449
153529
  return new ReadMcpResourceTool(this);
153450
153530
  });
153451
153531
  await registerLazy(ToolNames.AGENT, async () => {
153452
- const { AgentTool: AgentTool2 } = await import("./agent-43KVQSB5.js");
153532
+ const { AgentTool: AgentTool2 } = await import("./agent-E6V3VXQR.js");
153453
153533
  return new AgentTool2(this);
153454
153534
  });
153455
153535
  await registerLazy(ToolNames.LIST_AGENTS, async () => {
153456
- const { ListAgentsTool } = await import("./list-agents-5PNMK2AM.js");
153536
+ const { ListAgentsTool } = await import("./list-agents-O6WSY4CT.js");
153457
153537
  return new ListAgentsTool(this);
153458
153538
  });
153459
153539
  await registerLazy(ToolNames.TASK_STOP, async () => {
153460
- const { TaskStopTool } = await import("./task-stop-MAYQJ42I.js");
153540
+ const { TaskStopTool } = await import("./task-stop-YFNATTIM.js");
153461
153541
  return new TaskStopTool(this);
153462
153542
  });
153463
153543
  await registerLazy(ToolNames.SEND_MESSAGE, async () => {
153464
- const { SendMessageTool } = await import("./send-message-P5SLP57G.js");
153544
+ const { SendMessageTool } = await import("./send-message-O7FO63UK.js");
153465
153545
  return new SendMessageTool(this);
153466
153546
  });
153467
153547
  await registerLazy(ToolNames.SKILL, async () => {
153468
- const { SkillTool } = await import("./skill-K6NOUUYM.js");
153548
+ const { SkillTool } = await import("./skill-IFUD72GF.js");
153469
153549
  return new SkillTool(this);
153470
153550
  });
153471
153551
  await registerLazy(ToolNames.LS, async () => {
153472
- const { LSTool } = await import("./ls-RPRSX26R.js");
153552
+ const { LSTool } = await import("./ls-6W2D7TKU.js");
153473
153553
  return new LSTool(this);
153474
153554
  });
153475
153555
  await registerLazy(ToolNames.READ_FILE, async () => {
153476
- const { ReadFileTool } = await import("./read-file-IYEBTQT5.js");
153556
+ const { ReadFileTool } = await import("./read-file-LOVUSBJC.js");
153477
153557
  return new ReadFileTool(this);
153478
153558
  });
153479
153559
  await registerLazy(ToolNames.ZOOM_IMAGE, async () => {
153480
- const { ZoomImageTool } = await import("./zoom-image-4TQA5GHG.js");
153560
+ const { ZoomImageTool } = await import("./zoom-image-4MVVVM7E.js");
153481
153561
  return new ZoomImageTool(this);
153482
153562
  });
153483
153563
  if (this.getUseRipgrep()) {
@@ -153492,7 +153572,7 @@ var Config = class _Config {
153492
153572
  recordStartupEvent("config_initialize_ripgrep_probe_end");
153493
153573
  if (useRipgrep) {
153494
153574
  await registerLazy(ToolNames.GREP, async () => {
153495
- const { RipGrepTool: RipGrepTool2 } = await import("./ripGrep-VV2CRCL2.js");
153575
+ const { RipGrepTool: RipGrepTool2 } = await import("./ripGrep-ZJSHKB6H.js");
153496
153576
  return new RipGrepTool2(this);
153497
153577
  });
153498
153578
  } else {
@@ -153505,7 +153585,7 @@ var Config = class _Config {
153505
153585
  )
153506
153586
  );
153507
153587
  await registerLazy(ToolNames.GREP, async () => {
153508
- const { GrepTool } = await import("./grep-6CN23ZPS.js");
153588
+ const { GrepTool } = await import("./grep-F4UAR7KX.js");
153509
153589
  return new GrepTool(this);
153510
153590
  });
153511
153591
  }
@@ -153513,77 +153593,77 @@ var Config = class _Config {
153513
153593
  recordStartupEvent("config_initialize_ripgrep_probe_start");
153514
153594
  recordStartupEvent("config_initialize_ripgrep_probe_end");
153515
153595
  await registerLazy(ToolNames.GREP, async () => {
153516
- const { GrepTool } = await import("./grep-6CN23ZPS.js");
153596
+ const { GrepTool } = await import("./grep-F4UAR7KX.js");
153517
153597
  return new GrepTool(this);
153518
153598
  });
153519
153599
  }
153520
153600
  await registerLazy(ToolNames.GLOB, async () => {
153521
- const { GlobTool } = await import("./glob-JKVAHWL5.js");
153601
+ const { GlobTool } = await import("./glob-VMEEDDLO.js");
153522
153602
  return new GlobTool(this);
153523
153603
  });
153524
153604
  await registerLazy(ToolNames.EDIT, async () => {
153525
- const { EditTool } = await import("./edit-OXBMFY5B.js");
153605
+ const { EditTool } = await import("./edit-X73LA4YO.js");
153526
153606
  return new EditTool(this);
153527
153607
  });
153528
153608
  await registerLazy(ToolNames.NOTEBOOK_EDIT, async () => {
153529
- const { NotebookEditTool } = await import("./notebook-edit-STSSB5KQ.js");
153609
+ const { NotebookEditTool } = await import("./notebook-edit-QD4TRKLY.js");
153530
153610
  return new NotebookEditTool(this);
153531
153611
  });
153532
153612
  await registerLazy(ToolNames.WRITE_FILE, async () => {
153533
- const { WriteFileTool: WriteFileTool2 } = await import("./write-file-MSFRVUZB.js");
153613
+ const { WriteFileTool: WriteFileTool2 } = await import("./write-file-JJAY7JSP.js");
153534
153614
  return new WriteFileTool2(this);
153535
153615
  });
153536
153616
  await registerLazy(ToolNames.SHELL, async () => {
153537
- const { ShellTool: ShellTool2 } = await import("./shell-AR7XFLHA.js");
153617
+ const { ShellTool: ShellTool2 } = await import("./shell-EGTSUO2P.js");
153538
153618
  return new ShellTool2(this);
153539
153619
  });
153540
153620
  await registerLazy(ToolNames.TODO_WRITE, async () => {
153541
- const { TodoWriteTool } = await import("./todoWrite-IE2YTCK7.js");
153621
+ const { TodoWriteTool } = await import("./todoWrite-K5K7NRE5.js");
153542
153622
  return new TodoWriteTool(this);
153543
153623
  });
153544
153624
  const supportsUserInteraction = resolveInteractionMode(this) !== "headless";
153545
153625
  if (supportsUserInteraction) {
153546
153626
  await registerLazy(ToolNames.ASK_USER_QUESTION, async () => {
153547
- const { AskUserQuestionTool } = await import("./askUserQuestion-IQCA2SOX.js");
153627
+ const { AskUserQuestionTool } = await import("./askUserQuestion-HZJJLR3Z.js");
153548
153628
  return new AskUserQuestionTool(this);
153549
153629
  });
153550
153630
  }
153551
153631
  if (!this.sdkMode && (supportsUserInteraction || options2?.forSubAgent)) {
153552
153632
  await registerLazy(ToolNames.EXIT_PLAN_MODE, async () => {
153553
- const { ExitPlanModeTool: ExitPlanModeTool2 } = await import("./exitPlanMode-QQL27HU4.js");
153633
+ const { ExitPlanModeTool: ExitPlanModeTool2 } = await import("./exitPlanMode-WDURQMIU.js");
153554
153634
  return new ExitPlanModeTool2(this);
153555
153635
  });
153556
153636
  }
153557
153637
  if (!this.sdkMode && supportsUserInteraction) {
153558
153638
  await registerLazy(ToolNames.ENTER_PLAN_MODE, async () => {
153559
- const { EnterPlanModeTool } = await import("./enterPlanMode-J6PDPFFT.js");
153639
+ const { EnterPlanModeTool } = await import("./enterPlanMode-6BDYUQ5T.js");
153560
153640
  return new EnterPlanModeTool(this);
153561
153641
  });
153562
153642
  }
153563
153643
  await registerLazy(ToolNames.ENTER_WORKTREE, async () => {
153564
- const { EnterWorktreeTool } = await import("./enter-worktree-XS4JX4PO.js");
153644
+ const { EnterWorktreeTool } = await import("./enter-worktree-CLRQTIVN.js");
153565
153645
  return new EnterWorktreeTool(this);
153566
153646
  });
153567
153647
  await registerLazy(ToolNames.EXIT_WORKTREE, async () => {
153568
- const { ExitWorktreeTool } = await import("./exit-worktree-2RIE6DAO.js");
153648
+ const { ExitWorktreeTool } = await import("./exit-worktree-TFFJXCRT.js");
153569
153649
  return new ExitWorktreeTool(this);
153570
153650
  });
153571
153651
  await registerLazy(ToolNames.WEB_FETCH, async () => {
153572
- const { WebFetchTool } = await import("./web-fetch-5ANX6FSM.js");
153652
+ const { WebFetchTool } = await import("./web-fetch-MBIVXKPE.js");
153573
153653
  return new WebFetchTool(this);
153574
153654
  });
153575
153655
  if (resolveInteractionMode(this) === "interactive" && !this.sdkMode && !this.getScreenReader() && !options2?.forSubAgent) {
153576
153656
  await registerLazy(ToolNames.DISPLAY_IMAGE, async () => {
153577
- const { DisplayImageTool } = await import("./display-image-CAD7RAUM.js");
153657
+ const { DisplayImageTool } = await import("./display-image-M2ELAVN4.js");
153578
153658
  return new DisplayImageTool(this);
153579
153659
  });
153580
153660
  }
153581
153661
  if (this.webSearchSettings?.enabled) {
153582
- const { evaluateWebSearchGate } = await import("./web-search-KQJWWRHW.js");
153662
+ const { evaluateWebSearchGate } = await import("./web-search-4LBIN6VF.js");
153583
153663
  const gate = evaluateWebSearchGate(this);
153584
153664
  if (gate.ok) {
153585
153665
  await registerLazy(ToolNames.WEB_SEARCH, async () => {
153586
- const { WebSearchTool } = await import("./web-search-KQJWWRHW.js");
153666
+ const { WebSearchTool } = await import("./web-search-4LBIN6VF.js");
153587
153667
  return new WebSearchTool(this);
153588
153668
  });
153589
153669
  } else if (!this.webSearchNoticeEmitted && !options2?.forSubAgent) {
@@ -153594,83 +153674,83 @@ var Config = class _Config {
153594
153674
  await this.registerImageGenerationTool(registry);
153595
153675
  if (this.isArtifactEnabled()) {
153596
153676
  await registerLazy(ToolNames.ARTIFACT, async () => {
153597
- const { ArtifactTool } = await import("./artifact-tool-RWJAKYBZ.js");
153677
+ const { ArtifactTool } = await import("./artifact-tool-4GCQQDZI.js");
153598
153678
  return new ArtifactTool(this);
153599
153679
  });
153600
153680
  }
153601
153681
  if (this.isRecordArtifactEnabled()) {
153602
153682
  await registerLazy(ToolNames.RECORD_ARTIFACT, async () => {
153603
- const { RecordArtifactTool } = await import("./record-artifact-76YYQA5F.js");
153683
+ const { RecordArtifactTool } = await import("./record-artifact-IYQDEYMV.js");
153604
153684
  return new RecordArtifactTool();
153605
153685
  });
153606
153686
  }
153607
153687
  if (this.isLspEnabled() && this.getLspClient()) {
153608
153688
  await registerLazy(ToolNames.LSP, async () => {
153609
- const { LspTool } = await import("./lsp-IWTJWFLT.js");
153689
+ const { LspTool } = await import("./lsp-NJ4KFBI2.js");
153610
153690
  return new LspTool(this);
153611
153691
  });
153612
153692
  }
153613
153693
  await registerStructuredOutputIfRequested();
153614
153694
  if (this.isCronEnabled()) {
153615
153695
  await registerLazy(ToolNames.CRON_CREATE, async () => {
153616
- const { CronCreateTool } = await import("./cron-create-5WUTNKNF.js");
153696
+ const { CronCreateTool } = await import("./cron-create-2JZ2TWTF.js");
153617
153697
  return new CronCreateTool(this);
153618
153698
  });
153619
153699
  await registerLazy(ToolNames.CRON_LIST, async () => {
153620
- const { CronListTool } = await import("./cron-list-IXGCA7UR.js");
153700
+ const { CronListTool } = await import("./cron-list-V44KHAF6.js");
153621
153701
  return new CronListTool(this);
153622
153702
  });
153623
153703
  await registerLazy(ToolNames.CRON_DELETE, async () => {
153624
- const { CronDeleteTool } = await import("./cron-delete-JEQ27YPS.js");
153704
+ const { CronDeleteTool } = await import("./cron-delete-CTPD2P26.js");
153625
153705
  return new CronDeleteTool(this);
153626
153706
  });
153627
153707
  await registerLazy(ToolNames.LOOP_WAKEUP, async () => {
153628
- const { LoopWakeupTool } = await import("./loop-wakeup-OV65FEGR.js");
153708
+ const { LoopWakeupTool } = await import("./loop-wakeup-GVQRMUKS.js");
153629
153709
  return new LoopWakeupTool(this);
153630
153710
  });
153631
153711
  }
153632
153712
  await registerLazy(ToolNames.CREATE_SUB_SESSION, async () => {
153633
- const { CreateSubSessionTool } = await import("./create-sub-session-23ULO5PO.js");
153713
+ const { CreateSubSessionTool } = await import("./create-sub-session-XT6DLYOE.js");
153634
153714
  return new CreateSubSessionTool(this);
153635
153715
  });
153636
153716
  if (this.isAgentTeamEnabled()) {
153637
153717
  await registerLazy(ToolNames.TEAM_CREATE, async () => {
153638
- const { TeamCreateTool } = await import("./team-create-IEEEBLE2.js");
153718
+ const { TeamCreateTool } = await import("./team-create-B6A6MJBT.js");
153639
153719
  return new TeamCreateTool(this);
153640
153720
  });
153641
153721
  await registerLazy(ToolNames.TEAM_DELETE, async () => {
153642
- const { TeamDeleteTool } = await import("./team-delete-3XVRPQBP.js");
153722
+ const { TeamDeleteTool } = await import("./team-delete-MKYMYBFM.js");
153643
153723
  return new TeamDeleteTool(this);
153644
153724
  });
153645
153725
  await registerLazy(ToolNames.TEAM_PLAN_APPROVAL, async () => {
153646
- const { TeamPlanApprovalTool } = await import("./team-plan-approval-SJGNS5JL.js");
153726
+ const { TeamPlanApprovalTool } = await import("./team-plan-approval-5WO3CXXU.js");
153647
153727
  return new TeamPlanApprovalTool(this);
153648
153728
  });
153649
153729
  await registerLazy(ToolNames.TASK_CREATE, async () => {
153650
- const { TaskCreateTool } = await import("./task-create-247EAVF7.js");
153730
+ const { TaskCreateTool } = await import("./task-create-4NC7PDI4.js");
153651
153731
  return new TaskCreateTool(this);
153652
153732
  });
153653
153733
  await registerLazy(ToolNames.TASK_UPDATE, async () => {
153654
- const { TaskUpdateTool } = await import("./task-update-SU5TMZGG.js");
153734
+ const { TaskUpdateTool } = await import("./task-update-BPLM52GD.js");
153655
153735
  return new TaskUpdateTool(this);
153656
153736
  });
153657
153737
  await registerLazy(ToolNames.TASK_LIST, async () => {
153658
- const { TaskListTool } = await import("./task-list-ZJN4QHLK.js");
153738
+ const { TaskListTool } = await import("./task-list-LBSRMOC7.js");
153659
153739
  return new TaskListTool(this);
153660
153740
  });
153661
153741
  }
153662
153742
  if (this.isWorkflowsEnabled()) {
153663
153743
  await registerLazy(ToolNames.WORKFLOW, async () => {
153664
- const { WorkflowTool } = await import("./workflow-C57ZKFUF.js");
153744
+ const { WorkflowTool } = await import("./workflow-LNMA55HY.js");
153665
153745
  return new WorkflowTool(this);
153666
153746
  });
153667
153747
  }
153668
153748
  if (this.isComputerUseEnabled()) {
153669
- const { registerComputerUseTools } = await import("./computer-use-J5VUY257.js");
153749
+ const { registerComputerUseTools } = await import("./computer-use-F4URV4TU.js");
153670
153750
  await registerComputerUseTools(registerLazy, this);
153671
153751
  }
153672
153752
  await registerLazy(ToolNames.MONITOR, async () => {
153673
- const { MonitorTool } = await import("./monitor-SLGY7CYB.js");
153753
+ const { MonitorTool } = await import("./monitor-2MM23VDV.js");
153674
153754
  return new MonitorTool(this);
153675
153755
  });
153676
153756
  if (this.pendingMcpBudgetCallback) {
@@ -154231,10 +154311,6 @@ export {
154231
154311
  isEditorAvailable,
154232
154312
  createPatchSmart,
154233
154313
  getDiffStat,
154234
- stripAnsiAndControl,
154235
- safeLiteralReplace,
154236
- isBinary,
154237
- normalizeContent,
154238
154314
  sanitizeChildEnv,
154239
154315
  formatMemoryUsage,
154240
154316
  getShellContextEnvVars,
@@ -154307,8 +154383,6 @@ export {
154307
154383
  MessageDisplayDispatcher,
154308
154384
  collectMemoryDiagnostics,
154309
154385
  MCPOAuthTokenStorage,
154310
- OAUTH_DISPLAY_MESSAGE_EVENT,
154311
- OAUTH_AUTH_URL_EVENT,
154312
154386
  MCPOAuthProvider,
154313
154387
  mcpServerRequiresOAuth,
154314
154388
  getMCPDiscoveryState,
@@ -154331,7 +154405,6 @@ export {
154331
154405
  isTerminalWorkflowStatus,
154332
154406
  EXTENSIONS_CONFIG_FILENAME,
154333
154407
  So,
154334
- redactUrlCredentials,
154335
154408
  require_toml,
154336
154409
  convertTomlToMarkdown,
154337
154410
  normalizeClaudeMcpServer,