@voqalize/avatar 0.4.4 → 0.5.0

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 (180) hide show
  1. package/README.md +65 -154
  2. package/dist/index.d.ts +37 -26
  3. package/dist/index.js +48 -25
  4. package/dist/pin.d.ts +2 -0
  5. package/dist/pin.js +3 -0
  6. package/dist/react.d.ts +21 -6
  7. package/dist/react.js +24 -6
  8. package/package.json +8 -67
  9. package/LICENSE-APACHE-2.0 +0 -201
  10. package/LICENSE-CC-BY-4.0 +0 -396
  11. package/assets/README.md +0 -60
  12. package/assets/tanvi.glb +0 -0
  13. package/assets/tanya.glb +0 -0
  14. package/assets/tara.glb +0 -0
  15. package/assets/tess.glb +0 -0
  16. package/assets/tushar.glb +0 -0
  17. package/client/Avatar.tsx +0 -57
  18. package/client/AvatarClient.ts +0 -818
  19. package/client/createAvatar.ts +0 -177
  20. package/client/index.ts +0 -44
  21. package/client/internal.ts +0 -132
  22. package/client/playout.ts +0 -95
  23. package/client/react.ts +0 -13
  24. package/client/supports.ts +0 -27
  25. package/client/three/assets.ts +0 -26
  26. package/client/three/budgets.ts +0 -27
  27. package/client/three/character-rig.ts +0 -1746
  28. package/client/three/createCharacter.ts +0 -109
  29. package/client/three/holds.ts +0 -69
  30. package/client/three/internal.ts +0 -55
  31. package/client/three/motion-limits.json +0 -124
  32. package/client/three/sequences.ts +0 -281
  33. package/client/three/tanvi-asset.ts +0 -6
  34. package/client/three/tanvi.ts +0 -30
  35. package/client/three/tanya-asset.ts +0 -6
  36. package/client/three/tanya.ts +0 -29
  37. package/client/three/tara-asset.ts +0 -25
  38. package/client/three/tara.ts +0 -36
  39. package/client/three/tess-asset.ts +0 -6
  40. package/client/three/tess.ts +0 -30
  41. package/client/three/tushar-asset.ts +0 -6
  42. package/client/three/tushar.ts +0 -28
  43. package/client/types.ts +0 -235
  44. package/client/useAvatar.ts +0 -74
  45. package/dist/Avatar.d.ts +0 -44
  46. package/dist/Avatar.d.ts.map +0 -1
  47. package/dist/Avatar.js +0 -7
  48. package/dist/Avatar.js.map +0 -1
  49. package/dist/AvatarClient.d.ts +0 -274
  50. package/dist/AvatarClient.d.ts.map +0 -1
  51. package/dist/AvatarClient.js +0 -712
  52. package/dist/AvatarClient.js.map +0 -1
  53. package/dist/createAvatar.d.ts +0 -135
  54. package/dist/createAvatar.d.ts.map +0 -1
  55. package/dist/createAvatar.js +0 -75
  56. package/dist/createAvatar.js.map +0 -1
  57. package/dist/index.d.ts.map +0 -1
  58. package/dist/index.js.map +0 -1
  59. package/dist/internal.d.ts +0 -34
  60. package/dist/internal.d.ts.map +0 -1
  61. package/dist/internal.js +0 -56
  62. package/dist/internal.js.map +0 -1
  63. package/dist/playout.d.ts +0 -42
  64. package/dist/playout.d.ts.map +0 -1
  65. package/dist/playout.js +0 -85
  66. package/dist/playout.js.map +0 -1
  67. package/dist/react.d.ts.map +0 -1
  68. package/dist/react.js.map +0 -1
  69. package/dist/supports.d.ts +0 -19
  70. package/dist/supports.d.ts.map +0 -1
  71. package/dist/supports.js +0 -25
  72. package/dist/supports.js.map +0 -1
  73. package/dist/three/assets.d.ts +0 -10
  74. package/dist/three/assets.d.ts.map +0 -1
  75. package/dist/three/assets.js +0 -23
  76. package/dist/three/assets.js.map +0 -1
  77. package/dist/three/budgets.d.ts +0 -17
  78. package/dist/three/budgets.d.ts.map +0 -1
  79. package/dist/three/budgets.js +0 -21
  80. package/dist/three/budgets.js.map +0 -1
  81. package/dist/three/character-rig.d.ts +0 -366
  82. package/dist/three/character-rig.d.ts.map +0 -1
  83. package/dist/three/character-rig.js +0 -1644
  84. package/dist/three/character-rig.js.map +0 -1
  85. package/dist/three/createCharacter.d.ts +0 -60
  86. package/dist/three/createCharacter.d.ts.map +0 -1
  87. package/dist/three/createCharacter.js +0 -84
  88. package/dist/three/createCharacter.js.map +0 -1
  89. package/dist/three/holds.d.ts +0 -38
  90. package/dist/three/holds.d.ts.map +0 -1
  91. package/dist/three/holds.js +0 -61
  92. package/dist/three/holds.js.map +0 -1
  93. package/dist/three/internal.d.ts +0 -52
  94. package/dist/three/internal.d.ts.map +0 -1
  95. package/dist/three/internal.js +0 -49
  96. package/dist/three/internal.js.map +0 -1
  97. package/dist/three/motion-limits.json +0 -124
  98. package/dist/three/sequences.d.ts +0 -71
  99. package/dist/three/sequences.d.ts.map +0 -1
  100. package/dist/three/sequences.js +0 -262
  101. package/dist/three/sequences.js.map +0 -1
  102. package/dist/three/tanvi-asset.d.ts +0 -7
  103. package/dist/three/tanvi-asset.d.ts.map +0 -1
  104. package/dist/three/tanvi-asset.js +0 -7
  105. package/dist/three/tanvi-asset.js.map +0 -1
  106. package/dist/three/tanvi.d.ts +0 -24
  107. package/dist/three/tanvi.d.ts.map +0 -1
  108. package/dist/three/tanvi.js +0 -24
  109. package/dist/three/tanvi.js.map +0 -1
  110. package/dist/three/tanya-asset.d.ts +0 -7
  111. package/dist/three/tanya-asset.d.ts.map +0 -1
  112. package/dist/three/tanya-asset.js +0 -7
  113. package/dist/three/tanya-asset.js.map +0 -1
  114. package/dist/three/tanya.d.ts +0 -23
  115. package/dist/three/tanya.d.ts.map +0 -1
  116. package/dist/three/tanya.js +0 -23
  117. package/dist/three/tanya.js.map +0 -1
  118. package/dist/three/tara-asset.d.ts +0 -26
  119. package/dist/three/tara-asset.d.ts.map +0 -1
  120. package/dist/three/tara-asset.js +0 -26
  121. package/dist/three/tara-asset.js.map +0 -1
  122. package/dist/three/tara.d.ts +0 -30
  123. package/dist/three/tara.d.ts.map +0 -1
  124. package/dist/three/tara.js +0 -30
  125. package/dist/three/tara.js.map +0 -1
  126. package/dist/three/tess-asset.d.ts +0 -7
  127. package/dist/three/tess-asset.d.ts.map +0 -1
  128. package/dist/three/tess-asset.js +0 -7
  129. package/dist/three/tess-asset.js.map +0 -1
  130. package/dist/three/tess.d.ts +0 -24
  131. package/dist/three/tess.d.ts.map +0 -1
  132. package/dist/three/tess.js +0 -24
  133. package/dist/three/tess.js.map +0 -1
  134. package/dist/three/tushar-asset.d.ts +0 -7
  135. package/dist/three/tushar-asset.d.ts.map +0 -1
  136. package/dist/three/tushar-asset.js +0 -7
  137. package/dist/three/tushar-asset.js.map +0 -1
  138. package/dist/three/tushar.d.ts +0 -22
  139. package/dist/three/tushar.d.ts.map +0 -1
  140. package/dist/three/tushar.js +0 -22
  141. package/dist/three/tushar.js.map +0 -1
  142. package/dist/types.d.ts +0 -149
  143. package/dist/types.d.ts.map +0 -1
  144. package/dist/types.js +0 -140
  145. package/dist/types.js.map +0 -1
  146. package/dist/useAvatar.d.ts +0 -39
  147. package/dist/useAvatar.d.ts.map +0 -1
  148. package/dist/useAvatar.js +0 -35
  149. package/dist/useAvatar.js.map +0 -1
  150. package/src/avatar.d.ts +0 -436
  151. package/src/avatar.js +0 -1378
  152. package/src/behavior.d.ts +0 -42
  153. package/src/behavior.js +0 -114
  154. package/src/camera.js +0 -29
  155. package/src/clips.js +0 -155
  156. package/src/conformance.js +0 -119
  157. package/src/emotions.js +0 -58
  158. package/src/face-core.js +0 -180
  159. package/src/face-myna.d.ts +0 -7
  160. package/src/face-myna.js +0 -786
  161. package/src/face-peep-control-plane.js +0 -167
  162. package/src/face-peep.d.ts +0 -7
  163. package/src/face-peep.js +0 -925
  164. package/src/face-wren.d.ts +0 -7
  165. package/src/face-wren.js +0 -468
  166. package/src/faces.d.ts +0 -12
  167. package/src/faces.js +0 -53
  168. package/src/gaze.js +0 -504
  169. package/src/hand.js +0 -709
  170. package/src/head.js +0 -134
  171. package/src/idle.js +0 -668
  172. package/src/interjections.js +0 -747
  173. package/src/line-art.js +0 -137
  174. package/src/params.js +0 -180
  175. package/src/perform.js +0 -107
  176. package/src/prosody.js +0 -741
  177. package/src/rig.d.ts +0 -31
  178. package/src/rig.js +0 -32
  179. package/src/speech-timing.js +0 -51
  180. package/src/visemes.js +0 -410
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarClient.js","sourceRoot":"","sources":["../client/AvatarClient.ts"],"names":[],"mappings":"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"}
@@ -1,135 +0,0 @@
1
- /**
2
- * `createAvatar` — the entire public surface of an avatar.
3
- *
4
- * const avatar = createAvatar({ mount: el, client: pipecatClient });
5
- * // …
6
- * avatar.destroy();
7
- *
8
- * An avatar is an embodiment of a `PipecatClient`. You hand it a mount and a
9
- * live client; it subscribes and reacts. There is nothing else: no methods to
10
- * drive it, no callbacks to observe it, no state to read back. Everything it
11
- * needs to know is already on the wire — Pipecat's factual lifecycle events
12
- * plus the avatar server-message envelope (docs/contract-wire.md).
13
- *
14
- * ## This is also the extension point
15
- *
16
- * There is no registry, no loader and no plug-in system. **You add an avatar by
17
- * publishing a module that exports `createAvatar` with this signature**, and
18
- * importing yours instead of ours:
19
- *
20
- * import { createAvatar } from "@acme/our-mascot";
21
- *
22
- * That is the whole mechanism, and it is deliberate. A registry would make us
23
- * own resolution, versioning and asset paths for code we have never seen; a
24
- * renderer interface would make us commit to a second public contract before we
25
- * know what the second renderer actually needs. An ES module export we get for
26
- * free from the platform.
27
- *
28
- * Everything past `mount` and `client` belongs to the implementation. Ours takes
29
- * `SvgAvatarOptions`; yours takes whatever it likes, and `AvatarFactory<O>` is
30
- * generic so the caller still gets your options checked.
31
- *
32
- * ## What an implementation owes the caller
33
- *
34
- * Only that `destroy()` leaves the mount as it found it and unsubscribes from
35
- * the client. Not returning to rest, not honouring every action, not even
36
- * having a mouth — a handless, mouthless avatar that only changes colour is a
37
- * conforming avatar. The obligations that *matter* are perceptual, not typed,
38
- * and they live in docs/contract-behavior.md.
39
- */
40
- import type { PipecatClient } from "@pipecat-ai/client-js";
41
- import type { Face, FaceTheme, Gain, HandSide } from "../src/avatar.js";
42
- import type { BehaviorStateId } from "../src/behavior.js";
43
- export type { Face, FaceTheme, Gain, HandSide };
44
- /**
45
- * What every `createAvatar` takes. Implementations extend it with their own
46
- * options; the two named here are the only ones the caller can count on.
47
- */
48
- export interface AvatarOptions {
49
- /** The element to render into. The implementation owns its contents. */
50
- readonly mount: HTMLElement;
51
- /**
52
- * A live `PipecatClient`. Required, and not nullable: an avatar with nothing
53
- * to embody has no reason to exist yet. React callers get the forgiving
54
- * version — `<Avatar>` waits for a non-null client before mounting.
55
- */
56
- readonly client: PipecatClient;
57
- }
58
- /** What every `createAvatar` returns. */
59
- export interface AvatarInstance {
60
- /** Unsubscribe from the client and remove everything from the mount. */
61
- destroy(): void;
62
- }
63
- /**
64
- * The shape a third-party avatar module exports, parameterised by its own
65
- * options so a caller passing them gets them checked. `AvatarFactory` bare is
66
- * the common denominator — the two options everyone shares.
67
- */
68
- export type AvatarFactory<O extends AvatarOptions = AvatarOptions> = (options: O) => AvatarInstance;
69
- /**
70
- * What a mounted avatar answers to — the one *optional* export beside
71
- * `createAvatar`.
72
- *
73
- * A page that drives an avatar has a problem an ordinary consumer does not.
74
- * The wire's action id is open and an unknown one is ignored in silence
75
- * (docs/contract-wire.md § Action), which is right for a protocol and useless
76
- * for a control surface: a button per name cannot tell "this face has no such
77
- * motion" from "nothing happened". This is the avatar answering that question
78
- * for a driving UI, and nothing else reads it — `createAvatar` does not take
79
- * it, the library never consults it, and an avatar that omits it is fully
80
- * conforming. It is a *declaration*: nobody verifies it, so a list that has
81
- * drifted from the drawing is a bug in the avatar and not something the
82
- * library can catch.
83
- */
84
- export interface AvatarSupport {
85
- /**
86
- * Every action id this avatar answers to, the two required ones included.
87
- * An id absent from here is a documented no-op, never an error.
88
- */
89
- readonly actions: readonly string[];
90
- /**
91
- * Which of the nine states this avatar draws *distinguishably*.
92
- *
93
- * Every avatar must accept all nine; a renderer that draws `CANT_HEAR` as
94
- * ordinary listening is conforming (docs/contract-behavior.md). So this is
95
- * the narrower claim — which of them a reviewer can expect to tell apart on
96
- * the face — and omitting it claims all nine, which is what every avatar in
97
- * this repo does.
98
- */
99
- readonly states?: readonly BehaviorStateId[];
100
- }
101
- /** The bundled avatars' own `supports` value is in `supports.ts`, not here: it
102
- * is a value, so this module's `peep` import would follow it into the bundle of
103
- * anything that read it — including the canvas avatars, which draw no SVG face. */
104
- /**
105
- * Options for the bundled SVG avatars — ours alone; nothing outside this
106
- * package reads them.
107
- *
108
- * `face` is a value, not a name: a name needs a table, and a table needs every
109
- * face imported to answer any lookup. Import the one you want and the other two
110
- * never enter your bundle.
111
- *
112
- * import { createAvatar } from "@voqalize/avatar";
113
- * import { wren } from "@voqalize/avatar/faces/wren";
114
- *
115
- * createAvatar({ mount, client, face: wren });
116
- */
117
- export interface SvgAvatarOptions extends AvatarOptions {
118
- /** Defaults to `peep`, the face this entry point already carries. */
119
- readonly face?: Face;
120
- /** Palette for that face. Its keys are the face's own; see `THEME` in its
121
- * module, and CLAUDE.md on why `peep` has exactly one. */
122
- readonly theme?: FaceTheme;
123
- /** Viseme amplitude, 0..2. `1` is as authored. */
124
- readonly mouthGain?: Gain;
125
- /** Gesture-clip amplitude, 0..2. */
126
- readonly gestureGain?: Gain;
127
- /** Idle/liveness amplitude, 0..2. Low by design — see CLAUDE.md. */
128
- readonly motionGain?: Gain;
129
- /** Render the frame-edge hand at all. Default true. */
130
- readonly hand?: boolean;
131
- /** `1` puts it on the viewer's right, `-1` the other side. */
132
- readonly handSide?: HandSide;
133
- }
134
- export declare function createAvatar(options: SvgAvatarOptions): AvatarInstance;
135
- //# sourceMappingURL=createAvatar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createAvatar.d.ts","sourceRoot":"","sources":["../client/createAvatar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAChC;AAED,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAC/D,CAAC,OAAO,EAAE,CAAC,KAAK,cAAc,CAAC;AAEjC;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CAC9C;AAED;;oFAEoF;AAEpF;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,qEAAqE;IACrE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB;8DAC0D;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAC1B,oCAAoC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;IAC3B,uDAAuD;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CAC9B;AAID,wBAAgB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,cAAc,CA4BtE"}
@@ -1,75 +0,0 @@
1
- /**
2
- * `createAvatar` — the entire public surface of an avatar.
3
- *
4
- * const avatar = createAvatar({ mount: el, client: pipecatClient });
5
- * // …
6
- * avatar.destroy();
7
- *
8
- * An avatar is an embodiment of a `PipecatClient`. You hand it a mount and a
9
- * live client; it subscribes and reacts. There is nothing else: no methods to
10
- * drive it, no callbacks to observe it, no state to read back. Everything it
11
- * needs to know is already on the wire — Pipecat's factual lifecycle events
12
- * plus the avatar server-message envelope (docs/contract-wire.md).
13
- *
14
- * ## This is also the extension point
15
- *
16
- * There is no registry, no loader and no plug-in system. **You add an avatar by
17
- * publishing a module that exports `createAvatar` with this signature**, and
18
- * importing yours instead of ours:
19
- *
20
- * import { createAvatar } from "@acme/our-mascot";
21
- *
22
- * That is the whole mechanism, and it is deliberate. A registry would make us
23
- * own resolution, versioning and asset paths for code we have never seen; a
24
- * renderer interface would make us commit to a second public contract before we
25
- * know what the second renderer actually needs. An ES module export we get for
26
- * free from the platform.
27
- *
28
- * Everything past `mount` and `client` belongs to the implementation. Ours takes
29
- * `SvgAvatarOptions`; yours takes whatever it likes, and `AvatarFactory<O>` is
30
- * generic so the caller still gets your options checked.
31
- *
32
- * ## What an implementation owes the caller
33
- *
34
- * Only that `destroy()` leaves the mount as it found it and unsubscribes from
35
- * the client. Not returning to rest, not honouring every action, not even
36
- * having a mouth — a handless, mouthless avatar that only changes colour is a
37
- * conforming avatar. The obligations that *matter* are perceptual, not typed,
38
- * and they live in docs/contract-behavior.md.
39
- */
40
- import { createAvatar as createSvgWidget } from "../src/avatar.js";
41
- import { peep } from "../src/face-peep.js";
42
- import { AvatarClient } from "./AvatarClient.js";
43
- const GAINS = ["mouthGain", "gestureGain", "motionGain"];
44
- export function createAvatar(options) {
45
- const { mount, client, face = peep, ...rest } = options;
46
- if (!mount)
47
- throw new TypeError("createAvatar: `mount` is required");
48
- if (!client)
49
- throw new TypeError("createAvatar: `client` is required");
50
- // The one range TypeScript cannot state, checked where it is cheapest to fix:
51
- // at construction, by the caller who typed the number.
52
- for (const key of GAINS) {
53
- const g = rest[key];
54
- if (g === undefined)
55
- continue;
56
- if (!Number.isFinite(g) || g < 0 || g > 2) {
57
- throw new RangeError(`createAvatar: \`${key}\` must be 0..2, got ${String(g)}`);
58
- }
59
- }
60
- const widget = createSvgWidget({ mount, face, ...rest });
61
- const driver = new AvatarClient(widget);
62
- const detach = driver.attach(client);
63
- let destroyed = false;
64
- return {
65
- destroy() {
66
- if (destroyed)
67
- return;
68
- destroyed = true;
69
- detach();
70
- driver.destroy();
71
- widget.destroy();
72
- },
73
- };
74
- }
75
- //# sourceMappingURL=createAvatar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createAvatar.js","sourceRoot":"","sources":["../client/createAvatar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAqGjD,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,YAAY,CAAU,CAAC;AAElE,MAAM,UAAU,YAAY,CAAC,OAAyB;IACpD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACxD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;IACrE,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;IACvE,8EAA8E;IAC9E,uDAAuD;IACvD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,KAAK,SAAS;YAAE,SAAS;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,UAAU,CAAC,mBAAmB,GAAG,wBAAwB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAErC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,OAAO;QACL,OAAO;YACL,IAAI,SAAS;gBAAE,OAAO;YACtB,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,QAAQ,GACT,MAAM,mBAAmB,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
@@ -1,34 +0,0 @@
1
- /**
2
- * `@voqalize/avatar/internal` — the parts of our own implementation that
3
- * another avatar can build on.
4
- *
5
- * **Nothing here is covered by semver.** Names, signatures and semantics move
6
- * in any minor release. It is exported because an avatar author who wants the
7
- * SVG mixer, the behavior catalog or — most usefully — the viseme clock should
8
- * not have to vendor a copy, not because any of it is an interface. The
9
- * interface is `createAvatar`, and it is one function.
10
- *
11
- * The one thing here worth reaching for on purpose is `VisemeTrack`: someone
12
- * has to turn a cue array plus a clock into "which mouth shape is on screen
13
- * right now", every renderer needs exactly that, and it is a solved problem.
14
- *
15
- * const track = new VisemeTrack();
16
- * track.start(cues, () => performance.now() - t0);
17
- * // per frame:
18
- * const s = track.sample(); // { letter: "D", intensity: 1, phone: "OW" } | null
19
- *
20
- * `docs/internal-rig.md` describes the pose-channel model the bundled SVG
21
- * renderer uses internally. It is *not* the seam to implement — see
22
- * docs/design-avatar-interface.md.
23
- */
24
- export { createAvatar as createSvgAvatar, REST, CHANNELS, RANGE, STATES, STATE_NAMES, ACTIONS, ACTION_IDS, GAZE_NAMES, GAZE_TARGETS, EMOTION_NAMES, VisemeTrack, VISEME_LETTERS, VISEME_SHAPES, SILENT, LEAD_MS, SHOULDER_TILT, INTERNAL_CLIPS, ClipPlayer, TAU, clamp, approach, makeParams, emotionPose, avatarFrame, createSvgRig, shapeFor, JAW_OF_OPEN, normalizeCues, textToCues, ARPABET_TO_VISEME, AZURE_VISEME_TO_LETTER, } from "../src/avatar.js";
25
- export type { Clip, ClipSample, AvatarApi, AvatarStateName, AvatarActionId, AvatarGazeName, AvatarEmotionName, AvatarAction, AvatarMeta, VisemeLetter, Cue, PoseChannel, PoseOverrides, CreateAvatarOptions as CreateSvgAvatarOptions, } from "../src/avatar.js";
26
- export type { AvatarFrame, AvatarRig, AvatarRigFactory, HandFrame, RigPose, } from "../src/rig.js";
27
- export { BEHAVIOR_STATE_IDS, BEHAVIOR_ACTIONS, BEHAVIOR_ACTION_IDS, WIRE_ACTION_TO_BEHAVIOR, } from "../src/behavior.js";
28
- export type { BehaviorStateId, BehaviorActionId } from "../src/behavior.js";
29
- export { isAvatarMessage, CORE_ACTION_IDS } from "./types.js";
30
- export type { AvatarSupport } from "./createAvatar.js";
31
- export { AvatarClient } from "./AvatarClient.js";
32
- export type { AvatarCommand, AvatarCue, AvatarCuesCmd, CoreActionId, } from "./types.js";
33
- export type { AvatarClientOptions, AvatarDriver, AvatarPresenceState } from "./AvatarClient.js";
34
- //# sourceMappingURL=internal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../client/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAIL,YAAY,IAAI,eAAe,EAG/B,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,MAAM,EACN,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EAEb,WAAW,EACX,cAAc,EACd,aAAa,EACb,MAAM,EACN,OAAO,EAEP,aAAa,EAMb,cAAc,EACd,UAAU,EACV,GAAG,EACH,KAAK,EACL,QAAQ,EAKR,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,EAIR,WAAW,EACX,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,IAAI,EACJ,UAAU,EACV,SAAS,EACT,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,GAAG,EACH,WAAW,EACX,aAAa,EACb,mBAAmB,IAAI,sBAAsB,GAC9C,MAAM,kBAAkB,CAAC;AAK1B,YAAY,EACV,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,OAAO,GACR,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAM9D,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/internal.js DELETED
@@ -1,56 +0,0 @@
1
- /**
2
- * `@voqalize/avatar/internal` — the parts of our own implementation that
3
- * another avatar can build on.
4
- *
5
- * **Nothing here is covered by semver.** Names, signatures and semantics move
6
- * in any minor release. It is exported because an avatar author who wants the
7
- * SVG mixer, the behavior catalog or — most usefully — the viseme clock should
8
- * not have to vendor a copy, not because any of it is an interface. The
9
- * interface is `createAvatar`, and it is one function.
10
- *
11
- * The one thing here worth reaching for on purpose is `VisemeTrack`: someone
12
- * has to turn a cue array plus a clock into "which mouth shape is on screen
13
- * right now", every renderer needs exactly that, and it is a solved problem.
14
- *
15
- * const track = new VisemeTrack();
16
- * track.start(cues, () => performance.now() - t0);
17
- * // per frame:
18
- * const s = track.sample(); // { letter: "D", intensity: 1, phone: "OW" } | null
19
- *
20
- * `docs/internal-rig.md` describes the pose-channel model the bundled SVG
21
- * renderer uses internally. It is *not* the seam to implement — see
22
- * docs/design-avatar-interface.md.
23
- */
24
- export {
25
- // The bundled SVG widget. Not the faces: importing one from here would put
26
- // all three in every bundle that wanted the viseme clock.
27
- // `@voqalize/avatar/faces/<name>` is where a face comes from.
28
- createAvatar as createSvgAvatar,
29
- // The pose space a custom `rig` is handed on every frame, and the rests it is
30
- // measured against.
31
- REST, CHANNELS, RANGE, STATES, STATE_NAMES, ACTIONS, ACTION_IDS, GAZE_NAMES, GAZE_TARGETS, EMOTION_NAMES,
32
- // The viseme clock and its tables.
33
- VisemeTrack, VISEME_LETTERS, VISEME_SHAPES, SILENT, LEAD_MS,
34
- // The body's share of a held tilt, for a page driving a rig by hand.
35
- SHOULDER_TILT,
36
- // Stepping a gesture by hand: the catalogue, the player, and the smoothing
37
- // law the mixer puts between a clip's keyframes and the face. A filmstrip
38
- // instrument needs all three, and the one thing it must not do is fork the
39
- // smoothing — that is the part a keyframe is authored against
40
- // (docs/internal-mixer.md § Smoothing).
41
- INTERNAL_CLIPS, ClipPlayer, TAU, clamp, approach,
42
- // Posing a face directly, with no mixer, no clock and no client above it —
43
- // what a pose sheet or a rig-conformance page does. `makeParams` fills the
44
- // rests around a handful of overrides, `emotionPose` names a familiar set of
45
- // them, `avatarFrame` wraps the result and `createSvgRig(face)` draws it.
46
- makeParams, emotionPose, avatarFrame, createSvgRig, shapeFor,
47
- // The one number that says how far the mandible falls for a given aperture.
48
- // Anything composing a mouth pose without `shapeFor` — a retarget, a driver —
49
- // needs it, and the amplitudes behind the lips are calibrated at it.
50
- JAW_OF_OPEN, normalizeCues, textToCues, ARPABET_TO_VISEME, AZURE_VISEME_TO_LETTER, } from "../src/avatar.js";
51
- export { BEHAVIOR_STATE_IDS, BEHAVIOR_ACTIONS, BEHAVIOR_ACTION_IDS, WIRE_ACTION_TO_BEHAVIOR, } from "../src/behavior.js";
52
- export { isAvatarMessage, CORE_ACTION_IDS } from "./types.js";
53
- // A renderer may reuse the one lifecycle/precedence ladder without gaining a
54
- // second public avatar interface.
55
- export { AvatarClient } from "./AvatarClient.js";
56
- //# sourceMappingURL=internal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../client/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO;AACL,2EAA2E;AAC3E,0DAA0D;AAC1D,8DAA8D;AAC9D,YAAY,IAAI,eAAe;AAC/B,8EAA8E;AAC9E,oBAAoB;AACpB,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,MAAM,EACN,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa;AACb,mCAAmC;AACnC,WAAW,EACX,cAAc,EACd,aAAa,EACb,MAAM,EACN,OAAO;AACP,qEAAqE;AACrE,aAAa;AACb,2EAA2E;AAC3E,0EAA0E;AAC1E,2EAA2E;AAC3E,8DAA8D;AAC9D,wCAAwC;AACxC,cAAc,EACd,UAAU,EACV,GAAG,EACH,KAAK,EACL,QAAQ;AACR,2EAA2E;AAC3E,2EAA2E;AAC3E,6EAA6E;AAC7E,0EAA0E;AAC1E,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,QAAQ;AACR,4EAA4E;AAC5E,8EAA8E;AAC9E,qEAAqE;AACrE,WAAW,EACX,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AA8B1B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAO9D,6EAA6E;AAC7E,kCAAkC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/playout.d.ts DELETED
@@ -1,42 +0,0 @@
1
- /**
2
- * When the bot's audio actually begins, heard on the track the browser plays.
3
- *
4
- * `BotStartedSpeaking` and the audio reach the browser by different roads —
5
- * the event on the data channel, the sound over RTP and through a jitter
6
- * buffer — so the event is a statement about *which* audio is starting and
7
- * not about when anyone hears it. Measured on two stacks, the event arrived
8
- * 57 ms after the first sample on one and 160 ms before it on the other: the
9
- * mouth lagged the voice on the first and ran ahead of it on the second, and
10
- * no constant corrects both. So the turn clock is anchored to the sound.
11
- *
12
- * What makes "the sound began" observable is that between turns the decoded
13
- * track is exact digital zero — Opus decodes silence to silence — so onset is
14
- * the first sample off zero, not a speech detector's guess at a threshold. That
15
- * matters: cue `t: 0` is the first sample the TTS produced, lead-in included,
16
- * and a detector keyed to *speech* would anchor 20-50 ms into the lead-in.
17
- *
18
- * What this probe hears is the sound entering the page's audio graph, not
19
- * leaving the speaker. For a wired speaker the difference is about what the
20
- * compositor and display add to the picture, and the two cancel. A Bluetooth
21
- * headset adds 150-250 ms that nothing on the picture side matches, so the
22
- * probe also reports the device latency the browser admits to, and the
23
- * client delays the mouth by the excess (`AvatarClient.ts`).
24
- */
25
- export interface PlayoutProbe {
26
- /**
27
- * Where the bot's current sound began, on the caller's `now()` clock.
28
- * `null`: the track is silent right now. `undefined`: this probe cannot say —
29
- * the track has been sounding for longer than it can look back, or the
30
- * audio graph is not running.
31
- */
32
- onset(): number | null | undefined;
33
- /** The output device's latency as this context reports it, in ms; 0 when it
34
- * will not say. The probe shares the device the call's audio plays on. */
35
- outputLatencyMs?(): number;
36
- /** Ask a suspended graph to run. A browser that needs a gesture for it
37
- * ignores the request outside one, so this is safe to call at any time. */
38
- resume?(): void;
39
- dispose(): void;
40
- }
41
- export declare function createPlayoutProbe(track: MediaStreamTrack, now: () => number): PlayoutProbe | null;
42
- //# sourceMappingURL=playout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"playout.d.ts","sourceRoot":"","sources":["../client/playout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,KAAK,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC;8EAC0E;IAC1E,eAAe,CAAC,IAAI,MAAM,CAAC;IAC3B;+EAC2E;IAC3E,MAAM,CAAC,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,IAAI,CAAC;CACjB;AASD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,MAAM,GAAG,YAAY,GAAG,IAAI,CA6ClG"}
package/dist/playout.js DELETED
@@ -1,85 +0,0 @@
1
- /**
2
- * When the bot's audio actually begins, heard on the track the browser plays.
3
- *
4
- * `BotStartedSpeaking` and the audio reach the browser by different roads —
5
- * the event on the data channel, the sound over RTP and through a jitter
6
- * buffer — so the event is a statement about *which* audio is starting and
7
- * not about when anyone hears it. Measured on two stacks, the event arrived
8
- * 57 ms after the first sample on one and 160 ms before it on the other: the
9
- * mouth lagged the voice on the first and ran ahead of it on the second, and
10
- * no constant corrects both. So the turn clock is anchored to the sound.
11
- *
12
- * What makes "the sound began" observable is that between turns the decoded
13
- * track is exact digital zero — Opus decodes silence to silence — so onset is
14
- * the first sample off zero, not a speech detector's guess at a threshold. That
15
- * matters: cue `t: 0` is the first sample the TTS produced, lead-in included,
16
- * and a detector keyed to *speech* would anchor 20-50 ms into the lead-in.
17
- *
18
- * What this probe hears is the sound entering the page's audio graph, not
19
- * leaving the speaker. For a wired speaker the difference is about what the
20
- * compositor and display add to the picture, and the two cancel. A Bluetooth
21
- * headset adds 150-250 ms that nothing on the picture side matches, so the
22
- * probe also reports the device latency the browser admits to, and the
23
- * client delays the mouth by the excess (`AvatarClient.ts`).
24
- */
25
- /** 8192 samples is 170 ms at 48 kHz: past the 57 ms the sound has been seen to
26
- * lead the event by, with room for a slower network. */
27
- const WINDOW = 8192;
28
- /** -80 dBFS. The gaps between turns are exact zero; this only keeps a
29
- * denormal from reading as speech. */
30
- const FLOOR = 1e-4;
31
- export function createPlayoutProbe(track, now) {
32
- const Ctx = globalThis.AudioContext;
33
- if (!Ctx)
34
- return null;
35
- let ctx;
36
- let source;
37
- let analyser;
38
- try {
39
- ctx = new Ctx();
40
- source = ctx.createMediaStreamSource(new MediaStream([track]));
41
- analyser = ctx.createAnalyser();
42
- analyser.fftSize = WINDOW;
43
- source.connect(analyser);
44
- }
45
- catch {
46
- return null;
47
- }
48
- // A context made after the user's connect click is allowed to run; one that
49
- // is not simply answers `undefined`, and the event anchors the turn.
50
- ctx.resume().catch(() => { });
51
- const buf = new Float32Array(WINDOW);
52
- return {
53
- onset() {
54
- if (ctx.state !== "running")
55
- return undefined;
56
- analyser.getFloatTimeDomainData(buf);
57
- const t = now();
58
- let first = -1;
59
- for (let i = 0; i < buf.length; i++) {
60
- if (Math.abs(buf[i]) > FLOOR) {
61
- first = i;
62
- break;
63
- }
64
- }
65
- if (first < 0)
66
- return null;
67
- if (first === 0)
68
- return undefined;
69
- return t - ((buf.length - first) / ctx.sampleRate) * 1000;
70
- },
71
- outputLatencyMs() {
72
- const s = ctx.outputLatency;
73
- return typeof s === "number" && Number.isFinite(s) ? s * 1000 : 0;
74
- },
75
- resume() {
76
- if (ctx.state === "suspended")
77
- ctx.resume().catch(() => { });
78
- },
79
- dispose() {
80
- source.disconnect();
81
- ctx.close().catch(() => { });
82
- },
83
- };
84
- }
85
- //# sourceMappingURL=playout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"playout.js","sourceRoot":"","sources":["../client/playout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAmBH;wDACwD;AACxD,MAAM,MAAM,GAAG,IAAI,CAAC;AACpB;sCACsC;AACtC,MAAM,KAAK,GAAG,IAAI,CAAC;AAEnB,MAAM,UAAU,kBAAkB,CAAC,KAAuB,EAAE,GAAiB;IAC3E,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,GAAiB,CAAC;IACtB,IAAI,MAAkC,CAAC;IACvC,IAAI,QAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,CAAC,uBAAuB,CAAC,IAAI,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/D,QAAQ,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;QAChC,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC;QAC1B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,4EAA4E;IAC5E,qEAAqE;IACrE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IAErC,OAAO;QACL,KAAK;YACH,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YAC9C,QAAQ,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;YAChB,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,GAAG,KAAK,EAAE,CAAC;oBAAC,KAAK,GAAG,CAAC,CAAC;oBAAC,MAAM;gBAAC,CAAC;YACtD,CAAC;YACD,IAAI,KAAK,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC3B,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAC5D,CAAC;QACD,eAAe;YACb,MAAM,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC;YAC5B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,MAAM;YACJ,IAAI,GAAG,CAAC,KAAK,KAAK,WAAW;gBAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO;YACL,MAAM,CAAC,UAAU,EAAE,CAAC;YACpB,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9B,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../client/react.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC"}
package/dist/react.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../client/react.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAoB,MAAM,aAAa,CAAC"}
@@ -1,19 +0,0 @@
1
- /**
2
- * `supports` for every avatar this package ships.
3
- *
4
- * It is one constant and one file because they are one renderer: every avatar
5
- * mounts the same mixer with the same clip library, so a second list would be
6
- * the same list with a second chance to be wrong. It is not in
7
- * `createAvatar.ts`, where the type is documented, because a value is imported
8
- * for real — reading it from there would pull `peep`'s drawing into every
9
- * consumer's bundle.
10
- *
11
- * The two required ids first, then this renderer's own catalogue. `ACTION_IDS`
12
- * already carries `RESPONSE_INTERRUPTED` as this renderer's shape for it, so
13
- * the join dedupes rather than concatenating, and `ACKNOWLEDGE` is the one name
14
- * here with no clip behind it because `action()` resolves it on the floor
15
- * (docs/internal-mixer.md § Actions).
16
- */
17
- import type { AvatarSupport } from "./createAvatar.js";
18
- export declare const supports: AvatarSupport;
19
- //# sourceMappingURL=supports.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supports.d.ts","sourceRoot":"","sources":["../client/supports.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,eAAO,MAAM,QAAQ,EAAE,aAKrB,CAAC"}
package/dist/supports.js DELETED
@@ -1,25 +0,0 @@
1
- /**
2
- * `supports` for every avatar this package ships.
3
- *
4
- * It is one constant and one file because they are one renderer: every avatar
5
- * mounts the same mixer with the same clip library, so a second list would be
6
- * the same list with a second chance to be wrong. It is not in
7
- * `createAvatar.ts`, where the type is documented, because a value is imported
8
- * for real — reading it from there would pull `peep`'s drawing into every
9
- * consumer's bundle.
10
- *
11
- * The two required ids first, then this renderer's own catalogue. `ACTION_IDS`
12
- * already carries `RESPONSE_INTERRUPTED` as this renderer's shape for it, so
13
- * the join dedupes rather than concatenating, and `ACKNOWLEDGE` is the one name
14
- * here with no clip behind it because `action()` resolves it on the floor
15
- * (docs/internal-mixer.md § Actions).
16
- */
17
- import { ACTION_IDS } from "../src/avatar.js";
18
- import { CORE_ACTION_IDS } from "./types.js";
19
- export const supports = Object.freeze({
20
- actions: Object.freeze([
21
- ...CORE_ACTION_IDS,
22
- ...ACTION_IDS.filter((id) => !CORE_ACTION_IDS.includes(id)),
23
- ]),
24
- });
25
- //# sourceMappingURL=supports.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supports.js","sourceRoot":"","sources":["../client/supports.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,CAAC,MAAM,QAAQ,GAAkB,MAAM,CAAC,MAAM,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,GAAG,eAAe;QAClB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAE,eAAqC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;KACnF,CAAC;CACH,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- export declare const ASSETS: Readonly<{
2
- tara: string;
3
- tushar: string;
4
- tanya: string;
5
- tess: string;
6
- tanvi: string;
7
- }>;
8
- /** Every compiled character, in build order. */
9
- export type CharacterName = keyof typeof ASSETS;
10
- //# sourceMappingURL=assets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../client/three/assets.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,MAAM;;;;;;EAMjB,CAAC;AAEH,gDAAgD;AAChD,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,MAAM,CAAC"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Every compiled character as one table — for a page that enumerates them.
3
- *
4
- * Each URL lives in its own module (`tara-asset.ts` and its siblings) and this
5
- * file only gathers them, because a bundler emits assets per module: anything
6
- * importing *this* ships every GLB, which is right for a rig instrument that
7
- * switches between characters and wrong for a consumer who mounted one.
8
- * So the character modules never import this — they import their own — and the
9
- * only reader is `/internal/three`, a separate entry point that ships nothing.
10
- */
11
- import { TANYA_GLB } from "./tanya-asset.js";
12
- import { TANVI_GLB } from "./tanvi-asset.js";
13
- import { TESS_GLB } from "./tess-asset.js";
14
- import { TARA_GLB } from "./tara-asset.js";
15
- import { TUSHAR_GLB } from "./tushar-asset.js";
16
- export const ASSETS = Object.freeze({
17
- tara: TARA_GLB,
18
- tushar: TUSHAR_GLB,
19
- tanya: TANYA_GLB,
20
- tess: TESS_GLB,
21
- tanvi: TANVI_GLB,
22
- });
23
- //# sourceMappingURL=assets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../client/three/assets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,SAAS;CACjB,CAAC,CAAC"}
@@ -1,17 +0,0 @@
1
- /** Measurable limits for one 3-D avatar at its shipping surface. */
2
- export declare const SHIPPING_SURFACE: Readonly<{
3
- cssWidth: 400;
4
- cssHeight: 300;
5
- maxDevicePixelRatio: 2;
6
- }>;
7
- /** Keep the physical drawing buffer inside the shipping ceiling at any mount size. */
8
- export declare function pixelRatioFor(width: number, height: number, devicePixelRatio: number): number;
9
- /** Crossing one of these is a failed asset/runtime review, not a suggestion. */
10
- export declare const HARD_BUDGET: Readonly<{
11
- assetBytes: number;
12
- triangles: 60000;
13
- drawCalls: 30;
14
- bones: 40;
15
- morphTargets: 45;
16
- }>;
17
- //# sourceMappingURL=budgets.d.ts.map