@qwen-code/qwen-code 0.21.14 → 0.21.15

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 (318) hide show
  1. package/bundled/qc-helper/docs/features/channels/dingtalk.md +1 -1
  2. package/bundled/qc-helper/docs/features/code-review.md +20 -2
  3. package/bundled/qc-helper/docs/qwen-serve.md +1 -1
  4. package/bundled/review/SKILL.md +66 -36
  5. package/chunks/{MaxSizedBox-67IDQILY.js → MaxSizedBox-E7CUU3UN.js} +43 -43
  6. package/chunks/{StandaloneSessionPicker-G4QJIRMH.js → StandaloneSessionPicker-XYUB75AQ.js} +63 -63
  7. package/chunks/{acp-startup-profiler-HUYGO57H.js → acp-startup-profiler-DDVSJKJK.js} +2 -2
  8. package/chunks/{acpAgent-BS3YYO33.js → acpAgent-5QZS4VMN.js} +507 -176
  9. package/chunks/{agent-EHHEXKWN.js → agent-242BTA6Q.js} +40 -40
  10. package/chunks/{agent-headless-UT2ZF76T.js → agent-headless-4BF7W4TJ.js} +40 -40
  11. package/chunks/{anthropicContentGenerator-M7XRJMSK.js → anthropicContentGenerator-CU3G53RX.js} +7 -7
  12. package/chunks/{artifact-tool-GEXTOPVO.js → artifact-tool-LIUSI4XK.js} +3 -3
  13. package/chunks/{askUserQuestion-B33XRSB7.js → askUserQuestion-454X3UIV.js} +3 -3
  14. package/chunks/{bridge-WQ4IL2RF.js → bridge-MG4F5NOH.js} +46 -45
  15. package/chunks/{channel-management-service-X6LCQUAD.js → channel-management-service-KHPAWCX7.js} +1 -1
  16. package/chunks/{channel-settings-store-ZDFXY7VY.js → channel-settings-store-GQUCL2YM.js} +47 -47
  17. package/chunks/{channel-worker-group-TJ35JDPE.js → channel-worker-group-IN2UPYHP.js} +6 -5
  18. package/chunks/{channel-worker-manager-G5LKWGOG.js → channel-worker-manager-4CQPHVD4.js} +6 -5
  19. package/chunks/{channel-worker-supervisor-OEVWBHGT.js → channel-worker-supervisor-CPPSL7ZH.js} +4 -3
  20. package/chunks/{chunk-3EZLLVDF.js → chunk-263JC66E.js} +3 -3
  21. package/chunks/{chunk-OO4FKHLO.js → chunk-2GM44E7D.js} +10 -298
  22. package/chunks/{chunk-LSO6EL4Y.js → chunk-2MDUS4XE.js} +2 -2
  23. package/chunks/{chunk-WGHHA7ZH.js → chunk-3C55EUJX.js} +1 -1
  24. package/chunks/{chunk-47L5MLB5.js → chunk-3EAGKRLN.js} +5 -5
  25. package/chunks/{chunk-WPVUOVYX.js → chunk-3EQHT3IC.js} +2 -2
  26. package/chunks/{chunk-OEZCXK7Y.js → chunk-3JZ2AZC6.js} +4 -4
  27. package/chunks/{chunk-PCETXVVV.js → chunk-3X6KVX37.js} +1 -1
  28. package/chunks/{chunk-J63PKMYA.js → chunk-435GZDTF.js} +2 -2
  29. package/chunks/{chunk-I3N2Z25H.js → chunk-47VTGCYK.js} +3 -3
  30. package/chunks/{chunk-3PWNVF6N.js → chunk-4APB4SP2.js} +1 -1
  31. package/chunks/{chunk-MA2HEDVP.js → chunk-4CKU5K2R.js} +1 -1
  32. package/chunks/{chunk-OJB5FYVK.js → chunk-4IOBHNV2.js} +1 -1
  33. package/chunks/{chunk-MIPFDQAF.js → chunk-4W4BROUS.js} +1 -1
  34. package/chunks/{chunk-ZIGC3MUS.js → chunk-55P2ESI6.js} +1 -1
  35. package/chunks/{chunk-CHHABXPE.js → chunk-5AAW6E3C.js} +1 -1
  36. package/chunks/{chunk-J6YS7Z25.js → chunk-5I2U4PDY.js} +12 -12
  37. package/chunks/{chunk-NWNEANAT.js → chunk-5M7YKTYX.js} +6 -6
  38. package/chunks/{chunk-RXHBTKMG.js → chunk-5MA4E4EG.js} +3 -3
  39. package/chunks/{chunk-CEXU72GE.js → chunk-5NAJDTVP.js} +3 -3
  40. package/chunks/{chunk-U657UZJN.js → chunk-5WEMSDPR.js} +5 -5
  41. package/chunks/{chunk-73JUK3ZW.js → chunk-63AIQ2IZ.js} +96 -15
  42. package/chunks/{chunk-E5WQMF3K.js → chunk-67L6PVD6.js} +2 -2
  43. package/chunks/{chunk-CZK622ZK.js → chunk-6IFWBM24.js} +3 -3
  44. package/chunks/{chunk-CPHEPGAO.js → chunk-722JBVVW.js} +1 -1
  45. package/chunks/chunk-7NLDU6J2.js +367 -0
  46. package/chunks/{chunk-AKBOLMUF.js → chunk-7S22SX2L.js} +2 -2
  47. package/chunks/{chunk-SCZU65AI.js → chunk-7VRNXKKK.js} +8 -8
  48. package/chunks/{chunk-XUJNK7Y6.js → chunk-7WVB4FMG.js} +1 -1
  49. package/chunks/{chunk-55VKMB7X.js → chunk-A7MIUCUQ.js} +6 -6
  50. package/chunks/{chunk-NVRMCWTP.js → chunk-A7NBZBGQ.js} +3 -3
  51. package/chunks/{chunk-N6RSOOWJ.js → chunk-AAG7I5CR.js} +7 -7
  52. package/chunks/{chunk-EOPBFLA5.js → chunk-AKN26LMT.js} +3 -3
  53. package/chunks/{chunk-UC67T4SF.js → chunk-AQFWV4YF.js} +2 -1
  54. package/chunks/{chunk-DVR7XKO5.js → chunk-B5LEKTE7.js} +2 -2
  55. package/chunks/{chunk-V6WEMZPD.js → chunk-B72KNVKO.js} +3 -3
  56. package/chunks/{chunk-544KT7X4.js → chunk-BBMVUTXO.js} +1 -1
  57. package/chunks/{chunk-DHUPMYMC.js → chunk-BORX4PBQ.js} +12 -12
  58. package/chunks/{chunk-5IJSFWQO.js → chunk-BUZESYJT.js} +4 -4
  59. package/chunks/{chunk-Y4RVDOXV.js → chunk-DF7KFKCL.js} +4 -4
  60. package/chunks/{chunk-K2Y45XXS.js → chunk-DFOKBPH5.js} +108 -26
  61. package/chunks/{chunk-3SL2P3WX.js → chunk-DIHJXVT4.js} +1 -1
  62. package/chunks/{chunk-WAO53ZQF.js → chunk-DITDNF3D.js} +22 -2
  63. package/chunks/{chunk-2A6VQJYK.js → chunk-DK4HL3IB.js} +7 -7
  64. package/chunks/{chunk-6BJSYAML.js → chunk-DPXZUGDQ.js} +46 -21
  65. package/chunks/{chunk-MVHJZ3FZ.js → chunk-DZNQHKZZ.js} +2 -2
  66. package/chunks/{chunk-SNQZZ765.js → chunk-EB27VF5Z.js} +2 -2
  67. package/chunks/{chunk-KC4WMLZO.js → chunk-EXY6APEA.js} +81 -50
  68. package/chunks/{chunk-7VNHO4MN.js → chunk-F3FRTY4Q.js} +16 -7
  69. package/chunks/{chunk-FS5NGKWC.js → chunk-F5JZDC4O.js} +3 -3
  70. package/chunks/{chunk-6QFDQMQX.js → chunk-F7ZK5VMA.js} +1 -1
  71. package/chunks/{chunk-2B2BF7P7.js → chunk-FAIJ5UIU.js} +3 -3
  72. package/chunks/{chunk-G6KI5UOJ.js → chunk-FQ6G527Y.js} +3 -3
  73. package/chunks/{chunk-WSSH2BNO.js → chunk-FQZBD3PY.js} +1 -1
  74. package/chunks/{chunk-OVY67CYC.js → chunk-G32ESUUC.js} +1 -1
  75. package/chunks/{chunk-OBJYN4MX.js → chunk-G64PEZZ5.js} +2 -2
  76. package/chunks/{chunk-QRVHGEVY.js → chunk-GCWILQKA.js} +3 -3
  77. package/chunks/{chunk-QUGAUQGJ.js → chunk-GX2THELY.js} +1 -0
  78. package/chunks/{chunk-L3T4V5GZ.js → chunk-GYVB4P5B.js} +721 -331
  79. package/chunks/{chunk-FAAUPSY2.js → chunk-HEMFCAHG.js} +1 -1
  80. package/chunks/{chunk-AZQ3DT76.js → chunk-HGGMEDDY.js} +2 -2
  81. package/chunks/{chunk-SG7ZP5PG.js → chunk-HHNSO2Y4.js} +4 -4
  82. package/chunks/{chunk-YHXQK4SR.js → chunk-HSCPOEBL.js} +3 -3
  83. package/chunks/{chunk-H3SHU2XU.js → chunk-I3AB5DOZ.js} +3 -3
  84. package/chunks/{chunk-SFJMFZT5.js → chunk-IBUXQJHH.js} +1 -1
  85. package/chunks/{chunk-FN6M5WUL.js → chunk-IFOR6I5C.js} +4 -4
  86. package/chunks/{chunk-PHN4R2ZV.js → chunk-IU2XWUSI.js} +1 -1
  87. package/chunks/{chunk-OJOP26ET.js → chunk-J2LZ5OCH.js} +3 -3
  88. package/chunks/{chunk-4ZMS3JCR.js → chunk-JBSW7JA6.js} +83 -4
  89. package/chunks/{chunk-QAVTWAHL.js → chunk-JIR6JDGE.js} +3 -3
  90. package/chunks/{chunk-UGK4K2N2.js → chunk-JS73NNWF.js} +8 -0
  91. package/chunks/{chunk-2M55OBEB.js → chunk-JV443R5X.js} +1 -1
  92. package/chunks/{chunk-QEHH23OM.js → chunk-K6GQS2WN.js} +1 -1
  93. package/chunks/{chunk-6LAPGPVA.js → chunk-KCUGOZPL.js} +2 -2
  94. package/chunks/{chunk-KV27IEHM.js → chunk-L5JHSPET.js} +1 -1
  95. package/chunks/{chunk-OFTPCOGR.js → chunk-L7RG5PVT.js} +2902 -1393
  96. package/chunks/{chunk-TSMPNGBC.js → chunk-LBQBFRFN.js} +2 -2
  97. package/chunks/chunk-LJZSMWOH.js +18 -0
  98. package/chunks/{chunk-IA2K2HJE.js → chunk-M53UJS6H.js} +2 -2
  99. package/chunks/{chunk-KBXKR5R2.js → chunk-M5AIO24H.js} +1 -1
  100. package/chunks/{chunk-ROIYNTHJ.js → chunk-MD7XDTW7.js} +3 -3
  101. package/chunks/{chunk-3PWCMXIR.js → chunk-MGEWDLRO.js} +1 -1
  102. package/chunks/{chunk-4ZS3BLER.js → chunk-NAGJPIPW.js} +22 -7
  103. package/chunks/{chunk-3YRVPHT3.js → chunk-NCTHX2Z3.js} +14 -14
  104. package/chunks/{chunk-YP5KH5Y7.js → chunk-ND7NOI4P.js} +1 -1
  105. package/chunks/{chunk-4W5U2TUT.js → chunk-NGY7B7VF.js} +1 -1
  106. package/chunks/{chunk-S7N3HUIB.js → chunk-NMSSH43P.js} +6 -6
  107. package/chunks/{chunk-UYDGFWIJ.js → chunk-NYN4RD3K.js} +66 -7
  108. package/chunks/{chunk-DGJ7O55J.js → chunk-O327G3QW.js} +3 -3
  109. package/chunks/{chunk-2C6HJMG3.js → chunk-O75QDGQF.js} +3 -3
  110. package/chunks/{chunk-SFTKAX4O.js → chunk-OFJ6OFIT.js} +1 -1
  111. package/chunks/{chunk-6HY6IF3Z.js → chunk-OUYRA764.js} +1 -1
  112. package/chunks/{chunk-OEYAK5O6.js → chunk-OVS33JJM.js} +5 -5
  113. package/chunks/{chunk-VFP5YOHJ.js → chunk-PRIX4D6T.js} +6 -6
  114. package/chunks/{chunk-H4A72DE5.js → chunk-PTMVPFCZ.js} +1 -1
  115. package/chunks/{chunk-W7EYJGN7.js → chunk-PWQPWISR.js} +8 -8
  116. package/chunks/{chunk-QFJ5JHQR.js → chunk-PXOIRYE5.js} +1 -1
  117. package/chunks/{chunk-4SR45OM4.js → chunk-Q5QDZXKL.js} +1 -1
  118. package/chunks/{chunk-YECDICIO.js → chunk-Q6ETBOWF.js} +1 -1
  119. package/chunks/{chunk-WP4WIUOJ.js → chunk-QQUVPMMZ.js} +2 -2
  120. package/chunks/{chunk-C3T6M24E.js → chunk-RLYXWNS3.js} +3 -3
  121. package/chunks/{chunk-XT4RKHVE.js → chunk-RZ4PE3ER.js} +512 -24
  122. package/chunks/{chunk-6RDZLBSJ.js → chunk-SGKUVDBX.js} +80 -44
  123. package/chunks/{chunk-YZHRN3CF.js → chunk-SWOKDPS5.js} +2 -2
  124. package/chunks/{chunk-SLILKYV2.js → chunk-T2LUUKRI.js} +3 -3
  125. package/chunks/{chunk-5CVO7YES.js → chunk-U4GL4WDY.js} +1 -1
  126. package/chunks/{chunk-QEJZUXSK.js → chunk-U53XZHAE.js} +1 -1
  127. package/chunks/{chunk-XYRBK56E.js → chunk-U7U3CX4K.js} +3353 -1306
  128. package/chunks/{chunk-HIBNSEJE.js → chunk-UDG5EZJI.js} +0 -2
  129. package/chunks/{chunk-BQWNIPTE.js → chunk-V4UBYT3Y.js} +1 -1
  130. package/chunks/{chunk-XITLNXLX.js → chunk-VWS7DWY6.js} +3 -3
  131. package/chunks/{chunk-PT4I7NBA.js → chunk-VX7TFATF.js} +1 -1
  132. package/chunks/{chunk-VTOLYFWM.js → chunk-W3M6P3UR.js} +2 -2
  133. package/chunks/{chunk-CH5OFRV7.js → chunk-W4MLKRZD.js} +3 -3
  134. package/chunks/chunk-W5YD3QRT.js +367 -0
  135. package/chunks/{chunk-5IYS4WWR.js → chunk-WAPL2PHU.js} +1 -1
  136. package/chunks/{chunk-NRPXRNN4.js → chunk-WXFFCRKG.js} +1 -1
  137. package/chunks/{chunk-E3DYKPYZ.js → chunk-X7EQHW5L.js} +3 -3
  138. package/chunks/{chunk-BUQDLC2G.js → chunk-XFRYCCVC.js} +3 -3
  139. package/chunks/{chunk-DRAONPUW.js → chunk-XZ3J6E5Z.js} +2 -2
  140. package/chunks/{chunk-P3AA6S7O.js → chunk-Y7JGWFTK.js} +1 -1
  141. package/chunks/{chunk-SXCOEJO4.js → chunk-YLFFVY3G.js} +1 -1
  142. package/chunks/{chunk-YZOSNW4R.js → chunk-YO7PNVBJ.js} +1 -1
  143. package/chunks/{chunk-MDIGJH5X.js → chunk-ZL3HKVEQ.js} +4 -4
  144. package/chunks/{chunk-Y7QY6DKW.js → chunk-ZTLSYXFY.js} +4 -4
  145. package/chunks/{chunk-RWDNJBWN.js → chunk-ZUISK67X.js} +2 -2
  146. package/chunks/{chunk-PJSD2FOR.js → chunk-ZVJ5R5LM.js} +33 -33
  147. package/chunks/{chunk-XLLKYULU.js → chunk-ZWWU6KNS.js} +2 -2
  148. package/chunks/{computer-use-YORZJQE5.js → computer-use-34X5XJMV.js} +40 -40
  149. package/chunks/{config-utils-NJQA5YLJ.js → config-utils-XJTGZVY3.js} +2 -2
  150. package/chunks/{contextCommand-PACHGIF4.js → contextCommand-Q54VMGPA.js} +42 -42
  151. package/chunks/{core-runtime-6HD5DSPX.js → core-runtime-TIWTFHOR.js} +45 -44
  152. package/chunks/{create-sub-session-IQFIPUQA.js → create-sub-session-DPEBT657.js} +40 -40
  153. package/chunks/{create-sub-session-KRQULJE6.js → create-sub-session-TCKWBXEM.js} +6 -4
  154. package/chunks/{cron-create-NFRZEOQX.js → cron-create-PUCRMWQ6.js} +5 -5
  155. package/chunks/{cron-delete-GFVSVO7C.js → cron-delete-EOQR5CXU.js} +5 -5
  156. package/chunks/{cron-list-NRW34CLU.js → cron-list-7O22SQBF.js} +5 -5
  157. package/chunks/{daemon-XH76IXOC.js → daemon-JE2UIWSY.js} +304 -160
  158. package/chunks/{daemon-git-worktree-guard-6P27GKSU.js → daemon-git-worktree-guard-XSZ3362V.js} +40 -40
  159. package/chunks/daemon-status-provider-JBEST4SF.js +104 -0
  160. package/chunks/{daemon-trust-policy-5QJHAS3N.js → daemon-trust-policy-S6LBG4WN.js} +46 -46
  161. package/chunks/{daemon-trust-policy-monitor-JA2WZRZ3.js → daemon-trust-policy-monitor-NFO3OIBN.js} +46 -46
  162. package/chunks/{deferred-core-runtime-R2VWOVG3.js → deferred-core-runtime-Z2TLD2L7.js} +40 -40
  163. package/chunks/{display-image-ON3EYFRD.js → display-image-6FCICTXS.js} +5 -5
  164. package/chunks/{dist-IYYN3RUT.js → dist-IELOWDOT.js} +81 -17
  165. package/chunks/{earlyInputCapture-PQEEOFKJ.js → earlyInputCapture-KCZDAQWY.js} +41 -41
  166. package/chunks/{edit-RASZHTU2.js → edit-3UADXGNC.js} +41 -41
  167. package/chunks/{enter-worktree-CH5OMHJE.js → enter-worktree-J66YDAJE.js} +40 -40
  168. package/chunks/{enterPlanMode-AQKR3CAH.js → enterPlanMode-YUZUKY5F.js} +40 -40
  169. package/chunks/{environment-7QRYIEBA.js → environment-6IEK2353.js} +42 -42
  170. package/chunks/{errors-P2LL5452.js → errors-RVLRX7XI.js} +42 -42
  171. package/chunks/{exit-worktree-WUDL26CY.js → exit-worktree-SNMPATZE.js} +40 -40
  172. package/chunks/{exitPlanMode-JM75SAUI.js → exitPlanMode-DP4TURUC.js} +40 -40
  173. package/chunks/{fast-path-KVNSOHVA.js → fast-path-5CC6RKES.js} +2 -2
  174. package/chunks/{gemini-ADMD2EOS.js → gemini-F64ZP4SG.js} +83 -82
  175. package/chunks/{geminiContentGenerator-CS3M7SOS.js → geminiContentGenerator-KAFSMFA6.js} +7 -7
  176. package/chunks/{getMachineId-bsd-FG7IUY6U.js → getMachineId-bsd-LSY4WMOF.js} +1 -1
  177. package/chunks/{getMachineId-darwin-GLCJI2RA.js → getMachineId-darwin-JOFR4UIT.js} +1 -1
  178. package/chunks/{getMachineId-linux-O6OPPAKO.js → getMachineId-linux-QEDBS6GI.js} +1 -1
  179. package/chunks/{getMachineId-unsupported-S6CKYVGC.js → getMachineId-unsupported-IPZ3YRKP.js} +1 -1
  180. package/chunks/{getMachineId-win-X5SRNEH7.js → getMachineId-win-TJ2OZ7AA.js} +1 -1
  181. package/chunks/{glob-WIJOGYVV.js → glob-OE27ZGK4.js} +40 -40
  182. package/chunks/{goal-tools-K5OHOJ6B.js → goal-tools-YIADM4RZ.js} +5 -5
  183. package/chunks/{grep-CIFRQBR7.js → grep-VBV6BWSP.js} +40 -40
  184. package/chunks/{handleAutoUpdate-KJ4SN7DM.js → handleAutoUpdate-YDMS57ZN.js} +46 -44
  185. package/chunks/{i18n-36SZUO4C.js → i18n-JIW77MSO.js} +41 -41
  186. package/chunks/{image-gen-R4B5VUYB.js → image-gen-L4A2ISEH.js} +11 -11
  187. package/chunks/{initializer-CW5YCAOL.js → initializer-F7I7QDHK.js} +47 -47
  188. package/chunks/{installationInfo-NMQIOUGY.js → installationInfo-KOUBU7MH.js} +43 -41
  189. package/chunks/{keychain-token-storage-3XFJ5ZB2.js → keychain-token-storage-7SL4ZWQQ.js} +3 -3
  190. package/chunks/{list-HHGT3S4P.js → list-AJ5BRB7C.js} +49 -49
  191. package/chunks/{list-agents-OSVDFI6S.js → list-agents-XO4EONWC.js} +6 -6
  192. package/chunks/{loadedSettingsAdapter-SJ2MJF35.js → loadedSettingsAdapter-X7FC5332.js} +46 -46
  193. package/chunks/{loggingContentGenerator-GR2QQ2C5.js → loggingContentGenerator-5G4ZR5D5.js} +22 -22
  194. package/chunks/{loop-wakeup-HWVUU5CF.js → loop-wakeup-HWSTFUTQ.js} +6 -6
  195. package/chunks/{ls-D3HUFHDP.js → ls-52HUW4B6.js} +5 -5
  196. package/chunks/{lsp-3QDDJTCS.js → lsp-VJESYEC6.js} +3 -3
  197. package/chunks/{managed-npm-update-ADQJHKTO.js → managed-npm-update-ZR2T2ST3.js} +41 -41
  198. package/chunks/{mcp-QW3OTL5W.js → mcp-TZNHG7CF.js} +46 -46
  199. package/chunks/{monitor-RJKPVERH.js → monitor-TN6Z4SXF.js} +40 -40
  200. package/chunks/{nonInteractiveCli-MROMHSTL.js → nonInteractiveCli-I7K6KH5U.js} +81 -80
  201. package/chunks/{notebook-edit-2ENWDBZO.js → notebook-edit-77V2IP3Y.js} +40 -40
  202. package/chunks/{openaiContentGenerator-Z3GPWJU4.js → openaiContentGenerator-2S2UT4RR.js} +25 -26
  203. package/chunks/{pidfile-5G42YSTP.js → pidfile-WDSDXBY3.js} +41 -41
  204. package/chunks/{processUtils-ZDMXYKQY.js → processUtils-JOJNZOW4.js} +2 -2
  205. package/chunks/prompt-terminal-ledger-RW62JIPP.js +93 -0
  206. package/chunks/{qwenContentGenerator-NLEMBZVU.js → qwenContentGenerator-G3H2TCXF.js} +45 -45
  207. package/chunks/{qwenOAuth2-EBV52DWJ.js → qwenOAuth2-UI2OC2RN.js} +10 -10
  208. package/chunks/{read-file-5BYIF53O.js → read-file-DI64TNOE.js} +13 -14
  209. package/chunks/{read-mcp-resource-XD54ZQMC.js → read-mcp-resource-6VFF47Z3.js} +3 -3
  210. package/chunks/{record-artifact-GLU3UWBV.js → record-artifact-TJTN2GBV.js} +5 -5
  211. package/chunks/{resumeHistoryUtils-AFTBRS3G.js → resumeHistoryUtils-3FIDQ6YQ.js} +46 -46
  212. package/chunks/{ripGrep-NN7AOLQY.js → ripGrep-EUTGRCN3.js} +40 -40
  213. package/chunks/{run-qwen-serve-UR3DYDAF.js → run-qwen-serve-SQBF7QZM.js} +505 -161
  214. package/chunks/{runtime-PR5RKGNH.js → runtime-7QGB6SY4.js} +49 -49
  215. package/chunks/{scheduler-GPMLVKJM.js → scheduler-V6AZCQVU.js} +42 -42
  216. package/chunks/{sdk-exporters-grpc-54L4LS5L.js → sdk-exporters-grpc-P3LA24AV.js} +3 -3
  217. package/chunks/{sdk-exporters-http-NC746HLT.js → sdk-exporters-http-K3LH2SD7.js} +9 -11
  218. package/chunks/{sdk-impl-YVL7BP6Y.js → sdk-impl-WCUNMLVX.js} +11 -6
  219. package/chunks/{send-message-TNBG5EVA.js → send-message-NUK5DTTI.js} +7 -7
  220. package/chunks/{serve-E7V2JVA2.js → serve-WVNAO2NA.js} +46 -46
  221. package/chunks/{server-YXB3DBN7.js → server-ZMZPHJEC.js} +992 -271
  222. package/chunks/{session-DZEAUT7S.js → session-JV74G6EZ.js} +82 -81
  223. package/chunks/{settings-ESZ3NWAP.js → settings-GBBVKBQ2.js} +45 -45
  224. package/chunks/{shell-JMSK5WIL.js → shell-JNNRUZPA.js} +40 -40
  225. package/chunks/{skill-5K5CSUJV.js → skill-JRGRCWD5.js} +18 -18
  226. package/chunks/{skill-settings-V64NIOTI.js → skill-settings-VEC7C44Z.js} +45 -45
  227. package/chunks/{spawnChannel-S63APBZZ.js → spawnChannel-TVKIFXXA.js} +42 -42
  228. package/chunks/{standalone-update-P42HDFXX.js → standalone-update-OSHF2CX3.js} +42 -42
  229. package/chunks/{startInteractiveUI-LFBLFHJ4.js → startInteractiveUI-2HTUHVQO.js} +310 -156
  230. package/chunks/{syntheticOutput-7GWFIDXT.js → syntheticOutput-GZV6O6UL.js} +4 -4
  231. package/chunks/{task-create-EILHJJB7.js → task-create-BXGKNND4.js} +11 -11
  232. package/chunks/{task-list-WGJR6YL5.js → task-list-4ZMIDYGD.js} +6 -6
  233. package/chunks/{task-stop-X37KYTKB.js → task-stop-WBO7LWTS.js} +3 -3
  234. package/chunks/{task-update-XZAHVXJ5.js → task-update-UFO3BI7O.js} +11 -11
  235. package/chunks/{team-create-EDNOUM2U.js → team-create-DTPGJ6RH.js} +40 -40
  236. package/chunks/{team-delete-UEP4QOOT.js → team-delete-OCFJS444.js} +6 -6
  237. package/chunks/{team-plan-approval-QRSNK2DX.js → team-plan-approval-4433RWHB.js} +40 -40
  238. package/chunks/{terminal-image-renderer-6J2NPL32.js → terminal-image-renderer-QZLIKIVA.js} +42 -42
  239. package/chunks/{theme-manager-WJMLRBXS.js → theme-manager-RM7C7Q3L.js} +41 -41
  240. package/chunks/{todoWrite-ATS62CAP.js → todoWrite-BGM5MCPY.js} +5 -5
  241. package/chunks/{tool-search-MZ6WU7DM.js → tool-search-4NQJASFC.js} +17 -18
  242. package/chunks/{total-session-admission-DQVW2LIP.js → total-session-admission-NZNCU5NU.js} +46 -45
  243. package/chunks/{trustedFolders-QMH25GOX.js → trustedFolders-FDJ2Q4ZK.js} +41 -41
  244. package/chunks/{update-relaunch-EG75LLW5.js → update-relaunch-HZMDPRTF.js} +5 -5
  245. package/chunks/{updateCheck-MTZIVGT5.js → updateCheck-ZB2CRVVG.js} +43 -43
  246. package/chunks/{useAutoAcceptIndicator-IGCW5EPO.js → useAutoAcceptIndicator-O3JI4KTR.js} +48 -48
  247. package/chunks/{validateNonInterActiveAuth-D5FPAB2C.js → validateNonInterActiveAuth-7Z4KG4N5.js} +78 -77
  248. package/chunks/{version-UOLDLLRB.js → version-RFVS6QDY.js} +1 -1
  249. package/chunks/{web-fetch-QKKW6CWH.js → web-fetch-RAN377BH.js} +17 -18
  250. package/chunks/{web-search-JYRBZMCW.js → web-search-XKS6ZPY7.js} +10 -10
  251. package/chunks/{workflow-SR7SEAU7.js → workflow-HF6G5XNX.js} +232 -73
  252. package/chunks/{workspace-providers-status-OXGV4EFF.js → workspace-providers-status-LNMP7NED.js} +49 -49
  253. package/chunks/{workspace-registration-store-V5EGKLBH.js → workspace-registration-store-QZ3P3ILN.js} +1 -1
  254. package/chunks/{workspace-registry-KJVIYTF5.js → workspace-registry-KWPGC2LG.js} +46 -45
  255. package/chunks/{workspace-service-6RLSGUB5.js → workspace-service-RWB4KMY3.js} +51 -51
  256. package/chunks/{workspace-skills-status-BHFEPDGH.js → workspace-skills-status-P3XXZY7C.js} +47 -47
  257. package/chunks/{workspace-trust-reconciler-DB5ERSUN.js → workspace-trust-reconciler-XU6WB2MF.js} +52 -51
  258. package/chunks/{write-file-IUP4GTZ4.js → write-file-V7Y6KUPR.js} +40 -40
  259. package/chunks/{zoom-image-SRBDTIVA.js → zoom-image-N4RSASH7.js} +13 -14
  260. package/cli.js +13 -13
  261. package/package.json +3 -3
  262. package/web-shell/assets/{arc-DItbX0DI.js → arc-CN-xeqBM.js} +1 -1
  263. package/web-shell/assets/{architectureDiagram-3BPJPVTR-CmnIlH8y.js → architectureDiagram-3BPJPVTR-XQJ6hBnv.js} +1 -1
  264. package/web-shell/assets/{blockDiagram-GPEHLZMM-pObnB9kw.js → blockDiagram-GPEHLZMM-n35AKogw.js} +1 -1
  265. package/web-shell/assets/{c4Diagram-AAUBKEIU-BNBmMS0Y.js → c4Diagram-AAUBKEIU-DXeDVokb.js} +1 -1
  266. package/web-shell/assets/channel-BdTBh3qf.js +1 -0
  267. package/web-shell/assets/{chunk-2J33WTMH-Dz4JBOO6.js → chunk-2J33WTMH-BYcmYjz_.js} +1 -1
  268. package/web-shell/assets/{chunk-4BX2VUAB-Cz2GnvAR.js → chunk-4BX2VUAB-w3UyeGtt.js} +1 -1
  269. package/web-shell/assets/{chunk-55IACEB6-CC6kOQYx.js → chunk-55IACEB6-Td3JbOH_.js} +1 -1
  270. package/web-shell/assets/{chunk-727SXJPM-Z4lY4gbh.js → chunk-727SXJPM-gC_NR7u6.js} +1 -1
  271. package/web-shell/assets/{chunk-AQP2D5EJ-Yz0hZr3D.js → chunk-AQP2D5EJ-aD7bI3c3.js} +1 -1
  272. package/web-shell/assets/{chunk-FMBD7UC4-nKmTWTv9.js → chunk-FMBD7UC4-sHMhD16X.js} +1 -1
  273. package/web-shell/assets/{chunk-ND2GUHAM-CjZz0f6Y.js → chunk-ND2GUHAM-DiV49BLl.js} +1 -1
  274. package/web-shell/assets/{chunk-QZHKN3VN-Bab3FpuS.js → chunk-QZHKN3VN-Dnoagqin.js} +1 -1
  275. package/web-shell/assets/classDiagram-4FO5ZUOK-qVxLMMuK.js +1 -0
  276. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-qVxLMMuK.js +1 -0
  277. package/web-shell/assets/{cose-bilkent-S5V4N54A-BuSAGFox.js → cose-bilkent-S5V4N54A-K6l_zsrZ.js} +1 -1
  278. package/web-shell/assets/{dagre-BM42HDAG-CRZXTg3g.js → dagre-BM42HDAG-Chh9hQ0a.js} +1 -1
  279. package/web-shell/assets/{diagram-2AECGRRQ-BFx1Ayrz.js → diagram-2AECGRRQ-Clrbd8SB.js} +1 -1
  280. package/web-shell/assets/{diagram-5GNKFQAL-B2hMZ3gS.js → diagram-5GNKFQAL-BkNExywD.js} +1 -1
  281. package/web-shell/assets/{diagram-KO2AKTUF-DKxAQLmc.js → diagram-KO2AKTUF-kTX14ngI.js} +1 -1
  282. package/web-shell/assets/{diagram-LMA3HP47-Bo1xGqVY.js → diagram-LMA3HP47-Ba1QOCJy.js} +1 -1
  283. package/web-shell/assets/{diagram-OG6HWLK6-B9NG78d-.js → diagram-OG6HWLK6-CtH5BVYm.js} +1 -1
  284. package/web-shell/assets/{erDiagram-TEJ5UH35-DltQKiqQ.js → erDiagram-TEJ5UH35-DCxSIC83.js} +1 -1
  285. package/web-shell/assets/{flowDiagram-I6XJVG4X-5xXGmS4I.js → flowDiagram-I6XJVG4X-C4rNAypQ.js} +1 -1
  286. package/web-shell/assets/{ganttDiagram-6RSMTGT7-bhGL5n0l.js → ganttDiagram-6RSMTGT7-s3P5tBwL.js} +1 -1
  287. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-ZYnz9hgh.js → gitGraphDiagram-PVQCEYII-C7Eg-1ok.js} +1 -1
  288. package/web-shell/assets/index-BXoIYIJg.css +5 -0
  289. package/web-shell/assets/{index-CBBeUArD.js → index-CszoC8cN.js} +1 -1
  290. package/web-shell/assets/index-Dxj7Naa0.js +1788 -0
  291. package/web-shell/assets/{infoDiagram-5YYISTIA-Cg-jamQf.js → infoDiagram-5YYISTIA-BDKsgMt6.js} +1 -1
  292. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CcmvKlyq.js → ishikawaDiagram-YF4QCWOH-CkcSHbvL.js} +1 -1
  293. package/web-shell/assets/{journeyDiagram-JHISSGLW-BRsOQZp1.js → journeyDiagram-JHISSGLW-CDWt-t81.js} +1 -1
  294. package/web-shell/assets/{kanban-definition-UN3LZRKU-xW-dmEHK.js → kanban-definition-UN3LZRKU-FI2owcEa.js} +1 -1
  295. package/web-shell/assets/{linear-ClBfEZH2.js → linear-BQzLqkJi.js} +1 -1
  296. package/web-shell/assets/{mermaid.core-D65NDkzc.js → mermaid.core-CvV91DP1.js} +5 -5
  297. package/web-shell/assets/{mindmap-definition-RKZ34NQL-CyvFslYa.js → mindmap-definition-RKZ34NQL-Dx2kLUpN.js} +1 -1
  298. package/web-shell/assets/{pieDiagram-4H26LBE5-BwSefMyG.js → pieDiagram-4H26LBE5-CMXOmBrj.js} +1 -1
  299. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-GqBJspFS.js → quadrantDiagram-W4KKPZXB-Bziww7Co.js} +1 -1
  300. package/web-shell/assets/{requirementDiagram-4Y6WPE33-B137PlTJ.js → requirementDiagram-4Y6WPE33-DMOXAxzp.js} +1 -1
  301. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-maHkkt8i.js → sankeyDiagram-5OEKKPKP-B3y1cfVV.js} +1 -1
  302. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DJ1mRaG3.js → sequenceDiagram-3UESZ5HK-ChrV1jiM.js} +1 -1
  303. package/web-shell/assets/{stateDiagram-AJRCARHV-aRmP7Q4i.js → stateDiagram-AJRCARHV-CWuLzLFE.js} +1 -1
  304. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DEDPMLgq.js +1 -0
  305. package/web-shell/assets/{timeline-definition-PNZ67QCA-CIQ3BRPA.js → timeline-definition-PNZ67QCA-Cl6am_to.js} +1 -1
  306. package/web-shell/assets/{vennDiagram-CIIHVFJN-DR9VPd5h.js → vennDiagram-CIIHVFJN-OuocxGAu.js} +1 -1
  307. package/web-shell/assets/{wardley-L42UT6IY-ZcfIbT4D.js → wardley-L42UT6IY-DLYdvSJW.js} +1 -1
  308. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-D0jgPi4T.js → wardleyDiagram-YWT4CUSO-7a3DreXX.js} +1 -1
  309. package/web-shell/assets/{xychartDiagram-2RQKCTM6-BGWU4s5o.js → xychartDiagram-2RQKCTM6-CgfjUxW_.js} +1 -1
  310. package/web-shell/index.html +2 -2
  311. package/chunks/chunk-D34RDOLP.js +0 -529
  312. package/chunks/daemon-status-provider-SXS66ZIR.js +0 -103
  313. package/web-shell/assets/channel-hZnMfWA9.js +0 -1
  314. package/web-shell/assets/classDiagram-4FO5ZUOK-BRnxm8DX.js +0 -1
  315. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BRnxm8DX.js +0 -1
  316. package/web-shell/assets/index-CbgU-jUo.css +0 -5
  317. package/web-shell/assets/index-_nhzXqab.js +0 -1750
  318. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Db39gvZ_.js +0 -1
