import { SACError as CLIError, ExitCode } from "../errors.js";
import { registerProvider } from "./store.js";
// ── Model lists ──────────────────────────────────────────────────────────────
const MUSIC_MODELS = ["lyria_3_pro_preview", "mureka_song_generator"];
// ── lyria_3_pro_preview ───────────────────────────────────────────────────────
registerProvider({
    provider: "audio",
    category: "audio",
    models: ["lyria_3_pro_preview"],
    buildBody(_model, prompt, _flags) {
        return {
            model: "lyria_3_pro_preview",
            dash_scope: true,
            moderation: true,
            input: [{ params: { input: prompt } }],
            metadata: {},
        };
    },
});
// ── mureka_song_generator ─────────────────────────────────────────────────────
registerProvider({
    provider: "audio",
    category: "audio",
    models: ["mureka_song_generator"],
    buildBody(_model, prompt, flags) {
        const lyrics = flags.lyrics;
        if (!lyrics) {
            throw new CLIError("mureka_song_generator requires --lyrics.", ExitCode.USAGE);
        }
        const params = { lyrics };
        if (prompt)
            params["prompt"] = prompt;
        if (flags.murekaModel)
            params["model"] = flags.murekaModel;
        if (flags.n)
            params["n"] = flags.n;
        if (flags.referenceId)
            params["reference_id"] = flags.referenceId;
        if (flags.vocalId)
            params["vocal_id"] = flags.vocalId;
        if (flags.melodyId)
            params["melody_id"] = flags.melodyId;
        return {
            model: "mureka_song_generator",
            dash_scope: true,
            moderation: true,
            input: [{ params }],
            metadata: {},
        };
    },
});
// suppress unused
void MUSIC_MODELS;
//# sourceMappingURL=audio.js.map