Skip to content

Commit 094ad8e

Browse files
committed
Add toggle for basic vs pair programming mode
1 parent d215249 commit 094ad8e

File tree

7 files changed

+54
-3
lines changed

7 files changed

+54
-3
lines changed

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,12 @@ class Browser(parent: Disposable, private val webUri: URI, val project: Project)
128128
},
129129
{
130130
quickActionCommands: $quickActionConfig,
131-
disclaimerAcknowledged: ${MeetQSettings.getInstance().disclaimerAcknowledged}
132-
}
131+
disclaimerAcknowledged: ${MeetQSettings.getInstance().disclaimerAcknowledged},
132+
pairProgrammingAcknowledged: ${!MeetQSettings.getInstance().amazonQChatPairProgramming}
133+
},
134+
null,
135+
{}
136+
133137
);
134138
}
135139
</script>

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.ChatCommun
3030
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.getTextDocumentIdentifier
3131
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INFO_LINK_CLICK
3232
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_LINK_CLICK
33+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_PROMPT_OPTION_ACKNOWLEDGED
3334
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_QUICK_ACTION
3435
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_SOURCE_LINK_CLICK
3536
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatNotification
@@ -42,6 +43,9 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoL
4243
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickParams
4344
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickNotification
4445
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickParams
46+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PROMPT_INPUT_OPTIONS_CHANGE
47+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PromptInputOptionChangeNotification
48+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PromptInputOptionChangeParams
4549
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.QuickChatActionRequest
4650
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SEND_CHAT_COMMAND_PROMPT
4751
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SendChatPromptRequest
@@ -232,6 +236,20 @@ class BrowserConnector(
232236
server.sourceLinkClick(params)
233237
}
234238
}
239+
240+
PROMPT_INPUT_OPTIONS_CHANGE -> {
241+
handleChatNotification<PromptInputOptionChangeNotification, PromptInputOptionChangeParams>(node) {
242+
server, params ->
243+
server.promptInputOptionsChange(params)
244+
}
245+
}
246+
247+
CHAT_PROMPT_OPTION_ACKNOWLEDGED -> {
248+
val acknowledgedMessage = node.get("params").get("messageId")
249+
if (acknowledgedMessage.asText() == "programmerModeCardId") {
250+
MeetQSettings.getInstance().amazonQChatPairProgramming = false
251+
}
252+
}
235253
}
236254
}
237255

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.Encry
1818
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedQuickActionChatParams
1919
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickParams
2020
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickParams
21+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PROMPT_INPUT_OPTIONS_CHANGE
22+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PromptInputOptionChangeParams
2123
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SEND_CHAT_COMMAND_PROMPT
2224
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SourceLinkClickParams
2325
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.UpdateCredentialsPayload
@@ -58,4 +60,7 @@ interface AmazonQLanguageServer : LanguageServer {
5860

5961
@JsonNotification(CHAT_SOURCE_LINK_CLICK)
6062
fun sourceLinkClick(params: SourceLinkClickParams): CompletableFuture<Unit>
63+
64+
@JsonNotification(PROMPT_INPUT_OPTIONS_CHANGE)
65+
fun promptInputOptionsChange(params: PromptInputOptionChangeParams): CompletableFuture<Unit>
6166
}

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/artifacts/ArtifactManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class ArtifactManager(
3232

3333
companion object {
3434
private val DEFAULT_VERSION_RANGE = SupportedManifestVersionRange(
35-
startVersion = SemVer("1.0.0", 1, 0, 0),
35+
startVersion = SemVer("0.0.0", 0, 0, 0),
3636
endVersion = SemVer("2.0.0", 2, 0, 0)
3737
)
3838
private val logger = getLogger<ArtifactManager>()

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/aws/chat/FlareChatCommands.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,5 @@ const val CHAT_QUICK_ACTION = "aws/chat/sendChatQuickAction"
88
const val CHAT_LINK_CLICK = "aws/chat/linkClick"
99
const val CHAT_INFO_LINK_CLICK = "aws/chat/infoLinkClick"
1010
const val CHAT_SOURCE_LINK_CLICK = "aws/chat/sourceLinkClick"
11+
const val PROMPT_INPUT_OPTIONS_CHANGE = "aws/chat/promptInputOptionChange"
12+
const val CHAT_PROMPT_OPTION_ACKNOWLEDGED = "chatPromptOptionAcknowledged"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Copyright 2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
package software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat
5+
6+
data class PromptInputOptionChangeParams(
7+
val tabId: String,
8+
val optionsValues: Map<String, String>,
9+
val eventId: String? = null,
10+
)
11+
12+
data class PromptInputOptionChangeNotification(
13+
override val command: String,
14+
override val params: PromptInputOptionChangeParams,
15+
) : ChatNotification<PromptInputOptionChangeParams>

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/settings/MeetQSettings.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,12 @@ class MeetQSettings : PersistentStateComponent<MeetQSettingsConfiguration> {
3838
state.disclaimerAcknowledged = value
3939
}
4040

41+
var amazonQChatPairProgramming: Boolean
42+
get() = state.amazonQChatPairProgramming
43+
set(value) {
44+
state.amazonQChatPairProgramming = value
45+
}
46+
4147
companion object {
4248
fun getInstance(): MeetQSettings = service()
4349
}
@@ -46,4 +52,5 @@ data class MeetQSettingsConfiguration(
4652
var shouldDisplayPage: Boolean = true,
4753
var reinvent2024OnboardingCount: Int = 0,
4854
var disclaimerAcknowledged: Boolean = false,
55+
var amazonQChatPairProgramming: Boolean = false,
4956
)

0 commit comments

Comments
 (0)