@evolith/smart-cli 0.0.3-beta → 1.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/README.es.md +51 -15
- package/README.md +51 -15
- package/dist/app.module.js +2 -0
- package/dist/app.module.js.map +1 -1
- package/dist/application/ports/webhook-notifier.port.d.ts +4 -0
- package/dist/application/ports/webhook-notifier.port.js +3 -0
- package/dist/application/ports/webhook-notifier.port.js.map +1 -0
- package/dist/application/services/index.d.ts +1 -0
- package/dist/application/services/index.js +28 -2
- package/dist/application/services/index.js.map +1 -1
- package/dist/application/services/initialize-project.spec.d.ts +1 -0
- package/dist/application/services/initialize-project.spec.js +211 -0
- package/dist/application/services/initialize-project.spec.js.map +1 -0
- package/dist/application/use-cases/evaluate-gate.use-case.d.ts +20 -0
- package/dist/application/use-cases/evaluate-gate.use-case.js +72 -0
- package/dist/application/use-cases/evaluate-gate.use-case.js.map +1 -0
- package/dist/application/use-cases/validate-satellite.use-case.d.ts +1 -0
- package/dist/application/use-cases/validate-satellite.use-case.js +7 -3
- package/dist/application/use-cases/validate-satellite.use-case.js.map +1 -1
- package/dist/commands/adr/adr.command.d.ts +2 -0
- package/dist/commands/adr/adr.command.js +36 -14
- package/dist/commands/adr/adr.command.js.map +1 -1
- package/dist/commands/architecture/scaffold.command.d.ts +1 -0
- package/dist/commands/architecture/scaffold.command.js +23 -1
- package/dist/commands/architecture/scaffold.command.js.map +1 -1
- package/dist/commands/gate/gate.command.d.ts +23 -0
- package/dist/commands/gate/gate.command.js +210 -0
- package/dist/commands/gate/gate.command.js.map +1 -0
- package/dist/commands/sdlc/gate-status.command.d.ts +3 -1
- package/dist/commands/sdlc/gate-status.command.js +78 -3
- package/dist/commands/sdlc/gate-status.command.js.map +1 -1
- package/dist/commands/sdlc/gate-status.command.spec.d.ts +1 -0
- package/dist/commands/sdlc/gate-status.command.spec.js +302 -0
- package/dist/commands/sdlc/gate-status.command.spec.js.map +1 -0
- package/dist/commands/sdlc/generate-domain.command.d.ts +2 -0
- package/dist/commands/sdlc/generate-domain.command.js +123 -12
- package/dist/commands/sdlc/generate-domain.command.js.map +1 -1
- package/dist/commands/sdlc/generate-domain.command.spec.js +103 -29
- package/dist/commands/sdlc/generate-domain.command.spec.js.map +1 -1
- package/dist/commands/sdlc/handoff.command.js +2 -2
- package/dist/commands/sdlc/handoff.command.js.map +1 -1
- package/dist/commands/sdlc/sdlc.command.js +40 -6
- package/dist/commands/sdlc/sdlc.command.js.map +1 -1
- package/dist/commands/sdlc/sdlc.command.spec.js +48 -14
- package/dist/commands/sdlc/sdlc.command.spec.js.map +1 -1
- package/dist/commands/validate/validate.command.d.ts +2 -0
- package/dist/commands/validate/validate.command.js +16 -2
- package/dist/commands/validate/validate.command.js.map +1 -1
- package/dist/core/abstractions/interfaces.d.ts +1 -0
- package/dist/core/abstractions/interfaces.js.map +1 -1
- package/dist/core/abstractions/providers/config-parser.provider.spec.d.ts +1 -0
- package/dist/core/abstractions/providers/config-parser.provider.spec.js +18 -0
- package/dist/core/abstractions/providers/config-parser.provider.spec.js.map +1 -0
- package/dist/core/abstractions/providers/mock-filesystem.provider.d.ts +1 -0
- package/dist/core/abstractions/providers/mock-filesystem.provider.js +4 -0
- package/dist/core/abstractions/providers/mock-filesystem.provider.js.map +1 -1
- package/dist/core/abstractions/providers/mock-filesystem.provider.spec.d.ts +1 -0
- package/dist/core/abstractions/providers/mock-filesystem.provider.spec.js +56 -0
- package/dist/core/abstractions/providers/mock-filesystem.provider.spec.js.map +1 -0
- package/dist/core/abstractions/providers/node-filesystem.provider.d.ts +1 -0
- package/dist/core/abstractions/providers/node-filesystem.provider.js +4 -0
- package/dist/core/abstractions/providers/node-filesystem.provider.js.map +1 -1
- package/dist/core/architecture/nx-workspace.strategy.d.ts +3 -0
- package/dist/core/architecture/nx-workspace.strategy.js +35 -6
- package/dist/core/architecture/nx-workspace.strategy.js.map +1 -1
- package/dist/core/architecture/nx-workspace.strategy.spec.d.ts +1 -0
- package/dist/core/architecture/nx-workspace.strategy.spec.js +187 -0
- package/dist/core/architecture/nx-workspace.strategy.spec.js.map +1 -0
- package/dist/core/architecture/workspace-manager.strategy.d.ts +1 -0
- package/dist/core/generators/hexagonal-scaffolder.d.ts +6 -0
- package/dist/core/generators/hexagonal-scaffolder.js +260 -0
- package/dist/core/generators/hexagonal-scaffolder.js.map +1 -0
- package/dist/core/generators/hexagonal-scaffolder.spec.d.ts +1 -0
- package/dist/core/generators/hexagonal-scaffolder.spec.js +164 -0
- package/dist/core/generators/hexagonal-scaffolder.spec.js.map +1 -0
- package/dist/core/generators/mermaid-class-parser.d.ts +38 -0
- package/dist/core/generators/mermaid-class-parser.js +183 -0
- package/dist/core/generators/mermaid-class-parser.js.map +1 -0
- package/dist/core/generators/mermaid-class-parser.spec.d.ts +1 -0
- package/dist/core/generators/mermaid-class-parser.spec.js +148 -0
- package/dist/core/generators/mermaid-class-parser.spec.js.map +1 -0
- package/dist/core/mcp/server.d.ts +3 -1
- package/dist/core/mcp/server.js +82 -108
- package/dist/core/mcp/server.js.map +1 -1
- package/dist/core/mcp/server.spec.js +20 -4
- package/dist/core/mcp/server.spec.js.map +1 -1
- package/dist/core/mcp/tools/gate.d.ts +1 -0
- package/dist/core/mcp/tools/gate.js +68 -0
- package/dist/core/mcp/tools/gate.js.map +1 -0
- package/dist/core/metrics/dora-calculator.d.ts +18 -0
- package/dist/core/metrics/dora-calculator.js +146 -0
- package/dist/core/metrics/dora-calculator.js.map +1 -0
- package/dist/core/metrics/dora-calculator.spec.d.ts +1 -0
- package/dist/core/metrics/dora-calculator.spec.js +164 -0
- package/dist/core/metrics/dora-calculator.spec.js.map +1 -0
- package/dist/core/metrics/git-log-reader.d.ts +14 -0
- package/dist/core/metrics/git-log-reader.js +39 -0
- package/dist/core/metrics/git-log-reader.js.map +1 -0
- package/dist/core/metrics/git-log-reader.spec.d.ts +1 -0
- package/dist/core/metrics/git-log-reader.spec.js +108 -0
- package/dist/core/metrics/git-log-reader.spec.js.map +1 -0
- package/dist/core/observability/command-watcher.spec.d.ts +1 -0
- package/dist/core/observability/command-watcher.spec.js +123 -0
- package/dist/core/observability/command-watcher.spec.js.map +1 -0
- package/dist/core/observability/index.d.ts +1 -0
- package/dist/core/observability/index.js +3 -1
- package/dist/core/observability/index.js.map +1 -1
- package/dist/core/observability/tool-usage-telemetry.service.d.ts +46 -0
- package/dist/core/observability/tool-usage-telemetry.service.js +181 -0
- package/dist/core/observability/tool-usage-telemetry.service.js.map +1 -0
- package/dist/core/services/command-history.service.d.ts +1 -0
- package/dist/core/services/command-history.service.js +4 -0
- package/dist/core/services/command-history.service.js.map +1 -1
- package/dist/core/services/command-history.service.spec.js +217 -126
- package/dist/core/services/command-history.service.spec.js.map +1 -1
- package/dist/core/upgrade/satellite-upgrade.service.spec.js +204 -144
- package/dist/core/upgrade/satellite-upgrade.service.spec.js.map +1 -1
- package/dist/core/validators/deep-architecture-analyzer.spec.js +27 -57
- package/dist/core/validators/deep-architecture-analyzer.spec.js.map +1 -1
- package/dist/core/validators/evaluators/evaluator.interface.d.ts +14 -0
- package/dist/core/validators/evaluators/evaluator.interface.js +3 -0
- package/dist/core/validators/evaluators/evaluator.interface.js.map +1 -0
- package/dist/core/validators/evaluators/native-evaluator.d.ts +31 -0
- package/dist/core/validators/evaluators/native-evaluator.js +461 -0
- package/dist/core/validators/evaluators/native-evaluator.js.map +1 -0
- package/dist/core/validators/evaluators/opa-evaluator.d.ts +20 -0
- package/dist/core/validators/evaluators/opa-evaluator.js +249 -0
- package/dist/core/validators/evaluators/opa-evaluator.js.map +1 -0
- package/dist/core/validators/phase-gate-validator.service.d.ts +4 -0
- package/dist/core/validators/phase-gate-validator.service.js +74 -9
- package/dist/core/validators/phase-gate-validator.service.js.map +1 -1
- package/dist/core/validators/rule-evaluation-engine.d.ts +34 -0
- package/dist/core/validators/rule-evaluation-engine.js +187 -0
- package/dist/core/validators/rule-evaluation-engine.js.map +1 -0
- package/dist/core/validators/rule-evaluation-engine.spec.d.ts +1 -0
- package/dist/core/validators/rule-evaluation-engine.spec.js +243 -0
- package/dist/core/validators/rule-evaluation-engine.spec.js.map +1 -0
- package/dist/core/validators/ruleset-validator.service.d.ts +2 -0
- package/dist/core/validators/ruleset-validator.service.js +29 -4
- package/dist/core/validators/ruleset-validator.service.js.map +1 -1
- package/dist/domain/gate-evidence.d.ts +59 -0
- package/dist/domain/gate-evidence.js +38 -0
- package/dist/domain/gate-evidence.js.map +1 -0
- package/dist/domain/services/adr.service.d.ts +2 -2
- package/dist/domain/services/adr.service.js +12 -8
- package/dist/domain/services/adr.service.js.map +1 -1
- package/dist/infrastructure/adapters/webhook.adapter.d.ts +5 -0
- package/dist/infrastructure/adapters/webhook.adapter.js +19 -0
- package/dist/infrastructure/adapters/webhook.adapter.js.map +1 -0
- package/dist/infrastructure/cli/command-executor.spec.d.ts +1 -0
- package/dist/infrastructure/cli/command-executor.spec.js +149 -0
- package/dist/infrastructure/cli/command-executor.spec.js.map +1 -0
- package/dist/infrastructure/cli/providers/providers.spec.d.ts +1 -0
- package/dist/infrastructure/cli/providers/providers.spec.js +251 -0
- package/dist/infrastructure/cli/providers/providers.spec.js.map +1 -0
- package/package.json +23 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mermaid-class-parser.js","sourceRoot":"","sources":["../../../src/core/generators/mermaid-class-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const mermaid_class_parser_1 = require("./mermaid-class-parser");
|
|
4
|
+
const SAMPLE_DIAGRAM = `
|
|
5
|
+
classDiagram
|
|
6
|
+
class User {
|
|
7
|
+
<<Entity>>
|
|
8
|
+
+String id
|
|
9
|
+
+String name
|
|
10
|
+
-String email
|
|
11
|
+
+validate() void
|
|
12
|
+
+fullName() String
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
class Email {
|
|
16
|
+
<<Value Object>>
|
|
17
|
+
+String value
|
|
18
|
+
+isValid() bool
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
class UserRepository {
|
|
22
|
+
<<Repository>>
|
|
23
|
+
+findById(id String) User
|
|
24
|
+
+save(user User) void
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
class UserService {
|
|
28
|
+
<<Service>>
|
|
29
|
+
+createUser(name String) User
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
User --> Email : has
|
|
33
|
+
UserRepository --> User
|
|
34
|
+
`;
|
|
35
|
+
const SAMPLE_MARKDOWN = `
|
|
36
|
+
# DDD Model
|
|
37
|
+
|
|
38
|
+
Some text.
|
|
39
|
+
|
|
40
|
+
\`\`\`mermaid
|
|
41
|
+
${SAMPLE_DIAGRAM}
|
|
42
|
+
\`\`\`
|
|
43
|
+
|
|
44
|
+
More text.
|
|
45
|
+
`;
|
|
46
|
+
describe('extractMermaidBlocks', () => {
|
|
47
|
+
it('extracts blocks from markdown', () => {
|
|
48
|
+
const blocks = (0, mermaid_class_parser_1.extractMermaidBlocks)(SAMPLE_MARKDOWN);
|
|
49
|
+
expect(blocks).toHaveLength(1);
|
|
50
|
+
expect(blocks[0]).toContain('classDiagram');
|
|
51
|
+
});
|
|
52
|
+
it('returns empty array when no mermaid blocks', () => {
|
|
53
|
+
expect((0, mermaid_class_parser_1.extractMermaidBlocks)('# No code\nJust text.')).toHaveLength(0);
|
|
54
|
+
});
|
|
55
|
+
it('extracts multiple blocks', () => {
|
|
56
|
+
const md = '```mermaid\nclassDiagram\n class A\n```\n\n```mermaid\nclassDiagram\n class B\n```';
|
|
57
|
+
expect((0, mermaid_class_parser_1.extractMermaidBlocks)(md)).toHaveLength(2);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
describe('parseClassDiagram', () => {
|
|
61
|
+
let diagram;
|
|
62
|
+
beforeEach(() => {
|
|
63
|
+
diagram = (0, mermaid_class_parser_1.parseClassDiagram)(SAMPLE_DIAGRAM);
|
|
64
|
+
});
|
|
65
|
+
it('returns non-null for valid classDiagram', () => {
|
|
66
|
+
expect(diagram).not.toBeNull();
|
|
67
|
+
});
|
|
68
|
+
it('returns null for non-classDiagram mermaid block', () => {
|
|
69
|
+
expect((0, mermaid_class_parser_1.parseClassDiagram)('flowchart LR\n A --> B')).toBeNull();
|
|
70
|
+
});
|
|
71
|
+
it('parses 4 classes', () => {
|
|
72
|
+
expect(diagram.classes).toHaveLength(4);
|
|
73
|
+
});
|
|
74
|
+
it('parses User as Entity with correct properties', () => {
|
|
75
|
+
const user = diagram.classes.find(c => c.name === 'User');
|
|
76
|
+
expect(user.stereotype).toBe('Entity');
|
|
77
|
+
expect(user.properties).toHaveLength(3);
|
|
78
|
+
expect(user.properties[0]).toMatchObject({ name: 'id', type: 'string', visibility: 'public' });
|
|
79
|
+
expect(user.properties[1]).toMatchObject({ name: 'name', type: 'string', visibility: 'public' });
|
|
80
|
+
expect(user.properties[2]).toMatchObject({ name: 'email', type: 'string', visibility: 'private' });
|
|
81
|
+
});
|
|
82
|
+
it('parses User methods', () => {
|
|
83
|
+
const user = diagram.classes.find(c => c.name === 'User');
|
|
84
|
+
expect(user.methods).toHaveLength(2);
|
|
85
|
+
expect(user.methods[0]).toMatchObject({ name: 'validate', returnType: 'void' });
|
|
86
|
+
expect(user.methods[1]).toMatchObject({ name: 'fullName', returnType: 'string' });
|
|
87
|
+
});
|
|
88
|
+
it('parses Email as ValueObject', () => {
|
|
89
|
+
const email = diagram.classes.find(c => c.name === 'Email');
|
|
90
|
+
expect(email.stereotype).toBe('ValueObject');
|
|
91
|
+
expect(email.properties).toHaveLength(1);
|
|
92
|
+
expect(email.methods).toHaveLength(1);
|
|
93
|
+
expect(email.methods[0]).toMatchObject({ name: 'isValid', returnType: 'boolean' });
|
|
94
|
+
});
|
|
95
|
+
it('parses UserRepository as Repository with methods', () => {
|
|
96
|
+
const repo = diagram.classes.find(c => c.name === 'UserRepository');
|
|
97
|
+
expect(repo.stereotype).toBe('Repository');
|
|
98
|
+
expect(repo.methods).toHaveLength(2);
|
|
99
|
+
expect(repo.methods[0]).toMatchObject({ name: 'findById' });
|
|
100
|
+
expect(repo.methods[0].params).toHaveLength(1);
|
|
101
|
+
expect(repo.methods[0].params[0]).toMatchObject({ name: 'id', type: 'string' });
|
|
102
|
+
});
|
|
103
|
+
it('parses UserService as Service', () => {
|
|
104
|
+
const svc = diagram.classes.find(c => c.name === 'UserService');
|
|
105
|
+
expect(svc.stereotype).toBe('Service');
|
|
106
|
+
});
|
|
107
|
+
it('parses 2 relationships', () => {
|
|
108
|
+
expect(diagram.relationships).toHaveLength(2);
|
|
109
|
+
expect(diagram.relationships[0]).toMatchObject({ from: 'User', to: 'Email', arrow: '-->' });
|
|
110
|
+
expect(diagram.relationships[0].label).toBe('has');
|
|
111
|
+
expect(diagram.relationships[1]).toMatchObject({ from: 'UserRepository', to: 'User' });
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
describe('parseDddModel', () => {
|
|
115
|
+
it('extracts diagram from markdown', () => {
|
|
116
|
+
const result = (0, mermaid_class_parser_1.parseDddModel)(SAMPLE_MARKDOWN);
|
|
117
|
+
expect(result).not.toBeNull();
|
|
118
|
+
expect(result.classes).toHaveLength(4);
|
|
119
|
+
});
|
|
120
|
+
it('returns null when no valid classDiagram found', () => {
|
|
121
|
+
expect((0, mermaid_class_parser_1.parseDddModel)('# Nothing here')).toBeNull();
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
describe('Aggregate stereotype', () => {
|
|
125
|
+
it('parses <<Aggregate Root>> as Aggregate', () => {
|
|
126
|
+
const d = (0, mermaid_class_parser_1.parseClassDiagram)(`
|
|
127
|
+
classDiagram
|
|
128
|
+
class Order {
|
|
129
|
+
<<Aggregate Root>>
|
|
130
|
+
+String orderId
|
|
131
|
+
}
|
|
132
|
+
`);
|
|
133
|
+
expect(d.classes[0].stereotype).toBe('Aggregate');
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
describe('type mapping', () => {
|
|
137
|
+
it('maps Int → number', () => {
|
|
138
|
+
const d = (0, mermaid_class_parser_1.parseClassDiagram)(`
|
|
139
|
+
classDiagram
|
|
140
|
+
class Counter {
|
|
141
|
+
<<Entity>>
|
|
142
|
+
+Int value
|
|
143
|
+
}
|
|
144
|
+
`);
|
|
145
|
+
expect(d.classes[0].properties[0].type).toBe('number');
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
//# sourceMappingURL=mermaid-class-parser.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mermaid-class-parser.spec.js","sourceRoot":"","sources":["../../../src/core/generators/mermaid-class-parser.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,8 @@ export interface McpServerOptions {
|
|
|
7
7
|
apiKey?: string;
|
|
8
8
|
port?: number;
|
|
9
9
|
transport?: McpTransport;
|
|
10
|
+
stdin?: import('node:stream').Readable;
|
|
11
|
+
stdout?: import('node:stream').Writable;
|
|
10
12
|
}
|
|
11
13
|
declare class DirectMcpServer {
|
|
12
14
|
private transport;
|
|
@@ -14,7 +16,7 @@ declare class DirectMcpServer {
|
|
|
14
16
|
private rulesetValidator;
|
|
15
17
|
private metricsService;
|
|
16
18
|
private readonly transportType;
|
|
17
|
-
constructor(transportType?: McpTransport, port?: number, apiKey?: string, rulesetValidator?: RulesetValidatorService, metricsService?: McpMetricsService);
|
|
19
|
+
constructor(transportType?: McpTransport, port?: number, apiKey?: string, rulesetValidator?: RulesetValidatorService, metricsService?: McpMetricsService, stdin?: import('node:stream').Readable, stdout?: import('node:stream').Writable);
|
|
18
20
|
start(): Promise<void>;
|
|
19
21
|
stop(): Promise<void>;
|
|
20
22
|
private handleMessage;
|
package/dist/core/mcp/server.js
CHANGED
|
@@ -42,7 +42,9 @@ const agent_1 = require("./tools/agent");
|
|
|
42
42
|
const architecture_1 = require("./tools/architecture");
|
|
43
43
|
const sdlc_1 = require("./tools/sdlc");
|
|
44
44
|
const moscow_1 = require("./tools/moscow");
|
|
45
|
+
const gate_1 = require("./tools/gate");
|
|
45
46
|
const metrics_service_1 = require("./metrics.service");
|
|
47
|
+
const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/server/streamableHttp.js");
|
|
46
48
|
class MinimalStdioTransport {
|
|
47
49
|
constructor(stdin, stdout) {
|
|
48
50
|
this.readBuffer = '';
|
|
@@ -50,12 +52,7 @@ class MinimalStdioTransport {
|
|
|
50
52
|
this.stdout = stdout || process.stdout;
|
|
51
53
|
this.readBuffer = '';
|
|
52
54
|
this.started = false;
|
|
53
|
-
|
|
54
|
-
async start() {
|
|
55
|
-
if (this.started)
|
|
56
|
-
return;
|
|
57
|
-
this.started = true;
|
|
58
|
-
this.stdin.on('data', (chunk) => {
|
|
55
|
+
this.handleData = (chunk) => {
|
|
59
56
|
this.readBuffer += chunk.toString();
|
|
60
57
|
let newlineIndex;
|
|
61
58
|
while ((newlineIndex = this.readBuffer.indexOf('\n')) !== -1) {
|
|
@@ -68,26 +65,43 @@ class MinimalStdioTransport {
|
|
|
68
65
|
this.onmessage(message);
|
|
69
66
|
}
|
|
70
67
|
}
|
|
71
|
-
catch
|
|
68
|
+
catch {
|
|
72
69
|
if (this.onerror) {
|
|
73
70
|
this.onerror(new Error(`Invalid JSON: ${line}`));
|
|
74
71
|
}
|
|
75
72
|
}
|
|
76
73
|
}
|
|
77
74
|
}
|
|
78
|
-
}
|
|
79
|
-
this.
|
|
75
|
+
};
|
|
76
|
+
this.handleEnd = () => {
|
|
80
77
|
if (this.onclose) {
|
|
81
78
|
this.onclose();
|
|
82
79
|
}
|
|
83
|
-
}
|
|
84
|
-
this.
|
|
80
|
+
};
|
|
81
|
+
this.handleError = (err) => {
|
|
85
82
|
if (this.onerror) {
|
|
86
83
|
this.onerror(err);
|
|
87
84
|
}
|
|
88
|
-
}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
async start() {
|
|
88
|
+
if (this.started)
|
|
89
|
+
return;
|
|
90
|
+
this.started = true;
|
|
91
|
+
this.stdin.on('data', this.handleData);
|
|
92
|
+
this.stdin.on('end', this.handleEnd);
|
|
93
|
+
this.stdin.on('error', this.handleError);
|
|
89
94
|
}
|
|
90
95
|
async close() {
|
|
96
|
+
if (!this.started)
|
|
97
|
+
return;
|
|
98
|
+
this.stdin.off('data', this.handleData);
|
|
99
|
+
this.stdin.off('end', this.handleEnd);
|
|
100
|
+
this.stdin.off('error', this.handleError);
|
|
101
|
+
this.onmessage = undefined;
|
|
102
|
+
this.onerror = undefined;
|
|
103
|
+
this.onclose = undefined;
|
|
104
|
+
this.readBuffer = '';
|
|
91
105
|
this.started = false;
|
|
92
106
|
}
|
|
93
107
|
async send(message) {
|
|
@@ -102,14 +116,28 @@ class MinimalStdioTransport {
|
|
|
102
116
|
});
|
|
103
117
|
}
|
|
104
118
|
}
|
|
105
|
-
class
|
|
119
|
+
class McpHttpTransportWrapper {
|
|
106
120
|
constructor(port, apiKey) {
|
|
107
121
|
this.server = null;
|
|
108
|
-
this.logger = new common_1.Logger(
|
|
109
|
-
this.sseClients = [];
|
|
122
|
+
this.logger = new common_1.Logger(McpHttpTransportWrapper.name);
|
|
110
123
|
this.started = false;
|
|
111
124
|
this.port = port;
|
|
112
125
|
this.apiKey = apiKey;
|
|
126
|
+
this.mcpTransport = new streamableHttp_js_1.StreamableHTTPServerTransport({
|
|
127
|
+
sessionIdGenerator: () => Math.random().toString(36).substring(2, 10)
|
|
128
|
+
});
|
|
129
|
+
this.mcpTransport.onerror = (error) => {
|
|
130
|
+
if (this.onerror)
|
|
131
|
+
this.onerror(error);
|
|
132
|
+
};
|
|
133
|
+
this.mcpTransport.onclose = () => {
|
|
134
|
+
if (this.onclose)
|
|
135
|
+
this.onclose();
|
|
136
|
+
};
|
|
137
|
+
this.mcpTransport.onmessage = (message) => {
|
|
138
|
+
if (this.onmessage)
|
|
139
|
+
this.onmessage(message);
|
|
140
|
+
};
|
|
113
141
|
}
|
|
114
142
|
async start() {
|
|
115
143
|
if (this.started)
|
|
@@ -139,10 +167,7 @@ class MinimalHttpTransport {
|
|
|
139
167
|
}
|
|
140
168
|
async close() {
|
|
141
169
|
this.started = false;
|
|
142
|
-
|
|
143
|
-
client.res.end();
|
|
144
|
-
}
|
|
145
|
-
this.sseClients = [];
|
|
170
|
+
await this.mcpTransport.close();
|
|
146
171
|
if (this.server) {
|
|
147
172
|
await new Promise((resolve) => {
|
|
148
173
|
this.server.close(() => resolve());
|
|
@@ -151,42 +176,21 @@ class MinimalHttpTransport {
|
|
|
151
176
|
}
|
|
152
177
|
}
|
|
153
178
|
async send(message) {
|
|
154
|
-
|
|
155
|
-
const clientsToRemove = [];
|
|
156
|
-
for (const client of this.sseClients) {
|
|
157
|
-
try {
|
|
158
|
-
client.res.write(data);
|
|
159
|
-
}
|
|
160
|
-
catch {
|
|
161
|
-
clientsToRemove.push(client);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
for (const client of clientsToRemove) {
|
|
165
|
-
const index = this.sseClients.indexOf(client);
|
|
166
|
-
if (index > -1) {
|
|
167
|
-
this.sseClients.splice(index, 1);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
179
|
+
await this.mcpTransport.send(message);
|
|
170
180
|
}
|
|
171
181
|
handleRequest(req, res) {
|
|
172
182
|
const url = new URL(req.url || '/', `http://127.0.0.1:${this.port}`);
|
|
173
183
|
if (!this.validateAuth(req, res)) {
|
|
174
184
|
return;
|
|
175
185
|
}
|
|
176
|
-
if (req.method === '
|
|
177
|
-
this.handlePostMessage(req, res);
|
|
178
|
-
}
|
|
179
|
-
else if (req.method === 'GET' && url.pathname === '/sse') {
|
|
180
|
-
this.handleSseConnection(req, res);
|
|
181
|
-
}
|
|
182
|
-
else if (req.method === 'GET' && url.pathname === '/health') {
|
|
186
|
+
if (req.method === 'GET' && url.pathname === '/health') {
|
|
183
187
|
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
184
188
|
res.end(JSON.stringify({ status: 'ok', transport: 'http', protocol: 'mcp' }));
|
|
189
|
+
return;
|
|
185
190
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
}
|
|
191
|
+
this.mcpTransport.handleRequest(req, res).catch((err) => {
|
|
192
|
+
this.logger.error(`MCP Transport error: ${err.message}`);
|
|
193
|
+
});
|
|
190
194
|
}
|
|
191
195
|
validateAuth(req, res) {
|
|
192
196
|
if (!this.apiKey)
|
|
@@ -201,68 +205,18 @@ class MinimalHttpTransport {
|
|
|
201
205
|
}
|
|
202
206
|
return true;
|
|
203
207
|
}
|
|
204
|
-
async handlePostMessage(req, res) {
|
|
205
|
-
let body = '';
|
|
206
|
-
req.on('data', (chunk) => {
|
|
207
|
-
body += chunk.toString();
|
|
208
|
-
});
|
|
209
|
-
req.on('end', async () => {
|
|
210
|
-
try {
|
|
211
|
-
const message = JSON.parse(body);
|
|
212
|
-
if (this.onmessage) {
|
|
213
|
-
await this.onmessage(message);
|
|
214
|
-
}
|
|
215
|
-
res.writeHead(202, { 'Content-Type': 'application/json' });
|
|
216
|
-
res.end(JSON.stringify({ status: 'accepted' }));
|
|
217
|
-
}
|
|
218
|
-
catch (error) {
|
|
219
|
-
this.logger.error(`Invalid POST message: ${error}`);
|
|
220
|
-
res.writeHead(400, { 'Content-Type': 'application/json' });
|
|
221
|
-
res.end(JSON.stringify({ error: 'Invalid JSON' }));
|
|
222
|
-
}
|
|
223
|
-
});
|
|
224
|
-
req.on('error', (error) => {
|
|
225
|
-
this.logger.error(`Request error: ${error.message}`);
|
|
226
|
-
if (this.onerror) {
|
|
227
|
-
this.onerror(error);
|
|
228
|
-
}
|
|
229
|
-
if (!res.headersSent) {
|
|
230
|
-
res.writeHead(500, { 'Content-Type': 'application/json' });
|
|
231
|
-
res.end(JSON.stringify({ error: 'Internal server error' }));
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
}
|
|
235
|
-
handleSseConnection(req, res) {
|
|
236
|
-
const clientId = `client-${Date.now()}-${Math.random().toString(36).substring(2, 7)}`;
|
|
237
|
-
res.writeHead(200, {
|
|
238
|
-
'Content-Type': 'text/event-stream',
|
|
239
|
-
'Cache-Control': 'no-cache',
|
|
240
|
-
'Connection': 'keep-alive',
|
|
241
|
-
'Access-Control-Allow-Origin': '*',
|
|
242
|
-
});
|
|
243
|
-
res.write(': connected\n\n');
|
|
244
|
-
this.sseClients.push({ id: clientId, res });
|
|
245
|
-
req.on('close', () => {
|
|
246
|
-
const index = this.sseClients.findIndex(c => c.id === clientId);
|
|
247
|
-
if (index > -1) {
|
|
248
|
-
this.sseClients.splice(index, 1);
|
|
249
|
-
}
|
|
250
|
-
this.logger.debug(`SSE client disconnected: ${clientId}`);
|
|
251
|
-
});
|
|
252
|
-
this.logger.debug(`SSE client connected: ${clientId}`);
|
|
253
|
-
}
|
|
254
208
|
}
|
|
255
209
|
class DirectMcpServer {
|
|
256
|
-
constructor(transportType = 'stdio', port = 49100, apiKey, rulesetValidator, metricsService) {
|
|
210
|
+
constructor(transportType = 'stdio', port = 49100, apiKey, rulesetValidator, metricsService, stdin, stdout) {
|
|
257
211
|
this.logger = new common_1.Logger(DirectMcpServer.name);
|
|
258
212
|
this.transportType = transportType;
|
|
259
213
|
this.rulesetValidator = rulesetValidator || new ruleset_validator_service_1.RulesetValidatorService();
|
|
260
214
|
this.metricsService = metricsService || new metrics_service_1.McpMetricsService();
|
|
261
215
|
if (transportType === 'http') {
|
|
262
|
-
this.transport = new
|
|
216
|
+
this.transport = new McpHttpTransportWrapper(port, apiKey);
|
|
263
217
|
}
|
|
264
218
|
else {
|
|
265
|
-
this.transport = new MinimalStdioTransport();
|
|
219
|
+
this.transport = new MinimalStdioTransport(stdin, stdout);
|
|
266
220
|
}
|
|
267
221
|
}
|
|
268
222
|
async start() {
|
|
@@ -273,6 +227,9 @@ class DirectMcpServer {
|
|
|
273
227
|
transport.onerror = (error) => {
|
|
274
228
|
this.logger.error(`Transport error: ${error.message}`);
|
|
275
229
|
};
|
|
230
|
+
transport.onclose = () => {
|
|
231
|
+
this.logger.log('Transport closed');
|
|
232
|
+
};
|
|
276
233
|
await transport.start();
|
|
277
234
|
this.logger.log(`Evolith MCP Server started on ${this.transportType}`);
|
|
278
235
|
}
|
|
@@ -336,7 +293,11 @@ class DirectMcpServer {
|
|
|
336
293
|
message: error instanceof Error ? error.message : String(error),
|
|
337
294
|
},
|
|
338
295
|
};
|
|
339
|
-
|
|
296
|
+
try {
|
|
297
|
+
await this.transport.send(errorResponse);
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
}
|
|
340
301
|
}
|
|
341
302
|
}
|
|
342
303
|
async dispatchRequest(method, params) {
|
|
@@ -374,6 +335,23 @@ class DirectMcpServer {
|
|
|
374
335
|
required: ['path'],
|
|
375
336
|
},
|
|
376
337
|
},
|
|
338
|
+
{
|
|
339
|
+
name: 'evolith-gate-evaluate',
|
|
340
|
+
description: 'Evaluate a specific SDLC phase gate',
|
|
341
|
+
inputSchema: {
|
|
342
|
+
type: 'object',
|
|
343
|
+
properties: {
|
|
344
|
+
phase: { type: 'string', description: 'Phase identifier (discovery, design, construction, qa, release)' },
|
|
345
|
+
projectPath: { type: 'string', description: 'Path to the repository to validate' },
|
|
346
|
+
rulesetRef: { type: 'string', description: 'Optional ruleset reference' },
|
|
347
|
+
evidenceMode: { type: 'string', description: 'full or summary', default: 'full' },
|
|
348
|
+
evaluatedBy: { type: 'string', description: 'human, agent, or ci', default: 'agent' },
|
|
349
|
+
initiative: { type: 'string', description: 'Optional initiative context' },
|
|
350
|
+
tenant: { type: 'string', description: 'Optional tenant context' },
|
|
351
|
+
},
|
|
352
|
+
required: ['phase', 'projectPath'],
|
|
353
|
+
},
|
|
354
|
+
},
|
|
377
355
|
{
|
|
378
356
|
name: 'evolith-agent-install',
|
|
379
357
|
description: 'Install a new Evolith agent',
|
|
@@ -602,6 +580,9 @@ class DirectMcpServer {
|
|
|
602
580
|
if (name === 'evolith-validate') {
|
|
603
581
|
result = await (0, validate_1.handleValidateTool)(args, this.rulesetValidator);
|
|
604
582
|
}
|
|
583
|
+
else if (name === 'evolith-gate-evaluate') {
|
|
584
|
+
result = await (0, gate_1.handleGateEvaluateTool)(args);
|
|
585
|
+
}
|
|
605
586
|
else if (name.startsWith('evolith-agent')) {
|
|
606
587
|
result = await (0, agent_1.handleAgentTools)(name, args);
|
|
607
588
|
}
|
|
@@ -702,17 +683,10 @@ class DirectMcpServer {
|
|
|
702
683
|
return getPrompt(params);
|
|
703
684
|
}
|
|
704
685
|
}
|
|
705
|
-
function validateApiKey(apiKey, validKey) {
|
|
706
|
-
if (!validKey)
|
|
707
|
-
return true;
|
|
708
|
-
if (!apiKey)
|
|
709
|
-
return false;
|
|
710
|
-
return apiKey === validKey;
|
|
711
|
-
}
|
|
712
686
|
async function startMcpServer(options = {}) {
|
|
713
687
|
const transport = options.transport || 'stdio';
|
|
714
688
|
const port = options.port || 49100;
|
|
715
|
-
const server = new DirectMcpServer(transport, port, options.apiKey, options.rulesetValidator, options.metricsService);
|
|
689
|
+
const server = new DirectMcpServer(transport, port, options.apiKey, options.rulesetValidator, options.metricsService, options.stdin, options.stdout);
|
|
716
690
|
await server.start();
|
|
717
691
|
return server;
|
|
718
692
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/core/mcp/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAixBA,wCAaC;AA9xBD,2CAAwC;AACxC,gDAAkC;AAClC,uFAAkF;AAClF,+CAAsD;AACtD,yCAAiD;AACjD,uDAA+D;AAC/D,uCAA+C;AAC/C,2CAAmD;AAGnD,uDAAsD;AA8BtD,MAAM,qBAAqB;IAUzB,YAAY,KAAsC,EAAE,MAAuC;QAHnF,eAAU,GAAW,EAAE,CAAC;QAI9B,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACtC,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,YAAoB,CAAC;YACzB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC1D,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACjC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;4BACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;wBAC1B,CAAC;oBACH,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;4BACjB,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC;wBACnD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACxB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAgB;QACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;gBACtC,IAAI,GAAG;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;oBAChB,OAAO,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,oBAAoB;IAYxB,YAAY,IAAY,EAAE,MAAe;QAPjC,WAAM,GAAuB,IAAI,CAAC;QAGzB,WAAM,GAAG,IAAI,eAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACxD,eAAU,GAAoD,EAAE,CAAC;QACjE,YAAO,GAAY,KAAK,CAAC;QAG/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACzD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC3B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAI,CAAC,MAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;gBAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yDAAyD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtF,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAgB;QACzB,MAAM,IAAI,GAAG,yBAAyB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;QACpE,MAAM,eAAe,GAA2B,EAAE,CAAC;QAEnD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,GAAyB,EAAE,GAAwB;QACvE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAErE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACzD,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC3D,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC9D,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,GAAyB,EAAE,GAAwB;QACtE,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAE9B,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAuB,CAAC;QAEpE,IAAI,WAAW,KAAK,IAAI,CAAC,MAAM,IAAI,YAAY,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAChE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC,CAAC;YAC1F,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,GAAyB,EAAE,GAAwB;QACjF,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAC/B,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;gBACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;gBACpD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACrD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,mBAAmB,CAAC,GAAyB,EAAE,GAAwB;QAC7E,MAAM,QAAQ,GAAG,UAAU,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAEtF,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;YACjB,cAAc,EAAE,mBAAmB;YACnC,eAAe,EAAE,UAAU;YAC3B,YAAY,EAAE,YAAY;YAC1B,6BAA6B,EAAE,GAAG;SACnC,CAAC,CAAC;QAEH,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAE7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QAE5C,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;YAChE,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;CACF;AAgBD,MAAM,eAAe;IAOnB,YACE,gBAA8B,OAAO,EACrC,OAAe,KAAK,EACpB,MAAe,EACf,gBAA0C,EAC1C,cAAkC;QAVnB,WAAM,GAAG,IAAI,eAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAYzD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,IAAI,mDAAuB,EAAE,CAAC;QAC1E,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI,mCAAiB,EAAE,CAAC;QAEhE,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,SAAS,CAAC,SAAS,GAAG,KAAK,EAAE,OAAgB,EAAE,EAAE;YAC/C,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,SAAS,CAAC,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC;QAEF,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,UAAmB;QAC7C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,UAA4B,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAE1D,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAoB;oBAChC,OAAO,EAAE,KAAK;oBACd,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,MAAM,EAAE;wBACN,eAAe,EAAE,YAAY;wBAC7B,YAAY,EAAE;4BACZ,KAAK,EAAE,EAAE;4BACT,SAAS,EAAE,EAAE;4BACb,OAAO,EAAE,EAAE;yBACZ;wBACD,UAAU,EAAE;4BACV,IAAI,EAAE,oBAAoB;4BAC1B,OAAO,EAAE,OAAO;yBACjB;qBACF;iBACF,CAAC;gBACF,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YAED,IAAI,MAAe,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAC5E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,aAAa,GAAoB;oBACrC,OAAO,EAAE,KAAK;oBACd,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,CAAC,KAAK;wBACZ,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAChE;iBACF,CAAC;gBACF,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzC,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAoB;gBAChC,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,MAAM;aACP,CAAC;YACF,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;YACtD,MAAM,aAAa,GAAoB;gBACrC,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE;oBACL,IAAI,EAAE,CAAC,KAAK;oBACZ,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAChE;aACF,CAAC;YACF,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,MAA+B;QAC3E,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YAChC,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACrC,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACpC,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACzC,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAClC,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACtC;gBACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,OAAO;YACL,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,kBAAkB;oBACxB,WAAW,EAAE,wDAAwD;oBACrE,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;4BAC3E,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE,OAAO,EAAE,MAAM,EAAE;4BAC/F,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;4BACxE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;yBAClE;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EAAE,6BAA6B;oBAC1C,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;4BACrE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE,OAAO,EAAE,UAAU,EAAE;4BACzG,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;yBAClE;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,WAAW,EAAE,mCAAmC;oBAChD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;yBAC5D;qBACF;iBACF;gBACD;oBACE,IAAI,EAAE,wBAAwB;oBAC9B,WAAW,EAAE,mCAAmC;oBAChD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACxB;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EAAE,mCAAmC;oBAChD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACxB;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,WAAW,EAAE,yBAAyB;oBACtC,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACxB;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,+BAA+B;oBACrC,WAAW,EAAE,2IAA2I;oBACxJ,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;4BACvD,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gFAAgF,EAAE,OAAO,EAAE,KAAK,EAAE;yBACzI;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,WAAW,EAAE,+CAA+C;oBAC5D,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC5B;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC;qBAC3C;iBACF;gBACD;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,WAAW,EAAE,qCAAqC;oBAClD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACzB;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,WAAW,EAAE,iCAAiC;oBAC9C,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACvB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACxB;wBACD,QAAQ,EAAE,CAAC,KAAK,CAAC;qBAClB;iBACF;gBACD;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,WAAW,EAAE,iCAAiC;oBAC9C,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACvB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACxB;wBACD,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;qBAC3B;iBACF;gBACD;oBACE,IAAI,EAAE,iBAAiB;oBACvB,WAAW,EAAE,wBAAwB;oBACrC,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,EAAE;qBACf;iBACF;gBACD;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EAAE,yDAAyD;oBACtE,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;4BAC/D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE,OAAO,EAAE,SAAS,EAAE;4BAC9F,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,uEAAuE,EAAE;yBAC/G;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;qBAC5B;iBACF;gBACD;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,WAAW,EAAE,8CAA8C;oBAC3D,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;yBAC9C;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EAAE,qCAAqC;oBAClD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;4BAC7C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC1B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC5B;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;qBAC7B;iBACF;gBACD;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EAAE,uCAAuC;oBACpD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;4BAC7C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC3B;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;qBAC7B;iBACF;gBACD;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,WAAW,EAAE,2CAA2C;oBACxD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACzB;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,yBAAyB;oBAC/B,WAAW,EAAE,4CAA4C;oBACzD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;yBAC9C;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EAAE,mDAAmD;oBAChE,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;yBAC9C;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,MAA+B;QAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAc,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAoC,IAAI,EAAE,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,IAAI,MAAe,CAAC;YAEpB,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAChC,MAAM,GAAG,MAAM,IAAA,6BAAkB,EAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjE,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC5C,MAAM,GAAG,MAAM,IAAA,wBAAgB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,IAAI,KAAK,+BAA+B,EAAE,CAAC;gBACpD,MAAM,GAAG,MAAM,IAAA,sCAAuB,EAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC3C,MAAM,GAAG,MAAM,IAAA,sBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,IAAI,KAAK,oBAAoB,IAAI,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBAC1E,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACpD,CAAC;iBAAM,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACtC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC7C,MAAM,GAAG,MAAM,IAAA,0BAAiB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;YAC3C,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACzC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAE1D,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;qBAC5E;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACzC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAC3D,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAE1D,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;qBAC/C;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,IAAY,EAAE,IAA6B;QACzE,MAAM,EAAE,GAAG,wDAAa,UAAU,GAAC,CAAC;QACpC,MAAM,IAAI,GAAG,wDAAa,MAAM,GAAC,CAAC;QAClC,MAAM,IAAI,GAAG,wDAAa,MAAM,GAAC,CAAC;QAElC,MAAM,GAAG,GAAI,IAAI,CAAC,GAAc,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAElD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAElE,IAAI,IAAI,KAAK,oBAAoB,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAa,CAAC;YAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,KAAK,GAAY,MAAM,CAAC;YAC5B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,KAAK,GAAI,KAAiC,EAAE,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,IAAI,CAAC,GAAa,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAe,CAAC;YACnC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,MAAM,GAA4B,MAAM,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBACvB,CAAC;gBACD,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAA4B,CAAC;YACtD,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACtC,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACvD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC/B,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,aAAa,GAAC,CAAC;QACtD,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAA+B;QAC9D,MAAM,EAAE,YAAY,EAAE,GAAG,wDAAa,aAAa,GAAC,CAAC;QACrD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,WAAW,GAAC,CAAC;QAClD,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAA+B;QAC3D,MAAM,EAAE,SAAS,EAAE,GAAG,wDAAa,WAAW,GAAC,CAAC;QAChD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;CACF;AAED,SAAS,cAAc,CAAC,MAA0B,EAAE,QAA4B;IAC9E,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,MAAM,KAAK,QAAQ,CAAC;AAC7B,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,UAA4B,EAAE;IACjE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC;IAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;IAEnC,MAAM,MAAM,GAAG,IAAI,eAAe,CAChC,SAAS,EACT,IAAI,EACJ,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,cAAc,CACvB,CAAC;IACF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/core/mcp/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuvBA,wCAeC;AAtwBD,2CAAwC;AACxC,gDAAkC;AAClC,uFAAkF;AAClF,+CAAsD;AACtD,yCAAiD;AACjD,uDAA+D;AAC/D,uCAA+C;AAC/C,2CAAmD;AACnD,uCAAsD;AAGtD,uDAAsD;AACtD,0FAAmG;AAiCnG,MAAM,qBAAqB;IAazB,YAAY,KAAsC,EAAE,MAAuC;QANnF,eAAU,GAAW,EAAE,CAAC;QAO9B,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE;YAClC,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,YAAoB,CAAC;YACzB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC1D,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACjC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;4BACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;wBAC1B,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;4BACjB,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC;wBACnD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE;YACpB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC;QACH,CAAC,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,CAAC,GAAU,EAAE,EAAE;YAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAgB;QACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;gBACtC,IAAI,GAAG;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;oBAChB,OAAO,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,uBAAuB;IAY3B,YAAY,IAAY,EAAE,MAAe;QAPjC,WAAM,GAAuB,IAAI,CAAC;QAGzB,WAAM,GAAG,IAAI,eAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC3D,YAAO,GAAY,KAAK,CAAC;QAI/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,iDAA6B,CAAC;YACpD,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;SACtE,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,GAAG,EAAE;YAC/B,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC,CAAC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,OAAO,EAAE,EAAE;YACxC,IAAI,IAAI,CAAC,SAAS;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACzD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC3B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAI,CAAC,MAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;gBAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yDAAyD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtF,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAEhC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAgB;QACzB,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAc,CAAC,CAAC;IAC/C,CAAC;IAEO,aAAa,CAAC,GAAyB,EAAE,GAAwB;QACvE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAErE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACvD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QAGD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAU,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC5D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,GAAyB,EAAE,GAAwB;QACtE,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAE9B,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAuB,CAAC;QAEpE,IAAI,WAAW,KAAK,IAAI,CAAC,MAAM,IAAI,YAAY,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAChE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC,CAAC;YAC1F,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAgBD,MAAM,eAAe;IAOnB,YACE,gBAA8B,OAAO,EACrC,OAAe,KAAK,EACpB,MAAe,EACf,gBAA0C,EAC1C,cAAkC,EAClC,KAAsC,EACtC,MAAuC;QAZxB,WAAM,GAAG,IAAI,eAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAczD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,IAAI,mDAAuB,EAAE,CAAC;QAC1E,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI,mCAAiB,EAAE,CAAC;QAEhE,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,SAAS,CAAC,SAAS,GAAG,KAAK,EAAE,OAAgB,EAAE,EAAE;YAC/C,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,SAAS,CAAC,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC;QAEF,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,UAAmB;QAC7C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,UAA4B,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAE1D,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAoB;oBAChC,OAAO,EAAE,KAAK;oBACd,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,MAAM,EAAE;wBACN,eAAe,EAAE,YAAY;wBAC7B,YAAY,EAAE;4BACZ,KAAK,EAAE,EAAE;4BACT,SAAS,EAAE,EAAE;4BACb,OAAO,EAAE,EAAE;yBACZ;wBACD,UAAU,EAAE;4BACV,IAAI,EAAE,oBAAoB;4BAC1B,OAAO,EAAE,OAAO;yBACjB;qBACF;iBACF,CAAC;gBACF,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YAED,IAAI,MAAe,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAC5E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,aAAa,GAAoB;oBACrC,OAAO,EAAE,KAAK;oBACd,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,CAAC,KAAK;wBACZ,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAChE;iBACF,CAAC;gBACF,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzC,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAoB;gBAChC,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,MAAM;aACP,CAAC;YACF,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;YACtD,MAAM,aAAa,GAAoB;gBACrC,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE;oBACL,IAAI,EAAE,CAAC,KAAK;oBACZ,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAChE;aACF,CAAC;YACF,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,MAA+B;QAC3E,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YAChC,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACrC,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACpC,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACzC,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAClC,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACtC;gBACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,OAAO;YACL,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,kBAAkB;oBACxB,WAAW,EAAE,wDAAwD;oBACrE,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;4BAC3E,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE,OAAO,EAAE,MAAM,EAAE;4BAC/F,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;4BACxE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;yBAClE;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EAAE,qCAAqC;oBAClD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iEAAiE,EAAE;4BACzG,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;4BAClF,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;4BACzE,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE;4BACjF,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,OAAO,EAAE;4BACrF,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;4BAC1E,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;yBACnE;wBACD,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC;qBACnC;iBACF;gBACD;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EAAE,6BAA6B;oBAC1C,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;4BACrE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE,OAAO,EAAE,UAAU,EAAE;4BACzG,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;yBAClE;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,WAAW,EAAE,mCAAmC;oBAChD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;yBAC5D;qBACF;iBACF;gBACD;oBACE,IAAI,EAAE,wBAAwB;oBAC9B,WAAW,EAAE,mCAAmC;oBAChD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACxB;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EAAE,mCAAmC;oBAChD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACxB;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,WAAW,EAAE,yBAAyB;oBACtC,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACxB;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,+BAA+B;oBACrC,WAAW,EAAE,2IAA2I;oBACxJ,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;4BACvD,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gFAAgF,EAAE,OAAO,EAAE,KAAK,EAAE;yBACzI;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,WAAW,EAAE,+CAA+C;oBAC5D,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC5B;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC;qBAC3C;iBACF;gBACD;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,WAAW,EAAE,qCAAqC;oBAClD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACzB;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,WAAW,EAAE,iCAAiC;oBAC9C,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACvB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACxB;wBACD,QAAQ,EAAE,CAAC,KAAK,CAAC;qBAClB;iBACF;gBACD;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,WAAW,EAAE,iCAAiC;oBAC9C,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACvB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACxB;wBACD,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;qBAC3B;iBACF;gBACD;oBACE,IAAI,EAAE,iBAAiB;oBACvB,WAAW,EAAE,wBAAwB;oBACrC,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,EAAE;qBACf;iBACF;gBACD;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EAAE,yDAAyD;oBACtE,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;4BAC/D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE,OAAO,EAAE,SAAS,EAAE;4BAC9F,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,uEAAuE,EAAE;yBAC/G;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;qBAC5B;iBACF;gBACD;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,WAAW,EAAE,8CAA8C;oBAC3D,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;yBAC9C;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EAAE,qCAAqC;oBAClD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;4BAC7C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC1B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC5B;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;qBAC7B;iBACF;gBACD;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EAAE,uCAAuC;oBACpD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;4BAC7C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC3B;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;qBAC7B;iBACF;gBACD;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,WAAW,EAAE,2CAA2C;oBACxD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACzB;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,yBAAyB;oBAC/B,WAAW,EAAE,4CAA4C;oBACzD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;yBAC9C;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EAAE,mDAAmD;oBAChE,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;yBAC9C;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,MAA+B;QAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAc,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAoC,IAAI,EAAE,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,IAAI,MAAe,CAAC;YAEpB,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAChC,MAAM,GAAG,MAAM,IAAA,6BAAkB,EAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjE,CAAC;iBAAM,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;gBAC5C,MAAM,GAAG,MAAM,IAAA,6BAAsB,EAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC5C,MAAM,GAAG,MAAM,IAAA,wBAAgB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,IAAI,KAAK,+BAA+B,EAAE,CAAC;gBACpD,MAAM,GAAG,MAAM,IAAA,sCAAuB,EAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC3C,MAAM,GAAG,MAAM,IAAA,sBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,IAAI,KAAK,oBAAoB,IAAI,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBAC1E,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACpD,CAAC;iBAAM,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACtC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC7C,MAAM,GAAG,MAAM,IAAA,0BAAiB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;YAC3C,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACzC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAE1D,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;qBAC5E;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACzC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAC3D,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAE1D,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;qBAC/C;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,IAAY,EAAE,IAA6B;QACzE,MAAM,EAAE,GAAG,wDAAa,UAAU,GAAC,CAAC;QACpC,MAAM,IAAI,GAAG,wDAAa,MAAM,GAAC,CAAC;QAClC,MAAM,IAAI,GAAG,wDAAa,MAAM,GAAC,CAAC;QAElC,MAAM,GAAG,GAAI,IAAI,CAAC,GAAc,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAElD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAElE,IAAI,IAAI,KAAK,oBAAoB,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAa,CAAC;YAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,KAAK,GAAY,MAAM,CAAC;YAC5B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,KAAK,GAAI,KAAiC,EAAE,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,IAAI,CAAC,GAAa,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAe,CAAC;YACnC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,MAAM,GAA4B,MAAM,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBACvB,CAAC;gBACD,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAA4B,CAAC;YACtD,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACtC,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACvD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC/B,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,aAAa,GAAC,CAAC;QACtD,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAA+B;QAC9D,MAAM,EAAE,YAAY,EAAE,GAAG,wDAAa,aAAa,GAAC,CAAC;QACrD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,WAAW,GAAC,CAAC;QAClD,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAA+B;QAC3D,MAAM,EAAE,SAAS,EAAE,GAAG,wDAAa,WAAW,GAAC,CAAC;QAChD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;CACF;AAEM,KAAK,UAAU,cAAc,CAAC,UAA4B,EAAE;IACjE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC;IAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;IAEnC,MAAM,MAAM,GAAG,IAAI,eAAe,CAChC,SAAS,EACT,IAAI,EACJ,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,MAAM,CACf,CAAC;IACF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -89,6 +89,7 @@ describe('MCP Server', () => {
|
|
|
89
89
|
const server = await (0, server_1.startMcpServer)();
|
|
90
90
|
expect(server).toBeDefined();
|
|
91
91
|
expect(server.stop).toBeDefined();
|
|
92
|
+
await server.stop();
|
|
92
93
|
});
|
|
93
94
|
it('should start server with custom validator', async () => {
|
|
94
95
|
const options = {
|
|
@@ -96,6 +97,7 @@ describe('MCP Server', () => {
|
|
|
96
97
|
};
|
|
97
98
|
const server = await (0, server_1.startMcpServer)(options);
|
|
98
99
|
expect(server).toBeDefined();
|
|
100
|
+
await server.stop();
|
|
99
101
|
});
|
|
100
102
|
it('should start server with metrics service', async () => {
|
|
101
103
|
const options = {
|
|
@@ -103,6 +105,7 @@ describe('MCP Server', () => {
|
|
|
103
105
|
};
|
|
104
106
|
const server = await (0, server_1.startMcpServer)(options);
|
|
105
107
|
expect(server).toBeDefined();
|
|
108
|
+
await server.stop();
|
|
106
109
|
});
|
|
107
110
|
it('should stop server cleanly', async () => {
|
|
108
111
|
const server = await (0, server_1.startMcpServer)();
|
|
@@ -553,10 +556,23 @@ describe('MCP Server', () => {
|
|
|
553
556
|
});
|
|
554
557
|
await new Promise(resolve => setTimeout(resolve, 50));
|
|
555
558
|
const http = await Promise.resolve().then(() => __importStar(require('node:http')));
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
559
|
+
await new Promise((resolve, reject) => {
|
|
560
|
+
const sseReq = http.get(`http://127.0.0.1:${testPort}/sse`, (res) => {
|
|
561
|
+
res.once('data', () => {
|
|
562
|
+
server.stop().then(() => {
|
|
563
|
+
sseReq.destroy();
|
|
564
|
+
resolve();
|
|
565
|
+
}).catch(reject);
|
|
566
|
+
});
|
|
567
|
+
res.once('error', reject);
|
|
568
|
+
});
|
|
569
|
+
sseReq.once('error', (err) => {
|
|
570
|
+
if (err.code === 'ECONNRESET' || err.code === 'ECONNREFUSED')
|
|
571
|
+
resolve();
|
|
572
|
+
else
|
|
573
|
+
reject(err);
|
|
574
|
+
});
|
|
575
|
+
});
|
|
560
576
|
});
|
|
561
577
|
});
|
|
562
578
|
});
|