@qwen-code/qwen-code 0.21.12 → 0.21.13

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 (303) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +7 -5
  2. package/bundled/qc-helper/docs/features/code-review.md +13 -12
  3. package/bundled/review/SKILL.md +96 -68
  4. package/chunks/{MaxSizedBox-ZSJJ2D5S.js → MaxSizedBox-UQALOVVT.js} +41 -41
  5. package/chunks/{StandaloneSessionPicker-WHUHQXSA.js → StandaloneSessionPicker-KEGXNUG6.js} +62 -62
  6. package/chunks/{acp-startup-profiler-SVPUHLXV.js → acp-startup-profiler-NMDXYGDN.js} +2 -2
  7. package/chunks/{acpAgent-7JOAESF5.js → acpAgent-XPES32S7.js} +533 -286
  8. package/chunks/{agent-E6V3VXQR.js → agent-DPTOZFEM.js} +38 -38
  9. package/chunks/{agent-headless-OEQNFOMH.js → agent-headless-GJCQMURW.js} +38 -38
  10. package/chunks/{anthropicContentGenerator-YDT4EOKO.js → anthropicContentGenerator-G7BVXTKN.js} +6 -6
  11. package/chunks/{artifact-tool-4GCQQDZI.js → artifact-tool-GEXTOPVO.js} +2 -2
  12. package/chunks/{askUserQuestion-HZJJLR3Z.js → askUserQuestion-B33XRSB7.js} +2 -2
  13. package/chunks/{bridge-NPBV53UA.js → bridge-YNQBAA4Z.js} +42 -42
  14. package/chunks/{channel-management-service-OADNGQM3.js → channel-management-service-GWY2GAIC.js} +1 -1
  15. package/chunks/{channel-settings-store-4ODLJ4X2.js → channel-settings-store-WNWYFHG7.js} +45 -45
  16. package/chunks/{channel-worker-group-IHBIHQ45.js → channel-worker-group-7LXCMZ77.js} +4 -4
  17. package/chunks/{channel-worker-manager-GEHYJ5AE.js → channel-worker-manager-RYEME4ZZ.js} +4 -4
  18. package/chunks/{channel-worker-supervisor-ZJIIWM4I.js → channel-worker-supervisor-OEVWBHGT.js} +2 -2
  19. package/chunks/{chunk-5RUCD4ED.js → chunk-25EYDK42.js} +3 -3
  20. package/chunks/{chunk-2ZWH53I4.js → chunk-2B2BF7P7.js} +3 -3
  21. package/chunks/{chunk-OYWVIXHT.js → chunk-2M55OBEB.js} +1 -1
  22. package/chunks/{chunk-GZDWTBT3.js → chunk-3EZLLVDF.js} +2 -2
  23. package/chunks/{chunk-V6OBVAST.js → chunk-3U3VAL47.js} +1 -1
  24. package/chunks/{chunk-KWX56CHZ.js → chunk-4PKCUT7F.js} +7 -7
  25. package/chunks/{chunk-EBPLKY6U.js → chunk-4S5337WV.js} +1229 -522
  26. package/chunks/{chunk-QLTATTPS.js → chunk-5CVO7YES.js} +1 -1
  27. package/chunks/{chunk-I7BT2MME.js → chunk-5EYKMUUY.js} +1 -1
  28. package/chunks/{chunk-YIGGWOJE.js → chunk-6HY6IF3Z.js} +1 -1
  29. package/chunks/{chunk-LCX5B364.js → chunk-6ORZ2EDC.js} +3 -3
  30. package/chunks/{chunk-OWGRUU7F.js → chunk-6QFDQMQX.js} +1 -1
  31. package/chunks/{chunk-5AFGJNY6.js → chunk-6YKYPVDV.js} +4 -4
  32. package/chunks/{chunk-X5SLJOMF.js → chunk-76J3IJ3M.js} +4 -4
  33. package/chunks/{chunk-YX2RDGAL.js → chunk-7UXUJ5T3.js} +1 -1
  34. package/chunks/{chunk-3GDBZJD6.js → chunk-A267JX7H.js} +6 -6
  35. package/chunks/{chunk-DD6O3ZRD.js → chunk-A4MFR4C5.js} +1 -1
  36. package/chunks/{chunk-LUISTZXI.js → chunk-AA2BEKV3.js} +2 -2
  37. package/chunks/{chunk-4XA4QIUA.js → chunk-AFSG32D5.js} +1 -1
  38. package/chunks/{chunk-B4VN3VDH.js → chunk-AS5IN4GK.js} +5 -5
  39. package/chunks/{chunk-MELQSJOU.js → chunk-AW4TRXOC.js} +1 -1
  40. package/chunks/{chunk-EJOGLSNJ.js → chunk-AXN7UPYQ.js} +1 -1
  41. package/chunks/{chunk-CGM3E75C.js → chunk-BHILXOC3.js} +2 -2
  42. package/chunks/{chunk-7KJPO7YH.js → chunk-BKPPWD33.js} +2 -2
  43. package/chunks/{chunk-HOSVOUDK.js → chunk-BUQDLC2G.js} +3 -0
  44. package/chunks/{chunk-2IVYL3IF.js → chunk-BVJS5BSP.js} +1 -1
  45. package/chunks/{chunk-TMFWI4RC.js → chunk-BZ263IKX.js} +1 -1
  46. package/chunks/{chunk-G6MUFRNI.js → chunk-CHHABXPE.js} +1 -1
  47. package/chunks/{chunk-YILJKX2T.js → chunk-CKSJECTU.js} +4 -4
  48. package/chunks/{chunk-4AOVQPJU.js → chunk-CPHEPGAO.js} +1 -1
  49. package/chunks/{chunk-OWXFBIB6.js → chunk-CU6GJD55.js} +1 -1
  50. package/chunks/{chunk-FMIH5KMQ.js → chunk-CZBYX5MY.js} +1 -1
  51. package/chunks/{chunk-S6TCTH4Z.js → chunk-DGK6P3BQ.js} +12 -12
  52. package/chunks/{chunk-QPBFRWCP.js → chunk-DGZEMW5R.js} +3 -3
  53. package/chunks/{chunk-NW2GIPG3.js → chunk-DXIBNLBZ.js} +2 -2
  54. package/chunks/{chunk-FA5K6YI2.js → chunk-E23IPNGS.js} +25 -2
  55. package/chunks/{chunk-ULNWG62W.js → chunk-E3DYKPYZ.js} +3 -3
  56. package/chunks/{chunk-N4SVADAV.js → chunk-EL5SXY3T.js} +4 -3
  57. package/chunks/{chunk-YCHNAKC5.js → chunk-EZ5RP345.js} +11 -11
  58. package/chunks/{chunk-D7QGE3RT.js → chunk-FAAUPSY2.js} +1 -1
  59. package/chunks/{chunk-YBHUXEC6.js → chunk-FDGGZIYW.js} +1 -1
  60. package/chunks/{chunk-CIDQISGM.js → chunk-GGDBMYGZ.js} +5 -5
  61. package/chunks/{chunk-DG4IQ6JG.js → chunk-GMIEIY3Y.js} +3 -3
  62. package/chunks/{chunk-ZQUY3ZJU.js → chunk-GO7STP6N.js} +4 -4
  63. package/chunks/{chunk-3AEKDXKT.js → chunk-H4A72DE5.js} +1 -1
  64. package/chunks/{chunk-IRSLAS4M.js → chunk-HUTNYWBG.js} +2 -2
  65. package/chunks/{chunk-ZBB5EZZV.js → chunk-IA2K2HJE.js} +2 -2
  66. package/chunks/{chunk-IX4PWUDU.js → chunk-IGGGG5CX.js} +4329 -1586
  67. package/chunks/{chunk-ZMY2P4L3.js → chunk-IWPYVAO2.js} +4 -4
  68. package/chunks/{chunk-WCEI6J56.js → chunk-JNDY2MDR.js} +2 -2
  69. package/chunks/{chunk-3LDGOQXZ.js → chunk-JOOFMXGF.js} +6 -6
  70. package/chunks/{chunk-RDVNSJQU.js → chunk-JUEPY766.js} +3 -3
  71. package/chunks/{chunk-QBJYSIQ4.js → chunk-K3LPAED5.js} +53 -12
  72. package/chunks/{chunk-FRHQQC2Z.js → chunk-KBXKR5R2.js} +1 -1
  73. package/chunks/{chunk-PTSEETCO.js → chunk-KD5BOPLP.js} +12 -12
  74. package/chunks/{chunk-CPFFU46D.js → chunk-KV27IEHM.js} +1 -1
  75. package/chunks/{chunk-6P5EXEBL.js → chunk-LJQAUZMR.js} +207 -146
  76. package/chunks/{chunk-56HVDG3M.js → chunk-M732YJPW.js} +6 -6
  77. package/chunks/{chunk-LSRI3ND3.js → chunk-MA2HEDVP.js} +1 -1
  78. package/chunks/{chunk-XH3KAV2G.js → chunk-MC4TLKEI.js} +2 -2
  79. package/chunks/{chunk-YBVVOSOH.js → chunk-MIPFDQAF.js} +1 -1
  80. package/chunks/{chunk-47BGDLJG.js → chunk-MLPXSYXR.js} +31 -18
  81. package/chunks/{chunk-KRXPRVGL.js → chunk-MLXTMF7H.js} +0 -1
  82. package/chunks/{chunk-CQ6IPDQW.js → chunk-MRMJCLIY.js} +3 -3
  83. package/chunks/{chunk-62X3CM7Q.js → chunk-N5YPT6PH.js} +4 -4
  84. package/chunks/{chunk-OPVF453Q.js → chunk-NEFOOD54.js} +3 -3
  85. package/chunks/{chunk-DAV4QFD5.js → chunk-NHDR76JX.js} +44 -3
  86. package/chunks/{chunk-36XKGB7E.js → chunk-NM5V5OVW.js} +3 -3
  87. package/chunks/{chunk-QSD4UH74.js → chunk-NNHNLJ2X.js} +42 -42
  88. package/chunks/chunk-NYWWQ437.js +24 -0
  89. package/chunks/{chunk-MDNUCDKZ.js → chunk-O4D7SPJN.js} +2 -2
  90. package/chunks/{chunk-HG3UBTJ4.js → chunk-O565M6A4.js} +411 -10
  91. package/chunks/{chunk-BSR5AXZR.js → chunk-OD2WU5QY.js} +1 -1
  92. package/chunks/{chunk-DPTMKFIH.js → chunk-OMLJNPBE.js} +42 -12
  93. package/chunks/{chunk-Q4ZPYNIZ.js → chunk-OOQUVWIG.js} +4 -4
  94. package/chunks/{chunk-D2RNVVH6.js → chunk-OVZPVYZB.js} +2 -2
  95. package/chunks/{chunk-3GM5DLBI.js → chunk-OXCMMLED.js} +3 -3
  96. package/chunks/{chunk-BSSLSQEW.js → chunk-OY5RNSV4.js} +3 -3
  97. package/chunks/{chunk-PZW46OTB.js → chunk-P7MPQI75.js} +2 -2
  98. package/chunks/{chunk-6JEIRPLN.js → chunk-PP4FUZNV.js} +2 -2
  99. package/chunks/{chunk-DFVXU5YM.js → chunk-PQ36L4F5.js} +1 -1
  100. package/chunks/{chunk-VPV7WBVT.js → chunk-PT4I7NBA.js} +1 -1
  101. package/chunks/{chunk-VLHR7F4E.js → chunk-QF2NHSPB.js} +28 -28
  102. package/chunks/{chunk-NLFLYSS4.js → chunk-QFJ5JHQR.js} +1 -1
  103. package/chunks/{chunk-VIFA5VJD.js → chunk-QIH2HAEN.js} +1 -1
  104. package/chunks/{chunk-HTYND72J.js → chunk-QNQAPSN2.js} +1 -1
  105. package/chunks/{chunk-TDESMS7M.js → chunk-QRCNA3SR.js} +4 -4
  106. package/chunks/{chunk-IH4Z54RJ.js → chunk-QV5YN5YD.js} +5 -5
  107. package/chunks/{chunk-WI6GIM2M.js → chunk-RIAABG2K.js} +2 -2
  108. package/chunks/{chunk-UI5UGEF4.js → chunk-RLKC46YT.js} +16 -10
  109. package/chunks/{chunk-KEC5FHLM.js → chunk-ROIYNTHJ.js} +3 -3
  110. package/chunks/{chunk-4KM2SYK5.js → chunk-RVOJ2FBP.js} +8 -8
  111. package/chunks/{chunk-63FNZTWG.js → chunk-RWDNJBWN.js} +2 -2
  112. package/chunks/{chunk-FQDCO3CJ.js → chunk-S5DWMTHO.js} +5 -0
  113. package/chunks/{chunk-TTRH3RTQ.js → chunk-SG7ZP5PG.js} +4 -4
  114. package/chunks/{chunk-TXP5NGG3.js → chunk-SXCOEJO4.js} +1 -1
  115. package/chunks/{chunk-K34GJQOZ.js → chunk-TIGA2IVL.js} +3 -3
  116. package/chunks/chunk-TS6625XH.js +488 -0
  117. package/chunks/{chunk-WM3LUQLO.js → chunk-TUGSVUJB.js} +6 -6
  118. package/chunks/{chunk-XAFIL4BD.js → chunk-U3VNBPUO.js} +5 -5
  119. package/chunks/{chunk-WDVDVWJ3.js → chunk-UKMR3CKV.js} +6 -6
  120. package/chunks/{chunk-DEDESZDL.js → chunk-UPDOZBWO.js} +1 -1
  121. package/chunks/{chunk-MUNA4QDC.js → chunk-UZPM4XHR.js} +4 -4
  122. package/chunks/{chunk-6SPD4Z7F.js → chunk-V26NVGAU.js} +1 -1
  123. package/chunks/{chunk-XDRXOSAD.js → chunk-V57QC6WW.js} +2 -2
  124. package/chunks/{chunk-NX4A23LY.js → chunk-WFSTRPRO.js} +3 -3
  125. package/chunks/{chunk-H7TMVHKE.js → chunk-WGHHA7ZH.js} +1 -1
  126. package/chunks/{chunk-JRIVMPD2.js → chunk-WSH6GRKG.js} +4 -4
  127. package/chunks/{chunk-OR64CU46.js → chunk-X26JYGTD.js} +1 -1
  128. package/chunks/{chunk-RQJA2YYO.js → chunk-XHRY7BXD.js} +4 -4
  129. package/chunks/{chunk-MAKIANMX.js → chunk-XIT3GURH.js} +3 -3
  130. package/chunks/{chunk-KLOMACIR.js → chunk-XLLKYULU.js} +2 -2
  131. package/chunks/{chunk-PVXEJB66.js → chunk-XUJNK7Y6.js} +1 -1
  132. package/chunks/{chunk-AKBFSOC5.js → chunk-Y3YCSWG5.js} +2 -2
  133. package/chunks/{chunk-6ZKSO6K7.js → chunk-YEYY7TEP.js} +7 -7
  134. package/chunks/{chunk-TB4YFWXG.js → chunk-YZHRN3CF.js} +2 -2
  135. package/chunks/{chunk-TQDFSQQF.js → chunk-YZOSNW4R.js} +1 -1
  136. package/chunks/{chunk-GXTMEATA.js → chunk-ZYBBISBY.js} +7 -7
  137. package/chunks/{chunk-ROIJYS5K.js → chunk-ZYYTZUI2.js} +3 -3
  138. package/chunks/{chunk-CZ4OWGQQ.js → chunk-ZZO74WKW.js} +43 -5
  139. package/chunks/{computer-use-F4URV4TU.js → computer-use-77C5FHMW.js} +38 -38
  140. package/chunks/{config-utils-Z3OW3IQG.js → config-utils-IVHRSXWI.js} +2 -2
  141. package/chunks/{contextCommand-IGSS2U5J.js → contextCommand-PJ77GBWL.js} +40 -40
  142. package/chunks/{core-runtime-H5CZDN3A.js → core-runtime-7VMIKUTG.js} +38 -38
  143. package/chunks/{create-sub-session-PA7MFTHK.js → create-sub-session-2L5MQRN4.js} +38 -38
  144. package/chunks/{create-sub-session-XT6DLYOE.js → create-sub-session-KRQULJE6.js} +2 -2
  145. package/chunks/{cron-create-2JZ2TWTF.js → cron-create-H7UEPDSN.js} +4 -4
  146. package/chunks/{cron-delete-CTPD2P26.js → cron-delete-6SZK7YFM.js} +4 -4
  147. package/chunks/{cron-list-V44KHAF6.js → cron-list-H25JIHEZ.js} +4 -4
  148. package/chunks/{daemon-GED37WOX.js → daemon-2KTG7ZBN.js} +80 -8
  149. package/chunks/{daemon-git-worktree-guard-LZDCNJGV.js → daemon-git-worktree-guard-DXYIMWFT.js} +38 -38
  150. package/chunks/{daemon-status-provider-QYM57Z44.js → daemon-status-provider-ZDOYJCU6.js} +46 -46
  151. package/chunks/{daemon-trust-policy-TSRVEYZR.js → daemon-trust-policy-E67OYUK2.js} +44 -44
  152. package/chunks/{daemon-trust-policy-monitor-2K2YETMT.js → daemon-trust-policy-monitor-RYYGCQ3J.js} +44 -44
  153. package/chunks/{deferred-core-runtime-FKJ3OYE7.js → deferred-core-runtime-3SGXFXEQ.js} +38 -38
  154. package/chunks/discovery-ORA5J7YP.js +27 -0
  155. package/chunks/{display-image-M2ELAVN4.js → display-image-ON3EYFRD.js} +4 -4
  156. package/chunks/{earlyInputCapture-WJBSJQUF.js → earlyInputCapture-KJMLFVQV.js} +39 -39
  157. package/chunks/{edit-X73LA4YO.js → edit-I4LQFAEC.js} +38 -38
  158. package/chunks/{enter-worktree-CLRQTIVN.js → enter-worktree-YNPOJSRH.js} +38 -38
  159. package/chunks/{enterPlanMode-6BDYUQ5T.js → enterPlanMode-XCPK62ER.js} +38 -38
  160. package/chunks/{environment-WOAJXJDJ.js → environment-S7CTIHMX.js} +40 -40
  161. package/chunks/{errors-7OY5MXYY.js → errors-7HB2AIDS.js} +40 -40
  162. package/chunks/{exit-worktree-TFFJXCRT.js → exit-worktree-AIIY7SR6.js} +38 -38
  163. package/chunks/{exitPlanMode-WDURQMIU.js → exitPlanMode-R4JY7V2O.js} +38 -38
  164. package/chunks/{fast-path-QQLGC37M.js → fast-path-NDJV3ZFJ.js} +2 -2
  165. package/chunks/{gemini-VHE62IJL.js → gemini-RSUFP5OE.js} +86 -86
  166. package/chunks/{geminiContentGenerator-VSHIEGAQ.js → geminiContentGenerator-SQ5XBPZ7.js} +6 -6
  167. package/chunks/{glob-VMEEDDLO.js → glob-J4RUJAHX.js} +38 -38
  168. package/chunks/{goal-tools-M4UDAZXP.js → goal-tools-VHTNVOKK.js} +56 -12
  169. package/chunks/{grep-F4UAR7KX.js → grep-VJWPLFOT.js} +38 -38
  170. package/chunks/{handleAutoUpdate-GN7Z6QAC.js → handleAutoUpdate-POCX2MNB.js} +42 -42
  171. package/chunks/{i18n-ETW24DHW.js → i18n-RM5YOICI.js} +39 -39
  172. package/chunks/{image-gen-YPK2AZT4.js → image-gen-EXECB5XM.js} +10 -10
  173. package/chunks/{initializer-UA6KQ7MS.js → initializer-Z2AFGBNR.js} +45 -45
  174. package/chunks/{installationInfo-P7OTIR4P.js → installationInfo-4I5FXNMH.js} +39 -39
  175. package/chunks/{keychain-token-storage-NKKCUHI2.js → keychain-token-storage-3XFJ5ZB2.js} +2 -2
  176. package/chunks/{list-GRAMIQOT.js → list-ZMBFIGZA.js} +47 -47
  177. package/chunks/{list-agents-O6WSY4CT.js → list-agents-OSVDFI6S.js} +2 -2
  178. package/chunks/{loadedSettingsAdapter-5O2TDS3I.js → loadedSettingsAdapter-T6TV4YJ7.js} +44 -44
  179. package/chunks/{loggingContentGenerator-J2J2AANS.js → loggingContentGenerator-WF4ZOJEZ.js} +63 -39
  180. package/chunks/{loop-wakeup-GVQRMUKS.js → loop-wakeup-WQS6JYAG.js} +5 -5
  181. package/chunks/{ls-6W2D7TKU.js → ls-D3HUFHDP.js} +4 -4
  182. package/chunks/{lsp-NJ4KFBI2.js → lsp-3QDDJTCS.js} +2 -2
  183. package/chunks/{managed-npm-update-WMV5ITKU.js → managed-npm-update-E7IW6N7V.js} +39 -39
  184. package/chunks/{mcp-XLP33CAI.js → mcp-6UNYX4HG.js} +44 -44
  185. package/chunks/{monitor-2MM23VDV.js → monitor-EE2UYMGE.js} +38 -38
  186. package/chunks/{nonInteractiveCli-KTA5K6FS.js → nonInteractiveCli-WAY237O4.js} +79 -79
  187. package/chunks/{notebook-edit-QD4TRKLY.js → notebook-edit-NTDY4QDU.js} +38 -38
  188. package/chunks/{openaiContentGenerator-KLHSPVN2.js → openaiContentGenerator-YNFVJMRJ.js} +23 -23
  189. package/chunks/{pidfile-RQGZBNXT.js → pidfile-4XSFLYBZ.js} +39 -39
  190. package/chunks/{processUtils-HZZDA2VV.js → processUtils-WDA2MJFD.js} +2 -2
  191. package/chunks/proper-lockfile-3LHWIM44.js +8 -0
  192. package/chunks/{qwenContentGenerator-T75M2Z3B.js → qwenContentGenerator-434M7QKY.js} +43 -43
  193. package/chunks/{qwenOAuth2-5QZU444W.js → qwenOAuth2-GMYZOO6A.js} +9 -9
  194. package/chunks/{read-file-LOVUSBJC.js → read-file-TAFBKMNI.js} +11 -11
  195. package/chunks/{read-mcp-resource-GWCP23WG.js → read-mcp-resource-XD54ZQMC.js} +2 -2
  196. package/chunks/{record-artifact-IYQDEYMV.js → record-artifact-SEYFJEJF.js} +3 -3
  197. package/chunks/{resumeHistoryUtils-LVKSSQII.js → resumeHistoryUtils-EVG3WYK2.js} +45 -45
  198. package/chunks/{ripGrep-ZJSHKB6H.js → ripGrep-WOEK2PXS.js} +38 -38
  199. package/chunks/{run-qwen-serve-GZW7B4WK.js → run-qwen-serve-3QSGRXAN.js} +411 -209
  200. package/chunks/{runtime-MYRXEO2E.js → runtime-5MLLZ7DC.js} +47 -47
  201. package/chunks/{scheduler-DPTPI6FW.js → scheduler-RPBJ63CH.js} +40 -40
  202. package/chunks/{sdk-exporters-http-NHBYB5FZ.js → sdk-exporters-http-XUVP63H6.js} +2 -2
  203. package/chunks/{sdk-impl-SK4P5WON.js → sdk-impl-YXUEN2Z2.js} +2 -2
  204. package/chunks/{send-message-O7FO63UK.js → send-message-VZENRWRH.js} +6 -6
  205. package/chunks/{serve-XCG4XCDA.js → serve-HS3XLPXU.js} +44 -44
  206. package/chunks/{server-AWQHKXLG.js → server-TC4A7AAZ.js} +3833 -1618
  207. package/chunks/{session-P5FKNCNR.js → session-UBOFXVMN.js} +80 -80
  208. package/chunks/{settings-CSYVIP2R.js → settings-D5644OM5.js} +43 -43
  209. package/chunks/{shell-EGTSUO2P.js → shell-3PZULQQV.js} +38 -38
  210. package/chunks/{skill-IFUD72GF.js → skill-PEVVXQ3L.js} +16 -16
  211. package/chunks/{skill-settings-YOE7LBHE.js → skill-settings-J65JKKES.js} +43 -43
  212. package/chunks/{spawnChannel-PQSZIOLY.js → spawnChannel-IYGXRHSQ.js} +40 -40
  213. package/chunks/{standalone-update-RB2EGUSF.js → standalone-update-IFM53PE7.js} +40 -40
  214. package/chunks/{startInteractiveUI-KMYUJ2MU.js → startInteractiveUI-3AVH7L6H.js} +417 -168
  215. package/chunks/{syntheticOutput-DVHJMUGV.js → syntheticOutput-7GWFIDXT.js} +3 -3
  216. package/chunks/{task-create-4NC7PDI4.js → task-create-FCBDX7UH.js} +11 -11
  217. package/chunks/{task-list-LBSRMOC7.js → task-list-YIYIUFUA.js} +6 -6
  218. package/chunks/{task-stop-YFNATTIM.js → task-stop-X37KYTKB.js} +2 -2
  219. package/chunks/{task-update-BPLM52GD.js → task-update-MYPFVOVM.js} +11 -11
  220. package/chunks/{team-create-B6A6MJBT.js → team-create-ZAIA7KAV.js} +38 -38
  221. package/chunks/{team-delete-MKYMYBFM.js → team-delete-6UMU4XLS.js} +6 -6
  222. package/chunks/{team-plan-approval-5WO3CXXU.js → team-plan-approval-UNIUS7OD.js} +38 -38
  223. package/chunks/{terminal-image-renderer-BTRE2GEU.js → terminal-image-renderer-G343P2RV.js} +40 -40
  224. package/chunks/{theme-manager-XL2N5SBY.js → theme-manager-Z3RIT7DB.js} +39 -39
  225. package/chunks/{todoWrite-K5K7NRE5.js → todoWrite-U2R4NVF4.js} +4 -4
  226. package/chunks/{tool-search-QNBLXUGR.js → tool-search-5R2OE4C7.js} +15 -15
  227. package/chunks/{total-session-admission-N4E5SFBO.js → total-session-admission-4KBHMQQ2.js} +42 -42
  228. package/chunks/{trustedFolders-MQS46LIU.js → trustedFolders-LK6T4XC7.js} +39 -39
  229. package/chunks/{update-relaunch-536KRL33.js → update-relaunch-UBKROIC6.js} +5 -5
  230. package/chunks/{updateCheck-QJI2SYWF.js → updateCheck-W4Y2GFSD.js} +42 -42
  231. package/chunks/{useAutoAcceptIndicator-7QASHD46.js → useAutoAcceptIndicator-C7BEICBF.js} +47 -47
  232. package/chunks/{validateNonInterActiveAuth-ZNRGWBLV.js → validateNonInterActiveAuth-LTEI2TB6.js} +76 -76
  233. package/chunks/{version-DBEQAFRW.js → version-G5A5DGVS.js} +1 -1
  234. package/chunks/{web-fetch-MBIVXKPE.js → web-fetch-RTEQTR5Z.js} +15 -15
  235. package/chunks/{web-search-4LBIN6VF.js → web-search-5OXHEZPV.js} +9 -9
  236. package/chunks/{workflow-LNMA55HY.js → workflow-ISQJHPG2.js} +39 -39
  237. package/chunks/{workspace-providers-status-PDDMI6ST.js → workspace-providers-status-2ZPZPUPZ.js} +47 -47
  238. package/chunks/{workspace-registration-store-BGRKKIYR.js → workspace-registration-store-CYNY6IP6.js} +2 -2
  239. package/chunks/{workspace-registry-L4NCJ34K.js → workspace-registry-34GTUUHB.js} +44 -43
  240. package/chunks/{workspace-service-LOXYKYTR.js → workspace-service-XCDQLE2Y.js} +50 -50
  241. package/chunks/{workspace-skills-status-IJ5FOQI6.js → workspace-skills-status-RS4O7AIJ.js} +45 -45
  242. package/chunks/{workspace-trust-reconciler-H36TCR2S.js → workspace-trust-reconciler-AYGXC7A3.js} +53 -52
  243. package/chunks/{write-file-JJAY7JSP.js → write-file-EWXKVVXF.js} +38 -38
  244. package/chunks/{zoom-image-4MVVVM7E.js → zoom-image-4BFYJ3HG.js} +11 -11
  245. package/cli.js +13 -13
  246. package/package.json +3 -3
  247. package/web-shell/assets/{arc-B-89zHN4.js → arc-CgOpDKvm.js} +1 -1
  248. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BkcOncHk.js → architectureDiagram-3BPJPVTR-0Ag_m34F.js} +1 -1
  249. package/web-shell/assets/{blockDiagram-GPEHLZMM-DQ4yboaF.js → blockDiagram-GPEHLZMM-IwTwFau0.js} +1 -1
  250. package/web-shell/assets/{c4Diagram-AAUBKEIU-C_8ZjPDI.js → c4Diagram-AAUBKEIU-DLa5GUv8.js} +1 -1
  251. package/web-shell/assets/channel-BrGVBa2L.js +1 -0
  252. package/web-shell/assets/{chunk-2J33WTMH-naKVe1Bm.js → chunk-2J33WTMH-DcYP-WFG.js} +1 -1
  253. package/web-shell/assets/{chunk-4BX2VUAB-DdoViKT2.js → chunk-4BX2VUAB-C8MVPMiQ.js} +1 -1
  254. package/web-shell/assets/{chunk-55IACEB6-DUDQZEwU.js → chunk-55IACEB6-BUi4Yfv3.js} +1 -1
  255. package/web-shell/assets/{chunk-727SXJPM-BqpDTR5s.js → chunk-727SXJPM-Cy3Su2YY.js} +1 -1
  256. package/web-shell/assets/{chunk-AQP2D5EJ-CdmEknkT.js → chunk-AQP2D5EJ-Dp8Teqv6.js} +1 -1
  257. package/web-shell/assets/{chunk-FMBD7UC4-CH7fFTLB.js → chunk-FMBD7UC4-BDTDM-4j.js} +1 -1
  258. package/web-shell/assets/{chunk-ND2GUHAM-ObgSuFKF.js → chunk-ND2GUHAM-7HfDt0r2.js} +1 -1
  259. package/web-shell/assets/{chunk-QZHKN3VN-D9fKdv_s.js → chunk-QZHKN3VN-BIBU0uCF.js} +1 -1
  260. package/web-shell/assets/classDiagram-4FO5ZUOK-B5TUzJzI.js +1 -0
  261. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B5TUzJzI.js +1 -0
  262. package/web-shell/assets/{cose-bilkent-S5V4N54A-CvzATMx9.js → cose-bilkent-S5V4N54A-DRLdcg9p.js} +1 -1
  263. package/web-shell/assets/{dagre-BM42HDAG-M_xU21QW.js → dagre-BM42HDAG-DCCgDwqW.js} +1 -1
  264. package/web-shell/assets/{diagram-2AECGRRQ-CNrl9sW1.js → diagram-2AECGRRQ-CsBTBmk3.js} +1 -1
  265. package/web-shell/assets/{diagram-5GNKFQAL-CUweVT6T.js → diagram-5GNKFQAL-C9qjH8Lt.js} +1 -1
  266. package/web-shell/assets/{diagram-KO2AKTUF-D3n6Lxjo.js → diagram-KO2AKTUF-Brjs_lj2.js} +1 -1
  267. package/web-shell/assets/{diagram-LMA3HP47-0SeFPK4t.js → diagram-LMA3HP47-DtiWCl_F.js} +1 -1
  268. package/web-shell/assets/{diagram-OG6HWLK6-DAgyEwge.js → diagram-OG6HWLK6-DmfKLkBT.js} +1 -1
  269. package/web-shell/assets/{erDiagram-TEJ5UH35-CzxBBDIK.js → erDiagram-TEJ5UH35-Bve_4deH.js} +1 -1
  270. package/web-shell/assets/{flowDiagram-I6XJVG4X-B0uj0jyo.js → flowDiagram-I6XJVG4X-C2_kXCcV.js} +1 -1
  271. package/web-shell/assets/{ganttDiagram-6RSMTGT7-DFzcj5km.js → ganttDiagram-6RSMTGT7-BSBIjiTF.js} +1 -1
  272. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DylJ_Fc9.js → gitGraphDiagram-PVQCEYII-CyebwI55.js} +1 -1
  273. package/web-shell/assets/index-CIDsgxTe.js +1792 -0
  274. package/web-shell/assets/{index-BIGQygTL.css → index-DiQnWi_E.css} +1 -1
  275. package/web-shell/assets/{index-BKSAnXU9.js → index-d0yfnV1M.js} +1 -1
  276. package/web-shell/assets/{infoDiagram-5YYISTIA-BYMcJVMI.js → infoDiagram-5YYISTIA-CSDGnWxU.js} +1 -1
  277. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-t1quI1S3.js → ishikawaDiagram-YF4QCWOH-BK4jU13p.js} +1 -1
  278. package/web-shell/assets/{journeyDiagram-JHISSGLW-YM_QVUJm.js → journeyDiagram-JHISSGLW-D_W6j-oF.js} +1 -1
  279. package/web-shell/assets/{kanban-definition-UN3LZRKU-jw8OddK1.js → kanban-definition-UN3LZRKU-C7xf-SdC.js} +1 -1
  280. package/web-shell/assets/{linear-Dlr3RVuP.js → linear-DQmzxpxd.js} +1 -1
  281. package/web-shell/assets/{mermaid.core-CqGKzNzd.js → mermaid.core-9P7AGOLG.js} +5 -5
  282. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BqureoOS.js → mindmap-definition-RKZ34NQL-DgcgMyPk.js} +1 -1
  283. package/web-shell/assets/{pieDiagram-4H26LBE5-Da20HkK1.js → pieDiagram-4H26LBE5-3wWGb9eG.js} +1 -1
  284. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BsNlMvJy.js → quadrantDiagram-W4KKPZXB-BeCXnQw9.js} +1 -1
  285. package/web-shell/assets/{requirementDiagram-4Y6WPE33-DzVCQCse.js → requirementDiagram-4Y6WPE33-Bi1UOHDz.js} +1 -1
  286. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-BMo16voT.js → sankeyDiagram-5OEKKPKP-lrLUjjbb.js} +1 -1
  287. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Bgi-pdHk.js → sequenceDiagram-3UESZ5HK-BFuqKz6Q.js} +1 -1
  288. package/web-shell/assets/{stateDiagram-AJRCARHV-xaPQXwGk.js → stateDiagram-AJRCARHV-8DemQLhu.js} +1 -1
  289. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DhM5ixYd.js +1 -0
  290. package/web-shell/assets/{timeline-definition-PNZ67QCA-C_9RuvKG.js → timeline-definition-PNZ67QCA-uzEuVQXg.js} +1 -1
  291. package/web-shell/assets/{vennDiagram-CIIHVFJN-Bgu6vdla.js → vennDiagram-CIIHVFJN-BQTeZ_-o.js} +1 -1
  292. package/web-shell/assets/{wardley-L42UT6IY-CFTZ8IrX.js → wardley-L42UT6IY-B6yM5Im7.js} +1 -1
  293. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BASW9Vmt.js → wardleyDiagram-YWT4CUSO-ChM8bmgn.js} +1 -1
  294. package/web-shell/assets/{xychartDiagram-2RQKCTM6--Nh-CD3F.js → xychartDiagram-2RQKCTM6-oNG6HyB1.js} +1 -1
  295. package/web-shell/index.html +2 -2
  296. package/chunks/discovery-XLHITE74.js +0 -220
  297. package/web-shell/assets/channel-Du2WFns8.js +0 -1
  298. package/web-shell/assets/classDiagram-4FO5ZUOK-Zw0HafH6.js +0 -1
  299. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Zw0HafH6.js +0 -1
  300. package/web-shell/assets/index-J7OMTqAN.js +0 -1789
  301. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-D5RqimXD.js +0 -1
  302. package/chunks/{chunk-SYHXR6WM.js → chunk-4W5U2TUT.js} +3 -3
  303. /package/chunks/{chunk-OK47XBYH.js → chunk-A4QRWUDE.js} +0 -0
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  TUI_CHAT_RECORDING_FAILURE_MESSAGE,
12
12
  reportChatRecordingFailureToAdapter
