@aws/lsp-codewhisperer 0.0.64 → 0.0.66
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/CHANGELOG.md +57 -0
- package/out/client/token/bearer-token-service.json +1 -1
- package/out/language-server/agenticChat/agenticChatController.d.ts +13 -0
- package/out/language-server/agenticChat/agenticChatController.js +547 -125
- package/out/language-server/agenticChat/agenticChatController.js.map +1 -1
- package/out/language-server/agenticChat/constants/constants.d.ts +12 -0
- package/out/language-server/agenticChat/constants/constants.js +73 -1
- package/out/language-server/agenticChat/constants/constants.js.map +1 -1
- package/out/language-server/agenticChat/constants/toolConstants.d.ts +24 -0
- package/out/language-server/agenticChat/constants/toolConstants.js +35 -0
- package/out/language-server/agenticChat/constants/toolConstants.js.map +1 -0
- package/out/language-server/agenticChat/context/additionalContextProvider.d.ts +1 -1
- package/out/language-server/agenticChat/context/additionalContextProvider.js +44 -4
- package/out/language-server/agenticChat/context/additionalContextProvider.js.map +1 -1
- package/out/language-server/agenticChat/context/agenticChatTriggerContext.d.ts +11 -2
- package/out/language-server/agenticChat/context/agenticChatTriggerContext.js +32 -2
- package/out/language-server/agenticChat/context/agenticChatTriggerContext.js.map +1 -1
- package/out/language-server/agenticChat/context/contextCommandsProvider.js +1 -1
- package/out/language-server/agenticChat/context/contextCommandsProvider.js.map +1 -1
- package/out/language-server/agenticChat/context/contextUtils.d.ts +16 -0
- package/out/language-server/agenticChat/context/contextUtils.js +29 -0
- package/out/language-server/agenticChat/context/contextUtils.js.map +1 -1
- package/out/language-server/agenticChat/qAgenticChatServer.js +6 -2
- package/out/language-server/agenticChat/qAgenticChatServer.js.map +1 -1
- package/out/language-server/agenticChat/tools/chatDb/chatDb.d.ts +11 -3
- package/out/language-server/agenticChat/tools/chatDb/chatDb.js +103 -31
- package/out/language-server/agenticChat/tools/chatDb/chatDb.js.map +1 -1
- package/out/language-server/agenticChat/tools/chatDb/util.d.ts +4 -0
- package/out/language-server/agenticChat/tools/chatDb/util.js.map +1 -1
- package/out/language-server/agenticChat/tools/executeBash.d.ts +15 -5
- package/out/language-server/agenticChat/tools/executeBash.js +97 -22
- package/out/language-server/agenticChat/tools/executeBash.js.map +1 -1
- package/out/language-server/agenticChat/tools/mcp/mcpManager.js +1 -1
- package/out/language-server/agenticChat/tools/mcp/mcpManager.js.map +1 -1
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReview.d.ts +211 -0
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReview.js +630 -0
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReview.js.map +1 -0
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewConstants.d.ts +34 -0
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewConstants.js +200 -0
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewConstants.js.map +1 -0
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewErrors.d.ts +12 -0
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewErrors.js +32 -0
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewErrors.js.map +1 -0
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewSchemas.d.ts +289 -0
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewSchemas.js +140 -0
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewSchemas.js.map +1 -0
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewTypes.d.ts +58 -0
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewTypes.js +3 -0
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewTypes.js.map +1 -0
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewUtils.d.ts +156 -0
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewUtils.js +363 -0
- package/out/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewUtils.js.map +1 -0
- package/out/language-server/agenticChat/tools/toolServer.d.ts +1 -0
- package/out/language-server/agenticChat/tools/toolServer.js +90 -39
- package/out/language-server/agenticChat/tools/toolServer.js.map +1 -1
- package/out/language-server/chat/chatSessionService.d.ts +1 -0
- package/out/language-server/chat/chatSessionService.js +5 -2
- package/out/language-server/chat/chatSessionService.js.map +1 -1
- package/out/language-server/chat/quickActions.d.ts +7 -1
- package/out/language-server/chat/quickActions.js +7 -1
- package/out/language-server/chat/quickActions.js.map +1 -1
- package/out/language-server/chat/telemetry/chatTelemetryController.d.ts +4 -3
- package/out/language-server/chat/telemetry/chatTelemetryController.js +22 -3
- package/out/language-server/chat/telemetry/chatTelemetryController.js.map +1 -1
- package/out/language-server/configuration/qConfigurationServer.d.ts +1 -0
- package/out/language-server/configuration/qConfigurationServer.js.map +1 -1
- package/out/language-server/inline-completion/auto-trigger/autoTrigger.d.ts +2 -0
- package/out/language-server/inline-completion/auto-trigger/autoTrigger.js +69 -1
- package/out/language-server/inline-completion/auto-trigger/autoTrigger.js.map +1 -1
- package/out/language-server/inline-completion/auto-trigger/editPredictionAutoTrigger.js +6 -1
- package/out/language-server/inline-completion/auto-trigger/editPredictionAutoTrigger.js.map +1 -1
- package/out/language-server/inline-completion/auto-trigger/editPredictionConfig.d.ts +1 -0
- package/out/language-server/inline-completion/auto-trigger/editPredictionConfig.js +1 -0
- package/out/language-server/inline-completion/auto-trigger/editPredictionConfig.js.map +1 -1
- package/out/language-server/inline-completion/codeWhispererServer.js +72 -43
- package/out/language-server/inline-completion/codeWhispererServer.js.map +1 -1
- package/out/language-server/workspaceContext/artifactManager.d.ts +4 -1
- package/out/language-server/workspaceContext/artifactManager.js +16 -1
- package/out/language-server/workspaceContext/artifactManager.js.map +1 -1
- package/out/language-server/workspaceContext/dependency/dependencyDiscoverer.d.ts +2 -1
- package/out/language-server/workspaceContext/dependency/dependencyDiscoverer.js +9 -6
- package/out/language-server/workspaceContext/dependency/dependencyDiscoverer.js.map +1 -1
- package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandler.d.ts +7 -2
- package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandler.js +20 -7
- package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandler.js.map +1 -1
- package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandlerFactory.d.ts +2 -2
- package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandlerFactory.js +4 -4
- package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandlerFactory.js.map +1 -1
- package/out/language-server/workspaceContext/fileUploadJobManager.js +3 -1
- package/out/language-server/workspaceContext/fileUploadJobManager.js.map +1 -1
- package/out/language-server/workspaceContext/workspaceContextServer.js +32 -19
- package/out/language-server/workspaceContext/workspaceContextServer.js.map +1 -1
- package/out/language-server/workspaceContext/workspaceFolderManager.d.ts +5 -3
- package/out/language-server/workspaceContext/workspaceFolderManager.js +80 -59
- package/out/language-server/workspaceContext/workspaceFolderManager.js.map +1 -1
- package/out/shared/activeUserTracker.d.ts +52 -0
- package/out/shared/activeUserTracker.js +164 -0
- package/out/shared/activeUserTracker.js.map +1 -0
- package/out/shared/amazonQServiceManager/configurationUtils.js +6 -0
- package/out/shared/amazonQServiceManager/configurationUtils.js.map +1 -1
- package/out/shared/codeWhispererService.js +3 -1
- package/out/shared/codeWhispererService.js.map +1 -1
- package/out/shared/telemetry/telemetryService.d.ts +2 -0
- package/out/shared/telemetry/telemetryService.js +2 -0
- package/out/shared/telemetry/telemetryService.js.map +1 -1
- package/out/shared/telemetry/types.d.ts +9 -1
- package/out/shared/telemetry/types.js +1 -0
- package/out/shared/telemetry/types.js.map +1 -1
- package/package.json +8 -6
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*!
|
|
3
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.QCodeReviewUtils = void 0;
|
|
8
|
+
const qCodeReviewConstants_1 = require("./qCodeReviewConstants");
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
const path = require("path");
|
|
11
|
+
const fs = require("fs");
|
|
12
|
+
const os = require("os");
|
|
13
|
+
const https = require("https");
|
|
14
|
+
const lsp_core_1 = require("@aws/lsp-core");
|
|
15
|
+
/**
|
|
16
|
+
* Utility functions for QCodeReview
|
|
17
|
+
*/
|
|
18
|
+
class QCodeReviewUtils {
|
|
19
|
+
/**
|
|
20
|
+
* Check if a file should be skipped during zip creation
|
|
21
|
+
* @param fileName Name of the file to check
|
|
22
|
+
* @returns True if the file should be skipped, false otherwise
|
|
23
|
+
*/
|
|
24
|
+
static shouldSkipFile(fileName) {
|
|
25
|
+
const extension = path.extname(fileName).toLowerCase();
|
|
26
|
+
if (!extension || extension.trim() === '') {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
return !qCodeReviewConstants_1.EXTENSION_TO_LANGUAGE.hasOwnProperty(extension);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Check if a directory should be skipped during zip creation
|
|
35
|
+
* @param dirName Name of the directory to check
|
|
36
|
+
* @returns True if the directory should be skipped, false otherwise
|
|
37
|
+
*/
|
|
38
|
+
static shouldSkipDirectory(dirName) {
|
|
39
|
+
return qCodeReviewConstants_1.SKIP_DIRECTORIES.includes(dirName);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get the folder path from a file or folder path
|
|
43
|
+
* @param inputPath Path to a file or folder
|
|
44
|
+
* @returns The folder path
|
|
45
|
+
*/
|
|
46
|
+
static getFolderPath(inputPath) {
|
|
47
|
+
// Remove trailing slash and get dirname
|
|
48
|
+
const cleanPath = inputPath.replace(/\/$/, '');
|
|
49
|
+
// If it's a file (has extension), get its directory
|
|
50
|
+
// If it's a directory (no extension), return it as-is
|
|
51
|
+
return path.extname(cleanPath) ? path.dirname(cleanPath) : cleanPath;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Log a summary of the zip archive contents
|
|
55
|
+
* @param zip JSZip instance to analyze
|
|
56
|
+
* @param logging Logging interface
|
|
57
|
+
*/
|
|
58
|
+
static logZipSummary(zip, logging) {
|
|
59
|
+
try {
|
|
60
|
+
const files = Object.keys(zip.files);
|
|
61
|
+
const fileCount = files.filter(f => !zip.files[f].dir).length;
|
|
62
|
+
const folderCount = files.filter(f => zip.files[f].dir).length;
|
|
63
|
+
logging.info(`Zip summary: ${fileCount} files, ${folderCount} folders`);
|
|
64
|
+
// Log the top-level structure
|
|
65
|
+
const topLevel = files
|
|
66
|
+
.filter(path => !path.includes('/') || path.split('/').length === 2)
|
|
67
|
+
.map(path => ` - ${path}${zip.files[path].dir ? '/' : ''}`)
|
|
68
|
+
.join('\n');
|
|
69
|
+
logging.info(`Zip structure:\n${topLevel}`);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
logging.warn(`Failed to generate zip summary: ${error}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Generate a unique client token for the request
|
|
77
|
+
* @returns A unique string token
|
|
78
|
+
*/
|
|
79
|
+
static generateClientToken() {
|
|
80
|
+
return `code-scan-${Date.now()}-${Math.random().toString(36).substring(2, 15)}`;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Execute git command and return output
|
|
84
|
+
* @param command Git command to execute
|
|
85
|
+
* @param type Type of command for logging
|
|
86
|
+
* @param logging Logging interface
|
|
87
|
+
* @returns Promise resolving to command output
|
|
88
|
+
*/
|
|
89
|
+
static async executeGitCommand(command, type, logging) {
|
|
90
|
+
return new Promise(resolve => {
|
|
91
|
+
(0, child_process_1.exec)(command, (error, stdout, stderr) => {
|
|
92
|
+
if (error) {
|
|
93
|
+
logging.warn(`Git diff failed for ${type}: ${stderr || error.message}`);
|
|
94
|
+
resolve('');
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
resolve(stdout.trim());
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get git diff for a file or folder
|
|
104
|
+
* @param artifactPath Path to the file or folder
|
|
105
|
+
* @param logging Logging interface
|
|
106
|
+
* @returns Git diff output as string or null if not in a git repository
|
|
107
|
+
*/
|
|
108
|
+
static async getGitDiff(artifactPath, logging) {
|
|
109
|
+
logging.info(`Get git diff for path - ${artifactPath}`);
|
|
110
|
+
const directoryPath = QCodeReviewUtils.getFolderPath(artifactPath);
|
|
111
|
+
const gitDiffCommandUnstaged = `cd ${directoryPath} && git diff ${artifactPath}`;
|
|
112
|
+
const gitDiffCommandStaged = `cd ${directoryPath} && git diff --staged ${artifactPath}`;
|
|
113
|
+
logging.info(`Running git commands - ${gitDiffCommandUnstaged} and ${gitDiffCommandStaged}`);
|
|
114
|
+
try {
|
|
115
|
+
const [unstagedDiff, stagedDiff] = await Promise.all([
|
|
116
|
+
QCodeReviewUtils.executeGitCommand(gitDiffCommandUnstaged, 'unstaged', logging),
|
|
117
|
+
QCodeReviewUtils.executeGitCommand(gitDiffCommandStaged, 'staged', logging),
|
|
118
|
+
]);
|
|
119
|
+
const combinedDiff = [unstagedDiff, stagedDiff].filter(Boolean).join('\n\n');
|
|
120
|
+
return combinedDiff || null;
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
logging.error(`Error getting git diff: ${error}`);
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Log zip structure
|
|
129
|
+
* @param zip JSZip instance
|
|
130
|
+
* @param zipName Name of the zip for logging
|
|
131
|
+
* @param logging Logging interface
|
|
132
|
+
*/
|
|
133
|
+
static logZipStructure(zip, zipName, logging) {
|
|
134
|
+
logging.info(`${zipName} zip structure:`);
|
|
135
|
+
Object.keys(zip.files).forEach(filePath => {
|
|
136
|
+
let item = zip.files[filePath];
|
|
137
|
+
if (!item.dir) {
|
|
138
|
+
logging.info(` ${filePath}`);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Count number of files in zip
|
|
144
|
+
* @param zip JSZip instance
|
|
145
|
+
* @returns number of files in zip
|
|
146
|
+
*/
|
|
147
|
+
static countZipFiles(zip) {
|
|
148
|
+
let count = 0;
|
|
149
|
+
Object.keys(zip.files).forEach(filePath => {
|
|
150
|
+
let item = zip.files[filePath];
|
|
151
|
+
if (!item.dir) {
|
|
152
|
+
count += 1;
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
return count;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Generate zip buffer with compression
|
|
159
|
+
* @param zip JSZip instance
|
|
160
|
+
* @returns Promise resolving to compressed buffer
|
|
161
|
+
*/
|
|
162
|
+
static async generateZipBuffer(zip) {
|
|
163
|
+
return await zip.generateAsync({
|
|
164
|
+
type: 'nodebuffer',
|
|
165
|
+
compression: 'DEFLATE',
|
|
166
|
+
compressionOptions: { level: 9 },
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Save zip buffer to Downloads folder
|
|
171
|
+
* @param zipBuffer Buffer to save
|
|
172
|
+
* @param logging Logging interface
|
|
173
|
+
*/
|
|
174
|
+
static saveZipToDownloads(zipBuffer, logging) {
|
|
175
|
+
try {
|
|
176
|
+
const downloadsPath = path.join(os.homedir(), 'Downloads');
|
|
177
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
178
|
+
const zipFilePath = path.join(downloadsPath, `codeArtifact-${timestamp}.zip`);
|
|
179
|
+
fs.writeFileSync(zipFilePath, zipBuffer);
|
|
180
|
+
logging.info(`Saved code artifact zip to: ${zipFilePath}`);
|
|
181
|
+
}
|
|
182
|
+
catch (saveError) {
|
|
183
|
+
logging.error(`Failed to save zip file to Downloads folder: ${saveError}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Process artifact with git diff
|
|
188
|
+
* @param artifact Artifact with path
|
|
189
|
+
* @param isCodeDiffScan Whether to scan for code diff
|
|
190
|
+
* @param logging Logging interface
|
|
191
|
+
* @returns Promise resolving to diff string
|
|
192
|
+
*/
|
|
193
|
+
static async processArtifactWithDiff(artifact, isCodeDiffScan, logging) {
|
|
194
|
+
if (!isCodeDiffScan)
|
|
195
|
+
return '';
|
|
196
|
+
try {
|
|
197
|
+
const diff = await QCodeReviewUtils.getGitDiff(artifact.path, logging);
|
|
198
|
+
return diff ? `${diff}\n` : '';
|
|
199
|
+
}
|
|
200
|
+
catch (diffError) {
|
|
201
|
+
logging.warn(`Failed to get git diff for ${artifact.path}: ${diffError}`);
|
|
202
|
+
return '';
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Error handling wrapper
|
|
207
|
+
* @param operation Operation to execute
|
|
208
|
+
* @param errorMessage Error message prefix
|
|
209
|
+
* @param logging Logging interface
|
|
210
|
+
* @param path Optional path for error context
|
|
211
|
+
* @returns Promise resolving to operation result
|
|
212
|
+
*/
|
|
213
|
+
static async withErrorHandling(operation, errorMessage, logging, path) {
|
|
214
|
+
try {
|
|
215
|
+
return await operation();
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
const fullMessage = path ? `${errorMessage} ${path}: ${error}` : `${errorMessage}: ${error}`;
|
|
219
|
+
logging.error(fullMessage);
|
|
220
|
+
throw new Error(fullMessage);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Check if agentic review capability is enabled in client capabilities
|
|
225
|
+
* @param params Initialize parameters from client
|
|
226
|
+
* @returns True if agentic reviewer is enabled, false otherwise
|
|
227
|
+
*/
|
|
228
|
+
static isAgenticReviewEnabled(params) {
|
|
229
|
+
const qCapabilities = params?.initializationOptions?.aws?.awsClientCapabilities?.q;
|
|
230
|
+
return qCapabilities?.qCodeReviewInChat || false;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Converts a Windows absolute file path to Unix format and removes the drive letter
|
|
234
|
+
* @param windowsPath The Windows path to convert
|
|
235
|
+
* @returns The Unix formatted path without drive letter
|
|
236
|
+
*/
|
|
237
|
+
static convertToUnixPath(windowsPath) {
|
|
238
|
+
// Remove drive letter (e.g., C:/) if present
|
|
239
|
+
// Normalize the path and convert backslashes to forward slashes
|
|
240
|
+
return path
|
|
241
|
+
.normalize(windowsPath)
|
|
242
|
+
.replace(/^[a-zA-Z]:\/?/, '')
|
|
243
|
+
.replace(/\\/g, '/');
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Create a standardized error output object
|
|
247
|
+
* @param errorObj Error object or message
|
|
248
|
+
* @returns Formatted InvokeOutput with error details
|
|
249
|
+
*/
|
|
250
|
+
static createErrorOutput(errorObj) {
|
|
251
|
+
return {
|
|
252
|
+
output: {
|
|
253
|
+
kind: 'json',
|
|
254
|
+
content: errorObj,
|
|
255
|
+
success: false,
|
|
256
|
+
},
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Upload file content to the pre-signed URL
|
|
261
|
+
* @param uploadUrl Pre-signed URL for uploading the file
|
|
262
|
+
* @param fileContent Buffer containing the file content
|
|
263
|
+
* @param requestHeaders Additional headers for the request
|
|
264
|
+
* @param logging Logging interface
|
|
265
|
+
*/
|
|
266
|
+
static uploadFileToPresignedUrl(uploadUrl, fileContent, requestHeaders, logging) {
|
|
267
|
+
return new Promise((resolve, reject) => {
|
|
268
|
+
const url = new URL(uploadUrl);
|
|
269
|
+
const options = {
|
|
270
|
+
hostname: url.hostname,
|
|
271
|
+
path: url.pathname + url.search,
|
|
272
|
+
method: 'PUT',
|
|
273
|
+
headers: {
|
|
274
|
+
'Content-Length': fileContent.length,
|
|
275
|
+
...requestHeaders,
|
|
276
|
+
},
|
|
277
|
+
};
|
|
278
|
+
logging.info(`Uploading file to ${url.hostname}${url.pathname}`);
|
|
279
|
+
const req = https.request(options, (res) => {
|
|
280
|
+
if (res.statusCode !== 200) {
|
|
281
|
+
reject(new Error(`Upload failed with status code: ${res.statusCode}`));
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
let responseData = '';
|
|
285
|
+
res.on('data', (chunk) => {
|
|
286
|
+
responseData += chunk;
|
|
287
|
+
});
|
|
288
|
+
res.on('end', () => {
|
|
289
|
+
logging.info('File upload completed successfully');
|
|
290
|
+
resolve();
|
|
291
|
+
});
|
|
292
|
+
});
|
|
293
|
+
req.on('error', (error) => {
|
|
294
|
+
logging.error(`Error uploading file: ${error}`);
|
|
295
|
+
reject(error);
|
|
296
|
+
});
|
|
297
|
+
req.write(fileContent);
|
|
298
|
+
req.end();
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Handle failure in a consistent way
|
|
303
|
+
* @param error Error object
|
|
304
|
+
* @param scanName Optional scan name for context
|
|
305
|
+
* @param jobId Optional job ID for context
|
|
306
|
+
* @param logging Logging interface
|
|
307
|
+
* @param telemetry Telemetry interface
|
|
308
|
+
* @param toolName Tool name for error messages
|
|
309
|
+
* @returns Standardized error response
|
|
310
|
+
*/
|
|
311
|
+
static handleFailure(error, logging, telemetry, toolName, scanName, jobId) {
|
|
312
|
+
// if error is of type CancellationError then throw
|
|
313
|
+
if (error instanceof lsp_core_1.CancellationError) {
|
|
314
|
+
throw error;
|
|
315
|
+
}
|
|
316
|
+
const errorData = { errorMessage: error?.message };
|
|
317
|
+
if (scanName)
|
|
318
|
+
errorData.codeScanName = scanName;
|
|
319
|
+
if (jobId)
|
|
320
|
+
errorData.codeReviewId = jobId;
|
|
321
|
+
QCodeReviewUtils.emitMetric('failed', { data: errorData }, toolName, logging, telemetry);
|
|
322
|
+
logging.error(`Error in ${toolName} - ${error?.message}`);
|
|
323
|
+
return {
|
|
324
|
+
status: 'Failed',
|
|
325
|
+
...errorData,
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Emit a telemetry metric with standard formatting
|
|
330
|
+
* @param metricSuffix Suffix for the metric name
|
|
331
|
+
* @param metricData Additional metric data
|
|
332
|
+
* @param toolName Tool name for the metric prefix
|
|
333
|
+
* @param logging Logging interface
|
|
334
|
+
* @param telemetry Telemetry interface
|
|
335
|
+
* @param credentialStartUrl Optional credential start URL
|
|
336
|
+
*/
|
|
337
|
+
static emitMetric(metricSuffix, metricData, toolName, logging, telemetry, credentialStartUrl) {
|
|
338
|
+
const metricName = `${toolName}_${metricSuffix}`;
|
|
339
|
+
const metricPayload = {
|
|
340
|
+
name: metricName,
|
|
341
|
+
data: {
|
|
342
|
+
...(credentialStartUrl ? { credentialStartUrl } : {}),
|
|
343
|
+
...metricData,
|
|
344
|
+
},
|
|
345
|
+
};
|
|
346
|
+
logging.info(`Emitting telemetry metric: ${metricName} with data: ${JSON.stringify(metricPayload.data)}`);
|
|
347
|
+
telemetry.emitMetric(metricPayload);
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Check if cancellation has been requested and throw if it has
|
|
351
|
+
* @param cancellationToken Cancellation token to check
|
|
352
|
+
* @param message Optional message for the error
|
|
353
|
+
* @param logging Logging interface
|
|
354
|
+
*/
|
|
355
|
+
static checkCancellation(cancellationToken, logging, message = 'Command execution cancelled') {
|
|
356
|
+
if (cancellationToken?.isCancellationRequested) {
|
|
357
|
+
logging.info(message);
|
|
358
|
+
throw new lsp_core_1.CancellationError('user');
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
exports.QCodeReviewUtils = QCodeReviewUtils;
|
|
363
|
+
//# sourceMappingURL=qCodeReviewUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qCodeReviewUtils.js","sourceRoot":"","sources":["../../../../../src/language-server/agenticChat/tools/qCodeAnalysis/qCodeReviewUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Server } from '@aws/language-server-runtimes/server-interface';
|
|
2
2
|
export declare const FsToolsServer: Server;
|
|
3
|
+
export declare const QCodeAnalysisServer: Server;
|
|
3
4
|
export declare const BashToolsServer: Server;
|
|
4
5
|
export declare const LspToolsServer: Server;
|
|
5
6
|
export declare const McpToolsServer: Server;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.McpToolsServer = exports.LspToolsServer = exports.BashToolsServer = exports.FsToolsServer = void 0;
|
|
3
|
+
exports.McpToolsServer = exports.LspToolsServer = exports.BashToolsServer = exports.QCodeAnalysisServer = exports.FsToolsServer = void 0;
|
|
4
4
|
const server_interface_1 = require("@aws/language-server-runtimes/server-interface");
|
|
5
5
|
const fsRead_1 = require("./fsRead");
|
|
6
6
|
const fsWrite_1 = require("./fsWrite");
|
|
@@ -13,8 +13,12 @@ const mcpManager_1 = require("./mcp/mcpManager");
|
|
|
13
13
|
const mcpTool_1 = require("./mcp/mcpTool");
|
|
14
14
|
const fileSearch_1 = require("./fileSearch");
|
|
15
15
|
const grepSearch_1 = require("./grepSearch");
|
|
16
|
+
const qCodeReview_1 = require("./qCodeAnalysis/qCodeReview");
|
|
17
|
+
const codeWhispererService_1 = require("../../../shared/codeWhispererService");
|
|
16
18
|
const mcpUtils_1 = require("./mcp/mcpUtils");
|
|
17
19
|
const fsReplace_1 = require("./fsReplace");
|
|
20
|
+
const qCodeReviewUtils_1 = require("./qCodeAnalysis/qCodeReviewUtils");
|
|
21
|
+
const constants_1 = require("../../../shared/constants");
|
|
18
22
|
const FsToolsServer = ({ workspace, logging, agent, lsp }) => {
|
|
19
23
|
const fsReadTool = new fsRead_1.FsRead({ workspace, lsp, logging });
|
|
20
24
|
const fsWriteTool = new fsWrite_1.FsWrite({ workspace, lsp, logging });
|
|
@@ -50,6 +54,42 @@ const FsToolsServer = ({ workspace, logging, agent, lsp }) => {
|
|
|
50
54
|
return () => { };
|
|
51
55
|
};
|
|
52
56
|
exports.FsToolsServer = FsToolsServer;
|
|
57
|
+
const QCodeAnalysisServer = ({ agent, credentialsProvider, logging, lsp, sdkInitializator, telemetry, workspace, }) => {
|
|
58
|
+
logging.info('QCodeAnalysisServer');
|
|
59
|
+
const qCodeReviewTool = new qCodeReview_1.QCodeReview({
|
|
60
|
+
credentialsProvider,
|
|
61
|
+
logging,
|
|
62
|
+
telemetry,
|
|
63
|
+
workspace,
|
|
64
|
+
});
|
|
65
|
+
lsp.onInitialized(async () => {
|
|
66
|
+
if (!qCodeReviewUtils_1.QCodeReviewUtils.isAgenticReviewEnabled(lsp.getClientInitializeParams())) {
|
|
67
|
+
logging.warn('Agentic Review is currently not supported');
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
logging.info('LSP on initialize for QCodeAnalysisServer');
|
|
71
|
+
// Get credentials provider from the LSP context
|
|
72
|
+
if (!credentialsProvider.hasCredentials) {
|
|
73
|
+
logging.error('Credentials provider not available');
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
// Create the CodeWhisperer client
|
|
77
|
+
const codeWhispererClient = new codeWhispererService_1.CodeWhispererServiceToken(credentialsProvider, workspace, logging, process.env.CODEWHISPERER_REGION || constants_1.DEFAULT_AWS_Q_REGION, process.env.CODEWHISPERER_ENDPOINT || constants_1.DEFAULT_AWS_Q_ENDPOINT_URL, sdkInitializator);
|
|
78
|
+
agent.addTool({
|
|
79
|
+
name: qCodeReview_1.QCodeReview.toolName,
|
|
80
|
+
description: qCodeReview_1.QCodeReview.toolDescription,
|
|
81
|
+
inputSchema: qCodeReview_1.QCodeReview.inputSchema,
|
|
82
|
+
}, async (input, token, updates) => {
|
|
83
|
+
return await qCodeReviewTool.execute(input, {
|
|
84
|
+
codeWhispererClient: codeWhispererClient,
|
|
85
|
+
cancellationToken: token,
|
|
86
|
+
writableStream: updates,
|
|
87
|
+
});
|
|
88
|
+
}, server_interface_1.ToolClassification.BuiltIn);
|
|
89
|
+
});
|
|
90
|
+
return () => { };
|
|
91
|
+
};
|
|
92
|
+
exports.QCodeAnalysisServer = QCodeAnalysisServer;
|
|
53
93
|
const BashToolsServer = ({ logging, workspace, agent, lsp }) => {
|
|
54
94
|
const bashTool = new executeBash_1.ExecuteBash({ logging, workspace, lsp });
|
|
55
95
|
agent.addTool(bashTool.getSpec(), async (input, token, updates) => {
|
|
@@ -97,49 +137,60 @@ const McpToolsServer = ({ credentialsProvider, workspace, logging, lsp, agent, t
|
|
|
97
137
|
},
|
|
98
138
|
},
|
|
99
139
|
};
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
140
|
+
const loggedToolName = `${namespaced} (original: ${def.toolName})`;
|
|
141
|
+
try {
|
|
142
|
+
agent.addTool({
|
|
143
|
+
name: namespaced,
|
|
144
|
+
description: (def.description?.trim() || 'undefined').substring(0, 10240),
|
|
145
|
+
inputSchema: inputSchemaWithExplanation,
|
|
146
|
+
}, input => tool.invoke(input), server_interface_1.ToolClassification.MCP);
|
|
147
|
+
registered[server].push(namespaced);
|
|
148
|
+
logging.info(`MCP: registered tool ${loggedToolName}`);
|
|
149
|
+
}
|
|
150
|
+
catch (e) {
|
|
151
|
+
console.warn(`Failed to register tool ${loggedToolName}:`, e);
|
|
152
|
+
}
|
|
107
153
|
}
|
|
108
154
|
}
|
|
109
155
|
lsp.onInitialized(async () => {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
156
|
+
try {
|
|
157
|
+
if (!(0, mcpUtils_1.enabledMCP)(lsp.getClientInitializeParams())) {
|
|
158
|
+
logging.warn('MCP is currently not supported');
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const wsUris = workspace.getAllWorkspaceFolders()?.map(f => f.uri) ?? [];
|
|
162
|
+
const wsConfigPaths = (0, mcpUtils_1.getWorkspaceMcpConfigPaths)(wsUris);
|
|
163
|
+
const globalConfigPath = (0, mcpUtils_1.getGlobalMcpConfigPath)(workspace.fs.getUserHomeDir());
|
|
164
|
+
const allConfigPaths = [...wsConfigPaths, globalConfigPath];
|
|
165
|
+
const wsPersonaPaths = (0, mcpUtils_1.getWorkspacePersonaConfigPaths)(wsUris);
|
|
166
|
+
const globalPersonaPath = (0, mcpUtils_1.getGlobalPersonaConfigPath)(workspace.fs.getUserHomeDir());
|
|
167
|
+
const allPersonaPaths = [...wsPersonaPaths, globalPersonaPath];
|
|
168
|
+
const mgr = await mcpManager_1.McpManager.init(allConfigPaths, allPersonaPaths, {
|
|
169
|
+
logging,
|
|
170
|
+
workspace,
|
|
171
|
+
lsp,
|
|
172
|
+
telemetry,
|
|
173
|
+
credentialsProvider,
|
|
174
|
+
runtime,
|
|
175
|
+
});
|
|
176
|
+
// Clear tool name mapping before registering all tools to avoid conflicts from previous registrations
|
|
177
|
+
mcpManager_1.McpManager.instance.clearToolNameMapping();
|
|
178
|
+
const byServer = {};
|
|
179
|
+
// only register enabled tools
|
|
180
|
+
for (const d of mgr.getEnabledTools()) {
|
|
181
|
+
;
|
|
182
|
+
(byServer[d.serverName] ||= []).push(d);
|
|
183
|
+
}
|
|
184
|
+
for (const [server, defs] of Object.entries(byServer)) {
|
|
185
|
+
registerServerTools(server, defs);
|
|
186
|
+
}
|
|
187
|
+
mgr.events.on(mcpManager_1.AGENT_TOOLS_CHANGED, (server, defs) => {
|
|
188
|
+
registerServerTools(server, defs);
|
|
189
|
+
});
|
|
136
190
|
}
|
|
137
|
-
|
|
138
|
-
|
|
191
|
+
catch (e) {
|
|
192
|
+
console.warn('Caught error during MCP tool initialization; initialization may be incomplete:', e);
|
|
139
193
|
}
|
|
140
|
-
mgr.events.on(mcpManager_1.AGENT_TOOLS_CHANGED, (server, defs) => {
|
|
141
|
-
registerServerTools(server, defs);
|
|
142
|
-
});
|
|
143
194
|
});
|
|
144
195
|
return async () => {
|
|
145
196
|
await mcpManager_1.McpManager.instance.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolServer.js","sourceRoot":"","sources":["../../../../src/language-server/agenticChat/tools/toolServer.ts"],"names":[],"mappings":";;;AAAA,qFAA8G;AAC9G,qCAA+C;AAC/C,uCAAkD;AAClD,mDAAoE;AACpE,+CAA8D;AAC9D,uDAA0E;AAC1E,uEAAkG;AAClG,mEAA+D;AAC/D,iDAAkE;AAClE,2CAAuC;AACvC,6CAA2D;AAC3D,6CAAyC;
|
|
1
|
+
{"version":3,"file":"toolServer.js","sourceRoot":"","sources":["../../../../src/language-server/agenticChat/tools/toolServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,7 @@ export declare class ChatSessionService {
|
|
|
25
25
|
set conversationId(value: string | undefined);
|
|
26
26
|
getDeferredToolExecution(messageId: string): DeferredHandler | undefined;
|
|
27
27
|
setDeferredToolExecution(messageId: string, resolve: any, reject: any): void;
|
|
28
|
+
getAllDeferredCompactMessageIds(): string[];
|
|
28
29
|
rejectAllDeferredToolExecutions(error: Error): void;
|
|
29
30
|
get toolUseLookup(): Map<string, ToolUse & {
|
|
30
31
|
fileChange?: FileChange;
|
|
@@ -42,13 +42,16 @@ class ChatSessionService {
|
|
|
42
42
|
setDeferredToolExecution(messageId, resolve, reject) {
|
|
43
43
|
this.#deferredToolExecution[messageId] = { resolve, reject };
|
|
44
44
|
}
|
|
45
|
+
getAllDeferredCompactMessageIds() {
|
|
46
|
+
return Object.keys(this.#deferredToolExecution).filter(messageId => messageId.endsWith('_compact'));
|
|
47
|
+
}
|
|
45
48
|
rejectAllDeferredToolExecutions(error) {
|
|
46
|
-
|
|
49
|
+
Object.keys(this.#deferredToolExecution).forEach(messageId => {
|
|
47
50
|
const handler = this.#deferredToolExecution[messageId];
|
|
48
51
|
if (handler && handler.reject) {
|
|
49
52
|
handler.reject(error);
|
|
50
53
|
}
|
|
51
|
-
}
|
|
54
|
+
});
|
|
52
55
|
// Clear all handlers after rejecting them
|
|
53
56
|
this.#deferredToolExecution = {};
|
|
54
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatSessionService.js","sourceRoot":"","sources":["../../../src/language-server/chat/chatSessionService.ts"],"names":[],"mappings":";;;AASA,gFAO4C;AAE5C,kDAM8B;AAE9B,4CAA4C;AAG5C,8CAA6F;AAC7F,8CAA0D;AAS1D,MAAa,kBAAkB;IACpB,gCAAgC,GAAG,KAAK,CAAA;IACxC,mBAAmB,GAAY,IAAI,CAAA;IACnC,eAAe,GAAY,KAAK,CAAA;IAChC,OAAO,CAAoB;IAClC,IAAI,CAAkB;IACtB,gBAAgB,CAAkB;IAClC,gBAAgB,CAAS;IACzB,eAAe,CAAS;IACxB,iBAAiB,GAAW,aAAa,CAAA;IACzC,sBAAsB,GAAoC,EAAE,CAAA;IAC5D,cAAc,GAGV,IAAI,GAAG,EAAE,CAAA;IACb,iBAAiB,CAAS;IAC1B,2DAA2D;IAC3D,cAAc,GAAgB,IAAI,GAAG,EAAU,CAAA;IAC/C,eAAe,CAA4B;IAC3C,QAAQ,CAAU;IAClB,OAAO,CAAS;IAET,mBAAmB;QACtB,OAAO,IAAI,CAAC,iBAAiB,CAAA;IACjC,CAAC;IAEM,mBAAmB,CAAC,KAAa;QACpC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAA;IAClC,CAAC;IAED,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAA;IAC/B,CAAC;IAED,IAAW,cAAc,CAAC,KAAyB;QAC/C,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;IAChC,CAAC;IAEM,wBAAwB,CAAC,SAAiB;QAC7C,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAA;IACjD,CAAC;IACM,wBAAwB,CAAC,SAAiB,EAAE,OAAY,EAAE,MAAW;QACxE,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;IAChE,CAAC;IAEM,+BAA+B,CAAC,KAAY;QAC/C,
|
|
1
|
+
{"version":3,"file":"chatSessionService.js","sourceRoot":"","sources":["../../../src/language-server/chat/chatSessionService.ts"],"names":[],"mappings":"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"}
|