@qwen-code/qwen-code 0.23.3-nightly.20260910.c46cb85cf2 → 0.23.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/bundled/goal-draft/SKILL.md +2 -2
  2. package/bundled/qc-helper/docs/features/channels/dingtalk.md +20 -0
  3. package/bundled/qc-helper/docs/features/channels/overview.md +6 -5
  4. package/bundled/qc-helper/docs/features/goals.md +2 -2
  5. package/bundled/qc-helper/docs/features/hooks.md +13 -14
  6. package/bundled/qc-helper/docs/qwen-serve.md +3 -7
  7. package/chunks/{MaxSizedBox-UZW24XUX.js → MaxSizedBox-D4LW7RZZ.js} +15 -15
  8. package/chunks/{StandaloneSessionPicker-IDK7NAZL.js → StandaloneSessionPicker-ALTTRWUP.js} +33 -33
  9. package/chunks/{acp-startup-profiler-ARO4II44.js → acp-startup-profiler-KEU6VAYR.js} +2 -2
  10. package/chunks/{acp-subagent-executor-7TLJGISS.js → acp-subagent-executor-LEUN3N7N.js} +15 -15
  11. package/chunks/{acpAgent-YRCNNIIU.js → acpAgent-BBSW7XZG.js} +68 -258
  12. package/chunks/{agent-SGU5EE7U.js → agent-SQ6OY3QD.js} +9 -9
  13. package/chunks/{agent-headless-JVYBLNLT.js → agent-headless-RI2THRQ7.js} +9 -9
  14. package/chunks/{anthropicContentGenerator-SGIR5IKF.js → anthropicContentGenerator-JSKMKS6V.js} +2 -2
  15. package/chunks/{bridge-YF6NYRPZ.js → bridge-DAFMI72L.js} +17 -17
  16. package/chunks/{ca-MX3WCEEG.js → ca-KC2AISNS.js} +1 -1
  17. package/chunks/{channel-management-service-E4HTMU7T.js → channel-management-service-OWDXVL7R.js} +5 -5
  18. package/chunks/{channel-settings-store-FZ5VKHQD.js → channel-settings-store-4I6JONT7.js} +25 -25
  19. package/chunks/{channel-worker-group-X6WH4XWF.js → channel-worker-group-F2ZZMLNS.js} +6 -6
  20. package/chunks/{channel-worker-manager-SICFJDPJ.js → channel-worker-manager-2SZLJJSJ.js} +6 -6
  21. package/chunks/{channel-worker-supervisor-HSFAKML6.js → channel-worker-supervisor-ZFNWMG6D.js} +4 -4
  22. package/chunks/{chunk-NVIBH7WS.js → chunk-2ALXPGB4.js} +1 -1
  23. package/chunks/{chunk-UBEYS536.js → chunk-2PJRI3EH.js} +3 -3
  24. package/chunks/{chunk-GP47UR3M.js → chunk-2ZN3O5FT.js} +6 -6
  25. package/chunks/{chunk-BI3WSRQE.js → chunk-3BTSSIJO.js} +3 -3
  26. package/chunks/{chunk-PIGUW2U2.js → chunk-3KQBQ6FM.js} +2 -14
  27. package/chunks/{chunk-RJZTX2OF.js → chunk-3UXUOFO6.js} +6 -6
  28. package/chunks/{chunk-HL2DQG3Y.js → chunk-3XLK2QMY.js} +10 -10
  29. package/chunks/{chunk-L3DTX6U4.js → chunk-4ALNJDHL.js} +1 -3
  30. package/chunks/{chunk-KHIBLKNK.js → chunk-53GWJOLP.js} +1 -1
  31. package/chunks/{chunk-LIR7YS2O.js → chunk-5KI7ZDTB.js} +4 -4
  32. package/chunks/{chunk-ZT6EPPBY.js → chunk-6JACAGYH.js} +1 -1
  33. package/chunks/{chunk-DMX7RF6E.js → chunk-6W4HBUA2.js} +1 -1
  34. package/chunks/{chunk-CSHX5ZC4.js → chunk-76RGWKLS.js} +1 -1
  35. package/chunks/{chunk-J5PYQVD2.js → chunk-7APZIRH3.js} +2 -2
  36. package/chunks/{chunk-OOLSYRZ7.js → chunk-7BXXIQG4.js} +4 -4
  37. package/chunks/{chunk-WY4N6KS7.js → chunk-7ICHPMBQ.js} +3 -3
  38. package/chunks/{chunk-KZ2CU2LH.js → chunk-7Q2AXRDJ.js} +1 -1
  39. package/chunks/{chunk-C4NLHK7X.js → chunk-7QYWGTHB.js} +128 -33
  40. package/chunks/{chunk-7XM6KEVW.js → chunk-AC6KDLH3.js} +1 -1
  41. package/chunks/{chunk-GDWE23OR.js → chunk-ALMR3E6Q.js} +3 -3
  42. package/chunks/{chunk-B6BDT4RX.js → chunk-AXTFYDXT.js} +1 -1
  43. package/chunks/{chunk-6EDWSKN4.js → chunk-BV6Q5HMY.js} +2 -2
  44. package/chunks/{chunk-3VPFA6L2.js → chunk-BWAMMKIS.js} +2 -2
  45. package/chunks/{chunk-IFHJIEMN.js → chunk-BWQLXU37.js} +10 -10
  46. package/chunks/{chunk-F2RKL5I2.js → chunk-BZM5U74J.js} +3 -3
  47. package/chunks/{chunk-JOMCZWX7.js → chunk-CUEXOHQH.js} +15 -9
  48. package/chunks/{chunk-CAAMI77K.js → chunk-CXTPVBFA.js} +1 -1
  49. package/chunks/{chunk-ATH66AEU.js → chunk-DAWWT2ID.js} +16 -16
  50. package/chunks/{chunk-MXOALJIL.js → chunk-DT75RKNH.js} +1 -1
  51. package/chunks/{chunk-BHR6IN2X.js → chunk-DYFOSJHU.js} +30 -30
  52. package/chunks/{chunk-KVBNJ4K2.js → chunk-E7LB57MB.js} +2 -2
  53. package/chunks/{chunk-XDQUDARC.js → chunk-EDMXGXAK.js} +7 -4
  54. package/chunks/{chunk-KFGPNCCY.js → chunk-EVTNACMT.js} +4 -4
  55. package/chunks/{chunk-TP2DUOB6.js → chunk-F42YYSCK.js} +2 -2
  56. package/chunks/{chunk-UGS62IR2.js → chunk-GCDXVPFK.js} +3 -3
  57. package/chunks/{chunk-SAWPURIU.js → chunk-GOXQL4YH.js} +2 -2
  58. package/chunks/{chunk-SXEE6PND.js → chunk-GSILBZLN.js} +2 -2
  59. package/chunks/{chunk-BTWGOKHU.js → chunk-HBQ2NXOU.js} +2 -2
  60. package/chunks/{chunk-34ZYDM3F.js → chunk-HBU7EKY4.js} +1 -1
  61. package/chunks/{chunk-T4JVQR7Z.js → chunk-HGAELO7B.js} +2 -2
  62. package/chunks/{chunk-ZHECLGA6.js → chunk-HNLMYDQE.js} +4 -2
  63. package/chunks/{chunk-PMS4FVLY.js → chunk-IL5M5NYD.js} +5 -5
  64. package/chunks/{chunk-HZTXKVSV.js → chunk-IV7GDNKC.js} +1 -1
  65. package/chunks/{chunk-5FFAUU4T.js → chunk-J3TJH52D.js} +1 -1
  66. package/chunks/{chunk-JDEW3V5B.js → chunk-JYKWOREU.js} +1 -1
  67. package/chunks/{chunk-E5GQNSJY.js → chunk-KFZYGSJN.js} +3 -3
  68. package/chunks/{chunk-ZUQVZTWG.js → chunk-KOKPXIAN.js} +3 -3
  69. package/chunks/{chunk-Q6HXLBZF.js → chunk-LDVNJZGH.js} +6 -6
  70. package/chunks/{chunk-VHKOULAI.js → chunk-MF6E7FSA.js} +2 -2
  71. package/chunks/{chunk-F45SKYIQ.js → chunk-MHAADZOZ.js} +3 -3
  72. package/chunks/{chunk-72BGC7RT.js → chunk-MLQNSPRZ.js} +4 -4
  73. package/chunks/{chunk-L2KF7HUE.js → chunk-MSNHNAQZ.js} +1 -1
  74. package/chunks/{chunk-JV5YASQA.js → chunk-N7VWZDWW.js} +55 -155
  75. package/chunks/{chunk-Q2XLNLAV.js → chunk-NE624IVP.js} +1 -1
  76. package/chunks/{chunk-CGKEUUYG.js → chunk-NFYEQRLG.js} +1 -1
  77. package/chunks/{chunk-FGRDUDCI.js → chunk-NHCZJQE4.js} +5 -5
  78. package/chunks/{chunk-TWC3FHUI.js → chunk-NHJKAR6E.js} +3 -3
  79. package/chunks/{chunk-VTBPMLRO.js → chunk-NJQTG2G3.js} +9 -9
  80. package/chunks/{chunk-LEGNDA46.js → chunk-NLNQNBZ2.js} +1 -1
  81. package/chunks/{chunk-QPWZX4ZV.js → chunk-NMCDMLHL.js} +12 -12
  82. package/chunks/{chunk-WS7MOFK6.js → chunk-NMRCXKQ5.js} +3 -3
  83. package/chunks/{chunk-YIU5PEAT.js → chunk-NOAG7N22.js} +1 -1
  84. package/chunks/{chunk-C75BXMPM.js → chunk-NOO4QFXM.js} +3 -1
  85. package/chunks/{chunk-B2TGBZXY.js → chunk-NRXWJXJ4.js} +2 -2
  86. package/chunks/{chunk-J2RNOJRV.js → chunk-OLTN767L.js} +2 -2
  87. package/chunks/{chunk-AWMJRE5N.js → chunk-OX7IZ2G5.js} +4 -4
  88. package/chunks/{chunk-O3MKRN2I.js → chunk-POC3YMHG.js} +1 -1
  89. package/chunks/{chunk-YKK2XXHF.js → chunk-PSPAM24S.js} +0 -4
  90. package/chunks/{chunk-YS2ZJSOA.js → chunk-Q2LVVIKF.js} +11 -28
  91. package/chunks/{chunk-AW2SIT3B.js → chunk-Q5BD56BW.js} +2 -2
  92. package/chunks/{chunk-LAP7X6EC.js → chunk-QMUYLYT5.js} +1 -1
  93. package/chunks/{chunk-ONGZNOIP.js → chunk-R4Q2PEFV.js} +1 -1
  94. package/chunks/{chunk-FRVV5SSD.js → chunk-RLLRJJDR.js} +2 -2
  95. package/chunks/{chunk-6EOMQPTS.js → chunk-RWVD5RRY.js} +3 -3
  96. package/chunks/{chunk-FYZ5NZ3V.js → chunk-RZHU3K6M.js} +20 -2
  97. package/chunks/{chunk-CUK6F5UF.js → chunk-S6Q6Q4P2.js} +1 -1
  98. package/chunks/{chunk-SNZWDV67.js → chunk-SBRX4BDI.js} +1 -1
  99. package/chunks/{chunk-5ZJ3KK5J.js → chunk-SODMFNAR.js} +4 -4
  100. package/chunks/{chunk-VID4BW52.js → chunk-SSGAAWLY.js} +28 -28
  101. package/chunks/{chunk-LY2GK2PR.js → chunk-SYLECP23.js} +4 -4
  102. package/chunks/{chunk-BQOP3K76.js → chunk-TWUKBNWM.js} +1 -1
  103. package/chunks/{chunk-5FKZ7KFQ.js → chunk-UKZ45TJL.js} +3 -3
  104. package/chunks/{chunk-7XVQNDFB.js → chunk-V2P3DOQR.js} +1 -1
  105. package/chunks/{chunk-WXFK4MH7.js → chunk-VG3Q2NC4.js} +5 -25
  106. package/chunks/{chunk-74JEYK2C.js → chunk-VZUCTJ2P.js} +9 -9
  107. package/chunks/{chunk-VLZOU6UH.js → chunk-W5FIP7FC.js} +3 -3
  108. package/chunks/{chunk-6NONRGYX.js → chunk-X6K77VHC.js} +1 -1
  109. package/chunks/{chunk-FGV2QEAO.js → chunk-X7UJKOHZ.js} +6 -4
  110. package/chunks/{chunk-7ZVIGDZF.js → chunk-XBZTAGB7.js} +1 -1
  111. package/chunks/{chunk-6UK77U7D.js → chunk-XGYHNWL3.js} +3 -3
  112. package/chunks/{chunk-ZGQIIGNQ.js → chunk-YBUMTY7B.js} +1 -1
  113. package/chunks/{chunk-JEMDIKGQ.js → chunk-YQHLFCPU.js} +1 -1
  114. package/chunks/{chunk-7ZKDPTYO.js → chunk-Z3GF56ME.js} +2 -2
  115. package/chunks/{chunk-IOUBOANU.js → chunk-ZU47FBOC.js} +1 -1
  116. package/chunks/{config-utils-S5LFS4RN.js → config-utils-L6KLDYIV.js} +19 -19
  117. package/chunks/{contextCommand-XXKZMMSQ.js → contextCommand-UYEH7NIU.js} +17 -17
  118. package/chunks/{core-runtime-YGUA42AZ.js → core-runtime-NVHT3Z3V.js} +15 -15
  119. package/chunks/{create-sub-session-SEK6KCYR.js → create-sub-session-YWASE5VH.js} +15 -15
  120. package/chunks/{daemon-git-worktree-guard-3AWINPPX.js → daemon-git-worktree-guard-FOW4RQSK.js} +15 -15
  121. package/chunks/{daemon-status-provider-RTKHKUFJ.js → daemon-status-provider-O5KQZYMP.js} +21 -21
  122. package/chunks/{daemon-trust-policy-6YQOC7B6.js → daemon-trust-policy-3ATXEON7.js} +21 -21
  123. package/chunks/{daemon-trust-policy-monitor-EN5L23GS.js → daemon-trust-policy-monitor-7MCNDNEC.js} +21 -21
  124. package/chunks/{de-OOLZAU2U.js → de-UU2YTO37.js} +1 -1
  125. package/chunks/{deferred-core-runtime-JPLQRVZO.js → deferred-core-runtime-JK5IXL5K.js} +15 -15
  126. package/chunks/{dist-JCXKXRH6.js → dist-AHJYPSJL.js} +5 -2
  127. package/chunks/{dist-3BJVSJ7D.js → dist-AIKC5E5P.js} +630 -9
  128. package/chunks/{dist-HX2LG76F.js → dist-F2DVGTL3.js} +29 -9
  129. package/chunks/{dist-J7PDFK53.js → dist-GWNQVPZT.js} +27 -8
  130. package/chunks/{dist-65Q3TRLH.js → dist-H6G3K26N.js} +34 -14
  131. package/chunks/{dist-SBK33YLC.js → dist-KJGRVIGJ.js} +33 -2
  132. package/chunks/{dist-WMFHZG3R.js → dist-KLZ7XGEQ.js} +4 -1
  133. package/chunks/{dist-LHGMHIDK.js → dist-ZA52JXAS.js} +5 -1
  134. package/chunks/{dist-QPTIRE3U.js → dist-ZXTZTE54.js} +11 -3
  135. package/chunks/{edit-QXJZIWRQ.js → edit-SY35KYIE.js} +9 -9
  136. package/chunks/{en-7BZ2OZKH.js → en-CAJHTIQT.js} +1 -1
  137. package/chunks/{enterPlanMode-2ITCVQ5N.js → enterPlanMode-HXX6KQJR.js} +9 -9
  138. package/chunks/{environment-URPO5ORZ.js → environment-DKXHG4HB.js} +17 -17
  139. package/chunks/{errors-TDUYLEKI.js → errors-ADY7LQJJ.js} +17 -17
  140. package/chunks/{exitPlanMode-RA7KMUEW.js → exitPlanMode-HSK2CQI6.js} +9 -9
  141. package/chunks/{fast-path-Q2JYP64P.js → fast-path-U636VWN2.js} +3 -3
  142. package/chunks/{fast-path-settings-GTHZLVSS.js → fast-path-settings-V7MI7EZJ.js} +1 -1
  143. package/chunks/{fr-JJWM2HUS.js → fr-HKNWVXRJ.js} +1 -1
  144. package/chunks/{glob-VHSV4BKE.js → glob-GUGGTH5L.js} +9 -9
  145. package/chunks/{goal-tools-5FIE56CK.js → goal-tools-PXYRSQGX.js} +11 -15
  146. package/chunks/{handleAutoUpdate-7FZFLKNZ.js → handleAutoUpdate-5KHS4HIN.js} +18 -18
  147. package/chunks/{i18n-NTFQDWKR.js → i18n-KSGKMUPT.js} +16 -16
  148. package/chunks/{image-gen-TF3IQWSH.js → image-gen-OCCR2WWU.js} +4 -4
  149. package/chunks/{initializer-LB3T635H.js → initializer-YYT5XEZF.js} +21 -21
  150. package/chunks/{installationInfo-KRO433ZG.js → installationInfo-UNSBPYW2.js} +15 -15
  151. package/chunks/{ja-L67TXFDJ.js → ja-GJS5RZGU.js} +1 -1
  152. package/chunks/{list-NEP3WPZ7.js → list-YL6LDQKQ.js} +24 -24
  153. package/chunks/{llm-AZEJEIAD.js → llm-XGGLBGPH.js} +57 -57
  154. package/chunks/{llm-content-generator-KWXFHBR3.js → llm-content-generator-ZHQQT5W7.js} +3 -3
  155. package/chunks/{loadedSettingsAdapter-NZORJLSD.js → loadedSettingsAdapter-3DXLASK7.js} +21 -21
  156. package/chunks/{loggingContentGenerator-NGHVU6AK.js → loggingContentGenerator-V72OCCJO.js} +10 -10
  157. package/chunks/{managed-npm-update-3LHNBEAG.js → managed-npm-update-HV5LPZH2.js} +15 -15
  158. package/chunks/{mcp-4SWJKDX7.js → mcp-IYVSIW6O.js} +21 -21
  159. package/chunks/{monitor-V5EFBZC7.js → monitor-TLBNM4MV.js} +9 -9
  160. package/chunks/{nonInteractiveCli-5UFUBUAT.js → nonInteractiveCli-LSJSQ2W4.js} +57 -57
  161. package/chunks/{notebook-edit-ATV46KWD.js → notebook-edit-OSPOLZP6.js} +9 -9
  162. package/chunks/{openaiContentGenerator-BKTO5QJK.js → openaiContentGenerator-BE4S5TRD.js} +6 -6
  163. package/chunks/{pidfile-JAIOWPI3.js → pidfile-H32FEPWA.js} +15 -15
  164. package/chunks/{processUtils-TCQH3LVD.js → processUtils-SSLIPDEA.js} +2 -2
  165. package/chunks/{prompt-terminal-ledger-BYXHEUHX.js → prompt-terminal-ledger-I5SLL6UF.js} +16 -16
  166. package/chunks/{pt-77SBDL4B.js → pt-FXMYXEUV.js} +1 -1
  167. package/chunks/{qwenContentGenerator-K5TJK75P.js → qwenContentGenerator-TMQC623Z.js} +11 -11
  168. package/chunks/{qwenOAuth2-NOXRK323.js → qwenOAuth2-3ZRQHHTC.js} +4 -4
  169. package/chunks/{read-file-DL7GNZD5.js → read-file-T2QAIZE2.js} +2 -2
  170. package/chunks/{resumeHistoryUtils-OYKXZ4YO.js → resumeHistoryUtils-QLKDH5GY.js} +19 -19
  171. package/chunks/{ripGrep-EOUMIU4K.js → ripGrep-YGWL7KCV.js} +3 -3
  172. package/chunks/{ru-UYWHKWF2.js → ru-RMHURE5U.js} +1 -1
  173. package/chunks/{run-qwen-serve-PPTGWC5B.js → run-qwen-serve-26KZDECC.js} +89 -231
  174. package/chunks/{runtime-5RO22P2N.js → runtime-BMEIVDDG.js} +26 -26
  175. package/chunks/{scheduled-tasks-YGERFWLZ.js → scheduled-tasks-NCFPP6VQ.js} +19 -19
  176. package/chunks/{scheduler-S6WU6M3C.js → scheduler-47TVMUVN.js} +17 -17
  177. package/chunks/{serve-HT4WOCWS.js → serve-KL3G6LQQ.js} +22 -22
  178. package/chunks/{server-SWXVPRCS.js → server-LBPYXZ5G.js} +55 -66
  179. package/chunks/{session-6DSFUOMO.js → session-YG6742LO.js} +58 -58
  180. package/chunks/{session-attachments-root-SOZCTQWW.js → session-attachments-root-OUBQDYC4.js} +15 -15
  181. package/chunks/{session-pr-refresh-F7XUBQBH.js → session-pr-refresh-EKGMYNAW.js} +18 -18
  182. package/chunks/{settings-SWQH36PO.js → settings-DDNHJX2L.js} +20 -20
  183. package/chunks/{shell-XUQL6EYV.js → shell-KUCXWITU.js} +9 -9
  184. package/chunks/{skill-HNRDD54C.js → skill-JQLKPNWZ.js} +2 -2
  185. package/chunks/{skill-settings-JU72PCII.js → skill-settings-XERQCUXZ.js} +20 -20
  186. package/chunks/{spawnChannel-7ZVM3GBU.js → spawnChannel-GQ45QFGB.js} +15 -15
  187. package/chunks/{standalone-update-64JQY2LX.js → standalone-update-PRF3ILGZ.js} +17 -17
  188. package/chunks/{start-opentui-ui-RSLBXESU.js → start-opentui-ui-JDSOZE3N.js} +62 -67
  189. package/chunks/{startInteractiveUI-ZDPHD7XE.js → startInteractiveUI-RRW3JVHN.js} +69 -85
  190. package/chunks/{team-create-U52VYSNO.js → team-create-5DRLOLOE.js} +9 -9
  191. package/chunks/{team-plan-approval-IQ4ADQIK.js → team-plan-approval-MWSGAL5T.js} +9 -9
  192. package/chunks/{terminal-image-renderer-ZEMF7LB2.js → terminal-image-renderer-H7PD4FQW.js} +15 -15
  193. package/chunks/{theme-manager-DK2S2SOX.js → theme-manager-7AV73D6R.js} +15 -15
  194. package/chunks/{tool-search-6U4OQG7K.js → tool-search-UGYTBLUV.js} +2 -6
  195. package/chunks/{total-session-admission-BOARHBZU.js → total-session-admission-JIHSTJ5S.js} +17 -17
  196. package/chunks/{trustedFolders-GKQZXZSV.js → trustedFolders-5VCBXFOP.js} +16 -16
  197. package/chunks/{update-relaunch-GLACF7PX.js → update-relaunch-4LF3APCV.js} +5 -5
  198. package/chunks/{updateCheck-NLBSZB4Q.js → updateCheck-4T3WUE5F.js} +17 -17
  199. package/chunks/{useAutoAcceptIndicator-3X3BYU7H.js → useAutoAcceptIndicator-UMGB64Z6.js} +23 -23
  200. package/chunks/{validateNonInterActiveAuth-NE3JLOIR.js → validateNonInterActiveAuth-GFJ72U2C.js} +54 -54
  201. package/chunks/{version-6H5YAT4N.js → version-EAAZN4T2.js} +1 -1
  202. package/chunks/{web-fetch-RWSO7TTN.js → web-fetch-VRU3A2NI.js} +5 -5
  203. package/chunks/{web-search-DADI3LV5.js → web-search-NEGYQNDJ.js} +319 -376
  204. package/chunks/{workflow-LPGCZCIT.js → workflow-UHPFALVZ.js} +10 -10
  205. package/chunks/{workspace-providers-status-QBRBEFTO.js → workspace-providers-status-AEYISSU2.js} +23 -23
  206. package/chunks/{workspace-registration-store-WUKTMJPW.js → workspace-registration-store-A7RGKW62.js} +1 -1
  207. package/chunks/{workspace-registry-CJV7KVGF.js → workspace-registry-C2NGE6SD.js} +17 -17
  208. package/chunks/{workspace-runtime-coordinator-7LYMFMFF.js → workspace-runtime-coordinator-QKMZ24YF.js} +18 -20
  209. package/chunks/{workspace-service-HWXZSA4J.js → workspace-service-RQTTAGGC.js} +24 -24
  210. package/chunks/{workspace-skills-status-D6QXUWCC.js → workspace-skills-status-5HWZU3HX.js} +21 -21
  211. package/chunks/{workspace-trust-reconciler-VZX7G7CZ.js → workspace-trust-reconciler-KFWATZUU.js} +23 -23
  212. package/chunks/{write-file-KKHV26YV.js → write-file-DPVB2SBQ.js} +10 -10
  213. package/chunks/{zh-J2GLI64H.js → zh-S5V3Z5CR.js} +1 -1
  214. package/chunks/{zh-TW-TBAICUJQ.js → zh-TW-2K2WRFPY.js} +1 -1
  215. package/chunks/{zoom-image-OG7X7KAA.js → zoom-image-S7AWLAPC.js} +2 -2
  216. package/cli.js +13 -13
  217. package/export-transcript-document.js +1 -1
  218. package/locales/ca.js +2 -2
  219. package/locales/de.js +2 -2
  220. package/locales/en.js +2 -2
  221. package/locales/fr.js +2 -2
  222. package/locales/ja.js +2 -2
  223. package/locales/pt.js +2 -2
  224. package/locales/ru.js +2 -2
  225. package/locales/zh-TW.js +2 -2
  226. package/locales/zh.js +2 -2
  227. package/package.json +3 -3
  228. package/web-shell/assets/{abnfDiagram-VCTEODGH-NT0lTLRG.js → abnfDiagram-VCTEODGH-nU24rpIE.js} +1 -1
  229. package/web-shell/assets/{arc-DDqnIMMx.js → arc-D1hTu8QI.js} +1 -1
  230. package/web-shell/assets/{architectureDiagram-5GKGNRK7-DfYghE3W.js → architectureDiagram-5GKGNRK7-B_fgkKe7.js} +1 -1
  231. package/web-shell/assets/{blockDiagram-NRAW4CY4-DlqJIx5c.js → blockDiagram-NRAW4CY4-C3pddUNg.js} +1 -1
  232. package/web-shell/assets/{c4Diagram-UCG6FXSJ-CinqLGU4.js → c4Diagram-UCG6FXSJ-kEFoC1ei.js} +1 -1
  233. package/web-shell/assets/channel-Blod4z1X.js +1 -0
  234. package/web-shell/assets/{chunk-2Q5K7J3B-CsjJX5M7.js → chunk-2Q5K7J3B-DbT9wS7j.js} +1 -1
  235. package/web-shell/assets/{chunk-5VM5RSS4-CaVb2tdH.js → chunk-5VM5RSS4-CNbULt6O.js} +1 -1
  236. package/web-shell/assets/{chunk-F27PBJKO-CRyErlzW.js → chunk-F27PBJKO-CbQRy4Tb.js} +1 -1
  237. package/web-shell/assets/{chunk-G27WJ6UU-7I79DZCf.js → chunk-G27WJ6UU-CVbXTxYk.js} +1 -1
  238. package/web-shell/assets/{chunk-JWPE2WC7-Dz4cac5F.js → chunk-JWPE2WC7-D89c_BXy.js} +1 -1
  239. package/web-shell/assets/{chunk-LCL6LL3I-Ls24Derb.js → chunk-LCL6LL3I-B7-I_9KB.js} +1 -1
  240. package/web-shell/assets/{chunk-POPQ4Y6H-JzYe4qx7.js → chunk-POPQ4Y6H-DcLQFzS4.js} +1 -1
  241. package/web-shell/assets/{chunk-SVP7TREG-BxDwesA-.js → chunk-SVP7TREG-DyBb2Axj.js} +1 -1
  242. package/web-shell/assets/{chunk-XXDRQBXY-CW4hjgWc.js → chunk-XXDRQBXY-BIA0eb5B.js} +1 -1
  243. package/web-shell/assets/classDiagram-DTDB5LWJ-D6hFDMqb.js +1 -0
  244. package/web-shell/assets/classDiagram-v2-JRS7N3AN-D6hFDMqb.js +1 -0
  245. package/web-shell/assets/{cose-bilkent-JH36ORCC-DxikE9iF.js → cose-bilkent-JH36ORCC-Db2FYN85.js} +1 -1
  246. package/web-shell/assets/{cynefin-OW5HDTMX-CvVsIkVN.js → cynefin-OW5HDTMX-i4GwmBVy.js} +1 -1
  247. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-CDHkk3wq.js → cynefinDiagram-5FMLGOSQ-LENf_IUy.js} +1 -1
  248. package/web-shell/assets/{dagre-3AP2YEHR-BgLdkVLT.js → dagre-3AP2YEHR-CF9XVrD9.js} +1 -1
  249. package/web-shell/assets/{diagram-S7CK7UJ4-DP43cGhe.js → diagram-S7CK7UJ4-DD5PJfSm.js} +1 -1
  250. package/web-shell/assets/{diagram-UQ7AKVKN-BWrZYhoT.js → diagram-UQ7AKVKN-CjD_sBMj.js} +1 -1
  251. package/web-shell/assets/{diagram-VSXAHHWV-B80wjH_n.js → diagram-VSXAHHWV-U5WwMqyA.js} +1 -1
  252. package/web-shell/assets/{diagram-VX7I27RA-DPpKmDsY.js → diagram-VX7I27RA-BujpHJJf.js} +1 -1
  253. package/web-shell/assets/{diagram-Z3DM3KII-kaEBNbNU.js → diagram-Z3DM3KII-3ZLtKEXo.js} +1 -1
  254. package/web-shell/assets/{ebnfDiagram-PWID7BFC-1-qbEZvk.js → ebnfDiagram-PWID7BFC-BGpiquRm.js} +1 -1
  255. package/web-shell/assets/{erDiagram-SSCWMZ5O-CrK2gMkV.js → erDiagram-SSCWMZ5O-D0besu_U.js} +1 -1
  256. package/web-shell/assets/{flowDiagram-A5DVABFB-Dic2xofW.js → flowDiagram-A5DVABFB-9DwDuIyr.js} +1 -1
  257. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DJko8vT7.js → ganttDiagram-EL5Y4UJY-CNlsAeNr.js} +1 -1
  258. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-DxsQ-bHT.js → gitGraphDiagram-WWUBYQGX-C_pPFiTR.js} +1 -1
  259. package/web-shell/assets/{index-t7VBrUeD.js → index-BYWs4JWq.js} +1 -1
  260. package/web-shell/assets/{index-DY8CxdBr.js → index-D3YS6KuJ.js} +152 -152
  261. package/web-shell/assets/{infoDiagram-RXCK75RN-DcRUJbNi.js → infoDiagram-RXCK75RN-Bpai64Ll.js} +1 -1
  262. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CUPw-2_e.js → ishikawaDiagram-5VMMS53U-ktpJFq4r.js} +1 -1
  263. package/web-shell/assets/{journeyDiagram-EYS64GPL-yOHhZxkW.js → journeyDiagram-EYS64GPL-iz_DKgFX.js} +1 -1
  264. package/web-shell/assets/{kanban-definition-3QL26DDD-CFUGBbqz.js → kanban-definition-3QL26DDD-m_gG00Yt.js} +1 -1
  265. package/web-shell/assets/{layout-BoilNfBU.js → layout-qEvKgnvU.js} +1 -1
  266. package/web-shell/assets/{linear-DOuHaPrl.js → linear-C6lklGdq.js} +1 -1
  267. package/web-shell/assets/{mermaid.core-1G1fXWda.js → mermaid.core-DSCYB_2P.js} +6 -6
  268. package/web-shell/assets/{mindmap-definition-FBJOCRG2-B8BhkrOX.js → mindmap-definition-FBJOCRG2-DRQbT8w-.js} +1 -1
  269. package/web-shell/assets/{pegDiagram-XKGWAZYB-CipC5K1D.js → pegDiagram-XKGWAZYB-BhD0q0i6.js} +1 -1
  270. package/web-shell/assets/{pieDiagram-E7YTZNPT-CHBDFDUJ.js → pieDiagram-E7YTZNPT-BvIGQCSd.js} +1 -1
  271. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-_iiBkoZO.js → quadrantDiagram-AXDQQJYC-BDQtfpU-.js} +1 -1
  272. package/web-shell/assets/{railroadDiagram-O6MQD6OU-Cx1peHDi.js → railroadDiagram-O6MQD6OU-E1g2KIFK.js} +1 -1
  273. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-CBRiPbdQ.js → requirementDiagram-EFPCY7ZU-CuerYJOe.js} +1 -1
  274. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-TT6GcHaZ.js → sankeyDiagram-P5KCCOFB-CqWyCZGA.js} +1 -1
  275. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-CWP42PNb.js → sequenceDiagram-WJ2MYXX4-B-YWb8x4.js} +1 -1
  276. package/web-shell/assets/{sizeCapture-X5ZJPWSS-Bp94roEG.js → sizeCapture-X5ZJPWSS-BB7YY4Tl.js} +1 -1
  277. package/web-shell/assets/{stateDiagram-HBIQ2CUA-0ftrzTAy.js → stateDiagram-HBIQ2CUA-C8LDpNHS.js} +1 -1
  278. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C4CbdvGa.js +1 -0
  279. package/web-shell/assets/{swimlanes-XN3QIQJK-D-FsenYJ.js → swimlanes-XN3QIQJK-D94vOoxZ.js} +1 -1
  280. package/web-shell/assets/swimlanesDiagram-VK2B7HYN--QNSIOC8.js +8 -0
  281. package/web-shell/assets/{timeline-definition-24CTP7MA-Ctvrj28y.js → timeline-definition-24CTP7MA-C9C8uEYm.js} +1 -1
  282. package/web-shell/assets/{vennDiagram-4TSXK5OY-5DZncjOt.js → vennDiagram-4TSXK5OY-CYzMHbVW.js} +1 -1
  283. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-jZjYwPY7.js → wardleyDiagram-VM6X3IG4-G9nhtLES.js} +1 -1
  284. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-Ci6Q2C2_.js → xychartDiagram-S5SC5T6Z-ruD2Wjhg.js} +1 -1
  285. package/web-shell/index.html +1 -1
  286. package/web-shell/assets/channel-BHGoSkEv.js +0 -1
  287. package/web-shell/assets/classDiagram-DTDB5LWJ-E47Xnn15.js +0 -1
  288. package/web-shell/assets/classDiagram-v2-JRS7N3AN-E47Xnn15.js +0 -1
  289. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-PgAST0dK.js +0 -1
  290. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-BcWcB5bj.js +0 -8
