@codesherlock/codesherlock-alpha-mcp-server 0.0.4 → 0.0.6
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/build/handlers/tools.d.ts.map +1 -1
- package/build/handlers/tools.js +3 -1
- package/build/handlers/tools.js.map +1 -1
- package/build/services/backendApiService.d.ts.map +1 -1
- package/build/services/backendApiService.js +49 -7
- package/build/services/backendApiService.js.map +1 -1
- package/build/services/commitReviewService.d.ts +10 -0
- package/build/services/commitReviewService.d.ts.map +1 -1
- package/build/services/commitReviewService.js +200 -4
- package/build/services/commitReviewService.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/handlers/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/handlers/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,QA0B9C"}
|
package/build/handlers/tools.js
CHANGED
|
@@ -8,7 +8,9 @@ import { createAnalyzeCommitHandler } from "./analyzeCommitHandler.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export function registerTools(server) {
|
|
10
10
|
const gitService = new GitService();
|
|
11
|
-
|
|
11
|
+
// Validate required environment variables
|
|
12
|
+
const backendUrl = process.env.BACKEND_API_URL;
|
|
13
|
+
const backendApiService = new BackendApiService(backendUrl, process.env.MCP_API_KEY);
|
|
12
14
|
const commitReviewService = new CommitReviewService(backendApiService);
|
|
13
15
|
/**
|
|
14
16
|
* Tool: Analyze Commit
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/handlers/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC3C,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/handlers/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC3C,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAEpC,0CAA0C;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAE/C,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAC3C,UAAiB,EACjB,OAAO,CAAC,GAAG,CAAC,WAAW,CAC1B,CAAC;IACF,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAEvE;;;OAGG;IACH,MAAM,CAAC,YAAY,CACf,gBAAgB,EAChB;QACI,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,kGAAkG;QAC/G,WAAW,EAAE,wBAAwB;QACrC,YAAY,EAAE,yBAAyB;KAC1C,EACD,0BAA0B,CAAC,UAAU,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,CACjF,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backendApiService.d.ts","sourceRoot":"","sources":["../../src/services/backendApiService.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAK3B;;;GAGG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"backendApiService.d.ts","sourceRoot":"","sources":["../../src/services/backendApiService.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,23 @@ export class BackendApiService {
|
|
|
11
11
|
wsBaseUrl;
|
|
12
12
|
apiKey;
|
|
13
13
|
constructor(baseUrl, apiKey) {
|
|
14
|
+
if (!baseUrl || baseUrl.trim() === "") {
|
|
15
|
+
throw new Error("BACKEND_API_URL environment variable is required but not set. Please configure it in your .env file or environment variables.");
|
|
16
|
+
}
|
|
14
17
|
this.baseUrl = baseUrl;
|
|
15
|
-
|
|
18
|
+
// Convert HTTP/HTTPS URLs to WebSocket URLs (ws/wss)
|
|
19
|
+
// Handle both http:// and https:// protocols correctly
|
|
20
|
+
if (baseUrl.startsWith("https://")) {
|
|
21
|
+
this.wsBaseUrl = baseUrl.replace(/^https/, "wss");
|
|
22
|
+
}
|
|
23
|
+
else if (baseUrl.startsWith("http://")) {
|
|
24
|
+
this.wsBaseUrl = baseUrl.replace(/^http/, "ws");
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
// If URL doesn't start with http/https, assume ws protocol
|
|
28
|
+
logger.logWarning("Backend URL doesn't start with http/https, assuming WebSocket protocol", { baseUrl });
|
|
29
|
+
this.wsBaseUrl = baseUrl;
|
|
30
|
+
}
|
|
16
31
|
this.apiKey = apiKey;
|
|
17
32
|
}
|
|
18
33
|
/**
|
|
@@ -119,6 +134,15 @@ export class BackendApiService {
|
|
|
119
134
|
try {
|
|
120
135
|
const wsUrl = `${this.wsBaseUrl}/v2/ws/${userId}`;
|
|
121
136
|
logger.logInfo("Connecting to WebSocket", { wsUrl, userId });
|
|
137
|
+
// Validate WebSocket URL format
|
|
138
|
+
if (!wsUrl.startsWith("ws://") && !wsUrl.startsWith("wss://")) {
|
|
139
|
+
const error = new Error(`Invalid WebSocket URL format: ${wsUrl}. ` +
|
|
140
|
+
`Expected URL to start with ws:// or wss://. ` +
|
|
141
|
+
`Please check your BACKEND_API_URL configuration.`);
|
|
142
|
+
logger.logError("Invalid WebSocket URL format", error, { wsUrl, baseUrl: this.baseUrl, wsBaseUrl: this.wsBaseUrl });
|
|
143
|
+
reject(error);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
122
146
|
const ws = new WebSocket(wsUrl);
|
|
123
147
|
ws.on("open", () => {
|
|
124
148
|
logger.logInfo("WebSocket connection opened", { userId });
|
|
@@ -134,19 +158,37 @@ export class BackendApiService {
|
|
|
134
158
|
}
|
|
135
159
|
});
|
|
136
160
|
ws.on("error", (error) => {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
161
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
162
|
+
const enhancedError = new Error(`WebSocket connection failed: ${errorMessage}. ` +
|
|
163
|
+
`URL: ${wsUrl}. ` +
|
|
164
|
+
`Please verify that the backend service is running and accessible.`);
|
|
165
|
+
logger.logError("WebSocket error", enhancedError, { userId, wsUrl });
|
|
166
|
+
onError?.(enhancedError);
|
|
167
|
+
reject(enhancedError);
|
|
140
168
|
});
|
|
141
169
|
ws.on("close", (code, reason) => {
|
|
142
170
|
const reasonStr = reason.toString();
|
|
143
|
-
//
|
|
171
|
+
// Log close events with more detail for debugging
|
|
172
|
+
if (code !== 1000) {
|
|
173
|
+
logger.logWarning("WebSocket closed unexpectedly", {
|
|
174
|
+
userId,
|
|
175
|
+
code: String(code),
|
|
176
|
+
reason: reasonStr,
|
|
177
|
+
wsUrl
|
|
178
|
+
});
|
|
179
|
+
}
|
|
144
180
|
onClose?.(code, reasonStr);
|
|
145
181
|
});
|
|
146
182
|
}
|
|
147
183
|
catch (error) {
|
|
148
|
-
|
|
149
|
-
|
|
184
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
185
|
+
const enhancedError = new Error(`Failed to create WebSocket connection: ${errorMessage}. ` +
|
|
186
|
+
`Please check your network connection and backend service availability.`);
|
|
187
|
+
logger.logError("Error creating WebSocket connection", enhancedError, {
|
|
188
|
+
userId,
|
|
189
|
+
wsBaseUrl: this.wsBaseUrl
|
|
190
|
+
});
|
|
191
|
+
reject(enhancedError);
|
|
150
192
|
}
|
|
151
193
|
});
|
|
152
194
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backendApiService.js","sourceRoot":"","sources":["../../src/services/backendApiService.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAClB,OAAO,CAAS;IAChB,SAAS,CAAS;IAClB,MAAM,CAAU;IAExB,YAAY,OAAe,EAAE,MAAe;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"backendApiService.js","sourceRoot":"","sources":["../../src/services/backendApiService.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,15 @@ export declare class CommitReviewService {
|
|
|
13
13
|
* @returns Analysis results
|
|
14
14
|
*/
|
|
15
15
|
submitAndWaitForResults(params: CommitReviewSubmitParams): Promise<CommitReviewResult>;
|
|
16
|
+
/**
|
|
17
|
+
* Collect analysis results via an already-established WebSocket connection
|
|
18
|
+
* This method reuses an existing WebSocket connection instead of creating a new one
|
|
19
|
+
* @param ws - Already-established WebSocket connection (must be in OPEN state)
|
|
20
|
+
* @param userId - User ID for logging
|
|
21
|
+
* @param timeoutMs - Maximum time to wait for results (default: 10 minutes)
|
|
22
|
+
* @returns Array of analysis results
|
|
23
|
+
*/
|
|
24
|
+
private collectResultsViaEstablishedWebSocket;
|
|
16
25
|
/**
|
|
17
26
|
* Connect to WebSocket and collect analysis results
|
|
18
27
|
* Handles edge cases:
|
|
@@ -21,6 +30,7 @@ export declare class CommitReviewService {
|
|
|
21
30
|
* - Partial results (some files succeed, others fail)
|
|
22
31
|
* - WebSocket completion without explicit completion signal
|
|
23
32
|
* @param userId - User ID for WebSocket connection
|
|
33
|
+
* @param onConnection - Callback when connection is established
|
|
24
34
|
* @param timeoutMs - Maximum time to wait for results (default: 10 minutes)
|
|
25
35
|
* @returns Array of analysis results
|
|
26
36
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commitReviewService.d.ts","sourceRoot":"","sources":["../../src/services/commitReviewService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C;;;GAGG;AACH,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,iBAAiB,CAAoB;gBAEjC,iBAAiB,EAAE,iBAAiB;IAIhD;;;;OAIG;IACG,uBAAuB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"commitReviewService.d.ts","sourceRoot":"","sources":["../../src/services/commitReviewService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C;;;GAGG;AACH,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,iBAAiB,CAAoB;gBAEjC,iBAAiB,EAAE,iBAAiB;IAIhD;;;;OAIG;IACG,uBAAuB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAsJ5F;;;;;;;OAOG;YACW,qCAAqC;IAuKnD;;;;;;;;;;;OAWG;YACW,0BAA0B;CAiM3C;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,MAAM,EAAE,gBAAgB,GAAG,OAAO,GAAG,KAAK,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { logger } from "./loggingService.js";
|
|
2
|
+
import WebSocket from "ws";
|
|
2
3
|
/**
|
|
3
4
|
* Commit Review Service
|
|
4
5
|
* Handles the full flow of submitting commit review and receiving results via WebSocket
|
|
@@ -18,13 +19,45 @@ export class CommitReviewService {
|
|
|
18
19
|
try {
|
|
19
20
|
// IMPORTANT: Establish WebSocket connection (and listeners) BEFORE
|
|
20
21
|
// calling the backend HTTP API so we don't miss any early messages.
|
|
21
|
-
logger.logInfo("Establishing WebSocket connection
|
|
22
|
+
logger.logInfo("Step 1: Establishing WebSocket connection BEFORE submitting review", {
|
|
22
23
|
user_id: params.user_id,
|
|
23
24
|
});
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
// Step 1: Establish WebSocket connection FIRST and wait for it to be fully connected
|
|
26
|
+
const wsConnectionPromise = new Promise((resolve, reject) => {
|
|
27
|
+
this.backendApiService.connectWebSocket(params.user_id, () => { }, // onMessage will be handled by collectResultsViaWebSocket
|
|
28
|
+
(error) => {
|
|
29
|
+
logger.logError("WebSocket connection failed before submit", error, { user_id: params.user_id });
|
|
30
|
+
reject(error);
|
|
31
|
+
}, () => { } // onClose will be handled by collectResultsViaWebSocket
|
|
32
|
+
).then((ws) => {
|
|
33
|
+
// Verify WebSocket is actually open
|
|
34
|
+
if (ws.readyState === WebSocket.OPEN) {
|
|
35
|
+
wsConnection = ws;
|
|
36
|
+
logger.logInfo("✅ WebSocket connection fully established and verified OPEN", {
|
|
37
|
+
user_id: params.user_id,
|
|
38
|
+
readyState: String(ws.readyState)
|
|
39
|
+
});
|
|
40
|
+
resolve(ws);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
const error = new Error(`WebSocket connection not fully open. ReadyState: ${ws.readyState}`);
|
|
44
|
+
logger.logError("❌ WebSocket not in OPEN state", error, {
|
|
45
|
+
user_id: params.user_id,
|
|
46
|
+
readyState: String(ws.readyState)
|
|
47
|
+
});
|
|
48
|
+
reject(error);
|
|
49
|
+
}
|
|
50
|
+
}).catch(reject);
|
|
26
51
|
});
|
|
27
|
-
//
|
|
52
|
+
// CRITICAL: Wait for WebSocket to be fully connected before proceeding
|
|
53
|
+
const establishedWs = await wsConnectionPromise;
|
|
54
|
+
logger.logInfo("✅ WebSocket connection confirmed OPEN, proceeding with HTTP call", {
|
|
55
|
+
user_id: params.user_id,
|
|
56
|
+
});
|
|
57
|
+
// Step 2: Start collecting results via WebSocket (reuse the established connection)
|
|
58
|
+
// We'll set up message handlers on the already-established connection
|
|
59
|
+
const analysisResultsPromise = this.collectResultsViaEstablishedWebSocket(establishedWs, params.user_id);
|
|
60
|
+
// Step 3: Submit commit review via HTTP POST (WebSocket is now connected and ready)
|
|
28
61
|
logger.logInfo("Submitting commit review to backend", {
|
|
29
62
|
user_id: params.user_id,
|
|
30
63
|
factor: params.factor,
|
|
@@ -108,6 +141,168 @@ export class CommitReviewService {
|
|
|
108
141
|
};
|
|
109
142
|
}
|
|
110
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Collect analysis results via an already-established WebSocket connection
|
|
146
|
+
* This method reuses an existing WebSocket connection instead of creating a new one
|
|
147
|
+
* @param ws - Already-established WebSocket connection (must be in OPEN state)
|
|
148
|
+
* @param userId - User ID for logging
|
|
149
|
+
* @param timeoutMs - Maximum time to wait for results (default: 10 minutes)
|
|
150
|
+
* @returns Array of analysis results
|
|
151
|
+
*/
|
|
152
|
+
async collectResultsViaEstablishedWebSocket(ws, userId, timeoutMs = 10 * 60 * 1000 // 10 minutes default timeout
|
|
153
|
+
) {
|
|
154
|
+
const analysisResults = [];
|
|
155
|
+
let wsError = null;
|
|
156
|
+
let wsStatusCode;
|
|
157
|
+
let wsErrorMessage;
|
|
158
|
+
let isComplete = false;
|
|
159
|
+
let timeoutId;
|
|
160
|
+
// Verify WebSocket is open
|
|
161
|
+
if (ws.readyState !== WebSocket.OPEN) {
|
|
162
|
+
throw new Error(`WebSocket must be in OPEN state. Current state: ${ws.readyState}`);
|
|
163
|
+
}
|
|
164
|
+
// Set up timeout to prevent indefinite waiting
|
|
165
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
166
|
+
timeoutId = setTimeout(() => {
|
|
167
|
+
if (!isComplete) {
|
|
168
|
+
wsError = "Analysis timeout: The analysis took too long to complete. Please try again with fewer files or contact support if the issue persists.";
|
|
169
|
+
logger.logError("WebSocket timeout", new Error(wsError), {
|
|
170
|
+
user_id: userId,
|
|
171
|
+
timeoutMs: String(timeoutMs),
|
|
172
|
+
});
|
|
173
|
+
ws.close();
|
|
174
|
+
reject(new Error(wsError));
|
|
175
|
+
}
|
|
176
|
+
}, timeoutMs);
|
|
177
|
+
});
|
|
178
|
+
return new Promise((resolve, reject) => {
|
|
179
|
+
// Set up message handler
|
|
180
|
+
const messageHandler = (data) => {
|
|
181
|
+
try {
|
|
182
|
+
const message = JSON.parse(data.toString());
|
|
183
|
+
// Clear timeout on first message (analysis has started)
|
|
184
|
+
if (timeoutId) {
|
|
185
|
+
clearTimeout(timeoutId);
|
|
186
|
+
// Reset timeout to allow more time for completion
|
|
187
|
+
timeoutId = setTimeout(() => {
|
|
188
|
+
if (!isComplete) {
|
|
189
|
+
wsError = "Analysis timeout: The analysis is taking longer than expected. Please try again or contact support.";
|
|
190
|
+
logger.logError("WebSocket timeout after receiving initial results", new Error(wsError), {
|
|
191
|
+
user_id: userId,
|
|
192
|
+
resultsReceived: String(analysisResults.length),
|
|
193
|
+
});
|
|
194
|
+
ws.close();
|
|
195
|
+
cleanup();
|
|
196
|
+
reject(new Error(wsError));
|
|
197
|
+
}
|
|
198
|
+
}, timeoutMs);
|
|
199
|
+
}
|
|
200
|
+
// Handle WebSocket error messages from backend
|
|
201
|
+
if (message.status_code !== 200 && message.status_code !== undefined) {
|
|
202
|
+
wsStatusCode = message.status_code;
|
|
203
|
+
wsErrorMessage = message.error_message || "Unknown error from backend";
|
|
204
|
+
wsError = wsErrorMessage || "Unknown error from backend";
|
|
205
|
+
isComplete = true;
|
|
206
|
+
if (timeoutId)
|
|
207
|
+
clearTimeout(timeoutId);
|
|
208
|
+
logger.logError("WebSocket error message received", new Error(wsErrorMessage), {
|
|
209
|
+
status_code: String(wsStatusCode),
|
|
210
|
+
user_id: userId,
|
|
211
|
+
});
|
|
212
|
+
cleanup();
|
|
213
|
+
reject(new Error(wsError || "Unknown error from backend"));
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
if (message.content) {
|
|
217
|
+
const isCommitReview = message.content.analysis_type === "commit_review";
|
|
218
|
+
if (isCommitReview) {
|
|
219
|
+
const file_name = message.content.file_name?.replace(/\\/g, "/") || "";
|
|
220
|
+
const analysis = message.content.analysis;
|
|
221
|
+
if (file_name && analysis !== undefined && analysis !== null) {
|
|
222
|
+
analysisResults.push({
|
|
223
|
+
analysis: analysis,
|
|
224
|
+
language: message.content.language,
|
|
225
|
+
file_name: file_name,
|
|
226
|
+
analysisId: message.analysis_id ?? 0,
|
|
227
|
+
});
|
|
228
|
+
logger.logInfo("Analysis result received for file", {
|
|
229
|
+
user_id: userId,
|
|
230
|
+
file_name: file_name,
|
|
231
|
+
result_count: String(analysisResults.length),
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
// Check if analysis is complete
|
|
235
|
+
if (message.content.is_complete || message.content.status === "complete") {
|
|
236
|
+
isComplete = true;
|
|
237
|
+
if (timeoutId)
|
|
238
|
+
clearTimeout(timeoutId);
|
|
239
|
+
logger.logInfo("Analysis marked as complete", {
|
|
240
|
+
user_id: userId,
|
|
241
|
+
total_results: String(analysisResults.length),
|
|
242
|
+
});
|
|
243
|
+
cleanup();
|
|
244
|
+
resolve(analysisResults);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
catch (error) {
|
|
250
|
+
logger.logError("Error parsing WebSocket message", error);
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
const errorHandler = (error) => {
|
|
254
|
+
if (timeoutId)
|
|
255
|
+
clearTimeout(timeoutId);
|
|
256
|
+
wsError = error.message;
|
|
257
|
+
logger.logError("WebSocket connection error", error, { user_id: userId });
|
|
258
|
+
cleanup();
|
|
259
|
+
reject(error);
|
|
260
|
+
};
|
|
261
|
+
const closeHandler = (code, reason) => {
|
|
262
|
+
if (timeoutId)
|
|
263
|
+
clearTimeout(timeoutId);
|
|
264
|
+
const reasonStr = reason.toString();
|
|
265
|
+
if (code !== 1000 && !isComplete) {
|
|
266
|
+
wsError = `Connection closed unexpectedly: ${reasonStr}`;
|
|
267
|
+
logger.logWarning("WebSocket closed unexpectedly", {
|
|
268
|
+
code: String(code),
|
|
269
|
+
reason: reasonStr,
|
|
270
|
+
user_id: userId,
|
|
271
|
+
isComplete: String(isComplete),
|
|
272
|
+
results_received: String(analysisResults.length),
|
|
273
|
+
});
|
|
274
|
+
cleanup();
|
|
275
|
+
reject(new Error(wsError));
|
|
276
|
+
}
|
|
277
|
+
else if (code === 1000 && !isComplete) {
|
|
278
|
+
logger.logInfo("WebSocket closed normally, treating as completion", {
|
|
279
|
+
user_id: userId,
|
|
280
|
+
results_received: String(analysisResults.length),
|
|
281
|
+
});
|
|
282
|
+
isComplete = true;
|
|
283
|
+
cleanup();
|
|
284
|
+
resolve(analysisResults);
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
cleanup();
|
|
288
|
+
resolve(analysisResults);
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
const cleanup = () => {
|
|
292
|
+
ws.removeListener("message", messageHandler);
|
|
293
|
+
ws.removeListener("error", errorHandler);
|
|
294
|
+
ws.removeListener("close", closeHandler);
|
|
295
|
+
};
|
|
296
|
+
// Attach event handlers to the already-established connection
|
|
297
|
+
ws.on("message", messageHandler);
|
|
298
|
+
ws.on("error", errorHandler);
|
|
299
|
+
ws.on("close", closeHandler);
|
|
300
|
+
// Race timeout - will be resolved by handlers
|
|
301
|
+
timeoutPromise.catch(() => {
|
|
302
|
+
// Timeout already handled in timeoutPromise
|
|
303
|
+
});
|
|
304
|
+
});
|
|
305
|
+
}
|
|
111
306
|
/**
|
|
112
307
|
* Connect to WebSocket and collect analysis results
|
|
113
308
|
* Handles edge cases:
|
|
@@ -116,6 +311,7 @@ export class CommitReviewService {
|
|
|
116
311
|
* - Partial results (some files succeed, others fail)
|
|
117
312
|
* - WebSocket completion without explicit completion signal
|
|
118
313
|
* @param userId - User ID for WebSocket connection
|
|
314
|
+
* @param onConnection - Callback when connection is established
|
|
119
315
|
* @param timeoutMs - Maximum time to wait for results (default: 10 minutes)
|
|
120
316
|
* @returns Array of analysis results
|
|
121
317
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commitReviewService.js","sourceRoot":"","sources":["../../src/services/commitReviewService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commitReviewService.js","sourceRoot":"","sources":["../../src/services/commitReviewService.ts"],"names":[],"mappings":"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"}
|