@@ -1,5 +1,8 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ useAutoAcceptIndicator
5
+ } from "./chunk-FQ6G527Y.js";
3
6
  import {
4
7
  classifyApiError,
5
8
  fireSessionDeleteHook
@@ -10,7 +13,7 @@ import {
10
13
  import {
11
14
  TUI_CHAT_RECORDING_FAILURE_MESSAGE,
12
15
  reportChatRecordingFailureToAdapter
13
- } from "./chunk-LSO6EL4Y.js";
16
+ } from "./chunk-2MDUS4XE.js";
14
17
  import {
15
18
  MAX_SUGGESTIONS_TO_SHOW,
16
19
  SESSION_MENTION_PREFIX,
@@ -22,13 +25,14 @@ import {
22
25
  matchMcpServerPrefix,
23
26
  resolveAtCommandQuery,
24
27
  sanitizeDisplayText
25
- } from "./chunk-SCZU65AI.js";
28
+ } from "./chunk-7VRNXKKK.js";
26
29
  import {
27
30
  StreamJsonOutputAdapter
28
- } from "./chunk-Y4RVDOXV.js";
31
+ } from "./chunk-DF7KFKCL.js";
29
32
  import {
30
33
  BuiltinCommandLoader,
31
34
  BundledSkillLoader,
35
+ CONTEXT_FILES_ANNOUNCEMENT_PREFIX,
32
36
  CommandService,
33
37
  DISPLAY_HOOK_EVENTS,
34
38
  FileCommandLoader,
@@ -40,6 +44,7 @@ import {
40
44
  addConfigToMatcherGroup,
41
45
  appendUserPromptExpansionAdditionalContext,
42
46
  buildBackgroundWorkBlockedMessage,
47
+ consumesContextAnnouncementLatch,
43
48
  copyToClipboard,
44
49
  createEmptyHookEventInfo,
45
50
  dayKey,
@@ -56,6 +61,7 @@ import {
56
61
  hasSlashCommandPathSeparator,
57
62
  isAtCommand,
58
63
  isBtwCommand,
64
+ isContextFilesAnnouncement,
59
65
  isMidInputCompletableCommand,
60
66
  isPickerOnlyModelInvocation,
61
67
  isSlashCommand,
@@ -70,18 +76,18 @@ import {
70
76
  resetBackgroundStateForSessionSwitch,
71
77
  serializeUserPromptExpansionPrompt,
72
78
  supportsMatchers
73
- } from "./chunk-6RDZLBSJ.js";
74
- import "./chunk-7VNHO4MN.js";
79
+ } from "./chunk-SGKUVDBX.js";
80
+ import "./chunk-F3FRTY4Q.js";
75
81
  import {
76
82
  startPostRenderPrefetches
77
- } from "./chunk-DHUPMYMC.js";
83
+ } from "./chunk-BORX4PBQ.js";
78
84
  import {
79
85
  EXTENSION_RELOAD_FAILED_REASON,
80
86
  ExtensionRefreshState,
81
87
  appEvents,
82
88
  cleanupReviewWorktreeLeases,
83
89
  loadHierarchicalGeminiMemory
84
- } from "./chunk-XYRBK56E.js";
90
+ } from "./chunk-U7U3CX4K.js";
85
91
  import {
86
92
  AboutBox,
87
93
  BaseSelectionList,
@@ -159,21 +165,40 @@ import {
159
165
  useUIActions,
160
166
  useUIState,
161
167
  useVirtualViewport
162
- } from "./chunk-PJSD2FOR.js";
168
+ } from "./chunk-ZVJ5R5LM.js";
169
+ import {
170
+ KeypressProvider,
171
+ useFocus,
172
+ useKeypress,
173
+ useKeypressContext
174
+ } from "./chunk-5MA4E4EG.js";
163
175
  import {
164
176
  getCommandDisplayName,
165
177
  getCommandSourceBadge
166
- } from "./chunk-PHN4R2ZV.js";
178
+ } from "./chunk-IU2XWUSI.js";
167
179
  import {
168
180
  computeSessionStats,
169
181
  levelLabel
170
- } from "./chunk-DRAONPUW.js";
182
+ } from "./chunk-XZ3J6E5Z.js";
183
+ import {
184
+ BEL,
185
+ OSC_PREFIX,
186
+ cleanupOldClipboardImages,
187
+ clipboardHasImage,
188
+ detectTerminal,
189
+ generateKittyId,
190
+ oscGhosttyNotify,
191
+ oscITerm2Notify,
192
+ oscKittyNotify,
193
+ saveClipboardImage,
194
+ writeOsc52
195
+ } from "./chunk-EB27VF5Z.js";
171
196
  import "./chunk-4WGODMVR.js";
