Skip to content

Commit 6a32b39

Browse files
authored
feat(amazonq): enable @sage, pass feature config to mynahUI (#5683)
1 parent e163691 commit 6a32b39

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/Browser.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import com.intellij.openapi.project.Project
99
import com.intellij.openapi.util.Disposer
1010
import com.intellij.ui.jcef.JBCefJSQuery
1111
import org.cef.CefApp
12+
import software.aws.toolkits.jetbrains.services.amazonq.CodeWhispererFeatureConfigService
1213
import software.aws.toolkits.jetbrains.services.amazonq.lsp.AmazonQLspService
1314
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.AwsServerCapabilitiesProvider
1415
import software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfile
@@ -154,7 +155,7 @@ class Browser(parent: Disposable, private val webUri: URI, val project: Project)
154155
pairProgrammingAcknowledged: ${!MeetQSettings.getInstance().amazonQChatPairProgramming}
155156
},
156157
hybridChatConnector,
157-
{}
158+
${CodeWhispererFeatureConfigService.getInstance().getFeatureConfigJsonString()}
158159
159160
);
160161
}

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/CodeWhispererFeatureConfigService.kt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
// SPDX-License-Identifier: Apache-2.0
33

4+
@file:Suppress("BannedImports")
45
package software.aws.toolkits.jetbrains.services.amazonq
56

7+
import com.google.gson.Gson
68
import com.intellij.openapi.components.Service
79
import com.intellij.openapi.components.service
810
import com.intellij.openapi.project.Project
@@ -17,7 +19,6 @@ import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection
1719
import software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfileManager
1820
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
1921
import software.aws.toolkits.jetbrains.utils.isQExpired
20-
2122
@Service
2223
class CodeWhispererFeatureConfigService {
2324
private val featureConfigs = mutableMapOf<String, FeatureContext>()
@@ -82,6 +83,17 @@ class CodeWhispererFeatureConfigService {
8283

8384
fun getChatWSContext(): Boolean = getFeatureValueForKey(CHAT_WS_CONTEXT).stringValue() == "TREATMENT"
8485

86+
// convert into mynahUI parsable string
87+
// format: '[["key1", {"name":"Feature1","variation":"A","value":true}]]'
88+
fun getFeatureConfigJsonString(): String {
89+
val jsonString = featureConfigs.entries.map { (key, value) ->
90+
"[\"$key\",${Gson().toJson(value)}]"
91+
}
92+
return """
93+
'$jsonString'
94+
""".trimIndent()
95+
}
96+
8597
// Get the feature value for the given key.
8698
// In case of a misconfiguration, it will return a default feature value of Boolean false.
8799
private fun getFeatureValueForKey(name: String): FeatureValue =

0 commit comments

Comments
 (0)