@codesherlock/codesherlock-alpha-mcp-server 0.0.27 → 0.1.3

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.
Files changed (87) hide show
  1. package/.env +0 -1
  2. package/README.md +331 -56
  3. package/build/index.js +87 -81
  4. package/package.json +8 -4
  5. package/build/handlers/analyzeCommitHandler.d.ts +0 -36
  6. package/build/handlers/analyzeCommitHandler.d.ts.map +0 -1
  7. package/build/handlers/analyzeCommitHandler.js +0 -397
  8. package/build/handlers/analyzeCommitHandler.js.map +0 -1
  9. package/build/handlers/events.d.ts +0 -7
  10. package/build/handlers/events.d.ts.map +0 -1
  11. package/build/handlers/events.js +0 -15
  12. package/build/handlers/events.js.map +0 -1
  13. package/build/handlers/resources.d.ts +0 -10
  14. package/build/handlers/resources.d.ts.map +0 -1
  15. package/build/handlers/resources.js +0 -14
  16. package/build/handlers/resources.js.map +0 -1
  17. package/build/handlers/tools.d.ts +0 -6
  18. package/build/handlers/tools.d.ts.map +0 -1
  19. package/build/handlers/tools.js +0 -29
  20. package/build/handlers/tools.js.map +0 -1
  21. package/build/index.d.ts +0 -3
  22. package/build/index.d.ts.map +0 -1
  23. package/build/index.js.map +0 -1
  24. package/build/schemas/toolSchemas.d.ts +0 -50
  25. package/build/schemas/toolSchemas.d.ts.map +0 -1
  26. package/build/schemas/toolSchemas.js +0 -48
  27. package/build/schemas/toolSchemas.js.map +0 -1
  28. package/build/services/backendApiService.d.ts +0 -81
  29. package/build/services/backendApiService.d.ts.map +0 -1
  30. package/build/services/backendApiService.js +0 -265
  31. package/build/services/backendApiService.js.map +0 -1
  32. package/build/services/commitReviewService.d.ts +0 -71
  33. package/build/services/commitReviewService.d.ts.map +0 -1
  34. package/build/services/commitReviewService.js +0 -506
  35. package/build/services/commitReviewService.js.map +0 -1
  36. package/build/services/gitService.d.ts +0 -159
  37. package/build/services/gitService.d.ts.map +0 -1
  38. package/build/services/gitService.js +0 -778
  39. package/build/services/gitService.js.map +0 -1
  40. package/build/services/loggingService.d.ts +0 -64
  41. package/build/services/loggingService.d.ts.map +0 -1
  42. package/build/services/loggingService.js +0 -185
  43. package/build/services/loggingService.js.map +0 -1
  44. package/build/services/zipService.d.ts +0 -9
  45. package/build/services/zipService.d.ts.map +0 -1
  46. package/build/services/zipService.js +0 -47
  47. package/build/services/zipService.js.map +0 -1
  48. package/build/tests/analysisFormatter.test.d.ts +0 -2
  49. package/build/tests/analysisFormatter.test.d.ts.map +0 -1
  50. package/build/tests/analysisFormatter.test.js +0 -92
  51. package/build/tests/analysisFormatter.test.js.map +0 -1
  52. package/build/tests/analyzeCommitHandler.test.d.ts +0 -2
  53. package/build/tests/analyzeCommitHandler.test.d.ts.map +0 -1
  54. package/build/tests/analyzeCommitHandler.test.js +0 -111
  55. package/build/tests/analyzeCommitHandler.test.js.map +0 -1
  56. package/build/tests/backendApiService.test.d.ts +0 -2
  57. package/build/tests/backendApiService.test.d.ts.map +0 -1
  58. package/build/tests/backendApiService.test.js +0 -109
  59. package/build/tests/backendApiService.test.js.map +0 -1
  60. package/build/tests/commitReviewService.test.d.ts +0 -2
  61. package/build/tests/commitReviewService.test.d.ts.map +0 -1
  62. package/build/tests/commitReviewService.test.js +0 -120
  63. package/build/tests/commitReviewService.test.js.map +0 -1
  64. package/build/tests/errorExtractor.test.d.ts +0 -2
  65. package/build/tests/errorExtractor.test.d.ts.map +0 -1
  66. package/build/tests/errorExtractor.test.js +0 -61
  67. package/build/tests/errorExtractor.test.js.map +0 -1
  68. package/build/tests/loggingService.test.d.ts +0 -2
  69. package/build/tests/loggingService.test.d.ts.map +0 -1
  70. package/build/tests/loggingService.test.js +0 -153
  71. package/build/tests/loggingService.test.js.map +0 -1
  72. package/build/tests/setup.test.d.ts +0 -2
  73. package/build/tests/setup.test.d.ts.map +0 -1
  74. package/build/tests/setup.test.js +0 -7
  75. package/build/tests/setup.test.js.map +0 -1
  76. package/build/tests/tools.test.d.ts +0 -2
  77. package/build/tests/tools.test.d.ts.map +0 -1
  78. package/build/tests/tools.test.js +0 -58
  79. package/build/tests/tools.test.js.map +0 -1
  80. package/build/utils/analysisFormatter.d.ts +0 -40
  81. package/build/utils/analysisFormatter.d.ts.map +0 -1
  82. package/build/utils/analysisFormatter.js +0 -97
  83. package/build/utils/analysisFormatter.js.map +0 -1
  84. package/build/utils/errorExtractor.d.ts +0 -36
  85. package/build/utils/errorExtractor.d.ts.map +0 -1
  86. package/build/utils/errorExtractor.js +0 -178
  87. package/build/utils/errorExtractor.js.map +0 -1
