# Catalog-dispatched speech-to-text

`execute_stt(STTRequest)` is the only package entry point for speech recognition. It resolves the
request's model through `resolve_call_profile`, requires the `stt` execution channel, obtains the
registered provider client from `UnifiedAIClient`, and calls the `STTClient` protocol.

Provider adapters own only structural I/O and response parsing. The catalog-level controls (`language`,
`response_format`, `timestamp_granularities`, `stt_prompt`, `temperature`) compile from
`ai.api.rules` and `ai.offering.override`. Provider model id, endpoint/vendor identity, pricing,
and usage basis come from `ResolvedCallProfile`.

Audio fallback uses `AudioContent.get_transcription_async()` and preserves the STT offering id and
billing basis when it adds usage to the parent AI request. The graph action uses the same result
and computes its `AiUsage.cost_usd` through the warmed catalog pricing lookup.

Standalone hosts inject a normal `model_catalog` entry with a registered `*_stt` wire format.
There is no ORM import and no provider/model fallback constant in the package.
