@qwen-code/qwen-code 0.21.0 → 0.21.1-nightly.20260731.702932cc7

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 (423) hide show
  1. package/bundled/qc-helper/docs/configuration/model-providers.md +2 -0
  2. package/bundled/qc-helper/docs/configuration/settings.md +39 -28
  3. package/bundled/qc-helper/docs/features/channels/_meta.ts +2 -0
  4. package/bundled/qc-helper/docs/features/channels/github.md +139 -0
  5. package/bundled/qc-helper/docs/features/channels/gitlab.md +171 -0
  6. package/bundled/qc-helper/docs/features/channels/overview.md +61 -6
  7. package/bundled/qc-helper/docs/features/code-review.md +21 -1
  8. package/bundled/qc-helper/docs/features/hooks.md +72 -15
  9. package/bundled/qc-helper/docs/features/mcp.md +9 -1
  10. package/bundled/qc-helper/docs/features/scheduled-tasks.md +3 -1
  11. package/bundled/qc-helper/docs/features/sub-agents.md +42 -8
  12. package/bundled/qc-helper/docs/qwen-serve.md +11 -7
  13. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +2 -2
  14. package/bundled/qc-helper/docs/support/troubleshooting.md +2 -1
  15. package/bundled/review/DESIGN.md +19 -0
  16. package/bundled/review/SKILL.md +120 -61
  17. package/chunks/MaxSizedBox-LAFHK4VO.js +88 -0
  18. package/chunks/{StandaloneSessionPicker-BIRMPLRD.js → StandaloneSessionPicker-EMNOBN3S.js} +71 -68
  19. package/chunks/{acp-startup-profiler-RV3IV562.js → acp-startup-profiler-2C4A5ZTJ.js} +2 -2
  20. package/chunks/{acpAgent-6J2U72PQ.js → acpAgent-ERFA6HWV.js} +1674 -591
  21. package/chunks/agent-PLKF6JK4.js +84 -0
  22. package/chunks/agent-headless-JAORDQ63.js +78 -0
  23. package/chunks/{anthropicContentGenerator-75BKLTSP.js → anthropicContentGenerator-OFHSZJBF.js} +79 -27
  24. package/chunks/{artifact-tool-Y5T7GG7F.js → artifact-tool-RDN2W7ND.js} +4 -4
  25. package/chunks/{askUserQuestion-2H6747FR.js → askUserQuestion-OZERWH5R.js} +4 -4
  26. package/chunks/bridge-NYOBVRIT.js +94 -0
  27. package/chunks/{build-RV63TIRH.js → build-GDBLPA24.js} +1 -1
  28. package/chunks/{ca-25EDXPFZ.js → ca-6W3SK7OQ.js} +6 -1
  29. package/chunks/channel-management-service-5S7YCWX5.js +418 -0
  30. package/chunks/channel-settings-store-NLOKYO23.js +91 -0
  31. package/chunks/{channel-worker-group-2ZD7TVAT.js → channel-worker-group-OVWGYMZS.js} +11 -6
  32. package/chunks/{channel-worker-manager-4OA4BCGB.js → channel-worker-manager-H55GKOQA.js} +11 -6
  33. package/chunks/{channel-worker-supervisor-V7KCFJTS.js → channel-worker-supervisor-CABBXYHK.js} +7 -5
  34. package/chunks/{chunk-RIBKPMRP.js → chunk-23F4XGWO.js} +19 -6
  35. package/chunks/{chunk-ACY3A37B.js → chunk-25VHI5T7.js} +23 -18
  36. package/chunks/{chunk-MZAXJAUM.js → chunk-26JK4RPD.js} +1 -1
  37. package/chunks/{chunk-6GMVPFB2.js → chunk-2IIJTXYF.js} +45 -16
  38. package/chunks/{chunk-BPJSQIJX.js → chunk-2J3OJGTL.js} +0 -2
  39. package/chunks/{chunk-2X55UKQE.js → chunk-2JZR3B4A.js} +3 -3
  40. package/chunks/{chunk-7JURR4JT.js → chunk-2OQUICDM.js} +167 -81
  41. package/chunks/{chunk-ZJHVAS7M.js → chunk-2YCYFWYZ.js} +4 -5
  42. package/chunks/{chunk-3QMGYBFN.js → chunk-3APUUXRF.js} +1 -80
  43. package/chunks/{chunk-MUP3T3AD.js → chunk-3I6DUGQD.js} +1 -35
  44. package/chunks/{chunk-JVPM2ULZ.js → chunk-3XZ5SSNR.js} +6 -6
  45. package/chunks/chunk-42VPM33K.js +319 -0
  46. package/chunks/{chunk-VAK25FTU.js → chunk-45IOTAUS.js} +1 -1
  47. package/chunks/chunk-45UYUCJ6.js +363 -0
  48. package/chunks/{chunk-JZA3JUDJ.js → chunk-4KP2F2TE.js} +1 -1
  49. package/chunks/{chunk-IO3IX5Q4.js → chunk-4YJQD2IO.js} +1 -1
  50. package/chunks/{chunk-JXJFVC6E.js → chunk-5G6XUGXO.js} +61 -14
  51. package/chunks/{chunk-ZOIFNCKL.js → chunk-5NNHICSA.js} +3 -23
  52. package/chunks/{chunk-A4UCTEB5.js → chunk-5WV5S2GT.js} +0 -1
  53. package/chunks/{chunk-RHLZR4E5.js → chunk-675H6PLP.js} +1 -1
  54. package/chunks/chunk-6FMJLI5M.js +1591 -0
  55. package/chunks/chunk-6MPDY6ZG.js +76 -0
  56. package/chunks/{chunk-PSOO6YXD.js → chunk-6NUWQ3R7.js} +9 -7
  57. package/chunks/{chunk-7MVVZO4N.js → chunk-6ZRWX46I.js} +4 -4
  58. package/chunks/{chunk-TPRQ7RZH.js → chunk-76E5Y3UZ.js} +3117 -993
  59. package/chunks/{chunk-UUUTRMI2.js → chunk-7ULQIS27.js} +1 -1
  60. package/chunks/{chunk-BKHWX6I2.js → chunk-A5BZ722X.js} +11 -3
  61. package/chunks/{chunk-TEHGS6UP.js → chunk-A5T5W7PR.js} +154 -16
  62. package/chunks/{chunk-VIA5XA4U.js → chunk-A5UODYG3.js} +4 -1
  63. package/chunks/{chunk-JLU636DO.js → chunk-ALMR3E6Q.js} +1 -0
  64. package/chunks/{chunk-EBJQ6AXW.js → chunk-ANDVK2JN.js} +358 -14
  65. package/chunks/{chunk-TOFQCPDC.js → chunk-AOHY3QJ3.js} +14 -8
  66. package/chunks/chunk-AQ37AY7B.js +93 -0
  67. package/chunks/{chunk-PJIZUQVC.js → chunk-AZQ3DT76.js} +2 -2
  68. package/chunks/{chunk-LKEJ26GS.js → chunk-B3TA3IF5.js} +16 -11
  69. package/chunks/{chunk-Q4M4MDQ4.js → chunk-B43QHWY6.js} +1 -1
  70. package/chunks/{chunk-UH3WSE5L.js → chunk-B4AJNNOL.js} +1 -6
  71. package/chunks/{chunk-K36B6G2O.js → chunk-B6FOGNGH.js} +5 -5
  72. package/chunks/{chunk-PWVFN2LF.js → chunk-BP2H5K25.js} +1 -1
  73. package/chunks/{chunk-LB6DUZ26.js → chunk-BTWSGZCT.js} +264 -185
  74. package/chunks/{chunk-ZNAUOR2I.js → chunk-BZBPT52P.js} +2 -2
  75. package/chunks/{chunk-L26JL52R.js → chunk-CBBP4BMC.js} +64 -67
  76. package/chunks/{chunk-ZD6UTE4A.js → chunk-CNTR4GR6.js} +1 -1
  77. package/chunks/{chunk-3SJ43L4W.js → chunk-CPZAH673.js} +6 -0
  78. package/chunks/{chunk-EPDRMGT4.js → chunk-D4HTUMGX.js} +4 -28
  79. package/chunks/{chunk-QAF7NMK7.js → chunk-D7CQTWRS.js} +1 -1
  80. package/chunks/{chunk-XVNQMZ2I.js → chunk-DGEIYUC3.js} +0 -1
  81. package/chunks/{chunk-BPZALHVR.js → chunk-DI35ZN7T.js} +1 -1
  82. package/chunks/{chunk-IKCX4CCL.js → chunk-DKPJUF5F.js} +118 -95
  83. package/chunks/{chunk-DLWL3Z7A.js → chunk-DSFHVTWD.js} +3 -3
  84. package/chunks/{chunk-FSITMZJH.js → chunk-DYRYLJ3O.js} +18 -9
  85. package/chunks/{chunk-NL7LTRLR.js → chunk-E2BHWIDT.js} +48 -72
  86. package/chunks/{chunk-UDX5OBWR.js → chunk-E2FN6SM7.js} +94 -4
  87. package/chunks/{chunk-USTWD7QV.js → chunk-E6CJ2SMM.js} +26 -16
  88. package/chunks/{chunk-KMQ33DO4.js → chunk-EDB7A72S.js} +4 -4
  89. package/chunks/{chunk-7ZCNENPP.js → chunk-FANRZEAJ.js} +1 -1
  90. package/chunks/{chunk-WBL3FJEU.js → chunk-FC4KQFCS.js} +1 -1
  91. package/chunks/{chunk-5NBDS5S6.js → chunk-FCYYAB4S.js} +162 -7
  92. package/chunks/{chunk-OKY7HXPG.js → chunk-FJ5WUMUQ.js} +2 -2
  93. package/chunks/{chunk-PHOF65IG.js → chunk-FRXG4ARO.js} +36273 -44436
  94. package/chunks/{chunk-FQK6JAFG.js → chunk-FS674JW4.js} +4 -4
  95. package/chunks/chunk-FYJ7W2PI.js +194 -0
  96. package/chunks/{chunk-BULDBTYC.js → chunk-G7XXKQYS.js} +3 -28
  97. package/chunks/{chunk-LS77BEZP.js → chunk-GLCZKT5V.js} +1 -5
  98. package/chunks/{chunk-VRYUBFMC.js → chunk-GRUAVQQR.js} +1 -1
  99. package/chunks/{chunk-MVSUYZDT.js → chunk-GWV7DI3S.js} +4 -4
  100. package/chunks/{chunk-A5L3JMUA.js → chunk-HC45LTEN.js} +18 -4
  101. package/chunks/{chunk-PC6JANNU.js → chunk-HKRVXYDN.js} +4 -4
  102. package/chunks/{chunk-GZXCZHCT.js → chunk-I3G5JWBV.js} +1 -1
  103. package/chunks/{chunk-4WIZGAH3.js → chunk-I5BT7ADR.js} +6 -58
  104. package/chunks/{chunk-GSN55ZRI.js → chunk-ID3O7PRB.js} +19 -7
  105. package/chunks/{chunk-L5UHQJTJ.js → chunk-IGTHU3T4.js} +1 -1
  106. package/chunks/{chunk-BIQWWWJN.js → chunk-IIUGIWWY.js} +1 -1
  107. package/chunks/{chunk-RWTEFFPU.js → chunk-JCJ7LKNA.js} +6140 -5616
  108. package/chunks/{chunk-S3TWXGKA.js → chunk-JE7KQ2UP.js} +4 -2
  109. package/chunks/{chunk-PWTZEM3C.js → chunk-JXVC2PL3.js} +3 -37
  110. package/chunks/chunk-JYBU6YUE.js +378 -0
  111. package/chunks/{chunk-RF3EXIHJ.js → chunk-K3PFMM5U.js} +49 -26
  112. package/chunks/{chunk-JCW2R7WC.js → chunk-K623ENWT.js} +3 -79
  113. package/chunks/{chunk-T2NCM2ET.js → chunk-K6KS3LTN.js} +2 -749
  114. package/chunks/chunk-KWHKHSIS.js +81 -0
  115. package/chunks/{chunk-DHHOYAPR.js → chunk-L2E5GFAG.js} +7 -7
  116. package/chunks/{chunk-2W3OOD4W.js → chunk-L55JWS76.js} +6 -3
  117. package/chunks/{chunk-E5TUC6CA.js → chunk-LHKCY7DY.js} +3 -3
  118. package/chunks/{chunk-NH6KE4JX.js → chunk-LOY7RWQG.js} +3 -3
  119. package/chunks/{chunk-U7M2DMGW.js → chunk-M4MSAE7U.js} +130 -5
  120. package/chunks/{chunk-IJTOWOD7.js → chunk-MB32MS4U.js} +92 -9
  121. package/chunks/{chunk-PR75REBZ.js → chunk-MM7TH7ZM.js} +12 -82
  122. package/chunks/{chunk-FODK6UMO.js → chunk-MPHPFVKK.js} +0 -2
  123. package/chunks/{chunk-M5JM7OSF.js → chunk-N4ACHWNH.js} +2 -3
  124. package/chunks/{chunk-JESCGQM3.js → chunk-NAVJD2PQ.js} +8 -7
  125. package/chunks/{chunk-J56UI34H.js → chunk-NBD76HUW.js} +4 -2
  126. package/chunks/{chunk-2SCDWPXI.js → chunk-NC4U4I3Y.js} +5 -5
  127. package/chunks/{chunk-H4SBPHSA.js → chunk-NNL7WPPK.js} +3 -3
  128. package/chunks/{chunk-YBL3QUDD.js → chunk-NQCXWP5D.js} +1 -1
  129. package/chunks/{chunk-CIKQ7KKO.js → chunk-NVFSGPIF.js} +954 -444
  130. package/chunks/{chunk-6OUGMXDC.js → chunk-NWNEANAT.js} +7 -7
  131. package/chunks/chunk-O6GEWCJA.js +21 -0
  132. package/chunks/chunk-OCPBI7J5.js +18 -0
  133. package/chunks/{chunk-KIM5GUMA.js → chunk-OE6F6ZWQ.js} +589 -220
  134. package/chunks/{chunk-SQCQ4KO2.js → chunk-P5DEY3NF.js} +380 -317
  135. package/chunks/{chunk-2JZBVYTU.js → chunk-Q3T5KA2V.js} +1 -8
  136. package/chunks/{chunk-MB4MZHMJ.js → chunk-QARJNL2V.js} +211 -522
  137. package/chunks/{chunk-YH6G52F2.js → chunk-QCXGC7QB.js} +4 -4
  138. package/chunks/chunk-QDK4F2N5.js +1252 -0
  139. package/chunks/{chunk-VDDGDZMA.js → chunk-QHWCP53L.js} +14 -7
  140. package/chunks/{chunk-VULLI6WQ.js → chunk-QIERF2GQ.js} +6 -6
  141. package/chunks/{chunk-TGILQ3YH.js → chunk-QQTJK5GB.js} +200 -77
  142. package/chunks/{chunk-H5FFA6TH.js → chunk-QTHQ6Z5X.js} +16 -3
  143. package/chunks/{chunk-5I2IWRSH.js → chunk-R2XWGR75.js} +2 -2
  144. package/chunks/{chunk-YPE6A4GC.js → chunk-RT7FNC2O.js} +2 -2
  145. package/chunks/{chunk-OFDOK3VM.js → chunk-RX7NJOPE.js} +8 -13
  146. package/chunks/{chunk-6AM5D4ME.js → chunk-S6LOFUVP.js} +0 -12
  147. package/chunks/{chunk-K4XWPEWB.js → chunk-SHN4KHDK.js} +4 -33
  148. package/chunks/{chunk-VYPFXUCB.js → chunk-SZ3KHTDR.js} +1 -1
  149. package/chunks/chunk-T26EAKDL.js +13 -0
  150. package/chunks/chunk-T3CHYWJZ.js +758 -0
  151. package/chunks/{chunk-FNQ6T3CV.js → chunk-TEGJSJDF.js} +10 -7
  152. package/chunks/{chunk-RZIX2G32.js → chunk-THPORXSI.js} +1 -1
  153. package/chunks/{chunk-OHNBB4XR.js → chunk-THVU3RNH.js} +1 -1
  154. package/chunks/{record-artifact-RQKFYO5B.js → chunk-TIRRPCFS.js} +22 -7
  155. package/chunks/{chunk-ETSW4KLJ.js → chunk-TUCOXPHJ.js} +2 -2
  156. package/chunks/{chunk-63P4EL5V.js → chunk-TZTAV5RH.js} +1 -1
  157. package/chunks/{chunk-LK7CHLVP.js → chunk-U4VTUMMK.js} +0 -60
  158. package/chunks/{chunk-3RN6GBKS.js → chunk-U5CODIJW.js} +1 -1
  159. package/chunks/chunk-UU2B5YG6.js +2196 -0
  160. package/chunks/{chunk-R5AFZNQW.js → chunk-VAVHTGU4.js} +15 -8
  161. package/chunks/{chunk-2NH6DYI4.js → chunk-VHPFWR2O.js} +12 -12
  162. package/chunks/{chunk-IKYJHJNF.js → chunk-VOMQ2P6B.js} +3 -3
  163. package/chunks/{chunk-ZFDTEDCF.js → chunk-VX22DUW2.js} +6 -6
  164. package/chunks/{chunk-HTR4WV6U.js → chunk-W4RQUHY3.js} +31 -1
  165. package/chunks/{chunk-M4FMGVY4.js → chunk-WQP7BKWA.js} +3 -3
  166. package/chunks/{chunk-LH2BYDQ5.js → chunk-X2E5TFJ5.js} +18 -12
  167. package/chunks/{chunk-COH43MRJ.js → chunk-XCGIMOLN.js} +27 -1
  168. package/chunks/{chunk-YX324OPW.js → chunk-XDS22O52.js} +1 -1
  169. package/chunks/chunk-XP4L6KS3.js +463 -0
  170. package/chunks/{chunk-6FGBXPWM.js → chunk-XQK4XXTN.js} +38 -44
  171. package/chunks/{chunk-55DJUCI2.js → chunk-XWYPFDB5.js} +53 -43
  172. package/chunks/{chunk-Y34KJKDC.js → chunk-Y7BVNVVW.js} +1 -1
  173. package/chunks/{chunk-IPUUTYMV.js → chunk-YDLJGZHL.js} +1 -1
  174. package/chunks/{chunk-HIJQF5B5.js → chunk-YGE3IXJP.js} +1 -1
  175. package/chunks/{chunk-LQIW3YFY.js → chunk-YJFPRUWX.js} +9 -7
  176. package/chunks/{chunk-J24WCGIN.js → chunk-YQIIG4NA.js} +4 -4
  177. package/chunks/{chunk-BJX6ZSUK.js → chunk-YUFIEIWC.js} +2 -2
  178. package/chunks/{chunk-NIBLUX3Y.js → chunk-Z3S5EMOW.js} +148 -21
  179. package/chunks/{chunk-WCXCRJYB.js → chunk-Z3YLHKB7.js} +1 -1
  180. package/chunks/chunk-Z4X5MTRT.js +133 -0
  181. package/chunks/{chunk-UW5EOVUN.js → chunk-ZBVS26BY.js} +4 -4
  182. package/chunks/{chunk-HTO4JFDZ.js → chunk-ZPJWUGCS.js} +0 -1
  183. package/chunks/{chunk-X5XDDSSH.js → chunk-ZPZ7ZJEE.js} +28 -5
  184. package/chunks/{computer-use-SOQ4E3VX.js → computer-use-GOM42LNK.js} +53 -50
  185. package/chunks/{config-utils-7V7GGIW6.js → config-utils-WADIDWGG.js} +4 -3
  186. package/chunks/contextCommand-6LVPTIWD.js +83 -0
  187. package/chunks/core-runtime-253XV2DB.js +137 -0
  188. package/chunks/{create-sub-session-QRJLW5BV.js → create-sub-session-45POYEVP.js} +50 -47
  189. package/chunks/{create-sub-session-IWW2IZ2T.js → create-sub-session-62YZWVAY.js} +3 -3
  190. package/chunks/{cron-create-YIID5XAW.js → cron-create-6E7GIQTG.js} +6 -6
  191. package/chunks/{cron-delete-ZVHYCEP2.js → cron-delete-JD26XY3W.js} +5 -5
  192. package/chunks/{cron-list-XEGS463Q.js → cron-list-CUWFB44G.js} +6 -6
  193. package/chunks/{daemon-YO6433NF.js → daemon-PCNCI5YU.js} +428 -18
  194. package/chunks/daemon-status-provider-AKALDYJJ.js +93 -0
  195. package/chunks/daemon-trust-policy-XB7ZSQFQ.js +88 -0
  196. package/chunks/daemon-trust-policy-monitor-FUTKP42Q.js +175 -0
  197. package/chunks/{de-HGRCYDEJ.js → de-SY6O76BF.js} +6 -1
  198. package/chunks/deferred-core-runtime-RKLCO7V5.js +92 -0
  199. package/chunks/dist-26BIMQT6.js +4487 -0
  200. package/chunks/{dist-F6IBUDR4.js → dist-2PERFI23.js} +12 -9
  201. package/chunks/{dist-46NQKLTW.js → dist-OAOC5OV4.js} +2 -2
  202. package/chunks/{dist-YFNEUWSE.js → dist-PVEAFLHY.js} +5 -4
  203. package/chunks/{dist-AIKFMUKK.js → dist-SL2LUMML.js} +1449 -14
  204. package/chunks/dist-ULIG4M5H.js +13415 -0
  205. package/chunks/{dist-WEAHOXDM.js → dist-WGMNT3JQ.js} +2 -1
  206. package/chunks/{dist-BBLXMS3N.js → dist-ZHXOBXDN.js} +3 -3
  207. package/chunks/earlyInputCapture-FCWU47OB.js +85 -0
  208. package/chunks/{edit-OBDSQURM.js → edit-TTACM3LN.js} +51 -48
  209. package/chunks/{en-MTWBNGDO.js → en-NBK3JKCE.js} +9 -1
  210. package/chunks/{enter-worktree-U6MRPQ2P.js → enter-worktree-R34GFDX6.js} +51 -48
  211. package/chunks/{enterPlanMode-BC5QUZZ2.js → enterPlanMode-KJPBB6G5.js} +51 -48
  212. package/chunks/environment-IJG3N2PR.js +105 -0
  213. package/chunks/errors-MRON5OJD.js +91 -0
  214. package/chunks/esm-K5FARBNI.js +5548 -0
  215. package/chunks/{exit-worktree-DGNYMECB.js → exit-worktree-UBA66Y4I.js} +51 -48
  216. package/chunks/exitPlanMode-SMSPGNSK.js +76 -0
  217. package/chunks/{fast-path-JJZFJANL.js → fast-path-ZBAMZDCP.js} +16 -6
  218. package/chunks/{fr-45RLL55O.js → fr-4KG5V7UT.js} +6 -1
  219. package/chunks/{gemini-QS36EBZV.js → gemini-XFT7HRNL.js} +106 -99
  220. package/chunks/{geminiContentGenerator-AG4KB6CV.js → geminiContentGenerator-XD3MLYQX.js} +40 -11
  221. package/chunks/{getMachineId-bsd-V7W3GODC.js → getMachineId-bsd-FG7IUY6U.js} +1 -1
  222. package/chunks/{getMachineId-darwin-TDO75DQP.js → getMachineId-darwin-GLCJI2RA.js} +1 -1
  223. package/chunks/{getMachineId-linux-TF43WQT2.js → getMachineId-linux-O6OPPAKO.js} +1 -1
  224. package/chunks/{getMachineId-unsupported-ZGUO3TXT.js → getMachineId-unsupported-S6CKYVGC.js} +1 -1
  225. package/chunks/{getMachineId-win-ECFYZZFQ.js → getMachineId-win-X5SRNEH7.js} +1 -1
  226. package/chunks/{glob-V7R3PSK3.js → glob-HFKY7HXZ.js} +51 -48
  227. package/chunks/goal-tools-HGO6VXPB.js +335 -0
  228. package/chunks/{grep-QYPSK7OP.js → grep-EO5Z3PFV.js} +53 -49
  229. package/chunks/handleAutoUpdate-WRENFE6C.js +84 -0
  230. package/chunks/i18n-ZG5OTVSV.js +100 -0
  231. package/chunks/{image-gen-Z3VPGKRC.js → image-gen-CKWZ4MJI.js} +12 -12
  232. package/chunks/initializer-FYPLLRC7.js +89 -0
  233. package/chunks/installationInfo-5RV4HRMC.js +83 -0
  234. package/chunks/{ja-B7DF7DFG.js → ja-F3GSQXMF.js} +6 -1
  235. package/chunks/{keychain-token-storage-MDTG3WRM.js → keychain-token-storage-IKO4G53C.js} +3 -3
  236. package/chunks/lib-RUF3WZA6.js +9 -0
  237. package/chunks/list-ZNWVL3AT.js +92 -0
  238. package/chunks/{list-agents-5KJJHR6I.js → list-agents-PXJ7ZUFB.js} +3 -3
  239. package/chunks/loadedSettingsAdapter-GQGNHP5I.js +86 -0
  240. package/chunks/{loggingContentGenerator-HS3S5H3Q.js → loggingContentGenerator-MS5DFAWH.js} +78 -113
  241. package/chunks/{loop-wakeup-FXKNNYSY.js → loop-wakeup-Y26NQZ5I.js} +15 -8
  242. package/chunks/{ls-NTK6VOQJ.js → ls-ONQTTMQR.js} +5 -5
  243. package/chunks/{lsp-2JI24STP.js → lsp-YGHHRGMD.js} +3 -3
  244. package/chunks/{managed-npm-update-JYEMMXA3.js → managed-npm-update-67AK4GTL.js} +51 -48
  245. package/chunks/mcp-FVQ4VTLM.js +86 -0
  246. package/chunks/{monitor-R3ODH5U6.js → monitor-BXB33EOZ.js} +51 -48
  247. package/chunks/nonInteractiveCli-CN2GYSN3.js +148 -0
  248. package/chunks/{notebook-edit-BNOK452R.js → notebook-edit-FKYRBV4L.js} +51 -48
  249. package/chunks/{openaiContentGenerator-WMCU3O2H.js → openaiContentGenerator-UUXV5DGU.js} +26 -27
  250. package/chunks/pidfile-MV347TTZ.js +89 -0
  251. package/chunks/process-registry-2CHQBXH5.js +157 -0
  252. package/chunks/{processUtils-RT7UNCC2.js → processUtils-LKFG52RV.js} +2 -2
  253. package/chunks/{pt-22Q3FP73.js → pt-EQ33KWEN.js} +6 -1
  254. package/chunks/{qwenContentGenerator-HHCRK4SX.js → qwenContentGenerator-3WYI2HRW.js} +56 -53
  255. package/chunks/{qwenOAuth2-OWLB5AKH.js → qwenOAuth2-B46MW45O.js} +10 -10
  256. package/chunks/read-file-ACSHVWP3.js +29 -0
  257. package/chunks/{read-mcp-resource-4DKQWGHD.js → read-mcp-resource-U2IJN5HM.js} +4 -4
  258. package/chunks/record-artifact-MGPJ7EG4.js +21 -0
  259. package/chunks/resumeHistoryUtils-AMS4767B.js +94 -0
  260. package/chunks/ripGrep-BAPM2UKC.js +76 -0
  261. package/chunks/{ru-FZCNZHDC.js → ru-7OZAUKGG.js} +6 -1
  262. package/chunks/{run-qwen-serve-FU6HEM4J.js → run-qwen-serve-JEN6FO2A.js} +1018 -263
  263. package/chunks/runtime-WVP22ISH.js +122 -0
  264. package/chunks/{scheduler-G2ZS2Z7E.js → scheduler-HTX5ACVR.js} +50 -47
  265. package/chunks/{sdk-exporters-grpc-AK3LGHNO.js → sdk-exporters-grpc-54L4LS5L.js} +4 -4
  266. package/chunks/{sdk-exporters-http-FYBSUCPD.js → sdk-exporters-http-4BQANSJ6.js} +7 -7
  267. package/chunks/{sdk-impl-GMVPB7NB.js → sdk-impl-Z4VXWVFX.js} +14 -14
  268. package/chunks/{send-message-Q6OOR6BR.js → send-message-PMP4ATVM.js} +8 -13
  269. package/chunks/serve-ELQIVNWN.js +92 -0
  270. package/chunks/{server-4UMH7OIZ.js → server-JNW2NOSQ.js} +5288 -1364
  271. package/chunks/{session-K3O3Q2SV.js → session-NC356XNS.js} +102 -95
  272. package/chunks/{settings-CR2EWTBA.js → settings-73RMIOJ6.js} +54 -51
  273. package/chunks/shell-NMHF5TFG.js +86 -0
  274. package/chunks/{skill-I3SDA4MB.js → skill-XPGXHEKO.js} +22 -22
  275. package/chunks/skill-settings-5IGIJDGA.js +94 -0
  276. package/chunks/spawnChannel-T5THBHFN.js +85 -0
  277. package/chunks/standalone-update-ODXEPDLP.js +95 -0
  278. package/chunks/{startInteractiveUI-SLZGHRPH.js → startInteractiveUI-S27DXVAE.js} +1241 -905
  279. package/chunks/{syntheticOutput-I3757IWH.js → syntheticOutput-D7E6ZFKR.js} +4 -4
  280. package/chunks/task-create-NFCYD43L.js +26 -0
  281. package/chunks/{task-list-FOPULZEP.js → task-list-TAVMGEVD.js} +7 -7
  282. package/chunks/{task-stop-H6RHXFVQ.js → task-stop-ZDF2UJRM.js} +3 -3
  283. package/chunks/{task-update-M57TFZJT.js → task-update-6L7LHGEX.js} +12 -11
  284. package/chunks/{team-create-YJALH5D2.js → team-create-CTLQWTJ2.js} +53 -50
  285. package/chunks/{team-delete-QE2UXJL7.js → team-delete-DPGGRQBU.js} +7 -7
  286. package/chunks/{team-plan-approval-34QFYKGN.js → team-plan-approval-WKRUAPJ4.js} +51 -48
  287. package/chunks/theme-manager-XQHXQQX6.js +80 -0
  288. package/chunks/{todoWrite-VQ7FKOHL.js → todoWrite-2UO5G6G6.js} +34 -6
  289. package/chunks/{tool-search-NF7GB6LE.js → tool-search-45YINAJA.js} +21 -22
  290. package/chunks/total-session-admission-QPUKGHKO.js +88 -0
  291. package/chunks/trustedFolders-YMUTRHEQ.js +98 -0
  292. package/chunks/{update-relaunch-WBUZJC5O.js → update-relaunch-PZUXTVHC.js} +5 -5
  293. package/chunks/updateCheck-IZAN4XTB.js +95 -0
  294. package/chunks/useAutoAcceptIndicator-CGL2MAYE.js +96 -0
  295. package/chunks/{validateNonInterActiveAuth-3R223G3R.js → validateNonInterActiveAuth-GBGNJ65K.js} +97 -90
  296. package/chunks/{version-HS7YSFHV.js → version-Z7EX24NZ.js} +1 -1
  297. package/chunks/{web-fetch-NKCSG7ZE.js → web-fetch-ETTT2H3V.js} +19 -21
  298. package/chunks/{web-search-S62WAP4S.js → web-search-Y3ZSVRJ6.js} +13 -13
  299. package/chunks/{workflow-QAGU5RU4.js → workflow-ATRJSAO7.js} +52 -49
  300. package/chunks/workspace-providers-status-YM3WLW3N.js +89 -0
  301. package/chunks/{workspace-registration-store-24JMHDGF.js → workspace-registration-store-4EGNCIPG.js} +1 -1
  302. package/chunks/workspace-registry-NGZOZKQP.js +96 -0
  303. package/chunks/workspace-service-SVWOXX2B.js +103 -0
  304. package/chunks/workspace-skills-status-YZHZ3PT5.js +89 -0
  305. package/chunks/workspace-trust-reconciler-GGBQV2U5.js +349 -0
  306. package/chunks/write-file-HLGCEB72.js +78 -0
  307. package/chunks/xterm-headless-NTYVIBT3.js +3475 -0
  308. package/chunks/{zh-LUIGBD55.js → zh-H3YDK5QW.js} +9 -1
  309. package/chunks/{zh-TW-F5KG2IYD.js → zh-TW-JYCP7XUA.js} +9 -1
  310. package/chunks/zoom-image-LDECT475.js +224 -0
  311. package/cli.js +50 -16
  312. package/locales/ca.js +7 -2
  313. package/locales/de.js +7 -2
  314. package/locales/en.js +10 -2
  315. package/locales/fr.js +7 -2
  316. package/locales/ja.js +7 -2
  317. package/locales/pt.js +7 -2
  318. package/locales/ru.js +7 -2
  319. package/locales/zh-TW.js +10 -2
  320. package/locales/zh.js +10 -2
  321. package/package.json +5 -4
  322. package/web-shell/assets/{arc-DcbWnB9T.js → arc-Dpy_U6Bb.js} +1 -1
  323. package/web-shell/assets/{architectureDiagram-3BPJPVTR-kMMF5sud.js → architectureDiagram-3BPJPVTR-DgDOg-c5.js} +1 -1
  324. package/web-shell/assets/{blockDiagram-GPEHLZMM-Htl9vTJS.js → blockDiagram-GPEHLZMM-tADd9Ja3.js} +1 -1
  325. package/web-shell/assets/{c4Diagram-AAUBKEIU-BnZnm0mQ.js → c4Diagram-AAUBKEIU-68wj9MCU.js} +1 -1
  326. package/web-shell/assets/channel-Do7fFnFl.js +1 -0
  327. package/web-shell/assets/{chunk-2J33WTMH-DziB7kDG.js → chunk-2J33WTMH-DjJLOeVU.js} +1 -1
  328. package/web-shell/assets/{chunk-4BX2VUAB-CmkD8daw.js → chunk-4BX2VUAB-CMbzGeVC.js} +1 -1
  329. package/web-shell/assets/{chunk-55IACEB6-CHAd9A_U.js → chunk-55IACEB6-SlKgejv9.js} +1 -1
  330. package/web-shell/assets/{chunk-727SXJPM-Dqaam3fE.js → chunk-727SXJPM-CijXssHZ.js} +1 -1
  331. package/web-shell/assets/{chunk-AQP2D5EJ-D_-saBYM.js → chunk-AQP2D5EJ-D8w25nvR.js} +1 -1
  332. package/web-shell/assets/{chunk-FMBD7UC4-B9r_veWD.js → chunk-FMBD7UC4-Bv9dcx_e.js} +1 -1
  333. package/web-shell/assets/{chunk-ND2GUHAM-B3EaCSpL.js → chunk-ND2GUHAM-Bzf6sAOd.js} +1 -1
  334. package/web-shell/assets/{chunk-QZHKN3VN-CYq8x9mn.js → chunk-QZHKN3VN-whNoNeW5.js} +1 -1
  335. package/web-shell/assets/classDiagram-4FO5ZUOK-By_XOP3X.js +1 -0
  336. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-By_XOP3X.js +1 -0
  337. package/web-shell/assets/{cose-bilkent-S5V4N54A-D0ng4uiB.js → cose-bilkent-S5V4N54A-rpQS44Lz.js} +1 -1
  338. package/web-shell/assets/{dagre-BM42HDAG-DCZollQv.js → dagre-BM42HDAG-Ck7VE6nT.js} +1 -1
  339. package/web-shell/assets/{diagram-2AECGRRQ-Dfk2pWS0.js → diagram-2AECGRRQ-CgRrsodR.js} +1 -1
  340. package/web-shell/assets/{diagram-5GNKFQAL-kX38ltWR.js → diagram-5GNKFQAL-CsTZtE5A.js} +1 -1
  341. package/web-shell/assets/{diagram-KO2AKTUF-CJz2vsXh.js → diagram-KO2AKTUF-D5EAdVq4.js} +1 -1
  342. package/web-shell/assets/{diagram-LMA3HP47-BvMLZm_7.js → diagram-LMA3HP47-DNrjHC7Z.js} +1 -1
  343. package/web-shell/assets/{diagram-OG6HWLK6-l7kfStkO.js → diagram-OG6HWLK6-ClJSJGgC.js} +1 -1
  344. package/web-shell/assets/{erDiagram-TEJ5UH35-BSVa8GGT.js → erDiagram-TEJ5UH35-DuVnos_y.js} +1 -1
  345. package/web-shell/assets/{flowDiagram-I6XJVG4X-CoawKIXH.js → flowDiagram-I6XJVG4X-DEpIVl1s.js} +1 -1
  346. package/web-shell/assets/{ganttDiagram-6RSMTGT7-DFUDH0zF.js → ganttDiagram-6RSMTGT7-COnQM2-C.js} +1 -1
  347. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Y2pvpT4e.js → gitGraphDiagram-PVQCEYII-C-lX5H3_.js} +1 -1
  348. package/web-shell/assets/index-C2GE3DAF.js +74 -0
  349. package/web-shell/assets/{index-D0GX0zZf.js → index-DfcyS2E7.js} +1 -1
  350. package/web-shell/assets/index-Qxt6kN7i.js +1700 -0
  351. package/web-shell/assets/index-bo0Z8hfu.css +5 -0
  352. package/web-shell/assets/{infoDiagram-5YYISTIA-CU8_zLiX.js → infoDiagram-5YYISTIA-D0WP-wmU.js} +1 -1
  353. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-AVQiV0DU.js → ishikawaDiagram-YF4QCWOH-DgsI3Clu.js} +1 -1
  354. package/web-shell/assets/{journeyDiagram-JHISSGLW-DQ0VSKa3.js → journeyDiagram-JHISSGLW-4yCoMZO6.js} +1 -1
  355. package/web-shell/assets/{kanban-definition-UN3LZRKU-BqnWqsE_.js → kanban-definition-UN3LZRKU-D_05au1N.js} +1 -1
  356. package/web-shell/assets/{linear-BkoihsaA.js → linear-B38fDz0Q.js} +1 -1
  357. package/web-shell/assets/{mermaid.core-5RJs-31j.js → mermaid.core-aGNwTaHi.js} +5 -5
  358. package/web-shell/assets/{mindmap-definition-RKZ34NQL-D33Bxnpd.js → mindmap-definition-RKZ34NQL-C2yf_5WM.js} +1 -1
  359. package/web-shell/assets/{pieDiagram-4H26LBE5-BuEAw3BH.js → pieDiagram-4H26LBE5-DiHABBT-.js} +1 -1
  360. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-Kox_usEq.js → quadrantDiagram-W4KKPZXB-W9xkeAGe.js} +1 -1
  361. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CNjeUif0.js → requirementDiagram-4Y6WPE33-BGmRXl9k.js} +1 -1
  362. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-BCd2OL_U.js → sankeyDiagram-5OEKKPKP-CvOmT43_.js} +1 -1
  363. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CF2ZTsz0.js → sequenceDiagram-3UESZ5HK-C8pdd0Z-.js} +1 -1
  364. package/web-shell/assets/{stateDiagram-AJRCARHV-qenSzHtm.js → stateDiagram-AJRCARHV-C-CYdFx2.js} +1 -1
  365. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BieEHeN9.js +1 -0
  366. package/web-shell/assets/{timeline-definition-PNZ67QCA-B5DyWdgs.js → timeline-definition-PNZ67QCA-w2KQn1cI.js} +1 -1
  367. package/web-shell/assets/{vennDiagram-CIIHVFJN-DqP4I_o_.js → vennDiagram-CIIHVFJN-DuorhRku.js} +1 -1
  368. package/web-shell/assets/{wardley-L42UT6IY-CJe2e4mg.js → wardley-L42UT6IY-BAXm2cWy.js} +1 -1
  369. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BMDSw-Rr.js → wardleyDiagram-YWT4CUSO-8PHaOXn5.js} +1 -1
  370. package/web-shell/assets/{xychartDiagram-2RQKCTM6-BTVZYkxD.js → xychartDiagram-2RQKCTM6-Do84JFSc.js} +1 -1
  371. package/web-shell/index.html +2 -2
  372. package/chunks/MaxSizedBox-5DPPWPGT.js +0 -85
  373. package/chunks/agent-6ODUANDO.js +0 -81
  374. package/chunks/agent-headless-7BYQTMHW.js +0 -75
  375. package/chunks/bridge-ZUB64FAE.js +0 -90
  376. package/chunks/chunk-LEH5C7FV.js +0 -232
  377. package/chunks/chunk-SZRN75WQ.js +0 -29
  378. package/chunks/chunk-UGYMA4EI.js +0 -219
  379. package/chunks/chunk-Z2BC6UJ5.js +0 -8575
  380. package/chunks/contextCommand-JLHYA34Z.js +0 -80
  381. package/chunks/daemon-status-provider-2233Q37D.js +0 -89
  382. package/chunks/earlyInputCapture-A7NDU3PF.js +0 -82
  383. package/chunks/environment-W5UFC2CH.js +0 -102
  384. package/chunks/errors-M7CLORXH.js +0 -88
  385. package/chunks/exitPlanMode-GXTBWQAR.js +0 -403
  386. package/chunks/handleAutoUpdate-6DBEZYPV.js +0 -81
  387. package/chunks/i18n-VUJJZIMU.js +0 -97
  388. package/chunks/initializer-UWAK5U5O.js +0 -86
  389. package/chunks/installationInfo-6O2YAA52.js +0 -80
  390. package/chunks/list-GB4ESM3T.js +0 -89
  391. package/chunks/loadedSettingsAdapter-OT6JVQ7U.js +0 -83
  392. package/chunks/mcp-6DBDJPFU.js +0 -83
  393. package/chunks/nonInteractiveCli-MOYCYBBU.js +0 -141
  394. package/chunks/pidfile-TFRZZZIO.js +0 -86
  395. package/chunks/read-file-APMO3PSX.js +0 -31
  396. package/chunks/resumeHistoryUtils-6KRYEAWZ.js +0 -91
  397. package/chunks/ripGrep-BEJDEDXW.js +0 -73
  398. package/chunks/runtime-XXRRTNP6.js +0 -118
  399. package/chunks/serve-7BSTXJ4T.js +0 -89
  400. package/chunks/shell-HH3PF3A2.js +0 -83
  401. package/chunks/spawnChannel-RWNDBXGA.js +0 -82
  402. package/chunks/src-GE4TTTML.js +0 -3147
  403. package/chunks/standalone-update-Q6WFRZZQ.js +0 -92
  404. package/chunks/task-create-N7WQSGYA.js +0 -25
  405. package/chunks/theme-manager-SWRILQHI.js +0 -77
  406. package/chunks/total-session-admission-DLHHHLD3.js +0 -84
  407. package/chunks/trustedFolders-KHXHY6PY.js +0 -93
  408. package/chunks/updateCheck-RKL6M5XN.js +0 -92
  409. package/chunks/useAutoAcceptIndicator-CFQ5BUJL.js +0 -93
  410. package/chunks/workspace-providers-status-QSVZUETE.js +0 -86
  411. package/chunks/workspace-registry-UT4RBNBM.js +0 -88
  412. package/chunks/workspace-service-JFWRUS4V.js +0 -98
  413. package/chunks/workspace-skills-status-ZBBKJOI2.js +0 -85
  414. package/chunks/write-file-VHIXW5M7.js +0 -73
  415. package/web-shell/assets/channel-Cq7YKtfC.js +0 -1
  416. package/web-shell/assets/classDiagram-4FO5ZUOK-CQ9aC1Tg.js +0 -1
  417. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CQ9aC1Tg.js +0 -1
  418. package/web-shell/assets/index-D9haPt0X.css +0 -5
  419. package/web-shell/assets/index-ckX9Pq5k.js +0 -1230
  420. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-B7W4zlCr.js +0 -1
  421. package/chunks/{chunk-TARRHLLG.js → chunk-QUGAUQGJ.js} +25 -25
  422. package/chunks/{chunk-U7ZFW55U.js → chunk-VOQXFAY5.js} +977 -977
  423. /package/chunks/{chunk-LXXMOYPL.js → chunk-VXZBKKQR.js} +0 -0
