Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .fern/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"skip_validation": true
}
},
"originGitCommit": "05bd7add608b322a6278fa20da22f2ed501d50ef",
"originGitCommit": "d1854cf6d560a0e27c9f46c1d83a6d7d9924f045",
"originGitCommitIsDirty": true,
"invokedBy": "manual",
"sdkVersion": "7.0.1"
Expand Down
34 changes: 34 additions & 0 deletions .fernignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,26 +17,60 @@ src/deepgram/listen/v1/socket_client.py
src/deepgram/listen/v2/socket_client.py
src/deepgram/speak/v1/socket_client.py

# Backward-compat patch: AgentV1SettingsAgentContext schema restructure as of
# 2026-05-05. The new schema nests messages under .context.messages; this file
# carries a model_validator(mode='before') that accepts the legacy `messages=`
# kwarg and remaps it to `context={"messages": ...}` so existing callers keep
# producing the correct wire payload, plus a read-side `.messages` property so
# existing attribute access keeps working.
src/deepgram/agent/v1/types/agent_v1settings_agent_context.py
src/deepgram/agent/v1/types/agent_v1settings_agent.py
src/deepgram/agent/v1/types/agent_v1settings.py
src/deepgram/agent/v1/types/agent_v1settings_audio_output.py
src/deepgram/agent/v1/requests/agent_v1settings_agent_context.py
src/deepgram/agent/v1/requests/agent_v1settings_agent.py
src/deepgram/agent/v1/requests/agent_v1settings.py

# Backward-compatibility alias shims for renamed generated public types/params.
# These are hand-written wrappers around the current generated names and must not be regenerated.
src/deepgram/agent/v1/types/agent_v1history_content.py
src/deepgram/agent/v1/types/agent_v1history_function_calls.py
src/deepgram/agent/v1/types/agent_v1settings_agent_context_messages_item.py
src/deepgram/agent/v1/types/agent_v1settings_agent_context_messages_item_content.py
src/deepgram/agent/v1/types/agent_v1settings_agent_context_messages_item_content_role.py
src/deepgram/agent/v1/types/agent_v1settings_agent_context_messages_item_function_calls.py
src/deepgram/agent/v1/types/agent_v1settings_agent_context_messages_item_function_calls_function_calls_item.py
src/deepgram/agent/v1/requests/agent_v1history_content.py
src/deepgram/agent/v1/requests/agent_v1history_function_calls.py
src/deepgram/agent/v1/requests/agent_v1settings_agent_context_messages_item.py
src/deepgram/agent/v1/requests/agent_v1settings_agent_context_messages_item_content.py
src/deepgram/agent/v1/requests/agent_v1settings_agent_context_messages_item_function_calls.py
src/deepgram/agent/v1/requests/agent_v1settings_agent_context_messages_item_function_calls_function_calls_item.py
src/deepgram/types/create_key_v1request_one.py
src/deepgram/requests/create_key_v1request_one.py

# Package __init__.py files that carry hand-applied legacy alias re-exports for the
# above shims. Fern would otherwise regenerate these and strip the legacy entries on
# every regen. Frozen to preserve the public-import surface for renamed types/params.
# Re-apply genuine new generator additions to these files manually after each regen.
src/deepgram/__init__.py
src/deepgram/agent/__init__.py
src/deepgram/agent/v1/__init__.py
src/deepgram/agent/v1/types/__init__.py
src/deepgram/agent/v1/requests/__init__.py
src/deepgram/types/__init__.py
src/deepgram/requests/__init__.py

# Hand-written custom tests
tests/custom/test_agent_history.py
tests/custom/test_compat_aliases.py
tests/custom/test_text_builder.py
tests/custom/test_transport.py
tests/typecheck/compat_aliases.py

# Wire test with restored compatibility coverage for legacy create-key request alias
tests/wire/test_manage_v1_projects_keys.py

# Manual standalone tests
tests/manual

