@aws/lsp-codewhisperer 0.0.55 → 0.0.57
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 +21 -0
- package/out/language-server/agenticChat/agenticChatController.js +24 -22
- package/out/language-server/agenticChat/agenticChatController.js.map +1 -1
- package/out/language-server/agenticChat/tools/toolServer.js +1 -12
- package/out/language-server/agenticChat/tools/toolServer.js.map +1 -1
- package/out/language-server/inline-completion/codeWhispererServer.js +273 -62
- package/out/language-server/inline-completion/codeWhispererServer.js.map +1 -1
- package/out/language-server/inline-completion/session/sessionManager.d.ts +2 -0
- package/out/language-server/inline-completion/session/sessionManager.js +13 -0
- package/out/language-server/inline-completion/session/sessionManager.js.map +1 -1
- package/out/language-server/workspaceContext/artifactManager.d.ts +1 -0
- package/out/language-server/workspaceContext/artifactManager.js +3 -3
- package/out/language-server/workspaceContext/artifactManager.js.map +1 -1
- package/out/language-server/workspaceContext/dependency/dependencyEventBundler.d.ts +24 -0
- package/out/language-server/workspaceContext/dependency/dependencyEventBundler.js +63 -0
- package/out/language-server/workspaceContext/dependency/dependencyEventBundler.js.map +1 -0
- package/out/language-server/workspaceContext/workspaceContextServer.js +28 -3
- package/out/language-server/workspaceContext/workspaceContextServer.js.map +1 -1
- package/out/shared/codeWhispererService.d.ts +1 -1
- package/out/shared/constants.d.ts +1 -0
- package/out/shared/constants.js +140 -1
- package/out/shared/constants.js.map +1 -1
- package/out/shared/localProjectContextController.d.ts +2 -2
- package/out/shared/localProjectContextController.js +42 -79
- package/out/shared/localProjectContextController.js.map +1 -1
- package/out/shared/utils.d.ts +8 -0
- package/out/shared/utils.js +50 -0
- package/out/shared/utils.js.map +1 -1
- package/package.json +3 -2
|
@@ -22,6 +22,11 @@ const workspaceFolderManager_1 = require("../workspaceContext/workspaceFolderMan
|
|
|
22
22
|
const path = require("path");
|
|
23
23
|
const util_1 = require("../workspaceContext/util");
|
|
24
24
|
const userWrittenCodeTracker_1 = require("../../shared/userWrittenCodeTracker");
|
|
25
|
+
const codeEditTracker_1 = require("./tracker/codeEditTracker");
|
|
26
|
+
const cursorTracker_1 = require("./tracker/cursorTracker");
|
|
27
|
+
const rejectedEditTracker_1 = require("./tracker/rejectedEditTracker");
|
|
28
|
+
const diffUtils_1 = require("./diffUtils");
|
|
29
|
+
const { editPredictionAutoTrigger } = require('./auto-trigger/editPredictionAutoTrigger');
|
|
25
30
|
const EMPTY_RESULT = { sessionId: '', items: [] };
|
|
26
31
|
exports.FILE_URI_CHARS_LIMIT = 1024;
|
|
27
32
|
exports.FILENAME_CHARS_LIMIT = 1024;
|
|
@@ -74,7 +79,10 @@ const emitServiceInvocationTelemetry = (telemetry, session, requestId) => {
|
|
|
74
79
|
telemetry.emitMetric({
|
|
75
80
|
name: 'codewhisperer_serviceInvocation',
|
|
76
81
|
result: 'Succeeded',
|
|
77
|
-
data
|
|
82
|
+
data: {
|
|
83
|
+
...data,
|
|
84
|
+
codewhispererImportRecommendationEnabled: session.includeImportsWithSuggestions,
|
|
85
|
+
},
|
|
78
86
|
});
|
|
79
87
|
};
|
|
80
88
|
const emitServiceInvocationFailure = (telemetry, session, error) => {
|
|
@@ -130,7 +138,7 @@ const emitPerceivedLatencyTelemetry = (telemetry, session) => {
|
|
|
130
138
|
data,
|
|
131
139
|
});
|
|
132
140
|
};
|
|
133
|
-
const emitUserTriggerDecisionTelemetry = async (telemetry, telemetryService, session, timeSinceLastUserModification) => {
|
|
141
|
+
const emitUserTriggerDecisionTelemetry = async (telemetry, telemetryService, session, timeSinceLastUserModification, addedCharsCountForEditSuggestion, deletedCharsCountForEditSuggestion, streakLength) => {
|
|
134
142
|
// Prevent reporting user decision if it was already sent
|
|
135
143
|
if (session.reportedUserDecision) {
|
|
136
144
|
return;
|
|
@@ -139,10 +147,10 @@ const emitUserTriggerDecisionTelemetry = async (telemetry, telemetryService, ses
|
|
|
139
147
|
if (!session.getAggregatedUserTriggerDecision()) {
|
|
140
148
|
return;
|
|
141
149
|
}
|
|
142
|
-
await emitAggregatedUserTriggerDecisionTelemetry(telemetryService, session, timeSinceLastUserModification);
|
|
150
|
+
await emitAggregatedUserTriggerDecisionTelemetry(telemetryService, session, timeSinceLastUserModification, addedCharsCountForEditSuggestion, deletedCharsCountForEditSuggestion, streakLength);
|
|
143
151
|
session.reportedUserDecision = true;
|
|
144
152
|
};
|
|
145
|
-
const emitAggregatedUserTriggerDecisionTelemetry = (telemetryService, session, timeSinceLastUserModification) => {
|
|
153
|
+
const emitAggregatedUserTriggerDecisionTelemetry = (telemetryService, session, timeSinceLastUserModification, addedCharsCountForEditSuggestion, deletedCharsCountForEditSuggestion, streakLength) => {
|
|
146
154
|
return telemetryService.emitUserTriggerDecision(session, timeSinceLastUserModification);
|
|
147
155
|
};
|
|
148
156
|
const mergeSuggestionsWithRightContext = (rightFileContext, suggestions, includeImportsWithSuggestions, range) => {
|
|
@@ -190,12 +198,20 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
190
198
|
let codePercentageTracker;
|
|
191
199
|
let userWrittenCodeTracker;
|
|
192
200
|
let codeDiffTracker;
|
|
201
|
+
// Trackers for monitoring edits and cursor position.
|
|
202
|
+
const recentEditTracker = codeEditTracker_1.RecentEditTracker.getInstance(logging, codeEditTracker_1.RecentEditTrackerDefaultConfig);
|
|
203
|
+
const cursorTracker = cursorTracker_1.CursorTracker.getInstance();
|
|
204
|
+
const rejectedEditTracker = rejectedEditTracker_1.RejectedEditTracker.getInstance(logging, rejectedEditTracker_1.DEFAULT_REJECTED_EDIT_TRACKER_CONFIG);
|
|
205
|
+
let editsEnabled = false;
|
|
193
206
|
const onInlineCompletionHandler = async (params, token) => {
|
|
194
207
|
// On every new completion request close current inflight session.
|
|
195
208
|
const currentSession = sessionManager.getCurrentSession();
|
|
196
209
|
if (currentSession && currentSession.state == 'REQUESTING' && !params.partialResultToken) {
|
|
197
210
|
currentSession.discardInflightSessionOnNewInvocation = true;
|
|
198
211
|
}
|
|
212
|
+
if (cursorTracker) {
|
|
213
|
+
cursorTracker.trackPosition(params.textDocument.uri, params.position);
|
|
214
|
+
}
|
|
199
215
|
return workspace.getTextDocument(params.textDocument.uri).then(async (textDocument) => {
|
|
200
216
|
const codeWhispererService = amazonQServiceManager.getCodewhispererService();
|
|
201
217
|
if (params.partialResultToken && currentSession) {
|
|
@@ -270,6 +286,9 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
270
286
|
!autoTriggerResult.shouldTrigger) {
|
|
271
287
|
return EMPTY_RESULT;
|
|
272
288
|
}
|
|
289
|
+
// Get supplemental context from recent edits if available.
|
|
290
|
+
let supplementalContextFromEdits = undefined;
|
|
291
|
+
let predictionTypes = [['COMPLETIONS']];
|
|
273
292
|
// supplementalContext available only via token authentication
|
|
274
293
|
const supplementalContextPromise = codeWhispererService instanceof codeWhispererService_1.CodeWhispererServiceToken
|
|
275
294
|
? (0, supplementalContextUtil_1.fetchSupplementalContext)(textDocument, params.position, workspace, logging, token, amazonQServiceManager)
|
|
@@ -281,19 +300,87 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
281
300
|
const supplementalContext = await supplementalContextPromise;
|
|
282
301
|
// TODO: logging
|
|
283
302
|
if (codeWhispererService instanceof codeWhispererService_1.CodeWhispererServiceToken) {
|
|
284
|
-
|
|
285
|
-
|
|
303
|
+
const supplementalContextItems = supplementalContext?.supplementalContextItems || [];
|
|
304
|
+
requestContext.supplementalContexts = [
|
|
305
|
+
...supplementalContextItems.map(v => ({
|
|
286
306
|
content: v.content,
|
|
287
307
|
filePath: v.filePath,
|
|
288
|
-
}))
|
|
289
|
-
|
|
308
|
+
})),
|
|
309
|
+
];
|
|
310
|
+
if (editsEnabled) {
|
|
311
|
+
// Step 0: Determine if we have "Rcent Edit context"
|
|
312
|
+
if (recentEditTracker) {
|
|
313
|
+
supplementalContextFromEdits =
|
|
314
|
+
await recentEditTracker.generateEditBasedContext(textDocument);
|
|
315
|
+
}
|
|
316
|
+
const editPredictionAutoTriggerResult = editPredictionAutoTrigger({
|
|
317
|
+
fileContext: fileContext,
|
|
318
|
+
lineNum: params.position.line,
|
|
319
|
+
char: triggerCharacter,
|
|
320
|
+
previousDecision: previousDecision,
|
|
321
|
+
cursorHistory: cursorTracker,
|
|
322
|
+
recentEdits: recentEditTracker,
|
|
323
|
+
});
|
|
324
|
+
predictionTypes = [
|
|
325
|
+
...(autoTriggerResult.shouldTrigger ? [['COMPLETIONS']] : []),
|
|
326
|
+
...(editPredictionAutoTriggerResult.shouldTrigger && editsEnabled ? [['EDITS']] : []),
|
|
327
|
+
];
|
|
328
|
+
// Step 1: Recent Edits context
|
|
329
|
+
const supplementalContextItemsForEdits = supplementalContextFromEdits?.supplementalContextItems || [];
|
|
330
|
+
requestContext.supplementalContexts.push(...supplementalContextItemsForEdits.map(v => ({
|
|
331
|
+
content: v.content,
|
|
332
|
+
filePath: v.filePath,
|
|
333
|
+
type: 'PreviousEditorState',
|
|
334
|
+
metadata: {
|
|
335
|
+
previousEditorStateMetadata: {
|
|
336
|
+
timeOffset: 1000,
|
|
337
|
+
},
|
|
338
|
+
},
|
|
339
|
+
})));
|
|
340
|
+
// Step 2: Prediction type COMPLETION, Edits or both
|
|
341
|
+
requestContext.predictionTypes = predictionTypes.flat();
|
|
342
|
+
// Step 3: Current Editor/Cursor state
|
|
343
|
+
requestContext.editorState = {
|
|
344
|
+
document: {
|
|
345
|
+
relativeFilePath: textDocument.uri,
|
|
346
|
+
programmingLanguage: {
|
|
347
|
+
languageName: textDocument.languageId,
|
|
348
|
+
},
|
|
349
|
+
text: textDocument.getText(),
|
|
350
|
+
},
|
|
351
|
+
cursorState: {
|
|
352
|
+
position: {
|
|
353
|
+
line: params.position.line,
|
|
354
|
+
character: params.position.character,
|
|
355
|
+
},
|
|
356
|
+
},
|
|
357
|
+
};
|
|
358
|
+
}
|
|
290
359
|
}
|
|
291
360
|
// Close ACTIVE session and record Discard trigger decision immediately
|
|
292
361
|
if (currentSession && currentSession.state === 'ACTIVE') {
|
|
293
362
|
// Emit user trigger decision at session close time for active session
|
|
294
363
|
sessionManager.discardSession(currentSession);
|
|
295
|
-
|
|
364
|
+
const streakLength = sessionManager.getAndUpdateStreakLength(false);
|
|
365
|
+
await emitUserTriggerDecisionTelemetry(telemetry, telemetryService, currentSession, timeSinceLastUserModification, 0, 0, streakLength);
|
|
296
366
|
}
|
|
367
|
+
const supplementalMetadata = editsEnabled
|
|
368
|
+
? {
|
|
369
|
+
// Merge metadata from edit-based context if available.
|
|
370
|
+
contentsLength: (supplementalContext?.contentsLength || 0) +
|
|
371
|
+
(supplementalContextFromEdits?.contentsLength || 0),
|
|
372
|
+
latency: Math.max(supplementalContext?.latency || 0, supplementalContextFromEdits?.latency || 0),
|
|
373
|
+
isUtg: supplementalContext?.isUtg || false,
|
|
374
|
+
isProcessTimeout: supplementalContext?.isProcessTimeout || false,
|
|
375
|
+
strategy: supplementalContextFromEdits
|
|
376
|
+
? 'recentEdits'
|
|
377
|
+
: supplementalContext?.strategy || 'Empty',
|
|
378
|
+
supplementalContextItems: [
|
|
379
|
+
...(supplementalContext?.supplementalContextItems || []),
|
|
380
|
+
...(supplementalContextFromEdits?.supplementalContextItems || []),
|
|
381
|
+
],
|
|
382
|
+
}
|
|
383
|
+
: supplementalContext;
|
|
297
384
|
const newSession = sessionManager.createSession({
|
|
298
385
|
document: textDocument,
|
|
299
386
|
startPosition: params.position,
|
|
@@ -305,7 +392,7 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
305
392
|
classifierResult: autoTriggerResult?.classifierResult,
|
|
306
393
|
classifierThreshold: autoTriggerResult?.classifierThreshold,
|
|
307
394
|
credentialStartUrl: credentialsProvider.getConnectionMetadata?.()?.sso?.startUrl ?? undefined,
|
|
308
|
-
supplementalMetadata:
|
|
395
|
+
supplementalMetadata: supplementalMetadata,
|
|
309
396
|
customizationArn: lsp_core_1.textUtils.undefinedIfEmpty(codeWhispererService.customizationArn),
|
|
310
397
|
});
|
|
311
398
|
// Add extra context to request context
|
|
@@ -314,8 +401,7 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
314
401
|
requestContext.fileContext.leftFileContent =
|
|
315
402
|
extraContext + '\n' + requestContext.fileContext.leftFileContent;
|
|
316
403
|
}
|
|
317
|
-
|
|
318
|
-
.generateSuggestions({
|
|
404
|
+
const generateCompletionReq = {
|
|
319
405
|
...requestContext,
|
|
320
406
|
fileContext: {
|
|
321
407
|
...requestContext.fileContext,
|
|
@@ -327,7 +413,9 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
327
413
|
.replaceAll('\r\n', '\n'),
|
|
328
414
|
},
|
|
329
415
|
...(workspaceId ? { workspaceId: workspaceId } : {}),
|
|
330
|
-
}
|
|
416
|
+
};
|
|
417
|
+
return codeWhispererService
|
|
418
|
+
.generateSuggestions(generateCompletionReq)
|
|
331
419
|
.then(async (suggestionResponse) => {
|
|
332
420
|
return processSuggestionResponse(suggestionResponse, newSession, true, selectionRange);
|
|
333
421
|
})
|
|
@@ -337,7 +425,7 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
337
425
|
}
|
|
338
426
|
});
|
|
339
427
|
};
|
|
340
|
-
const processSuggestionResponse = async (suggestionResponse, session, isNewSession, selectionRange) => {
|
|
428
|
+
const processSuggestionResponse = async (suggestionResponse, session, isNewSession, selectionRange, textDocument) => {
|
|
341
429
|
codePercentageTracker.countInvocation(session.language);
|
|
342
430
|
userWrittenCodeTracker?.recordUsageCount(session.language);
|
|
343
431
|
session.includeImportsWithSuggestions =
|
|
@@ -358,6 +446,7 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
358
446
|
if (session.discardInflightSessionOnNewInvocation) {
|
|
359
447
|
session.discardInflightSessionOnNewInvocation = false;
|
|
360
448
|
sessionManager.discardSession(session);
|
|
449
|
+
const streakLength = sessionManager.getAndUpdateStreakLength(false);
|
|
361
450
|
await emitUserTriggerDecisionTelemetry(telemetry, telemetryService, session, timeSinceLastUserModification);
|
|
362
451
|
}
|
|
363
452
|
// session was closed by user already made decisions consequent completion request before new paginated API response was received
|
|
@@ -393,40 +482,69 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
393
482
|
session.setSuggestionState(suggestion.itemId, 'Filter');
|
|
394
483
|
return false;
|
|
395
484
|
});
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
485
|
+
if (suggestionResponse.suggestionType === codeWhispererService_1.SuggestionType.COMPLETION) {
|
|
486
|
+
const { includeImportsWithSuggestions } = amazonQServiceManager.getConfiguration();
|
|
487
|
+
const suggestionsWithRightContext = mergeSuggestionsWithRightContext(session.requestContext.fileContext.rightFileContent, filteredSuggestions, includeImportsWithSuggestions, selectionRange).filter(suggestion => {
|
|
488
|
+
// Discard suggestions that have empty string insertText after right context merge and can't be displayed anymore
|
|
489
|
+
if (suggestion.insertText === '') {
|
|
490
|
+
session.setSuggestionState(suggestion.itemId, 'Discard');
|
|
491
|
+
return false;
|
|
492
|
+
}
|
|
493
|
+
return true;
|
|
494
|
+
});
|
|
495
|
+
suggestionsWithRightContext.forEach(suggestion => {
|
|
496
|
+
const cachedSuggestion = session.suggestions.find(s => s.itemId === suggestion.itemId);
|
|
497
|
+
if (cachedSuggestion)
|
|
498
|
+
cachedSuggestion.insertText = suggestion.insertText.toString();
|
|
499
|
+
});
|
|
500
|
+
// TODO: need dedupe after right context merging but I don't see one
|
|
501
|
+
session.suggestionsAfterRightContextMerge.push(...suggestionsWithRightContext);
|
|
502
|
+
session.codewhispererSuggestionImportCount =
|
|
503
|
+
session.codewhispererSuggestionImportCount +
|
|
504
|
+
suggestionsWithRightContext.reduce((total, suggestion) => {
|
|
505
|
+
return total + (suggestion.mostRelevantMissingImports?.length || 0);
|
|
506
|
+
}, 0);
|
|
507
|
+
// If after all server-side filtering no suggestions can be displayed, and there is no nextToken
|
|
508
|
+
// close session and return empty results
|
|
509
|
+
if (session.suggestionsAfterRightContextMerge.length === 0 &&
|
|
510
|
+
!suggestionResponse.responseContext.nextToken) {
|
|
511
|
+
sessionManager.closeSession(session);
|
|
512
|
+
await emitUserTriggerDecisionTelemetry(telemetry, telemetryService, session, timeSinceLastUserModification);
|
|
513
|
+
return EMPTY_RESULT;
|
|
402
514
|
}
|
|
403
|
-
return
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
515
|
+
return {
|
|
516
|
+
items: suggestionsWithRightContext,
|
|
517
|
+
sessionId: session.id,
|
|
518
|
+
partialResultToken: suggestionResponse.responseContext.nextToken,
|
|
519
|
+
};
|
|
520
|
+
}
|
|
521
|
+
else {
|
|
522
|
+
return {
|
|
523
|
+
items: suggestionResponse.suggestions
|
|
524
|
+
.map(suggestion => {
|
|
525
|
+
// Check if this suggestion is similar to a previously rejected edit
|
|
526
|
+
const isSimilarToRejected = rejectedEditTracker.isSimilarToRejected(suggestion.content, textDocument?.uri || '');
|
|
527
|
+
if (isSimilarToRejected) {
|
|
528
|
+
// Mark as rejected in the session
|
|
529
|
+
session.setSuggestionState(suggestion.itemId, 'Reject');
|
|
530
|
+
logging.debug(`[EDIT_PREDICTION] Filtered out suggestion similar to previously rejected edit`);
|
|
531
|
+
// Return empty item that will be filtered out
|
|
532
|
+
return {
|
|
533
|
+
insertText: '',
|
|
534
|
+
isInlineEdit: true,
|
|
535
|
+
itemId: suggestion.itemId,
|
|
536
|
+
};
|
|
537
|
+
}
|
|
538
|
+
return {
|
|
539
|
+
insertText: suggestion.content,
|
|
540
|
+
isInlineEdit: true,
|
|
541
|
+
itemId: suggestion.itemId,
|
|
542
|
+
};
|
|
543
|
+
})
|
|
544
|
+
.filter(item => item.insertText !== ''),
|
|
545
|
+
sessionId: session.id,
|
|
546
|
+
};
|
|
424
547
|
}
|
|
425
|
-
return {
|
|
426
|
-
items: suggestionsWithRightContext,
|
|
427
|
-
sessionId: session.id,
|
|
428
|
-
partialResultToken: suggestionResponse.responseContext.nextToken,
|
|
429
|
-
};
|
|
430
548
|
};
|
|
431
549
|
const handleSuggestionsErrors = (error, session) => {
|
|
432
550
|
logging.log('Recommendation failure: ' + error);
|
|
@@ -444,15 +562,17 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
444
562
|
return EMPTY_RESULT;
|
|
445
563
|
};
|
|
446
564
|
// Schedule tracker for UserModification Telemetry event
|
|
447
|
-
const enqueueCodeDiffEntry = (session, acceptedSuggestion) => {
|
|
565
|
+
const enqueueCodeDiffEntry = (session, acceptedSuggestion, addedCharactersForEdit) => {
|
|
448
566
|
const endPosition = (0, utils_1.getEndPositionForAcceptedSuggestion)(acceptedSuggestion.content, session.startPosition);
|
|
567
|
+
// use the addedCharactersForEdit if it is EDIT suggestion type
|
|
568
|
+
const originalString = addedCharactersForEdit ? addedCharactersForEdit : acceptedSuggestion.content;
|
|
449
569
|
codeDiffTracker.enqueue({
|
|
450
570
|
sessionId: session.codewhispererSessionId || '',
|
|
451
571
|
requestId: session.responseContext?.requestId || '',
|
|
452
572
|
fileUrl: session.document.uri,
|
|
453
573
|
languageId: session.language,
|
|
454
574
|
time: Date.now(),
|
|
455
|
-
originalString:
|
|
575
|
+
originalString: originalString,
|
|
456
576
|
startPosition: session.startPosition,
|
|
457
577
|
endPosition: endPosition,
|
|
458
578
|
customizationArn: session.customizationArn,
|
|
@@ -462,7 +582,7 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
462
582
|
});
|
|
463
583
|
};
|
|
464
584
|
const onLogInlineCompletionSessionResultsHandler = async (params) => {
|
|
465
|
-
const { sessionId, completionSessionResult, firstCompletionDisplayLatency, totalSessionDisplayTime, typeaheadLength, } = params;
|
|
585
|
+
const { sessionId, completionSessionResult, firstCompletionDisplayLatency, totalSessionDisplayTime, typeaheadLength, isInlineEdit, } = params;
|
|
466
586
|
const session = sessionManager.getSessionById(sessionId);
|
|
467
587
|
if (!session) {
|
|
468
588
|
logging.log(`ERROR: Session ID ${sessionId} was not found`);
|
|
@@ -473,13 +593,50 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
473
593
|
return;
|
|
474
594
|
}
|
|
475
595
|
const acceptedItemId = Object.keys(params.completionSessionResult).find(k => params.completionSessionResult[k].accepted);
|
|
596
|
+
const isAccepted = acceptedItemId ? true : false;
|
|
476
597
|
const acceptedSuggestion = session.suggestions.find(s => s.itemId === acceptedItemId);
|
|
477
|
-
|
|
598
|
+
let addedCharactersForEditSuggestion = '';
|
|
599
|
+
let deletedCharactersForEditSuggestion = '';
|
|
600
|
+
if (acceptedSuggestion !== undefined) {
|
|
478
601
|
if (acceptedSuggestion) {
|
|
479
602
|
codePercentageTracker.countSuccess(session.language);
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
603
|
+
if (isInlineEdit && acceptedSuggestion.content) {
|
|
604
|
+
// [acceptedSuggestion.insertText] will be undefined for NEP suggestion. Use [acceptedSuggestion.content] instead.
|
|
605
|
+
// Since [acceptedSuggestion.content] is in the form of a diff, transform the content into addedCharacters and deletedCharacters.
|
|
606
|
+
const addedAndDeletedChars = (0, diffUtils_1.getAddedAndDeletedChars)(acceptedSuggestion.content);
|
|
607
|
+
if (addedAndDeletedChars) {
|
|
608
|
+
addedCharactersForEditSuggestion = addedAndDeletedChars.addedCharacters;
|
|
609
|
+
deletedCharactersForEditSuggestion = addedAndDeletedChars.deletedCharacters;
|
|
610
|
+
codePercentageTracker.countAcceptedTokens(session.language, addedCharactersForEditSuggestion);
|
|
611
|
+
codePercentageTracker.countTotalTokens(session.language, addedCharactersForEditSuggestion, true);
|
|
612
|
+
enqueueCodeDiffEntry(session, acceptedSuggestion, addedCharactersForEditSuggestion);
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
else if (acceptedSuggestion.insertText) {
|
|
616
|
+
codePercentageTracker.countAcceptedTokens(session.language, acceptedSuggestion.insertText);
|
|
617
|
+
codePercentageTracker.countTotalTokens(session.language, acceptedSuggestion.insertText, true);
|
|
618
|
+
enqueueCodeDiffEntry(session, acceptedSuggestion);
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
// Handle rejected edit predictions
|
|
623
|
+
if (isInlineEdit && !isAccepted) {
|
|
624
|
+
// Find all rejected suggestions in this session
|
|
625
|
+
const rejectedSuggestions = session.suggestions.filter(suggestion => {
|
|
626
|
+
const result = completionSessionResult[suggestion.itemId];
|
|
627
|
+
return result && result.seen && !result.accepted;
|
|
628
|
+
});
|
|
629
|
+
// Record each rejected edit
|
|
630
|
+
for (const rejectedSuggestion of rejectedSuggestions) {
|
|
631
|
+
if (rejectedSuggestion.content) {
|
|
632
|
+
rejectedEditTracker.recordRejectedEdit({
|
|
633
|
+
content: rejectedSuggestion.content,
|
|
634
|
+
timestamp: Date.now(),
|
|
635
|
+
documentUri: session.document.uri,
|
|
636
|
+
position: session.startPosition,
|
|
637
|
+
});
|
|
638
|
+
logging.debug(`[EDIT_PREDICTION] Recorded rejected edit: ${rejectedSuggestion.content.substring(0, 20)}...`);
|
|
639
|
+
}
|
|
483
640
|
}
|
|
484
641
|
}
|
|
485
642
|
session.setClientResultData(completionSessionResult, firstCompletionDisplayLatency, totalSessionDisplayTime, typeaheadLength);
|
|
@@ -487,7 +644,8 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
487
644
|
emitPerceivedLatencyTelemetry(telemetry, session);
|
|
488
645
|
// Always emit user trigger decision at session close
|
|
489
646
|
sessionManager.closeSession(session);
|
|
490
|
-
|
|
647
|
+
const streakLength = sessionManager.getAndUpdateStreakLength(isAccepted);
|
|
648
|
+
await emitUserTriggerDecisionTelemetry(telemetry, telemetryService, session, timeSinceLastUserModification, addedCharactersForEditSuggestion.length, deletedCharactersForEditSuggestion.length, streakLength);
|
|
491
649
|
};
|
|
492
650
|
const updateConfiguration = (updatedConfig) => {
|
|
493
651
|
logging.debug('Updating configuration of inline complete server.');
|
|
@@ -501,9 +659,9 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
501
659
|
}
|
|
502
660
|
logging.debug(`CodePercentageTracker customizationArn updated to ${customizationArn}`);
|
|
503
661
|
/*
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
662
|
+
The flag enableTelemetryEventsToDestination is set to true temporarily. It's value will be determined through destination
|
|
663
|
+
configuration post all events migration to STE. It'll be replaced by qConfig['enableTelemetryEventsToDestination'] === true
|
|
664
|
+
*/
|
|
507
665
|
// const enableTelemetryEventsToDestination = true
|
|
508
666
|
// telemetryService.updateEnableTelemetryEventsToDestination(enableTelemetryEventsToDestination)
|
|
509
667
|
telemetryService.updateOptOutPreference(optOutTelemetryPreference);
|
|
@@ -512,6 +670,10 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
512
670
|
const onInitializedHandler = async () => {
|
|
513
671
|
amazonQServiceManager = serviceManager();
|
|
514
672
|
const clientParams = (0, utils_1.safeGet)(lsp.getClientInitializeParams(), new errors_1.AmazonQServiceInitializationError('TelemetryService initialized before LSP connection was initialized.'));
|
|
673
|
+
logging.log(`Client initialization params: ${JSON.stringify(clientParams)}`);
|
|
674
|
+
editsEnabled =
|
|
675
|
+
clientParams?.initializationOptions?.aws?.awsClientCapabilities?.textDocument
|
|
676
|
+
?.inlineCompletionWithReferences?.inlineEditSupport ?? false;
|
|
515
677
|
telemetryService = new telemetryService_1.TelemetryService(amazonQServiceManager, credentialsProvider, telemetry, logging);
|
|
516
678
|
telemetryService.updateUserContext((0, telemetryUtils_1.makeUserContextObject)(clientParams, runtime.platform, 'INLINE'));
|
|
517
679
|
codePercentageTracker = new codePercentage_1.CodePercentageTracker(telemetryService);
|
|
@@ -526,11 +688,13 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
526
688
|
modificationPercentage: percentage,
|
|
527
689
|
unmodifiedAcceptedCharacterCount: unmodifiedAcceptedCharacterCount,
|
|
528
690
|
}, {
|
|
529
|
-
completionType: entry.completionType,
|
|
530
|
-
triggerType: entry.triggerType,
|
|
691
|
+
completionType: entry.completionType || 'LINE',
|
|
692
|
+
triggerType: entry.triggerType || 'OnDemand',
|
|
531
693
|
credentialStartUrl: entry.credentialStartUrl,
|
|
532
694
|
});
|
|
533
695
|
});
|
|
696
|
+
const periodicLoggingEnabled = process.env.LOG_EDIT_TRACKING === 'true';
|
|
697
|
+
logging.log(`[SERVER] Initialized telemetry-dependent components: CodePercentageTracker, CodeDiffTracker, periodicLogging=${periodicLoggingEnabled}`);
|
|
534
698
|
await amazonQServiceManager.addDidChangeConfigurationListener(updateConfiguration);
|
|
535
699
|
};
|
|
536
700
|
lsp.extensions.onInlineCompletionWithReferences(onInlineCompletionHandler);
|
|
@@ -542,6 +706,7 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
542
706
|
if (!textDocument || !languageId) {
|
|
543
707
|
return;
|
|
544
708
|
}
|
|
709
|
+
logging.log(`Document changed: ${p.textDocument.uri}`);
|
|
545
710
|
p.contentChanges.forEach(change => {
|
|
546
711
|
codePercentageTracker.countTotalTokens(languageId, change.text, false);
|
|
547
712
|
const { sendUserWrittenCodeMetrics } = amazonQServiceManager.getConfiguration();
|
|
@@ -559,12 +724,58 @@ const CodewhispererServerFactory = (serviceManager) => ({ credentialsProvider, l
|
|
|
559
724
|
timeSinceLastUserModification = new Date().getTime() - lastUserModificationTime;
|
|
560
725
|
}
|
|
561
726
|
lastUserModificationTime = new Date().getTime();
|
|
727
|
+
// Process document changes with RecentEditTracker.
|
|
728
|
+
if (editsEnabled && recentEditTracker) {
|
|
729
|
+
logging.log(`[SERVER] Processing document change with RecentEditTracker: ${p.textDocument.uri}, version: ${textDocument.version}`);
|
|
730
|
+
logging.log(`[SERVER] Change details: ${p.contentChanges.length} changes`);
|
|
731
|
+
await recentEditTracker.handleDocumentChange({
|
|
732
|
+
uri: p.textDocument.uri,
|
|
733
|
+
languageId: textDocument.languageId,
|
|
734
|
+
version: textDocument.version,
|
|
735
|
+
text: textDocument.getText(),
|
|
736
|
+
});
|
|
737
|
+
}
|
|
738
|
+
});
|
|
739
|
+
lsp.onDidOpenTextDocument(p => {
|
|
740
|
+
logging.log(`Document opened: ${p.textDocument.uri}`);
|
|
741
|
+
// Track document opening with RecentEditTracker
|
|
742
|
+
if (recentEditTracker) {
|
|
743
|
+
logging.log(`[SERVER] Tracking document open with RecentEditTracker: ${p.textDocument.uri}`);
|
|
744
|
+
recentEditTracker.handleDocumentOpen({
|
|
745
|
+
uri: p.textDocument.uri,
|
|
746
|
+
languageId: p.textDocument.languageId,
|
|
747
|
+
version: p.textDocument.version,
|
|
748
|
+
text: p.textDocument.text,
|
|
749
|
+
});
|
|
750
|
+
}
|
|
751
|
+
});
|
|
752
|
+
lsp.onDidCloseTextDocument(p => {
|
|
753
|
+
logging.log(`Document closed: ${p.textDocument.uri}`);
|
|
754
|
+
// Track document closing with RecentEditTracker
|
|
755
|
+
if (recentEditTracker) {
|
|
756
|
+
logging.log(`[SERVER] Tracking document close with RecentEditTracker: ${p.textDocument.uri}`);
|
|
757
|
+
recentEditTracker.handleDocumentClose(p.textDocument.uri);
|
|
758
|
+
}
|
|
759
|
+
if (cursorTracker) {
|
|
760
|
+
cursorTracker.clearHistory(p.textDocument.uri);
|
|
761
|
+
}
|
|
562
762
|
});
|
|
563
763
|
logging.log('Amazon Q Inline Suggestion server has been initialised');
|
|
564
764
|
return async () => {
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
765
|
+
// Dispose all trackers in reverse order of initialization
|
|
766
|
+
if (codePercentageTracker)
|
|
767
|
+
codePercentageTracker.dispose();
|
|
768
|
+
if (userWrittenCodeTracker)
|
|
769
|
+
userWrittenCodeTracker?.dispose();
|
|
770
|
+
if (codeDiffTracker)
|
|
771
|
+
await codeDiffTracker.shutdown();
|
|
772
|
+
if (recentEditTracker)
|
|
773
|
+
recentEditTracker.dispose();
|
|
774
|
+
if (cursorTracker)
|
|
775
|
+
cursorTracker.dispose();
|
|
776
|
+
if (rejectedEditTracker)
|
|
777
|
+
rejectedEditTracker.dispose();
|
|
778
|
+
logging.log('Amazon Q Inline Suggestion server has been shut down');
|
|
568
779
|
};
|
|
569
780
|
};
|
|
570
781
|
exports.CodewhispererServerFactory = CodewhispererServerFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeWhispererServer.js","sourceRoot":"","sources":["../../../src/language-server/inline-completion/codeWhispererServer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codeWhispererServer.js","sourceRoot":"","sources":["../../../src/language-server/inline-completion/codeWhispererServer.ts"],"names":[],"mappings":"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"}
|