@@ -18,9 +18,9 @@ import com.intellij.openapi.vfs.LocalFileSystem
1818import com.intellij.openapi.vfs.VfsUtil
1919import com.intellij.openapi.wm.ToolWindowManager
2020import 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
2424import software.aws.toolkits.core.utils.debug
2525import software.aws.toolkits.core.utils.error
2626import software.aws.toolkits.core.utils.getLogger
@@ -168,25 +168,25 @@ class DocController(
168168 FollowUpTypes .NEW_TASK -> newTask(message.tabId)
169169 FollowUpTypes .CLOSE_SESSION -> closeSession(message.tabId)
170170 FollowUpTypes .CREATE_DOCUMENTATION -> {
171- docGenerationTask.interactionType = DocGenerationInteractionType .GENERATE_README
171+ docGenerationTask.interactionType = DocInteractionType .GENERATE_README
172172 mode = Mode .CREATE
173173 promptForDocTarget(message.tabId)
174174 }
175175
176176 FollowUpTypes .UPDATE_DOCUMENTATION -> {
177- docGenerationTask.interactionType = DocGenerationInteractionType .UPDATE_README
177+ docGenerationTask.interactionType = DocInteractionType .UPDATE_README
178178 updateDocumentation(message.tabId)
179179 }
180180
181181 FollowUpTypes .CANCEL_FOLDER_SELECTION -> {
182- docGenerationTask.reset()
182+ docGenerationTask.folderLevel = DocFolderLevel . ENTIRE_WORKSPACE
183183 newTask(message.tabId)
184184 }
185185
186186 FollowUpTypes .PROCEED_FOLDER_SELECTION -> if (mode == Mode .EDIT ) makeChanges(message.tabId) else onDocsGeneration(message)
187187 FollowUpTypes .ACCEPT_CHANGES -> {
188- docGenerationTask.userDecision = DocGenerationUserDecision .ACCEPT
189- sendDocGenerationTelemetry (message.tabId)
188+ docGenerationTask.userDecision = DocUserDecision .ACCEPT
189+ sendDocAcceptanceTelemetry (message.tabId)
190190 acceptChanges(message)
191191 }
192192
@@ -196,8 +196,8 @@ class DocController(
196196 }
197197
198198 FollowUpTypes .REJECT_CHANGES -> {
199- docGenerationTask.userDecision = DocGenerationUserDecision .REJECT
200- sendDocGenerationTelemetry (message.tabId)
199+ docGenerationTask.userDecision = DocUserDecision .REJECT
200+ sendDocAcceptanceTelemetry (message.tabId)
201201 rejectChanges(message)
202202 }
203203
@@ -208,7 +208,7 @@ class DocController(
208208
209209 FollowUpTypes .EDIT_DOCUMENTATION -> {
210210 mode = Mode .EDIT
211- docGenerationTask.interactionType = DocGenerationInteractionType .EDIT_README
211+ docGenerationTask.interactionType = DocInteractionType .EDIT_README
212212 promptForDocTarget(message.tabId)
213213 }
214214 }
@@ -454,8 +454,7 @@ class DocController(
454454 session.isAuthenticating = true
455455 return
456456 }
457- docGenerationTask.userIdentity = session.getUserIdentity()
458- docGenerationTask.numberOfNavigation + = 1
457+ docGenerationTask.numberOfNavigations + = 1
459458 messenger.sendUpdatePlaceholder(tabId, message(" amazonqDoc.prompt.placeholder" ))
460459 } catch (err: Exception ) {
461460 val message = createUserFacingErrorMessage(err.message)
@@ -733,7 +732,6 @@ class DocController(
733732 session.isAuthenticating = true
734733 return
735734 }
736- docGenerationTask.userIdentity = session.getUserIdentity()
737735 session.preloader(message, messenger)
738736
739737 when (session.sessionState.phase) {
@@ -747,6 +745,7 @@ class DocController(
747745 is PrepareDocGenerationState -> state.filePaths
748746 else -> emptyList()
749747 }
748+ sendDocGenerationTelemetry(filePaths, session)
750749 broadcastQEvent(QFeatureEvent .INVOCATION )
751750
752751 if (filePaths.isNotEmpty()) {
@@ -811,6 +810,8 @@ class DocController(
811810 return
812811 }
813812
813+ sendDocGenerationTelemetry(filePaths, session)
814+
814815 messenger.sendAnswer(
815816 message = docGenerationProgressMessage(DocGenerationStep .COMPLETE , mode),
816817 messageType = DocMessageType .AnswerPart ,
@@ -988,9 +989,9 @@ class DocController(
988989 }
989990
990991 if (selectedFolder.path == projectRoot.path) {
991- docGenerationTask.folderLevel = DocGenerationFolderLevel .ENTIRE_WORKSPACE
992+ docGenerationTask.folderLevel = DocFolderLevel .ENTIRE_WORKSPACE
992993 } else {
993- docGenerationTask.folderLevel = DocGenerationFolderLevel .SUB_FOLDER
994+ docGenerationTask.folderLevel = DocFolderLevel .SUB_FOLDER
994995 }
995996
996997 logger.info { " Selected correct folder inside workspace: ${selectedFolder.path} " }
@@ -1005,7 +1006,18 @@ class DocController(
10051006 }
10061007 }
10071008
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 ) {
10091021 val session = getSessionInfo(tabId)
10101022 var filePaths: List <NewFileZipInfo > = emptyList()
10111023
@@ -1016,12 +1028,12 @@ class DocController(
10161028 }
10171029 docGenerationTask.conversationId = session.conversationId
10181030 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
10221034
1023- val docGenerationEvent = docGenerationTask.docGenerationEventBase ()
1024- session.sendDocGenerationEvent(docGenerationEvent )
1035+ val docAcceptanceEvent = docGenerationTask.docAcceptanceEventBase ()
1036+ session.sendDocTelemetryEvent( null , docAcceptanceEvent )
10251037 }
10261038
10271039 fun getProject () = context.project
0 commit comments