Expand Down
8 changes: 6 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ How to identify:
Current permanently frozen files:
- `src/deepgram/client.py` — entirely custom (Bearer auth, session ID); no Fern equivalent
- `src/deepgram/helpers/` — hand-written TextBuilder helpers
- `src/deepgram/agent/v1/types/agent_v1history_content.py`, `src/deepgram/agent/v1/types/agent_v1history_function_calls.py`, `src/deepgram/agent/v1/types/agent_v1settings_agent_context_messages_item_content.py`, `src/deepgram/agent/v1/types/agent_v1settings_agent_context_messages_item_function_calls.py` — hand-written compatibility aliases preserving old public Agent History type imports after regen renames
- `src/deepgram/agent/v1/requests/agent_v1history_content.py`, `src/deepgram/agent/v1/requests/agent_v1history_function_calls.py`, `src/deepgram/agent/v1/requests/agent_v1settings_agent_context_messages_item_content.py`, `src/deepgram/agent/v1/requests/agent_v1settings_agent_context_messages_item_function_calls.py` — hand-written compatibility aliases preserving old public Agent History request-param imports after regen renames
- `src/deepgram/agent/v1/types/agent_v1history_content.py`, `src/deepgram/agent/v1/types/agent_v1history_function_calls.py`, `src/deepgram/agent/v1/types/agent_v1settings_agent_context_messages_item.py`, `src/deepgram/agent/v1/types/agent_v1settings_agent_context_messages_item_content.py`, `src/deepgram/agent/v1/types/agent_v1settings_agent_context_messages_item_content_role.py`, `src/deepgram/agent/v1/types/agent_v1settings_agent_context_messages_item_function_calls.py`, `src/deepgram/agent/v1/types/agent_v1settings_agent_context_messages_item_function_calls_function_calls_item.py` — hand-written compatibility aliases preserving old public Agent History type imports after regen renames
- `src/deepgram/agent/v1/requests/agent_v1history_content.py`, `src/deepgram/agent/v1/requests/agent_v1history_function_calls.py`, `src/deepgram/agent/v1/requests/agent_v1settings_agent_context_messages_item.py`, `src/deepgram/agent/v1/requests/agent_v1settings_agent_context_messages_item_content.py`, `src/deepgram/agent/v1/requests/agent_v1settings_agent_context_messages_item_function_calls.py`, `src/deepgram/agent/v1/requests/agent_v1settings_agent_context_messages_item_function_calls_function_calls_item.py` — hand-written compatibility aliases preserving old public Agent History request-param imports after regen renames
- `src/deepgram/types/create_key_v1request_one.py`, `src/deepgram/requests/create_key_v1request_one.py` — hand-written compatibility aliases preserving the old public create-key request imports after the regen rename to `CreateKeyV1Request`
- `src/deepgram/transport_interface.py`, `src/deepgram/transport.py`, `src/deepgram/transports/` — custom transport layer
- `tests/custom/test_agent_history.py` — hand-written regression test for Agent History websocket payload parsing
Expand All @@ -50,6 +50,10 @@ Current temporarily frozen files:
- `src/deepgram/listen/v1/socket_client.py` — same
- `src/deepgram/listen/v2/socket_client.py` — same + `send_configure` typing.Any/raw shim, response Union uses typing.Any instead of `ListenV2ConfigureSuccess`
- `src/deepgram/agent/v1/socket_client.py` — same + `_sanitize_numeric_types`
- `src/deepgram/agent/v1/types/agent_v1settings_agent_context.py`, `src/deepgram/agent/v1/types/agent_v1settings_agent.py`, `src/deepgram/agent/v1/types/agent_v1settings.py`, `src/deepgram/agent/v1/requests/agent_v1settings_agent_context.py`, `src/deepgram/agent/v1/requests/agent_v1settings_agent.py`, `src/deepgram/agent/v1/requests/agent_v1settings.py` — backward-compat patches for the 2026-05-05 Agent Settings schema restructure. These preserve callable `AgentV1SettingsAgent(...)`, keep `AgentV1Settings.agent` accepting both that wrapper and `agent_id` strings, restore the legacy request TypedDict shapes, remap legacy `messages=[...]` / nested `context=AgentV1SettingsAgentContext(messages=[...])` usage into the new `context={"messages": [...]}` wire shape, and keep read-side `obj.messages` access working.
- `src/deepgram/agent/v1/types/agent_v1settings_audio_output.py` — keeps `audio.output.container` typed as `str` for backward compatibility instead of the regenerated enum alias
- `tests/wire/test_manage_v1_projects_keys.py` — restored wire coverage for the legacy `CreateKeyV1RequestOneParams` request alias so future regens do not silently drop that compatibility check
- `src/deepgram/__init__.py`, `src/deepgram/agent/__init__.py`, `src/deepgram/agent/v1/__init__.py`, `src/deepgram/agent/v1/types/__init__.py`, `src/deepgram/agent/v1/requests/__init__.py`, `src/deepgram/types/__init__.py`, `src/deepgram/requests/__init__.py` — package `__init__.py` files carrying hand-applied legacy alias re-exports for `CreateKeyV1RequestOne`, `AgentV1HistoryContent`, `AgentV1HistoryFunctionCalls`, `AgentV1SettingsAgentContextMessagesItemContent`, `AgentV1SettingsAgentContextMessagesItemFunctionCalls` (and their `*Params` variants). Fern would otherwise regenerate these and strip the legacy entries. After unfreezing for the next regen and reviewing the new generated content, re-apply the legacy re-exports plus any genuine new entries Fern added.

