@voqalize/avatar 0.2.2 → 0.4.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.
- package/LICENSE +21 -661
- package/LICENSE-CC-BY-4.0 +396 -0
- package/README.md +191 -662
- package/assets/README.md +48 -0
- package/assets/tanya.glb +0 -0
- package/assets/tara.glb +0 -0
- package/assets/tushar.glb +0 -0
- package/client/Avatar.tsx +57 -0
- package/client/AvatarClient.ts +818 -0
- package/client/arjun.ts +26 -0
- package/client/createAvatar.ts +177 -0
- package/client/createCanvasAvatar.ts +72 -0
- package/client/index.ts +44 -0
- package/client/internal.ts +108 -0
- package/client/interviewer-female.ts +4 -0
- package/client/interviewer-male.ts +4 -0
- package/client/ishita.ts +26 -0
- package/client/kabir.ts +26 -0
- package/client/meera.ts +26 -0
- package/client/naina.ts +26 -0
- package/client/playout.ts +95 -0
- package/client/professional-female-a.ts +4 -0
- package/client/professional-female-b.ts +4 -0
- package/client/professional-male-a.ts +4 -0
- package/client/professional-male-b.ts +4 -0
- package/client/react.ts +13 -0
- package/client/supports.ts +28 -0
- package/client/three/assets.ts +24 -0
- package/client/three/budgets.ts +27 -0
- package/client/three/holds.ts +64 -0
- package/client/three/internal.ts +54 -0
- package/client/three/motion-limits.json +116 -0
- package/client/three/sequences.ts +281 -0
- package/client/three/tanya.ts +69 -0
- package/client/three/tara-rig.ts +1562 -0
- package/client/three/tara.ts +76 -0
- package/client/three/tushar.ts +65 -0
- package/client/types.ts +235 -0
- package/client/useAvatar.ts +74 -0
- package/client/vikram.ts +26 -0
- package/dist/Avatar.d.ts +44 -0
- package/dist/Avatar.d.ts.map +1 -0
- package/{client/dist → dist}/Avatar.js +2 -2
- package/dist/Avatar.js.map +1 -0
- package/dist/AvatarClient.d.ts +274 -0
- package/dist/AvatarClient.d.ts.map +1 -0
- package/dist/AvatarClient.js +712 -0
- package/dist/AvatarClient.js.map +1 -0
- package/dist/arjun.d.ts +7 -0
- package/dist/arjun.d.ts.map +1 -0
- package/dist/arjun.js +20 -0
- package/dist/arjun.js.map +1 -0
- package/dist/createAvatar.d.ts +135 -0
- package/dist/createAvatar.d.ts.map +1 -0
- package/dist/createAvatar.js +75 -0
- package/dist/createAvatar.js.map +1 -0
- package/dist/createCanvasAvatar.d.ts +22 -0
- package/dist/createCanvasAvatar.d.ts.map +1 -0
- package/dist/createCanvasAvatar.js +47 -0
- package/dist/createCanvasAvatar.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +34 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +41 -0
- package/dist/internal.js.map +1 -0
- package/dist/interviewer-female.d.ts +4 -0
- package/dist/interviewer-female.d.ts.map +1 -0
- package/dist/interviewer-female.js +3 -0
- package/dist/interviewer-female.js.map +1 -0
- package/dist/interviewer-male.d.ts +4 -0
- package/dist/interviewer-male.d.ts.map +1 -0
- package/dist/interviewer-male.js +3 -0
- package/dist/interviewer-male.js.map +1 -0
- package/dist/ishita.d.ts +7 -0
- package/dist/ishita.d.ts.map +1 -0
- package/dist/ishita.js +20 -0
- package/dist/ishita.js.map +1 -0
- package/dist/kabir.d.ts +7 -0
- package/dist/kabir.d.ts.map +1 -0
- package/dist/kabir.js +20 -0
- package/dist/kabir.js.map +1 -0
- package/dist/meera.d.ts +7 -0
- package/dist/meera.d.ts.map +1 -0
- package/dist/meera.js +20 -0
- package/dist/meera.js.map +1 -0
- package/dist/naina.d.ts +7 -0
- package/dist/naina.d.ts.map +1 -0
- package/dist/naina.js +20 -0
- package/dist/naina.js.map +1 -0
- package/dist/playout.d.ts +42 -0
- package/dist/playout.d.ts.map +1 -0
- package/dist/playout.js +85 -0
- package/dist/playout.js.map +1 -0
- package/dist/professional-female-a.d.ts +4 -0
- package/dist/professional-female-a.d.ts.map +1 -0
- package/dist/professional-female-a.js +3 -0
- package/dist/professional-female-a.js.map +1 -0
- package/dist/professional-female-b.d.ts +4 -0
- package/dist/professional-female-b.d.ts.map +1 -0
- package/dist/professional-female-b.js +3 -0
- package/dist/professional-female-b.js.map +1 -0
- package/dist/professional-male-a.d.ts +4 -0
- package/dist/professional-male-a.d.ts.map +1 -0
- package/dist/professional-male-a.js +3 -0
- package/dist/professional-male-a.js.map +1 -0
- package/dist/professional-male-b.d.ts +4 -0
- package/dist/professional-male-b.d.ts.map +1 -0
- package/dist/professional-male-b.js +3 -0
- package/dist/professional-male-b.js.map +1 -0
- package/dist/react.d.ts +13 -0
- package/dist/react.d.ts.map +1 -0
- package/dist/react.js +13 -0
- package/dist/react.js.map +1 -0
- package/dist/supports.d.ts +20 -0
- package/dist/supports.d.ts.map +1 -0
- package/dist/supports.js +26 -0
- package/dist/supports.js.map +1 -0
- package/dist/three/assets.d.ts +24 -0
- package/dist/three/assets.d.ts.map +1 -0
- package/dist/three/assets.js +22 -0
- package/dist/three/assets.js.map +1 -0
- package/dist/three/budgets.d.ts +17 -0
- package/dist/three/budgets.d.ts.map +1 -0
- package/dist/three/budgets.js +21 -0
- package/dist/three/budgets.js.map +1 -0
- package/dist/three/holds.d.ts +33 -0
- package/dist/three/holds.d.ts.map +1 -0
- package/dist/three/holds.js +56 -0
- package/dist/three/holds.js.map +1 -0
- package/dist/three/internal.d.ts +52 -0
- package/dist/three/internal.d.ts.map +1 -0
- package/dist/three/internal.js +49 -0
- package/dist/three/internal.js.map +1 -0
- package/dist/three/motion-limits.json +116 -0
- package/dist/three/sequences.d.ts +71 -0
- package/dist/three/sequences.d.ts.map +1 -0
- package/dist/three/sequences.js +262 -0
- package/dist/three/sequences.js.map +1 -0
- package/dist/three/tanya.d.ts +35 -0
- package/dist/three/tanya.d.ts.map +1 -0
- package/dist/three/tanya.js +51 -0
- package/dist/three/tanya.js.map +1 -0
- package/dist/three/tara-rig.d.ts +403 -0
- package/dist/three/tara-rig.d.ts.map +1 -0
- package/dist/three/tara-rig.js +1500 -0
- package/dist/three/tara-rig.js.map +1 -0
- package/dist/three/tara.d.ts +35 -0
- package/dist/three/tara.d.ts.map +1 -0
- package/dist/three/tara.js +58 -0
- package/dist/three/tara.js.map +1 -0
- package/dist/three/tushar.d.ts +31 -0
- package/dist/three/tushar.d.ts.map +1 -0
- package/dist/three/tushar.js +47 -0
- package/dist/three/tushar.js.map +1 -0
- package/dist/types.d.ts +149 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +140 -0
- package/dist/types.js.map +1 -0
- package/dist/useAvatar.d.ts +39 -0
- package/dist/useAvatar.d.ts.map +1 -0
- package/dist/useAvatar.js +35 -0
- package/dist/useAvatar.js.map +1 -0
- package/dist/vikram.d.ts +7 -0
- package/dist/vikram.d.ts.map +1 -0
- package/dist/vikram.js +20 -0
- package/dist/vikram.js.map +1 -0
- package/package.json +110 -25
- package/src/avatar.d.ts +218 -120
- package/src/avatar.js +950 -213
- package/src/behavior.d.ts +42 -0
- package/src/behavior.js +114 -0
- package/src/camera.js +29 -0
- package/src/canvas/author/parts/eye.mjs +722 -0
- package/src/canvas/author/parts/hand.mjs +1156 -0
- package/src/canvas/author/parts/mouth.mjs +741 -0
- package/src/canvas/author/parts/nose.mjs +100 -0
- package/src/canvas/author/parts/skin-detail.mjs +67 -0
- package/src/canvas/author/path.mjs +283 -0
- package/src/canvas/author/rig.mjs +405 -0
- package/src/canvas/avatars/round/face.d.mts +3 -0
- package/src/canvas/avatars/round/face.mjs +1307 -0
- package/src/canvas/create-rig.d.ts +15 -0
- package/src/canvas/create-rig.js +100 -0
- package/src/canvas/data/img/professional-female-a-hair-back.webp +0 -0
- package/src/canvas/data/img/professional-female-a-hair-front.webp +0 -0
- package/src/canvas/data/img/professional-female-a-top-body.webp +0 -0
- package/src/canvas/data/img/professional-female-b-hair-back.webp +0 -0
- package/src/canvas/data/img/professional-female-b-hair-front.webp +0 -0
- package/src/canvas/data/img/professional-female-b-top-body.webp +0 -0
- package/src/canvas/data/img/professional-male-a-hair-back.webp +0 -0
- package/src/canvas/data/img/professional-male-a-hair-front.webp +0 -0
- package/src/canvas/data/img/professional-male-a-top-body.webp +0 -0
- package/src/canvas/data/img/professional-male-b-hair-back.webp +0 -0
- package/src/canvas/data/img/professional-male-b-hair-front.webp +0 -0
- package/src/canvas/data/img/professional-male-b-top-body.webp +0 -0
- package/src/canvas/data/img/round-m3-hair-back.webp +0 -0
- package/src/canvas/data/img/round-m3-hair-front.webp +0 -0
- package/src/canvas/data/img/round-m3-top-body.webp +0 -0
- package/src/canvas/data/img/round-w1-hair-back.webp +0 -0
- package/src/canvas/data/img/round-w1-hair-front.webp +0 -0
- package/src/canvas/data/img/round-w1-top-body.webp +0 -0
- package/src/canvas/data/interviewer-female.rig.json +1 -0
- package/src/canvas/data/interviewer-male.rig.json +1 -0
- package/src/canvas/data/professional-female-a.rig.json +1 -0
- package/src/canvas/data/professional-female-b.rig.json +1 -0
- package/src/canvas/data/professional-male-a.rig.json +1 -0
- package/src/canvas/data/professional-male-b.rig.json +1 -0
- package/src/canvas/src/live.js +508 -0
- package/src/canvas/src/render2d.js +218 -0
- package/src/canvas/src/rig.js +297 -0
- package/src/canvas/src/vocab.js +96 -0
- package/src/clips.js +18 -7
- package/src/conformance.js +119 -0
- package/src/emotions.js +8 -5
- package/src/face-core.js +27 -1
- package/src/face-myna.d.ts +7 -0
- package/src/face-myna.js +192 -131
- package/src/face-peep-control-plane.js +167 -0
- package/src/face-peep.d.ts +7 -0
- package/src/face-peep.js +274 -116
- package/src/face-wren.d.ts +7 -0
- package/src/face-wren.js +17 -19
- package/src/faces.d.ts +12 -0
- package/src/faces.js +53 -0
- package/src/gaze.js +434 -58
- package/src/hand.js +120 -91
- package/src/head.js +134 -0
- package/src/idle.js +227 -119
- package/src/interjections.js +200 -31
- package/src/params.js +8 -4
- package/src/perform.js +7 -9
- package/src/prosody.js +647 -0
- package/src/rig.d.ts +24 -0
- package/src/rig.js +32 -0
- package/src/speech-timing.js +23 -0
- package/src/visemes.js +110 -24
- package/client/dist/Avatar.d.ts +0 -27
- package/client/dist/Avatar.d.ts.map +0 -1
- package/client/dist/Avatar.js.map +0 -1
- package/client/dist/AvatarClient.d.ts +0 -139
- package/client/dist/AvatarClient.d.ts.map +0 -1
- package/client/dist/AvatarClient.js +0 -223
- package/client/dist/AvatarClient.js.map +0 -1
- package/client/dist/index.d.ts +0 -22
- package/client/dist/index.d.ts.map +0 -1
- package/client/dist/index.js +0 -22
- package/client/dist/index.js.map +0 -1
- package/client/dist/types.d.ts +0 -86
- package/client/dist/types.d.ts.map +0 -1
- package/client/dist/types.js +0 -31
- package/client/dist/types.js.map +0 -1
- package/client/dist/useAvatar.d.ts +0 -42
- package/client/dist/useAvatar.d.ts.map +0 -1
- package/client/dist/useAvatar.js +0 -51
- package/client/dist/useAvatar.js.map +0 -1
- package/client/src/Avatar.tsx +0 -33
- package/client/src/AvatarClient.ts +0 -270
- package/client/src/index.ts +0 -22
- package/client/src/types.ts +0 -104
- package/client/src/useAvatar.ts +0 -85
- package/docs/contract-avatar.md +0 -371
- package/docs/contract-protocol.md +0 -461
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tara-rig.js","sourceRoot":"","sources":["../../client/three/tara-rig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tara — the first 3-D character, as a complete `createAvatar` module.
|
|
3
|
+
*
|
|
4
|
+
* Structurally this is the canvas avatars' shape, one layer down: the mixer
|
|
5
|
+
* (`@voqalize/avatar/internal`) does states, layers, gaze, idle, blinks, clips
|
|
6
|
+
* and per-channel smoothing exactly as it does for every SVG face, and the only
|
|
7
|
+
* thing tara replaces is the renderer at the end of it. That is the whole
|
|
8
|
+
* argument for authoring her morph targets under the library's pose-channel
|
|
9
|
+
* names: nothing above this line knows there is a GPU involved, and every clip,
|
|
10
|
+
* viseme and co-articulation rule the SVG faces have works here unmodified.
|
|
11
|
+
*
|
|
12
|
+
* The Three.js import lives behind this module rather than in the barrel so an
|
|
13
|
+
* SVG or Canvas consumer never downloads it.
|
|
14
|
+
*/
|
|
15
|
+
import type { PipecatClient } from "@pipecat-ai/client-js";
|
|
16
|
+
export interface AvatarOptions {
|
|
17
|
+
readonly mount: HTMLElement;
|
|
18
|
+
readonly client: PipecatClient;
|
|
19
|
+
/** Viseme amplitude, 0..2. `1` is as authored. */
|
|
20
|
+
readonly mouthGain?: number;
|
|
21
|
+
/** Gesture-clip amplitude, 0..2. */
|
|
22
|
+
readonly gestureGain?: number;
|
|
23
|
+
/** Idle/liveness amplitude, 0..2. */
|
|
24
|
+
readonly motionGain?: number;
|
|
25
|
+
/** Fires when the GLB is in the scene — for a capture tool, not a consumer. */
|
|
26
|
+
readonly onReady?: () => void;
|
|
27
|
+
}
|
|
28
|
+
export interface AvatarInstance {
|
|
29
|
+
destroy(): void;
|
|
30
|
+
}
|
|
31
|
+
/** The optional driving-UI declaration; one list for all three characters
|
|
32
|
+
* (`sequences.ts`), because they are one rig. */
|
|
33
|
+
export declare const supports: import("../createAvatar.js").AvatarSupport;
|
|
34
|
+
export declare function createAvatar(options: AvatarOptions): AvatarInstance;
|
|
35
|
+
//# sourceMappingURL=tara.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tara.d.ts","sourceRoot":"","sources":["../../client/three/tara.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAO3D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,oCAAoC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,qCAAqC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAAG,OAAO,IAAI,IAAI,CAAC;CAAE;AAEpD;kDACkD;AAClD,eAAO,MAAM,QAAQ,4CAAmB,CAAC;AAEzC,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,CAkCnE"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tara — the first 3-D character, as a complete `createAvatar` module.
|
|
3
|
+
*
|
|
4
|
+
* Structurally this is the canvas avatars' shape, one layer down: the mixer
|
|
5
|
+
* (`@voqalize/avatar/internal`) does states, layers, gaze, idle, blinks, clips
|
|
6
|
+
* and per-channel smoothing exactly as it does for every SVG face, and the only
|
|
7
|
+
* thing tara replaces is the renderer at the end of it. That is the whole
|
|
8
|
+
* argument for authoring her morph targets under the library's pose-channel
|
|
9
|
+
* names: nothing above this line knows there is a GPU involved, and every clip,
|
|
10
|
+
* viseme and co-articulation rule the SVG faces have works here unmodified.
|
|
11
|
+
*
|
|
12
|
+
* The Three.js import lives behind this module rather than in the barrel so an
|
|
13
|
+
* SVG or Canvas consumer never downloads it.
|
|
14
|
+
*/
|
|
15
|
+
import { AvatarClient, createSvgAvatar } from "../internal.js";
|
|
16
|
+
import { BLENDER_ACTIONS, BLENDER_SEQUENCES, BLENDER_SUPPORTS } from "./sequences.js";
|
|
17
|
+
import { headHold } from "./holds.js";
|
|
18
|
+
import { createTaraRig, TARA_TUNING } from "./tara-rig.js";
|
|
19
|
+
/** The optional driving-UI declaration; one list for all three characters
|
|
20
|
+
* (`sequences.ts`), because they are one rig. */
|
|
21
|
+
export const supports = BLENDER_SUPPORTS;
|
|
22
|
+
export function createAvatar(options) {
|
|
23
|
+
const { mount, client, onReady, ...gains } = options;
|
|
24
|
+
if (!mount)
|
|
25
|
+
throw new TypeError("createAvatar: `mount` is required");
|
|
26
|
+
if (!client)
|
|
27
|
+
throw new TypeError("createAvatar: `client` is required");
|
|
28
|
+
const rigOptions = { onReady };
|
|
29
|
+
// `hand: false` disables the bundled SVG hand renderer only; the semantic
|
|
30
|
+
// hand frame still reaches the rig, which ignores it — tara has no arms, and
|
|
31
|
+
// that is the library's oldest standing constraint rather than an omission.
|
|
32
|
+
// `sequences` is what a server can address on *this* avatar beyond the two
|
|
33
|
+
// ids every avatar owes it — the three nod types the listening research
|
|
34
|
+
// separates, and a head shake sized for a rig whose pose unit is a degree.
|
|
35
|
+
// The wire's action id is open, so nothing here needed promoting; a server
|
|
36
|
+
// that does not know tara is mounted sends `ACKNOWLEDGE` and is never wrong.
|
|
37
|
+
// `actions` is the other half: her own shape for an id the mixer already has,
|
|
38
|
+
// whose shared keys land outside what it means on a head that turns in degrees.
|
|
39
|
+
const widget = createSvgAvatar({
|
|
40
|
+
mount, rig: createTaraRig, rigOptions, hand: false,
|
|
41
|
+
sequences: BLENDER_SEQUENCES, actions: BLENDER_ACTIONS, ...TARA_TUNING,
|
|
42
|
+
headHold: headHold("tara"), ...gains,
|
|
43
|
+
});
|
|
44
|
+
const driver = new AvatarClient(widget);
|
|
45
|
+
const detach = driver.attach(client);
|
|
46
|
+
let destroyed = false;
|
|
47
|
+
return {
|
|
48
|
+
destroy() {
|
|
49
|
+
if (destroyed)
|
|
50
|
+
return;
|
|
51
|
+
destroyed = true;
|
|
52
|
+
detach();
|
|
53
|
+
driver.destroy();
|
|
54
|
+
widget.destroy();
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=tara.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tara.js","sourceRoot":"","sources":["../../client/three/tara.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAkB3D;kDACkD;AAClD,MAAM,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AAEzC,MAAM,UAAU,YAAY,CAAC,OAAsB;IACjD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACrD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;IACrE,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;IAEvE,MAAM,UAAU,GAAmB,EAAE,OAAO,EAAE,CAAC;IAC/C,0EAA0E;IAC1E,6EAA6E;IAC7E,4EAA4E;IAC5E,2EAA2E;IAC3E,wEAAwE;IACxE,2EAA2E;IAC3E,2EAA2E;IAC3E,6EAA6E;IAC7E,8EAA8E;IAC9E,gFAAgF;IAChF,MAAM,MAAM,GAAG,eAAe,CAAC;QAC7B,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK;QAClD,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,WAAW;QACtE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK;KACrC,CAAC,CAAC;IACH,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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tushar — the second 3-D character, and deliberately a copy of `tara.ts`.
|
|
3
|
+
*
|
|
4
|
+
* His GLB is tara's scripts run with his landmarks and atlas layout in place of
|
|
5
|
+
* hers (`characters/tushar/`, whose README has the provenance and the commands),
|
|
6
|
+
* so the rig, the mixer, the sequences and her tuning are all hers, unmodified;
|
|
7
|
+
* the one seam is `TaraRigOptions.url`. What turns out to be hers rather than
|
|
8
|
+
* general is marked TARA-SPECIFIC where it lives, and generalised only once a
|
|
9
|
+
* third character agrees.
|
|
10
|
+
*/
|
|
11
|
+
import type { PipecatClient } from "@pipecat-ai/client-js";
|
|
12
|
+
export interface AvatarOptions {
|
|
13
|
+
readonly mount: HTMLElement;
|
|
14
|
+
readonly client: PipecatClient;
|
|
15
|
+
/** Viseme amplitude, 0..2. `1` is as authored. */
|
|
16
|
+
readonly mouthGain?: number;
|
|
17
|
+
/** Gesture-clip amplitude, 0..2. */
|
|
18
|
+
readonly gestureGain?: number;
|
|
19
|
+
/** Idle/liveness amplitude, 0..2. */
|
|
20
|
+
readonly motionGain?: number;
|
|
21
|
+
/** Fires when the GLB is in the scene — for a capture tool, not a consumer. */
|
|
22
|
+
readonly onReady?: () => void;
|
|
23
|
+
}
|
|
24
|
+
export interface AvatarInstance {
|
|
25
|
+
destroy(): void;
|
|
26
|
+
}
|
|
27
|
+
/** The optional driving-UI declaration; one list for all three characters
|
|
28
|
+
* (`sequences.ts`), because they are one rig. */
|
|
29
|
+
export declare const supports: import("../createAvatar.js").AvatarSupport;
|
|
30
|
+
export declare function createAvatar(options: AvatarOptions): AvatarInstance;
|
|
31
|
+
//# sourceMappingURL=tushar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tushar.d.ts","sourceRoot":"","sources":["../../client/three/tushar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAQ3D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,oCAAoC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,qCAAqC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAAG,OAAO,IAAI,IAAI,CAAC;CAAE;AAEpD;kDACkD;AAClD,eAAO,MAAM,QAAQ,4CAAmB,CAAC;AAEzC,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,CA0BnE"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tushar — the second 3-D character, and deliberately a copy of `tara.ts`.
|
|
3
|
+
*
|
|
4
|
+
* His GLB is tara's scripts run with his landmarks and atlas layout in place of
|
|
5
|
+
* hers (`characters/tushar/`, whose README has the provenance and the commands),
|
|
6
|
+
* so the rig, the mixer, the sequences and her tuning are all hers, unmodified;
|
|
7
|
+
* the one seam is `TaraRigOptions.url`. What turns out to be hers rather than
|
|
8
|
+
* general is marked TARA-SPECIFIC where it lives, and generalised only once a
|
|
9
|
+
* third character agrees.
|
|
10
|
+
*/
|
|
11
|
+
import { AvatarClient, createSvgAvatar } from "../internal.js";
|
|
12
|
+
import { ASSETS } from "./assets.js";
|
|
13
|
+
import { BLENDER_ACTIONS, BLENDER_SEQUENCES, BLENDER_SUPPORTS } from "./sequences.js";
|
|
14
|
+
import { headHold } from "./holds.js";
|
|
15
|
+
import { createTaraRig, TARA_TUNING } from "./tara-rig.js";
|
|
16
|
+
/** The optional driving-UI declaration; one list for all three characters
|
|
17
|
+
* (`sequences.ts`), because they are one rig. */
|
|
18
|
+
export const supports = BLENDER_SUPPORTS;
|
|
19
|
+
export function createAvatar(options) {
|
|
20
|
+
const { mount, client, onReady, ...gains } = options;
|
|
21
|
+
if (!mount)
|
|
22
|
+
throw new TypeError("createAvatar: `mount` is required");
|
|
23
|
+
if (!client)
|
|
24
|
+
throw new TypeError("createAvatar: `client` is required");
|
|
25
|
+
const rigOptions = { onReady, url: ASSETS.tushar };
|
|
26
|
+
// TARA-SPECIFIC, kept on purpose: `TARA_TUNING` (her mouth and motion gains)
|
|
27
|
+
// is the first thing to question if he reads wrong in a call.
|
|
28
|
+
const widget = createSvgAvatar({
|
|
29
|
+
mount, rig: createTaraRig, rigOptions, hand: false,
|
|
30
|
+
sequences: BLENDER_SEQUENCES, actions: BLENDER_ACTIONS, ...TARA_TUNING,
|
|
31
|
+
headHold: headHold("tushar"), ...gains,
|
|
32
|
+
});
|
|
33
|
+
const driver = new AvatarClient(widget);
|
|
34
|
+
const detach = driver.attach(client);
|
|
35
|
+
let destroyed = false;
|
|
36
|
+
return {
|
|
37
|
+
destroy() {
|
|
38
|
+
if (destroyed)
|
|
39
|
+
return;
|
|
40
|
+
destroyed = true;
|
|
41
|
+
detach();
|
|
42
|
+
driver.destroy();
|
|
43
|
+
widget.destroy();
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=tushar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tushar.js","sourceRoot":"","sources":["../../client/three/tushar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAkB3D;kDACkD;AAClD,MAAM,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AAEzC,MAAM,UAAU,YAAY,CAAC,OAAsB;IACjD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACrD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;IACrE,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;IAEvE,MAAM,UAAU,GAAmB,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACnE,6EAA6E;IAC7E,8DAA8D;IAC9D,MAAM,MAAM,GAAG,eAAe,CAAC;QAC7B,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK;QAClD,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,WAAW;QACtE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK;KACvC,CAAC,CAAC;IACH,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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* types.ts — the avatar wire vocabulary, client side.
|
|
3
|
+
*
|
|
4
|
+
* The binding definition is `docs/contract-wire.md`; this file is its
|
|
5
|
+
* TypeScript restatement and must not drift from it. The Python half of the
|
|
6
|
+
* same vocabulary is `packages/avatar-py/src/voqalize_avatar/messages.py` — the three are
|
|
7
|
+
* maintained together, and a command added to one without the others is
|
|
8
|
+
* incomplete.
|
|
9
|
+
*
|
|
10
|
+
* A server pushes these as RTVI `server-message`s under the envelope
|
|
11
|
+
* `{ type: "avatar", ...cmd-specific fields }`. {@link AvatarCommand} describes
|
|
12
|
+
* what rides inside that envelope; {@link isAvatarMessage} is the envelope
|
|
13
|
+
* itself, and is the only definition of "this message is for the avatar" the
|
|
14
|
+
* client has. There is no protocol version field — an unknown `cmd` is simply
|
|
15
|
+
* ignored, which is the whole forward-compatibility rule.
|
|
16
|
+
*/
|
|
17
|
+
import type { VisemeLetter } from "../src/avatar.js";
|
|
18
|
+
/** A viseme cue: `t` is a ms offset into the utterance's clock, `v` is a Rhubarb A–H (or X) letter. */
|
|
19
|
+
export interface AvatarCue {
|
|
20
|
+
t: number;
|
|
21
|
+
v: VisemeLetter;
|
|
22
|
+
/** 0..1 loudness. Absent means full. */
|
|
23
|
+
i?: number;
|
|
24
|
+
/**
|
|
25
|
+
* The phone being articulated under `v`, absent during silence.
|
|
26
|
+
*
|
|
27
|
+
* `v` is a nine-way projection of the recogniser's ~40 phones and the loss is
|
|
28
|
+
* concentrated — `B` alone absorbs IY, IH, T, D, CH, JH, TH, DH, S, Z, SH,
|
|
29
|
+
* ZH, N and Y — so a renderer with a mouth for "tongue between the teeth"
|
|
30
|
+
* cannot ask for it from `v` and can from here. **Not a closed set**: it is
|
|
31
|
+
* whatever the engine labels its own segments with, which today is Arpabet
|
|
32
|
+
* plus `Schwa` and four non-speech labels, and a later engine may say
|
|
33
|
+
* something else. Validated as an identifier and passed through unread —
|
|
34
|
+
* the letter stays the thing every face must handle, and a face that wants
|
|
35
|
+
* the finer signal opts in.
|
|
36
|
+
*/
|
|
37
|
+
p?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* A durable, lower-priority server state. `null` explicitly clears it.
|
|
41
|
+
*
|
|
42
|
+
* Three values, and the server can send no others: the remaining six of the
|
|
43
|
+
* nine are Pipecat facts the browser already holds, and a server spelling of a
|
|
44
|
+
* fact would be a second, lower-authority copy of it. It was `cmd: "claim"`
|
|
45
|
+
* until the wire redesign, when the concept and the command were given the one
|
|
46
|
+
* name the rest of the system already used for it.
|
|
47
|
+
*/
|
|
48
|
+
export interface AvatarStateCmd {
|
|
49
|
+
cmd: "state";
|
|
50
|
+
state: "CANT_HEAR" | "THINKING" | "WORKING" | null;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* One self-completing motion, by name: face, body, and optionally a hand.
|
|
54
|
+
*
|
|
55
|
+
* **The id is open.** Two of them — {@link CORE_ACTION_IDS} — are intents every
|
|
56
|
+
* renderer owes a server and are the only ones a server may send without
|
|
57
|
+
* knowing what is mounted. Everything else is a name from the mounted avatar's
|
|
58
|
+
* own catalogue, and **an unknown one is ignored, not an error**: that is the
|
|
59
|
+
* same forward-compatibility rule an unknown `cmd` gets, arrived at from the
|
|
60
|
+
* other direction. There, a newer server meets an older widget; here, any
|
|
61
|
+
* server meets a face that cannot do the thing. Neither is worth breaking a
|
|
62
|
+
* call over, and there is deliberately no fallback — an action sits on top of a
|
|
63
|
+
* state, so nothing is missing when one is dropped.
|
|
64
|
+
*
|
|
65
|
+
* This replaced a closed seven-id vocabulary plus a second command,
|
|
66
|
+
* `sequence`, for a renderer's own motions. The split cost a promotion ritual
|
|
67
|
+
* for every new portable intent and still could not say what the closed set was
|
|
68
|
+
* for: the listening research separates a continuer nod from an assessment nod
|
|
69
|
+
* from a realisation, and all three were the one id `ACK_NOD` spelled. Now the
|
|
70
|
+
* server says *when* to acknowledge and the avatar owns the variety.
|
|
71
|
+
*/
|
|
72
|
+
export interface AvatarActionCmd {
|
|
73
|
+
cmd: "action";
|
|
74
|
+
id: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* The two actions every renderer must answer to.
|
|
78
|
+
*
|
|
79
|
+
* `ACKNOWLEDGE` is the whole backchannel family in one word — receipt, nod,
|
|
80
|
+
* realisation, empathy — because which of those a face does is a rendering
|
|
81
|
+
* decision and the server is not the one holding the drawing.
|
|
82
|
+
* `RESPONSE_INTERRUPTED` is the one transition a server can explain and the
|
|
83
|
+
* browser cannot infer.
|
|
84
|
+
*
|
|
85
|
+
* A renderer may draw either in its own shape; it may never redefine one, and
|
|
86
|
+
* a name in its own catalogue never shadows one of these.
|
|
87
|
+
*/
|
|
88
|
+
export declare const CORE_ACTION_IDS: readonly ["ACKNOWLEDGE", "RESPONSE_INTERRUPTED"];
|
|
89
|
+
export type CoreActionId = (typeof CORE_ACTION_IDS)[number];
|
|
90
|
+
export interface AvatarCuesCmd {
|
|
91
|
+
cmd: "cues";
|
|
92
|
+
ctx: string;
|
|
93
|
+
/** Discard queued cues at or after this offset (ms), then append `cues`. */
|
|
94
|
+
from_ms: number;
|
|
95
|
+
cues: AvatarCue[];
|
|
96
|
+
/**
|
|
97
|
+
* True on the one chunk that completes this turn's track: the TTS context is
|
|
98
|
+
* closed, so no further chunk will splice into `ctx`. What a client may
|
|
99
|
+
* assume, exactly — nothing about playout. The audio it describes is still
|
|
100
|
+
* ahead, and Pipecat's `botStoppedSpeaking` remains the end of the turn. It
|
|
101
|
+
* is safe to stop expecting more cue chunks after `final`.
|
|
102
|
+
*
|
|
103
|
+
* Absent on an interrupted turn, deliberately: a turn that was cut never
|
|
104
|
+
* claims to have completed. Absent chunks are the normal case — the widget's
|
|
105
|
+
* own track already completes on the trailing `X`, so ignoring `final`
|
|
106
|
+
* entirely is a correct implementation.
|
|
107
|
+
*/
|
|
108
|
+
final?: boolean;
|
|
109
|
+
}
|
|
110
|
+
export type AvatarCommand = AvatarStateCmd | AvatarActionCmd | AvatarCuesCmd;
|
|
111
|
+
/** The full server-message payload: the envelope plus its command. */
|
|
112
|
+
export type AvatarServerMessage = AvatarCommand & {
|
|
113
|
+
type: "avatar";
|
|
114
|
+
};
|
|
115
|
+
/** An envelope addressed to the avatar, before its payload has been read. */
|
|
116
|
+
export type AvatarEnvelope = {
|
|
117
|
+
type: "avatar";
|
|
118
|
+
cmd: string;
|
|
119
|
+
} & Record<string, unknown>;
|
|
120
|
+
/**
|
|
121
|
+
* Is this server-message payload the avatar's? The envelope is the whole
|
|
122
|
+
* answer: `{type:"avatar"}` with a string `cmd`. It used to be a per-deployment
|
|
123
|
+
* `accept` predicate on the client, which meant the library could not state
|
|
124
|
+
* what an avatar message *is*.
|
|
125
|
+
*
|
|
126
|
+
* Addressed to us is not the same as understood by us: {@link parseAvatarCommand}
|
|
127
|
+
* is the second half.
|
|
128
|
+
*/
|
|
129
|
+
export declare function isAvatarMessage(msg: unknown): msg is AvatarEnvelope;
|
|
130
|
+
/**
|
|
131
|
+
* Read an envelope's payload into the wire vocabulary, or `null` if this build
|
|
132
|
+
* cannot act on it — an unknown `cmd`, a state outside the three, an action id
|
|
133
|
+
* that is not a name, a malformed `cues` chunk.
|
|
134
|
+
*
|
|
135
|
+
* `null` is the forward-compat rule with a type attached: a newer server
|
|
136
|
+
* talking to an older widget is *expected*, and the older widget ignores what
|
|
137
|
+
* it does not know rather than guessing. Doing the check here rather than at
|
|
138
|
+
* each use site is what lets the wire types be closed unions instead of
|
|
139
|
+
* `string` — the boundary is one function, so it can be the only place that
|
|
140
|
+
* has to be honest about untrusted input.
|
|
141
|
+
*
|
|
142
|
+
* Cues survive individually: one unrecognised letter in a chunk drops that cue,
|
|
143
|
+
* not the utterance around it. Losing a frame of articulation is a far smaller
|
|
144
|
+
* regression than losing a sentence of it.
|
|
145
|
+
*/
|
|
146
|
+
export declare function parseAvatarCommand(msg: AvatarEnvelope): AvatarCommand | null;
|
|
147
|
+
/** The envelope `type` the protocol reserves for avatar traffic. */
|
|
148
|
+
export declare const AVATAR_MESSAGE_TYPE = "avatar";
|
|
149
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../client/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,uGAAuG;AACvG,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,YAAY,CAAC;IAChB,wCAAwC;IACxC,CAAC,CAAC,EAAE,MAAM,CAAC;IACX;;;;;;;;;;;;OAYG;IACH,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC;CACpD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,QAAQ,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,kDAAkE,CAAC;AAE/F,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,eAAe,GACf,aAAa,CAAC;AAElB,sEAAsE;AACtE,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAErE,6EAA6E;AAC7E,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvF;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,cAAc,CAInE;AAiBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,aAAa,GAAG,IAAI,CAwD5E;AAED,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,WAAW,CAAC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* types.ts — the avatar wire vocabulary, client side.
|
|
3
|
+
*
|
|
4
|
+
* The binding definition is `docs/contract-wire.md`; this file is its
|
|
5
|
+
* TypeScript restatement and must not drift from it. The Python half of the
|
|
6
|
+
* same vocabulary is `packages/avatar-py/src/voqalize_avatar/messages.py` — the three are
|
|
7
|
+
* maintained together, and a command added to one without the others is
|
|
8
|
+
* incomplete.
|
|
9
|
+
*
|
|
10
|
+
* A server pushes these as RTVI `server-message`s under the envelope
|
|
11
|
+
* `{ type: "avatar", ...cmd-specific fields }`. {@link AvatarCommand} describes
|
|
12
|
+
* what rides inside that envelope; {@link isAvatarMessage} is the envelope
|
|
13
|
+
* itself, and is the only definition of "this message is for the avatar" the
|
|
14
|
+
* client has. There is no protocol version field — an unknown `cmd` is simply
|
|
15
|
+
* ignored, which is the whole forward-compatibility rule.
|
|
16
|
+
*/
|
|
17
|
+
import { VISEME_LETTERS } from "../src/avatar.js";
|
|
18
|
+
/**
|
|
19
|
+
* The two actions every renderer must answer to.
|
|
20
|
+
*
|
|
21
|
+
* `ACKNOWLEDGE` is the whole backchannel family in one word — receipt, nod,
|
|
22
|
+
* realisation, empathy — because which of those a face does is a rendering
|
|
23
|
+
* decision and the server is not the one holding the drawing.
|
|
24
|
+
* `RESPONSE_INTERRUPTED` is the one transition a server can explain and the
|
|
25
|
+
* browser cannot infer.
|
|
26
|
+
*
|
|
27
|
+
* A renderer may draw either in its own shape; it may never redefine one, and
|
|
28
|
+
* a name in its own catalogue never shadows one of these.
|
|
29
|
+
*/
|
|
30
|
+
export const CORE_ACTION_IDS = Object.freeze(["ACKNOWLEDGE", "RESPONSE_INTERRUPTED"]);
|
|
31
|
+
/**
|
|
32
|
+
* Is this server-message payload the avatar's? The envelope is the whole
|
|
33
|
+
* answer: `{type:"avatar"}` with a string `cmd`. It used to be a per-deployment
|
|
34
|
+
* `accept` predicate on the client, which meant the library could not state
|
|
35
|
+
* what an avatar message *is*.
|
|
36
|
+
*
|
|
37
|
+
* Addressed to us is not the same as understood by us: {@link parseAvatarCommand}
|
|
38
|
+
* is the second half.
|
|
39
|
+
*/
|
|
40
|
+
export function isAvatarMessage(msg) {
|
|
41
|
+
if (typeof msg !== "object" || msg === null)
|
|
42
|
+
return false;
|
|
43
|
+
const m = msg;
|
|
44
|
+
return m.type === AVATAR_MESSAGE_TYPE && typeof m.cmd === "string";
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* What an action id may look like. Not which ones exist — that is the mounted
|
|
48
|
+
* avatar's business and this function has never met it. `CATEGORY_INTENT` in
|
|
49
|
+
* upper case, bounded so a malformed or hostile message cannot smuggle
|
|
50
|
+
* anything through as a name.
|
|
51
|
+
*/
|
|
52
|
+
const ACTION_ID = /^[A-Z][A-Z0-9_]{1,63}$/;
|
|
53
|
+
const LETTERS = new Set(VISEME_LETTERS);
|
|
54
|
+
/**
|
|
55
|
+
* What a phone label may look like. Letters only, because every label any
|
|
56
|
+
* engine we have seen is one word of them — `AO`, `NG`, `Schwa`, `Breath` —
|
|
57
|
+
* and the bound is what stops a name being a payload.
|
|
58
|
+
*/
|
|
59
|
+
const PHONE_LABEL = /^[A-Za-z]{1,12}$/;
|
|
60
|
+
/**
|
|
61
|
+
* Read an envelope's payload into the wire vocabulary, or `null` if this build
|
|
62
|
+
* cannot act on it — an unknown `cmd`, a state outside the three, an action id
|
|
63
|
+
* that is not a name, a malformed `cues` chunk.
|
|
64
|
+
*
|
|
65
|
+
* `null` is the forward-compat rule with a type attached: a newer server
|
|
66
|
+
* talking to an older widget is *expected*, and the older widget ignores what
|
|
67
|
+
* it does not know rather than guessing. Doing the check here rather than at
|
|
68
|
+
* each use site is what lets the wire types be closed unions instead of
|
|
69
|
+
* `string` — the boundary is one function, so it can be the only place that
|
|
70
|
+
* has to be honest about untrusted input.
|
|
71
|
+
*
|
|
72
|
+
* Cues survive individually: one unrecognised letter in a chunk drops that cue,
|
|
73
|
+
* not the utterance around it. Losing a frame of articulation is a far smaller
|
|
74
|
+
* regression than losing a sentence of it.
|
|
75
|
+
*/
|
|
76
|
+
export function parseAvatarCommand(msg) {
|
|
77
|
+
switch (msg.cmd) {
|
|
78
|
+
// `claim` was this command's name, and `STRAINING` one of its values, until
|
|
79
|
+
// the wire redesign. Both are accepted and translated here, in the one
|
|
80
|
+
// place that reads untrusted input, so no layer above has ever heard of
|
|
81
|
+
// either spelling. Servers that predate the rename keep working; the old
|
|
82
|
+
// names appear nowhere else and come out when the last one has shipped.
|
|
83
|
+
case "claim":
|
|
84
|
+
case "state": {
|
|
85
|
+
const state = msg.state === "STRAINING" ? "CANT_HEAR" : msg.state;
|
|
86
|
+
if (state === null || state === "CANT_HEAR" || state === "THINKING" || state === "WORKING") {
|
|
87
|
+
return { cmd: "state", state };
|
|
88
|
+
}
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
// `sequence` was a second command for the same thing: a name resolved
|
|
92
|
+
// against the mounted avatar rather than against a closed list. Now that
|
|
93
|
+
// `action` is that, the two are one command and the old one is an alias.
|
|
94
|
+
case "sequence":
|
|
95
|
+
case "action":
|
|
96
|
+
// Shape only, both for a core id and for one of the avatar's own. There
|
|
97
|
+
// is nothing to check a name against here — the catalogue belongs to
|
|
98
|
+
// whatever is mounted, and this function has never met it.
|
|
99
|
+
return typeof msg.id === "string" && ACTION_ID.test(msg.id)
|
|
100
|
+
? { cmd: "action", id: msg.id }
|
|
101
|
+
: null;
|
|
102
|
+
case "cues": {
|
|
103
|
+
if (typeof msg.ctx !== "string" || !Number.isFinite(msg.from_ms) || !Array.isArray(msg.cues)) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
const cues = [];
|
|
107
|
+
for (const c of msg.cues) {
|
|
108
|
+
if (typeof c !== "object" || c === null)
|
|
109
|
+
continue;
|
|
110
|
+
const { t, v, i, p } = c;
|
|
111
|
+
if (typeof t !== "number" || !Number.isFinite(t))
|
|
112
|
+
continue;
|
|
113
|
+
if (typeof v !== "string" || !LETTERS.has(v))
|
|
114
|
+
continue;
|
|
115
|
+
const cue = { t, v: v };
|
|
116
|
+
if (typeof i === "number")
|
|
117
|
+
cue.i = i;
|
|
118
|
+
// Bounded as a name, not checked against a list. The set belongs to
|
|
119
|
+
// whatever produced the cue, so enumerating it here would make this
|
|
120
|
+
// library the thing that has to be released before a better recogniser
|
|
121
|
+
// can say a new word.
|
|
122
|
+
if (typeof p === "string" && PHONE_LABEL.test(p))
|
|
123
|
+
cue.p = p;
|
|
124
|
+
cues.push(cue);
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
cmd: "cues",
|
|
128
|
+
ctx: msg.ctx,
|
|
129
|
+
from_ms: msg.from_ms,
|
|
130
|
+
cues,
|
|
131
|
+
...(msg.final === true ? { final: true } : {}),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
default:
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/** The envelope `type` the protocol reserves for avatar traffic. */
|
|
139
|
+
export const AVATAR_MESSAGE_TYPE = "avatar";
|
|
140
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../client/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useAvatar — mount an avatar into a ref'd element for as long as there is a
|
|
3
|
+
* client to embody, and tear it down after.
|
|
4
|
+
*
|
|
5
|
+
* Internal; `<Avatar>` is the only thing the React entry exports. The whole
|
|
6
|
+
* hook is one effect, because the factory takes the client at construction:
|
|
7
|
+
* there is no separate attach step to keep in its own lifecycle any more.
|
|
8
|
+
*/
|
|
9
|
+
import type { PipecatClient } from "@pipecat-ai/client-js";
|
|
10
|
+
import { type AvatarFactory, type AvatarOptions, type SvgAvatarOptions } from "./createAvatar.js";
|
|
11
|
+
export interface UseAvatarOptions<O extends AvatarOptions = SvgAvatarOptions> {
|
|
12
|
+
/** The live `PipecatClient`, or `null` before connect. Nothing mounts until
|
|
13
|
+
* this is non-null — an avatar with nothing to embody has nothing to do. */
|
|
14
|
+
client?: PipecatClient | null;
|
|
15
|
+
/** The avatar implementation. Defaults to the bundled SVG faces. */
|
|
16
|
+
create?: AvatarFactory<O>;
|
|
17
|
+
/** Implementation options, forwarded verbatim. Read at mount only. */
|
|
18
|
+
options?: Omit<O, keyof AvatarOptions>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The mount ref's type, written out rather than named as React's `RefObject`.
|
|
22
|
+
*
|
|
23
|
+
* React 18 and 19 declare that alias with different type arguments — 18's
|
|
24
|
+
* `useRef<T>(null)` yields `RefObject<T>`, 19's yields `RefObject<T | null>` —
|
|
25
|
+
* and because both are the *same alias*, TypeScript compares them by variance
|
|
26
|
+
* and rejects whichever one we didn't pick. An anonymous shape forces a
|
|
27
|
+
* structural comparison instead, which both versions satisfy, and which the
|
|
28
|
+
* `ref` prop accepts on both. This is the only place the 18-vs-19 split shows
|
|
29
|
+
* up in the binding; keep it that way.
|
|
30
|
+
*/
|
|
31
|
+
export type AvatarMountRef = {
|
|
32
|
+
current: HTMLDivElement | null;
|
|
33
|
+
};
|
|
34
|
+
export interface UseAvatarHandle {
|
|
35
|
+
/** Attach to the mount element: `<div ref={containerRef} />`. */
|
|
36
|
+
containerRef: AvatarMountRef;
|
|
37
|
+
}
|
|
38
|
+
export declare function useAvatar<O extends AvatarOptions = SvgAvatarOptions>({ client, create, options }?: UseAvatarOptions<O>): UseAvatarHandle;
|
|
39
|
+
//# sourceMappingURL=useAvatar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAvatar.d.ts","sourceRoot":"","sources":["../client/useAvatar.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,aAAa,GAAG,gBAAgB;IAC1E;gFAC4E;IAC5E,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9B,oEAAoE;IACpE,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC1B,sEAAsE;IACtE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,aAAa,CAAC,CAAC;CACxC;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;CAAE,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,YAAY,EAAE,cAAc,CAAC;CAC9B;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,aAAa,GAAG,gBAAgB,EAClE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAE,gBAAgB,CAAC,CAAC,CAAM,GACpD,eAAe,CAyBjB"}
|