@memberjunction/graphql-dataprovider 6.2.0-edge.1 → 6.2.0-edge.3

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.mts CHANGED
@@ -1,9 +1,10 @@
1
1
  import { GraphQLClient } from 'graphql-request';
2
2
  export { gql } from 'graphql-request';
3
- import { ProviderBase, IEntityDataProvider, IMetadataProvider, ProviderConfigDataBase, QueryExecutionSpec, UserInfo, RunQueryResult, RunQueryParams, RunQueryEnrichment, RunQueryWithCacheCheckParams, RunQueriesWithCacheCheckResponse, RunViewParams, RunViewResult, RunViewWithCacheCheckParams, RunViewsWithCacheCheckResponse, EntityInfo, ProviderType, CompositeKey, RecordChange, RecordDependency, KeyValuePair, PotentialDuplicateRequest, PotentialDuplicateResponse, SearchEntityParams, EntitySearchResult, ScoredCandidate, RemoteOpInvokeOptions, RemoteOpResult, RecordMergeRequest, EntityMergeOptions, RecordMergeResult, BaseEntity, EntitySaveOptions, EntityDeleteOptions, DatasetItemFilterType, DatasetResultType, DatasetStatusResultType, TransactionGroupBase, EntityRecordNameInput, EntityRecordNameResult, ILocalStorageProvider, TransactionResult, PlatformSQL } from '@memberjunction/core';
3
+ import { ProviderConfigDataBase, ProviderBase, IEntityDataProvider, IMetadataProvider, QueryExecutionSpec, UserInfo, RunQueryResult, RunQueryParams, RunQueryEnrichment, RunQueryWithCacheCheckParams, RunQueriesWithCacheCheckResponse, RunViewParams, RunViewResult, RunViewWithCacheCheckParams, RunViewsWithCacheCheckResponse, EntityInfo, ProviderType, CompositeKey, RecordChange, RecordDependency, KeyValuePair, PotentialDuplicateRequest, PotentialDuplicateResponse, SearchEntityParams, EntitySearchResult, ScoredCandidate, RemoteOpInvokeOptions, RemoteOpResult, RecordMergeRequest, EntityMergeOptions, RecordMergeResult, BaseEntity, EntitySaveOptions, EntityDeleteOptions, DatasetItemFilterType, DatasetResultType, DatasetStatusResultType, TransactionGroupBase, EntityRecordNameInput, EntityRecordNameResult, ILocalStorageProvider, TransactionResult, PlatformSQL } from '@memberjunction/core';
4
4
  import { MJUserViewEntityExtended } from '@memberjunction/core-entities';
5
5
  import { Observable } from 'rxjs';
6
6
  import { ExecuteAgentParams, ExecuteAgentResult } from '@memberjunction/ai-core-plus';
7
+ import { DecisionQuestion, DecisionAnswer } from '@memberjunction/ai';
7
8
  import { ActionParam, ActionResult, EntityActionInvocationParams, EntityActionResult } from '@memberjunction/actions-base';
8
9
  import { ListSource, ListRefreshMode, ListDelta, ApplyResult, MaterializeOptions, SetOpKind, ShareTarget, SharePermissionLevel, ShareResult, InviteResult, AcceptInvitationResult, ListShareSummary, SharedListSummary } from '@memberjunction/lists-base';
9
10
  import { ComponentSpec } from '@memberjunction/interactive-component-types';
@@ -95,6 +96,60 @@ declare class GraphQLAIClient {
95
96
  * @private
96
97
  */
97
98
  private handlePromptError;
99
+ /**
100
+ * Run a typed decision (Likelihood, Choice, Score) on the server in one round trip.
101
+ *
102
+ * This calls the `RunDecision` mutation, the fast path for browser features with a tight latency
103
+ * budget such as routing a message or checking for a duplicate: it carries none of the
104
+ * `Run Decision` action's execution overhead. The questions and the state are serialized for the
105
+ * wire and the answers parsed back.
106
+ *
107
+ * The method never throws. A failure on the server or in transport is `Success: false` with an
108
+ * `ErrorMessage` and empty `Answers`.
109
+ *
110
+ * @param params The questions, the state, and optionally the prompt and a timeout
111
+ * @returns A Promise that resolves to the answers by question key, or the reason there are none
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * const result = await aiClient.RunDecision({
116
+ * State: { message: "Show me last quarter's renewals" },
117
+ * Questions: {
118
+ * route: {
119
+ * Kind: 'Choice',
120
+ * Instructions: 'Which agent should answer this message?',
121
+ * Options: [
122
+ * { Value: 'sage', Description: 'General questions about the product' },
123
+ * { Value: 'analyst', Description: 'Questions about data and reports' }
124
+ * ]
125
+ * }
126
+ * },
127
+ * TimeoutMS: 250
128
+ * });
129
+ *
130
+ * const route = result.Answers.route;
131
+ * if (result.Success && route?.Kind === 'Choice') {
132
+ * console.log(`Route to ${route.Value} (confidence ${route.Confidence})`);
133
+ * }
134
+ * ```
135
+ */
136
+ RunDecision(params: RunDecisionParams): Promise<RunDecisionResult>;
137
+ /**
138
+ * Prepares the variables for the decision mutation: the questions as JSON, and the state as-is
139
+ * when it is text or as JSON when it is an object.
140
+ */
141
+ private prepareDecisionVariables;
142
+ /**
143
+ * Maps the decision mutation's result. The answers are returned only on success, so a caller
144
+ * never acts on partial ones; answers that cannot be read turn the result into a failure.
145
+ */
146
+ private processDecisionResult;
147
+ /** Parses the answers the server sent, or returns why they cannot be used. */
148
+ private parseDecisionAnswers;
149
+ /** Whether a parsed value has the shape of a Likelihood, Choice or Score answer. */
150
+ private isDecisionAnswer;
151
+ /** Maps a transport or parsing error to a failed decision result. */
152
+ private handleDecisionError;
98
153
  /**
99
154
  * Run an AI agent with the specified parameters.
100
155
  *
@@ -207,6 +262,22 @@ declare class GraphQLAIClient {
207
262
  * Used by RunAIAgentFromConversationDetail which correlates by conversationDetailId.
208
263
  */
209
264
  private isConversationDetailCompletionEvent;
265
+ /**
266
+ * Does this PubSub message belong to the operation watching `conversationDetailId`?
267
+ *
268
+ * FAILS OPEN by design (see `FireAndForgetConfig.isRelevantMessage`): a message carrying no
269
+ * operation identifier at all — a server-wide notice, a shape we do not recognise — counts as
270
+ * activity, preserving the pre-#4222 behaviour. Only a message that positively identifies a
271
+ * DIFFERENT conversation detail or a different agent run is ignored.
272
+ */
273
+ private isMessageForConversationDetail;
274
+ /**
275
+ * Does this PubSub message belong to the agent run tracked by `ref`?
276
+ *
277
+ * Before any run id has been observed the operation has no identity to compare against, so
278
+ * everything counts (fail open). Once known, a message naming a different run is ignored.
279
+ */
280
+ private isMessageForAgentRun;
210
281
  /**
211
282
  * Capture the agent run id from any PubSub message so the reconciliation hook has a
212
283
  * handle even before progress flows. Used only by the plain RunAIAgent path, which
@@ -369,6 +440,43 @@ declare class GraphQLAIClient {
369
440
  * @returns A Promise that resolves to a FetchEntityVectorsResult
370
441
  */
371
442
  FetchEntityVectors(params: FetchEntityVectorsParams): Promise<FetchEntityVectorsResult>;
443
+ /**
444
+ * Check the values a person is entering for a new record against the entity's existing records,
445
+ * and get back the ones to flag as possible duplicates.
446
+ *
447
+ * This calls the `CheckDuplicateEntry` mutation. The server finds vector candidates for the
448
+ * values, keeps those the current user can read, and asks a typed decision about them. It only
449
+ * flags: nothing is saved, merged or blocked. An entity whose documents do not turn the check on
450
+ * answers `NotConfigured`; a caller who may not run the check answers `NotAuthorized`.
451
+ *
452
+ * The method never throws. A failure on the server or in transport is `Status: 'Failed'` with an
453
+ * `ErrorMessage` and no candidates. It sets no timeout of its own: a caller with a latency budget
454
+ * abandons the promise when the budget runs out. The server bounds each check with its own
455
+ * budget, a little above the form's, so it stops working on an abandoned check soon after.
456
+ *
457
+ * @param params The entity and the values entered so far
458
+ * @returns The flagged candidates, most probable first, or why there are none
459
+ *
460
+ * @example
461
+ * ```typescript
462
+ * const result = await aiClient.CheckDuplicateEntry({
463
+ * EntityName: 'Accounts',
464
+ * Values: { Name: 'Acme', City: 'Boston' }
465
+ * });
466
+ * if (result.Status === 'Checked') {
467
+ * result.Candidates.forEach(c => console.log(`${c.DisplayName} (${c.Probability})`));
468
+ * }
469
+ * ```
470
+ */
471
+ CheckDuplicateEntry(params: DuplicateEntryCheckParams): Promise<DuplicateEntryCheckResult>;
472
+ /**
473
+ * Maps the entry-check mutation's result. A status the client does not know is a failure, so a
474
+ * caller never acts on a result it cannot read.
475
+ */
476
+ private processDuplicateEntryCheckResult;
477
+ private isDuplicateEntryCheckStatus;
478
+ /** Maps a transport or parsing error to a failed entry-check result. */
479
+ private handleDuplicateEntryCheckError;
372
480
  }
