diff --git a/plugin/src/software/aws/toolkits/eclipse/amazonq/chat/ChatCommunicationManager.java b/plugin/src/software/aws/toolkits/eclipse/amazonq/chat/ChatCommunicationManager.java index b4dea997..7060dcf8 100644 --- a/plugin/src/software/aws/toolkits/eclipse/amazonq/chat/ChatCommunicationManager.java +++ b/plugin/src/software/aws/toolkits/eclipse/amazonq/chat/ChatCommunicationManager.java @@ -278,6 +278,16 @@ public void sendMessageToChatServer(final Command command, final ChatMessage mes Activator.getLogger().error("Error processing ruleClick: " + e); } break; + case LIST_AVAILABLE_MODELS: + try { + Object listModelsResponse = amazonQLspServer.listAvailableModels(message.getData()).get(); + var listModelsCommand = ChatUIInboundCommand.createCommand(ChatUIInboundCommandName.ListAvailableModels.getValue(), + listModelsResponse); + Activator.getEventBroker().post(ChatUIInboundCommand.class, listModelsCommand); + } catch (Exception e) { + Activator.getLogger().error("Error processing listAvailableModels: " + e); + } + break; case PINNED_CONTEXT_ADD: amazonQLspServer.pinnedContextAdd(message.getData()); break; diff --git a/plugin/src/software/aws/toolkits/eclipse/amazonq/chat/models/ChatUIInboundCommandName.java b/plugin/src/software/aws/toolkits/eclipse/amazonq/chat/models/ChatUIInboundCommandName.java index 22f8fd8c..dc7d4138 100644 --- a/plugin/src/software/aws/toolkits/eclipse/amazonq/chat/models/ChatUIInboundCommandName.java +++ b/plugin/src/software/aws/toolkits/eclipse/amazonq/chat/models/ChatUIInboundCommandName.java @@ -18,6 +18,7 @@ public enum ChatUIInboundCommandName { McpServerClick("aws/chat/mcpServerClick"), ListRules("aws/chat/listRules"), RuleClick("aws/chat/ruleClick"), + ListAvailableModels("aws/chat/listAvailableModels"), SendPinnedContext("aws/chat/sendPinnedContext"); private final String value; diff --git a/plugin/src/software/aws/toolkits/eclipse/amazonq/lsp/AmazonQLspServer.java b/plugin/src/software/aws/toolkits/eclipse/amazonq/lsp/AmazonQLspServer.java index caca62b7..642b9041 100644 --- a/plugin/src/software/aws/toolkits/eclipse/amazonq/lsp/AmazonQLspServer.java +++ b/plugin/src/software/aws/toolkits/eclipse/amazonq/lsp/AmazonQLspServer.java @@ -136,6 +136,9 @@ CompletableFuture> getConfi @JsonRequest("aws/chat/ruleClick") CompletableFuture ruleClick(Object params); + @JsonRequest("aws/chat/listAvailableModels") + CompletableFuture listAvailableModels(Object params); + @JsonNotification("aws/chat/pinnedContextAdd") void pinnedContextAdd(Object params); diff --git a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQChatViewActionHandler.java b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQChatViewActionHandler.java index 97d03bcd..982e2866 100644 --- a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQChatViewActionHandler.java +++ b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQChatViewActionHandler.java @@ -73,6 +73,7 @@ public final void handleCommand(final ParsedCommand parsedCommand, final Browser case RULE_CLICK: case PINNED_CONTEXT_ADD: case PINNED_CONTEXT_REMOVE: + case LIST_AVAILABLE_MODELS: chatCommunicationManager.sendMessageToChatServer(command, message); break; case CHAT_INFO_LINK_CLICK: diff --git a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/model/Command.java b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/model/Command.java index 33705777..052a9105 100644 --- a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/model/Command.java +++ b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/model/Command.java @@ -44,6 +44,7 @@ public enum Command { RULE_CLICK("aws/chat/ruleClick"), PINNED_CONTEXT_ADD("aws/chat/pinnedContextAdd"), PINNED_CONTEXT_REMOVE("aws/chat/pinnedContextRemove"), + LIST_AVAILABLE_MODELS("aws/chat/listAvailableModels"), // Auth LOGIN_BUILDER_ID("loginBuilderId"), LOGIN_IDC("loginIdC"),