@qwen-code/qwen-code 0.19.11-nightly.20260718.767a32484 → 0.19.11

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 (288) hide show
  1. package/bundled/qc-helper/docs/configuration/model-providers.md +0 -11
  2. package/bundled/qc-helper/docs/configuration/settings.md +9 -9
  3. package/bundled/qc-helper/docs/features/channels/overview.md +11 -24
  4. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +7 -42
  5. package/bundled/qc-helper/docs/qwen-serve.md +40 -66
  6. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  7. package/chunks/{MaxSizedBox-ZFHA4QEQ.js → MaxSizedBox-L6TGYDM3.js} +27 -27
  8. package/chunks/{StandaloneSessionPicker-YRWOQVQA.js → StandaloneSessionPicker-AKEQHU5P.js} +39 -39
  9. package/chunks/{acpAgent-U2P2IESZ.js → acpAgent-PTNBGJDN.js} +228 -501
  10. package/chunks/{agent-GQXX6X5Y.js → agent-AJOMOZPJ.js} +24 -24
  11. package/chunks/{agent-headless-3572NBCK.js → agent-headless-CYKOMAXS.js} +24 -24
  12. package/chunks/{anthropicContentGenerator-Y65DMM64.js → anthropicContentGenerator-HBRXJSP4.js} +6 -29
  13. package/chunks/{artifact-tool-WR7I2XON.js → artifact-tool-MIZLXBLF.js} +2 -2
  14. package/chunks/{askUserQuestion-B4FUTPHD.js → askUserQuestion-XMJVPNWM.js} +44 -2
  15. package/chunks/{bridge-N5RMGD7G.js → bridge-QKISWPCI.js} +29 -29
  16. package/chunks/{ca-M3GQQ26D.js → ca-CODEN7TD.js} +2 -2
  17. package/chunks/{channel-worker-group-HZVJKLGX.js → channel-worker-group-SOUWTFHC.js} +4 -4
  18. package/chunks/{channel-worker-manager-3WDK4HNS.js → channel-worker-manager-LOVSV3WW.js} +4 -4
  19. package/chunks/{channel-worker-supervisor-U2W6Q5F7.js → channel-worker-supervisor-XW6MHJBQ.js} +3 -3
  20. package/chunks/{chunk-3DJY4IFO.js → chunk-2FO5GFKZ.js} +1 -1
  21. package/chunks/chunk-2HRYPZT5.js +25 -0
  22. package/chunks/{chunk-LSFVUGXT.js → chunk-2OG646IN.js} +3 -3
  23. package/chunks/{chunk-OSSDHJDU.js → chunk-2Z5UX4KI.js} +1 -1
  24. package/chunks/{chunk-O2K6BLPZ.js → chunk-3AYLDB6B.js} +1 -1
  25. package/chunks/{chunk-MI2V6IWU.js → chunk-3DWIFU7L.js} +1 -1
  26. package/chunks/{chunk-AEKYFMYE.js → chunk-3M75MSVA.js} +1 -1
  27. package/chunks/{chunk-HIMIG6PI.js → chunk-4AGTGMCQ.js} +11 -11
  28. package/chunks/{chunk-V2FRLYHN.js → chunk-4BJVSIS3.js} +2 -2
  29. package/chunks/{chunk-64XGKNSI.js → chunk-4HUDDSO5.js} +3 -3
  30. package/chunks/{chunk-FSJGBUQI.js → chunk-4IJMTYCB.js} +28 -817
  31. package/chunks/{chunk-TYQMGACW.js → chunk-4LD5APFL.js} +0 -1
  32. package/chunks/{chunk-2XRGFF5K.js → chunk-4ROQY23C.js} +6 -6
  33. package/chunks/{chunk-KEVDWH3U.js → chunk-574PTLMU.js} +55 -207
  34. package/chunks/{chunk-Y72B36CP.js → chunk-5CNYZ7TN.js} +7 -7
  35. package/chunks/{chunk-DPSHAB47.js → chunk-5VWYKIMW.js} +1 -1
  36. package/chunks/{chunk-OXOEOOQU.js → chunk-5Z452MMD.js} +37 -64
  37. package/chunks/{chunk-U6OPT4H2.js → chunk-6EDDYPI3.js} +4 -4
  38. package/chunks/{chunk-XA7OKDWM.js → chunk-6WGZDD67.js} +2 -2
  39. package/chunks/{chunk-IENO2YAT.js → chunk-6WPJRYLZ.js} +3 -3
  40. package/chunks/{chunk-PWYLF7SS.js → chunk-6Y6ORE2G.js} +10 -7
  41. package/chunks/{chunk-UE5TZ55T.js → chunk-7NFB7LBQ.js} +0 -8
  42. package/chunks/{chunk-3CL5SEDT.js → chunk-7NMU22Q3.js} +6 -6
  43. package/chunks/{chunk-ECZFTRTP.js → chunk-7ZYHLN67.js} +75 -26
  44. package/chunks/{chunk-LKR7QQ63.js → chunk-A2HWMJVO.js} +3 -3
  45. package/chunks/{chunk-SGPFJMRP.js → chunk-ARKANCNX.js} +1 -1
  46. package/chunks/{chunk-5QRK2VZG.js → chunk-AU3MFJPL.js} +8 -8
  47. package/chunks/{chunk-R3VWUU2E.js → chunk-AVEOWVOM.js} +1 -1
  48. package/chunks/{chunk-6ITLKEOZ.js → chunk-BUAXJVNP.js} +3 -3
  49. package/chunks/{chunk-U4FJ26D2.js → chunk-BXBDC476.js} +2 -2
  50. package/chunks/{chunk-ZTSDZQZO.js → chunk-BYB3GF2T.js} +3 -130
  51. package/chunks/{chunk-4JBTZBCW.js → chunk-BYH2JRK3.js} +5 -5
  52. package/chunks/{chunk-4HCYNDMG.js → chunk-CAHY5ABC.js} +1 -1
  53. package/chunks/{chunk-JBAQ5BYX.js → chunk-CF5VJRGC.js} +1 -1
  54. package/chunks/{chunk-3NWYQ7FX.js → chunk-CH2XVB47.js} +2 -2
  55. package/chunks/{chunk-FHUXCRAF.js → chunk-CITWNIXJ.js} +4 -4
  56. package/chunks/{chunk-6YIRYY3P.js → chunk-CPFIQVZJ.js} +1 -1
  57. package/chunks/{chunk-EKG3BHQY.js → chunk-DOPUYNXO.js} +3 -3
  58. package/chunks/{chunk-VNN3JNYT.js → chunk-F333XEAU.js} +1 -1
  59. package/chunks/{chunk-FUTHTZVV.js → chunk-FBU7WRZI.js} +1 -1
  60. package/chunks/{chunk-OBYAX5QZ.js → chunk-FMNYGWOD.js} +6 -6
  61. package/chunks/{chunk-FZRES4GK.js → chunk-FNX3LGAK.js} +1 -1
  62. package/chunks/{chunk-F2RR4HO2.js → chunk-FSA7ERJ2.js} +1 -1
  63. package/chunks/{chunk-OPVIKLKK.js → chunk-FXKOAEXP.js} +14 -14
  64. package/chunks/{chunk-U2XBPBO3.js → chunk-FYQ22K62.js} +3 -4
  65. package/chunks/{chunk-KTKETHMY.js → chunk-GLNHPRZT.js} +1 -1
  66. package/chunks/{chunk-C5NSOSF4.js → chunk-GNBBAQ6J.js} +13 -30
  67. package/chunks/{chunk-GAQOQMHY.js → chunk-HASK4LMI.js} +6 -6
  68. package/chunks/{chunk-GG6RSNWS.js → chunk-JD44PNGJ.js} +4 -9
  69. package/chunks/{chunk-ANRANWVE.js → chunk-JGUT3LWZ.js} +1 -4
  70. package/chunks/{chunk-336KPNNV.js → chunk-JWICTOXS.js} +2 -2
  71. package/chunks/{chunk-57RWF6R7.js → chunk-K7VD4XLT.js} +1 -1
  72. package/chunks/{chunk-XSPFQQRE.js → chunk-KKRTYONM.js} +3 -3
  73. package/chunks/{chunk-JDIUK2Y3.js → chunk-KSZKSE23.js} +1 -1
  74. package/chunks/{chunk-HQXQCIT2.js → chunk-KXYJPRT5.js} +5 -25
  75. package/chunks/{chunk-X6YQWCIJ.js → chunk-L4Y55KIS.js} +1 -1
  76. package/chunks/{chunk-335ECZTA.js → chunk-L5U3ELZX.js} +1 -1
  77. package/chunks/{chunk-4CHDYDG3.js → chunk-LQIDP6K5.js} +1 -1
  78. package/chunks/{chunk-5O34IMY5.js → chunk-LS56TX3M.js} +1 -1
  79. package/chunks/{chunk-HCCR43AY.js → chunk-LXLTBIDP.js} +1 -1
  80. package/chunks/{chunk-66IT3EY2.js → chunk-MQOVXZAF.js} +48 -164
  81. package/chunks/{chunk-JUVTV4NF.js → chunk-N5VIZTND.js} +1 -1
  82. package/chunks/{chunk-3YJZ6WNY.js → chunk-NJOFRXTM.js} +593 -1317
  83. package/chunks/{chunk-CZSAIBUB.js → chunk-NVTQZXR7.js} +7 -7
  84. package/chunks/{chunk-G274ETR6.js → chunk-OKAIGAYW.js} +3 -3
  85. package/chunks/{chunk-TVYM3Q3J.js → chunk-OWT2CAEQ.js} +7 -100
  86. package/chunks/{chunk-T3W4SDRB.js → chunk-PZL23GTM.js} +0 -2
  87. package/chunks/{chunk-XAAEDML2.js → chunk-Q6TUALBE.js} +1 -1
  88. package/chunks/chunk-QAW7PIHT.js +168 -0
  89. package/chunks/{chunk-HT7L5FCZ.js → chunk-QDJ2R4CM.js} +3 -3
  90. package/chunks/{chunk-IX7O5WI3.js → chunk-QOTQH4CB.js} +8 -23
  91. package/chunks/{chunk-S4N3G4BB.js → chunk-QYG4BY6Q.js} +1 -1
  92. package/chunks/{chunk-4XCVGEEX.js → chunk-RCEEXIOO.js} +3 -3
  93. package/chunks/{chunk-IK5TYYVR.js → chunk-RP5R7MB6.js} +12 -12
  94. package/chunks/{chunk-U2LNTX56.js → chunk-RTV5TUYB.js} +1 -1
  95. package/chunks/{chunk-K2GBHL73.js → chunk-S63Z5V42.js} +4 -4
  96. package/chunks/{chunk-J2MKYJKZ.js → chunk-SPJQO2CE.js} +2 -2
  97. package/chunks/{chunk-LTD3CHGS.js → chunk-SQ5BK3GO.js} +1 -1
  98. package/chunks/{chunk-W7H223ZZ.js → chunk-STZQCNN3.js} +1 -1
  99. package/chunks/{chunk-2YSZE74N.js → chunk-SY7NEYX4.js} +2 -2
  100. package/chunks/{chunk-GA3WUOO7.js → chunk-T76DGHGG.js} +5 -5
  101. package/chunks/{chunk-QPRDXJIC.js → chunk-THXDQSTA.js} +29 -30
  102. package/chunks/{chunk-DASWPKXR.js → chunk-TIOE2OPE.js} +2 -2
  103. package/chunks/{chunk-F5XYN5VF.js → chunk-TL4R5TRK.js} +2 -2
  104. package/chunks/{chunk-4RPARQ5D.js → chunk-TV6K2FB4.js} +2 -2
  105. package/chunks/{chunk-JCJPZMJV.js → chunk-TYLOFD2U.js} +1 -1
  106. package/chunks/{chunk-632KROVU.js → chunk-V2DXTLUE.js} +3 -3
  107. package/chunks/{chunk-URP6O2PP.js → chunk-VFX7EZIR.js} +1 -1
  108. package/chunks/{chunk-CMVFTMRD.js → chunk-VRR65QYW.js} +1 -1
  109. package/chunks/{chunk-VAJS2E2D.js → chunk-WIEO4CWB.js} +1 -1
  110. package/chunks/{chunk-OCQ2QTFJ.js → chunk-WMNXXRGL.js} +25 -25
  111. package/chunks/{chunk-WEPXQKGP.js → chunk-WTNZ6DXB.js} +1 -1
  112. package/chunks/{chunk-LGY7PG7Q.js → chunk-Y3KFTWVX.js} +5 -5
  113. package/chunks/{chunk-4CA4WUMS.js → chunk-Y66VOBRP.js} +2 -2
  114. package/chunks/{chunk-IVKLDHU6.js → chunk-YFVO2HOR.js} +4 -4
  115. package/chunks/{chunk-GUNTLALV.js → chunk-YGYSMY2R.js} +47 -61
  116. package/chunks/{chunk-3X2CFOUM.js → chunk-YLSSEUAM.js} +274 -345
  117. package/chunks/{chunk-6Z5NRZVU.js → chunk-ZIXOTAPZ.js} +3 -92
  118. package/chunks/{chunk-Z2LBNX3R.js → chunk-ZPAHLFZU.js} +2 -2
  119. package/chunks/{chunk-ATJ7H5AS.js → chunk-ZQIYGQCG.js} +84 -230
  120. package/chunks/{computer-use-UIFBH25Y.js → computer-use-VZZMJEQ7.js} +24 -24
  121. package/chunks/{config-utils-2LHI7JXU.js → config-utils-IQQT3GCI.js} +3 -3
  122. package/chunks/{contextCommand-VGZHKEH2.js → contextCommand-PORKIZSY.js} +26 -26
  123. package/chunks/{create-sub-session-DIJOV6HV.js → create-sub-session-EAB2U5XW.js} +2 -2
  124. package/chunks/{create-sub-session-OFVI4H6I.js → create-sub-session-XVFKHAFW.js} +24 -24
  125. package/chunks/{cron-create-34GVLSW5.js → cron-create-GMVKSXZT.js} +4 -4
  126. package/chunks/{cron-delete-NMVKUL45.js → cron-delete-VDZKUAVK.js} +4 -4
  127. package/chunks/{cron-list-277ZOR7L.js → cron-list-UG7C7RAR.js} +4 -4
  128. package/chunks/{daemon-72MEV3TY.js → daemon-IHR6WSPB.js} +14 -59
  129. package/chunks/{daemon-status-provider-ZJJ6AOG2.js → daemon-status-provider-ABLBA3UJ.js} +33 -33
  130. package/chunks/{de-56TMDIKS.js → de-NOXPCSYN.js} +2 -2
  131. package/chunks/{dist-ILVRL322.js → dist-4WCQEZIN.js} +1 -1
  132. package/chunks/{dist-SVHAGOLN.js → dist-DOPL5LSQ.js} +1 -1
  133. package/chunks/{dist-LQHDHBPP.js → dist-GXJVCOS7.js} +1 -1
  134. package/chunks/{dist-KEZ5JWH4.js → dist-PX2ERZ6I.js} +2 -2
  135. package/chunks/{dist-G6QCGO2K.js → dist-V2YVLYOW.js} +1 -1
  136. package/chunks/{dist-4W3UGU2A.js → dist-VYWUKURL.js} +1 -1
  137. package/chunks/{earlyInputCapture-NPF4PVUE.js → earlyInputCapture-DJCU5SPU.js} +25 -25
  138. package/chunks/{edit-F7CT6NZH.js → edit-O4VV5AO6.js} +25 -25
  139. package/chunks/{en-AXS2N62H.js → en-JFVULHTB.js} +3 -6
  140. package/chunks/{enter-worktree-Z4ET3MZL.js → enter-worktree-XQYDDI2I.js} +24 -24
  141. package/chunks/{enterPlanMode-VYR7T5NX.js → enterPlanMode-CESVMQBV.js} +27 -25
  142. package/chunks/{environment-MBTXL57Q.js → environment-5KXOLZNR.js} +26 -26
  143. package/chunks/{errors-HN36J4FR.js → errors-EBUTCBAQ.js} +26 -26
  144. package/chunks/{exit-worktree-RU7JYFMF.js → exit-worktree-MWGNSPNX.js} +24 -24
  145. package/chunks/exitPlanMode-HYQL4XMB.js +909 -0
  146. package/chunks/{fast-path-RFT3CDNZ.js → fast-path-6V73F2T2.js} +2 -2
  147. package/chunks/{fr-ZJPE5OVN.js → fr-HVFNU42H.js} +2 -2
  148. package/chunks/{gemini-37NTNKZF.js → gemini-TEFJZCIZ.js} +70 -98
  149. package/chunks/{geminiContentGenerator-76HNOYNQ.js → geminiContentGenerator-M56BEXWI.js} +5 -5
  150. package/chunks/{glob-DWD7JCZE.js → glob-DMYFEEAZ.js} +25 -30
  151. package/chunks/{grep-NJRXFV5C.js → grep-GYE47MD4.js} +25 -30
  152. package/chunks/{handleAutoUpdate-7GBDXW6U.js → handleAutoUpdate-OLUY4L7L.js} +28 -28
  153. package/chunks/{i18n-MYD5VGED.js → i18n-462JC7IY.js} +25 -25
  154. package/chunks/{initializer-4DHPNAZG.js → initializer-Y7WD4D2I.js} +30 -30
  155. package/chunks/{installationInfo-RWOW6BZO.js → installationInfo-I2Z3BKCE.js} +25 -25
  156. package/chunks/{ja-57GG4QSL.js → ja-PY5AF544.js} +2 -2
  157. package/chunks/{keychain-token-storage-K23CFKGN.js → keychain-token-storage-AU22CQI6.js} +2 -2
  158. package/chunks/{list-MMCNNHE7.js → list-XQ5MSAXP.js} +32 -32
  159. package/chunks/{loadedSettingsAdapter-UK4JWPYU.js → loadedSettingsAdapter-TQOWYE7C.js} +29 -29
  160. package/chunks/{loop-wakeup-KCLY4XQM.js → loop-wakeup-QXWZSCYM.js} +5 -5
  161. package/chunks/{ls-UNI4LAJ3.js → ls-2OUTG3IZ.js} +4 -4
  162. package/chunks/{lsp-HPACPJAN.js → lsp-4VMNXZW6.js} +2 -2
  163. package/chunks/{mcp-AFCVA4UV.js → mcp-22LLEEVM.js} +29 -29
  164. package/chunks/{monitor-RK637BNO.js → monitor-VKG324X3.js} +24 -24
  165. package/chunks/nonInteractiveCli-UMYUT643.js +129 -0
  166. package/chunks/{notebook-edit-LY2X3CMF.js → notebook-edit-FJJRBQ3S.js} +25 -25
  167. package/chunks/{openaiContentGenerator-MDYDW7IA.js → openaiContentGenerator-4T2OGTR5.js} +13 -13
  168. package/chunks/{pidfile-2NUYRLKB.js → pidfile-XL3MDCBM.js} +25 -25
  169. package/chunks/{processUtils-7QH3VBVN.js → processUtils-7UCFN34D.js} +2 -2
  170. package/chunks/{pt-MCGZ3RZ4.js → pt-A3PRQXMU.js} +2 -2
  171. package/chunks/{qwenContentGenerator-3HT4TVDL.js → qwenContentGenerator-PQUXJDIZ.js} +26 -26
  172. package/chunks/{qwenOAuth2-3A4TJVZT.js → qwenOAuth2-LEYOU7RU.js} +5 -5
  173. package/chunks/{read-file-NE4FREFR.js → read-file-3EYQML7E.js} +10 -10
  174. package/chunks/{read-mcp-resource-C6NT52T6.js → read-mcp-resource-JUFHCKSC.js} +2 -2
  175. package/chunks/{record-artifact-ENCU7QCL.js → record-artifact-DWSMBXYY.js} +2 -2
  176. package/chunks/{ripGrep-DBLXWQCJ.js → ripGrep-S6WPGQNA.js} +24 -24
  177. package/chunks/{ru-GA3NZW5Q.js → ru-IBCWUTOC.js} +2 -2
  178. package/chunks/{run-qwen-serve-3NOCI6IL.js → run-qwen-serve-NSKBT3HU.js} +36 -52
  179. package/chunks/{runtime-ZI7DSZSS.js → runtime-LG5ZZ3VH.js} +33 -33
  180. package/chunks/{scheduler-SOVEP5K7.js → scheduler-PLX3VVTB.js} +24 -24
  181. package/chunks/{send-message-5IFPZTPE.js → send-message-JZ752NWD.js} +3 -3
  182. package/chunks/{serve-DB6OCXIA.js → serve-S2ZLRZZR.js} +29 -29
  183. package/chunks/{server-LDY4YVU4.js → server-5ECMV4TM.js} +679 -1413
  184. package/chunks/{session-D6OG5SKX.js → session-ILSONWG4.js} +66 -93
  185. package/chunks/{settings-L52ZV5LO.js → settings-BOE7WWSA.js} +28 -28
  186. package/chunks/{shell-IU27OY3Q.js → shell-VW664JIZ.js} +24 -24
  187. package/chunks/{skill-BSOJT7LE.js → skill-COHV6625.js} +12 -12
  188. package/chunks/{spawnChannel-HQAM25DD.js → spawnChannel-5UUR5XOZ.js} +26 -26
  189. package/chunks/{src-7ZBIMTJZ.js → src-XPKFZ3RN.js} +25 -43
  190. package/chunks/{standalone-update-77457VVK.js → standalone-update-IOOJ2NZQ.js} +26 -26
  191. package/chunks/{startInteractiveUI-S7WC6EZG.js → startInteractiveUI-3NGJGXXS.js} +1733 -2194
  192. package/chunks/{syntheticOutput-ULOVVLY4.js → syntheticOutput-LELY6HAI.js} +3 -3
  193. package/chunks/{task-create-V2DCDSET.js → task-create-QY3BIMNM.js} +7 -7
  194. package/chunks/{task-list-DPL5ZN55.js → task-list-D2U47WBJ.js} +5 -5
  195. package/chunks/{task-stop-CPEQWOT6.js → task-stop-N6E5IYLH.js} +2 -2
  196. package/chunks/{task-update-ZR45M5Q7.js → task-update-HJCQILLB.js} +7 -7
  197. package/chunks/{team-create-CO7HSUON.js → team-create-UPLVZQFX.js} +24 -24
  198. package/chunks/{team-delete-HIWXCWJU.js → team-delete-RCWYDRF4.js} +5 -5
  199. package/chunks/{team-plan-approval-QDZF5YZY.js → team-plan-approval-F5F432RO.js} +24 -24
  200. package/chunks/{theme-manager-UTUT3I4P.js → theme-manager-JJE4BJ67.js} +25 -25
  201. package/chunks/todoWrite-FKCGATPJ.js +531 -0
  202. package/chunks/{tool-search-2UUORA35.js → tool-search-LRXI4JLZ.js} +11 -11
  203. package/chunks/{total-session-admission-NTWG6G3F.js → total-session-admission-I4DHN6UP.js} +30 -30
  204. package/chunks/{trustedFolders-YF37ZCN5.js → trustedFolders-SEH7LNX2.js} +25 -25
  205. package/chunks/{update-relaunch-QFNHPMZZ.js → update-relaunch-T6ZKBUA6.js} +5 -5
  206. package/chunks/{updateCheck-B6O42VMD.js → updateCheck-FWLXZPRO.js} +26 -26
  207. package/chunks/{validateNonInterActiveAuth-SCIWJ4CX.js → validateNonInterActiveAuth-X6K2VWYT.js} +59 -59
  208. package/chunks/{version-7DA6LAI3.js → version-LIFSOGSE.js} +1 -1
  209. package/chunks/{web-fetch-B62SJXM2.js → web-fetch-CFCWTCAP.js} +5 -5
  210. package/chunks/{workflow-Q5WG4THP.js → workflow-NX2DFWGD.js} +25 -25
  211. package/chunks/{workspace-providers-status-WWLAGWQW.js → workspace-providers-status-VYD6M2NE.js} +32 -32
  212. package/chunks/{workspace-registration-store-BVYQVY2H.js → workspace-registration-store-2Y6PWOEL.js} +1 -1
  213. package/chunks/{workspace-registry-OD7ACADD.js → workspace-registry-PKBDBWCA.js} +30 -30
  214. package/chunks/{workspace-service-4LYJWS63.js → workspace-service-HHORUHTS.js} +35 -35
  215. package/chunks/{workspace-skills-status-P2AQLZZS.js → workspace-skills-status-O5Q26LIY.js} +30 -30
  216. package/chunks/{write-file-TEPGXNM3.js → write-file-NVAEZ3J2.js} +25 -58
  217. package/chunks/{zh-E34DZ2S3.js → zh-PAUNIMHQ.js} +3 -6
  218. package/chunks/{zh-TW-PEI2ZWUR.js → zh-TW-GNEUIUFF.js} +3 -6
  219. package/cli.js +11 -11
  220. package/locales/ca.js +2 -2
  221. package/locales/de.js +2 -2
  222. package/locales/en.js +5 -9
  223. package/locales/fr.js +2 -2
  224. package/locales/ja.js +2 -2
  225. package/locales/pt.js +2 -2
  226. package/locales/ru.js +2 -2
  227. package/locales/zh-TW.js +3 -8
  228. package/locales/zh.js +3 -8
  229. package/package.json +3 -3
  230. package/web-shell/assets/{arc-Dh-N5oEG.js → arc-H74fE8UR.js} +1 -1
  231. package/web-shell/assets/{architectureDiagram-3BPJPVTR-DBOQgtfF.js → architectureDiagram-3BPJPVTR-DN3kEq-I.js} +1 -1
  232. package/web-shell/assets/{blockDiagram-GPEHLZMM-Dyxbuyju.js → blockDiagram-GPEHLZMM-BrqbsFUF.js} +1 -1
  233. package/web-shell/assets/{c4Diagram-AAUBKEIU-DCJR5HPT.js → c4Diagram-AAUBKEIU-ClFhU1P-.js} +1 -1
  234. package/web-shell/assets/channel-NFC5ADAa.js +1 -0
  235. package/web-shell/assets/{chunk-2J33WTMH-BkMUcy3O.js → chunk-2J33WTMH-jCIcG0_M.js} +1 -1
  236. package/web-shell/assets/{chunk-4BX2VUAB-BSm4pLQk.js → chunk-4BX2VUAB-DSkGe62-.js} +1 -1
  237. package/web-shell/assets/{chunk-55IACEB6-CuRr-XgW.js → chunk-55IACEB6-BxBHOGTd.js} +1 -1
  238. package/web-shell/assets/{chunk-727SXJPM-CLv7-w3t.js → chunk-727SXJPM-v_DS7dH7.js} +1 -1
  239. package/web-shell/assets/{chunk-AQP2D5EJ-Cz_n3-JW.js → chunk-AQP2D5EJ-1RzEKRPq.js} +1 -1
  240. package/web-shell/assets/{chunk-FMBD7UC4-CFT_62Hq.js → chunk-FMBD7UC4-DyrSbLOX.js} +1 -1
  241. package/web-shell/assets/{chunk-ND2GUHAM-DWz6DOZ6.js → chunk-ND2GUHAM-BCmdsZiy.js} +1 -1
  242. package/web-shell/assets/{chunk-QZHKN3VN-C-mRhUzw.js → chunk-QZHKN3VN-CphHGW2D.js} +1 -1
  243. package/web-shell/assets/classDiagram-4FO5ZUOK-DHgwjz3X.js +1 -0
  244. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DHgwjz3X.js +1 -0
  245. package/web-shell/assets/{cose-bilkent-S5V4N54A-BqCZS3i1.js → cose-bilkent-S5V4N54A-D5kRC7Fi.js} +1 -1
  246. package/web-shell/assets/{dagre-BM42HDAG-BGasdP8i.js → dagre-BM42HDAG-DIiyJJ0U.js} +1 -1
  247. package/web-shell/assets/{diagram-2AECGRRQ-BSyLDkMy.js → diagram-2AECGRRQ-BOcuB8xU.js} +1 -1
  248. package/web-shell/assets/{diagram-5GNKFQAL-CM-ZJxWC.js → diagram-5GNKFQAL-CMgiZ4d3.js} +1 -1
  249. package/web-shell/assets/{diagram-KO2AKTUF-wJdzt_C5.js → diagram-KO2AKTUF-Ctx8pfN0.js} +1 -1
  250. package/web-shell/assets/{diagram-LMA3HP47-DiH2fhpL.js → diagram-LMA3HP47-BT5REAWC.js} +1 -1
  251. package/web-shell/assets/{diagram-OG6HWLK6-BZ9z1ZBl.js → diagram-OG6HWLK6-CJkUqXcp.js} +1 -1
  252. package/web-shell/assets/{erDiagram-TEJ5UH35-BsyWDziR.js → erDiagram-TEJ5UH35-DyvNNX6v.js} +1 -1
  253. package/web-shell/assets/{flowDiagram-I6XJVG4X-CzdkxIrq.js → flowDiagram-I6XJVG4X-VBf8_My8.js} +1 -1
  254. package/web-shell/assets/{ganttDiagram-6RSMTGT7-javIv2r2.js → ganttDiagram-6RSMTGT7-CviJnR7B.js} +1 -1
  255. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CjHstylC.js → gitGraphDiagram-PVQCEYII-BY66_Oze.js} +1 -1
  256. package/web-shell/assets/index-8xIBbHV3.js +1143 -0
  257. package/web-shell/assets/index-DLyhlZZO.css +5 -0
  258. package/web-shell/assets/{index-BnJGxpah.js → index-DhYuvi3j.js} +1 -1
  259. package/web-shell/assets/{infoDiagram-5YYISTIA-yXuQsomo.js → infoDiagram-5YYISTIA-D2jaewWZ.js} +1 -1
  260. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-a85JhE6F.js → ishikawaDiagram-YF4QCWOH-BpnNTyi5.js} +1 -1
  261. package/web-shell/assets/{journeyDiagram-JHISSGLW-Dak_4BVj.js → journeyDiagram-JHISSGLW-CA55GNZF.js} +1 -1
  262. package/web-shell/assets/{kanban-definition-UN3LZRKU-COA-LuCV.js → kanban-definition-UN3LZRKU-DyiSl_Ts.js} +1 -1
  263. package/web-shell/assets/{linear-DNAAAQWq.js → linear-B-sN3dkV.js} +1 -1
  264. package/web-shell/assets/{mermaid.core-7Ff3aIUD.js → mermaid.core-xf9SXDdb.js} +5 -5
  265. package/web-shell/assets/{mindmap-definition-RKZ34NQL-_rCOIODU.js → mindmap-definition-RKZ34NQL-DXhr2kRk.js} +1 -1
  266. package/web-shell/assets/{pieDiagram-4H26LBE5-C9QCQ8EW.js → pieDiagram-4H26LBE5-DUXpbfGQ.js} +1 -1
  267. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CsaE4FA8.js → quadrantDiagram-W4KKPZXB-NeDQYeWw.js} +1 -1
  268. package/web-shell/assets/{requirementDiagram-4Y6WPE33-tV78naTg.js → requirementDiagram-4Y6WPE33-BSbFRL1A.js} +1 -1
  269. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Dk3Rw7BZ.js → sankeyDiagram-5OEKKPKP-gg27cAaN.js} +1 -1
  270. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-BGsAWcMX.js → sequenceDiagram-3UESZ5HK-Bi_1TSs4.js} +1 -1
  271. package/web-shell/assets/{stateDiagram-AJRCARHV-zSxdtdoB.js → stateDiagram-AJRCARHV-CboCCRaf.js} +1 -1
  272. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CXRqms6P.js +1 -0
  273. package/web-shell/assets/{timeline-definition-PNZ67QCA-j0BQh9Go.js → timeline-definition-PNZ67QCA-DrGpF_jn.js} +1 -1
  274. package/web-shell/assets/{vennDiagram-CIIHVFJN-CRaUFFIu.js → vennDiagram-CIIHVFJN-DCaJU67x.js} +1 -1
  275. package/web-shell/assets/{wardley-L42UT6IY-D7Py_ofm.js → wardley-L42UT6IY-p0QcW1aP.js} +1 -1
  276. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BrDIAZcp.js → wardleyDiagram-YWT4CUSO-DiEVxj1W.js} +1 -1
  277. package/web-shell/assets/{xychartDiagram-2RQKCTM6-Cecdw-w2.js → xychartDiagram-2RQKCTM6-iQB8nSlA.js} +1 -1
  278. package/web-shell/index.html +2 -2
  279. package/chunks/chunk-QFEY6OXH.js +0 -45
  280. package/chunks/exitPlanMode-LUBAWMZQ.js +0 -390
  281. package/chunks/nonInteractiveCli-OUGWLHNV.js +0 -129
  282. package/chunks/todoWrite-HK6B3RHJ.js +0 -358
  283. package/web-shell/assets/channel-DY0fkcKT.js +0 -1
  284. package/web-shell/assets/classDiagram-4FO5ZUOK-DBvJ6PZo.js +0 -1
  285. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DBvJ6PZo.js +0 -1
  286. package/web-shell/assets/index-DhXB9nTa.js +0 -1161
  287. package/web-shell/assets/index-vYHgZ7bL.css +0 -5
  288. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-vLEEtDpO.js +0 -1
