import { randomInt } from "node:crypto";
import { normalizeAgentUrlKey } from "@rudderhq/shared";
export const AGENT_NAME_POOL = [
    "Ada",
    "Aiden",
    "Aisha",
    "Alex",
    "Amara",
    "Andre",
    "Anika",
    "Ari",
    "Aria",
    "Asher",
    "Avery",
    "Bailey",
    "Bianca",
    "Blake",
    "Cameron",
    "Carmen",
    "Casey",
    "Chloe",
    "Clara",
    "Cora",
    "Cyrus",
    "Dakota",
    "Damon",
    "Daria",
    "Devin",
    "Dylan",
    "Eden",
    "Elias",
    "Eliza",
    "Elliot",
    "Ella",
    "Ember",
    "Emery",
    "Emma",
    "Ethan",
    "Eva",
    "Ezra",
    "Farah",
    "Felix",
    "Fiona",
    "Freya",
    "Gabriel",
    "Gemma",
    "Gianna",
    "Grace",
    "Harper",
    "Hazel",
    "Hugo",
    "Iris",
    "Isaac",
    "Isla",
    "Ivy",
    "Jace",
    "Jade",
    "Jalen",
    "Jamie",
    "Jasper",
    "Javier",
    "Jay",
    "Jordan",
    "Josephine",
    "Josie",
    "Jude",
    "Julia",
    "Jun",
    "Kai",
    "Kara",
    "Kieran",
    "Laila",
    "Lana",
    "Leo",
    "Leona",
    "Liam",
    "Lila",
    "Logan",
    "Lucia",
    "Luna",
    "Lydia",
    "Maia",
    "Marcus",
    "Maya",
    "Mia",
    "Micah",
    "Mila",
    "Milo",
    "Mina",
    "Nadia",
    "Naomi",
    "Nia",
    "Nico",
    "Nina",
    "Noah",
    "Nolan",
    "Nora",
    "Nova",
    "Omar",
    "Opal",
    "Orion",
    "Owen",
    "Paige",
    "Parker",
    "Penelope",
    "Phoebe",
    "Piper",
    "Priya",
    "Quinn",
    "Rafael",
    "Raya",
    "Remi",
    "Riley",
    "River",
    "Roman",
    "Ronan",
    "Rosa",
    "Rowan",
    "Ruby",
    "Ryan",
    "Sage",
    "Sam",
    "Sanaa",
    "Sari",
    "Scarlett",
    "Selene",
    "Shiloh",
    "Sienna",
    "Sofia",
    "Stella",
    "Summer",
    "Talia",
    "Theo",
    "Tessa",
    "Tristan",
    "Uma",
    "Val",
    "Vera",
    "Violet",
    "Willa",
    "Wyatt",
    "Xander",
    "Yasmin",
    "Zara",
    "Zane",
    "Zoe",
    "Aaron",
    "Abigail",
    "Adrian",
    "Alina",
    "Amir",
    "April",
    "Aurora",
    "Autumn",
    "Beckett",
    "Bella",
    "Bennett",
    "Caleb",
    "Celeste",
    "Colin",
    "Daisy",
    "Delilah",
    "Dominic",
    "Elena",
    "Elodie",
    "Finn",
    "Florence",
    "Gavin",
    "Georgia",
    "Griffin",
    "Hallie",
    "Heidi",
    "Holden",
    "Imogen",
    "Jonah",
    "Keira",
    "Knox",
    "Layla",
    "Maddox",
    "Margot",
    "Marnie",
    "Nathan",
    "Olive",
    "Poppy",
    "Reed",
    "Rosalie",
    "Sawyer",
    "Serena",
    "Simon",
    "Skye",
    "Soren",
    "Sydney",
    "Teagan",
    "Tobias",
    "Ulysses",
    "Vivienne",
    "Wesley",
    "Winter",
    "Yvette",
    "Yusuf",
    "Zarah",
    "Zoya",
    "Callum",
];
function hasNameCollision(candidateName, existingAgents) {
    const candidateShortname = normalizeAgentUrlKey(candidateName);
    if (!candidateShortname)
        return false;
    return existingAgents.some((agent) => {
        if (agent.status === "terminated")
            return false;
        return normalizeAgentUrlKey(agent.name) === candidateShortname;
    });
}
function normalizePickIndex(length, pickIndex) {
    if (length <= 1)
        return 0;
    if (!pickIndex)
        return randomInt(length);
    const raw = pickIndex(length);
    if (!Number.isFinite(raw))
        return 0;
    return Math.abs(Math.floor(raw)) % length;
}
export function pickUniqueAgentName(existingAgents, options) {
    const availableNames = AGENT_NAME_POOL.filter((candidate) => !hasNameCollision(candidate, existingAgents));
    const pool = availableNames.length > 0 ? availableNames : AGENT_NAME_POOL;
    return pool[normalizePickIndex(pool.length, options?.pickIndex)] ?? "Agent";
}
//# sourceMappingURL=agent-name-pool.js.map