Files
openclaw-zero-token/channels/sender-label.ts
sjhu 571e14a236 feat: upgrade to upstream v2026.3.28
Major upgrade from e26988a38 to upstream v2026.3.28 (f9b107928).
Key changes:
- Upstream src/, ui/, extensions/ (89 bundled extensions)
- Zero-token web providers preserved in src/zero-token/
- AskOnce plugin restored and registered as CLI command
- Added missing packages: @anthropic-ai/vertex-sdk, @modelcontextprotocol/sdk
- Fixed tsconfig rootDir, skipLibCheck for plugin-sdk DTS build
- Added askonce to bundled plugin metadata and package.json exports
- Fixed AskOnce CLI command registration (missing commands metadata)
- Restored AskOnce adapter imports (correct 5-level relative paths)
- Removed stale migration artifacts from root directory
2026-03-30 17:58:12 +08:00

60 lines
1.4 KiB
TypeScript

export type SenderLabelParams = {
name?: string;
username?: string;
tag?: string;
e164?: string;
id?: string;
};
function normalize(value?: string): string | undefined {
const trimmed = value?.trim();
return trimmed ? trimmed : undefined;
}
function normalizeSenderLabelParams(params: SenderLabelParams) {
return {
name: normalize(params.name),
username: normalize(params.username),
tag: normalize(params.tag),
e164: normalize(params.e164),
id: normalize(params.id),
};
}
export function resolveSenderLabel(params: SenderLabelParams): string | null {
const { name, username, tag, e164, id } = normalizeSenderLabelParams(params);
const display = name ?? username ?? tag ?? "";
const idPart = e164 ?? id ?? "";
if (display && idPart && display !== idPart) {
return `${display} (${idPart})`;
}
return display || idPart || null;
}
export function listSenderLabelCandidates(params: SenderLabelParams): string[] {
const candidates = new Set<string>();
const { name, username, tag, e164, id } = normalizeSenderLabelParams(params);
if (name) {
candidates.add(name);
}
if (username) {
candidates.add(username);
}
if (tag) {
candidates.add(tag);
}
if (e164) {
candidates.add(e164);
}
if (id) {
candidates.add(id);
}
const resolved = resolveSenderLabel(params);
if (resolved) {
candidates.add(resolved);
}
return Array.from(candidates);
}