@unisphere/genie-types 1.22.0-tools.5 → 1.23.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/index.esm.js +1249 -484
- package/package.json +3 -2
- package/src/index.d.ts +0 -3
- package/src/lib/avatar-runtime/avatar-service-types.d.ts +3 -247
- package/src/lib/avatar-runtime/{agent-visual-types.d.ts → floater-visual-types.d.ts} +2 -2
- package/src/lib/avatar-runtime/index.d.ts +3 -2
- package/src/lib/avatar-runtime/runtime-types.d.ts +6 -2
- package/src/lib/avatar-runtime/shared-types.d.ts +199 -0
- package/src/lib/avatar-runtime/visual-bridge-types.d.ts +41 -0
- package/src/lib/chat-customizations-types.d.ts +5 -0
- package/src/lib/chat-runtime/runtime-player-plugin-types.d.ts +1 -1
- package/src/lib/chat-runtime/runtime-types.d.ts +2 -2
- package/src/lib/chat-runtime/shared-settings.d.ts +2 -0
- package/src/lib/chat-runtime/visuals-types.d.ts +2 -0
- package/src/lib/admin-demo-runtime/index.d.ts +0 -1
- package/src/lib/admin-demo-runtime/runtime-types.d.ts +0 -14
- package/src/lib/admin-runtime/index.d.ts +0 -1
- package/src/lib/admin-runtime/runtime-types.d.ts +0 -33
- package/src/lib/application-runtime/index.d.ts +0 -1
- package/src/lib/application-runtime/runtime-types.d.ts +0 -57
- package/src/lib/avatar-runtime/lobby-visual-types.d.ts +0 -48
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unisphere/genie-types",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.23.0",
|
|
4
4
|
"author": "kaltura",
|
|
5
5
|
"license": "AGPL-3.0",
|
|
6
6
|
"repository": {
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@kaltura-sdk/rtc-core": "^1.25.13",
|
|
13
13
|
"@unisphere/core": "^1.99.0",
|
|
14
|
-
"@unisphere/runtime": "^1.97.0"
|
|
14
|
+
"@unisphere/runtime": "^1.97.0",
|
|
15
|
+
"@unisphere/runtime-js": "^1.96.0"
|
|
15
16
|
},
|
|
16
17
|
"module": "./index.esm.js",
|
|
17
18
|
"type": "module",
|
package/src/index.d.ts
CHANGED
|
@@ -3,8 +3,5 @@ export * from './lib/chat-runtime';
|
|
|
3
3
|
export * from './lib/shared';
|
|
4
4
|
export * from './lib/types';
|
|
5
5
|
export * from './lib/avatar-runtime';
|
|
6
|
-
export * from './lib/admin-runtime';
|
|
7
|
-
export * from './lib/admin-demo-runtime';
|
|
8
|
-
export * from './lib/application-runtime';
|
|
9
6
|
export * from './lib/chat-customizations-types';
|
|
10
7
|
export * from './lib/general-visual-types';
|
|
@@ -1,252 +1,12 @@
|
|
|
1
1
|
import { UnisphereService } from '@unisphere/runtime';
|
|
2
|
-
import {
|
|
3
|
-
import { DeviceEnumerationResult } from '@kaltura-sdk/rtc-core';
|
|
4
|
-
import type { ChatEntry } from './chat-types';
|
|
5
|
-
/**
|
|
6
|
-
* Avatar service configuration.
|
|
7
|
-
*/
|
|
8
|
-
export type AvatarConfig = {
|
|
9
|
-
/** Avatar server URL */
|
|
10
|
-
serverUrl: string;
|
|
11
|
-
/** Avatar player URL */
|
|
12
|
-
playerUrl: string;
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* Audio device types for avatar connections.
|
|
16
|
-
*/
|
|
17
|
-
export declare enum DeviceType {
|
|
18
|
-
/** Microphone input device */
|
|
19
|
-
AudioInput = "audioinput",
|
|
20
|
-
/** Speaker/headphone output device */
|
|
21
|
-
AudioOutput = "audiooutput"
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Avatar connection status states.
|
|
25
|
-
*
|
|
26
|
-
* @deprecated Use AvatarConnectionStatus instead
|
|
27
|
-
*/
|
|
28
|
-
export declare enum AvatarStatus {
|
|
29
|
-
/** Establishing connection */
|
|
30
|
-
Connecting = "connecting",
|
|
31
|
-
/** Successfully connected */
|
|
32
|
-
Connected = "connected",
|
|
33
|
-
/** Not connected */
|
|
34
|
-
Disconnected = "disconnected",
|
|
35
|
-
/** Connection error occurred */
|
|
36
|
-
Error = "error"
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Avatar connection lifecycle states.
|
|
40
|
-
*/
|
|
41
|
-
export declare enum AvatarConnectionStatus {
|
|
42
|
-
/** Establishing connection */
|
|
43
|
-
Connecting = "connecting",
|
|
44
|
-
/** Successfully connected */
|
|
45
|
-
Connected = "connected",
|
|
46
|
-
/** Not connected */
|
|
47
|
-
Disconnected = "disconnected",
|
|
48
|
-
/** Closing connection */
|
|
49
|
-
Disconnecting = "disconnecting",
|
|
50
|
-
/** Connection error occurred */
|
|
51
|
-
Error = "error"
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Avatar client initialization status.
|
|
55
|
-
*/
|
|
56
|
-
export type AvatarClientStatus = 'loading' | 'ready';
|
|
57
|
-
/**
|
|
58
|
-
* Reasons why avatar agent may be unavailable.
|
|
59
|
-
*/
|
|
60
|
-
export declare enum AgentUnavailabilityReasons {
|
|
61
|
-
/** No agents are currently available */
|
|
62
|
-
NoAgents = "NoAgents",
|
|
63
|
-
/** Maximum concurrent connections reached */
|
|
64
|
-
CapacityReached = "CapacityReached"
|
|
65
|
-
}
|
|
66
|
-
export type UserDevicesList = Pick<DeviceEnumerationResult, 'availableDevices'> & {
|
|
67
|
-
selectedDevices: {
|
|
68
|
-
audioDevice: string | null;
|
|
69
|
-
audioOutputDevice: string | null;
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
/**
|
|
73
|
-
* Simplified WebSocket interface for avatar communication.
|
|
74
|
-
*/
|
|
75
|
-
export interface SimplifiedSocket {
|
|
76
|
-
/** Register event listener */
|
|
77
|
-
on: (event: string, callback: (data: any) => void) => void;
|
|
78
|
-
/** Remove event listener */
|
|
79
|
-
off: (event: string) => void;
|
|
80
|
-
/** Emit event with data */
|
|
81
|
-
emit: (event: string, data: any) => void;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Agent state and analytics data.
|
|
85
|
-
*/
|
|
86
|
-
export type AgentData = {
|
|
87
|
-
/** Whether the agent is currently speaking */
|
|
88
|
-
isTalking: boolean;
|
|
89
|
-
/** Number of answers provided in this session */
|
|
90
|
-
answersCount: number;
|
|
91
|
-
/** Optional analytics tracking information */
|
|
92
|
-
analyticsInfo?: {
|
|
93
|
-
/** Thread identifier */
|
|
94
|
-
threadId?: string;
|
|
95
|
-
/** Message identifier */
|
|
96
|
-
messageId?: string;
|
|
97
|
-
};
|
|
98
|
-
};
|
|
99
|
-
/**
|
|
100
|
-
* Agent screen sharing data
|
|
101
|
-
*/
|
|
102
|
-
export type AgentScreenShareInfo = {
|
|
103
|
-
active: boolean;
|
|
104
|
-
stream: MediaStream | null;
|
|
105
|
-
analysisReady: boolean;
|
|
106
|
-
};
|
|
107
|
-
/**
|
|
108
|
-
* Content data for avatar tool integrations.
|
|
109
|
-
*
|
|
110
|
-
* Represents tool content displayed within avatar experiences, with different
|
|
111
|
-
* states for loading, ready, and error conditions.
|
|
112
|
-
*/
|
|
113
|
-
export type AvatarContentData<TSettings = any> = {
|
|
114
|
-
/** Unique content identifier */
|
|
115
|
-
id: string;
|
|
116
|
-
/** Associated thread ID */
|
|
117
|
-
threadId?: string;
|
|
118
|
-
/** Associated message ID */
|
|
119
|
-
messageId?: string;
|
|
120
|
-
/** Optional new title for the content */
|
|
121
|
-
newTitle?: string;
|
|
122
|
-
/** Content type identifier */
|
|
123
|
-
type: 'unisphere-tool';
|
|
124
|
-
/** Widget name for the tool */
|
|
125
|
-
widgetName: string;
|
|
126
|
-
/** Runtime name for the tool */
|
|
127
|
-
runtimeName: string;
|
|
128
|
-
} & ({
|
|
129
|
-
/** Content status: loading or ready */
|
|
130
|
-
status: 'loading' | 'ready';
|
|
131
|
-
/** Tool settings configuration */
|
|
132
|
-
settings: TSettings;
|
|
133
|
-
/** Optional thread ID */
|
|
134
|
-
threadId?: string;
|
|
135
|
-
} | {
|
|
136
|
-
/** Content status: error occurred */
|
|
137
|
-
status: 'error';
|
|
138
|
-
});
|
|
139
|
-
/**
|
|
140
|
-
* Internal avatar connection proxy interface for advanced operations.
|
|
141
|
-
*
|
|
142
|
-
* @internal
|
|
143
|
-
*/
|
|
144
|
-
export interface AvatarConnectionProxInternalType {
|
|
145
|
-
/** Send direct event to server */
|
|
146
|
-
_directEventToServer(message: string, data: any): void;
|
|
147
|
-
/** Set local content state */
|
|
148
|
-
_setLocalContent(content: any): void;
|
|
149
|
-
/** Handle player errors */
|
|
150
|
-
onPlayerError(error: Error): void;
|
|
151
|
-
/** WebSocket connection observable */
|
|
152
|
-
webSocket: TinyDataStoreConsumer<SimplifiedSocket | null>;
|
|
153
|
-
}
|
|
154
|
-
export declare enum DisconnectReasons {
|
|
155
|
-
UserRequested = "UserRequested",
|
|
156
|
-
WebsocketConnectionFailed = "WebsocketConnectionFailed",
|
|
157
|
-
WebsocketDisconnected = "WebsocketDisconnected",
|
|
158
|
-
PeerRemoved = "PeerRemoved",
|
|
159
|
-
NoAgentsAvailable = "NoAgentsAvailable",
|
|
160
|
-
ExceededTierLimits = "ExceededTierLimits",
|
|
161
|
-
BadRequest = "BadRequest",
|
|
162
|
-
UnsupportedClient = "UnsupportedClient",
|
|
163
|
-
ConnectionError = "ConnectionError",
|
|
164
|
-
UserMediaInitializationFailed = "UserMediaInitializationFailed",
|
|
165
|
-
ASRConnectionFailed = "ASRConnectionFailed",
|
|
166
|
-
DestroyFailed = "DestroyFailed",
|
|
167
|
-
ConversationEnded = "ConversationEnded",
|
|
168
|
-
AgentResponseTimeout = "AgentResponseTimeout",
|
|
169
|
-
UnknownReason = "UnknownReason",
|
|
170
|
-
DevicesPermissionDenied = "DevicesPermissionDenied",
|
|
171
|
-
JoinRoomTimeout = "JoinRoomTimeout",
|
|
172
|
-
ConnectionTimeout = "ConnectionTimeout",
|
|
173
|
-
PlayerConnectionFailed = "PlayerConnectionFailed"
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Avatar connection proxy for managing avatar session state and interactions.
|
|
177
|
-
*
|
|
178
|
-
* Provides observable properties for connection state and methods for
|
|
179
|
-
* sending messages and managing the avatar connection lifecycle.
|
|
180
|
-
*/
|
|
181
|
-
export interface AvatarConnectionProxyType {
|
|
182
|
-
/** Observable connection status */
|
|
183
|
-
readonly status: TinyDataStoreConsumer<AvatarConnectionStatus>;
|
|
184
|
-
/** Observable player URL */
|
|
185
|
-
readonly playerUrl: TinyDataStoreConsumer<string | null>;
|
|
186
|
-
/** Observable session identifier */
|
|
187
|
-
readonly sessionId: TinyDataStoreConsumer<string | null>;
|
|
188
|
-
/** Observable TURN server URL */
|
|
189
|
-
readonly turnServerURL: TinyDataStoreConsumer<string | null>;
|
|
190
|
-
/** Observable content data */
|
|
191
|
-
readonly content: TinyDataStoreConsumer<AvatarContentData | null>;
|
|
192
|
-
/** Observable agent state and analytics */
|
|
193
|
-
readonly agentData: TinyDataStoreConsumer<AgentData | null>;
|
|
194
|
-
/** Observable available audio devices */
|
|
195
|
-
readonly devicesList: TinyDataStoreConsumer<{
|
|
196
|
-
audioInput: MediaDeviceInfo[];
|
|
197
|
-
audioOutput: MediaDeviceInfo[];
|
|
198
|
-
} | null>;
|
|
199
|
-
/** Observable disconnect information */
|
|
200
|
-
readonly disconnectData: TinyDataStoreConsumer<{
|
|
201
|
-
reason: DisconnectReasons;
|
|
202
|
-
error?: Error;
|
|
203
|
-
suppressNotification?: boolean;
|
|
204
|
-
skipDisconnect?: boolean;
|
|
205
|
-
} | null>;
|
|
206
|
-
/** Observable thread identifier */
|
|
207
|
-
readonly threadId: TinyDataStoreConsumer<string | null>;
|
|
208
|
-
/** Observable chat log entries */
|
|
209
|
-
readonly chatLog: TinyDataStoreConsumer<ChatEntry[]>;
|
|
210
|
-
/** Observable screen share info state */
|
|
211
|
-
readonly screenShareInfo: TinyDataStoreConsumer<AgentScreenShareInfo | null>;
|
|
212
|
-
/** Unique connection identifier */
|
|
213
|
-
readonly id: string;
|
|
214
|
-
/** Send text message to avatar */
|
|
215
|
-
sendAskViaText(text: string): void;
|
|
216
|
-
/** Send custom event to avatar */
|
|
217
|
-
sendDirectEvent(message: string, data: unknown): void;
|
|
218
|
-
/** Terminate the avatar connection */
|
|
219
|
-
destroy(): void;
|
|
220
|
-
/** Start screen sharing */
|
|
221
|
-
startScreenShare(): void;
|
|
222
|
-
/** Stop screen sharing */
|
|
223
|
-
stopScreenShare(): void;
|
|
224
|
-
}
|
|
225
|
-
export declare const isAvatarConnectionProxyInternalType: (x: any) => x is AvatarConnectionProxInternalType;
|
|
2
|
+
import { AvatarVisualBridgeType } from './visual-bridge-types';
|
|
226
3
|
export interface AvatarServiceType extends UnisphereService {
|
|
227
4
|
id: 'unisphere.widget.genie.avatar';
|
|
228
|
-
|
|
229
|
-
audioState: TinyDataStoreConsumer<{
|
|
230
|
-
muted: boolean;
|
|
231
|
-
isSpeaking: boolean;
|
|
232
|
-
}>;
|
|
233
|
-
devicesList: TinyDataStoreConsumer<UserDevicesList | null>;
|
|
234
|
-
agentPreviewUrl: TinyDataStoreConsumer<string | null>;
|
|
235
|
-
agentPreviewImageUrl: TinyDataStoreConsumer<string | null>;
|
|
236
|
-
threadId: TinyDataStoreConsumer<string | null>;
|
|
237
|
-
setThreadId(id: string | null): void;
|
|
238
|
-
isPreviewMode: TinyDataStoreConsumer<boolean>;
|
|
239
|
-
features: TinyDataStoreConsumer<{
|
|
240
|
-
screenShare?: boolean;
|
|
241
|
-
chat?: boolean;
|
|
242
|
-
} | undefined>;
|
|
5
|
+
readonly visualBridge: AvatarVisualBridgeType;
|
|
243
6
|
connect(options?: {
|
|
244
7
|
threadId?: string;
|
|
245
8
|
messageId?: string;
|
|
246
9
|
}): void;
|
|
247
|
-
disconnect(): void;
|
|
248
|
-
onPlayerReady(): void;
|
|
249
|
-
onPlayerError(error: Error): void;
|
|
250
10
|
getKalturaPlayerParams(): {
|
|
251
11
|
kalturaServerURI: string;
|
|
252
12
|
partnerId: string;
|
|
@@ -254,9 +14,5 @@ export interface AvatarServiceType extends UnisphereService {
|
|
|
254
14
|
ks: string;
|
|
255
15
|
} | null;
|
|
256
16
|
getEntrySourceUrl(entryId: string, startTime?: number): string;
|
|
257
|
-
|
|
258
|
-
changeDevice(deviceType: DeviceType, deviceId: string): Promise<boolean>;
|
|
259
|
-
toggleMuteAudio(muted: boolean): Promise<void>;
|
|
260
|
-
joinSTV(containerId: string, sessionId: string, stvUrl: string, onConnected: () => void): Promise<void>;
|
|
261
|
-
leaveSTV(): void;
|
|
17
|
+
clearContent(): void;
|
|
262
18
|
}
|
|
@@ -9,10 +9,10 @@ import { ValidatorSchema } from '@unisphere/core';
|
|
|
9
9
|
* };
|
|
10
10
|
* ```
|
|
11
11
|
*/
|
|
12
|
-
export interface
|
|
12
|
+
export interface AvatarRuntimeFloaterVisualSettings {
|
|
13
13
|
/** Settings schema version */
|
|
14
14
|
schemaVersion?: string;
|
|
15
15
|
/** Side of screen where agent panel appears */
|
|
16
16
|
panelSide?: 'left' | 'right';
|
|
17
17
|
}
|
|
18
|
-
export declare const
|
|
18
|
+
export declare const avatarRuntimeFloaterVisualSettingsSchema: ValidatorSchema;
|
|
@@ -3,5 +3,6 @@ export * from './chat-visual-types';
|
|
|
3
3
|
export * from './chat-types';
|
|
4
4
|
export * from './avatar-service-types';
|
|
5
5
|
export * from './contained-visual-types';
|
|
6
|
-
export * from './
|
|
7
|
-
export * from './
|
|
6
|
+
export * from './floater-visual-types';
|
|
7
|
+
export * from './shared-types';
|
|
8
|
+
export * from './visual-bridge-types';
|
|
@@ -22,6 +22,10 @@ export type AvatarRuntime = UnisphereRuntimeBaseType<AvatarRuntimeSettings> & {
|
|
|
22
22
|
disconnect(): void;
|
|
23
23
|
/** Observable connection status */
|
|
24
24
|
isConnected: TinyDataStoreConsumer<boolean>;
|
|
25
|
+
/** Observable chat panel open state */
|
|
26
|
+
isChatPanelOpen: TinyDataStoreConsumer<boolean>;
|
|
27
|
+
/** Update chat panel open state */
|
|
28
|
+
setChatPanelOpen(value: boolean): void;
|
|
25
29
|
/** Observable current thread ID */
|
|
26
30
|
threadId: TinyDataStoreConsumer<string | null>;
|
|
27
31
|
/** Set the active conversation thread ID */
|
|
@@ -91,14 +95,14 @@ export interface AvatarRuntimeSettings {
|
|
|
91
95
|
agentMode?: boolean;
|
|
92
96
|
/** Enable audio noise reduction for clearer audio */
|
|
93
97
|
noiseReductionEnabled?: boolean;
|
|
94
|
-
/** STV cast mode for avatar streaming ('webrtc' | 'rtmp') */
|
|
95
|
-
castMode?: string;
|
|
96
98
|
/** Kaltura service integration settings */
|
|
97
99
|
kaltura: {
|
|
98
100
|
/** Kaltura session token for authentication */
|
|
99
101
|
ks: string;
|
|
100
102
|
/** Context for the avatar session */
|
|
101
103
|
context?: ChatContext;
|
|
104
|
+
/** Whether the avatar is running in everywhere mode */
|
|
105
|
+
everywhere?: boolean;
|
|
102
106
|
/** Genie capability overrides — defaults applied per API if absent */
|
|
103
107
|
capabilities?: GenieCapabilities;
|
|
104
108
|
/** Kaltura server URI */
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { TinyDataStoreConsumer } from '@unisphere/core';
|
|
2
|
+
import { DeviceEnumerationResult } from '@kaltura-sdk/rtc-core';
|
|
3
|
+
import type { ChatEntry } from './chat-types';
|
|
4
|
+
/**
|
|
5
|
+
* Audio device types for avatar connections.
|
|
6
|
+
*/
|
|
7
|
+
export declare enum DeviceType {
|
|
8
|
+
/** Microphone input device */
|
|
9
|
+
AudioInput = "audioinput",
|
|
10
|
+
/** Speaker/headphone output device */
|
|
11
|
+
AudioOutput = "audiooutput"
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Avatar connection lifecycle states.
|
|
15
|
+
*/
|
|
16
|
+
export declare enum AvatarConnectionStatus {
|
|
17
|
+
/** Establishing connection */
|
|
18
|
+
Connecting = "connecting",
|
|
19
|
+
/** Successfully connected */
|
|
20
|
+
Connected = "connected",
|
|
21
|
+
/** Not connected */
|
|
22
|
+
Disconnected = "disconnected",
|
|
23
|
+
/** Closing connection */
|
|
24
|
+
Disconnecting = "disconnecting",
|
|
25
|
+
/** Connection error occurred */
|
|
26
|
+
Error = "error"
|
|
27
|
+
}
|
|
28
|
+
export type UserDevicesList = Pick<DeviceEnumerationResult, 'availableDevices'> & {
|
|
29
|
+
selectedDevices: {
|
|
30
|
+
audioDevice: string | null;
|
|
31
|
+
audioOutputDevice: string | null;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Simplified WebSocket interface for avatar communication.
|
|
36
|
+
*/
|
|
37
|
+
export interface SimplifiedSocket {
|
|
38
|
+
/** Register event listener */
|
|
39
|
+
on: (event: string, callback: (data: any) => void) => void;
|
|
40
|
+
/** Remove event listener */
|
|
41
|
+
off: (event: string) => void;
|
|
42
|
+
/** Emit event with data */
|
|
43
|
+
emit: (event: string, data: any) => void;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Agent state and analytics data.
|
|
47
|
+
*/
|
|
48
|
+
export type AgentData = {
|
|
49
|
+
/** Whether the agent is currently speaking */
|
|
50
|
+
isTalking: boolean;
|
|
51
|
+
/** Number of answers provided in this session */
|
|
52
|
+
answersCount: number;
|
|
53
|
+
/** Optional analytics tracking information */
|
|
54
|
+
analyticsInfo?: {
|
|
55
|
+
/** Thread identifier */
|
|
56
|
+
threadId?: string;
|
|
57
|
+
/** Message identifier */
|
|
58
|
+
messageId?: string;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Agent screen sharing data
|
|
63
|
+
*/
|
|
64
|
+
export type AgentScreenShareInfo = {
|
|
65
|
+
active: boolean;
|
|
66
|
+
stream: MediaStream | null;
|
|
67
|
+
analysisReady: boolean;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Content data for avatar tool integrations.
|
|
71
|
+
*
|
|
72
|
+
* Represents tool content displayed within avatar experiences, with different
|
|
73
|
+
* states for loading, ready, and error conditions.
|
|
74
|
+
*/
|
|
75
|
+
export type AvatarContentData<TSettings = any> = {
|
|
76
|
+
/** Unique content identifier */
|
|
77
|
+
id: string;
|
|
78
|
+
/** Associated thread ID */
|
|
79
|
+
threadId?: string;
|
|
80
|
+
/** Associated message ID */
|
|
81
|
+
messageId?: string;
|
|
82
|
+
/** Optional new title for the content */
|
|
83
|
+
newTitle?: string;
|
|
84
|
+
/** Content type identifier */
|
|
85
|
+
type: 'unisphere-tool';
|
|
86
|
+
/** Widget name for the tool */
|
|
87
|
+
widgetName: string;
|
|
88
|
+
/** Runtime name for the tool */
|
|
89
|
+
runtimeName: string;
|
|
90
|
+
} & ({
|
|
91
|
+
/** Content status: loading or ready */
|
|
92
|
+
status: 'loading' | 'ready';
|
|
93
|
+
/** Tool settings configuration */
|
|
94
|
+
settings: TSettings;
|
|
95
|
+
/** Optional thread ID */
|
|
96
|
+
threadId?: string;
|
|
97
|
+
} | {
|
|
98
|
+
/** Content status: error occurred */
|
|
99
|
+
status: 'error';
|
|
100
|
+
});
|
|
101
|
+
/**
|
|
102
|
+
* Internal avatar connection proxy interface for advanced operations.
|
|
103
|
+
*
|
|
104
|
+
* @internal
|
|
105
|
+
*/
|
|
106
|
+
export interface AvatarConnectionProxInternalType {
|
|
107
|
+
/** Send direct event to server */
|
|
108
|
+
_directEventToServer(message: string, data: any): void;
|
|
109
|
+
/** Set local content state */
|
|
110
|
+
_setLocalContent(content: any): void;
|
|
111
|
+
/** Handle player errors */
|
|
112
|
+
onPlayerError(error: Error): void;
|
|
113
|
+
/** WebSocket connection observable */
|
|
114
|
+
webSocket: TinyDataStoreConsumer<SimplifiedSocket | null>;
|
|
115
|
+
}
|
|
116
|
+
export declare enum DisconnectReasons {
|
|
117
|
+
UserRequested = "UserRequested",
|
|
118
|
+
WebsocketConnectionFailed = "WebsocketConnectionFailed",
|
|
119
|
+
WebsocketDisconnected = "WebsocketDisconnected",
|
|
120
|
+
PeerRemoved = "PeerRemoved",
|
|
121
|
+
NoAgentsAvailable = "NoAgentsAvailable",
|
|
122
|
+
ExceededTierLimits = "ExceededTierLimits",
|
|
123
|
+
BadRequest = "BadRequest",
|
|
124
|
+
UnsupportedClient = "UnsupportedClient",
|
|
125
|
+
ConnectionError = "ConnectionError",
|
|
126
|
+
UserMediaInitializationFailed = "UserMediaInitializationFailed",
|
|
127
|
+
ASRConnectionFailed = "ASRConnectionFailed",
|
|
128
|
+
DestroyFailed = "DestroyFailed",
|
|
129
|
+
ConversationEnded = "ConversationEnded",
|
|
130
|
+
AgentResponseTimeout = "AgentResponseTimeout",
|
|
131
|
+
UnknownReason = "UnknownReason",
|
|
132
|
+
DevicesPermissionDenied = "DevicesPermissionDenied",
|
|
133
|
+
JoinRoomTimeout = "JoinRoomTimeout",
|
|
134
|
+
ConnectionTimeout = "ConnectionTimeout",
|
|
135
|
+
PlayerConnectionFailed = "PlayerConnectionFailed"
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Avatar connection proxy for managing avatar session state and interactions.
|
|
139
|
+
*
|
|
140
|
+
* Provides observable properties for connection state and methods for
|
|
141
|
+
* sending messages and managing the avatar connection lifecycle.
|
|
142
|
+
*/
|
|
143
|
+
export interface AvatarConnectionProxyType {
|
|
144
|
+
/** Observable connection status */
|
|
145
|
+
readonly status: TinyDataStoreConsumer<AvatarConnectionStatus>;
|
|
146
|
+
/** Observable player URL */
|
|
147
|
+
readonly playerUrl: TinyDataStoreConsumer<string | null>;
|
|
148
|
+
/** Observable session identifier */
|
|
149
|
+
readonly sessionId: TinyDataStoreConsumer<string | null>;
|
|
150
|
+
/** Observable cast mode from server */
|
|
151
|
+
readonly castMode: TinyDataStoreConsumer<string | null>;
|
|
152
|
+
/** Observable TURN server URL */
|
|
153
|
+
readonly turnServerURL: TinyDataStoreConsumer<string | null>;
|
|
154
|
+
/** Observable content data */
|
|
155
|
+
readonly content: TinyDataStoreConsumer<AvatarContentData | null>;
|
|
156
|
+
/** Observable agent state and analytics */
|
|
157
|
+
readonly agentData: TinyDataStoreConsumer<AgentData | null>;
|
|
158
|
+
/** Observable available audio devices */
|
|
159
|
+
readonly devicesList: TinyDataStoreConsumer<{
|
|
160
|
+
audioInput: MediaDeviceInfo[];
|
|
161
|
+
audioOutput: MediaDeviceInfo[];
|
|
162
|
+
} | null>;
|
|
163
|
+
/** Observable disconnect information */
|
|
164
|
+
readonly disconnectData: TinyDataStoreConsumer<{
|
|
165
|
+
reason: DisconnectReasons;
|
|
166
|
+
error?: Error;
|
|
167
|
+
suppressNotification?: boolean;
|
|
168
|
+
skipDisconnect?: boolean;
|
|
169
|
+
} | null>;
|
|
170
|
+
/** Observable thread identifier */
|
|
171
|
+
readonly threadId: TinyDataStoreConsumer<string | null>;
|
|
172
|
+
/** Observable chat log entries */
|
|
173
|
+
readonly chatLog: TinyDataStoreConsumer<ChatEntry[]>;
|
|
174
|
+
/** Observable screen share info state */
|
|
175
|
+
readonly screenShareInfo: TinyDataStoreConsumer<AgentScreenShareInfo | null>;
|
|
176
|
+
/** Observable form paused state */
|
|
177
|
+
readonly isAvatarPaused: TinyDataStoreConsumer<boolean>;
|
|
178
|
+
/** Unique connection identifier */
|
|
179
|
+
readonly id: string;
|
|
180
|
+
/** Send text message to avatar */
|
|
181
|
+
sendAskViaText(text: string): void;
|
|
182
|
+
/** Send custom event to avatar */
|
|
183
|
+
sendDirectEvent(message: string, data: unknown): void;
|
|
184
|
+
/** Terminate the avatar connection */
|
|
185
|
+
destroy(): void;
|
|
186
|
+
/** Start screen sharing */
|
|
187
|
+
startScreenShare(): void;
|
|
188
|
+
/** Stop screen sharing */
|
|
189
|
+
stopScreenShare(): void;
|
|
190
|
+
/** Request avatar pause immediately */
|
|
191
|
+
pauseAvatar(): void;
|
|
192
|
+
/** Request avatar resume */
|
|
193
|
+
resumeAvatar(): void;
|
|
194
|
+
/** Request avatar pause after current speech finishes */
|
|
195
|
+
pauseAvatarAfterSpeaking(): void;
|
|
196
|
+
/** Clear current visual content */
|
|
197
|
+
clearContent(): void;
|
|
198
|
+
}
|
|
199
|
+
export declare const isAvatarConnectionProxyInternalType: (x: any) => x is AvatarConnectionProxInternalType;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { AvatarContentData } from './shared-types';
|
|
2
|
+
import { UnisphereVisualBridgeType } from '@unisphere/runtime-js';
|
|
3
|
+
export type SlotMode = 'append' | 'replace';
|
|
4
|
+
export type SlotMount = (container: HTMLElement) => () => void;
|
|
5
|
+
export type SlotType = 'status' | 'controls';
|
|
6
|
+
export interface SlotConfig {
|
|
7
|
+
mount: SlotMount;
|
|
8
|
+
mode?: SlotMode;
|
|
9
|
+
}
|
|
10
|
+
export interface SlotEntry {
|
|
11
|
+
id: string;
|
|
12
|
+
mount: SlotMount;
|
|
13
|
+
mode: SlotMode;
|
|
14
|
+
}
|
|
15
|
+
export type LayoutType = 'cinema' | 'focusContent' | 'balanced' | 'floatingCorner';
|
|
16
|
+
export declare const SUPPORTED_LAYOUT_TYPES: Set<string>;
|
|
17
|
+
export interface LayoutConfig {
|
|
18
|
+
type: LayoutType;
|
|
19
|
+
background?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface VisualBehavior {
|
|
22
|
+
pauseAfterSpeaking?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface VisualTypeConfig {
|
|
25
|
+
behavior?: VisualBehavior;
|
|
26
|
+
layout?: LayoutConfig;
|
|
27
|
+
slots?: Record<SlotType, SlotConfig>;
|
|
28
|
+
}
|
|
29
|
+
export interface ResolvedCapabilities {
|
|
30
|
+
layout?: LayoutConfig;
|
|
31
|
+
slots: Partial<Record<SlotType, SlotEntry[]>>;
|
|
32
|
+
}
|
|
33
|
+
export interface ActionContext {
|
|
34
|
+
serverUrl: string;
|
|
35
|
+
ks: string;
|
|
36
|
+
threadId: string | null;
|
|
37
|
+
content: AvatarContentData | null;
|
|
38
|
+
}
|
|
39
|
+
export interface AvatarVisualBridgeType extends UnisphereVisualBridgeType<VisualTypeConfig, ResolvedCapabilities> {
|
|
40
|
+
getActionContext(): ActionContext;
|
|
41
|
+
}
|
|
@@ -57,7 +57,7 @@ export interface ChatRuntimePlayerPluginSettings {
|
|
|
57
57
|
shareUrl?: GlobalChatSettings['shareUrl'];
|
|
58
58
|
/** Enable agent mode for advanced AI capabilities */
|
|
59
59
|
agentMode?: boolean;
|
|
60
|
-
/**
|
|
60
|
+
/** @deprecated Use customization.avatar.stage instead */
|
|
61
61
|
avatarContainerMode?: 'dialog' | 'contained';
|
|
62
62
|
}
|
|
63
63
|
export declare const chatRuntimePlayerPluginSettingsSchema: ValidatorSchema;
|
|
@@ -68,8 +68,6 @@ export interface ChatRuntimeSettings {
|
|
|
68
68
|
context?: ChatContext;
|
|
69
69
|
/** Enable agent mode for advanced AI features */
|
|
70
70
|
agentMode?: boolean;
|
|
71
|
-
/** Avatar display mode: 'dialog' for modal or 'contained' for embedded */
|
|
72
|
-
avatarContainerMode?: 'dialog' | 'contained';
|
|
73
71
|
/** Callback function to generate source URLs with entry ID and optional start time */
|
|
74
72
|
getSourceUrl?: GlobalChatSettings['getSourceUrl'];
|
|
75
73
|
/** Configuration for conversation sharing functionality */
|
|
@@ -81,6 +79,8 @@ export interface ChatRuntimeSettings {
|
|
|
81
79
|
};
|
|
82
80
|
/** External service integrations (Kaltura player, avatar) */
|
|
83
81
|
integrations?: GlobalChatSettings['integrations'];
|
|
82
|
+
/** @deprecated Use customization.avatar.stage instead */
|
|
83
|
+
avatarContainerMode?: 'dialog' | 'contained';
|
|
84
84
|
/** UI customization options */
|
|
85
85
|
customization?: {
|
|
86
86
|
/** Breadcrumb navigation configuration */
|
|
@@ -127,6 +127,8 @@ export interface GlobalChatSettings {
|
|
|
127
127
|
ks: string;
|
|
128
128
|
/** Context for the chat session */
|
|
129
129
|
context?: ChatContext;
|
|
130
|
+
/** Whether running in everywhere mode */
|
|
131
|
+
everywhere?: boolean;
|
|
130
132
|
/** Genie capability overrides — defaults applied per API if absent */
|
|
131
133
|
capabilities?: GenieCapabilities;
|
|
132
134
|
/** Callback function to generate source URLs for an entry or category */
|
|
@@ -123,6 +123,7 @@ export type FloaterCTAVisualSettings = {
|
|
|
123
123
|
mode?: 'chat' | 'everywhere';
|
|
124
124
|
openByDefault?: boolean;
|
|
125
125
|
context?: ChatContext;
|
|
126
|
+
customization?: ChatCustomization;
|
|
126
127
|
} & {
|
|
127
128
|
type?: 'button';
|
|
128
129
|
text?: string;
|
|
@@ -132,6 +133,7 @@ export interface FloaterVisualSettings {
|
|
|
132
133
|
schemaVersion?: '1';
|
|
133
134
|
mode?: 'chat' | 'everywhere';
|
|
134
135
|
context?: ChatContext;
|
|
136
|
+
customization?: ChatCustomization;
|
|
135
137
|
}
|
|
136
138
|
export declare const floaterVisualSettingsSchema: ValidatorSchema;
|
|
137
139
|
export declare const floaterCTAVisualSettingsSchema: ValidatorSchema;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './runtime-types';
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ValidatorSchema } from '@unisphere/core';
|
|
2
|
-
/**
|
|
3
|
-
* Configuration settings for the admin demo runtime.
|
|
4
|
-
*
|
|
5
|
-
* @example
|
|
6
|
-
* ```typescript
|
|
7
|
-
* const settings: AdminDemoRuntimeSettings = {};
|
|
8
|
-
* ```
|
|
9
|
-
*/
|
|
10
|
-
export interface AdminDemoRuntimeSettings {
|
|
11
|
-
}
|
|
12
|
-
export declare const adminDemoRuntimeSettingsSchema: ValidatorSchema;
|
|
13
|
-
/** Runtime name constant for admin demo experiences */
|
|
14
|
-
export declare const AdminDemoRuntimeName: "admin-demo";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './runtime-types';
|