@@ -1,397 +0,0 @@
1
- import { logger } from "../services/loggingService.js";
2
- import { formatMultipleFileAnalysisToMarkdown } from "../utils/analysisFormatter.js";
3
- import { extractErrorDetails } from "../utils/errorExtractor.js";
4
- import fs from "fs";
5
- import path from "path";
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
- }
27
- export const createAnalyzeCommitHandler = (gitService, commitReviewService, backendApiService) => {
28
- return async ({ uncommitted, directory, factor }) => {
29
- try {
30
- // Normalize factor: map "power" to "power_analysis" for backward compatibility
31
- const normalizedFactor = factor === "power" ? "power_analysis" : factor;
32
- logger.logInfo("=== TOOL INVOKED: analyze_commit ===", {
33
- uncommitted: String(uncommitted),
34
- directory,
35
- originalFactor: factor,
36
- normalizedFactor,
37
- });
38
- // Validate directory exists
39
- if (!fs.existsSync(directory)) {
40
- const errorDetails = extractErrorDetails(new Error("Directory does not exist"));
41
- const structuredContent = {
42
- success: false,
43
- error: errorDetails.userMessage,
44
- errorType: errorDetails.errorType,
45
- statusCode: 404,
46
- errorDetails: {
47
- userMessage: errorDetails.userMessage,
48
- technicalDetails: `Directory not found: ${directory}`,
49
- retryable: false,
50
- },
51
- };
52
- logStructuredContentDebug("analyze_commit: returning error (directory does not exist)", structuredContent);
53
- return {
54
- content: [
55
- {
56
- type: "text",
57
- text: `Error: ${errorDetails.userMessage}`,
58
- },
59
- ],
60
- structuredContent,
61
- isError: true,
62
- };
63
- }
64
- // Step 1: Get file changes from Git
65
- logger.logInfo("Fetching file changes", {
66
- uncommitted: String(uncommitted),
67
- directory,
68
- factor
69
- });
70
- let fileChanges;
71
- try {
72
- logger.logInfo("Calling gitService.analyzeGitChanges", {
73
- uncommitted: String(uncommitted),
74
- directory
75
- });
76
- fileChanges = await gitService.analyzeGitChanges(uncommitted, directory);
77
- logger.logInfo("File changes received from gitService", {
78
- fileCount: String(fileChanges.length),
79
- files: JSON.stringify(fileChanges.map(f => ({
80
- filename: f.filename,
81
- status: f.status,
82
- contentLength: String(f.new_content?.length || 0),
83
- patchLength: String(f.patch?.length || 0)
84
- })))
85
- });
86
- }
87
- catch (error) {
88
- const errorDetails = extractErrorDetails(error);
89
- logger.logError("Failed to analyze git changes", error, { directory, uncommitted: String(uncommitted) });
90
- const structuredContent = {
91
- success: false,
92
- error: errorDetails.userMessage,
93
- errorType: errorDetails.errorType,
94
- statusCode: errorDetails.statusCode,
95
- errorDetails: {
96
- userMessage: errorDetails.userMessage,
97
- technicalDetails: errorDetails.technicalDetails,
98
- retryable: errorDetails.retryable,
99
- },
100
- };
101
- logStructuredContentDebug("analyze_commit: returning error (gitService.analyzeGitChanges failed)", structuredContent);
102
- return {
103
- content: [
104
- {
105
- type: "text",
106
- text: `Error: ${errorDetails.userMessage}`,
107
- },
108
- ],
109
- structuredContent,
110
- isError: true,
111
- };
112
- }
113
- // Validate that we have file changes
114
- if (!fileChanges || fileChanges.length === 0) {
115
- const errorDetails = extractErrorDetails(new Error("No file changes found in the commit"));
116
- const structuredContent = {
117
- success: false,
118
- error: errorDetails.userMessage,
119
- errorType: "validation_error",
120
- statusCode: 422,
121
- errorDetails: {
122
- userMessage: "No file changes found. Please ensure you have committed changes or uncommitted changes to analyze.",
123
- technicalDetails: "Git analysis returned empty file changes array",
124
- retryable: false,
125
- },
126
- };
127
- logStructuredContentDebug("analyze_commit: returning error (no file changes)", structuredContent);
128
- return {
129
- content: [
130
- {
131
- type: "text",
132
- text: `Error: ${errorDetails.userMessage}`,
133
- },
134
- ],
135
- structuredContent,
136
- isError: true,
137
- };
138
- }
139
- // Validate file changes structure before sending to backend
140
- // Each file change should have required fields: filename, status, new_content
141
- const invalidFiles = [];
142
- for (let i = 0; i < fileChanges.length; i++) {
143
- const file = fileChanges[i];
144
- if (!file || typeof file !== "object") {
145
- invalidFiles.push(`File at index ${i} is not a valid object`);
146
- continue;
147
- }
148
- if (!file.filename || typeof file.filename !== "string") {
149
- invalidFiles.push(`File at index ${i} is missing or has invalid 'filename' field`);
150
- }
151
- if (!file.status || typeof file.status !== "string") {
152
- invalidFiles.push(`File at index ${i} is missing or has invalid 'status' field`);
153
- }
154
- if (file.new_content === undefined) {
155
- invalidFiles.push(`File at index ${i} is missing 'new_content' field`);
156
- }
157
- }
158
- if (invalidFiles.length > 0) {
159
- const errorMessage = `Invalid file changes structure: ${invalidFiles.join("; ")}`;
160
- const errorDetails = extractErrorDetails(new Error(errorMessage));
161
- logger.logError("Invalid file changes structure", new Error(errorMessage), {
162
- invalidFilesCount: String(invalidFiles.length),
163
- });
164
- const structuredContent = {
165
- success: false,
166
- error: errorDetails.userMessage,
167
- errorType: "validation_error",
168
- statusCode: 422,
169
- errorDetails: {
170
- userMessage: "Invalid file changes structure. Each file must have 'filename', 'status', and 'new_content' fields.",
171
- technicalDetails: errorMessage,
172
- retryable: false,
173
- },
174
- };
175
- logStructuredContentDebug("analyze_commit: returning error (invalid file changes structure)", structuredContent);
176
- return {
177
- content: [
178
- {
179
- type: "text",
180
- text: `Error: ${errorDetails.userMessage}`,
181
- },
182
- ],
183
- structuredContent,
184
- isError: true,
185
- };
186
- }
187
- // Fetch commit identifier directly from Git (avoid relying on agent input)
188
- let commitId;
189
- try {
190
- commitId = await gitService.getCurrentCommitHash(directory);
191
- }
192
- catch (error) {
193
- const errorDetails = extractErrorDetails(error);
194
- logger.logError("Failed to get commit hash", error, { directory });
195
- // Use fallback commit ID
196
- commitId = "UNCOMMITTED";
197
- logger.logWarning("Using fallback commit ID", { commitId });
198
- }
199
- // Step 2: Get user info dynamically from secure_route endpoint
200
- logger.logInfo("Fetching user information from secure route");
201
- let user;
202
- try {
203
- user = await backendApiService.getUserFromSecureRoute();
204
- }
205
- catch (error) {
206
- const errorDetails = extractErrorDetails(error);
207
- logger.logError("Failed to fetch user from secure route", error);
208
- const structuredContent = {
209
- success: false,
210
- error: errorDetails.userMessage,
211
- errorType: errorDetails.errorType,
212
- statusCode: errorDetails.statusCode,
213
- status: errorDetails.errorType,
214
- errorDetails: {
215
- userMessage: errorDetails.userMessage,
216
- technicalDetails: errorDetails.technicalDetails,
217
- retryable: errorDetails.retryable,
218
- },
219
- };
220
- logStructuredContentDebug("analyze_commit: returning error (getUserFromSecureRoute failed)", structuredContent);
221
- // Return error from MCP server with backend error details
222
- return {
223
- content: [
224
- {
225
- type: "text",
226
- text: `Error: ${errorDetails.userMessage}`,
227
- },
228
- ],
229
- structuredContent,
230
- isError: true,
231
- };
232
- }
233
- const userId = user.userid;
234
- const username = user.username;
235
- logger.logInfo("User information retrieved", {
236
- user_id: userId,
237
- username: username
238
- });
239
- const repoName = directory.split(/[/\\]/).pop() || "unknown-repo";
240
- // Extract organization name from directory path
241
- // Example: c:\Users\...\Documents\GitHub\CodeSherlock-MCP-Server -> CodeSherlock-MCP-Server
242
- const pathParts = directory.split(/[/\\]/);
243
- const githubIndex = pathParts.findIndex(part => part.toLowerCase() === 'github');
244
- const organizationName = githubIndex >= 0 && pathParts[githubIndex + 1]
245
- ? pathParts[githubIndex + 1]
246
- : undefined; // Will be undefined if extraction fails
247
- // Step 3: Submit commit review and wait for results
248
- let result;
249
- try {
250
- result = await commitReviewService.submitAndWaitForResults({
251
- factor: normalizedFactor,
252
- user_id: userId,
253
- repo_name: repoName,
254
- commit_id: commitId,
255
- username,
256
- file_changes: fileChanges,
257
- organization_name: organizationName, // Use extracted or agent-provided value
258
- });
259
- }
260
- catch (error) {
261
- const errorDetails = extractErrorDetails(error);
262
- logger.logError("Error in commit review submission", error, {
263
- user_id: userId,
264
- commit_id: commitId,
265
- factor: normalizedFactor,
266
- });
267
- const structuredContent = {
268
- success: false,
269
- error: errorDetails.userMessage,
270
- errorType: errorDetails.errorType,
271
- statusCode: errorDetails.statusCode,
272
- errorDetails: {
273
- userMessage: errorDetails.userMessage,
274
- technicalDetails: errorDetails.technicalDetails,
275
- retryable: errorDetails.retryable,
276
- },
277
- };
278
- logStructuredContentDebug("analyze_commit: returning error (commitReviewService.submitAndWaitForResults failed)", structuredContent);
279
- return {
280
- content: [
281
- {
282
- type: "text",
283
- text: `Error: ${errorDetails.userMessage}`,
284
- },
285
- ],
286
- structuredContent,
287
- isError: true,
288
- };
289
- }
290
- // Handle backend errors returned in result
291
- if (!result.success) {
292
- const errorDetails = extractErrorDetails(new Error(result.error || "Unknown error"));
293
- logger.logError("Commit review failed", new Error(result.error || "Unknown error"), {
294
- user_id: userId,
295
- commit_id: commitId,
296
- });
297
- const structuredContent = {
298
- success: false,
299
- error: result.error || errorDetails.userMessage,
300
- errorType: errorDetails.errorType,
301
- statusCode: errorDetails.statusCode,
302
- errorDetails: {
303
- userMessage: errorDetails.userMessage,
304
- technicalDetails: result.error || errorDetails.technicalDetails,
305
- retryable: errorDetails.retryable,
306
- },
307
- };
308
- logStructuredContentDebug("analyze_commit: returning error (result.success === false)", structuredContent);
309
- return {
310
- content: [
311
- {
312
- type: "text",
313
- text: `Error: ${errorDetails.userMessage}`,
314
- },
315
- ],
316
- structuredContent,
317
- isError: true,
318
- };
319
- }
320
- const outputDir = path.join(process.cwd(), "debug_outputs");
321
- // Convert analysis results to markdown format
322
- logger.logInfo("Processing analysis results", {
323
- success: String(result.success),
324
- hasResults: String(!!result.results),
325
- resultsLength: String(result.results?.length || 0)
326
- });
327
- let markdownAnalysis = "";
328
- if (result.success && result.results && result.results.length > 0) {
329
- markdownAnalysis = formatMultipleFileAnalysisToMarkdown(result.results);
330
- // Ensure output directory exists
331
- if (!fs.existsSync(outputDir)) {
332
- fs.mkdirSync(outputDir, { recursive: true });
333
- logger.logInfo("Created output directory", { path: outputDir });
334
- }
335
- else {
336
- logger.logInfo("Output directory already exists", { path: outputDir });
337
- }
338
- // Save markdown to file
339
- const markdownPath = path.join(outputDir, `analysis_result_${Date.now()}.md`);
340
- fs.writeFileSync(markdownPath, markdownAnalysis, "utf-8");
341
- logger.logInfo("Markdown analysis saved", { path: markdownPath });
342
- }
343
- else {
344
- logger.logInfo("Skipping markdown conversion - no results to convert");
345
- }
346
- // Step 4: Return complete results to AI
347
- logger.logEvent("tool_completed", {
348
- toolName: "analyze_commit",
349
- success: String(result.success),
350
- analysisId: result.analysisId || "none",
351
- factor,
352
- });
353
- const structuredContent = result;
354
- logStructuredContentDebug("analyze_commit: returning success structuredContent", structuredContent);
355
- return {
356
- content: [
357
- {
358
- type: "text",
359
- text: markdownAnalysis || JSON.stringify(result, null, 2),
360
- },
361
- ],
362
- structuredContent,
363
- };
364
- }
365
- catch (error) {
366
- const errorDetails = extractErrorDetails(error);
367
- logger.logError("Unexpected error in analyze_commit handler", error, {
368
- directory,
369
- uncommitted: String(uncommitted),
370
- factor,
371
- });
372
- const structuredContent = {
373
- success: false,
374
- error: errorDetails.userMessage,
375
- errorType: errorDetails.errorType,
376
- statusCode: errorDetails.statusCode || 500,
377
- errorDetails: {
378
- userMessage: errorDetails.userMessage,
379
- technicalDetails: errorDetails.technicalDetails,
380
- retryable: errorDetails.retryable,
381
- },
382
- };
383
- logStructuredContentDebug("analyze_commit: returning error (top-level catch)", structuredContent);
384
- return {
385
- content: [
386
- {
387
- type: "text",
388
- text: `Error analyzing commit: ${errorDetails.userMessage}`,
389
- },
390
- ],
391
- structuredContent,
392
- isError: true,
393
- };
394
- }
395
- };
396
- };
397
- //# sourceMappingURL=analyzeCommitHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyzeCommitHandler.js","sourceRoot":"","sources":["../../src/handlers/analyzeCommitHandler.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- /**
3
- * Register event handlers with the MCP server
4
- * This is optional and can be used for handling server lifecycle events
5
- */
6
- export declare function registerEventHandlers(server: McpServer): void;
7
- //# sourceMappingURL=events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/handlers/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,QAWtD"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Register event handlers with the MCP server
3
- * This is optional and can be used for handling server lifecycle events
4
- */
5
- export function registerEventHandlers(server) {
6
- // Example: You can add custom event handlers here
7
- // For now, this is a placeholder for future event handling logic
8
- // Example event handler (if needed in the future):
9
- // server.onError((error) => {
10
- // Server errors are logged via Application Insights only
11
- // });
12
- // Event handlers registered
13
- // Logging is handled via Application Insights only
14
- }
15
- //# sourceMappingURL=events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/handlers/events.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACnD,kDAAkD;IAClD,iEAAiE;IAEjE,mDAAmD;IACnD,8BAA8B;IAC9B,yDAAyD;IACzD,MAAM;IAEN,4BAA4B;IAC5B,mDAAmD;AACvD,CAAC"}
@@ -1,10 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- /**
3
- * Register all resources with the MCP server
4
- *
5
- * Note: Resources are optional. In this setup, we don't expose any resources
6
- * because the AI doesn't need to read data directly - it only needs to call tools.
7
- * Tools internally orchestrate Git operations and backend API calls.
8
- */
9
- export declare function registerResources(server: McpServer): void;
10
- //# sourceMappingURL=resources.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/handlers/resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,QAKlD"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Register all resources with the MCP server
3
- *
4
- * Note: Resources are optional. In this setup, we don't expose any resources
5
- * because the AI doesn't need to read data directly - it only needs to call tools.
6
- * Tools internally orchestrate Git operations and backend API calls.
7
- */
8
- export function registerResources(server) {
9
- // No resources needed for this use case
10
- // Tools handle all the orchestration internally
11
- // Resources handler registered (no resources defined)
12
- // Logging is handled via Application Insights only
13
- }
14
- //# sourceMappingURL=resources.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/handlers/resources.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IAC/C,wCAAwC;IACxC,gDAAgD;IAChD,sDAAsD;IACtD,mDAAmD;AACvD,CAAC"}
@@ -1,6 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- /**
3
- * Register all tools with the MCP server
4
- */
5
- export declare function registerTools(server: McpServer): void;
6
- //# sourceMappingURL=tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/handlers/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQpE;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,QA4B9C"}
@@ -1,29 +0,0 @@
1
- import { GitService } from "../services/gitService.js";
2
- import { BackendApiService } from "../services/backendApiService.js";
3
- import { CommitReviewService } from "../services/commitReviewService.js";
4
- import { AnalyzeCommitInputSchema, AnalyzeCommitOutputSchema } from "../schemas/toolSchemas.js";
5
- import { createAnalyzeCommitHandler } from "./analyzeCommitHandler.js";
6
- import { logger } from "../services/loggingService.js";
7
- /**
8
- * Register all tools with the MCP server
9
- */
10
- export function registerTools(server) {
11
- const gitService = new GitService();
12
- // Validate required environment variables
13
- const backendUrl = "https://api.dev.codesherlock.ai";
14
- logger.logInfo("Backend URL: " + backendUrl);
15
- logger.logInfo("MCP API Key: " + process.env.MCP_API_KEY);
16
- const backendApiService = new BackendApiService(backendUrl, process.env.MCP_API_KEY);
17
- const commitReviewService = new CommitReviewService(backendApiService);
18
- /**
19
- * Tool: Analyze Commit
20
- * Complete flow: Get Git data → Send to backend → Return results
21
- */
22
- server.registerTool("analyze_commit", {
23
- title: "Analyze Commit",
24
- description: "Analyze a Git commit or uncommitted changes by fetching diff and sending to backend for analysis",
25
- inputSchema: AnalyzeCommitInputSchema,
26
- outputSchema: AnalyzeCommitOutputSchema,
27
- }, createAnalyzeCommitHandler(gitService, commitReviewService, backendApiService));
28
- }
29
- //# sourceMappingURL=tools.js.map
@@ -1 +0,0 @@
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;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC3C,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAEpC,0CAA0C;IAC1C,MAAM,UAAU,GAAG,iCAAiC,CAAC;IACrD,MAAM,CAAC,OAAO,CAAC,eAAe,GAAG,UAAU,CAAC,CAAC;IAC7C,MAAM,CAAC,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE1D,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"}
package/build/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- import * as z from "zod";
2
- export declare const AnalyzeCommitInputSchema: {
3
- uncommitted: z.ZodBoolean;
4
- directory: z.ZodString;
5
- factor: z.ZodEnum<["power_analysis", "owasp", "cwe"]>;
6
- };
7
- /**
8
- * Comprehensive output schema that handles all error scenarios from the FastAPI backend:
9
- * - HTTP errors (401, 404, 422, 500)
10
- * - WebSocket errors with status_code and error_message
11
- * - Validation errors (missing files.json, invalid JSON, invalid file structure, etc.)
12
- * - Authentication errors
13
- * - Usage limit errors
14
- * - Git errors
15
- * - Internal server errors
16
- *
17
- * IMPORTANT:
18
- * We intentionally keep `errorType` as a free-form string instead of a strict enum.
19
- * The backend may introduce new error type strings (for example, "no_analysis_error")
20
- * and we **do not** want the MCP server to fail schema validation with an error like:
21
- * "Structured content does not match the tool's output schema: data.errorType should be equal to one of the allowed values".
22
- *
23
- * By allowing any string here, we always pass through whatever the backend sends and let
24
- * the client / UI decide how to display or group unknown error types, instead of hiding
25
- * the real backend error behind a schema error.
26
- */
27
- export declare const AnalyzeCommitOutputSchema: {
28
- success: z.ZodBoolean;
29
- analysisId: z.ZodOptional<z.ZodString>;
30
- status: z.ZodOptional<z.ZodString>;
31
- statusCode: z.ZodOptional<z.ZodNumber>;
32
- errorType: z.ZodOptional<z.ZodString>;
33
- results: z.ZodOptional<z.ZodAny>;
34
- message: z.ZodOptional<z.ZodString>;
35
- error: z.ZodOptional<z.ZodString>;
36
- errorDetails: z.ZodOptional<z.ZodObject<{
37
- userMessage: z.ZodOptional<z.ZodString>;
38
- technicalDetails: z.ZodOptional<z.ZodString>;
39
- retryable: z.ZodOptional<z.ZodBoolean>;
40
- }, "strip", z.ZodTypeAny, {
41
- userMessage?: string | undefined;
42
- technicalDetails?: string | undefined;
43
- retryable?: boolean | undefined;
44
- }, {
45
- userMessage?: string | undefined;
46
- technicalDetails?: string | undefined;
47
- retryable?: boolean | undefined;
48
- }>>;
49
- };
50
- //# sourceMappingURL=toolSchemas.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolSchemas.d.ts","sourceRoot":"","sources":["../../src/schemas/toolSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,eAAO,MAAM,wBAAwB;;;;CAIpC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;CAsBrC,CAAC"}