partnercore-proxy 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +54 -0
- package/LICENSE +22 -0
- package/README.md +234 -0
- package/dist/al/extension-manager.d.ts +52 -0
- package/dist/al/extension-manager.d.ts.map +1 -0
- package/dist/al/extension-manager.js +348 -0
- package/dist/al/extension-manager.js.map +1 -0
- package/dist/al/index.d.ts +3 -0
- package/dist/al/index.d.ts.map +1 -0
- package/dist/al/index.js +19 -0
- package/dist/al/index.js.map +1 -0
- package/dist/al/language-server.d.ts +134 -0
- package/dist/al/language-server.d.ts.map +1 -0
- package/dist/al/language-server.js +431 -0
- package/dist/al/language-server.js.map +1 -0
- package/dist/cli.d.ts +8 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +207 -0
- package/dist/cli.js.map +1 -0
- package/dist/cloud/index.d.ts +2 -0
- package/dist/cloud/index.d.ts.map +1 -0
- package/dist/cloud/index.js +18 -0
- package/dist/cloud/index.js.map +1 -0
- package/dist/cloud/relay-client.d.ts +84 -0
- package/dist/cloud/relay-client.d.ts.map +1 -0
- package/dist/cloud/relay-client.js +211 -0
- package/dist/cloud/relay-client.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +19 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +20 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +136 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/types.d.ts +51 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +33 -0
- package/dist/config/types.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/index.d.ts +2 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +18 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +33 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +98 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/router/index.d.ts +2 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +18 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/tool-router.d.ts +87 -0
- package/dist/router/tool-router.d.ts.map +1 -0
- package/dist/router/tool-router.js +557 -0
- package/dist/router/tool-router.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +19 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +20 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +99 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/security.d.ts +66 -0
- package/dist/utils/security.d.ts.map +1 -0
- package/dist/utils/security.js +358 -0
- package/dist/utils/security.js.map +1 -0
- package/mcp.json +125 -0
- package/package.json +107 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* PartnerCore Proxy
|
|
4
|
+
*
|
|
5
|
+
* Local MCP proxy for AL Language Server integration.
|
|
6
|
+
* Bridges local AL development with PartnerCore Cloud MCP.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
20
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
|
+
};
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
__exportStar(require("./config/index.js"), exports);
|
|
24
|
+
__exportStar(require("./utils/index.js"), exports);
|
|
25
|
+
__exportStar(require("./al/index.js"), exports);
|
|
26
|
+
__exportStar(require("./cloud/index.js"), exports);
|
|
27
|
+
__exportStar(require("./router/index.js"), exports);
|
|
28
|
+
__exportStar(require("./mcp/index.js"), exports);
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,oDAAkC;AAClC,mDAAiC;AACjC,gDAA8B;AAC9B,mDAAiC;AACjC,oDAAkC;AAClC,iDAA+B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./server.js"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server
|
|
3
|
+
*
|
|
4
|
+
* The main MCP server that exposes tools to AI assistants.
|
|
5
|
+
* Routes tool calls through the ToolRouter to appropriate handlers.
|
|
6
|
+
*/
|
|
7
|
+
import { ToolRouter } from '../router/tool-router.js';
|
|
8
|
+
/**
|
|
9
|
+
* PartnerCore MCP Server
|
|
10
|
+
*/
|
|
11
|
+
export declare class PartnerCoreMcpServer {
|
|
12
|
+
private server;
|
|
13
|
+
private router;
|
|
14
|
+
private logger;
|
|
15
|
+
constructor(router: ToolRouter);
|
|
16
|
+
/**
|
|
17
|
+
* Setup MCP request handlers
|
|
18
|
+
*/
|
|
19
|
+
private setupHandlers;
|
|
20
|
+
/**
|
|
21
|
+
* Convert tool definitions to MCP format
|
|
22
|
+
*/
|
|
23
|
+
private convertToMcpTools;
|
|
24
|
+
/**
|
|
25
|
+
* Start the server with stdio transport
|
|
26
|
+
*/
|
|
27
|
+
start(): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Stop the server
|
|
30
|
+
*/
|
|
31
|
+
stop(): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,EAAE,UAAU,EAAkB,MAAM,0BAA0B,CAAC;AAGtE;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,UAAU;IAkB9B;;OAEG;IACH,OAAO,CAAC,aAAa;IA0CrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAI5B"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Server
|
|
4
|
+
*
|
|
5
|
+
* The main MCP server that exposes tools to AI assistants.
|
|
6
|
+
* Routes tool calls through the ToolRouter to appropriate handlers.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.PartnerCoreMcpServer = void 0;
|
|
10
|
+
const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
11
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
12
|
+
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
13
|
+
const logger_js_1 = require("../utils/logger.js");
|
|
14
|
+
/**
|
|
15
|
+
* PartnerCore MCP Server
|
|
16
|
+
*/
|
|
17
|
+
class PartnerCoreMcpServer {
|
|
18
|
+
server;
|
|
19
|
+
router;
|
|
20
|
+
logger = (0, logger_js_1.getLogger)();
|
|
21
|
+
constructor(router) {
|
|
22
|
+
this.router = router;
|
|
23
|
+
this.server = new index_js_1.Server({
|
|
24
|
+
name: 'partnercore-proxy',
|
|
25
|
+
version: '0.1.0',
|
|
26
|
+
}, {
|
|
27
|
+
capabilities: {
|
|
28
|
+
tools: {},
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
this.setupHandlers();
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Setup MCP request handlers
|
|
35
|
+
*/
|
|
36
|
+
setupHandlers() {
|
|
37
|
+
// Handle tools/list
|
|
38
|
+
this.server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
|
|
39
|
+
const definitions = await this.router.getToolDefinitions();
|
|
40
|
+
const tools = this.convertToMcpTools(definitions);
|
|
41
|
+
this.logger.debug(`Returning ${tools.length} tools`);
|
|
42
|
+
return { tools };
|
|
43
|
+
});
|
|
44
|
+
// Handle tools/call
|
|
45
|
+
this.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
46
|
+
const { name, arguments: args } = request.params;
|
|
47
|
+
this.logger.info(`Tool call: ${name}`);
|
|
48
|
+
this.logger.debug(`Arguments: ${JSON.stringify(args)}`);
|
|
49
|
+
const result = await this.router.callTool({
|
|
50
|
+
name,
|
|
51
|
+
arguments: args,
|
|
52
|
+
});
|
|
53
|
+
return {
|
|
54
|
+
content: [
|
|
55
|
+
{
|
|
56
|
+
type: 'text',
|
|
57
|
+
text: typeof result.content === 'string'
|
|
58
|
+
? result.content
|
|
59
|
+
: JSON.stringify(result.content, null, 2),
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
isError: result.isError,
|
|
63
|
+
};
|
|
64
|
+
});
|
|
65
|
+
// Handle errors
|
|
66
|
+
this.server.onerror = (error) => {
|
|
67
|
+
this.logger.error('MCP Server error:', error);
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Convert tool definitions to MCP format
|
|
72
|
+
*/
|
|
73
|
+
convertToMcpTools(definitions) {
|
|
74
|
+
return definitions.map(def => ({
|
|
75
|
+
name: def.name,
|
|
76
|
+
description: def.description,
|
|
77
|
+
inputSchema: def.inputSchema,
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Start the server with stdio transport
|
|
82
|
+
*/
|
|
83
|
+
async start() {
|
|
84
|
+
this.logger.info('Starting PartnerCore MCP Server...');
|
|
85
|
+
const transport = new stdio_js_1.StdioServerTransport();
|
|
86
|
+
await this.server.connect(transport);
|
|
87
|
+
this.logger.info('PartnerCore MCP Server running on stdio');
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Stop the server
|
|
91
|
+
*/
|
|
92
|
+
async stop() {
|
|
93
|
+
this.logger.info('Stopping PartnerCore MCP Server...');
|
|
94
|
+
await this.server.close();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.PartnerCoreMcpServer = PartnerCoreMcpServer;
|
|
98
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./tool-router.js"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Router
|
|
3
|
+
*
|
|
4
|
+
* Routes MCP tool calls to either local AL LSP or cloud PartnerCore server
|
|
5
|
+
* based on tool routing configuration.
|
|
6
|
+
*/
|
|
7
|
+
import { ToolRouting } from '../config/types.js';
|
|
8
|
+
import { ALLanguageServer } from '../al/language-server.js';
|
|
9
|
+
import { CloudRelayClient } from '../cloud/relay-client.js';
|
|
10
|
+
/**
|
|
11
|
+
* Tool call input
|
|
12
|
+
*/
|
|
13
|
+
export interface ToolCall {
|
|
14
|
+
name: string;
|
|
15
|
+
arguments: Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Tool call result
|
|
19
|
+
*/
|
|
20
|
+
export interface ToolResult {
|
|
21
|
+
success: boolean;
|
|
22
|
+
content: unknown;
|
|
23
|
+
isError?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Tool definition for MCP
|
|
27
|
+
*/
|
|
28
|
+
export interface ToolDefinition {
|
|
29
|
+
name: string;
|
|
30
|
+
description: string;
|
|
31
|
+
inputSchema: {
|
|
32
|
+
type: 'object';
|
|
33
|
+
properties: Record<string, unknown>;
|
|
34
|
+
required?: string[];
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Tool Router
|
|
39
|
+
*/
|
|
40
|
+
export declare class ToolRouter {
|
|
41
|
+
private routing;
|
|
42
|
+
private alServer;
|
|
43
|
+
private cloudClient;
|
|
44
|
+
private workspaceRoot;
|
|
45
|
+
private logger;
|
|
46
|
+
private localToolDefinitions;
|
|
47
|
+
constructor(workspaceRoot: string, customRouting?: ToolRouting[]);
|
|
48
|
+
/**
|
|
49
|
+
* Set the AL Language Server instance
|
|
50
|
+
*/
|
|
51
|
+
setALServer(server: ALLanguageServer): void;
|
|
52
|
+
/**
|
|
53
|
+
* Set the Cloud Relay Client instance
|
|
54
|
+
*/
|
|
55
|
+
setCloudClient(client: CloudRelayClient): void;
|
|
56
|
+
/**
|
|
57
|
+
* Get all available tool definitions
|
|
58
|
+
*/
|
|
59
|
+
getToolDefinitions(): Promise<ToolDefinition[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Route and execute a tool call
|
|
62
|
+
*/
|
|
63
|
+
callTool(call: ToolCall): Promise<ToolResult>;
|
|
64
|
+
/**
|
|
65
|
+
* Handle local tool call (AL LSP or file system)
|
|
66
|
+
*/
|
|
67
|
+
private handleLocalTool;
|
|
68
|
+
/**
|
|
69
|
+
* Handle cloud tool call
|
|
70
|
+
*/
|
|
71
|
+
private handleCloudTool;
|
|
72
|
+
private handleGetSymbols;
|
|
73
|
+
private handleFindSymbol;
|
|
74
|
+
private handleFindReferences;
|
|
75
|
+
private handleGetDiagnostics;
|
|
76
|
+
private handleGoToDefinition;
|
|
77
|
+
private handleHover;
|
|
78
|
+
private handleCompletion;
|
|
79
|
+
private handleReadFile;
|
|
80
|
+
private handleWriteFile;
|
|
81
|
+
private handleListFiles;
|
|
82
|
+
private listFilesRecursive;
|
|
83
|
+
private matchesPattern;
|
|
84
|
+
private handleSearchFiles;
|
|
85
|
+
private initLocalToolDefinitions;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=tool-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-router.d.ts","sourceRoot":"","sources":["../../src/router/tool-router.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAwB,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAU5D;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,oBAAoB,CAAwB;gBAExC,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,WAAW,EAAE;IAmBhE;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAI3C;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAI9C;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAkBrD;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAYnD;;OAEG;YACW,eAAe;IAyE7B;;OAEG;YACW,eAAe;YAuBf,gBAAgB;YAWhB,gBAAgB;YAWhB,oBAAoB;YAcpB,oBAAoB;YAWpB,oBAAoB;YAcpB,WAAW;YAcX,gBAAgB;IAiB9B,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,kBAAkB;IA2C1B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,iBAAiB;IA8CzB,OAAO,CAAC,wBAAwB;CA+IjC"}
|