@qwen-code/qwen-code 0.21.1 → 0.21.2

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 (321) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +1 -0
  2. package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
  3. package/bundled/qc-helper/docs/features/channels/github.md +42 -10
  4. package/bundled/qc-helper/docs/features/channels/gitlab.md +171 -0
  5. package/bundled/qc-helper/docs/features/code-review.md +20 -0
  6. package/bundled/qc-helper/docs/features/hooks.md +20 -0
  7. package/bundled/qc-helper/docs/features/sub-agents.md +22 -8
  8. package/bundled/qc-helper/docs/qwen-serve.md +7 -5
  9. package/bundled/review/SKILL.md +1 -1
  10. package/chunks/{MaxSizedBox-VI3ROJJA.js → MaxSizedBox-TQBQ247P.js} +42 -38
  11. package/chunks/{StandaloneSessionPicker-LYXKD2EV.js → StandaloneSessionPicker-2HPTKCLX.js} +58 -54
  12. package/chunks/{acp-startup-profiler-DFVPFQ6C.js → acp-startup-profiler-2C4A5ZTJ.js} +2 -2
  13. package/chunks/{acpAgent-WN5SRDQO.js → acpAgent-PS6EDGH3.js} +431 -168
  14. package/chunks/{agent-K6ECSM64.js → agent-VDOUB35F.js} +38 -34
  15. package/chunks/{agent-headless-NO4Y2HOE.js → agent-headless-EO53EFS2.js} +38 -34
  16. package/chunks/{anthropicContentGenerator-V2QOGVYD.js → anthropicContentGenerator-OFHSZJBF.js} +6 -6
  17. package/chunks/{artifact-tool-6K6U7XYJ.js → artifact-tool-RDN2W7ND.js} +2 -2
  18. package/chunks/{askUserQuestion-GD2IJJ7I.js → askUserQuestion-OZERWH5R.js} +2 -2
  19. package/chunks/{bridge-3KJEWDNE.js → bridge-W7AZSRZQ.js} +42 -38
  20. package/chunks/{build-S6DO7LMM.js → build-GDBLPA24.js} +1 -1
  21. package/chunks/{channel-management-service-XR7GZSWF.js → channel-management-service-5S7YCWX5.js} +20 -5
  22. package/chunks/{channel-settings-store-HW4FXXUA.js → channel-settings-store-JFVRSNER.js} +44 -40
  23. package/chunks/{channel-worker-group-XDPTDWTX.js → channel-worker-group-OVWGYMZS.js} +5 -5
  24. package/chunks/{channel-worker-manager-YYEHVRRE.js → channel-worker-manager-H55GKOQA.js} +5 -5
  25. package/chunks/{channel-worker-supervisor-74HTWA2G.js → channel-worker-supervisor-CABBXYHK.js} +3 -3
  26. package/chunks/{chunk-UWMLWVCA.js → chunk-2IIJTXYF.js} +26 -10
  27. package/chunks/{chunk-VYOXCEPJ.js → chunk-2KKCCLPT.js} +1 -1
  28. package/chunks/{chunk-T4TXDL7G.js → chunk-2LEOZTBT.js} +36 -24
  29. package/chunks/{chunk-XWWKIXVD.js → chunk-3APUUXRF.js} +1 -1
  30. package/chunks/{chunk-TCIFAA7K.js → chunk-3F2WDAV6.js} +2 -2
  31. package/chunks/{chunk-SGFT55XI.js → chunk-3I6DUGQD.js} +1 -1
  32. package/chunks/{chunk-ZURDMIDR.js → chunk-44F4LBWZ.js} +228 -71
  33. package/chunks/{chunk-GKX7E4CO.js → chunk-45IOTAUS.js} +1 -1
  34. package/chunks/{chunk-6QIGFD5W.js → chunk-4KP2F2TE.js} +1 -1
  35. package/chunks/{chunk-X5WNMMIA.js → chunk-54YCNSK5.js} +4241 -1636
  36. package/chunks/{chunk-P4WOAOJW.js → chunk-56Z7QEAQ.js} +67 -21
  37. package/chunks/{chunk-UPUG4GXM.js → chunk-5NNHICSA.js} +3 -3
  38. package/chunks/{chunk-LGAOC3ZS.js → chunk-675H6PLP.js} +1 -1
  39. package/chunks/{chunk-5KTQXHPY.js → chunk-6CQWRWUC.js} +3 -3
  40. package/chunks/chunk-6FMJLI5M.js +1591 -0
  41. package/chunks/{chunk-GZ3RCT54.js → chunk-6MPDY6ZG.js} +1 -1
  42. package/chunks/{chunk-RCUQIPTN.js → chunk-6PQPKTXP.js} +1 -1
  43. package/chunks/{chunk-KCO4FLFJ.js → chunk-6TAASXWL.js} +3 -3
  44. package/chunks/{chunk-JHNRZMHI.js → chunk-77V3VIKL.js} +9 -9
  45. package/chunks/{chunk-CAPPWD3X.js → chunk-7KAXXBER.js} +3 -3
  46. package/chunks/{chunk-A4COXFB3.js → chunk-7SJN2IWT.js} +5 -5
  47. package/chunks/{chunk-Y4IHBGBP.js → chunk-7ULQIS27.js} +1 -1
  48. package/chunks/{chunk-5MKRTI4T.js → chunk-A7Y5H4TX.js} +4 -4
  49. package/chunks/{chunk-CVHIL5IG.js → chunk-AOHY3QJ3.js} +13 -6
  50. package/chunks/chunk-AQ37AY7B.js +93 -0
  51. package/chunks/{chunk-OCESJA77.js → chunk-AUOULH6Q.js} +45 -45
  52. package/chunks/{chunk-UBEPNVDI.js → chunk-BBIQAX4V.js} +3 -3
  53. package/chunks/{chunk-JSD33JG6.js → chunk-CBBP4BMC.js} +23 -9
  54. package/chunks/{chunk-ZHBO7WVX.js → chunk-CNTR4GR6.js} +1 -1
  55. package/chunks/{chunk-PB3MBFKG.js → chunk-CO2U743O.js} +4 -4
  56. package/chunks/{chunk-XZC5VLBZ.js → chunk-CPZAH673.js} +4 -0
  57. package/chunks/{chunk-T3O2B4XO.js → chunk-CU47KXB5.js} +3 -3
  58. package/chunks/{chunk-2LKVPASC.js → chunk-D4HTUMGX.js} +3 -3
  59. package/chunks/{chunk-BNWB5CYE.js → chunk-D6MDRSZ6.js} +7 -7
  60. package/chunks/{chunk-7BAU433D.js → chunk-DEEABGH2.js} +867 -91
  61. package/chunks/{chunk-52ZSWYEG.js → chunk-DQ2O5QOJ.js} +1 -1
  62. package/chunks/{chunk-WBSMNTSV.js → chunk-DSFHVTWD.js} +2 -2
  63. package/chunks/{chunk-PT722TDT.js → chunk-DUNI4EBW.js} +701 -86
  64. package/chunks/{chunk-UHUSJ6X7.js → chunk-E2BHWIDT.js} +19 -4
  65. package/chunks/{chunk-T2QMKU3R.js → chunk-E2FN6SM7.js} +17 -5
  66. package/chunks/{chunk-W4MIWP6M.js → chunk-E6CJ2SMM.js} +2 -2
  67. package/chunks/{chunk-5ZF5XXTS.js → chunk-EQNUDTL6.js} +2 -2
  68. package/chunks/{chunk-2N7CODY5.js → chunk-EU5TBFJI.js} +2 -2
  69. package/chunks/{chunk-TFRMVU6R.js → chunk-FANRZEAJ.js} +1 -1
  70. package/chunks/{chunk-WBL3FJEU.js → chunk-FC4KQFCS.js} +1 -1
  71. package/chunks/{chunk-GNR2RNMP.js → chunk-FCYYAB4S.js} +2 -2
  72. package/chunks/{chunk-FNMZK765.js → chunk-FJ5WUMUQ.js} +1 -1
  73. package/chunks/{chunk-J7OACQDE.js → chunk-FNDXMN7I.js} +71 -49
  74. package/chunks/{chunk-U3E3UQAA.js → chunk-FS674JW4.js} +3 -3
  75. package/chunks/{chunk-S7W2GKIO.js → chunk-G7XXKQYS.js} +2 -0
  76. package/chunks/{chunk-VWOOBLTY.js → chunk-GJ2GBPBD.js} +2 -2
  77. package/chunks/{chunk-TBBV36Y4.js → chunk-GL4JOZXU.js} +4 -4
  78. package/chunks/{chunk-FTD6DP4T.js → chunk-GURGAJTX.js} +2 -1
  79. package/chunks/{chunk-65PQENQP.js → chunk-H6I4PGRV.js} +5 -5
  80. package/chunks/{chunk-7XATOOE7.js → chunk-HC45LTEN.js} +1 -1
  81. package/chunks/{chunk-VCPIZRYH.js → chunk-HIVKI6O6.js} +7 -7
  82. package/chunks/{chunk-HMRM2A3U.js → chunk-HX6RLYUO.js} +3 -3
  83. package/chunks/{chunk-GZXCZHCT.js → chunk-I3G5JWBV.js} +1 -1
  84. package/chunks/{chunk-2XSLTRFZ.js → chunk-I5BT7ADR.js} +2 -2
  85. package/chunks/{chunk-GATT5TKW.js → chunk-IGTHU3T4.js} +1 -1
  86. package/chunks/{chunk-4G2BISNC.js → chunk-IIUGIWWY.js} +1 -1
  87. package/chunks/{chunk-7I5GTCT4.js → chunk-JCJ7LKNA.js} +5104 -4817
  88. package/chunks/{chunk-657BH7VM.js → chunk-JE2CEOBO.js} +2 -2
  89. package/chunks/{chunk-S3TWXGKA.js → chunk-JE7KQ2UP.js} +4 -2
  90. package/chunks/{chunk-BPZKP57P.js → chunk-JJPKFJBT.js} +3 -3
  91. package/chunks/{chunk-6PE7N3A4.js → chunk-JLZ3RBQG.js} +7 -5
  92. package/chunks/{chunk-2LQTH543.js → chunk-JXVC2PL3.js} +2 -2
  93. package/chunks/{chunk-JCW2R7WC.js → chunk-K623ENWT.js} +3 -79
  94. package/chunks/{chunk-T2NCM2ET.js → chunk-K6KS3LTN.js} +2 -749
  95. package/chunks/{chunk-6RPMI2AB.js → chunk-KR32NIAN.js} +6 -6
  96. package/chunks/{chunk-XBYYDKAZ.js → chunk-KWHKHSIS.js} +8 -7
  97. package/chunks/{chunk-EVKE2FZL.js → chunk-KXDONCPU.js} +4 -4
  98. package/chunks/{chunk-5TBMQLGG.js → chunk-L2E5GFAG.js} +2 -2
  99. package/chunks/{chunk-MHAIJPTD.js → chunk-L32VV3ZJ.js} +12 -12
  100. package/chunks/{chunk-OKF7JF3R.js → chunk-LHKCY7DY.js} +3 -3
  101. package/chunks/{chunk-LW3RFMG7.js → chunk-LOY7RWQG.js} +3 -3
  102. package/chunks/{chunk-AQIDMUGU.js → chunk-LYI2PZDK.js} +1 -1
  103. package/chunks/{chunk-YGF33UXG.js → chunk-MB32MS4U.js} +12 -3
  104. package/chunks/{chunk-Y6AXW2OG.js → chunk-MM7TH7ZM.js} +1 -1
  105. package/chunks/{chunk-2DN4J57Y.js → chunk-N4ACHWNH.js} +1 -1
  106. package/chunks/{chunk-M7OONWYU.js → chunk-NBD76HUW.js} +4 -2
  107. package/chunks/{chunk-A2D5BAVP.js → chunk-NHFEMWAZ.js} +1 -1
  108. package/chunks/{chunk-3EFXSQCM.js → chunk-NTDH4IML.js} +7 -7
  109. package/chunks/chunk-O6GEWCJA.js +21 -0
  110. package/chunks/{chunk-7DXQIJID.js → chunk-OFZKFPYG.js} +3 -3
  111. package/chunks/{chunk-JTV5K7NH.js → chunk-P5VC5USY.js} +1 -1
  112. package/chunks/{chunk-Q43KPN7X.js → chunk-P755N4CS.js} +3 -3
  113. package/chunks/{chunk-XFZYFU3I.js → chunk-PCK4B6LR.js} +1 -1
  114. package/chunks/{chunk-EJGJIBRS.js → chunk-PJOHNFIY.js} +3 -3
  115. package/chunks/{chunk-WUZ7H6DP.js → chunk-PVNQRENX.js} +1 -1
  116. package/chunks/{chunk-LO4ROVP4.js → chunk-PZEXDV3H.js} +106 -8
  117. package/chunks/{chunk-WZRWHXFE.js → chunk-Q3T5KA2V.js} +1 -1
  118. package/chunks/{chunk-QIZKCVM3.js → chunk-Q5WZTTWE.js} +4 -4
  119. package/chunks/{chunk-BGTQCTQW.js → chunk-QARJNL2V.js} +3 -3
  120. package/chunks/{chunk-GXIJHV66.js → chunk-QCXGC7QB.js} +3 -3
  121. package/chunks/{chunk-DZLYR4U3.js → chunk-QDK4F2N5.js} +1 -1
  122. package/chunks/{chunk-NOKIVHOL.js → chunk-QTHQ6Z5X.js} +1 -1
  123. package/chunks/{chunk-A3NDJ5SB.js → chunk-R2XWGR75.js} +2 -2
  124. package/chunks/{chunk-JX27F6QS.js → chunk-RDJOB6S3.js} +1 -1
  125. package/chunks/{chunk-TV64SXKD.js → chunk-RG64CDT2.js} +4 -4
  126. package/chunks/{chunk-JFMA7Y5M.js → chunk-RSVPYAGK.js} +5 -5
  127. package/chunks/{chunk-64LQLPL7.js → chunk-SHN4KHDK.js} +3 -3
  128. package/chunks/chunk-T3CHYWJZ.js +758 -0
  129. package/chunks/{chunk-PONHVBRT.js → chunk-TEGJSJDF.js} +2 -2
  130. package/chunks/{chunk-75GFAX4R.js → chunk-THVU3RNH.js} +1 -1
  131. package/chunks/{record-artifact-XAMSFSW4.js → chunk-TIRRPCFS.js} +22 -7
  132. package/chunks/{chunk-HV26XH34.js → chunk-TTJZAIFP.js} +3 -3
  133. package/chunks/{chunk-JMONIXMJ.js → chunk-TZTAV5RH.js} +1 -1
  134. package/chunks/{chunk-7AEJDLRA.js → chunk-UV6KF7T3.js} +2 -2
  135. package/chunks/{chunk-PLDQBIO6.js → chunk-V25K5ID7.js} +1 -1
  136. package/chunks/{chunk-S4WJVPZW.js → chunk-V4XNUDPE.js} +3 -3
  137. package/chunks/{chunk-2FAK6PNM.js → chunk-VEMNQMHA.js} +2 -2
  138. package/chunks/{chunk-CQL64ESB.js → chunk-VMX5RZQH.js} +12 -10
  139. package/chunks/{chunk-EIF3FXTB.js → chunk-W3UKBMSI.js} +63 -18
  140. package/chunks/{chunk-TDL6LB4K.js → chunk-WWCMSZII.js} +21 -9
  141. package/chunks/{chunk-5YKDXHUY.js → chunk-XP4L6KS3.js} +2 -2
  142. package/chunks/{chunk-RPLGZJV2.js → chunk-XQK4XXTN.js} +1 -1
  143. package/chunks/{chunk-KAMYKP7E.js → chunk-XUGZYLDH.js} +1 -1
  144. package/chunks/{chunk-MR5EAQ5M.js → chunk-YANIWTRZ.js} +1 -1
  145. package/chunks/{chunk-3L2SPEBH.js → chunk-YGE3IXJP.js} +1 -1
  146. package/chunks/{chunk-BCZFQXWK.js → chunk-YUFIEIWC.js} +1 -1
  147. package/chunks/{chunk-75MIQ3LV.js → chunk-Z3S5EMOW.js} +4 -4
  148. package/chunks/{chunk-BMFALVGQ.js → chunk-ZMOJ7ISP.js} +1 -1
  149. package/chunks/{chunk-GEBV2JGB.js → chunk-ZPZ7ZJEE.js} +1 -1
  150. package/chunks/{computer-use-ZTIDHMMA.js → computer-use-5QWCFNKD.js} +38 -34
  151. package/chunks/{config-utils-NYSXDMEQ.js → config-utils-WADIDWGG.js} +4 -4
  152. package/chunks/{contextCommand-2PIEU37Z.js → contextCommand-4Z7T7TUM.js} +40 -36
  153. package/chunks/{core-runtime-3XEYLQFK.js → core-runtime-6N4EFC2Q.js} +38 -34
  154. package/chunks/{create-sub-session-SBYUMSSS.js → create-sub-session-62YZWVAY.js} +2 -2
  155. package/chunks/{create-sub-session-R76FVXCI.js → create-sub-session-AEREHZBQ.js} +38 -34
  156. package/chunks/{cron-create-2QK6TCEC.js → cron-create-6E7GIQTG.js} +4 -4
  157. package/chunks/{cron-delete-FDCDFYMG.js → cron-delete-JD26XY3W.js} +4 -4
  158. package/chunks/{cron-list-XN3WVBTP.js → cron-list-CUWFB44G.js} +4 -4
  159. package/chunks/{daemon-Q2AB5Z23.js → daemon-PCNCI5YU.js} +72 -3
  160. package/chunks/{daemon-status-provider-3XJI6CAL.js → daemon-status-provider-DDF7C5M7.js} +46 -42
  161. package/chunks/{daemon-trust-policy-ILUDTLHD.js → daemon-trust-policy-Q4KSOJTR.js} +43 -39
  162. package/chunks/{daemon-trust-policy-monitor-HS3PKKRO.js → daemon-trust-policy-monitor-V6FTE3IY.js} +43 -39
  163. package/chunks/{deferred-core-runtime-X4QV662U.js → deferred-core-runtime-GHJ5GQHK.js} +38 -34
  164. package/chunks/{dist-BSTVRPMT.js → dist-26BIMQT6.js} +276 -16
  165. package/chunks/{dist-SV7Q3AWJ.js → dist-2PERFI23.js} +12 -9
  166. package/chunks/{dist-DOLYHMXE.js → dist-OAOC5OV4.js} +2 -2
  167. package/chunks/{dist-YGBBMK3Z.js → dist-PVEAFLHY.js} +5 -4
  168. package/chunks/{dist-HVRQ2CFL.js → dist-SL2LUMML.js} +1180 -5
  169. package/chunks/dist-ULIG4M5H.js +13415 -0
  170. package/chunks/{dist-IXQEQWRG.js → dist-WGMNT3JQ.js} +1 -1
  171. package/chunks/{dist-SSU66DM4.js → dist-ZHXOBXDN.js} +1 -1
  172. package/chunks/{earlyInputCapture-XKLZT7ZD.js → earlyInputCapture-TQXLLISD.js} +39 -35
  173. package/chunks/{edit-HHGIOTQ2.js → edit-FJEUV6KZ.js} +38 -34
  174. package/chunks/{enter-worktree-ZN7PUQ46.js → enter-worktree-7GE3TZ4P.js} +38 -34
  175. package/chunks/{enterPlanMode-EIFIDSIV.js → enterPlanMode-KR5TMPCJ.js} +38 -34
  176. package/chunks/{environment-XXQ75D2Q.js → environment-SWL3CMB3.js} +40 -36
  177. package/chunks/{errors-4GMVU7CK.js → errors-XQE7BGZV.js} +40 -36
  178. package/chunks/{exit-worktree-GXMI4ATY.js → exit-worktree-CHKTYNCV.js} +38 -34
  179. package/chunks/{exitPlanMode-34UVY7M6.js → exitPlanMode-QYAG6LWX.js} +38 -34
  180. package/chunks/{fast-path-VPIVA7L6.js → fast-path-Z2K7W6DC.js} +2 -2
  181. package/chunks/{gemini-4BWIK4WD.js → gemini-YU4XKEDG.js} +91 -87
  182. package/chunks/{geminiContentGenerator-3XVV5MSS.js → geminiContentGenerator-ZZX6NBO4.js} +6 -6
  183. package/chunks/{glob-TZ2ABCJG.js → glob-VYF5CXSX.js} +38 -34
  184. package/chunks/goal-tools-HGO6VXPB.js +335 -0
  185. package/chunks/{grep-BEF463NA.js → grep-5DP5ZUTW.js} +38 -34
  186. package/chunks/{handleAutoUpdate-L6ERF36Y.js → handleAutoUpdate-UVBJ56DL.js} +42 -38
  187. package/chunks/{i18n-FMM5FDXR.js → i18n-UQNYHEUD.js} +39 -35
  188. package/chunks/{image-gen-HHVLF7HS.js → image-gen-WHPIZNWF.js} +9 -9
  189. package/chunks/{initializer-625TIAIO.js → initializer-GMIICF4W.js} +44 -40
  190. package/chunks/{installationInfo-6AM4I2Y3.js → installationInfo-4MGG4WVI.js} +39 -35
  191. package/chunks/{keychain-token-storage-72IYCAZV.js → keychain-token-storage-IKO4G53C.js} +2 -2
  192. package/chunks/list-CPN2W334.js +92 -0
  193. package/chunks/{list-agents-R6KDXQR3.js → list-agents-PXJ7ZUFB.js} +2 -2
  194. package/chunks/{loadedSettingsAdapter-SPUTNKAV.js → loadedSettingsAdapter-ZQAV5NDO.js} +43 -39
  195. package/chunks/{loggingContentGenerator-LKOF7XI7.js → loggingContentGenerator-5E7W4IEP.js} +18 -18
  196. package/chunks/{loop-wakeup-3IQKCYAH.js → loop-wakeup-Y26NQZ5I.js} +13 -6
  197. package/chunks/{ls-DKZ37A7N.js → ls-ONQTTMQR.js} +4 -4
  198. package/chunks/{lsp-QNWN7KN3.js → lsp-YGHHRGMD.js} +2 -2
  199. package/chunks/{managed-npm-update-ACQGGIN5.js → managed-npm-update-MKKAXYXA.js} +39 -35
  200. package/chunks/{mcp-SZLHKFJW.js → mcp-V5NTJF6X.js} +43 -39
  201. package/chunks/{monitor-DF52UVHI.js → monitor-CO3ASY6E.js} +38 -34
  202. package/chunks/nonInteractiveCli-ZJYEOO7U.js +148 -0
  203. package/chunks/{notebook-edit-FCWS4XVN.js → notebook-edit-Z7AEE6FM.js} +38 -34
  204. package/chunks/{openaiContentGenerator-7LDK3DCJ.js → openaiContentGenerator-CA3MQOP3.js} +19 -19
  205. package/chunks/{pidfile-6ERW3DF4.js → pidfile-NL7MKDRU.js} +39 -35
  206. package/chunks/{processUtils-COKZAMUP.js → processUtils-PB5K2DYH.js} +2 -2
  207. package/chunks/{qwenContentGenerator-TKWUMR7N.js → qwenContentGenerator-JYFNDCOS.js} +44 -40
  208. package/chunks/{qwenOAuth2-7HMU47SF.js → qwenOAuth2-W2ALKQDD.js} +8 -8
  209. package/chunks/{read-file-X6DRC574.js → read-file-IEOR5H5W.js} +11 -11
  210. package/chunks/{read-mcp-resource-GFTWYXMK.js → read-mcp-resource-U2IJN5HM.js} +2 -2
  211. package/chunks/record-artifact-MGPJ7EG4.js +21 -0
  212. package/chunks/{resumeHistoryUtils-PFPM2GWM.js → resumeHistoryUtils-BNBTP5AS.js} +44 -40
  213. package/chunks/{ripGrep-OWV2IVJC.js → ripGrep-UMQODKEB.js} +38 -34
  214. package/chunks/{run-qwen-serve-TSTCO4XE.js → run-qwen-serve-RN2R6QQW.js} +116 -65
  215. package/chunks/{runtime-DAUPSUKI.js → runtime-QFJ2MJF5.js} +48 -44
  216. package/chunks/{scheduler-KMADMT26.js → scheduler-AMYUFOZI.js} +38 -34
  217. package/chunks/{sdk-exporters-http-WO556XNU.js → sdk-exporters-http-4BQANSJ6.js} +3 -3
  218. package/chunks/{sdk-impl-LPAVACSF.js → sdk-impl-Z4VXWVFX.js} +3 -3
  219. package/chunks/{send-message-SAWK4DZX.js → send-message-PMP4ATVM.js} +6 -11
  220. package/chunks/{serve-NNRWS6F4.js → serve-EIIYJVX3.js} +43 -39
  221. package/chunks/{server-WEH7DVCH.js → server-EP2LLAPD.js} +1768 -712
  222. package/chunks/{session-WXC56V2I.js → session-GMPZBLOW.js} +83 -79
  223. package/chunks/{settings-DJDXFDZ3.js → settings-LN7RNKBS.js} +47 -43
  224. package/chunks/{shell-JN5VRQXD.js → shell-EM2OWU5X.js} +38 -34
  225. package/chunks/{skill-SGXPKJCS.js → skill-T5VPSK73.js} +17 -16
  226. package/chunks/{skill-settings-VJ5PDMZI.js → skill-settings-GMR3GMNY.js} +42 -38
  227. package/chunks/{spawnChannel-ETMJW7YX.js → spawnChannel-YPCU62DI.js} +40 -36
  228. package/chunks/{standalone-update-MK3Z7KBI.js → standalone-update-JAKIM2NF.js} +40 -36
  229. package/chunks/{startInteractiveUI-ZCGIXPGT.js → startInteractiveUI-YETQWGYF.js} +774 -779
  230. package/chunks/{syntheticOutput-355CB6CJ.js → syntheticOutput-D7E6ZFKR.js} +3 -3
  231. package/chunks/{task-create-INGWNUG4.js → task-create-NFCYD43L.js} +10 -9
  232. package/chunks/{task-list-5XNNGTF4.js → task-list-TAVMGEVD.js} +5 -5
  233. package/chunks/{task-stop-4ROAOBXH.js → task-stop-ZDF2UJRM.js} +2 -2
  234. package/chunks/{task-update-CRK5VWWZ.js → task-update-6L7LHGEX.js} +10 -9
  235. package/chunks/{team-create-QQGAJG7P.js → team-create-LFJ6HGNY.js} +38 -34
  236. package/chunks/{team-delete-S2RCXA4P.js → team-delete-DPGGRQBU.js} +5 -5
  237. package/chunks/{team-plan-approval-RT7Q5R6O.js → team-plan-approval-C2KLSDGO.js} +38 -34
  238. package/chunks/{theme-manager-EEWIQJ7J.js → theme-manager-JQ3ZGBP5.js} +39 -35
  239. package/chunks/{todoWrite-7WM3VDMY.js → todoWrite-2UO5G6G6.js} +32 -4
  240. package/chunks/{tool-search-Z3Z4AYKP.js → tool-search-FAZBFRJZ.js} +15 -14
  241. package/chunks/{total-session-admission-44JKRWQD.js → total-session-admission-5CALIVYO.js} +42 -38
  242. package/chunks/{trustedFolders-X2JEIO57.js → trustedFolders-KOPSP44S.js} +39 -35
  243. package/chunks/{update-relaunch-VWNPYDIP.js → update-relaunch-6QL2TICS.js} +5 -5
  244. package/chunks/{updateCheck-KAQH67DV.js → updateCheck-4Q6RIKFW.js} +41 -37
  245. package/chunks/{useAutoAcceptIndicator-JH6BCF7S.js → useAutoAcceptIndicator-Q5BMKZV3.js} +47 -43
  246. package/chunks/{validateNonInterActiveAuth-GIUJ2UFS.js → validateNonInterActiveAuth-GKOC5F6Z.js} +79 -75
  247. package/chunks/{version-BGLYIJUY.js → version-VSATY2LD.js} +1 -1
  248. package/chunks/{web-fetch-OTDU4VQF.js → web-fetch-JCLKL6NL.js} +14 -14
  249. package/chunks/{web-search-FP6SIHPR.js → web-search-DSQTFUBX.js} +8 -8
  250. package/chunks/{workflow-YCIVBYSB.js → workflow-M6QAVKVJ.js} +41 -37
  251. package/chunks/workspace-providers-status-YKLTLMJA.js +89 -0
  252. package/chunks/{workspace-registration-store-OTMS3H4C.js → workspace-registration-store-5DMGKU64.js} +1 -1
  253. package/chunks/{workspace-registry-O63R6IZ4.js → workspace-registry-PTYUSYXX.js} +42 -38
  254. package/chunks/{workspace-service-M6LLHKJ5.js → workspace-service-25ML3T47.js} +48 -44
  255. package/chunks/{workspace-skills-status-C2V7BAIS.js → workspace-skills-status-YKZWOYRX.js} +44 -40
  256. package/chunks/{workspace-trust-reconciler-IBUPOUJN.js → workspace-trust-reconciler-5FI2S3OS.js} +47 -43
  257. package/chunks/write-file-AY7VLP5X.js +78 -0
  258. package/chunks/zoom-image-S4LJZMD5.js +224 -0
  259. package/cli.js +50 -16
  260. package/package.json +3 -3
  261. package/web-shell/assets/{arc-75-Wdeo3.js → arc-xjArKHU2.js} +1 -1
  262. package/web-shell/assets/{architectureDiagram-3BPJPVTR-FKeXQbyP.js → architectureDiagram-3BPJPVTR-BgrQDNYG.js} +1 -1
  263. package/web-shell/assets/{blockDiagram-GPEHLZMM-CY0vc-A3.js → blockDiagram-GPEHLZMM-CXxWC-1_.js} +1 -1
  264. package/web-shell/assets/{c4Diagram-AAUBKEIU-CNP-A-8u.js → c4Diagram-AAUBKEIU-Dx1tLm3v.js} +1 -1
  265. package/web-shell/assets/channel-B1cyk94G.js +1 -0
  266. package/web-shell/assets/{chunk-2J33WTMH-GybS4Gii.js → chunk-2J33WTMH-CBxjogVR.js} +1 -1
  267. package/web-shell/assets/{chunk-4BX2VUAB-02H91V8v.js → chunk-4BX2VUAB-izb-rY5W.js} +1 -1
  268. package/web-shell/assets/{chunk-55IACEB6-D3M-2VT6.js → chunk-55IACEB6-NzLyvSb8.js} +1 -1
  269. package/web-shell/assets/{chunk-727SXJPM-CCu29u4H.js → chunk-727SXJPM-DVyKb0dl.js} +1 -1
  270. package/web-shell/assets/{chunk-AQP2D5EJ-CaFKWgrn.js → chunk-AQP2D5EJ-BtqL7NzB.js} +1 -1
  271. package/web-shell/assets/{chunk-FMBD7UC4-ZZpPqIwQ.js → chunk-FMBD7UC4-iNpdKIO0.js} +1 -1
  272. package/web-shell/assets/{chunk-ND2GUHAM-D22DqGs8.js → chunk-ND2GUHAM-DI7cbFmX.js} +1 -1
  273. package/web-shell/assets/{chunk-QZHKN3VN-Bu85S0fw.js → chunk-QZHKN3VN-3Y_-xFYs.js} +1 -1
  274. package/web-shell/assets/classDiagram-4FO5ZUOK-BpBYZoRE.js +1 -0
  275. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BpBYZoRE.js +1 -0
  276. package/web-shell/assets/{cose-bilkent-S5V4N54A-f1CK1Gwe.js → cose-bilkent-S5V4N54A--raRatZn.js} +1 -1
  277. package/web-shell/assets/{dagre-BM42HDAG-D0Ow8F_n.js → dagre-BM42HDAG-B8SU70mO.js} +1 -1
  278. package/web-shell/assets/{diagram-2AECGRRQ-BPrmTWp8.js → diagram-2AECGRRQ-ewgoakXo.js} +1 -1
  279. package/web-shell/assets/{diagram-5GNKFQAL-HccuFAzy.js → diagram-5GNKFQAL-Bm_JLTnS.js} +1 -1
  280. package/web-shell/assets/{diagram-KO2AKTUF-BrS76mbA.js → diagram-KO2AKTUF-DEIUjUy9.js} +1 -1
  281. package/web-shell/assets/{diagram-LMA3HP47-V7T9lU-5.js → diagram-LMA3HP47-C2Wmrpj-.js} +1 -1
  282. package/web-shell/assets/{diagram-OG6HWLK6-DKidyJMR.js → diagram-OG6HWLK6-CtYe6bFx.js} +1 -1
  283. package/web-shell/assets/{erDiagram-TEJ5UH35-DBadZIkp.js → erDiagram-TEJ5UH35-DfpHcWLV.js} +1 -1
  284. package/web-shell/assets/{flowDiagram-I6XJVG4X-BymfqdNJ.js → flowDiagram-I6XJVG4X-CAiUhio5.js} +1 -1
  285. package/web-shell/assets/{ganttDiagram-6RSMTGT7-DOw340jf.js → ganttDiagram-6RSMTGT7-CYc7ezr4.js} +1 -1
  286. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-_8EiD8sl.js → gitGraphDiagram-PVQCEYII-70lbkcRS.js} +1 -1
  287. package/web-shell/assets/index-C1k3PDuU.css +5 -0
  288. package/web-shell/assets/index-C2GE3DAF.js +74 -0
  289. package/web-shell/assets/index-DZLIXILO.js +1750 -0
  290. package/web-shell/assets/{index-CKIadvET.js → index-Ww86nT9f.js} +1 -1
  291. package/web-shell/assets/{infoDiagram-5YYISTIA-D61KYQBu.js → infoDiagram-5YYISTIA-C7e8DWPa.js} +1 -1
  292. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CsiXSpNx.js → ishikawaDiagram-YF4QCWOH-BYLr2op-.js} +1 -1
  293. package/web-shell/assets/{journeyDiagram-JHISSGLW-Sdfionyh.js → journeyDiagram-JHISSGLW-hEibAHKX.js} +1 -1
  294. package/web-shell/assets/{kanban-definition-UN3LZRKU-C3WI3Cnl.js → kanban-definition-UN3LZRKU-F2rt8Uhp.js} +1 -1
  295. package/web-shell/assets/{linear-Dpigcc62.js → linear-DPhyNezd.js} +1 -1
  296. package/web-shell/assets/{mermaid.core-Ct97pqgW.js → mermaid.core-ZUtnug0n.js} +5 -5
  297. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BzeaN0rB.js → mindmap-definition-RKZ34NQL-DDWcMoi8.js} +1 -1
  298. package/web-shell/assets/{pieDiagram-4H26LBE5-CvjgcbVD.js → pieDiagram-4H26LBE5-CTRKzw1_.js} +1 -1
  299. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BUzgTNdH.js → quadrantDiagram-W4KKPZXB-CAEwYG_z.js} +1 -1
  300. package/web-shell/assets/{requirementDiagram-4Y6WPE33-B7zKlgUQ.js → requirementDiagram-4Y6WPE33-CRjnH9D9.js} +1 -1
  301. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Bb9CQgrT.js → sankeyDiagram-5OEKKPKP-LPQT_sOd.js} +1 -1
  302. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DJ6V7itG.js → sequenceDiagram-3UESZ5HK-Ht2Iqvb0.js} +1 -1
  303. package/web-shell/assets/{stateDiagram-AJRCARHV-IImflERY.js → stateDiagram-AJRCARHV-CIUdqOXu.js} +1 -1
  304. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BmqqQZ6w.js +1 -0
  305. package/web-shell/assets/{timeline-definition-PNZ67QCA-6Q_uWHKh.js → timeline-definition-PNZ67QCA-BcilneZF.js} +1 -1
  306. package/web-shell/assets/{vennDiagram-CIIHVFJN-TmyKyjwv.js → vennDiagram-CIIHVFJN-BljwiiH1.js} +1 -1
  307. package/web-shell/assets/{wardley-L42UT6IY-CRh9uiPv.js → wardley-L42UT6IY-DeKjkYjq.js} +1 -1
  308. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-59TKAW8w.js → wardleyDiagram-YWT4CUSO-L3U1H7KG.js} +1 -1
  309. package/web-shell/assets/{xychartDiagram-2RQKCTM6-GCSUIK2L.js → xychartDiagram-2RQKCTM6-IJnWsgMT.js} +1 -1
  310. package/web-shell/index.html +2 -2
  311. package/chunks/list-L2GA674Y.js +0 -88
  312. package/chunks/nonInteractiveCli-5T7KYKLK.js +0 -144
  313. package/chunks/workspace-providers-status-S35YAIUS.js +0 -85
  314. package/chunks/write-file-3BZC3EAE.js +0 -72
  315. package/chunks/zoom-image-TZ6S2O57.js +0 -351
  316. package/web-shell/assets/channel-DPYMT76A.js +0 -1
  317. package/web-shell/assets/classDiagram-4FO5ZUOK--JstsIgL.js +0 -1
  318. package/web-shell/assets/classDiagram-v2-Q7XG4LA2--JstsIgL.js +0 -1
  319. package/web-shell/assets/index-D1eXNRHe.js +0 -1389
  320. package/web-shell/assets/index-DVLD4CQq.css +0 -5
  321. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CYI_YoNR.js +0 -1
