@aws/lsp-codewhisperer 0.0.82 → 0.0.84

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 (135) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/out/language-server/agenticChat/agenticChatController.js +105 -35
  3. package/out/language-server/agenticChat/agenticChatController.js.map +1 -1
  4. package/out/language-server/agenticChat/agenticChatResultStream.d.ts +1 -0
  5. package/out/language-server/agenticChat/agenticChatResultStream.js +21 -0
  6. package/out/language-server/agenticChat/agenticChatResultStream.js.map +1 -1
  7. package/out/language-server/agenticChat/constants/constants.d.ts +30 -0
  8. package/out/language-server/agenticChat/constants/constants.js +44 -1
  9. package/out/language-server/agenticChat/constants/constants.js.map +1 -1
  10. package/out/language-server/agenticChat/constants/modelSelection.d.ts +2 -2
  11. package/out/language-server/agenticChat/constants/modelSelection.js +6 -5
  12. package/out/language-server/agenticChat/constants/modelSelection.js.map +1 -1
  13. package/out/language-server/agenticChat/context/agenticChatTriggerContext.d.ts +2 -1
  14. package/out/language-server/agenticChat/context/agenticChatTriggerContext.js +3 -1
  15. package/out/language-server/agenticChat/context/agenticChatTriggerContext.js.map +1 -1
  16. package/out/language-server/agenticChat/context/memorybank/memoryBankController.js +4 -3
  17. package/out/language-server/agenticChat/context/memorybank/memoryBankController.js.map +1 -1
  18. package/out/language-server/agenticChat/retry/delayInterceptor.d.ts +33 -0
  19. package/out/language-server/agenticChat/retry/delayInterceptor.js +79 -0
  20. package/out/language-server/agenticChat/retry/delayInterceptor.js.map +1 -0
  21. package/out/language-server/agenticChat/retry/errorTransformer.d.ts +15 -0
  22. package/out/language-server/agenticChat/retry/errorTransformer.js +152 -0
  23. package/out/language-server/agenticChat/retry/errorTransformer.js.map +1 -0
  24. package/out/language-server/agenticChat/retry/index.d.ts +3 -0
  25. package/out/language-server/agenticChat/retry/index.js +11 -0
  26. package/out/language-server/agenticChat/retry/index.js.map +1 -0
  27. package/out/language-server/agenticChat/retry/qRetryStrategy.d.ts +20 -0
  28. package/out/language-server/agenticChat/retry/qRetryStrategy.js +71 -0
  29. package/out/language-server/agenticChat/retry/qRetryStrategy.js.map +1 -0
  30. package/out/language-server/agenticChat/retry/retryClassifier.d.ts +32 -0
  31. package/out/language-server/agenticChat/retry/retryClassifier.js +122 -0
  32. package/out/language-server/agenticChat/retry/retryClassifier.js.map +1 -0
  33. package/out/language-server/agenticChat/tabBarController.d.ts +4 -0
  34. package/out/language-server/agenticChat/tabBarController.js +19 -2
  35. package/out/language-server/agenticChat/tabBarController.js.map +1 -1
  36. package/out/language-server/agenticChat/tools/chatDb/chatDb.d.ts +3 -25
  37. package/out/language-server/agenticChat/tools/chatDb/chatDb.js +12 -107
  38. package/out/language-server/agenticChat/tools/chatDb/chatDb.js.map +1 -1
  39. package/out/language-server/agenticChat/tools/chatDb/util.js +1 -2
  40. package/out/language-server/agenticChat/tools/chatDb/util.js.map +1 -1
  41. package/out/language-server/agenticChat/tools/fsRead.d.ts +3 -1
  42. package/out/language-server/agenticChat/tools/fsRead.js +12 -7
  43. package/out/language-server/agenticChat/tools/fsRead.js.map +1 -1
  44. package/out/language-server/agenticChat/tools/qCodeAnalysis/codeReview.js +30 -14
  45. package/out/language-server/agenticChat/tools/qCodeAnalysis/codeReview.js.map +1 -1
  46. package/out/language-server/agenticChat/tools/qCodeAnalysis/codeReviewConstants.js +1 -1
  47. package/out/language-server/agenticChat/tools/qCodeAnalysis/codeReviewConstants.js.map +1 -1
  48. package/out/language-server/agenticChat/tools/qCodeAnalysis/codeReviewTypes.d.ts +8 -0
  49. package/out/language-server/chat/chatController.js.map +1 -1
  50. package/out/language-server/chat/chatSessionService.d.ts +8 -1
  51. package/out/language-server/chat/chatSessionService.js +38 -81
  52. package/out/language-server/chat/chatSessionService.js.map +1 -1
  53. package/out/language-server/chat/constants.d.ts +1 -0
  54. package/out/language-server/chat/constants.js +2 -1
  55. package/out/language-server/chat/constants.js.map +1 -1
  56. package/out/language-server/chat/telemetry/chatTelemetryController.d.ts +2 -1
  57. package/out/language-server/chat/telemetry/chatTelemetryController.js +12 -1
  58. package/out/language-server/chat/telemetry/chatTelemetryController.js.map +1 -1
  59. package/out/language-server/inline-completion/codeWhispererServer.d.ts +0 -1
  60. package/out/language-server/inline-completion/codeWhispererServer.js +17 -481
  61. package/out/language-server/inline-completion/codeWhispererServer.js.map +1 -1
  62. package/out/language-server/inline-completion/contants/constants.js.map +1 -0
  63. package/out/language-server/inline-completion/{editCompletionHandler.d.ts → handler/editCompletionHandler.d.ts} +10 -10
  64. package/out/language-server/inline-completion/{editCompletionHandler.js → handler/editCompletionHandler.js} +17 -14
  65. package/out/language-server/inline-completion/handler/editCompletionHandler.js.map +1 -0
  66. package/out/language-server/inline-completion/handler/inlineCompletionHandler.d.ts +32 -0
  67. package/out/language-server/inline-completion/handler/inlineCompletionHandler.js +377 -0
  68. package/out/language-server/inline-completion/handler/inlineCompletionHandler.js.map +1 -0
  69. package/out/language-server/inline-completion/handler/sessionResultsHandler.d.ts +23 -0
  70. package/out/language-server/inline-completion/handler/sessionResultsHandler.js +119 -0
  71. package/out/language-server/inline-completion/handler/sessionResultsHandler.js.map +1 -0
  72. package/out/language-server/inline-completion/{telemetry.d.ts → telemetry/telemetry.d.ts} +2 -2
  73. package/out/language-server/inline-completion/{telemetry.js → telemetry/telemetry.js} +2 -2
  74. package/out/language-server/inline-completion/telemetry/telemetry.js.map +1 -0
  75. package/out/language-server/inline-completion/{codeDiffTracker.d.ts → tracker/codeDiffTracker.d.ts} +2 -2
  76. package/out/language-server/inline-completion/{codeDiffTracker.js → tracker/codeDiffTracker.js} +1 -1
  77. package/out/language-server/inline-completion/tracker/codeDiffTracker.js.map +1 -0
  78. package/out/language-server/inline-completion/tracker/codeEditTracker.js +1 -1
  79. package/out/language-server/inline-completion/tracker/codeEditTracker.js.map +1 -1
  80. package/out/language-server/inline-completion/{codePercentage.d.ts → tracker/codePercentageTracker.d.ts} +1 -1
  81. package/out/language-server/inline-completion/{codePercentage.js → tracker/codePercentageTracker.js} +1 -1
  82. package/out/language-server/inline-completion/tracker/codePercentageTracker.js.map +1 -0
  83. package/out/language-server/inline-completion/{diffUtils.d.ts → utils/diffUtils.d.ts} +29 -12
  84. package/out/language-server/inline-completion/utils/diffUtils.js +407 -0
  85. package/out/language-server/inline-completion/utils/diffUtils.js.map +1 -0
  86. package/out/language-server/inline-completion/utils/mergeRightUtils.d.ts +9 -0
  87. package/out/language-server/inline-completion/utils/mergeRightUtils.js +67 -0
  88. package/out/language-server/inline-completion/utils/mergeRightUtils.js.map +1 -0
  89. package/out/language-server/inline-completion/utils/textDocumentUtils.d.ts +3 -0
  90. package/out/language-server/inline-completion/utils/textDocumentUtils.js +37 -0
  91. package/out/language-server/inline-completion/utils/textDocumentUtils.js.map +1 -0
  92. package/out/language-server/inline-completion/{trigger.d.ts → utils/triggerUtils.d.ts} +4 -4
  93. package/out/language-server/inline-completion/{trigger.js → utils/triggerUtils.js} +3 -3
  94. package/out/language-server/inline-completion/utils/triggerUtils.js.map +1 -0
  95. package/out/language-server/netTransform/artifactManager.d.ts +2 -2
  96. package/out/language-server/netTransform/artifactManager.js +6 -10
  97. package/out/language-server/netTransform/artifactManager.js.map +1 -1
  98. package/out/language-server/workspaceContext/workspaceFolderManager.js +3 -1
  99. package/out/language-server/workspaceContext/workspaceFolderManager.js.map +1 -1
  100. package/out/shared/amazonQServiceManager/AmazonQIAMServiceManager.d.ts +1 -1
  101. package/out/shared/amazonQServiceManager/AmazonQIAMServiceManager.js +8 -2
  102. package/out/shared/amazonQServiceManager/AmazonQIAMServiceManager.js.map +1 -1
  103. package/out/shared/amazonQServiceManager/AmazonQTokenServiceManager.js +1 -0
  104. package/out/shared/amazonQServiceManager/AmazonQTokenServiceManager.js.map +1 -1
  105. package/out/shared/amazonQServiceManager/BaseAmazonQServiceManager.js +6 -0
  106. package/out/shared/amazonQServiceManager/BaseAmazonQServiceManager.js.map +1 -1
  107. package/out/shared/codeWhispererService.js +52 -20
  108. package/out/shared/codeWhispererService.js.map +1 -1
  109. package/out/shared/streamingClientService.d.ts +7 -1
  110. package/out/shared/streamingClientService.js +53 -15
  111. package/out/shared/streamingClientService.js.map +1 -1
  112. package/out/shared/telemetry/telemetryService.js.map +1 -1
  113. package/out/shared/telemetry/types.d.ts +8 -0
  114. package/out/shared/telemetry/types.js +1 -0
  115. package/out/shared/telemetry/types.js.map +1 -1
  116. package/out/shared/testUtils.d.ts +0 -3
  117. package/out/shared/testUtils.js +1 -22
  118. package/out/shared/testUtils.js.map +1 -1
  119. package/out/shared/utils.d.ts +10 -4
  120. package/out/shared/utils.js +20 -11
  121. package/out/shared/utils.js.map +1 -1
  122. package/package.json +4 -5
  123. package/out/language-server/inline-completion/codeDiffTracker.js.map +0 -1
  124. package/out/language-server/inline-completion/codePercentage.js.map +0 -1
  125. package/out/language-server/inline-completion/constants.js.map +0 -1
  126. package/out/language-server/inline-completion/diffUtils.js +0 -255
  127. package/out/language-server/inline-completion/diffUtils.js.map +0 -1
  128. package/out/language-server/inline-completion/editCompletionHandler.js.map +0 -1
  129. package/out/language-server/inline-completion/mergeRightUtils.d.ts +0 -25
  130. package/out/language-server/inline-completion/mergeRightUtils.js +0 -114
  131. package/out/language-server/inline-completion/mergeRightUtils.js.map +0 -1
  132. package/out/language-server/inline-completion/telemetry.js.map +0 -1
  133. package/out/language-server/inline-completion/trigger.js.map +0 -1
  134. /package/out/language-server/inline-completion/{constants.d.ts → contants/constants.d.ts} +0 -0
  135. /package/out/language-server/inline-completion/{constants.js → contants/constants.js} +0 -0