@@ -1,8 +1,9 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
3
  import {
4
- classifyApiError
5
- } from "./chunk-3X2CFOUM.js";
4
+ classifyApiError,
5
+ prefixMidTurnUserMessageParts
6
+ } from "./chunk-YLSSEUAM.js";
6
7
  import {
7
8
  EXTENSION_CONTEXT_BUDGET,
8
9
  buildExtensionMentionContext,
@@ -11,47 +12,47 @@ import {
11
12
  matchMcpServerByRef,
12
13
  parseExtensionRef,
13
14
  parseMcpServerRef
14
- } from "./chunk-GAQOQMHY.js";
15
+ } from "./chunk-HASK4LMI.js";
15
16
  import {
16
17
  getAvailableCommands,
17
18
  handleSlashCommand,
18
19
  insertAfterFunctionResponses,
19
20
  isSlashCommand,
20
21
  normalizePartList
21
- } from "./chunk-QPRDXJIC.js";
22
+ } from "./chunk-THXDQSTA.js";
22
23
  import {
23
24
  collectContextData,
24
25
  formatContextUsageText
25
- } from "./chunk-OBYAX5QZ.js";
26
+ } from "./chunk-FMNYGWOD.js";
26
27
  import {
27
28
  recomputeMcpGating
28
- } from "./chunk-4JBTZBCW.js";
29
+ } from "./chunk-BYH2JRK3.js";
29
30
  import {
30
31
  appEvents,
31
32
  buildDisabledSkillNamesProvider,
32
33
  loadCliConfig,
33
34
  normalizeDisabledToolList
34
- } from "./chunk-GUNTLALV.js";
35
+ } from "./chunk-YGYSMY2R.js";
35
36
  import {
36
37
  getCommandSubcommandNames
37
- } from "./chunk-ZTSDZQZO.js";
38
- import "./chunk-U2XBPBO3.js";
38
+ } from "./chunk-BYB3GF2T.js";
39
+ import "./chunk-FYQ22K62.js";
39
40
  import {
40
41
  getEffectiveSupportedModes
41
- } from "./chunk-CZSAIBUB.js";
42
+ } from "./chunk-NVTQZXR7.js";
42
43
  import "./chunk-4WGODMVR.js";
