@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.
Files changed (88) hide show
  1. package/README.md +40 -6
  2. package/dist/core/AudioManager.js.map +1 -1
  3. package/dist/core/BlendshapeQueue.js.map +1 -1
  4. package/dist/core/ConnectionStateHandler.js.map +1 -1
  5. package/dist/core/ConvaiClient.d.ts +1 -31
  6. package/dist/core/ConvaiClient.d.ts.map +1 -1
  7. package/dist/core/ConvaiClient.js +8 -200
  8. package/dist/core/ConvaiClient.js.map +1 -1
  9. package/dist/core/EventEmitter.js.map +1 -1
  10. package/dist/core/MemoryManager.js.map +1 -1
  11. package/dist/core/MessageHandler.d.ts.map +1 -1
  12. package/dist/core/MessageHandler.js +4 -26
  13. package/dist/core/MessageHandler.js.map +1 -1
  14. package/dist/core/ScreenShareManager.js.map +1 -1
  15. package/dist/core/VideoManager.js.map +1 -1
  16. package/dist/core/connectRequest.d.ts +2 -2
  17. package/dist/core/connectRequest.js +3 -3
  18. package/dist/core/connectRequest.js.map +1 -1
  19. package/dist/core/contextUpdateRequest.js.map +1 -1
  20. package/dist/core/index.js.map +1 -1
  21. package/dist/core/types.d.ts +9 -163
  22. package/dist/core/types.d.ts.map +1 -1
  23. package/dist/core/types.js.map +1 -1
  24. package/dist/core/videoSourceState.js.map +1 -1
  25. package/dist/core/visionRequest.js.map +1 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/lipsync-helpers/arkitOrder61.js.map +1 -1
  28. package/dist/lipsync-helpers/createBlendshapeQueue.js.map +1 -1
  29. package/dist/lipsync-helpers/declarativeMapping.js.map +1 -1
  30. package/dist/lipsync-helpers/index.js.map +1 -1
  31. package/dist/lipsync-helpers/mappingTypes.js.map +1 -1
  32. package/dist/lipsync-helpers/metahumanOrder251.js.map +1 -1
  33. package/dist/lipsync-helpers/mhaLimitDrivers.js.map +1 -1
  34. package/dist/lipsync-helpers/naturalness/processor.js.map +1 -1
  35. package/dist/lipsync-helpers/naturalness/profiles/mha.js.map +1 -1
  36. package/dist/lipsync-helpers/naturalness/types.js.map +1 -1
  37. package/dist/lipsync-helpers/presetMappers.js.map +1 -1
  38. package/dist/react/components/ConvaiWidget.js.map +1 -1
  39. package/dist/react/components/index.js.map +1 -1
  40. package/dist/react/components/rtc-widget/components/AudioSettingsPanel.js.map +1 -1
  41. package/dist/react/components/rtc-widget/components/AudioVisualizer.js.map +1 -1
  42. package/dist/react/components/rtc-widget/components/ConviMessage.js.map +1 -1
  43. package/dist/react/components/rtc-widget/components/FloatingVideo.js.map +1 -1
  44. package/dist/react/components/rtc-widget/components/MarkdownRenderer.js.map +1 -1
  45. package/dist/react/components/rtc-widget/components/MessageBubble.js.map +1 -1
  46. package/dist/react/components/rtc-widget/components/MessageList.js.map +1 -1
  47. package/dist/react/components/rtc-widget/components/UserMessage.js.map +1 -1
  48. package/dist/react/components/rtc-widget/components/conviComponents/ConviButton.js.map +1 -1
  49. package/dist/react/components/rtc-widget/components/conviComponents/ConviFooter.js.map +1 -1
  50. package/dist/react/components/rtc-widget/components/conviComponents/ConviHeader.js.map +1 -1
  51. package/dist/react/components/rtc-widget/components/conviComponents/SettingsTray.js.map +1 -1
  52. package/dist/react/components/rtc-widget/components/conviComponents/VoiceModeOverlay.js.map +1 -1
  53. package/dist/react/components/rtc-widget/components/conviComponents/index.js.map +1 -1
  54. package/dist/react/components/rtc-widget/components/index.js.map +1 -1
  55. package/dist/react/components/rtc-widget/index.js.map +1 -1
  56. package/dist/react/components/rtc-widget/styles/framerConfig.js.map +1 -1
  57. package/dist/react/components/rtc-widget/styles/icons.js.map +1 -1
  58. package/dist/react/components/rtc-widget/styles/index.js.map +1 -1
  59. package/dist/react/components/rtc-widget/styles/styledComponents.js.map +1 -1
  60. package/dist/react/components/rtc-widget/styles/theme.js.map +1 -1
  61. package/dist/react/components/rtc-widget/types/index.js.map +1 -1
  62. package/dist/react/hooks/index.js.map +1 -1
  63. package/dist/react/hooks/useCharacterInfo.js.map +1 -1
  64. package/dist/react/hooks/useConvaiClient.d.ts.map +1 -1
  65. package/dist/react/hooks/useConvaiClient.js +0 -3
  66. package/dist/react/hooks/useConvaiClient.js.map +1 -1
  67. package/dist/react/hooks/useLocalCameraTrack.js.map +1 -1
  68. package/dist/react/index.js.map +1 -1
  69. package/dist/utils/logger.js.map +1 -1
  70. package/dist/vanilla/AudioRenderer.js.map +1 -1
  71. package/dist/vanilla/ConvaiWidget.js.map +1 -1
  72. package/dist/vanilla/WebSocketSession.js.map +1 -1
  73. package/dist/vanilla/icons.js.map +1 -1
  74. package/dist/vanilla/index.js.map +1 -1
  75. package/dist/vanilla/styles.js.map +1 -1
  76. package/dist/vanilla/types.d.ts +2 -2
  77. package/dist/vanilla/types.d.ts.map +1 -1
  78. package/dist/vanilla/types.js.map +1 -1
  79. package/dist/vanilla/websocket.js.map +1 -1
  80. package/dist/version.d.ts +2 -0
  81. package/dist/version.d.ts.map +1 -0
  82. package/dist/version.js +4 -0
  83. package/dist/version.js.map +1 -0
  84. package/package.json +13 -6
  85. package/dist/core/CharacterRoster.d.ts +0 -68
  86. package/dist/core/CharacterRoster.d.ts.map +0 -1
  87. package/dist/core/CharacterRoster.js +0 -235
  88. package/dist/core/CharacterRoster.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lipsync-helpers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAC/E,iEAAiE;AACjE,+EAA+E;AAE/E,OAAO;AACL,+BAA+B;AAC/B,cAAc;AAEd,kCAAkC;AAClC,oBAAoB;AAEpB,mBAAmB;AACnB,wBAAwB,EACxB,iBAAiB,EACjB,6BAA6B,EAC7B,eAAe,EACf,eAAe,EACf,2BAA2B,EAC3B,+BAA+B,EAC/B,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAExB,+EAA+E;AAC/E,wDAAwD;AACxD,+EAA+E;AAE/E,OAAO;AACL,oCAAoC;AACpC,mBAAmB;AAEnB,qBAAqB;AACrB,oBAAoB;AAEpB,0BAA0B;AAC1B,qBAAqB;AAErB,mBAAmB;AACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,iCAAiC,EACjC,oCAAoC,GACrC,MAAM,qBAAqB,CAAC;AAY7B,OAAO,EACL,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,8BAA8B,EAC9B,2BAA2B,EAC3B,gCAAgC,EAChC,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAWjC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,sEAAsE;AACtE,oEAAoE;AACpE,gEAAgE;AAChE,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAQjC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE1E,iEAAiE;AACjE,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lipsync-helpers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAC/E,iEAAiE;AACjE,+EAA+E;AAE/E,OAAO;AACL,+BAA+B;AAC/B,cAAc;AAEd,kCAAkC;AAClC,oBAAoB;AAEpB,mBAAmB;AACnB,wBAAwB,EACxB,iBAAiB,EACjB,6BAA6B,EAC7B,eAAe,EACf,eAAe,EACf,2BAA2B,EAC3B,+BAA+B,EAC/B,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAExB,+EAA+E;AAC/E,wDAAwD;AACxD,+EAA+E;AAE/E,OAAO;AACL,oCAAoC;AACpC,mBAAmB;AAEnB,qBAAqB;AACrB,oBAAoB;AAEpB,0BAA0B;AAC1B,qBAAqB;AAErB,mBAAmB;AACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,iCAAiC,EACjC,oCAAoC,GACrC,MAAM,qBAAqB,CAAC;AAY7B,OAAO,EACL,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,8BAA8B,EAC9B,2BAA2B,EAC3B,gCAAgC,EAChC,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAWjC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,sEAAsE;AACtE,oEAAoE;AACpE,gEAAgE;AAChE,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAQjC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE1E,iEAAiE;AACjE,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC","sourcesContent":["/**\n * Lipsync Helpers\n * \n * Essential blendshape order arrays for ARKit and MetaHuman formats.\n * These define the order in which blendshape values are received from Convai's server.\n */\n\n// ============================================================================\n// ARKIT FORMAT (61 elements: 52 blendshapes + 9 rotation values)\n// ============================================================================\n\nexport {\n // ARKit 61-element order array\n ARKIT_ORDER_61,\n \n // Standard ARKit 52-element order\n STANDARD_ARKIT_ORDER,\n \n // Helper functions\n convertOrder61ToStandard,\n mapOrder61ToNames,\n getBlendshapeValueFromOrder61,\n getHeadRotation,\n getEyeRotations,\n getLipSyncValuesFromOrder61,\n getActiveBlendshapesFromOrder61,\n formatOrder61ForLogging,\n} from \"./arkitOrder61\";\n\n// ============================================================================\n// METAHUMAN FORMAT (251 CTRL_expressions_* blendshapes)\n// ============================================================================\n\nexport {\n // MetaHuman 251-element order array\n METAHUMAN_ORDER_251,\n \n // Category breakdown\n METAHUMAN_CATEGORIES,\n \n // Key lipsync blendshapes\n KEY_METAHUMAN_LIPSYNC,\n \n // Helper functions\n getMetaHumanBlendshapeName,\n getMetaHumanBlendshapeIndex,\n getMetaHumanBlendshapesByCategory,\n formatMetaHumanBlendshapesForLogging,\n} from \"./metahumanOrder251\";\n\n// ============================================================================\n// MAPPING SYSTEM\n// ============================================================================\n\nexport type {\n BlendshapeMapper,\n BlendshapeFormat,\n BlendshapeMappingConfig,\n} from \"./mappingTypes\";\n\nexport {\n PRESET_MAPPINGS,\n} from \"./mappingTypes\";\n\nexport {\n arkitPassthroughMapper,\n metahumanPassthroughMapper,\n identityMapper,\n} from \"./presetMappers\";\n\nexport {\n createBlendshapeQueue,\n createARKitBlendshapeQueue,\n createMetaHumanBlendshapeQueue,\n createCustomBlendshapeQueue,\n createPassthroughBlendshapeQueue,\n inferMappingFromConfig,\n} from \"./createBlendshapeQueue\";\n\n// ============================================================================\n// DECLARATIVE NAME-BASED MAPPING\n// ============================================================================\n\nexport type {\n BlendshapeNameMapping,\n OptimizedBlendshapeOutput,\n} from \"./declarativeMapping\";\n\nexport {\n createARKitNameMapper,\n createMetaHumanNameMapper,\n getBlendshapeObject,\n} from \"./declarativeMapping\";\n\n// Modular naturalness pipeline: format profiles + one-call processor.\n// createLipsyncProcessor('mha') wraps symmetrize → limits → gains →\n// envelope → mesh application; new formats plug in as profiles.\nexport {\n createLipsyncProcessor,\n getLipsyncProfile,\n} from \"./naturalness/processor\";\nexport type {\n LipsyncFormat,\n LipsyncFormatProfile,\n LipsyncProcessorOptions,\n LipsyncEnvelopeOptions,\n LipsyncMeshBinding,\n} from \"./naturalness/types\";\nexport { MHA_PROFILE, mhaChannelIndex } from \"./naturalness/profiles/mha\";\n\n// Flat MHA convenience wrappers over the profile (piecemeal use)\nexport {\n MHA_LIMIT_DRIVERS,\n applyMhaLimits,\n MHA_RECOMMENDED_GAINS,\n createMhaGainMask,\n MHA_EYE_CHANNEL_INDICES,\n symmetrizeMhaMouth,\n} from \"./mhaLimitDrivers\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mappingTypes.js","sourceRoot":"","sources":["../../src/lipsync-helpers/mappingTypes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2CH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B;;;OAGG;IACH,iBAAiB,EAAE;QACjB,WAAW,EAAE,OAAgB;QAC7B,YAAY,EAAE,OAAgB;KAC/B;IAED;;;OAGG;IACH,eAAe,EAAE;QACf,WAAW,EAAE,KAAc;QAC3B,YAAY,EAAE,KAAc;KAC7B;CACO,CAAC"}
