@ifc-lite/mcp 0.22.1 → 0.24.1
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 +82 -0
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +5 -0
- package/dist/context.js.map +1 -1
- package/dist/errors.d.ts +2 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -0
- package/dist/errors.js.map +1 -1
- package/dist/headless-backend-align.d.ts +6 -0
- package/dist/headless-backend-align.d.ts.map +1 -0
- package/dist/headless-backend-align.js +35 -0
- package/dist/headless-backend-align.js.map +1 -0
- package/dist/headless-backend-modelling.d.ts +50 -0
- package/dist/headless-backend-modelling.d.ts.map +1 -0
- package/dist/headless-backend-modelling.js +128 -0
- package/dist/headless-backend-modelling.js.map +1 -0
- package/dist/headless-backend-room.d.ts +8 -0
- package/dist/headless-backend-room.d.ts.map +1 -0
- package/dist/headless-backend-room.js +24 -0
- package/dist/headless-backend-room.js.map +1 -0
- package/dist/headless-backend-store-stubs.d.ts +5 -4
- package/dist/headless-backend-store-stubs.d.ts.map +1 -1
- package/dist/headless-backend-store-stubs.js +1 -17
- package/dist/headless-backend-store-stubs.js.map +1 -1
- package/dist/headless-backend-store.d.ts +8 -0
- package/dist/headless-backend-store.d.ts.map +1 -0
- package/dist/headless-backend-store.js +38 -0
- package/dist/headless-backend-store.js.map +1 -0
- package/dist/headless-backend.d.ts +4 -1
- package/dist/headless-backend.d.ts.map +1 -1
- package/dist/headless-backend.js +8 -33
- package/dist/headless-backend.js.map +1 -1
- package/dist/headless-native-geometry.d.ts +6 -0
- package/dist/headless-native-geometry.d.ts.map +1 -0
- package/dist/headless-native-geometry.js +31 -0
- package/dist/headless-native-geometry.js.map +1 -0
- package/dist/headless-room-geometry.d.ts +9 -0
- package/dist/headless-room-geometry.d.ts.map +1 -0
- package/dist/headless-room-geometry.js +66 -0
- package/dist/headless-room-geometry.js.map +1 -0
- package/dist/protocol/types.d.ts +1 -0
- package/dist/protocol/types.d.ts.map +1 -1
- package/dist/resources/providers.d.ts.map +1 -1
- package/dist/resources/providers.js +10 -1
- package/dist/resources/providers.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +5 -17
- package/dist/server.js.map +1 -1
- package/dist/session-cleanup.d.ts +5 -0
- package/dist/session-cleanup.d.ts.map +1 -0
- package/dist/session-cleanup.js +36 -0
- package/dist/session-cleanup.js.map +1 -0
- package/dist/test/live-tool-session.d.ts +9 -0
- package/dist/test/live-tool-session.d.ts.map +1 -0
- package/dist/test/live-tool-session.js +30 -0
- package/dist/test/live-tool-session.js.map +1 -0
- package/dist/tools/bcf.js +2 -2
- package/dist/tools/bcf.js.map +1 -1
- package/dist/tools/copy-elements.d.ts +4 -0
- package/dist/tools/copy-elements.d.ts.map +1 -0
- package/dist/tools/copy-elements.js +76 -0
- package/dist/tools/copy-elements.js.map +1 -0
- package/dist/tools/design-place.d.ts +3 -0
- package/dist/tools/design-place.d.ts.map +1 -0
- package/dist/tools/design-place.js +79 -0
- package/dist/tools/design-place.js.map +1 -0
- package/dist/tools/discovery.js +3 -3
- package/dist/tools/discovery.js.map +1 -1
- package/dist/tools/export.js +7 -7
- package/dist/tools/export.js.map +1 -1
- package/dist/tools/flow-ai.d.ts +6 -0
- package/dist/tools/flow-ai.d.ts.map +1 -0
- package/dist/tools/flow-ai.js +23 -0
- package/dist/tools/flow-ai.js.map +1 -0
- package/dist/tools/flow-host.d.ts +1 -1
- package/dist/tools/flow-host.d.ts.map +1 -1
- package/dist/tools/flow-host.js +5 -1
- package/dist/tools/flow-host.js.map +1 -1
- package/dist/tools/flow-review-host.d.ts +28 -0
- package/dist/tools/flow-review-host.d.ts.map +1 -0
- package/dist/tools/flow-review-host.js +142 -0
- package/dist/tools/flow-review-host.js.map +1 -0
- package/dist/tools/flow.d.ts.map +1 -1
- package/dist/tools/flow.js +147 -93
- package/dist/tools/flow.js.map +1 -1
- package/dist/tools/hosted-edit.d.ts +4 -0
- package/dist/tools/hosted-edit.d.ts.map +1 -0
- package/dist/tools/hosted-edit.js +37 -0
- package/dist/tools/hosted-edit.js.map +1 -0
- package/dist/tools/hosted-place.d.ts +3 -0
- package/dist/tools/hosted-place.d.ts.map +1 -0
- package/dist/tools/hosted-place.js +63 -0
- package/dist/tools/hosted-place.js.map +1 -0
- package/dist/tools/ids-accessor.d.ts +2 -1
- package/dist/tools/ids-accessor.d.ts.map +1 -1
- package/dist/tools/ids-accessor.js.map +1 -1
- package/dist/tools/ids-authoring-model.d.ts +3 -0
- package/dist/tools/ids-authoring-model.d.ts.map +1 -0
- package/dist/tools/ids-authoring-model.js +112 -0
- package/dist/tools/ids-authoring-model.js.map +1 -0
- package/dist/tools/ids-authoring.d.ts +3 -0
- package/dist/tools/ids-authoring.d.ts.map +1 -0
- package/dist/tools/ids-authoring.js +202 -0
- package/dist/tools/ids-authoring.js.map +1 -0
- package/dist/tools/ids-schema.d.ts +3 -0
- package/dist/tools/ids-schema.d.ts.map +1 -0
- package/dist/tools/ids-schema.js +91 -0
- package/dist/tools/ids-schema.js.map +1 -0
- package/dist/tools/index.d.ts +5 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +8 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/layer-store.d.ts +2 -0
- package/dist/tools/layer-store.d.ts.map +1 -1
- package/dist/tools/layer-store.js +4 -0
- package/dist/tools/layer-store.js.map +1 -1
- package/dist/tools/mutate.d.ts.map +1 -1
- package/dist/tools/mutate.js +20 -64
- package/dist/tools/mutate.js.map +1 -1
- package/dist/tools/mutation-undo.d.ts +6 -0
- package/dist/tools/mutation-undo.d.ts.map +1 -0
- package/dist/tools/mutation-undo.js +63 -0
- package/dist/tools/mutation-undo.js.map +1 -0
- package/dist/tools/physical-edit.d.ts +4 -0
- package/dist/tools/physical-edit.d.ts.map +1 -0
- package/dist/tools/physical-edit.js +77 -0
- package/dist/tools/physical-edit.js.map +1 -0
- package/dist/tools/query-tools.d.ts +3 -0
- package/dist/tools/query-tools.d.ts.map +1 -0
- package/dist/tools/query-tools.js +8 -0
- package/dist/tools/query-tools.js.map +1 -0
- package/dist/tools/query.d.ts +1 -1
- package/dist/tools/query.d.ts.map +1 -1
- package/dist/tools/query.js +4 -4
- package/dist/tools/query.js.map +1 -1
- package/dist/tools/room-command.d.ts +6 -0
- package/dist/tools/room-command.d.ts.map +1 -0
- package/dist/tools/room-command.js +75 -0
- package/dist/tools/room-command.js.map +1 -0
- package/dist/tools/util.d.ts +10 -0
- package/dist/tools/util.d.ts.map +1 -1
- package/dist/tools/util.js +13 -1
- package/dist/tools/util.js.map +1 -1
- package/dist/tools/validation.d.ts +9 -0
- package/dist/tools/validation.d.ts.map +1 -1
- package/dist/tools/validation.js +3 -3
- package/dist/tools/validation.js.map +1 -1
- package/dist/tools/wall-join.d.ts +3 -0
- package/dist/tools/wall-join.d.ts.map +1 -0
- package/dist/tools/wall-join.js +39 -0
- package/dist/tools/wall-join.js.map +1 -0
- package/dist/transport/http-helpers.d.ts +85 -0
- package/dist/transport/http-helpers.d.ts.map +1 -0
- package/dist/transport/http-helpers.js +149 -0
- package/dist/transport/http-helpers.js.map +1 -0
- package/dist/transport/http.d.ts +14 -1
- package/dist/transport/http.d.ts.map +1 -1
- package/dist/transport/http.js +80 -90
- package/dist/transport/http.js.map +1 -1
- package/dist/validate.d.ts +1 -1
- package/dist/validate.js +3 -0
- package/dist/validate.js.map +1 -1
- package/package.json +24 -21
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
/**
|
|
5
|
+
* Strict scope identity check used when reusing an HTTP session — both the
|
|
6
|
+
* permission set and any narrowing (model_ids, user, session) must match
|
|
7
|
+
* what the session was created with. We sort the scopes set so callers
|
|
8
|
+
* that pass them in different orders still compare equal.
|
|
9
|
+
*/
|
|
10
|
+
export function sameScope(a, b) {
|
|
11
|
+
if (a === b)
|
|
12
|
+
return true;
|
|
13
|
+
if (a.user !== b.user || a.session !== b.session)
|
|
14
|
+
return false;
|
|
15
|
+
const as = [...a.scopes].sort();
|
|
16
|
+
const bs = [...b.scopes].sort();
|
|
17
|
+
if (as.length !== bs.length || as.some((s, i) => s !== bs[i]))
|
|
18
|
+
return false;
|
|
19
|
+
const am = a.modelIds ? [...a.modelIds].sort() : undefined;
|
|
20
|
+
const bm = b.modelIds ? [...b.modelIds].sort() : undefined;
|
|
21
|
+
if ((am?.length ?? 0) !== (bm?.length ?? 0))
|
|
22
|
+
return false;
|
|
23
|
+
if (am && bm && am.some((m, i) => m !== bm[i]))
|
|
24
|
+
return false;
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Reflect CORS headers ONLY when the request carries an Origin we explicitly
|
|
29
|
+
* allow. We never emit a wildcard `Access-Control-Allow-Origin` — that would
|
|
30
|
+
* let any web page read JSON-RPC responses cross-origin. When `origin` is not
|
|
31
|
+
* allowlisted we emit no CORS headers, so the browser blocks the response.
|
|
32
|
+
*/
|
|
33
|
+
export function setCors(res, origin, allowed) {
|
|
34
|
+
if (!origin || !allowed.has(origin))
|
|
35
|
+
return;
|
|
36
|
+
res.setHeader('Access-Control-Allow-Origin', origin);
|
|
37
|
+
res.setHeader('Vary', 'Origin');
|
|
38
|
+
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, DELETE, OPTIONS');
|
|
39
|
+
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, Mcp-Session-Id');
|
|
40
|
+
res.setHeader('Access-Control-Expose-Headers', 'Mcp-Session-Id');
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Extract the host name from a `Host` header, stripping the port. Handles the
|
|
44
|
+
* bracketed IPv6 literal form (`[::1]:8765` -> `::1`).
|
|
45
|
+
*/
|
|
46
|
+
export function parseHostHeader(raw) {
|
|
47
|
+
if (!raw)
|
|
48
|
+
return undefined;
|
|
49
|
+
const value = raw.trim();
|
|
50
|
+
if (value.startsWith('[')) {
|
|
51
|
+
const end = value.indexOf(']');
|
|
52
|
+
return end > 0 ? value.slice(1, end) : value;
|
|
53
|
+
}
|
|
54
|
+
return value.split(':')[0];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Refuse limits that would silently disable the policy: with `NaN` every
|
|
58
|
+
* comparison is false, so `maxSessions: NaN` never caps and `sessionIdleMs: NaN`
|
|
59
|
+
* lets a session be reclaimed at once.
|
|
60
|
+
*/
|
|
61
|
+
export function assertSessionLimits(opts) {
|
|
62
|
+
const { maxSessions, sessionIdleMs } = opts;
|
|
63
|
+
if (maxSessions !== undefined && !(Number.isInteger(maxSessions) && maxSessions >= 1)) {
|
|
64
|
+
throw new RangeError(`maxSessions must be an integer >= 1, got ${String(maxSessions)}`);
|
|
65
|
+
}
|
|
66
|
+
if (sessionIdleMs !== undefined && !(Number.isFinite(sessionIdleMs) && sessionIdleMs >= 0)) {
|
|
67
|
+
throw new RangeError(`sessionIdleMs must be a finite number >= 0, got ${String(sessionIdleMs)}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export const DEFAULT_MAX_SESSIONS = 1000;
|
|
71
|
+
export const DEFAULT_SESSION_IDLE_MS = 30 * 60_000;
|
|
72
|
+
/**
|
|
73
|
+
* Pick up to `need` sessions that are safe to end, oldest `lastSeen` first.
|
|
74
|
+
* Safe means all four hold: no open SSE stream, no request in flight, inactive
|
|
75
|
+
* for at least `idleMs`, and no unpublished layer drafts. Ending a session
|
|
76
|
+
* destroys its drafts and they cannot be recovered, so one that holds any is
|
|
77
|
+
* never a candidate. Single O(n) scan; allocates only for sessions that qualify.
|
|
78
|
+
*/
|
|
79
|
+
export function pickReclaimable(sessions, idleMs, need, draftCount, now = Date.now()) {
|
|
80
|
+
if (need <= 0)
|
|
81
|
+
return [];
|
|
82
|
+
const safe = [];
|
|
83
|
+
for (const [id, s] of sessions) {
|
|
84
|
+
if (s.sseClients.size > 0)
|
|
85
|
+
continue;
|
|
86
|
+
if (s.inFlight > 0)
|
|
87
|
+
continue;
|
|
88
|
+
if (now - s.lastSeen < idleMs)
|
|
89
|
+
continue;
|
|
90
|
+
if (draftCount(id) > 0)
|
|
91
|
+
continue;
|
|
92
|
+
safe.push({ id, lastSeen: s.lastSeen });
|
|
93
|
+
}
|
|
94
|
+
safe.sort((x, y) => x.lastSeen - y.lastSeen);
|
|
95
|
+
return safe.slice(0, need).map((c) => c.id);
|
|
96
|
+
}
|
|
97
|
+
/** 503 for an `initialize` at the session limit when no session can be ended safely. */
|
|
98
|
+
export function sendSessionCapacity(res) {
|
|
99
|
+
res.statusCode = 503;
|
|
100
|
+
res.setHeader('Content-Type', 'application/json');
|
|
101
|
+
res.end(JSON.stringify({
|
|
102
|
+
error: 'session-capacity',
|
|
103
|
+
message: 'The server is at its session limit and no session can be ended safely: every one is recently active, has a request in flight or an open event stream, or holds unpublished layer drafts. No session was ended. End a session you no longer need with DELETE, or retry later.',
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
/** 404 for a session id we do not hold; tells the client why it may be gone and what to do. */
|
|
107
|
+
export function sendUnknownSession(res) {
|
|
108
|
+
res.statusCode = 404;
|
|
109
|
+
res.setHeader('Content-Type', 'application/json');
|
|
110
|
+
res.end(JSON.stringify({
|
|
111
|
+
error: 'unknown-session',
|
|
112
|
+
message: 'Unknown session. It was ended with DELETE, or the server ended it after it sat idle, holding no unpublished layer drafts, while the server was at its session limit. Send initialize without Mcp-Session-Id to start a new session.',
|
|
113
|
+
}));
|
|
114
|
+
}
|
|
115
|
+
export function writeSse(res, message) {
|
|
116
|
+
res.write(`data: ${JSON.stringify(message)}\n\n`);
|
|
117
|
+
}
|
|
118
|
+
/** Reads the request body; `holder` counts as busy while the upload runs and active when it ends, however it ends. */
|
|
119
|
+
export async function readBody(req, max, holder) {
|
|
120
|
+
if (holder)
|
|
121
|
+
holder.inFlight++;
|
|
122
|
+
try {
|
|
123
|
+
return await readBodyChunks(req, max);
|
|
124
|
+
}
|
|
125
|
+
finally {
|
|
126
|
+
if (holder) {
|
|
127
|
+
holder.inFlight--;
|
|
128
|
+
holder.lastSeen = Date.now();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
function readBodyChunks(req, max) {
|
|
133
|
+
return new Promise((resolve, reject) => {
|
|
134
|
+
let total = 0;
|
|
135
|
+
const chunks = [];
|
|
136
|
+
req.on('data', (chunk) => {
|
|
137
|
+
total += chunk.length;
|
|
138
|
+
if (total > max) {
|
|
139
|
+
reject(new Error('Request body too large'));
|
|
140
|
+
req.destroy();
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
chunks.push(chunk);
|
|
144
|
+
});
|
|
145
|
+
req.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
|
|
146
|
+
req.on('error', reject);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=http-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-helpers.js","sourceRoot":"","sources":["../../src/transport/http-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/transport/http.d.ts
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
import { IncomingMessage } from 'node:http';
|
|
20
20
|
import { MCPServer } from '../server.js';
|
|
21
21
|
import { AuthScope } from '../auth/scope.js';
|
|
22
|
+
import { type SessionCapacityOptions } from './http-helpers.js';
|
|
22
23
|
export interface HttpAuthenticator {
|
|
23
24
|
/**
|
|
24
25
|
* Called for every inbound request. Returns the auth scope for the caller,
|
|
@@ -38,7 +39,7 @@ export interface SessionFactory {
|
|
|
38
39
|
*/
|
|
39
40
|
build(scope: AuthScope, sessionId: string): Promise<MCPServer> | MCPServer;
|
|
40
41
|
}
|
|
41
|
-
export interface HttpTransportOptions {
|
|
42
|
+
export interface HttpTransportOptions extends SessionCapacityOptions {
|
|
42
43
|
port: number;
|
|
43
44
|
host?: string;
|
|
44
45
|
authenticator: HttpAuthenticator;
|
|
@@ -56,6 +57,8 @@ export interface HttpTransportOptions {
|
|
|
56
57
|
export declare class HttpTransport {
|
|
57
58
|
private server;
|
|
58
59
|
private sessions;
|
|
60
|
+
/** Sessions whose factory call is in flight: not yet in `sessions`, but already spoken for. */
|
|
61
|
+
private building;
|
|
59
62
|
private opts;
|
|
60
63
|
/** Browser Origins permitted to read responses (empty = none). */
|
|
61
64
|
private allowedOrigins;
|
|
@@ -74,7 +77,17 @@ export declare class HttpTransport {
|
|
|
74
77
|
port(): number | undefined;
|
|
75
78
|
close(): Promise<void>;
|
|
76
79
|
private handle;
|
|
80
|
+
/** Run one message; the session counts as busy until it settles, and active when it does. */
|
|
81
|
+
private dispatch;
|
|
77
82
|
private openSse;
|
|
83
|
+
/** An open stream keeps its session from being reclaimed; idle time starts when it closes. */
|
|
84
|
+
private trackSse;
|
|
85
|
+
/**
|
|
86
|
+
* Whether a new session fits. Live sessions and pending builds both count.
|
|
87
|
+
* At the cap, only a session that is safe to end (see `pickReclaimable`)
|
|
88
|
+
* makes room; with none, the answer is no and nothing is ended.
|
|
89
|
+
*/
|
|
90
|
+
private makeRoomForSession;
|
|
78
91
|
private endSession;
|
|
79
92
|
private makeSinkFor;
|
|
80
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAgB,eAAe,EAA0B,MAAM,WAAW,CAAC;AAKlF,OAAO,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;CAClF;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;;;;OAQG;IACH,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;CAC5E;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAgB,eAAe,EAA0B,MAAM,WAAW,CAAC;AAKlF,OAAO,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAyL,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEvP,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;CAClF;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;;;;OAQG;IACH,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;CAC5E;AAED,MAAM,WAAW,oBAAqB,SAAQ,sBAAsB;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,iBAAiB,CAAC;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAaD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAA8B;IAC9C,+FAA+F;IAC/F,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,IAAI,CAAuB;IACnC,kEAAkE;IAClE,OAAO,CAAC,cAAc,CAAc;IACpC,4DAA4D;IAC5D,OAAO,CAAC,YAAY,CAAc;IAClC;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB,CAAU;gBAEtB,IAAI,EAAE,oBAAoB;IA8BtC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,wEAAwE;IACxE,IAAI,IAAI,MAAM,GAAG,SAAS;IAK1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAWR,MAAM;IAkKpB,6FAA6F;YAC/E,QAAQ;IAUtB,OAAO,CAAC,OAAO;IAWf,8FAA8F;IAC9F,OAAO,CAAC,QAAQ;IAQhB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;CAYpB;AAID,qBAAa,eAAgB,YAAW,iBAAiB;IAC3C,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;IAElD,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI;CAMrD;AAED,4EAA4E;AAC5E,qBAAa,YAAa,YAAW,iBAAiB;IACxC,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,SAAS;IACpC,YAAY,IAAI,SAAS;CAC1B"}
|
package/dist/transport/http.js
CHANGED
|
@@ -23,9 +23,13 @@ import { createServer } from 'node:http';
|
|
|
23
23
|
import { randomUUID } from 'node:crypto';
|
|
24
24
|
import { errorResponse, parseMessage } from '../protocol/jsonrpc.js';
|
|
25
25
|
import { JsonRpcErrorCode } from '../protocol/index.js';
|
|
26
|
+
import { draftCount } from '../tools/layer-store.js';
|
|
27
|
+
import { assertSessionLimits, parseHostHeader, pickReclaimable, readBody, sameScope, sendSessionCapacity, sendUnknownSession, writeSse, setCors, DEFAULT_MAX_SESSIONS, DEFAULT_SESSION_IDLE_MS } from './http-helpers.js';
|
|
26
28
|
export class HttpTransport {
|
|
27
29
|
server;
|
|
28
30
|
sessions = new Map();
|
|
31
|
+
/** Sessions whose factory call is in flight: not yet in `sessions`, but already spoken for. */
|
|
32
|
+
building = 0;
|
|
29
33
|
opts;
|
|
30
34
|
/** Browser Origins permitted to read responses (empty = none). */
|
|
31
35
|
allowedOrigins;
|
|
@@ -39,6 +43,7 @@ export class HttpTransport {
|
|
|
39
43
|
*/
|
|
40
44
|
enforceHostCheck;
|
|
41
45
|
constructor(opts) {
|
|
46
|
+
assertSessionLimits(opts);
|
|
42
47
|
this.opts = opts;
|
|
43
48
|
this.allowedOrigins = new Set(opts.allowedOrigins ?? []);
|
|
44
49
|
// A wildcard bind has no single hostname to allowlist — real clients send
|
|
@@ -115,17 +120,20 @@ export class HttpTransport {
|
|
|
115
120
|
// Open an SSE channel for an existing session. Same identity rule as
|
|
116
121
|
// POST: a leaked Mcp-Session-Id must not let a differently-scoped
|
|
117
122
|
// token attach to the victim's event stream.
|
|
118
|
-
if (!sessionId
|
|
119
|
-
res.statusCode =
|
|
120
|
-
res.end('
|
|
123
|
+
if (!sessionId) {
|
|
124
|
+
res.statusCode = 400;
|
|
125
|
+
res.end('Mcp-Session-Id required');
|
|
121
126
|
return;
|
|
122
127
|
}
|
|
123
128
|
const session = this.sessions.get(sessionId);
|
|
129
|
+
if (!session)
|
|
130
|
+
return sendUnknownSession(res);
|
|
124
131
|
if (!sameScope(session.scope, scope)) {
|
|
125
132
|
res.statusCode = 403;
|
|
126
133
|
res.end('session scope mismatch');
|
|
127
134
|
return;
|
|
128
135
|
}
|
|
136
|
+
session.lastSeen = Date.now();
|
|
129
137
|
this.openSse(session, res);
|
|
130
138
|
return;
|
|
131
139
|
}
|
|
@@ -152,7 +160,11 @@ export class HttpTransport {
|
|
|
152
160
|
res.end('Method Not Allowed');
|
|
153
161
|
return;
|
|
154
162
|
}
|
|
155
|
-
|
|
163
|
+
// A POST still uploading its body counts as in flight for the session it
|
|
164
|
+
// names (same scope only), so an `initialize` at the cap cannot reclaim it
|
|
165
|
+
// between the headers and the last byte.
|
|
166
|
+
const named = sessionId ? this.sessions.get(sessionId) : undefined;
|
|
167
|
+
const body = await readBody(req, this.opts.maxBodyBytes ?? 32 * 1024 * 1024, named && sameScope(named.scope, scope) ? named : undefined);
|
|
156
168
|
const message = parseMessage(body);
|
|
157
169
|
if (!message) {
|
|
158
170
|
res.statusCode = 400;
|
|
@@ -175,18 +187,35 @@ export class HttpTransport {
|
|
|
175
187
|
res.end(JSON.stringify({ error: 'session scope mismatch' }));
|
|
176
188
|
return;
|
|
177
189
|
}
|
|
190
|
+
// After the identity check: a refused caller must not keep another
|
|
191
|
+
// principal's session from ever looking idle.
|
|
192
|
+
session.lastSeen = Date.now();
|
|
178
193
|
}
|
|
179
194
|
else {
|
|
195
|
+
// A session id we do not hold (DELETEd, reclaimed at the cap, never issued)
|
|
196
|
+
// is the spec's 404 for `initialize` too: re-initialize WITHOUT an id.
|
|
197
|
+
if (sessionId)
|
|
198
|
+
return sendUnknownSession(res);
|
|
180
199
|
// Per spec, `initialize` is the only request allowed without a session;
|
|
181
200
|
// the response carries the new Mcp-Session-Id.
|
|
182
|
-
|
|
183
|
-
if (!isInitialize) {
|
|
201
|
+
if (message.method !== 'initialize') {
|
|
184
202
|
res.statusCode = 400;
|
|
185
203
|
res.end('Mcp-Session-Id required');
|
|
186
204
|
return;
|
|
187
205
|
}
|
|
206
|
+
if (!this.makeRoomForSession())
|
|
207
|
+
return sendSessionCapacity(res);
|
|
188
208
|
const newId = randomUUID();
|
|
189
|
-
|
|
209
|
+
// The factory may await, so concurrent initializes would each pass the
|
|
210
|
+
// capacity check above; count the ones still building.
|
|
211
|
+
this.building++;
|
|
212
|
+
let server;
|
|
213
|
+
try {
|
|
214
|
+
server = await this.opts.sessionFactory.build(scope, newId);
|
|
215
|
+
}
|
|
216
|
+
finally {
|
|
217
|
+
this.building--;
|
|
218
|
+
}
|
|
190
219
|
// A factory that drops the session id would put every HTTP session
|
|
191
220
|
// on the shared local layer workspace (cross-session reads/writes,
|
|
192
221
|
// no disposal) — refuse the deployment bug instead of running unsafe.
|
|
@@ -198,7 +227,7 @@ export class HttpTransport {
|
|
|
198
227
|
}));
|
|
199
228
|
return;
|
|
200
229
|
}
|
|
201
|
-
session = { id: newId, server, scope, sseClients: new Set(),
|
|
230
|
+
session = { id: newId, server, scope, sseClients: new Set(), lastSeen: Date.now(), inFlight: 0 };
|
|
202
231
|
session.server.attach(this.makeSinkFor(session));
|
|
203
232
|
this.sessions.set(newId, session);
|
|
204
233
|
res.setHeader('Mcp-Session-Id', newId);
|
|
@@ -210,34 +239,65 @@ export class HttpTransport {
|
|
|
210
239
|
res.setHeader('Content-Type', 'text/event-stream');
|
|
211
240
|
res.setHeader('Cache-Control', 'no-cache, no-transform');
|
|
212
241
|
res.setHeader('Connection', 'keep-alive');
|
|
213
|
-
session.sseClients.add(res);
|
|
214
|
-
const response = await session.server.handleMessage(message);
|
|
215
|
-
if (response)
|
|
216
|
-
writeSse(res, response);
|
|
217
242
|
// Keep the connection open until client closes; progress notifications
|
|
218
|
-
// arrive via the session's sink.
|
|
219
|
-
|
|
243
|
+
// arrive via the session's sink. Tracked before the dispatch so a client
|
|
244
|
+
// that leaves mid-call is still removed.
|
|
245
|
+
this.trackSse(session, res);
|
|
246
|
+
const response = await this.dispatch(session, message);
|
|
247
|
+
if (response && !res.writableEnded)
|
|
248
|
+
writeSse(res, response);
|
|
220
249
|
return;
|
|
221
250
|
}
|
|
222
251
|
// Plain JSON response (the common case).
|
|
223
|
-
const response = await
|
|
252
|
+
const response = await this.dispatch(session, message);
|
|
224
253
|
res.statusCode = 200;
|
|
225
254
|
res.setHeader('Content-Type', 'application/json');
|
|
226
255
|
res.end(response ? JSON.stringify(response) : '{}');
|
|
227
256
|
}
|
|
257
|
+
/** Run one message; the session counts as busy until it settles, and active when it does. */
|
|
258
|
+
async dispatch(session, message) {
|
|
259
|
+
session.inFlight++;
|
|
260
|
+
try {
|
|
261
|
+
return await session.server.handleMessage(message);
|
|
262
|
+
}
|
|
263
|
+
finally {
|
|
264
|
+
session.inFlight--;
|
|
265
|
+
session.lastSeen = Date.now();
|
|
266
|
+
}
|
|
267
|
+
}
|
|
228
268
|
openSse(session, res) {
|
|
229
269
|
res.statusCode = 200;
|
|
230
270
|
res.setHeader('Content-Type', 'text/event-stream');
|
|
231
271
|
res.setHeader('Cache-Control', 'no-cache, no-transform');
|
|
232
272
|
res.setHeader('Connection', 'keep-alive');
|
|
233
273
|
res.write(': connected\n\n');
|
|
234
|
-
|
|
274
|
+
this.trackSse(session, res);
|
|
235
275
|
const ka = setInterval(() => res.write(': keepalive\n\n'), 15_000);
|
|
276
|
+
res.on('close', () => clearInterval(ka));
|
|
277
|
+
}
|
|
278
|
+
/** An open stream keeps its session from being reclaimed; idle time starts when it closes. */
|
|
279
|
+
trackSse(session, res) {
|
|
280
|
+
session.sseClients.add(res);
|
|
236
281
|
res.on('close', () => {
|
|
237
282
|
session.sseClients.delete(res);
|
|
238
|
-
|
|
283
|
+
session.lastSeen = Date.now();
|
|
239
284
|
});
|
|
240
285
|
}
|
|
286
|
+
/**
|
|
287
|
+
* Whether a new session fits. Live sessions and pending builds both count.
|
|
288
|
+
* At the cap, only a session that is safe to end (see `pickReclaimable`)
|
|
289
|
+
* makes room; with none, the answer is no and nothing is ended.
|
|
290
|
+
*/
|
|
291
|
+
makeRoomForSession() {
|
|
292
|
+
const max = this.opts.maxSessions ?? DEFAULT_MAX_SESSIONS;
|
|
293
|
+
const need = this.sessions.size + this.building - max + 1;
|
|
294
|
+
if (need <= 0)
|
|
295
|
+
return true;
|
|
296
|
+
const idleMs = this.opts.sessionIdleMs ?? DEFAULT_SESSION_IDLE_MS;
|
|
297
|
+
for (const id of pickReclaimable(this.sessions, idleMs, need, draftCount))
|
|
298
|
+
this.endSession(id);
|
|
299
|
+
return this.sessions.size + this.building < max;
|
|
300
|
+
}
|
|
241
301
|
endSession(sessionId) {
|
|
242
302
|
const session = this.sessions.get(sessionId);
|
|
243
303
|
if (!session)
|
|
@@ -255,84 +315,14 @@ export class HttpTransport {
|
|
|
255
315
|
try {
|
|
256
316
|
writeSse(sse, message);
|
|
257
317
|
}
|
|
258
|
-
catch {
|
|
318
|
+
catch (err) {
|
|
319
|
+
console.error('[ifc-lite-mcp http] event stream write failed', err);
|
|
320
|
+
}
|
|
259
321
|
}
|
|
260
322
|
},
|
|
261
323
|
};
|
|
262
324
|
}
|
|
263
325
|
}
|
|
264
|
-
/**
|
|
265
|
-
* Strict scope identity check used when reusing an HTTP session — both the
|
|
266
|
-
* permission set and any narrowing (model_ids, user, session) must match
|
|
267
|
-
* what the session was created with. We sort the scopes set so callers
|
|
268
|
-
* that pass them in different orders still compare equal.
|
|
269
|
-
*/
|
|
270
|
-
function sameScope(a, b) {
|
|
271
|
-
if (a === b)
|
|
272
|
-
return true;
|
|
273
|
-
if (a.user !== b.user || a.session !== b.session)
|
|
274
|
-
return false;
|
|
275
|
-
const as = [...a.scopes].sort();
|
|
276
|
-
const bs = [...b.scopes].sort();
|
|
277
|
-
if (as.length !== bs.length || as.some((s, i) => s !== bs[i]))
|
|
278
|
-
return false;
|
|
279
|
-
const am = a.modelIds ? [...a.modelIds].sort() : undefined;
|
|
280
|
-
const bm = b.modelIds ? [...b.modelIds].sort() : undefined;
|
|
281
|
-
if ((am?.length ?? 0) !== (bm?.length ?? 0))
|
|
282
|
-
return false;
|
|
283
|
-
if (am && bm && am.some((m, i) => m !== bm[i]))
|
|
284
|
-
return false;
|
|
285
|
-
return true;
|
|
286
|
-
}
|
|
287
|
-
/**
|
|
288
|
-
* Reflect CORS headers ONLY when the request carries an Origin we explicitly
|
|
289
|
-
* allow. We never emit a wildcard `Access-Control-Allow-Origin` — that would
|
|
290
|
-
* let any web page read JSON-RPC responses cross-origin. When `origin` is not
|
|
291
|
-
* allowlisted we emit no CORS headers, so the browser blocks the response.
|
|
292
|
-
*/
|
|
293
|
-
function setCors(res, origin, allowed) {
|
|
294
|
-
if (!origin || !allowed.has(origin))
|
|
295
|
-
return;
|
|
296
|
-
res.setHeader('Access-Control-Allow-Origin', origin);
|
|
297
|
-
res.setHeader('Vary', 'Origin');
|
|
298
|
-
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, DELETE, OPTIONS');
|
|
299
|
-
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, Mcp-Session-Id');
|
|
300
|
-
res.setHeader('Access-Control-Expose-Headers', 'Mcp-Session-Id');
|
|
301
|
-
}
|
|
302
|
-
/**
|
|
303
|
-
* Extract the host name from a `Host` header, stripping the port. Handles the
|
|
304
|
-
* bracketed IPv6 literal form (`[::1]:8765` -> `::1`).
|
|
305
|
-
*/
|
|
306
|
-
function parseHostHeader(raw) {
|
|
307
|
-
if (!raw)
|
|
308
|
-
return undefined;
|
|
309
|
-
const value = raw.trim();
|
|
310
|
-
if (value.startsWith('[')) {
|
|
311
|
-
const end = value.indexOf(']');
|
|
312
|
-
return end > 0 ? value.slice(1, end) : value;
|
|
313
|
-
}
|
|
314
|
-
return value.split(':')[0];
|
|
315
|
-
}
|
|
316
|
-
function writeSse(res, message) {
|
|
317
|
-
res.write(`data: ${JSON.stringify(message)}\n\n`);
|
|
318
|
-
}
|
|
319
|
-
async function readBody(req, max) {
|
|
320
|
-
return new Promise((resolve, reject) => {
|
|
321
|
-
let total = 0;
|
|
322
|
-
const chunks = [];
|
|
323
|
-
req.on('data', (chunk) => {
|
|
324
|
-
total += chunk.length;
|
|
325
|
-
if (total > max) {
|
|
326
|
-
reject(new Error('Request body too large'));
|
|
327
|
-
req.destroy();
|
|
328
|
-
return;
|
|
329
|
-
}
|
|
330
|
-
chunks.push(chunk);
|
|
331
|
-
});
|
|
332
|
-
req.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
|
|
333
|
-
req.on('error', reject);
|
|
334
|
-
});
|
|
335
|
-
}
|
|
336
326
|
// ── Built-in authenticators ──────────────────────────────────────────────
|
|
337
327
|
export class BearerTokenAuth {
|
|
338
328
|
tokens;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"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"}
|
package/dist/validate.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Tiny JSON-Schema input validator (Draft 2020-12 subset).
|
|
3
3
|
*
|
|
4
4
|
* We only support the keywords our hand-authored tool schemas use:
|
|
5
|
-
* type, properties, required, items, enum, minimum, maximum,
|
|
5
|
+
* type, properties, required, items, enum, minimum, exclusiveMinimum, maximum,
|
|
6
6
|
* minLength, maxLength, minItems, maxItems, default, anyOf,
|
|
7
7
|
* additionalProperties.
|
|
8
8
|
*
|
package/dist/validate.js
CHANGED
|
@@ -98,6 +98,9 @@ function walk(schema, input, path, errors, fillDefaults = true) {
|
|
|
98
98
|
if (schema.minimum !== undefined && input < schema.minimum) {
|
|
99
99
|
errors.push({ path, message: `Must be >= ${schema.minimum}` });
|
|
100
100
|
}
|
|
101
|
+
if (schema.exclusiveMinimum !== undefined && input <= schema.exclusiveMinimum) {
|
|
102
|
+
errors.push({ path, message: `Must be > ${schema.exclusiveMinimum}` });
|
|
103
|
+
}
|
|
101
104
|
if (schema.maximum !== undefined && input > schema.maximum) {
|
|
102
105
|
errors.push({ path, message: `Must be <= ${schema.maximum}` });
|
|
103
106
|
}
|
package/dist/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
|