43
44
  import "./chunk-KW7NOTN6.js";
44
- import "./chunk-TVYM3Q3J.js";
45
+ import "./chunk-OWT2CAEQ.js";
45
46
  import "./chunk-5DTTYNB7.js";
46
47
  import "./chunk-NHDKSOEY.js";
47
48
  import {
48
49
  isTerminalGoalStatusKind
49
50
  } from "./chunk-7X7TEQNX.js";
50
51
  import "./chunk-HTHUX2T5.js";
51
- import "./chunk-F5XYN5VF.js";
52
- import "./chunk-632KROVU.js";
52
+ import "./chunk-TL4R5TRK.js";
53
+ import "./chunk-V2DXTLUE.js";
53
54
  import "./chunk-YAF2MQZ6.js";
54
- import "./chunk-XAAEDML2.js";
55
+ import "./chunk-Q6TUALBE.js";
55
56
  import {
56
57
  GENERATION_MAX_PROMPT_BYTES,
57
58
  GENERATION_TIMEOUT_MS,
@@ -70,14 +71,14 @@ import {
70
71
  shouldSuppressRememberErrorDetails,
71
72
  workspaceMemoryFailureCode,
72
73
  workspaceMemoryFailureDiagnostics
73
- } from "./chunk-IX7O5WI3.js";
74
+ } from "./chunk-QOTQH4CB.js";
74
75
  import {
75
76
  HistoryReplayer,
76
77
  MessageEmitter,
77
78
  PlanEmitter,
78
79
  ToolCallEmitter
79
- } from "./chunk-PWYLF7SS.js";
80
- import "./chunk-JBAQ5BYX.js";
80
+ } from "./chunk-6Y6ORE2G.js";
81
+ import "./chunk-CF5VJRGC.js";
81
82
  import "./chunk-SUARMD4Q.js";
82
83
  import "./chunk-QHTIBUWB.js";
83
84
  import "./chunk-L573Z2QZ.js";
@@ -85,22 +86,19 @@ import {
85
86
  computeCpuPercent
86
87
  } from "./chunk-HGT6JR3U.js";
87
88
  import "./chunk-RXFQM6FQ.js";
88
- import "./chunk-LGY7PG7Q.js";
89
+ import "./chunk-Y3KFTWVX.js";
89
90
  import "./chunk-6H67XLET.js";
90
- import "./chunk-FHUXCRAF.js";
91
- import "./chunk-64XGKNSI.js";
91
+ import "./chunk-CITWNIXJ.js";
92
+ import "./chunk-4HUDDSO5.js";
92
93
  import "./chunk-LXXMOYPL.js";
93
- import "./chunk-K2GBHL73.js";
94
+ import "./chunk-S63Z5V42.js";
94
95
  import "./chunk-E5Z2AVNV.js";
95
96
  import {
96
- ACP_ROUTE_ID_PREFIX,
97
- buildAcpModelOptions,
98
- getCurrentAcpModelId,
97
+ formatAcpModelId,
99
98
  parseAcpBaseModelId,
100
99
  parseAcpModelOption,
101
- resolveAcpModelOption,
102
100
  sanitizeProviderBaseUrl
103
- } from "./chunk-6Z5NRZVU.js";
101
+ } from "./chunk-ZIXOTAPZ.js";
104
102
  import {
105
103
  mapSkillConfigToStatus
106
104
  } from "./chunk-2W3OOD4W.js";
