@winstonsayno/mcp-gateway 0.4.0 → 1.0.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.
Files changed (73) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +225 -19
  3. package/dashboard/index.html +79 -22
  4. package/dist/auth/middleware.d.ts +21 -2
  5. package/dist/auth/middleware.d.ts.map +1 -1
  6. package/dist/auth/middleware.js +63 -13
  7. package/dist/auth/middleware.js.map +1 -1
  8. package/dist/auth/ratelimit.d.ts +16 -1
  9. package/dist/auth/ratelimit.d.ts.map +1 -1
  10. package/dist/auth/ratelimit.js +15 -8
  11. package/dist/auth/ratelimit.js.map +1 -1
  12. package/dist/auth/scopes.d.ts +40 -0
  13. package/dist/auth/scopes.d.ts.map +1 -0
  14. package/dist/auth/scopes.js +76 -0
  15. package/dist/auth/scopes.js.map +1 -0
  16. package/dist/config/loader.d.ts.map +1 -1
  17. package/dist/config/loader.js +91 -10
  18. package/dist/config/loader.js.map +1 -1
  19. package/dist/gateway/api.d.ts +12 -0
  20. package/dist/gateway/api.d.ts.map +1 -1
  21. package/dist/gateway/api.js +264 -11
  22. package/dist/gateway/api.js.map +1 -1
  23. package/dist/gateway/index.d.ts +4 -0
  24. package/dist/gateway/index.d.ts.map +1 -1
  25. package/dist/gateway/index.js +54 -2
  26. package/dist/gateway/index.js.map +1 -1
  27. package/dist/gateway/supervisor.d.ts +1 -0
  28. package/dist/gateway/supervisor.d.ts.map +1 -1
  29. package/dist/gateway/supervisor.js +12 -1
  30. package/dist/gateway/supervisor.js.map +1 -1
  31. package/dist/index.d.ts +11 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +6 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/mcp/catalog.d.ts +30 -0
  36. package/dist/mcp/catalog.d.ts.map +1 -0
  37. package/dist/mcp/catalog.js +78 -0
  38. package/dist/mcp/catalog.js.map +1 -0
  39. package/dist/mcp/endpoint.d.ts +132 -0
  40. package/dist/mcp/endpoint.d.ts.map +1 -0
  41. package/dist/mcp/endpoint.js +714 -0
  42. package/dist/mcp/endpoint.js.map +1 -0
  43. package/dist/mcp/llm-schemas.d.ts +36 -0
  44. package/dist/mcp/llm-schemas.d.ts.map +1 -0
  45. package/dist/mcp/llm-schemas.js +69 -0
  46. package/dist/mcp/llm-schemas.js.map +1 -0
  47. package/dist/mcp/naming.d.ts +53 -0
  48. package/dist/mcp/naming.d.ts.map +1 -0
  49. package/dist/mcp/naming.js +71 -0
  50. package/dist/mcp/naming.js.map +1 -0
  51. package/dist/middleware/cors.d.ts +2 -0
  52. package/dist/middleware/cors.d.ts.map +1 -1
  53. package/dist/middleware/cors.js +25 -19
  54. package/dist/middleware/cors.js.map +1 -1
  55. package/dist/monitor/audit.d.ts +60 -0
  56. package/dist/monitor/audit.d.ts.map +1 -0
  57. package/dist/monitor/audit.js +155 -0
  58. package/dist/monitor/audit.js.map +1 -0
  59. package/dist/monitor/index.d.ts +19 -0
  60. package/dist/monitor/index.d.ts.map +1 -1
  61. package/dist/monitor/index.js +88 -0
  62. package/dist/monitor/index.js.map +1 -1
  63. package/dist/proxy/index.d.ts +26 -2
  64. package/dist/proxy/index.d.ts.map +1 -1
  65. package/dist/proxy/index.js +175 -18
  66. package/dist/proxy/index.js.map +1 -1
  67. package/dist/registry/index.d.ts +8 -1
  68. package/dist/registry/index.d.ts.map +1 -1
  69. package/dist/registry/index.js +22 -0
  70. package/dist/registry/index.js.map +1 -1
  71. package/dist/utils/types.d.ts +108 -2
  72. package/dist/utils/types.d.ts.map +1 -1
  73. package/package.json +1 -1
@@ -17,6 +17,7 @@
17
17
  * (process exit, socket/stream closed, session expired). Not emitted for
18
18
  * `disconnect()`. The gateway supervisor uses it to reconnect.
19
19
  * - `tools-changed` (serverId, tools) — the server announced a new tool list.
