Skip to content
Open
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
6 changes: 3 additions & 3 deletions .fern/metadata.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"cliVersion": "5.119.2",
"cliVersion": "5.123.0",
"generatorName": "fernapi/fern-typescript-sdk",
"generatorVersion": "3.63.0",
"generatorConfig": {
Expand All @@ -11,10 +11,10 @@
"omitUndefined": true,
"enableInlineTypes": false
},
"originGitCommit": "ca6a646c295c707d5b6dff2fceab26c86c9137d5",
"originGitCommit": "c44dccea30d0d4799212779a695f3fbf269f86c1",
"originGitCommitIsDirty": true,
"invokedBy": "ci",
"requestedVersion": "AUTO",
"ciProvider": "unknown",
"sdkVersion": "2.0.1"
"sdkVersion": "2.1.0"
}
8 changes: 7 additions & 1 deletion .fern/replay.lock

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

8 changes: 8 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## [2.1.0] - 2026-09-15
### Added
- **`OpenAiSpeaker`** and **`OpenAiReasoner`** — new optional fields on `OpenAiModel` for configuring the GPT-Live speaker (instructions, personality packs) and its delegated reasoning model (model, effort, instructions).
- **`AnthropicBedrockModelFallbackModelsItem`** — new enum and optional `fallbackModels` field on `AnthropicBedrockModel` for specifying a same-provider Bedrock fallback model tried when the primary fails.
- **New Rime AI voice models and IDs** — `coda` and `mistv3` added to `RimeAiVoiceModel` and `FallbackRimeAiVoiceModel`; seven new voice IDs (Clementine, Walnut, Eyre, Bancroft, Hesse, Beatty, Godfrey) added to `RimeAiVoiceIdEnum` and `FallbackRimeAiVoiceIdEnum`.
- **`HipaaSpecial`** (`"hipaa-special"`) added to `InviteUserDtoRoleZero` and `UpdateUserRoleDtoRoleZero` for HIPAA-specific user role assignment.
- **`ModelCost.seconds`** and **`ModelCost.usageComplete`** — new optional fields reporting provider-billed duration and whether reported usage is complete.

## [2.0.1] - 2026-08-26

