@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
@@ -13,7 +13,7 @@ import {
13
13
  matchMcpServerByRef,
14
14
  parseExtensionRef,
15
15
  parseMcpServerRef
16
- } from "./chunk-SCZU65AI.js";
16
+ } from "./chunk-7VRNXKKK.js";
17
17
  import {
18
18
  getAvailableCommands,
19
19
  getSlashCommandFirstToken,
@@ -21,14 +21,14 @@ import {
21
21
  insertAfterFunctionResponses,
22
22
  isSlashCommand,
23
23
  normalizePartList
24
- } from "./chunk-6RDZLBSJ.js";
24
+ } from "./chunk-SGKUVDBX.js";
25
25
  import {
26
26
  collectContextData,
27
27
  formatContextUsageText
28
- } from "./chunk-7VNHO4MN.js";
28
+ } from "./chunk-F3FRTY4Q.js";
29
29
  import {
30
30
  recomputeMcpGating
31
- } from "./chunk-OEYAK5O6.js";
31
+ } from "./chunk-OVS33JJM.js";
32
32
  import {
33
33
  SessionIdConflictError,
34
34
  appEvents,
@@ -36,39 +36,39 @@ import {
36
36
  cleanupReviewWorktreeLeases,
37
37
  loadCliConfig,
38
38
  normalizeDisabledToolList
39
- } from "./chunk-XYRBK56E.js";
39
+ } from "./chunk-U7U3CX4K.js";
40
40
  import {
41
41
  getCommandSubcommandNames
42
- } from "./chunk-PHN4R2ZV.js";
42
+ } from "./chunk-IU2XWUSI.js";
43
43
  import {
44
44
  getEffectiveSupportedModes
45
- } from "./chunk-DRAONPUW.js";
45
+ } from "./chunk-XZ3J6E5Z.js";
46
+ import "./chunk-EB27VF5Z.js";
46
47
  import "./chunk-4WGODMVR.js";
47
48
  import "./chunk-3SH53ANB.js";
48
49
  import "./chunk-NYX53SV4.js";
49
- import "./chunk-SNQZZ765.js";
50
50
  import {
51
51
  isGoalStatusKind
52
52
  } from "./chunk-EKTCKZV5.js";
53
- import "./chunk-2M55OBEB.js";
53
+ import "./chunk-JV443R5X.js";
54
54
  import {
55
55
  startNonInteractiveOpenAILogHousekeeping
56
- } from "./chunk-OEZCXK7Y.js";
56
+ } from "./chunk-3JZ2AZC6.js";
57
57
  import "./chunk-KW7NOTN6.js";
58
58
  import {
59
59
  beginAcpBootstrapConfigProfiling,
60
60
  buildAndFreezeAcpStartupProfile,
61
61
  endAcpBootstrapConfigProfiling,
62
62
  markAcpStartup
63
- } from "./chunk-QEJZUXSK.js";
64
- import "./chunk-5IJSFWQO.js";
65
- import "./chunk-XITLNXLX.js";
66
- import "./chunk-QAVTWAHL.js";
63
+ } from "./chunk-U53XZHAE.js";
64
+ import "./chunk-BUZESYJT.js";
65
+ import "./chunk-VWS7DWY6.js";
66
+ import "./chunk-JIR6JDGE.js";
67
67
  import "./chunk-YAF2MQZ6.js";
68
68
  import {
69
69
  computeCpuPercent
70
70
  } from "./chunk-LBOVL47Y.js";
71
- import "./chunk-Y7QY6DKW.js";
71
+ import "./chunk-ZTLSYXFY.js";
72
72
  import "./chunk-6H67XLET.js";
73
73
  import {
74
74
  GENERATION_MAX_PROMPT_BYTES,
@@ -92,7 +92,7 @@ import {
92
92
  shouldSuppressRememberErrorDetails,
93
93
  workspaceMemoryFailureCode,
94
94
  workspaceMemoryFailureDiagnostics
95
- } from "./chunk-73JUK3ZW.js";
95
+ } from "./chunk-63AIQ2IZ.js";
96
96
  import {
97
97
  BaseEmitter,
98
98
  HistoryReplayer,
@@ -103,10 +103,10 @@ import {
103
103
  hasFullSessionContext,
104
104
  observeAcpToolResultProjection,
105
105
  observeAcpToolResultWire
106
- } from "./chunk-K2Y45XXS.js";
107
- import "./chunk-OVY67CYC.js";
106
+ } from "./chunk-DFOKBPH5.js";
107
+ import "./chunk-G32ESUUC.js";
108
108
  import "./chunk-E7REAOTN.js";
109
- import "./chunk-4SR45OM4.js";
109
+ import "./chunk-Q5QDZXKL.js";
110
110
  import "./chunk-2MIN6GRR.js";
111
111
  import "./chunk-QHTIBUWB.js";
112
112
  import "./chunk-3Z43GZUQ.js";
@@ -124,22 +124,22 @@ import {
124
124
  buildPermissionSettings,
125
125
  normalizePermissionRules,
126
126
  readPermissionRuleSet
127
- } from "./chunk-OJB5FYVK.js";
127
+ } from "./chunk-4IOBHNV2.js";
128
128
  import {
129
129
  MAX_AUDIO_BYTES,
130
130
  sanitizeVoiceErrorMessage,
131
131
  transcribeVoiceAudio
132
- } from "./chunk-H3SHU2XU.js";
132
+ } from "./chunk-I3AB5DOZ.js";
133
133
  import {
134
134
  readVoiceModel
135
- } from "./chunk-SFJMFZT5.js";
136
- import "./chunk-WGHHA7ZH.js";
137
- import "./chunk-UGK4K2N2.js";
138
- import "./chunk-MDIGJH5X.js";
135
+ } from "./chunk-IBUXQJHH.js";
136
+ import "./chunk-3C55EUJX.js";
137
+ import "./chunk-JS73NNWF.js";
138
+ import "./chunk-ZL3HKVEQ.js";
139
139
  import {
140
140
  SESSION_SOURCE_META_KEY,
141
141
  parseSessionSource
142
- } from "./chunk-L3T4V5GZ.js";
142
+ } from "./chunk-GYVB4P5B.js";
143
143
  import "./chunk-7U5G6JXI.js";
144
144
  import "./chunk-WCCLLK7X.js";
145
145
  import "./chunk-OCPBI7J5.js";
@@ -151,26 +151,26 @@ import {
151
151
  parseAcpModelOption,
152
152
  resolveAcpModelOption,
153
153
  sanitizeProviderBaseUrl
154
- } from "./chunk-EOPBFLA5.js";
154
+ } from "./chunk-AKN26LMT.js";
155
155
  import {
156
156
  mapSkillConfigToStatus
157
157
  } from "./chunk-BGXZBI5B.js";
158
158
  import {
159
159
  resolveSkillSettings
160
160
  } from "./chunk-Z4X5MTRT.js";
161
- import "./chunk-55VKMB7X.js";
162
- import "./chunk-U657UZJN.js";
161
+ import "./chunk-A7MIUCUQ.js";
162
+ import "./chunk-5WEMSDPR.js";
163
163
  import "./chunk-57OAHC2Y.js";
164
- import "./chunk-NRPXRNN4.js";
164
+ import "./chunk-WXFFCRKG.js";
165
165
  import "./chunk-45NQKMYB.js";
166
- import "./chunk-5IYS4WWR.js";
166
+ import "./chunk-WAPL2PHU.js";
167
167
  import "./chunk-V6WHFGST.js";
168
168
  import {
169
169
  createLoadedSettingsAdapter
170
- } from "./chunk-3PWNVF6N.js";
170
+ } from "./chunk-4APB4SP2.js";
171
171
  import {
172
172
  ndJsonStream
173
- } from "./chunk-BQWNIPTE.js";
173
+ } from "./chunk-V4UBYT3Y.js";
174
174
  import {
175
175
  ACP_PREFLIGHT_KINDS,
176
176
  IDLE_HOOK_EVENTS,
@@ -178,9 +178,9 @@ import {
178
178
  SERVE_STATUS_EXT_METHODS,
179
179
  STATUS_SCHEMA_VERSION,
180
180
  mapDomainErrorToErrorKind
181
- } from "./chunk-UC67T4SF.js";
181
+ } from "./chunk-AQFWV4YF.js";
182
182
  import "./chunk-ZLCT4C5A.js";
