@1mcp/agent 0.7.0 → 0.8.2

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 (86) hide show
  1. package/README.md +55 -0
  2. package/build/capabilities/capabilityManager.d.ts +34 -0
  3. package/build/capabilities/capabilityManager.d.ts.map +1 -0
  4. package/build/capabilities/capabilityManager.js +1 -0
  5. package/build/capabilities/capabilityManager.js.map +1 -0
  6. package/build/client.d.ts +25 -0
  7. package/build/client.d.ts.map +1 -0
  8. package/build/client.js +3 -10
  9. package/build/client.js.map +1 -0
  10. package/build/clients/clientManager.d.ts +40 -0
  11. package/build/clients/clientManager.d.ts.map +1 -0
  12. package/build/clients/clientManager.js +1 -0
  13. package/build/clients/clientManager.js.map +1 -0
  14. package/build/config/configManager.d.ts +54 -0
  15. package/build/config/configManager.d.ts.map +1 -0
  16. package/build/config/configManager.js +1 -0
  17. package/build/config/configManager.js.map +1 -0
  18. package/build/config/transportConfig.d.ts +7 -0
  19. package/build/config/transportConfig.d.ts.map +1 -0
  20. package/build/config/transportConfig.js +1 -0
  21. package/build/config/transportConfig.js.map +1 -0
  22. package/build/constants.d.ts +43 -0
  23. package/build/constants.d.ts.map +1 -0
  24. package/build/constants.js +19 -4
  25. package/build/constants.js.map +1 -0
  26. package/build/handlers/notificationHandlers.d.ts +14 -0
  27. package/build/handlers/notificationHandlers.d.ts.map +1 -0
  28. package/build/handlers/notificationHandlers.js +1 -0
  29. package/build/handlers/notificationHandlers.js.map +1 -0
  30. package/build/handlers/requestHandlers.d.ts +10 -0
  31. package/build/handlers/requestHandlers.d.ts.map +1 -0
  32. package/build/handlers/requestHandlers.js +1 -0
  33. package/build/handlers/requestHandlers.js.map +1 -0
  34. package/build/index.d.ts +3 -0
  35. package/build/index.d.ts.map +1 -0
  36. package/build/index.js +6 -1
  37. package/build/index.js.map +1 -0
  38. package/build/logger/logger.d.ts +13 -0
  39. package/build/logger/logger.d.ts.map +1 -0
  40. package/build/logger/logger.js +5 -35
  41. package/build/logger/logger.js.map +1 -0
  42. package/build/middleware/loggingMiddleware.d.ts +6 -0
  43. package/build/middleware/loggingMiddleware.d.ts.map +1 -0
  44. package/build/middleware/loggingMiddleware.js +1 -0
  45. package/build/middleware/loggingMiddleware.js.map +1 -0
  46. package/build/server/expressServer.d.ts +10 -0
  47. package/build/server/expressServer.d.ts.map +1 -0
  48. package/build/server/expressServer.js +2 -11
  49. package/build/server/expressServer.js.map +1 -0
  50. package/build/server.d.ts +7 -0
  51. package/build/server.d.ts.map +1 -0
  52. package/build/server.js +1 -0
  53. package/build/server.js.map +1 -0
  54. package/build/serverManager.d.ts +25 -0
  55. package/build/serverManager.d.ts.map +1 -0
  56. package/build/serverManager.js +4 -2
  57. package/build/serverManager.js.map +1 -0
  58. package/build/services/configReloadService.d.ts +37 -0
  59. package/build/services/configReloadService.d.ts.map +1 -0
  60. package/build/services/configReloadService.js +1 -0
  61. package/build/services/configReloadService.js.map +1 -0
  62. package/build/types.d.ts +129 -0
  63. package/build/types.d.ts.map +1 -0
  64. package/build/types.js +1 -0
  65. package/build/types.js.map +1 -0
  66. package/build/utils/clientFiltering.d.ts +37 -0
  67. package/build/utils/clientFiltering.d.ts.map +1 -0
  68. package/build/utils/clientFiltering.js +1 -0
  69. package/build/utils/clientFiltering.js.map +1 -0
  70. package/build/utils/errorHandling.d.ts +62 -0
  71. package/build/utils/errorHandling.d.ts.map +1 -0
  72. package/build/utils/errorHandling.js +1 -0
  73. package/build/utils/errorHandling.js.map +1 -0
  74. package/build/utils/errorTypes.d.ts +25 -0
  75. package/build/utils/errorTypes.d.ts.map +1 -0
  76. package/build/utils/errorTypes.js +1 -0
  77. package/build/utils/errorTypes.js.map +1 -0
  78. package/package.json +8 -9
  79. package/build/clients/clientManager.test.js +0 -172
  80. package/build/config/configManager.test.js +0 -92
  81. package/build/logger/mcpTransport.js +0 -150
  82. package/build/serverManager.test.js +0 -158
  83. package/build/test-utils/fixtures/commonFixtures.js +0 -44
  84. package/build/test-utils/helpers/testHelpers.js +0 -23
  85. package/build/test-utils/mocks/commonMocks.js +0 -65
  86. package/build/utils/clientFiltering.test.js +0 -124
