@@ -18,9 +18,9 @@ import com.intellij.openapi.vfs.LocalFileSystem
18
18
import com.intellij.openapi.vfs.VfsUtil
19
19
import com.intellij.openapi.wm.ToolWindowManager
20
20
import kotlinx.coroutines.withContext
21
- import software.amazon.awssdk.services.codewhispererruntime.model.DocGenerationFolderLevel
22
- import software.amazon.awssdk.services.codewhispererruntime.model.DocGenerationInteractionType
23
- import software.amazon.awssdk.services.codewhispererruntime.model.DocGenerationUserDecision
21
+ import software.amazon.awssdk.services.codewhispererruntime.model.DocFolderLevel
22
+ import software.amazon.awssdk.services.codewhispererruntime.model.DocInteractionType
23
+ import software.amazon.awssdk.services.codewhispererruntime.model.DocUserDecision
24
24
import software.aws.toolkits.core.utils.debug
25
25
import software.aws.toolkits.core.utils.error
26
26
import software.aws.toolkits.core.utils.getLogger
@@ -168,25 +168,25 @@ class DocController(
168
168
FollowUpTypes .NEW_TASK -> newTask(message.tabId)
169
169
FollowUpTypes .CLOSE_SESSION -> closeSession(message.tabId)
170
170
FollowUpTypes .CREATE_DOCUMENTATION -> {
171
- docGenerationTask.interactionType = DocGenerationInteractionType .GENERATE_README
171
+ docGenerationTask.interactionType = DocInteractionType .GENERATE_README
172
172
mode = Mode .CREATE
173
173
promptForDocTarget(message.tabId)
174
174
}
175
175
176
176
FollowUpTypes .UPDATE_DOCUMENTATION -> {
177
- docGenerationTask.interactionType = DocGenerationInteractionType .UPDATE_README
177
+ docGenerationTask.interactionType = DocInteractionType .UPDATE_README
178
178
updateDocumentation(message.tabId)
179
179
}
180
180
181
181
FollowUpTypes .CANCEL_FOLDER_SELECTION -> {
182
- docGenerationTask.reset()
182
+ docGenerationTask.folderLevel = DocFolderLevel . ENTIRE_WORKSPACE
183
183
newTask(message.tabId)
184
184
}
185
185
186
186
FollowUpTypes .PROCEED_FOLDER_SELECTION -> if (mode == Mode .EDIT ) makeChanges(message.tabId) else onDocsGeneration(message)
187
187
FollowUpTypes .ACCEPT_CHANGES -> {
188
- docGenerationTask.userDecision = DocGenerationUserDecision .ACCEPT
189
- sendDocGenerationTelemetry (message.tabId)
188
+ docGenerationTask.userDecision = DocUserDecision .ACCEPT
189
+ sendDocAcceptanceTelemetry (message.tabId)
190
190
acceptChanges(message)
191
191
}
192
192
@@ -196,8 +196,8 @@ class DocController(
196
196
}
197
197
198
198
FollowUpTypes .REJECT_CHANGES -> {
199
- docGenerationTask.userDecision = DocGenerationUserDecision .REJECT
200
- sendDocGenerationTelemetry (message.tabId)
199
+ docGenerationTask.userDecision = DocUserDecision .REJECT
200
+ sendDocAcceptanceTelemetry (message.tabId)
201
201
rejectChanges(message)
202
202
}
203
203
@@ -208,7 +208,7 @@ class DocController(
208
208
209
209
FollowUpTypes .EDIT_DOCUMENTATION -> {
210
210
mode = Mode .EDIT
211
- docGenerationTask.interactionType = DocGenerationInteractionType .EDIT_README
211
+ docGenerationTask.interactionType = DocInteractionType .EDIT_README
212
212
promptForDocTarget(message.tabId)
213
213
}
214
214
}
@@ -454,8 +454,7 @@ class DocController(
454
454
session.isAuthenticating = true
455
455
return
456
456
}
457
- docGenerationTask.userIdentity = session.getUserIdentity()
458
- docGenerationTask.numberOfNavigation + = 1
457
+ docGenerationTask.numberOfNavigations + = 1
459
458
messenger.sendUpdatePlaceholder(tabId, message(" amazonqDoc.prompt.placeholder" ))
460
459
} catch (err: Exception ) {
461
460
val message = createUserFacingErrorMessage(err.message)
@@ -733,7 +732,6 @@ class DocController(
733
732
session.isAuthenticating = true
734
733
return
735
734
}
736
- docGenerationTask.userIdentity = session.getUserIdentity()
737
735
session.preloader(message, messenger)
738
736
739
737
when (session.sessionState.phase) {
@@ -747,6 +745,7 @@ class DocController(
747
745
is PrepareDocGenerationState -> state.filePaths
748
746
else -> emptyList()
749
747
}
748
+ sendDocGenerationTelemetry(filePaths, session)
750
749
broadcastQEvent(QFeatureEvent .INVOCATION )
751
750
752
751
if (filePaths.isNotEmpty()) {
@@ -811,6 +810,8 @@ class DocController(
811
810
return
812
811
}
813
812
813
+ sendDocGenerationTelemetry(filePaths, session)
814
+
814
815
messenger.sendAnswer(
815
816
message = docGenerationProgressMessage(DocGenerationStep .COMPLETE , mode),
816
817
messageType = DocMessageType .AnswerPart ,
@@ -988,9 +989,9 @@ class DocController(
988
989
}
989
990
990
991
if (selectedFolder.path == projectRoot.path) {
991
- docGenerationTask.folderLevel = DocGenerationFolderLevel .ENTIRE_WORKSPACE
992
+ docGenerationTask.folderLevel = DocFolderLevel .ENTIRE_WORKSPACE
992
993
} else {
993
- docGenerationTask.folderLevel = DocGenerationFolderLevel .SUB_FOLDER
994
+ docGenerationTask.folderLevel = DocFolderLevel .SUB_FOLDER
994
995
}
995
996
996
997
logger.info { " Selected correct folder inside workspace: ${selectedFolder.path} " }
@@ -1005,7 +1006,18 @@ class DocController(
1005
1006
}
1006
1007
}
1007
1008
1008
- private fun sendDocGenerationTelemetry (tabId : String ) {
1009
+ private fun sendDocGenerationTelemetry (filePaths : List <NewFileZipInfo >, session : DocSession ) {
1010
+ docGenerationTask.conversationId = session.conversationId
1011
+ val (totalGeneratedChars, totalGeneratedLines, totalGeneratedFiles) = session.countedGeneratedContent(filePaths, docGenerationTask.interactionType)
1012
+ docGenerationTask.numberOfGeneratedChars = totalGeneratedChars
1013
+ docGenerationTask.numberOfGeneratedLines = totalGeneratedLines
1014
+ docGenerationTask.numberOfGeneratedFiles = totalGeneratedFiles
1015
+
1016
+ val docGenerationEvent = docGenerationTask.docGenerationEventBase()
1017
+ session.sendDocTelemetryEvent(docGenerationEvent)
1018
+ }
1019
+
1020
+ private fun sendDocAcceptanceTelemetry (tabId : String ) {
1009
1021
val session = getSessionInfo(tabId)
1010
1022
var filePaths: List <NewFileZipInfo > = emptyList()
1011
1023
@@ -1016,12 +1028,12 @@ class DocController(
1016
1028
}
1017
1029
docGenerationTask.conversationId = session.conversationId
1018
1030
val (totalAddedChars, totalAddedLines, totalAddedFiles) = session.countAddedContent(filePaths, docGenerationTask.interactionType)
1019
- docGenerationTask.numberOfAddChars = totalAddedChars
1020
- docGenerationTask.numberOfAddLines = totalAddedLines
1021
- docGenerationTask.numberOfAddFiles = totalAddedFiles
1031
+ docGenerationTask.numberOfAddedChars = totalAddedChars
1032
+ docGenerationTask.numberOfAddedLines = totalAddedLines
1033
+ docGenerationTask.numberOfAddedFiles = totalAddedFiles
1022
1034
1023
- val docGenerationEvent = docGenerationTask.docGenerationEventBase ()
1024
- session.sendDocGenerationEvent(docGenerationEvent )
1035
+ val docAcceptanceEvent = docGenerationTask.docAcceptanceEventBase ()
1036
+ session.sendDocTelemetryEvent( null , docAcceptanceEvent )
1025
1037
}
1026
1038
1027
1039
fun getProject () = context.project
0 commit comments