183
- import "./chunk-WAO53ZQF.js";
183
+ import "./chunk-DITDNF3D.js";
184
184
  import {
185
185
  ACTIVE_WORK_CLOSE_IF_UNHELD_PARAM,
186
186
  ACTIVE_WORK_HEARTBEAT_META_KEY,
@@ -191,8 +191,8 @@ import {
191
191
  CHANNEL_STARTUP_PROFILE_META_KEY,
192
192
  CHANNEL_STARTUP_PROFILE_VERSION,
193
193
  CLIENT_MCP_OVER_WS_CONFIG_FLAG,
194
+ DAEMON_ATTACHMENT_REFERENCES_META_KEY,
194
195
  DAEMON_CHANNEL_DELIVERY_META_KEY,
195
- DAEMON_MEDIA_REFERENCES_META_KEY,
196
196
  DAEMON_MODEL_PROMPT_META_KEY,
197
197
  DAEMON_PROMPT_DISPLAY_TEXT_META_KEY,
198
198
  LOAD_REPLAY_BULK_MODE,
@@ -211,17 +211,17 @@ import {
211
211
  WORKTREE_MCP_DEFER_META_KEY,
212
212
  clampActiveWorkIntervalMs,
213
213
  isValidTrustedModelPrompt
214
- } from "./chunk-WP4WIUOJ.js";
214
+ } from "./chunk-QQUVPMMZ.js";
215
215
  import {
216
216
  NOT_CURRENTLY_GENERATING_CANCEL_MESSAGE,
217
217
  isNotCurrentlyGeneratingCancelError
218
218
  } from "./chunk-624NHDGB.js";
219
219
  import "./chunk-6PLDPT2C.js";
220
220
  import "./chunk-FYJ7W2PI.js";
221
- import "./chunk-YP5KH5Y7.js";
221
+ import "./chunk-ND7NOI4P.js";
222
222
  import "./chunk-A6NRNRKE.js";
223
223
  import "./chunk-ALMR3E6Q.js";
224
- import "./chunk-HIBNSEJE.js";
224
+ import "./chunk-UDG5EZJI.js";
225
225
  import "./chunk-M5GB774H.js";
226
226
  import {
227
227
  EXTERNAL_TOOL_GUARD_READY_META_KEY,
@@ -241,11 +241,11 @@ import {
241
241
  PROTOCOL_VERSION,
242
242
  RequestError
243
243
  } from "./chunk-IW6RQPQB.js";
244
- import "./chunk-H4A72DE5.js";
244
+ import "./chunk-PTMVPFCZ.js";
245
245
  import {
246
246
  assembleMcpServers,
247
247
  loadMcpApprovals
248
- } from "./chunk-S7N3HUIB.js";
248
+ } from "./chunk-NMSSH43P.js";
249
249
  import {
250
250
  getOutputLanguageFilePath,
251
251
  getPersistScopeForModelSelection,
@@ -254,9 +254,9 @@ import {
254
254
  resolveOutputLanguageOrPreserveAuto,
255
255
  updateOutputLanguageFile,
256
256
  writeOutputLanguageAndRegisterPath
257
- } from "./chunk-VFP5YOHJ.js";
257
+ } from "./chunk-PRIX4D6T.js";
258
258
  import "./chunk-RKUWKYED.js";
259
- import "./chunk-CZK622ZK.js";
259
+ import "./chunk-6IFWBM24.js";
260
260
  import "./chunk-GOXKNSDZ.js";
261
261
  import {
262
262
  getSystemDefaultsPath,
@@ -265,7 +265,7 @@ import {
265
265
  import {
266
266
  getCurrentLanguage,
267
267
  setLanguageAsync
268
- } from "./chunk-VTOLYFWM.js";
268
+ } from "./chunk-W3M6P3UR.js";
269
269
  import {
270
270
  SUPPORTED_LANGUAGES
271
271
  } from "./chunk-5EJZE3FP.js";
@@ -273,20 +273,22 @@ import {
273
273
  findEnvFiles,
274
274
  preResolveHomeEnvOverrides,
275
275
  reloadEnvironment
276
- } from "./chunk-MVHJZ3FZ.js";
276
+ } from "./chunk-DZNQHKZZ.js";
277
277
  import {
278
- ENV_ACP_REPEATED_TOOL_FAILURE_GUARD
278
+ ENV_ACP_REPEATED_TOOL_FAILURE_GUARD,
279
+ QWEN_CODE_SERVE_ENV
279
280
  } from "./chunk-CXJHQVEK.js";
280
- import "./chunk-PCETXVVV.js";
281
+ import "./chunk-3X6KVX37.js";
281
282
  import "./chunk-WZMH7II3.js";
282
283
  import {
283
284
  isFolderTrustEnabled,
284
285
  isWorkspaceTrusted,
285
286
  loadTrustedFolders
286
- } from "./chunk-C3T6M24E.js";
287
+ } from "./chunk-RLYXWNS3.js";
287
288
  import "./chunk-NPQ5ZKRP.js";
288
289
  import "./chunk-MR3PXB6E.js";
289
290
  import "./chunk-XFSFZCM5.js";
291
+ import "./chunk-LJZSMWOH.js";
290
292
  import {
291
293
  ALL_PROVIDERS,
292
294
  APPROVAL_MODE_INFO,
@@ -314,6 +316,7 @@ import {
314
316
  SESSION_TRANSCRIPT_MAX_LIMIT,
315
317
  SESSION_TRANSCRIPT_MAX_PAGE_BYTES,
316
318
  SESSION_WRITER_RPC_CODES,
319
+ SessionIdCaseConflictError,
317
320
  SessionService,
318
321
  SessionTranscriptPageTooLargeError,
319
322
  SessionTranscriptReader,
@@ -376,6 +379,7 @@ import {
376
379
  getDefaultBaseUrlForProtocol,
377
380
  getDefaultModelIds,
378
381
  getEffectivePermissionForConfirmation,
382
+ getFunctionCallFingerprint,
379
383
  getMCPDiscoveryState,
380
384
  getPlanModeSystemReminder,
381
385
  getProviderToolCallId,
@@ -388,6 +392,7 @@ import {
388
392
  isDenialFallbackReason,
389
393
  isGatedMcpScope,
390
394
  isPlanModeBlocked,
395
+ isReplayOfHandledToolCall,
391
396
  isTurnResultRecordPayload,
392
397
  markDuplicateProviderToolCallResponseSent,
393
398
  matchesAnyServerPattern,
@@ -402,6 +407,7 @@ import {
402
407
  readManyFiles,
403
408
  recordAllow,
404
409
  recordFallbackApprove,
410
+ recordHandledToolCall,
405
411
  refreshMemoryAfterManagedWrite,
406
412
  refreshMemoryInstruction,
407
413
  resolveBaseUrl,
@@ -422,25 +428,25 @@ import {
422
428
  updateSetting,
423
429
  validatePlanModeShellApproval,
424
430
  validatePlanModeShellContext
425
- } from "./chunk-OFTPCOGR.js";
431
+ } from "./chunk-L7RG5PVT.js";
426
432
  import "./chunk-GOFAQQZA.js";
427
433
  import "./chunk-5M6IDOMF.js";
428
434
  import "./chunk-TWPJO254.js";
429
435
  import {
430
436
  external_exports
431
437
  } from "./chunk-CQ35AJ4Z.js";
432
- import "./chunk-FS5NGKWC.js";
433
- import "./chunk-SLILKYV2.js";
434
- import "./chunk-NVRMCWTP.js";
435
- import "./chunk-AKBOLMUF.js";
438
+ import "./chunk-F5JZDC4O.js";
439
+ import "./chunk-T2LUUKRI.js";
440
+ import "./chunk-A7NBZBGQ.js";
441
+ import "./chunk-7S22SX2L.js";
436
442
  import {
437
443
  parsePositiveIntegerEnv
438
444
  } from "./chunk-6PVPNMXU.js";
439
- import "./chunk-544KT7X4.js";
445
+ import "./chunk-BBMVUTXO.js";
440
446
  import "./chunk-IRH27ZC2.js";
441
447
  import "./chunk-QHWCP53L.js";
442
- import "./chunk-OBJYN4MX.js";
443
- import "./chunk-2C6HJMG3.js";
448
+ import "./chunk-G64PEZZ5.js";
449
+ import "./chunk-O75QDGQF.js";
444
450
  import {
445
451
  promptIdContext,
446
452
  todoWorkChainContext
@@ -450,60 +456,60 @@ import "./chunk-ZPJWUGCS.js";
450
456
  import "./chunk-CPBF7KYF.js";
451
457
  import {
452
458
  APPROVAL_MODES
453
- } from "./chunk-RWDNJBWN.js";
454
- import "./chunk-WPVUOVYX.js";
459
+ } from "./chunk-ZUISK67X.js";
460
+ import "./chunk-3EQHT3IC.js";
455
461
  import {
456
462
  HookEventName,
457
463
  createHookOutput
458
- } from "./chunk-MIPFDQAF.js";
464
+ } from "./chunk-4W4BROUS.js";
459
465
  import "./chunk-MLXTMF7H.js";
460
- import "./chunk-KV27IEHM.js";
461
- import "./chunk-E3DYKPYZ.js";
466
+ import "./chunk-L5JHSPET.js";
467
+ import "./chunk-X7EQHW5L.js";
462
468
  import {
469
+ GoalConflictError,
470
+ GoalInvalidTransitionError,
463
471
  GoalPersistenceUnavailableError,
464
472
  emptyGoalSnapshot,
465
473
  goalTurnContext,
474
+ parseGoalControlRequest,
466
475
  parseGoalSnapshotV2,
467
476
  parseGoalStateCause,
468
477
  wrapUserPromptSubmitContext
469
- } from "./chunk-4ZMS3JCR.js";
470
- import "./chunk-DGJ7O55J.js";
478
+ } from "./chunk-JBSW7JA6.js";
479
+ import "./chunk-O327G3QW.js";
471
480
  import {
472
481
  AgentOutputMessageCapture,
473
482
  addAgentInputMessageAttributes,
474
- addDaemonRequestAttribute,
475
483
  addToolArgumentsAttributes,
476
484
  addToolCallResultAttributes,
477
- extractDaemonTraceContext,
478
485
  registerAcpEventLoopLagGauge,
479
- startEventLoopLagMonitor,
480
- withDaemonSpan
481
- } from "./chunk-OO4FKHLO.js";
486
+ startEventLoopLagMonitor
487
+ } from "./chunk-2GM44E7D.js";
482
488
  import "./chunk-SAH4BD2J.js";
483
- import "./chunk-XLLKYULU.js";
489
+ import "./chunk-ZWWU6KNS.js";
484
490
  import {
485
491
  runWithRuntimeContentGenerator
486
- } from "./chunk-PT4I7NBA.js";
492
+ } from "./chunk-VX7TFATF.js";
487
493
  import "./chunk-S6LOFUVP.js";
