@codesherlock/codesherlock-beta-mcp-server 0.0.1

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 +9 -0
  2. package/README.md +185 -0
  3. package/build/handlers/analyzeCommitHandler.d.ts +36 -0
  4. package/build/handlers/analyzeCommitHandler.d.ts.map +1 -0
  5. package/build/handlers/analyzeCommitHandler.js +397 -0
  6. package/build/handlers/analyzeCommitHandler.js.map +1 -0
  7. package/build/handlers/events.d.ts +7 -0
  8. package/build/handlers/events.d.ts.map +1 -0
  9. package/build/handlers/events.js +15 -0
  10. package/build/handlers/events.js.map +1 -0
  11. package/build/handlers/resources.d.ts +10 -0
  12. package/build/handlers/resources.d.ts.map +1 -0
  13. package/build/handlers/resources.js +14 -0
  14. package/build/handlers/resources.js.map +1 -0
  15. package/build/handlers/tools.d.ts +6 -0
  16. package/build/handlers/tools.d.ts.map +1 -0
  17. package/build/handlers/tools.js +29 -0
  18. package/build/handlers/tools.js.map +1 -0
  19. package/build/index.d.ts +3 -0
  20. package/build/index.d.ts.map +1 -0
  21. package/build/index.js +82 -0
  22. package/build/index.js.map +1 -0
  23. package/build/schemas/toolSchemas.d.ts +50 -0
  24. package/build/schemas/toolSchemas.d.ts.map +1 -0
  25. package/build/schemas/toolSchemas.js +48 -0
  26. package/build/schemas/toolSchemas.js.map +1 -0
  27. package/build/services/backendApiService.d.ts +81 -0
  28. package/build/services/backendApiService.d.ts.map +1 -0
  29. package/build/services/backendApiService.js +265 -0
  30. package/build/services/backendApiService.js.map +1 -0
  31. package/build/services/commitReviewService.d.ts +71 -0
  32. package/build/services/commitReviewService.d.ts.map +1 -0
  33. package/build/services/commitReviewService.js +506 -0
  34. package/build/services/commitReviewService.js.map +1 -0
  35. package/build/services/gitService.d.ts +159 -0
  36. package/build/services/gitService.d.ts.map +1 -0
  37. package/build/services/gitService.js +778 -0
  38. package/build/services/gitService.js.map +1 -0
  39. package/build/services/loggingService.d.ts +64 -0
  40. package/build/services/loggingService.d.ts.map +1 -0
  41. package/build/services/loggingService.js +185 -0
  42. package/build/services/loggingService.js.map +1 -0
  43. package/build/services/zipService.d.ts +9 -0
  44. package/build/services/zipService.d.ts.map +1 -0
  45. package/build/services/zipService.js +47 -0
  46. package/build/services/zipService.js.map +1 -0
  47. package/build/tests/analysisFormatter.test.d.ts +2 -0
  48. package/build/tests/analysisFormatter.test.d.ts.map +1 -0
  49. package/build/tests/analysisFormatter.test.js +92 -0
  50. package/build/tests/analysisFormatter.test.js.map +1 -0
  51. package/build/tests/analyzeCommitHandler.test.d.ts +2 -0
  52. package/build/tests/analyzeCommitHandler.test.d.ts.map +1 -0
  53. package/build/tests/analyzeCommitHandler.test.js +111 -0
  54. package/build/tests/analyzeCommitHandler.test.js.map +1 -0
  55. package/build/tests/backendApiService.test.d.ts +2 -0
  56. package/build/tests/backendApiService.test.d.ts.map +1 -0
  57. package/build/tests/backendApiService.test.js +109 -0
  58. package/build/tests/backendApiService.test.js.map +1 -0
  59. package/build/tests/commitReviewService.test.d.ts +2 -0
  60. package/build/tests/commitReviewService.test.d.ts.map +1 -0
  61. package/build/tests/commitReviewService.test.js +120 -0
  62. package/build/tests/commitReviewService.test.js.map +1 -0
  63. package/build/tests/errorExtractor.test.d.ts +2 -0
  64. package/build/tests/errorExtractor.test.d.ts.map +1 -0
  65. package/build/tests/errorExtractor.test.js +61 -0
  66. package/build/tests/errorExtractor.test.js.map +1 -0
  67. package/build/tests/loggingService.test.d.ts +2 -0
  68. package/build/tests/loggingService.test.d.ts.map +1 -0
  69. package/build/tests/loggingService.test.js +153 -0
  70. package/build/tests/loggingService.test.js.map +1 -0
  71. package/build/tests/setup.test.d.ts +2 -0
  72. package/build/tests/setup.test.d.ts.map +1 -0
  73. package/build/tests/setup.test.js +7 -0
  74. package/build/tests/setup.test.js.map +1 -0
  75. package/build/tests/tools.test.d.ts +2 -0
  76. package/build/tests/tools.test.d.ts.map +1 -0
  77. package/build/tests/tools.test.js +58 -0
  78. package/build/tests/tools.test.js.map +1 -0
  79. package/build/utils/analysisFormatter.d.ts +40 -0
  80. package/build/utils/analysisFormatter.d.ts.map +1 -0
  81. package/build/utils/analysisFormatter.js +97 -0
  82. package/build/utils/analysisFormatter.js.map +1 -0
  83. package/build/utils/errorExtractor.d.ts +36 -0
  84. package/build/utils/errorExtractor.d.ts.map +1 -0
  85. package/build/utils/errorExtractor.js +178 -0
  86. package/build/utils/errorExtractor.js.map +1 -0
  87. package/package.json +55 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitService.js","sourceRoot":"","sources":["../../src/services/gitService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Simple Logging Service using Azure Application Insights
