@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
@@ -418,7 +418,7 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
418
418
  try {
419
419
  if (authType === "openai" /* USE_OPENAI */) {
420
420
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
421
- const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-BKTO5QJK.js");
421
+ const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-BE4S5TRD.js");
422
422
  return createOpenAIContentGenerator(generatorConfig, config);
423
423
  }, "loadBaseGenerator");
424
424
  } else if (authType === "openai-responses" /* USE_OPENAI_RESPONSES */) {
@@ -427,14 +427,14 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
427
427
  return createOpenAIResponsesContentGenerator(generatorConfig, config);
428
428
  }, "loadBaseGenerator");
429
429
  } else if (authType === "qwen-oauth" /* QWEN_OAUTH */) {
430
- const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-NOXRK323.js");
430
+ const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-3ZRQHHTC.js");
431
431
  try {
432
432
  const qwenClient = await getQwenOauthClient(
433
433
  config,
434
434
  isInitialAuth ? { requireCachedCredentials: true } : void 0
435
435
  );
436
436
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
437
- const { QwenContentGenerator } = await import("./qwenContentGenerator-K5TJK75P.js");
437
+ const { QwenContentGenerator } = await import("./qwenContentGenerator-TMQC623Z.js");
438
438
  return new QwenContentGenerator(qwenClient, generatorConfig, config);
439
439
  }, "loadBaseGenerator");
440
440
  } catch (error) {
@@ -445,12 +445,12 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
445
445
  }
446
446
  } else if (authType === "anthropic" /* USE_ANTHROPIC */) {
447
447
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
448
- const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-SGIR5IKF.js");
448
+ const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-JSKMKS6V.js");
449
449
  return createAnthropicContentGenerator(generatorConfig, config);
450
450
  }, "loadBaseGenerator");
451
451
  } else if (authType === "gemini" /* USE_GEMINI */ || authType === "vertex-ai" /* USE_VERTEX_AI */) {
452
452
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
453
- const { createLlmContentGenerator } = await import("./llm-content-generator-KWXFHBR3.js");
453
+ const { createLlmContentGenerator } = await import("./llm-content-generator-ZHQQT5W7.js");
454
454
  return createLlmContentGenerator(generatorConfig, config);
455
455
  }, "loadBaseGenerator");