@@ -12,53 +12,48 @@ import {
12
12
  matchMcpServerByRef,
13
13
  parseExtensionRef,
14
14
  parseMcpServerRef
15
- } from "./chunk-TV64SXKD.js";
15
+ } from "./chunk-RG64CDT2.js";
16
16
  import {
17
17
  getAvailableCommands,
18
18
  handleSlashCommand,
19
19
  insertAfterFunctionResponses,
20
20
  isSlashCommand,
21
21
  normalizePartList
22
- } from "./chunk-J7OACQDE.js";
22
+ } from "./chunk-FNDXMN7I.js";
23
+ import {
24
+ collectContextData,
25
+ formatContextUsageText
26
+ } from "./chunk-H6I4PGRV.js";
23
27
  import {
24
28
  recomputeMcpGating
25
- } from "./chunk-A4COXFB3.js";
29
+ } from "./chunk-7SJN2IWT.js";
26
30
  import {
27
31
  appEvents,
28
32
  buildDisabledSkillNamesProvider,
29
33
  cleanupReviewWorktreeLeases,
30
34
  loadCliConfig,
31
35
  normalizeDisabledToolList
32
- } from "./chunk-7BAU433D.js";
36
+ } from "./chunk-DEEABGH2.js";
33
37
  import {
34
38
  getCommandSubcommandNames
35
- } from "./chunk-JX27F6QS.js";
39
+ } from "./chunk-RDJOB6S3.js";
36
40
  import {
37
41
  getEffectiveSupportedModes
38
- } from "./chunk-7AEJDLRA.js";
39
- import "./chunk-PQNHRFJC.js";
40
- import "./chunk-M7OONWYU.js";
41
- import {
42
- collectContextData,
43
- formatContextUsageText
44
- } from "./chunk-65PQENQP.js";
42
+ } from "./chunk-UV6KF7T3.js";
45
43
  import "./chunk-4WGODMVR.js";
