Skip to content

fix(amazonq): do not model types that are directly passthrough to chat ui #5702

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 9 commits into from
May 9, 2025
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
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 @@ -9,13 +9,10 @@ import org.eclipse.lsp4j.services.LanguageClient
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.LSPAny
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_SEND_CONTEXT_COMMANDS
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_SEND_UPDATE
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatUpdateParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GET_SERIALIZED_CHAT_REQUEST_METHOD
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GetSerializedChatParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GetSerializedChatResult
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OPEN_FILE_DIFF
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenFileDiffParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenTabParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenTabResult
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SHOW_SAVE_FILE_DIALOG_REQUEST_METHOD
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ShowSaveFileDialogParams
Expand All @@ -32,16 +29,16 @@ interface AmazonQLanguageClient : LanguageClient {
fun getConnectionMetadata(): CompletableFuture<ConnectionMetadata>

@JsonRequest("aws/chat/openTab")
fun openTab(params: OpenTabParams): CompletableFuture<OpenTabResult>
fun openTab(params: LSPAny): CompletableFuture<OpenTabResult>

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

@JsonRequest(GET_SERIALIZED_CHAT_REQUEST_METHOD)
fun getSerializedChat(params: GetSerializedChatParams): CompletableFuture<GetSerializedChatResult>
fun getSerializedChat(params: LSPAny): CompletableFuture<GetSerializedChatResult>

@JsonNotification(CHAT_SEND_UPDATE)
fun sendChatUpdate(params: ChatUpdateParams): CompletableFuture<Unit>
fun sendChatUpdate(params: LSPAny): CompletableFuture<Unit>

@JsonNotification(OPEN_FILE_DIFF)
fun openFileDiff(params: OpenFileDiffParams): CompletableFuture<Unit>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,9 @@
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_OPEN_TAB
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_SEND_CONTEXT_COMMANDS
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_SEND_UPDATE
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatUpdateParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GET_SERIALIZED_CHAT_REQUEST_METHOD
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GetSerializedChatParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GetSerializedChatResult
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenFileDiffParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenTabParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenTabResult
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ShowSaveFileDialogParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ShowSaveFileDialogResult
Expand Down Expand Up @@ -134,7 +131,7 @@
}
}

override fun openTab(params: OpenTabParams): CompletableFuture<OpenTabResult> {
override fun openTab(params: LSPAny): CompletableFuture<OpenTabResult> {
val requestId = UUID.randomUUID().toString()
val result = CompletableFuture<OpenTabResult>()
ChatCommunicationManager.pendingTabRequests[requestId] = result
Expand Down Expand Up @@ -185,7 +182,7 @@
)
}

override fun getSerializedChat(params: GetSerializedChatParams): CompletableFuture<GetSerializedChatResult> {
override fun getSerializedChat(params: LSPAny): CompletableFuture<GetSerializedChatResult> {
val requestId = UUID.randomUUID().toString()
val result = CompletableFuture<GetSerializedChatResult>()

Expand Down Expand Up @@ -260,7 +257,7 @@
}
}

override fun sendChatUpdate(params: ChatUpdateParams): CompletableFuture<Unit> {
override fun sendChatUpdate(params: LSPAny): CompletableFuture<Unit> {
AsyncChatUiListener.notifyPartialMessageUpdate(
FlareUiMessage(
command = CHAT_SEND_UPDATE,
Expand Down Expand Up @@ -343,7 +340,7 @@
AsyncChatUiListener.notifyPartialMessageUpdate(
FlareUiMessage(
command = CHAT_SEND_CONTEXT_COMMANDS,
params = params ?: error("received empty payload for $CHAT_SEND_CONTEXT_COMMANDS"),
params = params,

Check warning on line 343 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/AmazonQLanguageClientImpl.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L343 was not covered by tests
)
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ data class UpdateConfigurationParams(
val settings: LSPAny,
)

typealias LSPAny = Any?
typealias LSPAny = Any
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ enum class ButtonStatus {
ERROR,
}

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

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,6 @@ data class TabEventParams(
val tabId: String,
)

data class OpenTabParams(
val tabId: String? = null,
val newTabOptions: NewTabOptions? = null,
)

data class OpenTabResponse(
val requestId: String,
val command: String,
Expand All @@ -31,18 +26,3 @@ data class OpenTabResponseParams(
data class OpenTabResult(
val tabId: String,
)

data class NewTabOptions(
val state: TabState? = null,
val data: TabData? = null,
)

data class TabState(
val inProgress: Boolean? = null,
val cancellable: Boolean? = null,
)

data class TabData(
val placeholderText: String? = null,
val messages: List<ChatMessage>,
)
Loading