mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-10 13:24:58 +00:00
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { resolveAgentAvatar } from "../../agents/identity-avatar.js";
|
|
import { resolveAgentIdentity } from "../../agents/identity.js";
|
|
import type { OpenClawConfig } from "../../config/config.js";
|
|
|
|
export type OutboundIdentity = {
|
|
name?: string;
|
|
avatarUrl?: string;
|
|
emoji?: string;
|
|
};
|
|
|
|
export function normalizeOutboundIdentity(
|
|
identity?: OutboundIdentity | null,
|
|
): OutboundIdentity | undefined {
|
|
if (!identity) {
|
|
return undefined;
|
|
}
|
|
const name = identity.name?.trim() || undefined;
|
|
const avatarUrl = identity.avatarUrl?.trim() || undefined;
|
|
const emoji = identity.emoji?.trim() || undefined;
|
|
if (!name && !avatarUrl && !emoji) {
|
|
return undefined;
|
|
}
|
|
return { name, avatarUrl, emoji };
|
|
}
|
|
|
|
export function resolveAgentOutboundIdentity(
|
|
cfg: OpenClawConfig,
|
|
agentId: string,
|
|
): OutboundIdentity | undefined {
|
|
const agentIdentity = resolveAgentIdentity(cfg, agentId);
|
|
const avatar = resolveAgentAvatar(cfg, agentId);
|
|
return normalizeOutboundIdentity({
|
|
name: agentIdentity?.name,
|
|
emoji: agentIdentity?.emoji,
|
|
avatarUrl: avatar.kind === "remote" ? avatar.url : undefined,
|
|
});
|
|
}
|