@qwen-code/qwen-code 0.23.2 → 0.23.3-nightly.20260910.c46cb85cf2

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 (396) hide show
  1. package/README.md +35 -15
  2. package/bundled/computer-use/SKILL.md +1 -1
  3. package/bundled/goal-draft/SKILL.md +2 -2
  4. package/bundled/qc-helper/docs/configuration/model-providers.md +66 -28
  5. package/bundled/qc-helper/docs/configuration/settings.md +5 -3
  6. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  7. package/bundled/qc-helper/docs/features/channels/dingtalk.md +0 -20
  8. package/bundled/qc-helper/docs/features/channels/dws.md +7 -1
  9. package/bundled/qc-helper/docs/features/channels/overview.md +5 -6
  10. package/bundled/qc-helper/docs/features/commands.md +57 -9
  11. package/bundled/qc-helper/docs/features/computer-use.md +1 -1
  12. package/bundled/qc-helper/docs/features/cross-session-protocol.md +320 -0
  13. package/bundled/qc-helper/docs/features/goals.md +3 -3
  14. package/bundled/qc-helper/docs/features/hooks.md +14 -13
  15. package/bundled/qc-helper/docs/qwen-serve.md +23 -6
  16. package/bundled/review/SKILL.md +82 -79
  17. package/bundled/review/references/posting.md +31 -14
  18. package/chunks/{MaxSizedBox-4C3BKKKY.js → MaxSizedBox-UZW24XUX.js} +61 -54
  19. package/chunks/{StandaloneSessionPicker-TXVF65YW.js → StandaloneSessionPicker-IDK7NAZL.js} +83 -76
  20. package/chunks/{acp-startup-profiler-KEU6VAYR.js → acp-startup-profiler-ARO4II44.js} +2 -2
  21. package/chunks/acp-subagent-executor-7TLJGISS.js +919 -0
  22. package/chunks/{acpAgent-H5XBKGB4.js → acpAgent-YRCNNIIU.js} +707 -209
  23. package/chunks/{agent-T5LEFJIU.js → agent-SGU5EE7U.js} +45 -39
  24. package/chunks/{agent-headless-VZKSRH36.js → agent-headless-JVYBLNLT.js} +45 -39
  25. package/chunks/{anthropicContentGenerator-PRJWWVYJ.js → anthropicContentGenerator-SGIR5IKF.js} +68 -36
  26. package/chunks/{artifact-tool-G5LHNECG.js → artifact-tool-PMYZCYNH.js} +2 -2
  27. package/chunks/{askUserQuestion-I5W5S3D6.js → askUserQuestion-4M4YYIB4.js} +2 -2
  28. package/chunks/{bridge-AOX5IY44.js → bridge-YF6NYRPZ.js} +66 -59
  29. package/chunks/{ca-KC2AISNS.js → ca-MX3WCEEG.js} +1 -1
  30. package/chunks/{channel-management-service-MWQGHPAS.js → channel-management-service-E4HTMU7T.js} +9 -9
  31. package/chunks/{channel-settings-store-XZCGDGHW.js → channel-settings-store-FZ5VKHQD.js} +72 -65
  32. package/chunks/{channel-worker-group-SQ5FRWOH.js → channel-worker-group-X6WH4XWF.js} +9 -9
  33. package/chunks/{channel-worker-manager-TU4ZNWOE.js → channel-worker-manager-SICFJDPJ.js} +19 -10
  34. package/chunks/{channel-worker-supervisor-EMITFMCP.js → channel-worker-supervisor-HSFAKML6.js} +6 -6
  35. package/chunks/{chunk-CLKE4IY3.js → chunk-2SZH22YO.js} +1 -1
  36. package/chunks/{chunk-F2NYVASI.js → chunk-34ZYDM3F.js} +14 -12
  37. package/chunks/{chunk-HIXUUCGY.js → chunk-36HCNKDS.js} +1 -1
  38. package/chunks/{chunk-VBLAI2HA.js → chunk-3FPYT6QC.js} +0 -31
  39. package/chunks/{chunk-QB3KS3N3.js → chunk-3I7W2POO.js} +1 -1
  40. package/chunks/{chunk-TOOOLHVS.js → chunk-3VPFA6L2.js} +3 -3
  41. package/chunks/chunk-532WHF4F.js +127 -0
  42. package/chunks/{chunk-J3TJH52D.js → chunk-5FFAUU4T.js} +1 -1
  43. package/chunks/{chunk-OXR34GCD.js → chunk-5FKZ7KFQ.js} +1851 -34
  44. package/chunks/{chunk-QQK4L3UU.js → chunk-5GLDOLNQ.js} +131 -26
  45. package/chunks/{chunk-TODNHE76.js → chunk-5ZJ3KK5J.js} +5 -5
  46. package/chunks/{chunk-ZN5TKAVR.js → chunk-6EDWSKN4.js} +3 -3
  47. package/chunks/{chunk-5OZUKLL7.js → chunk-6EOMQPTS.js} +4 -4
  48. package/chunks/{chunk-JYGIJA4W.js → chunk-6NONRGYX.js} +1 -1
  49. package/chunks/{chunk-TRQNRP2H.js → chunk-6UK77U7D.js} +46 -3
  50. package/chunks/{chunk-4JNHNVAZ.js → chunk-72BGC7RT.js} +4 -4
  51. package/chunks/{chunk-CRZBDVP2.js → chunk-74JEYK2C.js} +10 -10
  52. package/chunks/{chunk-RM244SCQ.js → chunk-7XM6KEVW.js} +1 -1
  53. package/chunks/{chunk-CALNF3Z3.js → chunk-7XVQNDFB.js} +1 -1
  54. package/chunks/{chunk-G37O7YO6.js → chunk-7ZKDPTYO.js} +2 -2
  55. package/chunks/{chunk-WXPPUPHM.js → chunk-7ZVIGDZF.js} +1 -1
  56. package/chunks/{chunk-2WC3Y7YY.js → chunk-AEY27Z35.js} +401 -23
  57. package/chunks/{chunk-LEAOJ43M.js → chunk-ATH66AEU.js} +62 -59
  58. package/chunks/{chunk-7NDZKE2M.js → chunk-AW2SIT3B.js} +3 -3
  59. package/chunks/{chunk-R3JIDRUL.js → chunk-AWMJRE5N.js} +4 -4
  60. package/chunks/chunk-AYEJOTIU.js +43 -0
  61. package/chunks/{chunk-VJJXG73H.js → chunk-B2TGBZXY.js} +16 -1
  62. package/chunks/{chunk-XDNFODER.js → chunk-B6BDT4RX.js} +1 -1
  63. package/chunks/{chunk-3OAXF3UK.js → chunk-BHR6IN2X.js} +3080 -933
  64. package/chunks/{chunk-FGHPZGOP.js → chunk-BI3WSRQE.js} +39 -55
  65. package/chunks/{chunk-QHLHE2OT.js → chunk-BQOP3K76.js} +1 -1
  66. package/chunks/{chunk-4WMGYG3F.js → chunk-BTWGOKHU.js} +2 -2
  67. package/chunks/{process-registry-OAEG6WGC.js → chunk-BYUAT5OC.js} +1 -0
  68. package/chunks/{chunk-WDVV3LRM.js → chunk-C4NLHK7X.js} +34 -129
  69. package/chunks/{chunk-NOO4QFXM.js → chunk-C75BXMPM.js} +1 -3
  70. package/chunks/chunk-CAAMI77K.js +937 -0
  71. package/chunks/chunk-CF5KXZZX.js +150 -0
  72. package/chunks/{chunk-SOA4HKRJ.js → chunk-CGKEUUYG.js} +2 -2
  73. package/chunks/{chunk-TGNNLRC3.js → chunk-CJ3DHN5I.js} +1 -0
  74. package/chunks/{chunk-AUTUFD5X.js → chunk-CSHX5ZC4.js} +1 -1
  75. package/chunks/{chunk-UYDQYDW2.js → chunk-CUK6F5UF.js} +1 -1
  76. package/chunks/{chunk-CALTQWTZ.js → chunk-DLH7YIX6.js} +2 -2
  77. package/chunks/{chunk-CMWU6P4D.js → chunk-DMX7RF6E.js} +1 -1
  78. package/chunks/{chunk-TRWQQBVH.js → chunk-DTNV6UZY.js} +1 -1
  79. package/chunks/{chunk-GSFV5RQW.js → chunk-E4UEO3XM.js} +3 -2
  80. package/chunks/{chunk-KFECPHLV.js → chunk-E5GQNSJY.js} +3 -3
  81. package/chunks/chunk-ELRMZTPF.js +374 -0
  82. package/chunks/chunk-ERU3SDXT.js +27 -0
  83. package/chunks/{chunk-O2FEO2CB.js → chunk-EUURTIV6.js} +18 -2
  84. package/chunks/{chunk-4HOEU2OR.js → chunk-EWJTAP3Y.js} +1 -19
  85. package/chunks/{chunk-GOEVQADN.js → chunk-F2RKL5I2.js} +287 -169
  86. package/chunks/{chunk-ELD3OBPU.js → chunk-F45SKYIQ.js} +3 -3
  87. package/chunks/{chunk-7PD7ZMX5.js → chunk-FCQJLMA2.js} +98 -5
  88. package/chunks/{chunk-G3ZUMSFS.js → chunk-FGRDUDCI.js} +6 -6
  89. package/chunks/{chunk-7SVM3RP2.js → chunk-FGV2QEAO.js} +4 -6
  90. package/chunks/{chunk-4VY3ITHR.js → chunk-FN3JNDRU.js} +3 -3
  91. package/chunks/{chunk-GOKAOSCN.js → chunk-FRVV5SSD.js} +2 -2
  92. package/chunks/{chunk-ULZECEIP.js → chunk-FYZ5NZ3V.js} +2 -20
  93. package/chunks/{chunk-ALMR3E6Q.js → chunk-GDWE23OR.js} +3 -3
  94. package/chunks/{chunk-RNAJVXUG.js → chunk-GP47UR3M.js} +6 -6
  95. package/chunks/{chunk-LNYV4GXX.js → chunk-GSKX53AN.js} +0 -139
  96. package/chunks/{chunk-6G4V7SE4.js → chunk-HG46TTAG.js} +1 -1
  97. package/chunks/{chunk-FETY36NQ.js → chunk-HGEUHUEV.js} +1 -1
  98. package/chunks/{chunk-WDN64MVT.js → chunk-HL2DQG3Y.js} +83 -17
  99. package/chunks/{chunk-E6TI726I.js → chunk-HUXPEUFL.js} +1 -1
  100. package/chunks/{chunk-5DQ4YTIZ.js → chunk-HZTXKVSV.js} +1 -1
  101. package/chunks/{chunk-LYT2OU7D.js → chunk-IAEXTMED.js} +1 -1
  102. package/chunks/{chunk-IRGDIDGJ.js → chunk-IFHJIEMN.js} +26 -19
  103. package/chunks/{chunk-IW6RQPQB.js → chunk-IJOS26LH.js} +1 -3
  104. package/chunks/{chunk-ORFIYTI2.js → chunk-IK2MWJP5.js} +1 -1
  105. package/chunks/{chunk-XSOXPG2L.js → chunk-IOUBOANU.js} +36 -7
  106. package/chunks/{chunk-KA5HR3G2.js → chunk-IUVIBDKU.js} +2 -2
  107. package/chunks/{chunk-U6REWGVR.js → chunk-J2RNOJRV.js} +2 -2
  108. package/chunks/{chunk-PDN7FJZV.js → chunk-J5PYQVD2.js} +2 -2
  109. package/chunks/{chunk-DAI65CMX.js → chunk-JDEW3V5B.js} +1 -1
  110. package/chunks/{chunk-67XTVRVB.js → chunk-JEMDIKGQ.js} +7 -7
  111. package/chunks/chunk-JL6APGBX.js +43 -0
  112. package/chunks/{chunk-PFKGV6PO.js → chunk-JOMCZWX7.js} +9 -15
  113. package/chunks/{chunk-HJ5UJQQL.js → chunk-JV5YASQA.js} +1822 -1335
  114. package/chunks/{chunk-N6S3NUYJ.js → chunk-JXNIF2O5.js} +1 -1
  115. package/chunks/chunk-K2OJUPOE.js +78 -0
  116. package/chunks/{chunk-QFJZAY7W.js → chunk-KFGPNCCY.js} +4 -4
  117. package/chunks/{chunk-NX7ZTXFF.js → chunk-KHIBLKNK.js} +1 -1
  118. package/chunks/{chunk-A7EFXK7P.js → chunk-KVBNJ4K2.js} +5 -5
  119. package/chunks/{chunk-CWVZBIZJ.js → chunk-KZ2CU2LH.js} +1 -1
  120. package/chunks/{chunk-IWABUX6T.js → chunk-L2KF7HUE.js} +6 -6
  121. package/chunks/{chunk-4ALNJDHL.js → chunk-L3DTX6U4.js} +3 -1
  122. package/chunks/{chunk-22GORRNY.js → chunk-LAP7X6EC.js} +1 -1
  123. package/chunks/{chunk-DARWOZY6.js → chunk-LEGNDA46.js} +1 -1
  124. package/chunks/{chunk-WXFCI3O5.js → chunk-LG5Y4OWO.js} +2 -2
  125. package/chunks/{chunk-3LPJ776W.js → chunk-LILGKQ4B.js} +10 -7
  126. package/chunks/{chunk-WK7P62DV.js → chunk-LIR7YS2O.js} +6 -6
  127. package/chunks/{chunk-X7LFJF5D.js → chunk-LK2WUCDQ.js} +36 -84
  128. package/chunks/{chunk-46MMBZHI.js → chunk-LY2GK2PR.js} +4 -4
  129. package/chunks/{chunk-NPKCVSXX.js → chunk-MOS5OAOG.js} +10 -8
  130. package/chunks/chunk-MXOALJIL.js +691 -0
  131. package/chunks/chunk-NUQ4GK5I.js +315 -0
  132. package/chunks/{chunk-J3VZF2AL.js → chunk-NUQVB25K.js} +2 -2
  133. package/chunks/{chunk-GNY7B3CA.js → chunk-NVIBH7WS.js} +1 -1
  134. package/chunks/{chunk-KCF2436G.js → chunk-O3MKRN2I.js} +4 -4
  135. package/chunks/{chunk-MV5DTLJV.js → chunk-ONGZNOIP.js} +1 -1
  136. package/chunks/{chunk-WBU2PIZ5.js → chunk-OOLSYRZ7.js} +16 -16
  137. package/chunks/{chunk-QTB4VP4K.js → chunk-PIGUW2U2.js} +149 -12
  138. package/chunks/{chunk-QAZ2MGYT.js → chunk-PLLIWEM3.js} +2 -2
  139. package/chunks/{chunk-WXD7INFV.js → chunk-PMS4FVLY.js} +8 -8
  140. package/chunks/{chunk-NB3NDQQK.js → chunk-Q2XLNLAV.js} +1 -1
  141. package/chunks/{chunk-4I3WFI3U.js → chunk-Q6HXLBZF.js} +12 -12
  142. package/chunks/{chunk-CCBTNJB4.js → chunk-QPWZX4ZV.js} +27 -27
  143. package/chunks/{chunk-JO77FGNZ.js → chunk-RJZTX2OF.js} +19 -7
  144. package/chunks/{chunk-PQEISIKS.js → chunk-SAH4BD2J.js} +0 -67
  145. package/chunks/{chunk-IR6JKBAP.js → chunk-SAWPURIU.js} +2 -2
  146. package/chunks/{chunk-LWX4WDFF.js → chunk-SNZWDV67.js} +43 -15
  147. package/chunks/{chunk-YLOHCA6I.js → chunk-SXEE6PND.js} +2 -2
  148. package/chunks/{chunk-G5VOXCRX.js → chunk-T4JVQR7Z.js} +2 -2
  149. package/chunks/{chunk-6RZX2HIH.js → chunk-TBEXLLAO.js} +2 -2
  150. package/chunks/{chunk-YQGW3M6Z.js → chunk-TP2DUOB6.js} +8 -8
  151. package/chunks/{chunk-MWIO7MF6.js → chunk-TP6FYVQT.js} +2 -0
  152. package/chunks/{chunk-HRPFBHW7.js → chunk-TPKQIA7G.js} +1 -0
  153. package/chunks/{chunk-B25JYXZE.js → chunk-TWC3FHUI.js} +4 -4
  154. package/chunks/{chunk-H3Q3RSKZ.js → chunk-U7O65WKL.js} +1 -1
  155. package/chunks/{chunk-LUNC5KCL.js → chunk-UBEYS536.js} +7 -7
  156. package/chunks/{chunk-R457KFV7.js → chunk-UGS62IR2.js} +3 -3
  157. package/chunks/{chunk-S5QR6CB5.js → chunk-UKMWZ5NS.js} +108 -887
  158. package/chunks/{chunk-7LTCFO6T.js → chunk-VHKOULAI.js} +6 -5
  159. package/chunks/{chunk-FAJPLSYF.js → chunk-VID4BW52.js} +90 -86
  160. package/chunks/{chunk-2BMXHB6N.js → chunk-VLZOU6UH.js} +7 -7
  161. package/chunks/{chunk-ZP5XDLSA.js → chunk-VTBPMLRO.js} +12 -12
  162. package/chunks/{chunk-QTNCGZHQ.js → chunk-VX63RJXE.js} +9 -0
  163. package/chunks/{chunk-7VEYUF3N.js → chunk-W5ZQMAEM.js} +1 -1
  164. package/chunks/{chunk-XQ4RDO5B.js → chunk-WBCPROWX.js} +1 -1
  165. package/chunks/{chunk-AO2VMS72.js → chunk-WS7MOFK6.js} +3 -3
  166. package/chunks/{chunk-FV4DM2M4.js → chunk-WXFK4MH7.js} +32 -12
  167. package/chunks/{chunk-APXIW2TF.js → chunk-WY4N6KS7.js} +4 -4
  168. package/chunks/{chunk-KEPC5BOL.js → chunk-XDQUDARC.js} +10 -13
  169. package/chunks/{chunk-2EKVPSIJ.js → chunk-Y2MYW47X.js} +1 -1
  170. package/chunks/{chunk-5BH2AIEY.js → chunk-YIU5PEAT.js} +2 -2
  171. package/chunks/{chunk-PSPAM24S.js → chunk-YKK2XXHF.js} +4 -0
  172. package/chunks/{chunk-HZ2HUXX7.js → chunk-YS2ZJSOA.js} +29 -12
  173. package/chunks/{chunk-OFVAS4AR.js → chunk-ZGQIIGNQ.js} +2 -2
  174. package/chunks/{chunk-HNLMYDQE.js → chunk-ZHECLGA6.js} +2 -4
  175. package/chunks/{chunk-XBVNNDPK.js → chunk-ZHKTKHMO.js} +8 -1
  176. package/chunks/{chunk-OWCFKIFQ.js → chunk-ZKYR7QS4.js} +1 -1
  177. package/chunks/{chunk-YZTGGCEE.js → chunk-ZKZHSB5W.js} +1 -1
  178. package/chunks/{chunk-ERXNTINK.js → chunk-ZT6EPPBY.js} +1 -1
  179. package/chunks/{chunk-565U2ANU.js → chunk-ZTTC7T4X.js} +1 -1
  180. package/chunks/{chunk-BK7D2JR6.js → chunk-ZUQVZTWG.js} +3 -3
  181. package/chunks/{chunk-7OCIQNKX.js → chunk-ZW2EUO2A.js} +1 -1
  182. package/chunks/{config-utils-GPLIABL2.js → config-utils-S5LFS4RN.js} +65 -58
  183. package/chunks/{contextCommand-NCUQUDBY.js → contextCommand-XXKZMMSQ.js} +62 -55
  184. package/chunks/{core-runtime-WKYKWVYU.js → core-runtime-YGUA42AZ.js} +64 -57
  185. package/chunks/{create-sub-session-PPLXB3JJ.js → create-sub-session-SEK6KCYR.js} +62 -55
  186. package/chunks/{create-sub-session-TGIX63YU.js → create-sub-session-TIGCFGCS.js} +2 -2
  187. package/chunks/{cron-create-GTPVMJCF.js → cron-create-AKWX67FO.js} +1 -1
  188. package/chunks/{cron-delete-ZBK27Z4K.js → cron-delete-XPB6IYZJ.js} +1 -1
  189. package/chunks/{cron-list-KTFKFDKC.js → cron-list-XBKO4WU5.js} +1 -1
  190. package/chunks/{daemon-2CKIAO3I.js → daemon-G5TYKZD6.js} +2 -2
  191. package/chunks/{daemon-git-worktree-guard-73ZWOLKL.js → daemon-git-worktree-guard-3AWINPPX.js} +63 -56
  192. package/chunks/{daemon-status-provider-OK7VONJG.js → daemon-status-provider-RTKHKUFJ.js} +71 -64
  193. package/chunks/{daemon-trust-policy-CAUCREG2.js → daemon-trust-policy-6YQOC7B6.js} +67 -60
  194. package/chunks/{daemon-trust-policy-monitor-3Y36OOEQ.js → daemon-trust-policy-monitor-EN5L23GS.js} +67 -60
  195. package/chunks/{de-UU2YTO37.js → de-OOLZAU2U.js} +1 -1
  196. package/chunks/{deferred-core-runtime-Q7WFWYD3.js → deferred-core-runtime-JPLQRVZO.js} +60 -53
  197. package/chunks/{display-image-CTNHJRZC.js → display-image-NAH3AZ63.js} +3 -3
  198. package/chunks/{dist-6YDUH3BB.js → dist-3BJVSJ7D.js} +10 -631
  199. package/chunks/{dist-F6JLAJLE.js → dist-65Q3TRLH.js} +16 -36
  200. package/chunks/{dist-Y5KC3IHW.js → dist-HX2LG76F.js} +233 -34
  201. package/chunks/{dist-BNQVF565.js → dist-J7PDFK53.js} +12 -31
  202. package/chunks/{dist-NP7QKLVG.js → dist-JCXKXRH6.js} +3 -6
  203. package/chunks/{dist-UFTFGI6I.js → dist-LHGMHIDK.js} +2 -6
  204. package/chunks/{dist-XLV33CLY.js → dist-QPTIRE3U.js} +4 -12
  205. package/chunks/{dist-ZDNJK74R.js → dist-SBK33YLC.js} +3 -34
  206. package/chunks/{dist-F34J4FZX.js → dist-WMFHZG3R.js} +2 -5
  207. package/chunks/{edit-YJD6IETK.js → edit-QXJZIWRQ.js} +48 -42
  208. package/chunks/{en-YJNRUQG4.js → en-7BZ2OZKH.js} +2 -1
  209. package/chunks/{enter-worktree-YFTKHXHZ.js → enter-worktree-54L5QJ3N.js} +4 -4
  210. package/chunks/{enterPlanMode-EFPVTWIH.js → enterPlanMode-2ITCVQ5N.js} +45 -39
  211. package/chunks/{environment-HP3AXFTB.js → environment-URPO5ORZ.js} +63 -56
  212. package/chunks/{errors-22ON46G7.js → errors-TDUYLEKI.js} +62 -55
  213. package/chunks/{exit-worktree-NF2XEMES.js → exit-worktree-EORJDKDS.js} +4 -4
  214. package/chunks/{exitPlanMode-MOQUNCBH.js → exitPlanMode-RA7KMUEW.js} +45 -39
  215. package/chunks/{fast-path-2X7BPMXX.js → fast-path-Q2JYP64P.js} +6 -6
  216. package/chunks/{fast-path-settings-SATXY3PD.js → fast-path-settings-GTHZLVSS.js} +2 -2
  217. package/chunks/{fr-HKNWVXRJ.js → fr-JJWM2HUS.js} +1 -1
  218. package/chunks/{glob-Y7ACIB3P.js → glob-VHSV4BKE.js} +48 -42
  219. package/chunks/{goal-tools-DABMICUC.js → goal-tools-5FIE56CK.js} +51 -41
  220. package/chunks/{grep-BLHF2S5D.js → grep-3PKFKLCA.js} +2 -2
  221. package/chunks/{handleAutoUpdate-MCAMHYDI.js → handleAutoUpdate-7FZFLKNZ.js} +63 -56
  222. package/chunks/{i18n-C3GDCALP.js → i18n-NTFQDWKR.js} +61 -54
  223. package/chunks/{image-gen-XP4NNIYG.js → image-gen-TF3IQWSH.js} +7 -6
  224. package/chunks/{initializer-4URDQL2G.js → initializer-LB3T635H.js} +67 -60
  225. package/chunks/{installationInfo-LBOL6SBV.js → installationInfo-KRO433ZG.js} +60 -53
  226. package/chunks/{ja-GJS5RZGU.js → ja-L67TXFDJ.js} +1 -1
  227. package/chunks/{list-JOGBAC2R.js → list-NEP3WPZ7.js} +70 -63
  228. package/chunks/{list-agents-2CXPGJUE.js → list-agents-QLDXS5OD.js} +17 -7
  229. package/chunks/{llm-2KPNSAVY.js → llm-AZEJEIAD.js} +130 -123
  230. package/chunks/{llm-content-generator-GR3FOHLB.js → llm-content-generator-KWXFHBR3.js} +6 -5
  231. package/chunks/{loadedSettingsAdapter-DVKROEJD.js → loadedSettingsAdapter-NZORJLSD.js} +67 -60
  232. package/chunks/{loggingContentGenerator-P4K6K5W4.js → loggingContentGenerator-NGHVU6AK.js} +67 -60
  233. package/chunks/{loop-wakeup-HL6XOWI4.js → loop-wakeup-HHMYIC7Z.js} +2 -2
  234. package/chunks/{ls-YV7RKLKY.js → ls-N7ABR6HI.js} +4 -4
  235. package/chunks/{lsp-NO3AMRZT.js → lsp-LTOFWG5P.js} +1 -1
  236. package/chunks/{managed-npm-update-VWBKHNIN.js → managed-npm-update-3LHNBEAG.js} +60 -53
  237. package/chunks/{mcp-6YYNSYLK.js → mcp-4SWJKDX7.js} +67 -60
  238. package/chunks/{monitor-A255TNZR.js → monitor-V5EFBZC7.js} +47 -41
  239. package/chunks/{nonInteractiveCli-LXGIKQAT.js → nonInteractiveCli-5UFUBUAT.js} +114 -107
  240. package/chunks/{notebook-edit-5UYHS2DM.js → notebook-edit-ATV46KWD.js} +46 -40
  241. package/chunks/openai-WX26N5OJ.js +47 -0
  242. package/chunks/{openaiContentGenerator-A6MAMEO5.js → openaiContentGenerator-BKTO5QJK.js} +31 -25
  243. package/chunks/openaiResponsesContentGenerator-RTCAJ5V5.js +1658 -0
  244. package/chunks/{pidfile-B7DZC4TP.js → pidfile-JAIOWPI3.js} +60 -53
  245. package/chunks/process-registry-X6ZCASEN.js +10 -0
  246. package/chunks/{processUtils-BPZ2MCZS.js → processUtils-TCQH3LVD.js} +2 -2
  247. package/chunks/{prompt-terminal-ledger-FYYTAOXS.js → prompt-terminal-ledger-BYXHEUHX.js} +61 -54
  248. package/chunks/{pt-FXMYXEUV.js → pt-77SBDL4B.js} +1 -1
  249. package/chunks/{qwenContentGenerator-4IOJFD4S.js → qwenContentGenerator-K5TJK75P.js} +58 -50
  250. package/chunks/{qwenOAuth2-KX6LVYQ3.js → qwenOAuth2-NOXRK323.js} +6 -5
  251. package/chunks/{read-file-A4H4O3VQ.js → read-file-DL7GNZD5.js} +11 -9
  252. package/chunks/{read-mcp-resource-D3N75DGF.js → read-mcp-resource-B37WANAQ.js} +1 -1
  253. package/chunks/{record-artifact-Q5CRGJTP.js → record-artifact-OAXWXZ5D.js} +2 -2
  254. package/chunks/record-source-D7R7X3GT.js +22 -0
  255. package/chunks/{report-findings-TJ34R7QK.js → report-findings-AR3VC6EQ.js} +3 -3
  256. package/chunks/{request-shutdown-LRKMTBAD.js → request-shutdown-IKNWTX5M.js} +5 -5
  257. package/chunks/{resumeHistoryUtils-YQQ43E4N.js → resumeHistoryUtils-OYKXZ4YO.js} +66 -59
  258. package/chunks/{ripGrep-W32NWFTA.js → ripGrep-EOUMIU4K.js} +15 -13
  259. package/chunks/{ru-RMHURE5U.js → ru-UYWHKWF2.js} +1 -1
  260. package/chunks/{run-qwen-serve-WBSWWIRV.js → run-qwen-serve-PPTGWC5B.js} +305 -138
  261. package/chunks/{runtime-VRVBX2E5.js → runtime-5RO22P2N.js} +73 -66
  262. package/chunks/{scheduled-tasks-D65KJDA3.js → scheduled-tasks-YGERFWLZ.js} +68 -61
  263. package/chunks/{scheduler-M2YPN7Z7.js → scheduler-S6WU6M3C.js} +62 -55
  264. package/chunks/{sdk-exporters-grpc-MXTVSE3C.js → sdk-exporters-grpc-Y2ZUQDUQ.js} +2 -2
  265. package/chunks/{sdk-exporters-http-7R2ARBPV.js → sdk-exporters-http-VWTF4W6K.js} +3 -3
  266. package/chunks/{sdk-impl-YOLO7LV4.js → sdk-impl-G6FVTBQZ.js} +9 -9
  267. package/chunks/{send-message-76BKWKFZ.js → send-message-TWOGWCBG.js} +12 -9
  268. package/chunks/{serve-BE3H2P6P.js → serve-HT4WOCWS.js} +68 -61
  269. package/chunks/{server-FLY5JERG.js → server-SWXVPRCS.js} +2947 -523
  270. package/chunks/{session-JVN62R5K.js → session-6DSFUOMO.js} +122 -115
  271. package/chunks/{session-attachments-root-7ACGLHXA.js → session-attachments-root-SOZCTQWW.js} +60 -53
  272. package/chunks/{session-pr-refresh-TQS57SDK.js → session-pr-refresh-F7XUBQBH.js} +68 -61
  273. package/chunks/{settings-D44YMZFT.js → settings-SWQH36PO.js} +72 -65
  274. package/chunks/{shell-3VE6I4V5.js → shell-XUQL6EYV.js} +45 -39
  275. package/chunks/{skill-FHEGRRZU.js → skill-HNRDD54C.js} +33 -23
  276. package/chunks/{skill-settings-VHEJMBFL.js → skill-settings-JU72PCII.js} +66 -59
  277. package/chunks/{spawnChannel-T6MX2ZDN.js → spawnChannel-7ZVM3GBU.js} +63 -56
  278. package/chunks/{standalone-update-QUGHFMCS.js → standalone-update-64JQY2LX.js} +62 -55
  279. package/chunks/{start-opentui-ui-IHIIZ2LE.js → start-opentui-ui-RSLBXESU.js} +183 -161
  280. package/chunks/{startInteractiveUI-LR7K2ARZ.js → startInteractiveUI-ZDPHD7XE.js} +553 -1123
  281. package/chunks/{syntheticOutput-D2P5V6RG.js → syntheticOutput-F6F27JMK.js} +2 -2
  282. package/chunks/{task-create-MWXJFRRM.js → task-create-Y623TBHB.js} +8 -8
  283. package/chunks/{task-list-EYO3FE57.js → task-list-FCPEEGWL.js} +1 -1
  284. package/chunks/{task-stop-BFSKRTGV.js → task-stop-QTKZXLPH.js} +1 -1
  285. package/chunks/{task-update-2JJJRHMT.js → task-update-YLSXF25N.js} +8 -8
  286. package/chunks/{team-create-GY3VFY47.js → team-create-U52VYSNO.js} +47 -41
  287. package/chunks/{team-delete-IQZ6XGFI.js → team-delete-S7TLHZCF.js} +1 -1
  288. package/chunks/{team-plan-approval-BQPGZOT5.js → team-plan-approval-IQ4ADQIK.js} +45 -39
  289. package/chunks/{terminal-image-renderer-YNYW5CQG.js → terminal-image-renderer-ZEMF7LB2.js} +62 -55
  290. package/chunks/{theme-manager-U6CIK3GM.js → theme-manager-DK2S2SOX.js} +60 -53
  291. package/chunks/{todoWrite-5ERKFWAK.js → todoWrite-5QI2H2FW.js} +4 -4
  292. package/chunks/{tool-search-XI3QWD5I.js → tool-search-6U4OQG7K.js} +21 -15
  293. package/chunks/{total-session-admission-3SNSJJ32.js → total-session-admission-BOARHBZU.js} +66 -59
  294. package/chunks/{trustedFolders-OVAQKNV5.js → trustedFolders-GKQZXZSV.js} +61 -54
  295. package/chunks/{update-relaunch-XV5O74E3.js → update-relaunch-GLACF7PX.js} +5 -5
  296. package/chunks/{updateCheck-CHUYWD6L.js → updateCheck-NLBSZB4Q.js} +62 -55
  297. package/chunks/{useAutoAcceptIndicator-VKSVIXZC.js → useAutoAcceptIndicator-3X3BYU7H.js} +70 -63
  298. package/chunks/{validateNonInterActiveAuth-ZNUTD3E5.js → validateNonInterActiveAuth-NE3JLOIR.js} +111 -104
  299. package/chunks/{version-EK7VAGSI.js → version-6H5YAT4N.js} +1 -1
  300. package/chunks/{web-fetch-24KZO763.js → web-fetch-RWSO7TTN.js} +15 -13
  301. package/chunks/{web-search-CRNXKZ2X.js → web-search-DADI3LV5.js} +388 -327
  302. package/chunks/{web-shell-static-BFDESDD4.js → web-shell-static-CCN4JZEE.js} +1 -1
  303. package/chunks/workflow-LPGCZCIT.js +1224 -0
  304. package/chunks/{workspace-providers-status-MAM42IZS.js → workspace-providers-status-QBRBEFTO.js} +71 -64
  305. package/chunks/{workspace-registration-store-HKLJEDQX.js → workspace-registration-store-WUKTMJPW.js} +3 -1
  306. package/chunks/{workspace-registry-7RDDOBLN.js → workspace-registry-CJV7KVGF.js} +66 -59
  307. package/chunks/{workspace-runtime-coordinator-LEPDPXJO.js → workspace-runtime-coordinator-7LYMFMFF.js} +69 -60
  308. package/chunks/{workspace-service-5IFDCNN3.js → workspace-service-HWXZSA4J.js} +73 -66
  309. package/chunks/{workspace-skills-status-FJ3HNH4H.js → workspace-skills-status-D6QXUWCC.js} +68 -61
  310. package/chunks/{workspace-trust-reconciler-PQFHIWLR.js → workspace-trust-reconciler-VZX7G7CZ.js} +73 -66
  311. package/chunks/{write-file-ERG67ZFX.js → write-file-KKHV26YV.js} +47 -41
  312. package/chunks/{zh-VBFCRQBL.js → zh-J2GLI64H.js} +2 -1
  313. package/chunks/{zh-TW-N2TBF2F2.js → zh-TW-TBAICUJQ.js} +2 -1
  314. package/chunks/{zoom-image-WQYEC3SR.js → zoom-image-OG7X7KAA.js} +12 -10
  315. package/cli.js +14 -14
  316. package/export-transcript-document.css +1 -0
  317. package/export-transcript-document.js +164 -165
  318. package/locales/ca.js +2 -2
  319. package/locales/de.js +2 -2
  320. package/locales/en.js +3 -2
  321. package/locales/fr.js +2 -2
  322. package/locales/ja.js +2 -2
  323. package/locales/pt.js +2 -2
  324. package/locales/ru.js +2 -2
  325. package/locales/zh-TW.js +3 -2
  326. package/locales/zh.js +3 -2
  327. package/package.json +5 -4
  328. package/web-shell/assets/{abnfDiagram-VCTEODGH-BRLgQbnT.js → abnfDiagram-VCTEODGH-NT0lTLRG.js} +1 -1
  329. package/web-shell/assets/{arc-qAF9_XsR.js → arc-DDqnIMMx.js} +1 -1
  330. package/web-shell/assets/{architectureDiagram-5GKGNRK7-BorUttEz.js → architectureDiagram-5GKGNRK7-DfYghE3W.js} +1 -1
  331. package/web-shell/assets/{blockDiagram-NRAW4CY4-Bj0qZVxu.js → blockDiagram-NRAW4CY4-DlqJIx5c.js} +1 -1
  332. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BTqJis32.js → c4Diagram-UCG6FXSJ-CinqLGU4.js} +1 -1
  333. package/web-shell/assets/channel-BHGoSkEv.js +1 -0
  334. package/web-shell/assets/{chunk-2Q5K7J3B-RrQ5X8m-.js → chunk-2Q5K7J3B-CsjJX5M7.js} +1 -1
  335. package/web-shell/assets/{chunk-5VM5RSS4-uUjDl8wO.js → chunk-5VM5RSS4-CaVb2tdH.js} +1 -1
  336. package/web-shell/assets/{chunk-F27PBJKO-C3JhpyzI.js → chunk-F27PBJKO-CRyErlzW.js} +1 -1
  337. package/web-shell/assets/{chunk-G27WJ6UU-C8ZNFs7F.js → chunk-G27WJ6UU-7I79DZCf.js} +1 -1
  338. package/web-shell/assets/{chunk-JWPE2WC7-DNpXtEOs.js → chunk-JWPE2WC7-Dz4cac5F.js} +1 -1
  339. package/web-shell/assets/{chunk-LCL6LL3I-DagA2ZLw.js → chunk-LCL6LL3I-Ls24Derb.js} +1 -1
  340. package/web-shell/assets/{chunk-POPQ4Y6H-R23uH7Xm.js → chunk-POPQ4Y6H-JzYe4qx7.js} +1 -1
  341. package/web-shell/assets/{chunk-SVP7TREG-Qz9RN_BR.js → chunk-SVP7TREG-BxDwesA-.js} +1 -1
  342. package/web-shell/assets/{chunk-XXDRQBXY-jYb1_hni.js → chunk-XXDRQBXY-CW4hjgWc.js} +1 -1
  343. package/web-shell/assets/classDiagram-DTDB5LWJ-E47Xnn15.js +1 -0
  344. package/web-shell/assets/classDiagram-v2-JRS7N3AN-E47Xnn15.js +1 -0
  345. package/web-shell/assets/{cose-bilkent-JH36ORCC-Cv2OunpE.js → cose-bilkent-JH36ORCC-DxikE9iF.js} +1 -1
  346. package/web-shell/assets/{cynefin-OW5HDTMX-LH42KFJx.js → cynefin-OW5HDTMX-CvVsIkVN.js} +1 -1
  347. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-Dha4_OoR.js → cynefinDiagram-5FMLGOSQ-CDHkk3wq.js} +1 -1
  348. package/web-shell/assets/{dagre-3AP2YEHR-Br5lnUKD.js → dagre-3AP2YEHR-BgLdkVLT.js} +1 -1
  349. package/web-shell/assets/{diagram-S7CK7UJ4-dpKq2bBX.js → diagram-S7CK7UJ4-DP43cGhe.js} +1 -1
  350. package/web-shell/assets/{diagram-UQ7AKVKN-BAgHWpXr.js → diagram-UQ7AKVKN-BWrZYhoT.js} +1 -1
  351. package/web-shell/assets/{diagram-VSXAHHWV-GRRzpyE2.js → diagram-VSXAHHWV-B80wjH_n.js} +1 -1
  352. package/web-shell/assets/{diagram-VX7I27RA-BNFiaYpG.js → diagram-VX7I27RA-DPpKmDsY.js} +1 -1
  353. package/web-shell/assets/{diagram-Z3DM3KII-BisZzB_h.js → diagram-Z3DM3KII-kaEBNbNU.js} +1 -1
  354. package/web-shell/assets/{ebnfDiagram-PWID7BFC-B1xbwycf.js → ebnfDiagram-PWID7BFC-1-qbEZvk.js} +1 -1
  355. package/web-shell/assets/{erDiagram-SSCWMZ5O-CQMzbGE5.js → erDiagram-SSCWMZ5O-CrK2gMkV.js} +1 -1
  356. package/web-shell/assets/{flowDiagram-A5DVABFB-CZ_Zondl.js → flowDiagram-A5DVABFB-Dic2xofW.js} +1 -1
  357. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BTh2ShxS.js → ganttDiagram-EL5Y4UJY-DJko8vT7.js} +1 -1
  358. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-oHOB-Uxt.js → gitGraphDiagram-WWUBYQGX-DxsQ-bHT.js} +1 -1
  359. package/web-shell/assets/index-DY8CxdBr.js +2173 -0
  360. package/web-shell/assets/index-eBxK3rs2.css +36 -0
  361. package/web-shell/assets/{index-DWoFMu5x.js → index-t7VBrUeD.js} +1 -1
  362. package/web-shell/assets/{infoDiagram-RXCK75RN-C0QpudbG.js → infoDiagram-RXCK75RN-DcRUJbNi.js} +1 -1
  363. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-a6B741uT.js → ishikawaDiagram-5VMMS53U-CUPw-2_e.js} +1 -1
  364. package/web-shell/assets/{journeyDiagram-EYS64GPL-Dbht9ICp.js → journeyDiagram-EYS64GPL-yOHhZxkW.js} +1 -1
  365. package/web-shell/assets/{kanban-definition-3QL26DDD-D4OFR8-h.js → kanban-definition-3QL26DDD-CFUGBbqz.js} +1 -1
  366. package/web-shell/assets/{layout-Dvdh5jRH.js → layout-BoilNfBU.js} +1 -1
  367. package/web-shell/assets/{linear-Dvc6KIW2.js → linear-DOuHaPrl.js} +1 -1
  368. package/web-shell/assets/{mermaid.core-CB36RfIb.js → mermaid.core-1G1fXWda.js} +6 -6
  369. package/web-shell/assets/{mindmap-definition-FBJOCRG2-Fmqo1CjP.js → mindmap-definition-FBJOCRG2-B8BhkrOX.js} +1 -1
  370. package/web-shell/assets/{pegDiagram-XKGWAZYB-CCxYBoA4.js → pegDiagram-XKGWAZYB-CipC5K1D.js} +1 -1
  371. package/web-shell/assets/{pieDiagram-E7YTZNPT-BVHKQFzt.js → pieDiagram-E7YTZNPT-CHBDFDUJ.js} +1 -1
  372. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-l95IznwR.js → quadrantDiagram-AXDQQJYC-_iiBkoZO.js} +1 -1
  373. package/web-shell/assets/{railroadDiagram-O6MQD6OU-BlLdRdXp.js → railroadDiagram-O6MQD6OU-Cx1peHDi.js} +1 -1
  374. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BkDLBR5w.js → requirementDiagram-EFPCY7ZU-CBRiPbdQ.js} +1 -1
  375. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-jAIqRp65.js → sankeyDiagram-P5KCCOFB-TT6GcHaZ.js} +1 -1
  376. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-f-soZYPr.js → sequenceDiagram-WJ2MYXX4-CWP42PNb.js} +1 -1
  377. package/web-shell/assets/{sizeCapture-X5ZJPWSS-BzOuAfB2.js → sizeCapture-X5ZJPWSS-Bp94roEG.js} +1 -1
  378. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BPLSs12r.js → stateDiagram-HBIQ2CUA-0ftrzTAy.js} +1 -1
  379. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-PgAST0dK.js +1 -0
  380. package/web-shell/assets/{swimlanes-XN3QIQJK-D-9E_RIR.js → swimlanes-XN3QIQJK-D-FsenYJ.js} +1 -1
  381. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-BcWcB5bj.js +8 -0
  382. package/web-shell/assets/{timeline-definition-24CTP7MA-CT56K-gV.js → timeline-definition-24CTP7MA-Ctvrj28y.js} +1 -1
  383. package/web-shell/assets/{vennDiagram-4TSXK5OY-B-vi4IyO.js → vennDiagram-4TSXK5OY-5DZncjOt.js} +1 -1
  384. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9O7Ju98.js → wardleyDiagram-VM6X3IG4-jZjYwPY7.js} +1 -1
  385. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-6d8w3jg2.js → xychartDiagram-S5SC5T6Z-Ci6Q2C2_.js} +1 -1
  386. package/web-shell/index.html +29 -5
  387. package/chunks/chunk-V7RNNPGC.js +0 -44
  388. package/chunks/workflow-HD5NYMW5.js +0 -2907
  389. package/web-shell/assets/channel-COIuCrVH.js +0 -1
  390. package/web-shell/assets/classDiagram-DTDB5LWJ-DoX6OYqu.js +0 -1
  391. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DoX6OYqu.js +0 -1
  392. package/web-shell/assets/index-CI1ysIEv.js +0 -2154
  393. package/web-shell/assets/index-CpxXGH-8.css +0 -36
  394. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-IRul-LaT.js +0 -1
  395. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6lgKepA.js +0 -8
  396. /package/chunks/{chunk-JA5CBKRP.js → chunk-7NXSVSFB.js} +0 -0