20
+ * - `catalog-changed` (serverId, catalog) — new resource / prompt lists.
20
21
  *
21
22
  * Fixes kept from v0.2.0 / the audit: per-server connect mutex (BUG-001),
22
23
  * monotonic ids (BUG-002), no leaked sessions on failed `initialize`, an old
@@ -43,6 +44,8 @@ const DEFAULT_TIMEOUT_MS = 30_000;
43
44
  // JSON-RPC error codes used by the gateway
44
45
  export const ERR_NOT_CONNECTED = -32000;
45
46
  export const ERR_TIMEOUT = -32001;
47
+ /** The caller cancelled the request (e.g. a downstream `notifications/cancelled`). */
48
+ export const ERR_CANCELLED = -32800;
46
49
  // ── Monotonic ID counter (fix BUG-002) ──────────────────────────────────────
47
50
  let _idSeq = 0;
48
51
  function nextId() {
@@ -99,6 +102,7 @@ export class McpProxy extends EventEmitter {
99
102
  pendingRequests: new Map(),
100
103
  limiter: new Semaphore(config.maxConcurrency ?? Infinity),
101
104
  closed: false,
105
+ catalog: { resources: [], resourceTemplates: [], prompts: [] },
102
106
  };
103
107
  channel.onmessage = (msg) => this._onMessage(session, msg);
104
108
  channel.onclose = (err) => this._onChannelLost(session, err);
@@ -134,6 +138,7 @@ export class McpProxy extends EventEmitter {
134
138
  throw new Error(`Failed to initialize server "${config.id}": ${initResult.error?.message}`);
135
139
  }
136
140
  const init = (initResult.result ?? {});
141
+ session.capabilities = isPlainObject(init.capabilities) ? init.capabilities : {};
137
142
  if (typeof init.protocolVersion === 'string') {
138
143
  session.protocolVersion = init.protocolVersion;
139
144
  if (!SUPPORTED_PROTOCOL_VERSIONS.includes(init.protocolVersion)) {
@@ -143,7 +148,90 @@ export class McpProxy extends EventEmitter {
143
148
  }
144
149
  session.serverInfo = init.serverInfo;
145
150
  await this._notify(session, 'notifications/initialized');
146
- return this._listTools(session);
151
+ const tools = await this._listTools(session);
152
+ session.catalog = await this._listCatalog(session);
153
+ return tools;
154
+ }
155
+ /** Fetch every page of a list method (`resources/list`, `prompts/list`, …). */
156
+ async _listAll(session, method, key) {
157
+ const timeout = session.config.timeout ?? DEFAULT_TIMEOUT_MS;
158
+ const items = [];
159
+ let cursor;
160
+ for (let page = 0; page < MAX_TOOL_PAGES; page++) {
161
+ const r = await this._sendRequest(session, method, cursor ? { cursor } : {}, timeout, false);
162
+ if (!r.success) {
163
+ logger.warn(`Could not ${method} for "${session.config.id}": ${r.error?.message}`);
164
+ break;
165
+ }
166
+ const result = (r.result ?? {});
167
+ const list = result[key];
168
+ if (Array.isArray(list))
169
+ for (const it of list)
170
+ if (isPlainObject(it))
171
+ items.push(it);
172
+ cursor = typeof result.nextCursor === 'string' && result.nextCursor ? result.nextCursor : undefined;
173
+ if (!cursor)
174
+ break;
175
+ }
176
+ return items;
177
+ }
178
+ /** Resources, templates and prompts, for servers that announce those capabilities. */
179
+ async _listCatalog(session) {
180
+ const { config } = session;
181
+ const caps = session.capabilities ?? {};
182
+ const pick = (o, keys) => {
183
+ const out = {};
184
+ for (const k of keys)
185
+ if (o[k] !== undefined)
186
+ out[k] = o[k];
187
+ return out;
188
+ };
189
+ const owner = { serverId: config.id, serverName: config.name };
190
+ const catalog = { resources: [], resourceTemplates: [], prompts: [] };
191
+ if (caps.resources) {
192
+ for (const r of await this._listAll(session, 'resources/list', 'resources')) {
193
+ if (typeof r.uri !== 'string')
194
+ continue;
195
+ catalog.resources.push({
196
+ ...pick(r, ['title', 'description', 'mimeType', 'size', 'annotations']),
197
+ uri: r.uri,
198
+ name: typeof r.name === 'string' ? r.name : r.uri,
199
+ ...owner,
200
+ });
201
+ }
202
+ for (const t of await this._listAll(session, 'resources/templates/list', 'resourceTemplates')) {
203
+ if (typeof t.uriTemplate !== 'string')
204
+ continue;
205
+ catalog.resourceTemplates.push({
206
+ ...pick(t, ['title', 'description', 'mimeType', 'annotations']),
207
+ uriTemplate: t.uriTemplate,
208
+ name: typeof t.name === 'string' ? t.name : t.uriTemplate,
209
+ ...owner,
210
+ });
211
+ }
212
+ }
213
+ if (caps.prompts) {
214
+ for (const p of await this._listAll(session, 'prompts/list', 'prompts')) {
215
+ if (typeof p.name !== 'string')
216
+ continue;
217
+ catalog.prompts.push({
218
+ ...pick(p, ['title', 'description', 'arguments']),
219
+ name: p.name,
220
+ ...owner,
221
+ });
222
+ }
223
+ }
224
+ return catalog;
225
+ }
226
+ /** Whether a connected server announced a capability (e.g. "resources"). */
227
+ hasCapability(serverId, capability) {
228
+ const s = this.sessions.get(serverId);
229
+ return !!s && !s.closed && !!s.capabilities?.[capability];
230
+ }
231
+ /** Resources, templates and prompts announced by a connected server. */
232
+ getCatalog(serverId) {
233
+ const s = this.sessions.get(serverId);
234
+ return s && !s.closed ? s.catalog : { resources: [], resourceTemplates: [], prompts: [] };
147
235
  }
148
236
  async _listTools(session) {
149
237
  const { config } = session;
@@ -161,13 +249,20 @@ export class McpProxy extends EventEmitter {
161
249
  const tool = t;
162
250
  if (typeof tool?.name !== 'string')
163
251
  continue;
164
- tools.push({
252
+ const info = {
165
253
  name: tool.name,
166
254
  description: tool.description,
167
255
  inputSchema: tool.inputSchema,
168
256
  serverId: config.id,
169
257
  serverName: config.name,
170
- });
258
+ };
259
+ if (typeof tool.title === 'string')
260
+ info.title = tool.title;
261
+ if (isPlainObject(tool.outputSchema))
262
+ info.outputSchema = tool.outputSchema;
263
+ if (isPlainObject(tool.annotations))
264
+ info.annotations = tool.annotations;
265
+ tools.push(info);
171
266
  }
172
267
  cursor = typeof result.nextCursor === 'string' && result.nextCursor ? result.nextCursor : undefined;
173
268
  if (!cursor)
@@ -194,16 +289,24 @@ export class McpProxy extends EventEmitter {
194
289
  await Promise.all([...this.sessions.keys()].map((id) => this.disconnect(id)));
195
290
  }
196
291
  // ─── Tool Execution ─────────────────────────────────────────────────────────
197
- async callTool(serverId, toolName, args, timeout) {
292
+ async callTool(serverId, toolName, args, timeout, options = {}) {
293
+ return this.request(serverId, 'tools/call', { name: toolName, arguments: args }, timeout, options);
294
+ }
295
+ /**
296
+ * Send any MCP request to a connected server through the session layer
297
+ * (timeout, `maxConcurrency`, upstream cancellation).
298
+ */
299
+ async request(serverId, method, params, timeout, options = {}) {
198
300
  const session = this.sessions.get(serverId);
199
- if (!session || session.closed) {
301
+ // Requests are only forwarded once the handshake (initialize → initialized) is done.
302
+ if (!session || session.closed || !session.connectedAt) {
200
303
  return {
201
304
  success: false,
202
305
  error: { code: ERR_NOT_CONNECTED, message: `Server "${serverId}" is not connected` },
203
306
  durationMs: 0,
204
307
  };
205
308
  }
206
- return this._sendRequest(session, 'tools/call', { name: toolName, arguments: args }, timeout ?? session.config.timeout ?? DEFAULT_TIMEOUT_MS, true);
309
+ return this._sendRequest(session, method, params, timeout ?? session.config.timeout ?? DEFAULT_TIMEOUT_MS, true, options.signal);
207
310
  }
208
311
  /** MCP `ping`: resolves with the round-trip latency (ms), or rejects if the server does not answer. */
209
312
  async ping(serverId, timeout = 5_000) {
@@ -218,9 +321,10 @@ export class McpProxy extends EventEmitter {
218
321
  }
219
322
  return r.durationMs;
220
323
  }
324
+ /** True once the MCP handshake has completed (not while it is still in progress). */
221
325
  isConnected(serverId) {
222
326
  const s = this.sessions.get(serverId);
223
- return !!s && !s.closed;
327
+ return !!s && !s.closed && !!s.connectedAt;
224
328
  }
225
329
  /** Negotiated session details (for /servers). */
226
330
  getSessionInfo(serverId) {
@@ -230,6 +334,7 @@ export class McpProxy extends EventEmitter {
230
334
  return {
231
335
  transport: s.channel.kind,
232
336
  protocolVersion: s.protocolVersion,
337
+ capabilities: s.capabilities,
233
338
  serverInfo: s.serverInfo,
234
339
  connectedAt: s.connectedAt,
235
340
  };
@@ -270,6 +375,10 @@ export class McpProxy extends EventEmitter {
270
375
  else if (msg.method === 'notifications/tools/list_changed') {
271
376
  this._refreshTools(session);
272
377
  }
378
+ else if (msg.method === 'notifications/resources/list_changed' ||
379
+ msg.method === 'notifications/prompts/list_changed') {
380
+ this._refreshCatalog(session);
381
+ }
273
382
  return;
274
383
  }
275
384
  if (msg.id === undefined || msg.id === null)
@@ -294,6 +403,16 @@ export class McpProxy extends EventEmitter {
294
403
  this.emit('tools-changed', session.config.id, tools);
295
404
  }, (err) => logger.warn(`[${session.config.id}] could not refresh tools: ${String(err)}`));
296
405
  }
406
+ _refreshCatalog(session) {
407
+ if (!session.connectedAt)
408
+ return;
409
+ void this._listCatalog(session).then((catalog) => {
410
+ if (session.closed)
411
+ return;
412
+ session.catalog = catalog;
413
+ this.emit('catalog-changed', session.config.id, catalog);
414
+ }, (err) => logger.warn(`[${session.config.id}] could not refresh resources/prompts: ${String(err)}`));
415
+ }
297
416
  _answerServerRequest(session, id, method) {
298
417
  const reply = method === 'ping'
299
418
  ? { jsonrpc: '2.0', id, result: {} }
@@ -306,7 +425,7 @@ export class McpProxy extends EventEmitter {
306
425
  logger.debug(`[${session.config.id}] failed to send ${method}: ${String(err)}`);
307
426
  });
308
427
  }
309
- async _sendRequest(session, method, params, timeout = DEFAULT_TIMEOUT_MS, limited = true) {
428
+ async _sendRequest(session, method, params, timeout = DEFAULT_TIMEOUT_MS, limited = true, signal) {
310
429
  const serverId = session.config.id;
311
430
  const startTime = Date.now();
312
431
  const deadline = startTime + timeout;
@@ -320,45 +439,80 @@ export class McpProxy extends EventEmitter {
320
439
  error: { code: ERR_NOT_CONNECTED, message },
321
440
  durationMs: Date.now() - startTime,
322
441
  });
442
+ const cancelled = () => ({
443
+ success: false,
444
+ error: { code: ERR_CANCELLED, message: 'Request cancelled' },
445
+ durationMs: Date.now() - startTime,
446
+ });
323
447
  if (session.closed)
324
448
  return notConnected(`No session for server "${serverId}"`);
449
+ if (signal?.aborted)
450
+ return cancelled();
325
451
  // Enforce maxConcurrency; the timeout covers time spent queued.
326
452
  let release;
327
453
  if (limited) {
328
454
  let queueTimer;
455
+ let onAbort;
329
456
  const slot = session.limiter.acquire();
330
457
  const winner = await Promise.race([
331
458
  slot.then((r) => ({ release: r })),
332
- new Promise((r) => (queueTimer = setTimeout(() => r(null), timeout))),
459
+ new Promise((r) => (queueTimer = setTimeout(() => r('timeout'), timeout))),
460
+ new Promise((r) => {
461
+ if (!signal)
462
+ return;
463
+ onAbort = () => r('aborted');
464
+ signal.addEventListener('abort', onAbort, { once: true });
465
+ }),
333
466
  ]);
334
467
  clearTimeout(queueTimer);
335
- if (!winner) {
468
+ if (onAbort)
469
+ signal?.removeEventListener('abort', onAbort);
470
+ if (winner === 'timeout' || winner === 'aborted') {
336
471
  // Give the slot back as soon as it is granted.
337
472
  void slot.then((r) => r());
338
- return timedOut();
473
+ return winner === 'timeout' ? timedOut() : cancelled();
339
474
  }
340
475
  release = winner.release;
341
476
  }
342
477
  try {
343
478
  if (session.closed)
344
479
  return notConnected(`Server "${serverId}" disconnected`);
480
+ if (signal?.aborted)
481
+ return cancelled();
345
482
  return await new Promise((resolve) => {
346
483
  const id = nextId();
347
484
  const remaining = Math.max(0, deadline - Date.now());
348
- const timer = setTimeout(() => {
349
- session.pendingRequests.delete(id);
350
- // Ask the server to stop working on it, then free channel resources.
485
+ // Ask the server to stop working on it, then free channel resources.
486
+ const cancelUpstream = (reason) => {
351
487
  void session.channel
352
- .send({ jsonrpc: '2.0', method: 'notifications/cancelled', params: { requestId: id, reason: 'timeout' } })
488
+ .send({ jsonrpc: '2.0', method: 'notifications/cancelled', params: { requestId: id, reason } })
353
489
  .catch(() => { })
354
490
  .finally(() => session.channel.abandon?.(id));
491
+ };
492
+ const onAbort = () => {
493
+ if (!session.pendingRequests.has(id))
494
+ return;
495
+ clearTimeout(timer);
496
+ session.pendingRequests.delete(id);
497
+ cancelUpstream('cancelled by client');
498
+ resolve(cancelled());
499
+ };
500
+ const settle = (response) => {
501
+ signal?.removeEventListener('abort', onAbort);
502
+ resolve(response);
503
+ };
504
+ const timer = setTimeout(() => {
505
+ session.pendingRequests.delete(id);
506
+ signal?.removeEventListener('abort', onAbort);
507
+ cancelUpstream('timeout');
355
508
  resolve(timedOut());
356
509
  }, remaining);
357
510
  session.pendingRequests.set(id, {
358
- resolve: (response) => resolve({ ...response, durationMs: Date.now() - startTime }),
359
- reject: (err) => resolve(notConnected(err.message)),
511
+ resolve: (response) => settle({ ...response, durationMs: Date.now() - startTime }),
512
+ reject: (err) => settle(notConnected(err.message)),
360
513
  timer,
361
514
  });
515
+ signal?.addEventListener('abort', onAbort, { once: true });
362
516
  const payload = params === undefined ? { jsonrpc: '2.0', id, method } : { jsonrpc: '2.0', id, method, params };
363
517
  session.channel.send(payload).catch((err) => {
364
518
  const pending = session.pendingRequests.get(id);
@@ -367,7 +521,7 @@ export class McpProxy extends EventEmitter {
367
521
  clearTimeout(timer);
368
522
  session.pendingRequests.delete(id);
369
523
  const message = err instanceof Error ? err.message : String(err);
370
- resolve(notConnected(`Request to "${serverId}" failed: ${message}`));
524
+ settle(notConnected(`Request to "${serverId}" failed: ${message}`));
371
525
  });
372
526
  });
373
527
  }
@@ -376,6 +530,9 @@ export class McpProxy extends EventEmitter {
376
530
  }
377
531
  }
378
532
  }
533
+ function isPlainObject(v) {
534
+ return !!v && typeof v === 'object' && !Array.isArray(v);
535
+ }
379
536
  function withTimeout(p, ms, message) {
380
537
  let timer;
381
538
  return Promise.race([
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proxy/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,6DAA6D;AAC7D,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC;AACjD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AAEtF,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,2CAA2C;AAC3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAK,CAAC;AACxC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC;AAElC,+EAA+E;AAC/E,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,SAAS,MAAM;IACb,OAAO,EAAE,MAAM,CAAC;AAClB,CAAC;AAED,qCAAqC;AACrC,MAAM,CAAC,MAAM,qBAAqB,GAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;IACvE,QAAQ,MAAM,CAAC,SAAS,EAAE,CAAC;QACzB,KAAK,OAAO;YACV,OAAO,IAAI,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,KAAK,KAAK;YACR,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzC,KAAK,WAAW;YACd,OAAO,IAAI,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,KAAK,iBAAiB;YACpB,OAAO,IAAI,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpD;YACE,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAE,MAA0B,CAAC,SAAS,CAAC,cAAc,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACpH,CAAC;AACH,CAAC,CAAC;AAmCF,MAAM,OAAO,QAAS,SAAQ,YAAY;IAChC,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC9C,yCAAyC;IACjC,UAAU,GAAG,IAAI,GAAG,EAAiB,CAAC;IAC7B,WAAW,CAAS;IACpB,cAAc,CAAiB;IAEhD,YAAY,UAAwB,EAAE;QACpC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;QAChD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,qBAAqB,CAAC;IACxE,CAAC;IAEO,YAAY,CAAC,QAAgB;QACnC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+EAA+E;IAE/E,KAAK,CAAC,OAAO,CAAC,MAAuB;QACnC,uEAAuE;QACvE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YAC1D,2DAA2D;YAC3D,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,kBAAkB,CAAC;YACrD,MAAM,OAAO,GAAmB,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7F,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,OAAO,GAAY;gBACvB,MAAM;gBACN,OAAO;gBACP,eAAe,EAAE,IAAI,GAAG,EAAE;gBAC1B,OAAO,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC,cAAc,IAAI,QAAQ,CAAC;gBACzD,MAAM,EAAE,KAAK;aACd,CAAC;YAEF,OAAO,CAAC,SAAS,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC3D,OAAO,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAE7D,IAAI,CAAC;gBACH,MAAM,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,kBAAkB,MAAM,CAAC,EAAE,qBAAqB,OAAO,IAAI,CAAC,CAAC;YAC3G,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;gBACtB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACtC,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAC7C,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC;YACf,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC1C,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAAgB;QACvC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,kBAAkB,CAAC;QACrD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CACxC,OAAO,EACP,YAAY,EACZ;YACE,eAAe,EAAE,oBAAoB;YACrC,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE;SACtD,EACD,OAAO,EACP,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,EAAE,MAAM,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9F,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAGpC,CAAC;QACF,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YAC7C,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC/C,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;gBAChE,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,EAAE,yCAAyC,IAAI,CAAC,eAAe,cAAc,CAAC,CAAC;YAC/G,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAErC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAAgB;QACvC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,kBAAkB,CAAC;QACrD,MAAM,KAAK,GAAe,EAAE,CAAC;QAC7B,IAAI,MAA0B,CAAC;QAC/B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,cAAc,EAAE,IAAI,EAAE,EAAE,CAAC;YACjD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAE7G,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,6BAA6B,MAAM,CAAC,EAAE,MAAM,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBACtF,MAAM;YACR,CAAC;YAED,MAAM,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,CAAgD,CAAC;YACzF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,CAAoF,CAAC;gBAClG,IAAI,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ;oBAAE,SAAS;gBAC7C,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,QAAQ,EAAE,MAAM,CAAC,EAAE;oBACnB,UAAU,EAAE,MAAM,CAAC,IAAI;iBACxB,CAAC,CAAC;YACL,CAAC;YAED,MAAM,GAAG,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YACpG,IAAI,CAAC,MAAM;gBAAE,MAAM;QACrB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB;QAC/B,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3F,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC3D,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACnD,MAAM,CAAC,KAAK,CAAC,IAAI,QAAQ,0BAA0B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,+EAA+E;IAE/E,KAAK,CAAC,QAAQ,CACZ,QAAgB,EAChB,QAAgB,EAChB,IAA6B,EAC7B,OAAgB;QAEhB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,QAAQ,oBAAoB,EAAE;gBACpF,UAAU,EAAE,CAAC;aACd,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CACtB,OAAO,EACP,YAAY,EACZ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EACnC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,kBAAkB,EACvD,IAAI,CACL,CAAC;IACJ,CAAC;IAED,uGAAuG;IACvG,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,OAAO,GAAG,KAAK;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,QAAQ,oBAAoB,CAAC,CAAC;QACzF,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9E,oEAAoE;QACpE,6EAA6E;QAC7E,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,iBAAiB,CAAC,EAAE,CAAC;YACzF,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,CAAC,CAAC,UAAU,CAAC;IACtB,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,iDAAiD;IACjD,cAAc,CAAC,QAAgB;QAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACrC,OAAO;YACL,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI;YACzB,eAAe,EAAE,CAAC,CAAC,eAAe;YAClC,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,OAAO,CAAC,QAAgB;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACrF,CAAC;IAED,+EAA+E;IAEvE,cAAc,CAAC,OAAgB,EAAE,GAAU;QACjD,IAAI,OAAO,CAAC,MAAM;YAAE,OAAO;QAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC9B,oEAAoE;QACpE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxC,uEAAuE;YACvE,IAAI,OAAO,CAAC,WAAW;gBAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,OAAgB,EAAE,GAAU;QAC7C,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAClD,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAEO,UAAU,CAAC,OAAgB,EAAE,GAAmB;QACtD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO;QAE5C,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACnC,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;gBAC5C,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACzD,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,KAAK,kCAAkC,EAAE,CAAC;gBAC7D,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI;YAAE,OAAO;QACpD,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEvC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,OAAgB;QACpC,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,OAAO,CAAC,wDAAwD;QAC1F,KAAK,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAChC,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,OAAO,CAAC,MAAM;gBAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5E,CAAC,EACD,CAAC,GAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,8BAA8B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAChG,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,OAAgB,EAAE,EAAa,EAAE,MAAc;QAC1E,MAAM,KAAK,GACT,MAAM,KAAK,MAAM;YACf,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACpC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,oCAAoC,MAAM,EAAE,EAAE,EAAE,CAAC;QAC7G,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,OAAgB,EAAE,MAAc,EAAE,MAAgB;QACtE,MAAM,GAAG,GAAmB,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACnH,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACrD,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,oBAAoB,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,OAAgB,EAChB,MAAc,EACd,MAAe,EACf,OAAO,GAAG,kBAAkB,EAC5B,OAAO,GAAG,IAAI;QAEd,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;QACrC,MAAM,QAAQ,GAAG,GAAkB,EAAE,CAAC,CAAC;YACrC,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,2BAA2B,OAAO,IAAI,EAAE;YAC7E,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,CAAC,OAAe,EAAiB,EAAE,CAAC,CAAC;YACxD,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE;YAC3C,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,MAAM;YAAE,OAAO,YAAY,CAAC,0BAA0B,QAAQ,GAAG,CAAC,CAAC;QAE/E,gEAAgE;QAChE,IAAI,OAAiC,CAAC;QACtC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,UAAsC,CAAC;YAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBAClC,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;aAC5E,CAAC,CAAC;YACH,YAAY,CAAC,UAAU,CAAC,CAAC;YACzB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,+CAA+C;gBAC/C,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC3B,OAAO,QAAQ,EAAE,CAAC;YACpB,CAAC;YACD,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,MAAM;gBAAE,OAAO,YAAY,CAAC,WAAW,QAAQ,gBAAgB,CAAC,CAAC;YAE7E,OAAO,MAAM,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,EAAE;gBAClD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBAErD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC5B,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACnC,qEAAqE;oBACrE,KAAK,OAAO,CAAC,OAAO;yBACjB,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;yBACzG,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;yBACf,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChD,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACtB,CAAC,EAAE,SAAS,CAAC,CAAC;gBAEd,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE;oBAC9B,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;oBACnF,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACnD,KAAK;iBACN,CAAC,CAAC;gBAEH,MAAM,OAAO,GACX,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBACjG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;oBACnD,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChD,IAAI,CAAC,OAAO;wBAAE,OAAO,CAAC,+BAA+B;oBACrD,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACnC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACjE,OAAO,CAAC,YAAY,CAAC,eAAe,QAAQ,aAAa,OAAO,EAAE,CAAC,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAED,SAAS,WAAW,CAAI,CAAa,EAAE,EAAU,EAAE,OAAe;IAChE,IAAI,KAAiC,CAAC;IACtC,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAC/B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzD,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC,CAAC;KACH,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proxy/index.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,13 @@
3
3
  * Manages the lifecycle of all registered MCP servers
4
4
  */
5
5
  import { EventEmitter } from 'events';
6
- import type { McpServerConfig, ServerHealth, ServerStatus, ToolInfo } from '../utils/types.js';
6
+ import type { McpServerConfig, PromptInfo, ResourceInfo, ResourceTemplateInfo, ServerCatalog, ServerHealth, ServerStatus, ToolInfo } from '../utils/types.js';
7
7
  export declare class ServerRegistry extends EventEmitter {
8
8
  private readonly healthCheckMs;
9
9
  private servers;
10
10
  private health;
11
11
  private tools;
12
+ private catalogs;
12
13
  private healthCheckInterval?;
13
14
  constructor(healthCheckMs?: number);
14
15
  register(config: McpServerConfig): void;
@@ -32,6 +33,12 @@ export declare class ServerRegistry extends EventEmitter {
32
33
  /** Every server's entry for a tool name (more than one means the name is ambiguous). */
33
34
  findTools(toolName: string): ToolInfo[];
34
35
  findTool(toolName: string): ToolInfo | undefined;
36
+ /** Store a server's resources, resource templates and prompts. */
37
+ setCatalog(serverId: string, catalog: ServerCatalog): void;
38
+ getCatalog(serverId: string): ServerCatalog;
39
+ getAllResources(): ResourceInfo[];
40
+ getAllResourceTemplates(): ResourceTemplateInfo[];
41
+ getAllPrompts(): PromptInfo[];
35
42
  updateHealth(serverId: string, status: ServerStatus, latencyMs?: number, errorMessage?: string, extra?: Pick<ServerHealth, 'connectedSince' | 'reconnect'>): void;
36
43
  startHealthChecks(checkFn: (serverId: string) => Promise<void>): void;
37
44
  stopHealthChecks(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAI3B,qBAAa,cAAe,SAAQ,YAAY;IAMlC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAL1C,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,mBAAmB,CAAC,CAAiB;gBAEhB,aAAa,SAAS;IAMnD,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAcvC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAYrC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIlD,aAAa,IAAI,eAAe,EAAE;IAIlC,iBAAiB,IAAI,eAAe,EAAE;IAItC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE;IAI/C,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIrD,YAAY,IAAI,YAAY,EAAE;IAM9B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI;IAkBjD,mEAAmE;IACnE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE;IAItC,WAAW,IAAI,QAAQ,EAAE;IAIzB,wFAAwF;IACxF,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE;IASvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAUhD,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,KAAK,GAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB,GAAG,WAAW,CAAM,GAC7D,IAAI;IAyBP,iBAAiB,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAmBrE,gBAAgB,IAAI,IAAI;IASxB,UAAU,IAAI;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB;CAYF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAI3B,qBAAa,cAAe,SAAQ,YAAY;IAOlC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAN1C,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,mBAAmB,CAAC,CAAiB;gBAEhB,aAAa,SAAS;IAMnD,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAcvC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAarC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIlD,aAAa,IAAI,eAAe,EAAE;IAIlC,iBAAiB,IAAI,eAAe,EAAE;IAItC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE;IAI/C,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIrD,YAAY,IAAI,YAAY,EAAE;IAM9B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI;IAkBjD,mEAAmE;IACnE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE;IAItC,WAAW,IAAI,QAAQ,EAAE;IAIzB,wFAAwF;IACxF,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE;IASvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAUhD,kEAAkE;IAClE,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAM1D,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa;IAI3C,eAAe,IAAI,YAAY,EAAE;IAIjC,uBAAuB,IAAI,oBAAoB,EAAE;IAIjD,aAAa,IAAI,UAAU,EAAE;IAM7B,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,KAAK,GAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB,GAAG,WAAW,CAAM,GAC7D,IAAI;IAyBP,iBAAiB,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAmBrE,gBAAgB,IAAI,IAAI;IASxB,UAAU,IAAI;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB;CAYF"}
@@ -10,6 +10,7 @@ export class ServerRegistry extends EventEmitter {
10
10
  servers = new Map();
11
11
  health = new Map();
12
12
  tools = new Map(); // serverId -> tools
13
+ catalogs = new Map(); // serverId -> resources / prompts
13
14
  healthCheckInterval;
14
15
  constructor(healthCheckMs = 30_000) {
15
16
  super();
@@ -35,6 +36,7 @@ export class ServerRegistry extends EventEmitter {
35
36
  this.servers.delete(serverId);
36
37
  this.health.delete(serverId);
37
38
  this.tools.delete(serverId);
39
+ this.catalogs.delete(serverId);
38
40
  logger.info(`Unregistered MCP server: ${serverId}`);
39
41
  this.emit('unregistered', serverId);
40
42
  return true;
@@ -107,6 +109,26 @@ export class ServerRegistry extends EventEmitter {
107
109
  }
108
110
  return undefined;
109
111
  }
112
+ // ─── Resources & prompts ────────────────────────────────────────────────────
113
+ /** Store a server's resources, resource templates and prompts. */
114
+ setCatalog(serverId, catalog) {
115
+ if (!this.servers.has(serverId))
116
+ return;
117
+ this.catalogs.set(serverId, catalog);
118
+ this.emit('catalog-updated', serverId, catalog);
119
+ }
120
+ getCatalog(serverId) {
121
+ return this.catalogs.get(serverId) ?? { resources: [], resourceTemplates: [], prompts: [] };
122
+ }
123
+ getAllResources() {
124
+ return [...this.catalogs.values()].flatMap((c) => c.resources);
125
+ }
126
+ getAllResourceTemplates() {
127
+ return [...this.catalogs.values()].flatMap((c) => c.resourceTemplates);
128
+ }
129
+ getAllPrompts() {
130
+ return [...this.catalogs.values()].flatMap((c) => c.prompts);
131
+ }
110
132
  // ─── Health Updates ─────────────────────────────────────────────────────────
111
133
  updateHealth(serverId, status, latencyMs, errorMessage, extra = {}) {
112
134
  if (!this.servers.has(serverId))
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"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"}