488
494
  import "./chunk-2J3OJGTL.js";
489
495
  import {
490
496
  FORK_SUBAGENT_TYPE,
491
497
  getStartupContextLength,
492
498
  isSystemReminderContent
493
- } from "./chunk-SG7ZP5PG.js";
499
+ } from "./chunk-HHNSO2Y4.js";
494
500
  import "./chunk-K623ENWT.js";
495
501
  import "./chunk-AQ37AY7B.js";
496
- import "./chunk-KBXKR5R2.js";
502
+ import "./chunk-M5AIO24H.js";
497
503
  import {
498
504
  clearCachedCredentialFile,
499
505
  qwenOAuth2Events
500
- } from "./chunk-I3N2Z25H.js";
506
+ } from "./chunk-47VTGCYK.js";
501
507
  import "./chunk-NAVJD2PQ.js";
502
- import "./chunk-ROIYNTHJ.js";
503
- import "./chunk-2B2BF7P7.js";
508
+ import "./chunk-MD7XDTW7.js";
509
+ import "./chunk-FAIJ5UIU.js";
504
510
  import "./chunk-P3QQPMQA.js";
505
- import "./chunk-YZHRN3CF.js";
506
- import "./chunk-FAAUPSY2.js";
511
+ import "./chunk-SWOKDPS5.js";
512
+ import "./chunk-HEMFCAHG.js";
507
513
  import {
508
514
  REASONING_EFFORT_TIERS,
509
515
  applyReasoningEffort
@@ -513,7 +519,12 @@ import {
513
519
  getToolCallPreparations
514
520
  } from "./chunk-GLCZKT5V.js";
515
521
  import "./chunk-DJ2GSRLV.js";
516
- import "./chunk-QFJ5JHQR.js";
522
+ import "./chunk-PXOIRYE5.js";
523
+ import {
524
+ addDaemonRequestAttribute,
525
+ extractDaemonTraceContext,
526
+ withDaemonSpan
527
+ } from "./chunk-7NLDU6J2.js";
517
528
  import {
518
529
  ConversationFinishedEvent,
519
530
  DiscoveredMCPTool,
@@ -544,21 +555,21 @@ import {
544
555
  shouldRunVisionBridge,
545
556
  splitImageParts,
546
557
  uiTelemetryService
547
- } from "./chunk-KC4WMLZO.js";
558
+ } from "./chunk-EXY6APEA.js";
548
559
  import "./chunk-YRLW2MSX.js";
549
560
  import "./chunk-VGC4I5JJ.js";
550
561
  import {
551
562
  getAllGeminiMdFilenames,
552
563
  getSpecificMimeType
553
- } from "./chunk-3PWCMXIR.js";
564
+ } from "./chunk-MGEWDLRO.js";
554
565
  import {
555
566
  getAutoMemoryRoot,
556
567
  getUserAutoMemoryRoot
557
- } from "./chunk-CHHABXPE.js";
568
+ } from "./chunk-5AAW6E3C.js";
558
569
  import {
559
570
  runSideQuery
560
- } from "./chunk-MA2HEDVP.js";
561
- import "./chunk-XUJNK7Y6.js";
571
+ } from "./chunk-4CKU5K2R.js";
572
+ import "./chunk-7WVB4FMG.js";
562
573
  import {
563
574
  BaseDeclarativeTool,
564
575
  BaseToolInvocation,
@@ -566,11 +577,11 @@ import {
566
577
  ToolNames,
567
578
  canonicalToolName,
568
579
  isShellProgressData
569
- } from "./chunk-6HY6IF3Z.js";
580
+ } from "./chunk-OUYRA764.js";
570
581
  import {
571
582
  AuthType,
572
583
  preloadContentGenerator
573
- } from "./chunk-2A6VQJYK.js";
584
+ } from "./chunk-DK4HL3IB.js";
574
585
  import "./chunk-F6WFNA7U.js";
575
586
  import "./chunk-WZAD4ZNJ.js";
576
587
  import {
@@ -578,9 +589,10 @@ import {
578
589
  tokenLimit
579
590
  } from "./chunk-FPGTNKCP.js";
580
591
  import "./chunk-YHC2EYYG.js";
581
- import "./chunk-CPHEPGAO.js";
582
- import "./chunk-DVR7XKO5.js";
583
- import "./chunk-YECDICIO.js";
592
+ import "./chunk-722JBVVW.js";
593
+ import "./chunk-B5LEKTE7.js";
594
+ import "./chunk-Q6ETBOWF.js";
595
+ import "./chunk-HHJLM3WQ.js";
584
596
  import {
585
597
  endToolExecutionSpan,
586
598
  endToolSpan,
@@ -588,26 +600,23 @@ import {
588
600
  initializeTelemetry,
589
601
  redactUrlCredentials,
590
602
  runInToolSpanContext,
603
+ sessionIdContext,
591
604
  startToolExecutionSpan,
592
605
  startToolSpan,
593
606
  withInteractionSpan
594
- } from "./chunk-XT4RKHVE.js";
595
- import "./chunk-HHJLM3WQ.js";
596
- import {
597
- sessionIdContext
598
- } from "./chunk-D34RDOLP.js";
607
+ } from "./chunk-RZ4PE3ER.js";
599
608
  import {
600
609
  Storage,
601
610
  createDebugLogger,
602
611
  getErrorMessage,
603
612
  getErrorStatus,
604
613
  isSubpath
605
- } from "./chunk-BUQDLC2G.js";
614
+ } from "./chunk-XFRYCCVC.js";
606
615
  import "./chunk-VOQXFAY5.js";