@@ -4,8 +4,9 @@ import {
4
4
  PollingChannelBase,
5
5
  isTerminalTaskLifecycleType,
6
6
  sanitizeLogText,
7
+ stripMessagePrefix,
7
8
  truncateCodePoints
8
- } from "./chunk-C4NLHK7X.js";
9
+ } from "./chunk-7QYWGTHB.js";
9
10
  import "./chunk-IJOS26LH.js";
10
11
  import "./chunk-CQ35AJ4Z.js";
11
12
  import {
@@ -1376,6 +1377,7 @@ var DwsChannel = class extends PollingChannelBase {
1376
1377
  userInstructions;
1377
1378
  client;
1378
1379
  imStates;
1380
+ dwsMessagePrefix;
1379
1381
  startReactionName;
1380
1382
  endReactionName;
1381
1383
  watchTodos;
@@ -1407,6 +1409,7 @@ var DwsChannel = class extends PollingChannelBase {
1407
1409
  notificationWatermarkPulledBack = false;
1408
1410
  constructor(name, config, bridge, options, client) {
1409
1411
  const profile = configuredString(config.profile, "profile");
1412
+ const messagePrefix = configuredString(config.messagePrefix, "messagePrefix");
1410
1413
  const startReactionName = configuredString(config.startReaction, "startReaction") ?? DEFAULT_START_REACTION;
1411
1414
  const endReactionName = configuredString(config.endReaction, "endReaction");
1412
1415
  const watchTodos = configuredBoolean(config.watchTodos, "watchTodos");
@@ -1437,6 +1440,7 @@ var DwsChannel = class extends PollingChannelBase {
1437
1440
  }));
1438
1441
  this.startReactionName = startReactionName;
1439
1442
  this.endReactionName = endReactionName;
1443
+ this.dwsMessagePrefix = messagePrefix;
1440
1444
  this.watchTodos = watchTodos;
1441
1445
  }
1442
1446
  createInitialCursor() {
@@ -2149,6 +2153,7 @@ Ask the bot operator to approve you with:
2149
2153
  text: `Process this DingTalk todo:
2150
2154
  ${truncateCodePoints(title, MAX_COMMENT_CHARS)}`,
2151
2155
  displayText: title,
2156
+ bypassMessagePrefix: true,
2152
2157
  isGroup: true,
2153
2158
  isMentioned: true,
2154
2159
  isReplyToBot: false,
@@ -2321,9 +2326,12 @@ ${truncateCodePoints(JSON.stringify(detail.data), MAX_TODO_CONTEXT_CHARS)}`
2321
2326
  }
2322
2327
  if (this.shouldFilterImMessage(source, message)) {
2323
2328
  if (source.kind === "group" || source.kind === "group-all") {
2324
- const envelope = this.createImEnvelope(source, message);
2325
- if (this.groupGate.check(envelope, { createPairingRequest: false }).reason === "mention_required" && !this.queuedMessages.has(key) && !this.cursor.processedMessages.includes(key) && !this.hasPendingMessage(key)) {
2326
- this.recordPendingGroupHistory(envelope);
2329
+ const text = stripMessagePrefix(message.content.trim(), this.dwsMessagePrefix);
2330
+ if (!this.dwsMessagePrefix || text) {
2331
+ const envelope = this.createImEnvelope(source, message, text);
2332
+ if (this.groupGate.check(envelope, { createPairingRequest: false }).reason === "mention_required" && !this.queuedMessages.has(key) && !this.cursor.processedMessages.includes(key) && !this.hasPendingMessage(key)) {
2333
+ this.recordPendingGroupHistory(envelope);
2334
+ }
2327
2335
  }
2328
2336
  }
2329
2337
  this.removePersistedPendingMessageForSource(key, source);
@@ -2496,7 +2504,14 @@ ${truncateCodePoints(JSON.stringify(detail.data), MAX_TODO_CONTEXT_CHARS)}`
2496
2504
  }
2497
2505
  }
