@qwen-code/qwen-code 0.23.0 → 0.23.1-preview.1

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 (453) hide show
  1. package/bundled/new-app/SKILL.md +1 -1
  2. package/bundled/qc-helper/docs/configuration/auth.md +84 -12
  3. package/bundled/qc-helper/docs/configuration/settings.md +76 -74
  4. package/bundled/qc-helper/docs/features/arena.md +15 -20
  5. package/bundled/qc-helper/docs/features/channels/overview.md +7 -2
  6. package/bundled/qc-helper/docs/features/code-review.md +22 -19
  7. package/bundled/qc-helper/docs/features/commands.md +51 -10
  8. package/bundled/qc-helper/docs/features/followup-suggestions.md +1 -1
  9. package/bundled/qc-helper/docs/features/goals.md +8 -0
  10. package/bundled/qc-helper/docs/features/headless.md +2 -2
  11. package/bundled/qc-helper/docs/features/hooks.md +19 -19
  12. package/bundled/qc-helper/docs/features/output-styles.md +35 -2
  13. package/bundled/qc-helper/docs/qwen-serve.md +67 -52
  14. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +3 -1
  15. package/bundled/qc-helper/docs/support/troubleshooting.md +3 -3
  16. package/bundled/review/SKILL.md +45 -41
  17. package/bundled/review/references/aone.md +1 -1
  18. package/bundled/review/references/posting.md +1 -1
  19. package/bundled/workflow-creator/SKILL.md +48 -0
  20. package/bundled/zvec-grep-install/SKILL.md +57 -0
  21. package/chunks/MaxSizedBox-5ARLO5PR.js +116 -0
  22. package/chunks/{StandaloneSessionPicker-QUMO4LLQ.js → StandaloneSessionPicker-T6B322CB.js} +87 -82
  23. package/chunks/{acp-startup-profiler-M4X5F3VK.js → acp-startup-profiler-6ULXXQMS.js} +2 -2
  24. package/chunks/{acpAgent-2GTFCIEP.js → acpAgent-WTDEY5KD.js} +1041 -364
  25. package/chunks/{agent-XKF5SZWU.js → agent-NXPUXEVZ.js} +46 -43
  26. package/chunks/agent-headless-QQZTWOKO.js +88 -0
  27. package/chunks/{anthropicContentGenerator-L76MR5OR.js → anthropicContentGenerator-6XDHXIII.js} +16 -9
  28. package/chunks/{artifact-tool-MYCL2QCS.js → artifact-tool-DFVVJXL2.js} +3 -3
  29. package/chunks/askUserQuestion-GF7VQ44M.js +14 -0
  30. package/chunks/bridge-OHY5OGOZ.js +123 -0
  31. package/chunks/{ca-BNU7YNDE.js → ca-KC2AISNS.js} +1 -0
  32. package/chunks/{channel-management-service-4MTCEGJB.js → channel-management-service-ZDDG3G5S.js} +4 -4
  33. package/chunks/channel-settings-store-7BJAS2SU.js +126 -0
  34. package/chunks/{channel-worker-group-47F4ISUZ.js → channel-worker-group-2ISMRENV.js} +6 -6
  35. package/chunks/{channel-worker-manager-I5Y44GYR.js → channel-worker-manager-VSRPVPRH.js} +6 -6
  36. package/chunks/{channel-worker-supervisor-6VCLUXFE.js → channel-worker-supervisor-SRJBK72Z.js} +4 -4
  37. package/chunks/{chunk-5RTTI4GE.js → chunk-2RYWGYB3.js} +4 -3
  38. package/chunks/{chunk-FUO5V5KI.js → chunk-2UWQX4FP.js} +2 -2
  39. package/chunks/{chunk-L26ONV2Y.js → chunk-2WGJG2KW.js} +9 -8
  40. package/chunks/{chunk-JHN7UIDW.js → chunk-2XRE4KE4.js} +1 -1
  41. package/chunks/chunk-32CM56LO.js +20 -0
  42. package/chunks/{chunk-SI7WDR3U.js → chunk-32YDNYXP.js} +129 -14
  43. package/chunks/{chunk-ZHO2CW6D.js → chunk-3CZ2BQV6.js} +1 -1
  44. package/chunks/{chunk-FD5SJOWT.js → chunk-3K456UJF.js} +9 -4
  45. package/chunks/{chunk-5M6IDOMF.js → chunk-3K65MUKD.js} +105 -0
  46. package/chunks/chunk-3UMWOKJC.js +78 -0
  47. package/chunks/{chunk-UM2FFKXN.js → chunk-43JNQAHO.js} +3 -3
  48. package/chunks/{chunk-KM3XVTMO.js → chunk-43NOB5NM.js} +112 -12
  49. package/chunks/{chunk-G5PBOQWI.js → chunk-47BZVBTE.js} +3 -3
  50. package/chunks/{chunk-32LU3APX.js → chunk-4F2QRVW6.js} +1 -1
  51. package/chunks/{chunk-KMU3ZHH4.js → chunk-4HC4DYKN.js} +2 -2
  52. package/chunks/{chunk-22UH7VTP.js → chunk-4HOEU2OR.js} +1 -1
  53. package/chunks/{chunk-NXKOVOM5.js → chunk-4IQKBLTQ.js} +15 -9
  54. package/chunks/{chunk-M4KFODIP.js → chunk-4JAGXZR3.js} +1 -1
  55. package/chunks/{chunk-PDAKFU7M.js → chunk-4LIPOIXS.js} +1 -1
  56. package/chunks/{chunk-LEPCWS5A.js → chunk-4MCY33Y2.js} +3 -3
  57. package/chunks/{chunk-U6D2PPMN.js → chunk-4VUVBN3Y.js} +1 -1
  58. package/chunks/{chunk-37JFWFCD.js → chunk-4VZCORNT.js} +1 -1
  59. package/chunks/{daemon-RKDGBFLK.js → chunk-537SQ2AI.js} +2216 -1721
  60. package/chunks/{chunk-VNAYZAFX.js → chunk-54TF2ZIQ.js} +4 -4
  61. package/chunks/{chunk-OKTNXDVO.js → chunk-565U2ANU.js} +1 -1
  62. package/chunks/chunk-5ETULJLP.js +74 -0
  63. package/chunks/{chunk-ADYN7P2Y.js → chunk-5JLQWQK6.js} +8 -6
  64. package/chunks/{chunk-BFY33IB4.js → chunk-5MTARK4Y.js} +7 -7
  65. package/chunks/{chunk-BJXCYUGM.js → chunk-5YY5MZT6.js} +1 -1
  66. package/chunks/{chunk-4PSDSCW3.js → chunk-64MQTIX7.js} +3 -3
  67. package/chunks/{chunk-54C6PIGT.js → chunk-6UIACMGH.js} +3 -3
  68. package/chunks/{chunk-ALUYNJPM.js → chunk-7BZS4ZDV.js} +1362 -1140
  69. package/chunks/{chunk-LB3WQQJK.js → chunk-7OCIQNKX.js} +2 -2
  70. package/chunks/{chunk-QKDNS6FU.js → chunk-7VEYUF3N.js} +13 -2
  71. package/chunks/{chunk-AZJLY2XZ.js → chunk-AHBLRVD5.js} +5 -5
  72. package/chunks/{chunk-VWTSRH6C.js → chunk-AQ5NAGWI.js} +89 -17
  73. package/chunks/{chunk-MOF6VZN2.js → chunk-AXPOOQAW.js} +2 -2
  74. package/chunks/{chunk-CVX63TFJ.js → chunk-B44JBZBB.js} +3 -3
  75. package/chunks/{chunk-AI35S34R.js → chunk-B54PFQS5.js} +3 -3
  76. package/chunks/{chunk-373DQUVA.js → chunk-BF3RUIVP.js} +5 -4
  77. package/chunks/{chunk-RJUVTJEZ.js → chunk-BKNY7PDI.js} +1 -1
  78. package/chunks/{chunk-UKYXYWI2.js → chunk-BUQN5LTI.js} +2 -2
  79. package/chunks/{chunk-O5CD7T4T.js → chunk-BW4333PP.js} +0 -95
  80. package/chunks/{chunk-UPFRILIL.js → chunk-CWNC7M73.js} +2 -2
  81. package/chunks/{chunk-3L724BJ5.js → chunk-CZACBHAW.js} +6 -6
  82. package/chunks/{chunk-EBDGRBZX.js → chunk-D4CU6DKR.js} +6 -6
  83. package/chunks/{chunk-G7HBEEX7.js → chunk-D6PIMKY3.js} +9 -9
  84. package/chunks/{chunk-ENYUKMFK.js → chunk-DJXSOEFB.js} +1 -1
  85. package/chunks/{chunk-C2VWOXHS.js → chunk-DNPHKA72.js} +8 -8
  86. package/chunks/{chunk-UUASLXHW.js → chunk-E4L5BM2B.js} +5 -5
  87. package/chunks/{chunk-HT5S5TRQ.js → chunk-EDIDYZBT.js} +4 -11
  88. package/chunks/{chunk-5H5S4UY5.js → chunk-EFT7OMDN.js} +1 -1
  89. package/chunks/{chunk-GB4UKWY5.js → chunk-EJNYBDYC.js} +2 -2
  90. package/chunks/{chunk-NQ4L2CMD.js → chunk-ER273QE6.js} +53 -9
  91. package/chunks/{chunk-RKW36UWC.js → chunk-EWNKP4V4.js} +1 -1
  92. package/chunks/{chunk-UJ4DUYIH.js → chunk-F53KKZUD.js} +2 -2
  93. package/chunks/{chunk-EFTPIZIC.js → chunk-FDOGGKAA.js} +21 -0
  94. package/chunks/{chunk-AQ37AY7B.js → chunk-FKJM6JKY.js} +5 -0
  95. package/chunks/{chunk-KEVYJSI4.js → chunk-G34YLYCS.js} +13 -13
  96. package/chunks/{chunk-P6UIF2OW.js → chunk-GCFZ2LAX.js} +195 -10
  97. package/chunks/{chunk-VGHZT6JR.js → chunk-GELRJXE2.js} +1 -1
  98. package/chunks/{chunk-ZDFQGHZH.js → chunk-GMNLYQOS.js} +1 -1
  99. package/chunks/{chunk-KOGW3YWJ.js → chunk-GVVCLL2P.js} +12 -12
  100. package/chunks/{chunk-OSSTATJF.js → chunk-GXZHYPHZ.js} +428 -30
  101. package/chunks/{chunk-IPATA3T2.js → chunk-GZWW2QWR.js} +2 -2
  102. package/chunks/{chunk-C4TIXFDZ.js → chunk-H3UDNQLO.js} +6 -4
  103. package/chunks/chunk-HD7O6WLV.js +18 -0
  104. package/chunks/{chunk-4UANMABT.js → chunk-HFTB354P.js} +259 -49
  105. package/chunks/{chunk-LOBDDFYK.js → chunk-HJ34U5J4.js} +5 -5
  106. package/chunks/{chunk-M4LBBSVP.js → chunk-HY3DXYZK.js} +2 -2
  107. package/chunks/{chunk-4F7GQGXB.js → chunk-I72PHOKL.js} +1451 -415
  108. package/chunks/{chunk-YPWZTR7F.js → chunk-IFD3BTEA.js} +3 -3
  109. package/chunks/{chunk-EWRW2WQC.js → chunk-IKLFS6SC.js} +5 -5
  110. package/chunks/{chunk-VPSIC437.js → chunk-IQN2CCIE.js} +66 -6
  111. package/chunks/{chunk-F7NF2IOE.js → chunk-IXSGOSEG.js} +7 -7
  112. package/chunks/{chunk-ODZF64DM.js → chunk-IZ2U57NY.js} +1 -1
  113. package/chunks/{chunk-4BGDFKQE.js → chunk-J3O5I5ZD.js} +24 -7
  114. package/chunks/{chunk-DYTW3QVG.js → chunk-J6MB5ZHZ.js} +1 -1
  115. package/chunks/{chunk-HJBHMANB.js → chunk-JBTZUFR4.js} +11 -8
  116. package/chunks/{chunk-SRF4KTAG.js → chunk-JLWFGYXU.js} +4 -4
  117. package/chunks/{chunk-SX2QIMJV.js → chunk-JOPC3FND.js} +5 -5
  118. package/chunks/chunk-JPEAQJNS.js +2142 -0
  119. package/chunks/{chunk-ZTPGUFQV.js → chunk-JRYL3T2O.js} +24 -5
  120. package/chunks/{chunk-GXUTFQXK.js → chunk-KE3Q4JMY.js} +4 -4
  121. package/chunks/{chunk-LKODFJRD.js → chunk-KFFCDLKV.js} +1 -1
  122. package/chunks/{chunk-4M24B5J5.js → chunk-KJJPJYHI.js} +79 -30
  123. package/chunks/chunk-KK2GZGBK.js +21080 -0
  124. package/chunks/{chunk-64QH2UC6.js → chunk-KPXRFTT7.js} +12 -1
  125. package/chunks/{chunk-JZWOCUZ3.js → chunk-L4R7BCVV.js} +1 -1
  126. package/chunks/{chunk-IG4W5SJR.js → chunk-LDS57224.js} +3 -3
  127. package/chunks/{chunk-UAKRDON5.js → chunk-LK7S2D6V.js} +4 -4
  128. package/chunks/{chunk-4HVH57J3.js → chunk-LMJQSPWB.js} +21 -6
  129. package/chunks/{chunk-ANVG3BVV.js → chunk-LNYV4GXX.js} +13 -3
  130. package/chunks/{chunk-RM4WT2XB.js → chunk-LPBQODMR.js} +4 -4
  131. package/chunks/{chunk-XEAAO654.js → chunk-M3JGHRMQ.js} +1 -1
  132. package/chunks/{chunk-AMDSOFFV.js → chunk-MATEIJZF.js} +1 -0
  133. package/chunks/{chunk-LHBNR6EU.js → chunk-MNEYUNOE.js} +2 -2
  134. package/chunks/{chunk-I4NRYS6A.js → chunk-MUZCSTOO.js} +11 -11
  135. package/chunks/{chunk-I5N4EAS6.js → chunk-MWHY26G3.js} +1 -1
  136. package/chunks/{chunk-7XL4WRXM.js → chunk-N6VQ37ZZ.js} +2 -2
  137. package/chunks/{chunk-AHYTURFB.js → chunk-N7EYO2E7.js} +1 -1
  138. package/chunks/{chunk-LU77UT4D.js → chunk-N7VURC4O.js} +24 -26
  139. package/chunks/{chunk-DSX7KQPM.js → chunk-NAKALAL4.js} +227 -29
  140. package/chunks/{chunk-QQD2GART.js → chunk-NGX4NUNP.js} +3 -3
  141. package/chunks/{chunk-2M3EWQNG.js → chunk-NUQFUXOG.js} +17 -1
  142. package/chunks/{chunk-E4JNFXNI.js → chunk-NXWYCSPL.js} +3 -3
  143. package/chunks/{chunk-6A2D4QSO.js → chunk-O2GG7H4C.js} +4 -4
  144. package/chunks/{chunk-ZKFTS3OV.js → chunk-O45WBTNS.js} +6 -6
  145. package/chunks/{chunk-KGV55H53.js → chunk-OECNP26L.js} +1 -1
  146. package/chunks/{chunk-S6H3ELPG.js → chunk-P4RUUG64.js} +1 -1
  147. package/chunks/{chunk-GH2S4GD5.js → chunk-P5LDR7FI.js} +21 -68
  148. package/chunks/{chunk-RN3YGDCA.js → chunk-P6LATTDG.js} +4 -4
  149. package/chunks/{chunk-WP4AX3XD.js → chunk-PTFFWTTO.js} +3 -3
  150. package/chunks/{chunk-DTVQSSNM.js → chunk-PZUOHCWI.js} +3 -3
  151. package/chunks/{chunk-VYIUNFEA.js → chunk-PZV2FASB.js} +3 -3
  152. package/chunks/{chunk-XLXAZLDR.js → chunk-Q2SAQTEJ.js} +1 -1
  153. package/chunks/{chunk-47RYEQW5.js → chunk-QMFOYPGV.js} +2 -2
  154. package/chunks/{chunk-SULZPKTA.js → chunk-QSC5YOEC.js} +3 -3
  155. package/chunks/{chunk-F33GFWPR.js → chunk-QWZOOIR3.js} +58 -18
  156. package/chunks/{chunk-H43PSPYS.js → chunk-R355CUNQ.js} +4 -4
  157. package/chunks/{chunk-DQCKVAF5.js → chunk-RDKXZ2LS.js} +3 -3
  158. package/chunks/{chunk-7JMGTOH7.js → chunk-RPBMP6BN.js} +21 -1
  159. package/chunks/{chunk-5Q5RC2WE.js → chunk-RVNS7NWN.js} +2 -2
  160. package/chunks/{chunk-7RB56BRJ.js → chunk-SAZS4IWW.js} +6 -4
  161. package/chunks/{chunk-5EIOJGCR.js → chunk-SFMCYMVF.js} +4 -4
  162. package/chunks/{chunk-TMKTOTMQ.js → chunk-SN5FV4FY.js} +5 -5
  163. package/chunks/{chunk-QJGYU5PG.js → chunk-TDP7UULF.js} +1 -1
  164. package/chunks/{chunk-EIJT2PQ6.js → chunk-TIGXX4PA.js} +2 -2
  165. package/chunks/{chunk-PCRBLMIN.js → chunk-TMWB67LS.js} +21 -3
  166. package/chunks/{chunk-JUARRUMA.js → chunk-UEZOXZNI.js} +1358 -646
  167. package/chunks/{chunk-KFN2IZYR.js → chunk-UKADFFL2.js} +3 -3
  168. package/chunks/{chunk-TJYRTS4S.js → chunk-UKKYOIVT.js} +2 -2
  169. package/chunks/{chunk-EVFDRBUM.js → chunk-URSCX7S7.js} +12 -7
  170. package/chunks/{chunk-U4DJ5XB3.js → chunk-VDXYYVCD.js} +269 -70
  171. package/chunks/{chunk-4LIFGNI4.js → chunk-VEFRT7NX.js} +1 -1
  172. package/chunks/chunk-VFFQAOPR.js +18 -0
  173. package/chunks/{chunk-3AKCBZVW.js → chunk-VU7O7CGQ.js} +3 -3
  174. package/chunks/{chunk-RAFQIHN2.js → chunk-VUSSAGKI.js} +76 -5
  175. package/chunks/{chunk-TQHPVKO6.js → chunk-VY6UVU7G.js} +6 -6
  176. package/chunks/{chunk-S2T7H5MI.js → chunk-W4LL5RZO.js} +1 -1
  177. package/chunks/{chunk-ZGCKTAL5.js → chunk-WEXA2DNG.js} +2 -0
  178. package/chunks/{chunk-NVVJTUSL.js → chunk-WR3SH3EY.js} +136 -85
  179. package/chunks/{chunk-JR42V4UY.js → chunk-WTW36TJ3.js} +1 -1
  180. package/chunks/{chunk-TSZSGQ3N.js → chunk-WXC6OAWD.js} +1 -1
  181. package/chunks/{chunk-ZVP4PWBU.js → chunk-X35VIWWJ.js} +1 -1
  182. package/chunks/{chunk-KHP66DFN.js → chunk-XFFRI3WM.js} +1 -1
  183. package/chunks/{chunk-EIY7SUPZ.js → chunk-XHGGYCTA.js} +1 -1
  184. package/chunks/{chunk-BA4WJC4L.js → chunk-XOVVCGZX.js} +1 -1
  185. package/chunks/{chunk-VBWD6C27.js → chunk-XUSOYE2I.js} +1 -1
  186. package/chunks/{chunk-NUHOLAQ6.js → chunk-XWJFDJZK.js} +1 -1
  187. package/chunks/{chunk-65HWLGA7.js → chunk-XY3USGFE.js} +3 -3
  188. package/chunks/{chunk-STCVJXQB.js → chunk-Y3ZKI4RQ.js} +56 -26
  189. package/chunks/{chunk-QAK5475D.js → chunk-Y53DG2HA.js} +1 -1
  190. package/chunks/{chunk-3JQZVCBI.js → chunk-YCDL2SAS.js} +2 -2
  191. package/chunks/{chunk-NSUKQ4DN.js → chunk-YHDGABDC.js} +3 -3
  192. package/chunks/{chunk-FRICLXCZ.js → chunk-Z6WZPXQH.js} +3 -3
  193. package/chunks/{chunk-EAHOJF6V.js → chunk-ZAFYHRVY.js} +12 -0
  194. package/chunks/{chunk-MP6YZ4RK.js → chunk-ZAZ3NFL6.js} +852 -309
  195. package/chunks/{chunk-7TBU7PU2.js → chunk-ZSTCM3MX.js} +1 -1
  196. package/chunks/{chunk-NRL5CUZT.js → chunk-ZTAVGFKA.js} +1 -1
  197. package/chunks/config-utils-QXDOTXEQ.js +119 -0
  198. package/chunks/contextCommand-RN4KARWC.js +112 -0
  199. package/chunks/{core-runtime-B4UKKIAQ.js → core-runtime-NAZCOKHB.js} +63 -58
  200. package/chunks/{create-sub-session-NJ24B4US.js → create-sub-session-BCSM4WKB.js} +61 -56
  201. package/chunks/{create-sub-session-LUPWEUHR.js → create-sub-session-BQ3SE4TX.js} +3 -3
  202. package/chunks/{cron-create-CRSPET3H.js → cron-create-D6HQ7I7I.js} +4 -4
  203. package/chunks/{cron-delete-DB77SZTU.js → cron-delete-KK3D2SQV.js} +4 -4
  204. package/chunks/{cron-list-U2JNYWV6.js → cron-list-VBF3IZMF.js} +4 -4
  205. package/chunks/daemon-LCUELM6E.js +191 -0
  206. package/chunks/{daemon-git-worktree-guard-O2HPOBAB.js → daemon-git-worktree-guard-3K5CAU36.js} +62 -57
  207. package/chunks/daemon-status-provider-4X3ZZQTZ.js +122 -0
  208. package/chunks/daemon-trust-policy-R45CFUJA.js +118 -0
  209. package/chunks/{daemon-trust-policy-monitor-JL7F4Y4Q.js → daemon-trust-policy-monitor-DSSFCO3K.js} +69 -64
  210. package/chunks/{de-T4BLOKEC.js → de-UU2YTO37.js} +1 -0
  211. package/chunks/deferred-core-runtime-UO2M6WYI.js +120 -0
  212. package/chunks/{display-image-73C7XNRK.js → display-image-EVVTBVYE.js} +6 -6
  213. package/chunks/{dist-EDHQIBYD.js → dist-3T5MDUHP.js} +62 -20
  214. package/chunks/{dist-ZCJLKQSP.js → dist-AFH3BMZZ.js} +18 -10
  215. package/chunks/{dist-LXFYIJNG.js → dist-MK5PPBRF.js} +40 -9
  216. package/chunks/{dist-GT64AAUR.js → dist-PH5RSTEA.js} +56 -20
  217. package/chunks/{dist-62OZ7QXB.js → dist-QUU7TVE3.js} +35 -12
  218. package/chunks/{dist-JVXT4VUJ.js → dist-R5Y34V6T.js} +11 -2
  219. package/chunks/{dist-L6URO6CK.js → dist-SB2XRXZA.js} +5 -1
  220. package/chunks/{dist-QAF5DO3Y.js → dist-SIHF5MU2.js} +326 -131
  221. package/chunks/{dist-PDGNRVPY.js → dist-UVHW2U56.js} +20 -1
  222. package/chunks/earlyInputCapture-BXP7V2P3.js +22 -0
  223. package/chunks/{edit-SUGXY63Y.js → edit-VNBCTRWP.js} +48 -44
  224. package/chunks/{en-2RATMNX7.js → en-JMR535HP.js} +3 -1
  225. package/chunks/{enter-worktree-B6USKSIK.js → enter-worktree-CEVK7MQ2.js} +7 -7
  226. package/chunks/{enterPlanMode-MDX4RVVL.js → enterPlanMode-4KMZMUIA.js} +48 -45
  227. package/chunks/environment-S2HYQDON.js +135 -0
  228. package/chunks/errors-DAAN5TL7.js +119 -0
  229. package/chunks/{exit-worktree-DLQ73SJH.js → exit-worktree-D3YE6MUN.js} +7 -7
  230. package/chunks/exitPlanMode-HR36HG3D.js +86 -0
  231. package/chunks/{fast-path-Y73R42LV.js → fast-path-4IWSW3UV.js} +3 -3
  232. package/chunks/{fast-path-settings-MFUR3IWK.js → fast-path-settings-ISEJPRYE.js} +6 -4
  233. package/chunks/{fr-BGHGYX6A.js → fr-HKNWVXRJ.js} +1 -0
  234. package/chunks/{glob-DMGH7EZN.js → glob-IZYB2XH2.js} +46 -43
  235. package/chunks/{goal-tools-3RF3PXCL.js → goal-tools-VGUPKQDJ.js} +46 -43
  236. package/chunks/{grep-AJVLCVXC.js → grep-OUVLNXG7.js} +9 -8
  237. package/chunks/handleAutoUpdate-D56FMDTW.js +115 -0
  238. package/chunks/i18n-BKE5WO6T.js +130 -0
  239. package/chunks/{image-gen-VOIDOHOB.js → image-gen-SHVQ3XID.js} +8 -8
  240. package/chunks/initializer-MS4SGEHF.js +119 -0
  241. package/chunks/installationInfo-542MGC4S.js +113 -0
  242. package/chunks/{ja-G3FTD5XE.js → ja-GJS5RZGU.js} +1 -0
  243. package/chunks/{keychain-token-storage-REZVMJA6.js → keychain-token-storage-NQ5XWIPX.js} +2 -2
  244. package/chunks/list-H6XTKUWL.js +122 -0
  245. package/chunks/{list-agents-SBMONIUK.js → list-agents-ULYBGJXC.js} +6 -6
  246. package/chunks/{llm-K26SUDVK.js → llm-3NUC4EJY.js} +132 -113
  247. package/chunks/{llm-content-generator-TT6EAUD4.js → llm-content-generator-R4NL3OQN.js} +40 -13
  248. package/chunks/loadedSettingsAdapter-3XLKYDVT.js +116 -0
  249. package/chunks/{loggingContentGenerator-EYQBA4M4.js → loggingContentGenerator-ZYSWVNEO.js} +55 -52
  250. package/chunks/{loop-wakeup-QA6SHCZT.js → loop-wakeup-B27BEYRL.js} +5 -5
  251. package/chunks/{lowlight-J2OZNPCA.js → lowlight-BTE423KL.js} +3 -6
  252. package/chunks/{ls-HEJNCEYO.js → ls-3IIMMVKF.js} +5 -4
  253. package/chunks/{lsp-WOQKNZP6.js → lsp-VJAT7XKS.js} +2 -2
  254. package/chunks/{managed-npm-update-HIJTODQT.js → managed-npm-update-L2I53ZAI.js} +62 -57
  255. package/chunks/mcp-4PIXQASW.js +116 -0
  256. package/chunks/{monitor-DKNZQAB2.js → monitor-O2YQTOZZ.js} +50 -46
  257. package/chunks/{node-UETAYMMO.js → node-ISQAFKIS.js} +2 -2
  258. package/chunks/nonInteractiveCli-LV7CDBA2.js +198 -0
  259. package/chunks/{notebook-edit-MGHTRL2D.js → notebook-edit-4RE2ALH4.js} +48 -44
  260. package/chunks/{openaiContentGenerator-ZJIEQ3ZJ.js → openaiContentGenerator-7ND7K5CP.js} +30 -25
  261. package/chunks/pidfile-UFTLQ7NP.js +117 -0
  262. package/chunks/{processUtils-UY3SAJJZ.js → processUtils-3XBB4FYV.js} +2 -2
  263. package/chunks/prompt-terminal-ledger-2QASOGMM.js +111 -0
  264. package/chunks/{pt-D73IFYT7.js → pt-FXMYXEUV.js} +1 -0
  265. package/chunks/{qwenContentGenerator-VI4KATRY.js → qwenContentGenerator-AELTUTH6.js} +52 -49
  266. package/chunks/{qwenOAuth2-7AOCKSOQ.js → qwenOAuth2-BS5D2LYV.js} +7 -7
  267. package/chunks/{read-file-P7F4P7LV.js → read-file-PDWHZPHX.js} +13 -11
  268. package/chunks/{read-mcp-resource-GLAGB6R7.js → read-mcp-resource-YXJZ75UB.js} +2 -2
  269. package/chunks/{record-artifact-SWVR7NSU.js → record-artifact-WJDOV6XU.js} +4 -4
  270. package/chunks/{report-findings-AL5YW3KI.js → report-findings-Q4UACKWR.js} +5 -5
  271. package/chunks/{request-shutdown-5YK4IZ54.js → request-shutdown-2YZ3E3GH.js} +8 -8
  272. package/chunks/resumeHistoryUtils-QRXZEEBA.js +124 -0
  273. package/chunks/ripGrep-KSOOLE6H.js +39 -0
  274. package/chunks/{ru-QMISLKRH.js → ru-RMHURE5U.js} +1 -0
  275. package/chunks/{run-qwen-serve-OGTEEUR2.js → run-qwen-serve-RTAREPT6.js} +84 -70
  276. package/chunks/runtime-ESFSCJRZ.js +154 -0
  277. package/chunks/scheduled-tasks-6ZHRNBH6.js +133 -0
  278. package/chunks/{scheduler-73YXGUGW.js → scheduler-DQI6KV7T.js} +63 -58
  279. package/chunks/{sdk-exporters-http-3JO5TJNU.js → sdk-exporters-http-7R2ARBPV.js} +2 -2
  280. package/chunks/{sdk-impl-HZAUUTHJ.js → sdk-impl-YOLO7LV4.js} +4 -4
  281. package/chunks/{send-message-JC7NJTY6.js → send-message-PQCVSVMN.js} +24 -24
  282. package/chunks/serve-FY7ZEW52.js +124 -0
  283. package/chunks/{server-AOYZVVOM.js → server-KNDY6K5F.js} +1594 -273
  284. package/chunks/{session-UAWFNFGI.js → session-MCEPXAZP.js} +113 -105
  285. package/chunks/session-attachments-root-OLNAE6GF.js +109 -0
  286. package/chunks/{session-pr-refresh-CT2INROL.js → session-pr-refresh-HKJHQQQK.js} +67 -62
  287. package/chunks/{settings-BHRGDASJ.js → settings-VXO4WBMK.js} +68 -63
  288. package/chunks/shell-U263OTES.js +96 -0
  289. package/chunks/{skill-ZGBKNCHQ.js → skill-SDODGBKL.js} +19 -17
  290. package/chunks/skill-settings-YEIA22QJ.js +124 -0
  291. package/chunks/spawnChannel-4WJZVFPP.js +117 -0
  292. package/chunks/standalone-update-ZWVQUO64.js +124 -0
  293. package/chunks/{start-opentui-ui-FZ4USOU7.js → start-opentui-ui-BFYCJQRZ.js} +1199 -190
  294. package/chunks/{startInteractiveUI-E2WQJUOA.js → startInteractiveUI-JYAFCMHL.js} +2977 -2319
  295. package/chunks/{syntheticOutput-HJNZSEHN.js → syntheticOutput-AUAJBNXR.js} +3 -3
  296. package/chunks/{task-create-6RSD54S5.js → task-create-LD5ISM3E.js} +12 -12
  297. package/chunks/{task-list-IQSACPOM.js → task-list-YISJ4RJA.js} +5 -5
  298. package/chunks/{task-stop-HE2LRQNW.js → task-stop-65ZOVATJ.js} +2 -2
  299. package/chunks/{task-update-XAJ2NYOA.js → task-update-AAN4ZVEY.js} +15 -15
  300. package/chunks/{team-create-SOKMYSQU.js → team-create-KU7MABNO.js} +47 -44
  301. package/chunks/{team-delete-NGNNKGMG.js → team-delete-XFRRTJTT.js} +5 -5
  302. package/chunks/{team-plan-approval-U7ZWXYAY.js → team-plan-approval-DPB377A3.js} +46 -43
  303. package/chunks/terminal-image-renderer-WGWRENOF.js +124 -0
  304. package/chunks/theme-manager-GBUFULSO.js +108 -0
  305. package/chunks/{todoWrite-5UTVUXHA.js → todoWrite-G7NT4IFP.js} +5 -5
  306. package/chunks/{tool-search-IAI2RVWT.js → tool-search-6YUXHBPT.js} +19 -17
  307. package/chunks/total-session-admission-54R2JQ5L.js +118 -0
  308. package/chunks/trustedFolders-KAJIDJTH.js +128 -0
  309. package/chunks/{update-relaunch-5RWKZAL3.js → update-relaunch-XM4IWBFD.js} +5 -5
  310. package/chunks/updateCheck-W6UZFURI.js +124 -0
  311. package/chunks/useAutoAcceptIndicator-LAWYHY3U.js +126 -0
  312. package/chunks/{validateNonInterActiveAuth-QPFEKATS.js → validateNonInterActiveAuth-7WCKHRN2.js} +109 -101
  313. package/chunks/{version-JKNG7YDH.js → version-3ZU43RJ6.js} +1 -1
  314. package/chunks/{web-fetch-X3AHIIHW.js → web-fetch-QHI2SQL4.js} +16 -14
  315. package/chunks/{web-search-K2FMOGS5.js → web-search-3KZZKWNY.js} +9 -8
  316. package/chunks/{workflow-TOLPAK5G.js → workflow-HRW7Y2X4.js} +330 -1667
  317. package/chunks/workspace-providers-status-KTGCWCPC.js +120 -0
  318. package/chunks/{workspace-registration-store-KQWVVW4Y.js → workspace-registration-store-LHLPPWNE.js} +1 -1
  319. package/chunks/workspace-registry-X34MLN52.js +127 -0
  320. package/chunks/workspace-runtime-coordinator-U4PW4P7K.js +128 -0
  321. package/chunks/workspace-service-KD7BCGYL.js +132 -0
  322. package/chunks/workspace-skills-status-YJGO6Y3T.js +119 -0
  323. package/chunks/{workspace-trust-reconciler-IBDFQBQS.js → workspace-trust-reconciler-EUYHISCH.js} +74 -69
  324. package/chunks/write-file-EBSB34NJ.js +91 -0
  325. package/chunks/{zh-25DF7OGK.js → zh-DVFYHRK5.js} +3 -1
  326. package/chunks/{zh-TW-5EDMZVGK.js → zh-TW-W2GNP2IU.js} +3 -1
  327. package/chunks/{zoom-image-IFXSN74N.js → zoom-image-UJ5VKWKP.js} +13 -11
  328. package/cli.js +13 -13
  329. package/export-transcript-document.js +617 -0
  330. package/locales/ca.js +1 -0
  331. package/locales/de.js +1 -0
  332. package/locales/en.js +5 -2
  333. package/locales/fr.js +1 -0
  334. package/locales/ja.js +1 -0
  335. package/locales/pt.js +1 -0
  336. package/locales/ru.js +1 -0
  337. package/locales/zh-TW.js +5 -2
  338. package/locales/zh.js +5 -2
  339. package/package.json +5 -4
  340. package/web-shell/assets/{abnfDiagram-VCTEODGH-Cxf7xE_Z.js → abnfDiagram-VCTEODGH-Dur--luQ.js} +1 -1
  341. package/web-shell/assets/{arc-ESi1eNkE.js → arc-tYLobxFi.js} +1 -1
  342. package/web-shell/assets/{architectureDiagram-5GKGNRK7-D9l7-bDo.js → architectureDiagram-5GKGNRK7-IG6aXD03.js} +1 -1
  343. package/web-shell/assets/{blockDiagram-NRAW4CY4-Bc8DEasw.js → blockDiagram-NRAW4CY4-C6eBSkfA.js} +1 -1
  344. package/web-shell/assets/{c4Diagram-UCG6FXSJ-Dimb2Hmh.js → c4Diagram-UCG6FXSJ-BrX3HJqB.js} +1 -1
  345. package/web-shell/assets/channel-uEkvKckd.js +1 -0
  346. package/web-shell/assets/{chunk-2Q5K7J3B-jVDmOpAQ.js → chunk-2Q5K7J3B-B3fcJ8ee.js} +1 -1
  347. package/web-shell/assets/{chunk-5VM5RSS4-DbG_SwdB.js → chunk-5VM5RSS4-CeC90yKM.js} +1 -1
  348. package/web-shell/assets/{chunk-F27PBJKO-QEc4cY1v.js → chunk-F27PBJKO-CW44RVki.js} +1 -1
  349. package/web-shell/assets/{chunk-G27WJ6UU-iJ36lQ3X.js → chunk-G27WJ6UU-D1PAMukD.js} +1 -1
  350. package/web-shell/assets/{chunk-JWPE2WC7-DuArnVtF.js → chunk-JWPE2WC7-Dt3Y2Fvx.js} +1 -1
  351. package/web-shell/assets/{chunk-LCL6LL3I-DxOf1zwL.js → chunk-LCL6LL3I-CZHw2lLI.js} +1 -1
  352. package/web-shell/assets/{chunk-POPQ4Y6H-lVLu9Ild.js → chunk-POPQ4Y6H-ysNAdTGx.js} +1 -1
  353. package/web-shell/assets/{chunk-SVP7TREG-C6XYlIer.js → chunk-SVP7TREG-BdNXW6YQ.js} +1 -1
  354. package/web-shell/assets/{chunk-XXDRQBXY-CiG2j2Ji.js → chunk-XXDRQBXY-DgqQ9UA8.js} +1 -1
  355. package/web-shell/assets/classDiagram-DTDB5LWJ-DuPsnhWS.js +1 -0
  356. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DuPsnhWS.js +1 -0
  357. package/web-shell/assets/{cose-bilkent-JH36ORCC-DGVHMMVm.js → cose-bilkent-JH36ORCC-BILImXzJ.js} +1 -1
  358. package/web-shell/assets/{cynefin-OW5HDTMX-D6cgpCnH.js → cynefin-OW5HDTMX-DR88Pund.js} +1 -1
  359. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BKv4Z-UX.js → cynefinDiagram-5FMLGOSQ-BYFbfkA6.js} +1 -1
  360. package/web-shell/assets/{dagre-3AP2YEHR-B4ABMIG-.js → dagre-3AP2YEHR-rfpyc6sX.js} +1 -1
  361. package/web-shell/assets/{diagram-S7CK7UJ4-DgCkp_Lm.js → diagram-S7CK7UJ4-BJxLmEwH.js} +1 -1
  362. package/web-shell/assets/{diagram-UQ7AKVKN-FG0FNokz.js → diagram-UQ7AKVKN-H34xm7k3.js} +1 -1
  363. package/web-shell/assets/{diagram-VSXAHHWV-JgkP9qg-.js → diagram-VSXAHHWV-HYxhwNLx.js} +1 -1
  364. package/web-shell/assets/{diagram-VX7I27RA-ADh2x83l.js → diagram-VX7I27RA-BJazso8F.js} +1 -1
  365. package/web-shell/assets/{diagram-Z3DM3KII-yXqoYF1J.js → diagram-Z3DM3KII-Clje1aNy.js} +1 -1
  366. package/web-shell/assets/{ebnfDiagram-PWID7BFC-Duk83Ek_.js → ebnfDiagram-PWID7BFC-M93YBkFh.js} +1 -1
  367. package/web-shell/assets/{erDiagram-SSCWMZ5O-DMdvxySG.js → erDiagram-SSCWMZ5O-DY8XzSHU.js} +1 -1
  368. package/web-shell/assets/{flowDiagram-A5DVABFB-DHjVgSji.js → flowDiagram-A5DVABFB-CE6Aylcq.js} +1 -1
  369. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DMM9DkCE.js → ganttDiagram-EL5Y4UJY-DI-5LL22.js} +1 -1
  370. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-t_ug9vO8.js → gitGraphDiagram-WWUBYQGX-C7BZWElk.js} +1 -1
  371. package/web-shell/assets/index-CVyqwW7y.js +2142 -0
  372. package/web-shell/assets/{index-zqvnpGHv.js → index-DclFHns9.js} +1 -1
  373. package/web-shell/assets/index-FO7JXPnH.css +36 -0
  374. package/web-shell/assets/{infoDiagram-RXCK75RN-eT1fANNm.js → infoDiagram-RXCK75RN-CGUSy4Pc.js} +1 -1
  375. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-k3evzZNn.js → ishikawaDiagram-5VMMS53U-B5BVks9q.js} +1 -1
  376. package/web-shell/assets/{journeyDiagram-EYS64GPL-CGim3EAi.js → journeyDiagram-EYS64GPL-CFh6Tf7h.js} +1 -1
  377. package/web-shell/assets/{kanban-definition-3QL26DDD-WHfJo-22.js → kanban-definition-3QL26DDD-B7TlxP7c.js} +1 -1
  378. package/web-shell/assets/{layout-DkqIaFlJ.js → layout-Br_pZq2Q.js} +1 -1
  379. package/web-shell/assets/{linear-Bdkd3mCz.js → linear-BVlP6fte.js} +1 -1
  380. package/web-shell/assets/{mermaid.core-CGw0LkT_.js → mermaid.core-TrcYWoiF.js} +6 -6
  381. package/web-shell/assets/{mindmap-definition-FBJOCRG2-C9V4rBvo.js → mindmap-definition-FBJOCRG2-BJ4LzqjZ.js} +1 -1
  382. package/web-shell/assets/{pegDiagram-XKGWAZYB-CwoI2T5G.js → pegDiagram-XKGWAZYB-1b_MxlOl.js} +1 -1
  383. package/web-shell/assets/{pieDiagram-E7YTZNPT-DaTmBmPG.js → pieDiagram-E7YTZNPT-B8zl0YhY.js} +1 -1
  384. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-plh6MyGI.js → quadrantDiagram-AXDQQJYC-CIZO8ukl.js} +1 -1
  385. package/web-shell/assets/{railroadDiagram-O6MQD6OU-D_b-S0iK.js → railroadDiagram-O6MQD6OU-CepHSbCj.js} +1 -1
  386. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-zUzTN7VE.js → requirementDiagram-EFPCY7ZU-BCgxkcSW.js} +1 -1
  387. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-m6AhoD0l.js → sankeyDiagram-P5KCCOFB-CE5CcoMM.js} +1 -1
  388. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-Cwhzsine.js → sequenceDiagram-WJ2MYXX4-DvgHi-d5.js} +1 -1
  389. package/web-shell/assets/{sizeCapture-X5ZJPWSS-CcZuKIae.js → sizeCapture-X5ZJPWSS-T-fAsCPX.js} +1 -1
  390. package/web-shell/assets/{stateDiagram-HBIQ2CUA-CFoiJwD_.js → stateDiagram-HBIQ2CUA-DYHaul-5.js} +1 -1
  391. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-BcYho9a4.js +1 -0
  392. package/web-shell/assets/{swimlanes-XN3QIQJK-CgS9hcaV.js → swimlanes-XN3QIQJK-Dbz3Qiej.js} +1 -1
  393. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6HsOIgX.js +8 -0
  394. package/web-shell/assets/{timeline-definition-24CTP7MA-Dzzc05t9.js → timeline-definition-24CTP7MA-9NVRts3N.js} +1 -1
  395. package/web-shell/assets/{vennDiagram-4TSXK5OY-DemK0f7Y.js → vennDiagram-4TSXK5OY-C7cb7vnH.js} +1 -1
  396. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CquLxtMr.js → wardleyDiagram-VM6X3IG4-CG-8Ddjm.js} +1 -1
  397. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-BTBKTM5g.js → xychartDiagram-S5SC5T6Z-iGeYAcP4.js} +1 -1
  398. package/web-shell/index.html +2 -2
  399. package/chunks/MaxSizedBox-B3D7545A.js +0 -111
  400. package/chunks/agent-headless-OC2IB55D.js +0 -85
  401. package/chunks/askUserQuestion-THQZMG44.js +0 -322
  402. package/chunks/bridge-IHSBI2YJ.js +0 -118
  403. package/chunks/channel-settings-store-BVKWAI2T.js +0 -121
  404. package/chunks/chunk-I2TMJPCV.js +0 -448
  405. package/chunks/chunk-QI27MKNQ.js +0 -4008
  406. package/chunks/config-utils-LVSYDLHZ.js +0 -114
  407. package/chunks/contextCommand-TZD7UAJK.js +0 -107
  408. package/chunks/daemon-status-provider-GRRVCJFW.js +0 -117
  409. package/chunks/daemon-trust-policy-YJL442BK.js +0 -113
  410. package/chunks/deferred-core-runtime-S32AYVZI.js +0 -115
  411. package/chunks/earlyInputCapture-BBPCIVZG.js +0 -108
  412. package/chunks/environment-VN6RXDVN.js +0 -130
  413. package/chunks/errors-UEY36PIT.js +0 -114
  414. package/chunks/exitPlanMode-EPHIEDAA.js +0 -83
  415. package/chunks/handleAutoUpdate-HVWQT2AU.js +0 -110
  416. package/chunks/i18n-5OR7NTRZ.js +0 -125
  417. package/chunks/initializer-JE5RQSOE.js +0 -114
  418. package/chunks/installationInfo-KO3CCSCK.js +0 -108
  419. package/chunks/list-3IORSFIY.js +0 -117
  420. package/chunks/loadedSettingsAdapter-KLLFZF3M.js +0 -111
  421. package/chunks/mcp-A2UEHETW.js +0 -111
  422. package/chunks/nonInteractiveCli-YA47F2F4.js +0 -190
  423. package/chunks/pidfile-ETHAZNMY.js +0 -112
  424. package/chunks/prompt-terminal-ledger-GZ747VYE.js +0 -106
  425. package/chunks/resumeHistoryUtils-DPZKFW24.js +0 -119
  426. package/chunks/ripGrep-C7LJKUPZ.js +0 -37
  427. package/chunks/runtime-LNBLEMZS.js +0 -149
  428. package/chunks/scheduled-tasks-FLDYZQOF.js +0 -128
  429. package/chunks/serve-3UR2H4CV.js +0 -119
  430. package/chunks/session-attachments-root-ZCGXQQTR.js +0 -104
  431. package/chunks/shell-YHOGC7TO.js +0 -93
  432. package/chunks/skill-settings-AKSP665O.js +0 -119
  433. package/chunks/spawnChannel-N25MBB6F.js +0 -112
  434. package/chunks/standalone-update-XGPWJDRN.js +0 -119
  435. package/chunks/terminal-image-renderer-KKM4OBLO.js +0 -117
  436. package/chunks/theme-manager-GQHF3A7T.js +0 -103
  437. package/chunks/total-session-admission-G4CGCSTG.js +0 -113
  438. package/chunks/trustedFolders-D2I3FDPB.js +0 -123
  439. package/chunks/updateCheck-ZXOQDFEI.js +0 -119
  440. package/chunks/useAutoAcceptIndicator-6EK4QGAH.js +0 -121
  441. package/chunks/workspace-providers-status-PCJK3RC7.js +0 -115
  442. package/chunks/workspace-registry-YNIOB6HJ.js +0 -122
  443. package/chunks/workspace-runtime-coordinator-WG2RNEN7.js +0 -123
  444. package/chunks/workspace-service-G4ZNBOFH.js +0 -127
  445. package/chunks/workspace-skills-status-FMTPPMWC.js +0 -114
  446. package/chunks/write-file-YTLFY2S5.js +0 -88
  447. package/web-shell/assets/channel-B7ohGDil.js +0 -1
  448. package/web-shell/assets/classDiagram-DTDB5LWJ-DdFpqpfD.js +0 -1
  449. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DdFpqpfD.js +0 -1
  450. package/web-shell/assets/index-BGZRqbRo.css +0 -36
  451. package/web-shell/assets/index-DRri_6_x.js +0 -2067
  452. package/web-shell/assets/stateDiagram-v2-4QOOHH4V--H8HdEmk.js +0 -1
  453. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ShE9OIgf.js +0 -8
