33
44package software.aws.toolkits.jetbrains.services.amazonq.lsp
55
6+ import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
67import com.intellij.notification.NotificationType
78import com.intellij.openapi.project.Project
89import migration.software.aws.toolkits.jetbrains.settings.AwsSettings
@@ -16,9 +17,11 @@ import org.eclipse.lsp4j.ShowMessageRequestParams
1617import software.aws.toolkits.jetbrains.core.credentials.AwsBearerTokenConnection
1718import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
1819import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection
20+ import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.AsyncChatUiListener
1921import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.ChatCommunicationManager
2022import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenTabParams
2123import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenTabResult
24+ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_OPEN_TAB
2225import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.ConnectionMetadata
2326import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.SsoProfileData
2427import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
@@ -76,9 +79,24 @@ class AmazonQLanguageClientImpl(private val project: Project) : AmazonQLanguageC
7679 }
7780 }
7881
79- override fun openTab (params : OpenTabParams ): CompletableFuture <OpenTabResult > =
80- // TODO implement chat history, this is here to unblock chat functionality
81- CompletableFuture .completedFuture(OpenTabResult (" " ))
82+ override fun openTab (params : OpenTabParams ): CompletableFuture <OpenTabResult > {
83+ val tabId = params.tabId.orEmpty()
84+
85+ // Convert params to JSON to send to the UI
86+ val paramsJson = jacksonObjectMapper().writeValueAsString(params)
87+
88+ val uiMessage = ChatCommunicationManager .convertToJsonToSendToChat(
89+ command = CHAT_OPEN_TAB ,
90+ tabId = tabId,
91+ params = paramsJson,
92+ isPartialResult = false
93+ )
94+
95+ AsyncChatUiListener .notifyPartialMessageUpdate(uiMessage)
96+
97+ // Return the tabId (either existing or newly created)
98+ return CompletableFuture .completedFuture(OpenTabResult (tabId))
99+ }
82100
83101 override fun configuration (params : ConfigurationParams ): CompletableFuture <List <Any >> {
84102 if (params.items.isEmpty()) {
0 commit comments