@@ -1,6 +1,4 @@
1
1
  import winston from 'winston';
2
- import { MCPTransport } from './mcpTransport.js';
3
- import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
4
2
  // Map MCP log levels to Winston log levels
5
3
  const MCP_TO_WINSTON_LEVEL = {
6
4
  debug: 'debug',
@@ -36,37 +34,12 @@ const logger = winston.createLogger({
36
34
  // Prevent logger from exiting on error
37
35
  exitOnError: false,
38
36
  });
39
- // Store a reference to the MCP transport
40
- let mcpTransport = null;
41
37
  /**
42
- * Adds the MCP transport to the logger
43
- * @param server The MCP server instance
44
- * @param loggerName Optional name for the logger in MCP notifications
38
+ * Enable the console transport
45
39
  */
46
- export function addMCPTransport(server, loggerName) {
47
- // Add the MCP transport to the logger
48
- mcpTransport = new MCPTransport({
49
- server,
50
- loggerName: loggerName || '1mcp',
51
- level: 'info',
52
- });
53
- logger.transports = [mcpTransport];
54
- // Add appropriate transport based on server type
55
- if (server instanceof SSEServerTransport) {
56
- // For SSE server, add console transport for visibility
57
- logger.add(new winston.transports.Console({
58
- format: consoleFormat,
59
- level: 'info',
60
- }));
61
- }
62
- }
63
- /**
64
- * Set the connection status of the MCP transport
65
- * @param connected Whether the server is connected
66
- */
67
- export function setMCPTransportConnected(connected) {
68
- if (mcpTransport) {
69
- mcpTransport.setConnected(connected);
40
+ export function enableConsoleTransport() {
41
+ if (logger.transports.length > 0) {
42
+ logger.transports[0].silent = false;
70
43
  }
71
44
  }
72
45
  /**
@@ -81,9 +54,6 @@ export function setLogLevel(mcpLevel) {
81
54
  logger.transports.forEach((transport) => {
82
55
  transport.level = winstonLevel;
83
56
  });
84
- // Also set the level for the MCP transport if it exists
85
- if (mcpTransport) {
86
- mcpTransport.level = winstonLevel;
87
- }
88
57
  }
89
58
  export default logger;
59
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
+ /**
3
+ * Enhances an MCP server with request/response logging
4
+ */
5
+ export declare function enhanceServerWithLogging(server: Server): void;
6
+ //# sourceMappingURL=loggingMiddleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loggingMiddleware.d.ts","sourceRoot":"","sources":["../../src/middleware/loggingMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AA0InE;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CA2B7D"}
@@ -112,3 +112,4 @@ export function enhanceServerWithLogging(server) {
112
112
  return originalNotification(notification);
113
113
  };
114
114
  }
115
+ //# sourceMappingURL=loggingMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loggingMiddleware.js","sourceRoot":"","sources":["../../src/middleware/loggingMiddleware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { ServerManager } from '../serverManager.js';
2
+ export declare class ExpressServer {
3
+ private app;
4
+ private serverManager;
5
+ constructor(serverManager: ServerManager);
6
+ private setupMiddleware;
7
+ private setupRoutes;
8
+ start(port: number, host: string): void;
9
+ }
10
+ //# sourceMappingURL=expressServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressServer.d.ts","sourceRoot":"","sources":["../../src/server/expressServer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,aAAa,CAAgB;gBAEzB,aAAa,EAAE,aAAa;IAOxC,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,WAAW;IAwEZ,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAK/C"}
@@ -1,6 +1,6 @@
1
1
  import express from 'express';
2
2
  import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
3
- import logger, { setMCPTransportConnected } from '../logger/logger.js';
3
+ import logger from '../logger/logger.js';
4
4
  import { SSE_ENDPOINT, MESSAGES_ENDPOINT, ERROR_CODES } from '../constants.js';
5
5
  export class ExpressServer {
6
6
  app;
@@ -45,19 +45,9 @@ export class ExpressServer {
45
45
  }
46
46
  // Connect the transport using the server manager
47
47
  await this.serverManager.connectTransport(transport, transport.sessionId, tags);
48
- // Update MCP transport connection status when a client connects
49
- if (this.serverManager.getActiveTransportsCount() === 1) {
50
- setMCPTransportConnected(true);
51
- logger.info('First client connected, enabling MCP logging transport');
52
- }
53
48
  transport.onclose = () => {
54
49
  this.serverManager.disconnectTransport(transport.sessionId);
55
50
  logger.info('transport closed', transport.sessionId);
56
- // Update MCP transport connection status when all clients disconnect
57
- if (this.serverManager.getActiveTransportsCount() === 0) {
58
- setMCPTransportConnected(false);
59
- logger.info('All clients disconnected, disabling MCP logging transport');
60
- }
61
51
  };
62
52
  }
63
53
  catch (error) {
@@ -107,3 +97,4 @@ export class ExpressServer {
107
97
  });
108
98
  }
109
99
  }
