Skip to content
GitHub

API Reference

Talks to an ace_step_server.py reference server via MusicProvider.
__init__
def __init__(
    base_url: str,
    timeout: float = 120.0,
    retry: RetryPolicyProtocol | None = None,
    circuit_breaker: CircuitBreakerProtocol | None = None
) -> None
generate
async def generate(request: MusicRequest) -> Result[MediaAsset, MusicGenerationError]

Music generation integration.
configure
def configure(
    cls,
    config: MusicConfig | None = None
) -> DynamicModule
stub
def stub(
    cls,
    config: MusicConfig | None = None
) -> DynamicModule

Provider that registers a configured MusicProvider backend.
__init__
def __init__(config: MusicConfig | None = None) -> None
register
async def register(container: ContainerRegistrarProtocol) -> None
boot
async def boot(container: ContainerResolverProtocol) -> None

No async I/O needed at boot beyond what register() already did.

health_check
async def health_check(timeout: float = 5.0) -> HealthCheckResult

Talks to a self-hosted music generation HTTP server.

No SDK dependency — this is the always-available zero-extra backend.

__init__
def __init__(
    base_url: str,
    timeout: float = 60.0,
    retry: RetryPolicyProtocol | None = None,
    circuit_breaker: CircuitBreakerProtocol | None = None
) -> None
generate
async def generate(request: MusicRequest) -> Result[MediaAsset, MusicGenerationError]

Configuration for the music generation subsystem.

Callable task handler — wraps a MusicProvider backend for lexigram-tasks.

Returns a plain dict (never raw MediaAsset bytes) because lexigram-tasks’ result store JSON-serializes JobResult. The umbrella wraps this handler during MultimediaProvider.register() to persist any bytes to lexigram-storage BEFORE this dict is constructed — see the “Async job model” section of the design spec.

__init__
def __init__(backend: MusicProvider) -> None
run
async def run(params: dict[str, Any]) -> dict[str, Any]

__init__
def __init__(
    *args: object,
    **kwargs: object
) -> None

Talks to a stable_audio_open_server.py reference server via MusicProvider.
__init__
def __init__(
    base_url: str,
    timeout: float = 45.0,
    retry: RetryPolicyProtocol | None = None,
    circuit_breaker: CircuitBreakerProtocol | None = None
) -> None
generate
async def generate(request: MusicRequest) -> Result[MediaAsset, MusicGenerationError]