@codesherlock/codesherlock-alpha-mcp-server 0.0.3 → 0.0.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/.env +1 -1
- package/build/handlers/tools.d.ts.map +1 -1
- package/build/handlers/tools.js +3 -1
- package/build/handlers/tools.js.map +1 -1
- package/build/services/backendApiService.d.ts.map +1 -1
- package/build/services/backendApiService.js +49 -7
- package/build/services/backendApiService.js.map +1 -1
- package/package.json +1 -1
package/.env
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/handlers/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/handlers/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,QA0B9C"}
|
package/build/handlers/tools.js
CHANGED
|
@@ -8,7 +8,9 @@ import { createAnalyzeCommitHandler } from "./analyzeCommitHandler.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export function registerTools(server) {
|
|
10
10
|
const gitService = new GitService();
|
|
11
|
-
|
|
11
|
+
// Validate required environment variables
|
|
12
|
+
const backendUrl = process.env.BACKEND_API_URL;
|
|
13
|
+
const backendApiService = new BackendApiService(backendUrl, process.env.MCP_API_KEY);
|
|
12
14
|
const commitReviewService = new CommitReviewService(backendApiService);
|
|
13
15
|
/**
|
|
14
16
|
* Tool: Analyze Commit
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/handlers/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC3C,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/handlers/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC3C,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAEpC,0CAA0C;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAE/C,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAC3C,UAAiB,EACjB,OAAO,CAAC,GAAG,CAAC,WAAW,CAC1B,CAAC;IACF,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAEvE;;;OAGG;IACH,MAAM,CAAC,YAAY,CACf,gBAAgB,EAChB;QACI,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,kGAAkG;QAC/G,WAAW,EAAE,wBAAwB;QACrC,YAAY,EAAE,yBAAyB;KAC1C,EACD,0BAA0B,CAAC,UAAU,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,CACjF,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backendApiService.d.ts","sourceRoot":"","sources":["../../src/services/backendApiService.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAK3B;;;GAGG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"backendApiService.d.ts","sourceRoot":"","sources":["../../src/services/backendApiService.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,23 @@ export class BackendApiService {
|
|
|
11
11
|
wsBaseUrl;
|
|
12
12
|
apiKey;
|
|
13
13
|
constructor(baseUrl, apiKey) {
|
|
14
|
+
if (!baseUrl || baseUrl.trim() === "") {
|
|
15
|
+
throw new Error("BACKEND_API_URL environment variable is required but not set. Please configure it in your .env file or environment variables.");
|
|
16
|
+
}
|
|
14
17
|
this.baseUrl = baseUrl;
|
|
15
|
-
|
|
18
|
+
// Convert HTTP/HTTPS URLs to WebSocket URLs (ws/wss)
|
|
19
|
+
// Handle both http:// and https:// protocols correctly
|
|
20
|
+
if (baseUrl.startsWith("https://")) {
|
|
21
|
+
this.wsBaseUrl = baseUrl.replace(/^https/, "wss");
|
|
22
|
+
}
|
|
23
|
+
else if (baseUrl.startsWith("http://")) {
|
|
24
|
+
this.wsBaseUrl = baseUrl.replace(/^http/, "ws");
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
// If URL doesn't start with http/https, assume ws protocol
|
|
28
|
+
logger.logWarning("Backend URL doesn't start with http/https, assuming WebSocket protocol", { baseUrl });
|
|
29
|
+
this.wsBaseUrl = baseUrl;
|
|
30
|
+
}
|
|
16
31
|
this.apiKey = apiKey;
|
|
17
32
|
}
|
|
18
33
|
/**
|
|
@@ -119,6 +134,15 @@ export class BackendApiService {
|
|
|
119
134
|
try {
|
|
120
135
|
const wsUrl = `${this.wsBaseUrl}/v2/ws/${userId}`;
|
|
121
136
|
logger.logInfo("Connecting to WebSocket", { wsUrl, userId });
|
|
137
|
+
// Validate WebSocket URL format
|
|
138
|
+
if (!wsUrl.startsWith("ws://") && !wsUrl.startsWith("wss://")) {
|
|
139
|
+
const error = new Error(`Invalid WebSocket URL format: ${wsUrl}. ` +
|
|
140
|
+
`Expected URL to start with ws:// or wss://. ` +
|
|
141
|
+
`Please check your BACKEND_API_URL configuration.`);
|
|
142
|
+
logger.logError("Invalid WebSocket URL format", error, { wsUrl, baseUrl: this.baseUrl, wsBaseUrl: this.wsBaseUrl });
|
|
143
|
+
reject(error);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
122
146
|
const ws = new WebSocket(wsUrl);
|
|
123
147
|
ws.on("open", () => {
|
|
124
148
|
logger.logInfo("WebSocket connection opened", { userId });
|
|
@@ -134,19 +158,37 @@ export class BackendApiService {
|
|
|
134
158
|
}
|
|
135
159
|
});
|
|
136
160
|
ws.on("error", (error) => {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
161
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
162
|
+
const enhancedError = new Error(`WebSocket connection failed: ${errorMessage}. ` +
|
|
163
|
+
`URL: ${wsUrl}. ` +
|
|
164
|
+
`Please verify that the backend service is running and accessible.`);
|
|
165
|
+
logger.logError("WebSocket error", enhancedError, { userId, wsUrl });
|
|
166
|
+
onError?.(enhancedError);
|
|
167
|
+
reject(enhancedError);
|
|
140
168
|
});
|
|
141
169
|
ws.on("close", (code, reason) => {
|
|
142
170
|
const reasonStr = reason.toString();
|
|
143
|
-
//
|
|
171
|
+
// Log close events with more detail for debugging
|
|
172
|
+
if (code !== 1000) {
|
|
173
|
+
logger.logWarning("WebSocket closed unexpectedly", {
|
|
174
|
+
userId,
|
|
175
|
+
code: String(code),
|
|
176
|
+
reason: reasonStr,
|
|
177
|
+
wsUrl
|
|
178
|
+
});
|
|
179
|
+
}
|
|
144
180
|
onClose?.(code, reasonStr);
|
|
145
181
|
});
|
|
146
182
|
}
|
|
147
183
|
catch (error) {
|
|
148
|
-
|
|
149
|
-
|
|
184
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
185
|
+
const enhancedError = new Error(`Failed to create WebSocket connection: ${errorMessage}. ` +
|
|
186
|
+
`Please check your network connection and backend service availability.`);
|
|
187
|
+
logger.logError("Error creating WebSocket connection", enhancedError, {
|
|
188
|
+
userId,
|
|
189
|
+
wsBaseUrl: this.wsBaseUrl
|
|
190
|
+
});
|
|
191
|
+
reject(enhancedError);
|
|
150
192
|
}
|
|
151
193
|
});
|
|
152
194
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backendApiService.js","sourceRoot":"","sources":["../../src/services/backendApiService.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAClB,OAAO,CAAS;IAChB,SAAS,CAAS;IAClB,MAAM,CAAU;IAExB,YAAY,OAAe,EAAE,MAAe;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"backendApiService.js","sourceRoot":"","sources":["../../src/services/backendApiService.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAClB,OAAO,CAAS;IAChB,SAAS,CAAS;IAClB,MAAM,CAAU;IAExB,YAAY,OAAe,EAAE,MAAe;QACxC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,+HAA+H,CAAC,CAAC;QACrJ,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,qDAAqD;QACrD,uDAAuD;QACvD,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACJ,2DAA2D;YAC3D,MAAM,CAAC,UAAU,CAAC,wEAAwE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACzG,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAA0B;QAC/C,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,qBAAqB,MAAM,CAAC,MAAM,EAAE,CAAC;YAEhE,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAEhC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC3C,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/C,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/C,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7C,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAEzC,YAAY;YACZ,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YAEpE,iCAAiC;YACjC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAElE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;YAEzF,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACnE,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC9B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACL,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9D;gBACD,IAAI,EAAE,QAAQ;aACjB,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,IAAI,WAAW,GAAG,eAAe,CAAC;gBAClC,IAAI,CAAC;oBACD,mFAAmF;oBACnF,MAAM,SAAS,GAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC7C,WAAW,GAAG,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBACxG,CAAC;gBAAC,MAAM,CAAC;oBACL,iCAAiC;oBACjC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACxC,WAAW,GAAG,SAAS,IAAI,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACzD,CAAC;gBAED,MAAM,CAAC,QAAQ,CAAC,uBAAuB,QAAQ,CAAC,MAAM,aAAa,WAAW,EAAE,CAAC,CAAC;gBAElF,0DAA0D;gBAC1D,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,aAAa,WAAW,EAAE,CAAC,CAAC;gBACzF,KAAa,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC3C,KAAa,CAAC,WAAW,GAAG,WAAW,CAAC;gBACzC,MAAM,KAAK,CAAC;YAChB,CAAC;YAED,gFAAgF;YAChF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC1B,IAAI,IAAI,GAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACD,oEAAoE;oBACpE,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBACzD,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;wBAC1D,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACjC,CAAC;yBAAM,CAAC;wBACJ,4BAA4B;wBAC5B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;wBACnC,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,IAAI,+DAA+D,EAAE,CAAC;oBAChG,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACL,wCAAwC;oBACxC,IAAI,GAAG,EAAE,OAAO,EAAE,+DAA+D,EAAE,CAAC;gBACxF,CAAC;gBAED,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,IAAI;oBACJ,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;oBACnE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,sCAAsC;iBAClE,CAAC;YACN,CAAC;YAED,6CAA6C;YAC7C,IAAI,IAAI,GAAQ,EAAE,CAAC;YACnB,IAAI,CAAC;gBACD,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACL,mDAAmD;gBACnD,MAAM,CAAC,UAAU,CAAC,8CAA8C,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACvG,IAAI,GAAG,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;YAC/D,CAAC;YAED,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,IAAI;gBACJ,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;gBACnE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,sCAAsC;aAClE,CAAC;QAEN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,QAAQ,CAAC,gCAAgC,EAAE,KAAc,CAAC,CAAC;YAClE,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;OAEG;IACH,gBAAgB,CACZ,MAAc,EACd,SAA2C,EAC3C,OAAgC,EAChC,OAAgD;QAEhD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC;gBACD,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,SAAS,UAAU,MAAM,EAAE,CAAC;gBAElD,MAAM,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAE7D,gCAAgC;gBAChC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5D,MAAM,KAAK,GAAG,IAAI,KAAK,CACnB,iCAAiC,KAAK,IAAI;wBAC1C,8CAA8C;wBAC9C,kDAAkD,CACrD,CAAC;oBACF,MAAM,CAAC,QAAQ,CAAC,8BAA8B,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;oBACpH,MAAM,CAAC,KAAK,CAAC,CAAC;oBACd,OAAO;gBACX,CAAC;gBAED,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;gBAEhC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;oBACf,MAAM,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC1D,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;oBACtB,IAAI,CAAC;wBACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAqB,CAAC;wBAChE,SAAS,CAAC,OAAO,CAAC,CAAC;oBACvB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACb,MAAM,CAAC,QAAQ,CAAC,iCAAiC,EAAE,KAAc,CAAC,CAAC;oBACvE,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACrB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5E,MAAM,aAAa,GAAG,IAAI,KAAK,CAC3B,gCAAgC,YAAY,IAAI;wBAChD,QAAQ,KAAK,IAAI;wBACjB,mEAAmE,CACtE,CAAC;oBACF,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,aAAsB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC9E,OAAO,EAAE,CAAC,aAAsB,CAAC,CAAC;oBAClC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;oBAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACpC,kDAAkD;oBAClD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBAChB,MAAM,CAAC,UAAU,CAAC,+BAA+B,EAAE;4BAC/C,MAAM;4BACN,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;4BAClB,MAAM,EAAE,SAAS;4BACjB,KAAK;yBACR,CAAC,CAAC;oBACP,CAAC;oBACD,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,MAAM,aAAa,GAAG,IAAI,KAAK,CAC3B,0CAA0C,YAAY,IAAI;oBAC1D,wEAAwE,CAC3E,CAAC;gBACF,MAAM,CAAC,QAAQ,CAAC,qCAAqC,EAAE,aAAsB,EAAE;oBAC3E,MAAM;oBACN,SAAS,EAAE,IAAI,CAAC,SAAS;iBAC5B,CAAC,CAAC;gBACH,MAAM,CAAC,aAAa,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,QAAuB;QAChD,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,+BAA+B;SAC3C,CAAC;IACN,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,UAAkB;QACvC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,sBAAsB;QACxB,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,kBAAkB,CAAC;YAE9C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YAC3E,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC9B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACL,kBAAkB,EAAE,IAAI,CAAC,MAAM;oBAC/B,cAAc,EAAE,kBAAkB;iBACrC;aACJ,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,IAAI,WAAW,GAAG,eAAe,CAAC;gBAClC,IAAI,CAAC;oBACD,mFAAmF;oBACnF,MAAM,SAAS,GAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC7C,WAAW,GAAG,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAChE,CAAC;gBAAC,MAAM,CAAC;oBACL,iCAAiC;oBACjC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACxC,WAAW,GAAG,SAAS,IAAI,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACzD,CAAC;gBAED,MAAM,CAAC,QAAQ,CAAC,uBAAuB,QAAQ,CAAC,MAAM,aAAa,WAAW,EAAE,CAAC,CAAC;gBAElF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,0DAA0D,CAAC,CAAC;gBAC/F,CAAC;qBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,iBAAiB,CAAC,CAAC;gBACtD,CAAC;gBAED,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7E,CAAC;YAED,MAAM,IAAI,GAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAExC,MAAM,CAAC,OAAO,CAAC,kCAAkC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAE7E,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,QAAQ,CAAC,uCAAuC,EAAE,KAAc,CAAC,CAAC;YACzE,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;CACJ"}
|