100
+ //# sourceMappingURL=expressServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressServer.js","sourceRoot":"","sources":["../../src/server/expressServer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { ServerManager } from './serverManager.js';
2
+ /**
3
+ * Main function to set up the MCP server
4
+ */
5
+ declare function setupServer(): Promise<ServerManager>;
6
+ export { setupServer };
7
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD;;GAEG;AACH,iBAAe,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC,CAwBnD;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
package/build/server.js CHANGED
@@ -26,3 +26,4 @@ async function setupServer() {
26
26
  }
27
27
  }
28
28
  export { setupServer };
29
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D;;GAEG;AACH,KAAK,UAAU,WAAW;IACxB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,kBAAkB,EAAE,CAAC;QACnE,uCAAuC;QACvC,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,aAAa,CAAC,CAAC;QAEpE,oCAAoC;QACpC,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC;QAE9D,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,CAC7C,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,kBAAkB,EAAE,EACtD,EAAE,YAAY,EAAE,uBAAuB,EAAE,EACzC,OAAO,EACP,UAAU,CACX,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,aAAa,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;QAClD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
2
+ import { Clients, ServerInfo } from './types.js';
3
+ export declare class ServerManager {
4
+ private static instance;
5
+ private servers;
6
+ private serverConfig;
7
+ private serverCapabilities;
8
+ private clients;
9
+ private transports;
10
+ private constructor();
11
+ static getInstance(config: {
12
+ name: string;
13
+ version: string;
14
+ }, capabilities: {
15
+ capabilities: Record<string, unknown>;
16
+ }, clients: Clients, transports: Record<string, Transport>): ServerManager;
17
+ connectTransport(transport: Transport, sessionId: string, tags?: string[]): Promise<void>;
18
+ disconnectTransport(sessionId: string): void;
19
+ getTransport(sessionId: string): Transport | undefined;
20
+ getTransports(): Map<string, Transport>;
21
+ getClientTransports(): Record<string, Transport>;
22
+ getActiveTransportsCount(): number;
23
+ getServer(sessionId: string): ServerInfo | undefined;
24
+ }
25
+ //# sourceMappingURL=serverManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverManager.d.ts","sourceRoot":"","sources":["../src/serverManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAK1E,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,kBAAkB,CAA4C;IAEtE,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,UAAU,CAAiC;IAEnD,OAAO;WAYO,WAAW,CACvB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EACzC,YAAY,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EACvD,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GACpC,aAAa;IAOH,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC/F,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQ5C,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAItD,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;IAUvC,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;IAIhD,wBAAwB,IAAI,MAAM;IAIlC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;CAG5D"}
@@ -26,12 +26,13 @@ export class ServerManager {
26
26
  try {
27
27
  // Create a new server instance for this transport
28
28
  const server = new Server(this.serverConfig, this.serverCapabilities);
29
- // Enhance server with logging middleware
30
- enhanceServerWithLogging(server);
29
+ // Create server info object first
31
30
  const serverInfo = {
32
31
  server,
33
32
  tags,
34
33
  };
34
+ // Enhance server with logging middleware
35
+ enhanceServerWithLogging(server);
35
36
  // Set up capabilities for this server instance
36
37
  await setupCapabilities(this.clients, serverInfo);
37
38
  // Initialize the configuration reload service
@@ -76,3 +77,4 @@ export class ServerManager {
76
77
  return this.servers.get(sessionId);
77
78
  }
78
79
  }
80
+ //# sourceMappingURL=serverManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverManager.js","sourceRoot":"","sources":["../src/serverManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { ServerInfo, EnhancedTransport } from '../types.js';
2
+ /**
3
+ * Service to handle dynamic configuration reloading
4
+ */
5
+ export declare class ConfigReloadService {
6
+ private static instance;
7
+ private serverInfo;
8
+ private currentTransports;
9
+ private isReloading;
10
+ /**
11
+ * Private constructor to enforce singleton pattern
12
+ */
13
+ private constructor();
14
+ /**
15
+ * Get the singleton instance of the ConfigReloadService
16
+ * @returns The ConfigReloadService instance
17
+ */
18
+ static getInstance(): ConfigReloadService;
19
+ /**
20
+ * Initialize the service with the server instance
21
+ * @param serverInfo The MCP server instance
22
+ * @param initialTransports The initial transports
23
+ */
24
+ initialize(serverInfo: ServerInfo, initialTransports: Record<string, EnhancedTransport>): void;
25
+ /**
26
+ * Handle configuration changes
27
+ * @param newConfig The new transport configuration
28
+ */
29
+ private handleConfigChange;
30
+ /**
31
+ * Stop the service and clean up resources
32
+ */
33
+ stop(): void;
34
+ }
35
+ declare const _default: ConfigReloadService;
36
+ export default _default;
37
+ //# sourceMappingURL=configReloadService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configReloadService.d.ts","sourceRoot":"","sources":["../../src/services/configReloadService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAK7E;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAC7C,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,iBAAiB,CAAyC;IAClE,OAAO,CAAC,WAAW,CAAS;IAE5B;;OAEG;IACH,OAAO;IAEP;;;OAGG;WACW,WAAW,IAAI,mBAAmB;IAOhD;;;;OAIG;IACI,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,IAAI;IAerG;;;OAGG;YACW,kBAAkB;IA0ChC;;OAEG;IACI,IAAI,IAAI,IAAI;CAMpB;;AAED,wBAAiD"}
@@ -91,3 +91,4 @@ export class ConfigReloadService {
91
91
  }
92
92
  }