### Prepare repo for regeneration

Expand Down
6 changes: 3 additions & 3 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions src/deepgram/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@
GoogleThinkProviderModel,
GrantV1Response,
Groq,
GroqThinkProviderReasoningMode,
LeaveProjectV1Response,
ListAgentConfigurationsV1Response,
ListAgentVariablesV1Response,
Expand Down Expand Up @@ -174,6 +175,7 @@
OpenAiSpeakProviderVoice,
OpenAiThinkProvider,
OpenAiThinkProviderModel,
OpenAiThinkProviderReasoningMode,
ProjectRequestResponse,
ReadV1Request,
ReadV1RequestText,
Expand Down Expand Up @@ -542,6 +544,7 @@
"GrantV1ResponseParams": ".requests",
"Groq": ".types",
"GroqParams": ".requests",
"GroqThinkProviderReasoningMode": ".types",
"LeaveProjectV1Response": ".types",
"LeaveProjectV1ResponseParams": ".requests",
"ListAgentConfigurationsV1Response": ".types",
Expand Down Expand Up @@ -695,6 +698,7 @@
"OpenAiThinkProvider": ".types",
"OpenAiThinkProviderModel": ".types",
"OpenAiThinkProviderParams": ".requests",
"OpenAiThinkProviderReasoningMode": ".types",
"ProjectRequestResponse": ".types",
"ProjectRequestResponseParams": ".requests",
"ReadV1Request": ".types",
Expand Down Expand Up @@ -978,6 +982,7 @@ def __dir__():
"GrantV1ResponseParams",
"Groq",
"GroqParams",
"GroqThinkProviderReasoningMode",
"LeaveProjectV1Response",
"LeaveProjectV1ResponseParams",
"ListAgentConfigurationsV1Response",
Expand Down Expand Up @@ -1131,6 +1136,7 @@ def __dir__():
"OpenAiThinkProvider",
"OpenAiThinkProviderModel",
"OpenAiThinkProviderParams",
"OpenAiThinkProviderReasoningMode",
"ProjectRequestResponse",
"ProjectRequestResponseParams",
"ReadV1Request",
Expand Down
80 changes: 79 additions & 1 deletion src/deepgram/agent/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,28 @@
AgentV1Settings,
AgentV1SettingsAgent,
AgentV1SettingsAgentContext,
AgentV1SettingsAgentContextContext,
AgentV1SettingsAgentContextContextMessagesItem,
AgentV1SettingsAgentContextContextMessagesItemContentRole,
AgentV1SettingsAgentContextContextMessagesItemFunctionCallsFunctionCallsItem,
AgentV1SettingsAgentContextContextMessagesItemFunctionCallsFunctionCallsItemParams,
AgentV1SettingsAgentContextContextMessagesItemParams,
AgentV1SettingsAgentContextContextParams,
AgentV1SettingsAgentContextListen,
AgentV1SettingsAgentContextListenParams,
AgentV1SettingsAgentContextListenProvider,
AgentV1SettingsAgentContextListenProviderParams,
AgentV1SettingsAgentContextListenProviderV1,
AgentV1SettingsAgentContextListenProviderV1Params,
AgentV1SettingsAgentContextListenProviderV2,
AgentV1SettingsAgentContextListenProviderV2LanguageHint,
AgentV1SettingsAgentContextListenProviderV2LanguageHintParams,
AgentV1SettingsAgentContextListenProviderV2Params,
AgentV1SettingsAgentContextListenProvider_V1,
AgentV1SettingsAgentContextListenProvider_V1Params,
AgentV1SettingsAgentContextListenProvider_V2,
AgentV1SettingsAgentContextListenProvider_V2Params,
AgentV1SettingsAgentContextParams,
AgentV1SettingsAgentContextMessagesItem,
AgentV1SettingsAgentContextMessagesItemContent,
AgentV1SettingsAgentContextMessagesItemContentParams,
Expand All @@ -59,7 +81,10 @@
AgentV1SettingsAgentContextMessagesItemFunctionCallsFunctionCallsItemParams,
AgentV1SettingsAgentContextMessagesItemFunctionCallsParams,
AgentV1SettingsAgentContextMessagesItemParams,
AgentV1SettingsAgentContextParams,
AgentV1SettingsAgentContextSpeak,
AgentV1SettingsAgentContextSpeakParams,
AgentV1SettingsAgentContextThink,
AgentV1SettingsAgentContextThinkParams,
AgentV1SettingsAgentListen,
AgentV1SettingsAgentListenParams,
AgentV1SettingsAgentListenProvider,
Expand All @@ -84,6 +109,7 @@
AgentV1SettingsAudioInputEncoding,
AgentV1SettingsAudioInputParams,
AgentV1SettingsAudioOutput,
AgentV1SettingsAudioOutputContainer,
AgentV1SettingsAudioOutputEncoding,
AgentV1SettingsAudioOutputParams,
AgentV1SettingsAudioParams,
Expand Down Expand Up @@ -158,6 +184,27 @@
"AgentV1Settings": ".v1",
"AgentV1SettingsAgent": ".v1",
"AgentV1SettingsAgentContext": ".v1",
"AgentV1SettingsAgentContextContext": ".v1",
"AgentV1SettingsAgentContextContextMessagesItem": ".v1",
"AgentV1SettingsAgentContextContextMessagesItemContentRole": ".v1",
"AgentV1SettingsAgentContextContextMessagesItemFunctionCallsFunctionCallsItem": ".v1",
"AgentV1SettingsAgentContextContextMessagesItemFunctionCallsFunctionCallsItemParams": ".v1",
"AgentV1SettingsAgentContextContextMessagesItemParams": ".v1",
"AgentV1SettingsAgentContextContextParams": ".v1",
"AgentV1SettingsAgentContextListen": ".v1",
"AgentV1SettingsAgentContextListenParams": ".v1",
"AgentV1SettingsAgentContextListenProvider": ".v1",
"AgentV1SettingsAgentContextListenProviderParams": ".v1",
"AgentV1SettingsAgentContextListenProviderV1": ".v1",
"AgentV1SettingsAgentContextListenProviderV1Params": ".v1",
"AgentV1SettingsAgentContextListenProviderV2": ".v1",
"AgentV1SettingsAgentContextListenProviderV2LanguageHint": ".v1",
"AgentV1SettingsAgentContextListenProviderV2LanguageHintParams": ".v1",
"AgentV1SettingsAgentContextListenProviderV2Params": ".v1",
"AgentV1SettingsAgentContextListenProvider_V1": ".v1",
"AgentV1SettingsAgentContextListenProvider_V1Params": ".v1",
"AgentV1SettingsAgentContextListenProvider_V2": ".v1",
"AgentV1SettingsAgentContextListenProvider_V2Params": ".v1",
"AgentV1SettingsAgentContextMessagesItem": ".v1",
"AgentV1SettingsAgentContextMessagesItemContent": ".v1",
"AgentV1SettingsAgentContextMessagesItemContentParams": ".v1",
Expand All @@ -168,6 +215,10 @@
"AgentV1SettingsAgentContextMessagesItemFunctionCallsParams": ".v1",
"AgentV1SettingsAgentContextMessagesItemParams": ".v1",
"AgentV1SettingsAgentContextParams": ".v1",
"AgentV1SettingsAgentContextSpeak": ".v1",
"AgentV1SettingsAgentContextSpeakParams": ".v1",
"AgentV1SettingsAgentContextThink": ".v1",
"AgentV1SettingsAgentContextThinkParams": ".v1",
"AgentV1SettingsAgentListen": ".v1",
"AgentV1SettingsAgentListenParams": ".v1",
"AgentV1SettingsAgentListenProvider": ".v1",
Expand All @@ -192,6 +243,7 @@
"AgentV1SettingsAudioInputEncoding": ".v1",
"AgentV1SettingsAudioInputParams": ".v1",
"AgentV1SettingsAudioOutput": ".v1",
"AgentV1SettingsAudioOutputContainer": ".v1",
"AgentV1SettingsAudioOutputEncoding": ".v1",
"AgentV1SettingsAudioOutputParams": ".v1",
"AgentV1SettingsAudioParams": ".v1",
Expand Down Expand Up @@ -290,6 +342,27 @@ def __dir__():
"AgentV1Settings",
"AgentV1SettingsAgent",
"AgentV1SettingsAgentContext",
"AgentV1SettingsAgentContextContext",
"AgentV1SettingsAgentContextContextMessagesItem",
"AgentV1SettingsAgentContextContextMessagesItemContentRole",
"AgentV1SettingsAgentContextContextMessagesItemFunctionCallsFunctionCallsItem",
"AgentV1SettingsAgentContextContextMessagesItemFunctionCallsFunctionCallsItemParams",
"AgentV1SettingsAgentContextContextMessagesItemParams",
"AgentV1SettingsAgentContextContextParams",
"AgentV1SettingsAgentContextListen",
"AgentV1SettingsAgentContextListenParams",
"AgentV1SettingsAgentContextListenProvider",
"AgentV1SettingsAgentContextListenProviderParams",
"AgentV1SettingsAgentContextListenProviderV1",
"AgentV1SettingsAgentContextListenProviderV1Params",
"AgentV1SettingsAgentContextListenProviderV2",
"AgentV1SettingsAgentContextListenProviderV2LanguageHint",
"AgentV1SettingsAgentContextListenProviderV2LanguageHintParams",
"AgentV1SettingsAgentContextListenProviderV2Params",
"AgentV1SettingsAgentContextListenProvider_V1",
"AgentV1SettingsAgentContextListenProvider_V1Params",
"AgentV1SettingsAgentContextListenProvider_V2",
"AgentV1SettingsAgentContextListenProvider_V2Params",
"AgentV1SettingsAgentContextMessagesItem",
"AgentV1SettingsAgentContextMessagesItemContent",
"AgentV1SettingsAgentContextMessagesItemContentParams",
Expand All @@ -300,6 +373,10 @@ def __dir__():
"AgentV1SettingsAgentContextMessagesItemFunctionCallsParams",
"AgentV1SettingsAgentContextMessagesItemParams",
"AgentV1SettingsAgentContextParams",
"AgentV1SettingsAgentContextSpeak",
"AgentV1SettingsAgentContextSpeakParams",
"AgentV1SettingsAgentContextThink",
"AgentV1SettingsAgentContextThinkParams",
"AgentV1SettingsAgentListen",
"AgentV1SettingsAgentListenParams",
"AgentV1SettingsAgentListenProvider",
Expand All @@ -324,6 +401,7 @@ def __dir__():
"AgentV1SettingsAudioInputEncoding",
"AgentV1SettingsAudioInputParams",
"AgentV1SettingsAudioOutput",
"AgentV1SettingsAudioOutputContainer",
"AgentV1SettingsAudioOutputEncoding",
"AgentV1SettingsAudioOutputParams",
"AgentV1SettingsAudioParams",
Expand Down
Loading
Loading