Skip to content

Commit 2e025dc

Browse files
authored
feat(amazonq): Add history and export options to chat tab (#5656)
* initial * Show options to for chat history and export in tab bar
1 parent 3116734 commit 2e025dc

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

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

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
// Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
// SPDX-License-Identifier: Apache-2.0
3-
3+
@file:Suppress("BannedImports")
44
package software.aws.toolkits.jetbrains.services.amazonq.webview
55

66
import com.fasterxml.jackson.databind.JsonNode
7+
import com.google.gson.Gson
78
import com.intellij.ide.BrowserUtil
89
import com.intellij.ide.util.RunOnceUtil
910
import com.intellij.openapi.project.Project
@@ -28,6 +29,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.commands.MessageSerializ
2829
import software.aws.toolkits.jetbrains.services.amazonq.lsp.AmazonQLanguageServer
2930
import software.aws.toolkits.jetbrains.services.amazonq.lsp.AmazonQLspService
3031
import software.aws.toolkits.jetbrains.services.amazonq.lsp.encryption.JwtEncryptionManager
32+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.AwsServerCapabilitiesProvider
3133
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.ChatCommunicationManager
3234
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.getTextDocumentIdentifier
3335
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ButtonClickNotification
@@ -146,6 +148,14 @@ class BrowserConnector(
146148
// Wait for UI ready before starting to send messages to the UI.
147149
uiReady.await()
148150

151+
// Chat options including history and quick actions need to be sent in once UI is ready
152+
val showChatOptions = """{
153+
"command": "chatOptions",
154+
"params": ${Gson().toJson(AwsServerCapabilitiesProvider.getInstance(project).getChatOptions())}
155+
}
156+
""".trimIndent()
157+
browser.postChat(showChatOptions)
158+
149159
// Send inbound messages to the browser
150160
val inboundMessages = connections.map { it.messagesFromAppToUi.flow }.merge()
151161
inboundMessages

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ class AwsServerCapabilitiesProvider {
3030
)
3131
)
3232
)
33-
)
33+
),
34+
history = true,
35+
export = true
3436
)
3537
}
3638
}
@@ -41,6 +43,8 @@ data class AwsServerCapabilities(
4143

4244
data class ChatOptions(
4345
val quickActions: QuickActions,
46+
val history: Boolean,
47+
val export: Boolean,
4448
)
4549

4650
data class QuickActions(

0 commit comments

Comments
 (0)