93
93
  export default ConfigReloadService.getInstance();
94
+ //# sourceMappingURL=configReloadService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configReloadService.js","sourceRoot":"","sources":["../../src/services/configReloadService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ import { z } from 'zod';
2
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
4
+ import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
5
+ import { ServerCapabilities } from '@modelcontextprotocol/sdk/types.js';
6
+ /**
7
+ * Enhanced transport interface that includes MCP-specific properties
8
+ */
9
+ export interface EnhancedTransport extends Transport {
10
+ timeout?: number;
11
+ tags?: string[];
12
+ }
13
+ /**
14
+ * Base interface for common transport properties
15
+ */
16
+ export interface BaseTransportConfig {
17
+ readonly timeout?: number;
18
+ readonly disabled?: boolean;
19
+ readonly tags?: string[];
20
+ }
21
+ /**
22
+ * Common configuration for HTTP-based transports (HTTP and SSE)
23
+ */
24
+ export interface HTTPBasedTransportConfig extends BaseTransportConfig {
25
+ readonly type: 'http' | 'sse';
26
+ readonly url: string;
27
+ readonly headers?: Record<string, string>;
28
+ }
29
+ /**
30
+ * Stdio transport specific configuration
31
+ */
32
+ export interface StdioTransportConfig extends BaseTransportConfig {
33
+ readonly type: 'stdio';
34
+ readonly command: string;
35
+ readonly args?: string[];
36
+ readonly stderr?: string | number;
37
+ readonly cwd?: string;
38
+ readonly env?: Record<string, string>;
39
+ }
40
+ /**
41
+ * Zod schema for transport configuration
42
+ */
43
+ export declare const transportConfigSchema: z.ZodObject<{
44
+ type: z.ZodOptional<z.ZodEnum<["stdio", "sse", "http"]>>;
45
+ disabled: z.ZodOptional<z.ZodBoolean>;
46
+ timeout: z.ZodOptional<z.ZodNumber>;
47
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
48
+ url: z.ZodOptional<z.ZodString>;
49
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
50
+ command: z.ZodOptional<z.ZodString>;
51
+ args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
52
+ stderr: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
53
+ cwd: z.ZodOptional<z.ZodString>;
54
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
55
+ }, "strip", z.ZodTypeAny, {
56
+ type?: "http" | "sse" | "stdio" | undefined;
57
+ url?: string | undefined;
58
+ headers?: Record<string, string> | undefined;
59
+ command?: string | undefined;
60
+ args?: string[] | undefined;
61
+ stderr?: string | number | undefined;
62
+ cwd?: string | undefined;
63
+ env?: Record<string, string> | undefined;
64
+ disabled?: boolean | undefined;
65
+ timeout?: number | undefined;
66
+ tags?: string[] | undefined;
67
+ }, {
68
+ type?: "http" | "sse" | "stdio" | undefined;
69
+ url?: string | undefined;
70
+ headers?: Record<string, string> | undefined;
71
+ command?: string | undefined;
72
+ args?: string[] | undefined;
73
+ stderr?: string | number | undefined;
74
+ cwd?: string | undefined;
75
+ env?: Record<string, string> | undefined;
76
+ disabled?: boolean | undefined;
77
+ timeout?: number | undefined;
78
+ tags?: string[] | undefined;
79
+ }>;
80
+ /**
81
+ * Union type for all transport configurations
82
+ */
83
+ export type TransportConfig = HTTPBasedTransportConfig | StdioTransportConfig;
84
+ /**
85
+ * Type for MCP server parameters derived from transport config schema
86
+ */
87
+ export type MCPServerParams = z.infer<typeof transportConfigSchema>;
88
+ /**
89
+ * Server information including tags
90
+ */
91
+ export interface ServerInfo {
92
+ readonly server: Server;
93
+ readonly tags?: string[];
94
+ }
95
+ /**
96
+ * Enum representing possible client connection states
97
+ */
98
+ export declare enum ClientStatus {
99
+ /** Client is successfully connected */
100
+ Connected = "connected",
101
+ /** Client is disconnected */
102
+ Disconnected = "disconnected",
103
+ /** Client encountered an error */
104
+ Error = "error"
105
+ }
106
+ /**
107
+ * Complete client information including transport, status and history
108
+ */
109
+ export interface ClientInfo {
110
+ readonly name: string;
111
+ readonly transport: EnhancedTransport;
112
+ readonly client: Client;
113
+ readonly status: ClientStatus;
114
+ readonly lastError?: Error;
115
+ readonly lastConnected?: Date;
116
+ capabilities?: ServerCapabilities;
117
+ }
118
+ /**
119
+ * Map of client information indexed by client name
120
+ */
121
+ export type Clients = Record<string, ClientInfo>;
122
+ /**
123
+ * Options for client operations
124
+ */
125
+ export interface OperationOptions {
126
+ readonly retryCount?: number;
127
+ readonly retryDelay?: number;
128
+ }
129
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBhC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,wBAAwB,GAAG,oBAAoB,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,oBAAY,YAAY;IACtB,uCAAuC;IACvC,SAAS,cAAc;IACvB,6BAA6B;IAC7B,YAAY,iBAAiB;IAC7B,kCAAkC;IAClC,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B"}
package/build/types.js CHANGED
@@ -29,3 +29,4 @@ export var ClientStatus;
29
29
  /** Client encountered an error */