46
- import "./chunk-GATT5TKW.js";
47
- import "./chunk-EVKE2FZL.js";
48
- import "./chunk-T3O2B4XO.js";
49
- import "./chunk-7DXQIJID.js";
50
- import "./chunk-YAF2MQZ6.js";
51
- import {
52
- computeCpuPercent
53
- } from "./chunk-HGT6JR3U.js";
54
- import "./chunk-S4WJVPZW.js";
55
- import "./chunk-6H67XLET.js";
44
+ import "./chunk-PQNHRFJC.js";
45
+ import "./chunk-NBD76HUW.js";
46
+ import "./chunk-IGTHU3T4.js";
56
47
  import {
57
48
  beginAcpBootstrapConfigProfiling,
58
49
  buildAndFreezeAcpStartupProfile,
59
50
  endAcpBootstrapConfigProfiling,
60
51
  markAcpStartup
61
- } from "./chunk-3L2SPEBH.js";
52
+ } from "./chunk-YGE3IXJP.js";
53
+ import "./chunk-KXDONCPU.js";
54
+ import "./chunk-CU47KXB5.js";
55
+ import "./chunk-OFZKFPYG.js";
56
+ import "./chunk-YAF2MQZ6.js";
62
57
  import {
63
58
  GENERATION_MAX_PROMPT_BYTES,
64
59
  GENERATION_TIMEOUT_MS,
@@ -78,7 +73,7 @@ import {
78
73
  shouldSuppressRememberErrorDetails,
79
74
  workspaceMemoryFailureCode,
80
75
  workspaceMemoryFailureDiagnostics
81
- } from "./chunk-6PE7N3A4.js";
76
+ } from "./chunk-JLZ3RBQG.js";
82
77
  import {
83
78
  HistoryReplayer,
84
79
  MessageEmitter,
@@ -88,48 +83,57 @@ import {
88
83
  goalTerminalEventToHistoryItem,
89
84
  recordGoalStatusItem,
90
85
  restoreGoalFromHistory
91
- } from "./chunk-LO4ROVP4.js";
92
- import "./chunk-LGAOC3ZS.js";
93
- import "./chunk-XFZYFU3I.js";
86
+ } from "./chunk-PZEXDV3H.js";
87
+ import "./chunk-675H6PLP.js";
94
88
  import "./chunk-YDLJGZHL.js";