@@ -110,45 +108,44 @@ import {
110
108
  buildPermissionSettings,
111
109
  normalizePermissionRules,
112
110
  readPermissionRuleSet
113
- } from "./chunk-57RWF6R7.js";
111
+ } from "./chunk-K7VD4XLT.js";
114
112
  import {
115
113
  MAX_AUDIO_BYTES,
116
114
  sanitizeVoiceErrorMessage,
117
115
  transcribeVoiceAudio
118
- } from "./chunk-6ITLKEOZ.js";
116
+ } from "./chunk-BUAXJVNP.js";
119
117
  import {
120
118
  readVoiceModel
121
- } from "./chunk-AEKYFMYE.js";
122
- import "./chunk-F2RR4HO2.js";
119
+ } from "./chunk-3M75MSVA.js";
120
+ import "./chunk-FSA7ERJ2.js";
123
121
  import {
124
122
  parseSessionSource
125
- } from "./chunk-KEVDWH3U.js";
123
+ } from "./chunk-574PTLMU.js";
126
124
  import {
127
125
  CLIENT_MCP_OVER_WS_CONFIG_FLAG,
128
126
  LOAD_REPLAY_BULK_MODE,
129
127
  LOAD_REPLAY_META_KEY,
130
128
  LOAD_REPLAY_MODE_META_KEY,
131
- LOAD_REPLAY_PAGE_SIZE_META_KEY,
132
129
  LOAD_REPLAY_VERSION,
133
130
  MID_TURN_QUEUE_DRAIN_METHOD
134
- } from "./chunk-T3W4SDRB.js";
131
+ } from "./chunk-PZL23GTM.js";
135
132
  import "./chunk-6RLROE6G.js";
136
133
  import "./chunk-COH43MRJ.js";
137
134
  import {
138
135
  NOT_CURRENTLY_GENERATING_CANCEL_MESSAGE
139
- } from "./chunk-X6YQWCIJ.js";
140
- import "./chunk-3CL5SEDT.js";
141
- import "./chunk-IVKLDHU6.js";
136
+ } from "./chunk-L4Y55KIS.js";
137
+ import "./chunk-7NMU22Q3.js";
138
+ import "./chunk-YFVO2HOR.js";
142
139
  import "./chunk-57OAHC2Y.js";
143
- import "./chunk-Y72B36CP.js";
144
- import "./chunk-FZRES4GK.js";
140
+ import "./chunk-5CNYZ7TN.js";
141
+ import "./chunk-FNX3LGAK.js";
145
142
  import "./chunk-V6WHFGST.js";
146
143
  import {
147
144
  createLoadedSettingsAdapter
148
- } from "./chunk-LTD3CHGS.js";
145
+ } from "./chunk-SQ5BK3GO.js";
149
146
  import {
150
147
  ndJsonStream
151
- } from "./chunk-O2K6BLPZ.js";
148
+ } from "./chunk-3AYLDB6B.js";
152
149
  import {
153
150
  ACP_PREFLIGHT_KINDS,
154
151
  IDLE_HOOK_EVENTS,
@@ -156,14 +153,14 @@ import {
156
153
  SERVE_STATUS_EXT_METHODS,
157
154
  STATUS_SCHEMA_VERSION,
158
155
  mapDomainErrorToErrorKind
159
- } from "./chunk-URP6O2PP.js";
156
+ } from "./chunk-VFX7EZIR.js";
160
157
  import "./chunk-W7FJ3N32.js";
161
- import "./chunk-JDIUK2Y3.js";
158
+ import "./chunk-KSZKSE23.js";
162
159
  import "./chunk-TJTKSVIV.js";
163
160
  import "./chunk-M5GB774H.js";
164
- import "./chunk-HCCR43AY.js";
165
- import "./chunk-MI2V6IWU.js";
166
- import "./chunk-ATJ7H5AS.js";
161
+ import "./chunk-LXLTBIDP.js";
162
+ import "./chunk-3DWIFU7L.js";
163
+ import "./chunk-ZQIYGQCG.js";
167
164
  import {
168
165
  AgentSideConnection,
169
166
  PROTOCOL_VERSION,
@@ -172,7 +169,7 @@ import {
172
169
  import {
173
170
  assembleMcpServers,
174
171
  loadMcpApprovals
175
- } from "./chunk-2XRGFF5K.js";
172
+ } from "./chunk-4ROQY23C.js";
176
173
  import {
177
174
  OUTPUT_LANGUAGE_AUTO,
178
175
  getOutputLanguageFilePath,
@@ -183,18 +180,18 @@ import {
183
180
  resolveOutputLanguage,
184
181
  updateOutputLanguageFile,
185
182
  writeOutputLanguageAndRegisterPath
186
- } from "./chunk-C5NSOSF4.js";
183
+ } from "./chunk-GNBBAQ6J.js";
187
184
  import "./chunk-RKUWKYED.js";
188
185
  import {
189
186
  SUPPORTED_LANGUAGES,
190
187
  getCurrentLanguage,
191
188
  setLanguageAsync
192
- } from "./chunk-HIMIG6PI.js";
189
+ } from "./chunk-4AGTGMCQ.js";
193
190
  import {
194
191
  findEnvFiles,
195
192
  preResolveHomeEnvOverrides,
196
193
  reloadEnvironment
197
- } from "./chunk-336KPNNV.js";
194
+ } from "./chunk-JWICTOXS.js";
198
195
  import "./chunk-GOXKNSDZ.js";
199
196
  import {
200
197
  getSystemDefaultsPath,
@@ -205,14 +202,14 @@ import {
205
202
  isFolderTrustEnabled,
206
203
  isWorkspaceTrusted,
207
204
  loadTrustedFolders
208
- } from "./chunk-LSFVUGXT.js";
205
+ } from "./chunk-2OG646IN.js";
209
206
  import "./chunk-ALGGS7UH.js";
210
207
  import "./chunk-MR3PXB6E.js";
211
208
  import {
212
209
  writeStderrLine
213
210
  } from "./chunk-YUZI3WAC.js";
214
211
  import "./chunk-XFSFZCM5.js";
215
- import "./chunk-KTKETHMY.js";
212
+ import "./chunk-GLNHPRZT.js";
216
213
  import "./chunk-VJNBRRZG.js";
217
214
  import {
218
215
  ALL_PROVIDERS,
@@ -236,9 +233,7 @@ import {
236
233
  SESSION_ARTIFACT_PERSISTENCE_VERSION,
237
234
  SESSION_TITLE_MAX_LENGTH,
238
235
  SESSION_TRANSCRIPT_MAX_LIMIT,
239
- SESSION_TRANSCRIPT_MAX_PAGE_BYTES,
240
236
  SessionService,
241
- SessionTranscriptPageTooLargeError,
242
237
  SessionTranscriptReader,
243
238
  SessionTranscriptSnapshotUnavailableError,
244
239
  SessionTranscriptTooLargeError,
@@ -326,36 +321,35 @@ import {
326
321
  subagentGenerator,
327
322
  unregisterGoalHook,
328
323
  updateSetting
329
- } from "./chunk-3YJZ6WNY.js";
324
+ } from "./chunk-NJOFRXTM.js";
330
325
  import "./chunk-T4TZQJ7W.js";
331
326
  import {
332
327
  external_exports
333
328
  } from "./chunk-H6XPXXMH.js";
334
329
  import "./chunk-5M6IDOMF.js";
335
- import "./chunk-LKR7QQ63.js";
336
- import "./chunk-4XCVGEEX.js";
337
- import "./chunk-XSPFQQRE.js";
338
- import "./chunk-4RPARQ5D.js";
330
+ import "./chunk-A2HWMJVO.js";
331
+ import "./chunk-RCEEXIOO.js";
332
+ import "./chunk-KKRTYONM.js";
333
+ import "./chunk-TV6K2FB4.js";
339
334
  import "./chunk-E2UVIFI2.js";
340
335
  import "./chunk-XU457J4V.js";
341
336
  import "./chunk-VDDGDZMA.js";
342
- import "./chunk-J2MKYJKZ.js";
337
+ import "./chunk-SPJQO2CE.js";
343
338
  import "./chunk-SZRN75WQ.js";
344
339
  import "./chunk-HTO4JFDZ.js";
345
340
  import "./chunk-CPBF7KYF.js";
346
341
  import {
347
342
  APPROVAL_MODES,
348
- FORK_SUBAGENT_TYPE,
349
- runWithRuntimeContentGenerator
350
- } from "./chunk-VNN3JNYT.js";
343
+ FORK_SUBAGENT_TYPE
344
+ } from "./chunk-F333XEAU.js";
351
345
  import "./chunk-6AM5D4ME.js";
352
- import "./chunk-OSSDHJDU.js";
346
+ import "./chunk-2Z5UX4KI.js";
353
347
  import {
354
348
  HookEventName,
355
349
  createHookOutput
356
- } from "./chunk-SGPFJMRP.js";
357
- import "./chunk-335ECZTA.js";
358
- import "./chunk-JCJPZMJV.js";
350
+ } from "./chunk-ARKANCNX.js";
351
+ import "./chunk-L5U3ELZX.js";
352
+ import "./chunk-TYLOFD2U.js";
359
353
  import {
360
354
  AuthType,
361
355
  ConversationFinishedEvent,
@@ -366,10 +360,8 @@ import {
366
360
  endToolExecutionSpan,
367
361
  endToolSpan,
368
362
  extractDaemonTraceContext,
369
- formatFullTurnVisionNotice,
370
363
  formatVisionBridgeNotice,
371
364
  getAllGeminiMdFilenames,
372
- getFullTurnVisionModelSelector,
373
365
  getMCPServerStatus,
374
366
  hasImageParts,
375
367
  logConversationFinishedEvent,
@@ -387,58 +379,57 @@ import {
387
379
  startToolExecutionSpan,
388
380
  startToolSpan,
389
381
  uiTelemetryService,
390
- withDaemonSpan,
391
382
  withInteractionSpan
392
- } from "./chunk-66IT3EY2.js";
383
+ } from "./chunk-MQOVXZAF.js";
393
384
  import "./chunk-4WKAA4KS.js";
394
385
  import "./chunk-CR3C7WXL.js";
395
386
  import {
396
387
  runSideQuery
397
- } from "./chunk-U2LNTX56.js";
388
+ } from "./chunk-RTV5TUYB.js";
398
389
  import "./chunk-VGC4I5JJ.js";
399
390
  import {
400
391
  getAutoMemoryRoot,
401
392
  getUserAutoMemoryRoot
402
- } from "./chunk-FUTHTZVV.js";
403
- import "./chunk-4CA4WUMS.js";
404
- import "./chunk-WEPXQKGP.js";
393
+ } from "./chunk-FBU7WRZI.js";
394
+ import "./chunk-Y66VOBRP.js";
395
+ import "./chunk-WTNZ6DXB.js";
405
396
  import {
406
397
  ToolConfirmationOutcome,
407
398
  ToolNames,
408
399
  isShellProgressData
409
- } from "./chunk-ANRANWVE.js";
400
+ } from "./chunk-JGUT3LWZ.js";
410
401
  import {
411
402
  clearCachedCredentialFile,
412
403
  qwenOAuth2Events
413
- } from "./chunk-G274ETR6.js";
414
- import "./chunk-Z2LBNX3R.js";
404
+ } from "./chunk-OKAIGAYW.js";
405
+ import "./chunk-ZPAHLFZU.js";
415
406
  import "./chunk-JESCGQM3.js";
416
- import "./chunk-VAJS2E2D.js";
407
+ import "./chunk-WIEO4CWB.js";
417
408
  import "./chunk-XVNQMZ2I.js";
418
409
  import "./chunk-FEOZBUMT.js";
419
410
  import {
420
411
  DEFAULT_TOKEN_LIMIT,
421
412
  getToolCallPreparations,
422
413
  tokenLimit
423
- } from "./chunk-CMVFTMRD.js";
414
+ } from "./chunk-VRR65QYW.js";
424
415
  import "./chunk-A4UCTEB5.js";
425
416
  import "./chunk-XWRJCPHC.js";
426
- import "./chunk-TYQMGACW.js";
417
+ import "./chunk-4LD5APFL.js";
427
418
  import "./chunk-TYAMGABM.js";
428
419
  import "./chunk-FCMNKVXT.js";
429
420
  import "./chunk-DJ2GSRLV.js";
430
- import "./chunk-4CHDYDG3.js";
421
+ import "./chunk-LQIDP6K5.js";
431
422
  import {
432
423
  Storage,
433
424
  createDebugLogger,
434
425
  getErrorMessage,
435
426
  getErrorStatus,
436
427
  isSubpath
437
- } from "./chunk-UE5TZ55T.js";
438
- import "./chunk-S4N3G4BB.js";
428
+ } from "./chunk-7NFB7LBQ.js";
429
+ import "./chunk-QYG4BY6Q.js";
439
430
  import {
440
431
  runExitCleanup
441
- } from "./chunk-4HCYNDMG.js";
432
+ } from "./chunk-CAHY5ABC.js";
442
433
  import "./chunk-75DOP5OR.js";
