@codesherlock/codesherlock-alpha-mcp-server 0.0.7 → 0.0.9

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 CHANGED
@@ -3,7 +3,7 @@
3
3
  # Backend API Configuration
4
4
  BACKEND_API_URL=https://api.dev.codesherlock.ai
5
5
 
6
+ NODE_ENV=development
6
7
 
7
8
  # Application Insights Configuration
8
- APPLICATIONINSIGHTS_CONNECTION_STRING="InstrumentationKey=9a687b23-0384-4345-abaa-4e7065b0d103;IngestionEndpoint=https://eastus-8.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus.livediagnostics.monitor.azure.com/;ApplicationId=9e40bff2-07af-4326-be55-f5dc98e9e9c3"
9
-
9
+ APPLICATIONINSIGHTS_CONNECTION_STRING=your-application-insights-connection-string-here
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=analyzeCommitHandler.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzeCommitHandler.test.d.ts","sourceRoot":"","sources":["../../src/tests/analyzeCommitHandler.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,111 @@
1
+ import { createAnalyzeCommitHandler } from "../handlers/analyzeCommitHandler.js";
2
+ import { formatMultipleFileAnalysisToMarkdown } from "../utils/analysisFormatter.js";
3
+ import fs from "fs";
4
+ // Mock logger to silence output
5
+ jest.mock("../services/loggingService.js", () => ({
6
+ logger: {
7
+ logInfo: jest.fn(),
8
+ logError: jest.fn(),
9
+ logWarning: jest.fn(),
10
+ logEvent: jest.fn(),
11
+ },
12
+ }));
13
+ jest.mock("../utils/analysisFormatter.js", () => ({
14
+ formatMultipleFileAnalysisToMarkdown: jest.fn(),
15
+ }));
16
+ jest.mock("fs", () => ({
17
+ existsSync: jest.fn(),
18
+ mkdirSync: jest.fn(),
19
+ writeFileSync: jest.fn(),
20
+ }));
21
+ describe("createAnalyzeCommitHandler", () => {
22
+ let gitService;
23
+ let commitReviewService;
24
+ let backendApiService;
25
+ const handlerArgs = {
26
+ uncommitted: true,
27
+ directory: "C:\\Users\\dev\\GitHub\\my-org\\my-repo",
28
+ factor: "power",
29
+ };
30
+ beforeEach(() => {
31
+ jest.clearAllMocks();
32
+ gitService = {
33
+ analyzeGitChanges: jest.fn(),
34
+ getCurrentCommitHash: jest.fn(),
35
+ };
36
+ commitReviewService = {
37
+ submitAndWaitForResults: jest.fn(),
38
+ };
39
+ backendApiService = {
40
+ getUserFromSecureRoute: jest.fn(),
41
+ };
42
+ });
43
+ it("returns success response and saves markdown when analysis succeeds", async () => {
44
+ fs.existsSync.mockImplementationOnce(() => true).mockImplementationOnce(() => false);
45
+ gitService.analyzeGitChanges.mockResolvedValue([
46
+ { filename: "file.ts", status: "modified", new_content: "code", patch: "diff" },
47
+ ]);
48
+ gitService.getCurrentCommitHash.mockResolvedValue("abc123");
49
+ backendApiService.getUserFromSecureRoute.mockResolvedValue({ userid: "u1", username: "tester" });
50
+ const analysisResult = {
51
+ success: true,
52
+ analysisId: "analysis-1",
53
+ results: [
54
+ { analysis: { issue: "bug" }, language: "ts", file_name: "file.ts", analysisId: 1 },
55
+ ],
56
+ };
57
+ commitReviewService.submitAndWaitForResults.mockResolvedValue(analysisResult);
58
+ formatMultipleFileAnalysisToMarkdown.mockReturnValue("markdown-content");
59
+ const handler = createAnalyzeCommitHandler(gitService, commitReviewService, backendApiService);
60
+ const response = await handler(handlerArgs);
61
+ expect(commitReviewService.submitAndWaitForResults).toHaveBeenCalledWith({
62
+ factor: "power_analysis",
63
+ user_id: "u1",
64
+ repo_name: "my-repo",
65
+ commit_id: "abc123",
66
+ username: "tester",
67
+ file_changes: expect.any(Array),
68
+ organization_name: "my-org",
69
+ });
70
+ expect(formatMultipleFileAnalysisToMarkdown).toHaveBeenCalledWith(analysisResult.results);
71
+ expect(fs.mkdirSync).toHaveBeenCalledWith(expect.stringContaining("debug_outputs"), { recursive: true });
72
+ expect(fs.writeFileSync).toHaveBeenCalledWith(expect.stringContaining("analysis_result_"), "markdown-content", "utf-8");
73
+ expect(response.structuredContent).toEqual(analysisResult);
74
+ expect(response.content[0].text).toBe("markdown-content");
75
+ });
76
+ it("returns not found error when directory is missing", async () => {
77
+ fs.existsSync.mockReturnValue(false);
78
+ const handler = createAnalyzeCommitHandler(gitService, commitReviewService, backendApiService);
79
+ const response = await handler(handlerArgs);
80
+ expect(response.isError).toBe(true);
81
+ expect(response.structuredContent.success).toBe(false);
82
+ expect(response.structuredContent.statusCode).toBe(404);
83
+ });
84
+ it("returns validation error when file changes are invalid", async () => {
85
+ fs.existsSync.mockReturnValue(true);
86
+ gitService.analyzeGitChanges.mockResolvedValue([{ filename: "file.ts", status: "modified" }]);
87
+ const handler = createAnalyzeCommitHandler(gitService, commitReviewService, backendApiService);
88
+ const response = await handler(handlerArgs);
89
+ expect(response.isError).toBe(true);
90
+ expect(response.structuredContent.statusCode).toBe(422);
91
+ expect(commitReviewService.submitAndWaitForResults).not.toHaveBeenCalled();
92
+ });
93
+ it("propagates backend error result when commit review fails", async () => {
94
+ fs.existsSync.mockReturnValue(true);
95
+ gitService.analyzeGitChanges.mockResolvedValue([
96
+ { filename: "file.ts", status: "modified", new_content: "code", patch: "diff" },
97
+ ]);
98
+ gitService.getCurrentCommitHash.mockResolvedValue("abc123");
99
+ backendApiService.getUserFromSecureRoute.mockResolvedValue({ userid: "u1", username: "tester" });
100
+ commitReviewService.submitAndWaitForResults.mockResolvedValue({
101
+ success: false,
102
+ error: "Backend failed",
103
+ });
104
+ const handler = createAnalyzeCommitHandler(gitService, commitReviewService, backendApiService);
105
+ const response = await handler(handlerArgs);
106
+ expect(response.isError).toBe(true);
107
+ expect(response.structuredContent.success).toBe(false);
108
+ expect(response.structuredContent.error).toBe("Backend failed");
109
+ });
110
+ });
111
+ //# sourceMappingURL=analyzeCommitHandler.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzeCommitHandler.test.js","sourceRoot":"","sources":["../../src/tests/analyzeCommitHandler.test.ts"],"names":[],"mappings":"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"}
@@ -43,7 +43,7 @@ describe('BackendApiService', () => {
43
43
  expect(global.fetch).toHaveBeenCalledWith(`${baseUrl}/v2/commit-review/power_analysis`, expect.objectContaining({
44
44
  method: 'POST',
45
45
  headers: expect.objectContaining({
46
- Authorization: `Bearer ${apiKey}`,
46
+ 'X-CS-MCP-API-Key': apiKey,
47
47
  }),
48
48
  body: expect.any(FormData),
49
49
  }));
@@ -54,7 +54,7 @@ describe('BackendApiService', () => {
54
54
  status: 500,
55
55
  text: jest.fn().mockResolvedValue('Internal Server Error'),
56
56
  });
57
- await expect(backendApiService.submitCommitReview(mockParams)).rejects.toThrow('HTTP error! status: 500, body: Internal Server Error');
57
+ await expect(backendApiService.submitCommitReview(mockParams)).rejects.toThrow('HTTP error! status: 500, detail: Internal Server Error');
58
58
  expect(logger.logError).toHaveBeenCalled();
59
59
  });