607
- import "./chunk-QEHH23OM.js";
616
+ import "./chunk-K6GQS2WN.js";
608
617
  import {
609
618
  runExitCleanup
610
- } from "./chunk-3SL2P3WX.js";
619
+ } from "./chunk-DIHJXVT4.js";
611
620
  import {
612
621
  writeStderrLine,
613
622
  writeStderrLineSafe
@@ -616,7 +625,7 @@ import "./chunk-75DOP5OR.js";
616
625
  import "./chunk-DMTGGOSA.js";
617
626
  import "./chunk-YQ3U5MUC.js";
618
627
  import "./chunk-AMDSOFFV.js";
619
- import "./chunk-QUGAUQGJ.js";
628
+ import "./chunk-GX2THELY.js";
620
629
  import {
621
630
  init_esbuild_shims
622
631
  } from "./chunk-5O2XNYP6.js";
@@ -3048,9 +3057,9 @@ var NEW_PROMPT_ABORT_REASON = "qwen:new-prompt";
3048
3057
  var SESSION_DISPOSE_ABORT_REASON = "qwen:session-dispose";
3049
3058
  var DAEMON_RETRY_META_KEY = "qwen.daemon.retry";
3050
3059
  var DAEMON_CONTINUE_META_KEY = "qwen.daemon.continueLastTurn";
3051
- var MAX_DAEMON_MEDIA_REFERENCES = 256;
3052
- function readDaemonMediaReferences(value) {
3053
- if (!Array.isArray(value) || value.length === 0 || value.length > MAX_DAEMON_MEDIA_REFERENCES) {
3060
+ var MAX_DAEMON_ATTACHMENT_REFERENCES = 256;
3061
+ function readDaemonAttachmentReferences(value) {
3062
+ if (!Array.isArray(value) || value.length === 0 || value.length > MAX_DAEMON_ATTACHMENT_REFERENCES) {
3054
3063
  return void 0;
3055
3064
  }
3056
3065
  const references = [];
@@ -3059,19 +3068,19 @@ function readDaemonMediaReferences(value) {
3059
3068
  return void 0;
3060
3069
  }
3061
3070
  const reference = item;
3062
- if (reference["type"] !== "image" || typeof reference["mediaId"] !== "string" || reference["mediaId"].length === 0 || reference["mediaId"].length > 128 || typeof reference["mimeType"] !== "string" || reference["mimeType"].length === 0 || reference["mimeType"].length > 128 || typeof reference["size"] !== "number" || !Number.isSafeInteger(reference["size"]) || reference["size"] <= 0) {
3071
+ if (reference["type"] !== "image" && reference["type"] !== "resource" || typeof reference["attachmentId"] !== "string" || reference["attachmentId"].length === 0 || reference["attachmentId"].length > 255 || typeof reference["mimeType"] !== "string" || reference["mimeType"].length === 0 || reference["mimeType"].length > 128 || typeof reference["size"] !== "number" || !Number.isSafeInteger(reference["size"]) || reference["size"] < 0 || reference["type"] === "image" && reference["size"] === 0) {
3063
3072
  return void 0;
3064
3073
  }
3065
3074
  references.push({
3066
3075
  type: reference["type"],
3067
- mediaId: reference["mediaId"],
3076
+ attachmentId: reference["attachmentId"],
3068
3077
  mimeType: reference["mimeType"],
3069
3078
  size: reference["size"]
3070
3079
  });
3071
3080
  }
3072
3081
  return references;
3073
3082
  }
3074
- __name(readDaemonMediaReferences, "readDaemonMediaReferences");
3083
+ __name(readDaemonAttachmentReferences, "readDaemonAttachmentReferences");
3075
3084
  var TODO_STOP_GUARD_PROMPT_PREFIX = "[Todo Stop Guard] ";
3076
3085
  var TODO_STOP_GUARD_PROMPT_BODY_SUFFIX = " todo item(s) are still pending or in progress. Continue executing the current task now. Do not ask the user whether to continue. If progress requires user input, use the structured question or permission flow. If progress depends on external state, report the blocker explicitly.";
3077
3086
  var TODO_STOP_GUARD_FINAL_PROMPT_SUFFIX = " This is the final automatic continuation. Before ending, either complete/update the todos or report the completed progress and the exact blocker.";
@@ -3420,10 +3429,12 @@ function isEmbeddedResourceResource(value) {
3420
3429
  return typeof value["blob"] === "string";
3421
3430
  }
3422
3431
  __name(isEmbeddedResourceResource, "isEmbeddedResourceResource");
3423
- function hasInlineMediaContentBlock(content) {
3424
- return content.some((part) => part.type === "image" || part.type === "audio");
3432
+ function hasInlineAttachmentContentBlock(content) {
3433
+ return content.some(
3434
+ (part) => part.type === "image" || part.type === "audio" || part.type === "resource"
3435
+ );
3425
3436
  }
3426
- __name(hasInlineMediaContentBlock, "hasInlineMediaContentBlock");
3437
+ __name(hasInlineAttachmentContentBlock, "hasInlineAttachmentContentBlock");
3427
3438
  function extractTurnPromptText(content) {
3428
3439
  let hasImage = false;
3429
3440
  for (const block of content) {
@@ -3440,27 +3451,46 @@ function truncateTurnText(text) {
3440
3451
  return { text: text.slice(0, TURN_RESULT_TEXT_MAX_CHARS), truncated: true };
3441
3452
  }
3442
3453
  __name(truncateTurnText, "truncateTurnText");
3443
- function stripReferencedInlineDataParts(parts, content) {
3444
- const coveredByKey = /* @__PURE__ */ new Map();
3454
+ function stripReferencedAttachmentDataParts(parts, content) {
3455
+ const inlineDataCounts = /* @__PURE__ */ new Map();
3456
+ const textCounts = /* @__PURE__ */ new Map();
3445
3457
  for (const block of content) {
3446
- if (block.type !== "image") continue;
3447
- const key = `${block.mimeType}\0${block.data}`;
3448
- coveredByKey.set(key, (coveredByKey.get(key) ?? 0) + 1);
3458
+ if (block.type === "image") {
3459
+ const key = `${block.mimeType}\0${block.data}`;
3460
+ inlineDataCounts.set(key, (inlineDataCounts.get(key) ?? 0) + 1);
3461
+ continue;
3462
+ }
3463
+ if (block.type !== "resource") continue;
3464
+ const resource = block.resource;
3465
+ if ("blob" in resource) {
3466
+ const key = `${resource.mimeType ?? "application/octet-stream"}\0${resource.blob}`;
3467
+ inlineDataCounts.set(key, (inlineDataCounts.get(key) ?? 0) + 1);
3468
+ } else if (resource.text) {
3469
+ const text = `File: ${resource.uri}
3470
+ ${resource.text}`;
3471
+ textCounts.set(text, (textCounts.get(text) ?? 0) + 1);
3472
+ }
3449
3473
  }
3450
- if (coveredByKey.size === 0) return parts;
3451
3474
  return parts.filter((part) => {
3452
- const inlineData = part.inlineData;
3453
- if (inlineData === void 0 || typeof inlineData.data !== "string") {
3454
- return true;
3475
+ if (part.inlineData && typeof part.inlineData.data === "string") {
3476
+ const key = `${part.inlineData.mimeType ?? ""}\0${part.inlineData.data}`;
3477
+ const remaining = inlineDataCounts.get(key) ?? 0;
3478
+ if (remaining > 0) {
3479
+ inlineDataCounts.set(key, remaining - 1);
3480
+ return false;
3481
+ }
3455
3482
  }
3456
- const key = `${inlineData.mimeType ?? ""}\0${inlineData.data}`;
3457
- const remaining = coveredByKey.get(key) ?? 0;
3458
- if (remaining === 0) return true;
3459
- coveredByKey.set(key, remaining - 1);
3460
- return false;
3483
+ if (typeof part.text === "string") {
3484
+ const remaining = textCounts.get(part.text) ?? 0;
3485
+ if (remaining > 0) {
3486
+ textCounts.set(part.text, remaining - 1);
3487
+ return false;
3488
+ }
3489
+ }
3490
+ return true;
3461
3491
  });
3462
3492
  }
3463
- __name(stripReferencedInlineDataParts, "stripReferencedInlineDataParts");
3493
+ __name(stripReferencedAttachmentDataParts, "stripReferencedAttachmentDataParts");
3464
3494
  function capMidTurnDrainItems(items, fieldName) {
3465
3495
  if (items.length <= MAX_MID_TURN_DRAIN_ITEMS) return items;
3466
3496
  debugLogger6.warn(
@@ -3505,7 +3535,7 @@ function getStructuredMidTurnDisplayText(content, displayText, willPersistRefere
3505
3535
  (part) => part.type === "text"
3506
3536
  ).map((part) => part.text).join("\n").trim();
3507
3537
  if (text) return text;
3508
- if (!willPersistReferences && hasInlineMediaContentBlock(content)) {
3538
+ if (!willPersistReferences && hasInlineAttachmentContentBlock(content)) {
3509
3539
  return "[User message with attachments]";
3510
3540
  }
3511
3541
  return text;
@@ -3524,10 +3554,12 @@ function parseMidTurnDrainResponse(response) {
3524
3554
  item["displayText"]
3525
3555
  );
3526
3556
  if (content.length === 0) return [];
3527
- const mediaReferences = readDaemonMediaReferences(
3528
- item["mediaReferences"]
3557
+ const attachmentReferences = readDaemonAttachmentReferences(
3558
+ item["attachmentReferences"]
3529
3559
  );
3530
- const willPersistReferences = mediaReferences !== void 0 && mediaReferences.length === content.filter((block) => block.type === "image").length;
3560
+ const willPersistReferences = attachmentReferences !== void 0 && attachmentReferences.length === content.filter(
3561
+ (block) => block.type === "image" || block.type === "resource"
3562
+ ).length;
3531
3563
  return [
3532
3564
  {
3533
3565
  kind: "structured",
@@ -3537,7 +3569,7 @@ function parseMidTurnDrainResponse(response) {
3537
3569
  item["displayText"],
3538
3570
  willPersistReferences
3539
3571
  ),
3540
- ...mediaReferences ? { mediaReferences } : {}
3572
+ ...attachmentReferences ? { attachmentReferences } : {}
3541
3573
  }
3542
3574
  ];
3543
3575
  }
@@ -3562,7 +3594,7 @@ function isValidMidTurnDrainResponse(response, requireQueuedPromptState) {
3562
3594
  }
3563
3595
  if (Array.isArray(response["items"])) {
3564
3596
  return response["items"].every(
3565
- (item) => isRecord2(item) && Array.isArray(item["content"]) && item["content"].length > 0 && item["content"].every(isContentBlock) && (item["mediaReferences"] === void 0 || readDaemonMediaReferences(item["mediaReferences"]) !== void 0)
3597
+ (item) => isRecord2(item) && Array.isArray(item["content"]) && item["content"].length > 0 && item["content"].every(isContentBlock) && (item["attachmentReferences"] === void 0 || readDaemonAttachmentReferences(item["attachmentReferences"]) !== void 0)
3566
3598
  );
3567
3599
  }
3568
3600
  return Array.isArray(response["messages"]) && response["messages"].every(
@@ -4174,8 +4206,10 @@ var Session = class {
4174
4206
  this.goalProcessing = true;
4175
4207
  this.activeGoalTurn = turn;
4176
4208
  const parts = buildGoalContinuationParts(turn);
4209
+ let result;
4210
+ await this.#emitGoalStartTurn();
4177
4211
  try {
4178
- await this.prompt(
4212
+ result = await this.prompt(
4179
4213
  {
4180
4214
  sessionId: this.sessionId,
4181
4215
  prompt: parts.map((part) => ({
@@ -4194,6 +4228,7 @@ var Session = class {
4194
4228
  `ACP Goal turn failed: ${error instanceof Error ? error.message : String(error)}`
4195
4229
  );
4196
4230
  } finally {
4231
+ await this.#emitGoalEndTurn(result);
4197
4232
  if (this.activeGoalTurn === turn) this.activeGoalTurn = void 0;
4198
4233
  this.goalProcessing = false;
4199
4234
  void this.#drainCronQueue();
@@ -5867,15 +5902,15 @@ var Session = class {
5867
5902
  } else if (isRetry) {
5868
5903
  this.#getCurrentChat().stripOrphanedUserEntriesFromHistory();
5869
5904
  } else if (!isSlashInput || slashCommandName !== "advisor") {
5870
- const mediaReferences = readDaemonMediaReferences(
5871
- promptMetadata?.[DAEMON_MEDIA_REFERENCES_META_KEY]
5905
+ const attachmentReferences = readDaemonAttachmentReferences(
5906
+ promptMetadata?.[DAEMON_ATTACHMENT_REFERENCES_META_KEY]
5872
5907
  );
5873
5908
  const recorder = this.config.getChatRecordingService();
5874
- if (promptDisplayText !== void 0 || mediaReferences) {
5909
+ if (promptDisplayText !== void 0 || attachmentReferences) {
5875
5910
  recorder?.recordUserMessage(promptText, goalTurn?.permit, {
5876
5911
  displayText: promptDisplayText ?? promptText,
5877
5912
  hookContext: "",
5878
- ...mediaReferences ? { mediaReferences } : {}
5913
+ ...attachmentReferences ? { attachmentReferences } : {}
5879
5914
  });
5880
5915
  } else if (goalTurn) {
5881
5916
  recorder?.recordUserMessage(promptText, goalTurn.permit);
@@ -7403,13 +7438,6 @@ ${this.pendingRecoveredAgentsNotice}
7403
7438
  debugLogger6.debug("Stopping ACP turn after daemon loop detection.");
7404
7439
  return { message: null, hadMidTurnUserInput: false };
7405
7440
  }
7406
- if (toolRun.repeatedDuplicateProviderToolCall) {
7407
- this.todoStopGuard.suspend();
7408
- debugLogger6.debug(
7409
- "Stopping ACP turn after dropping repeated duplicate provider tool-call response."
7410
- );
7411
- return { message: null, hadMidTurnUserInput: false };
7412
- }
7413
7441
  const drained = await this.#drainMidTurnInput(abortSignal, {
7414
7442
  watchQueuedPrompt: toolLoopState.repeatedToolFailureMode !== "off",
7415
7443
  onFullTurnModel
@@ -7733,20 +7761,22 @@ ${this.pendingRecoveredAgentsNotice}
7733
7761
  );
7734
7762
  }
7735
7763
  rawParts = [{ text: displayText }];
7736
- if (message.kind === "structured" && hasInlineMediaContentBlock(message.content)) {
7764
+ if (message.kind === "structured" && hasInlineAttachmentContentBlock(message.content)) {
7737
7765
  rawParts.push({ text: MID_TURN_ATTACHMENT_PROCESSING_FAILURE_TEXT });
7738
7766
  }
7739
7767
  }
7740
7768
  const built = prefixMidTurnUserMessageParts(rawParts, displayText);
7741
7769
  const recorder = this.config.getChatRecordingService();
7742
- if (message.kind === "structured" && message.mediaReferences) {
7743
- const everyMediaBlockHasAReference = message.mediaReferences.length === message.content.filter((block) => block.type === "image").length;
7744
- if (everyMediaBlockHasAReference) {
7770
+ if (message.kind === "structured" && message.attachmentReferences) {
7771
+ const everyAttachmentBlockHasAReference = message.attachmentReferences.length === message.content.filter(
7772
+ (block) => block.type === "image" || block.type === "resource"
7773
+ ).length;
7774
+ if (everyAttachmentBlockHasAReference) {
7745
7775
  recorder?.recordMidTurnUserMessage(
7746
- stripReferencedInlineDataParts(built, message.content),
7776
+ stripReferencedAttachmentDataParts(built, message.content),
7747
7777
  displayText,
7748
7778
  void 0,
7749
- message.mediaReferences
7779
+ message.attachmentReferences
7750
7780
  );
7751
7781
  } else {
7752
7782
  recorder?.recordMidTurnUserMessage(built, displayText);
@@ -8817,6 +8847,38 @@ ${this.pendingRecoveredAgentsNotice}
8817
8847
  );
8818
8848
  }
8819
8849
  }
8850
+ /**
8851
+ * Goal turns run inside this child via `prompt()` directly, so the daemon
8852
+ * bridge never observes a `session/prompt` RPC boundary for them and would
8853
+ * otherwise publish no `turn_complete` — leaving SSE clients (Web Shell,
8854
+ * SDK) with a streaming state that never settles.
8855
+ */
8856
+ async #emitGoalStartTurn() {
8857
+ try {
8858
+ await this.client.extNotification("_qwencode/start_turn", {
8859
+ sessionId: this.sessionId,
8860
+ source: "goal"
8861
+ });
8862
+ } catch (error) {
8863
+ debugLogger6.debug(
8864
+ `Goal start-turn extNotification dropped: ${this.#formatError(error)}`
8865
+ );
8866
+ }
8867
+ }
8868
+ async #emitGoalEndTurn(result) {
8869
+ try {
8870
+ await this.client.extNotification("_qwencode/end_turn", {
8871
+ sessionId: this.sessionId,
8872
+ reason: result?.stopReason ?? "cancelled",
8873
+ source: "goal",
8874
+ promptId: this.config.getSessionId() + "########" + String(this.turn)
8875
+ });
8876
+ } catch (error) {
8877
+ debugLogger6.debug(
8878
+ `Goal end-turn extNotification dropped: ${this.#formatError(error)}`
8879
+ );
8880
+ }
8881
+ }
8820
8882
  async sendAvailableCommandsUpdate() {
8821
8883
  try {
8822
8884
  await this.sendAvailableCommandsUpdateOrThrow();
@@ -9169,25 +9231,53 @@ ${this.pendingRecoveredAgentsNotice}
9169
9231
  return part;
9170
9232
  }, "recordSkippedToolCall");
9171
9233
  const batches = [];
9172
- const handledProviderToolCallIds = new Set(
9173
- this.#getCurrentChat().getHistoryFunctionResponseIds()
9234
+ const handledToolCallFingerprints = new Map(
9235
+ this.#getCurrentChat().getHistoryToolCallFingerprints()
9174
9236
  );
9237
+ const isReplayOfHandledCall = /* @__PURE__ */ __name((fc) => {
9238
+ const providerCallId = getProviderToolCallId(fc) ?? fc.id;
9239
+ return providerCallId ? isReplayOfHandledToolCall(
9240
+ handledToolCallFingerprints,
9241
+ providerCallId,
9242
+ getFunctionCallFingerprint(fc)
9243
+ ) : false;
9244
+ }, "isReplayOfHandledCall");
9175
9245
  const repeatedDuplicateCall = findRepeatedDuplicateProviderToolCall(
9176
9246
  dedupedFunctionCalls,
9177
9247
  (fc) => getProviderToolCallId(fc) ?? fc.id,
9178
- handledProviderToolCallIds,
9248
+ isReplayOfHandledCall,
9179
9249
  this.duplicateProviderToolCallResponseIds
9180
9250
  );
9181
9251
  if (repeatedDuplicateCall) {
9182
9252
  const providerCallId = getProviderToolCallId(repeatedDuplicateCall) ?? repeatedDuplicateCall.id;
9183
- debugLogger6.debug(
9184
- `[Session.runToolCalls] Dropping batch after repeated duplicate provider tool-call id: ${providerCallId} (tool: ${repeatedDuplicateCall.name ?? "unknown_tool"})`
9253
+ const message = `Stopping ACP turn after repeated duplicate provider tool-call id: ${providerCallId} (tool: ${repeatedDuplicateCall.name ?? "unknown_tool"}).`;
9254
+ if (toolLoopState) {
9255
+ recordDaemonLoopDetected(
9256
+ this.config,
9257
+ promptId,
9258
+ "global_tool_call_duplicate" /* GLOBAL_TOOL_CALL_DUPLICATE */,
9259
+ message,
9260
+ toolLoopState
9261
+ );
9262
+ } else {
9263
+ debugLogger6.warn(message);
9264
+ }
9265
+ await Promise.all(
9266
+ dedupedFunctionCalls.map(
9267
+ (fc) => recordSkippedToolCall(
9268
+ fc,
9269
+ LOOP_DETECTED_SKIP_MESSAGE,
9270
+ false,
9271
+ "unknown" /* UNKNOWN */
9272
+ )
9273
+ )
9185
9274
  );
9186
- return await finalizeRunToolResult({
9275
+ const result = await finalizeRunToolResult({
9187
9276
  parts: [],
9188
9277
  stopAfterPermissionCancel: false,
9189
- repeatedDuplicateProviderToolCall: true
9278
+ loopDetected: true
9190
9279
  });
9280
+ return { ...result, parts: [] };
9191
9281
  }
9192
9282
  const pushDuplicateBatch = /* @__PURE__ */ __name((fc, request) => {
9193
9283
  const providerCallId = request.providerCallId ?? request.callId;
@@ -9267,7 +9357,7 @@ ${this.pendingRecoveredAgentsNotice}
9267
9357
  for (const fc of dedupedFunctionCalls) {
9268
9358
  const providerCallId = getProviderToolCallId(fc) ?? fc.id;
9269
9359
  if (providerCallId) {
9270
- if (handledProviderToolCallIds.has(providerCallId)) {
9360
+ if (isReplayOfHandledCall(fc)) {
9271
9361
  const callId = executionCallIds.get(fc);
9272
9362
  pushDuplicateBatch(fc, {
9273
9363
  callId,
@@ -9279,7 +9369,11 @@ ${this.pendingRecoveredAgentsNotice}
9279
9369
  });
9280
9370
  continue;
9281
9371
  }
9282
- handledProviderToolCallIds.add(providerCallId);
9372
+ recordHandledToolCall(
9373
+ handledToolCallFingerprints,
9374
+ providerCallId,
9375
+ getFunctionCallFingerprint(fc)
9376
+ );
9283
9377
  }
9284
9378
  const isAgent = canonicalToolName(fc.name ?? "") === ToolNames.AGENT;
9285
9379
  const last = batches[batches.length - 1];
@@ -9516,7 +9610,6 @@ ${this.pendingRecoveredAgentsNotice}
9516
9610
  return await finalizeRunToolResult({
9517
9611
  parts,
9518
9612
  stopAfterPermissionCancel: true,
9519
- repeatedDuplicateProviderToolCall: false,
9520
9613
  memoryWriteCandidates
9521
9614
  });
9522
9615
  }
@@ -9554,7 +9647,6 @@ ${this.pendingRecoveredAgentsNotice}
9554
9647
  return await finalizeRunToolResult({
9555
9648
  parts,
9556
9649
  stopAfterPermissionCancel: true,
9557
- repeatedDuplicateProviderToolCall: false,
9558
9650
  memoryWriteCandidates
9559
9651
  });
9560
9652
  }
@@ -9564,7 +9656,6 @@ ${this.pendingRecoveredAgentsNotice}
9564
9656
  return await finalizeRunToolResult({
9565
9657
  parts,
9566
9658
  stopAfterPermissionCancel: false,
9567
- repeatedDuplicateProviderToolCall: false,
9568
9659
  memoryWriteCandidates
9569
9660
  });
9570
9661
  } finally {
@@ -11324,7 +11415,11 @@ ${this.pendingRecoveredAgentsNotice}
11324
11415
  initialQueryText += `@${pathName}`;
11325
11416
  }
11326
11417
  }
11327
- const referenceParts = [...extensionParts, ...mcpServerParts];
11418
+ const referenceParts = [
11419
+ ...partsToSend.filter((part) => "inlineData" in part),
11420
+ ...extensionParts,
11421
+ ...mcpServerParts
11422
+ ];
11328
11423
  if (pathSpecsToRead.length > 0) {
11329
11424
  const readResult = await readManyFiles(this.config, {
11330
11425
  paths: pathSpecsToRead,
@@ -11720,9 +11815,137 @@ var ActiveWorkReporter = class {
11720
11815
  }
11721
11816
  };
11722
11817
 
11818
+ // packages/cli/src/acp-integration/child-heap-probe.ts
11819
+ init_esbuild_shims();
11820
+ import {
11821
+ constants as perfConstants,
11822
+ PerformanceObserver
11823
+ } from "node:perf_hooks";
11824
+ import * as v8 from "node:v8";
11825
+ var OLD_GENERATION_SPACES = /* @__PURE__ */ new Set([
11826
+ "old_space",
11827
+ "large_object_space",
11828
+ "code_space",
11829
+ "code_large_object_space",
11830
+ "trusted_space",
11831
+ "trusted_large_object_space",
11832
+ "shared_space",
11833
+ "shared_large_object_space",
11834
+ "shared_trusted_space",
11835
+ "shared_trusted_large_object_space"
11836
+ ]);
11837
+ var NON_OLD_GENERATION_SPACES = /* @__PURE__ */ new Set([
11838
+ "new_space",
11839
+ "new_large_object_space",
11840
+ "read_only_space"
11841
+ ]);
11842
+ var SAMPLE_INTERVAL_MS = 3e4;
11843
+ function shouldProbeChildHeap(env) {
11844
+ return env[QWEN_CODE_SERVE_ENV] === "1";
11845
+ }
11846
+ __name(shouldProbeChildHeap, "shouldProbeChildHeap");
11847
+ function startChildHeapProbe(options = {}) {
11848
+ const readSpaces = options.heapSpaceStatistics ?? (() => v8.getHeapSpaceStatistics());
11849
+ const readHeap = options.heapStatistics ?? (() => v8.getHeapStatistics());
11850
+ let peakOldGenerationBytes = 0;
11851
+ let peakLiveSetBytes = 0;
11852
+ let peakTotalHeapBytes = 0;
11853
+ let majorGcCount = 0;
11854
+ let majorGcMs = 0;
11855
+ let sampled = false;
11856
+ const unclassified = /* @__PURE__ */ new Set();
11857
+ const sample = /* @__PURE__ */ __name((afterMajorGc) => {
11858
+ try {
11859
+ let committed = 0;
11860
+ let live = 0;
11861
+ for (const space of readSpaces()) {
11862
+ const name = space.space_name;
11863
+ if (OLD_GENERATION_SPACES.has(name)) {
11864
+ committed += space.space_size;
11865
+ live += space.space_used_size;
11866
+ } else if (!NON_OLD_GENERATION_SPACES.has(name)) {
11867
+ unclassified.add(name);
11868
+ }
11869
+ }
11870
+ if (committed > peakOldGenerationBytes)
11871
+ peakOldGenerationBytes = committed;
11872
+ if (afterMajorGc && live > peakLiveSetBytes) peakLiveSetBytes = live;
11873
+ sampled = true;
11874
+ } catch {
11875
+ }
11876
+ try {
11877
+ const total = readHeap().total_heap_size;
11878
+ if (total > peakTotalHeapBytes) peakTotalHeapBytes = total;
11879
+ } catch {
11880
+ }
11881
+ }, "sample");
11882
+ sample(false);
11883
+ let observer;
11884
+ try {
11885
+ const observe = options.gcObserver ?? ((callback) => {
11886
+ const performanceObserver = new PerformanceObserver(
11887
+ (list) => callback(list.getEntries())
11888
+ );
11889
+ performanceObserver.observe({ entryTypes: ["gc"] });
11890
+ return performanceObserver;
11891
+ });
11892
+ observer = observe((entries) => {
11893
+ for (const entry of entries) {
11894
+ const isMajor = entry.detail?.kind === perfConstants.NODE_PERFORMANCE_GC_MAJOR;
11895
+ if (isMajor) {
11896
+ majorGcCount += 1;
11897
+ majorGcMs += entry.duration;
11898
+ }
11899
+ sample(isMajor);
11900
+ }
11901
+ });
11902
+ } catch {
11903
+ observer = void 0;
11904
+ }
11905
+ const timer = setInterval(
11906
+ () => sample(false),
11907
+ options.intervalMs ?? SAMPLE_INTERVAL_MS
11908
+ );
11909
+ timer.unref?.();
11910
+ return {
11911
+ snapshot() {
11912
+ sample(false);
11913
+ if (!sampled) return void 0;
11914
+ return {
11915
+ peakOldGenerationBytes,
11916
+ peakLiveSetBytes,
11917
+ peakTotalHeapBytes,
11918
+ majorGcCount,
11919
+ majorGcMs,
11920
+ unclassifiedSpaceNames: [...unclassified]
11921
+ };
11922
+ },
11923
+ stop() {
11924
+ clearInterval(timer);
11925
+ observer?.disconnect();
11926
+ }
11927
+ };
11928
+ }
11929
+ __name(startChildHeapProbe, "startChildHeapProbe");
11930
+
11723
11931
  // packages/cli/src/acp-integration/model-configuration.ts
11724
11932
  init_esbuild_shims();
11725
11933
  var MODEL_CONFIGURATIONS = {
11934
+ "qwen3.5-plus": {
11935
+ reasoning: { thinking: true, toggleOnly: true }
11936
+ },
11937
+ "qwen3.6-plus": {
11938
+ reasoning: { thinking: true, toggleOnly: true }
11939
+ },
11940
+ "qwen3.6-flash": {
11941
+ reasoning: { thinking: true, toggleOnly: true }
11942
+ },
11943
+ "qwen3.7-plus": {
11944
+ reasoning: { thinking: true, toggleOnly: true }
11945
+ },
11946
+ "qwen3.7-max": {
11947
+ reasoning: { thinking: true, toggleOnly: true }
11948
+ },
11726
11949
  "qwen3.8-max": {
11727
11950
  reasoning: {
11728
11951
  thinking: true,
@@ -11732,7 +11955,7 @@ var MODEL_CONFIGURATIONS = {
11732
11955
  }
11733
11956
  };
11734
11957
  function getModelConfiguration(modelId) {
11735
- return modelId === "qwen3.8-max" ? MODEL_CONFIGURATIONS[modelId] : void 0;
11958
+ return modelId ? MODEL_CONFIGURATIONS[modelId] : void 0;
11736
11959
  }
11737
11960
  __name(getModelConfiguration, "getModelConfiguration");
11738
11961
 
@@ -11882,6 +12105,54 @@ var ACP_REASONING_EFFORT_NAMES = {
11882
12105
  max: "Max"
11883
12106
  };
11884
12107
  var WORKSPACE_MEMORY_REMEMBER_CHILD_TIMEOUT_MS = 295e3;
12108
+ function currentGoalSnapshot(config, runtime) {
12109
+ try {
12110
+ return (runtime ?? config.getGoalRuntime()).getSnapshot();
12111
+ } catch {
12112
+ return emptyGoalSnapshot();
12113
+ }
12114
+ }
12115
+ __name(currentGoalSnapshot, "currentGoalSnapshot");
12116
+ function mapGoalControlError(error, config, runtime) {
12117
+ if (error instanceof GoalConflictError) {
12118
+ return new RequestError(-32009, error.message, {
12119
+ errorKind: "goal_conflict",
12120
+ current: error.current
12121
+ });
12122
+ }
12123
+ if (error instanceof GoalInvalidTransitionError) {
12124
+ return new RequestError(-32009, error.message, {
12125
+ errorKind: "goal_invalid_transition",
12126
+ current: error.current
12127
+ });
12128
+ }
12129
+ return new RequestError(
12130
+ -32603,
12131
+ error instanceof Error ? error.message : "Goal persistence failed",
12132
+ {
12133
+ errorKind: "goal_persist_failed",
12134
+ current: currentGoalSnapshot(config, runtime)
12135
+ }
12136
+ );
12137
+ }
12138
+ __name(mapGoalControlError, "mapGoalControlError");
12139
+ async function dispatchGoalControl(config, request) {
12140
+ const requiresTrustedWorkspace = request.action === "create" || request.action === "replace" || request.action === "edit" || request.action === "resume";
12141
+ if (requiresTrustedWorkspace && !config.isTrustedFolder()) {
12142
+ throw new RequestError(-32003, "Workspace is not trusted.", {
12143
+ errorKind: "untrusted_workspace",
12144
+ httpStatus: 403
12145
+ });
12146
+ }
12147
+ let runtime;
12148
+ try {
12149
+ runtime = await config.getGoalRuntimeReady();
12150
+ return await runtime.dispatch(request);
12151
+ } catch (error) {
12152
+ throw mapGoalControlError(error, config, runtime);
12153
+ }
12154
+ }
12155
+ __name(dispatchGoalControl, "dispatchGoalControl");
11885
12156
  var TURN_STATUS_SCAN_PAGE_LIMIT = 500;
11886
12157
  var TURN_STATUS_SCAN_MAX_PAGES = 10;
11887
12158
  async function findSettledTurnResult(reader, sessionId, promptId, workspaceCwd) {
@@ -14388,6 +14659,15 @@ var QwenAgent = class {
14388
14659
  }
14389
14660
  })();
14390
14661
  prevChildCpuAt = Date.now();
14662
+ /**
14663
+ * Lifetime old-generation high-water marks, for the daemon's
14664
+ * `workspaceResource` poll. `undefined` outside a daemon-spawned child — see
14665
+ * {@link shouldProbeChildHeap} for why the gate is where it is.
14666
+ *
14667
+ * Started at construction rather than on the first poll: the peaks that
14668
+ * matter include the ones reached before anyone asks.
14669
+ */
14670
+ childHeapProbe = shouldProbeChildHeap(process.env) ? startChildHeapProbe() : void 0;
14391
14671
  /**
14392
14672
  * Workspace-shared MCP transport pool. Eagerly constructed; lazy
14393
14673
  * w.r.t. actual MCP work — spawns nothing until `pool.acquire`.
@@ -15164,7 +15444,7 @@ var QwenAgent = class {
15164
15444
  }
15165
15445
  this.clientCapabilities = args.clientCapabilities;
15166
15446
  const authMethods = buildAuthMethods();
15167
- const version = "0.21.14";
15447
+ const version = "0.21.15";
15168
15448
  const response = {
15169
15449
  protocolVersion: PROTOCOL_VERSION,
15170
15450
  agentInfo: {
@@ -15330,7 +15610,7 @@ var QwenAgent = class {
15330
15610
  );
15331
15611
  } catch (error) {
15332
15612
  return this.cleanupAfterRequestFailure(error, async () => {
15333
- if (this.sessions.get(config.getSessionId())?.getConfig() !== config) {
15613
+ if (this.sessions.get(normalizeSessionIdForLookup(config.getSessionId()))?.getConfig() !== config) {
15334
15614
  await this.cleanupUnstoredConfig(config);
15335
15615
  }
15336
15616
  });
@@ -15468,10 +15748,17 @@ var QwenAgent = class {
15468
15748
  "existence_check",
15469
15749
  () => this.runWithPinnedRuntimeBaseDir(settings, params.cwd, async () => {
15470
15750
  const sessionService = new SessionService(params.cwd);
15471
- if (await sessionService.sessionExists(sessionId)) {
15472
- return sessionId;
15751
+ try {
15752
+ return await sessionService.findSessionIdIgnoringCase(sessionId);
15753
+ } catch (error) {
15754
+ if (error instanceof SessionIdCaseConflictError) {
15755
+ throw RequestError.internalError(
15756
+ { errorKind: "session_conflict", sessionId },
15757
+ error.message
15758
+ );
15759
+ }
15760
+ throw error;
15473
15761
  }
15474
- return sessionService.findSessionIdIgnoringCase?.(sessionId);
15475
15762
  })
15476
15763
  );
15477
15764
  if (!persistedSessionId) {
@@ -15678,7 +15965,7 @@ var QwenAgent = class {
15678
15965
  return this.cleanupAfterRequestFailure(
15679
15966
  error,
15680
15967
  async () => {
15681
- if (this.sessions.get(config.getSessionId())?.getConfig() !== config) {
15968
+ if (this.sessions.get(normalizeSessionIdForLookup(config.getSessionId()))?.getConfig() !== config) {
15682
15969
  await this.cleanupUnstoredConfig(config);
15683
15970
  }
15684
15971
  },
@@ -15746,10 +16033,17 @@ var QwenAgent = class {
15746
16033
  "existence_check",
15747
16034
  () => this.runWithPinnedRuntimeBaseDir(settings, params.cwd, async () => {
15748
16035
  const sessionService = new SessionService(params.cwd);
15749
- if (await sessionService.sessionExists(sessionId)) {
15750
- return sessionId;
16036
+ try {
16037
+ return await sessionService.findSessionIdIgnoringCase(sessionId);
16038
+ } catch (error) {
16039
+ if (error instanceof SessionIdCaseConflictError) {
16040
+ throw RequestError.internalError(
16041
+ { errorKind: "session_conflict", sessionId },
16042
+ error.message
16043
+ );
16044
+ }
16045
+ throw error;
15751
16046
  }
15752
- return sessionService.findSessionIdIgnoringCase?.(sessionId);
15753
16047
  })
15754
16048
  );
15755
16049
  if (!persistedSessionId) {
@@ -15820,7 +16114,7 @@ var QwenAgent = class {
15820
16114
  return this.cleanupAfterRequestFailure(
15821
16115
  error,
15822
16116
  async () => {
15823
- if (this.sessions.get(config.getSessionId())?.getConfig() !== config) {
16117
+ if (this.sessions.get(normalizeSessionIdForLookup(config.getSessionId()))?.getConfig() !== config) {
15824
16118
  await this.cleanupUnstoredConfig(config);
15825
16119
  }
15826
16120
  },
@@ -15937,16 +16231,23 @@ var QwenAgent = class {
15937
16231
  session.getConfig()
15938
16232
  );
15939
16233
  if (modelReasoning) {
15940
- const selected = value === ACP_REASONING_EFFORT_NONE ? ACP_REASONING_EFFORT_NONE : modelReasoning.efforts.find((effort2) => effort2 === value);
16234
+ const effortValues = modelReasoning.toggleOnly ? void 0 : modelReasoning.efforts;
16235
+ const selected = value === ACP_REASONING_EFFORT_NONE ? ACP_REASONING_EFFORT_NONE : modelReasoning.toggleOnly ? value === ACP_REASONING_EFFORT_DEFAULT ? ACP_REASONING_EFFORT_DEFAULT : void 0 : effortValues?.find((effort2) => effort2 === value);
15941
16236
  if (!selected) {
16237
+ const choices = [
16238
+ ACP_REASONING_EFFORT_NONE,
16239
+ ...effortValues ?? [ACP_REASONING_EFFORT_DEFAULT]
16240
+ ];
15942
16241
  throw RequestError.invalidParams(
15943
16242
  void 0,
15944
- `Unknown reasoning effort: ${value}. Choose one of: ${ACP_REASONING_EFFORT_NONE}, ${modelReasoning.efforts.join(", ")}`
16243
+ `Unknown reasoning effort: ${value}. Choose one of: ${choices.join(", ")}`
15945
16244
  );
15946
16245
  }
15947
16246
  const generation = session.getConfig().getContentGeneratorConfig();
15948
16247
  if (selected === ACP_REASONING_EFFORT_NONE) {
15949
16248
  generation.reasoning = false;
16249
+ } else if (selected === ACP_REASONING_EFFORT_DEFAULT) {
16250
+ generation.reasoning = void 0;
15950
16251
  } else {
15951
16252
  const current = generation.reasoning;
15952
16253
  generation.reasoning = {
@@ -18101,9 +18402,11 @@ var QwenAgent = class {
18101
18402
  rssBytes = process.memoryUsage().rss;
18102
18403
  } catch {
18103
18404
  }
18405
+ const childHeap = this.childHeapProbe?.snapshot();
18104
18406
  return {
18105
18407
  rssBytes,
18106
- cpuPercent
18408
+ cpuPercent,
18409
+ ...childHeap ? { heap: childHeap } : {}
18107
18410
  };
18108
18411
  }
18109
18412
  case SERVE_STATUS_EXT_METHODS.sessionContext: {
@@ -20161,6 +20464,28 @@ ${outputText}
20161
20464
  snapshot: response.snapshot
20162
20465
  };
20163
20466
  }
20467
+ case SERVE_CONTROL_EXT_METHODS.sessionGoalControl: {
20468
+ const sessionId = params["sessionId"];
20469
+ if (typeof sessionId !== "string" || sessionId.length === 0) {
20470
+ throw RequestError.invalidParams(
20471
+ void 0,
20472
+ "Invalid or missing sessionId"
20473
+ );
20474
+ }
20475
+ const request = parseGoalControlRequest(params["request"]);
20476
+ if (!request) {
20477
+ throw RequestError.invalidParams(
20478
+ void 0,
20479
+ "Invalid or missing Goal control request"
20480
+ );
20481
+ }
20482
+ const session = this.sessionOrThrow(sessionId);
20483
+ const response = await dispatchGoalControl(
20484
+ session.getConfig(),
20485
+ request
20486
+ );
20487
+ return { snapshot: response.snapshot };
20488
+ }
20164
20489
  case SERVE_CONTROL_EXT_METHODS.sessionGoalGet: {
20165
20490
  const sessionId = params["sessionId"];
20166
20491
  if (typeof sessionId !== "string" || sessionId.length === 0) {
@@ -21760,7 +22085,7 @@ ${outputText}
21760
22085
  description: `Thinking and reasoning effort for ${rawCurrentModelId}`,
21761
22086
  category: "thought_level",
21762
22087
  type: "select",
21763
- currentValue: config.getContentGeneratorConfig().reasoning === false ? ACP_REASONING_EFFORT_NONE : modelReasoning.efforts.find(
22088
+ currentValue: config.getContentGeneratorConfig().reasoning === false ? ACP_REASONING_EFFORT_NONE : modelReasoning.toggleOnly ? ACP_REASONING_EFFORT_DEFAULT : modelReasoning.efforts.find(
21764
22089
  (effort) => effort === currentModelEffort
21765
22090
  ) ?? modelReasoning.defaultEffort,
21766
22091
  options: [
@@ -21769,7 +22094,13 @@ ${outputText}
21769
22094
  name: "Thinking off",
21770
22095
  description: "Disable thinking for this session"
21771
22096
  },
21772
- ...modelReasoning.efforts.map((effort) => ({
22097
+ ...modelReasoning.toggleOnly ? [
22098
+ {
22099
+ value: ACP_REASONING_EFFORT_DEFAULT,
22100
+ name: "Thinking on",
22101
+ description: "Use the model or provider thinking default"
22102
+ }
22103
+ ] : modelReasoning.efforts.map((effort) => ({
21773
22104
  value: effort,
21774
22105
  name: ACP_REASONING_EFFORT_NAMES[effort],
21775
22106
  description: "Apply this effort to the next request"
@@ -21777,7 +22108,7 @@ ${outputText}
21777
22108
  ],
21778
22109
  _meta: {
21779
22110
  "qwenCode/reasoning": {
21780
- defaultEffort: modelReasoning.defaultEffort
22111
+ ...modelReasoning.toggleOnly ? { toggleOnly: true } : { defaultEffort: modelReasoning.defaultEffort }
21781
22112
  }
21782
22113
  }
21783
22114
  } : {
@@ -21808,7 +22139,7 @@ ${outputText}
21808
22139
  }
21809
22140
  const reasoning = getModelConfiguration(config.getModel())?.reasoning;
21810
22141
  const currentEffort = config.getReasoningEffort?.();
21811
- return reasoning?.thinking && (!currentEffort || reasoning.efforts.includes(currentEffort)) ? reasoning : void 0;
22142
+ return reasoning?.thinking && (reasoning.toggleOnly || !currentEffort || reasoning.efforts.includes(currentEffort)) ? reasoning : void 0;
21812
22143
  }
21813
22144
  buildSelectableModelOptions(config) {
21814
22145
  const currentAuthType = config.getAuthType();