From b2bc54a855084b6cb33a170aaf7bd0ae4b23bf75 Mon Sep 17 00:00:00 2001 From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com> Date: Fri, 17 Jul 2026 09:40:21 +0000 Subject: [PATCH 1/2] [fern-generated] Update SDK Generated by Fern CLI Version: unknown Generators: - fernapi/fern-python-sdk: 4.37.0 --- .fern/metadata.json | 4 ++-- .gitignore | 2 -- src/agora_agent/core/client_wrapper.py | 4 ++-- .../types/{generic_tts.py => generic_http_tts.py} | 8 ++++---- ...eric_tts_params.py => generic_http_tts_params.py} | 6 +++--- src/agora_agent/types/tts.py | 12 ++++++------ 6 files changed, 17 insertions(+), 19 deletions(-) rename src/agora_agent/types/{generic_tts.py => generic_http_tts.py} (81%) rename src/agora_agent/types/{generic_tts_params.py => generic_http_tts_params.py} (88%) diff --git a/.fern/metadata.json b/.fern/metadata.json index 6d6f1d1..7452a11 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -1,5 +1,5 @@ { - "cliVersion": "5.0.0", + "cliVersion": "5.59.0", "generatorName": "fernapi/fern-python-sdk", "generatorVersion": "4.37.0", "generatorConfig": { @@ -13,5 +13,5 @@ }, "exclude_types_from_init_exports": true }, - "originGitCommit": "b55cdf73dddbda3aa248668eefd04d21d60ee675" + "originGitCommit": "f168d571c2aee1449f24daa2e314b45862fb093f" } \ No newline at end of file diff --git a/.gitignore b/.gitignore index 3e30921..d2e4ca8 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,3 @@ __pycache__/ dist/ poetry.toml -.venv/ -docs/superpowers/ diff --git a/src/agora_agent/core/client_wrapper.py b/src/agora_agent/core/client_wrapper.py index 30e5ec8..0197f21 100644 --- a/src/agora_agent/core/client_wrapper.py +++ b/src/agora_agent/core/client_wrapper.py @@ -26,10 +26,10 @@ def __init__( def get_headers(self) -> typing.Dict[str, str]: headers: typing.Dict[str, str] = { - "User-Agent": "agora-agents/v2.3.2", + "User-Agent": "agora-agents/v2.5.0", "X-Fern-Language": "Python", "X-Fern-SDK-Name": "agora-agents", - "X-Fern-SDK-Version": "v2.3.2", + "X-Fern-SDK-Version": "v2.5.0", **(self.get_custom_headers() or {}), } headers["Authorization"] = httpx.BasicAuth(self._get_username(), self._get_password())._auth_header diff --git a/src/agora_agent/types/generic_tts.py b/src/agora_agent/types/generic_http_tts.py similarity index 81% rename from src/agora_agent/types/generic_tts.py rename to src/agora_agent/types/generic_http_tts.py index 85800c7..d077009 100644 --- a/src/agora_agent/types/generic_tts.py +++ b/src/agora_agent/types/generic_http_tts.py @@ -5,10 +5,10 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2 from ..core.unchecked_base_model import UncheckedBaseModel -from .generic_tts_params import GenericTtsParams +from .generic_http_tts_params import GenericHttpTtsParams -class GenericTts(UncheckedBaseModel): +class GenericHttpTts(UncheckedBaseModel): """ Generic OpenAI-compatible Text-to-Speech configuration. """ @@ -18,12 +18,12 @@ class GenericTts(UncheckedBaseModel): Callback address of the generic TTS service. """ - headers: typing.Dict[str, str] = pydantic.Field() + headers: typing.Optional[typing.Dict[str, str]] = pydantic.Field(default=None) """ Custom headers to include in requests to the generic TTS service. """ - params: GenericTtsParams + params: GenericHttpTtsParams skip_patterns: typing.Optional[typing.List[int]] = pydantic.Field(default=None) """ Controls whether the TTS module skips bracketed content when reading LLM response text. diff --git a/src/agora_agent/types/generic_tts_params.py b/src/agora_agent/types/generic_http_tts_params.py similarity index 88% rename from src/agora_agent/types/generic_tts_params.py rename to src/agora_agent/types/generic_http_tts_params.py index 55ff3d8..9a721db 100644 --- a/src/agora_agent/types/generic_tts_params.py +++ b/src/agora_agent/types/generic_http_tts_params.py @@ -7,7 +7,7 @@ from ..core.unchecked_base_model import UncheckedBaseModel -class GenericTtsParams(UncheckedBaseModel): +class GenericHttpTtsParams(UncheckedBaseModel): """ Generic TTS configuration parameters. """ @@ -17,12 +17,12 @@ class GenericTtsParams(UncheckedBaseModel): API key for the generic TTS service. """ - model: str = pydantic.Field() + model: typing.Optional[str] = pydantic.Field(default=None) """ TTS model name. """ - voice: str = pydantic.Field() + voice: typing.Optional[str] = pydantic.Field(default=None) """ Voice name. """ diff --git a/src/agora_agent/types/tts.py b/src/agora_agent/types/tts.py index 894561e..63f9af3 100644 --- a/src/agora_agent/types/tts.py +++ b/src/agora_agent/types/tts.py @@ -16,7 +16,7 @@ from .deepgram_tts_params import DeepgramTtsParams from .eleven_labs_tts_params import ElevenLabsTtsParams from .fish_audio_tts_params import FishAudioTtsParams -from .generic_tts_params import GenericTtsParams +from .generic_http_tts_params import GenericHttpTtsParams from .google_tts_params import GoogleTtsParams from .hume_ai_tts_params import HumeAiTtsParams from .microsoft_tts_params import MicrosoftTtsParams @@ -240,11 +240,11 @@ class Config: extra = pydantic.Extra.allow -class Tts_Generic(UncheckedBaseModel): - vendor: typing.Literal["generic"] = "generic" +class Tts_GenericHttp(UncheckedBaseModel): + vendor: typing.Literal["generic_http"] = "generic_http" url: str - headers: typing.Dict[str, str] - params: GenericTtsParams + headers: typing.Optional[typing.Dict[str, str]] = None + params: GenericHttpTtsParams skip_patterns: typing.Optional[typing.List[int]] = None if IS_PYDANTIC_V2: @@ -348,7 +348,7 @@ class Config: Tts_Google, Tts_Amazon, Tts_Sarvam, - Tts_Generic, + Tts_GenericHttp, Tts_Xai, Tts_Deepgram, Tts_Cosyvoice, From 01fc014fe825dd9118a0adc5c5caa7b47b3a562b Mon Sep 17 00:00:00 2001 From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com> Date: Fri, 17 Jul 2026 09:40:21 +0000 Subject: [PATCH 2/2] [fern-replay] Applied customizations Patches applied (1): - patch-13d8e068: chore: ignore local venv and planning docs --- .fern/replay.lock | 38 ++++++++++++++++++++++++++++++++++++-- .gitignore | 2 ++ 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/.fern/replay.lock b/.fern/replay.lock index 25d36f2..a5f87d6 100644 --- a/.fern/replay.lock +++ b/.fern/replay.lock @@ -6,5 +6,39 @@ generations: timestamp: 2026-06-24T07:53:51.170Z cli_version: unknown generator_versions: {} -current_generation: a9cf0efc179bcee59600b45740a8fb468f44bc79 -patches: [] + - commit_sha: 48efb3f0323e159baa685ae14818f33523522779 + tree_hash: 01aedcde67c62fa3683f2be36e1b2a11bf852fba + timestamp: 2026-07-17T09:40:18.918Z + cli_version: unknown + generator_versions: + fernapi/fern-python-sdk: 4.37.0 +current_generation: 48efb3f0323e159baa685ae14818f33523522779 +patches: + - id: patch-13d8e068 + content_hash: sha256:97d879ab169016b9abaf1866427a8ebc45af608f69e063a07e5126c9613c329b + original_commit: 13d8e0683ffa08bcfc9a381eb9604adf5abdbe0b + original_message: "chore: ignore local venv and planning docs" + original_author: plutoless + base_generation: 48efb3f0323e159baa685ae14818f33523522779 + files: + - .gitignore + patch_content: | + diff --git a/.gitignore b/.gitignore + index d2e4ca8..3e30921 100644 + --- a/.gitignore + +++ b/.gitignore + @@ -3,3 +3,5 @@ + __pycache__/ + dist/ + poetry.toml + +.venv/ + +docs/superpowers/ + theirs_snapshot: + .gitignore: | + .mypy_cache/ + .ruff_cache/ + __pycache__/ + dist/ + poetry.toml + .venv/ + docs/superpowers/ diff --git a/.gitignore b/.gitignore index d2e4ca8..3e30921 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ __pycache__/ dist/ poetry.toml +.venv/ +docs/superpowers/