60
60
  it('should handle network errors', async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"backendApiService.test.js","sourceRoot":"","sources":["../../src/tests/backendApiService.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backendApiService.test.js","sourceRoot":"","sources":["../../src/tests/backendApiService.test.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,19 @@
1
1
  import { CommitReviewService } from '../services/commitReviewService.js';
2
2
  import { BackendApiService } from '../services/backendApiService.js';
3
+ import { EventEmitter } from 'events';
4
+ jest.setTimeout(10000);
3
5
  // Mock dependencies
4
6
  jest.mock('../services/backendApiService');
5
7
  jest.mock('../services/loggingService');
6
8
  describe('CommitReviewService', () => {
7
9
  let commitReviewService;
8
10
  let mockBackendApiService;
11
+ const createMockWebSocket = () => {
12
+ const ws = new EventEmitter();
13
+ ws.readyState = 1; // OPEN
14
+ ws.close = jest.fn(() => ws.emit('close', 1000, Buffer.from('')));
15
+ return ws;
16
+ };
9
17
  beforeEach(() => {
10
18
  jest.clearAllMocks();
11
19
  mockBackendApiService = new BackendApiService('url');
@@ -22,41 +30,37 @@ describe('CommitReviewService', () => {
22
30
  organization_name: 'org1',
23
31
  };
24
32
  it('should submit review and collect results successfully', async () => {
25
- // Mock submitCommitReview response
26
33
  mockBackendApiService.submitCommitReview.mockResolvedValue({
27
34
  success: true,
28
35
  analysisId: 'analysis123',
29
36
  message: 'Submitted',
30
37
  });
31
- // Mock connectWebSocket to simulate receiving results
32
- mockBackendApiService.connectWebSocket.mockImplementation((userId, onMessage) => {
33
- // Simulate message delivery asynchronously but deterministically
34
- Promise.resolve().then(() => {
35
- // 1. Send result message
36
- onMessage({
37
- status_code: 200,
38
- content: {
39
- analysis_type: 'commit_review',
40
- analysis: { issue: 'bug' },
41
- language: 'ts',
42
- file_name: 'test.ts',
43
- is_complete: false,
44
- },
45
- analysis_id: 123,
46
- });
47
- // 2. Send completion message
48
- onMessage({
49
- status_code: 200,
50
- content: {
51
- analysis_type: 'commit_review',
52
- status: 'complete',
53
- is_complete: true,
54
- },
55
- });
56
- });
57
- return Promise.resolve({});
58
- });
59
- const result = await commitReviewService.submitAndWaitForResults(mockParams);
38
+ const ws = createMockWebSocket();
39
+ mockBackendApiService.connectWebSocket.mockResolvedValue(ws);
40
+ const resultPromise = commitReviewService.submitAndWaitForResults(mockParams);
41
+ // Simulate messages after handlers are attached
42
+ setTimeout(() => {
43
+ ws.emit('message', Buffer.from(JSON.stringify({
44
+ status_code: 200,
45
+ content: {
46
+ analysis_type: 'commit_review',
47
+ analysis: { issue: 'bug' },
48
+ language: 'ts',
49
+ file_name: 'test.ts',
50
+ is_complete: false,
51
+ },
52
+ analysis_id: 123,
53
+ })));
54
+ ws.emit('message', Buffer.from(JSON.stringify({
55
+ status_code: 200,
56
+ content: {
57
+ analysis_type: 'commit_review',
58
+ status: 'complete',
59
+ is_complete: true,
60
+ },
61
+ })));
62
+ }, 0);
63
+ const result = await resultPromise;
60
64
  expect(result.success).toBe(true);
61
65
  expect(result.analysisId).toBe('analysis123');
62
66
  expect(result.results).toHaveLength(1);
@@ -74,23 +78,21 @@ describe('CommitReviewService', () => {
74
78
  success: true,
75
79
  analysisId: 'analysis123',
76
80
  });
77
- mockBackendApiService.connectWebSocket.mockImplementation((userId, onMessage, onError) => {
78
- setTimeout(() => {
79
- if (onError)
80
- onError(new Error('WebSocket error'));
81
- }, 10);
82
- return Promise.resolve({});
83
- });
84
- const result = await commitReviewService.submitAndWaitForResults(mockParams);
81
+ const ws = createMockWebSocket();
82
+ mockBackendApiService.connectWebSocket.mockResolvedValue(ws);
83
+ const resultPromise = commitReviewService.submitAndWaitForResults(mockParams);
84
+ setTimeout(() => {
85
+ ws.emit('error', new Error('WebSocket error'));
86
+ }, 0);
87
+ const result = await resultPromise;
85
88
  expect(result.success).toBe(false);
86
89
  expect(result.error).toContain('WebSocket error');
87
90
  });
88
91
  it('should handle backend submission failure', async () => {
89
92
  const error = new Error('Submission failed');
90
93
  mockBackendApiService.submitCommitReview.mockRejectedValue(error);
91
- // Mock WS to just hang or resolve immediately to avoid blocking,
92
- // but the error in submit should trigger catch block
93
- mockBackendApiService.connectWebSocket.mockImplementation(() => Promise.resolve({}));
94
+ const ws = createMockWebSocket();
95
+ mockBackendApiService.connectWebSocket.mockResolvedValue(ws);
94
96
  const result = await commitReviewService.submitAndWaitForResults(mockParams);
95
97
  expect(result.success).toBe(false);
96
98
  expect(result.error).toBe('Submission failed');
@@ -100,16 +102,16 @@ describe('CommitReviewService', () => {
100
102
  success: true,
101
103
  analysisId: 'analysis123',
102
104
  });
103
- mockBackendApiService.connectWebSocket.mockImplementation((userId, onMessage) => {
104
- setTimeout(() => {
105
- onMessage({
106
- status_code: 400,
107
- error_message: 'Bad Request',
108
- });
109
- }, 10);
110
- return Promise.resolve({});
111
- });
112
- const result = await commitReviewService.submitAndWaitForResults(mockParams);
105
+ const ws = createMockWebSocket();
106
+ mockBackendApiService.connectWebSocket.mockResolvedValue(ws);
107
+ const resultPromise = commitReviewService.submitAndWaitForResults(mockParams);
108
+ setTimeout(() => {
109
+ ws.emit('message', Buffer.from(JSON.stringify({
110
+ status_code: 400,
111
+ error_message: 'Bad Request',
112
+ })));
113
+ }, 0);
114
+ const result = await resultPromise;
113
115
  expect(result.success).toBe(false);
114
116
  expect(result.error).toBe('Bad Request');
115
117
  });
@@ -1 +1 @@
1
- {"version":3,"file":"commitReviewService.test.js","sourceRoot":"","sources":["../../src/tests/commitReviewService.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commitReviewService.test.js","sourceRoot":"","sources":["../../src/tests/commitReviewService.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAA4B,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAEvB,oBAAoB;AACpB,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AAC3C,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;AAExC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACjC,IAAI,mBAAwC,CAAC;IAC7C,IAAI,qBAAqD,CAAC;IAE1D,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC7B,MAAM,EAAE,GAAG,IAAI,YAAY,EAAS,CAAC;QACrC,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,OAAO;QAC1B,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,OAAO,EAAE,CAAC;IACd,CAAC,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACZ,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,qBAAqB,GAAG,IAAI,iBAAiB,CAAC,KAAK,CAAmC,CAAC;QACvF,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACrC,MAAM,UAAU,GAA6B;YACzC,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,WAAW;YACtB,SAAS,EAAE,WAAW;YACtB,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,EAAE;YAChB,iBAAiB,EAAE,MAAM;SAC5B,CAAC;QAEF,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACnE,qBAAqB,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;gBACvD,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,aAAa;gBACzB,OAAO,EAAE,WAAW;aACvB,CAAC,CAAC;YAEH,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;YACjC,qBAAqB,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAAS,CAAC,CAAC;YAEpE,MAAM,aAAa,GAAG,mBAAmB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;YAE9E,gDAAgD;YAChD,UAAU,CAAC,GAAG,EAAE;gBACZ,EAAE,CAAC,IAAI,CACH,SAAS,EACT,MAAM,CAAC,IAAI,CACP,IAAI,CAAC,SAAS,CAAC;oBACX,WAAW,EAAE,GAAG;oBAChB,OAAO,EAAE;wBACL,aAAa,EAAE,eAAe;wBAC9B,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;wBAC1B,QAAQ,EAAE,IAAI;wBACd,SAAS,EAAE,SAAS;wBACpB,WAAW,EAAE,KAAK;qBACrB;oBACD,WAAW,EAAE,GAAG;iBACnB,CAAC,CACL,CACJ,CAAC;gBACF,EAAE,CAAC,IAAI,CACH,SAAS,EACT,MAAM,CAAC,IAAI,CACP,IAAI,CAAC,SAAS,CAAC;oBACX,WAAW,EAAE,GAAG;oBAChB,OAAO,EAAE;wBACL,aAAa,EAAE,eAAe;wBAC9B,MAAM,EAAE,UAAU;wBAClB,WAAW,EAAE,IAAI;qBACpB;iBACJ,CAAC,CACL,CACJ,CAAC;YACN,CAAC,EAAE,CAAC,CAAC,CAAC;YAEN,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YAEnC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAChC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC1B,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,SAAS;gBACpB,UAAU,EAAE,GAAG;aAClB,CAAC,CAAC;YACH,MAAM,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACpE,MAAM,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC5C,qBAAqB,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;gBACvD,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,aAAa;aAC5B,CAAC,CAAC;YAEH,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;YACjC,qBAAqB,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAAS,CAAC,CAAC;YAEpE,MAAM,aAAa,GAAG,mBAAmB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;YAE9E,UAAU,CAAC,GAAG,EAAE;gBACZ,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACnD,CAAC,EAAE,CAAC,CAAC,CAAC;YAEN,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YAEnC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC7C,qBAAqB,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAElE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;YACjC,qBAAqB,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAAS,CAAC,CAAC;YAEpE,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;YAE7E,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACpE,qBAAqB,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;gBACvD,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,aAAa;aAC5B,CAAC,CAAC;YAEH,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;YACjC,qBAAqB,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAAS,CAAC,CAAC;YAEpE,MAAM,aAAa,GAAG,mBAAmB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;YAE9E,UAAU,CAAC,GAAG,EAAE;gBACZ,EAAE,CAAC,IAAI,CACH,SAAS,EACT,MAAM,CAAC,IAAI,CACP,IAAI,CAAC,SAAS,CAAC;oBACX,WAAW,EAAE,GAAG;oBAChB,aAAa,EAAE,aAAa;iBAC/B,CAAC,CACL,CACJ,CAAC;YACN,CAAC,EAAE,CAAC,CAAC,CAAC;YAEN,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YAEnC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -32,47 +32,44 @@ jest.mock('applicationinsights', () => {
32
32
  });
33
33
  describe('LoggingService', () => {
34
34
  let loggingService;
35
- let consoleErrorSpy;
36
- let consoleWarnSpy;
35
+ let stderrSpy;
37
36
  beforeEach(() => {
38
37
  // Reset singleton instance if possible or just get the instance
39
38
  // Since it's a singleton, we might need to be careful.
40
39
  // However, for unit tests, we can just get the instance.
41
40
  loggingService = LoggingService.getInstance();
42
- // Spy on console methods to avoid cluttering test output and to verify calls
43
- consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(() => { });
44
- consoleWarnSpy = jest.spyOn(console, 'warn').mockImplementation(() => { });
41
+ // Spy on stderr to capture debug logs
42
+ stderrSpy = jest.spyOn(process.stderr, 'write').mockImplementation(() => true);
45
43
  // Reset mocks
46
44
  jest.clearAllMocks();
47
45
  });
48
46
  afterEach(() => {
49
- consoleErrorSpy.mockRestore();
50
- consoleWarnSpy.mockRestore();
47
+ stderrSpy.mockRestore();
51
48
  });
52
49
  describe('initialization', () => {
53
- it('should initialize successfully with a connection string', () => {
50
+ it('should initialize successfully with a connection string', async () => {
54
51
  // We need to access the private property 'isInitialized' or reset it if we want to test init multiple times
55
52
  // Since we can't easily reset private state without casting to any, we'll try to initialize
56
53
  // If it's already initialized from a previous test run (singleton), this might hit the "already initialized" path
57
54
  // Force reset for testing purposes
58
55
  loggingService.isInitialized = false;
59
56
  loggingService.client = null;
60
- loggingService.initialize('fake-connection-string');
57
+ await loggingService.initialize('fake-connection-string');
61
58
  expect(appInsights.setup).toHaveBeenCalledWith('fake-connection-string');
62
59
  expect(appInsights.start).toHaveBeenCalled();
63
60
  expect(loggingService.isInitialized).toBe(true);
64
61
  });
65
- it('should log error if no connection string provided', () => {
62
+ it('should log error if no connection string provided', async () => {
66
63
  loggingService.isInitialized = false;
67
- loggingService.initialize(undefined);
68
- expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('Application Insights connection string not provided'));
64
+ await loggingService.initialize(undefined);
65
+ expect(stderrSpy).toHaveBeenCalledWith(expect.stringContaining('Application Insights connection string missing; logging disabled.\n'));
69
66
  expect(appInsights.setup).not.toHaveBeenCalled();
70
67
  });
71
- it('should warn if already initialized', () => {
68
+ it('should skip re-initialization if already initialized', async () => {
72
69
  loggingService.isInitialized = true;
73
- loggingService.initialize('another-string');
74
- expect(consoleWarnSpy).toHaveBeenCalledWith('Logging service already initialized');
70
+ await loggingService.initialize('another-string');
75
71
  expect(appInsights.setup).not.toHaveBeenCalled();
72
+ expect(stderrSpy).not.toHaveBeenCalled();
76
73
  });
77
74
  });
78
75
  describe('logging methods', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"loggingService.test.js","sourceRoot":"","sources":["../../src/tests/loggingService.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loggingService.test.js","sourceRoot":"","sources":["../../src/tests/loggingService.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tools.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.test.d.ts","sourceRoot":"","sources":["../../src/tests/tools.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,58 @@
1
+ import { registerTools } from "../handlers/tools.js";
2
+ import { AnalyzeCommitInputSchema, AnalyzeCommitOutputSchema } from "../schemas/toolSchemas.js";
3
+ // Mock service classes and handler factory
4
+ const mockGitServiceInstance = { type: "git" };
5
+ const mockBackendApiServiceInstance = { type: "backend" };
6
+ const mockCommitReviewServiceInstance = { type: "commit" };
7
+ const mockHandler = jest.fn();
8
+ jest.mock("../services/gitService.js", () => {
9
+ return {
10
+ GitService: jest.fn().mockImplementation(() => mockGitServiceInstance),
11
+ };
12
+ });
13
+ jest.mock("../services/backendApiService.js", () => {
14
+ return {
15
+ BackendApiService: jest.fn().mockImplementation(() => mockBackendApiServiceInstance),
16
+ };
17
+ });
18
+ jest.mock("../services/commitReviewService.js", () => {
19
+ return {
20
+ CommitReviewService: jest.fn().mockImplementation(() => mockCommitReviewServiceInstance),
21
+ };
22
+ });
23
+ jest.mock("../handlers/analyzeCommitHandler.js", () => {
24
+ return {
25
+ createAnalyzeCommitHandler: jest.fn(() => mockHandler),
26
+ };
27
+ });
28
+ describe("registerTools", () => {
29
+ const originalEnv = { ...process.env };
30
+ beforeEach(() => {
31
+ jest.clearAllMocks();
32
+ process.env = { ...originalEnv, BACKEND_API_URL: "http://api.local", MCP_API_KEY: "secret" };
33
+ });
34
+ afterAll(() => {
35
+ process.env = originalEnv;
36
+ });
37
+ it("registers analyze_commit tool with constructed services and handler", () => {
38
+ const server = { registerTool: jest.fn() };
39
+ registerTools(server);
40
+ const { GitService } = require("../services/gitService.js");
41
+ const { BackendApiService } = require("../services/backendApiService.js");
42
+ const { CommitReviewService } = require("../services/commitReviewService.js");
43
+ const { createAnalyzeCommitHandler } = require("../handlers/analyzeCommitHandler.js");
44
+ // Services instantiated once
45
+ expect(GitService).toHaveBeenCalledTimes(1);
46
+ expect(BackendApiService).toHaveBeenCalledWith("http://api.local", "secret");
47
+ expect(CommitReviewService).toHaveBeenCalledWith(mockBackendApiServiceInstance);
48
+ // Handler created with service instances
49
+ expect(createAnalyzeCommitHandler).toHaveBeenCalledWith(mockGitServiceInstance, mockCommitReviewServiceInstance, mockBackendApiServiceInstance);
50
+ // Tool registered with correct metadata and handler
51
+ expect(server.registerTool).toHaveBeenCalledWith("analyze_commit", expect.objectContaining({
52
+ title: "Analyze Commit",
53
+ inputSchema: AnalyzeCommitInputSchema,
54
+ outputSchema: AnalyzeCommitOutputSchema,
55
+ }), mockHandler);
56
+ });
57
+ });
58
+ //# sourceMappingURL=tools.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.test.js","sourceRoot":"","sources":["../../src/tests/tools.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Error types for better categorization
3
3
  */
4
- export type ErrorType = "authentication_error" | "validation_error" | "not_found_error" | "git_error" | "websocket_error" | "api_error" | "internal_error" | "usage_limit_error" | "repository_error";
4
+ export type ErrorType = "authentication_error" | "validation_error" | "not_found_error" | "no_analysis_error" | "websocket_error" | "api_error" | "internal_error" | "usage_limit_error" | "repository_error";
5
5
  /**
6
6
  * Error details extracted from error objects
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"errorExtractor.d.ts","sourceRoot":"","sources":["../../src/utils/errorExtractor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,SAAS,GACf,sBAAsB,GACtB,kBAAkB,GAClB,iBAAiB,GACjB,WAAW,GACX,iBAAiB,GACjB,WAAW,GACX,gBAAgB,GAChB,mBAAmB,GACnB,kBAAkB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,KAAK,GAAG,OAAO,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,MAAM,GACxB,YAAY,CAgJd"}
1
+ {"version":3,"file":"errorExtractor.d.ts","sourceRoot":"","sources":["../../src/utils/errorExtractor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,SAAS,GACf,sBAAsB,GACtB,kBAAkB,GAClB,iBAAiB,GACjB,mBAAmB,GACnB,iBAAiB,GACjB,WAAW,GACX,gBAAgB,GAChB,mBAAmB,GACnB,kBAAkB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,KAAK,GAAG,OAAO,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,MAAM,GACxB,YAAY,CAgJd"}
@@ -117,8 +117,8 @@ export function extractErrorDetails(error, wsStatusCode, wsErrorMessage) {
117
117
  }
118
118
  // Git errors
119
119
  else if (effectiveErrorMessage.includes("Git") || effectiveErrorMessage.includes("git") || effectiveErrorMessage.includes("repository") || effectiveErrorMessage.includes("commit")) {
120
- errorType = "git_error";
121
- userMessage = `Git operation failed: ${effectiveErrorMessage}`;
120
+ errorType = "no_analysis_error";
121
+ userMessage = `No Analysis: ${effectiveErrorMessage}`;
122
122
  retryable = true;
123
123
  }
124
124
  // WebSocket errors
@@ -1 +1 @@
1
- {"version":3,"file":"errorExtractor.js","sourceRoot":"","sources":["../../src/utils/errorExtractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errorExtractor.js","sourceRoot":"","sources":["../../src/utils/errorExtractor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codesherlock/codesherlock-alpha-mcp-server",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "description": "A TypeScript-based Model Context Protocol (MCP) server",
5
5
  "main": "build/index.js",
6
6
  "bin": {