30
30
  ClientStatus["Error"] = "error";
31
31
  })(ClientStatus || (ClientStatus = {}));
32
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA4CxB;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAEpC,sBAAsB;IACtB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAExC,+BAA+B;IAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAoBH;;GAEG;AACH,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,uCAAuC;IACvC,uCAAuB,CAAA;IACvB,6BAA6B;IAC7B,6CAA6B,CAAA;IAC7B,kCAAkC;IAClC,+BAAe,CAAA;AACjB,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB"}
@@ -0,0 +1,37 @@
1
+ import { ServerCapabilities } from '@modelcontextprotocol/sdk/types.js';
2
+ import { Clients } from '../types.js';
3
+ /**
4
+ * Filters clients by tags
5
+ * @param clients Record of client instances
6
+ * @param tags Array of tags to filter by
7
+ * @returns Filtered record of client instances
8
+ */
9
+ export declare function filterClientsByTags(clients: Clients, tags?: string[]): Clients;
10
+ /**
11
+ * Filters clients by capabilities
12
+ * @param clients Record of client instances
13
+ * @param capabilities Object containing capabilities to filter by
14
+ * @returns Filtered record of client instances
15
+ */
16
+ export declare function filterClientsByCapabilities(clients: Clients, capabilities: ServerCapabilities): Clients;
17
+ type ClientFilter = (clients: Clients) => Clients;
18
+ /**
19
+ * Filters clients by multiple criteria
20
+ * @param filters Array of client filters
21
+ * @returns Filtered record of client instances
22
+ */
23
+ export declare function filterClients(...filters: ClientFilter[]): ClientFilter;
24
+ /**
25
+ * Filters clients by capabilities
26
+ * @param requiredCapabilities Object containing capabilities to filter by
27
+ * @returns Filtered record of client instances
28
+ */
29
+ export declare function byCapabilities(requiredCapabilities: ServerCapabilities): ClientFilter;
30
+ /**
31
+ * Filters clients by tags
32
+ * @param tags Array of tags to filter by
33
+ * @returns Filtered record of client instances
34
+ */
35
+ export declare function byTags(tags?: string[]): ClientFilter;
36
+ export {};
37
+ //# sourceMappingURL=clientFiltering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientFiltering.d.ts","sourceRoot":"","sources":["../../src/utils/clientFiltering.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAyB9E;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,kBAAkB,GAAG,OAAO,CAwBvG;AAED,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;AAElD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,CAItE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,oBAAoB,EAAE,kBAAkB,GAAG,YAAY,CAYrF;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,YAAY,CAYpD"}
@@ -99,3 +99,4 @@ export function byTags(tags) {
99
99
  }, {});
