@padua/cli 2.0.15 → 2.0.17
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/README.md +1 -1
- package/dist/commands/login/index.d.ts.map +1 -1
- package/dist/commands/login/index.js +4 -0
- package/dist/commands/login/index.js.map +1 -1
- package/dist/commands/login/version-check.d.ts +9 -0
- package/dist/commands/login/version-check.d.ts.map +1 -0
- package/dist/commands/login/version-check.js +122 -0
- package/dist/commands/login/version-check.js.map +1 -0
- package/dist/mcp/daemon/entry.js +5 -5
- package/dist/mcp/daemon/entry.js.map +1 -1
- package/dist/mcp/server/server.d.ts +11 -2
- package/dist/mcp/server/server.d.ts.map +1 -1
- package/dist/mcp/server/server.js +103 -47
- package/dist/mcp/server/server.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -105,7 +105,7 @@ Steps 5-7 are non-blocking — if a provider fails, the rest of Padua still work
|
|
|
105
105
|
- **Transport:** HTTP with [Streamable HTTP](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http) transport at `POST /mcp`
|
|
106
106
|
- **Auth:** `Authorization: Bearer padua-mcp-local` (fixed token — the server only binds to localhost)
|
|
107
107
|
- **Tokens:** OAuth tokens persisted to `~/.padua/tokens.db` (AES-256-GCM encrypted), proactively refreshed before expiry and lazily refreshed on tool calls
|
|
108
|
-
- **Sessions:**
|
|
108
|
+
- **Sessions:** Multi-session support — multiple Claude Code instances share the daemon concurrently, each with an independent session. Stale sessions are swept after 30 minutes, max 10 concurrent sessions with LRU eviction
|
|
109
109
|
|
|
110
110
|
### IDE Configuration
|
|
111
111
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/login/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/login/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC;;GAEG;AACH,eAAO,MAAM,YAAY,SASH,CAAC"}
|
|
@@ -10,6 +10,7 @@ const config_1 = require("./config");
|
|
|
10
10
|
const sso_1 = require("./sso");
|
|
11
11
|
const types_1 = require("./types");
|
|
12
12
|
const orchestrator_1 = require("./orchestrator");
|
|
13
|
+
const version_check_1 = require("./version-check");
|
|
13
14
|
/**
|
|
14
15
|
* Main login command — authenticates to AWS SSO, CodeArtifact, ECR, and MCP services
|
|
15
16
|
*/
|
|
@@ -29,6 +30,9 @@ async function handleLogin(options) {
|
|
|
29
30
|
printProfiles(noColor);
|
|
30
31
|
return;
|
|
31
32
|
}
|
|
33
|
+
if (!options.quiet) {
|
|
34
|
+
await (0, version_check_1.checkAndPromptUpdate)(noColor);
|
|
35
|
+
}
|
|
32
36
|
const config = await (0, config_1.loadConfig)();
|
|
33
37
|
const profile = (0, types_1.getEffectiveProfile)(options, config ?? undefined);
|
|
34
38
|
if (!(0, sso_1.profileExists)(profile)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/login/index.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,qCAAsC;AACtC,+BAAuD;AACvD,mCAA4D;AAC5D,iDAA6D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/login/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version check and self-update prompt for the login command
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Check if a newer CLI version is available and prompt the user to update.
|
|
6
|
+
* Returns silently if up-to-date, check fails, or user declines.
|
|
7
|
+
*/
|
|
8
|
+
export declare function checkAndPromptUpdate(noColor: boolean): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=version-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../../src/commands/login/version-check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA4D1E"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Version check and self-update prompt for the login command
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.checkAndPromptUpdate = checkAndPromptUpdate;
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const readline = __importStar(require("node:readline"));
|
|
46
|
+
const child_process_1 = require("child_process");
|
|
47
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
48
|
+
/**
|
|
49
|
+
* Check if a newer CLI version is available and prompt the user to update.
|
|
50
|
+
* Returns silently if up-to-date, check fails, or user declines.
|
|
51
|
+
*/
|
|
52
|
+
async function checkAndPromptUpdate(noColor) {
|
|
53
|
+
let currentVersion;
|
|
54
|
+
try {
|
|
55
|
+
const packageJsonPath = path.join(__dirname, '..', '..', '..', 'package.json');
|
|
56
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
57
|
+
currentVersion = packageJson.version;
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const result = (0, child_process_1.spawnSync)('npm', ['view', '@padua/cli', 'version'], {
|
|
63
|
+
shell: false,
|
|
64
|
+
timeout: 10000,
|
|
65
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
66
|
+
});
|
|
67
|
+
if (result.status !== 0 || result.error) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const latestVersion = result.stdout?.toString().trim();
|
|
71
|
+
if (!latestVersion || currentVersion === latestVersion) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const updateMsg = `Update available: ${currentVersion} → ${latestVersion}`;
|
|
75
|
+
if (noColor) {
|
|
76
|
+
console.log(updateMsg);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
console.log(chalk_1.default.yellow(updateMsg));
|
|
80
|
+
}
|
|
81
|
+
const shouldUpdate = await promptYesNo('Run update? [Y/n] ');
|
|
82
|
+
if (!shouldUpdate) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const install = (0, child_process_1.spawnSync)('npm', ['install', '-g', '@padua/cli@latest'], {
|
|
86
|
+
shell: false,
|
|
87
|
+
timeout: 60000,
|
|
88
|
+
stdio: 'inherit',
|
|
89
|
+
});
|
|
90
|
+
if (install.status !== 0 || install.error) {
|
|
91
|
+
const failMsg = 'Update failed. You can update manually: npm install -g @padua/cli@latest';
|
|
92
|
+
if (noColor) {
|
|
93
|
+
console.error(failMsg);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
console.error(chalk_1.default.red(failMsg));
|
|
97
|
+
}
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
const successMsg = `Updated to ${latestVersion}. Please re-run: padua login`;
|
|
101
|
+
if (noColor) {
|
|
102
|
+
console.log(successMsg);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
console.log(chalk_1.default.green(successMsg));
|
|
106
|
+
}
|
|
107
|
+
process.exit(0);
|
|
108
|
+
}
|
|
109
|
+
function promptYesNo(question) {
|
|
110
|
+
const rl = readline.createInterface({
|
|
111
|
+
input: process.stdin,
|
|
112
|
+
output: process.stdout,
|
|
113
|
+
});
|
|
114
|
+
return new Promise((resolve) => {
|
|
115
|
+
rl.question(question, (answer) => {
|
|
116
|
+
rl.close();
|
|
117
|
+
const trimmed = answer.trim().toLowerCase();
|
|
118
|
+
resolve(trimmed === '' || trimmed === 'y');
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=version-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../../src/commands/login/version-check.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/daemon/entry.js
CHANGED
|
@@ -121,11 +121,11 @@ async function main() {
|
|
|
121
121
|
logger.debug('Package version resolved', { version });
|
|
122
122
|
const tokenStore = wireProviders();
|
|
123
123
|
logger.debug('Creating MCP server', { port, hasBearer: bearerToken.length > 0 });
|
|
124
|
-
const server = (0, server_1.createMcpServer)({ port, bearerToken, version, logLevel }, getProviderStatuses)
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
logger.debug('Provider tools registered
|
|
124
|
+
const server = (0, server_1.createMcpServer)({ port, bearerToken, version, logLevel }, getProviderStatuses, (mcpServer) => {
|
|
125
|
+
const adapter = new adapter_1.McpServerAdapter(mcpServer);
|
|
126
|
+
registry.registerAll(adapter);
|
|
127
|
+
});
|
|
128
|
+
logger.debug('Provider tools registered via registerTools callback');
|
|
129
129
|
// Start the HTTP + MCP transport.
|
|
130
130
|
await server.start();
|
|
131
131
|
logger.debug('HTTP server listening', { address: `127.0.0.1:${port}` });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../../src/mcp/daemon/entry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../../src/mcp/daemon/entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,9 +14,18 @@ export interface McpServerConfig {
|
|
|
14
14
|
}
|
|
15
15
|
export interface McpServerInstance {
|
|
16
16
|
httpServer: Server;
|
|
17
|
-
mcpServer: McpServer;
|
|
18
17
|
start(): Promise<void>;
|
|
19
18
|
stop(): Promise<void>;
|
|
20
19
|
}
|
|
21
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Creates the MCP HTTP server with multi-session support.
|
|
22
|
+
*
|
|
23
|
+
* Each MCP client gets its own McpServer + Transport pair so multiple Claude
|
|
24
|
+
* Code instances can share the daemon without interfering. Stale sessions
|
|
25
|
+
* (no activity for 30 minutes) are swept automatically.
|
|
26
|
+
*
|
|
27
|
+
* @param registerTools — called on every new McpServer to register provider
|
|
28
|
+
* tools and resources. Omit for a bare server (useful in tests).
|
|
29
|
+
*/
|
|
30
|
+
export declare function createMcpServer(config: McpServerConfig, getProviderStatuses: () => Record<string, string>, registerTools?: (mcpServer: McpServer) => void): McpServerInstance;
|
|
22
31
|
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/server/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAmC,MAAM,WAAW,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/server/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAmC,MAAM,WAAW,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuBpE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAqGD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,eAAe,EACvB,mBAAmB,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjD,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,GAC7C,iBAAiB,CAuMnB"}
|
|
@@ -10,6 +10,15 @@ const ratelimit_1 = require("./ratelimit");
|
|
|
10
10
|
const health_1 = require("./health");
|
|
11
11
|
const routes_1 = require("./routes");
|
|
12
12
|
const logging_1 = require("./logging");
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Constants
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
const SESSION_TTL_MS = 30 * 60 * 1000; // 30 minutes of inactivity
|
|
17
|
+
const SWEEP_INTERVAL_MS = 5 * 60 * 1000; // sweep every 5 minutes
|
|
18
|
+
const MAX_SESSIONS = 10;
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Helpers
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
13
22
|
function runMiddleware(req, res, middlewares, final) {
|
|
14
23
|
let index = 0;
|
|
15
24
|
function next() {
|
|
@@ -69,66 +78,99 @@ function buildRequestHandler(authMiddleware, rateLimiter, healthHandler, logger,
|
|
|
69
78
|
});
|
|
70
79
|
};
|
|
71
80
|
}
|
|
72
|
-
|
|
81
|
+
// ---------------------------------------------------------------------------
|
|
82
|
+
// Factory
|
|
83
|
+
// ---------------------------------------------------------------------------
|
|
84
|
+
/**
|
|
85
|
+
* Creates the MCP HTTP server with multi-session support.
|
|
86
|
+
*
|
|
87
|
+
* Each MCP client gets its own McpServer + Transport pair so multiple Claude
|
|
88
|
+
* Code instances can share the daemon without interfering. Stale sessions
|
|
89
|
+
* (no activity for 30 minutes) are swept automatically.
|
|
90
|
+
*
|
|
91
|
+
* @param registerTools — called on every new McpServer to register provider
|
|
92
|
+
* tools and resources. Omit for a bare server (useful in tests).
|
|
93
|
+
*/
|
|
94
|
+
function createMcpServer(config, getProviderStatuses, registerTools) {
|
|
73
95
|
const logger = (0, logging_1.createLogger)(config.logDir, config.logLevel);
|
|
74
96
|
const maxBodySize = config.maxBodySize ?? 4 * 1024 * 1024;
|
|
75
97
|
const startTime = Date.now();
|
|
76
|
-
const mcpServer = new mcp_js_1.McpServer({
|
|
77
|
-
name: 'padua-mcp',
|
|
78
|
-
version: config.version,
|
|
79
|
-
});
|
|
80
98
|
// ---------------------------------------------------------------------------
|
|
81
|
-
//
|
|
99
|
+
// Multi-session transport management
|
|
82
100
|
// ---------------------------------------------------------------------------
|
|
83
101
|
const activeSessions = new Map();
|
|
84
|
-
let currentTransport = null;
|
|
85
102
|
/**
|
|
86
|
-
* Creates a new
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
* fresh transport. Tool handlers registered on McpServer survive across
|
|
90
|
-
* reconnections.
|
|
103
|
+
* Creates a new McpServer + Transport pair for an incoming MCP session.
|
|
104
|
+
* Each session is independent — tool handlers share the same providers/tokens
|
|
105
|
+
* but each McpServer has its own Protocol connection.
|
|
91
106
|
*/
|
|
92
|
-
async function
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
107
|
+
async function createSession() {
|
|
108
|
+
// Evict the oldest session when at capacity
|
|
109
|
+
if (activeSessions.size >= MAX_SESSIONS) {
|
|
110
|
+
let oldestId = null;
|
|
111
|
+
let oldestActivity = Infinity;
|
|
112
|
+
for (const [id, session] of activeSessions) {
|
|
113
|
+
if (session.lastActivity < oldestActivity) {
|
|
114
|
+
oldestActivity = session.lastActivity;
|
|
115
|
+
oldestId = id;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (oldestId) {
|
|
119
|
+
const old = activeSessions.get(oldestId);
|
|
120
|
+
logger.info('Evicting oldest MCP session at capacity', { sessionId: oldestId });
|
|
121
|
+
await old.transport.close().catch(() => { });
|
|
122
|
+
await old.mcpServer.close().catch(() => { });
|
|
123
|
+
activeSessions.delete(oldestId);
|
|
100
124
|
}
|
|
101
|
-
|
|
102
|
-
|
|
125
|
+
}
|
|
126
|
+
const sessionMcpServer = new mcp_js_1.McpServer({
|
|
127
|
+
name: 'padua-mcp',
|
|
128
|
+
version: config.version,
|
|
129
|
+
});
|
|
130
|
+
if (registerTools) {
|
|
131
|
+
registerTools(sessionMcpServer);
|
|
103
132
|
}
|
|
104
133
|
const transport = new streamableHttp_js_1.StreamableHTTPServerTransport({
|
|
105
134
|
sessionIdGenerator: () => (0, node_crypto_1.randomUUID)(),
|
|
106
135
|
onsessioninitialized: (sessionId) => {
|
|
107
|
-
activeSessions.set(sessionId,
|
|
108
|
-
|
|
136
|
+
activeSessions.set(sessionId, {
|
|
137
|
+
mcpServer: sessionMcpServer,
|
|
138
|
+
transport,
|
|
139
|
+
lastActivity: Date.now(),
|
|
140
|
+
});
|
|
141
|
+
logger.info('MCP session initialized', {
|
|
142
|
+
sessionId,
|
|
143
|
+
activeSessions: activeSessions.size,
|
|
144
|
+
});
|
|
109
145
|
},
|
|
110
146
|
onsessionclosed: (sessionId) => {
|
|
111
|
-
activeSessions.
|
|
112
|
-
|
|
147
|
+
const session = activeSessions.get(sessionId);
|
|
148
|
+
if (session) {
|
|
149
|
+
session.mcpServer.close().catch(() => { });
|
|
150
|
+
activeSessions.delete(sessionId);
|
|
151
|
+
}
|
|
152
|
+
logger.info('MCP session closed', {
|
|
153
|
+
sessionId,
|
|
154
|
+
activeSessions: activeSessions.size,
|
|
155
|
+
});
|
|
113
156
|
},
|
|
114
157
|
});
|
|
115
|
-
await
|
|
116
|
-
currentTransport = transport;
|
|
158
|
+
await sessionMcpServer.connect(transport);
|
|
117
159
|
return transport;
|
|
118
160
|
}
|
|
119
161
|
/**
|
|
120
|
-
* Routes an incoming request to the correct session transport.
|
|
121
|
-
* transport, or null if a 404 was already sent (unknown session ID).
|
|
162
|
+
* Routes an incoming request to the correct session transport.
|
|
122
163
|
*
|
|
123
164
|
* - Requests with a session ID are routed to that session (404 if unknown).
|
|
124
|
-
* - Requests without a session ID
|
|
125
|
-
*
|
|
165
|
+
* - Requests without a session ID create a new session (new initialize).
|
|
166
|
+
*
|
|
167
|
+
* Returns the transport, or null if a response was already sent.
|
|
126
168
|
*/
|
|
127
169
|
async function resolveTransport(req, res, correlationId) {
|
|
128
170
|
const sessionId = req.headers['mcp-session-id'];
|
|
129
171
|
if (sessionId) {
|
|
130
|
-
const
|
|
131
|
-
if (!
|
|
172
|
+
const session = activeSessions.get(sessionId);
|
|
173
|
+
if (!session) {
|
|
132
174
|
logger.debug('Unknown MCP session', { sessionId, correlationId });
|
|
133
175
|
res.writeHead(404, { 'Content-Type': 'application/json' });
|
|
134
176
|
res.end(JSON.stringify({
|
|
@@ -136,15 +178,31 @@ function createMcpServer(config, getProviderStatuses) {
|
|
|
136
178
|
}));
|
|
137
179
|
return null;
|
|
138
180
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
// No session ID — reuse un-initialized transport or acquire a new one.
|
|
142
|
-
if (currentTransport && activeSessions.size === 0) {
|
|
143
|
-
return currentTransport;
|
|
181
|
+
session.lastActivity = Date.now();
|
|
182
|
+
return session.transport;
|
|
144
183
|
}
|
|
145
|
-
|
|
184
|
+
// No session ID — new session (initialize expected)
|
|
185
|
+
return createSession();
|
|
146
186
|
}
|
|
147
187
|
// ---------------------------------------------------------------------------
|
|
188
|
+
// Stale session sweep
|
|
189
|
+
// ---------------------------------------------------------------------------
|
|
190
|
+
const sweepTimer = setInterval(() => {
|
|
191
|
+
const now = Date.now();
|
|
192
|
+
for (const [id, session] of activeSessions) {
|
|
193
|
+
if (now - session.lastActivity > SESSION_TTL_MS) {
|
|
194
|
+
logger.info('Closing stale MCP session', {
|
|
195
|
+
sessionId: id,
|
|
196
|
+
idleMs: now - session.lastActivity,
|
|
197
|
+
});
|
|
198
|
+
session.transport.close().catch(() => { });
|
|
199
|
+
session.mcpServer.close().catch(() => { });
|
|
200
|
+
activeSessions.delete(id);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}, SWEEP_INTERVAL_MS);
|
|
204
|
+
sweepTimer.unref();
|
|
205
|
+
// ---------------------------------------------------------------------------
|
|
148
206
|
// Request handling
|
|
149
207
|
// ---------------------------------------------------------------------------
|
|
150
208
|
const authMiddleware = (0, auth_1.createAuthMiddleware)(config.bearerToken);
|
|
@@ -182,18 +240,16 @@ function createMcpServer(config, getProviderStatuses) {
|
|
|
182
240
|
});
|
|
183
241
|
}
|
|
184
242
|
async function stop() {
|
|
185
|
-
|
|
186
|
-
|
|
243
|
+
clearInterval(sweepTimer);
|
|
244
|
+
for (const session of activeSessions.values()) {
|
|
245
|
+
await session.transport.close().catch(() => { });
|
|
246
|
+
await session.mcpServer.close().catch(() => { });
|
|
187
247
|
}
|
|
188
248
|
activeSessions.clear();
|
|
189
|
-
if (currentTransport) {
|
|
190
|
-
await mcpServer.close();
|
|
191
|
-
currentTransport = null;
|
|
192
|
-
}
|
|
193
249
|
await new Promise((resolve, reject) => {
|
|
194
250
|
httpServer.close((err) => (err ? reject(err) : resolve()));
|
|
195
251
|
});
|
|
196
252
|
}
|
|
197
|
-
return { httpServer,
|
|
253
|
+
return { httpServer, start, stop };
|
|
198
254
|
}
|
|
199
255
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mcp/server/server.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mcp/server/server.ts"],"names":[],"mappings":"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"}
|