@@ -0,0 +1,407 @@
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.generateUnifiedDiffWithTimestamps = generateUnifiedDiffWithTimestamps;
8
+ exports.generateDiffContexts = generateDiffContexts;
9
+ exports.getAddedAndDeletedLines = getAddedAndDeletedLines;
10
+ exports.getCharacterDifferences = getCharacterDifferences;
11
+ exports.processEditSuggestion = processEditSuggestion;
12
+ exports.readUdiff = readUdiff;
13
+ exports.categorizeUnifieddiff = categorizeUnifieddiff;
14
+ exports.extractAdditions = extractAdditions;
15
+ exports.removeOverlapCodeFromSuggestion = removeOverlapCodeFromSuggestion;
16
+ exports.longestCommonPrefix = longestCommonPrefix;
17
+ const diff_1 = require("diff");
18
+ const supplementalContextUtil_1 = require("../../../shared/supplementalContextUtil/supplementalContextUtil");
19
+ const protocol_1 = require("@aws/language-server-runtimes/protocol");
20
+ const codeWhispererService_1 = require("../../../shared/codeWhispererService");
21
+ const mergeRightUtils_1 = require("./mergeRightUtils");
22
+ /**
23
+ * Generates a unified diff format between old and new file contents
24
+ *
25
+ * @param oldFilePath - Path to the old version of the file
26
+ * @param newFilePath - Path to the new version of the file
27
+ * @param oldContent - Content of the old version
28
+ * @param newContent - Content of the new version
29
+ * @param oldTimestamp - Timestamp of the old version
30
+ * @param newTimestamp - Timestamp of the new version
31
+ * @param contextSize - Number of context lines to include in the diff
32
+ * @returns Unified diff string
33
+ */
34
+ function generateUnifiedDiffWithTimestamps(oldFilePath, newFilePath, oldContent, newContent, oldTimestamp, newTimestamp, contextSize = 3) {
35
+ const patchResult = (0, diff_1.createTwoFilesPatch)(oldFilePath, newFilePath, oldContent, newContent, String(oldTimestamp), String(newTimestamp), { context: contextSize });
36
+ // Remove unused headers
37
+ const lines = patchResult.split('\n');
38
+ if (lines.length >= 2 && lines[0].startsWith('Index:')) {
39
+ lines.splice(0, 2);
40
+ return lines.join('\n');
41
+ }
42
+ return patchResult;
43
+ }
44
+ /**
45
+ * Generates supplemental contexts from snapshot contents and current content
46
+ *
47
+ * @param filePath - Path to the file
48
+ * @param currentContent - Current content of the file
49
+ * @param snapshotContents - List of snapshot contents sorted by timestamp (oldest first)
50
+ * @param maxContexts - Maximum number of supplemental contexts to return
51
+ * @returns CodeWhispererSupplementalContext object containing diffs between snapshots and current content
52
+ */
53
+ function generateDiffContexts(filePath, currentContent, snapshotContents, maxContexts) {
54
+ if (snapshotContents.length === 0) {
55
+ return {
56
+ isUtg: false,
57
+ isProcessTimeout: false,
58
+ supplementalContextItems: [],
59
+ contentsLength: 0,
60
+ latency: 0,
61
+ strategy: 'recentEdits',
62
+ };
63
+ }
64
+ const startTime = Date.now();
65
+ const supplementalContextItems = [];
66
+ const currentTimestamp = Date.now();
67
+ // Process snapshots from newest to oldest
68
+ for (let i = snapshotContents.length - 1; i >= 0; i--) {
69
+ const snapshot = snapshotContents[i];
70
+ try {
71
+ const unifiedDiff = generateUnifiedDiffWithTimestamps(snapshot.filePath, filePath, snapshot.content, currentContent, snapshot.timestamp, currentTimestamp);
72
+ // Only add non-empty diffs
73
+ if (unifiedDiff.trim().length > 0) {
74
+ supplementalContextItems.push({
75
+ filePath: snapshot.filePath,
76
+ content: unifiedDiff,
77
+ score: 1.0, // Default score for recent edits
78
+ });
79
+ }
80
+ }
81
+ catch (err) {
82
+ // TODO: logging
83
+ // console.error(`Failed to generate diff: ${err}`)
84
+ }
85
+ }
86
+ const trimmedContextItems = (0, supplementalContextUtil_1.trimSupplementalContexts)(supplementalContextItems, maxContexts);
87
+ const contentsLength = trimmedContextItems.reduce((sum, ctx) => sum + ctx.content.length, 0);
88
+ const latency = Date.now() - startTime;
89
+ return {
90
+ isUtg: false,
91
+ isProcessTimeout: false,
92
+ supplementalContextItems: trimmedContextItems,
93
+ contentsLength,
94
+ latency,
95
+ strategy: 'recentEdits',
96
+ };
97
+ }
98
+ function getAddedAndDeletedLines(unifiedDiff) {
99
+ const lines = unifiedDiff.split('\n');
100
+ const addedLines = lines.filter(line => line.startsWith('+') && !line.startsWith('+++')).map(line => line.slice(1));
101
+ const deletedLines = lines
102
+ .filter(line => line.startsWith('-') && !line.startsWith('---'))
103
+ .map(line => line.slice(1));
104
+ return {
105
+ addedLines,
106
+ deletedLines,
107
+ };
108
+ }
109
+ /**
110
+ * Find longest common subsequence length between two strings
111
+ */
112
+ function lcsLength(str1, str2) {
113
+ const m = str1.length;
114
+ const n = str2.length;
115
+ const dp = Array(m + 1)
116
+ .fill(null)
117
+ .map(() => Array(n + 1).fill(0));
118
+ for (let i = 1; i <= m; i++) {
119
+ for (let j = 1; j <= n; j++) {
120
+ if (str1[i - 1] === str2[j - 1]) {
121
+ dp[i][j] = dp[i - 1][j - 1] + 1;
122
+ }
123
+ else {
124
+ dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);
125
+ }
126
+ }
127
+ }
128
+ return dp;
129
+ }
130
+ /**
131
+ * Calculate character differences between added and deleted blocks
132
+ */
133
+ function getCharacterDifferences(addedLines, deletedLines) {
134
+ const addedText = addedLines.join('\n');
135
+ const deletedText = deletedLines.join('\n');
136
+ if (addedText.length === 0) {
137
+ return { charactersAdded: 0, charactersRemoved: deletedText.length };
138
+ }
139
+ if (deletedText.length === 0) {
140
+ return { charactersAdded: addedText.length, charactersRemoved: 0 };
141
+ }
142
+ const lcsTable = lcsLength(deletedText, addedText);
143
+ const lcsLen = lcsTable[deletedText.length][addedText.length];
144
+ return {
145
+ charactersAdded: addedText.length - lcsLen,
146
+ charactersRemoved: deletedText.length - lcsLen,
147
+ };
148
+ }
149
+ function processEditSuggestion(unifiedDiff, triggerPosition, document, rightContext) {
150
+ // Assume it's an edit if anything goes wrong, at the very least it will not be rendered incorrectly
151
+ let diffCategory = 'edit';
152
+ try {
153
+ diffCategory = categorizeUnifieddiff(unifiedDiff, triggerPosition.line);
154
+ }
155
+ catch (e) {
156
+ // We dont have logger here....
157
+ diffCategory = 'edit';
158
+ }
159
+ if (diffCategory === 'addOnly') {
160
+ const preprocessAdd = extractAdditions(unifiedDiff);
161
+ const leftContextAtTriggerLine = document.getText(protocol_1.Range.create(protocol_1.Position.create(triggerPosition.line, 0), triggerPosition));
162
+ /**
163
+ * SHOULD NOT remove the entire overlapping string, the way inline suggestion prefix matching work depends on where it triggers
164
+ * For example (^ note where user triggers)
165
+ * console.lo
166
+ * ^
167
+ * if LSP returns `g('foo')` instead of `.log()` the suggestion will be discarded because prefix doesnt match
168
+ */
169
+ const processedAdd = removeOverlapCodeFromSuggestion(leftContextAtTriggerLine, preprocessAdd);
170
+ const mergedWithRightContext = (0, mergeRightUtils_1.truncateOverlapWithRightContext)(rightContext, processedAdd);
171
+ return {
172
+ suggestionContent: mergedWithRightContext,
173
+ type: codeWhispererService_1.SuggestionType.COMPLETION,
174
+ };
175
+ }
176
+ else {
177
+ return {
178
+ suggestionContent: unifiedDiff,
179
+ type: codeWhispererService_1.SuggestionType.EDIT,
180
+ };
181
+ }
182
+ }
183
+ // TODO: refine
184
+ function readUdiff(unifiedDiff) {
185
+ let hunk;
186
+ try {
187
+ const patches = (0, diff_1.parsePatch)(unifiedDiff);
188
+ if (patches.length !== 1) {
189
+ throw new Error(`Provided unified diff from has 0 or more than 1 patches`);
190
+ }
191
+ hunk = patches[0].hunks[0];
192
+ if (!hunk) {
193
+ throw new Error(`Null hunk`);
194
+ }
195
+ }
196
+ catch (e) {
197
+ throw e;
198
+ }
199
+ // TODO: Should use hunk instead of parsing manually
200
+ const lines = unifiedDiff.split('\n');
201
+ const headerEndIndex = lines.findIndex(l => l.startsWith('@@'));
202
+ if (headerEndIndex === -1) {
203
+ throw new Error('not able to parse');
204
+ }
205
+ const relevantLines = lines.slice(headerEndIndex + 1);
206
+ if (relevantLines.length === 0) {
207
+ throw new Error('not able to parse');
208
+ }
209
+ const minusIndexes = [];
210
+ const plusIndexes = [];
211
+ for (let i = 0; i < relevantLines.length; i++) {
212
+ const l = relevantLines[i];
213
+ if (l.startsWith('-')) {
214
+ minusIndexes.push(i);
215
+ }
216
+ else if (l.startsWith('+')) {
217
+ plusIndexes.push(i);
218
+ }
219
+ }
220
+ const firstMinusIndex = relevantLines.findIndex(s => s.startsWith('-'));
221
+ const firstPlusIndex = relevantLines.findIndex(s => s.startsWith('+'));
222
+ // TODO: Comment these out as they are used for a different version of addonly type determination logic in case the current implementation doesn't work.
223
+ // Could remove later if we are sure current imple works.
224
+ /**
225
+ * Concatenate all contiguous added lines (i.e., unbroken sequence of "+"s).
226
+ * Exclude all newlines when concatenating, so we get a single line representing the new text
227
+ */
228
+ // let singleLine = ''
229
+ // let prev: number | undefined
230
+ // for (const idx of plusIndexes) {
231
+ // if (!prev || idx === prev + 1) {
232
+ // const removedPlus = relevantLines[idx].substring(1)
233
+ // const removedStartNewline = trimStartNewline(removedPlus)
234
+ // singleLine += removedStartNewline
235
+ // } else {
236
+ // break
237
+ // }
238
+ // }
239
+ return {
240
+ linesWithoutHeaders: relevantLines,
241
+ firstMinusIndex: firstMinusIndex,
242
+ firstPlusIndex: firstPlusIndex,
243
+ minusIndexes: minusIndexes,
244
+ plusIndexes: plusIndexes,
245
+ hunk: hunk,
246
+ };
247
+ }
248
+ // Theoretically, we should always pass userTriggerAtLine, keeping it nullable for easier testing for now
249
+ function categorizeUnifieddiff(unifiedDiff, userTriggerAtLine) {
250
+ try {
251
+ const d = readUdiff(unifiedDiff);
252
+ const hunk = d.hunk;
253
+ const firstMinusIndex = d.firstMinusIndex;
254
+ const firstPlusIndex = d.firstPlusIndex;
255
+ const diffWithoutHeaders = d.linesWithoutHeaders;
256
+ // Shouldn't be the case but if there is no - nor +, assume it's an edit
257
+ if (firstMinusIndex === -1 && firstPlusIndex === -1) {
258
+ return 'edit';
259
+ }
260
+ // If first "EDIT" line is not where users trigger, it must be EDIT
261
+ // Note hunk.start is 1 based index
262
+ const firstLineEdited = hunk.oldStart - 1 + Math.min(...d.minusIndexes, ...d.plusIndexes);
263
+ if (userTriggerAtLine !== undefined && userTriggerAtLine !== firstLineEdited) {
264
+ return 'edit';
265
+ }
266
+ // Naive case, only +
267
+ if (firstMinusIndex === -1 && firstPlusIndex !== -1) {
268
+ return 'addOnly';
269
+ }
270
+ // Naive case, only -
271
+ if (firstMinusIndex !== -1 && firstPlusIndex === -1) {
272
+ return 'deleteOnly';
273
+ }
274
+ const minusIndexes = d.minusIndexes;
275
+ const plusIndexes = d.plusIndexes;
276
+ // If there are multiple (> 1) non empty '-' lines, it must be edit
277
+ const c = minusIndexes.reduce((acc, cur) => {
278
+ if (diffWithoutHeaders[cur].trim().length > 0) {
279
+ return acc++;
280
+ }
281
+ return acc;
282
+ }, 0);
283
+ if (c > 1) {
284
+ return 'edit';
285
+ }
286
+ // If last '-' line is followed by '+' block, it could be addonly
287
+ if (plusIndexes[0] === minusIndexes[minusIndexes.length - 1] + 1) {
288
+ /**
289
+ -------------------------------
290
+ - return
291
+ + return a - b;
292
+ -------------------------------
293
+ commonPrefix = "return "
294
+ minusLinesDelta = ""
295
+
296
+ --------------------------------
297
+ -\t\t\t
298
+ +\treturn a - b;
299
+ --------------------------------
300
+ commonPrefix = "\t"
301
+ minusLinesDelta = "\t\t"
302
+
303
+ *
304
+ *
305
+ *
306
+ */
307
+ const minusLine = diffWithoutHeaders[minusIndexes[minusIndexes.length - 1]].substring(1);
308
+ const pluscode = extractAdditions(unifiedDiff);
309
+ // If minusLine subtract the longest common substring of minusLine and plugcode and it's empty string, it's addonly
310
+ const commonPrefix = longestCommonPrefix(minusLine, pluscode);
311
+ const minusLinesDelta = minusLine.substring(commonPrefix.length);
312
+ if (minusLinesDelta.trim().length === 0) {
313
+ return 'addOnly';
314
+ }
315
+ /**
316
+ -------------------------------
317
+ - return a * b;
318
+ + return a * b * c;
319
+ -------------------------------
320
+ commonPrefix = "return a * b"
321
+ minusLinesDelta = ";"
322
+ pluscodeDelta = " * c;"
323
+ *
324
+ */
325
+ const pluscodeDelta = pluscode.substring(commonPrefix.length);
326
+ if (pluscodeDelta.endsWith(minusLinesDelta)) {
327
+ return 'addOnly';
328
+ }
329
+ }
330
+ return 'edit';
331
+ }
332
+ catch (e) {
333
+ return 'edit';
334
+ }
335
+ }
336
+ // TODO: current implementation here assumes service only return 1 chunk of edits (consecutive lines) and hacky
337
+ function extractAdditions(unifiedDiff) {
338
+ const lines = unifiedDiff.split('\n');
339
+ let completionSuggestion = '';
340
+ let isInAdditionBlock = false;
341
+ for (const line of lines) {
342
+ // Skip diff headers (files)
343
+ if (line.startsWith('+++') || line.startsWith('---')) {
344
+ continue;
345
+ }
346
+ // Skip hunk headers (@@ lines)
347
+ if (line.startsWith('@@')) {
348
+ continue;
349
+ }
350
+ // Handle additions
351
+ if (line.startsWith('+')) {
352
+ completionSuggestion += line.substring(1) + '\n';
353
+ isInAdditionBlock = true;
354
+ }
355
+ else if (isInAdditionBlock && !line.startsWith('+')) {
356
+ // End of addition block
357
+ isInAdditionBlock = false;
358
+ }
359
+ }
360
+ // Remove trailing newline
361
+ return completionSuggestion.trimEnd();
362
+ }
363
+ /**
364
+ *
365
+ * example
366
+ * code = 'return'
367
+ * suggestion = 'return a + b;'
368
+ * output = ' a + b;'
369
+ */
370
+ function removeOverlapCodeFromSuggestion(code, suggestion) {
371
+ const suggestionLines = suggestion.split('\n');
372
+ const firstLineSuggestion = suggestionLines[0];
373
+ // Find the common string in code surfix and prefix of suggestion
374
+ const s = (0, mergeRightUtils_1.getPrefixSuffixOverlap)(code, firstLineSuggestion);
375
+ // Remove overlap s from suggestion
376
+ return suggestion.substring(s.length);
377
+ }
378
+ function longestCommonPrefix(str1, str2) {
379
+ const minLength = Math.min(str1.length, str2.length);
380
+ let prefix = '';
381
+ for (let i = 0; i < minLength; i++) {
382
+ if (str1[i] === str2[i]) {
383
+ prefix += str1[i];
384
+ }
385
+ else {
386
+ break;
387
+ }
388
+ }
389
+ return prefix;
390
+ }
391
+ // TODO: They are used for a different version of addonly type determination logic in case the current implementation doesn't work.
392
+ // Could remove later if we are sure current impl works.
393
+ // function trimStartNewline(str: string): string {
394
+ // return str.replace(/^[\n\r]+/, '')
395
+ // }
396
+ // function hasOneContiguousInsert(original: string, changed: string) {
397
+ // const delta = changed.length - original.length
398
+ // if (delta <= 0) {
399
+ // // Changed string must be longer
400
+ // return false
401
+ // }
402
+ // let p, s
403
+ // for (p = 0; original[p] === changed[p] && p < original.length; ++p);
404
+ // for (s = original.length - 1; original[s] === changed[s + delta] && s >= 0; --s);
405
+ // return p === s + 1
406
+ // }
407
+ //# sourceMappingURL=diffUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diffUtils.js","sourceRoot":"","sources":["../../../../src/language-server/inline-completion/utils/diffUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { InlineCompletionItemWithReferences, Range } from '@aws/language-server-runtimes/server-interface';
2
+ import { Suggestion } from '../../../shared/codeWhispererService';
3
+ /**
4
+ * Returns the longest overlap between the Suffix of firstString and Prefix of second string
5
+ * getPrefixSuffixOverlap("adwg31", "31ggrs") = "31"
6
+ */
7
+ export declare function getPrefixSuffixOverlap(firstString: string, secondString: string): string;
8
+ export declare function truncateOverlapWithRightContext(rightFileContent: string, suggestion: string): string;
9
+ export declare const mergeSuggestionsWithRightContext: (rightFileContext: string, suggestions: Suggestion[], includeImportsWithSuggestions: boolean, range?: Range) => InlineCompletionItemWithReferences[];
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mergeSuggestionsWithRightContext = void 0;
4
+ exports.getPrefixSuffixOverlap = getPrefixSuffixOverlap;
5
+ exports.truncateOverlapWithRightContext = truncateOverlapWithRightContext;
6
+ /**
7
+ * Returns the longest overlap between the Suffix of firstString and Prefix of second string
8
+ * getPrefixSuffixOverlap("adwg31", "31ggrs") = "31"
9
+ */
10
+ function getPrefixSuffixOverlap(firstString, secondString) {
11
+ let i = Math.min(firstString.length, secondString.length);
12
+ while (i > 0) {
13
+ if (secondString.slice(0, i) === firstString.slice(-i)) {
14
+ break;
15
+ }
16
+ i--;
17
+ }
18
+ return secondString.slice(0, i);
19
+ }
20
+ function truncateOverlapWithRightContext(rightFileContent, suggestion) {
21
+ const trimmedSuggestion = suggestion.trim();
22
+ // limit of 5000 for right context matching
23
+ const rightContext = rightFileContent
24
+ .substring(0, 5000)
25
+ .replaceAll('\r\n', '\n')
26
+ .replace(/^[^\S\n]+/, ''); // remove leading tabs and whitespaces
27
+ const overlap = getPrefixSuffixOverlap(trimmedSuggestion, rightContext);
28
+ const overlapIndex = suggestion.lastIndexOf(overlap);
29
+ if (overlapIndex >= 0) {
30
+ const truncated = suggestion.slice(0, overlapIndex);
31
+ return truncated.trim().length ? truncated : '';
32
+ }
33
+ else {
34
+ return suggestion;
35
+ }
36
+ }
37
+ const mergeSuggestionsWithRightContext = (rightFileContext, suggestions, includeImportsWithSuggestions, range) => {
38
+ return suggestions.map(suggestion => {
39
+ const insertText = truncateOverlapWithRightContext(rightFileContext, suggestion.content);
40
+ let references = suggestion.references
41
+ ?.filter(ref => !(ref.recommendationContentSpan?.start && insertText.length <= ref.recommendationContentSpan.start) && insertText.length)
42
+ .map(r => {
43
+ return {
44
+ licenseName: r.licenseName,
45
+ referenceUrl: r.url,
46
+ referenceName: r.repository,
47
+ position: r.recommendationContentSpan && {
48
+ startCharacter: r.recommendationContentSpan.start,
49
+ endCharacter: r.recommendationContentSpan.end
50
+ ? Math.min(r.recommendationContentSpan.end, insertText.length - 1)
51
+ : r.recommendationContentSpan.end,
52
+ },
53
+ };
54
+ });
55
+ return {
56
+ itemId: suggestion.itemId,
57
+ insertText: insertText,
58
+ range,
59
+ references: references?.length ? references : undefined,
60
+ mostRelevantMissingImports: includeImportsWithSuggestions
61
+ ? suggestion.mostRelevantMissingImports
62
+ : undefined,
63
+ };
64
+ });
65
+ };
66
+ exports.mergeSuggestionsWithRightContext = mergeSuggestionsWithRightContext;
67
+ //# sourceMappingURL=mergeRightUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeRightUtils.js","sourceRoot":"","sources":["../../../../src/language-server/inline-completion/utils/mergeRightUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { TextDocument } from '@aws/language-server-runtimes/server-interface';
2
+ export declare const getLanguageIdFromUri: (uri: string, logging?: any) => string;
3
+ export declare const getTextDocument: (uri: string, workspace: any, logging: any) => Promise<TextDocument | undefined>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTextDocument = exports.getLanguageIdFromUri = void 0;
4
+ const server_interface_1 = require("@aws/language-server-runtimes/server-interface");
5
+ const constants_1 = require("../contants/constants");
6
+ const vscode_uri_1 = require("vscode-uri");
7
+ const getLanguageIdFromUri = (uri, logging) => {
8
+ try {
9
+ if (uri.startsWith('vscode-notebook-cell:')) {
10
+ // use python for now as lsp does not support JL cell language detection
11
+ return 'python';
12
+ }
13
+ const extension = uri.split('.').pop()?.toLowerCase();
14
+ return constants_1.ABAP_EXTENSIONS.has(extension || '') ? 'abap' : '';
15
+ }
16
+ catch (err) {
17
+ logging?.log(`Error parsing URI to determine language: ${uri}: ${err}`);
18
+ return '';
19
+ }
20
+ };
21
+ exports.getLanguageIdFromUri = getLanguageIdFromUri;
22
+ const getTextDocument = async (uri, workspace, logging) => {
23
+ let textDocument = await workspace.getTextDocument(uri);
24
+ if (!textDocument) {
25
+ try {
26
+ const content = await workspace.fs.readFile(vscode_uri_1.URI.parse(uri).fsPath);
27
+ const languageId = (0, exports.getLanguageIdFromUri)(uri);
28
+ textDocument = server_interface_1.TextDocument.create(uri, languageId, 0, content);
29
+ }
30
+ catch (err) {
31
+ logging.log(`Unable to load from ${uri}: ${err}`);
32
+ }
33
+ }
34
+ return textDocument;
35
+ };
36
+ exports.getTextDocument = getTextDocument;
37
+ //# sourceMappingURL=textDocumentUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textDocumentUtils.js","sourceRoot":"","sources":["../../../../src/language-server/inline-completion/utils/textDocumentUtils.ts"],"names":[],"mappings":";;;AAAA,qFAA6E;AAC7E,qDAAuD;AACvD,2CAAgC;AAEzB,MAAM,oBAAoB,GAAG,CAAC,GAAW,EAAE,OAAa,EAAU,EAAE;IACvE,IAAI,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC1C,wEAAwE;YACxE,OAAO,QAAQ,CAAA;QACnB,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAA;QACrD,OAAO,2BAAe,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,EAAE,GAAG,CAAC,4CAA4C,GAAG,KAAK,GAAG,EAAE,CAAC,CAAA;QACvE,OAAO,EAAE,CAAA;IACb,CAAC;AACL,CAAC,CAAA;AAZY,QAAA,oBAAoB,wBAYhC;AAEM,MAAM,eAAe,GAAG,KAAK,EAAE,GAAW,EAAE,SAAc,EAAE,OAAY,EAAqC,EAAE;IAClH,IAAI,YAAY,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;IACvD,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,gBAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;YAClE,MAAM,UAAU,GAAG,IAAA,4BAAoB,EAAC,GAAG,CAAC,CAAA;YAC5C,YAAY,GAAG,+BAAY,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;QACnE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,KAAK,GAAG,EAAE,CAAC,CAAA;QACrD,CAAC;IACL,CAAC;IACD,OAAO,YAAY,CAAA;AACvB,CAAC,CAAA;AAZY,QAAA,eAAe,mBAY3B"}
@@ -1,8 +1,8 @@
1
- import { SessionManager } from './session/sessionManager';
1
+ import { SessionManager } from '../session/sessionManager';
2
2
  import { InlineCompletionWithReferencesParams } from '@aws/language-server-runtimes/protocol';