100
100
  };
101
101
  }
102
+ //# sourceMappingURL=clientFiltering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientFiltering.js","sourceRoot":"","sources":["../../src/utils/clientFiltering.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { MCPError, MCPErrorType } from './errorTypes.js';
2
+ /**
3
+ * Wraps a function with error handling
4
+ * @param fn The function to wrap
5
+ * @param errorMessage The error message to use if the function fails
6
+ * @returns The wrapped function
7
+ */
8
+ export declare function withErrorHandling<T, Args extends any[]>(fn: (...args: Args) => Promise<T>, errorMessage: string): (...args: Args) => Promise<T>;
9
+ /**
10
+ * Normalizes an error to an MCPError type
11
+ * @param error The error to normalize
12
+ * @param errorMessage The error message to use if the error is not an MCPError
13
+ * @returns The normalized error
14
+ */
15
+ export declare function normalizeError(error: unknown, errorMessage: string): MCPErrorType;
16
+ /**
17
+ * Checks if an error is a specific MCPError type
18
+ * @param error The error to check
19
+ * @param errorType The error type to check against
20
+ * @returns True if the error is of the specified type
21
+ */
22
+ export declare function isMCPError<T extends MCPError>(error: unknown, errorType: new (...args: any[]) => T): error is T;
23
+ /**
24
+ * Gets the error code from an error
25
+ * @param error The error to get the code from
26
+ * @returns The error code
27
+ */
28
+ export declare function getErrorCode(error: unknown): number;
29
+ /**
30
+ * Gets the error message from an error
31
+ * @param error The error to get the message from
32
+ * @returns The error message
33
+ */
34
+ export declare function getErrorMessage(error: unknown): string;
35
+ /**
36
+ * Gets the error cause from an error
37
+ * @param error The error to get the cause from
38
+ * @returns The error cause
39
+ */
40
+ export declare function getErrorCause(error: unknown): Error | undefined;
41
+ /**
42
+ * Formats an error for JSON-RPC response
43
+ * @param error The error to format
44
+ * @returns A formatted error object
45
+ */
46
+ export declare function formatErrorResponse(error: any): {
47
+ code: number;
48
+ message: string;
49
+ data?: any;
50
+ };
51
+ /**
52
+ * Extracts client name and resource name from a URI
53
+ * @param uri The URI to parse
54
+ * @param separator The separator used in the URI
55
+ * @returns An object with clientName and resourceName
56
+ * @throws InvalidRequestError if the URI is invalid
57
+ */
58
+ export declare function parseUri(uri: string, separator: string): {
59
+ clientName: string;
60
+ resourceName: string;
61
+ };
62
+ //# sourceMappingURL=errorHandling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorHandling.d.ts","sourceRoot":"","sources":["../../src/utils/errorHandling.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAuB,MAAM,iBAAiB,CAAC;AAE9E;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,EAAE,EACrD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EACjC,YAAY,EAAE,MAAM,GACnB,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAkB/B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,YAAY,CAUjF;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAE/G;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKnD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKtD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAK/D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAA;CAAE,CAa7F;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAWrG"}
@@ -117,3 +117,4 @@ export function parseUri(uri, separator) {
117
117
  resourceName: parts[1],
118
118
  };