@@ -0,0 +1,418 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ resolveChannelCwd
5
+ } from "./chunk-FANRZEAJ.js";
6
+ import {
7
+ getPlugin
8
+ } from "./chunk-KWHKHSIS.js";
9
+ import {
10
+ canonicalizeWorkspace
11
+ } from "./chunk-2RFKHEXL.js";
12
+ import {
13
+ normalizeWorkerDiagnostic
14
+ } from "./chunk-6MPDY6ZG.js";
15
+ import {
16
+ isAllChannelSelectionName
17
+ } from "./chunk-ALMR3E6Q.js";
18
+ import {
19
+ redactLogCredentials
20
+ } from "./chunk-M5GB774H.js";
21
+ import {
22
+ PairingStore,
23
+ sanitizeLogText
24
+ } from "./chunk-JCJ7LKNA.js";
25
+ import "./chunk-UDXSXLER.js";
26
+ import "./chunk-TWPJO254.js";
27
+ import "./chunk-H6XPXXMH.js";
28
+ import {
29
+ init_esbuild_shims
30
+ } from "./chunk-5O2XNYP6.js";
31
+ import {
32
+ __name
33
+ } from "./chunk-J2S4EL5Y.js";
34
+
35
+ // packages/cli/src/serve/channel-management-service.ts
36
+ init_esbuild_shims();
37
+ var ChannelManagementError = class extends Error {
38
+ constructor(code, message) {
39
+ super(message);
40
+ this.code = code;
41
+ this.name = "ChannelManagementError";
42
+ }
43
+ static {
44
+ __name(this, "ChannelManagementError");
45
+ }
46
+ };
47
+ function diagnostic(error) {
48
+ const message = error instanceof Error ? error.message : String(error);
49
+ return sanitizeLogText(
50
+ redactLogCredentials(normalizeWorkerDiagnostic(message)),
51
+ 512
52
+ );
53
+ }
54
+ __name(diagnostic, "diagnostic");
55
+ function usesEnvironment(value) {
56
+ return typeof value === "string" && /^\$[A-Za-z_][A-Za-z0-9_]*$/.test(value);
57
+ }
58
+ __name(usesEnvironment, "usesEnvironment");
59
+ function createChannelManagementService(opts) {
60
+ const diagnostics = /* @__PURE__ */ new Map();
61
+ let mutationTail = Promise.resolve();
62
+ const inMutationLane = /* @__PURE__ */ __name((mutation) => {
63
+ const result = mutationTail.then(mutation, mutation);
64
+ mutationTail = result.then(
65
+ () => void 0,
66
+ () => void 0
67
+ );
68
+ return result;
69
+ }, "inMutationLane");
70
+ const assertExpectedRevision = /* @__PURE__ */ __name((snapshot, expectedRevision) => {
71
+ if (snapshot.revision !== expectedRevision) {
72
+ throw new ChannelManagementError(
73
+ "channel_settings_conflict",
74
+ "Channel settings changed; reload before trying again."
75
+ );
76
+ }
77
+ }, "assertExpectedRevision");
78
+ const workerFor = /* @__PURE__ */ __name((name) => {
79
+ const matches = opts.manager.state().workers.filter(
80
+ (worker) => worker.adapters?.some((adapter) => adapter.name === name) || worker.requestedChannels?.includes(name) || worker.channels.includes(name)
81
+ );
82
+ return matches;
83
+ }, "workerFor");
84
+ const workspaceCommittedNames = /* @__PURE__ */ __name(() => opts.manager.committedChannelNames().filter(
85
+ (name) => workerFor(name).some((w) => w.workspaceCwd === opts.workspaceCwd)
86
+ ), "workspaceCommittedNames");
87
+ const assertOwnedRuntime = /* @__PURE__ */ __name((name) => {
88
+ if (!workspaceCommittedNames().includes(name)) return;
89
+ const workers = workerFor(name).filter(
90
+ (worker) => worker.workspaceCwd === opts.workspaceCwd
91
+ );
92
+ if (workers.length !== 1) {
93
+ throw new ChannelManagementError(
94
+ "channel_runtime_owner_mismatch",
95
+ `Channel "${name}" does not have one confirmed runtime owner in this workspace.`
96
+ );
97
+ }
98
+ }, "assertOwnedRuntime");
99
+ const runtimeFor = /* @__PURE__ */ __name((name) => {
100
+ const retainedError = diagnostics.get(name);
101
+ if (retainedError) return { state: "error", lastError: retainedError };
102
+ if (!workspaceCommittedNames().includes(name)) {
103
+ return { state: "stopped" };
104
+ }
105
+ const state = opts.manager.state();
106
+ const workers = workerFor(name).filter(
107
+ (worker2) => worker2.workspaceCwd === opts.workspaceCwd
108
+ );
109
+ if (workers.length !== 1) {
110
+ return {
111
+ state: "error",
112
+ lastError: "Channel runtime owner is unknown or ambiguous."
113
+ };
114
+ }
115
+ const worker = workers[0];
116
+ const adapter = worker.adapters?.find((item) => item.name === name);
117
+ if (adapter?.state === "connected") return { state: "connected" };
118
+ if (adapter?.state === "error") {
119
+ return {
120
+ state: "error",
121
+ ...adapter.error ? { lastError: diagnostic(adapter.error) } : {}
122
+ };
123
+ }
124
+ if (adapter?.state === "starting" || state.transition === "starting" || state.transition === "reconciling") {
125
+ return { state: "starting" };
126
+ }
127
+ if (worker.state === "running") return { state: "partial" };
128
+ return {
129
+ state: "error",
130
+ ...worker.error ? { lastError: diagnostic(worker.error) } : {}
131
+ };
132
+ }, "runtimeFor");
133
+ const instanceFrom = /* @__PURE__ */ __name(async (name, rawConfig, startupNames) => {
134
+ const type = typeof rawConfig["type"] === "string" ? rawConfig["type"] : "";
135
+ const plugin = type ? await getPlugin(type) : void 0;
136
+ if (!plugin?.management) {
137
+ return {
138
+ name,
139
+ config: type ? { type } : {},
140
+ secrets: {},
141
+ startsWithServe: startupNames.some(isAllChannelSelectionName) || startupNames.includes(name),
142
+ runtime: runtimeFor(name)
143
+ };
144
+ }
145
+ const secretKeys = new Set(
146
+ plugin.management.fields.filter((field) => field.kind === "secret").map((field) => field.key)
147
+ );
148
+ const config = {};
149
+ const secrets = {};
150
+ for (const [key, value] of Object.entries(rawConfig)) {
151
+ if (!secretKeys.has(key)) {
152
+ config[key] = value;
153
+ continue;
154
+ }
155
+ secrets[key] = {
156
+ present: value !== void 0,
157
+ ...value !== void 0 ? { source: usesEnvironment(value) ? "environment" : "literal" } : {}
158
+ };
159
+ }
160
+ for (const key of secretKeys) {
161
+ secrets[key] ??= { present: false };
162
+ }
163
+ return {
164
+ name,
165
+ config,
166
+ secrets,
167
+ startsWithServe: startupNames.some(isAllChannelSelectionName) || startupNames.includes(name),
168
+ runtime: runtimeFor(name)
169
+ };
170
+ }, "instanceFrom");
171
+ const listFrom = /* @__PURE__ */ __name(async (persisted) => {
172
+ const entries = await Promise.all(
173
+ Object.entries(persisted.channels).map(
174
+ async ([name, config]) => [
175
+ name,
176
+ await instanceFrom(name, config, persisted.startupNames)
177
+ ]
178
+ )
179
+ );
180
+ return {
181
+ revision: persisted.revision,
182
+ instances: Object.fromEntries(entries)
183
+ };
184
+ }, "listFrom");
185
+ const resultFor = /* @__PURE__ */ __name(async (name, persisted = opts.store.snapshot()) => {
186
+ const snapshot = await listFrom(persisted);
187
+ const instance = Object.hasOwn(snapshot.instances, name) ? snapshot.instances[name] : {
188
+ name,
189
+ config: {},
190
+ secrets: {},
191
+ startsWithServe: false,
192
+ runtime: runtimeFor(name)
193
+ };
194
+ return { snapshot, instance };
195
+ }, "resultFor");
196
+ const stopChannel = /* @__PURE__ */ __name((name) => opts.manager.setChannelEnabled(
197
+ { name, workspaceCwd: opts.workspaceCwd },
198
+ false
199
+ ), "stopChannel");
200
+ const assertManageableInstanceName = /* @__PURE__ */ __name((name) => {
201
+ if (isAllChannelSelectionName(name)) {
202
+ throw new ChannelManagementError(
203
+ "invalid_channel_instance_name",
204
+ 'Channel instance name "all" is reserved for startup selection.'
205
+ );
206
+ }
207
+ }, "assertManageableInstanceName");
208
+ const assertWorkspaceConfig = /* @__PURE__ */ __name((config) => {
209
+ const rawCwd = config["cwd"];
210
+ if (typeof rawCwd !== "string") return;
211
+ const workspaceCwd = canonicalizeWorkspace(opts.workspaceCwd);
212
+ const channelCwd = canonicalizeWorkspace(
213
+ resolveChannelCwd(rawCwd, workspaceCwd)
214
+ );
215
+ if (channelCwd !== workspaceCwd) {
216
+ throw new ChannelManagementError(
217
+ "channel_workspace_mismatch",
218
+ "Channel workspace must match the selected workspace."
219
+ );
220
+ }
221
+ }, "assertWorkspaceConfig");
222
+ const pairingStoreFor = /* @__PURE__ */ __name((name) => {
223
+ assertManageableInstanceName(name);
224
+ const channels = opts.store.snapshot().channels;
225
+ if (!Object.hasOwn(channels, name)) {
226
+ throw new ChannelManagementError(
227
+ "channel_instance_not_found",
228
+ `Channel "${name}" is not configured in this workspace.`
229
+ );
230
+ }
231
+ const config = channels[name];
232
+ assertWorkspaceConfig(config);
233
+ if (config["senderPolicy"] !== "pairing") {
234
+ throw new ChannelManagementError(
235
+ "channel_pairing_not_enabled",
236
+ `Channel "${name}" does not use pairing mode.`
237
+ );
238
+ }
239
+ return new PairingStore(name, opts.workspaceCwd);
240
+ }, "pairingStoreFor");
241
+ const service = {
242
+ async list() {
243
+ return listFrom(opts.store.snapshot());
244
+ },
245
+ async upsert(name, request) {
246
+ assertManageableInstanceName(name);
247
+ assertWorkspaceConfig(request.config);
248
+ const active = workspaceCommittedNames().includes(name);
249
+ if (active) assertOwnedRuntime(name);
250
+ const persisted = await opts.store.upsert(name, request);
251
+ diagnostics.delete(name);
252
+ if (active) {
253
+ try {
254
+ await opts.manager.reloadWorkspace(opts.workspaceCwd, name);
255
+ } catch (error) {
256
+ diagnostics.set(name, diagnostic(error));
257
+ try {
258
+ await stopChannel(name);
259
+ } catch {
260
+ }
261
+ }
262
+ }
263
+ return resultFor(name, persisted);
264
+ },
265
+ async remove(name, request) {
266
+ assertManageableInstanceName(name);
267
+ const current = opts.store.snapshot();
268
+ if (!Object.hasOwn(current.channels, name)) {
269
+ throw new ChannelManagementError(
270
+ "channel_instance_not_found",
271
+ `Channel "${name}" is not configured in this workspace.`
272
+ );
273
+ }
274
+ assertWorkspaceConfig(current.channels[name]);
275
+ assertExpectedRevision(current, request.expectedRevision);
276
+ if (workspaceCommittedNames().includes(name)) {
277
+ assertOwnedRuntime(name);
278
+ await stopChannel(name);
279
+ }
280
+ const persisted = await opts.store.remove(name, request);
281
+ diagnostics.delete(name);
282
+ return resultFor(name, persisted);
283
+ },
284
+ async setStartup(name, request) {
285
+ assertManageableInstanceName(name);
286
+ const current = opts.store.snapshot();
287
+ if (!Object.hasOwn(current.channels, name)) {
288
+ throw new ChannelManagementError(
289
+ "channel_instance_not_found",
290
+ `Channel "${name}" is not configured in this workspace.`
291
+ );
292
+ }
293
+ assertWorkspaceConfig(current.channels[name]);
294
+ const startsAll = current.startupNames.some(isAllChannelSelectionName);
295
+ if (startsAll && request.enabled) {
296
+ assertExpectedRevision(current, request.expectedRevision);
297
+ return resultFor(name, current);
298
+ }
299
+ const startupNames = startsAll ? Object.keys(current.channels).filter(
300
+ (item) => !isAllChannelSelectionName(item) && item !== name
301
+ ) : request.enabled ? current.startupNames.includes(name) ? current.startupNames : [...current.startupNames, name] : current.startupNames.filter((item) => item !== name);
302
+ const persisted = await opts.store.setStartupNames(startupNames, {
303
+ expectedRevision: request.expectedRevision
304
+ });
305
+ return resultFor(name, persisted);
306
+ },
307
+ async start(name) {
308
+ assertManageableInstanceName(name);
309
+ const persisted = opts.store.snapshot();
310
+ if (!Object.hasOwn(persisted.channels, name)) {
311
+ throw new ChannelManagementError(
312
+ "channel_instance_not_found",
313
+ `Channel "${name}" is not configured in this workspace.`
314
+ );
315
+ }
316
+ assertWorkspaceConfig(persisted.channels[name]);
317
+ await opts.manager.setChannelEnabled(
318
+ { name, workspaceCwd: opts.workspaceCwd },
319
+ true
320
+ );
321
+ diagnostics.delete(name);
322
+ return resultFor(name, persisted);
323
+ },
324
+ async stop(name) {
325
+ assertManageableInstanceName(name);
326
+ const persisted = opts.store.snapshot();
327
+ if (!Object.hasOwn(persisted.channels, name)) {
328
+ throw new ChannelManagementError(
329
+ "channel_instance_not_found",
330
+ `Channel "${name}" is not configured in this workspace.`
331
+ );
332
+ }
333
+ assertWorkspaceConfig(persisted.channels[name]);
334
+ await opts.manager.setChannelEnabled(
335
+ { name, workspaceCwd: opts.workspaceCwd },
336
+ false
337
+ );
338
+ diagnostics.delete(name);
339
+ return resultFor(name, persisted);
340
+ },
341
+ async restart(name) {
342
+ assertManageableInstanceName(name);
343
+ const persisted = opts.store.snapshot();
344
+ if (!Object.hasOwn(persisted.channels, name)) {
345
+ throw new ChannelManagementError(
346
+ "channel_instance_not_found",
347
+ `Channel "${name}" is not configured in this workspace.`
348
+ );
349
+ }
350
+ assertWorkspaceConfig(persisted.channels[name]);
351
+ if (!workspaceCommittedNames().includes(name)) {
352
+ throw new ChannelManagementError(
353
+ "channel_worker_not_enabled",
354
+ `Channel "${name}" is not running.`
355
+ );
356
+ }
357
+ assertOwnedRuntime(name);
358
+ try {
359
+ await opts.manager.reloadWorkspace(opts.workspaceCwd, name);
360
+ diagnostics.delete(name);
361
+ } catch (error) {
362
+ diagnostics.set(name, diagnostic(error));
363
+ throw error;
364
+ }
365
+ return resultFor(name, persisted);
366
+ },
367
+ async pairingRequests(name) {
368
+ return { requests: pairingStoreFor(name).listPending() };
369
+ },
370
+ async approvePairing(name, code) {
371
+ const store = pairingStoreFor(name);
372
+ const approved = store.approve(code);
373
+ if (!approved) {
374
+ throw new ChannelManagementError(
375
+ "channel_pairing_request_not_found",
376
+ "Pairing request was not found or has expired."
377
+ );
378
+ }
379
+ return { approved, requests: store.listPending() };
380
+ },
381
+ async pairingApprovals(name) {
382
+ return { senderIds: pairingStoreFor(name).getAllowlist() };
383
+ },
384
+ async revokePairingApproval(name, senderId) {
385
+ const store = pairingStoreFor(name);
386
+ if (!store.revoke(senderId)) {
387
+ throw new ChannelManagementError(
388
+ "channel_pairing_approval_not_found",
389
+ "Pairing approval was not found."
390
+ );
391
+ }
392
+ return { revoked: senderId, senderIds: store.getAllowlist() };
393
+ }
394
+ };
395
+ return {
396
+ list: /* @__PURE__ */ __name(() => service.list(), "list"),
397
+ upsert: /* @__PURE__ */ __name((name, request) => inMutationLane(() => service.upsert(name, request)), "upsert"),
398
+ remove: /* @__PURE__ */ __name((name, request) => inMutationLane(() => service.remove(name, request)), "remove"),
399
+ setStartup: /* @__PURE__ */ __name((name, request) => inMutationLane(() => service.setStartup(name, request)), "setStartup"),
400
+ start: /* @__PURE__ */ __name((name) => inMutationLane(() => service.start(name)), "start"),
401
+ stop: /* @__PURE__ */ __name((name) => inMutationLane(() => service.stop(name)), "stop"),
402
+ restart: /* @__PURE__ */ __name((name) => inMutationLane(() => service.restart(name)), "restart"),
403
+ pairingRequests: /* @__PURE__ */ __name((name) => service.pairingRequests(name), "pairingRequests"),
404
+ approvePairing: /* @__PURE__ */ __name((name, code) => inMutationLane(() => service.approvePairing(name, code)), "approvePairing"),
405
+ pairingApprovals: /* @__PURE__ */ __name((name) => service.pairingApprovals(name), "pairingApprovals"),
406
+ revokePairingApproval: /* @__PURE__ */ __name((name, senderId) => inMutationLane(() => service.revokePairingApproval(name, senderId)), "revokePairingApproval")
407
+ };
408
+ }
409
+ __name(createChannelManagementService, "createChannelManagementService");
410
+ export {
411
+ ChannelManagementError,
412
+ createChannelManagementService
413
+ };
414
+ /**
415
+ * @license
416
+ * Copyright 2026 Qwen Team
417
+ * SPDX-License-Identifier: Apache-2.0
418
+ */
@@ -0,0 +1,91 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ ChannelSettingsError,
5
+ WorkspaceChannelSettingsStore,
6
+ assertValidChannelSecretUpdates
7
+ } from "./chunk-45UYUCJ6.js";
8
+ import "./chunk-KWHKHSIS.js";
9
+ import "./chunk-A5T5W7PR.js";
10
+ import "./chunk-RKUWKYED.js";
11
+ import "./chunk-GOXKNSDZ.js";
12
+ import "./chunk-IDS7MSUP.js";
13
+ import "./chunk-B3TA3IF5.js";
14
+ import "./chunk-X2E5TFJ5.js";
15
+ import "./chunk-6PEXNQTX.js";
16
+ import "./chunk-UU2B5YG6.js";
17
+ import "./chunk-ALGGS7UH.js";
18
+ import "./chunk-MR3PXB6E.js";
19
+ import "./chunk-OWAK7LMW.js";
20
+ import "./chunk-FRXG4ARO.js";
21
+ import "./chunk-5M6IDOMF.js";
22
+ import "./chunk-TWPJO254.js";
23
+ import "./chunk-H6XPXXMH.js";
24
+ import "./chunk-AOHY3QJ3.js";
25
+ import "./chunk-5NNHICSA.js";
26
+ import "./chunk-SHN4KHDK.js";
27
+ import "./chunk-JXVC2PL3.js";
28
+ import "./chunk-KRXPRVGL.js";
29
+ import "./chunk-6PVPNMXU.js";
30
+ import "./chunk-26JK4RPD.js";
31
+ import "./chunk-IRH27ZC2.js";
32
+ import "./chunk-QHWCP53L.js";
33
+ import "./chunk-TEGJSJDF.js";
34
+ import "./chunk-TIRRPCFS.js";
35
+ import "./chunk-O6GEWCJA.js";
36
+ import "./chunk-T26EAKDL.js";
37
+ import "./chunk-CPBF7KYF.js";
38
+ import "./chunk-4KP2F2TE.js";
39
+ import "./chunk-3APUUXRF.js";
40
+ import "./chunk-THVU3RNH.js";
41
+ import "./chunk-LHKCY7DY.js";
42
+ import "./chunk-6FMJLI5M.js";
43
+ import "./chunk-CBBP4BMC.js";
44
+ import "./chunk-S6LOFUVP.js";
45
+ import "./chunk-K623ENWT.js";
46
+ import "./chunk-AQ37AY7B.js";
47
+ import "./chunk-N4ACHWNH.js";
48
+ import "./chunk-ZPJWUGCS.js";
49
+ import "./chunk-D4HTUMGX.js";
50
+ import "./chunk-NAVJD2PQ.js";
51
+ import "./chunk-LOY7RWQG.js";
52
+ import "./chunk-E6CJ2SMM.js";
53
+ import "./chunk-DGEIYUC3.js";
54
+ import "./chunk-MPHPFVKK.js";
55
+ import "./chunk-GLNBDYUX.js";
56
+ import "./chunk-DJ2GSRLV.js";
57
+ import "./chunk-2YCYFWYZ.js";
58
+ import "./chunk-Z3S5EMOW.js";
59
+ import "./chunk-2J3OJGTL.js";
60
+ import "./chunk-P3QQPMQA.js";
61
+ import "./chunk-XQK4XXTN.js";
62
+ import "./chunk-GLCZKT5V.js";
63
+ import "./chunk-QDK4F2N5.js";
64
+ import "./chunk-NVFSGPIF.js";
65
+ import "./chunk-VGC4I5JJ.js";
66
+ import "./chunk-3I6DUGQD.js";
67
+ import "./chunk-7ULQIS27.js";
68
+ import "./chunk-MM7TH7ZM.js";
69
+ import "./chunk-DKPJUF5F.js";
70
+ import "./chunk-46UV252V.js";
71
+ import "./chunk-ZBVS26BY.js";
72
+ import "./chunk-Q3T5KA2V.js";
73
+ import "./chunk-R2XWGR75.js";
74
+ import "./chunk-HC45LTEN.js";
75
+ import "./chunk-QARJNL2V.js";
76
+ import "./chunk-W4RQUHY3.js";
77
+ import "./chunk-G7XXKQYS.js";
78
+ import "./chunk-E2BHWIDT.js";
79
+ import "./chunk-VOQXFAY5.js";
80
+ import "./chunk-75DOP5OR.js";
81
+ import "./chunk-DMTGGOSA.js";
82
+ import "./chunk-YQ3U5MUC.js";
83
+ import "./chunk-AMDSOFFV.js";
84
+ import "./chunk-QUGAUQGJ.js";
85
+ import "./chunk-5O2XNYP6.js";
86
+ import "./chunk-J2S4EL5Y.js";
87
+ export {
88
+ ChannelSettingsError,
89
+ WorkspaceChannelSettingsStore,
90
+ assertValidChannelSecretUpdates
91
+ };
@@ -3,15 +3,20 @@
3
3
  import {
4
4
  ChannelWorkerReconcileError,
5
5
  createChannelWorkerGroup
6
- } from "./chunk-UDX5OBWR.js";
7
- import "./chunk-5NBDS5S6.js";
8
- import "./chunk-LK7CHLVP.js";
9
- import "./chunk-JLU636DO.js";
6
+ } from "./chunk-E2FN6SM7.js";
7
+ import "./chunk-CPZAH673.js";
8
+ import "./chunk-B4AJNNOL.js";
9
+ import "./chunk-2RFKHEXL.js";
10
+ import "./chunk-FCYYAB4S.js";
11
+ import "./chunk-FYJ7W2PI.js";
12
+ import "./chunk-U4VTUMMK.js";
13
+ import "./chunk-6MPDY6ZG.js";
14
+ import "./chunk-ALMR3E6Q.js";
10
15
  import "./chunk-BK2UNYWD.js";