13
- } from "./chunk-WI6GIM2M.js";
13
+ } from "./chunk-RIAABG2K.js";
14
14
  import {
15
15
  MAX_SUGGESTIONS_TO_SHOW,
16
16
  SESSION_MENTION_PREFIX,
@@ -22,10 +22,10 @@ import {
22
22
  matchMcpServerPrefix,
23
23
  resolveAtCommandQuery,
24
24
  sanitizeDisplayText
25
- } from "./chunk-X5SLJOMF.js";
25
+ } from "./chunk-76J3IJ3M.js";
26
26
  import {
27
27
  StreamJsonOutputAdapter
28
- } from "./chunk-MUNA4QDC.js";
28
+ } from "./chunk-UZPM4XHR.js";
29
29
  import {
30
30
  BuiltinCommandLoader,
31
31
  BundledSkillLoader,
@@ -69,17 +69,18 @@ import {
69
69
  resetBackgroundStateForSessionSwitch,
70
70
  serializeUserPromptExpansionPrompt,
71
71
  supportsMatchers
72
- } from "./chunk-QSD4UH74.js";
72
+ } from "./chunk-NNHNLJ2X.js";
73
+ import "./chunk-N5YPT6PH.js";
73
74
  import {
74
75
  startPostRenderPrefetches
75
- } from "./chunk-S6TCTH4Z.js";
76
+ } from "./chunk-DGK6P3BQ.js";
76
77
  import {
77
78
  EXTENSION_RELOAD_FAILED_REASON,
78
79
  ExtensionRefreshState,
79
80
  appEvents,
80
81
  cleanupReviewWorktreeLeases,
81
82
  loadHierarchicalGeminiMemory
82
- } from "./chunk-IX4PWUDU.js";
83
+ } from "./chunk-IGGGG5CX.js";
83
84
  import {
84
85
  AboutBox,
85
86
  BaseSelectionList,
@@ -157,20 +158,21 @@ import {
157
158
  useUIActions,
158
159
  useUIState,
159
160
  useVirtualViewport
160
- } from "./chunk-VLHR7F4E.js";
161
+ } from "./chunk-QF2NHSPB.js";
161
162
  import {
162
163
  getCommandDisplayName,
163
164
  getCommandSourceBadge
164
- } from "./chunk-4XA4QIUA.js";
165
+ } from "./chunk-AFSG32D5.js";
165
166
  import {
166
167
  computeSessionStats,
167
168
  levelLabel
168
- } from "./chunk-MDNUCDKZ.js";
169
+ } from "./chunk-O4D7SPJN.js";
170
+ import "./chunk-4WGODMVR.js";
169
171
  import {
170
172
  MaxSizedBox,
171
173
  OverflowProvider,
172
174
  useOverflowState
173
- } from "./chunk-CGM3E75C.js";
175
+ } from "./chunk-BHILXOC3.js";
174
176
  import {
175
177
  GeminiRespondingSpinner,
176
178
  GeminiSpinner,
@@ -187,7 +189,7 @@ import {
187
189
  useStreamingContext,
188
190
  waitForGoalRuntime,
189
191
  wrapAnsi
190
- } from "./chunk-GXTMEATA.js";
192
+ } from "./chunk-ZYBBISBY.js";
191
193
  import {
192
194
  formatDuration,
193
195
  formatRelativeTime,
@@ -195,10 +197,10 @@ import {
195
197
  } from "./chunk-3SH53ANB.js";
196
198
  import {
197
199
  theme
198
- } from "./chunk-OWGRUU7F.js";
200
+ } from "./chunk-6QFDQMQX.js";
199
201
  import {
200
202
  stopAndGetCapturedInput
201
- } from "./chunk-TQDFSQQF.js";
203
+ } from "./chunk-YZOSNW4R.js";
202
204
  import {
203
205
  disableKittyProtocol,
204
206
  isKittyProtocolEnabled,
@@ -207,13 +209,13 @@ import {
207
209
  } from "./chunk-NYX53SV4.js";
208
210
  import {
209
211
  useAutoAcceptIndicator
210
- } from "./chunk-CQ6IPDQW.js";
212
+ } from "./chunk-MRMJCLIY.js";
211
213
  import {
212
214
  KeypressProvider,
213
215
  useFocus,
214
216
  useKeypress,
215
217
  useKeypressContext
216
- } from "./chunk-56HVDG3M.js";
218
+ } from "./chunk-M732YJPW.js";
217
219
  import {
218
220
  BEL,
219
221
  OSC_PREFIX,
@@ -226,25 +228,10 @@ import {
226
228
  oscKittyNotify,
227
229
  saveClipboardImage,
228
230
  writeOsc52
229
- } from "./chunk-NW2GIPG3.js";
231
+ } from "./chunk-DXIBNLBZ.js";
230
232
  import {
231
233
  require_jsx_runtime
232
234
  } from "./chunk-SV5PQVQE.js";
