openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
36 lines (35 loc) • 1.71 kB
JavaScript
import { c as normalizeOptionalLowercaseString, o as normalizeLowercaseStringOrEmpty } from "./string-coerce-CIXf7egm.js";
import { n as normalizeMessageChannel } from "./message-channel-core-AaEWic-A.js";
import "./message-channel-BQrhwUEA.js";
import { t as resolveLoadedSessionThreadInfo } from "./session-thread-info-loaded-C2n7FmMv.js";
//#region src/config/sessions/reset.ts
const GROUP_SESSION_MARKERS = [":group:", ":channel:"];
/** Returns true when a session key is known to represent a thread. */
function isThreadSessionKey(sessionKey) {
return Boolean(resolveLoadedSessionThreadInfo(sessionKey).threadId);
}
function resolveSessionResetType(params) {
if (params.isThread || isThreadSessionKey(params.sessionKey)) return "thread";
if (params.isGroup) return "group";
const normalized = normalizeLowercaseStringOrEmpty(params.sessionKey);
if (GROUP_SESSION_MARKERS.some((marker) => normalized.includes(marker))) return "group";
return "direct";
}
function resolveThreadFlag(params) {
if (params.messageThreadId != null) return true;
if (params.threadLabel?.trim()) return true;
if (params.threadStarterBody?.trim()) return true;
if (params.parentSessionKey?.trim()) return true;
return isThreadSessionKey(params.sessionKey);
}
function resolveChannelResetConfig(params) {
const resetByChannel = params.sessionCfg?.resetByChannel;
if (!resetByChannel) return;
const normalized = normalizeMessageChannel(params.channel);
const fallback = normalizeOptionalLowercaseString(params.channel);
const key = normalized ?? fallback;
if (!key) return;
return resetByChannel[key];
}
//#endregion
export { resolveSessionResetType as n, resolveThreadFlag as r, resolveChannelResetConfig as t };