Skip to content

Commit a50abba

Browse files
feat(amazonq): client emits feedback message for chat response feedback (#5607)
* Set up Flare chat connection * Partial chat results * feedback * detekt * syntax error * detekt * detekt * Add quick actions to chat * adding commands from initialize result * added trace logging * add feedback message * detekt * feedback * missing license * remove showResult call * detekt --------- Co-authored-by: Manodnya Bhoite <[email protected]> Co-authored-by: manodnyab <[email protected]>
1 parent b3521c0 commit a50abba

File tree

4 files changed

+36
-0
lines changed

4 files changed

+36
-0
lines changed

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.AmazonQLspService
2828
import software.aws.toolkits.jetbrains.services.amazonq.lsp.encryption.JwtEncryptionManager
2929
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.ChatCommunicationManager
3030
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.getTextDocumentIdentifier
31+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FEEDBACK
3132
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INFO_LINK_CLICK
3233
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_LINK_CLICK
3334
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_QUICK_ACTION
@@ -40,6 +41,8 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatR
4041
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CursorState
4142
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedChatParams
4243
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedQuickActionChatParams
44+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FeedbackNotification
45+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FeedbackParams
4346
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickNotification
4447
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickParams
4548
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickNotification
@@ -217,6 +220,11 @@ class BrowserConnector(
217220

218221
showResult(result, partialResultToken, tabId, encryptionManager, browser)
219222
}
223+
CHAT_FEEDBACK -> {
224+
handleChatNotification<FeedbackNotification, FeedbackParams>(node) { server, params ->
225+
server.feedback(params)
226+
}
227+
}
220228
CHAT_READY -> {
221229
handleChatNotification<ChatReadyNotification, Unit>(node) { server, _ ->
222230
server.chatReady()

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
@@ -10,13 +10,15 @@ import org.eclipse.lsp4j.services.LanguageServer
1010
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.GetConfigurationFromServerParams
1111
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.LspServerConfigurations
1212
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.UpdateConfigurationParams
13+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FEEDBACK
1314
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INFO_LINK_CLICK
1415
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_LINK_CLICK
1516
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_QUICK_ACTION
1617
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_READY
1718
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_SOURCE_LINK_CLICK
1819
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedChatParams
1920
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedQuickActionChatParams
21+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FeedbackParams
2022
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickParams
2123
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickParams
2224
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SEND_CHAT_COMMAND_PROMPT
@@ -51,6 +53,9 @@ interface AmazonQLanguageServer : LanguageServer {
5153
@JsonRequest(CHAT_QUICK_ACTION)
5254
fun sendQuickAction(params: EncryptedQuickActionChatParams): CompletableFuture<String>
5355

56+
@JsonNotification(CHAT_FEEDBACK)
57+
fun feedback(params: FeedbackParams): CompletableFuture<Unit>
58+
5459
@JsonNotification(CHAT_READY)
5560
fun chatReady(): CompletableFuture<Unit>
5661

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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 FeedbackNotification(
7+
override val command: String,
8+
override val params: FeedbackParams,
9+
) : ChatNotification<FeedbackParams>
10+
11+
data class FeedbackParams(
12+
val tabId: String,
13+
val feedbackPayload: FeedbackPayload,
14+
val eventId: String?,
15+
)
16+
17+
data class FeedbackPayload(
18+
val messageId: String,
19+
val tabId: String,
20+
val selectedOption: String,
21+
val comment: String? = null,
22+
)

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ 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 CHAT_FEEDBACK = "aws/chat/feedback"

0 commit comments

Comments
 (0)