233
- import "./chunk-62X3CM7Q.js";
234
- import "./chunk-4WGODMVR.js";
235
- import {
236
- setUpdateHandler
237
- } from "./chunk-WDVDVWJ3.js";
238
- import {
239
- isHistoryItemVisibleAfterRestore
240
- } from "./chunk-EKTCKZV5.js";
241
- import "./chunk-B4VN3VDH.js";
242
- import {
243
- AUTO_THEME_NAME,
244
- DEFAULT_THEME,
245
- themeManager
246
- } from "./chunk-OYWVIXHT.js";
247
- import "./chunk-KW7NOTN6.js";
248
235
  import {
249
236
  Box_default,
250
237
  Static,
@@ -259,34 +246,47 @@ import {
259
246
  use_stdin_default,
260
247
  use_stdout_default
261
248
  } from "./chunk-2IIJTXYF.js";
249
+ import {
250
+ relaunchApp
251
+ } from "./chunk-PQ36L4F5.js";
252
+ import {
253
+ setUpdateHandler
254
+ } from "./chunk-UKMR3CKV.js";
255
+ import {
256
+ isHistoryItemVisibleAfterRestore
257
+ } from "./chunk-EKTCKZV5.js";
258
+ import "./chunk-AS5IN4GK.js";
259
+ import {
260
+ AUTO_THEME_NAME,
261
+ DEFAULT_THEME,
262
+ themeManager
263
+ } from "./chunk-2M55OBEB.js";
264
+ import "./chunk-KW7NOTN6.js";
262
265
  import {
263
266
  require_react
264
267
  } from "./chunk-5QWWOFGG.js";
265
- import "./chunk-ZQUY3ZJU.js";
268
+ import "./chunk-GO7STP6N.js";
266
269
  import {
267
270
  getErrorMessage as getErrorMessage2
268
- } from "./chunk-RDVNSJQU.js";
269
- import "./chunk-XAFIL4BD.js";
270
- import "./chunk-OPVF453Q.js";
271
+ } from "./chunk-JUEPY766.js";
272
+ import "./chunk-U3VNBPUO.js";
273
+ import "./chunk-NEFOOD54.js";
271
274
  import "./chunk-YAF2MQZ6.js";