89
+ import "./chunk-PCK4B6LR.js";
95
90
  import "./chunk-2MIN6GRR.js";
96
91
  import "./chunk-QHTIBUWB.js";
97
92
  import {
98
93
  isTerminalGoalStatusKind
99
94
  } from "./chunk-QTERJVPZ.js";
100
95
  import "./chunk-3Z43GZUQ.js";
96
+ import {
97
+ computeCpuPercent
98
+ } from "./chunk-HGT6JR3U.js";
101
99
  import "./chunk-RXFQM6FQ.js";
100
+ import "./chunk-V4XNUDPE.js";
101
+ import "./chunk-6H67XLET.js";
102
+ import {
103
+ mapSkillConfigToStatus
104
+ } from "./chunk-L55JWS76.js";
102
105
  import {
103
106
  PERMISSION_RULE_TYPES,
104
107
  PermissionRulesValidationError,
105
108
  buildPermissionSettings,
106
109
  normalizePermissionRules,
107
110
  readPermissionRuleSet
108
- } from "./chunk-MR5EAQ5M.js";
111
+ } from "./chunk-YANIWTRZ.js";
109
112
  import {
110
113
  MAX_AUDIO_BYTES,
111
114
  sanitizeVoiceErrorMessage,
112
115
  transcribeVoiceAudio
113
- } from "./chunk-CAPPWD3X.js";
116
+ } from "./chunk-7KAXXBER.js";
114
117
  import {
115
118
  readVoiceModel
116
- } from "./chunk-JTV5K7NH.js";
117
- import "./chunk-ZHBO7WVX.js";
119
+ } from "./chunk-P5VC5USY.js";
120
+ import "./chunk-CNTR4GR6.js";
118
121
  import {
119
122
  createLoadedSettingsAdapter
120
- } from "./chunk-WUZ7H6DP.js";
123
+ } from "./chunk-PVNQRENX.js";
121
124
  import "./chunk-VXZBKKQR.js";
122
- import "./chunk-QIZKCVM3.js";
125
+ import "./chunk-Q5WZTTWE.js";
123
126
  import "./chunk-E5Z2AVNV.js";
124
127
  import {
128
+ SESSION_SOURCE_META_KEY,
125
129
  parseSessionSource
126
- } from "./chunk-ZURDMIDR.js";
130
+ } from "./chunk-44F4LBWZ.js";
127
131
  import "./chunk-GLWP3FDB.js";
128
132
  import "./chunk-XCGIMOLN.js";
129
133
  import "./chunk-OCPBI7J5.js";
130
134
  import {
131
135
  ndJsonStream
132
- } from "./chunk-KAMYKP7E.js";
136
+ } from "./chunk-XUGZYLDH.js";
133
137
  import {
134
138
  ACP_ROUTE_ID_PREFIX,
135
139
  buildAcpModelOptions,
@@ -138,10 +142,7 @@ import {
138
142
  parseAcpModelOption,
139
143
  resolveAcpModelOption,
140
144
  sanitizeProviderBaseUrl
141
- } from "./chunk-KCO4FLFJ.js";
142
- import {
143
- mapSkillConfigToStatus
144
- } from "./chunk-L55JWS76.js";
145
+ } from "./chunk-6TAASXWL.js";
145
146
  import {
146
147
  ACP_PREFLIGHT_KINDS,
147
148
  IDLE_HOOK_EVENTS,
@@ -149,16 +150,16 @@ import {
149
150
  SERVE_STATUS_EXT_METHODS,
150
151
  STATUS_SCHEMA_VERSION,
151
152
  mapDomainErrorToErrorKind
152
- } from "./chunk-FTD6DP4T.js";
153
+ } from "./chunk-GURGAJTX.js";
153
154
  import {
154
155
  resolveSkillSettings
155
156
  } from "./chunk-Z4X5MTRT.js";
156
- import "./chunk-BNWB5CYE.js";
157
- import "./chunk-5MKRTI4T.js";
157
+ import "./chunk-D6MDRSZ6.js";
158
+ import "./chunk-A7Y5H4TX.js";
158
159
  import "./chunk-57OAHC2Y.js";
159
- import "./chunk-2XSLTRFZ.js";
160
- import "./chunk-TFRMVU6R.js";
161
- import "./chunk-XBYYDKAZ.js";
160
+ import "./chunk-I5BT7ADR.js";
161
+ import "./chunk-FANRZEAJ.js";
162
+ import "./chunk-KWHKHSIS.js";
162
163
  import "./chunk-V6WHFGST.js";
163
164
  import {
164
165
  CHANNEL_STARTUP_PROFILE_META_KEY,
@@ -166,6 +167,7 @@ import {
166
167
  CLIENT_MCP_OVER_WS_CONFIG_FLAG,
167
168
  DAEMON_CHANNEL_DELIVERY_META_KEY,
168
169
  LOAD_REPLAY_BULK_MODE,
170
+ LOAD_REPLAY_HIDE_INHERITED_META_KEY,
169
171
  LOAD_REPLAY_META_KEY,
170
172
  LOAD_REPLAY_MODE_META_KEY,
171
173
  LOAD_REPLAY_PAGE_SIZE_META_KEY,
@@ -173,8 +175,9 @@ import {
173
175
  MID_TURN_QUEUE_DRAIN_METHOD,
174
176
  PROMPT_CANCEL_METHOD,
175
177
  TODO_STOP_GUARD_CONTINUATION_CLAIM_METHOD,
176
- TODO_STOP_GUARD_QUEUE_RELEASE_METHOD
177
- } from "./chunk-XZC5VLBZ.js";
178
+ TODO_STOP_GUARD_QUEUE_RELEASE_METHOD,
179
+ WORKTREE_MCP_DEFER_META_KEY
180
+ } from "./chunk-CPZAH673.js";
178
181
  import {
179
182
  NOT_CURRENTLY_GENERATING_CANCEL_MESSAGE,
180
183
  isNotCurrentlyGeneratingCancelError
@@ -182,13 +185,13 @@ import {
182
185
  import "./chunk-2RFKHEXL.js";
183
186
  import "./chunk-FYJ7W2PI.js";
184
187
  import "./chunk-U4VTUMMK.js";
185
- import "./chunk-GZ3RCT54.js";
188
+ import "./chunk-6MPDY6ZG.js";
186
189
  import "./chunk-ALMR3E6Q.js";
187
190
  import "./chunk-BK2UNYWD.js";
188
191
  import "./chunk-M5GB774H.js";
189
- import "./chunk-4G2BISNC.js";
190
- import "./chunk-GEBV2JGB.js";
191
- import "./chunk-7I5GTCT4.js";
192
+ import "./chunk-IIUGIWWY.js";
193
+ import "./chunk-ZPZ7ZJEE.js";
194
+ import "./chunk-JCJ7LKNA.js";
192
195
  import {
193
196
  AgentSideConnection,
194
197
  PROTOCOL_VERSION,
@@ -197,7 +200,7 @@ import {
197
200
  import {
198
201
  assembleMcpServers,
199
202
  loadMcpApprovals
200
- } from "./chunk-6RPMI2AB.js";
203
+ } from "./chunk-KR32NIAN.js";
201
204
  import {
202
205
  getOutputLanguageFilePath,
203
206
  getPersistScopeForModelSelection,
@@ -206,35 +209,35 @@ import {
206
209
  resolveOutputLanguageOrPreserveAuto,
207
210
  updateOutputLanguageFile,
208
211
  writeOutputLanguageAndRegisterPath
209
- } from "./chunk-EIF3FXTB.js";
212
+ } from "./chunk-W3UKBMSI.js";
210
213
  import "./chunk-RKUWKYED.js";
214
+ import "./chunk-GOXKNSDZ.js";
215
+ import {
216
+ getSystemDefaultsPath,
217
+ getSystemSettingsPath
218
+ } from "./chunk-IDS7MSUP.js";
211
219
  import {
212
220
  SUPPORTED_LANGUAGES,
213
221
  getCurrentLanguage,
214
222
  setLanguageAsync
215
- } from "./chunk-TCIFAA7K.js";
223
+ } from "./chunk-3F2WDAV6.js";
216
224
  import {
217
225
  findEnvFiles,
218
226
  preResolveHomeEnvOverrides,
219
227
  reloadEnvironment
220
- } from "./chunk-2N7CODY5.js";
221
- import "./chunk-VWOOBLTY.js";
222
- import "./chunk-GOXKNSDZ.js";
223
- import {
224
- getSystemDefaultsPath,
225
- getSystemSettingsPath
226
- } from "./chunk-IDS7MSUP.js";
228
+ } from "./chunk-EU5TBFJI.js";
227
229
  import "./chunk-6PEXNQTX.js";
228
- import "./chunk-XFSFZCM5.js";
229
- import "./chunk-VYOXCEPJ.js";
230
- import "./chunk-VJNBRRZG.js";
230
+ import "./chunk-GJ2GBPBD.js";
231
231
  import {
232
232
  isFolderTrustEnabled,
233
233
  isWorkspaceTrusted,
234
234
  loadTrustedFolders
235
- } from "./chunk-Q43KPN7X.js";
235
+ } from "./chunk-P755N4CS.js";
236
236
  import "./chunk-ALGGS7UH.js";
237
237
  import "./chunk-MR3PXB6E.js";
238
+ import "./chunk-XFSFZCM5.js";
239
+ import "./chunk-2KKCCLPT.js";
240
+ import "./chunk-VJNBRRZG.js";
238
241
  import {
239
242
  writeStderrLine,
240
243
  writeStderrLineSafe
@@ -339,7 +342,6 @@ import {
339
342
  normalizeEventPayload,
340
343
  normalizeSnapshotPayload,
341
344
  persistPermissionOutcome,
342
- promptIdContext,
343
345
  readManyFiles,
344
346
  recordAllow,
345
347
  recordFallbackApprove,
@@ -362,57 +364,65 @@ import {
362
364
  unregisterGoalHook,
363
365
  updateSetting,
364
366
  validatePlanModeShellApproval,
365
- validatePlanModeShellContext
366
- } from "./chunk-X5WNMMIA.js";
367
+ validatePlanModeShellContext,
368
+ wrapUserPromptSubmitContext
369
+ } from "./chunk-54YCNSK5.js";
370
+ import "./chunk-5M6IDOMF.js";
367
371
  import "./chunk-TWPJO254.js";
368
372
  import {
369
373
  external_exports
370
374
  } from "./chunk-H6XPXXMH.js";
371
- import "./chunk-5M6IDOMF.js";
372
- import "./chunk-UPUG4GXM.js";
373
- import "./chunk-64LQLPL7.js";
374
- import "./chunk-2LQTH543.js";
375
+ import "./chunk-AOHY3QJ3.js";
376
+ import "./chunk-5NNHICSA.js";
377
+ import "./chunk-SHN4KHDK.js";
378
+ import "./chunk-JXVC2PL3.js";
375
379
  import "./chunk-KRXPRVGL.js";
376
- import "./chunk-BMFALVGQ.js";
377
- import "./chunk-CVHIL5IG.js";
378
- import "./chunk-IRH27ZC2.js";
379
- import "./chunk-QHWCP53L.js";
380
- import "./chunk-PONHVBRT.js";
381
- import "./chunk-T26EAKDL.js";
382
380
  import {
383
381
  parsePositiveIntegerEnv
384
382
  } from "./chunk-6PVPNMXU.js";
383
+ import "./chunk-ZMOJ7ISP.js";
384
+ import "./chunk-IRH27ZC2.js";
385
+ import "./chunk-QHWCP53L.js";
386
+ import "./chunk-TEGJSJDF.js";
387
+ import "./chunk-TIRRPCFS.js";
388
+ import {
389
+ promptIdContext,
390
+ todoWorkChainContext
391
+ } from "./chunk-O6GEWCJA.js";
392
+ import "./chunk-T26EAKDL.js";
385
393
  import "./chunk-CPBF7KYF.js";
386
- import "./chunk-6QIGFD5W.js";
394
+ import "./chunk-4KP2F2TE.js";
387
395
  import {
388
396
  HookEventName,
389
397
  createHookOutput
390
- } from "./chunk-XWWKIXVD.js";
391
- import "./chunk-75GFAX4R.js";
392
- import "./chunk-OKF7JF3R.js";
398
+ } from "./chunk-3APUUXRF.js";
399
+ import "./chunk-THVU3RNH.js";
400
+ import "./chunk-LHKCY7DY.js";
401
+ import "./chunk-6FMJLI5M.js";
393
402
  import {
394
403
  APPROVAL_MODES,
395
404
  FORK_SUBAGENT_TYPE,
396
405
  getStartupContextLength,
397
406
  isSystemReminderContent,
398
407
  runWithRuntimeContentGenerator
399
- } from "./chunk-JSD33JG6.js";
408
+ } from "./chunk-CBBP4BMC.js";
400
409
  import "./chunk-S6LOFUVP.js";
