@elliotding/ai-agent-mcp 0.1.0
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/dist/api/cached-client.d.ts +48 -0
- package/dist/api/cached-client.d.ts.map +1 -0
- package/dist/api/cached-client.js +126 -0
- package/dist/api/cached-client.js.map +1 -0
- package/dist/api/client.d.ts +213 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +326 -0
- package/dist/api/client.js.map +1 -0
- package/dist/auth/index.d.ts +8 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +26 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/middleware.d.ts +36 -0
- package/dist/auth/middleware.d.ts.map +1 -0
- package/dist/auth/middleware.js +194 -0
- package/dist/auth/middleware.js.map +1 -0
- package/dist/auth/permissions.d.ts +60 -0
- package/dist/auth/permissions.d.ts.map +1 -0
- package/dist/auth/permissions.js +256 -0
- package/dist/auth/permissions.js.map +1 -0
- package/dist/auth/token-validator.d.ts +52 -0
- package/dist/auth/token-validator.d.ts.map +1 -0
- package/dist/auth/token-validator.js +217 -0
- package/dist/auth/token-validator.js.map +1 -0
- package/dist/cache/cache-manager.d.ts +49 -0
- package/dist/cache/cache-manager.d.ts.map +1 -0
- package/dist/cache/cache-manager.js +191 -0
- package/dist/cache/cache-manager.js.map +1 -0
- package/dist/cache/index.d.ts +6 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +12 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/redis-client.d.ts +45 -0
- package/dist/cache/redis-client.d.ts.map +1 -0
- package/dist/cache/redis-client.js +210 -0
- package/dist/cache/redis-client.js.map +1 -0
- package/dist/config/constants.d.ts +28 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +31 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/index.d.ts +54 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +168 -0
- package/dist/config/index.js.map +1 -0
- package/dist/filesystem/manager.d.ts +45 -0
- package/dist/filesystem/manager.d.ts.map +1 -0
- package/dist/filesystem/manager.js +246 -0
- package/dist/filesystem/manager.js.map +1 -0
- package/dist/git/multi-source-manager.d.ts +62 -0
- package/dist/git/multi-source-manager.d.ts.map +1 -0
- package/dist/git/multi-source-manager.js +293 -0
- package/dist/git/multi-source-manager.js.map +1 -0
- package/dist/git/operations.d.ts +27 -0
- package/dist/git/operations.d.ts.map +1 -0
- package/dist/git/operations.js +83 -0
- package/dist/git/operations.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +109 -0
- package/dist/index.js.map +1 -0
- package/dist/monitoring/health.d.ts +35 -0
- package/dist/monitoring/health.d.ts.map +1 -0
- package/dist/monitoring/health.js +105 -0
- package/dist/monitoring/health.js.map +1 -0
- package/dist/resources/index.d.ts +6 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +10 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/loader.d.ts +87 -0
- package/dist/resources/loader.d.ts.map +1 -0
- package/dist/resources/loader.js +452 -0
- package/dist/resources/loader.js.map +1 -0
- package/dist/server/http.d.ts +57 -0
- package/dist/server/http.d.ts.map +1 -0
- package/dist/server/http.js +336 -0
- package/dist/server/http.js.map +1 -0
- package/dist/server.d.ts +13 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +157 -0
- package/dist/server.js.map +1 -0
- package/dist/session/manager.d.ts +91 -0
- package/dist/session/manager.d.ts.map +1 -0
- package/dist/session/manager.js +251 -0
- package/dist/session/manager.js.map +1 -0
- package/dist/tools/index.d.ts +11 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +27 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/manage-subscription.d.ts +43 -0
- package/dist/tools/manage-subscription.d.ts.map +1 -0
- package/dist/tools/manage-subscription.js +268 -0
- package/dist/tools/manage-subscription.js.map +1 -0
- package/dist/tools/registry.d.ts +40 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +85 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/search-resources.d.ts +31 -0
- package/dist/tools/search-resources.d.ts.map +1 -0
- package/dist/tools/search-resources.js +154 -0
- package/dist/tools/search-resources.js.map +1 -0
- package/dist/tools/sync-resources.d.ts +41 -0
- package/dist/tools/sync-resources.d.ts.map +1 -0
- package/dist/tools/sync-resources.js +606 -0
- package/dist/tools/sync-resources.js.map +1 -0
- package/dist/tools/uninstall-resource.d.ts +30 -0
- package/dist/tools/uninstall-resource.d.ts.map +1 -0
- package/dist/tools/uninstall-resource.js +259 -0
- package/dist/tools/uninstall-resource.js.map +1 -0
- package/dist/tools/upload-resource.d.ts +77 -0
- package/dist/tools/upload-resource.d.ts.map +1 -0
- package/dist/tools/upload-resource.js +252 -0
- package/dist/tools/upload-resource.js.map +1 -0
- package/dist/transport/sse.d.ts +29 -0
- package/dist/transport/sse.d.ts.map +1 -0
- package/dist/transport/sse.js +271 -0
- package/dist/transport/sse.js.map +1 -0
- package/dist/types/errors.d.ts +60 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +112 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +23 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/mcp.d.ts +50 -0
- package/dist/types/mcp.d.ts.map +1 -0
- package/dist/types/mcp.js +6 -0
- package/dist/types/mcp.js.map +1 -0
- package/dist/types/resources.d.ts +109 -0
- package/dist/types/resources.d.ts.map +1 -0
- package/dist/types/resources.js +7 -0
- package/dist/types/resources.js.map +1 -0
- package/dist/types/tools.d.ts +147 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +6 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/utils/cursor-paths.d.ts +49 -0
- package/dist/utils/cursor-paths.d.ts.map +1 -0
- package/dist/utils/cursor-paths.js +116 -0
- package/dist/utils/cursor-paths.js.map +1 -0
- package/dist/utils/log-cleaner.d.ts +18 -0
- package/dist/utils/log-cleaner.d.ts.map +1 -0
- package/dist/utils/log-cleaner.js +112 -0
- package/dist/utils/log-cleaner.js.map +1 -0
- package/dist/utils/logger.d.ts +59 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +292 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/validation.d.ts +58 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +214 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +58 -0
- package/src/api/cached-client.ts +144 -0
- package/src/api/client.ts +578 -0
- package/src/auth/index.ts +11 -0
- package/src/auth/middleware.ts +244 -0
- package/src/auth/permissions.ts +317 -0
- package/src/auth/token-validator.ts +294 -0
- package/src/cache/cache-manager.ts +243 -0
- package/src/cache/index.ts +6 -0
- package/src/cache/redis-client.ts +249 -0
- package/src/config/constants.ts +33 -0
- package/src/config/index.ts +228 -0
- package/src/filesystem/manager.ts +235 -0
- package/src/git/multi-source-manager.ts +333 -0
- package/src/git/operations.ts +93 -0
- package/src/index.ts +139 -0
- package/src/monitoring/health.ts +132 -0
- package/src/resources/index.ts +13 -0
- package/src/resources/loader.ts +530 -0
- package/src/server/http.ts +427 -0
- package/src/server.ts +191 -0
- package/src/session/manager.ts +296 -0
- package/src/tools/index.ts +11 -0
- package/src/tools/manage-subscription.ts +332 -0
- package/src/tools/registry.ts +97 -0
- package/src/tools/search-resources.ts +177 -0
- package/src/tools/sync-resources.ts +662 -0
- package/src/tools/uninstall-resource.ts +248 -0
- package/src/tools/upload-resource.ts +258 -0
- package/src/transport/sse.ts +308 -0
- package/src/types/errors.ts +146 -0
- package/src/types/index.ts +7 -0
- package/src/types/mcp.ts +61 -0
- package/src/types/resources.ts +141 -0
- package/src/types/tools.ts +175 -0
- package/src/utils/cursor-paths.ts +83 -0
- package/src/utils/log-cleaner.ts +92 -0
- package/src/utils/logger.ts +333 -0
- package/src/utils/validation.ts +262 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/resources/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Server with SSE Support
|
|
3
|
+
* Uses SDK SSEServerTransport for standard MCP-over-SSE protocol,
|
|
4
|
+
* matching the same pattern as the ACM MCP server.
|
|
5
|
+
*/
|
|
6
|
+
import { FastifyInstance } from 'fastify';
|
|
7
|
+
import { type HealthStatus as MonitoringHealthStatus } from '../monitoring/health.js';
|
|
8
|
+
import { CacheManager } from '../cache/cache-manager.js';
|
|
9
|
+
export interface HealthStatus {
|
|
10
|
+
status: 'healthy' | 'unhealthy';
|
|
11
|
+
uptime: number;
|
|
12
|
+
memory: {
|
|
13
|
+
used: number;
|
|
14
|
+
total: number;
|
|
15
|
+
percentage: number;
|
|
16
|
+
};
|
|
17
|
+
sessions: {
|
|
18
|
+
active: number;
|
|
19
|
+
total: number;
|
|
20
|
+
};
|
|
21
|
+
services: MonitoringHealthStatus['services'];
|
|
22
|
+
details?: MonitoringHealthStatus['details'];
|
|
23
|
+
timestamp: string;
|
|
24
|
+
}
|
|
25
|
+
export declare class HTTPServer {
|
|
26
|
+
private fastify;
|
|
27
|
+
private startTime;
|
|
28
|
+
private healthChecker;
|
|
29
|
+
/** Active SDK SSE transports keyed by sessionId */
|
|
30
|
+
private sseTransports;
|
|
31
|
+
constructor(cacheManager?: CacheManager);
|
|
32
|
+
private setupMiddleware;
|
|
33
|
+
private setupRoutes;
|
|
34
|
+
/**
|
|
35
|
+
* Creates a new SDK Server instance and registers all tools from toolRegistry.
|
|
36
|
+
* A fresh instance is created per SSE connection so that each session is
|
|
37
|
+
* isolated (matching ACM's createMCPServer-per-connection pattern).
|
|
38
|
+
*/
|
|
39
|
+
private createMcpServer;
|
|
40
|
+
/**
|
|
41
|
+
* GET /sse — establish SSE stream using SDK SSEServerTransport.
|
|
42
|
+
* Auth is validated via preHandler; user context is forwarded to the MCP server.
|
|
43
|
+
*/
|
|
44
|
+
private handleSSEConnection;
|
|
45
|
+
/**
|
|
46
|
+
* POST /message?sessionId=<id> — deliver JSON-RPC message to the correct transport.
|
|
47
|
+
* The SDK transport's handlePostMessage handles parsing and routing internally.
|
|
48
|
+
*/
|
|
49
|
+
private handleMessage;
|
|
50
|
+
private handleHealth;
|
|
51
|
+
start(): Promise<void>;
|
|
52
|
+
stop(): Promise<void>;
|
|
53
|
+
getFastify(): FastifyInstance;
|
|
54
|
+
setCacheManager(cacheManager: CacheManager): void;
|
|
55
|
+
}
|
|
56
|
+
export declare const httpServer: HTTPServer;
|
|
57
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAgB,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAmBjF,OAAO,EAAiB,KAAK,YAAY,IAAI,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,aAAa,CAA8B;IAEnD,mDAAmD;IACnD,OAAO,CAAC,aAAa,CAA8C;gBAEvD,YAAY,CAAC,EAAE,YAAY;IAkBvC,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,WAAW;IAmCnB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAiEvB;;;OAGG;YACW,mBAAmB;IA8EjC;;;OAGG;YACW,aAAa;YAmCb,YAAY;IA6CpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB3B,UAAU,IAAI,eAAe;IAI7B,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;CAIlD;AAGD,eAAO,MAAM,UAAU,YAAmB,CAAC"}
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* HTTP Server with SSE Support
|
|
4
|
+
* Uses SDK SSEServerTransport for standard MCP-over-SSE protocol,
|
|
5
|
+
* matching the same pattern as the ACM MCP server.
|
|
6
|
+
*/
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.httpServer = exports.HTTPServer = void 0;
|
|
12
|
+
const fastify_1 = __importDefault(require("fastify"));
|
|
13
|
+
const cors_1 = __importDefault(require("@fastify/cors"));
|
|
14
|
+
const helmet_1 = __importDefault(require("@fastify/helmet"));
|
|
15
|
+
const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
16
|
+
const sse_js_1 = require("@modelcontextprotocol/sdk/server/sse.js");
|
|
17
|
+
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
18
|
+
const sync_resources_js_1 = require("../tools/sync-resources.js");
|
|
19
|
+
const config_1 = require("../config");
|
|
20
|
+
const logger_1 = require("../utils/logger");
|
|
21
|
+
const manager_1 = require("../session/manager");
|
|
22
|
+
const registry_1 = require("../tools/registry");
|
|
23
|
+
const middleware_1 = require("../auth/middleware");
|
|
24
|
+
const health_js_1 = require("../monitoring/health.js");
|
|
25
|
+
class HTTPServer {
|
|
26
|
+
fastify;
|
|
27
|
+
startTime = Date.now();
|
|
28
|
+
healthChecker = null;
|
|
29
|
+
/** Active SDK SSE transports keyed by sessionId */
|
|
30
|
+
sseTransports = new Map();
|
|
31
|
+
constructor(cacheManager) {
|
|
32
|
+
this.fastify = (0, fastify_1.default)({
|
|
33
|
+
logger: false,
|
|
34
|
+
bodyLimit: 10 * 1024 * 1024, // 10MB
|
|
35
|
+
});
|
|
36
|
+
if (cacheManager) {
|
|
37
|
+
this.healthChecker = new health_js_1.HealthChecker(cacheManager);
|
|
38
|
+
}
|
|
39
|
+
this.setupMiddleware();
|
|
40
|
+
this.setupRoutes();
|
|
41
|
+
}
|
|
42
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
43
|
+
// Middleware
|
|
44
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
45
|
+
setupMiddleware() {
|
|
46
|
+
this.fastify.register(cors_1.default, {
|
|
47
|
+
origin: true,
|
|
48
|
+
credentials: true,
|
|
49
|
+
});
|
|
50
|
+
this.fastify.register(helmet_1.default, {
|
|
51
|
+
contentSecurityPolicy: false, // Disable for SSE
|
|
52
|
+
});
|
|
53
|
+
this.fastify.addHook('onRequest', async (request) => {
|
|
54
|
+
logger_1.logger.debug({ method: request.method, url: request.url, ip: request.ip }, 'HTTP request received');
|
|
55
|
+
});
|
|
56
|
+
this.fastify.addHook('onResponse', async (request) => {
|
|
57
|
+
logger_1.logger.debug({
|
|
58
|
+
method: request.method,
|
|
59
|
+
url: request.url,
|
|
60
|
+
statusCode: request.raw.statusCode || 200,
|
|
61
|
+
}, 'HTTP response sent');
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
65
|
+
// Routes
|
|
66
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
67
|
+
setupRoutes() {
|
|
68
|
+
// Health check
|
|
69
|
+
this.fastify.get('/health', this.handleHealth.bind(this));
|
|
70
|
+
// SSE connection — GET establishes the stream (SDK standard)
|
|
71
|
+
this.fastify.get('/sse', {
|
|
72
|
+
preHandler: middleware_1.tokenAuthOrLegacyMiddleware,
|
|
73
|
+
handler: this.handleSSEConnection.bind(this),
|
|
74
|
+
});
|
|
75
|
+
// Message endpoint — POST delivers JSON-RPC messages, sessionId in query
|
|
76
|
+
this.fastify.post('/message', this.handleMessage.bind(this));
|
|
77
|
+
// OAuth discovery — return 404 so Cursor skips OAuth handshake
|
|
78
|
+
this.fastify.get('/.well-known/oauth-authorization-server', async (_req, reply) => {
|
|
79
|
+
reply.code(404).send({ error: 'OAuth not supported' });
|
|
80
|
+
});
|
|
81
|
+
// Root info
|
|
82
|
+
this.fastify.get('/', async () => ({
|
|
83
|
+
server: 'CSP AI Agent MCP Server',
|
|
84
|
+
version: '1.0.0',
|
|
85
|
+
transport: 'sse',
|
|
86
|
+
endpoints: {
|
|
87
|
+
health: 'GET /health',
|
|
88
|
+
sse: 'GET /sse',
|
|
89
|
+
message: 'POST /message?sessionId=<id>',
|
|
90
|
+
},
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
94
|
+
// MCP Server factory
|
|
95
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
96
|
+
/**
|
|
97
|
+
* Creates a new SDK Server instance and registers all tools from toolRegistry.
|
|
98
|
+
* A fresh instance is created per SSE connection so that each session is
|
|
99
|
+
* isolated (matching ACM's createMCPServer-per-connection pattern).
|
|
100
|
+
*/
|
|
101
|
+
createMcpServer(userId, email, groups) {
|
|
102
|
+
const server = new index_js_1.Server({ name: 'csp-ai-agent-mcp', version: '0.2.0' }, { capabilities: { tools: {} } });
|
|
103
|
+
// tools/list
|
|
104
|
+
server.setRequestHandler(types_js_1.ListToolsRequestSchema, () => ({
|
|
105
|
+
tools: registry_1.toolRegistry.getMCPToolDefinitions(),
|
|
106
|
+
}));
|
|
107
|
+
// Auto-sync subscribed resources once the MCP handshake is fully complete.
|
|
108
|
+
// Runs in the background so it never blocks the connection setup.
|
|
109
|
+
server.oninitialized = () => {
|
|
110
|
+
logger_1.logger.info({ userId }, 'MCP initialized — triggering background sync_resources');
|
|
111
|
+
(0, sync_resources_js_1.syncResources)({ mode: 'incremental', scope: 'global' }).then((result) => {
|
|
112
|
+
if (result.success) {
|
|
113
|
+
logger_1.logger.info({ userId, synced: result.data?.summary?.synced, cached: result.data?.summary?.cached }, 'Auto sync_resources on connect completed');
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
logger_1.logger.warn({ userId, error: result.error }, 'Auto sync_resources on connect failed');
|
|
117
|
+
}
|
|
118
|
+
}).catch((err) => {
|
|
119
|
+
logger_1.logger.error({ userId, err }, 'Auto sync_resources on connect threw an error');
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
// tools/call
|
|
123
|
+
server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
124
|
+
const { name, arguments: args = {} } = request.params;
|
|
125
|
+
// Permission check when user context is available
|
|
126
|
+
if (userId && groups && groups.length > 0) {
|
|
127
|
+
const permCheck = (0, middleware_1.checkToolCallPermission)(name, { userId, email: email ?? '', groups });
|
|
128
|
+
if (!permCheck.allowed) {
|
|
129
|
+
return {
|
|
130
|
+
content: [{ type: 'text', text: `Permission denied: ${permCheck.reason}` }],
|
|
131
|
+
isError: true,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
try {
|
|
136
|
+
const result = await registry_1.toolRegistry.callTool(name, args);
|
|
137
|
+
const text = typeof result === 'string' ? result : JSON.stringify(result, null, 2);
|
|
138
|
+
return { content: [{ type: 'text', text }] };
|
|
139
|
+
}
|
|
140
|
+
catch (err) {
|
|
141
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
142
|
+
logger_1.logger.error({ toolName: name, err }, 'Tool execution failed');
|
|
143
|
+
return {
|
|
144
|
+
content: [{ type: 'text', text: `Error: ${msg}` }],
|
|
145
|
+
isError: true,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
return server;
|
|
150
|
+
}
|
|
151
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
152
|
+
// Handlers
|
|
153
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
154
|
+
/**
|
|
155
|
+
* GET /sse — establish SSE stream using SDK SSEServerTransport.
|
|
156
|
+
* Auth is validated via preHandler; user context is forwarded to the MCP server.
|
|
157
|
+
*/
|
|
158
|
+
async handleSSEConnection(request, reply) {
|
|
159
|
+
logger_1.logger.info({ ip: request.ip }, 'SSE connection request received');
|
|
160
|
+
const authHeader = request.headers.authorization;
|
|
161
|
+
const token = authHeader?.replace(/^Bearer\s+/i, '');
|
|
162
|
+
if (!token) {
|
|
163
|
+
reply.code(401).send({ error: 'Unauthorized', message: 'Bearer token required' });
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
try {
|
|
167
|
+
// Keep our session manager in sync for health/monitoring endpoints
|
|
168
|
+
const sessionOptions = request.user
|
|
169
|
+
? { userId: request.user.userId, email: request.user.email, groups: request.user.groups }
|
|
170
|
+
: undefined;
|
|
171
|
+
const session = await manager_1.sessionManager.createSession(token, request.ip ?? '', sessionOptions);
|
|
172
|
+
logger_1.logger.info({ sessionId: session.id, userId: session.userId, email: session.email }, 'Session created');
|
|
173
|
+
// Heartbeat to keep proxies/load-balancers from dropping idle SSE streams
|
|
174
|
+
const heartbeat = setInterval(() => {
|
|
175
|
+
if (!reply.raw.destroyed) {
|
|
176
|
+
try {
|
|
177
|
+
reply.raw.write('event: heartbeat\ndata: {}\n\n');
|
|
178
|
+
}
|
|
179
|
+
catch {
|
|
180
|
+
clearInterval(heartbeat);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
clearInterval(heartbeat);
|
|
185
|
+
}
|
|
186
|
+
}, 30_000);
|
|
187
|
+
// Create SDK transport — it takes ownership of reply.raw
|
|
188
|
+
const transport = new sse_js_1.SSEServerTransport('/message', reply.raw);
|
|
189
|
+
const sdkSessionId = transport.sessionId;
|
|
190
|
+
this.sseTransports.set(sdkSessionId, transport);
|
|
191
|
+
transport.onclose = () => {
|
|
192
|
+
logger_1.logger.info({ sdkSessionId, sessionId: session.id }, 'SSE transport closed');
|
|
193
|
+
clearInterval(heartbeat);
|
|
194
|
+
this.sseTransports.delete(sdkSessionId);
|
|
195
|
+
manager_1.sessionManager.closeSession(session.id);
|
|
196
|
+
};
|
|
197
|
+
transport.onerror = (err) => {
|
|
198
|
+
logger_1.logger.warn({ sdkSessionId, error: err.message }, 'SSE transport error');
|
|
199
|
+
};
|
|
200
|
+
// Create a per-connection MCP Server and connect it to the transport
|
|
201
|
+
const mcpServer = this.createMcpServer(request.user?.userId, request.user?.email, request.user?.groups);
|
|
202
|
+
await mcpServer.connect(transport);
|
|
203
|
+
logger_1.logger.info({ sdkSessionId }, 'SSE stream established');
|
|
204
|
+
// Handle client disconnect
|
|
205
|
+
request.raw.on('close', () => {
|
|
206
|
+
clearInterval(heartbeat);
|
|
207
|
+
transport.close().catch(() => { });
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
logger_1.logger.error({ error }, 'Failed to establish SSE connection');
|
|
212
|
+
if (!reply.raw.headersSent) {
|
|
213
|
+
reply.code(500).send({ error: 'Internal Server Error', message: 'Failed to establish connection' });
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* POST /message?sessionId=<id> — deliver JSON-RPC message to the correct transport.
|
|
219
|
+
* The SDK transport's handlePostMessage handles parsing and routing internally.
|
|
220
|
+
*/
|
|
221
|
+
async handleMessage(request, reply) {
|
|
222
|
+
const sessionId = request.query['sessionId'];
|
|
223
|
+
if (!sessionId) {
|
|
224
|
+
reply.code(400).send({ error: 'Bad Request', message: 'Missing sessionId query parameter' });
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
const transport = this.sseTransports.get(sessionId);
|
|
228
|
+
if (!transport) {
|
|
229
|
+
logger_1.logger.warn({ sessionId }, 'No active transport found for sessionId');
|
|
230
|
+
reply.code(404).send({
|
|
231
|
+
error: 'Not Found',
|
|
232
|
+
message: 'Session not found or expired',
|
|
233
|
+
details: { sessionId, suggestion: 'Reconnect via GET /sse' },
|
|
234
|
+
});
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
logger_1.logger.debug({ sessionId }, 'Forwarding message to SDK transport');
|
|
238
|
+
try {
|
|
239
|
+
await transport.handlePostMessage(request.raw, reply.raw, request.body);
|
|
240
|
+
}
|
|
241
|
+
catch (error) {
|
|
242
|
+
logger_1.logger.error({ error, sessionId }, 'Failed to handle message');
|
|
243
|
+
if (!reply.raw.headersSent) {
|
|
244
|
+
reply.code(500).send({ error: 'Internal Server Error', message: 'Failed to process message' });
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
249
|
+
// Health check
|
|
250
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
251
|
+
async handleHealth() {
|
|
252
|
+
const uptime = Math.floor((Date.now() - this.startTime) / 1000);
|
|
253
|
+
const memUsage = process.memoryUsage();
|
|
254
|
+
let servicesHealth = null;
|
|
255
|
+
if (this.healthChecker) {
|
|
256
|
+
try {
|
|
257
|
+
servicesHealth = await this.healthChecker.check();
|
|
258
|
+
}
|
|
259
|
+
catch (error) {
|
|
260
|
+
logger_1.logger.error({ error }, 'Health check failed');
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
const health = {
|
|
264
|
+
status: servicesHealth?.status || 'healthy',
|
|
265
|
+
uptime,
|
|
266
|
+
memory: {
|
|
267
|
+
used: Math.round(memUsage.heapUsed / 1024 / 1024),
|
|
268
|
+
total: Math.round(memUsage.heapTotal / 1024 / 1024),
|
|
269
|
+
percentage: Math.round((memUsage.heapUsed / memUsage.heapTotal) * 100),
|
|
270
|
+
},
|
|
271
|
+
sessions: {
|
|
272
|
+
active: manager_1.sessionManager.getActiveSessionCount(),
|
|
273
|
+
total: manager_1.sessionManager.getTotalSessionCount(),
|
|
274
|
+
},
|
|
275
|
+
services: servicesHealth?.services || {
|
|
276
|
+
http: 'up',
|
|
277
|
+
redis: 'not_configured',
|
|
278
|
+
cache: 'down',
|
|
279
|
+
},
|
|
280
|
+
timestamp: new Date().toISOString(),
|
|
281
|
+
};
|
|
282
|
+
if (servicesHealth?.details) {
|
|
283
|
+
health.details = servicesHealth.details;
|
|
284
|
+
}
|
|
285
|
+
logger_1.logger.info({ health }, 'Health check requested');
|
|
286
|
+
return health;
|
|
287
|
+
}
|
|
288
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
289
|
+
// Lifecycle
|
|
290
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
291
|
+
async start() {
|
|
292
|
+
try {
|
|
293
|
+
const host = config_1.config.http?.host || '0.0.0.0';
|
|
294
|
+
const port = config_1.config.http?.port || 3000;
|
|
295
|
+
await this.fastify.listen({ host, port });
|
|
296
|
+
logger_1.logger.info({ host, port }, 'HTTP server started');
|
|
297
|
+
logger_1.logger.info(`Health check: http://${host}:${port}/health`);
|
|
298
|
+
logger_1.logger.info(`SSE endpoint: http://${host}:${port}/sse`);
|
|
299
|
+
logger_1.logger.info(`Message endpoint: http://${host}:${port}/message?sessionId=<id>`);
|
|
300
|
+
}
|
|
301
|
+
catch (error) {
|
|
302
|
+
logger_1.logger.error({ error }, 'Failed to start HTTP server');
|
|
303
|
+
throw error;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
async stop() {
|
|
307
|
+
try {
|
|
308
|
+
logger_1.logger.info('Stopping HTTP server gracefully...');
|
|
309
|
+
// Close all SDK SSE transports
|
|
310
|
+
for (const [id, transport] of this.sseTransports.entries()) {
|
|
311
|
+
logger_1.logger.info({ id }, 'Closing SDK SSE transport');
|
|
312
|
+
await transport.close().catch(() => { });
|
|
313
|
+
}
|
|
314
|
+
this.sseTransports.clear();
|
|
315
|
+
manager_1.sessionManager.closeAllSessions();
|
|
316
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
317
|
+
await this.fastify.close();
|
|
318
|
+
logger_1.logger.info('HTTP server stopped gracefully');
|
|
319
|
+
}
|
|
320
|
+
catch (error) {
|
|
321
|
+
logger_1.logger.error({ error }, 'Error stopping HTTP server');
|
|
322
|
+
throw error;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
getFastify() {
|
|
326
|
+
return this.fastify;
|
|
327
|
+
}
|
|
328
|
+
setCacheManager(cacheManager) {
|
|
329
|
+
this.healthChecker = new health_js_1.HealthChecker(cacheManager);
|
|
330
|
+
logger_1.logger.info('Health checker initialized with cache manager');
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
exports.HTTPServer = HTTPServer;
|
|
334
|
+
// Singleton instance (initialized without cache manager initially)
|
|
335
|
+
exports.httpServer = new HTTPServer();
|
|
336
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server Main Logic
|
|
3
|
+
* Implements Model Context Protocol server with dual transport support
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Start MCP Server (auto-detect transport mode)
|
|
7
|
+
*/
|
|
8
|
+
export declare function startServer(): Promise<void>;
|
|
9
|
+
/**
|
|
10
|
+
* Stop MCP Server
|
|
11
|
+
*/
|
|
12
|
+
export declare function stopServer(): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoJH;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAcjD;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBhD"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Server Main Logic
|
|
4
|
+
* Implements Model Context Protocol server with dual transport support
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.startServer = startServer;
|
|
8
|
+
exports.stopServer = stopServer;
|
|
9
|
+
const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
10
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
11
|
+
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
12
|
+
const logger_1 = require("./utils/logger");
|
|
13
|
+
const config_1 = require("./config");
|
|
14
|
+
const registry_1 = require("./tools/registry");
|
|
15
|
+
const tools_1 = require("./tools");
|
|
16
|
+
const http_1 = require("./server/http");
|
|
17
|
+
let server = null;
|
|
18
|
+
/**
|
|
19
|
+
* Register all MCP tools
|
|
20
|
+
*/
|
|
21
|
+
function registerTools() {
|
|
22
|
+
logger_1.logger.info('Registering MCP tools...');
|
|
23
|
+
registry_1.toolRegistry.registerTool(tools_1.syncResourcesTool);
|
|
24
|
+
registry_1.toolRegistry.registerTool(tools_1.manageSubscriptionTool);
|
|
25
|
+
registry_1.toolRegistry.registerTool(tools_1.searchResourcesTool);
|
|
26
|
+
registry_1.toolRegistry.registerTool(tools_1.uploadResourceTool);
|
|
27
|
+
registry_1.toolRegistry.registerTool(tools_1.uninstallResourceTool);
|
|
28
|
+
logger_1.logger.info({ toolCount: registry_1.toolRegistry.getToolCount() }, `Registered ${registry_1.toolRegistry.getToolCount()} MCP tools`);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Start MCP Server with stdio transport
|
|
32
|
+
*/
|
|
33
|
+
async function startStdioServer() {
|
|
34
|
+
logger_1.logger.info('Starting MCP Server with stdio transport...');
|
|
35
|
+
// Create MCP Server
|
|
36
|
+
server = new index_js_1.Server({
|
|
37
|
+
name: 'csp-ai-agent-mcp',
|
|
38
|
+
version: '0.2.0',
|
|
39
|
+
}, {
|
|
40
|
+
capabilities: {
|
|
41
|
+
tools: {},
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
// Handle tools/list request
|
|
45
|
+
server.setRequestHandler(types_js_1.ListToolsRequestSchema, () => {
|
|
46
|
+
const tools = registry_1.toolRegistry.getMCPToolDefinitions();
|
|
47
|
+
logger_1.logger.debug({ toolCount: tools.length }, 'tools/list request handled');
|
|
48
|
+
return {
|
|
49
|
+
tools,
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
// Handle tools/call request
|
|
53
|
+
server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
54
|
+
const { name, arguments: args } = request.params;
|
|
55
|
+
logger_1.logger.info({ toolName: name, arguments: args }, `tools/call request: ${name}`);
|
|
56
|
+
const tool = registry_1.toolRegistry.getTool(name);
|
|
57
|
+
if (!tool) {
|
|
58
|
+
const error = `Tool not found: ${name}`;
|
|
59
|
+
logger_1.logger.error({ toolName: name }, error);
|
|
60
|
+
return {
|
|
61
|
+
content: [
|
|
62
|
+
{
|
|
63
|
+
type: 'text',
|
|
64
|
+
text: JSON.stringify({
|
|
65
|
+
success: false,
|
|
66
|
+
error: {
|
|
67
|
+
code: 'TOOL_NOT_FOUND',
|
|
68
|
+
message: error,
|
|
69
|
+
},
|
|
70
|
+
}),
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
isError: true,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
// Call the tool handler
|
|
78
|
+
const result = await tool.handler(args || {});
|
|
79
|
+
return {
|
|
80
|
+
content: [
|
|
81
|
+
{
|
|
82
|
+
type: 'text',
|
|
83
|
+
text: JSON.stringify(result),
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
90
|
+
logger_1.logger.error({ toolName: name, error: errorMessage }, `Tool execution failed: ${name}`);
|
|
91
|
+
return {
|
|
92
|
+
content: [
|
|
93
|
+
{
|
|
94
|
+
type: 'text',
|
|
95
|
+
text: JSON.stringify({
|
|
96
|
+
success: false,
|
|
97
|
+
error: {
|
|
98
|
+
code: 'TOOL_EXECUTION_ERROR',
|
|
99
|
+
message: errorMessage,
|
|
100
|
+
},
|
|
101
|
+
}),
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
isError: true,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
// Connect to stdio transport
|
|
109
|
+
const transport = new stdio_js_1.StdioServerTransport();
|
|
110
|
+
await server.connect(transport);
|
|
111
|
+
logger_1.logger.info('✅ MCP Server started successfully (stdio transport)');
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Start MCP Server with SSE transport
|
|
115
|
+
*/
|
|
116
|
+
async function startSSEServer() {
|
|
117
|
+
logger_1.logger.info('Starting MCP Server with SSE transport...');
|
|
118
|
+
// Start HTTP server
|
|
119
|
+
await http_1.httpServer.start();
|
|
120
|
+
logger_1.logger.info('✅ MCP Server started successfully (SSE transport)');
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Start MCP Server (auto-detect transport mode)
|
|
124
|
+
*/
|
|
125
|
+
async function startServer() {
|
|
126
|
+
// Register all tools (common for both transports)
|
|
127
|
+
registerTools();
|
|
128
|
+
// Start server based on transport mode
|
|
129
|
+
const transportMode = config_1.config.transport.mode;
|
|
130
|
+
logger_1.logger.info({ transportMode }, `Starting server with ${transportMode} transport`);
|
|
131
|
+
if (transportMode === 'sse') {
|
|
132
|
+
await startSSEServer();
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
await startStdioServer();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Stop MCP Server
|
|
140
|
+
*/
|
|
141
|
+
async function stopServer() {
|
|
142
|
+
logger_1.logger.info('Stopping MCP Server...');
|
|
143
|
+
const transportMode = config_1.config.transport.mode;
|
|
144
|
+
if (transportMode === 'sse') {
|
|
145
|
+
// Stop HTTP server
|
|
146
|
+
await http_1.httpServer.stop();
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
// Stop stdio server
|
|
150
|
+
if (server) {
|
|
151
|
+
await server.close();
|
|
152
|
+
server = null;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
logger_1.logger.info('MCP Server stopped');
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAuJH,kCAcC;AAKD,gCAiBC;AAzLD,wEAAmE;AACnE,wEAAiF;AACjF,iEAG4C;AAC5C,2CAAwC;AACxC,qCAAkC;AAClC,+CAAgD;AAChD,mCAMiB;AACjB,wCAA2C;AAE3C,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC;;GAEG;AACH,SAAS,aAAa;IACpB,eAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAExC,uBAAY,CAAC,YAAY,CAAC,yBAAiB,CAAC,CAAC;IAC7C,uBAAY,CAAC,YAAY,CAAC,8BAAsB,CAAC,CAAC;IAClD,uBAAY,CAAC,YAAY,CAAC,2BAAmB,CAAC,CAAC;IAC/C,uBAAY,CAAC,YAAY,CAAC,0BAAkB,CAAC,CAAC;IAC9C,uBAAY,CAAC,YAAY,CAAC,6BAAqB,CAAC,CAAC;IAEjD,eAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,uBAAY,CAAC,YAAY,EAAE,EAAE,EAC1C,cAAc,uBAAY,CAAC,YAAY,EAAE,YAAY,CACtD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB;IAC7B,eAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAE3D,oBAAoB;IACpB,MAAM,GAAG,IAAI,iBAAM,CACjB;QACE,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;SACV;KACF,CACF,CAAC;IAEF,4BAA4B;IAC5B,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,GAAG,EAAE;QACpD,MAAM,KAAK,GAAG,uBAAY,CAAC,qBAAqB,EAAE,CAAC;QACnD,eAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,4BAA4B,CAAC,CAAC;QACxE,OAAO;YACL,KAAK;SACN,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAEjD,eAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,uBAAuB,IAAI,EAAE,CAAC,CAAC;QAEhF,MAAM,IAAI,GAAG,uBAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,mBAAmB,IAAI,EAAE,CAAC;YACxC,eAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YACxC,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE;gCACL,IAAI,EAAE,gBAAgB;gCACtB,OAAO,EAAE,KAAK;6BACf;yBACF,CAAC;qBACH;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,wBAAwB;YACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAE9C,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;qBAC7B;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,eAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,0BAA0B,IAAI,EAAE,CAAC,CAAC;YAExF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE;gCACL,IAAI,EAAE,sBAAsB;gCAC5B,OAAO,EAAE,YAAY;6BACtB;yBACF,CAAC;qBACH;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,eAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc;IAC3B,eAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAEzD,oBAAoB;IACpB,MAAM,iBAAU,CAAC,KAAK,EAAE,CAAC;IAEzB,eAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,WAAW;IAC/B,kDAAkD;IAClD,aAAa,EAAE,CAAC;IAEhB,uCAAuC;IACvC,MAAM,aAAa,GAAG,eAAM,CAAC,SAAS,CAAC,IAAI,CAAC;IAE5C,eAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,EAAE,wBAAwB,aAAa,YAAY,CAAC,CAAC;IAElF,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;QAC5B,MAAM,cAAc,EAAE,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,MAAM,gBAAgB,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,UAAU;IAC9B,eAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAEtC,MAAM,aAAa,GAAG,eAAM,CAAC,SAAS,CAAC,IAAI,CAAC;IAE5C,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;QAC5B,mBAAmB;QACnB,MAAM,iBAAU,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,oBAAoB;QACpB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAED,eAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACpC,CAAC"}
|