## 2.0.0 - 2026-06-24
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@vapi-ai/server-sdk",
"version": "2.0.1",
"version": "2.1.0",
"private": false,
"repository": {
"type": "git",
Expand Down
8 changes: 4 additions & 4 deletions pnpm-lock.yaml

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

4 changes: 2 additions & 2 deletions src/BaseClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ export function normalizeClientOptions<T extends BaseClientOptions = BaseClientO
{
"X-Fern-Language": "JavaScript",
"X-Fern-SDK-Name": "@vapi-ai/server-sdk",
"X-Fern-SDK-Version": "2.0.1",
"User-Agent": "@vapi-ai/server-sdk/2.0.1",
"X-Fern-SDK-Version": "2.1.0",
"User-Agent": "@vapi-ai/server-sdk/2.1.0",
"X-Fern-Runtime": core.RUNTIME.type,
"X-Fern-Runtime-Version": core.RUNTIME.version,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,15 @@ export interface UpdateStructuredOutputDto {
/**
* This is the regex pattern to match against the transcript.
*
* Simulation evaluations use a canonical transcript built from recorded messages:
* User: and AI: dialogue, AI: tool_calls: JSON name/arguments records, and
* AI: tool_call_results: JSON results. System messages are excluded. These
* fixed labels apply even when custom artifact transcript labels are configured.
* Tool payloads participate in first-match and all-match extraction in event order.
* An empty message array falls back to the supplied transcript verbatim.
* Production-call extraction and call preview use their existing transcripts,
* so previewing the same output on a simulation's call can return a different result.
*
* Only used when type is 'regex'. Supports both raw patterns (e.g. '\d+') and
* regex literal format (e.g. '/\d+/gi'). Uses RE2 syntax for safety.
*
Expand Down
2 changes: 2 additions & 0 deletions src/api/types/AnthropicBedrockModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ export interface AnthropicBedrockModel {
knowledgeBase?: Vapi.CreateCustomKnowledgeBaseDto | undefined;
/** The specific Anthropic/Claude model that will be used via Bedrock. */
model: Vapi.AnthropicBedrockModelModel;
/** At most one same-provider Bedrock fallback model, tried if the primary fails. Cannot be combined with thinking in this release. Resolution uses the call's Bedrock credential region (or ANTHROPIC_BEDROCK_AWS_REGION). Names with no inference profile in that region are skipped and warned, never remapped to US or global. On Vapi EU, fallback names without an EU inference profile are rejected at write time. */
fallbackModels?: Vapi.AnthropicBedrockModelFallbackModelsItem[] | undefined;
/**
* Optional configuration for Anthropic's thinking feature.
* Only applicable for claude-3-7-sonnet-20250219 model.
Expand Down
21 changes: 21 additions & 0 deletions src/api/types/AnthropicBedrockModelFallbackModelsItem.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// This file was auto-generated by Fern from our API Definition.

export const AnthropicBedrockModelFallbackModelsItem = {
Claude3Opus20240229: "claude-3-opus-20240229",
Claude3Sonnet20240229: "claude-3-sonnet-20240229",
Claude3Haiku20240307: "claude-3-haiku-20240307",
Claude35Sonnet20240620: "claude-3-5-sonnet-20240620",
Claude35Sonnet20241022: "claude-3-5-sonnet-20241022",
Claude35Haiku20241022: "claude-3-5-haiku-20241022",
Claude37Sonnet20250219: "claude-3-7-sonnet-20250219",
ClaudeOpus420250514: "claude-opus-4-20250514",
ClaudeOpus4520251101: "claude-opus-4-5-20251101",
ClaudeOpus46: "claude-opus-4-6",
ClaudeSonnet420250514: "claude-sonnet-4-20250514",
ClaudeSonnet4520250929: "claude-sonnet-4-5-20250929",
ClaudeSonnet46: "claude-sonnet-4-6",
ClaudeHaiku4520251001: "claude-haiku-4-5-20251001",
GlobalAnthropicClaudeHaiku4520251001V10: "global.anthropic.claude-haiku-4-5-20251001-v1:0",
} as const;
export type AnthropicBedrockModelFallbackModelsItem =
(typeof AnthropicBedrockModelFallbackModelsItem)[keyof typeof AnthropicBedrockModelFallbackModelsItem];
9 changes: 9 additions & 0 deletions src/api/types/CreateStructuredOutputDto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,15 @@ export interface CreateStructuredOutputDto {
/**
* This is the regex pattern to match against the transcript.
*
* Simulation evaluations use a canonical transcript built from recorded messages:
* User: and AI: dialogue, AI: tool_calls: JSON name/arguments records, and
* AI: tool_call_results: JSON results. System messages are excluded. These
* fixed labels apply even when custom artifact transcript labels are configured.
* Tool payloads participate in first-match and all-match extraction in event order.
* An empty message array falls back to the supplied transcript verbatim.
* Production-call extraction and call preview use their existing transcripts,
* so previewing the same output on a simulation's call can return a different result.
*
* Only used when type is 'regex'. Supports both raw patterns (e.g. '\d+') and
* regex literal format (e.g. '/\d+/gi'). Uses RE2 syntax for safety.
*
Expand Down
9 changes: 3 additions & 6 deletions src/api/types/EvalRun.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,11 @@ export interface EvalRun {
endedAt: string;
/** This is the ended message when the eval run ended for any reason apart from mockConversation.done */
endedMessage?: string | undefined;
/**
* This is the results of the eval or suite run.
* The array will have a single item for an eval run, and multiple items each corresponding to the an eval in a suite run in the same order as the evals in the suite.
*/
/** Results for this individual Eval. Check them after status is ended. An Eval that finishes normally contains one result; it passes only when all judged checkpoints pass. Grouping multiple Evals requires your own orchestration, not an Eval suite. */
results: Vapi.EvalRunResult[];
/** This is the cost of the eval or suite run in USD. */
/** The cost of this Eval run in USD. */
cost: number;
/** This is the break up of costs of the eval or suite run. */
/** The cost breakdown for this Eval run. */
costs: Record<string, unknown>[];
/**
* This is the type of the run.
Expand Down
2 changes: 1 addition & 1 deletion src/api/types/FallbackRimeAiVoiceId.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import type * as Vapi from "../index.js";
*/
export type FallbackRimeAiVoiceId =
/**
* Popular Rime AI voices across mist, mistv2, and arcana models. Any valid Rime AI voice ID is accepted, not just these suggestions. */
* Popular Rime AI voices across mist, mistv2, mistv3, arcana, and coda models. Any valid Rime AI voice ID is accepted, not just these suggestions. */
| Vapi.FallbackRimeAiVoiceIdEnum
/**
* Any valid Rime AI voice ID. See https://docs.rime.ai/docs/voices for the full catalog. */
Expand Down
9 changes: 8 additions & 1 deletion src/api/types/FallbackRimeAiVoiceIdEnum.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// This file was auto-generated by Fern from our API Definition.

/** Popular Rime AI voices across mist, mistv2, and arcana models. Any valid Rime AI voice ID is accepted, not just these suggestions. */
/** Popular Rime AI voices across mist, mistv2, mistv3, arcana, and coda models. Any valid Rime AI voice ID is accepted, not just these suggestions. */
export const FallbackRimeAiVoiceIdEnum = {
Cove: "cove",
Moon: "moon",
Expand Down Expand Up @@ -52,5 +52,12 @@ export const FallbackRimeAiVoiceIdEnum = {
Masonry: "masonry",
Albion: "albion",
Parapet: "parapet",
Clementine: "clementine",
Walnut: "walnut",
Eyre: "eyre",
Bancroft: "bancroft",
Hesse: "hesse",
Beatty: "beatty",
Godfrey: "godfrey",
} as const;
export type FallbackRimeAiVoiceIdEnum = (typeof FallbackRimeAiVoiceIdEnum)[keyof typeof FallbackRimeAiVoiceIdEnum];
2 changes: 2 additions & 0 deletions src/api/types/FallbackRimeAiVoiceModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
/** This is the model that will be used. Defaults to 'arcana' when not specified. */
export const FallbackRimeAiVoiceModel = {
Arcana: "arcana",
Coda: "coda",
Mistv2: "mistv2",
Mistv3: "mistv3",
Mist: "mist",
} as const;
export type FallbackRimeAiVoiceModel = (typeof FallbackRimeAiVoiceModel)[keyof typeof FallbackRimeAiVoiceModel];
1 change: 1 addition & 0 deletions src/api/types/InviteUserDtoRoleZero.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ export const InviteUserDtoRoleZero = {
Admin: "admin",
Editor: "editor",
Viewer: "viewer",
HipaaSpecial: "hipaa-special",
} as const;
export type InviteUserDtoRoleZero = (typeof InviteUserDtoRoleZero)[keyof typeof InviteUserDtoRoleZero];
1 change: 1 addition & 0 deletions src/api/types/JsonQueryOnEventsTableOn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ export const JsonQueryOnEventsTableOn = {
AssistantModelRequestAttemptStarted: "assistant.model.requestAttemptStarted",
AssistantModelRequestAttemptSucceeded: "assistant.model.requestAttemptSucceeded",
AssistantModelRequestAttemptFailed: "assistant.model.requestAttemptFailed",
AssistantKnowledgeBaseRequestSucceeded: "assistant.knowledgeBase.requestSucceeded",
AssistantModelConnectionOpened: "assistant.model.connectionOpened",
AssistantModelConnectionClosed: "assistant.model.connectionClosed",
AssistantModelFirstTokenReceived: "assistant.model.firstTokenReceived",
Expand Down
4 changes: 4 additions & 0 deletions src/api/types/ModelCost.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
* Language-model cost for a call, including model, token usage, and amount.
*/
export interface ModelCost {
/** Provider-reported billable duration in seconds. Currently supplied for GPT-Live; omitted for token-billed models. */
seconds?: number | undefined;
/** Whether the reported usage is complete. False means the cost reflects missing or partial usage and may understate provider spend. Omitted when the provider integration does not report completeness. */
usageComplete?: boolean | undefined;
/**
* This is the model that was used during the call.
*
Expand Down
4 changes: 4 additions & 0 deletions src/api/types/OpenAiModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ export interface OpenAiModel {
toolRefs?: Vapi.ToolRef[] | undefined;
/** These are the options for the knowledge base. */
knowledgeBase?: Vapi.CreateCustomKnowledgeBaseDto | undefined;
/** Configuration for the GPT-Live speaker. */
speaker?: Vapi.OpenAiSpeaker | undefined;
/** Configuration for the reasoner supporting the GPT-Live speaker. */
reasoner?: Vapi.OpenAiReasoner | undefined;
/**
* This is the OpenAI model that will be used.
*
Expand Down
18 changes: 18 additions & 0 deletions src/api/types/OpenAiReasoner.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// This file was auto-generated by Fern from our API Definition.

import type * as Vapi from "../index.js";

export interface OpenAiReasoner {
/** The reasoner uses OpenAI. Omit to use OpenAI. */
provider?: Vapi.OpenAiReasonerProvider | undefined;
/** The delegated reasoning model. Omit to use GPT-5.6 Terra. */
model?: Vapi.OpenAiReasonerModel | undefined;
/** Higher effort can increase response time. Omit to use low. */
reasoningEffort?: Vapi.OpenAiReasonerReasoningEffort | undefined;
/**
* Complete reasoner instructions. An explicit empty string is preserved.
* Omit to use Vapi's default reasoner instructions. No behavioral instructions
* are appended to a custom prompt.
*/
instructions?: string | undefined;
}
9 changes: 9 additions & 0 deletions src/api/types/OpenAiReasonerModel.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// This file was auto-generated by Fern from our API Definition.

/** The delegated reasoning model. Omit to use GPT-5.6 Terra. */
export const OpenAiReasonerModel = {
Gpt56Sol: "gpt-5.6-sol",
Gpt56Terra: "gpt-5.6-terra",
Gpt56Luna: "gpt-5.6-luna",
} as const;
export type OpenAiReasonerModel = (typeof OpenAiReasonerModel)[keyof typeof OpenAiReasonerModel];
7 changes: 7 additions & 0 deletions src/api/types/OpenAiReasonerProvider.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// This file was auto-generated by Fern from our API Definition.

/** The reasoner uses OpenAI. Omit to use OpenAI. */
export const OpenAiReasonerProvider = {
Openai: "openai",
} as const;
export type OpenAiReasonerProvider = (typeof OpenAiReasonerProvider)[keyof typeof OpenAiReasonerProvider];
13 changes: 13 additions & 0 deletions src/api/types/OpenAiReasonerReasoningEffort.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// This file was auto-generated by Fern from our API Definition.

/** Higher effort can increase response time. Omit to use low. */
export const OpenAiReasonerReasoningEffort = {
None: "none",
Low: "low",
Medium: "medium",
High: "high",
Xhigh: "xhigh",
Max: "max",
} as const;
export type OpenAiReasonerReasoningEffort =
(typeof OpenAiReasonerReasoningEffort)[keyof typeof OpenAiReasonerReasoningEffort];
9 changes: 9 additions & 0 deletions src/api/types/OpenAiSpeaker.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// This file was auto-generated by Fern from our API Definition.

import type * as Vapi from "../index.js";

export interface OpenAiSpeaker {
/** Omit to use legacy system messages. An explicit empty string is preserved. */
instructions?: string | undefined;
personalityPacks?: Vapi.OpenAiSpeakerPersonalityPacksItem[] | undefined;
}
10 changes: 10 additions & 0 deletions src/api/types/OpenAiSpeakerPersonalityPacksItem.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// This file was auto-generated by Fern from our API Definition.

export const OpenAiSpeakerPersonalityPacksItem = {
EagerListener: "eager-listener",
IdleHummer: "idle-hummer",
Bouncy: "bouncy",
Unhurried: "unhurried",
} as const;
export type OpenAiSpeakerPersonalityPacksItem =
(typeof OpenAiSpeakerPersonalityPacksItem)[keyof typeof OpenAiSpeakerPersonalityPacksItem];
2 changes: 1 addition & 1 deletion src/api/types/RimeAiVoiceId.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import type * as Vapi from "../index.js";
*/
export type RimeAiVoiceId =
/**
* Popular Rime AI voices across mist, mistv2, and arcana models. Any valid Rime AI voice ID is accepted, not just these suggestions. */
* Popular Rime AI voices across mist, mistv2, mistv3, arcana, and coda models. Any valid Rime AI voice ID is accepted, not just these suggestions. */
| Vapi.RimeAiVoiceIdEnum
/**
* Any valid Rime AI voice ID. See https://docs.rime.ai/docs/voices for the full catalog. */
Expand Down
9 changes: 8 additions & 1 deletion src/api/types/RimeAiVoiceIdEnum.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// This file was auto-generated by Fern from our API Definition.

/** Popular Rime AI voices across mist, mistv2, and arcana models. Any valid Rime AI voice ID is accepted, not just these suggestions. */
/** Popular Rime AI voices across mist, mistv2, mistv3, arcana, and coda models. Any valid Rime AI voice ID is accepted, not just these suggestions. */
export const RimeAiVoiceIdEnum = {
Cove: "cove",
Moon: "moon",
Expand Down Expand Up @@ -52,5 +52,12 @@ export const RimeAiVoiceIdEnum = {
Masonry: "masonry",
Albion: "albion",
Parapet: "parapet",
Clementine: "clementine",
Walnut: "walnut",
Eyre: "eyre",
Bancroft: "bancroft",
Hesse: "hesse",
Beatty: "beatty",
Godfrey: "godfrey",
} as const;
export type RimeAiVoiceIdEnum = (typeof RimeAiVoiceIdEnum)[keyof typeof RimeAiVoiceIdEnum];
2 changes: 2 additions & 0 deletions src/api/types/RimeAiVoiceModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
/** This is the model that will be used. Defaults to 'arcana' when not specified. */
export const RimeAiVoiceModel = {
Arcana: "arcana",
Coda: "coda",
Mistv2: "mistv2",
Mistv3: "mistv3",
Mist: "mist",
} as const;
export type RimeAiVoiceModel = (typeof RimeAiVoiceModel)[keyof typeof RimeAiVoiceModel];
9 changes: 9 additions & 0 deletions src/api/types/StructuredOutput.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,15 @@ export interface StructuredOutput {
/**
* This is the regex pattern to match against the transcript.
*
* Simulation evaluations use a canonical transcript built from recorded messages:
* User: and AI: dialogue, AI: tool_calls: JSON name/arguments records, and
* AI: tool_call_results: JSON results. System messages are excluded. These
* fixed labels apply even when custom artifact transcript labels are configured.
* Tool payloads participate in first-match and all-match extraction in event order.
* An empty message array falls back to the supplied transcript verbatim.
* Production-call extraction and call preview use their existing transcripts,
* so previewing the same output on a simulation's call can return a different result.
*
* Only used when type is 'regex'. Supports both raw patterns (e.g. '\d+') and
* regex literal format (e.g. '/\d+/gi'). Uses RE2 syntax for safety.
*
Expand Down
1 change: 1 addition & 0 deletions src/api/types/UpdateUserRoleDtoRoleZero.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ export const UpdateUserRoleDtoRoleZero = {
Admin: "admin",
Editor: "editor",
Viewer: "viewer",
HipaaSpecial: "hipaa-special",
} as const;
export type UpdateUserRoleDtoRoleZero = (typeof UpdateUserRoleDtoRoleZero)[keyof typeof UpdateUserRoleDtoRoleZero];
Loading