11
16
  import "./chunk-M5GB774H.js";
12
- import "./chunk-RWTEFFPU.js";
13
- import "./chunk-UDXSXLER.js";
14
17
  import "./chunk-5HBA2Z7V.js";
18
+ import "./chunk-JCJ7LKNA.js";
19
+ import "./chunk-UDXSXLER.js";
15
20
  import "./chunk-TWPJO254.js";
16
21
  import "./chunk-H6XPXXMH.js";
17
22
  import "./chunk-5O2XNYP6.js";
@@ -2,21 +2,26 @@
2
2
  "use strict";
3
3
  import {
4
4
  ChannelWorkerReconcileError
5
- } from "./chunk-UDX5OBWR.js";
5
+ } from "./chunk-E2FN6SM7.js";
6
+ import "./chunk-CPZAH673.js";
7
+ import "./chunk-B4AJNNOL.js";
8
+ import "./chunk-2RFKHEXL.js";
6
9
  import {
7
10
  ChannelWorkerStartupError,
8
11
  ChannelWorkerStopError
9
- } from "./chunk-5NBDS5S6.js";
12
+ } from "./chunk-FCYYAB4S.js";
13
+ import "./chunk-FYJ7W2PI.js";
10
14
  import {
11
15
  ChannelDeliveryError,
12
16
  ChannelWebhookEnqueueError
13
- } from "./chunk-LK7CHLVP.js";
14
- import "./chunk-JLU636DO.js";
17
+ } from "./chunk-U4VTUMMK.js";
18
+ import "./chunk-6MPDY6ZG.js";
19
+ import "./chunk-ALMR3E6Q.js";
15
20
  import "./chunk-BK2UNYWD.js";
