Added
- Speech-to-text providers gain an extra request body field: a JSON object merged into the transcription request, for parameters HGA does not expose as its own fields. Available on both the OpenAI and Local provider types and merged last, so it can also override a parameter HGA sets, such as
modelorresponse_format. It cannot setstream,fileorinput_audio, which decide how the audio and the response are carried rather than how the audio is transcribed. - Local (OpenAI-compatible) STT providers gain a request format option: Multipart upload (the default and previous behavior) or JSON with base64 audio. The JSON shape posts the audio inline under
input_audioinstead of uploading it as a form file, which is what OpenRouter's transcription endpoint natively speaks. This makes provider-specific options such as keyword biasing (provider.options) reachable — OpenRouter's multipart endpoint is an OpenAI compatibility layer that accepts onlyfile,model,language,temperature,response_formatandtimestamp_granularities, so a nestedproviderblock was dropped there regardless of how it was encoded. The JSON request goes through the same configured client, so the pinned timeout, no-retry policy and keyless-Authorization handling are unchanged. It has no translations endpoint, sotranslatedegrades to transcription with a warning, and it does not send thepromptfield, which is not part of that request shape (OpenRouter ignoresprompton multipart as well). Multipart remains the default and the only option for the OpenAI provider type, whose API accepts nothing else. (#610)
Full changelog: https://github.com/goruck/home-generative-agent/blob/main/CHANGELOG.md
PR: #631