172
197
  import {
173
198
  MaxSizedBox,
174
199
  OverflowProvider,
175
200
  useOverflowState
176
- } from "./chunk-J63PKMYA.js";
201
+ } from "./chunk-435GZDTF.js";
177
202
  import {
178
203
  GeminiRespondingSpinner,
179
204
  GeminiSpinner,
@@ -190,7 +215,7 @@ import {
190
215
  useStreamingContext,
191
216
  waitForGoalRuntime,
192
217
  wrapAnsi
193
- } from "./chunk-3YRVPHT3.js";
218
+ } from "./chunk-NCTHX2Z3.js";
194
219
  import {
195
220
  formatDuration,
196
221
  formatRelativeTime,
@@ -198,38 +223,7 @@ import {
198
223
  } from "./chunk-3SH53ANB.js";
199
224
  import {
200
225
  theme
201
- } from "./chunk-6QFDQMQX.js";
202
- import {
203
- stopAndGetCapturedInput
204
- } from "./chunk-YZOSNW4R.js";
205
- import {
206
- disableKittyProtocol,
207
- isKittyProtocolEnabled,
208
- isKittyProtocolSupported,
209
- pushKittyProtocolFlags
210
- } from "./chunk-NYX53SV4.js";
211
- import {
212
- useAutoAcceptIndicator
213
- } from "./chunk-G6KI5UOJ.js";
214
- import {
215
- KeypressProvider,
216
- useFocus,
217
- useKeypress,
218
- useKeypressContext
219
- } from "./chunk-RXHBTKMG.js";
220
- import {
221
- BEL,
222
- OSC_PREFIX,
223
- cleanupOldClipboardImages,
224
- clipboardHasImage,
225
- detectTerminal,
226
- generateKittyId,
227
- oscGhosttyNotify,
228
- oscITerm2Notify,
229
- oscKittyNotify,
230
- saveClipboardImage,
231
- writeOsc52
232
- } from "./chunk-SNQZZ765.js";
226
+ } from "./chunk-F7ZK5VMA.js";
233
227
  import {
234
228
  require_jsx_runtime
235
229
  } from "./chunk-SV5PQVQE.js";
