@aws/lsp-codewhisperer 0.0.69 → 0.0.70

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 (96) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/out/language-server/agenticChat/agenticChatController.js +32 -26
  3. package/out/language-server/agenticChat/agenticChatController.js.map +1 -1
  4. package/out/language-server/agenticChat/constants/constants.d.ts +1 -1
  5. package/out/language-server/agenticChat/constants/constants.js +2 -1
  6. package/out/language-server/agenticChat/constants/constants.js.map +1 -1
  7. package/out/language-server/agenticChat/constants/toolConstants.d.ts +1 -1
  8. package/out/language-server/agenticChat/constants/toolConstants.js +2 -2
  9. package/out/language-server/agenticChat/constants/toolConstants.js.map +1 -1
  10. package/out/language-server/agenticChat/context/agenticChatTriggerContext.js +1 -1
  11. package/out/language-server/agenticChat/context/agenticChatTriggerContext.js.map +1 -1
  12. package/out/language-server/agenticChat/qAgenticChatServer.d.ts +1 -1
  13. package/out/language-server/agenticChat/qAgenticChatServer.js +7 -8
  14. package/out/language-server/agenticChat/qAgenticChatServer.js.map +1 -1
  15. package/out/language-server/agenticChat/tools/chatDb/chatDb.d.ts +1 -0
  16. package/out/language-server/agenticChat/tools/chatDb/chatDb.js +3 -3
  17. package/out/language-server/agenticChat/tools/chatDb/chatDb.js.map +1 -1
  18. package/out/language-server/agenticChat/tools/executeBash.js +6 -6
  19. package/out/language-server/agenticChat/tools/executeBash.js.map +1 -1
  20. package/out/language-server/agenticChat/tools/mcp/mcpEventHandler.js +1 -2
  21. package/out/language-server/agenticChat/tools/mcp/mcpEventHandler.js.map +1 -1
  22. package/out/language-server/agenticChat/tools/mcp/mcpManager.d.ts +5 -0
  23. package/out/language-server/agenticChat/tools/mcp/mcpManager.js +60 -1
  24. package/out/language-server/agenticChat/tools/mcp/mcpManager.js.map +1 -1
  25. package/out/language-server/agenticChat/tools/mcp/mcpUtils.d.ts +1 -0
  26. package/out/language-server/agenticChat/tools/mcp/mcpUtils.js +5 -0
  27. package/out/language-server/agenticChat/tools/mcp/mcpUtils.js.map +1 -1
  28. package/out/language-server/agenticChat/tools/qCodeAnalysis/{qCodeReview.d.ts → codeReview.d.ts} +3 -3
  29. package/out/language-server/agenticChat/tools/qCodeAnalysis/{qCodeReview.js → codeReview.js} +172 -115
  30. package/out/language-server/agenticChat/tools/qCodeAnalysis/codeReview.js.map +1 -0
  31. package/out/language-server/agenticChat/tools/qCodeAnalysis/{qCodeReviewConstants.d.ts → codeReviewConstants.d.ts} +7 -6
  32. package/out/language-server/agenticChat/tools/qCodeAnalysis/{qCodeReviewConstants.js → codeReviewConstants.js} +31 -20
  33. package/out/language-server/agenticChat/tools/qCodeAnalysis/codeReviewConstants.js.map +1 -0
  34. package/out/language-server/agenticChat/tools/qCodeAnalysis/codeReviewErrors.d.ts +12 -0
  35. package/out/language-server/agenticChat/tools/qCodeAnalysis/codeReviewErrors.js +32 -0
  36. package/out/language-server/agenticChat/tools/qCodeAnalysis/codeReviewErrors.js.map +1 -0
  37. package/out/language-server/agenticChat/tools/qCodeAnalysis/{qCodeReviewSchemas.d.ts → codeReviewSchemas.d.ts} +6 -6
  38. package/out/language-server/agenticChat/tools/qCodeAnalysis/{qCodeReviewSchemas.js → codeReviewSchemas.js} +15 -15
  39. package/out/language-server/agenticChat/tools/qCodeAnalysis/codeReviewSchemas.js.map +1 -0
  40. package/out/language-server/agenticChat/tools/qCodeAnalysis/{qCodeReviewTypes.d.ts → codeReviewTypes.d.ts} +22 -1
  41. package/out/language-server/agenticChat/tools/qCodeAnalysis/codeReviewTypes.js +15 -0
  42. package/out/language-server/agenticChat/tools/qCodeAnalysis/codeReviewTypes.js.map +1 -0
  43. package/out/language-server/agenticChat/tools/qCodeAnalysis/{qCodeReviewUtils.d.ts → codeReviewUtils.d.ts} +10 -14
  44. package/out/language-server/agenticChat/tools/qCodeAnalysis/{qCodeReviewUtils.js → codeReviewUtils.js} +29 -46
  45. package/out/language-server/agenticChat/tools/qCodeAnalysis/codeReviewUtils.js.map +1 -0
  46. package/out/language-server/agenticChat/tools/toolServer.js +8 -8
  47. package/out/language-server/agenticChat/tools/toolServer.js.map +1 -1
  48. package/out/language-server/chat/chatSessionService.js +19 -5
  49. package/out/language-server/chat/chatSessionService.js.map +1 -1
  50. package/out/language-server/chat/telemetry/chatTelemetryController.d.ts +3 -2
  51. package/out/language-server/chat/telemetry/chatTelemetryController.js +12 -2
  52. package/out/language-server/chat/telemetry/chatTelemetryController.js.map +1 -1
  53. package/out/language-server/configuration/qConfigurationServer.d.ts +1 -1
  54. package/out/language-server/inline-completion/codeWhispererServer.js +8 -106
  55. package/out/language-server/inline-completion/codeWhispererServer.js.map +1 -1
  56. package/out/language-server/inline-completion/telemetry.d.ts +9 -0
  57. package/out/language-server/inline-completion/telemetry.js +109 -0
  58. package/out/language-server/inline-completion/telemetry.js.map +1 -0
  59. package/out/language-server/netTransform/validation.d.ts +5 -0
  60. package/out/language-server/netTransform/validation.js +9 -2
  61. package/out/language-server/netTransform/validation.js.map +1 -1
  62. package/out/language-server/workspaceContext/artifactManager.d.ts +1 -0
  63. package/out/language-server/workspaceContext/artifactManager.js +31 -14
  64. package/out/language-server/workspaceContext/artifactManager.js.map +1 -1
  65. package/out/language-server/workspaceContext/workspaceContextServer.js +2 -0
  66. package/out/language-server/workspaceContext/workspaceContextServer.js.map +1 -1
  67. package/out/language-server/workspaceContext/workspaceFolderManager.d.ts +3 -0
  68. package/out/language-server/workspaceContext/workspaceFolderManager.js +24 -5
  69. package/out/language-server/workspaceContext/workspaceFolderManager.js.map +1 -1
  70. package/out/shared/amazonQServiceManager/AmazonQTokenServiceManager.d.ts +1 -0
  71. package/out/shared/amazonQServiceManager/AmazonQTokenServiceManager.js +16 -7
  72. package/out/shared/amazonQServiceManager/AmazonQTokenServiceManager.js.map +1 -1
  73. package/out/shared/amazonQServiceManager/qDeveloperProfiles.js +48 -5
  74. package/out/shared/amazonQServiceManager/qDeveloperProfiles.js.map +1 -1
  75. package/out/shared/codeWhispererService.js +1 -0
  76. package/out/shared/codeWhispererService.js.map +1 -1
  77. package/out/shared/languageDetection.d.ts +14 -0
  78. package/out/shared/languageDetection.js +22 -0
  79. package/out/shared/languageDetection.js.map +1 -1
  80. package/out/shared/localProjectContextController.js +1 -3
  81. package/out/shared/localProjectContextController.js.map +1 -1
  82. package/out/shared/supplementalContextUtil/crossFileContextUtil.js +0 -10
  83. package/out/shared/supplementalContextUtil/crossFileContextUtil.js.map +1 -1
  84. package/out/shared/telemetry/types.d.ts +11 -0
  85. package/out/shared/telemetry/types.js +7 -1
  86. package/out/shared/telemetry/types.js.map +1 -1
  87. package/package.json +2 -2
  88. package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReview.js.map +0 -1
  89. package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewConstants.js.map +0 -1
  90. package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewErrors.d.ts +0 -12
  91. package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewErrors.js +0 -32
  92. package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewErrors.js.map +0 -1
  93. package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewSchemas.js.map +0 -1
  94. package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewTypes.js +0 -3
  95. package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewTypes.js.map +0 -1
  96. package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewUtils.js.map +0 -1
