@ai-matrx/meet 0.11.36 → 0.11.38

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,4 +1,4 @@
1
- import { P as ParticipantIdentity, k as AdmissionState, a1 as NoteTakerState, a as MeetParticipant, M as MeetingRecord, R as RoomName, d as CallInvite, e as ParticipantRole, a6 as ParticipantStanding, a3 as ObserversVisibleTo, S as StageLayout, L as LobbyEntry, aa as RecordingState, U as UserId, aE as RecordingSource, ae as TranscriptSegment, g as MeetingNote, W as WrapUpAnnouncement, j as CollabSnapshot, p as ConnectionQuality, h as MeetingId, b as MeetApi, f as CallMode, O as OrganizationId, m as CallId, n as CallState, Z as MeetingKind, a8 as RecordingPolicy, V as MeetingAttendee, a9 as RecordingRecord, a0 as MeetingSettings, X as MeetingChanges, a4 as OccurrenceOverride, $ as MeetingOccurrence, af as UpcomingOccurrence, Y as MeetingInvitee, I as InviteeInput, q as InviteeRole, ab as RsvpAnswer, ac as RsvpInvitation, c as MeetIdentity, C as CollabPanel } from './collab-XY6Xj1dG.cjs';
1
+ import { P as ParticipantIdentity, e as ParticipantRole, k as AdmissionState, a1 as NoteTakerState, a as MeetParticipant, M as MeetingRecord, R as RoomName, d as CallInvite, a6 as ParticipantStanding, a3 as ObserversVisibleTo, S as StageLayout, L as LobbyEntry, aa as RecordingState, U as UserId, aE as RecordingSource, ae as TranscriptSegment, g as MeetingNote, W as WrapUpAnnouncement, j as CollabSnapshot, p as ConnectionQuality, h as MeetingId, b as MeetApi, f as CallMode, O as OrganizationId, m as CallId, n as CallState, Z as MeetingKind, a8 as RecordingPolicy, V as MeetingAttendee, a9 as RecordingRecord, a0 as MeetingSettings, X as MeetingChanges, a4 as OccurrenceOverride, $ as MeetingOccurrence, af as UpcomingOccurrence, Y as MeetingInvitee, I as InviteeInput, q as InviteeRole, ab as RsvpAnswer, ac as RsvpInvitation, c as MeetIdentity, C as CollabPanel } from './collab-XY6Xj1dG.cjs';
2
2
  export { A as AccessTokenSource, l as CAPTION_LANGUAGES, o as CallablePerson, E as EMPTY_COLLAB, F as FILE_SESSION_PATH, J as JsonObject, r as JsonValue, s as MeetApiOptions, t as MeetApiRequest, u as MeetAppFocus, v as MeetBreakoutBroadcast, w as MeetBreakoutPlan, x as MeetBreakoutRoom, y as MeetCollabSettings, z as MeetFileMedia, B as MeetPoll, D as MeetPollOption, G as MeetPollState, H as MeetQuestion, K as MeetQuestionState, N as MeetStroke, Q as MeetingActivities, i as MeetingAppPanel, _ as MeetingNoteKind, a2 as ORGANIZATION_HEADER, a5 as OccurrenceState, a7 as ROLE_RANK, ad as RsvpState, T as TranscriptSource, ag as appPanelOf, ah as applyCollabPacket, ai as asCallId, aj as asMeetingId, ak as asOrganizationId, al as asParticipantIdentity, am as asRoomName, an as asUserId, ao as assignedRoom, ap as autoAssign, aq as breakoutRemainingMs, ar as captureHeldOf, as as collabFromState, at as createMeetApi, au as defaultCaptionLanguage, av as fileDownloadPath, aw as focusFromRow, ax as isGuest, ay as isHostRole, az as isLinkFollower, aA as isObserverRole, aB as loadMeetingActivities, aC as scheduleSettingsPatch, aD as withItem } from './collab-XY6Xj1dG.cjs';
3
3
  import { RealtimeManager } from '@ai-matrx/realtime';
4
4
  import { MessagingSupabaseClient, ActionHandler } from '@ai-matrx/messaging';
