realtime-avatar 0.1.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 (109) hide show
  1. package/AGENTS.md +132 -0
  2. package/CLAUDE.md +17 -0
  3. package/LICENSE +21 -0
  4. package/README.md +254 -0
  5. package/dist/api-keys.d.ts +26 -0
  6. package/dist/api-keys.d.ts.map +1 -0
  7. package/dist/api-keys.js +88 -0
  8. package/dist/api-keys.js.map +1 -0
  9. package/dist/browser/audio.d.ts +65 -0
  10. package/dist/browser/audio.d.ts.map +1 -0
  11. package/dist/browser/audio.js +154 -0
  12. package/dist/browser/audio.js.map +1 -0
  13. package/dist/browser/boomerang.d.ts +38 -0
  14. package/dist/browser/boomerang.d.ts.map +1 -0
  15. package/dist/browser/boomerang.js +85 -0
  16. package/dist/browser/boomerang.js.map +1 -0
  17. package/dist/browser/index.d.ts +8 -0
  18. package/dist/browser/index.d.ts.map +1 -0
  19. package/dist/browser/index.js +8 -0
  20. package/dist/browser/index.js.map +1 -0
  21. package/dist/browser/media-session.d.ts +43 -0
  22. package/dist/browser/media-session.d.ts.map +1 -0
  23. package/dist/browser/media-session.js +169 -0
  24. package/dist/browser/media-session.js.map +1 -0
  25. package/dist/browser/player.d.ts +162 -0
  26. package/dist/browser/player.d.ts.map +1 -0
  27. package/dist/browser/player.js +514 -0
  28. package/dist/browser/player.js.map +1 -0
  29. package/dist/browser/view.d.ts +47 -0
  30. package/dist/browser/view.d.ts.map +1 -0
  31. package/dist/browser/view.js +7 -0
  32. package/dist/browser/view.js.map +1 -0
  33. package/dist/browser/webrtc.d.ts +21 -0
  34. package/dist/browser/webrtc.d.ts.map +1 -0
  35. package/dist/browser/webrtc.js +149 -0
  36. package/dist/browser/webrtc.js.map +1 -0
  37. package/dist/browser/yuv-canvas.d.ts +13 -0
  38. package/dist/browser/yuv-canvas.d.ts.map +1 -0
  39. package/dist/browser/yuv-canvas.js +95 -0
  40. package/dist/browser/yuv-canvas.js.map +1 -0
  41. package/dist/client.d.ts +195 -0
  42. package/dist/client.d.ts.map +1 -0
  43. package/dist/client.js +440 -0
  44. package/dist/client.js.map +1 -0
  45. package/dist/errors.d.ts +33 -0
  46. package/dist/errors.d.ts.map +1 -0
  47. package/dist/errors.js +73 -0
  48. package/dist/errors.js.map +1 -0
  49. package/dist/generated/openapi.d.ts +1523 -0
  50. package/dist/generated/openapi.d.ts.map +1 -0
  51. package/dist/generated/openapi.js +6 -0
  52. package/dist/generated/openapi.js.map +1 -0
  53. package/dist/index.d.ts +14 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +15 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/media.d.ts +40 -0
  58. package/dist/media.d.ts.map +1 -0
  59. package/dist/media.js +4 -0
  60. package/dist/media.js.map +1 -0
  61. package/dist/mux.d.ts +104 -0
  62. package/dist/mux.d.ts.map +1 -0
  63. package/dist/mux.js +290 -0
  64. package/dist/mux.js.map +1 -0
  65. package/dist/platform.d.ts +163 -0
  66. package/dist/platform.d.ts.map +1 -0
  67. package/dist/platform.js +5 -0
  68. package/dist/platform.js.map +1 -0
  69. package/dist/react/index.d.ts +5 -0
  70. package/dist/react/index.d.ts.map +1 -0
  71. package/dist/react/index.js +5 -0
  72. package/dist/react/index.js.map +1 -0
  73. package/dist/react/provider.d.ts +37 -0
  74. package/dist/react/provider.d.ts.map +1 -0
  75. package/dist/react/provider.js +33 -0
  76. package/dist/react/provider.js.map +1 -0
  77. package/dist/react/realtime.d.ts +74 -0
  78. package/dist/react/realtime.d.ts.map +1 -0
  79. package/dist/react/realtime.js +105 -0
  80. package/dist/react/realtime.js.map +1 -0
  81. package/dist/react/session.d.ts +91 -0
  82. package/dist/react/session.d.ts.map +1 -0
  83. package/dist/react/session.js +322 -0
  84. package/dist/react/session.js.map +1 -0
  85. package/dist/react/stage.d.ts +23 -0
  86. package/dist/react/stage.d.ts.map +1 -0
  87. package/dist/react/stage.js +62 -0
  88. package/dist/react/stage.js.map +1 -0
  89. package/dist/schemas.d.ts +59 -0
  90. package/dist/schemas.d.ts.map +1 -0
  91. package/dist/schemas.js +58 -0
  92. package/dist/schemas.js.map +1 -0
  93. package/dist/server.d.ts +2 -0
  94. package/dist/server.d.ts.map +1 -0
  95. package/dist/server.js +8 -0
  96. package/dist/server.js.map +1 -0
  97. package/dist/session-socket.d.ts +96 -0
  98. package/dist/session-socket.d.ts.map +1 -0
  99. package/dist/session-socket.js +299 -0
  100. package/dist/session-socket.js.map +1 -0
  101. package/dist/session.d.ts +107 -0
  102. package/dist/session.d.ts.map +1 -0
  103. package/dist/session.js +192 -0
  104. package/dist/session.js.map +1 -0
  105. package/dist/types.d.ts +24 -0
  106. package/dist/types.d.ts.map +1 -0
  107. package/dist/types.js +2 -0
  108. package/dist/types.js.map +1 -0
  109. package/package.json +94 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"player.js","sourceRoot":"","sources":["../../src/browser/player.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { RealtimeTurnStream } from "../client";
2
+ import type { AvatarTurnEventSource } from "../session-socket";
3
+ import type { AvatarPlayHandlers, AvatarPlayerMetrics, AvatarPlaySummary } from "./player";
4
+ import { AvatarPlayer } from "./player";
5
+ /**
6
+ * Metrics every AvatarView implementation must expose, regardless of which
7
+ * wire delivered the media (docs/transport-design.md: dashboards must not
8
+ * care which view rendered). Identical to AvatarPlayerMetrics by design —
9
+ * `firstVideoMs`, `droppedFrames`, `width`/`height` are the contract.
10
+ */
11
+ export type AvatarViewMetrics = AvatarPlayerMetrics;
12
+ /**
13
+ * A renderer for avatar turns, abstracted over the media plane.
14
+ *
15
+ * - `CanvasView` (today's `AvatarPlayer`): mux events -> WebCodecs/JPEG ->
16
+ * canvas, audio-clocked playout.
17
+ * - `StreamView` (staged, WebRTC): MediaStream -> `<video>`, browser jitter
18
+ * buffer; same metrics interface.
19
+ *
20
+ * Integrations should hold an `AvatarView` so the media-plane upgrade
21
+ * (WS mux -> WebRTC tracks) is a view swap, not a rewrite.
22
+ */
23
+ export interface AvatarView<TElement extends Element = Element> {
24
+ /** Bind (or rebind) the element the view renders into. */
25
+ attach(target: TElement | null): void;
26
+ /** Unlock audio from inside a user gesture. Safe to call repeatedly. */
27
+ unlock(): Promise<void>;
28
+ /** Play a turn's events to completion; resolves with the turn summary. */
29
+ play(stream: RealtimeTurnStream | AvatarTurnEventSource, handlers?: AvatarPlayHandlers & {
30
+ signal?: AbortSignal;
31
+ }): Promise<AvatarPlaySummary>;
32
+ /** Stop playback and release per-turn resources. */
33
+ stop(): void;
34
+ /** Fully release resources (including persistent audio). */
35
+ dispose(): void;
36
+ readonly metrics: AvatarViewMetrics;
37
+ }
38
+ /**
39
+ * The mux-event view: today's `AvatarPlayer` behind the `AvatarView` seam,
40
+ * unchanged. `AvatarPlayer` remains exported and is this exact class.
41
+ */
42
+ export declare const CanvasView: typeof AvatarPlayer;
43
+ export type CanvasView = AvatarPlayer;
44
+ type Satisfies<T extends U, U> = T;
45
+ export type _CanvasViewIsAvatarView = Satisfies<AvatarPlayer, AvatarView<HTMLCanvasElement>>;
46
+ export {};
47
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/browser/view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU,CAAC,QAAQ,SAAS,OAAO,GAAG,OAAO;IAC5D,0DAA0D;IAC1D,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;IACtC,wEAAwE;IACxE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,0EAA0E;IAC1E,IAAI,CACF,MAAM,EAAE,kBAAkB,GAAG,qBAAqB,EAClD,QAAQ,CAAC,EAAE,kBAAkB,GAAG;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACvD,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,oDAAoD;IACpD,IAAI,IAAI,IAAI,CAAC;IACb,4DAA4D;IAC5D,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;CACrC;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,qBAAe,CAAC;AACvC,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC;AAItC,KAAK,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACnC,MAAM,MAAM,uBAAuB,GAAG,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { AvatarPlayer } from "./player";
2
+ /**
3
+ * The mux-event view: today's `AvatarPlayer` behind the `AvatarView` seam,
4
+ * unchanged. `AvatarPlayer` remains exported and is this exact class.
5
+ */
6
+ export const CanvasView = AvatarPlayer;
7
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/browser/view.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAsCxC;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { type CloudflareStreamWhepMediaPlan, type RealtimeMediaPlan } from "../media";
2
+ type FetchLike = typeof fetch;
3
+ export type CloudflareWhepPlaybackOptions = {
4
+ fetch?: FetchLike;
5
+ signal?: AbortSignal;
6
+ headers?: HeadersInit;
7
+ autoplay?: boolean;
8
+ retries?: number;
9
+ retryDelayMs?: number;
10
+ iceGatheringTimeoutMs?: number;
11
+ };
12
+ export type CloudflareWhepPlayback = {
13
+ peerConnection: RTCPeerConnection;
14
+ stream: MediaStream;
15
+ media: CloudflareStreamWhepMediaPlan;
16
+ sessionUrl: string | null;
17
+ close: () => Promise<void>;
18
+ };
19
+ export declare function attachCloudflareWhepPlayback(media: RealtimeMediaPlan, video: HTMLVideoElement, options?: CloudflareWhepPlaybackOptions): Promise<CloudflareWhepPlayback>;
20
+ export {};
21
+ //# sourceMappingURL=webrtc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webrtc.d.ts","sourceRoot":"","sources":["../../src/browser/webrtc.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,KAAK,6BAA6B,EAAE,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEjH,KAAK,SAAS,GAAG,OAAO,KAAK,CAAC;AAE9B,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,EAAE,iBAAiB,CAAC;IAClC,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,6BAA6B,CAAC;IACrC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAEF,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,sBAAsB,CAAC,CAiBjC"}
@@ -0,0 +1,149 @@
1
+ import { RealtimeAvatarConfigError } from "../errors";
2
+ import { isCloudflareWhepMediaPlan } from "../media";
3
+ export async function attachCloudflareWhepPlayback(media, video, options = {}) {
4
+ if (!isCloudflareWhepMediaPlan(media)) {
5
+ throw new RealtimeAvatarConfigError("Cloudflare WHEP playback requires a configured cloudflare-stream-webrtc media plan");
6
+ }
7
+ const attempts = Math.max(1, (options.retries ?? 0) + 1);
8
+ let lastError;
9
+ for (let attempt = 0; attempt < attempts; attempt += 1) {
10
+ throwIfAborted(options.signal);
11
+ try {
12
+ return await connectCloudflareWhep(media, video, options);
13
+ }
14
+ catch (error) {
15
+ lastError = error;
16
+ if (options.signal?.aborted || attempt === attempts - 1)
17
+ break;
18
+ await delay(options.retryDelayMs ?? 300, options.signal);
19
+ }
20
+ }
21
+ throw lastError instanceof Error ? lastError : new Error(String(lastError));
22
+ }
23
+ async function connectCloudflareWhep(media, video, options) {
24
+ const fetchImpl = options.fetch ?? globalThis.fetch?.bind(globalThis);
25
+ if (!fetchImpl)
26
+ throw new RealtimeAvatarConfigError("A fetch implementation is required for WHEP playback");
27
+ if (typeof RTCPeerConnection !== "function") {
28
+ throw new RealtimeAvatarConfigError("RTCPeerConnection is required for WHEP playback");
29
+ }
30
+ const peerConnection = new RTCPeerConnection();
31
+ const stream = new MediaStream();
32
+ let closed = false;
33
+ let sessionUrl = null;
34
+ peerConnection.addTransceiver("video", { direction: "recvonly" });
35
+ peerConnection.addTransceiver("audio", { direction: "recvonly" });
36
+ peerConnection.addEventListener("track", (event) => {
37
+ const [remoteStream] = event.streams;
38
+ const tracks = remoteStream?.getTracks() ?? [event.track];
39
+ for (const track of tracks) {
40
+ if (!stream.getTracks().includes(track))
41
+ stream.addTrack(track);
42
+ }
43
+ });
44
+ try {
45
+ const offer = await peerConnection.createOffer();
46
+ await peerConnection.setLocalDescription(offer);
47
+ await waitForIceGatheringComplete(peerConnection, options.iceGatheringTimeoutMs ?? 3_000, options.signal);
48
+ const localDescription = peerConnection.localDescription;
49
+ if (!localDescription?.sdp)
50
+ throw new Error("WHEP playback could not create a local SDP offer");
51
+ const headers = new Headers(options.headers);
52
+ headers.set("Accept", "application/sdp");
53
+ headers.set("Content-Type", "application/sdp");
54
+ const response = await fetchImpl(media.playback.url, {
55
+ method: "POST",
56
+ headers,
57
+ body: localDescription.sdp,
58
+ signal: options.signal,
59
+ });
60
+ if (!response.ok)
61
+ throw new Error(`Cloudflare WHEP playback failed: HTTP ${response.status} ${await response.text()}`);
62
+ const answer = await response.text();
63
+ const location = response.headers.get("Location");
64
+ sessionUrl = location ? new URL(location, media.playback.url).toString() : null;
65
+ await peerConnection.setRemoteDescription({ type: "answer", sdp: answer });
66
+ video.srcObject = stream;
67
+ video.playsInline = true;
68
+ if (options.autoplay !== false)
69
+ void video.play().catch(() => undefined);
70
+ return {
71
+ peerConnection,
72
+ stream,
73
+ media,
74
+ get sessionUrl() {
75
+ return sessionUrl;
76
+ },
77
+ close: async () => {
78
+ if (closed)
79
+ return;
80
+ closed = true;
81
+ if (video.srcObject === stream)
82
+ video.srcObject = null;
83
+ for (const track of stream.getTracks())
84
+ track.stop();
85
+ peerConnection.close();
86
+ if (sessionUrl) {
87
+ await fetchImpl(sessionUrl, { method: "DELETE", headers: options.headers }).catch(() => undefined);
88
+ sessionUrl = null;
89
+ }
90
+ },
91
+ };
92
+ }
93
+ catch (error) {
94
+ for (const track of stream.getTracks())
95
+ track.stop();
96
+ peerConnection.close();
97
+ throw error;
98
+ }
99
+ }
100
+ function waitForIceGatheringComplete(peerConnection, timeoutMs, signal) {
101
+ if (peerConnection.iceGatheringState === "complete")
102
+ return Promise.resolve();
103
+ return new Promise((resolve, reject) => {
104
+ let timer = 0;
105
+ const cleanup = () => {
106
+ window.clearTimeout(timer);
107
+ peerConnection.removeEventListener("icegatheringstatechange", onStateChange);
108
+ signal?.removeEventListener("abort", onAbort);
109
+ };
110
+ const finish = () => {
111
+ cleanup();
112
+ resolve();
113
+ };
114
+ const onStateChange = () => {
115
+ if (peerConnection.iceGatheringState === "complete")
116
+ finish();
117
+ };
118
+ const onAbort = () => {
119
+ cleanup();
120
+ reject(new DOMException("WHEP playback aborted", "AbortError"));
121
+ };
122
+ peerConnection.addEventListener("icegatheringstatechange", onStateChange);
123
+ signal?.addEventListener("abort", onAbort, { once: true });
124
+ timer = window.setTimeout(finish, timeoutMs);
125
+ });
126
+ }
127
+ function throwIfAborted(signal) {
128
+ if (signal?.aborted)
129
+ throw new DOMException("WHEP playback aborted", "AbortError");
130
+ }
131
+ function delay(ms, signal) {
132
+ return new Promise((resolve, reject) => {
133
+ let timer = 0;
134
+ const cleanup = () => {
135
+ window.clearTimeout(timer);
136
+ signal?.removeEventListener("abort", onAbort);
137
+ };
138
+ const onAbort = () => {
139
+ cleanup();
140
+ reject(new DOMException("WHEP playback aborted", "AbortError"));
141
+ };
142
+ signal?.addEventListener("abort", onAbort, { once: true });
143
+ timer = window.setTimeout(() => {
144
+ cleanup();
145
+ resolve();
146
+ }, ms);
147
+ });
148
+ }
149
+ //# sourceMappingURL=webrtc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webrtc.js","sourceRoot":"","sources":["../../src/browser/webrtc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ type ByteView = Uint8Array<ArrayBufferLike>;
2
+ export declare class I420CanvasRenderer {
3
+ private context;
4
+ private imageData;
5
+ private webCodecsAvailable;
6
+ draw(canvas: HTMLCanvasElement, frame: ByteView, width: number, height: number, timestampUs?: number): void;
7
+ reset(): void;
8
+ private drawWithVideoFrame;
9
+ private drawWithCpuCanvas;
10
+ }
11
+ export declare function drawI420Frame(canvas: HTMLCanvasElement, frame: ByteView, width: number, height: number): void;
12
+ export {};
13
+ //# sourceMappingURL=yuv-canvas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yuv-canvas.d.ts","sourceRoot":"","sources":["../../src/browser/yuv-canvas.ts"],"names":[],"mappings":"AAIA,KAAK,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;AAsB5C,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,kBAAkB,CAAQ;IAElC,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,SAAI,GAAG,IAAI;IAStG,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,iBAAiB;CAkC1B;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,IAAI,CAEN"}
@@ -0,0 +1,95 @@
1
+ function clampByte(value) {
2
+ return value < 0 ? 0 : value > 255 ? 255 : value;
3
+ }
4
+ function getVideoFrameConstructor() {
5
+ const candidate = globalThis.VideoFrame;
6
+ return typeof candidate === "function" ? candidate : null;
7
+ }
8
+ function asBufferSource(frame) {
9
+ if (frame.buffer instanceof ArrayBuffer)
10
+ return frame;
11
+ return Uint8Array.from(frame);
12
+ }
13
+ export class I420CanvasRenderer {
14
+ context = null;
15
+ imageData = null;
16
+ webCodecsAvailable = true;
17
+ draw(canvas, frame, width, height, timestampUs = 0) {
18
+ if (frame.byteLength !== (width * height * 3) / 2)
19
+ return;
20
+ if (canvas.width !== width)
21
+ canvas.width = width;
22
+ if (canvas.height !== height)
23
+ canvas.height = height;
24
+ if (this.webCodecsAvailable && this.drawWithVideoFrame(canvas, frame, width, height, timestampUs))
25
+ return;
26
+ this.drawWithCpuCanvas(canvas, frame, width, height);
27
+ }
28
+ reset() {
29
+ this.context = null;
30
+ this.imageData = null;
31
+ this.webCodecsAvailable = true;
32
+ }
33
+ drawWithVideoFrame(canvas, frame, width, height, timestampUs) {
34
+ const VideoFrameCtor = getVideoFrameConstructor();
35
+ if (!VideoFrameCtor)
36
+ return false;
37
+ const ctx = this.context ?? canvas.getContext("2d", { alpha: false });
38
+ if (!ctx)
39
+ return false;
40
+ this.context = ctx;
41
+ let videoFrame = null;
42
+ try {
43
+ videoFrame = new VideoFrameCtor(asBufferSource(frame), {
44
+ format: "I420",
45
+ codedWidth: width,
46
+ codedHeight: height,
47
+ timestamp: timestampUs,
48
+ });
49
+ ctx.drawImage(videoFrame, 0, 0, width, height);
50
+ return true;
51
+ }
52
+ catch {
53
+ this.webCodecsAvailable = false;
54
+ return false;
55
+ }
56
+ finally {
57
+ videoFrame?.close();
58
+ }
59
+ }
60
+ drawWithCpuCanvas(canvas, frame, width, height) {
61
+ const ctx = this.context ?? canvas.getContext("2d", { alpha: false });
62
+ if (!ctx)
63
+ return;
64
+ this.context = ctx;
65
+ if (!this.imageData || this.imageData.width !== width || this.imageData.height !== height) {
66
+ this.imageData = ctx.createImageData(width, height);
67
+ }
68
+ const rgba = this.imageData.data;
69
+ const ySize = width * height;
70
+ const uvWidth = width >> 1;
71
+ const uOffset = ySize;
72
+ const vOffset = ySize + (ySize >> 2);
73
+ for (let y = 0; y < height; y += 1) {
74
+ const yRow = y * width;
75
+ const uvRow = (y >> 1) * uvWidth;
76
+ for (let x = 0; x < width; x += 1) {
77
+ const yIndex = yRow + x;
78
+ const uvIndex = uvRow + (x >> 1);
79
+ const yy = frame[yIndex];
80
+ const uu = frame[uOffset + uvIndex] - 128;
81
+ const vv = frame[vOffset + uvIndex] - 128;
82
+ const out = yIndex * 4;
83
+ rgba[out] = clampByte(yy + 1.402 * vv);
84
+ rgba[out + 1] = clampByte(yy - 0.344136 * uu - 0.714136 * vv);
85
+ rgba[out + 2] = clampByte(yy + 1.772 * uu);
86
+ rgba[out + 3] = 255;
87
+ }
88
+ }
89
+ ctx.putImageData(this.imageData, 0, 0);
90
+ }
91
+ }
92
+ export function drawI420Frame(canvas, frame, width, height) {
93
+ new I420CanvasRenderer().draw(canvas, frame, width, height);
94
+ }
95
+ //# sourceMappingURL=yuv-canvas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yuv-canvas.js","sourceRoot":"","sources":["../../src/browser/yuv-canvas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ import { type AvatarMuxEvent, type ReadAvatarMuxOptions } from "./mux";
2
+ import { AvatarSession, type AvatarSessionConfig } from "./session";
3
+ import { RealtimeSessionSocket } from "./session-socket";
4
+ import type { RealtimeMediaPlan } from "./media";
5
+ import type { PlatformAsset, PlatformAvatar, PlatformCreditBalance, CreatePlatformAvatarRequest, CreateRemotePlatformAssetRequest, CreateImageAvatarOptions, CreateImageAvatarResult, CreateVideoAvatarOptions, CreateVideoAvatarFromUrlOptions, CreateVideoAvatarResult, UpdatePlatformAvatarRequest, PlanPlatformAvatarVideoCacheRequest, PlanPlatformAvatarVideoCacheResponse, UploadPlatformAssetOptions, LipsyncOptions, LipsyncResult } from "./platform";
6
+ import type { ArtifactStatus, RealtimePrepareRequest, RealtimePrepareResponse, RealtimeTurnRequest, VideoAvatarCacheManifest, VideoCachePlanRequest, VideoCachePlanResponse } from "./types";
7
+ type MaybePromise<T> = T | Promise<T>;
8
+ type HeaderFactory = HeadersInit | (() => MaybePromise<HeadersInit>);
9
+ type ApiKeyFactory = string | (() => MaybePromise<string | null | undefined>);
10
+ type FetchLike = typeof fetch;
11
+ type EndpointName = "artifacts" | "prepare" | "turn" | "session" | "sessionToken" | "lipsync" | "videoCachePlan" | "videoCacheRegister" | "videoCacheStatus";
12
+ export type RealtimeAvatarEndpointMap = Record<EndpointName, string>;
13
+ /** What a session-token mint endpoint (or custom `sessionAuth`) must return. */
14
+ export type RealtimeSessionGrant = {
15
+ url: string;
16
+ token?: string;
17
+ expires_at?: number;
18
+ media?: RealtimeMediaPlan;
19
+ };
20
+ export declare const DEFAULT_PLATFORM_BASE_URL = "https://realtimeavatar.ai";
21
+ export declare const platformEndpoints: RealtimeAvatarEndpointMap;
22
+ export declare const modalEndpoints: RealtimeAvatarEndpointMap;
23
+ export declare const webProxyEndpoints: RealtimeAvatarEndpointMap;
24
+ export type RealtimeAvatarClientOptions = {
25
+ baseUrl?: string;
26
+ apiKey?: ApiKeyFactory;
27
+ endpoints?: Partial<RealtimeAvatarEndpointMap>;
28
+ fetch?: FetchLike;
29
+ headers?: HeaderFactory;
30
+ /**
31
+ * Custom session-grant source for `connectSession()` — return the WebSocket
32
+ * URL (and `token` when the runtime needs one). Overrides the built-in
33
+ * `sessionToken` mint endpoint; useful for self-hosted token routes.
34
+ */
35
+ sessionAuth?: (options: {
36
+ signal?: AbortSignal;
37
+ }) => MaybePromise<RealtimeSessionGrant>;
38
+ };
39
+ export type RealtimeAvatarRequestOptions = {
40
+ signal?: AbortSignal;
41
+ headers?: HeadersInit;
42
+ };
43
+ export declare class RealtimeTurnStream {
44
+ readonly response: Response;
45
+ constructor(response: Response);
46
+ get events(): AsyncGenerator<AvatarMuxEvent>;
47
+ private readOptions;
48
+ withReadOptions(options: ReadAvatarMuxOptions): RealtimeTurnStream;
49
+ }
50
+ /**
51
+ * @deprecated Renamed to {@link RealtimeTurnStream}. Kept as an alias for one
52
+ * release so existing imports keep working; prefer `RealtimeTurnStream`.
53
+ */
54
+ export declare const AvatarTurnStream: typeof RealtimeTurnStream;
55
+ /** @deprecated Use {@link RealtimeTurnStream}. */
56
+ export type AvatarTurnStream = RealtimeTurnStream;
57
+ export declare class RealtimeAvatarClient {
58
+ private readonly fetchImpl;
59
+ private readonly baseUrl;
60
+ private readonly apiKey?;
61
+ private readonly endpoints;
62
+ private readonly headers?;
63
+ private readonly sessionAuth?;
64
+ constructor(options?: RealtimeAvatarClientOptions);
65
+ static modal(options: Omit<RealtimeAvatarClientOptions, "endpoints"> & {
66
+ baseUrl: string;
67
+ apiKey: ApiKeyFactory;
68
+ }): RealtimeAvatarClient;
69
+ static webProxy(options?: Omit<RealtimeAvatarClientOptions, "endpoints" | "apiKey">): RealtimeAvatarClient;
70
+ static platform(options: Omit<RealtimeAvatarClientOptions, "endpoints"> & {
71
+ apiKey: ApiKeyFactory;
72
+ }): RealtimeAvatarClient;
73
+ health(options?: RealtimeAvatarRequestOptions): Promise<unknown>;
74
+ artifacts(options?: RealtimeAvatarRequestOptions): Promise<ArtifactStatus>;
75
+ creditBalance(options?: RealtimeAvatarRequestOptions): Promise<PlatformCreditBalance>;
76
+ listAvatars(options?: RealtimeAvatarRequestOptions): Promise<{
77
+ data: PlatformAvatar[];
78
+ }>;
79
+ createAvatar(input: CreatePlatformAvatarRequest, options?: RealtimeAvatarRequestOptions): Promise<PlatformAvatar>;
80
+ getAvatar(avatarId: string, options?: RealtimeAvatarRequestOptions): Promise<PlatformAvatar>;
81
+ /** Customize avatar fields (display name, voice, persona via metadata.persona). Owner-scoped. */
82
+ updateAvatar(avatarId: string, patch: UpdatePlatformAvatarRequest, options?: RealtimeAvatarRequestOptions): Promise<PlatformAvatar>;
83
+ deleteAvatar(avatarId: string, options?: RealtimeAvatarRequestOptions): Promise<void>;
84
+ createImageAvatar(input: CreateImageAvatarOptions, options?: RealtimeAvatarRequestOptions): Promise<CreateImageAvatarResult>;
85
+ createVideoAvatar(input: CreateVideoAvatarOptions, options?: RealtimeAvatarRequestOptions): Promise<CreateVideoAvatarResult>;
86
+ createVideoAvatarFromUrl(input: CreateVideoAvatarFromUrlOptions, options?: RealtimeAvatarRequestOptions): Promise<CreateVideoAvatarResult>;
87
+ createRemoteAsset(input: CreateRemotePlatformAssetRequest, options?: RealtimeAvatarRequestOptions): Promise<PlatformAsset>;
88
+ private createVideoAvatarFromAsset;
89
+ uploadAsset(file: Blob, uploadOptions?: UploadPlatformAssetOptions, requestOptions?: RealtimeAvatarRequestOptions): Promise<PlatformAsset>;
90
+ prepare(input: RealtimePrepareRequest, options?: RealtimeAvatarRequestOptions): Promise<RealtimePrepareResponse>;
91
+ planVideoCache(input: VideoCachePlanRequest, options?: RealtimeAvatarRequestOptions): Promise<VideoCachePlanResponse>;
92
+ planAvatarVideoCache(input: PlanPlatformAvatarVideoCacheRequest, options?: RealtimeAvatarRequestOptions): Promise<PlanPlatformAvatarVideoCacheResponse>;
93
+ /**
94
+ * Build (or load) the .avtrv source-video cache for a video URL, blocking
95
+ * until it is ready. Only available against the Modal runtime directly;
96
+ * platform/web-proxy clients register caches implicitly through prepare().
97
+ */
98
+ registerVideoCache(input: VideoCachePlanRequest, options?: RealtimeAvatarRequestOptions): Promise<VideoAvatarCacheManifest>;
99
+ /** Read a .avtrv cache manifest by id (Modal runtime only). */
100
+ getVideoCache(cacheId: string, options?: RealtimeAvatarRequestOptions): Promise<VideoAvatarCacheManifest>;
101
+ /**
102
+ * Open a reusable session for one avatar. Carries the avatar id + render
103
+ * source so you don't repeat them per turn, and exposes `prepare`/`chat`/
104
+ * `speak`. Pair with `AvatarPlayer` (or the React `useAvatarSession` hook)
105
+ * for end-to-end playback.
106
+ */
107
+ session(config: AvatarSessionConfig): AvatarSession;
108
+ /**
109
+ * Open the low-latency single-socket realtime session: `prepare()` and every
110
+ * turn run on the SAME GPU container, skipping the per-request routing that
111
+ * can land an HTTP turn on a container that never saw the prepare.
112
+ *
113
+ * Works on every client flavor:
114
+ * - `platform()` / `webProxy()` mint a short-lived signed token from their
115
+ * `sessionToken` endpoint, then dial the GPU runtime directly — this is
116
+ * browser-safe (no headers on the WebSocket, no API key client-side).
117
+ * - `modal()` dials its `session` endpoint with auth headers (server-side
118
+ * runtimes only; browsers cannot set WebSocket headers).
119
+ * - A custom `sessionAuth` option overrides both.
120
+ *
121
+ * const live = await client.connectSession();
122
+ * await live.prepare({ source_kind: "source_video", source_video_url, avatar_id });
123
+ * for await (const event of live.turn({ mode: "speak_text", text }).events) { ... }
124
+ *
125
+ * Prefer `client.session(config).connect()` — it keeps the avatar/render
126
+ * config attached and falls back to HTTP turns transparently.
127
+ */
128
+ connectSession(options?: {
129
+ headers?: HeadersInit;
130
+ signal?: AbortSignal;
131
+ WebSocketImpl?: typeof WebSocket;
132
+ grant?: RealtimeSessionGrant;
133
+ }): Promise<RealtimeSessionSocket>;
134
+ /** Alias for callers that want the transport name to match the token-grant API. */
135
+ connectRealtimeSession(options?: {
136
+ headers?: HeadersInit;
137
+ signal?: AbortSignal;
138
+ WebSocketImpl?: typeof WebSocket;
139
+ grant?: RealtimeSessionGrant;
140
+ }): Promise<RealtimeSessionSocket>;
141
+ /**
142
+ * Mint or build a reusable realtime session grant. Browser/web-proxy clients
143
+ * get a short-lived token plus optional media-plane plan; Modal direct clients
144
+ * get the direct WS URL and authenticate when `connectRealtimeSession()` opens it.
145
+ */
146
+ createSessionGrant(options?: {
147
+ headers?: HeadersInit;
148
+ signal?: AbortSignal;
149
+ }): Promise<RealtimeSessionGrant>;
150
+ private openRealtimeSession;
151
+ /**
152
+ * The lean conversational entrypoint: one user message (plus optional
153
+ * history) against an avatar id. The avatar's stored persona is applied
154
+ * server-side; pass a system message in `history` to override it.
155
+ *
156
+ * const stream = await client.chat({ avatarId, text: "who are you?" });
157
+ * for await (const event of stream.events) { ... }
158
+ */
159
+ chat(input: {
160
+ avatarId: string;
161
+ text: string;
162
+ history?: RealtimeTurnRequest["messages"];
163
+ } & Partial<RealtimeTurnRequest>, options?: RealtimeAvatarRequestOptions): Promise<RealtimeTurnStream>;
164
+ /** Speak literal text with the avatar (no LLM), e.g. for scripted lines. */
165
+ speak(input: {
166
+ avatarId: string;
167
+ text: string;
168
+ } & Partial<RealtimeTurnRequest>, options?: RealtimeAvatarRequestOptions): Promise<RealtimeTurnStream>;
169
+ /**
170
+ * Start a realtime turn. Returns a binary `application/x-avatar-mux` stream —
171
+ * decode with `readAvatarMux` or play with `AvatarPlayer`; never `res.json()`.
172
+ */
173
+ turn(input: RealtimeTurnRequest, options?: RealtimeAvatarRequestOptions): Promise<RealtimeTurnStream>;
174
+ /**
175
+ * Non-streaming lipsync: render `audioUrl` to a talking-head MP4 in one pass
176
+ * and resolve with the stored video URL. No LLM, no TTS, no streaming — ideal
177
+ * for backend/batch use after you've created an avatar.
178
+ *
179
+ * const { url } = await client.lipsync({ audioUrl, avatarId: "ava_..." });
180
+ */
181
+ lipsync(input: LipsyncOptions, options?: RealtimeAvatarRequestOptions): Promise<LipsyncResult>;
182
+ private requireEndpoint;
183
+ private assertSessionGrant;
184
+ private websocketHeaders;
185
+ private getJson;
186
+ private postJson;
187
+ private requestJson;
188
+ private postForm;
189
+ private postMux;
190
+ private readJsonResponse;
191
+ private url;
192
+ private buildHeaders;
193
+ }
194
+ export {};
195
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}