@claude-flow/mcp 3.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agentic-flow/intelligence.json +16 -0
- package/README.md +428 -0
- package/__tests__/integration.test.ts +449 -0
- package/__tests__/mcp.test.ts +641 -0
- package/dist/connection-pool.d.ts +36 -0
- package/dist/connection-pool.d.ts.map +1 -0
- package/dist/connection-pool.js +273 -0
- package/dist/connection-pool.js.map +1 -0
- package/dist/index.d.ts +75 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +85 -0
- package/dist/index.js.map +1 -0
- package/dist/oauth.d.ts +146 -0
- package/dist/oauth.d.ts.map +1 -0
- package/dist/oauth.js +318 -0
- package/dist/oauth.js.map +1 -0
- package/dist/prompt-registry.d.ts +90 -0
- package/dist/prompt-registry.d.ts.map +1 -0
- package/dist/prompt-registry.js +209 -0
- package/dist/prompt-registry.js.map +1 -0
- package/dist/rate-limiter.d.ts +86 -0
- package/dist/rate-limiter.d.ts.map +1 -0
- package/dist/rate-limiter.js +197 -0
- package/dist/rate-limiter.js.map +1 -0
- package/dist/resource-registry.d.ts +144 -0
- package/dist/resource-registry.d.ts.map +1 -0
- package/dist/resource-registry.js +405 -0
- package/dist/resource-registry.js.map +1 -0
- package/dist/sampling.d.ts +102 -0
- package/dist/sampling.d.ts.map +1 -0
- package/dist/sampling.js +268 -0
- package/dist/sampling.js.map +1 -0
- package/dist/schema-validator.d.ts +30 -0
- package/dist/schema-validator.d.ts.map +1 -0
- package/dist/schema-validator.js +182 -0
- package/dist/schema-validator.js.map +1 -0
- package/dist/server.d.ts +122 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +829 -0
- package/dist/server.js.map +1 -0
- package/dist/session-manager.d.ts +55 -0
- package/dist/session-manager.d.ts.map +1 -0
- package/dist/session-manager.js +252 -0
- package/dist/session-manager.js.map +1 -0
- package/dist/task-manager.d.ts +81 -0
- package/dist/task-manager.d.ts.map +1 -0
- package/dist/task-manager.js +337 -0
- package/dist/task-manager.js.map +1 -0
- package/dist/tool-registry.d.ts +88 -0
- package/dist/tool-registry.d.ts.map +1 -0
- package/dist/tool-registry.js +353 -0
- package/dist/tool-registry.js.map +1 -0
- package/dist/transport/http.d.ts +55 -0
- package/dist/transport/http.d.ts.map +1 -0
- package/dist/transport/http.js +446 -0
- package/dist/transport/http.js.map +1 -0
- package/dist/transport/index.d.ts +50 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +181 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/stdio.d.ts +43 -0
- package/dist/transport/stdio.d.ts.map +1 -0
- package/dist/transport/stdio.js +194 -0
- package/dist/transport/stdio.js.map +1 -0
- package/dist/transport/websocket.d.ts +65 -0
- package/dist/transport/websocket.d.ts.map +1 -0
- package/dist/transport/websocket.js +314 -0
- package/dist/transport/websocket.js.map +1 -0
- package/dist/types.d.ts +473 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +40 -0
- package/dist/types.js.map +1 -0
- package/package.json +42 -0
- package/src/connection-pool.ts +344 -0
- package/src/index.ts +253 -0
- package/src/oauth.ts +447 -0
- package/src/prompt-registry.ts +296 -0
- package/src/rate-limiter.ts +266 -0
- package/src/resource-registry.ts +530 -0
- package/src/sampling.ts +363 -0
- package/src/schema-validator.ts +213 -0
- package/src/server.ts +1134 -0
- package/src/session-manager.ts +339 -0
- package/src/task-manager.ts +427 -0
- package/src/tool-registry.ts +475 -0
- package/src/transport/http.ts +532 -0
- package/src/transport/index.ts +233 -0
- package/src/transport/stdio.ts +252 -0
- package/src/transport/websocket.ts +396 -0
- package/src/types.ts +664 -0
- package/tsconfig.json +20 -0
- package/vitest.config.ts +13 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @claude-flow/mcp - Connection Pool
|
|
3
|
+
*
|
|
4
|
+
* High-performance connection pooling
|
|
5
|
+
*/
|
|
6
|
+
import { EventEmitter } from 'events';
|
|
7
|
+
const DEFAULT_POOL_CONFIG = {
|
|
8
|
+
maxConnections: 10,
|
|
9
|
+
minConnections: 2,
|
|
10
|
+
idleTimeout: 30000,
|
|
11
|
+
acquireTimeout: 5000,
|
|
12
|
+
maxWaitingClients: 50,
|
|
13
|
+
evictionRunInterval: 10000,
|
|
14
|
+
};
|
|
15
|
+
class ManagedConnection {
|
|
16
|
+
id;
|
|
17
|
+
transport;
|
|
18
|
+
createdAt;
|
|
19
|
+
metadata;
|
|
20
|
+
state = 'idle';
|
|
21
|
+
lastUsedAt;
|
|
22
|
+
useCount = 0;
|
|
23
|
+
constructor(id, transport, createdAt = new Date(), metadata) {
|
|
24
|
+
this.id = id;
|
|
25
|
+
this.transport = transport;
|
|
26
|
+
this.createdAt = createdAt;
|
|
27
|
+
this.metadata = metadata;
|
|
28
|
+
this.lastUsedAt = this.createdAt;
|
|
29
|
+
}
|
|
30
|
+
acquire() {
|
|
31
|
+
this.state = 'busy';
|
|
32
|
+
this.lastUsedAt = new Date();
|
|
33
|
+
this.useCount++;
|
|
34
|
+
}
|
|
35
|
+
release() {
|
|
36
|
+
this.state = 'idle';
|
|
37
|
+
this.lastUsedAt = new Date();
|
|
38
|
+
}
|
|
39
|
+
isExpired(idleTimeout) {
|
|
40
|
+
if (this.state !== 'idle')
|
|
41
|
+
return false;
|
|
42
|
+
return Date.now() - this.lastUsedAt.getTime() > idleTimeout;
|
|
43
|
+
}
|
|
44
|
+
isHealthy() {
|
|
45
|
+
return this.state !== 'error' && this.state !== 'closed';
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export class ConnectionPool extends EventEmitter {
|
|
49
|
+
logger;
|
|
50
|
+
transportType;
|
|
51
|
+
config;
|
|
52
|
+
connections = new Map();
|
|
53
|
+
waitingClients = [];
|
|
54
|
+
evictionTimer;
|
|
55
|
+
connectionCounter = 0;
|
|
56
|
+
isShuttingDown = false;
|
|
57
|
+
stats = {
|
|
58
|
+
totalAcquired: 0,
|
|
59
|
+
totalReleased: 0,
|
|
60
|
+
totalCreated: 0,
|
|
61
|
+
totalDestroyed: 0,
|
|
62
|
+
acquireTimeTotal: 0,
|
|
63
|
+
acquireCount: 0,
|
|
64
|
+
};
|
|
65
|
+
constructor(config = {}, logger, transportType = 'in-process') {
|
|
66
|
+
super();
|
|
67
|
+
this.logger = logger;
|
|
68
|
+
this.transportType = transportType;
|
|
69
|
+
this.config = { ...DEFAULT_POOL_CONFIG, ...config };
|
|
70
|
+
this.startEvictionTimer();
|
|
71
|
+
this.initializeMinConnections();
|
|
72
|
+
}
|
|
73
|
+
async initializeMinConnections() {
|
|
74
|
+
const promises = [];
|
|
75
|
+
for (let i = 0; i < this.config.minConnections; i++) {
|
|
76
|
+
promises.push(this.createConnection());
|
|
77
|
+
}
|
|
78
|
+
await Promise.all(promises);
|
|
79
|
+
this.logger.debug('Connection pool initialized', {
|
|
80
|
+
minConnections: this.config.minConnections,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
async createConnection() {
|
|
84
|
+
const id = `conn-${++this.connectionCounter}-${Date.now()}`;
|
|
85
|
+
const connection = new ManagedConnection(id, this.transportType);
|
|
86
|
+
this.connections.set(id, connection);
|
|
87
|
+
this.stats.totalCreated++;
|
|
88
|
+
this.emit('pool:connection:created', { connectionId: id });
|
|
89
|
+
this.logger.debug('Connection created', { id, total: this.connections.size });
|
|
90
|
+
return connection;
|
|
91
|
+
}
|
|
92
|
+
async acquire() {
|
|
93
|
+
const startTime = performance.now();
|
|
94
|
+
if (this.isShuttingDown) {
|
|
95
|
+
throw new Error('Connection pool is shutting down');
|
|
96
|
+
}
|
|
97
|
+
for (const connection of this.connections.values()) {
|
|
98
|
+
if (connection.state === 'idle' && connection.isHealthy()) {
|
|
99
|
+
connection.acquire();
|
|
100
|
+
this.stats.totalAcquired++;
|
|
101
|
+
this.recordAcquireTime(startTime);
|
|
102
|
+
this.emit('pool:connection:acquired', { connectionId: connection.id });
|
|
103
|
+
this.logger.debug('Connection acquired from pool', { id: connection.id });
|
|
104
|
+
return connection;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (this.connections.size < this.config.maxConnections) {
|
|
108
|
+
const connection = await this.createConnection();
|
|
109
|
+
connection.acquire();
|
|
110
|
+
this.stats.totalAcquired++;
|
|
111
|
+
this.recordAcquireTime(startTime);
|
|
112
|
+
this.emit('pool:connection:acquired', { connectionId: connection.id });
|
|
113
|
+
return connection;
|
|
114
|
+
}
|
|
115
|
+
return this.waitForConnection(startTime);
|
|
116
|
+
}
|
|
117
|
+
waitForConnection(startTime) {
|
|
118
|
+
return new Promise((resolve, reject) => {
|
|
119
|
+
if (this.waitingClients.length >= this.config.maxWaitingClients) {
|
|
120
|
+
reject(new Error('Connection pool exhausted - max waiting clients reached'));
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const client = {
|
|
124
|
+
resolve: (connection) => {
|
|
125
|
+
this.recordAcquireTime(startTime);
|
|
126
|
+
resolve(connection);
|
|
127
|
+
},
|
|
128
|
+
reject,
|
|
129
|
+
timestamp: Date.now(),
|
|
130
|
+
};
|
|
131
|
+
this.waitingClients.push(client);
|
|
132
|
+
setTimeout(() => {
|
|
133
|
+
const index = this.waitingClients.indexOf(client);
|
|
134
|
+
if (index !== -1) {
|
|
135
|
+
this.waitingClients.splice(index, 1);
|
|
136
|
+
reject(new Error(`Connection acquire timeout after ${this.config.acquireTimeout}ms`));
|
|
137
|
+
}
|
|
138
|
+
}, this.config.acquireTimeout);
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
release(connection) {
|
|
142
|
+
const managed = this.connections.get(connection.id);
|
|
143
|
+
if (!managed) {
|
|
144
|
+
this.logger.warn('Attempted to release unknown connection', { id: connection.id });
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const waitingClient = this.waitingClients.shift();
|
|
148
|
+
if (waitingClient) {
|
|
149
|
+
managed.acquire();
|
|
150
|
+
this.stats.totalAcquired++;
|
|
151
|
+
this.emit('pool:connection:acquired', { connectionId: connection.id });
|
|
152
|
+
waitingClient.resolve(managed);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
managed.release();
|
|
156
|
+
this.stats.totalReleased++;
|
|
157
|
+
this.emit('pool:connection:released', { connectionId: connection.id });
|
|
158
|
+
this.logger.debug('Connection released to pool', { id: connection.id });
|
|
159
|
+
}
|
|
160
|
+
destroy(connection) {
|
|
161
|
+
const managed = this.connections.get(connection.id);
|
|
162
|
+
if (!managed) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
managed.state = 'closed';
|
|
166
|
+
this.connections.delete(connection.id);
|
|
167
|
+
this.stats.totalDestroyed++;
|
|
168
|
+
this.emit('pool:connection:destroyed', { connectionId: connection.id });
|
|
169
|
+
this.logger.debug('Connection destroyed', { id: connection.id });
|
|
170
|
+
if (this.connections.size < this.config.minConnections && !this.isShuttingDown) {
|
|
171
|
+
this.createConnection().catch((err) => {
|
|
172
|
+
this.logger.error('Failed to create replacement connection', err);
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
getStats() {
|
|
177
|
+
let idleCount = 0;
|
|
178
|
+
let busyCount = 0;
|
|
179
|
+
for (const connection of this.connections.values()) {
|
|
180
|
+
if (connection.state === 'idle')
|
|
181
|
+
idleCount++;
|
|
182
|
+
else if (connection.state === 'busy')
|
|
183
|
+
busyCount++;
|
|
184
|
+
}
|
|
185
|
+
return {
|
|
186
|
+
totalConnections: this.connections.size,
|
|
187
|
+
idleConnections: idleCount,
|
|
188
|
+
busyConnections: busyCount,
|
|
189
|
+
pendingRequests: this.waitingClients.length,
|
|
190
|
+
totalAcquired: this.stats.totalAcquired,
|
|
191
|
+
totalReleased: this.stats.totalReleased,
|
|
192
|
+
totalCreated: this.stats.totalCreated,
|
|
193
|
+
totalDestroyed: this.stats.totalDestroyed,
|
|
194
|
+
avgAcquireTime: this.stats.acquireCount > 0
|
|
195
|
+
? this.stats.acquireTimeTotal / this.stats.acquireCount
|
|
196
|
+
: 0,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
async drain() {
|
|
200
|
+
this.isShuttingDown = true;
|
|
201
|
+
this.logger.info('Draining connection pool');
|
|
202
|
+
while (this.waitingClients.length > 0) {
|
|
203
|
+
const client = this.waitingClients.shift();
|
|
204
|
+
client?.reject(new Error('Connection pool is draining'));
|
|
205
|
+
}
|
|
206
|
+
const maxWait = 10000;
|
|
207
|
+
const startTime = Date.now();
|
|
208
|
+
while (Date.now() - startTime < maxWait) {
|
|
209
|
+
let busyCount = 0;
|
|
210
|
+
for (const connection of this.connections.values()) {
|
|
211
|
+
if (connection.state === 'busy')
|
|
212
|
+
busyCount++;
|
|
213
|
+
}
|
|
214
|
+
if (busyCount === 0)
|
|
215
|
+
break;
|
|
216
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
217
|
+
}
|
|
218
|
+
this.logger.info('Connection pool drained');
|
|
219
|
+
}
|
|
220
|
+
async clear() {
|
|
221
|
+
this.stopEvictionTimer();
|
|
222
|
+
await this.drain();
|
|
223
|
+
for (const connection of this.connections.values()) {
|
|
224
|
+
connection.state = 'closed';
|
|
225
|
+
}
|
|
226
|
+
this.connections.clear();
|
|
227
|
+
this.logger.info('Connection pool cleared');
|
|
228
|
+
}
|
|
229
|
+
startEvictionTimer() {
|
|
230
|
+
this.evictionTimer = setInterval(() => {
|
|
231
|
+
this.evictIdleConnections();
|
|
232
|
+
}, this.config.evictionRunInterval);
|
|
233
|
+
}
|
|
234
|
+
stopEvictionTimer() {
|
|
235
|
+
if (this.evictionTimer) {
|
|
236
|
+
clearInterval(this.evictionTimer);
|
|
237
|
+
this.evictionTimer = undefined;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
evictIdleConnections() {
|
|
241
|
+
if (this.isShuttingDown)
|
|
242
|
+
return;
|
|
243
|
+
const toEvict = [];
|
|
244
|
+
for (const connection of this.connections.values()) {
|
|
245
|
+
if (connection.isExpired(this.config.idleTimeout) &&
|
|
246
|
+
this.connections.size > this.config.minConnections) {
|
|
247
|
+
toEvict.push(connection);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
for (const connection of toEvict) {
|
|
251
|
+
this.destroy(connection);
|
|
252
|
+
this.logger.debug('Evicted idle connection', { id: connection.id });
|
|
253
|
+
}
|
|
254
|
+
if (toEvict.length > 0) {
|
|
255
|
+
this.logger.info('Evicted idle connections', { count: toEvict.length });
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
recordAcquireTime(startTime) {
|
|
259
|
+
const duration = performance.now() - startTime;
|
|
260
|
+
this.stats.acquireTimeTotal += duration;
|
|
261
|
+
this.stats.acquireCount++;
|
|
262
|
+
}
|
|
263
|
+
getConnections() {
|
|
264
|
+
return Array.from(this.connections.values());
|
|
265
|
+
}
|
|
266
|
+
isHealthy() {
|
|
267
|
+
return !this.isShuttingDown && this.connections.size >= this.config.minConnections;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
export function createConnectionPool(config = {}, logger, transportType = 'in-process') {
|
|
271
|
+
return new ConnectionPool(config, logger, transportType);
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=connection-pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-pool.js","sourceRoot":"","sources":["../src/connection-pool.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @claude-flow/mcp - Standalone MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Zero-dependency MCP (Model Context Protocol) implementation
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - High-performance server with <400ms startup
|
|
8
|
+
* - Connection pooling with max 10 connections
|
|
9
|
+
* - Multiple transport support (stdio, http, websocket, in-process)
|
|
10
|
+
* - Fast tool registry with <10ms registration
|
|
11
|
+
* - Session management with timeout handling
|
|
12
|
+
* - Comprehensive metrics and monitoring
|
|
13
|
+
*
|
|
14
|
+
* @module @claude-flow/mcp
|
|
15
|
+
* @version 3.0.0
|
|
16
|
+
*/
|
|
17
|
+
export type { JsonRpcVersion, RequestId, MCPMessage, MCPRequest, MCPResponse, MCPNotification, MCPError, TransportType, AuthMethod, AuthConfig, LoadBalancerConfig, ConnectionPoolConfig, MCPServerConfig, SessionState, MCPSession, MCPClientInfo, MCPCapabilities, MCPProtocolVersion, MCPInitializeParams, MCPInitializeResult, JSONSchema, ToolContext, ToolHandler, MCPTool, ToolCallResult, ToolRegistrationOptions, RequestHandler, NotificationHandler, TransportHealthStatus, ITransport, ConnectionState, PooledConnection, ConnectionPoolStats, IConnectionPool, ToolCallMetrics, MCPServerMetrics, SessionMetrics, MCPEventType, MCPEvent, EventHandler, LogLevel, ILogger, MCPResource, ResourceContent, ResourceTemplate, ResourceListResult, ResourceReadResult, PromptArgument, MCPPrompt, PromptRole, ContentAnnotations, TextContent, ImageContent, AudioContent, EmbeddedResource, PromptContent, PromptMessage, PromptListResult, PromptGetResult, TaskState, MCPTask, TaskProgress, TaskResult, PaginatedRequest, PaginatedResult, ProgressNotification, CancellationParams, SamplingMessage, ModelPreferences, CreateMessageRequest, CreateMessageResult, Root, RootsListResult, MCPLogLevel, LoggingMessage, CompletionReference, CompletionArgument, CompletionResult, } from './types.js';
|
|
18
|
+
export { ErrorCodes, MCPServerError } from './types.js';
|
|
19
|
+
import { MCPServer, createMCPServer } from './server.js';
|
|
20
|
+
export { MCPServer, createMCPServer };
|
|
21
|
+
export type { IMCPServer } from './server.js';
|
|
22
|
+
export { ToolRegistry, createToolRegistry, defineTool } from './tool-registry.js';
|
|
23
|
+
import { SessionManager, createSessionManager } from './session-manager.js';
|
|
24
|
+
export { SessionManager, createSessionManager };
|
|
25
|
+
export type { SessionConfig } from './session-manager.js';
|
|
26
|
+
export { ConnectionPool, createConnectionPool } from './connection-pool.js';
|
|
27
|
+
export { ResourceRegistry, createResourceRegistry, createTextResource, createFileResource, } from './resource-registry.js';
|
|
28
|
+
export type { ResourceHandler, SubscriptionCallback, ResourceRegistryOptions } from './resource-registry.js';
|
|
29
|
+
export { PromptRegistry, createPromptRegistry, definePrompt, textMessage, resourceMessage, interpolate, } from './prompt-registry.js';
|
|
30
|
+
export type { PromptHandler, PromptDefinition, PromptRegistryOptions } from './prompt-registry.js';
|
|
31
|
+
export { TaskManager, createTaskManager } from './task-manager.js';
|
|
32
|
+
export type { TaskExecutor, TaskManagerOptions } from './task-manager.js';
|
|
33
|
+
export { validateSchema, formatValidationErrors, createValidator, } from './schema-validator.js';
|
|
34
|
+
export type { ValidationError, ValidationResult } from './schema-validator.js';
|
|
35
|
+
export { RateLimiter, createRateLimiter, rateLimitMiddleware, } from './rate-limiter.js';
|
|
36
|
+
export type { RateLimitConfig, RateLimitResult } from './rate-limiter.js';
|
|
37
|
+
export { SamplingManager, createSamplingManager, createMockProvider, createAnthropicProvider, } from './sampling.js';
|
|
38
|
+
export type { LLMProvider, SamplingConfig, SamplingContext } from './sampling.js';
|
|
39
|
+
export { OAuthManager, createOAuthManager, oauthMiddleware, InMemoryTokenStorage, createGitHubOAuthConfig, createGoogleOAuthConfig, } from './oauth.js';
|
|
40
|
+
export type { OAuthConfig, OAuthTokens, TokenStorage, AuthorizationRequest, } from './oauth.js';
|
|
41
|
+
export { createTransport, createInProcessTransport, TransportManager, createTransportManager, DEFAULT_TRANSPORT_CONFIGS, StdioTransport, HttpTransport, WebSocketTransport, } from './transport/index.js';
|
|
42
|
+
export type { TransportConfig, StdioTransportConfig, HttpTransportConfig, WebSocketTransportConfig, } from './transport/index.js';
|
|
43
|
+
import type { MCPServerConfig, ILogger } from './types.js';
|
|
44
|
+
/**
|
|
45
|
+
* Quick start function to create and configure an MCP server
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* import { quickStart } from '@claude-flow/mcp';
|
|
50
|
+
*
|
|
51
|
+
* const server = await quickStart({
|
|
52
|
+
* transport: 'stdio',
|
|
53
|
+
* name: 'My MCP Server',
|
|
54
|
+
* });
|
|
55
|
+
*
|
|
56
|
+
* server.registerTool({
|
|
57
|
+
* name: 'my-tool',
|
|
58
|
+
* description: 'My custom tool',
|
|
59
|
+
* inputSchema: { type: 'object', properties: {} },
|
|
60
|
+
* handler: async () => ({ result: 'success' }),
|
|
61
|
+
* });
|
|
62
|
+
*
|
|
63
|
+
* await server.start();
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export declare function quickStart(config: Partial<MCPServerConfig>, logger?: ILogger): Promise<MCPServer>;
|
|
67
|
+
/**
|
|
68
|
+
* Module version
|
|
69
|
+
*/
|
|
70
|
+
export declare const VERSION = "3.0.0";
|
|
71
|
+
/**
|
|
72
|
+
* Module name
|
|
73
|
+
*/
|
|
74
|
+
export declare const MODULE_NAME = "@claude-flow/mcp";
|
|
75
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @claude-flow/mcp - Standalone MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Zero-dependency MCP (Model Context Protocol) implementation
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - High-performance server with <400ms startup
|
|
8
|
+
* - Connection pooling with max 10 connections
|
|
9
|
+
* - Multiple transport support (stdio, http, websocket, in-process)
|
|
10
|
+
* - Fast tool registry with <10ms registration
|
|
11
|
+
* - Session management with timeout handling
|
|
12
|
+
* - Comprehensive metrics and monitoring
|
|
13
|
+
*
|
|
14
|
+
* @module @claude-flow/mcp
|
|
15
|
+
* @version 3.0.0
|
|
16
|
+
*/
|
|
17
|
+
// Error handling
|
|
18
|
+
export { ErrorCodes, MCPServerError } from './types.js';
|
|
19
|
+
// Server
|
|
20
|
+
import { MCPServer, createMCPServer } from './server.js';
|
|
21
|
+
export { MCPServer, createMCPServer };
|
|
22
|
+
// Tool Registry
|
|
23
|
+
export { ToolRegistry, createToolRegistry, defineTool } from './tool-registry.js';
|
|
24
|
+
// Session Manager
|
|
25
|
+
import { SessionManager, createSessionManager } from './session-manager.js';
|
|
26
|
+
export { SessionManager, createSessionManager };
|
|
27
|
+
// Connection Pool
|
|
28
|
+
export { ConnectionPool, createConnectionPool } from './connection-pool.js';
|
|
29
|
+
// Resource Registry (MCP 2025-11-25)
|
|
30
|
+
export { ResourceRegistry, createResourceRegistry, createTextResource, createFileResource, } from './resource-registry.js';
|
|
31
|
+
// Prompt Registry (MCP 2025-11-25)
|
|
32
|
+
export { PromptRegistry, createPromptRegistry, definePrompt, textMessage, resourceMessage, interpolate, } from './prompt-registry.js';
|
|
33
|
+
// Task Manager (MCP 2025-11-25)
|
|
34
|
+
export { TaskManager, createTaskManager } from './task-manager.js';
|
|
35
|
+
// Schema Validator
|
|
36
|
+
export { validateSchema, formatValidationErrors, createValidator, } from './schema-validator.js';
|
|
37
|
+
// Rate Limiter
|
|
38
|
+
export { RateLimiter, createRateLimiter, rateLimitMiddleware, } from './rate-limiter.js';
|
|
39
|
+
// Sampling (Server-initiated LLM)
|
|
40
|
+
export { SamplingManager, createSamplingManager, createMockProvider, createAnthropicProvider, } from './sampling.js';
|
|
41
|
+
// OAuth 2.1
|
|
42
|
+
export { OAuthManager, createOAuthManager, oauthMiddleware, InMemoryTokenStorage, createGitHubOAuthConfig, createGoogleOAuthConfig, } from './oauth.js';
|
|
43
|
+
// Transport layer
|
|
44
|
+
export { createTransport, createInProcessTransport, TransportManager, createTransportManager, DEFAULT_TRANSPORT_CONFIGS, StdioTransport, HttpTransport, WebSocketTransport, } from './transport/index.js';
|
|
45
|
+
/**
|
|
46
|
+
* Quick start function to create and configure an MCP server
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* import { quickStart } from '@claude-flow/mcp';
|
|
51
|
+
*
|
|
52
|
+
* const server = await quickStart({
|
|
53
|
+
* transport: 'stdio',
|
|
54
|
+
* name: 'My MCP Server',
|
|
55
|
+
* });
|
|
56
|
+
*
|
|
57
|
+
* server.registerTool({
|
|
58
|
+
* name: 'my-tool',
|
|
59
|
+
* description: 'My custom tool',
|
|
60
|
+
* inputSchema: { type: 'object', properties: {} },
|
|
61
|
+
* handler: async () => ({ result: 'success' }),
|
|
62
|
+
* });
|
|
63
|
+
*
|
|
64
|
+
* await server.start();
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export async function quickStart(config, logger) {
|
|
68
|
+
const defaultLogger = logger || {
|
|
69
|
+
debug: (msg, data) => console.debug(`[DEBUG] ${msg}`, data || ''),
|
|
70
|
+
info: (msg, data) => console.info(`[INFO] ${msg}`, data || ''),
|
|
71
|
+
warn: (msg, data) => console.warn(`[WARN] ${msg}`, data || ''),
|
|
72
|
+
error: (msg, data) => console.error(`[ERROR] ${msg}`, data || ''),
|
|
73
|
+
};
|
|
74
|
+
const server = createMCPServer(config, defaultLogger);
|
|
75
|
+
return server;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Module version
|
|
79
|
+
*/
|
|
80
|
+
export const VERSION = '3.0.0';
|
|
81
|
+
/**
|
|
82
|
+
* Module name
|
|
83
|
+
*/
|
|
84
|
+
export const MODULE_NAME = '@claude-flow/mcp';
|
|
85
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAqFH,iBAAiB;AACjB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAExD,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AAGtC,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAElF,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,CAAC;AAGhD,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,qCAAqC;AACrC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAGhC,mCAAmC;AACnC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAG9B,gCAAgC;AAChC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,mBAAmB;AACnB,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAG/B,eAAe;AACf,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAG3B,kCAAkC;AAClC,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAGvB,YAAY;AACZ,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAQpB,kBAAkB;AAClB,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,cAAc,EACd,aAAa,EACb,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAY9B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAgC,EAChC,MAAgB;IAEhB,MAAM,aAAa,GAAY,MAAM,IAAI;QACvC,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC;QACjE,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC;QAC9D,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC;QAC9D,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC;KAClE,CAAC;IAEF,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEtD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC"}
|
package/dist/oauth.d.ts
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @claude-flow/mcp - OAuth 2.1 Authentication
|
|
3
|
+
*
|
|
4
|
+
* MCP 2025-11-25 compliant OAuth 2.1 with PKCE
|
|
5
|
+
*/
|
|
6
|
+
import { EventEmitter } from 'events';
|
|
7
|
+
import type { ILogger } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* OAuth 2.1 configuration
|
|
10
|
+
*/
|
|
11
|
+
export interface OAuthConfig {
|
|
12
|
+
/** Client ID */
|
|
13
|
+
clientId: string;
|
|
14
|
+
/** Client secret (for confidential clients) */
|
|
15
|
+
clientSecret?: string;
|
|
16
|
+
/** Authorization endpoint */
|
|
17
|
+
authorizationEndpoint: string;
|
|
18
|
+
/** Token endpoint */
|
|
19
|
+
tokenEndpoint: string;
|
|
20
|
+
/** Redirect URI */
|
|
21
|
+
redirectUri: string;
|
|
22
|
+
/** Scopes to request */
|
|
23
|
+
scopes?: string[];
|
|
24
|
+
/** Token storage adapter */
|
|
25
|
+
tokenStorage?: TokenStorage;
|
|
26
|
+
/** Enable PKCE (default: true) */
|
|
27
|
+
usePKCE?: boolean;
|
|
28
|
+
/** State parameter generator */
|
|
29
|
+
stateGenerator?: () => string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* OAuth tokens
|
|
33
|
+
*/
|
|
34
|
+
export interface OAuthTokens {
|
|
35
|
+
accessToken: string;
|
|
36
|
+
refreshToken?: string;
|
|
37
|
+
tokenType: string;
|
|
38
|
+
expiresIn?: number;
|
|
39
|
+
expiresAt?: number;
|
|
40
|
+
scope?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Token storage interface
|
|
44
|
+
*/
|
|
45
|
+
export interface TokenStorage {
|
|
46
|
+
save(key: string, tokens: OAuthTokens): Promise<void>;
|
|
47
|
+
load(key: string): Promise<OAuthTokens | null>;
|
|
48
|
+
delete(key: string): Promise<void>;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Authorization request
|
|
52
|
+
*/
|
|
53
|
+
export interface AuthorizationRequest {
|
|
54
|
+
url: string;
|
|
55
|
+
state: string;
|
|
56
|
+
codeVerifier?: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* In-memory token storage (for development)
|
|
60
|
+
*/
|
|
61
|
+
export declare class InMemoryTokenStorage implements TokenStorage {
|
|
62
|
+
private tokens;
|
|
63
|
+
save(key: string, tokens: OAuthTokens): Promise<void>;
|
|
64
|
+
load(key: string): Promise<OAuthTokens | null>;
|
|
65
|
+
delete(key: string): Promise<void>;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* OAuth 2.1 Manager
|
|
69
|
+
*/
|
|
70
|
+
export declare class OAuthManager extends EventEmitter {
|
|
71
|
+
private readonly logger;
|
|
72
|
+
private readonly config;
|
|
73
|
+
private readonly tokenStorage;
|
|
74
|
+
private pendingRequests;
|
|
75
|
+
private cleanupTimer?;
|
|
76
|
+
constructor(logger: ILogger, config: OAuthConfig);
|
|
77
|
+
/**
|
|
78
|
+
* Generate authorization URL for OAuth flow
|
|
79
|
+
*/
|
|
80
|
+
createAuthorizationRequest(): AuthorizationRequest;
|
|
81
|
+
/**
|
|
82
|
+
* Exchange authorization code for tokens
|
|
83
|
+
*/
|
|
84
|
+
exchangeCode(code: string, state: string): Promise<OAuthTokens>;
|
|
85
|
+
/**
|
|
86
|
+
* Refresh access token using refresh token
|
|
87
|
+
*/
|
|
88
|
+
refreshTokens(storageKey?: string): Promise<OAuthTokens>;
|
|
89
|
+
/**
|
|
90
|
+
* Get valid access token (auto-refresh if expired)
|
|
91
|
+
*/
|
|
92
|
+
getAccessToken(storageKey?: string): Promise<string | null>;
|
|
93
|
+
/**
|
|
94
|
+
* Revoke tokens
|
|
95
|
+
*/
|
|
96
|
+
revokeTokens(storageKey?: string): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Check if authenticated
|
|
99
|
+
*/
|
|
100
|
+
isAuthenticated(storageKey?: string): Promise<boolean>;
|
|
101
|
+
/**
|
|
102
|
+
* Destroy manager and cleanup
|
|
103
|
+
*/
|
|
104
|
+
destroy(): void;
|
|
105
|
+
/**
|
|
106
|
+
* Parse token response
|
|
107
|
+
*/
|
|
108
|
+
private parseTokenResponse;
|
|
109
|
+
/**
|
|
110
|
+
* Generate PKCE code verifier
|
|
111
|
+
*/
|
|
112
|
+
private generateCodeVerifier;
|
|
113
|
+
/**
|
|
114
|
+
* Generate PKCE code challenge (S256)
|
|
115
|
+
*/
|
|
116
|
+
private generateCodeChallenge;
|
|
117
|
+
/**
|
|
118
|
+
* Generate random string
|
|
119
|
+
*/
|
|
120
|
+
private generateRandomString;
|
|
121
|
+
/**
|
|
122
|
+
* Base64 URL encode
|
|
123
|
+
*/
|
|
124
|
+
private base64UrlEncode;
|
|
125
|
+
/**
|
|
126
|
+
* Start cleanup of expired pending requests
|
|
127
|
+
*/
|
|
128
|
+
private startCleanup;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Create OAuth manager
|
|
132
|
+
*/
|
|
133
|
+
export declare function createOAuthManager(logger: ILogger, config: OAuthConfig): OAuthManager;
|
|
134
|
+
/**
|
|
135
|
+
* OAuth middleware for Express/Connect
|
|
136
|
+
*/
|
|
137
|
+
export declare function oauthMiddleware(oauthManager: OAuthManager, storageKey?: string): (req: any, res: any, next: () => void) => Promise<void>;
|
|
138
|
+
/**
|
|
139
|
+
* Create GitHub OAuth provider config
|
|
140
|
+
*/
|
|
141
|
+
export declare function createGitHubOAuthConfig(clientId: string, clientSecret: string, redirectUri: string, scopes?: string[]): OAuthConfig;
|
|
142
|
+
/**
|
|
143
|
+
* Create Google OAuth provider config
|
|
144
|
+
*/
|
|
145
|
+
export declare function createGoogleOAuthConfig(clientId: string, clientSecret: string, redirectUri: string, scopes?: string[]): OAuthConfig;
|
|
146
|
+
//# sourceMappingURL=oauth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAaD;;GAEG;AACH,qBAAa,oBAAqB,YAAW,YAAY;IACvD,OAAO,CAAC,MAAM,CAAuC;IAE/C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAI9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzC;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAO1C,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,eAAe,CAAwE;IAC/F,OAAO,CAAC,YAAY,CAAC,CAAiB;gBAGnB,MAAM,EAAE,OAAO,EAChC,MAAM,EAAE,WAAW;IAarB;;OAEG;IACH,0BAA0B,IAAI,oBAAoB;IAwClD;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA+CrE;;OAEG;IACG,aAAa,CAAC,UAAU,GAAE,MAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IA+CzE;;OAEG;IACG,cAAc,CAAC,UAAU,GAAE,MAAkB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsB5E;;OAEG;IACG,YAAY,CAAC,UAAU,GAAE,MAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjE;;OAEG;IACG,eAAe,CAAC,UAAU,GAAE,MAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAKvE;;OAEG;IACH,OAAO,IAAI,IAAI;IASf;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAK7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAK5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,YAAY;CAarB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,YAAY,CAErF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,GAAE,MAAkB,IAC1E,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,mBAkBnD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,MAAM,EAAkB,GAC/B,WAAW,CAUb;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,MAAM,EAAmC,GAChD,WAAW,CAUb"}
|