@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,81 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-5O2XNYP6.js";
6
+ import {
7
+ __name
8
+ } from "./chunk-J2S4EL5Y.js";
9
+
10
+ // packages/cli/src/commands/channel/channel-registry.ts
11
+ init_esbuild_shims();
12
+ var registry = /* @__PURE__ */ new Map();
13
+ var builtinsPromise = null;
14
+ function ensureBuiltins() {
15
+ if (!builtinsPromise) {
16
+ builtinsPromise = (async () => {
17
+ const labelled = [
18
+ { name: "telegram", promise: import("./dist-ZHXOBXDN.js") },
19
+ { name: "weixin", promise: import("./dist-OAOC5OV4.js") },
20
+ { name: "dingtalk", promise: import("./dist-SL2LUMML.js") },
21
+ { name: "wecom", promise: import("./dist-PVEAFLHY.js") },
22
+ { name: "feishu", promise: import("./dist-2PERFI23.js") },
23
+ { name: "qqbot", promise: import("./dist-WGMNT3JQ.js") },
24
+ { name: "github", promise: import("./dist-26BIMQT6.js") },
25
+ { name: "gitlab", promise: import("./dist-ULIG4M5H.js") }
26
+ ];
27
+ const results = await Promise.allSettled(labelled.map((l) => l.promise));
28
+ for (let i = 0; i < results.length; i++) {
29
+ const result = results[i];
30
+ if (result.status === "fulfilled") {
31
+ registry.set(result.value.plugin.channelType, result.value.plugin);
32
+ } else {
33
+ process.stderr.write(
34
+ `[channel-registry] Failed to load "${labelled[i].name}" channel: ${result.reason}
35
+ `
36
+ );
37
+ }
38
+ }
39
+ })();
40
+ }
41
+ return builtinsPromise;
42
+ }
43
+ __name(ensureBuiltins, "ensureBuiltins");
44
+ function registerPlugin(plugin) {
45
+ if (registry.has(plugin.channelType)) {
46
+ throw new Error(
47
+ `Channel type "${plugin.channelType}" is already registered.`
48
+ );
49
+ }
50
+ registry.set(plugin.channelType, plugin);
51
+ }
52
+ __name(registerPlugin, "registerPlugin");
53
+ async function getPlugin(channelType) {
54
+ await ensureBuiltins();
55
+ return registry.get(channelType);
56
+ }
57
+ __name(getPlugin, "getPlugin");
58
+ async function supportedTypes() {
59
+ await ensureBuiltins();
60
+ return [...registry.keys()];
61
+ }
62
+ __name(supportedTypes, "supportedTypes");
63
+ async function supportedChannelCatalog() {
64
+ await ensureBuiltins();
65
+ return [...registry.values()].map(
66
+ ({ channelType, displayName, management }) => ({
67
+ type: channelType,
68
+ displayName,
69
+ manageable: management !== void 0,
70
+ fields: management?.fields ?? []
71
+ })
72
+ );
73
+ }
74
+ __name(supportedChannelCatalog, "supportedChannelCatalog");
75
+
76
+ export {
77
+ registerPlugin,
78
+ getPlugin,
79
+ supportedTypes,
80
+ supportedChannelCatalog
81
+ };
@@ -3,16 +3,16 @@
3
3
  import {
4
4
  InvalidStreamError,
5
5
  createOpenAIReasoningThoughtPart
6
- } from "./chunk-BPJSQIJX.js";
6
+ } from "./chunk-2J3OJGTL.js";
7
7
  import {
8
8
  convertSchema,
9
9
  relaxSchemaForFunctionCalling,
10
10
  safeJsonParse,
11
11
  setGenAiUsageProvenance
12
- } from "./chunk-H5FFA6TH.js";
12
+ } from "./chunk-QTHQ6Z5X.js";
13
13
  import {
14
14
  setToolCallPreparations
15
- } from "./chunk-LS77BEZP.js";
15
+ } from "./chunk-GLCZKT5V.js";
16
16
  import {
17
17
  TOKEN_ESTIMATE_UNITS_PER_TOKEN,
18
18
  estimateTextTokenUnits,
@@ -21,7 +21,7 @@ import {
21
21
  } from "./chunk-46UV252V.js";
22
22
  import {
23
23
  createDebugLogger
24
- } from "./chunk-NL7LTRLR.js";
24
+ } from "./chunk-E2BHWIDT.js";
25
25
  import {
26
26
  FinishReason,
27
27
  GenerateContentResponse
@@ -202,7 +202,9 @@ function convertGeminiToolParametersToOpenAI(parameters) {
202
202
  }
203
203
  const result = {};
204
204
  for (const [key, value] of Object.entries(obj)) {
205
- if (key === "type" && typeof value === "string") {
205
+ if (typeof value === "object" && value !== null) {
206
+ result[key] = convertTypes(value);
207
+ } else if (key === "type" && typeof value === "string") {
206
208
  const lowerValue = value.toLowerCase();
207
209
  if (lowerValue === "integer") {
208
210
  result[key] = "integer";
@@ -224,8 +226,6 @@ function convertGeminiToolParametersToOpenAI(parameters) {
224
226
  } else {
225
227
  result[key] = value;
226
228
  }
227
- } else if (typeof value === "object") {
228
- result[key] = convertTypes(value);
229
229
  } else {
230
230
  result[key] = value;
231
231
  }
@@ -9,16 +9,19 @@ import {
9
9
 
10
10
  // packages/cli/src/serve/workspace-skills-mapping.ts
11
11
  init_esbuild_shims();
12
- function mapSkillConfigToStatus(skill, disabledSkillNames = /* @__PURE__ */ new Set(), opts = {}) {
13
- const userDisabled = disabledSkillNames.has(skill.name.toLowerCase());
12
+ function mapSkillConfigToStatus(skill, disablements = /* @__PURE__ */ new Map(), opts = {}) {
13
+ const disablement = disablements.get(skill.name.toLowerCase());
14
+ const disabledReason = opts.disabled ? "inactive_extension" : disablement?.reason;
14
15
  const modelInvocable = skill.disableModelInvocation !== true;
15
16
  return {
16
17
  kind: "skill",
17
- status: opts.disabled || userDisabled ? "disabled" : "ok",
18
+ status: disabledReason ? "disabled" : "ok",
18
19
  name: skill.name,
19
20
  description: skill.description,
20
21
  level: skill.level,
21
22
  modelInvocable,
23
+ ...disabledReason ? { disabledReason } : {},
24
+ ...!opts.disabled && disablement?.lockedScope ? { lockedScope: disablement.lockedScope } : {},
22
25
  ...skill.userInvocable === false ? { userInvocable: false } : {},
23
26
  installedPath: skill.filePath,
24
27
  ...skill.argumentHint ? { argumentHint: skill.argumentHint } : {},
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  isPrivateHost
5
- } from "./chunk-NH6KE4JX.js";
5
+ } from "./chunk-LOY7RWQG.js";
6
6
  import {
7
7
  loadUndici
8
- } from "./chunk-2JZBVYTU.js";
8
+ } from "./chunk-Q3T5KA2V.js";
9
9
  import {
10
10
  getErrorMessage
11
- } from "./chunk-NL7LTRLR.js";
11
+ } from "./chunk-E2BHWIDT.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  delay
5
- } from "./chunk-USTWD7QV.js";
5
+ } from "./chunk-E6CJ2SMM.js";
6
6
  import {
7
7
  isTlsVerificationDisabled
8
- } from "./chunk-2JZBVYTU.js";
8
+ } from "./chunk-Q3T5KA2V.js";
9
9
  import {
10
10
  getErrorMessage
11
- } from "./chunk-NL7LTRLR.js";
11
+ } from "./chunk-E2BHWIDT.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -2,15 +2,15 @@
2
2
  "use strict";