@@ -1,14 +1,18 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
3
  import {
4
- classifyApiError
5
- } from "./chunk-V7RNNPGC.js";
4
+ recomputeMcpGating
5
+ } from "./chunk-WY4N6KS7.js";
6
6
  import {
7
- fireSessionDeleteHook
8
- } from "./chunk-L34XSHIZ.js";
7
+ PeerMessaging,
8
+ classifyApiError
9
+ } from "./chunk-MXOALJIL.js";
9
10
  import {
10
11
  normalizePartList
11
12
  } from "./chunk-5IENVM7Z.js";
13
+ import {
14
+ fireSessionDeleteHook
15
+ } from "./chunk-L34XSHIZ.js";
12
16
  import {
13
17
  EXTENSION_CONTEXT_BUDGET,
14
18
  buildExtensionMentionContext,
@@ -18,7 +22,7 @@ import {
18
22
  matchMcpServerByRef,
19
23
  parseExtensionRef,
20
24
  parseMcpServerRef
21
- } from "./chunk-4JNHNVAZ.js";
25
+ } from "./chunk-72BGC7RT.js";
22
26
  import {
23
27
  getAvailableCommands,
24
28
  getSlashCommandFirstToken,
@@ -28,10 +32,7 @@ import {
28
32
  pLimit,
29
33
  recordDaemonSessionModel,
30
34
  restoreSessionModelThenAuthenticate
31
- } from "./chunk-FAJPLSYF.js";
32
- import {
33
- recomputeMcpGating
34
- } from "./chunk-APXIW2TF.js";
35
+ } from "./chunk-VID4BW52.js";
35
36
  import {
36
37
  SessionIdConflictError,
37
38
  appEvents,
@@ -41,46 +42,46 @@ import {
41
42
  loadCliConfig,
42
43
  normalizeDisabledToolList,
43
44
  parseApprovalModeValue
44
- } from "./chunk-3OAXF3UK.js";
45
- import {
46
- getCommandSubcommandNames
47
- } from "./chunk-CWVZBIZJ.js";
48
- import {
49
- getEffectiveSupportedModes
50
- } from "./chunk-TOOOLHVS.js";
51
- import "./chunk-22GORRNY.js";
45
+ } from "./chunk-BHR6IN2X.js";
52
46
  import "./chunk-NYX53SV4.js";
