import type { ChannelGroupContext } from "clawdbot/plugin-sdk"; import { resolveMatrixRoomConfig } from "./matrix/monitor/rooms.js"; import type { CoreConfig } from "./types.js"; export function resolveMatrixGroupRequireMention(params: ChannelGroupContext): boolean { const rawGroupId = params.groupId?.trim() ?? ""; let roomId = rawGroupId; const lower = roomId.toLowerCase(); if (lower.startsWith("matrix:")) { roomId = roomId.slice("matrix:".length).trim(); } if (roomId.toLowerCase().startsWith("channel:")) { roomId = roomId.slice("channel:".length).trim(); } if (roomId.toLowerCase().startsWith("room:")) { roomId = roomId.slice("room:".length).trim(); } const groupChannel = params.groupChannel?.trim() ?? ""; const aliases = groupChannel ? [groupChannel] : []; const cfg = params.cfg as CoreConfig; const resolved = resolveMatrixRoomConfig({ rooms: cfg.channels?.matrix?.groups ?? cfg.channels?.matrix?.rooms, roomId, aliases, name: groupChannel || undefined, }).config; if (resolved) { if (resolved.autoReply === true) return false; if (resolved.autoReply === false) return true; if (typeof resolved.requireMention === "boolean") return resolved.requireMention; } return true; }