@qwen-code/qwen-code 0.23.2 → 0.23.3

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 (373) hide show
  1. package/README.md +35 -15
  2. package/bundled/computer-use/SKILL.md +1 -1
  3. package/bundled/qc-helper/docs/configuration/model-providers.md +66 -28
  4. package/bundled/qc-helper/docs/configuration/settings.md +5 -3
  5. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  6. package/bundled/qc-helper/docs/features/channels/dws.md +7 -1
  7. package/bundled/qc-helper/docs/features/commands.md +57 -9
  8. package/bundled/qc-helper/docs/features/computer-use.md +1 -1
  9. package/bundled/qc-helper/docs/features/cross-session-protocol.md +320 -0
  10. package/bundled/qc-helper/docs/features/goals.md +1 -1
  11. package/bundled/qc-helper/docs/qwen-serve.md +16 -3
  12. package/bundled/review/SKILL.md +82 -79
  13. package/bundled/review/references/posting.md +31 -14
  14. package/chunks/{MaxSizedBox-4C3BKKKY.js → MaxSizedBox-D4LW7RZZ.js} +58 -51
  15. package/chunks/{StandaloneSessionPicker-TXVF65YW.js → StandaloneSessionPicker-ALTTRWUP.js} +80 -73
  16. package/chunks/acp-subagent-executor-LEUN3N7N.js +919 -0
  17. package/chunks/{acpAgent-H5XBKGB4.js → acpAgent-BBSW7XZG.js} +509 -201
  18. package/chunks/{agent-T5LEFJIU.js → agent-SQ6OY3QD.js} +42 -36
  19. package/chunks/{agent-headless-VZKSRH36.js → agent-headless-RI2THRQ7.js} +42 -36
  20. package/chunks/{anthropicContentGenerator-PRJWWVYJ.js → anthropicContentGenerator-JSKMKS6V.js} +66 -34
  21. package/chunks/{artifact-tool-G5LHNECG.js → artifact-tool-PMYZCYNH.js} +2 -2
  22. package/chunks/{askUserQuestion-I5W5S3D6.js → askUserQuestion-4M4YYIB4.js} +2 -2
  23. package/chunks/{bridge-AOX5IY44.js → bridge-DAFMI72L.js} +62 -55
  24. package/chunks/{channel-management-service-MWQGHPAS.js → channel-management-service-OWDXVL7R.js} +8 -8
  25. package/chunks/{channel-settings-store-XZCGDGHW.js → channel-settings-store-4I6JONT7.js} +69 -62
  26. package/chunks/{channel-worker-group-SQ5FRWOH.js → channel-worker-group-F2ZZMLNS.js} +8 -8
  27. package/chunks/{channel-worker-manager-TU4ZNWOE.js → channel-worker-manager-2SZLJJSJ.js} +18 -9
  28. package/chunks/{channel-worker-supervisor-EMITFMCP.js → channel-worker-supervisor-ZFNWMG6D.js} +6 -6
  29. package/chunks/{chunk-GNY7B3CA.js → chunk-2ALXPGB4.js} +1 -1
  30. package/chunks/{chunk-LUNC5KCL.js → chunk-2PJRI3EH.js} +7 -7
  31. package/chunks/{chunk-CLKE4IY3.js → chunk-2SZH22YO.js} +1 -1
  32. package/chunks/{chunk-RNAJVXUG.js → chunk-2ZN3O5FT.js} +6 -6
  33. package/chunks/{chunk-HIXUUCGY.js → chunk-36HCNKDS.js} +1 -1
  34. package/chunks/{chunk-FGHPZGOP.js → chunk-3BTSSIJO.js} +38 -54
  35. package/chunks/{chunk-VBLAI2HA.js → chunk-3FPYT6QC.js} +0 -31
  36. package/chunks/{chunk-QB3KS3N3.js → chunk-3I7W2POO.js} +1 -1
  37. package/chunks/{chunk-QTB4VP4K.js → chunk-3KQBQ6FM.js} +136 -11
  38. package/chunks/{chunk-JO77FGNZ.js → chunk-3UXUOFO6.js} +19 -7
  39. package/chunks/{chunk-WDN64MVT.js → chunk-3XLK2QMY.js} +82 -16
  40. package/chunks/chunk-532WHF4F.js +127 -0
  41. package/chunks/{chunk-NX7ZTXFF.js → chunk-53GWJOLP.js} +1 -1
  42. package/chunks/{chunk-QQK4L3UU.js → chunk-5GLDOLNQ.js} +131 -26
  43. package/chunks/{chunk-WK7P62DV.js → chunk-5KI7ZDTB.js} +6 -6
  44. package/chunks/{chunk-ERXNTINK.js → chunk-6JACAGYH.js} +1 -1
  45. package/chunks/{chunk-CMWU6P4D.js → chunk-6W4HBUA2.js} +1 -1
  46. package/chunks/{chunk-AUTUFD5X.js → chunk-76RGWKLS.js} +1 -1
  47. package/chunks/{chunk-PDN7FJZV.js → chunk-7APZIRH3.js} +2 -2
  48. package/chunks/{chunk-WBU2PIZ5.js → chunk-7BXXIQG4.js} +16 -16
  49. package/chunks/{chunk-APXIW2TF.js → chunk-7ICHPMBQ.js} +4 -4
  50. package/chunks/{chunk-CWVZBIZJ.js → chunk-7Q2AXRDJ.js} +1 -1
  51. package/chunks/{chunk-WDVV3LRM.js → chunk-7QYWGTHB.js} +1 -1
  52. package/chunks/{chunk-RM244SCQ.js → chunk-AC6KDLH3.js} +1 -1
  53. package/chunks/{chunk-2WC3Y7YY.js → chunk-AEY27Z35.js} +401 -23
  54. package/chunks/{chunk-XDNFODER.js → chunk-AXTFYDXT.js} +1 -1
  55. package/chunks/chunk-AYEJOTIU.js +43 -0
  56. package/chunks/{chunk-ZN5TKAVR.js → chunk-BV6Q5HMY.js} +3 -3
  57. package/chunks/{chunk-TOOOLHVS.js → chunk-BWAMMKIS.js} +3 -3
  58. package/chunks/{chunk-IRGDIDGJ.js → chunk-BWQLXU37.js} +26 -19
  59. package/chunks/{process-registry-OAEG6WGC.js → chunk-BYUAT5OC.js} +1 -0
  60. package/chunks/{chunk-GOEVQADN.js → chunk-BZM5U74J.js} +287 -169
  61. package/chunks/chunk-CF5KXZZX.js +150 -0
  62. package/chunks/{chunk-TGNNLRC3.js → chunk-CJ3DHN5I.js} +1 -0
  63. package/chunks/{chunk-PFKGV6PO.js → chunk-CUEXOHQH.js} +9 -9
  64. package/chunks/chunk-CXTPVBFA.js +937 -0
  65. package/chunks/{chunk-LEAOJ43M.js → chunk-DAWWT2ID.js} +62 -59
  66. package/chunks/{chunk-CALTQWTZ.js → chunk-DLH7YIX6.js} +2 -2
  67. package/chunks/chunk-DT75RKNH.js +691 -0
  68. package/chunks/{chunk-TRWQQBVH.js → chunk-DTNV6UZY.js} +1 -1
  69. package/chunks/{chunk-3OAXF3UK.js → chunk-DYFOSJHU.js} +3080 -933
  70. package/chunks/{chunk-GSFV5RQW.js → chunk-E4UEO3XM.js} +3 -2
  71. package/chunks/{chunk-A7EFXK7P.js → chunk-E7LB57MB.js} +5 -5
  72. package/chunks/{chunk-KEPC5BOL.js → chunk-EDMXGXAK.js} +9 -9
  73. package/chunks/chunk-ELRMZTPF.js +374 -0
  74. package/chunks/chunk-ERU3SDXT.js +27 -0
  75. package/chunks/{chunk-O2FEO2CB.js → chunk-EUURTIV6.js} +18 -2
  76. package/chunks/{chunk-QFJZAY7W.js → chunk-EVTNACMT.js} +3 -3
  77. package/chunks/{chunk-4HOEU2OR.js → chunk-EWJTAP3Y.js} +1 -19
  78. package/chunks/{chunk-YQGW3M6Z.js → chunk-F42YYSCK.js} +8 -8
  79. package/chunks/{chunk-7PD7ZMX5.js → chunk-FCQJLMA2.js} +98 -5
  80. package/chunks/{chunk-4VY3ITHR.js → chunk-FN3JNDRU.js} +3 -3
  81. package/chunks/{chunk-R457KFV7.js → chunk-GCDXVPFK.js} +3 -3
  82. package/chunks/{chunk-IR6JKBAP.js → chunk-GOXQL4YH.js} +2 -2
  83. package/chunks/{chunk-YLOHCA6I.js → chunk-GSILBZLN.js} +2 -2
  84. package/chunks/{chunk-LNYV4GXX.js → chunk-GSKX53AN.js} +0 -139
  85. package/chunks/{chunk-4WMGYG3F.js → chunk-HBQ2NXOU.js} +2 -2
  86. package/chunks/{chunk-F2NYVASI.js → chunk-HBU7EKY4.js} +14 -12
  87. package/chunks/{chunk-6G4V7SE4.js → chunk-HG46TTAG.js} +1 -1
  88. package/chunks/{chunk-G5VOXCRX.js → chunk-HGAELO7B.js} +2 -2
  89. package/chunks/{chunk-FETY36NQ.js → chunk-HGEUHUEV.js} +1 -1
  90. package/chunks/{chunk-E6TI726I.js → chunk-HUXPEUFL.js} +1 -1
  91. package/chunks/{chunk-LYT2OU7D.js → chunk-IAEXTMED.js} +1 -1
  92. package/chunks/{chunk-IW6RQPQB.js → chunk-IJOS26LH.js} +1 -3
  93. package/chunks/{chunk-ORFIYTI2.js → chunk-IK2MWJP5.js} +1 -1
  94. package/chunks/{chunk-WXD7INFV.js → chunk-IL5M5NYD.js} +8 -8
  95. package/chunks/{chunk-KA5HR3G2.js → chunk-IUVIBDKU.js} +2 -2
  96. package/chunks/{chunk-5DQ4YTIZ.js → chunk-IV7GDNKC.js} +1 -1
  97. package/chunks/chunk-JL6APGBX.js +43 -0
  98. package/chunks/{chunk-N6S3NUYJ.js → chunk-JXNIF2O5.js} +1 -1
  99. package/chunks/{chunk-DAI65CMX.js → chunk-JYKWOREU.js} +1 -1
  100. package/chunks/chunk-K2OJUPOE.js +78 -0
  101. package/chunks/{chunk-KFECPHLV.js → chunk-KFZYGSJN.js} +3 -3
  102. package/chunks/{chunk-BK7D2JR6.js → chunk-KOKPXIAN.js} +3 -3
  103. package/chunks/{chunk-4I3WFI3U.js → chunk-LDVNJZGH.js} +12 -12
  104. package/chunks/{chunk-WXFCI3O5.js → chunk-LG5Y4OWO.js} +2 -2
  105. package/chunks/{chunk-3LPJ776W.js → chunk-LILGKQ4B.js} +10 -7
  106. package/chunks/{chunk-X7LFJF5D.js → chunk-LK2WUCDQ.js} +36 -84
  107. package/chunks/{chunk-7LTCFO6T.js → chunk-MF6E7FSA.js} +6 -5
  108. package/chunks/{chunk-ELD3OBPU.js → chunk-MHAADZOZ.js} +3 -3
  109. package/chunks/{chunk-4JNHNVAZ.js → chunk-MLQNSPRZ.js} +4 -4
  110. package/chunks/{chunk-NPKCVSXX.js → chunk-MOS5OAOG.js} +10 -8
  111. package/chunks/{chunk-IWABUX6T.js → chunk-MSNHNAQZ.js} +6 -6
  112. package/chunks/{chunk-HJ5UJQQL.js → chunk-N7VWZDWW.js} +1699 -1312
  113. package/chunks/{chunk-NB3NDQQK.js → chunk-NE624IVP.js} +1 -1
  114. package/chunks/{chunk-SOA4HKRJ.js → chunk-NFYEQRLG.js} +2 -2
  115. package/chunks/{chunk-G3ZUMSFS.js → chunk-NHCZJQE4.js} +6 -6
  116. package/chunks/{chunk-B25JYXZE.js → chunk-NHJKAR6E.js} +4 -4
  117. package/chunks/{chunk-ZP5XDLSA.js → chunk-NJQTG2G3.js} +12 -12
  118. package/chunks/{chunk-DARWOZY6.js → chunk-NLNQNBZ2.js} +1 -1
  119. package/chunks/{chunk-CCBTNJB4.js → chunk-NMCDMLHL.js} +27 -27
  120. package/chunks/{chunk-AO2VMS72.js → chunk-NMRCXKQ5.js} +3 -3
  121. package/chunks/{chunk-5BH2AIEY.js → chunk-NOAG7N22.js} +2 -2
  122. package/chunks/{chunk-VJJXG73H.js → chunk-NRXWJXJ4.js} +15 -0
  123. package/chunks/chunk-NUQ4GK5I.js +315 -0
  124. package/chunks/{chunk-J3VZF2AL.js → chunk-NUQVB25K.js} +2 -2
  125. package/chunks/{chunk-U6REWGVR.js → chunk-OLTN767L.js} +2 -2
  126. package/chunks/{chunk-R3JIDRUL.js → chunk-OX7IZ2G5.js} +4 -4
  127. package/chunks/{chunk-QAZ2MGYT.js → chunk-PLLIWEM3.js} +2 -2
  128. package/chunks/{chunk-KCF2436G.js → chunk-POC3YMHG.js} +4 -4
  129. package/chunks/{chunk-HZ2HUXX7.js → chunk-Q2LVVIKF.js} +1 -1
  130. package/chunks/{chunk-7NDZKE2M.js → chunk-Q5BD56BW.js} +3 -3
  131. package/chunks/{chunk-22GORRNY.js → chunk-QMUYLYT5.js} +1 -1
  132. package/chunks/{chunk-MV5DTLJV.js → chunk-R4Q2PEFV.js} +1 -1
  133. package/chunks/{chunk-GOKAOSCN.js → chunk-RLLRJJDR.js} +1 -1
  134. package/chunks/{chunk-5OZUKLL7.js → chunk-RWVD5RRY.js} +4 -4
  135. package/chunks/{chunk-ULZECEIP.js → chunk-RZHU3K6M.js} +2 -2
  136. package/chunks/{chunk-UYDQYDW2.js → chunk-S6Q6Q4P2.js} +1 -1
  137. package/chunks/{chunk-PQEISIKS.js → chunk-SAH4BD2J.js} +0 -67
  138. package/chunks/{chunk-LWX4WDFF.js → chunk-SBRX4BDI.js} +43 -15
  139. package/chunks/{chunk-TODNHE76.js → chunk-SODMFNAR.js} +5 -5
  140. package/chunks/{chunk-FAJPLSYF.js → chunk-SSGAAWLY.js} +89 -85
  141. package/chunks/{chunk-46MMBZHI.js → chunk-SYLECP23.js} +4 -4
  142. package/chunks/{chunk-6RZX2HIH.js → chunk-TBEXLLAO.js} +2 -2
  143. package/chunks/{chunk-MWIO7MF6.js → chunk-TP6FYVQT.js} +2 -0
  144. package/chunks/{chunk-HRPFBHW7.js → chunk-TPKQIA7G.js} +1 -0
  145. package/chunks/{chunk-QHLHE2OT.js → chunk-TWUKBNWM.js} +1 -1
  146. package/chunks/{chunk-H3Q3RSKZ.js → chunk-U7O65WKL.js} +1 -1
  147. package/chunks/{chunk-S5QR6CB5.js → chunk-UKMWZ5NS.js} +108 -887
  148. package/chunks/{chunk-OXR34GCD.js → chunk-UKZ45TJL.js} +1851 -34
  149. package/chunks/{chunk-CALNF3Z3.js → chunk-V2P3DOQR.js} +1 -1
  150. package/chunks/{chunk-FV4DM2M4.js → chunk-VG3Q2NC4.js} +7 -7
  151. package/chunks/{chunk-QTNCGZHQ.js → chunk-VX63RJXE.js} +9 -0
  152. package/chunks/{chunk-CRZBDVP2.js → chunk-VZUCTJ2P.js} +4 -4
  153. package/chunks/{chunk-2BMXHB6N.js → chunk-W5FIP7FC.js} +7 -7
  154. package/chunks/{chunk-7VEYUF3N.js → chunk-W5ZQMAEM.js} +1 -1
  155. package/chunks/{chunk-XQ4RDO5B.js → chunk-WBCPROWX.js} +1 -1
  156. package/chunks/{chunk-JYGIJA4W.js → chunk-X6K77VHC.js} +1 -1
  157. package/chunks/{chunk-7SVM3RP2.js → chunk-X7UJKOHZ.js} +3 -3
  158. package/chunks/{chunk-WXPPUPHM.js → chunk-XBZTAGB7.js} +1 -1
  159. package/chunks/{chunk-TRQNRP2H.js → chunk-XGYHNWL3.js} +45 -2
  160. package/chunks/{chunk-2EKVPSIJ.js → chunk-Y2MYW47X.js} +1 -1
  161. package/chunks/{chunk-OFVAS4AR.js → chunk-YBUMTY7B.js} +1 -1
  162. package/chunks/{chunk-67XTVRVB.js → chunk-YQHLFCPU.js} +7 -7
  163. package/chunks/{chunk-G37O7YO6.js → chunk-Z3GF56ME.js} +2 -2
  164. package/chunks/{chunk-XBVNNDPK.js → chunk-ZHKTKHMO.js} +8 -1
  165. package/chunks/{chunk-OWCFKIFQ.js → chunk-ZKYR7QS4.js} +1 -1
  166. package/chunks/{chunk-YZTGGCEE.js → chunk-ZKZHSB5W.js} +1 -1
  167. package/chunks/{chunk-565U2ANU.js → chunk-ZTTC7T4X.js} +1 -1
  168. package/chunks/{chunk-XSOXPG2L.js → chunk-ZU47FBOC.js} +36 -7
  169. package/chunks/{chunk-7OCIQNKX.js → chunk-ZW2EUO2A.js} +1 -1
  170. package/chunks/{config-utils-GPLIABL2.js → config-utils-L6KLDYIV.js} +62 -55
  171. package/chunks/{contextCommand-NCUQUDBY.js → contextCommand-UYEH7NIU.js} +59 -52
  172. package/chunks/{core-runtime-WKYKWVYU.js → core-runtime-NVHT3Z3V.js} +61 -54
  173. package/chunks/{create-sub-session-TGIX63YU.js → create-sub-session-TIGCFGCS.js} +2 -2
  174. package/chunks/{create-sub-session-PPLXB3JJ.js → create-sub-session-YWASE5VH.js} +59 -52
  175. package/chunks/{cron-create-GTPVMJCF.js → cron-create-AKWX67FO.js} +1 -1
  176. package/chunks/{cron-delete-ZBK27Z4K.js → cron-delete-XPB6IYZJ.js} +1 -1
  177. package/chunks/{cron-list-KTFKFDKC.js → cron-list-XBKO4WU5.js} +1 -1
  178. package/chunks/{daemon-2CKIAO3I.js → daemon-G5TYKZD6.js} +2 -2
  179. package/chunks/{daemon-git-worktree-guard-73ZWOLKL.js → daemon-git-worktree-guard-FOW4RQSK.js} +60 -53
  180. package/chunks/{daemon-status-provider-OK7VONJG.js → daemon-status-provider-O5KQZYMP.js} +67 -60
  181. package/chunks/{daemon-trust-policy-CAUCREG2.js → daemon-trust-policy-3ATXEON7.js} +64 -57
  182. package/chunks/{daemon-trust-policy-monitor-3Y36OOEQ.js → daemon-trust-policy-monitor-7MCNDNEC.js} +64 -57
  183. package/chunks/{deferred-core-runtime-Q7WFWYD3.js → deferred-core-runtime-JK5IXL5K.js} +57 -50
  184. package/chunks/{display-image-CTNHJRZC.js → display-image-NAH3AZ63.js} +3 -3
  185. package/chunks/{dist-NP7QKLVG.js → dist-AHJYPSJL.js} +3 -3
  186. package/chunks/{dist-6YDUH3BB.js → dist-AIKC5E5P.js} +2 -2
  187. package/chunks/{dist-Y5KC3IHW.js → dist-F2DVGTL3.js} +225 -6
  188. package/chunks/{dist-BNQVF565.js → dist-GWNQVPZT.js} +5 -5
  189. package/chunks/{dist-F6JLAJLE.js → dist-H6G3K26N.js} +3 -3
  190. package/chunks/{dist-ZDNJK74R.js → dist-KJGRVIGJ.js} +2 -2
  191. package/chunks/{dist-F34J4FZX.js → dist-KLZ7XGEQ.js} +2 -2
  192. package/chunks/{dist-UFTFGI6I.js → dist-ZA52JXAS.js} +2 -2
  193. package/chunks/{dist-XLV33CLY.js → dist-ZXTZTE54.js} +2 -2
  194. package/chunks/{edit-YJD6IETK.js → edit-SY35KYIE.js} +45 -39
  195. package/chunks/{en-YJNRUQG4.js → en-CAJHTIQT.js} +1 -0
  196. package/chunks/{enter-worktree-YFTKHXHZ.js → enter-worktree-54L5QJ3N.js} +4 -4
  197. package/chunks/{enterPlanMode-EFPVTWIH.js → enterPlanMode-HXX6KQJR.js} +42 -36
  198. package/chunks/{environment-HP3AXFTB.js → environment-DKXHG4HB.js} +60 -53
  199. package/chunks/{errors-22ON46G7.js → errors-ADY7LQJJ.js} +59 -52
  200. package/chunks/{exit-worktree-NF2XEMES.js → exit-worktree-EORJDKDS.js} +4 -4
  201. package/chunks/{exitPlanMode-MOQUNCBH.js → exitPlanMode-HSK2CQI6.js} +42 -36
  202. package/chunks/{fast-path-2X7BPMXX.js → fast-path-U636VWN2.js} +6 -6
  203. package/chunks/{fast-path-settings-SATXY3PD.js → fast-path-settings-V7MI7EZJ.js} +2 -2
  204. package/chunks/{glob-Y7ACIB3P.js → glob-GUGGTH5L.js} +45 -39
  205. package/chunks/{goal-tools-DABMICUC.js → goal-tools-PXYRSQGX.js} +42 -36
  206. package/chunks/{grep-BLHF2S5D.js → grep-3PKFKLCA.js} +2 -2
  207. package/chunks/{handleAutoUpdate-MCAMHYDI.js → handleAutoUpdate-5KHS4HIN.js} +60 -53
  208. package/chunks/{i18n-C3GDCALP.js → i18n-KSGKMUPT.js} +58 -51
  209. package/chunks/{image-gen-XP4NNIYG.js → image-gen-OCCR2WWU.js} +5 -4
  210. package/chunks/{initializer-4URDQL2G.js → initializer-YYT5XEZF.js} +64 -57
  211. package/chunks/{installationInfo-LBOL6SBV.js → installationInfo-UNSBPYW2.js} +57 -50
  212. package/chunks/{list-JOGBAC2R.js → list-YL6LDQKQ.js} +67 -60
  213. package/chunks/{list-agents-2CXPGJUE.js → list-agents-QLDXS5OD.js} +17 -7
  214. package/chunks/{llm-2KPNSAVY.js → llm-XGGLBGPH.js} +126 -119
  215. package/chunks/{llm-content-generator-GR3FOHLB.js → llm-content-generator-ZHQQT5W7.js} +5 -4
  216. package/chunks/{loadedSettingsAdapter-DVKROEJD.js → loadedSettingsAdapter-3DXLASK7.js} +64 -57
  217. package/chunks/{loggingContentGenerator-P4K6K5W4.js → loggingContentGenerator-V72OCCJO.js} +64 -57
  218. package/chunks/{loop-wakeup-HL6XOWI4.js → loop-wakeup-HHMYIC7Z.js} +2 -2
  219. package/chunks/{ls-YV7RKLKY.js → ls-N7ABR6HI.js} +4 -4
  220. package/chunks/{lsp-NO3AMRZT.js → lsp-LTOFWG5P.js} +1 -1
  221. package/chunks/{managed-npm-update-VWBKHNIN.js → managed-npm-update-HV5LPZH2.js} +57 -50
  222. package/chunks/{mcp-6YYNSYLK.js → mcp-IYVSIW6O.js} +64 -57
  223. package/chunks/{monitor-A255TNZR.js → monitor-TLBNM4MV.js} +44 -38
  224. package/chunks/{nonInteractiveCli-LXGIKQAT.js → nonInteractiveCli-LSJSQ2W4.js} +110 -103
  225. package/chunks/{notebook-edit-5UYHS2DM.js → notebook-edit-OSPOLZP6.js} +43 -37
  226. package/chunks/openai-WX26N5OJ.js +47 -0
  227. package/chunks/{openaiContentGenerator-A6MAMEO5.js → openaiContentGenerator-BE4S5TRD.js} +29 -23
  228. package/chunks/openaiResponsesContentGenerator-RTCAJ5V5.js +1658 -0
  229. package/chunks/{pidfile-B7DZC4TP.js → pidfile-H32FEPWA.js} +57 -50
  230. package/chunks/process-registry-X6ZCASEN.js +10 -0
  231. package/chunks/{processUtils-BPZ2MCZS.js → processUtils-SSLIPDEA.js} +2 -2
  232. package/chunks/{prompt-terminal-ledger-FYYTAOXS.js → prompt-terminal-ledger-I5SLL6UF.js} +58 -51
  233. package/chunks/{qwenContentGenerator-4IOJFD4S.js → qwenContentGenerator-TMQC623Z.js} +55 -47
  234. package/chunks/{qwenOAuth2-KX6LVYQ3.js → qwenOAuth2-3ZRQHHTC.js} +4 -3
  235. package/chunks/{read-file-A4H4O3VQ.js → read-file-T2QAIZE2.js} +11 -9
  236. package/chunks/{read-mcp-resource-D3N75DGF.js → read-mcp-resource-B37WANAQ.js} +1 -1
  237. package/chunks/{record-artifact-Q5CRGJTP.js → record-artifact-OAXWXZ5D.js} +2 -2
  238. package/chunks/record-source-D7R7X3GT.js +22 -0
  239. package/chunks/{report-findings-TJ34R7QK.js → report-findings-AR3VC6EQ.js} +3 -3
  240. package/chunks/{request-shutdown-LRKMTBAD.js → request-shutdown-IKNWTX5M.js} +5 -5
  241. package/chunks/{resumeHistoryUtils-YQQ43E4N.js → resumeHistoryUtils-QLKDH5GY.js} +63 -56
  242. package/chunks/{ripGrep-W32NWFTA.js → ripGrep-YGWL7KCV.js} +15 -13
  243. package/chunks/{run-qwen-serve-WBSWWIRV.js → run-qwen-serve-26KZDECC.js} +127 -102
  244. package/chunks/{runtime-VRVBX2E5.js → runtime-BMEIVDDG.js} +70 -63
  245. package/chunks/{scheduled-tasks-D65KJDA3.js → scheduled-tasks-NCFPP6VQ.js} +64 -57
  246. package/chunks/{scheduler-M2YPN7Z7.js → scheduler-47TVMUVN.js} +59 -52
  247. package/chunks/{sdk-exporters-grpc-MXTVSE3C.js → sdk-exporters-grpc-Y2ZUQDUQ.js} +2 -2
  248. package/chunks/{sdk-exporters-http-7R2ARBPV.js → sdk-exporters-http-VWTF4W6K.js} +3 -3
  249. package/chunks/{sdk-impl-YOLO7LV4.js → sdk-impl-G6FVTBQZ.js} +9 -9
  250. package/chunks/{send-message-76BKWKFZ.js → send-message-TWOGWCBG.js} +12 -9
  251. package/chunks/{serve-BE3H2P6P.js → serve-KL3G6LQQ.js} +64 -57
  252. package/chunks/{server-FLY5JERG.js → server-LBPYXZ5G.js} +2931 -518
  253. package/chunks/{session-JVN62R5K.js → session-YG6742LO.js} +118 -111
  254. package/chunks/{session-attachments-root-7ACGLHXA.js → session-attachments-root-OUBQDYC4.js} +57 -50
  255. package/chunks/{session-pr-refresh-TQS57SDK.js → session-pr-refresh-EKGMYNAW.js} +64 -57
  256. package/chunks/{settings-D44YMZFT.js → settings-DDNHJX2L.js} +69 -62
  257. package/chunks/{shell-3VE6I4V5.js → shell-KUCXWITU.js} +42 -36
  258. package/chunks/{skill-FHEGRRZU.js → skill-JQLKPNWZ.js} +33 -23
  259. package/chunks/{skill-settings-VHEJMBFL.js → skill-settings-XERQCUXZ.js} +63 -56
  260. package/chunks/{spawnChannel-T6MX2ZDN.js → spawnChannel-GQ45QFGB.js} +60 -53
  261. package/chunks/{standalone-update-QUGHFMCS.js → standalone-update-PRF3ILGZ.js} +59 -52
  262. package/chunks/{start-opentui-ui-IHIIZ2LE.js → start-opentui-ui-JDSOZE3N.js} +174 -157
  263. package/chunks/{startInteractiveUI-LR7K2ARZ.js → startInteractiveUI-RRW3JVHN.js} +533 -1119
  264. package/chunks/{syntheticOutput-D2P5V6RG.js → syntheticOutput-F6F27JMK.js} +2 -2
  265. package/chunks/{task-create-MWXJFRRM.js → task-create-Y623TBHB.js} +8 -8
  266. package/chunks/{task-list-EYO3FE57.js → task-list-FCPEEGWL.js} +1 -1
  267. package/chunks/{task-stop-BFSKRTGV.js → task-stop-QTKZXLPH.js} +1 -1
  268. package/chunks/{task-update-2JJJRHMT.js → task-update-YLSXF25N.js} +8 -8
  269. package/chunks/{team-create-GY3VFY47.js → team-create-5DRLOLOE.js} +44 -38
  270. package/chunks/{team-delete-IQZ6XGFI.js → team-delete-S7TLHZCF.js} +1 -1
  271. package/chunks/{team-plan-approval-BQPGZOT5.js → team-plan-approval-MWSGAL5T.js} +42 -36
  272. package/chunks/{terminal-image-renderer-YNYW5CQG.js → terminal-image-renderer-H7PD4FQW.js} +59 -52
  273. package/chunks/{theme-manager-U6CIK3GM.js → theme-manager-7AV73D6R.js} +57 -50
  274. package/chunks/{todoWrite-5ERKFWAK.js → todoWrite-5QI2H2FW.js} +4 -4
  275. package/chunks/{tool-search-XI3QWD5I.js → tool-search-UGYTBLUV.js} +17 -15
  276. package/chunks/{total-session-admission-3SNSJJ32.js → total-session-admission-JIHSTJ5S.js} +62 -55
  277. package/chunks/{trustedFolders-OVAQKNV5.js → trustedFolders-5VCBXFOP.js} +58 -51
  278. package/chunks/{update-relaunch-XV5O74E3.js → update-relaunch-4LF3APCV.js} +5 -5
  279. package/chunks/{updateCheck-CHUYWD6L.js → updateCheck-4T3WUE5F.js} +59 -52
  280. package/chunks/{useAutoAcceptIndicator-VKSVIXZC.js → useAutoAcceptIndicator-UMGB64Z6.js} +67 -60
  281. package/chunks/{validateNonInterActiveAuth-ZNUTD3E5.js → validateNonInterActiveAuth-GFJ72U2C.js} +107 -100
  282. package/chunks/{version-EK7VAGSI.js → version-EAAZN4T2.js} +1 -1
  283. package/chunks/{web-fetch-24KZO763.js → web-fetch-VRU3A2NI.js} +13 -11
  284. package/chunks/{web-search-CRNXKZ2X.js → web-search-NEGYQNDJ.js} +14 -10
  285. package/chunks/{web-shell-static-BFDESDD4.js → web-shell-static-CCN4JZEE.js} +1 -1
  286. package/chunks/workflow-UHPFALVZ.js +1224 -0
  287. package/chunks/{workspace-providers-status-MAM42IZS.js → workspace-providers-status-AEYISSU2.js} +68 -61
  288. package/chunks/{workspace-registration-store-HKLJEDQX.js → workspace-registration-store-A7RGKW62.js} +3 -1
  289. package/chunks/{workspace-registry-7RDDOBLN.js → workspace-registry-C2NGE6SD.js} +62 -55
  290. package/chunks/{workspace-runtime-coordinator-LEPDPXJO.js → workspace-runtime-coordinator-QKMZ24YF.js} +63 -56
  291. package/chunks/{workspace-service-5IFDCNN3.js → workspace-service-RQTTAGGC.js} +70 -63
  292. package/chunks/{workspace-skills-status-FJ3HNH4H.js → workspace-skills-status-5HWZU3HX.js} +65 -58
  293. package/chunks/{workspace-trust-reconciler-PQFHIWLR.js → workspace-trust-reconciler-KFWATZUU.js} +69 -62
  294. package/chunks/{write-file-ERG67ZFX.js → write-file-DPVB2SBQ.js} +44 -38
  295. package/chunks/{zh-VBFCRQBL.js → zh-S5V3Z5CR.js} +1 -0
  296. package/chunks/{zh-TW-N2TBF2F2.js → zh-TW-2K2WRFPY.js} +1 -0
  297. package/chunks/{zoom-image-WQYEC3SR.js → zoom-image-S7AWLAPC.js} +12 -10
  298. package/cli.js +13 -13
  299. package/export-transcript-document.css +1 -0
  300. package/export-transcript-document.js +164 -165
  301. package/locales/en.js +1 -0
  302. package/locales/zh-TW.js +1 -0
  303. package/locales/zh.js +1 -0
  304. package/package.json +5 -4
  305. package/web-shell/assets/{abnfDiagram-VCTEODGH-BRLgQbnT.js → abnfDiagram-VCTEODGH-nU24rpIE.js} +1 -1
  306. package/web-shell/assets/{arc-qAF9_XsR.js → arc-D1hTu8QI.js} +1 -1
  307. package/web-shell/assets/{architectureDiagram-5GKGNRK7-BorUttEz.js → architectureDiagram-5GKGNRK7-B_fgkKe7.js} +1 -1
  308. package/web-shell/assets/{blockDiagram-NRAW4CY4-Bj0qZVxu.js → blockDiagram-NRAW4CY4-C3pddUNg.js} +1 -1
  309. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BTqJis32.js → c4Diagram-UCG6FXSJ-kEFoC1ei.js} +1 -1
  310. package/web-shell/assets/channel-Blod4z1X.js +1 -0
  311. package/web-shell/assets/{chunk-2Q5K7J3B-RrQ5X8m-.js → chunk-2Q5K7J3B-DbT9wS7j.js} +1 -1
  312. package/web-shell/assets/{chunk-5VM5RSS4-uUjDl8wO.js → chunk-5VM5RSS4-CNbULt6O.js} +1 -1
  313. package/web-shell/assets/{chunk-F27PBJKO-C3JhpyzI.js → chunk-F27PBJKO-CbQRy4Tb.js} +1 -1
  314. package/web-shell/assets/{chunk-G27WJ6UU-C8ZNFs7F.js → chunk-G27WJ6UU-CVbXTxYk.js} +1 -1
  315. package/web-shell/assets/{chunk-JWPE2WC7-DNpXtEOs.js → chunk-JWPE2WC7-D89c_BXy.js} +1 -1
  316. package/web-shell/assets/{chunk-LCL6LL3I-DagA2ZLw.js → chunk-LCL6LL3I-B7-I_9KB.js} +1 -1
  317. package/web-shell/assets/{chunk-POPQ4Y6H-R23uH7Xm.js → chunk-POPQ4Y6H-DcLQFzS4.js} +1 -1
  318. package/web-shell/assets/{chunk-SVP7TREG-Qz9RN_BR.js → chunk-SVP7TREG-DyBb2Axj.js} +1 -1
  319. package/web-shell/assets/{chunk-XXDRQBXY-jYb1_hni.js → chunk-XXDRQBXY-BIA0eb5B.js} +1 -1
  320. package/web-shell/assets/classDiagram-DTDB5LWJ-D6hFDMqb.js +1 -0
  321. package/web-shell/assets/classDiagram-v2-JRS7N3AN-D6hFDMqb.js +1 -0
  322. package/web-shell/assets/{cose-bilkent-JH36ORCC-Cv2OunpE.js → cose-bilkent-JH36ORCC-Db2FYN85.js} +1 -1
  323. package/web-shell/assets/{cynefin-OW5HDTMX-LH42KFJx.js → cynefin-OW5HDTMX-i4GwmBVy.js} +1 -1
  324. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-Dha4_OoR.js → cynefinDiagram-5FMLGOSQ-LENf_IUy.js} +1 -1
  325. package/web-shell/assets/{dagre-3AP2YEHR-Br5lnUKD.js → dagre-3AP2YEHR-CF9XVrD9.js} +1 -1
  326. package/web-shell/assets/{diagram-S7CK7UJ4-dpKq2bBX.js → diagram-S7CK7UJ4-DD5PJfSm.js} +1 -1
  327. package/web-shell/assets/{diagram-UQ7AKVKN-BAgHWpXr.js → diagram-UQ7AKVKN-CjD_sBMj.js} +1 -1
  328. package/web-shell/assets/{diagram-VSXAHHWV-GRRzpyE2.js → diagram-VSXAHHWV-U5WwMqyA.js} +1 -1
  329. package/web-shell/assets/{diagram-VX7I27RA-BNFiaYpG.js → diagram-VX7I27RA-BujpHJJf.js} +1 -1
  330. package/web-shell/assets/{diagram-Z3DM3KII-BisZzB_h.js → diagram-Z3DM3KII-3ZLtKEXo.js} +1 -1
  331. package/web-shell/assets/{ebnfDiagram-PWID7BFC-B1xbwycf.js → ebnfDiagram-PWID7BFC-BGpiquRm.js} +1 -1
  332. package/web-shell/assets/{erDiagram-SSCWMZ5O-CQMzbGE5.js → erDiagram-SSCWMZ5O-D0besu_U.js} +1 -1
  333. package/web-shell/assets/{flowDiagram-A5DVABFB-CZ_Zondl.js → flowDiagram-A5DVABFB-9DwDuIyr.js} +1 -1
  334. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BTh2ShxS.js → ganttDiagram-EL5Y4UJY-CNlsAeNr.js} +1 -1
  335. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-oHOB-Uxt.js → gitGraphDiagram-WWUBYQGX-C_pPFiTR.js} +1 -1
  336. package/web-shell/assets/{index-DWoFMu5x.js → index-BYWs4JWq.js} +1 -1
  337. package/web-shell/assets/index-D3YS6KuJ.js +2173 -0
  338. package/web-shell/assets/index-eBxK3rs2.css +36 -0
  339. package/web-shell/assets/{infoDiagram-RXCK75RN-C0QpudbG.js → infoDiagram-RXCK75RN-Bpai64Ll.js} +1 -1
  340. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-a6B741uT.js → ishikawaDiagram-5VMMS53U-ktpJFq4r.js} +1 -1
  341. package/web-shell/assets/{journeyDiagram-EYS64GPL-Dbht9ICp.js → journeyDiagram-EYS64GPL-iz_DKgFX.js} +1 -1
  342. package/web-shell/assets/{kanban-definition-3QL26DDD-D4OFR8-h.js → kanban-definition-3QL26DDD-m_gG00Yt.js} +1 -1
  343. package/web-shell/assets/{layout-Dvdh5jRH.js → layout-qEvKgnvU.js} +1 -1
  344. package/web-shell/assets/{linear-Dvc6KIW2.js → linear-C6lklGdq.js} +1 -1
  345. package/web-shell/assets/{mermaid.core-CB36RfIb.js → mermaid.core-DSCYB_2P.js} +6 -6
  346. package/web-shell/assets/{mindmap-definition-FBJOCRG2-Fmqo1CjP.js → mindmap-definition-FBJOCRG2-DRQbT8w-.js} +1 -1
  347. package/web-shell/assets/{pegDiagram-XKGWAZYB-CCxYBoA4.js → pegDiagram-XKGWAZYB-BhD0q0i6.js} +1 -1
  348. package/web-shell/assets/{pieDiagram-E7YTZNPT-BVHKQFzt.js → pieDiagram-E7YTZNPT-BvIGQCSd.js} +1 -1
  349. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-l95IznwR.js → quadrantDiagram-AXDQQJYC-BDQtfpU-.js} +1 -1
  350. package/web-shell/assets/{railroadDiagram-O6MQD6OU-BlLdRdXp.js → railroadDiagram-O6MQD6OU-E1g2KIFK.js} +1 -1
  351. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BkDLBR5w.js → requirementDiagram-EFPCY7ZU-CuerYJOe.js} +1 -1
  352. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-jAIqRp65.js → sankeyDiagram-P5KCCOFB-CqWyCZGA.js} +1 -1
  353. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-f-soZYPr.js → sequenceDiagram-WJ2MYXX4-B-YWb8x4.js} +1 -1
  354. package/web-shell/assets/{sizeCapture-X5ZJPWSS-BzOuAfB2.js → sizeCapture-X5ZJPWSS-BB7YY4Tl.js} +1 -1
  355. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BPLSs12r.js → stateDiagram-HBIQ2CUA-C8LDpNHS.js} +1 -1
  356. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C4CbdvGa.js +1 -0
  357. package/web-shell/assets/{swimlanes-XN3QIQJK-D-9E_RIR.js → swimlanes-XN3QIQJK-D94vOoxZ.js} +1 -1
  358. package/web-shell/assets/swimlanesDiagram-VK2B7HYN--QNSIOC8.js +8 -0
  359. package/web-shell/assets/{timeline-definition-24CTP7MA-CT56K-gV.js → timeline-definition-24CTP7MA-C9C8uEYm.js} +1 -1
  360. package/web-shell/assets/{vennDiagram-4TSXK5OY-B-vi4IyO.js → vennDiagram-4TSXK5OY-CYzMHbVW.js} +1 -1
  361. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9O7Ju98.js → wardleyDiagram-VM6X3IG4-G9nhtLES.js} +1 -1
  362. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-6d8w3jg2.js → xychartDiagram-S5SC5T6Z-ruD2Wjhg.js} +1 -1
  363. package/web-shell/index.html +29 -5
  364. package/chunks/chunk-V7RNNPGC.js +0 -44
  365. package/chunks/workflow-HD5NYMW5.js +0 -2907
  366. package/web-shell/assets/channel-COIuCrVH.js +0 -1
  367. package/web-shell/assets/classDiagram-DTDB5LWJ-DoX6OYqu.js +0 -1
  368. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DoX6OYqu.js +0 -1
  369. package/web-shell/assets/index-CI1ysIEv.js +0 -2154
  370. package/web-shell/assets/index-CpxXGH-8.css +0 -36
  371. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-IRul-LaT.js +0 -1
  372. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6lgKepA.js +0 -8
  373. /package/chunks/{chunk-JA5CBKRP.js → chunk-7NXSVSFB.js} +0 -0