16
21
  import "./chunk-M5GB774H.js";
17
- import "./chunk-RWTEFFPU.js";
18
- import "./chunk-UDXSXLER.js";
19
22
  import "./chunk-5HBA2Z7V.js";
23
+ import "./chunk-JCJ7LKNA.js";
24
+ import "./chunk-UDXSXLER.js";
20
25
  import "./chunk-TWPJO254.js";
21
26
  import "./chunk-H6XPXXMH.js";
22
27
  import {
@@ -4,14 +4,16 @@ import {
4
4
  ChannelWorkerStartupError,
5
5
  ChannelWorkerStopError,
6
6
  createChannelWorkerSupervisor
7
- } from "./chunk-5NBDS5S6.js";
8
- import "./chunk-LK7CHLVP.js";
9
- import "./chunk-JLU636DO.js";
7
+ } from "./chunk-FCYYAB4S.js";
8
+ import "./chunk-FYJ7W2PI.js";
9
+ import "./chunk-U4VTUMMK.js";
10
+ import "./chunk-6MPDY6ZG.js";
11
+ import "./chunk-ALMR3E6Q.js";
10
12
  import "./chunk-BK2UNYWD.js";
11
13
  import "./chunk-M5GB774H.js";
12
- import "./chunk-RWTEFFPU.js";
13
- import "./chunk-UDXSXLER.js";
14
14
  import "./chunk-5HBA2Z7V.js";