@@ -247,47 +241,56 @@ import {
247
241
  use_stdin_default,
248
242
  use_stdout_default
249
243
  } from "./chunk-2IIJTXYF.js";
244
+ import {
245
+ stopAndGetCapturedInput
246
+ } from "./chunk-YO7PNVBJ.js";
247
+ import {
248
+ disableKittyProtocol,
249
+ isKittyProtocolEnabled,
250
+ isKittyProtocolSupported,
251
+ pushKittyProtocolFlags
252
+ } from "./chunk-NYX53SV4.js";
253
+ import "./chunk-M53UJS6H.js";
254
+ import {
255
+ MAX_INLINE_IMAGES_PER_ITEM,
256
+ collectInlineImages,
257
+ getInlineImageData
258
+ } from "./chunk-YLFFVY3G.js";
250
259
  import {
251
260
  relaunchApp
252
- } from "./chunk-P3AA6S7O.js";
261
+ } from "./chunk-Y7JGWFTK.js";
253
262
  import {
254
263
  setUpdateHandler
255
- } from "./chunk-4ZS3BLER.js";
264
+ } from "./chunk-NAGJPIPW.js";
256
265
  import {
257
266
  isHistoryItemVisibleAfterRestore
258
267
  } from "./chunk-EKTCKZV5.js";
