@convai/web-sdk 1.8.0-beta.3 → 1.8.0-beta.5
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 +37 -1
- package/dist/core/AudioManager.d.ts +3 -3
- package/dist/core/AudioManager.js +1 -1
- package/dist/core/CharacterVersionManager.d.ts +100 -0
- package/dist/core/CharacterVersionManager.d.ts.map +1 -0
- package/dist/core/CharacterVersionManager.js +227 -0
- package/dist/core/CharacterVersionManager.js.map +1 -0
- package/dist/core/ConnectionStateHandler.d.ts +1 -1
- package/dist/core/ConvaiClient.d.ts +19 -4
- package/dist/core/ConvaiClient.d.ts.map +1 -1
- package/dist/core/ConvaiClient.js +74 -17
- package/dist/core/ConvaiClient.js.map +1 -1
- package/dist/core/MemoryManager.d.ts +1 -1
- package/dist/core/MessageHandler.d.ts +3 -3
- package/dist/core/MessageHandler.js +2 -2
- package/dist/core/SSESession.d.ts +1 -1
- package/dist/core/SSESession.js +1 -1
- package/dist/core/ScreenShareManager.d.ts +2 -2
- package/dist/core/ScreenShareManager.js +2 -2
- package/dist/core/VideoManager.d.ts +2 -2
- package/dist/core/VideoManager.js +3 -3
- package/dist/core/characterReference.d.ts +40 -0
- package/dist/core/characterReference.d.ts.map +1 -0
- package/dist/core/characterReference.js +72 -0
- package/dist/core/characterReference.js.map +1 -0
- package/dist/core/connectRequest.d.ts +1 -1
- package/dist/core/contextUpdateRequest.d.ts +1 -1
- package/dist/core/index.d.ts +14 -12
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +13 -10
- package/dist/core/index.js.map +1 -1
- package/dist/core/types.d.ts +257 -4
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/videoSourceState.d.ts +1 -1
- package/dist/core/visionRequest.d.ts +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/lipsync-helpers/createBlendshapeQueue.d.ts +2 -2
- package/dist/lipsync-helpers/createBlendshapeQueue.js +2 -2
- package/dist/lipsync-helpers/declarativeMapping.d.ts +1 -1
- package/dist/lipsync-helpers/declarativeMapping.js +2 -2
- package/dist/lipsync-helpers/index.d.ts +12 -12
- package/dist/lipsync-helpers/index.js +9 -9
- package/dist/lipsync-helpers/mhaLimitDrivers.js +2 -2
- package/dist/lipsync-helpers/naturalness/processor.d.ts +1 -1
- package/dist/lipsync-helpers/naturalness/processor.js +1 -1
- package/dist/lipsync-helpers/naturalness/profiles/mha.d.ts +1 -1
- package/dist/lipsync-helpers/naturalness/profiles/mha.js +1 -1
- package/dist/lipsync-helpers/presetMappers.d.ts +1 -1
- package/dist/react/components/ConvaiWidget.d.ts +1 -1
- package/dist/react/components/ConvaiWidget.js +4 -4
- package/dist/react/components/index.d.ts +1 -1
- package/dist/react/components/index.js +1 -1
- package/dist/react/components/rtc-widget/components/AudioSettingsPanel.d.ts +1 -1
- package/dist/react/components/rtc-widget/components/ConviMessage.js +3 -3
- package/dist/react/components/rtc-widget/components/FloatingVideo.js +3 -3
- package/dist/react/components/rtc-widget/components/MessageBubble.js +1 -1
- package/dist/react/components/rtc-widget/components/MessageList.d.ts +1 -1
- package/dist/react/components/rtc-widget/components/MessageList.js +4 -4
- package/dist/react/components/rtc-widget/components/UserMessage.js +3 -3
- package/dist/react/components/rtc-widget/components/conviComponents/ConviButton.js +4 -4
- package/dist/react/components/rtc-widget/components/conviComponents/ConviFooter.js +3 -3
- package/dist/react/components/rtc-widget/components/conviComponents/ConviHeader.js +4 -4
- package/dist/react/components/rtc-widget/components/conviComponents/SettingsTray.js +3 -3
- package/dist/react/components/rtc-widget/components/conviComponents/VoiceModeOverlay.js +3 -3
- package/dist/react/components/rtc-widget/components/conviComponents/index.d.ts +5 -5
- package/dist/react/components/rtc-widget/components/conviComponents/index.js +5 -5
- package/dist/react/components/rtc-widget/components/index.d.ts +8 -8
- package/dist/react/components/rtc-widget/components/index.js +9 -9
- package/dist/react/components/rtc-widget/index.d.ts +5 -5
- package/dist/react/components/rtc-widget/index.js +3 -3
- package/dist/react/components/rtc-widget/styles/icons.d.ts +1 -1
- package/dist/react/components/rtc-widget/styles/icons.js +1 -1
- package/dist/react/components/rtc-widget/styles/index.d.ts +5 -5
- package/dist/react/components/rtc-widget/styles/index.js +4 -4
- package/dist/react/components/rtc-widget/styles/styledComponents.js +1 -1
- package/dist/react/hooks/index.d.ts +3 -3
- package/dist/react/hooks/index.js +3 -3
- package/dist/react/hooks/useCharacterInfo.js +1 -1
- package/dist/react/hooks/useConvaiClient.d.ts +1 -1
- package/dist/react/hooks/useConvaiClient.d.ts.map +1 -1
- package/dist/react/hooks/useConvaiClient.js +8 -3
- package/dist/react/hooks/useConvaiClient.js.map +1 -1
- package/dist/react/index.d.ts +6 -6
- package/dist/react/index.js +6 -6
- package/dist/vanilla/AudioRenderer.js +1 -1
- package/dist/vanilla/ConvaiWidget.d.ts +1 -1
- package/dist/vanilla/ConvaiWidget.js +4 -4
- package/dist/vanilla/WebSocketSession.d.ts +1 -1
- package/dist/vanilla/WebSocketSession.js +1 -1
- package/dist/vanilla/index.d.ts +6 -5
- package/dist/vanilla/index.d.ts.map +1 -1
- package/dist/vanilla/index.js +5 -4
- package/dist/vanilla/index.js.map +1 -1
- package/dist/vanilla/types.d.ts +1 -1
- package/dist/vanilla/websocket.d.ts +1 -1
- package/dist/vanilla/websocket.js +2 -2
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +5 -4
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import { Room, RoomEvent, DefaultReconnectPolicy, setLogLevel, } from "livekit-client";
|
|
2
2
|
setLogLevel("warn");
|
|
3
|
-
import { DisconnectReasonEnum, } from "./types";
|
|
4
|
-
import { AudioManager } from "./AudioManager";
|
|
5
|
-
import { VideoManager } from "./VideoManager";
|
|
6
|
-
import { ScreenShareManager } from "./ScreenShareManager";
|
|
7
|
-
import { MessageHandler } from "./MessageHandler";
|
|
8
|
-
import { SDK_VERSION } from "../version";
|
|
9
|
-
import { EventEmitter } from "./EventEmitter";
|
|
10
|
-
import { MemoryManager } from "./MemoryManager";
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
3
|
+
import { DisconnectReasonEnum, } from "./types.js";
|
|
4
|
+
import { AudioManager } from "./AudioManager.js";
|
|
5
|
+
import { VideoManager } from "./VideoManager.js";
|
|
6
|
+
import { ScreenShareManager } from "./ScreenShareManager.js";
|
|
7
|
+
import { MessageHandler } from "./MessageHandler.js";
|
|
8
|
+
import { SDK_VERSION } from "../version.js";
|
|
9
|
+
import { EventEmitter } from "./EventEmitter.js";
|
|
10
|
+
import { MemoryManager } from "./MemoryManager.js";
|
|
11
|
+
import { CharacterVersionManager } from "./CharacterVersionManager.js";
|
|
12
|
+
import { resolveCharacterReference, } from "./characterReference.js";
|
|
13
|
+
import { ConnectionStateHandler } from "./ConnectionStateHandler.js";
|
|
14
|
+
import { buildActionConnectConfig, buildBlendshapeConnectConfig, buildEmotionConnectConfig, } from "./connectRequest.js";
|
|
15
|
+
import { shouldPreemptForContextUpdateResponse, shouldPreemptForExplicitRespondMode, } from "./contextUpdateRequest.js";
|
|
16
|
+
import { resolveVisionInputConfig, serializeVisionInputConfig, } from "./visionRequest.js";
|
|
17
|
+
import { SSESession } from "./SSESession.js";
|
|
18
|
+
import { isValidLogicalTurnId } from "./logicalTurn.js";
|
|
17
19
|
// Module-level registry — populated by importing @convai/web-sdk/vanilla/websocket
|
|
18
20
|
let _wsFactory = null;
|
|
19
21
|
function normalizeStateOfMind(value) {
|
|
@@ -81,6 +83,10 @@ export class ConvaiClient extends EventEmitter {
|
|
|
81
83
|
this._apiKey = null;
|
|
82
84
|
this._authToken = null;
|
|
83
85
|
this._characterId = null;
|
|
86
|
+
this._characterVersion = null;
|
|
87
|
+
this._characterReference = null;
|
|
88
|
+
this._characterVersionManager = null;
|
|
89
|
+
this._characterVersionManagerKey = null;
|
|
84
90
|
this._characterSessionId = "-1";
|
|
85
91
|
this._isBotReady = false;
|
|
86
92
|
this._participantSid = "";
|
|
@@ -169,6 +175,42 @@ export class ConvaiClient extends EventEmitter {
|
|
|
169
175
|
get characterId() {
|
|
170
176
|
return this._characterId;
|
|
171
177
|
}
|
|
178
|
+
get characterVersion() {
|
|
179
|
+
return this._characterVersion;
|
|
180
|
+
}
|
|
181
|
+
get characterReference() {
|
|
182
|
+
return this._characterReference;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Character version manager for the configured character. Built from the
|
|
186
|
+
* live connection when there is one, otherwise from the stored config, so
|
|
187
|
+
* versions can be listed and released before connecting. Null without an
|
|
188
|
+
* API key (the Character REST platform does not accept realtime auth tokens).
|
|
189
|
+
*/
|
|
190
|
+
get characterVersions() {
|
|
191
|
+
const apiKey = this._apiKey ?? this._storedConfig?.apiKey ?? null;
|
|
192
|
+
const rawCharacterId = this._characterId ?? this._storedConfig?.characterId ?? null;
|
|
193
|
+
if (!apiKey || !rawCharacterId)
|
|
194
|
+
return null;
|
|
195
|
+
let characterId = rawCharacterId;
|
|
196
|
+
try {
|
|
197
|
+
characterId = resolveCharacterReference(rawCharacterId).characterId;
|
|
198
|
+
}
|
|
199
|
+
catch {
|
|
200
|
+
// A malformed id is reported by connect(); use it verbatim here.
|
|
201
|
+
}
|
|
202
|
+
const baseUrl = this._storedConfig?.characterApiUrl ?? undefined;
|
|
203
|
+
const key = `${apiKey}\u0000${characterId}\u0000${baseUrl ?? ""}`;
|
|
204
|
+
if (this._characterVersionManagerKey !== key) {
|
|
205
|
+
this._characterVersionManager = new CharacterVersionManager({
|
|
206
|
+
apiKey,
|
|
207
|
+
characterId,
|
|
208
|
+
baseUrl,
|
|
209
|
+
});
|
|
210
|
+
this._characterVersionManagerKey = key;
|
|
211
|
+
}
|
|
212
|
+
return this._characterVersionManager;
|
|
213
|
+
}
|
|
172
214
|
get room() {
|
|
173
215
|
return this._room;
|
|
174
216
|
}
|
|
@@ -430,6 +472,8 @@ export class ConvaiClient extends EventEmitter {
|
|
|
430
472
|
this._apiKey = configWithDefaults.apiKey ?? null;
|
|
431
473
|
this._authToken = configWithDefaults.authToken ?? null;
|
|
432
474
|
this._characterId = configWithDefaults.characterId;
|
|
475
|
+
this._characterVersion = configWithDefaults.characterVersion ?? null;
|
|
476
|
+
this._characterReference = configWithDefaults.characterReference;
|
|
433
477
|
// Determine connection type based on enableVideo
|
|
434
478
|
const connType = configWithDefaults.enableVideo ? "video" : "audio";
|
|
435
479
|
this._connectionType = connType;
|
|
@@ -453,7 +497,7 @@ export class ConvaiClient extends EventEmitter {
|
|
|
453
497
|
this._sseSession = new SSESession({
|
|
454
498
|
interactionApiUrl: configWithDefaults.interactionApiUrl,
|
|
455
499
|
authorization: configWithDefaults.authToken ?? configWithDefaults.apiKey,
|
|
456
|
-
characterId: configWithDefaults.
|
|
500
|
+
characterId: configWithDefaults.characterReference,
|
|
457
501
|
getCharacterSessionId: () => this._characterSessionId,
|
|
458
502
|
takeStateOfMind: () => {
|
|
459
503
|
const stateOfMind = this._stateOfMind;
|
|
@@ -496,7 +540,7 @@ export class ConvaiClient extends EventEmitter {
|
|
|
496
540
|
// Prepare request body with required parameters
|
|
497
541
|
const characterSessionIdToSend = configWithDefaults.characterSessionId ?? this._characterSessionId;
|
|
498
542
|
const requestBody = {
|
|
499
|
-
character_id: configWithDefaults.
|
|
543
|
+
character_id: configWithDefaults.characterReference,
|
|
500
544
|
...(stateOfMind ? { state_of_mind: stateOfMind } : {}),
|
|
501
545
|
...(configWithDefaults.endUserId && {
|
|
502
546
|
end_user_id: configWithDefaults.endUserId,
|
|
@@ -686,7 +730,16 @@ export class ConvaiClient extends EventEmitter {
|
|
|
686
730
|
if (missingCredential || !configWithDefaults.characterId) {
|
|
687
731
|
throw new Error("Either apiKey or authToken is required, and characterId is required");
|
|
688
732
|
}
|
|
689
|
-
|
|
733
|
+
// Split the character id from its version selector. The bare UUID names
|
|
734
|
+
// the character everywhere inside the SDK (memory, character info); the
|
|
735
|
+
// joined reference is what the runtime receives.
|
|
736
|
+
const reference = resolveCharacterReference(configWithDefaults.characterId, configWithDefaults.characterVersion);
|
|
737
|
+
return {
|
|
738
|
+
...configWithDefaults,
|
|
739
|
+
characterId: reference.characterId,
|
|
740
|
+
characterVersion: reference.version,
|
|
741
|
+
characterReference: reference.reference,
|
|
742
|
+
};
|
|
690
743
|
}
|
|
691
744
|
/**
|
|
692
745
|
* Consume a /connect response and bring up the transport.
|
|
@@ -718,6 +771,8 @@ export class ConvaiClient extends EventEmitter {
|
|
|
718
771
|
this._apiKey = configWithDefaults.apiKey ?? null;
|
|
719
772
|
this._authToken = configWithDefaults.authToken ?? null;
|
|
720
773
|
this._characterId = configWithDefaults.characterId;
|
|
774
|
+
this._characterVersion = configWithDefaults.characterVersion ?? null;
|
|
775
|
+
this._characterReference = configWithDefaults.characterReference;
|
|
721
776
|
const connType = configWithDefaults.enableVideo ? "video" : "audio";
|
|
722
777
|
this._connectionType = connType;
|
|
723
778
|
const transportType = configWithDefaults.transport ?? "livekit";
|
|
@@ -1016,6 +1071,8 @@ export class ConvaiClient extends EventEmitter {
|
|
|
1016
1071
|
this._apiKey = null;
|
|
1017
1072
|
this._authToken = null;
|
|
1018
1073
|
this._characterId = null;
|
|
1074
|
+
this._characterVersion = null;
|
|
1075
|
+
this._characterReference = null;
|
|
1019
1076
|
this._endUserId = null;
|
|
1020
1077
|
this._endUserMetadata = null;
|
|
1021
1078
|
this._memoryManager = null; // Clear memory manager on disconnect
|