401
- import "./chunk-JCW2R7WC.js";
402
- import "./chunk-2DN4J57Y.js";
410
+ import "./chunk-K623ENWT.js";
411
+ import "./chunk-AQ37AY7B.js";
412
+ import "./chunk-N4ACHWNH.js";
403
413
  import "./chunk-ZPJWUGCS.js";
404
414
  import {
405
415
  clearCachedCredentialFile,
406
416
  qwenOAuth2Events
407
- } from "./chunk-2LKVPASC.js";
417
+ } from "./chunk-D4HTUMGX.js";
408
418
  import "./chunk-NAVJD2PQ.js";
409
- import "./chunk-LW3RFMG7.js";
410
- import "./chunk-W4MIWP6M.js";
419
+ import "./chunk-LOY7RWQG.js";
420
+ import "./chunk-E6CJ2SMM.js";
411
421
  import "./chunk-DGEIYUC3.js";
412
422
  import "./chunk-MPHPFVKK.js";
413
423
  import "./chunk-GLNBDYUX.js";
414
424
  import "./chunk-DJ2GSRLV.js";
415
- import "./chunk-5KTQXHPY.js";
425
+ import "./chunk-6CQWRWUC.js";
416
426
  import {
417
427
  addToolArgumentsAttributes,
418
428
  addToolCallResultAttributes,
@@ -420,14 +430,14 @@ import {
420
430
  registerAcpEventLoopLagGauge,
421
431
  startEventLoopLagMonitor,
422
432
  withDaemonSpan
423
- } from "./chunk-75MIQ3LV.js";
433
+ } from "./chunk-Z3S5EMOW.js";
424
434
  import "./chunk-2J3OJGTL.js";
425
435
  import "./chunk-P3QQPMQA.js";
426
- import "./chunk-RPLGZJV2.js";
436
+ import "./chunk-XQK4XXTN.js";
427
437
  import {
428
438
  getToolCallPreparations
429
439
  } from "./chunk-GLCZKT5V.js";
430
- import "./chunk-DZLYR4U3.js";
440
+ import "./chunk-QDK4F2N5.js";
431
441
  import {
432
442
  ConversationFinishedEvent,
433
443
  DiscoveredMCPTool,
@@ -458,30 +468,30 @@ import {
458
468
  shouldRunVisionBridge,
459
469
  splitImageParts,
460
470
  uiTelemetryService
461
- } from "./chunk-PT722TDT.js";
471
+ } from "./chunk-DUNI4EBW.js";
462
472
  import "./chunk-VGC4I5JJ.js";
463
473
  import {
464
474
  getAutoMemoryRoot,
465
475
  getUserAutoMemoryRoot
466
- } from "./chunk-SGFT55XI.js";
467
- import "./chunk-Y4IHBGBP.js";
476
+ } from "./chunk-3I6DUGQD.js";
477
+ import "./chunk-7ULQIS27.js";
468
478
  import {
469
479
  ToolConfirmationOutcome,
470
480
  ToolNames,
471
481
  isShellProgressData
472
- } from "./chunk-Y6AXW2OG.js";
482
+ } from "./chunk-MM7TH7ZM.js";
473
483
  import {
474
484
  AuthType,
475
485
  preloadContentGenerator
476
- } from "./chunk-VCPIZRYH.js";
486
+ } from "./chunk-HIVKI6O6.js";
477
487
  import "./chunk-46UV252V.js";
478
488
  import {
479
489
  DEFAULT_TOKEN_LIMIT,
480
490
  tokenLimit
481
491
  } from "./chunk-ZBVS26BY.js";
482
- import "./chunk-WZRWHXFE.js";
483
- import "./chunk-A3NDJ5SB.js";
484
- import "./chunk-7XATOOE7.js";
492
+ import "./chunk-Q3T5KA2V.js";
493
+ import "./chunk-R2XWGR75.js";
494
+ import "./chunk-HC45LTEN.js";
485
495
  import {
486
496
  endToolExecutionSpan,
487
497
  endToolSpan,
@@ -490,21 +500,21 @@ import {
490
500
  startToolExecutionSpan,
491
501
  startToolSpan,
492
502
  withInteractionSpan
493
- } from "./chunk-BGTQCTQW.js";
503
+ } from "./chunk-QARJNL2V.js";
494
504
  import "./chunk-W4RQUHY3.js";
495
- import "./chunk-S7W2GKIO.js";
505
+ import "./chunk-G7XXKQYS.js";
496
506
  import {
497
507
  Storage,
498
508
  createDebugLogger,
499
509
  getErrorMessage,
500
510
  getErrorStatus,
501
511
  isSubpath
502
- } from "./chunk-UHUSJ6X7.js";
512
+ } from "./chunk-E2BHWIDT.js";
503
513
  import "./chunk-VOQXFAY5.js";
504
- import "./chunk-RCUQIPTN.js";
514
+ import "./chunk-6PQPKTXP.js";
505
515
  import {
506
516
  runExitCleanup
507
- } from "./chunk-52ZSWYEG.js";
517
+ } from "./chunk-DQ2O5QOJ.js";
508
518
  import "./chunk-75DOP5OR.js";
509
519
  import "./chunk-DMTGGOSA.js";
510
520
  import "./chunk-YQ3U5MUC.js";
@@ -2525,12 +2535,7 @@ var Session = class {
2525
2535
  this.runtimeBaseDir = config.storage.getRuntimeBaseDir();
2526
2536
  const todoStopGuardEnabled = this.settings.merged.experimental?.todoStopGuard === true && !this.config.getBareMode() && !this.config.isSafeMode();
2527
2537
  this.todoStopGuard = new DaemonTodoStopGuard(todoStopGuardEnabled);
2528
- this.todoStopGuardBackgroundBaseline = todoStopGuardEnabled ? this.#captureTodoStopGuardBackgroundBaseline() : {
2529
- agents: /* @__PURE__ */ new Set(),
2530
- shells: /* @__PURE__ */ new Set(),
2531
- monitors: /* @__PURE__ */ new Set(),
2532
- wakeups: /* @__PURE__ */ new Set()
2533
- };
2538
+ this.todoStopGuardBackgroundBaseline = this.#captureTodoStopGuardBackgroundBaseline();
2534
2539
  this.toolCallEmitter = new ToolCallEmitter(this);
2535
2540
  this.planEmitter = new PlanEmitter(this);
