@ai-matrx/meet 0.7.84 → 0.8.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/index.cjs CHANGED
@@ -54,6 +54,7 @@ __export(src_exports, {
54
54
  MEET_ANSWER_CONTEXT_EVENT: () => MEET_ANSWER_CONTEXT_EVENT,
55
55
  MEET_ANSWER_EVENTS: () => MEET_ANSWER_EVENTS,
56
56
  MEET_EVENTS: () => MEET_EVENTS,
57
+ MEET_REACTIONS: () => MEET_REACTIONS,
57
58
  MEET_ROUTES: () => MEET_ROUTES,
58
59
  MEET_SCHEMA: () => MEET_SCHEMA,
59
60
  MODERATION_ACTIONS: () => MODERATION_ACTIONS,
@@ -76,6 +77,7 @@ __export(src_exports, {
76
77
  TRANSCRIPTION_TOPIC: () => TRANSCRIPTION_TOPIC,
77
78
  absenceSentence: () => absenceSentence,
78
79
  activeWrapUpSummary: () => activeWrapUpSummary,
80
+ activityAttention: () => activityAttention,
79
81
  announceMeeting: () => announceMeeting,
80
82
  applyCollabPacket: () => applyCollabPacket,
81
83
  applyRoomEvent: () => applyRoomEvent,
@@ -92,6 +94,7 @@ __export(src_exports, {
92
94
  attendanceTotals: () => attendanceTotals,
93
95
  attendeeKey: () => attendeeKey,
94
96
  autoAssign: () => autoAssign,
97
+ availableActivities: () => availableActivities,
95
98
  breakoutRemainingMs: () => breakoutRemainingMs,
96
99
  callInviteAction: () => callInviteAction,
97
100
  callInviteText: () => callInviteText,
@@ -163,6 +166,8 @@ __export(src_exports, {
163
166
  mergeCaption: () => mergeCaption,
164
167
  mergeRecord: () => mergeRecord,
165
168
  microphoneNoticeCode: () => microphoneNoticeCode,
169
+ moveToRoom: () => moveToRoom,
170
+ nextTranslationBatch: () => nextTranslationBatch,
166
171
  normalizeDeviceError: () => normalizeDeviceError,
167
172
  normalizeMeetError: () => normalizeMeetError,
168
173
  normalizeSpoken: () => normalizeSpoken,
@@ -179,6 +184,7 @@ __export(src_exports, {
179
184
  parseRoomToken: () => parseRoomToken,
180
185
  participantAttributes: () => participantAttributes,
181
186
  participantSummary: () => participantSummary,
187
+ performCollab: () => performCollab,
182
188
  playableRecordingFileId: () => playableRecordingFileId,
183
189
  projectInvitee: () => projectInvitee,
184
190
  projectLibraryRecording: () => projectLibraryRecording,
@@ -201,15 +207,19 @@ __export(src_exports, {
201
207
  rootAttributes: () => rootAttributes,
202
208
  searchTranscript: () => searchTranscript,
203
209
  sendFollowUp: () => sendFollowUp,
210
+ setCaptionLanguage: () => setCaptionLanguage,
204
211
  setGuestRecordAccess: () => setGuestRecordAccess,
205
212
  settingsPatch: () => settingsPatch,
206
213
  snapshotParticipant: () => snapshotParticipant,
207
214
  snippetRuns: () => snippetRuns,
208
215
  staticObservation: () => staticObservation,
209
216
  summarizeMeetingRecordRestrictions: () => summarizeMeetingRecordRestrictions,
217
+ takeMoveRequest: () => takeMoveRequest,
218
+ takePanelRequest: () => takePanelRequest,
210
219
  transcriptDocument: () => transcriptDocument,
211
220
  unavailableFrom: () => unavailableFrom,
212
221
  uniqueAttendees: () => uniqueAttendees,
222
+ untranslatedLines: () => untranslatedLines,
213
223
  userTopic: () => userTopic,
214
224
  wasRefused: () => wasRefused,
215
225
  withItem: () => withItem,
@@ -1125,22 +1135,9 @@ function captionSegment(args) {
1125
1135
 
1126
1136
  // src/core/channels.ts
1127
1137
  var import_realtime = require("@ai-matrx/realtime");
1128
-
1129
- // src/core/slot.ts
1130
- var NAMESPACE = "ai-matrx.meet";
1131
- function globalSlot(name, create) {
1132
- const key = /* @__PURE__ */ Symbol.for(`${NAMESPACE}.${name}`);
1133
- const host = globalThis;
1134
- const existing = host[key];
1135
- if (existing !== void 0) return existing;
1136
- const created = create();
1137
- host[key] = created;
1138
- return created;
1139
- }
1140
-
1141
- // src/core/channels.ts
1138
+ var import_global_slot = require("@ai-matrx/kit/global-slot");
1142
1139
  function namespaces() {
1143
- return globalSlot("channel-namespaces", () => ({
1140
+ return (0, import_global_slot.globalSlot)("ai-matrx.meet.channel-namespaces", () => ({
1144
1141
  user: (0, import_realtime.defineChannelNamespace)({
1145
1142
  namespace: "meet-user",
1146
1143
  parts: ["userId"],
@@ -6524,6 +6521,75 @@ function createMeetingRecordCache(options = {}) {
6524
6521
  };
6525
6522
  }
6526
6523
 
6524
+ // src/core/reactions.ts
6525
+ var MEET_REACTIONS = ["\u{1F496}", "\u{1F44D}", "\u{1F389}", "\u{1F44F}", "\u{1F602}", "\u{1F62E}", "\u{1F622}", "\u{1F914}", "\u{1F44E}"];
6526
+
6527
+ // src/core/collab-state.ts
6528
+ function availableActivities(collab, isHost) {
6529
+ const settings = collab?.settings ?? null;
6530
+ if (settings === null) return [];
6531
+ const out = [];
6532
+ if (settings.whiteboardEnabled) out.push("whiteboard");
6533
+ if (settings.pollsEnabled && (isHost || (collab?.polls.length ?? 0) > 0)) out.push("polls");
6534
+ if (settings.qaEnabled) out.push("qa");
6535
+ if (settings.breakoutsEnabled && (isHost || collab?.breakout?.state === "open")) out.push("breakouts");
6536
+ return out;
6537
+ }
6538
+ function activityAttention(collab, isHost) {
6539
+ if (collab === null) return false;
6540
+ if (collab.polls.some((poll) => poll.state === "live" && poll.myVote.length === 0 && !isHost)) return true;
6541
+ if (isHost && collab.questions.some((q) => q.state === "open")) return true;
6542
+ return false;
6543
+ }
6544
+ async function performCollab(runtime, request) {
6545
+ if (runtime === null) return { ok: false, message: "This meeting is not connected." };
6546
+ try {
6547
+ const result = await runtime.inRoom.collab(request);
6548
+ return { ok: true, message: result.message, itemId: result.itemId };
6549
+ } catch (error) {
6550
+ return { ok: false, message: error.message ?? "That did not work." };
6551
+ }
6552
+ }
6553
+ async function moveToRoom(runtime, roomId) {
6554
+ if (runtime === null) return { ok: false, message: "This meeting is not connected." };
6555
+ try {
6556
+ await runtime.engine.moveToBreakout(roomId);
6557
+ return { ok: true, message: roomId === null ? "Back in the main room." : "Joined the breakout room." };
6558
+ } catch (error) {
6559
+ return { ok: false, message: error.message ?? "That room could not be joined." };
6560
+ }
6561
+ }
6562
+ function untranslatedLines(lines, translations) {
6563
+ return lines.filter((line) => line.final && translations[line.id] === void 0).map(({ id, text: text3 }) => ({ id, text: text3 }));
6564
+ }
6565
+ function nextTranslationBatch(pending, language, asked) {
6566
+ const batch = pending.filter((line) => !asked.has(`${language}:${line.id}`)).slice(-20);
6567
+ for (const line of batch) asked.add(`${language}:${line.id}`);
6568
+ return batch;
6569
+ }
6570
+ function setCaptionLanguage(store, next) {
6571
+ store.patch({
6572
+ collab: {
6573
+ ...store.snapshot().collab,
6574
+ captionLanguage: next,
6575
+ captionTranslations: {},
6576
+ captionTranslationError: null
6577
+ }
6578
+ });
6579
+ }
6580
+ function takePanelRequest(store) {
6581
+ const request = store.snapshot().collab.panelRequest;
6582
+ if (request === null) return null;
6583
+ store.patch({ collab: { ...store.snapshot().collab, panelRequest: null } });
6584
+ return request.panel;
6585
+ }
6586
+ function takeMoveRequest(store) {
6587
+ const request = store.snapshot().collab.moveRequest;
6588
+ if (request === null) return null;
6589
+ store.patch({ collab: { ...store.snapshot().collab, moveRequest: null } });
6590
+ return { roomId: request.roomId };
6591
+ }
6592
+
6527
6593
  // src/core/observation.ts
6528
6594
  function observedDevice(track) {
6529
6595
  if (track.enabled) return "on";