259
- import "./chunk-47L5MLB5.js";
268
+ import "./chunk-3EAGKRLN.js";
260
269
  import {
261
270
  AUTO_THEME_NAME,
262
271
  DEFAULT_THEME,
263
272
  themeManager
264
- } from "./chunk-2M55OBEB.js";
273
+ } from "./chunk-JV443R5X.js";
265
274
  import "./chunk-KW7NOTN6.js";
266
275
  import {
267
276
  require_react
268
277
  } from "./chunk-5QWWOFGG.js";
269
- import "./chunk-5IJSFWQO.js";
278
+ import "./chunk-BUZESYJT.js";
270
279
  import {
271
280
  getErrorMessage as getErrorMessage2
272
- } from "./chunk-XITLNXLX.js";
273
- import "./chunk-YHXQK4SR.js";
274
- import "./chunk-QAVTWAHL.js";
281
+ } from "./chunk-VWS7DWY6.js";
282
+ import "./chunk-HSCPOEBL.js";
283
+ import "./chunk-JIR6JDGE.js";
275
284
  import "./chunk-YAF2MQZ6.js";
276
- import "./chunk-IA2K2HJE.js";
277
- import {
278
- MAX_INLINE_IMAGES_PER_ITEM,
279
- collectInlineImages,
280
- getInlineImageData
281
- } from "./chunk-SXCOEJO4.js";
282
- import "./chunk-Y7QY6DKW.js";
285
+ import "./chunk-ZTLSYXFY.js";
283
286
  import "./chunk-6H67XLET.js";
284
287
  import {
285
288
  openQwenAsrRealtimeStream,
286
289
  openVoiceStream,
287
290
  openVoiceStreamWithRetry
288
- } from "./chunk-WSSH2BNO.js";
289
- import "./chunk-K2Y45XXS.js";
290
- import "./chunk-OVY67CYC.js";
291
+ } from "./chunk-FQZBD3PY.js";
292
+ import "./chunk-DFOKBPH5.js";
293
+ import "./chunk-G32ESUUC.js";
291
294
  import {
292
295
  cpLen,
293
296
  cpSlice,
@@ -300,7 +303,7 @@ import {
300
303
  stripUnsafeCharacters,
301
304
  toCodePoints
302
305
  } from "./chunk-E7REAOTN.js";
303
- import "./chunk-4SR45OM4.js";
306
+ import "./chunk-Q5QDZXKL.js";
304
307
  import {
305
308
  stringWidth
306
309
  } from "./chunk-2MIN6GRR.js";
@@ -316,56 +319,56 @@ import {
316
319
  isStreamingVoiceModel,
317
320
  resolveVoiceStreamConfig,
318
321
  transcribeVoiceAudio
319
- } from "./chunk-H3SHU2XU.js";
322
+ } from "./chunk-I3AB5DOZ.js";
320
323
  import {
321
324
  formatUnsupportedVoiceModelMessage,
322
325
  isSelectableVoiceModel
323
- } from "./chunk-SFJMFZT5.js";
324
- import "./chunk-WGHHA7ZH.js";
326
+ } from "./chunk-IBUXQJHH.js";
327
+ import "./chunk-3C55EUJX.js";
325
328
  import {
326
329
  getExtendedSystemInfo
327
- } from "./chunk-MDIGJH5X.js";
330
+ } from "./chunk-ZL3HKVEQ.js";
328
331
  import "./chunk-7U5G6JXI.js";
329
332
  import "./chunk-WCCLLK7X.js";
330
333
  import {
331
334
  isInlineModelOverrideAllowed
332
- } from "./chunk-EOPBFLA5.js";
335
+ } from "./chunk-AKN26LMT.js";
333
336
  import {
334
337
  computeWorkspaceSkillListUpdates,
335
338
  resolveSkillSettings,
336
339
  skillSettingStrings
337
340
  } from "./chunk-Z4X5MTRT.js";
338
- import "./chunk-55VKMB7X.js";
341
+ import "./chunk-A7MIUCUQ.js";
339
342
  import {
340
343
  requestConsentInteractive,
341
344
  requestConsentOrFail
342
- } from "./chunk-U657UZJN.js";
345
+ } from "./chunk-5WEMSDPR.js";
343
346
  import "./chunk-57OAHC2Y.js";
344
- import "./chunk-NRPXRNN4.js";
347
+ import "./chunk-WXFFCRKG.js";
345
348
  import "./chunk-45NQKMYB.js";
346
- import "./chunk-5IYS4WWR.js";
349
+ import "./chunk-WAPL2PHU.js";
347
350
  import "./chunk-V6WHFGST.js";
348
351
  import {
349
352
  createLoadedSettingsAdapter
350
- } from "./chunk-3PWNVF6N.js";
353
+ } from "./chunk-4APB4SP2.js";
351
354
  import "./chunk-ZLCT4C5A.js";
352
355
  import "./chunk-2AUM35J5.js";
353
- import "./chunk-WAO53ZQF.js";
354
- import "./chunk-WP4WIUOJ.js";
356
+ import "./chunk-DITDNF3D.js";
357
+ import "./chunk-QQUVPMMZ.js";
355
358
  import "./chunk-6PLDPT2C.js";
356
359
  import "./chunk-FYJ7W2PI.js";
357
- import "./chunk-YP5KH5Y7.js";
360
+ import "./chunk-ND7NOI4P.js";
358
361
  import "./chunk-A6NRNRKE.js";
359
362
  import "./chunk-ALMR3E6Q.js";
360
- import "./chunk-HIBNSEJE.js";
363
+ import "./chunk-UDG5EZJI.js";
361
364
  import "./chunk-M5GB774H.js";
362
365
  import "./chunk-3VUENPWF.js";
363
366
  import "./chunk-AW27A43Y.js";
364
367
  import "./chunk-IW6RQPQB.js";
365
- import "./chunk-H4A72DE5.js";
368
+ import "./chunk-PTMVPFCZ.js";
366
369
  import {
367
370
  loadMcpApprovals
368
- } from "./chunk-S7N3HUIB.js";
371
+ } from "./chunk-NMSSH43P.js";
369
372
  import {
370
373
  CORRUPTED_SUFFIX,
371
374
  SettingScope,
@@ -387,11 +390,11 @@ import {
387
390
  settingExistsInScope,
388
391
  validateSettingValue,
389
392
  writeOutputLanguageAndRegisterPath
390
- } from "./chunk-VFP5YOHJ.js";
393
+ } from "./chunk-PRIX4D6T.js";
391
394
  import "./chunk-RKUWKYED.js";
392
395
  import {
393
396
  TOGGLE_TYPES
394
- } from "./chunk-CZK622ZK.js";
397
+ } from "./chunk-6IFWBM24.js";
395
398
  import "./chunk-GOXKNSDZ.js";
396
399
  import "./chunk-IDS7MSUP.js";
397
400
  import {
@@ -399,24 +402,25 @@ import {
399
402
  localizeToolDisplayName,
400
403
  t,
401
404
  ta
402
- } from "./chunk-VTOLYFWM.js";
405
+ } from "./chunk-W3M6P3UR.js";
403
406
  import "./chunk-5EJZE3FP.js";
404
- import "./chunk-MVHJZ3FZ.js";
407
+ import "./chunk-DZNQHKZZ.js";
405
408
  import "./chunk-CXJHQVEK.js";
406
409
  import "./chunk-NF5J2WFA.js";
407
410
  import {
408
411
  getCliVersion
409
- } from "./chunk-PCETXVVV.js";
412
+ } from "./chunk-3X6KVX37.js";
410
413
  import "./chunk-WZMH7II3.js";
411
414
  import {
412
415
  isWorkspaceTrusted,
413
416
  loadTrustedFolders
414
- } from "./chunk-C3T6M24E.js";
417
+ } from "./chunk-RLYXWNS3.js";
415
418
  import {
416
419
  require_strip_json_comments
417
420
  } from "./chunk-NPQ5ZKRP.js";
418
421
  import "./chunk-MR3PXB6E.js";