456
456
  } else {
@@ -465,7 +465,7 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
465
465
  try {
466
466
  const [baseGenerator, { LoggingContentGenerator }] = await Promise.all([
467
467
  loadBaseGenerator(),
468
- import("./loggingContentGenerator-NGHVU6AK.js")
468
+ import("./loggingContentGenerator-V72OCCJO.js")
469
469
  ]);
470
470
  return new LoggingContentGenerator(
471
471
  baseGenerator,
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-47ECGEJC.js";
9
9
  import {
10
10
  formatHistoryGapNotice
11
- } from "./chunk-ZT6EPPBY.js";
11
+ } from "./chunk-6JACAGYH.js";
12
12
  import {
13
13
  loadUndici
14
14
  } from "./chunk-TXASDT2M.js";
@@ -21,11 +21,11 @@ import {
21
21
  } from "./chunk-FCQJLMA2.js";
22
22
  import {
23
23
  LOAD_REPLAY_META_KEY
24
- } from "./chunk-YKK2XXHF.js";
24
+ } from "./chunk-PSPAM24S.js";
25
25
  import {
26
26
  isGoalCheckpointBookkeepingRecord,
27
27
  projectGoalStateToLegacy
28
- } from "./chunk-F2RKL5I2.js";
28
+ } from "./chunk-BZM5U74J.js";
29
29
  import {
30
30
  GOAL_PAUSE_REASON_COMMAND,
31
31
  observeToolResultBoundary,
@@ -33,7 +33,7 @@ import {
33
33
  parseGoalStateCause,
34
34
  parseGoalStateRecordPayloadV2,
35
35
  toolResultBoundaryArtifact
36
- } from "./chunk-JV5YASQA.js";
36
+ } from "./chunk-N7VWZDWW.js";
37
37
  import {
38
38
  TranscriptRecordPreparationError,
39
39
  prepareTranscriptRecords,
@@ -43,7 +43,7 @@ import {
43
43
  import {
44
44
  formatVisionBridgeNoticeDisplay,
45
45
  isVisionBridgeNoticeDisplay
46
- } from "./chunk-34ZYDM3F.js";
46
+ } from "./chunk-HBU7EKY4.js";
47
47
  import {
48
48
  SchemaValidator,
49
49
  ToolNames
@@ -2840,7 +2840,7 @@ async function collectSessionMetadata(conversation, config) {
2840
2840
  const gitBranch = firstRecord?.gitBranch;
2841
2841
  let gitRepo;
2842
2842
  if (cwd) {
2843
- const { getGitRepoName } = await import("./deferred-core-runtime-JPLQRVZO.js");
2843
+ const { getGitRepoName } = await import("./deferred-core-runtime-JK5IXL5K.js");
2844
2844
  gitRepo = getGitRepoName(cwd);
2845
2845
  }
2846
2846
  let model;
@@ -3608,7 +3608,7 @@ var DOCUMENT_HTML_TEMPLATE = `<!doctype html>
3608
3608
  id="transcript-stylesheet"
3609
3609
  integrity="sha384-g7RKMZU4g3HtouYdCanFE655GtLdj8Zv7W8LYicXINS24VZ03GQ/1aeLVPLIea8p"
3610
3610
  crossorigin="anonymous"
3611
- href="https://unpkg.com/@qwen-code/qwen-code@0.23.3-nightly.20260910.c46cb85cf2/export-transcript-document.css"
3611
+ href="https://unpkg.com/@qwen-code/qwen-code@0.23.3/export-transcript-document.css"
3612
3612
  />
3613
3613
  </head>
3614
3614
  <body>
@@ -3662,14 +3662,14 @@ var DOCUMENT_HTML_TEMPLATE = `<!doctype html>
3662
3662
  <script
3663
3663
  nonce="__EXPORT_NONCE__"
3664
3664
  id="transcript-renderer"
3665
- integrity="sha384-ctut40w8cgaqLkFgLrkpoH33QRpxq+p+36OjsXnv/t4FhhznHZpRJ0xpPqV9F/Nj"
3665
+ integrity="sha384-pk3bIqWjOCQgUt6MiXxENFE6MhcSLz2FFtasqfbxp62hFgZzIn63Brtt+tmnPi15"
3666
3666
  crossorigin="anonymous"
3667
- src="https://unpkg.com/@qwen-code/qwen-code@0.23.3-nightly.20260910.c46cb85cf2/export-transcript-document.js"
3667
+ src="https://unpkg.com/@qwen-code/qwen-code@0.23.3/export-transcript-document.js"
3668
3668
  ></script>
3669
3669
  </body>
3670
3670
  </html>
3671
3671
  `;
3672
- var EXPORT_TRANSCRIPT_RENDERER_VERSION = "0.23.3-nightly.20260910.c46cb85cf2+4f7d302b60c335c5";
3672
+ var EXPORT_TRANSCRIPT_RENDERER_VERSION = "0.23.3+4f7d302b60c335c5";
3673
3673
  var EXPORT_TRANSCRIPT_RENDERER_LIMITS = Object.freeze({
3674
3674
  maxBlocks: 1e3,
3675
3675
  maxEnvelopeBytes: 33554432
@@ -64,9 +64,6 @@ Please retry after the reset time, or switch to another API key / auth method.`;
64
64
  }
65
65
  __name(formatQuotaExhaustedMessage, "formatQuotaExhaustedMessage");
66
66
 
67
- // packages/core/src/utils/rateLimit.ts
68
- init_esbuild_shims();
69
-
70
67
  // packages/core/src/utils/retryPolicy.ts
71
68
  init_esbuild_shims();
72
69
  var MAX_TIMEOUT_MS = 2147483647;
@@ -145,6 +142,7 @@ function hasResponseHeaders(error) {
145
142
  __name(hasResponseHeaders, "hasResponseHeaders");
146
143
 
147
144
  // packages/core/src/utils/rateLimit.ts
145
+ init_esbuild_shims();
148
146
  var RATE_LIMIT_ERROR_CODES = /* @__PURE__ */ new Set([429, 503, 1302, 1305]);
149
147
  function isRateLimitError(error, extraCodes) {
150
148
  const code = getErrorCode(error);
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-MR3PXB6E.js";
13
13
  import {
14
14
  ideContextStore
15
- } from "./chunk-JV5YASQA.js";
15
+ } from "./chunk-N7VWZDWW.js";
16
16
  import {
17
17
  require_proper_lockfile
18
18
  } from "./chunk-MLXTMF7H.js";
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  buildModelReasoningConfigPreview,
5
5
  resolvePersistedReasoningConfigState
6
- } from "./chunk-6EDWSKN4.js";
6
+ } from "./chunk-BV6Q5HMY.js";
7
7
  import {
8
8
  ACP_ROUTE_ID_PREFIX,
9
9
  buildAcpModelOptions,
@@ -12,7 +12,7 @@ import {
12
12
  parseAcpBaseModelId,
13
13
  resolveCliGenerationConfig,
14
14
  sanitizeProviderBaseUrl
15
- } from "./chunk-VHKOULAI.js";
15
+ } from "./chunk-MF6E7FSA.js";
16
16
  import {
17
17
  snapshotProcessEnv
18
18
  } from "./chunk-TBEXLLAO.js";
@@ -21,10 +21,10 @@ import {
21
21
  } from "./chunk-HGEUHUEV.js";
22
22
  import {
23
23
  loadSettings
24
- } from "./chunk-OOLSYRZ7.js";
24
+ } from "./chunk-7BXXIQG4.js";
25
25
  import {
26
26
  ModelsConfig
27
- } from "./chunk-JV5YASQA.js";
27
+ } from "./chunk-N7VWZDWW.js";
28
28
  import {
29
29
  APPROVAL_MODES
30
30
  } from "./chunk-JX6XHPTX.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-74JEYK2C.js";