443
434
  import "./chunk-DMTGGOSA.js";
444
435
  import "./chunk-YQ3U5MUC.js";
@@ -453,7 +444,6 @@ import {
453
444
  // packages/cli/src/acp-integration/acpAgent.ts
454
445
  init_esbuild_shims();
455
446
  import { randomUUID } from "node:crypto";
456
- import { performance } from "node:perf_hooks";
457
447
 
458
448
  // packages/cli/src/acp-integration/authMethods.ts
459
449
  init_esbuild_shims();
@@ -833,31 +823,6 @@ import { Buffer as Buffer2 } from "node:buffer";
833
823
  import * as os2 from "node:os";
834
824
  import * as path3 from "node:path";
835
825
 
836
- // packages/cli/src/utils/midTurnUserMessage.ts
837
- init_esbuild_shims();
838
- var MID_TURN_USER_MESSAGE_PREFIX = "\n[User message received during tool execution]: ";
839
- function prefixMidTurnUserMessageParts(parts, displayText) {
840
- const partArray = normalizePartList(parts);
841
- if (partArray.length === 0) {
842
- return [{ text: `${MID_TURN_USER_MESSAGE_PREFIX}${displayText}` }];
843
- }
844
- const [firstPart, ...rest] = partArray;
845
- if ("text" in firstPart && typeof firstPart.text === "string") {
846
- return [
847
- {
848
- ...firstPart,
849
- text: `${MID_TURN_USER_MESSAGE_PREFIX}${firstPart.text}`
850
- },
851
- ...rest
852
- ];
853
- }
854
- return [
855
- { text: `${MID_TURN_USER_MESSAGE_PREFIX}${displayText}` },
856
- ...partArray
857
- ];
858
- }
859
- __name(prefixMidTurnUserMessageParts, "prefixMidTurnUserMessageParts");
860
-
861
826
  // packages/cli/src/acp-integration/session/tool-call-preparation-tracker.ts
862
827
  init_esbuild_shims();
863
828
  var ToolCallPreparationTracker = class {
@@ -2721,14 +2686,6 @@ var Session = class {
2721
2686
  );
2722
2687
  const inputText = firstTextBlock?.text || "";
2723
2688
  let parts;
2724
- let fullTurnModelOverride;
2725
- const onFullTurnModel = /* @__PURE__ */ __name((model) => {
2726
- if (fullTurnModelOverride) {
2727
- return false;
2728
- }
2729
- fullTurnModelOverride = model;
2730
- return true;
2731
- }, "onFullTurnModel");
2732
2689
  if (isContinue) {
2733
2690
  parts = continuationParts;
2734
2691
  } else if (isSlashCommand(inputText)) {
@@ -2740,9 +2697,7 @@ var Session = class {
2740
2697
  );
2741
2698
  parts = await this.#processSlashCommandResult(
2742
2699
  slashCommandResult,
2743
- params.prompt,
2744
- pendingSend.signal,
2745
- onFullTurnModel
2700
+ params.prompt
2746
2701
  );
2747
2702
  if (parts === null) {
2748
2703
  return { stopReason: "end_turn" };
@@ -2751,7 +2706,7 @@ var Session = class {
2751
2706
  parts = await this.#resolvePrompt(
2752
2707
  params.prompt,
2753
2708
  pendingSend.signal,
2754
- { promptLast: true, onFullTurnModel }
2709
+ { promptLast: true }
2755
2710
  );
2756
2711
  }
2757
2712
  const hooksEnabled = !this.config.getDisableAllHooks?.();
@@ -2838,8 +2793,7 @@ ${this.pendingWorktreeNotice}
2838
2793
  const sendResult = await this.#sendMessageStreamWithAutoCompression(
2839
2794
  promptId,
2840
2795
  nextMessage?.parts ?? [],
2841
- pendingSend.signal,
2842
- { modelOverride: fullTurnModelOverride }
2796
+ pendingSend.signal
2843
2797
  );
2844
2798
  if (!sendResult.responseStream) {
2845
2799
  this.#preserveUnsentMessageHistory(
@@ -2947,14 +2901,11 @@ ${this.pendingWorktreeNotice}
2947
2901
  );
2948
2902
  }
2949
2903
  if (functionCalls.length > 0) {
2950
- const toolRun = await this.#runWithFullTurnModel(
2951
- fullTurnModelOverride,
2952
- () => this.runToolCalls(
2953
- pendingSend.signal,
2954
- promptId,
2955
- functionCalls,
2956
- toolLoopState
2957
- )
2904
+ const toolRun = await this.runToolCalls(
2905
+ pendingSend.signal,
2906
+ promptId,
2907
+ functionCalls,
2908
+ toolLoopState
2958
2909
  );
2959
2910
  if (toolRun.stopAfterPermissionCancel) {
2960
2911
  await this.#preserveStoppedToolRun(
@@ -2965,8 +2916,7 @@ ${this.pendingWorktreeNotice}
2965
2916
  }
2966
2917
  nextMessage = await this.#buildNextMessageAfterToolRun(
2967
2918
  toolRun,
2968
- pendingSend.signal,
2969
- onFullTurnModel
2919
+ pendingSend.signal
2970
2920
  );
2971
2921
  if (toolRun.loopDetected) {
2972
2922
  await this.#preserveStoppedToolRun(
@@ -2984,8 +2934,7 @@ ${this.pendingWorktreeNotice}
2984
2934
  pendingSend,
2985
2935
  promptId,
2986
2936
  hooksEnabled,
2987
- messageBus,
2988
- fullTurnModelOverride
2937
+ messageBus
2989
2938
  );
2990
2939
  } finally {
2991
2940
  logConversationFinishedEvent(
@@ -3014,17 +2963,10 @@ ${this.pendingWorktreeNotice}
3014
2963
  * @param messageBus - The MessageBus for hook communication (may be undefined)
3015
2964
  * @returns The ACP stop reason for the prompt.
3016
2965
  */
3017
- async #handleStopHookLoop(pendingSend, promptId, hooksEnabled, messageBus, modelOverride) {
2966
+ async #handleStopHookLoop(pendingSend, promptId, hooksEnabled, messageBus) {
3018
2967
  const stopHookBlockingCap = this.config.getStopHookBlockingCap();
3019
2968
  let stopHookIterationCount = 0;
3020
2969
  let stopHookReasons = [];
3021
- const onFullTurnModel = /* @__PURE__ */ __name((model) => {
3022
- if (modelOverride) {
3023
- return false;
3024
- }
3025
- modelOverride = model;
3026
- return true;
3027
- }, "onFullTurnModel");
3028
2970
  while (stopHookIterationCount < stopHookBlockingCap) {
3029
2971
  if (!hooksEnabled || !messageBus || pendingSend.signal.aborted || !this.config.hasHooksForEvent?.("Stop")) {
3030
2972
  return { stopReason: "end_turn" };
@@ -3104,10 +3046,7 @@ ${this.pendingWorktreeNotice}
3104
3046
  promptId + "_stop_hook_" + stopHookIterationCount,
3105
3047
  nextMessage?.parts ?? [],
3106
3048
  pendingSend.signal,
3107
- {
3108
- skipCompression: stopHookIterationCount > 1,
3109
- modelOverride
3110
- }
3049
+ { skipCompression: stopHookIterationCount > 1 }
3111
3050
  );
3112
3051
  if (!continueSendResult.responseStream) {
3113
3052
  this.#preserveUnsentMessageHistory(
@@ -3201,14 +3140,11 @@ ${this.pendingWorktreeNotice}
3201
3140
  );
3202
3141
  }
3203
3142
  if (functionCalls.length > 0) {
3204
- const toolRun = await this.#runWithFullTurnModel(
3205
- modelOverride,
3206
- () => this.runToolCalls(
3207
- pendingSend.signal,
3208
- promptId,
3209
- functionCalls,
3210
- toolLoopState
3211
- )
3143
+ const toolRun = await this.runToolCalls(
3144
+ pendingSend.signal,
3145
+ promptId,
3146
+ functionCalls,
3147
+ toolLoopState
3212
3148
  );
3213
3149
  if (toolRun.stopAfterPermissionCancel) {
3214
3150
  await this.#preserveStoppedToolRun(toolRun, pendingSend.signal);
@@ -3216,8 +3152,7 @@ ${this.pendingWorktreeNotice}
3216
3152
  }
3217
3153
  nextMessage = await this.#buildNextMessageAfterToolRun(
3218
3154
  toolRun,
3219
- pendingSend.signal,
3220
- onFullTurnModel
3155
+ pendingSend.signal
3221
3156
  );
3222
3157
  if (toolRun.loopDetected) {
3223
3158
  await this.#preserveStoppedToolRun(toolRun, pendingSend.signal);
@@ -3241,13 +3176,6 @@ ${this.pendingWorktreeNotice}
3241
3176
  #getCurrentChat() {
3242
3177
  return this.config.getGeminiClient().getChat();
3243
3178
  }
3244
- async #runWithFullTurnModel(modelOverride, fn) {
3245
- if (!modelOverride?.endsWith("\0")) {
3246
- return fn();
3247
- }
3248
- const runtimeView = await this.config.getBaseLlmClient().resolveForModel(modelOverride.slice(0, -1), { failClosed: true });
3249
- return runWithRuntimeContentGenerator(runtimeView, fn);
3250
- }
3251
3179
  /**
3252
3180
  * Mirrors the core send path for ACP model sends.
3253
3181
  *
@@ -3282,7 +3210,7 @@ ${this.pendingWorktreeNotice}
3282
3210
  const geminiClient = this.config.getGeminiClient();
3283
3211
  let compressionDiagnostic = null;
3284
3212
  let compressionInfo = null;
3285
- if (!options.skipCompression && !options.modelOverride) {
3213
+ if (!options.skipCompression) {
3286
3214
  try {
3287
3215
  const compressed = await geminiClient.tryCompressChat(
3288
3216
  promptId,
@@ -3340,7 +3268,7 @@ ${this.pendingWorktreeNotice}
3340
3268
  return { responseStream: null, stopReason: "cancelled" };
3341
3269
  }
3342
3270
  const responseStream = await this.#getCurrentChat().sendMessageStream(
3343
- options.modelOverride ?? this.config.getModel(),
3271
+ this.config.getModel(),
3344
3272
  {
3345
3273
  message,
3346
3274
  config: {
@@ -3387,7 +3315,7 @@ ${this.pendingWorktreeNotice}
3387
3315
  );
3388
3316
  await this.messageRewriter?.waitForPendingRewrites();
3389
3317
  }
3390
- async #buildNextMessageAfterToolRun(toolRun, abortSignal, onFullTurnModel) {
3318
+ async #buildNextMessageAfterToolRun(toolRun, abortSignal) {
3391
3319
  if (toolRun.loopDetected) {
3392
3320
  debugLogger6.debug("Stopping ACP turn after daemon loop detection.");
3393
3321
  return null;
@@ -3400,7 +3328,7 @@ ${this.pendingWorktreeNotice}
3400
3328
  }
3401
3329
  const parts = [
3402
3330
  ...toolRun.parts,
3403
- ...await this.#drainMidTurnUserMessages(abortSignal, onFullTurnModel)
3331
+ ...await this.#drainMidTurnUserMessages(abortSignal)
3404
3332
  ];
3405
3333
  return { role: "user", parts };
3406
3334
  }
@@ -3480,10 +3408,10 @@ ${this.pendingWorktreeNotice}
3480
3408
  content: { type: "text", text }
3481
3409
  });
3482
3410
  }
3483
- async #drainMidTurnUserMessages(abortSignal, onFullTurnModel) {
3411
+ async #drainMidTurnUserMessages(abortSignal) {
3484
3412
  const recovered = this.#takeRecoveredMidTurnMessages();
3485
3413
  if (this.midTurnDrainUnavailable) {
3486
- return this.#buildMidTurnParts(recovered, abortSignal, onFullTurnModel);
3414
+ return this.#buildMidTurnParts(recovered, abortSignal);
3487
3415
  }
3488
3416
  let drainPromise;
3489
3417
  try {
@@ -3506,8 +3434,7 @@ ${this.pendingWorktreeNotice}
3506
3434
  this.midTurnDrainTimeoutStrikes = 0;
3507
3435
  return this.#buildMidTurnParts(
3508
3436
  [...recovered, ...parseMidTurnDrainResponse(response)],
3509
- abortSignal,
3510
- onFullTurnModel
3437
+ abortSignal
3511
3438
  );
3512
3439
  } catch (error) {
3513
3440
  const errorMessage = error instanceof Error ? error.message : error && typeof error === "object" && "message" in error ? String(error.message) : String(error);
@@ -3524,7 +3451,7 @@ ${this.pendingWorktreeNotice}
3524
3451
  debugLogger6.warn(
3525
3452
  `Mid-turn queue drain ${isPermanentError ? "permanently " : ""}unavailable [session ${this.sessionId}]: ${errorMessage}`
3526
3453
  );
3527
- return this.#buildMidTurnParts(recovered, abortSignal, onFullTurnModel);
3454
+ return this.#buildMidTurnParts(recovered, abortSignal);
3528
3455
  }
3529
3456
  }
3530
3457
  /** Read and clear the buffer of messages recovered from a timed-out drain. */
@@ -3582,7 +3509,7 @@ ${this.pendingWorktreeNotice}
3582
3509
  * happens on injection (here), so a message recovered from an earlier
3583
3510
  * timed-out drain is still recorded exactly once.
3584
3511
  */
3585
- async #buildMidTurnParts(messages, abortSignal, onFullTurnModel) {
3512
+ async #buildMidTurnParts(messages, abortSignal) {
3586
3513
  const parts = [];
3587
3514
  for (const message of messages) {
3588
3515
  const displayText = message.kind === "text" ? message.message : message.displayText;
@@ -3591,9 +3518,7 @@ ${this.pendingWorktreeNotice}
3591
3518
  rawParts = message.kind === "text" ? [{ text: message.message }] : await withTimeoutSignal(
3592
3519
  abortSignal,
3593
3520
  MID_TURN_QUEUE_RESOLVE_TIMEOUT_MS,
3594
- (signal) => this.#resolvePrompt(message.content, signal, {
3595
- onFullTurnModel
3596
- })
3521
+ (signal) => this.#resolvePrompt(message.content, signal)
3597
3522
  );