53
- import "./chunk-UYDQYDW2.js";
54
47
  import {
55
48
  collectContextData,
56
49
  formatContextUsageText
57
- } from "./chunk-2BMXHB6N.js";
58
- import "./chunk-4WGODMVR.js";
50
+ } from "./chunk-VLZOU6UH.js";
59
51
  import {
60
- startNonInteractiveOpenAILogHousekeeping
61
- } from "./chunk-ELD3OBPU.js";
62
- import "./chunk-KW7NOTN6.js";
63
- import "./chunk-2XRE4KE4.js";
64
- import "./chunk-46MMBZHI.js";
65
- import "./chunk-R457KFV7.js";
66
- import "./chunk-RM244SCQ.js";
52
+ getCommandSubcommandNames
53
+ } from "./chunk-KZ2CU2LH.js";
54
+ import {
55
+ getEffectiveSupportedModes
56
+ } from "./chunk-3VPFA6L2.js";
57
+ import "./chunk-CUK6F5UF.js";
58
+ import "./chunk-4WGODMVR.js";
59
+ import "./chunk-LAP7X6EC.js";
67
60
  import {
68
61
  isGoalStatusKind
69
62
  } from "./chunk-EKTCKZV5.js";
70
- import "./chunk-IR6JKBAP.js";
71
- import "./chunk-YAF2MQZ6.js";
63
+ import "./chunk-SAWPURIU.js";
64
+ import "./chunk-2XRE4KE4.js";
72
65
  import {
73
- computeCpuPercent
74
- } from "./chunk-LBOVL47Y.js";
75
- import "./chunk-24FVUD5P.js";
76
- import "./chunk-QFJZAY7W.js";
66
+ startNonInteractiveOpenAILogHousekeeping
67
+ } from "./chunk-F45SKYIQ.js";
68
+ import "./chunk-KW7NOTN6.js";
69
+ import "./chunk-KFGPNCCY.js";
77
70
  import "./chunk-6H67XLET.js";