5
+ } from "./chunk-VZUCTJ2P.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  registerCleanup
5
- } from "./chunk-JDEW3V5B.js";
5
+ } from "./chunk-JYKWOREU.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  resolvePath
5
- } from "./chunk-C4NLHK7X.js";
5
+ } from "./chunk-7QYWGTHB.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  performStandaloneUpdate
5
- } from "./chunk-SAWPURIU.js";
5
+ } from "./chunk-GOXQL4YH.js";
6
6
  import {
7
7
  updateEventEmitter
8
8
  } from "./chunk-YAF2MQZ6.js";
@@ -16,7 +16,7 @@ import {
16
16
  } from "./chunk-N6VQ37ZZ.js";
17
17
  import {
18
18
  t
19
- } from "./chunk-74JEYK2C.js";
19
+ } from "./chunk-VZUCTJ2P.js";
20
20
  import {
21
21
  createDebugLogger
22
22
  } from "./chunk-ZAFYHRVY.js";
@@ -7,12 +7,12 @@ import {
7
7
  import {
8
8
  customDeepMerge,
9
9
  getSettingsSchema
10
- } from "./chunk-IOUBOANU.js";
10
+ } from "./chunk-ZU47FBOC.js";
11
11
  import {
12
12
  getHomeEnvFallbackVars,
13
13
  loadEnvironment,
14
14
  preResolveHomeEnvOverrides
15
- } from "./chunk-YIU5PEAT.js";
15
+ } from "./chunk-NOAG7N22.js";
16
16
  import {
17
17
  CONSOLIDATED_DISABLE_KEYS,
18
18
  V1_INDICATOR_KEYS,
@@ -30,7 +30,7 @@ import {
30
30
  } from "./chunk-IDS7MSUP.js";
31
31
  import {
32
32
  t
33
- } from "./chunk-74JEYK2C.js";
33
+ } from "./chunk-VZUCTJ2P.js";
34
34
  import {
35
35
  SUPPORTED_LANGUAGES,
36
36
  getLanguageNameFromLocale
@@ -38,7 +38,7 @@ import {
38
38
  import {
39
39
  isWorkspaceTrusted,
40
40
  updateSettingsFilePreservingFormat
41
- } from "./chunk-KHIBLKNK.js";
41
+ } from "./chunk-53GWJOLP.js";
42
42
  import {
43
43
  require_strip_json_comments
44
44
  } from "./chunk-NPQ5ZKRP.js";
@@ -2,15 +2,15 @@
2
2
  "use strict";
3
3
  import {
4
4
  appEvents
5
- } from "./chunk-BHR6IN2X.js";
5
+ } from "./chunk-DYFOSJHU.js";
6
6
  import {
7
7
  assembleMcpServers,
8
8
  getPendingGatedMcpServers,
9
9
  getPromptableMcpServers
10
- } from "./chunk-GP47UR3M.js";
10
+ } from "./chunk-2ZN3O5FT.js";
11
11
  import {
12
12
  getMCPServerStatus
13
- } from "./chunk-34ZYDM3F.js";
13
+ } from "./chunk-HBU7EKY4.js";
14
14
  import {
15
15
  require_fast_deep_equal
16
16
  } from "./chunk-TP6FYVQT.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  getEffectiveSupportedModes