3598
3523
  } catch (messageError) {
3599
3524
  if (abortSignal.aborted) return parts;
@@ -4359,17 +4284,7 @@ ${this.pendingWorktreeNotice}
4359
4284
  if (!rawModelId) {
4360
4285
  throw RequestError.invalidParams(void 0, "modelId cannot be empty");
4361
4286
  }
4362
- const resolvedRoute = resolveAcpModelOption(
4363
- rawModelId,
4364
- this.config.getAllConfiguredModels()
4365
- );
4366
- if (!resolvedRoute && rawModelId.startsWith(ACP_ROUTE_ID_PREFIX)) {
4367
- throw RequestError.invalidParams(
4368
- void 0,
4369
- `Unknown or stale model route: "${rawModelId}"`
4370
- );
4371
- }
4372
- const parsed = resolvedRoute ?? parseAcpModelOption(rawModelId);
4287
+ const parsed = parseAcpModelOption(rawModelId);
4373
4288
  const previousAuthType = this.config.getAuthType?.();
4374
4289
  const selectedAuthType = parsed.authType ?? previousAuthType;
4375
4290
  if (!selectedAuthType) {
@@ -4378,49 +4293,29 @@ ${this.pendingWorktreeNotice}
4378
4293
  `authType cannot be determined for modelId "${parsed.modelId}"`
4379
4294
  );
4380
4295
  }
4381
- const requireCachedCredentials = selectedAuthType !== previousAuthType && selectedAuthType === "qwen-oauth" /* QWEN_OAUTH */;
4382
- const switchOptions = resolvedRoute?.baseUrl !== void 0 || requireCachedCredentials ? {
4383
- ...resolvedRoute?.baseUrl !== void 0 ? { baseUrl: resolvedRoute.baseUrl } : {},
4384
- ...requireCachedCredentials ? { requireCachedCredentials: true } : {}
4385
- } : void 0;
4386
4296
  await this.config.switchModel(
4387
4297
  selectedAuthType,
4388
4298
  parsed.modelId,
4389
- switchOptions
4299
+ selectedAuthType !== previousAuthType && selectedAuthType === "qwen-oauth" /* QWEN_OAUTH */ ? { requireCachedCredentials: true } : void 0
4390
4300
  );
4391
4301
  const after = this.config.getContentGeneratorConfig?.();
4392
4302
  const effectiveAuthType = after?.authType ?? selectedAuthType;
4393
4303
  const effectiveModelId = after?.model ?? parsed.modelId;
4394
- const activeRuntimeSnapshot = this.config.getActiveRuntimeModelSnapshot?.();
4395
- const currentAcpModelId = getCurrentAcpModelId(
4396
- buildAcpModelOptions(this.config.getAllConfiguredModels()),
4397
- activeRuntimeSnapshot?.id ?? effectiveModelId,
4398
- activeRuntimeSnapshot?.authType ?? effectiveAuthType,
4399
- activeRuntimeSnapshot ? void 0 : resolvedRoute ? resolvedRoute.registryBaseUrl : this.config.getCurrentModelRegistryBaseUrl?.()
4400
- );
4401
4304
  void this.client.extNotification("qwen/notify/session/model-update", {
4402
4305
  v: 1,
4403
4306
  sessionId: this.sessionId,
4404
- currentModelId: currentAcpModelId
4307
+ currentModelId: effectiveModelId
4405
4308
  }).catch((error) => {
4406
4309
  debugLogger6.debug("model-update extNotification failed", error);
4407
4310
  });
4408
4311
  if (options.persistDefault ?? true) {
4409
4312
  const persistScope = getPersistScopeForModelSelection(this.settings);
4410
- this.settings.setValue(
4411
- persistScope,
4412
- "model.name",
4413
- resolvedRoute?.isRuntime ? resolvedRoute.modelId : effectiveModelId
4414
- );
4415
- this.settings.setValue(
4416
- persistScope,
4417
- "model.baseUrl",
4418
- resolvedRoute && !resolvedRoute.isRuntime ? resolvedRoute.baseUrl ?? "" : ""
4419
- );
4313
+ this.settings.setValue(persistScope, "model.name", parsed.modelId);
4314
+ this.settings.setValue(persistScope, "model.baseUrl", "");
4420
4315
  this.settings.setValue(
4421
4316
  persistScope,
4422
4317
  "security.auth.selectedType",
4423
- effectiveAuthType
4318
+ selectedAuthType
4424
4319
  );
4425
4320
  }
4426
4321
  return {
@@ -4430,7 +4325,7 @@ ${this.pendingWorktreeNotice}
4430
4325
  modelId: effectiveModelId,
4431
4326
  baseUrl: after?.baseUrl ?? "(default)",
4432
4327
  apiKey: maskApiKeyForDisplay(after?.apiKey),
4433
- isRuntime: resolvedRoute?.isRuntime ?? rawModelId.startsWith("$runtime|")
4328
+ isRuntime: rawModelId.startsWith("$runtime|")
4434
4329
  }
4435
4330
  }
4436
4331
  };
@@ -4439,29 +4334,33 @@ ${this.pendingWorktreeNotice}
4439
4334
  * Sends a current_mode_update notification to the client.
4440
4335
  * Called after the agent switches modes (e.g., from exit_plan_mode tool).
4441
4336
  */
4442
- async sendCurrentModeUpdateNotification() {
4443
- const newModeId = this.config.getApprovalMode();
4337
+ async sendCurrentModeUpdateNotification(outcome) {
4338
+ let newModeId;
4339
+ switch (outcome) {
4340
+ case "proceed_always" /* ProceedAlways */:
4341
+ newModeId = "auto-edit";
4342
+ break;
4343
+ case "restore_previous" /* RestorePrevious */:
4344
+ newModeId = this.config.getApprovalMode();
4345
+ break;
4346
+ case "proceed_once" /* ProceedOnce */:
4347
+ default:
4348
+ newModeId = "default";
4349
+ break;
4350
+ }
4444
4351
  const update = {
4445
4352
  sessionUpdate: "current_mode_update",
4446
4353
  currentModeId: newModeId
4447
4354
  };
4448
- let legacyFrameSent = false;
4449
- try {
4450
- await this.sendUpdate(update);
4451
- legacyFrameSent = true;
4452
- } catch (error) {
4453
- debugLogger6.debug("current_mode_update notification failed", error);
4454
- }
4455
- try {
4456
- await this.client.extNotification("qwen/notify/session/mode-update", {
4457
- v: 1,
4458
- sessionId: this.sessionId,
4459
- currentModeId: newModeId,
4460
- legacyFrameSent
4461
- });
4462
- } catch (error) {
4355
+ await this.sendUpdate(update);
4356
+ void this.client.extNotification("qwen/notify/session/mode-update", {
4357
+ v: 1,
4358
+ sessionId: this.sessionId,
4359
+ currentModeId: newModeId,
4360
+ legacyFrameSent: true
4361
+ }).catch((error) => {
4463
4362
  debugLogger6.debug("mode-update extNotification failed", error);
4464
- }
4363
+ });
4465
4364
  }
4466
4365
  /**
4467
4366
  * Execute a batch of model-returned tool calls, running Agent calls
@@ -5069,13 +4968,7 @@ ${this.pendingWorktreeNotice}
5069
4968
  toolName,
5070
4969
  toolParams
5071
4970
  );
5072
- const {
5073
- finalPermission,
5074
- pmForcedAsk,
5075
- pmCtx,
5076
- denyMessage,
5077
- requiresUserInteraction
5078
- } = flowResult;
4971
+ const { finalPermission, pmForcedAsk, pmCtx, denyMessage } = flowResult;
5079
4972
  const isPlanMode = approvalMode === "plan" /* PLAN */;
5080
4973
  if (finalPermission === "deny") {
5081
4974
  return earlyErrorResponse(
@@ -5100,7 +4993,7 @@ ${this.pendingWorktreeNotice}
5100
4993
  );
5101
4994
  }
5102
4995
  let wasAutoModeDenialFallback = false;
5103
- if (!autoModeAllowed && !requiresUserInteraction && shouldRunAutoModeForCall(approvalMode, toolName)) {
4996
+ if (!autoModeAllowed && shouldRunAutoModeForCall(approvalMode, toolName)) {
5104
4997
  const denialState = this.config.getAutoModeDenialState();
5105
4998
  const fallback = shouldFallback(denialState);
5106
4999
  const messages = this.config.getGeminiClient?.()?.getHistoryTail(MAX_TRANSCRIPT_MESSAGES, false) ?? [];
@@ -5173,12 +5066,7 @@ ${this.pendingWorktreeNotice}
5173
5066
  this.config.setAutoModeDenialState(after);
5174
5067
  }
5175
5068
  }, "recordAutoModeFallbackResolution");
