@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
@@ -1,12 +1,21 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ CLIENT_MCP_OVER_WS_CONFIG_FLAG
5
+ } from "./chunk-CPZAH673.js";
6
+ import {
7
+ SessionNotFoundError
8
+ } from "./chunk-B4AJNNOL.js";
3
9
  import {
4
10
  ChannelWorkerStartupError
5
- } from "./chunk-5NBDS5S6.js";
11
+ } from "./chunk-FCYYAB4S.js";
6
12
  import {
7
13
  ChannelDeliveryError,
8
14
  ChannelWebhookEnqueueError
9
- } from "./chunk-LK7CHLVP.js";
15
+ } from "./chunk-U4VTUMMK.js";
16
+ import {
17
+ CHANNEL_LOOP_MCP_SERVER_NAME
18
+ } from "./chunk-JCJ7LKNA.js";
10
19
  import {
11
20
  init_esbuild_shims
12
21
  } from "./chunk-5O2XNYP6.js";
@@ -122,6 +131,75 @@ function createChannelWorkerGroup(opts) {
122
131
  ...opts.shared.restartPolicy ? { restartPolicy: opts.shared.restartPolicy } : {},
123
132
  ...opts.shared.startupTimeoutMs !== void 0 ? { startupTimeoutMs: opts.shared.startupTimeoutMs } : {},
124
133
  ...opts.shared.heartbeatTimeoutMs !== void 0 ? { heartbeatTimeoutMs: opts.shared.heartbeatTimeoutMs } : {},
134
+ registerChannelLoopMcp: /* @__PURE__ */ __name(async ({ sessionId, ownerId, sendMessage }) => {
135
+ runtime.clientMcpSenderRegistry.setSession(
136
+ CHANNEL_LOOP_MCP_SERVER_NAME,
137
+ sessionId,
138
+ sendMessage,
139
+ ownerId
140
+ );
141
+ try {
142
+ const config = {
143
+ type: "sdk",
144
+ [CLIENT_MCP_OVER_WS_CONFIG_FLAG]: true
145
+ };
146
+ const result = await runtime.bridge.addSessionRuntimeMcpServer(
147
+ sessionId,
148
+ CHANNEL_LOOP_MCP_SERVER_NAME,
149
+ config,
150
+ ownerId
151
+ );
152
+ if (result.skipped) {
153
+ throw new Error(
154
+ `runtime MCP add skipped: ${result.reason ?? "unknown"}`
155
+ );
156
+ }
157
+ if (result.shadowedSettings) {
158
+ throw new Error(
159
+ `channel loop MCP server conflicts with a configured MCP server`
160
+ );
161
+ }
162
+ if (!runtime.clientMcpSenderRegistry.ownsSession(
163
+ CHANNEL_LOOP_MCP_SERVER_NAME,
164
+ sessionId,
165
+ ownerId
166
+ )) {
167
+ throw new Error("Channel loop MCP registration was superseded.");
168
+ }
169
+ } catch (error) {
170
+ if (runtime.clientMcpSenderRegistry.deleteSession(
171
+ CHANNEL_LOOP_MCP_SERVER_NAME,
172
+ sessionId,
173
+ ownerId
174
+ )) {
175
+ await runtime.bridge.removeSessionRuntimeMcpServer(
176
+ sessionId,
177
+ CHANNEL_LOOP_MCP_SERVER_NAME,
178
+ ownerId
179
+ ).catch(() => {
180
+ });
181
+ }
182
+ throw error;
183
+ }
184
+ }, "registerChannelLoopMcp"),
185
+ unregisterChannelLoopMcp: /* @__PURE__ */ __name(async (sessionId, ownerId) => {
186
+ if (!runtime.clientMcpSenderRegistry.deleteSession(
187
+ CHANNEL_LOOP_MCP_SERVER_NAME,
188
+ sessionId,
189
+ ownerId
190
+ )) {
191
+ return;
192
+ }
193
+ try {
194
+ await runtime.bridge.removeSessionRuntimeMcpServer(
195
+ sessionId,
196
+ CHANNEL_LOOP_MCP_SERVER_NAME,
197
+ ownerId
198
+ );
199
+ } catch (error) {
200
+ if (!(error instanceof SessionNotFoundError)) throw error;
201
+ }
202
+ }, "unregisterChannelLoopMcp"),
125
203
  ...opts.onReady ? {
126
204
  onReady: /* @__PURE__ */ __name((snapshot) => {
127
205
  if (entries.get(runtime.workspaceCwd)?.generation === entryGeneration) {
@@ -544,7 +622,13 @@ function createChannelWorkerGroup(opts) {
544
622
  async deliverChannelMessage(request, workspaceCwd) {
545
623
  const entry = routeEntry(request.channelName, workspaceCwd);
546
624
  const deliver = entry?.supervisor.deliverChannelMessage;
547
- if (!entry || drainingWorkspaces.has(entry.workspaceCwd) || !deliver) {
625
+ if (entry && drainingWorkspaces.has(entry.workspaceCwd)) {
626
+ throw new ChannelDeliveryError(
627
+ "channel_worker_unavailable",
628
+ `Channel worker for channel "${request.channelName}" is unavailable while its workspace is draining.`
629
+ );
630
+ }
631
+ if (!entry || !deliver) {
548
632
  const hint = workspaceCwd ? `No channel worker for the selected workspace owns channel "${request.channelName}".` : `No channel worker owns channel "${request.channelName}".`;
549
633
  throw new ChannelDeliveryError("channel_worker_unavailable", hint);
550
634
  }
@@ -552,7 +636,13 @@ function createChannelWorkerGroup(opts) {
552
636
  },
553
637
  async enqueueWebhookTask(task) {
554
638
  const entry = routeEntry(task.channelName);
555
- if (!entry || drainingWorkspaces.has(entry.workspaceCwd)) {
639
+ if (entry && drainingWorkspaces.has(entry.workspaceCwd)) {
640
+ throw new ChannelWebhookEnqueueError(
641
+ "channel_worker_unavailable",
642
+ `Channel worker for channel "${task.channelName}" is unavailable while its workspace is draining.`
643
+ );
644
+ }
645
+ if (!entry) {
556
646
  throw new ChannelWebhookEnqueueError(
557
647
  "channel_worker_unavailable",
558
648
  `No channel worker owns channel "${task.channelName}".`
@@ -4,17 +4,19 @@ import {
4
4
  retryContext
5
5
  } from "./chunk-P3QQPMQA.js";
6
6
  import {
7
+ formatQuotaExhaustedMessage,
7
8
  getRateLimitErrorDetails,
8
9
  getRetryAfterDelayMs,
9
10
  getRetryDelayMs,
11
+ isQuotaExhaustedError,
10
12
  isQwenQuotaExceededError,
11
13
  isRateLimitError
12
- } from "./chunk-6FGBXPWM.js";
14
+ } from "./chunk-XQK4XXTN.js";
13
15
  import {
14
16
  createDebugLogger,
15
17
  getErrorStatus,
16
18
  isAbortError
17
- } from "./chunk-NL7LTRLR.js";
19
+ } from "./chunk-E2BHWIDT.js";
18
20
  import {
19
21
  init_esbuild_shims
20
22
  } from "./chunk-5O2XNYP6.js";
@@ -138,20 +140,18 @@ function isRetryAbortError(error) {
138
140
  return error instanceof Error && error.name === "CanceledError";
139
141
  }
140
142
  __name(isRetryAbortError, "isRetryAbortError");
143
+ var MAX_TRANSPORT_CAUSE_DEPTH = 4;
141
144
  function getTransportCode(error) {
142
- if (typeof error !== "object" || error === null) {
143
- return void 0;
144
- }
145
- const directCode = error.code;
146
- if (typeof directCode === "string" && isTransportCode(directCode)) {
147
- return directCode;
148
- }
149
- const cause = error instanceof Error ? error.cause : void 0;
150
- if (typeof cause === "object" && cause !== null) {
151
- const causeCode = cause.code;
152
- if (typeof causeCode === "string" && isTransportCode(causeCode)) {
153
- return causeCode;
145
+ let current = error;
146
+ for (let depth = 0; depth <= MAX_TRANSPORT_CAUSE_DEPTH; depth++) {
147
+ if (typeof current !== "object" || current === null) {
148
+ return void 0;
154
149
  }
150
+ const code = current.code;
151
+ if (typeof code === "string" && isTransportCode(code)) {
152
+ return code;
153
+ }
154
+ current = current instanceof Error ? current.cause : void 0;
155
155
  }
156
156
  return void 0;
157
157
  }
@@ -216,7 +216,10 @@ var DEFAULT_RETRY_OPTIONS = {
216
216
  };
217
217
  function defaultShouldRetry(error, extraRetryErrorCodes) {
218
218
  const status = getErrorStatus(error);
219
- return isRateLimitError(error, extraRetryErrorCodes) || status !== void 0 && status >= 500 && status < 600;
219
+ if (isRateLimitError(error, extraRetryErrorCodes) || status !== void 0 && status >= 500 && status < 600) {
220
+ return true;
221
+ }
222
+ return classifyRetryError(error, { extraRetryErrorCodes }).kind === "transport";
220
223
  }
221
224
  __name(defaultShouldRetry, "defaultShouldRetry");
222
225
  function hasRetryAfterStatus(status) {
@@ -371,6 +374,14 @@ To continue using Qwen Code, try one of these alternatives:
371
374
  After setting up your API key, run /auth to configure your provider.`
372
375
  );
373
376
  }
377
+ if (isQuotaExhaustedError(error)) {
378
+ debugLogger.error(
379
+ "Quota exhausted, fast-failing",
380
+ retryDiagnostics,
381
+ error
382
+ );
383
+ throw new Error(formatQuotaExhaustedMessage(error), { cause: error });
384
+ }
374
385
  const isTransient = isTransientCapacityError(error);
375
386
  const callerAllowsRetry = hasCustomShouldRetryOnError ? shouldRetryOnError(error) : defaultShouldRetry(error, extraRetryErrorCodes);
376
387
  const isFailFast = retryDiagnostics.diagnosis === "fail-fast";
@@ -498,7 +509,6 @@ __name(logRetryAtStatusLevel, "logRetryAtStatusLevel");
498
509
  export {
499
510
  classifyRetryError,
500
511
  isFallbackEligible,
501
- isTransientCapacityError,
502
512
  isUnattendedMode,
503
513
  delay,
504
514
  retryWithBackoff
@@ -3,21 +3,21 @@
3
3
  import {
4
4
  resolveModelConfig,
5
5
  resolveProviderProtocol
6
- } from "./chunk-PHOF65IG.js";
6
+ } from "./chunk-FRXG4ARO.js";
7
7
  import {
8
8
  external_exports
9
9
  } from "./chunk-H6XPXXMH.js";
10
10
  import {
11
11
  stripRuntimeSnapshotPrefix
12
- } from "./chunk-MZAXJAUM.js";
12
+ } from "./chunk-26JK4RPD.js";
13
13
  import {
14
14
  REASONING_EFFORT_TIERS,
15
15
  normalizeReasoningEffort
16
- } from "./chunk-XVNQMZ2I.js";
16
+ } from "./chunk-DGEIYUC3.js";
17
17
  import {
18
18
  AuthType,
19
19
  MODEL_GENERATION_CONFIG_FIELDS
20
- } from "./chunk-IKCX4CCL.js";
20
+ } from "./chunk-DKPJUF5F.js";
21
21
  import {
22
22
  init_esbuild_shims
23
23
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  resolvePath
5
- } from "./chunk-RWTEFFPU.js";
5
+ } from "./chunk-JCJ7LKNA.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -4,7 +4,7 @@ import {
4
4
  require_call_bind_apply_helpers,
5
5
  require_get_intrinsic,
6
6
  require_type
7
- } from "./chunk-T2NCM2ET.js";
7
+ } from "./chunk-T3CHYWJZ.js";
8
8
  import {
9
9
  init_esbuild_shims
10
10
  } from "./chunk-5O2XNYP6.js";
@@ -1,5 +1,12 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ CHANNEL_LOOP_MCP_IPC_TIMEOUT_MS,
5
+ MAX_CHANNEL_LOOP_MCP_IN_FLIGHT,
6
+ createChannelLoopMcpRequest,
7
+ isChannelLoopMcpControlMessage,
8
+ isChannelLoopMcpResultMessage
9
+ } from "./chunk-FYJ7W2PI.js";
3
10
  import {
4
11
  CHANNEL_DAEMON_WORKER_SENTINEL,
5
12
  CHANNEL_DELIVERY_IPC_TIMEOUT_MS,
@@ -18,26 +25,28 @@ import {
18
25
  QWEN_SERVER_TOKEN_ENV,
19
26
  createChannelDeliveryMessage,
20
27
  createChannelWebhookTaskMessage,
21
- createWorkerDiagnosticRedactor,
22
28
  isChannelDeliveryResultMessage,
23
29
  isChannelStartupReportMessage,
24
30
  isChannelStartupReportType,
25
31
  isChannelWebhookEnqueueErrorCode,
26
- isChannelWebhookTaskResultMessage,
32
+ isChannelWebhookTaskResultMessage
33
+ } from "./chunk-U4VTUMMK.js";
34
+ import {
35
+ createWorkerDiagnosticRedactor,
27
36
  normalizeWorkerDiagnostic,
28
37
  sanitizeWorkerDiagnostic
29
- } from "./chunk-LK7CHLVP.js";
38
+ } from "./chunk-6MPDY6ZG.js";
30
39
  import {
31
40
  channelSelectionNames
32
- } from "./chunk-JLU636DO.js";
33
- import {
34
- sanitizeLogText
35
- } from "./chunk-RWTEFFPU.js";
41
+ } from "./chunk-ALMR3E6Q.js";
36
42
  import {
37
43
  CHANNEL_WORKER_KILL_GRACE_MS,
38
44
  CHANNEL_WORKER_STARTUP_TIMEOUT_MS,
39
45
  CHANNEL_WORKER_STOP_GRACE_MS
40
46
  } from "./chunk-5HBA2Z7V.js";
47
+ import {
48
+ sanitizeLogText
49
+ } from "./chunk-JCJ7LKNA.js";
41
50
  import {
42
51
  init_esbuild_shims
43
52
  } from "./chunk-5O2XNYP6.js";
@@ -269,6 +278,8 @@ function createChannelWorkerSupervisor(opts) {
269
278
  let restartAttemptTimes = [];
270
279
  const pendingWebhookTasks = /* @__PURE__ */ new Map();
271
280
  const pendingChannelDeliveries = /* @__PURE__ */ new Map();
281
+ const pendingChannelLoopMcpMessages = /* @__PURE__ */ new Map();
282
+ let cleanupChannelLoopMcpRegistrations;
272
283
  let restarting;
273
284
  let disposed = false;
274
285
  const snapshotCopy = /* @__PURE__ */ __name(() => ({
@@ -365,6 +376,28 @@ function createChannelWorkerSupervisor(opts) {
365
376
  }
366
377
  return true;
367
378
  }, "settleChannelDelivery");
379
+ const rejectPendingChannelLoopMcpMessages = /* @__PURE__ */ __name((message) => {
380
+ for (const pending of pendingChannelLoopMcpMessages.values()) {
381
+ clearTimeout(pending.timer);
382
+ pending.reject(new Error(message));
383
+ }
384
+ pendingChannelLoopMcpMessages.clear();
385
+ }, "rejectPendingChannelLoopMcpMessages");
386
+ const settleChannelLoopMcpMessage = /* @__PURE__ */ __name((message) => {
387
+ if (!isChannelLoopMcpResultMessage(message)) return false;
388
+ const pending = pendingChannelLoopMcpMessages.get(message.id);
389
+ if (!pending) return true;
390
+ pendingChannelLoopMcpMessages.delete(message.id);
391
+ clearTimeout(pending.timer);
392
+ if (message.ok) {
393
+ pending.resolve(message.payload ?? {});
394
+ } else {
395
+ pending.reject(
396
+ new Error(message.error ?? "Channel loop MCP request failed.")
397
+ );
398
+ }
399
+ return true;
400
+ }, "settleChannelLoopMcpMessage");
368
401
  const pruneRestartAttempts = /* @__PURE__ */ __name((nowMs) => {
369
402
  restartAttemptTimes = restartAttemptTimes.filter(
370
403
  (attemptMs) => nowMs - attemptMs < restartPolicy.windowMs
@@ -527,6 +560,57 @@ function createChannelWorkerSupervisor(opts) {
527
560
  if (startedChild.pid !== void 0) {
528
561
  snapshot = { ...snapshot, pid: startedChild.pid };
529
562
  }
563
+ const channelLoopMcpOwnerId = `channel-worker:${randomUUID()}`;
564
+ const registeredChannelLoopMcpSessions = /* @__PURE__ */ new Set();
565
+ const activeChannelLoopMcpControls = /* @__PURE__ */ new Set();
566
+ const sendToStartedChild = /* @__PURE__ */ __name((message, callback) => {
567
+ if (child !== startedChild || !startedChild.send) {
568
+ throw new Error("Channel worker IPC is unavailable.");
569
+ }
570
+ return callback ? startedChild.send.call(startedChild, message, callback) : startedChild.send.call(startedChild, message);
571
+ }, "sendToStartedChild");
572
+ const sendChannelLoopMcpMessage = /* @__PURE__ */ __name((sessionId, payload) => {
573
+ if (pendingChannelLoopMcpMessages.size >= MAX_CHANNEL_LOOP_MCP_IN_FLIGHT) {
574
+ return Promise.reject(new Error("Channel loop MCP IPC queue is full."));
575
+ }
576
+ const message = createChannelLoopMcpRequest(sessionId, payload);
577
+ return new Promise((resolve, reject) => {
578
+ const timer = setTimeout(() => {
579
+ pendingChannelLoopMcpMessages.delete(message.id);
580
+ reject(new Error("Channel loop MCP IPC timed out."));
581
+ }, CHANNEL_LOOP_MCP_IPC_TIMEOUT_MS);
582
+ timer.unref();
583
+ pendingChannelLoopMcpMessages.set(message.id, {
584
+ resolve,
585
+ reject,
586
+ timer
587
+ });
588
+ try {
589
+ sendToStartedChild(message, (error) => {
590
+ if (!error) return;
591
+ const pending = pendingChannelLoopMcpMessages.get(message.id);
592
+ if (!pending) return;
593
+ pendingChannelLoopMcpMessages.delete(message.id);
594
+ clearTimeout(pending.timer);
595
+ pending.reject(new Error("Channel loop MCP IPC send failed."));
596
+ });
597
+ } catch {
598
+ const pending = pendingChannelLoopMcpMessages.get(message.id);
599
+ if (!pending) return;
600
+ pendingChannelLoopMcpMessages.delete(message.id);
601
+ clearTimeout(pending.timer);
602
+ pending.reject(new Error("Channel loop MCP IPC send failed."));
603
+ }
604
+ });
605
+ }, "sendChannelLoopMcpMessage");
606
+ const cleanupLaunchChannelLoopMcpRegistrations = /* @__PURE__ */ __name(() => {
607
+ for (const sessionId of registeredChannelLoopMcpSessions) {
608
+ void opts.unregisterChannelLoopMcp?.(sessionId, channelLoopMcpOwnerId).catch(() => {
609
+ });
610
+ }
611
+ registeredChannelLoopMcpSessions.clear();
612
+ }, "cleanupLaunchChannelLoopMcpRegistrations");
613
+ cleanupChannelLoopMcpRegistrations = cleanupLaunchChannelLoopMcpRegistrations;
530
614
  await new Promise((resolve, reject) => {
531
615
  let settled = false;
532
616
  let ready = false;
@@ -723,6 +807,61 @@ function createChannelWorkerSupervisor(opts) {
723
807
  };
724
808
  armStaleHeartbeatTimer(startedChild);
725
809
  }, "handleHeartbeat");
810
+ const sendChannelLoopMcpControlResult = /* @__PURE__ */ __name((id, result) => {
811
+ try {
812
+ sendToStartedChild({
813
+ type: "channel_loop_mcp_control_result",
814
+ id,
815
+ ...result
816
+ });
817
+ } catch {
818
+ }
819
+ }, "sendChannelLoopMcpControlResult");
820
+ const handleChannelLoopMcpControl = /* @__PURE__ */ __name((message) => {
821
+ if (activeChannelLoopMcpControls.size >= MAX_CHANNEL_LOOP_MCP_IN_FLIGHT) {
822
+ sendChannelLoopMcpControlResult(message.id, {
823
+ ok: false,
824
+ error: "Channel loop MCP IPC queue is full."
825
+ });
826
+ return;
827
+ }
828
+ activeChannelLoopMcpControls.add(message.id);
829
+ const operation = message.type === "channel_loop_mcp_register" ? opts.registerChannelLoopMcp?.({
830
+ sessionId: message.sessionId,
831
+ ownerId: channelLoopMcpOwnerId,
832
+ sendMessage: /* @__PURE__ */ __name((payload) => sendChannelLoopMcpMessage(message.sessionId, payload), "sendMessage")
833
+ }).then(async () => {
834
+ if (child !== startedChild) {
835
+ await opts.unregisterChannelLoopMcp?.(
836
+ message.sessionId,
837
+ channelLoopMcpOwnerId
838
+ );
839
+ throw new Error("Channel worker exited during MCP setup.");
840
+ }
841
+ registeredChannelLoopMcpSessions.add(message.sessionId);
842
+ }) ?? Promise.reject(
843
+ new Error("Channel loop MCP registration is unavailable.")
844
+ ) : opts.unregisterChannelLoopMcp?.(
845
+ message.sessionId,
846
+ channelLoopMcpOwnerId
847
+ ).then(() => {
848
+ registeredChannelLoopMcpSessions.delete(message.sessionId);
849
+ }) ?? Promise.resolve();
850
+ void operation.then(() => {
851
+ sendChannelLoopMcpControlResult(message.id, { ok: true });
852
+ }).catch((error) => {
853
+ sendChannelLoopMcpControlResult(message.id, {
854
+ ok: false,
855
+ error: sanitizeWorkerDiagnostic(
856
+ error instanceof Error ? error.message : String(error),
857
+ 512,
858
+ redaction
859
+ ) || "Channel loop MCP operation failed."
860
+ });
861
+ }).finally(() => {
862
+ activeChannelLoopMcpControls.delete(message.id);
863
+ });
864
+ }, "handleChannelLoopMcpControl");
726
865
  function handleMessage(message) {
727
866
  if (child !== startedChild) return;
728
867
  if (settleChannelDelivery(message)) {
@@ -731,6 +870,13 @@ function createChannelWorkerSupervisor(opts) {
731
870
  if (settleWebhookTask(message)) {
732
871
  return;
733
872
  }
873
+ if (settleChannelLoopMcpMessage(message)) {
874
+ return;
875
+ }
876
+ if (isChannelLoopMcpControlMessage(message)) {
877
+ handleChannelLoopMcpControl(message);
878
+ return;
879
+ }
734
880
  if (!ready && isChannelStartupReportType(message)) {
735
881
  handleStartupReport(message);
736
882
  } else if (!ready && isReadyMessage(message)) {
@@ -760,6 +906,11 @@ function createChannelWorkerSupervisor(opts) {
760
906
  "channel_worker_unavailable",
761
907
  "Channel worker exited."
762
908
  );
909
+ rejectPendingChannelLoopMcpMessages("Channel worker exited.");
910
+ cleanupLaunchChannelLoopMcpRegistrations();
911
+ if (cleanupChannelLoopMcpRegistrations === cleanupLaunchChannelLoopMcpRegistrations) {
912
+ cleanupChannelLoopMcpRegistrations = void 0;
913
+ }
763
914
  child = void 0;
764
915
  if ((ready || kind === "restart") && !stopping) {
765
916
  scheduleRestart();
@@ -839,6 +990,7 @@ function createChannelWorkerSupervisor(opts) {
839
990
  "channel_worker_unavailable",
840
991
  "Channel worker stopped."
841
992
  );
993
+ rejectPendingChannelLoopMcpMessages("Channel worker stopped.");
842
994
  if (!child || snapshot.state === "exited" || snapshot.state === "failed" && hasObservedExit(snapshot) || snapshot.state === "stopped") {
843
995
  child = void 0;
844
996
  snapshot = { ...snapshot, state: "stopped" };
@@ -887,6 +1039,9 @@ function createChannelWorkerSupervisor(opts) {
887
1039
  "channel_worker_unavailable",
888
1040
  "Channel worker stopped."
889
1041
  );
1042
+ rejectPendingChannelLoopMcpMessages("Channel worker stopped.");
1043
+ cleanupChannelLoopMcpRegistrations?.();
1044
+ cleanupChannelLoopMcpRegistrations = void 0;
890
1045
  if (!child || snapshot.state === "exited" || snapshot.state === "failed" && hasObservedExit(snapshot) || snapshot.state === "stopped") {
891
1046
  clearRestartTimer();
892
1047
  clearStaleHeartbeatTimer();
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  isSupportedImageMimeType
5
- } from "./chunk-FODK6UMO.js";
5
+ } from "./chunk-MPHPFVKK.js";
6
6
  import {
7
7
  TextTokenizer
8
8
  } from "./chunk-46UV252V.js";
9
9
  import {
10
10
  createDebugLogger
11
- } from "./chunk-NL7LTRLR.js";
11
+ } from "./chunk-E2BHWIDT.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";