@qwen-code/channel-base 0.19.9 → 0.19.10-nightly.20260716.506ce0a1a

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.
package/dist/AcpBridge.js CHANGED
@@ -135,15 +135,23 @@ export class AcpBridge extends EventEmitter {
135
135
  async prompt(sessionId, text, options) {
136
136
  const conn = this.ensureConnection();
137
137
  const chunks = [];
138
+ let slashCommandOutput = '';
138
139
  const onChunk = (sid, chunk) => {
139
140
  if (sid === sessionId)
140
141
  chunks.push(chunk);
141
142
  };
142
- const clearChunks = (sid) => {
143
+ const onSlashCommandOutput = (sid, chunk) => {
143
144
  if (sid === sessionId)
145
+ slashCommandOutput = chunk;
146
+ };
147
+ const clearChunks = (sid) => {
148
+ if (sid === sessionId) {
144
149
  chunks.length = 0;
150
+ slashCommandOutput = '';
151
+ }
145
152
  };
146
153
  this.on('textChunk', onChunk);
154
+ this.on('slashCommandOutput', onSlashCommandOutput);
147
155
  this.on('responseBoundary', clearChunks);
148
156
  const prompt = [];
149
157
  if (options?.imageBase64 && options.imageMimeType) {
@@ -162,9 +170,10 @@ export class AcpBridge extends EventEmitter {
162
170
  }
163
171
  finally {
164
172
  this.off('textChunk', onChunk);
173
+ this.off('slashCommandOutput', onSlashCommandOutput);
165
174
  this.off('responseBoundary', clearChunks);
166
175
  }
167
- return chunks.join('');
176
+ return chunks.join('') || slashCommandOutput;
168
177
  }
169
178
  async cancelSession(sessionId) {
170
179
  const conn = this.ensureConnection();
@@ -208,9 +217,15 @@ export class AcpBridge extends EventEmitter {
208
217
  const type = update['sessionUpdate'];
209
218
  switch (type) {
210
219
  case 'agent_message_chunk': {
220
+ const meta = update['_meta'];
221
+ if (typeof meta?.['parentToolCallId'] === 'string') {
222
+ break;
223
+ }
211
224
  const content = update['content'];
212
225
  if (content?.type === 'text' && content.text) {
213
- this.emit('textChunk', sessionId, content.text);
226
+ this.emit(meta?.['source'] === 'slash_command'
227
+ ? 'slashCommandOutput'
228
+ : 'textChunk', sessionId, content.text);
214
229
  }
215
230
  break;
216
231
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AcpBridge.js","sourceRoot":"","sources":["../src/AcpBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcpBridge.js","sourceRoot":"","sources":["../src/AcpBridge.ts"],"names":[],"mappings":"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"}
@@ -68,13 +68,15 @@ export interface ChannelAgentBridge {
68
68
  getAvailableCommands?(sessionId: string): AvailableCommand[];
69
69
  on<K extends keyof ChannelAgentBridgeEventMap>(eventName: K, listener: (...args: ChannelAgentBridgeEventMap[K]) => void): unknown;
70
70
  off<K extends keyof ChannelAgentBridgeEventMap>(eventName: K, listener: (...args: ChannelAgentBridgeEventMap[K]) => void): unknown;
71
- newSession(cwd: string, options?: ChannelAgentBridgeSessionOptions): Promise<string>;
72
- loadSession(sessionId: string, cwd: string, options?: ChannelAgentBridgeSessionOptions): Promise<string>;
71
+ newSession(cwd: string, options?: ChannelAgentBridgeSessionOptions, bindingToken?: object): Promise<string>;
72
+ loadSession(sessionId: string, cwd: string, options?: ChannelAgentBridgeSessionOptions, bindingToken?: object): Promise<string>;
73
73
  prompt(sessionId: string, text: string, options?: {
74
74
  imageBase64?: string;
75
75
  imageMimeType?: string;
76
76
  }): Promise<string>;
77
77
  cancelSession(sessionId: string): Promise<void>;
78
+ /** Release a bridge-owned session that will not be routed to a caller. */
79
+ discardSession?(sessionId: string, expectedBindingToken?: object): Promise<void>;
78
80
  respondToPermission?(requestId: string, response: RequestPermissionResponse): Promise<boolean>;
79
81
  shellCommand?(sessionId: string, command: string, signal?: AbortSignal): Promise<{
80
82
  exitCode: number | null;
@@ -111,6 +111,7 @@ export declare abstract class ChannelBase {
111
111
  private lifecycleBase;
112
112
  supportsProactiveSend(): boolean;
113
113
  protected supportsProactiveTarget(target: SessionTarget): boolean;
114
+ protected supportsProactiveWebhookTarget(target: SessionTarget): boolean;
114
115
  protected pushProactive(target: SessionTarget, text: string): Promise<void>;
115
116
  private prependUnattendedSessionContext;
116
117
  private drainCollectBufferForCurrentPrompt;
@@ -158,12 +159,13 @@ export declare abstract class ChannelBase {
158
159
  * Override to clear adapter-owned streaming buffers.
159
160
  */
160
161
  protected onResponseBoundary(_chatId: string, _sessionId: string): void;
162
+ protected sendResponseMessage(chatId: string, text: string, _sessionId: string): Promise<void>;
161
163
  /**
162
164
  * Called when the agent's full response is ready.
163
165
  * Override to customize delivery (e.g., finalize an AI card).
164
- * Default: calls sendMessage() with the full response text.
166
+ * Default: sends the full response text.
165
167
  */
166
- protected onResponseComplete(chatId: string, fullText: string, _sessionId: string): Promise<void>;
168
+ protected onResponseComplete(chatId: string, fullText: string, sessionId: string): Promise<void>;
167
169
  /**
168
170
  * Register a slash command handler. Subclasses can call this to add
169
171
  * platform-specific commands (e.g., /start for Telegram).
@@ -211,6 +213,9 @@ export declare abstract class ChannelBase {
211
213
  private invalidateSessionContext;
212
214
  private dropQueuedTurnIfStale;
213
215
  private getChannelMemory;
216
+ private entriesForChannelMemoryIds;
217
+ private renderChannelMemoryCandidate;
218
+ private renderChannelMemoryCandidates;
214
219
  private handleChannelMemoryIntent;
215
220
  private shouldClassifyChannelMemoryIntent;
216
221
  private clearPendingKey;
@@ -26,8 +26,10 @@ const GROUP_HISTORY_ENTRY_TEXT_LIMIT = 1000;
26
26
  const GROUP_HISTORY_ENTRY_METADATA_LIMIT = 256;
27
27
  const LOOP_CANCEL_GRACE_MS = 5000;
28
28
  const CHANNEL_MEMORY_PROMPT_CODE_POINT_LIMIT = 12_000;
29
+ const CHANNEL_MEMORY_PAGE_SIZE = 20;
30
+ const CHANNEL_MEMORY_PREVIEW_CODE_POINT_LIMIT = 160;
29
31
  const CHANNEL_MEMORY_CLASSIFIER_MIN_CONFIDENCE = 0.7;
30
- const CHANNEL_MEMORY_CLASSIFIER_TRIGGER_RE = /(记住|记得|记一下|记忆|忘掉|忘记|清空|清除|删除|保存|remember|memory|forget)/iu;
32
+ const CHANNEL_MEMORY_CLASSIFIER_TRIGGER_RE = /(?:记住|记得|记一下|记忆|忘掉|忘记|清空|清除|删除|删掉|改成|更新|刚才那条|保存|(?:只|仅)(?:看|列出)[\p{Script=Han}\s]{0,12}(?:偏好|习惯)|\b(?:remember|memory|forget|delete|remove|update|change)\b)/iu;
31
33
  /** Sentinel message for the loop-prompt timeout rejection; matched by identity below. */
32
34
  const LOOP_TIMED_OUT_MESSAGE = 'loop timed out';
33
35
  const DEBUG_PAYLOAD_ENV = 'QWEN_CHANNEL_DEBUG_PAYLOAD';
@@ -370,6 +372,9 @@ export class ChannelBase {
370
372
  supportsProactiveTarget(target) {
371
373
  return target.threadId === undefined;
372
374
  }
375
+ supportsProactiveWebhookTarget(target) {
376
+ return this.supportsProactiveTarget(target);
377
+ }
373
378
  async pushProactive(target, text) {
374
379
  if (target.threadId) {
375
380
  throw new Error('Channel does not support proactive loop messages for threaded targets.');
@@ -675,7 +680,7 @@ export class ChannelBase {
675
680
  throw new Error(`Unknown webhook source "${task.source}".`);
676
681
  }
677
682
  const target = resolveChannelWebhookTarget(this.name, this.config.webhooks, task.source, task.targetRef);
678
- if (!this.supportsProactiveTarget(target)) {
683
+ if (!this.supportsProactiveWebhookTarget(target)) {
679
684
  throw new Error('Channel does not support proactive webhook messages for this chat target.');
680
685
  }
681
686
  return target;
@@ -986,7 +991,7 @@ export class ChannelBase {
986
991
  }
987
992
  onToolCall(_chatId, _event) { }
988
993
  onSessionDied(sessionId) {
989
- this.router.removeSessionId(sessionId);
994
+ this.router.handleSessionDied(sessionId);
990
995
  this.instructedSessions.delete(sessionId);
991
996
  this.removePendingPermissionsForSession(sessionId);
992
997
  }
@@ -1027,13 +1032,16 @@ export class ChannelBase {
1027
1032
  * Override to clear adapter-owned streaming buffers.
1028
1033
  */
1029
1034
  onResponseBoundary(_chatId, _sessionId) { }
1035
+ async sendResponseMessage(chatId, text, _sessionId) {
1036
+ await this.sendMessage(chatId, text);
1037
+ }
1030
1038
  /**
1031
1039
  * Called when the agent's full response is ready.
1032
1040
  * Override to customize delivery (e.g., finalize an AI card).
1033
- * Default: calls sendMessage() with the full response text.
1041
+ * Default: sends the full response text.
1034
1042
  */
1035
- async onResponseComplete(chatId, fullText, _sessionId) {
1036
- await this.sendMessage(chatId, fullText);
1043
+ async onResponseComplete(chatId, fullText, sessionId) {
1044
+ await this.sendResponseMessage(chatId, fullText, sessionId);
1037
1045
  }
1038
1046
  /**
1039
1047
  * Register a slash command handler. Subclasses can call this to add
@@ -1404,30 +1412,6 @@ export class ChannelBase {
1404
1412
  this.registerCommand('approve', (envelope, args) => this.handlePermissionResponseCommand(envelope, args, 'approve'));
1405
1413
  this.registerCommand('approve-always', (envelope, args) => this.handlePermissionResponseCommand(envelope, args, 'approve-always'));
1406
1414
  this.registerCommand('deny', (envelope, args) => this.handlePermissionResponseCommand(envelope, args, 'deny'));
1407
- this.registerCommand('remember-channel', async (envelope, args) => {
1408
- const text = args.trim();
1409
- if (text === '') {
1410
- await this.sendMessage(envelope.chatId, 'Usage: /remember-channel <text>');
1411
- return true;
1412
- }
1413
- await this.handleChannelMemoryIntent(envelope, {
1414
- kind: 'remember',
1415
- text,
1416
- });
1417
- return true;
1418
- });
1419
- this.registerCommand('channel-memory', async (envelope) => {
1420
- await this.handleChannelMemoryIntent(envelope, { kind: 'list' });
1421
- return true;
1422
- });
1423
- this.registerCommand('forget-channel', async (envelope, args) => {
1424
- if (args.toLowerCase() !== 'confirm') {
1425
- await this.sendMessage(envelope.chatId, 'This clears channel memory for this chat. Re-send with "confirm" (e.g. /forget-channel confirm) to proceed.');
1426
- return true;
1427
- }
1428
- await this.handleChannelMemoryIntent(envelope, { kind: 'clear_confirm' }, { skipPendingClear: true });
1429
- return true;
1430
- });
1431
1415
  // Read-only: report the current (possibly group-shared) session and workspace.
1432
1416
  // For a shared session, gate it to authorized senders like /clear — /who
1433
1417
  // leaks the workspace basename, so non-members shouldn't see it either.
@@ -1935,7 +1919,64 @@ export class ChannelBase {
1935
1919
  }
1936
1920
  return this.channelMemory;
1937
1921
  }
1938
- async handleChannelMemoryIntent(envelope, intent, options = {}) {
1922
+ entriesForChannelMemoryIds(entries, ids) {
1923
+ const selected = new Set(ids);
1924
+ return entries.filter((entry) => selected.has(entry.id));
1925
+ }
1926
+ renderChannelMemoryCandidate(entry) {
1927
+ const preview = truncateCodePoints(sanitizePromptText(entry.text)
1928
+ .replace(/[\r\n]+/gu, ' ')
1929
+ .trim(), CHANNEL_MEMORY_PREVIEW_CODE_POINT_LIMIT);
1930
+ return `${entry.id} ${preview}`;
1931
+ }
1932
+ renderChannelMemoryCandidates(entries) {
1933
+ return entries.map((entry) => this.renderChannelMemoryCandidate(entry));
1934
+ }
1935
+ async handleChannelMemoryIntent(envelope, intent) {
1936
+ if (intent.kind === 'no_match') {
1937
+ await this.sendMessage(envelope.chatId, 'No matching channel memory entry.');
1938
+ return;
1939
+ }
1940
+ if (intent.kind === 'ambiguous') {
1941
+ const channelMemory = await this.getChannelMemory(envelope);
1942
+ if (!channelMemory)
1943
+ return;
1944
+ let entries;
1945
+ try {
1946
+ entries = await channelMemory.listChannelMemoryEntries(this.channelMemoryTarget(envelope));
1947
+ }
1948
+ catch (error) {
1949
+ this.logChannelMemoryError('read', envelope, this.channelMemoryErrorMessage(error));
1950
+ await this.sendMessage(envelope.chatId, `Failed to read channel memory: ${this.channelMemoryUserErrorMessage()}`);
1951
+ return;
1952
+ }
1953
+ const selected = this.entriesForChannelMemoryIds(entries, intent.ids);
1954
+ await this.sendMessage(envelope.chatId, [
1955
+ 'Multiple channel memory entries match:',
1956
+ ...this.renderChannelMemoryCandidates(selected),
1957
+ ].join('\n'));
1958
+ return;
1959
+ }
1960
+ if (intent.kind === 'list_matches') {
1961
+ const channelMemory = await this.getChannelMemory(envelope);
1962
+ if (!channelMemory)
1963
+ return;
1964
+ let entries;
1965
+ try {
1966
+ entries = await channelMemory.listChannelMemoryEntries(this.channelMemoryTarget(envelope));
1967
+ }
1968
+ catch (error) {
1969
+ this.logChannelMemoryError('read', envelope, this.channelMemoryErrorMessage(error));
1970
+ await this.sendMessage(envelope.chatId, `Failed to read channel memory: ${this.channelMemoryUserErrorMessage()}`);
1971
+ return;
1972
+ }
1973
+ const selected = this.entriesForChannelMemoryIds(entries, intent.ids);
1974
+ await this.sendMessage(envelope.chatId, [
1975
+ 'Channel memory (page 1/1):',
1976
+ ...this.renderChannelMemoryCandidates(selected),
1977
+ ].join('\n'));
1978
+ return;
1979
+ }
1939
1980
  if (intent.kind === 'clear_request') {
1940
1981
  this.setPendingClear(this.clearPendingKey(envelope));
1941
1982
  await this.sendMessage(envelope.chatId, 'This clears channel memory for this chat. Say "确认清空记忆" or "confirm clear memory" to proceed.');
@@ -1946,8 +1987,9 @@ export class ChannelBase {
1946
1987
  return;
1947
1988
  }
1948
1989
  if (intent.kind === 'remember') {
1990
+ let result;
1949
1991
  try {
1950
- await channelMemory.appendChannelMemory(this.channelMemoryTarget(envelope), intent.text);
1992
+ result = await channelMemory.addChannelMemoryEntries(this.channelMemoryTarget(envelope), [intent.text], envelope.senderId);
1951
1993
  }
1952
1994
  catch (error) {
1953
1995
  const message = this.channelMemoryErrorMessage(error);
@@ -1955,14 +1997,27 @@ export class ChannelBase {
1955
1997
  await this.sendMessage(envelope.chatId, `Failed to save channel memory: ${this.channelMemoryUserErrorMessage()}`);
1956
1998
  return;
1957
1999
  }
1958
- this.invalidateSessionContext(envelope);
1959
- await this.sendMessage(envelope.chatId, 'Channel memory updated.');
2000
+ if (result.changed) {
2001
+ this.invalidateSessionContext(envelope);
2002
+ }
2003
+ if (result.added.length > 0) {
2004
+ const ids = result.added.map((entry) => entry.id);
2005
+ await this.sendMessage(envelope.chatId, ids.length === 1
2006
+ ? `Channel memory ${ids[0]} saved.`
2007
+ : `Channel memory saved: ${ids.join(', ')}.`);
2008
+ }
2009
+ else if (result.duplicateIds.length > 0) {
2010
+ await this.sendMessage(envelope.chatId, `Channel memory already contains ${result.duplicateIds.join(', ')}.`);
2011
+ }
2012
+ else {
2013
+ await this.sendMessage(envelope.chatId, 'Channel memory updated.');
2014
+ }
1960
2015
  return;
1961
2016
  }
1962
- if (intent.kind === 'list') {
1963
- let text;
2017
+ if (intent.kind === 'list' || intent.kind === 'inspect') {
2018
+ let entries;
1964
2019
  try {
1965
- text = (await channelMemory.readChannelMemory(this.channelMemoryTarget(envelope))).trim();
2020
+ entries = await channelMemory.listChannelMemoryEntries(this.channelMemoryTarget(envelope));
1966
2021
  }
1967
2022
  catch (error) {
1968
2023
  const message = this.channelMemoryErrorMessage(error);
@@ -1970,19 +2025,77 @@ export class ChannelBase {
1970
2025
  await this.sendMessage(envelope.chatId, `Failed to read channel memory: ${this.channelMemoryUserErrorMessage()}`);
1971
2026
  return;
1972
2027
  }
1973
- await this.sendMessage(envelope.chatId, text === '' ? 'No channel memory saved.' : sanitizePromptText(text));
2028
+ if (intent.kind === 'inspect') {
2029
+ const entry = entries.find((candidate) => candidate.id === intent.id);
2030
+ await this.sendMessage(envelope.chatId, entry
2031
+ ? `Channel memory ${entry.id}:\n${sanitizePromptText(entry.text).trim()}`
2032
+ : `No channel memory entry ${intent.id}.`);
2033
+ return;
2034
+ }
2035
+ const totalPages = Math.max(1, Math.ceil(entries.length / CHANNEL_MEMORY_PAGE_SIZE));
2036
+ if (intent.page > totalPages) {
2037
+ await this.sendMessage(envelope.chatId, `Channel memory page ${intent.page} does not exist.`);
2038
+ return;
2039
+ }
2040
+ if (entries.length === 0) {
2041
+ await this.sendMessage(envelope.chatId, 'No channel memory saved.');
2042
+ return;
2043
+ }
2044
+ const pageStart = (intent.page - 1) * CHANNEL_MEMORY_PAGE_SIZE;
2045
+ const lines = entries
2046
+ .slice(pageStart, pageStart + CHANNEL_MEMORY_PAGE_SIZE)
2047
+ .map((entry) => this.renderChannelMemoryCandidate(entry));
2048
+ await this.sendMessage(envelope.chatId, [`Channel memory (page ${intent.page}/${totalPages}):`, ...lines].join('\n'));
1974
2049
  return;
1975
2050
  }
1976
- if (intent.kind === 'clear_confirm') {
1977
- if (!options.skipPendingClear) {
1978
- const pendingKey = this.clearPendingKey(envelope);
1979
- const expiresAt = this.pendingClears.get(pendingKey);
1980
- this.pendingClears.delete(pendingKey);
1981
- if (expiresAt === undefined || expiresAt < Date.now()) {
1982
- await this.sendMessage(envelope.chatId, 'No pending clear request. Say "清空记忆" first.');
1983
- return;
2051
+ if (intent.kind === 'update' ||
2052
+ intent.kind === 'remove' ||
2053
+ intent.kind === 'natural_update' ||
2054
+ intent.kind === 'natural_remove') {
2055
+ let changed;
2056
+ const isUpdate = intent.kind === 'update' || intent.kind === 'natural_update';
2057
+ const id = intent.id;
2058
+ try {
2059
+ if (isUpdate) {
2060
+ ({ changed } = await channelMemory.updateChannelMemoryEntry(this.channelMemoryTarget(envelope), intent.kind === 'natural_update'
2061
+ ? {
2062
+ id: intent.id,
2063
+ text: intent.text,
2064
+ expectedText: intent.expectedText,
2065
+ }
2066
+ : { id: intent.id, text: intent.text }));
2067
+ }
2068
+ else {
2069
+ ({ changed } = await channelMemory.removeChannelMemoryEntries(this.channelMemoryTarget(envelope), intent.kind === 'natural_remove'
2070
+ ? {
2071
+ ids: [intent.id],
2072
+ expectedTextById: { [intent.id]: intent.expectedText },
2073
+ }
2074
+ : { ids: [intent.id] }));
1984
2075
  }
1985
2076
  }
2077
+ catch (error) {
2078
+ const message = this.channelMemoryErrorMessage(error);
2079
+ this.logChannelMemoryError(isUpdate ? 'update' : 'remove', envelope, message);
2080
+ await this.sendMessage(envelope.chatId, `Failed to ${isUpdate ? 'update' : 'remove'} channel memory: ${this.channelMemoryUserErrorMessage()}`);
2081
+ return;
2082
+ }
2083
+ if (!changed) {
2084
+ await this.sendMessage(envelope.chatId, `No channel memory entry ${id}.`);
2085
+ return;
2086
+ }
2087
+ this.invalidateSessionContext(envelope);
2088
+ await this.sendMessage(envelope.chatId, `Channel memory ${id} ${isUpdate ? 'updated' : 'removed'}.`);
2089
+ return;
2090
+ }
2091
+ if (intent.kind === 'clear_confirm') {
2092
+ const pendingKey = this.clearPendingKey(envelope);
2093
+ const expiresAt = this.pendingClears.get(pendingKey);
2094
+ this.pendingClears.delete(pendingKey);
2095
+ if (expiresAt === undefined || expiresAt < Date.now()) {
2096
+ await this.sendMessage(envelope.chatId, 'No pending clear request. Say "清空记忆" first.');
2097
+ return;
2098
+ }
1986
2099
  let result;
1987
2100
  try {
1988
2101
  result = await channelMemory.clearChannelMemory(this.channelMemoryTarget(envelope));
@@ -1993,7 +2106,9 @@ export class ChannelBase {
1993
2106
  await this.sendMessage(envelope.chatId, `Failed to clear channel memory: ${this.channelMemoryUserErrorMessage()}`);
1994
2107
  return;
1995
2108
  }
1996
- this.invalidateSessionContext(envelope);
2109
+ if (result.changed) {
2110
+ this.invalidateSessionContext(envelope);
2111
+ }
1997
2112
  await this.sendMessage(envelope.chatId, result.changed ? 'Channel memory cleared.' : 'No channel memory saved.');
1998
2113
  return;
1999
2114
  }
@@ -2019,32 +2134,100 @@ export class ChannelBase {
2019
2134
  }
2020
2135
  this.pendingClears.set(key, now + 60_000);
2021
2136
  }
2022
- async classifyChannelMemoryIntent(text) {
2023
- if (!this.memoryIntentClassifier) {
2137
+ async classifyChannelMemoryIntent(envelope) {
2138
+ if (!this.memoryIntentClassifier || !this.channelMemory) {
2139
+ return null;
2140
+ }
2141
+ let entries;
2142
+ try {
2143
+ entries = await this.channelMemory.listChannelMemoryEntries(this.channelMemoryTarget(envelope));
2144
+ }
2145
+ catch (error) {
2146
+ this.logChannelMemoryError('read', envelope, this.channelMemoryErrorMessage(error));
2024
2147
  return null;
2025
2148
  }
2026
2149
  let classified;
2027
2150
  try {
2028
2151
  classified =
2029
- await this.memoryIntentClassifier.classifyChannelMemoryIntent(text);
2152
+ await this.memoryIntentClassifier.classifyChannelMemoryIntent(envelope.text, entries);
2030
2153
  }
2031
2154
  catch (error) {
2032
2155
  process.stderr.write(`[${this.name}] channel memory intent classifier failed: ${sanitizeLogText(this.channelMemoryErrorMessage(error), 200)}\n`);
2033
2156
  return null;
2034
2157
  }
2035
- if (classified.confidence < CHANNEL_MEMORY_CLASSIFIER_MIN_CONFIDENCE) {
2158
+ const confidence = classified && typeof classified === 'object'
2159
+ ? classified.confidence
2160
+ : undefined;
2161
+ if (typeof confidence !== 'number' ||
2162
+ !Number.isFinite(confidence) ||
2163
+ confidence < 0 ||
2164
+ confidence > 1 ||
2165
+ confidence < CHANNEL_MEMORY_CLASSIFIER_MIN_CONFIDENCE) {
2036
2166
  return null;
2037
2167
  }
2038
- if (classified.intent === 'remember') {
2039
- const memory = classified.memory?.trim();
2168
+ const result = classified;
2169
+ const targetIds = result.targetIds;
2170
+ const entryById = new Map(entries.map((entry) => [entry.id, entry]));
2171
+ const resolvedEntries = targetIds === undefined
2172
+ ? undefined
2173
+ : Array.isArray(targetIds) &&
2174
+ targetIds.every((id) => typeof id === 'string' && entryById.has(id)) &&
2175
+ new Set(targetIds).size === targetIds.length
2176
+ ? this.entriesForChannelMemoryIds(entries, targetIds)
2177
+ : null;
2178
+ if (result.intent === 'remember') {
2179
+ const memory = typeof result.memory === 'string' ? result.memory.trim() : '';
2040
2180
  return memory ? { kind: 'remember', text: memory } : null;
2041
2181
  }
2042
- if (classified.intent === 'list') {
2043
- return { kind: 'list' };
2044
- }
2045
- if (classified.intent === 'clear_all') {
2182
+ if (result.intent === 'list') {
2183
+ if (resolvedEntries === undefined)
2184
+ return { kind: 'list', page: 1 };
2185
+ if (resolvedEntries === null)
2186
+ return null;
2187
+ return resolvedEntries.length === 0
2188
+ ? { kind: 'no_match' }
2189
+ : {
2190
+ kind: 'list_matches',
2191
+ ids: resolvedEntries.map((entry) => entry.id),
2192
+ };
2193
+ }
2194
+ if (result.intent === 'clear_all') {
2046
2195
  return { kind: 'clear_request' };
2047
2196
  }
2197
+ if (result.intent !== 'inspect' &&
2198
+ result.intent !== 'update' &&
2199
+ result.intent !== 'remove') {
2200
+ return null;
2201
+ }
2202
+ if (resolvedEntries === null || resolvedEntries === undefined)
2203
+ return null;
2204
+ if (resolvedEntries.length === 0)
2205
+ return { kind: 'no_match' };
2206
+ if (resolvedEntries.length > 1) {
2207
+ return {
2208
+ kind: 'ambiguous',
2209
+ ids: resolvedEntries.map((entry) => entry.id),
2210
+ };
2211
+ }
2212
+ const entry = resolvedEntries[0];
2213
+ if (result.intent === 'inspect')
2214
+ return { kind: 'inspect', id: entry.id };
2215
+ if (result.intent === 'remove') {
2216
+ return {
2217
+ kind: 'natural_remove',
2218
+ id: entry.id,
2219
+ expectedText: entry.text,
2220
+ };
2221
+ }
2222
+ const text = typeof result.memory === 'string' ? result.memory.trim() : '';
2223
+ if (text) {
2224
+ return {
2225
+ kind: 'natural_update',
2226
+ id: entry.id,
2227
+ text,
2228
+ expectedText: entry.text,
2229
+ };
2230
+ }
2048
2231
  return null;
2049
2232
  }
2050
2233
  channelMemoryErrorMessage(error) {
@@ -2417,7 +2600,7 @@ export class ChannelBase {
2417
2600
  let memoryIntent = parseChannelMemoryIntent(envelope.text);
2418
2601
  if (!memoryIntent &&
2419
2602
  this.shouldClassifyChannelMemoryIntent(envelope.text)) {
2420
- memoryIntent = await this.classifyChannelMemoryIntent(envelope.text);
2603
+ memoryIntent = await this.classifyChannelMemoryIntent(envelope);
2421
2604
  }
2422
2605
  if (memoryIntent) {
2423
2606
  await this.handleChannelMemoryIntent(envelope, memoryIntent);
@@ -2773,7 +2956,7 @@ export class ChannelBase {
2773
2956
  minChars: this.config.blockStreamingChunk?.minChars ?? 400,
2774
2957
  maxChars: this.config.blockStreamingChunk?.maxChars ?? 1000,
2775
2958
  idleMs: this.config.blockStreamingCoalesce?.idleMs ?? 1500,
2776
- send: (text) => this.sendMessage(envelope.chatId, text),
2959
+ send: (text) => this.sendResponseMessage(envelope.chatId, text, sessionId),
2777
2960
  })
2778
2961
  : null;
2779
2962
  promptState.stopStreaming = () => streamer?.stop();
@@ -2781,8 +2964,10 @@ export class ChannelBase {
2781
2964
  // to any visible sink could send output the cancel can't recall. On a
2782
2965
  // failed cancel they're replayed; on success, discarded.
2783
2966
  const heldChunks = [];
2967
+ let hasStreamedText = false;
2784
2968
  const releaseHeldChunks = () => {
2785
2969
  for (const held of heldChunks.splice(0)) {
2970
+ hasStreamedText = true;
2786
2971
  this.emitTaskLifecycle({
2787
2972
  ...this.lifecycleBase(envelope.chatId, sessionId, envelope.messageId),
2788
2973
  type: 'text_chunk',
@@ -2808,6 +2993,7 @@ export class ChannelBase {
2808
2993
  return;
2809
2994
  }
2810
2995
  heldChunks.length = 0;
2996
+ hasStreamedText = false;
2811
2997
  this.onResponseBoundary(envelope.chatId, sessionId);
2812
2998
  streamer?.stop();
2813
2999
  };
@@ -2827,6 +3013,9 @@ export class ChannelBase {
2827
3013
  if (!promptState.cancelled && response) {
2828
3014
  promptState.deliveryStarted = true;
2829
3015
  if (streamer) {
3016
+ if (!hasStreamedText) {
3017
+ streamer.push(response);
3018
+ }
2830
3019
  await streamer.flush();
2831
3020
  }
2832
3021
  else {