419
422
  import "./chunk-XFSFZCM5.js";
423
+ import "./chunk-LJZSMWOH.js";
420
424
  import {
421
425
  ALIBABA_PROVIDERS,
422
426
  AsyncFzf,
@@ -476,6 +480,7 @@ import {
476
480
  generatePromptSuggestion,
477
481
  generateSessionRecap,
478
482
  generateToolUseSummary,
483
+ getCachedToolCallFingerprint,
479
484
  getDefaultBaseUrlForProtocol,
480
485
  getDefaultModelIds,
481
486
  getExtensionDisplayName,
@@ -487,9 +492,11 @@ import {
487
492
  glob,
488
493
  ideContextStore,
489
494
  isActiveWorkflowStatus,
495
+ isClearedMediaPlaceholder,
490
496
  isEditorAvailable,
491
497
  isExtensionCommittedWithWarningsError,
492
498
  isGatedMcpScope,
499
+ isReplayOfHandledToolCall,
493
500
  isSessionRuntimeActive,
494
501
  isSettledStatus,
495
502
  isSignalTermination,
@@ -507,6 +514,7 @@ import {
507
514
  parseVisionModelSetting,
508
515
  readWorktreeSession,
509
516
  readWorktreeSessionMarker,
517
+ recordHandledToolCall,
510
518
  refreshMemoryAfterManagedWrite,
511
519
  refreshMemoryInstruction,
512
520
  registerSession,
@@ -523,25 +531,25 @@ import {
523
531
  validateWorkflowName,
524
532
  watchRepoBranch,
525
533
  writeRuntimeStatus
526
- } from "./chunk-OFTPCOGR.js";
534
+ } from "./chunk-L7RG5PVT.js";
527
535
  import "./chunk-GOFAQQZA.js";
528
536
  import "./chunk-5M6IDOMF.js";
529
537
  import {
530
538
  stripAnsi
531
539
  } from "./chunk-TWPJO254.js";
532
540
  import "./chunk-CQ35AJ4Z.js";
533
- import "./chunk-FS5NGKWC.js";
534
- import "./chunk-SLILKYV2.js";
535
- import "./chunk-NVRMCWTP.js";
536
- import "./chunk-AKBOLMUF.js";
541
+ import "./chunk-F5JZDC4O.js";
542
+ import "./chunk-T2LUUKRI.js";
543
+ import "./chunk-A7NBZBGQ.js";
544
+ import "./chunk-7S22SX2L.js";
537
545
  import "./chunk-6PVPNMXU.js";
538
546
  import {
539
547
  resolveModelId
540
- } from "./chunk-544KT7X4.js";
548
+ } from "./chunk-BBMVUTXO.js";
541
549
  import "./chunk-IRH27ZC2.js";
542
550
  import "./chunk-QHWCP53L.js";
543
- import "./chunk-OBJYN4MX.js";
544
- import "./chunk-2C6HJMG3.js";
551
+ import "./chunk-G64PEZZ5.js";
552
+ import "./chunk-O75QDGQF.js";
545
553
  import {
546
554
  promptIdContext
547
555
  } from "./chunk-O6GEWCJA.js";
@@ -550,49 +558,49 @@ import "./chunk-ZPJWUGCS.js";
550
558
  import "./chunk-CPBF7KYF.js";
551
559
  import {
552
560
  APPROVAL_MODES
553
- } from "./chunk-RWDNJBWN.js";
554
- import "./chunk-WPVUOVYX.js";
561
+ } from "./chunk-ZUISK67X.js";
562
+ import "./chunk-3EQHT3IC.js";
555
563
  import {
556
564
  HOOKS_CONFIG_FIELDS
557
- } from "./chunk-MIPFDQAF.js";
565
+ } from "./chunk-4W4BROUS.js";
558
566
  import "./chunk-MLXTMF7H.js";
559
- import "./chunk-KV27IEHM.js";
560
- import "./chunk-E3DYKPYZ.js";
567
+ import "./chunk-L5JHSPET.js";
568
+ import "./chunk-X7EQHW5L.js";
561
569
  import {
562
570
  elapsedActiveTime,
563
571
  goalRequiresExactPermit
564
- } from "./chunk-4ZMS3JCR.js";
565
- import "./chunk-DGJ7O55J.js";
566
- import "./chunk-OO4FKHLO.js";
572
+ } from "./chunk-JBSW7JA6.js";
573
+ import "./chunk-O327G3QW.js";
574
+ import "./chunk-2GM44E7D.js";
567
575
  import "./chunk-SAH4BD2J.js";
568
- import "./chunk-XLLKYULU.js";
576
+ import "./chunk-ZWWU6KNS.js";
569
577
  import {
570
578
  runOutsideAgentContext
571
- } from "./chunk-PT4I7NBA.js";
579
+ } from "./chunk-VX7TFATF.js";
572
580
  import "./chunk-S6LOFUVP.js";
573
581
  import "./chunk-2J3OJGTL.js";
574
582
  import {
575
583
  getStartupContextLength,
576
584
  isSystemReminderContent
577
- } from "./chunk-SG7ZP5PG.js";
585
+ } from "./chunk-HHNSO2Y4.js";
578
586
  import "./chunk-K623ENWT.js";
579
587
  import "./chunk-AQ37AY7B.js";
580
588
  import {
581
589
  isPathWithinRoot
582
- } from "./chunk-KBXKR5R2.js";
590
+ } from "./chunk-M5AIO24H.js";
583
591
  import {
584
592
  osc8Hyperlink,
585
593
  qwenOAuth2Events,
586
594
  sanitizeForOsc,
587
595
  supportsHyperlinks,
588
596
  wrapForMultiplexer
589
- } from "./chunk-I3N2Z25H.js";
597
+ } from "./chunk-47VTGCYK.js";
590
598
  import "./chunk-NAVJD2PQ.js";
591
- import "./chunk-ROIYNTHJ.js";
592
- import "./chunk-2B2BF7P7.js";
599
+ import "./chunk-MD7XDTW7.js";
600
+ import "./chunk-FAIJ5UIU.js";
593
601
  import "./chunk-P3QQPMQA.js";
594
- import "./chunk-YZHRN3CF.js";
595
- import "./chunk-FAAUPSY2.js";
602
+ import "./chunk-SWOKDPS5.js";
603
+ import "./chunk-HEMFCAHG.js";
596
604
  import {
597
605
  REASONING_EFFORT_TIERS,
598
606
  applyReasoningEffort
@@ -600,7 +608,8 @@ import {
600
608
  import "./chunk-AXMWHKXA.js";
601
609
  import "./chunk-GLCZKT5V.js";
602
610
  import "./chunk-DJ2GSRLV.js";
603
- import "./chunk-QFJ5JHQR.js";
611
+ import "./chunk-PXOIRYE5.js";
612
+ import "./chunk-7NLDU6J2.js";
604
613
  import {
605
614
  ApiCancelEvent,
606
615
  AuthEvent,
@@ -639,28 +648,28 @@ import {
639
648
  runVisionBridge,
640
649
  shouldRunVisionBridge,
641
650
  splitImageParts
642
- } from "./chunk-KC4WMLZO.js";
651
+ } from "./chunk-EXY6APEA.js";
643
652
  import "./chunk-YRLW2MSX.js";
644
653
  import "./chunk-VGC4I5JJ.js";
645
654
  import {
646
655
  getAllGeminiMdFilenames
647
- } from "./chunk-3PWCMXIR.js";
656
+ } from "./chunk-MGEWDLRO.js";
648
657
  import {
649
658
  AUTO_MEMORY_INDEX_FILENAME,
650
659
  getAutoMemoryProjectStateDir,
651
660
  getAutoMemoryRoot,
652
661
  getUserAutoMemoryRoot,
653
662
  isAnyAutoMemPath
654
- } from "./chunk-CHHABXPE.js";
663
+ } from "./chunk-5AAW6E3C.js";
655
664
  import {
656
665
  runSideQuery
657
- } from "./chunk-MA2HEDVP.js";
658
- import "./chunk-XUJNK7Y6.js";
666
+ } from "./chunk-4CKU5K2R.js";
667
+ import "./chunk-7WVB4FMG.js";
659
668
  import {
660
669
  ToolNames,
661
670
  isShellProgressData
662
- } from "./chunk-6HY6IF3Z.js";
663
- import "./chunk-2A6VQJYK.js";
671
+ } from "./chunk-OUYRA764.js";
672
+ import "./chunk-DK4HL3IB.js";
664
673
  import {
665
674
  MAINLINE_CODER_MODEL
666
675
  } from "./chunk-F6WFNA7U.js";
@@ -672,19 +681,18 @@ import {
672
681
  getUnsupportedImageFormatWarning,
673
682
  isSupportedImageMimeType
674
683
  } from "./chunk-YHC2EYYG.js";
675
- import "./chunk-CPHEPGAO.js";
676
- import "./chunk-DVR7XKO5.js";
684
+ import "./chunk-722JBVVW.js";
685
+ import "./chunk-B5LEKTE7.js";
677
686
  import {
678
687
  atomicWriteFileSync
679
- } from "./chunk-YECDICIO.js";
688
+ } from "./chunk-Q6ETBOWF.js";
689
+ import "./chunk-HHJLM3WQ.js";
680
690
  import {
681
691
  endInteractionSpan,
682
692
  getActiveInteractionSpan,
683
693
  isBinary,
684
694
  redactUrlCredentials
685
- } from "./chunk-XT4RKHVE.js";
686
- import "./chunk-HHJLM3WQ.js";
687
- import "./chunk-D34RDOLP.js";
695
+ } from "./chunk-RZ4PE3ER.js";
688
696
  import {
689
697
  Storage,
690
698
  UnauthorizedError,
@@ -696,13 +704,13 @@ import {
696
704
  isNodeError,
697
705
  shortenPath,
698
706
  tildeifyPath
699
- } from "./chunk-BUQDLC2G.js";
707
+ } from "./chunk-XFRYCCVC.js";
700
708
  import "./chunk-VOQXFAY5.js";