@@ -14,7 +14,7 @@ import {
14
14
  sanitizePromptText,
15
15
  sanitizeSenderName,
16
16
  truncateUtf16Units
17
- } from "./chunk-U4DJ5XB3.js";
17
+ } from "./chunk-VDXYYVCD.js";
18
18
  import "./chunk-IW6RQPQB.js";
19
19
  import "./chunk-CQ35AJ4Z.js";
20
20
  import "./chunk-DMTGGOSA.js";
@@ -8534,6 +8534,24 @@ function collectNonBotMentionIds(data) {
8534
8534
  return [...mentions];
8535
8535
  }
8536
8536
  __name(collectNonBotMentionIds, "collectNonBotMentionIds");
8537
+ var connectLogDepth = 0;
8538
+ var unsuppressedConsoleLog;
8539
+ async function withConnectLoggingSuppressed(connect) {
8540
+ if (connectLogDepth++ === 0) {
8541
+ unsuppressedConsoleLog = console.log;
8542
+ console.log = () => {
8543
+ };
8544
+ }
8545
+ try {
8546
+ return await connect();
8547
+ } finally {
8548
+ if (--connectLogDepth === 0 && unsuppressedConsoleLog) {
8549
+ console.log = unsuppressedConsoleLog;
8550
+ unsuppressedConsoleLog = void 0;
8551
+ }
8552
+ }
8553
+ }
8554
+ __name(withConnectLoggingSuppressed, "withConnectLoggingSuppressed");
8537
8555
  var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
