@runapi.ai/suno 0.2.6 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/client.ts","../src/resources/text-to-music.ts","../src/resources/extend-music.ts","../src/resources/generate-artwork.ts","../src/resources/cover-audio.ts","../src/resources/add-instrumental.ts","../src/resources/add-vocals.ts","../src/resources/separate-audio-stems.ts","../src/resources/generate-midi.ts","../src/resources/convert-audio.ts","../src/resources/visualize-music.ts","../src/resources/generate-lyrics.ts","../src/resources/get-timestamped-lyrics.ts","../src/resources/replace-section.ts","../src/resources/create-mashup.ts","../src/resources/text-to-sound.ts","../src/resources/generate-persona.ts","../src/resources/boost-style.ts","../src/resources/voice-to-validation-phrase.ts","../src/resources/regenerate-validation-phrase.ts","../src/resources/generate-voice.ts","../src/resources/check-voice.ts"],"sourcesContent":["export { SunoClient } from './client';\nexport * from './types';\n\n// Re-export common errors from core for convenience\nexport {\n RunApiError,\n AuthenticationError,\n InsufficientCreditsError,\n NotFoundError,\n ValidationError,\n RateLimitError,\n ServiceUnavailableError,\n NetworkError,\n TimeoutError,\n TaskTimeoutError,\n TaskFailedError,\n} from '@runapi.ai/core';\n","import { createHttpClient, type ClientOptions } from '@runapi.ai/core';\nimport { TextToMusic } from './resources/text-to-music';\nimport { ExtendMusic } from './resources/extend-music';\nimport { GenerateArtwork } from './resources/generate-artwork';\nimport { CoverAudio } from './resources/cover-audio';\nimport { AddInstrumental } from './resources/add-instrumental';\nimport { AddVocals } from './resources/add-vocals';\nimport { SeparateAudioStems } from './resources/separate-audio-stems';\nimport { GenerateMidi } from './resources/generate-midi';\nimport { ConvertAudio } from './resources/convert-audio';\nimport { VisualizeMusic } from './resources/visualize-music';\nimport { GenerateLyrics } from './resources/generate-lyrics';\nimport { GetTimestampedLyrics } from './resources/get-timestamped-lyrics';\nimport { ReplaceSection } from './resources/replace-section';\nimport { CreateMashup } from './resources/create-mashup';\nimport { TextToSound } from './resources/text-to-sound';\nimport { GeneratePersona } from './resources/generate-persona';\nimport { BoostStyle } from './resources/boost-style';\nimport { VoiceToValidationPhrase } from './resources/voice-to-validation-phrase';\nimport { RegenerateValidationPhrase } from './resources/regenerate-validation-phrase';\nimport { GenerateVoice } from './resources/generate-voice';\nimport { CheckVoice } from './resources/check-voice';\n\n/**\n * Suno API client.\n *\n * @example\n * ```typescript\n * const client = new SunoClient({\n * apiKey: 'your-api-key',\n * baseUrl: 'https://runapi.ai',\n * });\n *\n * const result = await client.textToMusic.run({\n * prompt: 'A chill lo-fi beat with soft vocals',\n * model: 'suno-v4.5-plus',\n * });\n * ```\n */\nexport class SunoClient {\n public readonly textToMusic: TextToMusic;\n public readonly extendMusic: ExtendMusic;\n public readonly generateArtwork: GenerateArtwork;\n public readonly coverAudio: CoverAudio;\n public readonly addInstrumental: AddInstrumental;\n public readonly addVocals: AddVocals;\n public readonly separateAudioStems: SeparateAudioStems;\n public readonly generateMidi: GenerateMidi;\n public readonly convertAudio: ConvertAudio;\n public readonly visualizeMusic: VisualizeMusic;\n public readonly generateLyrics: GenerateLyrics;\n public readonly getTimestampedLyrics: GetTimestampedLyrics;\n public readonly replaceSection: ReplaceSection;\n public readonly createMashup: CreateMashup;\n public readonly textToSound: TextToSound;\n public readonly generatePersona: GeneratePersona;\n public readonly boostStyle: BoostStyle;\n public readonly voiceToValidationPhrase: VoiceToValidationPhrase;\n public readonly regenerateValidationPhrase: RegenerateValidationPhrase;\n public readonly generateVoice: GenerateVoice;\n public readonly checkVoice: CheckVoice;\n\n constructor(options: ClientOptions = {}) {\n const http = createHttpClient(options);\n this.textToMusic = new TextToMusic(http);\n this.extendMusic = new ExtendMusic(http);\n this.generateArtwork = new GenerateArtwork(http);\n this.coverAudio = new CoverAudio(http);\n this.addInstrumental = new AddInstrumental(http);\n this.addVocals = new AddVocals(http);\n this.separateAudioStems = new SeparateAudioStems(http);\n this.generateMidi = new GenerateMidi(http);\n this.convertAudio = new ConvertAudio(http);\n this.visualizeMusic = new VisualizeMusic(http);\n this.generateLyrics = new GenerateLyrics(http);\n this.getTimestampedLyrics = new GetTimestampedLyrics(http);\n this.replaceSection = new ReplaceSection(http);\n this.createMashup = new CreateMashup(http);\n this.textToSound = new TextToSound(http);\n this.generatePersona = new GeneratePersona(http);\n this.boostStyle = new BoostStyle(http);\n this.voiceToValidationPhrase = new VoiceToValidationPhrase(http);\n this.regenerateValidationPhrase = new RegenerateValidationPhrase(http);\n this.generateVoice = new GenerateVoice(http);\n this.checkVoice = new CheckVoice(http);\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedTextToMusicResponse, TextToMusicParams, TextToMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/text_to_music';\n\nexport class TextToMusic {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: TextToMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedTextToMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<TextToMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedTextToMusicResponse;\n }\n\n async create(params: TextToMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<TextToMusicResponse> {\n return this.http.request<TextToMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedExtendMusicResponse, ExtendMusicParams, ExtendMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/extend_music';\n\nexport class ExtendMusic {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: ExtendMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedExtendMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ExtendMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedExtendMusicResponse;\n }\n\n async create(params: ExtendMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ExtendMusicResponse> {\n return this.http.request<ExtendMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateArtworkResponse, GenerateArtworkParams, GenerateArtworkResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_artwork';\n\nexport class GenerateArtwork {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateArtworkParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateArtworkResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateArtworkResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateArtworkResponse;\n }\n\n async create(params: GenerateArtworkParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<GenerateArtworkResponse> {\n return this.http.request<GenerateArtworkResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedCoverAudioResponse, CoverAudioParams, CoverAudioResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/cover_audio';\n\nexport class CoverAudio {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: CoverAudioParams, options?: RequestOptions & PollingOptions): Promise<CompletedCoverAudioResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<CoverAudioResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedCoverAudioResponse;\n }\n\n async create(params: CoverAudioParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<CoverAudioResponse> {\n return this.http.request<CoverAudioResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedAddInstrumentalResponse, AddInstrumentalParams, AddInstrumentalResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/add_instrumental';\n\nexport class AddInstrumental {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: AddInstrumentalParams, options?: RequestOptions & PollingOptions): Promise<CompletedAddInstrumentalResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<AddInstrumentalResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedAddInstrumentalResponse;\n }\n\n async create(params: AddInstrumentalParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<AddInstrumentalResponse> {\n return this.http.request<AddInstrumentalResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedAddVocalsResponse, AddVocalsParams, AddVocalsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/add_vocals';\n\nexport class AddVocals {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: AddVocalsParams, options?: RequestOptions & PollingOptions): Promise<CompletedAddVocalsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<AddVocalsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedAddVocalsResponse;\n }\n\n async create(params: AddVocalsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<AddVocalsResponse> {\n return this.http.request<AddVocalsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedSeparateAudioStemsResponse, SeparateAudioStemsParams, SeparateAudioStemsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/separate_audio_stems';\n\nexport class SeparateAudioStems {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: SeparateAudioStemsParams, options?: RequestOptions & PollingOptions): Promise<CompletedSeparateAudioStemsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<SeparateAudioStemsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedSeparateAudioStemsResponse;\n }\n\n async create(params: SeparateAudioStemsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<SeparateAudioStemsResponse> {\n return this.http.request<SeparateAudioStemsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateMidiResponse, GenerateMidiParams, GenerateMidiResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_midi';\n\nexport class GenerateMidi {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateMidiParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateMidiResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateMidiResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateMidiResponse;\n }\n\n async create(params: GenerateMidiParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<GenerateMidiResponse> {\n return this.http.request<GenerateMidiResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedConvertAudioResponse, ConvertAudioParams, ConvertAudioResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/convert_audio';\n\nexport class ConvertAudio {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: ConvertAudioParams, options?: RequestOptions & PollingOptions): Promise<CompletedConvertAudioResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ConvertAudioResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedConvertAudioResponse;\n }\n\n async create(params: ConvertAudioParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ConvertAudioResponse> {\n return this.http.request<ConvertAudioResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedVisualizeMusicResponse, VisualizeMusicParams, VisualizeMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/visualize_music';\n\nexport class VisualizeMusic {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: VisualizeMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedVisualizeMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<VisualizeMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedVisualizeMusicResponse;\n }\n\n async create(params: VisualizeMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<VisualizeMusicResponse> {\n return this.http.request<VisualizeMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateLyricsResponse, GenerateLyricsParams, GenerateLyricsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_lyrics';\n\nexport class GenerateLyrics {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateLyricsParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateLyricsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateLyricsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateLyricsResponse;\n }\n\n async create(params: GenerateLyricsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<GenerateLyricsResponse> {\n return this.http.request<GenerateLyricsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { GetTimestampedLyricsParams, GetTimestampedLyricsResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/get_timestamped_lyrics';\n\nexport class GetTimestampedLyrics {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GetTimestampedLyricsParams, options?: RequestOptions): Promise<GetTimestampedLyricsResponse> {\n return this.http.request<GetTimestampedLyricsResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedReplaceSectionResponse, ReplaceSectionParams, ReplaceSectionResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/replace_section';\n\nexport class ReplaceSection {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: ReplaceSectionParams, options?: RequestOptions & PollingOptions): Promise<CompletedReplaceSectionResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ReplaceSectionResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedReplaceSectionResponse;\n }\n\n async create(params: ReplaceSectionParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ReplaceSectionResponse> {\n return this.http.request<ReplaceSectionResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedCreateMashupResponse, CreateMashupParams, CreateMashupResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/create_mashup';\n\nexport class CreateMashup {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: CreateMashupParams, options?: RequestOptions & PollingOptions): Promise<CompletedCreateMashupResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<CreateMashupResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedCreateMashupResponse;\n }\n\n async create(params: CreateMashupParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<CreateMashupResponse> {\n return this.http.request<CreateMashupResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedTextToSoundResponse, TextToSoundParams, TextToSoundResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/text_to_sound';\n\nexport class TextToSound {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: TextToSoundParams, options?: RequestOptions & PollingOptions): Promise<CompletedTextToSoundResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<TextToSoundResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedTextToSoundResponse;\n }\n\n async create(params: TextToSoundParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<TextToSoundResponse> {\n return this.http.request<TextToSoundResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { GeneratePersonaParams, GeneratePersonaResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_persona';\n\nexport class GeneratePersona {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GeneratePersonaParams, options?: RequestOptions): Promise<GeneratePersonaResponse> {\n return this.http.request<GeneratePersonaResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { BoostStyleParams, BoostStyleResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/boost_style';\n\nexport class BoostStyle {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: BoostStyleParams, options?: RequestOptions): Promise<BoostStyleResponse> {\n return this.http.request<BoostStyleResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type {\n CompletedValidationPhraseResponse,\n TaskCreateResponse,\n ValidationPhraseResponse,\n VoiceToValidationPhraseParams,\n} from '../types';\n\nconst ENDPOINT = '/api/v1/suno/voice_to_validation_phrase';\n\nexport class VoiceToValidationPhrase {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: VoiceToValidationPhraseParams, options?: RequestOptions & PollingOptions): Promise<CompletedValidationPhraseResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ValidationPhraseResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedValidationPhraseResponse;\n }\n\n async create(params: VoiceToValidationPhraseParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ValidationPhraseResponse> {\n return this.http.request<ValidationPhraseResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type {\n CompletedValidationPhraseResponse,\n RegenerateValidationPhraseParams,\n TaskCreateResponse,\n ValidationPhraseResponse,\n} from '../types';\n\nconst ENDPOINT = '/api/v1/suno/regenerate_validation_phrase';\n\nexport class RegenerateValidationPhrase {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: RegenerateValidationPhraseParams, options?: RequestOptions & PollingOptions): Promise<CompletedValidationPhraseResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ValidationPhraseResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedValidationPhraseResponse;\n }\n\n async create(params: RegenerateValidationPhraseParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ValidationPhraseResponse> {\n return this.http.request<ValidationPhraseResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type {\n CompletedVoiceGenerationResponse,\n GenerateVoiceParams,\n TaskCreateResponse,\n VoiceGenerationResponse,\n} from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_voice';\n\nexport class GenerateVoice {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateVoiceParams, options?: RequestOptions & PollingOptions): Promise<CompletedVoiceGenerationResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<VoiceGenerationResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedVoiceGenerationResponse;\n }\n\n async create(params: GenerateVoiceParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<VoiceGenerationResponse> {\n return this.http.request<VoiceGenerationResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { CheckVoiceParams, CheckVoiceResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/check_voice';\n\nexport class CheckVoice {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: CheckVoiceParams, options?: RequestOptions): Promise<CheckVoiceResponse> {\n return this.http.request<CheckVoiceResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n"],"mappings":"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","names":["import_core","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","ENDPOINT","import_core","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","ENDPOINT","import_core"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/client.ts","../src/resources/text-to-music.ts","../src/contract_gen.ts","../src/resources/extend-music.ts","../src/resources/generate-artwork.ts","../src/resources/cover-audio.ts","../src/resources/add-instrumental.ts","../src/resources/add-vocals.ts","../src/resources/separate-audio-stems.ts","../src/resources/generate-midi.ts","../src/resources/convert-audio.ts","../src/resources/visualize-music.ts","../src/resources/generate-lyrics.ts","../src/resources/get-timestamped-lyrics.ts","../src/resources/replace-section.ts","../src/resources/create-mashup.ts","../src/resources/text-to-sound.ts","../src/resources/generate-persona.ts","../src/resources/boost-style.ts","../src/resources/voice-to-validation-phrase.ts","../src/resources/regenerate-validation-phrase.ts","../src/resources/generate-voice.ts","../src/resources/check-voice.ts"],"sourcesContent":["export { SunoClient } from './client';\nexport * from './types';\n\n// Re-export common errors from core for convenience\nexport {\n RunApiError,\n AuthenticationError,\n InsufficientCreditsError,\n NotFoundError,\n ValidationError,\n RateLimitError,\n ServiceUnavailableError,\n NetworkError,\n TimeoutError,\n TaskTimeoutError,\n TaskFailedError,\n} from '@runapi.ai/core';\n","import { BaseClient, type ClientOptions } from '@runapi.ai/core';\nimport { TextToMusic } from './resources/text-to-music';\nimport { ExtendMusic } from './resources/extend-music';\nimport { GenerateArtwork } from './resources/generate-artwork';\nimport { CoverAudio } from './resources/cover-audio';\nimport { AddInstrumental } from './resources/add-instrumental';\nimport { AddVocals } from './resources/add-vocals';\nimport { SeparateAudioStems } from './resources/separate-audio-stems';\nimport { GenerateMidi } from './resources/generate-midi';\nimport { ConvertAudio } from './resources/convert-audio';\nimport { VisualizeMusic } from './resources/visualize-music';\nimport { GenerateLyrics } from './resources/generate-lyrics';\nimport { GetTimestampedLyrics } from './resources/get-timestamped-lyrics';\nimport { ReplaceSection } from './resources/replace-section';\nimport { CreateMashup } from './resources/create-mashup';\nimport { TextToSound } from './resources/text-to-sound';\nimport { GeneratePersona } from './resources/generate-persona';\nimport { BoostStyle } from './resources/boost-style';\nimport { VoiceToValidationPhrase } from './resources/voice-to-validation-phrase';\nimport { RegenerateValidationPhrase } from './resources/regenerate-validation-phrase';\nimport { GenerateVoice } from './resources/generate-voice';\nimport { CheckVoice } from './resources/check-voice';\n\n/**\n * Suno music platform client covering song generation, extension, covers, stems,\n * MIDI, lyrics, mashups, sound effects, visualization, personas, and voice cloning.\n *\n * @example\n * ```typescript\n * const client = new SunoClient({\n * apiKey: 'your-api-key',\n * baseUrl: 'https://runapi.ai',\n * });\n *\n * const result = await client.textToMusic.run({\n * prompt: 'A chill lo-fi beat with soft vocals',\n * model: 'suno-v4.5-plus',\n * });\n * ```\n */\nexport class SunoClient extends BaseClient {\n /** Generates songs from a text prompt with configurable vocal mode, style, and persona. */\n public readonly textToMusic: TextToMusic;\n /** Continues an existing track from a specified timestamp, inheriting or overriding its settings. */\n public readonly extendMusic: ExtendMusic;\n /** Creates cover artwork for an existing music task. */\n public readonly generateArtwork: GenerateArtwork;\n /** Re-records vocals over an uploaded audio file with a new style or voice. */\n public readonly coverAudio: CoverAudio;\n /** Generates and adds an instrumental backing track to uploaded audio. */\n public readonly addInstrumental: AddInstrumental;\n /** Generates and adds vocals to an uploaded instrumental track. */\n public readonly addVocals: AddVocals;\n /** Splits a track into individual instrument stems (vocals, drums, bass, guitar, etc.). */\n public readonly separateAudioStems: SeparateAudioStems;\n /** Extracts per-instrument MIDI note data from a generated track. */\n public readonly generateMidi: GenerateMidi;\n /** Converts a generated track to WAV format. */\n public readonly convertAudio: ConvertAudio;\n /** Generates a music visualization video from an existing track. */\n public readonly visualizeMusic: VisualizeMusic;\n /** Produces AI-generated lyrics from a text prompt. */\n public readonly generateLyrics: GenerateLyrics;\n /** Retrieves word-level timing alignment for a track. Synchronous (run only). */\n public readonly getTimestampedLyrics: GetTimestampedLyrics;\n /** Re-generates a time range within an existing track with new lyrics and style. */\n public readonly replaceSection: ReplaceSection;\n /** Blends two audio tracks into a single new composition. */\n public readonly createMashup: CreateMashup;\n /** Generates sound effects (not music) from a text description with optional looping and BPM control. */\n public readonly textToSound: TextToSound;\n /** Creates a reusable style or voice persona from a track's vocals. Synchronous (run only). */\n public readonly generatePersona: GeneratePersona;\n /** Generates style/genre tags from a text description for use in style fields. Synchronous (run only). */\n public readonly boostStyle: BoostStyle;\n /** Step 1 of voice cloning: extracts a validation phrase from a voice recording. */\n public readonly voiceToValidationPhrase: VoiceToValidationPhrase;\n /** Step 2 (optional) of voice cloning: requests a new, easier validation phrase. */\n public readonly regenerateValidationPhrase: RegenerateValidationPhrase;\n /** Step 3 of voice cloning: trains a custom voice from the user's recording of the validation phrase. */\n public readonly generateVoice: GenerateVoice;\n /** Step 4 of voice cloning: checks whether a custom voice is ready for use. Synchronous (run only). */\n public readonly checkVoice: CheckVoice;\n\n constructor(options: ClientOptions = {}) {\n super(options);\n this.textToMusic = new TextToMusic(this.http);\n this.extendMusic = new ExtendMusic(this.http);\n this.generateArtwork = new GenerateArtwork(this.http);\n this.coverAudio = new CoverAudio(this.http);\n this.addInstrumental = new AddInstrumental(this.http);\n this.addVocals = new AddVocals(this.http);\n this.separateAudioStems = new SeparateAudioStems(this.http);\n this.generateMidi = new GenerateMidi(this.http);\n this.convertAudio = new ConvertAudio(this.http);\n this.visualizeMusic = new VisualizeMusic(this.http);\n this.generateLyrics = new GenerateLyrics(this.http);\n this.getTimestampedLyrics = new GetTimestampedLyrics(this.http);\n this.replaceSection = new ReplaceSection(this.http);\n this.createMashup = new CreateMashup(this.http);\n this.textToSound = new TextToSound(this.http);\n this.generatePersona = new GeneratePersona(this.http);\n this.boostStyle = new BoostStyle(this.http);\n this.voiceToValidationPhrase = new VoiceToValidationPhrase(this.http);\n this.regenerateValidationPhrase = new RegenerateValidationPhrase(this.http);\n this.generateVoice = new GenerateVoice(this.http);\n this.checkVoice = new CheckVoice(this.http);\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions, ActionSchema } from '@runapi.ai/core';\nimport { compactParams, validateParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport { contract } from '../contract_gen';\nimport type { CompletedTextToMusicResponse, TextToMusicParams, TextToMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/text_to_music';\n\n/** Generates songs from a text prompt with configurable vocal mode, style, and persona. */\nexport class TextToMusic {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Create a text to music task and wait until complete.\n * @param params Text to music parameters.\n * @param options Per-request and polling overrides.\n * @returns The completed text to music response.\n */\n async run(params: TextToMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedTextToMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<TextToMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedTextToMusicResponse;\n }\n\n /**\n * Create a text to music task; returns immediately with a task id.\n * @param params Text to music parameters.\n * @param options Per-request overrides.\n * @returns The task creation result.\n */\n async create(params: TextToMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n const body = compactParams(params);\n validateParams(contract['text-to-music'] as ActionSchema, body as Record<string, unknown>);\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body,\n ...options,\n });\n }\n\n /**\n * Fetch the current status of a text to music task.\n * @param id The task id.\n * @param options Per-request overrides.\n * @returns The current text to music task status.\n */\n async get(id: string, options?: RequestOptions): Promise<TextToMusicResponse> {\n return this.http.request<TextToMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","export const contract = {\n \"add-instrumental\": {\n \"models\": [\n \"suno-v4.5-plus\",\n \"suno-v5\",\n \"suno-v5.5\"\n ],\n \"fields_by_model\": {\n \"suno-v4.5-plus\": {\n \"model\": {\n \"required\": true\n },\n \"upload_url\": {\n \"required\": true\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n }\n },\n \"suno-v5\": {\n \"model\": {\n \"required\": true\n },\n \"upload_url\": {\n \"required\": true\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n }\n },\n \"suno-v5.5\": {\n \"model\": {\n \"required\": true\n },\n \"upload_url\": {\n \"required\": true\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n }\n }\n }\n },\n \"add-vocals\": {\n \"models\": [\n \"suno-v4.5-plus\",\n \"suno-v5\"\n ],\n \"fields_by_model\": {\n \"suno-v4.5-plus\": {\n \"lyrics\": {\n \"required\": true\n },\n \"model\": {\n \"required\": true\n },\n \"upload_url\": {\n \"required\": true\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n }\n },\n \"suno-v5\": {\n \"lyrics\": {\n \"required\": true\n },\n \"model\": {\n \"required\": true\n },\n \"upload_url\": {\n \"required\": true\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n }\n }\n }\n },\n \"boost-style\": {\n \"models\": [],\n \"fields_by_model\": {\n \"_\": {}\n }\n },\n \"check-voice\": {\n \"models\": [],\n \"fields_by_model\": {\n \"_\": {\n \"task_id\": {\n \"required\": true\n }\n }\n }\n },\n \"convert-audio\": {\n \"models\": [],\n \"fields_by_model\": {\n \"_\": {}\n }\n },\n \"cover-audio\": {\n \"models\": [\n \"suno-v4\",\n \"suno-v4.5\",\n \"suno-v4.5-all\",\n \"suno-v4.5-plus\",\n \"suno-v5\",\n \"suno-v5.5\"\n ],\n \"fields_by_model\": {\n \"suno-v4\": {\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"upload_url\": {\n \"required\": true\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n },\n \"suno-v4.5\": {\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"upload_url\": {\n \"required\": true\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n },\n \"suno-v4.5-all\": {\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"upload_url\": {\n \"required\": true\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n },\n \"suno-v4.5-plus\": {\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"upload_url\": {\n \"required\": true\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n },\n \"suno-v5\": {\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"upload_url\": {\n \"required\": true\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n },\n \"suno-v5.5\": {\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"upload_url\": {\n \"required\": true\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n }\n },\n \"rules\": [\n {\n \"when\": {\n \"vocal_mode\": \"auto_lyrics\"\n },\n \"required\": [\n \"prompt\"\n ],\n \"forbidden\": [\n \"lyrics\",\n \"style\",\n \"title\"\n ]\n },\n {\n \"when\": {\n \"vocal_mode\": \"exact_lyrics\"\n },\n \"required\": [\n \"lyrics\",\n \"style\",\n \"title\"\n ],\n \"forbidden\": [\n \"prompt\"\n ]\n },\n {\n \"when\": {\n \"vocal_mode\": \"instrumental\"\n },\n \"required\": [\n \"style\",\n \"title\"\n ],\n \"forbidden\": [\n \"prompt\",\n \"lyrics\"\n ]\n }\n ]\n },\n \"create-mashup\": {\n \"models\": [\n \"suno-v4\",\n \"suno-v4.5\",\n \"suno-v4.5-all\",\n \"suno-v4.5-plus\",\n \"suno-v5\",\n \"suno-v5.5\"\n ],\n \"fields_by_model\": {\n \"suno-v4\": {\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"upload_url_list\": {\n \"required\": true\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n },\n \"suno-v4.5\": {\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"upload_url_list\": {\n \"required\": true\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n },\n \"suno-v4.5-all\": {\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"upload_url_list\": {\n \"required\": true\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n },\n \"suno-v4.5-plus\": {\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"upload_url_list\": {\n \"required\": true\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n },\n \"suno-v5\": {\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"upload_url_list\": {\n \"required\": true\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n },\n \"suno-v5.5\": {\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"upload_url_list\": {\n \"required\": true\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n }\n },\n \"rules\": [\n {\n \"when\": {\n \"vocal_mode\": \"auto_lyrics\"\n },\n \"required\": [\n \"prompt\"\n ],\n \"forbidden\": [\n \"lyrics\",\n \"style\",\n \"title\"\n ]\n },\n {\n \"when\": {\n \"vocal_mode\": \"exact_lyrics\"\n },\n \"required\": [\n \"lyrics\",\n \"style\",\n \"title\"\n ],\n \"forbidden\": [\n \"prompt\"\n ]\n },\n {\n \"when\": {\n \"vocal_mode\": \"instrumental\"\n },\n \"required\": [\n \"style\",\n \"title\"\n ],\n \"forbidden\": [\n \"prompt\",\n \"lyrics\"\n ]\n }\n ]\n },\n \"extend-music\": {\n \"models\": [\n \"suno-v4\",\n \"suno-v4.5\",\n \"suno-v4.5-all\",\n \"suno-v4.5-plus\",\n \"suno-v5\",\n \"suno-v5.5\"\n ],\n \"fields_by_model\": {\n \"suno-v4\": {\n \"model\": {\n \"required\": true\n },\n \"parameter_mode\": {\n \"enum\": [\n \"source\",\n \"custom\"\n ]\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n }\n },\n \"suno-v4.5\": {\n \"model\": {\n \"required\": true\n },\n \"parameter_mode\": {\n \"enum\": [\n \"source\",\n \"custom\"\n ]\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n }\n },\n \"suno-v4.5-all\": {\n \"model\": {\n \"required\": true\n },\n \"parameter_mode\": {\n \"enum\": [\n \"source\",\n \"custom\"\n ]\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n }\n },\n \"suno-v4.5-plus\": {\n \"model\": {\n \"required\": true\n },\n \"parameter_mode\": {\n \"enum\": [\n \"source\",\n \"custom\"\n ]\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n }\n },\n \"suno-v5\": {\n \"model\": {\n \"required\": true\n },\n \"parameter_mode\": {\n \"enum\": [\n \"source\",\n \"custom\"\n ]\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n }\n },\n \"suno-v5.5\": {\n \"model\": {\n \"required\": true\n },\n \"parameter_mode\": {\n \"enum\": [\n \"source\",\n \"custom\"\n ]\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n }\n }\n }\n },\n \"generate-artwork\": {\n \"models\": [],\n \"fields_by_model\": {\n \"_\": {\n \"task_id\": {\n \"required\": true\n }\n }\n }\n },\n \"generate-lyrics\": {\n \"models\": [],\n \"fields_by_model\": {\n \"_\": {}\n }\n },\n \"generate-midi\": {\n \"models\": [],\n \"fields_by_model\": {\n \"_\": {}\n }\n },\n \"generate-persona\": {\n \"models\": [],\n \"fields_by_model\": {\n \"_\": {}\n }\n },\n \"generate-voice\": {\n \"models\": [],\n \"fields_by_model\": {\n \"_\": {\n \"singer_skill_level\": {\n \"enum\": [\n \"beginner\",\n \"intermediate\",\n \"advanced\",\n \"professional\"\n ]\n },\n \"task_id\": {\n \"required\": true\n },\n \"verify_url\": {\n \"required\": true\n }\n }\n }\n },\n \"get-timestamped-lyrics\": {\n \"models\": [],\n \"fields_by_model\": {\n \"_\": {}\n }\n },\n \"regenerate-validation-phrase\": {\n \"models\": [],\n \"fields_by_model\": {\n \"_\": {\n \"task_id\": {\n \"required\": true\n }\n }\n }\n },\n \"replace-section\": {\n \"models\": [],\n \"fields_by_model\": {\n \"_\": {\n \"full_lyrics\": {\n \"required\": true\n },\n \"infill_end_time\": {\n \"required\": true\n },\n \"infill_start_time\": {\n \"required\": true\n },\n \"lyrics\": {\n \"required\": true\n },\n \"model\": {\n \"enum\": [\n \"suno-v4\",\n \"suno-v4.5\",\n \"suno-v4.5-all\",\n \"suno-v4.5-plus\",\n \"suno-v5\",\n \"suno-v5.5\"\n ]\n },\n \"tags\": {\n \"required\": true\n },\n \"title\": {\n \"required\": true\n }\n }\n }\n },\n \"separate-audio-stems\": {\n \"models\": [],\n \"fields_by_model\": {\n \"_\": {\n \"audio_id\": {\n \"required\": true\n },\n \"task_id\": {\n \"required\": true\n }\n }\n }\n },\n \"text-to-music\": {\n \"models\": [\n \"suno-v4\",\n \"suno-v4.5\",\n \"suno-v4.5-all\",\n \"suno-v4.5-plus\",\n \"suno-v5\",\n \"suno-v5.5\"\n ],\n \"fields_by_model\": {\n \"suno-v4\": {\n \"duration_seconds\": {\n \"type\": \"integer\"\n },\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n },\n \"suno-v4.5\": {\n \"duration_seconds\": {\n \"type\": \"integer\"\n },\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n },\n \"suno-v4.5-all\": {\n \"duration_seconds\": {\n \"type\": \"integer\"\n },\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n },\n \"suno-v4.5-plus\": {\n \"duration_seconds\": {\n \"type\": \"integer\"\n },\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n },\n \"suno-v5\": {\n \"duration_seconds\": {\n \"type\": \"integer\"\n },\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n },\n \"suno-v5.5\": {\n \"duration_seconds\": {\n \"type\": \"integer\"\n },\n \"model\": {\n \"required\": true\n },\n \"persona_type\": {\n \"enum\": [\n \"style\",\n \"voice\"\n ]\n },\n \"vocal_gender\": {\n \"enum\": [\n \"male\",\n \"female\"\n ]\n },\n \"vocal_mode\": {\n \"enum\": [\n \"auto_lyrics\",\n \"exact_lyrics\",\n \"instrumental\"\n ],\n \"required\": true\n }\n }\n },\n \"rules\": [\n {\n \"when\": {\n \"vocal_mode\": \"auto_lyrics\"\n },\n \"required\": [\n \"prompt\"\n ],\n \"forbidden\": [\n \"lyrics\",\n \"style\",\n \"title\"\n ]\n },\n {\n \"when\": {\n \"vocal_mode\": \"exact_lyrics\"\n },\n \"required\": [\n \"lyrics\",\n \"style\",\n \"title\"\n ],\n \"forbidden\": [\n \"prompt\"\n ]\n },\n {\n \"when\": {\n \"vocal_mode\": \"instrumental\"\n },\n \"required\": [\n \"style\",\n \"title\"\n ],\n \"forbidden\": [\n \"prompt\",\n \"lyrics\"\n ]\n }\n ]\n },\n \"text-to-sound\": {\n \"models\": [\n \"suno-v5\",\n \"suno-v5.5\"\n ],\n \"fields_by_model\": {\n \"suno-v5\": {\n \"model\": {\n \"required\": true\n },\n \"prompt\": {\n \"required\": true\n },\n \"sound_key\": {\n \"enum\": [\n \"Cm\",\n \"C#m\",\n \"Dm\",\n \"D#m\",\n \"Em\",\n \"Fm\",\n \"F#m\",\n \"Gm\",\n \"G#m\",\n \"Am\",\n \"A#m\",\n \"Bm\",\n \"C\",\n \"C#\",\n \"D\",\n \"D#\",\n \"E\",\n \"F\",\n \"F#\",\n \"G\",\n \"G#\",\n \"A\",\n \"A#\",\n \"B\"\n ]\n },\n \"sound_tempo\": {\n \"type\": \"integer\"\n }\n },\n \"suno-v5.5\": {\n \"model\": {\n \"required\": true\n },\n \"prompt\": {\n \"required\": true\n },\n \"sound_key\": {\n \"enum\": [\n \"Cm\",\n \"C#m\",\n \"Dm\",\n \"D#m\",\n \"Em\",\n \"Fm\",\n \"F#m\",\n \"Gm\",\n \"G#m\",\n \"Am\",\n \"A#m\",\n \"Bm\",\n \"C\",\n \"C#\",\n \"D\",\n \"D#\",\n \"E\",\n \"F\",\n \"F#\",\n \"G\",\n \"G#\",\n \"A\",\n \"A#\",\n \"B\"\n ]\n },\n \"sound_tempo\": {\n \"type\": \"integer\"\n }\n }\n }\n },\n \"visualize-music\": {\n \"models\": [],\n \"fields_by_model\": {\n \"_\": {}\n }\n },\n \"voice-to-validation-phrase\": {\n \"models\": [],\n \"fields_by_model\": {\n \"_\": {\n \"language\": {\n \"enum\": [\n \"en\",\n \"zh\",\n \"es\",\n \"fr\",\n \"pt\",\n \"de\",\n \"ja\",\n \"ko\",\n \"hi\",\n \"ru\"\n ]\n },\n \"vocal_end_seconds\": {\n \"required\": true,\n \"type\": \"integer\"\n },\n \"vocal_start_seconds\": {\n \"required\": true,\n \"type\": \"integer\"\n }\n }\n }\n }\n} as const;\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedExtendMusicResponse, ExtendMusicParams, ExtendMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/extend_music';\n\n/** Continues an existing track from a specified timestamp, inheriting or overriding its settings. */\nexport class ExtendMusic {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Create an extend music task and wait until complete.\n * @param params Extend music parameters.\n * @param options Per-request and polling overrides.\n * @returns The completed extend music response.\n */\n async run(params: ExtendMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedExtendMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ExtendMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedExtendMusicResponse;\n }\n\n /**\n * Create an extend music task; returns immediately with a task id.\n * @param params Extend music parameters.\n * @param options Per-request overrides.\n * @returns The task creation result.\n */\n async create(params: ExtendMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n /**\n * Fetch the current status of an extend music task.\n * @param id The task id.\n * @param options Per-request overrides.\n * @returns The current extend music task status.\n */\n async get(id: string, options?: RequestOptions): Promise<ExtendMusicResponse> {\n return this.http.request<ExtendMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateArtworkResponse, GenerateArtworkParams, GenerateArtworkResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_artwork';\n\n/** Creates cover artwork for an existing music task. */\nexport class GenerateArtwork {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Create a generate artwork task and wait until complete.\n * @param params Generate artwork parameters.\n * @param options Per-request and polling overrides.\n * @returns The completed generate artwork response.\n */\n async run(params: GenerateArtworkParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateArtworkResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateArtworkResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateArtworkResponse;\n }\n\n /**\n * Create a generate artwork task; returns immediately with a task id.\n * @param params Generate artwork parameters.\n * @param options Per-request overrides.\n * @returns The task creation result.\n */\n async create(params: GenerateArtworkParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n /**\n * Fetch the current status of a generate artwork task.\n * @param id The task id.\n * @param options Per-request overrides.\n * @returns The current generate artwork task status.\n */\n async get(id: string, options?: RequestOptions): Promise<GenerateArtworkResponse> {\n return this.http.request<GenerateArtworkResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions, ActionSchema } from '@runapi.ai/core';\nimport { compactParams, validateParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport { contract } from '../contract_gen';\nimport type { CompletedCoverAudioResponse, CoverAudioParams, CoverAudioResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/cover_audio';\n\n/** Re-records vocals over an uploaded audio file with a new style or voice. */\nexport class CoverAudio {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Create a cover audio task and wait until complete.\n * @param params Cover audio parameters.\n * @param options Per-request and polling overrides.\n * @returns The completed cover audio response.\n */\n async run(params: CoverAudioParams, options?: RequestOptions & PollingOptions): Promise<CompletedCoverAudioResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<CoverAudioResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedCoverAudioResponse;\n }\n\n /**\n * Create a cover audio task; returns immediately with a task id.\n * @param params Cover audio parameters.\n * @param options Per-request overrides.\n * @returns The task creation result.\n */\n async create(params: CoverAudioParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n const body = compactParams(params);\n validateParams(contract['cover-audio'] as ActionSchema, body as Record<string, unknown>);\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body,\n ...options,\n });\n }\n\n /**\n * Fetch the current status of a cover audio task.\n * @param id The task id.\n * @param options Per-request overrides.\n * @returns The current cover audio task status.\n */\n async get(id: string, options?: RequestOptions): Promise<CoverAudioResponse> {\n return this.http.request<CoverAudioResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedAddInstrumentalResponse, AddInstrumentalParams, AddInstrumentalResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/add_instrumental';\n\n/** Generates and adds an instrumental backing track to uploaded audio. */\nexport class AddInstrumental {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Create an add instrumental task and wait until complete.\n * @param params Add instrumental parameters.\n * @param options Per-request and polling overrides.\n * @returns The completed add instrumental response.\n */\n async run(params: AddInstrumentalParams, options?: RequestOptions & PollingOptions): Promise<CompletedAddInstrumentalResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<AddInstrumentalResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedAddInstrumentalResponse;\n }\n\n /**\n * Create an add instrumental task; returns immediately with a task id.\n * @param params Add instrumental parameters.\n * @param options Per-request overrides.\n * @returns The task creation result.\n */\n async create(params: AddInstrumentalParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n /**\n * Fetch the current status of an add instrumental task.\n * @param id The task id.\n * @param options Per-request overrides.\n * @returns The current add instrumental task status.\n */\n async get(id: string, options?: RequestOptions): Promise<AddInstrumentalResponse> {\n return this.http.request<AddInstrumentalResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedAddVocalsResponse, AddVocalsParams, AddVocalsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/add_vocals';\n\n/** Generates and adds vocals to an uploaded instrumental track. */\nexport class AddVocals {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Create an add vocals task and wait until complete.\n * @param params Add vocals parameters.\n * @param options Per-request and polling overrides.\n * @returns The completed add vocals response.\n */\n async run(params: AddVocalsParams, options?: RequestOptions & PollingOptions): Promise<CompletedAddVocalsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<AddVocalsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedAddVocalsResponse;\n }\n\n /**\n * Create an add vocals task; returns immediately with a task id.\n * @param params Add vocals parameters.\n * @param options Per-request overrides.\n * @returns The task creation result.\n */\n async create(params: AddVocalsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n /**\n * Fetch the current status of an add vocals task.\n * @param id The task id.\n * @param options Per-request overrides.\n * @returns The current add vocals task status.\n */\n async get(id: string, options?: RequestOptions): Promise<AddVocalsResponse> {\n return this.http.request<AddVocalsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedSeparateAudioStemsResponse, SeparateAudioStemsParams, SeparateAudioStemsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/separate_audio_stems';\n\n/** Splits a track into individual instrument stems (vocals, drums, bass, guitar, etc.). */\nexport class SeparateAudioStems {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Create a separate audio stems task and wait until complete.\n * @param params Separate audio stems parameters.\n * @param options Per-request and polling overrides.\n * @returns The completed separate audio stems response.\n */\n async run(params: SeparateAudioStemsParams, options?: RequestOptions & PollingOptions): Promise<CompletedSeparateAudioStemsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<SeparateAudioStemsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedSeparateAudioStemsResponse;\n }\n\n /**\n * Create a separate audio stems task; returns immediately with a task id.\n * @param params Separate audio stems parameters.\n * @param options Per-request overrides.\n * @returns The task creation result.\n */\n async create(params: SeparateAudioStemsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n /**\n * Fetch the current status of a separate audio stems task.\n * @param id The task id.\n * @param options Per-request overrides.\n * @returns The current separate audio stems task status.\n */\n async get(id: string, options?: RequestOptions): Promise<SeparateAudioStemsResponse> {\n return this.http.request<SeparateAudioStemsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateMidiResponse, GenerateMidiParams, GenerateMidiResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_midi';\n\n/** Extracts per-instrument MIDI note data from a generated track. */\nexport class GenerateMidi {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Create a generate midi task and wait until complete.\n * @param params Generate midi parameters.\n * @param options Per-request and polling overrides.\n * @returns The completed generate midi response.\n */\n async run(params: GenerateMidiParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateMidiResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateMidiResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateMidiResponse;\n }\n\n /**\n * Create a generate midi task; returns immediately with a task id.\n * @param params Generate midi parameters.\n * @param options Per-request overrides.\n * @returns The task creation result.\n */\n async create(params: GenerateMidiParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n /**\n * Fetch the current status of a generate midi task.\n * @param id The task id.\n * @param options Per-request overrides.\n * @returns The current generate midi task status.\n */\n async get(id: string, options?: RequestOptions): Promise<GenerateMidiResponse> {\n return this.http.request<GenerateMidiResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedConvertAudioResponse, ConvertAudioParams, ConvertAudioResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/convert_audio';\n\n/** Converts a generated track to WAV format. */\nexport class ConvertAudio {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Create a convert audio task and wait until complete.\n * @param params Convert audio parameters.\n * @param options Per-request and polling overrides.\n * @returns The completed convert audio response.\n */\n async run(params: ConvertAudioParams, options?: RequestOptions & PollingOptions): Promise<CompletedConvertAudioResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ConvertAudioResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedConvertAudioResponse;\n }\n\n /**\n * Create a convert audio task; returns immediately with a task id.\n * @param params Convert audio parameters.\n * @param options Per-request overrides.\n * @returns The task creation result.\n */\n async create(params: ConvertAudioParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n /**\n * Fetch the current status of a convert audio task.\n * @param id The task id.\n * @param options Per-request overrides.\n * @returns The current convert audio task status.\n */\n async get(id: string, options?: RequestOptions): Promise<ConvertAudioResponse> {\n return this.http.request<ConvertAudioResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedVisualizeMusicResponse, VisualizeMusicParams, VisualizeMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/visualize_music';\n\n/** Generates a music visualization video from an existing track. */\nexport class VisualizeMusic {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Create a visualize music task and wait until complete.\n * @param params Visualize music parameters.\n * @param options Per-request and polling overrides.\n * @returns The completed visualize music response.\n */\n async run(params: VisualizeMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedVisualizeMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<VisualizeMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedVisualizeMusicResponse;\n }\n\n /**\n * Create a visualize music task; returns immediately with a task id.\n * @param params Visualize music parameters.\n * @param options Per-request overrides.\n * @returns The task creation result.\n */\n async create(params: VisualizeMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n /**\n * Fetch the current status of a visualize music task.\n * @param id The task id.\n * @param options Per-request overrides.\n * @returns The current visualize music task status.\n */\n async get(id: string, options?: RequestOptions): Promise<VisualizeMusicResponse> {\n return this.http.request<VisualizeMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateLyricsResponse, GenerateLyricsParams, GenerateLyricsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_lyrics';\n\n/** Produces AI-generated lyrics from a text prompt. */\nexport class GenerateLyrics {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Create a generate lyrics task and wait until complete.\n * @param params Generate lyrics parameters.\n * @param options Per-request and polling overrides.\n * @returns The completed generate lyrics response.\n */\n async run(params: GenerateLyricsParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateLyricsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateLyricsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateLyricsResponse;\n }\n\n /**\n * Create a generate lyrics task; returns immediately with a task id.\n * @param params Generate lyrics parameters.\n * @param options Per-request overrides.\n * @returns The task creation result.\n */\n async create(params: GenerateLyricsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n /**\n * Fetch the current status of a generate lyrics task.\n * @param id The task id.\n * @param options Per-request overrides.\n * @returns The current generate lyrics task status.\n */\n async get(id: string, options?: RequestOptions): Promise<GenerateLyricsResponse> {\n return this.http.request<GenerateLyricsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { GetTimestampedLyricsParams, GetTimestampedLyricsResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/get_timestamped_lyrics';\n\n/** Retrieves word-level timing alignment for a track. Synchronous (run only, no create/get polling). */\nexport class GetTimestampedLyrics {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Run get timestamped lyrics (synchronous).\n * @param params Get timestamped lyrics parameters.\n * @param options Per-request overrides.\n * @returns The get timestamped lyrics response.\n */\n async run(params: GetTimestampedLyricsParams, options?: RequestOptions): Promise<GetTimestampedLyricsResponse> {\n return this.http.request<GetTimestampedLyricsResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions, ActionSchema } from '@runapi.ai/core';\nimport { compactParams, validateParams, ValidationError } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport { contract } from '../contract_gen';\nimport type { CompletedReplaceSectionResponse, ReplaceSectionParams, ReplaceSectionResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/replace_section';\n\n/** Re-generates a time range within an existing track with new lyrics and style. */\nexport class ReplaceSection {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Create a replace section task and wait until complete.\n * @param params Replace section parameters.\n * @param options Per-request and polling overrides.\n * @returns The completed replace section response.\n */\n async run(params: ReplaceSectionParams, options?: RequestOptions & PollingOptions): Promise<CompletedReplaceSectionResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ReplaceSectionResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedReplaceSectionResponse;\n }\n\n /**\n * Create a replace section task; returns immediately with a task id.\n * @param params Replace section parameters.\n * @param options Per-request overrides.\n * @returns The task creation result.\n */\n async create(params: ReplaceSectionParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n const body = compactParams(params);\n validateParams(contract['replace-section'] as ActionSchema, body as Record<string, unknown>);\n validateReplaceSection(body as Record<string, unknown>);\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body,\n ...options,\n });\n }\n\n /**\n * Fetch the current status of a replace section task.\n * @param id The task id.\n * @param options Per-request overrides.\n * @returns The current replace section task status.\n */\n async get(id: string, options?: RequestOptions): Promise<ReplaceSectionResponse> {\n return this.http.request<ReplaceSectionResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n\nfunction validateReplaceSection(body: Record<string, unknown>): void {\n validateReplaceSectionSource(body);\n\n const startTime = body.infill_start_time;\n const endTime = body.infill_end_time;\n if (typeof startTime !== 'number' || Number.isNaN(startTime)) {\n throw new ValidationError('infill_start_time must be a number');\n }\n if (typeof endTime !== 'number' || Number.isNaN(endTime)) {\n throw new ValidationError('infill_end_time must be a number');\n }\n if (endTime <= startTime) {\n throw new ValidationError('infill_end_time must be greater than infill_start_time');\n }\n\n const duration = endTime - startTime;\n if (duration < 6 || duration > 60) {\n throw new ValidationError('replacement duration must be between 6 and 60 seconds');\n }\n}\n\nfunction validateReplaceSectionSource(body: Record<string, unknown>): void {\n const hasExistingSource = isPresent(body.task_id) || isPresent(body.audio_id);\n const hasUploadedSource = isPresent(body.upload_url) || isPresent(body.model);\n\n if (hasExistingSource && hasUploadedSource) {\n throw new ValidationError('task_id/audio_id cannot be combined with upload_url/model');\n }\n\n if (hasExistingSource) {\n requireField(body, 'task_id');\n requireField(body, 'audio_id');\n return;\n }\n\n if (hasUploadedSource) {\n requireField(body, 'upload_url');\n requireField(body, 'model');\n return;\n }\n\n throw new ValidationError('task_id and audio_id, or upload_url and model are required');\n}\n\nfunction requireField(body: Record<string, unknown>, field: string): void {\n if (!isPresent(body[field])) {\n throw new ValidationError(`${field} is required`);\n }\n}\n\nfunction isPresent(value: unknown): boolean {\n if (value === undefined || value === null) {\n return false;\n }\n if (typeof value === 'string') {\n return value.length > 0;\n }\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n return true;\n}\n","import type { HttpClient, RequestOptions, PollingOptions, ActionSchema } from '@runapi.ai/core';\nimport { compactParams, validateParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport { contract } from '../contract_gen';\nimport type { CompletedCreateMashupResponse, CreateMashupParams, CreateMashupResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/create_mashup';\n\n/** Blends two audio tracks into a single new composition. */\nexport class CreateMashup {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Create a create mashup task and wait until complete.\n * @param params Create mashup parameters.\n * @param options Per-request and polling overrides.\n * @returns The completed create mashup response.\n */\n async run(params: CreateMashupParams, options?: RequestOptions & PollingOptions): Promise<CompletedCreateMashupResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<CreateMashupResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedCreateMashupResponse;\n }\n\n /**\n * Create a create mashup task; returns immediately with a task id.\n * @param params Create mashup parameters.\n * @param options Per-request overrides.\n * @returns The task creation result.\n */\n async create(params: CreateMashupParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n const body = compactParams(params);\n validateParams(contract['create-mashup'] as ActionSchema, body as Record<string, unknown>);\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body,\n ...options,\n });\n }\n\n /**\n * Fetch the current status of a create mashup task.\n * @param id The task id.\n * @param options Per-request overrides.\n * @returns The current create mashup task status.\n */\n async get(id: string, options?: RequestOptions): Promise<CreateMashupResponse> {\n return this.http.request<CreateMashupResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedTextToSoundResponse, TextToSoundParams, TextToSoundResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/text_to_sound';\n\n/** Generates sound effects (not music) from a text description with optional looping and BPM control. */\nexport class TextToSound {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Create a text to sound task and wait until complete.\n * @param params Text to sound parameters.\n * @param options Per-request and polling overrides.\n * @returns The completed text to sound response.\n */\n async run(params: TextToSoundParams, options?: RequestOptions & PollingOptions): Promise<CompletedTextToSoundResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<TextToSoundResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedTextToSoundResponse;\n }\n\n /**\n * Create a text to sound task; returns immediately with a task id.\n * @param params Text to sound parameters.\n * @param options Per-request overrides.\n * @returns The task creation result.\n */\n async create(params: TextToSoundParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n /**\n * Fetch the current status of a text to sound task.\n * @param id The task id.\n * @param options Per-request overrides.\n * @returns The current text to sound task status.\n */\n async get(id: string, options?: RequestOptions): Promise<TextToSoundResponse> {\n return this.http.request<TextToSoundResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { GeneratePersonaParams, GeneratePersonaResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_persona';\n\n/** Creates a reusable style or voice persona from an existing track's vocals. Synchronous (run only). */\nexport class GeneratePersona {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Run generate persona (synchronous).\n * @param params Generate persona parameters.\n * @param options Per-request overrides.\n * @returns The generate persona response.\n */\n async run(params: GeneratePersonaParams, options?: RequestOptions): Promise<GeneratePersonaResponse> {\n return this.http.request<GeneratePersonaResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { BoostStyleParams, BoostStyleResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/boost_style';\n\n/** Generates style/genre tags from a text description for use in style fields. Synchronous (run only). */\nexport class BoostStyle {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Run boost style (synchronous).\n * @param params Boost style parameters.\n * @param options Per-request overrides.\n * @returns The boost style response.\n */\n async run(params: BoostStyleParams, options?: RequestOptions): Promise<BoostStyleResponse> {\n return this.http.request<BoostStyleResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type {\n CompletedValidationPhraseResponse,\n TaskCreateResponse,\n ValidationPhraseResponse,\n VoiceToValidationPhraseParams,\n} from '../types';\n\nconst ENDPOINT = '/api/v1/suno/voice_to_validation_phrase';\n\n/** Step 1 of voice cloning: extracts a validation phrase from a voice recording for the user to re-record. */\nexport class VoiceToValidationPhrase {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Create a voice to validation phrase task and wait until complete.\n * @param params Voice to validation phrase parameters.\n * @param options Per-request and polling overrides.\n * @returns The completed voice to validation phrase response.\n */\n async run(params: VoiceToValidationPhraseParams, options?: RequestOptions & PollingOptions): Promise<CompletedValidationPhraseResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ValidationPhraseResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedValidationPhraseResponse;\n }\n\n /**\n * Create a voice to validation phrase task; returns immediately with a task id.\n * @param params Voice to validation phrase parameters.\n * @param options Per-request overrides.\n * @returns The task creation result.\n */\n async create(params: VoiceToValidationPhraseParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n /**\n * Fetch the current status of a voice to validation phrase task.\n * @param id The task id.\n * @param options Per-request overrides.\n * @returns The current voice to validation phrase task status.\n */\n async get(id: string, options?: RequestOptions): Promise<ValidationPhraseResponse> {\n return this.http.request<ValidationPhraseResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type {\n CompletedValidationPhraseResponse,\n RegenerateValidationPhraseParams,\n TaskCreateResponse,\n ValidationPhraseResponse,\n} from '../types';\n\nconst ENDPOINT = '/api/v1/suno/regenerate_validation_phrase';\n\n/** Step 2 (optional) of voice cloning: requests a new, easier validation phrase. */\nexport class RegenerateValidationPhrase {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Create a regenerate validation phrase task and wait until complete.\n * @param params Regenerate validation phrase parameters.\n * @param options Per-request and polling overrides.\n * @returns The completed regenerate validation phrase response.\n */\n async run(params: RegenerateValidationPhraseParams, options?: RequestOptions & PollingOptions): Promise<CompletedValidationPhraseResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ValidationPhraseResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedValidationPhraseResponse;\n }\n\n /**\n * Create a regenerate validation phrase task; returns immediately with a task id.\n * @param params Regenerate validation phrase parameters.\n * @param options Per-request overrides.\n * @returns The task creation result.\n */\n async create(params: RegenerateValidationPhraseParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n /**\n * Fetch the current status of a regenerate validation phrase task.\n * @param id The task id.\n * @param options Per-request overrides.\n * @returns The current regenerate validation phrase task status.\n */\n async get(id: string, options?: RequestOptions): Promise<ValidationPhraseResponse> {\n return this.http.request<ValidationPhraseResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type {\n CompletedVoiceGenerationResponse,\n GenerateVoiceParams,\n TaskCreateResponse,\n VoiceGenerationResponse,\n} from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_voice';\n\n/** Step 3 of voice cloning: trains a custom voice from the user's recording of the validation phrase. */\nexport class GenerateVoice {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Create a generate voice task and wait until complete.\n * @param params Generate voice parameters.\n * @param options Per-request and polling overrides.\n * @returns The completed generate voice response.\n */\n async run(params: GenerateVoiceParams, options?: RequestOptions & PollingOptions): Promise<CompletedVoiceGenerationResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<VoiceGenerationResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedVoiceGenerationResponse;\n }\n\n /**\n * Create a generate voice task; returns immediately with a task id.\n * @param params Generate voice parameters.\n * @param options Per-request overrides.\n * @returns The task creation result.\n */\n async create(params: GenerateVoiceParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n /**\n * Fetch the current status of a generate voice task.\n * @param id The task id.\n * @param options Per-request overrides.\n * @returns The current generate voice task status.\n */\n async get(id: string, options?: RequestOptions): Promise<VoiceGenerationResponse> {\n return this.http.request<VoiceGenerationResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { CheckVoiceParams, CheckVoiceResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/check_voice';\n\n/** Step 4 of voice cloning: checks whether a custom voice is ready for use. Synchronous (run only). */\nexport class CheckVoice {\n constructor(private readonly http: HttpClient) {}\n\n /**\n * Run check voice (synchronous).\n * @param params Check voice parameters.\n * @param options Per-request overrides.\n * @returns The check voice response.\n */\n async run(params: CheckVoiceParams, options?: RequestOptions): Promise<CheckVoiceResponse> {\n return this.http.request<CheckVoiceResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n"],"mappings":"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","names":["import_core","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","ENDPOINT","import_core","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","ENDPOINT","import_core"]}