119
119
  }
120
+ //# sourceMappingURL=errorHandling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorHandling.js","sourceRoot":"","sources":["../../src/utils/errorHandling.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export declare class MCPError extends Error {
2
+ code: number;
3
+ data?: any;
4
+ constructor(message: string, code: number, data?: any);
5
+ }
6
+ export declare class ClientConnectionError extends MCPError {
7
+ constructor(clientName: string, cause: Error);
8
+ }
9
+ export declare class ClientNotFoundError extends MCPError {
10
+ constructor(clientName: string);
11
+ }
12
+ export declare class ClientOperationError extends MCPError {
13
+ constructor(clientName: string, operation: string, cause: Error, context?: Record<string, unknown>);
14
+ }
15
+ export declare class ValidationError extends MCPError {
16
+ constructor(message: string, validationErrors: any);
17
+ }
18
+ export declare class TransportError extends MCPError {
19
+ constructor(transportName: string, cause: Error);
20
+ }
21
+ export declare class InvalidRequestError extends MCPError {
22
+ constructor(message: string, data?: any);
23
+ }
24
+ export type MCPErrorType = ClientConnectionError | ClientNotFoundError | ClientOperationError | ValidationError | TransportError | InvalidRequestError;
25
+ //# sourceMappingURL=errorTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorTypes.d.ts","sourceRoot":"","sources":["../../src/utils/errorTypes.ts"],"names":[],"mappings":"AAEA,qBAAa,QAAS,SAAQ,KAAK;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,GAAG,CAAC;gBAEC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;CAMtD;AAED,qBAAa,qBAAsB,SAAQ,QAAQ;gBACrC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAI7C;AAED,qBAAa,mBAAoB,SAAQ,QAAQ;gBACnC,UAAU,EAAE,MAAM;CAI/B;AAED,qBAAa,oBAAqB,SAAQ,QAAQ;gBACpC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQnG;AAED,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG;CAInD;AAED,qBAAa,cAAe,SAAQ,QAAQ;gBAC9B,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAIhD;AAED,qBAAa,mBAAoB,SAAQ,QAAQ;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;CAIxC;AAED,MAAM,MAAM,YAAY,GACpB,qBAAqB,GACrB,mBAAmB,GACnB,oBAAoB,GACpB,eAAe,GACf,cAAc,GACd,mBAAmB,CAAC"}
@@ -45,3 +45,4 @@ export class InvalidRequestError extends MCPError {
45
45
  this.name = 'InvalidRequestError';
46
46
  }
47
47
  }
48
+ //# sourceMappingURL=errorTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorTypes.js","sourceRoot":"","sources":["../../src/utils/errorTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,IAAI,CAAS;IACb,IAAI,CAAO;IAEX,YAAY,OAAe,EAAE,IAAY,EAAE,IAAU;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,QAAQ;IACjD,YAAY,UAAkB,EAAE,KAAY;QAC1C,KAAK,CAAC,+BAA+B,UAAU,KAAK,KAAK,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACjH,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,QAAQ;IAC/C,YAAY,UAAkB;QAC5B,KAAK,CAAC,qBAAqB,UAAU,EAAE,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,QAAQ;IAChD,YAAY,UAAkB,EAAE,SAAiB,EAAE,KAAY,EAAE,OAAiC;QAChG,KAAK,CACH,aAAa,SAAS,qBAAqB,UAAU,KAAK,KAAK,CAAC,OAAO,EAAE,EACzE,WAAW,CAAC,qBAAqB,EACjC,EAAE,KAAK,EAAE,OAAO,EAAE,CACnB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAC3C,YAAY,OAAe,EAAE,gBAAqB;QAChD,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,cAAc,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAC1C,YAAY,aAAqB,EAAE,KAAY;QAC7C,KAAK,CAAC,uBAAuB,aAAa,KAAK,KAAK,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAChH,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,QAAQ;IAC/C,YAAY,OAAe,EAAE,IAAU;QACrC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF"}