8538
8556
  static {
8539
8557
  __name(this, "DingtalkChannel");
@@ -8684,6 +8702,8 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
8684
8702
  client.onDownStream = (raw) => {
8685
8703
  this.onDownStream(raw, client);
8686
8704
  };
8705
+ const sdkConnect = client.connect.bind(client);
8706
+ client.connect = () => withConnectLoggingSuppressed(sdkConnect);
8687
8707
  }
8688
8708
  registerMessageHandler(client) {
8689
8709
  client.registerCallbackListener(TOPIC_ROBOT, (msg) => {
@@ -9776,7 +9796,7 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
9776
9796
  if (msgtype === "richText") {
9777
9797
  const richText = data.content?.richText;
9778
9798
  if (!Array.isArray(richText)) {
9779
- return { text: "", downloadCodes: [] };
9799
+ return { text: "", downloadCodes: [], syntheticText: false };
9780
9800
  }
9781
9801
  let text = "";
9782
9802
  const codes = [];
@@ -9791,7 +9811,8 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
9791
9811
  return {
9792
9812
  text: text.trim() || (codes.length > 0 ? "(image)" : ""),
9793
9813
  downloadCodes: codes,
9794
- mediaType: codes.length > 0 ? "image" : void 0
9814
+ mediaType: codes.length > 0 ? "image" : void 0,
9815
+ syntheticText: text.trim().length === 0 && codes.length > 0
9795
9816
  };
9796
9817
  }
9797
9818
  if (msgtype === "picture") {
@@ -9799,7 +9820,8 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
9799
9820
  return {
9800
9821
  text: "(image)",
9801
9822
  downloadCodes: code ? [code] : [],
9802
- mediaType: this.mediaTypeFromMsgType(msgtype)
9823
+ mediaType: this.mediaTypeFromMsgType(msgtype),
9824
+ syntheticText: Boolean(code)
9803
9825
  };
9804
9826
  }
9805
9827
  if (msgtype === "file") {
@@ -9811,7 +9833,8 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
9811
9833
  downloadCodes: code ? [code] : [],
9812
9834
  mediaType: this.mediaTypeFromMsgType(msgtype),
9813
9835
  fileName,
9814
- placeholder
9836
+ placeholder,
9837
+ syntheticText: Boolean(code)
9815
9838
  };
9816
9839
  }
9817
9840
  if (msgtype === "audio") {
@@ -9821,7 +9844,8 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
9821
9844
  text: recognition || "(audio)",
9822
9845
  downloadCodes: code ? [code] : [],
9823
9846
  mediaType: this.mediaTypeFromMsgType(msgtype),
9824
- placeholder: recognition ? void 0 : "(audio)"
9847
+ placeholder: recognition ? void 0 : "(audio)",
9848
+ syntheticText: !recognition && Boolean(code)
9825
9849
  };
9826
9850
  }
9827
9851
  if (msgtype === "video") {
@@ -9830,7 +9854,8 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
9830
9854
  text: "(video)",
9831
9855
  downloadCodes: code ? [code] : [],
9832
9856
  mediaType: this.mediaTypeFromMsgType(msgtype),
9833
- placeholder: "(video)"
9857
+ placeholder: "(video)",
9858
+ syntheticText: Boolean(code)
9834
9859
  };
9835
9860
  }
