realtime-avatar 0.26.1 → 0.27.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -1
- package/dist/{chunk-V3PQ7RNX.js → chunk-4IEGR75H.js} +6 -1
- package/dist/{chunk-MSPXJU5P.js → chunk-DOHZ365B.js} +1 -1
- package/dist/express.d.ts +2 -2
- package/dist/express.js +2 -2
- package/dist/hono.d.ts +2 -2
- package/dist/hono.js +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/nextjs.d.ts +2 -2
- package/dist/nextjs.js +2 -2
- package/dist/{proxy-client-C8M_G_Kk.d.ts → proxy-client-Cs2azqD1.d.ts} +33 -6
- package/dist/react-native.d.ts +8 -3
- package/dist/react-native.js +167 -35
- package/dist/react.d.ts +7 -2
- package/dist/react.js +168 -36
- package/dist/server.d.ts +1 -1
- package/dist/server.js +1 -1
- package/dist/tanstack-start.d.ts +2 -2
- package/dist/tanstack-start.js +2 -2
- package/dist/{types-D77jgSms.d.ts → types-6MUqx800.d.ts} +40 -3
- package/dist/{types-C7B7jOx6.d.ts → types-JtCwa0Ip.d.ts} +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -222,7 +222,7 @@ all), and the `video` policy types are deliberately not one-to-one with the wire
|
|
|
222
222
|
|
|
223
223
|
```ts
|
|
224
224
|
// calls
|
|
225
|
-
rta.startCall({ avatarId, mode?, instructions?, context?, maxSeconds?, video?, recording?, connectionHistory?, transcript?, metadata? })
|
|
225
|
+
rta.startCall({ avatarId, mode?, instructions?, context?, maxSeconds?, video?, recording?, connectionHistory?, transcript?, metadata?, llm? })
|
|
226
226
|
rta.endCall(sessionId, { reason? }) // free an abandoned call's slot; idempotent, never throws
|
|
227
227
|
rta.leaveQueue(queueTicketId, { reason? }) // give up a queued call's place in line; idempotent, never throws
|
|
228
228
|
|
|
@@ -322,6 +322,9 @@ connects), a mute made then is kept when the call goes live, and after `end()` t
|
|
|
322
322
|
once the call ended). While it is `blocked`, `AvatarCall` shows a "Tap to turn on sound" button,
|
|
323
323
|
top-centre in a polite live region, that calls `call.startAudio()`. Pass `audioUnlockPrompt` a
|
|
324
324
|
function to render your own (your words, your placement), or `false` for nothing.
|
|
325
|
+
The small "live" badge over the video is on by default; pass `showLiveBadge={false}` when your own
|
|
326
|
+
UI already shows the call's status. `AvatarVideoSurface` takes the same prop, plus `debug` to show
|
|
327
|
+
the live layer's resolution on the badge while you develop.
|
|
325
328
|
`startAudio()` must run inside a click or tap handler; it never rejects and resolves whether
|
|
326
329
|
playback is allowed afterwards.
|
|
327
330
|
|
|
@@ -350,6 +353,28 @@ a last line first.
|
|
|
350
353
|
On the lower-level hooks, `reconnect()` redials (a double tap mints once), and so does setting
|
|
351
354
|
`active` to false and back. `reset()` does not undo an end.
|
|
352
355
|
|
|
356
|
+
### Waiting for the character
|
|
357
|
+
|
|
358
|
+
Joining the room is not enough to start a conversation: the character's agent must also
|
|
359
|
+
arrive. The shared React and React Native lifecycle allows at most 30 seconds from the first
|
|
360
|
+
held grant to that readiness, including automatic retries and signaling reconnects. The
|
|
361
|
+
existing connect watchdog (12 seconds by default) also recovers a connected room whose agent
|
|
362
|
+
never arrives. A transport connection alone does not reset the retry count or buy more time.
|
|
363
|
+
|
|
364
|
+
When the budget or retry count runs out, the SDK releases the session, leaves the room and
|
|
365
|
+
ends with `phase.reason: "error"` / `onEnded({ reason: "failed" })`. The optional `phase.code`
|
|
366
|
+
distinguishes `agent_timeout` from `connection_timeout`; these are client observations, not
|
|
367
|
+
HTTP status codes. `agent_timeout` means at least one room connected but the call never became
|
|
368
|
+
ready; retries may also have transport delays. `connection_timeout` means no room connected.
|
|
369
|
+
While connecting, `phase.waitingFor` distinguishes `agent` from `transport`.
|
|
370
|
+
No automatic mint follows that failure; `reconnect()` starts a fresh budget. A call that
|
|
371
|
+
already reached live keeps LiveKit's normal recovery of its existing room.
|
|
372
|
+
|
|
373
|
+
On `useRealtimeSession` or `useSessionLifecycle`, `readyTimeoutSeconds` changes the total
|
|
374
|
+
budget (positive, default 30). `connectWatchdogSeconds` changes the per-attempt wait; disabling
|
|
375
|
+
that watchdog with zero still leaves the total budget in force. Neither setting fabricates
|
|
376
|
+
media readiness or changes the application's first-video-frame gate.
|
|
377
|
+
|
|
353
378
|
### Optional connection details
|
|
354
379
|
|
|
355
380
|
`AvatarCall` provides call status, actions and end reasons for your default UI. To show
|
|
@@ -665,7 +665,7 @@ var liveKitSessionReleaseReasonSchema = z.enum([
|
|
|
665
665
|
|
|
666
666
|
// ../http-client/src/client.ts
|
|
667
667
|
var DEFAULT_BASE_URL = "https://realtimeavatar.ai/api/v1";
|
|
668
|
-
var SDK_VERSION = "0.
|
|
668
|
+
var SDK_VERSION = "0.27.1";
|
|
669
669
|
var RealtimeAvatar = class {
|
|
670
670
|
#apiKey;
|
|
671
671
|
#baseUrl;
|
|
@@ -717,6 +717,11 @@ var RealtimeAvatar = class {
|
|
|
717
717
|
if (options.recording !== void 0) body.recording = recordingModeSchema.parse(options.recording);
|
|
718
718
|
if (options.connectionHistory !== void 0) body.connection_history = options.connectionHistory;
|
|
719
719
|
if (options.clientTools) body.capabilities = ["client_tools"];
|
|
720
|
+
if (options.llm !== void 0) {
|
|
721
|
+
const { backend, model, baseUrl, token } = options.llm;
|
|
722
|
+
body.llm = model === void 0 ? { backend } : { backend, model };
|
|
723
|
+
body.external_llm = { base_url: baseUrl, token };
|
|
724
|
+
}
|
|
720
725
|
if (options.transcript !== void 0) {
|
|
721
726
|
body.transcript_webhook = { url: options.transcript.url, secret: options.transcript.secret };
|
|
722
727
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { sessionModeSchema, liveKitSessionReleaseReasonSchema, RealtimeAvatar, ROUTE_TIMEOUT_MS, isQueued, RealtimeAvatarHttpError, RealtimeAvatarError } from './chunk-
|
|
1
|
+
import { sessionModeSchema, liveKitSessionReleaseReasonSchema, RealtimeAvatar, ROUTE_TIMEOUT_MS, isQueued, RealtimeAvatarHttpError, RealtimeAvatarError } from './chunk-4IEGR75H.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
|
|
4
4
|
// ../http-client/src/generated/error-semantics.ts
|
package/dist/express.d.ts
CHANGED
package/dist/express.js
CHANGED
package/dist/hono.d.ts
CHANGED
package/dist/hono.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as CallPolicy, C as CallMode, S as StartCallResult, E as EndCallOptions, A as Avatar, b as AvatarUpdate, c as AvatarSourceSwap, d as ClipLibraryDeclaration, e as ClipLibraryUpdate, L as LoopRedirect, f as ClipLibrary, g as AssetKind, h as Asset, i as ListSessionsOptions, U as UsageSessionPage, j as UsageSession, k as ListRecordingsQuery, l as ListRecordingsResponse, R as RecordingArtifact, m as RecordingAccessResponse, n as CreditBalance, T as TranscriptPayload } from './types-
|
|
2
|
-
export { o as AvatarClip, p as CallConnection, q as CallQueued, r as ClipDeclaration, s as ClipLibraryPlan, t as ClipSource, u as ContextMessage, v as EndCallReason, w as
|
|
1
|
+
import { a as CallPolicy, C as CallMode, S as StartCallResult, E as EndCallOptions, A as Avatar, b as AvatarUpdate, c as AvatarSourceSwap, d as ClipLibraryDeclaration, e as ClipLibraryUpdate, L as LoopRedirect, f as ClipLibrary, g as AssetKind, h as Asset, i as ListSessionsOptions, U as UsageSessionPage, j as UsageSession, k as ListRecordingsQuery, l as ListRecordingsResponse, R as RecordingArtifact, m as RecordingAccessResponse, n as CreditBalance, T as TranscriptPayload } from './types-6MUqx800.js';
|
|
2
|
+
export { o as AvatarClip, p as CallConnection, q as CallQueued, r as ClipDeclaration, s as ClipLibraryPlan, t as ClipSource, u as ContextMessage, v as EndCallReason, w as ExternalLlm, x as RecordingArtifactStatus, y as RecordingMode, V as VideoPolicy, z as isQueued, B as listRecordingsResponseSchema, D as recordingAccessResponseSchema, F as recordingArtifactSchema, G as recordingModeSchema } from './types-6MUqx800.js';
|
|
3
3
|
import { ConnectionHistoryResponse } from './connection-history.js';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { RealtimeAvatar, RealtimeAvatarError, RealtimeAvatarHttpError, clipLibraryDeclarationSchema, isQueued, listRecordingsResponseSchema, recordingAccessResponseSchema, recordingArtifactSchema, recordingModeSchema, verifyTranscript } from './chunk-
|
|
1
|
+
export { RealtimeAvatar, RealtimeAvatarError, RealtimeAvatarHttpError, clipLibraryDeclarationSchema, isQueued, listRecordingsResponseSchema, recordingAccessResponseSchema, recordingArtifactSchema, recordingModeSchema, verifyTranscript } from './chunk-4IEGR75H.js';
|
|
2
2
|
import './chunk-MCIXU6XP.js';
|
package/dist/nextjs.d.ts
CHANGED
package/dist/nextjs.js
CHANGED
|
@@ -715,8 +715,16 @@ type AvatarVideoSurfaceProps = {
|
|
|
715
715
|
* against the box and stays clickable while she is live.
|
|
716
716
|
*/
|
|
717
717
|
children?: ReactNode;
|
|
718
|
-
/**
|
|
718
|
+
/**
|
|
719
|
+
* Surface a small "live" badge when the live layer is shown. Default true. Turn it off when
|
|
720
|
+
* your own UI already says the call is live.
|
|
721
|
+
*/
|
|
719
722
|
showLiveBadge?: boolean;
|
|
723
|
+
/**
|
|
724
|
+
* Show diagnostic readouts: today, the live layer's resolution on the badge
|
|
725
|
+
* ("live · 576×1010"). Default false. A development aid, never product copy.
|
|
726
|
+
*/
|
|
727
|
+
debug?: boolean;
|
|
720
728
|
/**
|
|
721
729
|
* Reclaim the flat 0.5s de-jitter cushion on clean networks: a 1Hz closed loop
|
|
722
730
|
* over `getStats()` that descends toward a 150ms floor while jitter and loss stay
|
|
@@ -1362,6 +1370,9 @@ type ReconnectPolicy = {
|
|
|
1362
1370
|
* {@link SessionLifecycleApi.reconnect}.
|
|
1363
1371
|
*/
|
|
1364
1372
|
type SessionEndReason = "idle" | "disconnected" | "error" | "user";
|
|
1373
|
+
/** Client-observed readiness failure, not an HTTP/provider error code. `agent_timeout` means
|
|
1374
|
+
* at least one room connected without reaching agent readiness; retries may also have transport delays. */
|
|
1375
|
+
type SessionReadinessFailure = "agent_timeout" | "connection_timeout";
|
|
1365
1376
|
type SessionLifecyclePhase = {
|
|
1366
1377
|
kind: "idle";
|
|
1367
1378
|
} | {
|
|
@@ -1372,6 +1383,7 @@ type SessionLifecyclePhase = {
|
|
|
1372
1383
|
} | {
|
|
1373
1384
|
kind: "connecting";
|
|
1374
1385
|
grant: LiveKitSessionGrant;
|
|
1386
|
+
waitingFor?: "transport" | "agent";
|
|
1375
1387
|
} | {
|
|
1376
1388
|
kind: "live";
|
|
1377
1389
|
} | {
|
|
@@ -1384,9 +1396,11 @@ type SessionLifecyclePhase = {
|
|
|
1384
1396
|
attempt: number;
|
|
1385
1397
|
/** Native LiveKit recovery keeps the same grant; fresh-grant recovery re-mints. */
|
|
1386
1398
|
strategy: "in-place" | "fresh-grant";
|
|
1399
|
+
reason?: SessionReadinessFailure;
|
|
1387
1400
|
} | {
|
|
1388
1401
|
kind: "ended";
|
|
1389
1402
|
reason?: SessionEndReason;
|
|
1403
|
+
code?: SessionReadinessFailure;
|
|
1390
1404
|
};
|
|
1391
1405
|
type SessionLifecyclePhaseKind = SessionLifecyclePhase["kind"];
|
|
1392
1406
|
/**
|
|
@@ -1401,14 +1415,18 @@ type RecoveryState = {
|
|
|
1401
1415
|
} | {
|
|
1402
1416
|
kind: "refreshing";
|
|
1403
1417
|
attempt: number;
|
|
1418
|
+
reason?: SessionReadinessFailure;
|
|
1404
1419
|
} | {
|
|
1405
1420
|
kind: "reconnecting";
|
|
1406
1421
|
attempt: number;
|
|
1422
|
+
reason?: SessionReadinessFailure;
|
|
1407
1423
|
} | {
|
|
1408
1424
|
kind: "failed";
|
|
1425
|
+
reason?: SessionReadinessFailure;
|
|
1409
1426
|
} | {
|
|
1410
1427
|
kind: "ended";
|
|
1411
1428
|
reason?: SessionEndReason;
|
|
1429
|
+
code?: SessionReadinessFailure;
|
|
1412
1430
|
};
|
|
1413
1431
|
/**
|
|
1414
1432
|
* The CLIENT-OWNED idle budget (seconds): how long "quiet" before the client-
|
|
@@ -1458,8 +1476,8 @@ type UseSessionLifecycleInput<T extends LLMProvider = LLMProvider> = {
|
|
|
1458
1476
|
/** Auto-reconnect give-up bound. Default {@link MAX_RECONNECT_ATTEMPTS}. */
|
|
1459
1477
|
maxReconnectAttempts?: number;
|
|
1460
1478
|
/**
|
|
1461
|
-
*
|
|
1462
|
-
* (seconds). Default {@link DEFAULT_CONNECT_WATCHDOG_SECONDS}.
|
|
1479
|
+
* Per-attempt wait for the room connection, then for its first agent, before giving the
|
|
1480
|
+
* slot back (seconds). Default {@link DEFAULT_CONNECT_WATCHDOG_SECONDS}.
|
|
1463
1481
|
*
|
|
1464
1482
|
* A grant that never reaches a live room is invisible to every other timer here:
|
|
1465
1483
|
* the idle clock only runs once connected, and LiveKit reports no disconnect for
|
|
@@ -1468,9 +1486,16 @@ type UseSessionLifecycleInput<T extends LLMProvider = LLMProvider> = {
|
|
|
1468
1486
|
* the caller's only slot, so their retry is refused by a call they never saw.
|
|
1469
1487
|
* Measured in prod: 8 of 12 never-connected sessions held for 76-81s.
|
|
1470
1488
|
*
|
|
1471
|
-
* Set 0 to disable
|
|
1489
|
+
* Set 0 to disable per-attempt recovery; the total readiness budget still applies.
|
|
1472
1490
|
*/
|
|
1473
1491
|
connectWatchdogSeconds?: number;
|
|
1492
|
+
/**
|
|
1493
|
+
* Total pre-live readiness budget from the first held grant, including automatic retries.
|
|
1494
|
+
* A transport connection alone never resets it. Default {@link DEFAULT_READY_TIMEOUT_SECONDS}.
|
|
1495
|
+
* Non-positive/non-finite overrides use the default. Explicit reconnect starts a new budget.
|
|
1496
|
+
* The existing connect watchdog also bounds each connected room's wait for its first agent.
|
|
1497
|
+
*/
|
|
1498
|
+
readyTimeoutSeconds?: number;
|
|
1474
1499
|
/** Forwarded to {@link useLiveKitAvatarGrant}. Defaults true (queue auto-retry). */
|
|
1475
1500
|
autoRetryBusy?: boolean;
|
|
1476
1501
|
requestOptions?: UseLiveKitAvatarGrantInput<T>["requestOptions"];
|
|
@@ -1491,7 +1516,7 @@ type SessionLifecycleApi = {
|
|
|
1491
1516
|
grant: LiveKitSessionGrant | null;
|
|
1492
1517
|
/** The underlying capacity signal (queue position/size, error) — unchanged. */
|
|
1493
1518
|
capacity: LiveKitCapacityState;
|
|
1494
|
-
/** The DOM recovery contract: auto-reconnect attempts since the last
|
|
1519
|
+
/** The DOM recovery contract: auto-reconnect attempts since the last room + agent readiness. */
|
|
1495
1520
|
attempt: number;
|
|
1496
1521
|
/**
|
|
1497
1522
|
* ms until the CLIENT-ENFORCED idle end, or null when not connected/live. Drives
|
|
@@ -1550,6 +1575,8 @@ type SessionLifecycleApi = {
|
|
|
1550
1575
|
/** Reset to idle (mode/avatar change). Does not undo {@link end}: an ended call stays ended. */
|
|
1551
1576
|
reset: () => void;
|
|
1552
1577
|
};
|
|
1578
|
+
/** Maximum automatic startup wait across grants; successful room + agent readiness ends it. */
|
|
1579
|
+
declare const DEFAULT_READY_TIMEOUT_SECONDS = 30;
|
|
1553
1580
|
declare function useSessionLifecycle<T extends LLMProvider = LLMProvider>(input: UseSessionLifecycleInput<T>): SessionLifecycleApi;
|
|
1554
1581
|
/**
|
|
1555
1582
|
* The optional realtime-session sinks the bridge ALSO fills when given the richer
|
|
@@ -2018,4 +2045,4 @@ interface ProxyClientOptions {
|
|
|
2018
2045
|
}
|
|
2019
2046
|
declare function createProxyClient(options: ProxyClientOptions): AvatarSessionClient;
|
|
2020
2047
|
|
|
2021
|
-
export {
|
|
2048
|
+
export { MAX_SESSION_INSTRUCTIONS_CHARS as $, type AvatarVideoFit as A, type BehaviorSnapshot as B, type CallTranscript as C, DEFAULT_APPROACHING_END_LEAD_SECONDS as D, type EndReason as E, type FishTtsModel as F, type Governor as G, type GovernorConfig as H, type GovernorSignal as I, type GovernorState as J, type GraceWindowClosedEvent as K, type LiveKitSessionGrant as L, type GraceWindowOpenEvent as M, type GraceWindowState as N, type IdleWarningEvent as O, type InboundRtpCursor as P, type InboundRtpReading as Q, type KnownBehaviorState as R, type LLMProvider as S, type LLMSelection as T, type LiveKitAvatarGrantState as U, type LiveKitAvatarGrantStatus as V, type LiveKitCapacityState as W, type LiveKitConnectionStatus as X, type LiveKitSessionRequest as Y, type LiveKitSessionStartResult as Z, MAX_RECONNECT_ATTEMPTS as _, AdaptivePlayoutController as a, type NetworkQualityStatus as a$, type ProxyClientOptions as a0, type QualityCap as a1, RECONNECT_BACKOFF_MS as a2, type RealtimeAvatarRequestOptions as a3, type RealtimeSessionApi as a4, type RealtimeSessionMedia as a5, type RealtimeSessionRoomSinks as a6, type ReconnectPolicy as a7, type ReconnectingEvent as a8, type RecoveryState as a9, isNativeLiveTrackSubscribed as aA, knownBehaviorStates as aB, mapTurnState as aC, readInboundRtp as aD, sessionBehaviorSchema as aE, sessionClipSchema as aF, splitCallTranscript as aG, useAvatarAdaptivePlayoutDelay as aH, useAvatarCamera as aI, useAvatarPlayoutDelay as aJ, useAvatarQualityGovernor as aK, useCallTranscript as aL, useLiveKitAvatarGrant as aM, useLiveTrackProducing as aN, useMicLease as aO, useRealtimeSession as aP, useReleaseMicLeaseOnTrackEnded as aQ, useSessionLifecycle as aR, type CallMicrophone as aS, type CallAudioPlayback as aT, type CallMicrophoneProblem as aU, AvatarVideoSurface as aV, type AvatarVideoSurfaceProps as aW, type LivePlaybackKeeper as aX, MIC_LEASE_ENDED_TIMEOUT_MS as aY, type MicLease as aZ, NETWORK_QUALITY_POLICY as a_, type RetryStep as aa, type SendTurnOptions as ab, type SessionBehavior as ac, type SessionClip as ad, type SessionClocks as ae, type SessionEndReason as af, type SessionLifecycleApi as ag, type SessionLifecyclePhase as ah, type SessionLifecyclePhaseKind as ai, SessionLifecycleRoomBridge as aj, type SessionLifecycleRoomBridgeProps as ak, type SessionReadinessFailure as al, type SurfaceLayers as am, type TranscriptSender as an, type TranscriptSenderOptions as ao, type TurnState as ap, type TurnTimeoutEvent as aq, type UseAvatarQualityGovernorInput as ar, type UseLiveKitAvatarGrantInput as as, type UseRealtimeSessionInput as at, type UseSessionLifecycleInput as au, type VoiceSpec as av, type VoiceSpecInput as aw, capacityErrorFromBusy as ax, capacityStateFromGrant as ay, createProxyClient as az, type AdaptivePlayoutDecision as b, type PlayableVideoElement as b0, RealtimeAvatarCapacityError as b1, RealtimeAvatarLiveKitRoom as b2, type RealtimeAvatarLiveKitRoomProps as b3, shouldReplayPendingTurn as b4, type AdaptivePlayoutOptions as c, type AdaptivePlayoutSample as d, type ApproachingEndEvent as e, type ApproachingEndReason as f, type AvatarConnectionDetails as g, type AvatarSessionClient as h, type CallTranscriptSegment as i, type CartesiaTtsModel as j, type ClipResult as k, type ClosingTurnResult as l, type CreditsLowEvent as m, DEFAULT_CREDITS_LOW_LEAD_SECONDS as n, DEFAULT_GOVERNOR_CONFIG as o, DEFAULT_GRACE_CEILING_SECONDS as p, DEFAULT_GRACE_WINDOW_LEAD_SECONDS as q, DEFAULT_IDLE_SECONDS as r, DEFAULT_IDLE_WARN_LEAD_SECONDS as s, DEFAULT_READY_TIMEOUT_SECONDS as t, DEFAULT_TURN_TIMEOUT_SECONDS as u, type DeclaredInputSource as v, type EndedEvent as w, type ExtendResult as x, type FreezeReadingFn as y, type GovernorAction as z };
|
package/dist/react-native.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LiveKitRoomProps } from '@livekit/react-native';
|
|
2
2
|
export { AudioSession, VideoTrack, VideoTrackProps, registerGlobals } from '@livekit/react-native';
|
|
3
|
-
import { L as LiveKitSessionGrant, A as AvatarVideoFit } from './proxy-client-
|
|
4
|
-
export { a as AdaptivePlayoutController, b as AdaptivePlayoutDecision, c as AdaptivePlayoutOptions, d as AdaptivePlayoutSample, e as ApproachingEndEvent, f as ApproachingEndReason, g as AvatarConnectionDetails, h as AvatarSessionClient, B as BehaviorSnapshot, C as CallTranscript, i as CallTranscriptSegment, j as CartesiaTtsModel, k as ClipResult, l as ClosingTurnResult, m as CreditsLowEvent, D as DEFAULT_APPROACHING_END_LEAD_SECONDS, n as DEFAULT_CREDITS_LOW_LEAD_SECONDS, o as DEFAULT_GOVERNOR_CONFIG, p as DEFAULT_GRACE_CEILING_SECONDS, q as DEFAULT_GRACE_WINDOW_LEAD_SECONDS, r as DEFAULT_IDLE_SECONDS, s as DEFAULT_IDLE_WARN_LEAD_SECONDS, t as
|
|
3
|
+
import { L as LiveKitSessionGrant, A as AvatarVideoFit } from './proxy-client-Cs2azqD1.js';
|
|
4
|
+
export { a as AdaptivePlayoutController, b as AdaptivePlayoutDecision, c as AdaptivePlayoutOptions, d as AdaptivePlayoutSample, e as ApproachingEndEvent, f as ApproachingEndReason, g as AvatarConnectionDetails, h as AvatarSessionClient, B as BehaviorSnapshot, C as CallTranscript, i as CallTranscriptSegment, j as CartesiaTtsModel, k as ClipResult, l as ClosingTurnResult, m as CreditsLowEvent, D as DEFAULT_APPROACHING_END_LEAD_SECONDS, n as DEFAULT_CREDITS_LOW_LEAD_SECONDS, o as DEFAULT_GOVERNOR_CONFIG, p as DEFAULT_GRACE_CEILING_SECONDS, q as DEFAULT_GRACE_WINDOW_LEAD_SECONDS, r as DEFAULT_IDLE_SECONDS, s as DEFAULT_IDLE_WARN_LEAD_SECONDS, t as DEFAULT_READY_TIMEOUT_SECONDS, u as DEFAULT_TURN_TIMEOUT_SECONDS, v as DeclaredInputSource, E as EndReason, w as EndedEvent, x as ExtendResult, F as FishTtsModel, y as FreezeReadingFn, G as Governor, z as GovernorAction, H as GovernorConfig, I as GovernorSignal, J as GovernorState, K as GraceWindowClosedEvent, M as GraceWindowOpenEvent, N as GraceWindowState, O as IdleWarningEvent, P as InboundRtpCursor, Q as InboundRtpReading, R as KnownBehaviorState, S as LLMProvider, T as LLMSelection, U as LiveKitAvatarGrantState, V as LiveKitAvatarGrantStatus, W as LiveKitCapacityState, X as LiveKitConnectionStatus, Y as LiveKitSessionRequest, Z as LiveKitSessionStartResult, _ as MAX_RECONNECT_ATTEMPTS, $ as MAX_SESSION_INSTRUCTIONS_CHARS, a0 as ProxyClientOptions, a1 as QualityCap, a2 as RECONNECT_BACKOFF_MS, a3 as RealtimeAvatarRequestOptions, a4 as RealtimeSessionApi, a5 as RealtimeSessionMedia, a6 as RealtimeSessionRoomSinks, a7 as ReconnectPolicy, a8 as ReconnectingEvent, a9 as RecoveryState, aa as RetryStep, ab as SendTurnOptions, ac as SessionBehavior, ad as SessionClip, ae as SessionClocks, af as SessionEndReason, ag as SessionLifecycleApi, ah as SessionLifecyclePhase, ai as SessionLifecyclePhaseKind, aj as SessionLifecycleRoomBridge, ak as SessionLifecycleRoomBridgeProps, al as SessionReadinessFailure, am as SurfaceLayers, an as TranscriptSender, ao as TranscriptSenderOptions, ap as TurnState, aq as TurnTimeoutEvent, ar as UseAvatarQualityGovernorInput, as as UseLiveKitAvatarGrantInput, at as UseRealtimeSessionInput, au as UseSessionLifecycleInput, av as VoiceSpec, aw as VoiceSpecInput, ax as capacityErrorFromBusy, ay as capacityStateFromGrant, az as createProxyClient, aA as isNativeLiveTrackSubscribed, aB as knownBehaviorStates, aC as mapTurnState, aD as readInboundRtp, aE as sessionBehaviorSchema, aF as sessionClipSchema, aG as splitCallTranscript, aH as useAvatarAdaptivePlayoutDelay, aI as useAvatarCamera, aJ as useAvatarPlayoutDelay, aK as useAvatarQualityGovernor, aL as useCallTranscript, aM as useLiveKitAvatarGrant, aN as useLiveTrackProducing, aO as useMicLease, aP as useRealtimeSession, aQ as useReleaseMicLeaseOnTrackEnded, aR as useSessionLifecycle } from './proxy-client-Cs2azqD1.js';
|
|
5
5
|
import { ReactNode, ReactElement } from 'react';
|
|
6
6
|
import { StyleProp, ViewStyle } from 'react-native';
|
|
7
7
|
export { useChat, useConnectionState, useLocalParticipant, useRoomContext, useTrackToggle, useTranscriptions, useVoiceAssistant } from '@livekit/components-react';
|
|
@@ -87,8 +87,13 @@ type AvatarVideoSurfaceProps = {
|
|
|
87
87
|
style?: StyleProp<ViewStyle>;
|
|
88
88
|
/** Overlay content rendered above both media layers (badges, chrome, scrims). */
|
|
89
89
|
children?: ReactNode;
|
|
90
|
-
/**
|
|
90
|
+
/**
|
|
91
|
+
* Surface a small "live" badge when the live layer is shown. Default true. Turn it off when
|
|
92
|
+
* your own UI already says the call is live.
|
|
93
|
+
*/
|
|
91
94
|
showLiveBadge?: boolean;
|
|
95
|
+
/** Show diagnostic readouts: today, the live layer's resolution on the badge. Default false. */
|
|
96
|
+
debug?: boolean;
|
|
92
97
|
/**
|
|
93
98
|
* Reclaim the flat 0.5s de-jitter cushion on clean networks — the same opt-in
|
|
94
99
|
* closed loop the web surface takes, sharing the same implementation. Default
|