sensorium-mcp 3.0.57 → 3.0.59
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/http-server.d.ts.map +1 -1
- package/dist/http-server.js +54 -12
- package/dist/http-server.js.map +1 -1
- package/dist/services/mcp-config.service.d.ts +9 -0
- package/dist/services/mcp-config.service.d.ts.map +1 -1
- package/dist/services/mcp-config.service.js +16 -4
- package/dist/services/mcp-config.service.js.map +1 -1
- package/dist/sessions.d.ts +18 -20
- package/dist/sessions.d.ts.map +1 -1
- package/dist/sessions.js +135 -47
- package/dist/sessions.js.map +1 -1
- package/dist/tools/session-tools.js +3 -0
- package/dist/tools/session-tools.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAkBrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAWpD,wBAAgB,eAAe,CAC7B,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,MAAM,QAAQ,EAC3B,aAAa,EAAE,MAAM,IAAI,EACzB,eAAe,EAAE,sBAAsB,GACtC;IAAE,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAqetC"}
|
package/dist/http-server.js
CHANGED
|
@@ -18,7 +18,7 @@ import { config } from "./config.js";
|
|
|
18
18
|
import { log } from "./logger.js";
|
|
19
19
|
import { errorMessage } from "./utils.js";
|
|
20
20
|
import { handleDashboardRequest } from "./dashboard.js";
|
|
21
|
-
import { consumeExpectedMcpSessionClose, expectMcpSessionClose, getThreadIdForMcpSession, registerDashboardSession, unregisterMcpSession, updateDashboardActivity, markDashboardSessionDisconnected, removeDashboardSession, getDashboardSessions, WAIT_LIVENESS_MS, } from "./sessions.js";
|
|
21
|
+
import { consumeExpectedMcpSessionClose, expectMcpSessionClose, getThreadIdForMcpSession, registerDashboardSession, unregisterMcpSession, updateDashboardActivity, markDashboardSessionDisconnected, removeDashboardSession, getDashboardSessions, associateSessionToken, WAIT_LIVENESS_MS, } from "./sessions.js";
|
|
22
22
|
import { getThread } from "./data/memory/thread-registry.js";
|
|
23
23
|
import { findAliveThread, getActiveThreadIds, killProcessTree } from "./services/process.service.js";
|
|
24
24
|
import { writeReconnectSnapshot } from "./services/reconnect-snapshot.service.js";
|
|
@@ -35,6 +35,9 @@ export function startHttpServer(createMcpServerFn, getMemoryDb, closeMemoryDb, t
|
|
|
35
35
|
const httpPort = Number.isFinite(rawPort) ? rawPort : 3847;
|
|
36
36
|
const httpBind = process.env.MCP_HTTP_BIND ?? "127.0.0.1";
|
|
37
37
|
const sessions = new Map();
|
|
38
|
+
// Sessions for which we already warned about a missing spawn token — so the
|
|
39
|
+
// observability warning fires once per session, not on every request.
|
|
40
|
+
const tokenlessWarned = new Set();
|
|
38
41
|
const MCP_HTTP_SECRET = process.env.MCP_HTTP_SECRET;
|
|
39
42
|
const MAX_BODY_SIZE = 10 * 1024 * 1024; // 10MB
|
|
40
43
|
const serverStartTime = Date.now();
|
|
@@ -46,8 +49,10 @@ export function startHttpServer(createMcpServerFn, getMemoryDb, closeMemoryDb, t
|
|
|
46
49
|
try {
|
|
47
50
|
await server.close();
|
|
48
51
|
}
|
|
49
|
-
catch {
|
|
50
|
-
// Best-effort cleanup during disconnect/shutdown paths
|
|
52
|
+
catch (err) {
|
|
53
|
+
// Best-effort cleanup during disconnect/shutdown paths — never fatal,
|
|
54
|
+
// but surfaced at debug so a stuck close is diagnosable.
|
|
55
|
+
log.debug(`[http] closeSessionServer failed: ${errorMessage(err)}`);
|
|
51
56
|
}
|
|
52
57
|
}
|
|
53
58
|
async function parseBody(req) {
|
|
@@ -147,6 +152,9 @@ export function startHttpServer(createMcpServerFn, getMemoryDb, closeMemoryDb, t
|
|
|
147
152
|
}
|
|
148
153
|
}
|
|
149
154
|
const sessionId = req.headers["mcp-session-id"];
|
|
155
|
+
// Stable per-process identity (survives transport reconnects). Used for
|
|
156
|
+
// thread-ownership decisions so a reconnect is not mistaken for a zombie.
|
|
157
|
+
const spawnToken = req.headers["x-sensorium-spawn-token"];
|
|
150
158
|
if (req.method === "POST") {
|
|
151
159
|
let body;
|
|
152
160
|
try {
|
|
@@ -165,6 +173,13 @@ export function startHttpServer(createMcpServerFn, getMemoryDb, closeMemoryDb, t
|
|
|
165
173
|
existing.lastActivity = Date.now();
|
|
166
174
|
existing.status = "active";
|
|
167
175
|
delete existing.disconnectedAt;
|
|
176
|
+
if (spawnToken) {
|
|
177
|
+
associateSessionToken(sessionId, spawnToken);
|
|
178
|
+
}
|
|
179
|
+
else if (sessionId && !tokenlessWarned.has(sessionId)) {
|
|
180
|
+
tokenlessWarned.add(sessionId);
|
|
181
|
+
log.warn(`[http] Session ${sessionId.slice(0, 8)}… has no spawn token — using legacy sid-key ownership (zombie detection degraded). Check the agent's MCP config.`);
|
|
182
|
+
}
|
|
168
183
|
updateDashboardActivity(sessionId);
|
|
169
184
|
await existing.transport.handleRequest(req, res, body);
|
|
170
185
|
return;
|
|
@@ -190,6 +205,13 @@ export function startHttpServer(createMcpServerFn, getMemoryDb, closeMemoryDb, t
|
|
|
190
205
|
capturedSid = sid;
|
|
191
206
|
log.info(`[http] New MCP session created: ${sid.slice(0, 8)}…`);
|
|
192
207
|
sessions.set(sid, { transport, server: null, lastActivity: Date.now(), status: "active" });
|
|
208
|
+
if (spawnToken) {
|
|
209
|
+
associateSessionToken(sid, spawnToken);
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
tokenlessWarned.add(sid);
|
|
213
|
+
log.warn(`[http] New session ${sid.slice(0, 8)}… initialized WITHOUT spawn token — legacy sid-key ownership (zombie detection degraded). Check the agent's MCP config.`);
|
|
214
|
+
}
|
|
193
215
|
registerDashboardSession(sid, "http");
|
|
194
216
|
},
|
|
195
217
|
});
|
|
@@ -208,24 +230,38 @@ export function startHttpServer(createMcpServerFn, getMemoryDb, closeMemoryDb, t
|
|
|
208
230
|
markDashboardSessionDisconnected(sid);
|
|
209
231
|
const threadId = getThreadIdForMcpSession(sid);
|
|
210
232
|
unregisterMcpSession(sid);
|
|
211
|
-
|
|
233
|
+
tokenlessWarned.delete(sid);
|
|
234
|
+
if (expectedClose) {
|
|
235
|
+
log.debug(`[session] Session ${sid.slice(0, 8)}… closed (expected) for thread ${threadId ?? "?"} — no kill.`);
|
|
236
|
+
}
|
|
237
|
+
else if (threadId !== undefined) {
|
|
212
238
|
const thread = getThread(getMemoryDb(), threadId);
|
|
213
239
|
if (thread?.status === "active") {
|
|
214
240
|
const alive = findAliveThread(threadId);
|
|
215
241
|
if (alive) {
|
|
216
|
-
log.warn(`[session] Session closed for thread ${threadId}
|
|
242
|
+
log.warn(`[session] Session ${sid.slice(0, 8)}… closed UNEXPECTEDLY for active thread ${threadId} — killing PID ${alive.pid} to force reconnect.`);
|
|
217
243
|
void killProcessTree(alive.pid, threadId);
|
|
218
244
|
}
|
|
245
|
+
else {
|
|
246
|
+
log.debug(`[session] Session ${sid.slice(0, 8)}… closed unexpectedly for thread ${threadId} but no live process found — no kill.`);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
log.debug(`[session] Session ${sid.slice(0, 8)}… closed unexpectedly for thread ${threadId} (status ${thread?.status ?? "unknown"}) — no kill.`);
|
|
219
251
|
}
|
|
220
252
|
}
|
|
221
253
|
}
|
|
222
254
|
};
|
|
223
255
|
// Create a fresh Server per HTTP session — a single Server can only
|
|
224
256
|
// connect to one transport, so concurrent clients each need their own.
|
|
225
|
-
const sessionServer = createMcpServerFn(() => capturedSid, () => {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
257
|
+
const sessionServer = createMcpServerFn(() => capturedSid, () => {
|
|
258
|
+
try {
|
|
259
|
+
transport.close();
|
|
260
|
+
}
|
|
261
|
+
catch (err) {
|
|
262
|
+
log.warn(`[http] transport.close() failed for ${capturedSid?.slice(0, 8) ?? "?"}…: ${errorMessage(err)}`);
|
|
263
|
+
}
|
|
264
|
+
});
|
|
229
265
|
await sessionServer.connect(transport);
|
|
230
266
|
// Store server reference so it can be closed during shutdown
|
|
231
267
|
if (capturedSid) {
|
|
@@ -355,7 +391,9 @@ export function startHttpServer(createMcpServerFn, getMemoryDb, closeMemoryDb, t
|
|
|
355
391
|
try {
|
|
356
392
|
entry.transport.close();
|
|
357
393
|
}
|
|
358
|
-
catch (
|
|
394
|
+
catch (err) {
|
|
395
|
+
log.debug(`[session-sweep] transport.close() failed for ${sid.slice(0, 8)}…: ${errorMessage(err)}`);
|
|
396
|
+
}
|
|
359
397
|
void closeSessionServer(entry);
|
|
360
398
|
sessions.delete(sid);
|
|
361
399
|
removeDashboardSession(sid);
|
|
@@ -431,13 +469,17 @@ export function startHttpServer(createMcpServerFn, getMemoryDb, closeMemoryDb, t
|
|
|
431
469
|
try {
|
|
432
470
|
entry.transport.close();
|
|
433
471
|
}
|
|
434
|
-
catch (
|
|
472
|
+
catch (err) {
|
|
473
|
+
log.debug(`[shutdown] transport.close() failed for ${sid.slice(0, 8)}…: ${errorMessage(err)}`);
|
|
474
|
+
}
|
|
435
475
|
}
|
|
436
476
|
if (entry.server) {
|
|
437
477
|
try {
|
|
438
478
|
await entry.server.close();
|
|
439
479
|
}
|
|
440
|
-
catch (
|
|
480
|
+
catch (err) {
|
|
481
|
+
log.debug(`[shutdown] server.close() failed for ${sid.slice(0, 8)}…: ${errorMessage(err)}`);
|
|
482
|
+
}
|
|
441
483
|
}
|
|
442
484
|
sessions.delete(sid);
|
|
443
485
|
}
|
package/dist/http-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,15 @@ export interface SensoriumTransport {
|
|
|
11
11
|
httpPort: number;
|
|
12
12
|
secret: string | null;
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* HTTP header carrying a per-process spawn token. Set once at spawn time and
|
|
16
|
+
* re-sent by the agent SDK on every request — including transport reconnects
|
|
17
|
+
* (e.g. after an SSE idle/network blip). The server uses it as a STABLE process
|
|
18
|
+
* identity for thread ownership, so a reconnect (same token, new transport id)
|
|
19
|
+
* is not mistaken for a competing/zombie process, and a genuine second process
|
|
20
|
+
* (different token) is reliably detected.
|
|
21
|
+
*/
|
|
22
|
+
export declare const SPAWN_TOKEN_HEADER = "X-Sensorium-Spawn-Token";
|
|
14
23
|
/**
|
|
15
24
|
* Generates a per-thread Claude MCP config file and returns the path.
|
|
16
25
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-config.service.d.ts","sourceRoot":"","sources":["../../src/services/mcp-config.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"mcp-config.service.d.ts","sourceRoot":"","sources":["../../src/services/mcp-config.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAgBD;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,4BAA4B,CAAC;AAgB5D;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY5F;AAID;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAUjG;AASD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAWzE"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { mkdirSync, writeFileSync } from "node:fs";
|
|
11
11
|
import { join } from "node:path";
|
|
12
|
+
import { randomUUID } from "node:crypto";
|
|
12
13
|
import { getMcpServers } from "../config.js";
|
|
13
14
|
import { PROCESS_PIDS_DIR } from "./process.service.js";
|
|
14
15
|
// ── Shared JSON formatter (Claude & Copilot use the same schema) ────────────
|
|
@@ -26,10 +27,21 @@ function formatJsonMcpEntry(cfg) {
|
|
|
26
27
|
entry.env = cfg.env;
|
|
27
28
|
return entry;
|
|
28
29
|
}
|
|
29
|
-
|
|
30
|
+
/**
|
|
31
|
+
* HTTP header carrying a per-process spawn token. Set once at spawn time and
|
|
32
|
+
* re-sent by the agent SDK on every request — including transport reconnects
|
|
33
|
+
* (e.g. after an SSE idle/network blip). The server uses it as a STABLE process
|
|
34
|
+
* identity for thread ownership, so a reconnect (same token, new transport id)
|
|
35
|
+
* is not mistaken for a competing/zombie process, and a genuine second process
|
|
36
|
+
* (different token) is reliably detected.
|
|
37
|
+
*/
|
|
38
|
+
export const SPAWN_TOKEN_HEADER = "X-Sensorium-Spawn-Token";
|
|
39
|
+
function buildSensoriumJsonEntry(transport, spawnToken, extras) {
|
|
30
40
|
const entry = { ...extras, type: "http", url: `http://127.0.0.1:${transport.httpPort}/mcp` };
|
|
41
|
+
const headers = { [SPAWN_TOKEN_HEADER]: spawnToken };
|
|
31
42
|
if (transport.secret)
|
|
32
|
-
|
|
43
|
+
headers.Authorization = `Bearer ${transport.secret}`;
|
|
44
|
+
entry.headers = headers;
|
|
33
45
|
return entry;
|
|
34
46
|
}
|
|
35
47
|
// ── Claude format ───────────────────────────────────────────────────────────
|
|
@@ -40,7 +52,7 @@ function buildSensoriumJsonEntry(transport, extras) {
|
|
|
40
52
|
*/
|
|
41
53
|
export function buildClaudeMcpConfig(transport, threadId) {
|
|
42
54
|
const servers = {};
|
|
43
|
-
servers["sensorium-mcp"] = buildSensoriumJsonEntry(transport);
|
|
55
|
+
servers["sensorium-mcp"] = buildSensoriumJsonEntry(transport, randomUUID());
|
|
44
56
|
for (const [name, cfg] of Object.entries(getMcpServers())) {
|
|
45
57
|
servers[name] = formatJsonMcpEntry(cfg);
|
|
46
58
|
}
|
|
@@ -57,7 +69,7 @@ export function buildClaudeMcpConfig(transport, threadId) {
|
|
|
57
69
|
*/
|
|
58
70
|
export function buildCopilotMcpConfig(transport, copilotHomeDir) {
|
|
59
71
|
const servers = {};
|
|
60
|
-
servers["sensorium-mcp"] = buildSensoriumJsonEntry(transport, { tools: ["*"] });
|
|
72
|
+
servers["sensorium-mcp"] = buildSensoriumJsonEntry(transport, randomUUID(), { tools: ["*"] });
|
|
61
73
|
for (const [name, cfg] of Object.entries(getMcpServers())) {
|
|
62
74
|
servers[name] = formatJsonMcpEntry(cfg);
|
|
63
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-config.service.js","sourceRoot":"","sources":["../../src/services/mcp-config.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAwB,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AASxD,+EAA+E;AAE/E,SAAS,kBAAkB,CAAC,GAAoB;IAC9C,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,KAAK,GAA4B,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QACtF,IAAI,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAA4B,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IACtE,IAAI,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IACpF,IAAI,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;IACpE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,
|
|
1
|
+
{"version":3,"file":"mcp-config.service.js","sourceRoot":"","sources":["../../src/services/mcp-config.service.ts"],"names":[],"mappings":"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"}
|
package/dist/sessions.d.ts
CHANGED
|
@@ -15,36 +15,34 @@ export declare const sessionRepository: SessionRepository;
|
|
|
15
15
|
export declare function lookupSession(chatId: string, name: string): number | undefined;
|
|
16
16
|
export declare function persistSession(chatId: string, name: string, threadId: number): void;
|
|
17
17
|
export declare function removeSession(chatId: string, name: string): void;
|
|
18
|
+
/** Associate a transport session id with its per-process spawn token. */
|
|
19
|
+
export declare function associateSessionToken(mcpSessionId: string, spawnToken: string): void;
|
|
18
20
|
/** Check if a session has been superseded by a newer session for its thread. */
|
|
19
21
|
export declare function isSessionSuperseded(mcpSessionId: string | undefined, threadId?: number): boolean;
|
|
20
22
|
/**
|
|
21
23
|
* Reconcile thread ownership for an incoming tool call and report whether the
|
|
22
24
|
* caller may proceed.
|
|
23
25
|
*
|
|
24
|
-
* Returns true if the caller is superseded (a newer session
|
|
25
|
-
*
|
|
26
|
-
*
|
|
26
|
+
* Returns true if the caller is superseded (a newer session owns the thread and
|
|
27
|
+
* this one must stop). Returns false if the caller is the active owner —
|
|
28
|
+
* claiming ownership when the thread is currently unowned.
|
|
27
29
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* ownership
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
30
|
+
* Identity is the per-process spawn token (ownerKey), which is STABLE across
|
|
31
|
+
* transport reconnects. Therefore:
|
|
32
|
+
* - A reconnect of the owning process resolves to the SAME key → allowed,
|
|
33
|
+
* with no ownership change (fixes false-supersede-on-reconnect).
|
|
34
|
+
* - A genuinely different process (distinct spawn token) is REJECTED while a
|
|
35
|
+
* token-bearing owner holds the thread — ownership only transfers via
|
|
36
|
+
* start_session (setThreadOwnerSession), which supersedes the prior owner.
|
|
37
|
+
* This makes zombie / duplicate processes reliably detectable.
|
|
38
|
+
* - When token info is missing on either side (legacy/STDIO), fall back to the
|
|
39
|
+
* previous adoption behavior so those paths keep working.
|
|
35
40
|
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* Adoption assumes a non-evicted owner-mismatch is a reconnect of that single
|
|
39
|
-
* process, not a competing process.
|
|
40
|
-
*
|
|
41
|
-
* Cross-thread guard: a transport that already owns a DIFFERENT thread may not
|
|
42
|
-
* adopt this one. A legitimate reconnect carries a brand-new sessionId that
|
|
43
|
-
* owns nothing yet, so this only blocks a wrong/forged `threadId` argument from
|
|
44
|
-
* hijacking another thread.
|
|
41
|
+
* A caller that already owns a DIFFERENT thread may never adopt this one
|
|
42
|
+
* (guards against a forged `threadId` argument hijacking another thread).
|
|
45
43
|
*/
|
|
46
44
|
export declare function reconcileThreadOwnership(mcpSessionId: string | undefined, threadId: number): boolean;
|
|
47
|
-
/** Mark a session as the sole owner for a thread. Old
|
|
45
|
+
/** Mark a session as the sole owner for a thread. Old owners are superseded. */
|
|
48
46
|
export declare function setThreadOwnerSession(threadId: number, mcpSessionId: string): void;
|
|
49
47
|
export declare function registerMcpSession(threadId: number, mcpSessionId: string, closeTransport: () => void): void;
|
|
50
48
|
export declare function getThreadIdForMcpSession(mcpSessionId: string): number | undefined;
|
package/dist/sessions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAU/D,qBAAa,iBAAkB,YAAW,kBAAkB;IAC1D,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI5D,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIhE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjD,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIrE,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;CAG5E;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC;AAwBzD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG9E;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAKnF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAMhE;
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"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"}
|
package/dist/sessions.js
CHANGED
|
@@ -74,78 +74,150 @@ const expectedSessionCloses = new Set();
|
|
|
74
74
|
* Sessions that have been superseded by a newer session for the same thread.
|
|
75
75
|
* Any poll loop running under a superseded session should exit immediately
|
|
76
76
|
* rather than consuming messages meant for the replacement session.
|
|
77
|
-
* Entries are added on start_session
|
|
78
|
-
* reconnect-adoption
|
|
77
|
+
* Entries are added on start_session ownership transfer (setThreadOwnerSession /
|
|
78
|
+
* purgeOtherSessions) and on legacy reconnect-adoption. Cleared only on process
|
|
79
79
|
* restart; with SSE reconnects this can reach the low hundreds/day across all
|
|
80
80
|
* actively-polling threads — a few hundred small strings, negligible memory.
|
|
81
|
+
*
|
|
82
|
+
* NOTE: entries are "owner keys" (see ownerKey()), not raw transport session
|
|
83
|
+
* ids — so superseding one identity covers all of its transport reconnects.
|
|
81
84
|
*/
|
|
82
85
|
const supersededSessions = new Set();
|
|
83
|
-
/** The authoritative owner
|
|
86
|
+
/** The authoritative owner key for each thread (set during start_session). */
|
|
84
87
|
const threadOwnerSession = new Map();
|
|
88
|
+
/**
|
|
89
|
+
* Transport session id → per-process spawn token. The token is sent by the
|
|
90
|
+
* agent on every request (including reconnects), giving a STABLE process
|
|
91
|
+
* identity: a reconnect reuses the same token under a new session id, while a
|
|
92
|
+
* genuine second process carries a different token.
|
|
93
|
+
*/
|
|
94
|
+
const sessionSpawnToken = new Map();
|
|
95
|
+
/** Associate a transport session id with its per-process spawn token. */
|
|
96
|
+
export function associateSessionToken(mcpSessionId, spawnToken) {
|
|
97
|
+
// Write-once: a given transport session id must keep a stable identity. If a
|
|
98
|
+
// later request presents a DIFFERENT token for the same session id (buggy or
|
|
99
|
+
// hostile client), ignore it — flipping the key mid-session would falsely
|
|
100
|
+
// supersede the live owner.
|
|
101
|
+
const existing = sessionSpawnToken.get(mcpSessionId);
|
|
102
|
+
if (existing !== undefined) {
|
|
103
|
+
if (existing !== spawnToken) {
|
|
104
|
+
log.warn(`[session] Ignoring conflicting spawn token for session ${mcpSessionId.slice(0, 8)}… (keeping first).`);
|
|
105
|
+
}
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
sessionSpawnToken.set(mcpSessionId, spawnToken);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Resolve the stable ownership key for a transport session id.
|
|
112
|
+
* Prefers the per-process spawn token (survives reconnects); falls back to the
|
|
113
|
+
* raw session id when no token is known (e.g. STDIO or pre-token agents), which
|
|
114
|
+
* preserves the previous session-id-based behavior for those.
|
|
115
|
+
*/
|
|
116
|
+
function ownerKey(mcpSessionId) {
|
|
117
|
+
const token = sessionSpawnToken.get(mcpSessionId);
|
|
118
|
+
return token ? `tok:${token}` : `sid:${mcpSessionId}`;
|
|
119
|
+
}
|
|
85
120
|
/** Check if a session has been superseded by a newer session for its thread. */
|
|
86
121
|
export function isSessionSuperseded(mcpSessionId, threadId) {
|
|
87
122
|
if (mcpSessionId === undefined)
|
|
88
123
|
return false;
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
//
|
|
95
|
-
// owner
|
|
96
|
-
|
|
124
|
+
const key = ownerKey(mcpSessionId);
|
|
125
|
+
if (supersededSessions.has(key)) {
|
|
126
|
+
log.debug(`[session] superseded-check: ${key.slice(0, 12)}… is in the superseded set (thread ${threadId ?? "?"}).`);
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
// A different identity owns this thread now. With token-based keys a reconnect
|
|
130
|
+
// resolves to the SAME key as the owner, so this only fires for a genuinely
|
|
131
|
+
// different process (or a legacy session-id whose transport changed) — the
|
|
132
|
+
// poll loop running under the stale identity must stop.
|
|
133
|
+
const resolvedThreadId = threadId ?? sessionThreadRegistry.get(mcpSessionId);
|
|
134
|
+
if (resolvedThreadId !== undefined) {
|
|
135
|
+
const owner = threadOwnerSession.get(resolvedThreadId);
|
|
136
|
+
if (owner !== undefined && owner !== key) {
|
|
137
|
+
log.debug(`[session] superseded-check: thread ${resolvedThreadId} owned by ${owner.slice(0, 12)}…, caller ${key.slice(0, 12)}… — superseded.`);
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return false;
|
|
97
142
|
}
|
|
98
143
|
/**
|
|
99
144
|
* Reconcile thread ownership for an incoming tool call and report whether the
|
|
100
145
|
* caller may proceed.
|
|
101
146
|
*
|
|
102
|
-
* Returns true if the caller is superseded (a newer session
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
* Reconnect-adoption: when a session that was NOT explicitly evicted differs
|
|
107
|
-
* from the recorded owner, it is the same Claude process reconnecting with a
|
|
108
|
-
* fresh transport (start_session is not re-run on reconnect). It adopts
|
|
109
|
-
* ownership and the previous owner is marked superseded so its stale wait-loop
|
|
110
|
-
* and any late writes from the old transport stop. A genuine zombie process
|
|
111
|
-
* (from a second start_session) is already in `supersededSessions` and is
|
|
112
|
-
* rejected by the guard above before reaching adoption.
|
|
147
|
+
* Returns true if the caller is superseded (a newer session owns the thread and
|
|
148
|
+
* this one must stop). Returns false if the caller is the active owner —
|
|
149
|
+
* claiming ownership when the thread is currently unowned.
|
|
113
150
|
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
151
|
+
* Identity is the per-process spawn token (ownerKey), which is STABLE across
|
|
152
|
+
* transport reconnects. Therefore:
|
|
153
|
+
* - A reconnect of the owning process resolves to the SAME key → allowed,
|
|
154
|
+
* with no ownership change (fixes false-supersede-on-reconnect).
|
|
155
|
+
* - A genuinely different process (distinct spawn token) is REJECTED while a
|
|
156
|
+
* token-bearing owner holds the thread — ownership only transfers via
|
|
157
|
+
* start_session (setThreadOwnerSession), which supersedes the prior owner.
|
|
158
|
+
* This makes zombie / duplicate processes reliably detectable.
|
|
159
|
+
* - When token info is missing on either side (legacy/STDIO), fall back to the
|
|
160
|
+
* previous adoption behavior so those paths keep working.
|
|
118
161
|
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
* owns nothing yet, so this only blocks a wrong/forged `threadId` argument from
|
|
122
|
-
* hijacking another thread.
|
|
162
|
+
* A caller that already owns a DIFFERENT thread may never adopt this one
|
|
163
|
+
* (guards against a forged `threadId` argument hijacking another thread).
|
|
123
164
|
*/
|
|
124
165
|
export function reconcileThreadOwnership(mcpSessionId, threadId) {
|
|
125
166
|
if (mcpSessionId === undefined)
|
|
126
167
|
return false;
|
|
127
|
-
|
|
168
|
+
const key = ownerKey(mcpSessionId);
|
|
169
|
+
if (supersededSessions.has(key)) {
|
|
170
|
+
log.warn(`[session] Rejecting ${key.slice(0, 12)}… on thread ${threadId} — already superseded (zombie/evicted).`);
|
|
128
171
|
return true;
|
|
172
|
+
}
|
|
129
173
|
const owner = threadOwnerSession.get(threadId);
|
|
130
|
-
if (owner ===
|
|
174
|
+
if (owner === key)
|
|
131
175
|
return false;
|
|
132
|
-
// Refuse cross-thread adoption: this
|
|
176
|
+
// Refuse cross-thread adoption: this identity already owns another thread.
|
|
133
177
|
for (const [otherThreadId, otherOwner] of threadOwnerSession) {
|
|
134
|
-
if (otherOwner ===
|
|
135
|
-
log.warn(`[session]
|
|
178
|
+
if (otherOwner === key && otherThreadId !== threadId) {
|
|
179
|
+
log.warn(`[session] ${key.slice(0, 12)}… tried to act on thread ${threadId} but owns ${otherThreadId} — refused.`);
|
|
136
180
|
return true;
|
|
137
181
|
}
|
|
138
182
|
}
|
|
139
183
|
if (owner !== undefined) {
|
|
184
|
+
const bothTokens = key.startsWith("tok:") && owner.startsWith("tok:");
|
|
185
|
+
if (bothTokens) {
|
|
186
|
+
// Two distinct processes claim this thread. The owner was set by the most
|
|
187
|
+
// recent start_session; this caller is a stale/zombie process. Reject —
|
|
188
|
+
// do NOT steal ownership.
|
|
189
|
+
log.warn(`[session] Thread ${threadId} owned by ${owner.slice(0, 12)}…; rejecting different process ${key.slice(0, 12)}… (zombie/duplicate).`);
|
|
190
|
+
return true;
|
|
191
|
+
}
|
|
192
|
+
// Legacy path (token missing on one side): cannot distinguish a reconnect
|
|
193
|
+
// from a competing process — adopt as before, evicting the prior owner.
|
|
140
194
|
supersededSessions.add(owner);
|
|
141
|
-
log.
|
|
195
|
+
log.warn(`[session] Thread ${threadId} ownership adopted by ${key.slice(0, 12)}… (was ${owner.slice(0, 12)}…) — legacy/no-token reconnect`);
|
|
142
196
|
}
|
|
143
|
-
|
|
197
|
+
else {
|
|
198
|
+
// First claim for a currently-unowned thread (fresh start or after restart).
|
|
199
|
+
log.info(`[session] Thread ${threadId} ownership established by ${key.slice(0, 12)}….`);
|
|
200
|
+
}
|
|
201
|
+
threadOwnerSession.set(threadId, key);
|
|
144
202
|
return false;
|
|
145
203
|
}
|
|
146
|
-
/** Mark a session as the sole owner for a thread. Old
|
|
204
|
+
/** Mark a session as the sole owner for a thread. Old owners are superseded. */
|
|
147
205
|
export function setThreadOwnerSession(threadId, mcpSessionId) {
|
|
148
|
-
|
|
206
|
+
const key = ownerKey(mcpSessionId);
|
|
207
|
+
const previous = threadOwnerSession.get(threadId);
|
|
208
|
+
if (previous !== undefined && previous !== key) {
|
|
209
|
+
// start_session is the explicit ownership-transfer signal (e.g. the keeper
|
|
210
|
+
// spawned a replacement). Supersede the prior owner so its stale wait-loop
|
|
211
|
+
// and any late writes — including reconnects under the old token — stop.
|
|
212
|
+
supersededSessions.add(previous);
|
|
213
|
+
log.info(`[session] Thread ${threadId} ownership transferred to ${key.slice(0, 12)}… (superseded ${previous.slice(0, 12)}…) via start_session.`);
|
|
214
|
+
}
|
|
215
|
+
else if (previous === undefined) {
|
|
216
|
+
log.info(`[session] Thread ${threadId} owner set to ${key.slice(0, 12)}… via start_session.`);
|
|
217
|
+
}
|
|
218
|
+
// The new owner must not remain flagged from a prior life.
|
|
219
|
+
supersededSessions.delete(key);
|
|
220
|
+
threadOwnerSession.set(threadId, key);
|
|
149
221
|
}
|
|
150
222
|
export function registerMcpSession(threadId, mcpSessionId, closeTransport) {
|
|
151
223
|
const entries = threadSessionRegistry.get(threadId) ?? [];
|
|
@@ -153,6 +225,7 @@ export function registerMcpSession(threadId, mcpSessionId, closeTransport) {
|
|
|
153
225
|
threadSessionRegistry.set(threadId, entries);
|
|
154
226
|
sessionThreadRegistry.set(mcpSessionId, threadId);
|
|
155
227
|
expectedSessionCloses.delete(mcpSessionId);
|
|
228
|
+
log.debug(`[session] Registered transport ${mcpSessionId.slice(0, 8)}… for thread ${threadId} (${ownerKey(mcpSessionId).slice(0, 12)}…).`);
|
|
156
229
|
}
|
|
157
230
|
export function getThreadIdForMcpSession(mcpSessionId) {
|
|
158
231
|
return sessionThreadRegistry.get(mcpSessionId);
|
|
@@ -179,6 +252,8 @@ export function unregisterMcpSession(mcpSessionId) {
|
|
|
179
252
|
}
|
|
180
253
|
sessionThreadRegistry.delete(mcpSessionId);
|
|
181
254
|
expectedSessionCloses.delete(mcpSessionId);
|
|
255
|
+
sessionSpawnToken.delete(mcpSessionId);
|
|
256
|
+
log.debug(`[session] Unregistered transport ${mcpSessionId.slice(0, 8)}… (thread ${threadId ?? "?"}).`);
|
|
182
257
|
}
|
|
183
258
|
/**
|
|
184
259
|
* Close all MCP sessions for a thread EXCEPT the current one.
|
|
@@ -187,22 +262,35 @@ export function unregisterMcpSession(mcpSessionId) {
|
|
|
187
262
|
*/
|
|
188
263
|
export function purgeOtherSessions(threadId, keepMcpSessionId) {
|
|
189
264
|
const entries = threadSessionRegistry.get(threadId) ?? [];
|
|
265
|
+
const keepKey = keepMcpSessionId ? ownerKey(keepMcpSessionId) : undefined;
|
|
190
266
|
let purged = 0;
|
|
191
267
|
const kept = [];
|
|
192
268
|
for (const entry of entries) {
|
|
193
269
|
if (entry.mcpSessionId === keepMcpSessionId) {
|
|
194
270
|
kept.push(entry);
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
273
|
+
// Resolve the identity BEFORE unregister clears its token mapping.
|
|
274
|
+
const entryKey = ownerKey(entry.mcpSessionId);
|
|
275
|
+
// Supersede only DIFFERENT processes. A stale transport of the SAME process
|
|
276
|
+
// (a prior reconnect — same key as the keeper) is closed but never
|
|
277
|
+
// superseded, otherwise we would evict the live owner.
|
|
278
|
+
if (entryKey !== keepKey) {
|
|
279
|
+
supersededSessions.add(entryKey);
|
|
280
|
+
log.info(`[session] Purging session ${entry.mcpSessionId.slice(0, 8)}… (${entryKey.slice(0, 12)}…) from thread ${threadId} — superseded by start_session.`);
|
|
195
281
|
}
|
|
196
282
|
else {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
283
|
+
log.debug(`[session] Closing stale reconnect transport ${entry.mcpSessionId.slice(0, 8)}… of current owner on thread ${threadId}.`);
|
|
284
|
+
}
|
|
285
|
+
expectMcpSessionClose(entry.mcpSessionId);
|
|
286
|
+
try {
|
|
287
|
+
entry.closeTransport();
|
|
288
|
+
}
|
|
289
|
+
catch (err) {
|
|
290
|
+
log.warn(`[session] closeTransport failed for ${entry.mcpSessionId.slice(0, 8)}… on thread ${threadId}: ${errorMessage(err)}`);
|
|
205
291
|
}
|
|
292
|
+
unregisterMcpSession(entry.mcpSessionId);
|
|
293
|
+
purged++;
|
|
206
294
|
}
|
|
207
295
|
threadSessionRegistry.set(threadId, kept);
|
|
208
296
|
if (keepMcpSessionId)
|
package/dist/sessions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,+EAA+E;AAE/E,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,mCAAmC,CAAC,CAAC;AAIhF,MAAM,OAAO,iBAAiB;IAC5B,UAAU,CAAC,MAAc,EAAE,IAAY;QACrC,OAAO,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,UAAU,CAAC,MAAc,EAAE,IAAY,EAAE,QAAgB;QACvD,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,aAAa,CAAC,MAAc,EAAE,IAAY;QACxC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,mBAAmB,CAAC,MAAc,EAAE,IAAY;QAC9C,OAAO,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,qBAAqB,CAAC,MAAc,EAAE,IAAY,EAAE,QAAgB;QAClE,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAEzD,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,CAAC;IACvC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC;QACtF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,GAAe;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,kBAAkB,GAAG,QAAQ,OAAO,CAAC,GAAG,EAAE,CAAC;QACvD,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACzD,UAAU,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CACN,0CAA0C,kBAAkB,KAAK,YAAY,CAAC,GAAG,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,IAAY;IACxD,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,IAAY,EAAE,QAAgB;IAC3E,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IACnC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,QAAQ,CAAC;IAC3C,cAAc,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,IAAY;IACxD,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACvC,cAAc,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AASD,6CAA6C;AAC7C,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAkC,CAAC;AACxE,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAkB,CAAC;AACxD,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;AAE7C,kFAAkF;AAClF,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAErD,gFAAgF;AAChF,MAAM,UAAU,mBAAmB,CAAC,YAAgC,EAAE,QAAiB;IACrF,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,+EAA+E;IAC/E,4EAA4E;IAC5E,gFAAgF;IAChF,8EAA8E;IAC9E,sEAAsE;IACtE,6EAA6E;IAC7E,gEAAgE;IAChE,OAAO,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,wBAAwB,CACtC,YAAgC,EAChC,QAAgB;IAEhB,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC;IACzC,0EAA0E;IAC1E,KAAK,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,kBAAkB,EAAE,CAAC;QAC7D,IAAI,UAAU,KAAK,YAAY,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;YAC9D,GAAG,CAAC,IAAI,CACN,qBAAqB,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,2BAA2B,QAAQ,qBAAqB,aAAa,aAAa,CAChI,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,GAAG,CAAC,IAAI,CACN,oBAAoB,QAAQ,yBAAyB,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,CACzH,CAAC;IACJ,CAAC;IACD,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,YAAoB;IAC1E,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,YAAoB,EACpB,cAA0B;IAE1B,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;IAC/C,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7C,qBAAqB,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAClD,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,YAAoB;IAC3D,OAAO,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,YAAoB;IACxD,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,YAAoB;IACjE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzD,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC3C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,YAAoB;IACvD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;QAC5E,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC3C,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,gBAAyB;IAC5E,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC1D,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,YAAY,KAAK,gBAAgB,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC3C,qBAAqB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC1C,IAAI,CAAC;gBAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAAC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC/D,oBAAoB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACzC,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IACD,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,gBAAgB;QAAE,qBAAqB,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAC5E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC;AAChB,CAAC;AAeD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAgC,CAAC;AAElE,qDAAqD;AACrD,MAAM,UAAU,wBAAwB,CACtC,YAAoB,EACpB,aAA+B,EAC/B,WAA0B,IAAI;IAE9B,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE;QAClC,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,MAAM,EAAE,QAAQ;QAChB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;QACxB,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;AACL,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,uBAAuB,CAAC,YAAoB;IAC1D,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;QACxB,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,uBAAuB,CAAC,YAAoB,EAAE,QAAuB;IACnF,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,kBAAkB,CAAC,YAAoB;IACrD,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;QACxB,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,gCAAgC,CAAC,YAAoB;IACnE,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC;QAC9B,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,CAAC;AACH,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,sBAAsB,CAAC,YAAoB;IACzD,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACzC,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,oBAAoB;IAClC,OAAO,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9C,+EAA+E;AAC/E,sEAAsE;AACtE,wEAAwE;AAExE,IAAI,aAAa,GAA4B,IAAI,CAAC;AAElD,+DAA+D;AAC/D,MAAM,UAAU,kBAAkB,CAAC,MAAsB;IACvD,aAAa,GAAG,MAAM,CAAC;AACzB,CAAC;AAED,SAAS,UAAU;IACjB,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IAC3G,OAAO,aAAa,EAAE,CAAC;AACzB,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,IAAY;IAC9D,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB,qEAAqE,CACtE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAsC,CAAC;QACvE,OAAO,GAAG,EAAE,SAAS,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,gDAAgD,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/E,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,IAAY,EAAE,QAAgB;IAC1E,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAc,EAAE,IAAY,EAAE,QAAgB;IAClF,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,EAAE,CAAC,OAAO,CACR,mHAAmH,CACpH,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,8CAA8C,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,IAAY;IAC1D,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,EAAE,CAAC,OAAO,CACR,2DAA2D,CAC5D,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,gDAAgD,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,sBAAsB,CAAC,MAAe;IACpD,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM;YACjB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,uEAAuE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAgE;YAChK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC,GAAG,EAAiE,CAAC;QAE3I,MAAM,MAAM,GAA2C,EAAE,CAAC;QAC1D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACnD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC;QAChD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,mDAAmD,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -148,6 +148,9 @@ async function handleReportProgress(args, ctx) {
|
|
|
148
148
|
}
|
|
149
149
|
log.info(`[report_progress] Consumed ${consumed.length} messages (re-queued ${consumed.filter(m => hasMediaContent(m.message)).length} with media)`);
|
|
150
150
|
}
|
|
151
|
+
else if (hasNewPreviews) {
|
|
152
|
+
log.debug(`[report_progress] Skipped consuming pending messages for thread ${effectiveThreadId} — session superseded; leaving them in queue.`);
|
|
153
|
+
}
|
|
151
154
|
}
|
|
152
155
|
catch (err) {
|
|
153
156
|
// Non-fatal: pending messages will still be picked up by the next
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-tools.js","sourceRoot":"","sources":["../../src/tools/session-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG/D,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAiB,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,6EAA6E;AAC7E,SAAS,eAAe,CAAC,GAA4B;IACnD,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;AACtG,CAAC;AA6BD,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,IAA6B,EAC7B,GAAuB,EACvB,MAAa;IAEb,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,iBAAiB;YACpB,OAAO,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACzC;YACE,OAAO,GAAG,CAAC,WAAW,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,KAAK,UAAU,oBAAoB,CACjC,IAA6B,EAC7B,GAAuB;IAEvB,MAAM,EACJ,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EACxE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EACtD,kBAAkB,EAAE,cAAc,GACnC,GAAG,GAAG,CAAC;IAER,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,WAAW,CAAC,sFAAsF,CAAC,CAAC;IAC7G,CAAC;IAED,gFAAgF;IAChF,gFAAgF;IAChF,iFAAiF;IACjF,IAAI,wBAAwB,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACzE,OAAO,WAAW,CAAC,sFAAsF,CAAC,CAAC;IAC7G,CAAC;IAED,MAAM,UAAU,GACd,OAAO,IAAI,EAAE,OAAO,KAAK,QAAQ;QAC/B,CAAC,CAAE,IAAI,CAAC,OAAkB;QAC1B,CAAC,CAAC,EAAE,CAAC;IAET,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC,4DAA4D,CAAC,CAAC;IACnF,CAAC;IAED,qDAAqD;IACrD,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE3D,oDAAoD;IACpD,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;QACvD,OAAO,GAAG,iBAAiB,CAAC;IAC9B,CAAC;IAED,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACnC,oEAAoE;QACpE,+DAA+D;QAC/D,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC7D,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;gBAC7C,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;oBAChC,MAAM,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;gBAClF,CAAC;gBACD,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,GAAG,CAAC,KAAK,CACP,kEAAkE,YAAY,CAAC,UAAU,CAAC,EAAE,CAC7F,CAAC;gBACF,OAAO,WAAW,CAChB,6EAA6E;oBAC7E,wDAAwD,CACzD,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,KAAK,CACP,iDAAiD,MAAM,EAAE,CAC1D,CAAC;YACF,OAAO,WAAW,CAChB,qDAAqD;gBACrD,iDAAiD,CAClD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,0EAA0E;IAC1E,sEAAsE;IACtE,wEAAwE;IACxE,yDAAyD;IACzD,IAAI,eAAe,GAAa,EAAE,CAAC;IACnC,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAC5D,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,SAAS;YACpD,cAAc,GAAG,IAAI,CAAC;YACtB,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAE9B,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtD,eAAe,CAAC,IAAI,CAClB,GAAG,CAAC,OAAO,CAAC,OAAO;oBACjB,CAAC,CAAC,6EAA6E,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE;oBACpG,CAAC,CAAC,yFAAyF,CAC9F,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAChC,eAAe,CAAC,IAAI,CAClB,GAAG,CAAC,OAAO,CAAC,OAAO;oBACjB,CAAC,CAAC,cAAc,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,IAAI,MAAM,8DAA8D,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE;oBAC3I,CAAC,CAAC,uBAAuB,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,IAAI,MAAM,4DAA4D,CAChI,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC7B,eAAe,CAAC,IAAI,CAClB,oBAAoB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,uCAAuC,CACtF,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAClC,eAAe,CAAC,IAAI,CAClB,iBAAiB,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,oCAAoC,CACrF,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC5B,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,mEAAmE;QACnE,kEAAkE;QAClE,iEAAiE;QACjE,qDAAqD;QACrD,IAAI,cAAc,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,EAAE,iBAAiB,CAAC,EAAE,CAAC;YACvF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;YACvD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,OAAkC,CAAC,CAAC;gBACzE,IAAI,QAAQ,EAAE,CAAC;oBACb,cAAc,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,8BAA8B,QAAQ,CAAC,MAAM,wBAAwB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,OAAkC,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,CAAC;QAClL,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,kEAAkE;QAClE,6CAA6C;QAC7C,GAAG,CAAC,KAAK,CAAC,8DAA8D,GAAG,YAAY,KAAK,CAAC,CAAC,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzI,CAAC;IAED,MAAM,UAAU,GACd,CAAC,eAAe;QACd,CAAC,CAAC,mFAAmF;QACrF,CAAC,CAAC,iCAAiC,CAAC,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAE/E,yDAAyD;IACzD,oBAAoB,CAAC,GAAG,CAAC,WAAW,EAAE;QACpC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;QACtC,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;IAEH,oDAAoD;IACpD,8EAA8E;IAC9E,4EAA4E;IAC5E,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAC/C,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC;YACpC,SAAS,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,GAAG,QAAQ,MAAM,CAAC,CAAC;YAC5D,MAAM,QAAQ,GACZ,WAAW,KAAK,CAAC,IAAI,aAAa,iBAAiB,yBAAyB,UAAU,SAAS,CAAC;YAClG,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;YACnD,GAAG,CAAC,IAAI,CAAC,qDAAqD,QAAQ,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,0CAA0C,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,YAAY,GAChB,eAAe,CAAC,MAAM,GAAG,CAAC;QACxB,CAAC,CAAC,GAAG,UAAU,MAAM;YACrB,mEAAmE;YACnE,oDAAoD,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QAClF,CAAC,CAAC,UAAU,CAAC;IAEjB,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,YAAY;aACnB;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"session-tools.js","sourceRoot":"","sources":["../../src/tools/session-tools.ts"],"names":[],"mappings":"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"}
|