@@ -125,6 +125,39 @@ declare function learnNames(book: NameBook, entries: readonly {
125
125
  */
126
126
  declare function displayNameFor(book: NameBook, identity: ParticipantIdentity | string, preferred?: string | null | undefined): string;
127
127
 
128
+ /**
129
+ * S8 — LEAVE INTENTS (CORE-DESIGN §2.7 `/v1/meet/leave`, §4.2 `host_leave_prompt` · `end_confirm`,
130
+ * §11 `leave-or-end-choice`, `host-leave-assign`).
131
+ *
132
+ * What the host's Leave OFFERS is the meeting's behavior profile, resolved by the server and
133
+ * carried on the token response (`leave_policy`). What each choice DOES is the server's: the
134
+ * `/leave` door decides from the pass and the run row whether this person holds the run's host
135
+ * powers. The skin owns only the words.
136
+ */
137
+
138
+ type HostLeavePrompt = "leave_or_end" | "must_assign_or_end" | "leave_only";
139
+ interface LeavePolicy {
140
+ readonly hostLeavePrompt: HostLeavePrompt;
141
+ /** Ask "End for everyone?" once more before ending (Teams). */
142
+ readonly endConfirm: boolean;
143
+ }
144
+ /** The Meet profile's values — used only when the server sent none (an ad-hoc call). */
145
+ declare const DEFAULT_LEAVE_POLICY: LeavePolicy;
146
+ declare function leavePolicyFrom(raw: unknown): LeavePolicy;
147
+ /** One thing the Leave control can do. */
148
+ type LeaveChoice = "leave" | "assign_and_leave" | "end_for_all";
149
+ /**
150
+ * The choices Leave offers, in order. Not the host → just leave (no menu). The host:
151
+ * `leave_or_end` (Meet) → leave · end for everyone; `must_assign_or_end` (Zoom) → assign a new
152
+ * host (when someone else is here) · end for everyone, with a plain leave only when nobody is
153
+ * left to hand it to; `leave_only` (Teams) → leave · end meeting.
154
+ */
155
+ declare function leaveChoices(args: {
156
+ readonly policy: LeavePolicy;
157
+ readonly role: ParticipantRole | null;
158
+ readonly othersPresent: boolean;
159
+ }): readonly LeaveChoice[];
160
+
128
161
  /**
129
162
  * LISTEN-ONLY ATTENDANCE — being IN the room is never contingent on a device.
130
163
  *
@@ -717,6 +750,16 @@ interface MeetSnapshot {
717
750
  * (server-set, delivered on join). A local pin outranks it on this screen only.
718
751
  */
719
752
  readonly spotlight: ParticipantIdentity | null;
753
+ /**
754
+ * S8 REPLICATED ROOM STATE (CORE-DESIGN §2.6 RS), from the room's metadata — the server's
755
+ * truth, delivered on join and after every reconnect: who holds the run's host powers
756
+ * (`actingHost`), who is presenting, and how many people wait to be let in.
757
+ */
758
+ readonly actingHost: ParticipantIdentity | null;
759
+ readonly presenter: ParticipantIdentity | null;
760
+ readonly waitingCount: number;
761
+ /** S8: what the host's Leave offers in this meeting (from the token's `leave_policy`). */
762
+ readonly leavePolicy: LeavePolicy;
720
763
  /** The last thing a host did to THIS participant, in words. Dismissible. */
721
764
  readonly moderationNotice: ModerationNotice | null;
722
765
  /**
@@ -819,11 +862,6 @@ interface MeetStore {
819
862
  setParticipants(participants: readonly MeetParticipant[]): void;
820
863
  setSpeaking(identities: readonly ParticipantIdentity[]): void;
821
864
  setQuality(identity: ParticipantIdentity, quality: ConnectionQuality): void;
822
- /**
823
- * Raise or lower a hand. `at` is WHEN it went up, which is the hand queue's
824
- * order — first raised, first called on, the way Meet orders it.
825
- */
826
- setHand(identity: ParticipantIdentity, raised: boolean, at?: number): void;
827
865
  addChat(message: RoomChatMessage): void;
828
866
  /** The saved chat, read once per join. Merged with anything that arrived live. */
829
867
  loadChat(messages: readonly RoomChatMessage[]): void;
@@ -1562,18 +1600,6 @@ declare const ROOM_EVENTS: {
1562
1600
  readonly wrapUp: "matrx.meet.wrap_up";
1563
1601
  /** The meeting ended for everyone. Payload `{ meeting_id, ended_at, trigger }`. */
1564
1602
  readonly ended: "matrx.meet.ended";
1565
- /**
1566
- * A `meet_recordings` row changed state. Payload
1567
- * `{ meeting_id, recording: { id, state, started_by } }`.
1568
- *
1569
- * 🚨 THIS IS THE ONLY WAY A GUEST LEARNS A RECORDING IS RUNNING. PreJoin
1570
- * promises every joiner an indicator, and `anon` holds no SELECT grant on
1571
- * `meet_recordings` (MRI-A10 settled that widening it is forbidden), so
1572
- * without this packet the promise was a sentence with nothing behind it: on
1573
- * production 2026-09-09 the guest lane showed no indicator at all while the
1574
- * host recorded (MRI-C8).
1575
- */
1576
- readonly recording: "matrx.meet.recording";
1577
1603
  /**
1578
1604
  * A chat message to everyone was SAVED (Meet wave 2). Payload
1579
1605
  * `{ message: { id, meeting_id, sender_identity, sender_name, body, created_at } }`.
@@ -2030,7 +2056,6 @@ interface MeetRoomDriver {
2030
2056
  type RoomDriverFactory = (handlers: RoomDriverHandlers) => MeetRoomDriver | Promise<MeetRoomDriver>;
2031
2057
  /** Topics for the in-room control plane. One place, so senders cannot drift. */
2032
2058
  declare const DATA_TOPICS: {
2033
- readonly hand: "mx.hand";
2034
2059
  readonly reaction: "mx.reaction";
2035
2060
  readonly chat: "mx.chat";
2036
2061
  };
@@ -2207,6 +2232,14 @@ interface MeetingSession {
2207
2232
  withdraw(): Promise<void>;
2208
2233
  /** Ask again after a denial or an expired knock (only offered when allowed). */
2209
2234
  askAgain(): Promise<void>;
2235
+ /**
2236
+ * S8: the HOST's leave intents through `POST /v1/meet/leave` — end the meeting for everyone,
2237
+ * or hand the run's host powers to `assignTo` (a person key) before leaving. The server
2238
+ * decides from the pass whether this person holds the run's host powers.
2239
+ */
2240
+ hostLeave(intent: "end_for_all" | {
2241
+ readonly assignTo: string;
2242
+ }): Promise<void>;
2210
2243
  setLock(locked: boolean): Promise<MeetingRecord>;
2211
2244
  /** End it for everyone, through the server (MRI-A6). */
2212
2245
  endForEveryone(): Promise<EndMeetingResult>;
@@ -2540,7 +2573,6 @@ interface RoomEngine {
2540
2573
  setMicrophoneEnabled(enabled: boolean): Promise<void>;
2541
2574
  setCameraEnabled(enabled: boolean): Promise<void>;
2542
2575
  setScreenShareEnabled(enabled: boolean): Promise<void>;
2543
- raiseHand(raised: boolean): Promise<void>;
2544
2576
  react(emoji: string): Promise<void>;
2545
2577
  /**
2546
2578
  * A PRIVATE message to one person (Meet wave 2). Data plane only, addressed
@@ -2592,6 +2624,8 @@ interface EffectsStorage {
2592
2624
  * them out of THIS file and fails if the two sides drift.
2593
2625
  */
2594
2626
  declare const PARTICIPANT_ROLE_ATTRIBUTE = "matrx.participant.role";
2627
+ /** S8: the server's raise time of a hand (epoch ms), "" when down. Pinned with aidream's `room_state.ATTRIBUTE_HAND`. */
2628
+ declare const PARTICIPANT_HAND_ATTRIBUTE = "matrx.hand";
2595
2629
  declare const PARTICIPANT_CAN_RECORD_ATTRIBUTE = "matrx.participant.can_record";
2596
2630
  /** Standing travels beside the role (CORE-DESIGN §2.1). Pinned by aidream's tests too. */
2597
2631
  declare const PARTICIPANT_STANDING_ATTRIBUTE = "matrx.participant.standing";
@@ -2841,6 +2875,8 @@ interface RoomToken {
2841
2875
  * ladder. Absent from an older server → the knob defaults.
2842
2876
  */
2843
2877
  readonly connectionPolicy?: ConnectionPolicy | undefined;
2878
+ /** S8: what the host's Leave offers for this meeting (`host_leave_prompt`, `end_confirm`). */
2879
+ readonly leavePolicy?: LeavePolicy | undefined;
2844
2880
  }
2845
2881
 
2846
2882
  interface TokenClientOptions {
@@ -2996,6 +3032,12 @@ declare const MEET_ROUTES: {
2996
3032
  readonly state: "/api/v1/meet/state";
2997
3033
  /** S4: `withdraw` (stop waiting) or `leave` (close this tab); the pass may ride in the body. */
2998
3034
  readonly leave: "/api/v1/meet/leave";
3035
+ /**
3036
+ * S8: a host's browser just called an admission DOOR (`meet_admit` · `meet_deny` ·
3037
+ * `meet_undeny` · `meet_admit_all`). Payload-free: the server republishes the room's
3038
+ * replicated state (the People badge's waiting count) from the database truth.
3039
+ */
3040
+ readonly admissionChanged: "/api/v1/meet/admission/changed";
2999
3041
  /** S4: a pass holder (guests included) saw the recording notice, for this run. */
3000
3042
  readonly consent: "/api/v1/meet/consent";
3001
3043
  };
@@ -3548,13 +3590,15 @@ declare function createWebEffectsStorage(key?: string): EffectsStorage;
3548
3590
  */
3549
3591
 
3550
3592
  /** Every host power the server performs. One vocabulary with `services/meet/moderation.py`. */
3551
- type ModerationAction = "mute" | "stop_video" | "stop_screen" | "mute_all" | "ask_unmute" | "ask_all_unmute" | "spotlight" | "lower_hand" | "lower_all_hands" | "make_cohost" | "revoke_cohost" | "transfer_host" | "rename" | "remove" | "report";
3593
+ type ModerationAction = "mute" | "stop_video" | "stop_screen" | "mute_all" | "ask_unmute" | "ask_all_unmute" | "spotlight" | "present" | "raise_hand" | "lower_hand" | "lower_all_hands" | "make_cohost" | "revoke_cohost" | "transfer_host" | "rename" | "remove" | "report";
3552
3594
  declare const MODERATION_ACTIONS: readonly ModerationAction[];
3553
3595
  interface ModerationRequest {
3554
3596
  readonly action: ModerationAction;
3555
3597
  readonly identity?: ParticipantIdentity | null | undefined;
3556
3598
  readonly name?: string | undefined;
3557
3599
  readonly reason?: string | undefined;
3600
+ /** `present` only: true = I am presenting now, false = I stopped (S8). */
3601
+ readonly on?: boolean | undefined;
3558
3602
  }
3559
3603
  interface ModerationResult {
3560
3604
  readonly action: ModerationAction;
@@ -3876,4 +3920,4 @@ declare function participantAttributes(p: MeetParticipant): Record<string, strin
3876
3920
  /** The listen-only notice's contract code, from why the microphone is off. */
3877
3921
  declare function microphoneNoticeCode(track: LocalTrackState, permission?: PermissionReading): "mic-blocked" | "device-lost" | null;
3878
3922
 
3879
- export { ATTENDANCE_CSV_HEADER, AdmissionState, type AnnounceResult, type ApplyRoomEventArgs, type AskArgs, type AttendanceKind, type AttendanceRow, type AudioProcessing, type BrowserFamily, CALL_INVITE_KIND, CALL_INVITE_VERSION, CONSENT_NOTICE_ATTRIBUTE, type CallCenter, type CallCenterOptions, CallId, CallInvite, type CallInviteHandlerOptions, type CallInvitePayload, CallMode, type CallOutcomePhase, CallState, type CollabAction, CollabPanel, type CollabRequest, type CollabResult, type CollabRuntime, CollabSnapshot, type CollabStoreLike, type ConnectionPolicy, ConnectionQuality, type ConnectionRegion, type ConnectionSupervisor, type ConnectionSupervisorOptions, type CreateCallInviteInput, type CreateMeetingInput, DATA_TOPICS, DEFAULT_CONNECTION_POLICY, DEFAULT_EFFECTS, DEFAULT_PAGE_SIZE, type DataTopic, type DeviceKind, type DeviceManager, type DeviceManagerOptions, type DeviceNotice, type DeviceOffer, type DeviceSnapshot, type DeviceStorage, type DeviceUnavailableReason, type DriverConnectionState, type DriverParticipant, type DriverTrackKind, type DriverTranscription, END_MEETING_NOT_SERVED, type EffectsStorage, type EndMeetingResult, type ExitInput, type ExitPhase, type ExitResolution, type ExitServerWord, type FollowUpDraft, type FollowUpRecipient, type FollowUpSendResult, GUEST_RECORD_ACCESS_CHOICES, GUEST_RECORD_ACCESS_LEVELS, GUEST_RECORD_ACCESS_METADATA_KEY, GUEST_RECORD_NOT_SHARED, type Ghost, type GuestRecordAccess, type GuestRecordAccessResolution, type GuestRecordAccessSetting, IDLE_MEDIA, IDLE_MEDIA_REGION, IDLE_PHASES, IDLE_TRACK, type InRoomClient, type InRoomClientOptions, InviteeInput, InviteeRole, JOIN_REFUSAL_REASONS, type JoinRefusalReason, type JoinRequest, LISTEN_ONLY_NOTICE, LIVEKIT_BASE_DELAYS_MS, LIVE_PHASES, 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 MediaKind, type MediaPlatform, type MediaRegionState, type MediaSupervisor, type MediaSupervisorOptions, 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 MeetPatch, type MeetPhase, 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, NO_SHARE, type NameBook, type NetworkPort, type NoteTakerDispatch, type NoteTakerRefusal, NoteTakerState, type NoteTakerStatus, type ObserveInput, type ObservedConnection, type ObservedPhase, ObserversVisibleTo, OccurrenceOverride, OrganizationId, type OsFamily, PARTICIPANT_CAN_RECORD_ATTRIBUTE, PARTICIPANT_ROLE_ATTRIBUTE, PARTICIPANT_STANDING_ATTRIBUTE, ParticipantIdentity, ParticipantRole, ParticipantStanding, type PermissionReading, type PhaseEvent, type PhaseEventType, type PlatformDevice, REACTION_TTL_MS, REFUSED_ABSENCE, RESUME_WINDOW_MS, ROOM_EVENTS, ROOM_EVENT_PREFIX, RPCS, type ReconnectPolicyLike, type ReconnectPolicyOptions, type RecordingController, type RecordingControllerOptions, RecordingPolicy, RecordingRecord, RecordingState, type RepositoryOptions, type ResumeMarker, type ResumeStorage, type RoomChatMessage, type RoomDriverFactory, type RoomDriverHandlers, type RoomEngine, type RoomEngineOptions, type RoomEventOutcome, type RoomEventTopic, RoomName, type RoomReaction, type RoomToken, type RoomTokenStorage, RsvpAnswer, RsvpInvitation, type ScheduleMeetingInput, type ShareRegion, 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, WAITING_PHASES, WrapUpAnnouncement, type WrapUpStatus, absenceSentence, activeWrapUpSummary, activityAttention, admissionPhase, announceMeeting, applyRoomEvent, assembleMeetingRecord, attendanceCsv, attendanceReport, attendanceTotals, attendeeKey, autoRejoinDelayMs, availableActivities, callInviteAction, callInviteText, callStateLabel, canModerate, canModerateParticipant, canTransition, captionSegment, changesPatch, classifyDeviceFailure, clockPosition, computeStage, connectionPolicyFrom, countLabel, createCallCenter, createCallInviteHandler, createConnectionSupervisor, createDeviceManager, createInRoomClient, createLiveKitDriver, createMediaSupervisor, createMeetAi, createMeetRepository, createMeetStore, createMeetingInviteHandler, createMeetingRecordCache, createMeetingSession, createMemoryDeviceStorage, createReachabilityProbe, createReconnectPolicy, createRecordingController, createRoomEngine, createTokenClient, createWebDeviceStorage, createWebEffectsStorage, createWebNetworkPort, createWebResumeStorage, createWebRoomTokenStorage, detectBrowser, detectOs, deviceChipLabel, deviceFixSteps, deviceNoticeCode, deviceUnavailableReason, displayNameFor, gridColumns, groupTranscript, guestRecordAccessExplanation, guestRecordAccessLabel, guestRecordAccessSetting, hasEnded, hostUserIds, httpUrlOf, invalidResponse, isGuestIdentity, isJoinRefusalReason, isListenOnly, isLivePhase, isNoteTaker, isRealName, isRefusedPhase, isRoomEventTopic, isUnannouncedDeparture, isWaitingPhase, learnName, learnNames, listenOnlyNotice, loadFollowUpDraft, loadGuestMeetingRecord, loadMeetingChat, loadMeetingRecord, loadMeetingRecordParts, mapConnectionState, mapQuality, meetingInviteAction, meetingLength, meetingLink, meetingPassHeaders, meetingPath, meetingSlug, meetingTopic, meetingWhen, mergeCaption, mergeGhosts, mergeRecord, microphoneNoticeCode, moveToRoom, nextPhase, 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, reasonOf, recordingLabel, recordingNotice, recordingOffsetMs, refusalPhase, rememberedMeetingPass, resolveExit, roleOf, roomTopic, rootAttributes, searchTranscript, sendFollowUp, setCaptionLanguage, setGuestRecordAccess, settingsPatch, snapshotParticipant, snippetRuns, staticObservation, summarizeMeetingRecordRestrictions, takeMoveRequest, takePanelRequest, transcriptDocument, unavailableFrom, uniqueAttendees, untranslatedLines, userTopic, wasRefused, webMediaPlatform, wrapUpStatus };
3923
+ export { ATTENDANCE_CSV_HEADER, AdmissionState, type AnnounceResult, type ApplyRoomEventArgs, type AskArgs, type AttendanceKind, type AttendanceRow, type AudioProcessing, type BrowserFamily, CALL_INVITE_KIND, CALL_INVITE_VERSION, CONSENT_NOTICE_ATTRIBUTE, type CallCenter, type CallCenterOptions, CallId, CallInvite, type CallInviteHandlerOptions, type CallInvitePayload, CallMode, type CallOutcomePhase, CallState, type CollabAction, CollabPanel, type CollabRequest, type CollabResult, type CollabRuntime, CollabSnapshot, type CollabStoreLike, type ConnectionPolicy, ConnectionQuality, type ConnectionRegion, type ConnectionSupervisor, type ConnectionSupervisorOptions, type CreateCallInviteInput, type CreateMeetingInput, DATA_TOPICS, DEFAULT_CONNECTION_POLICY, DEFAULT_EFFECTS, DEFAULT_LEAVE_POLICY, DEFAULT_PAGE_SIZE, type DataTopic, type DeviceKind, type DeviceManager, type DeviceManagerOptions, type DeviceNotice, type DeviceOffer, type DeviceSnapshot, type DeviceStorage, type DeviceUnavailableReason, type DriverConnectionState, type DriverParticipant, type DriverTrackKind, type DriverTranscription, END_MEETING_NOT_SERVED, type EffectsStorage, type EndMeetingResult, type ExitInput, type ExitPhase, type ExitResolution, type ExitServerWord, type FollowUpDraft, type FollowUpRecipient, type FollowUpSendResult, GUEST_RECORD_ACCESS_CHOICES, GUEST_RECORD_ACCESS_LEVELS, GUEST_RECORD_ACCESS_METADATA_KEY, GUEST_RECORD_NOT_SHARED, type Ghost, type GuestRecordAccess, type GuestRecordAccessResolution, type GuestRecordAccessSetting, type HostLeavePrompt, IDLE_MEDIA, IDLE_MEDIA_REGION, IDLE_PHASES, IDLE_TRACK, type InRoomClient, type InRoomClientOptions, InviteeInput, InviteeRole, JOIN_REFUSAL_REASONS, type JoinRefusalReason, type JoinRequest, LISTEN_ONLY_NOTICE, LIVEKIT_BASE_DELAYS_MS, LIVE_PHASES, type LeaveChoice, type LeavePolicy, 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 MediaKind, type MediaPlatform, type MediaRegionState, type MediaSupervisor, type MediaSupervisorOptions, 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 MeetPatch, type MeetPhase, 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, NO_SHARE, type NameBook, type NetworkPort, type NoteTakerDispatch, type NoteTakerRefusal, NoteTakerState, type NoteTakerStatus, type ObserveInput, type ObservedConnection, type ObservedPhase, ObserversVisibleTo, OccurrenceOverride, OrganizationId, type OsFamily, PARTICIPANT_CAN_RECORD_ATTRIBUTE, PARTICIPANT_HAND_ATTRIBUTE, PARTICIPANT_ROLE_ATTRIBUTE, PARTICIPANT_STANDING_ATTRIBUTE, ParticipantIdentity, ParticipantRole, ParticipantStanding, type PermissionReading, type PhaseEvent, type PhaseEventType, type PlatformDevice, REACTION_TTL_MS, REFUSED_ABSENCE, RESUME_WINDOW_MS, ROOM_EVENTS, ROOM_EVENT_PREFIX, RPCS, type ReconnectPolicyLike, type ReconnectPolicyOptions, type RecordingController, type RecordingControllerOptions, RecordingPolicy, RecordingRecord, RecordingState, type RepositoryOptions, type ResumeMarker, type ResumeStorage, type RoomChatMessage, type RoomDriverFactory, type RoomDriverHandlers, type RoomEngine, type RoomEngineOptions, type RoomEventOutcome, type RoomEventTopic, RoomName, type RoomReaction, type RoomToken, type RoomTokenStorage, RsvpAnswer, RsvpInvitation, type ScheduleMeetingInput, type ShareRegion, 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, WAITING_PHASES, WrapUpAnnouncement, type WrapUpStatus, absenceSentence, activeWrapUpSummary, activityAttention, admissionPhase, announceMeeting, applyRoomEvent, assembleMeetingRecord, attendanceCsv, attendanceReport, attendanceTotals, attendeeKey, autoRejoinDelayMs, availableActivities, callInviteAction, callInviteText, callStateLabel, canModerate, canModerateParticipant, canTransition, captionSegment, changesPatch, classifyDeviceFailure, clockPosition, computeStage, connectionPolicyFrom, countLabel, createCallCenter, createCallInviteHandler, createConnectionSupervisor, createDeviceManager, createInRoomClient, createLiveKitDriver, createMediaSupervisor, createMeetAi, createMeetRepository, createMeetStore, createMeetingInviteHandler, createMeetingRecordCache, createMeetingSession, createMemoryDeviceStorage, createReachabilityProbe, createReconnectPolicy, createRecordingController, createRoomEngine, createTokenClient, createWebDeviceStorage, createWebEffectsStorage, createWebNetworkPort, createWebResumeStorage, createWebRoomTokenStorage, detectBrowser, detectOs, deviceChipLabel, deviceFixSteps, deviceNoticeCode, deviceUnavailableReason, displayNameFor, gridColumns, groupTranscript, guestRecordAccessExplanation, guestRecordAccessLabel, guestRecordAccessSetting, hasEnded, hostUserIds, httpUrlOf, invalidResponse, isGuestIdentity, isJoinRefusalReason, isListenOnly, isLivePhase, isNoteTaker, isRealName, isRefusedPhase, isRoomEventTopic, isUnannouncedDeparture, isWaitingPhase, learnName, learnNames, leaveChoices, leavePolicyFrom, listenOnlyNotice, loadFollowUpDraft, loadGuestMeetingRecord, loadMeetingChat, loadMeetingRecord, loadMeetingRecordParts, mapConnectionState, mapQuality, meetingInviteAction, meetingLength, meetingLink, meetingPassHeaders, meetingPath, meetingSlug, meetingTopic, meetingWhen, mergeCaption, mergeGhosts, mergeRecord, microphoneNoticeCode, moveToRoom, nextPhase, 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, reasonOf, recordingLabel, recordingNotice, recordingOffsetMs, refusalPhase, rememberedMeetingPass, resolveExit, roleOf, roomTopic, rootAttributes, searchTranscript, sendFollowUp, setCaptionLanguage, setGuestRecordAccess, settingsPatch, snapshotParticipant, snippetRuns, staticObservation, summarizeMeetingRecordRestrictions, takeMoveRequest, takePanelRequest, transcriptDocument, unavailableFrom, uniqueAttendees, untranslatedLines, userTopic, wasRefused, webMediaPlatform, wrapUpStatus };
package/dist/core.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { P as ParticipantIdentity, k as AdmissionState, a1 as NoteTakerState, a as MeetParticipant, M as MeetingRecord, R as RoomName, d as CallInvite, e as ParticipantRole, a6 as ParticipantStanding, a3 as ObserversVisibleTo, S as StageLayout, L as LobbyEntry, aa as RecordingState, U as UserId, aE as RecordingSource, ae as TranscriptSegment, g as MeetingNote, W as WrapUpAnnouncement, j as CollabSnapshot, p as ConnectionQuality, h as MeetingId, b as MeetApi, f as CallMode, O as OrganizationId, m as CallId, n as CallState, Z as MeetingKind, a8 as RecordingPolicy, V as MeetingAttendee, a9 as RecordingRecord, a0 as MeetingSettings, X as MeetingChanges, a4 as OccurrenceOverride, $ as MeetingOccurrence, af as UpcomingOccurrence, Y as MeetingInvitee, I as InviteeInput, q as InviteeRole, ab as RsvpAnswer, ac as RsvpInvitation, c as MeetIdentity, C as CollabPanel } from './collab-XY6Xj1dG.js';
1
+ import { P as ParticipantIdentity, e as ParticipantRole, k as AdmissionState, a1 as NoteTakerState, a as MeetParticipant, M as MeetingRecord, R as RoomName, d as CallInvite, a6 as ParticipantStanding, a3 as ObserversVisibleTo, S as StageLayout, L as LobbyEntry, aa as RecordingState, U as UserId, aE as RecordingSource, ae as TranscriptSegment, g as MeetingNote, W as WrapUpAnnouncement, j as CollabSnapshot, p as ConnectionQuality, h as MeetingId, b as MeetApi, f as CallMode, O as OrganizationId, m as CallId, n as CallState, Z as MeetingKind, a8 as RecordingPolicy, V as MeetingAttendee, a9 as RecordingRecord, a0 as MeetingSettings, X as MeetingChanges, a4 as OccurrenceOverride, $ as MeetingOccurrence, af as UpcomingOccurrence, Y as MeetingInvitee, I as InviteeInput, q as InviteeRole, ab as RsvpAnswer, ac as RsvpInvitation, c as MeetIdentity, C as CollabPanel } from './collab-XY6Xj1dG.js';
2
2
  export { A as AccessTokenSource, l as CAPTION_LANGUAGES, o as CallablePerson, E as EMPTY_COLLAB, F as FILE_SESSION_PATH, J as JsonObject, r as JsonValue, s as MeetApiOptions, t as MeetApiRequest, u as MeetAppFocus, v as MeetBreakoutBroadcast, w as MeetBreakoutPlan, x as MeetBreakoutRoom, y as MeetCollabSettings, z as MeetFileMedia, B as MeetPoll, D as MeetPollOption, G as MeetPollState, H as MeetQuestion, K as MeetQuestionState, N as MeetStroke, Q as MeetingActivities, i as MeetingAppPanel, _ as MeetingNoteKind, a2 as ORGANIZATION_HEADER, a5 as OccurrenceState, a7 as ROLE_RANK, ad as RsvpState, T as TranscriptSource, ag as appPanelOf, ah as applyCollabPacket, ai as asCallId, aj as asMeetingId, ak as asOrganizationId, al as asParticipantIdentity, am as asRoomName, an as asUserId, ao as assignedRoom, ap as autoAssign, aq as breakoutRemainingMs, ar as captureHeldOf, as as collabFromState, at as createMeetApi, au as defaultCaptionLanguage, av as fileDownloadPath, aw as focusFromRow, ax as isGuest, ay as isHostRole, az as isLinkFollower, aA as isObserverRole, aB as loadMeetingActivities, aC as scheduleSettingsPatch, aD as withItem } from './collab-XY6Xj1dG.js';
3
3
  import { RealtimeManager } from '@ai-matrx/realtime';
4
4
  import { MessagingSupabaseClient, ActionHandler } from '@ai-matrx/messaging';
@@ -125,6 +125,39 @@ declare function learnNames(book: NameBook, entries: readonly {
125
125
  */
126
126
  declare function displayNameFor(book: NameBook, identity: ParticipantIdentity | string, preferred?: string | null | undefined): string;
127
127
 
128
+ /**
129
+ * S8 — LEAVE INTENTS (CORE-DESIGN §2.7 `/v1/meet/leave`, §4.2 `host_leave_prompt` · `end_confirm`,
130
+ * §11 `leave-or-end-choice`, `host-leave-assign`).
131
+ *
132
+ * What the host's Leave OFFERS is the meeting's behavior profile, resolved by the server and
133
+ * carried on the token response (`leave_policy`). What each choice DOES is the server's: the
134
+ * `/leave` door decides from the pass and the run row whether this person holds the run's host
135
+ * powers. The skin owns only the words.
136
+ */
137
+
138
+ type HostLeavePrompt = "leave_or_end" | "must_assign_or_end" | "leave_only";
139
+ interface LeavePolicy {
140
+ readonly hostLeavePrompt: HostLeavePrompt;
141
+ /** Ask "End for everyone?" once more before ending (Teams). */
142
+ readonly endConfirm: boolean;
143
+ }
144
+ /** The Meet profile's values — used only when the server sent none (an ad-hoc call). */
145
+ declare const DEFAULT_LEAVE_POLICY: LeavePolicy;
146
+ declare function leavePolicyFrom(raw: unknown): LeavePolicy;
147
+ /** One thing the Leave control can do. */
148
+ type LeaveChoice = "leave" | "assign_and_leave" | "end_for_all";
149
+ /**
150
+ * The choices Leave offers, in order. Not the host → just leave (no menu). The host:
151
+ * `leave_or_end` (Meet) → leave · end for everyone; `must_assign_or_end` (Zoom) → assign a new
152
+ * host (when someone else is here) · end for everyone, with a plain leave only when nobody is
153
+ * left to hand it to; `leave_only` (Teams) → leave · end meeting.
154
+ */
155
+ declare function leaveChoices(args: {
156
+ readonly policy: LeavePolicy;
157
+ readonly role: ParticipantRole | null;
158
+ readonly othersPresent: boolean;
159
+ }): readonly LeaveChoice[];
160
+
128
161
  /**
129
162
  * LISTEN-ONLY ATTENDANCE — being IN the room is never contingent on a device.
130
163
  *
@@ -717,6 +750,16 @@ interface MeetSnapshot {
717
750
  * (server-set, delivered on join). A local pin outranks it on this screen only.
718
751
  */
719
752
  readonly spotlight: ParticipantIdentity | null;
753
+ /**
754
+ * S8 REPLICATED ROOM STATE (CORE-DESIGN §2.6 RS), from the room's metadata — the server's
755
+ * truth, delivered on join and after every reconnect: who holds the run's host powers
756
+ * (`actingHost`), who is presenting, and how many people wait to be let in.
757
+ */
758
+ readonly actingHost: ParticipantIdentity | null;
759
+ readonly presenter: ParticipantIdentity | null;
760
+ readonly waitingCount: number;
761
+ /** S8: what the host's Leave offers in this meeting (from the token's `leave_policy`). */
762
+ readonly leavePolicy: LeavePolicy;
720
763
  /** The last thing a host did to THIS participant, in words. Dismissible. */
721
764
  readonly moderationNotice: ModerationNotice | null;
722
765
  /**
@@ -819,11 +862,6 @@ interface MeetStore {
819
862
  setParticipants(participants: readonly MeetParticipant[]): void;
820
863
  setSpeaking(identities: readonly ParticipantIdentity[]): void;
821
864
  setQuality(identity: ParticipantIdentity, quality: ConnectionQuality): void;
822
- /**
823
- * Raise or lower a hand. `at` is WHEN it went up, which is the hand queue's
824
- * order — first raised, first called on, the way Meet orders it.
825
- */
826
- setHand(identity: ParticipantIdentity, raised: boolean, at?: number): void;
827
865
  addChat(message: RoomChatMessage): void;
828
866
  /** The saved chat, read once per join. Merged with anything that arrived live. */
829
867
  loadChat(messages: readonly RoomChatMessage[]): void;
@@ -1562,18 +1600,6 @@ declare const ROOM_EVENTS: {
1562
1600
  readonly wrapUp: "matrx.meet.wrap_up";
1563
1601
  /** The meeting ended for everyone. Payload `{ meeting_id, ended_at, trigger }`. */
1564
1602
  readonly ended: "matrx.meet.ended";
1565
- /**
1566
- * A `meet_recordings` row changed state. Payload
1567
- * `{ meeting_id, recording: { id, state, started_by } }`.
1568
- *
1569
- * 🚨 THIS IS THE ONLY WAY A GUEST LEARNS A RECORDING IS RUNNING. PreJoin
1570
- * promises every joiner an indicator, and `anon` holds no SELECT grant on
1571
- * `meet_recordings` (MRI-A10 settled that widening it is forbidden), so
1572
- * without this packet the promise was a sentence with nothing behind it: on
1573
- * production 2026-09-09 the guest lane showed no indicator at all while the
1574
- * host recorded (MRI-C8).
1575
- */
1576
- readonly recording: "matrx.meet.recording";
1577
1603
  /**
1578
1604
  * A chat message to everyone was SAVED (Meet wave 2). Payload
1579
1605
  * `{ message: { id, meeting_id, sender_identity, sender_name, body, created_at } }`.
@@ -2030,7 +2056,6 @@ interface MeetRoomDriver {
2030
2056
  type RoomDriverFactory = (handlers: RoomDriverHandlers) => MeetRoomDriver | Promise<MeetRoomDriver>;
2031
2057
  /** Topics for the in-room control plane. One place, so senders cannot drift. */
2032
2058
  declare const DATA_TOPICS: {
2033
- readonly hand: "mx.hand";
2034
2059
  readonly reaction: "mx.reaction";
2035
2060
  readonly chat: "mx.chat";
2036
2061
  };
@@ -2207,6 +2232,14 @@ interface MeetingSession {
2207
2232
  withdraw(): Promise<void>;
2208
2233
  /** Ask again after a denial or an expired knock (only offered when allowed). */
2209
2234
  askAgain(): Promise<void>;
2235
+ /**
2236
+ * S8: the HOST's leave intents through `POST /v1/meet/leave` — end the meeting for everyone,
2237
+ * or hand the run's host powers to `assignTo` (a person key) before leaving. The server
2238
+ * decides from the pass whether this person holds the run's host powers.
2239
+ */
2240
+ hostLeave(intent: "end_for_all" | {
2241
+ readonly assignTo: string;
2242
+ }): Promise<void>;
2210
2243
  setLock(locked: boolean): Promise<MeetingRecord>;
2211
2244
  /** End it for everyone, through the server (MRI-A6). */
2212
2245
  endForEveryone(): Promise<EndMeetingResult>;
@@ -2540,7 +2573,6 @@ interface RoomEngine {
2540
2573
  setMicrophoneEnabled(enabled: boolean): Promise<void>;
2541
2574
  setCameraEnabled(enabled: boolean): Promise<void>;
2542
2575
  setScreenShareEnabled(enabled: boolean): Promise<void>;
2543
- raiseHand(raised: boolean): Promise<void>;
2544
2576
  react(emoji: string): Promise<void>;
2545
2577
  /**
2546
2578
  * A PRIVATE message to one person (Meet wave 2). Data plane only, addressed
@@ -2592,6 +2624,8 @@ interface EffectsStorage {
2592
2624
  * them out of THIS file and fails if the two sides drift.
2593
2625
  */
2594
2626
  declare const PARTICIPANT_ROLE_ATTRIBUTE = "matrx.participant.role";
2627
+ /** S8: the server's raise time of a hand (epoch ms), "" when down. Pinned with aidream's `room_state.ATTRIBUTE_HAND`. */
2628
+ declare const PARTICIPANT_HAND_ATTRIBUTE = "matrx.hand";
2595
2629
  declare const PARTICIPANT_CAN_RECORD_ATTRIBUTE = "matrx.participant.can_record";
2596
2630
  /** Standing travels beside the role (CORE-DESIGN §2.1). Pinned by aidream's tests too. */
2597
2631
  declare const PARTICIPANT_STANDING_ATTRIBUTE = "matrx.participant.standing";
@@ -2841,6 +2875,8 @@ interface RoomToken {
2841
2875
  * ladder. Absent from an older server → the knob defaults.
2842
2876
  */
2843
2877
  readonly connectionPolicy?: ConnectionPolicy | undefined;
2878
+ /** S8: what the host's Leave offers for this meeting (`host_leave_prompt`, `end_confirm`). */
2879
+ readonly leavePolicy?: LeavePolicy | undefined;
2844
2880
  }
2845
2881
 
2846
2882
  interface TokenClientOptions {
@@ -2996,6 +3032,12 @@ declare const MEET_ROUTES: {
2996
3032
  readonly state: "/api/v1/meet/state";
2997
3033
  /** S4: `withdraw` (stop waiting) or `leave` (close this tab); the pass may ride in the body. */
2998
3034
  readonly leave: "/api/v1/meet/leave";
3035
+ /**
3036
+ * S8: a host's browser just called an admission DOOR (`meet_admit` · `meet_deny` ·
3037
+ * `meet_undeny` · `meet_admit_all`). Payload-free: the server republishes the room's
3038
+ * replicated state (the People badge's waiting count) from the database truth.
3039
+ */
3040
+ readonly admissionChanged: "/api/v1/meet/admission/changed";
2999
3041
  /** S4: a pass holder (guests included) saw the recording notice, for this run. */
3000
3042
  readonly consent: "/api/v1/meet/consent";
3001
3043
  };
@@ -3548,13 +3590,15 @@ declare function createWebEffectsStorage(key?: string): EffectsStorage;
3548
3590
  */
3549
3591
 
3550
3592
  /** Every host power the server performs. One vocabulary with `services/meet/moderation.py`. */
3551
- type ModerationAction = "mute" | "stop_video" | "stop_screen" | "mute_all" | "ask_unmute" | "ask_all_unmute" | "spotlight" | "lower_hand" | "lower_all_hands" | "make_cohost" | "revoke_cohost" | "transfer_host" | "rename" | "remove" | "report";
3593
+ type ModerationAction = "mute" | "stop_video" | "stop_screen" | "mute_all" | "ask_unmute" | "ask_all_unmute" | "spotlight" | "present" | "raise_hand" | "lower_hand" | "lower_all_hands" | "make_cohost" | "revoke_cohost" | "transfer_host" | "rename" | "remove" | "report";
3552
3594
  declare const MODERATION_ACTIONS: readonly ModerationAction[];
3553
3595
  interface ModerationRequest {
3554
3596
  readonly action: ModerationAction;
3555
3597
  readonly identity?: ParticipantIdentity | null | undefined;
3556
3598
  readonly name?: string | undefined;
3557
3599
  readonly reason?: string | undefined;
3600
+ /** `present` only: true = I am presenting now, false = I stopped (S8). */
3601
+ readonly on?: boolean | undefined;
3558
3602
  }
3559
3603
  interface ModerationResult {
3560
3604
  readonly action: ModerationAction;
@@ -3876,4 +3920,4 @@ declare function participantAttributes(p: MeetParticipant): Record<string, strin
3876
3920
  /** The listen-only notice's contract code, from why the microphone is off. */
3877
3921
  declare function microphoneNoticeCode(track: LocalTrackState, permission?: PermissionReading): "mic-blocked" | "device-lost" | null;
3878
3922
 
3879
- export { ATTENDANCE_CSV_HEADER, AdmissionState, type AnnounceResult, type ApplyRoomEventArgs, type AskArgs, type AttendanceKind, type AttendanceRow, type AudioProcessing, type BrowserFamily, CALL_INVITE_KIND, CALL_INVITE_VERSION, CONSENT_NOTICE_ATTRIBUTE, type CallCenter, type CallCenterOptions, CallId, CallInvite, type CallInviteHandlerOptions, type CallInvitePayload, CallMode, type CallOutcomePhase, CallState, type CollabAction, CollabPanel, type CollabRequest, type CollabResult, type CollabRuntime, CollabSnapshot, type CollabStoreLike, type ConnectionPolicy, ConnectionQuality, type ConnectionRegion, type ConnectionSupervisor, type ConnectionSupervisorOptions, type CreateCallInviteInput, type CreateMeetingInput, DATA_TOPICS, DEFAULT_CONNECTION_POLICY, DEFAULT_EFFECTS, DEFAULT_PAGE_SIZE, type DataTopic, type DeviceKind, type DeviceManager, type DeviceManagerOptions, type DeviceNotice, type DeviceOffer, type DeviceSnapshot, type DeviceStorage, type DeviceUnavailableReason, type DriverConnectionState, type DriverParticipant, type DriverTrackKind, type DriverTranscription, END_MEETING_NOT_SERVED, type EffectsStorage, type EndMeetingResult, type ExitInput, type ExitPhase, type ExitResolution, type ExitServerWord, type FollowUpDraft, type FollowUpRecipient, type FollowUpSendResult, GUEST_RECORD_ACCESS_CHOICES, GUEST_RECORD_ACCESS_LEVELS, GUEST_RECORD_ACCESS_METADATA_KEY, GUEST_RECORD_NOT_SHARED, type Ghost, type GuestRecordAccess, type GuestRecordAccessResolution, type GuestRecordAccessSetting, IDLE_MEDIA, IDLE_MEDIA_REGION, IDLE_PHASES, IDLE_TRACK, type InRoomClient, type InRoomClientOptions, InviteeInput, InviteeRole, JOIN_REFUSAL_REASONS, type JoinRefusalReason, type JoinRequest, LISTEN_ONLY_NOTICE, LIVEKIT_BASE_DELAYS_MS, LIVE_PHASES, 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 MediaKind, type MediaPlatform, type MediaRegionState, type MediaSupervisor, type MediaSupervisorOptions, 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 MeetPatch, type MeetPhase, 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, NO_SHARE, type NameBook, type NetworkPort, type NoteTakerDispatch, type NoteTakerRefusal, NoteTakerState, type NoteTakerStatus, type ObserveInput, type ObservedConnection, type ObservedPhase, ObserversVisibleTo, OccurrenceOverride, OrganizationId, type OsFamily, PARTICIPANT_CAN_RECORD_ATTRIBUTE, PARTICIPANT_ROLE_ATTRIBUTE, PARTICIPANT_STANDING_ATTRIBUTE, ParticipantIdentity, ParticipantRole, ParticipantStanding, type PermissionReading, type PhaseEvent, type PhaseEventType, type PlatformDevice, REACTION_TTL_MS, REFUSED_ABSENCE, RESUME_WINDOW_MS, ROOM_EVENTS, ROOM_EVENT_PREFIX, RPCS, type ReconnectPolicyLike, type ReconnectPolicyOptions, type RecordingController, type RecordingControllerOptions, RecordingPolicy, RecordingRecord, RecordingState, type RepositoryOptions, type ResumeMarker, type ResumeStorage, type RoomChatMessage, type RoomDriverFactory, type RoomDriverHandlers, type RoomEngine, type RoomEngineOptions, type RoomEventOutcome, type RoomEventTopic, RoomName, type RoomReaction, type RoomToken, type RoomTokenStorage, RsvpAnswer, RsvpInvitation, type ScheduleMeetingInput, type ShareRegion, 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, WAITING_PHASES, WrapUpAnnouncement, type WrapUpStatus, absenceSentence, activeWrapUpSummary, activityAttention, admissionPhase, announceMeeting, applyRoomEvent, assembleMeetingRecord, attendanceCsv, attendanceReport, attendanceTotals, attendeeKey, autoRejoinDelayMs, availableActivities, callInviteAction, callInviteText, callStateLabel, canModerate, canModerateParticipant, canTransition, captionSegment, changesPatch, classifyDeviceFailure, clockPosition, computeStage, connectionPolicyFrom, countLabel, createCallCenter, createCallInviteHandler, createConnectionSupervisor, createDeviceManager, createInRoomClient, createLiveKitDriver, createMediaSupervisor, createMeetAi, createMeetRepository, createMeetStore, createMeetingInviteHandler, createMeetingRecordCache, createMeetingSession, createMemoryDeviceStorage, createReachabilityProbe, createReconnectPolicy, createRecordingController, createRoomEngine, createTokenClient, createWebDeviceStorage, createWebEffectsStorage, createWebNetworkPort, createWebResumeStorage, createWebRoomTokenStorage, detectBrowser, detectOs, deviceChipLabel, deviceFixSteps, deviceNoticeCode, deviceUnavailableReason, displayNameFor, gridColumns, groupTranscript, guestRecordAccessExplanation, guestRecordAccessLabel, guestRecordAccessSetting, hasEnded, hostUserIds, httpUrlOf, invalidResponse, isGuestIdentity, isJoinRefusalReason, isListenOnly, isLivePhase, isNoteTaker, isRealName, isRefusedPhase, isRoomEventTopic, isUnannouncedDeparture, isWaitingPhase, learnName, learnNames, listenOnlyNotice, loadFollowUpDraft, loadGuestMeetingRecord, loadMeetingChat, loadMeetingRecord, loadMeetingRecordParts, mapConnectionState, mapQuality, meetingInviteAction, meetingLength, meetingLink, meetingPassHeaders, meetingPath, meetingSlug, meetingTopic, meetingWhen, mergeCaption, mergeGhosts, mergeRecord, microphoneNoticeCode, moveToRoom, nextPhase, 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, reasonOf, recordingLabel, recordingNotice, recordingOffsetMs, refusalPhase, rememberedMeetingPass, resolveExit, roleOf, roomTopic, rootAttributes, searchTranscript, sendFollowUp, setCaptionLanguage, setGuestRecordAccess, settingsPatch, snapshotParticipant, snippetRuns, staticObservation, summarizeMeetingRecordRestrictions, takeMoveRequest, takePanelRequest, transcriptDocument, unavailableFrom, uniqueAttendees, untranslatedLines, userTopic, wasRefused, webMediaPlatform, wrapUpStatus };
3923
+ export { ATTENDANCE_CSV_HEADER, AdmissionState, type AnnounceResult, type ApplyRoomEventArgs, type AskArgs, type AttendanceKind, type AttendanceRow, type AudioProcessing, type BrowserFamily, CALL_INVITE_KIND, CALL_INVITE_VERSION, CONSENT_NOTICE_ATTRIBUTE, type CallCenter, type CallCenterOptions, CallId, CallInvite, type CallInviteHandlerOptions, type CallInvitePayload, CallMode, type CallOutcomePhase, CallState, type CollabAction, CollabPanel, type CollabRequest, type CollabResult, type CollabRuntime, CollabSnapshot, type CollabStoreLike, type ConnectionPolicy, ConnectionQuality, type ConnectionRegion, type ConnectionSupervisor, type ConnectionSupervisorOptions, type CreateCallInviteInput, type CreateMeetingInput, DATA_TOPICS, DEFAULT_CONNECTION_POLICY, DEFAULT_EFFECTS, DEFAULT_LEAVE_POLICY, DEFAULT_PAGE_SIZE, type DataTopic, type DeviceKind, type DeviceManager, type DeviceManagerOptions, type DeviceNotice, type DeviceOffer, type DeviceSnapshot, type DeviceStorage, type DeviceUnavailableReason, type DriverConnectionState, type DriverParticipant, type DriverTrackKind, type DriverTranscription, END_MEETING_NOT_SERVED, type EffectsStorage, type EndMeetingResult, type ExitInput, type ExitPhase, type ExitResolution, type ExitServerWord, type FollowUpDraft, type FollowUpRecipient, type FollowUpSendResult, GUEST_RECORD_ACCESS_CHOICES, GUEST_RECORD_ACCESS_LEVELS, GUEST_RECORD_ACCESS_METADATA_KEY, GUEST_RECORD_NOT_SHARED, type Ghost, type GuestRecordAccess, type GuestRecordAccessResolution, type GuestRecordAccessSetting, type HostLeavePrompt, IDLE_MEDIA, IDLE_MEDIA_REGION, IDLE_PHASES, IDLE_TRACK, type InRoomClient, type InRoomClientOptions, InviteeInput, InviteeRole, JOIN_REFUSAL_REASONS, type JoinRefusalReason, type JoinRequest, LISTEN_ONLY_NOTICE, LIVEKIT_BASE_DELAYS_MS, LIVE_PHASES, type LeaveChoice, type LeavePolicy, 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 MediaKind, type MediaPlatform, type MediaRegionState, type MediaSupervisor, type MediaSupervisorOptions, 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 MeetPatch, type MeetPhase, 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, NO_SHARE, type NameBook, type NetworkPort, type NoteTakerDispatch, type NoteTakerRefusal, NoteTakerState, type NoteTakerStatus, type ObserveInput, type ObservedConnection, type ObservedPhase, ObserversVisibleTo, OccurrenceOverride, OrganizationId, type OsFamily, PARTICIPANT_CAN_RECORD_ATTRIBUTE, PARTICIPANT_HAND_ATTRIBUTE, PARTICIPANT_ROLE_ATTRIBUTE, PARTICIPANT_STANDING_ATTRIBUTE, ParticipantIdentity, ParticipantRole, ParticipantStanding, type PermissionReading, type PhaseEvent, type PhaseEventType, type PlatformDevice, REACTION_TTL_MS, REFUSED_ABSENCE, RESUME_WINDOW_MS, ROOM_EVENTS, ROOM_EVENT_PREFIX, RPCS, type ReconnectPolicyLike, type ReconnectPolicyOptions, type RecordingController, type RecordingControllerOptions, RecordingPolicy, RecordingRecord, RecordingState, type RepositoryOptions, type ResumeMarker, type ResumeStorage, type RoomChatMessage, type RoomDriverFactory, type RoomDriverHandlers, type RoomEngine, type RoomEngineOptions, type RoomEventOutcome, type RoomEventTopic, RoomName, type RoomReaction, type RoomToken, type RoomTokenStorage, RsvpAnswer, RsvpInvitation, type ScheduleMeetingInput, type ShareRegion, 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, WAITING_PHASES, WrapUpAnnouncement, type WrapUpStatus, absenceSentence, activeWrapUpSummary, activityAttention, admissionPhase, announceMeeting, applyRoomEvent, assembleMeetingRecord, attendanceCsv, attendanceReport, attendanceTotals, attendeeKey, autoRejoinDelayMs, availableActivities, callInviteAction, callInviteText, callStateLabel, canModerate, canModerateParticipant, canTransition, captionSegment, changesPatch, classifyDeviceFailure, clockPosition, computeStage, connectionPolicyFrom, countLabel, createCallCenter, createCallInviteHandler, createConnectionSupervisor, createDeviceManager, createInRoomClient, createLiveKitDriver, createMediaSupervisor, createMeetAi, createMeetRepository, createMeetStore, createMeetingInviteHandler, createMeetingRecordCache, createMeetingSession, createMemoryDeviceStorage, createReachabilityProbe, createReconnectPolicy, createRecordingController, createRoomEngine, createTokenClient, createWebDeviceStorage, createWebEffectsStorage, createWebNetworkPort, createWebResumeStorage, createWebRoomTokenStorage, detectBrowser, detectOs, deviceChipLabel, deviceFixSteps, deviceNoticeCode, deviceUnavailableReason, displayNameFor, gridColumns, groupTranscript, guestRecordAccessExplanation, guestRecordAccessLabel, guestRecordAccessSetting, hasEnded, hostUserIds, httpUrlOf, invalidResponse, isGuestIdentity, isJoinRefusalReason, isListenOnly, isLivePhase, isNoteTaker, isRealName, isRefusedPhase, isRoomEventTopic, isUnannouncedDeparture, isWaitingPhase, learnName, learnNames, leaveChoices, leavePolicyFrom, listenOnlyNotice, loadFollowUpDraft, loadGuestMeetingRecord, loadMeetingChat, loadMeetingRecord, loadMeetingRecordParts, mapConnectionState, mapQuality, meetingInviteAction, meetingLength, meetingLink, meetingPassHeaders, meetingPath, meetingSlug, meetingTopic, meetingWhen, mergeCaption, mergeGhosts, mergeRecord, microphoneNoticeCode, moveToRoom, nextPhase, 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, reasonOf, recordingLabel, recordingNotice, recordingOffsetMs, refusalPhase, rememberedMeetingPass, resolveExit, roleOf, roomTopic, rootAttributes, searchTranscript, sendFollowUp, setCaptionLanguage, setGuestRecordAccess, settingsPatch, snapshotParticipant, snippetRuns, staticObservation, summarizeMeetingRecordRestrictions, takeMoveRequest, takePanelRequest, transcriptDocument, unavailableFrom, uniqueAttendees, untranslatedLines, userTopic, wasRefused, webMediaPlatform, wrapUpStatus };