5176
- if (!autoModeAllowed && needsConfirmation(
5177
- confirmationPermission,
5178
- approvalMode,
5179
- toolName,
5180
- requiresUserInteraction
5181
- )) {
5069
+ if (!autoModeAllowed && needsConfirmation(confirmationPermission, approvalMode, toolName)) {
5182
5070
  confirmationDetails = await invocation.getConfirmationDetails(abortSignal);
5183
5071
  injectPermissionRulesIfMissing(confirmationDetails, pmCtx);
5184
5072
  if (isPlanModeBlocked(
@@ -5205,7 +5093,7 @@ ${this.pendingWorktreeNotice}
5205
5093
  args,
5206
5094
  String(approvalMode)
5207
5095
  );
5208
- if (hookResult.hasDecision && (!hookResult.shouldAllow || !requiresUserInteraction)) {
5096
+ if (hookResult.hasDecision) {
5209
5097
  hookHandled = true;
5210
5098
  if (hookResult.shouldAllow) {
5211
5099
  if (hookResult.updatedInput) {
@@ -5228,7 +5116,7 @@ ${this.pendingWorktreeNotice}
5228
5116
  }
5229
5117
  }
5230
5118
  }
5231
- if (!requiresUserInteraction && approvalMode === "auto-edit" /* AUTO_EDIT */ && (confirmationDetails.type === "edit" || confirmationDetails.type === "info")) {
5119
+ if (approvalMode === "auto-edit" /* AUTO_EDIT */ && (confirmationDetails.type === "edit" || confirmationDetails.type === "info")) {
5232
5120
  } else if (!hookHandled) {
5233
5121
  didRequestPermission = true;
5234
5122
  const content = buildPermissionRequestContent(confirmationDetails);
@@ -5296,11 +5184,12 @@ ${this.pendingWorktreeNotice}
5296
5184
  );
5297
5185
  }
5298
5186
  onStopAfterPermissionCancel?.();
5299
- const permissionFailureMessage = isExitPlanModeTool ? "The host could not present plan-exit approval. Plan mode remains active; use the host mode selector or /plan exit to leave plan mode." : `Permission request failed for "${toolName}": ${this.#formatError(
5300
- error
5301
- )}`;
5302
5187
  return earlyErrorResponse(
5303
- new Error(permissionFailureMessage),
5188
+ new Error(
5189
+ `Permission request failed for "${toolName}": ${this.#formatError(
5190
+ error
5191
+ )}`
5192
+ ),
5304
5193
  toolName,
5305
5194
  { stopAfterPermissionCancel: true }
5306
5195
  );
@@ -5329,8 +5218,11 @@ ${this.pendingWorktreeNotice}
5329
5218
  { answers: output.answers }
5330
5219
  );
5331
5220
  }
5221
+ if (isExitPlanModeTool && outcome !== "cancel" /* Cancel */) {
5222
+ await this.sendCurrentModeUpdateNotification(outcome);
5223
+ }
5332
5224
  if (confirmationDetails.type === "edit" && outcome === "proceed_always" /* ProceedAlways */) {
5333
- await this.sendCurrentModeUpdateNotification();
5225
+ await this.sendCurrentModeUpdateNotification(outcome);
5334
5226
  }
5335
5227
  switch (outcome) {
5336
5228
  case "cancel" /* Cancel */:
@@ -5450,8 +5342,11 @@ ${this.pendingWorktreeNotice}
5450
5342
  throw execError;
5451
5343
  }
5452
5344
  cleanupAgentToolResources();
5453
- if ((isEnterPlanModeTool || isExitPlanModeTool) && !toolResult.error && this.config.getApprovalMode() !== approvalMode) {
5454
- await this.sendCurrentModeUpdateNotification();
5345
+ if ((isEnterPlanModeTool || isExitPlanModeTool) && !didRequestPermission && !toolResult.error && this.config.getApprovalMode() !== approvalMode) {
5346
+ await this.sendUpdate({
5347
+ sessionUpdate: "current_mode_update",
5348
+ currentModeId: this.config.getApprovalMode()
5349
+ });
5455
5350
  }
5456
5351
  const responseParts = toolResult.error ? convertToFunctionErrorResponse(
5457
5352
  toolName,
@@ -5690,15 +5585,11 @@ ${this.pendingWorktreeNotice}
5690
5585
  * @param originalPrompt The original prompt blocks
5691
5586
  * @returns Parts to use for the prompt, or null if command was handled without needing model interaction
5692
5587
  */
5693
- async #processSlashCommandResult(result, originalPrompt, abortSignal, onFullTurnModel) {
5588
+ async #processSlashCommandResult(result, originalPrompt) {
5694
5589
  this.#emitGoalStatusItems(result);
5695
5590
  switch (result.type) {
5696
5591
  case "submit_prompt":
5697
- return this.#applyBridgeConversionsIfNeeded(
5698
- normalizePartList(result.content),
5699
- abortSignal,
5700
- onFullTurnModel
5701
- );
5592
+ return normalizePartList(result.content);
5702
5593
  case "message": {
5703
5594
  if (result.messageType === "error") {
5704
5595
  throw new Error(result.content || "Slash command failed.");
@@ -5741,10 +5632,11 @@ ${this.pendingWorktreeNotice}
5741
5632
  throw new Error(unsupportedError);
5742
5633
  }
5743
5634
  case "no_command":
5744
- return this.#resolvePrompt(originalPrompt, abortSignal, {
5745
- promptLast: true,
5746
- onFullTurnModel
5747
- });
5635
+ return this.#resolvePrompt(
5636
+ originalPrompt,
5637
+ new AbortController().signal,
5638
+ { promptLast: true }
5639
+ );
5748
5640
  default: {
5749
5641
  const _exhaustive = result;
5750
5642
  const unknownError = `Unknown slash command result type: ${_exhaustive.type}`;
@@ -5818,17 +5710,12 @@ ${this.pendingWorktreeNotice}
5818
5710
  );
5819
5711
  const mcpServerParts = this.#resolveMcpServerMentionParts(mcpServerMentions);
5820
5712
  if (atPathCommandParts.length === 0 && embeddedContext.length === 0 && extensionParts.length === 0 && mcpServerParts.length === 0) {
5821
- return this.#applyBridgeConversionsIfNeeded(
5822
- parts,
5823
- abortSignal,
5824
- options.onFullTurnModel
5825
- );
5713
+ return this.#applyBridgeConversionsIfNeeded(parts, abortSignal);
5826
5714
  }
5827
5715
  if (atPathCommandParts.length === 0 && embeddedContext.length === 0) {
5828
5716
  return this.#applyBridgeConversionsIfNeeded(
5829
5717
  [...parts, ...extensionParts, ...mcpServerParts],
5830
- abortSignal,
5831
- options.onFullTurnModel
5718
+ abortSignal
5832
5719
  );
5833
5720
  }