15
+ import "./chunk-JCJ7LKNA.js";
16
+ import "./chunk-UDXSXLER.js";
15
17
  import "./chunk-TWPJO254.js";
16
18
  import "./chunk-H6XPXXMH.js";
17
19
  import "./chunk-5O2XNYP6.js";
@@ -2,21 +2,24 @@
2
2
  "use strict";
3
3
  import {
4
4
  HistoryReplayer
5
- } from "./chunk-EBJQ6AXW.js";
5
+ } from "./chunk-ANDVK2JN.js";
6
6
  import {
7
7
  ChannelDeliveryError,
8
8
  MAX_CHANNEL_DELIVERY_TEXT_LENGTH
9
- } from "./chunk-LK7CHLVP.js";
9
+ } from "./chunk-U4VTUMMK.js";
10
10
  import {
11
11
  redactLogCredentials
12
12
  } from "./chunk-M5GB774H.js";
13
13
  import {
14
14
  getResponseText
15
- } from "./chunk-PHOF65IG.js";
15
+ } from "./chunk-FRXG4ARO.js";
16
16
  import {
17
17
  MAX_CHANNEL_DELIVERY_NAME_LENGTH,
18
18
  MAX_CHANNEL_DELIVERY_TARGET_ID_LENGTH
19
- } from "./chunk-FNQ6T3CV.js";
19
+ } from "./chunk-TEGJSJDF.js";
20
+ import {
21
+ parseGoalSnapshotV2
22
+ } from "./chunk-6FMJLI5M.js";
20
23
  import {
21
24
  init_esbuild_shims
22
25
  } from "./chunk-5O2XNYP6.js";
