@airsurfer09/web-handsfree
Version:
A React package for integrating Convai's AI-powered voice assistants with LiveKit for real-time audio/video conversations
57 lines • 1.73 kB
TypeScript
import { Room } from 'livekit-client';
export interface ConvaiConfig {
apiKey: string;
characterId: string;
url?: string;
enableAudio?: boolean;
enableVideo?: boolean;
llmProvider?: string;
actionConfig?: {
actions: string[];
characters: Array<{
name: string;
bio: string;
}>;
objects: Array<{
name: string;
description: string;
}>;
currentAttentionObject?: string;
};
}
export interface ChatMessage {
id: string;
type: 'user' | 'convai' | 'emotion' | 'behavior-tree' | 'action' | 'user-llm-text' | 'bot-llm-text' | 'bot-emotion';
content: string;
timestamp: string;
}
export interface ConvaiClientState {
isConnected: boolean;
isConnecting: boolean;
isListening: boolean;
isThinking: boolean;
isSpeaking: boolean;
agentState: 'disconnected' | 'connected' | 'listening' | 'thinking' | 'speaking';
}
import { AudioControls } from "../hooks/useAudioControls";
import { VideoControls } from "../hooks/useVideoControls";
export interface ConvaiClient {
state: ConvaiClientState;
connect: (config: ConvaiConfig) => Promise<void>;
disconnect: () => Promise<void>;
room: Room;
videoTrack: any;
audioTrack: any;
sendUserTextMessage: (text: string) => void;
sendTriggerMessage: (triggerName?: string, triggerMessage?: string) => void;
updateTemplateKeys: (templateKeys: {
[key: string]: string;
}) => void;
updateDynamicInfo: (dynamicInfo: {
text: string;
}) => void;
chatMessages: ChatMessage[];
audioControls: AudioControls;
videoControls: VideoControls;
}
//# sourceMappingURL=index.d.ts.map