import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/text-runtime" ;
export function elide(text?: string, limit = 400 ) {
if (!text) {
return text;
}
if (text.length <= limit) {
return text;
}
return `${text.slice(0 , limit)}… (truncated ${text.length - limit} chars)`;
}
export function isLikelyWhatsAppCryptoError(reason: unknown) {
const formatReason = (value: unknown): string => {
if (value == null ) {
return "" ;
}
if (typeof value === "string" ) {
return value;
}
if (value instanceof Error) {
return `${value.message}\n${value.stack ?? "" }`;
}
if (typeof value === "object" ) {
try {
return JSON.stringify(value);
} catch {
return Object.prototype.toString.call(value);
}
}
if (typeof value === "number" ) {
return String(value);
}
if (typeof value === "boolean" ) {
return String(value);
}
if (typeof value === "bigint" ) {
return String(value);
}
if (typeof value === "symbol" ) {
return value.description ?? value.toString();
}
if (typeof value === "function" ) {
return value.name ? `[function ${value.name}]` : "[function]" ;
}
return Object.prototype.toString.call(value);
};
const raw =
reason instanceof Error ? `${reason.message}\n${reason.stack ?? "" }` : formatReason(reason);
const haystack = normalizeLowercaseStringOrEmpty(raw);
const hasAuthError =
haystack.includes("unsupported state or unable to authenticate data" ) ||
haystack.includes("bad mac" );
if (!hasAuthError) {
return false ;
}
return (
haystack.includes("@whiskeysockets/baileys" ) ||
haystack.includes("baileys" ) ||
haystack.includes("noise-handler" ) ||
haystack.includes("aesdecryptgcm" )
);
}
Messung V0.5 in Prozent C=95 H=94 G=94
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-05)
¤
*© Formatika GbR, Deutschland