5
- } from "./chunk-3VPFA6L2.js";
5
+ } from "./chunk-BWAMMKIS.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -3819,6 +3819,71 @@ function truncateError(message) {
3819
3819
  }
3820
3820
  __name(truncateError, "truncateError");
3821
3821
 
3822
+ // packages/channels/base/dist/message-prefix.js
3823
+ init_esbuild_shims();
3824
+ function startsWithMessagePrefix(text, prefix) {
3825
+ return text.startsWith(prefix) && (text.length === prefix.length || /\s/u.test(text.charAt(prefix.length)));
3826
+ }
3827
+ __name(startsWithMessagePrefix, "startsWithMessagePrefix");
3828
+ function stripMessagePrefix(text, prefix) {
3829
+ if (!prefix)
3830
+ return text;
3831
+ let candidate = text.trim();
3832
+ while (!startsWithMessagePrefix(candidate, prefix) && (candidate.startsWith("@") || candidate.startsWith("<@"))) {
3833
+ const mention = candidate.match(/^(?:@[^@\s]+|<@[^>]{1,64}>)\s+/u)?.[0];
3834
+ if (!mention)
3835
+ return void 0;
3836
+ candidate = candidate.slice(mention.length);
3837
+ }
3838
+ if (!startsWithMessagePrefix(candidate, prefix))
3839
+ return void 0;
3840
+ const suffix = candidate.slice(prefix.length);
3841
+ if (!/^\s+\S[\s\S]*$/u.test(suffix))
3842
+ return void 0;
3843
+ return suffix.trim();
3844
+ }
3845
+ __name(stripMessagePrefix, "stripMessagePrefix");
3846
+ function locateDisplayText(envelope, displayText) {
3847
+ const offset = envelope.displayTextOffset;
3848
+ if (offset !== void 0 && envelope.text.startsWith(displayText, offset)) {
3849
+ return offset;
3850
+ }
3851
+ if (offset === void 0 && envelope.text.endsWith(displayText)) {
3852
+ return envelope.text.length - displayText.length;
3853
+ }
3854
+ const first = envelope.text.indexOf(displayText);
3855
+ if (first === -1)
3856
+ return -1;
3857
+ return envelope.text.indexOf(displayText, first + 1) === -1 ? first : "ambiguous";
3858
+ }
3859
+ __name(locateDisplayText, "locateDisplayText");
3860
+ function applyMessagePrefix(envelope, prefix) {
3861
+ if (!prefix || envelope.bypassMessagePrefix || envelope.syntheticText) {
3862
+ return true;
3863
+ }
3864
+ const displayText = envelope.displayText;
3865
+ const prefixText = envelope.messagePrefixText;
3866
+ const sourceText = prefixText ?? displayText ?? envelope.text;
3867
+ const stripped = stripMessagePrefix(sourceText, prefix);
3868
+ if (stripped === void 0)
3869
+ return false;
3870
+ if (displayText === void 0) {
3871
+ if (prefixText !== void 0)
3872
+ envelope.messagePrefixText = stripped;
3873
+ envelope.text = stripped;
3874
+ return true;
3875
+ }
3876
+ const at = locateDisplayText(envelope, displayText);
3877
+ if (at === "ambiguous" || at === -1)
3878
+ return false;
3879
+ if (prefixText !== void 0)
3880
+ envelope.messagePrefixText = stripped;
3881
+ envelope.displayText = stripped;
3882
+ envelope.text = envelope.text.slice(0, at) + stripped + envelope.text.slice(at + displayText.length);
3883
+ return true;
3884
+ }
3885
+ __name(applyMessagePrefix, "applyMessagePrefix");
3886
+
3822
3887
  // packages/channels/base/dist/ChannelWebhookTask.js
3823
3888
  init_esbuild_shims();
3824
3889
  var MAX_WEBHOOK_PROMPT_CHARS = 8500;
