@ai-matrx/meet 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/core.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as ParticipantIdentity, $ as NoteTakerState, a as MeetParticipant, M as MeetingRecord, a7 as RoomPhase, e as ParticipantRole, S as StageLayout, L as LobbyEntry, a6 as RecordingState, U as UserId, av as RecordingSource, ab as TranscriptSegment, g as MeetingNote, W as WrapUpAnnouncement, i as CollabSnapshot, o as ConnectionQuality, j as AdmissionState, h as MeetingId, R as RoomName, b as MeetApi, d as CallInvite, f as CallMode, O as OrganizationId, l as CallId, m as CallState, X as MeetingKind, a4 as RecordingPolicy, a5 as RecordingRecord, N as MeetingAttendee, _ as MeetingSettings, Q as MeetingChanges, a1 as OccurrenceOverride, Z as MeetingOccurrence, ac as UpcomingOccurrence, V as MeetingInvitee, I as InviteeInput, p as InviteeRole, a8 as RsvpAnswer, a9 as RsvpInvitation, c as MeetIdentity, C as CollabPanel } from './collab-Bss-_Jfp.cjs';
2
- export { A as AccessTokenSource, k as CAPTION_LANGUAGES, n as CallablePerson, E as EMPTY_COLLAB, F as FILE_SESSION_PATH, J as JsonObject, q as JsonValue, r as MeetApiOptions, s as MeetApiRequest, t as MeetBreakoutBroadcast, u as MeetBreakoutPlan, v as MeetBreakoutRoom, w as MeetCollabSettings, x as MeetFileMedia, y as MeetPoll, z as MeetPollOption, B as MeetPollState, D as MeetQuestion, G as MeetQuestionState, H as MeetStroke, K as MeetingActivities, Y as MeetingNoteKind, a0 as ORGANIZATION_HEADER, a2 as OccurrenceState, a3 as ROLE_RANK, aa as RsvpState, T as TranscriptSource, ad as applyCollabPacket, ae as asCallId, af as asMeetingId, ag as asOrganizationId, ah as asParticipantIdentity, ai as asRoomName, aj as asUserId, ak as assignedRoom, al as autoAssign, am as breakoutRemainingMs, an as collabFromState, ao as createMeetApi, ap as defaultCaptionLanguage, aq as fileDownloadPath, ar as isGuest, as as isHostRole, at as loadMeetingActivities, au as withItem } from './collab-Bss-_Jfp.cjs';
1
+ import { P as ParticipantIdentity, $ as NoteTakerState, a as MeetParticipant, M as MeetingRecord, a8 as RoomPhase, e as ParticipantRole, a3 as ParticipantStanding, S as StageLayout, L as LobbyEntry, a7 as RecordingState, U as UserId, ax as RecordingSource, ac as TranscriptSegment, g as MeetingNote, W as WrapUpAnnouncement, i as CollabSnapshot, o as ConnectionQuality, j as AdmissionState, h as MeetingId, R as RoomName, b as MeetApi, d as CallInvite, f as CallMode, O as OrganizationId, l as CallId, m as CallState, X as MeetingKind, a5 as RecordingPolicy, a6 as RecordingRecord, N as MeetingAttendee, _ as MeetingSettings, Q as MeetingChanges, a1 as OccurrenceOverride, Z as MeetingOccurrence, ad as UpcomingOccurrence, V as MeetingInvitee, I as InviteeInput, p as InviteeRole, a9 as RsvpAnswer, aa as RsvpInvitation, c as MeetIdentity, C as CollabPanel } from './collab-B6scmSST.cjs';
2
+ export { A as AccessTokenSource, k as CAPTION_LANGUAGES, n as CallablePerson, E as EMPTY_COLLAB, F as FILE_SESSION_PATH, J as JsonObject, q as JsonValue, r as MeetApiOptions, s as MeetApiRequest, t as MeetBreakoutBroadcast, u as MeetBreakoutPlan, v as MeetBreakoutRoom, w as MeetCollabSettings, x as MeetFileMedia, y as MeetPoll, z as MeetPollOption, B as MeetPollState, D as MeetQuestion, G as MeetQuestionState, H as MeetStroke, K as MeetingActivities, Y as MeetingNoteKind, a0 as ORGANIZATION_HEADER, a2 as OccurrenceState, a4 as ROLE_RANK, ab as RsvpState, T as TranscriptSource, ae as applyCollabPacket, af as asCallId, ag as asMeetingId, ah as asOrganizationId, ai as asParticipantIdentity, aj as asRoomName, ak as asUserId, al as assignedRoom, am as autoAssign, an as breakoutRemainingMs, ao as collabFromState, ap as createMeetApi, aq as defaultCaptionLanguage, ar as fileDownloadPath, as as isGuest, at as isHostRole, au as isLinkFollower, av as loadMeetingActivities, aw as withItem } from './collab-B6scmSST.cjs';
3
3
  import { RealtimeManager } from '@ai-matrx/realtime';
4
4
  import { MessagingSupabaseClient, ActionHandler } from '@ai-matrx/messaging';
5
5
  import { RoomOptions, ConnectionQuality as ConnectionQuality$1, Participant } from 'livekit-client';