9836
9861
  if (msgtype === "chatRecord") {
@@ -9841,10 +9866,15 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
9841
9866
  this.warnUnreadableChatRecordEntries(data.content);
9842
9867
  return {
9843
9868
  text: text || "(chat record)",
9844
- downloadCodes: []
9869
+ downloadCodes: [],
9870
+ syntheticText: !text
9845
9871
  };
9846
9872
  }
9847
- return { text: data.text?.content?.trim() || "", downloadCodes: [] };
9873
+ return {
9874
+ text: data.text?.content?.trim() || "",
9875
+ downloadCodes: [],
9876
+ syntheticText: false
9877
+ };
9848
9878
  }
9849
9879
  /**
9850
9880
  * Download a media file and attach it to the envelope.
@@ -9975,6 +10005,7 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
9975
10005
  chatId,
9976
10006
  ...isGroup && conversationTitle ? { chatName: conversationTitle } : {},
9977
10007
  text: messageText,
10008
+ ...content.syntheticText ? { syntheticText: true } : {},
9978
10009
  ...mentionedMemberIds.length > 0 ? { mentionedMemberIds } : {},
9979
10010
  isGroup,
9980
10011
  isMentioned,
@@ -2,8 +2,9 @@
2
2
  "use strict";
3
3
  import {
4
4
  ChannelBase,
5
- isTerminalTaskLifecycleType
6
- } from "./chunk-U4DJ5XB3.js";
5
+ isTerminalTaskLifecycleType,
6
+ startsWithMessagePrefix
7
+ } from "./chunk-VDXYYVCD.js";
7
8
  import "./chunk-IW6RQPQB.js";
8
9
  import {
9
10
  require_abort_controller,
@@ -9668,14 +9669,6 @@ var TELEGRAM_BOT_COMMANDS = [
9668
9669
  { command: "status", description: "Show session info" }
9669
9670
  ];
9670
9671
  var TELEGRAM_MESSAGE_LIMIT = 4096;
9671
- var TELEGRAM_START_MESSAGE = [
9672
- "Qwen Code Telegram bot",
9673
- "",
9674
- "Send any message to chat with Qwen Code.",
9675
- "Use /new to start a fresh conversation.",
9676
- "Use /cancel to stop a running request.",
9677
- "Use /help to see available commands."
9678
- ].join("\n");
9679
9672
  var TelegramChannel = class extends ChannelBase {
9680
9673
  static {
9681
9674
  __name(this, "TelegramChannel");
@@ -9690,7 +9683,7 @@ var TelegramChannel = class extends ChannelBase {
9690
9683
  super(name, config, bridge, options);
9691
9684
  this.bot = this.createBot();
9692
9685
  this.registerCommand("start", async (envelope) => {
9693
- await this.sendMessage(envelope.chatId, TELEGRAM_START_MESSAGE);
9686
+ await this.sendMessage(envelope.chatId, this.startMessage());
9694
9687
  return true;
9695
9688
  });
9696
9689
  this.registerCancelCommand();
@@ -9732,14 +9725,14 @@ var TelegramChannel = class extends ChannelBase {
9732
9725
  this.bot.on("message:text", async (ctx) => {
9733
9726
  const msg = ctx.message;
9734
9727
  const text = msg.text;
9735
- const envelope = this.buildEnvelope(msg, text, msg.entities);
9728
+ const envelope = this.buildEnvelope(msg, text, msg.entities, true);
9736
9729
  this.handleInbound(envelope).catch((err) => {
9737
9730
  this.reportInboundError(envelope, err, () => ctx.reply("Sorry, something went wrong processing your message."));
9738
9731
  });
9739
9732
  });
9740
9733
  this.bot.on("message:photo", async (ctx) => {
9741
9734
  const msg = ctx.message;
9742
- const envelope = this.buildEnvelope(msg, msg.caption || "(image)", msg.caption_entities);
9735
+ const envelope = this.buildEnvelope(msg, msg.caption || "(image)", msg.caption_entities, false, !msg.caption);
9743
9736
  const photo = msg.photo[msg.photo.length - 1];
9744
9737
  if (!photo)
9745
9738
  return;
@@ -9756,6 +9749,10 @@ var TelegramChannel = class extends ChannelBase {
9756
9749
  } catch (err) {
9757
9750
  process.stderr.write(`[Telegram:${this.name}] Failed to download photo: ${err instanceof Error ? err.message : err}
9758
9751
  `);
9752
+ const promptText = msg.caption ? envelope.text : "";
9753
+ envelope.text = `${promptText}
9754
+
9755
+ (User sent an image but download failed)`;
9759
9756
  }
9760
9757
  }).catch((err) => {
9761
9758
  this.reportInboundError(envelope, err, () => ctx.reply("Sorry, something went wrong processing your message."));
@@ -9765,7 +9762,7 @@ var TelegramChannel = class extends ChannelBase {
9765
9762
  const msg = ctx.message;
9766
9763
  const doc = msg.document;
9767
9764
  const fileName = doc.file_name || `file_${Date.now()}`;
9768
- const envelope = this.buildEnvelope(msg, msg.caption || `(file: ${fileName})`, msg.caption_entities);
9765
+ const envelope = this.buildEnvelope(msg, msg.caption || `(file: ${fileName})`, msg.caption_entities, false, !msg.caption);
9769
9766
  this.prepareThenHandleInbound(envelope, async () => {
9770
9767
  try {
9771
9768
  const file = await ctx.api.getFile(doc.file_id);
@@ -9778,7 +9775,9 @@ var TelegramChannel = class extends ChannelBase {
9778
9775
  mkdirSync(dir, { recursive: true });
9779
9776
  const filePath = join(dir, basename(fileName) || `file_${Date.now()}`);
9780
9777
  writeFileSync(filePath, buf);
9781
- envelope.text = msg.caption || "";
9778
+ if (!this.configuredMessagePrefix() || !msg.caption) {
9779
+ envelope.text = msg.caption || "";
9780
+ }
9782
9781
  envelope.attachments = [
9783
9782
  {
9784
9783
  type: "file",
@@ -9790,7 +9789,8 @@ var TelegramChannel = class extends ChannelBase {
9790
9789
  } catch (err) {
9791
9790
  process.stderr.write(`[Telegram:${this.name}] Failed to download document: ${err instanceof Error ? err.message : err}
9792
9791
  `);
9793
- envelope.text = (msg.caption || "") + `
9792
+ const promptText = this.configuredMessagePrefix() && msg.caption ? envelope.text : msg.caption || "";
9793
+ envelope.text = `${promptText}
9794
9794
 
9795
9795
  (User sent a file "${fileName}" but download failed)`;
9796
9796
  }
@@ -9802,7 +9802,15 @@ var TelegramChannel = class extends ChannelBase {
9802
9802
  const msg = ctx.message;
9803
9803
  const voice = msg.voice;
9804
9804
  const fileName = `voice_${Date.now()}.ogg`;
9805
- const envelope = this.buildEnvelope(msg, msg.caption || "(voice message)", msg.caption_entities);
9805
+ const envelope = this.buildEnvelope(
9806
+ msg,
9807
+ msg.caption || "(voice message)",
9808
+ msg.caption_entities,
9809
+ false,
9810
+ // Standard Telegram clients cannot caption a voice message, so
9811
+ // this is effectively always synthetic.
9812
+ !msg.caption
9813
+ );
9806
9814
  this.prepareThenHandleInbound(envelope, async () => {
9807
9815
  try {
9808
9816
  const file = await ctx.api.getFile(voice.file_id);
@@ -9815,7 +9823,9 @@ var TelegramChannel = class extends ChannelBase {
9815
9823
  mkdirSync(dir, { recursive: true });
9816
9824
  const filePath = join(dir, fileName);
9817
9825
  writeFileSync(filePath, buf);
9818
- envelope.text = msg.caption || "";
9826
+ if (!this.configuredMessagePrefix() || !msg.caption) {
9827
+ envelope.text = msg.caption || "";
9828
+ }
9819
9829
  envelope.attachments = [
9820
9830
  {
9821
9831
  type: "audio",
@@ -9827,7 +9837,8 @@ var TelegramChannel = class extends ChannelBase {
9827
9837
  } catch (err) {
9828
9838
  process.stderr.write(`[Telegram:${this.name}] Failed to download voice message: ${err instanceof Error ? err.message : err}
9829
9839
  `);
9830
- envelope.text = (msg.caption || "") + `
9840
+ const promptText = this.configuredMessagePrefix() && msg.caption ? envelope.text : msg.caption || "";
9841
+ envelope.text = `${promptText}
9831
9842
 
9832
9843
  (User sent a voice message but download failed)`;
9833
9844
  }
@@ -9853,6 +9864,17 @@ var TelegramChannel = class extends ChannelBase {
9853
9864
  `);
9854
9865
  }
9855
9866
  }
9867
+ startMessage() {
9868
+ const prefix = this.configuredMessagePrefix();
9869
+ return [
9870
+ "Qwen Code Telegram bot",
9871
+ "",
9872
+ prefix ? `Start each message with ${prefix} to chat with Qwen Code.` : "Send any message to chat with Qwen Code.",
9873
+ `Use ${this.prefixedCommand("/new")} to start a fresh conversation.`,
9874
+ `Use ${this.prefixedCommand("/cancel")} to stop a running request.`,
9875
+ `Use ${this.prefixedCommand("/help")} to see available commands.`
9876
+ ].join("\n");
9877
+ }
9856
9878
  /** Per-chat typing interval — repeats every 4s since Telegram expires it after 5s. */