78
71
  import {
79
72
  beginAcpBootstrapConfigProfiling,
80
73
  buildAndFreezeAcpStartupProfile,
81
74
  endAcpBootstrapConfigProfiling,
82
75
  markAcpStartup
83
- } from "./chunk-J3TJH52D.js";
76
+ } from "./chunk-5FFAUU4T.js";
77
+ import "./chunk-LY2GK2PR.js";
78
+ import "./chunk-UGS62IR2.js";
79
+ import "./chunk-7XM6KEVW.js";
80
+ import "./chunk-YAF2MQZ6.js";
81
+ import {
82
+ computeCpuPercent
83
+ } from "./chunk-LBOVL47Y.js";
84
+ import "./chunk-24FVUD5P.js";
84
85
  import {
85
86
  GENERATION_MAX_PROMPT_BYTES,
86
87
  GENERATION_TIMEOUT_MS,
@@ -101,7 +102,7 @@ import {
101
102
  shouldSuppressRememberErrorDetails,
102
103
  workspaceMemoryFailureCode,
103
104
  workspaceMemoryFailureDiagnostics
104
- } from "./chunk-BK7D2JR6.js";
105
+ } from "./chunk-ZUQVZTWG.js";
105
106
  import {
106
107
  BaseEmitter,
107
108
  HistoryReplayer,
@@ -112,21 +113,14 @@ import {
112
113
  hasFullSessionContext,
113
114
  observeAcpToolResultProjection,
114
115
  observeAcpToolResultWire
115
- } from "./chunk-WDN64MVT.js";
116
+ } from "./chunk-HL2DQG3Y.js";
116
117
  import "./chunk-M3JGHRMQ.js";
117
118
  import "./chunk-VFFQAOPR.js";
118
- import "./chunk-ERXNTINK.js";
119
119
  import "./chunk-47ECGEJC.js";
120
+ import "./chunk-ZT6EPPBY.js";
120
121
  import "./chunk-2MIN6GRR.js";
121
122
  import "./chunk-QHTIBUWB.js";
122
123
  import "./chunk-TXASDT2M.js";
123
- import {
124
- getConversationDirectoryName,
125
- hasVerifiableInode,
126
- isSameConversationPath,
127
- isSameDirectoryIdentity
128
- } from "./chunk-PB7JBAHF.js";
129
- import "./chunk-UXEO7E3V.js";
130
124
  import {
131
125
  isCompatibleLiveSessionSource
132
126
  } from "./chunk-OHU2H5CS.js";
@@ -137,13 +131,19 @@ import {
137
131
  isReservedStandaloneSessionSourceType,
138
132
  parseSessionSource
139
133
  } from "./chunk-N4QWUPDM.js";
140
- import "./chunk-DMEUXLSS.js";
134
+ import {
135
+ getConversationDirectoryName,
136
+ hasVerifiableInode,
137
+ isSameConversationPath,
138
+ isSameDirectoryIdentity
139
+ } from "./chunk-PB7JBAHF.js";
140
+ import "./chunk-UXEO7E3V.js";
141
141
  import {
142
142
  buildScheduledTaskRunPrompt,
143
143
  normalizeChannelDeliveryText,
144
144
  scheduledTaskRunSessionName,
145
145
  scheduledTaskRunSourceId
146
- } from "./chunk-G37O7YO6.js";
146
+ } from "./chunk-7ZKDPTYO.js";
147
147
  import {
148
148
  normalizeSessionIdForLookup,
149
149
  parseCallerSuppliedSessionId
@@ -154,28 +154,36 @@ import {
154
154
  buildPermissionSettings,
155
155
  normalizePermissionRules,
156
156
  readPermissionRuleSet
157
- } from "./chunk-WXPPUPHM.js";
157
+ } from "./chunk-7ZVIGDZF.js";
158
158
  import {
159
159
  MAX_AUDIO_BYTES,
160
160
  sanitizeVoiceErrorMessage,
161
161
  transcribeVoiceAudio
162
- } from "./chunk-GNY7B3CA.js";
162
+ } from "./chunk-NVIBH7WS.js";
163
163
  import {
164
164
  readVoiceModel
165
- } from "./chunk-NB3NDQQK.js";
165
+ } from "./chunk-Q2XLNLAV.js";
166
166
  import "./chunk-Y53DG2HA.js";
167
- import "./chunk-5OZUKLL7.js";
168
- import "./chunk-4WMGYG3F.js";
167
+ import {
168
+ mapSkillConfigToStatus
169
+ } from "./chunk-BHTYRHJF.js";
170
+ import "./chunk-FCQJLMA2.js";
171
+ import "./chunk-DMEUXLSS.js";
172
+ import {
173
+ createLoadedSettingsAdapter
174
+ } from "./chunk-BQOP3K76.js";
175
+ import "./chunk-6EOMQPTS.js";
176
+ import "./chunk-BTWGOKHU.js";
169
177
  import "./chunk-JS73NNWF.js";
170
178
  import {
171
179
  SCHEDULED_TASK_RUN_SOURCE_TYPE
172
- } from "./chunk-QTB4VP4K.js";
180
+ } from "./chunk-PIGUW2U2.js";
173
181
  import "./chunk-7U5G6JXI.js";
174
182
  import "./chunk-WCCLLK7X.js";
175
183
  import "./chunk-OCPBI7J5.js";
176
184
  import {
177
185
  ndJsonStream
178
- } from "./chunk-KA5HR3G2.js";
186
+ } from "./chunk-IUVIBDKU.js";
179
187
  import {
180
188
  PERSIST_REASONING_SELECTION_META_KEY,
181
189
  REASONING_EFFORT_DEFAULT,
@@ -192,7 +200,7 @@ import {
192
200
  isReasoningSelectionSupported,
193
201
  parseReasoningSelection,
194
202
  resolvePersistedReasoningConfigState
195
- } from "./chunk-ZN5TKAVR.js";
203
+ } from "./chunk-6EDWSKN4.js";
196
204
  import {
197
205
  ACP_ROUTE_ID_PREFIX,
198
206
  buildAcpModelOptions,
@@ -201,10 +209,7 @@ import {
201
209
  parseAcpModelOption,
202
210
  resolveAcpModelOption,
203
211
  sanitizeProviderBaseUrl
204
- } from "./chunk-7LTCFO6T.js";
205
- import {
206
- mapSkillConfigToStatus
207
- } from "./chunk-BHTYRHJF.js";
212
+ } from "./chunk-VHKOULAI.js";
208
213
  import {
209
214
  ACP_PREFLIGHT_KINDS,
210
215
  IDLE_HOOK_EVENTS,
@@ -212,23 +217,17 @@ import {
212
217
  SERVE_STATUS_EXT_METHODS,
213
218
  STATUS_SCHEMA_VERSION,
214
219
  mapDomainErrorToErrorKind
215
- } from "./chunk-FETY36NQ.js";
220
+ } from "./chunk-HGEUHUEV.js";
216
221
  import {
217
222
  resolveSkillSettings
218
223
  } from "./chunk-HWVUSYSN.js";
219
- import "./chunk-7PD7ZMX5.js";
220
- import "./chunk-G3ZUMSFS.js";
221
- import "./chunk-TODNHE76.js";
224
+ import "./chunk-FGRDUDCI.js";
225
+ import "./chunk-5ZJ3KK5J.js";
222
226
  import "./chunk-57OAHC2Y.js";
223
- import "./chunk-ULZECEIP.js";
224
- import "./chunk-PFKGV6PO.js";
225
- import "./chunk-AUTUFD5X.js";
227
+ import "./chunk-FYZ5NZ3V.js";
228
+ import "./chunk-JOMCZWX7.js";
229
+ import "./chunk-CSHX5ZC4.js";
226
230
  import "./chunk-V6WHFGST.js";
227
- import {
228
- createLoadedSettingsAdapter
229
- } from "./chunk-QHLHE2OT.js";
230
- import "./chunk-JYGIJA4W.js";
231
- import "./chunk-N6VQ37ZZ.js";
232
231
  import {
233
232
  ACTIVE_WORK_CLOSE_IF_UNHELD_PARAM,
234
233
  ACTIVE_WORK_HEARTBEAT_META_KEY,
@@ -247,6 +246,7 @@ import {
247
246
  DAEMON_PERMISSION_CANCEL_REASON_META_KEY,
248
247
  DAEMON_PROMPT_DISPLAY_TEXT_META_KEY,
249
248
  DAEMON_RESTORE_ASK_USER_QUESTION_META_KEY,
249
+ DAEMON_SUBMITTED_PROMPT_META_KEY,
250
250
  DAEMON_SUPPRESS_RESTORE_ASK_USER_QUESTION_META_KEY,
251
251
  DAEMON_SUPPRESS_WORKTREE_CONTEXT_RESTORE_META_KEY,
252
252
  LOAD_REPLAY_BULK_MODE,
@@ -262,23 +262,24 @@ import {
262
262
  REQUESTED_SESSION_ID_META_KEY,
263
263
  SESSION_INITIALIZATION_DEADLINE_META_KEY,
264
264
  SESSION_INITIALIZATION_TIMEOUT_ERROR_KIND,
265
+ SUBMITTED_PROMPT_META_KEY,
265
266
  TODO_STOP_GUARD_CONTINUATION_CLAIM_METHOD,
266
267
  TODO_STOP_GUARD_QUEUE_RELEASE_METHOD,
267
268
  WORKTREE_MCP_DEFER_META_KEY,
268
269
  clampActiveWorkIntervalMs,
269
270
  isValidTrustedModelPrompt
270
- } from "./chunk-PSPAM24S.js";
271
+ } from "./chunk-YKK2XXHF.js";
271
272
  import {
272
273
  NOT_CURRENTLY_GENERATING_CANCEL_MESSAGE,
273
274
  isNotCurrentlyGeneratingCancelError
274
275
  } from "./chunk-FAWTMDX7.js";
275
- import "./chunk-6PLDPT2C.js";
276
276
  import "./chunk-FYJ7W2PI.js";
277
277
  import "./chunk-STUJ7IMZ.js";
278
- import "./chunk-DARWOZY6.js";
278
+ import "./chunk-LEGNDA46.js";
279
+ import "./chunk-GDWE23OR.js";
279
280
  import "./chunk-GYTKQYDB.js";
280
- import "./chunk-ALMR3E6Q.js";
281
281
  import "./chunk-RKFGE7JH.js";
282
+ import "./chunk-CJ3DHN5I.js";
282
283
  import "./chunk-UDG5EZJI.js";
283
284
  import "./chunk-M5GB774H.js";
284
285
  import {
@@ -290,21 +291,21 @@ import {
290
291
  SHELL_EXECUTING_TOOL_NAMES,
291
292
  isValidExternalToolGuardDenialReason
292
293
  } from "./chunk-3VUENPWF.js";
293
- import "./chunk-TGNNLRC3.js";
294
+ import "./chunk-NFXXBWSE.js";
295
+ import "./chunk-6NONRGYX.js";
294
296
  import {
295
297
  ACP_EVENT_LOOP_STALL_RESTART_MS,
296
298
  CHANNEL_PROMPT_META_KEY
297
- } from "./chunk-WDVV3LRM.js";
299
+ } from "./chunk-C4NLHK7X.js";
298
300
  import {
299
301
  AgentSideConnection,
300
302
  PROTOCOL_VERSION,
301
303
  RequestError
302
- } from "./chunk-IW6RQPQB.js";
303
- import "./chunk-NFXXBWSE.js";
304
+ } from "./chunk-IJOS26LH.js";
304
305
  import {
305
306
  assembleMcpServers,
306
307
  loadMcpApprovals
307
- } from "./chunk-RNAJVXUG.js";
308
+ } from "./chunk-GP47UR3M.js";
308
309
  import {
309
310
  deleteNestedPropertySafe,
310
311
  getOutputLanguageFilePath,
@@ -316,10 +317,21 @@ import {
316
317
  settingExistsInScope,
317
318
  updateOutputLanguageFile,
318
319
  writeOutputLanguageAndRegisterPath
319
- } from "./chunk-WBU2PIZ5.js";
320
- import "./chunk-XSOXPG2L.js";
320
+ } from "./chunk-OOLSYRZ7.js";
321
321
  import "./chunk-RKUWKYED.js";
322
+ import "./chunk-IOUBOANU.js";
323
+ import {
324
+ findEnvFiles,
325
+ preResolveHomeEnvOverrides,
326
+ reloadEnvironment
327
+ } from "./chunk-YIU5PEAT.js";
328
+ import "./chunk-N6VQ37ZZ.js";
322
329
  import "./chunk-BW4333PP.js";
330
+ import {
331
+ ENV_ACP_REPEATED_TOOL_FAILURE_GUARD,
332
+ QWEN_CODE_SERVE_ENV
333
+ } from "./chunk-VX63RJXE.js";
334
+ import "./chunk-6PLDPT2C.js";
323
335
  import {
324
336
  getSystemDefaultsPath,
325
337
  getSystemSettingsPath
@@ -327,27 +339,19 @@ import {
327
339
  import {
328
340
  getCurrentLanguage,
329
341
  setLanguageAsync
330
- } from "./chunk-CRZBDVP2.js";
342
+ } from "./chunk-74JEYK2C.js";
331
343
  import {
332
344
  SUPPORTED_LANGUAGES
333
345
  } from "./chunk-5EJZE3FP.js";
334
- import {
335
- findEnvFiles,
336
- preResolveHomeEnvOverrides,
337
- reloadEnvironment
338
- } from "./chunk-5BH2AIEY.js";
339
- import {
340
- ENV_ACP_REPEATED_TOOL_FAILURE_GUARD,
341
- QWEN_CODE_SERVE_ENV
342
- } from "./chunk-QTNCGZHQ.js";
346
+ import "./chunk-XFSFZCM5.js";
343
347
  import "./chunk-2EAZ43JQ.js";
344
348
  import "./chunk-NF5J2WFA.js";
345
- import "./chunk-MV5DTLJV.js";
349
+ import "./chunk-ONGZNOIP.js";
346
350
  import "./chunk-W3N5XAZ6.js";
347
351
  import {
348
352
  isWorkspaceTrusted,
349
353
  loadTrustedFolders
350
- } from "./chunk-NX7ZTXFF.js";
354
+ } from "./chunk-KHIBLKNK.js";
351
355
  import "./chunk-NPQ5ZKRP.js";
352
356
  import "./chunk-MR3PXB6E.js";