3
3
  import {
4
4
  sanitizeFilenameForDisplay
5
- } from "./chunk-IPUUTYMV.js";
5
+ } from "./chunk-YDLJGZHL.js";
6
6
  import {
7
7
  t
8
- } from "./chunk-LKEJ26GS.js";
8
+ } from "./chunk-B3TA3IF5.js";
9
9
  import {
10
10
  fetchGitDiff,
11
11
  findProviderByCredentials,
12
12
  resolveMetadataKey
13
- } from "./chunk-PHOF65IG.js";
13
+ } from "./chunk-FRXG4ARO.js";
14
14
  import {
15
15
  init_esbuild_shims
16
16
  } from "./chunk-5O2XNYP6.js";
@@ -274,6 +274,115 @@ var diffCommand = {
274
274
  action: diffAction
275
275
  };
276
276
 
277
+ // packages/cli/src/ui/utils/inline-math.ts
278
+ init_esbuild_shims();
279
+ var INLINE_MATH_MAX_CHARS = 1024;
280
+ var INLINE_CODE_SPAN_PATTERN_SOURCE = String.raw`(?<!\`)(?<inlineCodeFence>\`+)(?!\`).+?(?<!\`)\k<inlineCodeFence>(?!\`)`;
281
+ var INLINE_CODE_SPAN_RE = new RegExp(INLINE_CODE_SPAN_PATTERN_SOURCE, "g");
282
+ function isEscapedAt(text, index) {
283
+ let slashCount = 0;
284
+ for (let cursor = index - 1; cursor >= 0 && text[cursor] === "\\"; cursor -= 1) {
285
+ slashCount += 1;
286
+ }
287
+ return slashCount % 2 === 1;
288
+ }
289
+ __name(isEscapedAt, "isEscapedAt");
290
+ function isUnescapedDollarAt(text, index) {
291
+ return text[index] === "$" && !isEscapedAt(text, index);
292
+ }
293
+ __name(isUnescapedDollarAt, "isUnescapedDollarAt");
294
+ function unescapeMarkdownDollars(text) {
295
+ return text.replace(
296
+ /(\\+)\$/g,
297
+ (_match, slashes) => `${"\\".repeat(Math.floor(slashes.length / 2))}$`
298
+ );
299
+ }
300
+ __name(unescapeMarkdownDollars, "unescapeMarkdownDollars");
301
+ function unescapeMarkdownBeforeMath(text) {
302
+ return unescapeMarkdownDollars(`${text}$`).slice(0, -1);
303
+ }
304
+ __name(unescapeMarkdownBeforeMath, "unescapeMarkdownBeforeMath");
305
+ function readInlineMathSpan(text, index) {
306
+ if (!isUnescapedDollarAt(text, index)) {
307
+ return null;
308
+ }
309
+ const previous = text[index - 1] ?? "";
310
+ const next = text[index + 1] ?? "";
311
+ if (/\w/.test(previous) || isUnescapedDollarAt(text, index - 1) || !next || /[\s\d$]/.test(next)) {
312
+ return null;
313
+ }
314
+ let closingIndex = index + 1;
315
+ while (closingIndex < text.length && text[closingIndex] !== "\n" && closingIndex - index - 1 <= INLINE_MATH_MAX_CHARS && !isUnescapedDollarAt(text, closingIndex)) {
316
+ closingIndex += 1;
317
+ }
318
+ if (!isUnescapedDollarAt(text, closingIndex)) {
319
+ return null;
320
+ }
321
+ const content = text.slice(index + 1, closingIndex);
322
+ const following = text[closingIndex + 1] ?? "";
323
+ if (content.length > INLINE_MATH_MAX_CHARS || /\s$/.test(content) || /[\w$]/.test(following)) {
324
+ return null;
325
+ }
326
+ return {
327
+ content,
328
+ index,
329
+ raw: text.slice(index, closingIndex + 1)
330
+ };
331
+ }
332
+ __name(readInlineMathSpan, "readInlineMathSpan");
333
+ function findNextInlineMath(text, fromIndex = 0) {
334
+ for (let index = fromIndex; index < text.length; index += 1) {
335
+ const span = readInlineMathSpan(text, index);
336
+ if (span) {
337
+ return span;
338
+ }
339
+ }
340
+ return null;
341
+ }
342
+ __name(findNextInlineMath, "findNextInlineMath");
343
+ function* mergeInlineMathMatches(text, markupRegex, enableInlineMath = true) {
344
+ markupRegex.lastIndex = 0;
345
+ const markupMatches = text.matchAll(markupRegex);
346
+ let nextMarkup = markupMatches.next();
347
+ let nextMath = enableInlineMath ? findNextInlineMath(text) : null;
348
+ let cursor = 0;
349
+ while (!nextMarkup.done || nextMath) {
350
+ while (!nextMarkup.done && (nextMarkup.value.index ?? 0) < cursor) {
351
+ nextMarkup = markupMatches.next();
352
+ }
353
+ if (nextMath && nextMath.index < cursor) {
354
+ nextMath = findNextInlineMath(text, cursor);
355
+ }
356
+ const markupIndex = nextMarkup.done ? Number.POSITIVE_INFINITY : nextMarkup.value.index ?? 0;
357
+ const mathIndex = nextMath?.index ?? Number.POSITIVE_INFINITY;
358
+ if (!nextMarkup.done && markupIndex <= mathIndex) {
359
+ const match = nextMarkup.value;
360
+ yield { kind: "markup", match };
361
+ cursor = markupIndex + match[0].length;
362
+ nextMarkup = markupMatches.next();
363
+ } else if (nextMath) {
364
+ yield { kind: "math", span: nextMath };
365
+ cursor = mathIndex + nextMath.raw.length;
366
+ nextMath = findNextInlineMath(text, cursor);
367
+ }
368
+ }
369
+ }
370
+ __name(mergeInlineMathMatches, "mergeInlineMathMatches");
371
+ function findInlineMathExpressions(text) {
372
+ const expressions = [];
373
+ for (const token of mergeInlineMathMatches(text, INLINE_CODE_SPAN_RE)) {
374
+ if (token.kind === "math") {
375
+ expressions.push(token.span.content);
376
+ }
377
+ }
378
+ return expressions;
379
+ }
380
+ __name(findInlineMathExpressions, "findInlineMathExpressions");
381
+ function readInlineMathSpanAt(text, index) {
382
+ return readInlineMathSpan(text, index)?.raw ?? null;
383
+ }
384
+ __name(readInlineMathSpanAt, "readInlineMathSpanAt");
385
+
277
386
  // packages/cli/src/utils/systemInfoFields.ts
