Skip to content

Commit 74f5e09

Browse files
Merge branch 'feature/q-lsp-chat' into samgst/q-lsp-chat-openTab
2 parents dcab88d + a05d2c0 commit 74f5e09

File tree

7 files changed

+55
-3
lines changed

7 files changed

+55
-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: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_
3838
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FOLLOW_UP_CLICK
3939
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INFO_LINK_CLICK
4040
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_LINK_CLICK
41+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_PROMPT_OPTION_ACKNOWLEDGED
4142
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_QUICK_ACTION
4243
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_READY
4344
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_SOURCE_LINK_CLICK
@@ -59,6 +60,9 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoL
5960
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickParams
6061
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickNotification
6162
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickParams
63+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PROMPT_INPUT_OPTIONS_CHANGE
64+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PromptInputOptionChangeNotification
65+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PromptInputOptionChangeParams
6266
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.QuickChatActionRequest
6367
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SEND_CHAT_COMMAND_PROMPT
6468
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SendChatPromptRequest
@@ -277,6 +281,21 @@ class BrowserConnector(
277281
server.sourceLinkClick(params)
278282
}
279283
}
284+
285+
PROMPT_INPUT_OPTIONS_CHANGE -> {
286+
handleChatNotification<PromptInputOptionChangeNotification, PromptInputOptionChangeParams>(node) {
287+
server, params ->
288+
server.promptInputOptionsChange(params)
289+
}
290+
}
291+
292+
CHAT_PROMPT_OPTION_ACKNOWLEDGED -> {
293+
val acknowledgedMessage = node.get("params").get("messageId")
294+
if (acknowledgedMessage.asText() == "programmerModeCardId") {
295+
MeetQSettings.getInstance().amazonQChatPairProgramming = false
296+
}
297+
}
298+
280299
CHAT_FOLLOW_UP_CLICK -> {
281300
handleChatNotification<FollowUpClickNotification, FollowUpClickParams>(node) { server, params ->
282301
server.followUpClick(params)

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
@@ -29,6 +29,8 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.Feedb
2929
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FollowUpClickParams
3030
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickParams
3131
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickParams
32+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PROMPT_INPUT_OPTIONS_CHANGE
33+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PromptInputOptionChangeParams
3234
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SEND_CHAT_COMMAND_PROMPT
3335
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SourceLinkClickParams
3436
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.TabEventParams
@@ -86,6 +88,9 @@ interface AmazonQLanguageServer : LanguageServer {
8688
@JsonNotification(CHAT_SOURCE_LINK_CLICK)
8789
fun sourceLinkClick(params: SourceLinkClickParams): CompletableFuture<Unit>
8890

91+
@JsonNotification(PROMPT_INPUT_OPTIONS_CHANGE)
92+
fun promptInputOptionsChange(params: PromptInputOptionChangeParams): CompletableFuture<Unit>
93+
8994
@JsonNotification(CHAT_FOLLOW_UP_CLICK)
9095
fun followUpClick(params: FollowUpClickParams): CompletableFuture<Unit>
9196

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
@@ -9,6 +9,8 @@ const val CHAT_READY = "aws/chat/ready"
99
const val CHAT_LINK_CLICK = "aws/chat/linkClick"
1010
const val CHAT_INFO_LINK_CLICK = "aws/chat/infoLinkClick"
1111
const val CHAT_SOURCE_LINK_CLICK = "aws/chat/sourceLinkClick"
12+
const val PROMPT_INPUT_OPTIONS_CHANGE = "aws/chat/promptInputOptionChange"
13+
const val CHAT_PROMPT_OPTION_ACKNOWLEDGED = "chatPromptOptionAcknowledged"
1214
const val CHAT_FEEDBACK = "aws/chat/feedback"
1315
const val CHAT_FOLLOW_UP_CLICK = "aws/chat/followUpClick"
1416
const val CHAT_TAB_ADD = "aws/chat/tabAdd"
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)