3
+ * All logs are sent to Application Insights only (no console output)
4
+ */
5
+ export declare class LoggingService {
6
+ private static instance;
7
+ private client;
8
+ private isInitialized;
9
+ private constructor();
10
+ /**
11
+ * Get singleton instance of LoggingService
12
+ */
13
+ static getInstance(): LoggingService;
14
+ /**
15
+ * Initialize Application Insights with connection string
16
+ */
17
+ initialize(connectionString?: string): Promise<void>;
18
+ /**
19
+ * Log an informational message
20
+ */
21
+ logInfo(message: string, properties?: {
22
+ [key: string]: string;
23
+ }): void;
24
+ /**
25
+ * Log a warning message
26
+ */
27
+ logWarning(message: string, properties?: {
28
+ [key: string]: string;
29
+ }): void;
30
+ /**
31
+ * Log an error message
32
+ */
33
+ logError(message: string, error?: Error, properties?: {
34
+ [key: string]: string;
35
+ }): void;
36
+ /**
37
+ * Log a custom event
38
+ */
39
+ logEvent(name: string, properties?: {
40
+ [key: string]: string;
41
+ }, measurements?: {
42
+ [key: string]: number;
43
+ }): void;
44
+ /**
45
+ * Track a metric
46
+ */
47
+ trackMetric(name: string, value: number, properties?: {
48
+ [key: string]: string;
49
+ }): void;
50
+ /**
51
+ * Track a dependency call
52
+ */
53
+ trackDependency(name: string, commandName: string, duration: number, success: boolean, dependencyType?: string): void;
54
+ /**
55
+ * Flush telemetry before shutdown
56
+ */
57
+ flush(): Promise<void>;
58
+ /**
59
+ * Check if logging is enabled
60
+ */
61
+ isEnabled(): boolean;
62
+ }
63
+ export declare const logger: LoggingService;
64
+ //# sourceMappingURL=loggingService.d.ts.map
@@ -0,0 +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;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"}
@@ -0,0 +1,185 @@
1
+ import * as appInsights from "applicationinsights";
2
+ /**
3
+ * Simple Logging Service using Azure Application Insights
4
+ * All logs are sent to Application Insights only (no console output)
5
+ */
6
+ export class LoggingService {
7
+ static instance;
8
+ client = null;
9
+ isInitialized = false;
10
+ constructor() { }
11
+ /**
12
+ * Get singleton instance of LoggingService
13
+ */
14
+ static getInstance() {
15
+ if (!LoggingService.instance) {
16
+ LoggingService.instance = new LoggingService();
17
+ }
18
+ return LoggingService.instance;
19
+ }
20
+ /**
21
+ * Initialize Application Insights with connection string
22
+ */
23
+ async initialize(connectionString) {
24
+ const debugLog = (message) => {
25
+ process.stderr.write(`[LoggingService] ${message}\n`);
26
+ };
27
+ if (this.isInitialized) {
28
+ return;
29
+ }
30
+ if (!connectionString) {
31
+ debugLog("Application Insights connection string missing; logging disabled.");
32
+ this.isInitialized = false;
33
+ this.client = null;
34
+ return;
35
+ }
36
+ try {
37
+ const client = new appInsights.TelemetryClient(connectionString);
38
+ appInsights.setup(connectionString)
39
+ .setAutoDependencyCorrelation(false)
40
+ .setAutoCollectRequests(false)
41
+ .setAutoCollectPerformance(false, false)
42
+ .setAutoCollectExceptions(true)
43
+ .setAutoCollectDependencies(false)
44
+ .setAutoCollectConsole(false)
45
+ .setSendLiveMetrics(false);
46
+ appInsights.start();
47
+ this.client = client;
48
+ this.isInitialized = true;
49
+ debugLog("Application Insights initialized.");
50
+ }
51
+ catch (error) {
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
+ }
58
+ this.isInitialized = false;
59
+ this.client = null;
60
+ }
61
+ }
62
+ /**
63
+ * Log an informational message
64
+ */
65
+ logInfo(message, properties) {
66
+ if (this.client) {
67
+ this.client.trackTrace({
68
+ message,
69
+ severity: 1,
70
+ properties,
71
+ });
72
+ }
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
+ }
78
+ }
79
+ /**
80
+ * Log a warning message
81
+ */
82
+ logWarning(message, properties) {
83
+ if (this.client) {
84
+ this.client.trackTrace({
85
+ message,
86
+ severity: 2,
87
+ properties,
88
+ });
89
+ }
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
+ }
95
+ }
96
+ /**
97
+ * Log an error message
98
+ */
99
+ logError(message, error, properties) {
100
+ if (this.client) {
101
+ if (error) {
102
+ this.client.trackException({
103
+ exception: error,
104
+ properties: { ...properties, customMessage: message },
105
+ });
106
+ }
107
+ else {
108
+ this.client.trackTrace({
109
+ message,
110
+ severity: 3,
111
+ properties,
112
+ });
113
+ }
114
+ }
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
+ }
129
+ }
130
+ /**
131
+ * Log a custom event
132
+ */
133
+ logEvent(name, properties, measurements) {
134
+ if (this.client) {
135
+ this.client.trackEvent({
136
+ name,
137
+ properties,
138
+ measurements,
139
+ });
140
+ }
141
+ }
142
+ /**
143
+ * Track a metric
144
+ */
145
+ trackMetric(name, value, properties) {
146
+ if (this.client) {
147
+ this.client.trackMetric({
148
+ name,
149
+ value,
150
+ properties,
151
+ });
152
+ }
153
+ }
154
+ /**
155
+ * Track a dependency call
156
+ */
157
+ trackDependency(name, commandName, duration, success, dependencyType) {
158
+ if (this.client) {
159
+ this.client.trackDependency({
160
+ name,
161
+ data: commandName,
162
+ duration,
163
+ success,
164
+ dependencyTypeName: dependencyType || "HTTP",
165
+ });
166
+ }
167
+ }
168
+ /**
169
+ * Flush telemetry before shutdown
170
+ */
171
+ async flush() {
172
+ if (this.client) {
173
+ this.client.flush();
174
+ }
175
+ }
176
+ /**
177
+ * Check if logging is enabled
178
+ */
179
+ isEnabled() {
180
+ return this.isInitialized && this.client !== null;
181
+ }
182
+ }
183
+ // Export singleton instance
184
+ export const logger = LoggingService.getInstance();
185
+ //# sourceMappingURL=loggingService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loggingService.js","sourceRoot":"","sources":["../../src/services/loggingService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare class ZipService {
2
+ /**
3
+ * Zips the provided data into a file named 'files.json' within the archive.
4
+ * @param data - The data to be zipped (will be stringified to JSON)
5
+ * @returns Buffer containing the zip file
6
+ */
7
+ createZip(data: any): Promise<Buffer>;
8
+ }
9
+ //# sourceMappingURL=zipService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zipService.d.ts","sourceRoot":"","sources":["../../src/services/zipService.ts"],"names":[],"mappings":"AAIA,qBAAa,UAAU;IACnB;;;;OAIG;IACG,SAAS,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;CA0C9C"}
@@ -0,0 +1,47 @@
1
+ import archiver from 'archiver';
2
+ import { Writable } from 'stream';
3
+ import { logger } from './loggingService.js';
4
+ export class ZipService {
5
+ /**
6
+ * Zips the provided data into a file named 'files.json' within the archive.
7
+ * @param data - The data to be zipped (will be stringified to JSON)
8
+ * @returns Buffer containing the zip file
9
+ */
10
+ async createZip(data) {
11
+ try {
12
+ logger.logInfo('Creating zip archive');
13
+ const chunks = [];
14
+ // Create a writable stream to capture the zip output in memory
15
+ const output = new Writable({
16
+ write(chunk, encoding, callback) {
17
+ chunks.push(Buffer.from(chunk));
18
+ callback();
19
+ }
20
+ });
21
+ const archive = archiver('zip', {
22
+ zlib: { level: 9 } // Maximum compression
23
+ });
24
+ return new Promise((resolve, reject) => {
25
+ output.on('finish', () => {
26
+ const result = Buffer.concat(chunks);
27
+ logger.logInfo(`Zip archive created successfully. Size: ${result.length} bytes`);
28
+ resolve(result);
29
+ });
30
+ archive.on('error', (err) => {
31
+ logger.logError('Error creating zip archive', err);
32
+ reject(err);
33
+ });
34
+ archive.pipe(output);
35
+ // The Python endpoint expects 'files.json'
36
+ logger.logInfo('Appending files.json to archive');
37
+ archive.append(JSON.stringify(data, null, 2), { name: 'files.json' });
38
+ archive.finalize();
39
+ });
40
+ }
41
+ catch (error) {
42
+ logger.logError('Unexpected error in createZip', error);
43
+ throw error;
44
+ }
45
+ }
46
+ }
47
+ //# sourceMappingURL=zipService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zipService.js","sourceRoot":"","sources":["../../src/services/zipService.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,OAAO,UAAU;IACnB;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,IAAS;QACrB,IAAI,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YACvC,MAAM,MAAM,GAAa,EAAE,CAAC;YAE5B,+DAA+D;YAC/D,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC;gBACxB,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ;oBAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBAChC,QAAQ,EAAE,CAAC;gBACf,CAAC;aACJ,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE;gBAC5B,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,sBAAsB;aAC5C,CAAC,CAAC;YAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;oBACrB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACrC,MAAM,CAAC,OAAO,CAAC,2CAA2C,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC;oBACjF,OAAO,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;oBACxB,MAAM,CAAC,QAAQ,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;oBACnD,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAErB,2CAA2C;gBAC3C,MAAM,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;gBAClD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBAEtE,OAAO,CAAC,QAAQ,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,QAAQ,CAAC,+BAA+B,EAAE,KAAc,CAAC,CAAC;YACjE,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;CACJ"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=analysisFormatter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analysisFormatter.test.d.ts","sourceRoot":"","sources":["../../src/tests/analysisFormatter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,92 @@
1
+ import { jsonToMdIssue, jsonToMdAnalysis, formatFileAnalysisToMarkdown, formatMultipleFileAnalysisToMarkdown, } from "../utils/analysisFormatter.js";
2
+ describe("analysisFormatter", () => {
3
+ describe("jsonToMdIssue", () => {
4
+ it("renders issue with lines, snippets, severity and solution", () => {
5
+ const md = jsonToMdIssue({
6
+ issue: "Null pointer",
7
+ uid: "u1",
8
+ start_line: 10,
9
+ end_line: 12,
10
+ issue_code_snippet: "foo.bar();",
11
+ severity: "High",
12
+ solution: "Check nulls",
13
+ solution_code_snippet: "if (foo) foo.bar();",
14
+ }, "TS", "Reliability");
15
+ expect(md).toContain("**Issue:** Null pointer");
16
+ expect(md).toContain("**Quality Aspect:** Reliability");
17
+ expect(md).toContain("**Severity:** High");
18
+ expect(md).toContain("**Lines:** 10-12");
19
+ expect(md).toContain("```ts\nfoo.bar();\n```");
20
+ expect(md).toContain("**Solution:** Check nulls");
21
+ expect(md).toContain("```ts\nif (foo) foo.bar();\n```");
22
+ });
23
+ it("omits optional sections when not provided", () => {
24
+ const md = jsonToMdIssue({
25
+ issue: "Minor style",
26
+ uid: "u2",
27
+ severity: "low",
28
+ solution: "Run formatter",
29
+ }, "JS");
30
+ expect(md).not.toContain("Lines:");
31
+ expect(md).not.toContain("Quality Aspect");
32
+ expect(md).toContain("**Solution:** Run formatter");
33
+ });
34
+ });
35
+ describe("jsonToMdAnalysis", () => {
36
+ it("groups issues and returns markdown per characteristic", () => {
37
+ const md = jsonToMdAnalysis([
38
+ {
39
+ characteristic: "Security",
40
+ description_of_characteristic: "OWASP checks",
41
+ issue_items: [
42
+ { issue: "SQLi", severity: "critical", solution: "Use params", uid: "u3" },
43
+ { issue: "XSS", severity: "medium", solution: "Escape output", uid: "u4" },
44
+ ],
45
+ },
46
+ ], "TS");
47
+ expect(md).toContain("## Security");
48
+ expect(md).toContain("OWASP checks");
49
+ expect(md).toContain("SQLi");
50
+ expect(md).toContain("XSS");
51
+ });
52
+ it("skips null entries gracefully", () => {
53
+ const md = jsonToMdAnalysis([null, {
54
+ characteristic: "Quality",
55
+ description_of_characteristic: "General",
56
+ issue_items: [],
57
+ }], "ts");
58
+ expect(md).toContain("## Quality");
59
+ expect(md).not.toContain("null");
60
+ });
61
+ });
62
+ describe("formatFileAnalysisToMarkdown", () => {
63
+ it("adds file header and delegates to jsonToMdAnalysis", () => {
64
+ const md = formatFileAnalysisToMarkdown([{
65
+ characteristic: "Performance",
66
+ description_of_characteristic: "Speed issues",
67
+ issue_items: [{ issue: "Slow loop", severity: "high", solution: "Optimize" }],
68
+ }], "ts", "app.ts");
69
+ expect(md.startsWith("# Analysis for app.ts")).toBe(true);
70
+ expect(md).toContain("Performance");
71
+ expect(md).toContain("Slow loop");
72
+ });
73
+ it("handles missing analysis array", () => {
74
+ const md = formatFileAnalysisToMarkdown(undefined, "ts", "file.ts");
75
+ expect(md).toContain("No analysis data available.");
76
+ });
77
+ });
78
+ describe("formatMultipleFileAnalysisToMarkdown", () => {
79
+ it("renders multiple files separated by rules", () => {
80
+ const md = formatMultipleFileAnalysisToMarkdown([
81
+ { file_name: "a.ts", language: "ts", analysis: [] },
82
+ { file_name: "b.ts", language: "ts", analysis: [] },
83
+ ]);
84
+ expect(md).toContain("# Code Analysis Results");
85
+ const separators = md.match(/---/g) || [];
86
+ expect(separators.length).toBe(2);
87
+ expect(md).toContain("Analysis for a.ts");
88
+ expect(md).toContain("Analysis for b.ts");
89
+ });
90
+ });
91
+ });
92
+ //# sourceMappingURL=analysisFormatter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analysisFormatter.test.js","sourceRoot":"","sources":["../../src/tests/analysisFormatter.test.ts"],"names":[],"mappings":"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"}
@@ -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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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=backendApiService.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backendApiService.test.d.ts","sourceRoot":"","sources":["../../src/tests/backendApiService.test.ts"],"names":[],"mappings":""}