@ai-matrx/meet 0.11.45 → 0.11.47
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/CHANGELOG.md +12 -0
- package/dist/core.cjs +14 -4
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +9 -6
- package/dist/core.d.ts +9 -6
- package/dist/core.js +14 -4
- package/dist/core.js.map +1 -1
- package/dist/index.cjs +14 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +14 -4
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +36 -8
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +36 -8
- package/dist/react.js.map +1 -1
- package/dist/skins/meet.cjs +26 -6
- package/dist/skins/meet.cjs.map +1 -1
- package/dist/skins/meet.js +26 -6
- package/dist/skins/meet.js.map +1 -1
- package/package.json +4 -4
package/dist/core.d.cts
CHANGED
|
@@ -859,6 +859,10 @@ interface MeetSnapshot {
|
|
|
859
859
|
* Rendered verbatim; never replaced by a spinner or a house sentence.
|
|
860
860
|
*/
|
|
861
861
|
readonly noteTakerRefusal: NoteTakerRefusal | null;
|
|
862
|
+
/** `captions-toggle`: THIS viewer wants captions. Local to the viewer; never sent to the room. */
|
|
863
|
+
readonly captionsOn: boolean;
|
|
864
|
+
/** Why asking for captions failed, in the server's words (`captions-unavailable`). */
|
|
865
|
+
readonly captionsRefusal: NoteTakerRefusal | null;
|
|
862
866
|
/**
|
|
863
867
|
* What the LOCAL participant is actually publishing, and why not when it is
|
|
864
868
|
* not. Attendance never depends on it (see `attendance.ts`): a refused
|
|
@@ -870,10 +874,6 @@ interface MeetSnapshot {
|
|
|
870
874
|
* last device change and an offered new device. Written only by `media-supervisor.ts`.
|
|
871
875
|
*/
|
|
872
876
|
readonly mediaRegion: MediaRegionState;
|
|
873
|
-
/** `captions-toggle`: THIS viewer wants captions. Local to the viewer; never sent to the room. */
|
|
874
|
-
readonly captionsOn: boolean;
|
|
875
|
-
/** Why asking for captions failed, in the server's words (`captions-unavailable`). */
|
|
876
|
-
readonly captionsRefusal: NoteTakerRefusal | null;
|
|
877
877
|
/** The last failure, with its remedy. Never null-and-hoping. */
|
|
878
878
|
readonly failure: {
|
|
879
879
|
readonly message: string;
|
|
@@ -2298,6 +2298,8 @@ interface MeetingSession {
|
|
|
2298
2298
|
stopWaiting(): void;
|
|
2299
2299
|
/** One state read now (idempotent while one is in flight). */
|
|
2300
2300
|
readState(): Promise<void>;
|
|
2301
|
+
/** One read of the meeting's rules now (chat mode, attendee lock, time limit); resolves once they are on the store. */
|
|
2302
|
+
readLivePolicy(): Promise<void>;
|
|
2301
2303
|
/**
|
|
2302
2304
|
* §3.4 ER: what the server recorded for THIS connection's exit, and the run's phase. null =
|
|
2303
2305
|
* the read failed (offline / unreachable); undefined = no meeting or no pass to ask with.
|
|
@@ -3078,10 +3080,10 @@ declare const MEET_ROUTES: {
|
|
|
3078
3080
|
readonly recordingStop: "/api/v1/meet/recording/stop";
|
|
3079
3081
|
readonly noteTakerStart: "/api/v1/meet/agent/start";
|
|
3080
3082
|
readonly noteTakerStop: "/api/v1/meet/agent/stop";
|
|
3081
|
-
/** In-meeting Q&A. Streams NDJSON; body is `{meeting_id, question}` only. */
|
|
3082
|
-
readonly intelligenceAsk: "/api/v1/meet/intelligence/ask";
|
|
3083
3083
|
/** Anyone in the meeting (guests with the room pass included) asks for captions for themselves. */
|
|
3084
3084
|
readonly noteTakerCaptions: "/api/v1/meet/agent/captions";
|
|
3085
|
+
/** In-meeting Q&A. Streams NDJSON; body is `{meeting_id, question}` only. */
|
|
3086
|
+
readonly intelligenceAsk: "/api/v1/meet/intelligence/ask";
|
|
3085
3087
|
/** A host ends the meeting for everyone. Served by MRI-A6. */
|
|
3086
3088
|
readonly meetingEnd: "/api/v1/meet/end";
|
|
3087
3089
|
/**
|
|
@@ -3908,6 +3910,7 @@ declare function activityAttention(collab: CollabSnapshot | null, isHost: boolea
|
|
|
3908
3910
|
interface CollabRuntime {
|
|
3909
3911
|
readonly inRoom: {
|
|
3910
3912
|
collab(request: CollabRequest): Promise<CollabResult>;
|
|
3913
|
+
loadCollab?(): Promise<void>;
|
|
3911
3914
|
};
|
|
3912
3915
|
readonly engine: {
|
|
3913
3916
|
moveToBreakout(roomId: string | null): Promise<unknown>;
|
package/dist/core.d.ts
CHANGED
|
@@ -859,6 +859,10 @@ interface MeetSnapshot {
|
|
|
859
859
|
* Rendered verbatim; never replaced by a spinner or a house sentence.
|
|
860
860
|
*/
|
|
861
861
|
readonly noteTakerRefusal: NoteTakerRefusal | null;
|
|
862
|
+
/** `captions-toggle`: THIS viewer wants captions. Local to the viewer; never sent to the room. */
|
|
863
|
+
readonly captionsOn: boolean;
|
|
864
|
+
/** Why asking for captions failed, in the server's words (`captions-unavailable`). */
|
|
865
|
+
readonly captionsRefusal: NoteTakerRefusal | null;
|
|
862
866
|
/**
|
|
863
867
|
* What the LOCAL participant is actually publishing, and why not when it is
|
|
864
868
|
* not. Attendance never depends on it (see `attendance.ts`): a refused
|
|
@@ -870,10 +874,6 @@ interface MeetSnapshot {
|
|
|
870
874
|
* last device change and an offered new device. Written only by `media-supervisor.ts`.
|
|
871
875
|
*/
|
|
872
876
|
readonly mediaRegion: MediaRegionState;
|
|
873
|
-
/** `captions-toggle`: THIS viewer wants captions. Local to the viewer; never sent to the room. */
|
|
874
|
-
readonly captionsOn: boolean;
|
|
875
|
-
/** Why asking for captions failed, in the server's words (`captions-unavailable`). */
|
|
876
|
-
readonly captionsRefusal: NoteTakerRefusal | null;
|
|
877
877
|
/** The last failure, with its remedy. Never null-and-hoping. */
|
|
878
878
|
readonly failure: {
|
|
879
879
|
readonly message: string;
|
|
@@ -2298,6 +2298,8 @@ interface MeetingSession {
|
|
|
2298
2298
|
stopWaiting(): void;
|
|
2299
2299
|
/** One state read now (idempotent while one is in flight). */
|
|
2300
2300
|
readState(): Promise<void>;
|
|
2301
|
+
/** One read of the meeting's rules now (chat mode, attendee lock, time limit); resolves once they are on the store. */
|
|
2302
|
+
readLivePolicy(): Promise<void>;
|
|
2301
2303
|
/**
|
|
2302
2304
|
* §3.4 ER: what the server recorded for THIS connection's exit, and the run's phase. null =
|
|
2303
2305
|
* the read failed (offline / unreachable); undefined = no meeting or no pass to ask with.
|
|
@@ -3078,10 +3080,10 @@ declare const MEET_ROUTES: {
|
|
|
3078
3080
|
readonly recordingStop: "/api/v1/meet/recording/stop";
|
|
3079
3081
|
readonly noteTakerStart: "/api/v1/meet/agent/start";
|
|
3080
3082
|
readonly noteTakerStop: "/api/v1/meet/agent/stop";
|
|
3081
|
-
/** In-meeting Q&A. Streams NDJSON; body is `{meeting_id, question}` only. */
|
|
3082
|
-
readonly intelligenceAsk: "/api/v1/meet/intelligence/ask";
|
|
3083
3083
|
/** Anyone in the meeting (guests with the room pass included) asks for captions for themselves. */
|
|
3084
3084
|
readonly noteTakerCaptions: "/api/v1/meet/agent/captions";
|
|
3085
|
+
/** In-meeting Q&A. Streams NDJSON; body is `{meeting_id, question}` only. */
|
|
3086
|
+
readonly intelligenceAsk: "/api/v1/meet/intelligence/ask";
|
|
3085
3087
|
/** A host ends the meeting for everyone. Served by MRI-A6. */
|
|
3086
3088
|
readonly meetingEnd: "/api/v1/meet/end";
|
|
3087
3089
|
/**
|
|
@@ -3908,6 +3910,7 @@ declare function activityAttention(collab: CollabSnapshot | null, isHost: boolea
|
|
|
3908
3910
|
interface CollabRuntime {
|
|
3909
3911
|
readonly inRoom: {
|
|
3910
3912
|
collab(request: CollabRequest): Promise<CollabResult>;
|
|
3913
|
+
loadCollab?(): Promise<void>;
|
|
3911
3914
|
};
|
|
3912
3915
|
readonly engine: {
|
|
3913
3916
|
moveToBreakout(roomId: string | null): Promise<unknown>;
|
package/dist/core.js
CHANGED
|
@@ -635,10 +635,10 @@ var MEET_ROUTES = {
|
|
|
635
635
|
recordingStop: "/api/v1/meet/recording/stop",
|
|
636
636
|
noteTakerStart: "/api/v1/meet/agent/start",
|
|
637
637
|
noteTakerStop: "/api/v1/meet/agent/stop",
|
|
638
|
-
/** In-meeting Q&A. Streams NDJSON; body is `{meeting_id, question}` only. */
|
|
639
|
-
intelligenceAsk: "/api/v1/meet/intelligence/ask",
|
|
640
638
|
/** Anyone in the meeting (guests with the room pass included) asks for captions for themselves. */
|
|
641
639
|
noteTakerCaptions: "/api/v1/meet/agent/captions",
|
|
640
|
+
/** In-meeting Q&A. Streams NDJSON; body is `{meeting_id, question}` only. */
|
|
641
|
+
intelligenceAsk: "/api/v1/meet/intelligence/ask",
|
|
642
642
|
/** A host ends the meeting for everyone. Served by MRI-A6. */
|
|
643
643
|
meetingEnd: "/api/v1/meet/end",
|
|
644
644
|
/**
|
|
@@ -1308,6 +1308,7 @@ var STATES = [
|
|
|
1308
1308
|
"ended"
|
|
1309
1309
|
];
|
|
1310
1310
|
function readState(value) {
|
|
1311
|
+
if (value === "dispatching") return "joining";
|
|
1311
1312
|
return typeof value === "string" && STATES.includes(value) ? value : null;
|
|
1312
1313
|
}
|
|
1313
1314
|
function isNoteTaker(participant) {
|
|
@@ -4510,7 +4511,7 @@ function unsupportedWords(capabilities) {
|
|
|
4510
4511
|
body: "Open this link in Chrome, Safari, Edge or Firefox"
|
|
4511
4512
|
};
|
|
4512
4513
|
}
|
|
4513
|
-
return { title: "
|
|
4514
|
+
return { title: "Meet is not compatible with your browser yet", body: "Open this link in Chrome, Safari, Edge or Firefox" };
|
|
4514
4515
|
}
|
|
4515
4516
|
|
|
4516
4517
|
// src/core/room-driver.ts
|
|
@@ -5130,11 +5131,15 @@ function createMeetingSession(options) {
|
|
|
5130
5131
|
}
|
|
5131
5132
|
let policyTimer = null;
|
|
5132
5133
|
let policyReading = false;
|
|
5134
|
+
let policyInFlight = null;
|
|
5133
5135
|
async function readLivePolicy() {
|
|
5134
5136
|
const meeting = store.snapshot().meeting;
|
|
5135
5137
|
const pass = options.resolvePass?.() ?? null;
|
|
5136
|
-
if (meeting === null || pass === null
|
|
5138
|
+
if (meeting === null || pass === null) return;
|
|
5139
|
+
if (policyReading) return policyInFlight ?? void 0;
|
|
5137
5140
|
policyReading = true;
|
|
5141
|
+
let done = () => void 0;
|
|
5142
|
+
policyInFlight = new Promise((resolve) => done = resolve);
|
|
5138
5143
|
try {
|
|
5139
5144
|
const response = await options.api.request({
|
|
5140
5145
|
path: `${MEET_ROUTES.state}?meeting_id=${encodeURIComponent(meeting.id)}`,
|
|
@@ -5155,6 +5160,8 @@ function createMeetingSession(options) {
|
|
|
5155
5160
|
} catch {
|
|
5156
5161
|
} finally {
|
|
5157
5162
|
policyReading = false;
|
|
5163
|
+
policyInFlight = null;
|
|
5164
|
+
done();
|
|
5158
5165
|
}
|
|
5159
5166
|
}
|
|
5160
5167
|
function syncLivePolicyTimer() {
|
|
@@ -5453,6 +5460,7 @@ function createMeetingSession(options) {
|
|
|
5453
5460
|
},
|
|
5454
5461
|
stopWaiting,
|
|
5455
5462
|
readState: readState2,
|
|
5463
|
+
readLivePolicy,
|
|
5456
5464
|
async readExit(connection, held) {
|
|
5457
5465
|
const meeting = store.snapshot().meeting;
|
|
5458
5466
|
const pass = held ?? options.resolvePass?.() ?? null;
|
|
@@ -7465,6 +7473,7 @@ function createInRoomClient(options) {
|
|
|
7465
7473
|
action: request.action,
|
|
7466
7474
|
...request.identity != null ? { identity: request.identity } : {},
|
|
7467
7475
|
...request.name !== void 0 ? { name: request.name } : {},
|
|
7476
|
+
...request.value !== void 0 ? { value: request.value } : {},
|
|
7468
7477
|
...request.reason !== void 0 ? { reason: request.reason } : {}
|
|
7469
7478
|
},
|
|
7470
7479
|
...hdrs !== void 0 ? { headers: hdrs } : {}
|
|
@@ -8304,6 +8313,7 @@ async function moveToRoom(runtime, roomId) {
|
|
|
8304
8313
|
if (runtime === null) return { ok: false, message: "This meeting is not connected." };
|
|
8305
8314
|
try {
|
|
8306
8315
|
await runtime.engine.moveToBreakout(roomId);
|
|
8316
|
+
await runtime.inRoom.loadCollab?.().catch(() => void 0);
|
|
8307
8317
|
return { ok: true, message: roomId === null ? "Back in the main room." : "Joined the breakout room." };
|
|
8308
8318
|
} catch (error) {
|
|
8309
8319
|
return { ok: false, message: error.message ?? "That room could not be joined." };
|