5834
5721
  const pathSpecsToRead = atPathCommandParts.map(
@@ -5889,11 +5776,10 @@ ${contextPart.text}`
5889
5776
  const processedQueryParts = options.promptLast ? [...referenceParts, promptPart] : [promptPart, ...referenceParts];
5890
5777
  return this.#applyBridgeConversionsIfNeeded(
5891
5778
  processedQueryParts,
5892
- abortSignal,
5893
- options.onFullTurnModel
5779
+ abortSignal
5894
5780
  );
5895
5781
  }
5896
- async #applyBridgeConversionsIfNeeded(originalParts, abortSignal, onFullTurnModel) {
5782
+ async #applyBridgeConversionsIfNeeded(originalParts, abortSignal) {
5897
5783
  const parts = await this.#applyVoiceBridgeIfNeeded(
5898
5784
  originalParts,
5899
5785
  abortSignal
@@ -5901,28 +5787,6 @@ ${contextPart.text}`
5901
5787
  if (!hasImageParts(parts) || !shouldRunVisionBridge(this.config)) {
5902
5788
  return parts;
5903
5789
  }
5904
- const fullTurnModel = this.config.getDefaultVisionBridgeModel();
5905
- if (onFullTurnModel && fullTurnModel?.agentCapable) {
5906
- const fullTurnParts = parts.map((part) => clampInlineMediaPart(part));
5907
- if (!hasImageParts(fullTurnParts)) {
5908
- return fullTurnParts;
5909
- }
5910
- const selected = onFullTurnModel(
5911
- getFullTurnVisionModelSelector(fullTurnModel)
5912
- );
5913
- if (selected) {
5914
- try {
5915
- await this.messageEmitter.emitAgentMessage(
5916
- formatFullTurnVisionNotice(fullTurnModel)
5917
- );
5918
- } catch (error) {
5919
- debugLogger6.debug(
5920
- `full-turn vision: failed to emit notice; continuing error=${error instanceof Error ? error.message : String(error)}`
5921
- );
5922
- }
5923
- }
5924
- return fullTurnParts;
5925
- }
5926
5790
  let bridgeResult;
5927
5791
  try {
5928
5792
  debugLogger6.debug("vision bridge: gate matched, running conversion");
@@ -6262,56 +6126,6 @@ var POSIX_TMP_LOCAL_READ_ROOT = "/tmp";
6262
6126
  var BTW_CHILD_TIMEOUT_MS = 55e3;
6263
6127
  var MCP_OAUTH_START_TIMEOUT_MS = 3e4;
6264
6128
  var WORKSPACE_MEMORY_REMEMBER_CHILD_TIMEOUT_MS = 295e3;
6265
- function createAcpSessionStartProfiler(span) {
6266
- let failedStage;
6267
- const setAttribute = /* @__PURE__ */ __name((name, value) => {
6268
- try {
6269
- span?.setAttribute(name, value);
6270
- } catch {
6271
- }
6272
- }, "setAttribute");
6273
- const recordStage = /* @__PURE__ */ __name((stage, start) => {
6274
- const durationMs = Math.round((performance.now() - start) * 100) / 100;
6275
- if (Number.isFinite(durationMs) && durationMs >= 0) {
6276
- setAttribute(`qwen-code.daemon.session_start.${stage}_ms`, durationMs);
6277
- }
6278
- }, "recordStage");
6279
- const recordFailure = /* @__PURE__ */ __name((stage) => {
6280
- if (failedStage !== void 0) return;
6281
- failedStage = stage;
6282
- setAttribute("qwen-code.daemon.session_start.failed_stage", stage);
6283
- }, "recordFailure");
6284
- return {
6285
- async time(stage, fn) {
6286
- if (!span) return await fn();
6287
- const start = performance.now();
6288
- try {
6289
- return await fn();
6290
- } catch (error) {
6291
- recordFailure(stage);
6292
- throw error;
6293
- } finally {
6294
- recordStage(stage, start);
6295
- }
6296
- },
6297
- timeSync(stage, fn) {
6298
- if (!span) return fn();
6299
- const start = performance.now();
6300
- try {
6301
- return fn();
6302
- } catch (error) {
6303
- recordFailure(stage);
6304
- throw error;
6305
- } finally {
6306
- recordStage(stage, start);
6307
- }
6308
- },
6309
- setSessionId(sessionId) {
6310
- setAttribute("session.id", sessionId);
6311
- }
6312
- };
6313
- }
6314
- __name(createAcpSessionStartProfiler, "createAcpSessionStartProfiler");
6315
6129
  function workspaceMemoryErrorData(code, diagnostics) {
6316
6130
  return {
6317
6131
  errorKind: code,
@@ -6392,40 +6206,6 @@ function isBulkLoadReplayRequest(params) {
6392
6206
  return meta?.[LOAD_REPLAY_MODE_META_KEY] === LOAD_REPLAY_BULK_MODE;
6393
6207
  }
6394
6208
  __name(isBulkLoadReplayRequest, "isBulkLoadReplayRequest");
6395
- function getLoadReplayPageSize(params) {
6396
- const meta = isObjectRecord(params._meta) ? params._meta : void 0;
6397
- const value = meta?.[LOAD_REPLAY_PAGE_SIZE_META_KEY];
6398
- if (value === void 0) return void 0;
6399
- if (!Number.isSafeInteger(value) || value < 1 || value > SESSION_TRANSCRIPT_MAX_LIMIT) {
6400
- throw RequestError.invalidParams(
6401
- void 0,
6402
- `Invalid load replay page size; expected 1..${SESSION_TRANSCRIPT_MAX_LIMIT}`
6403
- );
6404
- }
6405
- return value;
6406
- }
6407
- __name(getLoadReplayPageSize, "getLoadReplayPageSize");
6408
- function isHistoryTurnStart(record) {
6409
- return record.type === "user" && record.subtype !== "mid_turn_user_message";
6410
- }
6411
- __name(isHistoryTurnStart, "isHistoryTurnStart");
6412
- function selectRecentHistoryRecords(records, pageSize) {
6413
- if (pageSize === void 0 || records.length <= pageSize) {
6414
- return { records, hasMore: false };
6415
- }
6416
- let start = records.length - pageSize;
6417
- for (let i = start; i < records.length; i++) {
6418
- if (isHistoryTurnStart(records[i])) {
6419
- start = i;
6420
- break;
6421
- }
6422
- }
6423
- while (start > 0 && !isHistoryTurnStart(records[start])) {
6424
- start--;
6425
- }
6426
- return { records: records.slice(start), hasMore: start > 0 };
6427
- }
6428
- __name(selectRecentHistoryRecords, "selectRecentHistoryRecords");
6429
6209
  function createHiddenWorkspaceMemoryConfig(config) {
6430
6210
  return new Proxy(config, {
6431
6211
  get(target, prop) {
@@ -8434,7 +8214,7 @@ var QwenAgent = class {
8434
8214
  async initialize(args) {
8435
8215
  this.clientCapabilities = args.clientCapabilities;
8436
8216
  const authMethods = buildAuthMethods();
8437
- const version = "0.19.11-nightly.20260718.767a32484";
8217
+ const version = "0.19.11";
8438
8218
  return {
8439
8219
  protocolVersion: PROTOCOL_VERSION,
8440
8220
  agentInfo: {
@@ -8490,42 +8270,25 @@ var QwenAgent = class {
8490
8270
  }
8491
8271
  }
8492
8272
  }
8493
- async newSession(params) {
8494
- const { cwd, mcpServers } = params;
8495
- const parentContext = extractDaemonTraceContext(params);
8496
- return await withDaemonSpan(
8497
- "qwen-code.daemon.session_start",
8498
- { "qwen-code.daemon.operation": "acp_session_new" },
8499
- async (span) => {
8500
- const profiler = createAcpSessionStartProfiler(span);
8501
- const settings = profiler.timeSync(
8502
- "settings_load",
8503
- () => loadSettingsCached(cwd)
8504
- );
8505
- this.settings = settings;
8506
- const config = await profiler.time(
8507
- "config_setup",
8508
- () => this.newSessionConfig(cwd, mcpServers, settings)
8509
- );
8510
- await profiler.time("auth", () => this.ensureAuthenticated(config));
8511
- profiler.timeSync(
8512
- "file_system_setup",
8513
- () => this.setupFileSystem(config)
8514
- );
8515
- const session = await profiler.time(
8516
- "session_register",
8517
- () => this.createAndStoreSession(config, settings)
8518
- );
8519
- profiler.setSessionId(session.getId());
8520
- return profiler.timeSync("response_build", () => ({
8521
- sessionId: session.getId(),
8522
- models: this.buildAvailableModels(config),
8523
- modes: this.buildModesData(config),
8524
- configOptions: this.buildConfigOptions(config)
8525
- }));
8526
- },
8527
- parentContext ? { parentContext } : {}
8528
- );
8273
+ async newSession({
8274
+ cwd,
8275
+ mcpServers
8276
+ }) {
8277
+ const settings = loadSettingsCached(cwd);
8278
+ this.settings = settings;
8279
+ const config = await this.newSessionConfig(cwd, mcpServers, settings);
8280
+ await this.ensureAuthenticated(config);
8281
+ this.setupFileSystem(config);
8282
+ const session = await this.createAndStoreSession(config, settings);
8283
+ const availableModels = this.buildAvailableModels(config);
8284
+ const modesData = this.buildModesData(config);
8285
+ const configOptions = this.buildConfigOptions(config);
8286
+ return {
8287
+ sessionId: session.getId(),
8288
+ models: availableModels,
8289
+ modes: modesData,
8290
+ configOptions
8291
+ };
8529
8292
  }
8530
8293
  async loadSession(params) {
8531
8294
  const settings = loadSettingsCached(params.cwd);
@@ -8556,7 +8319,6 @@ var QwenAgent = class {
8556
8319
  this.setupFileSystem(config);
8557
8320
  const sessionData = config.getResumedSessionData();
8558
8321
  const bulkReplay = isBulkLoadReplayRequest(params);
8559
- const replayPageSize = bulkReplay ? getLoadReplayPageSize(params) : void 0;
8560
8322
  const session = await this.createAndStoreSession(
8561
8323
  config,
8562
8324
  settings,
@@ -8570,15 +8332,11 @@ var QwenAgent = class {
8570
8332
  let replayUpdates = [];
8571
8333
  if (records) {
8572
8334
  session.primeTurnFromHistory(records);
8573
- const replayPage = selectRecentHistoryRecords(
8574
- records,
8575
- replayPageSize
8576
- );
8577
8335
  const replayUsage = createReplayCumulativeUsage();
8578
8336
  const replay = await collectHistoryReplayUpdates({
8579
8337
  sessionId: params.sessionId,
8580
8338
  config,
8581
- records: replayPage.records,
8339
+ records,
8582
8340
  gaps: sessionData?.historyGaps,
8583
8341
  cumulativeUsage: replayUsage,
8584
8342
  logger: debugLogger7
@@ -8590,15 +8348,9 @@ var QwenAgent = class {
8590
8348
  v: LOAD_REPLAY_VERSION,
8591
8349
  updates: replayUpdates,
8592
8350
  partial: true,
8593
- replayError: replay.replayError,
8594
- ...replayPage.hasMore ? { hasMore: true } : {}
8351
+ replayError: replay.replayError
8595
8352
  };
8596
8353
  }
8597
- replayEnvelope ??= {
8598
- v: LOAD_REPLAY_VERSION,
8599
- updates: replayUpdates,
8600
- ...replayPage.hasMore ? { hasMore: true } : {}
8601
- };
8602
8354
  }
8603
8355
  replayEnvelope ??= {
8604
8356
  v: LOAD_REPLAY_VERSION,
@@ -9546,18 +9298,9 @@ var QwenAgent = class {
9546
9298
  const currentModelId = activeRuntimeSnapshot ? activeRuntimeSnapshot.id : (config.getModel() || "").trim();
9547
9299
  const hasCurrentModel = currentModelId.length > 0;
9548
9300
  const currentAuth = activeRuntimeSnapshot?.authType ?? currentAuthType;
9549
- const modelOptions = buildAcpModelOptions(
9550
- config.getAllConfiguredModels()
9551
- );
9552
- const currentAcpModelId = hasCurrentModel ? getCurrentAcpModelId(
9553
- modelOptions,
9554
- currentModelId,
9555
- currentAuth,
9556
- activeRuntimeSnapshot ? void 0 : config.getCurrentModelRegistryBaseUrl?.()
9557
- ) : void 0;
9301
+ const currentAcpModelId = hasCurrentModel && currentAuth ? formatAcpModelId(currentModelId, currentAuth) : currentModelId || void 0;
9558
9302
  const providers = /* @__PURE__ */ new Map();
9559
- for (const option of modelOptions) {
9560
- const { model, effectiveModelId, modelId } = option;
9303
+ for (const model of config.getAllConfiguredModels().filter(isMainSelectableModel)) {
9561
9304
  const authType = String(model.authType);
9562
9305
  let provider = providers.get(authType);
9563
9306
  if (!provider) {
@@ -9570,7 +9313,9 @@ var QwenAgent = class {
9570
9313
  };
9571
9314
  providers.set(authType, provider);
9572
9315
  }
9573
- const isCurrent = currentAuth === model.authType && currentAcpModelId === modelId;
9316
+ const effectiveModelId = model.isRuntimeModel && model.runtimeSnapshotId ? model.runtimeSnapshotId : model.id;
9317
+ const modelId = formatAcpModelId(effectiveModelId, model.authType);
9318
+ const isCurrent = currentAuth === model.authType && hasCurrentModel && (currentModelId === effectiveModelId || currentModelId === model.id || currentAcpModelId === modelId);
9574
9319
  const providerModel = {
9575
9320
  modelId,
9576
9321
  baseModelId: parseAcpBaseModelId(effectiveModelId),
@@ -10771,19 +10516,6 @@ var QwenAgent = class {
10771
10516
  "Invalid transcript cursor"
10772
10517
  );
10773
10518
  }
10774
- const rawBeforeRecordId = params["beforeRecordId"];
10775
- if (rawBeforeRecordId !== void 0 && (typeof rawBeforeRecordId !== "string" || rawBeforeRecordId.length === 0)) {
10776
- throw RequestError.invalidParams(
10777
- void 0,
10778
- "Invalid transcript record boundary"
10779
- );
10780
- }
10781
- if (rawCursor !== void 0 && rawBeforeRecordId !== void 0) {
10782
- throw RequestError.invalidParams(
10783
- void 0,
10784
- "Transcript cursor and record boundary are mutually exclusive"
10785
- );
10786
- }
10787
10519
  const rawLimit = params["limit"];
10788
10520
  if (rawLimit !== void 0 && (!Number.isSafeInteger(rawLimit) || rawLimit < 1 || rawLimit > SESSION_TRANSCRIPT_MAX_LIMIT)) {
10789
10521
  throw RequestError.invalidParams(
@@ -10797,9 +10529,7 @@ var QwenAgent = class {
10797
10529
  const reader = new SessionTranscriptReader(cwd);
10798
10530
  const page = await reader.readPage(sessionId, {
10799
10531
  ...typeof rawCursor === "string" ? { cursor: rawCursor } : {},
10800
- ...typeof rawBeforeRecordId === "string" ? { beforeRecordId: rawBeforeRecordId } : {},
10801
- ...typeof rawLimit === "number" ? { limit: rawLimit } : {},
10802
- maxBytes: SESSION_TRANSCRIPT_MAX_PAGE_BYTES
10532
+ ...typeof rawLimit === "number" ? { limit: rawLimit } : {}
10803
10533
  });
10804
10534
  const config = await this.getTranscriptReplayConfig(cwd, settings);
10805
10535
  const replay = await replayTranscriptRecordPage({
@@ -10848,14 +10578,6 @@ var QwenAgent = class {
10848
10578
  maxBytes: error.maxBytes
10849
10579
  });
10850
10580
  }
10851
- if (error instanceof SessionTranscriptPageTooLargeError) {
10852
- throw new RequestError(-32012, error.message, {
10853
- errorKind: "transcript_page_too_large",
10854
- sessionId,
10855
- pageBytes: error.pageBytes,
10856
- maxBytes: error.maxBytes
10857
- });
10858
- }
10859
10581
  if (error.code === "ENOENT") {
10860
10582
  if (typeof rawCursor === "string") {
10861
10583
  throw new RequestError(
@@ -13457,22 +13179,23 @@ ${outputText}
13457
13179
  buildAvailableModels(config) {
13458
13180
  const rawCurrentModelId = (config.getModel() || this.config.getModel() || "").trim();
13459
13181
  const currentAuthType = config.getAuthType();
13460
- const modelOptions = buildAcpModelOptions(config.getAllConfiguredModels());
13182
+ const allConfiguredModels = config.getAllConfiguredModels().filter(isMainSelectableModel);
13461
13183
  const activeRuntimeSnapshot = config.getActiveRuntimeModelSnapshot?.();
13462
- const currentModelId = getCurrentAcpModelId(
13463
- modelOptions,
13464
- activeRuntimeSnapshot?.id ?? rawCurrentModelId,
13465
- activeRuntimeSnapshot?.authType ?? currentAuthType,
13466
- activeRuntimeSnapshot ? void 0 : config.getCurrentModelRegistryBaseUrl?.()
13467
- );
13468
- const mappedAvailableModels = modelOptions.map(({ model, modelId }) => ({
13469
- modelId,
13470
- name: model.label,
13471
- description: model.description ?? null,
13472
- _meta: {
13473
- contextLimit: model.contextWindowSize ?? tokenLimit(model.id)
13474
- }
13475
- }));
13184
+ const currentModelId = activeRuntimeSnapshot ? formatAcpModelId(
13185
+ activeRuntimeSnapshot.id,
13186
+ activeRuntimeSnapshot.authType
13187
+ ) : this.formatCurrentModelId(rawCurrentModelId, currentAuthType);
13188
+ const mappedAvailableModels = allConfiguredModels.map((model) => {
13189
+ const effectiveModelId = model.isRuntimeModel && model.runtimeSnapshotId ? model.runtimeSnapshotId : model.id;
13190
+ return {
13191
+ modelId: formatAcpModelId(effectiveModelId, model.authType),
13192
+ name: model.label,
13193
+ description: model.description ?? null,
13194
+ _meta: {
13195
+ contextLimit: model.contextWindowSize ?? tokenLimit(model.id)
13196
+ }
13197
+ };
13198
+ });
13476
13199
  return {
13477
13200
  currentModelId,
13478
13201
  availableModels: mappedAvailableModels
@@ -13492,16 +13215,14 @@ ${outputText}
13492
13215
  }
13493
13216
  buildConfigOptions(config) {
13494
13217
  const currentApprovalMode = config.getApprovalMode();
13495
- const modelOptions = buildAcpModelOptions(config.getAllConfiguredModels());
13218
+ const allConfiguredModels = config.getAllConfiguredModels().filter(isMainSelectableModel);
13496
13219
  const rawCurrentModelId = (config.getModel() || "").trim();
13497
13220
  const currentAuthType = config.getAuthType?.();
13498
13221
  const activeRuntimeSnapshot = config.getActiveRuntimeModelSnapshot?.();
13499
- const currentModelId = getCurrentAcpModelId(
13500
- modelOptions,
13501
- activeRuntimeSnapshot?.id ?? rawCurrentModelId,
13502
- activeRuntimeSnapshot?.authType ?? currentAuthType,
13503
- activeRuntimeSnapshot ? void 0 : config.getCurrentModelRegistryBaseUrl?.()
13504
- );
13222
+ const currentModelId = activeRuntimeSnapshot ? formatAcpModelId(
13223
+ activeRuntimeSnapshot.id,
13224
+ activeRuntimeSnapshot.authType
13225
+ ) : this.formatCurrentModelId(rawCurrentModelId, currentAuthType);
13505
13226
  const modeOptions = APPROVAL_MODES.map((mode) => ({
13506
13227
  value: mode,
13507
13228
  name: APPROVAL_MODE_INFO[mode].name,
@@ -13516,11 +13237,14 @@ ${outputText}
13516
13237
  currentValue: currentApprovalMode,
13517
13238
  options: modeOptions
13518
13239
  };
13519
- const configModelOptions = modelOptions.map(({ model, modelId }) => ({
13520
- value: modelId,
13521
- name: model.label,
13522
- description: model.description ?? ""
13523
- }));
13240
+ const modelOptions = allConfiguredModels.map((model) => {
13241
+ const effectiveModelId = model.isRuntimeModel && model.runtimeSnapshotId ? model.runtimeSnapshotId : model.id;
13242
+ return {
13243
+ value: formatAcpModelId(effectiveModelId, model.authType),
13244
+ name: model.label,
13245
+ description: model.description ?? ""
13246
+ };
13247
+ });
13524
13248
  const modelConfigOption = {
13525
13249
  id: "model",
13526
13250
  name: "Model",
@@ -13528,11 +13252,19 @@ ${outputText}
13528
13252
  category: "model",
13529
13253
  type: "select",
13530
13254
  currentValue: currentModelId,
13531
- options: configModelOptions
13255
+ options: modelOptions
13532
13256
  };
13533
13257
  return [modeConfigOption, modelConfigOption];
13534
13258
  }
13259
+ formatCurrentModelId(baseModelId, authType) {
13260
+ if (!baseModelId) return baseModelId;
13261
+ return authType ? formatAcpModelId(baseModelId, authType) : baseModelId;
13262
+ }
13535
13263
  };
13264
+ function isMainSelectableModel(model) {
13265
+ return model.fastOnly !== true && model.voiceOnly !== true;
13266
+ }
13267
+ __name(isMainSelectableModel, "isMainSelectableModel");
13536
13268
  function diffSettingsKeys(oldMerged, newMerged) {
13537
13269
  const changed = /* @__PURE__ */ new Set();
13538
13270
  const allKeys = /* @__PURE__ */ new Set([
@@ -13565,11 +13297,6 @@ export {
13565
13297
  * Copyright 2025 Qwen Team
13566
13298
  * SPDX-License-Identifier: Apache-2.0
13567
13299
  */
13568
- /**
13569
- * @license
13570
- * Copyright 2026 Qwen
13571
- * SPDX-License-Identifier: Apache-2.0
13572
- */
13573
13300
  /**
13574
13301
  * @license
13575
13302
  * Copyright 2025 Qwen