diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt index 3c9676a4407..22ac5d7fe74 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt @@ -210,6 +210,7 @@ class TelemetryHelper(private val context: AmazonQAppInitContext, private val se AmazonqTelemetry.interactWithMessage( cwsprChatConversationId = getConversationId(message.tabId).orEmpty(), cwsprChatMessageId = message.messageId, + cwsprChatUserIntent = message.userIntent?.let { getTelemetryUserIntent(it) }, cwsprChatInteractionType = CwsprChatInteractionType.CopySnippet, cwsprChatAcceptedCharactersLength = message.code.length.toLong(), cwsprChatInteractionTarget = message.insertionTargetType, @@ -233,6 +234,7 @@ class TelemetryHelper(private val context: AmazonQAppInitContext, private val se AmazonqTelemetry.interactWithMessage( cwsprChatConversationId = getConversationId(message.tabId).orEmpty(), cwsprChatMessageId = message.messageId, + cwsprChatUserIntent = message.userIntent?.let { getTelemetryUserIntent(it) }, cwsprChatInteractionType = CwsprChatInteractionType.InsertAtCursor, cwsprChatAcceptedCharactersLength = message.code.length.toLong(), cwsprChatAcceptedNumberOfLines = message.code.lines().size.toLong(), diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/messages/CwcMessage.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/messages/CwcMessage.kt index dd7d9485b2b..674c6f058eb 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/messages/CwcMessage.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/messages/CwcMessage.kt @@ -13,6 +13,7 @@ import com.fasterxml.jackson.databind.JsonSerializer import com.fasterxml.jackson.databind.SerializerProvider import com.fasterxml.jackson.databind.annotation.JsonDeserialize import com.fasterxml.jackson.databind.annotation.JsonSerialize +import software.amazon.awssdk.services.codewhispererstreaming.model.UserIntent import software.aws.toolkits.jetbrains.services.amazonq.auth.AuthFollowUpType import software.aws.toolkits.jetbrains.services.amazonq.messages.AmazonQMessage import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteractionType @@ -65,6 +66,7 @@ sealed interface IncomingCwcMessage : CwcMessage { val command: String?, @JsonProperty("tabID") val tabId: String, val messageId: String, + val userIntent: UserIntent?, val code: String, val insertionTargetType: String?, val eventId: String?, @@ -75,6 +77,7 @@ sealed interface IncomingCwcMessage : CwcMessage { data class InsertCodeAtCursorPosition( @JsonProperty("tabID") val tabId: String, val messageId: String, + val userIntent: UserIntent?, val code: String, val insertionTargetType: String?, val codeReference: List?, diff --git a/plugins/amazonq/chat/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/TelemetryHelperTest.kt b/plugins/amazonq/chat/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/TelemetryHelperTest.kt index f8878f68b47..0cba45227e8 100644 --- a/plugins/amazonq/chat/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/TelemetryHelperTest.kt +++ b/plugins/amazonq/chat/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/TelemetryHelperTest.kt @@ -106,6 +106,7 @@ class TelemetryHelperTest { private const val mockRegion = "us-east-1" private const val tabId = "tabId" private const val messageId = "messageId" + private val userIntent = UserIntent.SHOW_EXAMPLES private const val conversationId = "conversationId" private const val triggerId = "triggerId" private const val customizationArn = "customizationArn" @@ -414,6 +415,7 @@ class TelemetryHelperTest { "command", tabId, messageId, + userIntent, "println()", "insertionTargetType", "eventId", @@ -476,6 +478,7 @@ class TelemetryHelperTest { IncomingCwcMessage.InsertCodeAtCursorPosition( tabId, messageId, + userIntent, code, inserTionTargetType, emptyList(), diff --git a/plugins/core/jetbrains-community/resources/telemetryOverride.json b/plugins/core/jetbrains-community/resources/telemetryOverride.json index 8e43b8e7470..e3e8bee1368 100644 --- a/plugins/core/jetbrains-community/resources/telemetryOverride.json +++ b/plugins/core/jetbrains-community/resources/telemetryOverride.json @@ -653,6 +653,10 @@ { "type": "cwsprChatMessageId" }, + { + "type": "cwsprChatUserIntent", + "required": false + }, { "type": "cwsprChatInteractionType" },