## 1.2.0 - 2026-04-22
### Added
* **`Call.subscriptionLimits`** — new optional field exposing the organization's subscription limits (including concurrency limits) at the time of the call.

## 1.1.0 - 2026-04-10
* The `VapiError` and `VapiTimeoutError` classes now expose an optional `cause` property that carries the original underlying error, making it easier to diagnose root causes of network failures and timeouts. `BasicAuth.username` and `BasicAuth.password` are now optional fields; if both are absent or empty, no `Authorization` header is sent.

## 1.0.0 - 2026-04-07
* Several exported TypeScript types and enum constants have been removed in this release.
**Removed exports:** Over 70 single-value enum types (e.g. `ConversationNodeType`, `CustomLlmModelProvider`, `DeepgramTranscriberProvider`, `FallbackCustomTranscriberProvider`, `GroupConditionType`, and many others) are no longer exported. Replace any usage of these constants with their plain string literal equivalents (e.g. `"deepgram"`, `"custom-llm"`, `"group"`).
**Removed required fields:** The `provider` field has been removed from `FallbackCustomTranscriber`, and the `type` field has been removed from `GroupCondition` — update any object literals that set these fields.
* Numerous single-value enum type exports have been removed (including `HandoffDestinationDynamicType`, `KnowledgeBaseCostType`, `VapiCostType`, `VoiceCostType`, `TranscriberCostType`, and many more). Additionally, the required `type` discriminant field has been removed from several interfaces: `KnowledgeBaseCost`, `LiquidCondition`, `SayPhoneNumberHookAction`, `SessionCost`, `TranscriberCost`, `VapiCost`, `VoiceCost`, and `VoicemailDetectionCost` — callers that reference these fields or types will encounter compile errors and must be updated. The `BaseClientOptions.token` field has also been replaced by `BearerAuthProvider.AuthOptions`; update your client initialization accordingly.
* The `UpdateAssistantDtoCredentialsItem`, `UpdateAssistantDtoModel`, `UpdateAssistantDtoTranscriber`, and `UpdateAssistantDtoVoice` union types have been converted to discriminated unions — each variant now requires a `provider` field. Existing code that constructs or narrows these types without a `provider` field will need to be updated. A new `client.fetch()` passthrough method is available on `VapiClient` for making authenticated requests to endpoints not yet supported by the SDK. Several new credential and provider variants have been added (`AnthropicBedrock`, `Soniox`, `Email`, `SlackWebhook`).
* The `callControllerFindAllPaginated` method has been removed from `CallsClient`. If your code calls `client.calls.callControllerFindAllPaginated(...)`, migrate to the standard `client.calls.list(...)` method instead.
* The `chatControllerChatsExport()` method has been removed from `ChatsClient` — callers should remove any usage of this method. Additionally, the `CreateEvalRunDtoTarget` type has been restructured into a discriminated union namespace (`CreateEvalRunDtoTarget.Assistant` and `CreateEvalRunDtoTarget.Squad`) with an explicit `type` discriminant field; existing code that references the old `EvalRunTargetAssistant | EvalRunTargetSquad` union directly will need to be updated to use the new namespaced types.
* Several Insight request and response types have been restructured as discriminated unions. `InsightControllerCreateRequest`, `InsightControllerPreviewRequest`, and `InsightControllerUpdateRequestBody` now require a `type` field (`"bar"`, `"pie"`, `"line"`, or `"text"`) — existing callers that pass bare DTOs without this field will no longer compile. Response types (`InsightControllerCreateResponse`, `InsightControllerFindOneResponse`, `InsightControllerRemoveResponse`, `InsightControllerUpdateResponse`) have also been updated to discriminated unions; consumers using exhaustive type narrowing should add handling for the new `type` discriminant.
* Phone number union types (`CreatePhoneNumbersRequest`, `CreatePhoneNumbersResponse`, `DeletePhoneNumbersResponse`, `GetPhoneNumbersResponse`, `ListPhoneNumbersResponseItem`, `UpdatePhoneNumbersRequestBody`, and `UpdatePhoneNumbersResponse`) have been restructured as discriminated unions. Each variant is now a namespaced sub-interface with a required `provider` field (e.g. `CreatePhoneNumbersRequest.ByoPhoneNumber` with `provider: "byo-phone-number"`).
**Migration:** Update any code that references the old flat union members (e.g. `Vapi.CreateByoPhoneNumberDto` as a `CreatePhoneNumbersRequest`) to use the new namespaced variants and include the required `provider` discriminant property. For example, replace `{ ... }` with `{ provider: "byo-phone-number", ... }` when constructing a `CreatePhoneNumbersRequest`.
* The `sessionControllerSessionsExport` method has been removed from `SessionsClient`. If your code calls `client.sessions.sessionControllerSessionsExport(...)`, you will need to remove or replace those calls. Additionally, several Sessions API methods are now marked `@beta`, indicating they are in pre-release and may change.
* The `UpdateStructuredOutputDtoModel` type has been expanded to a discriminated union namespace with five named variants — `Openai`, `Anthropic`, `AnthropicBedrock`, `Google`, and `CustomLlm` — each carrying an explicit `provider` discriminant field. A new `AnthropicBedrock` variant (`provider: "anthropic-bedrock"`) has been added. Existing code that referenced the old flat union variants (`WorkflowOpenAiModel`, `WorkflowAnthropicModel`, `WorkflowGoogleModel`, `WorkflowCustomModel`) directly must be updated to use the new namespaced types (e.g., `UpdateStructuredOutputDtoModel.Openai`).
* The tools API types (`CreateToolsRequest`, `CreateToolsResponse`, `DeleteToolsResponse`, `GetToolsResponse`, and `ListToolsResponseItem`) have been refactored from flat union types into namespaced discriminated union types with a required `type` discriminant field. Existing code referencing bare DTO union members (e.g. `Vapi.CreateApiRequestToolDto`, `Vapi.ApiRequestTool`) must be updated to use the new namespaced forms (e.g. `Vapi.CreateToolsRequest.ApiRequest`, `Vapi.CreateToolsResponse.ApiRequest`) and include the `type` field. The `toolControllerTestCodeExecution` method has been removed from `ToolsClient`. Two new tool variants (`SipRequest` and `Voicemail`) are now available across all tools union types.
* The SDK's union types for tools, credentials, and models (e.g. `UpdateToolsRequestBody`, `UpdateToolsResponse`, `AssistantCredentialsItem`, `AssistantModel`, `AnthropicModelToolsItem`, and others) have been restructured from flat unions of DTO types into namespaced discriminated interfaces. Each variant is now accessed via a namespace (e.g. `Vapi.UpdateToolsRequestBody.SipRequest`) and requires a `type` or `provider` discriminant field.
**Migration:** Any code that previously narrowed or assigned these union types using the old DTO names (e.g. `Vapi.UpdateApiRequestToolDto` as a union member) must be updated to use the new namespaced variants (e.g. `Vapi.UpdateToolsRequestBody.ApiRequest`). Additionally, new tool variants (`SipRequest`, `Voicemail`), credential providers (`AnthropicBedrock`, `Soniox`, `Email`, `SlackWebhook`), and model providers (`Minimax`, `AnthropicBedrock`) have been added to their respective unions.
* Multiple union types throughout the SDK (`AssistantOverridesCredentialsItem`, `AssistantOverridesModel`, `AssistantVoice`, `AssistantTranscriber`, `AssistantOverridesToolsAppendItem`, `CallCostsItem`, `CallDestination`, and others) have been restructured into discriminated namespace-scoped interfaces. Existing code that references the old flat variant types (e.g. `Vapi.CreateElevenLabsCredentialDto`, `Vapi.AnthropicModel`, `Vapi.AssemblyAiTranscriber`) must be updated to use the new namespaced forms (e.g. `Vapi.AssistantOverridesCredentialsItem._11Labs`, `Vapi.AssistantOverridesModel.Anthropic`). This release also adds new variants: `AnthropicBedrock`, `Soniox`, `Minimax`, `SipRequest`, `Voicemail`, `Email`, `SlackWebhook`, and `GhlOauth2Authorization`.
* Union types across the SDK have been refactored to use discriminated namespace sub-interfaces (e.g. `CallHookAssistantSpeechInterruptedDoItem.Say`, `ClientInboundMessageMessage.EndCall`), replacing the previous flat `SayHookAction | ToolCallHookAction` style. Existing code that narrows or constructs these union types by referencing the old variant types directly (e.g. `Vapi.SayHookAction`) will need to be updated to use the new namespaced variants. New union members have also been added: `MessageAdd` across all CallHook `DoItem` types, `SipRequest` and `Voicemail` in `CerebrasModelToolsItem`, and `SendTransportMessage` in `ClientInboundMessageMessage`.
* Several union types have been restructured into discriminated namespaced interfaces. The variants of `ClientMessageTranscriptPhoneNumber`, `ClientMessageToolCallsResultPhoneNumber`, `ClientMessageTransferUpdatePhoneNumber`, `ClientMessageTransferUpdateDestination`, `ClientMessageUserInterruptedPhoneNumber`, `ClientMessageVoiceInputPhoneNumber`, `ClientMessageWorkflowNodeStartedPhoneNumber`, `ClientMessageToolCallsToolWithToolCallListItem`, `ConversationNodeModel`, `ConversationNodeToolsItem`, `ConversationNodeTranscriber`, `ConversationNodeVoice`, and several tool message item types are no longer the bare `CreateXxx` or `XxxToolWithToolCall` types — they are now scoped interfaces under each type's own namespace (e.g. `ClientMessageTranscriptPhoneNumber.Twilio`) and carry an explicit discriminant field (`provider` or `type`). Existing code that directly assigns or checks against the old union members (e.g. `Vapi.CreateTwilioPhoneNumberDto`) will need to be updated to use the new namespaced variants. Additionally, `ContextEngineeringPlanAll` and `ContextEngineeringPlanNone` no longer have a required `type` field.
* Several assistant DTO union types (`CreateAssistantDtoCredentialsItem`, `CreateAssistantDtoModel`, `CreateAssistantDtoTranscriber`, `CreateAssistantDtoVoice`) and all tool message item types have been restructured into discriminated union namespaces with required `provider` or `type` discriminant fields. Existing code that references the old flat union members (e.g. `Vapi.AnthropicModel` for `CreateAssistantDtoModel`) must be updated to use the new namespaced forms (e.g. `CreateAssistantDtoModel.Anthropic`) and supply the required discriminant property. New provider variants have also been added, including `AnthropicBedrock`, `Soniox`, `Email`, and `SlackWebhook` credentials.
* Multiple union types across tool DTOs, phone number DTOs, and credential DTOs have been restructured into discriminated namespaced interfaces. For example, `CreateHandoffToolDtoMessagesItem` now uses `CreateHandoffToolDtoMessagesItem.RequestStart` instead of `Vapi.ToolMessageStart`. Callers that reference the old bare union variant types (e.g. `Vapi.ToolMessageStart`, `Vapi.TransferDestinationNumber`) in these positions must update to the new namespaced forms (e.g. `CreateHandoffToolDtoMessagesItem.RequestStart`, `CreateTransferCallToolDtoDestinationsItem.Number`). Additionally, new variants have been added: `Squad` on `CreateHandoffToolDtoDestinationsItem`, `AnthropicBedrock` on `CreateStructuredOutputDtoModel`, and `SipRequest`/`Voicemail` on `CreateToolTemplateDtoDetails`.
* Several workflow and credential union types (`CreateWorkflowDtoCredentialsItem`, `CreateWorkflowDtoModel`, `CreateWorkflowDtoNodesItem`, `CreateWorkflowDtoTranscriber`, `CreateWorkflowDtoVoice`, `CustomCredentialAuthenticationPlan`, `CustomLlmModelToolsItem`, `DeepInfraModelToolsItem`, `DeepSeekModelToolsItem`, `DtmfToolMessagesItem`, `EndCallToolMessagesItem`) have been restructured into namespaced discriminated unions with explicit `provider` or `type` discriminant fields (e.g., `CreateWorkflowDtoCredentialsItem.Anthropic` instead of `CreateAnthropicCredentialDto`). Existing code that references the old flat union member types (e.g., `Vapi.CreateAnthropicCredentialDto` as a union variant) will need to be updated to use the new namespaced variants. New credential providers (`AnthropicBedrock`, `Soniox`, `Email`, `SlackWebhook`), a new `Soniox` transcriber, and new tool types (`SipRequest`, `Voicemail`) have also been added.
* Several SDK union types have been restructured into discriminated namespace unions with explicit discriminant fields. For example, `EvalRunResultMessagesItem` members are now accessed as `Vapi.EvalRunResultMessagesItem.User`, `Vapi.EvalRunResultMessagesItem.System`, etc., instead of the previous flat references (`Vapi.ChatEvalUserMessageMock`). The same pattern applies to `EvalRunTarget`, `FallbackPlanVoicesItem`, `FallbackTranscriberPlanTranscribersItem`, `FormatPlanReplacementsItem`, and all tool `*MessagesItem` types. Callers that reference the old union member types by their previous names will need to update to the new namespace-qualified forms. Additionally, `GoogleModelToolsItem` now includes two new tool variants (`SipRequest` and `Voicemail`), and `FallbackTranscriberPlanTranscribersItem` includes a new `Soniox` transcriber variant.
* Union types across model tools, tool messages, phone number hooks, and handoff destinations have been restructured into discriminated namespace variants (e.g. `Vapi.GroqModelToolsItem.ApiRequest` instead of `Vapi.CreateApiRequestToolDto`). Each variant now carries an explicit `type` or `on` discriminant literal field. Consumers who reference the old flat union members or construct objects without the required discriminant field will need to update their type annotations and object literals to use the new namespaced variants (e.g. `Vapi.<TypeName>.<Variant>`). Additionally, `SipRequest` and `Voicemail` tool variants, a `Squad` handoff destination, and a `UserAndAssistantMessages` context engineering plan variant have been added.
* Multiple union types across the SDK have been refactored into discriminated union namespaces with explicit `type` or `provider` discriminant fields. Affected types include `PhoneNumberPaginatedResponseResultsItem`, `PhoneNumberHookCallRingingDoItem`, `QueryToolMessagesItem`, `RecordingConsentPlanStayOnLineVoice`, `RecordingConsentPlanVerbalVoice`, `ServerMessageEndOfCallReportCostsItem`, all `ServerMessage*PhoneNumber` types, `ServerMessagePhoneCallControlDestination`, `ServerMessageResponseAssistantRequestDestination`, and `ServerMessageResponseTransferDestinationRequestDestination`.
**Migration required:** Replace references to the old flat variant types (e.g. `Vapi.TwilioPhoneNumber` used as a `PhoneNumberPaginatedResponseResultsItem`) with the new namespaced interfaces (e.g. `PhoneNumberPaginatedResponseResultsItem.Twilio`). Each namespaced interface now requires a discriminant field (`provider` or `type`) to be present.
* Multiple union types have been refactored into discriminated namespaced variants across `ServerMessage*PhoneNumber`, `ServerMessageStatusUpdateDestination`, `ServerMessageTransferUpdateDestination`, `SessionCostsItem`, `SlackSendMessageToolMessagesItem`, `SmsToolMessagesItem`, `StartSpeakingPlanCustomEndpointingRulesItem`, `StructuredOutputModel`, `TelnyxPhoneNumber*`, and `TemplateDetails` types. Each union member is now an interface within a co-located namespace carrying an explicit discriminant property (`type`, `provider`, or `on`), enabling exhaustive type narrowing. Callers must update references from flat types (e.g., `Vapi.CreateTwilioPhoneNumberDto`) to the new namespaced variants (e.g., `ServerMessageStatusUpdatePhoneNumber.Twilio`). Additionally, `StructuredOutputModel` adds `AnthropicBedrock` and `CustomLlm` variants, and `TemplateDetails` adds `SipRequest` and `Voicemail` variants.
* Several union types have been restructured into discriminated, namespace-scoped interfaces (e.g. `TemplateProviderDetails.Make`, `TogetherAiModelToolsItem.SipRequest`). Existing code that references the previous flat union members directly (such as `Vapi.MakeToolProviderDetails` in a `TemplateProviderDetails` position, or `Vapi.ToolMessageStart` in a `*MessagesItem` position) must be updated to use the new namespaced forms. Additionally, new tool variants (`SipRequest`, `Voicemail`) and a new transcriber (`Soniox`) have been added to their respective unions.
* Several union types across `Update*ToolDto`, `Update*PhoneNumberDto`, and `UpdateCustomCredentialDto` have been restructured into discriminated-union namespaces. For example, `UpdateFunctionToolDtoMessagesItem` no longer accepts `Vapi.ToolMessageStart` directly — it now requires the namespaced variant `Vapi.UpdateFunctionToolDtoMessagesItem.RequestStart` (which adds a `type: "request-start"` discriminant). Similarly, fallback destination and hook item types now use scoped namespace interfaces with explicit `type` or `on` discriminant fields. Any code constructing or narrowing on the old flat union variants must be updated to the new namespaced forms. Additionally, `UpdateHandoffToolDtoDestinationsItem` gains a new `Squad` destination variant.
* Several `Update*Dto` union types (including `UpdateToolTemplateDtoDetails`, `UpdateWorkflowDtoCredentialsItem`, `UpdateWorkflowDtoModel`, `UpdateWorkflowDtoTranscriber`, `UpdateWorkflowDtoVoice`, and phone number hook/fallback destination types) have been restructured into namespaced discriminated unions with explicit `type` or `provider` discriminant fields. Existing code that references the old union member types directly (e.g. `Vapi.CreateApiRequestToolDto` as a variant of `UpdateToolTemplateDtoDetails`) must be updated to use the new namespaced forms (e.g. `UpdateToolTemplateDtoDetails.ApiRequest`). New variants have also been added: `SipRequest` and `Voicemail` tool types, `AnthropicBedrock`, `Soniox`, `Email`, and `SlackWebhook` credential types.
* Several union types have been restructured into discriminated namespace interfaces with explicit `type` or `provider` discriminant fields, enabling better type narrowing. **This is a breaking change.** Code that references the old flat union variant types (e.g. `Vapi.CreateApiRequestToolDto` as a `VapiModelToolsItem`, `Vapi.WorkflowOpenAiModel` as a `WorkflowModel`, `Vapi.TransferDestinationNumber` as a `VapiPhoneNumberFallbackDestination`, etc.) must be updated to use the new namespaced variants (e.g. `Vapi.VapiModelToolsItem.ApiRequest`, `Vapi.WorkflowModel.Openai`, `Vapi.VapiPhoneNumberFallbackDestination.Number`). New variants have also been added: `VapiModelToolsItem.SipRequest`, `VapiModelToolsItem.Voicemail`, `WorkflowTranscriber.Soniox`, `WorkflowCredentialsItem.Email`, `WorkflowCredentialsItem.SlackWebhook`, and `AnthropicBedrock` support across workflow models and credentials.
* Several workflow and model union types have been restructured into discriminated union namespaces with explicit discriminant fields. Existing code that references the old flat union variants (e.g. `WorkflowVoice`, `WorkflowUserEditableVoice`, `WorkflowUserEditableTranscriber`, `WorkflowUserEditableNodesItem`, `XaiModelToolsItem`) will need to be updated to use the new namespaced sub-types (e.g. `WorkflowVoice.Azure`, `WorkflowUserEditableTranscriber.Soniox`). Additionally, `Fetcher.Error` now includes a new `BodyIsNullError` variant; exhaustive checks over `Fetcher.Error` must handle this new case.
* Several breaking changes have been made to the SDK's public API types:
* The `type` field has been removed from the `AnalysisCost` interface. Code that reads `analysisCost.type` will no longer compile.
* The `provider` field has been removed from `AnthropicModel` and `AnyscaleModel` interfaces. Code that references these fields will need to be updated.
* `SessionCreatedHook` has been added as a new variant to the `UpdateAssistantDtoHooksItem` union type — exhaustive switch/if-else chains over this type will now have an unhandled case.
* New capabilities have also been added: per-resource subpath exports are now available (e.g. `@vapi-ai/server-sdk/assistants`), `ApiRequestTool` gains a `parameters` field for static body injection, and `UpdateStructuredOutputDto` supports a new `regex` extraction type via `type` and `regex` fields.
* The `Artifact` interface now includes an `assistantActivations` field (ordered list of assistants active during a call). The `ArtifactPlan` interface now supports an inline `structuredOutputs` array for providing structured output configurations without referencing existing IDs. A new `SessionCreatedHook` variant has been added to the `AssistantHooksItem` union type.
**Breaking:** The required `type` discriminant fields have been removed from `AssistantCustomEndpointingRule`, `AssistantMessageJudgePlanExact`, and `AssistantMessageJudgePlanRegex`. Consumers who were setting these fields must remove them from their code.
* The `Australia` value in `AzureCredentialRegion` and `AzureOpenAiCredentialRegion` enums has been renamed to `Australiaeast`. Callers referencing `AzureCredentialRegion.Australia` or `AzureOpenAiCredentialRegion.Australia` must update to use `Australiaeast` instead. A new `Centralus` region value has also been added to both enums. Additionally, `SessionCreatedHook` is now a supported variant of `AssistantOverridesHooksItem`, and `JsonQueryOnEventsTable` has been added to bar insight query union types.
* The `CallEndedReason` enum has been expanded with new error codes covering ElevenLabs, Google, OpenAI, and Soniox transcriber failures, Baseten and Minimax LLM provider errors, SIP inbound/outbound call connection failures, and a new `CustomerEndedCallDuringTransfer` reason. The `CallHookCallEnding.do` property type has changed from `ToolCallHookAction[]` to `CallHookCallEndingDoItem[]`, and the `provider` required field has been removed from `CartesiaTranscriber`, `CartesiaVoice`, and `CerebrasModel` — callers that previously supplied `provider` will need to remove it.
* The `type` field has been removed from `ClientInboundMessageAddMessage` and `ClientInboundMessageTransfer` (previously required), and from `ClientInboundMessageSay` (previously optional). Callers constructing these objects should remove the `type` property. Two new optional fields, `turnId`, have been added to `ClientMessageModelOutput` and `ClientMessageUserInterrupted`, allowing clients to correlate LLM output tokens with interruption events.
* The `australia` region constant on `CreateAzureCredentialDtoRegion` and `CreateAzureOpenAiCredentialDtoRegion` has been renamed to `australiaeast`. Callers referencing `CreateAzureCredentialDtoRegion.Australia` or `CreateAzureOpenAiCredentialDtoRegion.Australia` must update to use `Australiaeast` instead.
* In addition, the SDK now supports a `SessionCreatedHook` variant in `CreateAssistantDtoHooksItem`, a `JsonQueryOnEventsTable` variant in `CreateBarInsightFromCallTableDtoQueriesItem`, a new `centralus` Azure region constant, and an optional `parameters` field on `CreateApiRequestToolDto` for passing static Liquid-templated key-value pairs to API request tools.
* Several `Create*CredentialDto` interfaces (e.g., `CreateCartesiaCredentialDto`, `CreateDeepgramCredentialDto`, `CreateGcpCredentialDto`, and others) no longer include a required `provider` field. Similarly, several `Create*ToolDto` interfaces (e.g., `CreateDtmfToolDto`, `CreateEndCallToolDto`, `CreateFunctionToolDto`) no longer include a required `type` field. Callers that previously set these fields will need to remove them to avoid TypeScript compile errors. New optional fields have been added: `sipInfoDtmfEnabled` on `CreateDtmfToolDto`, `variableExtractionPlan` and `parameters` on `CreateFunctionToolDto`, and `defaultResult` on `CreateHandoffToolDto`. The `encryptionPlan` field on `CreateCustomCredentialDto` is now optional and accepts a wider type.
* Several `Create*CredentialDto` interfaces (including `CreateLmntCredentialDto`, `CreateOpenAiCredentialDto`, `CreateMistralCredentialDto`, `CreateS3CredentialDto`, and others) have had their required `provider` literal field removed. Callers that were previously setting `provider` on these objects will encounter a TypeScript compile error since the field no longer exists. Additionally, `CreateStructuredOutputDto` gains two new optional fields (`type` and `regex`) enabling regex-based structured output extraction, and `CreateMcpToolDto` gains a new optional `toolMessages` field for per-tool message overrides.
* Several breaking changes have been made to Create* DTO and credential interfaces:
* The required `provider` literal property has been removed from `CreateTogetherAiCredentialDto`, `CreateTrieveCredentialDto`, `CreateTwilioCredentialDto`, `CreateVonageCredentialDto`, `CreateWellSaidCredentialDto`, `CreateXAiCredentialDto`, `CreateWebhookCredentialDto`, and from phone number DTOs (`CreateTwilioPhoneNumberDto`, `CreateVapiPhoneNumberDto`, `CreateVonagePhoneNumberDto`). Callers that previously set this field should remove it.
* `CreateWebChatDto.assistantId` is now optional (previously required). A new optional `assistant` field has been added to allow passing a transient assistant configuration.
* `CustomCredential.encryptionPlan` changed from a required field of type `PublicKeyEncryptionPlan` to an optional field of type `CustomCredentialEncryptionPlan | undefined`. Update any code that unconditionally accesses this field.
* A new optional `tags` field has been added to `CredentialWebhookDto`.
* All optional fields across many DTOs now explicitly include `| undefined` in their types, improving strict TypeScript compatibility.
* The SDK now exposes several new fields and capabilities across transcriber, voice, model, and tool types. `DeepgramTranscriber` gains a `profanityFilter` option; `ElevenLabsTranscriber` gains four VAD tuning parameters (`silenceThresholdSeconds`, `confidenceThreshold`, `minSpeechDurationMs`, `minSilenceDurationMs`); `ElevenLabsTranscriberModel` adds `ScribeV2` and `ScribeV2Realtime` variants; `DtmfTool` adds `sipInfoDtmfEnabled` for SIP INFO–based DTMF delivery; and `CustomVoice` adds a `voiceId` field. Optional properties across many interfaces are now typed as `T | undefined` for stricter TypeScript compatibility.
* Several required fields have been removed from Eval and Fallback interfaces, which is a breaking change for existing TypeScript consumers.
**Removed required fields:**
* `provider` removed from `EvalOpenAiModel`, `ExactReplacement`, `FallbackAssemblyAiTranscriber`, `FallbackAzureSpeechTranscriber`, `FallbackAzureVoice`, `FallbackCartesiaTranscriber`, `FallbackCartesiaVoice`, `FallbackCustomVoice`, `FallbackDeepgramTranscriber`, `FallbackDeepgramVoice`, `FallbackElevenLabsTranscriber`, `FallbackElevenLabsVoice`
* `type` removed from `EvalRunTargetAssistant` and `EvalRunTargetSquad`
* `Gpt41106PreviewAustralia` renamed to `Gpt41106PreviewAustraliaeast` in `EvalOpenAiModelModel`
**New capabilities added:**
* New GPT-5.4 model values (`Gpt54`, `Gpt54Mini`, `Gpt54Nano`) in `EvalOpenAiModelModel`
* New `profanityFilter` option on `FallbackDeepgramTranscriber`
* New `ScribeV2` and `ScribeV2Realtime` transcription models for ElevenLabs; new VAD configuration fields on `FallbackElevenLabsTranscriber`
* New optional `voiceId` field on `FallbackCustomVoice`
* Consumers must remove any explicit assignments to the dropped required fields and update references to the renamed enum value.
* Several Fallback voice and transcriber interfaces have had their required `provider` field removed (e.g. `FallbackGladiaTranscriber`, `FallbackOpenAiVoice`, `FallbackRimeAiVoice`, and others). Consumers constructing these objects directly must remove the `provider` property from their code.
* New optional fields have been added across multiple interfaces: `temperature` and `speakingRate` on `FallbackInworldVoice`, `language` on `FallbackRimeAiVoice`, `subtitleType` on `FallbackMinimaxVoice`, and `pronunciationDictionary` on `FallbackVapiVoice`. The Inworld voice ID set has been expanded with new English voices and support for Russian, Hindi, Hebrew, and Arabic languages. The RimeAI voice ID enum has been updated with a refreshed curated list.
* The `FunctionTool`, `FunctionToolWithToolCall`, and `FunctionCallHookAction` interfaces now support two new optional fields: `variableExtractionPlan` (for extracting variables from tool responses) and `parameters` (for static key-value pairs merged into the request body with Liquid template support). Additionally, the required `type` discriminant field has been removed from several `ProviderDetails` interfaces (`FunctionToolProviderDetails`, `GhlToolProviderDetails`, `GoHighLevelCalendarAvailabilityToolProviderDetails`, `GoHighLevelCalendarEventCreateToolProviderDetails`, `GoHighLevelContactCreateToolProviderDetails`), making those types more flexible.

