Skip to content

Commit 8b459f4

Browse files
committed
Include user intent for copy and insert code interactions
1 parent 348c254 commit 8b459f4

File tree

4 files changed

+8
-0
lines changed

4 files changed

+8
-0
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ class ChatController private constructor(
221221
InsertedCodeModificationEntry(
222222
telemetryHelper.getConversationId(message.tabId).orEmpty(),
223223
message.messageId,
224+
message.userIntent,
224225
Instant.now(),
225226
PsiDocumentManager.getInstance(context.project).getPsiFile(editor.document)?.virtualFile,
226227
editor.document.createRangeMarker(caret.selectionStart, caret.selectionEnd, true),

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,
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,
238240
cwsprChatAcceptedNumberOfLines = message.code.lines().size,

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/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/InsertedCodeModificationEntry.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ package software.aws.toolkits.jetbrains.services.cwc.controller.chat.telemetry
55

66
import com.intellij.openapi.editor.RangeMarker
77
import com.intellij.openapi.vfs.VirtualFile
8+
import software.amazon.awssdk.services.codewhispererstreaming.model.UserIntent
89
import software.aws.toolkits.jetbrains.services.codewhisperer.telemetry.UserModificationTrackingEntry
910
import java.time.Instant
1011

1112
data class InsertedCodeModificationEntry(
1213
val conversationId: String,
1314
val messageId: String,
15+
val userIntent: UserIntent?,
1416
override val time: Instant,
1517
val vFile: VirtualFile?,
1618
val range: RangeMarker,

0 commit comments

Comments
 (0)