3
- import { CursorTracker } from './tracker/cursorTracker';
4
- import { RecentEditTracker } from './tracker/codeEditTracker';
5
- import { CodeWhispererServiceBase, ClientFileContext } from '../../shared/codeWhispererService';
3
+ import { CursorTracker } from '../tracker/cursorTracker';
4
+ import { RecentEditTracker } from '../tracker/codeEditTracker';
5
+ import { CodeWhispererServiceBase, ClientFileContext } from '../../../shared/codeWhispererService';
6
6
  export declare class NepTrigger {
7
7
  }
8
8
  export declare function shouldTriggerEdits(service: CodeWhispererServiceBase, fileContext: ClientFileContext, inlineParams: InlineCompletionWithReferencesParams, cursorTracker: CursorTracker, recentEditsTracker: RecentEditTracker, sessionManager: SessionManager, editsEnabled: boolean): NepTrigger | undefined;
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NepTrigger = void 0;
4
4
  exports.shouldTriggerEdits = shouldTriggerEdits;
5
- const editPredictionAutoTrigger_1 = require("./auto-trigger/editPredictionAutoTrigger");
6
- const codeWhispererService_1 = require("../../shared/codeWhispererService");
5
+ const editPredictionAutoTrigger_1 = require("../auto-trigger/editPredictionAutoTrigger");
6
+ const codeWhispererService_1 = require("../../../shared/codeWhispererService");
7
7
  class NepTrigger {
8
8
  }
