refactor(config): compile toolsBySender policy and migrate legacy keys

This commit is contained in:
Peter Steinberger
2026-02-22 21:21:15 +01:00
parent c73837d269
commit 3f64d4ad7b
4 changed files with 292 additions and 57 deletions

View File

@@ -176,6 +176,30 @@ export type GroupToolPolicyConfig = {
deny?: string[];
};
export const TOOLS_BY_SENDER_KEY_TYPES = ["id", "e164", "username", "name"] as const;
export type ToolsBySenderKeyType = (typeof TOOLS_BY_SENDER_KEY_TYPES)[number];
export function parseToolsBySenderTypedKey(
rawKey: string,
): { type: ToolsBySenderKeyType; value: string } | undefined {
const trimmed = rawKey.trim();
if (!trimmed) {
return undefined;
}
const lowered = trimmed.toLowerCase();
for (const type of TOOLS_BY_SENDER_KEY_TYPES) {
const prefix = `${type}:`;
if (!lowered.startsWith(prefix)) {
continue;
}
return {
type,
value: trimmed.slice(prefix.length),
};
}
return undefined;
}
/**
* Per-sender overrides.
*