From 709a6edeaaff3f11015acde4d1dcbb2f5060c64a Mon Sep 17 00:00:00 2001 From: Will Lo Date: Sat, 26 Oct 2024 10:10:15 -0700 Subject: [PATCH 1/6] default optin project context for internal users --- .../amazonq/startup/AmazonQStartupActivity.kt | 11 +++++++++ .../cwc/commands/GenerateUnitTestsAction.kt | 3 ++- .../services/cwc/controller/ChatController.kt | 8 ++++--- .../chat/userIntent/UserIntentRecognizer.kt | 5 ++-- .../CodeWhispererFeatureConfigService.kt | 4 ---- .../jetbrains/services/amazonq/QUtils.kt | 2 ++ .../settings/CodeWhispererSettings.kt | 23 +++++++------------ 7 files changed, 30 insertions(+), 26 deletions(-) diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/startup/AmazonQStartupActivity.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/startup/AmazonQStartupActivity.kt index c6aeccc39f3..f6dca077cad 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/startup/AmazonQStartupActivity.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/startup/AmazonQStartupActivity.kt @@ -14,11 +14,16 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.time.withTimeout import software.aws.toolkits.core.utils.getLogger import software.aws.toolkits.core.utils.warn +import software.aws.toolkits.jetbrains.core.credentials.AwsBearerTokenConnection +import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager +import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection import software.aws.toolkits.jetbrains.core.gettingstarted.emitUserState +import software.aws.toolkits.jetbrains.services.amazonq.isInternalUser import software.aws.toolkits.jetbrains.services.amazonq.project.ProjectContextController import software.aws.toolkits.jetbrains.services.amazonq.toolwindow.AmazonQToolWindow import software.aws.toolkits.jetbrains.services.amazonq.toolwindow.AmazonQToolWindowFactory import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager +import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings import java.lang.management.ManagementFactory import java.time.Duration import java.util.concurrent.atomic.AtomicBoolean @@ -29,6 +34,12 @@ class AmazonQStartupActivity : ProjectActivity { override suspend fun execute(project: Project) { if (ApplicationManager.getApplication().isUnitTestMode) return + ToolkitConnectionManager.getInstance(project).activeConnectionForFeature(QConnection.getInstance())?.let { + if (it is AwsBearerTokenConnection && isInternalUser(it.startUrl)) { + CodeWhispererSettings.getInstance().toggleProjectContextEnabled(true, passive = true) + } + } + // initialize html contents in BGT so users don't have to wait when they open the tool window AmazonQToolWindow.getInstance(project) diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/commands/GenerateUnitTestsAction.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/commands/GenerateUnitTestsAction.kt index 2b1592110a4..ab141f439ae 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/commands/GenerateUnitTestsAction.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/commands/GenerateUnitTestsAction.kt @@ -9,6 +9,7 @@ import com.intellij.openapi.actionSystem.CommonDataKeys import software.aws.toolkits.jetbrains.core.credentials.AwsBearerTokenConnection import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection +import software.aws.toolkits.jetbrains.services.amazonq.isInternalUser class GenerateUnitTestsAction : CustomAction(EditorContextCommand.GenerateUnitTests) { override fun getActionUpdateThread() = ActionUpdateThread.BGT @@ -16,6 +17,6 @@ class GenerateUnitTestsAction : CustomAction(EditorContextCommand.GenerateUnitTe override fun update(e: AnActionEvent) { val project = e.getData(CommonDataKeys.PROJECT) ?: return val connection = ToolkitConnectionManager.getInstance(project).activeConnectionForFeature(QConnection.getInstance()) as? AwsBearerTokenConnection - e.presentation.isEnabledAndVisible = connection?.startUrl == "https://amzn.awsapps.com/start" + e.presentation.isEnabledAndVisible = isInternalUser(connection?.startUrl) } } diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/ChatController.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/ChatController.kt index bbbf9144979..bc354899245 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/ChatController.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/ChatController.kt @@ -36,10 +36,10 @@ import software.aws.toolkits.core.utils.getLogger import software.aws.toolkits.core.utils.info import software.aws.toolkits.core.utils.warn import software.aws.toolkits.jetbrains.core.coroutines.EDT -import software.aws.toolkits.jetbrains.services.amazonq.CodeWhispererFeatureConfigService import software.aws.toolkits.jetbrains.services.amazonq.apps.AmazonQAppInitContext import software.aws.toolkits.jetbrains.services.amazonq.auth.AuthController import software.aws.toolkits.jetbrains.services.amazonq.auth.AuthNeededState +import software.aws.toolkits.jetbrains.services.amazonq.isInternalUser import software.aws.toolkits.jetbrains.services.amazonq.messages.MessagePublisher import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteraction import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteractionType @@ -129,8 +129,8 @@ class ChatController private constructor( val triggerId = UUID.randomUUID().toString() var shouldAddIndexInProgressMessage: Boolean = false var shouldUseWorkspaceContext: Boolean = false - val isDataCollectionGroup = CodeWhispererFeatureConfigService.getInstance().getIsDataCollectionEnabled() val startUrl = getStartUrl(context.project) + val isInternalUser = isInternalUser(startUrl) if (prompt.contains("@workspace")) { if (CodeWhispererSettings.getInstance().isProjectContextEnabled()) { @@ -143,7 +143,9 @@ class ChatController private constructor( } else { sendOpenSettingsMessage(message.tabId) } - } else if (CodeWhispererSettings.getInstance().isProjectContextEnabled() && isDataCollectionGroup) { + } else if (CodeWhispererSettings.getInstance().isProjectContextEnabled() && isInternalUser) { + // if user does not have @workspace in the prompt, but user is Amazon internal + // add project context by default val projectContextController = ProjectContextController.getInstance(context.project) queryResult = projectContextController.query(prompt) } diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/userIntent/UserIntentRecognizer.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/userIntent/UserIntentRecognizer.kt index f15f0125e9f..9ee59c7d865 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/userIntent/UserIntentRecognizer.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/userIntent/UserIntentRecognizer.kt @@ -4,6 +4,7 @@ package software.aws.toolkits.jetbrains.services.cwc.controller.chat.userIntent import software.amazon.awssdk.services.codewhispererstreaming.model.UserIntent +import software.aws.toolkits.jetbrains.services.amazonq.isInternalUser import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteraction import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteractionType import software.aws.toolkits.jetbrains.services.cwc.clients.chat.model.FollowUpType @@ -25,7 +26,7 @@ class UserIntentRecognizer { prompt.startsWith("Refactor") -> UserIntent.SUGGEST_ALTERNATE_IMPLEMENTATION prompt.startsWith("Fix") -> UserIntent.APPLY_COMMON_BEST_PRACTICES prompt.startsWith("Optimize") -> UserIntent.IMPROVE_CODE - prompt.startsWith("Generate unit tests") && isInternalAmazonUser(startUrl) -> UserIntent.GENERATE_UNIT_TESTS + prompt.startsWith("Generate unit tests") && isInternalUser(startUrl) -> UserIntent.GENERATE_UNIT_TESTS else -> null } @@ -45,6 +46,4 @@ class UserIntentRecognizer { fun getUserIntentFromOnboardingPageInteraction(interaction: OnboardingPageInteraction) = when (interaction.type) { OnboardingPageInteractionType.CwcButtonClick -> null } - - private fun isInternalAmazonUser(startUrl: String?): Boolean = startUrl == "https://amzn.awsapps.com/start" } diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/CodeWhispererFeatureConfigService.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/CodeWhispererFeatureConfigService.kt index 16e4989e892..3f7903c680a 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/CodeWhispererFeatureConfigService.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/CodeWhispererFeatureConfigService.kt @@ -101,9 +101,6 @@ class CodeWhispererFeatureConfigService { // 6) Add a test case for this feature. fun getTestFeature(): String = getFeatureValueForKey(TEST_FEATURE_NAME).stringValue() - fun getIsDataCollectionEnabled(): Boolean = - getFeatureValueForKey(DATA_COLLECTION_FEATURE).stringValue() == "data-collection" - fun getCustomizationArnOverride(): String = getFeatureValueForKey(CUSTOMIZATION_ARN_OVERRIDE_NAME).stringValue() fun getNewAutoTriggerUX(): Boolean = getFeatureValueForKey(NEW_AUTO_TRIGGER_UX).stringValue() == "TREATMENT" @@ -120,7 +117,6 @@ class CodeWhispererFeatureConfigService { fun getInstance(): CodeWhispererFeatureConfigService = service() private const val TEST_FEATURE_NAME = "testFeature" private const val INLINE_COMPLETION = "ProjectContextV2" - private const val DATA_COLLECTION_FEATURE = "IDEProjectContextDataCollection" const val CUSTOMIZATION_ARN_OVERRIDE_NAME = "customizationArnOverride" private const val NEW_AUTO_TRIGGER_UX = "newAutoTriggerUX" private val LOG = getLogger() diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/QUtils.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/QUtils.kt index f6dea5c681e..59a11195ea7 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/QUtils.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/QUtils.kt @@ -14,6 +14,8 @@ import software.aws.toolkits.jetbrains.core.credentials.pinning.CodeWhispererCon import software.aws.toolkits.jetbrains.core.credentials.sono.isSono import software.aws.toolkits.jetbrains.services.telemetry.ClientMetadata +fun isInternalUser(startUrl: String?): Boolean = startUrl == "https://amzn.awsapps.com/start" + fun calculateIfIamIdentityCenterConnection(project: Project, calculationTask: (connection: ToolkitConnection) -> T): T? = ToolkitConnectionManager.getInstance(project).activeConnectionForFeature(CodeWhispererConnection.getInstance())?.let { calculateIfIamIdentityCenterConnection(it, calculationTask) diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/settings/CodeWhispererSettings.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/settings/CodeWhispererSettings.kt index 56ac020984d..e3d8ce370a4 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/settings/CodeWhispererSettings.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/settings/CodeWhispererSettings.kt @@ -11,7 +11,6 @@ import com.intellij.openapi.components.State import com.intellij.openapi.components.Storage import com.intellij.openapi.components.service import com.intellij.util.xmlb.annotations.Property -import software.aws.toolkits.jetbrains.services.amazonq.CodeWhispererFeatureConfigService @Service @State(name = "codewhispererSettings", storages = [Storage("aws.xml", roamingType = RoamingType.DISABLED)]) @@ -45,25 +44,19 @@ class CodeWhispererSettings : PersistentStateComponent Date: Sat, 26 Oct 2024 10:12:18 -0700 Subject: [PATCH 2/6] patch --- .../aws/toolkits/jetbrains/settings/CodeWhispererSettings.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/settings/CodeWhispererSettings.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/settings/CodeWhispererSettings.kt index e3d8ce370a4..c94a821f0c8 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/settings/CodeWhispererSettings.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/settings/CodeWhispererSettings.kt @@ -46,9 +46,9 @@ class CodeWhispererSettings : PersistentStateComponent Date: Sat, 26 Oct 2024 10:28:58 -0700 Subject: [PATCH 3/6] test --- .../CodeWhispererSettingsTest.kt | 40 +++++++++++++++++++ .../settings/CodeWhispererSettings.kt | 2 +- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/plugins/amazonq/codewhisperer/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererSettingsTest.kt b/plugins/amazonq/codewhisperer/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererSettingsTest.kt index e82b4f13a41..3a640c15bce 100644 --- a/plugins/amazonq/codewhisperer/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererSettingsTest.kt +++ b/plugins/amazonq/codewhisperer/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererSettingsTest.kt @@ -146,3 +146,43 @@ class CodeWhispererSettingsTest : CodeWhispererTestBase() { } } } + +class CodeWhispererSettingUnitTest { + private lateinit var sut: CodeWhispererSettings + + @Before + fun setUp() { + sut = CodeWhispererSettings() + sut.loadState(CodeWhispererConfiguration()) + } + + @Test + fun `projectContext is disabled by default`() { + assertThat(sut.isProjectContextEnabled()).isFalse + } + + @Test + fun `toggleProjectContext should set the value correct`() { + assertThat(sut.isProjectContextEnabled()).isFalse + + sut.toggleProjectContextEnabled(true) + assertThat(sut.isProjectContextEnabled()).isTrue + + sut.toggleProjectContextEnabled(false) + assertThat(sut.isProjectContextEnabled()).isFalse + } + + @Test + fun `toggleProjectContext should only set once on users behalf if passive is true`() { + assertThat(sut.isProjectContextEnabled()).isFalse + + sut.toggleProjectContextEnabled(true, passive = true) + assertThat(sut.isProjectContextEnabled()).isTrue + + sut.toggleProjectContextEnabled(false, passive = true) + assertThat(sut.isProjectContextEnabled()).isTrue + + sut.toggleProjectContextEnabled(false, passive = false) + assertThat(sut.isProjectContextEnabled()).isFalse + } +} diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/settings/CodeWhispererSettings.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/settings/CodeWhispererSettings.kt index c94a821f0c8..2176259dd29 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/settings/CodeWhispererSettings.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/settings/CodeWhispererSettings.kt @@ -48,7 +48,7 @@ class CodeWhispererSettings : PersistentStateComponent Date: Tue, 12 Nov 2024 11:31:22 -0800 Subject: [PATCH 4/6] lint --- .../services/amazonq/startup/AmazonQStartupActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/startup/AmazonQStartupActivity.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/startup/AmazonQStartupActivity.kt index 494bba95566..f9205f16dbc 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/startup/AmazonQStartupActivity.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/startup/AmazonQStartupActivity.kt @@ -23,8 +23,8 @@ import software.aws.toolkits.jetbrains.services.amazonq.project.ProjectContextCo import software.aws.toolkits.jetbrains.services.amazonq.toolwindow.AmazonQToolWindow import software.aws.toolkits.jetbrains.services.amazonq.toolwindow.AmazonQToolWindowFactory import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager -import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings import software.aws.toolkits.jetbrains.services.cwc.inline.InlineChatController +import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings import java.lang.management.ManagementFactory import java.time.Duration import java.util.concurrent.atomic.AtomicBoolean From c33fc65e4ef74ae04173c55ad83d0ad90ae0ad2b Mon Sep 17 00:00:00 2001 From: Will Lo Date: Wed, 13 Nov 2024 10:52:39 -0800 Subject: [PATCH 5/6] port isInternalUser to core module --- .../services/amazonq/startup/AmazonQStartupActivity.kt | 2 +- .../jetbrains/services/cwc/commands/GenerateUnitTestsAction.kt | 2 +- .../jetbrains/services/cwc/controller/ChatController.kt | 2 +- .../cwc/controller/chat/userIntent/UserIntentRecognizer.kt | 2 +- .../software/aws/toolkits/jetbrains/services/amazonq/QUtils.kt | 2 -- .../toolkits/jetbrains/core/credentials/sono/SonoConstants.kt | 2 ++ 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/startup/AmazonQStartupActivity.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/startup/AmazonQStartupActivity.kt index f9205f16dbc..e25f2d2f19e 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/startup/AmazonQStartupActivity.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/startup/AmazonQStartupActivity.kt @@ -17,8 +17,8 @@ import software.aws.toolkits.core.utils.warn import software.aws.toolkits.jetbrains.core.credentials.AwsBearerTokenConnection import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection +import software.aws.toolkits.jetbrains.core.credentials.sono.isInternalUser import software.aws.toolkits.jetbrains.core.gettingstarted.emitUserState -import software.aws.toolkits.jetbrains.services.amazonq.isInternalUser import software.aws.toolkits.jetbrains.services.amazonq.project.ProjectContextController import software.aws.toolkits.jetbrains.services.amazonq.toolwindow.AmazonQToolWindow import software.aws.toolkits.jetbrains.services.amazonq.toolwindow.AmazonQToolWindowFactory diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/commands/GenerateUnitTestsAction.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/commands/GenerateUnitTestsAction.kt index ab141f439ae..2c43378d454 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/commands/GenerateUnitTestsAction.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/commands/GenerateUnitTestsAction.kt @@ -9,7 +9,7 @@ import com.intellij.openapi.actionSystem.CommonDataKeys import software.aws.toolkits.jetbrains.core.credentials.AwsBearerTokenConnection import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection -import software.aws.toolkits.jetbrains.services.amazonq.isInternalUser +import software.aws.toolkits.jetbrains.core.credentials.sono.isInternalUser class GenerateUnitTestsAction : CustomAction(EditorContextCommand.GenerateUnitTests) { override fun getActionUpdateThread() = ActionUpdateThread.BGT diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/ChatController.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/ChatController.kt index 201a96bedce..8e58fc84d3a 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/ChatController.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/ChatController.kt @@ -36,10 +36,10 @@ import software.aws.toolkits.core.utils.getLogger import software.aws.toolkits.core.utils.info import software.aws.toolkits.core.utils.warn import software.aws.toolkits.jetbrains.core.coroutines.EDT +import software.aws.toolkits.jetbrains.core.credentials.sono.isInternalUser import software.aws.toolkits.jetbrains.services.amazonq.apps.AmazonQAppInitContext import software.aws.toolkits.jetbrains.services.amazonq.auth.AuthController import software.aws.toolkits.jetbrains.services.amazonq.auth.AuthNeededState -import software.aws.toolkits.jetbrains.services.amazonq.isInternalUser import software.aws.toolkits.jetbrains.services.amazonq.messages.MessagePublisher import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteraction import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteractionType diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/userIntent/UserIntentRecognizer.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/userIntent/UserIntentRecognizer.kt index 9ee59c7d865..39725dfc460 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/userIntent/UserIntentRecognizer.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/userIntent/UserIntentRecognizer.kt @@ -4,7 +4,7 @@ package software.aws.toolkits.jetbrains.services.cwc.controller.chat.userIntent import software.amazon.awssdk.services.codewhispererstreaming.model.UserIntent -import software.aws.toolkits.jetbrains.services.amazonq.isInternalUser +import software.aws.toolkits.jetbrains.core.credentials.sono.isInternalUser import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteraction import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteractionType import software.aws.toolkits.jetbrains.services.cwc.clients.chat.model.FollowUpType diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/QUtils.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/QUtils.kt index 59a11195ea7..f6dea5c681e 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/QUtils.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/QUtils.kt @@ -14,8 +14,6 @@ import software.aws.toolkits.jetbrains.core.credentials.pinning.CodeWhispererCon import software.aws.toolkits.jetbrains.core.credentials.sono.isSono import software.aws.toolkits.jetbrains.services.telemetry.ClientMetadata -fun isInternalUser(startUrl: String?): Boolean = startUrl == "https://amzn.awsapps.com/start" - fun calculateIfIamIdentityCenterConnection(project: Project, calculationTask: (connection: ToolkitConnection) -> T): T? = ToolkitConnectionManager.getInstance(project).activeConnectionForFeature(CodeWhispererConnection.getInstance())?.let { calculateIfIamIdentityCenterConnection(it, calculationTask) diff --git a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/sono/SonoConstants.kt b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/sono/SonoConstants.kt index 3c0af5211ed..2c9bd5941c1 100644 --- a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/sono/SonoConstants.kt +++ b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/sono/SonoConstants.kt @@ -34,3 +34,5 @@ fun ToolkitConnection?.isSono() = if (this == null) { } else { this is AwsBearerTokenConnection && this.startUrl == SONO_URL } + +fun isInternalUser(startUrl: String?): Boolean = startUrl == "https://amzn.awsapps.com/start" From f6da9e8c3e8a452e642299dd0235b141175b62a7 Mon Sep 17 00:00:00 2001 From: Will Lo Date: Wed, 13 Nov 2024 10:53:33 -0800 Subject: [PATCH 6/6] a --- .../services/amazonq/startup/AmazonQStartupActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/startup/AmazonQStartupActivity.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/startup/AmazonQStartupActivity.kt index e25f2d2f19e..58f5cd2fc75 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/startup/AmazonQStartupActivity.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/startup/AmazonQStartupActivity.kt @@ -37,7 +37,7 @@ class AmazonQStartupActivity : ProjectActivity { ToolkitConnectionManager.getInstance(project).activeConnectionForFeature(QConnection.getInstance())?.let { if (it is AwsBearerTokenConnection && isInternalUser(it.startUrl)) { - CodeWhispererSettings.getInstance().toggleProjectContextEnabled(true, passive = true) + CodeWhispererSettings.getInstance().toggleProjectContextEnabled(value = true, passive = true) } }