9
9
  exports.NepTrigger = NepTrigger;
@@ -39,4 +39,4 @@ function shouldTriggerEdits(service, fileContext, inlineParams, cursorTracker, r
39
39
  return undefined;
40
40
  }
41
41
  }
42
- //# sourceMappingURL=trigger.js.map
42
+ //# sourceMappingURL=triggerUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triggerUtils.js","sourceRoot":"","sources":["../../../../src/language-server/inline-completion/utils/triggerUtils.ts"],"names":[],"mappings":";;;AAaA,gDA2CC;AAtDD,yFAAqF;AAGrF,+EAI6C;AAE7C,MAAa,UAAU;CAAG;AAA1B,gCAA0B;AAE1B,SAAgB,kBAAkB,CAC9B,OAAiC,EACjC,WAA8B,EAC9B,YAAkD,EAClD,aAA4B,EAC5B,kBAAqC,EACrC,cAA8B,EAC9B,YAAqB;IAErB,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,OAAO,SAAS,CAAA;IACpB,CAAC;IACD,0IAA0I;IAC1I,IAAI,CAAC,CAAC,OAAO,YAAY,gDAAyB,CAAC,EAAE,CAAC;QAClD,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,MAAM,oBAAoB,GAAG,YAAY,CAAC,oBAAoB,CAAA;IAC9D,MAAM,mBAAmB,GACrB,oBAAoB,EAAE,cAAc;QACpC,oBAAoB,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QAC9C,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAA;IAE7D,wFAAwF;IACxF,MAAM,iBAAiB,GAAG,mBAAmB;QACzC,CAAC,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;QAC7C,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IAEvD,MAAM,gBAAgB,GAAG,cAAc,CAAC,kBAAkB,EAAE,EAAE,gCAAgC,EAAE,CAAA;IAChG,MAAM,GAAG,GAAG,IAAA,qDAAyB,EAAC;QAClC,WAAW,EAAE,WAAW;QACxB,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI;QACnC,IAAI,EAAE,iBAAiB;QACvB,gBAAgB,EAAE,gBAAgB,IAAI,EAAE;QACxC,aAAa,EAAE,aAAa;QAC5B,WAAW,EAAE,kBAAkB;KAClC,CAAC,CAAA;IAEF,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACpB,OAAO,IAAI,UAAU,EAAE,CAAA;IAC3B,CAAC;SAAM,CAAC;QACJ,OAAO,SAAS,CAAA;IACpB,CAAC;AACL,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Logging, Workspace } from '@aws/language-server-runtimes/server-interface';
2
- import { ExternalReference, References, RequirementJson, StartTransformRequest, TransformationPreferences } from './models';
2
+ import { References, RequirementJson, StartTransformRequest, TransformationPreferences } from './models';
3
3
  export declare class ArtifactManager {
4
4
  private workspace;
5
5
  private logging;
@@ -14,7 +14,7 @@ export declare class ArtifactManager {
14
14
  copySolutionConfigFiles(request: StartTransformRequest): Promise<void>;
15
15
  copySourceFile(solutionRootPath: string, filePath: string): Promise<void>;
16
16
  createRequirementJsonContent(request: StartTransformRequest): Promise<RequirementJson>;
17
- processPrivatePackages(request: StartTransformRequest, reference: ExternalReference, artifactReference: References): Promise<void>;
17
+ processPrivatePackages(request: StartTransformRequest, artifactReference: References): Promise<void>;
18
18
  zipArtifact(): Promise<string>;
19
19
  static getSha256Async(fileName: string): Promise<string>;
20
20
  getRequirementJsonPath(): string;