@@ -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
@@ -44,15 +40,14 @@ import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
4440import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManagerListener
4541import software.aws.toolkits.jetbrains.core.credentials.pinning.CodeWhispererConnection
4642import software.aws.toolkits.jetbrains.services.amazonq.CodeWhispererCustomization
47- import software.aws.toolkits.jetbrains.services.amazonq.FEATURE_EVALUATION_PRODUCT_NAME
43+ import software.aws.toolkits.jetbrains.services.amazonq.codeWhispererUserContext
4844import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager
4945import software.aws.toolkits.jetbrains.services.codewhisperer.language.CodeWhispererProgrammingLanguage
5046import software.aws.toolkits.jetbrains.services.codewhisperer.service.RequestContext
5147import software.aws.toolkits.jetbrains.services.codewhisperer.service.ResponseContext
5248import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants
5349import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererUtil.getTelemetryOptOutPreference
5450import software.aws.toolkits.jetbrains.services.codewhisperer.util.transform
55- import software.aws.toolkits.jetbrains.services.telemetry.ClientMetadata
5651import software.aws.toolkits.telemetry.CodewhispererCompletionType
5752import software.aws.toolkits.telemetry.CodewhispererSuggestionState
5853import java.time.Instant
@@ -187,24 +182,6 @@ interface CodeWhispererClientAdaptor : Disposable {
187182}
188183
189184open class CodeWhispererClientAdaptorImpl (override val project : Project ) : CodeWhispererClientAdaptor {
190- private val codeWhispererUserContext = ClientMetadata .getDefault().let {
191- val osForCodeWhisperer: OperatingSystem =
192- when {
193- SystemInfo .isWindows -> OperatingSystem .WINDOWS
194- SystemInfo .isMac -> OperatingSystem .MAC
195- // For now, categorize everything else as "Linux" (Linux/FreeBSD/Solaris/etc)
196- else -> OperatingSystem .LINUX
197- }
198-
199- UserContext .builder()
200- .ideCategory(IdeCategory .JETBRAINS )
201- .operatingSystem(osForCodeWhisperer)
202- .product(FEATURE_EVALUATION_PRODUCT_NAME )
203- .clientId(it.clientId)
204- .ideVersion(it.awsVersion)
205- .build()
206- }
207-
208185 private val mySigv4Client by lazy { createUnmanagedSigv4Client() }
209186
210187 @Volatile
@@ -334,7 +311,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
334311 }
335312 }
336313 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
337- requestBuilder.userContext(codeWhispererUserContext)
314+ requestBuilder.userContext(codeWhispererUserContext() )
338315 }
339316 }
340317
@@ -356,7 +333,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
356333 }
357334 }
358335 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
359- requestBuilder.userContext(codeWhispererUserContext)
336+ requestBuilder.userContext(codeWhispererUserContext() )
360337 }
361338
362339 override fun sendUserModificationTelemetry (
@@ -383,7 +360,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
383360 }
384361 }
385362 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
386- requestBuilder.userContext(codeWhispererUserContext)
363+ requestBuilder.userContext(codeWhispererUserContext() )
387364 }
388365
389366 override fun sendCodeScanTelemetry (
@@ -402,7 +379,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
402379 }
403380 }
404381 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
405- requestBuilder.userContext(codeWhispererUserContext)
382+ requestBuilder.userContext(codeWhispererUserContext() )
406383 }
407384 override fun sendCodeScanRemediationTelemetry (
408385 language : CodeWhispererProgrammingLanguage ? ,
@@ -432,11 +409,11 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
432409 }
433410 }
434411 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
435- requestBuilder.userContext(codeWhispererUserContext)
412+ requestBuilder.userContext(codeWhispererUserContext() )
436413 }
437414
438415 override fun listFeatureEvaluations (): ListFeatureEvaluationsResponse = bearerClient().listFeatureEvaluations {
439- it.userContext(codeWhispererUserContext)
416+ it.userContext(codeWhispererUserContext() )
440417 }
441418
442419 override fun sendMetricDataTelemetry (eventName : String , metadata : Map <String , Any ?>): SendTelemetryEventResponse =
@@ -450,7 +427,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
450427 }
451428 }
452429 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
453- requestBuilder.userContext(codeWhispererUserContext)
430+ requestBuilder.userContext(codeWhispererUserContext() )
454431 }
455432
456433 override fun sendChatAddMessageTelemetry (
@@ -490,7 +467,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
490467 }
491468 }
492469 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
493- requestBuilder.userContext(codeWhispererUserContext)
470+ requestBuilder.userContext(codeWhispererUserContext() )
494471 }
495472
496473 override fun sendChatInteractWithMessageTelemetry (
@@ -519,7 +496,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
519496 telemetryEventBuilder.chatInteractWithMessageEvent(event)
520497 }
521498 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
522- requestBuilder.userContext(codeWhispererUserContext)
499+ requestBuilder.userContext(codeWhispererUserContext() )
523500 }
524501
525502 override fun sendChatUserModificationTelemetry (
@@ -545,7 +522,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
545522 }
546523 }
547524 requestBuilder.optOutPreference(getTelemetryOptOutPreference())
548- requestBuilder.userContext(codeWhispererUserContext)
525+ requestBuilder.userContext(codeWhispererUserContext() )
549526 }
550527
551528 override fun dispose () {
0 commit comments