/** * Agent Alias Generator * * Generates unique funny aliases for agents using adjective-animal combinations. * E.g., "jolly-penguin", "bold-eagle", "swift-otter". */ import { uniqueNamesGenerator, adjectives, animals } from 'unique-names-generator'; import type { AgentRepository } from '../db/repositories/agent-repository.js'; const MAX_RETRIES = 10; /** * Generate a unique agent alias that doesn't collide with existing agent names. * * @param repository - Agent repository to check for name collisions * @returns A unique adjective-animal alias (e.g., "jolly-penguin") */ export async function generateUniqueAlias(repository: AgentRepository): Promise { for (let i = 0; i < MAX_RETRIES; i++) { const alias = uniqueNamesGenerator({ dictionaries: [adjectives, animals], separator: '-', style: 'lowerCase', }); const existing = await repository.findByName(alias); if (!existing) { return alias; } } throw new Error(`Failed to generate unique alias after ${MAX_RETRIES} attempts`); }