Skip to content

Commit 775095f

Browse files
committed
move cwsprFeatureConfigService
1 parent 27da064 commit 775095f

File tree

39 files changed

+307
-204
lines changed

39 files changed

+307
-204
lines changed

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/startup/AmazonQStartupActivity.kt

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ import kotlinx.coroutines.time.withTimeout
1414
import software.aws.toolkits.core.utils.getLogger
1515
import software.aws.toolkits.core.utils.warn
1616
import software.aws.toolkits.jetbrains.core.gettingstarted.emitUserState
17+
import software.aws.toolkits.jetbrains.services.amazonq.project.ProjectContextController
1718
import software.aws.toolkits.jetbrains.services.amazonq.toolwindow.AmazonQToolWindow
1819
import software.aws.toolkits.jetbrains.services.amazonq.toolwindow.AmazonQToolWindowFactory
1920
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager
2021
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
21-
import software.aws.toolkits.jetbrains.services.amazonq.project.ProjectContextController
2222
import java.lang.management.ManagementFactory
2323
import java.time.Duration
2424
import java.util.concurrent.atomic.AtomicBoolean
@@ -47,26 +47,24 @@ class AmazonQStartupActivity : ProjectActivity {
4747
// Automatically start the project context LSP after some delay when average CPU load is below 30%.
4848
// The CPU load requirement is to avoid competing with native JetBrains indexing and other CPU expensive OS processes
4949
// In the future we will decouple LSP start and indexing start to let LSP perform other tasks.
50-
if (CodeWhispererSettings.getInstance().isProjectContextEnabled()) {
51-
val startLspIndexingDuration = Duration.ofMinutes(30)
52-
project.waitForSmartMode()
53-
try {
54-
withTimeout(startLspIndexingDuration) {
55-
while (true) {
56-
val cpuUsage = ManagementFactory.getOperatingSystemMXBean().systemLoadAverage
57-
if (cpuUsage > 0 && cpuUsage < 30) {
58-
ProjectContextController.getInstance(project = project)
59-
break
60-
} else {
61-
delay(60_000) // Wait for 60 seconds
62-
}
50+
val startLspIndexingDuration = Duration.ofMinutes(30)
51+
project.waitForSmartMode()
52+
try {
53+
withTimeout(startLspIndexingDuration) {
54+
while (true) {
55+
val cpuUsage = ManagementFactory.getOperatingSystemMXBean().systemLoadAverage
56+
if (cpuUsage > 0 && cpuUsage < 30) {
57+
ProjectContextController.getInstance(project = project)
58+
break
59+
} else {
60+
delay(60_000) // Wait for 60 seconds
6361
}
6462
}
65-
} catch (e: TimeoutCancellationException) {
66-
LOG.warn { "Failed to start LSP server due to time out" }
67-
} catch (e: Exception) {
68-
LOG.warn { "Failed to start LSP server" }
6963
}
64+
} catch (e: TimeoutCancellationException) {
65+
LOG.warn { "Failed to start LSP server due to time out" }
66+
} catch (e: Exception) {
67+
LOG.warn { "Failed to start LSP server" }
7068
}
7169
}
7270

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/clients/chat/model/Requests.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ package software.aws.toolkits.jetbrains.services.cwc.clients.chat.model
55

66
import com.fasterxml.jackson.annotation.JsonProperty
77
import software.amazon.awssdk.services.codewhispererstreaming.model.UserIntent
8-
import software.aws.toolkits.jetbrains.services.amazonq.models.QCustomization
9-
import software.aws.toolkits.jetbrains.services.cwc.editor.context.ActiveFileContext
8+
import software.aws.toolkits.jetbrains.services.amazonq.models.CodeWhispererCustomization
109
import software.aws.toolkits.jetbrains.services.amazonq.project.RelevantDocument
10+
import software.aws.toolkits.jetbrains.services.cwc.editor.context.ActiveFileContext
1111

1212
enum class TriggerType {
1313
Click,
@@ -22,7 +22,7 @@ data class ChatRequestData(
2222
val activeFileContext: ActiveFileContext,
2323
val userIntent: UserIntent?,
2424
val triggerType: TriggerType,
25-
val customization: QCustomization?,
25+
val customization: CodeWhispererCustomization?,
2626
val relevantTextDocuments: List<RelevantDocument>,
2727
val useRelevantDocuments: Boolean,
2828
)

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/clients/chat/v1/ChatSessionV1.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import software.aws.toolkits.jetbrains.core.AwsClientManager
4040
import software.aws.toolkits.jetbrains.core.coroutines.getCoroutineBgContext
4141
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
4242
import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection
43+
import software.aws.toolkits.jetbrains.services.amazonq.project.RelevantDocument
4344
import software.aws.toolkits.jetbrains.services.cwc.ChatConstants
4445
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.ChatSession
4546
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.exceptions.ChatApiException
@@ -51,7 +52,6 @@ import software.aws.toolkits.jetbrains.services.cwc.clients.chat.model.Reference
5152
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.model.SuggestedFollowUp
5253
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.model.Suggestion
5354
import software.aws.toolkits.jetbrains.services.cwc.editor.context.ActiveFileContext
54-
import software.aws.toolkits.jetbrains.services.amazonq.project.RelevantDocument
5555

5656
class ChatSessionV1(
5757
private val project: Project,

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/ChatController.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,16 @@ import software.aws.toolkits.core.utils.getLogger
3636
import software.aws.toolkits.core.utils.info
3737
import software.aws.toolkits.core.utils.warn
3838
import software.aws.toolkits.jetbrains.core.coroutines.EDT
39+
import software.aws.toolkits.jetbrains.services.amazonq.CodeWhispererFeatureConfigService
3940
import software.aws.toolkits.jetbrains.services.amazonq.apps.AmazonQAppInitContext
4041
import software.aws.toolkits.jetbrains.services.amazonq.auth.AuthController
4142
import software.aws.toolkits.jetbrains.services.amazonq.auth.AuthNeededState
4243
import software.aws.toolkits.jetbrains.services.amazonq.messages.MessagePublisher
4344
import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteraction
4445
import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteractionType
45-
import software.aws.toolkits.jetbrains.services.codewhisperer.service.CodeWhispererFeatureConfigService
46+
import software.aws.toolkits.jetbrains.services.amazonq.project.ProjectContextController
47+
import software.aws.toolkits.jetbrains.services.amazonq.project.RelevantDocument
4648
import software.aws.toolkits.jetbrains.services.codewhisperer.settings.CodeWhispererConfigurable
47-
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
4849
import software.aws.toolkits.jetbrains.services.codewhisperer.telemetry.CodeWhispererUserModificationTracker
4950
import software.aws.toolkits.jetbrains.services.cwc.InboundAppMessagesHandler
5051
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.exceptions.ChatApiException
@@ -65,8 +66,6 @@ import software.aws.toolkits.jetbrains.services.cwc.controller.chat.userIntent.U
6566
import software.aws.toolkits.jetbrains.services.cwc.editor.context.ActiveFileContext
6667
import software.aws.toolkits.jetbrains.services.cwc.editor.context.ActiveFileContextExtractor
6768
import software.aws.toolkits.jetbrains.services.cwc.editor.context.ExtractionTriggerType
68-
import software.aws.toolkits.jetbrains.services.amazonq.project.ProjectContextController
69-
import software.aws.toolkits.jetbrains.services.amazonq.project.RelevantDocument
7069
import software.aws.toolkits.jetbrains.services.cwc.messages.AuthNeededException
7170
import software.aws.toolkits.jetbrains.services.cwc.messages.ChatMessage
7271
import software.aws.toolkits.jetbrains.services.cwc.messages.ChatMessageType
@@ -79,6 +78,7 @@ import software.aws.toolkits.jetbrains.services.cwc.messages.OnboardingPageInter
7978
import software.aws.toolkits.jetbrains.services.cwc.messages.OpenSettingsMessage
8079
import software.aws.toolkits.jetbrains.services.cwc.messages.QuickActionMessage
8180
import software.aws.toolkits.jetbrains.services.cwc.storage.ChatSessionStorage
81+
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
8282
import software.aws.toolkits.telemetry.CwsprChatCommandType
8383
import java.time.Instant
8484
import java.util.UUID

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ import software.aws.toolkits.core.utils.getLogger
1313
import software.aws.toolkits.core.utils.info
1414
import software.aws.toolkits.core.utils.warn
1515
import software.aws.toolkits.jetbrains.services.amazonq.apps.AmazonQAppInitContext
16-
import software.aws.toolkits.jetbrains.services.amazonq.models.QCustomization
16+
import software.aws.toolkits.jetbrains.services.amazonq.models.CodeWhispererCustomization
1717
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor
1818
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
19-
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
2019
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.model.ChatRequestData
2120
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.model.TriggerType
2221
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.v1.ChatSessionV1
@@ -26,6 +25,7 @@ import software.aws.toolkits.jetbrains.services.cwc.messages.IncomingCwcMessage
2625
import software.aws.toolkits.jetbrains.services.cwc.messages.LinkType
2726
import software.aws.toolkits.jetbrains.services.cwc.storage.ChatSessionStorage
2827
import software.aws.toolkits.jetbrains.services.telemetry.TelemetryService
28+
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
2929
import software.aws.toolkits.jetbrains.utils.notifyError
3030
import software.aws.toolkits.resources.message
3131
import software.aws.toolkits.telemetry.AmazonqTelemetry
@@ -45,7 +45,7 @@ class TelemetryHelper(private val context: AmazonQAppInitContext, private val se
4545
private val responseStreamTimeForChunks: MutableMap<String, MutableList<Instant>> = mutableMapOf()
4646
private val responseHasProjectContext: MutableMap<String, Boolean> = mutableMapOf()
4747

48-
private val customization: QCustomization?
48+
private val customization: CodeWhispererCustomization?
4949
get() = CodeWhispererModelConfigurator.getInstance().activeCustomization(context.project)
5050

5151
fun getConversationId(tabId: String): String? = sessionStorage.getSession(tabId)?.session?.conversationId

plugins/amazonq/chat/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/TelemetryHelperTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,9 @@ import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
4040
import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection
4141
import software.aws.toolkits.jetbrains.core.credentials.sono.Q_SCOPES
4242
import software.aws.toolkits.jetbrains.services.amazonq.apps.AmazonQAppInitContext
43+
import software.aws.toolkits.jetbrains.services.amazonq.models.CodeWhispererCustomization
4344
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor
44-
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
4545
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
46-
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
4746
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.ChatSession
4847
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.model.ChatRequestData
4948
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.model.CodeNamesImpl
@@ -63,6 +62,7 @@ import software.aws.toolkits.jetbrains.services.cwc.messages.LinkType
6362
import software.aws.toolkits.jetbrains.services.cwc.storage.ChatSessionInfo
6463
import software.aws.toolkits.jetbrains.services.cwc.storage.ChatSessionStorage
6564
import software.aws.toolkits.jetbrains.services.telemetry.MockTelemetryServiceExtension
65+
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
6666
import software.aws.toolkits.telemetry.CwsprChatConversationType
6767
import software.aws.toolkits.telemetry.CwsprChatInteractionType
6868
import software.aws.toolkits.telemetry.CwsprChatTriggerInteraction

plugins/amazonq/chat/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/workspace/context/ProjectContextProviderTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ class ProjectContextProviderTest {
5151
fun `test query payload is encrypted`() = runTest {
5252
whenever(encoderServer.port).thenReturn(3000)
5353
try {
54-
sut.query("what does this project do")
54+
sut.queryChat("what does this project do")
5555
} catch (e: ConnectException) {
5656
// no-op
5757
}

plugins/amazonq/codewhisperer/jetbrains-community/src/migration/software/aws/toolkits/jetbrains/services/codewhisperer/customization/CodeWhispererModelConfigurator.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ package migration.software.aws.toolkits.jetbrains.services.codewhisperer.customi
55

66
import com.intellij.openapi.components.service
77
import com.intellij.openapi.project.Project
8-
import software.aws.toolkits.jetbrains.services.amazonq.models.QCustomization
8+
import software.aws.toolkits.jetbrains.services.amazonq.models.CodeWhispererCustomization
99
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CustomizationUiItem
1010

1111
// A component responsible managing client's codewhisperer model configuration (currently customization feature only support enterprise tier users)
@@ -14,9 +14,9 @@ interface CodeWhispererModelConfigurator {
1414

1515
fun listCustomizations(project: Project, passive: Boolean = false): List<CustomizationUiItem>?
1616

17-
fun activeCustomization(project: Project): QCustomization?
17+
fun activeCustomization(project: Project): CodeWhispererCustomization?
1818

19-
fun switchCustomization(project: Project, newCustomization: QCustomization?)
19+
fun switchCustomization(project: Project, newCustomization: CodeWhispererCustomization?)
2020

2121
/**
2222
* This method is only used for invalidate a stale customization which was previously active but was removed, it will remove all usage of this customization

0 commit comments

Comments
 (0)