@qwen-code/channel-telegram 0.22.3 → 0.23.0-nightly.20260905.0c945a6136

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.
@@ -12,8 +12,10 @@ export declare class TelegramChannel extends ChannelBase {
12
12
  protected supportsProactiveTarget(target: SessionTarget): boolean;
13
13
  private createBot;
14
14
  private getFileUrl;
15
+ private reportInboundError;
15
16
  connect(): Promise<void>;
16
17
  private registerBotCommands;
18
+ private startMessage;
17
19
  /** Per-chat typing interval — repeats every 4s since Telegram expires it after 5s. */
18
20
  private typingIntervals;
19
21
  private activeTypingSessions;
@@ -27,8 +29,9 @@ export declare class TelegramChannel extends ChannelBase {
27
29
  handleInbound(envelope: Envelope): Promise<void>;
28
30
  protected prepareThenHandleInbound(envelope: Envelope, prepare: () => Promise<boolean | void>): Promise<void>;
29
31
  sendMessage(chatId: string, text: string): Promise<void>;
30
- protected sendResponseMessage(chatId: string, text: string, sessionId: string): Promise<void>;
31
- protected pushProactive(target: SessionTarget, text: string): Promise<void>;
32
+ protected sendThreadMessage(chatId: string, threadId: string | undefined, text: string, sourceLabel?: string): Promise<void>;
33
+ protected sendResponseMessage(chatId: string, text: string, sessionId: string, sourceLabel?: string): Promise<void>;
34
+ protected pushProactive(target: SessionTarget, text: string, sourceLabel?: string): Promise<void>;
32
35
  private sendTelegramMessage;
33
36
  disconnect(): void;
34
37
  private buildEnvelope;
@@ -1 +1 @@
1
- {"version":3,"file":"TelegramAdapter.d.ts","sourceRoot":"","sources":["../src/TelegramAdapter.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,WAAW,EAEZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,yBAAyB,EACzB,QAAQ,EACR,aAAa,EACd,MAAM,yBAAyB,CAAC;AAmBjC,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAExB;gBAGH,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE,kBAAkB;IAWrB,qBAAqB,IAAI,OAAO;cAItB,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAI1E,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,UAAU;IAIZ,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YA2LhB,mBAAmB;IAUjC,sFAAsF;IACtF,OAAO,CAAC,eAAe,CAAqD;IAC5E,OAAO,CAAC,oBAAoB,CAAkC;IAE9D,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,UAAU;cAaC,eAAe,CAAC,KAAK,EAAE,yBAAyB,GAAG,IAAI;cAUvD,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;cAIvD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAI/D,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAShC,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;cAMtC,wBAAwB,CAC/C,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GACrC,OAAO,CAAC,IAAI,CAAC;IAQV,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAQrC,mBAAmB,CAC1C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;cAYS,aAAa,CACpC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;YAIF,mBAAmB;IA2BjC,UAAU,IAAI,IAAI;IASlB,OAAO,CAAC,aAAa;CA4DtB"}
1
+ {"version":3,"file":"TelegramAdapter.d.ts","sourceRoot":"","sources":["../src/TelegramAdapter.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,WAAW,EAGZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,yBAAyB,EACzB,QAAQ,EACR,aAAa,EACd,MAAM,yBAAyB,CAAC;AAWjC,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAExB;gBAGH,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE,kBAAkB;IAWrB,qBAAqB,IAAI,OAAO;cAItB,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAI1E,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,kBAAkB;IAoBpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YA2MhB,mBAAmB;IAUjC,OAAO,CAAC,YAAY;IAcpB,sFAAsF;IACtF,OAAO,CAAC,eAAe,CAAqD;IAC5E,OAAO,CAAC,oBAAoB,CAAkC;IAE9D,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,UAAU;cAaC,eAAe,CAAC,KAAK,EAAE,yBAAyB,GAAG,IAAI;cAUvD,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;cAIvD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAI/D,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAShC,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;cAMtC,wBAAwB,CAC/C,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GACrC,OAAO,CAAC,IAAI,CAAC;IAQV,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAQrC,iBAAiB,CACxC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;cAIS,mBAAmB,CAC1C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;cAiBS,aAAa,CACpC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;YASF,mBAAmB;IA+CjC,UAAU,IAAI,IAAI;IASlB,OAAO,CAAC,aAAa;CAsGtB"}
@@ -6,7 +6,7 @@ import { tmpdir } from 'node:os';
6
6
  import { Bot } from 'grammy';
7
7
  import { HttpsProxyAgent } from 'https-proxy-agent';
8
8
  import { telegramFormat, splitHtmlForTelegram, } from 'telegram-markdown-formatter';
9
- import { ChannelBase, isTerminalTaskLifecycleType, } from '@qwen-code/channel-base';
9
+ import { ChannelBase, isTerminalTaskLifecycleType, startsWithMessagePrefix, } from '@qwen-code/channel-base';
10
10
  const TELEGRAM_BOT_COMMANDS = [
11
11
  { command: 'start', description: 'Show quick-start help' },
12
12
  { command: 'help', description: 'Show available commands' },
@@ -14,14 +14,7 @@ const TELEGRAM_BOT_COMMANDS = [
14
14
  { command: 'cancel', description: 'Cancel the running request' },
15
15
  { command: 'status', description: 'Show session info' },
16
16
  ];
17
- const TELEGRAM_START_MESSAGE = [
18
- 'Qwen Code Telegram bot',
19
- '',
20
- 'Send any message to chat with Qwen Code.',
21
- 'Use /new to start a fresh conversation.',
22
- 'Use /cancel to stop a running request.',
23
- 'Use /help to see available commands.',
24
- ].join('\n');
17
+ const TELEGRAM_MESSAGE_LIMIT = 4096;
25
18
  export class TelegramChannel extends ChannelBase {
26
19
  bot;
27
20
  botId = 0;
@@ -33,7 +26,7 @@ export class TelegramChannel extends ChannelBase {
33
26
  super(name, config, bridge, options);
34
27
  this.bot = this.createBot();
35
28
  this.registerCommand('start', async (envelope) => {
36
- await this.sendMessage(envelope.chatId, TELEGRAM_START_MESSAGE);
29
+ await this.sendMessage(envelope.chatId, this.startMessage());
37
30
  return true;
38
31
  });
39
32
  this.registerCancelCommand();
@@ -57,6 +50,14 @@ export class TelegramChannel extends ChannelBase {
57
50
  getFileUrl(filePath) {
58
51
  return `https://api.telegram.org/file/bot${this.bot.token}/${filePath}`;
59
52
  }
53
+ reportInboundError(envelope, error, reply) {
54
+ process.stderr.write(`[Telegram:${this.name}] Error handling message: ${error}\n`);
55
+ const sourceLabel = this.getInboundErrorSourceLabel(envelope);
56
+ const delivery = sourceLabel
57
+ ? this.sendThreadMessage(envelope.chatId, envelope.threadId, 'Sorry, something went wrong processing your message.', sourceLabel)
58
+ : reply();
59
+ delivery.catch(() => { });
60
+ }
60
61
  async connect() {
61
62
  if (this.hasConnectedOnce) {
62
63
  this.bot = this.createBot();
@@ -71,19 +72,16 @@ export class TelegramChannel extends ChannelBase {
71
72
  this.bot.on('message:text', async (ctx) => {
72
73
  const msg = ctx.message;
73
74
  const text = msg.text;
74
- const envelope = this.buildEnvelope(msg, text, msg.entities);
75
+ const envelope = this.buildEnvelope(msg, text, msg.entities, true);
75
76
  // Don't await — long prompts would block the update loop
76
77
  this.handleInbound(envelope).catch((err) => {
77
- process.stderr.write(`[Telegram:${this.name}] Error handling message: ${err}\n`);
78
- ctx
79
- .reply('Sorry, something went wrong processing your message.')
80
- .catch(() => { });
78
+ this.reportInboundError(envelope, err, () => ctx.reply('Sorry, something went wrong processing your message.'));
81
79
  });
82
80
  });
83
81
  // Photo messages
84
82
  this.bot.on('message:photo', async (ctx) => {
85
83
  const msg = ctx.message;
86
- const envelope = this.buildEnvelope(msg, msg.caption || '(image)', msg.caption_entities);
84
+ const envelope = this.buildEnvelope(msg, msg.caption || '(image)', msg.caption_entities, false, !msg.caption);
87
85
  // Pick the largest photo size (last in array)
88
86
  const photo = msg.photo[msg.photo.length - 1];
89
87
  if (!photo)
@@ -101,12 +99,11 @@ export class TelegramChannel extends ChannelBase {
101
99
  }
102
100
  catch (err) {
103
101
  process.stderr.write(`[Telegram:${this.name}] Failed to download photo: ${err instanceof Error ? err.message : err}\n`);
102
+ const promptText = msg.caption ? envelope.text : '';
103
+ envelope.text = `${promptText}\n\n(User sent an image but download failed)`;
104
104
  }
105
105
  }).catch((err) => {
106
- process.stderr.write(`[Telegram:${this.name}] Error handling message: ${err}\n`);
107
- ctx
108
- .reply('Sorry, something went wrong processing your message.')
109
- .catch(() => { });
106
+ this.reportInboundError(envelope, err, () => ctx.reply('Sorry, something went wrong processing your message.'));
110
107
  });
111
108
  });
112
109
  // Document/file messages
@@ -114,7 +111,7 @@ export class TelegramChannel extends ChannelBase {
114
111
  const msg = ctx.message;
115
112
  const doc = msg.document;
116
113
  const fileName = doc.file_name || `file_${Date.now()}`;
117
- const envelope = this.buildEnvelope(msg, msg.caption || `(file: ${fileName})`, msg.caption_entities);
114
+ const envelope = this.buildEnvelope(msg, msg.caption || `(file: ${fileName})`, msg.caption_entities, false, !msg.caption);
118
115
  this.prepareThenHandleInbound(envelope, async () => {
119
116
  try {
120
117
  const file = await ctx.api.getFile(doc.file_id);
@@ -128,7 +125,12 @@ export class TelegramChannel extends ChannelBase {
128
125
  mkdirSync(dir, { recursive: true });
129
126
  const filePath = join(dir, basename(fileName) || `file_${Date.now()}`);
130
127
  writeFileSync(filePath, buf);
131
- envelope.text = msg.caption || '';
128
+ // Cleared when the caption is absent too: the bypass above
129
+ // skips stripping entirely, so the `(file: …)` placeholder
130
+ // would otherwise reach the model as prompt text.
131
+ if (!this.configuredMessagePrefix() || !msg.caption) {
132
+ envelope.text = msg.caption || '';
133
+ }
132
134
  envelope.attachments = [
133
135
  {
134
136
  type: 'file',
@@ -140,15 +142,15 @@ export class TelegramChannel extends ChannelBase {
140
142
  }
141
143
  catch (err) {
142
144
  process.stderr.write(`[Telegram:${this.name}] Failed to download document: ${err instanceof Error ? err.message : err}\n`);
143
- envelope.text =
144
- (msg.caption || '') +
145
- `\n\n(User sent a file "${fileName}" but download failed)`;
145
+ // Mirrors the success branch: the placeholder is adapter text, so
146
+ // only a real caption may survive into the prompt.
147
+ const promptText = this.configuredMessagePrefix() && msg.caption
148
+ ? envelope.text
149
+ : msg.caption || '';
150
+ envelope.text = `${promptText}\n\n(User sent a file "${fileName}" but download failed)`;
146
151
  }
147
152
  }).catch((err) => {
148
- process.stderr.write(`[Telegram:${this.name}] Error handling message: ${err}\n`);
149
- ctx
150
- .reply('Sorry, something went wrong processing your message.')
151
- .catch(() => { });
153
+ this.reportInboundError(envelope, err, () => ctx.reply('Sorry, something went wrong processing your message.'));
152
154
  });
153
155
  });
154
156
  // Voice messages
@@ -156,7 +158,10 @@ export class TelegramChannel extends ChannelBase {
156
158
  const msg = ctx.message;
157
159
  const voice = msg.voice;
158
160
  const fileName = `voice_${Date.now()}.ogg`;
159
- const envelope = this.buildEnvelope(msg, msg.caption || '(voice message)', msg.caption_entities);
161
+ const envelope = this.buildEnvelope(msg, msg.caption || '(voice message)', msg.caption_entities, false,
162
+ // Standard Telegram clients cannot caption a voice message, so
163
+ // this is effectively always synthetic.
164
+ !msg.caption);
160
165
  this.prepareThenHandleInbound(envelope, async () => {
161
166
  try {
162
167
  const file = await ctx.api.getFile(voice.file_id);
@@ -170,7 +175,12 @@ export class TelegramChannel extends ChannelBase {
170
175
  mkdirSync(dir, { recursive: true });
171
176
  const filePath = join(dir, fileName);
172
177
  writeFileSync(filePath, buf);
173
- envelope.text = msg.caption || '';
178
+ // Cleared when the caption is absent too: the bypass above
179
+ // skips stripping entirely, so the `(file: …)` placeholder
180
+ // would otherwise reach the model as prompt text.
181
+ if (!this.configuredMessagePrefix() || !msg.caption) {
182
+ envelope.text = msg.caption || '';
183
+ }
174
184
  envelope.attachments = [
175
185
  {
176
186
  type: 'audio',
@@ -182,15 +192,15 @@ export class TelegramChannel extends ChannelBase {
182
192
  }
183
193
  catch (err) {
184
194
  process.stderr.write(`[Telegram:${this.name}] Failed to download voice message: ${err instanceof Error ? err.message : err}\n`);
185
- envelope.text =
186
- (msg.caption || '') +
187
- `\n\n(User sent a voice message but download failed)`;
195
+ // Mirrors the success branch: the placeholder is adapter text, so
196
+ // only a real caption may survive into the prompt.
197
+ const promptText = this.configuredMessagePrefix() && msg.caption
198
+ ? envelope.text
199
+ : msg.caption || '';
200
+ envelope.text = `${promptText}\n\n(User sent a voice message but download failed)`;
188
201
  }
189
202
  }).catch((err) => {
190
- process.stderr.write(`[Telegram:${this.name}] Error handling message: ${err}\n`);
191
- ctx
192
- .reply('Sorry, something went wrong processing your message.')
193
- .catch(() => { });
203
+ this.reportInboundError(envelope, err, () => ctx.reply('Sorry, something went wrong processing your message.'));
194
204
  });
195
205
  });
196
206
  this.bot.start({ drop_pending_updates: true }).catch((err) => {
@@ -210,6 +220,19 @@ export class TelegramChannel extends ChannelBase {
210
220
  process.stderr.write(`[Telegram:${this.name}] Failed to register bot commands: ${err instanceof Error ? err.message : err}\n`);
211
221
  }
212
222
  }
223
+ startMessage() {
224
+ const prefix = this.configuredMessagePrefix();
225
+ return [
226
+ 'Qwen Code Telegram bot',
227
+ '',
228
+ prefix
229
+ ? `Start each message with ${prefix} to chat with Qwen Code.`
230
+ : 'Send any message to chat with Qwen Code.',
231
+ `Use ${this.prefixedCommand('/new')} to start a fresh conversation.`,
232
+ `Use ${this.prefixedCommand('/cancel')} to stop a running request.`,
233
+ `Use ${this.prefixedCommand('/help')} to see available commands.`,
234
+ ].join('\n');
235
+ }
213
236
  /** Per-chat typing interval — repeats every 4s since Telegram expires it after 5s. */
214
237
  typingIntervals = new Map();
215
238
  activeTypingSessions = new Map();
@@ -278,7 +301,10 @@ export class TelegramChannel extends ChannelBase {
278
301
  async sendMessage(chatId, text) {
279
302
  await this.sendTelegramMessage(chatId, text, this.inboundRoute.getStore()?.threadId);
280
303
  }
281
- async sendResponseMessage(chatId, text, sessionId) {
304
+ async sendThreadMessage(chatId, threadId, text, sourceLabel) {
305
+ await this.sendTelegramMessage(chatId, text, threadId, sourceLabel);
306
+ }
307
+ async sendResponseMessage(chatId, text, sessionId, sourceLabel) {
282
308
  const inboundRoute = this.inboundRoute.getStore();
283
309
  const target = this.router.getTarget(sessionId);
284
310
  const threadId = inboundRoute !== undefined
@@ -286,24 +312,42 @@ export class TelegramChannel extends ChannelBase {
286
312
  : target?.channelName === this.name && target.chatId === chatId
287
313
  ? target.threadId
288
314
  : undefined;
289
- await this.sendTelegramMessage(chatId, text, threadId);
315
+ await this.sendTelegramMessage(chatId, text, threadId, sourceLabel ?? this.getResponseSourceLabel(sessionId));
290
316
  }
291
- async pushProactive(target, text) {
292
- await this.sendTelegramMessage(target.chatId, text, target.threadId);
317
+ async pushProactive(target, text, sourceLabel) {
318
+ await this.sendTelegramMessage(target.chatId, text, target.threadId, sourceLabel);
293
319
  }
294
- async sendTelegramMessage(chatId, text, threadId) {
320
+ async sendTelegramMessage(chatId, text, threadId, sourceLabel) {
295
321
  const html = telegramFormat(text);
296
- const chunks = splitHtmlForTelegram(html);
297
- const options = threadId === undefined
298
- ? { parse_mode: 'HTML' }
299
- : { parse_mode: 'HTML', message_thread_id: Number(threadId) };
322
+ const prefix = sourceLabel && text.trim().length > 0
323
+ ? `${escapeTelegramHtml(sourceLabel)} `
324
+ : undefined;
325
+ const chunks = splitAttributedTelegramHtml(html, prefix, sourceLabel);
300
326
  for (const chunk of chunks) {
327
+ const options = chunk.isHtml
328
+ ? threadId === undefined
329
+ ? { parse_mode: 'HTML' }
330
+ : {
331
+ parse_mode: 'HTML',
332
+ message_thread_id: Number(threadId),
333
+ }
334
+ : threadId === undefined
335
+ ? undefined
336
+ : { message_thread_id: Number(threadId) };
337
+ if (!chunk.isHtml) {
338
+ await this.bot.api.sendMessage(chatId, chunk.text, options);
339
+ continue;
340
+ }
301
341
  try {
302
- await this.bot.api.sendMessage(chatId, chunk, options);
342
+ await this.bot.api.sendMessage(chatId, chunk.text, options);
303
343
  }
304
344
  catch {
305
345
  // Fallback to plain text for the failed chunk only
306
- await this.bot.api.sendMessage(chatId, chunk.replace(/<[^>]*>/g, ''), threadId === undefined
346
+ const withoutTags = chunk.text.replace(/<[^>]*>/g, '');
347
+ const plainText = prefix && sourceLabel && withoutTags.startsWith(prefix)
348
+ ? `${sourceLabel} ${withoutTags.slice(prefix.length)}`
349
+ : withoutTags;
350
+ await this.bot.api.sendMessage(chatId, plainText, threadId === undefined
307
351
  ? undefined
308
352
  : { message_thread_id: Number(threadId) });
309
353
  }
@@ -317,7 +361,15 @@ export class TelegramChannel extends ChannelBase {
317
361
  this.activeTypingSessions.clear();
318
362
  this.bot.stop();
319
363
  }
320
- buildEnvelope(msg, text, entities) {
364
+ buildEnvelope(msg, text, entities, allowRegisteredCommandBypass = false,
365
+ /**
366
+ * True when `text` is an adapter-synthesized placeholder rather than
367
+ * something the user typed. Media with no caption can never carry the
368
+ * configured prefix -- voice messages cannot carry one at all -- so
369
+ * gating it would drop the message with no action the user could
370
+ * take. Same contract DingTalk and WeCom already implement.
371
+ */
372
+ syntheticText = false) {
321
373
  const isGroup = msg.chat.type === 'group' || msg.chat.type === 'supergroup';
322
374
  const isMentioned = entities?.some((e) => {
323
375
  if (!this.botUsername)
@@ -342,6 +394,31 @@ export class TelegramChannel extends ChannelBase {
342
394
  }
343
395
  // Extract referenced message text (when user replies to a message)
344
396
  const referencedText = msg.reply_to_message?.text || undefined;
397
+ // A configured prefix wins over the command-menu bypass: nothing rejects
398
+ // `/new` as a prefix, and without this every prefixed message would run
399
+ // the colliding command instead of being stripped and dispatched. Bare
400
+ // menu commands that do not start with the prefix keep the bypass.
401
+ const configuredPrefix = this.configuredMessagePrefix();
402
+ const bypassMessagePrefix = allowRegisteredCommandBypass &&
403
+ !(configuredPrefix &&
404
+ startsWithMessagePrefix(text.trim(), configuredPrefix)) &&
405
+ (entities?.some((entity) => {
406
+ if (entity.type !== 'bot_command' || entity.offset !== 0)
407
+ return false;
408
+ const value = text.slice(0, entity.length).toLowerCase();
409
+ const command = value.slice(1).split('@', 1)[0];
410
+ // `/cancel@OtherBot` is addressed to a different bot. `parseCommand`
411
+ // strips the suffix, so without this check the bypass would let a
412
+ // command meant for someone else past the prefix gate and run it
413
+ // here -- cancelling our own request, for instance.
414
+ const atIndex = value.indexOf('@', 1);
415
+ if (atIndex !== -1 &&
416
+ value.slice(atIndex + 1) !== this.botUsername.toLowerCase()) {
417
+ return false;
418
+ }
419
+ return TELEGRAM_BOT_COMMANDS.some((registered) => registered.command === command);
420
+ }) ??
421
+ false);
345
422
  return {
346
423
  channelName: this.name,
347
424
  senderId: String(msg.from.id),
@@ -353,6 +430,8 @@ export class TelegramChannel extends ChannelBase {
353
430
  ? String(msg.message_thread_id)
354
431
  : undefined,
355
432
  text: cleanText,
433
+ ...(syntheticText ? { syntheticText: true } : {}),
434
+ ...(bypassMessagePrefix ? { bypassMessagePrefix: true } : {}),
356
435
  isGroup,
357
436
  isMentioned,
358
437
  isReplyToBot,
@@ -360,4 +439,107 @@ export class TelegramChannel extends ChannelBase {
360
439
  };
361
440
  }
362
441
  }
442
+ function splitAttributedTelegramHtml(html, prefix, sourceLabel) {
443
+ const chunks = splitHtmlForTelegram(html);
444
+ const contentLimit = TELEGRAM_MESSAGE_LIMIT - (prefix?.length ?? 0);
445
+ if (contentLimit <= 0) {
446
+ throw new Error('Telegram source label exceeds the message limit.');
447
+ }
448
+ const attributed = [];
449
+ for (const chunk of chunks) {
450
+ const split = splitTelegramHtmlAtLimit(chunk, contentLimit);
451
+ if (split) {
452
+ attributed.push(...split.map((part) => ({
453
+ text: `${prefix ?? ''}${part}`,
454
+ isHtml: true,
455
+ })));
456
+ continue;
457
+ }
458
+ attributed.push(...splitAttributedTelegramText(chunk.replace(/<[^>]*>/g, ''), sourceLabel).map((text) => ({ text, isHtml: false })));
459
+ }
460
+ return attributed;
461
+ }
462
+ function splitTelegramHtmlAtLimit(html, limit) {
463
+ const tokens = html.match(/<[^>]+>|&(?:#\d+|#x[\da-f]+|[a-z][\da-z]+);|[\s\S]/giu);
464
+ if (!tokens)
465
+ return [];
466
+ const chunks = [];
467
+ const openTags = [];
468
+ let current = '';
469
+ let hasContent = false;
470
+ const closingTags = () => [...openTags]
471
+ .reverse()
472
+ .map(({ name }) => `</${name}>`)
473
+ .join('');
474
+ const reopenedTags = () => openTags.map(({ html }) => html).join('');
475
+ const flush = () => {
476
+ if (!hasContent)
477
+ return false;
478
+ chunks.push(`${current}${closingTags()}`);
479
+ current = reopenedTags();
480
+ hasContent = false;
481
+ return true;
482
+ };
483
+ for (const token of tokens) {
484
+ const closingMatch = token.match(/^<\/([a-z\d]+)/iu);
485
+ if (closingMatch) {
486
+ current += token;
487
+ const index = openTags.findLastIndex(({ name }) => name === closingMatch[1]?.toLowerCase());
488
+ if (index !== -1)
489
+ openTags.splice(index, 1);
490
+ continue;
491
+ }
492
+ const openingMatch = token.match(/^<([a-z\d]+)/iu);
493
+ const isSelfClosing = /^<br\b|\/>$/iu.test(token);
494
+ if (openingMatch && !isSelfClosing) {
495
+ const tag = { name: openingMatch[1].toLowerCase(), html: token };
496
+ const required = `${current}${token}</${tag.name}>${closingTags()}`;
497
+ if (required.length > limit && !flush())
498
+ return undefined;
499
+ if (`${current}${token}</${tag.name}>${closingTags()}`.length > limit) {
500
+ return undefined;
501
+ }
502
+ current += token;
503
+ openTags.push(tag);
504
+ continue;
505
+ }
506
+ if (`${current}${token}${closingTags()}`.length > limit && !flush()) {
507
+ return undefined;
508
+ }
509
+ if (`${current}${token}${closingTags()}`.length > limit)
510
+ return undefined;
511
+ current += token;
512
+ hasContent = true;
513
+ }
514
+ if (hasContent)
515
+ chunks.push(`${current}${closingTags()}`);
516
+ return chunks;
517
+ }
518
+ function splitAttributedTelegramText(text, sourceLabel) {
519
+ if (text.length === 0)
520
+ return [];
521
+ const prefix = sourceLabel ? `${sourceLabel} ` : '';
522
+ const contentLimit = TELEGRAM_MESSAGE_LIMIT - prefix.length;
523
+ if (contentLimit <= 0) {
524
+ throw new Error('Telegram source label exceeds the message limit.');
525
+ }
526
+ const chunks = [];
527
+ for (let offset = 0; offset < text.length;) {
528
+ let end = Math.min(offset + contentLimit, text.length);
529
+ if (end < text.length &&
530
+ /[\uD800-\uDBFF]/u.test(text[end - 1] ?? '') &&
531
+ /[\uDC00-\uDFFF]/u.test(text[end] ?? '')) {
532
+ end--;
533
+ }
534
+ chunks.push(`${prefix}${text.slice(offset, end)}`);
535
+ offset = end;
536
+ }
537
+ return chunks;
538
+ }
539
+ function escapeTelegramHtml(value) {
540
+ return value
541
+ .replaceAll('&', '&amp;')
542
+ .replaceAll('<', '&lt;')
543
+ .replaceAll('>', '&gt;');
544
+ }
363
545
  //# sourceMappingURL=TelegramAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TelegramAdapter.js","sourceRoot":"","sources":["../src/TelegramAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TelegramAdapter.js","sourceRoot":"","sources":["../src/TelegramAdapter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qwen-code/channel-telegram",
3
- "version": "0.22.3",
3
+ "version": "0.23.0-nightly.20260905.0c945a6136",
4
4
  "description": "Telegram channel adapter for Qwen Code",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,7 +25,7 @@
25
25
  "test:ci": "vitest run"
26
26
  },
27
27
  "dependencies": {
28
- "@qwen-code/channel-base": "0.22.3",
28
+ "@qwen-code/channel-base": "0.23.0-nightly.20260905.0c945a6136",
29
29
  "grammy": "^1.41.1",
30
30
  "https-proxy-agent": "^7.0.6",
31
31
  "telegram-markdown-formatter": "^0.1.2"