in plugin/src/software/aws/toolkits/eclipse/amazonq/chat/ChatCommunicationManager.java [86:154]
public void sendMessageToChatServer(final Command command, final Object params) {
chatMessageProvider.thenAcceptAsync(chatMessageProvider -> {
try {
switch (command) {
case CHAT_SEND_PROMPT:
ChatRequestParams chatRequestParams = jsonHandler.convertObject(params, ChatRequestParams.class);
chatRequestParams.setContext(chatRequestParams.getPrompt().context());
addEditorState(chatRequestParams, true);
sendEncryptedChatMessage(chatRequestParams.getTabId(), token -> {
String encryptedMessage = lspEncryptionManager.encrypt(chatRequestParams);
EncryptedChatParams encryptedChatRequestParams = new EncryptedChatParams(encryptedMessage,
token);
return chatMessageProvider.sendChatPrompt(chatRequestParams.getTabId(),
encryptedChatRequestParams);
});
break;
case CHAT_QUICK_ACTION:
QuickActionParams quickActionParams = jsonHandler.convertObject(params, QuickActionParams.class);
sendEncryptedChatMessage(quickActionParams.getTabId(), token -> {
String encryptedMessage = lspEncryptionManager.encrypt(quickActionParams);
EncryptedQuickActionParams encryptedQuickActionParams = new EncryptedQuickActionParams(
encryptedMessage, token);
return chatMessageProvider.sendQuickAction(quickActionParams.getTabId(),
encryptedQuickActionParams);
});
break;
case CHAT_READY:
chatMessageProvider.sendChatReady();
break;
case CHAT_TAB_ADD:
GenericTabParams tabParamsForAdd = jsonHandler.convertObject(params, GenericTabParams.class);
chatMessageProvider.sendTabAdd(tabParamsForAdd);
break;
case CHAT_TAB_REMOVE:
GenericTabParams tabParamsForRemove = jsonHandler.convertObject(params, GenericTabParams.class);
chatMessageProvider.sendTabRemove(tabParamsForRemove);
break;
case CHAT_TAB_CHANGE:
GenericTabParams tabParamsForChange = jsonHandler.convertObject(params, GenericTabParams.class);
chatMessageProvider.sendTabChange(tabParamsForChange);
break;
case CHAT_FOLLOW_UP_CLICK:
FollowUpClickParams followUpClickParams = jsonHandler.convertObject(params,
FollowUpClickParams.class);
chatMessageProvider.followUpClick(followUpClickParams);
break;
case CHAT_END_CHAT:
GenericTabParams tabParamsForEndChat = jsonHandler.convertObject(params, GenericTabParams.class);
chatMessageProvider.endChat(tabParamsForEndChat);
break;
case CHAT_FEEDBACK:
var feedbackParams = jsonHandler.convertObject(params, FeedbackParams.class);
chatMessageProvider.sendFeedback(feedbackParams);
break;
case TELEMETRY_EVENT:
chatMessageProvider.sendTelemetryEvent(params);
break;
default:
throw new AmazonQPluginException("Unexpected command received from Chat UI: " + command.toString());
}
} catch (Exception e) {
throw new AmazonQPluginException("Error occurred when sending message to server", e);
}
}, ThreadingUtils.getWorkerPool());
}