diff --git a/extensions/matrix/src/matrix/monitor/allowlist.ts b/extensions/matrix/src/matrix/monitor/allowlist.ts index 1a38866b059..e9402c38362 100644 --- a/extensions/matrix/src/matrix/monitor/allowlist.ts +++ b/extensions/matrix/src/matrix/monitor/allowlist.ts @@ -1,7 +1,11 @@ -import { resolveAllowlistMatchByCandidates, type AllowlistMatch } from "openclaw/plugin-sdk/matrix"; +import { + normalizeStringEntries, + resolveAllowlistMatchByCandidates, + type AllowlistMatch, +} from "openclaw/plugin-sdk/matrix"; function normalizeAllowList(list?: Array) { - return (list ?? []).map((entry) => String(entry).trim()).filter(Boolean); + return normalizeStringEntries(list); } function normalizeMatrixUser(raw?: string | null): string { diff --git a/extensions/msteams/src/probe.ts b/extensions/msteams/src/probe.ts index 11027033cf0..39bf82841c8 100644 --- a/extensions/msteams/src/probe.ts +++ b/extensions/msteams/src/probe.ts @@ -1,4 +1,8 @@ -import type { BaseProbeResult, MSTeamsConfig } from "openclaw/plugin-sdk/msteams"; +import { + normalizeStringEntries, + type BaseProbeResult, + type MSTeamsConfig, +} from "openclaw/plugin-sdk/msteams"; import { formatUnknownError } from "./errors.js"; import { loadMSTeamsSdkWithAuth } from "./sdk.js"; import { readAccessToken } from "./token-response.js"; @@ -35,7 +39,7 @@ function readStringArray(value: unknown): string[] | undefined { if (!Array.isArray(value)) { return undefined; } - const out = value.map((entry) => String(entry).trim()).filter(Boolean); + const out = normalizeStringEntries(value); return out.length > 0 ? out : undefined; } diff --git a/src/plugin-sdk/matrix.ts b/src/plugin-sdk/matrix.ts index 60ee4c47b79..c1c29a776a1 100644 --- a/src/plugin-sdk/matrix.ts +++ b/src/plugin-sdk/matrix.ts @@ -92,6 +92,7 @@ export { resolveDmGroupAccessWithLists, } from "../security/dm-policy-shared.js"; export { formatDocsLink } from "../terminal/links.js"; +export { normalizeStringEntries } from "../shared/string-normalization.js"; export type { WizardPrompter } from "../wizard/prompts.js"; export { evaluateGroupRouteAccessForPolicy, diff --git a/src/plugin-sdk/msteams.ts b/src/plugin-sdk/msteams.ts index 2ce1e9eb4a3..bbc1bca3b67 100644 --- a/src/plugin-sdk/msteams.ts +++ b/src/plugin-sdk/msteams.ts @@ -117,3 +117,4 @@ export { buildRuntimeAccountStatusSnapshot, createDefaultChannelRuntimeState, } from "./status-helpers.js"; +export { normalizeStringEntries } from "../shared/string-normalization.js";