@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 +18 -3
- package/dist/AcpBridge.js.map +1 -1
- package/dist/ChannelAgentBridge.d.ts +4 -2
- package/dist/ChannelBase.d.ts +7 -2
- package/dist/ChannelBase.js +248 -59
- package/dist/ChannelBase.js.map +1 -1
- package/dist/DaemonChannelBridge.d.ts +9 -2
- package/dist/DaemonChannelBridge.js +109 -13
- package/dist/DaemonChannelBridge.js.map +1 -1
- package/dist/SessionRouter.d.ts +27 -1
- package/dist/SessionRouter.js +410 -72
- package/dist/SessionRouter.js.map +1 -1
- package/dist/channel-memory-intent.d.ts +11 -0
- package/dist/channel-memory-intent.js +53 -1
- package/dist/channel-memory-intent.js.map +1 -1
- package/dist/types.d.ts +52 -11
- package/package.json +1 -1
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
|
|
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('
|
|
226
|
+
this.emit(meta?.['source'] === 'slash_command'
|
|
227
|
+
? 'slashCommandOutput'
|
|
228
|
+
: 'textChunk', sessionId, content.text);
|
|
214
229
|
}
|
|
215
230
|
break;
|
|
216
231
|
}
|
package/dist/AcpBridge.js.map
CHANGED
|
@@ -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;
|
package/dist/ChannelBase.d.ts
CHANGED
|
@@ -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:
|
|
166
|
+
* Default: sends the full response text.
|
|
165
167
|
*/
|
|
166
|
-
protected onResponseComplete(chatId: string, fullText: string,
|
|
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;
|
package/dist/ChannelBase.js
CHANGED
|
@@ -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 = /(
|
|
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.
|
|
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.
|
|
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:
|
|
1041
|
+
* Default: sends the full response text.
|
|
1034
1042
|
*/
|
|
1035
|
-
async onResponseComplete(chatId, fullText,
|
|
1036
|
-
await this.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
1959
|
-
|
|
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
|
|
2017
|
+
if (intent.kind === 'list' || intent.kind === 'inspect') {
|
|
2018
|
+
let entries;
|
|
1964
2019
|
try {
|
|
1965
|
-
|
|
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
|
-
|
|
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 === '
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
2039
|
-
|
|
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 (
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
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
|
|
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.
|
|
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 {
|