353
357
  import {
@@ -359,6 +363,7 @@ import {
359
363
  McpTransportPool,
360
364
  TURN_INTERRUPTION_HISTORY_TAIL_COUNT,
361
365
  WorkspaceMcpBudget,
366
+ abortGoalForStopHookCap,
362
367
  applyProviderInstallPlan,
363
368
  buildBtwCacheSafeParams,
364
369
  buildBtwPrompt,
@@ -371,32 +376,16 @@ import {
371
376
  findApiRewindCutPoint,
372
377
  generatePromptSuggestion,
373
378
  generateSessionRecap,
379
+ getStopHookContinuationReason,
374
380
  projectGoalStateToLegacy,
375
381
  readManyFiles,
376
382
  runManagedRememberByAgent,
377
383
  subagentGenerator
378
- } from "./chunk-GOEVQADN.js";
384
+ } from "./chunk-F2RKL5I2.js";
379
385
  import {
380
386
  buildToolWriteOriginMeta
381
387
  } from "./chunk-GELRJXE2.js";
382
388
  import "./chunk-32CM56LO.js";
383
- import {
384
- MAX_RETAINED_SNAPSHOTS,
385
- deleteWorkflowSnapshot,
386
- extractAndStripMeta,
387
- listSavedWorkflows,
388
- listWorkflowSnapshots,
389
- resolveSavedWorkflowScript,
390
- toSnapshot
391
- } from "./chunk-OXR34GCD.js";
392
- import "./chunk-XFSFZCM5.js";
393
- import {
394
- CreateSubSessionTool
395
- } from "./chunk-2EKVPSIJ.js";
396
- import "./chunk-LJZSMWOH.js";
397
- import {
398
- restoreWorktreeContext
399
- } from "./chunk-YZTGGCEE.js";
400
389
  import {
401
390
  ALL_PROVIDERS,
402
391
  buildInstallPlan,
@@ -405,21 +394,33 @@ import {
405
394
  getDefaultBaseUrlForProtocol,
406
395
  getDefaultModelIds,
407
396
  resolveBaseUrl
408
- } from "./chunk-2WC3Y7YY.js";
409
- import "./chunk-IWABUX6T.js";
397
+ } from "./chunk-AEY27Z35.js";
398
+ import {
399
+ CreateSubSessionTool
400
+ } from "./chunk-Y2MYW47X.js";
401
+ import "./chunk-LJZSMWOH.js";
402
+ import "./chunk-TP2DUOB6.js";
403
+ import "./chunk-NUQVB25K.js";
404
+ import {
405
+ restoreWorktreeContext
406
+ } from "./chunk-ZKZHSB5W.js";
407
+ import "./chunk-L2KF7HUE.js";
410
408
  import "./chunk-DJXSOEFB.js";
411
- import "./chunk-YQGW3M6Z.js";
412
- import "./chunk-J3VZF2AL.js";
413
- import "./chunk-OWCFKIFQ.js";
414
- import "./chunk-ZPJWUGCS.js";
415
- import "./chunk-X7LFJF5D.js";
409
+ import "./chunk-ZKYR7QS4.js";
410
+ import "./chunk-532WHF4F.js";
416
411
  import "./chunk-BUQN5LTI.js";
412
+ import "./chunk-ZPJWUGCS.js";
413
+ import "./chunk-LK2WUCDQ.js";
417
414
  import {
418
- clearCachedCredentialFile,
419
- qwenOAuth2Events
420
- } from "./chunk-XDNFODER.js";
421
- import "./chunk-GOKAOSCN.js";
422
- import "./chunk-VNOVK4I7.js";
415
+ MAX_RETAINED_SNAPSHOTS,
416
+ deleteWorkflowSnapshot,
417
+ extractAndStripMeta,
418
+ listSavedWorkflows,
419
+ listWorkflowSnapshots,
420
+ resolveSavedWorkflowScript,
421
+ toSnapshot
422
+ } from "./chunk-5FKZ7KFQ.js";
423
+ import "./chunk-FRVV5SSD.js";
423
424
  import {
424
425
  APPROVAL_MODE_INFO,
425
426
  BranchPointInvalidError,
@@ -461,10 +462,10 @@ import {
461
462
  SessionWriterUnavailableError,
462
463
  TURN_RESULT_CODE_TEXT_TRUNCATED,
463
464
  TURN_RESULT_TEXT_MAX_CHARS,
464
- abortGoalForStopHookCap,
465
465
  acquireSleepInhibitor,
466
466
  ambientGoalToolResultProvenance,
467
467
  applyAutoModeDecision,
468
+ applyPendingGoalProposal,
468
469
  approxBase64Bytes,
469
470
  bridgeToolResultImages,
470
471
  buildBackgroundEntryLabel,
@@ -496,9 +497,10 @@ import {
496
497
  firePostToolUseHook,
497
498
  firePreToolUseHook,
498
499
  formatDenialStateLog,
500
+ formatProposeGoalRecoveryFailed,
501
+ formatProposeGoalRecoveryNotStarted,
499
502
  formatStopHookBlockingCapWarning,
500
503
  generateToolUseId,
501
- getActiveGoal,
502
504
  getAutoModeActionFingerprint,
503
505
  getAutoModePermissionDeniedReason,
504
506
  getEffectivePermissionForConfirmation,
@@ -507,7 +509,6 @@ import {
507
509
  getOptInToolNotFoundMessage,
508
510
  getProviderToolCallId,
509
511
  getScopedEnvContents,
510
- getStopHookContinuationReason,
511
512
  getSubagentSessionDir,
512
513
  getToolCallRepeatKey,
513
514
  getWorkflowTaskMutationKey,
@@ -558,49 +559,37 @@ import {
558
559
  updateSetting,
559
560
  validatePlanModeShellApproval,
560
561
  validatePlanModeShellContext
561
- } from "./chunk-HJ5UJQQL.js";
562
+ } from "./chunk-JV5YASQA.js";
562
563
  import "./chunk-GOFAQQZA.js";
563
- import "./chunk-65I7S4Z3.js";
564
- import "./chunk-6HUXPLB5.js";
565
564
  import "./chunk-TWPJO254.js";
566
565
  import {
567
566
  external_exports
568
567
  } from "./chunk-CQ35AJ4Z.js";
569
- import "./chunk-XKBFYTCD.js";
570
- import "./chunk-LYT2OU7D.js";
568
+ import "./chunk-65I7S4Z3.js";
569
+ import "./chunk-6HUXPLB5.js";
571
570
  import "./chunk-7CLLH5TI.js";
572
- import "./chunk-HIXUUCGY.js";
573
- import {
574
- parsePositiveIntegerEnv
575
- } from "./chunk-6PVPNMXU.js";
571
+ import "./chunk-XKBFYTCD.js";
576
572
  import {
577
573
  RUNTIME_SNAPSHOT_PREFIX
578
- } from "./chunk-565U2ANU.js";
574
+ } from "./chunk-ZTTC7T4X.js";
579
575
  import {
580
576
  SESSION_ARTIFACT_PERSISTENCE_VERSION,
581
577
  normalizeEventPayload,
582
578
  normalizeSnapshotPayload,
583
579
  wrapUserPromptSubmitContext
584
- } from "./chunk-GSFV5RQW.js";
580
+ } from "./chunk-E4UEO3XM.js";
581
+ import "./chunk-IAEXTMED.js";
585
582
  import "./chunk-IRH27ZC2.js";
586
583
  import "./chunk-QHWCP53L.js";
587
584
  import "./chunk-F53KKZUD.js";
588
- import "./chunk-TRWQQBVH.js";
589
- import "./chunk-QJNDUTOL.js";
590
- import "./chunk-N6S3NUYJ.js";
591
585
  import {
592
586
  promptIdContext,
593
587
  todoWorkChainContext
594
588
  } from "./chunk-O6GEWCJA.js";
589
+ import "./chunk-36HCNKDS.js";
595
590
  import {
596
- escapeJsonTagCharacters
597
- } from "./chunk-CHEIIBT3.js";
598
- import "./chunk-QAZ2MGYT.js";
599
- import "./chunk-QQK4L3UU.js";
600
- import "./chunk-CH2YDT6X.js";
601
- import {
602
- APPROVAL_MODES
603
- } from "./chunk-JX6XHPTX.js";
591
+ parsePositiveIntegerEnv
592
+ } from "./chunk-6PVPNMXU.js";
604
593
  import {
605
594
  AgentOutputMessageCapture,
606
595
  addAgentInputMessageAttributes,
@@ -608,44 +597,76 @@ import {
608
597
  addToolCallResultAttributes,
609
598
  registerAcpEventLoopLagGauge,
610
599
  startEventLoopLagMonitor
611
- } from "./chunk-CLKE4IY3.js";
600
+ } from "./chunk-2SZH22YO.js";
601
+ import "./chunk-DTNV6UZY.js";
602
+ import "./chunk-QJNDUTOL.js";
603
+ import "./chunk-JXNIF2O5.js";
604
+ import "./chunk-CGKEUUYG.js";
605
+ import {
606
+ SessionSourceError,
607
+ SessionSourceService
608
+ } from "./chunk-ELRMZTPF.js";
609
+ import {
610
+ escapeJsonTagCharacters
611
+ } from "./chunk-CHEIIBT3.js";
612
+ import "./chunk-PLLIWEM3.js";
613
+ import {
614
+ registerSession
615
+ } from "./chunk-5GLDOLNQ.js";
616
+ import "./chunk-CH2YDT6X.js";
617
+ import {
618
+ APPROVAL_MODES
619
+ } from "./chunk-JX6XHPTX.js";
612
620
  import "./chunk-ZSTCM3MX.js";
613
- import "./chunk-SOA4HKRJ.js";
614
621
  import "./chunk-MLXTMF7H.js";
615
622
  import {
616
623
  getArenaSystemReminder,
617
624
  getOutputStyleTurnReminder,
618
625
  getPlanModeSystemReminder,
619
626
  resolveMainSessionOutputStyle
620
- } from "./chunk-3LPJ776W.js";
627
+ } from "./chunk-LILGKQ4B.js";
621
628
  import "./chunk-3CZ2BQV6.js";
622
- import "./chunk-PQEISIKS.js";
623
- import "./chunk-S5QR6CB5.js";
629
+ import "./chunk-SAH4BD2J.js";
630
+ import "./chunk-CAAMI77K.js";
624
631
  import {
625
632
  runWithRuntimeContentGenerator
626
- } from "./chunk-H3Q3RSKZ.js";
633
+ } from "./chunk-U7O65WKL.js";
627
634
  import "./chunk-S6LOFUVP.js";
635
+ import {
636
+ FORK_SUBAGENT_TYPE,
637
+ isSystemReminderContent,
638
+ wrapSystemReminder
639
+ } from "./chunk-FN3JNDRU.js";
640
+ import "./chunk-EUURTIV6.js";
641
+ import {
642
+ HookEventName,
643
+ createHookOutput
644
+ } from "./chunk-G6UUOCUT.js";
645
+ import "./chunk-IZ2U57NY.js";
646
+ import "./chunk-NUQ4GK5I.js";
647
+ import "./chunk-K2OJUPOE.js";
648
+ import {
649
+ clearCachedCredentialFile,
650
+ qwenOAuth2Events
651
+ } from "./chunk-B6BDT4RX.js";
628
652
  import "./chunk-NAVJD2PQ.js";
629
- import "./chunk-OFVAS4AR.js";
630
- import "./chunk-HNLMYDQE.js";
653
+ import "./chunk-ZGQIIGNQ.js";
654
+ import "./chunk-ZHECLGA6.js";
631
655
  import "./chunk-QHMLYMMS.js";
656
+ import "./chunk-VNOVK4I7.js";
632
657
  import {
633
658
  getToolCallPreparations
634
659
  } from "./chunk-CFKIH3D3.js";
635
- import {
636
- REASONING_EFFORT_TIERS,
637
- getGptReasoningCapabilities,
638
- parseModelReasoningCapabilities
639
- } from "./chunk-VBLAI2HA.js";
660
+ import "./chunk-JL6APGBX.js";
640
661
  import "./chunk-DJ2GSRLV.js";
641
- import "./chunk-4ALNJDHL.js";
642
- import "./chunk-NOO4QFXM.js";
662
+ import "./chunk-L3DTX6U4.js";
663
+ import "./chunk-C75BXMPM.js";
643
664
  import "./chunk-KFFCDLKV.js";
644
665
  import {
645
666
  addDaemonRequestAttribute,
646
667
  extractDaemonTraceContext,
647
668
  withDaemonSpan
648
- } from "./chunk-7OCIQNKX.js";
669
+ } from "./chunk-ZW2EUO2A.js";
649
670
  import {
650
671
  ConversationFinishedEvent,
651
672
  DiscoveredMCPTool,
@@ -671,7 +692,7 @@ import {
671
692
  shouldRunVisionBridge,
672
693
  splitImageParts,
673
694
  uiTelemetryService
674
- } from "./chunk-F2NYVASI.js";
695
+ } from "./chunk-34ZYDM3F.js";
675
696
  import {
676
697
  INVOCATION_CONTEXT_META_KEY,
677
698
  PRIVATE_ACP_CAPABILITY_ENV,
@@ -680,18 +701,23 @@ import {
680
701
  parseInvocationContext,
681
702
  runWithInvocationContext
682
703
  } from "./chunk-5ETULJLP.js";
683
- import "./chunk-XBVNNDPK.js";
704
+ import "./chunk-ZHKTKHMO.js";
684
705
  import "./chunk-VGC4I5JJ.js";
685
- import {
686
- getAllMemoryFilenames,
687
- getSpecificMimeType
688
- } from "./chunk-J6MB5ZHZ.js";
689
706
  import {
690
707
  getAutoMemoryRoot,
691
708
  getUserAutoMemoryRoot
692
709
  } from "./chunk-EDIDYZBT.js";
693
710
  import "./chunk-HD7O6WLV.js";
711
+ import {
712
+ getAllMemoryFilenames,
713
+ getSpecificMimeType
714
+ } from "./chunk-J6MB5ZHZ.js";
694
715
  import "./chunk-WZAD4ZNJ.js";
716
+ import {
717
+ REASONING_EFFORT_TIERS,
718
+ getGptReasoningCapabilities,
719
+ parseModelReasoningCapabilities
720
+ } from "./chunk-3FPYT6QC.js";
695
721
  import {
696
722
  DEFAULT_TOKEN_LIMIT,
697
723
  tokenLimit
@@ -700,11 +726,12 @@ import "./chunk-TIGXX4PA.js";
700
726
  import {
701
727
  hasVertexProjectConfigured,
702
728
  preloadContentGenerator
703
- } from "./chunk-JO77FGNZ.js";
729
+ } from "./chunk-RJZTX2OF.js";
704
730
  import "./chunk-XFFRI3WM.js";
705
731
  import {
706
732
  AuthType
707
- } from "./chunk-4HOEU2OR.js";
733
+ } from "./chunk-ERU3SDXT.js";
734
+ import "./chunk-EWJTAP3Y.js";
708
735
  import "./chunk-HHJLM3WQ.js";
709
736
  import {
710
737
  endToolExecutionSpan,
@@ -716,20 +743,9 @@ import {
716
743
  startToolExecutionSpan,
717
744
  startToolSpan,
718
745
  withInteractionSpan
719
- } from "./chunk-7VEYUF3N.js";
746
+ } from "./chunk-W5ZQMAEM.js";
720
747
  import "./chunk-74TONY4F.js";
721
- import "./chunk-E6TI726I.js";
722
- import {
723
- FORK_SUBAGENT_TYPE,
724
- isSystemReminderContent,
725
- wrapSystemReminder
726
- } from "./chunk-4VY3ITHR.js";
727
- import "./chunk-O2FEO2CB.js";
728
- import {
729
- HookEventName,
730
- createHookOutput
731
- } from "./chunk-G6UUOCUT.js";
732
- import "./chunk-IZ2U57NY.js";
748
+ import "./chunk-HUXPEUFL.js";
733
749
  import {
734
750
  BaseDeclarativeTool,
735
751
  BaseToolInvocation,
@@ -737,7 +753,7 @@ import {
737
753
  ToolNames,
738
754
  canonicalToolName,
739
755
  isShellProgressData
740
- } from "./chunk-MWIO7MF6.js";
756
+ } from "./chunk-TP6FYVQT.js";
741
757
  import {
742
758
  Storage,
743
759
  createDebugLogger,
@@ -746,20 +762,23 @@ import {
746
762
  isSubpath,
747
763
  sessionIdContext
748
764
  } from "./chunk-ZAFYHRVY.js";
749
- import "./chunk-CMWU6P4D.js";
750
- import "./chunk-HRPFBHW7.js";
765
+ import "./chunk-TBWQLLFO.js";
766
+ import "./chunk-V5U2NZNJ.js";
767
+ import "./chunk-DMX7RF6E.js";
768
+ import "./chunk-TPKQIA7G.js";
751
769
  import {
770
+ registerCleanup,
752
771
  runExitCleanup
753
- } from "./chunk-DAI65CMX.js";
772
+ } from "./chunk-JDEW3V5B.js";
754
773
  import {
755
774
  writeStderrLine,
756
775
  writeStderrLineSafe
757
776
  } from "./chunk-7FA2II6K.js";
