Skip to content

Commit ee1d809

Browse files
authored
feat(amazonq): support listAvailableModels request (#5903)
1 parent ab3b509 commit ee1d809

File tree

4 files changed

+42
-0
lines changed

4 files changed

+42
-0
lines changed

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.Encry
7474
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedQuickActionChatParams
7575
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GET_SERIALIZED_CHAT_REQUEST_METHOD
7676
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GetSerializedChatResponse
77+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LIST_AVAILABLE_MODELS
7778
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LIST_MCP_SERVERS_REQUEST_METHOD
7879
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LIST_RULES_REQUEST_METHOD
7980
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.MCP_SERVER_CLICK_REQUEST_METHOD
@@ -532,6 +533,17 @@ class BrowserConnector(
532533
CHAT_PINNED_CONTEXT_REMOVE -> {
533534
handleChat(AmazonQChatServer.pinnedContextRemove, node)
534535
}
536+
LIST_AVAILABLE_MODELS -> {
537+
handleChat(AmazonQChatServer.listAvailableModels, node)
538+
.whenComplete { response, _ ->
539+
browser.postChat(
540+
FlareUiMessage(
541+
command = LIST_AVAILABLE_MODELS,
542+
params = response
543+
)
544+
)
545+
}
546+
}
535547
}
536548
}
537549

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/AmazonQChatServer.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,12 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GetSe
4040
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GetSerializedChatResult
4141
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickParams
4242
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InsertToCursorPositionParams
43+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LIST_AVAILABLE_MODELS
4344
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LIST_MCP_SERVERS_REQUEST_METHOD
4445
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LIST_RULES_REQUEST_METHOD
4546
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickParams
47+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ListAvailableModelsParams
48+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ListAvailableModelsResult
4649
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ListConversationsParams
4750
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.MCP_SERVER_CLICK_REQUEST_METHOD
4851
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OPEN_FILE_DIALOG_REQUEST_METHOD
@@ -255,4 +258,10 @@ object AmazonQChatServer : JsonRpcMethodProvider {
255258
Any::class.java,
256259
LSPAny::class.java
257260
)
261+
262+
val listAvailableModels = JsonRpcRequest(
263+
LIST_AVAILABLE_MODELS,
264+
ListAvailableModelsParams::class.java,
265+
ListAvailableModelsResult::class.java
266+
)
258267
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,5 @@ const val MCP_SERVER_CLICK_REQUEST_METHOD = "aws/chat/mcpServerClick"
6464
const val OPEN_FILE_DIALOG_REQUEST_METHOD = "aws/chat/openFileDialog"
6565
const val LIST_RULES_REQUEST_METHOD = "aws/chat/listRules"
6666
const val RULE_CLICK_REQUEST_METHOD = "aws/chat/ruleClick"
67+
68+
const val LIST_AVAILABLE_MODELS = "aws/chat/listAvailableModels"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// Copyright 2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
package software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat
5+
6+
data class Model(
7+
val id: String,
8+
val name: String,
9+
)
10+
11+
data class ListAvailableModelsParams(
12+
val tabId: String,
13+
)
14+
15+
data class ListAvailableModelsResult(
16+
val tabId: String,
17+
val models: List<Model>,
18+
val selectedModelId: String? = null,
19+
)

0 commit comments

Comments
 (0)