UNPKG

instantsearch-ui-components

Version:

Common UI components for InstantSearch.

30 lines (29 loc) 1.42 kB
import type { AbstractChat, ChatInit, UIMessage } from 'ai'; export type ChatStatus = 'ready' | 'submitted' | 'streaming' | 'error'; export type ChatRole = 'data' | 'user' | 'assistant' | 'system'; export type ChatMessageBase = UIMessage; export type ChatToolMessage = Extract<ChatMessageBase['parts'][number], { type: `tool-${string}`; }>; export type ChatToolType = ChatToolMessage['type']; export type { ChatInit } from 'ai'; export type AddToolResult = AbstractChat<UIMessage>['addToolResult']; export type AddToolResultWithOutput = (params: Pick<Parameters<AddToolResult>[0], 'output'>) => ReturnType<AddToolResult>; export type ClientSideToolComponentProps = { message: ChatToolMessage; indexUiState: object; setIndexUiState: (state: object) => void; onClose: () => void; addToolResult: AddToolResultWithOutput; }; export type ClientSideToolComponent = (props: ClientSideToolComponentProps) => JSX.Element; export type ClientSideTool = { layoutComponent?: ClientSideToolComponent; addToolResult: AddToolResult; onToolCall?: (params: Parameters<NonNullable<ChatInit<UIMessage>['onToolCall']>>[0]['toolCall'] & { addToolResult: AddToolResultWithOutput; }) => void; }; export type ClientSideTools = Record<string, ClientSideTool>; export type UserClientSideTool = Omit<ClientSideTool, 'addToolResult'>; export type UserClientSideTools = Record<string, UserClientSideTool>;