@memoraone/mcp 0.1.59 → 0.1.60
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/cli.cjs +1 -1
- package/dist/gateway.cjs +25 -0
- package/package.json +1 -1
package/dist/cli.cjs
CHANGED
package/dist/gateway.cjs
CHANGED
|
@@ -14130,6 +14130,19 @@ async function removeSession(sessionId) {
|
|
|
14130
14130
|
} catch {
|
|
14131
14131
|
}
|
|
14132
14132
|
}
|
|
14133
|
+
function pauseHeartbeatWhenGetSseCloses(req, res, sessionId) {
|
|
14134
|
+
let paused = false;
|
|
14135
|
+
const pause = () => {
|
|
14136
|
+
if (paused) return;
|
|
14137
|
+
if (!res.headersSent || res.statusCode !== 200) return;
|
|
14138
|
+
paused = true;
|
|
14139
|
+
const session = sessionsById.get(sessionId);
|
|
14140
|
+
if (!session || session.closed) return;
|
|
14141
|
+
session.heartbeat?.stop();
|
|
14142
|
+
};
|
|
14143
|
+
res.once("close", pause);
|
|
14144
|
+
req.socket?.once("close", pause);
|
|
14145
|
+
}
|
|
14133
14146
|
async function closeGatewayMcpSessionsForWorkspace(workspaceRoot) {
|
|
14134
14147
|
const root = path50.resolve(workspaceRoot);
|
|
14135
14148
|
const ids = [...sessionsById.values()].filter((s) => s.workspaceRoot === root).map((s) => s.sessionId);
|
|
@@ -14258,6 +14271,18 @@ async function handleAuthenticatedGatewayMcpRequest(req, res, auth, options = {}
|
|
|
14258
14271
|
await existing.transport.handleRequest(req, res, parsed3.body);
|
|
14259
14272
|
return;
|
|
14260
14273
|
}
|
|
14274
|
+
if (method === "GET") {
|
|
14275
|
+
const heartbeat = existing.heartbeat;
|
|
14276
|
+
if (heartbeat && !heartbeat.isRunning()) {
|
|
14277
|
+
await heartbeat.start();
|
|
14278
|
+
}
|
|
14279
|
+
pauseHeartbeatWhenGetSseCloses(req, res, existing.sessionId);
|
|
14280
|
+
try {
|
|
14281
|
+
await existing.transport.handleRequest(req, res);
|
|
14282
|
+
} catch {
|
|
14283
|
+
}
|
|
14284
|
+
return;
|
|
14285
|
+
}
|
|
14261
14286
|
await existing.transport.handleRequest(req, res);
|
|
14262
14287
|
return;
|
|
14263
14288
|
}
|