777
+ import "./chunk-UKMWZ5NS.js";
758
778
  import "./chunk-75DOP5OR.js";
759
779
  import "./chunk-DMTGGOSA.js";
760
780
  import "./chunk-YQ3U5MUC.js";
761
781
  import "./chunk-MATEIJZF.js";
762
- import "./chunk-TBWQLLFO.js";
763
782
  import {
764
783
  init_esbuild_shims
765
784
  } from "./chunk-5O2XNYP6.js";
@@ -785,6 +804,15 @@ function buildAuthMethods() {
785
804
  type: "terminal",
786
805
  args: ["--auth-type=openai"]
787
806
  }
807
+ },
808
+ {
809
+ id: "openai-responses" /* USE_OPENAI_RESPONSES */,
810
+ name: "Use OpenAI Responses API key",
811
+ description: "Requires setting the `OPENAI_API_KEY` environment variable",
812
+ _meta: {
813
+ type: "terminal",
814
+ args: ["--auth-type=openai-responses"]
815
+ }
788
816
  }
789
817
  ];
790
818
  }
@@ -1793,7 +1821,6 @@ var MessageEmitter = class extends BaseEmitter {
1793
1821
  * @param stopHookCount - Number of Stop hooks that were executed
1794
1822
  */
1795
1823
  async emitStopHookLoop(iterationCount, reasons, stopHookCount) {
1796
- const activeGoal = getActiveGoal(this.sessionId);
1797
1824
  await this.sendUpdate({
1798
1825
  sessionUpdate: "agent_message_chunk",
1799
1826
  content: { type: "text", text: "" },
@@ -1801,15 +1828,7 @@ var MessageEmitter = class extends BaseEmitter {
1801
1828
  stopHookLoop: {
1802
1829
  iterationCount,
1803
1830
  reasons,
1804
- stopHookCount,
1805
- ...activeGoal ? {
1806
- goal: {
1807
- condition: activeGoal.condition,
1808
- iterations: activeGoal.iterations,
1809
- setAt: activeGoal.setAt,
1810
- lastReason: activeGoal.lastReason
1811
- }
1812
- } : {}
1831
+ stopHookCount
1813
1832
  }
1814
1833
  }
1815
1834
  });
@@ -2140,6 +2159,12 @@ function buildPermissionRequestContent(confirmation) {
2140
2159
  }
2141
2160
  });
2142
2161
  }
2162
+ if (confirmation.type === "info" && confirmation.renderPromptAsPlainText) {
2163
+ content.push({
2164
+ type: "content",
2165
+ content: { type: "text", text: confirmation.prompt }
2166
+ });
2167
+ }
2143
2168
  return content;
2144
2169
  }
2145
2170
  __name(buildPermissionRequestContent, "buildPermissionRequestContent");
@@ -3275,6 +3300,7 @@ var MAX_RETAINED_SESSION_ROUTE_COUNTS = 8;
3275
3300
  var USER_CANCEL_ABORT_REASON = "qwen:user-cancel";
3276
3301
  var NEW_PROMPT_ABORT_REASON = "qwen:new-prompt";
3277
3302
  var SESSION_DISPOSE_ABORT_REASON = "qwen:session-dispose";
3303
+ var GOAL_HELD_RECOVERY_COMMANDS = "Run:\n/goal pause\nThen, when ready:\n/goal resume";
3278
3304
  var DAEMON_RETRY_META_KEY = "qwen.daemon.retry";
3279
3305
  var DAEMON_CONTINUE_META_KEY = "qwen.daemon.continueLastTurn";
3280
3306
  var MAX_DAEMON_ATTACHMENT_REFERENCES = 256;
@@ -4169,6 +4195,7 @@ var Session = class {
4169
4195
  __name(this, "Session");
4170
4196
  }
4171
4197
  pendingPrompt = null;
4198
+ activeGoalProposalTurn;
4172
4199
  /**
4173
4200
  * Tracks the completion of the current prompt so that the next prompt
4174
4201
  * can await it. This prevents a new prompt from reading chat history
@@ -4263,6 +4290,7 @@ var Session = class {
4263
4290
  backgroundNotificationAcceptances = /* @__PURE__ */ new Map();
4264
4291
  activeNotificationAcceptances = /* @__PURE__ */ new Set();
4265
4292
  goalQueue = [];
4293
+ heldGoalProposal;
4266
4294
  goalProcessing = false;
4267
4295
  activeGoalTurn;
4268
4296
  goalHostUnbind;