2536
2541
  this.historyReplayer = new HistoryReplayer(this, {
@@ -2562,6 +2567,7 @@ var Session = class {
2562
2567
  */
2563
2568
  followupAbort = null;
2564
2569
  turn = 0;
2570
+ activeTodoWorkChainPromptId;
2565
2571
  createdAt = Date.now();
2566
2572
  /**
2567
2573
  * Running cumulative usage for this session, snapshotted onto each todo/plan
@@ -3603,6 +3609,8 @@ var Session = class {
3603
3609
  }
3604
3610
  this.turn += 1;
3605
3611
  const promptId = this.config.getSessionId() + "########" + this.turn;
3612
+ const promptMetadata = params._meta;
3613
+ const continuesCurrentWorkChain = params.retry === true || promptMetadata?.[DAEMON_RETRY_META_KEY] === true || promptMetadata?.[DAEMON_CONTINUE_META_KEY] === true;
3606
3614
  promptIdContext.enterWith(promptId);
3607
3615
  const parentContext = extractDaemonTraceContext(params);
3608
3616
  return await withInteractionSpan(
@@ -3727,9 +3735,20 @@ var Session = class {
3727
3735
  }
3728
3736
  const additionalContext = hookOutput?.getAdditionalContext();
3729
3737
  if (additionalContext) {
3730
- parts = [...parts, { text: additionalContext }];
3738
+ parts = [
3739
+ ...parts,
3740
+ { text: wrapUserPromptSubmitContext(additionalContext) }
3741
+ ];
3731
3742
  }
3732
3743
  }
3744
+ if (!continuesCurrentWorkChain && !this.todoStopGuard.enabled) {
3745
+ this.#resetTodoStopGuardBackgroundLineage();
3746
+ }
3747
+ this.config.startActiveTodoWorkChain(
3748
+ promptId,
3749
+ continuesCurrentWorkChain ? this.activeTodoWorkChainPromptId : void 0
3750
+ );
3751
+ this.activeTodoWorkChainPromptId = promptId;
3733
3752
  try {
3734
3753
  const fileHistoryService = this.config.getFileHistoryService();
3735
3754
  await fileHistoryService.makeSnapshot(promptId);
@@ -3775,6 +3794,15 @@ ${this.pendingRecoveredAgentsNotice}
3775
3794
  parts = insertAfterFunctionResponses(parts, [noticePart]);
3776
3795
  this.pendingRecoveredAgentsNotice = null;
3777
3796
  }
3797
+ const activeTodoReminder = this.config.takeActiveTodoReminder(
3798
+ promptId,
3799
+ true
3800
+ );
3801
+ if (activeTodoReminder && !parts.some((part) => part.text === activeTodoReminder)) {
3802
+ parts = insertAfterFunctionResponses(parts, [
3803
+ { text: activeTodoReminder }
3804
+ ]);
3805
+ }
3778
3806
  let nextMessage = { role: "user", parts };
3779
3807
  let turnCount = 0;
3780
3808
  const toolLoopState = createDaemonToolLoopState();
@@ -3952,6 +3980,7 @@ ${this.pendingRecoveredAgentsNotice}
3952
3980
  const nextAfterTools = await this.#buildNextMessageAfterToolRun(
3953
3981
  toolRun,
3954
3982
  pendingSend.signal,
3983
+ promptId,
3955
3984
  onFullTurnModel
3956
3985
  );
3957
3986
  nextMessage = nextAfterTools.message;
@@ -4687,6 +4716,7 @@ ${this.pendingRecoveredAgentsNotice}
4687
4716
  const nextAfterTools = await this.#buildNextMessageAfterToolRun(
4688
4717
  toolRun,
4689
4718
  pendingSend.signal,
4719
+ toolPromptId,
4690
4720
  options.onFullTurnModel
4691
4721
  );
4692
4722
  nextMessage = nextAfterTools.message;
@@ -4976,7 +5006,7 @@ ${this.pendingRecoveredAgentsNotice}
4976
5006
  );
4977
5007
  await this.messageRewriter?.waitForPendingRewrites();
4978
5008
  }
4979
- async #buildNextMessageAfterToolRun(toolRun, abortSignal, onFullTurnModel) {
5009
+ async #buildNextMessageAfterToolRun(toolRun, abortSignal, promptId, onFullTurnModel) {
4980
5010
  if (toolRun.loopDetected) {
4981
5011
  debugLogger6.debug("Stopping ACP turn after daemon loop detection.");
4982
5012
  return { message: null, hadMidTurnUserInput: false };
@@ -4995,7 +5025,12 @@ ${this.pendingRecoveredAgentsNotice}
4995
5025
  if (hadMidTurnUserInput) {
4996
5026
  this.todoStopGuard.acceptMidTurnUserInput();
4997
5027
  }
4998
- const parts = [...toolRun.parts, ...drained.parts];
5028
+ const activeTodoReminder = this.config.takeActiveTodoReminder(promptId);
5029
+ const parts = [
5030
+ ...toolRun.parts,
5031
+ ...activeTodoReminder ? [{ text: activeTodoReminder }] : [],
5032
+ ...drained.parts
5033
+ ];
4999
5034
  return {
5000
5035
  message: { role: "user", parts },
5001
5036
  hadMidTurnUserInput
@@ -5260,7 +5295,8 @@ ${this.pendingRecoveredAgentsNotice}
5260
5295
  source: job.cronExpr === "@wakeup" ? "loop" : "cron",
5261
5296
  ...job.id ? { taskId: job.id } : {},
5262
5297
  ...job.lastFiredAt !== void 0 ? { firedAt: job.lastFiredAt } : {},
5263
- ...job.delivery ? { delivery: job.delivery } : {}
5298
+ ...job.delivery ? { delivery: job.delivery } : {},
5299
+ ...job.todoWorkChainId ? { todoWorkChainId: job.todoWorkChainId } : {}
5264
5300
  });
5265
5301
  void this.#drainCronQueue();
5266
5302
  });
@@ -5416,9 +5452,8 @@ ${this.pendingRecoveredAgentsNotice}
5416
5452
  async () => {
5417
5453
  const ac = new AbortController();
5418
5454
  this.cronAbortController = ac;
5419
- this.#prepareTodoStopGuardForAutomaticTurn(
5420
- this.#cronContinuesTodoStopGuardWorkChain(item)
5421
- );
5455
+ const continuesCurrentWorkChain = this.#cronContinuesTodoStopGuardWorkChain(item);
5456
+ this.#prepareTodoStopGuardForAutomaticTurn(continuesCurrentWorkChain);
5422
5457
  const promptId = this.config.getSessionId() + "########cron" + Date.now();
5423
5458
  let cronHadError = false;
5424
5459
  let cronCompleted = false;
@@ -5435,6 +5470,10 @@ ${this.pendingRecoveredAgentsNotice}
5435
5470
  try {
5436
5471
  await this.assertCanStartTurn();
5437
5472
  if (ac.signal.aborted) return;
5473
+ this.config.startAutomaticActiveTodoWorkChain(
5474
+ promptId,
5475
+ item.todoWorkChainId
5476
+ );
5438
5477
  const loopMode = detectLoopSentinel(prompt);
5439
5478
  const autonomousMode = loopMode ? null : detectAutonomousSentinel(prompt);
5440
5479
  let loopTick = null;
@@ -5489,9 +5528,17 @@ ${this.pendingRecoveredAgentsNotice}
5489
5528
  _meta: { source: item.source }
5490
5529
  });
5491
5530
  const cronReminders = await this.#buildInitialSystemReminders();
5531
+ const activeTodoReminder = this.config.takeActiveTodoReminder(
5532
+ promptId,
5533
+ true
5534
+ );
5492
5535
  let nextMessage = {
5493
5536
  role: "user",
5494
- parts: [...cronReminders, { text: modelText }]
5537
+ parts: [
5538
+ ...cronReminders,
5539
+ ...activeTodoReminder ? [{ text: activeTodoReminder }] : [],
5540
+ { text: modelText }
5541
+ ]
5495
5542
  };
5496
5543
  const toolLoopState = createDaemonToolLoopState();
5497
5544
  while (nextMessage !== null) {
@@ -5623,7 +5670,8 @@ ${this.pendingRecoveredAgentsNotice}
5623
5670
  }
5624
5671
  const nextAfterTools = await this.#buildNextMessageAfterToolRun(
5625
5672
  toolRun,
5626
- ac.signal
5673
+ ac.signal,
5674
+ promptId
5627
5675
  );
5628
5676
  nextMessage = nextAfterTools.message;
5629
5677
  if (toolRun.loopDetected) {
@@ -5663,6 +5711,7 @@ ${this.pendingRecoveredAgentsNotice}
5663
5711
  `[${item.source} error] ${msg}`
5664
5712
  );
5665
5713
  } finally {
5714
+ this.config.endAutomaticActiveTodoWorkChain(promptId);
5666
5715
  if (this.cronAbortController === ac) {
5667
5716
  this.cronAbortController = null;
5668
5717
  }
@@ -5715,7 +5764,8 @@ ${this.pendingRecoveredAgentsNotice}
5715
5764
  status: meta.status,
5716
5765
  kind: "agent",
5717
5766
  continuesTodoStopGuardWorkChain: this.#agentContinuesTodoStopGuardWorkChain(meta.agentId),
5718
- toolUseId: meta.toolUseId
5767
+ toolUseId: meta.toolUseId,
5768
+ todoWorkChainId: meta.todoWorkChainId
5719
5769
  });
5720
5770
  }
5721
5771
  );
@@ -5734,7 +5784,8 @@ ${this.pendingRecoveredAgentsNotice}
5734
5784
  meta.monitorId,
5735
5785
  meta.ownerAgentId
5736
5786
  ),
5737
- toolUseId: meta.toolUseId
5787
+ toolUseId: meta.toolUseId,
5788
+ todoWorkChainId: meta.todoWorkChainId
5738
5789
  });
5739
5790
  });
5740
5791
  const shellRegistry = this.config.getBackgroundShellRegistry();
@@ -5745,7 +5796,8 @@ ${this.pendingRecoveredAgentsNotice}
5745
5796
  taskId: meta.shellId,
5746
5797
  status: meta.status,
5747
5798
  kind: "shell",
5748
- continuesTodoStopGuardWorkChain: !this.todoStopGuardBackgroundBaseline.shells.has(meta.shellId)
5799
+ continuesTodoStopGuardWorkChain: !this.todoStopGuardBackgroundBaseline.shells.has(meta.shellId),
5800
+ todoWorkChainId: meta.todoWorkChainId
5749
5801
  });
5750
5802
  });
5751
5803
  this.config.getChatRecordingService()?.setTitleRecordedCallback((customTitle, titleSource, sessionId) => {
@@ -5868,13 +5920,16 @@ ${this.pendingRecoveredAgentsNotice}
5868
5920
  async () => {
5869
5921
  const ac = new AbortController();
5870
5922
  this.notificationAbortController = ac;
5871
- this.#prepareTodoStopGuardForAutomaticTurn(
5872
- this.#notificationContinuesTodoStopGuardWorkChain(item)
5873
- );
5923
+ const continuesCurrentWorkChain = this.#notificationContinuesTodoStopGuardWorkChain(item);
5924
+ this.#prepareTodoStopGuardForAutomaticTurn(continuesCurrentWorkChain);
5874
5925
  const promptId = this.config.getSessionId() + "########notification" + Date.now();
5875
5926
  try {
5876
5927
  await this.assertCanStartTurn();
5877
5928
  if (ac.signal.aborted) return;
5929
+ this.config.startAutomaticActiveTodoWorkChain(
5930
+ promptId,
5931
+ item.todoWorkChainId
5932
+ );
5878
5933
  await this.#emitBackgroundNotificationDisplay(item);
5879
5934
  const notificationParts = [{ text: item.modelText }];
5880
5935
  this.config.getChatRecordingService()?.recordNotification(notificationParts, item.displayText, {
@@ -5884,9 +5939,17 @@ ${this.pendingRecoveredAgentsNotice}
5884
5939
  toolUseId: item.toolUseId
5885
5940
  });
5886
5941
  const notificationReminders = await this.#buildInitialSystemReminders();
5942
+ const activeTodoReminder = this.config.takeActiveTodoReminder(
5943
+ promptId,
5944
+ true
5945
+ );
5887
5946
  let nextMessage = {
5888
5947
  role: "user",
5889
- parts: [...notificationReminders, ...notificationParts]
5948
+ parts: [
5949
+ ...notificationReminders,
5950
+ ...activeTodoReminder ? [{ text: activeTodoReminder }] : [],
5951
+ ...notificationParts
5952
+ ]
5890
5953
  };
5891
5954
  const toolLoopState = createDaemonToolLoopState();
5892
5955
  while (nextMessage !== null) {
@@ -6016,7 +6079,8 @@ ${this.pendingRecoveredAgentsNotice}
6016
6079
  }
6017
6080
  const nextAfterTools = await this.#buildNextMessageAfterToolRun(
6018
6081
  toolRun,
6019
- ac.signal
6082
+ ac.signal,
6083
+ promptId
6020
6084
  );
6021
6085
  nextMessage = nextAfterTools.message;
6022
6086
  if (toolRun.loopDetected) {
@@ -6067,6 +6131,7 @@ ${this.pendingRecoveredAgentsNotice}
6067
6131
  await this.#emitBackgroundNotificationEndTurn("end_turn");
6068
6132
  }
6069
6133
  } finally {
6134
+ this.config.endAutomaticActiveTodoWorkChain(promptId);
6070
6135
  if (this.notificationAbortController === ac) {
6071
6136
  this.notificationAbortController = null;
6072
6137
  }
@@ -6131,8 +6196,10 @@ ${this.pendingRecoveredAgentsNotice}
6131
6196
  debugLogger6.error("Error sending available commands update:", error);
6132
6197
  }
6133
6198
  }
6134
- async refreshSkillsFromSettings() {
6135
- this.settings.reloadScopeFromDisk("Workspace" /* Workspace */);
6199
+ async refreshSkillsFromSettings(options = {}) {
6200
+ if (options.reloadSettings ?? true) {
6201
+ this.reloadSkillSettings();
6202
+ }
6136
6203
  const skillManager = this.config.getSkillManager();
6137
6204
  let updateFailed = false;
6138
6205
  let updateError;
@@ -6142,7 +6209,7 @@ ${this.pendingRecoveredAgentsNotice}
6142
6209
  updateFailed = true;
6143
6210
  updateError = error;
6144
6211
  }
6145
- if (skillManager) {
6212
+ if (skillManager && (options.notifyConfigChanged ?? true)) {
6146
6213
  try {
6147
6214
  skillManager.suppressNextSlashReload();
6148
6215
  await skillManager.notifyConfigChanged();
@@ -6156,6 +6223,9 @@ ${this.pendingRecoveredAgentsNotice}
6156
6223
  }
6157
6224
  if (updateFailed) throw updateError;
6158
6225
  }
6226
+ reloadSkillSettings() {
6227
+ this.settings.reloadScopeFromDisk("Workspace" /* Workspace */);
6228
+ }
6159
6229
  async sendAvailableCommandsUpdateOrThrow() {
6160
6230
  const { availableCommands, availableSkills, availableSkillDetails } = await buildAvailableCommandsSnapshot(
6161
6231
  this.config,
@@ -6336,6 +6406,10 @@ ${this.pendingRecoveredAgentsNotice}
6336
6406
  * on. Response-part ordering matches the original `functionCalls` order.
6337
6407
  */
6338
6408
  async runToolCalls(abortSignal, promptId, functionCalls, toolLoopState, onFullTurnModel) {
6409
+ promptIdContext.enterWith(promptId);
6410
+ todoWorkChainContext.enterWith(
6411
+ this.config.getActiveTodoWorkChainOwner(promptId)
6412
+ );
6339
6413
  const dedupedFunctionCalls = dedupeToolCallsById(functionCalls);
6340
6414
  const generatedCallIdBase = randomUUID();
6341
6415
  const executionCallIds = new Map(
@@ -8688,6 +8762,32 @@ function isBulkLoadReplayRequest(params) {
8688
8762
  return meta?.[LOAD_REPLAY_MODE_META_KEY] === LOAD_REPLAY_BULK_MODE;
8689
8763
  }
8690
8764
  __name(isBulkLoadReplayRequest, "isBulkLoadReplayRequest");
8765
+ function shouldHideInheritedHistory(params) {
8766
+ const meta = isObjectRecord(params._meta) ? params._meta : void 0;
8767
+ return meta?.[LOAD_REPLAY_HIDE_INHERITED_META_KEY] === true;
8768
+ }
8769
+ __name(shouldHideInheritedHistory, "shouldHideInheritedHistory");
8770
+ function selectVisibleHistoryRecords(records, hideInheritedHistory) {
8771
+ const sourceBoundary = records.findIndex(
8772
+ (record) => record.type === "system" && record.subtype === "session_source" && isObjectRecord(record.systemPayload) && record.systemPayload["sourceType"] === "side_task"
8773
+ );
8774
+ if (sourceBoundary >= 0) {
8775
+ return records.slice(sourceBoundary).filter((record) => record.forkedFrom === void 0);
8776
+ }
8777
+ return hideInheritedHistory ? records.filter((record) => record.forkedFrom === void 0) : records;
8778
+ }
8779
+ __name(selectVisibleHistoryRecords, "selectVisibleHistoryRecords");
8780
+ function isChannelSessionRequest(params) {
8781
+ const meta = isObjectRecord(params._meta) ? params._meta : void 0;
8782
+ const value = meta?.[SESSION_SOURCE_META_KEY];
8783
+ return isObjectRecord(value) && value["sourceType"] === "channel";
8784
+ }
8785
+ __name(isChannelSessionRequest, "isChannelSessionRequest");
8786
+ function shouldDeferMcpDiscovery(params) {
8787
+ const meta = isObjectRecord(params._meta) ? params._meta : void 0;
8788
+ return meta?.[WORKTREE_MCP_DEFER_META_KEY] === true;
8789
+ }
8790
+ __name(shouldDeferMcpDiscovery, "shouldDeferMcpDiscovery");
8691
8791
  function getLoadReplayPageSize(params) {
8692
8792
  const meta = isObjectRecord(params._meta) ? params._meta : void 0;
8693
8793
  const value = meta?.[LOAD_REPLAY_PAGE_SIZE_META_KEY];
@@ -10629,6 +10729,7 @@ var QwenAgent = class {
10629
10729
  workspaceMcpDiscoveryConfig;
10630
10730
  workspaceMcpDiscoveryPromise;
10631
10731
  workspaceMcpDiscoveryError;
10732
+ workspaceExtensionStatusRefreshPromise;
10632
10733
  pendingMcpAuthentications = /* @__PURE__ */ new Map();
10633
10734
  mcpAuthenticationResults = /* @__PURE__ */ new Map();
10634
10735
  generationControllers = /* @__PURE__ */ new Map();
@@ -10720,7 +10821,7 @@ var QwenAgent = class {
10720
10821
  const writerTerminals = [];
10721
10822
  for (const config of configList) {
10722
10823
  try {
10723
- writerTerminals.push(config.closeSessionWriter());
10824
+ writerTerminals.push(config.closeSessionWriter({ handoff: true }));
10724
10825
  } catch (error) {
10725
10826
  writerTerminals.push(Promise.reject(error));
10726
10827
  }
@@ -10772,6 +10873,39 @@ var QwenAgent = class {
10772
10873
  }
10773
10874
  return this.workspaceMcpDiscoveryConfig ?? this.config;
10774
10875
  }
10876
+ refreshBootstrapExtensionStatus() {
10877
+ if (this.workspaceExtensionStatusRefreshPromise) {
10878
+ return this.workspaceExtensionStatusRefreshPromise;
10879
+ }
10880
+ const promise = (async () => {
10881
+ const errors = [];
10882
+ try {
10883
+ await this.config.getExtensionManager().refreshCache();
10884
+ } catch (error) {
10885
+ errors.push(error);
10886
+ }
10887
+ try {
10888
+ await this.config.getSkillManager()?.refreshCache();
10889
+ } catch (error) {
10890
+ errors.push(error);
10891
+ }
10892
+ if (errors.length === 1) throw errors[0];
10893
+ if (errors.length > 1) {
10894
+ throw new AggregateError(
10895
+ errors,
10896
+ "Bootstrap extension status refresh failed"
10897
+ );
10898
+ }
10899
+ })();
10900
+ this.workspaceExtensionStatusRefreshPromise = promise;
10901
+ const clear = /* @__PURE__ */ __name(() => {
10902
+ if (this.workspaceExtensionStatusRefreshPromise === promise) {
10903
+ this.workspaceExtensionStatusRefreshPromise = void 0;
10904
+ }
10905
+ }, "clear");
10906
+ void promise.then(clear, clear);
10907
+ return promise;
10908
+ }
10775
10909
  getLiveMcpConfigs(serverName) {
10776
10910
  return [
10777
10911
  .../* @__PURE__ */ new Set([
@@ -11302,7 +11436,7 @@ var QwenAgent = class {
11302
11436
  }
11303
11437
  this.clientCapabilities = args.clientCapabilities;
11304
11438
  const authMethods = buildAuthMethods();
11305
- const version = "0.21.1";
11439
+ const version = "0.21.2";
11306
11440
  const response = {
11307
11441
  protocolVersion: PROTOCOL_VERSION,
11308
11442
  agentInfo: {
@@ -11376,6 +11510,7 @@ var QwenAgent = class {
11376
11510
  }
11377
11511
  async newSession(params) {
11378
11512
  const { cwd, mcpServers } = params;
11513
+ const isChannelSession = isChannelSessionRequest(params);
11379
11514
  const parentContext = extractDaemonTraceContext(params);
11380
11515
  return await withDaemonSpan(
11381
11516
  "qwen-code.daemon.session_start",
@@ -11389,7 +11524,15 @@ var QwenAgent = class {
11389
11524
  this.settings = settings;
11390
11525
  const config = await profiler.time(
11391
11526
  "config_setup",
11392
- () => this.newSessionConfig(cwd, mcpServers, settings)
11527
+ () => this.newSessionConfig(
11528
+ cwd,
11529
+ mcpServers,
11530
+ settings,
11531
+ isChannelSession,
11532
+ void 0,
11533
+ void 0,
11534
+ shouldDeferMcpDiscovery(params) ? { skipMcpDiscovery: true } : void 0
11535
+ )
11393
11536
  );
11394
11537
  let session;
11395
11538
  try {
@@ -11421,6 +11564,7 @@ var QwenAgent = class {
11421
11564
  );
11422
11565
  }
11423
11566
  async loadSession(params) {
11567
+ const isChannelSession = isChannelSessionRequest(params);
11424
11568
  const settings = loadSettingsCached(params.cwd);
11425
11569
  const liveSession = this.sessions.get(params.sessionId);
11426
11570
  if (liveSession) {
@@ -11437,9 +11581,16 @@ var QwenAgent = class {
11437
11581
  ...sessionData2.artifactSnapshot ? { artifactSnapshot: sessionData2.artifactSnapshot } : {}
11438
11582
  };
11439
11583
  const records = sessionData2.conversation.messages;
11440
- if (records.length === 0) return response2;
11584
+ const visibleRecords = selectVisibleHistoryRecords(
11585
+ records,
11586
+ shouldHideInheritedHistory(params)
11587
+ );
11588
+ if (visibleRecords.length === 0) return response2;
11441
11589
  const bulkReplay2 = isBulkLoadReplayRequest(params);
11442
- const replayPage = bulkReplay2 ? selectRecentHistoryRecords(records, getLoadReplayPageSize(params)) : { records, hasMore: false };
11590
+ const replayPage = bulkReplay2 ? selectRecentHistoryRecords(
11591
+ visibleRecords,
11592
+ getLoadReplayPageSize(params)
11593
+ ) : { records: visibleRecords, hasMore: false };
11443
11594
  const replay = await collectHistoryReplayUpdates({
11444
11595
  sessionId: params.sessionId,
11445
11596
  config: config2,
@@ -11491,6 +11642,7 @@ var QwenAgent = class {
11491
11642
  // a `null`/`undefined` would otherwise throw `TypeError`.
11492
11643
  params.mcpServers ?? [],
11493
11644
  settings,
11645
+ isChannelSession,
11494
11646
  params.sessionId,
11495
11647
  true
11496
11648
  );
@@ -11509,8 +11661,12 @@ var QwenAgent = class {
11509
11661
  let replayUpdates = [];
11510
11662
  if (records) {
11511
11663
  createdSession.primeTurnFromHistory(records);
11512
- const replayPage = selectRecentHistoryRecords(
11664
+ const visibleRecords = selectVisibleHistoryRecords(
11513
11665
  records,
11666
+ shouldHideInheritedHistory(params)
11667
+ );
11668
+ const replayPage = selectRecentHistoryRecords(
11669
+ visibleRecords,
11514
11670
  replayPageSize
11515
11671
  );
11516
11672
  const replayUsage = createReplayCumulativeUsage();
@@ -11577,6 +11733,7 @@ var QwenAgent = class {
11577
11733
  };
11578
11734
  }
11579
11735
  async unstable_resumeSession(params) {
11736
+ const isChannelSession = isChannelSessionRequest(params);
11580
11737
  const settings = loadSettingsCached(params.cwd);
11581
11738
  const liveSession = this.sessions.get(params.sessionId);
11582
11739
  if (liveSession) {
@@ -11609,6 +11766,7 @@ var QwenAgent = class {
11609
11766
  params.cwd,
11610
11767
  params.mcpServers ?? [],
11611
11768
  settings,
11769
+ isChannelSession,
11612
11770
  params.sessionId,
11613
11771
  true
11614
11772
  );
@@ -12535,23 +12693,56 @@ var QwenAgent = class {
12535
12693
  ...inferred ? { errorKind: inferred } : {}
12536
12694
  };
12537
12695
  }
12696
+ /**
12697
+ * Keeps the extension-derived half of the skill snapshot self-healing.
12698
+ *
12699
+ * Skills have a watcher (`SkillManager.startWatching`); extensions do not, so
12700
+ * without this the child would never notice an extension installed, removed,
12701
+ * enabled, or disabled outside the daemon — and extension-level skills are
12702
+ * derived from that set, so a skill-watcher tick alone cannot recover it.
12703
+ *
12704
+ * The check is one `readdir` plus a bounded number of `stat`s, and refreshes
12705
+ * only when the sources actually moved, so a steady-state read still parses
12706
+ * no manifest and no `SKILL.md`. Failures are logged and swallowed: a status
12707
+ * read must not fail because revalidation could not run.
12708
+ *
12709
+ * Skipped in safe and bare mode. Those modes deliberately never populate the
12710
+ * extension cache (`Config.initialize` omits the refresh), and the snapshot
12711
+ * derives extension skills from `getExtensions()` — so revalidating here
12712
+ * would load the extensions those modes exist to exclude.
12713
+ */
12714
+ async revalidateExtensionSources(config) {
12715
+ try {
12716
+ if (config.isSafeMode() || config.getBareMode()) return;
12717
+ const changed = await config.getExtensionManager().refreshCacheIfSourcesChanged();
12718
+ if (!changed) return;
12719
+ await config.getSkillManager()?.refreshCache();
12720
+ } catch (error) {
12721
+ debugLogger7.warn("Extension source revalidation failed:", error);
12722
+ }
12723
+ }
12538
12724
  async buildWorkspaceSkillsStatus(config) {
12539
12725
  const skillManager = config.getSkillManager();
12540
12726
  if (!skillManager) {
12541
12727
  return {
12542
12728
  v: STATUS_SCHEMA_VERSION,
12543
12729
  workspaceCwd: this.workspaceCwd(config),
12544
- initialized: true,
12730
+ initialized: false,
12545
12731
  skills: []
12546
12732
  };
12547
12733
  }
12734
+ await this.revalidateExtensionSources(config);
12548
12735
  try {
12549
- const resolved = resolveSkillSettings(
12550
- loadSettings(this.workspaceCwd(config), {
12551
- consumeCorruptionEnvVars: false,
12552
- skipLoadEnvironment: true
12553
- })
12554
- );
12736
+ const skills = skillManager.getCachedSkills();
12737
+ if (skills === null) {
12738
+ return {
12739
+ v: STATUS_SCHEMA_VERSION,
12740
+ workspaceCwd: this.workspaceCwd(config),
12741
+ initialized: false,
12742
+ skills: []
12743
+ };
12744
+ }
12745
+ const resolved = resolveSkillSettings(this.settings);
12555
12746
  const disablements = new Map(
12556
12747
  Array.from(config.getDisabledSkillNames(), (name) => {
12557
12748
  const normalizedName = name.trim().toLowerCase();
@@ -12561,17 +12752,6 @@ var QwenAgent = class {
12561
12752
  ];
12562
12753
  })
12563
12754
  );
12564
- try {
12565
- await config.getExtensionManager().refreshCache();
12566
- } catch (error) {
12567
- debugLogger7.warn("Extension cache refresh failed:", error);
12568
- }
12569
- try {
12570
- await skillManager.refreshCache();
12571
- } catch (error) {
12572
- debugLogger7.warn("Skill cache refresh failed:", error);
12573
- }
12574
- const skills = await skillManager.listSkills();
12575
12755
  const inactiveSkillRefs = inactiveExtensionSkillRefs(config);
12576
12756
  const skillsByKey = new Map(
12577
12757
  skills.map((skill) => [
@@ -15151,6 +15331,11 @@ var QwenAgent = class {
15151
15331
  `Memory refresh failed: ${relocation.memoryRefreshError instanceof Error ? relocation.memoryRefreshError.message : String(relocation.memoryRefreshError)}`
15152
15332
  );
15153
15333
  }
15334
+ if (relocation.mcpRefreshError) {
15335
+ warnings.push(
15336
+ `MCP refresh failed: ${relocation.mcpRefreshError instanceof Error ? relocation.mcpRefreshError.message : String(relocation.mcpRefreshError)}`
15337
+ );
15338
+ }
15154
15339
  try {
15155
15340
  await config.getGeminiClient()?.addWorkingDirectoryChangedContext(
15156
15341
  settledPreviousCwd,
@@ -15762,6 +15947,13 @@ ${outputText}
15762
15947
  }
15763
15948
  case SERVE_CONTROL_EXT_METHODS.workspaceExtensionsRefresh: {
15764
15949
  const sessionId = params["sessionId"];
15950
+ const rawRefreshBootstrap = params["refreshBootstrap"];
15951
+ if (rawRefreshBootstrap !== void 0 && typeof rawRefreshBootstrap !== "boolean") {
15952
+ throw RequestError.invalidParams(
15953
+ void 0,
15954
+ "refreshBootstrap must be a boolean"
15955
+ );
15956
+ }
15765
15957
  const session = this.sessionOrThrow(sessionId);
15766
15958
  const config = session.getConfig();
15767
15959
  const extensionManager = config.getExtensionManager();
@@ -15775,6 +15967,12 @@ ${outputText}
15775
15967
  }, "runRefresh");
15776
15968
  await runRefresh(async () => await extensionManager.refreshCache());
15777
15969
  await runRefresh(async () => await extensionManager.refreshTools());
15970
+ const bootstrapConfig = this.config;
15971
+ if (rawRefreshBootstrap !== false && bootstrapConfig !== config) {
15972
+ await runRefresh(
15973
+ async () => await this.refreshBootstrapExtensionStatus()
15974
+ );
15975
+ }
15778
15976
  const discoveryConfig = this.workspaceMcpDiscoveryConfig;
15779
15977
  if (discoveryConfig && discoveryConfig !== config) {
15780
15978
  const discoveryExtensionManager = discoveryConfig.getExtensionManager();
@@ -16078,7 +16276,9 @@ ${outputText}
16078
16276
  apiKeyEnvKey: cfg?.apiKeyEnvKey ?? null
16079
16277
  };
16080
16278
  }
16081
- case SERVE_CONTROL_EXT_METHODS.sessionBranch: {
16279
+ case SERVE_CONTROL_EXT_METHODS.sessionBranch:
16280
+ case SERVE_CONTROL_EXT_METHODS.sessionSideTask: {
16281
+ const isSideTask = method === SERVE_CONTROL_EXT_METHODS.sessionSideTask;
16082
16282
  const sessionId = params["sessionId"];
16083
16283
  if (typeof sessionId !== "string" || !SESSION_ID_RE.test(sessionId)) {
16084
16284
  throw RequestError.invalidParams(
@@ -16101,7 +16301,17 @@ ${outputText}
16101
16301
  }
16102
16302
  const newSessionId = randomUUID2();
16103
16303
  const sessionService = sourceConfig.getSessionService();
16104
- await sessionService.forkSession(sessionId, newSessionId);
16304
+ const fork = /* @__PURE__ */ __name(() => isSideTask ? sessionService.forkSession(sessionId, newSessionId, {
16305
+ source: {
16306
+ sourceType: "side_task",
16307
+ sourceId: sessionId
16308
+ }
16309
+ }) : sessionService.forkSession(sessionId, newSessionId), "fork");
16310
+ if (isSideTask && recording) {
16311
+ await recording.runWithWriteBarrier(fork);
16312
+ } else {
16313
+ await fork();
16314
+ }
16105
16315
  let title;
16106
16316
  try {
16107
16317
  let baseName;
@@ -16116,7 +16326,7 @@ ${outputText}
16116
16326
  baseName = sessionId.slice(0, 8);
16117
16327
  }
16118
16328
  }
16119
- title = await computeUniqueBranchTitle(baseName, sessionService);
16329
+ title = isSideTask ? baseName : await computeUniqueBranchTitle(baseName, sessionService);
16120
16330
  const renamed = await sessionService.renameSession(
16121
16331
  newSessionId,
16122
16332
  title,
@@ -16450,16 +16660,58 @@ ${outputText}
16450
16660
  };
16451
16661
  }
16452
16662
  case SERVE_CONTROL_EXT_METHODS.workspaceSkillsRefresh: {
16453
- this.settings.reloadScopeFromDisk("Workspace" /* Workspace */);
16663
+ const rawReason = params["reason"];
16664
+ if (rawReason !== void 0 && rawReason !== "settings" && rawReason !== "content" && rawReason !== "all") {
16665
+ throw RequestError.invalidParams(
16666
+ void 0,
16667
+ "reason must be settings, content, or all"
16668
+ );
16669
+ }
16670
+ const reason = rawReason ?? "all";
16671
+ const refreshSettings = reason !== "content";
16672
+ const refreshContent = reason !== "settings";
16673
+ if (refreshSettings) {
16674
+ this.settings.reloadScopeFromDisk("Workspace" /* Workspace */);
16675
+ }
16454
16676
  const sessions = this.getActiveSessions();
16677
+ const settingsReloadResults = refreshSettings ? await Promise.allSettled(
16678
+ sessions.map(
16679
+ (session) => Promise.resolve().then(() => session.reloadSkillSettings())
16680
+ )
16681
+ ) : void 0;
16682
+ let configResults = [];
16683
+ if (refreshContent) {
16684
+ const skillManagers = new Set(
16685
+ [this.config, ...sessions.map((session) => session.getConfig())].map((config) => config.getSkillManager()).filter(
16686
+ (manager) => manager !== void 0
16687
+ )
16688
+ );
16689
+ configResults = await Promise.allSettled(
16690
+ [...skillManagers].map((manager) => manager.refreshCache())
16691
+ );
16692
+ for (const result of configResults) {
16693
+ if (result.status === "rejected") {
16694
+ debugLogger7.warn(`Skill config refresh failed: ${result.reason}`);
16695
+ }
16696
+ }
16697
+ }
16455
16698
  const results = await Promise.allSettled(
16456
- sessions.map((session) => session.refreshSkillsFromSettings())
16699
+ sessions.map((session, index) => {
16700
+ const settingsReload = settingsReloadResults?.[index];
16701
+ if (settingsReload?.status === "rejected") {
16702
+ return Promise.reject(settingsReload.reason);
16703
+ }
16704
+ return session.refreshSkillsFromSettings({
16705
+ reloadSettings: false,
16706
+ notifyConfigChanged: !refreshContent
16707
+ });
16708
+ })
16457
16709
  );
16458
16710
  for (let i = 0; i < results.length; i++) {
16459
16711
  if (results[i].status === "rejected") {
16460
- const reason = results[i].reason;
16712
+ const reason2 = results[i].reason;
16461
16713
  debugLogger7.warn(
16462
- `Session ${sessions[i].getId()} skill refresh failed: ${reason}`
16714
+ `Session ${sessions[i].getId()} skill refresh failed: ${reason2}`
16463
16715
  );
16464
16716
  }
16465
16717
  }
@@ -16469,7 +16721,14 @@ ${outputText}
16469
16721
  ).length,
16470
16722
  sessionsFailed: results.filter(
16471
16723
  (result) => result.status === "rejected"
16472
- ).length
16724
+ ).length,
16725
+ configsRefreshed: configResults.filter(
16726
+ (result) => result.status === "fulfilled"
16727
+ ).length,
16728
+ configsFailed: configResults.filter(
16729
+ (result) => result.status === "rejected"
16730
+ ).length,
16731
+ reason
16473
16732
  };
16474
16733
  }
16475
16734
  default:
@@ -16532,6 +16791,7 @@ ${outputText}
16532
16791
  [],
16533
16792
  settings,
16534
16793
  void 0,
16794
+ void 0,
16535
16795
  false,
16536
16796
  {
16537
16797
  skipMcpDiscovery: true,
@@ -16573,7 +16833,7 @@ ${outputText}
16573
16833
  throw error;
16574
16834
  }
16575
16835
  }
16576
- async newSessionConfig(cwd, mcpServers, settings, sessionId, resume, initializeOptions = {}, chatRecording) {
16836
+ async newSessionConfig(cwd, mcpServers, settings, isChannelSession, sessionId, resume, initializeOptions = {}, chatRecording) {
16577
16837
  try {
16578
16838
  this.assertManagedSessionAdmission();
16579
16839
  return await this.runWithPinnedRuntimeBaseDir(settings, cwd, async () => {
@@ -16585,6 +16845,7 @@ ${outputText}
16585
16845
  cwd,
16586
16846
  mcpServers,
16587
16847
  settings,
16848
+ isChannelSession,
16588
16849
  sessionId,
16589
16850
  resume,
16590
16851
  initializeOptions,
@@ -16601,7 +16862,7 @@ ${outputText}
16601
16862
  throw error;
16602
16863
  }
16603
16864
  }
16604
- async newSessionConfigInRuntimeContext(cwd, mcpServers, settings, sessionId, resume, initializeOptions = {}, chatRecording) {
16865
+ async newSessionConfigInRuntimeContext(cwd, mcpServers, settings, isChannelSession, sessionId, resume, initializeOptions = {}, chatRecording) {
16605
16866
  const sessionMcpServers = {};
16606
16867
  for (const server of mcpServers) {
16607
16868
  const stdioServer = toStdioServer(server);
@@ -16613,8 +16874,7 @@ ${outputText}
16613
16874
  sessionMcpServers[stdioServer.name] = new MCPServerConfig(
16614
16875
  stdioServer.command,
16615
16876
  stdioServer.args,
16616
- env,
16617
- cwd
16877
+ env
16618
16878
  );
16619
16879
  continue;
16620
16880
  }
@@ -16657,7 +16917,8 @@ ${outputText}
16657
16917
  ...settings.merged,
16658
16918
  experimental: {
16659
16919
  ...settings.merged.experimental,
16660
- sessionWriterLease: this.sessionWriterLeaseEnabledAtStartup
16920
+ sessionWriterLease: this.sessionWriterLeaseEnabledAtStartup,
16921
+ ...isChannelSession ? { cron: false } : {}
16661
16922
  }
16662
16923
  };
16663
16924
  const sessionArg = resume === true ? { resume: sessionId, sessionId: void 0 } : { sessionId, resume: void 0 };
@@ -16701,6 +16962,7 @@ ${outputText}
16701
16962
  this.assertManagedSessionAdmission();
16702
16963
  if (this.isTrustedManagedParent()) {
16703
16964
  config.setSessionWriterReclaimPolicy("never");
16965
+ config.setSessionWriterTakeoverPolicy("certified");
16704
16966
  }
16705
16967
  } catch (error) {
16706
16968
  return this.cleanupAfterRequestFailure(
@@ -16969,6 +17231,7 @@ export {
16969
17231
  fetchAllowedGitHub,
16970
17232
  normalizeCoreSettingValue,
16971
17233
  runAcpAgent,
17234
+ selectVisibleHistoryRecords,
16972
17235
  toHttpServer,
16973
17236
  toSseServer,
16974
17237
  toStdioServer