@convai/web-sdk 1.6.1 → 1.7.0-beta.1

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 (39) hide show
  1. package/README.md +41 -5
  2. package/dist/core/ConvaiClient.d.ts +10 -2
  3. package/dist/core/ConvaiClient.d.ts.map +1 -1
  4. package/dist/core/ConvaiClient.js +37 -7
  5. package/dist/core/ConvaiClient.js.map +1 -1
  6. package/dist/core/connectRequest.d.ts +2 -2
  7. package/dist/core/connectRequest.js +3 -3
  8. package/dist/core/connectRequest.js.map +1 -1
  9. package/dist/core/types.d.ts +14 -10
  10. package/dist/core/types.d.ts.map +1 -1
  11. package/dist/lipsync-helpers/index.d.ts +4 -0
  12. package/dist/lipsync-helpers/index.d.ts.map +1 -1
  13. package/dist/lipsync-helpers/index.js +7 -0
  14. package/dist/lipsync-helpers/index.js.map +1 -1
  15. package/dist/lipsync-helpers/mhaLimitDrivers.d.ts +33 -0
  16. package/dist/lipsync-helpers/mhaLimitDrivers.d.ts.map +1 -0
  17. package/dist/lipsync-helpers/mhaLimitDrivers.js +60 -0
  18. package/dist/lipsync-helpers/mhaLimitDrivers.js.map +1 -0
  19. package/dist/lipsync-helpers/naturalness/processor.d.ts +24 -0
  20. package/dist/lipsync-helpers/naturalness/processor.d.ts.map +1 -0
  21. package/dist/lipsync-helpers/naturalness/processor.js +162 -0
  22. package/dist/lipsync-helpers/naturalness/processor.js.map +1 -0
  23. package/dist/lipsync-helpers/naturalness/profiles/mha.d.ts +7 -0
  24. package/dist/lipsync-helpers/naturalness/profiles/mha.d.ts.map +1 -0
  25. package/dist/lipsync-helpers/naturalness/profiles/mha.js +105 -0
  26. package/dist/lipsync-helpers/naturalness/profiles/mha.js.map +1 -0
  27. package/dist/lipsync-helpers/naturalness/types.d.ts +68 -0
  28. package/dist/lipsync-helpers/naturalness/types.d.ts.map +1 -0
  29. package/dist/lipsync-helpers/naturalness/types.js +11 -0
  30. package/dist/lipsync-helpers/naturalness/types.js.map +1 -0
  31. package/dist/react/hooks/useConvaiClient.js +1 -1
  32. package/dist/react/hooks/useConvaiClient.js.map +1 -1
  33. package/dist/vanilla/types.d.ts +2 -2
  34. package/dist/vanilla/types.d.ts.map +1 -1
  35. package/dist/version.d.ts +2 -0
  36. package/dist/version.d.ts.map +1 -0
  37. package/dist/version.js +4 -0
  38. package/dist/version.js.map +1 -0
  39. package/package.json +7 -6
@@ -30,4 +30,11 @@ export { PRESET_MAPPINGS, } from "./mappingTypes";
30
30
  export { arkitPassthroughMapper, metahumanPassthroughMapper, identityMapper, } from "./presetMappers";
31
31
  export { createBlendshapeQueue, createARKitBlendshapeQueue, createMetaHumanBlendshapeQueue, createCustomBlendshapeQueue, createPassthroughBlendshapeQueue, inferMappingFromConfig, } from "./createBlendshapeQueue";
32
32
  export { createARKitNameMapper, createMetaHumanNameMapper, getBlendshapeObject, } from "./declarativeMapping";
33
+ // Modular naturalness pipeline: format profiles + one-call processor.
34
+ // createLipsyncProcessor('mha') wraps symmetrize → limits → gains →
35
+ // envelope → mesh application; new formats plug in as profiles.
36
+ export { createLipsyncProcessor, getLipsyncProfile, } from "./naturalness/processor";
37
+ export { MHA_PROFILE, mhaChannelIndex } from "./naturalness/profiles/mha";
38
+ // Flat MHA convenience wrappers over the profile (piecemeal use)
39
+ export { MHA_LIMIT_DRIVERS, applyMhaLimits, MHA_RECOMMENDED_GAINS, createMhaGainMask, MHA_EYE_CHANNEL_INDICES, symmetrizeMhaMouth, } from "./mhaLimitDrivers";
33
40
  //# sourceMappingURL=index.js.map
