@qwen-code/channel-base 0.19.8 → 0.19.9-preview.0
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.d.ts +1 -0
- package/dist/AcpBridge.js +34 -2
- package/dist/AcpBridge.js.map +1 -1
- package/dist/ChannelAgentBridge.d.ts +8 -2
- package/dist/ChannelBase.d.ts +19 -5
- package/dist/ChannelBase.js +389 -98
- package/dist/ChannelBase.js.map +1 -1
- package/dist/ChannelWebhookTask.d.ts +29 -0
- package/dist/ChannelWebhookTask.js +54 -0
- package/dist/ChannelWebhookTask.js.map +1 -0
- package/dist/DaemonChannelBridge.d.ts +15 -2
- package/dist/DaemonChannelBridge.js +129 -13
- package/dist/DaemonChannelBridge.js.map +1 -1
- package/dist/SessionRouter.d.ts +35 -2
- package/dist/SessionRouter.js +426 -70
- package/dist/SessionRouter.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/sanitize.d.ts +7 -0
- package/dist/sanitize.js +1 -1
- package/dist/sanitize.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -24,6 +24,7 @@ export interface DaemonChannelSessionClient {
|
|
|
24
24
|
lastEventId?: number;
|
|
25
25
|
resume?: boolean;
|
|
26
26
|
}): AsyncGenerator<DaemonChannelEvent>;
|
|
27
|
+
detach?(): Promise<void>;
|
|
27
28
|
cancel(): Promise<void>;
|
|
28
29
|
setModel(modelId: string): Promise<Record<string, unknown>>;
|
|
29
30
|
respondToPermission(requestId: string, response: RequestPermissionResponse): Promise<boolean>;
|
|
@@ -38,6 +39,7 @@ export interface DaemonChannelSessionFactoryRequest {
|
|
|
38
39
|
modelServiceId?: string;
|
|
39
40
|
sessionId?: string;
|
|
40
41
|
sessionScope?: SessionScope;
|
|
42
|
+
approvalMode?: string;
|
|
41
43
|
}
|
|
42
44
|
export type DaemonChannelSessionFactory = (req: DaemonChannelSessionFactoryRequest) => Promise<DaemonChannelSessionClient>;
|
|
43
45
|
export interface DaemonChannelBridgeOptions {
|
|
@@ -69,6 +71,7 @@ type DaemonPermissionOutcome = {
|
|
|
69
71
|
export declare class DaemonChannelBridge extends EventEmitter implements ChannelAgentBridge {
|
|
70
72
|
private readonly options;
|
|
71
73
|
private readonly sessions;
|
|
74
|
+
private readonly sessionBindingTokens;
|
|
72
75
|
private readonly eventControllers;
|
|
73
76
|
private readonly requestToSession;
|
|
74
77
|
private readonly respondedRequestToSession;
|
|
@@ -77,6 +80,7 @@ export declare class DaemonChannelBridge extends EventEmitter implements Channel
|
|
|
77
80
|
private readonly availableCommandsBySession;
|
|
78
81
|
private readonly turnBarriers;
|
|
79
82
|
private connected;
|
|
83
|
+
private lifecycleGeneration;
|
|
80
84
|
private latestAvailableCommandsSessionId;
|
|
81
85
|
private lastError;
|
|
82
86
|
constructor(options: DaemonChannelBridgeOptions);
|
|
@@ -85,8 +89,12 @@ export declare class DaemonChannelBridge extends EventEmitter implements Channel
|
|
|
85
89
|
getAvailableCommands(sessionId: string): AvailableCommand[];
|
|
86
90
|
listSessions(): BridgeSessionInfo[];
|
|
87
91
|
start(): Promise<void>;
|
|
88
|
-
newSession(cwd: string
|
|
89
|
-
|
|
92
|
+
newSession(cwd: string, options?: {
|
|
93
|
+
approvalMode?: string;
|
|
94
|
+
}, bindingToken?: object): Promise<string>;
|
|
95
|
+
loadSession(sessionId: string, cwd: string, options?: {
|
|
96
|
+
approvalMode?: string;
|
|
97
|
+
}, bindingToken?: object): Promise<string>;
|
|
90
98
|
prompt(sessionId: string, text: string, options?: {
|
|
91
99
|
imageBase64?: string;
|
|
92
100
|
imageMimeType?: string;
|
|
@@ -97,11 +105,14 @@ export declare class DaemonChannelBridge extends EventEmitter implements Channel
|
|
|
97
105
|
aborted: boolean;
|
|
98
106
|
}>;
|
|
99
107
|
cancelSession(sessionId: string): Promise<void>;
|
|
108
|
+
discardSession(sessionId: string, expectedBindingToken?: object): Promise<void>;
|
|
109
|
+
private releaseSessionClient;
|
|
100
110
|
setSessionModel(sessionId: string, modelId: string): Promise<Record<string, unknown>>;
|
|
101
111
|
respondToPermission(requestId: string, response: RequestPermissionResponse): Promise<boolean>;
|
|
102
112
|
stop(): void;
|
|
103
113
|
get isConnected(): boolean;
|
|
104
114
|
private attachSession;
|
|
115
|
+
private rejectStaleSession;
|
|
105
116
|
private ensureSession;
|
|
106
117
|
private pumpEvents;
|
|
107
118
|
private isCurrentPump;
|
|
@@ -114,8 +125,10 @@ export declare class DaemonChannelBridge extends EventEmitter implements Channel
|
|
|
114
125
|
private handleModelSwitchFailed;
|
|
115
126
|
private handleSessionDied;
|
|
116
127
|
private dropSession;
|
|
128
|
+
private removeSessionBinding;
|
|
117
129
|
private getStringField;
|
|
118
130
|
private abortActivePrompts;
|
|
131
|
+
private emitResponseBoundary;
|
|
119
132
|
private createTurnBarrier;
|
|
120
133
|
private resolveTurnBarrier;
|
|
121
134
|
private clearTurnBarrier;
|
|
@@ -78,6 +78,7 @@ function summarizeProtocolDetails(details) {
|
|
|
78
78
|
export class DaemonChannelBridge extends EventEmitter {
|
|
79
79
|
options;
|
|
80
80
|
sessions = new Map();
|
|
81
|
+
sessionBindingTokens = new Map();
|
|
81
82
|
eventControllers = new Map();
|
|
82
83
|
requestToSession = new Map();
|
|
83
84
|
respondedRequestToSession = new Map();
|
|
@@ -86,6 +87,7 @@ export class DaemonChannelBridge extends EventEmitter {
|
|
|
86
87
|
availableCommandsBySession = new Map();
|
|
87
88
|
turnBarriers = new Map();
|
|
88
89
|
connected = false;
|
|
90
|
+
lifecycleGeneration = 0;
|
|
89
91
|
latestAvailableCommandsSessionId;
|
|
90
92
|
lastError;
|
|
91
93
|
constructor(options) {
|
|
@@ -121,26 +123,39 @@ export class DaemonChannelBridge extends EventEmitter {
|
|
|
121
123
|
async start() {
|
|
122
124
|
this.connected = true;
|
|
123
125
|
}
|
|
124
|
-
async newSession(cwd) {
|
|
126
|
+
async newSession(cwd, options, bindingToken) {
|
|
127
|
+
const lifecycleGeneration = this.lifecycleGeneration;
|
|
125
128
|
const session = await this.options.sessionFactory({
|
|
126
129
|
workspaceCwd: cwd || this.options.cwd,
|
|
127
130
|
modelServiceId: this.options.modelServiceId,
|
|
128
131
|
sessionScope: this.options.sessionScope ?? 'thread',
|
|
132
|
+
...(options?.approvalMode ? { approvalMode: options.approvalMode } : {}),
|
|
129
133
|
});
|
|
130
|
-
this.
|
|
134
|
+
if (lifecycleGeneration !== this.lifecycleGeneration) {
|
|
135
|
+
await this.rejectStaleSession(session);
|
|
136
|
+
}
|
|
137
|
+
this.attachSession(session, bindingToken);
|
|
131
138
|
return session.sessionId;
|
|
132
139
|
}
|
|
133
|
-
async loadSession(sessionId, cwd) {
|
|
140
|
+
async loadSession(sessionId, cwd, options, bindingToken) {
|
|
141
|
+
const lifecycleGeneration = this.lifecycleGeneration;
|
|
134
142
|
const session = await this.options.sessionFactory({
|
|
135
143
|
workspaceCwd: cwd || this.options.cwd,
|
|
136
144
|
modelServiceId: this.options.modelServiceId,
|
|
137
145
|
sessionId,
|
|
138
146
|
sessionScope: this.options.sessionScope ?? 'thread',
|
|
147
|
+
...(options?.approvalMode ? { approvalMode: options.approvalMode } : {}),
|
|
139
148
|
});
|
|
149
|
+
if (lifecycleGeneration !== this.lifecycleGeneration) {
|
|
150
|
+
await this.rejectStaleSession(session);
|
|
151
|
+
}
|
|
140
152
|
if (session.sessionId !== sessionId) {
|
|
153
|
+
void this.releaseSessionClient(session).catch((error) => {
|
|
154
|
+
this.lastError = error;
|
|
155
|
+
});
|
|
141
156
|
throw new Error(`Daemon returned session ${session.sessionId} while loading ${sessionId}`);
|
|
142
157
|
}
|
|
143
|
-
this.attachSession(session);
|
|
158
|
+
this.attachSession(session, bindingToken);
|
|
144
159
|
return session.sessionId;
|
|
145
160
|
}
|
|
146
161
|
async prompt(sessionId, text, options) {
|
|
@@ -157,17 +172,31 @@ export class DaemonChannelBridge extends EventEmitter {
|
|
|
157
172
|
}
|
|
158
173
|
controllers.add(controller);
|
|
159
174
|
const chunks = [];
|
|
175
|
+
let slashCommandOutput = '';
|
|
160
176
|
const onChunk = (sid, chunk) => {
|
|
161
177
|
if (sid === sessionId) {
|
|
162
178
|
chunks.push(chunk);
|
|
163
179
|
}
|
|
164
180
|
};
|
|
181
|
+
const onSlashCommandOutput = (sid, chunk) => {
|
|
182
|
+
if (sid === sessionId) {
|
|
183
|
+
slashCommandOutput = chunk;
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
const clearChunks = (sid) => {
|
|
187
|
+
if (sid === sessionId) {
|
|
188
|
+
chunks.length = 0;
|
|
189
|
+
slashCommandOutput = '';
|
|
190
|
+
}
|
|
191
|
+
};
|
|
165
192
|
const onSessionDied = (info) => {
|
|
166
193
|
if (info.sessionId === sessionId) {
|
|
167
194
|
controller.abort();
|
|
168
195
|
}
|
|
169
196
|
};
|
|
170
197
|
this.on('textChunk', onChunk);
|
|
198
|
+
this.on('slashCommandOutput', onSlashCommandOutput);
|
|
199
|
+
this.on('responseBoundary', clearChunks);
|
|
171
200
|
this.on('sessionDied', onSessionDied);
|
|
172
201
|
const turnBarrier = this.createTurnBarrier(sessionId);
|
|
173
202
|
const prompt = [];
|
|
@@ -188,7 +217,7 @@ export class DaemonChannelBridge extends EventEmitter {
|
|
|
188
217
|
turnBarrier,
|
|
189
218
|
new Promise((resolve) => setTimeout(resolve, 0)),
|
|
190
219
|
]);
|
|
191
|
-
const textResult = chunks.join('');
|
|
220
|
+
const textResult = chunks.join('') || slashCommandOutput;
|
|
192
221
|
this.emit('promptComplete', {
|
|
193
222
|
sessionId,
|
|
194
223
|
text: textResult,
|
|
@@ -199,6 +228,8 @@ export class DaemonChannelBridge extends EventEmitter {
|
|
|
199
228
|
finally {
|
|
200
229
|
this.clearTurnBarrier(sessionId);
|
|
201
230
|
this.off('textChunk', onChunk);
|
|
231
|
+
this.off('slashCommandOutput', onSlashCommandOutput);
|
|
232
|
+
this.off('responseBoundary', clearChunks);
|
|
202
233
|
this.off('sessionDied', onSessionDied);
|
|
203
234
|
this.activePrompts.delete(sessionId);
|
|
204
235
|
controllers.delete(controller);
|
|
@@ -222,6 +253,28 @@ export class DaemonChannelBridge extends EventEmitter {
|
|
|
222
253
|
this.activePrompts.delete(sessionId);
|
|
223
254
|
await session.cancel();
|
|
224
255
|
}
|
|
256
|
+
async discardSession(sessionId, expectedBindingToken) {
|
|
257
|
+
if (expectedBindingToken !== undefined &&
|
|
258
|
+
this.sessionBindingTokens.get(sessionId) !== expectedBindingToken) {
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
const session = this.removeSessionBinding(sessionId);
|
|
262
|
+
if (!session)
|
|
263
|
+
return;
|
|
264
|
+
await this.releaseSessionClient(session);
|
|
265
|
+
}
|
|
266
|
+
async releaseSessionClient(session) {
|
|
267
|
+
if (session.detach) {
|
|
268
|
+
try {
|
|
269
|
+
await session.detach();
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
catch {
|
|
273
|
+
// Fall back to cancellation for clients that cannot detach cleanly.
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
await session.cancel();
|
|
277
|
+
}
|
|
225
278
|
async setSessionModel(sessionId, modelId) {
|
|
226
279
|
return await this.ensureSession(sessionId).setModel(modelId);
|
|
227
280
|
}
|
|
@@ -254,6 +307,7 @@ export class DaemonChannelBridge extends EventEmitter {
|
|
|
254
307
|
}
|
|
255
308
|
}
|
|
256
309
|
stop() {
|
|
310
|
+
this.lifecycleGeneration++;
|
|
257
311
|
for (const sessionId of Array.from(this.sessions.keys())) {
|
|
258
312
|
const session = this.sessions.get(sessionId);
|
|
259
313
|
if (session) {
|
|
@@ -261,7 +315,7 @@ export class DaemonChannelBridge extends EventEmitter {
|
|
|
261
315
|
this.lastError = error;
|
|
262
316
|
});
|
|
263
317
|
}
|
|
264
|
-
this.dropSession(sessionId, 'bridge_stopped');
|
|
318
|
+
this.dropSession(sessionId, 'bridge_stopped', false);
|
|
265
319
|
}
|
|
266
320
|
this.latestAvailableCommandsSessionId = undefined;
|
|
267
321
|
this.connected = false;
|
|
@@ -269,15 +323,29 @@ export class DaemonChannelBridge extends EventEmitter {
|
|
|
269
323
|
get isConnected() {
|
|
270
324
|
return this.connected;
|
|
271
325
|
}
|
|
272
|
-
attachSession(session) {
|
|
273
|
-
|
|
274
|
-
|
|
326
|
+
attachSession(session, bindingToken) {
|
|
327
|
+
const replacedSession = this.removeSessionBinding(session.sessionId);
|
|
328
|
+
if (replacedSession) {
|
|
329
|
+
void this.releaseSessionClient(replacedSession).catch((error) => {
|
|
330
|
+
this.lastError = error;
|
|
331
|
+
});
|
|
332
|
+
this.emit('sessionDied', {
|
|
333
|
+
sessionId: session.sessionId,
|
|
334
|
+
reason: 'session_replaced',
|
|
335
|
+
});
|
|
275
336
|
}
|
|
276
337
|
this.sessions.set(session.sessionId, session);
|
|
338
|
+
this.sessionBindingTokens.set(session.sessionId, bindingToken);
|
|
277
339
|
const controller = new AbortController();
|
|
278
340
|
this.eventControllers.set(session.sessionId, controller);
|
|
279
341
|
void this.pumpEvents(session, controller.signal);
|
|
280
342
|
}
|
|
343
|
+
async rejectStaleSession(session) {
|
|
344
|
+
void this.releaseSessionClient(session).catch((error) => {
|
|
345
|
+
this.lastError = error;
|
|
346
|
+
});
|
|
347
|
+
throw new Error('Daemon channel bridge stopped during session creation');
|
|
348
|
+
}
|
|
281
349
|
ensureSession(sessionId) {
|
|
282
350
|
const session = this.sessions.get(sessionId);
|
|
283
351
|
if (!session) {
|
|
@@ -315,6 +383,11 @@ export class DaemonChannelBridge extends EventEmitter {
|
|
|
315
383
|
handleEvent(session, event) {
|
|
316
384
|
switch (event.type) {
|
|
317
385
|
case 'session_update':
|
|
386
|
+
if (isRecord(event.data) &&
|
|
387
|
+
typeof event.data['sessionId'] === 'string' &&
|
|
388
|
+
event.data['sessionId'] !== session.sessionId) {
|
|
389
|
+
break;
|
|
390
|
+
}
|
|
318
391
|
this.handleSessionUpdate(session.sessionId, event.data);
|
|
319
392
|
break;
|
|
320
393
|
case 'permission_request':
|
|
@@ -358,9 +431,15 @@ export class DaemonChannelBridge extends EventEmitter {
|
|
|
358
431
|
const type = getString(update['sessionUpdate']);
|
|
359
432
|
switch (type) {
|
|
360
433
|
case 'agent_message_chunk': {
|
|
434
|
+
const meta = isRecord(update['_meta']) ? update['_meta'] : undefined;
|
|
435
|
+
if (typeof meta?.['parentToolCallId'] === 'string') {
|
|
436
|
+
break;
|
|
437
|
+
}
|
|
361
438
|
const text = getTextContent(update['content']);
|
|
362
439
|
if (text) {
|
|
363
|
-
this.emit('
|
|
440
|
+
this.emit(meta?.['source'] === 'slash_command'
|
|
441
|
+
? 'slashCommandOutput'
|
|
442
|
+
: 'textChunk', sessionId, text);
|
|
364
443
|
}
|
|
365
444
|
break;
|
|
366
445
|
}
|
|
@@ -375,6 +454,20 @@ export class DaemonChannelBridge extends EventEmitter {
|
|
|
375
454
|
case 'tool_call_update': {
|
|
376
455
|
const toolCallId = getString(update['toolCallId']);
|
|
377
456
|
const kind = getString(update['kind']);
|
|
457
|
+
const meta = isRecord(update['_meta']) ? update['_meta'] : undefined;
|
|
458
|
+
if (!kind &&
|
|
459
|
+
toolCallId &&
|
|
460
|
+
getString(update['status']) === 'in_progress' &&
|
|
461
|
+
meta?.['shellProgress'] !== undefined) {
|
|
462
|
+
// Silent-shell liveness heartbeat: a kind-less in_progress frame
|
|
463
|
+
// carrying only the id, status, and _meta.shellProgress stats.
|
|
464
|
+
// Channels have no use for it — drop it without flagging the
|
|
465
|
+
// session as malformed. Gate on shellProgress (matching the
|
|
466
|
+
// qwen-agent and web-shell normalizer guards) so a genuinely
|
|
467
|
+
// malformed kind-less tool_call still reaches emitProtocolError
|
|
468
|
+
// below instead of being silently swallowed.
|
|
469
|
+
break;
|
|
470
|
+
}
|
|
378
471
|
if (!toolCallId || !kind) {
|
|
379
472
|
this.emitProtocolError(`Malformed daemon ${type} event`, update);
|
|
380
473
|
break;
|
|
@@ -389,9 +482,16 @@ export class DaemonChannelBridge extends EventEmitter {
|
|
|
389
482
|
? update['rawInput']
|
|
390
483
|
: undefined,
|
|
391
484
|
};
|
|
485
|
+
if (event.status === 'pending' || event.status === 'in_progress') {
|
|
486
|
+
this.emitResponseBoundary(sessionId);
|
|
487
|
+
}
|
|
392
488
|
this.emit('toolCall', event);
|
|
393
489
|
break;
|
|
394
490
|
}
|
|
491
|
+
case 'plan': {
|
|
492
|
+
this.emitResponseBoundary(sessionId);
|
|
493
|
+
break;
|
|
494
|
+
}
|
|
395
495
|
case 'available_commands_update': {
|
|
396
496
|
if (Array.isArray(update['availableCommands'])) {
|
|
397
497
|
const commands = update['availableCommands']
|
|
@@ -420,6 +520,7 @@ export class DaemonChannelBridge extends EventEmitter {
|
|
|
420
520
|
}
|
|
421
521
|
const requestId = data['requestId'];
|
|
422
522
|
this.requestToSession.set(requestId, sessionId);
|
|
523
|
+
this.emitResponseBoundary(sessionId);
|
|
423
524
|
this.emit('permissionRequest', {
|
|
424
525
|
requestId,
|
|
425
526
|
sessionId,
|
|
@@ -494,14 +595,26 @@ export class DaemonChannelBridge extends EventEmitter {
|
|
|
494
595
|
handleSessionDied(sessionId, data) {
|
|
495
596
|
this.dropSession(sessionId, this.getStringField(data, 'reason', 'session_died'));
|
|
496
597
|
}
|
|
497
|
-
dropSession(sessionId, reason) {
|
|
498
|
-
|
|
598
|
+
dropSession(sessionId, reason, releaseClient = true) {
|
|
599
|
+
const session = this.removeSessionBinding(sessionId);
|
|
600
|
+
if (!session)
|
|
499
601
|
return;
|
|
602
|
+
if (releaseClient) {
|
|
603
|
+
void this.releaseSessionClient(session).catch((error) => {
|
|
604
|
+
this.lastError = error;
|
|
605
|
+
});
|
|
500
606
|
}
|
|
607
|
+
this.emit('sessionDied', { sessionId, reason });
|
|
608
|
+
}
|
|
609
|
+
removeSessionBinding(sessionId) {
|
|
610
|
+
const session = this.sessions.get(sessionId);
|
|
611
|
+
if (!session)
|
|
612
|
+
return undefined;
|
|
501
613
|
this.resolveTurnBarrier(sessionId);
|
|
502
614
|
this.eventControllers.get(sessionId)?.abort();
|
|
503
615
|
this.eventControllers.delete(sessionId);
|
|
504
616
|
this.sessions.delete(sessionId);
|
|
617
|
+
this.sessionBindingTokens.delete(sessionId);
|
|
505
618
|
this.abortActivePrompts(sessionId);
|
|
506
619
|
this.activePrompts.delete(sessionId);
|
|
507
620
|
this.availableCommandsBySession.delete(sessionId);
|
|
@@ -518,7 +631,7 @@ export class DaemonChannelBridge extends EventEmitter {
|
|
|
518
631
|
this.respondedRequestToSession.delete(requestId);
|
|
519
632
|
}
|
|
520
633
|
}
|
|
521
|
-
|
|
634
|
+
return session;
|
|
522
635
|
}
|
|
523
636
|
getStringField(data, field, fallback) {
|
|
524
637
|
return isRecord(data) && typeof data[field] === 'string'
|
|
@@ -535,6 +648,9 @@ export class DaemonChannelBridge extends EventEmitter {
|
|
|
535
648
|
}
|
|
536
649
|
this.activePromptControllers.delete(sessionId);
|
|
537
650
|
}
|
|
651
|
+
emitResponseBoundary(sessionId) {
|
|
652
|
+
this.emit('responseBoundary', sessionId);
|
|
653
|
+
}
|
|
538
654
|
createTurnBarrier(sessionId) {
|
|
539
655
|
return new Promise((resolve) => {
|
|
540
656
|
this.turnBarriers.set(sessionId, resolve);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DaemonChannelBridge.js","sourceRoot":"","sources":["../src/DaemonChannelBridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DaemonChannelBridge.js","sourceRoot":"","sources":["../src/DaemonChannelBridge.ts"],"names":[],"mappings":"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"}
|
package/dist/SessionRouter.d.ts
CHANGED
|
@@ -1,23 +1,40 @@
|
|
|
1
1
|
import type { SessionScope, SessionTarget } from './types.js';
|
|
2
2
|
import type { ChannelAgentBridge } from './ChannelAgentBridge.js';
|
|
3
|
+
interface ResolveOptions {
|
|
4
|
+
routingThreadId?: string;
|
|
5
|
+
}
|
|
6
|
+
export type SessionRecoveryMode = 'eager' | 'lazy';
|
|
7
|
+
export interface SessionRouterOptions {
|
|
8
|
+
recoveryMode?: SessionRecoveryMode;
|
|
9
|
+
}
|
|
3
10
|
export declare class SessionRouter {
|
|
4
11
|
private toSession;
|
|
5
12
|
private toTarget;
|
|
6
13
|
private toCwd;
|
|
7
14
|
private creatingSessions;
|
|
8
15
|
private sessionLoadWindows;
|
|
16
|
+
private readonly liveSessionIds;
|
|
17
|
+
private readonly routeTokens;
|
|
18
|
+
private lifecycleGeneration;
|
|
9
19
|
private bridge;
|
|
10
20
|
private defaultCwd;
|
|
11
21
|
private defaultScope;
|
|
12
22
|
private channelScopes;
|
|
23
|
+
private channelApprovalModes;
|
|
13
24
|
private persistPath;
|
|
14
|
-
|
|
25
|
+
private readonly recoveryMode;
|
|
26
|
+
constructor(bridge: ChannelAgentBridge, defaultCwd: string, scope?: SessionScope, persistPath?: string, options?: SessionRouterOptions);
|
|
15
27
|
/** Replace the bridge instance (used after crash recovery restart). */
|
|
16
28
|
setBridge(bridge: ChannelAgentBridge): void;
|
|
17
29
|
/** Set scope override for a specific channel. */
|
|
18
30
|
setChannelScope(channelName: string, scope: SessionScope): void;
|
|
31
|
+
setChannelApprovalMode(channelName: string, approvalMode: string | undefined): void;
|
|
19
32
|
private routingKey;
|
|
20
|
-
|
|
33
|
+
private sessionOptions;
|
|
34
|
+
resolve(channelName: string, senderId: string, chatId: string, threadId?: string, cwd?: string, isGroup?: boolean, options?: ResolveOptions): Promise<string>;
|
|
35
|
+
private isLive;
|
|
36
|
+
private createAndStoreSession;
|
|
37
|
+
private loadOrReplaceSession;
|
|
21
38
|
getTarget(sessionId: string): SessionTarget | undefined;
|
|
22
39
|
getSession(channelName: string, senderId: string, chatId: string, threadId?: string): string | undefined;
|
|
23
40
|
hasSession(channelName: string, senderId: string, chatId?: string, threadId?: string): boolean;
|
|
@@ -27,6 +44,7 @@ export declare class SessionRouter {
|
|
|
27
44
|
removeSession(channelName: string, senderId: string, chatId?: string, threadId?: string): string[];
|
|
28
45
|
/** Remove a session mapping by daemon/ACP session ID. */
|
|
29
46
|
removeSessionId(sessionId: string): boolean;
|
|
47
|
+
handleSessionDied(sessionId: string): boolean;
|
|
30
48
|
private deleteByKey;
|
|
31
49
|
private promoteTargetToGroup;
|
|
32
50
|
/** Get all session entries for crash recovery. */
|
|
@@ -35,6 +53,10 @@ export declare class SessionRouter {
|
|
|
35
53
|
sessionId: string;
|
|
36
54
|
target: SessionTarget;
|
|
37
55
|
}>;
|
|
56
|
+
restoreRoutes(): {
|
|
57
|
+
restored: number;
|
|
58
|
+
dropped: number;
|
|
59
|
+
};
|
|
38
60
|
/**
|
|
39
61
|
* Restore session mappings from a previous bridge.
|
|
40
62
|
* Called after bridge restart — attempts loadSession for each saved mapping.
|
|
@@ -44,11 +66,22 @@ export declare class SessionRouter {
|
|
|
44
66
|
restored: number;
|
|
45
67
|
failed: number;
|
|
46
68
|
}>;
|
|
69
|
+
dispose(): void;
|
|
47
70
|
/** Clear in-memory state and delete persist file. Used on clean shutdown. */
|
|
48
71
|
clearAll(): void;
|
|
72
|
+
private readPersistedEntries;
|
|
73
|
+
private isPersistedEntry;
|
|
49
74
|
private persist;
|
|
50
75
|
private createLiveSession;
|
|
51
76
|
private beginSessionLoad;
|
|
77
|
+
private createSessionOperation;
|
|
78
|
+
private invalidateRouteOperation;
|
|
79
|
+
private invalidateOperation;
|
|
80
|
+
private assertOperationCurrent;
|
|
81
|
+
private assertOperationResultCurrent;
|
|
82
|
+
private releaseRouteToken;
|
|
83
|
+
private scheduleDiscardInvalidatedSession;
|
|
52
84
|
private createSessionReservation;
|
|
53
85
|
private endSessionLoad;
|
|
54
86
|
}
|
|
87
|
+
export {};
|