@qwen-code/channel-base 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.
@@ -100,6 +100,9 @@ export declare abstract class ChannelBase {
100
100
  private readonly observedContacts?;
101
101
  private readonly namedSessions?;
102
102
  private readonly observedContactEnvelopes;
103
+ private readonly messagePrefix?;
104
+ private readonly messagePrefixCheckedEnvelopes;
105
+ private readonly messagePrefixRejectedEnvelopes;
103
106
  private instructedSessions;
104
107
  private unattendedMemorySessions;
105
108
  private channelMemoryReads;
@@ -304,6 +307,8 @@ export declare abstract class ChannelBase {
304
307
  private pendingPermissionForEnvelope;
305
308
  private canEnvelopeAnswerPendingPermission;
306
309
  private formatPermissionRequest;
310
+ protected prefixedCommand(command: string): string;
311
+ protected configuredMessagePrefix(): string | undefined;
307
312
  private permissionTitle;
308
313
  private permissionToolName;
309
314
  private permissionParameterSummary;
@@ -485,6 +490,7 @@ export declare abstract class ChannelBase {
485
490
  private prependGroupHistoryContext;
486
491
  protected preflightInbound(envelope: Envelope, options?: PreflightInboundOptions): boolean | Promise<boolean>;
487
492
  protected logPreflightRejected(reason: string): void;
493
+ protected wasMessagePrefixRejected(envelope: Envelope): boolean;
488
494
  protected logDebugPayload(platform: string, payload: unknown): void;
489
495
  handleInbound(envelope: Envelope): Promise<void>;
490
496
  protected prepareThenHandleInbound(envelope: Envelope, prepare: () => Promise<boolean | void>, preflightOptions?: PreflightInboundOptions): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelBase.d.ts","sourceRoot":"","sources":["../src/ChannelBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChannelBase.d.ts","sourceRoot":"","sources":["../src/ChannelBase.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import { NamedSessionManager, NamedSessionTaskError, } from './named-session-man
11
11
  import { getGlobalQwenDir } from './paths.js';
12
12
  import { sanitizeSenderName, sanitizeQuotedText, sanitizePromptText, sanitizePromptPath, sanitizeLogText, sanitizeDisplayText, truncateCodePoints, PROMPT_UNSAFE_INVISIBLES, } from './sanitize.js';
13
13
  import { ChannelLoopSkippedError } from './ChannelLoopScheduler.js';
14
+ import { applyMessagePrefix } from './message-prefix.js';
14
15
  import { buildChannelWebhookDisplayText, buildChannelWebhookPrompt, resolveChannelWebhookTarget, } from './ChannelWebhookTask.js';
15
16
  import { parseChannelMemoryIntent, } from './channel-memory-intent.js';
16
17
  import { CHANNEL_MEMORY_RECALL_MAX_ENTRIES, createChannelMemoryRecallIndex, selectRelevantChannelMemory, selectRelevantChannelMemoryFromIndex, } from './channel-memory-recall.js';
@@ -169,6 +170,9 @@ export class ChannelBase {
169
170
  observedContacts;
170
171
  namedSessions;
171
172
  observedContactEnvelopes = new WeakSet();
173
+ messagePrefix;
174
+ messagePrefixCheckedEnvelopes = new WeakSet();
175
+ messagePrefixRejectedEnvelopes = new WeakSet();
172
176
  instructedSessions = new Set();
173
177
  unattendedMemorySessions = new Set();
174
178
  channelMemoryReads = new Map();
@@ -314,7 +318,7 @@ export class ChannelBase {
314
318
  async handleBtw(envelope, sessionId, question, sourceLabel) {
315
319
  const target = this.router.getTarget(sessionId);
316
320
  if (!target || target.channelName !== this.name) {
317
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Could not resolve the current task for /btw.`, sourceLabel);
321
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Could not resolve the current task for ${this.prefixedCommand('/btw')}.`, sourceLabel);
318
322
  return;
319
323
  }
320
324
  const running = this.activeBtw.get(sessionId);
@@ -845,8 +849,13 @@ export class ChannelBase {
845
849
  this.removePendingPermission(event.requestId, this.userInputSettlementReason(pending, event.outcome));
846
850
  }
847
851
  constructor(name, config, bridge, options) {
852
+ if (config.messagePrefix !== undefined &&
853
+ typeof config.messagePrefix !== 'string') {
854
+ throw new Error(`Channel "${name}" field "messagePrefix" must be a string.`);
855
+ }
848
856
  this.name = name;
849
857
  this.config = config;
858
+ this.messagePrefix = config.messagePrefix?.trim() || undefined;
850
859
  this.bridge = bridge;
851
860
  this.locale = options?.locale ?? 'en';
852
861
  this.proxy = options?.proxy;
@@ -2227,13 +2236,13 @@ export class ChannelBase {
2227
2236
  ? { approve: ' ', always: ' ', deny: ' ' }
2228
2237
  : { approve: ' ', always: ' ', deny: ' ' };
2229
2238
  const replies = [
2230
- `/approve${requestSuffix}${replyPadding.approve}${approveLabel}`,
2239
+ `${this.prefixedCommand(`/approve${requestSuffix}`)}${replyPadding.approve}${approveLabel}`,
2231
2240
  ...(alwaysOption
2232
2241
  ? [
2233
- `/approve-always${requestSuffix}${replyPadding.always}${alwaysOption.label}`,
2242
+ `${this.prefixedCommand(`/approve-always${requestSuffix}`)}${replyPadding.always}${alwaysOption.label}`,
2234
2243
  ]
2235
2244
  : []),
2236
- `/deny${requestSuffix}${replyPadding.deny}${denyLabel}`,
2245
+ `${this.prefixedCommand(`/deny${requestSuffix}`)}${replyPadding.deny}${denyLabel}`,
2237
2246
  ];
2238
2247
  return [
2239
2248
  copy.required,
@@ -2247,6 +2256,12 @@ export class ChannelBase {
2247
2256
  ...replies,
2248
2257
  ].join('\n');
2249
2258
  }
2259
+ prefixedCommand(command) {
2260
+ return this.messagePrefix ? `${this.messagePrefix} ${command}` : command;
2261
+ }
2262
+ configuredMessagePrefix() {
2263
+ return this.messagePrefix;
2264
+ }
2250
2265
  permissionTitle(toolCall) {
2251
2266
  const rawTitle = typeof toolCall.title === 'string' ? toolCall.title : undefined;
2252
2267
  return (sanitizeQuotedText(rawTitle || '', 160).trim() ||
@@ -2397,7 +2412,7 @@ export class ChannelBase {
2397
2412
  return `- ${task}${sanitizeQuotedText(id, 128)}${title}`;
2398
2413
  })
2399
2414
  .join('\n');
2400
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Multiple permission requests are pending for this chat. Reply with /${decision} <request-id>.\n${requestList}`);
2415
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Multiple permission requests are pending for this chat. Reply with ${this.prefixedCommand(`/${decision} <request-id>`)}.\n${requestList}`);
2401
2416
  return true;
2402
2417
  }
2403
2418
  if (lookup.kind === 'none') {
@@ -2416,7 +2431,7 @@ export class ChannelBase {
2416
2431
  return true;
2417
2432
  }
2418
2433
  if (pending.userInputPresented && decision !== 'deny') {
2419
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Submit this question through its interactive card, or use /deny [request-id] to cancel it.`, pending.sourceLabel);
2434
+ 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);
2420
2435
  return true;
2421
2436
  }
2422
2437
  const response = (() => {
@@ -2618,7 +2633,7 @@ export class ChannelBase {
2618
2633
  }
2619
2634
  const remedy = safeTaskName === undefined
2620
2635
  ? 'select this task first or close it'
2621
- : `select this task first or close it with /session close ${safeTaskName}`;
2636
+ : `select this task first or close it with ${this.prefixedCommand(`/session close ${safeTaskName}`)}`;
2622
2637
  return `${subject} ${problem}. Its files were not changed. Clearing now would reset the selected task instead, so ${remedy}.`;
2623
2638
  }
2624
2639
  async selectedTaskName(envelope) {
@@ -2649,7 +2664,7 @@ export class ChannelBase {
2649
2664
  return false;
2650
2665
  const normalized = args.trim().toLowerCase();
2651
2666
  if (normalized !== '' && normalized !== 'all') {
2652
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: /sessions [all]`);
2667
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand('/sessions [all]')}`);
2653
2668
  return true;
2654
2669
  }
2655
2670
  try {
@@ -2683,7 +2698,7 @@ export class ChannelBase {
2683
2698
  const current = await namedSessions.current(owner);
2684
2699
  await this.sendThreadMessage(envelope.chatId, envelope.threadId, current
2685
2700
  ? `Current task: ${current.name} (${current.isolation})`
2686
- : `No task is currently selected. Use /session new <name> or /session use <name>.`);
2701
+ : `No task is currently selected. Use ${this.prefixedCommand('/session new <name>')} or ${this.prefixedCommand('/session use <name>')}.`);
2687
2702
  return true;
2688
2703
  }
2689
2704
  case 'new': {
@@ -2755,7 +2770,7 @@ export class ChannelBase {
2755
2770
  await this.sendNamedSessionError(envelope, error);
2756
2771
  return true;
2757
2772
  }
2758
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: /session current | /session new <name> [--worktree] | /session use <name> | /session close <name> | /session cancel [<name>]`);
2773
+ 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>]')}`);
2759
2774
  return true;
2760
2775
  }
2761
2776
  /** Register shared slash commands. Called from constructor. */
@@ -2908,7 +2923,7 @@ export class ChannelBase {
2908
2923
  return true;
2909
2924
  }
2910
2925
  if (this.isSharedSession(envelope) && args.toLowerCase() !== 'confirm') {
2911
- 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.`);
2926
+ 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.`);
2912
2927
  return true;
2913
2928
  }
2914
2929
  await doClear(envelope);
@@ -2968,24 +2983,24 @@ export class ChannelBase {
2968
2983
  this.registerCommand('help', async (envelope) => {
2969
2984
  const lines = [
2970
2985
  'Commands:',
2971
- `/help — Show this help`,
2986
+ `${this.prefixedCommand('/help')} — Show this help`,
2972
2987
  this.isSharedSession(envelope)
2973
- ? `/clear confirm — Clear the shared session (aliases: /reset, /new)`
2974
- : `/clear — Clear your session (aliases: /reset, /new)`,
2975
- `/who — Show current session & workspace`,
2976
- `/status — Show session info`,
2977
- `/approve [request-id] — Approve a pending permission request`,
2978
- `/approve-always [request-id] — Always approve a pending permission request`,
2979
- `/deny [request-id] — Deny a pending permission request`,
2988
+ ? `${this.prefixedCommand('/clear confirm')} — Clear the shared session (aliases: ${this.prefixedCommand('/reset')}, ${this.prefixedCommand('/new')})`
2989
+ : `${this.prefixedCommand('/clear')} — Clear your session (aliases: ${this.prefixedCommand('/reset')}, ${this.prefixedCommand('/new')})`,
2990
+ `${this.prefixedCommand('/who')} — Show current session & workspace`,
2991
+ `${this.prefixedCommand('/status')} — Show session info`,
2992
+ `${this.prefixedCommand('/approve [request-id]')} — Approve a pending permission request`,
2993
+ `${this.prefixedCommand('/approve-always [request-id]')} — Always approve a pending permission request`,
2994
+ `${this.prefixedCommand('/deny [request-id]')} — Deny a pending permission request`,
2980
2995
  ...(this.bridge.btw
2981
2996
  ? [
2982
- `/btw <question> — Ask a side question without interrupting the current task`,
2997
+ `${this.prefixedCommand('/btw <question>')} — Ask a side question without interrupting the current task`,
2983
2998
  ]
2984
2999
  : []),
2985
3000
  ...(this.namedSessions
2986
3001
  ? [
2987
- `/sessions [all] — List your named tasks`,
2988
- `/session current|new|use|close|cancel — Manage your named tasks`,
3002
+ `${this.prefixedCommand('/sessions [all]')} — List your named tasks`,
3003
+ `${this.prefixedCommand('/session current|new|use|close|cancel')} — Manage your named tasks`,
2989
3004
  ]
2990
3005
  : []),
2991
3006
  ];
@@ -3010,7 +3025,7 @@ export class ChannelBase {
3010
3025
  const platformCmds = [...this.commands.keys()].filter((c) => !sharedCmds.has(c));
3011
3026
  if (platformCmds.length > 0) {
3012
3027
  for (const cmd of platformCmds) {
3013
- lines.push(`/${cmd}`);
3028
+ lines.push(this.prefixedCommand(`/${cmd}`));
3014
3029
  }
3015
3030
  }
3016
3031
  const sessionId = await this.currentSessionId(envelope);
@@ -3024,10 +3039,12 @@ export class ChannelBase {
3024
3039
  if (agentCommands.length > 0) {
3025
3040
  lines.push('', 'Agent commands (forwarded to Qwen Code):');
3026
3041
  for (const cmd of agentCommands) {
3027
- lines.push(`/${cmd.name} — ${cmd.description}`);
3042
+ lines.push(`${this.prefixedCommand(`/${cmd.name}`)} — ${cmd.description}`);
3028
3043
  }
3029
3044
  }
3030
- lines.push('', 'Send any text to chat with the agent.');
3045
+ lines.push('', this.messagePrefix
3046
+ ? `Start each message with ${this.messagePrefix} to chat with the agent.`
3047
+ : 'Send any text to chat with the agent.');
3031
3048
  await this.sendThreadMessage(envelope.chatId, envelope.threadId, lines.join('\n'));
3032
3049
  return true;
3033
3050
  });
@@ -3078,7 +3095,7 @@ export class ChannelBase {
3078
3095
  case 'cancel':
3079
3096
  return this.handleLoopCancel(envelope, rest[0]);
3080
3097
  default:
3081
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: /loop add "<cron>" <prompt> | /loop list | /loop inspect <id> | /loop cancel <id>`);
3098
+ 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>')}`);
3082
3099
  return true;
3083
3100
  }
3084
3101
  }
@@ -3095,7 +3112,7 @@ export class ChannelBase {
3095
3112
  }
3096
3113
  const parsed = parseLoopAddArgs(args);
3097
3114
  if (!parsed) {
3098
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: /loop add "<cron>" <prompt>`);
3115
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand('/loop add "<cron>" <prompt>')}`);
3099
3116
  return true;
3100
3117
  }
3101
3118
  try {
@@ -3257,7 +3274,7 @@ export class ChannelBase {
3257
3274
  if (!this.loopController)
3258
3275
  return true;
3259
3276
  if (!id) {
3260
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: /loop inspect <id>`);
3277
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand('/loop inspect <id>')}`);
3261
3278
  return true;
3262
3279
  }
3263
3280
  const jobs = await this.loopController.listForTarget(this.name, this.loopTargetFromEnvelope(envelope));
@@ -3318,7 +3335,7 @@ export class ChannelBase {
3318
3335
  if (!this.loopController)
3319
3336
  return true;
3320
3337
  if (!id) {
3321
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: /loop cancel <id>`);
3338
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand('/loop cancel <id>')}`);
3322
3339
  return true;
3323
3340
  }
3324
3341
  const jobs = await this.loopController.listForTarget(this.name, this.loopTargetFromEnvelope(envelope));
@@ -4241,6 +4258,21 @@ export class ChannelBase {
4241
4258
  return `${GROUP_HISTORY_CONTEXT_MARKER}\n${formatted.join('\n')}\n\n${CURRENT_MESSAGE_MARKER}\n${promptText}`;
4242
4259
  }
4243
4260
  preflightInbound(envelope, options = {}) {
4261
+ // Ahead of both pairing gates on purpose: a pairing request is a reply,
4262
+ // and replying to every unprefixed message would be exactly the traffic
4263
+ // the prefix exists to suppress. First contact carries the prefix too.
4264
+ if (this.messagePrefixRejectedEnvelopes.has(envelope))
4265
+ return false;
4266
+ if (!this.messagePrefixCheckedEnvelopes.has(envelope)) {
4267
+ this.messagePrefixCheckedEnvelopes.add(envelope);
4268
+ if (!applyMessagePrefix(envelope, this.messagePrefix)) {
4269
+ this.messagePrefixRejectedEnvelopes.add(envelope);
4270
+ if (!(envelope.isGroup && !envelope.isMentioned && !envelope.isReplyToBot)) {
4271
+ this.logPreflightRejected('message_prefix_mismatch');
4272
+ }
4273
+ return false;
4274
+ }
4275
+ }
4244
4276
  const groupResult = this.groupGate.check(envelope, {
4245
4277
  createPairingRequest: !options.deferPairingRequests,
4246
4278
  });
@@ -4304,6 +4336,9 @@ export class ChannelBase {
4304
4336
  logPreflightRejected(reason) {
4305
4337
  process.stderr.write(`[Channel:${this.name}] preflight rejected reason=${sanitizeLogText(reason, 80)}\n`);
4306
4338
  }
4339
+ wasMessagePrefixRejected(envelope) {
4340
+ return this.messagePrefixRejectedEnvelopes.has(envelope);
4341
+ }
4307
4342
  logDebugPayload(platform, payload) {
4308
4343
  if (!isDebugPayloadEnabled(this.name))
4309
4344
  return;
@@ -4574,12 +4609,12 @@ export class ChannelBase {
4574
4609
  // same path it took before this interception existed.
4575
4610
  if (parsed.command === 'btw' && this.bridge.btw) {
4576
4611
  if (!this.isAuthorizedForSharedSession(envelope)) {
4577
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Only authorized members can use /btw in this shared session.`);
4612
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Only authorized members can use ${this.prefixedCommand('/btw')} in this shared session.`);
4578
4613
  return;
4579
4614
  }
4580
4615
  btwQuestion = parsed.args.trim();
4581
4616
  if (!btwQuestion) {
4582
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: /btw <question>`);
4617
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand('/btw <question>')}`);
4583
4618
  return;
4584
4619
  }
4585
4620
  if (btwQuestion.length > CHANNEL_BTW_MAX_INPUT_LENGTH) {
@@ -4587,7 +4622,7 @@ export class ChannelBase {
4587
4622
  return;
4588
4623
  }
4589
4624
  if (envelope.imageBase64 || envelope.attachments?.length) {
4590
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `/btw supports text-only questions.`);
4625
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `${this.prefixedCommand('/btw')} supports text-only questions.`);
4591
4626
  return;
4592
4627
  }
4593
4628
  }
@@ -4658,7 +4693,7 @@ export class ChannelBase {
4658
4693
  return;
4659
4694
  }
4660
4695
  if (!sessionId) {
4661
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `No task is currently selected. Use /session new <name> or /session use <name>.`);
4696
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `No task is currently selected. Use ${this.prefixedCommand('/session new <name>')} or ${this.prefixedCommand('/session use <name>')}.`);
4662
4697
  return;
4663
4698
  }
4664
4699
  }
@@ -4669,7 +4704,7 @@ export class ChannelBase {
4669
4704
  ? this.sourceLabelForTurn(sessionId, envelope)
4670
4705
  : undefined;
4671
4706
  if (this.namedSessions && !sourceLabel) {
4672
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Could not identify the selected task. Use /sessions, select it again, and retry.`);
4707
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Could not identify the selected task. Use ${this.prefixedCommand('/sessions')}, select it again, and retry.`);
4673
4708
  return;
4674
4709
  }
4675
4710
  if (btwQuestion !== undefined) {