Skip to content

feat(amazonq): client emits messages on TabEvents #5574

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 23 commits into from
Apr 23, 2025
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
fe7738d
Set up Flare chat connection
manodnyab Apr 9, 2025
c09368c
Merge branch 'feature/q-lsp' into manodnyb/setupChatComponentsWithFlare
manodnyab Apr 9, 2025
9d037cf
Partial chat results
manodnyab Apr 9, 2025
e259071
Merge remote-tracking branch 'origin/manodnyb/setupChatComponentsWith…
manodnyab Apr 9, 2025
bc6823b
feedback
manodnyab Apr 10, 2025
b833b6c
resolved merge conflict
manodnyab Apr 10, 2025
fb9fd25
detekt
manodnyab Apr 10, 2025
46b9a82
Merge branch 'feature/q-lsp-chat' into manodnyb/setupChatComponentsWi…
manodnyab Apr 10, 2025
06dc03d
syntax error
manodnyab Apr 10, 2025
0f16cd4
Merge remote-tracking branch 'origin/manodnyb/setupChatComponentsWith…
manodnyab Apr 11, 2025
21e4885
detekt
manodnyab Apr 11, 2025
06e0966
detekt
manodnyab Apr 11, 2025
8640432
Add quick actions to chat
manodnyab Apr 11, 2025
930fff6
merge conflicts resolved
manodnyab Apr 14, 2025
28a199e
adding commands from initialize result
manodnyab Apr 14, 2025
8558948
add tabEvent message handling
samgst-amazon Apr 14, 2025
98a43b5
added trace logging
manodnyab Apr 14, 2025
8bdb1bc
Merge remote-tracking branch 'refs/remotes/origin/manodnyb/addQuickAc…
samgst-amazon Apr 14, 2025
f1d4fc4
configure param deserialization
samgst-amazon Apr 14, 2025
c3717d5
Merge remote-tracking branch 'origin/feature/q-lsp-chat' into samgst/…
samgst-amazon Apr 21, 2025
f48dfde
feedback
samgst-amazon Apr 21, 2025
d7c047c
Merge remote-tracking branch 'origin/feature/q-lsp-chat' into samgst/…
samgst-amazon Apr 22, 2025
96739b3
Merge remote-tracking branch 'origin/feature/q-lsp-chat' into samgst/…
samgst-amazon Apr 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_LINK_CLICK
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_QUICK_ACTION
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_SOURCE_LINK_CLICK
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_TAB_ADD
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_TAB_CHANGE
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_TAB_REMOVE
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatNotification
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatPrompt
Expand All @@ -47,6 +50,8 @@
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SendChatPromptRequest
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SourceLinkClickNotification
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SourceLinkClickParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.TabEventParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.TabEventRequest
import software.aws.toolkits.jetbrains.services.amazonq.util.command
import software.aws.toolkits.jetbrains.services.amazonq.util.tabType
import software.aws.toolkits.jetbrains.services.amazonq.webview.theme.AmazonQTheme
Expand Down Expand Up @@ -215,6 +220,22 @@

showResult(result, partialResultToken, tabId, encryptionManager, browser)
}
CHAT_TAB_ADD -> {
handleChatNotification<TabEventRequest, TabEventParams>(node) { server, params ->

Check warning on line 224 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L224 was not covered by tests
server.tabAdd(params)
}
}
CHAT_TAB_REMOVE -> {
handleChatNotification<TabEventRequest, TabEventParams>(node) { server, params ->

Check warning on line 229 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L229 was not covered by tests
chatCommunicationManager.removePartialChatMessage(params.tabId)
server.tabRemove(params)
}
}
CHAT_TAB_CHANGE -> {
handleChatNotification<TabEventRequest, TabEventParams>(node) { server, params ->

Check warning on line 235 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L235 was not covered by tests
server.tabChange(params)
}
}
CHAT_LINK_CLICK -> {
handleChatNotification<LinkClickNotification, LinkClickParams>(node) { server, params ->
server.linkClick(params)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,16 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_LINK_CLICK
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_QUICK_ACTION
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_SOURCE_LINK_CLICK
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_TAB_ADD
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_TAB_CHANGE
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_TAB_REMOVE
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedChatParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedQuickActionChatParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SEND_CHAT_COMMAND_PROMPT
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SourceLinkClickParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.TabEventParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.UpdateCredentialsPayload
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.DidChangeDependencyPathsParams
import java.util.concurrent.CompletableFuture
Expand Down Expand Up @@ -47,6 +51,15 @@ interface AmazonQLanguageServer : LanguageServer {
@JsonRequest(SEND_CHAT_COMMAND_PROMPT)
fun sendChatPrompt(params: EncryptedChatParams): CompletableFuture<String>

@JsonNotification(CHAT_TAB_ADD)
fun tabAdd(params: TabEventParams): CompletableFuture<Unit>

@JsonNotification(CHAT_TAB_REMOVE)
fun tabRemove(params: TabEventParams): CompletableFuture<Unit>

@JsonNotification(CHAT_TAB_CHANGE)
fun tabChange(params: TabEventParams): CompletableFuture<Unit>

@JsonRequest(CHAT_QUICK_ACTION)
fun sendQuickAction(params: EncryptedQuickActionChatParams): CompletableFuture<String>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ const val CHAT_QUICK_ACTION = "aws/chat/sendChatQuickAction"
const val CHAT_LINK_CLICK = "aws/chat/linkClick"
const val CHAT_INFO_LINK_CLICK = "aws/chat/infoLinkClick"
const val CHAT_SOURCE_LINK_CLICK = "aws/chat/sourceLinkClick"
const val CHAT_TAB_ADD = "aws/chat/tabAdd"
const val CHAT_TAB_CHANGE = "aws/chat/tabChange"
const val CHAT_TAB_REMOVE = "aws/chat/tabRemove"
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Copyright 2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

package software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat

data class TabEventRequest(
override val command: String,
override val params: TabEventParams,

Check warning on line 8 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/aws/chat/TabEvent.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/aws/chat/TabEvent.kt#L6-L8

Added lines #L6 - L8 were not covered by tests
) : ChatNotification<TabEventParams>

data class TabEventParams(
val tabId: String,

Check warning on line 12 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/aws/chat/TabEvent.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/aws/chat/TabEvent.kt#L11-L12

Added lines #L11 - L12 were not covered by tests
)
Loading