@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.
@@ -185,10 +185,10 @@ var MEET_ROUTES = {
185
185
  recordingStop: "/api/v1/meet/recording/stop",
186
186
  noteTakerStart: "/api/v1/meet/agent/start",
187
187
  noteTakerStop: "/api/v1/meet/agent/stop",
188
- /** In-meeting Q&A. Streams NDJSON; body is `{meeting_id, question}` only. */
189
- intelligenceAsk: "/api/v1/meet/intelligence/ask",
190
188
  /** Anyone in the meeting (guests with the room pass included) asks for captions for themselves. */
191
189
  noteTakerCaptions: "/api/v1/meet/agent/captions",
190
+ /** In-meeting Q&A. Streams NDJSON; body is `{meeting_id, question}` only. */
191
+ intelligenceAsk: "/api/v1/meet/intelligence/ask",
192
192
  /** A host ends the meeting for everyone. Served by MRI-A6. */
193
193
  meetingEnd: "/api/v1/meet/end",
194
194
  /**
@@ -763,6 +763,7 @@ var STATES = [
763
763
  "ended"
764
764
  ];
765
765
  function readState(value) {
766
+ if (value === "dispatching") return "joining";
766
767
  return typeof value === "string" && STATES.includes(value) ? value : null;
767
768
  }
768
769
  function isNoteTaker(participant) {
@@ -1018,6 +1019,7 @@ async function moveToRoom(runtime, roomId) {
1018
1019
  if (runtime === null) return { ok: false, message: "This meeting is not connected." };
1019
1020
  try {
1020
1021
  await runtime.engine.moveToBreakout(roomId);
1022
+ await runtime.inRoom.loadCollab?.().catch(() => void 0);
1021
1023
  return { ok: true, message: roomId === null ? "Back in the main room." : "Joined the breakout room." };
1022
1024
  } catch (error) {
1023
1025
  return { ok: false, message: error.message ?? "That room could not be joined." };
@@ -1607,7 +1609,10 @@ function useEndMeeting() {
1607
1609
  function useConsentNotice() {
1608
1610
  const snapshot = useMeetSnapshot();
1609
1611
  const agent = noteTakerParticipant(snapshot?.participants ?? []);
1610
- if (agent === null) return null;
1612
+ if (agent === null) {
1613
+ const state = noteTakerStatus({ meeting: snapshot?.meeting ?? null, participants: [] }).state;
1614
+ return state === "joining" ? "AI notes started. The note-taker is joining this meeting." : null;
1615
+ }
1611
1616
  return `AI notes are on. ${agent.displayName} is in this meeting, transcribing what is said and writing notes everyone here can read.`;
1612
1617
  }
1613
1618
  function useMediaSupervisor() {
@@ -4330,6 +4335,17 @@ function ChatPanel({
4330
4335
  const snapshot = useMeetSnapshot();
4331
4336
  const room = useRoom();
4332
4337
  const live = useLivePolicy();
4338
+ const host = useMeetHost();
4339
+ const [rulesChecked, setRulesChecked] = useState5(false);
4340
+ useEffect6(() => {
4341
+ let alive = true;
4342
+ const done = () => alive && setRulesChecked(true);
4343
+ if (host === null) done();
4344
+ else void host.meetings.readLivePolicy().then(done, done);
4345
+ return () => {
4346
+ alive = false;
4347
+ };
4348
+ }, [host]);
4333
4349
  const [draft, setDraft] = useState5("");
4334
4350
  const [recipient, setRecipient] = useState5(to);
4335
4351
  const listRef = useRef6(null);
@@ -4354,7 +4370,7 @@ function ChatPanel({
4354
4370
  snapshot?.chatLoaded !== true && messages.length === 0 ? /* @__PURE__ */ jsx6("li", { className: "mx-meet__panel-note", children: "Reading earlier messages\u2026" }) : messages.length === 0 && snapshot?.chatHistoryError == null ? /* @__PURE__ */ jsx6("li", { className: "mx-meet__panel-note", children: "No messages yet. Messages to everyone stay with the meeting, so people who join later see them." }) : null,
4355
4371
  messages.map((message) => /* @__PURE__ */ jsx6(ChatLine, { message, local, people }, message.id))
4356
4372
  ] }),
4357
- !live.canChat ? /* @__PURE__ */ jsx6("p", { className: "mx-meet__panel-note", role: "status", "data-meet-notice": "chat-restricted", children: live.chatMode === "off" ? "Chat is turned off for this meeting." : "Chat is limited to the host and co-hosts in this meeting." }) : /* @__PURE__ */ jsxs4(
4373
+ !rulesChecked ? null : !live.canChat ? /* @__PURE__ */ jsx6("p", { className: "mx-meet__panel-note", role: "status", "data-meet-notice": "chat-restricted", children: live.chatMode === "off" ? "Chat is turned off for this meeting." : "Chat is limited to the host and co-hosts in this meeting." }) : /* @__PURE__ */ jsxs4(
4358
4374
  "form",
4359
4375
  {
4360
4376
  className: "mx-meet__composer mx-meet__composer--chat",
@@ -5885,8 +5901,8 @@ function ExitScreen({ onLeave }) {
5885
5901
  ] });
5886
5902
  break;
5887
5903
  case "unsupported":
5888
- title = "This browser can't join meetings";
5889
- line = "Open the link in Chrome, Edge, Firefox or Safari.";
5904
+ title = "Meet is not compatible with your browser yet";
5905
+ line = "Open this link in Chrome, Edge, Firefox or Safari.";
5890
5906
  break;
5891
5907
  case "ended":
5892
5908
  case "record":
@@ -5913,6 +5929,9 @@ function ExitScreen({ onLeave }) {
5913
5929
  function WaitingRoom({ host, onLeave }) {
5914
5930
  const { waiting, withdraw, askAgain } = useWaiting();
5915
5931
  const { phaseNotice } = useMeetCore();
5932
+ const localMedia = useLocalMedia();
5933
+ const { region: mediaRegion } = useMediaSupervisor();
5934
+ const noMicrophone = localMedia.microphone.unavailable !== null || mediaRegion.preview.microphone.state === "unavailable";
5916
5935
  const [busy, setBusy] = useState5(false);
5917
5936
  const admission = waiting?.admission ?? "knocking";
5918
5937
  const reknockLeft = useCountdown(admission === "denied" ? waiting?.reknockAt ?? null : null);
@@ -5977,6 +5996,7 @@ function WaitingRoom({ host, onLeave }) {
5977
5996
  children: line
5978
5997
  }
5979
5998
  ) : null,
5999
+ noMicrophone && (admission === "knocking" || admission === "waiting_host") ? /* @__PURE__ */ jsx6("p", { className: "mx-meet__empty-body", role: "status", "data-meet-notice": "joining-without-microphone", children: "You're joining without a microphone. You'll be able to listen, but others won't hear you." }) : null,
5980
6000
  /* @__PURE__ */ jsx6("div", { className: "mx-meet__waiting-actions", children: actions })
5981
6001
  ] });
5982
6002
  }