Skip to content

Commit 94cc915

Browse files
committed
update
1 parent c03620f commit 94cc915

File tree

2 files changed

+53
-11
lines changed
  • plugins/amazonq
    • chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview
    • shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/aws/chat

2 files changed

+53
-11
lines changed

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

Lines changed: 52 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import kotlinx.coroutines.launch
2323
import org.cef.browser.CefBrowser
2424
import org.eclipse.lsp4j.Position
2525
import org.eclipse.lsp4j.Range
26+
import software.aws.toolkits.core.utils.error
2627
import software.aws.toolkits.core.utils.getLogger
2728
import software.aws.toolkits.core.utils.warn
2829
import software.aws.toolkits.jetbrains.services.amazonq.apps.AppConnection
@@ -90,6 +91,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.Promp
9091
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PromptInputOptionChangeParams
9192
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.QuickChatActionRequest
9293
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SEND_CHAT_COMMAND_PROMPT
94+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_ERROR_MESSAGE
9395
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SendChatPromptRequest
9496
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SourceLinkClickNotification
9597
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SourceLinkClickParams
@@ -270,14 +272,21 @@ class BrowserConnector(
270272
server.listConversations(requestFromUi.params)
271273
} ?: (CompletableFuture.failedFuture(IllegalStateException("LSP Server not running")))
272274

273-
result.whenComplete { response, _ ->
274-
val uiMessage = """
275+
result.whenComplete { response, error ->
276+
try {
277+
if (error != null) {
278+
throw error
279+
}
280+
val uiMessage = """
275281
{
276282
"command": "$CHAT_LIST_CONVERSATIONS",
277283
"params": ${Gson().toJson(response)}
278284
}
279285
""".trimIndent()
280-
browser.postChat(uiMessage)
286+
browser.postChat(uiMessage)
287+
} catch (e: Exception) {
288+
LOG.error { "Failed to perform list conversation $e" }
289+
}
281290
}
282291
}
283292
CHAT_CONVERSATION_CLICK -> {
@@ -286,14 +295,21 @@ class BrowserConnector(
286295
server.conversationClick(requestFromUi.params)
287296
} ?: (CompletableFuture.failedFuture(IllegalStateException("LSP Server not running")))
288297

289-
result.whenComplete { response, _ ->
290-
val uiMessage = """
298+
result.whenComplete { response, error ->
299+
try {
300+
if (error != null) {
301+
throw error
302+
}
303+
val uiMessage = """
291304
{
292305
"command": "$CHAT_CONVERSATION_CLICK",
293306
"params": ${Gson().toJson(response)}
294307
}
295308
""".trimIndent()
296-
browser.postChat(uiMessage)
309+
browser.postChat(uiMessage)
310+
} catch (e: Exception) {
311+
LOG.error { "Failed to perform conversation click $e" }
312+
}
297313
}
298314
}
299315
CHAT_FEEDBACK -> {
@@ -403,8 +419,26 @@ class BrowserConnector(
403419
server, params ->
404420
val result = server.tabBarActions(params)
405421
result.whenComplete { params1, error ->
406-
val res = ChatCommunicationManager.convertNotificationToJsonForChat(CHAT_TAB_BAR_ACTIONS, params1)
407-
browser.postChat(res)
422+
try {
423+
if (error != null) {
424+
throw error
425+
}
426+
val res = ChatCommunicationManager.convertNotificationToJsonForChat(CHAT_TAB_BAR_ACTIONS, params1)
427+
browser.postChat(res)
428+
} catch (e: Exception) {
429+
LOG.error { "Failed to perform chat tab bar action $e" }
430+
if (params.tabId != null) {
431+
browser.postChat(
432+
ChatCommunicationManager.convertToJsonToSendToChat(
433+
CHAT_ERROR_MESSAGE,
434+
params.tabId.toString(),
435+
"",
436+
isPartialResult = false
437+
)
438+
)
439+
}
440+
441+
}
408442
}
409443
}
410444
}
@@ -437,9 +471,17 @@ class BrowserConnector(
437471
isPartialResult = false
438472
)
439473
browser.postChat(messageToChat)
440-
441474
} catch (e: Exception) {
442-
475+
LOG.error { "Failed to send chat message $e" }
476+
chatCommunicationManager.removePartialChatMessage(partialResultToken)
477+
browser.postChat(
478+
ChatCommunicationManager.convertToJsonToSendToChat(
479+
CHAT_ERROR_MESSAGE,
480+
tabId,
481+
encryptionManager?.decrypt(value).orEmpty(),
482+
isPartialResult = false
483+
)
484+
)
443485
}
444486
}
445487
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,4 @@ const val CHAT_SEND_UPDATE = "aws/chat/sendChatUpdate"
3131
const val CHAT_CREATE_PROMPT = "aws/chat/createPrompt"
3232
const val SHOW_SAVE_FILE_DIALOG_REQUEST_METHOD = "aws/showSaveFileDialog"
3333
const val GET_SERIALIZED_CHAT_REQUEST_METHOD = "aws/chat/getSerializedChat"
34-
const val CHAT_ERROR_PARAMS = "errorMessage"
34+
const val CHAT_ERROR_MESSAGE = "errorMessage"

0 commit comments

Comments
 (0)