@aws/chat-client
TypeScript icon, indicating that this package has built-in type declarations

0.1.13 • Public • Published

Q Chat Client

This package contains a chat client for the Q Language Server, that can be embedded in a webview. It uses MynahUI to render a web based chat interface.

Communication

The chat client communicates with the host application (e.g., an IDE extension) through postMessage requests to the webview:

  • When the host application sends a request, the client processes the message and sends it to the UI
  • When an event is triggered in the UI, the client sends a message through postMessage to the host application that rendered the chat client

Usage

To use the chat client, embed it in a webview within your application and handle the postMessage communication as needed. Chat client is based on inbound (from a destination to the chat client) and outbound events (from the chat client to a destination). Events consist of command and params:

interface SomeEvent {
    command: string;
    params: SomeOptions;
}

Inbound events

Name Description command params
sendChatPrompt response Provides response to sendChatPrompt request aws/chat/sendChatPrompt ChatResult
openTab request Request to open tab (creates tab if no tabId provided) aws/chat/openTab requestID - ID shared between the webview and vscode client, OpenTabParams
sendToPrompt Request to send selection to prompt sendToPrompt SendToPromptParams
genericCommand Request to execute generic command genericCommand GenericCommandParams
errorMessage Request to show error in chat UI errorMessage ErrorParams
chatOptions Configures chat startup options chatOptions ChatOptions
chatUpdate Updates existing chat messages aws/chat/sendChatUpdate ChatUpdateParams
contextCommand Sends context commands to the UI aws/chat/sendContextCommands ContextCommandParams
listConversations response Provides response with list of history conversations to the UI aws/chat/listConversations ListConversationsResult
conversationClick response Provides response to conversation click or action, specifying action execution result aws/chat/conversationClick ConversationClickResult
getSerializedChat request Request to get serialized chat aws/chat/getSerializedChat GetSerializedChatParams
chatOptionsUpdate Sends chat options update request from server aws/chat/chatOptionsUpdate ChatOptionsUpdateParams

Outbound events

Name Description command params
openTab response Provides response to openTab request aws/chat/openTab requestID - ID shared between the webview and vscode client, UiMessageResultParams with result of type OpenTabResult
disclaimerAcknowledged Notifies destination that legal disclaimer was acknowledged by a user disclaimerAcknowledged N/A
sendChatPrompt Sends a chat prompt to the server aws/chat/sendChatPrompt ChatParams
sendQuickActionCommand Sends a quick action command aws/chat/quickAction QuickActionParams
tabAdded Notifies when a tab is added aws/chat/tabAdd TabAddParams
tabChanged Notifies when a tab is changed aws/chat/tabChange TabChangeParams
tabRemoved Notifies when a tab is removed aws/chat/tabRemove TabRemoveParams
insertToCursorPosition Requests to insert code at cursor position insertToCursorPosition InsertToCursorPositionParams
copyToClipboard Requests to copy code to clipboard copyToClipboard CopyCodeToClipboardParams
authFollowUpClicked Notifies when an auth follow-up is clicked authFollowUpClicked AuthFollowUpClickedParams
followUpClicked Notifies when a follow-up suggestion is clicked aws/chat/followUpClick FollowUpClickParams
sendFeedback Sends user feedback aws/chat/feedback FeedbackParams
linkClick Notifies when a link is clicked aws/chat/linkClick LinkClickParams
sourceLinkClick Notifies when a source link is clicked aws/chat/sourceLinkClick SourceLinkClickParams
infoLinkClick Notifies when an info link is clicked aws/chat/infoLinkClick InfoLinkClickParams
uiReady Notifies when the UI is ready aws/chat/ready N/A
chatPromptOptionAcknowledged Notifies when a chat prompt option is acknowledged chatPromptOptionAcknowledged ChatPromptOptionAcknowledgedParams
createPrompt Requests to create a prompt aws/chat/createPrompt CreatePromptParams
fileClick Notifies when a file is clicked aws/chat/fileClick FileClickParams
listConversations Requests to list conversations with filter provided aws/chat/listConversations ListConversationsParams
conversationClick Notifies when a conversation is clicked aws/chat/conversationClick ConversationClickParams
tabBarAction Notifies when a tab bar action is requested aws/chat/tabBarAction TabBarActionParams
getSerializedChat response Provides response to getSerializedChat request aws/chat/getSerializedChat GetSerializedChatResult

Configuration

Configuration can be passed as an explicit parameter when creating chat inside of webview, for example:

amazonQChat.createChat(acquireVsCodeApi(), configuration);

Configuration values:

// Configures quick actions
quickActionCommands?: QuickActionCommandGroup[]

// Configures chat client not to show legal disclaimer as it has already been acknowledged before
disclaimerAcknowledged?: boolean

Readme

Keywords

none

Package Sidebar

Install

npm i @aws/chat-client

Weekly Downloads

4,030

Version

0.1.13

License

Apache-2.0

Unpacked Size

6.74 MB

Total Files

63

Last publish

Collaborators

  • ege0zcan
  • rtarcr
  • imykhai
  • saurisha
  • gkeller
  • viktorsaws
  • rahmaniaam
  • aws-language-server-runtimes-team