@memberjunction/server 5.41.0 → 5.43.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/agentSessions/SessionJanitor.d.ts.map +1 -1
- package/dist/agentSessions/SessionJanitor.js +5 -1
- package/dist/agentSessions/SessionJanitor.js.map +1 -1
- package/dist/agentSessions/SessionManager.d.ts +15 -2
- package/dist/agentSessions/SessionManager.d.ts.map +1 -1
- package/dist/agentSessions/SessionManager.js +50 -11
- package/dist/agentSessions/SessionManager.js.map +1 -1
- package/dist/agentSessions/index.d.ts +1 -0
- package/dist/agentSessions/index.d.ts.map +1 -1
- package/dist/agentSessions/index.js +5 -0
- package/dist/agentSessions/index.js.map +1 -1
- package/dist/agentSessions/remoteBrowserGoalEngine.d.ts +102 -0
- package/dist/agentSessions/remoteBrowserGoalEngine.d.ts.map +1 -0
- package/dist/agentSessions/remoteBrowserGoalEngine.js +164 -0
- package/dist/agentSessions/remoteBrowserGoalEngine.js.map +1 -0
- package/dist/agentSessions/remoteBrowserGoalRegistry.d.ts +66 -0
- package/dist/agentSessions/remoteBrowserGoalRegistry.d.ts.map +1 -0
- package/dist/agentSessions/remoteBrowserGoalRegistry.js +86 -0
- package/dist/agentSessions/remoteBrowserGoalRegistry.js.map +1 -0
- package/dist/auth/initializeProviders.d.ts.map +1 -1
- package/dist/auth/initializeProviders.js +4 -7
- package/dist/auth/initializeProviders.js.map +1 -1
- package/dist/config.d.ts +7 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -2
- package/dist/config.js.map +1 -1
- package/dist/generated/generated.d.ts +612 -0
- package/dist/generated/generated.d.ts.map +1 -1
- package/dist/generated/generated.js +6934 -3626
- package/dist/generated/generated.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -17
- package/dist/index.js.map +1 -1
- package/dist/integration/CustomColumnPromoter.d.ts +108 -0
- package/dist/integration/CustomColumnPromoter.d.ts.map +1 -0
- package/dist/integration/CustomColumnPromoter.js +508 -0
- package/dist/integration/CustomColumnPromoter.js.map +1 -0
- package/dist/logging/StartupLogger.d.ts +57 -1
- package/dist/logging/StartupLogger.d.ts.map +1 -1
- package/dist/logging/StartupLogger.js +115 -6
- package/dist/logging/StartupLogger.js.map +1 -1
- package/dist/resolvers/ExecuteRemoteOperationResolver.d.ts +46 -0
- package/dist/resolvers/ExecuteRemoteOperationResolver.d.ts.map +1 -0
- package/dist/resolvers/ExecuteRemoteOperationResolver.js +192 -0
- package/dist/resolvers/ExecuteRemoteOperationResolver.js.map +1 -0
- package/dist/resolvers/IntegrationDiscoveryResolver.d.ts +101 -1
- package/dist/resolvers/IntegrationDiscoveryResolver.d.ts.map +1 -1
- package/dist/resolvers/IntegrationDiscoveryResolver.js +629 -58
- package/dist/resolvers/IntegrationDiscoveryResolver.js.map +1 -1
- package/dist/resolvers/RealtimeBridgeResolver.d.ts +130 -0
- package/dist/resolvers/RealtimeBridgeResolver.d.ts.map +1 -0
- package/dist/resolvers/RealtimeBridgeResolver.js +580 -0
- package/dist/resolvers/RealtimeBridgeResolver.js.map +1 -0
- package/dist/resolvers/RemoteBrowserActionResolver.d.ts +78 -5
- package/dist/resolvers/RemoteBrowserActionResolver.d.ts.map +1 -1
- package/dist/resolvers/RemoteBrowserActionResolver.js +227 -15
- package/dist/resolvers/RemoteBrowserActionResolver.js.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.js +0 -7
- package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
- package/dist/resolvers/RunTemplateResolver.d.ts +8 -0
- package/dist/resolvers/RunTemplateResolver.d.ts.map +1 -1
- package/dist/resolvers/RunTemplateResolver.js +8 -0
- package/dist/resolvers/RunTemplateResolver.js.map +1 -1
- package/dist/rest/setupRESTEndpoints.d.ts.map +1 -1
- package/dist/rest/setupRESTEndpoints.js +5 -3
- package/dist/rest/setupRESTEndpoints.js.map +1 -1
- package/package.json +83 -78
- package/src/__tests__/RealtimeBridgeResolver.test.ts +100 -0
- package/src/__tests__/RemoteBrowserAudioStream.test.ts +8 -1
- package/src/__tests__/RemoteBrowserGoalEngine.test.ts +144 -0
- package/src/__tests__/remoteBrowserGoalRegistry.test.ts +81 -0
- package/src/agentSessions/SessionJanitor.ts +15 -1
- package/src/agentSessions/SessionManager.ts +59 -10
- package/src/agentSessions/index.ts +5 -0
- package/src/agentSessions/remoteBrowserGoalEngine.ts +191 -0
- package/src/agentSessions/remoteBrowserGoalRegistry.ts +122 -0
- package/src/auth/initializeProviders.ts +4 -7
- package/src/config.ts +13 -2
- package/src/generated/generated.ts +2502 -198
- package/src/index.ts +38 -17
- package/src/integration/CustomColumnPromoter.ts +597 -0
- package/src/logging/StartupLogger.ts +130 -6
- package/src/resolvers/ExecuteRemoteOperationResolver.ts +164 -0
- package/src/resolvers/IntegrationDiscoveryResolver.ts +490 -53
- package/src/resolvers/RealtimeBridgeResolver.ts +493 -0
- package/src/resolvers/RemoteBrowserActionResolver.ts +232 -17
- package/src/resolvers/RunAIAgentResolver.ts +1 -9
- package/src/resolvers/RunTemplateResolver.ts +8 -0
- package/src/rest/setupRESTEndpoints.ts +5 -3
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { AppContext } from '../types.js';
|
|
2
|
+
import { ResolverBase } from '../generic/ResolverBase.js';
|
|
3
|
+
/**
|
|
4
|
+
* GraphQL surface for the MJ-native LiveKit room: mints scoped client access tokens and starts an
|
|
5
|
+
* agent's presence in a room. The thin resolver delegates to `@memberjunction/livekit-room-server`
|
|
6
|
+
* (token service + session-start coordinator) per the Transport-Layer Architecture — no LiveKit logic
|
|
7
|
+
* lives here.
|
|
8
|
+
*
|
|
9
|
+
* `MintLiveKitClientToken` is fully functional given LiveKit credentials. `StartLiveKitAgentRoomSession`
|
|
10
|
+
* opens a real agent model session via the realtime-session factory bound above (the agent must have an
|
|
11
|
+
* Active `Realtime` model + a vendor with a resolvable API key), then bridges it into the room through the
|
|
12
|
+
* coordinator. The native room media client (`@memberjunction/ai-bridge-livekit-native` /
|
|
13
|
+
* `@livekit/rtc-node`) must be installed on the agent host for the bot's audio to flow.
|
|
14
|
+
*/
|
|
15
|
+
export declare class MintLiveKitClientTokenInput {
|
|
16
|
+
RoomName: string;
|
|
17
|
+
DisplayName?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare class LiveKitClientTokenResult {
|
|
20
|
+
Success: boolean;
|
|
21
|
+
ErrorMessage?: string;
|
|
22
|
+
ServerUrl: string;
|
|
23
|
+
Token: string;
|
|
24
|
+
Identity: string;
|
|
25
|
+
RoomName: string;
|
|
26
|
+
}
|
|
27
|
+
export declare class StartLiveKitAgentRoomSessionInput {
|
|
28
|
+
AgentID?: string;
|
|
29
|
+
AgentName?: string;
|
|
30
|
+
/** The TARGET agent the co-agent voices (the one being "called") — the Realtime Co-Agent delegates to it. */
|
|
31
|
+
TargetAgentID?: string;
|
|
32
|
+
/** Optional per-session Realtime MODEL override (Name or ID) — a dev choosing the model for this agent. */
|
|
33
|
+
RealtimeModelID?: string;
|
|
34
|
+
/** Optional per-session VOICE override (provider-native voice id) — gives this agent a distinct voice. */
|
|
35
|
+
RealtimeVoice?: string;
|
|
36
|
+
RoomName?: string;
|
|
37
|
+
AgentSessionID?: string;
|
|
38
|
+
TurnMode?: string;
|
|
39
|
+
}
|
|
40
|
+
export declare class LiveKitAgentRoomSessionResult {
|
|
41
|
+
Success: boolean;
|
|
42
|
+
ErrorMessage?: string;
|
|
43
|
+
SessionBridgeID: string;
|
|
44
|
+
RoomName: string;
|
|
45
|
+
ServerUrl: string;
|
|
46
|
+
ClientToken: string;
|
|
47
|
+
Identity: string;
|
|
48
|
+
}
|
|
49
|
+
export declare class LiveKitRecordingInput {
|
|
50
|
+
RoomName: string;
|
|
51
|
+
Layout?: string;
|
|
52
|
+
}
|
|
53
|
+
export declare class LiveKitRecordingResult {
|
|
54
|
+
Success: boolean;
|
|
55
|
+
ErrorMessage?: string;
|
|
56
|
+
EgressID: string;
|
|
57
|
+
Status: string;
|
|
58
|
+
}
|
|
59
|
+
/** A selectable provider-native voice for the dev voice picker. */
|
|
60
|
+
export declare class RealtimeVoiceOptionResult {
|
|
61
|
+
ID: string;
|
|
62
|
+
Name: string;
|
|
63
|
+
}
|
|
64
|
+
/** An active Realtime model with the voices its driver supports — feeds the dev model/voice picker. */
|
|
65
|
+
export declare class RealtimeModelVoicesResult {
|
|
66
|
+
ModelID: string;
|
|
67
|
+
ModelName: string;
|
|
68
|
+
Voices: RealtimeVoiceOptionResult[];
|
|
69
|
+
}
|
|
70
|
+
export declare class RealtimeBridgeResolver extends ResolverBase {
|
|
71
|
+
/** Durable `AIAgentSession` record manager — creates the session row the bridge FK-references. */
|
|
72
|
+
private readonly sessionManager;
|
|
73
|
+
/**
|
|
74
|
+
* Mints a scoped LiveKit access token for the current user to join the given room. The participant
|
|
75
|
+
* identity is derived server-side from the authenticated user (never trusted from the client).
|
|
76
|
+
*/
|
|
77
|
+
MintLiveKitClientToken(input: MintLiveKitClientTokenInput, context?: AppContext): Promise<LiveKitClientTokenResult>;
|
|
78
|
+
/**
|
|
79
|
+
* Starts (or reuses) an agent's presence in a LiveKit room and returns a client token so the calling
|
|
80
|
+
* user can immediately join the same room.
|
|
81
|
+
*/
|
|
82
|
+
StartLiveKitAgentRoomSession(input: StartLiveKitAgentRoomSessionInput, context?: AppContext): Promise<LiveKitAgentRoomSessionResult>;
|
|
83
|
+
/**
|
|
84
|
+
* Stops one agent's presence in a room (the bot leaves) — the remove half of in-room agent management.
|
|
85
|
+
* Identified by the `SessionBridgeID` returned from {@link StartLiveKitAgentRoomSession}. Returns `true`
|
|
86
|
+
* when the bridge was stopped. Best-effort: a missing/already-stopped bridge or any error resolves `false`.
|
|
87
|
+
*
|
|
88
|
+
* @param sessionBridgeID The `MJ: AI Agent Session Bridges` row id of the agent to remove.
|
|
89
|
+
*/
|
|
90
|
+
StopLiveKitAgentRoomSession(sessionBridgeID: string, context?: AppContext): Promise<boolean>;
|
|
91
|
+
/**
|
|
92
|
+
* **Ends the meeting for everyone**: stops EVERY agent bot bridged into a room (by room name, via the
|
|
93
|
+
* coordinator's server-side roster). This is the "End meeting" half of the Zoom-style leave control —
|
|
94
|
+
* usable by any participant, including one who only *joined* the room and never tracked the bridge ids.
|
|
95
|
+
* Returns `true` when the teardown ran (even if the room held zero agents). Best-effort: any error → `false`.
|
|
96
|
+
*
|
|
97
|
+
* @param roomName The LiveKit room to end.
|
|
98
|
+
*/
|
|
99
|
+
EndLiveKitRoom(roomName: string, context?: AppContext): Promise<boolean>;
|
|
100
|
+
/**
|
|
101
|
+
* Lists active Realtime models with the voices each driver supports — the source for the dev model/voice
|
|
102
|
+
* picker (gated client-side by the `Realtime: Advanced Session Controls` authorization). Read-only; returns
|
|
103
|
+
* an empty list on any error so the picker degrades gracefully to "no overrides".
|
|
104
|
+
*/
|
|
105
|
+
GetRealtimeModelVoices(context?: AppContext): Promise<RealtimeModelVoicesResult[]>;
|
|
106
|
+
/**
|
|
107
|
+
* Invites MJ users to a live room: for each user, sends a **"Live Room Invite"** notification via the
|
|
108
|
+
* unified {@link NotificationEngine} — which writes the in-app notification (clickable → joins the room
|
|
109
|
+
* via the `meet-room` ResourceConfiguration) and ALSO delivers over MJ Comms (email/SMS) when the type's
|
|
110
|
+
* channels + a provider are configured. Best-effort: Comms not being set up never blocks the in-app
|
|
111
|
+
* notification, and a missing "Live Room Invite" type (seed not yet pushed) is caught and returns false.
|
|
112
|
+
*
|
|
113
|
+
* @param roomName The LiveKit room the invitees should join.
|
|
114
|
+
* @param userIDs The `MJ: Users` ids to invite.
|
|
115
|
+
* @returns `true` when at least one invite was delivered.
|
|
116
|
+
*/
|
|
117
|
+
InviteUsersToLiveKitRoom(roomName: string, userIDs: string[], context?: AppContext): Promise<boolean>;
|
|
118
|
+
/**
|
|
119
|
+
* Starts recording (composite egress) of a room. Server-authorized — the browser never holds egress
|
|
120
|
+
* credentials.
|
|
121
|
+
*/
|
|
122
|
+
StartLiveKitRecording(input: LiveKitRecordingInput, context?: AppContext): Promise<LiveKitRecordingResult>;
|
|
123
|
+
/** Stops a recording by egress id. */
|
|
124
|
+
StopLiveKitRecording(egressID: string, context?: AppContext): Promise<LiveKitRecordingResult>;
|
|
125
|
+
/** Builds a stable, lowercased participant identity from the authenticated user. */
|
|
126
|
+
private participantIdentity;
|
|
127
|
+
/** Normalizes a turn-mode string to the bridge's accepted values. */
|
|
128
|
+
private normalizeTurnMode;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=RealtimeBridgeResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RealtimeBridgeResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/RealtimeBridgeResolver.ts"],"names":[],"mappings":"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"}
|