@memberjunction/livekit-room-server 6.2.0-edge.3 → 6.2.0-edge.4
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/livekit-agent-room-coordinator.d.ts +120 -10
- package/dist/livekit-agent-room-coordinator.d.ts.map +1 -1
- package/dist/livekit-agent-room-coordinator.js +312 -68
- package/dist/livekit-agent-room-coordinator.js.map +1 -1
- package/dist/livekit-native-module.d.ts.map +1 -1
- package/dist/livekit-native-module.js +7 -0
- package/dist/livekit-native-module.js.map +1 -1
- package/dist/livekit-participant-service.d.ts +47 -0
- package/dist/livekit-participant-service.d.ts.map +1 -0
- package/dist/livekit-participant-service.js +64 -0
- package/dist/livekit-participant-service.js.map +1 -0
- package/dist/livekit-token-service.d.ts +20 -5
- package/dist/livekit-token-service.d.ts.map +1 -1
- package/dist/livekit-token-service.js +14 -7
- package/dist/livekit-token-service.js.map +1 -1
- package/dist/meeting-dial-in-service.d.ts +8 -0
- package/dist/meeting-dial-in-service.d.ts.map +1 -1
- package/dist/meeting-dial-in-service.js +27 -0
- package/dist/meeting-dial-in-service.js.map +1 -1
- package/dist/room-handoff/handoff-offer-registry.d.ts +10 -0
- package/dist/room-handoff/handoff-offer-registry.d.ts.map +1 -1
- package/dist/room-handoff/handoff-offer-registry.js +40 -13
- package/dist/room-handoff/handoff-offer-registry.js.map +1 -1
- package/dist/room-handoff/handoff-types.d.ts +11 -9
- package/dist/room-handoff/handoff-types.d.ts.map +1 -1
- package/dist/room-handoff/room-handoff-engine.d.ts +9 -1
- package/dist/room-handoff/room-handoff-engine.d.ts.map +1 -1
- package/dist/room-handoff/room-handoff-engine.js +40 -7
- package/dist/room-handoff/room-handoff-engine.js.map +1 -1
- package/package.json +13 -12
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview {@link LiveKitParticipantService} — changes a participant in a live room through LiveKit's
|
|
3
|
+
* `RoomServiceClient` (`livekit-server-sdk`). Today it records whether a person lets agents see their camera and shared
|
|
4
|
+
* screen. A participant's token can't change its own attributes: MJ's tokens carry no `canUpdateOwnMetadata`, because
|
|
5
|
+
* the same right would let anyone rename themselves and rewrite the metadata that carries their role. So the server
|
|
6
|
+
* sets the attribute for them, once MJAPI has worked out who is asking.
|
|
7
|
+
*
|
|
8
|
+
* @module @memberjunction/livekit-room-server
|
|
9
|
+
*/
|
|
10
|
+
import { RoomServiceClient, TwirpError } from 'livekit-server-sdk';
|
|
11
|
+
import { AgentVisionAttributes } from '@memberjunction/ai';
|
|
12
|
+
import { LiveKitTokenService } from './livekit-token-service.js';
|
|
13
|
+
import { WsToHttpUrl } from './livekit-egress-service.js';
|
|
14
|
+
/** Changes participants in live LiveKit rooms, on the server's authority. */
|
|
15
|
+
export class LiveKitParticipantService {
|
|
16
|
+
/**
|
|
17
|
+
* @param config Explicit credentials; omitted fields fall back to environment variables (via
|
|
18
|
+
* {@link LiveKitTokenService}). The room service client uses the HTTP(S) form of the server URL.
|
|
19
|
+
* @param client An injectable room service client (primarily for unit testing); defaults to a real
|
|
20
|
+
* `RoomServiceClient` built from the resolved credentials.
|
|
21
|
+
*/
|
|
22
|
+
constructor(config, client) {
|
|
23
|
+
const token = new LiveKitTokenService(config);
|
|
24
|
+
this.configured = token.IsConfigured;
|
|
25
|
+
this.client =
|
|
26
|
+
client ?? new RoomServiceClient(WsToHttpUrl(token.ServerUrl), config?.ApiKey ?? process.env.LIVEKIT_API_KEY, config?.ApiSecret ?? process.env.LIVEKIT_API_SECRET);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Records whether a person lets agents see their camera and shared screen: sets their `mj.agentCanSee` attribute to
|
|
30
|
+
* `'true'`, or removes it. The caller must already have established that `identity` is the person asking.
|
|
31
|
+
*
|
|
32
|
+
* @param roomName The room the person is in.
|
|
33
|
+
* @param identity The person's participant identity.
|
|
34
|
+
* @param allow `true` to let agents see, `false` to stop.
|
|
35
|
+
* @returns Whether LiveKit applied it; never throws.
|
|
36
|
+
*/
|
|
37
|
+
async SetAgentVision(roomName, identity, allow) {
|
|
38
|
+
return this.updateAttributes(roomName, identity, AgentVisionAttributes(allow));
|
|
39
|
+
}
|
|
40
|
+
/** Sets (or, with `''`, removes) a participant's attributes; reports LiveKit's refusal instead of throwing. */
|
|
41
|
+
async updateAttributes(roomName, identity, attributes) {
|
|
42
|
+
if (!this.configured) {
|
|
43
|
+
return { Success: false, ErrorMessage: 'LiveKit is not configured on this server.' };
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
await this.client.updateParticipant(roomName, identity, { attributes });
|
|
47
|
+
return { Success: true };
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
if (isNotFound(error)) {
|
|
51
|
+
return { Success: false, NotInRoom: true, ErrorMessage: `${identity} is not in room ${roomName}.` };
|
|
52
|
+
}
|
|
53
|
+
return { Success: false, ErrorMessage: error instanceof Error ? error.message : String(error) };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Whether LiveKit refused because the room or the participant does not exist. Only LiveKit's own `not_found` code
|
|
59
|
+
* counts: a bare HTTP 404 more likely means the server URL is wrong.
|
|
60
|
+
*/
|
|
61
|
+
function isNotFound(error) {
|
|
62
|
+
return error instanceof TwirpError && error.code === 'not_found';
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=livekit-participant-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"livekit-participant-service.js","sourceRoot":"","sources":["../src/livekit-participant-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAA4B,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAevD,6EAA6E;AAC7E,MAAM,OAAO,yBAAyB;IAIpC;;;;;OAKG;IACH,YAAY,MAAqC,EAAE,MAAoC;QACrF,MAAM,KAAK,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC;QACrC,IAAI,CAAC,MAAM;YACT,MAAM,IAAI,IAAI,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACtK,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,cAAc,CAAC,QAAgB,EAAE,QAAgB,EAAE,KAAc;QAC5E,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,+GAA+G;IACvG,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,QAAgB,EAAE,UAAkC;QACnG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,2CAA2C,EAAE,CAAC;QACvF,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;YACxE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,QAAQ,mBAAmB,QAAQ,GAAG,EAAE,CAAC;YACtG,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAClG,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;AACnE,CAAC"}
|
|
@@ -40,6 +40,16 @@ export interface MintTokenParams {
|
|
|
40
40
|
TtlSeconds?: number;
|
|
41
41
|
/** Extra metadata merged into the participant metadata JSON. */
|
|
42
42
|
Metadata?: Record<string, unknown>;
|
|
43
|
+
/**
|
|
44
|
+
* LiveKit participant attributes the participant carries from the moment it joins (e.g. `mj.agentWatches` on an
|
|
45
|
+
* agent's bot). Attributes are shared with every participant and announced on change.
|
|
46
|
+
*/
|
|
47
|
+
Attributes?: Record<string, string>;
|
|
48
|
+
/**
|
|
49
|
+
* Whether the participant may change its own name, metadata and attributes. Default: false (LiveKit's default). Agent
|
|
50
|
+
* bots get it, so a bot can say when its avatar was taken down (`mj.agentAvatar`).
|
|
51
|
+
*/
|
|
52
|
+
CanUpdateOwnMetadata?: boolean;
|
|
43
53
|
}
|
|
44
54
|
/** A minted token plus the connection coordinates a client needs to join. */
|
|
45
55
|
export interface MintedToken {
|
|
@@ -89,18 +99,23 @@ export declare class LiveKitTokenService {
|
|
|
89
99
|
MintClientToken(roomName: string, identity: string, displayName?: string, ttlSeconds?: number): Promise<MintedToken>;
|
|
90
100
|
/**
|
|
91
101
|
* Mints a token for the AGENT bot (publish + subscribe + data, `agent` role metadata so the UI badges
|
|
92
|
-
* it correctly
|
|
102
|
+
* it correctly, and leave to update its own attributes, so it can say when its avatar was taken down). The bridge
|
|
103
|
+
* passes this in its session `Configuration.AccessToken`.
|
|
93
104
|
*
|
|
94
105
|
* @param roomName The room to join.
|
|
95
106
|
* @param identity The bot identity.
|
|
96
107
|
* @param displayName The bot display name.
|
|
108
|
+
* @param attributes Participant attributes the bot carries from the moment it joins (e.g. `mj.agentWatches`).
|
|
97
109
|
*/
|
|
98
|
-
MintBotToken(roomName: string, identity: string, displayName?: string): Promise<MintedToken>;
|
|
99
|
-
/** Builds the LiveKit video grant from the params (defaults: publish + subscribe + data all on). */
|
|
110
|
+
MintBotToken(roomName: string, identity: string, displayName?: string, attributes?: Record<string, string>): Promise<MintedToken>;
|
|
111
|
+
/** Builds the LiveKit video grant from the params (defaults: publish + subscribe + data all on; own metadata off). */
|
|
100
112
|
private buildGrant;
|
|
101
113
|
/** Builds the participant metadata JSON string, always stamping the role for UI resolution. */
|
|
102
114
|
private buildMetadata;
|
|
103
|
-
/**
|
|
104
|
-
|
|
115
|
+
/**
|
|
116
|
+
* Throws a clear error when credentials are missing. Public so a caller that must fail before doing costly work (the
|
|
117
|
+
* room coordinator, before it opens a model session) gets the same error minting would.
|
|
118
|
+
*/
|
|
119
|
+
AssertConfigured(): void;
|
|
105
120
|
}
|
|
106
121
|
//# sourceMappingURL=livekit-token-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"livekit-token-service.d.ts","sourceRoot":"","sources":["../src/livekit-token-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IAClC,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,gGAAgG;AAChG,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC;AAEhE,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sFAAsF;IACtF,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,gEAAgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sEAAsE;IACtE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gFAAgF;IAChF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"livekit-token-service.d.ts","sourceRoot":"","sources":["../src/livekit-token-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IAClC,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,gGAAgG;AAChG,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC;AAEhE,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sFAAsF;IACtF,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,gEAAgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sEAAsE;IACtE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gFAAgF;IAChF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,6EAA6E;AAC7E,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,yFAAyF;AACzF,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAE7C;;;OAGG;gBACS,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAQjD,qEAAqE;IACrE,IAAW,YAAY,IAAI,OAAO,CAEjC;IAED,iFAAiF;IACjF,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED;;;;;;OAMG;IACU,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAcrE;;;;;;;OAOG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI3H;;;;;;;;;OASG;IACI,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAIxI,sHAAsH;IACtH,OAAO,CAAC,UAAU;IAWlB,+FAA+F;IAC/F,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACI,gBAAgB,IAAI,IAAI;CAQhC"}
|
|
@@ -47,12 +47,13 @@ export class LiveKitTokenService {
|
|
|
47
47
|
* @throws {Error} when credentials are not configured.
|
|
48
48
|
*/
|
|
49
49
|
async MintToken(params) {
|
|
50
|
-
this.
|
|
50
|
+
this.AssertConfigured();
|
|
51
51
|
const at = new AccessToken(this.config.ApiKey, this.config.ApiSecret, {
|
|
52
52
|
identity: params.Identity,
|
|
53
53
|
name: params.DisplayName,
|
|
54
54
|
ttl: params.TtlSeconds ?? 3600,
|
|
55
55
|
metadata: this.buildMetadata(params),
|
|
56
|
+
attributes: params.Attributes,
|
|
56
57
|
});
|
|
57
58
|
at.addGrant(this.buildGrant(params));
|
|
58
59
|
const token = await at.toJwt();
|
|
@@ -71,16 +72,18 @@ export class LiveKitTokenService {
|
|
|
71
72
|
}
|
|
72
73
|
/**
|
|
73
74
|
* Mints a token for the AGENT bot (publish + subscribe + data, `agent` role metadata so the UI badges
|
|
74
|
-
* it correctly
|
|
75
|
+
* it correctly, and leave to update its own attributes, so it can say when its avatar was taken down). The bridge
|
|
76
|
+
* passes this in its session `Configuration.AccessToken`.
|
|
75
77
|
*
|
|
76
78
|
* @param roomName The room to join.
|
|
77
79
|
* @param identity The bot identity.
|
|
78
80
|
* @param displayName The bot display name.
|
|
81
|
+
* @param attributes Participant attributes the bot carries from the moment it joins (e.g. `mj.agentWatches`).
|
|
79
82
|
*/
|
|
80
|
-
MintBotToken(roomName, identity, displayName) {
|
|
81
|
-
return this.MintToken({ RoomName: roomName, Identity: identity, DisplayName: displayName, Role: 'agent' });
|
|
83
|
+
MintBotToken(roomName, identity, displayName, attributes) {
|
|
84
|
+
return this.MintToken({ RoomName: roomName, Identity: identity, DisplayName: displayName, Role: 'agent', Attributes: attributes, CanUpdateOwnMetadata: true });
|
|
82
85
|
}
|
|
83
|
-
/** Builds the LiveKit video grant from the params (defaults: publish + subscribe + data all on). */
|
|
86
|
+
/** Builds the LiveKit video grant from the params (defaults: publish + subscribe + data all on; own metadata off). */
|
|
84
87
|
buildGrant(params) {
|
|
85
88
|
return {
|
|
86
89
|
roomJoin: true,
|
|
@@ -88,14 +91,18 @@ export class LiveKitTokenService {
|
|
|
88
91
|
canPublish: params.CanPublish ?? true,
|
|
89
92
|
canSubscribe: params.CanSubscribe ?? true,
|
|
90
93
|
canPublishData: params.CanPublishData ?? true,
|
|
94
|
+
...(params.CanUpdateOwnMetadata ? { canUpdateOwnMetadata: true } : {}),
|
|
91
95
|
};
|
|
92
96
|
}
|
|
93
97
|
/** Builds the participant metadata JSON string, always stamping the role for UI resolution. */
|
|
94
98
|
buildMetadata(params) {
|
|
95
99
|
return JSON.stringify({ mjRole: params.Role ?? 'participant', ...(params.Metadata ?? {}) });
|
|
96
100
|
}
|
|
97
|
-
/**
|
|
98
|
-
|
|
101
|
+
/**
|
|
102
|
+
* Throws a clear error when credentials are missing. Public so a caller that must fail before doing costly work (the
|
|
103
|
+
* room coordinator, before it opens a model session) gets the same error minting would.
|
|
104
|
+
*/
|
|
105
|
+
AssertConfigured() {
|
|
99
106
|
if (!this.IsConfigured) {
|
|
100
107
|
throw new Error('LiveKitTokenService is not configured. Set LIVEKIT_URL, LIVEKIT_API_KEY, and LIVEKIT_API_SECRET ' +
|
|
101
108
|
'(or pass them to the constructor) before minting tokens.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"livekit-token-service.js","sourceRoot":"","sources":["../src/livekit-token-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAmB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"livekit-token-service.js","sourceRoot":"","sources":["../src/livekit-token-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,14 @@ export declare class DialInRateLimiter {
|
|
|
24
24
|
allowed: boolean;
|
|
25
25
|
remainingMs?: number;
|
|
26
26
|
};
|
|
27
|
+
/** Above this many tracked keys, RecordFailure sweeps expired entries (keys are caller-supplied, so unbounded otherwise). */
|
|
28
|
+
private static readonly sweepThreshold;
|
|
29
|
+
/** Hard ceiling; if a sweep can't get below it (a flood of live entries), the oldest entries are dropped. */
|
|
30
|
+
private static readonly maxEntries;
|
|
31
|
+
/** Removes entries whose window and lockout have both elapsed. */
|
|
32
|
+
private sweepExpired;
|
|
33
|
+
/** Number of tracked keys (diagnostics/tests). */
|
|
34
|
+
get Size(): number;
|
|
27
35
|
RecordFailure(key: string): void;
|
|
28
36
|
RecordSuccess(key: string): void;
|
|
29
37
|
Clear(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meeting-dial-in-service.d.ts","sourceRoot":"","sources":["../src/meeting-dial-in-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,aAAa,EAAmB,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAqB,KAAK,iBAAiB,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAUhG,yEAAyE;AACzE,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAL5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;gBAG3C,WAAW,GAAE,MAAU,EACvB,QAAQ,GAAE,MAAuB,EACjC,SAAS,GAAE,MAAuB;IAG9C,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"meeting-dial-in-service.d.ts","sourceRoot":"","sources":["../src/meeting-dial-in-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,aAAa,EAAmB,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAqB,KAAK,iBAAiB,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAUhG,yEAAyE;AACzE,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAL5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;gBAG3C,WAAW,GAAE,MAAU,EACvB,QAAQ,GAAE,MAAuB,EACjC,SAAS,GAAE,MAAuB;IAG9C,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;IAoB5E,6HAA6H;IAC7H,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAQ;IAC9C,6GAA6G;IAC7G,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAS;IAE3C,kEAAkE;IAClE,OAAO,CAAC,YAAY;IAgBpB,kDAAkD;IAClD,IAAW,IAAI,IAAI,MAAM,CAExB;IAEM,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAgBhC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIhC,KAAK,IAAI,IAAI;CAGrB;AAED,qDAAqD;AACrD,MAAM,WAAW,sBAAsB;IACrC,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAED,2CAA2C;AAC3C,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,aAAa,CAAC,oBAAoB,CAAC;IAE3E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4D;IAE1F,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6D;;IAM3F,WAAkB,QAAQ,IAAI,oBAAoB,CAEjD;IAED;;OAEG;IACI,kBAAkB,IAAI,MAAM;IAInC;;OAEG;IACU,wBAAwB,CACnC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,QAAQ,EACd,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAqB9B;;;OAGG;IACU,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA0E/F,kDAAkD;IAC3C,yBAAyB,IAAI,IAAI;CAIzC"}
|
|
@@ -41,8 +41,35 @@ export class DialInRateLimiter {
|
|
|
41
41
|
}
|
|
42
42
|
return { allowed: true };
|
|
43
43
|
}
|
|
44
|
+
/** Above this many tracked keys, RecordFailure sweeps expired entries (keys are caller-supplied, so unbounded otherwise). */
|
|
45
|
+
static { this.sweepThreshold = 1000; }
|
|
46
|
+
/** Hard ceiling; if a sweep can't get below it (a flood of live entries), the oldest entries are dropped. */
|
|
47
|
+
static { this.maxEntries = 10000; }
|
|
48
|
+
/** Removes entries whose window and lockout have both elapsed. */
|
|
49
|
+
sweepExpired(now) {
|
|
50
|
+
for (const [key, entry] of this.attempts) {
|
|
51
|
+
const lockExpired = !entry.lockedUntil || entry.lockedUntil <= now;
|
|
52
|
+
if (lockExpired && now - entry.firstAttemptAt > this.windowMs) {
|
|
53
|
+
this.attempts.delete(key);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// Map iterates in insertion order, so the first keys are the oldest. Leave room for the entry about to be inserted.
|
|
57
|
+
for (const key of this.attempts.keys()) {
|
|
58
|
+
if (this.attempts.size < DialInRateLimiter.maxEntries) {
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
this.attempts.delete(key);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/** Number of tracked keys (diagnostics/tests). */
|
|
65
|
+
get Size() {
|
|
66
|
+
return this.attempts.size;
|
|
67
|
+
}
|
|
44
68
|
RecordFailure(key) {
|
|
45
69
|
const now = Date.now();
|
|
70
|
+
if (this.attempts.size >= DialInRateLimiter.sweepThreshold) {
|
|
71
|
+
this.sweepExpired(now);
|
|
72
|
+
}
|
|
46
73
|
const entry = this.attempts.get(key);
|
|
47
74
|
if (!entry || now - entry.firstAttemptAt > this.windowMs) {
|
|
48
75
|
this.attempts.set(key, { attempts: 1, firstAttemptAt: now });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meeting-dial-in-service.js","sourceRoot":"","sources":["../src/meeting-dial-in-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAyC,MAAM,sBAAsB,CAAC;AAUhG,yEAAyE;AACzE,MAAM,OAAO,iBAAiB;IAG5B,YACmB,cAAsB,CAAC,EACvB,WAAmB,EAAE,GAAG,EAAE,GAAG,IAAI,EACjC,YAAoB,EAAE,GAAG,EAAE,GAAG,IAAI;QAFlC,gBAAW,GAAX,WAAW,CAAY;QACvB,aAAQ,GAAR,QAAQ,CAAyB;QACjC,cAAS,GAAT,SAAS,CAAyB;QALpC,aAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IAM3D,CAAC;IAEG,YAAY,CAAC,GAAW;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC;YACjD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC;QAClE,CAAC;QACD,IAAI,GAAG,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;YACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACzD,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAEM,aAAa,CAAC,GAAW;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjB,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvC,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAEM,aAAa,CAAC,GAAW;QAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC
|
|
1
|
+
{"version":3,"file":"meeting-dial-in-service.js","sourceRoot":"","sources":["../src/meeting-dial-in-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,6 +70,11 @@ export declare function ToOfferView(offer: HandoffOfferRecord): HandoffOfferView
|
|
|
70
70
|
export interface HandoffOfferRegistryDeps {
|
|
71
71
|
Provider?: IMetadataProvider;
|
|
72
72
|
ContextUser?: UserInfo;
|
|
73
|
+
/**
|
|
74
|
+
* Lazily resolves a server identity when no `ContextUser` was given (e.g. the system user, which only exists once the
|
|
75
|
+
* host's user cache has loaded). Consulted on every call, so a late-loading cache is picked up.
|
|
76
|
+
*/
|
|
77
|
+
ResolveContextUser?: () => UserInfo | undefined;
|
|
73
78
|
Publisher?: (event: {
|
|
74
79
|
UserID: string;
|
|
75
80
|
Kind: 'offered' | 'updated';
|
|
@@ -131,6 +136,11 @@ export declare class HandoffOfferRegistry extends BaseSingleton<HandoffOfferRegi
|
|
|
131
136
|
private finish;
|
|
132
137
|
private entityToRecord;
|
|
133
138
|
private notifyPublisher;
|
|
139
|
+
private warnedNoUser;
|
|
140
|
+
/** The caller's user, else the configured server identity, else the lazily resolved one. */
|
|
141
|
+
private resolveUser;
|
|
142
|
+
/** Logs once (not per tick) that database queries are being skipped because no user identity is available yet. */
|
|
143
|
+
private noteNoUser;
|
|
134
144
|
private getProvider;
|
|
135
145
|
private getRunView;
|
|
136
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handoff-offer-registry.d.ts","sourceRoot":"","sources":["../../src/room-handoff/handoff-offer-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAA+B,iBAAiB,
|
|
1
|
+
{"version":3,"file":"handoff-offer-registry.d.ts","sourceRoot":"","sources":["../../src/room-handoff/handoff-offer-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* @module @memberjunction/livekit-room-server
|
|
17
17
|
*/
|
|
18
18
|
import { randomUUID } from 'node:crypto';
|
|
19
|
-
import { LogError, Metadata, RunInEntityTransaction, RunView } from '@memberjunction/core';
|
|
19
|
+
import { LogError, LogStatusEx, Metadata, RunInEntityTransaction, RunView } from '@memberjunction/core';
|
|
20
20
|
import { BaseSingleton, EscapeSQLString, UUIDsEqual } from '@memberjunction/global';
|
|
21
21
|
/** How long a person has to accept an offer before it expires. */
|
|
22
22
|
export const HANDOFF_OFFER_TIMEOUT_MS = 45_000;
|
|
@@ -56,6 +56,7 @@ export class HandoffOfferRegistry extends BaseSingleton {
|
|
|
56
56
|
this.deps = {};
|
|
57
57
|
this.offers = new Map();
|
|
58
58
|
this.now = Date.now;
|
|
59
|
+
this.warnedNoUser = false;
|
|
59
60
|
this.sweepTimer = setInterval(() => {
|
|
60
61
|
void this.Sweep().catch((e) => {
|
|
61
62
|
LogError(`[HandoffOfferRegistry] periodic sweep failed: ${e instanceof Error ? e.message : String(e)}`);
|
|
@@ -101,7 +102,7 @@ export class HandoffOfferRegistry extends BaseSingleton {
|
|
|
101
102
|
const expiresAt = createdAt + timeoutMs;
|
|
102
103
|
const p = this.getProvider(input.Provider);
|
|
103
104
|
if (p && typeof p.GetEntityObject === 'function') {
|
|
104
|
-
const user =
|
|
105
|
+
const user = this.resolveUser(input.ContextUser);
|
|
105
106
|
try {
|
|
106
107
|
let interactionID = input.InteractionID;
|
|
107
108
|
if (!interactionID) {
|
|
@@ -176,7 +177,7 @@ export class HandoffOfferRegistry extends BaseSingleton {
|
|
|
176
177
|
const now = this.now();
|
|
177
178
|
if (p && typeof p.GetEntityObject === 'function') {
|
|
178
179
|
try {
|
|
179
|
-
const user =
|
|
180
|
+
const user = this.resolveUser(contextUser);
|
|
180
181
|
const entity = await p.GetEntityObject('MJ: Interaction Offers', user);
|
|
181
182
|
const loaded = await entity.Load(offerID);
|
|
182
183
|
if (loaded) {
|
|
@@ -210,10 +211,13 @@ export class HandoffOfferRegistry extends BaseSingleton {
|
|
|
210
211
|
async PendingForUser(userID, contextUser, provider) {
|
|
211
212
|
const p = this.getProvider(provider);
|
|
212
213
|
const now = this.now();
|
|
213
|
-
|
|
214
|
+
const user = this.resolveUser(contextUser);
|
|
215
|
+
if (!user) {
|
|
216
|
+
this.noteNoUser();
|
|
217
|
+
}
|
|
218
|
+
if (p && user && typeof p.GetEntityObject === 'function') {
|
|
214
219
|
try {
|
|
215
220
|
const rv = this.getRunView(p);
|
|
216
|
-
const user = contextUser ?? this.deps.ContextUser;
|
|
217
221
|
const result = await rv.RunView({
|
|
218
222
|
EntityName: 'MJ: Interaction Offers',
|
|
219
223
|
ExtraFilter: `TargetUserID = '${EscapeSQLString(userID)}' AND Status = 'Pending'`,
|
|
@@ -255,11 +259,14 @@ export class HandoffOfferRegistry extends BaseSingleton {
|
|
|
255
259
|
await this.sweep(contextUser, provider);
|
|
256
260
|
const p = this.getProvider(provider);
|
|
257
261
|
const now = this.now();
|
|
258
|
-
|
|
262
|
+
const user = this.resolveUser(contextUser);
|
|
263
|
+
if (!user) {
|
|
264
|
+
this.noteNoUser();
|
|
265
|
+
}
|
|
266
|
+
if (p && user && typeof p.GetEntityObject === 'function') {
|
|
259
267
|
try {
|
|
260
268
|
const cutoff = new Date(now - HANDOFF_OFFER_RETENTION_MS).toISOString();
|
|
261
269
|
const rv = this.getRunView(p);
|
|
262
|
-
const user = contextUser ?? this.deps.ContextUser;
|
|
263
270
|
const result = await rv.RunView({
|
|
264
271
|
EntityName: 'MJ: Interaction Offers',
|
|
265
272
|
ExtraFilter: `TargetUserID = '${EscapeSQLString(userID)}' AND (Status = 'Pending' OR RespondedAt >= '${cutoff}')`,
|
|
@@ -288,10 +295,13 @@ export class HandoffOfferRegistry extends BaseSingleton {
|
|
|
288
295
|
async ForRoom(roomName, contextUser, provider) {
|
|
289
296
|
const key = roomName.trim().toLowerCase();
|
|
290
297
|
const p = this.getProvider(provider);
|
|
291
|
-
|
|
298
|
+
const user = this.resolveUser(contextUser);
|
|
299
|
+
if (!user) {
|
|
300
|
+
this.noteNoUser();
|
|
301
|
+
}
|
|
302
|
+
if (p && user && typeof p.GetEntityObject === 'function') {
|
|
292
303
|
try {
|
|
293
304
|
const rv = this.getRunView(p);
|
|
294
|
-
const user = contextUser ?? this.deps.ContextUser;
|
|
295
305
|
const result = await rv.RunView({
|
|
296
306
|
EntityName: 'MJ: Interaction Offers',
|
|
297
307
|
ExtraFilter: `RoomName = '${EscapeSQLString(roomName.trim())}'`,
|
|
@@ -319,7 +329,7 @@ export class HandoffOfferRegistry extends BaseSingleton {
|
|
|
319
329
|
async ResolveForUser(offerID, userID, status, contextUser, provider) {
|
|
320
330
|
const p = this.getProvider(provider);
|
|
321
331
|
if (p && typeof p.GetEntityObject === 'function') {
|
|
322
|
-
const user =
|
|
332
|
+
const user = this.resolveUser(contextUser);
|
|
323
333
|
try {
|
|
324
334
|
return await RunInEntityTransaction(asTransactionCapable(p), async () => {
|
|
325
335
|
const entity = await p.GetEntityObject('MJ: Interaction Offers', user);
|
|
@@ -380,7 +390,7 @@ export class HandoffOfferRegistry extends BaseSingleton {
|
|
|
380
390
|
async Close(offerID, status, contextUser, provider) {
|
|
381
391
|
const p = this.getProvider(provider);
|
|
382
392
|
if (p && typeof p.GetEntityObject === 'function') {
|
|
383
|
-
const user =
|
|
393
|
+
const user = this.resolveUser(contextUser);
|
|
384
394
|
try {
|
|
385
395
|
return await RunInEntityTransaction(asTransactionCapable(p), async () => {
|
|
386
396
|
const entity = await p.GetEntityObject('MJ: Interaction Offers', user);
|
|
@@ -426,10 +436,13 @@ export class HandoffOfferRegistry extends BaseSingleton {
|
|
|
426
436
|
const now = this.now();
|
|
427
437
|
let swept = 0;
|
|
428
438
|
const p = this.getProvider(provider);
|
|
429
|
-
|
|
439
|
+
const user = this.resolveUser(contextUser);
|
|
440
|
+
if (!user) {
|
|
441
|
+
this.noteNoUser();
|
|
442
|
+
}
|
|
443
|
+
if (p && user && typeof p.GetEntityObject === 'function') {
|
|
430
444
|
try {
|
|
431
445
|
const rv = this.getRunView(p);
|
|
432
|
-
const user = contextUser ?? this.deps.ContextUser;
|
|
433
446
|
const result = await rv.RunView({
|
|
434
447
|
EntityName: 'MJ: Interaction Offers',
|
|
435
448
|
ExtraFilter: `Status = 'Pending' AND ExpiresAt <= '${new Date(now).toISOString()}'`,
|
|
@@ -508,6 +521,20 @@ export class HandoffOfferRegistry extends BaseSingleton {
|
|
|
508
521
|
LogError(`[HandoffOfferRegistry] publish failed: ${e instanceof Error ? e.message : String(e)}`);
|
|
509
522
|
}
|
|
510
523
|
}
|
|
524
|
+
/** The caller's user, else the configured server identity, else the lazily resolved one. */
|
|
525
|
+
resolveUser(contextUser) {
|
|
526
|
+
return contextUser ?? this.deps.ContextUser ?? this.deps.ResolveContextUser?.();
|
|
527
|
+
}
|
|
528
|
+
/** Logs once (not per tick) that database queries are being skipped because no user identity is available yet. */
|
|
529
|
+
noteNoUser() {
|
|
530
|
+
if (!this.warnedNoUser) {
|
|
531
|
+
this.warnedNoUser = true;
|
|
532
|
+
LogStatusEx({
|
|
533
|
+
message: '[HandoffOfferRegistry] no context user configured yet; skipping database queries (in-memory offers still served and expired).',
|
|
534
|
+
verboseOnly: true,
|
|
535
|
+
});
|
|
536
|
+
}
|
|
537
|
+
}
|
|
511
538
|
getProvider(callProvider) {
|
|
512
539
|
return callProvider ?? this.deps.Provider ?? Metadata.Provider;
|
|
513
540
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handoff-offer-registry.js","sourceRoot":"","sources":["../../src/room-handoff/handoff-offer-registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handoff-offer-registry.js","sourceRoot":"","sources":["../../src/room-handoff/handoff-offer-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -148,17 +148,19 @@ export interface StartRoomAgentRequest {
|
|
|
148
148
|
/** Optional per-session voice override. */
|
|
149
149
|
RealtimeVoice?: string;
|
|
150
150
|
}
|
|
151
|
+
/** Handoff lifecycle event payload. */
|
|
152
|
+
export interface RoomHandoffEvent {
|
|
153
|
+
RoomName: string;
|
|
154
|
+
EventType: 'Offered' | 'Accepted' | 'Declined' | 'Transferred' | 'Escalated';
|
|
155
|
+
ActorUserID?: string;
|
|
156
|
+
ActorAgentID?: string;
|
|
157
|
+
Details?: Record<string, unknown>;
|
|
158
|
+
ContextUser?: UserInfo;
|
|
159
|
+
Provider?: IMetadataProvider;
|
|
160
|
+
}
|
|
151
161
|
/** Observer for handoff lifecycle events (offered, accepted, declined, transferred, escalated). */
|
|
152
162
|
export interface IRoomHandoffObserver {
|
|
153
|
-
OnHandoffEvent?: (event:
|
|
154
|
-
RoomName: string;
|
|
155
|
-
EventType: 'Offered' | 'Accepted' | 'Declined' | 'Transferred' | 'Escalated';
|
|
156
|
-
ActorUserID?: string;
|
|
157
|
-
ActorAgentID?: string;
|
|
158
|
-
Details?: Record<string, unknown>;
|
|
159
|
-
ContextUser?: UserInfo;
|
|
160
|
-
Provider?: IMetadataProvider;
|
|
161
|
-
}) => void | Promise<void>;
|
|
163
|
+
OnHandoffEvent?: (event: RoomHandoffEvent) => void | Promise<void>;
|
|
162
164
|
}
|
|
163
165
|
/** What the host reports back once the agent is in the room. */
|
|
164
166
|
export interface StartedRoomAgent {
|