@aws/lsp-codewhisperer 0.0.34 → 0.0.36

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 (103) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/out/client/token/bearer-token-service.json +91 -225
  3. package/out/language-server/agenticChat/agenticChatController.js +82 -29
  4. package/out/language-server/agenticChat/agenticChatController.js.map +1 -1
  5. package/out/language-server/agenticChat/agenticChatResultStream.js +3 -0
  6. package/out/language-server/agenticChat/agenticChatResultStream.js.map +1 -1
  7. package/out/language-server/agenticChat/constants.d.ts +3 -0
  8. package/out/language-server/agenticChat/constants.js +4 -1
  9. package/out/language-server/agenticChat/constants.js.map +1 -1
  10. package/out/language-server/agenticChat/context/agenticChatTriggerContext.d.ts +3 -8
  11. package/out/language-server/agenticChat/context/agenticChatTriggerContext.js +9 -2
  12. package/out/language-server/agenticChat/context/agenticChatTriggerContext.js.map +1 -1
  13. package/out/language-server/agenticChat/context/contextUtils.d.ts +20 -0
  14. package/out/language-server/agenticChat/context/contextUtils.js +107 -0
  15. package/out/language-server/agenticChat/context/contextUtils.js.map +1 -1
  16. package/out/language-server/agenticChat/errors.d.ts +2 -1
  17. package/out/language-server/agenticChat/errors.js +4 -1
  18. package/out/language-server/agenticChat/errors.js.map +1 -1
  19. package/out/language-server/agenticChat/tabBarController.js +1 -1
  20. package/out/language-server/agenticChat/tabBarController.js.map +1 -1
  21. package/out/language-server/agenticChat/tools/chatDb/chatDb.js +3 -2
  22. package/out/language-server/agenticChat/tools/chatDb/chatDb.js.map +1 -1
  23. package/out/language-server/agenticChat/tools/fileSearch.js +1 -1
  24. package/out/language-server/agenticChat/tools/fileSearch.js.map +1 -1
  25. package/out/language-server/agenticChat/tools/listDirectory.js +5 -5
  26. package/out/language-server/agenticChat/tools/listDirectory.js.map +1 -1
  27. package/out/language-server/chat/chatController.js +1 -1
  28. package/out/language-server/chat/chatController.js.map +1 -1
  29. package/out/language-server/chat/chatSessionService.d.ts +5 -0
  30. package/out/language-server/chat/chatSessionService.js +4 -1
  31. package/out/language-server/chat/chatSessionService.js.map +1 -1
  32. package/out/language-server/chat/constants.d.ts +3 -1
  33. package/out/language-server/chat/constants.js +15 -2
  34. package/out/language-server/chat/constants.js.map +1 -1
  35. package/out/language-server/chat/contexts/triggerContext.d.ts +3 -1
  36. package/out/language-server/chat/contexts/triggerContext.js +14 -1
  37. package/out/language-server/chat/contexts/triggerContext.js.map +1 -1
  38. package/out/language-server/configuration/qConfigurationServer.d.ts +8 -1
  39. package/out/language-server/configuration/qConfigurationServer.js +107 -8
  40. package/out/language-server/configuration/qConfigurationServer.js.map +1 -1
  41. package/out/language-server/inline-completion/codeWhispererServer.js +15 -2
  42. package/out/language-server/inline-completion/codeWhispererServer.js.map +1 -1
  43. package/out/language-server/netTransform/resources/SupportedProjects.js +1 -7
  44. package/out/language-server/netTransform/resources/SupportedProjects.js.map +1 -1
  45. package/out/language-server/workspaceContext/artifactManager.d.ts +44 -0
  46. package/out/language-server/workspaceContext/artifactManager.js +496 -0
  47. package/out/language-server/workspaceContext/artifactManager.js.map +1 -0
  48. package/out/language-server/workspaceContext/client.d.ts +23 -0
  49. package/out/language-server/workspaceContext/client.js +172 -0
  50. package/out/language-server/workspaceContext/client.js.map +1 -0
  51. package/out/language-server/workspaceContext/dependency/dependencyDiscoverer.d.ts +15 -0
  52. package/out/language-server/workspaceContext/dependency/dependencyDiscoverer.js +129 -0
  53. package/out/language-server/workspaceContext/dependency/dependencyDiscoverer.js.map +1 -0
  54. package/out/language-server/workspaceContext/dependency/dependencyHandler/JSTSDependencyHandler.d.ts +18 -0
  55. package/out/language-server/workspaceContext/dependency/dependencyHandler/JSTSDependencyHandler.js +204 -0
  56. package/out/language-server/workspaceContext/dependency/dependencyHandler/JSTSDependencyHandler.js.map +1 -0
  57. package/out/language-server/workspaceContext/dependency/dependencyHandler/JavaDependencyHandler.d.ts +16 -0
  58. package/out/language-server/workspaceContext/dependency/dependencyHandler/JavaDependencyHandler.js +160 -0
  59. package/out/language-server/workspaceContext/dependency/dependencyHandler/JavaDependencyHandler.js.map +1 -0
  60. package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandler.d.ts +78 -0
  61. package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandler.js +255 -0
  62. package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandler.js.map +1 -0
  63. package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandlerFactory.d.ts +7 -0
  64. package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandlerFactory.js +23 -0
  65. package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandlerFactory.js.map +1 -0
  66. package/out/language-server/workspaceContext/dependency/dependencyHandler/PythonDependencyHandler.d.ts +46 -0
  67. package/out/language-server/workspaceContext/dependency/dependencyHandler/PythonDependencyHandler.js +233 -0
  68. package/out/language-server/workspaceContext/dependency/dependencyHandler/PythonDependencyHandler.js.map +1 -0
  69. package/out/language-server/workspaceContext/javaManager.d.ts +92 -0
  70. package/out/language-server/workspaceContext/javaManager.js +710 -0
  71. package/out/language-server/workspaceContext/javaManager.js.map +1 -0
  72. package/out/language-server/workspaceContext/util.d.ts +10 -0
  73. package/out/language-server/workspaceContext/util.js +72 -0
  74. package/out/language-server/workspaceContext/util.js.map +1 -0
  75. package/out/language-server/workspaceContext/workspaceContextServer.d.ts +2 -0
  76. package/out/language-server/workspaceContext/workspaceContextServer.js +414 -0
  77. package/out/language-server/workspaceContext/workspaceContextServer.js.map +1 -0
  78. package/out/language-server/workspaceContext/workspaceFolderManager.d.ts +113 -0
  79. package/out/language-server/workspaceContext/workspaceFolderManager.js +827 -0
  80. package/out/language-server/workspaceContext/workspaceFolderManager.js.map +1 -0
  81. package/out/shared/amazonQServiceManager/qDeveloperProfiles.js.map +1 -1
  82. package/out/shared/codeWhispererService.d.ts +13 -0
  83. package/out/shared/codeWhispererService.js +24 -0
  84. package/out/shared/codeWhispererService.js.map +1 -1
  85. package/out/shared/languageDetection.d.ts +27 -0
  86. package/out/shared/languageDetection.js +44 -1
  87. package/out/shared/languageDetection.js.map +1 -1
  88. package/out/shared/localProjectContextController.d.ts +1 -0
  89. package/out/shared/localProjectContextController.js +7 -9
  90. package/out/shared/localProjectContextController.js.map +1 -1
  91. package/out/shared/proxy-server.d.ts +1 -0
  92. package/out/shared/proxy-server.js +3 -1
  93. package/out/shared/proxy-server.js.map +1 -1
  94. package/out/shared/supplementalContextUtil/crossFileContextUtil.d.ts +4 -3
  95. package/out/shared/supplementalContextUtil/crossFileContextUtil.js +16 -5
  96. package/out/shared/supplementalContextUtil/crossFileContextUtil.js.map +1 -1
  97. package/out/shared/supplementalContextUtil/supplementalContextUtil.d.ts +2 -1
  98. package/out/shared/supplementalContextUtil/supplementalContextUtil.js +2 -2
  99. package/out/shared/supplementalContextUtil/supplementalContextUtil.js.map +1 -1
  100. package/out/shared/utils.d.ts +1 -0
  101. package/out/shared/utils.js +15 -1
  102. package/out/shared/utils.js.map +1 -1
  103. package/package.json +9 -3
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PythonDependencyHandler = void 0;
4
+ const LanguageDependencyHandler_1 = require("./LanguageDependencyHandler");
5
+ const path = require("path");
6
+ const fs = require("fs");
7
+ const util_1 = require("../../util");
8
+ /*
9
+ * Python Dependency Handler
10
+ *
11
+ * This handler depends on .vscode/settings.json to discover dependency locations
12
+ */
13
+ class PythonDependencyHandler extends LanguageDependencyHandler_1.LanguageDependencyHandler {
14
+ pythonDependencyInfos = [];
15
+ /**
16
+ * It will return a boolean indicating whether it finds any dependency info.
17
+ * The PythonDependencyInfo object contains the following properties:
18
+ * - pkgDir: the package directory
19
+ * - vscCodeSettingsJsonPath: the path to the .vscode/settings.json file
20
+ * - sitePackagesPaths: the path to site-packages directory
21
+ */
22
+ discover(currentDir, workspaceFolder) {
23
+ let result = null;
24
+ const vscCodeSettingsJsonPath = path.join(currentDir, '.vscode', 'settings.json');
25
+ if (fs.existsSync(vscCodeSettingsJsonPath) && fs.statSync(vscCodeSettingsJsonPath).isFile()) {
26
+ this.logging.log(`Found .vscode/settings.json in ${currentDir}`);
27
+ let settingsContent;
28
+ try {
29
+ settingsContent = JSON.parse(fs.readFileSync(vscCodeSettingsJsonPath, 'utf-8'));
30
+ }
31
+ catch (error) {
32
+ this.logging.warn(`Can't parse settings.json, skipping`);
33
+ return false;
34
+ }
35
+ // Get and resolve paths from both settings
36
+ const analysisPaths = (settingsContent['python.analysis.extraPaths'] || []).map((rawPath) => this.resolvePath(rawPath, currentDir));
37
+ const autoCompletePaths = (settingsContent['python.autoComplete.extraPaths'] || []).map((rawPath) => this.resolvePath(rawPath, currentDir));
38
+ // Find all unique site-packages directories
39
+ const sitePackagesPaths = this.findSitePackagesPaths([...analysisPaths, ...autoCompletePaths]);
40
+ if (sitePackagesPaths.length === 0) {
41
+ this.logging.log('No site-packages directories found in Python paths');
42
+ }
43
+ else {
44
+ result = {
45
+ pkgDir: currentDir,
46
+ vscCodeSettingsJsonPath: vscCodeSettingsJsonPath,
47
+ sitePackagesPaths: sitePackagesPaths,
48
+ workspaceFolder: workspaceFolder,
49
+ };
50
+ this.pythonDependencyInfos.push(result);
51
+ }
52
+ }
53
+ return result !== null;
54
+ }
55
+ /**
56
+ * It will create a dependency map from the site-packages
57
+ * The dependency map will contain the following properties:
58
+ * - name: the name of the dependency
59
+ * - version: the version of the dependency
60
+ * - path: the path to the dependency
61
+ */
62
+ initiateDependencyMap(folders) {
63
+ // Filter out the javaDependencyInfos that are in the folders
64
+ const pythonDependencyInfoToBeInitiated = this.pythonDependencyInfos.filter(pythonDependencyInfo => {
65
+ return folders.includes(pythonDependencyInfo.workspaceFolder);
66
+ });
67
+ pythonDependencyInfoToBeInitiated.forEach(pythonDependencyInfo => {
68
+ // TODO, check if the try catch is necessary here
69
+ try {
70
+ let generatedDependencyMap = this.generateDependencyMap(pythonDependencyInfo);
71
+ this.compareAndUpdateDependencyMap(pythonDependencyInfo.workspaceFolder, generatedDependencyMap).catch(error => {
72
+ this.logging.warn(`Error processing Python dependencies: ${error}`);
73
+ });
74
+ // Log found dependencies
75
+ this.logging.log(`Total Python dependencies found: ${generatedDependencyMap.size} under ${pythonDependencyInfo.pkgDir}`);
76
+ }
77
+ catch (error) {
78
+ this.logging.warn(`Error processing Python dependencies: ${error}`);
79
+ }
80
+ });
81
+ return;
82
+ }
83
+ /**
84
+ * It will setup watchers for the .classpath files.
85
+ * When a change is detected, it will update the dependency map.
86
+ */
87
+ setupWatchers(folders) {
88
+ // Filter out the javaDependencyInfos that are in the folders
89
+ const pythonDependencyInfoToBeWatched = this.pythonDependencyInfos.filter(pythonDependencyInfo => {
90
+ return folders.includes(pythonDependencyInfo.workspaceFolder);
91
+ });
92
+ pythonDependencyInfoToBeWatched.forEach(pythonDependencyInfo => {
93
+ pythonDependencyInfo.sitePackagesPaths.forEach(sitePackagesPath => {
94
+ if (this.dependencyWatchers.has(sitePackagesPath)) {
95
+ return;
96
+ }
97
+ this.logging.log(`Setting up Python dependency watcher for ${sitePackagesPath}`);
98
+ try {
99
+ const watcher = fs.watch(sitePackagesPath, { recursive: false }, async (eventType, fileName) => {
100
+ if (!fileName)
101
+ return;
102
+ // Handle event types
103
+ if (eventType === 'rename') {
104
+ const updatedDependencyMap = new Map();
105
+ if (this.isMetadataDirectory(fileName)) {
106
+ this.handleMetadataChange(sitePackagesPath, fileName, updatedDependencyMap);
107
+ }
108
+ else {
109
+ this.handlePackageChange(sitePackagesPath, fileName, updatedDependencyMap);
110
+ }
111
+ let zips = await this.compareAndUpdateDependencyMap(pythonDependencyInfo.workspaceFolder, updatedDependencyMap, true);
112
+ this.emitDependencyChange(pythonDependencyInfo.workspaceFolder, zips);
113
+ }
114
+ });
115
+ this.dependencyWatchers.set(sitePackagesPath, watcher);
116
+ this.logging.log(`Started watching Python site-packages: ${sitePackagesPath}`);
117
+ }
118
+ catch (error) {
119
+ this.logging.warn(`Error setting up watcher for ${sitePackagesPath}: ${error}`);
120
+ }
121
+ });
122
+ });
123
+ }
124
+ /**
125
+ * It will generate a dependency map from the site-packages
126
+ * The dependency map will contain the following properties:
127
+ *
128
+ * @param pythonDependencyInfo
129
+ * @param dependencyMap
130
+ */
131
+ generateDependencyMap(pythonDependencyInfo) {
132
+ const dependencyMap = new Map();
133
+ // Process each site-packages directory
134
+ for (const sitePackagesPath of pythonDependencyInfo.sitePackagesPaths) {
135
+ const sitePackagesContent = fs.readdirSync(sitePackagesPath);
136
+ for (const item of sitePackagesContent) {
137
+ const itemPath = path.join(sitePackagesPath, item);
138
+ this.transformPathToDependency(item, itemPath, dependencyMap);
139
+ }
140
+ }
141
+ return dependencyMap;
142
+ }
143
+ transformPathToDependency(dependencyName, dependencyPath, dependencyMap) {
144
+ // Skip if it's a metadata directory
145
+ if (this.isMetadataDirectory(dependencyPath)) {
146
+ return;
147
+ }
148
+ // Add to dependency map if not already present
149
+ if (!dependencyMap.has(dependencyName)) {
150
+ let dependencySize = 0;
151
+ if ((0, util_1.isDirectory)(dependencyPath)) {
152
+ dependencySize = this.getDirectorySize(dependencyPath);
153
+ }
154
+ else {
155
+ dependencySize = fs.statSync(dependencyPath).size;
156
+ }
157
+ dependencyMap.set(dependencyName, {
158
+ name: dependencyName,
159
+ version: 'unknown',
160
+ path: dependencyPath,
161
+ size: dependencySize,
162
+ zipped: false,
163
+ });
164
+ }
165
+ }
166
+ isMetadataDirectory(filename) {
167
+ return filename.endsWith('.egg-info') || filename.endsWith('.dist-info') || filename.endsWith('-info');
168
+ }
169
+ handleMetadataChange(sitePackagesPath, metadataDir, updatedDependencyMap) {
170
+ // Extract package name from metadata directory name
171
+ // Example: 'requests-2.28.1.dist-info' -> 'requests'
172
+ const dependencyName = metadataDir.split('-')[0];
173
+ // Check if we have this package in our dependency map
174
+ const dependencyPath = path.join(sitePackagesPath, dependencyName);
175
+ if (fs.existsSync(dependencyPath)) {
176
+ // Mark the package as updated
177
+ const updatedDependency = {
178
+ name: dependencyName,
179
+ version: 'unknown',
180
+ path: dependencyPath,
181
+ size: this.getDirectorySize(dependencyPath),
182
+ zipped: false,
183
+ };
184
+ updatedDependencyMap.set(dependencyName, updatedDependency);
185
+ this.logging.log(`Python package updated (metadata change): ${dependencyPath}`);
186
+ }
187
+ }
188
+ handlePackageChange(sitePackagesPath, fileName, updatedDependencyMap) {
189
+ const dependencyPath = path.join(sitePackagesPath, fileName);
190
+ if (fs.existsSync(dependencyPath)) {
191
+ const updatedDependency = {
192
+ name: fileName,
193
+ version: 'unknown',
194
+ path: dependencyPath,
195
+ size: this.getDirectorySize(dependencyPath),
196
+ zipped: false,
197
+ };
198
+ updatedDependencyMap.set(fileName, updatedDependency);
199
+ this.logging.log(`Python package updated: ${fileName}`);
200
+ }
201
+ }
202
+ resolvePath(rawPath, workspaceFolder) {
203
+ // resolve the path which may contain variables
204
+ return rawPath
205
+ .replace(/\${workspaceFolder}/g, workspaceFolder)
206
+ .replace(/\${env:([^}]+)}/g, (_, envVar) => process.env[envVar] || '')
207
+ .replace(/\${userHome}/g, process.env.HOME || process.env.USERPROFILE || '');
208
+ }
209
+ findSitePackagesPaths(pythonPaths) {
210
+ // Normalize paths and remove duplicates
211
+ const normalizedPaths = new Set(pythonPaths.map(p => path.normalize(p)).filter(p => p.includes('site-packages') && fs.existsSync(p)));
212
+ return Array.from(normalizedPaths);
213
+ }
214
+ disposeWatchers(workspaceFolder) {
215
+ this.pythonDependencyInfos.forEach((pythonDependencyInfo) => {
216
+ if (workspaceFolder.uri === pythonDependencyInfo.workspaceFolder.uri) {
217
+ pythonDependencyInfo.sitePackagesPaths.forEach((sitePackagesPath) => {
218
+ if (this.dependencyWatchers.has(sitePackagesPath)) {
219
+ this.logging.log(`Disposing dependency watcher for ${sitePackagesPath}`);
220
+ this.dependencyWatchers.get(sitePackagesPath)?.close();
221
+ this.dependencyWatchers.delete(sitePackagesPath);
222
+ }
223
+ });
224
+ }
225
+ });
226
+ }
227
+ disposeDependencyInfo(workspaceFolder) {
228
+ // Remove the dependency info for the workspace folder
229
+ this.pythonDependencyInfos = this.pythonDependencyInfos.filter((pythonDependencyInfo) => pythonDependencyInfo.workspaceFolder.uri !== workspaceFolder.uri);
230
+ }
231
+ }
232
+ exports.PythonDependencyHandler = PythonDependencyHandler;
233
+ //# sourceMappingURL=PythonDependencyHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PythonDependencyHandler.js","sourceRoot":"","sources":["../../../../../src/language-server/workspaceContext/dependency/dependencyHandler/PythonDependencyHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import { FileMetadata } from './artifactManager';
2
+ import { WorkspaceFolder } from '@aws/language-server-runtimes/protocol';
3
+ import { Logging } from '@aws/language-server-runtimes/server-interface';
4
+ interface SourcePath {
5
+ path: string;
6
+ isOptional: boolean;
7
+ isGenerated?: boolean;
8
+ }
9
+ interface LibraryArtifact {
10
+ libraryPath: string;
11
+ sourcesPath?: string;
12
+ documentationPath?: string;
13
+ }
14
+ interface JavaProjectStructure {
15
+ sourceDirectories: SourcePath[];
16
+ testDirectories: SourcePath[];
17
+ resourceDirectories: SourcePath[];
18
+ testResourceDirectories: SourcePath[];
19
+ outputDirectory: string;
20
+ testOutputDirectory: string;
21
+ javaVersion: string;
22
+ dependencies: LibraryArtifact[];
23
+ annotationProcessors?: {
24
+ processors: string[];
25
+ options: Record<string, string>;
26
+ };
27
+ }
28
+ interface SourcePath {
29
+ path: string;
30
+ isOptional: boolean;
31
+ isGenerated?: boolean;
32
+ }
33
+ interface LibraryArtifact {
34
+ libraryPath: string;
35
+ sourcesPath?: string;
36
+ documentationPath?: string;
37
+ }
38
+ interface JavaProjectStructure {
39
+ sourceDirectories: SourcePath[];
40
+ testDirectories: SourcePath[];
41
+ resourceDirectories: SourcePath[];
42
+ testResourceDirectories: SourcePath[];
43
+ outputDirectory: string;
44
+ testOutputDirectory: string;
45
+ javaVersion: string;
46
+ dependencies: LibraryArtifact[];
47
+ annotationProcessors?: {
48
+ processors: string[];
49
+ options: Record<string, string>;
50
+ };
51
+ }
52
+ export declare class JavaProjectAnalyzer {
53
+ private readonly workspacePath;
54
+ private readonly defaultMavenStructure;
55
+ private readonly defaultGradleStructure;
56
+ constructor(workspacePath: string);
57
+ analyze(): Promise<JavaProjectStructure>;
58
+ private detectBuildSystem;
59
+ private findSourceDirectories;
60
+ private findPotentialSourceDirectories;
61
+ private hasJavaFiles;
62
+ private findTestDirectories;
63
+ private findResourceDirectories;
64
+ private findTestResourceDirectories;
65
+ private detectJavaVersion;
66
+ private analyzeDependencies;
67
+ private findAnnotationProcessors;
68
+ private getOutputDirectory;
69
+ private getTestOutputDirectory;
70
+ private fileExists;
71
+ private readPomXml;
72
+ private readGradleFile;
73
+ private parseMavenSourceDirectories;
74
+ private parseGradleSourceDirectories;
75
+ }
76
+ export declare class EclipseConfigGenerator {
77
+ private readonly workspaceFolder;
78
+ private readonly logging;
79
+ private readonly projectFiles;
80
+ private initializationPromise;
81
+ private readonly workspacePath;
82
+ constructor(workspaceFolder: WorkspaceFolder, logging: Logging);
83
+ generateDotClasspath(structure: JavaProjectStructure): Promise<FileMetadata[]>;
84
+ generateDotProject(projectName: string, structure: JavaProjectStructure): Promise<FileMetadata[]>;
85
+ generateDotFactorypath(structure: JavaProjectStructure): Promise<string>;
86
+ generateDotSettings(structure: JavaProjectStructure): Promise<Map<string, string>>;
87
+ private initializeProjectFiles;
88
+ private ensureInitialized;
89
+ private addAttribute;
90
+ private normalizePath;
91
+ }
92
+ export {};