remix-nlux
Version:
Remix IDE NLUX integration. Remix IDE is the leading IDE for building and deploying smart contracts on Ethereum. NLUX is a JavaScript and React library for building conversational AI experiences.
44 lines (36 loc) • 1.41 kB
text/typescript
import {ChatSegment} from '@shared/types/chatSegment/chatSegment';
import {ReactElement} from 'react';
import {MarkdownContainersController} from '../../exports/hooks/usMarkdownContainers';
import {MessageOptions} from '../../exports/messageOptions';
import {PersonaOptions} from '../../exports/personaOptions';
import {ConversationOptions} from '../../types/conversationOptions';
export type ConversationCompProps<AiMsg> = {
// State and option props
segments: ChatSegment<AiMsg>[];
conversationOptions?: ConversationOptions;
personaOptions?: PersonaOptions;
messageOptions?: MessageOptions<AiMsg>;
markdownContainersController: MarkdownContainersController;
submitShortcutKey?: 'Enter' | 'CommandEnter';
// Event Handlers
onLastActiveSegmentChange?: (data: {
uid: string;
div: HTMLDivElement;
} | undefined) => void;
onPromptResubmit: (
segmentId: string,
messageId: string,
newPrompt: string,
) => void;
onMarkdownStreamRendered: (
segmentId: string,
messageId: string,
) => void;
// UI Overrides
Loader: ReactElement;
};
export type ImperativeConversationCompProps<AiMsg> = {
streamChunk: (segmentId: string, messageId: string, chunk: AiMsg) => void;
completeStream: (segmentId: string, messageId: string) => void;
cancelSegmentStreams: (segmentId: string) => void;
};