2498
2506
  async processImMessage(source, message, key) {
2499
- const text = source.kind === "at" && this.requiresMention(message.conversationId) ? message.content.replace(/^\s*@[^\s\p{Cf}]+\s+(?=\/[a-zA-Z0-9_:-]+(?:\s|$))(?![\s\S]*(?<![A-Za-z0-9_])@)/u, "").trim() : message.content.trim();
2507
+ const rawText = source.kind === "at" && this.requiresMention(message.conversationId) ? message.content.replace(/^\s*@[^\s\p{Cf}]+\s+(?=\/[a-zA-Z0-9_:-]+(?:\s|$))(?![\s\S]*(?<![A-Za-z0-9_])@)/u, "").trim() : message.content.trim();
2508
+ const providerDocumentNotification = source.kind === "direct" ? parseDocumentMentionNotification(rawText) : void 0;
2509
+ const text = providerDocumentNotification ? rawText : stripMessagePrefix(rawText, this.dwsMessagePrefix);
2510
+ if (this.dwsMessagePrefix && !text) {
2511
+ this.markProcessedMessage(key);
2512
+ this.saveCursor();
2513
+ return;
2514
+ }
2500
2515
  const target = source.kind === "direct" ? { kind: "direct", openDingTalkId: message.senderId } : { kind: "group", conversationId: message.conversationId };
2501
2516
  this.rememberImTarget(message.conversationId, target);
2502
2517
  if (!text) {
@@ -2504,7 +2519,7 @@ ${truncateCodePoints(JSON.stringify(detail.data), MAX_TODO_CONTEXT_CHARS)}`
2504
2519
  this.saveCursor();
2505
2520
  return;
2506
2521
  }
2507
- const documentNotification = source.kind === "direct" ? parseDocumentMentionNotification(text) : void 0;
2522
+ const documentNotification = providerDocumentNotification ?? (source.kind === "direct" ? parseDocumentMentionNotification(text) : void 0);
2508
2523
  if (documentNotification) {
2509
2524
  await this.processDocumentNotification(message, key, documentNotification);
2510
2525
  return;
@@ -2540,6 +2555,7 @@ ${truncateCodePoints(JSON.stringify(detail.data), MAX_TODO_CONTEXT_CHARS)}`
2540
2555
  chatName: message.conversationId,
2541
2556
  messageId: message.messageId,
2542
2557
  text,
2558
+ bypassMessagePrefix: true,
2543
2559
  ...message.referencedText ? { referencedText: message.referencedText } : {},
2544
2560
  isGroup: source.kind !== "direct",
2545
2561
  isMentioned: source.kind === "at",
@@ -2716,6 +2732,7 @@ ${truncateCodePoints(JSON.stringify(detail.data), MAX_TODO_CONTEXT_CHARS)}`
2716
2732
  threadId: notification.commentKey,
2717
2733
  messageId: message.messageId,
2718
2734
  text: truncateCodePoints(notification.request, MAX_COMMENT_CHARS),
2735
+ bypassMessagePrefix: true,
2719
2736
  isGroup: true,
2720
2737
  isMentioned: true,
2721
2738
  isReplyToBot: false,
@@ -2778,9 +2795,12 @@ ${context}` : "Document Markdown was unavailable; answer from the comment only."
2778
2795
  continue;
2779
2796
  if (this.shouldFilterImMessage(pending.source, pending.message)) {
2780
2797
  if (pending.source.kind === "group" || pending.source.kind === "group-all") {
2781
- const envelope = this.createImEnvelope(pending.source, pending.message);
2782
- if (this.groupGate.check(envelope, { createPairingRequest: false }).reason === "mention_required") {
2783
- this.recordPendingGroupHistory(envelope);
2798
+ const text = stripMessagePrefix(pending.message.content.trim(), this.dwsMessagePrefix);
2799
+ if (!this.dwsMessagePrefix || text) {
2800
+ const envelope = this.createImEnvelope(pending.source, pending.message, text);
2801
+ if (this.groupGate.check(envelope, { createPairingRequest: false }).reason === "mention_required") {
2802
+ this.recordPendingGroupHistory(envelope);
2803
+ }
2784
2804
  }
2785
2805
  }
2786
2806
  this.removePersistedPendingMessageForSource(key, pending.source);
@@ -7,8 +7,9 @@ import {
7
7
  sanitizeLogText,
8
8
  sanitizePromptText,
9
9
  sanitizeSenderName,
10
+ stripMessagePrefix,
10
11
  truncateCodePoints
11
- } from "./chunk-C4NLHK7X.js";
12
+ } from "./chunk-7QYWGTHB.js";
12
13
  import "./chunk-IJOS26LH.js";
13
14
  import {
14
15
  require_main
@@ -2059,8 +2060,11 @@ var QQChannel = class _QQChannel extends ChannelBase {
2059
2060
  if (!cleanText)
2060
2061
  return null;
2061
2062
  const effectiveIsAtBot = forceAtMention ?? isAtBot;
2062
- const rawCommandText = safeCleanText.replace(/<@[^>]{1,64}>/g, "").trim();
2063
- const isSlash = effectiveIsAtBot && rawCommandText.startsWith("/");
2063
+ const configuredPrefix = this.configuredMessagePrefix();
2064
+ const prefixSourceText = this.qqConfig.allowMention !== false ? safeDisplayText : safeCleanText;
2065
+ const strippedCommandText = configuredPrefix ? stripMessagePrefix(prefixSourceText, configuredPrefix) : safeCleanText;
2066
+ const rawCommandText = (strippedCommandText ?? safeCleanText).replace(/<@[^>]{1,64}>/g, "").trim();
2067
+ const isSlash = effectiveIsAtBot && strippedCommandText !== void 0 && rawCommandText.startsWith("/");
2064
2068
  const commandText = sanitizePromptText(rawCommandText);
2065
2069
  const groupBotOpenId = this.botOpenIdByGroup.get(chatId);
2066
2070
  const openIdSuffix = this.qqConfig.allowMention !== false && groupBotOpenId ? ` [botOpenId:${groupBotOpenId}]` : "";
@@ -2080,8 +2084,11 @@ var QQChannel = class _QQChannel extends ChannelBase {
2080
2084
  }
2081
2085
  const senderTag = showSenderOpenId ? `(${senderOpenId})` : senderIdentity ? `(${truncateCodePoints(sanitizeSenderName(senderIdentity), 8)}\u2026)` : "";
2082
2086
  const head = `[atMention=${effectiveIsAtBot}]${openIdSuffix} [${safeName}${senderTag}]: `;
2083
- const displayText = sanitizePromptText(this.qqConfig.allowMention !== false ? safeDisplayText : safeCleanText);
2084
- const text = isSlash ? sanitizePromptText(safeCleanText) : `${head}${displayText}${suffixFromBotOpenId}`;
2087
+ const payloadText = isSlash ? commandText : sanitizePromptText(strippedCommandText ?? prefixSourceText);
2088
+ const messagePrefixText = configuredPrefix && strippedCommandText !== void 0 ? `${configuredPrefix} ${payloadText}` : configuredPrefix ? prefixSourceText : void 0;
2089
+ const displayText = sanitizePromptText(isSlash && messagePrefixText ? messagePrefixText : prefixSourceText);
2090
+ const text = isSlash ? sanitizePromptText(messagePrefixText ?? safeCleanText) : `${head}${displayText}${suffixFromBotOpenId}`;
2091
+ const displayTextOffset = isSlash ? void 0 : head.length;
2085
2092
  return {
2086
2093
  isAtBot: effectiveIsAtBot,
2087
2094
  isSlash,
@@ -2090,6 +2097,8 @@ var QQChannel = class _QQChannel extends ChannelBase {
2090
2097
  commandText,
2091
2098
  text,
2092
2099
  displayText,
2100
+ ...displayTextOffset !== void 0 ? { displayTextOffset } : {},
2101
+ ...messagePrefixText !== void 0 ? { messagePrefixText } : {},
2093
2102
  senderName
2094
2103
  };
2095
2104
  }
@@ -2125,8 +2134,13 @@ var QQChannel = class _QQChannel extends ChannelBase {
2125
2134
  const safeName = sanitizeSenderName(senderName);
2126
2135
  const cleanText = event.content.trim();
2127
2136
  const safeContent = cleanText.replace(/\[atMention=[^\]]*]/g, "").replace(/\[botOpenId:[^\]]*]/g, "").replace(/\[bot]/g, "");
2128
- const isSlash = safeContent.startsWith("/");
2137
+ const configuredPrefix = this.configuredMessagePrefix();
2138
+ const strippedCommandText = configuredPrefix ? stripMessagePrefix(safeContent, configuredPrefix) : safeContent;
2139
+ const rawCommandText = strippedCommandText ?? safeContent;
2140
+ const isSlash = rawCommandText.startsWith("/");
2141
+ const commandText = sanitizePromptText(rawCommandText);
2129
2142
  const displayText = sanitizePromptText(safeContent);
2143
+ const messagePrefixText = configuredPrefix && strippedCommandText !== void 0 ? `${configuredPrefix} ${commandText}` : configuredPrefix ? safeContent : void 0;
2130
2144
  const text = isSlash ? displayText : `[atMention=true] [${safeName}]: ${displayText}`;
2131
2145
  this.handleInbound({
2132
2146
  channelName: this.name,
@@ -2135,6 +2149,7 @@ var QQChannel = class _QQChannel extends ChannelBase {
2135
2149
  chatId,
2136
2150
  text,
2137
2151
  displayText,
2152
+ ...messagePrefixText !== void 0 ? { messagePrefixText } : {},
2138
2153
  messageId: event.id,
2139
2154
  isGroup: false,
2140
2155
  isMentioned: true,
@@ -2174,7 +2189,7 @@ var QQChannel = class _QQChannel extends ChannelBase {
2174
2189
  });
2175
2190
  if (!result)
2176
2191
  return;
2177
- const { isSlash, text, displayText, commandText, senderName, safeName } = result;
2192
+ const { isSlash, text, displayText, displayTextOffset, commandText, senderName, safeName } = result;
2178
2193
  if (this.isDuplicate(event.id))
2179
2194
  return;
2180
2195
  if (isSlash) {
@@ -2199,6 +2214,8 @@ var QQChannel = class _QQChannel extends ChannelBase {
2199
2214
  chatId,
2200
2215
  text,
2201
2216
  displayText,
2217
+ ...displayTextOffset !== void 0 ? { displayTextOffset } : {},
2218
+ ...result.messagePrefixText !== void 0 ? { messagePrefixText: result.messagePrefixText } : {},
2202
2219
  messageId: event.id,
2203
2220
  isGroup: true,
2204
2221
  isMentioned: true,
@@ -2236,7 +2253,7 @@ var QQChannel = class _QQChannel extends ChannelBase {
2236
2253
  const result = this.prepareGroupMessage(event, chatId);
2237
2254
  if (!result)
2238
2255
  return;
2239
- const { isSlash, text, displayText, commandText, senderName, isAtBot, safeName } = result;
2256
+ const { isSlash, text, displayText, displayTextOffset, commandText, senderName, isAtBot, safeName } = result;
2240
2257
  if (!isAtBot) {
2241
2258
  if (this.groupActiveMsgEnabled.get(chatId) === false) {
2242
2259
  process.stderr.write(`[QQ:${this.name}] handleGroupAll blocked: active messages disabled for ${sanitizeLogText(chatId, 64)}
@@ -2302,6 +2319,8 @@ var QQChannel = class _QQChannel extends ChannelBase {
2302
2319
  chatId,
2303
2320
  text,
2304
2321
  displayText,
2322
+ ...displayTextOffset !== void 0 ? { displayTextOffset } : {},
2323
+ ...result.messagePrefixText !== void 0 ? { messagePrefixText: result.messagePrefixText } : {},
2305
2324
  senderId,
2306
2325
  senderName,
2307
2326
  messageId: event.id,
@@ -2,8 +2,9 @@
2
2
  "use strict";
3
3
  import {
4
4
  ChannelBase,
5
- isTerminalTaskLifecycleType
6
- } from "./chunk-C4NLHK7X.js";
5
+ isTerminalTaskLifecycleType,
6
+ startsWithMessagePrefix
7
+ } from "./chunk-7QYWGTHB.js";
7
8
  import "./chunk-IJOS26LH.js";
8
9
  import "./chunk-CQ35AJ4Z.js";
9
10
  import {
@@ -9724,14 +9725,14 @@ var TelegramChannel = class extends ChannelBase {
9724
9725
  this.bot.on("message:text", async (ctx) => {
9725
9726
  const msg = ctx.message;
9726
9727
  const text = msg.text;
9727
- const envelope = this.buildEnvelope(msg, text, msg.entities);
9728
+ const envelope = this.buildEnvelope(msg, text, msg.entities, true);
9728
9729
  this.handleInbound(envelope).catch((err) => {
9729
9730
  this.reportInboundError(envelope, err, () => ctx.reply("Sorry, something went wrong processing your message."));
9730
9731
  });
9731
9732
  });
9732
9733
  this.bot.on("message:photo", async (ctx) => {
9733
9734
  const msg = ctx.message;
9734
- const envelope = this.buildEnvelope(msg, msg.caption || "(image)", msg.caption_entities, !msg.caption);
9735
+ const envelope = this.buildEnvelope(msg, msg.caption || "(image)", msg.caption_entities, false, !msg.caption);
9735
9736
  const photo = msg.photo[msg.photo.length - 1];
9736
9737
  if (!photo)
9737
9738
  return;
@@ -9761,7 +9762,7 @@ var TelegramChannel = class extends ChannelBase {
9761
9762
  const msg = ctx.message;
9762
9763
  const doc = msg.document;
9763
9764
  const fileName = doc.file_name || `file_${Date.now()}`;
9764
- const envelope = this.buildEnvelope(msg, msg.caption || `(file: ${fileName})`, msg.caption_entities, !msg.caption);
9765
+ const envelope = this.buildEnvelope(msg, msg.caption || `(file: ${fileName})`, msg.caption_entities, false, !msg.caption);
9765
9766
  this.prepareThenHandleInbound(envelope, async () => {
9766
9767
  try {
9767
9768
  const file = await ctx.api.getFile(doc.file_id);
@@ -9774,7 +9775,9 @@ var TelegramChannel = class extends ChannelBase {
9774
9775
  mkdirSync(dir, { recursive: true });
9775
9776
  const filePath = join(dir, basename(fileName) || `file_${Date.now()}`);
9776
9777
  writeFileSync(filePath, buf);
9777
- envelope.text = msg.caption || "";
9778
+ if (!this.configuredMessagePrefix() || !msg.caption) {
9779
+ envelope.text = msg.caption || "";
9780
+ }
9778
9781
  envelope.attachments = [
9779
9782
  {
9780
9783
  type: "file",
@@ -9786,7 +9789,7 @@ var TelegramChannel = class extends ChannelBase {
9786
9789
  } catch (err) {
9787
9790
  process.stderr.write(`[Telegram:${this.name}] Failed to download document: ${err instanceof Error ? err.message : err}
9788
9791
  `);
9789
- const promptText = msg.caption || "";
9792
+ const promptText = this.configuredMessagePrefix() && msg.caption ? envelope.text : msg.caption || "";
9790
9793
  envelope.text = `${promptText}
9791
9794
 
9792
9795
  (User sent a file "${fileName}" but download failed)`;
@@ -9803,6 +9806,7 @@ var TelegramChannel = class extends ChannelBase {
9803
9806
  msg,
9804
9807
  msg.caption || "(voice message)",
9805
9808
  msg.caption_entities,
9809
+ false,
9806
9810
  // Standard Telegram clients cannot caption a voice message, so
9807
9811
  // this is effectively always synthetic.
9808
9812
  !msg.caption
@@ -9819,7 +9823,9 @@ var TelegramChannel = class extends ChannelBase {
9819
9823
  mkdirSync(dir, { recursive: true });
9820
9824
  const filePath = join(dir, fileName);
9821
9825
  writeFileSync(filePath, buf);
9822
- envelope.text = msg.caption || "";
9826
+ if (!this.configuredMessagePrefix() || !msg.caption) {
9827
+ envelope.text = msg.caption || "";
9828
+ }
9823
9829
  envelope.attachments = [
9824
9830
  {
9825
9831
  type: "audio",
@@ -9831,7 +9837,7 @@ var TelegramChannel = class extends ChannelBase {
9831
9837
  } catch (err) {
9832
9838
  process.stderr.write(`[Telegram:${this.name}] Failed to download voice message: ${err instanceof Error ? err.message : err}
9833
9839
  `);
9834
- const promptText = msg.caption || "";
9840
+ const promptText = this.configuredMessagePrefix() && msg.caption ? envelope.text : msg.caption || "";
9835
9841
  envelope.text = `${promptText}
9836
9842
 
9837
9843
  (User sent a voice message but download failed)`;
@@ -9859,13 +9865,14 @@ var TelegramChannel = class extends ChannelBase {
9859
9865
  }
9860
9866
  }
9861
9867
  startMessage() {
9868
+ const prefix = this.configuredMessagePrefix();
9862
9869
  return [
9863
9870
  "Qwen Code Telegram bot",
9864
9871
  "",
9865
- "Send any message to chat with Qwen Code.",
9866
- "Use /new to start a fresh conversation.",
9867
- "Use /cancel to stop a running request.",
9868
- "Use /help to see available commands."
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.`
9869
9876
  ].join("\n");
9870
9877
  }
9871
9878
  /** Per-chat typing interval — repeats every 4s since Telegram expires it after 5s. */
@@ -9977,7 +9984,7 @@ var TelegramChannel = class extends ChannelBase {
9977
9984
  this.activeTypingSessions.clear();
9978
9985
  this.bot.stop();
9979
9986
  }
9980
- buildEnvelope(msg, text, entities, syntheticText = false) {
9987
+ buildEnvelope(msg, text, entities, allowRegisteredCommandBypass = false, syntheticText = false) {
9981
9988
  const isGroup = msg.chat.type === "group" || msg.chat.type === "supergroup";
9982
9989
  const isMentioned = entities?.some((e) => {
9983
9990
  if (!this.botUsername)
@@ -9999,6 +10006,18 @@ var TelegramChannel = class extends ChannelBase {
9999
10006
  cleanText = text.replace(new RegExp(`@${this.botUsername}`, "gi"), "").trim();
10000
10007
  }
10001
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);
10002
10021
  return {
10003
10022
  channelName: this.name,
10004
10023
  senderId: String(msg.from.id),
@@ -10008,6 +10027,7 @@ var TelegramChannel = class extends ChannelBase {
10008
10027
  threadId: typeof msg.message_thread_id === "number" ? String(msg.message_thread_id) : void 0,
10009
10028
  text: cleanText,
10010
10029
  ...syntheticText ? { syntheticText: true } : {},
10030
+ ...bypassMessagePrefix ? { bypassMessagePrefix: true } : {},
10011
10031
  isGroup,
10012
10032
  isMentioned,
10013
10033
  isReplyToBot,
@@ -15,8 +15,9 @@ import {
15
15
  ChannelProactiveDeliveryError,
16
16
  isChannelProactiveDeliveryError,
17
17
  isTerminalTaskLifecycleType,
18
- sanitizeSenderName
19
- } from "./chunk-C4NLHK7X.js";
18
+ sanitizeSenderName,
19
+ startsWithMessagePrefix
20
+ } from "./chunk-7QYWGTHB.js";
20
21
  import "./chunk-IJOS26LH.js";
21
22
  import "./chunk-CQ35AJ4Z.js";
22
23
  import {
@@ -102064,6 +102065,25 @@ var FEISHU_STATUS_STRINGS = [
102064
102065
  ];
102065
102066
  var escapeRegExp = /* @__PURE__ */ __name((value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "escapeRegExp");
102066
102067
  var escapeFeishuMarkdown = /* @__PURE__ */ __name((value) => value.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replace(/([\\`*_[\]{}()#+.!|>~-])/gu, "\\$1"), "escapeFeishuMarkdown");
102068
+ function stripLeadingMentionNames(text, names, prefix) {
102069
+ let rest = text.trimStart();
102070
+ const tokens = [
102071
+ ...new Set(names.filter(Boolean).map((name) => `@${name}`))
102072
+ ].sort((a, b) => b.length - a.length);
102073
+ let consumed = true;
102074
+ while (consumed && !(prefix && startsWithMessagePrefix(rest, prefix))) {
102075
+ consumed = false;
102076
+ for (const token of tokens) {
102077
+ if (!rest.startsWith(token))
102078
+ continue;
102079
+ rest = rest.slice(token.length).trimStart();
102080
+ consumed = true;
102081
+ break;
102082
+ }
102083
+ }
102084
+ return rest;
102085
+ }
102086
+ __name(stripLeadingMentionNames, "stripLeadingMentionNames");
102067
102087
  var FEISHU_STATUS_LABELS = `(?:${FEISHU_STATUS_STRINGS.map(escapeRegExp).join("|")})`;
102068
102088
  var FEISHU_STATUS_BLOCK_RE = new RegExp(`(?:^|\\n)---\\n\\*${FEISHU_STATUS_LABELS}\\*(?=\\n|$)`, "g");
102069
102089
  var FEISHU_SOURCE_LABEL_LINE_RE = /^\\\[(?:[A-Za-z0-9](?:[A-Za-z0-9]|\\[_-]){0,31}|[^\r\n]+ · [A-Za-z0-9](?:[A-Za-z0-9]|\\[_-]){0,31})\\\](?:\n\n?)?/u;
@@ -103730,6 +103750,7 @@ ${contentPart}` : prefix : contentPart;
103730
103750
  const content = this.extractContent(msg.message_type, msg.content);
103731
103751
  let isMentioned = false;
103732
103752
  let cleanText = content.text;
103753
+ const mentionNames = [...content.mentionNames ?? []];
103733
103754
  if (msg.mentions && msg.mentions.length > 0) {
103734
103755
  const mentionReplacements = /* @__PURE__ */ new Map();
103735
103756
  for (const mention of msg.mentions) {
@@ -103739,6 +103760,8 @@ ${contentPart}` : prefix : contentPart;
103739
103760
  isMentioned = true;
103740
103761
  }
103741
103762
  mentionReplacements.set(mention.key, isBotMention ? "" : `@${mention.name}`);
103763
+ if (!isBotMention && mention.name)
103764
+ mentionNames.push(mention.name);
103742
103765
  }
103743
103766
  const mentionKeys = [...mentionReplacements.keys()].sort((a, b) => b.length - a.length);
103744
103767
  if (mentionKeys.length > 0) {
@@ -103751,6 +103774,7 @@ ${contentPart}` : prefix : contentPart;
103751
103774
  this.msgToSenderId.delete(msgId);
103752
103775
  return;
103753
103776
  }
103777
+ const messagePrefixText = stripLeadingMentionNames(cleanText, mentionNames, this.configuredMessagePrefix());
103754
103778
  const envelope = {
103755
103779
  channelName: this.name,
103756
103780
  senderId,
@@ -103758,7 +103782,11 @@ ${contentPart}` : prefix : contentPart;
103758
103782
  chatId,
103759
103783
  ...chatName ? { chatName } : {},
103760
103784
  text: cleanText,
103785
+ // A media message carries only an adapter-synthesized placeholder,
103786
+ // which no user action can prefix -- gating it would drop every
103787
+ // image, file, audio and video with the prefix configured.
103761
103788
  ...!content.userAuthoredText ? { syntheticText: true } : {},
103789
+ messagePrefixText: messagePrefixText.trim(),
103762
103790
  messageId: msgId,
103763
103791
  threadId: msg.root_id || void 0,
103764
103792
  isGroup,
@@ -103898,6 +103926,7 @@ ${envelope.text}`;
103898
103926
  };
103899
103927
  case "post": {
103900
103928
  const lines = [];
103929
+ const mentionNames = [];
103901
103930
  const post = content;
103902
103931
  const firstVal = Object.values(post)[0];
103903
103932
  const langPost = typeof firstVal === "object" && firstVal !== null ? firstVal : post;
@@ -103916,6 +103945,7 @@ ${envelope.text}`;
103916
103945
  const userName = node["user_name"];
103917
103946
  if (typeof userName === "string" && userName) {
103918
103947
  parts.push(`@${userName}`);
103948
+ mentionNames.push(userName);
103919
103949
  }
103920
103950
  }
103921
103951
  }
@@ -103924,6 +103954,7 @@ ${envelope.text}`;
103924
103954
  }
103925
103955
  return {
103926
103956
  text: lines.join("\n").trim() || "",
103957
+ mentionNames,
103927
103958
  userAuthoredText: true
103928
103959
  };
103929
103960
  }
@@ -10,7 +10,7 @@ import "./chunk-OSHQMOBS.js";
10
10
  import {
11
11
  ChannelBase,
12
12
  sanitizeLogText
13
- } from "./chunk-C4NLHK7X.js";
13
+ } from "./chunk-7QYWGTHB.js";
14
14
  import "./chunk-IJOS26LH.js";
15
15
  import "./chunk-CQ35AJ4Z.js";
16
16
  import "./chunk-DMTGGOSA.js";
@@ -1876,6 +1876,9 @@ var WeComChannel = class extends ChannelBase {
1876
1876
  let processStarted = false;
1877
1877
  try {
1878
1878
  if (!await this.preflightInbound(envelope)) {
1879
+ if (rawMessageId && this.wasMessagePrefixRejected(envelope)) {
1880
+ this.seenMessages.set(rawMessageId, Date.now());
1881
+ }
1879
1882
  process.stderr.write(`[WeCom:${this.name}] dropping message ${logMessageId}: preflight rejected.
1880
1883
  `);
1881
1884
  return;
@@ -6,7 +6,7 @@ import {
6
6
  import "./chunk-OSHQMOBS.js";
7
7
  import {
8
8
  PollingChannelBase
9
- } from "./chunk-C4NLHK7X.js";
9
+ } from "./chunk-7QYWGTHB.js";
10
10
  import "./chunk-IJOS26LH.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,
@@ -7,8 +7,9 @@ import {
7
7
  sanitizeDisplayText,
8
8
  sanitizeLogText,
9
9
  sanitizePromptText,
10
+ stripMessagePrefix,
10
11
  truncateCodePoints
11
- } from "./chunk-C4NLHK7X.js";
12
+ } from "./chunk-7QYWGTHB.js";
12
13
  import "./chunk-IJOS26LH.js";
13
14
  import "./chunk-CQ35AJ4Z.js";
14
15
  import {
@@ -3919,7 +3920,7 @@ function isInboundEnvelope(value) {
3919
3920
  if (value === null || typeof value !== "object")
3920
3921
  return false;
3921
3922
  const envelope = value;
3922
- return typeof envelope.channelName === "string" && typeof envelope.senderId === "string" && typeof envelope.senderName === "string" && typeof envelope.chatId === "string" && typeof envelope.text === "string" && typeof envelope.isGroup === "boolean" && typeof envelope.isMentioned === "boolean" && typeof envelope.isReplyToBot === "boolean" && (envelope.chatName === void 0 || typeof envelope.chatName === "string") && (envelope.threadId === void 0 || typeof envelope.threadId === "string") && (envelope.messageId === void 0 || typeof envelope.messageId === "string") && (envelope.referencedText === void 0 || typeof envelope.referencedText === "string") && isOptionalStringArray(envelope.mentionedMemberIds) && (envelope.imageBase64 === void 0 || typeof envelope.imageBase64 === "string") && (envelope.imageMimeType === void 0 || typeof envelope.imageMimeType === "string") && (envelope.attachments === void 0 || Array.isArray(envelope.attachments)) && (envelope.metadata === void 0 || typeof envelope.metadata === "string") && (envelope.alreadyPrefixed === void 0 || envelope.alreadyPrefixed === true);
3923
+ return typeof envelope.channelName === "string" && typeof envelope.senderId === "string" && typeof envelope.senderName === "string" && typeof envelope.chatId === "string" && typeof envelope.text === "string" && typeof envelope.isGroup === "boolean" && typeof envelope.isMentioned === "boolean" && typeof envelope.isReplyToBot === "boolean" && (envelope.chatName === void 0 || typeof envelope.chatName === "string") && (envelope.threadId === void 0 || typeof envelope.threadId === "string") && (envelope.messageId === void 0 || typeof envelope.messageId === "string") && (envelope.referencedText === void 0 || typeof envelope.referencedText === "string") && isOptionalStringArray(envelope.mentionedMemberIds) && (envelope.imageBase64 === void 0 || typeof envelope.imageBase64 === "string") && (envelope.imageMimeType === void 0 || typeof envelope.imageMimeType === "string") && (envelope.attachments === void 0 || Array.isArray(envelope.attachments)) && (envelope.metadata === void 0 || typeof envelope.metadata === "string") && (envelope.bypassMessagePrefix === void 0 || envelope.bypassMessagePrefix === true) && (envelope.alreadyPrefixed === void 0 || envelope.alreadyPrefixed === true);
3923
3924
  }
3924
3925
  __name(isInboundEnvelope, "isInboundEnvelope");
3925
3926
  function isInboundTaskRecord(value) {
@@ -4623,6 +4624,7 @@ var GithubChannel = class extends PollingChannelBase {
4623
4624
  messageId: `event-${trigger.id}`,
4624
4625
  text: reason === "review_requested" ? "Return a formal review summary with verified actionable findings, or a concise no-blocker result." : "Triage this issue and respond with the next action.",
4625
4626
  displayText: reason === "review_requested" ? `Review requested: ${displayTitle}` : `Issue assigned: ${displayTitle}`,
4627
+ bypassMessagePrefix: true,
4626
4628
  isGroup: true,
4627
4629
  isMentioned: true,
4628
4630
  isReplyToBot: false,
@@ -4650,7 +4652,12 @@ ${details}`
4650
4652
  for (const comment of newComments) {
4651
4653
  this.recordDispatchedComment(comment.node_id || String(comment.id));
4652
4654
  }
4653
- const comments = newComments.map((comment) => ({ comment, body: (comment.body || "").trim() })).slice(-MAX_AGGREGATE_COMMENTS);
4655
+ const messagePrefix = this.configuredMessagePrefix();
4656
+ const comments = newComments.flatMap((comment) => {
4657
+ const rawBody = comment.body || "";
4658
+ const body = messagePrefix ? stripMessagePrefix(this.botUsername ? stripBotMention(rawBody, this.botUsername) : rawBody, messagePrefix) : rawBody.trim();
4659
+ return body === void 0 ? [] : [{ comment, body }];
4660
+ }).slice(-MAX_AGGREGATE_COMMENTS);
4654
4661
  if (comments.length === 0)
4655
4662
  return;
4656
4663
  const first = comments[0].comment;
@@ -4665,6 +4672,7 @@ ${details}`
4665
4672
  text: `Review these new comments and output exactly ${NO_REPLY_SENTINEL} if no public reply is needed:
4666
4673
  ${summary}`,
4667
4674
  displayText: summary,
4675
+ bypassMessagePrefix: true,
4668
4676
  isGroup: true,
4669
4677
  isMentioned: true,
4670
4678
  isReplyToBot: false,
@@ -11,7 +11,7 @@ import {
11
11
  detectLineEnding,
12
12
  getDiffStat,
13
13
  needsUtf8Bom
14
- } from "./chunk-JV5YASQA.js";
14
+ } from "./chunk-N7VWZDWW.js";
15
15
  import "./chunk-GOFAQQZA.js";
16
16
  import "./chunk-TWPJO254.js";
17
17
  import "./chunk-CQ35AJ4Z.js";
@@ -32,7 +32,7 @@ import "./chunk-2SZH22YO.js";
32
32
  import "./chunk-DTNV6UZY.js";
33
33
  import "./chunk-QJNDUTOL.js";
34
34
  import "./chunk-JXNIF2O5.js";
35
- import "./chunk-CGKEUUYG.js";
35
+ import "./chunk-NFYEQRLG.js";
36
36
  import "./chunk-ELRMZTPF.js";
37
37
  import "./chunk-CHEIIBT3.js";
38
38
  import "./chunk-PLLIWEM3.js";
@@ -44,7 +44,7 @@ import "./chunk-MLXTMF7H.js";
44
44
  import "./chunk-LILGKQ4B.js";
45
45
  import "./chunk-3CZ2BQV6.js";
46
46
  import "./chunk-SAH4BD2J.js";
47
- import "./chunk-CAAMI77K.js";
47
+ import "./chunk-CXTPVBFA.js";
48
48
  import "./chunk-U7O65WKL.js";
49
49
  import "./chunk-S6LOFUVP.js";
50
50
  import "./chunk-FN3JNDRU.js";
@@ -54,14 +54,14 @@ import "./chunk-IZ2U57NY.js";
54
54
  import "./chunk-NUQ4GK5I.js";
55
55
  import "./chunk-K2OJUPOE.js";
56
56
  import "./chunk-NAVJD2PQ.js";
57
- import "./chunk-ZGQIIGNQ.js";
58
- import "./chunk-ZHECLGA6.js";
57
+ import "./chunk-YBUMTY7B.js";
58
+ import "./chunk-HNLMYDQE.js";
59
59
  import "./chunk-QHMLYMMS.js";
60
60
  import "./chunk-CFKIH3D3.js";
61
61
  import "./chunk-JL6APGBX.js";
62
62
  import "./chunk-DJ2GSRLV.js";
63
- import "./chunk-L3DTX6U4.js";
64
- import "./chunk-C75BXMPM.js";
63
+ import "./chunk-4ALNJDHL.js";
64
+ import "./chunk-NOO4QFXM.js";
65
65
  import "./chunk-KFFCDLKV.js";
66
66
  import "./chunk-ZW2EUO2A.js";
67
67
  import {
@@ -69,7 +69,7 @@ import {
69
69
  ReadFileTool,
70
70
  getLanguageFromFilePath,
71
71
  logFileOperation
72
- } from "./chunk-34ZYDM3F.js";
72
+ } from "./chunk-HBU7EKY4.js";
73
73
  import "./chunk-5ETULJLP.js";
74
74
  import "./chunk-ZHKTKHMO.js";
75
75
  import "./chunk-VGC4I5JJ.js";
@@ -86,7 +86,7 @@ import "./chunk-WZAD4ZNJ.js";
86
86
  import "./chunk-3FPYT6QC.js";
87
87
  import "./chunk-FPGTNKCP.js";
88
88
  import "./chunk-TIGXX4PA.js";
89
- import "./chunk-RJZTX2OF.js";
89
+ import "./chunk-3UXUOFO6.js";
90
90
  import "./chunk-XFFRI3WM.js";
91
91
  import "./chunk-ERU3SDXT.js";
92
92
  import "./chunk-EWJTAP3Y.js";
@@ -903,7 +903,7 @@ var en_default = {
903
903
  'Input to command is JSON with fields "inputs" (tool call arguments) and "response" (tool call response).': 'Input to command is JSON with fields "inputs" (tool call arguments) and "response" (tool call response).',
904
904
  "Input to command is JSON with tool_name, tool_input, tool_use_id, error, error_type, is_interrupt, and is_timeout.": "Input to command is JSON with tool_name, tool_input, tool_use_id, error, error_type, is_interrupt, and is_timeout.",
905
905
  "Input to command is JSON with notification message and type.": "Input to command is JSON with notification message and type.",
906
- 'Input to command is JSON with "prompt" (the current model-bound prompt) and optional "submitted_prompt" (the text projection captured at a supported submission boundary).': 'Input to command is JSON with "prompt" (the current model-bound prompt) and optional "submitted_prompt" (the text projection captured at a supported submission boundary).',
906
+ 'Input to command is JSON with "prompt" (the current model-bound prompt) and optional "submitted_prompt" (the supported interactive TUI text projection).': 'Input to command is JSON with "prompt" (the current model-bound prompt) and optional "submitted_prompt" (the supported interactive TUI text projection).',
907
907
  "Input to command is JSON with command_name, command_args, and expanded prompt text.": "Input to command is JSON with command_name, command_args, and expanded prompt text.",
908
908
  "Input to command is JSON with session start source.": "Input to command is JSON with session start source.",
909
909
  "Input to command is JSON with session end reason.": "Input to command is JSON with session end reason.",