@@ -4249,6 +4314,9 @@ var ChannelBase = class {
4249
4314
  observedContacts;
4250
4315
  namedSessions;
4251
4316
  observedContactEnvelopes = /* @__PURE__ */ new WeakSet();
4317
+ messagePrefix;
4318
+ messagePrefixCheckedEnvelopes = /* @__PURE__ */ new WeakSet();
4319
+ messagePrefixRejectedEnvelopes = /* @__PURE__ */ new WeakSet();
4252
4320
  instructedSessions = /* @__PURE__ */ new Set();
4253
4321
  unattendedMemorySessions = /* @__PURE__ */ new Set();
4254
4322
  channelMemoryReads = /* @__PURE__ */ new Map();
@@ -4384,7 +4452,7 @@ var ChannelBase = class {
4384
4452
  async handleBtw(envelope, sessionId, question, sourceLabel) {
4385
4453
  const target = this.router.getTarget(sessionId);
4386
4454
  if (!target || target.channelName !== this.name) {
4387
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Could not resolve the current task for /btw.`, sourceLabel);
4455
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Could not resolve the current task for ${this.prefixedCommand("/btw")}.`, sourceLabel);
4388
4456
  return;
4389
4457
  }
4390
4458
  const running = this.activeBtw.get(sessionId);
@@ -4838,8 +4906,12 @@ No answer is available from the current conversation context.`;
4838
4906
  this.removePendingPermission(event.requestId, this.userInputSettlementReason(pending, event.outcome));
4839
4907
  }
4840
4908
  constructor(name, config, bridge, options) {
4909
+ if (config.messagePrefix !== void 0 && typeof config.messagePrefix !== "string") {
4910
+ throw new Error(`Channel "${name}" field "messagePrefix" must be a string.`);
4911
+ }
4841
4912
  this.name = name;
4842
4913
  this.config = config;
4914
+ this.messagePrefix = config.messagePrefix?.trim() || void 0;
4843
4915
  this.bridge = bridge;
4844
4916
  this.locale = options?.locale ?? "en";
4845
4917
  this.proxy = options?.proxy;
@@ -6117,11 +6189,11 @@ ${promptText}` : promptText;
6117
6189
  const requestSuffix = pending.taskName ? ` ${pending.requestId}` : "";
6118
6190
  const replyPadding = pending.taskName ? { approve: " ", always: " ", deny: " " } : { approve: " ", always: " ", deny: " " };
6119
6191
  const replies = [
6120
- `/approve${requestSuffix}${replyPadding.approve}${approveLabel}`,
6192
+ `${this.prefixedCommand(`/approve${requestSuffix}`)}${replyPadding.approve}${approveLabel}`,
6121
6193
  ...alwaysOption ? [
6122
- `/approve-always${requestSuffix}${replyPadding.always}${alwaysOption.label}`
6194
+ `${this.prefixedCommand(`/approve-always${requestSuffix}`)}${replyPadding.always}${alwaysOption.label}`
6123
6195
  ] : [],
6124
- `/deny${requestSuffix}${replyPadding.deny}${denyLabel}`
6196
+ `${this.prefixedCommand(`/deny${requestSuffix}`)}${replyPadding.deny}${denyLabel}`
6125
6197
  ];
6126
6198
  return [
6127
6199
  copy.required,
@@ -6135,6 +6207,12 @@ ${promptText}` : promptText;
6135
6207
  ...replies
6136
6208
  ].join("\n");
6137
6209
  }
6210
+ prefixedCommand(command) {
6211
+ return this.messagePrefix ? `${this.messagePrefix} ${command}` : command;
6212
+ }
6213
+ configuredMessagePrefix() {
6214
+ return this.messagePrefix;
6215
+ }
6138
6216
  permissionTitle(toolCall) {
6139
6217
  const rawTitle = typeof toolCall.title === "string" ? toolCall.title : void 0;
6140
6218
  return sanitizeQuotedText(rawTitle || "", 160).trim() || PERMISSION_COPY[this.locale].toolUse;
@@ -6268,7 +6346,7 @@ ${promptText}` : promptText;
6268
6346
  const task = pending2?.taskName ? `Task ${pending2.taskName} \u2014 ` : "";
6269
6347
  return `- ${task}${sanitizeQuotedText(id, 128)}${title}`;
6270
6348
  }).join("\n");
6271
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Multiple permission requests are pending for this chat. Reply with /${decision} <request-id>.
6349
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Multiple permission requests are pending for this chat. Reply with ${this.prefixedCommand(`/${decision} <request-id>`)}.
6272
6350
  ${requestList}`);
6273
6351
  return true;
6274
6352
  }
@@ -6282,7 +6360,7 @@ ${requestList}`);
6282
6360
  return true;
6283
6361
  }
6284
6362
  if (pending.userInputPresented && decision !== "deny") {
6285
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Submit this question through its interactive card, or use /deny [request-id] to cancel it.`, pending.sourceLabel);
6363
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Submit this question through its interactive card, or use ${this.prefixedCommand("/deny [request-id]")} to cancel it.`, pending.sourceLabel);
6286
6364
  return true;
6287
6365
  }
