Spaces:
Running
Running
| import type { loadConfig } from "../../../config/config.js"; | |
| import { normalizeGroupActivation } from "../../../auto-reply/group-activation.js"; | |
| import { | |
| resolveChannelGroupPolicy, | |
| resolveChannelGroupRequireMention, | |
| } from "../../../config/group-policy.js"; | |
| import { | |
| loadSessionStore, | |
| resolveGroupSessionKey, | |
| resolveStorePath, | |
| } from "../../../config/sessions.js"; | |
| export function resolveGroupPolicyFor(cfg: ReturnType<typeof loadConfig>, conversationId: string) { | |
| const groupId = resolveGroupSessionKey({ | |
| From: conversationId, | |
| ChatType: "group", | |
| Provider: "whatsapp", | |
| })?.id; | |
| return resolveChannelGroupPolicy({ | |
| cfg, | |
| channel: "whatsapp", | |
| groupId: groupId ?? conversationId, | |
| }); | |
| } | |
| export function resolveGroupRequireMentionFor( | |
| cfg: ReturnType<typeof loadConfig>, | |
| conversationId: string, | |
| ) { | |
| const groupId = resolveGroupSessionKey({ | |
| From: conversationId, | |
| ChatType: "group", | |
| Provider: "whatsapp", | |
| })?.id; | |
| return resolveChannelGroupRequireMention({ | |
| cfg, | |
| channel: "whatsapp", | |
| groupId: groupId ?? conversationId, | |
| }); | |
| } | |
| export function resolveGroupActivationFor(params: { | |
| cfg: ReturnType<typeof loadConfig>; | |
| agentId: string; | |
| sessionKey: string; | |
| conversationId: string; | |
| }) { | |
| const storePath = resolveStorePath(params.cfg.session?.store, { | |
| agentId: params.agentId, | |
| }); | |
| const store = loadSessionStore(storePath); | |
| const entry = store[params.sessionKey]; | |
| const requireMention = resolveGroupRequireMentionFor(params.cfg, params.conversationId); | |
| const defaultActivation = !requireMention ? "always" : "mention"; | |
| return normalizeGroupActivation(entry?.groupActivation) ?? defaultActivation; | |
| } | |