@@ -29,7 +29,13 @@ declare class MeetError extends Error {
29
29
  /** What to DO. Rendered to the user for the device codes. */
30
30
  readonly remedy: string;
31
31
  readonly cause?: unknown;
32
- constructor(code: MeetErrorCode, message: string, remedy: string, cause?: unknown);
32
+ /**
33
+ * The join gate's reason code (CORE-DESIGN §2.5) when the server named one: `not_found`,
34
+ * `cancelled`, `ended`, `locked`, `removed`, `lobby_rejects`, `not_invited`… The phase
35
+ * renders `refused:<reason>` (or `ended`) from it — never from the HTTP status.
36
+ */
37
+ readonly reason: string | null;
38
+ constructor(code: MeetErrorCode, message: string, remedy: string, cause?: unknown, reason?: string | null);
33
39
  /** True when retrying after the host re-establishes a session is the fix. */
34
40
  get isRetryable(): boolean;
35
41
  /** True when the user, not the code, must act — the UI shows `remedy`. */
@@ -330,6 +336,8 @@ interface RoomReaction {
330
336
  */
331
337
  interface MeetGrants {
332
338
  readonly role: ParticipantRole;
339
+ /** Where this joiner stands with the meeting (server-minted, beside the role). */
340
+ readonly standing?: ParticipantStanding | null;
333
341
  readonly canRecord: boolean;
334
342
  readonly canPublish: boolean;
335
343
  readonly canSubscribe: boolean;
@@ -442,6 +450,8 @@ interface MeetSnapshot {
442
450
  readonly failure: {
443
451
  readonly message: string;
444
452
  readonly remedy: string;
453
+ /** The join gate's reason code, when the server named one (CORE-DESIGN §2.5). */
454
+ readonly reason?: string | null;
445
455
  } | null;
446
456
  /**
447
457
  * Meet wave 5: polls, Q&A, the shared whiteboard and the breakout plan — what the
@@ -735,7 +745,6 @@ declare const RPCS: {
735
745
  readonly meetingBySlug: "meet_meeting_by_slug";
736
746
  readonly admit: "meet_admit_participant";
737
747
  readonly setLock: "meet_set_lock";
738
- readonly endMeeting: "meet_end_meeting";
739
748
  readonly recordConsent: "meet_record_consent";
740
749
  /** Schedule with every setting at create; unset settings come from the knobs. */
741
750
  readonly scheduleMeeting: "meet_schedule_meeting";
@@ -825,7 +834,6 @@ interface MeetRepository {
825
834
  byUserId: UserId;
826
835
  }): Promise<void>;
827
836
  setLock(meetingId: MeetingId, locked: boolean, byUserId: UserId): Promise<MeetingRecord>;
828
- endMeeting(meetingId: MeetingId, byUserId: UserId): Promise<MeetingRecord>;
829
837
  projectSegment(row: Row): TranscriptSegment;
830
838
  projectNote(row: Row): MeetingNote;
831
839
  /** One `meet_recordings` row, however it arrived (row or room packet). */
@@ -1899,14 +1907,22 @@ interface RoomToken {
1899
1907
  readonly canRecord: boolean;
1900
1908
  readonly isHost: boolean;
1901
1909
  /**
1902
- * 🚨 THE SERVER'S WORD ON WHO THIS JOINER IS (MRI-A11) — `host`,
1903
- * `participant` or `guest`, minted from `host_user_id` or a real iam grant.
1904
- * The same string is minted into the LiveKit token's participant metadata and
1905
- * its `matrx.participant.role` attribute, so the roster and this response
1906
- * cannot disagree. A server that predates MRI-A11 sends no role, and the
1907
- * fallback below reads the older `is_host` boolean rather than pretending.
1910
+ * 🚨 THE SERVER'S WORD ON WHO THIS JOINER IS (MRI-A11) — `host · cohost · presenter ·
1911
+ * participant · viewer` (CORE-DESIGN §2.1). The same string is minted into the LiveKit
1912
+ * token's participant metadata and its `matrx.participant.role` attribute.
1908
1913
  */
1909
1914
  readonly role: ParticipantRole;
1915
+ /** Where this joiner stands with the meeting — beside the role, never inside it. */
1916
+ readonly standing: ParticipantStanding | null;
1917
+ /**
1918
+ * 🚨 THE MEETING PASS (CORE-DESIGN §2.5) — the credential for every aidream meet route,
1919
+ * sent as `x-meet-pass`. It is NOT the LiveKit token (`token`), which is for the media
1920
+ * connection only. Null for an ad-hoc call room (no meeting) or an older server.
1921
+ */
1922
+ readonly meetingPass: string | null;
1923
+ readonly meetingPassExpiresAt: string | null;
1924
+ /** The run (`meet_sessions.id`) this join belongs to; null while waiting before any run. */
1925
+ readonly sessionId: string | null;
1910
1926
  /** True when the server put this joiner in the lobby (D6). */
1911
1927
  readonly lobby: boolean;
1912
1928
  /**
@@ -1952,6 +1968,11 @@ interface RoomTokenStorage {
1952
1968
  }
1953
1969
  /** `localStorage` when it exists; a no-op that SAYS so otherwise. */
1954
1970
  declare function createWebRoomTokenStorage(onDiagnostic?: (message: string, remedy: string) => void): RoomTokenStorage;
1971
+ /**
1972
+ * The meeting pass a GUEST's browser kept for a room (MRF-1), or null — read from the same
1973
+ * storage `createWebRoomTokenStorage` writes. Used by "keep your notes" after sign-up.
1974
+ */
1975
+ declare function rememberedMeetingPass(roomName: RoomName, storage?: RoomTokenStorage): string | null;
1955
1976
  interface TokenRequest {
1956
1977
  readonly roomName: RoomName;
1957
1978
  readonly identity: MeetIdentity;
@@ -2007,7 +2028,7 @@ declare const MEET_ROUTES: {
2007
2028
  /**
2008
2029
  * THE POST-MEETING RECORD FOR A READER WITH NO DATABASE (MRF-1). A `GET`,
2009
2030
  * authorized by the room token this device already holds, carried in the
2010
- * `x-meet-room-token` header — never a query parameter, because a bearer
2031
+ * `x-meet-pass` header — never a query parameter, because a bearer
2011
2032
  * credential in a URL lands in access logs, referrers and history.
2012
2033
  */
2013
2034
  readonly record: "/api/v1/meet/record";
@@ -2015,7 +2036,7 @@ declare const MEET_ROUTES: {
2015
2036
  readonly recordAccess: "/api/v1/meet/record/access";
2016
2037
  /**
2017
2038
  * KEEP YOUR NOTES (2026-10-01): a guest who just created an account presents
2018
- * their kept pass in `x-meet-room-token` with their new session, and the
2039
+ * their kept pass in `x-meet-pass` with their new session, and the
2019
2040
  * meeting they attended becomes theirs to read. Idempotent; never a grant.
2020
2041
  */
2021
2042
  readonly claim: "/api/v1/meet/claim";
@@ -2037,7 +2058,7 @@ declare const MEET_ROUTES: {
2037
2058
  * Meet wave 2: EVERY in-meeting host power (mute, stop video, mute all, ask to
2038
2059
  * unmute, spotlight, lower hands, co-host, hand over, rename, remove, report).
2039
2060
  * Decided by the server from the meeting itself; a guest's pass rides
2040
- * `x-meet-room-token`.
2061
+ * `x-meet-pass`.
2041
2062
  */
2042
2063
  readonly moderate: "/api/v1/meet/moderate";
2043
2064
  /** Meet wave 2: the SAVED chat — `POST` sends to everyone, `GET ?meeting_id=` reads history. */
@@ -2052,8 +2073,10 @@ declare const MEET_ROUTES: {
2052
2073
  };
2053
2074
  /** A `MEET_ROUTES` template with its `{meeting_id}` filled in, URL-encoded. */
2054
2075
  declare function meetingPath(template: string, meetingId: string): string;
2055
- /** The header the guest's pass rides on. Pinned on both sides. */
2056
- declare const ROOM_TOKEN_HEADER = "x-meet-room-token";
2076
+ /** The header the meeting pass rides on (CORE-DESIGN §2.5). Pinned on both sides. */
2077
+ declare const MEETING_PASS_HEADER = "x-meet-pass";
2078
+ /** The `x-meet-pass` header for a held token, or no header at all. */
2079
+ declare function meetingPassHeaders(token: RoomToken | null | undefined): Record<string, string>;
2057
2080
  declare function parseRoomToken(body: unknown, roomName: RoomName): RoomToken;
2058
2081
  declare function createTokenClient(options: TokenClientOptions): TokenClient;
2059
2082
 
@@ -2319,6 +2342,11 @@ declare function loadGuestMeetingRecord(args: {
2319
2342
  * claimed, and shares what guests may read (2026-10-01).
2320
2343
  */
2321
2344
  session?: boolean;
2345
+ /**
2346
+ * THE SESSION-AWARE RECORD (CORE-DESIGN §2.3): one run of a series. Omitted = the server's
2347
+ * default (a one-off meeting's whole record; a series' latest ended run).
2348
+ */
2349
+ sessionId?: string | null;
2322
2350
  }): Promise<MeetingRecordBundle>;
2323
2351
  /**
2324
2352
  * A HOST chooses what guests may read of THIS meeting.
@@ -2476,7 +2504,7 @@ interface MeetingChatHistory {
2476
2504
  * are never saved, by design, so they are never here. A refusal is returned as
2477
2505
  * data — the record still renders everything else.
2478
2506
  */
2479
- declare function loadMeetingChat(api: MeetApi, meetingId: MeetingId, roomToken?: string | null): Promise<MeetingChatHistory>;
2507
+ declare function loadMeetingChat(api: MeetApi, meetingId: MeetingId, meetingPass?: string | null): Promise<MeetingChatHistory>;
2480
2508
  /** One person the recap can go to, as the server resolved them. */
2481
2509
  interface FollowUpRecipient {
2482
2510
  /** Stable key for the choice: `user:<id>` or `email:<address>`. */
@@ -2694,6 +2722,8 @@ interface EffectsStorage {
2694
2722
  */
2695
2723
  declare const PARTICIPANT_ROLE_ATTRIBUTE = "matrx.participant.role";
2696
2724
  declare const PARTICIPANT_CAN_RECORD_ATTRIBUTE = "matrx.participant.can_record";
2725
+ /** Standing travels beside the role (CORE-DESIGN §2.1). Pinned by aidream's tests too. */
2726
+ declare const PARTICIPANT_STANDING_ATTRIBUTE = "matrx.participant.standing";
2697
2727
  /**
2698
2728
  * Metadata is SERVER-MINTED and therefore trusted; it is still parsed
2699
2729
  * defensively, because a malformed blob must degrade a tile to "participant"
@@ -3002,13 +3032,19 @@ declare function takeMoveRequest(store: CollabStoreLike): {
3002
3032
  * an absent attribute reads as "unknown", a guessed one would lie.
3003
3033
  */
3004
3034
 
3035
+ /**
3036
+ * `data-meet-role` is the HARNESS CONTRACT's vocabulary (host · cohost · participant · guest):
3037
+ * a link follower whose role is `participant` renders `guest` (CORE-DESIGN §2.1); `presenter` /
3038
+ * `viewer` render `participant` until the contract adopts them (§3.7 C3).
3039
+ */
3040
+ type ObservedRole = "host" | "cohost" | "participant" | "guest";
3005
3041
  /** `data-meet-phase` values this release renders (a subset of the contract's §2). */
3006
3042
  type ObservedPhase = "resolving" | `refused:${string}` | "prejoin" | "joining" | "waiting:knocking" | "in_call" | "disconnected" | "ended";
3007
3043
  type ObservedConnection = "stable" | "reconnecting" | "server_unreachable";
3008
3044
  interface MeetObservation {
3009
3045
  readonly phase: ObservedPhase;
3010
3046
  readonly reason: string | null;
3011
- readonly role: ParticipantRole | "none";
3047
+ readonly role: ObservedRole | "none";
3012
3048
  readonly connection: ObservedConnection;
3013
3049
  /** null = this tab does not know (it is not in the room). */
3014
3050
  readonly hostPresent: boolean | null;
@@ -3045,4 +3081,4 @@ declare function participantAttributes(p: MeetParticipant): Record<string, strin
3045
3081
  /** The listen-only notice's contract code, from why the microphone is off. */
3046
3082
  declare function microphoneNoticeCode(track: LocalTrackState): "mic-blocked" | "device-lost" | null;
3047
3083
 
3048
- export { ATTENDANCE_CSV_HEADER, AdmissionState, type AnnounceResult, type ApplyRoomEventArgs, type AskArgs, type AttendanceKind, type AttendanceRow, type AudioProcessing, CALL_INVITE_KIND, CALL_INVITE_VERSION, CONSENT_NOTICE_ATTRIBUTE, type CallCenter, type CallCenterOptions, CallId, CallInvite, type CallInviteHandlerOptions, type CallInvitePayload, CallMode, CallState, type CollabAction, CollabPanel, type CollabRequest, type CollabResult, type CollabRuntime, CollabSnapshot, type CollabStoreLike, ConnectionQuality, type CreateCallInviteInput, type CreateMeetingInput, DATA_TOPICS, DEFAULT_EFFECTS, DEFAULT_PAGE_SIZE, type DataTopic, type DeviceKind, type DeviceManager, type DeviceManagerOptions, type DeviceSnapshot, type DeviceStorage, type DriverConnectionState, type DriverParticipant, type DriverTrackKind, type DriverTranscription, END_MEETING_NOT_SERVED, type EffectsStorage, type EndMeetingResult, type FollowUpDraft, type FollowUpRecipient, type FollowUpSendResult, GUEST_RECORD_ACCESS_CHOICES, GUEST_RECORD_ACCESS_LEVELS, GUEST_RECORD_ACCESS_METADATA_KEY, GUEST_RECORD_NOT_SHARED, type GuestRecordAccess, type GuestRecordAccessResolution, type GuestRecordAccessSetting, IDLE_MEDIA, IDLE_TRACK, type InRoomClient, type InRoomClientOptions, InviteeInput, InviteeRole, type JoinRequest, LISTEN_ONLY_NOTICE, type LibraryRecording, type LiveKitDriverOptions, LobbyEntry, type LocalMediaState, type LocalTrackState, MEETING_INVITE_KIND, MEETING_INVITE_VERSION, MEETING_RECORD_GRACE_MS, MEET_ANSWER_CONTEXT_EVENT, MEET_ANSWER_EVENTS, MEET_EVENTS, MEET_REACTIONS, MEET_ROUTES, MEET_SCHEMA, MODERATION_ACTIONS, type MediaDevicesLike, type MediaEffects, type MediaUnavailable, type MeetAi, type MeetAiAnswer, type MeetAiOptions, type MeetAnswerCoverage, MeetApi, type MeetDevice, MeetError, type MeetErrorCode, type MeetEvent, type MeetGrants, MeetIdentity, type MeetObservation, MeetParticipant, type MeetRepository, type MeetRoomDriver, type MeetSnapshot, type MeetStore, MeetingAttendee, MeetingChanges, type MeetingChatHistory, MeetingId, type MeetingInviteHandlerOptions, type MeetingInvitePayload, MeetingInvitee, MeetingKind, MeetingNote, MeetingOccurrence, MeetingRecord, type MeetingRecordAnswer, type MeetingRecordBundle, type MeetingRecordCache, type MeetingRecordChange, type MeetingRecordFailure, type MeetingRecordParts, type MeetingRecordRestriction, type MeetingRecordRestrictionNotice, type MeetingRecordState, type MeetingSearchHit, type MeetingSearchSource, type MeetingSession, type MeetingSessionOptions, MeetingSettings, type ModerationAction, type ModerationNotice, type ModerationRequest, type ModerationResult, NOTE_TAKER_IDENTITY_PREFIX, NOTE_TAKER_METADATA_KEY, NO_GRANTS, type NameBook, type NoteTakerDispatch, type NoteTakerRefusal, NoteTakerState, type NoteTakerStatus, type ObserveInput, type ObservedConnection, type ObservedPhase, OccurrenceOverride, OrganizationId, PARTICIPANT_CAN_RECORD_ATTRIBUTE, PARTICIPANT_ROLE_ATTRIBUTE, ParticipantIdentity, ParticipantRole, REACTION_TTL_MS, REFUSED_ABSENCE, ROOM_EVENTS, ROOM_EVENT_PREFIX, ROOM_TOKEN_HEADER, RPCS, type RecordingController, type RecordingControllerOptions, RecordingPolicy, RecordingRecord, RecordingState, type RepositoryOptions, type RoomChatMessage, type RoomDriverFactory, type RoomDriverHandlers, type RoomEngine, type RoomEngineOptions, type RoomEventOutcome, type RoomEventTopic, RoomName, RoomPhase, type RoomReaction, type RoomToken, type RoomTokenStorage, RsvpAnswer, RsvpInvitation, type ScheduleMeetingInput, type Stage, type StageArgs, StageLayout, TABLES, TRANSCRIPTION_ATTRIBUTES, TRANSCRIPTION_TOPIC, type TokenClient, type TokenClientOptions, type TokenRequest, type TranscriptBlock, type TranscriptFormat, type TranscriptMatch, TranscriptSegment, UpcomingOccurrence, UserId, type VideoEffect, WrapUpAnnouncement, type WrapUpStatus, absenceSentence, activeWrapUpSummary, activityAttention, announceMeeting, applyRoomEvent, assembleMeetingRecord, attendanceCsv, attendanceReport, attendanceTotals, attendeeKey, availableActivities, callInviteAction, callInviteText, callStateLabel, canModerate, canModerateParticipant, canTransition, captionSegment, changesPatch, clockPosition, computeStage, countLabel, createCallCenter, createCallInviteHandler, createDeviceManager, createInRoomClient, createLiveKitDriver, createMeetAi, createMeetRepository, createMeetStore, createMeetingInviteHandler, createMeetingRecordCache, createMeetingSession, createMemoryDeviceStorage, createRecordingController, createRoomEngine, createTokenClient, createWebDeviceStorage, createWebEffectsStorage, createWebRoomTokenStorage, displayNameFor, gridColumns, groupTranscript, guestRecordAccessExplanation, guestRecordAccessLabel, guestRecordAccessSetting, hasEnded, hostUserIds, invalidResponse, isGuestIdentity, isListenOnly, isNoteTaker, isRealName, isRoomEventTopic, learnName, learnNames, listenOnlyNotice, loadFollowUpDraft, loadGuestMeetingRecord, loadMeetingChat, loadMeetingRecord, loadMeetingRecordParts, mapConnectionState, mapQuality, meetingInviteAction, meetingLength, meetingLink, meetingPath, meetingSlug, meetingTopic, meetingWhen, mergeCaption, mergeRecord, microphoneNoticeCode, moveToRoom, nextTranslationBatch, normalizeDeviceError, normalizeMeetError, normalizeSpoken, noteTakerIdentity, noteTakerLabel, noteTakerParticipant, noteTakerStatus, notesDocument, observe as observeMeeting, observedDevice, observedPhase, observedQuality, orderParticipants, parseRoomToken, participantAttributes, participantSummary, performCollab, playableRecordingFileId, projectInvitee, projectLibraryRecording, projectNote, projectOccurrence, projectOverride, projectParticipant, projectRsvpInvitation, projectSearchHit, projectSegment, projectUpcoming, pushMeetingToGoogleCalendar, readServerRefusal, readableTranscript, recordingLabel, recordingNotice, recordingOffsetMs, roleOf, roomTopic, rootAttributes, searchTranscript, sendFollowUp, setCaptionLanguage, setGuestRecordAccess, settingsPatch, snapshotParticipant, snippetRuns, staticObservation, summarizeMeetingRecordRestrictions, takeMoveRequest, takePanelRequest, transcriptDocument, unavailableFrom, uniqueAttendees, untranslatedLines, userTopic, wasRefused, wrapUpStatus };
3084
+ export { ATTENDANCE_CSV_HEADER, AdmissionState, type AnnounceResult, type ApplyRoomEventArgs, type AskArgs, type AttendanceKind, type AttendanceRow, type AudioProcessing, CALL_INVITE_KIND, CALL_INVITE_VERSION, CONSENT_NOTICE_ATTRIBUTE, type CallCenter, type CallCenterOptions, CallId, CallInvite, type CallInviteHandlerOptions, type CallInvitePayload, CallMode, CallState, type CollabAction, CollabPanel, type CollabRequest, type CollabResult, type CollabRuntime, CollabSnapshot, type CollabStoreLike, ConnectionQuality, type CreateCallInviteInput, type CreateMeetingInput, DATA_TOPICS, DEFAULT_EFFECTS, DEFAULT_PAGE_SIZE, type DataTopic, type DeviceKind, type DeviceManager, type DeviceManagerOptions, type DeviceSnapshot, type DeviceStorage, type DriverConnectionState, type DriverParticipant, type DriverTrackKind, type DriverTranscription, END_MEETING_NOT_SERVED, type EffectsStorage, type EndMeetingResult, type FollowUpDraft, type FollowUpRecipient, type FollowUpSendResult, GUEST_RECORD_ACCESS_CHOICES, GUEST_RECORD_ACCESS_LEVELS, GUEST_RECORD_ACCESS_METADATA_KEY, GUEST_RECORD_NOT_SHARED, type GuestRecordAccess, type GuestRecordAccessResolution, type GuestRecordAccessSetting, IDLE_MEDIA, IDLE_TRACK, type InRoomClient, type InRoomClientOptions, InviteeInput, InviteeRole, type JoinRequest, LISTEN_ONLY_NOTICE, type LibraryRecording, type LiveKitDriverOptions, LobbyEntry, type LocalMediaState, type LocalTrackState, MEETING_INVITE_KIND, MEETING_INVITE_VERSION, MEETING_PASS_HEADER, MEETING_RECORD_GRACE_MS, MEET_ANSWER_CONTEXT_EVENT, MEET_ANSWER_EVENTS, MEET_EVENTS, MEET_REACTIONS, MEET_ROUTES, MEET_SCHEMA, MODERATION_ACTIONS, type MediaDevicesLike, type MediaEffects, type MediaUnavailable, type MeetAi, type MeetAiAnswer, type MeetAiOptions, type MeetAnswerCoverage, MeetApi, type MeetDevice, MeetError, type MeetErrorCode, type MeetEvent, type MeetGrants, MeetIdentity, type MeetObservation, MeetParticipant, type MeetRepository, type MeetRoomDriver, type MeetSnapshot, type MeetStore, MeetingAttendee, MeetingChanges, type MeetingChatHistory, MeetingId, type MeetingInviteHandlerOptions, type MeetingInvitePayload, MeetingInvitee, MeetingKind, MeetingNote, MeetingOccurrence, MeetingRecord, type MeetingRecordAnswer, type MeetingRecordBundle, type MeetingRecordCache, type MeetingRecordChange, type MeetingRecordFailure, type MeetingRecordParts, type MeetingRecordRestriction, type MeetingRecordRestrictionNotice, type MeetingRecordState, type MeetingSearchHit, type MeetingSearchSource, type MeetingSession, type MeetingSessionOptions, MeetingSettings, type ModerationAction, type ModerationNotice, type ModerationRequest, type ModerationResult, NOTE_TAKER_IDENTITY_PREFIX, NOTE_TAKER_METADATA_KEY, NO_GRANTS, type NameBook, type NoteTakerDispatch, type NoteTakerRefusal, NoteTakerState, type NoteTakerStatus, type ObserveInput, type ObservedConnection, type ObservedPhase, OccurrenceOverride, OrganizationId, PARTICIPANT_CAN_RECORD_ATTRIBUTE, PARTICIPANT_ROLE_ATTRIBUTE, PARTICIPANT_STANDING_ATTRIBUTE, ParticipantIdentity, ParticipantRole, ParticipantStanding, REACTION_TTL_MS, REFUSED_ABSENCE, ROOM_EVENTS, ROOM_EVENT_PREFIX, RPCS, type RecordingController, type RecordingControllerOptions, RecordingPolicy, RecordingRecord, RecordingState, type RepositoryOptions, type RoomChatMessage, type RoomDriverFactory, type RoomDriverHandlers, type RoomEngine, type RoomEngineOptions, type RoomEventOutcome, type RoomEventTopic, RoomName, RoomPhase, type RoomReaction, type RoomToken, type RoomTokenStorage, RsvpAnswer, RsvpInvitation, type ScheduleMeetingInput, type Stage, type StageArgs, StageLayout, TABLES, TRANSCRIPTION_ATTRIBUTES, TRANSCRIPTION_TOPIC, type TokenClient, type TokenClientOptions, type TokenRequest, type TranscriptBlock, type TranscriptFormat, type TranscriptMatch, TranscriptSegment, UpcomingOccurrence, UserId, type VideoEffect, WrapUpAnnouncement, type WrapUpStatus, absenceSentence, activeWrapUpSummary, activityAttention, announceMeeting, applyRoomEvent, assembleMeetingRecord, attendanceCsv, attendanceReport, attendanceTotals, attendeeKey, availableActivities, callInviteAction, callInviteText, callStateLabel, canModerate, canModerateParticipant, canTransition, captionSegment, changesPatch, clockPosition, computeStage, countLabel, createCallCenter, createCallInviteHandler, createDeviceManager, createInRoomClient, createLiveKitDriver, createMeetAi, createMeetRepository, createMeetStore, createMeetingInviteHandler, createMeetingRecordCache, createMeetingSession, createMemoryDeviceStorage, createRecordingController, createRoomEngine, createTokenClient, createWebDeviceStorage, createWebEffectsStorage, createWebRoomTokenStorage, displayNameFor, gridColumns, groupTranscript, guestRecordAccessExplanation, guestRecordAccessLabel, guestRecordAccessSetting, hasEnded, hostUserIds, invalidResponse, isGuestIdentity, isListenOnly, isNoteTaker, isRealName, isRoomEventTopic, learnName, learnNames, listenOnlyNotice, loadFollowUpDraft, loadGuestMeetingRecord, loadMeetingChat, loadMeetingRecord, loadMeetingRecordParts, mapConnectionState, mapQuality, meetingInviteAction, meetingLength, meetingLink, meetingPassHeaders, meetingPath, meetingSlug, meetingTopic, meetingWhen, mergeCaption, mergeRecord, microphoneNoticeCode, moveToRoom, nextTranslationBatch, normalizeDeviceError, normalizeMeetError, normalizeSpoken, noteTakerIdentity, noteTakerLabel, noteTakerParticipant, noteTakerStatus, notesDocument, observe as observeMeeting, observedDevice, observedPhase, observedQuality, orderParticipants, parseRoomToken, participantAttributes, participantSummary, performCollab, playableRecordingFileId, projectInvitee, projectLibraryRecording, projectNote, projectOccurrence, projectOverride, projectParticipant, projectRsvpInvitation, projectSearchHit, projectSegment, projectUpcoming, pushMeetingToGoogleCalendar, readServerRefusal, readableTranscript, recordingLabel, recordingNotice, recordingOffsetMs, rememberedMeetingPass, roleOf, roomTopic, rootAttributes, searchTranscript, sendFollowUp, setCaptionLanguage, setGuestRecordAccess, settingsPatch, snapshotParticipant, snippetRuns, staticObservation, summarizeMeetingRecordRestrictions, takeMoveRequest, takePanelRequest, transcriptDocument, unavailableFrom, uniqueAttendees, untranslatedLines, userTopic, wasRefused, wrapUpStatus };
package/dist/core.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as ParticipantIdentity, $ as NoteTakerState, a as MeetParticipant, M as MeetingRecord, a7 as RoomPhase, e as ParticipantRole, S as StageLayout, L as LobbyEntry, a6 as RecordingState, U as UserId, av as RecordingSource, ab as TranscriptSegment, g as MeetingNote, W as WrapUpAnnouncement, i as CollabSnapshot, o as ConnectionQuality, j as AdmissionState, h as MeetingId, R as RoomName, b as MeetApi, d as CallInvite, f as CallMode, O as OrganizationId, l as CallId, m as CallState, X as MeetingKind, a4 as RecordingPolicy, a5 as RecordingRecord, N as MeetingAttendee, _ as MeetingSettings, Q as MeetingChanges, a1 as OccurrenceOverride, Z as MeetingOccurrence, ac as UpcomingOccurrence, V as MeetingInvitee, I as InviteeInput, p as InviteeRole, a8 as RsvpAnswer, a9 as RsvpInvitation, c as MeetIdentity, C as CollabPanel } from './collab-Bss-_Jfp.js';
2
- export { A as AccessTokenSource, k as CAPTION_LANGUAGES, n as CallablePerson, E as EMPTY_COLLAB, F as FILE_SESSION_PATH, J as JsonObject, q as JsonValue, r as MeetApiOptions, s as MeetApiRequest, t as MeetBreakoutBroadcast, u as MeetBreakoutPlan, v as MeetBreakoutRoom, w as MeetCollabSettings, x as MeetFileMedia, y as MeetPoll, z as MeetPollOption, B as MeetPollState, D as MeetQuestion, G as MeetQuestionState, H as MeetStroke, K as MeetingActivities, Y as MeetingNoteKind, a0 as ORGANIZATION_HEADER, a2 as OccurrenceState, a3 as ROLE_RANK, aa as RsvpState, T as TranscriptSource, ad as applyCollabPacket, ae as asCallId, af as asMeetingId, ag as asOrganizationId, ah as asParticipantIdentity, ai as asRoomName, aj as asUserId, ak as assignedRoom, al as autoAssign, am as breakoutRemainingMs, an as collabFromState, ao as createMeetApi, ap as defaultCaptionLanguage, aq as fileDownloadPath, ar as isGuest, as as isHostRole, at as loadMeetingActivities, au as withItem } from './collab-Bss-_Jfp.js';
1
+ import { P as ParticipantIdentity, $ as NoteTakerState, a as MeetParticipant, M as MeetingRecord, a8 as RoomPhase, e as ParticipantRole, a3 as ParticipantStanding, S as StageLayout, L as LobbyEntry, a7 as RecordingState, U as UserId, ax as RecordingSource, ac as TranscriptSegment, g as MeetingNote, W as WrapUpAnnouncement, i as CollabSnapshot, o as ConnectionQuality, j as AdmissionState, h as MeetingId, R as RoomName, b as MeetApi, d as CallInvite, f as CallMode, O as OrganizationId, l as CallId, m as CallState, X as MeetingKind, a5 as RecordingPolicy, a6 as RecordingRecord, N as MeetingAttendee, _ as MeetingSettings, Q as MeetingChanges, a1 as OccurrenceOverride, Z as MeetingOccurrence, ad as UpcomingOccurrence, V as MeetingInvitee, I as InviteeInput, p as InviteeRole, a9 as RsvpAnswer, aa as RsvpInvitation, c as MeetIdentity, C as CollabPanel } from './collab-B6scmSST.js';
2
+ export { A as AccessTokenSource, k as CAPTION_LANGUAGES, n as CallablePerson, E as EMPTY_COLLAB, F as FILE_SESSION_PATH, J as JsonObject, q as JsonValue, r as MeetApiOptions, s as MeetApiRequest, t as MeetBreakoutBroadcast, u as MeetBreakoutPlan, v as MeetBreakoutRoom, w as MeetCollabSettings, x as MeetFileMedia, y as MeetPoll, z as MeetPollOption, B as MeetPollState, D as MeetQuestion, G as MeetQuestionState, H as MeetStroke, K as MeetingActivities, Y as MeetingNoteKind, a0 as ORGANIZATION_HEADER, a2 as OccurrenceState, a4 as ROLE_RANK, ab as RsvpState, T as TranscriptSource, ae as applyCollabPacket, af as asCallId, ag as asMeetingId, ah as asOrganizationId, ai as asParticipantIdentity, aj as asRoomName, ak as asUserId, al as assignedRoom, am as autoAssign, an as breakoutRemainingMs, ao as collabFromState, ap as createMeetApi, aq as defaultCaptionLanguage, ar as fileDownloadPath, as as isGuest, at as isHostRole, au as isLinkFollower, av as loadMeetingActivities, aw as withItem } from './collab-B6scmSST.js';
3
3
  import { RealtimeManager } from '@ai-matrx/realtime';
4
4
  import { MessagingSupabaseClient, ActionHandler } from '@ai-matrx/messaging';
5
5
  import { RoomOptions, ConnectionQuality as ConnectionQuality$1, Participant } from 'livekit-client';
@@ -29,7 +29,13 @@ declare class MeetError extends Error {
29
29
  /** What to DO. Rendered to the user for the device codes. */
30
30
  readonly remedy: string;
31
31
  readonly cause?: unknown;
32
- constructor(code: MeetErrorCode, message: string, remedy: string, cause?: unknown);
32
+ /**
33
+ * The join gate's reason code (CORE-DESIGN §2.5) when the server named one: `not_found`,
34
+ * `cancelled`, `ended`, `locked`, `removed`, `lobby_rejects`, `not_invited`… The phase
35
+ * renders `refused:<reason>` (or `ended`) from it — never from the HTTP status.
36
+ */
37
+ readonly reason: string | null;
38
+ constructor(code: MeetErrorCode, message: string, remedy: string, cause?: unknown, reason?: string | null);
33
39
  /** True when retrying after the host re-establishes a session is the fix. */
34
40
  get isRetryable(): boolean;
35
41
  /** True when the user, not the code, must act — the UI shows `remedy`. */
@@ -330,6 +336,8 @@ interface RoomReaction {
330
336
  */
331
337
  interface MeetGrants {
332
338
  readonly role: ParticipantRole;
339
+ /** Where this joiner stands with the meeting (server-minted, beside the role). */
340
+ readonly standing?: ParticipantStanding | null;
333
341
  readonly canRecord: boolean;
334
342
  readonly canPublish: boolean;
335
343
  readonly canSubscribe: boolean;
@@ -442,6 +450,8 @@ interface MeetSnapshot {
442
450
  readonly failure: {
443
451
  readonly message: string;
444
452
  readonly remedy: string;
453
+ /** The join gate's reason code, when the server named one (CORE-DESIGN §2.5). */
454
+ readonly reason?: string | null;
445
455
  } | null;
446
456
  /**
447
457
  * Meet wave 5: polls, Q&A, the shared whiteboard and the breakout plan — what the
@@ -735,7 +745,6 @@ declare const RPCS: {
735
745
  readonly meetingBySlug: "meet_meeting_by_slug";
736
746
  readonly admit: "meet_admit_participant";
737
747
  readonly setLock: "meet_set_lock";
738
- readonly endMeeting: "meet_end_meeting";
739
748
  readonly recordConsent: "meet_record_consent";
740
749
  /** Schedule with every setting at create; unset settings come from the knobs. */
741
750
  readonly scheduleMeeting: "meet_schedule_meeting";
@@ -825,7 +834,6 @@ interface MeetRepository {
825
834
  byUserId: UserId;
826
835
  }): Promise<void>;
827
836
  setLock(meetingId: MeetingId, locked: boolean, byUserId: UserId): Promise<MeetingRecord>;
828
- endMeeting(meetingId: MeetingId, byUserId: UserId): Promise<MeetingRecord>;
829
837
  projectSegment(row: Row): TranscriptSegment;
830
838
  projectNote(row: Row): MeetingNote;
831
839
  /** One `meet_recordings` row, however it arrived (row or room packet). */
@@ -1899,14 +1907,22 @@ interface RoomToken {
1899
1907
  readonly canRecord: boolean;
1900
1908
  readonly isHost: boolean;
1901
1909
  /**
1902
- * 🚨 THE SERVER'S WORD ON WHO THIS JOINER IS (MRI-A11) — `host`,
1903
- * `participant` or `guest`, minted from `host_user_id` or a real iam grant.
1904
- * The same string is minted into the LiveKit token's participant metadata and
1905
- * its `matrx.participant.role` attribute, so the roster and this response
1906
- * cannot disagree. A server that predates MRI-A11 sends no role, and the
1907
- * fallback below reads the older `is_host` boolean rather than pretending.
1910
+ * 🚨 THE SERVER'S WORD ON WHO THIS JOINER IS (MRI-A11) — `host · cohost · presenter ·
1911
+ * participant · viewer` (CORE-DESIGN §2.1). The same string is minted into the LiveKit
1912
+ * token's participant metadata and its `matrx.participant.role` attribute.
1908
1913
  */
1909
1914
  readonly role: ParticipantRole;
1915
+ /** Where this joiner stands with the meeting — beside the role, never inside it. */
1916
+ readonly standing: ParticipantStanding | null;
1917
+ /**
1918
+ * 🚨 THE MEETING PASS (CORE-DESIGN §2.5) — the credential for every aidream meet route,
1919
+ * sent as `x-meet-pass`. It is NOT the LiveKit token (`token`), which is for the media
1920
+ * connection only. Null for an ad-hoc call room (no meeting) or an older server.
1921
+ */
1922
+ readonly meetingPass: string | null;
1923
+ readonly meetingPassExpiresAt: string | null;
1924
+ /** The run (`meet_sessions.id`) this join belongs to; null while waiting before any run. */
1925
+ readonly sessionId: string | null;
1910
1926
  /** True when the server put this joiner in the lobby (D6). */
1911
1927
  readonly lobby: boolean;
1912
1928
  /**
@@ -1952,6 +1968,11 @@ interface RoomTokenStorage {
1952
1968
  }
1953
1969
  /** `localStorage` when it exists; a no-op that SAYS so otherwise. */
1954
1970
  declare function createWebRoomTokenStorage(onDiagnostic?: (message: string, remedy: string) => void): RoomTokenStorage;
1971
+ /**
1972
+ * The meeting pass a GUEST's browser kept for a room (MRF-1), or null — read from the same
1973
+ * storage `createWebRoomTokenStorage` writes. Used by "keep your notes" after sign-up.
1974
+ */
1975
+ declare function rememberedMeetingPass(roomName: RoomName, storage?: RoomTokenStorage): string | null;
1955
1976
  interface TokenRequest {
1956
1977
  readonly roomName: RoomName;
1957
1978
  readonly identity: MeetIdentity;
@@ -2007,7 +2028,7 @@ declare const MEET_ROUTES: {
2007
2028
  /**
2008
2029
  * THE POST-MEETING RECORD FOR A READER WITH NO DATABASE (MRF-1). A `GET`,
2009
2030
  * authorized by the room token this device already holds, carried in the
2010
- * `x-meet-room-token` header — never a query parameter, because a bearer
2031
+ * `x-meet-pass` header — never a query parameter, because a bearer
2011
2032
  * credential in a URL lands in access logs, referrers and history.
2012
2033
  */
2013
2034
  readonly record: "/api/v1/meet/record";
@@ -2015,7 +2036,7 @@ declare const MEET_ROUTES: {
2015
2036
  readonly recordAccess: "/api/v1/meet/record/access";
2016
2037
  /**
2017
2038
  * KEEP YOUR NOTES (2026-10-01): a guest who just created an account presents
2018
- * their kept pass in `x-meet-room-token` with their new session, and the
2039
+ * their kept pass in `x-meet-pass` with their new session, and the
2019
2040
  * meeting they attended becomes theirs to read. Idempotent; never a grant.
2020
2041
  */
2021
2042
  readonly claim: "/api/v1/meet/claim";
@@ -2037,7 +2058,7 @@ declare const MEET_ROUTES: {
2037
2058
  * Meet wave 2: EVERY in-meeting host power (mute, stop video, mute all, ask to
2038
2059
  * unmute, spotlight, lower hands, co-host, hand over, rename, remove, report).
2039
2060
  * Decided by the server from the meeting itself; a guest's pass rides
2040
- * `x-meet-room-token`.
2061
+ * `x-meet-pass`.
2041
2062
  */
2042
2063
  readonly moderate: "/api/v1/meet/moderate";
2043
2064
  /** Meet wave 2: the SAVED chat — `POST` sends to everyone, `GET ?meeting_id=` reads history. */
@@ -2052,8 +2073,10 @@ declare const MEET_ROUTES: {
2052
2073
  };
2053
2074
  /** A `MEET_ROUTES` template with its `{meeting_id}` filled in, URL-encoded. */
2054
2075
  declare function meetingPath(template: string, meetingId: string): string;
2055
- /** The header the guest's pass rides on. Pinned on both sides. */
2056
- declare const ROOM_TOKEN_HEADER = "x-meet-room-token";
2076
+ /** The header the meeting pass rides on (CORE-DESIGN §2.5). Pinned on both sides. */
2077
+ declare const MEETING_PASS_HEADER = "x-meet-pass";
2078
+ /** The `x-meet-pass` header for a held token, or no header at all. */
2079
+ declare function meetingPassHeaders(token: RoomToken | null | undefined): Record<string, string>;
2057
2080
  declare function parseRoomToken(body: unknown, roomName: RoomName): RoomToken;
2058
2081
  declare function createTokenClient(options: TokenClientOptions): TokenClient;
2059
2082
 
@@ -2319,6 +2342,11 @@ declare function loadGuestMeetingRecord(args: {
2319
2342
  * claimed, and shares what guests may read (2026-10-01).
2320
2343
  */
2321
2344
  session?: boolean;
2345
+ /**
2346
+ * THE SESSION-AWARE RECORD (CORE-DESIGN §2.3): one run of a series. Omitted = the server's
2347
+ * default (a one-off meeting's whole record; a series' latest ended run).
2348
+ */
2349
+ sessionId?: string | null;
2322
2350
  }): Promise<MeetingRecordBundle>;
2323
2351
  /**
2324
2352
  * A HOST chooses what guests may read of THIS meeting.
@@ -2476,7 +2504,7 @@ interface MeetingChatHistory {
2476
2504
  * are never saved, by design, so they are never here. A refusal is returned as
2477
2505
  * data — the record still renders everything else.
2478
2506
  */
2479
- declare function loadMeetingChat(api: MeetApi, meetingId: MeetingId, roomToken?: string | null): Promise<MeetingChatHistory>;
2507
+ declare function loadMeetingChat(api: MeetApi, meetingId: MeetingId, meetingPass?: string | null): Promise<MeetingChatHistory>;
2480
2508
  /** One person the recap can go to, as the server resolved them. */
2481
2509
  interface FollowUpRecipient {
2482
2510
  /** Stable key for the choice: `user:<id>` or `email:<address>`. */
@@ -2694,6 +2722,8 @@ interface EffectsStorage {
2694
2722
  */
2695
2723
  declare const PARTICIPANT_ROLE_ATTRIBUTE = "matrx.participant.role";
2696
2724
  declare const PARTICIPANT_CAN_RECORD_ATTRIBUTE = "matrx.participant.can_record";
2725
+ /** Standing travels beside the role (CORE-DESIGN §2.1). Pinned by aidream's tests too. */
2726
+ declare const PARTICIPANT_STANDING_ATTRIBUTE = "matrx.participant.standing";
2697
2727
  /**
2698
2728
  * Metadata is SERVER-MINTED and therefore trusted; it is still parsed
2699
2729
  * defensively, because a malformed blob must degrade a tile to "participant"
@@ -3002,13 +3032,19 @@ declare function takeMoveRequest(store: CollabStoreLike): {
3002
3032
  * an absent attribute reads as "unknown", a guessed one would lie.
3003
3033
  */
3004
3034
 
3035
+ /**
3036
+ * `data-meet-role` is the HARNESS CONTRACT's vocabulary (host · cohost · participant · guest):
3037
+ * a link follower whose role is `participant` renders `guest` (CORE-DESIGN §2.1); `presenter` /
3038
+ * `viewer` render `participant` until the contract adopts them (§3.7 C3).
3039
+ */
3040
+ type ObservedRole = "host" | "cohost" | "participant" | "guest";
3005
3041
  /** `data-meet-phase` values this release renders (a subset of the contract's §2). */
3006
3042
  type ObservedPhase = "resolving" | `refused:${string}` | "prejoin" | "joining" | "waiting:knocking" | "in_call" | "disconnected" | "ended";
3007
3043
  type ObservedConnection = "stable" | "reconnecting" | "server_unreachable";
3008
3044
  interface MeetObservation {
3009
3045
  readonly phase: ObservedPhase;
3010
3046
  readonly reason: string | null;
3011
- readonly role: ParticipantRole | "none";
3047
+ readonly role: ObservedRole | "none";
3012
3048
  readonly connection: ObservedConnection;
3013
3049
  /** null = this tab does not know (it is not in the room). */
3014
3050
  readonly hostPresent: boolean | null;
@@ -3045,4 +3081,4 @@ declare function participantAttributes(p: MeetParticipant): Record<string, strin
3045
3081
  /** The listen-only notice's contract code, from why the microphone is off. */
3046
3082
  declare function microphoneNoticeCode(track: LocalTrackState): "mic-blocked" | "device-lost" | null;
3047
3083
 
3048
- export { ATTENDANCE_CSV_HEADER, AdmissionState, type AnnounceResult, type ApplyRoomEventArgs, type AskArgs, type AttendanceKind, type AttendanceRow, type AudioProcessing, CALL_INVITE_KIND, CALL_INVITE_VERSION, CONSENT_NOTICE_ATTRIBUTE, type CallCenter, type CallCenterOptions, CallId, CallInvite, type CallInviteHandlerOptions, type CallInvitePayload, CallMode, CallState, type CollabAction, CollabPanel, type CollabRequest, type CollabResult, type CollabRuntime, CollabSnapshot, type CollabStoreLike, ConnectionQuality, type CreateCallInviteInput, type CreateMeetingInput, DATA_TOPICS, DEFAULT_EFFECTS, DEFAULT_PAGE_SIZE, type DataTopic, type DeviceKind, type DeviceManager, type DeviceManagerOptions, type DeviceSnapshot, type DeviceStorage, type DriverConnectionState, type DriverParticipant, type DriverTrackKind, type DriverTranscription, END_MEETING_NOT_SERVED, type EffectsStorage, type EndMeetingResult, type FollowUpDraft, type FollowUpRecipient, type FollowUpSendResult, GUEST_RECORD_ACCESS_CHOICES, GUEST_RECORD_ACCESS_LEVELS, GUEST_RECORD_ACCESS_METADATA_KEY, GUEST_RECORD_NOT_SHARED, type GuestRecordAccess, type GuestRecordAccessResolution, type GuestRecordAccessSetting, IDLE_MEDIA, IDLE_TRACK, type InRoomClient, type InRoomClientOptions, InviteeInput, InviteeRole, type JoinRequest, LISTEN_ONLY_NOTICE, type LibraryRecording, type LiveKitDriverOptions, LobbyEntry, type LocalMediaState, type LocalTrackState, MEETING_INVITE_KIND, MEETING_INVITE_VERSION, MEETING_RECORD_GRACE_MS, MEET_ANSWER_CONTEXT_EVENT, MEET_ANSWER_EVENTS, MEET_EVENTS, MEET_REACTIONS, MEET_ROUTES, MEET_SCHEMA, MODERATION_ACTIONS, type MediaDevicesLike, type MediaEffects, type MediaUnavailable, type MeetAi, type MeetAiAnswer, type MeetAiOptions, type MeetAnswerCoverage, MeetApi, type MeetDevice, MeetError, type MeetErrorCode, type MeetEvent, type MeetGrants, MeetIdentity, type MeetObservation, MeetParticipant, type MeetRepository, type MeetRoomDriver, type MeetSnapshot, type MeetStore, MeetingAttendee, MeetingChanges, type MeetingChatHistory, MeetingId, type MeetingInviteHandlerOptions, type MeetingInvitePayload, MeetingInvitee, MeetingKind, MeetingNote, MeetingOccurrence, MeetingRecord, type MeetingRecordAnswer, type MeetingRecordBundle, type MeetingRecordCache, type MeetingRecordChange, type MeetingRecordFailure, type MeetingRecordParts, type MeetingRecordRestriction, type MeetingRecordRestrictionNotice, type MeetingRecordState, type MeetingSearchHit, type MeetingSearchSource, type MeetingSession, type MeetingSessionOptions, MeetingSettings, type ModerationAction, type ModerationNotice, type ModerationRequest, type ModerationResult, NOTE_TAKER_IDENTITY_PREFIX, NOTE_TAKER_METADATA_KEY, NO_GRANTS, type NameBook, type NoteTakerDispatch, type NoteTakerRefusal, NoteTakerState, type NoteTakerStatus, type ObserveInput, type ObservedConnection, type ObservedPhase, OccurrenceOverride, OrganizationId, PARTICIPANT_CAN_RECORD_ATTRIBUTE, PARTICIPANT_ROLE_ATTRIBUTE, ParticipantIdentity, ParticipantRole, REACTION_TTL_MS, REFUSED_ABSENCE, ROOM_EVENTS, ROOM_EVENT_PREFIX, ROOM_TOKEN_HEADER, RPCS, type RecordingController, type RecordingControllerOptions, RecordingPolicy, RecordingRecord, RecordingState, type RepositoryOptions, type RoomChatMessage, type RoomDriverFactory, type RoomDriverHandlers, type RoomEngine, type RoomEngineOptions, type RoomEventOutcome, type RoomEventTopic, RoomName, RoomPhase, type RoomReaction, type RoomToken, type RoomTokenStorage, RsvpAnswer, RsvpInvitation, type ScheduleMeetingInput, type Stage, type StageArgs, StageLayout, TABLES, TRANSCRIPTION_ATTRIBUTES, TRANSCRIPTION_TOPIC, type TokenClient, type TokenClientOptions, type TokenRequest, type TranscriptBlock, type TranscriptFormat, type TranscriptMatch, TranscriptSegment, UpcomingOccurrence, UserId, type VideoEffect, WrapUpAnnouncement, type WrapUpStatus, absenceSentence, activeWrapUpSummary, activityAttention, announceMeeting, applyRoomEvent, assembleMeetingRecord, attendanceCsv, attendanceReport, attendanceTotals, attendeeKey, availableActivities, callInviteAction, callInviteText, callStateLabel, canModerate, canModerateParticipant, canTransition, captionSegment, changesPatch, clockPosition, computeStage, countLabel, createCallCenter, createCallInviteHandler, createDeviceManager, createInRoomClient, createLiveKitDriver, createMeetAi, createMeetRepository, createMeetStore, createMeetingInviteHandler, createMeetingRecordCache, createMeetingSession, createMemoryDeviceStorage, createRecordingController, createRoomEngine, createTokenClient, createWebDeviceStorage, createWebEffectsStorage, createWebRoomTokenStorage, displayNameFor, gridColumns, groupTranscript, guestRecordAccessExplanation, guestRecordAccessLabel, guestRecordAccessSetting, hasEnded, hostUserIds, invalidResponse, isGuestIdentity, isListenOnly, isNoteTaker, isRealName, isRoomEventTopic, learnName, learnNames, listenOnlyNotice, loadFollowUpDraft, loadGuestMeetingRecord, loadMeetingChat, loadMeetingRecord, loadMeetingRecordParts, mapConnectionState, mapQuality, meetingInviteAction, meetingLength, meetingLink, meetingPath, meetingSlug, meetingTopic, meetingWhen, mergeCaption, mergeRecord, microphoneNoticeCode, moveToRoom, nextTranslationBatch, normalizeDeviceError, normalizeMeetError, normalizeSpoken, noteTakerIdentity, noteTakerLabel, noteTakerParticipant, noteTakerStatus, notesDocument, observe as observeMeeting, observedDevice, observedPhase, observedQuality, orderParticipants, parseRoomToken, participantAttributes, participantSummary, performCollab, playableRecordingFileId, projectInvitee, projectLibraryRecording, projectNote, projectOccurrence, projectOverride, projectParticipant, projectRsvpInvitation, projectSearchHit, projectSegment, projectUpcoming, pushMeetingToGoogleCalendar, readServerRefusal, readableTranscript, recordingLabel, recordingNotice, recordingOffsetMs, roleOf, roomTopic, rootAttributes, searchTranscript, sendFollowUp, setCaptionLanguage, setGuestRecordAccess, settingsPatch, snapshotParticipant, snippetRuns, staticObservation, summarizeMeetingRecordRestrictions, takeMoveRequest, takePanelRequest, transcriptDocument, unavailableFrom, uniqueAttendees, untranslatedLines, userTopic, wasRefused, wrapUpStatus };
3084
+ export { ATTENDANCE_CSV_HEADER, AdmissionState, type AnnounceResult, type ApplyRoomEventArgs, type AskArgs, type AttendanceKind, type AttendanceRow, type AudioProcessing, CALL_INVITE_KIND, CALL_INVITE_VERSION, CONSENT_NOTICE_ATTRIBUTE, type CallCenter, type CallCenterOptions, CallId, CallInvite, type CallInviteHandlerOptions, type CallInvitePayload, CallMode, CallState, type CollabAction, CollabPanel, type CollabRequest, type CollabResult, type CollabRuntime, CollabSnapshot, type CollabStoreLike, ConnectionQuality, type CreateCallInviteInput, type CreateMeetingInput, DATA_TOPICS, DEFAULT_EFFECTS, DEFAULT_PAGE_SIZE, type DataTopic, type DeviceKind, type DeviceManager, type DeviceManagerOptions, type DeviceSnapshot, type DeviceStorage, type DriverConnectionState, type DriverParticipant, type DriverTrackKind, type DriverTranscription, END_MEETING_NOT_SERVED, type EffectsStorage, type EndMeetingResult, type FollowUpDraft, type FollowUpRecipient, type FollowUpSendResult, GUEST_RECORD_ACCESS_CHOICES, GUEST_RECORD_ACCESS_LEVELS, GUEST_RECORD_ACCESS_METADATA_KEY, GUEST_RECORD_NOT_SHARED, type GuestRecordAccess, type GuestRecordAccessResolution, type GuestRecordAccessSetting, IDLE_MEDIA, IDLE_TRACK, type InRoomClient, type InRoomClientOptions, InviteeInput, InviteeRole, type JoinRequest, LISTEN_ONLY_NOTICE, type LibraryRecording, type LiveKitDriverOptions, LobbyEntry, type LocalMediaState, type LocalTrackState, MEETING_INVITE_KIND, MEETING_INVITE_VERSION, MEETING_PASS_HEADER, MEETING_RECORD_GRACE_MS, MEET_ANSWER_CONTEXT_EVENT, MEET_ANSWER_EVENTS, MEET_EVENTS, MEET_REACTIONS, MEET_ROUTES, MEET_SCHEMA, MODERATION_ACTIONS, type MediaDevicesLike, type MediaEffects, type MediaUnavailable, type MeetAi, type MeetAiAnswer, type MeetAiOptions, type MeetAnswerCoverage, MeetApi, type MeetDevice, MeetError, type MeetErrorCode, type MeetEvent, type MeetGrants, MeetIdentity, type MeetObservation, MeetParticipant, type MeetRepository, type MeetRoomDriver, type MeetSnapshot, type MeetStore, MeetingAttendee, MeetingChanges, type MeetingChatHistory, MeetingId, type MeetingInviteHandlerOptions, type MeetingInvitePayload, MeetingInvitee, MeetingKind, MeetingNote, MeetingOccurrence, MeetingRecord, type MeetingRecordAnswer, type MeetingRecordBundle, type MeetingRecordCache, type MeetingRecordChange, type MeetingRecordFailure, type MeetingRecordParts, type MeetingRecordRestriction, type MeetingRecordRestrictionNotice, type MeetingRecordState, type MeetingSearchHit, type MeetingSearchSource, type MeetingSession, type MeetingSessionOptions, MeetingSettings, type ModerationAction, type ModerationNotice, type ModerationRequest, type ModerationResult, NOTE_TAKER_IDENTITY_PREFIX, NOTE_TAKER_METADATA_KEY, NO_GRANTS, type NameBook, type NoteTakerDispatch, type NoteTakerRefusal, NoteTakerState, type NoteTakerStatus, type ObserveInput, type ObservedConnection, type ObservedPhase, OccurrenceOverride, OrganizationId, PARTICIPANT_CAN_RECORD_ATTRIBUTE, PARTICIPANT_ROLE_ATTRIBUTE, PARTICIPANT_STANDING_ATTRIBUTE, ParticipantIdentity, ParticipantRole, ParticipantStanding, REACTION_TTL_MS, REFUSED_ABSENCE, ROOM_EVENTS, ROOM_EVENT_PREFIX, RPCS, type RecordingController, type RecordingControllerOptions, RecordingPolicy, RecordingRecord, RecordingState, type RepositoryOptions, type RoomChatMessage, type RoomDriverFactory, type RoomDriverHandlers, type RoomEngine, type RoomEngineOptions, type RoomEventOutcome, type RoomEventTopic, RoomName, RoomPhase, type RoomReaction, type RoomToken, type RoomTokenStorage, RsvpAnswer, RsvpInvitation, type ScheduleMeetingInput, type Stage, type StageArgs, StageLayout, TABLES, TRANSCRIPTION_ATTRIBUTES, TRANSCRIPTION_TOPIC, type TokenClient, type TokenClientOptions, type TokenRequest, type TranscriptBlock, type TranscriptFormat, type TranscriptMatch, TranscriptSegment, UpcomingOccurrence, UserId, type VideoEffect, WrapUpAnnouncement, type WrapUpStatus, absenceSentence, activeWrapUpSummary, activityAttention, announceMeeting, applyRoomEvent, assembleMeetingRecord, attendanceCsv, attendanceReport, attendanceTotals, attendeeKey, availableActivities, callInviteAction, callInviteText, callStateLabel, canModerate, canModerateParticipant, canTransition, captionSegment, changesPatch, clockPosition, computeStage, countLabel, createCallCenter, createCallInviteHandler, createDeviceManager, createInRoomClient, createLiveKitDriver, createMeetAi, createMeetRepository, createMeetStore, createMeetingInviteHandler, createMeetingRecordCache, createMeetingSession, createMemoryDeviceStorage, createRecordingController, createRoomEngine, createTokenClient, createWebDeviceStorage, createWebEffectsStorage, createWebRoomTokenStorage, displayNameFor, gridColumns, groupTranscript, guestRecordAccessExplanation, guestRecordAccessLabel, guestRecordAccessSetting, hasEnded, hostUserIds, invalidResponse, isGuestIdentity, isListenOnly, isNoteTaker, isRealName, isRoomEventTopic, learnName, learnNames, listenOnlyNotice, loadFollowUpDraft, loadGuestMeetingRecord, loadMeetingChat, loadMeetingRecord, loadMeetingRecordParts, mapConnectionState, mapQuality, meetingInviteAction, meetingLength, meetingLink, meetingPassHeaders, meetingPath, meetingSlug, meetingTopic, meetingWhen, mergeCaption, mergeRecord, microphoneNoticeCode, moveToRoom, nextTranslationBatch, normalizeDeviceError, normalizeMeetError, normalizeSpoken, noteTakerIdentity, noteTakerLabel, noteTakerParticipant, noteTakerStatus, notesDocument, observe as observeMeeting, observedDevice, observedPhase, observedQuality, orderParticipants, parseRoomToken, participantAttributes, participantSummary, performCollab, playableRecordingFileId, projectInvitee, projectLibraryRecording, projectNote, projectOccurrence, projectOverride, projectParticipant, projectRsvpInvitation, projectSearchHit, projectSegment, projectUpcoming, pushMeetingToGoogleCalendar, readServerRefusal, readableTranscript, recordingLabel, recordingNotice, recordingOffsetMs, rememberedMeetingPass, roleOf, roomTopic, rootAttributes, searchTranscript, sendFollowUp, setCaptionLanguage, setGuestRecordAccess, settingsPatch, snapshotParticipant, snippetRuns, staticObservation, summarizeMeetingRecordRestrictions, takeMoveRequest, takePanelRequest, transcriptDocument, unavailableFrom, uniqueAttendees, untranslatedLines, userTopic, wasRefused, wrapUpStatus };