Non-empty list of provider IDs to choose from.
Optional weights: Record<string, number>Optional weight map. Providers not listed get weight 1.
The selected provider ID.
When providers is empty.
// 90% suno, 10% udio (approximately)
selectWeightedProvider(['suno', 'udio'], { suno: 9, udio: 1 });
Select a single provider from a list using optional per-provider weights.
Selection rules:
providersis empty, throws anError.weightsisundefinedorprovidershas exactly one entry, the first provider is returned deterministically.weights(defaulting to1for unlisted providers), weights are summed, and a random value in[0, sum)picks the winner proportionally.