@vapi-ai/web 2.3.1 → 2.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api.ts +1224 -1784
- package/dist/api.d.ts +767 -1666
- package/dist/api.js +15 -35
- package/package.json +1 -1
package/dist/api.d.ts
CHANGED
|
@@ -184,6 +184,14 @@ export interface Recording {
|
|
|
184
184
|
/** This is the mono recording url for the call. To enable, set `assistant.artifactPlan.recordingEnabled`. */
|
|
185
185
|
mono?: Mono;
|
|
186
186
|
}
|
|
187
|
+
export interface NodeArtifact {
|
|
188
|
+
/** This is the node id. */
|
|
189
|
+
nodeName?: string;
|
|
190
|
+
/** This is the messages that were spoken during the node. */
|
|
191
|
+
messages?: object[];
|
|
192
|
+
/** This is the object containing the variables extracted from the node. */
|
|
193
|
+
variables?: object;
|
|
194
|
+
}
|
|
187
195
|
export interface Artifact {
|
|
188
196
|
/** These are the messages that were spoken during the call. */
|
|
189
197
|
messages?: (UserMessage | SystemMessage | BotMessage | ToolCallMessage | ToolCallResultMessage)[];
|
|
@@ -215,6 +223,10 @@ export interface Artifact {
|
|
|
215
223
|
transcript?: string;
|
|
216
224
|
/** This is the packet capture url for the call. This is only available for `phone` type calls where phone number's provider is `vapi` or `byo-phone-number`. */
|
|
217
225
|
pcapUrl?: string;
|
|
226
|
+
/** This is the history of workflow nodes that were executed during the call. */
|
|
227
|
+
nodes?: NodeArtifact[];
|
|
228
|
+
/** This is the state of variables at the end of the workflow execution. */
|
|
229
|
+
variables?: object;
|
|
218
230
|
}
|
|
219
231
|
export interface FallbackTranscriberPlan {
|
|
220
232
|
transcribers: (FallbackAssemblyAITranscriber | FallbackAzureSpeechTranscriber | FallbackCustomTranscriber | FallbackDeepgramTranscriber | FallbackElevenLabsTranscriber | FallbackGladiaTranscriber | FallbackGoogleTranscriber | FallbackTalkscriberTranscriber | FallbackSpeechmaticsTranscriber | FallbackOpenAITranscriber)[];
|
|
@@ -233,6 +245,13 @@ export interface AssemblyAITranscriber {
|
|
|
233
245
|
* @example 0.4
|
|
234
246
|
*/
|
|
235
247
|
confidenceThreshold?: number;
|
|
248
|
+
/**
|
|
249
|
+
* Uses Assembly AI's new Universal Streaming API. See: https://www.assemblyai.com/docs/speech-to-text/universal-streaming
|
|
250
|
+
*
|
|
251
|
+
* @default false
|
|
252
|
+
* @example false
|
|
253
|
+
*/
|
|
254
|
+
enableUniversalStreamingApi?: boolean;
|
|
236
255
|
/** The WebSocket URL that the transcriber connects to. */
|
|
237
256
|
realtimeUrl?: string;
|
|
238
257
|
/** Add up to 2500 characters of custom vocabulary. */
|
|
@@ -458,11 +477,13 @@ export interface GladiaTranscriber {
|
|
|
458
477
|
/** This is the transcription provider that will be used. */
|
|
459
478
|
provider: 'gladia';
|
|
460
479
|
/** This is the Gladia model that will be used. Default is 'fast' */
|
|
461
|
-
model?: 'fast' | 'accurate';
|
|
480
|
+
model?: 'fast' | 'accurate' | 'solaria-1';
|
|
462
481
|
/** Defines how the transcription model detects the audio language. Default value is 'automatic single language'. */
|
|
463
482
|
languageBehaviour?: 'manual' | 'automatic single language' | 'automatic multiple languages';
|
|
464
483
|
/** Defines the language to use for the transcription. Required when languageBehaviour is 'manual'. */
|
|
465
484
|
language?: 'af' | 'sq' | 'am' | 'ar' | 'hy' | 'as' | 'az' | 'ba' | 'eu' | 'be' | 'bn' | 'bs' | 'br' | 'bg' | 'ca' | 'zh' | 'hr' | 'cs' | 'da' | 'nl' | 'en' | 'et' | 'fo' | 'fi' | 'fr' | 'gl' | 'ka' | 'de' | 'el' | 'gu' | 'ht' | 'ha' | 'haw' | 'he' | 'hi' | 'hu' | 'is' | 'id' | 'it' | 'ja' | 'jv' | 'kn' | 'kk' | 'km' | 'ko' | 'lo' | 'la' | 'lv' | 'ln' | 'lt' | 'lb' | 'mk' | 'mg' | 'ms' | 'ml' | 'mt' | 'mi' | 'mr' | 'mn' | 'my' | 'ne' | 'no' | 'nn' | 'oc' | 'ps' | 'fa' | 'pl' | 'pt' | 'pa' | 'ro' | 'ru' | 'sa' | 'sr' | 'sn' | 'sd' | 'si' | 'sk' | 'sl' | 'so' | 'es' | 'su' | 'sw' | 'sv' | 'tl' | 'tg' | 'ta' | 'tt' | 'te' | 'th' | 'bo' | 'tr' | 'tk' | 'uk' | 'ur' | 'uz' | 'vi' | 'cy' | 'yi' | 'yo';
|
|
485
|
+
/** Defines the languages to use for the transcription. Required when languageBehaviour is 'manual'. */
|
|
486
|
+
languages?: 'af' | 'sq' | 'am' | 'ar' | 'hy' | 'as' | 'az' | 'ba' | 'eu' | 'be' | 'bn' | 'bs' | 'br' | 'bg' | 'ca' | 'zh' | 'hr' | 'cs' | 'da' | 'nl' | 'en' | 'et' | 'fo' | 'fi' | 'fr' | 'gl' | 'ka' | 'de' | 'el' | 'gu' | 'ht' | 'ha' | 'haw' | 'he' | 'hi' | 'hu' | 'is' | 'id' | 'it' | 'ja' | 'jv' | 'kn' | 'kk' | 'km' | 'ko' | 'lo' | 'la' | 'lv' | 'ln' | 'lt' | 'lb' | 'mk' | 'mg' | 'ms' | 'ml' | 'mt' | 'mi' | 'mr' | 'mn' | 'my' | 'ne' | 'no' | 'nn' | 'oc' | 'ps' | 'fa' | 'pl' | 'pt' | 'pa' | 'ro' | 'ru' | 'sa' | 'sr' | 'sn' | 'sd' | 'si' | 'sk' | 'sl' | 'so' | 'es' | 'su' | 'sw' | 'sv' | 'tl' | 'tg' | 'ta' | 'tt' | 'te' | 'th' | 'bo' | 'tr' | 'tk' | 'uk' | 'ur' | 'uz' | 'vi' | 'cy' | 'yi' | 'yo';
|
|
466
487
|
/**
|
|
467
488
|
* Provides a custom vocabulary to the model to improve accuracy of transcribing context specific words, technical terms, names, etc. If empty, this argument is ignored.
|
|
468
489
|
* ⚠️ Warning ⚠️: Please be aware that the transcription_hint field has a character limit of 600. If you provide a transcription_hint longer than 600 characters, it will be automatically truncated to meet this limit.
|
|
@@ -515,7 +536,7 @@ export interface GoogleTranscriber {
|
|
|
515
536
|
/** This is the transcription provider that will be used. */
|
|
516
537
|
provider: 'google';
|
|
517
538
|
/** This is the model that will be used for the transcription. */
|
|
518
|
-
model?: 'gemini-2.5-pro-preview-05-06' | 'gemini-2.5-flash-preview-04-17' | 'gemini-2.0-flash-thinking-exp' | 'gemini-2.0-pro-exp-02-05' | 'gemini-2.0-flash' | 'gemini-2.0-flash-lite' | 'gemini-2.0-flash-lite-preview-02-05' | 'gemini-2.0-flash-exp' | 'gemini-2.0-flash-realtime-exp' | 'gemini-1.5-flash' | 'gemini-1.5-flash-002' | 'gemini-1.5-pro' | 'gemini-1.5-pro-002' | 'gemini-1.0-pro';
|
|
539
|
+
model?: 'gemini-2.5-pro-preview-05-06' | 'gemini-2.5-flash-preview-05-20' | 'gemini-2.5-flash-preview-04-17' | 'gemini-2.0-flash-thinking-exp' | 'gemini-2.0-pro-exp-02-05' | 'gemini-2.0-flash' | 'gemini-2.0-flash-lite' | 'gemini-2.0-flash-lite-preview-02-05' | 'gemini-2.0-flash-exp' | 'gemini-2.0-flash-realtime-exp' | 'gemini-1.5-flash' | 'gemini-1.5-flash-002' | 'gemini-1.5-pro' | 'gemini-1.5-pro-002' | 'gemini-1.0-pro';
|
|
519
540
|
/** This is the language that will be set for the transcription. */
|
|
520
541
|
language?: 'Multilingual' | 'Arabic' | 'Bengali' | 'Bulgarian' | 'Chinese' | 'Croatian' | 'Czech' | 'Danish' | 'Dutch' | 'English' | 'Estonian' | 'Finnish' | 'French' | 'German' | 'Greek' | 'Hebrew' | 'Hindi' | 'Hungarian' | 'Indonesian' | 'Italian' | 'Japanese' | 'Korean' | 'Latvian' | 'Lithuanian' | 'Norwegian' | 'Polish' | 'Portuguese' | 'Romanian' | 'Russian' | 'Serbian' | 'Slovak' | 'Slovenian' | 'Spanish' | 'Swahili' | 'Swedish' | 'Thai' | 'Turkish' | 'Ukrainian' | 'Vietnamese';
|
|
521
542
|
/** This is the plan for voice provider fallbacks in the event that the primary voice provider fails. */
|
|
@@ -545,6 +566,13 @@ export interface FallbackAssemblyAITranscriber {
|
|
|
545
566
|
* @example 0.4
|
|
546
567
|
*/
|
|
547
568
|
confidenceThreshold?: number;
|
|
569
|
+
/**
|
|
570
|
+
* Uses Assembly AI's new Universal Streaming API. See: https://www.assemblyai.com/docs/speech-to-text/universal-streaming
|
|
571
|
+
*
|
|
572
|
+
* @default false
|
|
573
|
+
* @example false
|
|
574
|
+
*/
|
|
575
|
+
enableUniversalStreamingApi?: boolean;
|
|
548
576
|
/** The WebSocket URL that the transcriber connects to. */
|
|
549
577
|
realtimeUrl?: string;
|
|
550
578
|
/** Add up to 2500 characters of custom vocabulary. */
|
|
@@ -710,11 +738,13 @@ export interface FallbackGladiaTranscriber {
|
|
|
710
738
|
/** This is the transcription provider that will be used. */
|
|
711
739
|
provider: 'gladia';
|
|
712
740
|
/** This is the Gladia model that will be used. Default is 'fast' */
|
|
713
|
-
model?: 'fast' | 'accurate';
|
|
741
|
+
model?: 'fast' | 'accurate' | 'solaria-1';
|
|
714
742
|
/** Defines how the transcription model detects the audio language. Default value is 'automatic single language'. */
|
|
715
743
|
languageBehaviour?: 'manual' | 'automatic single language' | 'automatic multiple languages';
|
|
716
744
|
/** Defines the language to use for the transcription. Required when languageBehaviour is 'manual'. */
|
|
717
745
|
language?: 'af' | 'sq' | 'am' | 'ar' | 'hy' | 'as' | 'az' | 'ba' | 'eu' | 'be' | 'bn' | 'bs' | 'br' | 'bg' | 'ca' | 'zh' | 'hr' | 'cs' | 'da' | 'nl' | 'en' | 'et' | 'fo' | 'fi' | 'fr' | 'gl' | 'ka' | 'de' | 'el' | 'gu' | 'ht' | 'ha' | 'haw' | 'he' | 'hi' | 'hu' | 'is' | 'id' | 'it' | 'ja' | 'jv' | 'kn' | 'kk' | 'km' | 'ko' | 'lo' | 'la' | 'lv' | 'ln' | 'lt' | 'lb' | 'mk' | 'mg' | 'ms' | 'ml' | 'mt' | 'mi' | 'mr' | 'mn' | 'my' | 'ne' | 'no' | 'nn' | 'oc' | 'ps' | 'fa' | 'pl' | 'pt' | 'pa' | 'ro' | 'ru' | 'sa' | 'sr' | 'sn' | 'sd' | 'si' | 'sk' | 'sl' | 'so' | 'es' | 'su' | 'sw' | 'sv' | 'tl' | 'tg' | 'ta' | 'tt' | 'te' | 'th' | 'bo' | 'tr' | 'tk' | 'uk' | 'ur' | 'uz' | 'vi' | 'cy' | 'yi' | 'yo';
|
|
746
|
+
/** Defines the languages to use for the transcription. Required when languageBehaviour is 'manual'. */
|
|
747
|
+
languages?: 'af' | 'sq' | 'am' | 'ar' | 'hy' | 'as' | 'az' | 'ba' | 'eu' | 'be' | 'bn' | 'bs' | 'br' | 'bg' | 'ca' | 'zh' | 'hr' | 'cs' | 'da' | 'nl' | 'en' | 'et' | 'fo' | 'fi' | 'fr' | 'gl' | 'ka' | 'de' | 'el' | 'gu' | 'ht' | 'ha' | 'haw' | 'he' | 'hi' | 'hu' | 'is' | 'id' | 'it' | 'ja' | 'jv' | 'kn' | 'kk' | 'km' | 'ko' | 'lo' | 'la' | 'lv' | 'ln' | 'lt' | 'lb' | 'mk' | 'mg' | 'ms' | 'ml' | 'mt' | 'mi' | 'mr' | 'mn' | 'my' | 'ne' | 'no' | 'nn' | 'oc' | 'ps' | 'fa' | 'pl' | 'pt' | 'pa' | 'ro' | 'ru' | 'sa' | 'sr' | 'sn' | 'sd' | 'si' | 'sk' | 'sl' | 'so' | 'es' | 'su' | 'sw' | 'sv' | 'tl' | 'tg' | 'ta' | 'tt' | 'te' | 'th' | 'bo' | 'tr' | 'tk' | 'uk' | 'ur' | 'uz' | 'vi' | 'cy' | 'yi' | 'yo';
|
|
718
748
|
/**
|
|
719
749
|
* Provides a custom vocabulary to the model to improve accuracy of transcribing context specific words, technical terms, names, etc. If empty, this argument is ignored.
|
|
720
750
|
* ⚠️ Warning ⚠️: Please be aware that the transcription_hint field has a character limit of 600. If you provide a transcription_hint longer than 600 characters, it will be automatically truncated to meet this limit.
|
|
@@ -761,7 +791,7 @@ export interface FallbackGoogleTranscriber {
|
|
|
761
791
|
/** This is the transcription provider that will be used. */
|
|
762
792
|
provider: 'google';
|
|
763
793
|
/** This is the model that will be used for the transcription. */
|
|
764
|
-
model?: 'gemini-2.5-pro-preview-05-06' | 'gemini-2.5-flash-preview-04-17' | 'gemini-2.0-flash-thinking-exp' | 'gemini-2.0-pro-exp-02-05' | 'gemini-2.0-flash' | 'gemini-2.0-flash-lite' | 'gemini-2.0-flash-lite-preview-02-05' | 'gemini-2.0-flash-exp' | 'gemini-2.0-flash-realtime-exp' | 'gemini-1.5-flash' | 'gemini-1.5-flash-002' | 'gemini-1.5-pro' | 'gemini-1.5-pro-002' | 'gemini-1.0-pro';
|
|
794
|
+
model?: 'gemini-2.5-pro-preview-05-06' | 'gemini-2.5-flash-preview-05-20' | 'gemini-2.5-flash-preview-04-17' | 'gemini-2.0-flash-thinking-exp' | 'gemini-2.0-pro-exp-02-05' | 'gemini-2.0-flash' | 'gemini-2.0-flash-lite' | 'gemini-2.0-flash-lite-preview-02-05' | 'gemini-2.0-flash-exp' | 'gemini-2.0-flash-realtime-exp' | 'gemini-1.5-flash' | 'gemini-1.5-flash-002' | 'gemini-1.5-pro' | 'gemini-1.5-pro-002' | 'gemini-1.0-pro';
|
|
765
795
|
/** This is the language that will be set for the transcription. */
|
|
766
796
|
language?: 'Multilingual' | 'Arabic' | 'Bengali' | 'Bulgarian' | 'Chinese' | 'Croatian' | 'Czech' | 'Danish' | 'Dutch' | 'English' | 'Estonian' | 'Finnish' | 'French' | 'German' | 'Greek' | 'Hebrew' | 'Hindi' | 'Hungarian' | 'Indonesian' | 'Italian' | 'Japanese' | 'Korean' | 'Latvian' | 'Lithuanian' | 'Norwegian' | 'Polish' | 'Portuguese' | 'Romanian' | 'Russian' | 'Serbian' | 'Slovak' | 'Slovenian' | 'Spanish' | 'Swahili' | 'Swedish' | 'Thai' | 'Turkish' | 'Ukrainian' | 'Vietnamese';
|
|
767
797
|
}
|
|
@@ -1000,8 +1030,6 @@ export interface JsonSchema {
|
|
|
1000
1030
|
* This only makes sense if the type is "object".
|
|
1001
1031
|
*/
|
|
1002
1032
|
required?: string[];
|
|
1003
|
-
/** This is a regex that will be used to validate data in question. */
|
|
1004
|
-
regex?: string;
|
|
1005
1033
|
/** This the value that will be used in filling the property. */
|
|
1006
1034
|
value?: string;
|
|
1007
1035
|
/** This the target variable that will be filled with the value of this property. */
|
|
@@ -1052,17 +1080,6 @@ export interface OpenAIFunction {
|
|
|
1052
1080
|
parameters?: OpenAIFunctionParameters;
|
|
1053
1081
|
}
|
|
1054
1082
|
export interface CreateDtmfToolDTO {
|
|
1055
|
-
/**
|
|
1056
|
-
* This determines if the tool is async.
|
|
1057
|
-
*
|
|
1058
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
1059
|
-
*
|
|
1060
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
1061
|
-
*
|
|
1062
|
-
* Defaults to synchronous (`false`).
|
|
1063
|
-
* @example false
|
|
1064
|
-
*/
|
|
1065
|
-
async?: boolean;
|
|
1066
1083
|
/**
|
|
1067
1084
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
1068
1085
|
*
|
|
@@ -1079,27 +1096,8 @@ export interface CreateDtmfToolDTO {
|
|
|
1079
1096
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
1080
1097
|
*/
|
|
1081
1098
|
function?: OpenAIFunction;
|
|
1082
|
-
/**
|
|
1083
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
1084
|
-
*
|
|
1085
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
1086
|
-
*
|
|
1087
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
1088
|
-
*/
|
|
1089
|
-
server?: Server;
|
|
1090
1099
|
}
|
|
1091
1100
|
export interface CreateEndCallToolDTO {
|
|
1092
|
-
/**
|
|
1093
|
-
* This determines if the tool is async.
|
|
1094
|
-
*
|
|
1095
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
1096
|
-
*
|
|
1097
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
1098
|
-
*
|
|
1099
|
-
* Defaults to synchronous (`false`).
|
|
1100
|
-
* @example false
|
|
1101
|
-
*/
|
|
1102
|
-
async?: boolean;
|
|
1103
1101
|
/**
|
|
1104
1102
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
1105
1103
|
*
|
|
@@ -1116,27 +1114,8 @@ export interface CreateEndCallToolDTO {
|
|
|
1116
1114
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
1117
1115
|
*/
|
|
1118
1116
|
function?: OpenAIFunction;
|
|
1119
|
-
/**
|
|
1120
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
1121
|
-
*
|
|
1122
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
1123
|
-
*
|
|
1124
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
1125
|
-
*/
|
|
1126
|
-
server?: Server;
|
|
1127
1117
|
}
|
|
1128
1118
|
export interface CreateVoicemailToolDTO {
|
|
1129
|
-
/**
|
|
1130
|
-
* This determines if the tool is async.
|
|
1131
|
-
*
|
|
1132
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
1133
|
-
*
|
|
1134
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
1135
|
-
*
|
|
1136
|
-
* Defaults to synchronous (`false`).
|
|
1137
|
-
* @example false
|
|
1138
|
-
*/
|
|
1139
|
-
async?: boolean;
|
|
1140
1119
|
/**
|
|
1141
1120
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
1142
1121
|
*
|
|
@@ -1156,35 +1135,39 @@ export interface CreateVoicemailToolDTO {
|
|
|
1156
1135
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
1157
1136
|
*/
|
|
1158
1137
|
function?: OpenAIFunction;
|
|
1138
|
+
}
|
|
1139
|
+
export interface CreateFunctionToolDTO {
|
|
1159
1140
|
/**
|
|
1160
|
-
*
|
|
1161
|
-
*
|
|
1162
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
1141
|
+
* These are the messages that will be spoken to the user as the tool is running.
|
|
1163
1142
|
*
|
|
1164
|
-
*
|
|
1143
|
+
* For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
|
|
1165
1144
|
*/
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1145
|
+
messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
|
|
1146
|
+
/** The type of tool. "function" for Function tool. */
|
|
1147
|
+
type: 'function';
|
|
1169
1148
|
/**
|
|
1170
1149
|
* This determines if the tool is async.
|
|
1171
1150
|
*
|
|
1172
|
-
*
|
|
1151
|
+
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
1173
1152
|
*
|
|
1174
|
-
*
|
|
1153
|
+
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
1175
1154
|
*
|
|
1176
|
-
*
|
|
1155
|
+
* Defaults to synchronous (`false`).
|
|
1177
1156
|
* @example false
|
|
1178
1157
|
*/
|
|
1179
1158
|
async?: boolean;
|
|
1180
1159
|
/**
|
|
1181
|
-
* These are the messages that will be spoken to the user as the tool is running.
|
|
1182
1160
|
*
|
|
1183
|
-
*
|
|
1161
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
1162
|
+
*
|
|
1163
|
+
* Notes:
|
|
1164
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
1165
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
1166
|
+
* - Webhook contains the variables set on the assistant.
|
|
1167
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
1168
|
+
* - Webhook expects a response with tool call result.
|
|
1184
1169
|
*/
|
|
1185
|
-
|
|
1186
|
-
/** The type of tool. "function" for Function tool. */
|
|
1187
|
-
type: 'function';
|
|
1170
|
+
server?: Server;
|
|
1188
1171
|
/**
|
|
1189
1172
|
* This is the function definition of the tool.
|
|
1190
1173
|
*
|
|
@@ -1193,31 +1176,12 @@ export interface CreateFunctionToolDTO {
|
|
|
1193
1176
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
1194
1177
|
*/
|
|
1195
1178
|
function?: OpenAIFunction;
|
|
1196
|
-
/**
|
|
1197
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
1198
|
-
*
|
|
1199
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
1200
|
-
*
|
|
1201
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
1202
|
-
*/
|
|
1203
|
-
server?: Server;
|
|
1204
1179
|
}
|
|
1205
1180
|
export interface GhlToolMetadata {
|
|
1206
1181
|
workflowId?: string;
|
|
1207
1182
|
locationId?: string;
|
|
1208
1183
|
}
|
|
1209
1184
|
export interface CreateGhlToolDTO {
|
|
1210
|
-
/**
|
|
1211
|
-
* This determines if the tool is async.
|
|
1212
|
-
*
|
|
1213
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
1214
|
-
*
|
|
1215
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
1216
|
-
*
|
|
1217
|
-
* Defaults to synchronous (`false`).
|
|
1218
|
-
* @example false
|
|
1219
|
-
*/
|
|
1220
|
-
async?: boolean;
|
|
1221
1185
|
/**
|
|
1222
1186
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
1223
1187
|
*
|
|
@@ -1235,31 +1199,12 @@ export interface CreateGhlToolDTO {
|
|
|
1235
1199
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
1236
1200
|
*/
|
|
1237
1201
|
function?: OpenAIFunction;
|
|
1238
|
-
/**
|
|
1239
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
1240
|
-
*
|
|
1241
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
1242
|
-
*
|
|
1243
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
1244
|
-
*/
|
|
1245
|
-
server?: Server;
|
|
1246
1202
|
}
|
|
1247
1203
|
export interface MakeToolMetadata {
|
|
1248
1204
|
scenarioId?: number;
|
|
1249
1205
|
triggerHookId?: number;
|
|
1250
1206
|
}
|
|
1251
1207
|
export interface CreateMakeToolDTO {
|
|
1252
|
-
/**
|
|
1253
|
-
* This determines if the tool is async.
|
|
1254
|
-
*
|
|
1255
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
1256
|
-
*
|
|
1257
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
1258
|
-
*
|
|
1259
|
-
* Defaults to synchronous (`false`).
|
|
1260
|
-
* @example false
|
|
1261
|
-
*/
|
|
1262
|
-
async?: boolean;
|
|
1263
1208
|
/**
|
|
1264
1209
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
1265
1210
|
*
|
|
@@ -1277,14 +1222,6 @@ export interface CreateMakeToolDTO {
|
|
|
1277
1222
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
1278
1223
|
*/
|
|
1279
1224
|
function?: OpenAIFunction;
|
|
1280
|
-
/**
|
|
1281
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
1282
|
-
*
|
|
1283
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
1284
|
-
*
|
|
1285
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
1286
|
-
*/
|
|
1287
|
-
server?: Server;
|
|
1288
1225
|
}
|
|
1289
1226
|
export interface CustomMessage {
|
|
1290
1227
|
/**
|
|
@@ -1493,6 +1430,15 @@ export interface TransferPlan {
|
|
|
1493
1430
|
* - Used only when `mode` is `blind-transfer-add-summary-to-sip-header`, `warm-transfer-say-message`, `warm-transfer-wait-for-operator-to-speak-first-and-then-say-message`, or `warm-transfer-experimental`.
|
|
1494
1431
|
*/
|
|
1495
1432
|
message?: string | CustomMessage;
|
|
1433
|
+
/**
|
|
1434
|
+
* This is the timeout in seconds for the warm-transfer-wait-for-operator-to-speak-first-and-then-say-message/summary
|
|
1435
|
+
*
|
|
1436
|
+
* @default 60
|
|
1437
|
+
* @min 1
|
|
1438
|
+
* @max 600
|
|
1439
|
+
* @default 60
|
|
1440
|
+
*/
|
|
1441
|
+
timeout?: number;
|
|
1496
1442
|
/**
|
|
1497
1443
|
* This specifies the SIP verb to use while transferring the call.
|
|
1498
1444
|
* - 'refer': Uses SIP REFER to transfer the call (default)
|
|
@@ -1512,6 +1458,17 @@ export interface TransferPlan {
|
|
|
1512
1458
|
* - If not provided, the default hold audio will be used.
|
|
1513
1459
|
*/
|
|
1514
1460
|
holdAudioUrl?: string;
|
|
1461
|
+
/**
|
|
1462
|
+
* This is the URL to an audio file played after the warm transfer message or summary is delivered to the destination party.
|
|
1463
|
+
* It can be used to play a custom sound like 'beep' to notify that the transfer is complete.
|
|
1464
|
+
*
|
|
1465
|
+
* Usage:
|
|
1466
|
+
* - Used only when `mode` is `warm-transfer-experimental`.
|
|
1467
|
+
* - Used when transferring calls to play hold audio for the destination party.
|
|
1468
|
+
* - Must be a publicly accessible URL to an audio file.
|
|
1469
|
+
* - Supported formats: MP3 and WAV.
|
|
1470
|
+
*/
|
|
1471
|
+
transferCompleteAudioUrl?: string;
|
|
1515
1472
|
/**
|
|
1516
1473
|
* This is the TwiML instructions to execute on the destination call leg before connecting the customer.
|
|
1517
1474
|
*
|
|
@@ -1637,17 +1594,6 @@ export interface TransferDestinationSip {
|
|
|
1637
1594
|
description?: string;
|
|
1638
1595
|
}
|
|
1639
1596
|
export interface CreateTransferCallToolDTO {
|
|
1640
|
-
/**
|
|
1641
|
-
* This determines if the tool is async.
|
|
1642
|
-
*
|
|
1643
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
1644
|
-
*
|
|
1645
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
1646
|
-
*
|
|
1647
|
-
* Defaults to synchronous (`false`).
|
|
1648
|
-
* @example false
|
|
1649
|
-
*/
|
|
1650
|
-
async?: boolean;
|
|
1651
1597
|
/**
|
|
1652
1598
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
1653
1599
|
*
|
|
@@ -1665,14 +1611,6 @@ export interface CreateTransferCallToolDTO {
|
|
|
1665
1611
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
1666
1612
|
*/
|
|
1667
1613
|
function?: OpenAIFunction;
|
|
1668
|
-
/**
|
|
1669
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
1670
|
-
*
|
|
1671
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
1672
|
-
*
|
|
1673
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
1674
|
-
*/
|
|
1675
|
-
server?: Server;
|
|
1676
1614
|
}
|
|
1677
1615
|
export interface CreateCustomKnowledgeBaseDTO {
|
|
1678
1616
|
/** This knowledge base is bring your own knowledge base implementation. */
|
|
@@ -1732,24 +1670,13 @@ export interface KnowledgeBase {
|
|
|
1732
1670
|
*/
|
|
1733
1671
|
provider: 'google';
|
|
1734
1672
|
/** The model to use for the knowledge base */
|
|
1735
|
-
model?: 'gemini-2.5-pro-preview-05-06' | 'gemini-2.5-flash-preview-04-17' | 'gemini-2.0-flash-thinking-exp' | 'gemini-2.0-pro-exp-02-05' | 'gemini-2.0-flash' | 'gemini-2.0-flash-lite' | 'gemini-2.0-flash-lite-preview-02-05' | 'gemini-2.0-flash-exp' | 'gemini-2.0-flash-realtime-exp' | 'gemini-1.5-flash' | 'gemini-1.5-flash-002' | 'gemini-1.5-pro' | 'gemini-1.5-pro-002' | 'gemini-1.0-pro';
|
|
1673
|
+
model?: 'gemini-2.5-pro-preview-05-06' | 'gemini-2.5-flash-preview-05-20' | 'gemini-2.5-flash-preview-04-17' | 'gemini-2.0-flash-thinking-exp' | 'gemini-2.0-pro-exp-02-05' | 'gemini-2.0-flash' | 'gemini-2.0-flash-lite' | 'gemini-2.0-flash-lite-preview-02-05' | 'gemini-2.0-flash-exp' | 'gemini-2.0-flash-realtime-exp' | 'gemini-1.5-flash' | 'gemini-1.5-flash-002' | 'gemini-1.5-pro' | 'gemini-1.5-pro-002' | 'gemini-1.0-pro';
|
|
1736
1674
|
/** A description of the knowledge base */
|
|
1737
1675
|
description: string;
|
|
1738
1676
|
/** The file IDs associated with this knowledge base */
|
|
1739
1677
|
fileIds: string[];
|
|
1740
1678
|
}
|
|
1741
1679
|
export interface CreateQueryToolDTO {
|
|
1742
|
-
/**
|
|
1743
|
-
* This determines if the tool is async.
|
|
1744
|
-
*
|
|
1745
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
1746
|
-
*
|
|
1747
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
1748
|
-
*
|
|
1749
|
-
* Defaults to synchronous (`false`).
|
|
1750
|
-
* @example false
|
|
1751
|
-
*/
|
|
1752
|
-
async?: boolean;
|
|
1753
1680
|
/**
|
|
1754
1681
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
1755
1682
|
*
|
|
@@ -1768,27 +1695,8 @@ export interface CreateQueryToolDTO {
|
|
|
1768
1695
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
1769
1696
|
*/
|
|
1770
1697
|
function?: OpenAIFunction;
|
|
1771
|
-
/**
|
|
1772
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
1773
|
-
*
|
|
1774
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
1775
|
-
*
|
|
1776
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
1777
|
-
*/
|
|
1778
|
-
server?: Server;
|
|
1779
1698
|
}
|
|
1780
1699
|
export interface CreateGoogleCalendarCreateEventToolDTO {
|
|
1781
|
-
/**
|
|
1782
|
-
* This determines if the tool is async.
|
|
1783
|
-
*
|
|
1784
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
1785
|
-
*
|
|
1786
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
1787
|
-
*
|
|
1788
|
-
* Defaults to synchronous (`false`).
|
|
1789
|
-
* @example false
|
|
1790
|
-
*/
|
|
1791
|
-
async?: boolean;
|
|
1792
1700
|
/**
|
|
1793
1701
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
1794
1702
|
*
|
|
@@ -1805,27 +1713,8 @@ export interface CreateGoogleCalendarCreateEventToolDTO {
|
|
|
1805
1713
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
1806
1714
|
*/
|
|
1807
1715
|
function?: OpenAIFunction;
|
|
1808
|
-
/**
|
|
1809
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
1810
|
-
*
|
|
1811
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
1812
|
-
*
|
|
1813
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
1814
|
-
*/
|
|
1815
|
-
server?: Server;
|
|
1816
1716
|
}
|
|
1817
1717
|
export interface CreateGoogleSheetsRowAppendToolDTO {
|
|
1818
|
-
/**
|
|
1819
|
-
* This determines if the tool is async.
|
|
1820
|
-
*
|
|
1821
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
1822
|
-
*
|
|
1823
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
1824
|
-
*
|
|
1825
|
-
* Defaults to synchronous (`false`).
|
|
1826
|
-
* @example false
|
|
1827
|
-
*/
|
|
1828
|
-
async?: boolean;
|
|
1829
1718
|
/**
|
|
1830
1719
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
1831
1720
|
*
|
|
@@ -1842,27 +1731,8 @@ export interface CreateGoogleSheetsRowAppendToolDTO {
|
|
|
1842
1731
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
1843
1732
|
*/
|
|
1844
1733
|
function?: OpenAIFunction;
|
|
1845
|
-
/**
|
|
1846
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
1847
|
-
*
|
|
1848
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
1849
|
-
*
|
|
1850
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
1851
|
-
*/
|
|
1852
|
-
server?: Server;
|
|
1853
1734
|
}
|
|
1854
1735
|
export interface CreateGoogleCalendarCheckAvailabilityToolDTO {
|
|
1855
|
-
/**
|
|
1856
|
-
* This determines if the tool is async.
|
|
1857
|
-
*
|
|
1858
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
1859
|
-
*
|
|
1860
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
1861
|
-
*
|
|
1862
|
-
* Defaults to synchronous (`false`).
|
|
1863
|
-
* @example false
|
|
1864
|
-
*/
|
|
1865
|
-
async?: boolean;
|
|
1866
1736
|
/**
|
|
1867
1737
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
1868
1738
|
*
|
|
@@ -1879,27 +1749,8 @@ export interface CreateGoogleCalendarCheckAvailabilityToolDTO {
|
|
|
1879
1749
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
1880
1750
|
*/
|
|
1881
1751
|
function?: OpenAIFunction;
|
|
1882
|
-
/**
|
|
1883
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
1884
|
-
*
|
|
1885
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
1886
|
-
*
|
|
1887
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
1888
|
-
*/
|
|
1889
|
-
server?: Server;
|
|
1890
1752
|
}
|
|
1891
1753
|
export interface CreateSlackSendMessageToolDTO {
|
|
1892
|
-
/**
|
|
1893
|
-
* This determines if the tool is async.
|
|
1894
|
-
*
|
|
1895
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
1896
|
-
*
|
|
1897
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
1898
|
-
*
|
|
1899
|
-
* Defaults to synchronous (`false`).
|
|
1900
|
-
* @example false
|
|
1901
|
-
*/
|
|
1902
|
-
async?: boolean;
|
|
1903
1754
|
/**
|
|
1904
1755
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
1905
1756
|
*
|
|
@@ -1916,27 +1767,8 @@ export interface CreateSlackSendMessageToolDTO {
|
|
|
1916
1767
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
1917
1768
|
*/
|
|
1918
1769
|
function?: OpenAIFunction;
|
|
1919
|
-
/**
|
|
1920
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
1921
|
-
*
|
|
1922
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
1923
|
-
*
|
|
1924
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
1925
|
-
*/
|
|
1926
|
-
server?: Server;
|
|
1927
1770
|
}
|
|
1928
1771
|
export interface CreateMcpToolDTO {
|
|
1929
|
-
/**
|
|
1930
|
-
* This determines if the tool is async.
|
|
1931
|
-
*
|
|
1932
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
1933
|
-
*
|
|
1934
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
1935
|
-
*
|
|
1936
|
-
* Defaults to synchronous (`false`).
|
|
1937
|
-
* @example false
|
|
1938
|
-
*/
|
|
1939
|
-
async?: boolean;
|
|
1940
1772
|
/**
|
|
1941
1773
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
1942
1774
|
*
|
|
@@ -1946,34 +1778,27 @@ export interface CreateMcpToolDTO {
|
|
|
1946
1778
|
/** The type of tool. "mcp" for MCP tool. */
|
|
1947
1779
|
type: 'mcp';
|
|
1948
1780
|
/**
|
|
1949
|
-
* This is the function definition of the tool.
|
|
1950
1781
|
*
|
|
1951
|
-
*
|
|
1782
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
1952
1783
|
*
|
|
1953
|
-
*
|
|
1784
|
+
* Notes:
|
|
1785
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
1786
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
1787
|
+
* - Webhook contains the variables set on the assistant.
|
|
1788
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
1789
|
+
* - Webhook expects a response with tool call result.
|
|
1954
1790
|
*/
|
|
1955
|
-
|
|
1791
|
+
server?: Server;
|
|
1956
1792
|
/**
|
|
1957
|
-
* This is the
|
|
1793
|
+
* This is the function definition of the tool.
|
|
1958
1794
|
*
|
|
1959
|
-
*
|
|
1795
|
+
* For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.
|
|
1960
1796
|
*
|
|
1961
|
-
*
|
|
1797
|
+
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
1962
1798
|
*/
|
|
1963
|
-
|
|
1799
|
+
function?: OpenAIFunction;
|
|
1964
1800
|
}
|
|
1965
1801
|
export interface CreateGoHighLevelCalendarAvailabilityToolDTO {
|
|
1966
|
-
/**
|
|
1967
|
-
* This determines if the tool is async.
|
|
1968
|
-
*
|
|
1969
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
1970
|
-
*
|
|
1971
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
1972
|
-
*
|
|
1973
|
-
* Defaults to synchronous (`false`).
|
|
1974
|
-
* @example false
|
|
1975
|
-
*/
|
|
1976
|
-
async?: boolean;
|
|
1977
1802
|
/**
|
|
1978
1803
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
1979
1804
|
*
|
|
@@ -1990,27 +1815,8 @@ export interface CreateGoHighLevelCalendarAvailabilityToolDTO {
|
|
|
1990
1815
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
1991
1816
|
*/
|
|
1992
1817
|
function?: OpenAIFunction;
|
|
1993
|
-
/**
|
|
1994
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
1995
|
-
*
|
|
1996
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
1997
|
-
*
|
|
1998
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
1999
|
-
*/
|
|
2000
|
-
server?: Server;
|
|
2001
1818
|
}
|
|
2002
1819
|
export interface CreateGoHighLevelCalendarEventCreateToolDTO {
|
|
2003
|
-
/**
|
|
2004
|
-
* This determines if the tool is async.
|
|
2005
|
-
*
|
|
2006
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
2007
|
-
*
|
|
2008
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
2009
|
-
*
|
|
2010
|
-
* Defaults to synchronous (`false`).
|
|
2011
|
-
* @example false
|
|
2012
|
-
*/
|
|
2013
|
-
async?: boolean;
|
|
2014
1820
|
/**
|
|
2015
1821
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
2016
1822
|
*
|
|
@@ -2027,27 +1833,8 @@ export interface CreateGoHighLevelCalendarEventCreateToolDTO {
|
|
|
2027
1833
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
2028
1834
|
*/
|
|
2029
1835
|
function?: OpenAIFunction;
|
|
2030
|
-
/**
|
|
2031
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
2032
|
-
*
|
|
2033
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
2034
|
-
*
|
|
2035
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
2036
|
-
*/
|
|
2037
|
-
server?: Server;
|
|
2038
1836
|
}
|
|
2039
1837
|
export interface CreateGoHighLevelContactCreateToolDTO {
|
|
2040
|
-
/**
|
|
2041
|
-
* This determines if the tool is async.
|
|
2042
|
-
*
|
|
2043
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
2044
|
-
*
|
|
2045
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
2046
|
-
*
|
|
2047
|
-
* Defaults to synchronous (`false`).
|
|
2048
|
-
* @example false
|
|
2049
|
-
*/
|
|
2050
|
-
async?: boolean;
|
|
2051
1838
|
/**
|
|
2052
1839
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
2053
1840
|
*
|
|
@@ -2064,27 +1851,8 @@ export interface CreateGoHighLevelContactCreateToolDTO {
|
|
|
2064
1851
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
2065
1852
|
*/
|
|
2066
1853
|
function?: OpenAIFunction;
|
|
2067
|
-
/**
|
|
2068
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
2069
|
-
*
|
|
2070
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
2071
|
-
*
|
|
2072
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
2073
|
-
*/
|
|
2074
|
-
server?: Server;
|
|
2075
1854
|
}
|
|
2076
1855
|
export interface CreateGoHighLevelContactGetToolDTO {
|
|
2077
|
-
/**
|
|
2078
|
-
* This determines if the tool is async.
|
|
2079
|
-
*
|
|
2080
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
2081
|
-
*
|
|
2082
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
2083
|
-
*
|
|
2084
|
-
* Defaults to synchronous (`false`).
|
|
2085
|
-
* @example false
|
|
2086
|
-
*/
|
|
2087
|
-
async?: boolean;
|
|
2088
1856
|
/**
|
|
2089
1857
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
2090
1858
|
*
|
|
@@ -2101,14 +1869,6 @@ export interface CreateGoHighLevelContactGetToolDTO {
|
|
|
2101
1869
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
2102
1870
|
*/
|
|
2103
1871
|
function?: OpenAIFunction;
|
|
2104
|
-
/**
|
|
2105
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
2106
|
-
*
|
|
2107
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
2108
|
-
*
|
|
2109
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
2110
|
-
*/
|
|
2111
|
-
server?: Server;
|
|
2112
1872
|
}
|
|
2113
1873
|
export interface AnyscaleModel {
|
|
2114
1874
|
/** This is the starting state for the conversation. */
|
|
@@ -2516,7 +2276,7 @@ export interface GoogleModel {
|
|
|
2516
2276
|
/** This is the ID of the knowledge base the model will use. */
|
|
2517
2277
|
knowledgeBaseId?: string;
|
|
2518
2278
|
/** This is the Google model that will be used. */
|
|
2519
|
-
model: 'gemini-2.5-pro-preview-05-06' | 'gemini-2.5-flash-preview-04-17' | 'gemini-2.0-flash-thinking-exp' | 'gemini-2.0-pro-exp-02-05' | 'gemini-2.0-flash' | 'gemini-2.0-flash-lite' | 'gemini-2.0-flash-lite-preview-02-05' | 'gemini-2.0-flash-exp' | 'gemini-2.0-flash-realtime-exp' | 'gemini-1.5-flash' | 'gemini-1.5-flash-002' | 'gemini-1.5-pro' | 'gemini-1.5-pro-002' | 'gemini-1.0-pro';
|
|
2279
|
+
model: 'gemini-2.5-pro-preview-05-06' | 'gemini-2.5-flash-preview-05-20' | 'gemini-2.5-flash-preview-04-17' | 'gemini-2.0-flash-thinking-exp' | 'gemini-2.0-pro-exp-02-05' | 'gemini-2.0-flash' | 'gemini-2.0-flash-lite' | 'gemini-2.0-flash-lite-preview-02-05' | 'gemini-2.0-flash-exp' | 'gemini-2.0-flash-realtime-exp' | 'gemini-1.5-flash' | 'gemini-1.5-flash-002' | 'gemini-1.5-pro' | 'gemini-1.5-pro-002' | 'gemini-1.0-pro';
|
|
2520
2280
|
provider: 'google';
|
|
2521
2281
|
/**
|
|
2522
2282
|
* This is the session configuration for the Gemini Flash 2.0 Multimodal Live API.
|
|
@@ -2678,13 +2438,29 @@ export interface OpenAIModel {
|
|
|
2678
2438
|
knowledgeBaseId?: string;
|
|
2679
2439
|
/** This is the provider that will be used for the model. */
|
|
2680
2440
|
provider: 'openai';
|
|
2681
|
-
/**
|
|
2682
|
-
|
|
2441
|
+
/**
|
|
2442
|
+
* This is the OpenAI model that will be used.
|
|
2443
|
+
*
|
|
2444
|
+
* When using Vapi OpenAI or your own Azure Credentials, you have the option to specify the region for the selected model. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest region that make sense.
|
|
2445
|
+
* This is helpful when you are required to comply with Data Residency rules. Learn more about Azure regions here https://azure.microsoft.com/en-us/explore/global-infrastructure/data-residency/.
|
|
2446
|
+
*
|
|
2447
|
+
* @default undefined
|
|
2448
|
+
*/
|
|
2449
|
+
model: 'gpt-4.1-2025-04-14' | 'gpt-4.1-mini-2025-04-14' | 'gpt-4.1-nano-2025-04-14' | 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-4.5-preview' | 'chatgpt-4o-latest' | 'o3' | 'o3-mini' | 'o4-mini' | 'o1-preview' | 'o1-preview-2024-09-12' | 'o1-mini' | 'o1-mini-2024-09-12' | 'gpt-4o-realtime-preview-2024-10-01' | 'gpt-4o-realtime-preview-2024-12-17' | 'gpt-4o-mini-realtime-preview-2024-12-17' | 'gpt-4o-mini-2024-07-18' | 'gpt-4o-mini' | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-11-20' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4-turbo-preview' | 'gpt-4-0125-preview' | 'gpt-4-1106-preview' | 'gpt-4' | 'gpt-4-0613' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo-1106' | 'gpt-3.5-turbo-16k' | 'gpt-3.5-turbo-0613' | 'gpt-4.1-2025-04-14:westus' | 'gpt-4.1-2025-04-14:eastus2' | 'gpt-4.1-2025-04-14:eastus' | 'gpt-4.1-2025-04-14:westus3' | 'gpt-4.1-2025-04-14:northcentralus' | 'gpt-4.1-2025-04-14:southcentralus' | 'gpt-4.1-mini-2025-04-14:westus' | 'gpt-4.1-mini-2025-04-14:eastus2' | 'gpt-4.1-mini-2025-04-14:eastus' | 'gpt-4.1-mini-2025-04-14:westus3' | 'gpt-4.1-mini-2025-04-14:northcentralus' | 'gpt-4.1-mini-2025-04-14:southcentralus' | 'gpt-4.1-nano-2025-04-14:westus' | 'gpt-4.1-nano-2025-04-14:eastus2' | 'gpt-4.1-nano-2025-04-14:westus3' | 'gpt-4.1-nano-2025-04-14:northcentralus' | 'gpt-4.1-nano-2025-04-14:southcentralus' | 'gpt-4o-2024-11-20:swedencentral' | 'gpt-4o-2024-11-20:westus' | 'gpt-4o-2024-11-20:eastus2' | 'gpt-4o-2024-11-20:eastus' | 'gpt-4o-2024-11-20:westus3' | 'gpt-4o-2024-11-20:southcentralus' | 'gpt-4o-2024-08-06:westus' | 'gpt-4o-2024-08-06:westus3' | 'gpt-4o-2024-08-06:eastus' | 'gpt-4o-2024-08-06:eastus2' | 'gpt-4o-2024-08-06:northcentralus' | 'gpt-4o-2024-08-06:southcentralus' | 'gpt-4o-mini-2024-07-18:westus' | 'gpt-4o-mini-2024-07-18:westus3' | 'gpt-4o-mini-2024-07-18:eastus' | 'gpt-4o-mini-2024-07-18:eastus2' | 'gpt-4o-mini-2024-07-18:northcentralus' | 'gpt-4o-mini-2024-07-18:southcentralus' | 'gpt-4o-2024-05-13:eastus2' | 'gpt-4o-2024-05-13:eastus' | 'gpt-4o-2024-05-13:northcentralus' | 'gpt-4o-2024-05-13:southcentralus' | 'gpt-4o-2024-05-13:westus3' | 'gpt-4o-2024-05-13:westus' | 'gpt-4-turbo-2024-04-09:eastus2' | 'gpt-4-0125-preview:eastus' | 'gpt-4-0125-preview:northcentralus' | 'gpt-4-0125-preview:southcentralus' | 'gpt-4-1106-preview:australia' | 'gpt-4-1106-preview:canadaeast' | 'gpt-4-1106-preview:france' | 'gpt-4-1106-preview:india' | 'gpt-4-1106-preview:norway' | 'gpt-4-1106-preview:swedencentral' | 'gpt-4-1106-preview:uk' | 'gpt-4-1106-preview:westus' | 'gpt-4-1106-preview:westus3' | 'gpt-4-0613:canadaeast' | 'gpt-3.5-turbo-0125:canadaeast' | 'gpt-3.5-turbo-0125:northcentralus' | 'gpt-3.5-turbo-0125:southcentralus' | 'gpt-3.5-turbo-1106:canadaeast' | 'gpt-3.5-turbo-1106:westus';
|
|
2683
2450
|
/**
|
|
2684
2451
|
* These are the fallback models that will be used if the primary model fails. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest fallbacks that make sense.
|
|
2685
2452
|
* @example ["gpt-4-0125-preview","gpt-4-0613"]
|
|
2686
2453
|
*/
|
|
2687
|
-
fallbackModels?: 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-4.5-preview' | 'chatgpt-4o-latest' | 'o3' | 'o3-mini' | 'o4-mini' | 'o1-preview' | 'o1-preview-2024-09-12' | 'o1-mini' | 'o1-mini-2024-09-12' | 'gpt-4o-realtime-preview-2024-10-01' | 'gpt-4o-realtime-preview-2024-12-17' | 'gpt-4o-mini-realtime-preview-2024-12-17' | 'gpt-4o-mini-2024-07-18' | 'gpt-4o-mini' | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-11-20' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4-turbo-preview' | 'gpt-4-0125-preview' | 'gpt-4-1106-preview' | 'gpt-4' | 'gpt-4-0613' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo-1106' | 'gpt-3.5-turbo-16k' | 'gpt-3.5-turbo-0613';
|
|
2454
|
+
fallbackModels?: 'gpt-4.1-2025-04-14' | 'gpt-4.1-mini-2025-04-14' | 'gpt-4.1-nano-2025-04-14' | 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-4.5-preview' | 'chatgpt-4o-latest' | 'o3' | 'o3-mini' | 'o4-mini' | 'o1-preview' | 'o1-preview-2024-09-12' | 'o1-mini' | 'o1-mini-2024-09-12' | 'gpt-4o-realtime-preview-2024-10-01' | 'gpt-4o-realtime-preview-2024-12-17' | 'gpt-4o-mini-realtime-preview-2024-12-17' | 'gpt-4o-mini-2024-07-18' | 'gpt-4o-mini' | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-11-20' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4-turbo-preview' | 'gpt-4-0125-preview' | 'gpt-4-1106-preview' | 'gpt-4' | 'gpt-4-0613' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo-1106' | 'gpt-3.5-turbo-16k' | 'gpt-3.5-turbo-0613' | 'gpt-4.1-2025-04-14:westus' | 'gpt-4.1-2025-04-14:eastus2' | 'gpt-4.1-2025-04-14:eastus' | 'gpt-4.1-2025-04-14:westus3' | 'gpt-4.1-2025-04-14:northcentralus' | 'gpt-4.1-2025-04-14:southcentralus' | 'gpt-4.1-mini-2025-04-14:westus' | 'gpt-4.1-mini-2025-04-14:eastus2' | 'gpt-4.1-mini-2025-04-14:eastus' | 'gpt-4.1-mini-2025-04-14:westus3' | 'gpt-4.1-mini-2025-04-14:northcentralus' | 'gpt-4.1-mini-2025-04-14:southcentralus' | 'gpt-4.1-nano-2025-04-14:westus' | 'gpt-4.1-nano-2025-04-14:eastus2' | 'gpt-4.1-nano-2025-04-14:westus3' | 'gpt-4.1-nano-2025-04-14:northcentralus' | 'gpt-4.1-nano-2025-04-14:southcentralus' | 'gpt-4o-2024-11-20:swedencentral' | 'gpt-4o-2024-11-20:westus' | 'gpt-4o-2024-11-20:eastus2' | 'gpt-4o-2024-11-20:eastus' | 'gpt-4o-2024-11-20:westus3' | 'gpt-4o-2024-11-20:southcentralus' | 'gpt-4o-2024-08-06:westus' | 'gpt-4o-2024-08-06:westus3' | 'gpt-4o-2024-08-06:eastus' | 'gpt-4o-2024-08-06:eastus2' | 'gpt-4o-2024-08-06:northcentralus' | 'gpt-4o-2024-08-06:southcentralus' | 'gpt-4o-mini-2024-07-18:westus' | 'gpt-4o-mini-2024-07-18:westus3' | 'gpt-4o-mini-2024-07-18:eastus' | 'gpt-4o-mini-2024-07-18:eastus2' | 'gpt-4o-mini-2024-07-18:northcentralus' | 'gpt-4o-mini-2024-07-18:southcentralus' | 'gpt-4o-2024-05-13:eastus2' | 'gpt-4o-2024-05-13:eastus' | 'gpt-4o-2024-05-13:northcentralus' | 'gpt-4o-2024-05-13:southcentralus' | 'gpt-4o-2024-05-13:westus3' | 'gpt-4o-2024-05-13:westus' | 'gpt-4-turbo-2024-04-09:eastus2' | 'gpt-4-0125-preview:eastus' | 'gpt-4-0125-preview:northcentralus' | 'gpt-4-0125-preview:southcentralus' | 'gpt-4-1106-preview:australia' | 'gpt-4-1106-preview:canadaeast' | 'gpt-4-1106-preview:france' | 'gpt-4-1106-preview:india' | 'gpt-4-1106-preview:norway' | 'gpt-4-1106-preview:swedencentral' | 'gpt-4-1106-preview:uk' | 'gpt-4-1106-preview:westus' | 'gpt-4-1106-preview:westus3' | 'gpt-4-0613:canadaeast' | 'gpt-3.5-turbo-0125:canadaeast' | 'gpt-3.5-turbo-0125:northcentralus' | 'gpt-3.5-turbo-0125:southcentralus' | 'gpt-3.5-turbo-1106:canadaeast' | 'gpt-3.5-turbo-1106:westus';
|
|
2455
|
+
/**
|
|
2456
|
+
* Azure OpenAI doesn't support `maxLength` right now https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/structured-outputs?tabs=python-secure%2Cdotnet-entra-id&pivots=programming-language-csharp#unsupported-type-specific-keywords. Need to strip.
|
|
2457
|
+
*
|
|
2458
|
+
* - `strip-parameters-with-unsupported-validation` will strip parameters with unsupported validation.
|
|
2459
|
+
* - `strip-unsupported-validation` will keep the parameters but strip unsupported validation.
|
|
2460
|
+
*
|
|
2461
|
+
* @default `strip-unsupported-validation`
|
|
2462
|
+
*/
|
|
2463
|
+
toolStrictCompatibilityMode?: 'strip-parameters-with-unsupported-validation' | 'strip-unsupported-validation';
|
|
2688
2464
|
/**
|
|
2689
2465
|
* This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.
|
|
2690
2466
|
* @min 0
|
|
@@ -2884,10 +2660,13 @@ export interface WorkflowOpenAIModel {
|
|
|
2884
2660
|
/** This is the provider of the model (`openai`). */
|
|
2885
2661
|
provider: 'openai';
|
|
2886
2662
|
/**
|
|
2887
|
-
* This is the
|
|
2663
|
+
* This is the OpenAI model that will be used.
|
|
2664
|
+
*
|
|
2665
|
+
* When using Vapi OpenAI or your own Azure Credentials, you have the option to specify the region for the selected model. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest region that make sense.
|
|
2666
|
+
* This is helpful when you are required to comply with Data Residency rules. Learn more about Azure regions here https://azure.microsoft.com/en-us/explore/global-infrastructure/data-residency/.
|
|
2888
2667
|
* @maxLength 100
|
|
2889
2668
|
*/
|
|
2890
|
-
model: 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-4.5-preview' | 'chatgpt-4o-latest' | 'o3' | 'o3-mini' | 'o4-mini' | 'o1-preview' | 'o1-preview-2024-09-12' | 'o1-mini' | 'o1-mini-2024-09-12' | 'gpt-4o-realtime-preview-2024-10-01' | 'gpt-4o-realtime-preview-2024-12-17' | 'gpt-4o-mini-realtime-preview-2024-12-17' | 'gpt-4o-mini-2024-07-18' | 'gpt-4o-mini' | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-11-20' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4-turbo-preview' | 'gpt-4-0125-preview' | 'gpt-4-1106-preview' | 'gpt-4' | 'gpt-4-0613' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo-1106' | 'gpt-3.5-turbo-16k' | 'gpt-3.5-turbo-0613';
|
|
2669
|
+
model: 'gpt-4.1-2025-04-14' | 'gpt-4.1-mini-2025-04-14' | 'gpt-4.1-nano-2025-04-14' | 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-4.5-preview' | 'chatgpt-4o-latest' | 'o3' | 'o3-mini' | 'o4-mini' | 'o1-preview' | 'o1-preview-2024-09-12' | 'o1-mini' | 'o1-mini-2024-09-12' | 'gpt-4o-realtime-preview-2024-10-01' | 'gpt-4o-realtime-preview-2024-12-17' | 'gpt-4o-mini-realtime-preview-2024-12-17' | 'gpt-4o-mini-2024-07-18' | 'gpt-4o-mini' | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-11-20' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4-turbo-preview' | 'gpt-4-0125-preview' | 'gpt-4-1106-preview' | 'gpt-4' | 'gpt-4-0613' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo-1106' | 'gpt-3.5-turbo-16k' | 'gpt-3.5-turbo-0613' | 'gpt-4.1-2025-04-14:westus' | 'gpt-4.1-2025-04-14:eastus2' | 'gpt-4.1-2025-04-14:eastus' | 'gpt-4.1-2025-04-14:westus3' | 'gpt-4.1-2025-04-14:northcentralus' | 'gpt-4.1-2025-04-14:southcentralus' | 'gpt-4.1-mini-2025-04-14:westus' | 'gpt-4.1-mini-2025-04-14:eastus2' | 'gpt-4.1-mini-2025-04-14:eastus' | 'gpt-4.1-mini-2025-04-14:westus3' | 'gpt-4.1-mini-2025-04-14:northcentralus' | 'gpt-4.1-mini-2025-04-14:southcentralus' | 'gpt-4.1-nano-2025-04-14:westus' | 'gpt-4.1-nano-2025-04-14:eastus2' | 'gpt-4.1-nano-2025-04-14:westus3' | 'gpt-4.1-nano-2025-04-14:northcentralus' | 'gpt-4.1-nano-2025-04-14:southcentralus' | 'gpt-4o-2024-11-20:swedencentral' | 'gpt-4o-2024-11-20:westus' | 'gpt-4o-2024-11-20:eastus2' | 'gpt-4o-2024-11-20:eastus' | 'gpt-4o-2024-11-20:westus3' | 'gpt-4o-2024-11-20:southcentralus' | 'gpt-4o-2024-08-06:westus' | 'gpt-4o-2024-08-06:westus3' | 'gpt-4o-2024-08-06:eastus' | 'gpt-4o-2024-08-06:eastus2' | 'gpt-4o-2024-08-06:northcentralus' | 'gpt-4o-2024-08-06:southcentralus' | 'gpt-4o-mini-2024-07-18:westus' | 'gpt-4o-mini-2024-07-18:westus3' | 'gpt-4o-mini-2024-07-18:eastus' | 'gpt-4o-mini-2024-07-18:eastus2' | 'gpt-4o-mini-2024-07-18:northcentralus' | 'gpt-4o-mini-2024-07-18:southcentralus' | 'gpt-4o-2024-05-13:eastus2' | 'gpt-4o-2024-05-13:eastus' | 'gpt-4o-2024-05-13:northcentralus' | 'gpt-4o-2024-05-13:southcentralus' | 'gpt-4o-2024-05-13:westus3' | 'gpt-4o-2024-05-13:westus' | 'gpt-4-turbo-2024-04-09:eastus2' | 'gpt-4-0125-preview:eastus' | 'gpt-4-0125-preview:northcentralus' | 'gpt-4-0125-preview:southcentralus' | 'gpt-4-1106-preview:australia' | 'gpt-4-1106-preview:canadaeast' | 'gpt-4-1106-preview:france' | 'gpt-4-1106-preview:india' | 'gpt-4-1106-preview:norway' | 'gpt-4-1106-preview:swedencentral' | 'gpt-4-1106-preview:uk' | 'gpt-4-1106-preview:westus' | 'gpt-4-1106-preview:westus3' | 'gpt-4-0613:canadaeast' | 'gpt-3.5-turbo-0125:canadaeast' | 'gpt-3.5-turbo-0125:northcentralus' | 'gpt-3.5-turbo-0125:southcentralus' | 'gpt-3.5-turbo-1106:canadaeast' | 'gpt-3.5-turbo-1106:westus';
|
|
2891
2670
|
/**
|
|
2892
2671
|
* This is the temperature of the model.
|
|
2893
2672
|
* @min 0
|
|
@@ -2946,28 +2725,7 @@ export interface GlobalNodePlan {
|
|
|
2946
2725
|
*/
|
|
2947
2726
|
enterCondition?: string;
|
|
2948
2727
|
}
|
|
2949
|
-
export
|
|
2950
|
-
/**
|
|
2951
|
-
* This is the type of output you'd like.
|
|
2952
|
-
*
|
|
2953
|
-
* `string`, `number`, `boolean` are primitive types.
|
|
2954
|
-
*/
|
|
2955
|
-
type: 'string' | 'number' | 'integer' | 'boolean';
|
|
2956
|
-
/**
|
|
2957
|
-
* This is the title of the variable.
|
|
2958
|
-
*
|
|
2959
|
-
* It can only contain letters, numbers, and underscores.
|
|
2960
|
-
* @pattern /^[a-zA-Z0-9_]+$/
|
|
2961
|
-
*/
|
|
2962
|
-
title: string;
|
|
2963
|
-
/** This is the description to help the model understand what it needs to output. */
|
|
2964
|
-
description: string;
|
|
2965
|
-
/** This is the enum values to choose from. Only used if the type is `string`. */
|
|
2966
|
-
enum?: string[];
|
|
2967
|
-
}
|
|
2968
|
-
export interface VariableExtractionPlan {
|
|
2969
|
-
output: VariableExtractionSchema[];
|
|
2970
|
-
}
|
|
2728
|
+
export type VariableExtractionPlan = object;
|
|
2971
2729
|
export interface ConversationNode {
|
|
2972
2730
|
/**
|
|
2973
2731
|
* This is the Conversation node. This can be used to start a conversation with the customer.
|
|
@@ -3049,11 +2807,12 @@ export interface Edge {
|
|
|
3049
2807
|
}
|
|
3050
2808
|
export interface WorkflowUserEditable {
|
|
3051
2809
|
nodes: (ConversationNode | ToolNode)[];
|
|
3052
|
-
/** These are the options for the workflow's LLM. */
|
|
3053
2810
|
model?: WorkflowOpenAIModel | WorkflowAnthropicModel;
|
|
3054
2811
|
/** @maxLength 80 */
|
|
3055
2812
|
name: string;
|
|
3056
2813
|
edges: Edge[];
|
|
2814
|
+
/** @maxLength 5000 */
|
|
2815
|
+
globalPrompt?: string;
|
|
3057
2816
|
}
|
|
3058
2817
|
export interface VapiModel {
|
|
3059
2818
|
/** This is the starting state for the conversation. */
|
|
@@ -3897,13 +3656,6 @@ export interface VapiVoice {
|
|
|
3897
3656
|
* @default 1
|
|
3898
3657
|
*/
|
|
3899
3658
|
speed?: number;
|
|
3900
|
-
/**
|
|
3901
|
-
* This is the language code (ISO 639-1) that will be used.
|
|
3902
|
-
*
|
|
3903
|
-
* @default 'en-US'
|
|
3904
|
-
* @default "en-US"
|
|
3905
|
-
*/
|
|
3906
|
-
language?: 'en-US' | 'en-GB' | 'en-AU' | 'en-CA' | 'ja' | 'zh' | 'de' | 'hi' | 'fr-FR' | 'fr-CA' | 'ko' | 'pt-BR' | 'pt-PT' | 'it' | 'es-ES' | 'es-MX' | 'id' | 'nl' | 'tr' | 'fil' | 'pl' | 'sv' | 'bg' | 'ro' | 'ar-SA' | 'ar-AE' | 'cs' | 'el' | 'fi' | 'hr' | 'ms' | 'sk' | 'da' | 'ta' | 'uk' | 'ru' | 'hu' | 'no' | 'vi';
|
|
3907
3659
|
/** This is the plan for chunking the model output before it is sent to the voice provider. */
|
|
3908
3660
|
chunkPlan?: ChunkPlan;
|
|
3909
3661
|
/** This is the plan for voice provider fallbacks in the event that the primary voice provider fails. */
|
|
@@ -4401,13 +4153,6 @@ export interface FallbackVapiVoice {
|
|
|
4401
4153
|
* @default 1
|
|
4402
4154
|
*/
|
|
4403
4155
|
speed?: number;
|
|
4404
|
-
/**
|
|
4405
|
-
* This is the language code (ISO 639-1) that will be used.
|
|
4406
|
-
*
|
|
4407
|
-
* @default 'en-US'
|
|
4408
|
-
* @default "en-US"
|
|
4409
|
-
*/
|
|
4410
|
-
language?: 'en-US' | 'en-GB' | 'en-AU' | 'en-CA' | 'ja' | 'zh' | 'de' | 'hi' | 'fr-FR' | 'fr-CA' | 'ko' | 'pt-BR' | 'pt-PT' | 'it' | 'es-ES' | 'es-MX' | 'id' | 'nl' | 'tr' | 'fil' | 'pl' | 'sv' | 'bg' | 'ro' | 'ar-SA' | 'ar-AE' | 'cs' | 'el' | 'fi' | 'hr' | 'ms' | 'sk' | 'da' | 'ta' | 'uk' | 'ru' | 'hu' | 'no' | 'vi';
|
|
4411
4156
|
/** This is the plan for chunking the model output before it is sent to the voice provider. */
|
|
4412
4157
|
chunkPlan?: ChunkPlan;
|
|
4413
4158
|
}
|
|
@@ -5201,25 +4946,37 @@ export interface TransferAssistantHookAction {
|
|
|
5201
4946
|
destination?: TransferDestinationNumber | TransferDestinationSip;
|
|
5202
4947
|
}
|
|
5203
4948
|
export interface FunctionCallAssistantHookAction {
|
|
4949
|
+
/**
|
|
4950
|
+
* These are the messages that will be spoken to the user as the tool is running.
|
|
4951
|
+
*
|
|
4952
|
+
* For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
|
|
4953
|
+
*/
|
|
4954
|
+
messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
|
|
4955
|
+
/** The type of tool. "function" for Function tool. */
|
|
4956
|
+
type: 'function';
|
|
5204
4957
|
/**
|
|
5205
4958
|
* This determines if the tool is async.
|
|
5206
4959
|
*
|
|
5207
|
-
*
|
|
4960
|
+
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
5208
4961
|
*
|
|
5209
|
-
*
|
|
4962
|
+
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
5210
4963
|
*
|
|
5211
|
-
*
|
|
4964
|
+
* Defaults to synchronous (`false`).
|
|
5212
4965
|
* @example false
|
|
5213
4966
|
*/
|
|
5214
4967
|
async?: boolean;
|
|
5215
4968
|
/**
|
|
5216
|
-
* These are the messages that will be spoken to the user as the tool is running.
|
|
5217
4969
|
*
|
|
5218
|
-
*
|
|
4970
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
4971
|
+
*
|
|
4972
|
+
* Notes:
|
|
4973
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
4974
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
4975
|
+
* - Webhook contains the variables set on the assistant.
|
|
4976
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
4977
|
+
* - Webhook expects a response with tool call result.
|
|
5219
4978
|
*/
|
|
5220
|
-
|
|
5221
|
-
/** The type of tool. "function" for Function tool. */
|
|
5222
|
-
type: 'function';
|
|
4979
|
+
server?: Server;
|
|
5223
4980
|
/**
|
|
5224
4981
|
* This is the function definition of the tool.
|
|
5225
4982
|
*
|
|
@@ -5228,14 +4985,6 @@ export interface FunctionCallAssistantHookAction {
|
|
|
5228
4985
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
5229
4986
|
*/
|
|
5230
4987
|
function?: OpenAIFunction;
|
|
5231
|
-
/**
|
|
5232
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
5233
|
-
*
|
|
5234
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
5235
|
-
*
|
|
5236
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
5237
|
-
*/
|
|
5238
|
-
server?: Server;
|
|
5239
4988
|
}
|
|
5240
4989
|
export interface SayAssistantHookAction {
|
|
5241
4990
|
/** This is the type of action - must be "say" */
|
|
@@ -5578,6 +5327,13 @@ export interface SuccessEvaluationPlan {
|
|
|
5578
5327
|
timeoutSeconds?: number;
|
|
5579
5328
|
}
|
|
5580
5329
|
export interface AnalysisPlan {
|
|
5330
|
+
/**
|
|
5331
|
+
* The minimum number of messages required to run the analysis plan.
|
|
5332
|
+
* If the number of messages is less than this, analysis will be skipped.
|
|
5333
|
+
* @default 2
|
|
5334
|
+
* @min 0
|
|
5335
|
+
*/
|
|
5336
|
+
minMessagesThreshold?: number;
|
|
5581
5337
|
/** This is the plan for generating the summary of the call. This outputs to `call.analysis.summary`. */
|
|
5582
5338
|
summaryPlan?: SummaryPlan;
|
|
5583
5339
|
/** This is the plan for generating the structured data from the call. This outputs to `call.analysis.structuredData`. */
|
|
@@ -6594,11 +6350,24 @@ export interface CreateSquadDTO {
|
|
|
6594
6350
|
}
|
|
6595
6351
|
export interface CreateWorkflowDTO {
|
|
6596
6352
|
nodes: (ConversationNode | ToolNode)[];
|
|
6597
|
-
/** These are the options for the workflow's LLM. */
|
|
6598
6353
|
model?: WorkflowOpenAIModel | WorkflowAnthropicModel;
|
|
6599
6354
|
/** @maxLength 80 */
|
|
6600
6355
|
name: string;
|
|
6601
6356
|
edges: Edge[];
|
|
6357
|
+
/** @maxLength 5000 */
|
|
6358
|
+
globalPrompt?: string;
|
|
6359
|
+
}
|
|
6360
|
+
export interface WorkflowOverrides {
|
|
6361
|
+
/**
|
|
6362
|
+
* These are values that will be used to replace the template variables in the workflow messages and other text-based fields.
|
|
6363
|
+
* This uses LiquidJS syntax. https://liquidjs.com/tutorials/intro-to-liquid.html
|
|
6364
|
+
*
|
|
6365
|
+
* So for example, `{{ name }}` will be replaced with the value of `name` in `variableValues`.
|
|
6366
|
+
* `{{"now" | date: "%b %d, %Y, %I:%M %p", "America/New_York"}}` will be replaced with the current date and time in New York.
|
|
6367
|
+
* Some VAPI reserved defaults:
|
|
6368
|
+
* - *customer* - the customer object
|
|
6369
|
+
*/
|
|
6370
|
+
variableValues?: object;
|
|
6602
6371
|
}
|
|
6603
6372
|
export interface TransferPhoneNumberHookAction {
|
|
6604
6373
|
/** This is the type of action - must be "transfer" */
|
|
@@ -6768,7 +6537,7 @@ export interface Call {
|
|
|
6768
6537
|
/** This is the status of the call. */
|
|
6769
6538
|
status?: 'scheduled' | 'queued' | 'ringing' | 'in-progress' | 'forwarding' | 'ended';
|
|
6770
6539
|
/** This is the explanation for how the call ended. */
|
|
6771
|
-
endedReason?: 'call-start-error-neither-assistant-nor-server-set' | 'assistant-request-failed' | 'assistant-request-returned-error' | 'assistant-request-returned-unspeakable-error' | 'assistant-request-returned-invalid-assistant' | 'assistant-request-returned-no-assistant' | 'assistant-request-returned-forwarding-phone-number' | 'call.start.error-get-org' | 'call.start.error-get-subscription' | 'call.start.error-get-assistant' | 'call.start.error-get-phone-number' | 'call.start.error-get-customer' | 'call.start.error-get-resources-validation' | 'call.start.error-vapi-number-international' | 'call.start.error-vapi-number-outbound-daily-limit' | 'call.start.error-get-transport' | 'assistant-not-valid' | 'database-error' | 'assistant-not-found' | 'pipeline-error-openai-voice-failed' | 'pipeline-error-cartesia-voice-failed' | 'pipeline-error-deepgram-voice-failed' | 'pipeline-error-eleven-labs-voice-failed' | 'pipeline-error-playht-voice-failed' | 'pipeline-error-lmnt-voice-failed' | 'pipeline-error-azure-voice-failed' | 'pipeline-error-rime-ai-voice-failed' | 'pipeline-error-smallest-ai-voice-failed' | 'pipeline-error-neuphonic-voice-failed' | 'pipeline-error-hume-voice-failed' | 'pipeline-error-sesame-voice-failed' | 'pipeline-error-tavus-video-failed' | 'call.in-progress.error-vapifault-openai-voice-failed' | 'call.in-progress.error-vapifault-cartesia-voice-failed' | 'call.in-progress.error-vapifault-deepgram-voice-failed' | 'call.in-progress.error-vapifault-eleven-labs-voice-failed' | 'call.in-progress.error-vapifault-playht-voice-failed' | 'call.in-progress.error-vapifault-lmnt-voice-failed' | 'call.in-progress.error-vapifault-azure-voice-failed' | 'call.in-progress.error-vapifault-rime-ai-voice-failed' | 'call.in-progress.error-vapifault-smallest-ai-voice-failed' | 'call.in-progress.error-vapifault-neuphonic-voice-failed' | 'call.in-progress.error-vapifault-hume-voice-failed' | 'call.in-progress.error-vapifault-sesame-voice-failed' | 'call.in-progress.error-vapifault-tavus-video-failed' | 'pipeline-error-vapi-llm-failed' | 'pipeline-error-vapi-400-bad-request-validation-failed' | 'pipeline-error-vapi-401-unauthorized' | 'pipeline-error-vapi-403-model-access-denied' | 'pipeline-error-vapi-429-exceeded-quota' | 'pipeline-error-vapi-500-server-error' | 'pipeline-error-vapi-503-server-overloaded-error' | 'call.in-progress.error-vapifault-vapi-llm-failed' | 'call.in-progress.error-vapifault-vapi-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-vapi-401-unauthorized' | 'call.in-progress.error-vapifault-vapi-403-model-access-denied' | 'call.in-progress.error-vapifault-vapi-429-exceeded-quota' | 'call.in-progress.error-providerfault-vapi-500-server-error' | 'call.in-progress.error-providerfault-vapi-503-server-overloaded-error' | 'pipeline-error-deepgram-transcriber-failed' | 'call.in-progress.error-vapifault-deepgram-transcriber-failed' | 'pipeline-error-gladia-transcriber-failed' | 'call.in-progress.error-vapifault-gladia-transcriber-failed' | 'pipeline-error-speechmatics-transcriber-failed' | 'call.in-progress.error-vapifault-speechmatics-transcriber-failed' | 'pipeline-error-assembly-ai-transcriber-failed' | 'pipeline-error-assembly-ai-returning-400-insufficent-funds' | 'pipeline-error-assembly-ai-returning-400-paid-only-feature' | 'pipeline-error-assembly-ai-returning-401-invalid-credentials' | 'pipeline-error-assembly-ai-returning-500-invalid-schema' | 'pipeline-error-assembly-ai-returning-500-word-boost-parsing-failed' | 'call.in-progress.error-vapifault-assembly-ai-transcriber-failed' | 'call.in-progress.error-vapifault-assembly-ai-returning-400-insufficent-funds' | 'call.in-progress.error-vapifault-assembly-ai-returning-400-paid-only-feature' | 'call.in-progress.error-vapifault-assembly-ai-returning-401-invalid-credentials' | 'call.in-progress.error-vapifault-assembly-ai-returning-500-invalid-schema' | 'call.in-progress.error-vapifault-assembly-ai-returning-500-word-boost-parsing-failed' | 'pipeline-error-talkscriber-transcriber-failed' | 'call.in-progress.error-vapifault-talkscriber-transcriber-failed' | 'pipeline-error-azure-speech-transcriber-failed' | 'call.in-progress.error-vapifault-azure-speech-transcriber-failed' | 'call.in-progress.error-pipeline-no-available-llm-model' | 'worker-shutdown' | 'unknown-error' | 'vonage-disconnected' | 'vonage-failed-to-connect-call' | 'vonage-completed' | 'phone-call-provider-bypass-enabled-but-no-call-received' | 'call.in-progress.error-providerfault-transport-never-connected' | 'call.in-progress.error-vapifault-worker-not-available' | 'call.in-progress.error-vapifault-transport-never-connected' | 'call.in-progress.error-vapifault-transport-connected-but-call-not-active' | 'call.in-progress.error-vapifault-call-started-but-connection-to-transport-missing' | 'call.in-progress.error-vapifault-openai-llm-failed' | 'call.in-progress.error-vapifault-azure-openai-llm-failed' | 'call.in-progress.error-vapifault-groq-llm-failed' | 'call.in-progress.error-vapifault-google-llm-failed' | 'call.in-progress.error-vapifault-xai-llm-failed' | 'call.in-progress.error-vapifault-mistral-llm-failed' | 'call.in-progress.error-vapifault-inflection-ai-llm-failed' | 'call.in-progress.error-vapifault-cerebras-llm-failed' | 'call.in-progress.error-vapifault-deep-seek-llm-failed' | 'pipeline-error-openai-400-bad-request-validation-failed' | 'pipeline-error-openai-401-unauthorized' | 'pipeline-error-openai-401-incorrect-api-key' | 'pipeline-error-openai-401-account-not-in-organization' | 'pipeline-error-openai-403-model-access-denied' | 'pipeline-error-openai-429-exceeded-quota' | 'pipeline-error-openai-429-rate-limit-reached' | 'pipeline-error-openai-500-server-error' | 'pipeline-error-openai-503-server-overloaded-error' | 'pipeline-error-openai-llm-failed' | 'call.in-progress.error-vapifault-openai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-openai-401-unauthorized' | 'call.in-progress.error-vapifault-openai-401-incorrect-api-key' | 'call.in-progress.error-vapifault-openai-401-account-not-in-organization' | 'call.in-progress.error-vapifault-openai-403-model-access-denied' | 'call.in-progress.error-vapifault-openai-429-exceeded-quota' | 'call.in-progress.error-vapifault-openai-429-rate-limit-reached' | 'call.in-progress.error-providerfault-openai-500-server-error' | 'call.in-progress.error-providerfault-openai-503-server-overloaded-error' | 'pipeline-error-azure-openai-400-bad-request-validation-failed' | 'pipeline-error-azure-openai-401-unauthorized' | 'pipeline-error-azure-openai-403-model-access-denied' | 'pipeline-error-azure-openai-429-exceeded-quota' | 'pipeline-error-azure-openai-500-server-error' | 'pipeline-error-azure-openai-503-server-overloaded-error' | 'pipeline-error-azure-openai-llm-failed' | 'call.in-progress.error-vapifault-azure-openai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-azure-openai-401-unauthorized' | 'call.in-progress.error-vapifault-azure-openai-403-model-access-denied' | 'call.in-progress.error-vapifault-azure-openai-429-exceeded-quota' | 'call.in-progress.error-providerfault-azure-openai-500-server-error' | 'call.in-progress.error-providerfault-azure-openai-503-server-overloaded-error' | 'pipeline-error-google-400-bad-request-validation-failed' | 'pipeline-error-google-401-unauthorized' | 'pipeline-error-google-403-model-access-denied' | 'pipeline-error-google-429-exceeded-quota' | 'pipeline-error-google-500-server-error' | 'pipeline-error-google-503-server-overloaded-error' | 'pipeline-error-google-llm-failed' | 'call.in-progress.error-vapifault-google-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-google-401-unauthorized' | 'call.in-progress.error-vapifault-google-403-model-access-denied' | 'call.in-progress.error-vapifault-google-429-exceeded-quota' | 'call.in-progress.error-providerfault-google-500-server-error' | 'call.in-progress.error-providerfault-google-503-server-overloaded-error' | 'pipeline-error-xai-400-bad-request-validation-failed' | 'pipeline-error-xai-401-unauthorized' | 'pipeline-error-xai-403-model-access-denied' | 'pipeline-error-xai-429-exceeded-quota' | 'pipeline-error-xai-500-server-error' | 'pipeline-error-xai-503-server-overloaded-error' | 'pipeline-error-xai-llm-failed' | 'call.in-progress.error-vapifault-xai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-xai-401-unauthorized' | 'call.in-progress.error-vapifault-xai-403-model-access-denied' | 'call.in-progress.error-vapifault-xai-429-exceeded-quota' | 'call.in-progress.error-providerfault-xai-500-server-error' | 'call.in-progress.error-providerfault-xai-503-server-overloaded-error' | 'pipeline-error-mistral-400-bad-request-validation-failed' | 'pipeline-error-mistral-401-unauthorized' | 'pipeline-error-mistral-403-model-access-denied' | 'pipeline-error-mistral-429-exceeded-quota' | 'pipeline-error-mistral-500-server-error' | 'pipeline-error-mistral-503-server-overloaded-error' | 'pipeline-error-mistral-llm-failed' | 'call.in-progress.error-vapifault-mistral-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-mistral-401-unauthorized' | 'call.in-progress.error-vapifault-mistral-403-model-access-denied' | 'call.in-progress.error-vapifault-mistral-429-exceeded-quota' | 'call.in-progress.error-providerfault-mistral-500-server-error' | 'call.in-progress.error-providerfault-mistral-503-server-overloaded-error' | 'pipeline-error-inflection-ai-400-bad-request-validation-failed' | 'pipeline-error-inflection-ai-401-unauthorized' | 'pipeline-error-inflection-ai-403-model-access-denied' | 'pipeline-error-inflection-ai-429-exceeded-quota' | 'pipeline-error-inflection-ai-500-server-error' | 'pipeline-error-inflection-ai-503-server-overloaded-error' | 'pipeline-error-inflection-ai-llm-failed' | 'call.in-progress.error-vapifault-inflection-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-inflection-ai-401-unauthorized' | 'call.in-progress.error-vapifault-inflection-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-inflection-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-inflection-ai-500-server-error' | 'call.in-progress.error-providerfault-inflection-ai-503-server-overloaded-error' | 'pipeline-error-deep-seek-400-bad-request-validation-failed' | 'pipeline-error-deep-seek-401-unauthorized' | 'pipeline-error-deep-seek-403-model-access-denied' | 'pipeline-error-deep-seek-429-exceeded-quota' | 'pipeline-error-deep-seek-500-server-error' | 'pipeline-error-deep-seek-503-server-overloaded-error' | 'pipeline-error-deep-seek-llm-failed' | 'call.in-progress.error-vapifault-deep-seek-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-deep-seek-401-unauthorized' | 'call.in-progress.error-vapifault-deep-seek-403-model-access-denied' | 'call.in-progress.error-vapifault-deep-seek-429-exceeded-quota' | 'call.in-progress.error-providerfault-deep-seek-500-server-error' | 'call.in-progress.error-providerfault-deep-seek-503-server-overloaded-error' | 'pipeline-error-groq-400-bad-request-validation-failed' | 'pipeline-error-groq-401-unauthorized' | 'pipeline-error-groq-403-model-access-denied' | 'pipeline-error-groq-429-exceeded-quota' | 'pipeline-error-groq-500-server-error' | 'pipeline-error-groq-503-server-overloaded-error' | 'pipeline-error-groq-llm-failed' | 'call.in-progress.error-vapifault-groq-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-groq-401-unauthorized' | 'call.in-progress.error-vapifault-groq-403-model-access-denied' | 'call.in-progress.error-vapifault-groq-429-exceeded-quota' | 'call.in-progress.error-providerfault-groq-500-server-error' | 'call.in-progress.error-providerfault-groq-503-server-overloaded-error' | 'pipeline-error-cerebras-400-bad-request-validation-failed' | 'pipeline-error-cerebras-401-unauthorized' | 'pipeline-error-cerebras-403-model-access-denied' | 'pipeline-error-cerebras-429-exceeded-quota' | 'pipeline-error-cerebras-500-server-error' | 'pipeline-error-cerebras-503-server-overloaded-error' | 'pipeline-error-cerebras-llm-failed' | 'call.in-progress.error-vapifault-cerebras-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-cerebras-401-unauthorized' | 'call.in-progress.error-vapifault-cerebras-403-model-access-denied' | 'call.in-progress.error-vapifault-cerebras-429-exceeded-quota' | 'call.in-progress.error-providerfault-cerebras-500-server-error' | 'call.in-progress.error-providerfault-cerebras-503-server-overloaded-error' | 'pipeline-error-anthropic-400-bad-request-validation-failed' | 'pipeline-error-anthropic-401-unauthorized' | 'pipeline-error-anthropic-403-model-access-denied' | 'pipeline-error-anthropic-429-exceeded-quota' | 'pipeline-error-anthropic-500-server-error' | 'pipeline-error-anthropic-503-server-overloaded-error' | 'pipeline-error-anthropic-llm-failed' | 'call.in-progress.error-vapifault-anthropic-llm-failed' | 'call.in-progress.error-vapifault-anthropic-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-500-server-error' | 'call.in-progress.error-providerfault-anthropic-503-server-overloaded-error' | 'pipeline-error-anthropic-bedrock-400-bad-request-validation-failed' | 'pipeline-error-anthropic-bedrock-401-unauthorized' | 'pipeline-error-anthropic-bedrock-403-model-access-denied' | 'pipeline-error-anthropic-bedrock-429-exceeded-quota' | 'pipeline-error-anthropic-bedrock-500-server-error' | 'pipeline-error-anthropic-bedrock-503-server-overloaded-error' | 'pipeline-error-anthropic-bedrock-llm-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-llm-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-bedrock-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-bedrock-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-bedrock-500-server-error' | 'call.in-progress.error-providerfault-anthropic-bedrock-503-server-overloaded-error' | 'pipeline-error-anthropic-vertex-400-bad-request-validation-failed' | 'pipeline-error-anthropic-vertex-401-unauthorized' | 'pipeline-error-anthropic-vertex-403-model-access-denied' | 'pipeline-error-anthropic-vertex-429-exceeded-quota' | 'pipeline-error-anthropic-vertex-500-server-error' | 'pipeline-error-anthropic-vertex-503-server-overloaded-error' | 'pipeline-error-anthropic-vertex-llm-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-llm-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-vertex-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-vertex-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-vertex-500-server-error' | 'call.in-progress.error-providerfault-anthropic-vertex-503-server-overloaded-error' | 'pipeline-error-together-ai-400-bad-request-validation-failed' | 'pipeline-error-together-ai-401-unauthorized' | 'pipeline-error-together-ai-403-model-access-denied' | 'pipeline-error-together-ai-429-exceeded-quota' | 'pipeline-error-together-ai-500-server-error' | 'pipeline-error-together-ai-503-server-overloaded-error' | 'pipeline-error-together-ai-llm-failed' | 'call.in-progress.error-vapifault-together-ai-llm-failed' | 'call.in-progress.error-vapifault-together-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-together-ai-401-unauthorized' | 'call.in-progress.error-vapifault-together-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-together-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-together-ai-500-server-error' | 'call.in-progress.error-providerfault-together-ai-503-server-overloaded-error' | 'pipeline-error-anyscale-400-bad-request-validation-failed' | 'pipeline-error-anyscale-401-unauthorized' | 'pipeline-error-anyscale-403-model-access-denied' | 'pipeline-error-anyscale-429-exceeded-quota' | 'pipeline-error-anyscale-500-server-error' | 'pipeline-error-anyscale-503-server-overloaded-error' | 'pipeline-error-anyscale-llm-failed' | 'call.in-progress.error-vapifault-anyscale-llm-failed' | 'call.in-progress.error-vapifault-anyscale-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anyscale-401-unauthorized' | 'call.in-progress.error-vapifault-anyscale-403-model-access-denied' | 'call.in-progress.error-vapifault-anyscale-429-exceeded-quota' | 'call.in-progress.error-providerfault-anyscale-500-server-error' | 'call.in-progress.error-providerfault-anyscale-503-server-overloaded-error' | 'pipeline-error-openrouter-400-bad-request-validation-failed' | 'pipeline-error-openrouter-401-unauthorized' | 'pipeline-error-openrouter-403-model-access-denied' | 'pipeline-error-openrouter-429-exceeded-quota' | 'pipeline-error-openrouter-500-server-error' | 'pipeline-error-openrouter-503-server-overloaded-error' | 'pipeline-error-openrouter-llm-failed' | 'call.in-progress.error-vapifault-openrouter-llm-failed' | 'call.in-progress.error-vapifault-openrouter-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-openrouter-401-unauthorized' | 'call.in-progress.error-vapifault-openrouter-403-model-access-denied' | 'call.in-progress.error-vapifault-openrouter-429-exceeded-quota' | 'call.in-progress.error-providerfault-openrouter-500-server-error' | 'call.in-progress.error-providerfault-openrouter-503-server-overloaded-error' | 'pipeline-error-perplexity-ai-400-bad-request-validation-failed' | 'pipeline-error-perplexity-ai-401-unauthorized' | 'pipeline-error-perplexity-ai-403-model-access-denied' | 'pipeline-error-perplexity-ai-429-exceeded-quota' | 'pipeline-error-perplexity-ai-500-server-error' | 'pipeline-error-perplexity-ai-503-server-overloaded-error' | 'pipeline-error-perplexity-ai-llm-failed' | 'call.in-progress.error-vapifault-perplexity-ai-llm-failed' | 'call.in-progress.error-vapifault-perplexity-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-perplexity-ai-401-unauthorized' | 'call.in-progress.error-vapifault-perplexity-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-perplexity-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-perplexity-ai-500-server-error' | 'call.in-progress.error-providerfault-perplexity-ai-503-server-overloaded-error' | 'pipeline-error-deepinfra-400-bad-request-validation-failed' | 'pipeline-error-deepinfra-401-unauthorized' | 'pipeline-error-deepinfra-403-model-access-denied' | 'pipeline-error-deepinfra-429-exceeded-quota' | 'pipeline-error-deepinfra-500-server-error' | 'pipeline-error-deepinfra-503-server-overloaded-error' | 'pipeline-error-deepinfra-llm-failed' | 'call.in-progress.error-vapifault-deepinfra-llm-failed' | 'call.in-progress.error-vapifault-deepinfra-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-deepinfra-401-unauthorized' | 'call.in-progress.error-vapifault-deepinfra-403-model-access-denied' | 'call.in-progress.error-vapifault-deepinfra-429-exceeded-quota' | 'call.in-progress.error-providerfault-deepinfra-500-server-error' | 'call.in-progress.error-providerfault-deepinfra-503-server-overloaded-error' | 'pipeline-error-runpod-400-bad-request-validation-failed' | 'pipeline-error-runpod-401-unauthorized' | 'pipeline-error-runpod-403-model-access-denied' | 'pipeline-error-runpod-429-exceeded-quota' | 'pipeline-error-runpod-500-server-error' | 'pipeline-error-runpod-503-server-overloaded-error' | 'pipeline-error-runpod-llm-failed' | 'call.in-progress.error-vapifault-runpod-llm-failed' | 'call.in-progress.error-vapifault-runpod-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-runpod-401-unauthorized' | 'call.in-progress.error-vapifault-runpod-403-model-access-denied' | 'call.in-progress.error-vapifault-runpod-429-exceeded-quota' | 'call.in-progress.error-providerfault-runpod-500-server-error' | 'call.in-progress.error-providerfault-runpod-503-server-overloaded-error' | 'pipeline-error-custom-llm-400-bad-request-validation-failed' | 'pipeline-error-custom-llm-401-unauthorized' | 'pipeline-error-custom-llm-403-model-access-denied' | 'pipeline-error-custom-llm-429-exceeded-quota' | 'pipeline-error-custom-llm-500-server-error' | 'pipeline-error-custom-llm-503-server-overloaded-error' | 'pipeline-error-custom-llm-llm-failed' | 'call.in-progress.error-vapifault-custom-llm-llm-failed' | 'call.in-progress.error-vapifault-custom-llm-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-custom-llm-401-unauthorized' | 'call.in-progress.error-vapifault-custom-llm-403-model-access-denied' | 'call.in-progress.error-vapifault-custom-llm-429-exceeded-quota' | 'call.in-progress.error-providerfault-custom-llm-500-server-error' | 'call.in-progress.error-providerfault-custom-llm-503-server-overloaded-error' | 'pipeline-error-custom-voice-failed' | 'pipeline-error-cartesia-socket-hang-up' | 'pipeline-error-cartesia-requested-payment' | 'pipeline-error-cartesia-500-server-error' | 'pipeline-error-cartesia-503-server-error' | 'pipeline-error-cartesia-522-server-error' | 'call.in-progress.error-vapifault-cartesia-socket-hang-up' | 'call.in-progress.error-vapifault-cartesia-requested-payment' | 'call.in-progress.error-providerfault-cartesia-500-server-error' | 'call.in-progress.error-providerfault-cartesia-503-server-error' | 'call.in-progress.error-providerfault-cartesia-522-server-error' | 'pipeline-error-eleven-labs-voice-not-found' | 'pipeline-error-eleven-labs-quota-exceeded' | 'pipeline-error-eleven-labs-unauthorized-access' | 'pipeline-error-eleven-labs-unauthorized-to-access-model' | 'pipeline-error-eleven-labs-professional-voices-only-for-creator-plus' | 'pipeline-error-eleven-labs-blocked-free-plan-and-requested-upgrade' | 'pipeline-error-eleven-labs-blocked-concurrent-requests-and-requested-upgrade' | 'pipeline-error-eleven-labs-blocked-using-instant-voice-clone-and-requested-upgrade' | 'pipeline-error-eleven-labs-system-busy-and-requested-upgrade' | 'pipeline-error-eleven-labs-voice-not-fine-tuned' | 'pipeline-error-eleven-labs-invalid-api-key' | 'pipeline-error-eleven-labs-invalid-voice-samples' | 'pipeline-error-eleven-labs-voice-disabled-by-owner' | 'pipeline-error-eleven-labs-blocked-account-in-probation' | 'pipeline-error-eleven-labs-blocked-content-against-their-policy' | 'pipeline-error-eleven-labs-missing-samples-for-voice-clone' | 'pipeline-error-eleven-labs-voice-not-fine-tuned-and-cannot-be-used' | 'pipeline-error-eleven-labs-voice-not-allowed-for-free-users' | 'pipeline-error-eleven-labs-max-character-limit-exceeded' | 'pipeline-error-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification' | 'pipeline-error-eleven-labs-500-server-error' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-found' | 'call.in-progress.error-vapifault-eleven-labs-quota-exceeded' | 'call.in-progress.error-vapifault-eleven-labs-unauthorized-access' | 'call.in-progress.error-vapifault-eleven-labs-unauthorized-to-access-model' | 'call.in-progress.error-vapifault-eleven-labs-professional-voices-only-for-creator-plus' | 'call.in-progress.error-vapifault-eleven-labs-blocked-free-plan-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-blocked-concurrent-requests-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-blocked-using-instant-voice-clone-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-system-busy-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-fine-tuned' | 'call.in-progress.error-vapifault-eleven-labs-invalid-api-key' | 'call.in-progress.error-vapifault-eleven-labs-invalid-voice-samples' | 'call.in-progress.error-vapifault-eleven-labs-voice-disabled-by-owner' | 'call.in-progress.error-vapifault-eleven-labs-blocked-account-in-probation' | 'call.in-progress.error-vapifault-eleven-labs-blocked-content-against-their-policy' | 'call.in-progress.error-vapifault-eleven-labs-missing-samples-for-voice-clone' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-fine-tuned-and-cannot-be-used' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-allowed-for-free-users' | 'call.in-progress.error-vapifault-eleven-labs-max-character-limit-exceeded' | 'call.in-progress.error-vapifault-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification' | 'call.in-progress.error-providerfault-eleven-labs-500-server-error' | 'pipeline-error-playht-request-timed-out' | 'pipeline-error-playht-invalid-voice' | 'pipeline-error-playht-unexpected-error' | 'pipeline-error-playht-out-of-credits' | 'pipeline-error-playht-invalid-emotion' | 'pipeline-error-playht-voice-must-be-a-valid-voice-manifest-uri' | 'pipeline-error-playht-401-unauthorized' | 'pipeline-error-playht-403-forbidden-out-of-characters' | 'pipeline-error-playht-403-forbidden-api-access-not-available' | 'pipeline-error-playht-429-exceeded-quota' | 'pipeline-error-playht-502-gateway-error' | 'pipeline-error-playht-504-gateway-error' | 'call.in-progress.error-vapifault-playht-request-timed-out' | 'call.in-progress.error-vapifault-playht-invalid-voice' | 'call.in-progress.error-vapifault-playht-unexpected-error' | 'call.in-progress.error-vapifault-playht-out-of-credits' | 'call.in-progress.error-vapifault-playht-invalid-emotion' | 'call.in-progress.error-vapifault-playht-voice-must-be-a-valid-voice-manifest-uri' | 'call.in-progress.error-vapifault-playht-401-unauthorized' | 'call.in-progress.error-vapifault-playht-403-forbidden-out-of-characters' | 'call.in-progress.error-vapifault-playht-403-forbidden-api-access-not-available' | 'call.in-progress.error-vapifault-playht-429-exceeded-quota' | 'call.in-progress.error-providerfault-playht-502-gateway-error' | 'call.in-progress.error-providerfault-playht-504-gateway-error' | 'pipeline-error-custom-transcriber-failed' | 'call.in-progress.error-vapifault-custom-transcriber-failed' | 'pipeline-error-eleven-labs-transcriber-failed' | 'call.in-progress.error-vapifault-eleven-labs-transcriber-failed' | 'pipeline-error-deepgram-returning-400-no-such-model-language-tier-combination' | 'pipeline-error-deepgram-returning-401-invalid-credentials' | 'pipeline-error-deepgram-returning-403-model-access-denied' | 'pipeline-error-deepgram-returning-404-not-found' | 'pipeline-error-deepgram-returning-500-invalid-json' | 'pipeline-error-deepgram-returning-502-network-error' | 'pipeline-error-deepgram-returning-502-bad-gateway-ehostunreach' | 'call.in-progress.error-vapifault-deepgram-returning-400-no-such-model-language-tier-combination' | 'call.in-progress.error-vapifault-deepgram-returning-401-invalid-credentials' | 'call.in-progress.error-vapifault-deepgram-returning-404-not-found' | 'call.in-progress.error-vapifault-deepgram-returning-403-model-access-denied' | 'call.in-progress.error-providerfault-deepgram-returning-500-invalid-json' | 'call.in-progress.error-providerfault-deepgram-returning-502-network-error' | 'call.in-progress.error-providerfault-deepgram-returning-502-bad-gateway-ehostunreach' | 'pipeline-error-google-transcriber-failed' | 'call.in-progress.error-vapifault-google-transcriber-failed' | 'pipeline-error-openai-transcriber-failed' | 'call.in-progress.error-vapifault-openai-transcriber-failed' | 'assistant-ended-call' | 'assistant-said-end-call-phrase' | 'assistant-ended-call-with-hangup-task' | 'assistant-ended-call-after-message-spoken' | 'assistant-forwarded-call' | 'assistant-join-timed-out' | 'call.in-progress.error-assistant-did-not-receive-customer-audio' | 'customer-busy' | 'customer-ended-call' | 'customer-did-not-answer' | 'customer-did-not-give-microphone-permission' | 'exceeded-max-duration' | 'manually-canceled' | 'phone-call-provider-closed-websocket' | 'call.forwarding.operator-busy' | 'silence-timed-out' | 'call.in-progress.error-sip-telephony-provider-failed-to-connect-call' | 'call.ringing.hook-executed-say' | 'call.ringing.hook-executed-transfer' | 'twilio-failed-to-connect-call' | 'twilio-reported-customer-misdialed' | 'vonage-rejected' | 'voicemail';
|
|
6540
|
+
endedReason?: 'call-start-error-neither-assistant-nor-server-set' | 'assistant-request-failed' | 'assistant-request-returned-error' | 'assistant-request-returned-unspeakable-error' | 'assistant-request-returned-invalid-assistant' | 'assistant-request-returned-no-assistant' | 'assistant-request-returned-forwarding-phone-number' | 'call.start.error-get-org' | 'call.start.error-get-subscription' | 'call.start.error-get-assistant' | 'call.start.error-get-phone-number' | 'call.start.error-get-customer' | 'call.start.error-get-resources-validation' | 'call.start.error-vapi-number-international' | 'call.start.error-vapi-number-outbound-daily-limit' | 'call.start.error-get-transport' | 'assistant-not-valid' | 'database-error' | 'assistant-not-found' | 'pipeline-error-openai-voice-failed' | 'pipeline-error-cartesia-voice-failed' | 'pipeline-error-deepgram-voice-failed' | 'pipeline-error-eleven-labs-voice-failed' | 'pipeline-error-playht-voice-failed' | 'pipeline-error-lmnt-voice-failed' | 'pipeline-error-azure-voice-failed' | 'pipeline-error-rime-ai-voice-failed' | 'pipeline-error-smallest-ai-voice-failed' | 'pipeline-error-neuphonic-voice-failed' | 'pipeline-error-hume-voice-failed' | 'pipeline-error-sesame-voice-failed' | 'pipeline-error-tavus-video-failed' | 'call.in-progress.error-vapifault-openai-voice-failed' | 'call.in-progress.error-vapifault-cartesia-voice-failed' | 'call.in-progress.error-vapifault-deepgram-voice-failed' | 'call.in-progress.error-vapifault-eleven-labs-voice-failed' | 'call.in-progress.error-vapifault-playht-voice-failed' | 'call.in-progress.error-vapifault-lmnt-voice-failed' | 'call.in-progress.error-vapifault-azure-voice-failed' | 'call.in-progress.error-vapifault-rime-ai-voice-failed' | 'call.in-progress.error-vapifault-smallest-ai-voice-failed' | 'call.in-progress.error-vapifault-neuphonic-voice-failed' | 'call.in-progress.error-vapifault-hume-voice-failed' | 'call.in-progress.error-vapifault-sesame-voice-failed' | 'call.in-progress.error-vapifault-tavus-video-failed' | 'pipeline-error-vapi-llm-failed' | 'pipeline-error-vapi-400-bad-request-validation-failed' | 'pipeline-error-vapi-401-unauthorized' | 'pipeline-error-vapi-403-model-access-denied' | 'pipeline-error-vapi-429-exceeded-quota' | 'pipeline-error-vapi-500-server-error' | 'pipeline-error-vapi-503-server-overloaded-error' | 'call.in-progress.error-vapifault-vapi-llm-failed' | 'call.in-progress.error-vapifault-vapi-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-vapi-401-unauthorized' | 'call.in-progress.error-vapifault-vapi-403-model-access-denied' | 'call.in-progress.error-vapifault-vapi-429-exceeded-quota' | 'call.in-progress.error-providerfault-vapi-500-server-error' | 'call.in-progress.error-providerfault-vapi-503-server-overloaded-error' | 'pipeline-error-deepgram-transcriber-failed' | 'call.in-progress.error-vapifault-deepgram-transcriber-failed' | 'pipeline-error-gladia-transcriber-failed' | 'call.in-progress.error-vapifault-gladia-transcriber-failed' | 'pipeline-error-speechmatics-transcriber-failed' | 'call.in-progress.error-vapifault-speechmatics-transcriber-failed' | 'pipeline-error-assembly-ai-transcriber-failed' | 'pipeline-error-assembly-ai-returning-400-insufficent-funds' | 'pipeline-error-assembly-ai-returning-400-paid-only-feature' | 'pipeline-error-assembly-ai-returning-401-invalid-credentials' | 'pipeline-error-assembly-ai-returning-500-invalid-schema' | 'pipeline-error-assembly-ai-returning-500-word-boost-parsing-failed' | 'call.in-progress.error-vapifault-assembly-ai-transcriber-failed' | 'call.in-progress.error-vapifault-assembly-ai-returning-400-insufficent-funds' | 'call.in-progress.error-vapifault-assembly-ai-returning-400-paid-only-feature' | 'call.in-progress.error-vapifault-assembly-ai-returning-401-invalid-credentials' | 'call.in-progress.error-vapifault-assembly-ai-returning-500-invalid-schema' | 'call.in-progress.error-vapifault-assembly-ai-returning-500-word-boost-parsing-failed' | 'pipeline-error-talkscriber-transcriber-failed' | 'call.in-progress.error-vapifault-talkscriber-transcriber-failed' | 'pipeline-error-azure-speech-transcriber-failed' | 'call.in-progress.error-vapifault-azure-speech-transcriber-failed' | 'call.in-progress.error-pipeline-no-available-llm-model' | 'worker-shutdown' | 'unknown-error' | 'vonage-disconnected' | 'vonage-failed-to-connect-call' | 'vonage-completed' | 'phone-call-provider-bypass-enabled-but-no-call-received' | 'call.in-progress.error-providerfault-transport-never-connected' | 'call.in-progress.error-vapifault-worker-not-available' | 'call.in-progress.error-vapifault-transport-never-connected' | 'call.in-progress.error-vapifault-transport-connected-but-call-not-active' | 'call.in-progress.error-vapifault-call-started-but-connection-to-transport-missing' | 'call.in-progress.error-vapifault-worker-died' | 'call.in-progress.error-vapifault-openai-llm-failed' | 'call.in-progress.error-vapifault-azure-openai-llm-failed' | 'call.in-progress.error-vapifault-groq-llm-failed' | 'call.in-progress.error-vapifault-google-llm-failed' | 'call.in-progress.error-vapifault-xai-llm-failed' | 'call.in-progress.error-vapifault-mistral-llm-failed' | 'call.in-progress.error-vapifault-inflection-ai-llm-failed' | 'call.in-progress.error-vapifault-cerebras-llm-failed' | 'call.in-progress.error-vapifault-deep-seek-llm-failed' | 'pipeline-error-openai-400-bad-request-validation-failed' | 'pipeline-error-openai-401-unauthorized' | 'pipeline-error-openai-401-incorrect-api-key' | 'pipeline-error-openai-401-account-not-in-organization' | 'pipeline-error-openai-403-model-access-denied' | 'pipeline-error-openai-429-exceeded-quota' | 'pipeline-error-openai-429-rate-limit-reached' | 'pipeline-error-openai-500-server-error' | 'pipeline-error-openai-503-server-overloaded-error' | 'pipeline-error-openai-llm-failed' | 'call.in-progress.error-vapifault-openai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-openai-401-unauthorized' | 'call.in-progress.error-vapifault-openai-401-incorrect-api-key' | 'call.in-progress.error-vapifault-openai-401-account-not-in-organization' | 'call.in-progress.error-vapifault-openai-403-model-access-denied' | 'call.in-progress.error-vapifault-openai-429-exceeded-quota' | 'call.in-progress.error-vapifault-openai-429-rate-limit-reached' | 'call.in-progress.error-providerfault-openai-500-server-error' | 'call.in-progress.error-providerfault-openai-503-server-overloaded-error' | 'pipeline-error-azure-openai-400-bad-request-validation-failed' | 'pipeline-error-azure-openai-401-unauthorized' | 'pipeline-error-azure-openai-403-model-access-denied' | 'pipeline-error-azure-openai-429-exceeded-quota' | 'pipeline-error-azure-openai-500-server-error' | 'pipeline-error-azure-openai-503-server-overloaded-error' | 'pipeline-error-azure-openai-llm-failed' | 'call.in-progress.error-vapifault-azure-openai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-azure-openai-401-unauthorized' | 'call.in-progress.error-vapifault-azure-openai-403-model-access-denied' | 'call.in-progress.error-vapifault-azure-openai-429-exceeded-quota' | 'call.in-progress.error-providerfault-azure-openai-500-server-error' | 'call.in-progress.error-providerfault-azure-openai-503-server-overloaded-error' | 'pipeline-error-google-400-bad-request-validation-failed' | 'pipeline-error-google-401-unauthorized' | 'pipeline-error-google-403-model-access-denied' | 'pipeline-error-google-429-exceeded-quota' | 'pipeline-error-google-500-server-error' | 'pipeline-error-google-503-server-overloaded-error' | 'pipeline-error-google-llm-failed' | 'call.in-progress.error-vapifault-google-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-google-401-unauthorized' | 'call.in-progress.error-vapifault-google-403-model-access-denied' | 'call.in-progress.error-vapifault-google-429-exceeded-quota' | 'call.in-progress.error-providerfault-google-500-server-error' | 'call.in-progress.error-providerfault-google-503-server-overloaded-error' | 'pipeline-error-xai-400-bad-request-validation-failed' | 'pipeline-error-xai-401-unauthorized' | 'pipeline-error-xai-403-model-access-denied' | 'pipeline-error-xai-429-exceeded-quota' | 'pipeline-error-xai-500-server-error' | 'pipeline-error-xai-503-server-overloaded-error' | 'pipeline-error-xai-llm-failed' | 'call.in-progress.error-vapifault-xai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-xai-401-unauthorized' | 'call.in-progress.error-vapifault-xai-403-model-access-denied' | 'call.in-progress.error-vapifault-xai-429-exceeded-quota' | 'call.in-progress.error-providerfault-xai-500-server-error' | 'call.in-progress.error-providerfault-xai-503-server-overloaded-error' | 'pipeline-error-mistral-400-bad-request-validation-failed' | 'pipeline-error-mistral-401-unauthorized' | 'pipeline-error-mistral-403-model-access-denied' | 'pipeline-error-mistral-429-exceeded-quota' | 'pipeline-error-mistral-500-server-error' | 'pipeline-error-mistral-503-server-overloaded-error' | 'pipeline-error-mistral-llm-failed' | 'call.in-progress.error-vapifault-mistral-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-mistral-401-unauthorized' | 'call.in-progress.error-vapifault-mistral-403-model-access-denied' | 'call.in-progress.error-vapifault-mistral-429-exceeded-quota' | 'call.in-progress.error-providerfault-mistral-500-server-error' | 'call.in-progress.error-providerfault-mistral-503-server-overloaded-error' | 'pipeline-error-inflection-ai-400-bad-request-validation-failed' | 'pipeline-error-inflection-ai-401-unauthorized' | 'pipeline-error-inflection-ai-403-model-access-denied' | 'pipeline-error-inflection-ai-429-exceeded-quota' | 'pipeline-error-inflection-ai-500-server-error' | 'pipeline-error-inflection-ai-503-server-overloaded-error' | 'pipeline-error-inflection-ai-llm-failed' | 'call.in-progress.error-vapifault-inflection-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-inflection-ai-401-unauthorized' | 'call.in-progress.error-vapifault-inflection-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-inflection-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-inflection-ai-500-server-error' | 'call.in-progress.error-providerfault-inflection-ai-503-server-overloaded-error' | 'pipeline-error-deep-seek-400-bad-request-validation-failed' | 'pipeline-error-deep-seek-401-unauthorized' | 'pipeline-error-deep-seek-403-model-access-denied' | 'pipeline-error-deep-seek-429-exceeded-quota' | 'pipeline-error-deep-seek-500-server-error' | 'pipeline-error-deep-seek-503-server-overloaded-error' | 'pipeline-error-deep-seek-llm-failed' | 'call.in-progress.error-vapifault-deep-seek-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-deep-seek-401-unauthorized' | 'call.in-progress.error-vapifault-deep-seek-403-model-access-denied' | 'call.in-progress.error-vapifault-deep-seek-429-exceeded-quota' | 'call.in-progress.error-providerfault-deep-seek-500-server-error' | 'call.in-progress.error-providerfault-deep-seek-503-server-overloaded-error' | 'pipeline-error-groq-400-bad-request-validation-failed' | 'pipeline-error-groq-401-unauthorized' | 'pipeline-error-groq-403-model-access-denied' | 'pipeline-error-groq-429-exceeded-quota' | 'pipeline-error-groq-500-server-error' | 'pipeline-error-groq-503-server-overloaded-error' | 'pipeline-error-groq-llm-failed' | 'call.in-progress.error-vapifault-groq-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-groq-401-unauthorized' | 'call.in-progress.error-vapifault-groq-403-model-access-denied' | 'call.in-progress.error-vapifault-groq-429-exceeded-quota' | 'call.in-progress.error-providerfault-groq-500-server-error' | 'call.in-progress.error-providerfault-groq-503-server-overloaded-error' | 'pipeline-error-cerebras-400-bad-request-validation-failed' | 'pipeline-error-cerebras-401-unauthorized' | 'pipeline-error-cerebras-403-model-access-denied' | 'pipeline-error-cerebras-429-exceeded-quota' | 'pipeline-error-cerebras-500-server-error' | 'pipeline-error-cerebras-503-server-overloaded-error' | 'pipeline-error-cerebras-llm-failed' | 'call.in-progress.error-vapifault-cerebras-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-cerebras-401-unauthorized' | 'call.in-progress.error-vapifault-cerebras-403-model-access-denied' | 'call.in-progress.error-vapifault-cerebras-429-exceeded-quota' | 'call.in-progress.error-providerfault-cerebras-500-server-error' | 'call.in-progress.error-providerfault-cerebras-503-server-overloaded-error' | 'pipeline-error-anthropic-400-bad-request-validation-failed' | 'pipeline-error-anthropic-401-unauthorized' | 'pipeline-error-anthropic-403-model-access-denied' | 'pipeline-error-anthropic-429-exceeded-quota' | 'pipeline-error-anthropic-500-server-error' | 'pipeline-error-anthropic-503-server-overloaded-error' | 'pipeline-error-anthropic-llm-failed' | 'call.in-progress.error-vapifault-anthropic-llm-failed' | 'call.in-progress.error-vapifault-anthropic-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-500-server-error' | 'call.in-progress.error-providerfault-anthropic-503-server-overloaded-error' | 'pipeline-error-anthropic-bedrock-400-bad-request-validation-failed' | 'pipeline-error-anthropic-bedrock-401-unauthorized' | 'pipeline-error-anthropic-bedrock-403-model-access-denied' | 'pipeline-error-anthropic-bedrock-429-exceeded-quota' | 'pipeline-error-anthropic-bedrock-500-server-error' | 'pipeline-error-anthropic-bedrock-503-server-overloaded-error' | 'pipeline-error-anthropic-bedrock-llm-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-llm-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-bedrock-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-bedrock-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-bedrock-500-server-error' | 'call.in-progress.error-providerfault-anthropic-bedrock-503-server-overloaded-error' | 'pipeline-error-anthropic-vertex-400-bad-request-validation-failed' | 'pipeline-error-anthropic-vertex-401-unauthorized' | 'pipeline-error-anthropic-vertex-403-model-access-denied' | 'pipeline-error-anthropic-vertex-429-exceeded-quota' | 'pipeline-error-anthropic-vertex-500-server-error' | 'pipeline-error-anthropic-vertex-503-server-overloaded-error' | 'pipeline-error-anthropic-vertex-llm-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-llm-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-vertex-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-vertex-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-vertex-500-server-error' | 'call.in-progress.error-providerfault-anthropic-vertex-503-server-overloaded-error' | 'pipeline-error-together-ai-400-bad-request-validation-failed' | 'pipeline-error-together-ai-401-unauthorized' | 'pipeline-error-together-ai-403-model-access-denied' | 'pipeline-error-together-ai-429-exceeded-quota' | 'pipeline-error-together-ai-500-server-error' | 'pipeline-error-together-ai-503-server-overloaded-error' | 'pipeline-error-together-ai-llm-failed' | 'call.in-progress.error-vapifault-together-ai-llm-failed' | 'call.in-progress.error-vapifault-together-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-together-ai-401-unauthorized' | 'call.in-progress.error-vapifault-together-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-together-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-together-ai-500-server-error' | 'call.in-progress.error-providerfault-together-ai-503-server-overloaded-error' | 'pipeline-error-anyscale-400-bad-request-validation-failed' | 'pipeline-error-anyscale-401-unauthorized' | 'pipeline-error-anyscale-403-model-access-denied' | 'pipeline-error-anyscale-429-exceeded-quota' | 'pipeline-error-anyscale-500-server-error' | 'pipeline-error-anyscale-503-server-overloaded-error' | 'pipeline-error-anyscale-llm-failed' | 'call.in-progress.error-vapifault-anyscale-llm-failed' | 'call.in-progress.error-vapifault-anyscale-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anyscale-401-unauthorized' | 'call.in-progress.error-vapifault-anyscale-403-model-access-denied' | 'call.in-progress.error-vapifault-anyscale-429-exceeded-quota' | 'call.in-progress.error-providerfault-anyscale-500-server-error' | 'call.in-progress.error-providerfault-anyscale-503-server-overloaded-error' | 'pipeline-error-openrouter-400-bad-request-validation-failed' | 'pipeline-error-openrouter-401-unauthorized' | 'pipeline-error-openrouter-403-model-access-denied' | 'pipeline-error-openrouter-429-exceeded-quota' | 'pipeline-error-openrouter-500-server-error' | 'pipeline-error-openrouter-503-server-overloaded-error' | 'pipeline-error-openrouter-llm-failed' | 'call.in-progress.error-vapifault-openrouter-llm-failed' | 'call.in-progress.error-vapifault-openrouter-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-openrouter-401-unauthorized' | 'call.in-progress.error-vapifault-openrouter-403-model-access-denied' | 'call.in-progress.error-vapifault-openrouter-429-exceeded-quota' | 'call.in-progress.error-providerfault-openrouter-500-server-error' | 'call.in-progress.error-providerfault-openrouter-503-server-overloaded-error' | 'pipeline-error-perplexity-ai-400-bad-request-validation-failed' | 'pipeline-error-perplexity-ai-401-unauthorized' | 'pipeline-error-perplexity-ai-403-model-access-denied' | 'pipeline-error-perplexity-ai-429-exceeded-quota' | 'pipeline-error-perplexity-ai-500-server-error' | 'pipeline-error-perplexity-ai-503-server-overloaded-error' | 'pipeline-error-perplexity-ai-llm-failed' | 'call.in-progress.error-vapifault-perplexity-ai-llm-failed' | 'call.in-progress.error-vapifault-perplexity-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-perplexity-ai-401-unauthorized' | 'call.in-progress.error-vapifault-perplexity-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-perplexity-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-perplexity-ai-500-server-error' | 'call.in-progress.error-providerfault-perplexity-ai-503-server-overloaded-error' | 'pipeline-error-deepinfra-400-bad-request-validation-failed' | 'pipeline-error-deepinfra-401-unauthorized' | 'pipeline-error-deepinfra-403-model-access-denied' | 'pipeline-error-deepinfra-429-exceeded-quota' | 'pipeline-error-deepinfra-500-server-error' | 'pipeline-error-deepinfra-503-server-overloaded-error' | 'pipeline-error-deepinfra-llm-failed' | 'call.in-progress.error-vapifault-deepinfra-llm-failed' | 'call.in-progress.error-vapifault-deepinfra-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-deepinfra-401-unauthorized' | 'call.in-progress.error-vapifault-deepinfra-403-model-access-denied' | 'call.in-progress.error-vapifault-deepinfra-429-exceeded-quota' | 'call.in-progress.error-providerfault-deepinfra-500-server-error' | 'call.in-progress.error-providerfault-deepinfra-503-server-overloaded-error' | 'pipeline-error-runpod-400-bad-request-validation-failed' | 'pipeline-error-runpod-401-unauthorized' | 'pipeline-error-runpod-403-model-access-denied' | 'pipeline-error-runpod-429-exceeded-quota' | 'pipeline-error-runpod-500-server-error' | 'pipeline-error-runpod-503-server-overloaded-error' | 'pipeline-error-runpod-llm-failed' | 'call.in-progress.error-vapifault-runpod-llm-failed' | 'call.in-progress.error-vapifault-runpod-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-runpod-401-unauthorized' | 'call.in-progress.error-vapifault-runpod-403-model-access-denied' | 'call.in-progress.error-vapifault-runpod-429-exceeded-quota' | 'call.in-progress.error-providerfault-runpod-500-server-error' | 'call.in-progress.error-providerfault-runpod-503-server-overloaded-error' | 'pipeline-error-custom-llm-400-bad-request-validation-failed' | 'pipeline-error-custom-llm-401-unauthorized' | 'pipeline-error-custom-llm-403-model-access-denied' | 'pipeline-error-custom-llm-429-exceeded-quota' | 'pipeline-error-custom-llm-500-server-error' | 'pipeline-error-custom-llm-503-server-overloaded-error' | 'pipeline-error-custom-llm-llm-failed' | 'call.in-progress.error-vapifault-custom-llm-llm-failed' | 'call.in-progress.error-vapifault-custom-llm-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-custom-llm-401-unauthorized' | 'call.in-progress.error-vapifault-custom-llm-403-model-access-denied' | 'call.in-progress.error-vapifault-custom-llm-429-exceeded-quota' | 'call.in-progress.error-providerfault-custom-llm-500-server-error' | 'call.in-progress.error-providerfault-custom-llm-503-server-overloaded-error' | 'pipeline-error-custom-voice-failed' | 'pipeline-error-cartesia-socket-hang-up' | 'pipeline-error-cartesia-requested-payment' | 'pipeline-error-cartesia-500-server-error' | 'pipeline-error-cartesia-503-server-error' | 'pipeline-error-cartesia-522-server-error' | 'call.in-progress.error-vapifault-cartesia-socket-hang-up' | 'call.in-progress.error-vapifault-cartesia-requested-payment' | 'call.in-progress.error-providerfault-cartesia-500-server-error' | 'call.in-progress.error-providerfault-cartesia-503-server-error' | 'call.in-progress.error-providerfault-cartesia-522-server-error' | 'pipeline-error-eleven-labs-voice-not-found' | 'pipeline-error-eleven-labs-quota-exceeded' | 'pipeline-error-eleven-labs-unauthorized-access' | 'pipeline-error-eleven-labs-unauthorized-to-access-model' | 'pipeline-error-eleven-labs-professional-voices-only-for-creator-plus' | 'pipeline-error-eleven-labs-blocked-free-plan-and-requested-upgrade' | 'pipeline-error-eleven-labs-blocked-concurrent-requests-and-requested-upgrade' | 'pipeline-error-eleven-labs-blocked-using-instant-voice-clone-and-requested-upgrade' | 'pipeline-error-eleven-labs-system-busy-and-requested-upgrade' | 'pipeline-error-eleven-labs-voice-not-fine-tuned' | 'pipeline-error-eleven-labs-invalid-api-key' | 'pipeline-error-eleven-labs-invalid-voice-samples' | 'pipeline-error-eleven-labs-voice-disabled-by-owner' | 'pipeline-error-eleven-labs-blocked-account-in-probation' | 'pipeline-error-eleven-labs-blocked-content-against-their-policy' | 'pipeline-error-eleven-labs-missing-samples-for-voice-clone' | 'pipeline-error-eleven-labs-voice-not-fine-tuned-and-cannot-be-used' | 'pipeline-error-eleven-labs-voice-not-allowed-for-free-users' | 'pipeline-error-eleven-labs-max-character-limit-exceeded' | 'pipeline-error-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification' | 'pipeline-error-eleven-labs-500-server-error' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-found' | 'call.in-progress.error-vapifault-eleven-labs-quota-exceeded' | 'call.in-progress.error-vapifault-eleven-labs-unauthorized-access' | 'call.in-progress.error-vapifault-eleven-labs-unauthorized-to-access-model' | 'call.in-progress.error-vapifault-eleven-labs-professional-voices-only-for-creator-plus' | 'call.in-progress.error-vapifault-eleven-labs-blocked-free-plan-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-blocked-concurrent-requests-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-blocked-using-instant-voice-clone-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-system-busy-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-fine-tuned' | 'call.in-progress.error-vapifault-eleven-labs-invalid-api-key' | 'call.in-progress.error-vapifault-eleven-labs-invalid-voice-samples' | 'call.in-progress.error-vapifault-eleven-labs-voice-disabled-by-owner' | 'call.in-progress.error-vapifault-eleven-labs-blocked-account-in-probation' | 'call.in-progress.error-vapifault-eleven-labs-blocked-content-against-their-policy' | 'call.in-progress.error-vapifault-eleven-labs-missing-samples-for-voice-clone' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-fine-tuned-and-cannot-be-used' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-allowed-for-free-users' | 'call.in-progress.error-vapifault-eleven-labs-max-character-limit-exceeded' | 'call.in-progress.error-vapifault-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification' | 'call.in-progress.error-providerfault-eleven-labs-500-server-error' | 'pipeline-error-playht-request-timed-out' | 'pipeline-error-playht-invalid-voice' | 'pipeline-error-playht-unexpected-error' | 'pipeline-error-playht-out-of-credits' | 'pipeline-error-playht-invalid-emotion' | 'pipeline-error-playht-voice-must-be-a-valid-voice-manifest-uri' | 'pipeline-error-playht-401-unauthorized' | 'pipeline-error-playht-403-forbidden-out-of-characters' | 'pipeline-error-playht-403-forbidden-api-access-not-available' | 'pipeline-error-playht-429-exceeded-quota' | 'pipeline-error-playht-502-gateway-error' | 'pipeline-error-playht-504-gateway-error' | 'call.in-progress.error-vapifault-playht-request-timed-out' | 'call.in-progress.error-vapifault-playht-invalid-voice' | 'call.in-progress.error-vapifault-playht-unexpected-error' | 'call.in-progress.error-vapifault-playht-out-of-credits' | 'call.in-progress.error-vapifault-playht-invalid-emotion' | 'call.in-progress.error-vapifault-playht-voice-must-be-a-valid-voice-manifest-uri' | 'call.in-progress.error-vapifault-playht-401-unauthorized' | 'call.in-progress.error-vapifault-playht-403-forbidden-out-of-characters' | 'call.in-progress.error-vapifault-playht-403-forbidden-api-access-not-available' | 'call.in-progress.error-vapifault-playht-429-exceeded-quota' | 'call.in-progress.error-providerfault-playht-502-gateway-error' | 'call.in-progress.error-providerfault-playht-504-gateway-error' | 'pipeline-error-custom-transcriber-failed' | 'call.in-progress.error-vapifault-custom-transcriber-failed' | 'pipeline-error-eleven-labs-transcriber-failed' | 'call.in-progress.error-vapifault-eleven-labs-transcriber-failed' | 'pipeline-error-deepgram-returning-400-no-such-model-language-tier-combination' | 'pipeline-error-deepgram-returning-401-invalid-credentials' | 'pipeline-error-deepgram-returning-403-model-access-denied' | 'pipeline-error-deepgram-returning-404-not-found' | 'pipeline-error-deepgram-returning-500-invalid-json' | 'pipeline-error-deepgram-returning-502-network-error' | 'pipeline-error-deepgram-returning-502-bad-gateway-ehostunreach' | 'call.in-progress.error-vapifault-deepgram-returning-400-no-such-model-language-tier-combination' | 'call.in-progress.error-vapifault-deepgram-returning-401-invalid-credentials' | 'call.in-progress.error-vapifault-deepgram-returning-404-not-found' | 'call.in-progress.error-vapifault-deepgram-returning-403-model-access-denied' | 'call.in-progress.error-providerfault-deepgram-returning-500-invalid-json' | 'call.in-progress.error-providerfault-deepgram-returning-502-network-error' | 'call.in-progress.error-providerfault-deepgram-returning-502-bad-gateway-ehostunreach' | 'pipeline-error-google-transcriber-failed' | 'call.in-progress.error-vapifault-google-transcriber-failed' | 'pipeline-error-openai-transcriber-failed' | 'call.in-progress.error-vapifault-openai-transcriber-failed' | 'assistant-ended-call' | 'assistant-said-end-call-phrase' | 'assistant-ended-call-with-hangup-task' | 'assistant-ended-call-after-message-spoken' | 'assistant-forwarded-call' | 'assistant-join-timed-out' | 'call.in-progress.error-assistant-did-not-receive-customer-audio' | 'customer-busy' | 'customer-ended-call' | 'customer-did-not-answer' | 'customer-did-not-give-microphone-permission' | 'exceeded-max-duration' | 'manually-canceled' | 'phone-call-provider-closed-websocket' | 'call.forwarding.operator-busy' | 'silence-timed-out' | 'call.in-progress.error-sip-inbound-call-failed-to-connect' | 'call.in-progress.error-providerfault-outbound-sip-403-forbidden' | 'call.in-progress.error-providerfault-outbound-sip-407-proxy-authentication-required' | 'call.in-progress.error-providerfault-outbound-sip-503-service-unavailable' | 'call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable' | 'call.in-progress.error-sip-outbound-call-failed-to-connect' | 'call.ringing.hook-executed-say' | 'call.ringing.hook-executed-transfer' | 'twilio-failed-to-connect-call' | 'twilio-reported-customer-misdialed' | 'vonage-rejected' | 'voicemail';
|
|
6772
6541
|
/** This is the destination where the call ended up being transferred to. If the call was not transferred, this will be empty. */
|
|
6773
6542
|
destination?: TransferDestinationNumber | TransferDestinationSip;
|
|
6774
6543
|
/** This is the unique identifier for the call. */
|
|
@@ -6853,8 +6622,6 @@ export interface Call {
|
|
|
6853
6622
|
*/
|
|
6854
6623
|
squad?: CreateSquadDTO;
|
|
6855
6624
|
/**
|
|
6856
|
-
* [BETA] This feature is in active development. The API and behavior are subject to change as we refine it based on user feedback.
|
|
6857
|
-
*
|
|
6858
6625
|
* This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead.
|
|
6859
6626
|
*
|
|
6860
6627
|
* To start a call with:
|
|
@@ -6864,8 +6631,6 @@ export interface Call {
|
|
|
6864
6631
|
*/
|
|
6865
6632
|
workflowId?: string;
|
|
6866
6633
|
/**
|
|
6867
|
-
* [BETA] This feature is in active development. The API and behavior are subject to change as we refine it based on user feedback.
|
|
6868
|
-
*
|
|
6869
6634
|
* This is a workflow that will be used for the call. To use an existing workflow, use `workflowId` instead.
|
|
6870
6635
|
*
|
|
6871
6636
|
* To start a call with:
|
|
@@ -6874,6 +6639,8 @@ export interface Call {
|
|
|
6874
6639
|
* - Workflow, use `workflow` or `workflowId`
|
|
6875
6640
|
*/
|
|
6876
6641
|
workflow?: CreateWorkflowDTO;
|
|
6642
|
+
/** These are the overrides for the `workflow` or `workflowId`'s settings and template variables. */
|
|
6643
|
+
workflowOverrides?: WorkflowOverrides;
|
|
6877
6644
|
/**
|
|
6878
6645
|
* This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead.
|
|
6879
6646
|
*
|
|
@@ -6973,8 +6740,6 @@ export interface CreateCallDTO {
|
|
|
6973
6740
|
*/
|
|
6974
6741
|
squad?: CreateSquadDTO;
|
|
6975
6742
|
/**
|
|
6976
|
-
* [BETA] This feature is in active development. The API and behavior are subject to change as we refine it based on user feedback.
|
|
6977
|
-
*
|
|
6978
6743
|
* This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead.
|
|
6979
6744
|
*
|
|
6980
6745
|
* To start a call with:
|
|
@@ -6984,8 +6749,6 @@ export interface CreateCallDTO {
|
|
|
6984
6749
|
*/
|
|
6985
6750
|
workflowId?: string;
|
|
6986
6751
|
/**
|
|
6987
|
-
* [BETA] This feature is in active development. The API and behavior are subject to change as we refine it based on user feedback.
|
|
6988
|
-
*
|
|
6989
6752
|
* This is a workflow that will be used for the call. To use an existing workflow, use `workflowId` instead.
|
|
6990
6753
|
*
|
|
6991
6754
|
* To start a call with:
|
|
@@ -6994,6 +6757,8 @@ export interface CreateCallDTO {
|
|
|
6994
6757
|
* - Workflow, use `workflow` or `workflowId`
|
|
6995
6758
|
*/
|
|
6996
6759
|
workflow?: CreateWorkflowDTO;
|
|
6760
|
+
/** These are the overrides for the `workflow` or `workflowId`'s settings and template variables. */
|
|
6761
|
+
workflowOverrides?: WorkflowOverrides;
|
|
6997
6762
|
/**
|
|
6998
6763
|
* This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead.
|
|
6999
6764
|
*
|
|
@@ -7083,8 +6848,6 @@ export interface CreateOutboundCallDTO {
|
|
|
7083
6848
|
*/
|
|
7084
6849
|
squad?: CreateSquadDTO;
|
|
7085
6850
|
/**
|
|
7086
|
-
* [BETA] This feature is in active development. The API and behavior are subject to change as we refine it based on user feedback.
|
|
7087
|
-
*
|
|
7088
6851
|
* This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead.
|
|
7089
6852
|
*
|
|
7090
6853
|
* To start a call with:
|
|
@@ -7094,8 +6857,6 @@ export interface CreateOutboundCallDTO {
|
|
|
7094
6857
|
*/
|
|
7095
6858
|
workflowId?: string;
|
|
7096
6859
|
/**
|
|
7097
|
-
* [BETA] This feature is in active development. The API and behavior are subject to change as we refine it based on user feedback.
|
|
7098
|
-
*
|
|
7099
6860
|
* This is a workflow that will be used for the call. To use an existing workflow, use `workflowId` instead.
|
|
7100
6861
|
*
|
|
7101
6862
|
* To start a call with:
|
|
@@ -7104,6 +6865,8 @@ export interface CreateOutboundCallDTO {
|
|
|
7104
6865
|
* - Workflow, use `workflow` or `workflowId`
|
|
7105
6866
|
*/
|
|
7106
6867
|
workflow?: CreateWorkflowDTO;
|
|
6868
|
+
/** These are the overrides for the `workflow` or `workflowId`'s settings and template variables. */
|
|
6869
|
+
workflowOverrides?: WorkflowOverrides;
|
|
7107
6870
|
/**
|
|
7108
6871
|
* This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead.
|
|
7109
6872
|
*
|
|
@@ -7169,8 +6932,6 @@ export interface CreateWebCallDTO {
|
|
|
7169
6932
|
*/
|
|
7170
6933
|
squad?: CreateSquadDTO;
|
|
7171
6934
|
/**
|
|
7172
|
-
* [BETA] This feature is in active development. The API and behavior are subject to change as we refine it based on user feedback.
|
|
7173
|
-
*
|
|
7174
6935
|
* This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead.
|
|
7175
6936
|
*
|
|
7176
6937
|
* To start a call with:
|
|
@@ -7180,8 +6941,6 @@ export interface CreateWebCallDTO {
|
|
|
7180
6941
|
*/
|
|
7181
6942
|
workflowId?: string;
|
|
7182
6943
|
/**
|
|
7183
|
-
* [BETA] This feature is in active development. The API and behavior are subject to change as we refine it based on user feedback.
|
|
7184
|
-
*
|
|
7185
6944
|
* This is a workflow that will be used for the call. To use an existing workflow, use `workflowId` instead.
|
|
7186
6945
|
*
|
|
7187
6946
|
* To start a call with:
|
|
@@ -7190,6 +6949,8 @@ export interface CreateWebCallDTO {
|
|
|
7190
6949
|
* - Workflow, use `workflow` or `workflowId`
|
|
7191
6950
|
*/
|
|
7192
6951
|
workflow?: CreateWorkflowDTO;
|
|
6952
|
+
/** These are the overrides for the `workflow` or `workflowId`'s settings and template variables. */
|
|
6953
|
+
workflowOverrides?: WorkflowOverrides;
|
|
7193
6954
|
}
|
|
7194
6955
|
export interface UpdateCallDTO {
|
|
7195
6956
|
/**
|
|
@@ -7199,7 +6960,10 @@ export interface UpdateCallDTO {
|
|
|
7199
6960
|
name?: string;
|
|
7200
6961
|
}
|
|
7201
6962
|
export interface DeveloperMessage {
|
|
7202
|
-
/**
|
|
6963
|
+
/**
|
|
6964
|
+
* This is the role of the message author
|
|
6965
|
+
* @default "developer"
|
|
6966
|
+
*/
|
|
7203
6967
|
role: 'developer';
|
|
7204
6968
|
/**
|
|
7205
6969
|
* This is the content of the developer message
|
|
@@ -7254,7 +7018,10 @@ export interface ToolCall {
|
|
|
7254
7018
|
function: ToolCallFunction;
|
|
7255
7019
|
}
|
|
7256
7020
|
export interface AssistantMessage {
|
|
7257
|
-
/**
|
|
7021
|
+
/**
|
|
7022
|
+
* This is the role of the message author
|
|
7023
|
+
* @default "assistant"
|
|
7024
|
+
*/
|
|
7258
7025
|
role: 'assistant';
|
|
7259
7026
|
/**
|
|
7260
7027
|
* This is the content of the assistant message
|
|
@@ -7275,7 +7042,10 @@ export interface AssistantMessage {
|
|
|
7275
7042
|
name?: string;
|
|
7276
7043
|
}
|
|
7277
7044
|
export interface ToolMessage {
|
|
7278
|
-
/**
|
|
7045
|
+
/**
|
|
7046
|
+
* This is the role of the message author
|
|
7047
|
+
* @default "tool"
|
|
7048
|
+
*/
|
|
7279
7049
|
role: 'tool';
|
|
7280
7050
|
/**
|
|
7281
7051
|
* This is the content of the tool message
|
|
@@ -7290,17 +7060,14 @@ export interface ToolMessage {
|
|
|
7290
7060
|
*/
|
|
7291
7061
|
name?: string;
|
|
7292
7062
|
}
|
|
7293
|
-
export interface
|
|
7294
|
-
/** This is the
|
|
7295
|
-
|
|
7063
|
+
export interface FunctionCall {
|
|
7064
|
+
/** This is the arguments to call the function with */
|
|
7065
|
+
arguments: string;
|
|
7296
7066
|
/**
|
|
7297
|
-
* This is the
|
|
7298
|
-
*
|
|
7299
|
-
* @example "chat.output[0].content"
|
|
7067
|
+
* This is the name of the function to call
|
|
7068
|
+
* @maxLength 40
|
|
7300
7069
|
*/
|
|
7301
|
-
|
|
7302
|
-
/** This is the incremental content chunk being streamed. */
|
|
7303
|
-
delta: string;
|
|
7070
|
+
name: string;
|
|
7304
7071
|
}
|
|
7305
7072
|
export interface Chat {
|
|
7306
7073
|
/** This is the assistant that will be used for the chat. To use an existing assistant, use `assistantId` instead. */
|
|
@@ -7317,7 +7084,10 @@ export interface Chat {
|
|
|
7317
7084
|
* Mutually exclusive with previousChatId.
|
|
7318
7085
|
*/
|
|
7319
7086
|
sessionId?: string;
|
|
7320
|
-
/**
|
|
7087
|
+
/**
|
|
7088
|
+
* This is the input text for the chat.
|
|
7089
|
+
* Can be a string or an array of chat messages.
|
|
7090
|
+
*/
|
|
7321
7091
|
input?: string | (SystemMessage | UserMessage | AssistantMessage | ToolMessage | DeveloperMessage)[];
|
|
7322
7092
|
/**
|
|
7323
7093
|
* This is a flag that determines whether the response should be streamed.
|
|
@@ -7335,9 +7105,12 @@ export interface Chat {
|
|
|
7335
7105
|
id: string;
|
|
7336
7106
|
/** This is the unique identifier for the org that this chat belongs to. */
|
|
7337
7107
|
orgId: string;
|
|
7338
|
-
/**
|
|
7108
|
+
/**
|
|
7109
|
+
* This is an array of messages used as context for the chat.
|
|
7110
|
+
* Used to provide message history for multi-turn conversations.
|
|
7111
|
+
*/
|
|
7339
7112
|
messages?: (SystemMessage | UserMessage | AssistantMessage | ToolMessage | DeveloperMessage)[];
|
|
7340
|
-
/**
|
|
7113
|
+
/** This is the output messages generated by the system in response to the input. */
|
|
7341
7114
|
output?: (SystemMessage | UserMessage | AssistantMessage | ToolMessage | DeveloperMessage)[];
|
|
7342
7115
|
/**
|
|
7343
7116
|
* This is the ISO 8601 date-time string of when the chat was created.
|
|
@@ -7350,10 +7123,6 @@ export interface Chat {
|
|
|
7350
7123
|
*/
|
|
7351
7124
|
updatedAt: string;
|
|
7352
7125
|
}
|
|
7353
|
-
export interface ChatPaginatedResponse {
|
|
7354
|
-
results: Chat[];
|
|
7355
|
-
metadata: PaginationMeta;
|
|
7356
|
-
}
|
|
7357
7126
|
export interface CreateChatDTO {
|
|
7358
7127
|
/** This is the assistant that will be used for the chat. To use an existing assistant, use `assistantId` instead. */
|
|
7359
7128
|
assistantId?: string;
|
|
@@ -7369,7 +7138,11 @@ export interface CreateChatDTO {
|
|
|
7369
7138
|
* Mutually exclusive with previousChatId.
|
|
7370
7139
|
*/
|
|
7371
7140
|
sessionId?: string;
|
|
7372
|
-
/**
|
|
7141
|
+
/**
|
|
7142
|
+
* This is the input text for the chat.
|
|
7143
|
+
* Can be a string or an array of chat messages.
|
|
7144
|
+
* This field is REQUIRED for chat creation.
|
|
7145
|
+
*/
|
|
7373
7146
|
input: string | (SystemMessage | UserMessage | AssistantMessage | ToolMessage | DeveloperMessage)[];
|
|
7374
7147
|
/**
|
|
7375
7148
|
* This is a flag that determines whether the response should be streamed.
|
|
@@ -7384,6 +7157,83 @@ export interface CreateChatDTO {
|
|
|
7384
7157
|
*/
|
|
7385
7158
|
previousChatId?: string;
|
|
7386
7159
|
}
|
|
7160
|
+
export interface GetChatPaginatedDTO {
|
|
7161
|
+
/** This is the unique identifier for the assistant that will be used for the chat. */
|
|
7162
|
+
assistantId?: string;
|
|
7163
|
+
/** This is the unique identifier for the workflow that will be used for the chat. */
|
|
7164
|
+
workflowId?: string;
|
|
7165
|
+
/** This is the unique identifier for the session that will be used for the chat. */
|
|
7166
|
+
sessionId?: string;
|
|
7167
|
+
/**
|
|
7168
|
+
* This is the page number to return. Defaults to 1.
|
|
7169
|
+
* @min 1
|
|
7170
|
+
*/
|
|
7171
|
+
page?: number;
|
|
7172
|
+
/** This is the sort order for pagination. Defaults to 'DESC'. */
|
|
7173
|
+
sortOrder?: 'ASC' | 'DESC';
|
|
7174
|
+
/**
|
|
7175
|
+
* This is the maximum number of items to return. Defaults to 100.
|
|
7176
|
+
* @min 0
|
|
7177
|
+
* @max 1000
|
|
7178
|
+
*/
|
|
7179
|
+
limit?: number;
|
|
7180
|
+
/**
|
|
7181
|
+
* This will return items where the createdAt is greater than the specified value.
|
|
7182
|
+
* @format date-time
|
|
7183
|
+
*/
|
|
7184
|
+
createdAtGt?: string;
|
|
7185
|
+
/**
|
|
7186
|
+
* This will return items where the createdAt is less than the specified value.
|
|
7187
|
+
* @format date-time
|
|
7188
|
+
*/
|
|
7189
|
+
createdAtLt?: string;
|
|
7190
|
+
/**
|
|
7191
|
+
* This will return items where the createdAt is greater than or equal to the specified value.
|
|
7192
|
+
* @format date-time
|
|
7193
|
+
*/
|
|
7194
|
+
createdAtGe?: string;
|
|
7195
|
+
/**
|
|
7196
|
+
* This will return items where the createdAt is less than or equal to the specified value.
|
|
7197
|
+
* @format date-time
|
|
7198
|
+
*/
|
|
7199
|
+
createdAtLe?: string;
|
|
7200
|
+
/**
|
|
7201
|
+
* This will return items where the updatedAt is greater than the specified value.
|
|
7202
|
+
* @format date-time
|
|
7203
|
+
*/
|
|
7204
|
+
updatedAtGt?: string;
|
|
7205
|
+
/**
|
|
7206
|
+
* This will return items where the updatedAt is less than the specified value.
|
|
7207
|
+
* @format date-time
|
|
7208
|
+
*/
|
|
7209
|
+
updatedAtLt?: string;
|
|
7210
|
+
/**
|
|
7211
|
+
* This will return items where the updatedAt is greater than or equal to the specified value.
|
|
7212
|
+
* @format date-time
|
|
7213
|
+
*/
|
|
7214
|
+
updatedAtGe?: string;
|
|
7215
|
+
/**
|
|
7216
|
+
* This will return items where the updatedAt is less than or equal to the specified value.
|
|
7217
|
+
* @format date-time
|
|
7218
|
+
*/
|
|
7219
|
+
updatedAtLe?: string;
|
|
7220
|
+
}
|
|
7221
|
+
export interface ChatPaginatedResponse {
|
|
7222
|
+
results: Chat[];
|
|
7223
|
+
metadata: PaginationMeta;
|
|
7224
|
+
}
|
|
7225
|
+
export interface CreateChatStreamResponse {
|
|
7226
|
+
/** This is the unique identifier for the streaming response. */
|
|
7227
|
+
id: string;
|
|
7228
|
+
/**
|
|
7229
|
+
* This is the path to the content being updated.
|
|
7230
|
+
* Format: `chat.output[{contentIndex}].content` where contentIndex identifies the specific content item.
|
|
7231
|
+
* @example "chat.output[0].content"
|
|
7232
|
+
*/
|
|
7233
|
+
path: string;
|
|
7234
|
+
/** This is the incremental content chunk being streamed. */
|
|
7235
|
+
delta: string;
|
|
7236
|
+
}
|
|
7387
7237
|
export interface OpenAIResponsesRequest {
|
|
7388
7238
|
/** This is the assistant that will be used for the chat. To use an existing assistant, use `assistantId` instead. */
|
|
7389
7239
|
assistantId?: string;
|
|
@@ -7399,7 +7249,11 @@ export interface OpenAIResponsesRequest {
|
|
|
7399
7249
|
* Mutually exclusive with previousChatId.
|
|
7400
7250
|
*/
|
|
7401
7251
|
sessionId?: string;
|
|
7402
|
-
/**
|
|
7252
|
+
/**
|
|
7253
|
+
* This is the input text for the chat.
|
|
7254
|
+
* Can be a string or an array of chat messages.
|
|
7255
|
+
* This field is REQUIRED for chat creation.
|
|
7256
|
+
*/
|
|
7403
7257
|
input: string | (SystemMessage | UserMessage | AssistantMessage | ToolMessage | DeveloperMessage)[];
|
|
7404
7258
|
/**
|
|
7405
7259
|
* Whether to stream the response or not.
|
|
@@ -7413,7 +7267,136 @@ export interface OpenAIResponsesRequest {
|
|
|
7413
7267
|
*/
|
|
7414
7268
|
previousChatId?: string;
|
|
7415
7269
|
}
|
|
7416
|
-
export interface
|
|
7270
|
+
export interface ResponseOutputText {
|
|
7271
|
+
/**
|
|
7272
|
+
* Annotations in the text output
|
|
7273
|
+
* @default []
|
|
7274
|
+
*/
|
|
7275
|
+
annotations: object[];
|
|
7276
|
+
/** The text output from the model */
|
|
7277
|
+
text: string;
|
|
7278
|
+
/**
|
|
7279
|
+
* The type of the output text
|
|
7280
|
+
* @default "output_text"
|
|
7281
|
+
*/
|
|
7282
|
+
type: 'output_text';
|
|
7283
|
+
}
|
|
7284
|
+
export interface ResponseOutputMessage {
|
|
7285
|
+
/** The unique ID of the output message */
|
|
7286
|
+
id: string;
|
|
7287
|
+
/** Content of the output message */
|
|
7288
|
+
content: ResponseOutputText[];
|
|
7289
|
+
/**
|
|
7290
|
+
* The role of the output message
|
|
7291
|
+
* @default "assistant"
|
|
7292
|
+
*/
|
|
7293
|
+
role: 'assistant';
|
|
7294
|
+
/** The status of the message */
|
|
7295
|
+
status: 'in_progress' | 'completed' | 'incomplete';
|
|
7296
|
+
/**
|
|
7297
|
+
* The type of the output message
|
|
7298
|
+
* @default "message"
|
|
7299
|
+
*/
|
|
7300
|
+
type: 'message';
|
|
7301
|
+
}
|
|
7302
|
+
export interface ResponseObject {
|
|
7303
|
+
/** Unique identifier for this Response */
|
|
7304
|
+
id: string;
|
|
7305
|
+
/**
|
|
7306
|
+
* The object type
|
|
7307
|
+
* @default "response"
|
|
7308
|
+
*/
|
|
7309
|
+
object: 'response';
|
|
7310
|
+
/** Unix timestamp (in seconds) of when this Response was created */
|
|
7311
|
+
created_at: number;
|
|
7312
|
+
/** Status of the response */
|
|
7313
|
+
status: 'completed' | 'failed' | 'in_progress' | 'incomplete';
|
|
7314
|
+
/**
|
|
7315
|
+
* Error message if the response failed
|
|
7316
|
+
* @default null
|
|
7317
|
+
*/
|
|
7318
|
+
error?: string | null;
|
|
7319
|
+
/** Output messages from the model */
|
|
7320
|
+
output: ResponseOutputMessage[];
|
|
7321
|
+
}
|
|
7322
|
+
export interface ResponseTextDeltaEvent {
|
|
7323
|
+
/** Index of the content part */
|
|
7324
|
+
content_index: number;
|
|
7325
|
+
/** Text delta being added */
|
|
7326
|
+
delta: string;
|
|
7327
|
+
/** ID of the output item */
|
|
7328
|
+
item_id: string;
|
|
7329
|
+
/** Index of the output item */
|
|
7330
|
+
output_index: number;
|
|
7331
|
+
/**
|
|
7332
|
+
* Event type
|
|
7333
|
+
* @default "response.output_text.delta"
|
|
7334
|
+
*/
|
|
7335
|
+
type: 'response.output_text.delta';
|
|
7336
|
+
}
|
|
7337
|
+
export interface ResponseTextDoneEvent {
|
|
7338
|
+
/** Index of the content part */
|
|
7339
|
+
content_index: number;
|
|
7340
|
+
/** ID of the output item */
|
|
7341
|
+
item_id: string;
|
|
7342
|
+
/** Index of the output item */
|
|
7343
|
+
output_index: number;
|
|
7344
|
+
/** Complete text content */
|
|
7345
|
+
text: string;
|
|
7346
|
+
/**
|
|
7347
|
+
* Event type
|
|
7348
|
+
* @default "response.output_text.done"
|
|
7349
|
+
*/
|
|
7350
|
+
type: 'response.output_text.done';
|
|
7351
|
+
}
|
|
7352
|
+
export interface ResponseCompletedEvent {
|
|
7353
|
+
/** The completed response */
|
|
7354
|
+
response: ResponseObject;
|
|
7355
|
+
/**
|
|
7356
|
+
* Event type
|
|
7357
|
+
* @default "response.completed"
|
|
7358
|
+
*/
|
|
7359
|
+
type: 'response.completed';
|
|
7360
|
+
}
|
|
7361
|
+
export interface ResponseErrorEvent {
|
|
7362
|
+
/**
|
|
7363
|
+
* Event type
|
|
7364
|
+
* @default "error"
|
|
7365
|
+
*/
|
|
7366
|
+
type: 'error';
|
|
7367
|
+
/**
|
|
7368
|
+
* Error code
|
|
7369
|
+
* @example "ERR_SOMETHING"
|
|
7370
|
+
*/
|
|
7371
|
+
code: string;
|
|
7372
|
+
/**
|
|
7373
|
+
* Error message
|
|
7374
|
+
* @example "Something went wrong"
|
|
7375
|
+
*/
|
|
7376
|
+
message: string;
|
|
7377
|
+
/** Parameter that caused the error */
|
|
7378
|
+
param?: string | null;
|
|
7379
|
+
/**
|
|
7380
|
+
* Sequence number of the event
|
|
7381
|
+
* @example 1
|
|
7382
|
+
*/
|
|
7383
|
+
sequence_number: number;
|
|
7384
|
+
}
|
|
7385
|
+
export interface Session {
|
|
7386
|
+
/** This is the unique identifier for the session. */
|
|
7387
|
+
id: string;
|
|
7388
|
+
/** This is the unique identifier for the organization that owns this session. */
|
|
7389
|
+
orgId: string;
|
|
7390
|
+
/**
|
|
7391
|
+
* This is the ISO 8601 timestamp indicating when the session was created.
|
|
7392
|
+
* @format date-time
|
|
7393
|
+
*/
|
|
7394
|
+
createdAt: string;
|
|
7395
|
+
/**
|
|
7396
|
+
* This is the ISO 8601 timestamp indicating when the session was last updated.
|
|
7397
|
+
* @format date-time
|
|
7398
|
+
*/
|
|
7399
|
+
updatedAt: string;
|
|
7417
7400
|
/**
|
|
7418
7401
|
* This is a user-defined name for the session. Maximum length is 40 characters.
|
|
7419
7402
|
* @maxLength 40
|
|
@@ -7421,6 +7404,13 @@ export interface CreateSessionDTO {
|
|
|
7421
7404
|
name?: string;
|
|
7422
7405
|
/** This is the current status of the session. Can be either 'active' or 'completed'. */
|
|
7423
7406
|
status?: 'active' | 'completed';
|
|
7407
|
+
/**
|
|
7408
|
+
* Session expiration time in seconds. Defaults to 24 hours (86400 seconds) if not set.
|
|
7409
|
+
* @min 60
|
|
7410
|
+
* @max 2592000
|
|
7411
|
+
* @example 86400
|
|
7412
|
+
*/
|
|
7413
|
+
expirationSeconds?: number;
|
|
7424
7414
|
/** This is the ID of the assistant associated with this session. Use this when referencing an existing assistant. */
|
|
7425
7415
|
assistantId?: string;
|
|
7426
7416
|
/**
|
|
@@ -7428,7 +7418,7 @@ export interface CreateSessionDTO {
|
|
|
7428
7418
|
* If assistantId is provided, this will be ignored.
|
|
7429
7419
|
*/
|
|
7430
7420
|
assistant?: CreateAssistantDTO;
|
|
7431
|
-
/**
|
|
7421
|
+
/** This is an array of chat messages in the session. */
|
|
7432
7422
|
messages?: (SystemMessage | UserMessage | AssistantMessage | ToolMessage | DeveloperMessage)[];
|
|
7433
7423
|
/** This is the customer information associated with this session. */
|
|
7434
7424
|
customer?: CreateCustomerDTO;
|
|
@@ -7437,21 +7427,7 @@ export interface CreateSessionDTO {
|
|
|
7437
7427
|
/** This is the phone number configuration for this session. */
|
|
7438
7428
|
phoneNumber?: ImportTwilioPhoneNumberDTO;
|
|
7439
7429
|
}
|
|
7440
|
-
export interface
|
|
7441
|
-
/** This is the unique identifier for the session. */
|
|
7442
|
-
id: string;
|
|
7443
|
-
/** This is the unique identifier for the organization that owns this session. */
|
|
7444
|
-
orgId: string;
|
|
7445
|
-
/**
|
|
7446
|
-
* This is the ISO 8601 timestamp indicating when the session was created.
|
|
7447
|
-
* @format date-time
|
|
7448
|
-
*/
|
|
7449
|
-
createdAt: string;
|
|
7450
|
-
/**
|
|
7451
|
-
* This is the ISO 8601 timestamp indicating when the session was last updated.
|
|
7452
|
-
* @format date-time
|
|
7453
|
-
*/
|
|
7454
|
-
updatedAt: string;
|
|
7430
|
+
export interface CreateSessionDTO {
|
|
7455
7431
|
/**
|
|
7456
7432
|
* This is a user-defined name for the session. Maximum length is 40 characters.
|
|
7457
7433
|
* @maxLength 40
|
|
@@ -7459,6 +7435,13 @@ export interface Session {
|
|
|
7459
7435
|
name?: string;
|
|
7460
7436
|
/** This is the current status of the session. Can be either 'active' or 'completed'. */
|
|
7461
7437
|
status?: 'active' | 'completed';
|
|
7438
|
+
/**
|
|
7439
|
+
* Session expiration time in seconds. Defaults to 24 hours (86400 seconds) if not set.
|
|
7440
|
+
* @min 60
|
|
7441
|
+
* @max 2592000
|
|
7442
|
+
* @example 86400
|
|
7443
|
+
*/
|
|
7444
|
+
expirationSeconds?: number;
|
|
7462
7445
|
/** This is the ID of the assistant associated with this session. Use this when referencing an existing assistant. */
|
|
7463
7446
|
assistantId?: string;
|
|
7464
7447
|
/**
|
|
@@ -7466,7 +7449,7 @@ export interface Session {
|
|
|
7466
7449
|
* If assistantId is provided, this will be ignored.
|
|
7467
7450
|
*/
|
|
7468
7451
|
assistant?: CreateAssistantDTO;
|
|
7469
|
-
/**
|
|
7452
|
+
/** This is an array of chat messages in the session. */
|
|
7470
7453
|
messages?: (SystemMessage | UserMessage | AssistantMessage | ToolMessage | DeveloperMessage)[];
|
|
7471
7454
|
/** This is the customer information associated with this session. */
|
|
7472
7455
|
customer?: CreateCustomerDTO;
|
|
@@ -7475,10 +7458,6 @@ export interface Session {
|
|
|
7475
7458
|
/** This is the phone number configuration for this session. */
|
|
7476
7459
|
phoneNumber?: ImportTwilioPhoneNumberDTO;
|
|
7477
7460
|
}
|
|
7478
|
-
export interface SessionPaginatedResponse {
|
|
7479
|
-
results: Session[];
|
|
7480
|
-
metadata: PaginationMeta;
|
|
7481
|
-
}
|
|
7482
7461
|
export interface UpdateSessionDTO {
|
|
7483
7462
|
/**
|
|
7484
7463
|
* This is the new name for the session. Maximum length is 40 characters.
|
|
@@ -7487,24 +7466,96 @@ export interface UpdateSessionDTO {
|
|
|
7487
7466
|
name?: string;
|
|
7488
7467
|
/** This is the new status for the session. */
|
|
7489
7468
|
status?: 'active' | 'completed';
|
|
7490
|
-
/**
|
|
7469
|
+
/**
|
|
7470
|
+
* Session expiration time in seconds. Defaults to 24 hours (86400 seconds) if not set.
|
|
7471
|
+
* @min 60
|
|
7472
|
+
* @max 2592000
|
|
7473
|
+
* @example 86400
|
|
7474
|
+
*/
|
|
7475
|
+
expirationSeconds?: number;
|
|
7476
|
+
/** This is the updated array of chat messages. */
|
|
7491
7477
|
messages?: (SystemMessage | UserMessage | AssistantMessage | ToolMessage | DeveloperMessage)[];
|
|
7492
7478
|
}
|
|
7493
|
-
export interface
|
|
7494
|
-
/**
|
|
7495
|
-
|
|
7496
|
-
/**
|
|
7497
|
-
|
|
7498
|
-
/**
|
|
7499
|
-
|
|
7479
|
+
export interface GetSessionPaginatedDTO {
|
|
7480
|
+
/** This is the name of the session to filter by. */
|
|
7481
|
+
name?: string;
|
|
7482
|
+
/** This is the ID of the assistant to filter sessions by. */
|
|
7483
|
+
assistantId?: string;
|
|
7484
|
+
/** This is the ID of the workflow to filter sessions by. */
|
|
7485
|
+
workflowId?: string;
|
|
7500
7486
|
/**
|
|
7501
|
-
* This is the
|
|
7502
|
-
*
|
|
7503
|
-
* If unspecified, assistant will wait for user to speak and use the model to respond once they speak.
|
|
7504
|
-
* @example "Hello! How can I help you today?"
|
|
7487
|
+
* This is the page number to return. Defaults to 1.
|
|
7488
|
+
* @min 1
|
|
7505
7489
|
*/
|
|
7506
|
-
|
|
7507
|
-
/**
|
|
7490
|
+
page?: number;
|
|
7491
|
+
/** This is the sort order for pagination. Defaults to 'DESC'. */
|
|
7492
|
+
sortOrder?: 'ASC' | 'DESC';
|
|
7493
|
+
/**
|
|
7494
|
+
* This is the maximum number of items to return. Defaults to 100.
|
|
7495
|
+
* @min 0
|
|
7496
|
+
* @max 1000
|
|
7497
|
+
*/
|
|
7498
|
+
limit?: number;
|
|
7499
|
+
/**
|
|
7500
|
+
* This will return items where the createdAt is greater than the specified value.
|
|
7501
|
+
* @format date-time
|
|
7502
|
+
*/
|
|
7503
|
+
createdAtGt?: string;
|
|
7504
|
+
/**
|
|
7505
|
+
* This will return items where the createdAt is less than the specified value.
|
|
7506
|
+
* @format date-time
|
|
7507
|
+
*/
|
|
7508
|
+
createdAtLt?: string;
|
|
7509
|
+
/**
|
|
7510
|
+
* This will return items where the createdAt is greater than or equal to the specified value.
|
|
7511
|
+
* @format date-time
|
|
7512
|
+
*/
|
|
7513
|
+
createdAtGe?: string;
|
|
7514
|
+
/**
|
|
7515
|
+
* This will return items where the createdAt is less than or equal to the specified value.
|
|
7516
|
+
* @format date-time
|
|
7517
|
+
*/
|
|
7518
|
+
createdAtLe?: string;
|
|
7519
|
+
/**
|
|
7520
|
+
* This will return items where the updatedAt is greater than the specified value.
|
|
7521
|
+
* @format date-time
|
|
7522
|
+
*/
|
|
7523
|
+
updatedAtGt?: string;
|
|
7524
|
+
/**
|
|
7525
|
+
* This will return items where the updatedAt is less than the specified value.
|
|
7526
|
+
* @format date-time
|
|
7527
|
+
*/
|
|
7528
|
+
updatedAtLt?: string;
|
|
7529
|
+
/**
|
|
7530
|
+
* This will return items where the updatedAt is greater than or equal to the specified value.
|
|
7531
|
+
* @format date-time
|
|
7532
|
+
*/
|
|
7533
|
+
updatedAtGe?: string;
|
|
7534
|
+
/**
|
|
7535
|
+
* This will return items where the updatedAt is less than or equal to the specified value.
|
|
7536
|
+
* @format date-time
|
|
7537
|
+
*/
|
|
7538
|
+
updatedAtLe?: string;
|
|
7539
|
+
}
|
|
7540
|
+
export interface SessionPaginatedResponse {
|
|
7541
|
+
results: Session[];
|
|
7542
|
+
metadata: PaginationMeta;
|
|
7543
|
+
}
|
|
7544
|
+
export interface Assistant {
|
|
7545
|
+
/** These are the options for the assistant's transcriber. */
|
|
7546
|
+
transcriber?: AssemblyAITranscriber | AzureSpeechTranscriber | CustomTranscriber | DeepgramTranscriber | ElevenLabsTranscriber | GladiaTranscriber | GoogleTranscriber | SpeechmaticsTranscriber | TalkscriberTranscriber | OpenAITranscriber;
|
|
7547
|
+
/** These are the options for the assistant's LLM. */
|
|
7548
|
+
model?: AnthropicModel | AnyscaleModel | CerebrasModel | CustomLLMModel | DeepInfraModel | DeepSeekModel | GoogleModel | GroqModel | InflectionAIModel | OpenAIModel | OpenRouterModel | PerplexityAIModel | TogetherAIModel | XaiModel;
|
|
7549
|
+
/** These are the options for the assistant's voice. */
|
|
7550
|
+
voice?: AzureVoice | CartesiaVoice | CustomVoice | DeepgramVoice | ElevenLabsVoice | HumeVoice | LMNTVoice | NeuphonicVoice | OpenAIVoice | PlayHTVoice | RimeAIVoice | SmallestAIVoice | TavusVoice | VapiVoice | SesameVoice;
|
|
7551
|
+
/**
|
|
7552
|
+
* This is the first message that the assistant will say. This can also be a URL to a containerized audio file (mp3, wav, etc.).
|
|
7553
|
+
*
|
|
7554
|
+
* If unspecified, assistant will wait for user to speak and use the model to respond once they speak.
|
|
7555
|
+
* @example "Hello! How can I help you today?"
|
|
7556
|
+
*/
|
|
7557
|
+
firstMessage?: string;
|
|
7558
|
+
/** @default false */
|
|
7508
7559
|
firstMessageInterruptionsEnabled?: boolean;
|
|
7509
7560
|
/**
|
|
7510
7561
|
* This is the mode for the first message. Default is 'assistant-speaks-first'.
|
|
@@ -9140,17 +9191,6 @@ export interface PhoneNumberPaginatedResponse {
|
|
|
9140
9191
|
metadata: PaginationMeta;
|
|
9141
9192
|
}
|
|
9142
9193
|
export interface DtmfTool {
|
|
9143
|
-
/**
|
|
9144
|
-
* This determines if the tool is async.
|
|
9145
|
-
*
|
|
9146
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
9147
|
-
*
|
|
9148
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
9149
|
-
*
|
|
9150
|
-
* Defaults to synchronous (`false`).
|
|
9151
|
-
* @example false
|
|
9152
|
-
*/
|
|
9153
|
-
async?: boolean;
|
|
9154
9194
|
/**
|
|
9155
9195
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
9156
9196
|
*
|
|
@@ -9181,27 +9221,8 @@ export interface DtmfTool {
|
|
|
9181
9221
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
9182
9222
|
*/
|
|
9183
9223
|
function?: OpenAIFunction;
|
|
9184
|
-
/**
|
|
9185
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
9186
|
-
*
|
|
9187
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
9188
|
-
*
|
|
9189
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
9190
|
-
*/
|
|
9191
|
-
server?: Server;
|
|
9192
9224
|
}
|
|
9193
9225
|
export interface EndCallTool {
|
|
9194
|
-
/**
|
|
9195
|
-
* This determines if the tool is async.
|
|
9196
|
-
*
|
|
9197
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
9198
|
-
*
|
|
9199
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
9200
|
-
*
|
|
9201
|
-
* Defaults to synchronous (`false`).
|
|
9202
|
-
* @example false
|
|
9203
|
-
*/
|
|
9204
|
-
async?: boolean;
|
|
9205
9226
|
/**
|
|
9206
9227
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
9207
9228
|
*
|
|
@@ -9232,35 +9253,39 @@ export interface EndCallTool {
|
|
|
9232
9253
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
9233
9254
|
*/
|
|
9234
9255
|
function?: OpenAIFunction;
|
|
9256
|
+
}
|
|
9257
|
+
export interface FunctionTool {
|
|
9235
9258
|
/**
|
|
9236
|
-
*
|
|
9237
|
-
*
|
|
9238
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
9259
|
+
* These are the messages that will be spoken to the user as the tool is running.
|
|
9239
9260
|
*
|
|
9240
|
-
*
|
|
9261
|
+
* For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
|
|
9241
9262
|
*/
|
|
9242
|
-
|
|
9243
|
-
|
|
9244
|
-
|
|
9263
|
+
messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
|
|
9264
|
+
/** The type of tool. "function" for Function tool. */
|
|
9265
|
+
type: 'function';
|
|
9245
9266
|
/**
|
|
9246
9267
|
* This determines if the tool is async.
|
|
9247
9268
|
*
|
|
9248
|
-
*
|
|
9269
|
+
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
9249
9270
|
*
|
|
9250
|
-
*
|
|
9271
|
+
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
9251
9272
|
*
|
|
9252
|
-
*
|
|
9273
|
+
* Defaults to synchronous (`false`).
|
|
9253
9274
|
* @example false
|
|
9254
9275
|
*/
|
|
9255
9276
|
async?: boolean;
|
|
9256
9277
|
/**
|
|
9257
|
-
* These are the messages that will be spoken to the user as the tool is running.
|
|
9258
9278
|
*
|
|
9259
|
-
*
|
|
9279
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
9280
|
+
*
|
|
9281
|
+
* Notes:
|
|
9282
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
9283
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
9284
|
+
* - Webhook contains the variables set on the assistant.
|
|
9285
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
9286
|
+
* - Webhook expects a response with tool call result.
|
|
9260
9287
|
*/
|
|
9261
|
-
|
|
9262
|
-
/** The type of tool. "function" for Function tool. */
|
|
9263
|
-
type: 'function';
|
|
9288
|
+
server?: Server;
|
|
9264
9289
|
/** This is the unique identifier for the tool. */
|
|
9265
9290
|
id: string;
|
|
9266
9291
|
/** This is the unique identifier for the organization that this tool belongs to. */
|
|
@@ -9283,27 +9308,8 @@ export interface FunctionTool {
|
|
|
9283
9308
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
9284
9309
|
*/
|
|
9285
9310
|
function?: OpenAIFunction;
|
|
9286
|
-
/**
|
|
9287
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
9288
|
-
*
|
|
9289
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
9290
|
-
*
|
|
9291
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
9292
|
-
*/
|
|
9293
|
-
server?: Server;
|
|
9294
9311
|
}
|
|
9295
9312
|
export interface GhlTool {
|
|
9296
|
-
/**
|
|
9297
|
-
* This determines if the tool is async.
|
|
9298
|
-
*
|
|
9299
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
9300
|
-
*
|
|
9301
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
9302
|
-
*
|
|
9303
|
-
* Defaults to synchronous (`false`).
|
|
9304
|
-
* @example false
|
|
9305
|
-
*/
|
|
9306
|
-
async?: boolean;
|
|
9307
9313
|
/**
|
|
9308
9314
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
9309
9315
|
*
|
|
@@ -9334,28 +9340,9 @@ export interface GhlTool {
|
|
|
9334
9340
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
9335
9341
|
*/
|
|
9336
9342
|
function?: OpenAIFunction;
|
|
9337
|
-
/**
|
|
9338
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
9339
|
-
*
|
|
9340
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
9341
|
-
*
|
|
9342
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
9343
|
-
*/
|
|
9344
|
-
server?: Server;
|
|
9345
9343
|
metadata: GhlToolMetadata;
|
|
9346
9344
|
}
|
|
9347
9345
|
export interface MakeTool {
|
|
9348
|
-
/**
|
|
9349
|
-
* This determines if the tool is async.
|
|
9350
|
-
*
|
|
9351
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
9352
|
-
*
|
|
9353
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
9354
|
-
*
|
|
9355
|
-
* Defaults to synchronous (`false`).
|
|
9356
|
-
* @example false
|
|
9357
|
-
*/
|
|
9358
|
-
async?: boolean;
|
|
9359
9346
|
/**
|
|
9360
9347
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
9361
9348
|
*
|
|
@@ -9386,28 +9373,9 @@ export interface MakeTool {
|
|
|
9386
9373
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
9387
9374
|
*/
|
|
9388
9375
|
function?: OpenAIFunction;
|
|
9389
|
-
/**
|
|
9390
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
9391
|
-
*
|
|
9392
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
9393
|
-
*
|
|
9394
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
9395
|
-
*/
|
|
9396
|
-
server?: Server;
|
|
9397
9376
|
metadata: MakeToolMetadata;
|
|
9398
9377
|
}
|
|
9399
9378
|
export interface TransferCallTool {
|
|
9400
|
-
/**
|
|
9401
|
-
* This determines if the tool is async.
|
|
9402
|
-
*
|
|
9403
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
9404
|
-
*
|
|
9405
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
9406
|
-
*
|
|
9407
|
-
* Defaults to synchronous (`false`).
|
|
9408
|
-
* @example false
|
|
9409
|
-
*/
|
|
9410
|
-
async?: boolean;
|
|
9411
9379
|
/**
|
|
9412
9380
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
9413
9381
|
*
|
|
@@ -9439,27 +9407,8 @@ export interface TransferCallTool {
|
|
|
9439
9407
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
9440
9408
|
*/
|
|
9441
9409
|
function?: OpenAIFunction;
|
|
9442
|
-
/**
|
|
9443
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
9444
|
-
*
|
|
9445
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
9446
|
-
*
|
|
9447
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
9448
|
-
*/
|
|
9449
|
-
server?: Server;
|
|
9450
9410
|
}
|
|
9451
9411
|
export interface OutputTool {
|
|
9452
|
-
/**
|
|
9453
|
-
* This determines if the tool is async.
|
|
9454
|
-
*
|
|
9455
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
9456
|
-
*
|
|
9457
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
9458
|
-
*
|
|
9459
|
-
* Defaults to synchronous (`false`).
|
|
9460
|
-
* @example false
|
|
9461
|
-
*/
|
|
9462
|
-
async?: boolean;
|
|
9463
9412
|
/**
|
|
9464
9413
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
9465
9414
|
*
|
|
@@ -9490,27 +9439,8 @@ export interface OutputTool {
|
|
|
9490
9439
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
9491
9440
|
*/
|
|
9492
9441
|
function?: OpenAIFunction;
|
|
9493
|
-
/**
|
|
9494
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
9495
|
-
*
|
|
9496
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
9497
|
-
*
|
|
9498
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
9499
|
-
*/
|
|
9500
|
-
server?: Server;
|
|
9501
9442
|
}
|
|
9502
9443
|
export interface BashTool {
|
|
9503
|
-
/**
|
|
9504
|
-
* This determines if the tool is async.
|
|
9505
|
-
*
|
|
9506
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
9507
|
-
*
|
|
9508
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
9509
|
-
*
|
|
9510
|
-
* Defaults to synchronous (`false`).
|
|
9511
|
-
* @example false
|
|
9512
|
-
*/
|
|
9513
|
-
async?: boolean;
|
|
9514
9444
|
/**
|
|
9515
9445
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
9516
9446
|
*
|
|
@@ -9521,6 +9451,18 @@ export interface BashTool {
|
|
|
9521
9451
|
type: 'bash';
|
|
9522
9452
|
/** The sub type of tool. */
|
|
9523
9453
|
subType: 'bash_20241022';
|
|
9454
|
+
/**
|
|
9455
|
+
*
|
|
9456
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
9457
|
+
*
|
|
9458
|
+
* Notes:
|
|
9459
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
9460
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
9461
|
+
* - Webhook contains the variables set on the assistant.
|
|
9462
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
9463
|
+
* - Webhook expects a response with tool call result.
|
|
9464
|
+
*/
|
|
9465
|
+
server?: Server;
|
|
9524
9466
|
/** This is the unique identifier for the tool. */
|
|
9525
9467
|
id: string;
|
|
9526
9468
|
/** This is the unique identifier for the organization that this tool belongs to. */
|
|
@@ -9543,14 +9485,6 @@ export interface BashTool {
|
|
|
9543
9485
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
9544
9486
|
*/
|
|
9545
9487
|
function?: OpenAIFunction;
|
|
9546
|
-
/**
|
|
9547
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
9548
|
-
*
|
|
9549
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
9550
|
-
*
|
|
9551
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
9552
|
-
*/
|
|
9553
|
-
server?: Server;
|
|
9554
9488
|
/**
|
|
9555
9489
|
* The name of the tool, fixed to 'bash'
|
|
9556
9490
|
* @default "bash"
|
|
@@ -9558,17 +9492,6 @@ export interface BashTool {
|
|
|
9558
9492
|
name: 'bash';
|
|
9559
9493
|
}
|
|
9560
9494
|
export interface ComputerTool {
|
|
9561
|
-
/**
|
|
9562
|
-
* This determines if the tool is async.
|
|
9563
|
-
*
|
|
9564
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
9565
|
-
*
|
|
9566
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
9567
|
-
*
|
|
9568
|
-
* Defaults to synchronous (`false`).
|
|
9569
|
-
* @example false
|
|
9570
|
-
*/
|
|
9571
|
-
async?: boolean;
|
|
9572
9495
|
/**
|
|
9573
9496
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
9574
9497
|
*
|
|
@@ -9579,6 +9502,18 @@ export interface ComputerTool {
|
|
|
9579
9502
|
type: 'computer';
|
|
9580
9503
|
/** The sub type of tool. */
|
|
9581
9504
|
subType: 'computer_20241022';
|
|
9505
|
+
/**
|
|
9506
|
+
*
|
|
9507
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
9508
|
+
*
|
|
9509
|
+
* Notes:
|
|
9510
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
9511
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
9512
|
+
* - Webhook contains the variables set on the assistant.
|
|
9513
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
9514
|
+
* - Webhook expects a response with tool call result.
|
|
9515
|
+
*/
|
|
9516
|
+
server?: Server;
|
|
9582
9517
|
/** This is the unique identifier for the tool. */
|
|
9583
9518
|
id: string;
|
|
9584
9519
|
/** This is the unique identifier for the organization that this tool belongs to. */
|
|
@@ -9601,14 +9536,6 @@ export interface ComputerTool {
|
|
|
9601
9536
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
9602
9537
|
*/
|
|
9603
9538
|
function?: OpenAIFunction;
|
|
9604
|
-
/**
|
|
9605
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
9606
|
-
*
|
|
9607
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
9608
|
-
*
|
|
9609
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
9610
|
-
*/
|
|
9611
|
-
server?: Server;
|
|
9612
9539
|
/**
|
|
9613
9540
|
* The name of the tool, fixed to 'computer'
|
|
9614
9541
|
* @default "computer"
|
|
@@ -9622,17 +9549,6 @@ export interface ComputerTool {
|
|
|
9622
9549
|
displayNumber?: number;
|
|
9623
9550
|
}
|
|
9624
9551
|
export interface TextEditorTool {
|
|
9625
|
-
/**
|
|
9626
|
-
* This determines if the tool is async.
|
|
9627
|
-
*
|
|
9628
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
9629
|
-
*
|
|
9630
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
9631
|
-
*
|
|
9632
|
-
* Defaults to synchronous (`false`).
|
|
9633
|
-
* @example false
|
|
9634
|
-
*/
|
|
9635
|
-
async?: boolean;
|
|
9636
9552
|
/**
|
|
9637
9553
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
9638
9554
|
*
|
|
@@ -9643,6 +9559,18 @@ export interface TextEditorTool {
|
|
|
9643
9559
|
type: 'textEditor';
|
|
9644
9560
|
/** The sub type of tool. */
|
|
9645
9561
|
subType: 'text_editor_20241022';
|
|
9562
|
+
/**
|
|
9563
|
+
*
|
|
9564
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
9565
|
+
*
|
|
9566
|
+
* Notes:
|
|
9567
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
9568
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
9569
|
+
* - Webhook contains the variables set on the assistant.
|
|
9570
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
9571
|
+
* - Webhook expects a response with tool call result.
|
|
9572
|
+
*/
|
|
9573
|
+
server?: Server;
|
|
9646
9574
|
/** This is the unique identifier for the tool. */
|
|
9647
9575
|
id: string;
|
|
9648
9576
|
/** This is the unique identifier for the organization that this tool belongs to. */
|
|
@@ -9665,14 +9593,6 @@ export interface TextEditorTool {
|
|
|
9665
9593
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
9666
9594
|
*/
|
|
9667
9595
|
function?: OpenAIFunction;
|
|
9668
|
-
/**
|
|
9669
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
9670
|
-
*
|
|
9671
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
9672
|
-
*
|
|
9673
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
9674
|
-
*/
|
|
9675
|
-
server?: Server;
|
|
9676
9596
|
/**
|
|
9677
9597
|
* The name of the tool, fixed to 'str_replace_editor'
|
|
9678
9598
|
* @default "str_replace_editor"
|
|
@@ -9680,17 +9600,6 @@ export interface TextEditorTool {
|
|
|
9680
9600
|
name: 'str_replace_editor';
|
|
9681
9601
|
}
|
|
9682
9602
|
export interface QueryTool {
|
|
9683
|
-
/**
|
|
9684
|
-
* This determines if the tool is async.
|
|
9685
|
-
*
|
|
9686
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
9687
|
-
*
|
|
9688
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
9689
|
-
*
|
|
9690
|
-
* Defaults to synchronous (`false`).
|
|
9691
|
-
* @example false
|
|
9692
|
-
*/
|
|
9693
|
-
async?: boolean;
|
|
9694
9603
|
/**
|
|
9695
9604
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
9696
9605
|
*
|
|
@@ -9723,27 +9632,8 @@ export interface QueryTool {
|
|
|
9723
9632
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
9724
9633
|
*/
|
|
9725
9634
|
function?: OpenAIFunction;
|
|
9726
|
-
/**
|
|
9727
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
9728
|
-
*
|
|
9729
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
9730
|
-
*
|
|
9731
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
9732
|
-
*/
|
|
9733
|
-
server?: Server;
|
|
9734
9635
|
}
|
|
9735
9636
|
export interface GoogleCalendarCreateEventTool {
|
|
9736
|
-
/**
|
|
9737
|
-
* This determines if the tool is async.
|
|
9738
|
-
*
|
|
9739
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
9740
|
-
*
|
|
9741
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
9742
|
-
*
|
|
9743
|
-
* Defaults to synchronous (`false`).
|
|
9744
|
-
* @example false
|
|
9745
|
-
*/
|
|
9746
|
-
async?: boolean;
|
|
9747
9637
|
/**
|
|
9748
9638
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
9749
9639
|
*
|
|
@@ -9774,27 +9664,8 @@ export interface GoogleCalendarCreateEventTool {
|
|
|
9774
9664
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
9775
9665
|
*/
|
|
9776
9666
|
function?: OpenAIFunction;
|
|
9777
|
-
/**
|
|
9778
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
9779
|
-
*
|
|
9780
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
9781
|
-
*
|
|
9782
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
9783
|
-
*/
|
|
9784
|
-
server?: Server;
|
|
9785
9667
|
}
|
|
9786
9668
|
export interface GoogleSheetsRowAppendTool {
|
|
9787
|
-
/**
|
|
9788
|
-
* This determines if the tool is async.
|
|
9789
|
-
*
|
|
9790
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
9791
|
-
*
|
|
9792
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
9793
|
-
*
|
|
9794
|
-
* Defaults to synchronous (`false`).
|
|
9795
|
-
* @example false
|
|
9796
|
-
*/
|
|
9797
|
-
async?: boolean;
|
|
9798
9669
|
/**
|
|
9799
9670
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
9800
9671
|
*
|
|
@@ -9825,27 +9696,8 @@ export interface GoogleSheetsRowAppendTool {
|
|
|
9825
9696
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
9826
9697
|
*/
|
|
9827
9698
|
function?: OpenAIFunction;
|
|
9828
|
-
/**
|
|
9829
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
9830
|
-
*
|
|
9831
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
9832
|
-
*
|
|
9833
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
9834
|
-
*/
|
|
9835
|
-
server?: Server;
|
|
9836
9699
|
}
|
|
9837
9700
|
export interface GoogleCalendarCheckAvailabilityTool {
|
|
9838
|
-
/**
|
|
9839
|
-
* This determines if the tool is async.
|
|
9840
|
-
*
|
|
9841
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
9842
|
-
*
|
|
9843
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
9844
|
-
*
|
|
9845
|
-
* Defaults to synchronous (`false`).
|
|
9846
|
-
* @example false
|
|
9847
|
-
*/
|
|
9848
|
-
async?: boolean;
|
|
9849
9701
|
/**
|
|
9850
9702
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
9851
9703
|
*
|
|
@@ -9876,31 +9728,12 @@ export interface GoogleCalendarCheckAvailabilityTool {
|
|
|
9876
9728
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
9877
9729
|
*/
|
|
9878
9730
|
function?: OpenAIFunction;
|
|
9879
|
-
/**
|
|
9880
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
9881
|
-
*
|
|
9882
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
9883
|
-
*
|
|
9884
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
9885
|
-
*/
|
|
9886
|
-
server?: Server;
|
|
9887
9731
|
}
|
|
9888
9732
|
export interface SlackSendMessageTool {
|
|
9889
9733
|
/**
|
|
9890
|
-
*
|
|
9891
|
-
*
|
|
9892
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
9893
|
-
*
|
|
9894
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
9734
|
+
* These are the messages that will be spoken to the user as the tool is running.
|
|
9895
9735
|
*
|
|
9896
|
-
*
|
|
9897
|
-
* @example false
|
|
9898
|
-
*/
|
|
9899
|
-
async?: boolean;
|
|
9900
|
-
/**
|
|
9901
|
-
* These are the messages that will be spoken to the user as the tool is running.
|
|
9902
|
-
*
|
|
9903
|
-
* For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
|
|
9736
|
+
* For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
|
|
9904
9737
|
*/
|
|
9905
9738
|
messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
|
|
9906
9739
|
/** The type of tool. "slack.message.send" for Slack send message tool. */
|
|
@@ -9927,27 +9760,8 @@ export interface SlackSendMessageTool {
|
|
|
9927
9760
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
9928
9761
|
*/
|
|
9929
9762
|
function?: OpenAIFunction;
|
|
9930
|
-
/**
|
|
9931
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
9932
|
-
*
|
|
9933
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
9934
|
-
*
|
|
9935
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
9936
|
-
*/
|
|
9937
|
-
server?: Server;
|
|
9938
9763
|
}
|
|
9939
9764
|
export interface SmsTool {
|
|
9940
|
-
/**
|
|
9941
|
-
* This determines if the tool is async.
|
|
9942
|
-
*
|
|
9943
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
9944
|
-
*
|
|
9945
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
9946
|
-
*
|
|
9947
|
-
* Defaults to synchronous (`false`).
|
|
9948
|
-
* @example false
|
|
9949
|
-
*/
|
|
9950
|
-
async?: boolean;
|
|
9951
9765
|
/**
|
|
9952
9766
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
9953
9767
|
*
|
|
@@ -9978,27 +9792,8 @@ export interface SmsTool {
|
|
|
9978
9792
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
9979
9793
|
*/
|
|
9980
9794
|
function?: OpenAIFunction;
|
|
9981
|
-
/**
|
|
9982
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
9983
|
-
*
|
|
9984
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
9985
|
-
*
|
|
9986
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
9987
|
-
*/
|
|
9988
|
-
server?: Server;
|
|
9989
9795
|
}
|
|
9990
9796
|
export interface McpTool {
|
|
9991
|
-
/**
|
|
9992
|
-
* This determines if the tool is async.
|
|
9993
|
-
*
|
|
9994
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
9995
|
-
*
|
|
9996
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
9997
|
-
*
|
|
9998
|
-
* Defaults to synchronous (`false`).
|
|
9999
|
-
* @example false
|
|
10000
|
-
*/
|
|
10001
|
-
async?: boolean;
|
|
10002
9797
|
/**
|
|
10003
9798
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10004
9799
|
*
|
|
@@ -10007,6 +9802,18 @@ export interface McpTool {
|
|
|
10007
9802
|
messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
|
|
10008
9803
|
/** The type of tool. "mcp" for MCP tool. */
|
|
10009
9804
|
type: 'mcp';
|
|
9805
|
+
/**
|
|
9806
|
+
*
|
|
9807
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
9808
|
+
*
|
|
9809
|
+
* Notes:
|
|
9810
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
9811
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
9812
|
+
* - Webhook contains the variables set on the assistant.
|
|
9813
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
9814
|
+
* - Webhook expects a response with tool call result.
|
|
9815
|
+
*/
|
|
9816
|
+
server?: Server;
|
|
10010
9817
|
/** This is the unique identifier for the tool. */
|
|
10011
9818
|
id: string;
|
|
10012
9819
|
/** This is the unique identifier for the organization that this tool belongs to. */
|
|
@@ -10029,27 +9836,8 @@ export interface McpTool {
|
|
|
10029
9836
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10030
9837
|
*/
|
|
10031
9838
|
function?: OpenAIFunction;
|
|
10032
|
-
/**
|
|
10033
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10034
|
-
*
|
|
10035
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10036
|
-
*
|
|
10037
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10038
|
-
*/
|
|
10039
|
-
server?: Server;
|
|
10040
9839
|
}
|
|
10041
9840
|
export interface GoHighLevelCalendarAvailabilityTool {
|
|
10042
|
-
/**
|
|
10043
|
-
* This determines if the tool is async.
|
|
10044
|
-
*
|
|
10045
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10046
|
-
*
|
|
10047
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10048
|
-
*
|
|
10049
|
-
* Defaults to synchronous (`false`).
|
|
10050
|
-
* @example false
|
|
10051
|
-
*/
|
|
10052
|
-
async?: boolean;
|
|
10053
9841
|
/**
|
|
10054
9842
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10055
9843
|
*
|
|
@@ -10080,27 +9868,8 @@ export interface GoHighLevelCalendarAvailabilityTool {
|
|
|
10080
9868
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10081
9869
|
*/
|
|
10082
9870
|
function?: OpenAIFunction;
|
|
10083
|
-
/**
|
|
10084
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10085
|
-
*
|
|
10086
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10087
|
-
*
|
|
10088
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10089
|
-
*/
|
|
10090
|
-
server?: Server;
|
|
10091
9871
|
}
|
|
10092
9872
|
export interface GoHighLevelCalendarEventCreateTool {
|
|
10093
|
-
/**
|
|
10094
|
-
* This determines if the tool is async.
|
|
10095
|
-
*
|
|
10096
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10097
|
-
*
|
|
10098
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10099
|
-
*
|
|
10100
|
-
* Defaults to synchronous (`false`).
|
|
10101
|
-
* @example false
|
|
10102
|
-
*/
|
|
10103
|
-
async?: boolean;
|
|
10104
9873
|
/**
|
|
10105
9874
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10106
9875
|
*
|
|
@@ -10131,27 +9900,8 @@ export interface GoHighLevelCalendarEventCreateTool {
|
|
|
10131
9900
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10132
9901
|
*/
|
|
10133
9902
|
function?: OpenAIFunction;
|
|
10134
|
-
/**
|
|
10135
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10136
|
-
*
|
|
10137
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10138
|
-
*
|
|
10139
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10140
|
-
*/
|
|
10141
|
-
server?: Server;
|
|
10142
9903
|
}
|
|
10143
9904
|
export interface GoHighLevelContactCreateTool {
|
|
10144
|
-
/**
|
|
10145
|
-
* This determines if the tool is async.
|
|
10146
|
-
*
|
|
10147
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10148
|
-
*
|
|
10149
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10150
|
-
*
|
|
10151
|
-
* Defaults to synchronous (`false`).
|
|
10152
|
-
* @example false
|
|
10153
|
-
*/
|
|
10154
|
-
async?: boolean;
|
|
10155
9905
|
/**
|
|
10156
9906
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10157
9907
|
*
|
|
@@ -10182,27 +9932,8 @@ export interface GoHighLevelContactCreateTool {
|
|
|
10182
9932
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10183
9933
|
*/
|
|
10184
9934
|
function?: OpenAIFunction;
|
|
10185
|
-
/**
|
|
10186
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10187
|
-
*
|
|
10188
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10189
|
-
*
|
|
10190
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10191
|
-
*/
|
|
10192
|
-
server?: Server;
|
|
10193
9935
|
}
|
|
10194
9936
|
export interface GoHighLevelContactGetTool {
|
|
10195
|
-
/**
|
|
10196
|
-
* This determines if the tool is async.
|
|
10197
|
-
*
|
|
10198
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10199
|
-
*
|
|
10200
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10201
|
-
*
|
|
10202
|
-
* Defaults to synchronous (`false`).
|
|
10203
|
-
* @example false
|
|
10204
|
-
*/
|
|
10205
|
-
async?: boolean;
|
|
10206
9937
|
/**
|
|
10207
9938
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10208
9939
|
*
|
|
@@ -10233,27 +9964,8 @@ export interface GoHighLevelContactGetTool {
|
|
|
10233
9964
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10234
9965
|
*/
|
|
10235
9966
|
function?: OpenAIFunction;
|
|
10236
|
-
/**
|
|
10237
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10238
|
-
*
|
|
10239
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10240
|
-
*
|
|
10241
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10242
|
-
*/
|
|
10243
|
-
server?: Server;
|
|
10244
9967
|
}
|
|
10245
9968
|
export interface CreateApiRequestToolDTO {
|
|
10246
|
-
/**
|
|
10247
|
-
* This determines if the tool is async.
|
|
10248
|
-
*
|
|
10249
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10250
|
-
*
|
|
10251
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10252
|
-
*
|
|
10253
|
-
* Defaults to synchronous (`false`).
|
|
10254
|
-
* @example false
|
|
10255
|
-
*/
|
|
10256
|
-
async?: boolean;
|
|
10257
9969
|
/**
|
|
10258
9970
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10259
9971
|
*
|
|
@@ -10285,7 +9997,7 @@ export interface CreateApiRequestToolDTO {
|
|
|
10285
9997
|
/** This is where the request will be sent. */
|
|
10286
9998
|
url: string;
|
|
10287
9999
|
/** This is the body of the request. */
|
|
10288
|
-
body
|
|
10000
|
+
body?: JsonSchema;
|
|
10289
10001
|
/** These are the headers to send in the request. */
|
|
10290
10002
|
headers?: JsonSchema;
|
|
10291
10003
|
/**
|
|
@@ -10302,27 +10014,8 @@ export interface CreateApiRequestToolDTO {
|
|
|
10302
10014
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10303
10015
|
*/
|
|
10304
10016
|
function?: OpenAIFunction;
|
|
10305
|
-
/**
|
|
10306
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10307
|
-
*
|
|
10308
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10309
|
-
*
|
|
10310
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10311
|
-
*/
|
|
10312
|
-
server?: Server;
|
|
10313
10017
|
}
|
|
10314
10018
|
export interface CreateOutputToolDTO {
|
|
10315
|
-
/**
|
|
10316
|
-
* This determines if the tool is async.
|
|
10317
|
-
*
|
|
10318
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10319
|
-
*
|
|
10320
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10321
|
-
*
|
|
10322
|
-
* Defaults to synchronous (`false`).
|
|
10323
|
-
* @example false
|
|
10324
|
-
*/
|
|
10325
|
-
async?: boolean;
|
|
10326
10019
|
/**
|
|
10327
10020
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10328
10021
|
*
|
|
@@ -10339,27 +10032,8 @@ export interface CreateOutputToolDTO {
|
|
|
10339
10032
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10340
10033
|
*/
|
|
10341
10034
|
function?: OpenAIFunction;
|
|
10342
|
-
/**
|
|
10343
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10344
|
-
*
|
|
10345
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10346
|
-
*
|
|
10347
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10348
|
-
*/
|
|
10349
|
-
server?: Server;
|
|
10350
10035
|
}
|
|
10351
10036
|
export interface CreateBashToolDTO {
|
|
10352
|
-
/**
|
|
10353
|
-
* This determines if the tool is async.
|
|
10354
|
-
*
|
|
10355
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10356
|
-
*
|
|
10357
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10358
|
-
*
|
|
10359
|
-
* Defaults to synchronous (`false`).
|
|
10360
|
-
* @example false
|
|
10361
|
-
*/
|
|
10362
|
-
async?: boolean;
|
|
10363
10037
|
/**
|
|
10364
10038
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10365
10039
|
*
|
|
@@ -10370,6 +10044,18 @@ export interface CreateBashToolDTO {
|
|
|
10370
10044
|
type: 'bash';
|
|
10371
10045
|
/** The sub type of tool. */
|
|
10372
10046
|
subType: 'bash_20241022';
|
|
10047
|
+
/**
|
|
10048
|
+
*
|
|
10049
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
10050
|
+
*
|
|
10051
|
+
* Notes:
|
|
10052
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
10053
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
10054
|
+
* - Webhook contains the variables set on the assistant.
|
|
10055
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
10056
|
+
* - Webhook expects a response with tool call result.
|
|
10057
|
+
*/
|
|
10058
|
+
server?: Server;
|
|
10373
10059
|
/**
|
|
10374
10060
|
* The name of the tool, fixed to 'bash'
|
|
10375
10061
|
* @default "bash"
|
|
@@ -10383,27 +10069,8 @@ export interface CreateBashToolDTO {
|
|
|
10383
10069
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10384
10070
|
*/
|
|
10385
10071
|
function?: OpenAIFunction;
|
|
10386
|
-
/**
|
|
10387
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10388
|
-
*
|
|
10389
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10390
|
-
*
|
|
10391
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10392
|
-
*/
|
|
10393
|
-
server?: Server;
|
|
10394
10072
|
}
|
|
10395
10073
|
export interface CreateComputerToolDTO {
|
|
10396
|
-
/**
|
|
10397
|
-
* This determines if the tool is async.
|
|
10398
|
-
*
|
|
10399
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10400
|
-
*
|
|
10401
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10402
|
-
*
|
|
10403
|
-
* Defaults to synchronous (`false`).
|
|
10404
|
-
* @example false
|
|
10405
|
-
*/
|
|
10406
|
-
async?: boolean;
|
|
10407
10074
|
/**
|
|
10408
10075
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10409
10076
|
*
|
|
@@ -10414,6 +10081,18 @@ export interface CreateComputerToolDTO {
|
|
|
10414
10081
|
type: 'computer';
|
|
10415
10082
|
/** The sub type of tool. */
|
|
10416
10083
|
subType: 'computer_20241022';
|
|
10084
|
+
/**
|
|
10085
|
+
*
|
|
10086
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
10087
|
+
*
|
|
10088
|
+
* Notes:
|
|
10089
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
10090
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
10091
|
+
* - Webhook contains the variables set on the assistant.
|
|
10092
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
10093
|
+
* - Webhook expects a response with tool call result.
|
|
10094
|
+
*/
|
|
10095
|
+
server?: Server;
|
|
10417
10096
|
/**
|
|
10418
10097
|
* The name of the tool, fixed to 'computer'
|
|
10419
10098
|
* @default "computer"
|
|
@@ -10433,27 +10112,8 @@ export interface CreateComputerToolDTO {
|
|
|
10433
10112
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10434
10113
|
*/
|
|
10435
10114
|
function?: OpenAIFunction;
|
|
10436
|
-
/**
|
|
10437
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10438
|
-
*
|
|
10439
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10440
|
-
*
|
|
10441
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10442
|
-
*/
|
|
10443
|
-
server?: Server;
|
|
10444
10115
|
}
|
|
10445
10116
|
export interface CreateTextEditorToolDTO {
|
|
10446
|
-
/**
|
|
10447
|
-
* This determines if the tool is async.
|
|
10448
|
-
*
|
|
10449
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10450
|
-
*
|
|
10451
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10452
|
-
*
|
|
10453
|
-
* Defaults to synchronous (`false`).
|
|
10454
|
-
* @example false
|
|
10455
|
-
*/
|
|
10456
|
-
async?: boolean;
|
|
10457
10117
|
/**
|
|
10458
10118
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10459
10119
|
*
|
|
@@ -10464,6 +10124,18 @@ export interface CreateTextEditorToolDTO {
|
|
|
10464
10124
|
type: 'textEditor';
|
|
10465
10125
|
/** The sub type of tool. */
|
|
10466
10126
|
subType: 'text_editor_20241022';
|
|
10127
|
+
/**
|
|
10128
|
+
*
|
|
10129
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
10130
|
+
*
|
|
10131
|
+
* Notes:
|
|
10132
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
10133
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
10134
|
+
* - Webhook contains the variables set on the assistant.
|
|
10135
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
10136
|
+
* - Webhook expects a response with tool call result.
|
|
10137
|
+
*/
|
|
10138
|
+
server?: Server;
|
|
10467
10139
|
/**
|
|
10468
10140
|
* The name of the tool, fixed to 'str_replace_editor'
|
|
10469
10141
|
* @default "str_replace_editor"
|
|
@@ -10477,27 +10149,8 @@ export interface CreateTextEditorToolDTO {
|
|
|
10477
10149
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10478
10150
|
*/
|
|
10479
10151
|
function?: OpenAIFunction;
|
|
10480
|
-
/**
|
|
10481
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10482
|
-
*
|
|
10483
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10484
|
-
*
|
|
10485
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10486
|
-
*/
|
|
10487
|
-
server?: Server;
|
|
10488
10152
|
}
|
|
10489
10153
|
export interface CreateSmsToolDTO {
|
|
10490
|
-
/**
|
|
10491
|
-
* This determines if the tool is async.
|
|
10492
|
-
*
|
|
10493
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10494
|
-
*
|
|
10495
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10496
|
-
*
|
|
10497
|
-
* Defaults to synchronous (`false`).
|
|
10498
|
-
* @example false
|
|
10499
|
-
*/
|
|
10500
|
-
async?: boolean;
|
|
10501
10154
|
/**
|
|
10502
10155
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10503
10156
|
*
|
|
@@ -10514,27 +10167,8 @@ export interface CreateSmsToolDTO {
|
|
|
10514
10167
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10515
10168
|
*/
|
|
10516
10169
|
function?: OpenAIFunction;
|
|
10517
|
-
/**
|
|
10518
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10519
|
-
*
|
|
10520
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10521
|
-
*
|
|
10522
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10523
|
-
*/
|
|
10524
|
-
server?: Server;
|
|
10525
10170
|
}
|
|
10526
10171
|
export interface UpdateDtmfToolDTO {
|
|
10527
|
-
/**
|
|
10528
|
-
* This determines if the tool is async.
|
|
10529
|
-
*
|
|
10530
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10531
|
-
*
|
|
10532
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10533
|
-
*
|
|
10534
|
-
* Defaults to synchronous (`false`).
|
|
10535
|
-
* @example false
|
|
10536
|
-
*/
|
|
10537
|
-
async?: boolean;
|
|
10538
10172
|
/**
|
|
10539
10173
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10540
10174
|
*
|
|
@@ -10549,27 +10183,8 @@ export interface UpdateDtmfToolDTO {
|
|
|
10549
10183
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10550
10184
|
*/
|
|
10551
10185
|
function?: OpenAIFunction;
|
|
10552
|
-
/**
|
|
10553
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10554
|
-
*
|
|
10555
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10556
|
-
*
|
|
10557
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10558
|
-
*/
|
|
10559
|
-
server?: Server;
|
|
10560
10186
|
}
|
|
10561
10187
|
export interface UpdateEndCallToolDTO {
|
|
10562
|
-
/**
|
|
10563
|
-
* This determines if the tool is async.
|
|
10564
|
-
*
|
|
10565
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10566
|
-
*
|
|
10567
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10568
|
-
*
|
|
10569
|
-
* Defaults to synchronous (`false`).
|
|
10570
|
-
* @example false
|
|
10571
|
-
*/
|
|
10572
|
-
async?: boolean;
|
|
10573
10188
|
/**
|
|
10574
10189
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10575
10190
|
*
|
|
@@ -10584,33 +10199,37 @@ export interface UpdateEndCallToolDTO {
|
|
|
10584
10199
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10585
10200
|
*/
|
|
10586
10201
|
function?: OpenAIFunction;
|
|
10202
|
+
}
|
|
10203
|
+
export interface UpdateFunctionToolDTO {
|
|
10587
10204
|
/**
|
|
10588
|
-
*
|
|
10589
|
-
*
|
|
10590
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10205
|
+
* These are the messages that will be spoken to the user as the tool is running.
|
|
10591
10206
|
*
|
|
10592
|
-
*
|
|
10207
|
+
* For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
|
|
10593
10208
|
*/
|
|
10594
|
-
|
|
10595
|
-
}
|
|
10596
|
-
export interface UpdateFunctionToolDTO {
|
|
10209
|
+
messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
|
|
10597
10210
|
/**
|
|
10598
10211
|
* This determines if the tool is async.
|
|
10599
10212
|
*
|
|
10600
|
-
*
|
|
10213
|
+
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10601
10214
|
*
|
|
10602
|
-
*
|
|
10215
|
+
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10603
10216
|
*
|
|
10604
|
-
*
|
|
10217
|
+
* Defaults to synchronous (`false`).
|
|
10605
10218
|
* @example false
|
|
10606
10219
|
*/
|
|
10607
10220
|
async?: boolean;
|
|
10608
10221
|
/**
|
|
10609
|
-
* These are the messages that will be spoken to the user as the tool is running.
|
|
10610
10222
|
*
|
|
10611
|
-
*
|
|
10223
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
10224
|
+
*
|
|
10225
|
+
* Notes:
|
|
10226
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
10227
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
10228
|
+
* - Webhook contains the variables set on the assistant.
|
|
10229
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
10230
|
+
* - Webhook expects a response with tool call result.
|
|
10612
10231
|
*/
|
|
10613
|
-
|
|
10232
|
+
server?: Server;
|
|
10614
10233
|
/**
|
|
10615
10234
|
* This is the function definition of the tool.
|
|
10616
10235
|
*
|
|
@@ -10619,27 +10238,8 @@ export interface UpdateFunctionToolDTO {
|
|
|
10619
10238
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10620
10239
|
*/
|
|
10621
10240
|
function?: OpenAIFunction;
|
|
10622
|
-
/**
|
|
10623
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10624
|
-
*
|
|
10625
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10626
|
-
*
|
|
10627
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10628
|
-
*/
|
|
10629
|
-
server?: Server;
|
|
10630
10241
|
}
|
|
10631
10242
|
export interface UpdateGhlToolDTO {
|
|
10632
|
-
/**
|
|
10633
|
-
* This determines if the tool is async.
|
|
10634
|
-
*
|
|
10635
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10636
|
-
*
|
|
10637
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10638
|
-
*
|
|
10639
|
-
* Defaults to synchronous (`false`).
|
|
10640
|
-
* @example false
|
|
10641
|
-
*/
|
|
10642
|
-
async?: boolean;
|
|
10643
10243
|
/**
|
|
10644
10244
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10645
10245
|
*
|
|
@@ -10654,28 +10254,9 @@ export interface UpdateGhlToolDTO {
|
|
|
10654
10254
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10655
10255
|
*/
|
|
10656
10256
|
function?: OpenAIFunction;
|
|
10657
|
-
/**
|
|
10658
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10659
|
-
*
|
|
10660
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10661
|
-
*
|
|
10662
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10663
|
-
*/
|
|
10664
|
-
server?: Server;
|
|
10665
10257
|
metadata?: GhlToolMetadata;
|
|
10666
10258
|
}
|
|
10667
10259
|
export interface UpdateMakeToolDTO {
|
|
10668
|
-
/**
|
|
10669
|
-
* This determines if the tool is async.
|
|
10670
|
-
*
|
|
10671
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10672
|
-
*
|
|
10673
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10674
|
-
*
|
|
10675
|
-
* Defaults to synchronous (`false`).
|
|
10676
|
-
* @example false
|
|
10677
|
-
*/
|
|
10678
|
-
async?: boolean;
|
|
10679
10260
|
/**
|
|
10680
10261
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10681
10262
|
*
|
|
@@ -10690,28 +10271,9 @@ export interface UpdateMakeToolDTO {
|
|
|
10690
10271
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10691
10272
|
*/
|
|
10692
10273
|
function?: OpenAIFunction;
|
|
10693
|
-
/**
|
|
10694
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10695
|
-
*
|
|
10696
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10697
|
-
*
|
|
10698
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10699
|
-
*/
|
|
10700
|
-
server?: Server;
|
|
10701
10274
|
metadata?: MakeToolMetadata;
|
|
10702
10275
|
}
|
|
10703
10276
|
export interface UpdateTransferCallToolDTO {
|
|
10704
|
-
/**
|
|
10705
|
-
* This determines if the tool is async.
|
|
10706
|
-
*
|
|
10707
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10708
|
-
*
|
|
10709
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10710
|
-
*
|
|
10711
|
-
* Defaults to synchronous (`false`).
|
|
10712
|
-
* @example false
|
|
10713
|
-
*/
|
|
10714
|
-
async?: boolean;
|
|
10715
10277
|
/**
|
|
10716
10278
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10717
10279
|
*
|
|
@@ -10728,27 +10290,8 @@ export interface UpdateTransferCallToolDTO {
|
|
|
10728
10290
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10729
10291
|
*/
|
|
10730
10292
|
function?: OpenAIFunction;
|
|
10731
|
-
/**
|
|
10732
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10733
|
-
*
|
|
10734
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10735
|
-
*
|
|
10736
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10737
|
-
*/
|
|
10738
|
-
server?: Server;
|
|
10739
10293
|
}
|
|
10740
10294
|
export interface UpdateOutputToolDTO {
|
|
10741
|
-
/**
|
|
10742
|
-
* This determines if the tool is async.
|
|
10743
|
-
*
|
|
10744
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10745
|
-
*
|
|
10746
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10747
|
-
*
|
|
10748
|
-
* Defaults to synchronous (`false`).
|
|
10749
|
-
* @example false
|
|
10750
|
-
*/
|
|
10751
|
-
async?: boolean;
|
|
10752
10295
|
/**
|
|
10753
10296
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10754
10297
|
*
|
|
@@ -10763,27 +10306,8 @@ export interface UpdateOutputToolDTO {
|
|
|
10763
10306
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10764
10307
|
*/
|
|
10765
10308
|
function?: OpenAIFunction;
|
|
10766
|
-
/**
|
|
10767
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10768
|
-
*
|
|
10769
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10770
|
-
*
|
|
10771
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10772
|
-
*/
|
|
10773
|
-
server?: Server;
|
|
10774
10309
|
}
|
|
10775
10310
|
export interface UpdateBashToolDTO {
|
|
10776
|
-
/**
|
|
10777
|
-
* This determines if the tool is async.
|
|
10778
|
-
*
|
|
10779
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10780
|
-
*
|
|
10781
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10782
|
-
*
|
|
10783
|
-
* Defaults to synchronous (`false`).
|
|
10784
|
-
* @example false
|
|
10785
|
-
*/
|
|
10786
|
-
async?: boolean;
|
|
10787
10311
|
/**
|
|
10788
10312
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10789
10313
|
*
|
|
@@ -10793,21 +10317,25 @@ export interface UpdateBashToolDTO {
|
|
|
10793
10317
|
/** The sub type of tool. */
|
|
10794
10318
|
subType?: 'bash_20241022';
|
|
10795
10319
|
/**
|
|
10796
|
-
* This is the function definition of the tool.
|
|
10797
10320
|
*
|
|
10798
|
-
*
|
|
10321
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
10799
10322
|
*
|
|
10800
|
-
*
|
|
10323
|
+
* Notes:
|
|
10324
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
10325
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
10326
|
+
* - Webhook contains the variables set on the assistant.
|
|
10327
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
10328
|
+
* - Webhook expects a response with tool call result.
|
|
10801
10329
|
*/
|
|
10802
|
-
|
|
10330
|
+
server?: Server;
|
|
10803
10331
|
/**
|
|
10804
|
-
* This is the
|
|
10332
|
+
* This is the function definition of the tool.
|
|
10805
10333
|
*
|
|
10806
|
-
*
|
|
10334
|
+
* For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.
|
|
10807
10335
|
*
|
|
10808
|
-
*
|
|
10336
|
+
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10809
10337
|
*/
|
|
10810
|
-
|
|
10338
|
+
function?: OpenAIFunction;
|
|
10811
10339
|
/**
|
|
10812
10340
|
* The name of the tool, fixed to 'bash'
|
|
10813
10341
|
* @default "bash"
|
|
@@ -10815,17 +10343,6 @@ export interface UpdateBashToolDTO {
|
|
|
10815
10343
|
name?: 'bash';
|
|
10816
10344
|
}
|
|
10817
10345
|
export interface UpdateComputerToolDTO {
|
|
10818
|
-
/**
|
|
10819
|
-
* This determines if the tool is async.
|
|
10820
|
-
*
|
|
10821
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10822
|
-
*
|
|
10823
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10824
|
-
*
|
|
10825
|
-
* Defaults to synchronous (`false`).
|
|
10826
|
-
* @example false
|
|
10827
|
-
*/
|
|
10828
|
-
async?: boolean;
|
|
10829
10346
|
/**
|
|
10830
10347
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10831
10348
|
*
|
|
@@ -10835,21 +10352,25 @@ export interface UpdateComputerToolDTO {
|
|
|
10835
10352
|
/** The sub type of tool. */
|
|
10836
10353
|
subType?: 'computer_20241022';
|
|
10837
10354
|
/**
|
|
10838
|
-
* This is the function definition of the tool.
|
|
10839
10355
|
*
|
|
10840
|
-
*
|
|
10356
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
10841
10357
|
*
|
|
10842
|
-
*
|
|
10358
|
+
* Notes:
|
|
10359
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
10360
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
10361
|
+
* - Webhook contains the variables set on the assistant.
|
|
10362
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
10363
|
+
* - Webhook expects a response with tool call result.
|
|
10843
10364
|
*/
|
|
10844
|
-
|
|
10365
|
+
server?: Server;
|
|
10845
10366
|
/**
|
|
10846
|
-
* This is the
|
|
10367
|
+
* This is the function definition of the tool.
|
|
10847
10368
|
*
|
|
10848
|
-
*
|
|
10369
|
+
* For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.
|
|
10849
10370
|
*
|
|
10850
|
-
*
|
|
10371
|
+
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10851
10372
|
*/
|
|
10852
|
-
|
|
10373
|
+
function?: OpenAIFunction;
|
|
10853
10374
|
/**
|
|
10854
10375
|
* The name of the tool, fixed to 'computer'
|
|
10855
10376
|
* @default "computer"
|
|
@@ -10863,17 +10384,6 @@ export interface UpdateComputerToolDTO {
|
|
|
10863
10384
|
displayNumber?: number;
|
|
10864
10385
|
}
|
|
10865
10386
|
export interface UpdateTextEditorToolDTO {
|
|
10866
|
-
/**
|
|
10867
|
-
* This determines if the tool is async.
|
|
10868
|
-
*
|
|
10869
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10870
|
-
*
|
|
10871
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10872
|
-
*
|
|
10873
|
-
* Defaults to synchronous (`false`).
|
|
10874
|
-
* @example false
|
|
10875
|
-
*/
|
|
10876
|
-
async?: boolean;
|
|
10877
10387
|
/**
|
|
10878
10388
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10879
10389
|
*
|
|
@@ -10883,21 +10393,25 @@ export interface UpdateTextEditorToolDTO {
|
|
|
10883
10393
|
/** The sub type of tool. */
|
|
10884
10394
|
subType?: 'text_editor_20241022';
|
|
10885
10395
|
/**
|
|
10886
|
-
* This is the function definition of the tool.
|
|
10887
10396
|
*
|
|
10888
|
-
*
|
|
10397
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
10889
10398
|
*
|
|
10890
|
-
*
|
|
10399
|
+
* Notes:
|
|
10400
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
10401
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
10402
|
+
* - Webhook contains the variables set on the assistant.
|
|
10403
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
10404
|
+
* - Webhook expects a response with tool call result.
|
|
10891
10405
|
*/
|
|
10892
|
-
|
|
10406
|
+
server?: Server;
|
|
10893
10407
|
/**
|
|
10894
|
-
* This is the
|
|
10408
|
+
* This is the function definition of the tool.
|
|
10895
10409
|
*
|
|
10896
|
-
*
|
|
10410
|
+
* For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.
|
|
10897
10411
|
*
|
|
10898
|
-
*
|
|
10412
|
+
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10899
10413
|
*/
|
|
10900
|
-
|
|
10414
|
+
function?: OpenAIFunction;
|
|
10901
10415
|
/**
|
|
10902
10416
|
* The name of the tool, fixed to 'str_replace_editor'
|
|
10903
10417
|
* @default "str_replace_editor"
|
|
@@ -10905,17 +10419,6 @@ export interface UpdateTextEditorToolDTO {
|
|
|
10905
10419
|
name?: 'str_replace_editor';
|
|
10906
10420
|
}
|
|
10907
10421
|
export interface UpdateQueryToolDTO {
|
|
10908
|
-
/**
|
|
10909
|
-
* This determines if the tool is async.
|
|
10910
|
-
*
|
|
10911
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10912
|
-
*
|
|
10913
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10914
|
-
*
|
|
10915
|
-
* Defaults to synchronous (`false`).
|
|
10916
|
-
* @example false
|
|
10917
|
-
*/
|
|
10918
|
-
async?: boolean;
|
|
10919
10422
|
/**
|
|
10920
10423
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10921
10424
|
*
|
|
@@ -10932,27 +10435,8 @@ export interface UpdateQueryToolDTO {
|
|
|
10932
10435
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10933
10436
|
*/
|
|
10934
10437
|
function?: OpenAIFunction;
|
|
10935
|
-
/**
|
|
10936
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10937
|
-
*
|
|
10938
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10939
|
-
*
|
|
10940
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10941
|
-
*/
|
|
10942
|
-
server?: Server;
|
|
10943
10438
|
}
|
|
10944
10439
|
export interface UpdateGoogleCalendarCreateEventToolDTO {
|
|
10945
|
-
/**
|
|
10946
|
-
* This determines if the tool is async.
|
|
10947
|
-
*
|
|
10948
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10949
|
-
*
|
|
10950
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10951
|
-
*
|
|
10952
|
-
* Defaults to synchronous (`false`).
|
|
10953
|
-
* @example false
|
|
10954
|
-
*/
|
|
10955
|
-
async?: boolean;
|
|
10956
10440
|
/**
|
|
10957
10441
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10958
10442
|
*
|
|
@@ -10967,27 +10451,8 @@ export interface UpdateGoogleCalendarCreateEventToolDTO {
|
|
|
10967
10451
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
10968
10452
|
*/
|
|
10969
10453
|
function?: OpenAIFunction;
|
|
10970
|
-
/**
|
|
10971
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
10972
|
-
*
|
|
10973
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
10974
|
-
*
|
|
10975
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10976
|
-
*/
|
|
10977
|
-
server?: Server;
|
|
10978
10454
|
}
|
|
10979
10455
|
export interface UpdateGoogleSheetsRowAppendToolDTO {
|
|
10980
|
-
/**
|
|
10981
|
-
* This determines if the tool is async.
|
|
10982
|
-
*
|
|
10983
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10984
|
-
*
|
|
10985
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
10986
|
-
*
|
|
10987
|
-
* Defaults to synchronous (`false`).
|
|
10988
|
-
* @example false
|
|
10989
|
-
*/
|
|
10990
|
-
async?: boolean;
|
|
10991
10456
|
/**
|
|
10992
10457
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
10993
10458
|
*
|
|
@@ -11002,27 +10467,8 @@ export interface UpdateGoogleSheetsRowAppendToolDTO {
|
|
|
11002
10467
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
11003
10468
|
*/
|
|
11004
10469
|
function?: OpenAIFunction;
|
|
11005
|
-
/**
|
|
11006
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
11007
|
-
*
|
|
11008
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
11009
|
-
*
|
|
11010
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
11011
|
-
*/
|
|
11012
|
-
server?: Server;
|
|
11013
10470
|
}
|
|
11014
10471
|
export interface UpdateGoogleCalendarCheckAvailabilityToolDTO {
|
|
11015
|
-
/**
|
|
11016
|
-
* This determines if the tool is async.
|
|
11017
|
-
*
|
|
11018
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
11019
|
-
*
|
|
11020
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
11021
|
-
*
|
|
11022
|
-
* Defaults to synchronous (`false`).
|
|
11023
|
-
* @example false
|
|
11024
|
-
*/
|
|
11025
|
-
async?: boolean;
|
|
11026
10472
|
/**
|
|
11027
10473
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
11028
10474
|
*
|
|
@@ -11037,27 +10483,8 @@ export interface UpdateGoogleCalendarCheckAvailabilityToolDTO {
|
|
|
11037
10483
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
11038
10484
|
*/
|
|
11039
10485
|
function?: OpenAIFunction;
|
|
11040
|
-
/**
|
|
11041
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
11042
|
-
*
|
|
11043
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
11044
|
-
*
|
|
11045
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
11046
|
-
*/
|
|
11047
|
-
server?: Server;
|
|
11048
10486
|
}
|
|
11049
10487
|
export interface UpdateSlackSendMessageToolDTO {
|
|
11050
|
-
/**
|
|
11051
|
-
* This determines if the tool is async.
|
|
11052
|
-
*
|
|
11053
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
11054
|
-
*
|
|
11055
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
11056
|
-
*
|
|
11057
|
-
* Defaults to synchronous (`false`).
|
|
11058
|
-
* @example false
|
|
11059
|
-
*/
|
|
11060
|
-
async?: boolean;
|
|
11061
10488
|
/**
|
|
11062
10489
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
11063
10490
|
*
|
|
@@ -11072,27 +10499,8 @@ export interface UpdateSlackSendMessageToolDTO {
|
|
|
11072
10499
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
11073
10500
|
*/
|
|
11074
10501
|
function?: OpenAIFunction;
|
|
11075
|
-
/**
|
|
11076
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
11077
|
-
*
|
|
11078
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
11079
|
-
*
|
|
11080
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
11081
|
-
*/
|
|
11082
|
-
server?: Server;
|
|
11083
10502
|
}
|
|
11084
10503
|
export interface UpdateSmsToolDTO {
|
|
11085
|
-
/**
|
|
11086
|
-
* This determines if the tool is async.
|
|
11087
|
-
*
|
|
11088
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
11089
|
-
*
|
|
11090
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
11091
|
-
*
|
|
11092
|
-
* Defaults to synchronous (`false`).
|
|
11093
|
-
* @example false
|
|
11094
|
-
*/
|
|
11095
|
-
async?: boolean;
|
|
11096
10504
|
/**
|
|
11097
10505
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
11098
10506
|
*
|
|
@@ -11107,27 +10515,8 @@ export interface UpdateSmsToolDTO {
|
|
|
11107
10515
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
11108
10516
|
*/
|
|
11109
10517
|
function?: OpenAIFunction;
|
|
11110
|
-
/**
|
|
11111
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
11112
|
-
*
|
|
11113
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
11114
|
-
*
|
|
11115
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
11116
|
-
*/
|
|
11117
|
-
server?: Server;
|
|
11118
10518
|
}
|
|
11119
10519
|
export interface UpdateMcpToolDTO {
|
|
11120
|
-
/**
|
|
11121
|
-
* This determines if the tool is async.
|
|
11122
|
-
*
|
|
11123
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
11124
|
-
*
|
|
11125
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
11126
|
-
*
|
|
11127
|
-
* Defaults to synchronous (`false`).
|
|
11128
|
-
* @example false
|
|
11129
|
-
*/
|
|
11130
|
-
async?: boolean;
|
|
11131
10520
|
/**
|
|
11132
10521
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
11133
10522
|
*
|
|
@@ -11135,34 +10524,27 @@ export interface UpdateMcpToolDTO {
|
|
|
11135
10524
|
*/
|
|
11136
10525
|
messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
|
|
11137
10526
|
/**
|
|
11138
|
-
* This is the function definition of the tool.
|
|
11139
10527
|
*
|
|
11140
|
-
*
|
|
10528
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
11141
10529
|
*
|
|
11142
|
-
*
|
|
11143
|
-
|
|
11144
|
-
|
|
11145
|
-
|
|
11146
|
-
*
|
|
11147
|
-
*
|
|
11148
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
11149
|
-
*
|
|
11150
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
10530
|
+
* Notes:
|
|
10531
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
10532
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
10533
|
+
* - Webhook contains the variables set on the assistant.
|
|
10534
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
10535
|
+
* - Webhook expects a response with tool call result.
|
|
11151
10536
|
*/
|
|
11152
10537
|
server?: Server;
|
|
11153
|
-
}
|
|
11154
|
-
export interface UpdateGoHighLevelCalendarAvailabilityToolDTO {
|
|
11155
10538
|
/**
|
|
11156
|
-
* This
|
|
11157
|
-
*
|
|
11158
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
10539
|
+
* This is the function definition of the tool.
|
|
11159
10540
|
*
|
|
11160
|
-
*
|
|
10541
|
+
* For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.
|
|
11161
10542
|
*
|
|
11162
|
-
*
|
|
11163
|
-
* @example false
|
|
10543
|
+
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
11164
10544
|
*/
|
|
11165
|
-
|
|
10545
|
+
function?: OpenAIFunction;
|
|
10546
|
+
}
|
|
10547
|
+
export interface UpdateGoHighLevelCalendarAvailabilityToolDTO {
|
|
11166
10548
|
/**
|
|
11167
10549
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
11168
10550
|
*
|
|
@@ -11177,27 +10559,8 @@ export interface UpdateGoHighLevelCalendarAvailabilityToolDTO {
|
|
|
11177
10559
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
11178
10560
|
*/
|
|
11179
10561
|
function?: OpenAIFunction;
|
|
11180
|
-
/**
|
|
11181
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
11182
|
-
*
|
|
11183
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
11184
|
-
*
|
|
11185
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
11186
|
-
*/
|
|
11187
|
-
server?: Server;
|
|
11188
10562
|
}
|
|
11189
10563
|
export interface UpdateGoHighLevelCalendarEventCreateToolDTO {
|
|
11190
|
-
/**
|
|
11191
|
-
* This determines if the tool is async.
|
|
11192
|
-
*
|
|
11193
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
11194
|
-
*
|
|
11195
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
11196
|
-
*
|
|
11197
|
-
* Defaults to synchronous (`false`).
|
|
11198
|
-
* @example false
|
|
11199
|
-
*/
|
|
11200
|
-
async?: boolean;
|
|
11201
10564
|
/**
|
|
11202
10565
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
11203
10566
|
*
|
|
@@ -11212,27 +10575,8 @@ export interface UpdateGoHighLevelCalendarEventCreateToolDTO {
|
|
|
11212
10575
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
11213
10576
|
*/
|
|
11214
10577
|
function?: OpenAIFunction;
|
|
11215
|
-
/**
|
|
11216
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
11217
|
-
*
|
|
11218
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
11219
|
-
*
|
|
11220
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
11221
|
-
*/
|
|
11222
|
-
server?: Server;
|
|
11223
10578
|
}
|
|
11224
10579
|
export interface UpdateGoHighLevelContactCreateToolDTO {
|
|
11225
|
-
/**
|
|
11226
|
-
* This determines if the tool is async.
|
|
11227
|
-
*
|
|
11228
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
11229
|
-
*
|
|
11230
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
11231
|
-
*
|
|
11232
|
-
* Defaults to synchronous (`false`).
|
|
11233
|
-
* @example false
|
|
11234
|
-
*/
|
|
11235
|
-
async?: boolean;
|
|
11236
10580
|
/**
|
|
11237
10581
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
11238
10582
|
*
|
|
@@ -11247,27 +10591,8 @@ export interface UpdateGoHighLevelContactCreateToolDTO {
|
|
|
11247
10591
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
11248
10592
|
*/
|
|
11249
10593
|
function?: OpenAIFunction;
|
|
11250
|
-
/**
|
|
11251
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
11252
|
-
*
|
|
11253
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
11254
|
-
*
|
|
11255
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
11256
|
-
*/
|
|
11257
|
-
server?: Server;
|
|
11258
10594
|
}
|
|
11259
10595
|
export interface UpdateGoHighLevelContactGetToolDTO {
|
|
11260
|
-
/**
|
|
11261
|
-
* This determines if the tool is async.
|
|
11262
|
-
*
|
|
11263
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
11264
|
-
*
|
|
11265
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
11266
|
-
*
|
|
11267
|
-
* Defaults to synchronous (`false`).
|
|
11268
|
-
* @example false
|
|
11269
|
-
*/
|
|
11270
|
-
async?: boolean;
|
|
11271
10596
|
/**
|
|
11272
10597
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
11273
10598
|
*
|
|
@@ -11282,14 +10607,6 @@ export interface UpdateGoHighLevelContactGetToolDTO {
|
|
|
11282
10607
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
11283
10608
|
*/
|
|
11284
10609
|
function?: OpenAIFunction;
|
|
11285
|
-
/**
|
|
11286
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
11287
|
-
*
|
|
11288
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
11289
|
-
*
|
|
11290
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
11291
|
-
*/
|
|
11292
|
-
server?: Server;
|
|
11293
10610
|
}
|
|
11294
10611
|
export interface CreateFileDTO {
|
|
11295
10612
|
/**
|
|
@@ -11528,7 +10845,6 @@ export interface TrieveKnowledgeBaseImport {
|
|
|
11528
10845
|
}
|
|
11529
10846
|
export interface Workflow {
|
|
11530
10847
|
nodes: (ConversationNode | ToolNode)[];
|
|
11531
|
-
/** These are the options for the workflow's LLM. */
|
|
11532
10848
|
model?: WorkflowOpenAIModel | WorkflowAnthropicModel;
|
|
11533
10849
|
id: string;
|
|
11534
10850
|
orgId: string;
|
|
@@ -11539,14 +10855,17 @@ export interface Workflow {
|
|
|
11539
10855
|
/** @maxLength 80 */
|
|
11540
10856
|
name: string;
|
|
11541
10857
|
edges: Edge[];
|
|
10858
|
+
/** @maxLength 5000 */
|
|
10859
|
+
globalPrompt?: string;
|
|
11542
10860
|
}
|
|
11543
10861
|
export interface UpdateWorkflowDTO {
|
|
11544
10862
|
nodes?: (ConversationNode | ToolNode)[];
|
|
11545
|
-
/** These are the options for the workflow's LLM. */
|
|
11546
10863
|
model?: WorkflowOpenAIModel | WorkflowAnthropicModel;
|
|
11547
10864
|
/** @maxLength 80 */
|
|
11548
10865
|
name?: string;
|
|
11549
10866
|
edges?: Edge[];
|
|
10867
|
+
/** @maxLength 5000 */
|
|
10868
|
+
globalPrompt?: string;
|
|
11550
10869
|
}
|
|
11551
10870
|
export interface Squad {
|
|
11552
10871
|
/** This is the name of the squad. */
|
|
@@ -12015,22 +11334,6 @@ export interface UpdateTestSuiteRunDto {
|
|
|
12015
11334
|
*/
|
|
12016
11335
|
name?: string;
|
|
12017
11336
|
}
|
|
12018
|
-
export interface Metrics {
|
|
12019
|
-
orgId: string;
|
|
12020
|
-
rangeStart: string;
|
|
12021
|
-
rangeEnd: string;
|
|
12022
|
-
bill: number;
|
|
12023
|
-
billWithinBillingLimit: boolean;
|
|
12024
|
-
billDailyBreakdown: object;
|
|
12025
|
-
callActive: number;
|
|
12026
|
-
callActiveWithinConcurrencyLimit: boolean;
|
|
12027
|
-
callMinutes: number;
|
|
12028
|
-
callMinutesDailyBreakdown: object;
|
|
12029
|
-
callMinutesAverage: number;
|
|
12030
|
-
callMinutesAverageDailyBreakdown: object;
|
|
12031
|
-
callCount: number;
|
|
12032
|
-
callCountDailyBreakdown: object;
|
|
12033
|
-
}
|
|
12034
11337
|
export interface TimeRange {
|
|
12035
11338
|
/**
|
|
12036
11339
|
* This is the time step for aggregations.
|
|
@@ -12264,7 +11567,7 @@ export interface Subscription {
|
|
|
12264
11567
|
*/
|
|
12265
11568
|
updatedAt: string;
|
|
12266
11569
|
/** This is the type / tier of the subscription. */
|
|
12267
|
-
type: 'trial' | 'pay-as-you-go' | 'enterprise';
|
|
11570
|
+
type: 'trial' | 'pay-as-you-go' | 'enterprise' | 'agency' | 'startup' | 'growth' | 'scale';
|
|
12268
11571
|
/**
|
|
12269
11572
|
* This is the status of the subscription. Past due subscriptions are subscriptions
|
|
12270
11573
|
* with past due payments.
|
|
@@ -12427,6 +11730,8 @@ export interface Org {
|
|
|
12427
11730
|
plan?: OrgPlan;
|
|
12428
11731
|
/** This is the secret key used for signing JWT tokens for the org. */
|
|
12429
11732
|
jwtSecret?: string;
|
|
11733
|
+
/** This is the total number of call minutes used by this org across all time. */
|
|
11734
|
+
minutesUsed?: number;
|
|
12430
11735
|
/**
|
|
12431
11736
|
* This is the name of the org. This is just for your own reference.
|
|
12432
11737
|
* @maxLength 40
|
|
@@ -15213,7 +14518,7 @@ export interface ServerMessageEndOfCallReport {
|
|
|
15213
14518
|
/** This is the type of the message. "end-of-call-report" is sent when the call ends and post-processing is complete. */
|
|
15214
14519
|
type: 'end-of-call-report';
|
|
15215
14520
|
/** This is the reason the call ended. This can also be found at `call.endedReason` on GET /call/:id. */
|
|
15216
|
-
endedReason: 'call-start-error-neither-assistant-nor-server-set' | 'assistant-request-failed' | 'assistant-request-returned-error' | 'assistant-request-returned-unspeakable-error' | 'assistant-request-returned-invalid-assistant' | 'assistant-request-returned-no-assistant' | 'assistant-request-returned-forwarding-phone-number' | 'call.start.error-get-org' | 'call.start.error-get-subscription' | 'call.start.error-get-assistant' | 'call.start.error-get-phone-number' | 'call.start.error-get-customer' | 'call.start.error-get-resources-validation' | 'call.start.error-vapi-number-international' | 'call.start.error-vapi-number-outbound-daily-limit' | 'call.start.error-get-transport' | 'assistant-not-valid' | 'database-error' | 'assistant-not-found' | 'pipeline-error-openai-voice-failed' | 'pipeline-error-cartesia-voice-failed' | 'pipeline-error-deepgram-voice-failed' | 'pipeline-error-eleven-labs-voice-failed' | 'pipeline-error-playht-voice-failed' | 'pipeline-error-lmnt-voice-failed' | 'pipeline-error-azure-voice-failed' | 'pipeline-error-rime-ai-voice-failed' | 'pipeline-error-smallest-ai-voice-failed' | 'pipeline-error-neuphonic-voice-failed' | 'pipeline-error-hume-voice-failed' | 'pipeline-error-sesame-voice-failed' | 'pipeline-error-tavus-video-failed' | 'call.in-progress.error-vapifault-openai-voice-failed' | 'call.in-progress.error-vapifault-cartesia-voice-failed' | 'call.in-progress.error-vapifault-deepgram-voice-failed' | 'call.in-progress.error-vapifault-eleven-labs-voice-failed' | 'call.in-progress.error-vapifault-playht-voice-failed' | 'call.in-progress.error-vapifault-lmnt-voice-failed' | 'call.in-progress.error-vapifault-azure-voice-failed' | 'call.in-progress.error-vapifault-rime-ai-voice-failed' | 'call.in-progress.error-vapifault-smallest-ai-voice-failed' | 'call.in-progress.error-vapifault-neuphonic-voice-failed' | 'call.in-progress.error-vapifault-hume-voice-failed' | 'call.in-progress.error-vapifault-sesame-voice-failed' | 'call.in-progress.error-vapifault-tavus-video-failed' | 'pipeline-error-vapi-llm-failed' | 'pipeline-error-vapi-400-bad-request-validation-failed' | 'pipeline-error-vapi-401-unauthorized' | 'pipeline-error-vapi-403-model-access-denied' | 'pipeline-error-vapi-429-exceeded-quota' | 'pipeline-error-vapi-500-server-error' | 'pipeline-error-vapi-503-server-overloaded-error' | 'call.in-progress.error-vapifault-vapi-llm-failed' | 'call.in-progress.error-vapifault-vapi-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-vapi-401-unauthorized' | 'call.in-progress.error-vapifault-vapi-403-model-access-denied' | 'call.in-progress.error-vapifault-vapi-429-exceeded-quota' | 'call.in-progress.error-providerfault-vapi-500-server-error' | 'call.in-progress.error-providerfault-vapi-503-server-overloaded-error' | 'pipeline-error-deepgram-transcriber-failed' | 'call.in-progress.error-vapifault-deepgram-transcriber-failed' | 'pipeline-error-gladia-transcriber-failed' | 'call.in-progress.error-vapifault-gladia-transcriber-failed' | 'pipeline-error-speechmatics-transcriber-failed' | 'call.in-progress.error-vapifault-speechmatics-transcriber-failed' | 'pipeline-error-assembly-ai-transcriber-failed' | 'pipeline-error-assembly-ai-returning-400-insufficent-funds' | 'pipeline-error-assembly-ai-returning-400-paid-only-feature' | 'pipeline-error-assembly-ai-returning-401-invalid-credentials' | 'pipeline-error-assembly-ai-returning-500-invalid-schema' | 'pipeline-error-assembly-ai-returning-500-word-boost-parsing-failed' | 'call.in-progress.error-vapifault-assembly-ai-transcriber-failed' | 'call.in-progress.error-vapifault-assembly-ai-returning-400-insufficent-funds' | 'call.in-progress.error-vapifault-assembly-ai-returning-400-paid-only-feature' | 'call.in-progress.error-vapifault-assembly-ai-returning-401-invalid-credentials' | 'call.in-progress.error-vapifault-assembly-ai-returning-500-invalid-schema' | 'call.in-progress.error-vapifault-assembly-ai-returning-500-word-boost-parsing-failed' | 'pipeline-error-talkscriber-transcriber-failed' | 'call.in-progress.error-vapifault-talkscriber-transcriber-failed' | 'pipeline-error-azure-speech-transcriber-failed' | 'call.in-progress.error-vapifault-azure-speech-transcriber-failed' | 'call.in-progress.error-pipeline-no-available-llm-model' | 'worker-shutdown' | 'unknown-error' | 'vonage-disconnected' | 'vonage-failed-to-connect-call' | 'vonage-completed' | 'phone-call-provider-bypass-enabled-but-no-call-received' | 'call.in-progress.error-providerfault-transport-never-connected' | 'call.in-progress.error-vapifault-worker-not-available' | 'call.in-progress.error-vapifault-transport-never-connected' | 'call.in-progress.error-vapifault-transport-connected-but-call-not-active' | 'call.in-progress.error-vapifault-call-started-but-connection-to-transport-missing' | 'call.in-progress.error-vapifault-openai-llm-failed' | 'call.in-progress.error-vapifault-azure-openai-llm-failed' | 'call.in-progress.error-vapifault-groq-llm-failed' | 'call.in-progress.error-vapifault-google-llm-failed' | 'call.in-progress.error-vapifault-xai-llm-failed' | 'call.in-progress.error-vapifault-mistral-llm-failed' | 'call.in-progress.error-vapifault-inflection-ai-llm-failed' | 'call.in-progress.error-vapifault-cerebras-llm-failed' | 'call.in-progress.error-vapifault-deep-seek-llm-failed' | 'pipeline-error-openai-400-bad-request-validation-failed' | 'pipeline-error-openai-401-unauthorized' | 'pipeline-error-openai-401-incorrect-api-key' | 'pipeline-error-openai-401-account-not-in-organization' | 'pipeline-error-openai-403-model-access-denied' | 'pipeline-error-openai-429-exceeded-quota' | 'pipeline-error-openai-429-rate-limit-reached' | 'pipeline-error-openai-500-server-error' | 'pipeline-error-openai-503-server-overloaded-error' | 'pipeline-error-openai-llm-failed' | 'call.in-progress.error-vapifault-openai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-openai-401-unauthorized' | 'call.in-progress.error-vapifault-openai-401-incorrect-api-key' | 'call.in-progress.error-vapifault-openai-401-account-not-in-organization' | 'call.in-progress.error-vapifault-openai-403-model-access-denied' | 'call.in-progress.error-vapifault-openai-429-exceeded-quota' | 'call.in-progress.error-vapifault-openai-429-rate-limit-reached' | 'call.in-progress.error-providerfault-openai-500-server-error' | 'call.in-progress.error-providerfault-openai-503-server-overloaded-error' | 'pipeline-error-azure-openai-400-bad-request-validation-failed' | 'pipeline-error-azure-openai-401-unauthorized' | 'pipeline-error-azure-openai-403-model-access-denied' | 'pipeline-error-azure-openai-429-exceeded-quota' | 'pipeline-error-azure-openai-500-server-error' | 'pipeline-error-azure-openai-503-server-overloaded-error' | 'pipeline-error-azure-openai-llm-failed' | 'call.in-progress.error-vapifault-azure-openai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-azure-openai-401-unauthorized' | 'call.in-progress.error-vapifault-azure-openai-403-model-access-denied' | 'call.in-progress.error-vapifault-azure-openai-429-exceeded-quota' | 'call.in-progress.error-providerfault-azure-openai-500-server-error' | 'call.in-progress.error-providerfault-azure-openai-503-server-overloaded-error' | 'pipeline-error-google-400-bad-request-validation-failed' | 'pipeline-error-google-401-unauthorized' | 'pipeline-error-google-403-model-access-denied' | 'pipeline-error-google-429-exceeded-quota' | 'pipeline-error-google-500-server-error' | 'pipeline-error-google-503-server-overloaded-error' | 'pipeline-error-google-llm-failed' | 'call.in-progress.error-vapifault-google-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-google-401-unauthorized' | 'call.in-progress.error-vapifault-google-403-model-access-denied' | 'call.in-progress.error-vapifault-google-429-exceeded-quota' | 'call.in-progress.error-providerfault-google-500-server-error' | 'call.in-progress.error-providerfault-google-503-server-overloaded-error' | 'pipeline-error-xai-400-bad-request-validation-failed' | 'pipeline-error-xai-401-unauthorized' | 'pipeline-error-xai-403-model-access-denied' | 'pipeline-error-xai-429-exceeded-quota' | 'pipeline-error-xai-500-server-error' | 'pipeline-error-xai-503-server-overloaded-error' | 'pipeline-error-xai-llm-failed' | 'call.in-progress.error-vapifault-xai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-xai-401-unauthorized' | 'call.in-progress.error-vapifault-xai-403-model-access-denied' | 'call.in-progress.error-vapifault-xai-429-exceeded-quota' | 'call.in-progress.error-providerfault-xai-500-server-error' | 'call.in-progress.error-providerfault-xai-503-server-overloaded-error' | 'pipeline-error-mistral-400-bad-request-validation-failed' | 'pipeline-error-mistral-401-unauthorized' | 'pipeline-error-mistral-403-model-access-denied' | 'pipeline-error-mistral-429-exceeded-quota' | 'pipeline-error-mistral-500-server-error' | 'pipeline-error-mistral-503-server-overloaded-error' | 'pipeline-error-mistral-llm-failed' | 'call.in-progress.error-vapifault-mistral-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-mistral-401-unauthorized' | 'call.in-progress.error-vapifault-mistral-403-model-access-denied' | 'call.in-progress.error-vapifault-mistral-429-exceeded-quota' | 'call.in-progress.error-providerfault-mistral-500-server-error' | 'call.in-progress.error-providerfault-mistral-503-server-overloaded-error' | 'pipeline-error-inflection-ai-400-bad-request-validation-failed' | 'pipeline-error-inflection-ai-401-unauthorized' | 'pipeline-error-inflection-ai-403-model-access-denied' | 'pipeline-error-inflection-ai-429-exceeded-quota' | 'pipeline-error-inflection-ai-500-server-error' | 'pipeline-error-inflection-ai-503-server-overloaded-error' | 'pipeline-error-inflection-ai-llm-failed' | 'call.in-progress.error-vapifault-inflection-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-inflection-ai-401-unauthorized' | 'call.in-progress.error-vapifault-inflection-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-inflection-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-inflection-ai-500-server-error' | 'call.in-progress.error-providerfault-inflection-ai-503-server-overloaded-error' | 'pipeline-error-deep-seek-400-bad-request-validation-failed' | 'pipeline-error-deep-seek-401-unauthorized' | 'pipeline-error-deep-seek-403-model-access-denied' | 'pipeline-error-deep-seek-429-exceeded-quota' | 'pipeline-error-deep-seek-500-server-error' | 'pipeline-error-deep-seek-503-server-overloaded-error' | 'pipeline-error-deep-seek-llm-failed' | 'call.in-progress.error-vapifault-deep-seek-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-deep-seek-401-unauthorized' | 'call.in-progress.error-vapifault-deep-seek-403-model-access-denied' | 'call.in-progress.error-vapifault-deep-seek-429-exceeded-quota' | 'call.in-progress.error-providerfault-deep-seek-500-server-error' | 'call.in-progress.error-providerfault-deep-seek-503-server-overloaded-error' | 'pipeline-error-groq-400-bad-request-validation-failed' | 'pipeline-error-groq-401-unauthorized' | 'pipeline-error-groq-403-model-access-denied' | 'pipeline-error-groq-429-exceeded-quota' | 'pipeline-error-groq-500-server-error' | 'pipeline-error-groq-503-server-overloaded-error' | 'pipeline-error-groq-llm-failed' | 'call.in-progress.error-vapifault-groq-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-groq-401-unauthorized' | 'call.in-progress.error-vapifault-groq-403-model-access-denied' | 'call.in-progress.error-vapifault-groq-429-exceeded-quota' | 'call.in-progress.error-providerfault-groq-500-server-error' | 'call.in-progress.error-providerfault-groq-503-server-overloaded-error' | 'pipeline-error-cerebras-400-bad-request-validation-failed' | 'pipeline-error-cerebras-401-unauthorized' | 'pipeline-error-cerebras-403-model-access-denied' | 'pipeline-error-cerebras-429-exceeded-quota' | 'pipeline-error-cerebras-500-server-error' | 'pipeline-error-cerebras-503-server-overloaded-error' | 'pipeline-error-cerebras-llm-failed' | 'call.in-progress.error-vapifault-cerebras-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-cerebras-401-unauthorized' | 'call.in-progress.error-vapifault-cerebras-403-model-access-denied' | 'call.in-progress.error-vapifault-cerebras-429-exceeded-quota' | 'call.in-progress.error-providerfault-cerebras-500-server-error' | 'call.in-progress.error-providerfault-cerebras-503-server-overloaded-error' | 'pipeline-error-anthropic-400-bad-request-validation-failed' | 'pipeline-error-anthropic-401-unauthorized' | 'pipeline-error-anthropic-403-model-access-denied' | 'pipeline-error-anthropic-429-exceeded-quota' | 'pipeline-error-anthropic-500-server-error' | 'pipeline-error-anthropic-503-server-overloaded-error' | 'pipeline-error-anthropic-llm-failed' | 'call.in-progress.error-vapifault-anthropic-llm-failed' | 'call.in-progress.error-vapifault-anthropic-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-500-server-error' | 'call.in-progress.error-providerfault-anthropic-503-server-overloaded-error' | 'pipeline-error-anthropic-bedrock-400-bad-request-validation-failed' | 'pipeline-error-anthropic-bedrock-401-unauthorized' | 'pipeline-error-anthropic-bedrock-403-model-access-denied' | 'pipeline-error-anthropic-bedrock-429-exceeded-quota' | 'pipeline-error-anthropic-bedrock-500-server-error' | 'pipeline-error-anthropic-bedrock-503-server-overloaded-error' | 'pipeline-error-anthropic-bedrock-llm-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-llm-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-bedrock-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-bedrock-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-bedrock-500-server-error' | 'call.in-progress.error-providerfault-anthropic-bedrock-503-server-overloaded-error' | 'pipeline-error-anthropic-vertex-400-bad-request-validation-failed' | 'pipeline-error-anthropic-vertex-401-unauthorized' | 'pipeline-error-anthropic-vertex-403-model-access-denied' | 'pipeline-error-anthropic-vertex-429-exceeded-quota' | 'pipeline-error-anthropic-vertex-500-server-error' | 'pipeline-error-anthropic-vertex-503-server-overloaded-error' | 'pipeline-error-anthropic-vertex-llm-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-llm-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-vertex-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-vertex-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-vertex-500-server-error' | 'call.in-progress.error-providerfault-anthropic-vertex-503-server-overloaded-error' | 'pipeline-error-together-ai-400-bad-request-validation-failed' | 'pipeline-error-together-ai-401-unauthorized' | 'pipeline-error-together-ai-403-model-access-denied' | 'pipeline-error-together-ai-429-exceeded-quota' | 'pipeline-error-together-ai-500-server-error' | 'pipeline-error-together-ai-503-server-overloaded-error' | 'pipeline-error-together-ai-llm-failed' | 'call.in-progress.error-vapifault-together-ai-llm-failed' | 'call.in-progress.error-vapifault-together-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-together-ai-401-unauthorized' | 'call.in-progress.error-vapifault-together-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-together-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-together-ai-500-server-error' | 'call.in-progress.error-providerfault-together-ai-503-server-overloaded-error' | 'pipeline-error-anyscale-400-bad-request-validation-failed' | 'pipeline-error-anyscale-401-unauthorized' | 'pipeline-error-anyscale-403-model-access-denied' | 'pipeline-error-anyscale-429-exceeded-quota' | 'pipeline-error-anyscale-500-server-error' | 'pipeline-error-anyscale-503-server-overloaded-error' | 'pipeline-error-anyscale-llm-failed' | 'call.in-progress.error-vapifault-anyscale-llm-failed' | 'call.in-progress.error-vapifault-anyscale-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anyscale-401-unauthorized' | 'call.in-progress.error-vapifault-anyscale-403-model-access-denied' | 'call.in-progress.error-vapifault-anyscale-429-exceeded-quota' | 'call.in-progress.error-providerfault-anyscale-500-server-error' | 'call.in-progress.error-providerfault-anyscale-503-server-overloaded-error' | 'pipeline-error-openrouter-400-bad-request-validation-failed' | 'pipeline-error-openrouter-401-unauthorized' | 'pipeline-error-openrouter-403-model-access-denied' | 'pipeline-error-openrouter-429-exceeded-quota' | 'pipeline-error-openrouter-500-server-error' | 'pipeline-error-openrouter-503-server-overloaded-error' | 'pipeline-error-openrouter-llm-failed' | 'call.in-progress.error-vapifault-openrouter-llm-failed' | 'call.in-progress.error-vapifault-openrouter-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-openrouter-401-unauthorized' | 'call.in-progress.error-vapifault-openrouter-403-model-access-denied' | 'call.in-progress.error-vapifault-openrouter-429-exceeded-quota' | 'call.in-progress.error-providerfault-openrouter-500-server-error' | 'call.in-progress.error-providerfault-openrouter-503-server-overloaded-error' | 'pipeline-error-perplexity-ai-400-bad-request-validation-failed' | 'pipeline-error-perplexity-ai-401-unauthorized' | 'pipeline-error-perplexity-ai-403-model-access-denied' | 'pipeline-error-perplexity-ai-429-exceeded-quota' | 'pipeline-error-perplexity-ai-500-server-error' | 'pipeline-error-perplexity-ai-503-server-overloaded-error' | 'pipeline-error-perplexity-ai-llm-failed' | 'call.in-progress.error-vapifault-perplexity-ai-llm-failed' | 'call.in-progress.error-vapifault-perplexity-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-perplexity-ai-401-unauthorized' | 'call.in-progress.error-vapifault-perplexity-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-perplexity-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-perplexity-ai-500-server-error' | 'call.in-progress.error-providerfault-perplexity-ai-503-server-overloaded-error' | 'pipeline-error-deepinfra-400-bad-request-validation-failed' | 'pipeline-error-deepinfra-401-unauthorized' | 'pipeline-error-deepinfra-403-model-access-denied' | 'pipeline-error-deepinfra-429-exceeded-quota' | 'pipeline-error-deepinfra-500-server-error' | 'pipeline-error-deepinfra-503-server-overloaded-error' | 'pipeline-error-deepinfra-llm-failed' | 'call.in-progress.error-vapifault-deepinfra-llm-failed' | 'call.in-progress.error-vapifault-deepinfra-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-deepinfra-401-unauthorized' | 'call.in-progress.error-vapifault-deepinfra-403-model-access-denied' | 'call.in-progress.error-vapifault-deepinfra-429-exceeded-quota' | 'call.in-progress.error-providerfault-deepinfra-500-server-error' | 'call.in-progress.error-providerfault-deepinfra-503-server-overloaded-error' | 'pipeline-error-runpod-400-bad-request-validation-failed' | 'pipeline-error-runpod-401-unauthorized' | 'pipeline-error-runpod-403-model-access-denied' | 'pipeline-error-runpod-429-exceeded-quota' | 'pipeline-error-runpod-500-server-error' | 'pipeline-error-runpod-503-server-overloaded-error' | 'pipeline-error-runpod-llm-failed' | 'call.in-progress.error-vapifault-runpod-llm-failed' | 'call.in-progress.error-vapifault-runpod-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-runpod-401-unauthorized' | 'call.in-progress.error-vapifault-runpod-403-model-access-denied' | 'call.in-progress.error-vapifault-runpod-429-exceeded-quota' | 'call.in-progress.error-providerfault-runpod-500-server-error' | 'call.in-progress.error-providerfault-runpod-503-server-overloaded-error' | 'pipeline-error-custom-llm-400-bad-request-validation-failed' | 'pipeline-error-custom-llm-401-unauthorized' | 'pipeline-error-custom-llm-403-model-access-denied' | 'pipeline-error-custom-llm-429-exceeded-quota' | 'pipeline-error-custom-llm-500-server-error' | 'pipeline-error-custom-llm-503-server-overloaded-error' | 'pipeline-error-custom-llm-llm-failed' | 'call.in-progress.error-vapifault-custom-llm-llm-failed' | 'call.in-progress.error-vapifault-custom-llm-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-custom-llm-401-unauthorized' | 'call.in-progress.error-vapifault-custom-llm-403-model-access-denied' | 'call.in-progress.error-vapifault-custom-llm-429-exceeded-quota' | 'call.in-progress.error-providerfault-custom-llm-500-server-error' | 'call.in-progress.error-providerfault-custom-llm-503-server-overloaded-error' | 'pipeline-error-custom-voice-failed' | 'pipeline-error-cartesia-socket-hang-up' | 'pipeline-error-cartesia-requested-payment' | 'pipeline-error-cartesia-500-server-error' | 'pipeline-error-cartesia-503-server-error' | 'pipeline-error-cartesia-522-server-error' | 'call.in-progress.error-vapifault-cartesia-socket-hang-up' | 'call.in-progress.error-vapifault-cartesia-requested-payment' | 'call.in-progress.error-providerfault-cartesia-500-server-error' | 'call.in-progress.error-providerfault-cartesia-503-server-error' | 'call.in-progress.error-providerfault-cartesia-522-server-error' | 'pipeline-error-eleven-labs-voice-not-found' | 'pipeline-error-eleven-labs-quota-exceeded' | 'pipeline-error-eleven-labs-unauthorized-access' | 'pipeline-error-eleven-labs-unauthorized-to-access-model' | 'pipeline-error-eleven-labs-professional-voices-only-for-creator-plus' | 'pipeline-error-eleven-labs-blocked-free-plan-and-requested-upgrade' | 'pipeline-error-eleven-labs-blocked-concurrent-requests-and-requested-upgrade' | 'pipeline-error-eleven-labs-blocked-using-instant-voice-clone-and-requested-upgrade' | 'pipeline-error-eleven-labs-system-busy-and-requested-upgrade' | 'pipeline-error-eleven-labs-voice-not-fine-tuned' | 'pipeline-error-eleven-labs-invalid-api-key' | 'pipeline-error-eleven-labs-invalid-voice-samples' | 'pipeline-error-eleven-labs-voice-disabled-by-owner' | 'pipeline-error-eleven-labs-blocked-account-in-probation' | 'pipeline-error-eleven-labs-blocked-content-against-their-policy' | 'pipeline-error-eleven-labs-missing-samples-for-voice-clone' | 'pipeline-error-eleven-labs-voice-not-fine-tuned-and-cannot-be-used' | 'pipeline-error-eleven-labs-voice-not-allowed-for-free-users' | 'pipeline-error-eleven-labs-max-character-limit-exceeded' | 'pipeline-error-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification' | 'pipeline-error-eleven-labs-500-server-error' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-found' | 'call.in-progress.error-vapifault-eleven-labs-quota-exceeded' | 'call.in-progress.error-vapifault-eleven-labs-unauthorized-access' | 'call.in-progress.error-vapifault-eleven-labs-unauthorized-to-access-model' | 'call.in-progress.error-vapifault-eleven-labs-professional-voices-only-for-creator-plus' | 'call.in-progress.error-vapifault-eleven-labs-blocked-free-plan-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-blocked-concurrent-requests-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-blocked-using-instant-voice-clone-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-system-busy-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-fine-tuned' | 'call.in-progress.error-vapifault-eleven-labs-invalid-api-key' | 'call.in-progress.error-vapifault-eleven-labs-invalid-voice-samples' | 'call.in-progress.error-vapifault-eleven-labs-voice-disabled-by-owner' | 'call.in-progress.error-vapifault-eleven-labs-blocked-account-in-probation' | 'call.in-progress.error-vapifault-eleven-labs-blocked-content-against-their-policy' | 'call.in-progress.error-vapifault-eleven-labs-missing-samples-for-voice-clone' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-fine-tuned-and-cannot-be-used' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-allowed-for-free-users' | 'call.in-progress.error-vapifault-eleven-labs-max-character-limit-exceeded' | 'call.in-progress.error-vapifault-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification' | 'call.in-progress.error-providerfault-eleven-labs-500-server-error' | 'pipeline-error-playht-request-timed-out' | 'pipeline-error-playht-invalid-voice' | 'pipeline-error-playht-unexpected-error' | 'pipeline-error-playht-out-of-credits' | 'pipeline-error-playht-invalid-emotion' | 'pipeline-error-playht-voice-must-be-a-valid-voice-manifest-uri' | 'pipeline-error-playht-401-unauthorized' | 'pipeline-error-playht-403-forbidden-out-of-characters' | 'pipeline-error-playht-403-forbidden-api-access-not-available' | 'pipeline-error-playht-429-exceeded-quota' | 'pipeline-error-playht-502-gateway-error' | 'pipeline-error-playht-504-gateway-error' | 'call.in-progress.error-vapifault-playht-request-timed-out' | 'call.in-progress.error-vapifault-playht-invalid-voice' | 'call.in-progress.error-vapifault-playht-unexpected-error' | 'call.in-progress.error-vapifault-playht-out-of-credits' | 'call.in-progress.error-vapifault-playht-invalid-emotion' | 'call.in-progress.error-vapifault-playht-voice-must-be-a-valid-voice-manifest-uri' | 'call.in-progress.error-vapifault-playht-401-unauthorized' | 'call.in-progress.error-vapifault-playht-403-forbidden-out-of-characters' | 'call.in-progress.error-vapifault-playht-403-forbidden-api-access-not-available' | 'call.in-progress.error-vapifault-playht-429-exceeded-quota' | 'call.in-progress.error-providerfault-playht-502-gateway-error' | 'call.in-progress.error-providerfault-playht-504-gateway-error' | 'pipeline-error-custom-transcriber-failed' | 'call.in-progress.error-vapifault-custom-transcriber-failed' | 'pipeline-error-eleven-labs-transcriber-failed' | 'call.in-progress.error-vapifault-eleven-labs-transcriber-failed' | 'pipeline-error-deepgram-returning-400-no-such-model-language-tier-combination' | 'pipeline-error-deepgram-returning-401-invalid-credentials' | 'pipeline-error-deepgram-returning-403-model-access-denied' | 'pipeline-error-deepgram-returning-404-not-found' | 'pipeline-error-deepgram-returning-500-invalid-json' | 'pipeline-error-deepgram-returning-502-network-error' | 'pipeline-error-deepgram-returning-502-bad-gateway-ehostunreach' | 'call.in-progress.error-vapifault-deepgram-returning-400-no-such-model-language-tier-combination' | 'call.in-progress.error-vapifault-deepgram-returning-401-invalid-credentials' | 'call.in-progress.error-vapifault-deepgram-returning-404-not-found' | 'call.in-progress.error-vapifault-deepgram-returning-403-model-access-denied' | 'call.in-progress.error-providerfault-deepgram-returning-500-invalid-json' | 'call.in-progress.error-providerfault-deepgram-returning-502-network-error' | 'call.in-progress.error-providerfault-deepgram-returning-502-bad-gateway-ehostunreach' | 'pipeline-error-google-transcriber-failed' | 'call.in-progress.error-vapifault-google-transcriber-failed' | 'pipeline-error-openai-transcriber-failed' | 'call.in-progress.error-vapifault-openai-transcriber-failed' | 'assistant-ended-call' | 'assistant-said-end-call-phrase' | 'assistant-ended-call-with-hangup-task' | 'assistant-ended-call-after-message-spoken' | 'assistant-forwarded-call' | 'assistant-join-timed-out' | 'call.in-progress.error-assistant-did-not-receive-customer-audio' | 'customer-busy' | 'customer-ended-call' | 'customer-did-not-answer' | 'customer-did-not-give-microphone-permission' | 'exceeded-max-duration' | 'manually-canceled' | 'phone-call-provider-closed-websocket' | 'call.forwarding.operator-busy' | 'silence-timed-out' | 'call.in-progress.error-sip-telephony-provider-failed-to-connect-call' | 'call.ringing.hook-executed-say' | 'call.ringing.hook-executed-transfer' | 'twilio-failed-to-connect-call' | 'twilio-reported-customer-misdialed' | 'vonage-rejected' | 'voicemail';
|
|
14521
|
+
endedReason: 'call-start-error-neither-assistant-nor-server-set' | 'assistant-request-failed' | 'assistant-request-returned-error' | 'assistant-request-returned-unspeakable-error' | 'assistant-request-returned-invalid-assistant' | 'assistant-request-returned-no-assistant' | 'assistant-request-returned-forwarding-phone-number' | 'call.start.error-get-org' | 'call.start.error-get-subscription' | 'call.start.error-get-assistant' | 'call.start.error-get-phone-number' | 'call.start.error-get-customer' | 'call.start.error-get-resources-validation' | 'call.start.error-vapi-number-international' | 'call.start.error-vapi-number-outbound-daily-limit' | 'call.start.error-get-transport' | 'assistant-not-valid' | 'database-error' | 'assistant-not-found' | 'pipeline-error-openai-voice-failed' | 'pipeline-error-cartesia-voice-failed' | 'pipeline-error-deepgram-voice-failed' | 'pipeline-error-eleven-labs-voice-failed' | 'pipeline-error-playht-voice-failed' | 'pipeline-error-lmnt-voice-failed' | 'pipeline-error-azure-voice-failed' | 'pipeline-error-rime-ai-voice-failed' | 'pipeline-error-smallest-ai-voice-failed' | 'pipeline-error-neuphonic-voice-failed' | 'pipeline-error-hume-voice-failed' | 'pipeline-error-sesame-voice-failed' | 'pipeline-error-tavus-video-failed' | 'call.in-progress.error-vapifault-openai-voice-failed' | 'call.in-progress.error-vapifault-cartesia-voice-failed' | 'call.in-progress.error-vapifault-deepgram-voice-failed' | 'call.in-progress.error-vapifault-eleven-labs-voice-failed' | 'call.in-progress.error-vapifault-playht-voice-failed' | 'call.in-progress.error-vapifault-lmnt-voice-failed' | 'call.in-progress.error-vapifault-azure-voice-failed' | 'call.in-progress.error-vapifault-rime-ai-voice-failed' | 'call.in-progress.error-vapifault-smallest-ai-voice-failed' | 'call.in-progress.error-vapifault-neuphonic-voice-failed' | 'call.in-progress.error-vapifault-hume-voice-failed' | 'call.in-progress.error-vapifault-sesame-voice-failed' | 'call.in-progress.error-vapifault-tavus-video-failed' | 'pipeline-error-vapi-llm-failed' | 'pipeline-error-vapi-400-bad-request-validation-failed' | 'pipeline-error-vapi-401-unauthorized' | 'pipeline-error-vapi-403-model-access-denied' | 'pipeline-error-vapi-429-exceeded-quota' | 'pipeline-error-vapi-500-server-error' | 'pipeline-error-vapi-503-server-overloaded-error' | 'call.in-progress.error-vapifault-vapi-llm-failed' | 'call.in-progress.error-vapifault-vapi-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-vapi-401-unauthorized' | 'call.in-progress.error-vapifault-vapi-403-model-access-denied' | 'call.in-progress.error-vapifault-vapi-429-exceeded-quota' | 'call.in-progress.error-providerfault-vapi-500-server-error' | 'call.in-progress.error-providerfault-vapi-503-server-overloaded-error' | 'pipeline-error-deepgram-transcriber-failed' | 'call.in-progress.error-vapifault-deepgram-transcriber-failed' | 'pipeline-error-gladia-transcriber-failed' | 'call.in-progress.error-vapifault-gladia-transcriber-failed' | 'pipeline-error-speechmatics-transcriber-failed' | 'call.in-progress.error-vapifault-speechmatics-transcriber-failed' | 'pipeline-error-assembly-ai-transcriber-failed' | 'pipeline-error-assembly-ai-returning-400-insufficent-funds' | 'pipeline-error-assembly-ai-returning-400-paid-only-feature' | 'pipeline-error-assembly-ai-returning-401-invalid-credentials' | 'pipeline-error-assembly-ai-returning-500-invalid-schema' | 'pipeline-error-assembly-ai-returning-500-word-boost-parsing-failed' | 'call.in-progress.error-vapifault-assembly-ai-transcriber-failed' | 'call.in-progress.error-vapifault-assembly-ai-returning-400-insufficent-funds' | 'call.in-progress.error-vapifault-assembly-ai-returning-400-paid-only-feature' | 'call.in-progress.error-vapifault-assembly-ai-returning-401-invalid-credentials' | 'call.in-progress.error-vapifault-assembly-ai-returning-500-invalid-schema' | 'call.in-progress.error-vapifault-assembly-ai-returning-500-word-boost-parsing-failed' | 'pipeline-error-talkscriber-transcriber-failed' | 'call.in-progress.error-vapifault-talkscriber-transcriber-failed' | 'pipeline-error-azure-speech-transcriber-failed' | 'call.in-progress.error-vapifault-azure-speech-transcriber-failed' | 'call.in-progress.error-pipeline-no-available-llm-model' | 'worker-shutdown' | 'unknown-error' | 'vonage-disconnected' | 'vonage-failed-to-connect-call' | 'vonage-completed' | 'phone-call-provider-bypass-enabled-but-no-call-received' | 'call.in-progress.error-providerfault-transport-never-connected' | 'call.in-progress.error-vapifault-worker-not-available' | 'call.in-progress.error-vapifault-transport-never-connected' | 'call.in-progress.error-vapifault-transport-connected-but-call-not-active' | 'call.in-progress.error-vapifault-call-started-but-connection-to-transport-missing' | 'call.in-progress.error-vapifault-worker-died' | 'call.in-progress.error-vapifault-openai-llm-failed' | 'call.in-progress.error-vapifault-azure-openai-llm-failed' | 'call.in-progress.error-vapifault-groq-llm-failed' | 'call.in-progress.error-vapifault-google-llm-failed' | 'call.in-progress.error-vapifault-xai-llm-failed' | 'call.in-progress.error-vapifault-mistral-llm-failed' | 'call.in-progress.error-vapifault-inflection-ai-llm-failed' | 'call.in-progress.error-vapifault-cerebras-llm-failed' | 'call.in-progress.error-vapifault-deep-seek-llm-failed' | 'pipeline-error-openai-400-bad-request-validation-failed' | 'pipeline-error-openai-401-unauthorized' | 'pipeline-error-openai-401-incorrect-api-key' | 'pipeline-error-openai-401-account-not-in-organization' | 'pipeline-error-openai-403-model-access-denied' | 'pipeline-error-openai-429-exceeded-quota' | 'pipeline-error-openai-429-rate-limit-reached' | 'pipeline-error-openai-500-server-error' | 'pipeline-error-openai-503-server-overloaded-error' | 'pipeline-error-openai-llm-failed' | 'call.in-progress.error-vapifault-openai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-openai-401-unauthorized' | 'call.in-progress.error-vapifault-openai-401-incorrect-api-key' | 'call.in-progress.error-vapifault-openai-401-account-not-in-organization' | 'call.in-progress.error-vapifault-openai-403-model-access-denied' | 'call.in-progress.error-vapifault-openai-429-exceeded-quota' | 'call.in-progress.error-vapifault-openai-429-rate-limit-reached' | 'call.in-progress.error-providerfault-openai-500-server-error' | 'call.in-progress.error-providerfault-openai-503-server-overloaded-error' | 'pipeline-error-azure-openai-400-bad-request-validation-failed' | 'pipeline-error-azure-openai-401-unauthorized' | 'pipeline-error-azure-openai-403-model-access-denied' | 'pipeline-error-azure-openai-429-exceeded-quota' | 'pipeline-error-azure-openai-500-server-error' | 'pipeline-error-azure-openai-503-server-overloaded-error' | 'pipeline-error-azure-openai-llm-failed' | 'call.in-progress.error-vapifault-azure-openai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-azure-openai-401-unauthorized' | 'call.in-progress.error-vapifault-azure-openai-403-model-access-denied' | 'call.in-progress.error-vapifault-azure-openai-429-exceeded-quota' | 'call.in-progress.error-providerfault-azure-openai-500-server-error' | 'call.in-progress.error-providerfault-azure-openai-503-server-overloaded-error' | 'pipeline-error-google-400-bad-request-validation-failed' | 'pipeline-error-google-401-unauthorized' | 'pipeline-error-google-403-model-access-denied' | 'pipeline-error-google-429-exceeded-quota' | 'pipeline-error-google-500-server-error' | 'pipeline-error-google-503-server-overloaded-error' | 'pipeline-error-google-llm-failed' | 'call.in-progress.error-vapifault-google-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-google-401-unauthorized' | 'call.in-progress.error-vapifault-google-403-model-access-denied' | 'call.in-progress.error-vapifault-google-429-exceeded-quota' | 'call.in-progress.error-providerfault-google-500-server-error' | 'call.in-progress.error-providerfault-google-503-server-overloaded-error' | 'pipeline-error-xai-400-bad-request-validation-failed' | 'pipeline-error-xai-401-unauthorized' | 'pipeline-error-xai-403-model-access-denied' | 'pipeline-error-xai-429-exceeded-quota' | 'pipeline-error-xai-500-server-error' | 'pipeline-error-xai-503-server-overloaded-error' | 'pipeline-error-xai-llm-failed' | 'call.in-progress.error-vapifault-xai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-xai-401-unauthorized' | 'call.in-progress.error-vapifault-xai-403-model-access-denied' | 'call.in-progress.error-vapifault-xai-429-exceeded-quota' | 'call.in-progress.error-providerfault-xai-500-server-error' | 'call.in-progress.error-providerfault-xai-503-server-overloaded-error' | 'pipeline-error-mistral-400-bad-request-validation-failed' | 'pipeline-error-mistral-401-unauthorized' | 'pipeline-error-mistral-403-model-access-denied' | 'pipeline-error-mistral-429-exceeded-quota' | 'pipeline-error-mistral-500-server-error' | 'pipeline-error-mistral-503-server-overloaded-error' | 'pipeline-error-mistral-llm-failed' | 'call.in-progress.error-vapifault-mistral-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-mistral-401-unauthorized' | 'call.in-progress.error-vapifault-mistral-403-model-access-denied' | 'call.in-progress.error-vapifault-mistral-429-exceeded-quota' | 'call.in-progress.error-providerfault-mistral-500-server-error' | 'call.in-progress.error-providerfault-mistral-503-server-overloaded-error' | 'pipeline-error-inflection-ai-400-bad-request-validation-failed' | 'pipeline-error-inflection-ai-401-unauthorized' | 'pipeline-error-inflection-ai-403-model-access-denied' | 'pipeline-error-inflection-ai-429-exceeded-quota' | 'pipeline-error-inflection-ai-500-server-error' | 'pipeline-error-inflection-ai-503-server-overloaded-error' | 'pipeline-error-inflection-ai-llm-failed' | 'call.in-progress.error-vapifault-inflection-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-inflection-ai-401-unauthorized' | 'call.in-progress.error-vapifault-inflection-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-inflection-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-inflection-ai-500-server-error' | 'call.in-progress.error-providerfault-inflection-ai-503-server-overloaded-error' | 'pipeline-error-deep-seek-400-bad-request-validation-failed' | 'pipeline-error-deep-seek-401-unauthorized' | 'pipeline-error-deep-seek-403-model-access-denied' | 'pipeline-error-deep-seek-429-exceeded-quota' | 'pipeline-error-deep-seek-500-server-error' | 'pipeline-error-deep-seek-503-server-overloaded-error' | 'pipeline-error-deep-seek-llm-failed' | 'call.in-progress.error-vapifault-deep-seek-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-deep-seek-401-unauthorized' | 'call.in-progress.error-vapifault-deep-seek-403-model-access-denied' | 'call.in-progress.error-vapifault-deep-seek-429-exceeded-quota' | 'call.in-progress.error-providerfault-deep-seek-500-server-error' | 'call.in-progress.error-providerfault-deep-seek-503-server-overloaded-error' | 'pipeline-error-groq-400-bad-request-validation-failed' | 'pipeline-error-groq-401-unauthorized' | 'pipeline-error-groq-403-model-access-denied' | 'pipeline-error-groq-429-exceeded-quota' | 'pipeline-error-groq-500-server-error' | 'pipeline-error-groq-503-server-overloaded-error' | 'pipeline-error-groq-llm-failed' | 'call.in-progress.error-vapifault-groq-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-groq-401-unauthorized' | 'call.in-progress.error-vapifault-groq-403-model-access-denied' | 'call.in-progress.error-vapifault-groq-429-exceeded-quota' | 'call.in-progress.error-providerfault-groq-500-server-error' | 'call.in-progress.error-providerfault-groq-503-server-overloaded-error' | 'pipeline-error-cerebras-400-bad-request-validation-failed' | 'pipeline-error-cerebras-401-unauthorized' | 'pipeline-error-cerebras-403-model-access-denied' | 'pipeline-error-cerebras-429-exceeded-quota' | 'pipeline-error-cerebras-500-server-error' | 'pipeline-error-cerebras-503-server-overloaded-error' | 'pipeline-error-cerebras-llm-failed' | 'call.in-progress.error-vapifault-cerebras-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-cerebras-401-unauthorized' | 'call.in-progress.error-vapifault-cerebras-403-model-access-denied' | 'call.in-progress.error-vapifault-cerebras-429-exceeded-quota' | 'call.in-progress.error-providerfault-cerebras-500-server-error' | 'call.in-progress.error-providerfault-cerebras-503-server-overloaded-error' | 'pipeline-error-anthropic-400-bad-request-validation-failed' | 'pipeline-error-anthropic-401-unauthorized' | 'pipeline-error-anthropic-403-model-access-denied' | 'pipeline-error-anthropic-429-exceeded-quota' | 'pipeline-error-anthropic-500-server-error' | 'pipeline-error-anthropic-503-server-overloaded-error' | 'pipeline-error-anthropic-llm-failed' | 'call.in-progress.error-vapifault-anthropic-llm-failed' | 'call.in-progress.error-vapifault-anthropic-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-500-server-error' | 'call.in-progress.error-providerfault-anthropic-503-server-overloaded-error' | 'pipeline-error-anthropic-bedrock-400-bad-request-validation-failed' | 'pipeline-error-anthropic-bedrock-401-unauthorized' | 'pipeline-error-anthropic-bedrock-403-model-access-denied' | 'pipeline-error-anthropic-bedrock-429-exceeded-quota' | 'pipeline-error-anthropic-bedrock-500-server-error' | 'pipeline-error-anthropic-bedrock-503-server-overloaded-error' | 'pipeline-error-anthropic-bedrock-llm-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-llm-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-bedrock-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-bedrock-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-bedrock-500-server-error' | 'call.in-progress.error-providerfault-anthropic-bedrock-503-server-overloaded-error' | 'pipeline-error-anthropic-vertex-400-bad-request-validation-failed' | 'pipeline-error-anthropic-vertex-401-unauthorized' | 'pipeline-error-anthropic-vertex-403-model-access-denied' | 'pipeline-error-anthropic-vertex-429-exceeded-quota' | 'pipeline-error-anthropic-vertex-500-server-error' | 'pipeline-error-anthropic-vertex-503-server-overloaded-error' | 'pipeline-error-anthropic-vertex-llm-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-llm-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-vertex-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-vertex-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-vertex-500-server-error' | 'call.in-progress.error-providerfault-anthropic-vertex-503-server-overloaded-error' | 'pipeline-error-together-ai-400-bad-request-validation-failed' | 'pipeline-error-together-ai-401-unauthorized' | 'pipeline-error-together-ai-403-model-access-denied' | 'pipeline-error-together-ai-429-exceeded-quota' | 'pipeline-error-together-ai-500-server-error' | 'pipeline-error-together-ai-503-server-overloaded-error' | 'pipeline-error-together-ai-llm-failed' | 'call.in-progress.error-vapifault-together-ai-llm-failed' | 'call.in-progress.error-vapifault-together-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-together-ai-401-unauthorized' | 'call.in-progress.error-vapifault-together-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-together-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-together-ai-500-server-error' | 'call.in-progress.error-providerfault-together-ai-503-server-overloaded-error' | 'pipeline-error-anyscale-400-bad-request-validation-failed' | 'pipeline-error-anyscale-401-unauthorized' | 'pipeline-error-anyscale-403-model-access-denied' | 'pipeline-error-anyscale-429-exceeded-quota' | 'pipeline-error-anyscale-500-server-error' | 'pipeline-error-anyscale-503-server-overloaded-error' | 'pipeline-error-anyscale-llm-failed' | 'call.in-progress.error-vapifault-anyscale-llm-failed' | 'call.in-progress.error-vapifault-anyscale-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anyscale-401-unauthorized' | 'call.in-progress.error-vapifault-anyscale-403-model-access-denied' | 'call.in-progress.error-vapifault-anyscale-429-exceeded-quota' | 'call.in-progress.error-providerfault-anyscale-500-server-error' | 'call.in-progress.error-providerfault-anyscale-503-server-overloaded-error' | 'pipeline-error-openrouter-400-bad-request-validation-failed' | 'pipeline-error-openrouter-401-unauthorized' | 'pipeline-error-openrouter-403-model-access-denied' | 'pipeline-error-openrouter-429-exceeded-quota' | 'pipeline-error-openrouter-500-server-error' | 'pipeline-error-openrouter-503-server-overloaded-error' | 'pipeline-error-openrouter-llm-failed' | 'call.in-progress.error-vapifault-openrouter-llm-failed' | 'call.in-progress.error-vapifault-openrouter-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-openrouter-401-unauthorized' | 'call.in-progress.error-vapifault-openrouter-403-model-access-denied' | 'call.in-progress.error-vapifault-openrouter-429-exceeded-quota' | 'call.in-progress.error-providerfault-openrouter-500-server-error' | 'call.in-progress.error-providerfault-openrouter-503-server-overloaded-error' | 'pipeline-error-perplexity-ai-400-bad-request-validation-failed' | 'pipeline-error-perplexity-ai-401-unauthorized' | 'pipeline-error-perplexity-ai-403-model-access-denied' | 'pipeline-error-perplexity-ai-429-exceeded-quota' | 'pipeline-error-perplexity-ai-500-server-error' | 'pipeline-error-perplexity-ai-503-server-overloaded-error' | 'pipeline-error-perplexity-ai-llm-failed' | 'call.in-progress.error-vapifault-perplexity-ai-llm-failed' | 'call.in-progress.error-vapifault-perplexity-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-perplexity-ai-401-unauthorized' | 'call.in-progress.error-vapifault-perplexity-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-perplexity-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-perplexity-ai-500-server-error' | 'call.in-progress.error-providerfault-perplexity-ai-503-server-overloaded-error' | 'pipeline-error-deepinfra-400-bad-request-validation-failed' | 'pipeline-error-deepinfra-401-unauthorized' | 'pipeline-error-deepinfra-403-model-access-denied' | 'pipeline-error-deepinfra-429-exceeded-quota' | 'pipeline-error-deepinfra-500-server-error' | 'pipeline-error-deepinfra-503-server-overloaded-error' | 'pipeline-error-deepinfra-llm-failed' | 'call.in-progress.error-vapifault-deepinfra-llm-failed' | 'call.in-progress.error-vapifault-deepinfra-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-deepinfra-401-unauthorized' | 'call.in-progress.error-vapifault-deepinfra-403-model-access-denied' | 'call.in-progress.error-vapifault-deepinfra-429-exceeded-quota' | 'call.in-progress.error-providerfault-deepinfra-500-server-error' | 'call.in-progress.error-providerfault-deepinfra-503-server-overloaded-error' | 'pipeline-error-runpod-400-bad-request-validation-failed' | 'pipeline-error-runpod-401-unauthorized' | 'pipeline-error-runpod-403-model-access-denied' | 'pipeline-error-runpod-429-exceeded-quota' | 'pipeline-error-runpod-500-server-error' | 'pipeline-error-runpod-503-server-overloaded-error' | 'pipeline-error-runpod-llm-failed' | 'call.in-progress.error-vapifault-runpod-llm-failed' | 'call.in-progress.error-vapifault-runpod-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-runpod-401-unauthorized' | 'call.in-progress.error-vapifault-runpod-403-model-access-denied' | 'call.in-progress.error-vapifault-runpod-429-exceeded-quota' | 'call.in-progress.error-providerfault-runpod-500-server-error' | 'call.in-progress.error-providerfault-runpod-503-server-overloaded-error' | 'pipeline-error-custom-llm-400-bad-request-validation-failed' | 'pipeline-error-custom-llm-401-unauthorized' | 'pipeline-error-custom-llm-403-model-access-denied' | 'pipeline-error-custom-llm-429-exceeded-quota' | 'pipeline-error-custom-llm-500-server-error' | 'pipeline-error-custom-llm-503-server-overloaded-error' | 'pipeline-error-custom-llm-llm-failed' | 'call.in-progress.error-vapifault-custom-llm-llm-failed' | 'call.in-progress.error-vapifault-custom-llm-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-custom-llm-401-unauthorized' | 'call.in-progress.error-vapifault-custom-llm-403-model-access-denied' | 'call.in-progress.error-vapifault-custom-llm-429-exceeded-quota' | 'call.in-progress.error-providerfault-custom-llm-500-server-error' | 'call.in-progress.error-providerfault-custom-llm-503-server-overloaded-error' | 'pipeline-error-custom-voice-failed' | 'pipeline-error-cartesia-socket-hang-up' | 'pipeline-error-cartesia-requested-payment' | 'pipeline-error-cartesia-500-server-error' | 'pipeline-error-cartesia-503-server-error' | 'pipeline-error-cartesia-522-server-error' | 'call.in-progress.error-vapifault-cartesia-socket-hang-up' | 'call.in-progress.error-vapifault-cartesia-requested-payment' | 'call.in-progress.error-providerfault-cartesia-500-server-error' | 'call.in-progress.error-providerfault-cartesia-503-server-error' | 'call.in-progress.error-providerfault-cartesia-522-server-error' | 'pipeline-error-eleven-labs-voice-not-found' | 'pipeline-error-eleven-labs-quota-exceeded' | 'pipeline-error-eleven-labs-unauthorized-access' | 'pipeline-error-eleven-labs-unauthorized-to-access-model' | 'pipeline-error-eleven-labs-professional-voices-only-for-creator-plus' | 'pipeline-error-eleven-labs-blocked-free-plan-and-requested-upgrade' | 'pipeline-error-eleven-labs-blocked-concurrent-requests-and-requested-upgrade' | 'pipeline-error-eleven-labs-blocked-using-instant-voice-clone-and-requested-upgrade' | 'pipeline-error-eleven-labs-system-busy-and-requested-upgrade' | 'pipeline-error-eleven-labs-voice-not-fine-tuned' | 'pipeline-error-eleven-labs-invalid-api-key' | 'pipeline-error-eleven-labs-invalid-voice-samples' | 'pipeline-error-eleven-labs-voice-disabled-by-owner' | 'pipeline-error-eleven-labs-blocked-account-in-probation' | 'pipeline-error-eleven-labs-blocked-content-against-their-policy' | 'pipeline-error-eleven-labs-missing-samples-for-voice-clone' | 'pipeline-error-eleven-labs-voice-not-fine-tuned-and-cannot-be-used' | 'pipeline-error-eleven-labs-voice-not-allowed-for-free-users' | 'pipeline-error-eleven-labs-max-character-limit-exceeded' | 'pipeline-error-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification' | 'pipeline-error-eleven-labs-500-server-error' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-found' | 'call.in-progress.error-vapifault-eleven-labs-quota-exceeded' | 'call.in-progress.error-vapifault-eleven-labs-unauthorized-access' | 'call.in-progress.error-vapifault-eleven-labs-unauthorized-to-access-model' | 'call.in-progress.error-vapifault-eleven-labs-professional-voices-only-for-creator-plus' | 'call.in-progress.error-vapifault-eleven-labs-blocked-free-plan-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-blocked-concurrent-requests-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-blocked-using-instant-voice-clone-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-system-busy-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-fine-tuned' | 'call.in-progress.error-vapifault-eleven-labs-invalid-api-key' | 'call.in-progress.error-vapifault-eleven-labs-invalid-voice-samples' | 'call.in-progress.error-vapifault-eleven-labs-voice-disabled-by-owner' | 'call.in-progress.error-vapifault-eleven-labs-blocked-account-in-probation' | 'call.in-progress.error-vapifault-eleven-labs-blocked-content-against-their-policy' | 'call.in-progress.error-vapifault-eleven-labs-missing-samples-for-voice-clone' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-fine-tuned-and-cannot-be-used' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-allowed-for-free-users' | 'call.in-progress.error-vapifault-eleven-labs-max-character-limit-exceeded' | 'call.in-progress.error-vapifault-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification' | 'call.in-progress.error-providerfault-eleven-labs-500-server-error' | 'pipeline-error-playht-request-timed-out' | 'pipeline-error-playht-invalid-voice' | 'pipeline-error-playht-unexpected-error' | 'pipeline-error-playht-out-of-credits' | 'pipeline-error-playht-invalid-emotion' | 'pipeline-error-playht-voice-must-be-a-valid-voice-manifest-uri' | 'pipeline-error-playht-401-unauthorized' | 'pipeline-error-playht-403-forbidden-out-of-characters' | 'pipeline-error-playht-403-forbidden-api-access-not-available' | 'pipeline-error-playht-429-exceeded-quota' | 'pipeline-error-playht-502-gateway-error' | 'pipeline-error-playht-504-gateway-error' | 'call.in-progress.error-vapifault-playht-request-timed-out' | 'call.in-progress.error-vapifault-playht-invalid-voice' | 'call.in-progress.error-vapifault-playht-unexpected-error' | 'call.in-progress.error-vapifault-playht-out-of-credits' | 'call.in-progress.error-vapifault-playht-invalid-emotion' | 'call.in-progress.error-vapifault-playht-voice-must-be-a-valid-voice-manifest-uri' | 'call.in-progress.error-vapifault-playht-401-unauthorized' | 'call.in-progress.error-vapifault-playht-403-forbidden-out-of-characters' | 'call.in-progress.error-vapifault-playht-403-forbidden-api-access-not-available' | 'call.in-progress.error-vapifault-playht-429-exceeded-quota' | 'call.in-progress.error-providerfault-playht-502-gateway-error' | 'call.in-progress.error-providerfault-playht-504-gateway-error' | 'pipeline-error-custom-transcriber-failed' | 'call.in-progress.error-vapifault-custom-transcriber-failed' | 'pipeline-error-eleven-labs-transcriber-failed' | 'call.in-progress.error-vapifault-eleven-labs-transcriber-failed' | 'pipeline-error-deepgram-returning-400-no-such-model-language-tier-combination' | 'pipeline-error-deepgram-returning-401-invalid-credentials' | 'pipeline-error-deepgram-returning-403-model-access-denied' | 'pipeline-error-deepgram-returning-404-not-found' | 'pipeline-error-deepgram-returning-500-invalid-json' | 'pipeline-error-deepgram-returning-502-network-error' | 'pipeline-error-deepgram-returning-502-bad-gateway-ehostunreach' | 'call.in-progress.error-vapifault-deepgram-returning-400-no-such-model-language-tier-combination' | 'call.in-progress.error-vapifault-deepgram-returning-401-invalid-credentials' | 'call.in-progress.error-vapifault-deepgram-returning-404-not-found' | 'call.in-progress.error-vapifault-deepgram-returning-403-model-access-denied' | 'call.in-progress.error-providerfault-deepgram-returning-500-invalid-json' | 'call.in-progress.error-providerfault-deepgram-returning-502-network-error' | 'call.in-progress.error-providerfault-deepgram-returning-502-bad-gateway-ehostunreach' | 'pipeline-error-google-transcriber-failed' | 'call.in-progress.error-vapifault-google-transcriber-failed' | 'pipeline-error-openai-transcriber-failed' | 'call.in-progress.error-vapifault-openai-transcriber-failed' | 'assistant-ended-call' | 'assistant-said-end-call-phrase' | 'assistant-ended-call-with-hangup-task' | 'assistant-ended-call-after-message-spoken' | 'assistant-forwarded-call' | 'assistant-join-timed-out' | 'call.in-progress.error-assistant-did-not-receive-customer-audio' | 'customer-busy' | 'customer-ended-call' | 'customer-did-not-answer' | 'customer-did-not-give-microphone-permission' | 'exceeded-max-duration' | 'manually-canceled' | 'phone-call-provider-closed-websocket' | 'call.forwarding.operator-busy' | 'silence-timed-out' | 'call.in-progress.error-sip-inbound-call-failed-to-connect' | 'call.in-progress.error-providerfault-outbound-sip-403-forbidden' | 'call.in-progress.error-providerfault-outbound-sip-407-proxy-authentication-required' | 'call.in-progress.error-providerfault-outbound-sip-503-service-unavailable' | 'call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable' | 'call.in-progress.error-sip-outbound-call-failed-to-connect' | 'call.ringing.hook-executed-say' | 'call.ringing.hook-executed-transfer' | 'twilio-failed-to-connect-call' | 'twilio-reported-customer-misdialed' | 'vonage-rejected' | 'voicemail';
|
|
15217
14522
|
/** This is the cost of the call in USD. This can also be found at `call.cost` on GET /call/:id. */
|
|
15218
14523
|
cost?: number;
|
|
15219
14524
|
/** These are the costs of individual components of the call in USD. This can also be found at `call.costs` on GET /call/:id. */
|
|
@@ -15375,7 +14680,7 @@ export interface ServerMessageStatusUpdate {
|
|
|
15375
14680
|
/** This is the status of the call. */
|
|
15376
14681
|
status: 'scheduled' | 'queued' | 'ringing' | 'in-progress' | 'forwarding' | 'ended';
|
|
15377
14682
|
/** This is the reason the call ended. This is only sent if the status is "ended". */
|
|
15378
|
-
endedReason?: 'call-start-error-neither-assistant-nor-server-set' | 'assistant-request-failed' | 'assistant-request-returned-error' | 'assistant-request-returned-unspeakable-error' | 'assistant-request-returned-invalid-assistant' | 'assistant-request-returned-no-assistant' | 'assistant-request-returned-forwarding-phone-number' | 'call.start.error-get-org' | 'call.start.error-get-subscription' | 'call.start.error-get-assistant' | 'call.start.error-get-phone-number' | 'call.start.error-get-customer' | 'call.start.error-get-resources-validation' | 'call.start.error-vapi-number-international' | 'call.start.error-vapi-number-outbound-daily-limit' | 'call.start.error-get-transport' | 'assistant-not-valid' | 'database-error' | 'assistant-not-found' | 'pipeline-error-openai-voice-failed' | 'pipeline-error-cartesia-voice-failed' | 'pipeline-error-deepgram-voice-failed' | 'pipeline-error-eleven-labs-voice-failed' | 'pipeline-error-playht-voice-failed' | 'pipeline-error-lmnt-voice-failed' | 'pipeline-error-azure-voice-failed' | 'pipeline-error-rime-ai-voice-failed' | 'pipeline-error-smallest-ai-voice-failed' | 'pipeline-error-neuphonic-voice-failed' | 'pipeline-error-hume-voice-failed' | 'pipeline-error-sesame-voice-failed' | 'pipeline-error-tavus-video-failed' | 'call.in-progress.error-vapifault-openai-voice-failed' | 'call.in-progress.error-vapifault-cartesia-voice-failed' | 'call.in-progress.error-vapifault-deepgram-voice-failed' | 'call.in-progress.error-vapifault-eleven-labs-voice-failed' | 'call.in-progress.error-vapifault-playht-voice-failed' | 'call.in-progress.error-vapifault-lmnt-voice-failed' | 'call.in-progress.error-vapifault-azure-voice-failed' | 'call.in-progress.error-vapifault-rime-ai-voice-failed' | 'call.in-progress.error-vapifault-smallest-ai-voice-failed' | 'call.in-progress.error-vapifault-neuphonic-voice-failed' | 'call.in-progress.error-vapifault-hume-voice-failed' | 'call.in-progress.error-vapifault-sesame-voice-failed' | 'call.in-progress.error-vapifault-tavus-video-failed' | 'pipeline-error-vapi-llm-failed' | 'pipeline-error-vapi-400-bad-request-validation-failed' | 'pipeline-error-vapi-401-unauthorized' | 'pipeline-error-vapi-403-model-access-denied' | 'pipeline-error-vapi-429-exceeded-quota' | 'pipeline-error-vapi-500-server-error' | 'pipeline-error-vapi-503-server-overloaded-error' | 'call.in-progress.error-vapifault-vapi-llm-failed' | 'call.in-progress.error-vapifault-vapi-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-vapi-401-unauthorized' | 'call.in-progress.error-vapifault-vapi-403-model-access-denied' | 'call.in-progress.error-vapifault-vapi-429-exceeded-quota' | 'call.in-progress.error-providerfault-vapi-500-server-error' | 'call.in-progress.error-providerfault-vapi-503-server-overloaded-error' | 'pipeline-error-deepgram-transcriber-failed' | 'call.in-progress.error-vapifault-deepgram-transcriber-failed' | 'pipeline-error-gladia-transcriber-failed' | 'call.in-progress.error-vapifault-gladia-transcriber-failed' | 'pipeline-error-speechmatics-transcriber-failed' | 'call.in-progress.error-vapifault-speechmatics-transcriber-failed' | 'pipeline-error-assembly-ai-transcriber-failed' | 'pipeline-error-assembly-ai-returning-400-insufficent-funds' | 'pipeline-error-assembly-ai-returning-400-paid-only-feature' | 'pipeline-error-assembly-ai-returning-401-invalid-credentials' | 'pipeline-error-assembly-ai-returning-500-invalid-schema' | 'pipeline-error-assembly-ai-returning-500-word-boost-parsing-failed' | 'call.in-progress.error-vapifault-assembly-ai-transcriber-failed' | 'call.in-progress.error-vapifault-assembly-ai-returning-400-insufficent-funds' | 'call.in-progress.error-vapifault-assembly-ai-returning-400-paid-only-feature' | 'call.in-progress.error-vapifault-assembly-ai-returning-401-invalid-credentials' | 'call.in-progress.error-vapifault-assembly-ai-returning-500-invalid-schema' | 'call.in-progress.error-vapifault-assembly-ai-returning-500-word-boost-parsing-failed' | 'pipeline-error-talkscriber-transcriber-failed' | 'call.in-progress.error-vapifault-talkscriber-transcriber-failed' | 'pipeline-error-azure-speech-transcriber-failed' | 'call.in-progress.error-vapifault-azure-speech-transcriber-failed' | 'call.in-progress.error-pipeline-no-available-llm-model' | 'worker-shutdown' | 'unknown-error' | 'vonage-disconnected' | 'vonage-failed-to-connect-call' | 'vonage-completed' | 'phone-call-provider-bypass-enabled-but-no-call-received' | 'call.in-progress.error-providerfault-transport-never-connected' | 'call.in-progress.error-vapifault-worker-not-available' | 'call.in-progress.error-vapifault-transport-never-connected' | 'call.in-progress.error-vapifault-transport-connected-but-call-not-active' | 'call.in-progress.error-vapifault-call-started-but-connection-to-transport-missing' | 'call.in-progress.error-vapifault-openai-llm-failed' | 'call.in-progress.error-vapifault-azure-openai-llm-failed' | 'call.in-progress.error-vapifault-groq-llm-failed' | 'call.in-progress.error-vapifault-google-llm-failed' | 'call.in-progress.error-vapifault-xai-llm-failed' | 'call.in-progress.error-vapifault-mistral-llm-failed' | 'call.in-progress.error-vapifault-inflection-ai-llm-failed' | 'call.in-progress.error-vapifault-cerebras-llm-failed' | 'call.in-progress.error-vapifault-deep-seek-llm-failed' | 'pipeline-error-openai-400-bad-request-validation-failed' | 'pipeline-error-openai-401-unauthorized' | 'pipeline-error-openai-401-incorrect-api-key' | 'pipeline-error-openai-401-account-not-in-organization' | 'pipeline-error-openai-403-model-access-denied' | 'pipeline-error-openai-429-exceeded-quota' | 'pipeline-error-openai-429-rate-limit-reached' | 'pipeline-error-openai-500-server-error' | 'pipeline-error-openai-503-server-overloaded-error' | 'pipeline-error-openai-llm-failed' | 'call.in-progress.error-vapifault-openai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-openai-401-unauthorized' | 'call.in-progress.error-vapifault-openai-401-incorrect-api-key' | 'call.in-progress.error-vapifault-openai-401-account-not-in-organization' | 'call.in-progress.error-vapifault-openai-403-model-access-denied' | 'call.in-progress.error-vapifault-openai-429-exceeded-quota' | 'call.in-progress.error-vapifault-openai-429-rate-limit-reached' | 'call.in-progress.error-providerfault-openai-500-server-error' | 'call.in-progress.error-providerfault-openai-503-server-overloaded-error' | 'pipeline-error-azure-openai-400-bad-request-validation-failed' | 'pipeline-error-azure-openai-401-unauthorized' | 'pipeline-error-azure-openai-403-model-access-denied' | 'pipeline-error-azure-openai-429-exceeded-quota' | 'pipeline-error-azure-openai-500-server-error' | 'pipeline-error-azure-openai-503-server-overloaded-error' | 'pipeline-error-azure-openai-llm-failed' | 'call.in-progress.error-vapifault-azure-openai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-azure-openai-401-unauthorized' | 'call.in-progress.error-vapifault-azure-openai-403-model-access-denied' | 'call.in-progress.error-vapifault-azure-openai-429-exceeded-quota' | 'call.in-progress.error-providerfault-azure-openai-500-server-error' | 'call.in-progress.error-providerfault-azure-openai-503-server-overloaded-error' | 'pipeline-error-google-400-bad-request-validation-failed' | 'pipeline-error-google-401-unauthorized' | 'pipeline-error-google-403-model-access-denied' | 'pipeline-error-google-429-exceeded-quota' | 'pipeline-error-google-500-server-error' | 'pipeline-error-google-503-server-overloaded-error' | 'pipeline-error-google-llm-failed' | 'call.in-progress.error-vapifault-google-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-google-401-unauthorized' | 'call.in-progress.error-vapifault-google-403-model-access-denied' | 'call.in-progress.error-vapifault-google-429-exceeded-quota' | 'call.in-progress.error-providerfault-google-500-server-error' | 'call.in-progress.error-providerfault-google-503-server-overloaded-error' | 'pipeline-error-xai-400-bad-request-validation-failed' | 'pipeline-error-xai-401-unauthorized' | 'pipeline-error-xai-403-model-access-denied' | 'pipeline-error-xai-429-exceeded-quota' | 'pipeline-error-xai-500-server-error' | 'pipeline-error-xai-503-server-overloaded-error' | 'pipeline-error-xai-llm-failed' | 'call.in-progress.error-vapifault-xai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-xai-401-unauthorized' | 'call.in-progress.error-vapifault-xai-403-model-access-denied' | 'call.in-progress.error-vapifault-xai-429-exceeded-quota' | 'call.in-progress.error-providerfault-xai-500-server-error' | 'call.in-progress.error-providerfault-xai-503-server-overloaded-error' | 'pipeline-error-mistral-400-bad-request-validation-failed' | 'pipeline-error-mistral-401-unauthorized' | 'pipeline-error-mistral-403-model-access-denied' | 'pipeline-error-mistral-429-exceeded-quota' | 'pipeline-error-mistral-500-server-error' | 'pipeline-error-mistral-503-server-overloaded-error' | 'pipeline-error-mistral-llm-failed' | 'call.in-progress.error-vapifault-mistral-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-mistral-401-unauthorized' | 'call.in-progress.error-vapifault-mistral-403-model-access-denied' | 'call.in-progress.error-vapifault-mistral-429-exceeded-quota' | 'call.in-progress.error-providerfault-mistral-500-server-error' | 'call.in-progress.error-providerfault-mistral-503-server-overloaded-error' | 'pipeline-error-inflection-ai-400-bad-request-validation-failed' | 'pipeline-error-inflection-ai-401-unauthorized' | 'pipeline-error-inflection-ai-403-model-access-denied' | 'pipeline-error-inflection-ai-429-exceeded-quota' | 'pipeline-error-inflection-ai-500-server-error' | 'pipeline-error-inflection-ai-503-server-overloaded-error' | 'pipeline-error-inflection-ai-llm-failed' | 'call.in-progress.error-vapifault-inflection-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-inflection-ai-401-unauthorized' | 'call.in-progress.error-vapifault-inflection-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-inflection-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-inflection-ai-500-server-error' | 'call.in-progress.error-providerfault-inflection-ai-503-server-overloaded-error' | 'pipeline-error-deep-seek-400-bad-request-validation-failed' | 'pipeline-error-deep-seek-401-unauthorized' | 'pipeline-error-deep-seek-403-model-access-denied' | 'pipeline-error-deep-seek-429-exceeded-quota' | 'pipeline-error-deep-seek-500-server-error' | 'pipeline-error-deep-seek-503-server-overloaded-error' | 'pipeline-error-deep-seek-llm-failed' | 'call.in-progress.error-vapifault-deep-seek-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-deep-seek-401-unauthorized' | 'call.in-progress.error-vapifault-deep-seek-403-model-access-denied' | 'call.in-progress.error-vapifault-deep-seek-429-exceeded-quota' | 'call.in-progress.error-providerfault-deep-seek-500-server-error' | 'call.in-progress.error-providerfault-deep-seek-503-server-overloaded-error' | 'pipeline-error-groq-400-bad-request-validation-failed' | 'pipeline-error-groq-401-unauthorized' | 'pipeline-error-groq-403-model-access-denied' | 'pipeline-error-groq-429-exceeded-quota' | 'pipeline-error-groq-500-server-error' | 'pipeline-error-groq-503-server-overloaded-error' | 'pipeline-error-groq-llm-failed' | 'call.in-progress.error-vapifault-groq-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-groq-401-unauthorized' | 'call.in-progress.error-vapifault-groq-403-model-access-denied' | 'call.in-progress.error-vapifault-groq-429-exceeded-quota' | 'call.in-progress.error-providerfault-groq-500-server-error' | 'call.in-progress.error-providerfault-groq-503-server-overloaded-error' | 'pipeline-error-cerebras-400-bad-request-validation-failed' | 'pipeline-error-cerebras-401-unauthorized' | 'pipeline-error-cerebras-403-model-access-denied' | 'pipeline-error-cerebras-429-exceeded-quota' | 'pipeline-error-cerebras-500-server-error' | 'pipeline-error-cerebras-503-server-overloaded-error' | 'pipeline-error-cerebras-llm-failed' | 'call.in-progress.error-vapifault-cerebras-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-cerebras-401-unauthorized' | 'call.in-progress.error-vapifault-cerebras-403-model-access-denied' | 'call.in-progress.error-vapifault-cerebras-429-exceeded-quota' | 'call.in-progress.error-providerfault-cerebras-500-server-error' | 'call.in-progress.error-providerfault-cerebras-503-server-overloaded-error' | 'pipeline-error-anthropic-400-bad-request-validation-failed' | 'pipeline-error-anthropic-401-unauthorized' | 'pipeline-error-anthropic-403-model-access-denied' | 'pipeline-error-anthropic-429-exceeded-quota' | 'pipeline-error-anthropic-500-server-error' | 'pipeline-error-anthropic-503-server-overloaded-error' | 'pipeline-error-anthropic-llm-failed' | 'call.in-progress.error-vapifault-anthropic-llm-failed' | 'call.in-progress.error-vapifault-anthropic-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-500-server-error' | 'call.in-progress.error-providerfault-anthropic-503-server-overloaded-error' | 'pipeline-error-anthropic-bedrock-400-bad-request-validation-failed' | 'pipeline-error-anthropic-bedrock-401-unauthorized' | 'pipeline-error-anthropic-bedrock-403-model-access-denied' | 'pipeline-error-anthropic-bedrock-429-exceeded-quota' | 'pipeline-error-anthropic-bedrock-500-server-error' | 'pipeline-error-anthropic-bedrock-503-server-overloaded-error' | 'pipeline-error-anthropic-bedrock-llm-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-llm-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-bedrock-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-bedrock-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-bedrock-500-server-error' | 'call.in-progress.error-providerfault-anthropic-bedrock-503-server-overloaded-error' | 'pipeline-error-anthropic-vertex-400-bad-request-validation-failed' | 'pipeline-error-anthropic-vertex-401-unauthorized' | 'pipeline-error-anthropic-vertex-403-model-access-denied' | 'pipeline-error-anthropic-vertex-429-exceeded-quota' | 'pipeline-error-anthropic-vertex-500-server-error' | 'pipeline-error-anthropic-vertex-503-server-overloaded-error' | 'pipeline-error-anthropic-vertex-llm-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-llm-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-vertex-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-vertex-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-vertex-500-server-error' | 'call.in-progress.error-providerfault-anthropic-vertex-503-server-overloaded-error' | 'pipeline-error-together-ai-400-bad-request-validation-failed' | 'pipeline-error-together-ai-401-unauthorized' | 'pipeline-error-together-ai-403-model-access-denied' | 'pipeline-error-together-ai-429-exceeded-quota' | 'pipeline-error-together-ai-500-server-error' | 'pipeline-error-together-ai-503-server-overloaded-error' | 'pipeline-error-together-ai-llm-failed' | 'call.in-progress.error-vapifault-together-ai-llm-failed' | 'call.in-progress.error-vapifault-together-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-together-ai-401-unauthorized' | 'call.in-progress.error-vapifault-together-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-together-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-together-ai-500-server-error' | 'call.in-progress.error-providerfault-together-ai-503-server-overloaded-error' | 'pipeline-error-anyscale-400-bad-request-validation-failed' | 'pipeline-error-anyscale-401-unauthorized' | 'pipeline-error-anyscale-403-model-access-denied' | 'pipeline-error-anyscale-429-exceeded-quota' | 'pipeline-error-anyscale-500-server-error' | 'pipeline-error-anyscale-503-server-overloaded-error' | 'pipeline-error-anyscale-llm-failed' | 'call.in-progress.error-vapifault-anyscale-llm-failed' | 'call.in-progress.error-vapifault-anyscale-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anyscale-401-unauthorized' | 'call.in-progress.error-vapifault-anyscale-403-model-access-denied' | 'call.in-progress.error-vapifault-anyscale-429-exceeded-quota' | 'call.in-progress.error-providerfault-anyscale-500-server-error' | 'call.in-progress.error-providerfault-anyscale-503-server-overloaded-error' | 'pipeline-error-openrouter-400-bad-request-validation-failed' | 'pipeline-error-openrouter-401-unauthorized' | 'pipeline-error-openrouter-403-model-access-denied' | 'pipeline-error-openrouter-429-exceeded-quota' | 'pipeline-error-openrouter-500-server-error' | 'pipeline-error-openrouter-503-server-overloaded-error' | 'pipeline-error-openrouter-llm-failed' | 'call.in-progress.error-vapifault-openrouter-llm-failed' | 'call.in-progress.error-vapifault-openrouter-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-openrouter-401-unauthorized' | 'call.in-progress.error-vapifault-openrouter-403-model-access-denied' | 'call.in-progress.error-vapifault-openrouter-429-exceeded-quota' | 'call.in-progress.error-providerfault-openrouter-500-server-error' | 'call.in-progress.error-providerfault-openrouter-503-server-overloaded-error' | 'pipeline-error-perplexity-ai-400-bad-request-validation-failed' | 'pipeline-error-perplexity-ai-401-unauthorized' | 'pipeline-error-perplexity-ai-403-model-access-denied' | 'pipeline-error-perplexity-ai-429-exceeded-quota' | 'pipeline-error-perplexity-ai-500-server-error' | 'pipeline-error-perplexity-ai-503-server-overloaded-error' | 'pipeline-error-perplexity-ai-llm-failed' | 'call.in-progress.error-vapifault-perplexity-ai-llm-failed' | 'call.in-progress.error-vapifault-perplexity-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-perplexity-ai-401-unauthorized' | 'call.in-progress.error-vapifault-perplexity-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-perplexity-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-perplexity-ai-500-server-error' | 'call.in-progress.error-providerfault-perplexity-ai-503-server-overloaded-error' | 'pipeline-error-deepinfra-400-bad-request-validation-failed' | 'pipeline-error-deepinfra-401-unauthorized' | 'pipeline-error-deepinfra-403-model-access-denied' | 'pipeline-error-deepinfra-429-exceeded-quota' | 'pipeline-error-deepinfra-500-server-error' | 'pipeline-error-deepinfra-503-server-overloaded-error' | 'pipeline-error-deepinfra-llm-failed' | 'call.in-progress.error-vapifault-deepinfra-llm-failed' | 'call.in-progress.error-vapifault-deepinfra-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-deepinfra-401-unauthorized' | 'call.in-progress.error-vapifault-deepinfra-403-model-access-denied' | 'call.in-progress.error-vapifault-deepinfra-429-exceeded-quota' | 'call.in-progress.error-providerfault-deepinfra-500-server-error' | 'call.in-progress.error-providerfault-deepinfra-503-server-overloaded-error' | 'pipeline-error-runpod-400-bad-request-validation-failed' | 'pipeline-error-runpod-401-unauthorized' | 'pipeline-error-runpod-403-model-access-denied' | 'pipeline-error-runpod-429-exceeded-quota' | 'pipeline-error-runpod-500-server-error' | 'pipeline-error-runpod-503-server-overloaded-error' | 'pipeline-error-runpod-llm-failed' | 'call.in-progress.error-vapifault-runpod-llm-failed' | 'call.in-progress.error-vapifault-runpod-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-runpod-401-unauthorized' | 'call.in-progress.error-vapifault-runpod-403-model-access-denied' | 'call.in-progress.error-vapifault-runpod-429-exceeded-quota' | 'call.in-progress.error-providerfault-runpod-500-server-error' | 'call.in-progress.error-providerfault-runpod-503-server-overloaded-error' | 'pipeline-error-custom-llm-400-bad-request-validation-failed' | 'pipeline-error-custom-llm-401-unauthorized' | 'pipeline-error-custom-llm-403-model-access-denied' | 'pipeline-error-custom-llm-429-exceeded-quota' | 'pipeline-error-custom-llm-500-server-error' | 'pipeline-error-custom-llm-503-server-overloaded-error' | 'pipeline-error-custom-llm-llm-failed' | 'call.in-progress.error-vapifault-custom-llm-llm-failed' | 'call.in-progress.error-vapifault-custom-llm-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-custom-llm-401-unauthorized' | 'call.in-progress.error-vapifault-custom-llm-403-model-access-denied' | 'call.in-progress.error-vapifault-custom-llm-429-exceeded-quota' | 'call.in-progress.error-providerfault-custom-llm-500-server-error' | 'call.in-progress.error-providerfault-custom-llm-503-server-overloaded-error' | 'pipeline-error-custom-voice-failed' | 'pipeline-error-cartesia-socket-hang-up' | 'pipeline-error-cartesia-requested-payment' | 'pipeline-error-cartesia-500-server-error' | 'pipeline-error-cartesia-503-server-error' | 'pipeline-error-cartesia-522-server-error' | 'call.in-progress.error-vapifault-cartesia-socket-hang-up' | 'call.in-progress.error-vapifault-cartesia-requested-payment' | 'call.in-progress.error-providerfault-cartesia-500-server-error' | 'call.in-progress.error-providerfault-cartesia-503-server-error' | 'call.in-progress.error-providerfault-cartesia-522-server-error' | 'pipeline-error-eleven-labs-voice-not-found' | 'pipeline-error-eleven-labs-quota-exceeded' | 'pipeline-error-eleven-labs-unauthorized-access' | 'pipeline-error-eleven-labs-unauthorized-to-access-model' | 'pipeline-error-eleven-labs-professional-voices-only-for-creator-plus' | 'pipeline-error-eleven-labs-blocked-free-plan-and-requested-upgrade' | 'pipeline-error-eleven-labs-blocked-concurrent-requests-and-requested-upgrade' | 'pipeline-error-eleven-labs-blocked-using-instant-voice-clone-and-requested-upgrade' | 'pipeline-error-eleven-labs-system-busy-and-requested-upgrade' | 'pipeline-error-eleven-labs-voice-not-fine-tuned' | 'pipeline-error-eleven-labs-invalid-api-key' | 'pipeline-error-eleven-labs-invalid-voice-samples' | 'pipeline-error-eleven-labs-voice-disabled-by-owner' | 'pipeline-error-eleven-labs-blocked-account-in-probation' | 'pipeline-error-eleven-labs-blocked-content-against-their-policy' | 'pipeline-error-eleven-labs-missing-samples-for-voice-clone' | 'pipeline-error-eleven-labs-voice-not-fine-tuned-and-cannot-be-used' | 'pipeline-error-eleven-labs-voice-not-allowed-for-free-users' | 'pipeline-error-eleven-labs-max-character-limit-exceeded' | 'pipeline-error-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification' | 'pipeline-error-eleven-labs-500-server-error' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-found' | 'call.in-progress.error-vapifault-eleven-labs-quota-exceeded' | 'call.in-progress.error-vapifault-eleven-labs-unauthorized-access' | 'call.in-progress.error-vapifault-eleven-labs-unauthorized-to-access-model' | 'call.in-progress.error-vapifault-eleven-labs-professional-voices-only-for-creator-plus' | 'call.in-progress.error-vapifault-eleven-labs-blocked-free-plan-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-blocked-concurrent-requests-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-blocked-using-instant-voice-clone-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-system-busy-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-fine-tuned' | 'call.in-progress.error-vapifault-eleven-labs-invalid-api-key' | 'call.in-progress.error-vapifault-eleven-labs-invalid-voice-samples' | 'call.in-progress.error-vapifault-eleven-labs-voice-disabled-by-owner' | 'call.in-progress.error-vapifault-eleven-labs-blocked-account-in-probation' | 'call.in-progress.error-vapifault-eleven-labs-blocked-content-against-their-policy' | 'call.in-progress.error-vapifault-eleven-labs-missing-samples-for-voice-clone' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-fine-tuned-and-cannot-be-used' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-allowed-for-free-users' | 'call.in-progress.error-vapifault-eleven-labs-max-character-limit-exceeded' | 'call.in-progress.error-vapifault-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification' | 'call.in-progress.error-providerfault-eleven-labs-500-server-error' | 'pipeline-error-playht-request-timed-out' | 'pipeline-error-playht-invalid-voice' | 'pipeline-error-playht-unexpected-error' | 'pipeline-error-playht-out-of-credits' | 'pipeline-error-playht-invalid-emotion' | 'pipeline-error-playht-voice-must-be-a-valid-voice-manifest-uri' | 'pipeline-error-playht-401-unauthorized' | 'pipeline-error-playht-403-forbidden-out-of-characters' | 'pipeline-error-playht-403-forbidden-api-access-not-available' | 'pipeline-error-playht-429-exceeded-quota' | 'pipeline-error-playht-502-gateway-error' | 'pipeline-error-playht-504-gateway-error' | 'call.in-progress.error-vapifault-playht-request-timed-out' | 'call.in-progress.error-vapifault-playht-invalid-voice' | 'call.in-progress.error-vapifault-playht-unexpected-error' | 'call.in-progress.error-vapifault-playht-out-of-credits' | 'call.in-progress.error-vapifault-playht-invalid-emotion' | 'call.in-progress.error-vapifault-playht-voice-must-be-a-valid-voice-manifest-uri' | 'call.in-progress.error-vapifault-playht-401-unauthorized' | 'call.in-progress.error-vapifault-playht-403-forbidden-out-of-characters' | 'call.in-progress.error-vapifault-playht-403-forbidden-api-access-not-available' | 'call.in-progress.error-vapifault-playht-429-exceeded-quota' | 'call.in-progress.error-providerfault-playht-502-gateway-error' | 'call.in-progress.error-providerfault-playht-504-gateway-error' | 'pipeline-error-custom-transcriber-failed' | 'call.in-progress.error-vapifault-custom-transcriber-failed' | 'pipeline-error-eleven-labs-transcriber-failed' | 'call.in-progress.error-vapifault-eleven-labs-transcriber-failed' | 'pipeline-error-deepgram-returning-400-no-such-model-language-tier-combination' | 'pipeline-error-deepgram-returning-401-invalid-credentials' | 'pipeline-error-deepgram-returning-403-model-access-denied' | 'pipeline-error-deepgram-returning-404-not-found' | 'pipeline-error-deepgram-returning-500-invalid-json' | 'pipeline-error-deepgram-returning-502-network-error' | 'pipeline-error-deepgram-returning-502-bad-gateway-ehostunreach' | 'call.in-progress.error-vapifault-deepgram-returning-400-no-such-model-language-tier-combination' | 'call.in-progress.error-vapifault-deepgram-returning-401-invalid-credentials' | 'call.in-progress.error-vapifault-deepgram-returning-404-not-found' | 'call.in-progress.error-vapifault-deepgram-returning-403-model-access-denied' | 'call.in-progress.error-providerfault-deepgram-returning-500-invalid-json' | 'call.in-progress.error-providerfault-deepgram-returning-502-network-error' | 'call.in-progress.error-providerfault-deepgram-returning-502-bad-gateway-ehostunreach' | 'pipeline-error-google-transcriber-failed' | 'call.in-progress.error-vapifault-google-transcriber-failed' | 'pipeline-error-openai-transcriber-failed' | 'call.in-progress.error-vapifault-openai-transcriber-failed' | 'assistant-ended-call' | 'assistant-said-end-call-phrase' | 'assistant-ended-call-with-hangup-task' | 'assistant-ended-call-after-message-spoken' | 'assistant-forwarded-call' | 'assistant-join-timed-out' | 'call.in-progress.error-assistant-did-not-receive-customer-audio' | 'customer-busy' | 'customer-ended-call' | 'customer-did-not-answer' | 'customer-did-not-give-microphone-permission' | 'exceeded-max-duration' | 'manually-canceled' | 'phone-call-provider-closed-websocket' | 'call.forwarding.operator-busy' | 'silence-timed-out' | 'call.in-progress.error-sip-telephony-provider-failed-to-connect-call' | 'call.ringing.hook-executed-say' | 'call.ringing.hook-executed-transfer' | 'twilio-failed-to-connect-call' | 'twilio-reported-customer-misdialed' | 'vonage-rejected' | 'voicemail';
|
|
14683
|
+
endedReason?: 'call-start-error-neither-assistant-nor-server-set' | 'assistant-request-failed' | 'assistant-request-returned-error' | 'assistant-request-returned-unspeakable-error' | 'assistant-request-returned-invalid-assistant' | 'assistant-request-returned-no-assistant' | 'assistant-request-returned-forwarding-phone-number' | 'call.start.error-get-org' | 'call.start.error-get-subscription' | 'call.start.error-get-assistant' | 'call.start.error-get-phone-number' | 'call.start.error-get-customer' | 'call.start.error-get-resources-validation' | 'call.start.error-vapi-number-international' | 'call.start.error-vapi-number-outbound-daily-limit' | 'call.start.error-get-transport' | 'assistant-not-valid' | 'database-error' | 'assistant-not-found' | 'pipeline-error-openai-voice-failed' | 'pipeline-error-cartesia-voice-failed' | 'pipeline-error-deepgram-voice-failed' | 'pipeline-error-eleven-labs-voice-failed' | 'pipeline-error-playht-voice-failed' | 'pipeline-error-lmnt-voice-failed' | 'pipeline-error-azure-voice-failed' | 'pipeline-error-rime-ai-voice-failed' | 'pipeline-error-smallest-ai-voice-failed' | 'pipeline-error-neuphonic-voice-failed' | 'pipeline-error-hume-voice-failed' | 'pipeline-error-sesame-voice-failed' | 'pipeline-error-tavus-video-failed' | 'call.in-progress.error-vapifault-openai-voice-failed' | 'call.in-progress.error-vapifault-cartesia-voice-failed' | 'call.in-progress.error-vapifault-deepgram-voice-failed' | 'call.in-progress.error-vapifault-eleven-labs-voice-failed' | 'call.in-progress.error-vapifault-playht-voice-failed' | 'call.in-progress.error-vapifault-lmnt-voice-failed' | 'call.in-progress.error-vapifault-azure-voice-failed' | 'call.in-progress.error-vapifault-rime-ai-voice-failed' | 'call.in-progress.error-vapifault-smallest-ai-voice-failed' | 'call.in-progress.error-vapifault-neuphonic-voice-failed' | 'call.in-progress.error-vapifault-hume-voice-failed' | 'call.in-progress.error-vapifault-sesame-voice-failed' | 'call.in-progress.error-vapifault-tavus-video-failed' | 'pipeline-error-vapi-llm-failed' | 'pipeline-error-vapi-400-bad-request-validation-failed' | 'pipeline-error-vapi-401-unauthorized' | 'pipeline-error-vapi-403-model-access-denied' | 'pipeline-error-vapi-429-exceeded-quota' | 'pipeline-error-vapi-500-server-error' | 'pipeline-error-vapi-503-server-overloaded-error' | 'call.in-progress.error-vapifault-vapi-llm-failed' | 'call.in-progress.error-vapifault-vapi-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-vapi-401-unauthorized' | 'call.in-progress.error-vapifault-vapi-403-model-access-denied' | 'call.in-progress.error-vapifault-vapi-429-exceeded-quota' | 'call.in-progress.error-providerfault-vapi-500-server-error' | 'call.in-progress.error-providerfault-vapi-503-server-overloaded-error' | 'pipeline-error-deepgram-transcriber-failed' | 'call.in-progress.error-vapifault-deepgram-transcriber-failed' | 'pipeline-error-gladia-transcriber-failed' | 'call.in-progress.error-vapifault-gladia-transcriber-failed' | 'pipeline-error-speechmatics-transcriber-failed' | 'call.in-progress.error-vapifault-speechmatics-transcriber-failed' | 'pipeline-error-assembly-ai-transcriber-failed' | 'pipeline-error-assembly-ai-returning-400-insufficent-funds' | 'pipeline-error-assembly-ai-returning-400-paid-only-feature' | 'pipeline-error-assembly-ai-returning-401-invalid-credentials' | 'pipeline-error-assembly-ai-returning-500-invalid-schema' | 'pipeline-error-assembly-ai-returning-500-word-boost-parsing-failed' | 'call.in-progress.error-vapifault-assembly-ai-transcriber-failed' | 'call.in-progress.error-vapifault-assembly-ai-returning-400-insufficent-funds' | 'call.in-progress.error-vapifault-assembly-ai-returning-400-paid-only-feature' | 'call.in-progress.error-vapifault-assembly-ai-returning-401-invalid-credentials' | 'call.in-progress.error-vapifault-assembly-ai-returning-500-invalid-schema' | 'call.in-progress.error-vapifault-assembly-ai-returning-500-word-boost-parsing-failed' | 'pipeline-error-talkscriber-transcriber-failed' | 'call.in-progress.error-vapifault-talkscriber-transcriber-failed' | 'pipeline-error-azure-speech-transcriber-failed' | 'call.in-progress.error-vapifault-azure-speech-transcriber-failed' | 'call.in-progress.error-pipeline-no-available-llm-model' | 'worker-shutdown' | 'unknown-error' | 'vonage-disconnected' | 'vonage-failed-to-connect-call' | 'vonage-completed' | 'phone-call-provider-bypass-enabled-but-no-call-received' | 'call.in-progress.error-providerfault-transport-never-connected' | 'call.in-progress.error-vapifault-worker-not-available' | 'call.in-progress.error-vapifault-transport-never-connected' | 'call.in-progress.error-vapifault-transport-connected-but-call-not-active' | 'call.in-progress.error-vapifault-call-started-but-connection-to-transport-missing' | 'call.in-progress.error-vapifault-worker-died' | 'call.in-progress.error-vapifault-openai-llm-failed' | 'call.in-progress.error-vapifault-azure-openai-llm-failed' | 'call.in-progress.error-vapifault-groq-llm-failed' | 'call.in-progress.error-vapifault-google-llm-failed' | 'call.in-progress.error-vapifault-xai-llm-failed' | 'call.in-progress.error-vapifault-mistral-llm-failed' | 'call.in-progress.error-vapifault-inflection-ai-llm-failed' | 'call.in-progress.error-vapifault-cerebras-llm-failed' | 'call.in-progress.error-vapifault-deep-seek-llm-failed' | 'pipeline-error-openai-400-bad-request-validation-failed' | 'pipeline-error-openai-401-unauthorized' | 'pipeline-error-openai-401-incorrect-api-key' | 'pipeline-error-openai-401-account-not-in-organization' | 'pipeline-error-openai-403-model-access-denied' | 'pipeline-error-openai-429-exceeded-quota' | 'pipeline-error-openai-429-rate-limit-reached' | 'pipeline-error-openai-500-server-error' | 'pipeline-error-openai-503-server-overloaded-error' | 'pipeline-error-openai-llm-failed' | 'call.in-progress.error-vapifault-openai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-openai-401-unauthorized' | 'call.in-progress.error-vapifault-openai-401-incorrect-api-key' | 'call.in-progress.error-vapifault-openai-401-account-not-in-organization' | 'call.in-progress.error-vapifault-openai-403-model-access-denied' | 'call.in-progress.error-vapifault-openai-429-exceeded-quota' | 'call.in-progress.error-vapifault-openai-429-rate-limit-reached' | 'call.in-progress.error-providerfault-openai-500-server-error' | 'call.in-progress.error-providerfault-openai-503-server-overloaded-error' | 'pipeline-error-azure-openai-400-bad-request-validation-failed' | 'pipeline-error-azure-openai-401-unauthorized' | 'pipeline-error-azure-openai-403-model-access-denied' | 'pipeline-error-azure-openai-429-exceeded-quota' | 'pipeline-error-azure-openai-500-server-error' | 'pipeline-error-azure-openai-503-server-overloaded-error' | 'pipeline-error-azure-openai-llm-failed' | 'call.in-progress.error-vapifault-azure-openai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-azure-openai-401-unauthorized' | 'call.in-progress.error-vapifault-azure-openai-403-model-access-denied' | 'call.in-progress.error-vapifault-azure-openai-429-exceeded-quota' | 'call.in-progress.error-providerfault-azure-openai-500-server-error' | 'call.in-progress.error-providerfault-azure-openai-503-server-overloaded-error' | 'pipeline-error-google-400-bad-request-validation-failed' | 'pipeline-error-google-401-unauthorized' | 'pipeline-error-google-403-model-access-denied' | 'pipeline-error-google-429-exceeded-quota' | 'pipeline-error-google-500-server-error' | 'pipeline-error-google-503-server-overloaded-error' | 'pipeline-error-google-llm-failed' | 'call.in-progress.error-vapifault-google-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-google-401-unauthorized' | 'call.in-progress.error-vapifault-google-403-model-access-denied' | 'call.in-progress.error-vapifault-google-429-exceeded-quota' | 'call.in-progress.error-providerfault-google-500-server-error' | 'call.in-progress.error-providerfault-google-503-server-overloaded-error' | 'pipeline-error-xai-400-bad-request-validation-failed' | 'pipeline-error-xai-401-unauthorized' | 'pipeline-error-xai-403-model-access-denied' | 'pipeline-error-xai-429-exceeded-quota' | 'pipeline-error-xai-500-server-error' | 'pipeline-error-xai-503-server-overloaded-error' | 'pipeline-error-xai-llm-failed' | 'call.in-progress.error-vapifault-xai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-xai-401-unauthorized' | 'call.in-progress.error-vapifault-xai-403-model-access-denied' | 'call.in-progress.error-vapifault-xai-429-exceeded-quota' | 'call.in-progress.error-providerfault-xai-500-server-error' | 'call.in-progress.error-providerfault-xai-503-server-overloaded-error' | 'pipeline-error-mistral-400-bad-request-validation-failed' | 'pipeline-error-mistral-401-unauthorized' | 'pipeline-error-mistral-403-model-access-denied' | 'pipeline-error-mistral-429-exceeded-quota' | 'pipeline-error-mistral-500-server-error' | 'pipeline-error-mistral-503-server-overloaded-error' | 'pipeline-error-mistral-llm-failed' | 'call.in-progress.error-vapifault-mistral-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-mistral-401-unauthorized' | 'call.in-progress.error-vapifault-mistral-403-model-access-denied' | 'call.in-progress.error-vapifault-mistral-429-exceeded-quota' | 'call.in-progress.error-providerfault-mistral-500-server-error' | 'call.in-progress.error-providerfault-mistral-503-server-overloaded-error' | 'pipeline-error-inflection-ai-400-bad-request-validation-failed' | 'pipeline-error-inflection-ai-401-unauthorized' | 'pipeline-error-inflection-ai-403-model-access-denied' | 'pipeline-error-inflection-ai-429-exceeded-quota' | 'pipeline-error-inflection-ai-500-server-error' | 'pipeline-error-inflection-ai-503-server-overloaded-error' | 'pipeline-error-inflection-ai-llm-failed' | 'call.in-progress.error-vapifault-inflection-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-inflection-ai-401-unauthorized' | 'call.in-progress.error-vapifault-inflection-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-inflection-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-inflection-ai-500-server-error' | 'call.in-progress.error-providerfault-inflection-ai-503-server-overloaded-error' | 'pipeline-error-deep-seek-400-bad-request-validation-failed' | 'pipeline-error-deep-seek-401-unauthorized' | 'pipeline-error-deep-seek-403-model-access-denied' | 'pipeline-error-deep-seek-429-exceeded-quota' | 'pipeline-error-deep-seek-500-server-error' | 'pipeline-error-deep-seek-503-server-overloaded-error' | 'pipeline-error-deep-seek-llm-failed' | 'call.in-progress.error-vapifault-deep-seek-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-deep-seek-401-unauthorized' | 'call.in-progress.error-vapifault-deep-seek-403-model-access-denied' | 'call.in-progress.error-vapifault-deep-seek-429-exceeded-quota' | 'call.in-progress.error-providerfault-deep-seek-500-server-error' | 'call.in-progress.error-providerfault-deep-seek-503-server-overloaded-error' | 'pipeline-error-groq-400-bad-request-validation-failed' | 'pipeline-error-groq-401-unauthorized' | 'pipeline-error-groq-403-model-access-denied' | 'pipeline-error-groq-429-exceeded-quota' | 'pipeline-error-groq-500-server-error' | 'pipeline-error-groq-503-server-overloaded-error' | 'pipeline-error-groq-llm-failed' | 'call.in-progress.error-vapifault-groq-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-groq-401-unauthorized' | 'call.in-progress.error-vapifault-groq-403-model-access-denied' | 'call.in-progress.error-vapifault-groq-429-exceeded-quota' | 'call.in-progress.error-providerfault-groq-500-server-error' | 'call.in-progress.error-providerfault-groq-503-server-overloaded-error' | 'pipeline-error-cerebras-400-bad-request-validation-failed' | 'pipeline-error-cerebras-401-unauthorized' | 'pipeline-error-cerebras-403-model-access-denied' | 'pipeline-error-cerebras-429-exceeded-quota' | 'pipeline-error-cerebras-500-server-error' | 'pipeline-error-cerebras-503-server-overloaded-error' | 'pipeline-error-cerebras-llm-failed' | 'call.in-progress.error-vapifault-cerebras-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-cerebras-401-unauthorized' | 'call.in-progress.error-vapifault-cerebras-403-model-access-denied' | 'call.in-progress.error-vapifault-cerebras-429-exceeded-quota' | 'call.in-progress.error-providerfault-cerebras-500-server-error' | 'call.in-progress.error-providerfault-cerebras-503-server-overloaded-error' | 'pipeline-error-anthropic-400-bad-request-validation-failed' | 'pipeline-error-anthropic-401-unauthorized' | 'pipeline-error-anthropic-403-model-access-denied' | 'pipeline-error-anthropic-429-exceeded-quota' | 'pipeline-error-anthropic-500-server-error' | 'pipeline-error-anthropic-503-server-overloaded-error' | 'pipeline-error-anthropic-llm-failed' | 'call.in-progress.error-vapifault-anthropic-llm-failed' | 'call.in-progress.error-vapifault-anthropic-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-500-server-error' | 'call.in-progress.error-providerfault-anthropic-503-server-overloaded-error' | 'pipeline-error-anthropic-bedrock-400-bad-request-validation-failed' | 'pipeline-error-anthropic-bedrock-401-unauthorized' | 'pipeline-error-anthropic-bedrock-403-model-access-denied' | 'pipeline-error-anthropic-bedrock-429-exceeded-quota' | 'pipeline-error-anthropic-bedrock-500-server-error' | 'pipeline-error-anthropic-bedrock-503-server-overloaded-error' | 'pipeline-error-anthropic-bedrock-llm-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-llm-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-bedrock-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-bedrock-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-bedrock-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-bedrock-500-server-error' | 'call.in-progress.error-providerfault-anthropic-bedrock-503-server-overloaded-error' | 'pipeline-error-anthropic-vertex-400-bad-request-validation-failed' | 'pipeline-error-anthropic-vertex-401-unauthorized' | 'pipeline-error-anthropic-vertex-403-model-access-denied' | 'pipeline-error-anthropic-vertex-429-exceeded-quota' | 'pipeline-error-anthropic-vertex-500-server-error' | 'pipeline-error-anthropic-vertex-503-server-overloaded-error' | 'pipeline-error-anthropic-vertex-llm-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-llm-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anthropic-vertex-401-unauthorized' | 'call.in-progress.error-vapifault-anthropic-vertex-403-model-access-denied' | 'call.in-progress.error-vapifault-anthropic-vertex-429-exceeded-quota' | 'call.in-progress.error-providerfault-anthropic-vertex-500-server-error' | 'call.in-progress.error-providerfault-anthropic-vertex-503-server-overloaded-error' | 'pipeline-error-together-ai-400-bad-request-validation-failed' | 'pipeline-error-together-ai-401-unauthorized' | 'pipeline-error-together-ai-403-model-access-denied' | 'pipeline-error-together-ai-429-exceeded-quota' | 'pipeline-error-together-ai-500-server-error' | 'pipeline-error-together-ai-503-server-overloaded-error' | 'pipeline-error-together-ai-llm-failed' | 'call.in-progress.error-vapifault-together-ai-llm-failed' | 'call.in-progress.error-vapifault-together-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-together-ai-401-unauthorized' | 'call.in-progress.error-vapifault-together-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-together-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-together-ai-500-server-error' | 'call.in-progress.error-providerfault-together-ai-503-server-overloaded-error' | 'pipeline-error-anyscale-400-bad-request-validation-failed' | 'pipeline-error-anyscale-401-unauthorized' | 'pipeline-error-anyscale-403-model-access-denied' | 'pipeline-error-anyscale-429-exceeded-quota' | 'pipeline-error-anyscale-500-server-error' | 'pipeline-error-anyscale-503-server-overloaded-error' | 'pipeline-error-anyscale-llm-failed' | 'call.in-progress.error-vapifault-anyscale-llm-failed' | 'call.in-progress.error-vapifault-anyscale-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-anyscale-401-unauthorized' | 'call.in-progress.error-vapifault-anyscale-403-model-access-denied' | 'call.in-progress.error-vapifault-anyscale-429-exceeded-quota' | 'call.in-progress.error-providerfault-anyscale-500-server-error' | 'call.in-progress.error-providerfault-anyscale-503-server-overloaded-error' | 'pipeline-error-openrouter-400-bad-request-validation-failed' | 'pipeline-error-openrouter-401-unauthorized' | 'pipeline-error-openrouter-403-model-access-denied' | 'pipeline-error-openrouter-429-exceeded-quota' | 'pipeline-error-openrouter-500-server-error' | 'pipeline-error-openrouter-503-server-overloaded-error' | 'pipeline-error-openrouter-llm-failed' | 'call.in-progress.error-vapifault-openrouter-llm-failed' | 'call.in-progress.error-vapifault-openrouter-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-openrouter-401-unauthorized' | 'call.in-progress.error-vapifault-openrouter-403-model-access-denied' | 'call.in-progress.error-vapifault-openrouter-429-exceeded-quota' | 'call.in-progress.error-providerfault-openrouter-500-server-error' | 'call.in-progress.error-providerfault-openrouter-503-server-overloaded-error' | 'pipeline-error-perplexity-ai-400-bad-request-validation-failed' | 'pipeline-error-perplexity-ai-401-unauthorized' | 'pipeline-error-perplexity-ai-403-model-access-denied' | 'pipeline-error-perplexity-ai-429-exceeded-quota' | 'pipeline-error-perplexity-ai-500-server-error' | 'pipeline-error-perplexity-ai-503-server-overloaded-error' | 'pipeline-error-perplexity-ai-llm-failed' | 'call.in-progress.error-vapifault-perplexity-ai-llm-failed' | 'call.in-progress.error-vapifault-perplexity-ai-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-perplexity-ai-401-unauthorized' | 'call.in-progress.error-vapifault-perplexity-ai-403-model-access-denied' | 'call.in-progress.error-vapifault-perplexity-ai-429-exceeded-quota' | 'call.in-progress.error-providerfault-perplexity-ai-500-server-error' | 'call.in-progress.error-providerfault-perplexity-ai-503-server-overloaded-error' | 'pipeline-error-deepinfra-400-bad-request-validation-failed' | 'pipeline-error-deepinfra-401-unauthorized' | 'pipeline-error-deepinfra-403-model-access-denied' | 'pipeline-error-deepinfra-429-exceeded-quota' | 'pipeline-error-deepinfra-500-server-error' | 'pipeline-error-deepinfra-503-server-overloaded-error' | 'pipeline-error-deepinfra-llm-failed' | 'call.in-progress.error-vapifault-deepinfra-llm-failed' | 'call.in-progress.error-vapifault-deepinfra-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-deepinfra-401-unauthorized' | 'call.in-progress.error-vapifault-deepinfra-403-model-access-denied' | 'call.in-progress.error-vapifault-deepinfra-429-exceeded-quota' | 'call.in-progress.error-providerfault-deepinfra-500-server-error' | 'call.in-progress.error-providerfault-deepinfra-503-server-overloaded-error' | 'pipeline-error-runpod-400-bad-request-validation-failed' | 'pipeline-error-runpod-401-unauthorized' | 'pipeline-error-runpod-403-model-access-denied' | 'pipeline-error-runpod-429-exceeded-quota' | 'pipeline-error-runpod-500-server-error' | 'pipeline-error-runpod-503-server-overloaded-error' | 'pipeline-error-runpod-llm-failed' | 'call.in-progress.error-vapifault-runpod-llm-failed' | 'call.in-progress.error-vapifault-runpod-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-runpod-401-unauthorized' | 'call.in-progress.error-vapifault-runpod-403-model-access-denied' | 'call.in-progress.error-vapifault-runpod-429-exceeded-quota' | 'call.in-progress.error-providerfault-runpod-500-server-error' | 'call.in-progress.error-providerfault-runpod-503-server-overloaded-error' | 'pipeline-error-custom-llm-400-bad-request-validation-failed' | 'pipeline-error-custom-llm-401-unauthorized' | 'pipeline-error-custom-llm-403-model-access-denied' | 'pipeline-error-custom-llm-429-exceeded-quota' | 'pipeline-error-custom-llm-500-server-error' | 'pipeline-error-custom-llm-503-server-overloaded-error' | 'pipeline-error-custom-llm-llm-failed' | 'call.in-progress.error-vapifault-custom-llm-llm-failed' | 'call.in-progress.error-vapifault-custom-llm-400-bad-request-validation-failed' | 'call.in-progress.error-vapifault-custom-llm-401-unauthorized' | 'call.in-progress.error-vapifault-custom-llm-403-model-access-denied' | 'call.in-progress.error-vapifault-custom-llm-429-exceeded-quota' | 'call.in-progress.error-providerfault-custom-llm-500-server-error' | 'call.in-progress.error-providerfault-custom-llm-503-server-overloaded-error' | 'pipeline-error-custom-voice-failed' | 'pipeline-error-cartesia-socket-hang-up' | 'pipeline-error-cartesia-requested-payment' | 'pipeline-error-cartesia-500-server-error' | 'pipeline-error-cartesia-503-server-error' | 'pipeline-error-cartesia-522-server-error' | 'call.in-progress.error-vapifault-cartesia-socket-hang-up' | 'call.in-progress.error-vapifault-cartesia-requested-payment' | 'call.in-progress.error-providerfault-cartesia-500-server-error' | 'call.in-progress.error-providerfault-cartesia-503-server-error' | 'call.in-progress.error-providerfault-cartesia-522-server-error' | 'pipeline-error-eleven-labs-voice-not-found' | 'pipeline-error-eleven-labs-quota-exceeded' | 'pipeline-error-eleven-labs-unauthorized-access' | 'pipeline-error-eleven-labs-unauthorized-to-access-model' | 'pipeline-error-eleven-labs-professional-voices-only-for-creator-plus' | 'pipeline-error-eleven-labs-blocked-free-plan-and-requested-upgrade' | 'pipeline-error-eleven-labs-blocked-concurrent-requests-and-requested-upgrade' | 'pipeline-error-eleven-labs-blocked-using-instant-voice-clone-and-requested-upgrade' | 'pipeline-error-eleven-labs-system-busy-and-requested-upgrade' | 'pipeline-error-eleven-labs-voice-not-fine-tuned' | 'pipeline-error-eleven-labs-invalid-api-key' | 'pipeline-error-eleven-labs-invalid-voice-samples' | 'pipeline-error-eleven-labs-voice-disabled-by-owner' | 'pipeline-error-eleven-labs-blocked-account-in-probation' | 'pipeline-error-eleven-labs-blocked-content-against-their-policy' | 'pipeline-error-eleven-labs-missing-samples-for-voice-clone' | 'pipeline-error-eleven-labs-voice-not-fine-tuned-and-cannot-be-used' | 'pipeline-error-eleven-labs-voice-not-allowed-for-free-users' | 'pipeline-error-eleven-labs-max-character-limit-exceeded' | 'pipeline-error-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification' | 'pipeline-error-eleven-labs-500-server-error' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-found' | 'call.in-progress.error-vapifault-eleven-labs-quota-exceeded' | 'call.in-progress.error-vapifault-eleven-labs-unauthorized-access' | 'call.in-progress.error-vapifault-eleven-labs-unauthorized-to-access-model' | 'call.in-progress.error-vapifault-eleven-labs-professional-voices-only-for-creator-plus' | 'call.in-progress.error-vapifault-eleven-labs-blocked-free-plan-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-blocked-concurrent-requests-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-blocked-using-instant-voice-clone-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-system-busy-and-requested-upgrade' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-fine-tuned' | 'call.in-progress.error-vapifault-eleven-labs-invalid-api-key' | 'call.in-progress.error-vapifault-eleven-labs-invalid-voice-samples' | 'call.in-progress.error-vapifault-eleven-labs-voice-disabled-by-owner' | 'call.in-progress.error-vapifault-eleven-labs-blocked-account-in-probation' | 'call.in-progress.error-vapifault-eleven-labs-blocked-content-against-their-policy' | 'call.in-progress.error-vapifault-eleven-labs-missing-samples-for-voice-clone' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-fine-tuned-and-cannot-be-used' | 'call.in-progress.error-vapifault-eleven-labs-voice-not-allowed-for-free-users' | 'call.in-progress.error-vapifault-eleven-labs-max-character-limit-exceeded' | 'call.in-progress.error-vapifault-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification' | 'call.in-progress.error-providerfault-eleven-labs-500-server-error' | 'pipeline-error-playht-request-timed-out' | 'pipeline-error-playht-invalid-voice' | 'pipeline-error-playht-unexpected-error' | 'pipeline-error-playht-out-of-credits' | 'pipeline-error-playht-invalid-emotion' | 'pipeline-error-playht-voice-must-be-a-valid-voice-manifest-uri' | 'pipeline-error-playht-401-unauthorized' | 'pipeline-error-playht-403-forbidden-out-of-characters' | 'pipeline-error-playht-403-forbidden-api-access-not-available' | 'pipeline-error-playht-429-exceeded-quota' | 'pipeline-error-playht-502-gateway-error' | 'pipeline-error-playht-504-gateway-error' | 'call.in-progress.error-vapifault-playht-request-timed-out' | 'call.in-progress.error-vapifault-playht-invalid-voice' | 'call.in-progress.error-vapifault-playht-unexpected-error' | 'call.in-progress.error-vapifault-playht-out-of-credits' | 'call.in-progress.error-vapifault-playht-invalid-emotion' | 'call.in-progress.error-vapifault-playht-voice-must-be-a-valid-voice-manifest-uri' | 'call.in-progress.error-vapifault-playht-401-unauthorized' | 'call.in-progress.error-vapifault-playht-403-forbidden-out-of-characters' | 'call.in-progress.error-vapifault-playht-403-forbidden-api-access-not-available' | 'call.in-progress.error-vapifault-playht-429-exceeded-quota' | 'call.in-progress.error-providerfault-playht-502-gateway-error' | 'call.in-progress.error-providerfault-playht-504-gateway-error' | 'pipeline-error-custom-transcriber-failed' | 'call.in-progress.error-vapifault-custom-transcriber-failed' | 'pipeline-error-eleven-labs-transcriber-failed' | 'call.in-progress.error-vapifault-eleven-labs-transcriber-failed' | 'pipeline-error-deepgram-returning-400-no-such-model-language-tier-combination' | 'pipeline-error-deepgram-returning-401-invalid-credentials' | 'pipeline-error-deepgram-returning-403-model-access-denied' | 'pipeline-error-deepgram-returning-404-not-found' | 'pipeline-error-deepgram-returning-500-invalid-json' | 'pipeline-error-deepgram-returning-502-network-error' | 'pipeline-error-deepgram-returning-502-bad-gateway-ehostunreach' | 'call.in-progress.error-vapifault-deepgram-returning-400-no-such-model-language-tier-combination' | 'call.in-progress.error-vapifault-deepgram-returning-401-invalid-credentials' | 'call.in-progress.error-vapifault-deepgram-returning-404-not-found' | 'call.in-progress.error-vapifault-deepgram-returning-403-model-access-denied' | 'call.in-progress.error-providerfault-deepgram-returning-500-invalid-json' | 'call.in-progress.error-providerfault-deepgram-returning-502-network-error' | 'call.in-progress.error-providerfault-deepgram-returning-502-bad-gateway-ehostunreach' | 'pipeline-error-google-transcriber-failed' | 'call.in-progress.error-vapifault-google-transcriber-failed' | 'pipeline-error-openai-transcriber-failed' | 'call.in-progress.error-vapifault-openai-transcriber-failed' | 'assistant-ended-call' | 'assistant-said-end-call-phrase' | 'assistant-ended-call-with-hangup-task' | 'assistant-ended-call-after-message-spoken' | 'assistant-forwarded-call' | 'assistant-join-timed-out' | 'call.in-progress.error-assistant-did-not-receive-customer-audio' | 'customer-busy' | 'customer-ended-call' | 'customer-did-not-answer' | 'customer-did-not-give-microphone-permission' | 'exceeded-max-duration' | 'manually-canceled' | 'phone-call-provider-closed-websocket' | 'call.forwarding.operator-busy' | 'silence-timed-out' | 'call.in-progress.error-sip-inbound-call-failed-to-connect' | 'call.in-progress.error-providerfault-outbound-sip-403-forbidden' | 'call.in-progress.error-providerfault-outbound-sip-407-proxy-authentication-required' | 'call.in-progress.error-providerfault-outbound-sip-503-service-unavailable' | 'call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable' | 'call.in-progress.error-sip-outbound-call-failed-to-connect' | 'call.ringing.hook-executed-say' | 'call.ringing.hook-executed-transfer' | 'twilio-failed-to-connect-call' | 'twilio-reported-customer-misdialed' | 'vonage-rejected' | 'voicemail';
|
|
15379
14684
|
/** These are the conversation messages of the call. This is only sent if the status is "forwarding". */
|
|
15380
14685
|
messages?: (UserMessage | SystemMessage | BotMessage | ToolCallMessage | ToolCallResultMessage)[];
|
|
15381
14686
|
/** These are the conversation messages of the call. This is only sent if the status is "forwarding". */
|
|
@@ -15677,8 +14982,6 @@ export interface ServerMessageResponseAssistantRequest {
|
|
|
15677
14982
|
*/
|
|
15678
14983
|
squad?: CreateSquadDTO;
|
|
15679
14984
|
/**
|
|
15680
|
-
* [BETA] This feature is in active development. The API and behavior are subject to change as we refine it based on user feedback.
|
|
15681
|
-
*
|
|
15682
14985
|
* This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead.
|
|
15683
14986
|
*
|
|
15684
14987
|
* To start a call with:
|
|
@@ -15688,8 +14991,6 @@ export interface ServerMessageResponseAssistantRequest {
|
|
|
15688
14991
|
*/
|
|
15689
14992
|
workflowId?: string;
|
|
15690
14993
|
/**
|
|
15691
|
-
* [BETA] This feature is in active development. The API and behavior are subject to change as we refine it based on user feedback.
|
|
15692
|
-
*
|
|
15693
14994
|
* This is a workflow that will be used for the call. To use an existing workflow, use `workflowId` instead.
|
|
15694
14995
|
*
|
|
15695
14996
|
* To start a call with:
|
|
@@ -15698,6 +14999,8 @@ export interface ServerMessageResponseAssistantRequest {
|
|
|
15698
14999
|
* - Workflow, use `workflow` or `workflowId`
|
|
15699
15000
|
*/
|
|
15700
15001
|
workflow?: CreateWorkflowDTO;
|
|
15002
|
+
/** These are the overrides for the `workflow` or `workflowId`'s settings and template variables. */
|
|
15003
|
+
workflowOverrides?: WorkflowOverrides;
|
|
15701
15004
|
/**
|
|
15702
15005
|
* This is the error if the call shouldn't be accepted. This is spoken to the customer.
|
|
15703
15006
|
*
|
|
@@ -16024,25 +15327,37 @@ export interface KnowledgeBaseCost {
|
|
|
16024
15327
|
cost: number;
|
|
16025
15328
|
}
|
|
16026
15329
|
export interface FunctionToolWithToolCall {
|
|
15330
|
+
/**
|
|
15331
|
+
* These are the messages that will be spoken to the user as the tool is running.
|
|
15332
|
+
*
|
|
15333
|
+
* For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
|
|
15334
|
+
*/
|
|
15335
|
+
messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
|
|
15336
|
+
/** The type of tool. "function" for Function tool. */
|
|
15337
|
+
type: 'function';
|
|
16027
15338
|
/**
|
|
16028
15339
|
* This determines if the tool is async.
|
|
16029
15340
|
*
|
|
16030
|
-
*
|
|
15341
|
+
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
16031
15342
|
*
|
|
16032
|
-
*
|
|
15343
|
+
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
16033
15344
|
*
|
|
16034
|
-
*
|
|
15345
|
+
* Defaults to synchronous (`false`).
|
|
16035
15346
|
* @example false
|
|
16036
15347
|
*/
|
|
16037
15348
|
async?: boolean;
|
|
16038
15349
|
/**
|
|
16039
|
-
* These are the messages that will be spoken to the user as the tool is running.
|
|
16040
15350
|
*
|
|
16041
|
-
*
|
|
15351
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
15352
|
+
*
|
|
15353
|
+
* Notes:
|
|
15354
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
15355
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
15356
|
+
* - Webhook contains the variables set on the assistant.
|
|
15357
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
15358
|
+
* - Webhook expects a response with tool call result.
|
|
16042
15359
|
*/
|
|
16043
|
-
|
|
16044
|
-
/** The type of tool. "function" for Function tool. */
|
|
16045
|
-
type: 'function';
|
|
15360
|
+
server?: Server;
|
|
16046
15361
|
toolCall: ToolCall;
|
|
16047
15362
|
/**
|
|
16048
15363
|
* This is the function definition of the tool.
|
|
@@ -16052,27 +15367,8 @@ export interface FunctionToolWithToolCall {
|
|
|
16052
15367
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
16053
15368
|
*/
|
|
16054
15369
|
function?: OpenAIFunction;
|
|
16055
|
-
/**
|
|
16056
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
16057
|
-
*
|
|
16058
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
16059
|
-
*
|
|
16060
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
16061
|
-
*/
|
|
16062
|
-
server?: Server;
|
|
16063
15370
|
}
|
|
16064
15371
|
export interface GhlToolWithToolCall {
|
|
16065
|
-
/**
|
|
16066
|
-
* This determines if the tool is async.
|
|
16067
|
-
*
|
|
16068
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
16069
|
-
*
|
|
16070
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
16071
|
-
*
|
|
16072
|
-
* Defaults to synchronous (`false`).
|
|
16073
|
-
* @example false
|
|
16074
|
-
*/
|
|
16075
|
-
async?: boolean;
|
|
16076
15372
|
/**
|
|
16077
15373
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
16078
15374
|
*
|
|
@@ -16091,27 +15387,8 @@ export interface GhlToolWithToolCall {
|
|
|
16091
15387
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
16092
15388
|
*/
|
|
16093
15389
|
function?: OpenAIFunction;
|
|
16094
|
-
/**
|
|
16095
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
16096
|
-
*
|
|
16097
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
16098
|
-
*
|
|
16099
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
16100
|
-
*/
|
|
16101
|
-
server?: Server;
|
|
16102
15390
|
}
|
|
16103
15391
|
export interface MakeToolWithToolCall {
|
|
16104
|
-
/**
|
|
16105
|
-
* This determines if the tool is async.
|
|
16106
|
-
*
|
|
16107
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
16108
|
-
*
|
|
16109
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
16110
|
-
*
|
|
16111
|
-
* Defaults to synchronous (`false`).
|
|
16112
|
-
* @example false
|
|
16113
|
-
*/
|
|
16114
|
-
async?: boolean;
|
|
16115
15392
|
/**
|
|
16116
15393
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
16117
15394
|
*
|
|
@@ -16130,27 +15407,8 @@ export interface MakeToolWithToolCall {
|
|
|
16130
15407
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
16131
15408
|
*/
|
|
16132
15409
|
function?: OpenAIFunction;
|
|
16133
|
-
/**
|
|
16134
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
16135
|
-
*
|
|
16136
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
16137
|
-
*
|
|
16138
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
16139
|
-
*/
|
|
16140
|
-
server?: Server;
|
|
16141
15410
|
}
|
|
16142
15411
|
export interface BashToolWithToolCall {
|
|
16143
|
-
/**
|
|
16144
|
-
* This determines if the tool is async.
|
|
16145
|
-
*
|
|
16146
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
16147
|
-
*
|
|
16148
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
16149
|
-
*
|
|
16150
|
-
* Defaults to synchronous (`false`).
|
|
16151
|
-
* @example false
|
|
16152
|
-
*/
|
|
16153
|
-
async?: boolean;
|
|
16154
15412
|
/**
|
|
16155
15413
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
16156
15414
|
*
|
|
@@ -16161,6 +15419,18 @@ export interface BashToolWithToolCall {
|
|
|
16161
15419
|
type: 'bash';
|
|
16162
15420
|
/** The sub type of tool. */
|
|
16163
15421
|
subType: 'bash_20241022';
|
|
15422
|
+
/**
|
|
15423
|
+
*
|
|
15424
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
15425
|
+
*
|
|
15426
|
+
* Notes:
|
|
15427
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
15428
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
15429
|
+
* - Webhook contains the variables set on the assistant.
|
|
15430
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
15431
|
+
* - Webhook expects a response with tool call result.
|
|
15432
|
+
*/
|
|
15433
|
+
server?: Server;
|
|
16164
15434
|
toolCall: ToolCall;
|
|
16165
15435
|
/**
|
|
16166
15436
|
* The name of the tool, fixed to 'bash'
|
|
@@ -16175,27 +15445,8 @@ export interface BashToolWithToolCall {
|
|
|
16175
15445
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
16176
15446
|
*/
|
|
16177
15447
|
function?: OpenAIFunction;
|
|
16178
|
-
/**
|
|
16179
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
16180
|
-
*
|
|
16181
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
16182
|
-
*
|
|
16183
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
16184
|
-
*/
|
|
16185
|
-
server?: Server;
|
|
16186
15448
|
}
|
|
16187
15449
|
export interface ComputerToolWithToolCall {
|
|
16188
|
-
/**
|
|
16189
|
-
* This determines if the tool is async.
|
|
16190
|
-
*
|
|
16191
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
16192
|
-
*
|
|
16193
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
16194
|
-
*
|
|
16195
|
-
* Defaults to synchronous (`false`).
|
|
16196
|
-
* @example false
|
|
16197
|
-
*/
|
|
16198
|
-
async?: boolean;
|
|
16199
15450
|
/**
|
|
16200
15451
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
16201
15452
|
*
|
|
@@ -16206,6 +15457,18 @@ export interface ComputerToolWithToolCall {
|
|
|
16206
15457
|
type: 'computer';
|
|
16207
15458
|
/** The sub type of tool. */
|
|
16208
15459
|
subType: 'computer_20241022';
|
|
15460
|
+
/**
|
|
15461
|
+
*
|
|
15462
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
15463
|
+
*
|
|
15464
|
+
* Notes:
|
|
15465
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
15466
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
15467
|
+
* - Webhook contains the variables set on the assistant.
|
|
15468
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
15469
|
+
* - Webhook expects a response with tool call result.
|
|
15470
|
+
*/
|
|
15471
|
+
server?: Server;
|
|
16209
15472
|
toolCall: ToolCall;
|
|
16210
15473
|
/**
|
|
16211
15474
|
* The name of the tool, fixed to 'computer'
|
|
@@ -16226,27 +15489,8 @@ export interface ComputerToolWithToolCall {
|
|
|
16226
15489
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
16227
15490
|
*/
|
|
16228
15491
|
function?: OpenAIFunction;
|
|
16229
|
-
/**
|
|
16230
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
16231
|
-
*
|
|
16232
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
16233
|
-
*
|
|
16234
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
16235
|
-
*/
|
|
16236
|
-
server?: Server;
|
|
16237
15492
|
}
|
|
16238
15493
|
export interface TextEditorToolWithToolCall {
|
|
16239
|
-
/**
|
|
16240
|
-
* This determines if the tool is async.
|
|
16241
|
-
*
|
|
16242
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
16243
|
-
*
|
|
16244
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
16245
|
-
*
|
|
16246
|
-
* Defaults to synchronous (`false`).
|
|
16247
|
-
* @example false
|
|
16248
|
-
*/
|
|
16249
|
-
async?: boolean;
|
|
16250
15494
|
/**
|
|
16251
15495
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
16252
15496
|
*
|
|
@@ -16257,6 +15501,18 @@ export interface TextEditorToolWithToolCall {
|
|
|
16257
15501
|
type: 'textEditor';
|
|
16258
15502
|
/** The sub type of tool. */
|
|
16259
15503
|
subType: 'text_editor_20241022';
|
|
15504
|
+
/**
|
|
15505
|
+
*
|
|
15506
|
+
* This is the server where a `tool-calls` webhook will be sent.
|
|
15507
|
+
*
|
|
15508
|
+
* Notes:
|
|
15509
|
+
* - Webhook is sent to this server when a tool call is made.
|
|
15510
|
+
* - Webhook contains the call, assistant, and phone number objects.
|
|
15511
|
+
* - Webhook contains the variables set on the assistant.
|
|
15512
|
+
* - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.
|
|
15513
|
+
* - Webhook expects a response with tool call result.
|
|
15514
|
+
*/
|
|
15515
|
+
server?: Server;
|
|
16260
15516
|
toolCall: ToolCall;
|
|
16261
15517
|
/**
|
|
16262
15518
|
* The name of the tool, fixed to 'str_replace_editor'
|
|
@@ -16271,27 +15527,8 @@ export interface TextEditorToolWithToolCall {
|
|
|
16271
15527
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
16272
15528
|
*/
|
|
16273
15529
|
function?: OpenAIFunction;
|
|
16274
|
-
/**
|
|
16275
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
16276
|
-
*
|
|
16277
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
16278
|
-
*
|
|
16279
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
16280
|
-
*/
|
|
16281
|
-
server?: Server;
|
|
16282
15530
|
}
|
|
16283
15531
|
export interface GoogleCalendarCreateEventToolWithToolCall {
|
|
16284
|
-
/**
|
|
16285
|
-
* This determines if the tool is async.
|
|
16286
|
-
*
|
|
16287
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
16288
|
-
*
|
|
16289
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
16290
|
-
*
|
|
16291
|
-
* Defaults to synchronous (`false`).
|
|
16292
|
-
* @example false
|
|
16293
|
-
*/
|
|
16294
|
-
async?: boolean;
|
|
16295
15532
|
/**
|
|
16296
15533
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
16297
15534
|
*
|
|
@@ -16309,27 +15546,8 @@ export interface GoogleCalendarCreateEventToolWithToolCall {
|
|
|
16309
15546
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
16310
15547
|
*/
|
|
16311
15548
|
function?: OpenAIFunction;
|
|
16312
|
-
/**
|
|
16313
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
16314
|
-
*
|
|
16315
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
16316
|
-
*
|
|
16317
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
16318
|
-
*/
|
|
16319
|
-
server?: Server;
|
|
16320
15549
|
}
|
|
16321
15550
|
export interface GoogleSheetsRowAppendToolWithToolCall {
|
|
16322
|
-
/**
|
|
16323
|
-
* This determines if the tool is async.
|
|
16324
|
-
*
|
|
16325
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
16326
|
-
*
|
|
16327
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
16328
|
-
*
|
|
16329
|
-
* Defaults to synchronous (`false`).
|
|
16330
|
-
* @example false
|
|
16331
|
-
*/
|
|
16332
|
-
async?: boolean;
|
|
16333
15551
|
/**
|
|
16334
15552
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
16335
15553
|
*
|
|
@@ -16347,27 +15565,8 @@ export interface GoogleSheetsRowAppendToolWithToolCall {
|
|
|
16347
15565
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
16348
15566
|
*/
|
|
16349
15567
|
function?: OpenAIFunction;
|
|
16350
|
-
/**
|
|
16351
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
16352
|
-
*
|
|
16353
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
16354
|
-
*
|
|
16355
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
16356
|
-
*/
|
|
16357
|
-
server?: Server;
|
|
16358
15568
|
}
|
|
16359
15569
|
export interface GoHighLevelCalendarAvailabilityToolWithToolCall {
|
|
16360
|
-
/**
|
|
16361
|
-
* This determines if the tool is async.
|
|
16362
|
-
*
|
|
16363
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
16364
|
-
*
|
|
16365
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
16366
|
-
*
|
|
16367
|
-
* Defaults to synchronous (`false`).
|
|
16368
|
-
* @example false
|
|
16369
|
-
*/
|
|
16370
|
-
async?: boolean;
|
|
16371
15570
|
/**
|
|
16372
15571
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
16373
15572
|
*
|
|
@@ -16385,27 +15584,8 @@ export interface GoHighLevelCalendarAvailabilityToolWithToolCall {
|
|
|
16385
15584
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
16386
15585
|
*/
|
|
16387
15586
|
function?: OpenAIFunction;
|
|
16388
|
-
/**
|
|
16389
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
16390
|
-
*
|
|
16391
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
16392
|
-
*
|
|
16393
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
16394
|
-
*/
|
|
16395
|
-
server?: Server;
|
|
16396
15587
|
}
|
|
16397
15588
|
export interface GoHighLevelCalendarEventCreateToolWithToolCall {
|
|
16398
|
-
/**
|
|
16399
|
-
* This determines if the tool is async.
|
|
16400
|
-
*
|
|
16401
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
16402
|
-
*
|
|
16403
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
16404
|
-
*
|
|
16405
|
-
* Defaults to synchronous (`false`).
|
|
16406
|
-
* @example false
|
|
16407
|
-
*/
|
|
16408
|
-
async?: boolean;
|
|
16409
15589
|
/**
|
|
16410
15590
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
16411
15591
|
*
|
|
@@ -16423,27 +15603,8 @@ export interface GoHighLevelCalendarEventCreateToolWithToolCall {
|
|
|
16423
15603
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
16424
15604
|
*/
|
|
16425
15605
|
function?: OpenAIFunction;
|
|
16426
|
-
/**
|
|
16427
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
16428
|
-
*
|
|
16429
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
16430
|
-
*
|
|
16431
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
16432
|
-
*/
|
|
16433
|
-
server?: Server;
|
|
16434
15606
|
}
|
|
16435
15607
|
export interface GoHighLevelContactCreateToolWithToolCall {
|
|
16436
|
-
/**
|
|
16437
|
-
* This determines if the tool is async.
|
|
16438
|
-
*
|
|
16439
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
16440
|
-
*
|
|
16441
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
16442
|
-
*
|
|
16443
|
-
* Defaults to synchronous (`false`).
|
|
16444
|
-
* @example false
|
|
16445
|
-
*/
|
|
16446
|
-
async?: boolean;
|
|
16447
15608
|
/**
|
|
16448
15609
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
16449
15610
|
*
|
|
@@ -16461,27 +15622,8 @@ export interface GoHighLevelContactCreateToolWithToolCall {
|
|
|
16461
15622
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
16462
15623
|
*/
|
|
16463
15624
|
function?: OpenAIFunction;
|
|
16464
|
-
/**
|
|
16465
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
16466
|
-
*
|
|
16467
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
16468
|
-
*
|
|
16469
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
16470
|
-
*/
|
|
16471
|
-
server?: Server;
|
|
16472
15625
|
}
|
|
16473
15626
|
export interface GoHighLevelContactGetToolWithToolCall {
|
|
16474
|
-
/**
|
|
16475
|
-
* This determines if the tool is async.
|
|
16476
|
-
*
|
|
16477
|
-
* If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
|
|
16478
|
-
*
|
|
16479
|
-
* If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
|
|
16480
|
-
*
|
|
16481
|
-
* Defaults to synchronous (`false`).
|
|
16482
|
-
* @example false
|
|
16483
|
-
*/
|
|
16484
|
-
async?: boolean;
|
|
16485
15627
|
/**
|
|
16486
15628
|
* These are the messages that will be spoken to the user as the tool is running.
|
|
16487
15629
|
*
|
|
@@ -16499,14 +15641,6 @@ export interface GoHighLevelContactGetToolWithToolCall {
|
|
|
16499
15641
|
* An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
|
|
16500
15642
|
*/
|
|
16501
15643
|
function?: OpenAIFunction;
|
|
16502
|
-
/**
|
|
16503
|
-
* This is the server that will be hit when this tool is requested by the model.
|
|
16504
|
-
*
|
|
16505
|
-
* All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
|
|
16506
|
-
*
|
|
16507
|
-
* This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
|
|
16508
|
-
*/
|
|
16509
|
-
server?: Server;
|
|
16510
15644
|
}
|
|
16511
15645
|
export type QueryParamsType = Record<string | number, any>;
|
|
16512
15646
|
export type ResponseFormat = keyof Omit<Body, 'body' | 'bodyUsed'>;
|
|
@@ -17102,9 +16236,9 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
17102
16236
|
/**
|
|
17103
16237
|
* No description
|
|
17104
16238
|
*
|
|
17105
|
-
* @tags
|
|
16239
|
+
* @tags Chats
|
|
17106
16240
|
* @name ChatControllerListChats
|
|
17107
|
-
* @summary List
|
|
16241
|
+
* @summary List Chats
|
|
17108
16242
|
* @request GET:/chat
|
|
17109
16243
|
* @secure
|
|
17110
16244
|
*/
|
|
@@ -17172,19 +16306,19 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
17172
16306
|
/**
|
|
17173
16307
|
* @description Creates a new chat. Requires at least one of: assistantId/assistant, sessionId, or previousChatId. Note: sessionId and previousChatId are mutually exclusive.
|
|
17174
16308
|
*
|
|
17175
|
-
* @tags
|
|
16309
|
+
* @tags Chats
|
|
17176
16310
|
* @name ChatControllerCreateChat
|
|
17177
|
-
* @summary Create
|
|
16311
|
+
* @summary Create Chat
|
|
17178
16312
|
* @request POST:/chat
|
|
17179
16313
|
* @secure
|
|
17180
16314
|
*/
|
|
17181
|
-
chatControllerCreateChat: (data: CreateChatDTO, params?: RequestParams) => Promise<HttpResponse<
|
|
16315
|
+
chatControllerCreateChat: (data: CreateChatDTO, params?: RequestParams) => Promise<HttpResponse<Chat | CreateChatStreamResponse, any>>;
|
|
17182
16316
|
/**
|
|
17183
16317
|
* No description
|
|
17184
16318
|
*
|
|
17185
|
-
* @tags
|
|
16319
|
+
* @tags Chats
|
|
17186
16320
|
* @name ChatControllerGetChat
|
|
17187
|
-
* @summary Get
|
|
16321
|
+
* @summary Get Chat
|
|
17188
16322
|
* @request GET:/chat/{id}
|
|
17189
16323
|
* @secure
|
|
17190
16324
|
*/
|
|
@@ -17192,9 +16326,9 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
17192
16326
|
/**
|
|
17193
16327
|
* No description
|
|
17194
16328
|
*
|
|
17195
|
-
* @tags
|
|
16329
|
+
* @tags Chats
|
|
17196
16330
|
* @name ChatControllerDeleteChat
|
|
17197
|
-
* @summary Delete
|
|
16331
|
+
* @summary Delete Chat
|
|
17198
16332
|
* @request DELETE:/chat/{id}
|
|
17199
16333
|
* @secure
|
|
17200
16334
|
*/
|
|
@@ -17202,13 +16336,13 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
17202
16336
|
/**
|
|
17203
16337
|
* No description
|
|
17204
16338
|
*
|
|
17205
|
-
* @tags
|
|
16339
|
+
* @tags Chats
|
|
17206
16340
|
* @name ChatControllerCreateOpenAiChat
|
|
17207
|
-
* @summary Create
|
|
16341
|
+
* @summary Create Chat (OpenAI Compatible)
|
|
17208
16342
|
* @request POST:/chat/responses
|
|
17209
16343
|
* @secure
|
|
17210
16344
|
*/
|
|
17211
|
-
chatControllerCreateOpenAiChat: (data: OpenAIResponsesRequest, params?: RequestParams) => Promise<HttpResponse<
|
|
16345
|
+
chatControllerCreateOpenAiChat: (data: OpenAIResponsesRequest, params?: RequestParams) => Promise<HttpResponse<ResponseObject | ResponseTextDeltaEvent | ResponseTextDoneEvent | ResponseCompletedEvent | ResponseErrorEvent, any>>;
|
|
17212
16346
|
};
|
|
17213
16347
|
session: {
|
|
17214
16348
|
/**
|
|
@@ -18245,7 +17379,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
18245
17379
|
*
|
|
18246
17380
|
* @tags Workflow
|
|
18247
17381
|
* @name WorkflowControllerFindAll
|
|
18248
|
-
* @summary
|
|
17382
|
+
* @summary Get Workflows
|
|
18249
17383
|
* @request GET:/workflow
|
|
18250
17384
|
* @secure
|
|
18251
17385
|
*/
|
|
@@ -18255,7 +17389,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
18255
17389
|
*
|
|
18256
17390
|
* @tags Workflow
|
|
18257
17391
|
* @name WorkflowControllerCreate
|
|
18258
|
-
* @summary
|
|
17392
|
+
* @summary Create Workflow
|
|
18259
17393
|
* @request POST:/workflow
|
|
18260
17394
|
* @secure
|
|
18261
17395
|
*/
|
|
@@ -18265,7 +17399,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
18265
17399
|
*
|
|
18266
17400
|
* @tags Workflow
|
|
18267
17401
|
* @name WorkflowControllerFindOne
|
|
18268
|
-
* @summary
|
|
17402
|
+
* @summary Get Workflow
|
|
18269
17403
|
* @request GET:/workflow/{id}
|
|
18270
17404
|
* @secure
|
|
18271
17405
|
*/
|
|
@@ -18275,7 +17409,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
18275
17409
|
*
|
|
18276
17410
|
* @tags Workflow
|
|
18277
17411
|
* @name WorkflowControllerDelete
|
|
18278
|
-
* @summary
|
|
17412
|
+
* @summary Delete Workflow
|
|
18279
17413
|
* @request DELETE:/workflow/{id}
|
|
18280
17414
|
* @secure
|
|
18281
17415
|
*/
|
|
@@ -18285,7 +17419,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
18285
17419
|
*
|
|
18286
17420
|
* @tags Workflow
|
|
18287
17421
|
* @name WorkflowControllerUpdate
|
|
18288
|
-
* @summary
|
|
17422
|
+
* @summary Update Workflow
|
|
18289
17423
|
* @request PATCH:/workflow/{id}
|
|
18290
17424
|
* @secure
|
|
18291
17425
|
*/
|
|
@@ -18728,39 +17862,6 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
18728
17862
|
*/
|
|
18729
17863
|
testSuiteRunControllerRemove: (testSuiteId: string, id: string, params?: RequestParams) => Promise<HttpResponse<TestSuiteRun, any>>;
|
|
18730
17864
|
};
|
|
18731
|
-
metrics: {
|
|
18732
|
-
/**
|
|
18733
|
-
* @description Use GET /metric instead
|
|
18734
|
-
*
|
|
18735
|
-
* @tags Analytics
|
|
18736
|
-
* @name AnalyticsControllerFindAllDeprecated
|
|
18737
|
-
* @summary List Billing Metrics
|
|
18738
|
-
* @request GET:/metrics
|
|
18739
|
-
* @deprecated
|
|
18740
|
-
* @secure
|
|
18741
|
-
*/
|
|
18742
|
-
analyticsControllerFindAllDeprecated: (query?: {
|
|
18743
|
-
/**
|
|
18744
|
-
* Convert date & and time to provided timezone. https://popsql.com/learn-sql/postgresql/how-to-convert-utc-to-local-time-zone-in-postgresql
|
|
18745
|
-
* @example "PST"
|
|
18746
|
-
*/
|
|
18747
|
-
timezone?: string;
|
|
18748
|
-
/**
|
|
18749
|
-
* This will include calls with a createdAt timestamp greater than or equal to the specified value.
|
|
18750
|
-
*
|
|
18751
|
-
* If not provided, defaults to the org's current period start.
|
|
18752
|
-
* @format date-time
|
|
18753
|
-
*/
|
|
18754
|
-
rangeStart?: string;
|
|
18755
|
-
/**
|
|
18756
|
-
* This will include calls with a createdAt timestamp less than the specified value.
|
|
18757
|
-
*
|
|
18758
|
-
* If not provided, the default value will be the current timestamp.
|
|
18759
|
-
* @format date-time
|
|
18760
|
-
*/
|
|
18761
|
-
rangeEnd?: string;
|
|
18762
|
-
}, params?: RequestParams) => Promise<HttpResponse<Metrics[], any>>;
|
|
18763
|
-
};
|
|
18764
17865
|
analytics: {
|
|
18765
17866
|
/**
|
|
18766
17867
|
* No description
|