@@ -4372,6 +4400,9 @@ var Session = class {
4372
4400
  this.goalRuntimeUnsubscribe = runtime.subscribe((snapshot, cause) => {
4373
4401
  const previousGoal = this.lastGoalSnapshot?.goal ?? null;
4374
4402
  this.lastGoalSnapshot = snapshot;
4403
+ if (this.heldGoalProposal && (snapshot.goal?.goalId !== this.heldGoalProposal.goalId || snapshot.goal.revision !== this.heldGoalProposal.revision || snapshot.goal.status !== "active" || cause === "resume")) {
4404
+ this.heldGoalProposal = void 0;
4405
+ }
4375
4406
  void this.#queueGoalState(snapshot, cause, previousGoal).catch(
4376
4407
  (error) => debugLogger6.warn(
4377
4408
  `Failed to emit ACP Goal state: ${error instanceof Error ? error.message : String(error)}`
@@ -4557,6 +4588,10 @@ var Session = class {
4557
4588
  if (this.disposed || this.closing || this.goalProcessing || this.pendingPrompt || this.pendingPromptCompletion || this.cronProcessing || this.cronAbortController || this.notificationProcessing || this.notificationAbortController || this.#isAutomaticWorkHeld()) {
4558
4589
  return;
4559
4590
  }
4591
+ const next = this.goalQueue[0];
4592
+ if (this.heldGoalProposal && next?.permit.goalId === this.heldGoalProposal.goalId && next.permit.revision === this.heldGoalProposal.revision) {
4593
+ return;
4594
+ }
4560
4595
  const turn = this.goalQueue.shift();
4561
4596
  if (!turn) return;
4562
4597
  this.goalProcessing = true;
@@ -6154,7 +6189,17 @@ var Session = class {
6154
6189
  if (!goalTurn) {
6155
6190
  try {
6156
6191
  const runtime = this.config.getGoalRuntime();
6157
- if (runtime.getSnapshot().goal?.status === "active") {
6192
+ const activeGoal = runtime.getSnapshot().goal;
6193
+ const heldGoalMatches = this.heldGoalProposal?.goalId === activeGoal?.goalId && this.heldGoalProposal?.revision === activeGoal?.revision;
6194
+ if (activeGoal?.status === "active" && heldGoalMatches) {
6195
+ for (const queued of this.goalQueue.splice(0)) {
6196
+ queued.controller.abort(NEW_PROMPT_ABORT_REASON);
6197
+ await runtime.releaseTurn(queued.turnKey, { requeue: false });
6198
+ }
6199
+ await this.messageEmitter.emitAgentMessage(
6200
+ `Automatic Goal execution is still held. ${GOAL_HELD_RECOVERY_COMMANDS}`
6201
+ );
6202
+ } else if (activeGoal?.status === "active") {
6158
6203
  reservedGoalRuntime = runtime;
6159
6204
  reservedGoalTurnKey = `goal-user:${randomUUID()}`;
6160
6205
  runtime.beginTurn(reservedGoalTurnKey);
@@ -6332,6 +6377,11 @@ var Session = class {
6332
6377
  }
6333
6378
  } : result;
6334
6379
  promptResult = completedResult;
6380
+ const proposalTurn = responseCapture.goalProposalTurn;
6381
+ if (proposalTurn) {
6382
+ proposalTurn.completedNormally = completedResult.stopReason === "end_turn" && !pendingSend.signal.aborted && proposalTurn.settlementBlocked !== true;
6383
+ }
6384
+ await this.#settleGoalProposal(responseCapture);
6335
6385
  releasePendingSend();
6336
6386
  void this.#drainCronQueue();
6337
6387
  void this.#drainNotificationQueue();
@@ -6359,6 +6409,23 @@ var Session = class {
6359
6409
  rejectedByLoopProtection = isLoopDetectedTurnError(error);
6360
6410
  throw error;
6361
6411
  } finally {
6412
+ const proposalTurn = responseCapture.goalProposalTurn;
6413
+ if (proposalTurn) {
6414
+ this.config.takePendingGoalProposal(proposalTurn.turnKey);
6415
+ if (this.activeGoalProposalTurn === proposalTurn) {
6416
+ this.activeGoalProposalTurn = void 0;
6417
+ }
6418
+ }
6419
+ if (this.config.getGoalProposalHostSupported() && this.config.setGoalProposalTurnKey(void 0)) {
6420
+ try {
6421
+ await this.config.getLlmClient().setTools();
6422
+ } catch (error) {
6423
+ debugLogger6.warn(
6424
+ "Failed to refresh Goal proposal availability",
6425
+ error
6426
+ );
6427
+ }
6428
+ }
6362
6429
  const stillOwnsPendingPrompt = this.pendingPrompt === pendingSend;
6363
6430
  releasePendingSend();
6364
6431
  const shouldDrainAutomaticQueues = (
@@ -6370,7 +6437,7 @@ var Session = class {
6370
6437
  if (stillOwnsPendingPrompt) {
6371
6438
  this.todoStopGuardDrainAutomaticQueuesWhenIdle = false;
6372
6439
  }
6373
- if (shouldDrainAutomaticQueues) {
6440
+ if (shouldDrainAutomaticQueues || stillOwnsPendingPrompt) {
6374
6441
  void this.#drainCronQueue();
6375
6442
  void this.#drainNotificationQueue();
6376
6443
  }
@@ -6540,6 +6607,70 @@ var Session = class {
6540
6607
  ), "execute");
6541
6608
  return goalTurn ? goalTurnContext.run(goalTurn.permit, execute) : goalTurnContext.exit(execute);
6542
6609
  }
6610
+ async #settleGoalProposal(capture) {
6611
+ const turn = capture.goalProposalTurn;
6612
+ if (!turn) return;
6613
+ const proposal = this.config.takePendingGoalProposal(turn.turnKey);
6614
+ if (!proposal) return;
6615
+ const ownsTurn = /* @__PURE__ */ __name(() => turn.completedNormally && !turn.controller.signal.aborted && this.pendingPrompt === turn.controller && this.activeGoalProposalTurn === turn && !this.disposed && !this.closing, "ownsTurn");
6616
+ if (!ownsTurn()) {
6617
+ if (!this.disposed && !this.closing) {
6618
+ await this.messageEmitter.emitAgentMessage(
6619
+ formatProposeGoalRecoveryNotStarted(proposal.objective)
6620
+ );
6621
+ }
6622
+ return;
6623
+ }
6624
+ try {
6625
+ const runtime = await this.config.getGoalRuntimeReady();
6626
+ if (!ownsTurn()) {
6627
+ if (!this.disposed && !this.closing) {
6628
+ await this.messageEmitter.emitAgentMessage(
6629
+ formatProposeGoalRecoveryNotStarted(proposal.objective)
6630
+ );
6631
+ }
6632
+ return;
6633
+ }
6634
+ const result = await applyPendingGoalProposal(runtime, proposal);
6635
+ if (result.applied && (!ownsTurn() || proposal.approvalSignal?.aborted)) {
6636
+ try {
6637
+ await runtime.dispatch({
6638
+ action: "pause",
6639
+ expectedGoalId: result.goal.goalId,
6640
+ expectedRevision: result.goal.revision,
6641
+ reason: this.closing || this.disposed ? GOAL_PAUSE_REASON_SESSION_DISPOSED : GOAL_PAUSE_REASON_USER_INTERRUPT
6642
+ });
6643
+ } catch (error) {
6644
+ const current = runtime.getSnapshot().goal;
6645
+ if (current?.goalId === result.goal.goalId && current.revision === result.goal.revision && current.status === "active") {
6646
+ this.heldGoalProposal = {
6647
+ goalId: current.goalId,
6648
+ revision: current.revision
6649
+ };
6650
+ debugLogger6.warn(
6651
+ "Failed to pause the cancelled Goal proposal",
6652
+ error
6653
+ );
6654
+ await this.messageEmitter.emitAgentMessage(
6655
+ `The Goal was created, but its cancellation could not be saved. Automatic execution is held in this session. ${GOAL_HELD_RECOVERY_COMMANDS}`
6656
+ );
6657
+ }
6658
+ }
6659
+ } else if (!result.applied) {
6660
+ debugLogger6.debug(
6661
+ `Dropping an approved Goal proposal: ${result.reason}`
6662
+ );
6663
+ await this.messageEmitter.emitAgentMessage(
6664
+ result.kind === "changed" ? result.reason : formatProposeGoalRecoveryFailed(proposal.objective)
6665
+ );
6666
+ }
6667
+ } catch (error) {
6668
+ debugLogger6.warn("Failed to apply an approved Goal proposal", error);
6669
+ await this.messageEmitter.emitAgentMessage(
6670
+ formatProposeGoalRecoveryFailed(proposal.objective)
6671
+ );
6672
+ }
6673
+ }
6543
6674
  async #executePromptInner(params, pendingSend, responseCapture, modelPrompt, rejectOnLoopDetected = false, goalTurn, channelTurn = false) {
6544
6675
  let managedMemoryRecallStarted = false;
6545
6676
  return Storage.runWithRuntimeBaseDir(
@@ -6552,6 +6683,19 @@ var Session = class {
6552
6683
  }
6553
6684
  this.turn += 1;
6554
6685
  const promptId = this.config.getSessionId() + "########" + this.turn;
6686
+ if (!goalTurn && !channelTurn && params._meta?.["qwen.goalProposalApproval"] === true) {
6687
+ responseCapture.goalProposalTurn = {
6688
+ turnKey: promptId,
6689
+ controller: pendingSend,
6690
+ completedNormally: false
6691
+ };
6692
+ this.activeGoalProposalTurn = responseCapture.goalProposalTurn;
6693
+ }
6694
+ if (this.config.getGoalProposalHostSupported() && this.config.setGoalProposalTurnKey(
6695
+ responseCapture.goalProposalTurn?.turnKey
6696
+ )) {
6697
+ await this.config.getLlmClient().setTools();
6698
+ }
6555
6699
  const daemonPromptId = getInvocationContext()?.promptId;
6556
6700
  const promptMetadata = params._meta;
6557
6701
  const continuesCurrentWorkChain = params.retry === true || promptMetadata?.[DAEMON_RETRY_META_KEY] === true || promptMetadata?.[DAEMON_CONTINUE_META_KEY] === true || promptMetadata?.[DAEMON_RESTORE_ASK_USER_QUESTION_META_KEY] === true;
@@ -6569,6 +6713,8 @@ var Session = class {
6569
6713
  const promptText = params.prompt.filter((block) => block.type === "text").map((block) => block.type === "text" ? block.text : "").join(" ");
6570
6714
  const promptDisplayTextValue = promptMetadata?.[DAEMON_PROMPT_DISPLAY_TEXT_META_KEY];
6571
6715
  const promptDisplayText = typeof promptDisplayTextValue === "string" ? promptDisplayTextValue : void 0;
6716
+ const declaredSubmission = promptMetadata?.[DAEMON_SUBMITTED_PROMPT_META_KEY];
6717
+ const submittedPrompt = typeof declaredSubmission === "string" ? declaredSubmission : "";
6572
6718
  const modelPromptBlocks = modelPrompt === void 0 ? params.prompt : [{ type: "text", text: modelPrompt }];
6573
6719
  logUserPrompt(
6574
6720
  this.config,
@@ -6751,13 +6897,15 @@ var Session = class {
6751
6897
  const messageBus = this.config.getMessageBus?.();
6752
6898
  const isRuntimeContinuation = goalTurn?.origin === "runtime";
6753
6899
  const isFreshUserTurn = !isRetry && !isContinue && !isRestoreAskUserQuestion && !isRuntimeContinuation;
6900
+ const isUserSubmissionTurn = isFreshUserTurn && !channelTurn;
6754
6901
  if (!isContinue && !isRestoreAskUserQuestion && !isRuntimeContinuation && hooksEnabled && messageBus && this.config.hasHooksForEvent?.("UserPromptSubmit")) {
6755
6902
  const response = await messageBus.request(
6756
6903
  {
6757
6904
  type: "hook-execution-request" /* HOOK_EXECUTION_REQUEST */,
6758
6905
  eventName: "UserPromptSubmit",
6759
6906
  input: {
6760
- prompt: promptText
6907
+ prompt: promptText,
6908
+ ...isUserSubmissionTurn && submittedPrompt.trim().length > 0 ? { submitted_prompt: submittedPrompt } : {}
6761
6909
  },
6762
6910
  signal: pendingSend.signal
6763
6911
  },
@@ -7283,6 +7431,11 @@ ${this.pendingRecoveredAgentsNotice}
7283
7431
  modelOverride = model;
7284
7432
  return true;
7285
7433
  }, "onFullTurnModel");
7434
+ const blockGoalProposalSettlement = /* @__PURE__ */ __name(() => {
7435
+ if (responseCapture?.goalProposalTurn) {
7436
+ responseCapture.goalProposalTurn.settlementBlocked = true;
7437
+ }
7438
+ }, "blockGoalProposalSettlement");
7286
7439
  let midTurnContinuationCount = 0;
7287
7440
  while (true) {
7288
7441
  if (this.pendingPrompt && this.pendingPrompt !== pendingSend) {
@@ -7296,6 +7449,7 @@ ${this.pendingRecoveredAgentsNotice}
7296
7449
  this.#clearTodoStopGuardTrustAndDrainAutomaticQueues();
7297
7450
  }
7298
7451
  if (this.todoStopGuardQueuedPromptPriority) {
7452
+ blockGoalProposalSettlement();
7299
7453
  return { stopReason: "end_turn" };
7300
7454
  }
7301
7455
  if (this.todoStopGuard.needsStopInspection) {
@@ -7309,6 +7463,7 @@ ${this.pendingRecoveredAgentsNotice}
7309
7463
  pendingSend.signal
7310
7464
  );
7311
7465
  if (claim === "queued") {
7466
+ blockGoalProposalSettlement();
7312
7467
  this.#preserveUnsentMessageHistory(
7313
7468
  { role: "user", parts: drained.parts },
7314
7469
  true
@@ -7320,6 +7475,7 @@ ${this.pendingRecoveredAgentsNotice}
7320
7475
  }
7321
7476
  }
7322
7477
  this.todoStopGuard.acceptMidTurnUserInput();
7478
+ blockGoalProposalSettlement();
7323
7479
  const continuation2 = await this.#runStopContinuation(
7324
7480
  pendingSend,
7325
7481
  promptId + "_mid_turn_" + ++midTurnContinuationCount,
@@ -7347,6 +7503,7 @@ ${this.pendingRecoveredAgentsNotice}
7347
7503
  pendingSend.signal
7348
7504
  );
7349
7505
  if (claim === "queued") {
7506
+ blockGoalProposalSettlement();
7350
7507
  return { stopReason: "end_turn" };
7351
7508
  }
7352
7509
  if (claim === "unavailable") {
@@ -7396,6 +7553,7 @@ ${this.pendingRecoveredAgentsNotice}
7396
7553
  pendingSend.signal
7397
7554
  );
7398
7555
  if (claim === "queued") {
7556
+ blockGoalProposalSettlement();
7399
7557
  this.#preserveUnsentMessageHistory(
7400
7558
  { role: "user", parts: drained.parts },
7401
7559
  true
@@ -7407,6 +7565,7 @@ ${this.pendingRecoveredAgentsNotice}
7407
7565
  }
7408
7566
  }
7409
7567
  this.todoStopGuard.acceptMidTurnUserInput();
7568
+ blockGoalProposalSettlement();
7410
7569
  const continuation2 = await this.#runStopContinuation(
7411
7570
  pendingSend,
7412
7571
  promptId + "_mid_turn_" + ++midTurnContinuationCount,
@@ -7434,6 +7593,7 @@ ${this.pendingRecoveredAgentsNotice}
7434
7593
  pendingSend.signal
7435
7594
  );
7436
7595
  if (claim === "queued") {
7596
+ blockGoalProposalSettlement();
7437
7597
  return { stopReason: "end_turn" };
7438
7598
  }
7439
7599
  if (claim === "unavailable") {
@@ -7463,7 +7623,10 @@ ${this.pendingRecoveredAgentsNotice}
7463
7623
  const guardContinuation = guardDecision?.kind === "continue" ? guardDecision : null;
7464
7624
  if (guardDecision?.kind === "exhausted") {
7465
7625
  await this.#emitTodoStopGuardExhausted(guardDecision);
7466
- if (!externalReason) return { stopReason: "end_turn" };
7626
+ if (!externalReason) {
7627
+ blockGoalProposalSettlement();
7628
+ return { stopReason: "end_turn" };
7629
+ }
7467
7630
  }
7468
7631
  if (externalReason && stopHookIterationCount >= stopHookBlockingCap) {
7469
7632
  const warning = formatStopHookBlockingCapWarning(
@@ -7478,6 +7641,7 @@ ${this.pendingRecoveredAgentsNotice}
7478
7641
  await this.#pauseGoalForStopHookCap();
7479
7642
  }
7480
7643
  this.todoStopGuard.suspend();
7644
+ blockGoalProposalSettlement();
7481
7645
  await this.messageEmitter.emitAgentMessage(warning);
7482
7646
  debugLogger6.warn(warning);
7483
7647
  return { stopReason: "end_turn" };
@@ -7550,6 +7714,12 @@ ${this.pendingRecoveredAgentsNotice}
7550
7714
  true
7551
7715
  );
7552
7716
  }, "preservePendingMessage");
7717
+ const blockGoalProposalSettlement = /* @__PURE__ */ __name(() => {
7718
+ const proposalTurn = options.responseCapture?.goalProposalTurn;
7719
+ if (proposalTurn) {
7720
+ proposalTurn.settlementBlocked = true;
7721
+ }
7722
+ }, "blockGoalProposalSettlement");
7553
7723
  while (nextMessage !== null) {
7554
7724
  if (this.pendingPrompt && this.pendingPrompt !== pendingSend) {
7555
7725
  preservePendingMessage(nextMessage);
@@ -7656,6 +7826,7 @@ ${this.pendingRecoveredAgentsNotice}
7656
7826
  nextGuardContinuation = void 0;
7657
7827
  if (!options.externalParts) {
7658
7828
  preserveGuardOnSkippedSend = true;
7829
+ blockGoalProposalSettlement();
7659
7830
  return { kind: "stop", stopReason: "end_turn" };
7660
7831
  }
7661
7832
  if (!initialSend && nextMessage) {
@@ -7674,6 +7845,7 @@ ${this.pendingRecoveredAgentsNotice}
7674
7845
  guardForThisSend = void 0;
7675
7846
  nextGuardContinuation = void 0;
7676
7847
  preserveGuardOnSkippedSend = true;
7848
+ blockGoalProposalSettlement();
7677
7849
  if (initialSend) {
7678
7850
  supersededAutomaticContinuation = true;
7679
7851
  }
@@ -7731,6 +7903,7 @@ ${this.pendingRecoveredAgentsNotice}
7731
7903
  guardForThisSend = void 0;
7732
7904
  nextGuardContinuation = void 0;
7733
7905
  preserveGuardOnSkippedSend = true;
7906
+ blockGoalProposalSettlement();
7734
7907
  if (initialSend) {
7735
7908
  supersededAutomaticContinuation = true;
7736
7909
  }
@@ -8908,6 +9081,10 @@ ${this.pendingRecoveredAgentsNotice}
8908
9081
  * timed-out drain is still recorded exactly once.
8909
9082
  */
8910
9083
  async #buildMidTurnParts(messages, abortSignal, options = {}) {
9084
+ const proposalTurn = this.activeGoalProposalTurn;
9085
+ if (messages.length > 0 && proposalTurn?.controller.signal === abortSignal) {
9086
+ proposalTurn.settlementBlocked = true;
9087
+ }
8911
9088
  const parts = [];
8912
9089
  for (const message of messages) {
8913
9090
  const displayText = message.kind === "text" ? message.message : message.displayText;
@@ -11493,6 +11670,19 @@ ${this.pendingRecoveredAgentsNotice}
11493
11670
  return await runInToolSpanContext(toolSpan, async () => {
11494
11671
  const entryCancellation = cancelBeforeExecutionIfAborted(toolName);
11495
11672
  if (entryCancellation) return entryCancellation;
11673
+ if (policyToolName === ToolNames.PROPOSE_GOAL && (this.activeGoalProposalTurn?.turnKey !== promptId || this.activeGoalProposalTurn.controller.signal.aborted)) {
11674
+ return earlyErrorResponse(
11675
+ new Error(
11676
+ "The Goal was not set: this turn cannot own a Goal approval. Hand the user a `/goal set <objective>` line instead."
11677
+ ),
11678
+ toolName,
11679
+ {
11680
+ status: "error",
11681
+ errorType: "execution_denied" /* EXECUTION_DENIED */,
11682
+ executionStatus: "not_started"
11683
+ }
11684
+ );
11685
+ }
11496
11686
  const isTrustedLiveScreenContextTool = tool === this.liveScreenContextTool;
11497
11687
  const isTrustedLiveTaskTool = this.liveTaskTools.includes(
11498
11688
  tool
@@ -12472,7 +12662,8 @@ ${this.pendingRecoveredAgentsNotice}
12472
12662
  try {
12473
12663
  toolResult = await invocation.execute(
12474
12664
  activeToolAbortSignal,
12475
- onToolProgress
12665
+ onToolProgress,
12666
+ this.config.getShellExecutionConfig()
12476
12667
  );
12477
12668
  executeReturned = true;
12478
12669
  try {
@@ -15437,6 +15628,7 @@ function hasFailedDisplayStatus(display) {
15437
15628
  __name(hasFailedDisplayStatus, "hasFailedDisplayStatus");
15438
15629
  var AUTH_PREFLIGHT_ENV_KEYS = {
15439
15630
  openai: ["OPENAI_API_KEY"],
15631
+ "openai-responses": ["OPENAI_API_KEY"],
15440
15632
  anthropic: ["ANTHROPIC_API_KEY"],
15441
15633
  gemini: ["GEMINI_API_KEY"],
15442
15634
  "vertex-ai": ["GOOGLE_API_KEY"]
@@ -16538,6 +16730,7 @@ async function runAcpAgent(config, settings, argv, options) {
16538
16730
  return agentInstance;
16539
16731
  }, stream);
16540
16732
  markAcpStartup("transportSetupEnd");
16733
+ registerCleanup(() => agentInstance?.closePeerMessaging());
16541
16734
  } catch (err) {
16542
16735
  eventLoopMonitor.dispose();
16543
16736
  throw err;
@@ -16980,6 +17173,30 @@ var QwenAgent = class _QwenAgent {
16980
17173
  __name(this, "QwenAgent");
16981
17174
  }
16982
17175
  sessions = /* @__PURE__ */ new Map();
17176
+ /**
17177
+ * Cross-session messaging for every session this process hosts.
17178
+ *
17179
+ * One inbox, not one per session: the address is a socket, the sessions
17180
+ * are told apart by the `toSessionId` every sender pins on its frame,
17181
+ * and binding a socket per session would multiply file descriptors by
17182
+ * the session count for no added reach.
17183
+ *
17184
+ * Outbound only for now. Inbound is refused rather than held, because a
17185
+ * hold is a question put to a person and nobody is watching a hold list
17186
+ * on a daemon-managed session's behalf; a sender is told so at once
17187
+ * instead of waiting out an expiry.
17188
+ */
17189
+ peerMessagingStart = null;
17190
+ // Set by closePeerMessaging: a retry must not resurrect an inbox after
17191
+ // teardown ran.
17192
+ peerMessagingClosed = false;
17193
+ /**
17194
+ * Sessions already given a record. A session is published once, but a
17195
+ * reload can hand the same id back through the same path, and two
17196
+ * records for one session would be two names for it in every listing.
17197
+ */
17198
+ registeredSessions = /* @__PURE__ */ new Set();
17199
+ inboxAddress = null;
16983
17200
  modelProviderReloadRevision = 0;
16984
17201
  historyMutationTails = /* @__PURE__ */ new Map();
16985
17202
  startingSessionIds = /* @__PURE__ */ new Set();
@@ -17184,6 +17401,7 @@ var QwenAgent = class _QwenAgent {
17184
17401
  }
17185
17402
  async finishManagedShutdown(configs) {
17186
17403
  const failures = [];
17404
+ await this.closePeerMessaging();
17187
17405
  for (const [sessionId, session] of [...this.sessions]) {
17188
17406
  await this.removeStoredSessionEntry(sessionId, session, failures, {
17189
17407
  shutdownConfig: false
@@ -17522,6 +17740,12 @@ var QwenAgent = class _QwenAgent {
17522
17740
  } catch (error) {
17523
17741
  cleanupErrors.push(error);
17524
17742
  }
17743
+ this.registeredSessions.delete(sessionId);
17744
+ try {
17745
+ await session.getConfig().unregisterSessionRegistry();
17746
+ } catch (error) {
17747
+ cleanupErrors.push(error);
17748
+ }
17525
17749
  if (options.shutdownConfig !== false) {
17526
17750
  try {
17527
17751
  await session.getConfig().shutdown({ shutdownTelemetry: false });
@@ -17775,6 +17999,113 @@ var QwenAgent = class _QwenAgent {
17775
17999
  }
17776
18000
  await this.closeStoredSession(sessionId, opts);
17777
18001
  }
18002
+ /**
18003
+ * Bind the one inbox every session this process hosts shares.
18004
+ *
18005
+ * Not awaited: binding a socket must not delay the first prompt, and a
18006
+ * session published before it resolves still registers — the address
18007
+ * is patched into every record when it arrives (`publishInboxAddress`).
18008
+ */
18009
+ startPeerMessaging() {
18010
+ if (this.peerMessagingStart) return;
18011
+ if (this.peerMessagingClosed) return;
18012
+ this.peerMessagingStart = (async () => {
18013
+ try {
18014
+ const messaging = await PeerMessaging.start({
18015
+ // Inbound is refused outright, so neither the approval mode nor
18016
+ // the parity rule it feeds is ever consulted. Stated rather than
18017
+ // left to a default: what a daemon-managed session may be told
18018
+ // is settled here and nowhere else.
18019
+ getApprovalMode: /* @__PURE__ */ __name(() => null, "getApprovalMode"),
18020
+ getPolicySetting: /* @__PURE__ */ __name(() => "refuse", "getPolicySetting"),
18021
+ updateSessionRegistryIpcPath: /* @__PURE__ */ __name((ipcPath, ipcToken) => this.publishInboxAddress(ipcPath, ipcToken), "updateSessionRegistryIpcPath"),
18022
+ ownsSessionId: /* @__PURE__ */ __name((id) => {
18023
+ const wanted = normalizeSessionIdForLookup(id);
18024
+ return this.sessions.has(wanted) || [...this.sessions.values()].some(
18025
+ (session) => normalizeSessionIdForLookup(
18026
+ session.getConfig().getSessionId()
18027
+ ) === wanted
18028
+ );
18029
+ }, "ownsSessionId")
18030
+ });
18031
+ if (messaging === null) this.peerMessagingStart = null;
18032
+ return messaging;
18033
+ } catch (error) {
18034
+ debugLogger9.error(
18035
+ "[ACP] cross-session messaging failed to start:",
18036
+ error
18037
+ );
18038
+ this.peerMessagingStart = null;
18039
+ return null;
18040
+ }
18041
+ })();
18042
+ }
18043
+ /** Close the inbox and stop advertising it. Safe to call more than once. */
18044
+ async closePeerMessaging() {
18045
+ this.peerMessagingClosed = true;
18046
+ const pending = this.peerMessagingStart;
18047
+ if (!pending) return;
18048
+ this.peerMessagingStart = null;
18049
+ try {
18050
+ await (await pending)?.close();
18051
+ } catch (error) {
18052
+ debugLogger9.debug(
18053
+ `[ACP] closing cross-session messaging failed: ${error instanceof Error ? error.message : String(error)}`
18054
+ );
18055
+ }
18056
+ this.inboxAddress = null;
18057
+ }
18058
+ /**
18059
+ * Give a newly published session a registry record of its own.
18060
+ *
18061
+ * Only when that session's own settings turn messaging on. A record
18062
+ * with no inbox behind it would put a name in every peer's listing
18063
+ * that can be addressed and never answered, which is worse than not
18064
+ * appearing at all — the interactive UI registers unconditionally
18065
+ * because its record also answers "what is running right now", a
18066
+ * question nobody asks of a session a daemon is driving.
18067
+ */
18068
+ registerHostedSession(sessionId, config, settings) {
18069
+ if (settings.merged.agents?.crossSessionMessaging !== true) return;
18070
+ this.startPeerMessaging();
18071
+ if (this.registeredSessions.has(sessionId)) return;
18072
+ this.registeredSessions.add(sessionId);
18073
+ config.trackSessionRegistration(
18074
+ registerSession({
18075
+ sessionId,
18076
+ cwd: config.getTargetDir(),
18077
+ qwenVersion: config.getCliVersion() ?? null,
18078
+ // What spawned this process, as far as it can tell: the daemon
18079
+ // marks the children it starts, and anything else running
18080
+ // `qwen --acp` is a client driving it directly.
18081
+ kind: process.env[QWEN_CODE_SERVE_ENV] === "1" ? "serve" : "headless",
18082
+ // One record per session rather than one per process: they have
18083
+ // separate ids, names and working directories.
18084
+ slot: "own"
18085
+ })
18086
+ );
18087
+ if (this.inboxAddress) {
18088
+ void config.updateSessionRegistryIpcPath(
18089
+ this.inboxAddress.ipcPath,
18090
+ this.inboxAddress.ipcToken
18091
+ );
18092
+ }
18093
+ }
18094
+ /**
18095
+ * Write the inbox address into every hosted session's record.
18096
+ *
18097
+ * They share one address, so this runs once per bind rather than once
18098
+ * per session, and again with `undefined` at close so no record
18099
+ * advertises a socket that is gone.
18100
+ */
18101
+ async publishInboxAddress(ipcPath, ipcToken) {
18102
+ this.inboxAddress = ipcPath !== void 0 && ipcToken !== void 0 ? { ipcPath, ipcToken } : null;
18103
+ await Promise.allSettled(
18104
+ [...this.sessions.values()].map(
18105
+ (session) => session.getConfig().updateSessionRegistryIpcPath(ipcPath, ipcToken)
18106
+ )
18107
+ );
18108
+ }
17778
18109
  async disposeSessions() {
17779
18110
  this.activeWorkReporter?.dispose();
17780
18111
  this.activeWorkReporter = void 0;
@@ -17786,6 +18117,7 @@ var QwenAgent = class _QwenAgent {
17786
18117
  controller.abort();
17787
18118
  }
17788
18119
  this.workspaceGenerationControllers.clear();
18120
+ await this.closePeerMessaging();
17789
18121
  await Promise.allSettled(
17790
18122
  [...this.sessions.entries()].map(
17791
18123
  ([sessionId, session]) => this.discardStoredSessionIfCurrent(sessionId, session, {
@@ -17926,7 +18258,7 @@ var QwenAgent = class _QwenAgent {
17926
18258
  }
17927
18259
  this.clientCapabilities = args.clientCapabilities;
17928
18260
  const authMethods = buildAuthMethods();
17929
- const version = "0.23.2";
18261
+ const version = "0.23.3-nightly.20260910.c46cb85cf2";
17930
18262
  const response = {
17931
18263
  protocolVersion: PROTOCOL_VERSION,
17932
18264
  agentInfo: {
@@ -19009,13 +19341,24 @@ var QwenAgent = class _QwenAgent {
19009
19341
  const suppliedContext = meta[INVOCATION_CONTEXT_META_KEY];
19010
19342
  const suppliedModelPrompt = meta[DAEMON_MODEL_PROMPT_META_KEY];
19011
19343
  const suppliedPromptDisplayText = meta[DAEMON_PROMPT_DISPLAY_TEXT_META_KEY];
19344
+ const submittedPrompt = this.privateParentState === "trusted" ? meta[DAEMON_SUBMITTED_PROMPT_META_KEY] : meta[SUBMITTED_PROMPT_META_KEY];
19012
19345
  const suppliedChannelPrompt = meta[CHANNEL_PROMPT_META_KEY];
19346
+ const suppliedGoalProposalApproval = meta["qwen.goalProposalApproval"];
19013
19347
  const suppliedChannelDelivery = meta[DAEMON_CHANNEL_DELIVERY_META_KEY];
19014
19348
  delete meta[INVOCATION_CONTEXT_META_KEY];
19015
19349
  delete meta[DAEMON_MODEL_PROMPT_META_KEY];
19016
19350
  delete meta[PRIVATE_PARENT_CAPABILITY_META_KEY];
19017
19351
  delete meta[DAEMON_PROMPT_DISPLAY_TEXT_META_KEY];
19352
+ delete meta[SUBMITTED_PROMPT_META_KEY];
19353
+ delete meta[DAEMON_SUBMITTED_PROMPT_META_KEY];
19354
+ if (typeof submittedPrompt === "string" && suppliedChannelPrompt !== true) {
19355
+ meta[DAEMON_SUBMITTED_PROMPT_META_KEY] = submittedPrompt;
19356
+ }
19018
19357
  delete meta[CHANNEL_PROMPT_META_KEY];
19358
+ delete meta["qwen.goalProposalApproval"];
19359
+ if (this.privateParentState === "trusted" && suppliedGoalProposalApproval === true) {
19360
+ meta["qwen.goalProposalApproval"] = true;
19361
+ }
19019
19362
  delete meta[DAEMON_CHANNEL_DELIVERY_META_KEY];
19020
19363
  if (this.privateParentState === "trusted" && typeof suppliedPromptDisplayText === "string") {
19021
19364
  meta[DAEMON_PROMPT_DISPLAY_TEXT_META_KEY] = suppliedPromptDisplayText;
@@ -20879,6 +21222,22 @@ var QwenAgent = class _QwenAgent {
20879
21222
  }
20880
21223
  return await this.extMethodInternal(method, normalizedParams);
20881
21224
  } catch (error) {
21225
+ if ([
21226
+ "qwen/session/sources/list",
21227
+ "qwen/session/sources/upsert",
21228
+ "qwen/session/sources/remove",
21229
+ "qwen/session/sources/copy"
21230
+ ].includes(method)) {
21231
+ if (!(error instanceof SessionSourceError)) {
21232
+ debugLogger9.error("[ACP] Session source ext-method error:", error);
21233
+ }
21234
+ return {
21235
+ sourceError: error instanceof SessionSourceError ? { code: error.code, message: error.message } : {
21236
+ code: "source_persistence_unavailable",
21237
+ message: "Session source operation failed"
21238
+ }
21239
+ };
21240
+ }
20882
21241
  const writerError = getSessionWriterError(error);
20883
21242
  if (writerError) {
20884
21243
  throw new RequestError(writerError.rpcCode, writerError.message, {
@@ -22339,6 +22698,101 @@ var QwenAgent = class _QwenAgent {
22339
22698
  }
22340
22699
  return { requestId, cancelled };
22341
22700
  }
22701
+ case "qwen/session/sources/list":
22702
+ case "qwen/session/sources/upsert":
22703
+ case "qwen/session/sources/remove":
22704
+ case "qwen/session/sources/copy": {
22705
+ if (!this.isTrustedManagedParent()) {
22706
+ throw RequestError.invalidParams(
22707
+ void 0,
22708
+ "Sources require a trusted private ACP parent"
22709
+ );
22710
+ }
22711
+ const sessionId = params["sessionId"];
22712
+ if (typeof sessionId !== "string" || !sessionId) {
22713
+ throw RequestError.invalidParams(
22714
+ void 0,
22715
+ "Invalid source sessionId"
22716
+ );
22717
+ }
22718
+ const session = this.sessionOrThrow(sessionId);
22719
+ const sourceConfig = session.getConfig();
22720
+ const service = sourceConfig.getSessionSourceService();
22721
+ if (method === "qwen/session/sources/copy" && !service && !sourceConfig.getChatRecordingService()) {
22722
+ return { warnings: [] };
22723
+ }
22724
+ if (!service)
22725
+ throw new SessionSourceError(
22726
+ "source_persistence_unavailable",
22727
+ "Session sources unavailable"
22728
+ );
22729
+ if (method === "qwen/session/sources/list")
22730
+ return { ...await service.list() };
22731
+ if (method === "qwen/session/sources/upsert")
22732
+ return { ...await service.upsert(params["input"]) };
22733
+ if (method === "qwen/session/sources/remove") {
22734
+ const sourceId = params["sourceId"];
22735
+ if (typeof sourceId !== "string" || !sourceId || sourceId.length > 200)
22736
+ throw new SessionSourceError("invalid_source", "Invalid source ID");
22737
+ return { ...await service.remove(sourceId) };
22738
+ }
22739
+ const targetSessionId = params["targetSessionId"];
22740
+ const targetCwd = params["targetCwd"];
22741
+ const attachmentIds = params["attachmentIds"];
22742
+ if (typeof targetSessionId !== "string" || !SESSION_ID_RE.test(targetSessionId) || targetSessionId === sessionId || typeof targetCwd !== "string" || path7.resolve(targetCwd) !== path7.resolve(sourceConfig.storage.getProjectRoot()) || !Array.isArray(attachmentIds) || attachmentIds.some((id) => typeof id !== "string")) {
22743
+ throw RequestError.invalidParams(
22744
+ void 0,
22745
+ "Invalid source copy target"
22746
+ );
22747
+ }
22748
+ const sources = (await service.list()).sources;
22749
+ if (!sources.length) return { warnings: [] };
22750
+ const targetData = await sourceConfig.getSessionService().loadSession(targetSessionId);
22751
+ if (!targetData?.conversation.messages.some(
22752
+ (record) => record.forkedFrom?.sessionId === sessionId
22753
+ )) {
22754
+ throw RequestError.invalidParams(
22755
+ void 0,
22756
+ "Source copy target is not a fork of this session"
22757
+ );
22758
+ }
22759
+ let temporaryConfig;
22760
+ try {
22761
+ const targetConfig = this.sessions.get(targetSessionId)?.getConfig() ?? (temporaryConfig = await this.newSessionConfig(
22762
+ targetCwd,
22763
+ [],
22764
+ loadSettings(targetCwd),
22765
+ void 0,
22766
+ targetSessionId,
22767
+ true,
22768
+ {
22769
+ skipMcpDiscovery: true,
22770
+ skipHooks: true,
22771
+ skipSkillManager: true,
22772
+ skipFileCheckpointing: true,
22773
+ lenientToolWarmup: true
22774
+ }
22775
+ ));
22776
+ const targetService = targetConfig.getSessionSourceService();
22777
+ if (!targetService)
22778
+ throw new SessionSourceError(
22779
+ "source_persistence_unavailable",
22780
+ "Target sources unavailable"
22781
+ );
22782
+ return await targetService.copyFrom(
22783
+ sources,
22784
+ attachmentIds
22785
+ );
22786
+ } finally {
22787
+ if (temporaryConfig) {
22788
+ try {
22789
+ await this.cleanupUnstoredConfig(temporaryConfig);
22790
+ } catch (error) {
22791
+ debugLogger9.warn("Failed to clean up source copy config:", error);
22792
+ }
22793
+ }
22794
+ }
22795
+ }
22342
22796
  case SERVE_CONTROL_EXT_METHODS.sessionArtifactsPersist: {
22343
22797
  const sessionId = params["sessionId"];
22344
22798
  if (typeof sessionId !== "string" || sessionId.length === 0) {
@@ -24851,9 +25305,7 @@ ${outputText}
24851
25305
  config.setDisabledTools(new Set(disabled));
24852
25306
  }
24853
25307
  const workflowsWereEnabled = config.isWorkflowsEnabled();
24854
- config.setWorkflowsEnabled(
24855
- newMerged.tools?.workflowsEnabled === true
24856
- );
25308
+ config.setWorkflowsEnabled(newMerged.tools?.workflowsEnabled);
24857
25309
  if (config.isWorkflowsEnabled() !== workflowsWereEnabled) {
24858
25310
  try {
24859
25311
  await session.sendAvailableCommandsUpdate();
@@ -25266,6 +25718,9 @@ ${outputText}
25266
25718
  if (sessionSource) {
25267
25719
  config.setSessionSource(sessionSource.sourceType, sessionSource.sourceId);
25268
25720
  }
25721
+ if (this.clientCapabilities?._meta?.["qwen.goalProposals"] === true) {
25722
+ config.setGoalProposalHostSupported(true);
25723
+ }
25269
25724
  if (chatRecording !== false) {
25270
25725
  this.initializingConfigs.add(config);
25271
25726
  }
@@ -25315,6 +25770,9 @@ ${outputText}
25315
25770
  });
25316
25771
  });
25317
25772
  }
25773
+ if (!provisionalWorkspace && chatRecording !== false) {
25774
+ this.bindSessionSourceService(config);
25775
+ }
25318
25776
  try {
25319
25777
  await config.initialize({
25320
25778
  ...initializeOptions,
@@ -25340,6 +25798,41 @@ ${outputText}
25340
25798
  }
25341
25799
  return config;
25342
25800
  }
25801
+ bindSessionSourceService(config) {
25802
+ if (this.isTrustedManagedParent() && config.getChatRecordingService()) {
25803
+ config.setSessionSourceServiceFactory(() => {
25804
+ const sourceSessionId = config.getSessionId();
25805
+ const recording = config.getChatRecordingService();
25806
+ const sourceSessions = config.getSessionService();
25807
+ const workspaceCwd = config.storage.getProjectRoot();
25808
+ return new SessionSourceService({
25809
+ sessionId: sourceSessionId,
25810
+ workspaceCwd: /* @__PURE__ */ __name(() => workspaceCwd, "workspaceCwd"),
25811
+ load: /* @__PURE__ */ __name(async () => {
25812
+ if (!recording)
25813
+ throw new SessionSourceError(
25814
+ "source_persistence_unavailable",
25815
+ "Chat recording service unavailable"
25816
+ );
25817
+ await recording.flush();
25818
+ return sourceSessions.readSessionSources(sourceSessionId);
25819
+ }, "load"),
25820
+ persist: /* @__PURE__ */ __name(async (snapshot) => {
25821
+ if (!recording)
25822
+ throw new SessionSourceError(
25823
+ "source_persistence_unavailable",
25824
+ "Chat recording service unavailable"
25825
+ );
25826
+ await recording.recordSessionSourcesSnapshot(snapshot);
25827
+ }, "persist"),
25828
+ notify: /* @__PURE__ */ __name((revision) => this.connection.extNotification(
25829
+ "qwen/notify/session/sources-changed",
25830
+ { sessionId: sourceSessionId, revision }
25831
+ ), "notify")
25832
+ });
25833
+ });
25834
+ }
25835
+ }
25343
25836
  async surfaceMcpFailuresWhenReady(config) {
25344
25837
  try {
25345
25838
  await config.waitForMcpReady();
@@ -25596,6 +26089,9 @@ ${outputText}
25596
26089
  this.assertManagedSessionAdmission();
25597
26090
  await config.activateProvisionalWorkspace();
25598
26091
  this.assertManagedSessionAdmission();
26092
+ this.bindSessionSourceService(config);
26093
+ await config.registerSessionSourceTool();
26094
+ await config.getLlmClient().setTools();
25599
26095
  this.setupFileSystem(config);
25600
26096
  config.hydrateSessionRestoreFileHistory?.();
25601
26097
  if (sessionData?.fileHistorySnapshots?.length) {
@@ -25603,6 +26099,7 @@ ${outputText}
25603
26099
  }
25604
26100
  await replaySessionHistory();
25605
26101
  await options.beforeStartPostReplayServices?.(session);
26102
+ await config.getLlmClient().refreshStartupContextReminder();
25606
26103
  session.installRewriter();
25607
26104
  config.finalizeSessionRestore?.();
25608
26105
  startNonInteractiveOpenAILogHousekeeping(config, settings);
@@ -25669,6 +26166,7 @@ ${outputText}
25669
26166
  );
25670
26167
  }
25671
26168
  this.sessions.set(sessionId, session);
26169
+ this.registerHostedSession(sessionId, config, settings);
25672
26170
  this.sessionApprovalModeConverged.set(
25673
26171
  sessionId,
25674
26172
  config.getApprovalMode()