@@ -20,7 +20,7 @@ import {
20
20
  import {
21
21
  channelFactoryForwardsChildEnv,
22
22
  defaultSpawnChannelFactory
23
- } from "./chunk-KA5HR3G2.js";
23
+ } from "./chunk-IUVIBDKU.js";
24
24
  import {
25
25
  BridgeChannelClosedError,
26
26
  BridgeTimeoutError,
@@ -30,7 +30,7 @@ import {
30
30
  SessionRestoreTimeoutError,
31
31
  createIdleWorkspaceExtensionsStatus,
32
32
  createIdleWorkspaceHooksStatus
33
- } from "./chunk-FETY36NQ.js";
33
+ } from "./chunk-HGEUHUEV.js";
34
34
  import {
35
35
  ACTIVE_WORK_CLOSE_IF_UNHELD_PARAM,
36
36
  ACTIVE_WORK_CLOSE_TIMEOUT_MS,
@@ -101,10 +101,6 @@ import {
101
101
  WorkspaceMismatchError,
102
102
  isNotCurrentlyGeneratingCancelError
103
103
  } from "./chunk-FAWTMDX7.js";
104
- import {
105
- canonicalizeWorkspace,
106
- translateAndCheckAbsoluteWorkspacePath
107
- } from "./chunk-6PLDPT2C.js";
108
104
  import {
109
105
  CHANNEL_DELIVERY_ERROR_CODES,
110
106
  LIVE_TASK_TOOL_NAMES,
@@ -121,7 +117,11 @@ import {
121
117
  ClientSideConnection,
122
118
  PROTOCOL_VERSION,
123
119
  RequestError
124
- } from "./chunk-IW6RQPQB.js";
120
+ } from "./chunk-IJOS26LH.js";
121
+ import {
122
+ canonicalizeWorkspace,
123
+ translateAndCheckAbsoluteWorkspacePath
124
+ } from "./chunk-6PLDPT2C.js";
125
125
  import {
126
126
  PRIVATE_CONVERSATIONS_RUNTIME_ENABLE,
127
127
  PRIVATE_CONVERSATIONS_RUNTIME_ENV
@@ -136,7 +136,7 @@ import {
136
136
  isOfficeDocumentExtension,
137
137
  isRecordableDerivedChild,
138
138
  pathHasSkippedDirectoryComponent
139
- } from "./chunk-OWCFKIFQ.js";
139
+ } from "./chunk-ZKYR7QS4.js";
140
140
  import {
141
141
  SESSION_PR_LIST_LIMIT,
142
142
  SESSION_PR_URL_MAX_LENGTH,
@@ -148,7 +148,7 @@ import {
148
148
  canonicalSessionPrUrl,
149
149
  normalizeTurnResultError,
150
150
  toSessionPrInfo
151
- } from "./chunk-HJ5UJQQL.js";
151
+ } from "./chunk-N7VWZDWW.js";
152
152
  import {
153
153
  isUnverifiableIdentityError,
154
154
  openNoFollow
@@ -165,14 +165,18 @@ import {
165
165
  metadataBudgetBytes,
166
166
  normalizeSnapshotPayload,
167
167
  stableSessionArtifactId
168
- } from "./chunk-GSFV5RQW.js";
168
+ } from "./chunk-E4UEO3XM.js";
169
+ import {
170
+ SessionSourceError,
171
+ validateSessionSourceInput
172
+ } from "./chunk-ELRMZTPF.js";
169
173
  import {
170
174
  APPROVAL_MODES
171
175
  } from "./chunk-JX6XHPTX.js";
172
176
  import {
173
177
  DAEMON_TRACEPARENT_META_KEY,
174
178
  DAEMON_TRACESTATE_META_KEY
175
- } from "./chunk-7OCIQNKX.js";
179
+ } from "./chunk-ZW2EUO2A.js";
176
180
  import {
177
181
  INVOCATION_CONTEXT_META_KEY,
178
182
  PRIVATE_ACP_CAPABILITY_ENV,
@@ -4239,6 +4243,19 @@ var BridgeClient = class {
4239
4243
  if (typeof notificationSessionId === "string" && this.abandonedRestoreIds.has(notificationSessionId)) {
4240
4244
  return;
4241
4245
  }
4246
+ if (method === "qwen/notify/session/sources-changed") {
4247
+ const sessionId2 = params["sessionId"];
4248
+ const revision = params["revision"];
4249
+ if (typeof sessionId2 !== "string" || typeof revision !== "number" || !Number.isSafeInteger(revision) || revision < 0 || !this.ownsSession(sessionId2))
4250
+ return;
4251
+ const entry = this.resolveEntry(sessionId2);
4252
+ if (!entry) return;
4253
+ entry.events.publish({
4254
+ type: "source_changed",
4255
+ data: { sessionId: sessionId2, revision }
4256
+ });
4257
+ return;
4258
+ }
4242
4259
  if (method === ACTIVE_WORK_NOTIFICATION_METHOD) {
4243
4260
  const snapshot = parseActiveWorkSnapshot(params);
4244
4261
  if (snapshot) {
@@ -8527,6 +8544,7 @@ var REFRESH_APPEND_BOOKKEEPING_EVENT_TYPES = /* @__PURE__ */ new Set([
8527
8544
  "session_metadata_updated",
8528
8545
  "session_cwd_changed",
8529
8546
  "artifact_changed",
8547
+ "source_changed",
8530
8548
  "settings_changed",
8531
8549
  "extensions_changed",
8532
8550
  "mcp_server_changed",
@@ -11428,6 +11446,16 @@ function createAcpSessionBridge(opts) {
11428
11446
  ]);
11429
11447
  return response;
11430
11448
  }, "requestSessionStatus");
11449
+ const requestSessionSources = /* @__PURE__ */ __name(async (sessionId, method, params = {}) => {
11450
+ const result = await requestSessionStatus(sessionId, method, params);
11451
+ if (result.sourceError) {
11452
+ throw new SessionSourceError(
11453
+ result.sourceError.code,
11454
+ result.sourceError.message
11455
+ );
11456
+ }
11457
+ return result;
11458
+ }, "requestSessionSources");
11431
11459
  const notifyAgentSessionClose = /* @__PURE__ */ __name(async (entry, ci, label, opts2) => {
11432
11460
  if (!ci || ci.channel !== entry.channel) {
11433
11461
  if (opts2?.throwOnFailure === true) {
@@ -12046,6 +12074,9 @@ function createAcpSessionBridge(opts) {
12046
12074
  }
12047
12075
  __name(requestSessionTurnIndexPage, "requestSessionTurnIndexPage");
12048
12076
  async function refreshedReplayFieldsFor(entry, historyPageSize, liveReplayMode) {
12077
+ if (entry.pendingInteractions.size > 0) {
12078
+ return replayFieldsFor(entry, "load", liveReplayMode);
12079
+ }
12049
12080
  for (let attempt = 0; attempt < 2; attempt++) {
12050
12081
  try {
12051
12082
  const lastEventId = entry.events.lastEventId;
@@ -12092,6 +12123,7 @@ function createAcpSessionBridge(opts) {
12092
12123
  ...page.hasMore ? { historyHasMore: true } : {}
12093
12124
  };
12094
12125
  }
12126
+ if (entry.pendingInteractions.size > 0) break;
12095
12127
  } catch {
12096
12128
  break;
12097
12129
  }
@@ -14487,6 +14519,28 @@ function createAcpSessionBridge(opts) {
14487
14519
  );
14488
14520
  }
14489
14521
  markSessionCatalogChanged();
14522
+ const sourceWarnings = [];
14523
+ const copySources = /* @__PURE__ */ __name(async (attachments) => {
14524
+ try {
14525
+ const attachmentIds = attachments ? (await attachments.list()).map((item) => item.attachmentId) : [];
14526
+ const copied = await Promise.race([
14527
+ entry.connection.extMethod("qwen/session/sources/copy", {
14528
+ sessionId,
14529
+ targetSessionId: result.newSessionId,
14530
+ targetCwd: boundWorkspace,
14531
+ attachmentIds
14532
+ }),
14533
+ getTransportClosedReject(entry)
14534
+ ]);
14535
+ if (copied.sourceError) {
14536
+ sourceWarnings.push("Session sources could not be copied.");
14537
+ } else {
14538
+ sourceWarnings.push(...copied.warnings ?? []);
14539
+ }
14540
+ } catch {
14541
+ sourceWarnings.push("Session sources could not be copied.");
14542
+ }
14543
+ }, "copySources");
14490
14544
  if (opts.sessionAttachmentsRoot) {
14491
14545
  const branchAttachments = new SessionAttachmentStore(
14492
14546
  opts.sessionAttachmentsRoot,
@@ -14500,13 +14554,17 @@ function createAcpSessionBridge(opts) {
14500
14554
  `qwen serve: failed to copy attachments for branched session ${result.newSessionId}: ${error instanceof Error ? error.message : String(error)}`
14501
14555
  );
14502
14556
  } finally {
14557
+ await copySources(branchAttachments);
14503
14558
  await branchAttachments.close();
14504
14559
  }
14560
+ } else if (!restoreBranch) {
14561
+ await copySources();
14505
14562
  }
14506
14563
  const rawBranchName = result.displayName ?? result.title;
14507
14564
  const branchDisplayName = typeof rawBranchName === "string" ? rawBranchName : result.newSessionId.slice(0, 8);
14508
14565
  if (!restoreBranch) {
14509
14566
  return {
14567
+ ...sourceWarnings.length > 0 ? { sourceWarnings } : {},
14510
14568
  sessionId: result.newSessionId,
14511
14569
  displayName: branchDisplayName,
14512
14570
  forkedFrom: {
@@ -14585,6 +14643,9 @@ function createAcpSessionBridge(opts) {
14585
14643
  );
14586
14644
  }
14587
14645
  }
14646
+ if (!opts.sessionAttachmentsRoot) {
14647
+ await copySources(newEntry?.attachments);
14648
+ }
14588
14649
  if (newEntry) newEntry.displayName = branchDisplayName;
14589
14650
  let sourcePersisted;
14590
14651
  if (newEntry?.sourceType) {
@@ -14611,6 +14672,7 @@ function createAcpSessionBridge(opts) {
14611
14672
  }
14612
14673
  return {
14613
14674
  ...restored,
14675
+ ...sourceWarnings.length > 0 ? { sourceWarnings } : {},
14614
14676
  displayName: branchDisplayName,
14615
14677
  forkedFrom: {
14616
14678
  sessionId,
@@ -15076,6 +15138,69 @@ function createAcpSessionBridge(opts) {
15076
15138
  } catch {
15077
15139
  }
15078
15140
  },
15141
+ async getSessionSources(sessionId, context) {
15142
+ const entry = byId.get(sessionId);
15143
+ if (!entry) throw new SessionNotFoundError(sessionId);
15144
+ if (isReservedStandaloneSessionSourceType(entry.sourceType) && entry.managedConversationBinding?.released !== true) {
15145
+ throw standaloneWorkingDirectoryMissingError();
15146
+ }
15147
+ resolveTrustedClientId(entry, context?.clientId);
15148
+ return requestSessionSources(sessionId, "qwen/session/sources/list");
15149
+ },
15150
+ async upsertSessionSource(sessionId, input, context) {
15151
+ const entry = byId.get(sessionId);
15152
+ if (!entry) throw new SessionNotFoundError(sessionId);
15153
+ if (isReservedStandaloneSessionSourceType(entry.sourceType) && entry.managedConversationBinding?.released !== true) {
15154
+ throw standaloneWorkingDirectoryMissingError();
15155
+ }
15156
+ const clientId = resolveTrustedClientId(entry, context.clientId);
15157
+ if (!clientId) {
15158
+ throw new RequestError(
15159
+ -32602,
15160
+ "A session-bound client id is required",
15161
+ {
15162
+ errorKind: "client_id_required"
15163
+ }
15164
+ );
15165
+ }
15166
+ const validated = validateSessionSourceInput(input);
15167
+ if (validated.locator.type === "attachment") {
15168
+ const attachmentId = validated.locator.attachmentId;
15169
+ const attachments = await entry.attachments.list();
15170
+ if (byId.get(sessionId) !== entry) {
15171
+ throw new SessionNotFoundError(sessionId);
15172
+ }
15173
+ resolveTrustedClientId(entry, context.clientId);
15174
+ if (!attachments.some((item) => item.attachmentId === attachmentId)) {
15175
+ throw new RequestError(-32602, "Session attachment not found", {
15176
+ errorKind: "source_attachment_not_found"
15177
+ });
15178
+ }
15179
+ }
15180
+ return requestSessionSources(sessionId, "qwen/session/sources/upsert", {
15181
+ input: validated
15182
+ });
15183
+ },
15184
+ async removeSessionSource(sessionId, sourceId, context) {
15185
+ const entry = byId.get(sessionId);
15186
+ if (!entry) throw new SessionNotFoundError(sessionId);
15187
+ if (isReservedStandaloneSessionSourceType(entry.sourceType) && entry.managedConversationBinding?.released !== true) {
15188
+ throw standaloneWorkingDirectoryMissingError();
15189
+ }
15190
+ const clientId = resolveTrustedClientId(entry, context.clientId);
15191
+ if (!clientId) {
15192
+ throw new RequestError(
15193
+ -32602,
15194
+ "A session-bound client id is required",
15195
+ {
15196
+ errorKind: "client_id_required"
15197
+ }
15198
+ );
15199
+ }
15200
+ return requestSessionSources(sessionId, "qwen/session/sources/remove", {
15201
+ sourceId
15202
+ });
15203
+ },
15079
15204
  async getSessionArtifacts(sessionId, context) {
15080
15205
  const entry = byId.get(sessionId);
15081
15206
  if (!entry) throw new SessionNotFoundError(sessionId);
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  preloadRuntimeFetchModule
5
- } from "./chunk-4HOEU2OR.js";
5
+ } from "./chunk-EWJTAP3Y.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -19,6 +19,7 @@ init_esbuild_shims();
19
19
  function getDefaultApiKeyEnvVar(authType) {
20
20
  switch (authType) {
21
21
  case "openai":
22
+ case "openai-responses":
22
23
  return "OPENAI_API_KEY";
23
24
  case "anthropic":
24
25
  return "ANTHROPIC_API_KEY";
@@ -34,6 +35,7 @@ __name(getDefaultApiKeyEnvVar, "getDefaultApiKeyEnvVar");
34
35
  function getDefaultModelEnvVar(authType) {
35
36
  switch (authType) {
36
37
  case "openai":
38
+ case "openai-responses":
37
39
  return "OPENAI_MODEL";
38
40
  case "anthropic":
39
41
  return "ANTHROPIC_MODEL";
@@ -176,6 +178,11 @@ var AUTH_ENV_MAPPINGS = {
176
178
  baseUrl: ["OPENAI_BASE_URL"],
177
179
  model: ["OPENAI_MODEL", "QWEN_MODEL"]
178
180
  },
181
+ "openai-responses": {
182
+ apiKey: ["OPENAI_API_KEY"],
183
+ baseUrl: ["OPENAI_BASE_URL"],
184
+ model: ["OPENAI_MODEL"]
185
+ },
179
186
  anthropic: {
180
187
  apiKey: ["ANTHROPIC_API_KEY"],
181
188
  baseUrl: ["ANTHROPIC_BASE_URL"],
@@ -411,18 +418,23 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
411
418
  try {
412
419
  if (authType === "openai" /* USE_OPENAI */) {
413
420
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
414
- const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-A6MAMEO5.js");
421
+ const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-BE4S5TRD.js");
415
422
  return createOpenAIContentGenerator(generatorConfig, config);
416
423
  }, "loadBaseGenerator");
424
+ } else if (authType === "openai-responses" /* USE_OPENAI_RESPONSES */) {
425
+ loadBaseGenerator = /* @__PURE__ */ __name(async () => {
426
+ const { createOpenAIResponsesContentGenerator } = await import("./openaiResponsesContentGenerator-RTCAJ5V5.js");
427
+ return createOpenAIResponsesContentGenerator(generatorConfig, config);
428
+ }, "loadBaseGenerator");
417
429
  } else if (authType === "qwen-oauth" /* QWEN_OAUTH */) {
418
- const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-KX6LVYQ3.js");
430
+ const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-3ZRQHHTC.js");
419
431
  try {
420
432
  const qwenClient = await getQwenOauthClient(
421
433
  config,
422
434
  isInitialAuth ? { requireCachedCredentials: true } : void 0
423
435
  );
424
436
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
425
- const { QwenContentGenerator } = await import("./qwenContentGenerator-4IOJFD4S.js");
437
+ const { QwenContentGenerator } = await import("./qwenContentGenerator-TMQC623Z.js");
426
438
  return new QwenContentGenerator(qwenClient, generatorConfig, config);
427
439
  }, "loadBaseGenerator");
428
440
  } catch (error) {
@@ -433,12 +445,12 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
433
445
  }
434
446
  } else if (authType === "anthropic" /* USE_ANTHROPIC */) {
435
447
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
436
- const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-PRJWWVYJ.js");
448
+ const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-JSKMKS6V.js");
437
449
  return createAnthropicContentGenerator(generatorConfig, config);
438
450
  }, "loadBaseGenerator");
439
451
  } else if (authType === "gemini" /* USE_GEMINI */ || authType === "vertex-ai" /* USE_VERTEX_AI */) {
440
452
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
441
- const { createLlmContentGenerator } = await import("./llm-content-generator-GR3FOHLB.js");
453
+ const { createLlmContentGenerator } = await import("./llm-content-generator-ZHQQT5W7.js");
442
454
  return createLlmContentGenerator(generatorConfig, config);
443
455
  }, "loadBaseGenerator");
444
456
  } else {
@@ -453,7 +465,7 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
453
465
  try {
454
466
  const [baseGenerator, { LoggingContentGenerator }] = await Promise.all([
455
467
  loadBaseGenerator(),
456
- import("./loggingContentGenerator-P4K6K5W4.js")
468
+ import("./loggingContentGenerator-V72OCCJO.js")
457
469
  ]);
458
470
  return new LoggingContentGenerator(
459
471
  baseGenerator,
@@ -3,12 +3,12 @@
3
3
  import {
4
4
  ok
5
5
  } from "./chunk-VFFQAOPR.js";
6
- import {
7
- formatHistoryGapNotice
8
- } from "./chunk-ERXNTINK.js";
9
6
  import {
10
7
  sanitizeTerminalText
11
8
  } from "./chunk-47ECGEJC.js";
9
+ import {
10
+ formatHistoryGapNotice
11
+ } from "./chunk-6JACAGYH.js";
12
12
  import {
13
13
  loadUndici
14
14
  } from "./chunk-TXASDT2M.js";
@@ -18,14 +18,14 @@ import {
18
18
  finalizeOfflineDaemonTranscriptState,
19
19
  normalizeDaemonEvent,
20
20
  reduceDaemonTranscriptEvents
21
- } from "./chunk-7PD7ZMX5.js";
21
+ } from "./chunk-FCQJLMA2.js";
22
22
  import {
23
23
  LOAD_REPLAY_META_KEY
24
24
  } from "./chunk-PSPAM24S.js";
25
25
  import {
26
26
  isGoalCheckpointBookkeepingRecord,
27
27
  projectGoalStateToLegacy
28
- } from "./chunk-GOEVQADN.js";
28
+ } from "./chunk-BZM5U74J.js";
29
29
  import {
30
30
  GOAL_PAUSE_REASON_COMMAND,
31
31
  observeToolResultBoundary,
@@ -33,21 +33,21 @@ import {
33
33
  parseGoalStateCause,
34
34
  parseGoalStateRecordPayloadV2,
35
35
  toolResultBoundaryArtifact
36
- } from "./chunk-HJ5UJQQL.js";
36
+ } from "./chunk-N7VWZDWW.js";
37
37
  import {
38
38
  TranscriptRecordPreparationError,
39
39
  prepareTranscriptRecords,
40
40
  projectUserTranscriptForDisplay,
41
41
  stripGeneratedAttachmentTokens
42
- } from "./chunk-GSFV5RQW.js";
42
+ } from "./chunk-E4UEO3XM.js";
43
43
  import {
44
44
  formatVisionBridgeNoticeDisplay,
45
45
  isVisionBridgeNoticeDisplay
46
- } from "./chunk-F2NYVASI.js";
46
+ } from "./chunk-HBU7EKY4.js";
47
47
  import {
48
48
  SchemaValidator,
49
49
  ToolNames
50
- } from "./chunk-MWIO7MF6.js";
50
+ } from "./chunk-TP6FYVQT.js";
51
51
  import {
52
52
  createDebugLogger
53
53
  } from "./chunk-ZAFYHRVY.js";
@@ -2840,7 +2840,7 @@ async function collectSessionMetadata(conversation, config) {
2840
2840
  const gitBranch = firstRecord?.gitBranch;
2841
2841
  let gitRepo;
2842
2842
  if (cwd) {
2843
- const { getGitRepoName } = await import("./deferred-core-runtime-Q7WFWYD3.js");
2843
+ const { getGitRepoName } = await import("./deferred-core-runtime-JK5IXL5K.js");
2844
2844
  gitRepo = getGitRepoName(cwd);
2845
2845
  }
2846
2846
  let model;
@@ -3585,6 +3585,31 @@ var DOCUMENT_HTML_TEMPLATE = `<!doctype html>
3585
3585
  <style nonce="__EXPORT_NONCE__">
3586
3586
  :root{color-scheme:light;--document-bg: #ffffff;--document-panel-bg: #f8fafc;--document-text: #111827;--document-muted: #6b7280;--document-border: #d1d5db;--document-button-bg: #ffffff}:root.dark{color-scheme:dark;--document-bg: #09090b;--document-panel-bg: #18181b;--document-text: #f4f4f5;--document-muted: #a1a1aa;--document-border: #3f3f46;--document-button-bg: #27272a}html,body{margin:0;min-height:100%;background:var(--document-bg);color:var(--document-text)}.document-shell{min-height:100vh}.document-header{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:24px;width:min(1320px,100%);margin:0 auto;padding:24px 20px 8px;font-family:ui-sans-serif,system-ui,sans-serif}.document-header h1{margin:0;font-size:20px}.document-header p{margin:6px 0 0;color:var(--document-muted);font-size:12px}.document-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-left:auto}.document-actions button{border:1px solid var(--document-border);border-radius:8px;padding:6px 10px;background:var(--document-button-bg);color:var(--document-text);font:inherit;font-size:12px;cursor:pointer}.document-actions button:disabled{cursor:default;opacity:.45}.document-content{box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;width:min(1320px,100%);margin:0 auto;padding:0 20px 24px}.document-transcript{min-width:0}.document-metadata{align-self:start;position:sticky;top:16px;display:flex;flex-direction:column;gap:18px;border:1px solid var(--document-border);border-radius:12px;padding:16px;background:var(--document-panel-bg);font-family:ui-sans-serif,system-ui,sans-serif}.document-metadata section,.document-metadata dl{display:flex;flex-direction:column;gap:8px;margin:0}.document-metadata h2{margin:0;border-bottom:1px solid var(--document-border);padding-bottom:5px;color:var(--document-muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.document-metadata-item{min-width:0}.document-metadata-item dt{color:var(--document-muted);font-size:10px}.document-metadata-item dd{margin:2px 0 0;overflow-wrap:anywhere;font-size:12px}.document-warning{border:1px solid #f59e0b;border-radius:999px;padding:4px 10px;color:#92400e;font-size:12px;white-space:nowrap}.document-error{box-sizing:border-box;width:min(640px,calc(100% - 40px));margin:80px auto;border:1px solid var(--document-border);border-radius:12px;padding:24px;font-family:ui-sans-serif,system-ui,sans-serif}.document-error h1{margin:0;font-size:20px}.document-error p{margin:8px 0 0;color:var(--document-muted)}@media (max-width: 800px){.document-header{align-items:flex-start;flex-wrap:wrap}.document-actions{width:100%;justify-content:flex-start;margin-left:0}.document-content{grid-template-columns:minmax(0,1fr)}.document-metadata{position:static;order:-1}}@media print{.document-header{position:static}.document-actions{display:none}.document-content{display:block}.document-metadata{position:static;margin-bottom:16px;break-inside:avoid}}
3587
3587
  </style>
3588
+ <!--
3589
+ Latches a stylesheet failure before the <link> is parsed: Chromium
3590
+ parser-blocks the body script on a pending stylesheet, so a CSS failure
3591
+ that settles first would otherwise reach no listener. Records only \u2014
3592
+ document.body does not exist yet here, so the body script acts on it.
3593
+ -->
3594
+ <script nonce="__EXPORT_NONCE__">
3595
+ window.addEventListener(
3596
+ 'error',
3597
+ function (event) {
3598
+ if (event.target && event.target.id === 'transcript-stylesheet') {
3599
+ window.__transcriptStyleFailed = true;
3600
+ }
3601
+ },
3602
+ true,
3603
+ );
3604
+ </script>
3605
+ <link
3606
+ rel="stylesheet"
3607
+ nonce="__EXPORT_NONCE__"
3608
+ id="transcript-stylesheet"
3609
+ integrity="sha384-g7RKMZU4g3HtouYdCanFE655GtLdj8Zv7W8LYicXINS24VZ03GQ/1aeLVPLIea8p"
3610
+ crossorigin="anonymous"
3611
+ href="https://unpkg.com/@qwen-code/qwen-code@0.23.3/export-transcript-document.css"
3612
+ />
3588
3613
  </head>
3589
3614
  <body>
3590
3615
  <div id="app"></div>
@@ -3601,7 +3626,7 @@ var DOCUMENT_HTML_TEMPLATE = `<!doctype html>
3601
3626
  var app = document.getElementById('app');
3602
3627
  app.setAttribute('role', 'alert');
3603
3628
  app.textContent =
3604
- 'Unable to load this chat export. This Qwen Code build may not have a published renderer yet; also check your network connection.';
3629
+ 'Unable to load this chat export. This Qwen Code build may not have a published renderer or stylesheet yet; also check your network connection.';
3605
3630
  };
3606
3631
  var createElement = document.createElement.bind(document);
3607
3632
  document.createElement = function (name, options) {
@@ -3616,7 +3641,9 @@ var DOCUMENT_HTML_TEMPLATE = `<!doctype html>
3616
3641
  function (event) {
3617
3642
  if (
3618
3643
  event.target === window ||
3619
- (event.target && event.target.id === 'transcript-renderer')
3644
+ (event.target &&
3645
+ (event.target.id === 'transcript-renderer' ||
3646
+ event.target.id === 'transcript-stylesheet'))
3620
3647
  ) {
3621
3648
  showLoadError();
3622
3649
  }
@@ -3624,19 +3651,25 @@ var DOCUMENT_HTML_TEMPLATE = `<!doctype html>
3624
3651
  true,
3625
3652
  );
3626
3653
  window.addEventListener('unhandledrejection', showLoadError);
3654
+ // A stylesheet failure that settles while the parser is still blocked on
3655
+ // the <link> is dispatched before the listener above exists, so the
3656
+ // <head> latch is the only record of it.
3657
+ if (window.__transcriptStyleFailed) {
3658
+ showLoadError();
3659
+ }
3627
3660
  })();
3628
3661
  </script>
3629
3662
  <script
3630
3663
  nonce="__EXPORT_NONCE__"
3631
3664
  id="transcript-renderer"
3632
- integrity="sha384-fw8bWYGocO+WEj1+/97lmsi1VF8i5Yl9aur4TezgkOGrCUi+9D8URaZP3/ADoEq6"
3665
+ integrity="sha384-pk3bIqWjOCQgUt6MiXxENFE6MhcSLz2FFtasqfbxp62hFgZzIn63Brtt+tmnPi15"
3633
3666
  crossorigin="anonymous"
3634
- src="https://unpkg.com/@qwen-code/qwen-code@0.23.2/export-transcript-document.js"
3667
+ src="https://unpkg.com/@qwen-code/qwen-code@0.23.3/export-transcript-document.js"
3635
3668
  ></script>
3636
3669
  </body>
3637
3670
  </html>
3638
3671
  `;
3639
- var EXPORT_TRANSCRIPT_RENDERER_VERSION = "0.23.2+d18574e03f32ce10";
3672
+ var EXPORT_TRANSCRIPT_RENDERER_VERSION = "0.23.3+4f7d302b60c335c5";
3640
3673
  var EXPORT_TRANSCRIPT_RENDERER_LIMITS = Object.freeze({
3641
3674
  maxBlocks: 1e3,
3642
3675
  maxEnvelopeBytes: 33554432
@@ -5613,6 +5646,28 @@ var export_transcript_document_v1_schema_default = {
5613
5646
  toolResultPreview: {
5614
5647
  oneOf: [
5615
5648
  { $ref: "#/$defs/todoPreview" },
5649
+ {
5650
+ type: "object",
5651
+ additionalProperties: false,
5652
+ required: ["kind", "text", "answers"],
5653
+ properties: {
5654
+ kind: { const: "question_answers" },
5655
+ text: { type: "string", maxLength: 409600 },
5656
+ answers: {
5657
+ type: "array",
5658
+ maxItems: 1e3,
5659
+ items: {
5660
+ type: "object",
5661
+ additionalProperties: false,
5662
+ required: ["question", "answer"],
5663
+ properties: {
5664
+ question: { type: "string", maxLength: 409600 },
5665
+ answer: { type: "string", maxLength: 409600 }
5666
+ }
5667
+ }
5668
+ }
5669
+ }
5670
+ },
5616
5671
  {
5617
5672
  type: "object",
5618
5673
  additionalProperties: false,
@@ -19643,6 +19698,16 @@ function sanitizeResultPreview(preview, budget, _diagnostics, ids) {
19643
19698
  if (preview.kind === "text") {
19644
19699
  return { kind: "text", text: budget.text(preview.text) };
19645
19700
  }
19701
+ if (preview.kind === "question_answers") {
19702
+ return {
19703
+ kind: "question_answers",
19704
+ text: budget.plainText(preview.text),
19705
+ answers: budget.array(preview.answers).map(({ question, answer }) => ({
19706
+ question: budget.plainText(question),
19707
+ answer: budget.plainText(answer)
19708
+ }))
19709
+ };
19710
+ }
19646
19711
  if (!preview.summary?.trim()) return void 0;
19647
19712
  const summary = budget.text(preview.summary);
19648
19713
  return summary.trim() ? { kind: "generic", summary } : { kind: "text", text: summary };
@@ -20355,7 +20420,7 @@ function assertResourceBudgets(value) {
20355
20420
  __name(assertResourceBudgets, "assertResourceBudgets");
20356
20421
  function isMarkdownExportText(key, parent, path3) {
20357
20422
  if (path3.at(-2) === "resultPreview") {
20358
- return key === "text" || key === "summary";
20423
+ return parent?.["kind"] !== "question_answers" && (key === "text" || key === "summary");
20359
20424
  }
20360
20425
  return key === "text" && ["user", "assistant", "thought", "status", "error"].includes(
20361
20426
  String(parent?.["kind"])
@@ -20399,6 +20464,7 @@ var VISIBLE_EXPORT_TEXT_FIELDS = /* @__PURE__ */ new Set([
20399
20464
  "command",
20400
20465
  "cwd",
20401
20466
  "question",
20467
+ "answer",
20402
20468
  "path",
20403
20469
  "oldText",
20404
20470
  "newText",