Skip to content

Commit 4af9d17

Browse files
committed
fix(amazonq): do not model types that are directly passthrough to chat ui
Due to mix of Jackson and Gson, history is not rendered correctly due to incorrect deserialization of enums
1 parent 7bc1baa commit 4af9d17

File tree

5 files changed

+7
-42
lines changed

5 files changed

+7
-42
lines changed

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

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,10 @@ import org.eclipse.lsp4j.services.LanguageClient
99
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.LSPAny
1010
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_SEND_CONTEXT_COMMANDS
1111
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_SEND_UPDATE
12-
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatUpdateParams
1312
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GET_SERIALIZED_CHAT_REQUEST_METHOD
14-
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GetSerializedChatParams
1513
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GetSerializedChatResult
1614
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OPEN_FILE_DIFF
1715
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenFileDiffParams
18-
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenTabParams
1916
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenTabResult
2017
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SHOW_SAVE_FILE_DIALOG_REQUEST_METHOD
2118
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ShowSaveFileDialogParams
@@ -32,16 +29,16 @@ interface AmazonQLanguageClient : LanguageClient {
3229
fun getConnectionMetadata(): CompletableFuture<ConnectionMetadata>
3330

3431
@JsonRequest("aws/chat/openTab")
35-
fun openTab(params: OpenTabParams): CompletableFuture<OpenTabResult>
32+
fun openTab(params: LSPAny): CompletableFuture<OpenTabResult>
3633

3734
@JsonRequest(SHOW_SAVE_FILE_DIALOG_REQUEST_METHOD)
3835
fun showSaveFileDialog(params: ShowSaveFileDialogParams): CompletableFuture<ShowSaveFileDialogResult>
3936

4037
@JsonRequest(GET_SERIALIZED_CHAT_REQUEST_METHOD)
41-
fun getSerializedChat(params: GetSerializedChatParams): CompletableFuture<GetSerializedChatResult>
38+
fun getSerializedChat(params: LSPAny): CompletableFuture<GetSerializedChatResult>
4239

4340
@JsonNotification(CHAT_SEND_UPDATE)
44-
fun sendChatUpdate(params: ChatUpdateParams): CompletableFuture<Unit>
41+
fun sendChatUpdate(params: LSPAny): CompletableFuture<Unit>
4542

4643
@JsonNotification(OPEN_FILE_DIFF)
4744
fun openFileDiff(params: OpenFileDiffParams): CompletableFuture<Unit>

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

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,9 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.LSPAny
3737
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_OPEN_TAB
3838
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_SEND_CONTEXT_COMMANDS
3939
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_SEND_UPDATE
40-
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatUpdateParams
4140
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GET_SERIALIZED_CHAT_REQUEST_METHOD
42-
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GetSerializedChatParams
4341
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GetSerializedChatResult
4442
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenFileDiffParams
45-
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenTabParams
4643
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenTabResult
4744
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ShowSaveFileDialogParams
4845
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ShowSaveFileDialogResult
@@ -133,7 +130,7 @@ class AmazonQLanguageClientImpl(private val project: Project) : AmazonQLanguageC
133130
}
134131
}
135132

136-
override fun openTab(params: OpenTabParams): CompletableFuture<OpenTabResult> {
133+
override fun openTab(params: LSPAny): CompletableFuture<OpenTabResult> {
137134
val requestId = UUID.randomUUID().toString()
138135
val result = CompletableFuture<OpenTabResult>()
139136
ChatCommunicationManager.pendingTabRequests[requestId] = result
@@ -185,7 +182,7 @@ class AmazonQLanguageClientImpl(private val project: Project) : AmazonQLanguageC
185182
)
186183
}
187184

188-
override fun getSerializedChat(params: GetSerializedChatParams): CompletableFuture<GetSerializedChatResult> {
185+
override fun getSerializedChat(params: LSPAny): CompletableFuture<GetSerializedChatResult> {
189186
val requestId = UUID.randomUUID().toString()
190187
val result = CompletableFuture<GetSerializedChatResult>()
191188

@@ -261,7 +258,7 @@ class AmazonQLanguageClientImpl(private val project: Project) : AmazonQLanguageC
261258
}
262259
}
263260

264-
override fun sendChatUpdate(params: ChatUpdateParams): CompletableFuture<Unit> {
261+
override fun sendChatUpdate(params: LSPAny): CompletableFuture<Unit> {
265262
val uiMessage = """
266263
{
267264
"command":"$CHAT_SEND_UPDATE",

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ enum class ButtonStatus {
142142
ERROR,
143143
}
144144

145+
// https://github.com/aws/language-server-runtimes/blame/68319c975d29a8ba9b084c9fa780ebff75b286bb/types/chat.ts#L127
145146
enum class MessageType {
146147
@JsonProperty("answer")
147148
ANSWER,

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

Lines changed: 0 additions & 10 deletions
This file was deleted.

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

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@ data class TabEventParams(
1212
val tabId: String,
1313
)
1414

15-
data class OpenTabParams(
16-
val tabId: String? = null,
17-
val newTabOptions: NewTabOptions? = null,
18-
)
19-
2015
data class OpenTabResponse(
2116
val requestId: String,
2217
val command: String,
@@ -31,18 +26,3 @@ data class OpenTabResponseParams(
3126
data class OpenTabResult(
3227
val tabId: String,
3328
)
34-
35-
data class NewTabOptions(
36-
val state: TabState? = null,
37-
val data: TabData? = null,
38-
)
39-
40-
data class TabState(
41-
val inProgress: Boolean? = null,
42-
val cancellable: Boolean? = null,
43-
)
44-
45-
data class TabData(
46-
val placeholderText: String? = null,
47-
val messages: List<ChatMessage>,
48-
)

0 commit comments

Comments
 (0)