Skip to content

Commit e10d880

Browse files
authored
feat(telemetry): Include user intent for copy and insert code interactions (#4903)
1 parent 38cdcbb commit e10d880

File tree

4 files changed

+12
-0
lines changed

4 files changed

+12
-0
lines changed

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ class TelemetryHelper(private val context: AmazonQAppInitContext, private val se
210210
AmazonqTelemetry.interactWithMessage(
211211
cwsprChatConversationId = getConversationId(message.tabId).orEmpty(),
212212
cwsprChatMessageId = message.messageId,
213+
cwsprChatUserIntent = message.userIntent?.let { getTelemetryUserIntent(it) },
213214
cwsprChatInteractionType = CwsprChatInteractionType.CopySnippet,
214215
cwsprChatAcceptedCharactersLength = message.code.length.toLong(),
215216
cwsprChatInteractionTarget = message.insertionTargetType,
@@ -233,6 +234,7 @@ class TelemetryHelper(private val context: AmazonQAppInitContext, private val se
233234
AmazonqTelemetry.interactWithMessage(
234235
cwsprChatConversationId = getConversationId(message.tabId).orEmpty(),
235236
cwsprChatMessageId = message.messageId,
237+
cwsprChatUserIntent = message.userIntent?.let { getTelemetryUserIntent(it) },
236238
cwsprChatInteractionType = CwsprChatInteractionType.InsertAtCursor,
237239
cwsprChatAcceptedCharactersLength = message.code.length.toLong(),
238240
cwsprChatAcceptedNumberOfLines = message.code.lines().size.toLong(),

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/messages/CwcMessage.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import com.fasterxml.jackson.databind.JsonSerializer
1313
import com.fasterxml.jackson.databind.SerializerProvider
1414
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
1515
import com.fasterxml.jackson.databind.annotation.JsonSerialize
16+
import software.amazon.awssdk.services.codewhispererstreaming.model.UserIntent
1617
import software.aws.toolkits.jetbrains.services.amazonq.auth.AuthFollowUpType
1718
import software.aws.toolkits.jetbrains.services.amazonq.messages.AmazonQMessage
1819
import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteractionType
@@ -65,6 +66,7 @@ sealed interface IncomingCwcMessage : CwcMessage {
6566
val command: String?,
6667
@JsonProperty("tabID") val tabId: String,
6768
val messageId: String,
69+
val userIntent: UserIntent?,
6870
val code: String,
6971
val insertionTargetType: String?,
7072
val eventId: String?,
@@ -75,6 +77,7 @@ sealed interface IncomingCwcMessage : CwcMessage {
7577
data class InsertCodeAtCursorPosition(
7678
@JsonProperty("tabID") val tabId: String,
7779
val messageId: String,
80+
val userIntent: UserIntent?,
7881
val code: String,
7982
val insertionTargetType: String?,
8083
val codeReference: List<CodeReference>?,

plugins/amazonq/chat/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/TelemetryHelperTest.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ class TelemetryHelperTest {
106106
private const val mockRegion = "us-east-1"
107107
private const val tabId = "tabId"
108108
private const val messageId = "messageId"
109+
private val userIntent = UserIntent.SHOW_EXAMPLES
109110
private const val conversationId = "conversationId"
110111
private const val triggerId = "triggerId"
111112
private const val customizationArn = "customizationArn"
@@ -414,6 +415,7 @@ class TelemetryHelperTest {
414415
"command",
415416
tabId,
416417
messageId,
418+
userIntent,
417419
"println()",
418420
"insertionTargetType",
419421
"eventId",
@@ -476,6 +478,7 @@ class TelemetryHelperTest {
476478
IncomingCwcMessage.InsertCodeAtCursorPosition(
477479
tabId,
478480
messageId,
481+
userIntent,
479482
code,
480483
inserTionTargetType,
481484
emptyList(),

plugins/core/jetbrains-community/resources/telemetryOverride.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -653,6 +653,10 @@
653653
{
654654
"type": "cwsprChatMessageId"
655655
},
656+
{
657+
"type": "cwsprChatUserIntent",
658+
"required": false
659+
},
656660
{
657661
"type": "cwsprChatInteractionType"
658662
},

0 commit comments

Comments
 (0)