UNPKG

@kya-os/mcp-i

Version:

The TypeScript MCP framework with identity features built-in

49 lines (48 loc) 2.53 kB
"use strict"; /** * Session Management for XMCP-I Runtime — Node.js adapter * * Re-exports SessionManager from @kya-os/mcp-i-core and wires in * NodeCryptoProvider as the default. All existing call sites remain * compatible: `new SessionManager()` and `new SessionManager(config)` work. * * Requirements: 4.5-4.9, 19.1-19.2 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultSessionManager = exports.SessionManager = exports.validateHandshakeFormat = exports.createHandshakeRequest = void 0; const mcp_i_runtime_1 = require("@kya-os/mcp-i-runtime"); Object.defineProperty(exports, "createHandshakeRequest", { enumerable: true, get: function () { return mcp_i_runtime_1.createHandshakeRequest; } }); Object.defineProperty(exports, "validateHandshakeFormat", { enumerable: true, get: function () { return mcp_i_runtime_1.validateHandshakeFormat; } }); const mcp_i_runtime_2 = require("@kya-os/mcp-i-runtime"); // C2 (#2916): the CJS/ESM (TS1479) blocker is resolved — PR-0's loadDifCore() // seam (mcp-i-core/src/runtime/dif-core.ts) reaches the ESM-only @kya-os/mcp from // CJS. The SessionManager re-home stays deferred on the remaining blocker: DIF // emits kyaos_* session IDs, a wire-format change owned by the C4 (#2918) // dual-accept window. Keep importing the OLD SessionManager from @kya-os/mcp-i-core // until then. const node_providers_1 = require("../providers/node-providers"); function resolveNodeConfig(config) { const skewEnv = process.env["XMCP_I_TS_SKEW_SEC"]; const ttlEnv = process.env["XMCP_I_SESSION_TTL_MIN"]; const parsedSkew = skewEnv ? parseInt(skewEnv, 10) : undefined; const parsedTtl = ttlEnv ? parseInt(ttlEnv, 10) : undefined; return { ...config, timestampSkewSeconds: config.timestampSkewSeconds ?? (parsedSkew !== undefined && !isNaN(parsedSkew) ? parsedSkew : undefined), sessionTtlMinutes: config.sessionTtlMinutes ?? (parsedTtl !== undefined && !isNaN(parsedTtl) ? parsedTtl : undefined), }; } class SessionManager extends mcp_i_runtime_1.SessionManager { constructor(configOrCrypto, config) { if (configOrCrypto instanceof mcp_i_runtime_2.CryptoProvider) { super(configOrCrypto, resolveNodeConfig(config ?? {})); } else { super(new node_providers_1.NodeCryptoProvider(), resolveNodeConfig(configOrCrypto ?? {})); } } } exports.SessionManager = SessionManager; exports.defaultSessionManager = new SessionManager();