272
- import "./chunk-ZBB5EZZV.js";
275
+ import "./chunk-IA2K2HJE.js";
273
276
  import {
274
277
  MAX_INLINE_IMAGES_PER_ITEM,
275
278
  collectInlineImages,
276
279
  getInlineImageData
277
- } from "./chunk-TXP5NGG3.js";
278
- import {
279
- relaunchApp
280
- } from "./chunk-DFVXU5YM.js";
281
- import "./chunk-TDESMS7M.js";
280
+ } from "./chunk-SXCOEJO4.js";
281
+ import "./chunk-QRCNA3SR.js";
282
282
  import "./chunk-6H67XLET.js";
283
283
  import {
284
284
  openQwenAsrRealtimeStream,
285
285
  openVoiceStream,
286
286
  openVoiceStreamWithRetry
287
- } from "./chunk-EJOGLSNJ.js";
288
- import "./chunk-UI5UGEF4.js";
289
- import "./chunk-TMFWI4RC.js";
287
+ } from "./chunk-AXN7UPYQ.js";
288
+ import "./chunk-RLKC46YT.js";
289
+ import "./chunk-BZ263IKX.js";
290
290
  import {
291
291
  cpLen,
292
292
  cpSlice,
@@ -299,7 +299,7 @@ import {
299
299
  stripUnsafeCharacters,
300
300
  toCodePoints
301
301
  } from "./chunk-4NFY2S7N.js";
302
- import "./chunk-V6OBVAST.js";
302
+ import "./chunk-3U3VAL47.js";
303
303
  import {
304
304
  stringWidth
305
305
  } from "./chunk-2MIN6GRR.js";
@@ -315,40 +315,41 @@ import {
315
315
  isStreamingVoiceModel,
316
316
  resolveVoiceStreamConfig,
317
317
  transcribeVoiceAudio
318
- } from "./chunk-LCX5B364.js";
318
+ } from "./chunk-6ORZ2EDC.js";
319
319
  import {
320
320
  formatUnsupportedVoiceModelMessage,
321
321
  isSelectableVoiceModel
322
- } from "./chunk-VIFA5VJD.js";
323
- import "./chunk-H7TMVHKE.js";
322
+ } from "./chunk-QIH2HAEN.js";
323
+ import "./chunk-WGHHA7ZH.js";
324
324
  import {
325
325
  getExtendedSystemInfo
326
- } from "./chunk-RQJA2YYO.js";
326
+ } from "./chunk-XHRY7BXD.js";
327
+ import "./chunk-7U5G6JXI.js";
328
+ import "./chunk-WCCLLK7X.js";
327
329
  import {
328
330
  isInlineModelOverrideAllowed
329
- } from "./chunk-ROIJYS5K.js";
331
+ } from "./chunk-ZYYTZUI2.js";
330
332
  import {
331
333
  computeWorkspaceSkillListUpdates,
332
334
  resolveSkillSettings,
333
335
  skillSettingStrings
334
336
  } from "./chunk-Z4X5MTRT.js";
335
- import "./chunk-WM3LUQLO.js";
337
+ import "./chunk-TUGSVUJB.js";
336
338
  import {
337
339
  requestConsentInteractive,
338
340
  requestConsentOrFail
339
- } from "./chunk-IH4Z54RJ.js";
341
+ } from "./chunk-QV5YN5YD.js";
340
342
  import "./chunk-57OAHC2Y.js";
341
- import "./chunk-BSR5AXZR.js";
343
+ import "./chunk-OD2WU5QY.js";
342
344
  import "./chunk-45NQKMYB.js";
343
- import "./chunk-OK47XBYH.js";
345
+ import "./chunk-A4QRWUDE.js";
346
+ import "./chunk-V6WHFGST.js";
344
347
  import {
345
348
  createLoadedSettingsAdapter
346
- } from "./chunk-2IVYL3IF.js";
347
- import "./chunk-7U5G6JXI.js";
348
- import "./chunk-WCCLLK7X.js";
349
+ } from "./chunk-BVJS5BSP.js";
349
350
  import "./chunk-ZLCT4C5A.js";