6288
6366
  const response = (() => {
@@ -6449,7 +6527,7 @@ ${requestList}`);
6449
6527
  if (safeTaskName !== void 0 && failedTaskName === await this.selectedTaskName(envelope)) {
6450
6528
  return `${subject} ${problem}. Its files were not changed. ${interrupted ? "Clear the task again to finish the reset." : "Clear the task to restart it in the same worktree, or close it."}`;
6451
6529
  }
6452
- const remedy = safeTaskName === void 0 ? "select this task first or close it" : `select this task first or close it with /session close ${safeTaskName}`;
6530
+ const remedy = safeTaskName === void 0 ? "select this task first or close it" : `select this task first or close it with ${this.prefixedCommand(`/session close ${safeTaskName}`)}`;
6453
6531
  return `${subject} ${problem}. Its files were not changed. Clearing now would reset the selected task instead, so ${remedy}.`;
6454
6532
  }
6455
6533
  async selectedTaskName(envelope) {
@@ -6476,7 +6554,7 @@ ${requestList}`);
6476
6554
  return false;
6477
6555
  const normalized = args.trim().toLowerCase();
6478
6556
  if (normalized !== "" && normalized !== "all") {
6479
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: /sessions [all]`);
6557
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand("/sessions [all]")}`);
6480
6558
  return true;
6481
6559
  }
6482
6560
  try {
@@ -6507,7 +6585,7 @@ ${requestList}`);
6507
6585
  if (parts.length > 0)
6508
6586
  break;
6509
6587
  const current = await namedSessions.current(owner);
6510
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, current ? `Current task: ${current.name} (${current.isolation})` : `No task is currently selected. Use /session new <name> or /session use <name>.`);
6588
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, current ? `Current task: ${current.name} (${current.isolation})` : `No task is currently selected. Use ${this.prefixedCommand("/session new <name>")} or ${this.prefixedCommand("/session use <name>")}.`);
6511
6589
  return true;
6512
6590
  }
6513
6591
  case "new": {
@@ -6566,7 +6644,7 @@ ${requestList}`);
6566
6644
  await this.sendNamedSessionError(envelope, error);
6567
6645
  return true;
6568
6646
  }
6569
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: /session current | /session new <name> [--worktree] | /session use <name> | /session close <name> | /session cancel [<name>]`);
6647
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand("/session current")} | ${this.prefixedCommand("/session new <name> [--worktree]")} | ${this.prefixedCommand("/session use <name>")} | ${this.prefixedCommand("/session close <name>")} | ${this.prefixedCommand("/session cancel [<name>]")}`);
6570
6648
  return true;
6571
6649
  }
6572
6650
  /** Register shared slash commands. Called from constructor. */
