@@ -28,6 +28,7 @@ import {
2828 SourceLinkClickMessage ,
2929 TriggerPayload ,
3030 AdditionalContextLengths ,
31+ AdditionalContextInfo ,
3132} from './model'
3233import { TriggerEvent , TriggerEventsStorage } from '../../storages/triggerEvents'
3334import globals from '../../../shared/extensionGlobals'
@@ -71,7 +72,7 @@ export class CWCTelemetryHelper {
7172 private conversationStreamStartTime : Map < string , number > = new Map ( )
7273 private conversationStreamTotalTime : Map < string , number > = new Map ( )
7374 private responseStreamTimeForChunks : Map < string , number [ ] > = new Map ( )
74- private responseWithProjectContext : Map < string , boolean > = new Map ( )
75+ private responseWithContextInfo : Map < string , AdditionalContextInfo > = new Map ( )
7576
7677 // Keeps track of when chunks of data were displayed in a tab
7778 private displayTimeForChunks : Map < string , number [ ] > = new Map ( )
@@ -224,6 +225,11 @@ export class CWCTelemetryHelper {
224225 ) {
225226 const conversationId = this . getConversationId ( message . tabID )
226227 let event : AmazonqInteractWithMessage | undefined
228+ let additionalContextInfo = undefined
229+ const messageId = ( message as any ) . messageId
230+ if ( messageId ) {
231+ additionalContextInfo = this . responseWithContextInfo . get ( messageId )
232+ }
227233 switch ( message . command ) {
228234 case 'insert_code_at_cursor_position' :
229235 message = message as InsertCodeAtCursorPosition
@@ -240,7 +246,6 @@ export class CWCTelemetryHelper {
240246 cwsprChatHasReference : message . codeReference && message . codeReference . length > 0 ,
241247 cwsprChatCodeBlockIndex : message . codeBlockIndex ,
242248 cwsprChatTotalCodeBlocks : message . totalCodeBlocks ,
243- cwsprChatHasProjectContext : this . responseWithProjectContext . get ( message . messageId ) ,
244249 cwsprChatProgrammingLanguage : message . codeBlockLanguage ,
245250 }
246251 break
@@ -258,7 +263,6 @@ export class CWCTelemetryHelper {
258263 cwsprChatHasReference : message . codeReference && message . codeReference . length > 0 ,
259264 cwsprChatCodeBlockIndex : message . codeBlockIndex ,
260265 cwsprChatTotalCodeBlocks : message . totalCodeBlocks ,
261- cwsprChatHasProjectContext : this . responseWithProjectContext . get ( message . messageId ) ,
262266 cwsprChatProgrammingLanguage : message . codeBlockLanguage ,
263267 }
264268 break
@@ -275,7 +279,6 @@ export class CWCTelemetryHelper {
275279 message . referenceTrackerInformation && message . referenceTrackerInformation . length > 0 ,
276280 cwsprChatCodeBlockIndex : message . codeBlockIndex ,
277281 cwsprChatTotalCodeBlocks : message . totalCodeBlocks ,
278- cwsprChatHasProjectContext : this . responseWithProjectContext . get ( message . messageId ) ,
279282 }
280283 break
281284 case 'view_diff' :
@@ -291,7 +294,6 @@ export class CWCTelemetryHelper {
291294 message . referenceTrackerInformation && message . referenceTrackerInformation . length > 0 ,
292295 cwsprChatCodeBlockIndex : message . codeBlockIndex ,
293296 cwsprChatTotalCodeBlocks : message . totalCodeBlocks ,
294- cwsprChatHasProjectContext : this . responseWithProjectContext . get ( message . messageId ) ,
295297 }
296298 break
297299 case 'follow-up-was-clicked' :
@@ -302,7 +304,6 @@ export class CWCTelemetryHelper {
302304 credentialStartUrl : AuthUtil . instance . startUrl ,
303305 cwsprChatMessageId : message . messageId ,
304306 cwsprChatInteractionType : 'clickFollowUp' ,
305- cwsprChatHasProjectContext : this . responseWithProjectContext . get ( message . messageId ) ,
306307 }
307308 break
308309 case 'chat-item-voted' :
@@ -313,7 +314,6 @@ export class CWCTelemetryHelper {
313314 cwsprChatConversationId : conversationId ?? '' ,
314315 credentialStartUrl : AuthUtil . instance . startUrl ,
315316 cwsprChatInteractionType : message . vote ,
316- cwsprChatHasProjectContext : this . responseWithProjectContext . get ( message . messageId ) ,
317317 }
318318 break
319319 case 'source-link-click' :
@@ -325,7 +325,6 @@ export class CWCTelemetryHelper {
325325 credentialStartUrl : AuthUtil . instance . startUrl ,
326326 cwsprChatInteractionType : 'clickLink' ,
327327 cwsprChatInteractionTarget : message . link ,
328- cwsprChatHasProjectContext : this . responseWithProjectContext . get ( message . messageId ) ,
329328 }
330329 break
331330 case 'response-body-link-click' :
@@ -337,7 +336,6 @@ export class CWCTelemetryHelper {
337336 credentialStartUrl : AuthUtil . instance . startUrl ,
338337 cwsprChatInteractionType : 'clickBodyLink' ,
339338 cwsprChatInteractionTarget : message . link ,
340- cwsprChatHasProjectContext : this . responseWithProjectContext . get ( message . messageId ) ,
341339 }
342340 break
343341 case 'footer-info-link-click' :
@@ -356,7 +354,7 @@ export class CWCTelemetryHelper {
356354 if ( ! event ) {
357355 return
358356 }
359- telemetry . amazonq_interactWithMessage . emit ( event )
357+ telemetry . amazonq_interactWithMessage . emit ( { ... event , ... additionalContextInfo } )
360358
361359 codeWhispererClient
362360 . sendTelemetryEvent ( {
@@ -369,7 +367,8 @@ export class CWCTelemetryHelper {
369367 acceptedCharacterCount : event . cwsprChatAcceptedCharactersLength ,
370368 acceptedLineCount : event . cwsprChatAcceptedNumberOfLines ,
371369 acceptedSnippetHasReference : false ,
372- hasProjectLevelContext : this . responseWithProjectContext . get ( event . cwsprChatMessageId ) ,
370+ hasProjectLevelContext : this . responseWithContextInfo . get ( event . cwsprChatMessageId )
371+ ?. cwsprChatHasProjectContext ,
373372 customizationArn : undefinedIfEmpty ( getSelectedCustomization ( ) . arn ) ,
374373 } ,
375374 } ,
@@ -456,7 +455,7 @@ export class CWCTelemetryHelper {
456455 } )
457456 }
458457
459- private getAdditionalContextCounts ( triggerPayload : TriggerPayload ) {
458+ public getAdditionalContextCounts ( triggerPayload : TriggerPayload ) {
460459 const counts = {
461460 fileContextCount : 0 ,
462461 folderContextCount : 0 ,
@@ -631,8 +630,8 @@ export class CWCTelemetryHelper {
631630 this . displayTimeForChunks . set ( tabID , [ ...chunkTimes , time ] )
632631 }
633632
634- public setResponseFromProjectContext ( messageId : string ) {
635- this . responseWithProjectContext . set ( messageId , true )
633+ public setResponseFromAdditionalContext ( messageId : string , additionalContextInfo : AdditionalContextInfo ) {
634+ this . responseWithContextInfo . set ( messageId , additionalContextInfo )
636635 }
637636
638637 public setConversationStreamStartTime ( tabID : string ) {
0 commit comments