Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@unith-ai/core-client

Package Overview
Dependencies
Maintainers
1
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@unith-ai/core-client - npm Package Compare versions

Comparing version
2.0.6
to
2.0.61
+11
-10
package.json
{
"name": "@unith-ai/core-client",
"version": "2.0.6",
"version": "2.0.61",
"description": "Core TypeScript SDK for building digital human experiences with Unith AI",
"main": "./dist/lib.js",
"module": "./dist/lib.module.js",
"source": "src/index.ts",
"types": "./dist/index.d.ts",
"unpkg": "./dist/lib.web.js",
"types": "./dist/index.d.ts",
"exports": {

@@ -33,5 +32,5 @@ ".": {

"eslint": "^9.8.0",
"microbundle": "^0.15.1",
"typescript": "^5.5.4",
"microsoft-cognitiveservices-speech-sdk": "^1.45.0"
"microsoft-cognitiveservices-speech-sdk": "^1.45.0",
"rolldown": "1.0.0-rc.9",
"typescript": "^5.5.4"
},

@@ -55,7 +54,9 @@ "repository": {

"scripts": {
"build": "BROWSERSLIST_ENV=modern microbundle --jsx React.createElement --jsxFragment React.Fragment --jsxImportSource react --external microsoft-cognitiveservices-speech-sdk src/index.ts && npm run build:web",
"build:web": "npx esbuild src/index.ts --bundle --format=esm --platform=browser --target=es2019 --external:microsoft-cognitiveservices-speech-sdk --outfile=dist/lib.web.js",
"build": "npm run build:esm && npm run build:cjs && npm run build:web",
"build:esm": "rolldown src/index.ts -f es --file dist/lib.module.js --sourcemap --external microsoft-cognitiveservices-speech-sdk",
"build:cjs": "rolldown src/index.ts -f cjs --file dist/lib.js --sourcemap --external microsoft-cognitiveservices-speech-sdk",
"build:web": "rolldown src/index.ts -f iife --name UnithCoreClient --file dist/lib.web.js --sourcemap --external microsoft-cognitiveservices-speech-sdk",
"build:types": "tsc --project tsconfig.build.json --emitDeclarationOnly --declarationDir dist",
"clean": "rm -rf ./dist",
"dev": "npm run clean && BROWSERSLIST_ENV=development microbundle --jsx React.createElement --jsxFragment React.Fragment --jsxImportSource react --external microsoft-cognitiveservices-speech-sdk src/index.ts -w -f modern",
"dev:build-only": "npm run clean && BROWSERSLIST_ENV=development microbundle --jsx React.createElement --jsxFragment React.Fragment --jsxImportSource react --external microsoft-cognitiveservices-speech-sdk src/index.ts -w -f modern",
"dev": "npm run clean && rolldown src/index.ts -f es --file dist/lib.module.js --sourcemap --external microsoft-cognitiveservices-speech-sdk --watch",
"lint": "npm run lint:ts && npm run lint:es",

@@ -62,0 +63,0 @@ "lint:ts": "tsc --noEmit --skipLibCheck",

import { AudioOutput } from "./modules/audio";
import { Connection } from "./modules/connection";
import { IdleVideo } from "./modules/idle-video";
import { User } from "./modules/user";
import { VideoOutput } from "./modules/video";
import type { ConversationOptions, ConversationEvents, DigitalHumanOptions, HeadOptions, VideoHtmlElement, MicrophoneType } from "./types/Conversation";
import { Environment } from "./types/environment";
import { HeadType } from "./types/User";
export * from "./types/event";
export * from "./types/Conversation";
export * from "./types/connection";
export * from "./types/User";
export * from "./types/environment";
export * from "./types/microphone";
export { defaultElevenLabsOptions } from "./utils/microphone";
export { VideoTransitionType } from "./types/vp8";
export type Options = ConversationOptions & ConversationEvents & MicrophoneType;
export type HeadConfigOptions = HeadOptions & Partial<DigitalHumanOptions>;
export type PartialOptions = HeadConfigOptions & Partial<MicrophoneType> & VideoHtmlElement & Partial<ConversationEvents>;
export declare class Conversation {
private options;
private microphoneAccess;
private connection;
private idleVideo;
private wakeLock;
private user;
private audioOutput;
private videoOutput;
private headInfo;
private status;
protected volume: number;
private sessionStarted;
private isStoppingLastResponse;
private messageCounter;
private syncController;
private avController;
private monitor;
private microphone;
private videoFrameQueue;
private cachedResponseQueue;
private suggestionsQueue;
private static getFullOptions;
/**
* Starts a digital human conversation.
* @param options - The options for the conversation.
* @returns A promise that resolves to a Conversation instance.
*/
static startDigitalHuman(options: PartialOptions): Promise<Conversation>;
/**
* This retrieves the background video to use for widget mode & welcome screen
* @param options PartialOptions
* @returns Video link to use as widget background
*/
static getBackgroundVideo(options: {
orgId: string;
headId: string;
environment?: Environment;
}): Promise<string>;
constructor(options: Options, microphoneAccess: boolean, connection: Connection, idleVideo: IdleVideo, wakeLock: WakeLockSentinel | null, user: User, audioOutput: AudioOutput, videoOutput: VideoOutput, headInfo: HeadType);
private startLatencyMonitoring;
private handleIOSSilentMode;
private onOutputWorkletMessage;
private handleMessage;
private handleStreamError;
private handleStreamingEvent;
private handleVideoFrame;
private handleBinaryData;
private handleAudioFrame;
private onMessage;
private handleStopVideoEvents;
private endSessionWithDetails;
getUserId(): string;
private handleEndSession;
private updateStatus;
/**
* To stop streaming response, we'll send a stop message to the BE. The BE will then stop sending audio and video frames, which will naturally end the response. This is more efficient and leads to a better user experience as it allows for a smoother transition when stopping the response.
*
* To stop cached response, we just stop the video and fade to idle.
*/
stopResponse(): Promise<void>;
toggleMute(): Promise<number>;
startSession(): Promise<Connection>;
toggleMicrophone(): Promise<void>;
getMicrophoneStatus(): import("./types/microphone").MicrophoneStatus;
endSession(): Promise<void>;
sendMessage(text: string): void;
keepSession(): void;
}
//# sourceMappingURL=index.d.ts.map
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
import { AudioFormatConfig } from "../types/audio";
export declare class AudioOutput {
readonly context: AudioContext;
readonly analyser: AnalyserNode;
readonly gain: GainNode;
readonly worklet: AudioWorkletNode;
private _isMuted;
static createAudioOutput({ sampleRate, format, }: AudioFormatConfig): Promise<AudioOutput>;
private ensureIOSCompatibility;
private constructor();
getOutputDevice(): Promise<MediaDeviceInfo | null>;
getAvailableOutputDevices(): Promise<MediaDeviceInfo[]>;
mute(): void;
unmute(): void;
toggleMute(): boolean;
close(): Promise<void>;
}
//# sourceMappingURL=audio.d.ts.map
{"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../src/modules/audio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,qBAAa,WAAW;aAyDJ,OAAO,EAAE,YAAY;aACrB,QAAQ,EAAE,YAAY;aACtB,IAAI,EAAE,QAAQ;aACd,OAAO,EAAE,gBAAgB;IA3D3C,OAAO,CAAC,QAAQ,CAAkB;WAEd,iBAAiB,CAAC,EACpC,UAAU,EACV,MAAM,GACP,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;YAuC7B,sBAAsB;IAWpC,OAAO;IAOM,eAAe,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IA6BlD,yBAAyB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAU7D,IAAI,IAAI,IAAI;IAMZ,MAAM,IAAI,IAAI;IAMd,UAAU,IAAI,OAAO;IASf,KAAK;CAGnB"}
import { AudioOutput } from "./audio";
import { SyncController } from "./sync";
import { VideoOutput } from "./video";
export declare class AVController {
private syncController;
private audioOutput;
private videoOutput;
initialized: boolean;
isPlaying: boolean;
isPlayingAudio: boolean;
isPlayingVideo: boolean;
isStoppingAV: boolean;
constructor(syncConfig: SyncController, audioOutput: AudioOutput, videoOutput: VideoOutput);
updatePlayingState(state: boolean): void;
toggleStoppingVideo(stopping: boolean): void;
startPlayback(init?: boolean): Promise<void>;
handleAudioWorkletMessage: (event: {
type: string;
finished: boolean;
}) => void;
playAudioVideo(): Promise<void>;
}
//# sourceMappingURL=av.d.ts.map
{"version":3,"file":"av.d.ts","sourceRoot":"","sources":["../../src/modules/av.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,qBAAa,YAAY;IACvB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAc;IAEjC,WAAW,EAAE,OAAO,CAAS;IAC7B,SAAS,EAAE,OAAO,CAAS;IAC3B,cAAc,EAAE,OAAO,CAAS;IAChC,cAAc,EAAE,OAAO,CAAS;IAChC,YAAY,EAAE,OAAO,CAAS;gBAG5B,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW;IAqBnB,kBAAkB,CAAC,KAAK,EAAE,OAAO;IAMjC,mBAAmB,CAAC,QAAQ,EAAE,OAAO;IAI/B,aAAa,CAAC,IAAI,UAAQ;IAchC,yBAAyB,GAAI,OAAO;QACzC,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC;KACnB,UAUC;IAEW,cAAc;CAW5B"}
import { WebsocketConnectionConfig } from "../types/connection";
import { OnDisconnectCallback, OnMessageCallback, Message, OnPingPongCallback, PingEventData } from "../types/event";
export declare class Connection {
readonly socket: WebSocket;
readonly userId: string;
static create(config: WebsocketConnectionConfig): Promise<Connection>;
private queue;
private disconnectionDetails;
private onDisconnectCallback;
private onMessageCallback;
private onPingPongCallback;
private constructor();
private disconnect;
close(): void;
sendMessage(message: Message): void;
sendPingEvent(message: PingEventData): void;
onPingPong(callback: OnPingPongCallback): void;
onMessage(callback: OnMessageCallback): void;
onDisconnect(callback: OnDisconnectCallback): void;
}
//# sourceMappingURL=connection.d.ts.map
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/modules/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAGL,oBAAoB,EACpB,iBAAiB,EAEjB,OAAO,EAEP,kBAAkB,EAClB,aAAa,EAId,MAAM,gBAAgB,CAAC;AAIxB,qBAAa,UAAU;aAwEH,MAAM,EAAE,SAAS;aACjB,MAAM,EAAE,MAAM;WAxEZ,MAAM,CACxB,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,UAAU,CAAC;IA8DtB,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,oBAAoB,CAAqC;IACjE,OAAO,CAAC,oBAAoB,CAAqC;IACjE,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,kBAAkB,CAAmC;IAE7D,OAAO;IAoEP,OAAO,CAAC,UAAU;IAOX,KAAK;IAIL,WAAW,CAAC,OAAO,EAAE,OAAO;IAQ5B,aAAa,CAAC,OAAO,EAAE,aAAa;IAUpC,UAAU,CAAC,QAAQ,EAAE,kBAAkB;IAIvC,SAAS,CAAC,QAAQ,EAAE,iBAAiB;IAcrC,YAAY,CAAC,QAAQ,EAAE,oBAAoB;CAWnD"}
import { Environment } from "../types/environment";
export declare function getApiBase(environment: Environment): string;
export declare function getStreamBase(environment: Environment): string;
//# sourceMappingURL=environment.d.ts.map
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/modules/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,wBAAgB,UAAU,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAW3D;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAW9D"}
import { AnyIncomingSocketEvent } from "../types/event";
export declare function isValidSocketEvent(event: any): event is AnyIncomingSocketEvent;
//# sourceMappingURL=event.d.ts.map
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/modules/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAGxD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,sBAAsB,CAE9E"}
export declare class IdleVideo {
readonly idleVideoSource: string;
readonly videoId: string;
constructor(idleVideoSource: string, videoId: string);
static getIdleVideo(apiUrl: string, orgId: string, headId: string): Promise<IdleVideo>;
getAvatarSrc(apiUrl: string, orgId: string, headId: string): Promise<string>;
private static getIdleVideoId;
}
//# sourceMappingURL=idle-video.d.ts.map
{"version":3,"file":"idle-video.d.ts","sourceRoot":"","sources":["../../src/modules/idle-video.ts"],"names":[],"mappings":"AAEA,qBAAa,SAAS;aAEF,eAAe,EAAE,MAAM;aACvB,OAAO,EAAE,MAAM;gBADf,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM;WAGb,YAAY,CAC9B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,CAAC;IAyBR,YAAY,CACvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;mBAwBG,cAAc;CA0BpC"}
import { MicrophoneEvents, MicrophoneStatus, MicrophoneProvider, ElevenLabsOptions, MicTokenResponseType } from "../types/microphone";
import { User } from "./user";
import { HeadType } from "..";
export declare class Microphone {
provider: MicrophoneProvider;
options: MicrophoneEvents;
elevenLabsOptions: ElevenLabsOptions;
user: User;
private readonly headInfo;
voiceInterruptions: boolean;
private microphoneStatus;
private microphoneAccess;
private recognizer;
private connection;
private tokenObj;
private micBeep;
/**
* This static method initializes the Microphone instance.
* It gets the tokens from our endpoints and sets up the necessary configurations.
* @param options
* @param provider
* @param elevenLabsOptions
* @param user
* @param headInfo
* @param microphoneAccess
* @param sendMessage
* @returns
*/
static initializeMicrophone(options: MicrophoneEvents, provider: MicrophoneProvider, elevenLabsOptions: ElevenLabsOptions, user: User, headInfo: HeadType, microphoneAccess: boolean, voiceInterruptions: boolean): Promise<Microphone>;
constructor(provider: MicrophoneProvider, options: MicrophoneEvents, elevenLabsOptions: ElevenLabsOptions, user: User, headInfo: HeadType, microphoneAccess: boolean, token: MicTokenResponseType, voiceInterruptions: boolean);
private updateMicrophoneStatus;
private handleRecognitionResult;
private startAzureMicrophone;
private stopAzureMicrophone;
private startElevenLabsMicrophone;
private stopElevenLabsMicrophone;
/**
* Toggles the microphone on or off.
*/
toggleMicrophone(): Promise<void>;
/**
* Gets the current status of the microphone.
*/
status(): MicrophoneStatus;
}
//# sourceMappingURL=microphone.d.ts.map
{"version":3,"file":"microphone.d.ts","sourceRoot":"","sources":["../../src/modules/microphone.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAc9B,qBAAa,UAAU;IA4DZ,QAAQ,EAAE,kBAAkB;IAC5B,OAAO,EAAE,gBAAgB;IACzB,iBAAiB,EAAE,iBAAiB;IACpC,IAAI,EAAE,IAAI;IACjB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAGlB,kBAAkB,EAAE,OAAO;IAlEpC,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,QAAQ,CAId;IACF,OAAO,CAAC,OAAO,CAA6D;IAE5E;;;;;;;;;;;OAWG;WACiB,oBAAoB,CACtC,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,kBAAkB,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,OAAO,EACzB,kBAAkB,EAAE,OAAO,GAC1B,OAAO,CAAC,UAAU,CAAC;gBA4Bb,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,gBAAgB,EACzB,iBAAiB,EAAE,iBAAiB,EACpC,IAAI,EAAE,IAAI,EACA,QAAQ,EAAE,QAAQ,EACnC,gBAAgB,EAAE,OAAO,EACzB,KAAK,EAAE,oBAAoB,EACpB,kBAAkB,EAAE,OAAO;IAWpC,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,uBAAuB;YAOjB,oBAAoB;YA4GpB,mBAAmB;YAenB,yBAAyB;YAmEzB,wBAAwB;IAetC;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B9C;;OAEG;IACI,MAAM;CAGd"}
import { Connection } from "./connection";
type LatencyStatus = "good" | "moderate" | "poor";
interface LatencyStats {
rtt: number;
average: number;
status: LatencyStatus;
}
type OnUpdateCallback = (stats: LatencyStats) => void;
export declare class LatencyMonitor {
connection: Connection;
private intervalId;
private pingInterval;
private timeout;
private lastPingTimestamp;
private history;
private maxHistory;
private onUpdate?;
constructor(connection: Connection, options?: {
pingInterval?: number;
timeout?: number;
maxHistory?: number;
onUpdate?: OnUpdateCallback;
});
start(): void;
stop(): void;
destroy(): void;
private sendPing;
private handleMessage;
private recordLatency;
private classifyLatency;
}
export {};
//# sourceMappingURL=monitor.d.ts.map
{"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/modules/monitor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,KAAK,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AAElD,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,KAAK,gBAAgB,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAEtD,qBAAa,cAAc;IAUhB,UAAU,EAAE,UAAU;IAT/B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,CAAmB;gBAG3B,UAAU,EAAE,UAAU,EAC7B,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;KAC7B;IAUH,KAAK;IAQL,IAAI;IAKJ,OAAO;IAIP,OAAO,CAAC,QAAQ;IAqBhB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,eAAe;CAKxB"}
import { SyncConfig } from "../types/sync";
export declare class SyncController {
private config;
private driftHistory;
private correctionInProgress;
private lastAudioTiming;
private lastVideoTiming;
constructor(config: SyncConfig);
updateAudioTime(relativeTime: number): void;
updateVideoTime(relativeTime: number): void;
resetTiming(): void;
checkSync(): Promise<void>;
private recordDrift;
}
//# sourceMappingURL=sync.d.ts.map
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/modules/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAc,MAAM,eAAe,CAAC;AAEpE,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,oBAAoB,CAAkB;IAC9C,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,eAAe,CAA2B;gBAEtC,MAAM,EAAE,UAAU;IAIvB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAO3C,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAO3C,WAAW,IAAI,IAAI;IAKb,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBvC,OAAO,CAAC,WAAW;CAapB"}
import { ApiAsrTokenType, HeadType, TokenResponseType } from "../types/User";
export declare class User {
readonly id: string;
username: string;
readonly password: string;
readonly orgId: string;
readonly headId: string;
readonly apiBase: string;
static loginUser(username: string, password: string, apiUrl: string, orgId: string, headId: string): Promise<User>;
private EXPIRATION_OFFSET;
accessToken: string;
tokenType: string;
sessionId: number;
private constructor();
getHeadDetails(apiKey: string): Promise<HeadType>;
getAuthToken(username: string, password: string): Promise<TokenResponseType>;
getProviderToken(auth_jwt: string, provider: "elevenlabs" | "azure"): Promise<ApiAsrTokenType>;
getAccessToken(): Promise<{
access_token: string;
user_id: string | null | undefined;
session_id: number;
}>;
getAsrToken(provider: "elevenlabs" | "azure"): Promise<{
token: string;
region: string;
}>;
}
//# sourceMappingURL=user.d.ts.map
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/modules/user.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAGf,QAAQ,EACR,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAIvB,qBAAa,IAAI;aA0DG,EAAE,EAAE,MAAM;IACnB,QAAQ,EAAE,MAAM;aACP,QAAQ,EAAE,MAAM;aAChB,KAAK,EAAE,MAAM;aACb,MAAM,EAAE,MAAM;aACd,OAAO,EAAE,MAAM;WA9Db,SAAS,CAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IA2ChB,OAAO,CAAC,iBAAiB,CAAkB;IACpC,WAAW,EAAE,MAAM,CAAM;IACzB,SAAS,EAAE,MAAM,CAAM;IACvB,SAAS,EAAE,MAAM,CAAK;IAE7B,OAAO;IAoBM,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IA4BjD,YAAY,CACvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,iBAAiB,CAAC;IAyBhB,gBAAgB,CAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,YAAY,GAAG,OAAO,GAC/B,OAAO,CAAC,eAAe,CAAC;IAsBd,cAAc;;;;;IA+Dd,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO;;;;CAuC1D"}
import { IdleVideoConfig } from "../types/idle-video";
import { VideoFormatConfig, VideoTransitionType } from "../types/vp8";
export interface VideoEffectConfig {
background?: BackgroundConfig;
}
export interface BackgroundConfig {
type: "color" | "image";
value: number | string;
}
export declare class VideoOutput {
private videoOutput;
private container;
private idleVideo;
private cachedVideo;
private idleVideoConfig;
private videoTransitionConfig;
private readonly CROSSFADE_DURATION;
private isTransitioning;
private isShowingIdleVideo;
private bufferCheckAnimationId;
private lastBufferCheckTime;
private sessionStarted;
private isRestoringIdleVideo;
private isShowingCachedVideo;
private onIdleVideoShown?;
private onIdleVideoHidden?;
private onSpeakingStartCallback;
private onSpeakingEndCallback;
static createVideoOutput(container: HTMLElement, config: VideoFormatConfig & {
effects?: VideoEffectConfig;
idleVideo: IdleVideoConfig;
transition: VideoTransitionType;
}): Promise<VideoOutput>;
private constructor();
private setupIdleVideo;
private setupCachedVideo;
onSpeakingStart(speakingStartCallback: () => void): void;
onSpeakingEnd(speakingEndCallback: () => void): void;
startStreaming(init?: boolean): void;
stopBufferMonitoring(): void;
getBufferLength(): number;
startBufferMonitoring(): void;
toggleCacheVideoMute(): void;
playCachedVideo(cachedVideoUrl: string): Promise<void>;
stopCachedVideo(): Promise<void>;
private crossfadeFromIdleToCached;
private crossfadeFromCachedToIdle;
private cleanupCachedVideo;
private hideIdleVideo;
private hideIdleVideoBeforeStream;
setEventCallbacks(callbacks: {
onIdleVideoShown?: () => void;
onIdleVideoHidden?: () => void;
}): void;
getStreamingStatus(): boolean;
isPlayingCachedVideo(): boolean;
showIdleVideo(): Promise<void>;
showIdleVideoAfterStream(): Promise<void>;
addFrame(frameData: Blob | ArrayBuffer, timeStamp: number, isKeyframe?: boolean): Promise<void>;
clearFrame(): void;
toggleStream(status: boolean): Promise<void>;
destroy(): void;
}
//# sourceMappingURL=video.d.ts.map
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/modules/video.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EACL,iBAAiB,EAEjB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,eAAe,CAAgC;IAGvD,OAAO,CAAC,qBAAqB,CAAoC;IACjE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAO;IAC1C,OAAO,CAAC,eAAe,CAAkB;IAGzC,OAAO,CAAC,kBAAkB,CAAiB;IAC3C,OAAO,CAAC,sBAAsB,CAAuB;IACrD,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,oBAAoB,CAAkB;IAG9C,OAAO,CAAC,oBAAoB,CAAkB;IAG9C,OAAO,CAAC,gBAAgB,CAAC,CAAa;IACtC,OAAO,CAAC,iBAAiB,CAAC,CAAa;IAEvC,OAAO,CAAC,uBAAuB,CAA6B;IAC5D,OAAO,CAAC,qBAAqB,CAA6B;WAEtC,iBAAiB,CACnC,SAAS,EAAE,WAAW,EACtB,MAAM,EAAE,iBAAiB,GAAG;QAC1B,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAC5B,SAAS,EAAE,eAAe,CAAC;QAC3B,UAAU,EAAE,mBAAmB,CAAC;KACjC;IAiBH,OAAO;YAWO,cAAc;YA2Cd,gBAAgB;IA4BvB,eAAe,CAAC,qBAAqB,EAAE,MAAM,IAAI,GAAG,IAAI;IAIxD,aAAa,CAAC,mBAAmB,EAAE,MAAM,IAAI,GAAG,IAAI;IAIpD,cAAc,CAAC,IAAI,UAAQ,GAAG,IAAI;IAMlC,oBAAoB,IAAI,IAAI;IAS5B,eAAe,IAAI,MAAM;IAIzB,qBAAqB,IAAI,IAAI;IA6B7B,oBAAoB,IAAI,IAAI;IAMtB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2DtD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;YAgB/B,yBAAyB;YA4BzB,yBAAyB;YA+BzB,kBAAkB;IAUhC,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,yBAAyB;IAS1B,iBAAiB,CAAC,SAAS,EAAE;QAClC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;QAC9B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;KAChC,GAAG,IAAI;IAKD,kBAAkB,IAAI,OAAO;IAI7B,oBAAoB,IAAI,OAAO;IAIzB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB9B,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBzC,QAAQ,CACnB,SAAS,EAAE,IAAI,GAAG,WAAW,EAC7B,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,IAAI,CAAC;IAST,UAAU,IAAI,IAAI;IAMZ,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlD,OAAO,IAAI,IAAI;CAqBvB"}
import { VideoState, VideoFormatConfig } from "../types/vp8";
export declare class Vp8VideoOutput {
private canvas;
private ctx;
private container;
private config;
private resizeObserver;
private decoder;
private state;
private isProcessingFrame;
private isStreaming;
private startTime;
private frameBuffer;
private currentSequenceId;
private animationFrameId;
private renderLoop;
private fpsCounter;
private handleContextLoss;
private handleContextRestore;
private constructor();
static create(container: HTMLElement, config: VideoFormatConfig): Promise<Vp8VideoOutput>;
private initializeDecoder;
private setupResizeHandling;
private handleResize;
getBufferLength(): number;
getStreamingStatus(): boolean;
addFrame(frameData: Uint8Array<ArrayBuffer>, timestamp: number, isKeyframe?: boolean): Promise<void>;
toggleStream(status: boolean): Promise<void>;
clearFrame(): void;
destroy(): void;
getState(): VideoState;
startRenderingStreamingVideo(init: boolean): void;
private render;
private processNextFrame;
private decodeVP8Frame;
private renderVideoFrame;
private clearCanvas;
private setupContextLossHandling;
}
//# sourceMappingURL=vp8.d.ts.map
{"version":3,"file":"vp8.d.ts","sourceRoot":"","sources":["../../src/modules/vp8.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAExE,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,GAAG,CAA2B;IACtC,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,cAAc,CAA+B;IAGrD,OAAO,CAAC,OAAO,CAA6B;IAG5C,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,SAAS,CAAa;IAI9B,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,iBAAiB,CAAa;IAGtC,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,UAAU,CAAkB;IAGpC,OAAO,CAAC,UAAU,CAGhB;IAGF,OAAO,CAAC,iBAAiB,CAAoC;IAC7D,OAAO,CAAC,oBAAoB,CAAoC;IAEhE,OAAO;WAoBa,MAAM,CACxB,SAAS,EAAE,WAAW,EACtB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,cAAc,CAAC;YAsCZ,iBAAiB;IAkC/B,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,YAAY,CAelB;IAEK,eAAe,IAAI,MAAM;IAIzB,kBAAkB,IAAI,OAAO;IAIvB,QAAQ,CACnB,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,EAClC,SAAS,EAAE,MAAM,EACjB,UAAU,GAAE,OAAe,GAC1B,OAAO,CAAC,IAAI,CAAC;IAoCH,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,UAAU,IAAI,IAAI;IAuClB,OAAO,IAAI,IAAI;IAoCf,QAAQ,IAAI,UAAU;IAItB,4BAA4B,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IASxD,OAAO,CAAC,MAAM;YAwBA,gBAAgB;YAkChB,cAAc;IAgB5B,OAAO,CAAC,gBAAgB;IAiCxB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,wBAAwB;CAmBjC"}
export type AudioFormatConfig = {
sampleRate: number;
format: "pcm" | "wav" | "ulaw";
};
export type ResultType = {
text: string;
confidence: string;
isFinal: boolean;
};
export declare enum STATUS_TYPES {
INACTIVE = "INACTIVE",
INITIALIZING = "INITIALIZING",
READY = "READY",
LISTENING = "LISTENING",
ERROR = "ERROR"
}
//# sourceMappingURL=audio.d.ts.map
{"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../src/types/audio.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,YAAY;IACtB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,KAAK,UAAU;CAChB"}
export type ChatItem = {
user_id?: string;
username?: string;
speaker?: "user" | "backend";
text?: string;
event?: string;
error_reason?: string;
timestamp?: Date;
url?: string;
session_id?: string;
type?: string;
media?: string[];
is_last?: boolean;
messages?: ChatItem[];
id?: number | string;
isSent?: boolean;
disabled?: boolean;
visible?: boolean;
matches_suggestion?: boolean;
userFeedback?: boolean;
input_message_id?: string;
part_order?: number;
received_message_id?: number;
streaming?: boolean;
stream_id?: string;
pointer?: string[];
};
export type ChatHistory = Map<string, ChatItem>;
//# sourceMappingURL=chat.d.ts.map
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/types/chat.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IAGtB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC"}
import { ConversationMode, Language } from "./Conversation";
import { Environment } from "./environment";
export type WebsocketConnectionConfig = {
environment: Environment;
orgId: string;
headId: string;
token: string;
apiKey: string;
mode: ConversationMode;
language: Language;
onJoin?: () => void;
onError?: (error: string) => void;
};
//# sourceMappingURL=connection.d.ts.map
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/types/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,QAAQ,EAGT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC"}
import { Environment } from "./environment";
import { MessageEventData, OnDisconnectCallback } from "./event";
import { ElevenLabsOptions, MicrophoneEvents, MicrophoneProvider } from "./microphone";
import { ConnectHeadType } from "./User";
import { VideoTransitionType } from "./vp8";
export type Language = "ar-AE" | "bg-BG" | "bs-BA" | "cs-CZ" | "de-DE" | "en-US" | "es-ES" | "fr-FR" | "hu-HU" | "id-ID" | "it-IT" | "ka-GE" | "kk-KZ" | "lt-LT" | "lv-LV" | "nl-NL" | "pl-PL" | "pt-PT" | "ro-RO" | "ru-RU" | "sk-SK" | "sr-RS" | "th-TH" | "uk-UA";
export type Status = "connecting" | "connected" | "disconnecting" | "disconnected";
export type DigitalHumanOptions = {
username: string;
apiKey: string;
environment: Environment;
mode: ConversationMode;
language?: Language;
allowWakeLock?: boolean;
fadeTransitionsType?: VideoTransitionType;
voiceInterruptions?: boolean;
};
export type HeadOptions = {
orgId: string;
headId: string;
};
export type VideoHtmlElement = {
element: HTMLElement;
};
export type KeepSessionEventData = {
granted: boolean;
};
export type ConversationOptions = DigitalHumanOptions & HeadOptions;
export type MicrophoneType = {
microphoneProvider: MicrophoneProvider;
microphoneOptions: MicrophoneEvents;
elevenLabsOptions?: ElevenLabsOptions;
};
export type ConversationEvents = {
onStatusChange: (prop: {
status: Status;
}) => void;
onConnect: (prop: {
userId: string;
headInfo: ConnectHeadType;
microphoneAccess: boolean;
}) => void;
onDisconnect: OnDisconnectCallback;
onMessage: (prop: MessageEventData) => void;
onSuggestions: (prop: {
suggestions: string[];
}) => void;
onTimeoutWarning: () => void;
onTimeout: () => void;
onMuteStatusChange: (prop: {
isMuted: boolean;
}) => void;
onSpeakingStart: () => void;
onSpeakingEnd: () => void;
onStoppingEnd: () => void;
onStoppingStart: () => void;
onKeepSession: (prop: KeepSessionEventData) => void;
onError: (prop: {
message: string;
endConversation: boolean;
type: "toast" | "modal" | "silent";
}) => void;
onHighDemand: () => void;
};
export type ConversationMode = "chat" | "audio" | "video" | "default";
export type Role = "user" | "ai";
export type Mode = "speaking" | "listening" | "thinking" | "stopping";
export type StreamingType = "jpg" | "vp8";
export type QualityType = "low" | "standard" | "high" | "premium";
//# sourceMappingURL=Conversation.d.ts.map
{"version":3,"file":"Conversation.d.ts","sourceRoot":"","sources":["../../src/types/Conversation.ts"],"names":[],"mappings":"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"}
export type Environment = "production" | "staging" | "development";
//# sourceMappingURL=environment.d.ts.map
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/types/environment.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,aAAa,CAAC"}
export declare enum EventType {
TEXT = "text",
CONVERSATION_END = "conversation_end",
JOIN = "join",
ERROR = "error",
TIME_OUT = "timeout",
UNITH_NLP_EXCEPTION = "unith_nlp_exception",
ANALYTICS = "analytics-userFeedback",
CHOICE = "choice",
TIMEOUT_WARNING = "timeout_warning",
KEEP_SESSION = "keep_session",
RESPONSE = "response",
STREAMING = "streaming",
PING = "ping",
PONG = "pong",
BINARY = "binary",
STOP = "stop"
}
export declare enum StreamingEventType {
VIDEO_FRAME = "video_frame",
AUDIO_FRAME = "audio_frame",
METADATA = "metadata",
ERROR = "error",
CACHE = "cache",
STOP = "stop"
}
export interface Message {
id: number;
timestamp: string;
speaker: string;
text: string;
isSent: boolean;
user_id: string;
username?: string;
event: EventType.TEXT | EventType.KEEP_SESSION | EventType.STOP;
session_id?: string;
visible: boolean;
}
export type JoinEventData = {
granted: boolean;
};
export type GlobalEventData = {
event: EventType;
user_id: string;
username: string;
type?: string;
};
export type BinaryEventData = {
data: ArrayBuffer;
};
export type SpeakerType = "user" | "ai";
export type TextEventData = {
id: string;
timestamp: Date;
speaker: SpeakerType;
text: string;
isSent: boolean;
session_id: string;
visible: boolean;
is_last?: boolean;
part_order?: number;
input_message_id?: string;
suggestions: string[];
has_error?: boolean;
error_code?: number;
error_message?: string;
media?: string[];
video?: string;
stream_id?: string;
};
export type ConversationEndEventData = {
reason: string;
duration: number;
};
export type TimeoutEventData = {
remaining_time: number;
};
export type AnalyticsEventData = {
feedback_type: string;
rating: number;
comment?: string;
};
export type ChoiceEventData = {
choices: string[];
selected_choice?: string;
};
export type StreamingEventData = {
message?: string;
metadata_type?: string;
session_id?: string;
suggestions: string[];
event_timestamp_ms: number;
type: StreamingEventType;
video_url?: string;
text?: string;
error_type?: "resource_exhausted" | "deadline_exceeded" | "inactivity_timeout" | "canceled";
format?: "jpeg" | "wav";
frame_data?: string;
height?: number;
width?: string;
sample_rate?: string;
duration_ms?: number;
is_keyframe?: boolean;
};
export type PingEventData = {
event: EventType.PING;
timestamp: string;
id: string;
};
export type PongEventData = {
type: EventType.PONG;
timestamp: string;
id: string;
};
export type MessageEventData = {
timestamp: Date;
sender: SpeakerType;
text: string;
visible: boolean;
};
export type IncomingSocketEvent<T extends EventType = EventType> = T extends EventType.BINARY ? GlobalEventData & BinaryEventData : T extends EventType.JOIN ? GlobalEventData & JoinEventData : T extends EventType.TEXT ? GlobalEventData & TextEventData : T extends EventType.RESPONSE ? GlobalEventData & TextEventData : T extends EventType.CONVERSATION_END ? GlobalEventData & ConversationEndEventData : T extends EventType.STREAMING ? GlobalEventData & StreamingEventData : T extends EventType.TIME_OUT ? GlobalEventData & TimeoutEventData : T extends EventType.TIMEOUT_WARNING ? GlobalEventData & TimeoutEventData : T extends EventType.KEEP_SESSION ? GlobalEventData & JoinEventData : T extends EventType.ANALYTICS ? GlobalEventData & AnalyticsEventData : T extends EventType.PING ? GlobalEventData & PingEventData : T extends EventType.PONG ? GlobalEventData & PongEventData : T extends EventType.CHOICE ? GlobalEventData & ChoiceEventData : GlobalEventData;
export type AnyIncomingSocketEvent = IncomingSocketEvent<EventType.JOIN> | IncomingSocketEvent<EventType.TEXT> | IncomingSocketEvent<EventType.RESPONSE> | IncomingSocketEvent<EventType.STREAMING> | IncomingSocketEvent<EventType.BINARY> | IncomingSocketEvent<EventType.CONVERSATION_END> | IncomingSocketEvent<EventType.TIME_OUT> | IncomingSocketEvent<EventType.TIMEOUT_WARNING> | IncomingSocketEvent<EventType.KEEP_SESSION> | IncomingSocketEvent<EventType.ANALYTICS> | IncomingSocketEvent<EventType.CHOICE> | IncomingSocketEvent<EventType.PING> | IncomingSocketEvent<EventType.PONG> | (GlobalEventData & {
event: Exclude<EventType, EventType.JOIN | EventType.TEXT | EventType.CONVERSATION_END | EventType.TIME_OUT | EventType.TIMEOUT_WARNING | EventType.ANALYTICS | EventType.CHOICE | EventType.RESPONSE | EventType.STREAMING | EventType.PING | EventType.KEEP_SESSION | EventType.BINARY>;
});
export type DisconnectionDetails = {
reason: "error" | "user";
message?: string;
context?: Event;
};
export type OnDisconnectCallback = (details: DisconnectionDetails) => void;
export type OnMessageCallback = (event: AnyIncomingSocketEvent) => void;
export type OnPingPongCallback = (event: PongEventData) => void;
export declare function isJoinEvent(event: AnyIncomingSocketEvent): event is IncomingSocketEvent<EventType.JOIN>;
export declare function isTextEvent(event: AnyIncomingSocketEvent): event is IncomingSocketEvent<EventType.TEXT>;
export declare function isResponseEvent(event: AnyIncomingSocketEvent): event is IncomingSocketEvent<EventType.RESPONSE>;
export declare function isStreamingEvent(event: AnyIncomingSocketEvent): event is IncomingSocketEvent<EventType.STREAMING>;
export declare function isStreamingErrorEvent(event: AnyIncomingSocketEvent): event is IncomingSocketEvent<EventType.STREAMING>;
export declare function isBinaryEvent(event: AnyIncomingSocketEvent): event is IncomingSocketEvent<EventType.BINARY>;
export declare function isConversationEndEvent(event: AnyIncomingSocketEvent): event is IncomingSocketEvent<EventType.CONVERSATION_END>;
export declare function isPongEvent(event: AnyIncomingSocketEvent): event is IncomingSocketEvent<EventType.PONG>;
export declare function isTimeoutWarningEvent(event: AnyIncomingSocketEvent): event is IncomingSocketEvent<EventType.TIMEOUT_WARNING>;
export declare function isTimeoutEvent(event: AnyIncomingSocketEvent): event is IncomingSocketEvent<EventType.TIME_OUT>;
export declare function isKeepSessionEvent(event: AnyIncomingSocketEvent): event is IncomingSocketEvent<EventType.KEEP_SESSION>;
//# sourceMappingURL=event.d.ts.map
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/types/event.ts"],"names":[],"mappings":"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"}
export type ObjectOfStrings = {
[key: string]: string;
};
export type IdleVideoConfig = {
src: string;
enabled: boolean;
};
//# sourceMappingURL=idle-video.d.ts.map
{"version":3,"file":"idle-video.d.ts","sourceRoot":"","sources":["../../src/types/idle-video.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAExD,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC"}
export type MicrophoneEvents = {
onMicrophoneError: (prop: {
message: string;
}) => void;
onMicrophoneStatusChange: (prop: {
status: "ON" | "OFF" | "PROCESSING";
}) => void;
onMicrophoneSpeechRecognitionResult: (prop: {
transcript: string;
}) => void;
onMicrophonePartialSpeechRecognitionResult: (prop: {
transcript: string;
}) => void;
};
export type MicrophoneProvider = "azure" | "custom" | "eleven_labs";
export type MicrophoneStatus = "ON" | "OFF" | "PROCESSING";
export type ElevenLabsOptions = {
noiseSuppression: boolean;
vadSilenceThresholdSecs: number;
vadThreshold: number;
minSpeechDurationMs: number;
minSilenceDurationMs: number;
disableDynamicSpeechRecognition?: boolean;
};
export type MicTokenResponseType = {
token: string;
region: string;
generatedAt: number | null;
};
//# sourceMappingURL=microphone.d.ts.map
{"version":3,"file":"microphone.d.ts","sourceRoot":"","sources":["../../src/types/microphone.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iBAAiB,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACvD,wBAAwB,EAAE,CAAC,IAAI,EAAE;QAC/B,MAAM,EAAE,IAAI,GAAG,KAAK,GAAG,YAAY,CAAC;KACrC,KAAK,IAAI,CAAC;IACX,mCAAmC,EAAE,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5E,0CAA0C,EAAE,CAAC,IAAI,EAAE;QACjD,UAAU,EAAE,MAAM,CAAC;KACpB,KAAK,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa,CAAC;AACpE,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,KAAK,GAAG,YAAY,CAAC;AAC3D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,+BAA+B,CAAC,EAAE,OAAO,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC"}
export type DriftSample = {
timestamp: number;
drift: number;
audioTime: number;
videoTime: number;
};
export type SyncConfig = {
softCorrectionThreshold: number;
hardCorrectionThreshold: number;
tolerance: number;
maxCorrectionRate: number;
correctionCoolDown: number;
correctionFadeTime: number;
minAudioBuffer: number;
maxAudioBuffer: number;
minVideoBuffer: number;
maxVideoBuffer: number;
historyLength: number;
};
export type TimingInfo = {
timestamp: number;
relativeTime: number;
};
//# sourceMappingURL=sync.d.ts.map
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/types/sync.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,uBAAuB,EAAE,MAAM,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAElB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAE3B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IAEvB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC"}
import { Language } from "./Conversation";
export type ApiErrorType = {
response?: {
data?: {
detail?: string;
};
status_code?: number;
status?: number;
};
name?: string;
};
export type TokenResponseType = {
access_token: string;
user_id: string;
token_type: string;
};
export type HeadType = {
alias: string;
icon_config: undefined;
lang_speech_recognition: string;
language: Language;
name: string;
operation_mode: "ttt" | "oc" | "doc_qa";
phrases: string[];
streaming_enabled: boolean;
allowed_iframe_origins: string[];
avatarSrc?: string;
};
export type ConnectHeadType = {
name: string;
phrases: string[];
language: Language;
avatar?: string;
};
export type AuthTokenType = {
exp: number;
username: string;
admin: boolean;
};
export type ApiAsrTokenType = {
token: string;
region: string;
};
//# sourceMappingURL=User.d.ts.map
{"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../src/types/User.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,SAAS,CAAC;IACvB,uBAAuB,EAAE,MAAM,CAAC;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,KAAK,GAAG,IAAI,GAAG,QAAQ,CAAC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAE9E,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC"}
export interface FrameData {
data: Uint8Array<ArrayBuffer>;
timestamp: number;
isKeyframe: boolean;
sequenceId: number;
size: number;
}
export interface VideoMetrics {
framesRendered: number;
framesDropped: number;
actualFps: number;
bufferSize: number;
lastRenderTime: number;
decoderQueueSize: number;
}
export declare enum VideoState {
INITIALIZING = "initializing",
READY = "ready",
PLAYING = "playing",
PAUSED = "paused",
INTERRUPTED = "interrupted",
DESTROYED = "destroyed"
}
export interface VideoTransitionConfig {
enabled: boolean;
type: VideoTransitionType;
}
export declare enum VideoTransitionType {
NONE = "none",
CROSSFADE = "crossfade",
FADEIN = "fadein",
FADEOUT = "fadeout"
}
export interface VideoFrameType {
timeStamp: number;
isKeyframe?: boolean;
}
export interface VideoFormatConfig {
width: number;
height: number;
frameRate: number;
format: "jpeg" | "webp" | "png";
backgroundColor?: string;
antialias?: boolean;
resolution?: number;
maxBufferSize?: number;
enableAdaptiveQuality?: boolean;
}
//# sourceMappingURL=vp8.d.ts.map
{"version":3,"file":"vp8.d.ts","sourceRoot":"","sources":["../../src/types/vp8.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,oBAAY,UAAU;IACpB,YAAY,iBAAiB;IAC7B,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAED,oBAAY,mBAAmB;IAC7B,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC"}
export declare const loadAudioConcatProcessor: (worklet: AudioWorklet) => Promise<void>;
export declare function base64ToArrayBuffer(base64: string): ArrayBuffer;
export declare function detectAudioFormat(base64Data: string): {
hasHeader: boolean;
headerSize: number;
format: string;
shouldSlice: boolean;
};
//# sourceMappingURL=audio.d.ts.map
{"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../src/utils/audio.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,wBAAwB,0CAuRpC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAQ/D;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG;IACrD,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB,CAgHA"}
import { ElevenLabsOptions } from "../types/microphone";
export type AsrTokenType = {
exp: number;
};
export declare function getAsrToken(orgId: string, headId: string): Promise<{
token: string;
region: string;
}>;
export declare const defaultElevenLabsOptions: ElevenLabsOptions;
/**
* Extracts ISO 639-1 or ISO 639-3 language code from a language tag
* @param {string} languageTag - Language tag (e.g., "en-US", "zh-Hans-CN", "en")
* @returns {string} ISO 639 language code (e.g., "en", "zh")
*/
export declare function getLanguageCode(languageTag: string): string;
//# sourceMappingURL=microphone.d.ts.map
{"version":3,"file":"microphone.d.ts","sourceRoot":"","sources":["../../src/utils/microphone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,MAAM,MAAM,YAAY,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;GAM9D;AAED,eAAO,MAAM,wBAAwB,EAAE,iBAOtC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,UAelD"}
export declare const getFromStorage: (key: string, orgId: string, headId: string) => string | null | undefined;
export declare const setToStorage: (key: string, val: string, orgId: string, headId: string) => void;
export declare const setCookie: (key: string, val: string) => void;
export declare const getCookie: (key: string) => string | null | undefined;
//# sourceMappingURL=storage.d.ts.map
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/utils/storage.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,GACzB,KAAK,MAAM,EACX,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,MAAM,GAAG,IAAI,GAAG,SAKlB,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,KAAK,MAAM,EACX,KAAK,MAAM,EACX,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,IAMF,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,IAKpD,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,IAAI,GAAG,SAIvD,CAAC"}
import { SyncConfig } from "../types/sync";
export declare const DEFAULT_SYNC_CONFIG: SyncConfig;
//# sourceMappingURL=sync.d.ts.map
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/utils/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,eAAO,MAAM,mBAAmB,EAAE,UAYjC,CAAC"}
export declare function createWorkletModuleLoader(name: string, sourceCode: string): (worklet: AudioWorklet) => Promise<void>;
//# sourceMappingURL=worklet-loader.d.ts.map
{"version":3,"file":"worklet-loader.d.ts","sourceRoot":"","sources":["../../src/utils/worklet-loader.ts"],"names":[],"mappings":"AAEA,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,IAC1D,SAAS,YAAY,mBA8BpC"}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display