@@ -6659,7 +6737,7 @@ ${requestList}`);
6659
6737
  return true;
6660
6738
  }
6661
6739
  if (this.isSharedSession(envelope) && args.toLowerCase() !== "confirm") {
6662
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `This clears the shared session for everyone who shares it. Re-send with "confirm" (e.g. /clear confirm) to proceed.`);
6740
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `This clears the shared session for everyone who shares it. Re-send with "confirm" (e.g. ${this.prefixedCommand("/clear confirm")}) to proceed.`);
6663
6741
  return true;
6664
6742
  }
6665
6743
  await doClear(envelope);
@@ -6700,19 +6778,19 @@ ${requestList}`);
6700
6778
  this.registerCommand("help", async (envelope) => {
6701
6779
  const lines = [
6702
6780
  "Commands:",
6703
- `/help \u2014 Show this help`,
6704
- this.isSharedSession(envelope) ? `/clear confirm \u2014 Clear the shared session (aliases: /reset, /new)` : `/clear \u2014 Clear your session (aliases: /reset, /new)`,
6705
- `/who \u2014 Show current session & workspace`,
6706
- `/status \u2014 Show session info`,
6707
- `/approve [request-id] \u2014 Approve a pending permission request`,
6708
- `/approve-always [request-id] \u2014 Always approve a pending permission request`,
6709
- `/deny [request-id] \u2014 Deny a pending permission request`,
6781
+ `${this.prefixedCommand("/help")} \u2014 Show this help`,
6782
+ this.isSharedSession(envelope) ? `${this.prefixedCommand("/clear confirm")} \u2014 Clear the shared session (aliases: ${this.prefixedCommand("/reset")}, ${this.prefixedCommand("/new")})` : `${this.prefixedCommand("/clear")} \u2014 Clear your session (aliases: ${this.prefixedCommand("/reset")}, ${this.prefixedCommand("/new")})`,
6783
+ `${this.prefixedCommand("/who")} \u2014 Show current session & workspace`,
6784
+ `${this.prefixedCommand("/status")} \u2014 Show session info`,
6785
+ `${this.prefixedCommand("/approve [request-id]")} \u2014 Approve a pending permission request`,
6786
+ `${this.prefixedCommand("/approve-always [request-id]")} \u2014 Always approve a pending permission request`,
6787
+ `${this.prefixedCommand("/deny [request-id]")} \u2014 Deny a pending permission request`,
6710
6788
  ...this.bridge.btw ? [
6711
- `/btw <question> \u2014 Ask a side question without interrupting the current task`
6789
+ `${this.prefixedCommand("/btw <question>")} \u2014 Ask a side question without interrupting the current task`
6712
6790
  ] : [],
6713
6791
  ...this.namedSessions ? [
6714
- `/sessions [all] \u2014 List your named tasks`,
6715
- `/session current|new|use|close|cancel \u2014 Manage your named tasks`
6792
+ `${this.prefixedCommand("/sessions [all]")} \u2014 List your named tasks`,
6793
+ `${this.prefixedCommand("/session current|new|use|close|cancel")} \u2014 Manage your named tasks`
6716
6794
  ] : []
6717
6795
  ];
6718
6796
  const sharedCmds = /* @__PURE__ */ new Set([
@@ -6735,7 +6813,7 @@ ${requestList}`);
6735
6813
  const platformCmds = [...this.commands.keys()].filter((c) => !sharedCmds.has(c));
6736
6814
  if (platformCmds.length > 0) {
6737
6815
  for (const cmd of platformCmds) {
6738
- lines.push(`/${cmd}`);
6816
+ lines.push(this.prefixedCommand(`/${cmd}`));
6739
6817
  }
6740
6818
  }
6741
6819
  const sessionId = await this.currentSessionId(envelope);
@@ -6746,10 +6824,10 @@ ${requestList}`);
6746
6824
  if (agentCommands.length > 0) {
6747
6825
  lines.push("", "Agent commands (forwarded to Qwen Code):");
6748
6826
  for (const cmd of agentCommands) {
6749
- lines.push(`/${cmd.name} \u2014 ${cmd.description}`);
6827
+ lines.push(`${this.prefixedCommand(`/${cmd.name}`)} \u2014 ${cmd.description}`);
6750
6828
  }
6751
6829
  }
6752
- lines.push("", "Send any text to chat with the agent.");
6830
+ lines.push("", this.messagePrefix ? `Start each message with ${this.messagePrefix} to chat with the agent.` : "Send any text to chat with the agent.");
6753
6831
  await this.sendThreadMessage(envelope.chatId, envelope.threadId, lines.join("\n"));
6754
6832
  return true;
6755
6833
  });
@@ -6794,7 +6872,7 @@ ${requestList}`);
6794
6872
  case "cancel":
6795
6873
  return this.handleLoopCancel(envelope, rest[0]);
6796
6874
  default:
6797
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: /loop add "<cron>" <prompt> | /loop list | /loop inspect <id> | /loop cancel <id>`);
6875
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand('/loop add "<cron>" <prompt>')} | ${this.prefixedCommand("/loop list")} | ${this.prefixedCommand("/loop inspect <id>")} | ${this.prefixedCommand("/loop cancel <id>")}`);
6798
6876
  return true;
6799
6877
  }
6800
6878
  }
@@ -6811,7 +6889,7 @@ ${requestList}`);
6811
6889
  }
6812
6890
  const parsed = parseLoopAddArgs(args);
6813
6891
  if (!parsed) {
6814
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: /loop add "<cron>" <prompt>`);
6892
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand('/loop add "<cron>" <prompt>')}`);
6815
6893
  return true;
6816
6894
  }
6817
6895
  try {
@@ -6965,7 +7043,7 @@ ${requestList}`);
6965
7043
  if (!this.loopController)
6966
7044
  return true;
6967
7045
  if (!id) {
6968
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: /loop inspect <id>`);
7046
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand("/loop inspect <id>")}`);
6969
7047
  return true;
6970
7048
  }
6971
7049
  const jobs = await this.loopController.listForTarget(this.name, this.loopTargetFromEnvelope(envelope));
@@ -7025,7 +7103,7 @@ ${requestList}`);
7025
7103
  if (!this.loopController)
7026
7104
  return true;
7027
7105
  if (!id) {
7028
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: /loop cancel <id>`);
7106
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand("/loop cancel <id>")}`);
7029
7107
  return true;