@@ -1,35 +1,36 @@
1
1
  "use strict";
2
2
  /* eslint-disable import/no-nodejs-modules */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.QCodeReview = void 0;
5
- const qCodeReviewConstants_1 = require("./qCodeReviewConstants");
6
- const qCodeReviewUtils_1 = require("./qCodeReviewUtils");
7
- const qCodeReviewSchemas_1 = require("./qCodeReviewSchemas");
4
+ exports.CodeReview = void 0;
5
+ const codeReviewConstants_1 = require("./codeReviewConstants");
6
+ const codeReviewUtils_1 = require("./codeReviewUtils");
7
+ const codeReviewSchemas_1 = require("./codeReviewSchemas");
8
8
  const crypto_1 = require("crypto");
9
9
  const crypto = require("crypto");
10
10
  const path = require("path");
11
11
  const JSZip = require("jszip");
12
12
  const fs_1 = require("fs");
13
- const qCodeReviewErrors_1 = require("./qCodeReviewErrors");
13
+ const codeReviewErrors_1 = require("./codeReviewErrors");
14
+ const codeReviewTypes_1 = require("./codeReviewTypes");
14
15
  const lsp_core_1 = require("@aws/lsp-core");
15
- class QCodeReview {
16
+ class CodeReview {
16
17
  static CUSTOMER_CODE_BASE_PATH = 'customerCodeBaseFolder';
17
18
  static CODE_ARTIFACT_PATH = 'code_artifact';
18
19
  static CUSTOMER_CODE_ZIP_NAME = 'customerCode.zip';
19
20
  static CODE_DIFF_PATH = 'code_artifact/codeDiff/customerCodeDiff.diff';
20
21
  static RULE_ARTIFACT_PATH = '.amazonq/rules';
21
- static MAX_POLLING_ATTEMPTS = 30;
22
- static MID_POLLING_ATTEMPTS = 15;
22
+ static MAX_POLLING_ATTEMPTS = 60;
23
+ static MID_POLLING_ATTEMPTS = 20;
23
24
  static POLLING_INTERVAL_MS = 10000;
24
25
  static UPLOAD_INTENT = 'AGENTIC_CODE_REVIEW';
25
26
  static SCAN_SCOPE = 'AGENTIC';
26
27
  static MAX_FINDINGS_COUNT = 50;
27
28
  static ERROR_MESSAGES = {
28
29
  MISSING_CLIENT: 'CodeWhisperer client not available',
29
- MISSING_ARTIFACTS: `Missing fileLevelArtifacts and folderLevelArtifacts for ${qCodeReviewConstants_1.Q_CODE_REVIEW_TOOL_NAME} tool. Ask user to provide a specific file / folder / workspace which has code that can be scanned.`,
30
+ MISSING_ARTIFACTS: `Missing fileLevelArtifacts and folderLevelArtifacts for ${codeReviewConstants_1.CODE_REVIEW_TOOL_NAME} tool. Ask user to provide a specific file / folder / workspace which has code that can be scanned.`,
30
31
  MISSING_FILES_TO_SCAN: `There are no valid files to scan. Ask user to provide a specific file / folder / workspace which has code that can be scanned.`,
31
- UPLOAD_FAILED: `Failed to upload artifact for code review in ${qCodeReviewConstants_1.Q_CODE_REVIEW_TOOL_NAME} tool.`,
32
- START_CODE_ANALYSIS_FAILED: (jobId) => `Failed to start code analysis in ${qCodeReviewConstants_1.Q_CODE_REVIEW_TOOL_NAME} tool for jobId - ${jobId}`,
32
+ UPLOAD_FAILED: `Failed to upload artifact for code review in ${codeReviewConstants_1.CODE_REVIEW_TOOL_NAME} tool.`,
33
+ START_CODE_ANALYSIS_FAILED: (scanName, errorMessage) => `Failed to start code analysis for scanName - ${scanName} due to - ${errorMessage}`,
33
34
  CODE_ANALYSIS_FAILED: (jobId, message) => `Code analysis failed for jobId - ${jobId} due to ${message}`,
34
35
  SCAN_FAILED: 'Code scan failed',
35
36
  TIMEOUT: (attempts) => `Code scan timed out after ${attempts} attempts. Ask user to provide a smaller size of code to scan.`,
@@ -47,11 +48,11 @@ class QCodeReview {
47
48
  this.telemetry = features.telemetry;
48
49
  this.workspace = features.workspace;
49
50
  }
50
- static toolName = qCodeReviewConstants_1.Q_CODE_REVIEW_TOOL_NAME;
51
- static toolDescription = qCodeReviewConstants_1.Q_CODE_REVIEW_TOOL_DESCRIPTION;
52
- static inputSchema = qCodeReviewSchemas_1.Q_CODE_REVIEW_INPUT_SCHEMA;
51
+ static toolName = codeReviewConstants_1.CODE_REVIEW_TOOL_NAME;
52
+ static toolDescription = codeReviewConstants_1.CODE_REVIEW_TOOL_DESCRIPTION;
53
+ static inputSchema = codeReviewSchemas_1.CODE_REVIEW_INPUT_SCHEMA;
53
54
  /**
54
- * Main execution method for the QCodeReview tool
55
+ * Main execution method for the CodeReview tool
55
56
  * @param input User input parameters for code review
56
57
  * @param context Execution context containing clients and tokens
57
58
  * @returns Output containing code review results or error message
@@ -59,7 +60,7 @@ class QCodeReview {
59
60
  async execute(input, context) {
60
61
  let chatStreamWriter;
61
62
  try {
62
- this.logging.info(`Executing ${qCodeReviewConstants_1.Q_CODE_REVIEW_TOOL_NAME}: ${JSON.stringify(input)}`);
63
+ this.logging.info(`Executing ${codeReviewConstants_1.CODE_REVIEW_TOOL_NAME}: ${JSON.stringify(input)}`);
63
64
  // 1. Validate input
64
65
  const setup = await this.validateInputAndSetup(input, context);
65
66
  this.checkCancellation();
@@ -73,10 +74,10 @@ class QCodeReview {
73
74
  this.checkCancellation();
74
75
  await chatStreamWriter?.write('Reviewing your code...');
75
76
  // 4. Wait for scan to complete
76
- await this.pollForCompletion(analysisResult.jobId, setup.scanName, setup.artifactType, chatStreamWriter);
77
+ await this.pollForCompletion(analysisResult.jobId, setup, uploadResult, chatStreamWriter);
77
78
  this.checkCancellation();
78
79
  // 5. Process scan result
79
- const results = await this.processResults(setup, uploadResult.isCodeDiffPresent, analysisResult.jobId);
80
+ const results = await this.processResults(setup, uploadResult, analysisResult.jobId);
80
81
  return {
81
82
  output: {
82
83
  kind: 'json',
@@ -115,18 +116,25 @@ class QCodeReview {
115
116
  this.writableStream = context.writableStream;
116
117
  this.codeWhispererClient = context.codeWhispererClient;
117
118
  if (!this.codeWhispererClient) {
118
- throw new Error(QCodeReview.ERROR_MESSAGES.MISSING_CLIENT);
119
+ throw new Error(CodeReview.ERROR_MESSAGES.MISSING_CLIENT);
119
120
  }
120
121
  // parse input
121
- const validatedInput = qCodeReviewSchemas_1.Z_Q_CODE_REVIEW_INPUT_SCHEMA.parse(input);
122
+ const validatedInput = codeReviewSchemas_1.Z_CODE_REVIEW_INPUT_SCHEMA.parse(input);
122
123
  const fileArtifacts = validatedInput.fileLevelArtifacts || [];
123
124
  const folderArtifacts = validatedInput.folderLevelArtifacts || [];
124
125
  const ruleArtifacts = validatedInput.ruleArtifacts || [];
125
126
  if (fileArtifacts.length === 0 && folderArtifacts.length === 0) {
126
- qCodeReviewUtils_1.QCodeReviewUtils.emitMetric('MissingFilesOrFolders', {}, qCodeReviewConstants_1.Q_CODE_REVIEW_TOOL_NAME, this.logging, this.telemetry, this.credentialsProvider.getConnectionMetadata()?.sso?.startUrl);
127
- throw new qCodeReviewErrors_1.QCodeReviewValidationError(QCodeReview.ERROR_MESSAGES.MISSING_ARTIFACTS);
127
+ codeReviewUtils_1.CodeReviewUtils.emitMetric({
128
+ reason: codeReviewTypes_1.FailedMetricName.MissingFileOrFolder,
129
+ result: 'Failed',
130
+ reasonDesc: CodeReview.ERROR_MESSAGES.MISSING_ARTIFACTS,
131
+ metadata: {
132
+ credentialStartUrl: this.credentialsProvider.getConnectionMetadata()?.sso?.startUrl,
133
+ },
134
+ }, this.logging, this.telemetry);
135
+ throw new codeReviewErrors_1.CodeReviewValidationError(CodeReview.ERROR_MESSAGES.MISSING_ARTIFACTS);
128
136
  }
129
- const isFullReviewRequest = validatedInput.scopeOfReview?.toUpperCase() === qCodeReviewConstants_1.FULL_REVIEW;
137
+ const isFullReviewRequest = validatedInput.scopeOfReview?.toUpperCase() === codeReviewConstants_1.FULL_REVIEW;
130
138
  const artifactType = fileArtifacts.length > 0 ? 'FILE' : 'FOLDER';
131
139
  // Setting java as default language
132
140
  // TODO: Remove requirement of programming language
@@ -149,11 +157,11 @@ class QCodeReview {
149
157
  * @returns Upload result with uploadId or error message
150
158
  */
151
159
  async prepareAndUploadArtifacts(setup) {
152
- const { zipBuffer, md5Hash, isCodeDiffPresent } = await this.prepareFilesAndFoldersForUpload(setup.fileArtifacts, setup.folderArtifacts, setup.ruleArtifacts, setup.isFullReviewRequest);
160
+ const { zipBuffer, md5Hash, isCodeDiffPresent, programmingLanguages } = await this.prepareFilesAndFoldersForUpload(setup.fileArtifacts, setup.folderArtifacts, setup.ruleArtifacts, setup.isFullReviewRequest);
153
161
  const uploadUrlResponse = await this.codeWhispererClient.createUploadUrl({
154
162
  contentLength: zipBuffer.length,
155
163
  contentMd5: md5Hash,
156
- uploadIntent: QCodeReview.UPLOAD_INTENT,
164
+ uploadIntent: CodeReview.UPLOAD_INTENT,
157
165
  uploadContext: {
158
166
  codeAnalysisUploadContext: {
159
167
  codeScanName: setup.scanName,
@@ -161,22 +169,27 @@ class QCodeReview {
161
169
  },
162
170
  });
163
171
  if (!uploadUrlResponse.uploadUrl || !uploadUrlResponse.uploadId) {
164
- qCodeReviewUtils_1.QCodeReviewUtils.emitMetric('createUploadUrlFailed', {
165
- codeScanName: setup.scanName,
166
- contentLength: zipBuffer.length,
167
- uploadIntent: QCodeReview.UPLOAD_INTENT,
168
- response: uploadUrlResponse,
169
- }, qCodeReviewConstants_1.Q_CODE_REVIEW_TOOL_NAME, this.logging, this.telemetry, this.credentialsProvider.getConnectionMetadata()?.sso?.startUrl);
170
- throw new qCodeReviewErrors_1.QCodeReviewValidationError(QCodeReview.ERROR_MESSAGES.UPLOAD_FAILED);
172
+ codeReviewUtils_1.CodeReviewUtils.emitMetric({
173
+ reason: codeReviewTypes_1.FailedMetricName.CreateUploadUrlFailed,
174
+ result: 'Failed',
175
+ reasonDesc: CodeReview.ERROR_MESSAGES.UPLOAD_FAILED,
176
+ metadata: {
177
+ artifactType: setup.artifactType,
178
+ codewhispererCodeScanJobId: setup.scanName,
179
+ codewhispererCodeScanSrcZipFileBytes: zipBuffer.length,
180
+ credentialStartUrl: this.credentialsProvider.getConnectionMetadata()?.sso?.startUrl,
181
+ programmingLanguages: programmingLanguages,
182
+ },
183
+ }, this.logging, this.telemetry);
184
+ throw new codeReviewErrors_1.CodeReviewValidationError(CodeReview.ERROR_MESSAGES.UPLOAD_FAILED);
171
185
  }
172
- await qCodeReviewUtils_1.QCodeReviewUtils.uploadFileToPresignedUrl(uploadUrlResponse.uploadUrl, zipBuffer, uploadUrlResponse.requestHeaders || {}, this.logging);
173
- qCodeReviewUtils_1.QCodeReviewUtils.emitMetric('uploadArtifactSuccess', {
174
- codeScanName: setup.scanName,
175
- codeArtifactId: uploadUrlResponse.uploadId,
186
+ await codeReviewUtils_1.CodeReviewUtils.uploadFileToPresignedUrl(uploadUrlResponse.uploadUrl, zipBuffer, uploadUrlResponse.requestHeaders || {}, this.logging);
187
+ return {
188
+ uploadId: uploadUrlResponse.uploadId,
189
+ isCodeDiffPresent,
176
190
  artifactSize: zipBuffer.length,
177
- artifactType: setup.artifactType,
178
- }, qCodeReviewConstants_1.Q_CODE_REVIEW_TOOL_NAME, this.logging, this.telemetry, this.credentialsProvider.getConnectionMetadata()?.sso?.startUrl);
179
- return { uploadId: uploadUrlResponse.uploadId, isCodeDiffPresent };
191
+ programmingLanguages: programmingLanguages,
192
+ };
180
193
  }
181
194
  /**
182
195
  * Initiates code analysis with the uploaded artifacts
@@ -188,21 +201,27 @@ class QCodeReview {
188
201
  const createResponse = await this.codeWhispererClient.startCodeAnalysis({
189
202
  artifacts: { SourceCode: uploadResult.uploadId },
190
203
  programmingLanguage: { languageName: setup.programmingLanguage },
191
- clientToken: qCodeReviewUtils_1.QCodeReviewUtils.generateClientToken(),
204
+ clientToken: codeReviewUtils_1.CodeReviewUtils.generateClientToken(),
192
205
  codeScanName: setup.scanName,
193
- scope: QCodeReview.SCAN_SCOPE,
206
+ scope: CodeReview.SCAN_SCOPE,
194
207
  codeDiffMetadata: uploadResult.isCodeDiffPresent ? { codeDiffPath: '/code_artifact/codeDiff/' } : undefined,
195
208
  });
196
209
  if (!createResponse.jobId) {
197
- qCodeReviewUtils_1.QCodeReviewUtils.emitMetric('startCodeAnalysisFailed', {
198
- artifacts: { SourceCode: uploadResult.uploadId },
199
- programmingLanguage: { languageName: setup.programmingLanguage },
200
- codeScanName: setup.scanName,
201
- scope: QCodeReview.SCAN_SCOPE,
202
- artifactType: setup.artifactType,
203
- response: createResponse,
204
- }, qCodeReviewConstants_1.Q_CODE_REVIEW_TOOL_NAME, this.logging, this.telemetry, this.credentialsProvider.getConnectionMetadata()?.sso?.startUrl);
205
- throw new qCodeReviewErrors_1.QCodeReviewInternalError(QCodeReview.ERROR_MESSAGES.START_CODE_ANALYSIS_FAILED(createResponse.jobId));
210
+ codeReviewUtils_1.CodeReviewUtils.emitMetric({
211
+ reason: codeReviewTypes_1.FailedMetricName.CodeScanFailed,
212
+ result: 'Failed',
213
+ reasonDesc: CodeReview.ERROR_MESSAGES.START_CODE_ANALYSIS_FAILED(setup.scanName, createResponse.errorMessage),
214
+ metadata: {
215
+ artifactType: setup.artifactType,
216
+ codewhispererCodeScanJobId: setup.scanName,
217
+ codewhispererCodeScanSrcZipFileBytes: uploadResult.artifactSize,
218
+ credentialStartUrl: this.credentialsProvider.getConnectionMetadata()?.sso?.startUrl,
219
+ customRules: setup.ruleArtifacts.length,
220
+ programmingLanguages: Array.from(uploadResult.programmingLanguages),
221
+ scope: setup.isFullReviewRequest ? codeReviewConstants_1.FULL_REVIEW : codeReviewConstants_1.CODE_DIFF_REVIEW,
222
+ },
223
+ }, this.logging, this.telemetry);
224
+ throw new codeReviewErrors_1.CodeReviewInternalError(CodeReview.ERROR_MESSAGES.START_CODE_ANALYSIS_FAILED(setup.scanName, createResponse.errorMessage));
206
225
  }
207
226
  this.logging.info(`Code scan created with job ID: ${createResponse.jobId}`);
208
227
  return {
@@ -217,38 +236,56 @@ class QCodeReview {
217
236
  * @param artifactType Type of artifact being scanned (FILE or FOLDER)
218
237
  * @param chatStreamWriter Stream writer for sending progress updates
219
238
  */
220
- async pollForCompletion(jobId, scanName, artifactType, chatStreamWriter) {
239
+ async pollForCompletion(jobId, setup, uploadResult, chatStreamWriter) {
221
240
  let status = 'Pending';
222
241
  let attemptCount = 0;
223
- while (status === 'Pending' && attemptCount < QCodeReview.MAX_POLLING_ATTEMPTS) {
242
+ while (status === 'Pending' && attemptCount < CodeReview.MAX_POLLING_ATTEMPTS) {
224
243
  this.logging.info(`Code scan status: ${status}, waiting...`);
225
- await new Promise(resolve => setTimeout(resolve, QCodeReview.POLLING_INTERVAL_MS));
244
+ await new Promise(resolve => setTimeout(resolve, CodeReview.POLLING_INTERVAL_MS));
226
245
  const statusResponse = await this.getCodeAnalysisStatus(jobId);
227
246
  status = statusResponse.status;
228
247
  attemptCount++;
229
248
  if (statusResponse.errorMessage) {
230
- qCodeReviewUtils_1.QCodeReviewUtils.emitMetric('codeAnalysisFailed', {
231
- codeScanName: scanName,
232
- codeReviewId: jobId,
233
- status,
234
- artifactType,
235
- message: statusResponse.errorMessage,
236
- }, qCodeReviewConstants_1.Q_CODE_REVIEW_TOOL_NAME, this.logging, this.telemetry, this.credentialsProvider.getConnectionMetadata()?.sso?.startUrl);
237
- throw new qCodeReviewErrors_1.QCodeReviewInternalError(QCodeReview.ERROR_MESSAGES.CODE_ANALYSIS_FAILED(jobId, statusResponse.errorMessage));
249
+ codeReviewUtils_1.CodeReviewUtils.emitMetric({
250
+ reason: codeReviewTypes_1.FailedMetricName.CodeScanFailed,
251
+ result: 'Failed',
252
+ reasonDesc: CodeReview.ERROR_MESSAGES.CODE_ANALYSIS_FAILED(jobId, statusResponse.errorMessage),
253
+ metadata: {
254
+ artifactType: setup.artifactType,
255
+ codewhispererCodeScanJobId: jobId,
256
+ codewhispererCodeScanSrcZipFileBytes: uploadResult.artifactSize,
257
+ credentialStartUrl: this.credentialsProvider.getConnectionMetadata()?.sso?.startUrl,
258
+ customRules: setup.ruleArtifacts.length,
259
+ programmingLanguages: Array.from(uploadResult.programmingLanguages),
260
+ scope: setup.isFullReviewRequest ? codeReviewConstants_1.FULL_REVIEW : codeReviewConstants_1.CODE_DIFF_REVIEW,
261
+ status: status,
262
+ },
263
+ }, this.logging, this.telemetry);
264
+ throw new codeReviewErrors_1.CodeReviewInternalError(CodeReview.ERROR_MESSAGES.CODE_ANALYSIS_FAILED(jobId, statusResponse.errorMessage));
238
265
  }
239
- if (attemptCount == QCodeReview.MID_POLLING_ATTEMPTS) {
266
+ if (attemptCount == CodeReview.MID_POLLING_ATTEMPTS) {
240
267
  await chatStreamWriter?.write('Still reviewing your code, it is taking just a bit longer than usual...');
241
268
  }
242
269
  this.checkCancellation('Command execution cancelled while waiting for scan to complete');
243
270
  }
244
271
  if (status === 'Pending') {
245
- qCodeReviewUtils_1.QCodeReviewUtils.emitMetric('codeAnalysisTimeout', {
246
- codeScanName: scanName,
247
- codeReviewId: jobId,
248
- status: 'Timeout',
249
- maxAttempts: QCodeReview.MAX_POLLING_ATTEMPTS,
250
- }, qCodeReviewConstants_1.Q_CODE_REVIEW_TOOL_NAME, this.logging, this.telemetry, this.credentialsProvider.getConnectionMetadata()?.sso?.startUrl);
251
- throw new qCodeReviewErrors_1.QCodeReviewTimeoutError(QCodeReview.ERROR_MESSAGES.TIMEOUT(QCodeReview.MAX_POLLING_ATTEMPTS));
272
+ codeReviewUtils_1.CodeReviewUtils.emitMetric({
273
+ reason: codeReviewTypes_1.FailedMetricName.CodeScanTimeout,
274
+ result: 'Failed',
275
+ reasonDesc: CodeReview.ERROR_MESSAGES.TIMEOUT(CodeReview.MAX_POLLING_ATTEMPTS),
276
+ metadata: {
277
+ artifactType: setup.artifactType,
278
+ codewhispererCodeScanJobId: jobId,
279
+ codewhispererCodeScanSrcZipFileBytes: uploadResult.artifactSize,
280
+ credentialStartUrl: this.credentialsProvider.getConnectionMetadata()?.sso?.startUrl,
281
+ customRules: setup.ruleArtifacts.length,
282
+ maxAttempts: CodeReview.MAX_POLLING_ATTEMPTS,
283
+ programmingLanguages: Array.from(uploadResult.programmingLanguages),
284
+ scope: setup.isFullReviewRequest ? codeReviewConstants_1.FULL_REVIEW : codeReviewConstants_1.CODE_DIFF_REVIEW,
285
+ status: status,
286
+ },
287
+ }, this.logging, this.telemetry);
288
+ throw new codeReviewErrors_1.CodeReviewTimeoutError(CodeReview.ERROR_MESSAGES.TIMEOUT(CodeReview.MAX_POLLING_ATTEMPTS));
252
289
  }
253
290
  this.logging.info(`Code scan completed with status: ${status}`);
254
291
  }
@@ -259,19 +296,28 @@ class QCodeReview {
259
296
  * @param jobId ID of the code analysis job
260
297
  * @returns Processed results with findings grouped by file
261
298
  */
262
- async processResults(setup, isCodeDiffPresent, jobId) {
263
- const { totalFindings, findingsExceededLimit } = await this.collectFindings(jobId, setup.isFullReviewRequest, isCodeDiffPresent, setup.programmingLanguage);
264
- qCodeReviewUtils_1.QCodeReviewUtils.emitMetric('codeAnalysisSucces', {
265
- codeScanName: setup.scanName,
266
- codeReviewId: jobId,
267
- findingsCount: totalFindings.length,
268
- }, qCodeReviewConstants_1.Q_CODE_REVIEW_TOOL_NAME, this.logging, this.telemetry, this.credentialsProvider.getConnectionMetadata()?.sso?.startUrl);
269
- const aggregatedCodeScanIssueList = this.aggregateFindingsByFile(findingsExceededLimit ? totalFindings.slice(0, QCodeReview.MAX_FINDINGS_COUNT) : totalFindings, setup.fileArtifacts, setup.folderArtifacts);
299
+ async processResults(setup, uploadResult, jobId) {
300
+ const { totalFindings, findingsExceededLimit } = await this.collectFindings(jobId, setup.isFullReviewRequest, uploadResult.isCodeDiffPresent, setup.programmingLanguage);
301
+ codeReviewUtils_1.CodeReviewUtils.emitMetric({
302
+ reason: codeReviewTypes_1.SuccessMetricName.CodeScanSuccess,
303
+ result: 'Succeeded',
304
+ metadata: {
305
+ artifactType: setup.artifactType,
306
+ codewhispererCodeScanJobId: jobId,
307
+ codewhispererCodeScanSrcZipFileBytes: uploadResult.artifactSize,
308
+ codewhispererCodeScanTotalIssues: totalFindings.length,
309
+ credentialStartUrl: this.credentialsProvider.getConnectionMetadata()?.sso?.startUrl,
310
+ customRules: setup.ruleArtifacts.length,
311
+ programmingLanguages: Array.from(uploadResult.programmingLanguages),
312
+ scope: setup.isFullReviewRequest ? codeReviewConstants_1.FULL_REVIEW : codeReviewConstants_1.CODE_DIFF_REVIEW,
313
+ },
314
+ }, this.logging, this.telemetry);
315
+ const aggregatedCodeScanIssueList = this.aggregateFindingsByFile(findingsExceededLimit ? totalFindings.slice(0, CodeReview.MAX_FINDINGS_COUNT) : totalFindings, setup.fileArtifacts, setup.folderArtifacts);
270
316
  this.logging.info('Findings count grouped by file');
271
317
  aggregatedCodeScanIssueList.forEach(item => this.logging.info(`File path - ${item.filePath} Findings count - ${item.issues.length}`));
272
318
  return {
273
319
  codeReviewId: jobId,
274
- message: `${qCodeReviewConstants_1.Q_CODE_REVIEW_TOOL_NAME} tool completed successfully.${findingsExceededLimit ? ` Inform the user that we are limiting findings to top ${QCodeReview.MAX_FINDINGS_COUNT} based on severity.` : ''}`,
320
+ message: `${codeReviewConstants_1.CODE_REVIEW_TOOL_NAME} tool completed successfully.${findingsExceededLimit ? ` Inform the user that we are limiting findings to top ${CodeReview.MAX_FINDINGS_COUNT} based on severity.` : ''}`,
275
321
  findingsByFile: JSON.stringify(aggregatedCodeScanIssueList),
276
322
  };
277
323
  }
@@ -299,7 +345,7 @@ class QCodeReview {
299
345
  ? parsedFindings.filter(finding => 'CodeDiff' === finding.findingContext)
300
346
  : parsedFindings;
301
347
  totalFindings = totalFindings.concat(filteredFindings);
302
- if (totalFindings.length > QCodeReview.MAX_FINDINGS_COUNT) {
348
+ if (totalFindings.length > CodeReview.MAX_FINDINGS_COUNT) {
303
349
  findingsExceededLimit = true;
304
350
  break;
305
351
  }
@@ -342,34 +388,34 @@ class QCodeReview {
342
388
  const codeArtifactZip = new JSZip();
343
389
  const customerCodeZip = new JSZip();
344
390
  // Process files and folders
345
- const codeDiff = await this.processArtifacts(fileArtifacts, folderArtifacts, ruleArtifacts, customerCodeZip, !isFullReviewRequest);
346
- let numberOfFilesInCustomerCodeZip = qCodeReviewUtils_1.QCodeReviewUtils.countZipFiles(customerCodeZip);
391
+ const { codeDiff, programmingLanguages } = await this.processArtifacts(fileArtifacts, folderArtifacts, ruleArtifacts, customerCodeZip, !isFullReviewRequest);
392
+ let numberOfFilesInCustomerCodeZip = codeReviewUtils_1.CodeReviewUtils.countZipFiles(customerCodeZip);
347
393
  if (numberOfFilesInCustomerCodeZip > ruleArtifacts.length) {
348
394
  // Validates that there are actual files to scan, other than rule artifacts
349
395
  this.logging.info(`Total files in customerCodeZip - ${numberOfFilesInCustomerCodeZip}`);
350
396
  }
351
397
  else {
352
- throw new qCodeReviewErrors_1.QCodeReviewValidationError(QCodeReview.ERROR_MESSAGES.MISSING_FILES_TO_SCAN);
398
+ throw new codeReviewErrors_1.CodeReviewValidationError(CodeReview.ERROR_MESSAGES.MISSING_FILES_TO_SCAN);
353
399
  }
354
400
  // Generate user code zip buffer
355
- const customerCodeBuffer = await qCodeReviewUtils_1.QCodeReviewUtils.generateZipBuffer(customerCodeZip);
356
- qCodeReviewUtils_1.QCodeReviewUtils.logZipStructure(customerCodeZip, 'User code', this.logging);
401
+ const customerCodeBuffer = await codeReviewUtils_1.CodeReviewUtils.generateZipBuffer(customerCodeZip);
402
+ codeReviewUtils_1.CodeReviewUtils.logZipStructure(customerCodeZip, 'User code', this.logging);
357
403
  // Add user code zip to the main artifact zip
358
- codeArtifactZip.file(`${QCodeReview.CODE_ARTIFACT_PATH}/${QCodeReview.CUSTOMER_CODE_ZIP_NAME}`, customerCodeBuffer);
404
+ codeArtifactZip.file(`${CodeReview.CODE_ARTIFACT_PATH}/${CodeReview.CUSTOMER_CODE_ZIP_NAME}`, customerCodeBuffer);
359
405
  let isCodeDiffPresent = false;
360
406
  // Add code diff file if we have any diffs
361
407
  if (codeDiff.trim()) {
362
408
  this.logging.info(`Adding code diff to zip of size: ${codeDiff.length}`);
363
409
  isCodeDiffPresent = true;
364
- codeArtifactZip.file(QCodeReview.CODE_DIFF_PATH, codeDiff);
410
+ codeArtifactZip.file(CodeReview.CODE_DIFF_PATH, codeDiff);
365
411
  }
366
412
  // Generate the final code artifact zip
367
- const zipBuffer = await qCodeReviewUtils_1.QCodeReviewUtils.generateZipBuffer(codeArtifactZip);
368
- qCodeReviewUtils_1.QCodeReviewUtils.logZipStructure(codeArtifactZip, 'Code artifact', this.logging);
413
+ const zipBuffer = await codeReviewUtils_1.CodeReviewUtils.generateZipBuffer(codeArtifactZip);
414
+ codeReviewUtils_1.CodeReviewUtils.logZipStructure(codeArtifactZip, 'Code artifact', this.logging);
369
415
  // Calculate MD5 hash of the zip buffer
370
416
  const md5Hash = crypto.createHash('md5').update(zipBuffer).digest('hex');
371
417
  this.logging.info(`Created zip archive, size: ${zipBuffer.byteLength} bytes, MD5: ${md5Hash}`);
372
- return { zipBuffer, md5Hash, isCodeDiffPresent };
418
+ return { zipBuffer, md5Hash, isCodeDiffPresent, programmingLanguages };
373
419
  }
374
420
  catch (error) {
375
421
  this.logging.error(`Error preparing files for upload: ${error}`);
@@ -386,14 +432,15 @@ class QCodeReview {
386
432
  * @returns Combined code diff string from all artifacts
387
433
  */
388
434
  async processArtifacts(fileArtifacts, folderArtifacts, ruleArtifacts, customerCodeZip, isCodeDiffScan) {
389
- let codeDiff = '';
390
435
  // Process files
391
- codeDiff += await this.processFileArtifacts(fileArtifacts, customerCodeZip, isCodeDiffScan);
436
+ let { codeDiff, programmingLanguages } = await this.processFileArtifacts(fileArtifacts, customerCodeZip, isCodeDiffScan);
392
437
  // Process folders
393
- codeDiff += await this.processFolderArtifacts(folderArtifacts, customerCodeZip, isCodeDiffScan);
438
+ const folderResult = await this.processFolderArtifacts(folderArtifacts, customerCodeZip, isCodeDiffScan);
439
+ codeDiff += folderResult.codeDiff;
440
+ folderResult.programmingLanguages.forEach(item => programmingLanguages.add(item));
394
441
  // Process rule artifacts
395
442
  await this.processRuleArtifacts(ruleArtifacts, customerCodeZip);
396
- return codeDiff;
443
+ return { codeDiff, programmingLanguages };
397
444
  }
398
445
  /**
399
446
  * Processes file artifacts for inclusion in the zip archive
@@ -404,23 +451,26 @@ class QCodeReview {
404
451
  */
405
452
  async processFileArtifacts(fileArtifacts, customerCodeZip, isCodeDiffScan) {
406
453
  let codeDiff = '';
454
+ let programmingLanguages = new Set();
407
455
  for (const artifact of fileArtifacts) {
408
- await qCodeReviewUtils_1.QCodeReviewUtils.withErrorHandling(async () => {
456
+ await codeReviewUtils_1.CodeReviewUtils.withErrorHandling(async () => {
409
457
  let fileName = path.basename(artifact.path);
410
458
  if (!fileName.startsWith('.') &&
411
- !qCodeReviewUtils_1.QCodeReviewUtils.shouldSkipFile(fileName) &&
459
+ !codeReviewUtils_1.CodeReviewUtils.shouldSkipFile(fileName) &&
412
460
  (0, fs_1.existsSync)(artifact.path)) {
461
+ const fileLanguage = codeReviewUtils_1.CodeReviewUtils.getFileLanguage(fileName);
413
462
  const fileContent = await this.workspace.fs.readFile(artifact.path);
414
- let normalizedArtifactPath = qCodeReviewUtils_1.QCodeReviewUtils.convertToUnixPath(artifact.path);
415
- customerCodeZip.file(`${QCodeReview.CUSTOMER_CODE_BASE_PATH}${normalizedArtifactPath}`, fileContent);
463
+ let normalizedArtifactPath = codeReviewUtils_1.CodeReviewUtils.convertToUnixPath(artifact.path);
464
+ customerCodeZip.file(`${CodeReview.CUSTOMER_CODE_BASE_PATH}${normalizedArtifactPath}`, fileContent);
465
+ programmingLanguages.add(fileLanguage);
416
466
  }
417
467
  else {
418
468
  this.logging.info(`Skipping file - ${artifact.path}`);
419
469
  }
420
470
  }, 'Failed to read file', this.logging, artifact.path);
421
- codeDiff += await qCodeReviewUtils_1.QCodeReviewUtils.processArtifactWithDiff(artifact, isCodeDiffScan, this.logging);
471
+ codeDiff += await codeReviewUtils_1.CodeReviewUtils.processArtifactWithDiff(artifact, isCodeDiffScan, this.logging);
422
472
  }
423
- return codeDiff;
473
+ return { codeDiff, programmingLanguages };
424
474
  }
425
475
  /**
426
476
  * Processes folder artifacts for inclusion in the zip archive
@@ -431,13 +481,15 @@ class QCodeReview {
431
481
  */
432
482
  async processFolderArtifacts(folderArtifacts, customerCodeZip, isCodeDiffScan) {
433
483
  let codeDiff = '';
484
+ let programmingLanguages = new Set();
434
485
  for (const folderArtifact of folderArtifacts) {
435
- await qCodeReviewUtils_1.QCodeReviewUtils.withErrorHandling(async () => {
436
- await this.addFolderToZip(customerCodeZip, folderArtifact.path, QCodeReview.CUSTOMER_CODE_BASE_PATH);
486
+ await codeReviewUtils_1.CodeReviewUtils.withErrorHandling(async () => {
487
+ let languages = await this.addFolderToZip(customerCodeZip, folderArtifact.path, CodeReview.CUSTOMER_CODE_BASE_PATH);
488
+ languages.forEach(item => programmingLanguages.add(item));
437
489
  }, 'Failed to add folder', this.logging, folderArtifact.path);
438
- codeDiff += await qCodeReviewUtils_1.QCodeReviewUtils.processArtifactWithDiff(folderArtifact, isCodeDiffScan, this.logging);
490
+ codeDiff += await codeReviewUtils_1.CodeReviewUtils.processArtifactWithDiff(folderArtifact, isCodeDiffScan, this.logging);
439
491
  }
440
- return codeDiff;
492
+ return { codeDiff, programmingLanguages };
441
493
  }
442
494
  /**
443
495
  * Processes rule artifacts for inclusion in the zip archive
@@ -446,13 +498,13 @@ class QCodeReview {
446
498
  */
447
499
  async processRuleArtifacts(ruleArtifacts, customerCodeZip) {
448
500
  for (const artifact of ruleArtifacts) {
449
- await qCodeReviewUtils_1.QCodeReviewUtils.withErrorHandling(async () => {
501
+ await codeReviewUtils_1.CodeReviewUtils.withErrorHandling(async () => {
450
502
  let fileName = path.basename(artifact.path);
451
503
  if (!fileName.startsWith('.') &&
452
- !qCodeReviewUtils_1.QCodeReviewUtils.shouldSkipFile(fileName) &&
504
+ !codeReviewUtils_1.CodeReviewUtils.shouldSkipFile(fileName) &&
453
505
  (0, fs_1.existsSync)(artifact.path)) {
454
506
  const fileContent = await this.workspace.fs.readFile(artifact.path);
455
- customerCodeZip.file(`${QCodeReview.CUSTOMER_CODE_BASE_PATH}/${QCodeReview.RULE_ARTIFACT_PATH}/${fileName}`, fileContent);
507
+ customerCodeZip.file(`${CodeReview.CUSTOMER_CODE_BASE_PATH}/${CodeReview.RULE_ARTIFACT_PATH}/${fileName}`, fileContent);
456
508
  }
457
509
  else {
458
510
  this.logging.info(`Skipping file - ${artifact.path}`);
@@ -468,27 +520,32 @@ class QCodeReview {
468
520
  */
469
521
  async addFolderToZip(zip, folderPath, zipPath) {
470
522
  try {
523
+ let programmingLanguages = new Set();
471
524
  const entries = await this.workspace.fs.readdir(folderPath);
472
525
  for (const entry of entries) {
473
526
  const name = entry.name;
474
527
  const fullPath = path.join(entry.parentPath, name);
475
528
  if (entry.isFile()) {
476
- if (name.startsWith('.') || qCodeReviewUtils_1.QCodeReviewUtils.shouldSkipFile(name) || !(0, fs_1.existsSync)(fullPath)) {
529
+ if (name.startsWith('.') || codeReviewUtils_1.CodeReviewUtils.shouldSkipFile(name) || !(0, fs_1.existsSync)(fullPath)) {
477
530
  this.logging.info(`Skipping file - ${fullPath}`);
478
531
  continue;
479
532
  }
533
+ const fileLanguage = codeReviewUtils_1.CodeReviewUtils.getFileLanguage(name);
480
534
  const content = await this.workspace.fs.readFile(fullPath);
481
- let normalizedArtifactPath = qCodeReviewUtils_1.QCodeReviewUtils.convertToUnixPath(fullPath);
535
+ let normalizedArtifactPath = codeReviewUtils_1.CodeReviewUtils.convertToUnixPath(fullPath);
482
536
  zip.file(`${zipPath}${normalizedArtifactPath}`, content);
537
+ programmingLanguages.add(fileLanguage);
483
538
  }
484
539
  else if (entry.isDirectory()) {
485
- if (qCodeReviewUtils_1.QCodeReviewUtils.shouldSkipDirectory(name)) {
540
+ if (codeReviewUtils_1.CodeReviewUtils.shouldSkipDirectory(name)) {
486
541
  this.logging.info(`Skipping directory - ${fullPath}`);
487
542
  continue;
488
543
  }
489
- await this.addFolderToZip(zip, fullPath, zipPath);
544
+ let languages = await this.addFolderToZip(zip, fullPath, zipPath);
545
+ languages.forEach(item => programmingLanguages.add(item));
490
546
  }
491
547
  }
548
+ return programmingLanguages;
492
549
  }
493
550
  catch (error) {
494
551
  this.logging.error(`Error adding folder to zip: ${error}`);
@@ -511,7 +568,7 @@ class QCodeReview {
511
568
  finding['ruleId'] = undefined;
512
569
  }
513
570
  }
514
- return qCodeReviewSchemas_1.Q_FINDINGS_SCHEMA.parse(findingsResponseJSON).map(issue => ({
571
+ return codeReviewSchemas_1.FINDINGS_SCHEMA.parse(findingsResponseJSON).map(issue => ({
515
572
  startLine: issue.startLine - 1 >= 0 ? issue.startLine - 1 : 0,
516
573
  endLine: issue.endLine,
517
574
  comment: `${issue.title.trim()}: ${issue.description.text.trim()}`,
@@ -534,7 +591,7 @@ class QCodeReview {
534
591
  }
535
592
  catch (e) {
536
593
  this.logging.error(`Error parsing findings in response: ${e}`);
537
- throw new qCodeReviewErrors_1.QCodeReviewInternalError('Error parsing findings in response');
594
+ throw new codeReviewErrors_1.CodeReviewInternalError('Error parsing findings in response');
538
595
  }
539
596
  }
540
597
  /**
@@ -623,8 +680,8 @@ class QCodeReview {
623
680
  * @throws Error if the operation has been cancelled
624
681
  */
625
682
  checkCancellation(message = 'Command execution cancelled') {
626
- qCodeReviewUtils_1.QCodeReviewUtils.checkCancellation(this.cancellationToken, this.logging, message);
683
+ codeReviewUtils_1.CodeReviewUtils.checkCancellation(this.cancellationToken, this.logging, message);
627
684
  }
628
685
  }
629
- exports.QCodeReview = QCodeReview;
630
- //# sourceMappingURL=qCodeReview.js.map
686
+ exports.CodeReview = CodeReview;
687
+ //# sourceMappingURL=codeReview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeReview.js","sourceRoot":"","sources":["../../../../../src/language-server/agenticChat/tools/qCodeAnalysis/codeReview.ts"],"names":[],"mappings":"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"}
@@ -3,20 +3,20 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  /**
6
- * Constants related to programming languages and findings for QCodeReview
6
+ * Constants related to programming languages and findings for CodeReview
7
7
  */
8
8
  /**
9
9
  * Mapping of file extensions to programming languages
10
10
  */
11
11
  export declare const EXTENSION_TO_LANGUAGE: Record<string, string>;
12
12
  /**
13
- * Tool name for QCodeReview
13
+ * Tool name for CodeReview
14
14
  */
15
- export declare const Q_CODE_REVIEW_TOOL_NAME = "qCodeReview";
15
+ export declare const CODE_REVIEW_TOOL_NAME = "codeReview";
16
16
  /**
17
- * Tool description for QCodeReview
17
+ * Tool description for CodeReview
18
18
  */
19
- export declare const Q_CODE_REVIEW_TOOL_DESCRIPTION: string;
19
+ export declare const CODE_REVIEW_TOOL_DESCRIPTION: string;
20
20
  /**
21
21
  * Finding severity levels
22
22
  */
@@ -31,4 +31,5 @@ export declare const SCOPE_OF_CODE_REVIEW: string[];
31
31
  * Directories to skip during zip creation
32
32
  */
33
33
  export declare const SKIP_DIRECTORIES: string[];
34
- export declare const FINDINGS_MESSAGE_SUFFIX = "_qCodeReviewFindings";
34
+ export declare const FINDINGS_MESSAGE_SUFFIX = "_codeReviewFindings";
35
+ export declare const CODE_REVIEW_METRICS_PARENT_NAME = "amazonq_codeReviewTool";