278
387
  init_esbuild_shims();
279
388
  function getSystemInfoFields(info) {
@@ -390,10 +499,15 @@ init_esbuild_shims();
390
499
  function calculateCost(args) {
391
500
  const { inputTokens, outputTokens, pricing } = args;
392
501
  if (!pricing) return null;
502
+ if (pricing.inputPerMillionTokens == null && pricing.outputPerMillionTokens == null) {
503
+ return null;
504
+ }
505
+ if (inputTokens <= 0 && outputTokens <= 0) {
506
+ return null;
507
+ }
393
508
  const inputCost = pricing.inputPerMillionTokens != null ? inputTokens / 1e6 * pricing.inputPerMillionTokens : 0;
394
509
  const outputCost = pricing.outputPerMillionTokens != null ? outputTokens / 1e6 * pricing.outputPerMillionTokens : 0;
395
- const total = inputCost + outputCost;
396
- return total > 0 ? total : null;
510
+ return inputCost + outputCost;
397
511
  }
398
512
  __name(calculateCost, "calculateCost");
399
513
 
@@ -418,6 +532,12 @@ function levelLabel(level) {
418
532
  __name(levelLabel, "levelLabel");
419
533
 
420
534
  export {
535
+ INLINE_CODE_SPAN_PATTERN_SOURCE,
536
+ unescapeMarkdownDollars,
537
+ unescapeMarkdownBeforeMath,
538
+ mergeInlineMathMatches,
539
+ findInlineMathExpressions,
540
+ readInlineMathSpanAt,
421
541
  getSystemInfoFields,
422
542
  calculateErrorRate,
423
543
  calculateAverageLatency,
@@ -435,6 +555,11 @@ export {
435
555
  * Copyright 2025 Google LLC
436
556
  * SPDX-License-Identifier: Apache-2.0
437
557
  */
558
+ /**
559
+ * @license
560
+ * Copyright 2026 Qwen Team
561
+ * SPDX-License-Identifier: Apache-2.0
562
+ */
438
563
  /**
439
564
  * @license
440
565
  * Copyright 2025 Qwen
@@ -3,19 +3,19 @@
3
3
  import {
4
4
  isLoopbackBind
5
5
  } from "./chunk-RXFQM6FQ.js";
6
- import {
7
- CLIENT_MCP_OVER_WS_CONFIG_FLAG
8
- } from "./chunk-3SJ43L4W.js";
9
6
  import {
10
7
  require_lib
11
- } from "./chunk-WBL3FJEU.js";
8
+ } from "./chunk-FC4KQFCS.js";
12
9
  import {
13
- require_mime_db
14
- } from "./chunk-T2NCM2ET.js";
10
+ CLIENT_MCP_OVER_WS_CONFIG_FLAG
11
+ } from "./chunk-CPZAH673.js";
15
12
  import {
16
13
  MAX_WORKSPACE_PATH_LENGTH,
17
14
  translateAndCheckAbsoluteWorkspacePath
18
15
  } from "./chunk-2RFKHEXL.js";
16
+ import {
17
+ require_mime_db
18
+ } from "./chunk-K6KS3LTN.js";
19
19
  import {
20
20
  writeStderrLine
21
21
  } from "./chunk-OWAK7LMW.js";
@@ -16433,6 +16433,8 @@ var ClientMcpSenderRegistry = class {
16433
16433
  __name(this, "ClientMcpSenderRegistry");
16434
16434
  }
16435
16435
  senders = /* @__PURE__ */ new Map();
16436
+ sessionSenders = /* @__PURE__ */ new Map();
16437
+ sessionScopedServerNames = /* @__PURE__ */ new Set();
16436
16438
  /**
16437
16439
  * Record a server's WS sender, owned by `owner` (the registering
16438
16440
  * connection's stable client id). Idempotent; last writer wins and takes
@@ -16455,6 +16457,27 @@ var ClientMcpSenderRegistry = class {
16455
16457
  owns(serverName, owner) {
16456
16458
  return this.senders.get(serverName)?.owner === owner;
16457
16459
  }
16460
+ setSession(serverName, sessionId, sender, owner) {
16461
+ let bySession = this.sessionSenders.get(serverName);
16462
+ if (!bySession) {
16463
+ bySession = /* @__PURE__ */ new Map();
16464
+ this.sessionSenders.set(serverName, bySession);
16465
+ }
16466
+ bySession.set(sessionId, { sender, owner });
16467
+ this.sessionScopedServerNames.add(serverName);
16468
+ }
16469
+ ownsSession(serverName, sessionId, owner) {
16470
+ return this.sessionSenders.get(serverName)?.get(sessionId)?.owner === owner;
16471
+ }
16472
+ deleteSession(serverName, sessionId, owner) {
16473
+ const bySession = this.sessionSenders.get(serverName);
16474
+ if (bySession?.get(sessionId)?.owner !== owner) return false;
16475
+ bySession.delete(sessionId);
16476
+ if (bySession.size === 0) {
16477
+ this.sessionSenders.delete(serverName);
16478
+ }
16479
+ return true;
16480
+ }
16458
16481
  /** Currently-registered server names (tests / accounting). */
16459
16482
  serverNames() {
16460
16483
  return [...this.senders.keys()];
@@ -16468,8 +16491,37 @@ var ClientMcpSenderRegistry = class {
16468
16491
  */
16469
16492
  lookup = /* @__PURE__ */ __name((serverName) => {
16470
16493
  const entry = this.senders.get(serverName);
16471
- if (!entry) return void 0;
16472
- return (payload) => entry.sender(serverName, payload);
16494
+ const sessionEntries = this.sessionSenders.get(serverName);
16495
+ if (!entry && !sessionEntries) return void 0;
16496
+ return (payload, context) => {
16497
+ if (context?.sessionId) {
16498
+ const sessionEntry = sessionEntries?.get(context.sessionId);
16499
+ if (sessionEntry) return sessionEntry.sender(payload);
16500
+ if (this.sessionScopedServerNames.has(serverName)) {
16501
+ return Promise.reject(
16502
+ new Error(
16503
+ `No session-scoped MCP sender for '${serverName}' in session '${context.sessionId}'.`
16504
+ )
16505
+ );
16506
+ }
16507
+ }
16508
+ if (this.sessionScopedServerNames.has(serverName)) {
16509
+ return Promise.reject(
16510
+ new Error(
16511
+ `Session-scoped MCP server '${serverName}' requires a session context.`
16512
+ )
16513
+ );
16514
+ }
16515
+ if (!entry) {
16516
+ return Promise.reject(
16517
+ new Error(`No client MCP sender for '${serverName}'.`)
16518
+ );
16519
+ }
16520
+ return entry.sender(
16521
+ serverName,
16522
+ payload
16523
+ );
16524
+ };
16473
16525
  }, "lookup");
16474
16526
  };
16475
16527
  function createClientMcpServerProvider(registry, bridge, originatorClientId) {
@@ -16544,6 +16596,7 @@ var SERVE_CAPABILITY_REGISTRY = {
16544
16596
  // must not be polled in a tight loop.
16545
16597
  session_info: { since: "v1" },
16546
16598
  session_source_metadata: { since: "v1" },
16599
+ session_side_task: { since: "v1" },
16547
16600
  session_prompt: { since: "v1" },
16548
16601
  session_cancel: { since: "v1" },
16549
16602
  session_events: { since: "v1" },
@@ -16593,6 +16646,7 @@ var SERVE_CAPABILITY_REGISTRY = {
16593
16646
  session_context_usage: { since: "v1" },
16594
16647
  session_supported_commands: { since: "v1" },
16595
16648
  session_tasks: { since: "v1" },
16649
+ session_monitor_tool_correlation: { since: "v1" },
16596
16650
  session_stats: { since: "v1" },
16597
16651
  session_lsp: { since: "v1" },
16598
16652
  session_status: { since: "v1" },
@@ -16629,6 +16683,14 @@ var SERVE_CAPABILITY_REGISTRY = {
16629
16683
  // advertise the text/list/stat/glob surface without byte-window
16630
16684
  // support.
16631
16685
  workspace_file_bytes: { since: "v1" },
16686
+ // Daemon supports byte-cursor paging on `GET /file`: responses carry
16687
+ // `nextCursor`/`hasMore` and requests accept `cursor`. A separate tag from
16688
+ // `workspace_file_read` because the convention here is that new behavior
16689
+ // gets a new tag — a client that preflighted the old one must not silently
16690
+ // receive a surface it cannot recognise. Same split as
16691
+ // `workspace_file_bytes` from `workspace_file_read`, and
16692
+ // `session_transcript_pagination` from `session_transcript`.
16693
+ workspace_file_read_cursor: { since: "v1" },
16632
16694
  // Daemon supports hash-aware text mutation routes
16633
16695
  // (`POST /file/write`, `POST /file/edit`) behind the strict mutation
16634
16696
  // gate. Clients should still pre-flight `require_auth` separately for
@@ -16663,6 +16725,9 @@ var SERVE_CAPABILITY_REGISTRY = {
16663
16725
  // Inspect bound workspace trust and request local operator action.
16664
16726
  // Remote clients cannot directly write trustedFolders.json.
16665
16727
  workspace_trust: { since: "v1" },
16728
+ // Workspace trust policy changes rebuild the affected runtime generation
16729
+ // without restarting the daemon. V2 trust status exposes convergence.
16730
+ workspace_trust_hot_reload: { since: "v1" },
16666
16731
  // `POST /workspace/init` scaffolds an empty
16667
16732
  // `QWEN.md` (or whatever `getCurrentGeminiMdFilename()` returns) at
16668
16733
  // the bound workspace root. Body: `{force?: boolean}`. Default
@@ -16676,6 +16741,12 @@ var SERVE_CAPABILITY_REGISTRY = {
16676
16741
  // explicit consent. The route reuses the interactive `/setup-github`
16677
16742
  // release lookup, workflow download, and `.gitignore` update logic.
16678
16743
  workspace_github_setup: { since: "v1" },
16744
+ // `GET /workspaces/:workspace/github/prs` lists the open pull requests
16745
+ // of the workspace's GitHub remote via the `gh` CLI (read-only). The
16746
+ // tag means the route contract exists; runtime availability of `gh`
16747
+ // and its auth is reported per-request through the
16748
+ // `github_cli_unavailable` / `github_prs_failed` error codes.
16749
+ workspace_github_prs: { since: "v1" },
16679
16750
  // `POST /workspace/mcp/:server/restart` performs
16680
16751
  // a single-server MCP restart (disconnect + reconnect + rediscover)
16681
16752
  // through the ACP child's `McpClientManager`. Pre-checks the live
@@ -16788,6 +16859,8 @@ var SERVE_CAPABILITY_REGISTRY = {
16788
16859
  // Runtime GET/PUT/DELETE control for daemon-managed channel selection.
16789
16860
  // The route exists even when no selection was supplied at daemon boot.
16790
16861
  channel_control: { since: "v1" },
16862
+ // Sanitized workspace Channel configuration, lifecycle, and pairing.
16863
+ channel_management: { since: "v1" },
16791
16864
  // Read-only workspace graph of recently observed channel contacts.
16792
16865
  workspace_channel_observed_contacts: { since: "v1" },
16793
16866
  // Multi-workspace session routing. Advertised only when one daemon hosts
@@ -16910,8 +16983,16 @@ var CONDITIONAL_SERVE_FEATURES = /* @__PURE__ */ new Map([
16910
16983
  ],
16911
16984
  ["rate_limit", (toggles) => toggles.rateLimit === true],
16912
16985
  ["workspace_reload", (toggles) => toggles.reloadAvailable === true],
16986
+ [
16987
+ "workspace_trust_hot_reload",
16988
+ (toggles) => toggles.workspaceTrustHotReloadAvailable === true
16989
+ ],
16913
16990
  ["channel_reload", (toggles) => toggles.channelReloadAvailable === true],
16914
16991
  ["channel_control", (toggles) => toggles.channelControlAvailable === true],
16992
+ [
16993
+ "channel_management",
16994
+ (toggles) => toggles.channelManagementAvailable === true
16995
+ ],
16915
16996
  [
16916
16997
  "multi_workspace_sessions",
16917
16998
  (toggles) => toggles.multiWorkspaceSessionsEnabled === true
@@ -17703,6 +17784,8 @@ async function buildDaemonStatusResponse(detail, input) {
17703
17784
  listenerMaxConnections: listenerMaxConnections(input.opts.maxConnections),
17704
17785
  eventRingSize: bridgeSnapshot.limits.eventRingSize,
17705
17786
  compactedReplayMaxBytes: bridgeSnapshot.limits.compactedReplayMaxBytes,
17787
+ maxJournalEvents: bridgeSnapshot.limits.maxJournalEvents,
17788
+ maxJournalBytes: bridgeSnapshot.limits.maxJournalBytes,
17706
17789
  promptDeadlineMs: positiveFiniteOrNull(input.opts.promptDeadlineMs),
17707
17790
  writerIdleTimeoutMs: positiveFiniteOrNull(input.opts.writerIdleTimeoutMs),
17708
17791
  channelIdleTimeoutMs: bridgeSnapshot.limits.channelIdleTimeoutMs,
@@ -18319,7 +18402,7 @@ var WorkspaceVoiceCoordinator = class {
18319
18402
  state.completed = true;
18320
18403
  const abortReason = new VoiceLeaseAbortError(
18321
18404
  reason,
18322
- reason === "workspace_removed" ? "Workspace runtime was removed" : "Daemon is shutting down"
18405
+ reason === "daemon_shutdown" ? "Daemon is shutting down" : reason === "workspace_removed" ? "Workspace runtime was removed" : "Workspace trust was reconfigured"
18323
18406
  );
18324
18407
  for (const lease of state.leases) lease.abort(abortReason);
18325
18408
  if (state.leases.size === 0) {