@codesherlock/codesherlock-beta-mcp-server 0.0.17 → 0.0.22
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/analyzeCommitHandler.d.ts +13 -0
- package/build/handlers/analyzeCommitHandler.d.ts.map +1 -1
- package/build/handlers/analyzeCommitHandler.js +145 -3
- package/build/handlers/analyzeCommitHandler.js.map +1 -1
- package/build/handlers/tools.d.ts +1 -0
- package/build/handlers/tools.d.ts.map +1 -1
- package/build/handlers/tools.js +48 -18
- package/build/handlers/tools.js.map +1 -1
- package/build/index.js +164 -31
- package/build/index.js.map +1 -1
- package/build/services/loggingService.d.ts.map +1 -1
- package/build/services/loggingService.js +35 -6
- package/build/services/loggingService.js.map +1 -1
- package/build/tests/analyzeCommitHandler.test.js +6 -4
- package/build/tests/analyzeCommitHandler.test.js.map +1 -1
- package/build/tests/tools.test.js +2 -4
- package/build/tests/tools.test.js.map +1 -1
- package/build/utils/errorExtractor.js +3 -3
- package/build/utils/errorExtractor.js.map +1 -1
- package/package.json +1 -1
package/.env
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { GitService } from "../services/gitService.js";
|
|
2
2
|
import { CommitReviewService } from "../services/commitReviewService.js";
|
|
3
3
|
import { BackendApiService } from "../services/backendApiService.js";
|
|
4
|
+
import { ErrorType } from "../utils/errorExtractor.js";
|
|
4
5
|
type AnalyzeCommitArgs = {
|
|
5
6
|
uncommitted: boolean;
|
|
6
7
|
directory: string;
|
|
@@ -11,12 +12,24 @@ export declare const createAnalyzeCommitHandler: (gitService: GitService, commit
|
|
|
11
12
|
type: "text";
|
|
12
13
|
text: string;
|
|
13
14
|
}[];
|
|
15
|
+
structuredContent: {
|
|
16
|
+
success: boolean;
|
|
17
|
+
error: string;
|
|
18
|
+
errorType: ErrorType;
|
|
19
|
+
statusCode: number | undefined;
|
|
20
|
+
errorDetails: {
|
|
21
|
+
userMessage: string;
|
|
22
|
+
technicalDetails: string;
|
|
23
|
+
retryable: boolean;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
14
26
|
isError: boolean;
|
|
15
27
|
} | {
|
|
16
28
|
content: {
|
|
17
29
|
type: "text";
|
|
18
30
|
text: string;
|
|
19
31
|
}[];
|
|
32
|
+
structuredContent: import("../services/commitReviewService.js").CommitReviewResult;
|
|
20
33
|
isError?: undefined;
|
|
21
34
|
}>;
|
|
22
35
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzeCommitHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/analyzeCommitHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"analyzeCommitHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/analyzeCommitHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAGrE,OAAO,EAAuB,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAO5E,KAAK,iBAAiB,GAAG;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,gBAAgB,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;CAChE,CAAC;AAuBF,eAAO,MAAM,0BAA0B,GACnC,YAAY,UAAU,EACtB,qBAAqB,mBAAmB,EACxC,mBAAmB,iBAAiB,MAEtB,oCAAoC,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;EAidtE,CAAC"}
|
|
@@ -3,6 +3,27 @@ import { formatMultipleFileAnalysisToMarkdown } from "../utils/analysisFormatter
|
|
|
3
3
|
import { extractErrorDetails } from "../utils/errorExtractor.js";
|
|
4
4
|
import { websocketConnectionManager } from "../services/websocketConnectionManager.js";
|
|
5
5
|
import fs from "fs";
|
|
6
|
+
/**
|
|
7
|
+
* Helper to log the exact structuredContent object we are about to return to MCP.
|
|
8
|
+
* This is critical for debugging schema validation issues like:
|
|
9
|
+
* "Structured content does not match the tool's output schema: data.errorType should be equal to one of the allowed values"
|
|
10
|
+
*/
|
|
11
|
+
function logStructuredContentDebug(label, structuredContent) {
|
|
12
|
+
try {
|
|
13
|
+
const payload = structuredContent;
|
|
14
|
+
logger.logInfo(label, {
|
|
15
|
+
success: String(payload?.success),
|
|
16
|
+
errorType: payload?.errorType ? String(payload.errorType) : "",
|
|
17
|
+
hasErrorType: payload && "errorType" in payload ? "true" : "false",
|
|
18
|
+
statusCode: payload?.statusCode !== undefined ? String(payload.statusCode) : "",
|
|
19
|
+
// Truncate JSON to avoid massive logs while still being useful for debugging
|
|
20
|
+
structuredContentPreview: JSON.stringify(payload).slice(0, 2000),
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
logger.logError("Failed to log structuredContent debug payload", e);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
6
27
|
export const createAnalyzeCommitHandler = (gitService, commitReviewService, backendApiService) => {
|
|
7
28
|
return async ({ uncommitted, directory, factor }) => {
|
|
8
29
|
// Declare userId at function scope so it's accessible in catch blocks
|
|
@@ -19,6 +40,18 @@ export const createAnalyzeCommitHandler = (gitService, commitReviewService, back
|
|
|
19
40
|
// Validate directory exists
|
|
20
41
|
if (!fs.existsSync(directory)) {
|
|
21
42
|
const errorDetails = extractErrorDetails(new Error("Directory does not exist"));
|
|
43
|
+
const structuredContent = {
|
|
44
|
+
success: false,
|
|
45
|
+
error: errorDetails.userMessage,
|
|
46
|
+
errorType: errorDetails.errorType,
|
|
47
|
+
statusCode: 404,
|
|
48
|
+
errorDetails: {
|
|
49
|
+
userMessage: errorDetails.userMessage,
|
|
50
|
+
technicalDetails: `Directory not found: ${directory}`,
|
|
51
|
+
retryable: false,
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
logStructuredContentDebug("codesherlock_analyze: returning error (directory does not exist)", structuredContent);
|
|
22
55
|
return {
|
|
23
56
|
content: [
|
|
24
57
|
{
|
|
@@ -26,6 +59,7 @@ export const createAnalyzeCommitHandler = (gitService, commitReviewService, back
|
|
|
26
59
|
text: `Error: ${errorDetails.userMessage}`,
|
|
27
60
|
},
|
|
28
61
|
],
|
|
62
|
+
structuredContent,
|
|
29
63
|
isError: true,
|
|
30
64
|
};
|
|
31
65
|
}
|
|
@@ -55,6 +89,18 @@ export const createAnalyzeCommitHandler = (gitService, commitReviewService, back
|
|
|
55
89
|
catch (error) {
|
|
56
90
|
const errorDetails = extractErrorDetails(error);
|
|
57
91
|
logger.logError("Failed to analyze git changes", error, { directory, uncommitted: String(uncommitted) });
|
|
92
|
+
const structuredContent = {
|
|
93
|
+
success: false,
|
|
94
|
+
error: errorDetails.userMessage,
|
|
95
|
+
errorType: errorDetails.errorType,
|
|
96
|
+
statusCode: errorDetails.statusCode,
|
|
97
|
+
errorDetails: {
|
|
98
|
+
userMessage: errorDetails.userMessage,
|
|
99
|
+
technicalDetails: errorDetails.technicalDetails,
|
|
100
|
+
retryable: errorDetails.retryable,
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
logStructuredContentDebug("codesherlock_analyze: returning error (gitService.analyzeGitChanges failed)", structuredContent);
|
|
58
104
|
return {
|
|
59
105
|
content: [
|
|
60
106
|
{
|
|
@@ -62,19 +108,33 @@ export const createAnalyzeCommitHandler = (gitService, commitReviewService, back
|
|
|
62
108
|
text: `Error: ${errorDetails.userMessage}`,
|
|
63
109
|
},
|
|
64
110
|
],
|
|
111
|
+
structuredContent,
|
|
65
112
|
isError: true,
|
|
66
113
|
};
|
|
67
114
|
}
|
|
68
115
|
// Validate that we have file changes
|
|
69
116
|
if (!fileChanges || fileChanges.length === 0) {
|
|
70
117
|
const errorDetails = extractErrorDetails(new Error("No file changes found in the commit"));
|
|
118
|
+
const structuredContent = {
|
|
119
|
+
success: false,
|
|
120
|
+
error: errorDetails.userMessage,
|
|
121
|
+
errorType: "validation_error",
|
|
122
|
+
statusCode: 422,
|
|
123
|
+
errorDetails: {
|
|
124
|
+
userMessage: "No file changes found. Please ensure you have committed changes or uncommitted changes to analyze.",
|
|
125
|
+
technicalDetails: "Git analysis returned empty file changes array",
|
|
126
|
+
retryable: false,
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
logStructuredContentDebug("codesherlock_analyze: returning error (no file changes)", structuredContent);
|
|
71
130
|
return {
|
|
72
131
|
content: [
|
|
73
132
|
{
|
|
74
133
|
type: "text",
|
|
75
|
-
text: `Error:
|
|
134
|
+
text: `Error: ${errorDetails.userMessage}`,
|
|
76
135
|
},
|
|
77
136
|
],
|
|
137
|
+
structuredContent,
|
|
78
138
|
isError: true,
|
|
79
139
|
};
|
|
80
140
|
}
|
|
@@ -86,6 +146,18 @@ export const createAnalyzeCommitHandler = (gitService, commitReviewService, back
|
|
|
86
146
|
fileCount: String(fileChanges.length),
|
|
87
147
|
maxLimit: String(MAX_FILE_LIMIT),
|
|
88
148
|
});
|
|
149
|
+
const structuredContent = {
|
|
150
|
+
success: false,
|
|
151
|
+
error: errorDetails.userMessage,
|
|
152
|
+
errorType: "validation_error",
|
|
153
|
+
statusCode: 422,
|
|
154
|
+
errorDetails: {
|
|
155
|
+
userMessage: `Too many files to analyze. Found ${fileChanges.length} files, but the maximum allowed is ${MAX_FILE_LIMIT} files. Please reduce the number of files in your commit or uncommitted changes.`,
|
|
156
|
+
technicalDetails: `File count validation failed: ${fileChanges.length} files exceeds limit of ${MAX_FILE_LIMIT}`,
|
|
157
|
+
retryable: false,
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
logStructuredContentDebug("codesherlock_analyze: returning error (file limit exceeded)", structuredContent);
|
|
89
161
|
return {
|
|
90
162
|
content: [
|
|
91
163
|
{
|
|
@@ -93,6 +165,7 @@ export const createAnalyzeCommitHandler = (gitService, commitReviewService, back
|
|
|
93
165
|
text: `Error: Too many files to analyze. Found ${fileChanges.length} files, but the maximum allowed is ${MAX_FILE_LIMIT} files. Please reduce the number of files in your commit or uncommitted changes.`,
|
|
94
166
|
},
|
|
95
167
|
],
|
|
168
|
+
structuredContent,
|
|
96
169
|
isError: true,
|
|
97
170
|
};
|
|
98
171
|
}
|
|
@@ -121,13 +194,26 @@ export const createAnalyzeCommitHandler = (gitService, commitReviewService, back
|
|
|
121
194
|
logger.logError("Invalid file changes structure", new Error(errorMessage), {
|
|
122
195
|
invalidFilesCount: String(invalidFiles.length),
|
|
123
196
|
});
|
|
197
|
+
const structuredContent = {
|
|
198
|
+
success: false,
|
|
199
|
+
error: errorDetails.userMessage,
|
|
200
|
+
errorType: "validation_error",
|
|
201
|
+
statusCode: 422,
|
|
202
|
+
errorDetails: {
|
|
203
|
+
userMessage: "Invalid file changes structure. Each file must have 'filename', 'status', and 'new_content' fields.",
|
|
204
|
+
technicalDetails: errorMessage,
|
|
205
|
+
retryable: false,
|
|
206
|
+
},
|
|
207
|
+
};
|
|
208
|
+
logStructuredContentDebug("codesherlock_analyze: returning error (invalid file changes structure)", structuredContent);
|
|
124
209
|
return {
|
|
125
210
|
content: [
|
|
126
211
|
{
|
|
127
212
|
type: "text",
|
|
128
|
-
text: `Error:
|
|
213
|
+
text: `Error: ${errorDetails.userMessage}`,
|
|
129
214
|
},
|
|
130
215
|
],
|
|
216
|
+
structuredContent,
|
|
131
217
|
isError: true,
|
|
132
218
|
};
|
|
133
219
|
}
|
|
@@ -152,6 +238,19 @@ export const createAnalyzeCommitHandler = (gitService, commitReviewService, back
|
|
|
152
238
|
catch (error) {
|
|
153
239
|
const errorDetails = extractErrorDetails(error);
|
|
154
240
|
logger.logError("Failed to fetch user from secure route", error);
|
|
241
|
+
const structuredContent = {
|
|
242
|
+
success: false,
|
|
243
|
+
error: errorDetails.userMessage,
|
|
244
|
+
errorType: errorDetails.errorType,
|
|
245
|
+
statusCode: errorDetails.statusCode,
|
|
246
|
+
status: errorDetails.errorType,
|
|
247
|
+
errorDetails: {
|
|
248
|
+
userMessage: errorDetails.userMessage,
|
|
249
|
+
technicalDetails: errorDetails.technicalDetails,
|
|
250
|
+
retryable: errorDetails.retryable,
|
|
251
|
+
},
|
|
252
|
+
};
|
|
253
|
+
logStructuredContentDebug("codesherlock_analyze: returning error (getUserFromSecureRoute failed)", structuredContent);
|
|
155
254
|
// Return error from MCP server with backend error details
|
|
156
255
|
return {
|
|
157
256
|
content: [
|
|
@@ -160,6 +259,7 @@ export const createAnalyzeCommitHandler = (gitService, commitReviewService, back
|
|
|
160
259
|
text: `Error: ${errorDetails.userMessage}`,
|
|
161
260
|
},
|
|
162
261
|
],
|
|
262
|
+
structuredContent,
|
|
163
263
|
isError: true,
|
|
164
264
|
};
|
|
165
265
|
}
|
|
@@ -210,6 +310,18 @@ export const createAnalyzeCommitHandler = (gitService, commitReviewService, back
|
|
|
210
310
|
commit_id: commitId,
|
|
211
311
|
factor: normalizedFactor,
|
|
212
312
|
});
|
|
313
|
+
const structuredContent = {
|
|
314
|
+
success: false,
|
|
315
|
+
error: errorDetails.userMessage,
|
|
316
|
+
errorType: errorDetails.errorType,
|
|
317
|
+
statusCode: errorDetails.statusCode,
|
|
318
|
+
errorDetails: {
|
|
319
|
+
userMessage: errorDetails.userMessage,
|
|
320
|
+
technicalDetails: errorDetails.technicalDetails,
|
|
321
|
+
retryable: errorDetails.retryable,
|
|
322
|
+
},
|
|
323
|
+
};
|
|
324
|
+
logStructuredContentDebug("codesherlock_analyze: returning error (commitReviewService.submitAndWaitForResults failed)", structuredContent);
|
|
213
325
|
// Clean up WebSocket connection for this user if tool call was aborted or timed out
|
|
214
326
|
// Don't close all connections, just this user's connection to allow retries
|
|
215
327
|
if (toolCallAborted && userId) {
|
|
@@ -232,6 +344,7 @@ export const createAnalyzeCommitHandler = (gitService, commitReviewService, back
|
|
|
232
344
|
text: `Error: ${errorDetails.userMessage}`,
|
|
233
345
|
},
|
|
234
346
|
],
|
|
347
|
+
structuredContent,
|
|
235
348
|
isError: true,
|
|
236
349
|
};
|
|
237
350
|
}
|
|
@@ -242,13 +355,26 @@ export const createAnalyzeCommitHandler = (gitService, commitReviewService, back
|
|
|
242
355
|
user_id: userId,
|
|
243
356
|
commit_id: commitId,
|
|
244
357
|
});
|
|
358
|
+
const structuredContent = {
|
|
359
|
+
success: false,
|
|
360
|
+
error: result.error || errorDetails.userMessage,
|
|
361
|
+
errorType: errorDetails.errorType,
|
|
362
|
+
statusCode: errorDetails.statusCode,
|
|
363
|
+
errorDetails: {
|
|
364
|
+
userMessage: errorDetails.userMessage,
|
|
365
|
+
technicalDetails: result.error || errorDetails.technicalDetails,
|
|
366
|
+
retryable: errorDetails.retryable,
|
|
367
|
+
},
|
|
368
|
+
};
|
|
369
|
+
logStructuredContentDebug("codesherlock_analyze: returning error (result.success === false)", structuredContent);
|
|
245
370
|
return {
|
|
246
371
|
content: [
|
|
247
372
|
{
|
|
248
373
|
type: "text",
|
|
249
|
-
text: `Error: ${
|
|
374
|
+
text: `Error: ${errorDetails.userMessage}`,
|
|
250
375
|
},
|
|
251
376
|
],
|
|
377
|
+
structuredContent,
|
|
252
378
|
isError: true,
|
|
253
379
|
};
|
|
254
380
|
}
|
|
@@ -273,6 +399,8 @@ export const createAnalyzeCommitHandler = (gitService, commitReviewService, back
|
|
|
273
399
|
analysisId: result.analysisId || "none",
|
|
274
400
|
factor,
|
|
275
401
|
});
|
|
402
|
+
const structuredContent = result;
|
|
403
|
+
logStructuredContentDebug("codesherlock_analyze: returning success structuredContent", structuredContent);
|
|
276
404
|
return {
|
|
277
405
|
content: [
|
|
278
406
|
{
|
|
@@ -280,6 +408,7 @@ export const createAnalyzeCommitHandler = (gitService, commitReviewService, back
|
|
|
280
408
|
text: markdownAnalysis || JSON.stringify(result, null, 2),
|
|
281
409
|
},
|
|
282
410
|
],
|
|
411
|
+
structuredContent,
|
|
283
412
|
};
|
|
284
413
|
}
|
|
285
414
|
catch (error) {
|
|
@@ -311,6 +440,18 @@ export const createAnalyzeCommitHandler = (gitService, commitReviewService, back
|
|
|
311
440
|
});
|
|
312
441
|
});
|
|
313
442
|
}
|
|
443
|
+
const structuredContent = {
|
|
444
|
+
success: false,
|
|
445
|
+
error: errorDetails.userMessage,
|
|
446
|
+
errorType: errorDetails.errorType,
|
|
447
|
+
statusCode: errorDetails.statusCode || 500,
|
|
448
|
+
errorDetails: {
|
|
449
|
+
userMessage: errorDetails.userMessage,
|
|
450
|
+
technicalDetails: errorDetails.technicalDetails,
|
|
451
|
+
retryable: errorDetails.retryable,
|
|
452
|
+
},
|
|
453
|
+
};
|
|
454
|
+
logStructuredContentDebug("codesherlock_analyze: returning error (top-level catch)", structuredContent);
|
|
314
455
|
return {
|
|
315
456
|
content: [
|
|
316
457
|
{
|
|
@@ -318,6 +459,7 @@ export const createAnalyzeCommitHandler = (gitService, commitReviewService, back
|
|
|
318
459
|
text: `Error analyzing commit: ${errorDetails.userMessage}`,
|
|
319
460
|
},
|
|
320
461
|
],
|
|
462
|
+
structuredContent,
|
|
321
463
|
isError: true,
|
|
322
464
|
};
|
|
323
465
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzeCommitHandler.js","sourceRoot":"","sources":["../../src/handlers/analyzeCommitHandler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analyzeCommitHandler.js","sourceRoot":"","sources":["../../src/handlers/analyzeCommitHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
/**
|
|
3
3
|
* Register all tools with the MCP server
|
|
4
|
+
* @throws Error if tool registration fails
|
|
4
5
|
*/
|
|
5
6
|
export declare function registerTools(server: McpServer): void;
|
|
6
7
|
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -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;AAQpE
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/handlers/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQpE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuDrD"}
|
package/build/handlers/tools.js
CHANGED
|
@@ -1,29 +1,59 @@
|
|
|
1
1
|
import { GitService } from "../services/gitService.js";
|
|
2
2
|
import { BackendApiService } from "../services/backendApiService.js";
|
|
3
3
|
import { CommitReviewService } from "../services/commitReviewService.js";
|
|
4
|
-
import { AnalyzeCommitInputSchema } from "../schemas/toolSchemas.js";
|
|
4
|
+
import { AnalyzeCommitInputSchema, AnalyzeCommitOutputSchema } from "../schemas/toolSchemas.js";
|
|
5
5
|
import { createAnalyzeCommitHandler } from "./analyzeCommitHandler.js";
|
|
6
6
|
import { logger } from "../services/loggingService.js";
|
|
7
7
|
/**
|
|
8
8
|
* Register all tools with the MCP server
|
|
9
|
+
* @throws Error if tool registration fails
|
|
9
10
|
*/
|
|
10
11
|
export function registerTools(server) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
12
|
+
try {
|
|
13
|
+
const gitService = new GitService();
|
|
14
|
+
// Validate required environment variables
|
|
15
|
+
const backendUrl = process.env.BACKEND_API_URL;
|
|
16
|
+
logger.logInfo("Backend URL: " + backendUrl);
|
|
17
|
+
logger.logInfo("MCP API Key: " + process.env.MCP_API_KEY);
|
|
18
|
+
let backendApiService;
|
|
19
|
+
let commitReviewService;
|
|
20
|
+
try {
|
|
21
|
+
backendApiService = new BackendApiService(backendUrl, process.env.MCP_API_KEY);
|
|
22
|
+
commitReviewService = new CommitReviewService(backendApiService);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
26
|
+
logger.logError("Failed to create backend services", error instanceof Error ? error : new Error(errorMessage), {
|
|
27
|
+
errorType: "service_creation_failure",
|
|
28
|
+
});
|
|
29
|
+
throw new Error(`Failed to initialize backend services: ${errorMessage}`);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Tool: CodeSherlock Analyze
|
|
33
|
+
* Complete flow: Get Git data → Send to backend → Return results
|
|
34
|
+
* Analyzes both committed and uncommitted code changes for security, quality, and compliance issues
|
|
35
|
+
*/
|
|
36
|
+
try {
|
|
37
|
+
server.registerTool("codesherlock_analyze", {
|
|
38
|
+
title: "CodeSherlock Analyze",
|
|
39
|
+
description: "CodeSherlock is an AI- based code analysis tool that validates unstaged changes and commits directly inside IDEs and AI Agents. It helps developers catch security, quality, and design issues early by combining deep analysis with compliance-aware checks OWASP, CWE, SOC-2 at the moment code is written. CodeSherlock also performs other security vulnerability reviews along with Maintainability, Reliability and Scalability checks. Use CodeSherlock to review and validate code especially generated via AI.",
|
|
40
|
+
inputSchema: AnalyzeCommitInputSchema,
|
|
41
|
+
outputSchema: AnalyzeCommitOutputSchema,
|
|
42
|
+
}, createAnalyzeCommitHandler(gitService, commitReviewService, backendApiService));
|
|
43
|
+
logger.logInfo("Tool 'codesherlock_analyze' registered successfully");
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
47
|
+
logger.logError("Failed to register tool 'codesherlock_analyze'", error instanceof Error ? error : new Error(errorMessage), {
|
|
48
|
+
toolName: "codesherlock_analyze",
|
|
49
|
+
errorType: "tool_registration_failure",
|
|
50
|
+
});
|
|
51
|
+
throw new Error(`Failed to register tool 'codesherlock_analyze': ${errorMessage}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
// Re-throw to be handled by caller
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
28
58
|
}
|
|
29
59
|
//# sourceMappingURL=tools.js.map
|
|
@@ -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,MAAM,2BAA2B,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;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAEvD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC3C,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAEpC,0CAA0C;QAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QAC/C,MAAM,CAAC,OAAO,CAAC,eAAe,GAAG,UAAU,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAE1D,IAAI,iBAAoC,CAAC;QACzC,IAAI,mBAAwC,CAAC;QAE7C,IAAI,CAAC;YACD,iBAAiB,GAAG,IAAI,iBAAiB,CACrC,UAAiB,EACjB,OAAO,CAAC,GAAG,CAAC,WAAW,CAC1B,CAAC;YACF,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,CAAC,QAAQ,CAAC,mCAAmC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE;gBAC3G,SAAS,EAAE,0BAA0B;aACxC,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CAAC,0CAA0C,YAAY,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED;;;;WAIG;QACH,IAAI,CAAC;YACD,MAAM,CAAC,YAAY,CACf,sBAAsB,EACtB;gBACI,KAAK,EAAE,sBAAsB;gBAC7B,WAAW,EAAE,yfAAyf;gBACtgB,WAAW,EAAE,wBAAwB;gBACrC,YAAY,EAAE,yBAAyB;aAC1C,EACD,0BAA0B,CAAC,UAAU,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,CACjF,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,CAAC,QAAQ,CAAC,gDAAgD,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE;gBACxH,QAAQ,EAAE,sBAAsB;gBAChC,SAAS,EAAE,2BAA2B;aACzC,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CAAC,mDAAmD,YAAY,EAAE,CAAC,CAAC;QACvF,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,mCAAmC;QACnC,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// Suppress all console output immediately to prevent interference with MCP protocol
|
|
3
|
-
// MCP uses stdout/stderr for JSON-RPC communication, so we must not write anything else there
|
|
4
|
-
const noOp = () => { };
|
|
5
|
-
console.log = noOp;
|
|
6
|
-
console.error = noOp;
|
|
7
|
-
console.warn = noOp;
|
|
8
|
-
console.info = noOp;
|
|
9
|
-
console.debug = noOp;
|
|
10
|
-
console.trace = noOp;
|
|
11
2
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
12
3
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
13
4
|
import { registerTools } from "./handlers/tools.js";
|
|
@@ -23,34 +14,154 @@ const __dirname = dirname(__filename);
|
|
|
23
14
|
// Go up from src/ or build/ to project root
|
|
24
15
|
const projectRoot = resolve(__dirname, "..");
|
|
25
16
|
const envPath = join(projectRoot, ".env");
|
|
26
|
-
// Load environment variables with explicit path
|
|
17
|
+
// Load environment variables with explicit path
|
|
27
18
|
dotenv.config({ path: envPath });
|
|
28
19
|
/**
|
|
29
20
|
* CodeSherlock MCP Server
|
|
30
21
|
* A TypeScript-based Model Context Protocol server with modular architecture
|
|
31
22
|
*/
|
|
32
23
|
const appInsightsConnectionString = process.env.APPLICATIONINSIGHTS_CONNECTION_STRING;
|
|
33
|
-
// Initialize Application Insights
|
|
34
|
-
//
|
|
24
|
+
// Initialize Application Insights and setup console suppression
|
|
25
|
+
// This must complete before creating the server
|
|
35
26
|
async function initializeLogging() {
|
|
36
27
|
await logger.initialize(appInsightsConnectionString);
|
|
28
|
+
// Note: We don't suppress stdout/stderr streams as MCP SDK uses them for protocol communication
|
|
29
|
+
const noOp = () => { };
|
|
30
|
+
if (logger.isEnabled()) {
|
|
31
|
+
// Only suppress console if Application Insights is initializeds
|
|
32
|
+
console.log = noOp;
|
|
33
|
+
console.error = noOp;
|
|
34
|
+
console.warn = noOp;
|
|
35
|
+
console.info = noOp;
|
|
36
|
+
console.debug = noOp;
|
|
37
|
+
console.trace = noOp;
|
|
38
|
+
}
|
|
37
39
|
}
|
|
38
40
|
// Wait for logging initialization to complete
|
|
39
41
|
await initializeLogging();
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
logger.logInfo("
|
|
42
|
+
/**
|
|
43
|
+
* Setup global error handlers for unhandled exceptions and promise rejections
|
|
44
|
+
* These handlers ensure proper cleanup before the process exits
|
|
45
|
+
*/
|
|
46
|
+
async function setupGlobalErrorHandlers() {
|
|
47
|
+
// Handle unhandled exceptions
|
|
48
|
+
process.on("uncaughtException", async (error) => {
|
|
49
|
+
logger.logError("Uncaught exception - performing cleanup", error, {
|
|
50
|
+
errorType: "uncaught_exception",
|
|
51
|
+
});
|
|
52
|
+
// Clean up resources
|
|
53
|
+
try {
|
|
54
|
+
if (websocketConnectionManager.hasActiveConnections()) {
|
|
55
|
+
logger.logInfo("Closing WebSocket connections due to uncaught exception", {
|
|
56
|
+
connectionCount: String(websocketConnectionManager.getConnectionCount()),
|
|
57
|
+
});
|
|
58
|
+
await websocketConnectionManager.closeAllConnections();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (cleanupError) {
|
|
62
|
+
logger.logError("Error during cleanup in uncaughtException handler", cleanupError);
|
|
63
|
+
}
|
|
64
|
+
// Flush logs before exiting
|
|
65
|
+
await logger.flush();
|
|
66
|
+
// Write user-friendly error message to stderr
|
|
67
|
+
const userFriendlyMessage = `\n❌ Unhandled Exception\n\n` +
|
|
68
|
+
`An unexpected error occurred. The server will shut down.\n` +
|
|
69
|
+
`Please check the logs for details or contact support@codesherlock.ai for assistance.\n\n`;
|
|
70
|
+
process.stderr.write(userFriendlyMessage);
|
|
71
|
+
// Exit with error code
|
|
72
|
+
process.exit(1);
|
|
73
|
+
});
|
|
74
|
+
// Handle unhandled promise rejections
|
|
75
|
+
process.on("unhandledRejection", async (reason, promise) => {
|
|
76
|
+
const error = reason instanceof Error ? reason : new Error(String(reason));
|
|
77
|
+
logger.logError("Unhandled promise rejection - performing cleanup", error, {
|
|
78
|
+
errorType: "unhandled_rejection",
|
|
79
|
+
promiseString: String(promise),
|
|
80
|
+
});
|
|
81
|
+
// Clean up resources
|
|
82
|
+
try {
|
|
83
|
+
if (websocketConnectionManager.hasActiveConnections()) {
|
|
84
|
+
logger.logInfo("Closing WebSocket connections due to unhandled rejection", {
|
|
85
|
+
connectionCount: String(websocketConnectionManager.getConnectionCount()),
|
|
86
|
+
});
|
|
87
|
+
await websocketConnectionManager.closeAllConnections();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch (cleanupError) {
|
|
91
|
+
logger.logError("Error during cleanup in unhandledRejection handler", cleanupError);
|
|
92
|
+
}
|
|
93
|
+
// Flush logs before exiting
|
|
94
|
+
await logger.flush();
|
|
95
|
+
// Write user-friendly error message to stderr
|
|
96
|
+
const userFriendlyMessage = `\n❌ Unhandled Promise Rejection\n\n` +
|
|
97
|
+
`An unexpected error occurred. The server will shut down.\n` +
|
|
98
|
+
`Please check the logs for details or contact support@codesherlock.ai for assistance.\n\n`;
|
|
99
|
+
process.stderr.write(userFriendlyMessage);
|
|
100
|
+
// Exit with error code
|
|
101
|
+
process.exit(1);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
// Setup global error handlers before creating server
|
|
105
|
+
await setupGlobalErrorHandlers();
|
|
106
|
+
// Create MCP server instance with error handling
|
|
107
|
+
let server;
|
|
108
|
+
try {
|
|
109
|
+
server = new McpServer({
|
|
110
|
+
name: "codesherlock-beta-mcp-server",
|
|
111
|
+
version: "0.0.1",
|
|
112
|
+
});
|
|
113
|
+
logger.logInfo("MCP Server instance created", {
|
|
114
|
+
serverName: "codesherlock-beta-mcp-server",
|
|
115
|
+
version: "0.0.1",
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
120
|
+
const errorStack = error instanceof Error ? error.stack : undefined;
|
|
121
|
+
// Log the error with full context
|
|
122
|
+
logger.logError("Failed to create MCP server instance", error instanceof Error ? error : new Error(errorMessage), {
|
|
123
|
+
serverName: "codesherlock-beta-mcp-server",
|
|
124
|
+
version: "0.0.1",
|
|
125
|
+
errorType: "server_creation_failure",
|
|
126
|
+
});
|
|
127
|
+
// Write user-friendly error message to stderr (stdout is used for MCP protocol)
|
|
128
|
+
// This error appears in: terminal/console, IDE output panel, MCP client logs
|
|
129
|
+
const userFriendlyMessage = `\n❌ MCP Server Creation Failed\n\n` +
|
|
130
|
+
`The MCP server failed to initialize. This prevents the server from starting.\n\n` +
|
|
131
|
+
`Please ensure your MCP JSON configuration is correctly set up.\n` +
|
|
132
|
+
`You can try again or contact support@codesherlock.ai for assistance.\n\n`;
|
|
133
|
+
process.stderr.write(userFriendlyMessage);
|
|
134
|
+
// Flush logs before exiting
|
|
135
|
+
await logger.flush();
|
|
136
|
+
// Exit with error code
|
|
137
|
+
process.exit(1);
|
|
138
|
+
}
|
|
139
|
+
// Register all handlers with error handling
|
|
140
|
+
try {
|
|
141
|
+
registerTools(server);
|
|
142
|
+
// registerResources(server);
|
|
143
|
+
// registerEventHandlers(server);
|
|
144
|
+
logger.logInfo("All handlers registered successfully");
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
148
|
+
const errorStack = error instanceof Error ? error.stack : undefined;
|
|
149
|
+
// Log the error with full context
|
|
150
|
+
logger.logError("Failed to register tools", error instanceof Error ? error : new Error(errorMessage), {
|
|
151
|
+
errorType: "tool_registration_failure",
|
|
152
|
+
});
|
|
153
|
+
// Write user-friendly error message to stderr (stdout is used for MCP protocol)
|
|
154
|
+
// This error appears in: terminal/console, IDE output panel, MCP client logs
|
|
155
|
+
const userFriendlyMessage = `\n❌ Tool Registration Failed\n\n` +
|
|
156
|
+
`The MCP server failed to register tools. This prevents the server from starting.\n\n` +
|
|
157
|
+
`Please ensure your MCP JSON configuration is correctly set up.\n` +
|
|
158
|
+
`You can try again or contact support@codesherlock.ai for assistance.\n\n`;
|
|
159
|
+
process.stderr.write(userFriendlyMessage);
|
|
160
|
+
// Flush logs before exiting
|
|
161
|
+
await logger.flush();
|
|
162
|
+
// Exit with error code - server cannot start without tools
|
|
163
|
+
process.exit(1);
|
|
164
|
+
}
|
|
54
165
|
/**
|
|
55
166
|
* Handle MCP client disconnection by closing all WebSocket connections
|
|
56
167
|
*/
|
|
@@ -71,11 +182,33 @@ async function handleClientDisconnection(reason) {
|
|
|
71
182
|
*/
|
|
72
183
|
async function main() {
|
|
73
184
|
const transport = new StdioServerTransport();
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
185
|
+
try {
|
|
186
|
+
await server.connect(transport);
|
|
187
|
+
logger.logInfo("Server started successfully", {
|
|
188
|
+
transport: "stdio",
|
|
189
|
+
timestamp: new Date().toISOString(),
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
194
|
+
const errorStack = error instanceof Error ? error.stack : undefined;
|
|
195
|
+
// Log the error with full context
|
|
196
|
+
logger.logError("Failed to connect transport", error instanceof Error ? error : new Error(errorMessage), {
|
|
197
|
+
transport: "stdio",
|
|
198
|
+
errorType: "transport_connection_failure",
|
|
199
|
+
});
|
|
200
|
+
// Write user-friendly error message to stderr (stdout is used for MCP protocol)
|
|
201
|
+
// This error appears in: terminal/console, IDE output panel, MCP client logs
|
|
202
|
+
const userFriendlyMessage = `\n❌ Transport Connection Failed\n\n` +
|
|
203
|
+
`The MCP server failed to connect to the transport layer. This prevents the server from starting.\n\n` +
|
|
204
|
+
`Please ensure your MCP JSON configuration is correctly set up.\n` +
|
|
205
|
+
`You can try again or contact support@codesherlock.ai for assistance.\n\n`;
|
|
206
|
+
process.stderr.write(userFriendlyMessage);
|
|
207
|
+
// Flush logs before exiting
|
|
208
|
+
await logger.flush();
|
|
209
|
+
// Exit with error code - server cannot start without transport connection
|
|
210
|
+
process.exit(1);
|
|
211
|
+
}
|
|
79
212
|
// Track if we've already handled disconnection to avoid duplicate cleanup
|
|
80
213
|
let disconnectionHandled = false;
|
|
81
214
|
const handleDisconnectionOnce = async (reason) => {
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loggingService.d.ts","sourceRoot":"","sources":["../../src/services/loggingService.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO;IAEP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,cAAc;IAOpC;;OAEG;IACG,UAAU,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"loggingService.d.ts","sourceRoot":"","sources":["../../src/services/loggingService.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO;IAEP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,cAAc;IAOpC;;OAEG;IACG,UAAU,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C1D;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI;IActE;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI;IAczE;;OAEG;IACH,QAAQ,CACJ,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,KAAK,EACb,UAAU,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GACvC,IAAI;IA6BP;;OAEG;IACH,QAAQ,CACJ,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EACtC,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GACzC,IAAI;IAUP;;OAEG;IACH,WAAW,CACP,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GACvC,IAAI;IAUP;;OAEG;IACH,eAAe,CACX,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,cAAc,CAAC,EAAE,MAAM,GACxB,IAAI;IAYP;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B;;OAEG;IACH,SAAS,IAAI,OAAO;CAGvB;AAGD,eAAO,MAAM,MAAM,gBAA+B,CAAC"}
|
|
@@ -21,11 +21,14 @@ export class LoggingService {
|
|
|
21
21
|
* Initialize Application Insights with connection string
|
|
22
22
|
*/
|
|
23
23
|
async initialize(connectionString) {
|
|
24
|
+
const debugLog = (message) => {
|
|
25
|
+
process.stderr.write(`[LoggingService] ${message}\n`);
|
|
26
|
+
};
|
|
24
27
|
if (this.isInitialized) {
|
|
25
28
|
return;
|
|
26
29
|
}
|
|
27
30
|
if (!connectionString) {
|
|
28
|
-
|
|
31
|
+
debugLog("Application Insights connection string missing; logging disabled.");
|
|
29
32
|
this.isInitialized = false;
|
|
30
33
|
this.client = null;
|
|
31
34
|
return;
|
|
@@ -43,10 +46,15 @@ export class LoggingService {
|
|
|
43
46
|
appInsights.start();
|
|
44
47
|
this.client = client;
|
|
45
48
|
this.isInitialized = true;
|
|
46
|
-
|
|
49
|
+
debugLog("Application Insights initialized.");
|
|
47
50
|
}
|
|
48
51
|
catch (error) {
|
|
49
|
-
|
|
52
|
+
if (error instanceof Error) {
|
|
53
|
+
debugLog(`Application Insights init error: ${error.message}`);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
debugLog(`Application Insights init error: ${String(error)}`);
|
|
57
|
+
}
|
|
50
58
|
this.isInitialized = false;
|
|
51
59
|
this.client = null;
|
|
52
60
|
}
|
|
@@ -62,7 +70,11 @@ export class LoggingService {
|
|
|
62
70
|
properties,
|
|
63
71
|
});
|
|
64
72
|
}
|
|
65
|
-
|
|
73
|
+
else {
|
|
74
|
+
// Fallback to stderr if Application Insights is not available (MCP uses stdout for protocol)
|
|
75
|
+
const propsStr = properties ? ` ${JSON.stringify(properties)}` : '';
|
|
76
|
+
process.stderr.write(`[INFO] ${message}${propsStr}\n`);
|
|
77
|
+
}
|
|
66
78
|
}
|
|
67
79
|
/**
|
|
68
80
|
* Log a warning message
|
|
@@ -75,7 +87,11 @@ export class LoggingService {
|
|
|
75
87
|
properties,
|
|
76
88
|
});
|
|
77
89
|
}
|
|
78
|
-
|
|
90
|
+
else {
|
|
91
|
+
// Fallback to stderr if Application Insights is not available (MCP uses stdout for protocol)
|
|
92
|
+
const propsStr = properties ? ` ${JSON.stringify(properties)}` : '';
|
|
93
|
+
process.stderr.write(`[WARN] ${message}${propsStr}\n`);
|
|
94
|
+
}
|
|
79
95
|
}
|
|
80
96
|
/**
|
|
81
97
|
* Log an error message
|
|
@@ -96,7 +112,20 @@ export class LoggingService {
|
|
|
96
112
|
});
|
|
97
113
|
}
|
|
98
114
|
}
|
|
99
|
-
|
|
115
|
+
else {
|
|
116
|
+
// Fallback to stderr if Application Insights is not available (MCP uses stdout for protocol)
|
|
117
|
+
const propsStr = properties ? ` ${JSON.stringify(properties)}` : '';
|
|
118
|
+
if (error) {
|
|
119
|
+
process.stderr.write(`[ERROR] ${message}${propsStr}\n`);
|
|
120
|
+
process.stderr.write(`[ERROR] ${error.message}\n`);
|
|
121
|
+
if (error.stack) {
|
|
122
|
+
process.stderr.write(`[ERROR] Stack: ${error.stack}\n`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
process.stderr.write(`[ERROR] ${message}${propsStr}\n`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
100
129
|
}
|
|
101
130
|
/**
|
|
102
131
|
* Log a custom event
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loggingService.js","sourceRoot":"","sources":["../../src/services/loggingService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,qBAAqB,CAAC;AAEnD;;;GAGG;AACH,MAAM,OAAO,cAAc;IACf,MAAM,CAAC,QAAQ,CAAiB;IAChC,MAAM,GAAuC,IAAI,CAAC;IAClD,aAAa,GAAG,KAAK,CAAC;IAE9B,gBAAwB,CAAC;IAEzB;;OAEG;IACH,MAAM,CAAC,WAAW;QACd,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC3B,cAAc,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QACnD,CAAC;QACD,OAAO,cAAc,CAAC,QAAQ,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,gBAAyB;QACtC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,
|
|
1
|
+
{"version":3,"file":"loggingService.js","sourceRoot":"","sources":["../../src/services/loggingService.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,6 +69,7 @@ describe("createAnalyzeCommitHandler", () => {
|
|
|
69
69
|
});
|
|
70
70
|
expect(formatMultipleFileAnalysisToMarkdown).toHaveBeenCalledWith(analysisResult.results);
|
|
71
71
|
// Note: mkdirSync/writeFileSync are commented out in the handler, so we don't test them
|
|
72
|
+
expect(response.structuredContent).toEqual(analysisResult);
|
|
72
73
|
expect(response.content[0].text).toBe("markdown-content");
|
|
73
74
|
});
|
|
74
75
|
it("returns not found error when directory is missing", async () => {
|
|
@@ -76,7 +77,8 @@ describe("createAnalyzeCommitHandler", () => {
|
|
|
76
77
|
const handler = createAnalyzeCommitHandler(gitService, commitReviewService, backendApiService);
|
|
77
78
|
const response = await handler(handlerArgs);
|
|
78
79
|
expect(response.isError).toBe(true);
|
|
79
|
-
expect(response.
|
|
80
|
+
expect(response.structuredContent.success).toBe(false);
|
|
81
|
+
expect(response.structuredContent.statusCode).toBe(404);
|
|
80
82
|
});
|
|
81
83
|
it("returns validation error when file changes are invalid", async () => {
|
|
82
84
|
fs.existsSync.mockReturnValue(true);
|
|
@@ -84,7 +86,7 @@ describe("createAnalyzeCommitHandler", () => {
|
|
|
84
86
|
const handler = createAnalyzeCommitHandler(gitService, commitReviewService, backendApiService);
|
|
85
87
|
const response = await handler(handlerArgs);
|
|
86
88
|
expect(response.isError).toBe(true);
|
|
87
|
-
expect(response.
|
|
89
|
+
expect(response.structuredContent.statusCode).toBe(422);
|
|
88
90
|
expect(commitReviewService.submitAndWaitForResults).not.toHaveBeenCalled();
|
|
89
91
|
});
|
|
90
92
|
it("propagates backend error result when commit review fails", async () => {
|
|
@@ -101,8 +103,8 @@ describe("createAnalyzeCommitHandler", () => {
|
|
|
101
103
|
const handler = createAnalyzeCommitHandler(gitService, commitReviewService, backendApiService);
|
|
102
104
|
const response = await handler(handlerArgs);
|
|
103
105
|
expect(response.isError).toBe(true);
|
|
104
|
-
expect(response.
|
|
105
|
-
expect(response.
|
|
106
|
+
expect(response.structuredContent.success).toBe(false);
|
|
107
|
+
expect(response.structuredContent.error).toBe("Backend failed");
|
|
106
108
|
});
|
|
107
109
|
});
|
|
108
110
|
//# sourceMappingURL=analyzeCommitHandler.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzeCommitHandler.test.js","sourceRoot":"","sources":["../../src/tests/analyzeCommitHandler.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAIjF,OAAO,EAAE,oCAAoC,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,gCAAgC;AAChC,IAAI,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9C,MAAM,EAAE;QACJ,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;QAClB,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;QACnB,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;QACrB,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;KACtB;CACJ,CAAC,CAAC,CAAC;AAEJ,IAAI,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9C,oCAAoC,EAAE,IAAI,CAAC,EAAE,EAAE;CAClD,CAAC,CAAC,CAAC;AAEJ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACnB,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;IACrB,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE;IACpB,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;CAC3B,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACxC,IAAI,UAAmC,CAAC;IACxC,IAAI,mBAAqD,CAAC;IAC1D,IAAI,iBAAiD,CAAC;IACtD,MAAM,WAAW,GAAG;QAChB,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,yCAAyC;QACpD,MAAM,EAAE,OAAc;KACzB,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACZ,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,UAAU,GAAG;YACT,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE;YAC5B,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE;SACI,CAAC;QAExC,mBAAmB,GAAG;YAClB,uBAAuB,EAAE,IAAI,CAAC,EAAE,EAAE;SACU,CAAC;QAEjD,iBAAiB,GAAG;YAChB,sBAAsB,EAAE,IAAI,CAAC,EAAE,EAAE;SACS,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAC/E,EAAE,CAAC,UAAwB,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACpG,UAAU,CAAC,iBAAiB,CAAC,iBAAiB,CAAC;YAC3C,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;SAClF,CAAC,CAAC;QACH,UAAU,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC5D,iBAAiB,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAS,CAAC,CAAC;QACxG,MAAM,cAAc,GAAG;YACnB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,YAAY;YACxB,OAAO,EAAE;gBACL,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE;aACtF;SACJ,CAAC;QACF,mBAAmB,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,cAAqB,CAAC,CAAC;QACpF,oCAAkD,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAExF,MAAM,OAAO,GAAG,0BAA0B,CAAC,UAAU,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;QAC/F,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;QAE5C,MAAM,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC,oBAAoB,CAAC;YACrE,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;YAC/B,iBAAiB,EAAE,QAAQ;SAC9B,CAAC,CAAC;QACH,MAAM,CAAC,oCAAoC,CAAC,CAAC,oBAAoB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1F,wFAAwF;QACxF,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QAC9D,EAAE,CAAC,UAAwB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,0BAA0B,CAAC,UAAU,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;QAE/F,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;QAE5C,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"analyzeCommitHandler.test.js","sourceRoot":"","sources":["../../src/tests/analyzeCommitHandler.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { registerTools } from "../handlers/tools.js";
|
|
2
|
-
import { AnalyzeCommitInputSchema } from "../schemas/toolSchemas.js";
|
|
2
|
+
import { AnalyzeCommitInputSchema, AnalyzeCommitOutputSchema } from "../schemas/toolSchemas.js";
|
|
3
3
|
// Mock service classes and handler factory
|
|
4
4
|
const mockGitServiceInstance = { type: "git" };
|
|
5
5
|
const mockBackendApiServiceInstance = { type: "backend" };
|
|
@@ -51,10 +51,8 @@ describe("registerTools", () => {
|
|
|
51
51
|
expect(server.registerTool).toHaveBeenCalledWith("codesherlock_analyze", expect.objectContaining({
|
|
52
52
|
title: "CodeSherlock Analyze",
|
|
53
53
|
inputSchema: AnalyzeCommitInputSchema,
|
|
54
|
+
outputSchema: AnalyzeCommitOutputSchema,
|
|
54
55
|
}), mockHandler);
|
|
55
|
-
// Verify outputSchema is not included
|
|
56
|
-
const callArgs = server.registerTool.mock.calls[0];
|
|
57
|
-
expect(callArgs[1]).not.toHaveProperty("outputSchema");
|
|
58
56
|
});
|
|
59
57
|
});
|
|
60
58
|
//# sourceMappingURL=tools.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.test.js","sourceRoot":"","sources":["../../src/tests/tools.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.test.js","sourceRoot":"","sources":["../../src/tests/tools.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,11 +48,11 @@ export function extractErrorDetails(error, wsStatusCode, wsErrorMessage) {
|
|
|
48
48
|
errorType = "authentication_error";
|
|
49
49
|
userMessage = "API key missing. Authentication is required.\n\n" +
|
|
50
50
|
"To get an API key:\n" +
|
|
51
|
-
"1. Visit https://
|
|
52
|
-
"2. Navigate to the MCP API Keys page: https://
|
|
51
|
+
"1. Visit https://test.codesherlock.ai and sign up or log in.\n" +
|
|
52
|
+
"2. Navigate to the MCP API Keys page: https://test.codesherlock.ai/codesherlock-mcp-server/mcp/api/key.\n" +
|
|
53
53
|
"3. Generate or copy your API key.\n\n" +
|
|
54
54
|
"Usage instructions:\n" +
|
|
55
|
-
"See the MCP integration guide at https://
|
|
55
|
+
"See the MCP integration guide at https://docs.codesherlock.ai/codesherlock-mcp-server/mcp/setup/guide.\n\n" +
|
|
56
56
|
"If you followed these steps and still face issues, contact support at support@codesherlock.ai.";
|
|
57
57
|
retryable = false;
|
|
58
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorExtractor.js","sourceRoot":"","sources":["../../src/utils/errorExtractor.ts"],"names":[],"mappings":"AAyBA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,mBAAmB,CAC/B,KAAsB,EACtB,YAAqB,EACrB,cAAuB;IAEvB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5E,MAAM,gBAAgB,GAAG,YAAY,CAAC;IAEtC,wDAAwD;IACxD,IAAI,UAAU,GAAuB,YAAY,CAAC;IAClD,IAAI,WAAW,GAAuB,cAAc,CAAC;IAErD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,IAAI,YAAY,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,UAAU,GAAI,KAAa,CAAC,UAAU,CAAC;QAC3C,CAAC;QACD,IAAI,aAAa,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,WAAW,GAAI,KAAa,CAAC,WAAW,CAAC;QAC7C,CAAC;IACL,CAAC;IAED,yEAAyE;IACzE,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC3D,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,CAAC;IAED,2DAA2D;IAC3D,MAAM,qBAAqB,GAAG,WAAW,IAAI,YAAY,CAAC;IAE1D,gEAAgE;IAChE,IAAI,SAAS,GAAc,gBAAgB,CAAC;IAC5C,IAAI,WAAW,GAAG,qBAAqB,CAAC;IACxC,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,8BAA8B;IAC9B,IAAI,UAAU,KAAK,GAAG,IAAI,qBAAqB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;QACnL,SAAS,GAAG,sBAAsB,CAAC;QACnC,WAAW,GAAG,kDAAkD;YAC5D,sBAAsB;YACtB,
|
|
1
|
+
{"version":3,"file":"errorExtractor.js","sourceRoot":"","sources":["../../src/utils/errorExtractor.ts"],"names":[],"mappings":"AAyBA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,mBAAmB,CAC/B,KAAsB,EACtB,YAAqB,EACrB,cAAuB;IAEvB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5E,MAAM,gBAAgB,GAAG,YAAY,CAAC;IAEtC,wDAAwD;IACxD,IAAI,UAAU,GAAuB,YAAY,CAAC;IAClD,IAAI,WAAW,GAAuB,cAAc,CAAC;IAErD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,IAAI,YAAY,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,UAAU,GAAI,KAAa,CAAC,UAAU,CAAC;QAC3C,CAAC;QACD,IAAI,aAAa,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,WAAW,GAAI,KAAa,CAAC,WAAW,CAAC;QAC7C,CAAC;IACL,CAAC;IAED,yEAAyE;IACzE,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC3D,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,CAAC;IAED,2DAA2D;IAC3D,MAAM,qBAAqB,GAAG,WAAW,IAAI,YAAY,CAAC;IAE1D,gEAAgE;IAChE,IAAI,SAAS,GAAc,gBAAgB,CAAC;IAC5C,IAAI,WAAW,GAAG,qBAAqB,CAAC;IACxC,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,8BAA8B;IAC9B,IAAI,UAAU,KAAK,GAAG,IAAI,qBAAqB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;QACnL,SAAS,GAAG,sBAAsB,CAAC;QACnC,WAAW,GAAG,kDAAkD;YAC5D,sBAAsB;YACtB,gEAAgE;YAChE,2GAA2G;YAC3G,uCAAuC;YACvC,uBAAuB;YACvB,4GAA4G;YAC5G,gGAAgG,CAAC;QACrG,SAAS,GAAG,KAAK,CAAC;IACtB,CAAC;IACD,yBAAyB;SACpB,IAAI,UAAU,KAAK,GAAG,IAAI,qBAAqB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;QACvL,SAAS,GAAG,iBAAiB,CAAC;QAC9B,IAAI,qBAAqB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACnD,WAAW,GAAG,oDAAoD,CAAC;QACvE,CAAC;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EAAE,CAAC;YACnI,WAAW,GAAG,4FAA4F,CAAC;QAC/G,CAAC;aAAM,CAAC;YACJ,WAAW,GAAG,qBAAqB,CAAC;QACxC,CAAC;QACD,SAAS,GAAG,KAAK,CAAC;IACtB,CAAC;IACD,oEAAoE;SAC/D,IAAI,UAAU,KAAK,GAAG,IAAI,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACtN,SAAS,GAAG,kBAAkB,CAAC;QAE/B,iEAAiE;QACjE,IAAI,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC1G,WAAW,GAAG,2EAA2E,CAAC;QAC9F,CAAC;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACtG,WAAW,GAAG,iEAAiE,CAAC;QACpF,CAAC;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACpH,WAAW,GAAG,gFAAgF,CAAC;QACnG,CAAC;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACpH,WAAW,GAAG,iIAAiI,CAAC;QACpJ,CAAC;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,2BAA2B,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC9H,WAAW,GAAG,8GAA8G,CAAC;QACjI,CAAC;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,8BAA8B,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACjI,WAAW,GAAG,2MAA2M,CAAC;QAC9N,CAAC;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,iCAAiC,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EAAE,CAAC;YAClJ,WAAW,GAAG,gMAAgM,CAAC;QACnN,CAAC;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAC/G,WAAW,GAAG,qBAAqB,CAAC,CAAC,6CAA6C;QACtF,CAAC;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5G,WAAW,GAAG,2FAA2F,CAAC;QAC9G,CAAC;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,6BAA6B,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAAE,CAAC;YAC7I,WAAW,GAAG,sIAAsI,CAAC;QACzJ,CAAC;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,+BAA+B,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,qCAAqC,CAAC,EAAE,CAAC;YAClJ,WAAW,GAAG,oHAAoH,CAAC;QACvI,CAAC;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,CAAC;YAClI,WAAW,GAAG,6HAA6H,CAAC;QAChJ,CAAC;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YACpH,WAAW,GAAG,sHAAsH,CAAC;QACzI,CAAC;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAC3G,WAAW,GAAG,2GAA2G,CAAC;QAC9H,CAAC;aAAM,CAAC;YACJ,+DAA+D;YAC/D,WAAW,GAAG,qBAAqB,CAAC;QACxC,CAAC;QACD,SAAS,GAAG,KAAK,CAAC;IACtB,CAAC;IACD,0BAA0B;SACrB,IAAI,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClL,SAAS,GAAG,WAAW,CAAC;QACxB,WAAW,GAAG,cAAc,qBAAqB,EAAE,CAAC;QACpD,SAAS,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,mBAAmB;SACd,IAAI,qBAAqB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACzM,SAAS,GAAG,iBAAiB,CAAC;QAC9B,IAAI,qBAAqB,CAAC,QAAQ,CAAC,gCAAgC,CAAC,EAAE,CAAC;YACnE,WAAW,GAAG,6DAA6D,CAAC;QAChF,CAAC;aAAM,CAAC;YACJ,WAAW,GAAG,+CAA+C,CAAC;QAClE,CAAC;QACD,SAAS,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,+BAA+B;SAC1B,IAAI,UAAU,KAAK,GAAG,IAAI,qBAAqB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC5S,SAAS,GAAG,gBAAgB,CAAC;QAC7B,IAAI,qBAAqB,CAAC,QAAQ,CAAC,2CAA2C,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,2CAA2C,CAAC,EAAE,CAAC;YAC7J,WAAW,GAAG,wFAAwF,CAAC;QAC3G,CAAC;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,2CAA2C,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAAE,CAAC;YAC3J,WAAW,GAAG,oGAAoG,CAAC;QACvH,CAAC;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,qCAAqC,CAAC,EAAE,CAAC;YAC/E,WAAW,GAAG,6FAA6F,CAAC;QAChH,CAAC;aAAM,CAAC;YACJ,WAAW,GAAG,+FAA+F,CAAC;QAClH,CAAC;QACD,SAAS,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,qBAAqB;SAChB,IAAI,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3N,SAAS,GAAG,mBAAmB,CAAC;QAChC,WAAW,GAAG,qBAAqB,CAAC,CAAC,mDAAmD;QACxF,SAAS,GAAG,KAAK,CAAC;IACtB,CAAC;IACD,0BAA0B;SACrB,IAAI,UAAU,IAAI,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;QAC3D,SAAS,GAAG,WAAW,CAAC;QACxB,WAAW,GAAG,qBAAqB,IAAI,iBAAiB,UAAU,6CAA6C,CAAC;QAChH,SAAS,GAAG,KAAK,CAAC;IACtB,CAAC;IACD,0BAA0B;SACrB,IAAI,UAAU,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACvC,SAAS,GAAG,WAAW,CAAC;QACxB,WAAW,GAAG,mEAAmE,CAAC;QAClF,SAAS,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,OAAO;QACH,UAAU;QACV,SAAS;QACT,WAAW;QACX,gBAAgB;QAChB,SAAS;KACZ,CAAC;AACN,CAAC"}
|