Add fal.ai ElevenLabs speech and fix Google TTS routing - #482
Conversation
calesthio
left a comment
There was a problem hiding this comment.
Thank you for the careful work on shared-key ElevenLabs access and the Google TTS credential boundary. The three focused provider/network test files pass locally (13 passed), and the key-redaction behavior is a meaningful improvement.
This draft is not merge-ready yet:
- GitHub reports the branch as conflicting with current
main; please update the branch and re-run the resulting suite. - The diff mixes two new paid fal.ai provider tools, TTS-selector/schema changes, animation-pipeline changes, agent-governance changes, and a process-level Google networking workaround. Per the scope-hygiene rubric, please split the Google TTS IPv4/scoped-key fix from the fal.ai ElevenLabs provider addition, or otherwise narrow the PR so each risk can be reviewed independently.
- Neither new paid provider is documented in
docs/PROVIDERS.mdwith model availability, fal.ai pricing/billing units, queue limits, and known limitations. The current tests assert prices, but the user-facing provider docs do not establish those claims. - The TTS tests prove direct tool discovery/execution but not the normal
tts_selectorroute. Please add a mocked selector test showing explicit fal.ai selection, model/voice parameter mapping, and no direct ElevenLabs key requirement. _google_tts_network_family()temporarily replaces urllib3's process-globalallowed_gai_family. The lock only serializes callers of this context manager; unrelated provider requests in other threads can be forced to IPv4 while the global is patched. Please use a request/session-local transport adapter or otherwise eliminate the cross-provider global networking side effect.
The broader contract run also did not complete within two minutes in this environment, while the three focused files did. Please include the updated full-suite result after rebasing. Thanks again?the core shared-provider idea is useful, and these changes will make it safer to land.
# Conflicts: # skills/pipelines/animation/asset-director.md
calesthio
left a comment
There was a problem hiding this comment.
Thank you for the fal ElevenLabs TTS integration and Google TTS fixes. Provider scoping and selector coverage are complete, the branch is current, and CI passes. This is merge-ready.
# Conflicts: # docs/PROVIDERS.md
calesthio
left a comment
There was a problem hiding this comment.
Re-approved after preserving fal ElevenLabs TTS/music alongside the newly merged Seedream provider documentation. Focused and full hosted tests pass.
Stupidly simple explanation
Google voice generation was using the wrong network route, and OpenMontage could use ElevenLabs music through fal.ai but not speech. This adds secure fal.ai speech support, fixes Google TTS routing, and stops agents asking shared-installation users to paste API keys.
What changed
fal_elevenlabs_ttswith Eleven v3, Multilingual v2, and Turbo v2.5tts_selectorWhy
The Google key is restricted to the production IPv4, while the client was connecting over IPv6 and receiving HTTP 403. Separately, fal.ai already offers ElevenLabs speech models, but OpenMontage only had a music wrapper, which led the agent to suggest an unnecessary direct ElevenLabs key.
Validation
madu: HTTP 200, 99 voicesmadu: Google TTS, fal.ai ElevenLabs TTS, fal.ai ElevenLabs Music, and Piper all available