Commit 5dfb1aa
feat(agent): support multi-provider speak/think configuration and typed listen parameters (#676)
## Summary
- **Agent multi-provider TTS**: Configurable speak providers (AWS Polly,
Cartesia, Deepgram, ElevenLabs, OpenAI) with endpoint settings and
runtime updates
- **Agent think restructured**: Multi-provider think settings with
per-item configuration
- **Typed listen parameters**: v1/v2 listen clients now use typed
aliases (`ListenV1Model`, `ListenV2Encoding`, etc.) instead of raw
strings — backward-compatible
- **Native unknown WS message handling**: Generator now includes
try/except with logging across all socket clients
- **Fern generator upgrade**: `4.57.2` → `4.62.0`, CLI `3.77.1` →
`4.46.0`
## Manual patches re-applied
- `float` → `int` type fixes for `speaker`, `channel`, `num_words`
fields (3 type files)
- `_sanitize_numeric_types` helper in agent socket client
- `construct_type` keyword arg fix — generator uses positional args but
function signature is keyword-only
- Broad `except Exception` catch in socket clients to support custom
transports
## Known issues
- 1 wire test failure (`test_manage_v1_projects_requests_list_`): Fern
datetime serialization drops milliseconds, mismatching its own WireMock
stub — Fern generator bug, not SDK
## Test plan
- [x] `ruff check` passes
- [x] `mypy` passes (844 source files)
- [x] 72 custom tests pass
- [x] 28/29 wire tests pass (1 Fern datetime bug)
---------
Co-authored-by: fern-api[bot] <115122769+fern-api[bot]@users.noreply.github.com>1 parent 74f48c5 commit 5dfb1aa
386 files changed
Lines changed: 7398 additions & 2579 deletions
File tree
- .fern
- src/deepgram
- agent
- v1
- requests
- types
- core
- listen
- v1
- media
- types
- requests
- types
- v2
- requests
- types
- read/v1
- text
- types
- requests
- self_hosted/v1
- distribution_credentials
- types
- speak
- v1
- requests
- types
- types
- tests
- wire
- wiremock
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
| 20 | + | |
20 | 21 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | 7 | | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
| 8 | + | |
| 9 | + | |
19 | 10 | | |
20 | | - | |
| 11 | + | |
| 12 | + | |
21 | 13 | | |
22 | 14 | | |
23 | | - | |
| 15 | + | |
24 | 16 | | |
25 | 17 | | |
| 18 | + | |
26 | 19 | | |
27 | 20 | | |
28 | 21 | | |
29 | 22 | | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | 23 | | |
38 | 24 | | |
39 | 25 | | |
| |||
75 | 61 | | |
76 | 62 | | |
77 | 63 | | |
78 | | - | |
| 64 | + | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
0 commit comments