1
+ {"version":3,"file":"mappingTypes.js","sourceRoot":"","sources":["../../src/lipsync-helpers/mappingTypes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2CH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B;;;OAGG;IACH,iBAAiB,EAAE;QACjB,WAAW,EAAE,OAAgB;QAC7B,YAAY,EAAE,OAAgB;KAC/B;IAED;;;OAGG;IACH,eAAe,EAAE;QACf,WAAW,EAAE,KAAc;QAC3B,YAAY,EAAE,KAAc;KAC7B;CACO,CAAC","sourcesContent":["/**\n * Blendshape Mapping Types\n *\n * Defines interfaces and types for mapping server blendshape data\n * to various target formats (ARKit, MetaHuman, custom rigs, etc.)\n */\n\n/**\n * Function that maps an input blendshape array to an output format\n * @param input - Raw blendshape data from server\n * @returns Mapped blendshape array in target format\n */\nexport type BlendshapeMapper = (input: number[] | Float32Array) => Float32Array;\n\n/**\n * Blendshape format types\n * - arkit: 61-element ARKit format (52 blendshapes + 9 rotation values)\n * - mha: 251-element MetaHuman format (CTRL_expressions_*)\n * - custom: User-defined format with custom mapper\n */\nexport type BlendshapeFormat = \"arkit\" | \"mha\" | \"custom\";\n\n/**\n * Configuration for blendshape mapping\n */\nexport interface BlendshapeMappingConfig {\n /**\n * Input format from server\n * - arkit: Server sends 61-element array\n * - mha: Server sends 251-element array\n */\n inputFormat: BlendshapeFormat;\n\n /**\n * Output format for application\n * - arkit: Map to 61-element ARKit format\n * - mha: Map to 251-element MetaHuman format\n * - custom: Use custom mapper function\n */\n outputFormat: BlendshapeFormat;\n\n /**\n * Custom mapper function (required if inputFormat or outputFormat is 'custom')\n * Takes raw server data and returns mapped blendshapes\n */\n mapper?: BlendshapeMapper;\n}\n\n/**\n * Preset mapping configurations\n */\nexport const PRESET_MAPPINGS = {\n /**\n * ARKit passthrough - no mapping needed\n * Server sends 61 elements, output 61 elements\n */\n ARKIT_PASSTHROUGH: {\n inputFormat: \"arkit\" as const,\n outputFormat: \"arkit\" as const,\n },\n\n /**\n * MetaHuman passthrough - no mapping needed\n * Server sends 251 elements, output 251 elements\n */\n MHA_PASSTHROUGH: {\n inputFormat: \"mha\" as const,\n outputFormat: \"mha\" as const,\n },\n} as const;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"metahumanOrder251.js","sourceRoot":"","sources":["../../src/lipsync-helpers/metahumanOrder251.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metahumanOrder251.js","sourceRoot":"","sources":["../../src/lipsync-helpers/metahumanOrder251.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * MetaHuman 251-Element Blendshape Order\n * \n * This is the standard format sent by Convai's MetaHuman blendshape provider.\n * The server sends 251 CTRL_expressions_* values in this specific order.\n * \n * Based on Unreal Engine MetaHuman Control Rig specification.\n * \n * Source: UConvaiNeuroSyncComponent::CtrlExpressionNames[251]\n */\n\n/**\n * MetaHuman 251-element blendshape names (CTRL_expressions_*)\n * This is the order in which blendshapes are received from the server\n */\nexport const METAHUMAN_ORDER_251: readonly string[] = [\n // ============================================================================\n // BROWS (8 blendshapes)\n // ============================================================================\n \"CTRL_expressions_browDownL\", // 0\n \"CTRL_expressions_browDownR\", // 1\n \"CTRL_expressions_browLateralL\", // 2\n \"CTRL_expressions_browLateralR\", // 3\n \"CTRL_expressions_browRaiseInL\", // 4\n \"CTRL_expressions_browRaiseInR\", // 5\n \"CTRL_expressions_browRaiseOuterL\", // 6\n \"CTRL_expressions_browRaiseOuterR\", // 7\n \n // ============================================================================\n // EARS (2 blendshapes)\n // ============================================================================\n \"CTRL_expressions_earUpL\", // 8\n \"CTRL_expressions_earUpR\", // 9\n \n // ============================================================================\n // EYES (43 blendshapes)\n // ============================================================================\n \"CTRL_expressions_eyeBlinkL\", // 10 - 🔑 KEY\n \"CTRL_expressions_eyeBlinkR\", // 11 - 🔑 KEY\n \"CTRL_expressions_eyeCheekRaiseL\", // 12\n \"CTRL_expressions_eyeCheekRaiseR\", // 13\n \"CTRL_expressions_eyeFaceScrunchL\", // 14\n \"CTRL_expressions_eyeFaceScrunchR\", // 15\n \"CTRL_expressions_eyeLidPressL\", // 16\n \"CTRL_expressions_eyeLidPressR\", // 17\n \"CTRL_expressions_eyeLookDownL\", // 18 - 🔑 KEY\n \"CTRL_expressions_eyeLookDownR\", // 19 - 🔑 KEY\n \"CTRL_expressions_eyeLookLeftL\", // 20 - 🔑 KEY\n \"CTRL_expressions_eyeLookLeftR\", // 21 - 🔑 KEY\n \"CTRL_expressions_eyeLookRightL\", // 22 - 🔑 KEY\n \"CTRL_expressions_eyeLookRightR\", // 23 - 🔑 KEY\n \"CTRL_expressions_eyeLookUpL\", // 24 - 🔑 KEY\n \"CTRL_expressions_eyeLookUpR\", // 25 - 🔑 KEY\n \"CTRL_expressions_eyeLowerLidDownL\", // 26\n \"CTRL_expressions_eyeLowerLidDownR\", // 27\n \"CTRL_expressions_eyeLowerLidUpL\", // 28\n \"CTRL_expressions_eyeLowerLidUpR\", // 29\n \"CTRL_expressions_eyeParallelLookDirection\", // 30\n \"CTRL_expressions_eyePupilNarrowL\", // 31\n \"CTRL_expressions_eyePupilNarrowR\", // 32\n \"CTRL_expressions_eyePupilWideL\", // 33\n \"CTRL_expressions_eyePupilWideR\", // 34\n \"CTRL_expressions_eyeRelaxL\", // 35\n \"CTRL_expressions_eyeRelaxR\", // 36\n \"CTRL_expressions_eyeSquintInnerL\", // 37 - 🔑 KEY\n \"CTRL_expressions_eyeSquintInnerR\", // 38 - 🔑 KEY\n \"CTRL_expressions_eyeUpperLidUpL\", // 39\n \"CTRL_expressions_eyeUpperLidUpR\", // 40\n \"CTRL_expressions_eyeWidenL\", // 41 - 🔑 KEY\n \"CTRL_expressions_eyeWidenR\", // 42 - 🔑 KEY\n \n // ============================================================================\n // EYELASHES (8 blendshapes)\n // ============================================================================\n \"CTRL_expressions_eyelashesDownINL\", // 43\n \"CTRL_expressions_eyelashesDownINR\", // 44\n \"CTRL_expressions_eyelashesDownOUTL\", // 45\n \"CTRL_expressions_eyelashesDownOUTR\", // 46\n \"CTRL_expressions_eyelashesUpINL\", // 47\n \"CTRL_expressions_eyelashesUpINR\", // 48\n \"CTRL_expressions_eyelashesUpOUTL\", // 49\n \"CTRL_expressions_eyelashesUpOUTR\", // 50\n \n // ============================================================================\n // JAW (13 blendshapes)\n // ============================================================================\n \"CTRL_expressions_jawBack\", // 51\n \"CTRL_expressions_jawChinCompressL\", // 52\n \"CTRL_expressions_jawChinCompressR\", // 53\n \"CTRL_expressions_jawChinRaiseDL\", // 54\n \"CTRL_expressions_jawChinRaiseDR\", // 55\n \"CTRL_expressions_jawChinRaiseUL\", // 56\n \"CTRL_expressions_jawChinRaiseUR\", // 57\n \"CTRL_expressions_jawClenchL\", // 58\n \"CTRL_expressions_jawClenchR\", // 59\n \"CTRL_expressions_jawFwd\", // 60 - 🔑 KEY\n \"CTRL_expressions_jawLeft\", // 61 - 🔑 KEY\n \"CTRL_expressions_jawOpen\", // 62 - 🔑 KEY (most important!)\n \"CTRL_expressions_jawOpenExtreme\", // 63\n \"CTRL_expressions_jawRight\", // 64 - 🔑 KEY\n \n // ============================================================================\n // MOUTH (133 blendshapes) - Most important for lipsync!\n // ============================================================================\n \"CTRL_expressions_mouthCheekBlowL\", // 65\n \"CTRL_expressions_mouthCheekBlowR\", // 66\n \"CTRL_expressions_mouthCheekSuckL\", // 67\n \"CTRL_expressions_mouthCheekSuckR\", // 68\n \"CTRL_expressions_mouthCornerDepressL\", // 69\n \"CTRL_expressions_mouthCornerDepressR\", // 70\n \"CTRL_expressions_mouthCornerDownL\", // 71\n \"CTRL_expressions_mouthCornerDownR\", // 72\n \"CTRL_expressions_mouthCornerNarrowL\", // 73\n \"CTRL_expressions_mouthCornerNarrowR\", // 74\n \"CTRL_expressions_mouthCornerPullL\", // 75\n \"CTRL_expressions_mouthCornerPullR\", // 76\n \"CTRL_expressions_mouthCornerRounderDL\", // 77\n \"CTRL_expressions_mouthCornerRounderDR\", // 78\n \"CTRL_expressions_mouthCornerRounderUL\", // 79\n \"CTRL_expressions_mouthCornerRounderUR\", // 80\n \"CTRL_expressions_mouthCornerSharpenDL\", // 81\n \"CTRL_expressions_mouthCornerSharpenDR\", // 82\n \"CTRL_expressions_mouthCornerSharpenUL\", // 83\n \"CTRL_expressions_mouthCornerSharpenUR\", // 84\n \"CTRL_expressions_mouthCornerUpL\", // 85\n \"CTRL_expressions_mouthCornerUpR\", // 86\n \"CTRL_expressions_mouthCornerWideL\", // 87\n \"CTRL_expressions_mouthCornerWideR\", // 88\n \"CTRL_expressions_mouthDimpleL\", // 89\n \"CTRL_expressions_mouthDimpleR\", // 90\n \"CTRL_expressions_mouthDown\", // 91\n \"CTRL_expressions_mouthFunnelDL\", // 92 - 🔑 KEY\n \"CTRL_expressions_mouthFunnelDR\", // 93 - 🔑 KEY\n \"CTRL_expressions_mouthFunnelUL\", // 94 - 🔑 KEY\n \"CTRL_expressions_mouthFunnelUR\", // 95 - 🔑 KEY\n \"CTRL_expressions_mouthLeft\", // 96 - 🔑 KEY\n \"CTRL_expressions_mouthLipsBlowL\", // 97\n \"CTRL_expressions_mouthLipsBlowR\", // 98\n \"CTRL_expressions_mouthLipsPressL\", // 99\n \"CTRL_expressions_mouthLipsPressR\", // 100\n \"CTRL_expressions_mouthLipsPullDL\", // 101\n \"CTRL_expressions_mouthLipsPullDR\", // 102\n \"CTRL_expressions_mouthLipsPullUL\", // 103\n \"CTRL_expressions_mouthLipsPullUR\", // 104\n \"CTRL_expressions_mouthLipsPurseDL\", // 105\n \"CTRL_expressions_mouthLipsPurseDR\", // 106\n \"CTRL_expressions_mouthLipsPurseUL\", // 107\n \"CTRL_expressions_mouthLipsPurseUR\", // 108\n \"CTRL_expressions_mouthLipsPushDL\", // 109\n \"CTRL_expressions_mouthLipsPushDR\", // 110\n \"CTRL_expressions_mouthLipsPushUL\", // 111\n \"CTRL_expressions_mouthLipsPushUR\", // 112\n \"CTRL_expressions_mouthLipsStickyLPh1\", // 113\n \"CTRL_expressions_mouthLipsStickyLPh2\", // 114\n \"CTRL_expressions_mouthLipsStickyLPh3\", // 115\n \"CTRL_expressions_mouthLipsStickyRPh1\", // 116\n \"CTRL_expressions_mouthLipsStickyRPh2\", // 117\n \"CTRL_expressions_mouthLipsStickyRPh3\", // 118\n \"CTRL_expressions_mouthLipsThickDL\", // 119\n \"CTRL_expressions_mouthLipsThickDR\", // 120\n \"CTRL_expressions_mouthLipsThickInwardDL\", // 121\n \"CTRL_expressions_mouthLipsThickInwardDR\", // 122\n \"CTRL_expressions_mouthLipsThickInwardUL\", // 123\n \"CTRL_expressions_mouthLipsThickInwardUR\", // 124\n \"CTRL_expressions_mouthLipsThickUL\", // 125\n \"CTRL_expressions_mouthLipsThickUR\", // 126\n \"CTRL_expressions_mouthLipsThinDL\", // 127\n \"CTRL_expressions_mouthLipsThinDR\", // 128\n \"CTRL_expressions_mouthLipsThinInwardDL\", // 129\n \"CTRL_expressions_mouthLipsThinInwardDR\", // 130\n \"CTRL_expressions_mouthLipsThinInwardUL\", // 131\n \"CTRL_expressions_mouthLipsThinInwardUR\", // 132\n \"CTRL_expressions_mouthLipsThinUL\", // 133\n \"CTRL_expressions_mouthLipsThinUR\", // 134\n \"CTRL_expressions_mouthLipsTightenDL\", // 135\n \"CTRL_expressions_mouthLipsTightenDR\", // 136\n \"CTRL_expressions_mouthLipsTightenUL\", // 137\n \"CTRL_expressions_mouthLipsTightenUR\", // 138\n \"CTRL_expressions_mouthLipsTogetherDL\", // 139 - 🔑 KEY\n \"CTRL_expressions_mouthLipsTogetherDR\", // 140 - 🔑 KEY\n \"CTRL_expressions_mouthLipsTogetherUL\", // 141 - 🔑 KEY\n \"CTRL_expressions_mouthLipsTogetherUR\", // 142 - 🔑 KEY\n \"CTRL_expressions_mouthLipsTowardsDL\", // 143\n \"CTRL_expressions_mouthLipsTowardsDR\", // 144\n \"CTRL_expressions_mouthLipsTowardsUL\", // 145\n \"CTRL_expressions_mouthLipsTowardsUR\", // 146\n \"CTRL_expressions_mouthLowerLipBiteL\", // 147\n \"CTRL_expressions_mouthLowerLipBiteR\", // 148\n \"CTRL_expressions_mouthLowerLipDepressL\", // 149\n \"CTRL_expressions_mouthLowerLipDepressR\", // 150\n \"CTRL_expressions_mouthLowerLipRollInL\", // 151\n \"CTRL_expressions_mouthLowerLipRollInR\", // 152\n \"CTRL_expressions_mouthLowerLipRollOutL\", // 153\n \"CTRL_expressions_mouthLowerLipRollOutR\", // 154\n \"CTRL_expressions_mouthLowerLipShiftLeft\", // 155\n \"CTRL_expressions_mouthLowerLipShiftRight\", // 156\n \"CTRL_expressions_mouthLowerLipTowardsTeethL\", // 157\n \"CTRL_expressions_mouthLowerLipTowardsTeethR\", // 158\n \"CTRL_expressions_mouthPressDL\", // 159\n \"CTRL_expressions_mouthPressDR\", // 160\n \"CTRL_expressions_mouthPressUL\", // 161\n \"CTRL_expressions_mouthPressUR\", // 162\n \"CTRL_expressions_mouthRight\", // 163 - 🔑 KEY\n \"CTRL_expressions_mouthSharpCornerPullL\", // 164\n \"CTRL_expressions_mouthSharpCornerPullR\", // 165\n \"CTRL_expressions_mouthStickyDC\", // 166\n \"CTRL_expressions_mouthStickyDINL\", // 167\n \"CTRL_expressions_mouthStickyDINR\", // 168\n \"CTRL_expressions_mouthStickyDOUTL\", // 169\n \"CTRL_expressions_mouthStickyDOUTR\", // 170\n \"CTRL_expressions_mouthStickyUC\", // 171\n \"CTRL_expressions_mouthStickyUINL\", // 172\n \"CTRL_expressions_mouthStickyUINR\", // 173\n \"CTRL_expressions_mouthStickyUOUTL\", // 174\n \"CTRL_expressions_mouthStickyUOUTR\", // 175\n \"CTRL_expressions_mouthStretchL\", // 176 - 🔑 KEY\n \"CTRL_expressions_mouthStretchLipsCloseL\", // 177\n \"CTRL_expressions_mouthStretchLipsCloseR\", // 178\n \"CTRL_expressions_mouthStretchR\", // 179 - 🔑 KEY\n \"CTRL_expressions_mouthUp\", // 180\n \"CTRL_expressions_mouthUpperLipBiteL\", // 181\n \"CTRL_expressions_mouthUpperLipBiteR\", // 182\n \"CTRL_expressions_mouthUpperLipRaiseL\", // 183\n \"CTRL_expressions_mouthUpperLipRaiseR\", // 184\n \"CTRL_expressions_mouthUpperLipRollInL\", // 185\n \"CTRL_expressions_mouthUpperLipRollInR\", // 186\n \"CTRL_expressions_mouthUpperLipRollOutL\", // 187\n \"CTRL_expressions_mouthUpperLipRollOutR\", // 188\n \"CTRL_expressions_mouthUpperLipShiftLeft\", // 189\n \"CTRL_expressions_mouthUpperLipShiftRight\", // 190\n \"CTRL_expressions_mouthUpperLipTowardsTeethL\", // 191\n \"CTRL_expressions_mouthUpperLipTowardsTeethR\", // 192\n \n // ============================================================================\n // NECK (14 blendshapes)\n // ============================================================================\n \"CTRL_expressions_neckDigastricDown\", // 193\n \"CTRL_expressions_neckDigastricUp\", // 194\n \"CTRL_expressions_neckMastoidContractL\", // 195\n \"CTRL_expressions_neckMastoidContractR\", // 196\n \"CTRL_expressions_neckStretchL\", // 197\n \"CTRL_expressions_neckStretchR\", // 198\n \"CTRL_expressions_neckSwallowPh1\", // 199\n \"CTRL_expressions_neckSwallowPh2\", // 200\n \"CTRL_expressions_neckSwallowPh3\", // 201\n \"CTRL_expressions_neckSwallowPh4\", // 202\n \"CTRL_expressions_neckThroatDown\", // 203\n \"CTRL_expressions_neckThroatExhale\", // 204\n \"CTRL_expressions_neckThroatInhale\", // 205\n \"CTRL_expressions_neckThroatUp\", // 206\n \n // ============================================================================\n // NOSE (10 blendshapes)\n // ============================================================================\n \"CTRL_expressions_noseNasolabialDeepenL\", // 207\n \"CTRL_expressions_noseNasolabialDeepenR\", // 208\n \"CTRL_expressions_noseNostrilCompressL\", // 209\n \"CTRL_expressions_noseNostrilCompressR\", // 210\n \"CTRL_expressions_noseNostrilDepressL\", // 211\n \"CTRL_expressions_noseNostrilDepressR\", // 212\n \"CTRL_expressions_noseNostrilDilateL\", // 213\n \"CTRL_expressions_noseNostrilDilateR\", // 214\n \"CTRL_expressions_noseWrinkleL\", // 215\n \"CTRL_expressions_noseWrinkleR\", // 216\n \"CTRL_expressions_noseWrinkleUpperL\", // 217\n \"CTRL_expressions_noseWrinkleUpperR\", // 218\n \n // ============================================================================\n // TEETH (12 blendshapes)\n // ============================================================================\n \"CTRL_expressions_teethBackD\", // 219\n \"CTRL_expressions_teethBackU\", // 220\n \"CTRL_expressions_teethDownD\", // 221\n \"CTRL_expressions_teethDownU\", // 222\n \"CTRL_expressions_teethFwdD\", // 223\n \"CTRL_expressions_teethFwdU\", // 224\n \"CTRL_expressions_teethLeftD\", // 225\n \"CTRL_expressions_teethLeftU\", // 226\n \"CTRL_expressions_teethRightD\", // 227\n \"CTRL_expressions_teethRightU\", // 228\n \"CTRL_expressions_teethUpD\", // 229\n \"CTRL_expressions_teethUpU\", // 230\n \n // ============================================================================\n // TONGUE (20 blendshapes)\n // ============================================================================\n \"CTRL_expressions_tongueBendDown\", // 231\n \"CTRL_expressions_tongueBendUp\", // 232\n \"CTRL_expressions_tongueDown\", // 233\n \"CTRL_expressions_tongueIn\", // 234\n \"CTRL_expressions_tongueLeft\", // 235\n \"CTRL_expressions_tongueNarrow\", // 236\n \"CTRL_expressions_tongueOut\", // 237 - 🔑 KEY\n \"CTRL_expressions_tonguePress\", // 238\n \"CTRL_expressions_tongueRight\", // 239\n \"CTRL_expressions_tongueRoll\", // 240\n \"CTRL_expressions_tongueThick\", // 241\n \"CTRL_expressions_tongueThin\", // 242\n \"CTRL_expressions_tongueTipDown\", // 243\n \"CTRL_expressions_tongueTipLeft\", // 244\n \"CTRL_expressions_tongueTipRight\", // 245\n \"CTRL_expressions_tongueTipUp\", // 246\n \"CTRL_expressions_tongueTwistLeft\", // 247\n \"CTRL_expressions_tongueTwistRight\", // 248\n \"CTRL_expressions_tongueUp\", // 249\n \"CTRL_expressions_tongueWide\", // 250\n] as const;\n\n/**\n * Category breakdown for MetaHuman blendshapes\n */\nexport const METAHUMAN_CATEGORIES = {\n brows: {\n start: 0,\n end: 7,\n count: 8,\n },\n ears: {\n start: 8,\n end: 9,\n count: 2,\n },\n eyes: {\n start: 10,\n end: 52,\n count: 43,\n },\n eyelashes: {\n start: 43,\n end: 50,\n count: 8,\n },\n jaw: {\n start: 51,\n end: 64,\n count: 14,\n },\n mouth: {\n start: 65,\n end: 197,\n count: 133,\n },\n neck: {\n start: 193,\n end: 206,\n count: 14,\n },\n nose: {\n start: 207,\n end: 218,\n count: 12,\n },\n teeth: {\n start: 219,\n end: 230,\n count: 12,\n },\n tongue: {\n start: 231,\n end: 250,\n count: 20,\n },\n};\n\n/**\n * Key blendshapes for lip-sync (most important for speech animation)\n */\nexport const KEY_METAHUMAN_LIPSYNC = {\n // Eyes\n EYE_BLINK_L: 10,\n EYE_BLINK_R: 11,\n \n // Jaw\n JAW_FORWARD: 60,\n JAW_LEFT: 61,\n JAW_OPEN: 62, // Most important!\n JAW_RIGHT: 64,\n \n // Mouth - Funnel (O sounds)\n MOUTH_FUNNEL_DL: 92,\n MOUTH_FUNNEL_DR: 93,\n MOUTH_FUNNEL_UL: 94,\n MOUTH_FUNNEL_UR: 95,\n \n // Mouth - Movement\n MOUTH_LEFT: 96,\n MOUTH_RIGHT: 163,\n \n // Mouth - Stretch (wide mouth)\n MOUTH_STRETCH_L: 176,\n MOUTH_STRETCH_R: 179,\n \n // Mouth - Lips Together\n MOUTH_LIPS_TOGETHER_DL: 139,\n MOUTH_LIPS_TOGETHER_DR: 140,\n MOUTH_LIPS_TOGETHER_UL: 141,\n MOUTH_LIPS_TOGETHER_UR: 142,\n \n // Tongue\n TONGUE_OUT: 237,\n};\n\n/**\n * Get blendshape name by index\n */\nexport function getMetaHumanBlendshapeName(index: number): string | undefined {\n return METAHUMAN_ORDER_251[index];\n}\n\n/**\n * Get blendshape index by name\n */\nexport function getMetaHumanBlendshapeIndex(name: string): number {\n return METAHUMAN_ORDER_251.indexOf(name as any);\n}\n\n/**\n * Get blendshapes by category\n */\nexport function getMetaHumanBlendshapesByCategory(category: keyof typeof METAHUMAN_CATEGORIES): readonly string[] {\n const cat = METAHUMAN_CATEGORIES[category];\n return METAHUMAN_ORDER_251.slice(cat.start, cat.end + 1);\n}\n\n/**\n * Format MetaHuman blendshapes for logging\n */\nexport function formatMetaHumanBlendshapesForLogging(\n values: number[] | Float32Array,\n threshold: number = 0.01,\n maxEntries: number = 20\n): {\n active: Record<string, number>;\n total: number;\n activeCount: number;\n} {\n const active: Record<string, number> = {};\n const activeList: Array<{ name: string; value: number; index: number }> = [];\n \n for (let i = 0; i < Math.min(values.length, METAHUMAN_ORDER_251.length); i++) {\n const value = values[i];\n if (Math.abs(value) > threshold) {\n activeList.push({\n name: METAHUMAN_ORDER_251[i],\n value,\n index: i,\n });\n }\n }\n \n // Sort by absolute value (descending)\n activeList\n .sort((a, b) => Math.abs(b.value) - Math.abs(a.value))\n .slice(0, maxEntries)\n .forEach(item => {\n active[item.name] = Number(item.value.toFixed(4));\n });\n \n return {\n active,\n total: values.length,\n activeCount: activeList.length,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mhaLimitDrivers.js","sourceRoot":"","sources":["../../src/lipsync-helpers/mhaLimitDrivers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACL,WAAW,EACX,0BAA0B,EAC1B,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAEpC;;;;;GAKG;AAEH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAKxB,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;IACxD,MAAM,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;IACxE,MAAM,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;IACxE,SAAS;IACT,SAAS;CACV,CAAC,CAAC,CAAC;AAEJ;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAmB;IAChD,IAAI,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM;QAAE,OAAO;IACtD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,MAAM,qBAAqB,GAChC,0BAA0B,CAAC;AAE7B,6EAA6E;AAC7E,MAAM,UAAU,iBAAiB,CAC/B,YAAoC,EAAE;IAEtC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC5D,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,GAAG,WAAW,CAAC,iBAAiB;CACjC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAmB;IACpD,IAAI,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM;QAAE,OAAO;IACtD,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACtC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACd,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"mhaLimitDrivers.js","sourceRoot":"","sources":["../../src/lipsync-helpers/mhaLimitDrivers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACL,WAAW,EACX,0BAA0B,EAC1B,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAEpC;;;;;GAKG;AAEH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAKxB,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;IACxD,MAAM,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;IACxE,MAAM,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;IACxE,SAAS;IACT,SAAS;CACV,CAAC,CAAC,CAAC;AAEJ;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAmB;IAChD,IAAI,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM;QAAE,OAAO;IACtD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,MAAM,qBAAqB,GAChC,0BAA0B,CAAC;AAE7B,6EAA6E;AAC7E,MAAM,UAAU,iBAAiB,CAC/B,YAAoC,EAAE;IAEtC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC5D,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,GAAG,WAAW,CAAC,iBAAiB;CACjC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAmB;IACpD,IAAI,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM;QAAE,OAAO;IACtD,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACtC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACd,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;AACH,CAAC","sourcesContent":["import { METAHUMAN_ORDER_251 } from \"./metahumanOrder251\";\nimport {\n MHA_PROFILE,\n MHA_RECOMMENDED_GAIN_TABLE,\n mhaChannelIndex,\n} from \"./naturalness/profiles/mha\";\n\n/**\n * Flat MHA convenience helpers — thin wrappers over the modular\n * naturalness profile (see `naturalness/`). Prefer\n * `createLipsyncProcessor('mha')` for the full pipeline in one call;\n * these remain for piecemeal use.\n */\n\n/** Resolved limit couplings over the MHA-251 frame layout. */\nexport const MHA_LIMIT_DRIVERS: readonly {\n source: string;\n target: string;\n sourceIdx: number;\n targetIdx: number;\n}[] = MHA_PROFILE.limits.map(([sourceIdx, targetIdx]) => ({\n source: METAHUMAN_ORDER_251[sourceIdx].replace(/^CTRL_expressions_/, \"\"),\n target: METAHUMAN_ORDER_251[targetIdx].replace(/^CTRL_expressions_/, \"\"),\n sourceIdx,\n targetIdx,\n}));\n\n/**\n * Apply the MetaHuman limit drivers to a 251-dim frame IN PLACE:\n * each target channel becomes max(target, source). No-op for other formats.\n */\nexport function applyMhaLimits(frame: Float32Array): void {\n if (frame.length < METAHUMAN_ORDER_251.length) return;\n for (const [s, t] of MHA_PROFILE.limits) {\n if (frame[s] > frame[t]) frame[t] = frame[s];\n }\n}\n\n/** Production-tuned per-channel gains (short control name → gain). */\nexport const MHA_RECOMMENDED_GAINS: Record<string, number> =\n MHA_RECOMMENDED_GAIN_TABLE;\n\n/** Build a 251-length gain mask from MHA_RECOMMENDED_GAINS (+ overrides). */\nexport function createMhaGainMask(\n overrides: Record<string, number> = {},\n): Float32Array {\n const mask = new Float32Array(MHA_PROFILE.recommendedGains);\n for (const [name, gain] of Object.entries(overrides)) {\n const i = mhaChannelIndex(name);\n if (i !== undefined) mask[i] = gain;\n }\n return mask;\n}\n\n/**\n * MHA frame indices of the eye channels (blink, look, lids). If you run a\n * procedural blink or gaze system, SKIP these when applying stream frames.\n */\nexport const MHA_EYE_CHANNEL_INDICES: readonly number[] = [\n ...MHA_PROFILE.eyeChannelIndices,\n];\n\n/**\n * Average every sided mouth/jaw L/R pair IN PLACE — streams drive the two\n * sides unevenly (measured up to 1.5×), which reads as a lopsided mouth.\n */\nexport function symmetrizeMhaMouth(frame: Float32Array): void {\n if (frame.length < METAHUMAN_ORDER_251.length) return;\n for (const [li, ri] of MHA_PROFILE.mouthPairs) {\n const m = (frame[li] + frame[ri]) / 2;\n frame[li] = m;\n frame[ri] = m;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../src/lipsync-helpers/naturalness/processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../src/lipsync-helpers/naturalness/processor.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n LipsyncFormat,\n LipsyncFormatProfile,\n LipsyncMeshBinding,\n LipsyncProcessorOptions,\n} from \"./types\";\nimport { MHA_PROFILE } from \"./profiles/mha\";\n\n/**\n * createLipsyncProcessor — the one-call naturalness pipeline for a stream\n * format. Wraps every per-frame pattern from the lipsync docs:\n *\n * raw frame → symmetrize L/R → rig limit couplings → per-channel gains\n * → bloom/settle envelope → morph targets (eye channels\n * optionally left to your procedural blink/gaze)\n *\n * ```ts\n * const lipsync = createLipsyncProcessor('mha', { skipEyeChannels: true });\n * const bindings = lipsync.bindAll(gltf.scene); // repairs names, maps slots\n *\n * // per render tick:\n * lipsync.tick(getFrameOrNull(), delta, bindings);\n * ```\n */\n\nconst PROFILES: Partial<Record<LipsyncFormat, LipsyncFormatProfile>> = {\n mha: MHA_PROFILE,\n};\n\n/** Resolve a registered format profile; throws a helpful error otherwise. */\nexport function getLipsyncProfile(format: LipsyncFormat): LipsyncFormatProfile {\n const profile = PROFILES[format];\n if (!profile) {\n throw new Error(\n `[lipsync-helpers] no naturalness profile for format \"${format}\" yet — ` +\n `available: ${Object.keys(PROFILES).join(\", \")}. ` +\n `Pass a custom LipsyncFormatProfile to createLipsyncProcessor instead.`,\n );\n }\n return profile;\n}\n\nexport interface LipsyncProcessor {\n profile: LipsyncFormatProfile;\n /**\n * Shape a raw frame (pass null while the bot is silent). Returns the\n * envelope-weighted frame to write this tick, or null once fully\n * settled. The returned array is internal scratch — copy if you keep it.\n */\n process(frame: Float32Array | null, deltaSeconds: number): Float32Array | null;\n /** Resolve one mesh's morph slots (repairs known name mangling in place). */\n bindMesh(mesh: LipsyncMeshBinding[\"mesh\"]): LipsyncMeshBinding | null;\n /** Traverse a scene/root and bind every mesh with matching morphs. */\n bindAll(root: {\n traverse: (cb: (obj: unknown) => void) => void;\n }): LipsyncMeshBinding[];\n /** Write a processed frame onto bindings (no-op for null). */\n apply(out: Float32Array | null, bindings: LipsyncMeshBinding[]): void;\n /** process + apply in one call. */\n tick(\n frame: Float32Array | null,\n deltaSeconds: number,\n bindings: LipsyncMeshBinding[],\n ): void;\n}\n\nexport function createLipsyncProcessor(\n formatOrProfile: LipsyncFormat | LipsyncFormatProfile,\n options: LipsyncProcessorOptions = {},\n): LipsyncProcessor {\n const profile =\n typeof formatOrProfile === \"string\"\n ? getLipsyncProfile(formatOrProfile)\n : formatOrProfile;\n\n const {\n symmetrizeMouth = true,\n applyLimits = true,\n useRecommendedGains = true,\n gainOverrides = {},\n skipEyeChannels = false,\n envelope = {},\n } = options;\n\n const dim = profile.channelNames.length;\n\n // Effective per-channel gains: recommended table (or 1) + overrides.\n const gains = new Float32Array(dim).fill(1);\n if (useRecommendedGains) gains.set(profile.recommendedGains);\n const shortIndex = new Map<string, number>();\n profile.channelNames.forEach((name, i) => {\n shortIndex.set(name, i);\n // also register without common prefixes for override convenience\n shortIndex.set(name.replace(/^CTRL_expressions_/, \"\"), i);\n });\n for (const [name, gain] of Object.entries(gainOverrides)) {\n const i = shortIndex.get(name);\n if (i !== undefined) gains[i] = gain;\n }\n\n const attackTau = envelope === false ? 0 : envelope.attack ?? 0.09;\n const releaseTau = envelope === false ? 0 : envelope.release ?? 0.18;\n\n // Scratch state\n const work = new Float32Array(dim);\n let last: Float32Array | null = null;\n let env = envelope === false ? 1 : 0;\n\n const shape = (src: Float32Array): Float32Array => {\n work.set(src.subarray(0, dim));\n if (symmetrizeMouth) {\n for (const [li, ri] of profile.mouthPairs) {\n const m = (work[li] + work[ri]) / 2;\n work[li] = m;\n work[ri] = m;\n }\n }\n if (applyLimits) {\n for (const [s, t] of profile.limits) {\n if (work[s] > work[t]) work[t] = work[s];\n }\n }\n for (let i = 0; i < dim; i++) work[i] *= gains[i];\n return work;\n };\n\n const process: LipsyncProcessor[\"process\"] = (frame, delta) => {\n if (envelope !== false) {\n const target = frame ? 1 : 0;\n const tau = target > env ? attackTau : releaseTau;\n env += (target - env) * (1 - Math.exp(-delta / Math.max(tau, 1e-4)));\n }\n if (frame && frame.length >= dim) {\n last = shape(frame);\n } else if (!frame && (envelope === false || env < 0.005)) {\n last = null;\n return null;\n }\n if (!last) return null;\n if (envelope !== false && env < 1) {\n // weight the scratch in place (last === work)\n for (let i = 0; i < dim; i++) work[i] = last[i] * env;\n return work;\n }\n return last;\n };\n\n const bindMesh: LipsyncProcessor[\"bindMesh\"] = (mesh) => {\n const dict = mesh.morphTargetDictionary;\n if (!dict || !mesh.morphTargetInfluences) return null;\n // Repair known export name-mangling in place (idempotent).\n for (const key of Object.keys(dict)) {\n const fixed = profile.normalizeMorphName(key);\n if (fixed !== key) {\n dict[fixed] = dict[key];\n delete dict[key];\n }\n }\n const slots = new Int32Array(dim).fill(-1);\n let matched = 0;\n profile.channelNames.forEach((name, i) => {\n const slot = dict[name];\n if (slot !== undefined) {\n slots[i] = slot;\n matched++;\n }\n });\n return matched > 0 ? { mesh, slots, matched } : null;\n };\n\n const bindAll: LipsyncProcessor[\"bindAll\"] = (root) => {\n const bindings: LipsyncMeshBinding[] = [];\n root.traverse((obj) => {\n const m = obj as LipsyncMeshBinding[\"mesh\"] & { isMesh?: boolean };\n if (!m.isMesh) return;\n const b = bindMesh(m);\n if (b) bindings.push(b);\n });\n return bindings;\n };\n\n const apply: LipsyncProcessor[\"apply\"] = (out, bindings) => {\n if (!out) return;\n const eyes = profile.eyeChannelIndices;\n for (const b of bindings) {\n const infl = b.mesh.morphTargetInfluences!;\n for (let i = 0; i < dim; i++) {\n const slot = b.slots[i];\n if (slot < 0) continue;\n if (skipEyeChannels && eyes.has(i)) continue;\n infl[slot] = out[i];\n }\n }\n };\n\n return {\n profile,\n process,\n bindMesh,\n bindAll,\n apply,\n tick(frame, delta, bindings) {\n apply(process(frame, delta), bindings);\n },\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mha.js","sourceRoot":"","sources":["../../../../src/lipsync-helpers/naturalness/profiles/mha.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mha.js","sourceRoot":"","sources":["../../../../src/lipsync-helpers/naturalness/profiles/mha.ts"],"names":[],"mappings":"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","sourcesContent":["import { METAHUMAN_ORDER_251 } from \"../../metahumanOrder251\";\nimport type { LipsyncFormatProfile } from \"../types\";\n\n/**\n * MetaHuman (`mha`, 251-channel) format profile.\n *\n * The limit drivers are the couplings Unreal's MetaHuman rig applies\n * natively and the stream is authored against — most visibly jawOpen must\n * drive the four mouthLipsTogether* channels so the lips stay in contact\n * while the jaw moves. Without them every jaw opening bares the teeth.\n */\n\nconst MHA_INDEX: Record<string, number> = (() => {\n const m: Record<string, number> = {};\n METAHUMAN_ORDER_251.forEach((ctrl, i) => {\n m[ctrl.replace(/^CTRL_expressions_/, \"\")] = i;\n });\n return m;\n})();\n\n/** [source, target] short names — target becomes max(target, source). */\nconst LIMIT_DEFS: readonly (readonly [string, string])[] = [\n [\"eyeBlinkL\", \"eyeLidPressL\"],\n [\"eyeBlinkR\", \"eyeLidPressR\"],\n [\"noseWrinkleL\", \"noseWrinkleUpperL\"],\n [\"noseWrinkleR\", \"noseWrinkleUpperR\"],\n [\"mouthStretchL\", \"mouthStretchLipsCloseL\"],\n [\"mouthStretchR\", \"mouthStretchLipsCloseR\"],\n [\"jawOpen\", \"jawOpenExtreme\"],\n [\"jawOpen\", \"mouthLipsTogetherUL\"],\n [\"jawOpen\", \"mouthLipsTogetherUR\"],\n [\"jawOpen\", \"mouthLipsTogetherDL\"],\n [\"jawOpen\", \"mouthLipsTogetherDR\"],\n];\n\n/** Production-tuned per-channel gains (short name → gain). */\nexport const MHA_RECOMMENDED_GAIN_TABLE: Record<string, number> = {\n // Conversational aperture: 0.6 reads mumbled, raw bares the teeth.\n jawOpen: 0.72,\n jawOpenExtreme: 0.42,\n // Lateral shifts only ever read as a lopsided mouth once L/R pairs are\n // symmetrized.\n jawLeft: 0,\n jawRight: 0,\n mouthLeft: 0,\n mouthRight: 0,\n // Teeth exposure matched to real speech: upper teeth glimpsed on open\n // vowels, lower teeth mostly hidden.\n mouthUpperLipRaiseL: 0.6,\n mouthUpperLipRaiseR: 0.6,\n mouthLowerLipDepressL: 0.45,\n mouthLowerLipDepressR: 0.45,\n // Lips ride close to the teeth through normal speech.\n mouthLipsTogetherUL: 0.8,\n mouthLipsTogetherUR: 0.8,\n mouthLipsTogetherDL: 0.8,\n mouthLipsTogetherDR: 0.8,\n // Rounding on /u/ /w/ is under-driven by the stream. (Do NOT boost\n // cornerPull/stretch — amplified EE spread reads as a grimace.)\n mouthFunnelUL: 1.15,\n mouthFunnelUR: 1.15,\n mouthFunnelDL: 1.15,\n mouthFunnelDR: 1.15,\n mouthLipsPurseUL: 1.15,\n mouthLipsPurseUR: 1.15,\n mouthLipsPurseDL: 1.15,\n mouthLipsPurseDR: 1.15,\n};\n\nconst EYE_CHANNEL_NAMES = [\n \"eyeBlinkL\", \"eyeBlinkR\",\n \"eyeLookUpL\", \"eyeLookUpR\", \"eyeLookDownL\", \"eyeLookDownR\",\n \"eyeLookLeftL\", \"eyeLookLeftR\", \"eyeLookRightL\", \"eyeLookRightR\",\n \"eyeRelaxL\", \"eyeRelaxR\", \"eyeLowerLidUpL\", \"eyeLowerLidUpR\",\n];\n\nexport const MHA_PROFILE: LipsyncFormatProfile = {\n format: \"mha\",\n channelNames: METAHUMAN_ORDER_251,\n\n limits: LIMIT_DEFS.flatMap(([s, t]) =>\n MHA_INDEX[s] !== undefined && MHA_INDEX[t] !== undefined\n ? [[MHA_INDEX[s], MHA_INDEX[t]] as const]\n : [],\n ),\n\n recommendedGains: (() => {\n const g = new Float32Array(METAHUMAN_ORDER_251.length).fill(1);\n for (const [name, gain] of Object.entries(MHA_RECOMMENDED_GAIN_TABLE)) {\n const i = MHA_INDEX[name];\n if (i !== undefined) g[i] = gain;\n }\n return g;\n })(),\n\n eyeChannelIndices: new Set(\n EYE_CHANNEL_NAMES.flatMap((n) =>\n MHA_INDEX[n] !== undefined ? [MHA_INDEX[n]] : [],\n ),\n ),\n\n mouthPairs: (() => {\n const pairs: Array<[number, number]> = [];\n METAHUMAN_ORDER_251.forEach((name, li) => {\n if (!/^CTRL_expressions_(mouth|jaw)/.test(name) || !/L$/.test(name))\n return;\n const ri = METAHUMAN_ORDER_251.indexOf(name.replace(/L$/, \"R\"));\n if (ri >= 0) pairs.push([li, ri]);\n });\n return pairs;\n })(),\n\n // Some exports drop the underscore after the prefix\n // (CTRL_expressionsjawOpen) — repair so name lookups work.\n normalizeMorphName: (name) =>\n name.replace(/^CTRL_expressions(?!_)/, \"CTRL_expressions_\"),\n};\n\n/** Short channel name → MHA-251 frame index (e.g. \"jawOpen\" → 62). */\nexport function mhaChannelIndex(shortName: string): number | undefined {\n return MHA_INDEX[shortName];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lipsync-helpers/naturalness/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lipsync-helpers/naturalness/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG","sourcesContent":["/**\n * Format-agnostic lipsync naturalness pipeline — shared types.\n *\n * A {@link LipsyncFormatProfile} describes everything format-specific\n * (channel names, rig couplings, tuned gains, eye channels, L/R pairs);\n * the processor in `processor.ts` consumes any profile. Adding a new\n * stream format (`arkit`, `visemes`, `cc4_extended`) means writing one\n * profile file — no processor changes.\n */\n\nexport type LipsyncFormat =\n | \"mha\"\n | \"arkit\"\n | \"visemes\"\n | \"cc4_extended\"\n | \"cc5_hd\";\n\nexport interface LipsyncFormatProfile {\n format: LipsyncFormat;\n /** Frame index → channel/morph name. Length = the stream's frame dim. */\n channelNames: readonly string[];\n /**\n * Rig couplings applied as target = max(target, source) — the\n * \"in-between\" drivers the stream is authored against (e.g. MetaHuman's\n * jawOpen → mouthLipsTogether*). Empty for formats without them.\n */\n limits: ReadonlyArray<readonly [sourceIdx: number, targetIdx: number]>;\n /** Per-channel production-tuned gains (length = frame dim, default 1). */\n recommendedGains: Float32Array;\n /** Channel indices owned by procedural blink/gaze systems. */\n eyeChannelIndices: ReadonlySet<number>;\n /** Sided L/R channel index pairs for mouth symmetrization. */\n mouthPairs: ReadonlyArray<readonly [number, number]>;\n /**\n * Repairs known export name-mangling for this format (e.g. MetaHuman\n * exports missing the underscore: CTRL_expressionsjawOpen). Identity\n * when a name is already correct.\n */\n normalizeMorphName: (name: string) => string;\n}\n\nexport interface LipsyncEnvelopeOptions {\n /** Bloom-in time constant in seconds (speech start). Default 0.09. */\n attack?: number;\n /** Settle-out time constant in seconds (speech end). Default 0.18. */\n release?: number;\n}\n\nexport interface LipsyncProcessorOptions {\n /** Average sided L/R mouth pairs (streams drive sides unevenly). Default true. */\n symmetrizeMouth?: boolean;\n /** Apply the profile's rig couplings. Default true — required for `mha`. */\n applyLimits?: boolean;\n /** Start from the profile's production gain table. Default true. */\n useRecommendedGains?: boolean;\n /** Per-channel gain overrides by SHORT channel name (profile naming). */\n gainOverrides?: Record<string, number>;\n /**\n * Leave the eye channels untouched — enable when you run a procedural\n * blink/gaze system (two writers race into flicker). Default false.\n */\n skipEyeChannels?: boolean;\n /** Bloom/settle envelope; pass `false` to disable. Default on. */\n envelope?: LipsyncEnvelopeOptions | false;\n}\n\n/** A mesh whose morph slots have been resolved against a profile. */\nexport interface LipsyncMeshBinding {\n mesh: {\n morphTargetDictionary?: Record<string, number>;\n morphTargetInfluences?: number[] | Float32Array;\n };\n /** slots[frameIndex] = morphTargetInfluences index, or -1. */\n slots: Int32Array;\n /** Number of matched channels. */\n matched: number;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"presetMappers.js","sourceRoot":"","sources":["../../src/lipsync-helpers/presetMappers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAqB,CAAC,KAAK,EAAE,EAAE;IAChE,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAqB,CAAC,KAAK,EAAE,EAAE;IACpE,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAqB,CAAC,KAAK,EAAE,EAAE;IACxD,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC,CAAC"}
1
+ {"version":3,"file":"presetMappers.js","sourceRoot":"","sources":["../../src/lipsync-helpers/presetMappers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAqB,CAAC,KAAK,EAAE,EAAE;IAChE,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAqB,CAAC,KAAK,EAAE,EAAE;IACpE,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAqB,CAAC,KAAK,EAAE,EAAE;IACxD,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC,CAAC","sourcesContent":["/**\n * Preset Blendshape Mappers\n * \n * Simple passthrough mappers for ARKit and MetaHuman formats\n */\n\nimport { BlendshapeMapper } from './mappingTypes';\n\n/**\n * ARKit Passthrough Mapper\n * Input: 61-element ARKit array from server\n * Output: Same 61-element array (no transformation)\n */\nexport const arkitPassthroughMapper: BlendshapeMapper = (input) => {\n if (input instanceof Float32Array) {\n return input;\n }\n return new Float32Array(input);\n};\n\n/**\n * MetaHuman Passthrough Mapper\n * Input: 251-element MetaHuman array from server\n * Output: Same 251-element array (no transformation)\n */\nexport const metahumanPassthroughMapper: BlendshapeMapper = (input) => {\n if (input instanceof Float32Array) {\n return input;\n }\n return new Float32Array(input);\n};\n\n/**\n * Identity Mapper\n * Returns input as-is (converts to Float32Array if needed)\n */\nexport const identityMapper: BlendshapeMapper = (input) => {\n if (input instanceof Float32Array) {\n return input;\n }\n return new Float32Array(input);\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ConvaiWidget.js","sourceRoot":"","sources":["../../../src/react/components/ConvaiWidget.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConvaiWidget.js","sourceRoot":"","sources":["../../../src/react/components/ConvaiWidget.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useState, useRef, useEffect } from \"react\";\nimport { motion, AnimatePresence } from \"framer-motion\";\nimport { FiMoreVertical, FiMic, FiSend, FiPhoneOff } from \"react-icons/fi\";\nimport { IoVolumeMute, IoVolumeHigh } from \"react-icons/io5\";\nimport { PiWaveform } from \"react-icons/pi\";\nimport type { IConvaiClient } from \"../../core/types\";\nimport { RoomContext } from \"@livekit/components-react\";\nimport { useCharacterInfo } from \"../hooks/useCharacterInfo\";\nimport { AudioRenderer } from \"../../vanilla/AudioRenderer\";\n\n// Import styled components and theme from rtc-widget\nimport {\n ConvaiContainer,\n MorphingContainer,\n ButtonContent,\n Logo,\n ChatContent,\n Header,\n Title,\n CloseButton,\n SettingsButton,\n Content,\n Footer,\n InputContainer,\n Input,\n ActionButton,\n aeroTheme,\n iosTransitions,\n ConvaiLogo,\n ChevronDown,\n} from \"./rtc-widget\";\n\n// Import message components\nimport {\n MessageList,\n SettingsTray,\n VoiceModeOverlay,\n RTCChatMessage,\n FloatingVideo,\n} from \"./rtc-widget\";\n\ninterface Character {\n id: string;\n name?: string;\n image?: string;\n}\n\ninterface ConvaiWidgetProps {\n /** Convai client instance (required) */\n convaiClient: IConvaiClient & { \n activity?: string;\n isAudioMuted: boolean;\n isVideoEnabled: boolean;\n isScreenShareActive: boolean;\n };\n /**\n * Show video toggle button in settings (default: true).\n * Only works if connection type is \"video\". If false, hides the video button.\n */\n showVideo?: boolean;\n /**\n * Show screen share toggle button in settings (default: true).\n * Only works if connection type is \"video\". If false, hides the screen share button.\n */\n showScreenShare?: boolean;\n /**\n * Start in voice mode by default when widget opens (default: true).\n * When true, the widget will open directly in voice mode with microphone enabled.\n */\n defaultVoiceMode?: boolean;\n}\n\n/**\n * ConvaiWidget - A consolidated chat widget component for real-time conversations\n *\n * This component provides a complete UI for interacting with Convai characters.\n * Connection configuration should be handled via useConvaiClient.connect().\n *\n * Features:\n * - Collapsed circular button with status indicator\n * - Expandable/collapsible chat interface\n * - Voice mode support\n * - Real-time message streaming\n * - Audio controls (mute/unmute)\n * - Settings tray with session reset\n * - Optional video and screen share (when connection type supports it)\n *\n * @param {ConvaiWidgetProps} props - Component props\n * @param {ConvaiClient} props.convaiClient - Convai client instance (required)\n * @param {boolean} props.showVideo - Show video toggle in settings (default: true)\n * @param {boolean} props.showScreenShare - Show screen share toggle in settings (default: true)\n * @param {boolean} props.defaultVoiceMode - Start in voice mode when widget opens (default: true)\n *\n * @example\n * ```tsx\n * function App() {\n * const convaiClient = useConvaiClient({\n * apiKey: 'your-api-key',\n * characterId: 'your-character-id',\n * enableVideo: true,\n * });\n *\n * return (\n * <ConvaiWidget\n * convaiClient={convaiClient}\n * showVideo={true}\n * showScreenShare={true}\n * />\n * );\n * }\n * ```\n */\nexport const ConvaiWidget: React.FC<ConvaiWidgetProps> = ({\n convaiClient,\n showVideo = true,\n showScreenShare = true,\n defaultVoiceMode = true,\n}) => {\n // Fetch character information dynamically from client's stored values\n const {\n name: characterName,\n image: characterImage,\n isLoading: isCharacterLoading,\n } = useCharacterInfo(\n convaiClient.characterId || undefined,\n convaiClient.apiKey || undefined,\n convaiClient.authToken || undefined,\n );\n\n // UI State\n const [isOpen, setIsOpen] = useState(false);\n const [inputValue, setInputValue] = useState(\"\");\n const [isSettingsOpen, setIsSettingsOpen] = useState(false);\n const [isVoiceMode, setIsVoiceMode] = useState(defaultVoiceMode);\n const [isMuted, setIsMuted] = useState(false); // Character audio starts unmuted\n const [isVideoVisible, setIsVideoVisible] = useState(false);\n const [hasEnteredDefaultVoiceMode, setHasEnteredDefaultVoiceMode] = useState(false);\n\n const settingsButtonRef = useRef<HTMLButtonElement>(null);\n /** True after we have connected at least once; used to call reconnect() instead of connect() when opening after disconnect */\n const hasConnectedBeforeRef = useRef(false);\n\n // Character info from API (using client's stored values)\n const selectedCharacter = {\n id: convaiClient.characterId || \"unknown\",\n name: characterName,\n image: characterImage,\n };\n\n // Get bot status color for character image border\n const getBotStatusColor = () => {\n if (!convaiClient.state.isConnected) {\n return { color: \"#ef4444\", label: \"Disconnected\" }; // Red\n }\n if (convaiClient.state.isConnecting || !convaiClient.isBotReady) {\n return { color: \"#f59e0b\", label: \"Connecting\" }; // Yellow/Orange\n }\n if (convaiClient.state.isListening) {\n return { color: \"#3b82f6\", label: \"Listening\" }; // Blue - user speaking\n }\n return { color: \"#10b981\", label: \"Connected\" }; // Green\n };\n\n // Format chat messages for UI\n const formatMessages = (): RTCChatMessage[] => {\n // Filter to only show relevant message types and exclude empty messages\n const filteredMessages = convaiClient.chatMessages.filter(\n (msg) =>\n (msg.type === \"user-transcription\" ||\n msg.type === \"user-llm-text\" ||\n msg.type === \"bot-llm-text\" ||\n msg.type === \"bot-output\" ||\n msg.type === \"bot-emotion\") &&\n msg.content && // Ensure content exists\n msg.content.trim().length > 0, // Ensure content is not empty or just whitespace\n );\n\n return filteredMessages.map((msg) => ({\n id: msg.id,\n text: msg.content,\n isUser: msg.type.includes(\"user\"),\n timestamp: new Date(msg.timestamp).toLocaleTimeString([], {\n hour: \"2-digit\",\n minute: \"2-digit\",\n }),\n sender: msg.type.includes(\"user\") ? \"You\" : selectedCharacter.name,\n showLogo: msg.type.includes(\"bot\"),\n }));\n };\n\n // Event Handlers\n const handleToggle = async () => {\n // Connect on first click if not already connected/connecting\n if (!convaiClient.state.isConnected && !convaiClient.state.isConnecting) {\n try {\n // Use reconnect when opening again after a disconnect (reuses stored config)\n if (hasConnectedBeforeRef.current && typeof convaiClient.reconnect === \"function\") {\n await convaiClient.reconnect();\n } else {\n await convaiClient.connect();\n }\n setIsOpen(true); // Open widget after successful connection\n } catch (error) {\n console.error(\"Failed to connect:\", error);\n }\n } else {\n // Just toggle open/close if already connected\n setIsOpen(!isOpen);\n }\n };\n const handleClose = () => {\n setIsOpen(false);\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.target.value);\n };\n\n const handleSend = () => {\n if (inputValue.trim() && convaiClient.state.isConnected) {\n convaiClient.sendUserTextMessage(inputValue);\n setInputValue(\"\");\n }\n };\n\n const handleKeyPress = (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\") {\n handleSend();\n }\n };\n\n\n const handleToggleMute = () => {\n const newMutedState = !isMuted;\n\n if (convaiClient.room?.state === \"connected\") {\n // LiveKit: mute/unmute remote participant audio tracks\n const remoteParticipants = Array.from(\n convaiClient.room.remoteParticipants.values(),\n );\n remoteParticipants.forEach((participant: any) => {\n participant.audioTrackPublications.forEach((publication: any) => {\n if (publication.track) {\n publication.track.setMuted(newMutedState);\n }\n });\n });\n } else {\n // WebSocket: mute/unmute the hidden <audio> element added by useConvaiClient\n const wsAudioEls = document.querySelectorAll<HTMLAudioElement>(\"audio[data-convai-ws]\");\n wsAudioEls.forEach((el) => { el.muted = newMutedState; });\n }\n\n setIsMuted(newMutedState);\n };\n\n const handleReset = async () => {\n setIsSettingsOpen(false);\n\n try {\n // Disconnect current session\n await convaiClient.disconnect();\n\n // Reset session ID so next connection creates a new session\n convaiClient.resetSession();\n\n // Reset UI states immediately\n setIsMuted(false);\n setIsVoiceMode(false);\n\n // Note: User is responsible for reconnecting after reset\n // They should call convaiClient.connect() themselves\n } catch (error) {\n console.error(\"Failed to reset:\", error);\n }\n };\n\n const handleDisconnect = async () => {\n setIsSettingsOpen(false);\n await convaiClient.disconnect();\n\n // Reset UI states immediately\n setIsMuted(false);\n setIsVoiceMode(false);\n };\n\n const handleToggleVideo = async () => {\n // Only toggle if connection type is video\n if (convaiClient.connectionType !== \"video\") {\n console.warn(\"Video capability requires connection type to be 'video'\");\n return;\n }\n\n if (convaiClient.isVideoEnabled) {\n await convaiClient.videoControls.disableVideo();\n } else {\n await convaiClient.videoControls.enableVideo();\n }\n };\n\n const handleToggleScreenShare = async () => {\n await convaiClient.screenShareControls.toggleScreenShare();\n };\n\n const handleSettingsToggle = () => {\n setIsSettingsOpen(!isSettingsOpen);\n };\n\n // Remember that we have connected at least once (so we use reconnect() next time after disconnect)\n useEffect(() => {\n if (convaiClient.state.isConnected) {\n hasConnectedBeforeRef.current = true;\n }\n }, [convaiClient.state.isConnected]);\n\n // Auto-collapse when disconnected\n useEffect(() => {\n if (!convaiClient.state.isConnected && !convaiClient.state.isConnecting) {\n if (isOpen) {\n setIsOpen(false);\n }\n // Reset UI states on disconnect\n setIsMuted(false); // Reset character mute\n setIsVoiceMode(false); // Reset voice mode\n setHasEnteredDefaultVoiceMode(false); // Reset flag so voice mode can be entered again on reconnect\n }\n }, [convaiClient.state.isConnected, convaiClient.state.isConnecting, isOpen]);\n\n // Sync video visibility with video controls state\n useEffect(() => {\n setIsVideoVisible(convaiClient.isVideoEnabled);\n }, [convaiClient.isVideoEnabled]);\n\n // Ensure microphone is muted when not in voice mode\n useEffect(() => {\n const ensureMicState = async () => {\n if (!isVoiceMode && !convaiClient.isAudioMuted) {\n // Mute microphone when in text mode\n await convaiClient.audioControls.muteAudio();\n }\n };\n ensureMicState();\n }, [isVoiceMode, convaiClient]);\n\n // Handle default voice mode when widget opens (only once)\n useEffect(() => {\n if (\n isOpen &&\n defaultVoiceMode &&\n convaiClient.state.isConnected &&\n !hasEnteredDefaultVoiceMode &&\n !isVoiceMode\n ) {\n const enterVoiceMode = async () => {\n try {\n await convaiClient.audioControls.unmuteAudio();\n setIsVoiceMode(true);\n setHasEnteredDefaultVoiceMode(true);\n } catch (error) {\n console.error(\"Failed to enter voice mode:\", error);\n }\n };\n enterVoiceMode();\n }\n }, [isOpen, defaultVoiceMode, convaiClient.state.isConnected, hasEnteredDefaultVoiceMode, isVoiceMode, convaiClient]);\n\n // Close settings when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (isSettingsOpen && settingsButtonRef.current) {\n const target = event.target as Node;\n const settingsButton = settingsButtonRef.current;\n if (!settingsButton.contains(target)) {\n const settingsTray = document.querySelector(\"[data-settings-tray]\");\n if (settingsTray && !settingsTray.contains(target)) {\n setIsSettingsOpen(false);\n }\n }\n }\n };\n\n if (isSettingsOpen) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [isSettingsOpen]);\n\n // Determine logo state and color\n const getLogoState = (): \"idle\" | \"connecting\" | \"connected\" => {\n if (convaiClient.state.isConnecting) return \"connecting\";\n if (convaiClient.state.isConnected) return \"connected\";\n return \"idle\";\n };\n\n const getLogoColor = () => {\n if (convaiClient.state.isConnected) return aeroTheme.colors.primary[500]; // Green when connected\n if (convaiClient.state.isConnecting) return aeroTheme.colors.primary[300]; // Lighter green when connecting\n return aeroTheme.colors.primary[500]; // Default green\n };\n\n // Audio renderer for LiveKit direct audio playback (not used in WebSocket mode)\n const audioRendererRef = useRef<AudioRenderer | null>(null);\n\n useEffect(() => {\n if (!convaiClient.room || convaiClient.room.state !== \"connected\") return;\n\n audioRendererRef.current = new AudioRenderer(convaiClient.room);\n\n return () => {\n if (audioRendererRef.current) {\n audioRendererRef.current.destroy();\n audioRendererRef.current = null;\n }\n };\n }, [convaiClient.room, convaiClient.state.isConnected]);\n\n return (\n <RoomContext.Provider value={convaiClient.room?.state === \"connected\" ? convaiClient.room : undefined}>\n\n {/* Convai Widget Chat UI - Always visible */}\n <ConvaiContainer\n initial={{ opacity: 0, scale: 0.8 }}\n animate={{ opacity: 1, scale: 1 }}\n transition={{ duration: 0.4, ease: \"easeOut\" }}\n >\n <MorphingContainer\n onClick={!isOpen ? handleToggle : undefined}\n whileHover={!isOpen ? { scale: 1.05 } : undefined}\n whileTap={!isOpen ? { scale: 0.95 } : undefined}\n animate={{\n width: isOpen ? \"400px\" : \"4rem\",\n height: isOpen ? \"600px\" : \"4rem\",\n borderRadius: isOpen ? aeroTheme.borderRadius.xl : \"50%\",\n }}\n transition={{ duration: 0.3, ease: \"easeInOut\" }}\n style={{ cursor: !isOpen ? \"pointer\" : \"default\" }}\n >\n {/* Button Content - fades out when chat opens */}\n <ButtonContent\n animate={{\n opacity: isOpen ? 0 : 1,\n scale: isOpen ? 0.8 : 1,\n }}\n transition={{ duration: 0.3 }}\n >\n <Logo>\n <ConvaiLogo\n size=\"xl\"\n color={getLogoColor()}\n animate={convaiClient.state.isConnecting}\n state={getLogoState()}\n />\n </Logo>\n </ButtonContent>\n\n {/* Chat Content - fades in when chat opens (only show if connected) */}\n {convaiClient.state.isConnected && (\n <ChatContent\n animate={{\n opacity: isOpen ? 1 : 0,\n scale: isOpen ? 1 : 0.8,\n }}\n transition={{\n duration: 0.2,\n delay: isOpen ? 0.2 : 0,\n }}\n style={{\n pointerEvents: isOpen ? \"auto\" : \"none\",\n }}\n >\n {/* Header */}\n <Header\n initial={{ opacity: 0, y: -20 }}\n animate={{\n opacity: isOpen ? 1 : 0,\n y: isOpen ? 0 : -20,\n }}\n transition={{\n delay: isOpen ? 0.4 : 0,\n ...iosTransitions.modalSlide,\n }}\n style={{ \n pointerEvents: isOpen ? \"auto\" : \"none\",\n minHeight: \"3.5rem\", // Ensure consistent height\n }}\n >\n <CloseButton\n onClick={handleClose}\n whileHover={{ scale: 1.1 }}\n whileTap={{ scale: 0.9 }}\n transition={iosTransitions.snappy}\n style={{ cursor: \"pointer\", pointerEvents: \"auto\" }}\n >\n <ChevronDown size=\"md\" />\n </CloseButton>\n\n <Title>\n {selectedCharacter.image && !isVoiceMode && (\n <motion.img\n key=\"header-avatar\" // Use key instead of layoutId for independent animation\n src={selectedCharacter.image}\n alt={selectedCharacter.name}\n initial={{ scale: 0.8, opacity: 0 }}\n animate={{ scale: 1, opacity: 1 }}\n exit={{ scale: 0.8, opacity: 0 }}\n transition={iosTransitions.fadePop}\n style={{\n width: \"1.5rem\",\n height: \"1.5rem\",\n borderRadius: \"50%\",\n objectFit: \"cover\",\n marginRight: \"0.5rem\",\n border: `1.5px solid ${getBotStatusColor().color}`,\n boxShadow: `0 0 6px ${getBotStatusColor().color}40`,\n transition: \"all 0.3s ease\",\n }}\n />\n )}\n {selectedCharacter.name}\n <motion.button\n onClick={handleToggleMute}\n whileHover={{ scale: 1.1 }}\n whileTap={{ scale: 0.9 }}\n transition={iosTransitions.snappy}\n style={{\n cursor: \"pointer\",\n pointerEvents: \"auto\",\n background: \"transparent\",\n border: \"none\",\n boxShadow: \"none\",\n width: \"auto\",\n height: \"auto\",\n padding: \"0\",\n display: \"inline-flex\",\n alignItems: \"center\",\n marginLeft: \"0.5rem\",\n outline: \"none\",\n }}\n aria-label={isMuted ? \"Unmute\" : \"Mute\"}\n title={isMuted ? \"Unmute\" : \"Mute\"}\n >\n {isMuted ? (\n <IoVolumeMute size={16} color=\"#919EABA6\" />\n ) : (\n <IoVolumeHigh size={16} color=\"#0E7360\" />\n )}\n </motion.button>\n {isVoiceMode && (\n <span\n style={{\n fontSize: \"10px\",\n color: aeroTheme.colors.convai.light,\n fontWeight: 500,\n marginLeft: \"8px\",\n padding: \"2px 6px\",\n borderRadius: \"4px\",\n backgroundColor: aeroTheme.colors.convai.light + \"20\",\n }}\n >\n VOICE\n </span>\n )}\n {convaiClient.state.isSpeaking && (\n <motion.span\n initial={{ scale: 0.8, opacity: 0 }}\n animate={{ scale: 1, opacity: 1 }}\n exit={{ scale: 0.8, opacity: 0 }}\n transition={{ duration: 0.2 }}\n style={{\n fontSize: \"10px\",\n color: \"#10b981\",\n fontWeight: 600,\n marginLeft: \"8px\",\n padding: \"3px 8px\",\n borderRadius: \"6px\",\n backgroundColor: \"#10b98120\",\n border: \"1px solid #10b98140\",\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"4px\",\n }}\n >\n <motion.span\n animate={{\n scale: [1, 1.2, 1],\n opacity: [1, 0.7, 1],\n }}\n transition={{\n duration: 1.5,\n repeat: Infinity,\n ease: \"easeInOut\",\n }}\n style={{\n width: \"6px\",\n height: \"6px\",\n borderRadius: \"50%\",\n backgroundColor: \"#10b981\",\n display: \"inline-block\",\n }}\n />\n SPEAKING\n </motion.span>\n )}\n {convaiClient.state.isListening && !convaiClient.state.isSpeaking && (\n <motion.span\n initial={{ scale: 0.8, opacity: 0 }}\n animate={{ scale: 1, opacity: 1 }}\n exit={{ scale: 0.8, opacity: 0 }}\n transition={{ duration: 0.2 }}\n style={{\n fontSize: \"10px\",\n color: \"#3b82f6\",\n fontWeight: 600,\n marginLeft: \"8px\",\n padding: \"3px 8px\",\n borderRadius: \"6px\",\n backgroundColor: \"#3b82f620\",\n border: \"1px solid #3b82f640\",\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"4px\",\n }}\n >\n <motion.span\n animate={{\n scale: [1, 1.2, 1],\n opacity: [1, 0.7, 1],\n }}\n transition={{\n duration: 1.5,\n repeat: Infinity,\n ease: \"easeInOut\",\n }}\n style={{\n width: \"6px\",\n height: \"6px\",\n borderRadius: \"50%\",\n backgroundColor: \"#3b82f6\",\n display: \"inline-block\",\n }}\n />\n LISTENING\n </motion.span>\n )}\n </Title>\n\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n position: \"relative\",\n }}\n >\n <SettingsButton\n ref={settingsButtonRef}\n onClick={handleSettingsToggle}\n whileHover={{ scale: 1.1 }}\n whileTap={{ scale: 0.9 }}\n transition={iosTransitions.snappy}\n style={{ cursor: \"pointer\" }}\n >\n <FiMoreVertical size={20} />\n </SettingsButton>\n </div>\n </Header>\n\n {/* Content Area */}\n <Content\n style={{\n background: isVoiceMode\n ? \"rgba(255, 255, 255, 0.98)\"\n : \"transparent\",\n filter: isSettingsOpen ? \"blur(3px)\" : \"none\",\n position: \"relative\",\n }}\n >\n {/* Connecting Overlay - shown until bot is ready */}\n <AnimatePresence>\n {convaiClient.state.isConnected && !convaiClient.isBotReady && (\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.3 }}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: \"rgba(255, 255, 255, 0.95)\",\n zIndex: 100,\n gap: \"1rem\",\n }}\n >\n <motion.div\n animate={{\n rotate: 360,\n }}\n transition={{\n duration: 2,\n repeat: Infinity,\n ease: \"linear\",\n }}\n >\n <ConvaiLogo\n size=\"xl\"\n color={aeroTheme.colors.convai.light}\n state=\"connecting\"\n />\n </motion.div>\n <motion.div\n animate={{\n opacity: [0.5, 1, 0.5],\n }}\n transition={{\n duration: 2,\n repeat: Infinity,\n ease: \"easeInOut\",\n }}\n style={{\n fontSize: \"14px\",\n fontWeight: 500,\n color: aeroTheme.colors.text.secondary,\n }}\n >\n Connecting to {selectedCharacter.name}...\n </motion.div>\n </motion.div>\n )}\n </AnimatePresence>\n\n {isVoiceMode && (\n <VoiceModeOverlay\n isActive={!convaiClient.isAudioMuted}\n isTalking={convaiClient.state.isSpeaking}\n isListening={convaiClient.state.isListening}\n convaiClient={null}\n characterImage={characterImage || undefined}\n characterName={characterName || undefined}\n room={convaiClient.room?.state === \"connected\" ? convaiClient.room : null}\n />\n )}\n {!isVoiceMode && (\n <MessageList\n messages={formatMessages()}\n isStreaming={convaiClient.state.isSpeaking}\n forceToBottomToken={`${isOpen}-${convaiClient.chatMessages.length}`}\n />\n )}\n </Content>\n\n {/* Footer */}\n <Footer\n initial={{ y: 20, opacity: 0 }}\n animate={{ y: 0, opacity: 1 }}\n transition={{\n delay: 0.7,\n ...iosTransitions.modalSlide,\n }}\n style={{\n filter: isSettingsOpen ? \"blur(3px)\" : \"none\",\n transition: \"filter 0.2s ease\",\n display: \"flex\",\n gap: \"0.5rem\",\n alignItems: \"center\",\n position: \"relative\",\n justifyContent: isVoiceMode ? \"center\" : \"flex-start\",\n minHeight: \"3.5rem\", // Ensure consistent height\n }}\n >\n {/* In Voice Mode: Show only centered exit button */}\n {isVoiceMode ? (\n <motion.button\n key=\"voice-mode-exit\"\n initial={{ scale: 0.8, opacity: 0 }}\n animate={{ scale: 1, opacity: 1 }}\n exit={{ scale: 0.8, opacity: 0 }}\n transition={{\n duration: 0.3,\n ease: \"easeOut\",\n }}\n onClick={async () => {\n convaiClient.sendInterruptMessage();\n await convaiClient.audioControls.muteAudio();\n // WebSocket: tell server to stop processing audio so the\n // character doesn't prompt \"tap microphone to talk\" on silence.\n if (convaiClient.room?.state !== \"connected\") {\n convaiClient.toggleStt(false);\n }\n setIsVoiceMode(false);\n }}\n whileHover={{ scale: 1.1 }}\n whileTap={{ scale: 0.9 }}\n style={{\n cursor: \"pointer\",\n backgroundColor: \"#ef4444\",\n color: \"#ffffff\",\n border: \"none\",\n borderRadius: \"50%\",\n width: \"2.25rem\",\n height: \"2.25rem\",\n minWidth: \"2.25rem\",\n minHeight: \"2.25rem\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n padding: 0,\n outline: \"none\",\n }}\n aria-label=\"Exit Voice Mode\"\n title=\"Exit voice mode\"\n >\n <FiPhoneOff size={20} />\n </motion.button>\n ) : (\n <>\n {/* Input Container */}\n <InputContainer style={{ flex: 1, position: \"relative\" }}>\n {/* Input field */}\n <Input\n type=\"text\"\n placeholder=\"Conversation\"\n value={inputValue}\n onChange={handleInputChange}\n onKeyPress={handleKeyPress}\n style={{ paddingRight: \"2.75rem\" }}\n />\n\n {/* Send/Voice Mode button */}\n <div\n style={{\n position: \"absolute\",\n right: \"0.375rem\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n width: \"2.25rem\",\n height: \"2.25rem\",\n minWidth: \"2.25rem\",\n minHeight: \"2.25rem\",\n flexShrink: 0,\n overflow: \"visible\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n zIndex: 2,\n }}\n >\n <AnimatePresence mode=\"wait\">\n {inputValue.length > 0 ? (\n <ActionButton\n key=\"send\"\n initial={{ y: \"100%\" }}\n animate={{ y: \"0%\" }}\n exit={{ y: \"-100%\" }}\n transition={{\n duration: 0.1,\n ease: \"linear\",\n }}\n onClick={handleSend}\n whileTap={{ scale: 0.9 }}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n cursor: \"pointer\",\n }}\n >\n <FiSend size={20} />\n </ActionButton>\n ) : (\n <motion.button\n key=\"voice\"\n initial={{ y: \"100%\" }}\n animate={{ y: \"0%\" }}\n exit={{ y: \"-100%\" }}\n transition={{\n duration: 0.1,\n ease: \"linear\",\n }}\n onClick={async () => {\n convaiClient.sendInterruptMessage();\n // WebSocket: re-enable server STT before unmuting.\n if (convaiClient.room?.state !== \"connected\") {\n convaiClient.toggleStt(true);\n }\n await convaiClient.audioControls.unmuteAudio();\n setIsVoiceMode(true);\n }}\n whileHover={{ scale: 1.1 }}\n whileTap={{ scale: 0.9 }}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n cursor: \"pointer\",\n backgroundColor: \"transparent\",\n color: aeroTheme.colors.text.primary,\n border: `1px solid ${aeroTheme.colors.neutral[300]}`,\n borderRadius: \"50%\",\n width: \"2.25rem\",\n height: \"2.25rem\",\n minWidth: \"2.25rem\",\n minHeight: \"2.25rem\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n padding: 0,\n outline: \"none\",\n }}\n aria-label=\"Enter Voice Mode\"\n title=\"Use voice mode\"\n >\n <PiWaveform size={20} />\n </motion.button>\n )}\n </AnimatePresence>\n </div>\n </InputContainer>\n </>\n )}\n </Footer>\n </ChatContent>\n )}\n </MorphingContainer>\n\n {/* Settings Tray - only show when connected */}\n {convaiClient.state.isConnected && (\n <SettingsTray\n isOpen={isSettingsOpen}\n onReset={handleReset}\n onDisconnect={handleDisconnect}\n onToggleVideo={\n convaiClient.connectionType === \"video\" && showVideo\n ? handleToggleVideo\n : undefined\n }\n isVideoVisible={isVideoVisible}\n onToggleScreenShare={\n convaiClient.connectionType === \"video\" && showScreenShare\n ? handleToggleScreenShare\n : undefined\n }\n isScreenShareActive={\n convaiClient.isScreenShareActive\n }\n />\n )}\n </ConvaiContainer>\n\n {/* Floating Video - only rendered in LiveKit mode (requires RoomContext) */}\n {convaiClient.room?.state === \"connected\" && (\n <FloatingVideo\n isVisible={isVideoVisible}\n onClose={async () => {\n await convaiClient.videoControls.disableVideo();\n }}\n mirror={true}\n />\n )}\n </RoomContext.Provider>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/components/index.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/components/index.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC","sourcesContent":["// Main widget component\nexport { ConvaiWidget } from './ConvaiWidget';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AudioSettingsPanel.js","sourceRoot":"","sources":["../../../../../src/react/components/rtc-widget/components/AudioSettingsPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AudioSettingsPanel.js","sourceRoot":"","sources":["../../../../../src/react/components/rtc-widget/components/AudioSettingsPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState } from \"react\";\nimport styled from \"styled-components\";\nimport { AudioSettings } from \"../../../../core/types\";\n\ninterface AudioSettingsPanelProps {\n currentSettings: AudioSettings;\n onUpdateSettings: (settings: Partial<AudioSettings>) => Promise<void>;\n isConnected: boolean;\n}\n\nconst Panel = styled.div<{ isOpen: boolean }>`\n position: absolute;\n bottom: 100%;\n right: 0;\n margin-bottom: 12px;\n width: 360px;\n background: rgba(15, 23, 42, 0.98);\n border: 1px solid rgba(148, 163, 184, 0.2);\n border-radius: 16px;\n padding: 24px;\n box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3),\n 0 10px 10px -5px rgba(0, 0, 0, 0.2);\n backdrop-filter: blur(10px);\n opacity: ${(props) => (props.isOpen ? 1 : 0)};\n pointer-events: ${(props) => (props.isOpen ? \"all\" : \"none\")};\n transform: ${(props) =>\n props.isOpen ? \"translateY(0)\" : \"translateY(10px)\"};\n transition: all 0.2s ease-out;\n z-index: 1000;\n\n @media (max-width: 640px) {\n width: calc(100vw - 32px);\n right: 16px;\n }\n`;\n\nconst Title = styled.div`\n font-size: 18px;\n font-weight: 600;\n color: #f1f5f9;\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n`;\n\nconst Subtitle = styled.div`\n font-size: 13px;\n color: #94a3b8;\n margin-bottom: 20px;\n line-height: 1.5;\n`;\n\nconst SettingGroup = styled.div`\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n`;\n\nconst SettingLabel = styled.label`\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 14px;\n color: #e2e8f0;\n margin-bottom: 8px;\n cursor: pointer;\n user-select: none;\n padding: 10px 12px;\n border-radius: 8px;\n transition: background 0.15s ease;\n\n &:hover {\n background: rgba(148, 163, 184, 0.1);\n }\n`;\n\nconst SettingDescription = styled.div`\n font-size: 12px;\n color: #64748b;\n margin-top: -4px;\n margin-bottom: 8px;\n padding-left: 12px;\n line-height: 1.4;\n`;\n\nconst Toggle = styled.div<{ enabled: boolean }>`\n width: 44px;\n height: 24px;\n background: ${(props) =>\n props.enabled\n ? \"linear-gradient(135deg, #10b981 0%, #059669 100%)\"\n : \"rgba(71, 85, 105, 0.5)\"};\n border-radius: 12px;\n position: relative;\n transition: all 0.2s ease;\n box-shadow: ${(props) =>\n props.enabled\n ? \"0 0 12px rgba(16, 185, 129, 0.3)\"\n : \"inset 0 2px 4px rgba(0, 0, 0, 0.2)\"};\n\n &::after {\n content: \"\";\n position: absolute;\n top: 2px;\n left: ${(props) => (props.enabled ? \"22px\" : \"2px\")};\n width: 20px;\n height: 20px;\n background: white;\n border-radius: 50%;\n transition: left 0.2s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n }\n`;\n\nconst SliderGroup = styled.div`\n margin-bottom: 16px;\n`;\n\nconst SliderLabel = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 8px;\n font-size: 14px;\n color: #e2e8f0;\n`;\n\nconst SliderValue = styled.span`\n font-weight: 600;\n color: #10b981;\n font-size: 13px;\n`;\n\nconst Slider = styled.input`\n width: 100%;\n height: 6px;\n border-radius: 3px;\n background: rgba(71, 85, 105, 0.3);\n outline: none;\n -webkit-appearance: none;\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 18px;\n height: 18px;\n border-radius: 50%;\n background: linear-gradient(135deg, #10b981 0%, #059669 100%);\n cursor: pointer;\n box-shadow: 0 2px 8px rgba(16, 185, 129, 0.4);\n transition: transform 0.15s ease;\n\n &:hover {\n transform: scale(1.1);\n }\n\n &:active {\n transform: scale(0.95);\n }\n }\n\n &::-moz-range-thumb {\n width: 18px;\n height: 18px;\n border-radius: 50%;\n background: linear-gradient(135deg, #10b981 0%, #059669 100%);\n cursor: pointer;\n box-shadow: 0 2px 8px rgba(16, 185, 129, 0.4);\n border: none;\n transition: transform 0.15s ease;\n\n &:hover {\n transform: scale(1.1);\n }\n\n &:active {\n transform: scale(0.95);\n }\n }\n`;\n\nconst PresetButtons = styled.div`\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 8px;\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid rgba(148, 163, 184, 0.2);\n`;\n\nconst PresetButton = styled.button<{ active?: boolean }>`\n padding: 10px 12px;\n font-size: 13px;\n font-weight: 500;\n border-radius: 8px;\n border: 1px solid\n ${(props) =>\n props.active ? \"rgba(16, 185, 129, 0.5)\" : \"rgba(148, 163, 184, 0.2)\"};\n background: ${(props) =>\n props.active\n ? \"rgba(16, 185, 129, 0.15)\"\n : \"rgba(30, 41, 59, 0.5)\"};\n color: ${(props) => (props.active ? \"#10b981\" : \"#cbd5e1\")};\n cursor: pointer;\n transition: all 0.15s ease;\n\n &:hover {\n background: ${(props) =>\n props.active\n ? \"rgba(16, 185, 129, 0.25)\"\n : \"rgba(148, 163, 184, 0.1)\"};\n border-color: ${(props) =>\n props.active ? \"#10b981\" : \"rgba(148, 163, 184, 0.3)\"};\n }\n\n &:active {\n transform: scale(0.98);\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n`;\n\nconst InfoBox = styled.div`\n background: rgba(59, 130, 246, 0.1);\n border: 1px solid rgba(59, 130, 246, 0.2);\n border-radius: 8px;\n padding: 12px;\n margin-bottom: 20px;\n font-size: 12px;\n color: #93c5fd;\n line-height: 1.5;\n`;\n\nconst StatusIndicator = styled.div<{ isConnected: boolean }>`\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n background: ${(props) =>\n props.isConnected\n ? \"rgba(16, 185, 129, 0.15)\"\n : \"rgba(239, 68, 68, 0.15)\"};\n color: ${(props) => (props.isConnected ? \"#10b981\" : \"#ef4444\")};\n\n &::before {\n content: \"\";\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: currentColor;\n }\n`;\n\nexport const AudioSettingsPanel: React.FC<AudioSettingsPanelProps> = ({\n currentSettings,\n onUpdateSettings,\n isConnected,\n}) => {\n const [localSettings, setLocalSettings] =\n useState<AudioSettings>(currentSettings);\n const [isUpdating, setIsUpdating] = useState(false);\n\n const handleToggle = async (key: keyof AudioSettings, value: boolean) => {\n setLocalSettings((prev: AudioSettings) => ({ ...prev, [key]: value }));\n setIsUpdating(true);\n try {\n await onUpdateSettings({ [key]: value });\n } finally {\n setIsUpdating(false);\n }\n };\n\n const handleSliderChange = (key: keyof AudioSettings, value: number) => {\n setLocalSettings((prev: AudioSettings) => ({ ...prev, [key]: value }));\n };\n\n const handleSliderRelease = async (\n key: keyof AudioSettings,\n value: number,\n ) => {\n setIsUpdating(true);\n try {\n await onUpdateSettings({ [key]: value });\n } finally {\n setIsUpdating(false);\n }\n };\n\n const applyPreset = async (preset: \"quiet\" | \"balanced\" | \"noisy\") => {\n setIsUpdating(true);\n let newSettings: AudioSettings;\n\n switch (preset) {\n case \"quiet\":\n // Quiet environment - minimal processing, more sensitive to interruptions\n newSettings = {\n echoCancellation: false,\n noiseSuppression: false,\n autoGainControl: false,\n sampleRate: 48000,\n channelCount: 1,\n };\n break;\n case \"balanced\":\n // Balanced - moderate processing, good middle ground\n newSettings = {\n echoCancellation: true,\n noiseSuppression: true,\n autoGainControl: false,\n sampleRate: 48000,\n channelCount: 1,\n };\n break;\n case \"noisy\":\n // Noisy environment - aggressive processing, reduces interruptions\n newSettings = {\n echoCancellation: true,\n noiseSuppression: true,\n autoGainControl: true,\n sampleRate: 48000,\n channelCount: 1,\n };\n break;\n }\n\n setLocalSettings(newSettings);\n try {\n await onUpdateSettings(newSettings);\n } finally {\n setIsUpdating(false);\n }\n };\n\n const getCurrentPreset = (): \"quiet\" | \"balanced\" | \"noisy\" | null => {\n const { echoCancellation, noiseSuppression, autoGainControl } =\n localSettings;\n\n if (!echoCancellation && !noiseSuppression && !autoGainControl) {\n return \"quiet\";\n }\n if (echoCancellation && noiseSuppression && !autoGainControl) {\n return \"balanced\";\n }\n if (echoCancellation && noiseSuppression && autoGainControl) {\n return \"noisy\";\n }\n return null;\n };\n\n return (\n <Panel isOpen={true}>\n <Title>\n Audio Sensitivity Settings\n <StatusIndicator isConnected={isConnected}>\n {isConnected ? \"LIVE\" : \"OFFLINE\"}\n </StatusIndicator>\n </Title>\n <Subtitle>\n Adjust these settings to reduce interruptions and find the optimal\n balance for your environment.\n </Subtitle>\n\n {isConnected && (\n <InfoBox>\n Warning: Changing settings will briefly restart your microphone. Changes\n apply immediately.\n </InfoBox>\n )}\n\n <SettingGroup>\n <SettingLabel>\n <span>Echo Cancellation</span>\n <Toggle\n enabled={localSettings.echoCancellation || false}\n onClick={() =>\n handleToggle(\n \"echoCancellation\",\n !localSettings.echoCancellation,\n )\n }\n />\n </SettingLabel>\n <SettingDescription>\n Prevents feedback loops from speakers. Recommended ON.\n </SettingDescription>\n </SettingGroup>\n\n <SettingGroup>\n <SettingLabel>\n <span>Noise Suppression</span>\n <Toggle\n enabled={localSettings.noiseSuppression || false}\n onClick={() =>\n handleToggle(\n \"noiseSuppression\",\n !localSettings.noiseSuppression,\n )\n }\n />\n </SettingLabel>\n <SettingDescription>\n Filters out background noise. Turn ON to reduce false interruptions.\n </SettingDescription>\n </SettingGroup>\n\n <SettingGroup>\n <SettingLabel>\n <span>Auto Gain Control</span>\n <Toggle\n enabled={localSettings.autoGainControl || false}\n onClick={() =>\n handleToggle(\"autoGainControl\", !localSettings.autoGainControl)\n }\n />\n </SettingLabel>\n <SettingDescription>\n Automatically adjusts microphone volume. Turn ON in noisy environments\n to prevent unwanted interruptions.\n </SettingDescription>\n </SettingGroup>\n\n <SliderGroup>\n <SliderLabel>\n <span>Sample Rate</span>\n <SliderValue>{localSettings.sampleRate || 48000} Hz</SliderValue>\n </SliderLabel>\n <Slider\n type=\"range\"\n min=\"8000\"\n max=\"48000\"\n step=\"8000\"\n value={localSettings.sampleRate || 48000}\n onChange={(e) =>\n handleSliderChange(\"sampleRate\", parseInt(e.target.value))\n }\n onMouseUp={(e) =>\n handleSliderRelease(\n \"sampleRate\",\n parseInt((e.target as HTMLInputElement).value),\n )\n }\n onTouchEnd={(e) =>\n handleSliderRelease(\n \"sampleRate\",\n parseInt((e.target as HTMLInputElement).value),\n )\n }\n />\n <SettingDescription>\n Higher = better quality, lower = less data. 48000 Hz recommended.\n </SettingDescription>\n </SliderGroup>\n\n <PresetButtons>\n <PresetButton\n onClick={() => applyPreset(\"quiet\")}\n active={getCurrentPreset() === \"quiet\"}\n disabled={isUpdating}\n >\n 🔇 Quiet\n </PresetButton>\n <PresetButton\n onClick={() => applyPreset(\"balanced\")}\n active={getCurrentPreset() === \"balanced\"}\n disabled={isUpdating}\n >\n Balanced\n </PresetButton>\n <PresetButton\n onClick={() => applyPreset(\"noisy\")}\n active={getCurrentPreset() === \"noisy\"}\n disabled={isUpdating}\n >\n 🔊 Noisy\n </PresetButton>\n </PresetButtons>\n </Panel>\n );\n};\n\n"]}