From 43c7b6235cc5589b8de38e61f047381240544ecc Mon Sep 17 00:00:00 2001 From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com> Date: Fri, 31 Jul 2026 02:51:46 +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 | 2 +- .gitignore | 2 -- src/agora_agent/core/client_wrapper.py | 4 +-- src/agora_agent/types/ares_asr_params.py | 24 ++++++++++++- src/agora_agent/types/asr.py | 3 +- src/agora_agent/types/fengming_asr.py | 6 ++-- src/agora_agent/types/fengming_asr_params.py | 27 ++++++++++++++ src/agora_agent/types/mllm.py | 5 +++ src/agora_agent/types/mllm_vendor.py | 2 +- src/agora_agent/types/tts.py | 17 +++++++++ src/agora_agent/types/typecast_tts.py | 29 +++++++++++++++ src/agora_agent/types/typecast_tts_params.py | 37 ++++++++++++++++++++ 12 files changed, 146 insertions(+), 12 deletions(-) create mode 100644 src/agora_agent/types/fengming_asr_params.py create mode 100644 src/agora_agent/types/typecast_tts.py create mode 100644 src/agora_agent/types/typecast_tts_params.py diff --git a/.fern/metadata.json b/.fern/metadata.json index bbed517..04f281f 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -13,5 +13,5 @@ }, "exclude_types_from_init_exports": true }, - "originGitCommit": "7edea35eef2583c1cb4860d7941275b0cd7ce900" + "originGitCommit": "8994613e045586856dab7b5eab43920dce0154c4" } \ 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 0197f21..b4179b8 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.5.0", + "User-Agent": "agora-agents/v2.6.0", "X-Fern-Language": "Python", "X-Fern-SDK-Name": "agora-agents", - "X-Fern-SDK-Version": "v2.5.0", + "X-Fern-SDK-Version": "v2.6.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/ares_asr_params.py b/src/agora_agent/types/ares_asr_params.py index afa1d76..be409ae 100644 --- a/src/agora_agent/types/ares_asr_params.py +++ b/src/agora_agent/types/ares_asr_params.py @@ -2,4 +2,26 @@ import typing -AresAsrParams = typing.Dict[str, typing.Any] +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class AresAsrParams(UncheckedBaseModel): + """ + ARES ASR configuration parameters. + """ + + keywords: typing.Optional[typing.List[str]] = pydantic.Field(default=None) + """ + A list of hotwords to improve ASR accuracy. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/agora_agent/types/asr.py b/src/agora_agent/types/asr.py index bd3d538..fea592b 100644 --- a/src/agora_agent/types/asr.py +++ b/src/agora_agent/types/asr.py @@ -13,6 +13,7 @@ from .asr_language import AsrLanguage from .assembly_ai_asr_params import AssemblyAiAsrParams from .deepgram_asr_params import DeepgramAsrParams +from .fengming_asr_params import FengmingAsrParams from .google_asr_params import GoogleAsrParams from .microsoft_asr_params import MicrosoftAsrParams from .open_ai_asr_params import OpenAiAsrParams @@ -43,7 +44,7 @@ class Config: class Asr_Fengming(UncheckedBaseModel): vendor: typing.Literal["fengming"] = "fengming" language: typing.Optional[AsrLanguage] = None - params: typing.Optional[typing.Dict[str, typing.Any]] = None + params: typing.Optional[FengmingAsrParams] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/agora_agent/types/fengming_asr.py b/src/agora_agent/types/fengming_asr.py index 84fe7e0..bb45b68 100644 --- a/src/agora_agent/types/fengming_asr.py +++ b/src/agora_agent/types/fengming_asr.py @@ -6,6 +6,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2 from ..core.unchecked_base_model import UncheckedBaseModel from .asr_language import AsrLanguage +from .fengming_asr_params import FengmingAsrParams class FengmingAsr(UncheckedBaseModel): @@ -14,10 +15,7 @@ class FengmingAsr(UncheckedBaseModel): """ language: typing.Optional[AsrLanguage] = None - params: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) - """ - Agora Fengming ASR configuration parameters. - """ + params: typing.Optional[FengmingAsrParams] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/agora_agent/types/fengming_asr_params.py b/src/agora_agent/types/fengming_asr_params.py new file mode 100644 index 0000000..1a32523 --- /dev/null +++ b/src/agora_agent/types/fengming_asr_params.py @@ -0,0 +1,27 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class FengmingAsrParams(UncheckedBaseModel): + """ + Agora Fengming ASR configuration parameters. + """ + + keywords: typing.Optional[typing.List[str]] = pydantic.Field(default=None) + """ + A list of hotwords to improve ASR accuracy. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/agora_agent/types/mllm.py b/src/agora_agent/types/mllm.py index 3bcdb95..acc7171 100644 --- a/src/agora_agent/types/mllm.py +++ b/src/agora_agent/types/mllm.py @@ -51,6 +51,11 @@ class Mllm(UncheckedBaseModel): """ params: typing.Optional[MllmParams] = None + max_history: typing.Optional[int] = pydantic.Field(default=None) + """ + The number of conversation history messages cached in the MLLM. Applicable to Azure OpenAI Realtime API only. + """ + input_modalities: typing.Optional[typing.List[str]] = pydantic.Field(default=None) """ MLLM input modalities. diff --git a/src/agora_agent/types/mllm_vendor.py b/src/agora_agent/types/mllm_vendor.py index 61c4d1a..6da87bb 100644 --- a/src/agora_agent/types/mllm_vendor.py +++ b/src/agora_agent/types/mllm_vendor.py @@ -2,4 +2,4 @@ import typing -MllmVendor = typing.Union[typing.Literal["openai", "gemini", "vertexai", "xai"], typing.Any] +MllmVendor = typing.Union[typing.Literal["openai", "azure", "gemini", "vertexai", "xai", "qwen_omni"], typing.Any] diff --git a/src/agora_agent/types/tts.py b/src/agora_agent/types/tts.py index fd6538c..662a81c 100644 --- a/src/agora_agent/types/tts.py +++ b/src/agora_agent/types/tts.py @@ -30,6 +30,7 @@ from .sarvam_tts_params import SarvamTtsParams from .stepfun_tts_params import StepfunTtsParams from .tencent_tts_params import TencentTtsParams +from .typecast_tts_params import TypecastTtsParams from .x_ai_tts_params import XAiTtsParams @@ -366,6 +367,21 @@ class Config: extra = pydantic.Extra.allow +class Tts_Typecast(UncheckedBaseModel): + vendor: typing.Literal["typecast"] = "typecast" + params: TypecastTtsParams + skip_patterns: typing.Optional[typing.List[int]] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + Tts = typing_extensions.Annotated[ typing.Union[ Tts_Tencent, @@ -390,6 +406,7 @@ class Config: Tts_Stepfun, Tts_Gradium, Tts_Mistral, + Tts_Typecast, ], UnionMetadata(discriminant="vendor"), ] diff --git a/src/agora_agent/types/typecast_tts.py b/src/agora_agent/types/typecast_tts.py new file mode 100644 index 0000000..ad5fb54 --- /dev/null +++ b/src/agora_agent/types/typecast_tts.py @@ -0,0 +1,29 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .typecast_tts_params import TypecastTtsParams + + +class TypecastTts(UncheckedBaseModel): + """ + Typecast Text-to-Speech configuration. + """ + + params: TypecastTtsParams + skip_patterns: typing.Optional[typing.List[int]] = pydantic.Field(default=None) + """ + Controls whether the TTS module skips bracketed content when reading LLM response text. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/agora_agent/types/typecast_tts_params.py b/src/agora_agent/types/typecast_tts_params.py new file mode 100644 index 0000000..13ab6e4 --- /dev/null +++ b/src/agora_agent/types/typecast_tts_params.py @@ -0,0 +1,37 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class TypecastTtsParams(UncheckedBaseModel): + """ + Typecast TTS configuration parameters. + """ + + api_key: str = pydantic.Field() + """ + Typecast API key. + """ + + voice_id: str = pydantic.Field() + """ + Typecast voice identifier (for example, "tc_60e5426de8b95f1d3000d7b5"). + """ + + model: str = pydantic.Field() + """ + Typecast TTS model name (for example, "ssfm-v30"). + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow From 0d4106bc7b6d5956f68042aebdd0a564f188649f Mon Sep 17 00:00:00 2001 From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com> Date: Fri, 31 Jul 2026 02:51:46 +0000 Subject: [PATCH 2/2] [fern-replay] Applied customizations Patches applied (1): - patch-13d8e068: chore: ignore local venv and planning docs --- .fern/replay.lock | 10 ++++++++-- .gitignore | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.fern/replay.lock b/.fern/replay.lock index 3f1540d..07a3233 100644 --- a/.fern/replay.lock +++ b/.fern/replay.lock @@ -24,14 +24,20 @@ generations: cli_version: unknown generator_versions: fernapi/fern-python-sdk: 4.37.0 -current_generation: 3b186f61b2dc118550a60bf2af4d8352ee6872b2 + - commit_sha: 74db6c7a490c2ed50d9b514d8af87dbd54192e4e + tree_hash: 8da87fc0647f65a8fff7346a67d59df5694a3f46 + timestamp: 2026-07-31T02:51:43.946Z + cli_version: unknown + generator_versions: + fernapi/fern-python-sdk: 4.37.0 +current_generation: 74db6c7a490c2ed50d9b514d8af87dbd54192e4e 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: 3b186f61b2dc118550a60bf2af4d8352ee6872b2 + base_generation: 74db6c7a490c2ed50d9b514d8af87dbd54192e4e 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/