@@ -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"}
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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Flat MHA convenience helpers — thin wrappers over the modular
3
+ * naturalness profile (see `naturalness/`). Prefer
4
+ * `createLipsyncProcessor('mha')` for the full pipeline in one call;
5
+ * these remain for piecemeal use.
6
+ */
7
+ /** Resolved limit couplings over the MHA-251 frame layout. */
8
+ export declare const MHA_LIMIT_DRIVERS: readonly {
9
+ source: string;
10
+ target: string;
11
+ sourceIdx: number;
12
+ targetIdx: number;
13
+ }[];
14
+ /**
15
+ * Apply the MetaHuman limit drivers to a 251-dim frame IN PLACE:
16
+ * each target channel becomes max(target, source). No-op for other formats.
17
+ */
18
+ export declare function applyMhaLimits(frame: Float32Array): void;
19
+ /** Production-tuned per-channel gains (short control name → gain). */
20
+ export declare const MHA_RECOMMENDED_GAINS: Record<string, number>;
21
+ /** Build a 251-length gain mask from MHA_RECOMMENDED_GAINS (+ overrides). */
22
+ export declare function createMhaGainMask(overrides?: Record<string, number>): Float32Array;
23
+ /**
24
+ * MHA frame indices of the eye channels (blink, look, lids). If you run a
25
+ * procedural blink or gaze system, SKIP these when applying stream frames.
26
+ */
27
+ export declare const MHA_EYE_CHANNEL_INDICES: readonly number[];
28
+ /**
29
+ * Average every sided mouth/jaw L/R pair IN PLACE — streams drive the two
30
+ * sides unevenly (measured up to 1.5×), which reads as a lopsided mouth.
31
+ */
32
+ export declare function symmetrizeMhaMouth(frame: Float32Array): void;
33
+ //# sourceMappingURL=mhaLimitDrivers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mhaLimitDrivers.d.ts","sourceRoot":"","sources":["../../src/lipsync-helpers/mhaLimitDrivers.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AAEH,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,EAAE,SAAS;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,EAKE,CAAC;AAEJ;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAKxD;AAED,sEAAsE;AACtE,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAC7B,CAAC;AAE7B,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAC/B,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACrC,YAAY,CAOd;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAEpD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAO5D"}
@@ -0,0 +1,60 @@
1
+ import { METAHUMAN_ORDER_251 } from "./metahumanOrder251";
2
+ import { MHA_PROFILE, MHA_RECOMMENDED_GAIN_TABLE, mhaChannelIndex, } from "./naturalness/profiles/mha";
3
+ /**
4
+ * Flat MHA convenience helpers — thin wrappers over the modular
5
+ * naturalness profile (see `naturalness/`). Prefer
6
+ * `createLipsyncProcessor('mha')` for the full pipeline in one call;
7
+ * these remain for piecemeal use.
8
+ */
9
+ /** Resolved limit couplings over the MHA-251 frame layout. */
10
+ export const MHA_LIMIT_DRIVERS = MHA_PROFILE.limits.map(([sourceIdx, targetIdx]) => ({
11
+ source: METAHUMAN_ORDER_251[sourceIdx].replace(/^CTRL_expressions_/, ""),
12
+ target: METAHUMAN_ORDER_251[targetIdx].replace(/^CTRL_expressions_/, ""),
13
+ sourceIdx,
14
+ targetIdx,
15
+ }));
16
+ /**
17
+ * Apply the MetaHuman limit drivers to a 251-dim frame IN PLACE:
18
+ * each target channel becomes max(target, source). No-op for other formats.
19
+ */
20
+ export function applyMhaLimits(frame) {
21
+ if (frame.length < METAHUMAN_ORDER_251.length)
22
+ return;
23
+ for (const [s, t] of MHA_PROFILE.limits) {
24
+ if (frame[s] > frame[t])
25
+ frame[t] = frame[s];
26
+ }
27
+ }
28
+ /** Production-tuned per-channel gains (short control name → gain). */
29
+ export const MHA_RECOMMENDED_GAINS = MHA_RECOMMENDED_GAIN_TABLE;
30
+ /** Build a 251-length gain mask from MHA_RECOMMENDED_GAINS (+ overrides). */
31
+ export function createMhaGainMask(overrides = {}) {
32
+ const mask = new Float32Array(MHA_PROFILE.recommendedGains);
33
+ for (const [name, gain] of Object.entries(overrides)) {
34
+ const i = mhaChannelIndex(name);
35
+ if (i !== undefined)
36
+ mask[i] = gain;
37
+ }
38
+ return mask;
39
+ }
40
+ /**
41
+ * MHA frame indices of the eye channels (blink, look, lids). If you run a
42
+ * procedural blink or gaze system, SKIP these when applying stream frames.
43
+ */
44
+ export const MHA_EYE_CHANNEL_INDICES = [
45
+ ...MHA_PROFILE.eyeChannelIndices,
46
+ ];
47
+ /**
48
+ * Average every sided mouth/jaw L/R pair IN PLACE — streams drive the two
49
+ * sides unevenly (measured up to 1.5×), which reads as a lopsided mouth.
50
+ */
51
+ export function symmetrizeMhaMouth(frame) {
52
+ if (frame.length < METAHUMAN_ORDER_251.length)
53
+ return;
54
+ for (const [li, ri] of MHA_PROFILE.mouthPairs) {
55
+ const m = (frame[li] + frame[ri]) / 2;
56
+ frame[li] = m;
57
+ frame[ri] = m;
58
+ }
59
+ }
60
+ //# sourceMappingURL=mhaLimitDrivers.js.map
@@ -0,0 +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"}
@@ -0,0 +1,24 @@
1
+ import type { LipsyncFormat, LipsyncFormatProfile, LipsyncMeshBinding, LipsyncProcessorOptions } from "./types";
2
+ /** Resolve a registered format profile; throws a helpful error otherwise. */
3
+ export declare function getLipsyncProfile(format: LipsyncFormat): LipsyncFormatProfile;
4
+ export interface LipsyncProcessor {
5
+ profile: LipsyncFormatProfile;
6
+ /**
7
+ * Shape a raw frame (pass null while the bot is silent). Returns the
8
+ * envelope-weighted frame to write this tick, or null once fully
9
+ * settled. The returned array is internal scratch — copy if you keep it.
10
+ */
11
+ process(frame: Float32Array | null, deltaSeconds: number): Float32Array | null;
12
+ /** Resolve one mesh's morph slots (repairs known name mangling in place). */
13
+ bindMesh(mesh: LipsyncMeshBinding["mesh"]): LipsyncMeshBinding | null;
14
+ /** Traverse a scene/root and bind every mesh with matching morphs. */
15
+ bindAll(root: {
16
+ traverse: (cb: (obj: unknown) => void) => void;
17
+ }): LipsyncMeshBinding[];
18
+ /** Write a processed frame onto bindings (no-op for null). */
19
+ apply(out: Float32Array | null, bindings: LipsyncMeshBinding[]): void;
20
+ /** process + apply in one call. */
21
+ tick(frame: Float32Array | null, deltaSeconds: number, bindings: LipsyncMeshBinding[]): void;
22
+ }
23
+ export declare function createLipsyncProcessor(formatOrProfile: LipsyncFormat | LipsyncFormatProfile, options?: LipsyncProcessorOptions): LipsyncProcessor;
24
+ //# sourceMappingURL=processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../../src/lipsync-helpers/naturalness/processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAwBjB,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,oBAAoB,CAU7E;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,oBAAoB,CAAC;IAC9B;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IAC/E,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,kBAAkB,GAAG,IAAI,CAAC;IACtE,sEAAsE;IACtE,OAAO,CAAC,IAAI,EAAE;QACZ,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;KAChD,GAAG,kBAAkB,EAAE,CAAC;IACzB,8DAA8D;IAC9D,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;IACtE,mCAAmC;IACnC,IAAI,CACF,KAAK,EAAE,YAAY,GAAG,IAAI,EAC1B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,kBAAkB,EAAE,GAC7B,IAAI,CAAC;CACT;AAED,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,aAAa,GAAG,oBAAoB,EACrD,OAAO,GAAE,uBAA4B,GACpC,gBAAgB,CAwIlB"}
@@ -0,0 +1,162 @@
1
+ import { MHA_PROFILE } from "./profiles/mha";
2
+ /**
3
+ * createLipsyncProcessor — the one-call naturalness pipeline for a stream
4
+ * format. Wraps every per-frame pattern from the lipsync docs:
5
+ *
6
+ * raw frame → symmetrize L/R → rig limit couplings → per-channel gains
7
+ * → bloom/settle envelope → morph targets (eye channels
8
+ * optionally left to your procedural blink/gaze)
9
+ *
10
+ * ```ts
11
+ * const lipsync = createLipsyncProcessor('mha', { skipEyeChannels: true });
12
+ * const bindings = lipsync.bindAll(gltf.scene); // repairs names, maps slots
13
+ *
14
+ * // per render tick:
15
+ * lipsync.tick(getFrameOrNull(), delta, bindings);
16
+ * ```
17
+ */
18
+ const PROFILES = {
19
+ mha: MHA_PROFILE,
20
+ };
21
+ /** Resolve a registered format profile; throws a helpful error otherwise. */
22
+ export function getLipsyncProfile(format) {
23
+ const profile = PROFILES[format];
24
+ if (!profile) {
25
+ throw new Error(`[lipsync-helpers] no naturalness profile for format "${format}" yet — ` +
26
+ `available: ${Object.keys(PROFILES).join(", ")}. ` +
27
+ `Pass a custom LipsyncFormatProfile to createLipsyncProcessor instead.`);
28
+ }
29
+ return profile;
30
+ }
31
+ export function createLipsyncProcessor(formatOrProfile, options = {}) {
32
+ const profile = typeof formatOrProfile === "string"
33
+ ? getLipsyncProfile(formatOrProfile)
34
+ : formatOrProfile;
35
+ const { symmetrizeMouth = true, applyLimits = true, useRecommendedGains = true, gainOverrides = {}, skipEyeChannels = false, envelope = {}, } = options;
36
+ const dim = profile.channelNames.length;
37
+ // Effective per-channel gains: recommended table (or 1) + overrides.
38
+ const gains = new Float32Array(dim).fill(1);
39
+ if (useRecommendedGains)
40
+ gains.set(profile.recommendedGains);
41
+ const shortIndex = new Map();
42
+ profile.channelNames.forEach((name, i) => {
43
+ shortIndex.set(name, i);
44
+ // also register without common prefixes for override convenience
45
+ shortIndex.set(name.replace(/^CTRL_expressions_/, ""), i);
46
+ });
47
+ for (const [name, gain] of Object.entries(gainOverrides)) {
48
+ const i = shortIndex.get(name);
49
+ if (i !== undefined)
50
+ gains[i] = gain;
51
+ }
52
+ const attackTau = envelope === false ? 0 : envelope.attack ?? 0.09;
53
+ const releaseTau = envelope === false ? 0 : envelope.release ?? 0.18;
54
+ // Scratch state
55
+ const work = new Float32Array(dim);
56
+ let last = null;
57
+ let env = envelope === false ? 1 : 0;
58
+ const shape = (src) => {
59
+ work.set(src.subarray(0, dim));
60
+ if (symmetrizeMouth) {
61
+ for (const [li, ri] of profile.mouthPairs) {
62
+ const m = (work[li] + work[ri]) / 2;
63
+ work[li] = m;
64
+ work[ri] = m;
65
+ }
66
+ }
67
+ if (applyLimits) {
68
+ for (const [s, t] of profile.limits) {
69
+ if (work[s] > work[t])
70
+ work[t] = work[s];
71
+ }
72
+ }
73
+ for (let i = 0; i < dim; i++)
74
+ work[i] *= gains[i];
75
+ return work;
76
+ };
77
+ const process = (frame, delta) => {
78
+ if (envelope !== false) {
79
+ const target = frame ? 1 : 0;
80
+ const tau = target > env ? attackTau : releaseTau;
81
+ env += (target - env) * (1 - Math.exp(-delta / Math.max(tau, 1e-4)));
82
+ }
83
+ if (frame && frame.length >= dim) {
84
+ last = shape(frame);
85
+ }
86
+ else if (!frame && (envelope === false || env < 0.005)) {
87
+ last = null;
88
+ return null;
89
+ }
90
+ if (!last)
91
+ return null;
92
+ if (envelope !== false && env < 1) {
93
+ // weight the scratch in place (last === work)
94
+ for (let i = 0; i < dim; i++)
95
+ work[i] = last[i] * env;
96
+ return work;
97
+ }
98
+ return last;
99
+ };
100
+ const bindMesh = (mesh) => {
101
+ const dict = mesh.morphTargetDictionary;
102
+ if (!dict || !mesh.morphTargetInfluences)
103
+ return null;
104
+ // Repair known export name-mangling in place (idempotent).
105
+ for (const key of Object.keys(dict)) {
106
+ const fixed = profile.normalizeMorphName(key);
107
+ if (fixed !== key) {
108
+ dict[fixed] = dict[key];
109
+ delete dict[key];
110
+ }
111
+ }
112
+ const slots = new Int32Array(dim).fill(-1);
113
+ let matched = 0;
114
+ profile.channelNames.forEach((name, i) => {
115
+ const slot = dict[name];
116
+ if (slot !== undefined) {
117
+ slots[i] = slot;
118
+ matched++;
119
+ }
120
+ });
121
+ return matched > 0 ? { mesh, slots, matched } : null;
122
+ };
123
+ const bindAll = (root) => {
124
+ const bindings = [];
125
+ root.traverse((obj) => {
126
+ const m = obj;
127
+ if (!m.isMesh)
128
+ return;
129
+ const b = bindMesh(m);
130
+ if (b)
131
+ bindings.push(b);
132
+ });
133
+ return bindings;
134
+ };
135
+ const apply = (out, bindings) => {
136
+ if (!out)
137
+ return;
138
+ const eyes = profile.eyeChannelIndices;
139
+ for (const b of bindings) {
140
+ const infl = b.mesh.morphTargetInfluences;
141
+ for (let i = 0; i < dim; i++) {
142
+ const slot = b.slots[i];
143
+ if (slot < 0)
144
+ continue;
145
+ if (skipEyeChannels && eyes.has(i))
146
+ continue;
147
+ infl[slot] = out[i];
148
+ }
149
+ }
150
+ };
151
+ return {
152
+ profile,
153
+ process,
154
+ bindMesh,
155
+ bindAll,
156
+ apply,
157
+ tick(frame, delta, bindings) {
158
+ apply(process(frame, delta), bindings);
159
+ },
160
+ };
161
+ }
162
+ //# sourceMappingURL=processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../src/lipsync-helpers/naturalness/processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { LipsyncFormatProfile } from "../types";
2
+ /** Production-tuned per-channel gains (short name → gain). */
3
+ export declare const MHA_RECOMMENDED_GAIN_TABLE: Record<string, number>;
4
+ export declare const MHA_PROFILE: LipsyncFormatProfile;
5
+ /** Short channel name → MHA-251 frame index (e.g. "jawOpen" → 62). */
6
+ export declare function mhaChannelIndex(shortName: string): number | undefined;
7
+ //# sourceMappingURL=mha.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mha.d.ts","sourceRoot":"","sources":["../../../../src/lipsync-helpers/naturalness/profiles/mha.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAkCrD,8DAA8D;AAC9D,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA+B7D,CAAC;AASF,eAAO,MAAM,WAAW,EAAE,oBAwCzB,CAAC;AAEF,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAErE"}
@@ -0,0 +1,105 @@
1
+ import { METAHUMAN_ORDER_251 } from "../../metahumanOrder251";
2
+ /**
3
+ * MetaHuman (`mha`, 251-channel) format profile.
4
+ *
5
+ * The limit drivers are the couplings Unreal's MetaHuman rig applies
6
+ * natively and the stream is authored against — most visibly jawOpen must
7
+ * drive the four mouthLipsTogether* channels so the lips stay in contact
8
+ * while the jaw moves. Without them every jaw opening bares the teeth.
9
+ */
10
+ const MHA_INDEX = (() => {
11
+ const m = {};
12
+ METAHUMAN_ORDER_251.forEach((ctrl, i) => {
13
+ m[ctrl.replace(/^CTRL_expressions_/, "")] = i;
14
+ });
15
+ return m;
16
+ })();
17
+ /** [source, target] short names — target becomes max(target, source). */
18
+ const LIMIT_DEFS = [
19
+ ["eyeBlinkL", "eyeLidPressL"],
20
+ ["eyeBlinkR", "eyeLidPressR"],
21
+ ["noseWrinkleL", "noseWrinkleUpperL"],
22
+ ["noseWrinkleR", "noseWrinkleUpperR"],
23
+ ["mouthStretchL", "mouthStretchLipsCloseL"],
24
+ ["mouthStretchR", "mouthStretchLipsCloseR"],
25
+ ["jawOpen", "jawOpenExtreme"],
26
+ ["jawOpen", "mouthLipsTogetherUL"],
27
+ ["jawOpen", "mouthLipsTogetherUR"],
28
+ ["jawOpen", "mouthLipsTogetherDL"],
29
+ ["jawOpen", "mouthLipsTogetherDR"],
30
+ ];
31
+ /** Production-tuned per-channel gains (short name → gain). */
32
+ export const MHA_RECOMMENDED_GAIN_TABLE = {
33
+ // Conversational aperture: 0.6 reads mumbled, raw bares the teeth.
34
+ jawOpen: 0.72,
35
+ jawOpenExtreme: 0.42,
36
+ // Lateral shifts only ever read as a lopsided mouth once L/R pairs are
37
+ // symmetrized.
38
+ jawLeft: 0,
39
+ jawRight: 0,
40
+ mouthLeft: 0,
41
+ mouthRight: 0,
42
+ // Teeth exposure matched to real speech: upper teeth glimpsed on open
43
+ // vowels, lower teeth mostly hidden.
44
+ mouthUpperLipRaiseL: 0.6,
45
+ mouthUpperLipRaiseR: 0.6,
46
+ mouthLowerLipDepressL: 0.45,
47
+ mouthLowerLipDepressR: 0.45,
48
+ // Lips ride close to the teeth through normal speech.
49
+ mouthLipsTogetherUL: 0.8,
50
+ mouthLipsTogetherUR: 0.8,
51
+ mouthLipsTogetherDL: 0.8,
52
+ mouthLipsTogetherDR: 0.8,
53
+ // Rounding on /u/ /w/ is under-driven by the stream. (Do NOT boost
54
+ // cornerPull/stretch — amplified EE spread reads as a grimace.)
55
+ mouthFunnelUL: 1.15,
56
+ mouthFunnelUR: 1.15,
57
+ mouthFunnelDL: 1.15,
58
+ mouthFunnelDR: 1.15,
59
+ mouthLipsPurseUL: 1.15,
60
+ mouthLipsPurseUR: 1.15,
61
+ mouthLipsPurseDL: 1.15,
62
+ mouthLipsPurseDR: 1.15,
63
+ };
64
+ const EYE_CHANNEL_NAMES = [
65
+ "eyeBlinkL", "eyeBlinkR",
66
+ "eyeLookUpL", "eyeLookUpR", "eyeLookDownL", "eyeLookDownR",
67
+ "eyeLookLeftL", "eyeLookLeftR", "eyeLookRightL", "eyeLookRightR",
68
+ "eyeRelaxL", "eyeRelaxR", "eyeLowerLidUpL", "eyeLowerLidUpR",
69
+ ];
70
+ export const MHA_PROFILE = {
71
+ format: "mha",
72
+ channelNames: METAHUMAN_ORDER_251,
73
+ limits: LIMIT_DEFS.flatMap(([s, t]) => MHA_INDEX[s] !== undefined && MHA_INDEX[t] !== undefined
74
+ ? [[MHA_INDEX[s], MHA_INDEX[t]]]
75
+ : []),
76
+ recommendedGains: (() => {
77
+ const g = new Float32Array(METAHUMAN_ORDER_251.length).fill(1);
78
+ for (const [name, gain] of Object.entries(MHA_RECOMMENDED_GAIN_TABLE)) {
79
+ const i = MHA_INDEX[name];
80
+ if (i !== undefined)
81
+ g[i] = gain;
82
+ }
83
+ return g;
84
+ })(),
85
+ eyeChannelIndices: new Set(EYE_CHANNEL_NAMES.flatMap((n) => MHA_INDEX[n] !== undefined ? [MHA_INDEX[n]] : [])),
86
+ mouthPairs: (() => {
87
+ const pairs = [];
88
+ METAHUMAN_ORDER_251.forEach((name, li) => {
89
+ if (!/^CTRL_expressions_(mouth|jaw)/.test(name) || !/L$/.test(name))
90
+ return;
91
+ const ri = METAHUMAN_ORDER_251.indexOf(name.replace(/L$/, "R"));
92
+ if (ri >= 0)
93
+ pairs.push([li, ri]);
94
+ });
95
+ return pairs;
96
+ })(),
97
+ // Some exports drop the underscore after the prefix
98
+ // (CTRL_expressionsjawOpen) — repair so name lookups work.
99
+ normalizeMorphName: (name) => name.replace(/^CTRL_expressions(?!_)/, "CTRL_expressions_"),
100
+ };
101
+ /** Short channel name → MHA-251 frame index (e.g. "jawOpen" → 62). */
102
+ export function mhaChannelIndex(shortName) {
103
+ return MHA_INDEX[shortName];
104
+ }
105
+ //# sourceMappingURL=mha.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mha.js","sourceRoot":"","sources":["../../../../src/lipsync-helpers/naturalness/profiles/mha.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Format-agnostic lipsync naturalness pipeline — shared types.
3
+ *
4
+ * A {@link LipsyncFormatProfile} describes everything format-specific
5
+ * (channel names, rig couplings, tuned gains, eye channels, L/R pairs);
6
+ * the processor in `processor.ts` consumes any profile. Adding a new
7
+ * stream format (`arkit`, `visemes`, `cc4_extended`) means writing one
8
+ * profile file — no processor changes.
9
+ */
10
+ export type LipsyncFormat = "mha" | "arkit" | "visemes" | "cc4_extended" | "cc5_hd";
11
+ export interface LipsyncFormatProfile {
12
+ format: LipsyncFormat;
13
+ /** Frame index → channel/morph name. Length = the stream's frame dim. */
14
+ channelNames: readonly string[];
15
+ /**
16
+ * Rig couplings applied as target = max(target, source) — the
17
+ * "in-between" drivers the stream is authored against (e.g. MetaHuman's
18
+ * jawOpen → mouthLipsTogether*). Empty for formats without them.
19
+ */
20
+ limits: ReadonlyArray<readonly [sourceIdx: number, targetIdx: number]>;
21
+ /** Per-channel production-tuned gains (length = frame dim, default 1). */
22
+ recommendedGains: Float32Array;
23
+ /** Channel indices owned by procedural blink/gaze systems. */
24
+ eyeChannelIndices: ReadonlySet<number>;
25
+ /** Sided L/R channel index pairs for mouth symmetrization. */
26
+ mouthPairs: ReadonlyArray<readonly [number, number]>;
27
+ /**
28
+ * Repairs known export name-mangling for this format (e.g. MetaHuman
29
+ * exports missing the underscore: CTRL_expressionsjawOpen). Identity
30
+ * when a name is already correct.
31
+ */
32
+ normalizeMorphName: (name: string) => string;
33
+ }
34
+ export interface LipsyncEnvelopeOptions {
35
+ /** Bloom-in time constant in seconds (speech start). Default 0.09. */
36
+ attack?: number;
37
+ /** Settle-out time constant in seconds (speech end). Default 0.18. */
38
+ release?: number;
39
+ }
40
+ export interface LipsyncProcessorOptions {
41
+ /** Average sided L/R mouth pairs (streams drive sides unevenly). Default true. */
42
+ symmetrizeMouth?: boolean;
43
+ /** Apply the profile's rig couplings. Default true — required for `mha`. */
44
+ applyLimits?: boolean;
45
+ /** Start from the profile's production gain table. Default true. */
46
+ useRecommendedGains?: boolean;
47
+ /** Per-channel gain overrides by SHORT channel name (profile naming). */
48
+ gainOverrides?: Record<string, number>;
49
+ /**
50
+ * Leave the eye channels untouched — enable when you run a procedural
51
+ * blink/gaze system (two writers race into flicker). Default false.
52
+ */
53
+ skipEyeChannels?: boolean;
54
+ /** Bloom/settle envelope; pass `false` to disable. Default on. */
55
+ envelope?: LipsyncEnvelopeOptions | false;
56
+ }
57
+ /** A mesh whose morph slots have been resolved against a profile. */
58
+ export interface LipsyncMeshBinding {
59
+ mesh: {
60
+ morphTargetDictionary?: Record<string, number>;
61
+ morphTargetInfluences?: number[] | Float32Array;
62
+ };
63
+ /** slots[frameIndex] = morphTargetInfluences index, or -1. */
64
+ slots: Int32Array;
65
+ /** Number of matched channels. */
66
+ matched: number;
67
+ }
68
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lipsync-helpers/naturalness/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,aAAa,GACrB,KAAK,GACL,OAAO,GACP,SAAS,GACT,cAAc,GACd,QAAQ,CAAC;AAEb,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,aAAa,CAAC;IACtB,yEAAyE;IACzE,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC;;;;OAIG;IACH,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACvE,0EAA0E;IAC1E,gBAAgB,EAAE,YAAY,CAAC;IAC/B,8DAA8D;IAC9D,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,8DAA8D;IAC9D,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD;;;;OAIG;IACH,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9C;AAED,MAAM,WAAW,sBAAsB;IACrC,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,kFAAkF;IAClF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4EAA4E;IAC5E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,sBAAsB,GAAG,KAAK,CAAC;CAC3C;AAED,qEAAqE;AACrE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE;QACJ,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/C,qBAAqB,CAAC,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;KACjD,CAAC;IACF,8DAA8D;IAC9D,KAAK,EAAE,UAAU,CAAC;IAClB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Format-agnostic lipsync naturalness pipeline — shared types.
3
+ *
4
+ * A {@link LipsyncFormatProfile} describes everything format-specific
5
+ * (channel names, rig couplings, tuned gains, eye channels, L/R pairs);
6
+ * the processor in `processor.ts` consumes any profile. Adding a new
7
+ * stream format (`arkit`, `visemes`, `cc4_extended`) means writing one
8
+ * profile file — no processor changes.
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lipsync-helpers/naturalness/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -166,7 +166,6 @@ export const useConvaiClient = (config) => {
166
166
  ...(client.apiKey && { apiKey: client.apiKey }),
167
167
  ...(client.authToken && { authToken: client.authToken }),
168
168
  characterId: client.characterId,
169
- speakerId: client.speakerId,
170
169
  connect,
171
170
  disconnect: client.disconnect.bind(client),
172
171
  reconnect,
@@ -179,6 +178,7 @@ export const useConvaiClient = (config) => {
179
178
  updateTemplateKeys: client.updateTemplateKeys.bind(client),
180
179
  updateDynamicInfo: client.updateDynamicInfo.bind(client),
181
180
  updateContext: client.updateContext.bind(client),
181
+ updateEmotion: client.updateEmotion.bind(client),
182
182
  visionStatus: client.visionStatus.bind(client),
183
183
  visionTrigger: client.visionTrigger.bind(client),
184
184
  respondModeUpdate: client.respondModeUpdate.bind(client),
@@ -1 +1 @@
1
- {"version":3,"file":"useConvaiClient.js","sourceRoot":"","sources":["../../../src/react/hooks/useConvaiClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useConvaiClient.js","sourceRoot":"","sources":["../../../src/react/hooks/useConvaiClient.ts"],"names":[],"mappings":"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"}
@@ -35,9 +35,9 @@ export interface VanillaWidgetOptions {
35
35
  format?: "arkit" | "mha";
36
36
  /** Custom mapper function to transform incoming blendshapes */
37
37
  customMapper?: (input: number[] | Float32Array) => Float32Array;
38
- /** Indexed NeuroSync ahead-delivery. Defaults to false; set true to opt in. */
38
+ /** Indexed NeuroSync ahead-delivery. Defaults to true; set false for the legacy paced path. */
39
39
  deliver_chunks_ahead?: boolean;
40
- /** Ahead-delivery timeline FPS override; ignored unless deliver_chunks_ahead is true. */
40
+ /** Ahead-delivery timeline FPS override; ignored when deliver_chunks_ahead is false. */
41
41
  output_fps?: number;
42
42
  /** Seconds the server buffers blendshapes before releasing them. */
43
43
  frames_buffer_duration?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vanilla/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,YAAY,CAAC,EAAE,aAAa,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IAElF,gHAAgH;IAChH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oGAAoG;IACpG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mEAAmE;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kGAAkG;IAClG,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE;QACjB,qFAAqF;QACrF,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;QACzB,+DAA+D;QAC/D,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,KAAK,YAAY,CAAC;QAChE,+EAA+E;QAC/E,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,yFAAyF;QACzF,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oEAAoE;QACpE,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;IAEF;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,OAAO,EAAE,WAAW,CAAC;IACrB,qCAAqC;IACrC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iCAAiC;IACjC,MAAM,EAAE,aAAa,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IAC3E,kDAAkD;IAClD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAC;CAC3D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vanilla/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,YAAY,CAAC,EAAE,aAAa,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IAElF,gHAAgH;IAChH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oGAAoG;IACpG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mEAAmE;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kGAAkG;IAClG,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE;QACjB,qFAAqF;QACrF,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;QACzB,+DAA+D;QAC/D,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,KAAK,YAAY,CAAC;QAChE,+FAA+F;QAC/F,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,wFAAwF;QACxF,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oEAAoE;QACpE,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;IAEF;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,OAAO,EAAE,WAAW,CAAC;IACrB,qCAAqC;IACrC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iCAAiC;IACjC,MAAM,EAAE,aAAa,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IAC3E,kDAAkD;IAClD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAC;CAC3D"}
@@ -0,0 +1,2 @@
1
+ export declare const SDK_VERSION = "1.7.0-beta.1";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,iBAAiB,CAAC"}
@@ -0,0 +1,4 @@
1
+ // GENERATED by scripts/sync-version.mjs — do not edit by hand.
2
+ // Regenerated from package.json on every build.
3
+ export const SDK_VERSION = "1.7.0-beta.1";
4
+ //# sourceMappingURL=version.js.map