@eggjs/tegg-controller-plugin 3.57.3 → 3.57.5
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/app.js
CHANGED
|
@@ -101,7 +101,8 @@ class ControllerAppBootHook {
|
|
|
101
101
|
this.app.eggPrototypeLifecycleUtil.deleteLifecycle(this.controllerPrototypeHook);
|
|
102
102
|
ControllerMetadataManager_1.ControllerMetadataManager.instance.clear();
|
|
103
103
|
HTTPControllerRegister_1.HTTPControllerRegister.clean();
|
|
104
|
+
MCPControllerRegister_1.MCPControllerRegister.clean();
|
|
104
105
|
}
|
|
105
106
|
}
|
|
106
107
|
exports.default = ControllerAppBootHook;
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsaUVBQW9GO0FBQ3BGLCtFQUE0RTtBQUU1RSxzQ0FBMkU7QUFDM0UsbUZBQWdGO0FBQ2hGLCtFQUE0RTtBQUM1RSwrRUFBNEU7QUFDNUUsc0RBQStGO0FBQy9GLCtFQUE0RTtBQUM1RSxpRkFBOEU7QUFDOUUsNkRBQTBEO0FBQzFELG1FQUFnRTtBQUNoRSxnRkFBNkU7QUFFN0UsMEJBQTBCO0FBQzFCLHlFQUF5RTtBQUN6RSw2Q0FBNkM7QUFDN0Msc0RBQXNEO0FBQ3RELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFdkUsTUFBcUIscUJBQXFCO0lBT3hDLFlBQVksR0FBZ0I7UUFDMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxxREFBeUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLG1DQUFnQixFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUM7UUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsR0FBRyxtQ0FBNEIsQ0FBQztRQUNyRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUkscURBQXlCLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSx1REFBMEIsRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFFRCxjQUFjO1FB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
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import type { Application, Context } from 'egg';
|
|
2
2
|
import http, { ServerResponse } from 'node:http';
|
|
3
|
-
import { ControllerMetadata, MCPControllerMeta, MCPPromptMeta,
|
|
3
|
+
import { ControllerMetadata, MCPControllerMeta, MCPPromptMeta, MCPToolMeta } from '@eggjs/tegg';
|
|
4
4
|
import { EggPrototype } from '@eggjs/tegg-metadata';
|
|
5
|
+
import { EggContainerFactory } from '@eggjs/tegg-runtime';
|
|
5
6
|
import { ControllerRegister } from '../../ControllerRegister';
|
|
6
7
|
import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
|
|
7
8
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
8
9
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
9
10
|
import { JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js';
|
|
10
11
|
import { MCPProtocols } from '@eggjs/mcp-proxy/types';
|
|
12
|
+
import { MCPServerHelper } from './MCPServerHelper';
|
|
11
13
|
export interface MCPControllerHook {
|
|
12
14
|
preSSEInitHandle?: (ctx: Context, transport: SSEServerTransport, register: MCPControllerRegister) => Promise<void>;
|
|
13
15
|
preHandleInitHandle?: (ctx: Context) => Promise<void>;
|
|
@@ -23,7 +25,7 @@ declare class InnerSSEServerTransport extends SSEServerTransport {
|
|
|
23
25
|
export declare class MCPControllerRegister implements ControllerRegister {
|
|
24
26
|
static instance?: MCPControllerRegister;
|
|
25
27
|
readonly app: Application;
|
|
26
|
-
|
|
28
|
+
readonly eggContainerFactory: typeof EggContainerFactory;
|
|
27
29
|
private readonly router;
|
|
28
30
|
private controllerProtos;
|
|
29
31
|
private registeredControllerProtos;
|
|
@@ -32,8 +34,8 @@ export declare class MCPControllerRegister implements ControllerRegister {
|
|
|
32
34
|
res: ServerResponse;
|
|
33
35
|
intervalId: NodeJS.Timeout;
|
|
34
36
|
}>;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
+
mcpServerHelper: MCPServerHelper;
|
|
38
|
+
statelessMcpServerHelper: MCPServerHelper;
|
|
37
39
|
private controllerMeta;
|
|
38
40
|
private mcpConfig;
|
|
39
41
|
statelessTransport: StreamableHTTPServerTransport;
|
|
@@ -47,14 +49,12 @@ export declare class MCPControllerRegister implements ControllerRegister {
|
|
|
47
49
|
constructor(_proto: EggPrototype, controllerMeta: MCPControllerMeta, app: Application);
|
|
48
50
|
static addHook(hook: MCPControllerHook): void;
|
|
49
51
|
static connectStatelessStreamTransport(): Promise<void>;
|
|
52
|
+
static clean(): void;
|
|
50
53
|
mcpStatelessStreamServerInit(): void;
|
|
51
54
|
mcpStreamServerInit(): void;
|
|
52
55
|
mcpServerInit(): void;
|
|
53
56
|
sseCtxStorageRun(ctx: Context, transport: SSEServerTransport): void;
|
|
54
57
|
mcpServerRegister(): void;
|
|
55
|
-
mcpPromptRegister(controllerProto: EggPrototype, promptMeta: MCPPromptMeta): Promise<void>;
|
|
56
|
-
mcpToolRegister(controllerProto: EggPrototype, toolMeta: MCPToolMeta): Promise<void>;
|
|
57
|
-
mcpResourceRegister(controllerProto: EggPrototype, resourceMeta: MCPResourceMeta): Promise<void>;
|
|
58
58
|
register(): Promise<void>;
|
|
59
59
|
}
|
|
60
60
|
export {};
|
|
@@ -10,13 +10,13 @@ const node_net_1 = require("node:net");
|
|
|
10
10
|
const tegg_1 = require("@eggjs/tegg");
|
|
11
11
|
const sse_js_1 = require("@modelcontextprotocol/sdk/server/sse.js");
|
|
12
12
|
const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/server/streamableHttp.js");
|
|
13
|
-
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
14
13
|
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
15
14
|
const types_1 = require("@eggjs/mcp-proxy/types");
|
|
16
15
|
const await_event_1 = __importDefault(require("await-event"));
|
|
17
16
|
const raw_body_1 = __importDefault(require("raw-body"));
|
|
18
17
|
const content_type_1 = __importDefault(require("content-type"));
|
|
19
18
|
const MCPConfig_1 = require("./MCPConfig");
|
|
19
|
+
const MCPServerHelper_1 = require("./MCPServerHelper");
|
|
20
20
|
class InnerSSEServerTransport extends sse_js_1.SSEServerTransport {
|
|
21
21
|
async send(message) {
|
|
22
22
|
var _a, _b;
|
|
@@ -68,7 +68,7 @@ class MCPControllerRegister {
|
|
|
68
68
|
}
|
|
69
69
|
static async connectStatelessStreamTransport() {
|
|
70
70
|
if (MCPControllerRegister.instance && MCPControllerRegister.instance.statelessTransport) {
|
|
71
|
-
MCPControllerRegister.instance.
|
|
71
|
+
await MCPControllerRegister.instance.statelessMcpServerHelper.server.connect(MCPControllerRegister.instance.statelessTransport);
|
|
72
72
|
// 由于 mcp server stateless 需要我们在这里 init
|
|
73
73
|
// 以防止后续请求进入时初次 init 后,请求打到别的进程,而别的进程没有 init
|
|
74
74
|
const socket = new node_net_1.Socket();
|
|
@@ -96,6 +96,12 @@ class MCPControllerRegister {
|
|
|
96
96
|
await MCPControllerRegister.instance.statelessTransport.handleRequest(req, res, initBody);
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
+
static clean() {
|
|
100
|
+
if (this.instance) {
|
|
101
|
+
this.instance.controllerProtos = [];
|
|
102
|
+
}
|
|
103
|
+
this.instance = undefined;
|
|
104
|
+
}
|
|
99
105
|
mcpStatelessStreamServerInit() {
|
|
100
106
|
const postRouterFunc = this.router.post;
|
|
101
107
|
const self = this;
|
|
@@ -212,7 +218,7 @@ class MCPControllerRegister {
|
|
|
212
218
|
'content-type': 'text/event-stream',
|
|
213
219
|
'transfer-encoding': 'chunked',
|
|
214
220
|
});
|
|
215
|
-
await self.
|
|
221
|
+
await self.mcpServerHelper.server.connect(transport);
|
|
216
222
|
await ctx.app.ctxStorage.run(ctx, async () => {
|
|
217
223
|
await mw(ctx, async () => {
|
|
218
224
|
await transport.handleRequest(ctx.req, ctx.res, body);
|
|
@@ -305,7 +311,7 @@ class MCPControllerRegister {
|
|
|
305
311
|
'transfer-encoding': 'chunked',
|
|
306
312
|
});
|
|
307
313
|
ctx.respond = false;
|
|
308
|
-
await self.
|
|
314
|
+
await self.mcpServerHelper.server.connect(transport);
|
|
309
315
|
return self.sseCtxStorageRun.bind(self)(ctx, transport);
|
|
310
316
|
};
|
|
311
317
|
Reflect.apply(routerFunc, this.router, [
|
|
@@ -409,168 +415,45 @@ class MCPControllerRegister {
|
|
|
409
415
|
messageHander,
|
|
410
416
|
]);
|
|
411
417
|
}
|
|
412
|
-
async mcpPromptRegister(controllerProto, promptMeta) {
|
|
413
|
-
var _a, _b, _c, _d;
|
|
414
|
-
const controllerMeta = controllerProto.getMetaData(tegg_1.CONTROLLER_META_DATA);
|
|
415
|
-
const args = [(_a = promptMeta.mcpName) !== null && _a !== void 0 ? _a : promptMeta.name];
|
|
416
|
-
if (promptMeta.description) {
|
|
417
|
-
args.push(promptMeta.description);
|
|
418
|
-
}
|
|
419
|
-
let schema;
|
|
420
|
-
if ((_b = promptMeta.detail) === null || _b === void 0 ? void 0 : _b.argsSchema) {
|
|
421
|
-
schema = (_c = promptMeta.detail) === null || _c === void 0 ? void 0 : _c.argsSchema;
|
|
422
|
-
args.push(schema);
|
|
423
|
-
}
|
|
424
|
-
else if (MCPControllerRegister.hooks.length > 0) {
|
|
425
|
-
for (const hook of MCPControllerRegister.hooks) {
|
|
426
|
-
schema = await ((_d = hook.schemaLoader) === null || _d === void 0 ? void 0 : _d.call(hook, controllerMeta, promptMeta));
|
|
427
|
-
if (schema) {
|
|
428
|
-
args.push(schema);
|
|
429
|
-
break;
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
const self = this;
|
|
434
|
-
const handler = async (...args) => {
|
|
435
|
-
const eggObj = await self.eggContainerFactory.getOrCreateEggObject(controllerProto, controllerProto.name);
|
|
436
|
-
const realObj = eggObj.obj;
|
|
437
|
-
const realMethod = realObj[promptMeta.name];
|
|
438
|
-
let newArgs = [];
|
|
439
|
-
if (schema && promptMeta.detail) {
|
|
440
|
-
// 如果有 schema 则证明入参第一个就是 schema
|
|
441
|
-
newArgs[promptMeta.detail.index] = args[0];
|
|
442
|
-
// 如果有 schema 则证明入参第二个就是 extra
|
|
443
|
-
if (promptMeta.extra) {
|
|
444
|
-
newArgs[promptMeta.extra] = args[1];
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
else if (promptMeta.extra) {
|
|
448
|
-
// 无 schema, 那么入参第一个就是 extra
|
|
449
|
-
newArgs[promptMeta.extra] = args[0];
|
|
450
|
-
}
|
|
451
|
-
newArgs = [...newArgs, ...args];
|
|
452
|
-
return Reflect.apply(realMethod, realObj, newArgs);
|
|
453
|
-
};
|
|
454
|
-
args.push(handler);
|
|
455
|
-
this.mcpServer.prompt(...args);
|
|
456
|
-
this.statelessMcpServer.prompt(...args);
|
|
457
|
-
}
|
|
458
|
-
async mcpToolRegister(controllerProto, toolMeta) {
|
|
459
|
-
var _a, _b, _c, _d, _e;
|
|
460
|
-
const controllerMeta = controllerProto.getMetaData(tegg_1.CONTROLLER_META_DATA);
|
|
461
|
-
const args = [(_a = toolMeta.mcpName) !== null && _a !== void 0 ? _a : toolMeta.name];
|
|
462
|
-
if (toolMeta.description) {
|
|
463
|
-
args.push(toolMeta.description);
|
|
464
|
-
}
|
|
465
|
-
let schema;
|
|
466
|
-
if ((_b = toolMeta.detail) === null || _b === void 0 ? void 0 : _b.argsSchema) {
|
|
467
|
-
schema = (_c = toolMeta.detail) === null || _c === void 0 ? void 0 : _c.argsSchema;
|
|
468
|
-
args.push((_d = toolMeta.detail) === null || _d === void 0 ? void 0 : _d.argsSchema);
|
|
469
|
-
}
|
|
470
|
-
else if (MCPControllerRegister.hooks.length > 0) {
|
|
471
|
-
for (const hook of MCPControllerRegister.hooks) {
|
|
472
|
-
schema = await ((_e = hook.schemaLoader) === null || _e === void 0 ? void 0 : _e.call(hook, controllerMeta, toolMeta));
|
|
473
|
-
if (schema) {
|
|
474
|
-
args.push(schema);
|
|
475
|
-
break;
|
|
476
|
-
}
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
const self = this;
|
|
480
|
-
const handler = async (...args) => {
|
|
481
|
-
const eggObj = await self.eggContainerFactory.getOrCreateEggObject(controllerProto, controllerProto.name);
|
|
482
|
-
const realObj = eggObj.obj;
|
|
483
|
-
const realMethod = realObj[toolMeta.name];
|
|
484
|
-
let newArgs = [];
|
|
485
|
-
if (schema && toolMeta.detail) {
|
|
486
|
-
// 如果有 schema 则证明入参第一个就是 schema
|
|
487
|
-
newArgs[toolMeta.detail.index] = args[0];
|
|
488
|
-
// 如果有 schema 则证明入参第二个就是 extra
|
|
489
|
-
if (toolMeta.extra) {
|
|
490
|
-
newArgs[toolMeta.extra] = args[1];
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
|
-
else if (toolMeta.extra) {
|
|
494
|
-
// 无 schema, 那么入参第一个就是 extra
|
|
495
|
-
newArgs[toolMeta.extra] = args[0];
|
|
496
|
-
}
|
|
497
|
-
newArgs = [...newArgs, ...args];
|
|
498
|
-
return Reflect.apply(realMethod, realObj, newArgs);
|
|
499
|
-
};
|
|
500
|
-
args.push(handler);
|
|
501
|
-
this.mcpServer.tool(...args);
|
|
502
|
-
this.statelessMcpServer.tool(...args);
|
|
503
|
-
}
|
|
504
|
-
async mcpResourceRegister(controllerProto, resourceMeta) {
|
|
505
|
-
var _a;
|
|
506
|
-
const args = [(_a = resourceMeta.mcpName) !== null && _a !== void 0 ? _a : resourceMeta.name];
|
|
507
|
-
if (resourceMeta.uri) {
|
|
508
|
-
args.push(resourceMeta.uri);
|
|
509
|
-
}
|
|
510
|
-
if (resourceMeta.template) {
|
|
511
|
-
const template = resourceMeta.template;
|
|
512
|
-
args.push(template);
|
|
513
|
-
}
|
|
514
|
-
if (resourceMeta.metadata) {
|
|
515
|
-
args.push(resourceMeta.metadata);
|
|
516
|
-
}
|
|
517
|
-
const self = this;
|
|
518
|
-
const handler = async (...args) => {
|
|
519
|
-
const eggObj = await self.eggContainerFactory.getOrCreateEggObject(controllerProto, controllerProto.name);
|
|
520
|
-
const realObj = eggObj.obj;
|
|
521
|
-
const realMethod = realObj[resourceMeta.name];
|
|
522
|
-
return Reflect.apply(realMethod, realObj, args);
|
|
523
|
-
};
|
|
524
|
-
args.push(handler);
|
|
525
|
-
this.mcpServer.resource(...args);
|
|
526
|
-
this.statelessMcpServer.resource(...args);
|
|
527
|
-
}
|
|
528
418
|
async register() {
|
|
529
419
|
var _a, _b, _c, _d;
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
420
|
+
if (!this.mcpServerHelper) {
|
|
421
|
+
this.mcpServerHelper = new MCPServerHelper_1.MCPServerHelper({
|
|
422
|
+
name: (_a = this.controllerMeta.name) !== null && _a !== void 0 ? _a : `chair-mcp-${this.app.name}-server`,
|
|
423
|
+
version: (_b = this.controllerMeta.version) !== null && _b !== void 0 ? _b : '1.0.0',
|
|
424
|
+
hooks: MCPControllerRegister.hooks,
|
|
425
|
+
});
|
|
426
|
+
this.statelessMcpServerHelper = new MCPServerHelper_1.MCPServerHelper({
|
|
427
|
+
name: (_c = this.controllerMeta.name) !== null && _c !== void 0 ? _c : `chair-mcp-${this.app.name}-server`,
|
|
428
|
+
version: (_d = this.controllerMeta.version) !== null && _d !== void 0 ? _d : '1.0.0',
|
|
429
|
+
hooks: MCPControllerRegister.hooks,
|
|
430
|
+
});
|
|
431
|
+
this.mcpStatelessStreamServerInit();
|
|
432
|
+
this.mcpStreamServerInit();
|
|
433
|
+
this.mcpServerInit();
|
|
434
|
+
this.mcpServerRegister();
|
|
435
|
+
}
|
|
533
436
|
for (const proto of this.controllerProtos) {
|
|
534
437
|
if (this.registeredControllerProtos.includes(proto)) {
|
|
535
438
|
continue;
|
|
536
439
|
}
|
|
537
440
|
const metadata = proto.getMetaData(tegg_1.CONTROLLER_META_DATA);
|
|
538
441
|
for (const prompt of metadata.prompts) {
|
|
539
|
-
|
|
442
|
+
await this.mcpServerHelper.mcpPromptRegister(this.eggContainerFactory.getOrCreateEggObject.bind(this.eggContainerFactory), proto, prompt);
|
|
443
|
+
await this.statelessMcpServerHelper.mcpPromptRegister(this.eggContainerFactory.getOrCreateEggObject.bind(this.eggContainerFactory), proto, prompt);
|
|
540
444
|
}
|
|
541
445
|
for (const resource of metadata.resources) {
|
|
542
|
-
|
|
446
|
+
await this.mcpServerHelper.mcpResourceRegister(this.eggContainerFactory.getOrCreateEggObject.bind(this.eggContainerFactory), proto, resource);
|
|
447
|
+
await this.statelessMcpServerHelper.mcpResourceRegister(this.eggContainerFactory.getOrCreateEggObject.bind(this.eggContainerFactory), proto, resource);
|
|
543
448
|
}
|
|
544
449
|
for (const tool of metadata.tools) {
|
|
545
|
-
|
|
450
|
+
await this.mcpServerHelper.mcpToolRegister(this.eggContainerFactory.getOrCreateEggObject.bind(this.eggContainerFactory), proto, tool);
|
|
451
|
+
await this.statelessMcpServerHelper.mcpToolRegister(this.eggContainerFactory.getOrCreateEggObject.bind(this.eggContainerFactory), proto, tool);
|
|
546
452
|
}
|
|
547
453
|
this.registeredControllerProtos.push(proto);
|
|
548
454
|
}
|
|
549
|
-
if (!this.mcpServer) {
|
|
550
|
-
this.mcpServer = new mcp_js_1.McpServer({
|
|
551
|
-
name: (_a = this.controllerMeta.name) !== null && _a !== void 0 ? _a : `chair-mcp-${this.app.name}-server`,
|
|
552
|
-
version: (_b = this.controllerMeta.version) !== null && _b !== void 0 ? _b : '1.0.0',
|
|
553
|
-
}, { capabilities: { logging: {} } });
|
|
554
|
-
this.statelessMcpServer = new mcp_js_1.McpServer({
|
|
555
|
-
name: (_c = this.controllerMeta.name) !== null && _c !== void 0 ? _c : `chair-mcp-${this.app.name}-stateless-server`,
|
|
556
|
-
version: (_d = this.controllerMeta.version) !== null && _d !== void 0 ? _d : '1.0.0',
|
|
557
|
-
}, { capabilities: { logging: {} } });
|
|
558
|
-
this.mcpStatelessStreamServerInit();
|
|
559
|
-
this.mcpStreamServerInit();
|
|
560
|
-
this.mcpServerInit();
|
|
561
|
-
this.mcpServerRegister();
|
|
562
|
-
}
|
|
563
|
-
for (const [prompt, controllerProto] of promptMap.entries()) {
|
|
564
|
-
await this.mcpPromptRegister(controllerProto, prompt);
|
|
565
|
-
}
|
|
566
|
-
for (const [tool, controllerProto] of toolMap.entries()) {
|
|
567
|
-
await this.mcpToolRegister(controllerProto, tool);
|
|
568
|
-
}
|
|
569
|
-
for (const [resource, controllerProto] of resourceMap.entries()) {
|
|
570
|
-
await this.mcpResourceRegister(controllerProto, resource);
|
|
571
|
-
}
|
|
572
455
|
}
|
|
573
456
|
}
|
|
574
457
|
exports.MCPControllerRegister = MCPControllerRegister;
|
|
575
458
|
MCPControllerRegister.hooks = [];
|
|
576
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNQQ29udHJvbGxlclJlZ2lzdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTUNQQ29udHJvbGxlclJlZ2lzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLDhEQUFpQztBQUNqQyx5Q0FBa0U7QUFDbEUsdUNBQWtDO0FBRWxDLHNDQVFxQjtBQUlyQixvRUFBNkU7QUFDN0UsMEZBQW1HO0FBQ25HLG9FQUFvRTtBQUNwRSxpRUFBMkc7QUFDM0csa0RBQXNEO0FBQ3RELDhEQUFxQztBQUVyQyx3REFBa0M7QUFDbEMsZ0VBQXVDO0FBRXZDLDJDQUF3QztBQWtCeEMsTUFBTSx1QkFBd0IsU0FBUSwyQkFBa0I7SUFDdEQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUF1Qjs7UUFDaEMsSUFBSSxHQUFHLEdBQWlCLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUM7WUFDSCxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxHQUFHLEdBQUcsQ0FBVSxDQUFDO1FBQ25CLENBQUM7Z0JBQVMsQ0FBQztZQUNULG1FQUFtRTtZQUNuRSxNQUFNLEdBQUcsR0FBRyxNQUFBLHFCQUFxQixDQUFDLFFBQVEsMENBQUUsdUJBQXVCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlFLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFBLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1DQUFJLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDWixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNqQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3pCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRjtBQUdELE1BQWEscUJBQXFCO0lBeUJoQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQW1CLEVBQUUsY0FBa0MsRUFBRSxHQUFnQjtRQUNyRixJQUFBLHFCQUFNLEVBQUMsY0FBYyxDQUFDLElBQUksS0FBSyxxQkFBYyxDQUFDLEdBQUcsRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQyxxQkFBcUIsQ0FBQyxRQUFRLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsY0FBbUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RyxDQUFDO1FBQ0QscUJBQXFCLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RCxPQUFPLHFCQUFxQixDQUFDLFFBQVEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsWUFBWSxNQUFvQixFQUFFLGNBQWlDLEVBQUUsR0FBZ0I7UUE3QjdFLHFCQUFnQixHQUFtQixFQUFFLENBQUM7UUFDdEMsK0JBQTBCLEdBQW1CLEVBQUUsQ0FBQztRQUN4RCxlQUFVLEdBQTRDLEVBQUUsQ0FBQztRQUN6RCxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUErRCxDQUFDO1FBTXhGLHFCQUFnQixHQUFrRCxFQUFFLENBQUM7UUFDckUsMENBQTBDO1FBQzFDLDRCQUF1QixHQUFHLElBQUksR0FBRyxFQU03QixDQUFDO1FBYUgsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsbUJBQW1CLEdBQUcsR0FBRyxDQUFDLG1CQUFtQixDQUFDO1FBQ25ELElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUV6QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUVyQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUkscUJBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQXVCO1FBQ3BDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsK0JBQStCO1FBQzFDLElBQUkscUJBQXFCLENBQUMsUUFBUSxJQUFJLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3hGLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDN0csdUNBQXVDO1lBQ3ZDLDRDQUE0QztZQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFNLEVBQUUsQ0FBQztZQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLDJCQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDeEMsTUFBTSxHQUFHLEdBQUcsSUFBSSwwQkFBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3BCLEdBQUcsQ0FBQyxHQUFHLEdBQUcscUJBQXFCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQztZQUN2RSxHQUFHLENBQUMsT0FBTyxHQUFHO2dCQUNaLE1BQU0sRUFBRSxxQ0FBcUM7Z0JBQzdDLGNBQWMsRUFBRSxrQkFBa0I7YUFDbkMsQ0FBQztZQUNGLE1BQU0sUUFBUSxHQUFHO2dCQUNmLE9BQU8sRUFBRSxLQUFLO2dCQUNkLEVBQUUsRUFBRSxDQUFDO2dCQUNMLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixNQUFNLEVBQUU7b0JBQ04sZUFBZSxFQUFFLFlBQVk7b0JBQzdCLFlBQVksRUFBRSxFQUNiO29CQUNELFVBQVUsRUFBRTt3QkFDVixJQUFJLEVBQUUsYUFBYTt3QkFDbkIsT0FBTyxFQUFFLE9BQU87cUJBQ2pCO2lCQUNGO2FBQ0YsQ0FBQztZQUNGLE1BQU0scUJBQXFCLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVGLENBQUM7SUFDSCxDQUFDO0lBRUQsNEJBQTRCO1FBQzFCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixNQUFNLFNBQVMsR0FBa0MsSUFBSSxpREFBNkIsQ0FBQztZQUNqRixrQkFBa0IsRUFBRSxTQUFTO1NBQzlCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUM7UUFDcEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUM1RCxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsR0FBWSxFQUFFLEVBQUU7O1lBQ3pDLElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsS0FBSyxNQUFNLElBQUksSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDL0MsTUFBTSxDQUFBLE1BQUEsSUFBSSxDQUFDLFNBQVMscURBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQSxDQUFDO2dCQUNsRCxDQUFDO1lBQ0gsQ0FBQztZQUNELEdBQUcsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLEdBQUcsQ0FBQyxHQUFHLENBQUM7Z0JBQ04sY0FBYyxFQUFFLG1CQUFtQjtnQkFDbkMsbUJBQW1CLEVBQUUsU0FBUzthQUMvQixDQUFDLENBQUM7WUFFSCxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQzNDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRTtvQkFDdkIsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUM5RCxNQUFNLElBQUEscUJBQVUsRUFBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNyQyxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTztRQUNULENBQUMsQ0FBQztRQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDekMsNkJBQTZCO1lBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CO1lBQ2xDLEdBQUcsRUFBRTtZQUNMLFdBQVc7U0FDWixDQUFDLENBQUM7UUFDSCxxQkFBcUI7UUFDckIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDdEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDdEMsTUFBTSxVQUFVLEdBQUcsS0FBSyxFQUFFLEdBQVksRUFBRSxFQUFFO1lBQ3hDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1lBQ2pCLEdBQUcsQ0FBQyxJQUFJLEdBQUc7Z0JBQ1QsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsS0FBSyxFQUFFO29CQUNMLElBQUksRUFBRSxDQUFDLEtBQUs7b0JBQ1osT0FBTyxFQUFFLHFCQUFxQjtpQkFDL0I7Z0JBQ0QsRUFBRSxFQUFFLElBQUk7YUFDVCxDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBQ0YsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN4Qyw2QkFBNkI7WUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUI7WUFDbEMsR0FBRyxFQUFFO1lBQ0wsVUFBVTtTQUNYLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDeEMsNkJBQTZCO1lBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CO1lBQ2xDLEdBQUcsRUFBRTtZQUNMLFVBQVU7U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQzVELE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxHQUFZLEVBQUUsRUFBRTs7WUFDekMsR0FBRyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxLQUFLLE1BQU0sSUFBSSxJQUFJLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO29CQUMvQyxNQUFNLENBQUEsTUFBQSxJQUFJLENBQUMsU0FBUyxxREFBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFBLENBQUM7Z0JBQ2xELENBQUM7WUFDSCxDQUFDO1lBQ0QsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQXVCLENBQUM7WUFDMUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNmLE1BQU0sRUFBRSxHQUFHLHNCQUFXLENBQUMsS0FBSyxDQUFDLE1BQUEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUVwRSxJQUFJLElBQUksQ0FBQztnQkFFVCxJQUFJLENBQUM7b0JBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFBLGtCQUFVLEVBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTt3QkFDeEMsS0FBSyxFQUFFLEtBQUs7d0JBQ1osUUFBUSxFQUFFLE1BQUEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLG1DQUFJLE9BQU87cUJBQzNDLENBQUMsQ0FBQztvQkFFSCxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDN0IsQ0FBQztnQkFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUNYLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO29CQUNqQixHQUFHLENBQUMsSUFBSSxHQUFHO3dCQUNULE9BQU8sRUFBRSxLQUFLO3dCQUNkLEtBQUssRUFBRTs0QkFDTCxJQUFJLEVBQUUsQ0FBQyxLQUFLOzRCQUNaLE9BQU8sRUFBRSxxQ0FBcUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO3lCQUM3RDt3QkFDRCxFQUFFLEVBQUUsSUFBSTtxQkFDVCxDQUFDO29CQUNGLE9BQU87Z0JBQ1QsQ0FBQztnQkFFRCxJQUFJLElBQUEsOEJBQW1CLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDOUIsR0FBRyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBQ3BCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO29CQUM3QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7b0JBQ2xCLE1BQU0sU0FBUyxHQUFHLElBQUksaURBQTZCLENBQUM7d0JBQ2xELGtCQUFrQixFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDO3dCQUNoRSxVQUFVO3dCQUNWLG9CQUFvQixFQUFFLEtBQUssSUFBSSxFQUFFOzs0QkFDL0IsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dDQUMzQyxLQUFLLE1BQU0sSUFBSSxJQUFJLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO29DQUMvQyxNQUFNLENBQUEsTUFBQSxJQUFJLENBQUMsMEJBQTBCLHFEQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQSxDQUFDO2dDQUNwRixDQUFDOzRCQUNILENBQUM7d0JBQ0gsQ0FBQztxQkFDRixDQUFDLENBQUM7b0JBRUgsR0FBRyxDQUFDLEdBQUcsQ0FBQzt3QkFDTixjQUFjLEVBQUUsbUJBQW1CO3dCQUNuQyxtQkFBbUIsRUFBRSxTQUFTO3FCQUMvQixDQUFDLENBQUM7b0JBRUgsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFFeEMsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFO3dCQUMzQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUU7NEJBQ3ZCLE1BQU0sU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7NEJBQ3RELE1BQU0sSUFBQSxxQkFBVSxFQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7d0JBQ3JDLENBQUMsQ0FBQyxDQUFDO29CQUNMLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7cUJBQU0sQ0FBQztvQkFDTixHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztvQkFDakIsR0FBRyxDQUFDLElBQUksR0FBRzt3QkFDVCxPQUFPLEVBQUUsS0FBSzt3QkFDZCxLQUFLLEVBQUU7NEJBQ0wsSUFBSSxFQUFFLENBQUMsS0FBSzs0QkFDWixPQUFPLEVBQUUsMkNBQTJDO3lCQUNyRDt3QkFDRCxFQUFFLEVBQUUsSUFBSTtxQkFDVCxDQUFDO29CQUNGLE9BQU87Z0JBQ1QsQ0FBQztZQUNILENBQUM7aUJBQU0sSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDckIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNuRCxJQUFJLFNBQVMsRUFBRSxDQUFDO29CQUNkLElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDM0MsS0FBSyxNQUFNLElBQUksSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQzs0QkFDL0MsTUFBTSxDQUFBLE1BQUEsSUFBSSxDQUFDLFNBQVMscURBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQSxDQUFDO3dCQUNsRCxDQUFDO29CQUNILENBQUM7b0JBQ0QsR0FBRyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBQ3BCLEdBQUcsQ0FBQyxHQUFHLENBQUM7d0JBQ04sY0FBYyxFQUFFLG1CQUFtQjt3QkFDbkMsbUJBQW1CLEVBQUUsU0FBUztxQkFDL0IsQ0FBQyxDQUFDO29CQUNILE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRTt3QkFDM0MsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFOzRCQUN2QixNQUFNLFNBQVMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7NEJBQ2hELE1BQU0sSUFBQSxxQkFBVSxFQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7d0JBQ3JDLENBQUMsQ0FBQyxDQUFDO29CQUNMLENBQUMsQ0FBQyxDQUFDO29CQUNILE9BQU87Z0JBQ1QsQ0FBQztnQkFDRCxJQUFJLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzNDLEtBQUssTUFBTSxJQUFJLElBQUkscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQy9DLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQSxNQUFBLElBQUksQ0FBQyxnQkFBZ0IscURBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsb0JBQVksQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUEsQ0FBQzt3QkFDdkcsSUFBSSxPQUFPLEVBQUUsQ0FBQzs0QkFDWixPQUFPO3dCQUNULENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDLENBQUM7UUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3hDLG9CQUFvQjtZQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVU7WUFDekIsR0FBRyxFQUFFO1lBQ0wsV0FBVztTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDbkMsb0ZBQW9GO1FBQ3BGLHVCQUF1QjtRQUN2QiwyQ0FBMkM7UUFDM0MsSUFBSTtRQUNKLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsR0FBWSxFQUFFLEVBQUU7O1lBQ3pDLE1BQU0sU0FBUyxHQUFHLElBQUksdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RGLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUM7WUFDL0IsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxLQUFLLE1BQU0sSUFBSSxJQUFJLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO29CQUMvQyxNQUFNLENBQUEsTUFBQSxJQUFJLENBQUMsZ0JBQWdCLHFEQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQSxDQUFDO2dCQUMxRSxDQUFDO1lBQ0gsQ0FBQztZQUNELDRGQUE0RjtZQUM1RixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO2dCQUNsQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDMUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDbkMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2pDLENBQUM7WUFDSCxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO1lBQ2hDLEdBQUcsQ0FBQyxHQUFHLENBQUM7Z0JBQ04sY0FBYyxFQUFFLG1CQUFtQjtnQkFDbkMsbUJBQW1CLEVBQUUsU0FBUzthQUMvQixDQUFDLENBQUM7WUFDSCxHQUFHLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNwQixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDMUQsQ0FBQyxDQUFDO1FBQ0YsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNyQyxjQUFjO1lBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXO1lBQzFCLEdBQUcsRUFBRTtZQUNMLFdBQVc7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBWSxFQUFFLFNBQTZCO1FBQzFELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQzVELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDcEMsU0FBUyxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUU7WUFDOUIsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQztRQUNGLFNBQVMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0UsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUN4QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNoRCxTQUFTLENBQUMsU0FBUyxHQUFHLEtBQUssRUFBRSxHQUFHLElBQXdCLEVBQUUsRUFBRTtZQUMxRCwyQ0FBMkM7WUFDM0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxpQkFBTSxFQUFFLENBQUM7WUFDNUIsTUFBTSxHQUFHLEdBQUcsSUFBSSwyQkFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sR0FBRyxHQUFHLElBQUksMEJBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQyxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNwQixHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1lBQ3JDLEdBQUcsQ0FBQyxPQUFPLEdBQUc7Z0JBQ1osTUFBTSxFQUFFLHFDQUFxQztnQkFDN0MsY0FBYyxFQUFFLGtCQUFrQjthQUNuQyxDQUFDO1lBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBdUIsQ0FBQztZQUN0RSxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQzlDLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLElBQUksRUFBRTtvQkFDMUIsV0FBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7b0JBQ3RCLElBQUksSUFBQSwyQkFBZ0IsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUM5QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBRSxDQUFDO3dCQUN6RCxNQUFNLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTs0QkFDakQsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0NBQ3BCLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7NEJBQ3hDLENBQUM7d0JBQ0gsQ0FBQyxDQUFDLENBQUM7d0JBQ0gsTUFBTSxJQUFJLENBQUM7b0JBQ2IsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixvRkFBb0Y7UUFDcEYsdUJBQXVCO1FBQ3ZCLDJDQUEyQztRQUMzQyxJQUFJO1FBQ0osTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUFFLEdBQVksRUFBRSxFQUFFOztZQUMzQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUV0QyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUMzQyxLQUFLLE1BQU0sSUFBSSxJQUFJLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUMvQyxNQUFNLENBQUEsTUFBQSxJQUFJLENBQUMsbUJBQW1CLHFEQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUEsQ0FBQztvQkFDNUQsQ0FBQztnQkFDSCxDQUFDO2dCQUNELElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxDQUFDO29CQUNILE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkUsQ0FBQztnQkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO29CQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ3pCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO3dCQUNqQixHQUFHLENBQUMsSUFBSSxHQUFHOzRCQUNULE9BQU8sRUFBRSxLQUFLOzRCQUNkLEtBQUssRUFBRTtnQ0FDTCxJQUFJLEVBQUUsQ0FBQyxLQUFLO2dDQUNaLE9BQU8sRUFBRSxtQkFBbUIsS0FBSyxDQUFDLE9BQU8sRUFBRTs2QkFDNUM7NEJBQ0QsRUFBRSxFQUFFLElBQUk7eUJBQ1QsQ0FBQztvQkFDSixDQUFDO2dCQUNILENBQUM7Z0JBQ0QsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzNDLEtBQUssTUFBTSxJQUFJLElBQUkscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQy9DLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQSxNQUFBLElBQUksQ0FBQyxnQkFBZ0IscURBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsb0JBQVksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUEsQ0FBQztvQkFDcEcsSUFBSSxPQUFPLEVBQUUsQ0FBQzt3QkFDWixPQUFPO29CQUNULENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUM7UUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3JDLGlCQUFpQjtZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWM7WUFDN0IsR0FBRyxFQUFFO1lBQ0wsYUFBYTtTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsZUFBNkIsRUFBRSxVQUF5Qjs7UUFDOUUsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQywyQkFBb0IsQ0FBc0IsQ0FBQztRQUM5RixNQUFNLElBQUksR0FBVSxDQUFFLE1BQUEsVUFBVSxDQUFDLE9BQU8sbUNBQUksVUFBVSxDQUFDLElBQUksQ0FBRSxDQUFDO1FBQzlELElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQztRQUNYLElBQUksTUFBQSxVQUFVLENBQUMsTUFBTSwwQ0FBRSxVQUFVLEVBQUUsQ0FBQztZQUNsQyxNQUFNLEdBQUcsTUFBQSxVQUFVLENBQUMsTUFBTSwwQ0FBRSxVQUFVLENBQUM7WUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixDQUFDO2FBQU0sSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xELEtBQUssTUFBTSxJQUFJLElBQUkscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQy9DLE1BQU0sR0FBRyxNQUFNLENBQUEsTUFBQSxJQUFJLENBQUMsWUFBWSxxREFBRyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUEsQ0FBQztnQkFDL0QsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNsQixNQUFNO2dCQUNSLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRTtZQUNoQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFHLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7WUFDM0IsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QyxJQUFJLE9BQU8sR0FBVSxFQUFFLENBQUM7WUFDeEIsSUFBSSxNQUFNLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNoQywrQkFBK0I7Z0JBQy9CLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFM0MsOEJBQThCO2dCQUM5QixJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDckIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RDLENBQUM7WUFDSCxDQUFDO2lCQUFNLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM1Qiw0QkFBNEI7Z0JBQzVCLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7WUFDRCxPQUFPLEdBQUcsQ0FBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBRSxDQUFDO1lBQ2xDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBSSxJQUF3QyxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxHQUFJLElBQXdDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWUsQ0FBQyxlQUE2QixFQUFFLFFBQXFCOztRQUN4RSxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsV0FBVyxDQUFDLDJCQUFvQixDQUFzQixDQUFDO1FBQzlGLE1BQU0sSUFBSSxHQUFVLENBQUUsTUFBQSxRQUFRLENBQUMsT0FBTyxtQ0FBSSxRQUFRLENBQUMsSUFBSSxDQUFFLENBQUM7UUFDMUQsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDO1FBQ1gsSUFBSSxNQUFBLFFBQVEsQ0FBQyxNQUFNLDBDQUFFLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sR0FBRyxNQUFBLFFBQVEsQ0FBQyxNQUFNLDBDQUFFLFVBQVUsQ0FBQztZQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQUEsUUFBUSxDQUFDLE1BQU0sMENBQUUsVUFBVSxDQUFDLENBQUM7UUFDekMsQ0FBQzthQUFNLElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsRCxLQUFLLE1BQU0sSUFBSSxJQUFJLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMvQyxNQUFNLEdBQUcsTUFBTSxDQUFBLE1BQUEsSUFBSSxDQUFDLFlBQVkscURBQUcsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFBLENBQUM7Z0JBQzdELElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDbEIsTUFBTTtnQkFDUixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUU7WUFDaEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxRyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1lBQzNCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUMsSUFBSSxPQUFPLEdBQVUsRUFBRSxDQUFDO1lBQ3hCLElBQUksTUFBTSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDOUIsK0JBQStCO2dCQUMvQixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRXpDLDhCQUE4QjtnQkFDOUIsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ25CLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDMUIsNEJBQTRCO2dCQUM1QixPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBQ0QsT0FBTyxHQUFHLENBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUUsQ0FBQztZQUNsQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUksSUFBd0MsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBSSxJQUF3QyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxlQUE2QixFQUFFLFlBQTZCOztRQUNwRixNQUFNLElBQUksR0FBVSxDQUFFLE1BQUEsWUFBWSxDQUFDLE9BQU8sbUNBQUksWUFBWSxDQUFDLElBQUksQ0FBRSxDQUFDO1FBQ2xFLElBQUksWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFDRCxJQUFJLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMxQixNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUU7WUFDaEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxRyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1lBQzNCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUMsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFJLElBQXdDLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEdBQUksSUFBd0MsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUTs7UUFDWixNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBK0IsQ0FBQztRQUN6RCxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQztRQUM3RCxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBNkIsQ0FBQztRQUNyRCxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFDLElBQUksSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNwRCxTQUFTO1lBQ1gsQ0FBQztZQUNELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsMkJBQW9CLENBQXNCLENBQUM7WUFDOUUsS0FBSyxNQUFNLE1BQU0sSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3RDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQy9CLENBQUM7WUFDRCxLQUFLLE1BQU0sUUFBUSxJQUFJLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDMUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUNELEtBQUssTUFBTSxJQUFJLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMzQixDQUFDO1lBQ0QsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksa0JBQVMsQ0FBQztnQkFDN0IsSUFBSSxFQUFFLE1BQUEsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLG1DQUFJLGFBQWEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFNBQVM7Z0JBQ3JFLE9BQU8sRUFBRSxNQUFBLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxtQ0FBSSxPQUFPO2FBQ2hELEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLGtCQUFTLENBQUM7Z0JBQ3RDLElBQUksRUFBRSxNQUFBLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxtQ0FBSSxhQUFhLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxtQkFBbUI7Z0JBQy9FLE9BQU8sRUFBRSxNQUFBLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxtQ0FBSSxPQUFPO2FBQ2hELEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FBQ0QsS0FBSyxNQUFNLENBQUUsTUFBTSxFQUFFLGVBQWUsQ0FBRSxJQUFJLFNBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQzlELE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsS0FBSyxNQUFNLENBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBRSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQzFELE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELEtBQUssTUFBTSxDQUFFLFFBQVEsRUFBRSxlQUFlLENBQUUsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNsRSxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7O0FBMWlCSCxzREEyaUJDO0FBcGhCUSwyQkFBSyxHQUF3QixFQUFFLEFBQTFCLENBQTJCIn0=
|
|
459
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNQQ29udHJvbGxlclJlZ2lzdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTUNQQ29udHJvbGxlclJlZ2lzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLDhEQUFpQztBQUNqQyx5Q0FBa0U7QUFDbEUsdUNBQWtDO0FBRWxDLHNDQU9xQjtBQUlyQixvRUFBNkU7QUFDN0UsMEZBQW1HO0FBRW5HLGlFQUEyRztBQUMzRyxrREFBc0Q7QUFDdEQsOERBQXFDO0FBRXJDLHdEQUFrQztBQUNsQyxnRUFBdUM7QUFFdkMsMkNBQXdDO0FBQ3hDLHVEQUFvRDtBQWtCcEQsTUFBTSx1QkFBd0IsU0FBUSwyQkFBa0I7SUFDdEQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUF1Qjs7UUFDaEMsSUFBSSxHQUFHLEdBQWlCLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUM7WUFDSCxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxHQUFHLEdBQUcsQ0FBVSxDQUFDO1FBQ25CLENBQUM7Z0JBQVMsQ0FBQztZQUNULG1FQUFtRTtZQUNuRSxNQUFNLEdBQUcsR0FBRyxNQUFBLHFCQUFxQixDQUFDLFFBQVEsMENBQUUsdUJBQXVCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlFLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFBLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1DQUFJLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDWixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNqQyxPQUFP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
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { MCPControllerHook } from './MCPControllerRegister';
|
|
3
|
+
import { EggObject, EggObjectName, EggPrototype } from '@eggjs/tegg-types';
|
|
4
|
+
import { MCPPromptMeta, MCPResourceMeta, MCPToolMeta } from '@eggjs/tegg';
|
|
5
|
+
export interface MCPServerHelperOptions {
|
|
6
|
+
name: string;
|
|
7
|
+
version: string;
|
|
8
|
+
hooks: MCPControllerHook[];
|
|
9
|
+
}
|
|
10
|
+
export declare class MCPServerHelper {
|
|
11
|
+
server: McpServer;
|
|
12
|
+
hooks: MCPControllerHook[];
|
|
13
|
+
constructor(opts: MCPServerHelperOptions);
|
|
14
|
+
mcpResourceRegister(getOrCreateEggObject: (proto: EggPrototype, name?: EggObjectName) => Promise<EggObject>, controllerProto: EggPrototype, resourceMeta: MCPResourceMeta): Promise<void>;
|
|
15
|
+
mcpToolRegister(getOrCreateEggObject: (proto: EggPrototype, name?: EggObjectName) => Promise<EggObject>, controllerProto: EggPrototype, toolMeta: MCPToolMeta): Promise<void>;
|
|
16
|
+
mcpPromptRegister(getOrCreateEggObject: (proto: EggPrototype, name?: EggObjectName) => Promise<EggObject>, controllerProto: EggPrototype, promptMeta: MCPPromptMeta): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MCPServerHelper = void 0;
|
|
4
|
+
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
5
|
+
const MCPControllerRegister_1 = require("./MCPControllerRegister");
|
|
6
|
+
const tegg_types_1 = require("@eggjs/tegg-types");
|
|
7
|
+
class MCPServerHelper {
|
|
8
|
+
constructor(opts) {
|
|
9
|
+
this.server = new mcp_js_1.McpServer({
|
|
10
|
+
name: opts.name,
|
|
11
|
+
version: opts.version,
|
|
12
|
+
}, { capabilities: { logging: {} } });
|
|
13
|
+
this.hooks = opts.hooks;
|
|
14
|
+
}
|
|
15
|
+
async mcpResourceRegister(getOrCreateEggObject, controllerProto, resourceMeta) {
|
|
16
|
+
var _a;
|
|
17
|
+
const handler = async (...args) => {
|
|
18
|
+
const eggObj = await getOrCreateEggObject(controllerProto, controllerProto.name);
|
|
19
|
+
const realObj = eggObj.obj;
|
|
20
|
+
const realMethod = realObj[resourceMeta.name];
|
|
21
|
+
return Reflect.apply(realMethod, realObj, args);
|
|
22
|
+
};
|
|
23
|
+
const name = (_a = resourceMeta.mcpName) !== null && _a !== void 0 ? _a : resourceMeta.name;
|
|
24
|
+
if (resourceMeta.uri) {
|
|
25
|
+
if (resourceMeta.metadata) {
|
|
26
|
+
this.server.resource(name, resourceMeta.uri, resourceMeta.metadata, handler);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
this.server.resource(name, resourceMeta.uri, handler);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
else if (resourceMeta.template) {
|
|
33
|
+
if (resourceMeta.metadata) {
|
|
34
|
+
this.server.resource(name, resourceMeta.template, resourceMeta.metadata, handler);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.server.resource(name, resourceMeta.template, handler);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
throw new Error(`MCPResource ${name} must have uri or template`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async mcpToolRegister(getOrCreateEggObject, controllerProto, toolMeta) {
|
|
45
|
+
var _a, _b, _c, _d;
|
|
46
|
+
const controllerMeta = controllerProto.getMetaData(tegg_types_1.CONTROLLER_META_DATA);
|
|
47
|
+
const name = (_a = toolMeta.mcpName) !== null && _a !== void 0 ? _a : toolMeta.name;
|
|
48
|
+
const description = toolMeta.description;
|
|
49
|
+
let schema;
|
|
50
|
+
if ((_b = toolMeta.detail) === null || _b === void 0 ? void 0 : _b.argsSchema) {
|
|
51
|
+
schema = (_c = toolMeta.detail) === null || _c === void 0 ? void 0 : _c.argsSchema;
|
|
52
|
+
}
|
|
53
|
+
else if (MCPControllerRegister_1.MCPControllerRegister.hooks.length > 0) {
|
|
54
|
+
for (const hook of MCPControllerRegister_1.MCPControllerRegister.hooks) {
|
|
55
|
+
schema = await ((_d = hook.schemaLoader) === null || _d === void 0 ? void 0 : _d.call(hook, controllerMeta, toolMeta));
|
|
56
|
+
if (schema) {
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const handler = async (...args) => {
|
|
62
|
+
const eggObj = await getOrCreateEggObject(controllerProto, controllerProto.name);
|
|
63
|
+
const realObj = eggObj.obj;
|
|
64
|
+
const realMethod = realObj[toolMeta.name];
|
|
65
|
+
let newArgs = [];
|
|
66
|
+
if (schema && toolMeta.detail) {
|
|
67
|
+
// 如果有 schema 则证明入参第一个就是 schema
|
|
68
|
+
newArgs[toolMeta.detail.index] = args[0];
|
|
69
|
+
// 如果有 schema 则证明入参第二个就是 extra
|
|
70
|
+
if (toolMeta.extra) {
|
|
71
|
+
newArgs[toolMeta.extra] = args[1];
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else if (toolMeta.extra) {
|
|
75
|
+
// 无 schema, 那么入参第一个就是 extra
|
|
76
|
+
newArgs[toolMeta.extra] = args[0];
|
|
77
|
+
}
|
|
78
|
+
newArgs = [...newArgs, ...args];
|
|
79
|
+
return Reflect.apply(realMethod, realObj, newArgs);
|
|
80
|
+
};
|
|
81
|
+
if (description && schema) {
|
|
82
|
+
this.server.tool(name, description, schema, handler);
|
|
83
|
+
}
|
|
84
|
+
else if (description) {
|
|
85
|
+
this.server.tool(name, description, handler);
|
|
86
|
+
}
|
|
87
|
+
else if (schema) {
|
|
88
|
+
this.server.tool(name, schema, handler);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
this.server.tool(name, handler);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
async mcpPromptRegister(getOrCreateEggObject, controllerProto, promptMeta) {
|
|
95
|
+
var _a, _b, _c, _d;
|
|
96
|
+
const controllerMeta = controllerProto.getMetaData(tegg_types_1.CONTROLLER_META_DATA);
|
|
97
|
+
const name = (_a = promptMeta.mcpName) !== null && _a !== void 0 ? _a : promptMeta.name;
|
|
98
|
+
const description = promptMeta.description;
|
|
99
|
+
let schema;
|
|
100
|
+
if ((_b = promptMeta.detail) === null || _b === void 0 ? void 0 : _b.argsSchema) {
|
|
101
|
+
schema = (_c = promptMeta.detail) === null || _c === void 0 ? void 0 : _c.argsSchema;
|
|
102
|
+
}
|
|
103
|
+
else if (MCPControllerRegister_1.MCPControllerRegister.hooks.length > 0) {
|
|
104
|
+
for (const hook of MCPControllerRegister_1.MCPControllerRegister.hooks) {
|
|
105
|
+
schema = await ((_d = hook.schemaLoader) === null || _d === void 0 ? void 0 : _d.call(hook, controllerMeta, promptMeta));
|
|
106
|
+
if (schema) {
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const handler = async (...args) => {
|
|
112
|
+
const eggObj = await getOrCreateEggObject(controllerProto, controllerProto.name);
|
|
113
|
+
const realObj = eggObj.obj;
|
|
114
|
+
const realMethod = realObj[promptMeta.name];
|
|
115
|
+
let newArgs = [];
|
|
116
|
+
if (schema && promptMeta.detail) {
|
|
117
|
+
// 如果有 schema 则证明入参第一个就是 schema
|
|
118
|
+
newArgs[promptMeta.detail.index] = args[0];
|
|
119
|
+
// 如果有 schema 则证明入参第二个就是 extra
|
|
120
|
+
if (promptMeta.extra) {
|
|
121
|
+
newArgs[promptMeta.extra] = args[1];
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else if (promptMeta.extra) {
|
|
125
|
+
// 无 schema, 那么入参第一个就是 extra
|
|
126
|
+
newArgs[promptMeta.extra] = args[0];
|
|
127
|
+
}
|
|
128
|
+
newArgs = [...newArgs, ...args];
|
|
129
|
+
return Reflect.apply(realMethod, realObj, newArgs);
|
|
130
|
+
};
|
|
131
|
+
if (description && schema) {
|
|
132
|
+
this.server.prompt(name, description, schema, handler);
|
|
133
|
+
}
|
|
134
|
+
else if (description) {
|
|
135
|
+
this.server.prompt(name, description, handler);
|
|
136
|
+
}
|
|
137
|
+
else if (schema) {
|
|
138
|
+
this.server.prompt(name, schema, handler);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
this.server.prompt(name, handler);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
exports.MCPServerHelper = MCPServerHelper;
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNQU2VydmVySGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTUNQU2VydmVySGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9FQUtpRDtBQUNqRCxtRUFHaUM7QUFDakMsa0RBQWlHO0FBU2pHLE1BQWEsZUFBZTtJQUcxQixZQUFZLElBQTRCO1FBQ3RDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxrQkFBUyxDQUN6QjtZQUNFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixFQUNELEVBQUUsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQ2xDLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsb0JBQXVGLEVBQ3ZGLGVBQTZCLEVBQzdCLFlBQTZCOztRQUU3QixNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRTtZQUNoQyxNQUFNLE1BQU0sR0FBRyxNQUFNLG9CQUFvQixDQUN2QyxlQUFlLEVBQ2YsZUFBZSxDQUFDLElBQUksQ0FDckIsQ0FBQztZQUNGLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7WUFDM0IsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQ2xCLFVBQVUsRUFDVixPQUFPLEVBQ1AsSUFBSSxDQUMrQixDQUFDO1FBQ3hDLENBQUMsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLE1BQUEsWUFBWSxDQUFDLE9BQU8sbUNBQUksWUFBWSxDQUFDLElBQUksQ0FBQztRQUN2RCxJQUFJLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNyQixJQUFJLFlBQVksQ0FB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
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"tegg"
|
|
8
8
|
]
|
|
9
9
|
},
|
|
10
|
-
"version": "3.57.
|
|
10
|
+
"version": "3.57.5",
|
|
11
11
|
"description": "controller decorator for egg",
|
|
12
12
|
"keywords": [
|
|
13
13
|
"egg",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
],
|
|
30
30
|
"types": "typings/index.d.ts",
|
|
31
31
|
"scripts": {
|
|
32
|
-
"test": "cross-env NODE_ENV=test
|
|
32
|
+
"test": "cross-env NODE_ENV=test mocha",
|
|
33
33
|
"clean": "tsc -b --clean",
|
|
34
34
|
"tsc": "npm run clean && tsc -p ./tsconfig.json",
|
|
35
35
|
"tsc:pub": "npm run clean && tsc -p ./tsconfig.pub.json",
|
|
@@ -48,14 +48,14 @@
|
|
|
48
48
|
"node": ">=14.0.0"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@eggjs/egg-module-common": "^3.57.
|
|
52
|
-
"@eggjs/mcp-proxy": "^3.57.
|
|
51
|
+
"@eggjs/egg-module-common": "^3.57.5",
|
|
52
|
+
"@eggjs/mcp-proxy": "^3.57.5",
|
|
53
53
|
"@eggjs/router": "^2.0.1",
|
|
54
|
-
"@eggjs/tegg": "^3.57.
|
|
55
|
-
"@eggjs/tegg-common-util": "^3.57.
|
|
56
|
-
"@eggjs/tegg-loader": "^3.57.
|
|
57
|
-
"@eggjs/tegg-metadata": "^3.57.
|
|
58
|
-
"@eggjs/tegg-runtime": "^3.57.
|
|
54
|
+
"@eggjs/tegg": "^3.57.5",
|
|
55
|
+
"@eggjs/tegg-common-util": "^3.57.5",
|
|
56
|
+
"@eggjs/tegg-loader": "^3.57.5",
|
|
57
|
+
"@eggjs/tegg-metadata": "^3.57.5",
|
|
58
|
+
"@eggjs/tegg-runtime": "^3.57.5",
|
|
59
59
|
"@modelcontextprotocol/sdk": "^1.10.0",
|
|
60
60
|
"await-event": "^2.1.0",
|
|
61
61
|
"content-type": "^1.0.5",
|
|
@@ -64,12 +64,13 @@
|
|
|
64
64
|
"koa-compose": "^3.2.1",
|
|
65
65
|
"path-to-regexp": "^1.8.0",
|
|
66
66
|
"raw-body": "^2.5.2",
|
|
67
|
-
"sdk-base": "^4.2.0"
|
|
67
|
+
"sdk-base": "^4.2.0",
|
|
68
|
+
"zod": "^3.24.4"
|
|
68
69
|
},
|
|
69
70
|
"devDependencies": {
|
|
70
|
-
"@eggjs/module-test-util": "^3.57.
|
|
71
|
-
"@eggjs/tegg-config": "^3.57.
|
|
72
|
-
"@eggjs/tegg-plugin": "^3.57.
|
|
71
|
+
"@eggjs/module-test-util": "^3.57.5",
|
|
72
|
+
"@eggjs/tegg-config": "^3.57.5",
|
|
73
|
+
"@eggjs/tegg-plugin": "^3.57.5",
|
|
73
74
|
"@types/mocha": "^10.0.1",
|
|
74
75
|
"@types/node": "^20.2.4",
|
|
75
76
|
"cross-env": "^7.0.3",
|
|
@@ -83,5 +84,5 @@
|
|
|
83
84
|
"publishConfig": {
|
|
84
85
|
"access": "public"
|
|
85
86
|
},
|
|
86
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "ab43456e0196dc3fae7299857131d0b8c8551e04"
|
|
87
88
|
}
|