9857
9879
  typingIntervals = /* @__PURE__ */ new Map();
9858
9880
  activeTypingSessions = /* @__PURE__ */ new Map();
@@ -9962,7 +9984,7 @@ var TelegramChannel = class extends ChannelBase {
9962
9984
  this.activeTypingSessions.clear();
9963
9985
  this.bot.stop();
9964
9986
  }
9965
- buildEnvelope(msg, text, entities) {
9987
+ buildEnvelope(msg, text, entities, allowRegisteredCommandBypass = false, syntheticText = false) {
9966
9988
  const isGroup = msg.chat.type === "group" || msg.chat.type === "supergroup";
9967
9989
  const isMentioned = entities?.some((e) => {
9968
9990
  if (!this.botUsername)
@@ -9984,6 +10006,18 @@ var TelegramChannel = class extends ChannelBase {
9984
10006
  cleanText = text.replace(new RegExp(`@${this.botUsername}`, "gi"), "").trim();
9985
10007
  }
9986
10008
  const referencedText = msg.reply_to_message?.text || void 0;
10009
+ const configuredPrefix = this.configuredMessagePrefix();
10010
+ const bypassMessagePrefix = allowRegisteredCommandBypass && !(configuredPrefix && startsWithMessagePrefix(text.trim(), configuredPrefix)) && (entities?.some((entity) => {
10011
+ if (entity.type !== "bot_command" || entity.offset !== 0)
10012
+ return false;
10013
+ const value = text.slice(0, entity.length).toLowerCase();
10014
+ const command = value.slice(1).split("@", 1)[0];
10015
+ const atIndex = value.indexOf("@", 1);
10016
+ if (atIndex !== -1 && value.slice(atIndex + 1) !== this.botUsername.toLowerCase()) {
10017
+ return false;
10018
+ }
10019
+ return TELEGRAM_BOT_COMMANDS.some((registered) => registered.command === command);
10020
+ }) ?? false);
9987
10021
  return {
9988
10022
  channelName: this.name,
9989
10023
  senderId: String(msg.from.id),
@@ -9992,6 +10026,8 @@ var TelegramChannel = class extends ChannelBase {
9992
10026
  ...isGroup && msg.chat.title ? { chatName: msg.chat.title } : {},
9993
10027
  threadId: typeof msg.message_thread_id === "number" ? String(msg.message_thread_id) : void 0,
9994
10028
  text: cleanText,
10029
+ ...syntheticText ? { syntheticText: true } : {},
10030
+ ...bypassMessagePrefix ? { bypassMessagePrefix: true } : {},
9995
10031
  isGroup,
9996
10032
  isMentioned,
9997
10033
  isReplyToBot,
@@ -10,8 +10,9 @@ import {
10
10
  sanitizeLogText,
11
11
  sanitizePromptText,
12
12
  sanitizeSenderName,
13
+ stripMessagePrefix,
13
14
  truncateCodePoints
14
- } from "./chunk-U4DJ5XB3.js";
15
+ } from "./chunk-VDXYYVCD.js";
15
16
  import "./chunk-IW6RQPQB.js";
16
17
  import "./chunk-CQ35AJ4Z.js";
17
18
  import {
@@ -2056,7 +2057,6 @@ var QQChannel = class _QQChannel extends ChannelBase {
2056
2057
  const cleanText = content.replace(/<@[^>]{1,64}>/g, "").trim();
2057
2058
  let mentionIndex = 0;
2058
2059
  const displayContent = content.replace(/<@[^>]{1,64}>/g, (mention) => event.mentions?.[mentionIndex++]?.is_you ? "" : mention).trim();
2059
- const safeContent = content.replace(/\[atMention=[^\]]*]/g, "").replace(/\[botOpenId:[^\]]*]/g, "").replace(/\[bot]/g, "");
2060
2060
  const safeCleanText = cleanText.replace(/\[atMention=[^\]]*]/g, "").replace(/\[botOpenId:[^\]]*]/g, "").replace(/\[bot]/g, "").trim();
2061
2061
  const safeDisplayText = displayContent.replace(/\[atMention=[^\]]*]/g, "").replace(/\[botOpenId:[^\]]*]/g, "").replace(/\[bot]/g, "").trim();
2062
2062
  const isAtBot = event.mentions?.some((m3) => m3.is_you) ?? false;
@@ -2066,7 +2066,12 @@ var QQChannel = class _QQChannel extends ChannelBase {
2066
2066
  if (!cleanText)
2067
2067
  return null;
2068
2068
  const effectiveIsAtBot = forceAtMention ?? isAtBot;
2069
- const isSlash = effectiveIsAtBot && safeCleanText.startsWith("/");
2069
+ const configuredPrefix = this.configuredMessagePrefix();
2070
+ const prefixSourceText = this.qqConfig.allowMention !== false ? safeDisplayText : safeCleanText;
2071
+ const strippedCommandText = configuredPrefix ? stripMessagePrefix(prefixSourceText, configuredPrefix) : safeCleanText;
2072
+ const rawCommandText = (strippedCommandText ?? safeCleanText).replace(/<@[^>]{1,64}>/g, "").trim();
2073
+ const isSlash = effectiveIsAtBot && strippedCommandText !== void 0 && rawCommandText.startsWith("/");
2074
+ const commandText = sanitizePromptText(rawCommandText);
2070
2075
  const groupBotOpenId = this.botOpenIdByGroup.get(chatId);
2071
2076
  const openIdSuffix = this.qqConfig.allowMention !== false && groupBotOpenId ? ` [botOpenId:${groupBotOpenId}]` : "";
2072
2077
  const suffixFromBotOpenId = this.qqConfig.allowMention !== false && groupBotOpenId ? `
@@ -2084,15 +2089,22 @@ var QQChannel = class _QQChannel extends ChannelBase {
2084
2089
  }
2085
2090
  }
2086
2091
  const senderTag = showSenderOpenId ? `(${senderOpenId})` : senderIdentity ? `(${truncateCodePoints(sanitizeSenderName(senderIdentity), 8)}\u2026)` : "";
2087
- const text = isSlash ? sanitizePromptText(safeCleanText) : `[atMention=${effectiveIsAtBot}]${openIdSuffix} [${safeName}${senderTag}]: ${sanitizePromptText(this.qqConfig.allowMention !== false ? safeContent : safeCleanText)}${suffixFromBotOpenId}`;
2088
- const displayText = sanitizePromptText(safeDisplayText);
2092
+ const head = `[atMention=${effectiveIsAtBot}]${openIdSuffix} [${safeName}${senderTag}]: `;
2093
+ const payloadText = isSlash ? commandText : sanitizePromptText(strippedCommandText ?? prefixSourceText);
2094
+ const messagePrefixText = configuredPrefix && strippedCommandText !== void 0 ? `${configuredPrefix} ${payloadText}` : configuredPrefix ? prefixSourceText : void 0;
2095
+ const displayText = sanitizePromptText(isSlash && messagePrefixText ? messagePrefixText : prefixSourceText);
2096
+ const text = isSlash ? sanitizePromptText(messagePrefixText ?? safeCleanText) : `${head}${displayText}${suffixFromBotOpenId}`;
2097
+ const displayTextOffset = isSlash ? void 0 : head.length;
2089
2098
  return {
2090
2099
  isAtBot: effectiveIsAtBot,
2091
2100
  isSlash,
2092
2101
  safeName,
2093
2102
  cleanText,
2103
+ commandText,
2094
2104
  text,
2095
2105
  displayText,
2106
+ ...displayTextOffset !== void 0 ? { displayTextOffset } : {},
2107
+ ...messagePrefixText !== void 0 ? { messagePrefixText } : {},
2096
2108
  senderName
2097
2109
  };
2098
2110
  }
@@ -2128,15 +2140,22 @@ var QQChannel = class _QQChannel extends ChannelBase {
2128
2140
  const safeName = sanitizeSenderName(senderName);
2129
2141
  const cleanText = event.content.trim();
2130
2142
  const safeContent = cleanText.replace(/\[atMention=[^\]]*]/g, "").replace(/\[botOpenId:[^\]]*]/g, "").replace(/\[bot]/g, "");
2131
- const isSlash = safeContent.startsWith("/");
2132
- const text = isSlash ? sanitizePromptText(safeContent) : `[atMention=true] [${safeName}]: ${sanitizePromptText(safeContent)}`;
2143
+ const configuredPrefix = this.configuredMessagePrefix();
2144
+ const strippedCommandText = configuredPrefix ? stripMessagePrefix(safeContent, configuredPrefix) : safeContent;
2145
+ const rawCommandText = strippedCommandText ?? safeContent;
2146
+ const isSlash = rawCommandText.startsWith("/");
2147
+ const commandText = sanitizePromptText(rawCommandText);
2148
+ const displayText = sanitizePromptText(safeContent);
2149
+ const messagePrefixText = configuredPrefix && strippedCommandText !== void 0 ? `${configuredPrefix} ${commandText}` : configuredPrefix ? safeContent : void 0;
2150
+ const text = isSlash ? displayText : `[atMention=true] [${safeName}]: ${displayText}`;
2133
2151
  this.handleInbound({
2134
2152
  channelName: this.name,
2135
2153
  senderId: chatId,
2136
2154
  senderName,
2137
2155
  chatId,
2138
2156
  text,
2139
- displayText: sanitizePromptText(safeContent),
2157
+ displayText,
2158
+ ...messagePrefixText !== void 0 ? { messagePrefixText } : {},
2140
2159
  messageId: event.id,
2141
2160
  isGroup: false,
2142
2161
  isMentioned: true,
@@ -2176,11 +2195,11 @@ var QQChannel = class _QQChannel extends ChannelBase {
2176
2195
  });
2177
2196
  if (!result)
2178
2197
  return;
2179
- const { isSlash, text, displayText, senderName, safeName, cleanText } = result;
2198
+ const { isSlash, text, displayText, displayTextOffset, commandText, senderName, safeName } = result;
2180
2199
  if (this.isDuplicate(event.id))
2181
2200
  return;
2182
2201
  if (isSlash) {
2183
- process.stderr.write(`[QQ:${this.name}] Slash cmd from ${sanitizeLogText(safeName, 64)} (${sanitizeLogText(chatId, 64)}): ${sanitizeLogText(cleanText.split(/\s/)[0], 64)}
2202
+ process.stderr.write(`[QQ:${this.name}] Slash cmd from ${sanitizeLogText(safeName, 64)} (${sanitizeLogText(chatId, 64)}): ${sanitizeLogText(commandText.split(/\s/)[0], 64)}
2184
2203
  `);
2185
2204
  }
2186
2205
  if (this.groupActiveMsgEnabled.get(chatId) === false) {
@@ -2201,6 +2220,8 @@ var QQChannel = class _QQChannel extends ChannelBase {
2201
2220
  chatId,
2202
2221
  text,
2203
2222
  displayText,
2223
+ ...displayTextOffset !== void 0 ? { displayTextOffset } : {},
2224
+ ...result.messagePrefixText !== void 0 ? { messagePrefixText: result.messagePrefixText } : {},
2204
2225
  messageId: event.id,
2205
2226
  isGroup: true,
2206
2227
  isMentioned: true,
@@ -2238,7 +2259,7 @@ var QQChannel = class _QQChannel extends ChannelBase {
2238
2259
  const result = this.prepareGroupMessage(event, chatId);
2239
2260
  if (!result)
2240
2261
  return;
2241
- const { isSlash, text, displayText, senderName, isAtBot, safeName, cleanText } = result;
2262
+ const { isSlash, text, displayText, displayTextOffset, commandText, senderName, isAtBot, safeName } = result;
2242
2263
  if (!isAtBot) {
2243
2264
  if (this.groupActiveMsgEnabled.get(chatId) === false) {
2244
2265
  process.stderr.write(`[QQ:${this.name}] handleGroupAll blocked: active messages disabled for ${sanitizeLogText(chatId, 64)}
@@ -2289,7 +2310,7 @@ var QQChannel = class _QQChannel extends ChannelBase {
2289
2310
  if (this.isDuplicate(event.id))
2290
2311
  return;
2291
2312
  if (isSlash) {
2292
- process.stderr.write(`[QQ:${this.name}] Slash cmd from ${sanitizeLogText(safeName, 64)} (${sanitizeLogText(chatId, 64)}): ${sanitizeLogText(cleanText.split(/\s/)[0], 64)}
2313
+ process.stderr.write(`[QQ:${this.name}] Slash cmd from ${sanitizeLogText(safeName, 64)} (${sanitizeLogText(chatId, 64)}): ${sanitizeLogText(commandText.split(/\s/)[0], 64)}
2293
2314
  `);
2294
2315
  }
2295
2316
  const senderId = event.author.user_openid || event.author.id || event.author.member_openid;
@@ -2304,6 +2325,8 @@ var QQChannel = class _QQChannel extends ChannelBase {
2304
2325
  chatId,
2305
2326
  text,
2306
2327
  displayText,
2328
+ ...displayTextOffset !== void 0 ? { displayTextOffset } : {},
2329
+ ...result.messagePrefixText !== void 0 ? { messagePrefixText: result.messagePrefixText } : {},
2307
2330
  senderId,
2308
2331
  senderName,
2309
2332
  messageId: event.id,
@@ -11,11 +11,11 @@ import {
11
11
  sendMessage,
12
12
  sendTyping,
13
13
  uploadToCdn
14
- } from "./chunk-S6H3ELPG.js";
14
+ } from "./chunk-P4RUUG64.js";
15
15
  import {
16
16
  ChannelBase,
17
17
  isTerminalTaskLifecycleType
18
- } from "./chunk-U4DJ5XB3.js";
18
+ } from "./chunk-VDXYYVCD.js";
19
19
  import "./chunk-IW6RQPQB.js";
20
20
  import "./chunk-CQ35AJ4Z.js";
21
21
  import {
@@ -186,6 +186,7 @@ async function processMessage(msg, onMessage) {
186
186
  fromUserId,
187
187
  messageId: String(msg.message_id || ""),
188
188
  text: textContent || (file ? `(file: ${file.fileName})` : "(image)"),
189
+ ...textContent ? {} : { syntheticText: true },
189
190
  image,
190
191
  file,
191
192
  refText
@@ -482,6 +483,10 @@ var WeixinChannel = class extends ChannelBase {
482
483
  senderName: msg.fromUserId,
483
484
  chatId: msg.fromUserId,
484
485
  text: msg.text,
486
+ // A caption-less image or file carries only the placeholder above,
487
+ // which no user action can prefix -- gating it on `messagePrefix`
488
+ // would drop every WeChat media message.
489
+ ...msg.syntheticText ? { syntheticText: true } : {},
485
490
  isGroup: false,
486
491
  isMentioned: false,
487
492
  isReplyToBot: false,
@@ -528,6 +533,10 @@ var WeixinChannel = class extends ChannelBase {
528
533
  } catch (err) {
529
534
  process.stderr.write(`[Weixin:${this.name}] Failed to download image: ${err instanceof Error ? err.message : err}
530
535
  `);
536
+ const failureText = "(User sent an image but download failed)";
537
+ envelope.text = envelope.syntheticText ? failureText : `${envelope.text}
538
+
539
+ ${failureText}`;
531
540
  }
532
541
  }
533
542
  if (file) {
@@ -6,7 +6,7 @@ import {
6
6
  import "./chunk-OSHQMOBS.js";
7
7
  import {
8
8
  PollingChannelBase
9
- } from "./chunk-U4DJ5XB3.js";
9
+ } from "./chunk-VDXYYVCD.js";
10
10
  import "./chunk-IW6RQPQB.js";
11
11
  import {
12
12
  external_exports
@@ -13381,6 +13381,10 @@ var GitlabChannel = class extends PollingChannelBase {
13381
13381
  if (!text)
13382
13382
  return;
13383
13383
  const envelope = this.buildEnvelope(text, todo.author.username, chatId, threadId, messageId, this.buildMetadata(template, todo, target, chatId, todo.author.username, String(todo.id), description), true);
13384
+ const isMentionTrigger = todo.action_name === "mentioned" || todo.action_name === "directly_addressed";
13385
+ if (!isNoteMention && !isMentionTrigger) {
13386
+ envelope.bypassMessagePrefix = true;
13387
+ }
13384
13388
  if (isNoteMention) {
13385
13389
  this.reactions.set(messageId, {
13386
13390
  target,