@@ -7,7 +7,6 @@ import com.intellij.openapi.Disposable
77import com.intellij.openapi.application.ApplicationManager
88import com.intellij.openapi.components.service
99import com.intellij.openapi.project.Project
10- import com.intellij.openapi.util.SystemInfo
1110import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider
1211import software.amazon.awssdk.services.codewhisperer.CodeWhispererClient
1312import software.amazon.awssdk.services.codewhisperer.model.CreateCodeScanRequest
@@ -25,13 +24,10 @@ import software.amazon.awssdk.services.codewhispererruntime.model.CreateUploadUr
2524import software.amazon.awssdk.services.codewhispererruntime.model.Dimension
2625import software.amazon.awssdk.services.codewhispererruntime.model.GenerateCompletionsRequest
2726import software.amazon.awssdk.services.codewhispererruntime.model.GenerateCompletionsResponse
28- import software.amazon.awssdk.services.codewhispererruntime.model.IdeCategory
2927import software.amazon.awssdk.services.codewhispererruntime.model.ListAvailableCustomizationsRequest
3028import software.amazon.awssdk.services.codewhispererruntime.model.ListFeatureEvaluationsResponse
31- import software.amazon.awssdk.services.codewhispererruntime.model.OperatingSystem
3229import software.amazon.awssdk.services.codewhispererruntime.model.SendTelemetryEventResponse
3330import software.amazon.awssdk.services.codewhispererruntime.model.SuggestionState
34- import software.amazon.awssdk.services.codewhispererruntime.model.UserContext
3531import software.amazon.awssdk.services.codewhispererruntime.model.UserIntent
3632import software.aws.toolkits.core.utils.debug
3733import software.aws.toolkits.core.utils.getLogger
@@ -43,6 +39,7 @@ import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnection
4339import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
4440import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManagerListener
4541import software.aws.toolkits.jetbrains.core.credentials.pinning.CodeWhispererConnection
42+ import software.aws.toolkits.jetbrains.services.amazonq.codeWhispererUserContext
4643import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
4744import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager
4845import software.aws.toolkits.jetbrains.services.codewhisperer.language.CodeWhispererProgrammingLanguage
@@ -51,10 +48,8 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.service.RequestCon
5148import software.aws.toolkits.jetbrains.services.codewhisperer.service.RequestContextNew
5249import software.aws.toolkits.jetbrains.services.codewhisperer.service.ResponseContext
5350import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants
54- import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants.FEATURE_EVALUATION_PRODUCT_NAME
5551import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererUtil.getTelemetryOptOutPreference
5652import software.aws.toolkits.jetbrains.services.codewhisperer.util.transform
57- import software.aws.toolkits.jetbrains.services.telemetry.ClientMetadata
5853import software.aws.toolkits.telemetry.CodewhispererCompletionType
5954import software.aws.toolkits.telemetry.CodewhispererSuggestionState
6055import java.time.Instant
@@ -201,24 +196,6 @@ interface CodeWhispererClientAdaptor : Disposable {
201196}
202197
203198open class CodeWhispererClientAdaptorImpl (override val project : Project ) : CodeWhispererClientAdaptor {
204- private val codeWhispererUserContext = ClientMetadata .getDefault().let {
205- val osForCodeWhisperer: OperatingSystem =
206- when {
207- SystemInfo .isWindows -> OperatingSystem .WINDOWS
208- SystemInfo .isMac -> OperatingSystem .MAC
209- // For now, categorize everything else as "Linux" (Linux/FreeBSD/Solaris/etc)
210- else -> OperatingSystem .LINUX
211- }
212-
213- UserContext .builder()
214- .ideCategory(IdeCategory .JETBRAINS )
215- .operatingSystem(osForCodeWhisperer)
216- .product(FEATURE_EVALUATION_PRODUCT_NAME )
217- .clientId(it.clientId)
218- .ideVersion(it.awsVersion)
219- .build()
220- }
221-
222199 private val mySigv4Client by lazy { createUnmanagedSigv4Client() }
223200
224201 @Volatile
@@ -348,7 +325,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
348325 }
349326 }
350327 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
351- requestBuilder.userContext(codeWhispererUserContext)
328+ requestBuilder.userContext(codeWhispererUserContext() )
352329 }
353330 }
354331
@@ -391,7 +368,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
391368 }
392369 }
393370 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
394- requestBuilder.userContext(codeWhispererUserContext)
371+ requestBuilder.userContext(codeWhispererUserContext() )
395372 }
396373 }
397374
@@ -413,7 +390,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
413390 }
414391 }
415392 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
416- requestBuilder.userContext(codeWhispererUserContext)
393+ requestBuilder.userContext(codeWhispererUserContext() )
417394 }
418395
419396 override fun sendUserModificationTelemetry (
@@ -440,7 +417,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
440417 }
441418 }
442419 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
443- requestBuilder.userContext(codeWhispererUserContext)
420+ requestBuilder.userContext(codeWhispererUserContext() )
444421 }
445422
446423 override fun sendCodeScanTelemetry (
@@ -459,7 +436,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
459436 }
460437 }
461438 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
462- requestBuilder.userContext(codeWhispererUserContext)
439+ requestBuilder.userContext(codeWhispererUserContext() )
463440 }
464441 override fun sendCodeScanRemediationTelemetry (
465442 language : CodeWhispererProgrammingLanguage ? ,
@@ -489,11 +466,11 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
489466 }
490467 }
491468 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
492- requestBuilder.userContext(codeWhispererUserContext)
469+ requestBuilder.userContext(codeWhispererUserContext() )
493470 }
494471
495472 override fun listFeatureEvaluations (): ListFeatureEvaluationsResponse = bearerClient().listFeatureEvaluations {
496- it.userContext(codeWhispererUserContext)
473+ it.userContext(codeWhispererUserContext() )
497474 }
498475
499476 override fun sendMetricDataTelemetry (eventName : String , metadata : Map <String , Any ?>): SendTelemetryEventResponse =
@@ -507,7 +484,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
507484 }
508485 }
509486 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
510- requestBuilder.userContext(codeWhispererUserContext)
487+ requestBuilder.userContext(codeWhispererUserContext() )
511488 }
512489
513490 override fun sendChatAddMessageTelemetry (
@@ -547,7 +524,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
547524 }
548525 }
549526 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
550- requestBuilder.userContext(codeWhispererUserContext)
527+ requestBuilder.userContext(codeWhispererUserContext() )
551528 }
552529
553530 override fun sendChatInteractWithMessageTelemetry (
@@ -576,7 +553,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
576553 telemetryEventBuilder.chatInteractWithMessageEvent(event)
577554 }
578555 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
579- requestBuilder.userContext(codeWhispererUserContext)
556+ requestBuilder.userContext(codeWhispererUserContext() )
580557 }
581558
582559 override fun sendChatUserModificationTelemetry (
@@ -602,7 +579,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
602579 }
603580 }
604581 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
605- requestBuilder.userContext(codeWhispererUserContext)
582+ requestBuilder.userContext(codeWhispererUserContext() )
606583 }
607584
608585 override fun dispose () {
0 commit comments