@convai/web-sdk 1.6.1-beta.0 → 1.7.0-beta.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/dist/core/CharacterRoster.d.ts +68 -0
- package/dist/core/CharacterRoster.d.ts.map +1 -0
- package/dist/core/CharacterRoster.js +235 -0
- package/dist/core/CharacterRoster.js.map +1 -0
- package/dist/core/ConvaiClient.d.ts +39 -1
- package/dist/core/ConvaiClient.d.ts.map +1 -1
- package/dist/core/ConvaiClient.js +228 -6
- package/dist/core/ConvaiClient.js.map +1 -1
- package/dist/core/MessageHandler.d.ts.map +1 -1
- package/dist/core/MessageHandler.js +26 -4
- package/dist/core/MessageHandler.js.map +1 -1
- package/dist/core/types.d.ts +160 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/lipsync-helpers/index.d.ts +4 -0
- package/dist/lipsync-helpers/index.d.ts.map +1 -1
- package/dist/lipsync-helpers/index.js +7 -0
- package/dist/lipsync-helpers/index.js.map +1 -1
- package/dist/lipsync-helpers/mhaLimitDrivers.d.ts +33 -0
- package/dist/lipsync-helpers/mhaLimitDrivers.d.ts.map +1 -0
- package/dist/lipsync-helpers/mhaLimitDrivers.js +60 -0
- package/dist/lipsync-helpers/mhaLimitDrivers.js.map +1 -0
- package/dist/lipsync-helpers/naturalness/processor.d.ts +24 -0
- package/dist/lipsync-helpers/naturalness/processor.d.ts.map +1 -0
- package/dist/lipsync-helpers/naturalness/processor.js +162 -0
- package/dist/lipsync-helpers/naturalness/processor.js.map +1 -0
- package/dist/lipsync-helpers/naturalness/profiles/mha.d.ts +7 -0
- package/dist/lipsync-helpers/naturalness/profiles/mha.d.ts.map +1 -0
- package/dist/lipsync-helpers/naturalness/profiles/mha.js +105 -0
- package/dist/lipsync-helpers/naturalness/profiles/mha.js.map +1 -0
- package/dist/lipsync-helpers/naturalness/types.d.ts +68 -0
- package/dist/lipsync-helpers/naturalness/types.d.ts.map +1 -0
- package/dist/lipsync-helpers/naturalness/types.js +11 -0
- package/dist/lipsync-helpers/naturalness/types.js.map +1 -0
- package/dist/react/hooks/useConvaiClient.d.ts.map +1 -1
- package/dist/react/hooks/useConvaiClient.js +3 -0
- package/dist/react/hooks/useConvaiClient.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { ActiveCharacterChange, CharacterRosterChange, ConvaiCharacterInstance, ServerResponseExtras, UpdateCharacterRosterOptions } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Roster state for a multi-character room: which character instances exist,
|
|
4
|
+
* which one receives user turns, and the routing/roster epochs that fence
|
|
5
|
+
* concurrent changes.
|
|
6
|
+
*
|
|
7
|
+
* Pure state plus command construction — it owns no transport. ConvaiClient
|
|
8
|
+
* feeds it from three sources (the connect response, per-instance bot-ready,
|
|
9
|
+
* and server responses) and publishes the commands it builds.
|
|
10
|
+
*/
|
|
11
|
+
export declare class CharacterRoster {
|
|
12
|
+
private _characters;
|
|
13
|
+
private _activeMembershipId;
|
|
14
|
+
private _roomSessionId;
|
|
15
|
+
private _routeEpoch;
|
|
16
|
+
private _rosterEpoch;
|
|
17
|
+
/** Character instances in roster order. Empty in single-character mode. */
|
|
18
|
+
get characters(): ConvaiCharacterInstance[];
|
|
19
|
+
/** Membership currently receiving user turns, or null. */
|
|
20
|
+
get activeMembershipId(): string | null;
|
|
21
|
+
/** Room session the roster belongs to. */
|
|
22
|
+
get roomSessionId(): string | null;
|
|
23
|
+
get routeEpoch(): number;
|
|
24
|
+
get rosterEpoch(): number;
|
|
25
|
+
/** True once a multi-character connect response has been applied. */
|
|
26
|
+
get isMultiCharacter(): boolean;
|
|
27
|
+
find(membershipId: string): ConvaiCharacterInstance | undefined;
|
|
28
|
+
reset(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Seed the roster from the /connect response. A response without a
|
|
31
|
+
* `characters` array is a single-character session and leaves the roster
|
|
32
|
+
* empty.
|
|
33
|
+
*/
|
|
34
|
+
applyConnectResponse(data: Record<string, unknown>): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Fill in details from a per-instance bot-ready `about` block. Instances are
|
|
37
|
+
* already known from the connect response; this refreshes session ids and
|
|
38
|
+
* catches instances added by a roster update.
|
|
39
|
+
*/
|
|
40
|
+
applyBotReady(about: Record<string, unknown> | undefined): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Pick a survivor to take over routing when the active instance is being
|
|
43
|
+
* removed. The server refuses an instance that has not sent bot-ready
|
|
44
|
+
* (`replacement_target_unavailable`), so prefer ready ones.
|
|
45
|
+
*/
|
|
46
|
+
pickReplacement(removing: string[]): string | undefined;
|
|
47
|
+
/** Build the data-channel payload that switches the active character. */
|
|
48
|
+
buildInteractionTarget(membershipId: string, commandId: string): Record<string, unknown>;
|
|
49
|
+
/** Build the data-channel payload that adds/removes instances. */
|
|
50
|
+
buildRosterUpdate(options: UpdateCharacterRosterOptions, commandId: string): Record<string, unknown>;
|
|
51
|
+
/**
|
|
52
|
+
* Adopt the server's authoritative epochs from any response, including
|
|
53
|
+
* errors — a `stale_route_epoch` rejection carries the real value, which is
|
|
54
|
+
* what makes a retry meaningful.
|
|
55
|
+
*/
|
|
56
|
+
adoptEpochs(extras: ServerResponseExtras | null): void;
|
|
57
|
+
/**
|
|
58
|
+
* Apply a successful interaction-target response. Returns the change, or
|
|
59
|
+
* null when the active character did not move.
|
|
60
|
+
*/
|
|
61
|
+
applyInteractionTarget(extras: ServerResponseExtras | null): ActiveCharacterChange | null;
|
|
62
|
+
/**
|
|
63
|
+
* Apply a successful character-roster-update response, mutating the roster
|
|
64
|
+
* to match. Returns the change, or null when nothing moved.
|
|
65
|
+
*/
|
|
66
|
+
applyRosterUpdate(extras: ServerResponseExtras | null): CharacterRosterChange | null;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=CharacterRoster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CharacterRoster.d.ts","sourceRoot":"","sources":["../../src/core/CharacterRoster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EAEvB,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,SAAS,CAAC;AA+BjB;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAK;IAEzB,2EAA2E;IAC3E,IAAI,UAAU,IAAI,uBAAuB,EAAE,CAE1C;IAED,0DAA0D;IAC1D,IAAI,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAEtC;IAED,0CAA0C;IAC1C,IAAI,aAAa,IAAI,MAAM,GAAG,IAAI,CAEjC;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,qEAAqE;IACrE,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS;IAI/D,KAAK,IAAI,IAAI;IAQb;;;;OAIG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAkB5D;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,OAAO;IAwClE;;;;OAIG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS;IAWvD,yEAAyE;IACzE,sBAAsB,CACpB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAS1B,kEAAkE;IAClE,iBAAiB,CACf,OAAO,EAAE,4BAA4B,EACrC,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAgB1B;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI;IAatD;;;OAGG;IACH,sBAAsB,CACpB,MAAM,EAAE,oBAAoB,GAAG,IAAI,GAClC,qBAAqB,GAAG,IAAI;IAW/B;;;OAGG;IACH,iBAAiB,CACf,MAAM,EAAE,oBAAoB,GAAG,IAAI,GAClC,qBAAqB,GAAG,IAAI;CAoDhC"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
function toInstance(raw) {
|
|
2
|
+
if (!raw?.membership_id)
|
|
3
|
+
return null;
|
|
4
|
+
return {
|
|
5
|
+
membershipId: raw.membership_id,
|
|
6
|
+
characterId: raw.character_id ?? "",
|
|
7
|
+
characterSessionId: raw.character_session_id ?? null,
|
|
8
|
+
participantIdentity: raw.participant_identity ?? `character:${raw.membership_id}`,
|
|
9
|
+
isInitial: raw.is_initial === true,
|
|
10
|
+
provisioningStatus: raw.provisioning_status ?? "unknown",
|
|
11
|
+
failureCode: raw.failure_code ?? null,
|
|
12
|
+
isReady: false,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Roster state for a multi-character room: which character instances exist,
|
|
17
|
+
* which one receives user turns, and the routing/roster epochs that fence
|
|
18
|
+
* concurrent changes.
|
|
19
|
+
*
|
|
20
|
+
* Pure state plus command construction — it owns no transport. ConvaiClient
|
|
21
|
+
* feeds it from three sources (the connect response, per-instance bot-ready,
|
|
22
|
+
* and server responses) and publishes the commands it builds.
|
|
23
|
+
*/
|
|
24
|
+
export class CharacterRoster {
|
|
25
|
+
constructor() {
|
|
26
|
+
this._characters = [];
|
|
27
|
+
this._activeMembershipId = null;
|
|
28
|
+
this._roomSessionId = null;
|
|
29
|
+
this._routeEpoch = 0;
|
|
30
|
+
this._rosterEpoch = 0;
|
|
31
|
+
}
|
|
32
|
+
/** Character instances in roster order. Empty in single-character mode. */
|
|
33
|
+
get characters() {
|
|
34
|
+
return this._characters;
|
|
35
|
+
}
|
|
36
|
+
/** Membership currently receiving user turns, or null. */
|
|
37
|
+
get activeMembershipId() {
|
|
38
|
+
return this._activeMembershipId;
|
|
39
|
+
}
|
|
40
|
+
/** Room session the roster belongs to. */
|
|
41
|
+
get roomSessionId() {
|
|
42
|
+
return this._roomSessionId;
|
|
43
|
+
}
|
|
44
|
+
get routeEpoch() {
|
|
45
|
+
return this._routeEpoch;
|
|
46
|
+
}
|
|
47
|
+
get rosterEpoch() {
|
|
48
|
+
return this._rosterEpoch;
|
|
49
|
+
}
|
|
50
|
+
/** True once a multi-character connect response has been applied. */
|
|
51
|
+
get isMultiCharacter() {
|
|
52
|
+
return this._characters.length > 0;
|
|
53
|
+
}
|
|
54
|
+
find(membershipId) {
|
|
55
|
+
return this._characters.find((c) => c.membershipId === membershipId);
|
|
56
|
+
}
|
|
57
|
+
reset() {
|
|
58
|
+
this._characters = [];
|
|
59
|
+
this._activeMembershipId = null;
|
|
60
|
+
this._roomSessionId = null;
|
|
61
|
+
this._routeEpoch = 0;
|
|
62
|
+
this._rosterEpoch = 0;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Seed the roster from the /connect response. A response without a
|
|
66
|
+
* `characters` array is a single-character session and leaves the roster
|
|
67
|
+
* empty.
|
|
68
|
+
*/
|
|
69
|
+
applyConnectResponse(data) {
|
|
70
|
+
const raw = data?.characters;
|
|
71
|
+
this._roomSessionId = data?.room_session_id ?? null;
|
|
72
|
+
if (!Array.isArray(raw) || raw.length === 0)
|
|
73
|
+
return false;
|
|
74
|
+
this._characters = raw
|
|
75
|
+
.map((c) => toInstance(c))
|
|
76
|
+
.filter((c) => c !== null);
|
|
77
|
+
this._activeMembershipId =
|
|
78
|
+
data?.active_membership_id ??
|
|
79
|
+
this._characters.find((c) => c.isInitial)?.membershipId ??
|
|
80
|
+
this._characters[0]?.membershipId ??
|
|
81
|
+
null;
|
|
82
|
+
this._routeEpoch = data?.route_epoch ?? 0;
|
|
83
|
+
this._rosterEpoch = data?.roster_epoch ?? 0;
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Fill in details from a per-instance bot-ready `about` block. Instances are
|
|
88
|
+
* already known from the connect response; this refreshes session ids and
|
|
89
|
+
* catches instances added by a roster update.
|
|
90
|
+
*/
|
|
91
|
+
applyBotReady(about) {
|
|
92
|
+
if (!about)
|
|
93
|
+
return false;
|
|
94
|
+
const incoming = toInstance(about);
|
|
95
|
+
if (!incoming)
|
|
96
|
+
return false;
|
|
97
|
+
const index = this._characters.findIndex((c) => c.membershipId === incoming.membershipId);
|
|
98
|
+
if (index === -1) {
|
|
99
|
+
// Only track instances once we know this is a multi-character room;
|
|
100
|
+
// a single-character bot-ready also carries these fields.
|
|
101
|
+
if (!this.isMultiCharacter)
|
|
102
|
+
return false;
|
|
103
|
+
this._characters = [...this._characters, { ...incoming, isReady: true }];
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
const existing = this._characters[index];
|
|
107
|
+
const merged = {
|
|
108
|
+
...existing,
|
|
109
|
+
characterSessionId: incoming.characterSessionId ?? existing.characterSessionId,
|
|
110
|
+
participantIdentity: incoming.participantIdentity || existing.participantIdentity,
|
|
111
|
+
isReady: true,
|
|
112
|
+
};
|
|
113
|
+
if (merged.characterSessionId === existing.characterSessionId &&
|
|
114
|
+
merged.participantIdentity === existing.participantIdentity &&
|
|
115
|
+
existing.isReady) {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
this._characters = [
|
|
119
|
+
...this._characters.slice(0, index),
|
|
120
|
+
merged,
|
|
121
|
+
...this._characters.slice(index + 1),
|
|
122
|
+
];
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Pick a survivor to take over routing when the active instance is being
|
|
127
|
+
* removed. The server refuses an instance that has not sent bot-ready
|
|
128
|
+
* (`replacement_target_unavailable`), so prefer ready ones.
|
|
129
|
+
*/
|
|
130
|
+
pickReplacement(removing) {
|
|
131
|
+
const removed = new Set(removing);
|
|
132
|
+
const survivors = this._characters.filter((c) => !removed.has(c.membershipId));
|
|
133
|
+
return (survivors.find((c) => c.isReady)?.membershipId ??
|
|
134
|
+
survivors[0]?.membershipId);
|
|
135
|
+
}
|
|
136
|
+
/** Build the data-channel payload that switches the active character. */
|
|
137
|
+
buildInteractionTarget(membershipId, commandId) {
|
|
138
|
+
return {
|
|
139
|
+
room_session_id: this._roomSessionId,
|
|
140
|
+
target_membership_id: membershipId,
|
|
141
|
+
expected_route_epoch: this._routeEpoch,
|
|
142
|
+
command_id: commandId,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/** Build the data-channel payload that adds/removes instances. */
|
|
146
|
+
buildRosterUpdate(options, commandId) {
|
|
147
|
+
const add = (options.add ?? []).map((spec) => ({
|
|
148
|
+
character_id: spec.characterId,
|
|
149
|
+
}));
|
|
150
|
+
return {
|
|
151
|
+
room_session_id: this._roomSessionId,
|
|
152
|
+
expected_roster_epoch: this._rosterEpoch,
|
|
153
|
+
command_id: commandId,
|
|
154
|
+
...(add.length > 0 && { add }),
|
|
155
|
+
...(options.remove?.length && { remove_membership_ids: options.remove }),
|
|
156
|
+
...(options.replacementTarget && {
|
|
157
|
+
replacement_target_membership_id: options.replacementTarget,
|
|
158
|
+
}),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Adopt the server's authoritative epochs from any response, including
|
|
163
|
+
* errors — a `stale_route_epoch` rejection carries the real value, which is
|
|
164
|
+
* what makes a retry meaningful.
|
|
165
|
+
*/
|
|
166
|
+
adoptEpochs(extras) {
|
|
167
|
+
if (!extras)
|
|
168
|
+
return;
|
|
169
|
+
if (typeof extras.route_epoch === "number") {
|
|
170
|
+
this._routeEpoch = extras.route_epoch;
|
|
171
|
+
}
|
|
172
|
+
if (typeof extras.roster_epoch === "number") {
|
|
173
|
+
this._rosterEpoch = extras.roster_epoch;
|
|
174
|
+
}
|
|
175
|
+
if (typeof extras.active_membership_id === "string") {
|
|
176
|
+
this._activeMembershipId = extras.active_membership_id;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Apply a successful interaction-target response. Returns the change, or
|
|
181
|
+
* null when the active character did not move.
|
|
182
|
+
*/
|
|
183
|
+
applyInteractionTarget(extras) {
|
|
184
|
+
if (!extras)
|
|
185
|
+
return null;
|
|
186
|
+
const previous = extras.previous_membership_id ?? this._activeMembershipId;
|
|
187
|
+
const active = extras.active_membership_id ?? this._activeMembershipId;
|
|
188
|
+
this.adoptEpochs(extras);
|
|
189
|
+
if (previous === active)
|
|
190
|
+
return null;
|
|
191
|
+
return { previous, active, routeEpoch: this._routeEpoch };
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Apply a successful character-roster-update response, mutating the roster
|
|
195
|
+
* to match. Returns the change, or null when nothing moved.
|
|
196
|
+
*/
|
|
197
|
+
applyRosterUpdate(extras) {
|
|
198
|
+
if (!extras)
|
|
199
|
+
return null;
|
|
200
|
+
const added = (Array.isArray(extras.added) ? extras.added : [])
|
|
201
|
+
.map((c) => toInstance(c))
|
|
202
|
+
.filter((c) => c !== null);
|
|
203
|
+
const removedRaw = Array.isArray(extras.removed) ? extras.removed : [];
|
|
204
|
+
const removedIds = new Set((Array.isArray(extras.removed_membership_ids)
|
|
205
|
+
? extras.removed_membership_ids
|
|
206
|
+
: removedRaw
|
|
207
|
+
.map((c) => c?.membership_id)
|
|
208
|
+
.filter((id) => typeof id === "string")));
|
|
209
|
+
// Prefer the roster's own records for removed instances — the response
|
|
210
|
+
// echoes only a subset of each instance's fields.
|
|
211
|
+
const removed = [...removedIds].map((id) => this.find(id) ??
|
|
212
|
+
toInstance(removedRaw.find((c) => c?.membership_id === id)) ?? {
|
|
213
|
+
membershipId: id,
|
|
214
|
+
characterId: "",
|
|
215
|
+
characterSessionId: null,
|
|
216
|
+
participantIdentity: `character:${id}`,
|
|
217
|
+
isInitial: false,
|
|
218
|
+
provisioningStatus: "removed",
|
|
219
|
+
failureCode: null,
|
|
220
|
+
isReady: false,
|
|
221
|
+
});
|
|
222
|
+
if (added.length === 0 && removed.length === 0) {
|
|
223
|
+
this.adoptEpochs(extras);
|
|
224
|
+
return null;
|
|
225
|
+
}
|
|
226
|
+
const addedIds = new Set(added.map((c) => c.membershipId));
|
|
227
|
+
this._characters = [
|
|
228
|
+
...this._characters.filter((c) => !removedIds.has(c.membershipId) && !addedIds.has(c.membershipId)),
|
|
229
|
+
...added,
|
|
230
|
+
];
|
|
231
|
+
this.adoptEpochs(extras);
|
|
232
|
+
return { added, removed, characters: this._characters };
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=CharacterRoster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CharacterRoster.js","sourceRoot":"","sources":["../../src/core/CharacterRoster.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Room } from "livekit-client";
|
|
2
|
-
import { ConvaiConfig, ConvaiClientState, ChatMessage, IConvaiClient, AudioControls, VideoControls, ScreenShareControls, DynamicInfo, ContextUpdateOptions, UploadFileOptions, WebSocketSessionFactory, RespondModeUpdateOptions, UpdateSceneMetadataOptions, VisionStatusOptions, VisionTriggerOptions } from "./types";
|
|
2
|
+
import { ConvaiConfig, ConvaiClientState, ChatMessage, IConvaiClient, AudioControls, VideoControls, ScreenShareControls, DynamicInfo, ContextUpdateOptions, UploadFileOptions, WebSocketSessionFactory, RespondModeUpdateOptions, UpdateSceneMetadataOptions, VisionStatusOptions, VisionTriggerOptions, ConvaiCharacterInstance, UpdateCharacterRosterOptions, CharacterRosterChange } from "./types";
|
|
3
3
|
import { EventEmitter } from "./EventEmitter";
|
|
4
4
|
import { BlendshapeQueue } from "./BlendshapeQueue";
|
|
5
5
|
import { MemoryManager } from "./MemoryManager";
|
|
@@ -52,6 +52,16 @@ export declare class ConvaiClient extends EventEmitter implements IConvaiClient
|
|
|
52
52
|
private _participantSid;
|
|
53
53
|
private _audioSettings;
|
|
54
54
|
private _storedConfig;
|
|
55
|
+
/**
|
|
56
|
+
* Runtime state of mind. Source of truth for the value sent on connect,
|
|
57
|
+
* so updateEmotion() called before any config is stored is not lost.
|
|
58
|
+
*/
|
|
59
|
+
private _stateOfMind;
|
|
60
|
+
/** Roster state for multi-character rooms. Empty for single-character sessions. */
|
|
61
|
+
private _roster;
|
|
62
|
+
/** Pending setInteractionTarget/updateCharacterRoster commands, keyed by command_id. */
|
|
63
|
+
private _pendingRosterCommands;
|
|
64
|
+
private _rosterCommandSeq;
|
|
55
65
|
private _endUserId;
|
|
56
66
|
private _endUserMetadata;
|
|
57
67
|
private _wsSession;
|
|
@@ -209,6 +219,34 @@ export declare class ConvaiClient extends EventEmitter implements IConvaiClient
|
|
|
209
219
|
visionStatus(options?: VisionStatusOptions): string | null;
|
|
210
220
|
visionTrigger(options?: VisionTriggerOptions): string | null;
|
|
211
221
|
respondModeUpdate(options: RespondModeUpdateOptions): string | null;
|
|
222
|
+
/**
|
|
223
|
+
* Set or clear the character's temporary state of mind.
|
|
224
|
+
* This is silent: it affects the next response and does not trigger one.
|
|
225
|
+
*/
|
|
226
|
+
updateEmotion(stateOfMind: string | null): void;
|
|
227
|
+
/** Timeout for a roster command to be acknowledged by the server. */
|
|
228
|
+
private static readonly ROSTER_COMMAND_TIMEOUT_MS;
|
|
229
|
+
/**
|
|
230
|
+
* Correlate interaction-target / character-roster-update acks back to the
|
|
231
|
+
* promise returned by the method that issued them, and keep roster state and
|
|
232
|
+
* the two roster events in sync — including for changes we did not initiate.
|
|
233
|
+
*/
|
|
234
|
+
private _handleRosterServerResponse;
|
|
235
|
+
/**
|
|
236
|
+
* Publish a roster command and resolve when its ack arrives.
|
|
237
|
+
*/
|
|
238
|
+
private _sendRosterCommand;
|
|
239
|
+
/**
|
|
240
|
+
* Route subsequent user turns to a different character instance.
|
|
241
|
+
*
|
|
242
|
+
* Retries once against the server's authoritative epoch if the routing epoch
|
|
243
|
+
* was stale, which happens when another participant switched first.
|
|
244
|
+
*/
|
|
245
|
+
setInteractionTarget(membershipId: string): Promise<ConvaiCharacterInstance>;
|
|
246
|
+
/**
|
|
247
|
+
* Add or remove character instances on a live room, without reconnecting.
|
|
248
|
+
*/
|
|
249
|
+
updateCharacterRoster(options: UpdateCharacterRosterOptions): Promise<CharacterRosterChange>;
|
|
212
250
|
/**
|
|
213
251
|
* Send descriptive scene updates. Use when environment description changes
|
|
214
252
|
* and the bot should know what is visible or nearby. Does not modify action_config.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConvaiClient.d.ts","sourceRoot":"","sources":["../../src/core/ConvaiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAML,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,WAAW,EAEX,aAAa,EACb,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EAIjB,uBAAuB,EACvB,wBAAwB,EAExB,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"ConvaiClient.d.ts","sourceRoot":"","sources":["../../src/core/ConvaiClient.ts"],"names":[],"mappings":"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"}
|