@@ -498,7 +501,16 @@ function parseTranscriptReplayState(replay, logger) {
498
501
  );
499
502
  }
500
503
  const cumulativeUsage = isCumulativeUsage(replay["cumulativeUsage"]) ? { ...replay["cumulativeUsage"] } : createReplayCumulativeUsage();
501
- return { pendingToolCalls, cumulativeUsage };
504
+ const rawGoalState = replay["goalState"];
505
+ const goalState = rawGoalState === void 0 ? void 0 : parseGoalSnapshotV2(rawGoalState);
506
+ if (logger && rawGoalState !== void 0 && !goalState) {
507
+ logger.warn("[transcript] replay state dropped a malformed Goal state");
508
+ }
509
+ return {
510
+ pendingToolCalls,
511
+ cumulativeUsage,
512
+ ...goalState ? { goalState } : {}
513
+ };
502
514
  }
503
515
  __name(parseTranscriptReplayState, "parseTranscriptReplayState");
504
516
  function replayContext(sessionId, updates, cumulativeUsage, config) {
@@ -580,7 +592,8 @@ async function replayTranscriptRecordPage({
580
592
  const replayPageState = await replayer.replayPage(page.records, {
581
593
  pendingToolCalls: page.direction === "backward" ? [] : state.pendingToolCalls,
582
594
  finalizeDangling: page.direction === "backward" || !page.hasMore,
583
- gaps: page.gaps
595
+ gaps: page.gaps,
596
+ ...state.goalState ? { goalState: state.goalState } : {}
584
597
  });
585
598
  replayState = replayPageState.replay;
586
599
  } catch (error) {