Files
multica/server/internal/handler/agent_avatar.go
Jiayuan Zhang c6fb2c5c50 feat(agents): assign emoji avatars by default (#5764)
Co-authored-by: Lambda <lambda@multica.ai>
Co-authored-by: multica-agent <github@multica.ai>
2026-07-22 16:38:50 +08:00

33 lines
877 B
Go

package handler
import (
"crypto/rand"
"math/big"
"strings"
"github.com/jackc/pgx/v5/pgtype"
)
const agentEmojiAvatarPrefix = "emoji:"
var agentEmojiAvatars = []string{
"🐙", "🦊", "🦉", "🐝", "🐼", "🐸", "🐯", "🦁",
"🐨", "🐵", "🐧", "🐳", "🦋", "🌞", "🌙", "⭐",
"🔥", "⚡", "🍀", "🌈", "🚀", "🤖", "👾", "🧠",
}
func randomAgentEmojiAvatar() string {
index, err := rand.Int(rand.Reader, big.NewInt(int64(len(agentEmojiAvatars))))
if err != nil {
return agentEmojiAvatarPrefix + agentEmojiAvatars[0]
}
return agentEmojiAvatarPrefix + agentEmojiAvatars[index.Int64()]
}
func newAgentAvatar(avatarURL *string) pgtype.Text {
if avatarURL != nil && strings.TrimSpace(*avatarURL) != "" {
return pgtype.Text{String: *avatarURL, Valid: true}
}
return pgtype.Text{String: randomAgentEmojiAvatar(), Valid: true}
}