mirror of
http://192.168.0.88:13333/lywsvip/openclaw-zero-token.git
synced 2026-06-03 07:30:36 +08:00
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
60 lines
1.4 KiB
TypeScript
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);
|
|
}
|