373
481
  /** Result from RunAutotagPipeline */
374
482
  interface AutotagPipelineResult {
@@ -445,6 +553,72 @@ interface FetchEntityVectorsResult {
445
553
  ElapsedMs: number;
446
554
  ErrorMessage?: string;
447
555
  }
556
+ /**
557
+ * Parameters for {@link GraphQLAIClient.CheckDuplicateEntry}
558
+ */
559
+ interface DuplicateEntryCheckParams {
560
+ /**
561
+ * The entity the new record belongs to
562
+ */
563
+ EntityName: string;
564
+ /**
565
+ * The values entered so far, by field name (sent as JSON). The server ignores fields the entity
566
+ * does not have.
567
+ */
568
+ Values: Record<string, unknown>;
569
+ }
570
+ /**
571
+ * How an entry-time duplicate check ended.
572
+ * - `Checked`: the check ran; `Candidates` holds the flagged records, and may be empty.
573
+ * - `NotConfigured`: the entity's documents do not turn the check on. Nothing else ran.
574
+ * - `NotAuthorized`: the caller may not run the check (an API key without the scopes, or a user who
575
+ * cannot read the entity). Nothing else ran; `ErrorMessage` says why.
576
+ * - `Failed`: the check could not finish; `ErrorMessage` says why, and nothing is flagged.
577
+ */
578
+ type DuplicateEntryCheckStatus = 'Checked' | 'NotConfigured' | 'NotAuthorized' | 'Failed';
579
+ /**
580
+ * An existing record flagged as a possible duplicate of the values being entered
581
+ */
582
+ interface DuplicateEntryCandidate {
583
+ /**
584
+ * The candidate's primary key as a compact URL segment. `CompositeKey.FromURLSegment` reads it back.
585
+ */
586
+ RecordID: string;
587
+ /**
588
+ * The candidate's name, or its key when the current user may not read a name
589
+ */
590
+ DisplayName: string;
591
+ /**
592
+ * The vector similarity score that surfaced the candidate
593
+ */
594
+ VectorScore: number;
595
+ /**
596
+ * The decision's probability that the candidate is the same real-world entity, or null when it
597
+ * gave no answer for it
598
+ */
599
+ Probability: number | null;
600
+ }
601
+ /**
602
+ * Result from {@link GraphQLAIClient.CheckDuplicateEntry}
603
+ */
604
+ interface DuplicateEntryCheckResult {
605
+ /**
606
+ * How the check ended
607
+ */
608
+ Status: DuplicateEntryCheckStatus;
609
+ /**
610
+ * Why the check failed, when `Status` is `Failed`
611
+ */
612
+ ErrorMessage?: string;
613
+ /**
614
+ * The flagged candidates, most probable first. Empty unless `Status` is `Checked`.
615
+ */
616
+ Candidates: DuplicateEntryCandidate[];
617
+ /**
618
+ * How long the check took on the server, in milliseconds, when the server answered
619
+ */
620
+ ElapsedMs?: number;
621
+ }
448
622
  /**
449
623
  * Parameters for executing a simple prompt
450
624
  */
@@ -673,6 +847,72 @@ interface RunAIPromptResult {
673
847
  */
674
848
  chatResult?: any;
675
849
  }
850
+ /**
851
+ * Parameters for {@link GraphQLAIClient.RunDecision}
852
+ */
853
+ interface RunDecisionParams {
854
+ /**
855
+ * The questions, keyed by a short label for code, answered together in one call.
856
+ * Write the instructions and option descriptions for the model: it never reads the keys.
857
+ */
858
+ Questions: Record<string, DecisionQuestion>;
859
+ /**
860
+ * The state the questions are about: text, or an object (sent as JSON).
861
+ * Keep it to what the questions need.
862
+ */
863
+ State: string | Record<string, unknown>;
864
+ /**
865
+ * The ID of the Decision-typed prompt to run. Takes precedence over `PromptName`.
866
+ */
867
+ PromptID?: string;
868
+ /**
869
+ * The name of the Decision-typed prompt to run, matched case-insensitively.
870
+ * The server uses `Default Decision` when neither this nor `PromptID` is set.
871
+ */
872
+ PromptName?: string;
873
+ /**
874
+ * Bounds each model call on the server, in milliseconds. Unset or not positive, the server uses
875
+ * its default, `RunDecisionResolver.DEFAULT_TIMEOUT_MS`; a value over
876
+ * `RunDecisionResolver.MAX_TIMEOUT_MS` is cut to it. A call is never unbounded.
877
+ */
878
+ TimeoutMS?: number;
879
+ }
880
+ /**
881
+ * Result from {@link GraphQLAIClient.RunDecision}
882
+ */
883
+ interface RunDecisionResult {
884
+ /**
885
+ * Whether the decision ran and its answers were read
886
+ */
887
+ Success: boolean;
888
+ /**
889
+ * Why the decision failed, when `Success` is false
890
+ */
891
+ ErrorMessage?: string;
892
+ /**
893
+ * The answers by question key. Empty on failure, so a caller never acts on partial answers.
894
+ */
895
+ Answers: Record<string, DecisionAnswer>;
896
+ /**
897
+ * ID of the `MJ: AI Prompt Runs` record the server wrote, when the run got that far
898
+ */
899
+ PromptRunID?: string;
900
+ /**
901
+ * The model that answered, or the one selected when the call failed
902
+ */
903
+ ModelName?: string;
904
+ /**
905
+ * The exact model behind `ModelName`, as its driver reports it: the vendor's dated model for a
906
+ * vendor decision model (`typesafe/jev-1.13-20260917`), the chat model for LLM Decision
907
+ * (`GPT-OSS-120B`). A calibration fitted on one model applies only to that model's answers, so a
908
+ * consumer that calibrates needs both names. Absent when the driver reports none.
909
+ */
910
+ ResolvedModel?: string;
911
+ /**
912
+ * Server-side execution time in milliseconds
913
+ */
914
+ ExecutionTimeMs?: number;
915
+ }
676
916
  /**
677
917
  * Parameters for running an AI agent from an existing conversation detail.
678
918
  * This is the optimized method that loads conversation history server-side.
@@ -987,6 +1227,27 @@ declare class GraphQLDataProvider extends ProviderBase implements IEntityDataPro
987
1227
  * @returns
988
1228
  */
989
1229
  Config(configData: GraphQLProviderConfigData, providerToUse?: IMetadataProvider, separateConnection?: boolean, forceRefreshSessionId?: boolean): Promise<boolean>;
1230
+ /**
1231
+ * The authenticate-only half of {@link Config}, for embedded/anonymous surfaces that only make
1232
+ * their own GraphQL calls. After it resolves, {@link ExecuteGQL} works. No metadata is fetched,
1233
+ * so entity metadata (`Entities`, `EntityByName`, `RunView`, `GetEntityObject`) is NOT available
1234
+ * until the full boot runs (`SetupGraphQLClient`, or {@link Config}) on this same instance.
1235
+ * Uses the shared singleton connection (a secondary instance keeps its own). A later Connect/Config with a different URL,
1236
+ * token or API key rebuilds that connection's client (keeping the session id).
1237
+ */
1238
+ Connect(configData: GraphQLProviderConfigData): Promise<void>;
1239
+ /**
1240
+ * The connection half of {@link Config}: stores the config, resolves the session id and creates the
1241
+ * GraphQL client (this instance's own client when separateConnection is true or this is not the
1242
+ * global singleton, otherwise the shared singleton client, which is reused unless the credentials
1243
+ * changed). Loads no metadata.
1244
+ */
1245
+ private connectClient;
1246
+ /**
1247
+ * True when `client` was built with a URL or credentials other than `configData`'s. A client this
1248
+ * class did not record (a subclass's own CreateNewGraphQLClient, a test harness) is kept as-is.
1249
+ */
1250
+ private isBuiltWithOtherCredentials;
990
1251
  get sessionId(): string;
991
1252
  protected get AllowRefresh(): boolean;
992
1253
  /**
@@ -1203,6 +1464,17 @@ declare class GraphQLDataProvider extends ProviderBase implements IEntityDataPro
1203
1464
  CreateTransactionGroup(): Promise<TransactionGroupBase>;
1204
1465
  GetRecordFavoriteStatus(userId: string, entityName: string, primaryKey: CompositeKey): Promise<boolean>;
1205
1466
  SetRecordFavoriteStatus(userId: string, entityName: string, primaryKey: CompositeKey, isFavorite: boolean, contextUser: UserInfo): Promise<void>;
1467
+ /**
1468
+ * Record names this connection has seen, for synchronous display code. Safe to keep here
1469
+ * because every request on a connection is answered as the same user.
1470
+ */
1471
+ private readonly _recordNames;
1472
+ GetCachedRecordName(entityName: string, compositeKey: CompositeKey, loadIfNeeded?: boolean): Promise<string | undefined>;
1473
+ HasCachedRecordName(entityName: string, compositeKey: CompositeKey): boolean;
1474
+ GetCachedRecordNameOnlyIfCached(entityName: string, compositeKey: CompositeKey): string | undefined;
1475
+ SetCachedRecordName(entityName: string, compositeKey: CompositeKey, recordName: string): void;
1476
+ GetEntityRecordName(entityName: string, compositeKey: CompositeKey, contextUser?: UserInfo, forceRefresh?: boolean): Promise<string>;
1477
+ GetEntityRecordNames(info: EntityRecordNameInput[], contextUser?: UserInfo, forceRefresh?: boolean): Promise<EntityRecordNameResult[]>;
1206
1478
  protected InternalGetEntityRecordName(entityName: string, primaryKey: CompositeKey): Promise<string>;
1207
1479
  protected InternalGetEntityRecordNames(info: EntityRecordNameInput[]): Promise<EntityRecordNameResult[]>;
1208
1480
  /**
@@ -1290,7 +1562,16 @@ declare class GraphQLDataProvider extends ProviderBase implements IEntityDataPro
1290
1562
  private _wsClient;
1291
1563
  private _wsClientCreatedAt;
1292
1564
  private _socketStateSubject;
1565
+ private _socketReconnectedSubject;
1293
1566
  private _isDisposingSocketIntentionally;
1567
+ /** Disarms the current client's pong watchdog. Each client owns its own timer. */
1568
+ private _disarmPongWatchdog;
1569
+ /**
1570
+ * Fires each time the socket comes back up after having dropped — never on the first
1571
+ * connect. Subscribers should treat it as "you may have missed events while you were
1572
+ * away; re-read authoritative state", because the push topic has no replay buffer.
1573
+ */
1574
+ get SocketReconnected$(): Observable<void>;
1294
1575
  /**
1295
1576
  * Observable of the WebSocket (graphql-ws) connection state. Used by
1296
1577
  * connectivity monitors as the primary signal for server reachability,
@@ -1301,6 +1582,11 @@ declare class GraphQLDataProvider extends ProviderBase implements IEntityDataPro
1301
1582
  * Current WebSocket connection state (synchronous snapshot).
1302
1583
  */
1303
1584
  get SocketConnectionState(): SocketConnectionState;
1585
+ /**
1586
+ * How many WebSocket subscriptions are currently open. Zero means nothing is waiting on
1587
+ * push frames, so a socket that is down is delivering nothing and costing nothing.
1588
+ */
1589
+ get ActiveSubscriptionCount(): number;
1304
1590
  /**
1305
1591
  * Force-dispose the current WebSocket client so the next subscription
1306
1592
  * creates a fresh connection. Called by ServerConnectivityService after
@@ -1496,10 +1782,24 @@ declare class GraphQLDataProvider extends ProviderBase implements IEntityDataPro
1496
1782
  * Setup the GraphQL client for the project using the provided configuration data.
1497
1783
  */
1498
1784
  declare function SetupGraphQLClient(config: GraphQLProviderConfigData): Promise<GraphQLDataProvider>;
1785
+ /**
1786
+ * Connects and registers the GraphQL provider WITHOUT booting metadata. For anonymous/embedded
1787
+ * surfaces that only make their own GraphQL calls (and MJ's realtime runtime): no metadata
1788
+ * download, no current-user fetch, no LoggedIn event, no startup engines. Call
1789
+ * {@link SetupGraphQLClient} later to finish the full boot on the same instance.
1790
+ *
1791
+ * If the global provider already has metadata loaded this is a no-op that returns it, so it can
1792
+ * never downgrade a fully booted provider. Called again on a connected but unbooted provider, it
1793
+ * replaces `ConfigData` and keeps the session id; when the URL, token or API keys differ from the
1794
+ * ones the current client was built with, it rebuilds the client so requests carry the new
1795
+ * identity. The same applies when {@link SetupGraphQLClient} later runs with a login's config
1796
+ * (an anonymous connect upgraded to a signed-in user).
1797
+ */
1798
+ declare function ConnectGraphQLClient(config: GraphQLProviderConfigData): Promise<GraphQLDataProvider>;
1499
1799
  /** @deprecated Use {@link SetupGraphQLClient}. */
1500
1800
  declare function setupGraphQLClient(config: GraphQLProviderConfigData): Promise<GraphQLDataProvider>;
1501
1801
 
1502
- declare const PACKAGE_VERSION = "6.2.0-edge.1";
1802
+ declare const PACKAGE_VERSION = "6.2.0-edge.3";
1503
1803
 
1504
1804
  declare class GraphQLTransactionGroup extends TransactionGroupBase {
1505
1805
  private _provider;
@@ -2822,6 +3122,11 @@ interface RunViewSystemUserInput {
2822
3122
  * Starting row number for pagination (optional, 0-based)
2823
3123
  */
2824
3124
  StartRow?: number;
3125
+ /**
3126
+ * When true, binary fields (varbinary / bytea columns) are returned as base64 strings.
3127
+ * They are omitted by default; a binary field named in `Fields` is always returned. (optional)
3128
+ */
3129
+ IncludeBinaryFields?: boolean;
2825
3130
  }
2826
3131
  /**
2827
3132
  * Result row type for view execution results - represents a single data row
@@ -4030,6 +4335,16 @@ interface StartLiveKitAgentRoomSessionInput {
4030
4335
  AgentSessionID?: string;
4031
4336
  /** Turn-taking mode. */
4032
4337
  TurnMode?: 'Passive' | 'Active' | 'Hybrid';
4338
+ /**
4339
+ * Start the agent able to bring someone into this room (a person who is offered the conversation, a phone number, or another
4340
+ * agent). Opt-in; honoured only when the server is configured for handoffs, otherwise the agent starts as usual.
4341
+ */
4342
+ EnableHandoff?: boolean;
4343
+ /**
4344
+ * How the agent decides it was addressed: `Auto` (default — the model's own judgement when it is full-duplex,
4345
+ * name matching otherwise), `ModelSide`, or `Regex`.
4346
+ */
4347
+ TurnAddressing?: 'Auto' | 'ModelSide' | 'Regex';
4033
4348
  }
4034
4349
  /** Result of starting an agent room session (includes a client token so the caller can immediately join). */
4035
4350
  interface LiveKitAgentRoomSessionResult {
@@ -4081,6 +4396,76 @@ interface LiveKitRecordingResult {
4081
4396
  */
4082
4397
  RecordingFileID?: string;
4083
4398
  }
4399
+ /** The kinds of events a room's turn-taking log records. */
4400
+ type LiveKitTurnEventType = 'FloorGranted' | 'FloorReleased' | 'FloorDenied' | 'Yielded' | 'Backchannel' | 'HumanSpeech' | 'HumanPreempted' | 'LoopCapReached';
4401
+ /** One recorded turn-taking event. */
4402
+ interface LiveKitRoomTurnEvent {
4403
+ /** Monotonic per-room sequence number — poll with the last `Seq` seen to render only what is new. */
4404
+ Seq: number;
4405
+ /** Epoch-ms the event happened (server clock). */
4406
+ AtMs: number;
4407
+ /** What happened. */
4408
+ Type: LiveKitTurnEventType;
4409
+ /** The agent session the event is about, when it concerns one. */
4410
+ AgentSessionId?: string;
4411
+ /** For `Yielded`: the agent the floor was handed to. */
4412
+ ToAgentSessionId?: string;
4413
+ /** A short machine-readable reason (e.g. `HeldByOtherAgent`, `HumanSpeaking`, `LoopCapReached`). */
4414
+ Reason?: string;
4415
+ }
4416
+ /** One agent seated in a room, as the turn-taking state describes it. */
4417
+ interface LiveKitRoomTurnAgent {
4418
+ /** The agent's `MJ: AI Agent Sessions` id (matches the ids in {@link LiveKitRoomTurnState}). */
4419
+ AgentSessionID: string;
4420
+ /** The bridge row id (what {@link GraphQLLiveKitClient.StopAgentRoomSession} removes it by). */
4421
+ SessionBridgeID: string;
4422
+ /** The names the agent answers to; the first is its display name. */
4423
+ Names: string[];
4424
+ /** The configured turn-taking mode. */
4425
+ TurnMode: 'Passive' | 'Active' | 'Hybrid';
4426
+ /** How it decides it was addressed (after the model's capability was taken into account). */
4427
+ Addressing: 'ModelSide' | 'Regex';
4428
+ /** Whether its model is full-duplex (its speech runs through the floor gate). */
4429
+ FullDuplex: boolean;
4430
+ }
4431
+ /** A room's live turn-taking state. */
4432
+ interface LiveKitRoomTurnState {
4433
+ /** The room. */
4434
+ RoomId: string;
4435
+ /** The agent session ids seated in the room. */
4436
+ AgentSessionIds: string[];
4437
+ /** The facilitator's agent session id, or `null`. */
4438
+ FacilitatorAgentSessionId: string | null;
4439
+ /** The agent session holding the floor, or `null` when it is free. */
4440
+ FloorHolderAgentSessionId: string | null;
4441
+ /** Epoch-ms the holder took the floor, or `null`. */
4442
+ FloorHeldSinceMs: number | null;
4443
+ /** Whether a person is speaking right now. */
4444
+ HumanSpeaking: boolean;
4445
+ /** The agent session the floor is reserved for after a hand-off, or `null`. */
4446
+ PendingHandoffToAgentSessionId: string | null;
4447
+ /** Consecutive agent turns since a person last spoke. */
4448
+ ConsecutiveAgentTurns: number;
4449
+ /** The cap on consecutive agent turns for this room. */
4450
+ MaxConsecutiveAgentTurns: number;
4451
+ /** Whether the loop cap is reached — agents are passive until a person speaks. */
4452
+ LoopCapReached: boolean;
4453
+ /** How many backchannels the room has recorded. */
4454
+ BackchannelCount: number;
4455
+ /** The most recent events, oldest first. */
4456
+ RecentEvents: LiveKitRoomTurnEvent[];
4457
+ /** The agents seated in the room. */
4458
+ Agents: LiveKitRoomTurnAgent[];
4459
+ }
4460
+ /** Result of {@link GraphQLLiveKitClient.GetRoomTurnState}. */
4461
+ interface LiveKitRoomTurnStateResult {
4462
+ /** Whether the query succeeded. */
4463
+ Success: boolean;
4464
+ /** Error detail when {@link Success} is false. */
4465
+ ErrorMessage?: string;
4466
+ /** The room's turn-taking state, or `null` when the room holds no agents. */
4467
+ State: LiveKitRoomTurnState | null;
4468
+ }
4084
4469
  /** Typed wrapper over the LiveKit room GraphQL mutations. */
4085
4470
  declare class GraphQLLiveKitClient {
4086
4471
  private _dataProvider;
@@ -4123,6 +4508,14 @@ declare class GraphQLLiveKitClient {
4123
4508
  * @returns `true` when at least one invite was delivered.
4124
4509
  */
4125
4510
  InviteUsers(roomName: string, userIDs: string[]): Promise<boolean>;
4511
+ /**
4512
+ * Reads a room's live turn-taking state — who holds the floor, whether a person is speaking, any pending
4513
+ * hand-off, the agent-to-agent loop-cap progress, the most recent floor events, and who is seated. Poll it
4514
+ * (about once a second) to drive a turn-taking display. Never throws; a failure resolves `{ Success: false }`.
4515
+ *
4516
+ * @param roomName The LiveKit room.
4517
+ */
4518
+ GetRoomTurnState(roomName: string): Promise<LiveKitRoomTurnStateResult>;
4126
4519
  /**
4127
4520
  * Fetches active Realtime models with each driver's supported voices — populates the dev model/voice
4128
4521
  * picker. Best-effort: any failure resolves to `[]` so the picker simply offers no overrides.
@@ -4149,6 +4542,96 @@ declare class GraphQLLiveKitClient {
4149
4542
  private runRecordingMutation;
4150
4543
  }
4151
4544
 
4545
+ /**
4546
+ * Typed client for the **human handoff** GraphQL surface (MJServer `HumanHandoffResolver`): the person-at-a-console side of a
4547
+ * room handoff. An AI agent in a LiveKit room (a phone call that arrived through SIP, or a web room) can ask for a person to
4548
+ * take the conversation over; that person is OFFERED it and may accept or decline. Every call is scoped to the signed-in
4549
+ * user server-side, so a user lists, accepts and declines only their own offers.
4550
+ *
4551
+ * Accepting returns the room to join; the console then joins it through the same LiveKit token path the Meet room uses
4552
+ * (`GraphQLLiveKitClient.MintClientToken`), and the AI leaves once the person is in the room.
4553
+ *
4554
+ * @example
4555
+ * ```typescript
4556
+ * const handoff = new GraphQLHandoffClient(GraphQLDataProvider.Instance);
4557
+ * const offers = await handoff.GetMyOffers();
4558
+ * handoff.ObserveOfferChanges().subscribe((change) => refresh(change));
4559
+ * const accepted = await handoff.AcceptOffer(offers[0].OfferID);
4560
+ * if (accepted.Success) { joinRoom(accepted.RoomName); }
4561
+ * ```
4562
+ */
4563
+ /** Where an offer stands. */
4564
+ type HandoffOfferStatus = 'Pending' | 'Accepted' | 'Declined' | 'Expired' | 'Cancelled';
4565
+ /** One conversation offered to the signed-in user. */
4566
+ interface HandoffOfferInfo {
4567
+ OfferID: string;
4568
+ RoomName: string;
4569
+ /** `warm` (the AI introduces you, then leaves) or `blind` (the AI leaves as soon as you join). */
4570
+ Mode: string;
4571
+ /** The AI's summary of the conversation so far. */
4572
+ Summary: string;
4573
+ /** Who is on the other end (a masked number, "Web visitor"). */
4574
+ CallerLabel: string;
4575
+ /** The AI agent that is in the room. */
4576
+ AgentName: string;
4577
+ Status: HandoffOfferStatus;
4578
+ /** ISO-8601 UTC. */
4579
+ CreatedAt: string;
4580
+ /** ISO-8601 UTC; after this the offer can no longer be accepted. */
4581
+ ExpiresAt: string;
4582
+ /** The MJ interaction ID associated with this conversation/room, if known. */
4583
+ InteractionID?: string | null;
4584
+ }
4585
+ /** One change to an offer, pushed live. */
4586
+ interface HandoffOfferChange {
4587
+ /** `offered` for a new offer; `updated` when it was accepted, declined, expired or cancelled. */
4588
+ Kind: 'offered' | 'updated';
4589
+ Offer: HandoffOfferInfo;
4590
+ }
4591
+ /** Result of accepting an offer. */
4592
+ interface AcceptHandoffOfferResult {
4593
+ Success: boolean;
4594
+ ErrorMessage?: string;
4595
+ /** The room to join. Empty on failure. */
4596
+ RoomName: string;
4597
+ Offer?: HandoffOfferInfo;
4598
+ }
4599
+ /** Result of declining an offer. */
4600
+ interface DeclineHandoffOfferResult {
4601
+ Success: boolean;
4602
+ ErrorMessage?: string;
4603
+ }
4604
+ declare class GraphQLHandoffClient {
4605
+ private readonly _dataProvider;
4606
+ /**
4607
+ * @param dataProvider The GraphQL data provider that carries the requests (it holds the signed-in session).
4608
+ */
4609
+ constructor(dataProvider: GraphQLDataProvider);
4610
+ /**
4611
+ * The signed-in user's offers: pending ones, plus ones that resolved recently enough to still be shown. Best-effort: a
4612
+ * transport failure is logged and resolves to an empty list so the console shows "nothing waiting" rather than throwing.
4613
+ */
4614
+ GetMyOffers(): Promise<HandoffOfferInfo[]>;
4615
+ /**
4616
+ * Accepts an offer. The server authorises it against the offer's target, so another user's offer (or a missing, expired or
4617
+ * cancelled one) answers `Success: false`. Never throws.
4618
+ *
4619
+ * @param offerID The offer to accept.
4620
+ */
4621
+ AcceptOffer(offerID: string): Promise<AcceptHandoffOfferResult>;
4622
+ /**
4623
+ * Declines an offer, so the AI can fall back (the person's phone, or carrying on). Never throws.
4624
+ *
4625
+ * @param offerID The offer to decline.
4626
+ */
4627
+ DeclineOffer(offerID: string): Promise<DeclineHandoffOfferResult>;
4628
+ /**
4629
+ * Live changes to the signed-in user's offers. The server delivers only this user's. The stream completes when the session's
4630
+ * token is refreshed (re-subscribe to continue), as every MJ subscription does.
4631
+ */
4632
+ ObserveOfferChanges(): Observable<HandoffOfferChange>;
4633
+ }
4634
+
4152
4635
  /**
4153
4636
  * Input for the `GenerateSeedTaxonomy` GraphQL mutation.
4154
4637
  *
@@ -4472,6 +4955,21 @@ interface FireAndForgetConfig<TResult> {
4472
4955
  * Use this to forward progress updates to UI callbacks.
4473
4956
  */
4474
4957
  onMessage?: (parsed: Record<string, unknown>) => void;
4958
+ /**
4959
+ * Optional predicate deciding whether a PubSub message belongs to THIS operation.
4960
+ *
4961
+ * The push-status subscription is per-SESSION, not per-operation, so without this every
4962
+ * message for every concurrent run resets every pending operation's idle timer. With
4963
+ * several agents in flight, one chatty run holds a dead run's timer open indefinitely —
4964
+ * the "idle" window silently means "the whole session went quiet", which is not what any
4965
+ * caller intends (MJ #4222).
4966
+ *
4967
+ * MUST FAIL OPEN: return `true` for anything not positively identifiable as another
4968
+ * operation's. Wrongly ignoring a message that IS ours shortens the window and causes a
4969
+ * spurious reconcile; wrongly accepting one that is not merely preserves the old
4970
+ * behaviour. When omitted, every message counts as activity, exactly as before.
4971
+ */
4972
+ isRelevantMessage?: (parsed: Record<string, unknown>) => boolean;
4475
4973
  /**
4476
4974
  * Optional reconciliation hook invoked when the idle timer expires (no message
4477
4975
  * received within the idle window) or the PubSub stream drops. Should query the
@@ -5469,6 +5967,11 @@ declare class BrowserStorageProviderBase implements ILocalStorageProvider {
5469
5967
  * See {@link ILocalStorageProvider.SharesReferences}.
5470
5968
  */
5471
5969
  get SharesReferences(): boolean;
5970
+ /**
5971
+ * `false` — the base tier is a `Map` on the heap, which dies with the page. Subclasses with a
5972
+ * real backend override this. See {@link ILocalStorageProvider.SupportsCrossProcessPersistence}.
5973
+ */
5974
+ get SupportsCrossProcessPersistence(): boolean;
5472
5975
  private _storage;
5473
5976
  /**
5474
5977
  * Gets or creates a category map
@@ -5538,6 +6041,13 @@ declare class BrowserIndexedDBStorageProvider extends BrowserStorageProviderBase
5538
6041
  * the DB is unreachable), so there is no fallback path that could reintroduce sharing.
5539
6042
  */
5540
6043
  get SharesReferences(): boolean;
6044
+ /**
6045
+ * `true` — IndexedDB outlives the page. Unlike the localStorage provider this class never
6046
+ * defers to the in-memory base tier, so there is no fallback that would make a stored
6047
+ * snapshot unreadable on the next load.
6048
+ * See {@link ILocalStorageProvider.SupportsCrossProcessPersistence}.
6049
+ */
6050
+ get SupportsCrossProcessPersistence(): boolean;
5541
6051
  private dbPromise;
5542
6052
  private _dbReady;
5543
6053
  constructor();
@@ -5942,6 +6452,169 @@ declare class GraphQLIntegrationClient {
5942
6452
  private handleError;
5943
6453
  }
5944
6454
 
5945
- export { ActionItemInput, ActionItemOutput, BrowserIndexedDBStorageProvider, BrowserStorageProviderBase, FieldMapper, FireAndForgetHelper, GetDataOutput, GraphQLAIClient, GraphQLActionClient, GraphQLClassifyClient, GraphQLClusterClient, GraphQLComponentRegistryClient, GraphQLDataProvider, GraphQLEncryptionClient, GraphQLFileStorageClient, GraphQLIntegrationClient, GraphQLListsClient, GraphQLLiveKitClient, GraphQLProviderConfigData, GraphQLSearchClient, GraphQLSystemUserClient, GraphQLTestingClient, GraphQLTransactionGroup, GraphQLVersionHistoryClient, PACKAGE_VERSION, RoleInput, RolesAndUsersInput, SafeGraphQLError, SanitizeGraphQLError, SetupGraphQLClient, SimpleRemoteEntity, SimpleRemoteEntityField, SimpleRemoteEntityOutput, SyncDataAction, SyncDataResult, SyncRolesAndUsersResult, ToSafeGraphQLError, UserInput, setupGraphQLClient };
5946
- export type { AccountSearchResult, ApplyAllEntityMapCreated, ApplyAllResult, AuthenticationErrorCallback, AutotagPipelineResult, CheckEntityPermissionsResult, ClusterAnalysisInfo, ClusterAnalysisMetrics, ClusterAnalysisPoint, ComponentDependencyTree, ComponentSpecWithHash, ConnectionTestGraphQLResult, CopyBetweenAccountsResult, CreateAPIKeyParams, CreateAPIKeyResult, CreatePreAuthUploadUrlResult, CreateQueryInput, CreateQueryResult, CreateVersionLabelParams, CreateVersionLabelProgress, CreateVersionLabelResult, DefaultConfigResult, DefaultFieldMappingResult, DefaultObjectConfigResult, DeleteQueryOptionsInput, DeleteQueryResult, DiscoveredFieldResult, DiscoveredObjectResult, DiscoveryResult, EmbedTextParams, EmbedTextResult, EntityPermissionResultItem, ExecuteSimplePromptParams, FileSearchOptions, FileSearchResult, FireAndForgetConfig, GenerateSeedTaxonomyInput, GetQueryDataByNameSystemUserInput, GetQueryDataSystemUserInput, GetRegistryComponentParams, LiveKitAgentRoomSessionResult, LiveKitClientTokenResult, LiveKitRecordingResult, MJMetadataDB, MJQueryEntity, MJ_MetadataDB, MintLiveKitClientTokenInput, PreviewDataResult, PreviewRecordResult, PreviewSearchSystemUserInput, QueryDependencySpecClientInput, QueryField, QueryMutationQueryData, QueryMutationResult, QueryParameter, QueryParameterHintInput, QueryPermission, QueryPermissionInput, RealtimeModelVoices, RealtimeVoiceOption, RegistryComponentSearchResult, RevokeAPIKeyResult, RunAIAgentFromConversationDetailParams, RunAIPromptParams, RunAIPromptResult, RunClusterAnalysisInput, RunClusterAnalysisResult, RunDynamicViewSystemUserInput, RunQuerySystemUserResult, RunTestParams, RunTestResult, RunTestSuiteParams, RunTestSuiteResult, RunViewByIDSystemUserInput, RunViewByNameSystemUserInput, RunViewSystemUserInput, RunViewSystemUserResult, RunViewSystemUserResultRow, SanitizedGraphQLError, SanitizedGraphQLErrorDetail, SchemaPreviewFile, SchemaPreviewObjectInput, SchemaPreviewResult, SearchAcrossAccountsResult, SearchClientFilters, SearchClientParams, SearchClientProviderInfo, SearchClientResponse, SearchClientResultItem, SearchKnowledgeSystemUserInput, SearchRegistryComponentsParams, SearchScoreBreakdown, SearchSourceCounts, SeedTaxonomyNode, SeedTaxonomyResult, SimplePromptResult, SocketConnectionState, SourceObjectListItem, SourceObjectSelectionInput, StartLiveKitAgentRoomSessionInput, StorageListResult, StorageObjectMetadata, TaskGraphFrameEvent, TestExecutionProgress, TestQuerySQLClientInput, TestQuerySQLClientResult, UpdateQueryInput, UpdateQueryResult, UploadFileInput, UploadFileResult, VariableShape, VectorizeEntityParams, VectorizeEntityResult };
6455
+ /** One persisted step of an agent run, as returned by the durable tail query. */
6456
+ interface ConversationRunEvent {
6457
+ /** Monotonic position within the run — the cursor value to page from. */
6458
+ Seq: number;
6459
+ StepType: string;
6460
+ StepName: string;
6461
+ Status: string;
6462
+ Success?: boolean;
6463
+ ErrorMessage?: string;
6464
+ StartedAt: string;
6465
+ CompletedAt?: string;
6466
+ }
6467
+ /** Result of one tail call. */
6468
+ interface ConversationTailResult {
6469
+ Success: boolean;
6470
+ Message: string;
6471
+ Events: ConversationRunEvent[];
6472
+ /** Cursor to pass as `sinceSeq` next time. Never rewinds. */
6473
+ LatestSeq: number;
6474
+ /** True while the run is still executing. False means terminal — stop tailing. */
6475
+ IsInFlight: boolean;
6476
+ RunID?: string;
6477
+ RunStatus?: string;
6478
+ /** The run's persisted result, populated only once the run is terminal. */
6479
+ FinalPayload?: string;
6480
+ /** `ConversationDetail.Status` — what the chat UI renders from. */
6481
+ DetailStatus?: string;
6482
+ }
6483
+ /**
6484
+ * Client for the durable, resumable read of a conversation's agent-run progress (MJ #4222).
6485
+ *
6486
+ * The `statusUpdates` subscription is the only live path a conversation has and it has no replay:
6487
+ * the server topic is an in-memory PubSub and the client subject is unbuffered. Anything published
6488
+ * while the socket was half-open is gone, and the client cannot tell "nothing happened" from
6489
+ * "I missed everything". This query is the durable counterpart — a client keeps the `LatestSeq`
6490
+ * it has seen and re-reads from there after any interruption.
6491
+ *
6492
+ * Runs over plain HTTP, so it works while the WebSocket is still dead. That is the property the
6493
+ * whole recovery path depends on.
6494
+ */
6495
+ declare class GraphQLConversationClient {
6496
+ private _dataProvider;
6497
+ constructor(dataProvider: GraphQLDataProvider);
6498
+ /**
6499
+ * Read agent-run events for a conversation detail from a cursor forward.
6500
+ *
6501
+ * @param conversationDetailID The message to tail.
6502
+ * @param sinceSeq Highest `Seq` already seen; 0 or omitted reads from the start.
6503
+ * @returns Never throws — a transport failure comes back as `Success: false` with the caller's
6504
+ * cursor preserved, because this IS the recovery path and throwing from it would break the
6505
+ * reconciliation it exists to serve.
6506
+ */
6507
+ TailConversationEvents(conversationDetailID: string, sinceSeq?: number): Promise<ConversationTailResult>;
6508
+ private failure;
6509
+ }
6510
+
6511
+ interface MeetingParticipantInfo {
6512
+ ID: string;
6513
+ MeetingID: string;
6514
+ UserID?: string;
6515
+ UserName?: string;
6516
+ UserEmail?: string;
6517
+ AgentID?: string;
6518
+ AgentName?: string;
6519
+ ExternalName?: string;
6520
+ ExternalEmail?: string;
6521
+ ExternalPhone?: string;
6522
+ Role: 'Host' | 'CoHost' | 'Attendee' | 'Agent';
6523
+ InviteStatus: 'Accepted' | 'Declined' | 'Invited' | 'Tentative';
6524
+ JoinedAt?: string;
6525
+ LeftAt?: string;
6526
+ }
6527
+ interface MeetingInfo {
6528
+ ID: string;
6529
+ Title: string;
6530
+ Description?: string;
6531
+ HostUserID: string;
6532
+ HostUserName?: string;
6533
+ RoomName: string;
6534
+ Status: 'Scheduled' | 'Live' | 'Ended' | 'Cancelled';
6535
+ ScheduledStartAt?: string;
6536
+ ScheduledEndAt?: string;
6537
+ StartedAt?: string;
6538
+ EndedAt?: string;
6539
+ AllowPhoneDialIn: boolean;
6540
+ DialInPhoneNumberID?: string;
6541
+ DialInPhoneNumber?: string;
6542
+ DialInCode?: string;
6543
+ RecordingPolicy: 'Off' | 'Allowed' | 'Automatic';
6544
+ ConversationID?: string;
6545
+ Participants?: MeetingParticipantInfo[];
6546
+ CreatedAt: string;
6547
+ UpdatedAt: string;
6548
+ }
6549
+ interface DialInPhoneNumberInfo {
6550
+ ID: string;
6551
+ Number: string;
6552
+ Label?: string;
6553
+ }
6554
+ interface MeetingParticipantInput {
6555
+ UserID?: string;
6556
+ AgentID?: string;
6557
+ ExternalName?: string;
6558
+ ExternalEmail?: string;
6559
+ ExternalPhone?: string;
6560
+ Role?: string;
6561
+ }
6562
+ interface CreateMeetingInput {
6563
+ Title: string;
6564
+ Description?: string;
6565
+ ScheduledStartAt?: Date;
6566
+ ScheduledEndAt?: Date;
6567
+ AllowPhoneDialIn?: boolean;
6568
+ DialInPhoneNumberID?: string;
6569
+ RecordingPolicy?: string;
6570
+ Participants?: MeetingParticipantInput[];
6571
+ }
6572
+ interface UpdateMeetingInput {
6573
+ MeetingID: string;
6574
+ Title?: string;
6575
+ Description?: string;
6576
+ ScheduledStartAt?: Date;
6577
+ ScheduledEndAt?: Date;
6578
+ AllowPhoneDialIn?: boolean;
6579
+ DialInPhoneNumberID?: string;
6580
+ RecordingPolicy?: string;
6581
+ Participants?: MeetingParticipantInput[];
6582
+ }
6583
+ interface RSVPMeetingInput {
6584
+ MeetingID: string;
6585
+ InviteStatus: 'Accepted' | 'Declined' | 'Tentative';
6586
+ }
6587
+ interface MeetingResult {
6588
+ Success: boolean;
6589
+ ErrorMessage?: string;
6590
+ Meeting?: MeetingInfo;
6591
+ }
6592
+ interface StartMeetingResult {
6593
+ Success: boolean;
6594
+ ErrorMessage?: string;
6595
+ Meeting?: MeetingInfo;
6596
+ RoomName?: string;
6597
+ ClientToken?: string;
6598
+ }
6599
+ /**
6600
+ * Typed client for the MemberJunction **Meeting** GraphQL surface (MJServer `MeetingResolver`).
6601
+ */
6602
+ declare class GraphQLMeetingClient {
6603
+ private _dataProvider;
6604
+ constructor(dataProvider?: GraphQLDataProvider | IMetadataProvider);
6605
+ GetMeeting(id: string): Promise<MeetingInfo | null>;
6606
+ MyMeetings(status?: string): Promise<MeetingInfo[]>;
6607
+ Meeting(id: string): Promise<MeetingInfo | null>;
6608
+ MeetingParticipants(meetingID: string): Promise<MeetingParticipantInfo[]>;
6609
+ AvailableDialInPhoneNumbers(): Promise<DialInPhoneNumberInfo[]>;
6610
+ CreateMeeting(input: CreateMeetingInput): Promise<MeetingResult>;
6611
+ UpdateMeeting(input: UpdateMeetingInput): Promise<MeetingResult>;
6612
+ StartMeeting(meetingID: string): Promise<StartMeetingResult>;
6613
+ EndMeeting(meetingID: string): Promise<MeetingResult>;
6614
+ CancelMeeting(meetingID: string): Promise<MeetingResult>;
6615
+ RSVPMeeting(input: RSVPMeetingInput): Promise<MeetingResult>;
6616
+ }
6617
+
6618
+ export { ActionItemInput, ActionItemOutput, BrowserIndexedDBStorageProvider, BrowserStorageProviderBase, ConnectGraphQLClient, FieldMapper, FireAndForgetHelper, GetDataOutput, GraphQLAIClient, GraphQLActionClient, GraphQLClassifyClient, GraphQLClusterClient, GraphQLComponentRegistryClient, GraphQLConversationClient, GraphQLDataProvider, GraphQLEncryptionClient, GraphQLFileStorageClient, GraphQLHandoffClient, GraphQLIntegrationClient, GraphQLListsClient, GraphQLLiveKitClient, GraphQLMeetingClient, GraphQLProviderConfigData, GraphQLSearchClient, GraphQLSystemUserClient, GraphQLTestingClient, GraphQLTransactionGroup, GraphQLVersionHistoryClient, PACKAGE_VERSION, RoleInput, RolesAndUsersInput, SafeGraphQLError, SanitizeGraphQLError, SetupGraphQLClient, SimpleRemoteEntity, SimpleRemoteEntityField, SimpleRemoteEntityOutput, SyncDataAction, SyncDataResult, SyncRolesAndUsersResult, ToSafeGraphQLError, UserInput, setupGraphQLClient };
6619
+ export type { AcceptHandoffOfferResult, AccountSearchResult, ApplyAllEntityMapCreated, ApplyAllResult, AuthenticationErrorCallback, AutotagPipelineResult, CheckEntityPermissionsResult, ClusterAnalysisInfo, ClusterAnalysisMetrics, ClusterAnalysisPoint, ComponentDependencyTree, ComponentSpecWithHash, ConnectionTestGraphQLResult, ConversationRunEvent, ConversationTailResult, CopyBetweenAccountsResult, CreateAPIKeyParams, CreateAPIKeyResult, CreateMeetingInput, CreatePreAuthUploadUrlResult, CreateQueryInput, CreateQueryResult, CreateVersionLabelParams, CreateVersionLabelProgress, CreateVersionLabelResult, DeclineHandoffOfferResult, DefaultConfigResult, DefaultFieldMappingResult, DefaultObjectConfigResult, DeleteQueryOptionsInput, DeleteQueryResult, DialInPhoneNumberInfo, DiscoveredFieldResult, DiscoveredObjectResult, DiscoveryResult, DuplicateEntryCandidate, DuplicateEntryCheckParams, DuplicateEntryCheckResult, DuplicateEntryCheckStatus, EmbedTextParams, EmbedTextResult, EntityPermissionResultItem, ExecuteSimplePromptParams, FileSearchOptions, FileSearchResult, FireAndForgetConfig, GenerateSeedTaxonomyInput, GetQueryDataByNameSystemUserInput, GetQueryDataSystemUserInput, GetRegistryComponentParams, HandoffOfferChange, HandoffOfferInfo, HandoffOfferStatus, LiveKitAgentRoomSessionResult, LiveKitClientTokenResult, LiveKitRecordingResult, LiveKitRoomTurnAgent, LiveKitRoomTurnEvent, LiveKitRoomTurnState, LiveKitRoomTurnStateResult, LiveKitTurnEventType, MJMetadataDB, MJQueryEntity, MJ_MetadataDB, MeetingInfo, MeetingParticipantInfo, MeetingParticipantInput, MeetingResult, MintLiveKitClientTokenInput, PreviewDataResult, PreviewRecordResult, PreviewSearchSystemUserInput, QueryDependencySpecClientInput, QueryField, QueryMutationQueryData, QueryMutationResult, QueryParameter, QueryParameterHintInput, QueryPermission, QueryPermissionInput, RSVPMeetingInput, RealtimeModelVoices, RealtimeVoiceOption, RegistryComponentSearchResult, RevokeAPIKeyResult, RunAIAgentFromConversationDetailParams, RunAIPromptParams, RunAIPromptResult, RunClusterAnalysisInput, RunClusterAnalysisResult, RunDecisionParams, RunDecisionResult, RunDynamicViewSystemUserInput, RunQuerySystemUserResult, RunTestParams, RunTestResult, RunTestSuiteParams, RunTestSuiteResult, RunViewByIDSystemUserInput, RunViewByNameSystemUserInput, RunViewSystemUserInput, RunViewSystemUserResult, RunViewSystemUserResultRow, SanitizedGraphQLError, SanitizedGraphQLErrorDetail, SchemaPreviewFile, SchemaPreviewObjectInput, SchemaPreviewResult, SearchAcrossAccountsResult, SearchClientFilters, SearchClientParams, SearchClientProviderInfo, SearchClientResponse, SearchClientResultItem, SearchKnowledgeSystemUserInput, SearchRegistryComponentsParams, SearchScoreBreakdown, SearchSourceCounts, SeedTaxonomyNode, SeedTaxonomyResult, SimplePromptResult, SocketConnectionState, SourceObjectListItem, SourceObjectSelectionInput, StartLiveKitAgentRoomSessionInput, StartMeetingResult, StorageListResult, StorageObjectMetadata, TaskGraphFrameEvent, TestExecutionProgress, TestQuerySQLClientInput, TestQuerySQLClientResult, UpdateMeetingInput, UpdateQueryInput, UpdateQueryResult, UploadFileInput, UploadFileResult, VariableShape, VectorizeEntityParams, VectorizeEntityResult };
5947
6620
  //# sourceMappingURL=index.d.mts.map