701
- import "./chunk-QEHH23OM.js";
709
+ import "./chunk-K6GQS2WN.js";
702
710
  import {
703
711
  registerCleanup,
704
712
  runExitCleanup
705
- } from "./chunk-3SL2P3WX.js";
713
+ } from "./chunk-DIHJXVT4.js";
706
714
  import {
707
715
  finalizeStartupProfile,
708
716
  profileCheckpoint
@@ -723,7 +731,7 @@ import {
723
731
  import "./chunk-TYAMGABM.js";
724
732
  import "./chunk-FCMNKVXT.js";
725
733
  import "./chunk-AMDSOFFV.js";
726
- import "./chunk-QUGAUQGJ.js";
734
+ import "./chunk-GX2THELY.js";
727
735
  import {
728
736
  init_esbuild_shims
729
737
  } from "./chunk-5O2XNYP6.js";
@@ -4017,14 +4025,38 @@ var MainContent = /* @__PURE__ */ __name(({ footerRef }) => {
4017
4025
  return () => clearImmediate(handle);
4018
4026
  }, [useVirtualScroll, replayCount, visibleHistory.length]);
4019
4027
  const visibleHistoryItemsWithSourceCopyOffsets = historyItemsWithSourceCopyOffsets.length - replayCount <= PROGRESSIVE_REPLAY_CHUNK_SIZE ? historyItemsWithSourceCopyOffsets : historyItemsWithSourceCopyOffsets.slice(0, replayCount);
4020
- const allVirtualItems = (0, import_react14.useMemo)(
4021
- () => [
4028
+ const allVirtualItems = (0, import_react14.useMemo)(() => {
4029
+ const combined = [
4022
4030
  VP_BANNER_ITEM,
4023
4031
  ...visibleHistory,
4024
4032
  ...pendingHistoryItems.map((item, i) => ({ ...item, id: -(i + 1) }))
4025
- ],
4026
- [visibleHistory, pendingHistoryItems]
4027
- );
4033
+ ];
4034
+ const livePendingBatchIds = /* @__PURE__ */ new Set();
4035
+ for (const item of pendingHistoryItems) {
4036
+ if (item.type === "tool_group" && item.batchId !== void 0) {
4037
+ livePendingBatchIds.add(item.batchId);
4038
+ }
4039
+ }
4040
+ if (livePendingBatchIds.size === 0) return combined;
4041
+ const dropped = /* @__PURE__ */ new Set();
4042
+ const committedByBatchId = /* @__PURE__ */ new Map();
4043
+ const keptPendingByBatchId = /* @__PURE__ */ new Map();
4044
+ for (const item of combined) {
4045
+ if (item.type !== "tool_group" || item.batchId === void 0 || !livePendingBatchIds.has(item.batchId)) {
4046
+ continue;
4047
+ }
4048
+ if (item.id > 0) {
4049
+ committedByBatchId.set(item.batchId, item);
4050
+ } else {
4051
+ const kept = keptPendingByBatchId.get(item.batchId);
4052
+ if (kept) dropped.add(kept);
4053
+ keptPendingByBatchId.set(item.batchId, item);
4054
+ }
4055
+ }
4056
+ for (const item of committedByBatchId.values()) dropped.add(item);
4057
+ if (dropped.size === 0) return combined;
4058
+ return combined.filter((item) => !dropped.has(item));
4059
+ }, [visibleHistory, pendingHistoryItems]);
4028
4060
  const sourceCopyOffsetsByHistoryItem = (0, import_react14.useMemo)(() => {
4029
4061
  const map = /* @__PURE__ */ new Map();
4030
4062
  for (const {
@@ -21248,12 +21280,14 @@ function isUserTextContent(content) {
21248
21280
  );
21249
21281
  if (hasFunctionResponse) return false;
21250
21282
  if (isSystemReminderContent(content)) return false;
21251
- return content.parts.some((part) => "text" in part && part.text);
21283
+ return content.parts.some(
21284
+ (part) => "text" in part && !!part.text && !isClearedMediaPlaceholder(part.text)
21285
+ );
21252
21286
  }
21253
21287
  __name(isUserTextContent, "isUserTextContent");
21254
21288
  function findLastSuccessfulCompressionIndex(history) {
21255
21289
  return history.findLastIndex(
21256
- (item) => item.type === "compression" && item.compression.compressionStatus === 1 /* COMPRESSED */
21290
+ (item) => item.type === "compression" && item.compression.compressionStatus === 1 /* COMPRESSED */ && item.compression.compressionKind !== "fast"
21257
21291
  );
21258
21292
  }
21259
21293
  __name(findLastSuccessfulCompressionIndex, "findLastSuccessfulCompressionIndex");
@@ -21275,6 +21309,9 @@ function computeApiTruncationIndex(uiHistory, targetUserItemId, apiHistory) {
21275
21309
  includeCompressed: true
21276
21310
  });
21277
21311
  if (uiUserTurnCount === 0) {
21312
+ if (compressionIndex === -1 && startIndex > getStartupContextLength(apiHistory)) {
21313
+ return -1;
21314
+ }
21278
21315
  return startIndex;
21279
21316
  }
21280
21317
  let realUserPromptCount = 0;
@@ -34819,12 +34856,14 @@ function useResumeCommand(options) {
34819
34856
  config,
34820
34857
  settings,
34821
34858
  historyManager,
34859
+ loadHistory: loadHistoryOverride,
34822
34860
  startNewSession,
34823
34861
  clearPendingState,
34824
34862
  setSessionName,
34825
34863
  remount
34826
34864
  } = options;
34827
- const { addItem, clearItems, loadHistory } = historyManager;
34865
+ const { addItem, clearItems } = historyManager;
34866
+ const loadHistory = loadHistoryOverride ?? historyManager.loadHistory;
34828
34867
  const handleResume = (0, import_react127.useCallback)(
34829
34868
  async (sessionId) => {
34830
34869
  if (!config) {
@@ -37691,7 +37730,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
37691
37730
  const current = modelOverrideRef.current;
37692
37731
  return !inlineModelOverrideActiveRef.current && (!current?.endsWith("\0") || current === model);
37693
37732
  }, []);
37694
- const handledProviderToolCallIdsRef = (0, import_react136.useRef)(/* @__PURE__ */ new Set());
37733
+ const handledToolCallFingerprintsRef = (0, import_react136.useRef)(/* @__PURE__ */ new Map());
37695
37734
  const duplicateProviderToolCallResponseIdsRef = (0, import_react136.useRef)(
37696
37735
  /* @__PURE__ */ new Set()
37697
37736
  );
@@ -37717,22 +37756,48 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
37717
37756
  stats: sessionStates
37718
37757
  } = useSessionStats();
37719
37758
  const storage = config.storage;
37759
+ const toolBatchIdByCallIdRef = (0, import_react136.useRef)(/* @__PURE__ */ new Map());
37760
+ const toolBatchCounterRef = (0, import_react136.useRef)(0);
37761
+ const toolBatchNonceRef = (0, import_react136.useRef)(Math.random().toString(36).slice(2));
37762
+ const registerToolBatch = (0, import_react136.useCallback)(
37763
+ (requests) => {
37764
+ const batchNumber = ++toolBatchCounterRef.current;
37765
+ const batchId = `tool-batch-${toolBatchNonceRef.current}-${batchNumber}`;
37766
+ for (const request of Array.isArray(requests) ? requests : [requests]) {
37767
+ toolBatchIdByCallIdRef.current.set(request.callId, batchId);
37768
+ }
37769
+ },
37770
+ []
37771
+ );
37772
+ const getToolBatchId = (0, import_react136.useCallback)(
37773
+ (callId) => toolBatchIdByCallIdRef.current.get(callId),
37774
+ []
37775
+ );
37720
37776
  const [toolCalls, scheduleToolCalls, markToolsAsSubmitted] = useReactToolScheduler(
37721
37777
  async (completedToolCallsFromScheduler) => {
37722
37778
  if (completedToolCallsFromScheduler.length > 0) {
37723
37779
  const releaseToolCompletionActivity = isSubmittingQueryRef.current ? retainSubmissionActivity(submissionLeaseGenerationRef.current) : void 0;
37780
+ const batchId = getToolBatchId(
37781
+ completedToolCallsFromScheduler[0].request.callId
37782
+ );
37724
37783
  try {
37725
37784
  const projectRoot = config.getProjectRoot();
37726
37785
  const toolGroupDisplay = mapToDisplay(
37727
37786
  completedToolCallsFromScheduler,
37728
37787
  projectRoot
37729
37788
  );
37789
+ toolGroupDisplay.batchId = batchId;
37730
37790
  addItem(toolGroupDisplay, Date.now());
37731
37791
  await handleCompletedTools(
37732
37792
  completedToolCallsFromScheduler
37733
37793
  );
37734
37794
  } finally {
37735
37795
  releaseToolCompletionActivity?.();
37796
+ for (const tc of completedToolCallsFromScheduler) {
37797
+ if (toolBatchIdByCallIdRef.current.get(tc.request.callId) === batchId) {
37798
+ toolBatchIdByCallIdRef.current.delete(tc.request.callId);
37799
+ }
37800
+ }
37736
37801
  }
37737
37802
  }
37738
37803
  },
@@ -37741,10 +37806,15 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
37741
37806
  onEditorClose,
37742
37807
  canUseToolResultFullTurnModel
37743
37808
  );
37744
- const pendingToolCallGroupDisplay = (0, import_react136.useMemo)(
37745
- () => toolCalls.length ? mapToDisplay(toolCalls, config.getProjectRoot()) : void 0,
37746
- [toolCalls, config]
37747
- );
37809
+ const pendingToolCallGroupDisplay = (0, import_react136.useMemo)(() => {
37810
+ if (!toolCalls.length) return void 0;
37811
+ const group = mapToDisplay(
37812
+ toolCalls,
37813
+ config.getProjectRoot()
37814
+ );
37815
+ group.batchId = getToolBatchId(toolCalls[0].request.callId);
37816
+ return group;
37817
+ }, [toolCalls, config, getToolBatchId]);
37748
37818
  const activeToolPtyId = (0, import_react136.useMemo)(() => {
37749
37819
  const executingShellTool = toolCalls?.find(
37750
37820
  (tc) => tc.status === "executing" && tc.request.name === "run_shell_command"
@@ -38071,6 +38141,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
38071
38141
  isClientInitiated: true,
38072
38142
  prompt_id
38073
38143
  };
38144
+ registerToolBatch(toolCallRequest);
38074
38145
  scheduleToolCalls([toolCallRequest], abortSignal);
38075
38146
  return {
38076
38147
  queryToSend: null,
@@ -38190,6 +38261,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
38190
38261
  handleSlashCommand,
38191
38262
  logger,
38192
38263
  shellModeActive,
38264
+ registerToolBatch,
38193
38265
  scheduleToolCalls,
38194
38266
  applyVisionBridgeIfNeeded
38195
38267
  ]
@@ -39103,15 +39175,30 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39103
39175
  const executableToolCallRequests = [];
39104
39176
  const duplicateResponses = [];
39105
39177
  let duplicatePromptId;
39106
- const historyCallIdsWithResponse = geminiClient ? geminiClient.getHistoryFunctionResponseIds() : /* @__PURE__ */ new Set();
39107
- const handledProviderIds = /* @__PURE__ */ new Set([
39108
- ...handledProviderToolCallIdsRef.current,
39109
- ...historyCallIdsWithResponse
39110
- ]);
39178
+ const handledToolCallFingerprints = new Map(
39179
+ geminiClient ? geminiClient.getHistoryToolCallFingerprints() : []
39180
+ );
39181
+ for (const [
39182
+ providerCallId,
39183
+ fingerprint
39184
+ ] of handledToolCallFingerprintsRef.current) {
39185
+ if (!handledToolCallFingerprints.has(providerCallId)) {
39186
+ handledToolCallFingerprints.set(providerCallId, fingerprint);
39187
+ }
39188
+ }
39189
+ const isReplayOfHandledRequest = /* @__PURE__ */ __name((request) => request.providerCallId ? isReplayOfHandledToolCall(
39190
+ handledToolCallFingerprints,
39191
+ request.providerCallId,
39192
+ getCachedToolCallFingerprint(
39193
+ request,
39194
+ request.name,
39195
+ request.args
39196
+ )
39197
+ ) : false, "isReplayOfHandledRequest");
39111
39198
  const repeatedDuplicateRequest = findRepeatedDuplicateProviderToolCall(
39112
39199
  toolCallRequests,
39113
39200
  (request) => request.providerCallId,
39114
- handledProviderIds,
39201
+ isReplayOfHandledRequest,
39115
39202
  duplicateProviderToolCallResponseIdsRef.current
39116
39203
  );
39117
39204
  if (repeatedDuplicateRequest?.providerCallId) {
@@ -39130,7 +39217,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39130
39217
  executableToolCallRequests.push(request);
39131
39218
  continue;
39132
39219
  }
39133
- if (handledProviderToolCallIdsRef.current.has(providerCallId) || historyCallIdsWithResponse.has(providerCallId)) {
39220
+ if (isReplayOfHandledRequest(request)) {
39134
39221
  markDuplicateProviderToolCallResponseSent(
39135
39222
  providerCallId,
39136
39223
  duplicateProviderToolCallResponseIdsRef.current
@@ -39144,7 +39231,21 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39144
39231
  duplicatePromptId ??= request.prompt_id;
39145
39232
  continue;
39146
39233
  }
39147
- handledProviderToolCallIdsRef.current.add(providerCallId);
39234
+ const requestFingerprint = getCachedToolCallFingerprint(
39235
+ request,
39236
+ request.name,
39237
+ request.args
39238
+ );
39239
+ recordHandledToolCall(
39240
+ handledToolCallFingerprints,
39241
+ providerCallId,
39242
+ requestFingerprint
39243
+ );
39244
+ recordHandledToolCall(
39245
+ handledToolCallFingerprintsRef.current,
39246
+ providerCallId,
39247
+ requestFingerprint
39248
+ );
39148
39249
  executableToolCallRequests.push(request);
39149
39250
  }
39150
39251
  if (duplicateResponses.length > 0) {
@@ -39182,6 +39283,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39182
39283
  }
39183
39284
  }
39184
39285
  scheduledToolContinuation = true;
39286
+ registerToolBatch(executableToolCallRequests);
39185
39287
  scheduleToolCalls(
39186
39288
  executableToolCallRequests,
39187
39289
  signal,
@@ -39199,6 +39301,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39199
39301
  handleThoughtEvent,
39200
39302
  handleUserCancelledEvent,
39201
39303
  handleErrorEvent,
39304
+ registerToolBatch,
39202
39305
  scheduleToolCalls,
39203
39306
  geminiClient,
39204
39307
  handleChatCompressionEvent,
@@ -39474,7 +39577,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
39474
39577
  lastTurnUserItemRef.current = null;
39475
39578
  canUndoLastLoggedUserMessageRef.current = false;
39476
39579
  turnSawContentEventRef.current = false;
39477
- handledProviderToolCallIdsRef.current.clear();
39580
+ handledToolCallFingerprintsRef.current.clear();
39478
39581
  duplicateProviderToolCallResponseIdsRef.current.clear();
39479
39582
  pendingDuplicateToolResponsesRef.current = [];
39480
39583
  immediateDuplicateToolResponsesRef.current = null;
@@ -44811,6 +44914,20 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
44811
44914
  const [showWorktreeExitDialog, setShowWorktreeExitDialog] = (0, import_react162.useState)(false);
44812
44915
  const [workflowKeywordActive, setWorkflowKeywordActive] = (0, import_react162.useState)(false);
44813
44916
  const pendingWorktreeNoticeRef = (0, import_react162.useRef)(null);
44917
+ const contextFilesAnnouncedRef = (0, import_react162.useRef)(false);
44918
+ (0, import_react162.useEffect)(() => {
44919
+ contextFilesAnnouncedRef.current = false;
44920
+ }, [sessionStats.sessionId]);
44921
+ const { loadHistory: rawLoadHistory } = historyManager;
44922
+ const loadHistoryWithLatchReconciliation = (0, import_react162.useCallback)(
44923
+ (newHistory) => {
44924
+ rawLoadHistory(newHistory);
44925
+ contextFilesAnnouncedRef.current = newHistory.some(
44926
+ isContextFilesAnnouncement
44927
+ );
44928
+ },
44929
+ [rawLoadHistory]
44930
+ );
44814
44931
  const activeWorktree = (0, import_react162.useMemo)(
44815
44932
  () => worktreeSession ? {
44816
44933
  slug: worktreeSession.slug,
@@ -44864,7 +44981,7 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
44864
44981
  collapseOnResume,
44865
44982
  collapsePreviewCount
44866
44983
  );
44867
- historyManager.loadHistory(historyItems);
44984
+ loadHistoryWithLatchReconciliation(historyItems);
44868
44985
  const userTurnCount = resumedSessionData.conversation.messages.filter(
44869
44986
  (m) => m.type === "user" && m.subtype !== "mid_turn_user_message" && m.subtype !== "realtime_message"
44870
44987
  ).length;
@@ -45266,6 +45383,10 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
45266
45383
  config,
45267
45384
  settings,
45268
45385
  historyManager,
45386
+ // Route the interactive /resume through the latch-reconciling wrapper
45387
+ // so same-id resume (no sessionId change → no effect re-arm) still
45388
+ // re-arms the latch when the rebuilt history has no announcement.
45389
+ loadHistory: loadHistoryWithLatchReconciliation,
45269
45390
  startNewSession,
45270
45391
  clearPendingState: clearPendingStateFromRef,
45271
45392
  setSessionName,
@@ -45494,7 +45615,7 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
45494
45615
  historyManager.history,
45495
45616
  historyManager.addItem,
45496
45617
  historyManager.clearItems,
45497
- historyManager.loadHistory,
45618
+ loadHistoryWithLatchReconciliation,
45498
45619
  refreshStatic,
45499
45620
  toggleVimEnabled,
45500
45621
  isProcessing,
@@ -45584,6 +45705,7 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
45584
45705
  if (config.isSafeMode()) {
45585
45706
  config.setUserMemory("");
45586
45707
  config.setGeminiMdFileCount(0);
45708
+ config.setContextFilePaths([]);
45587
45709
  config.setConditionalRulesRegistry(
45588
45710
  new ConditionalRulesRegistry([], config.getWorkingDir())
45589
45711
  );
@@ -45605,8 +45727,14 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
45605
45727
  Date.now()
45606
45728
  );
45607
45729
  try {
45608
- const { memoryContent, fileCount, conditionalRules, projectRoot } = await loadHierarchicalGeminiMemory(
45609
- process18.cwd(),
45730
+ const {
45731
+ memoryContent,
45732
+ fileCount,
45733
+ contextFilePaths,
45734
+ conditionalRules,
45735
+ projectRoot
45736
+ } = await loadHierarchicalGeminiMemory(
45737
+ config.getWorkingDir(),
45610
45738
  settings.merged.context?.loadFromIncludeDirectories ? config.getWorkspaceContext().getDirectories() : [],
45611
45739
  config.getFileService(),
45612
45740
  config.getExtensionContextFilePaths(),
@@ -45623,6 +45751,7 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
45623
45751
  );
45624
45752
  config.setUserMemory(memoryContent);
45625
45753
  config.setGeminiMdFileCount(fileCount);
45754
+ config.setContextFilePaths(contextFilePaths);
45626
45755
  config.setConditionalRulesRegistry(
45627
45756
  new ConditionalRulesRegistry(conditionalRules, projectRoot)
45628
45757
  );
@@ -45970,6 +46099,23 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
45970
46099
  void handleSlashCommand("/quit");
45971
46100
  return;
45972
46101
  }
46102
+ const trimmedPrompt = userPromptText.trim();
46103
+ if (!contextFilesAnnouncedRef.current && consumesContextAnnouncementLatch(trimmedPrompt, {
46104
+ shellModeActive,
46105
+ slashCommands
46106
+ })) {
46107
+ const contextFilePaths = config.getContextFilePaths();
46108
+ if (contextFilePaths.length > 0) {
46109
+ contextFilesAnnouncedRef.current = true;
46110
+ historyManager.addItem(
46111
+ {
46112
+ type: "info" /* INFO */,
46113
+ text: `${CONTEXT_FILES_ANNOUNCEMENT_PREFIX} ${contextFilePaths.join(", ")}`
46114
+ },
46115
+ Date.now()
46116
+ );
46117
+ }
46118
+ }
45973
46119
  const recoveredAgentsNotice = !isSlashCommand(userPromptText) && !isBtwCommand(userPromptText) ? config.consumePendingRecoveredAgentsNotice() : null;
45974
46120
  if (recoveredAgentsNotice) {
45975
46121
  submittedValue = `<system-reminder>
@@ -46130,6 +46276,7 @@ ${buildWorkflowSteeringNotice()}
46130
46276
  historyManager,
46131
46277
  settings.merged.ui?.disableWorkflowKeywordTrigger,
46132
46278
  setBufferText,
46279
+ shellModeActive,
46133
46280
  vimEnabled
46134
46281
  ]
46135
46282
  );
@@ -46285,6 +46432,7 @@ ${currentText}` : popped.modelText
46285
46432
  );
46286
46433
  const handleClearScreen = (0, import_react162.useCallback)(() => {
46287
46434
  clearPendingStateRef.current();
46435
+ contextFilesAnnouncedRef.current = false;
46288
46436
  historyManager.clearItems();
46289
46437
  clearScreen();
46290
46438
  remountStaticHistory();
@@ -46709,7 +46857,7 @@ ${currentText}` : popped.modelText
46709
46857
  originalHistory.filter((h) => h.id < userItem.id)
46710
46858
  );
46711
46859
  clearPendingStateRef.current();
46712
- historyManager.loadHistory(truncatedUi);
46860
+ loadHistoryWithLatchReconciliation(truncatedUi);
46713
46861
  refreshStatic();
46714
46862
  if (userItem.type === "user" && userItem.text) {
46715
46863
  restoredSubmissionRef.current = null;
@@ -46768,7 +46916,13 @@ ${currentText}` : popped.modelText
46768
46916
  setIsRewindSelectorOpen(false);
46769
46917
  }
46770
46918
  },
46771
- [config, historyManager, refreshStatic, buffer]
46919
+ [
46920
+ config,
46921
+ historyManager,
46922
+ loadHistoryWithLatchReconciliation,
46923
+ refreshStatic,
46924
+ buffer
46925
+ ]
46772
46926
  );
46773
46927
  const handleDoubleEscRewind = useDoublePress(
46774
46928
  openRewindSelector,