350
- import "./chunk-V6WHFGST.js";
351
351
  import "./chunk-2AUM35J5.js";
352
+ import "./chunk-BKPPWD33.js";
352
353
  import "./chunk-6PLDPT2C.js";
353
354
  import "./chunk-FYJ7W2PI.js";
354
355
  import "./chunk-YP5KH5Y7.js";
@@ -357,12 +358,12 @@ import "./chunk-ALMR3E6Q.js";
357
358
  import "./chunk-HIBNSEJE.js";
358
359
  import "./chunk-M5GB774H.js";
359
360
  import "./chunk-3VUENPWF.js";
360
- import "./chunk-3AEKDXKT.js";
361
361
  import "./chunk-AW27A43Y.js";
362
362
  import "./chunk-IW6RQPQB.js";
363
+ import "./chunk-H4A72DE5.js";
363
364
  import {
364
365
  loadMcpApprovals
365
- } from "./chunk-3LDGOQXZ.js";
366
+ } from "./chunk-JOOFMXGF.js";
366
367
  import {
367
368
  CORRUPTED_SUFFIX,
368
369
  SettingScope,
@@ -384,11 +385,11 @@ import {
384
385
  settingExistsInScope,
385
386
  validateSettingValue,
386
387
  writeOutputLanguageAndRegisterPath
387
- } from "./chunk-3GDBZJD6.js";
388
+ } from "./chunk-A267JX7H.js";
388
389
  import "./chunk-RKUWKYED.js";
389
390
  import {
390
391
  TOGGLE_TYPES
391
- } from "./chunk-FA5K6YI2.js";
392
+ } from "./chunk-E23IPNGS.js";
392
393
  import "./chunk-GOXKNSDZ.js";
393
394
  import "./chunk-IDS7MSUP.js";
394
395
  import {
@@ -396,25 +397,24 @@ import {
396
397
  localizeToolDisplayName,
397
398
  t,
398
399
  ta
399
- } from "./chunk-IRSLAS4M.js";
400
+ } from "./chunk-HUTNYWBG.js";
400
401
  import "./chunk-5EJZE3FP.js";
401
- import "./chunk-XH3KAV2G.js";
402
+ import "./chunk-MC4TLKEI.js";
402
403
  import "./chunk-MS7GNABG.js";
403
- import "./chunk-7KJPO7YH.js";
404
+ import "./chunk-NF5J2WFA.js";
404
405
  import {
405
406
  getCliVersion
406
- } from "./chunk-OWXFBIB6.js";
407
+ } from "./chunk-CU6GJD55.js";
407
408
  import "./chunk-WZMH7II3.js";
408
409
  import {
409
410
  isWorkspaceTrusted,
410
411
  loadTrustedFolders
411
- } from "./chunk-ZMY2P4L3.js";
412
+ } from "./chunk-IWPYVAO2.js";
412
413
  import {
413
414
  require_strip_json_comments
414
415
  } from "./chunk-NPQ5ZKRP.js";
415
416
  import "./chunk-MR3PXB6E.js";
416
417
  import "./chunk-XFSFZCM5.js";
417
- import "./chunk-NF5J2WFA.js";
418
418
  import {
419
419
  ALIBABA_PROVIDERS,
420
420
  AsyncFzf,
@@ -520,76 +520,76 @@ import {
520
520
  validateWorkflowName,
521
521
  watchRepoBranch,
522
522
  writeRuntimeStatus
523
- } from "./chunk-EBPLKY6U.js";
523
+ } from "./chunk-4S5337WV.js";
524
524
  import "./chunk-GOFAQQZA.js";
525
525
  import "./chunk-5M6IDOMF.js";
526
526
  import {
527
527
  stripAnsi
528
528
  } from "./chunk-TWPJO254.js";
529
529
  import "./chunk-CQ35AJ4Z.js";
530
- import "./chunk-QPBFRWCP.js";
531
- import "./chunk-JRIVMPD2.js";
532
- import "./chunk-YILJKX2T.js";
533
- import "./chunk-D2RNVVH6.js";
530
+ import "./chunk-DGZEMW5R.js";
531
+ import "./chunk-WSH6GRKG.js";
532
+ import "./chunk-CKSJECTU.js";
533
+ import "./chunk-OVZPVYZB.js";
534
534
  import "./chunk-6PVPNMXU.js";
535
535
  import {
536
536
  resolveModelId
537
- } from "./chunk-I7BT2MME.js";
537
+ } from "./chunk-5EYKMUUY.js";
538
538
  import "./chunk-IRH27ZC2.js";
539
539
  import "./chunk-QHWCP53L.js";
540
- import "./chunk-AKBFSOC5.js";
541
- import "./chunk-DEDESZDL.js";
540
+ import "./chunk-Y3YCSWG5.js";
541
+ import "./chunk-UPDOZBWO.js";
542
542
  import {
543
543
  promptIdContext
544
544
  } from "./chunk-O6GEWCJA.js";
545
545
  import "./chunk-T26EAKDL.js";
546
546
  import "./chunk-ZPJWUGCS.js";
547
547
  import "./chunk-CPBF7KYF.js";
548
- import "./chunk-5RUCD4ED.js";
549
- import "./chunk-KRXPRVGL.js";
548
+ import {
549
+ APPROVAL_MODES
550
+ } from "./chunk-RWDNJBWN.js";
551
+ import "./chunk-25EYDK42.js";
550
552
  import {
551
553
  HOOKS_CONFIG_FIELDS
552
- } from "./chunk-YBVVOSOH.js";
553
- import "./chunk-CPFFU46D.js";
554
- import "./chunk-ULNWG62W.js";
554
+ } from "./chunk-MIPFDQAF.js";
555
+ import "./chunk-MLXTMF7H.js";
556
+ import "./chunk-KV27IEHM.js";
557
+ import "./chunk-E3DYKPYZ.js";
555
558
  import {
556
559
  elapsedActiveTime,
557
560
  goalRequiresExactPermit
558
- } from "./chunk-DPTMKFIH.js";
559
- import {
560
- APPROVAL_MODES
561
- } from "./chunk-63FNZTWG.js";
562
- import "./chunk-3GM5DLBI.js";
563
- import "./chunk-K34GJQOZ.js";
561
+ } from "./chunk-OMLJNPBE.js";
562
+ import "./chunk-OXCMMLED.js";
563
+ import "./chunk-TIGA2IVL.js";
564
564
  import "./chunk-SAH4BD2J.js";
565
- import "./chunk-KLOMACIR.js";
565
+ import "./chunk-XLLKYULU.js";
566
566
  import {
567
567
  runOutsideAgentContext
568
- } from "./chunk-VPV7WBVT.js";
568
+ } from "./chunk-PT4I7NBA.js";
569
569
  import "./chunk-S6LOFUVP.js";
570
570
  import "./chunk-2J3OJGTL.js";
571
571
  import {
572
572
  getStartupContextLength,
573
573
  isSystemReminderContent
574
- } from "./chunk-TTRH3RTQ.js";
574
+ } from "./chunk-SG7ZP5PG.js";
575
575
  import "./chunk-K623ENWT.js";
576
576
  import "./chunk-AQ37AY7B.js";
577
577
  import {
578
578
  isPathWithinRoot
579
- } from "./chunk-FRHQQC2Z.js";
579
+ } from "./chunk-KBXKR5R2.js";
580
580
  import {
581
581
  osc8Hyperlink,
582
582
  qwenOAuth2Events,
583
583
  sanitizeForOsc,
584
584
  supportsHyperlinks,
585
585
  wrapForMultiplexer
586
- } from "./chunk-DG4IQ6JG.js";
586
+ } from "./chunk-GMIEIY3Y.js";
587
587
  import "./chunk-NAVJD2PQ.js";
588
- import "./chunk-KEC5FHLM.js";
589
- import "./chunk-2ZWH53I4.js";
588
+ import "./chunk-ROIYNTHJ.js";
589
+ import "./chunk-2B2BF7P7.js";
590
590
  import "./chunk-P3QQPMQA.js";
591
- import "./chunk-TB4YFWXG.js";
592
- import "./chunk-D7QGE3RT.js";
591
+ import "./chunk-YZHRN3CF.js";
592
+ import "./chunk-FAAUPSY2.js";
593
593
  import {
594
594
  REASONING_EFFORT_TIERS,
595
595
  applyReasoningEffort
@@ -601,7 +601,7 @@ import {
601
601
  import "./chunk-AXMWHKXA.js";
602
602
  import "./chunk-GLCZKT5V.js";
603
603
  import "./chunk-DJ2GSRLV.js";
604
- import "./chunk-NLFLYSS4.js";
604
+ import "./chunk-QFJ5JHQR.js";
605
605
  import {
606
606
  ApiCancelEvent,
607
607
  AuthEvent,
@@ -641,7 +641,7 @@ import {
641
641
  runVisionBridge,
642
642
  shouldRunVisionBridge,
643
643
  splitImageParts
644
- } from "./chunk-4KM2SYK5.js";
644
+ } from "./chunk-RVOJ2FBP.js";
645
645
  import "./chunk-YRLW2MSX.js";
646
646
  import "./chunk-VGC4I5JJ.js";
647
647
  import {
@@ -650,16 +650,16 @@ import {
650
650
  getAutoMemoryRoot,
651
651
  getUserAutoMemoryRoot,
652
652
  isAnyAutoMemPath
653
- } from "./chunk-G6MUFRNI.js";
653
+ } from "./chunk-CHHABXPE.js";
654
654
  import {
655
655
  runSideQuery
656
- } from "./chunk-LSRI3ND3.js";
657
- import "./chunk-PVXEJB66.js";
656
+ } from "./chunk-MA2HEDVP.js";
657
+ import "./chunk-XUJNK7Y6.js";
658
658
  import {
659
659
  ToolNames,
660
660
  isShellProgressData
661
- } from "./chunk-YIGGWOJE.js";
662
- import "./chunk-KWX56CHZ.js";
661
+ } from "./chunk-6HY6IF3Z.js";
662
+ import "./chunk-4PKCUT7F.js";
663
663
  import {
664
664
  MAINLINE_CODER_MODEL
665
665
  } from "./chunk-F6WFNA7U.js";
@@ -667,17 +667,17 @@ import "./chunk-46UV252V.js";
667
667
  import {
668
668
  DEFAULT_TOKEN_LIMIT
669
669
  } from "./chunk-FPGTNKCP.js";
670
- import "./chunk-4AOVQPJU.js";
671
- import "./chunk-PZW46OTB.js";
670
+ import "./chunk-CPHEPGAO.js";
671
+ import "./chunk-P7MPQI75.js";
672
672
  import {
673
673
  atomicWriteFileSync
674
- } from "./chunk-YBHUXEC6.js";
674
+ } from "./chunk-FDGGZIYW.js";
675
675
  import {
676
676
  endInteractionSpan,
677
677
  getActiveInteractionSpan,
678
678
  isBinary,
679
679
  redactUrlCredentials
680
- } from "./chunk-N4SVADAV.js";
680
+ } from "./chunk-EL5SXY3T.js";
681
681
  import "./chunk-HHJLM3WQ.js";
682
682
  import "./chunk-K5IDV3PC.js";
683
683
  import {
@@ -691,13 +691,13 @@ import {
691
691
  isNodeError,
692
692
  shortenPath,
693
693
  tildeifyPath
694
- } from "./chunk-HOSVOUDK.js";
694
+ } from "./chunk-BUQDLC2G.js";
695
695
  import "./chunk-VOQXFAY5.js";
