@@ -23,6 +23,7 @@ import kotlinx.coroutines.launch
2323import org.cef.browser.CefBrowser
2424import org.eclipse.lsp4j.Position
2525import org.eclipse.lsp4j.Range
26+ import software.aws.toolkits.core.utils.error
2627import software.aws.toolkits.core.utils.getLogger
2728import software.aws.toolkits.core.utils.warn
2829import software.aws.toolkits.jetbrains.services.amazonq.apps.AppConnection
@@ -90,6 +91,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.Promp
9091import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PromptInputOptionChangeParams
9192import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.QuickChatActionRequest
9293import 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
9395import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SendChatPromptRequest
9496import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SourceLinkClickNotification
9597import 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 }
0 commit comments