7030
7108
  }
7031
7109
  const jobs = await this.loopController.listForTarget(this.name, this.loopTargetFromEnvelope(envelope));
@@ -7824,6 +7902,18 @@ ${CURRENT_MESSAGE_MARKER}
7824
7902
  ${promptText}`;
7825
7903
  }
7826
7904
  preflightInbound(envelope, options = {}) {
7905
+ if (this.messagePrefixRejectedEnvelopes.has(envelope))
7906
+ return false;
7907
+ if (!this.messagePrefixCheckedEnvelopes.has(envelope)) {
7908
+ this.messagePrefixCheckedEnvelopes.add(envelope);
7909
+ if (!applyMessagePrefix(envelope, this.messagePrefix)) {
7910
+ this.messagePrefixRejectedEnvelopes.add(envelope);
7911
+ if (!(envelope.isGroup && !envelope.isMentioned && !envelope.isReplyToBot)) {
7912
+ this.logPreflightRejected("message_prefix_mismatch");
7913
+ }
7914
+ return false;
7915
+ }
7916
+ }
7827
7917
  const groupResult = this.groupGate.check(envelope, {
7828
7918
  createPairingRequest: !options.deferPairingRequests
7829
7919
  });
@@ -7879,6 +7969,9 @@ ${promptText}`;
7879
7969
  process.stderr.write(`[Channel:${this.name}] preflight rejected reason=${sanitizeLogText(reason, 80)}
7880
7970
  `);
7881
7971
  }
7972
+ wasMessagePrefixRejected(envelope) {
7973
+ return this.messagePrefixRejectedEnvelopes.has(envelope);
7974
+ }
7882
7975
  logDebugPayload(platform, payload) {
7883
7976
  if (!isDebugPayloadEnabled(this.name))
7884
7977
  return;
@@ -8102,12 +8195,12 @@ ${text}`;
8102
8195
  }
8103
8196
  if (parsed.command === "btw" && this.bridge.btw) {
8104
8197
  if (!this.isAuthorizedForSharedSession(envelope)) {
8105
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Only authorized members can use /btw in this shared session.`);
8198
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Only authorized members can use ${this.prefixedCommand("/btw")} in this shared session.`);
8106
8199
  return;
8107
8200
  }
8108
8201
  btwQuestion = parsed.args.trim();
8109
8202
  if (!btwQuestion) {
8110
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: /btw <question>`);
8203
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand("/btw <question>")}`);
8111
8204
  return;
8112
8205
  }
8113
8206
  if (btwQuestion.length > CHANNEL_BTW_MAX_INPUT_LENGTH) {
@@ -8115,7 +8208,7 @@ ${text}`;
8115
8208
  return;
8116
8209
  }
8117
8210
  if (envelope.imageBase64 || envelope.attachments?.length) {
8118
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `/btw supports text-only questions.`);
8211
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `${this.prefixedCommand("/btw")} supports text-only questions.`);
8119
8212
  return;
8120
8213
  }
8121
8214
  }
@@ -8173,7 +8266,7 @@ ${text}`;
8173
8266
  return;
8174
8267
  }
8175
8268
  if (!sessionId) {
8176
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `No task is currently selected. Use /session new <name> or /session use <name>.`);
8269
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `No task is currently selected. Use ${this.prefixedCommand("/session new <name>")} or ${this.prefixedCommand("/session use <name>")}.`);
8177
8270
  return;
8178
8271
  }
8179
8272
  } else {
@@ -8181,7 +8274,7 @@ ${text}`;
8181
8274
  }
8182
8275
  const sourceLabel = this.namedSessions ? this.sourceLabelForTurn(sessionId, envelope) : void 0;
8183
8276
  if (this.namedSessions && !sourceLabel) {
8184
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Could not identify the selected task. Use /sessions, select it again, and retry.`);
8277
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Could not identify the selected task. Use ${this.prefixedCommand("/sessions")}, select it again, and retry.`);
8185
8278
  return;
8186
8279
  }
8187
8280
  if (btwQuestion !== void 0) {
@@ -9837,6 +9930,8 @@ export {
9837
9930
  sanitizeLogText,
9838
9931
  SessionRouter,
9839
9932
  ChannelLoopScheduler,
9933
+ startsWithMessagePrefix,
9934
+ stripMessagePrefix,
9840
9935
  ChannelBase,
9841
9936
  PollingChannelBase,
9842
9937
  CHANNEL_PROMPT_META_KEY,