696
- import "./chunk-MELQSJOU.js";
696
+ import "./chunk-AW4TRXOC.js";
697
697
  import {
698
698
  registerCleanup,
699
699
  runExitCleanup
700
- } from "./chunk-OR64CU46.js";
700
+ } from "./chunk-X26JYGTD.js";
701
701
  import {
702
702
  finalizeStartupProfile,
703
703
  profileCheckpoint
@@ -36834,7 +36834,12 @@ function useReactToolScheduler(onComplete, config, getPreferredEditor, onEditorC
36834
36834
  const schedule = (0, import_react134.useCallback)(
36835
36835
  (request, signal, modelOverride) => {
36836
36836
  if (!modelOverride?.endsWith("\0")) {
36837
- void scheduler.schedule(request, signal);
36837
+ void scheduler.schedule(request, signal).catch((error) => {
36838
+ if (signal.aborted) return;
36839
+ debugLogger36.error(
36840
+ `Tool scheduling failed: ${error instanceof Error ? error.message : String(error)}`
36841
+ );
36842
+ });
36838
36843
  return;
36839
36844
  }
36840
36845
  void (async () => {
@@ -37542,6 +37547,38 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
37542
37547
  const dualOutput = useDualOutput();
37543
37548
  const [isResponding, setIsResponding] = (0, import_react136.useState)(false);
37544
37549
  const activeModelStreamsRef = (0, import_react136.useRef)(0);
37550
+ const submissionActivitiesByGenerationRef = (0, import_react136.useRef)(/* @__PURE__ */ new Map());
37551
+ const settleSubmissionStateIfIdle = (0, import_react136.useCallback)(() => {
37552
+ const currentGeneration = submissionLeaseGenerationRef.current;
37553
+ if ((submissionActivitiesByGenerationRef.current.get(currentGeneration) ?? 0) === 0 && activeModelStreamsRef.current === 0) {
37554
+ setIsResponding(false);
37555
+ setSubmissionInFlight(false);
37556
+ }
37557
+ }, [setSubmissionInFlight]);
37558
+ const retainSubmissionActivity = (0, import_react136.useCallback)(
37559
+ (generation) => {
37560
+ submissionActivitiesByGenerationRef.current.set(
37561
+ generation,
37562
+ (submissionActivitiesByGenerationRef.current.get(generation) ?? 0) + 1
37563
+ );
37564
+ return () => {
37565
+ const remainingActivities = Math.max(
37566
+ 0,
37567
+ (submissionActivitiesByGenerationRef.current.get(generation) ?? 1) - 1
37568
+ );
37569
+ if (remainingActivities === 0) {
37570
+ submissionActivitiesByGenerationRef.current.delete(generation);
37571
+ } else {
37572
+ submissionActivitiesByGenerationRef.current.set(
37573
+ generation,
37574
+ remainingActivities
37575
+ );
37576
+ }
37577
+ settleSubmissionStateIfIdle();
37578
+ };
37579
+ },
37580
+ [settleSubmissionStateIfIdle]
37581
+ );
37545
37582
  const [thought, setThought] = (0, import_react136.useState)(null);
37546
37583
  const historyRef = (0, import_react136.useRef)(history);
37547
37584
  (0, import_react136.useLayoutEffect)(() => {
@@ -37624,6 +37661,15 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
37624
37661
  const interactionOwnersByToolCallIdRef = (0, import_react136.useRef)(
37625
37662
  /* @__PURE__ */ new Map()
37626
37663
  );
37664
+ const continuationOwnersByToolCallIdRef = (0, import_react136.useRef)(
37665
+ /* @__PURE__ */ new Map()
37666
+ );
37667
+ const detachedToolContinuationAbortControllersRef = (0, import_react136.useRef)(
37668
+ /* @__PURE__ */ new Set()
37669
+ );
37670
+ const pendingCompletedToolBatchesRef = (0, import_react136.useRef)([]);
37671
+ const handleCompletedToolsRef = (0, import_react136.useRef)(async () => {
37672
+ });
37627
37673
  const immediateDuplicateToolResponsesRef = (0, import_react136.useRef)(null);
37628
37674
  const streamingResponseLengthRef = (0, import_react136.useRef)(0);
37629
37675
  const [isReceivingContent, setIsReceivingContent] = (0, import_react136.useState)(false);
@@ -37636,15 +37682,20 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
37636
37682
  const [toolCalls, scheduleToolCalls, markToolsAsSubmitted] = useReactToolScheduler(
37637
37683
  async (completedToolCallsFromScheduler) => {
37638
37684
  if (completedToolCallsFromScheduler.length > 0) {
37639
- const projectRoot = config.getProjectRoot();
37640
- const toolGroupDisplay = mapToDisplay(
37641
- completedToolCallsFromScheduler,
37642
- projectRoot
37643
- );
37644
- addItem(toolGroupDisplay, Date.now());
37645
- await handleCompletedTools(
37646
- completedToolCallsFromScheduler
37647
- );
37685
+ const releaseToolCompletionActivity = isSubmittingQueryRef.current ? retainSubmissionActivity(submissionLeaseGenerationRef.current) : void 0;
37686
+ try {
37687
+ const projectRoot = config.getProjectRoot();
37688
+ const toolGroupDisplay = mapToDisplay(
37689
+ completedToolCallsFromScheduler,
37690
+ projectRoot
37691
+ );
37692
+ addItem(toolGroupDisplay, Date.now());
37693
+ await handleCompletedTools(
37694
+ completedToolCallsFromScheduler
37695
+ );
37696
+ } finally {
37697
+ releaseToolCompletionActivity?.();
37698
+ }
37648
37699
  }
37649
37700
  },
37650
37701
  config,
@@ -37782,10 +37833,14 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
37782
37833
  }
37783
37834
  }, [streamingState, config, history]);
37784
37835
  const cancelOngoingRequest = (0, import_react136.useCallback)(() => {
37785
- if (streamingState !== "responding" /* Responding */) {
37836
+ if (turnCancelledRef.current) {
37837
+ for (const controller of detachedToolContinuationAbortControllersRef.current) {
37838
+ controller.abort();
37839
+ }
37840
+ detachedToolContinuationAbortControllersRef.current.clear();
37786
37841
  return;
37787
37842
  }
37788
- if (turnCancelledRef.current) {
37843
+ if (streamingState !== "responding" /* Responding */) {
37789
37844
  return;
37790
37845
  }
37791
37846
  for (const flushBufferedStreamEvents of flushBufferedStreamEventsRef.current) {
@@ -37795,7 +37850,15 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
37795
37850
  turnCancelledRef.current = true;
37796
37851
  submissionLeaseGenerationRef.current += 1;
37797
37852
  setSubmissionInFlight(false);
37798
- abortControllerRef.current?.abort();
37853
+ const foregroundAbortController = abortControllerRef.current;
37854
+ if (foregroundAbortController && !foregroundAbortController.signal.aborted) {
37855
+ foregroundAbortController.abort();
37856
+ } else {
37857
+ for (const controller of detachedToolContinuationAbortControllersRef.current) {
37858
+ controller.abort();
37859
+ }
37860
+ detachedToolContinuationAbortControllersRef.current.clear();
37861
+ }
37799
37862
  const activeInteractionPromptId = activeInteractionPromptIdRef.current;
37800
37863
  const activeInteractionOwner = activeInteractionOwnerRef.current;
37801
37864
  if (activeInteractionPromptId && activeInteractionOwner && getActiveInteractionSpan(activeInteractionPromptId) === activeInteractionOwner) {
@@ -37931,7 +37994,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
37931
37994
  );
37932
37995
  const prepareQueryForGemini = (0, import_react136.useCallback)(
37933
37996
  async (query, userMessageTimestamp, abortSignal, prompt_id, submitType, submittedPrompt, preserveTurnOwnership) => {
37934
- if (turnCancelledRef.current) {
37997
+ if (turnCancelledRef.current && !preserveTurnOwnership) {
37935
37998
  return { queryToSend: null, shouldProceed: false };
37936
37999
  }
37937
38000
  if (typeof query === "string" && query.trim().length === 0) {
@@ -37971,7 +38034,11 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
37971
38034
  prompt_id
37972
38035
  };
37973
38036
  scheduleToolCalls([toolCallRequest], abortSignal);
37974
- return { queryToSend: null, shouldProceed: false };
38037
+ return {
38038
+ queryToSend: null,
38039
+ shouldProceed: false,
38040
+ scheduledToolCallId: toolCallRequest.callId
38041
+ };
37975
38042
  }
37976
38043
  case "submit_prompt": {
37977
38044
  localQueryToSendToGemini = slashCommandResult.content;
@@ -38596,7 +38663,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
38596
38663
  [addItem, commitItemInOrder, pendingHistoryItemRef, setPendingHistoryItem]
38597
38664
  );
38598
38665
  const processGeminiStreamEvents = (0, import_react136.useCallback)(
38599
- async (stream, userMessageTimestamp, signal, submitType, turnAdmission, promptId, trackInteractionOwner = true) => {
38666
+ async (stream, userMessageTimestamp, signal, submitType, turnAdmission, promptId, trackInteractionOwner = true, toolContinuationOwner) => {
38600
38667
  let geminiMessageBuffer = "";
38601
38668
  let thoughtBuffer = "";
38602
38669
  let scheduledToolContinuation = false;
@@ -38609,6 +38676,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
38609
38676
  0
38610
38677
  );
38611
38678
  const toolCallRequests = [];
38679
+ let streamInteractionOwner = trackInteractionOwner ? activeInteractionOwnerRef.current : void 0;
38612
38680
  const bufferedEvents = [];
38613
38681
  let flushTimer = null;
38614
38682
  const discardBufferedStreamEvents = /* @__PURE__ */ __name(() => {
@@ -38732,8 +38800,11 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
38732
38800
  dualOutput?.startAssistantMessage();
38733
38801
  try {
38734
38802
  for await (const event of stream) {
38735
- if (trackInteractionOwner && promptId) {
38736
- activeInteractionOwnerRef.current ??= getActiveInteractionSpan(promptId);
38803
+ if (!streamInteractionOwner && promptId) {
38804
+ streamInteractionOwner = getActiveInteractionSpan(promptId);
38805
+ if (trackInteractionOwner && streamInteractionOwner) {
38806
+ activeInteractionOwnerRef.current ??= streamInteractionOwner;
38807
+ }
38737
38808
  }
38738
38809
  dualOutput?.processEvent(event);
38739
38810
  switch (event.type) {
@@ -39056,12 +39127,19 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39056
39127
  }
39057
39128
  }
39058
39129
  if (executableToolCallRequests.length > 0) {
39059
- const interactionOwner = activeInteractionOwnerRef.current;
39060
- if (trackInteractionOwner && interactionOwner) {
39130
+ if (toolContinuationOwner) {
39131
+ for (const request of executableToolCallRequests) {
39132
+ continuationOwnersByToolCallIdRef.current.set(
39133
+ request.callId,
39134
+ toolContinuationOwner
39135
+ );
39136
+ }
39137
+ }
39138
+ if (streamInteractionOwner) {
39061
39139
  for (const request of executableToolCallRequests) {
39062
39140
  interactionOwnersByToolCallIdRef.current.set(
39063
39141
  request.callId,
39064
- interactionOwner
39142
+ streamInteractionOwner
39065
39143
  );
39066
39144
  }
39067
39145
  }
@@ -39319,7 +39397,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39319
39397
  );
39320
39398
  const submitQuery = (0, import_react136.useCallback)(
39321
39399
  async (query, submitType = "userQuery" /* UserQuery */, prompt_id, metadata) => {
39322
- const allowConcurrentBtwDuringResponse = submitType === "userQuery" /* UserQuery */ && streamingState === "responding" /* Responding */ && typeof query === "string" && isBtwCommand(query) && !activeGoalAdmissionRef.current;
39400
+ const allowConcurrentBtwDuringResponse = submitType === "userQuery" /* UserQuery */ && streamingState === "responding" /* Responding */ && activeModelStreamsRef.current > 0 && typeof query === "string" && isBtwCommand(query) && !activeGoalAdmissionRef.current;
39323
39401
  let ownsSubmissionLease = false;
39324
39402
  let submissionLeaseGeneration;
39325
39403
  const acquireSubmissionLease = /* @__PURE__ */ __name(() => {
@@ -39352,6 +39430,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39352
39430
  return;
39353
39431
  }
39354
39432
  acquireSubmissionLease();
39433
+ const submissionGeneration = submissionLeaseGenerationRef.current;
39355
39434
  loopDetectedRef.current = false;
39356
39435
  if (!isTurnContinuation && !allowConcurrentBtwDuringResponse) {
39357
39436
  lastTurnUserItemRef.current = null;
@@ -39407,7 +39486,17 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39407
39486
  }
39408
39487
  const abortController = new AbortController();
39409
39488
  const abortSignal = abortController.signal;
39410
- if (!allowConcurrentBtwDuringResponse) {
39489
+ const inheritedToolContinuationOwner = metadata?.toolContinuationOwner;
39490
+ const isDetachedToolContinuation = inheritedToolContinuationOwner?.survivesGenerationChange === true;
39491
+ const detachedAbortController = inheritedToolContinuationOwner?.detachedAbortController ?? (allowConcurrentBtwDuringResponse ? abortController : void 0);
39492
+ const foregroundAbortController = allowConcurrentBtwDuringResponse || isDetachedToolContinuation ? void 0 : abortController;
39493
+ let keepToolContinuationAbortController = false;
39494
+ if (detachedAbortController) {
39495
+ detachedToolContinuationAbortControllersRef.current.add(
39496
+ detachedAbortController
39497
+ );
39498
+ }
39499
+ if (!allowConcurrentBtwDuringResponse && !isDetachedToolContinuation) {
39411
39500
  abortControllerRef.current = abortController;
39412
39501
  turnCancelledRef.current = false;
39413
39502
  }
@@ -39420,7 +39509,8 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39420
39509
  activeInteractionOwnerRef.current = void 0;
39421
39510
  }
39422
39511
  }
39423
- return promptIdContext.run(prompt_id, async () => {
39512
+ const releaseSubmissionActivity = retainSubmissionActivity(submissionGeneration);
39513
+ const submission = promptIdContext.run(prompt_id, async () => {
39424
39514
  let queuedGoal = metadata?.goal;
39425
39515
  let preparedQuery;
39426
39516
  try {
@@ -39442,7 +39532,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39442
39532
  prompt_id,
39443
39533
  submitType,
39444
39534
  submittedPrompt,
39445
- allowConcurrentBtwDuringResponse
39535
+ allowConcurrentBtwDuringResponse || isDetachedToolContinuation
39446
39536
  );
39447
39537
  } catch (error) {
39448
39538
  await releaseUndeliveredGoalTurn(metadata?.userAdmission?.turnKey);
@@ -39450,7 +39540,16 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39450
39540
  metadata?.onAdmissionFailed?.();
39451
39541
  throw error;
39452
39542
  }
39453
- const { queryToSend, shouldProceed } = preparedQuery;
39543
+ const { queryToSend, shouldProceed, scheduledToolCallId } = preparedQuery;
39544
+ if (scheduledToolCallId && foregroundAbortController) {
39545
+ keepToolContinuationAbortController = true;
39546
+ continuationOwnersByToolCallIdRef.current.set(scheduledToolCallId, {
39547
+ promptId: prompt_id,
39548
+ signal: abortSignal,
39549
+ survivesGenerationChange: false,
39550
+ foregroundAbortController
39551
+ });
39552
+ }
39454
39553
  if (!shouldProceed || queryToSend === null) {
39455
39554
  await releaseUndeliveredGoalTurn(metadata?.userAdmission?.turnKey);
39456
39555
  releaseSubmissionLease();
@@ -39488,7 +39587,21 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39488
39587
  ) : void 0);
39489
39588
  const turnKey = goalBinding?.turnKey ?? userAdmission?.turnKey;
39490
39589
  const turnController = goalBinding?.controller ?? (turnKey ? new AbortController() : void 0);
39491
- const processingSignal = turnController ? AbortSignal.any([abortSignal, turnController.signal]) : abortSignal;
39590
+ const processingSignals = [abortSignal];
39591
+ if (turnController) {
39592
+ processingSignals.push(turnController.signal);
39593
+ }
39594
+ if (inheritedToolContinuationOwner) {
39595
+ processingSignals.push(inheritedToolContinuationOwner.signal);
39596
+ }
39597
+ const processingSignal = processingSignals.length > 1 ? AbortSignal.any(processingSignals) : abortSignal;
39598
+ const toolContinuationOwner = {
39599
+ promptId: prompt_id,
39600
+ signal: processingSignal,
39601
+ survivesGenerationChange: allowConcurrentBtwDuringResponse || inheritedToolContinuationOwner?.survivesGenerationChange === true,
39602
+ detachedAbortController,
39603
+ foregroundAbortController
39604
+ };
39492
39605
  const turnAdmission = turnKey && turnController ? {
39493
39606
  turnKey,
39494
39607
  controller: turnController,
@@ -39564,11 +39677,12 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39564
39677
  modelOverride: modelOverrideRef.current,
39565
39678
  steerInput: metadata?.steerInput,
39566
39679
  ...submittedPrompt !== void 0 ? { submittedPrompt } : {},
39567
- ...!allowConcurrentBtwDuringResponse && midTurnDrainRef ? { getSteerInput: drainSteerAtBoundary } : {}
39680
+ ...!allowConcurrentBtwDuringResponse && !isDetachedToolContinuation && midTurnDrainRef ? { getSteerInput: drainSteerAtBoundary } : {}
39568
39681
  };
39682
+ const providerSignal = inheritedToolContinuationOwner ? processingSignal : abortSignal;
39569
39683
  const stream = geminiClient.sendMessageStream(
39570
39684
  finalQueryToSend,
39571
- abortSignal,
39685
+ providerSignal,
39572
39686
  prompt_id,
39573
39687
  {
39574
39688
  ...sendOptions,
@@ -39593,12 +39707,14 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39593
39707
  submitType,
39594
39708
  turnAdmission,
39595
39709
  prompt_id,
39596
- !allowConcurrentBtwDuringResponse
39710
+ !allowConcurrentBtwDuringResponse,
39711
+ toolContinuationOwner
39597
39712
  );
39598
39713
  if (!goalBinding && turnAdmission && activeGoalTurnRef.current?.controller === turnAdmission.controller && activeGoalTurnRef.current.turnKey === turnAdmission.turnKey) {
39599
39714
  goalBinding = activeGoalTurnRef.current;
39600
39715
  }
39601
39716
  keepGoalBinding = processingResult.scheduledToolContinuation;
39717
+ keepToolContinuationAbortController = processingResult.scheduledToolContinuation;
39602
39718
  if (processingResult.status === 1 /* UserCancelled */) {
39603
39719
  cleanupReviewLease = true;
39604
39720
  submitPromptOnCompleteRef.current = null;
@@ -39731,9 +39847,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39731
39847
  0,
39732
39848
  activeModelStreamsRef.current - 1
39733
39849
  );
39734
- if (activeModelStreamsRef.current === 0) {
39735
- setIsResponding(false);
39736
- }
39850
+ const shouldDrainCompletedToolBatches = activeModelStreamsRef.current === 0;
39737
39851
  if (goalBinding) {
39738
39852
  let retainGoalBinding = keepGoalBinding && !goalBinding.controller.signal.aborted;
39739
39853
  if (retainGoalBinding) {
@@ -39753,7 +39867,31 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39753
39867
  if (turnAdmission && !goalBinding && activeGoalAdmissionRef.current?.controller === turnAdmission.controller && activeGoalAdmissionRef.current.turnKey === turnAdmission.turnKey) {
39754
39868
  activeGoalAdmissionRef.current = null;
39755
39869
  }
39756
- releaseSubmissionLease();
39870
+ if (shouldDrainCompletedToolBatches) {
39871
+ const pendingCompletedToolBatches = pendingCompletedToolBatchesRef.current.splice(0);
39872
+ const pendingCompletedTools = /* @__PURE__ */ new Map();
39873
+ for (const pendingBatch of pendingCompletedToolBatches) {
39874
+ for (const toolCall of pendingBatch) {
39875
+ pendingCompletedTools.set(toolCall.request.callId, toolCall);
39876
+ }
39877
+ }
39878
+ if (pendingCompletedTools.size > 0) {
39879
+ await handleCompletedToolsRef.current([
39880
+ ...pendingCompletedTools.values()
39881
+ ]);
39882
+ }
39883
+ }
39884
+ }
39885
+ });
39886
+ return submission.finally(() => {
39887
+ releaseSubmissionActivity();
39888
+ if (detachedAbortController && !keepToolContinuationAbortController) {
39889
+ detachedToolContinuationAbortControllersRef.current.delete(
39890
+ detachedAbortController
39891
+ );
39892
+ }
39893
+ if (foregroundAbortController && !keepToolContinuationAbortController && abortControllerRef.current === foregroundAbortController) {
39894
+ abortControllerRef.current = null;
39757
39895
  }
39758
39896
  });
39759
39897
  },
@@ -39787,6 +39925,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39787
39925
  bindGoalTurn,
39788
39926
  failClosedGoalTurn,
39789
39927
  releaseUndeliveredGoalTurn,
39928
+ retainSubmissionActivity,
39790
39929
  setSubmissionInFlight
39791
39930
  ]
39792
39931
  );
@@ -39884,10 +40023,59 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39884
40023
  );
39885
40024
  }
39886
40025
  markToolsAsSubmitted(dedupedCallIds);
40026
+ const detachedAbortControllers = /* @__PURE__ */ new Set();
40027
+ const foregroundAbortControllers = /* @__PURE__ */ new Set();
40028
+ for (const callId of dedupedCallIds) {
40029
+ const continuationOwner2 = continuationOwnersByToolCallIdRef.current.get(callId);
40030
+ if (continuationOwner2?.detachedAbortController) {
40031
+ detachedAbortControllers.add(
40032
+ continuationOwner2.detachedAbortController
40033
+ );
40034
+ }
40035
+ if (continuationOwner2?.foregroundAbortController) {
40036
+ foregroundAbortControllers.add(
40037
+ continuationOwner2.foregroundAbortController
40038
+ );
40039
+ }
40040
+ interactionOwnersByToolCallIdRef.current.delete(callId);
40041
+ continuationOwnersByToolCallIdRef.current.delete(callId);
40042
+ }
40043
+ for (const controller of detachedAbortControllers) {
40044
+ const isStillOwned = [
40045
+ ...continuationOwnersByToolCallIdRef.current.values()
40046
+ ].some((owner) => owner.detachedAbortController === controller);
40047
+ if (!isStillOwned) {
40048
+ detachedToolContinuationAbortControllersRef.current.delete(
40049
+ controller
40050
+ );
40051
+ }
40052
+ }
40053
+ for (const controller of foregroundAbortControllers) {
40054
+ const isStillOwned = [
40055
+ ...continuationOwnersByToolCallIdRef.current.values()
40056
+ ].some((owner) => owner.foregroundAbortController === controller);
40057
+ if (!isStillOwned && abortControllerRef.current === controller) {
40058
+ abortControllerRef.current = null;
40059
+ }
40060
+ }
39887
40061
  }
39888
40062
  if (activeModelStreamsRef.current > 0) {
40063
+ const deferredTools = completedAndReadyToSubmitTools.filter(
40064
+ (toolCall) => !historyCallIdsWithResponse.has(toolCall.request.callId)
40065
+ );
40066
+ if (deferredTools.length > 0) {
40067
+ pendingCompletedToolBatchesRef.current.push(deferredTools);
40068
+ }
39889
40069
  return;
39890
40070
  }
40071
+ const continuationOwner = completedAndReadyToSubmitTools.filter(
40072
+ (toolCall) => !historyCallIdsWithResponse.has(toolCall.request.callId)
40073
+ ).map(
40074
+ (toolCall) => continuationOwnersByToolCallIdRef.current.get(
40075
+ toolCall.request.callId
40076
+ )
40077
+ ).find((owner) => owner !== void 0);
40078
+ const continuationWasCancelled = /* @__PURE__ */ __name(() => continuationOwner ? continuationOwner.signal.aborted : turnCancelledRef.current || abortControllerRef.current?.signal.aborted === true, "continuationWasCancelled");
39891
40079
  const clientTools = completedAndReadyToSubmitTools.filter(
39892
40080
  (t2) => t2.request.isClientInitiated && !historyCallIdsWithResponse.has(t2.request.callId)
39893
40081
  );
@@ -39897,25 +40085,77 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39897
40085
  const newSuccessfulMemorySaves = completedAndReadyToSubmitTools.filter(
39898
40086
  (t2) => t2.request.name === "save_memory" && t2.status === "success" && !processedMemoryToolsRef.current.has(t2.request.callId)
39899
40087
  );
39900
- const geminiTools = completedAndReadyToSubmitTools.filter(
40088
+ let geminiTools = completedAndReadyToSubmitTools.filter(
39901
40089
  (t2) => !t2.request.isClientInitiated && !historyCallIdsWithResponse.has(t2.request.callId)
39902
40090
  );
39903
40091
  const terminalPromptId = completedAndReadyToSubmitTools.find(
39904
40092
  (toolCall) => !toolCall.request.isClientInitiated
39905
40093
  )?.request.prompt_id;
39906
- const ownerToolCall = geminiTools[0] ?? completedAndReadyToSubmitTools.find(
40094
+ const ownerForToolCall = /* @__PURE__ */ __name((toolCall) => interactionOwnersByToolCallIdRef.current.get(toolCall.request.callId) ?? (activeInteractionPromptIdRef.current === toolCall.request.prompt_id ? activeInteractionOwnerRef.current : void 0), "ownerForToolCall");
40095
+ const liveOwnerForToolCall = /* @__PURE__ */ __name((toolCall) => {
40096
+ const owner = ownerForToolCall(toolCall);
40097
+ const ownerPromptId = toolCall.request.prompt_id;
40098
+ return owner && ownerPromptId && getActiveInteractionSpan(ownerPromptId) === owner ? owner : void 0;
40099
+ }, "liveOwnerForToolCall");
40100
+ const liveActiveInteractionOwner = activeInteractionPromptIdRef.current && activeInteractionOwnerRef.current && getActiveInteractionSpan(activeInteractionPromptIdRef.current) === activeInteractionOwnerRef.current ? activeInteractionOwnerRef.current : void 0;
40101
+ const ownerToolCall = (liveActiveInteractionOwner ? geminiTools.find(
40102
+ (toolCall) => liveOwnerForToolCall(toolCall) === liveActiveInteractionOwner
40103
+ ) : void 0) ?? geminiTools.find((toolCall) => liveOwnerForToolCall(toolCall)) ?? geminiTools[0] ?? completedAndReadyToSubmitTools.find(
39907
40104
  (toolCall) => !toolCall.request.isClientInitiated
39908
40105
  );
39909
- const interactionOwner = ownerToolCall ? interactionOwnersByToolCallIdRef.current.get(
39910
- ownerToolCall.request.callId
39911
- ) ?? (activeInteractionPromptIdRef.current === ownerToolCall.request.prompt_id ? activeInteractionOwnerRef.current : void 0) : void 0;
40106
+ const interactionOwner = ownerToolCall ? liveOwnerForToolCall(ownerToolCall) : void 0;
40107
+ const secondaryInteractionOwners = /* @__PURE__ */ new Map();
40108
+ const secondaryTools = interactionOwner ? geminiTools.filter(
40109
+ (toolCall) => ownerForToolCall(toolCall) !== interactionOwner
40110
+ ) : [];
40111
+ for (const toolCall of secondaryTools) {
40112
+ const secondaryOwner = ownerForToolCall(toolCall);
40113
+ if (secondaryOwner && toolCall.request.prompt_id) {
40114
+ secondaryInteractionOwners.set(
40115
+ secondaryOwner,
40116
+ toolCall.request.prompt_id
40117
+ );
40118
+ }
40119
+ if (toolCall.status !== "cancelled") {
40120
+ geminiClient?.recordCompletedToolCall(
40121
+ toolCall.request.name,
40122
+ toolCall.request.args
40123
+ );
40124
+ }
40125
+ dualOutput?.emitToolResult(toolCall.request, toolCall.response);
40126
+ }
40127
+ if (secondaryTools.length > 0) {
40128
+ const secondaryCallIds2 = new Set(
40129
+ secondaryTools.map((toolCall) => toolCall.request.callId)
40130
+ );
40131
+ markToolsAsSubmitted([...secondaryCallIds2]);
40132
+ geminiTools = geminiTools.filter(
40133
+ (toolCall) => !secondaryCallIds2.has(toolCall.request.callId)
40134
+ );
40135
+ }
39912
40136
  for (const toolCall of completedAndReadyToSubmitTools) {
39913
40137
  interactionOwnersByToolCallIdRef.current.delete(
39914
40138
  toolCall.request.callId
39915
40139
  );
40140
+ continuationOwnersByToolCallIdRef.current.delete(
40141
+ toolCall.request.callId
40142
+ );
39916
40143
  }
39917
- let promptId = geminiTools[0]?.request.prompt_id;
40144
+ for (const [owner, ownerPromptId] of secondaryInteractionOwners) {
40145
+ if (getActiveInteractionSpan(ownerPromptId) === owner) {
40146
+ endInteractionSpan("cancelled", { promptId: ownerPromptId });
40147
+ }
40148
+ }
40149
+ let promptId = ownerToolCall?.request.prompt_id ?? continuationOwner?.promptId;
39918
40150
  const endToolInteraction = /* @__PURE__ */ __name((status, errorMessage, errorType) => {
40151
+ if (continuationOwner?.detachedAbortController) {
40152
+ detachedToolContinuationAbortControllersRef.current.delete(
40153
+ continuationOwner.detachedAbortController
40154
+ );
40155
+ }
40156
+ if (continuationOwner?.foregroundAbortController && abortControllerRef.current === continuationOwner.foregroundAbortController) {
40157
+ abortControllerRef.current = null;
40158
+ }
39919
40159
  if (!promptId || !interactionOwner || getActiveInteractionSpan(promptId) !== interactionOwner) {
39920
40160
  return;
39921
40161
  }
@@ -40072,9 +40312,10 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
40072
40312
  );
40073
40313
  }
40074
40314
  const completedCallIds = new Set(
40075
- completedAndReadyToSubmitTools.map(
40076
- (toolCall) => toolCall.request.callId
40077
- )
40315
+ geminiTools.map((toolCall) => toolCall.request.callId)
40316
+ );
40317
+ const secondaryCallIds = new Set(
40318
+ secondaryTools.map((toolCall) => toolCall.request.callId)
40078
40319
  );
40079
40320
  const readyDuplicateBatches = [];
40080
40321
  pendingDuplicateToolResponsesRef.current = pendingDuplicateToolResponsesRef.current.filter((batch) => {
@@ -40084,10 +40325,13 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
40084
40325
  if (isReady) {
40085
40326
  readyDuplicateBatches.push(batch);
40086
40327
  }
40087
- return !isReady;
40328
+ const belongsToSecondaryOwner = [...batch.executableCallIds].some(
40329
+ (callId) => secondaryCallIds.has(callId)
40330
+ );
40331
+ return !isReady && !belongsToSecondaryOwner;
40088
40332
  });
40089
- const pendingDuplicateResponses = readyDuplicateBatches.flatMap(
40090
- (batch) => batch.duplicateResponses
40333
+ const pendingDuplicateResponses = readyDuplicateBatches.flatMap((batch) => batch.duplicateResponses).filter(
40334
+ ({ request }) => !interactionOwner || !request.prompt_id || request.prompt_id === promptId
40091
40335
  );
40092
40336
  const pendingDuplicatePromptId = readyDuplicateBatches[0]?.promptId;
40093
40337
  if (!promptId && pendingDuplicatePromptId) {
@@ -40193,7 +40437,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
40193
40437
  } : { goalContext: { ...goalContext } } : void 0
40194
40438
  );
40195
40439
  });
40196
- if (turnCancelledRef.current || abortControllerRef.current?.signal.aborted) {
40440
+ if (continuationWasCancelled()) {
40197
40441
  markToolsAsSubmitted(
40198
40442
  geminiTools.map((toolCall) => toolCall.request.callId)
40199
40443
  );
@@ -40283,10 +40527,11 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
40283
40527
  }
40284
40528
  }
40285
40529
  } catch (error) {
40530
+ const errorMessage = getErrorMessage(error);
40286
40531
  goalFinishFailed = true;
40287
40532
  await failClosedGoalTurn(
40288
40533
  toolGoalBinding,
40289
- `Goal turn could not finish: ${getErrorMessage(error)}`
40534
+ `Goal turn could not finish: ${errorMessage}`
40290
40535
  );
40291
40536
  } finally {
40292
40537
  releaseGoalTurn(toolGoalBinding);
@@ -40380,7 +40625,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
40380
40625
  );
40381
40626
  return;
40382
40627
  }
40383
- const drained = turnCancelledRef.current || abortControllerRef.current?.signal.aborted ? [] : midTurnDrainRef?.current?.(
40628
+ const drained = continuationOwner?.survivesGenerationChange || continuationWasCancelled() ? [] : midTurnDrainRef?.current?.(
40384
40629
  false,
40385
40630
  Boolean(activeGoalAdmissionRef.current)
40386
40631
  ) ?? [];
@@ -40406,7 +40651,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
40406
40651
  }
40407
40652
  }
40408
40653
  }
40409
- if (turnCancelledRef.current || abortControllerRef.current?.signal.aborted) {
40654
+ if (continuationWasCancelled()) {
40410
40655
  drainedSteer?.restore();
40411
40656
  if (toolGoalBinding) {
40412
40657
  await failClosedGoalTurn(
@@ -40426,7 +40671,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
40426
40671
  endToolInteraction("cancelled");
40427
40672
  return;
40428
40673
  }
40429
- void submitQuery(responsesToSend, "toolResult" /* ToolResult */, promptId, {
40674
+ await submitQuery(responsesToSend, "toolResult" /* ToolResult */, promptId, {
40430
40675
  steerInput: drainedSteer,
40431
40676
  onDelivered: drainedSteer?.accept,
40432
40677
  onAdmissionFailed: /* @__PURE__ */ __name(() => {
@@ -40444,7 +40689,8 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
40444
40689
  "continuation_delivery_failed"
40445
40690
  );
40446
40691
  }, "onDeliveryFailed"),
40447
- goalBinding: toolGoalBinding
40692
+ goalBinding: toolGoalBinding,
40693
+ toolContinuationOwner: continuationOwner
40448
40694
  });
40449
40695
  },
40450
40696
  [
@@ -40463,6 +40709,9 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
40463
40709
  releaseGoalTurn
40464
40710
  ]
40465
40711
  );
40712
+ (0, import_react136.useLayoutEffect)(() => {
40713
+ handleCompletedToolsRef.current = handleCompletedTools;
40714
+ }, [handleCompletedTools]);
40466
40715
  const pendingHistoryItems = (0, import_react136.useMemo)(
40467
40716
  () => [
40468
40717
  // Reasoning renders above the streaming answer.
@@ -45704,12 +45953,12 @@ ${buildWorkflowSteeringNotice()}
45704
45953
  }
45705
45954
  if (streamingState === "responding" /* Responding */ && isBtwCommand(submittedValue)) {
45706
45955
  void Promise.resolve(
45707
- submitQuery(
45708
- submittedValue,
45709
- "userQuery" /* UserQuery */,
45710
- void 0,
45711
- submittedPrompt === void 0 ? void 0 : { submittedPrompt }
45712
- )
45956
+ submitQuery(submittedValue, "userQuery" /* UserQuery */, void 0, {
45957
+ ...submittedPrompt === void 0 ? {} : { submittedPrompt },
45958
+ onAdmissionFailed: /* @__PURE__ */ __name(() => {
45959
+ addMessage(submittedValue, true, submittedPrompt);
45960
+ }, "onAdmissionFailed")
45961
+ })
45713
45962
  ).catch((error) => {
45714
45963
  debugLogger40.warn("Failed to admit /btw submission", error);
45715
45964
  });