@convai/web-sdk 1.7.0-beta.0 → 1.7.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -6
- package/dist/core/AudioManager.js.map +1 -1
- package/dist/core/BlendshapeQueue.js.map +1 -1
- package/dist/core/ConnectionStateHandler.js.map +1 -1
- package/dist/core/ConvaiClient.d.ts +1 -31
- package/dist/core/ConvaiClient.d.ts.map +1 -1
- package/dist/core/ConvaiClient.js +8 -200
- package/dist/core/ConvaiClient.js.map +1 -1
- package/dist/core/EventEmitter.js.map +1 -1
- package/dist/core/MemoryManager.js.map +1 -1
- package/dist/core/MessageHandler.d.ts.map +1 -1
- package/dist/core/MessageHandler.js +4 -26
- package/dist/core/MessageHandler.js.map +1 -1
- package/dist/core/ScreenShareManager.js.map +1 -1
- package/dist/core/VideoManager.js.map +1 -1
- package/dist/core/connectRequest.d.ts +2 -2
- package/dist/core/connectRequest.js +3 -3
- package/dist/core/connectRequest.js.map +1 -1
- package/dist/core/contextUpdateRequest.js.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/types.d.ts +9 -163
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/videoSourceState.js.map +1 -1
- package/dist/core/visionRequest.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lipsync-helpers/arkitOrder61.js.map +1 -1
- package/dist/lipsync-helpers/createBlendshapeQueue.js.map +1 -1
- package/dist/lipsync-helpers/declarativeMapping.js.map +1 -1
- package/dist/lipsync-helpers/index.js.map +1 -1
- package/dist/lipsync-helpers/mappingTypes.js.map +1 -1
- package/dist/lipsync-helpers/metahumanOrder251.js.map +1 -1
- package/dist/lipsync-helpers/mhaLimitDrivers.js.map +1 -1
- package/dist/lipsync-helpers/naturalness/processor.js.map +1 -1
- package/dist/lipsync-helpers/naturalness/profiles/mha.js.map +1 -1
- package/dist/lipsync-helpers/naturalness/types.js.map +1 -1
- package/dist/lipsync-helpers/presetMappers.js.map +1 -1
- package/dist/react/components/ConvaiWidget.js.map +1 -1
- package/dist/react/components/index.js.map +1 -1
- package/dist/react/components/rtc-widget/components/AudioSettingsPanel.js.map +1 -1
- package/dist/react/components/rtc-widget/components/AudioVisualizer.js.map +1 -1
- package/dist/react/components/rtc-widget/components/ConviMessage.js.map +1 -1
- package/dist/react/components/rtc-widget/components/FloatingVideo.js.map +1 -1
- package/dist/react/components/rtc-widget/components/MarkdownRenderer.js.map +1 -1
- package/dist/react/components/rtc-widget/components/MessageBubble.js.map +1 -1
- package/dist/react/components/rtc-widget/components/MessageList.js.map +1 -1
- package/dist/react/components/rtc-widget/components/UserMessage.js.map +1 -1
- package/dist/react/components/rtc-widget/components/conviComponents/ConviButton.js.map +1 -1
- package/dist/react/components/rtc-widget/components/conviComponents/ConviFooter.js.map +1 -1
- package/dist/react/components/rtc-widget/components/conviComponents/ConviHeader.js.map +1 -1
- package/dist/react/components/rtc-widget/components/conviComponents/SettingsTray.js.map +1 -1
- package/dist/react/components/rtc-widget/components/conviComponents/VoiceModeOverlay.js.map +1 -1
- package/dist/react/components/rtc-widget/components/conviComponents/index.js.map +1 -1
- package/dist/react/components/rtc-widget/components/index.js.map +1 -1
- package/dist/react/components/rtc-widget/index.js.map +1 -1
- package/dist/react/components/rtc-widget/styles/framerConfig.js.map +1 -1
- package/dist/react/components/rtc-widget/styles/icons.js.map +1 -1
- package/dist/react/components/rtc-widget/styles/index.js.map +1 -1
- package/dist/react/components/rtc-widget/styles/styledComponents.js.map +1 -1
- package/dist/react/components/rtc-widget/styles/theme.js.map +1 -1
- package/dist/react/components/rtc-widget/types/index.js.map +1 -1
- package/dist/react/hooks/index.js.map +1 -1
- package/dist/react/hooks/useCharacterInfo.js.map +1 -1
- package/dist/react/hooks/useConvaiClient.d.ts.map +1 -1
- package/dist/react/hooks/useConvaiClient.js +0 -3
- package/dist/react/hooks/useConvaiClient.js.map +1 -1
- package/dist/react/hooks/useLocalCameraTrack.js.map +1 -1
- package/dist/react/index.js.map +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/vanilla/AudioRenderer.js.map +1 -1
- package/dist/vanilla/ConvaiWidget.js.map +1 -1
- package/dist/vanilla/WebSocketSession.js.map +1 -1
- package/dist/vanilla/icons.js.map +1 -1
- package/dist/vanilla/index.js.map +1 -1
- package/dist/vanilla/styles.js.map +1 -1
- package/dist/vanilla/types.d.ts +2 -2
- package/dist/vanilla/types.d.ts.map +1 -1
- package/dist/vanilla/types.js.map +1 -1
- package/dist/vanilla/websocket.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +4 -0
- package/dist/version.js.map +1 -0
- package/package.json +13 -6
- package/dist/core/CharacterRoster.d.ts +0 -68
- package/dist/core/CharacterRoster.d.ts.map +0 -1
- package/dist/core/CharacterRoster.js +0 -235
- package/dist/core/CharacterRoster.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../../src/core/EventEmitter.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,YAAY;IAAzB;QACU,WAAM,GAAoC,IAAI,GAAG,EAAE,CAAC;IAqE9D,CAAC;IAnEC;;;;;OAKG;IACH,EAAE,CAAC,KAAa,EAAE,QAAuB;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEtC,8BAA8B;QAC9B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,KAAa,EAAE,QAAuB;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3B,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,KAAa,EAAE,GAAG,IAAW;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC7B,IAAI,CAAC;oBACH,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;gBACpB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../../src/core/EventEmitter.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,YAAY;IAAzB;QACU,WAAM,GAAoC,IAAI,GAAG,EAAE,CAAC;IAqE9D,CAAC;IAnEC;;;;;OAKG;IACH,EAAE,CAAC,KAAa,EAAE,QAAuB;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEtC,8BAA8B;QAC9B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,KAAa,EAAE,QAAuB;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3B,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,KAAa,EAAE,GAAG,IAAW;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC7B,IAAI,CAAC;oBACH,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;gBACpB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF","sourcesContent":["/**\n * Simple event emitter for state change notifications\n * Allows subscribers to listen for state changes without React dependencies\n */\nexport type EventCallback = (...args: any[]) => void;\n\nexport class EventEmitter {\n private events: Map<string, Set<EventCallback>> = new Map();\n\n /**\n * Subscribe to an event\n * @param event Event name\n * @param callback Callback function\n * @returns Unsubscribe function\n */\n on(event: string, callback: EventCallback): () => void {\n if (!this.events.has(event)) {\n this.events.set(event, new Set());\n }\n \n this.events.get(event)!.add(callback);\n\n // Return unsubscribe function\n return () => {\n this.off(event, callback);\n };\n }\n\n /**\n * Unsubscribe from an event\n * @param event Event name\n * @param callback Callback function to remove\n */\n off(event: string, callback: EventCallback): void {\n const callbacks = this.events.get(event);\n if (callbacks) {\n callbacks.delete(callback);\n if (callbacks.size === 0) {\n this.events.delete(event);\n }\n }\n }\n\n /**\n * Emit an event to all subscribers\n * @param event Event name\n * @param args Arguments to pass to callbacks\n */\n emit(event: string, ...args: any[]): void {\n const callbacks = this.events.get(event);\n if (callbacks) {\n callbacks.forEach((callback) => {\n try {\n callback(...args);\n } catch (error) {\n console.error(`Error in event handler for \"${event}\":`, error);\n }\n });\n }\n }\n\n /**\n * Remove all event listeners\n */\n removeAllListeners(): void {\n this.events.clear();\n }\n\n /**\n * Get the number of listeners for an event\n * @param event Event name\n * @returns Number of listeners\n */\n listenerCount(event: string): number {\n return this.events.get(event)?.size ?? 0;\n }\n}\n\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryManager.js","sourceRoot":"","sources":["../../src/core/MemoryManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MemoryManager.js","sourceRoot":"","sources":["../../src/core/MemoryManager.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Convai Memory Manager\n * \n * Manages long-term memories for characters using the Convai Memory API.\n * All memory operations are scoped to a (character_id, end_user_id) pair.\n * \n * @example\n * ```typescript\n * const memoryManager = new MemoryManager(apiKey, characterId, endUserId);\n * \n * // Add memories\n * const result = await memoryManager.addMemories([\n * \"User prefers outdoor activities\",\n * \"User is allergic to peanuts\"\n * ]);\n * \n * // List memories\n * const memories = await memoryManager.listMemories({ page: 1, pageSize: 50 });\n * \n * // Get a specific memory\n * const memory = await memoryManager.getMemory(memoryId);\n * \n * // Delete a memory\n * await memoryManager.deleteMemory(memoryId);\n * \n * // Delete all memories\n * await memoryManager.deleteAllMemories();\n * ```\n */\n\nimport {\n MemoryAddRequest,\n MemoryAddResponse,\n MemoryListRequest,\n MemoryListResponse,\n MemoryGetRequest,\n MemoryGetResponse,\n MemoryDeleteRequest,\n MemoryDeleteResponse,\n MemoryDeleteAllRequest,\n MemoryDeleteAllResponse,\n MemoryError,\n} from './types';\n\n/**\n * MemoryManager class for handling Convai Memory API operations.\n * Provides methods to add, list, get, and delete memories for a character.\n */\nexport class MemoryManager {\n private apiKey: string | null;\n private authToken: string | null;\n private characterId: string;\n private endUserId: string;\n private baseUrl: string;\n\n /**\n * Create a new MemoryManager instance\n * \n * @param apiKeyOrAuthToken - Convai API key or auth token (required)\n * @param characterId - Character UUID (required)\n * @param endUserId - End user identifier (required)\n * @param baseUrl - Base URL for Convai API (default: https://api.convai.com)\n * @param useAuthToken - If true, treats first parameter as auth token instead of API key (default: false)\n */\n constructor(\n apiKeyOrAuthToken: string,\n characterId: string,\n endUserId: string,\n baseUrl: string = 'https://api.convai.com',\n useAuthToken: boolean = false\n ) {\n if (!apiKeyOrAuthToken) {\n throw new Error('API key or auth token is required');\n }\n if (!characterId) {\n throw new Error('Character ID is required');\n }\n if (!endUserId) {\n throw new Error('End user ID is required');\n }\n\n // Set either apiKey or authToken based on the flag\n if (useAuthToken) {\n this.apiKey = null;\n this.authToken = apiKeyOrAuthToken;\n } else {\n this.apiKey = apiKeyOrAuthToken;\n this.authToken = null;\n }\n \n this.characterId = characterId;\n this.endUserId = endUserId;\n this.baseUrl = baseUrl.replace(/\\/$/, ''); // Remove trailing slash\n }\n\n /**\n * Make an authenticated request to the Convai Memory API\n */\n private async makeRequest<T>(\n endpoint: string,\n body: unknown\n ): Promise<T> {\n const url = `${this.baseUrl}${endpoint}`;\n\n try {\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n };\n\n // Set authentication header based on what's available\n if (this.authToken) {\n headers['API-AUTH-TOKEN'] = this.authToken;\n } else if (this.apiKey) {\n headers['CONVAI-API-KEY'] = this.apiKey;\n }\n\n const response = await fetch(url, {\n method: 'POST',\n headers,\n body: JSON.stringify(body),\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n const error = data as MemoryError;\n throw new Error(\n error.ERROR || `HTTP error! status: ${response.status}`\n );\n }\n\n return data as T;\n } catch (error) {\n if (error instanceof Error) {\n throw error;\n }\n throw new Error('Unknown error occurred');\n }\n }\n\n /**\n * Add one or more memory strings\n * \n * @param memories - Array of memory strings to add (required, non-empty)\n * @returns Promise resolving to the add response with memory IDs\n * \n * @example\n * ```typescript\n * const result = await memoryManager.addMemories([\n * \"User prefers outdoor activities\",\n * \"User is allergic to peanuts\"\n * ]);\n * \n * result.memories.forEach(memory => {\n * console.log(`Added memory ${memory.id}: ${memory.memory}`);\n * });\n * ```\n */\n async addMemories(memories: string[]): Promise<MemoryAddResponse> {\n if (!memories || memories.length === 0) {\n throw new Error('Memories array is required and must not be empty');\n }\n\n const request: MemoryAddRequest = {\n character_id: this.characterId,\n end_user_id: this.endUserId,\n memories,\n };\n\n return this.makeRequest<MemoryAddResponse>('/memory/add', request);\n }\n\n /**\n * List memories with pagination\n * \n * @param options - Pagination options\n * @param options.page - Page number (default: 1, clamped to 1-1000)\n * @param options.pageSize - Number of memories per page (default: 50, clamped to 1-100)\n * @returns Promise resolving to paginated list of memories\n * \n * @example\n * ```typescript\n * // Get first page\n * const firstPage = await memoryManager.listMemories({ page: 1, pageSize: 50 });\n * \n * console.log(`Total memories: ${firstPage.total_count}`);\n * console.log(`Has more: ${firstPage.has_more}`);\n * \n * firstPage.memories.forEach(memory => {\n * console.log(`${memory.id}: ${memory.memory}`);\n * });\n * \n * // Get next page if available\n * if (firstPage.has_more) {\n * const nextPage = await memoryManager.listMemories({ page: 2, pageSize: 50 });\n * }\n * ```\n */\n async listMemories(\n options: { page?: number; pageSize?: number } = {}\n ): Promise<MemoryListResponse> {\n const request: MemoryListRequest = {\n character_id: this.characterId,\n end_user_id: this.endUserId,\n page: options.page,\n page_size: options.pageSize,\n };\n\n return this.makeRequest<MemoryListResponse>('/memory/list', request);\n }\n\n /**\n * Fetch a single memory by ID\n * \n * @param memoryId - Memory UUID to fetch\n * @returns Promise resolving to the memory details\n * \n * @example\n * ```typescript\n * const memory = await memoryManager.getMemory('f4cbdb08-7062-4f3e-8eb2-9f5c80dfe64c');\n * \n * console.log(`Memory: ${memory.memory}`);\n * console.log(`Created: ${memory.created_at}`);\n * console.log(`Updated: ${memory.updated_at}`);\n * ```\n */\n async getMemory(memoryId: string): Promise<MemoryGetResponse> {\n if (!memoryId) {\n throw new Error('Memory ID is required');\n }\n\n const request: MemoryGetRequest = {\n character_id: this.characterId,\n end_user_id: this.endUserId,\n memory_id: memoryId,\n };\n\n return this.makeRequest<MemoryGetResponse>('/memory/get', request);\n }\n\n /**\n * Delete a single memory by ID\n * \n * @param memoryId - Memory UUID to delete\n * @returns Promise resolving to the deletion confirmation\n * \n * @example\n * ```typescript\n * const result = await memoryManager.deleteMemory('f4cbdb08-7062-4f3e-8eb2-9f5c80dfe64c');\n * \n * if (result.deleted) {\n * console.log('Memory deleted successfully');\n * }\n * ```\n */\n async deleteMemory(memoryId: string): Promise<MemoryDeleteResponse> {\n if (!memoryId) {\n throw new Error('Memory ID is required');\n }\n\n const request: MemoryDeleteRequest = {\n character_id: this.characterId,\n end_user_id: this.endUserId,\n memory_id: memoryId,\n };\n\n return this.makeRequest<MemoryDeleteResponse>('/memory/delete', request);\n }\n\n /**\n * Delete all memories for the (character_id, end_user_id) pair\n * \n * This operation is asynchronous on the server side.\n * Check listMemories() after a short delay if confirmation is needed.\n * \n * @returns Promise resolving to the deletion status message\n * \n * @example\n * ```typescript\n * const result = await memoryManager.deleteAllMemories();\n * console.log(result.message); // \"Memory deletion in progress...\"\n * \n * // Optional: Wait and verify\n * await new Promise(resolve => setTimeout(resolve, 2000));\n * const remaining = await memoryManager.listMemories();\n * console.log(`Remaining memories: ${remaining.total_count}`);\n * ```\n */\n async deleteAllMemories(): Promise<MemoryDeleteAllResponse> {\n const request: MemoryDeleteAllRequest = {\n character_id: this.characterId,\n end_user_id: this.endUserId,\n };\n\n return this.makeRequest<MemoryDeleteAllResponse>('/memory/delete-all', request);\n }\n\n /**\n * Update the end user ID for this memory manager instance\n * Useful when switching users in the same session\n * \n * @param endUserId - New end user identifier\n */\n setEndUserId(endUserId: string): void {\n if (!endUserId) {\n throw new Error('End user ID is required');\n }\n this.endUserId = endUserId;\n }\n\n /**\n * Get the current end user ID\n */\n getEndUserId(): string {\n return this.endUserId;\n }\n\n /**\n * Update the character ID for this memory manager instance\n * Useful when switching characters in the same session\n * \n * @param characterId - New character UUID\n */\n setCharacterId(characterId: string): void {\n if (!characterId) {\n throw new Error('Character ID is required');\n }\n this.characterId = characterId;\n }\n\n /**\n * Get the current character ID\n */\n getCharacterId(): string {\n return this.characterId;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageHandler.d.ts","sourceRoot":"","sources":["../../src/core/MessageHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAa,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAoD,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,eAAe,EAEhB,MAAM,mBAAmB,CAAC;AAS3B;;;GAGG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,wBAAwB,CAAa;IAC7C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,eAAe,CAAoD;IAI3E,OAAO,CAAC,qBAAqB,CAA8B;IAK3D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAG/B;gBAEE,IAAI,CAAC,EAAE,IAAI;IASvB;;OAEG;IACH,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI7C;;OAEG;IACH,eAAe,IAAI,WAAW,EAAE;IAIhC;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAI9B;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAI7B;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,UAAU,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIxD;;;OAGG;IACH,cAAc,IAAI,OAAO;IAIzB;;;;OAIG;IACH,wBAAwB,IAAI,IAAI;IAShC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAUzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAMtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"MessageHandler.d.ts","sourceRoot":"","sources":["../../src/core/MessageHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAa,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAoD,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,eAAe,EAEhB,MAAM,mBAAmB,CAAC;AAS3B;;;GAGG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,wBAAwB,CAAa;IAC7C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,eAAe,CAAoD;IAI3E,OAAO,CAAC,qBAAqB,CAA8B;IAK3D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAG/B;gBAEE,IAAI,CAAC,EAAE,IAAI;IASvB;;OAEG;IACH,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI7C;;OAEG;IACH,eAAe,IAAI,WAAW,EAAE;IAIhC;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAI9B;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAI7B;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,UAAU,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIxD;;;OAGG;IACH,cAAc,IAAI,OAAO;IAIzB;;;;OAIG;IACH,wBAAwB,IAAI,IAAI;IAShC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAUzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAMtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsf1B,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAInD;;OAEG;IACH,KAAK,IAAI,IAAI;CAgBd"}
|
|
@@ -132,19 +132,6 @@ export class MessageHandler extends EventEmitter {
|
|
|
132
132
|
// Extract and categorize messages for chat display
|
|
133
133
|
const timestamp = new Date().toISOString();
|
|
134
134
|
const messageId = `${messageData.type}-${Date.now()}-${Math.random()}`;
|
|
135
|
-
// Multi-character routing identity, carried inline on every event.
|
|
136
|
-
// Undefined in single-character sessions, so these spread to nothing.
|
|
137
|
-
const attribution = {
|
|
138
|
-
...(messageData.data?.membership_id && {
|
|
139
|
-
membershipId: messageData.data.membership_id,
|
|
140
|
-
}),
|
|
141
|
-
...(messageData.data?.character_id && {
|
|
142
|
-
characterId: messageData.data.character_id,
|
|
143
|
-
}),
|
|
144
|
-
};
|
|
145
|
-
// Two instances must never share a streaming bubble: a switch mid-turn
|
|
146
|
-
// would otherwise splice one character's text onto another's.
|
|
147
|
-
const sameSpeaker = (msg) => !!msg && msg.membershipId === attribution.membershipId;
|
|
148
135
|
// Handle different message types
|
|
149
136
|
switch (messageData.type) {
|
|
150
137
|
// User text messages - Skip these, only allow user-transcription
|
|
@@ -160,9 +147,7 @@ export class MessageHandler extends EventEmitter {
|
|
|
160
147
|
break;
|
|
161
148
|
// Bot Ready - Bot is ready, connection should be true
|
|
162
149
|
case "bot-ready":
|
|
163
|
-
|
|
164
|
-
// multi-character room; absent in single-character sessions.
|
|
165
|
-
this.emit("botReady", messageData.data?.about);
|
|
150
|
+
this.emit("botReady");
|
|
166
151
|
break;
|
|
167
152
|
// Bot LLM Started - Begin streaming response
|
|
168
153
|
case "bot-llm-started":
|
|
@@ -176,7 +161,6 @@ export class MessageHandler extends EventEmitter {
|
|
|
176
161
|
content: "",
|
|
177
162
|
timestamp: timestamp,
|
|
178
163
|
isStreaming: true,
|
|
179
|
-
...attribution,
|
|
180
164
|
};
|
|
181
165
|
this.chatMessages.push(streamingMessage);
|
|
182
166
|
this.emit("messagesChange", this.chatMessages);
|
|
@@ -214,9 +198,7 @@ export class MessageHandler extends EventEmitter {
|
|
|
214
198
|
lastMsg.content.includes(newText)) {
|
|
215
199
|
break;
|
|
216
200
|
}
|
|
217
|
-
if (lastMsg?.type === "bot-output" &&
|
|
218
|
-
lastMsg.isStreaming &&
|
|
219
|
-
sameSpeaker(lastMsg)) {
|
|
201
|
+
if (lastMsg?.type === "bot-output" && lastMsg.isStreaming) {
|
|
220
202
|
this.chatMessages[this.chatMessages.length - 1] = {
|
|
221
203
|
...lastMsg,
|
|
222
204
|
content: lastMsg.content + newText,
|
|
@@ -229,7 +211,6 @@ export class MessageHandler extends EventEmitter {
|
|
|
229
211
|
content: newText,
|
|
230
212
|
timestamp: new Date().toISOString(),
|
|
231
213
|
isStreaming: true,
|
|
232
|
-
...attribution,
|
|
233
214
|
});
|
|
234
215
|
}
|
|
235
216
|
this.emit("messagesChange", this.chatMessages);
|
|
@@ -241,23 +222,20 @@ export class MessageHandler extends EventEmitter {
|
|
|
241
222
|
const newChunk = messageData.data.text;
|
|
242
223
|
// Update the streaming message in chat
|
|
243
224
|
const lastMessage = this.chatMessages[this.chatMessages.length - 1];
|
|
244
|
-
if (lastMessage &&
|
|
245
|
-
lastMessage.isStreaming &&
|
|
246
|
-
sameSpeaker(lastMessage)) {
|
|
225
|
+
if (lastMessage && lastMessage.isStreaming) {
|
|
247
226
|
this.chatMessages[this.chatMessages.length - 1] = {
|
|
248
227
|
...lastMessage,
|
|
249
228
|
content: lastMessage.content + newChunk,
|
|
250
229
|
};
|
|
251
230
|
}
|
|
252
231
|
else {
|
|
253
|
-
//
|
|
232
|
+
// If no streaming message exists yet, create one
|
|
254
233
|
const streamingMsg = {
|
|
255
234
|
id: `${messageData.type}-${Date.now()}-${Math.random()}`,
|
|
256
235
|
type: "bot-llm-text",
|
|
257
236
|
content: newChunk,
|
|
258
237
|
timestamp: new Date().toISOString(),
|
|
259
238
|
isStreaming: true,
|
|
260
|
-
...attribution,
|
|
261
239
|
};
|
|
262
240
|
this.chatMessages.push(streamingMsg);
|
|
263
241
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageHandler.js","sourceRoot":"","sources":["../../src/core/MessageHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,eAAe,GAEhB,MAAM,mBAAmB,CAAC;AAS3B;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,YAAY;IAwB9C,YAAY,IAAW;QACrB,KAAK,EAAE,CAAC;QAxBF,SAAI,GAAgB,IAAI,CAAC;QACzB,iBAAY,GAAkB,EAAE,CAAC;QACjC,sBAAiB,GAAW,EAAE,CAAC;QAC/B,oBAAe,GAAY,IAAI,CAAC;QAChC,oBAAe,GAAY,KAAK,CAAC;QACjC,eAAU,GAAY,KAAK,CAAC;QAC5B,gBAAW,GAAY,KAAK,CAAC;QAC7B,6BAAwB,GAAW,CAAC,CAAC;QAErC,oBAAe,GAA+C,IAAI,CAAC;QAC3E,yEAAyE;QACzE,mEAAmE;QACnE,wEAAwE;QAChE,0BAAqB,GAAG,IAAI,GAAG,EAAmB,CAAC;QAYzD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,OAAgB;QACpC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,wBAAwB;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;QACjC,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAU;QAChB,mCAAmC;QACnC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;QAEvB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;QAEvB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACK,kBAAkB,CACxB,OAAmB,EACnB,YAAqB,EACrB,aAAsC,SAAS;QAE/C,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC;YACH,yBAAyB;YACzB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAExC,aAAa;YACb,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC9C,MAAM,GAAG,IAAI,CAAC;YAEd,mDAAmD;YACnD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,GAAG,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAEvE,mEAAmE;YACnE,sEAAsE;YACtE,MAAM,WAAW,GAAsD;gBACrE,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,IAAI;oBACrC,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,aAAuB;iBACvD,CAAC;gBACF,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,IAAI;oBACpC,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,YAAsB;iBACrD,CAAC;aACH,CAAC;YACF,uEAAuE;YACvE,8DAA8D;YAC9D,MAAM,WAAW,GAAG,CAAC,GAA4B,EAAW,EAAE,CAC5D,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,KAAK,WAAW,CAAC,YAAY,CAAC;YAEzD,iCAAiC;YACjC,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;gBACzB,iEAAiE;gBACjE,KAAK,mBAAmB,CAAC;gBACzB,KAAK,eAAe,CAAC;gBACrB,KAAK,YAAY,CAAC;gBAClB,KAAK,YAAY,CAAC;gBAClB,KAAK,cAAc,CAAC;gBACpB,KAAK,cAAc,CAAC;gBACpB,KAAK,YAAY,CAAC;gBAClB,KAAK,SAAS;oBACZ,0DAA0D;oBAC1D,MAAM;gBAER,sDAAsD;gBACtD,KAAK,WAAW;oBACd,wDAAwD;oBACxD,6DAA6D;oBAC7D,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBAC/C,MAAM;gBAER,6CAA6C;gBAC7C,KAAK,iBAAiB;oBACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;oBAC5B,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;oBACvC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;oBAEnC,wCAAwC;oBACxC,MAAM,gBAAgB,GAAgB;wBACpC,EAAE,EAAE,SAAS;wBACb,IAAI,EAAE,cAAc;wBACpB,OAAO,EAAE,EAAE;wBACX,SAAS,EAAE,SAAS;wBACpB,WAAW,EAAE,IAAI;wBACjB,GAAG,WAAW;qBACf,CAAC;oBACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBACzC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC/C,MAAM;gBAER,uFAAuF;gBACvF,qEAAqE;gBACrE,kEAAkE;gBAClE,yDAAyD;gBACzD,mEAAmE;gBACnE,0BAA0B;gBAC1B,KAAK,YAAY;oBACf,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;wBAC3B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;wBACtC,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,UAGtB,CAAC;wBACd,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;4BACrB,IAAI,EAAE,OAAO;4BACb,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK;4BACxC,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,aAAa,IAAI,UAAU;4BAC1D,SAAS;4BACT,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,aAAa;yBAC7C,CAAC,CAAC;wBAEH,4DAA4D;wBAC5D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;4BAC5B,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC;gCAAE,MAAM;4BACrD,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;wBAC5C,CAAC;wBAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAChE,oDAAoD;wBACpD,wDAAwD;wBACxD,yDAAyD;wBACzD,IAAI,OAAO,EAAE,IAAI,KAAK,cAAc;4BAAE,MAAM;wBAC5C,IACE,OAAO,EAAE,IAAI,KAAK,YAAY;4BAC9B,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EACjC,CAAC;4BACD,MAAM;wBACR,CAAC;wBACD,IACE,OAAO,EAAE,IAAI,KAAK,YAAY;4BAC9B,OAAO,CAAC,WAAW;4BACnB,WAAW,CAAC,OAAO,CAAC,EACpB,CAAC;4BACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG;gCAChD,GAAG,OAAO;gCACV,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO;6BACnC,CAAC;wBACJ,CAAC;6BAAM,CAAC;4BACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gCACrB,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;gCAC/C,IAAI,EAAE,YAAY;gCAClB,OAAO,EAAE,OAAO;gCAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gCACnC,WAAW,EAAE,IAAI;gCACjB,GAAG,WAAW;6BACf,CAAC,CAAC;wBACL,CAAC;wBACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBACjD,CAAC;oBACD,MAAM;gBAER,2CAA2C;gBAC3C,KAAK,cAAc;oBACjB,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;wBAC3B,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;wBAEvC,uCAAuC;wBACvC,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACpE,IACE,WAAW;4BACX,WAAW,CAAC,WAAW;4BACvB,WAAW,CAAC,WAAW,CAAC,EACxB,CAAC;4BACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG;gCAChD,GAAG,WAAW;gCACd,OAAO,EAAE,WAAW,CAAC,OAAO,GAAG,QAAQ;6BACxC,CAAC;wBACJ,CAAC;6BAAM,CAAC;4BACN,mDAAmD;4BACnD,MAAM,YAAY,GAAgB;gCAChC,EAAE,EAAE,GAAG,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;gCACxD,IAAI,EAAE,cAAc;gCACpB,OAAO,EAAE,QAAQ;gCACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gCACnC,WAAW,EAAE,IAAI;gCACjB,GAAG,WAAW;6BACf,CAAC;4BACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACvC,CAAC;wBACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBACjD,CAAC;oBACD,MAAM;gBAER,gDAAgD;gBAChD,KAAK,iBAAiB;oBACpB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACnE,IAAI,UAAU,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;wBACzC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG;4BAChD,GAAG,UAAU;4BACb,WAAW,EAAE,KAAK;yBACnB,CAAC;oBACJ,CAAC;oBAED,wBAAwB;oBACxB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;oBAC7B,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;oBACxC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC/C,MAAM;gBAER,8BAA8B;gBAC9B,KAAK,oBAAoB;oBACvB,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;wBAC3B,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;wBAE7C,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;4BAC5B,uEAAuE;4BACvE,MAAM,WAAW,GACf,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BAElD,2EAA2E;4BAC3E,IACE,WAAW;gCACX,WAAW,CAAC,IAAI,KAAK,oBAAoB;gCACzC,WAAW,CAAC,WAAW,KAAK,IAAI,EAChC,CAAC;gCACD,gEAAgE;gCAChE,MAAM,kBAAkB,GACtB,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;gCAE3D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG;oCAChD,GAAG,WAAW;oCACd,OAAO,EAAE,kBAAkB;oCAC3B,SAAS,EAAE,SAAS;iCACrB,CAAC;4BACJ,CAAC;iCAAM,CAAC;gCACN,+EAA+E;gCAC/E,MAAM,WAAW,GAAgB;oCAC/B,EAAE,EAAE,SAAS;oCACb,IAAI,EAAE,oBAAoB;oCAC1B,OAAO,EAAE,cAAc;oCACvB,SAAS,EAAE,SAAS;oCACpB,WAAW,EAAE,IAAI;iCAClB,CAAC;gCACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;4BACtC,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;4BAE/C,sCAAsC;4BACtC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;4BAC5B,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;wBAC3C,CAAC;6BAAM,CAAC;4BACN,gDAAgD;4BAChD,IAAI,CAAC,iBAAiB,GAAG,cAAc,CAAC;4BACxC,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,cAAc,CAAC,CAAC;wBACvD,CAAC;oBACH,CAAC;oBACD,MAAM;gBAER,2FAA2F;gBAC3F,KAAK,aAAa;oBAChB,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;wBAC9B,IAAI,CAAC,eAAe,GAAG;4BACrB,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO;4BACjC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK;yBAC9B,CAAC;wBACF,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;wBACnD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;wBACjD,MAAM,cAAc,GAAgB;4BAClC,EAAE,EAAE,SAAS;4BACb,IAAI,EAAE,aAAa;4BACnB,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,YAAY,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG;4BAC9E,SAAS;yBACV,CAAC;wBACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBACvC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBACjD,CAAC;oBACD,MAAM;gBACR,4EAA4E;gBAC5E,KAAK,cAAc;oBACjB,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;wBAC3B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC3D,CAAC;oBACD,MAAM;gBAER,sEAAsE;gBACtE,KAAK,iBAAiB;oBACpB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC3B,MAAM;gBAER,KAAK,iBAAiB;oBACpB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC3B,MAAM;gBAER,gCAAgC;gBAChC,KAAK,mBAAmB;oBACtB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;oBAC7B,MAAM;gBAER,KAAK,mBAAmB;oBACtB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;oBAC7B,MAAM;gBAER,KAAK,uBAAuB;oBAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;oBACnC,MAAM;gBAER,KAAK,uBAAuB;oBAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;oBACzB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;oBACpC,MAAM;gBAER,yEAAyE;gBACzE,KAAK,sBAAsB,CAAC,CAAC,CAAC;oBAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACpD,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC7C,MAAM;oBACR,CAAC;oBACD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC;oBACxD,IAAI,OAAO,EAAE,CAAC;wBACZ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;wBACvB,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC;wBAClC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;oBACpC,CAAC;oBACD,MAAM;gBACR,CAAC;gBAED,uBAAuB;gBACvB,KAAK,sBAAsB;oBACzB,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;wBAC7E,MAAM;oBACR,CAAC;oBACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;wBACpB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;wBACxB,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;wBACvC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;oBACrC,CAAC;oBACD,MAAM;gBAER,iDAAiD;gBACjD,KAAK,iBAAiB;oBACpB,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;oBAClF,MAAM;gBAER,KAAK,SAAS;oBACZ,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;wBACrB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;oBACzC,CAAC;oBACD,MAAM;gBACR,kCAAkC;gBAClC,KAAK,wBAAwB;oBAC3B,IAAI,WAAW,CAAC,IAAI,EAAE,oBAAoB,EAAE,CAAC;wBAC3C,MAAM,eAAe,GAAgB;4BACnC,EAAE,EAAE,SAAS;4BACb,IAAI,EAAE,eAAe;4BACrB,OAAO,EAAE,sBAAsB,WAAW,CAAC,IAAI,CAAC,oBAAoB,EAAE;4BACtE,SAAS;yBACV,CAAC;wBACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;wBACxC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBACjD,CAAC;oBACD,MAAM;gBAER,gEAAgE;gBAChE,KAAK,gBAAgB;oBACnB,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;wBACrB,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC;wBAEpC,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;4BACxB,KAAK,0BAA0B;gCAC7B,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;oCACpB,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;oCAClC,MAAM,WAAW,GACf,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oCAClD,IACE,WAAW;wCACX,WAAW,CAAC,IAAI,KAAK,oBAAoB;wCACzC,WAAW,CAAC,WAAW,KAAK,IAAI,EAChC,CAAC;wCACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG;4CAChD,GAAG,WAAW;4CACd,OAAO,EAAE,SAAS;4CAClB,SAAS;4CACT,WAAW,EAAE,KAAK;yCACnB,CAAC;oCACJ,CAAC;yCAAM,CAAC;wCACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;4CACrB,EAAE,EAAE,GAAG,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;4CACvD,IAAI,EAAE,oBAAoB;4CAC1B,OAAO,EAAE,SAAS;4CAClB,SAAS;4CACT,WAAW,EAAE,KAAK;yCACnB,CAAC,CAAC;oCACL,CAAC;oCACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oCAC/C,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;oCAC5B,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;gCAC3C,CAAC;gCACD,MAAM;4BAER,8FAA8F;4BAC9F,KAAK,aAAa;gCAChB,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;oCACvB,IAAI,CAAC,eAAe,GAAG;wCACrB,OAAO,EAAE,UAAU,CAAC,OAAO;wCAC3B,KAAK,EAAE,UAAU,CAAC,KAAK;qCACxB,CAAC;oCACF,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;oCAClD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gCACnD,CAAC;gCACD,MAAM;4BAER,KAAK,uBAAuB;gCAC1B,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;oCACvE,MAAM;gCACR,CAAC;gCACD,IAAI,CAAC,eAAe,CAAC,eAAe,CAClC,UAAU,CAAC,KAAK,EAChB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAChC,CAAC;gCACF,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC;gCACjD,MAAM;4BAER,KAAK,+BAA+B;gCAClC,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;oCAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;oCAC9C,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;wCAC/C,MAAM;oCACR,CAAC;oCACD,uEAAuE;oCACvE,oEAAoE;oCACpE,6CAA6C;oCAC7C,IACE,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE;wCAC5C,CAAC,IAAI,CAAC,UAAU,EAChB,CAAC;wCACD,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC;oCAC3C,CAAC;oCACD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAC3B,UAAU,CAAC,WAAW,EACtB,KAAK,CACN,CAAC;oCACF,IACE,IAAI,CAAC,eAAe,CAAC,sCAAsC,EAAE;wCAC7D,IAAI,CAAC,UAAU,EACf,CAAC;wCACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;wCACxB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;oCACrC,CAAC;oCACD,IAAI,CAAC,wBAAwB;wCAC3B,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC;oCAChC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;gCACvC,CAAC;gCACD,MAAM;4BAER,KAAK,8BAA8B,CAAC,CAAC,CAAC;gCACpC,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CACtD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAChC,CAAC;gCACF,IAAI,eAAe,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oCACvC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;oCACxB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;gCACrC,CAAC;gCACD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;gCAC1C,MAAM;4BACR,CAAC;4BAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;gCACzB,MAAM,gBAAgB,GACpB,UAAU,CAAC,iBAAiB;oCAC5B,UAAU,CAAC,gBAAgB;oCAC3B,IAAI,CAAC;gCACP,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;gCAC/C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;oCACrB,EAAE,EAAE,qBAAqB,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;oCACtD,IAAI,EAAE,cAAc;oCACpB,OAAO,EACL,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;oCAC3D,SAAS;iCACV,CAAC,CAAC;gCACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;gCAC/C,MAAM;4BACR,CAAC;4BAED,KAAK,iBAAiB;gCACpB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gCAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;oCACrB,EAAE,EAAE,mBAAmB,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;oCACpD,IAAI,EAAE,iBAAiB;oCACvB,OAAO,EAAE,EAAE;oCACX,SAAS;iCACV,CAAC,CAAC;gCACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;gCAC/C,MAAM;4BAER,oEAAoE;4BACpE,KAAK,iBAAiB;gCACpB,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gCAC3E,MAAM;4BAER,qEAAqE;4BACrE,KAAK,iBAAiB,CAAC,CAAC,CAAC;gCACvB,+DAA+D;gCAC/D,sEAAsE;gCACtE,IAAI,UAAU,CAAC,UAAU,KAAK,cAAc;oCAAE,MAAM;gCACpD,MAAM,cAAc,GAAmB;oCACrC,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,SAAS;oCAC9C,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,OAAO;oCACpC,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,IAAI;oCACnC,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,IAAI;iCAClC,CAAC;gCACF,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;gCAC5C,MAAM;4BACR,CAAC;4BAED,0DAA0D;4BAC1D,KAAK,qBAAqB,CAAC,CAAC,CAAC;gCAC3B,MAAM,kBAAkB,GAAuB;oCAC7C,aAAa,EAAE,UAAU,CAAC,cAAc;oCACxC,kBAAkB,EAAE,UAAU,CAAC,oBAAoB;iCACpD,CAAC;gCACF,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;gCACpD,MAAM;4BACR,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,MAAM;gBAER,sFAAsF;gBACtF,KAAK,iBAAiB,CAAC,CAAC,CAAC;oBACvB,IAAI,WAAW,CAAC,UAAU,KAAK,cAAc;wBAAE,MAAM;oBACrD,MAAM,cAAc,GAAmB;wBACrC,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,SAAS;wBAC/C,MAAM,EAAE,WAAW,CAAC,MAAM,IAAI,OAAO;wBACrC,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,IAAI;wBACpC,MAAM,EAAE,WAAW,CAAC,MAAM,IAAI,IAAI;qBACnC,CAAC;oBACF,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;oBAC5C,MAAM;gBACR,CAAC;gBAED,sCAAsC;gBACtC,KAAK,qBAAqB,CAAC;gBAC3B,KAAK,iBAAiB,CAAC;gBACvB,KAAK,sBAAsB,CAAC;gBAC5B,KAAK,qBAAqB,CAAC;gBAC3B,KAAK,eAAe;oBAClB,MAAM;YACV,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,+BAA+B;QACjC,CAAC;IACH,CAAC;IAEO,qBAAqB,CAC3B,OAAuB,EACvB,SAAiB,EACjB,SAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC;YAChC,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnF,MAAM,aAAa,GAAgB;YACjC,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,KAAK;YACd,SAAS;SACV,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC;IAEO,cAAc,CACpB,IAAuC;QAEvC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,eAAe,EAAE,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,OAAO;YACvD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAE,IAAyB,CAAC,GAAG,CAAC;YAC3D,eAAe,EAAE,IAAI,CAAC,iBAAiB,CACpC,IAAuC,CAAC,iBAAiB,CAC3D;SACF,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,KAAc;QACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxD,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,OAAmB;QAC1C,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"MessageHandler.js","sourceRoot":"","sources":["../../src/core/MessageHandler.ts"],"names":[],"mappings":"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","sourcesContent":["import { Room, RoomEvent } from \"livekit-client\";\nimport { ChatMessage, ConvaiAction, InteractionCreated, ServerResponse } from \"./types\";\nimport { EventEmitter } from \"./EventEmitter\";\nimport {\n BlendshapeQueue,\n type BlendshapeChunkMetadata,\n} from \"./BlendshapeQueue\";\n\ntype LifecycleOwnerPayload = {\n response_id?: string;\n neurosync_turn_id?: number;\n turn_id?: number;\n epoch?: number;\n};\n\n/**\n * Handles incoming messages from Convai\n * Processes various message types from the AI assistant and updates chat history\n */\nexport class MessageHandler extends EventEmitter {\n private room: Room | null = null;\n private chatMessages: ChatMessage[] = [];\n private userTranscription: string = \"\";\n private logRtviMessages: boolean = true;\n private isBotResponding: boolean = false;\n private isSpeaking: boolean = false;\n private isListening: boolean = false;\n private totalBlendshapesReceived: number = 0;\n private blendshapeQueue: BlendshapeQueue;\n private _currentEmotion: { emotion: string; scale?: number } | null = null;\n // bot-output segments already added to the chat. The server re-sends the\n // same segment (full text) as TTS progress advances (spoken_status\n // in-progress → completed); only the first sighting may touch the chat.\n private seenBotOutputSegments = new Set<number | string>();\n\n // Fix 4: store a single bound reference so setupListeners/cleanupListeners use the\n // exact same function object. Previously .bind(this) in each call created a new\n // reference every time, making room.off() a no-op and leaking listeners on reconnect.\n private readonly _boundHandleDataReceived: (\n payload: Uint8Array,\n participant: unknown,\n ) => void;\n\n constructor(room?: Room) {\n super();\n this._boundHandleDataReceived = this.handleDataReceived.bind(this);\n this.blendshapeQueue = new BlendshapeQueue();\n if (room) {\n this.setRoom(room);\n }\n }\n\n /**\n * Get the blendshape queue instance\n */\n getBlendshapeQueue(): BlendshapeQueue {\n return this.blendshapeQueue;\n }\n\n /**\n * Enable or disable console logging for decoded incoming RTVI messages.\n */\n setRtviMessageLogging(enabled: boolean): void {\n this.logRtviMessages = enabled;\n }\n\n /**\n * Get current chat messages\n */\n getChatMessages(): ChatMessage[] {\n return this.chatMessages;\n }\n\n /**\n * Get current user transcription\n */\n getUserTranscription(): string {\n return this.userTranscription;\n }\n\n /**\n * Get bot responding state\n */\n getIsBotResponding(): boolean {\n return this.isBotResponding;\n }\n\n /**\n * Get speaking state\n */\n getIsSpeaking(): boolean {\n return this.isSpeaking;\n }\n\n /**\n * Get current bot emotion (updated from bot-emotion messages)\n */\n getEmotion(): { emotion: string; scale?: number } | null {\n return this._currentEmotion;\n }\n\n /**\n * Get whether the user is currently speaking (bot is in \"listening\" state).\n * True from user-started-speaking until user-stopped-speaking.\n */\n getIsListening(): boolean {\n return this.isListening;\n }\n\n /**\n * Local interruption path used by the client before the server cancel/terminal\n * arrives. Keep MessageHandler state and BlendshapeQueue state in sync so the\n * next bot-started-speaking can activate cleanly.\n */\n interruptLipsyncPlayback(): void {\n const wasSpeaking = this.isSpeaking;\n this.isSpeaking = false;\n this.blendshapeQueue.interrupt();\n if (wasSpeaking) {\n this.emit(\"speakingChange\", false);\n }\n }\n\n /**\n * Set the LiveKit room instance\n */\n setRoom(room: Room): void {\n // Clean up previous room listeners\n if (this.room) {\n this.cleanupListeners();\n }\n\n this.room = room;\n this.setupListeners();\n }\n\n /**\n * Setup message listeners\n */\n private setupListeners(): void {\n if (!this.room) return;\n\n this.room.on(RoomEvent.DataReceived, this._boundHandleDataReceived);\n }\n\n /**\n * Clean up message listeners\n */\n private cleanupListeners(): void {\n if (!this.room) return;\n\n this.room.off(RoomEvent.DataReceived, this._boundHandleDataReceived);\n }\n\n /**\n * Handle incoming data message\n */\n private handleDataReceived(\n payload: Uint8Array,\n _participant: unknown,\n _transport: \"livekit\" | \"websocket\" = \"livekit\",\n ): void {\n let messageString = \"\";\n let parsed = false;\n\n try {\n // Decode bytes to string\n const decoder = new TextDecoder();\n messageString = decoder.decode(payload);\n\n // Parse JSON\n const messageData = JSON.parse(messageString);\n parsed = true;\n\n // Extract and categorize messages for chat display\n const timestamp = new Date().toISOString();\n const messageId = `${messageData.type}-${Date.now()}-${Math.random()}`;\n\n // Handle different message types\n switch (messageData.type) {\n // User text messages - Skip these, only allow user-transcription\n case \"user_text_message\":\n case \"user-llm-text\":\n case \"text-input\":\n case \"user-input\":\n case \"text-message\":\n case \"chat-message\":\n case \"input-text\":\n case \"message\":\n // Skip user text messages - only allow user-transcription\n break;\n\n // Bot Ready - Bot is ready, connection should be true\n case \"bot-ready\":\n this.emit(\"botReady\");\n break;\n\n // Bot LLM Started - Begin streaming response\n case \"bot-llm-started\":\n this.isBotResponding = true;\n this.emit(\"botRespondingChange\", true);\n this.seenBotOutputSegments.clear();\n\n // Add initial streaming message to chat\n const streamingMessage: ChatMessage = {\n id: messageId,\n type: \"bot-llm-text\",\n content: \"\",\n timestamp: timestamp,\n isStreaming: true,\n };\n this.chatMessages.push(streamingMessage);\n this.emit(\"messagesChange\", this.chatMessages);\n break;\n\n // Bot Output - Aggregated output stream (sentence/word-level, replaces bot-transcript)\n // Payload: { text, spoken, aggregated_by, segment_id, spoken_status,\n // spoken_progress }. The same segment_id is re-sent with the FULL\n // segment text on every TTS progress tick (spoken_status\n // \"in-progress\" → \"completed\"), so appending per event repeats the\n // sentence once per tick.\n case \"bot-output\":\n if (messageData.data?.text) {\n const newText = messageData.data.text;\n const segmentId = messageData.data.segment_id as\n | number\n | string\n | undefined;\n this.emit(\"botOutput\", {\n text: newText,\n spoken: messageData.data.spoken ?? false,\n aggregatedBy: messageData.data.aggregated_by ?? \"sentence\",\n segmentId,\n spokenStatus: messageData.data.spoken_status,\n });\n\n // Progress re-send of a segment already in the chat — skip.\n if (segmentId !== undefined) {\n if (this.seenBotOutputSegments.has(segmentId)) break;\n this.seenBotOutputSegments.add(segmentId);\n }\n\n const lastMsg = this.chatMessages[this.chatMessages.length - 1];\n // When the reply is rendered by the LLM text stream\n // (bot-llm-text), the TTS echo adds nothing — never mix\n // bot-output into an LLM bubble (streaming or complete).\n if (lastMsg?.type === \"bot-llm-text\") break;\n if (\n lastMsg?.type === \"bot-output\" &&\n lastMsg.content.includes(newText)\n ) {\n break;\n }\n if (lastMsg?.type === \"bot-output\" && lastMsg.isStreaming) {\n this.chatMessages[this.chatMessages.length - 1] = {\n ...lastMsg,\n content: lastMsg.content + newText,\n };\n } else {\n this.chatMessages.push({\n id: `bot-output-${Date.now()}-${Math.random()}`,\n type: \"bot-output\",\n content: newText,\n timestamp: new Date().toISOString(),\n isStreaming: true,\n });\n }\n this.emit(\"messagesChange\", this.chatMessages);\n }\n break;\n\n // Bot LLM Text Messages - Streaming chunks\n case \"bot-llm-text\":\n if (messageData.data?.text) {\n const newChunk = messageData.data.text;\n\n // Update the streaming message in chat\n const lastMessage = this.chatMessages[this.chatMessages.length - 1];\n if (lastMessage && lastMessage.isStreaming) {\n this.chatMessages[this.chatMessages.length - 1] = {\n ...lastMessage,\n content: lastMessage.content + newChunk,\n };\n } else {\n // If no streaming message exists yet, create one\n const streamingMsg: ChatMessage = {\n id: `${messageData.type}-${Date.now()}-${Math.random()}`,\n type: \"bot-llm-text\",\n content: newChunk,\n timestamp: new Date().toISOString(),\n isStreaming: true,\n };\n this.chatMessages.push(streamingMsg);\n }\n this.emit(\"messagesChange\", this.chatMessages);\n }\n break;\n\n // Bot LLM Stopped - Complete streaming response\n case \"bot-llm-stopped\":\n const lastBotMsg = this.chatMessages[this.chatMessages.length - 1];\n if (lastBotMsg && lastBotMsg.isStreaming) {\n this.chatMessages[this.chatMessages.length - 1] = {\n ...lastBotMsg,\n isStreaming: false,\n };\n }\n\n // Clear streaming state\n this.isBotResponding = false;\n this.emit(\"botRespondingChange\", false);\n this.emit(\"messagesChange\", this.chatMessages);\n break;\n\n // User Transcription Messages\n case \"user-transcription\":\n if (messageData.data?.text) {\n const messageContent = messageData.data.text;\n\n if (messageData.data?.final) {\n // Final transcription - accumulate in single bubble until bot responds\n const lastUserMsg =\n this.chatMessages[this.chatMessages.length - 1];\n\n // Check if last message is an accumulating user message (isStreaming=true)\n if (\n lastUserMsg &&\n lastUserMsg.type === \"user-transcription\" &&\n lastUserMsg.isStreaming === true\n ) {\n // Accumulate: append new content to existing message with space\n const accumulatedContent =\n lastUserMsg.content.trim() + \" \" + messageContent.trim();\n\n this.chatMessages[this.chatMessages.length - 1] = {\n ...lastUserMsg,\n content: accumulatedContent,\n timestamp: timestamp,\n };\n } else {\n // Start new accumulating message (isStreaming=true means \"still accumulating\")\n const userMessage: ChatMessage = {\n id: messageId,\n type: \"user-transcription\",\n content: messageContent,\n timestamp: timestamp,\n isStreaming: true,\n };\n this.chatMessages.push(userMessage);\n }\n this.emit(\"messagesChange\", this.chatMessages);\n\n // Clear live transcription when final\n this.userTranscription = \"\";\n this.emit(\"userTranscriptionChange\", \"\");\n } else {\n // Non-final transcription - show in input field\n this.userTranscription = messageContent;\n this.emit(\"userTranscriptionChange\", messageContent);\n }\n }\n break;\n\n // Bot Emotion Messages — LiveKit path: arrives as an RTVI message frame (messageData.data)\n case \"bot-emotion\":\n if (messageData.data?.emotion) {\n this._currentEmotion = {\n emotion: messageData.data.emotion,\n scale: messageData.data.scale,\n };\n console.log(\"[SDK bot-emotion]\", messageData.data);\n this.emit(\"emotionChange\", this._currentEmotion);\n const emotionMessage: ChatMessage = {\n id: messageId,\n type: \"bot-emotion\",\n content: `${messageData.data.emotion} (scale: ${messageData.data.scale || 1})`,\n timestamp,\n };\n this.chatMessages.push(emotionMessage);\n this.emit(\"messagesChange\", this.chatMessages);\n }\n break;\n // Bot TTS Text - Words as spoken by TTS (word-by-word for socket-based TTS)\n case \"bot-tts-text\":\n if (messageData.data?.text) {\n this.emit(\"botTtsText\", { text: messageData.data.text });\n }\n break;\n\n // Bot TTS lifecycle (more granular than bot-started/stopped-speaking)\n case \"bot-tts-started\":\n this.emit(\"botTtsStarted\");\n break;\n\n case \"bot-tts-stopped\":\n this.emit(\"botTtsStopped\");\n break;\n\n // Server-side muting indicators\n case \"user-mute-started\":\n this.emit(\"userMuteStarted\");\n break;\n\n case \"user-mute-stopped\":\n this.emit(\"userMuteStopped\");\n break;\n\n case \"user-started-speaking\":\n this.isListening = true;\n this.emit(\"listeningChange\", true);\n break;\n\n case \"user-stopped-speaking\":\n this.isListening = false;\n this.emit(\"listeningChange\", false);\n break;\n\n // Bot Started Speaking (priority over listening: state becomes speaking)\n case \"bot-started-speaking\": {\n const owner = this.lifecycleOwner(messageData.data);\n if (this.blendshapeQueue.isStaleOwner(owner)) {\n break;\n }\n const allowed = this.blendshapeQueue.startBotSpeaking();\n if (allowed) {\n this.isSpeaking = true;\n this.totalBlendshapesReceived = 0;\n this.emit(\"speakingChange\", true);\n }\n break;\n }\n\n // Bot Stopped Speaking\n case \"bot-stopped-speaking\":\n if (this.blendshapeQueue.isStaleOwner(this.lifecycleOwner(messageData.data))) {\n break;\n }\n if (this.isSpeaking) {\n this.isSpeaking = false;\n this.blendshapeQueue.stopBotSpeaking();\n this.emit(\"speakingChange\", false);\n }\n break;\n\n // Action Response Messages (LiveKit/WebRTC path)\n case \"action-response\":\n this._handleActionResponse(messageData.data?.actions ?? [], messageId, timestamp);\n break;\n\n case \"metrics\":\n if (messageData.data) {\n this.emit(\"metrics\", messageData.data);\n }\n break;\n // Behavior Tree Response Messages\n case \"behavior-tree-response\":\n if (messageData.data?.narrative_section_id) {\n const behaviorMessage: ChatMessage = {\n id: messageId,\n type: \"behavior-tree\",\n content: `Narrative Section: ${messageData.data.narrative_section_id}`,\n timestamp,\n };\n this.chatMessages.push(behaviorMessage);\n this.emit(\"messagesChange\", this.chatMessages);\n }\n break;\n\n // Server Message - Contains various data types like blendshapes\n case \"server-message\":\n if (messageData.data) {\n const serverData = messageData.data;\n\n switch (serverData.type) {\n case \"final-user-transcription\":\n if (serverData.text) {\n const finalText = serverData.text;\n const lastUserMsg =\n this.chatMessages[this.chatMessages.length - 1];\n if (\n lastUserMsg &&\n lastUserMsg.type === \"user-transcription\" &&\n lastUserMsg.isStreaming === true\n ) {\n this.chatMessages[this.chatMessages.length - 1] = {\n ...lastUserMsg,\n content: finalText,\n timestamp,\n isStreaming: false,\n };\n } else {\n this.chatMessages.push({\n id: `${serverData.type}-${Date.now()}-${Math.random()}`,\n type: \"user-transcription\",\n content: finalText,\n timestamp,\n isStreaming: false,\n });\n }\n this.emit(\"messagesChange\", this.chatMessages);\n this.userTranscription = \"\";\n this.emit(\"userTranscriptionChange\", \"\");\n }\n break;\n\n // WebSocket path: arrives inside a bot-text data message as serverData (not messageData.data)\n case \"bot-emotion\":\n if (serverData.emotion) {\n this._currentEmotion = {\n emotion: serverData.emotion,\n scale: serverData.scale,\n };\n console.log(\"[SDK bot-emotion (ws)]\", serverData);\n this.emit(\"emotionChange\", this._currentEmotion);\n }\n break;\n\n case \"blendshape-turn-stats\":\n if (this.blendshapeQueue.isStaleOwner(this.lifecycleOwner(serverData))) {\n break;\n }\n this.blendshapeQueue.endConversation(\n serverData.stats,\n this.lifecycleOwner(serverData),\n );\n this.emit(\"blendshapeStatsReceived\", serverData);\n break;\n\n case \"chunked-neurosync-blendshapes\":\n if (serverData.blendshapes) {\n const owner = this.lifecycleOwner(serverData);\n if (this.blendshapeQueue.isRetiredOwner(owner)) {\n break;\n }\n // If the queue is idle (no active conversation, bot not yet speaking),\n // start a conversation so early chunks from an initial bot greeting\n // are accepted rather than silently dropped.\n if (\n !this.blendshapeQueue.isConversationActive() &&\n !this.isSpeaking\n ) {\n this.blendshapeQueue.startConversation();\n }\n this.blendshapeQueue.addChunk(\n serverData.blendshapes,\n owner,\n );\n if (\n this.blendshapeQueue.consumeOwnerReplacementStoppedSpeaking() &&\n this.isSpeaking\n ) {\n this.isSpeaking = false;\n this.emit(\"speakingChange\", false);\n }\n this.totalBlendshapesReceived +=\n serverData.blendshapes.length;\n this.emit(\"blendshapes\", serverData);\n }\n break;\n\n case \"neurosync-blendshapes-cancel\": {\n const cancelledActive = this.blendshapeQueue.cancelOwner(\n this.lifecycleOwner(serverData),\n );\n if (cancelledActive && this.isSpeaking) {\n this.isSpeaking = false;\n this.emit(\"speakingChange\", false);\n }\n this.emit(\"blendshapeCancel\", serverData);\n break;\n }\n\n case \"user-idle-warning\": {\n const remainingSeconds: number | null =\n serverData.remaining_seconds ??\n serverData.remainingSeconds ??\n null;\n this.emit(\"idleWarning\", { remainingSeconds });\n this.chatMessages.push({\n id: `user-idle-warning-${Date.now()}-${Math.random()}`,\n type: \"idle-warning\",\n content:\n remainingSeconds !== null ? String(remainingSeconds) : \"\",\n timestamp,\n });\n this.emit(\"messagesChange\", this.chatMessages);\n break;\n }\n\n case \"llm-no-response\":\n this.emit(\"llmNoResponse\");\n this.chatMessages.push({\n id: `llm-no-response-${Date.now()}-${Math.random()}`,\n type: \"llm-no-response\",\n content: \"\",\n timestamp,\n });\n this.emit(\"messagesChange\", this.chatMessages);\n break;\n\n // Action Response (WebSocket/RTVI path — wrapped in server-message)\n case \"action-response\":\n this._handleActionResponse(serverData.actions ?? [], messageId, timestamp);\n break;\n\n // Server acknowledgment — arrives wrapped in server-message envelope\n case \"server-response\": {\n // client-ready is an internal RTVI handshake; server echoes an\n // \"Unknown message type\" error for it which is expected and harmless.\n if (serverData.event_type === \"client-ready\") break;\n const serverResponse: ServerResponse = {\n event_type: serverData.event_type ?? \"unknown\",\n status: serverData.status ?? \"error\",\n message: serverData.message ?? null,\n extras: serverData.extras ?? null,\n };\n this.emit(\"serverResponse\", serverResponse);\n break;\n }\n\n // interaction-created: session IDs for analytics/tracking\n case \"interaction-created\": {\n const interactionCreated: InteractionCreated = {\n interactionId: serverData.interaction_id,\n characterSessionId: serverData.character_session_id,\n };\n this.emit(\"interactionCreated\", interactionCreated);\n break;\n }\n }\n }\n break;\n\n // Fallback: server-response at top level (not currently observed but kept for safety)\n case \"server-response\": {\n if (messageData.event_type === \"client-ready\") break;\n const serverResponse: ServerResponse = {\n event_type: messageData.event_type ?? \"unknown\",\n status: messageData.status ?? \"error\",\n message: messageData.message ?? null,\n extras: messageData.extras ?? null,\n };\n this.emit(\"serverResponse\", serverResponse);\n break;\n }\n\n // Silently ignore other message types\n case \"moderation-response\":\n case \"trigger-message\":\n case \"update-template-keys\":\n case \"update-dynamic-info\":\n case \"interrupt-bot\":\n break;\n }\n } catch (error) {\n // Silently handle parse errors\n }\n }\n\n private _handleActionResponse(\n actions: ConvaiAction[],\n messageId: string,\n timestamp: string,\n ): void {\n this.emit(\"actionResponse\", { actions });\n const label = actions.length === 0\n ? \"No action\"\n : actions.map((a) => (a.target ? `${a.name} → ${a.target}` : a.name)).join(\", \");\n const actionMessage: ChatMessage = {\n id: messageId,\n type: \"action\",\n content: label,\n timestamp,\n };\n this.chatMessages.push(actionMessage);\n this.emit(\"messagesChange\", this.chatMessages);\n }\n\n private lifecycleOwner(\n data: LifecycleOwnerPayload | undefined,\n ): BlendshapeChunkMetadata {\n if (!data) {\n return {};\n }\n\n return {\n responseId: data.response_id,\n neurosyncTurnId: data.neurosync_turn_id ?? data.turn_id,\n epoch: data.epoch,\n fps: this.numberOrUndefined((data as { fps?: number }).fps),\n startFrameIndex: this.numberOrUndefined(\n (data as { start_frame_index?: number }).start_frame_index,\n ),\n };\n }\n\n private numberOrUndefined(value: unknown): number | undefined {\n return typeof value === \"number\" && Number.isFinite(value)\n ? value\n : undefined;\n }\n\n /**\n * Public entry point for WebSocket transport to inject messages into the same pipeline.\n */\n handleDataReceivedPublic(payload: Uint8Array): void {\n this.handleDataReceived(payload, null, \"websocket\");\n }\n\n /**\n * Reset message state\n */\n reset(): void {\n this.chatMessages = [];\n this.userTranscription = \"\";\n this.isBotResponding = false;\n this.isSpeaking = false;\n this.isListening = false;\n this.totalBlendshapesReceived = 0;\n this._currentEmotion = null;\n this.blendshapeQueue.reset();\n this.emit(\"messagesChange\", this.chatMessages);\n this.emit(\"userTranscriptionChange\", \"\");\n this.emit(\"botRespondingChange\", false);\n this.emit(\"speakingChange\", false);\n this.emit(\"listeningChange\", false);\n this.emit(\"emotionChange\", null);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenShareManager.js","sourceRoot":"","sources":["../../src/core/ScreenShareManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ScreenShareManager.js","sourceRoot":"","sources":["../../src/core/ScreenShareManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { Room } from \"livekit-client\";\nimport { ScreenShareControls } from \"./types\";\nimport { logger } from \"../utils/logger\";\nimport { EventEmitter } from \"./EventEmitter\";\n\n/**\n * Manages screen sharing controls for LiveKit room\n * Provides methods to enable/disable screen sharing, manage screen share state,\n * and handle screen sharing with audio support.\n */\nexport class ScreenShareManager extends EventEmitter implements ScreenShareControls {\n private room: Room | null = null;\n private _isScreenShareEnabled: boolean = false;\n private _isScreenShareActive: boolean = false;\n\n constructor(room?: Room) {\n super();\n if (room) {\n this.setRoom(room);\n }\n }\n\n get isScreenShareEnabled(): boolean {\n return this._isScreenShareEnabled;\n }\n\n get isScreenShareActive(): boolean {\n return this._isScreenShareActive;\n }\n\n /**\n * Set the LiveKit room instance\n */\n setRoom(room: Room): void {\n // Clean up previous room listeners\n if (this.room) {\n this.cleanupListeners();\n }\n\n this.room = room;\n \n if (room && room.state !== 'disconnected') {\n this.setupListeners();\n this.updateState();\n }\n }\n\n /**\n * Setup event listeners for room\n */\n private setupListeners(): void {\n if (!this.room) return;\n\n const localParticipant = this.room.localParticipant;\n\n const handleTrackPublished = (track: any) => {\n if (track.source === 'screen_share') {\n this._isScreenShareActive = true;\n this.emit('screenShareStateChange', { isScreenShareActive: true });\n }\n };\n\n const handleTrackUnpublished = (track: any) => {\n if (track.source === 'screen_share') {\n this._isScreenShareActive = false;\n this.emit('screenShareStateChange', { isScreenShareActive: false });\n }\n };\n\n const handleTrackMuted = (track: any) => {\n if (track.source === 'screen_share') {\n this._isScreenShareActive = false;\n this.emit('screenShareStateChange', { isScreenShareActive: false });\n }\n };\n\n const handleTrackUnmuted = (track: any) => {\n if (track.source === 'screen_share') {\n this._isScreenShareActive = true;\n this.emit('screenShareStateChange', { isScreenShareActive: true });\n }\n };\n\n localParticipant.on('trackPublished', handleTrackPublished);\n localParticipant.on('trackUnpublished', handleTrackUnpublished);\n localParticipant.on('trackMuted', handleTrackMuted);\n localParticipant.on('trackUnmuted', handleTrackUnmuted);\n }\n\n /**\n * Clean up event listeners\n */\n private cleanupListeners(): void {\n if (!this.room) return;\n // LiveKit handles cleanup automatically when participant is removed\n }\n\n /**\n * Update screen share state from room\n */\n private updateState(): void {\n if (!this.room || this.room.state === 'disconnected') {\n this._isScreenShareEnabled = false;\n this._isScreenShareActive = false;\n return;\n }\n\n const localParticipant = this.room.localParticipant;\n this._isScreenShareEnabled = localParticipant.isScreenShareEnabled;\n this._isScreenShareActive = localParticipant.isScreenShareEnabled;\n }\n\n /**\n * Enable screen share\n */\n async enableScreenShare(): Promise<void> {\n if (!this.room) {\n throw new Error('Room not initialized');\n }\n\n try {\n // Use setScreenShareEnabled with options to include current tab\n await this.room.localParticipant.setScreenShareEnabled(true, {\n // @ts-ignore - selfBrowserSurface is a valid Chrome option but may not be in types\n selfBrowserSurface: \"include\",\n surfaceSwitching: \"include\",\n systemAudio: \"include\",\n });\n this._isScreenShareEnabled = true;\n this._isScreenShareActive = true;\n this.emit('screenShareStateChange', { isScreenShareEnabled: true, isScreenShareActive: true });\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Disable screen share\n */\n async disableScreenShare(): Promise<void> {\n if (!this.room) {\n throw new Error('Room not initialized');\n }\n\n try {\n await this.room.localParticipant.setScreenShareEnabled(false);\n this._isScreenShareEnabled = false;\n this._isScreenShareActive = false;\n this.emit('screenShareStateChange', { isScreenShareEnabled: false, isScreenShareActive: false });\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Toggle screen share\n */\n async toggleScreenShare(): Promise<void> {\n if (this._isScreenShareEnabled) {\n await this.disableScreenShare();\n } else {\n await this.enableScreenShare();\n }\n }\n\n /**\n * Enable screen share with audio\n */\n async enableScreenShareWithAudio(): Promise<void> {\n if (!this.room) {\n throw new Error('Room not initialized');\n }\n\n try {\n // Create screen tracks with audio enabled and include current tab\n const tracks = await this.room.localParticipant.createScreenTracks({\n audio: true,\n // @ts-ignore - selfBrowserSurface is a valid Chrome option but may not be in types\n selfBrowserSurface: \"include\",\n surfaceSwitching: \"include\",\n systemAudio: \"include\",\n });\n\n // Publish each track\n tracks.forEach((track) => {\n this.room!.localParticipant.publishTrack(track);\n });\n\n this._isScreenShareEnabled = true;\n } catch (error) {\n logger.error(\"Failed to enable screen share with audio:\", error);\n throw error;\n }\n }\n\n /**\n * Get screen share tracks\n */\n async getScreenShareTracks(): Promise<any[]> {\n if (!this.room) {\n return [];\n }\n\n try {\n const localParticipant = this.room.localParticipant;\n const screenShareTracks: any[] = [];\n \n // Get all published tracks\n localParticipant.trackPublications.forEach((publication) => {\n if (publication.source === 'screen_share' && publication.track) {\n screenShareTracks.push(publication.track);\n }\n });\n\n return screenShareTracks;\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Reset state on disconnect\n */\n reset(): void {\n this._isScreenShareEnabled = false;\n this._isScreenShareActive = false;\n this.emit('screenShareStateChange', { \n isScreenShareEnabled: false,\n isScreenShareActive: false\n });\n }\n}\n\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoManager.js","sourceRoot":"","sources":["../../src/core/VideoManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VideoManager.js","sourceRoot":"","sources":["../../src/core/VideoManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { Room, Track } from \"livekit-client\";\nimport {\n PublishCanvasOptions,\n PublishVideoTrackOptions,\n VideoControls,\n VisionSourceHandle,\n VisionSourceKind,\n VisionSourceState,\n} from \"./types\";\nimport { logger } from \"../utils/logger\";\nimport { EventEmitter } from \"./EventEmitter\";\nimport {\n isWebcamVisionSource,\n shouldKeepExistingVisionSource,\n} from \"./videoSourceState\";\n\ntype WebSocketVisionMessageType = \"vision-frame\" | \"vision-source-state\";\ntype WebSocketVisionMessageSender = (\n type: WebSocketVisionMessageType,\n data: Record<string, unknown>,\n) => void;\ntype WebSocketVisionMode = \"off\" | \"enabled\" | \"disabled\";\n\n/**\n * Manages visual source controls. LiveKit publishes real video tracks;\n * WebSocket samples active sources into vision-frame messages.\n */\nexport class VideoManager extends EventEmitter implements VideoControls {\n private room: Room | null = null;\n private _isVideoEnabled: boolean = false;\n private _isVideoHidden: boolean = false;\n private _activeVisionSource: VisionSourceHandle | null = null;\n private pendingVisionSourceTracks = new WeakMap<\n MediaStreamTrack,\n VisionSourceKind\n >();\n private webSocketVisionMessageSender: WebSocketVisionMessageSender | null =\n null;\n private webSocketVisionMode: WebSocketVisionMode = \"off\";\n\n constructor(room?: Room) {\n super();\n if (room) {\n this.setRoom(room);\n }\n }\n\n get isVideoEnabled(): boolean {\n return this._isVideoEnabled;\n }\n\n get isVideoHidden(): boolean {\n return this._isVideoHidden;\n }\n\n get activeVisionSource(): VisionSourceHandle | null {\n return this.getLiveVisionSource();\n }\n\n get hasActiveVisionSource(): boolean {\n return this.activeVisionSource !== null;\n }\n\n get visionSourceState(): VisionSourceState {\n return this.makeVisionSourceState();\n }\n\n /**\n * Set the LiveKit room instance\n */\n setRoom(room: Room): void {\n // Clean up previous room listeners\n if (this.room) {\n this.cleanupListeners();\n }\n\n this.room = room;\n\n if (room) {\n this.setupListeners();\n this.updateState();\n }\n }\n\n setWebSocketVisionMessageSender(\n sender: WebSocketVisionMessageSender | null,\n ): void {\n this.webSocketVisionMessageSender = sender;\n this.webSocketVisionMode = sender ? \"enabled\" : \"off\";\n }\n\n setWebSocketVisionDisabled(): void {\n this.webSocketVisionMessageSender = null;\n this.webSocketVisionMode = \"disabled\";\n const activeSource = this._activeVisionSource;\n activeSource?.cleanup?.();\n if (\n activeSource?.stopTrackOnUnpublish &&\n activeSource.track.readyState !== \"ended\"\n ) {\n activeSource.track.stop();\n }\n this._activeVisionSource = null;\n this._isVideoEnabled = false;\n }\n\n /**\n * Setup event listeners for room\n */\n private setupListeners(): void {\n if (!this.room) return;\n\n const localParticipant = this.room.localParticipant;\n\n const handleTrackMuted = (track: any) => {\n if (this.isWebcamPublication(track)) {\n this._isVideoHidden = true;\n this.emitVideoStateChange(\"track_muted\", { isVideoHidden: true });\n }\n };\n\n const handleTrackUnmuted = (track: any) => {\n if (this.isWebcamPublication(track)) {\n this._isVideoHidden = false;\n this.emitVideoStateChange(\"track_unmuted\", { isVideoHidden: false });\n }\n };\n\n const handleTrackPublished = (publication: any) => {\n if (this.isWebcamPublication(publication)) {\n this._isVideoEnabled = true;\n if (!this._activeVisionSource) {\n const handle = this.createPublicationHandle(\n publication,\n \"webcam\",\n \"webcam\",\n false,\n );\n if (handle) {\n this.setActiveVisionSource(handle);\n }\n }\n this.emitVideoStateChange(\"track_published\", { isVideoEnabled: true });\n }\n };\n\n const handleTrackUnpublished = (publication: any) => {\n if (this.isCameraLikeSource(publication?.source)) {\n const isWebcam = this.isWebcamPublication(publication);\n this.clearActiveVisionSourceForPublication(\n publication,\n isWebcam ? \"track_unpublished\" : \"vision_source_unpublished\",\n );\n this.updateState();\n this.emitVideoStateChange(\n isWebcam ? \"track_unpublished\" : \"vision_source_unpublished\",\n {\n isVideoEnabled: this._isVideoEnabled,\n },\n );\n }\n };\n\n localParticipant.on(\"trackMuted\", handleTrackMuted);\n localParticipant.on(\"trackUnmuted\", handleTrackUnmuted);\n localParticipant.on(\"trackPublished\", handleTrackPublished);\n localParticipant.on(\"trackUnpublished\", handleTrackUnpublished);\n }\n\n /**\n * Clean up event listeners\n */\n private cleanupListeners(): void {\n if (!this.room) return;\n // LiveKit handles cleanup automatically when participant is removed\n }\n\n /**\n * Update video state from room\n */\n private updateState(): void {\n if (!this.room || this.room.state === \"disconnected\") {\n this._isVideoEnabled = false;\n this._isVideoHidden = false;\n this._activeVisionSource?.cleanup?.();\n this._activeVisionSource = null;\n return;\n }\n\n let activeSource = this.getLiveVisionSource();\n const localParticipant = this.room.localParticipant;\n if (!activeSource && localParticipant.isCameraEnabled) {\n const handle = this.createPublicationHandle(\n localParticipant.getTrackPublication(Track.Source.Camera),\n \"webcam\",\n \"webcam\",\n false,\n );\n if (handle) {\n this.setActiveVisionSource(handle);\n activeSource = handle;\n }\n }\n this._isVideoEnabled =\n isWebcamVisionSource(activeSource?.source) ||\n (!activeSource && localParticipant.isCameraEnabled);\n this._isVideoHidden = false; // LiveKit doesn't have a direct hidden state for video\n }\n\n /**\n * Enable video\n */\n async enableVideo(): Promise<void> {\n if (this.isWebSocketVisionTransport()) {\n this.assertWebSocketVisionEnabled();\n const stream = await navigator.mediaDevices.getUserMedia({\n video: true,\n audio: false,\n });\n const track = stream.getVideoTracks()[0];\n if (!track) {\n throw new Error(\"getUserMedia() produced no video track\");\n }\n try {\n await this.publishVideoTrack(track, {\n name: \"webcam\",\n source: \"webcam\",\n stopTrackOnUnpublish: true,\n });\n } catch (error) {\n track.stop();\n throw error;\n }\n return;\n }\n\n if (!this.room) {\n throw new Error(\"Room not initialized\");\n }\n\n try {\n await this.replaceActiveVisionSource({ source: \"webcam\" });\n const publication = await this.room.localParticipant.setCameraEnabled(true);\n this._isVideoEnabled = true;\n const handle = this.createPublicationHandle(\n publication ||\n this.room.localParticipant.getTrackPublication(Track.Source.Camera),\n \"webcam\",\n \"webcam\",\n false,\n );\n if (handle) {\n this.setActiveVisionSource(handle);\n }\n this.emitVideoStateChange(\"webcam_enabled\", { isVideoEnabled: true });\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Disable video\n */\n async disableVideo(): Promise<void> {\n if (this.isWebSocketVisionTransport()) {\n const activeSource = this._activeVisionSource;\n if (activeSource) {\n await this.unpublishVisionSource(activeSource);\n }\n this._isVideoEnabled = false;\n this.emitVideoStateChange(\"webcam_disabled\", { isVideoEnabled: false });\n return;\n }\n\n if (!this.room) {\n throw new Error(\"Room not initialized\");\n }\n\n try {\n await this.room.localParticipant.setCameraEnabled(false);\n this._isVideoEnabled = false;\n const activeSource = this._activeVisionSource;\n if (activeSource) {\n if (isWebcamVisionSource(activeSource.source)) {\n activeSource.cleanup?.();\n this._activeVisionSource = null;\n } else {\n await this.unpublishVisionSource(activeSource);\n }\n }\n this.emitVideoStateChange(\"webcam_disabled\", { isVideoEnabled: false });\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Hide video\n */\n async hideVideo(): Promise<void> {\n await this.disableVideo();\n }\n\n /**\n * Show video\n */\n async showVideo(): Promise<void> {\n await this.enableVideo();\n }\n\n /**\n * Toggle video\n */\n async toggleVideo(): Promise<void> {\n if (this._isVideoEnabled) {\n await this.disableVideo();\n } else {\n await this.enableVideo();\n }\n }\n\n /**\n * Set video device\n */\n async setVideoDevice(deviceId: string): Promise<void> {\n if (this.isWebSocketVisionTransport()) {\n this.assertWebSocketVisionEnabled();\n const stream = await navigator.mediaDevices.getUserMedia({\n video: { deviceId: { exact: deviceId } },\n audio: false,\n });\n const track = stream.getVideoTracks()[0];\n if (!track) {\n throw new Error(\"getUserMedia() produced no video track\");\n }\n try {\n await this.publishVideoTrack(track, {\n name: \"webcam\",\n source: \"webcam\",\n stopTrackOnUnpublish: true,\n });\n } catch (error) {\n track.stop();\n throw error;\n }\n return;\n }\n\n if (!this.room) {\n throw new Error(\"Room not initialized\");\n }\n\n try {\n await this.replaceActiveVisionSource({ source: \"webcam\" });\n const publication = await this.room.localParticipant.setCameraEnabled(true, {\n deviceId,\n });\n const handle = this.createPublicationHandle(\n publication ||\n this.room.localParticipant.getTrackPublication(Track.Source.Camera),\n \"webcam\",\n \"webcam\",\n false,\n );\n if (handle) {\n this.setActiveVisionSource(handle);\n }\n this._isVideoEnabled = true;\n this.emitVideoStateChange(\"webcam_device_selected\", {\n isVideoEnabled: true,\n });\n } catch (error) {\n logger.error(\"Failed to set video device:\", error);\n throw error;\n }\n }\n\n /**\n * Get available video devices\n */\n async getVideoDevices(): Promise<MediaDeviceInfo[]> {\n try {\n const devices = await navigator.mediaDevices.enumerateDevices();\n const videoDevices = devices.filter((device) => device.kind === \"videoinput\");\n return videoDevices;\n } catch (error) {\n logger.error(\"Failed to get video devices:\", error);\n throw error;\n }\n }\n\n /**\n * Set video quality\n */\n async setVideoQuality(quality: \"low\" | \"medium\" | \"high\"): Promise<void> {\n if (this.isWebSocketVisionTransport()) {\n this.assertWebSocketVisionEnabled();\n return;\n }\n\n if (!this.room) {\n throw new Error(\"Room not initialized\");\n }\n\n try {\n // TODO: Implement video quality settings when LiveKit provides the API\n } catch (error) {\n throw error;\n }\n }\n\n async publishCanvas(\n canvas: HTMLCanvasElement,\n options: PublishCanvasOptions = {},\n ): Promise<VisionSourceHandle> {\n const captureStream = canvas.captureStream;\n if (typeof captureStream !== \"function\") {\n throw new Error(\"Canvas captureStream() is not supported in this browser\");\n }\n\n const stream = canvas.captureStream(options.fps ?? 1);\n const track = stream.getVideoTracks()[0];\n if (!track) {\n throw new Error(\"Canvas captureStream() produced no video track\");\n }\n\n try {\n return await this.publishVideoTrack(track, {\n name: options.name ?? \"canvas-pov\",\n source: options.source ?? \"canvas\",\n fps: options.fps,\n stopTrackOnUnpublish: options.stopTrackOnUnpublish ?? true,\n });\n } catch (error) {\n if (track.readyState !== \"ended\") {\n track.stop();\n }\n throw error;\n }\n }\n\n async publishVideoTrack(\n track: MediaStreamTrack,\n options: PublishVideoTrackOptions = {},\n ): Promise<VisionSourceHandle> {\n if (this.isWebSocketVisionTransport()) {\n this.assertWebSocketVisionEnabled();\n return this.publishWebSocketVideoTrack(track, options);\n }\n\n if (!this.room) {\n throw new Error(\"Room not initialized\");\n }\n\n const source = options.source ?? \"custom\";\n const sourceName = options.name ?? source;\n const publicationName = sourceName.toLowerCase().includes(source.toLowerCase())\n ? sourceName\n : `${source}:${sourceName}`;\n const stopTrackOnUnpublish = options.stopTrackOnUnpublish ?? false;\n\n await this.replaceActiveVisionSource({ source, track });\n\n this.pendingVisionSourceTracks.set(track, source);\n let publication;\n try {\n publication = await this.room.localParticipant.publishTrack(track, {\n name: publicationName,\n source: this.toLiveKitSource(source),\n } as any);\n } catch (error) {\n this.pendingVisionSourceTracks.delete(track);\n throw error;\n }\n\n const handle: VisionSourceHandle = {\n track,\n publication,\n transport: \"livekit\",\n sourceName,\n source,\n stopTrackOnUnpublish,\n unpublish: async () => this.unpublishVisionSource(handle),\n };\n this.addTrackEndedListener(handle);\n this.setActiveVisionSource(handle);\n this._isVideoEnabled = isWebcamVisionSource(source);\n this.emitVideoStateChange(\"vision_source_published\", {\n isVideoEnabled: this._isVideoEnabled,\n });\n return handle;\n }\n\n async unpublishVisionSource(\n source?: VisionSourceHandle | MediaStreamTrack,\n ): Promise<void> {\n const handle = this.resolveVisionSource(source);\n if (!handle) return;\n\n if (handle.transport === \"websocket\") {\n const wasActive = this._activeVisionSource?.track === handle.track;\n handle.cleanup?.();\n if (handle.stopTrackOnUnpublish && handle.track.readyState !== \"ended\") {\n handle.track.stop();\n }\n if (wasActive) {\n this._activeVisionSource = null;\n if (isWebcamVisionSource(handle.source)) {\n this._isVideoEnabled = false;\n }\n this.sendWebSocketVisionSourceState(false, handle.source);\n this.emitVideoStateChange(\"vision_source_unpublished\", {\n isVideoEnabled: this._isVideoEnabled,\n });\n }\n return;\n }\n\n if (!this.room) {\n throw new Error(\"Room not initialized\");\n }\n\n await this.room.localParticipant.unpublishTrack(\n handle.track,\n handle.stopTrackOnUnpublish,\n );\n if (handle.stopTrackOnUnpublish && handle.track.readyState !== \"ended\") {\n handle.track.stop();\n }\n if (this._activeVisionSource?.track === handle.track) {\n this._activeVisionSource.cleanup?.();\n this._activeVisionSource = null;\n }\n this.updateState();\n this.emitVideoStateChange(\"vision_source_unpublished\", {\n isVideoEnabled: this._isVideoEnabled,\n });\n }\n\n private async publishWebSocketVideoTrack(\n track: MediaStreamTrack,\n options: PublishVideoTrackOptions = {},\n ): Promise<VisionSourceHandle> {\n const source = options.source ?? \"custom\";\n const sourceName = options.name ?? source;\n const stopTrackOnUnpublish = options.stopTrackOnUnpublish ?? false;\n const fps = this.normalizeWebSocketFps(options.fps ?? 1);\n\n const activeSource = this._activeVisionSource;\n if (activeSource?.track === track) {\n activeSource.cleanup?.();\n this._activeVisionSource = null;\n } else {\n await this.replaceActiveVisionSource({ source, track });\n }\n\n const stream = new MediaStream([track]);\n const video = document.createElement(\"video\");\n video.muted = true;\n video.playsInline = true;\n video.srcObject = stream;\n\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n if (!context) {\n throw new Error(\"Unable to create canvas context for WebSocket vision\");\n }\n\n let intervalId: number | null = null;\n let stopped = false;\n let captureWarningLogged = false;\n let handle: VisionSourceHandle;\n\n const publishFrame = () => {\n if (stopped) return;\n if (track.readyState !== \"live\") {\n this.clearEndedVisionSource(handle);\n return;\n }\n if (!this.webSocketVisionMessageSender) return;\n\n const width = video.videoWidth || track.getSettings?.().width || 0;\n const height = video.videoHeight || track.getSettings?.().height || 0;\n if (!width || !height) return;\n\n try {\n if (canvas.width !== width) canvas.width = width;\n if (canvas.height !== height) canvas.height = height;\n context.drawImage(video, 0, 0, width, height);\n this.webSocketVisionMessageSender(\"vision-frame\", {\n image: canvas.toDataURL(\"image/jpeg\", 0.82),\n source_label: this.toBackendVisionSourceLabel(source),\n capture_pts_ns: String(Math.round(performance.now() * 1_000_000)),\n });\n } catch (error) {\n if (!captureWarningLogged) {\n captureWarningLogged = true;\n logger.warn(\"Unable to capture WebSocket vision frame:\", error);\n }\n }\n };\n\n const cleanupCapture = () => {\n stopped = true;\n if (intervalId !== null) {\n window.clearInterval(intervalId);\n intervalId = null;\n }\n video.pause();\n video.srcObject = null;\n };\n\n handle = {\n track,\n transport: \"websocket\",\n sourceName,\n source,\n stopTrackOnUnpublish,\n unpublish: async () => this.unpublishVisionSource(handle),\n cleanup: cleanupCapture,\n };\n this.addTrackEndedListener(handle);\n this.setActiveVisionSource(handle);\n this._isVideoEnabled = isWebcamVisionSource(source);\n this.emitVideoStateChange(\"vision_source_published\", {\n isVideoEnabled: this._isVideoEnabled,\n });\n this.sendWebSocketVisionSourceState(true, source);\n try {\n await video.play();\n } catch (error) {\n logger.warn(\"WebSocket vision video playback did not start immediately:\", error);\n }\n publishFrame();\n if (!stopped) {\n intervalId = window.setInterval(publishFrame, Math.round(1000 / fps));\n }\n return handle;\n }\n\n private resolveVisionSource(\n source?: VisionSourceHandle | MediaStreamTrack,\n ): VisionSourceHandle | null {\n if (!source) return this._activeVisionSource;\n if (\"track\" in source) return source;\n if (this._activeVisionSource?.track === source) {\n return this._activeVisionSource;\n }\n return {\n track: source,\n sourceName: source.label || \"custom\",\n source: \"custom\",\n transport: this.isWebSocketVisionTransport() ? \"websocket\" : \"livekit\",\n stopTrackOnUnpublish: false,\n unpublish: async () => this.unpublishVisionSource(source),\n };\n }\n\n private isWebSocketVisionTransport(): boolean {\n return this.webSocketVisionMode !== \"off\";\n }\n\n private assertWebSocketVisionEnabled(): void {\n if (\n this.webSocketVisionMode !== \"enabled\" ||\n !this.webSocketVisionMessageSender\n ) {\n throw new Error(\"WebSocket vision input is disabled for this session\");\n }\n }\n\n private normalizeWebSocketFps(fps: number): number {\n if (!Number.isFinite(fps) || fps <= 0) return 1;\n return Math.max(0.2, Math.min(10, fps));\n }\n\n private sendWebSocketVisionSourceState(\n active: boolean,\n source: VisionSourceKind,\n ): void {\n if (!this.webSocketVisionMessageSender) return;\n this.webSocketVisionMessageSender(\"vision-source-state\", {\n active,\n source_label: this.toBackendVisionSourceLabel(source),\n });\n }\n\n private toBackendVisionSourceLabel(\n source: VisionSourceKind,\n ): \"webcam\" | \"canvas\" | \"screen\" | \"custom\" {\n if (source === \"webcam\" || source === \"camera\") return \"webcam\";\n if (source === \"canvas\") return \"canvas\";\n if (source === \"screen\" || source === \"screen_share\") return \"screen\";\n return \"custom\";\n }\n\n private toLiveKitSource(source: VisionSourceKind): Track.Source {\n if (source === \"screen\" || source === \"screen_share\") {\n return Track.Source.ScreenShare;\n }\n if (source === \"unknown\") return Track.Source.Unknown;\n // P1 backend sampling listens on the video channel. Keep webcam/canvas/custom\n // as camera-compatible LiveKit video tracks while preserving semantic labels\n // in SDK state and track names.\n return Track.Source.Camera;\n }\n\n private getLiveVisionSource(): VisionSourceHandle | null {\n const source = this._activeVisionSource;\n if (!source) return null;\n return source.track.readyState === \"live\" ? source : null;\n }\n\n private makeVisionSourceState(reason?: string): VisionSourceState {\n const source = this.getLiveVisionSource();\n const stateReason =\n reason ??\n (this.webSocketVisionMode === \"disabled\"\n ? \"websocket_vision_disabled\"\n : undefined);\n return {\n active: !!source,\n source: source?.source ?? null,\n sourceName: source?.sourceName ?? null,\n trackState: source?.track.readyState ?? null,\n transport:\n source?.transport ??\n (this.isWebSocketVisionTransport() ? \"websocket\" : undefined),\n ...(stateReason ? { reason: stateReason } : {}),\n };\n }\n\n private emitVideoStateChange(\n reason?: string,\n extra: Record<string, unknown> = {},\n ): void {\n this.emit(\"videoStateChange\", {\n isVideoEnabled: this._isVideoEnabled,\n isVideoHidden: this._isVideoHidden,\n activeVisionSource: this.activeVisionSource,\n hasActiveVisionSource: this.hasActiveVisionSource,\n visionSourceState: this.makeVisionSourceState(reason),\n ...extra,\n });\n }\n\n private setActiveVisionSource(handle: VisionSourceHandle): void {\n if (this._activeVisionSource?.track !== handle.track) {\n this._activeVisionSource?.cleanup?.();\n }\n this._activeVisionSource = handle;\n }\n\n private async replaceActiveVisionSource(next: {\n source: VisionSourceKind;\n track?: MediaStreamTrack;\n }): Promise<void> {\n const current = this._activeVisionSource;\n if (!current) return;\n if (next.track && current.track === next.track) return;\n if (\n shouldKeepExistingVisionSource(\n current.source,\n next.source,\n next.track !== undefined,\n )\n ) {\n return;\n }\n await current.unpublish();\n }\n\n private createPublicationHandle(\n publication: any,\n source: VisionSourceKind,\n sourceName: string,\n stopTrackOnUnpublish: boolean,\n ): VisionSourceHandle | null {\n const track = this.mediaTrackFromPublication(publication);\n if (!track) return null;\n\n let handle: VisionSourceHandle;\n handle = {\n track,\n publication,\n transport: \"livekit\",\n sourceName,\n source,\n stopTrackOnUnpublish,\n unpublish: async () => {\n if (isWebcamVisionSource(source)) {\n await this.disableVideo();\n return;\n }\n await this.unpublishVisionSource(handle);\n },\n };\n this.addTrackEndedListener(handle);\n return handle;\n }\n\n private addTrackEndedListener(handle: VisionSourceHandle): void {\n const previousCleanup = handle.cleanup;\n const onEnded = () => this.clearEndedVisionSource(handle);\n handle.track.addEventListener?.(\"ended\", onEnded, { once: true });\n handle.cleanup = () => {\n handle.track.removeEventListener?.(\"ended\", onEnded);\n previousCleanup?.();\n };\n }\n\n private clearEndedVisionSource(handle: VisionSourceHandle): void {\n if (this._activeVisionSource?.track !== handle.track) return;\n handle.cleanup?.();\n this._activeVisionSource = null;\n if (handle.transport === \"websocket\") {\n this.sendWebSocketVisionSourceState(false, handle.source);\n if (isWebcamVisionSource(handle.source)) {\n this._isVideoEnabled = false;\n }\n this.emitVideoStateChange(\"track_ended\");\n return;\n }\n this.updateState();\n this.emitVideoStateChange(\"track_ended\");\n }\n\n private clearActiveVisionSourceForPublication(\n publication: any,\n reason: string,\n ): void {\n const current = this._activeVisionSource;\n if (!current) return;\n if (\n current.publication !== publication &&\n current.track !== this.mediaTrackFromPublication(publication)\n ) {\n return;\n }\n current.cleanup?.();\n this._activeVisionSource = null;\n this.emitVideoStateChange(reason);\n }\n\n private mediaTrackFromPublication(publication: any): MediaStreamTrack | null {\n const track = publication?.track;\n const mediaTrack = track?.mediaStreamTrack ?? track;\n if (mediaTrack && typeof mediaTrack.readyState === \"string\") {\n return mediaTrack as MediaStreamTrack;\n }\n return null;\n }\n\n private semanticSourceForPublication(\n publication: any,\n ): VisionSourceKind | undefined {\n const track = this.mediaTrackFromPublication(publication);\n if (!track) return undefined;\n if (this._activeVisionSource?.track === track) {\n return this._activeVisionSource.source;\n }\n return this.pendingVisionSourceTracks.get(track);\n }\n\n private isWebcamPublication(publication: any): boolean {\n const semanticSource = this.semanticSourceForPublication(publication);\n if (semanticSource !== undefined) {\n return isWebcamVisionSource(semanticSource);\n }\n return this.isCameraLikeSource(publication?.source);\n }\n\n private isCameraLikeSource(source: unknown): boolean {\n return source === \"camera\" || source === Track.Source.Camera;\n }\n\n /**\n * Reset state on disconnect\n */\n reset(): void {\n this._isVideoEnabled = false;\n this._isVideoHidden = false;\n this.webSocketVisionMessageSender = null;\n this.webSocketVisionMode = \"off\";\n const activeSource = this._activeVisionSource;\n activeSource?.cleanup?.();\n if (\n activeSource?.stopTrackOnUnpublish &&\n activeSource.track.readyState !== \"ended\"\n ) {\n activeSource.track.stop();\n }\n this._activeVisionSource = null;\n this.emit(\"videoStateChange\", {\n isVideoEnabled: false,\n isVideoHidden: false,\n activeVisionSource: null,\n hasActiveVisionSource: false,\n visionSourceState: this.makeVisionSourceState(\"reset\"),\n });\n }\n}\n"]}
|
|
@@ -15,8 +15,8 @@ export interface BlendshapeConnectRequestConfig {
|
|
|
15
15
|
*
|
|
16
16
|
* Ahead-delivery changes the client contract because frames can arrive before
|
|
17
17
|
* bot-started-speaking and cancellation must be handled with owner metadata.
|
|
18
|
-
*
|
|
19
|
-
*
|
|
18
|
+
* It is the default now that server support is verified; callers can fall back
|
|
19
|
+
* to the legacy paced path with deliver_chunks_ahead: false.
|
|
20
20
|
*/
|
|
21
21
|
export declare function buildBlendshapeConnectConfig(config: Pick<ConvaiConfig, "enableLipsync" | "blendshapeConfig">): BlendshapeConnectRequestConfig;
|
|
22
22
|
//# sourceMappingURL=connectRequest.d.ts.map
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Ahead-delivery changes the client contract because frames can arrive before
|
|
5
5
|
* bot-started-speaking and cancellation must be handled with owner metadata.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* It is the default now that server support is verified; callers can fall back
|
|
7
|
+
* to the legacy paced path with deliver_chunks_ahead: false.
|
|
8
8
|
*/
|
|
9
9
|
export function buildBlendshapeConnectConfig(config) {
|
|
10
10
|
const deliverChunksAhead = config.enableLipsync === true &&
|
|
11
|
-
config.blendshapeConfig?.deliver_chunks_ahead
|
|
11
|
+
config.blendshapeConfig?.deliver_chunks_ahead !== false;
|
|
12
12
|
return {
|
|
13
13
|
blendshape_provider: config.enableLipsync ? "neurosync" : "not_provided",
|
|
14
14
|
blendshape_config: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectRequest.js","sourceRoot":"","sources":["../../src/core/connectRequest.ts"],"names":[],"mappings":"AAcA;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,MAAgE;IAEhE,MAAM,kBAAkB,GACtB,MAAM,CAAC,aAAa,KAAK,IAAI;QAC7B,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,KAAK,
|
|
1
|
+
{"version":3,"file":"connectRequest.js","sourceRoot":"","sources":["../../src/core/connectRequest.ts"],"names":[],"mappings":"AAcA;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,MAAgE;IAEhE,MAAM,kBAAkB,GACtB,MAAM,CAAC,aAAa,KAAK,IAAI;QAC7B,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,KAAK,KAAK,CAAC;IAE1D,OAAO;QACL,mBAAmB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc;QACxE,iBAAiB,EAAE;YACjB,eAAe,EAAE,IAAI;YACrB,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,IAAI,KAAK;YAChD,sBAAsB,EACpB,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,IAAI,GAAG;YACxD,yEAAyE;YACzE,qEAAqE;YACrE,wEAAwE;YACxE,gBAAgB;YAChB,UAAU,EAAE,kBAAkB;gBAC5B,CAAC,CAAC,MAAM,CAAC,gBAAgB,EAAE,UAAU,IAAI,EAAE;gBAC3C,CAAC,CAAC,EAAE;YACN,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D;KACF,CAAC;AACJ,CAAC","sourcesContent":["import type { ConvaiConfig } from \"./types\";\n\nexport interface BlendshapeConnectRequestConfig {\n blendshape_provider: \"neurosync\" | \"not_provided\";\n blendshape_config: {\n enable_chunking: true;\n chunk_size: number;\n format: \"arkit\" | \"mha\";\n frames_buffer_duration: number;\n output_fps: number;\n deliver_chunks_ahead?: true;\n };\n}\n\n/**\n * Build the lipsync part of the /connect request.\n *\n * Ahead-delivery changes the client contract because frames can arrive before\n * bot-started-speaking and cancellation must be handled with owner metadata.\n * It is the default now that server support is verified; callers can fall back\n * to the legacy paced path with deliver_chunks_ahead: false.\n */\nexport function buildBlendshapeConnectConfig(\n config: Pick<ConvaiConfig, \"enableLipsync\" | \"blendshapeConfig\">,\n): BlendshapeConnectRequestConfig {\n const deliverChunksAhead =\n config.enableLipsync === true &&\n config.blendshapeConfig?.deliver_chunks_ahead !== false;\n\n return {\n blendshape_provider: config.enableLipsync ? \"neurosync\" : \"not_provided\",\n blendshape_config: {\n enable_chunking: true,\n chunk_size: 10,\n format: config.blendshapeConfig?.format || \"mha\",\n frames_buffer_duration:\n config.blendshapeConfig?.frames_buffer_duration ?? 0.1,\n // In the legacy paced path, output_fps is a delivery cadence and the SDK\n // player keeps its 60fps visual timeline. Only ahead-delivery treats\n // output_fps as a client-visible timeline override because chunks carry\n // fps metadata.\n output_fps: deliverChunksAhead\n ? config.blendshapeConfig?.output_fps ?? 60\n : 90,\n ...(deliverChunksAhead ? { deliver_chunks_ahead: true } : {}),\n },\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextUpdateRequest.js","sourceRoot":"","sources":["../../src/core/contextUpdateRequest.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qCAAqC,CACnD,OAA+D;IAE/D,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC;IACpC,CAAC;IACD,OAAO,OAAO,CAAC,YAAY,KAAK,cAAc,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,WAAoC;IAEpC,OAAO,WAAW,KAAK,cAAc,CAAC;AACxC,CAAC"}
|
|
1
|
+
{"version":3,"file":"contextUpdateRequest.js","sourceRoot":"","sources":["../../src/core/contextUpdateRequest.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qCAAqC,CACnD,OAA+D;IAE/D,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC;IACpC,CAAC;IACD,OAAO,OAAO,CAAC,YAAY,KAAK,cAAc,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,WAAoC;IAEpC,OAAO,WAAW,KAAK,cAAc,CAAC;AACxC,CAAC","sourcesContent":["import type { ContextUpdateOptions, RespondMode } from \"./types\";\n\nexport function shouldPreemptForContextUpdateResponse(\n options: Pick<ContextUpdateOptions, \"run_llm\" | \"respond_mode\">,\n): boolean {\n if (options.run_llm !== undefined) {\n return options.run_llm === \"true\";\n }\n return options.respond_mode === \"must_respond\";\n}\n\nexport function shouldPreemptForExplicitRespondMode(\n respondMode: RespondMode | undefined,\n): boolean {\n return respondMode === \"must_respond\";\n}\n"]}
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,4CAA4C;AAC5C,cAAc,SAAS,CAAC;AAExB,mBAAmB;AACnB,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAKrD,gCAAgC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,+BAA+B;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,qCAAqC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,4CAA4C;AAC5C,cAAc,SAAS,CAAC;AAExB,mBAAmB;AACnB,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAKrD,gCAAgC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,+BAA+B;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,qCAAqC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC","sourcesContent":["// Main client\nexport { ConvaiClient } from './ConvaiClient';\n\n// Types (including IConvaiClient interface)\nexport * from './types';\n\n// Helper functions\nexport { getDisconnectReasonMessage } from './types';\n\n// Type alias for easier usage\nexport type { ConvaiClient as ConvaiClientType } from './ConvaiClient';\n\n// Managers (for advanced usage)\nexport { AudioManager } from './AudioManager';\nexport { VideoManager } from './VideoManager';\nexport { ScreenShareManager } from './ScreenShareManager';\nexport { MessageHandler } from './MessageHandler';\nexport { MemoryManager } from './MemoryManager';\n\n// Blendshape queue for lipsync\nexport { BlendshapeQueue } from './BlendshapeQueue';\nexport type { TurnStats, BlendshapeChunkMetadata } from './BlendshapeQueue';\n\n// Event Emitter (for advanced usage)\nexport { EventEmitter } from './EventEmitter';\n"]}
|