@@ -7,7 +7,6 @@ import com.intellij.openapi.Disposable
7
7
import com.intellij.openapi.application.ApplicationManager
8
8
import com.intellij.openapi.components.service
9
9
import com.intellij.openapi.project.Project
10
- import com.intellij.openapi.util.SystemInfo
11
10
import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider
12
11
import software.amazon.awssdk.services.codewhisperer.CodeWhispererClient
13
12
import software.amazon.awssdk.services.codewhisperer.model.CreateCodeScanRequest
@@ -25,13 +24,10 @@ import software.amazon.awssdk.services.codewhispererruntime.model.CreateUploadUr
25
24
import software.amazon.awssdk.services.codewhispererruntime.model.Dimension
26
25
import software.amazon.awssdk.services.codewhispererruntime.model.GenerateCompletionsRequest
27
26
import software.amazon.awssdk.services.codewhispererruntime.model.GenerateCompletionsResponse
28
- import software.amazon.awssdk.services.codewhispererruntime.model.IdeCategory
29
27
import software.amazon.awssdk.services.codewhispererruntime.model.ListAvailableCustomizationsRequest
30
28
import software.amazon.awssdk.services.codewhispererruntime.model.ListFeatureEvaluationsResponse
31
- import software.amazon.awssdk.services.codewhispererruntime.model.OperatingSystem
32
29
import software.amazon.awssdk.services.codewhispererruntime.model.SendTelemetryEventResponse
33
30
import software.amazon.awssdk.services.codewhispererruntime.model.SuggestionState
34
- import software.amazon.awssdk.services.codewhispererruntime.model.UserContext
35
31
import software.amazon.awssdk.services.codewhispererruntime.model.UserIntent
36
32
import software.aws.toolkits.core.utils.debug
37
33
import software.aws.toolkits.core.utils.getLogger
@@ -43,6 +39,7 @@ import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnection
43
39
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
44
40
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManagerListener
45
41
import software.aws.toolkits.jetbrains.core.credentials.pinning.CodeWhispererConnection
42
+ import software.aws.toolkits.jetbrains.services.amazonq.codeWhispererUserContext
46
43
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
47
44
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager
48
45
import software.aws.toolkits.jetbrains.services.codewhisperer.language.CodeWhispererProgrammingLanguage
@@ -51,10 +48,8 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.service.RequestCon
51
48
import software.aws.toolkits.jetbrains.services.codewhisperer.service.RequestContextNew
52
49
import software.aws.toolkits.jetbrains.services.codewhisperer.service.ResponseContext
53
50
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants
54
- import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants.FEATURE_EVALUATION_PRODUCT_NAME
55
51
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererUtil.getTelemetryOptOutPreference
56
52
import software.aws.toolkits.jetbrains.services.codewhisperer.util.transform
57
- import software.aws.toolkits.jetbrains.services.telemetry.ClientMetadata
58
53
import software.aws.toolkits.telemetry.CodewhispererCompletionType
59
54
import software.aws.toolkits.telemetry.CodewhispererSuggestionState
60
55
import java.time.Instant
@@ -201,24 +196,6 @@ interface CodeWhispererClientAdaptor : Disposable {
201
196
}
202
197
203
198
open 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
-
222
199
private val mySigv4Client by lazy { createUnmanagedSigv4Client() }
223
200
224
201
@Volatile
@@ -348,7 +325,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
348
325
}
349
326
}
350
327
requestBuilder.optOutPreference(getTelemetryOptOutPreference())
351
- requestBuilder.userContext(codeWhispererUserContext)
328
+ requestBuilder.userContext(codeWhispererUserContext() )
352
329
}
353
330
}
354
331
@@ -391,7 +368,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
391
368
}
392
369
}
393
370
requestBuilder.optOutPreference(getTelemetryOptOutPreference())
394
- requestBuilder.userContext(codeWhispererUserContext)
371
+ requestBuilder.userContext(codeWhispererUserContext() )
395
372
}
396
373
}
397
374
@@ -413,7 +390,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
413
390
}
414
391
}
415
392
requestBuilder.optOutPreference(getTelemetryOptOutPreference())
416
- requestBuilder.userContext(codeWhispererUserContext)
393
+ requestBuilder.userContext(codeWhispererUserContext() )
417
394
}
418
395
419
396
override fun sendUserModificationTelemetry (
@@ -440,7 +417,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
440
417
}
441
418
}
442
419
requestBuilder.optOutPreference(getTelemetryOptOutPreference())
443
- requestBuilder.userContext(codeWhispererUserContext)
420
+ requestBuilder.userContext(codeWhispererUserContext() )
444
421
}
445
422
446
423
override fun sendCodeScanTelemetry (
@@ -459,7 +436,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
459
436
}
460
437
}
461
438
requestBuilder.optOutPreference(getTelemetryOptOutPreference())
462
- requestBuilder.userContext(codeWhispererUserContext)
439
+ requestBuilder.userContext(codeWhispererUserContext() )
463
440
}
464
441
override fun sendCodeScanRemediationTelemetry (
465
442
language : CodeWhispererProgrammingLanguage ? ,
@@ -489,11 +466,11 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
489
466
}
490
467
}
491
468
requestBuilder.optOutPreference(getTelemetryOptOutPreference())
492
- requestBuilder.userContext(codeWhispererUserContext)
469
+ requestBuilder.userContext(codeWhispererUserContext() )
493
470
}
494
471
495
472
override fun listFeatureEvaluations (): ListFeatureEvaluationsResponse = bearerClient().listFeatureEvaluations {
496
- it.userContext(codeWhispererUserContext)
473
+ it.userContext(codeWhispererUserContext() )
497
474
}
498
475
499
476
override fun sendMetricDataTelemetry (eventName : String , metadata : Map <String , Any ?>): SendTelemetryEventResponse =
@@ -507,7 +484,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
507
484
}
508
485
}
509
486
requestBuilder.optOutPreference(getTelemetryOptOutPreference())
510
- requestBuilder.userContext(codeWhispererUserContext)
487
+ requestBuilder.userContext(codeWhispererUserContext() )
511
488
}
512
489
513
490
override fun sendChatAddMessageTelemetry (
@@ -547,7 +524,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
547
524
}
548
525
}
549
526
requestBuilder.optOutPreference(getTelemetryOptOutPreference())
550
- requestBuilder.userContext(codeWhispererUserContext)
527
+ requestBuilder.userContext(codeWhispererUserContext() )
551
528
}
552
529
553
530
override fun sendChatInteractWithMessageTelemetry (
@@ -576,7 +553,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
576
553
telemetryEventBuilder.chatInteractWithMessageEvent(event)
577
554
}
578
555
requestBuilder.optOutPreference(getTelemetryOptOutPreference())
579
- requestBuilder.userContext(codeWhispererUserContext)
556
+ requestBuilder.userContext(codeWhispererUserContext() )
580
557
}
581
558
582
559
override fun sendChatUserModificationTelemetry (
@@ -602,7 +579,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
602
579
}
603
580
}
604
581
requestBuilder.optOutPreference(getTelemetryOptOutPreference())
605
- requestBuilder.userContext(codeWhispererUserContext)
582
+ requestBuilder.userContext(codeWhispererUserContext() )
606
583
}
607
584
608
585
override fun dispose () {
0 commit comments