@vapi-ai/web 1.1.7 → 1.3.0

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 CHANGED
@@ -9,43 +9,21 @@
9
9
  * ---------------------------------------------------------------
10
10
  */
11
11
 
12
- export class CreateWebCallDTO {
13
- /**
14
- * This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead.
15
- */
16
- assistantId?: string;
17
-
18
- /**
19
- * Overrides for the assistant's settings and template variables.
20
- */
21
- assistantOverrides?: OverrideAssistantDTO;
22
-
23
- /**
24
- * This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.
25
- */
26
- assistant?: CreateAssistantDTO;
27
-
28
- /**
29
- * This will expose SIP URI you can use to connect to the call. Disabled by default.
30
- */
31
- sipEnabled?: boolean;
32
-
12
+ export interface DeepgramVoice {
33
13
  /**
34
- * This is the metadata associated with the call.
14
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
15
+ * @example true
35
16
  */
36
- metadata?: Record<string, any>;
37
- }
38
-
39
- export interface DeepgramVoice {
17
+ inputPreprocessingEnabled?: boolean;
40
18
  /**
41
- * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to 10.
19
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
42
20
  * @min 1
43
21
  * @max 80
44
22
  * @example 10
45
23
  */
46
24
  inputMinCharacters?: number;
47
25
  /**
48
- * These are the punctuations that are considered valid boundaries / "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
26
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
49
27
  * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
50
28
  */
51
29
  inputPunctuationBoundaries?:
@@ -64,6 +42,13 @@ export interface DeepgramVoice {
64
42
  | '||'
65
43
  | ','
66
44
  | ':';
45
+ /**
46
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
47
+ *
48
+ * Default `false` because you can achieve better results with prompting the model.
49
+ * @example false
50
+ */
51
+ fillerInjectionEnabled?: boolean;
67
52
  /** This is the voice provider that will be used. */
68
53
  provider: 'deepgram';
69
54
  /** This is the provider-specific ID that will be used. */
@@ -83,75 +68,49 @@ export interface DeepgramVoice {
83
68
  | string;
84
69
  }
85
70
 
71
+ export interface Condition {
72
+ param: string;
73
+ value: object;
74
+ operator: 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte';
75
+ }
76
+
77
+ export interface ToolMessageStart {
78
+ type: 'request-start';
79
+ content: string;
80
+ conditions?: Condition[];
81
+ }
82
+
83
+ export interface ToolMessageComplete {
84
+ type: 'request-complete';
85
+ content: string;
86
+ conditions?: Condition[];
87
+ }
88
+
89
+ export interface ToolMessageFailed {
90
+ type: 'request-failed';
91
+ content: string;
92
+ conditions?: Condition[];
93
+ }
94
+
95
+ export interface ToolMessageDelayed {
96
+ type: 'request-response-delayed';
97
+ content: string;
98
+ /**
99
+ * The number of milliseconds to wait for the server response before saying this message.
100
+ * @example 1000
101
+ */
102
+ timingMilliseconds?: number;
103
+ conditions?: Condition[];
104
+ }
105
+
86
106
  export interface JsonSchema {
87
107
  type: 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object';
88
108
  /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
89
109
  items?: object;
90
- /** This is an array of type JsonSchema. However, Swagger doesn't support circular references. */
91
- prefixItems?: object;
92
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
93
- contains?: object;
94
110
  /** This is a map of string to JsonSchema. However, Swagger doesn't support circular references. */
95
111
  properties?: object;
96
- /** This is a map of string to JsonSchema objects. However, Swagger doesn't support circular references. */
97
- patternProperties?: object;
98
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
99
- additionalProperties?: object;
100
- /** This is a map of string to JsonSchema objects. However, Swagger doesn't support circular references. */
101
- dependentSchemas?: object;
102
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
103
- propertyNames?: object;
104
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
105
- unevaluatedProperties?: object;
106
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
107
- const?: object;
108
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
109
- not?: object;
110
- /** This is an array of type JsonSchema. However, Swagger doesn't support circular references. */
111
- oneOf?: object;
112
- /** This is an array of type JsonSchema. However, Swagger doesn't support circular references. */
113
- anyOf?: object;
114
- /** This is an array of type JsonSchema. However, Swagger doesn't support circular references. */
115
- allOf?: object;
116
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
117
- if?: object;
118
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
119
- then?: object;
120
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
121
- else?: object;
122
- title?: string;
123
112
  description?: string;
124
- multipleOf?: number;
125
- maximum?: number;
126
- exclusiveMaximum?: number;
127
- minimum?: number;
128
- exclusiveMinimum?: number;
129
- maxLength?: number;
130
- /** @min 0 */
131
- minLength?: number;
132
- pattern?: string;
133
- format?: string;
134
- maxItems?: number;
135
- /** @min 0 */
136
- minItems?: number;
137
- minContains?: number;
138
- maxContains?: number;
139
- maxProperties?: number;
140
- /** @min 0 */
141
- minProperties?: number;
142
113
  required?: object[];
143
- dependentRequired?: object;
144
- enum?: object[];
145
- $id?: string;
146
- $ref?: string;
147
- $schema?: string;
148
- $comment?: string;
149
- default?: object;
150
- examples?: object[];
151
- readOnly?: boolean;
152
- writeOnly?: boolean;
153
- contentEncoding?: string;
154
- contentMediaType?: string;
155
114
  }
156
115
 
157
116
  export interface OpenAIFunctionParameters {
@@ -202,109 +161,304 @@ export interface Server {
202
161
  secret?: string;
203
162
  }
204
163
 
205
- export interface FunctionTool {
206
- type: 'function';
164
+ export interface CreateDtmfToolDTO {
165
+ /**
166
+ * This determines if the tool is async.
167
+ *
168
+ * 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.
169
+ *
170
+ * 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.
171
+ *
172
+ * Defaults to synchronous (`false`).
173
+ * @example false
174
+ */
175
+ async?: boolean;
176
+ /**
177
+ * These are the messages that will be spoken to the user as the tool is running.
178
+ *
179
+ * 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.
180
+ */
207
181
  messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
208
- /** The function definition details for the function tool. */
209
- function: OpenAIFunction;
182
+ /** The type of tool. "dtmf" for DTMF tool. */
183
+ type: 'dtmf';
184
+ /**
185
+ * This is the function definition of the tool.
186
+ *
187
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
188
+ */
189
+ function?: OpenAIFunction;
210
190
  /**
211
- * This is the server VAPI will hit this tool is requested by the model.
191
+ * This is the server that will be hit when this tool is requested by the model.
212
192
  *
213
193
  * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
214
194
  *
215
- * This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: tool.server.url > assistant.serverUrl > phoneNumber.serverUrl > org.serverUrl
195
+ * 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.
216
196
  */
217
197
  server?: Server;
218
- /** Setting async: true will cause the function to be called asynchronously, meaning that the Assistant will not wait for the function to return before continuing. */
219
- async?: boolean;
220
- }
221
-
222
- export interface TransferDestination {
223
- message: string;
224
- destination: string;
225
- description: string;
226
198
  }
227
199
 
228
- export interface TransferTool {
229
- type: 'transferCall';
200
+ export interface CreateEndCallToolDTO {
201
+ /**
202
+ * This determines if the tool is async.
203
+ *
204
+ * 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.
205
+ *
206
+ * 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.
207
+ *
208
+ * Defaults to synchronous (`false`).
209
+ * @example false
210
+ */
211
+ async?: boolean;
212
+ /**
213
+ * These are the messages that will be spoken to the user as the tool is running.
214
+ *
215
+ * 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.
216
+ */
230
217
  messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
218
+ /** The type of tool. "endCall" for End Call tool. */
219
+ type: 'endCall';
231
220
  /**
232
- * This is the description of what the function does, used by the AI to choose when and how to call the function.
233
- * @default "Use this tool to transfer the call. Only use it when following instructions that explicitly ask you to use the transferCall tool. DO NOT call this tool unless you are instructed to do so."
221
+ * This is the function definition of the tool.
222
+ *
223
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
234
224
  */
235
- description?: string;
236
- destinations?: TransferDestination[];
225
+ function?: OpenAIFunction;
237
226
  /**
238
- * This is the server VAPI will hit this tool is requested by the model.
227
+ * This is the server that will be hit when this tool is requested by the model.
239
228
  *
240
229
  * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
230
+ *
231
+ * 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.
241
232
  */
242
233
  server?: Server;
243
234
  }
244
235
 
245
- export interface EndCallTool {
246
- type: 'endCall';
236
+ export interface CreateFunctionToolDTO {
237
+ /**
238
+ * This determines if the tool is async.
239
+ *
240
+ * 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.
241
+ *
242
+ * 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.
243
+ *
244
+ * Defaults to synchronous (`false`).
245
+ * @example false
246
+ */
247
+ async?: boolean;
248
+ /**
249
+ * These are the messages that will be spoken to the user as the tool is running.
250
+ *
251
+ * 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.
252
+ */
247
253
  messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
248
- /** The function definition details for the function tool. */
249
- function: OpenAIFunction;
254
+ /** The type of tool. "function" for Function tool. */
255
+ type: 'function';
256
+ /**
257
+ * This is the function definition of the tool.
258
+ *
259
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
260
+ */
261
+ function?: OpenAIFunction;
262
+ /**
263
+ * This is the server that will be hit when this tool is requested by the model.
264
+ *
265
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
266
+ *
267
+ * 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.
268
+ */
269
+ server?: Server;
250
270
  }
251
271
 
252
- export interface DtmfTool {
253
- type: 'dtmf';
254
- messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
255
- /** The function definition details for the function tool. */
256
- function: OpenAIFunction;
272
+ export interface GhlToolMetadata {
273
+ workflowId?: string;
274
+ locationId?: string;
257
275
  }
258
276
 
259
- export interface Condition {
260
- param: string;
261
- value: object;
262
- operator: 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte';
277
+ export interface CreateGhlToolDTO {
278
+ /**
279
+ * This determines if the tool is async.
280
+ *
281
+ * 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.
282
+ *
283
+ * 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.
284
+ *
285
+ * Defaults to synchronous (`false`).
286
+ * @example false
287
+ */
288
+ async?: boolean;
289
+ /**
290
+ * These are the messages that will be spoken to the user as the tool is running.
291
+ *
292
+ * 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.
293
+ */
294
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
295
+ /** The type of tool. "ghl" for GHL tool. */
296
+ type: 'ghl';
297
+ metadata: GhlToolMetadata;
298
+ /**
299
+ * This is the function definition of the tool.
300
+ *
301
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
302
+ */
303
+ function?: OpenAIFunction;
304
+ /**
305
+ * This is the server that will be hit when this tool is requested by the model.
306
+ *
307
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
308
+ *
309
+ * 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.
310
+ */
311
+ server?: Server;
263
312
  }
264
313
 
265
- export interface ToolMessageComplete {
266
- type: 'request-complete';
267
- content: string;
268
- conditions?: Condition[];
314
+ export interface MakeToolMetadata {
315
+ scenarioId?: number;
316
+ triggerHookId?: number;
269
317
  }
270
318
 
271
- export interface ToolMessageDelayed {
272
- type: 'request-response-delayed';
273
- content: string;
319
+ export interface CreateMakeToolDTO {
274
320
  /**
275
- * The number of milliseconds to wait for the server response before saying this message.
276
- * @example 1000
321
+ * This determines if the tool is async.
322
+ *
323
+ * 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.
324
+ *
325
+ * 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.
326
+ *
327
+ * Defaults to synchronous (`false`).
328
+ * @example false
277
329
  */
278
- timingMilliseconds?: number;
279
- conditions?: Condition[];
330
+ async?: boolean;
331
+ /**
332
+ * These are the messages that will be spoken to the user as the tool is running.
333
+ *
334
+ * 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.
335
+ */
336
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
337
+ /** The type of tool. "make" for Make tool. */
338
+ type: 'make';
339
+ metadata: MakeToolMetadata;
340
+ /**
341
+ * This is the function definition of the tool.
342
+ *
343
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
344
+ */
345
+ function?: OpenAIFunction;
346
+ /**
347
+ * This is the server that will be hit when this tool is requested by the model.
348
+ *
349
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
350
+ *
351
+ * 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.
352
+ */
353
+ server?: Server;
280
354
  }
281
355
 
282
- export interface ToolMessageFailed {
283
- type: 'request-failed';
284
- content: string;
285
- conditions?: Condition[];
356
+ export interface AssistantTransferDestination {
357
+ type: 'assistant';
358
+ /** This is the assistant to transfer the call to. */
359
+ assistantName: string;
360
+ /** This is the message to say before transferring the call to the destination. */
361
+ message?: string;
362
+ /** This is the description of the destination, used by the AI to choose when and how to transfer the call. */
363
+ description?: string;
286
364
  }
287
365
 
288
- export interface ToolMessageStart {
289
- type: 'request-start';
290
- content: string;
291
- conditions?: Condition[];
366
+ export interface PhoneNumberTransferDestination {
367
+ type: 'phoneNumber';
368
+ /** This is the phone number to transfer the call to. */
369
+ number: string;
370
+ /** This is the message to say before transferring the call to the destination. */
371
+ message?: string;
372
+ /** This is the description of the destination, used by the AI to choose when and how to transfer the call. */
373
+ description?: string;
374
+ }
375
+
376
+ export interface SipTransferDestination {
377
+ type: 'sip';
378
+ /** This is the SIP URI to transfer the call to. */
379
+ sipUri: string;
380
+ /** This is the message to say before transferring the call to the destination. */
381
+ message?: string;
382
+ /** This is the description of the destination, used by the AI to choose when and how to transfer the call. */
383
+ description?: string;
384
+ }
385
+
386
+ export interface CreateTransferCallToolDTO {
387
+ /**
388
+ * This determines if the tool is async.
389
+ *
390
+ * 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.
391
+ *
392
+ * 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.
393
+ *
394
+ * Defaults to synchronous (`false`).
395
+ * @example false
396
+ */
397
+ async?: boolean;
398
+ /**
399
+ * These are the messages that will be spoken to the user as the tool is running.
400
+ *
401
+ * 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.
402
+ */
403
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
404
+ type: 'transferCall';
405
+ /** These are the destinations that the call can be transferred to. If no destinations are provided, server.url will be used to get the transfer destination once the tool is called. */
406
+ destinations?: (
407
+ | AssistantTransferDestination
408
+ | PhoneNumberTransferDestination
409
+ | SipTransferDestination
410
+ )[];
411
+ /**
412
+ * This is the function definition of the tool.
413
+ *
414
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
415
+ */
416
+ function?: OpenAIFunction;
417
+ /**
418
+ * This is the server that will be hit when this tool is requested by the model.
419
+ *
420
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
421
+ *
422
+ * 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.
423
+ */
424
+ server?: Server;
292
425
  }
293
426
 
294
427
  export interface OpenAIMessage {
295
428
  content: string | null;
296
- role: 'assistant' | 'function' | 'user' | 'system';
297
- function_call?: object;
298
- tool_calls?: object[];
429
+ role: 'assistant' | 'function' | 'user' | 'system' | 'tool';
430
+ }
431
+
432
+ export interface KnowledgeBase {
433
+ provider: 'canonical';
434
+ topK?: number;
435
+ fileIds: string[];
299
436
  }
300
437
 
301
438
  export interface TogetherAIModel {
302
439
  /** This is the starting state for the conversation. */
303
440
  messages?: OpenAIMessage[];
304
- /** These are the tools functions that the assistant can execute during the call. */
305
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
441
+ /**
442
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
443
+ *
444
+ * Both `tools` and `toolIds` can be used together.
445
+ */
446
+ tools?: (
447
+ | CreateTransferCallToolDTO
448
+ | CreateFunctionToolDTO
449
+ | CreateEndCallToolDTO
450
+ | CreateDtmfToolDTO
451
+ | CreateMakeToolDTO
452
+ | CreateGhlToolDTO
453
+ )[];
454
+ /**
455
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
456
+ *
457
+ * Both `tools` and `toolIds` can be used together.
458
+ */
459
+ toolIds?: string[];
306
460
  provider: 'together-ai';
307
- /** The key of the model from the custom provider. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
461
+ /** This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
308
462
  model: string;
309
463
  /**
310
464
  * This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.
@@ -312,21 +466,46 @@ export interface TogetherAIModel {
312
466
  * @max 2
313
467
  */
314
468
  temperature?: number;
469
+ /** These are the options for the knowledge base. */
470
+ knowledgeBase?: KnowledgeBase;
315
471
  /**
316
472
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
317
473
  * @min 50
318
474
  * @max 1000
319
475
  */
320
476
  maxTokens?: number;
477
+ /**
478
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
479
+ *
480
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
481
+ */
482
+ emotionRecognitionEnabled?: boolean;
321
483
  }
322
484
 
323
485
  export interface AnyscaleModel {
324
486
  /** This is the starting state for the conversation. */
325
487
  messages?: OpenAIMessage[];
326
- /** These are the tools functions that the assistant can execute during the call. */
327
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
488
+ /**
489
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
490
+ *
491
+ * Both `tools` and `toolIds` can be used together.
492
+ */
493
+ tools?: (
494
+ | CreateTransferCallToolDTO
495
+ | CreateFunctionToolDTO
496
+ | CreateEndCallToolDTO
497
+ | CreateDtmfToolDTO
498
+ | CreateMakeToolDTO
499
+ | CreateGhlToolDTO
500
+ )[];
501
+ /**
502
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
503
+ *
504
+ * Both `tools` and `toolIds` can be used together.
505
+ */
506
+ toolIds?: string[];
328
507
  provider: 'anyscale';
329
- /** The key of the model from the custom provider. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
508
+ /** This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
330
509
  model: string;
331
510
  /**
332
511
  * This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.
@@ -334,21 +513,46 @@ export interface AnyscaleModel {
334
513
  * @max 2
335
514
  */
336
515
  temperature?: number;
516
+ /** These are the options for the knowledge base. */
517
+ knowledgeBase?: KnowledgeBase;
337
518
  /**
338
519
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
339
520
  * @min 50
340
521
  * @max 1000
341
522
  */
342
523
  maxTokens?: number;
524
+ /**
525
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
526
+ *
527
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
528
+ */
529
+ emotionRecognitionEnabled?: boolean;
343
530
  }
344
531
 
345
532
  export interface OpenRouterModel {
346
533
  /** This is the starting state for the conversation. */
347
534
  messages?: OpenAIMessage[];
348
- /** These are the tools functions that the assistant can execute during the call. */
349
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
535
+ /**
536
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
537
+ *
538
+ * Both `tools` and `toolIds` can be used together.
539
+ */
540
+ tools?: (
541
+ | CreateTransferCallToolDTO
542
+ | CreateFunctionToolDTO
543
+ | CreateEndCallToolDTO
544
+ | CreateDtmfToolDTO
545
+ | CreateMakeToolDTO
546
+ | CreateGhlToolDTO
547
+ )[];
548
+ /**
549
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
550
+ *
551
+ * Both `tools` and `toolIds` can be used together.
552
+ */
553
+ toolIds?: string[];
350
554
  provider: 'openrouter';
351
- /** The key of the model from the custom provider. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
555
+ /** This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
352
556
  model: string;
353
557
  /**
354
558
  * This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.
@@ -356,21 +560,46 @@ export interface OpenRouterModel {
356
560
  * @max 2
357
561
  */
358
562
  temperature?: number;
563
+ /** These are the options for the knowledge base. */
564
+ knowledgeBase?: KnowledgeBase;
359
565
  /**
360
566
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
361
567
  * @min 50
362
568
  * @max 1000
363
569
  */
364
570
  maxTokens?: number;
571
+ /**
572
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
573
+ *
574
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
575
+ */
576
+ emotionRecognitionEnabled?: boolean;
365
577
  }
366
578
 
367
579
  export interface PerplexityAIModel {
368
580
  /** This is the starting state for the conversation. */
369
581
  messages?: OpenAIMessage[];
370
- /** These are the tools functions that the assistant can execute during the call. */
371
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
582
+ /**
583
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
584
+ *
585
+ * Both `tools` and `toolIds` can be used together.
586
+ */
587
+ tools?: (
588
+ | CreateTransferCallToolDTO
589
+ | CreateFunctionToolDTO
590
+ | CreateEndCallToolDTO
591
+ | CreateDtmfToolDTO
592
+ | CreateMakeToolDTO
593
+ | CreateGhlToolDTO
594
+ )[];
595
+ /**
596
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
597
+ *
598
+ * Both `tools` and `toolIds` can be used together.
599
+ */
600
+ toolIds?: string[];
372
601
  provider: 'perplexity-ai';
373
- /** The key of the model from the custom provider. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
602
+ /** This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
374
603
  model: string;
375
604
  /**
376
605
  * This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.
@@ -378,21 +607,46 @@ export interface PerplexityAIModel {
378
607
  * @max 2
379
608
  */
380
609
  temperature?: number;
610
+ /** These are the options for the knowledge base. */
611
+ knowledgeBase?: KnowledgeBase;
381
612
  /**
382
613
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
383
614
  * @min 50
384
615
  * @max 1000
385
616
  */
386
617
  maxTokens?: number;
618
+ /**
619
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
620
+ *
621
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
622
+ */
623
+ emotionRecognitionEnabled?: boolean;
387
624
  }
388
625
 
389
626
  export interface DeepInfraModel {
390
627
  /** This is the starting state for the conversation. */
391
628
  messages?: OpenAIMessage[];
392
- /** These are the tools functions that the assistant can execute during the call. */
393
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
629
+ /**
630
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
631
+ *
632
+ * Both `tools` and `toolIds` can be used together.
633
+ */
634
+ tools?: (
635
+ | CreateTransferCallToolDTO
636
+ | CreateFunctionToolDTO
637
+ | CreateEndCallToolDTO
638
+ | CreateDtmfToolDTO
639
+ | CreateMakeToolDTO
640
+ | CreateGhlToolDTO
641
+ )[];
642
+ /**
643
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
644
+ *
645
+ * Both `tools` and `toolIds` can be used together.
646
+ */
647
+ toolIds?: string[];
394
648
  provider: 'deepinfra';
395
- /** The key of the model from the custom provider. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
649
+ /** This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
396
650
  model: string;
397
651
  /**
398
652
  * This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.
@@ -400,26 +654,51 @@ export interface DeepInfraModel {
400
654
  * @max 2
401
655
  */
402
656
  temperature?: number;
657
+ /** These are the options for the knowledge base. */
658
+ knowledgeBase?: KnowledgeBase;
403
659
  /**
404
660
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
405
661
  * @min 50
406
662
  * @max 1000
407
663
  */
408
664
  maxTokens?: number;
665
+ /**
666
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
667
+ *
668
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
669
+ */
670
+ emotionRecognitionEnabled?: boolean;
409
671
  }
410
672
 
411
673
  export interface CustomLLMModel {
412
674
  /** This is the starting state for the conversation. */
413
675
  messages?: OpenAIMessage[];
414
- /** These are the tools functions that the assistant can execute during the call. */
415
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
676
+ /**
677
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
678
+ *
679
+ * Both `tools` and `toolIds` can be used together.
680
+ */
681
+ tools?: (
682
+ | CreateTransferCallToolDTO
683
+ | CreateFunctionToolDTO
684
+ | CreateEndCallToolDTO
685
+ | CreateDtmfToolDTO
686
+ | CreateMakeToolDTO
687
+ | CreateGhlToolDTO
688
+ )[];
689
+ /**
690
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
691
+ *
692
+ * Both `tools` and `toolIds` can be used together.
693
+ */
694
+ toolIds?: string[];
416
695
  /** This is the provider that will be used for the model. Any service, including your own server, that is compatible with the OpenAI API can be used. */
417
696
  provider: 'custom-llm';
418
697
  /** These is the URL we'll use for the OpenAI client's `baseURL`. Ex. https://openrouter.ai/api/v1 */
419
698
  url: string;
420
699
  /** This sets whether the call object is sent in requests to the custom provider. Default is true. */
421
700
  urlRequestMetadataEnabled: boolean;
422
- /** The key of the model from the custom provider. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
701
+ /** This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
423
702
  model: string;
424
703
  /**
425
704
  * This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.
@@ -427,20 +706,45 @@ export interface CustomLLMModel {
427
706
  * @max 2
428
707
  */
429
708
  temperature?: number;
709
+ /** These are the options for the knowledge base. */
710
+ knowledgeBase?: KnowledgeBase;
430
711
  /**
431
712
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
432
713
  * @min 50
433
714
  * @max 1000
434
715
  */
435
716
  maxTokens?: number;
717
+ /**
718
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
719
+ *
720
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
721
+ */
722
+ emotionRecognitionEnabled?: boolean;
436
723
  }
437
724
 
438
725
  export interface GroqModel {
439
726
  /** This is the starting state for the conversation. */
440
727
  messages?: OpenAIMessage[];
441
- /** These are the tools functions that the assistant can execute during the call. */
442
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
443
- /** The key of the model from the custom provider. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
728
+ /**
729
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
730
+ *
731
+ * Both `tools` and `toolIds` can be used together.
732
+ */
733
+ tools?: (
734
+ | CreateTransferCallToolDTO
735
+ | CreateFunctionToolDTO
736
+ | CreateEndCallToolDTO
737
+ | CreateDtmfToolDTO
738
+ | CreateMakeToolDTO
739
+ | CreateGhlToolDTO
740
+ )[];
741
+ /**
742
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
743
+ *
744
+ * Both `tools` and `toolIds` can be used together.
745
+ */
746
+ toolIds?: string[];
747
+ /** This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
444
748
  model: 'mixtral-8x7b-32768' | 'llama3-8b-8192' | 'llama3-70b-8192';
445
749
  provider: 'groq';
446
750
  /**
@@ -449,19 +753,44 @@ export interface GroqModel {
449
753
  * @max 2
450
754
  */
451
755
  temperature?: number;
756
+ /** These are the options for the knowledge base. */
757
+ knowledgeBase?: KnowledgeBase;
452
758
  /**
453
759
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
454
760
  * @min 50
455
761
  * @max 1000
456
762
  */
457
763
  maxTokens?: number;
764
+ /**
765
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
766
+ *
767
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
768
+ */
769
+ emotionRecognitionEnabled?: boolean;
458
770
  }
459
771
 
460
772
  export interface AnthropicModel {
461
773
  /** This is the starting state for the conversation. */
462
774
  messages?: OpenAIMessage[];
463
- /** These are the tools functions that the assistant can execute during the call. */
464
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
775
+ /**
776
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
777
+ *
778
+ * Both `tools` and `toolIds` can be used together.
779
+ */
780
+ tools?: (
781
+ | CreateTransferCallToolDTO
782
+ | CreateFunctionToolDTO
783
+ | CreateEndCallToolDTO
784
+ | CreateDtmfToolDTO
785
+ | CreateMakeToolDTO
786
+ | CreateGhlToolDTO
787
+ )[];
788
+ /**
789
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
790
+ *
791
+ * Both `tools` and `toolIds` can be used together.
792
+ */
793
+ toolIds?: string[];
465
794
  /** This is the Anthropic/Claude models that will be used. */
466
795
  model: 'claude-3-opus-20240229' | 'claude-3-sonnet-20240229' | 'claude-3-haiku-20240307';
467
796
  provider: 'anthropic';
@@ -471,12 +800,20 @@ export interface AnthropicModel {
471
800
  * @max 2
472
801
  */
473
802
  temperature?: number;
803
+ /** These are the options for the knowledge base. */
804
+ knowledgeBase?: KnowledgeBase;
474
805
  /**
475
806
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
476
807
  * @min 50
477
808
  * @max 1000
478
809
  */
479
810
  maxTokens?: number;
811
+ /**
812
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
813
+ *
814
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
815
+ */
816
+ emotionRecognitionEnabled?: boolean;
480
817
  }
481
818
 
482
819
  export interface DeepgramTranscriber {
@@ -515,6 +852,8 @@ export interface DeepgramTranscriber {
515
852
  | string;
516
853
  /** This is the language that will be set for the transcription. The list of languages Deepgram supports can be found here: https://developers.deepgram.com/docs/models-languages-overview */
517
854
  language?:
855
+ | 'bg'
856
+ | 'ro'
518
857
  | 'cs'
519
858
  | 'da'
520
859
  | 'da-DK'
@@ -672,14 +1011,19 @@ export interface TalkscriberTranscriber {
672
1011
 
673
1012
  export interface ElevenLabsVoice {
674
1013
  /**
675
- * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to 10.
1014
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
1015
+ * @example true
1016
+ */
1017
+ inputPreprocessingEnabled?: boolean;
1018
+ /**
1019
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
676
1020
  * @min 1
677
1021
  * @max 80
678
1022
  * @example 10
679
1023
  */
680
1024
  inputMinCharacters?: number;
681
1025
  /**
682
- * These are the punctuations that are considered valid boundaries / "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
1026
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
683
1027
  * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
684
1028
  */
685
1029
  inputPunctuationBoundaries?:
@@ -698,6 +1042,13 @@ export interface ElevenLabsVoice {
698
1042
  | '||'
699
1043
  | ','
700
1044
  | ':';
1045
+ /**
1046
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
1047
+ *
1048
+ * Default `false` because you can achieve better results with prompting the model.
1049
+ * @example false
1050
+ */
1051
+ fillerInjectionEnabled?: boolean;
701
1052
  /** This is the voice provider that will be used. */
702
1053
  provider: '11labs';
703
1054
  /** This is the provider-specific ID that will be used. Ensure the Voice is present in your 11Labs Voice Library. */
@@ -745,29 +1096,50 @@ export interface ElevenLabsVoice {
745
1096
  */
746
1097
  useSpeakerBoost?: boolean;
747
1098
  /**
748
- * Defines the optimize streaming latency for voice settings.
1099
+ * Defines the optimize streaming latency for voice settings. Defaults to 3.
749
1100
  * @min 0
750
1101
  * @max 4
751
- * @example 4
1102
+ * @example 3
752
1103
  */
753
- enableSsmlParsing?: boolean;
1104
+ optimizeStreamingLatency?: number;
754
1105
  /**
755
- * Defines whether SSML parsing is enabled.
756
- * @example true
1106
+ * Defines the use of https://elevenlabs.io/docs/speech-synthesis/prompting#pronunciation. Disabled by default.
1107
+ * @example false
757
1108
  */
758
- optimizeStreamingLatency?: number;
1109
+ enableSsmlParsing?: boolean;
759
1110
  /**
760
- * This is the model that will be used. Defaults to 'eleven_multilingual_v2' if transcriber.language is non-English, otherwise 'eleven_turbo_v2'.
761
- * @example "eleven_turbo_v2"
1111
+ * This is the model that will be used. Defaults to 'eleven_multilingual_v2' if transcriber.language is non-English, otherwise 'eleven_turbo_v2_5'.
1112
+ * @example "eleven_turbo_v2_5"
762
1113
  */
763
- model?: 'eleven_multilingual_v2' | 'eleven_turbo_v2' | 'eleven_monolingual_v1';
1114
+ model?:
1115
+ | 'eleven_multilingual_v2'
1116
+ | 'eleven_turbo_v2'
1117
+ | 'eleven_turbo_v2_5'
1118
+ | 'eleven_monolingual_v1';
764
1119
  }
765
1120
 
766
1121
  export interface OpenAIModel {
767
1122
  /** This is the starting state for the conversation. */
768
1123
  messages?: OpenAIMessage[];
769
- /** These are the tools functions that the assistant can execute during the call. */
770
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
1124
+ /**
1125
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
1126
+ *
1127
+ * Both `tools` and `toolIds` can be used together.
1128
+ */
1129
+ tools?: (
1130
+ | CreateTransferCallToolDTO
1131
+ | CreateFunctionToolDTO
1132
+ | CreateEndCallToolDTO
1133
+ | CreateDtmfToolDTO
1134
+ | CreateMakeToolDTO
1135
+ | CreateGhlToolDTO
1136
+ )[];
1137
+ /**
1138
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
1139
+ *
1140
+ * Both `tools` and `toolIds` can be used together.
1141
+ */
1142
+ toolIds?: string[];
771
1143
  /** This is the provider that will be used for the model. */
772
1144
  provider: 'openai';
773
1145
  /** This is the OpenAI model that will be used. */
@@ -818,24 +1190,37 @@ export interface OpenAIModel {
818
1190
  * @max 2
819
1191
  */
820
1192
  temperature?: number;
1193
+ /** These are the options for the knowledge base. */
1194
+ knowledgeBase?: KnowledgeBase;
821
1195
  /**
822
1196
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
823
1197
  * @min 50
824
1198
  * @max 1000
825
1199
  */
826
1200
  maxTokens?: number;
1201
+ /**
1202
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
1203
+ *
1204
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
1205
+ */
1206
+ emotionRecognitionEnabled?: boolean;
827
1207
  }
828
1208
 
829
1209
  export interface PlayHTVoice {
830
1210
  /**
831
- * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to 10.
1211
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
1212
+ * @example true
1213
+ */
1214
+ inputPreprocessingEnabled?: boolean;
1215
+ /**
1216
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
832
1217
  * @min 1
833
1218
  * @max 80
834
1219
  * @example 10
835
1220
  */
836
1221
  inputMinCharacters?: number;
837
1222
  /**
838
- * These are the punctuations that are considered valid boundaries / "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
1223
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
839
1224
  * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
840
1225
  */
841
1226
  inputPunctuationBoundaries?:
@@ -854,6 +1239,13 @@ export interface PlayHTVoice {
854
1239
  | '||'
855
1240
  | ','
856
1241
  | ':';
1242
+ /**
1243
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
1244
+ *
1245
+ * Default `false` because you can achieve better results with prompting the model.
1246
+ * @example false
1247
+ */
1248
+ fillerInjectionEnabled?: boolean;
857
1249
  /** This is the voice provider that will be used. */
858
1250
  provider: 'playht';
859
1251
  /** This is the provider-specific ID that will be used. */
@@ -925,14 +1317,19 @@ export interface PlayHTVoice {
925
1317
 
926
1318
  export interface RimeAIVoice {
927
1319
  /**
928
- * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to 10.
1320
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
1321
+ * @example true
1322
+ */
1323
+ inputPreprocessingEnabled?: boolean;
1324
+ /**
1325
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
929
1326
  * @min 1
930
1327
  * @max 80
931
1328
  * @example 10
932
1329
  */
933
1330
  inputMinCharacters?: number;
934
1331
  /**
935
- * These are the punctuations that are considered valid boundaries / "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
1332
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
936
1333
  * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
937
1334
  */
938
1335
  inputPunctuationBoundaries?:
@@ -951,10 +1348,37 @@ export interface RimeAIVoice {
951
1348
  | '||'
952
1349
  | ','
953
1350
  | ':';
1351
+ /**
1352
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
1353
+ *
1354
+ * Default `false` because you can achieve better results with prompting the model.
1355
+ * @example false
1356
+ */
1357
+ fillerInjectionEnabled?: boolean;
954
1358
  /** This is the voice provider that will be used. */
955
1359
  provider: 'rime-ai';
956
1360
  /** This is the provider-specific ID that will be used. */
957
1361
  voiceId:
1362
+ | 'marsh'
1363
+ | 'bayou'
1364
+ | 'creek'
1365
+ | 'brook'
1366
+ | 'flower'
1367
+ | 'spore'
1368
+ | 'glacier'
1369
+ | 'gulch'
1370
+ | 'alpine'
1371
+ | 'cove'
1372
+ | 'lagoon'
1373
+ | 'tundra'
1374
+ | 'steppe'
1375
+ | 'mesa'
1376
+ | 'grove'
1377
+ | 'rainforest'
1378
+ | 'moraine'
1379
+ | 'wildflower'
1380
+ | 'peak'
1381
+ | 'boulder'
958
1382
  | 'abbie'
959
1383
  | 'allison'
960
1384
  | 'ally'
@@ -1018,6 +1442,12 @@ export interface RimeAIVoice {
1018
1442
  | 'yadira'
1019
1443
  | string;
1020
1444
  /**
1445
+ * This is the model that will be used. Defaults to 'v1' when not specified.
1446
+ * @example "v1"
1447
+ */
1448
+ model?: 'v1' | 'mist';
1449
+ /**
1450
+ * This is the speed multiplier that will be used.
1021
1451
  * @min 0.1
1022
1452
  * @example null
1023
1453
  */
@@ -1026,14 +1456,19 @@ export interface RimeAIVoice {
1026
1456
 
1027
1457
  export interface OpenAIVoice {
1028
1458
  /**
1029
- * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to 10.
1459
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
1460
+ * @example true
1461
+ */
1462
+ inputPreprocessingEnabled?: boolean;
1463
+ /**
1464
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
1030
1465
  * @min 1
1031
1466
  * @max 80
1032
1467
  * @example 10
1033
1468
  */
1034
1469
  inputMinCharacters?: number;
1035
1470
  /**
1036
- * These are the punctuations that are considered valid boundaries / "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
1471
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
1037
1472
  * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
1038
1473
  */
1039
1474
  inputPunctuationBoundaries?:
@@ -1052,6 +1487,13 @@ export interface OpenAIVoice {
1052
1487
  | '||'
1053
1488
  | ','
1054
1489
  | ':';
1490
+ /**
1491
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
1492
+ *
1493
+ * Default `false` because you can achieve better results with prompting the model.
1494
+ * @example false
1495
+ */
1496
+ fillerInjectionEnabled?: boolean;
1055
1497
  /** This is the voice provider that will be used. */
1056
1498
  provider: 'openai';
1057
1499
  /** This is the provider-specific ID that will be used. */
@@ -1067,14 +1509,19 @@ export interface OpenAIVoice {
1067
1509
 
1068
1510
  export interface AzureVoice {
1069
1511
  /**
1070
- * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to 10.
1512
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
1513
+ * @example true
1514
+ */
1515
+ inputPreprocessingEnabled?: boolean;
1516
+ /**
1517
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
1071
1518
  * @min 1
1072
1519
  * @max 80
1073
1520
  * @example 10
1074
1521
  */
1075
1522
  inputMinCharacters?: number;
1076
1523
  /**
1077
- * These are the punctuations that are considered valid boundaries / "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
1524
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
1078
1525
  * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
1079
1526
  */
1080
1527
  inputPunctuationBoundaries?:
@@ -1093,6 +1540,13 @@ export interface AzureVoice {
1093
1540
  | '||'
1094
1541
  | ','
1095
1542
  | ':';
1543
+ /**
1544
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
1545
+ *
1546
+ * Default `false` because you can achieve better results with prompting the model.
1547
+ * @example false
1548
+ */
1549
+ fillerInjectionEnabled?: boolean;
1096
1550
  /** This is the voice provider that will be used. */
1097
1551
  provider: 'azure';
1098
1552
  /** This is the provider-specific ID that will be used. */
@@ -1107,14 +1561,19 @@ export interface AzureVoice {
1107
1561
 
1108
1562
  export interface LMNTVoice {
1109
1563
  /**
1110
- * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to 10.
1564
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
1565
+ * @example true
1566
+ */
1567
+ inputPreprocessingEnabled?: boolean;
1568
+ /**
1569
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
1111
1570
  * @min 1
1112
1571
  * @max 80
1113
1572
  * @example 10
1114
1573
  */
1115
1574
  inputMinCharacters?: number;
1116
1575
  /**
1117
- * These are the punctuations that are considered valid boundaries / "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
1576
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
1118
1577
  * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
1119
1578
  */
1120
1579
  inputPunctuationBoundaries?:
@@ -1133,6 +1592,13 @@ export interface LMNTVoice {
1133
1592
  | '||'
1134
1593
  | ','
1135
1594
  | ':';
1595
+ /**
1596
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
1597
+ *
1598
+ * Default `false` because you can achieve better results with prompting the model.
1599
+ * @example false
1600
+ */
1601
+ fillerInjectionEnabled?: boolean;
1136
1602
  /** This is the voice provider that will be used. */
1137
1603
  provider: 'lmnt';
1138
1604
  /** This is the provider-specific ID that will be used. */
@@ -1148,14 +1614,19 @@ export interface LMNTVoice {
1148
1614
 
1149
1615
  export interface NeetsVoice {
1150
1616
  /**
1151
- * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to 10.
1617
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
1618
+ * @example true
1619
+ */
1620
+ inputPreprocessingEnabled?: boolean;
1621
+ /**
1622
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
1152
1623
  * @min 1
1153
1624
  * @max 80
1154
1625
  * @example 10
1155
1626
  */
1156
1627
  inputMinCharacters?: number;
1157
1628
  /**
1158
- * These are the punctuations that are considered valid boundaries / "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
1629
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
1159
1630
  * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
1160
1631
  */
1161
1632
  inputPunctuationBoundaries?:
@@ -1174,19 +1645,178 @@ export interface NeetsVoice {
1174
1645
  | '||'
1175
1646
  | ','
1176
1647
  | ':';
1648
+ /**
1649
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
1650
+ *
1651
+ * Default `false` because you can achieve better results with prompting the model.
1652
+ * @example false
1653
+ */
1654
+ fillerInjectionEnabled?: boolean;
1177
1655
  /** This is the voice provider that will be used. */
1178
1656
  provider: 'neets';
1179
1657
  /** This is the provider-specific ID that will be used. */
1180
- voiceId: 'lily' | 'daniel' | string;
1658
+ voiceId: 'vits' | string;
1181
1659
  }
1182
1660
 
1183
- export interface ForwardingPhoneNumber {
1184
- /** This is the number to forward to. Pass one of `number` or `sipUri`. */
1185
- number?: string;
1186
- /** This is the SIP URI to forward to. Pass one of `number` or `sipUri`. */
1187
- sipUri?: string;
1188
- /** This is the message that the assistant will say when the call is forwarded to this number. */
1189
- message?: string;
1661
+ export interface CartesiaVoice {
1662
+ /**
1663
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
1664
+ * @example true
1665
+ */
1666
+ inputPreprocessingEnabled?: boolean;
1667
+ /**
1668
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
1669
+ * @min 1
1670
+ * @max 80
1671
+ * @example 10
1672
+ */
1673
+ inputMinCharacters?: number;
1674
+ /**
1675
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
1676
+ * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
1677
+ */
1678
+ inputPunctuationBoundaries?:
1679
+ | '。'
1680
+ | ','
1681
+ | '.'
1682
+ | '!'
1683
+ | '?'
1684
+ | ';'
1685
+ | ')'
1686
+ | '،'
1687
+ | '۔'
1688
+ | '।'
1689
+ | '॥'
1690
+ | '|'
1691
+ | '||'
1692
+ | ','
1693
+ | ':';
1694
+ /**
1695
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
1696
+ *
1697
+ * Default `false` because you can achieve better results with prompting the model.
1698
+ * @example false
1699
+ */
1700
+ fillerInjectionEnabled?: boolean;
1701
+ /** This is the voice provider that will be used. */
1702
+ provider: 'cartesia';
1703
+ /** This is the provider-specific ID that will be used. */
1704
+ voiceId: string;
1705
+ }
1706
+
1707
+ export interface TwilioVoicemailDetection {
1708
+ provider: 'twilio';
1709
+ /**
1710
+ * These are the AMD messages from Twilio that are considered as voicemail. Default is ['machine_end_beep', 'machine_end_silence'].
1711
+ * @example ["machine_end_beep","machine_end_silence"]
1712
+ */
1713
+ voicemailDetectionTypes?:
1714
+ | 'machine_start'
1715
+ | 'human'
1716
+ | 'fax'
1717
+ | 'unknown'
1718
+ | 'machine_end_beep'
1719
+ | 'machine_end_silence'
1720
+ | 'machine_end_other';
1721
+ enabled?: boolean;
1722
+ /**
1723
+ * @min 3
1724
+ * @max 59
1725
+ */
1726
+ machineDetectionTimeout?: number;
1727
+ /**
1728
+ * @min 1000
1729
+ * @max 6000
1730
+ */
1731
+ machineDetectionSpeechThreshold?: number;
1732
+ /**
1733
+ * @min 500
1734
+ * @max 5000
1735
+ */
1736
+ machineDetectionSpeechEndThreshold?: number;
1737
+ /**
1738
+ * @min 2000
1739
+ * @max 10000
1740
+ */
1741
+ machineDetectionSilenceTimeout?: number;
1742
+ }
1743
+
1744
+ export interface AnalysisPlan {
1745
+ /**
1746
+ * This is the prompt that's used to summarize the call. The output is stored in `call.analysis.summary`.
1747
+ *
1748
+ * Default is "You are an expert note-taker. You will be given a transcript of a call. Summarize the call in 2-3 sentences, if applicable.".
1749
+ *
1750
+ * Set to '' or 'off' to disable.
1751
+ * @maxLength 2000
1752
+ */
1753
+ summaryPrompt?: string;
1754
+ /**
1755
+ * This is the prompt that's used to evaluate if the call was successful. The output is stored in `call.analysis.successEvaluation`.
1756
+ *
1757
+ * Default is "You are an expert call evaluator. You will be given a transcript of a call and the system prompt of the AI participant. Determine if the call was successful based on the objectives inferred from the system prompt.".
1758
+ *
1759
+ * Set to '' or 'off' to disable.
1760
+ *
1761
+ * You can use this standalone or in combination with `successEvaluationRubric`. If both are provided, they are concatenated into appropriate instructions.
1762
+ * @maxLength 2000
1763
+ */
1764
+ successEvaluationPrompt?: string;
1765
+ /**
1766
+ * This enforces the rubric of the evaluation. The output is stored in `call.analysis.successEvaluation`.
1767
+ *
1768
+ * Options include:
1769
+ * - 'NumericScale': A scale of 1 to 10.
1770
+ * - 'DescriptiveScale': A scale of Excellent, Good, Fair, Poor.
1771
+ * - 'Checklist': A checklist of criteria and their status.
1772
+ * - 'Matrix': A grid that evaluates multiple criteria across different performance levels.
1773
+ * - 'PercentageScale': A scale of 0% to 100%.
1774
+ * - 'LikertScale': A scale of Strongly Agree, Agree, Neutral, Disagree, Strongly Disagree.
1775
+ * - 'AutomaticRubric': Automatically break down evaluation into several criteria, each with its own score.
1776
+ * - 'PassFail': A simple 'true' if call passed, 'false' if not.
1777
+ *
1778
+ * For 'Checklist' and 'Matrix', provide the criteria in `successEvaluationPrompt`.
1779
+ *
1780
+ * Default is 'PassFail' if `successEvaluationPrompt` is not provided, and null if `successEvaluationPrompt` is provided.
1781
+ *
1782
+ * You can use this standalone or in combination with `successEvaluationPrompt`. If both are provided, they are concatenated into appropriate instructions.
1783
+ */
1784
+ successEvaluationRubric?:
1785
+ | 'NumericScale'
1786
+ | 'DescriptiveScale'
1787
+ | 'Checklist'
1788
+ | 'Matrix'
1789
+ | 'PercentageScale'
1790
+ | 'LikertScale'
1791
+ | 'AutomaticRubric'
1792
+ | 'PassFail';
1793
+ /**
1794
+ * This is the prompt that's used to extract structured data from the call. The output is stored in `call.analysis.structuredData`.
1795
+ *
1796
+ * Disabled by default.
1797
+ *
1798
+ * You can use this standalone or in combination with `structuredDataSchema`. If both are provided, they are concatenated into appropriate instructions.
1799
+ * @maxLength 2000
1800
+ */
1801
+ structuredDataPrompt?: string;
1802
+ /**
1803
+ * This enforces the schema of the structured data. This output is stored in `call.analysis.structuredData`.
1804
+ *
1805
+ * Complete guide on JSON Schema can be found [here](https://ajv.js.org/json-schema.html#json-data-type).
1806
+ *
1807
+ * Disabled by default.
1808
+ *
1809
+ * You can use this standalone or in combination with `structuredDataPrompt`. If both are provided, they are concatenated into appropriate instructions.
1810
+ */
1811
+ structuredDataSchema?: JsonSchema;
1812
+ }
1813
+
1814
+ export interface ArtifactPlan {
1815
+ /**
1816
+ * This sets whether the video is recorded with Daily. Defaults to false.
1817
+ * @example true
1818
+ */
1819
+ videoRecordingEnabled?: boolean;
1190
1820
  }
1191
1821
 
1192
1822
  export interface CreateAssistantDTO {
@@ -1209,18 +1839,14 @@ export interface CreateAssistantDTO {
1209
1839
  */
1210
1840
  voice?:
1211
1841
  | AzureVoice
1842
+ | DeepgramVoice
1212
1843
  | ElevenLabsVoice
1844
+ | LMNTVoice
1845
+ | NeetsVoice
1846
+ | OpenAIVoice
1213
1847
  | PlayHTVoice
1214
1848
  | RimeAIVoice
1215
- | DeepgramVoice
1216
- | OpenAIVoice
1217
- | LMNTVoice
1218
- | NeetsVoice;
1219
- /**
1220
- * This is the number to forward to if assistant runs into issues.
1221
- * @example null
1222
- */
1223
- forwardingPhoneNumber?: string;
1849
+ | CartesiaVoice;
1224
1850
  /**
1225
1851
  * This is the mode for the first message. Default is 'assistant-speaks-first'.
1226
1852
  *
@@ -1228,33 +1854,11 @@ export interface CreateAssistantDTO {
1228
1854
  * @example "assistant-speaks-first"
1229
1855
  */
1230
1856
  firstMessageMode?: 'assistant-speaks-first' | 'assistant-waits-for-user';
1231
- /**
1232
- * These are the AMD messages from Twilio that are considered as voicemail. Default is ['machine_end_beep', 'machine_end_silence', 'machine_end_other'].
1233
- * @example ["machine_end_beep","machine_end_silence","machine_end_other"]
1234
- */
1235
- voicemailDetectionTypes?:
1236
- | 'machine_start'
1237
- | 'human'
1238
- | 'fax'
1239
- | 'unknown'
1240
- | 'machine_end_beep'
1241
- | 'machine_end_silence'
1242
- | 'machine_end_other';
1243
1857
  /**
1244
1858
  * This sets whether the assistant's calls are recorded. Defaults to true.
1245
1859
  * @example true
1246
1860
  */
1247
1861
  recordingEnabled?: boolean;
1248
- /**
1249
- * This sets whether the assistant will be able to hang up the call. Defaults to false.
1250
- * @example false
1251
- */
1252
- endCallFunctionEnabled?: boolean;
1253
- /**
1254
- * This sets whether the assistant can dial digits on the keypad. Defaults to false.
1255
- * @default null
1256
- */
1257
- dialKeypadFunctionEnabled?: boolean;
1258
1862
  /**
1259
1863
  * When this is enabled, no logs, recordings, or transcriptions will be stored. At the end of the call, you will still receive an end-of-call-report message to store on your server. Defaults to false.
1260
1864
  * @example false
@@ -1264,7 +1868,7 @@ export interface CreateAssistantDTO {
1264
1868
  * These are the messages that will be sent to the Client SDKs. Default is ['transcript', 'hang', 'tool-calls', 'speech-update', 'metadata', 'conversation-update']
1265
1869
  * @example ["transcript","hang","tool-calls","speech-update","metadata","conversation-update"]
1266
1870
  */
1267
- clientMessages?: (
1871
+ clientMessages?:
1268
1872
  | 'status-update'
1269
1873
  | 'speech-update'
1270
1874
  | 'transcript'
@@ -1274,13 +1878,12 @@ export interface CreateAssistantDTO {
1274
1878
  | 'metadata'
1275
1879
  | 'conversation-update'
1276
1880
  | 'model-output'
1277
- | 'voice-input'
1278
- )[];
1881
+ | 'voice-input';
1279
1882
  /**
1280
1883
  * These are the messages that will be sent to your Server URL. Default is ['end-of-call-report', 'status-update', 'hang', 'tool-calls']
1281
1884
  * @example ["end-of-call-report","status-update","hang","tool-calls"]
1282
1885
  */
1283
- serverMessages?: (
1886
+ serverMessages?:
1284
1887
  | 'status-update'
1285
1888
  | 'transcript'
1286
1889
  | 'hang'
@@ -1290,8 +1893,7 @@ export interface CreateAssistantDTO {
1290
1893
  | 'conversation-update'
1291
1894
  | 'phone-call-control'
1292
1895
  | 'model-output'
1293
- | 'voice-input'
1294
- )[];
1896
+ | 'voice-input';
1295
1897
  /**
1296
1898
  * How many seconds of silence to wait before ending the call. Defaults to 30.
1297
1899
  * @min 10
@@ -1333,17 +1935,18 @@ export interface CreateAssistantDTO {
1333
1935
  */
1334
1936
  backgroundSound?: 'off' | 'office';
1335
1937
  /**
1336
- * backchanneling is the bot say while listening like 'mhmm', 'ahem' etc. this make the conversation sounds natural. Default True
1938
+ * This determines whether the model says 'mhmm', 'ahem' etc. while user is speaking.
1939
+ *
1940
+ * Default `false` while in beta.
1337
1941
  * @example true
1338
1942
  */
1339
1943
  backchannelingEnabled?: boolean;
1340
1944
  /**
1341
- * This is the name of the assistant. This is just for your own reference.
1945
+ * This is the name of the assistant.
1946
+ * This is only required to transfer calls between assistants.
1342
1947
  * @maxLength 100
1343
1948
  */
1344
1949
  name?: string;
1345
- /** You can provide a set of phone numbers to forward to. You'll want to tell the assistant when to use each of these numbers in the system prompt. */
1346
- forwardingPhoneNumbers?: ForwardingPhoneNumber[];
1347
1950
  /**
1348
1951
  * This is the first message that the assistant will say. This can also be a URL to a containerized audio file (mp3, wav, etc.).
1349
1952
  *
@@ -1351,8 +1954,8 @@ export interface CreateAssistantDTO {
1351
1954
  * @maxLength 1000
1352
1955
  */
1353
1956
  firstMessage?: string;
1354
- /** This sets whether the assistant should detect voicemail. Defaults to true. */
1355
- voicemailDetectionEnabled?: boolean;
1957
+ /** These are the settings to configure or disable voicemail detection. */
1958
+ voicemailDetection?: TwilioVoicemailDetection;
1356
1959
  /**
1357
1960
  * This is the message that the assistant will say if the call is forwarded to voicemail.
1358
1961
  *
@@ -1382,18 +1985,11 @@ export interface CreateAssistantDTO {
1382
1985
  /**
1383
1986
  * This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
1384
1987
  *
1385
- * Same precendence logic as serverUrl.
1988
+ * Same precedence logic as serverUrl.
1386
1989
  */
1387
1990
  serverUrlSecret?: string;
1388
- /**
1389
- * This is the prompt that's used to summarize the call at the end.
1390
- *
1391
- * Default is 'You are an expert note-taker. You will be given a transcript of a conversation. Please summarize the conversation in 4-5 sentences if applicable.'
1392
- *
1393
- * Set to '' or 'off' to disable post-call summarization.
1394
- * @maxLength 2000
1395
- */
1396
- summaryPrompt?: string;
1991
+ analysisPlan?: AnalysisPlan;
1992
+ artifactPlan?: ArtifactPlan;
1397
1993
  }
1398
1994
 
1399
1995
  export interface Assistant {
@@ -1416,18 +2012,14 @@ export interface Assistant {
1416
2012
  */
1417
2013
  voice?:
1418
2014
  | AzureVoice
2015
+ | DeepgramVoice
1419
2016
  | ElevenLabsVoice
2017
+ | LMNTVoice
2018
+ | NeetsVoice
2019
+ | OpenAIVoice
1420
2020
  | PlayHTVoice
1421
2021
  | RimeAIVoice
1422
- | DeepgramVoice
1423
- | OpenAIVoice
1424
- | LMNTVoice
1425
- | NeetsVoice;
1426
- /**
1427
- * This is the number to forward to if assistant runs into issues.
1428
- * @example null
1429
- */
1430
- forwardingPhoneNumber?: string;
2022
+ | CartesiaVoice;
1431
2023
  /**
1432
2024
  * This is the mode for the first message. Default is 'assistant-speaks-first'.
1433
2025
  *
@@ -1435,33 +2027,11 @@ export interface Assistant {
1435
2027
  * @example "assistant-speaks-first"
1436
2028
  */
1437
2029
  firstMessageMode?: 'assistant-speaks-first' | 'assistant-waits-for-user';
1438
- /**
1439
- * These are the AMD messages from Twilio that are considered as voicemail. Default is ['machine_end_beep', 'machine_end_silence', 'machine_end_other'].
1440
- * @example ["machine_end_beep","machine_end_silence","machine_end_other"]
1441
- */
1442
- voicemailDetectionTypes?:
1443
- | 'machine_start'
1444
- | 'human'
1445
- | 'fax'
1446
- | 'unknown'
1447
- | 'machine_end_beep'
1448
- | 'machine_end_silence'
1449
- | 'machine_end_other';
1450
2030
  /**
1451
2031
  * This sets whether the assistant's calls are recorded. Defaults to true.
1452
2032
  * @example true
1453
2033
  */
1454
2034
  recordingEnabled?: boolean;
1455
- /**
1456
- * This sets whether the assistant will be able to hang up the call. Defaults to false.
1457
- * @example false
1458
- */
1459
- endCallFunctionEnabled?: boolean;
1460
- /**
1461
- * This sets whether the assistant can dial digits on the keypad. Defaults to false.
1462
- * @default null
1463
- */
1464
- dialKeypadFunctionEnabled?: boolean;
1465
2035
  /**
1466
2036
  * When this is enabled, no logs, recordings, or transcriptions will be stored. At the end of the call, you will still receive an end-of-call-report message to store on your server. Defaults to false.
1467
2037
  * @example false
@@ -1471,7 +2041,7 @@ export interface Assistant {
1471
2041
  * These are the messages that will be sent to the Client SDKs. Default is ['transcript', 'hang', 'tool-calls', 'speech-update', 'metadata', 'conversation-update']
1472
2042
  * @example ["transcript","hang","tool-calls","speech-update","metadata","conversation-update"]
1473
2043
  */
1474
- clientMessages?: (
2044
+ clientMessages?:
1475
2045
  | 'status-update'
1476
2046
  | 'speech-update'
1477
2047
  | 'transcript'
@@ -1481,13 +2051,12 @@ export interface Assistant {
1481
2051
  | 'metadata'
1482
2052
  | 'conversation-update'
1483
2053
  | 'model-output'
1484
- | 'voice-input'
1485
- )[];
2054
+ | 'voice-input';
1486
2055
  /**
1487
2056
  * These are the messages that will be sent to your Server URL. Default is ['end-of-call-report', 'status-update', 'hang', 'tool-calls']
1488
2057
  * @example ["end-of-call-report","status-update","hang","tool-calls"]
1489
2058
  */
1490
- serverMessages?: (
2059
+ serverMessages?:
1491
2060
  | 'status-update'
1492
2061
  | 'transcript'
1493
2062
  | 'hang'
@@ -1497,8 +2066,7 @@ export interface Assistant {
1497
2066
  | 'conversation-update'
1498
2067
  | 'phone-call-control'
1499
2068
  | 'model-output'
1500
- | 'voice-input'
1501
- )[];
2069
+ | 'voice-input';
1502
2070
  /**
1503
2071
  * How many seconds of silence to wait before ending the call. Defaults to 30.
1504
2072
  * @min 10
@@ -1540,17 +2108,18 @@ export interface Assistant {
1540
2108
  */
1541
2109
  backgroundSound?: 'off' | 'office';
1542
2110
  /**
1543
- * backchanneling is the bot say while listening like 'mhmm', 'ahem' etc. this make the conversation sounds natural. Default True
2111
+ * This determines whether the model says 'mhmm', 'ahem' etc. while user is speaking.
2112
+ *
2113
+ * Default `false` while in beta.
1544
2114
  * @example true
1545
2115
  */
1546
2116
  backchannelingEnabled?: boolean;
1547
2117
  /**
1548
- * This is the name of the assistant. This is just for your own reference.
2118
+ * This is the name of the assistant.
2119
+ * This is only required to transfer calls between assistants.
1549
2120
  * @maxLength 100
1550
2121
  */
1551
2122
  name?: string;
1552
- /** You can provide a set of phone numbers to forward to. You'll want to tell the assistant when to use each of these numbers in the system prompt. */
1553
- forwardingPhoneNumbers?: ForwardingPhoneNumber[];
1554
2123
  /**
1555
2124
  * This is the first message that the assistant will say. This can also be a URL to a containerized audio file (mp3, wav, etc.).
1556
2125
  *
@@ -1558,8 +2127,8 @@ export interface Assistant {
1558
2127
  * @maxLength 1000
1559
2128
  */
1560
2129
  firstMessage?: string;
1561
- /** This sets whether the assistant should detect voicemail. Defaults to true. */
1562
- voicemailDetectionEnabled?: boolean;
2130
+ /** These are the settings to configure or disable voicemail detection. */
2131
+ voicemailDetection?: TwilioVoicemailDetection;
1563
2132
  /**
1564
2133
  * This is the message that the assistant will say if the call is forwarded to voicemail.
1565
2134
  *
@@ -1589,18 +2158,11 @@ export interface Assistant {
1589
2158
  /**
1590
2159
  * This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
1591
2160
  *
1592
- * Same precendence logic as serverUrl.
2161
+ * Same precedence logic as serverUrl.
1593
2162
  */
1594
2163
  serverUrlSecret?: string;
1595
- /**
1596
- * This is the prompt that's used to summarize the call at the end.
1597
- *
1598
- * Default is 'You are an expert note-taker. You will be given a transcript of a conversation. Please summarize the conversation in 4-5 sentences if applicable.'
1599
- *
1600
- * Set to '' or 'off' to disable post-call summarization.
1601
- * @maxLength 2000
1602
- */
1603
- summaryPrompt?: string;
2164
+ analysisPlan?: AnalysisPlan;
2165
+ artifactPlan?: ArtifactPlan;
1604
2166
  /** This is the unique identifier for the assistant. */
1605
2167
  id: string;
1606
2168
  /** This is the unique identifier for the org that this assistant belongs to. */
@@ -1637,18 +2199,14 @@ export interface UpdateAssistantDTO {
1637
2199
  */
1638
2200
  voice?:
1639
2201
  | AzureVoice
2202
+ | DeepgramVoice
1640
2203
  | ElevenLabsVoice
2204
+ | LMNTVoice
2205
+ | NeetsVoice
2206
+ | OpenAIVoice
1641
2207
  | PlayHTVoice
1642
2208
  | RimeAIVoice
1643
- | DeepgramVoice
1644
- | OpenAIVoice
1645
- | LMNTVoice
1646
- | NeetsVoice;
1647
- /**
1648
- * This is the number to forward to if assistant runs into issues.
1649
- * @example null
1650
- */
1651
- forwardingPhoneNumber?: string;
2209
+ | CartesiaVoice;
1652
2210
  /**
1653
2211
  * This is the mode for the first message. Default is 'assistant-speaks-first'.
1654
2212
  *
@@ -1656,33 +2214,11 @@ export interface UpdateAssistantDTO {
1656
2214
  * @example "assistant-speaks-first"
1657
2215
  */
1658
2216
  firstMessageMode?: 'assistant-speaks-first' | 'assistant-waits-for-user';
1659
- /**
1660
- * These are the AMD messages from Twilio that are considered as voicemail. Default is ['machine_end_beep', 'machine_end_silence', 'machine_end_other'].
1661
- * @example ["machine_end_beep","machine_end_silence","machine_end_other"]
1662
- */
1663
- voicemailDetectionTypes?:
1664
- | 'machine_start'
1665
- | 'human'
1666
- | 'fax'
1667
- | 'unknown'
1668
- | 'machine_end_beep'
1669
- | 'machine_end_silence'
1670
- | 'machine_end_other';
1671
2217
  /**
1672
2218
  * This sets whether the assistant's calls are recorded. Defaults to true.
1673
2219
  * @example true
1674
2220
  */
1675
2221
  recordingEnabled?: boolean;
1676
- /**
1677
- * This sets whether the assistant will be able to hang up the call. Defaults to false.
1678
- * @example false
1679
- */
1680
- endCallFunctionEnabled?: boolean;
1681
- /**
1682
- * This sets whether the assistant can dial digits on the keypad. Defaults to false.
1683
- * @default null
1684
- */
1685
- dialKeypadFunctionEnabled?: boolean;
1686
2222
  /**
1687
2223
  * When this is enabled, no logs, recordings, or transcriptions will be stored. At the end of the call, you will still receive an end-of-call-report message to store on your server. Defaults to false.
1688
2224
  * @example false
@@ -1692,7 +2228,7 @@ export interface UpdateAssistantDTO {
1692
2228
  * These are the messages that will be sent to the Client SDKs. Default is ['transcript', 'hang', 'tool-calls', 'speech-update', 'metadata', 'conversation-update']
1693
2229
  * @example ["transcript","hang","tool-calls","speech-update","metadata","conversation-update"]
1694
2230
  */
1695
- clientMessages?: (
2231
+ clientMessages?:
1696
2232
  | 'status-update'
1697
2233
  | 'speech-update'
1698
2234
  | 'transcript'
@@ -1702,13 +2238,12 @@ export interface UpdateAssistantDTO {
1702
2238
  | 'metadata'
1703
2239
  | 'conversation-update'
1704
2240
  | 'model-output'
1705
- | 'voice-input'
1706
- )[];
2241
+ | 'voice-input';
1707
2242
  /**
1708
2243
  * These are the messages that will be sent to your Server URL. Default is ['end-of-call-report', 'status-update', 'hang', 'tool-calls']
1709
2244
  * @example ["end-of-call-report","status-update","hang","tool-calls"]
1710
2245
  */
1711
- serverMessages?: (
2246
+ serverMessages?:
1712
2247
  | 'status-update'
1713
2248
  | 'transcript'
1714
2249
  | 'hang'
@@ -1718,8 +2253,7 @@ export interface UpdateAssistantDTO {
1718
2253
  | 'conversation-update'
1719
2254
  | 'phone-call-control'
1720
2255
  | 'model-output'
1721
- | 'voice-input'
1722
- )[];
2256
+ | 'voice-input';
1723
2257
  /**
1724
2258
  * How many seconds of silence to wait before ending the call. Defaults to 30.
1725
2259
  * @min 10
@@ -1761,17 +2295,18 @@ export interface UpdateAssistantDTO {
1761
2295
  */
1762
2296
  backgroundSound?: 'off' | 'office';
1763
2297
  /**
1764
- * backchanneling is the bot say while listening like 'mhmm', 'ahem' etc. this make the conversation sounds natural. Default True
2298
+ * This determines whether the model says 'mhmm', 'ahem' etc. while user is speaking.
2299
+ *
2300
+ * Default `false` while in beta.
1765
2301
  * @example true
1766
2302
  */
1767
2303
  backchannelingEnabled?: boolean;
1768
2304
  /**
1769
- * This is the name of the assistant. This is just for your own reference.
2305
+ * This is the name of the assistant.
2306
+ * This is only required to transfer calls between assistants.
1770
2307
  * @maxLength 100
1771
2308
  */
1772
2309
  name?: string;
1773
- /** You can provide a set of phone numbers to forward to. You'll want to tell the assistant when to use each of these numbers in the system prompt. */
1774
- forwardingPhoneNumbers?: ForwardingPhoneNumber[];
1775
2310
  /**
1776
2311
  * This is the first message that the assistant will say. This can also be a URL to a containerized audio file (mp3, wav, etc.).
1777
2312
  *
@@ -1779,8 +2314,8 @@ export interface UpdateAssistantDTO {
1779
2314
  * @maxLength 1000
1780
2315
  */
1781
2316
  firstMessage?: string;
1782
- /** This sets whether the assistant should detect voicemail. Defaults to true. */
1783
- voicemailDetectionEnabled?: boolean;
2317
+ /** These are the settings to configure or disable voicemail detection. */
2318
+ voicemailDetection?: TwilioVoicemailDetection;
1784
2319
  /**
1785
2320
  * This is the message that the assistant will say if the call is forwarded to voicemail.
1786
2321
  *
@@ -1810,18 +2345,32 @@ export interface UpdateAssistantDTO {
1810
2345
  /**
1811
2346
  * This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
1812
2347
  *
1813
- * Same precendence logic as serverUrl.
2348
+ * Same precedence logic as serverUrl.
1814
2349
  */
1815
2350
  serverUrlSecret?: string;
1816
- /**
1817
- * This is the prompt that's used to summarize the call at the end.
1818
- *
1819
- * Default is 'You are an expert note-taker. You will be given a transcript of a conversation. Please summarize the conversation in 4-5 sentences if applicable.'
1820
- *
1821
- * Set to '' or 'off' to disable post-call summarization.
1822
- * @maxLength 2000
1823
- */
1824
- summaryPrompt?: string;
2351
+ analysisPlan?: AnalysisPlan;
2352
+ artifactPlan?: ArtifactPlan;
2353
+ }
2354
+
2355
+ export interface AnalysisCostBreakdown {
2356
+ /** This is the cost to summarize the call. */
2357
+ summary?: number;
2358
+ /** This is the number of prompt tokens used to summarize the call. */
2359
+ summaryPromptTokens?: number;
2360
+ /** This is the number of completion tokens used to summarize the call. */
2361
+ summaryCompletionTokens?: number;
2362
+ /** This is the cost to extract structured data from the call. */
2363
+ structuredData?: number;
2364
+ /** This is the number of prompt tokens used to extract structured data from the call. */
2365
+ structuredDataPromptTokens?: number;
2366
+ /** This is the number of completion tokens used to extract structured data from the call. */
2367
+ structuredDataCompletionTokens?: number;
2368
+ /** This is the cost to evaluate if the call was successful. */
2369
+ successEvaluation?: number;
2370
+ /** This is the number of prompt tokens used to evaluate if the call was successful. */
2371
+ successEvaluationPromptTokens?: number;
2372
+ /** This is the number of completion tokens used to evaluate if the call was successful. */
2373
+ successEvaluationCompletionTokens?: number;
1825
2374
  }
1826
2375
 
1827
2376
  export interface CostBreakdown {
@@ -1843,6 +2392,22 @@ export interface CostBreakdown {
1843
2392
  llmCompletionTokens?: number;
1844
2393
  /** This is the TTS characters used for the call. */
1845
2394
  ttsCharacters?: number;
2395
+ /** This is the cost of the analysis. */
2396
+ analysisCostBreakdown?: AnalysisCostBreakdown;
2397
+ }
2398
+
2399
+ export interface Analysis {
2400
+ /** This is the summary of the call. Customize by setting `assistant.analysisPlan.summaryPrompt`. */
2401
+ summary?: string;
2402
+ /** This is the structured data extracted from the call. Customize by setting `assistant.analysisPlan.structuredDataPrompt` and/or `assistant.analysisPlan.structuredDataSchema`. */
2403
+ structuredData?: string;
2404
+ /** This is the evaluation of the call. Customize by setting `assistant.analysisPlan.successEvaluationPrompt` and/or `assistant.analysisPlan.successEvaluationRubric`. */
2405
+ successEvaluation?: string;
2406
+ }
2407
+
2408
+ export interface Artifact {
2409
+ /** Video recording url if assistant.artifactPlan.videoRecordingEnabled was set to true */
2410
+ videoRecordingUrl?: string;
1846
2411
  }
1847
2412
 
1848
2413
  export interface PhoneCallTwilioDetails {
@@ -1852,6 +2417,26 @@ export interface PhoneCallTwilioDetails {
1852
2417
  from: string;
1853
2418
  twiml?: string;
1854
2419
  statusCallback?: string;
2420
+ /** The number of seconds that we should attempt to detect an answering machine before timing out and sending a voice request with `AnsweredBy` of `unknown`. The default timeout is 30 seconds. */
2421
+ machineDetectionTimeout?: number;
2422
+ /**
2423
+ * The number of milliseconds that is used as the measuring stick for the length of the speech activity, where durations lower than this value will be interpreted as a human and longer than this value as a machine. Possible Values: 1000-6000. Default: 2400.
2424
+ * @min 1000
2425
+ * @max 6000
2426
+ */
2427
+ machineDetectionSpeechThreshold?: number;
2428
+ /**
2429
+ * The number of milliseconds of silence after speech activity at which point the speech activity is considered complete. Possible Values: 500-5000. Default: 1200.
2430
+ * @min 500
2431
+ * @max 5000
2432
+ */
2433
+ machineDetectionSpeechEndThreshold?: number;
2434
+ /**
2435
+ * The number of milliseconds of initial silence after which an `unknown` AnsweredBy result will be returned. Possible Values: 2000-10000. Default: 5000.
2436
+ * @min 2000
2437
+ * @max 10000
2438
+ */
2439
+ machineDetectionSilenceTimeout?: number;
1855
2440
  asyncAmd?: string;
1856
2441
  asyncAmdStatusCallback?: string;
1857
2442
  record?: boolean;
@@ -1877,18 +2462,14 @@ export interface OverrideAssistantDTO {
1877
2462
  */
1878
2463
  voice?:
1879
2464
  | AzureVoice
2465
+ | DeepgramVoice
1880
2466
  | ElevenLabsVoice
2467
+ | LMNTVoice
2468
+ | NeetsVoice
2469
+ | OpenAIVoice
1881
2470
  | PlayHTVoice
1882
2471
  | RimeAIVoice
1883
- | DeepgramVoice
1884
- | OpenAIVoice
1885
- | LMNTVoice
1886
- | NeetsVoice;
1887
- /**
1888
- * This is the number to forward to if assistant runs into issues.
1889
- * @example null
1890
- */
1891
- forwardingPhoneNumber?: string;
2472
+ | CartesiaVoice;
1892
2473
  /**
1893
2474
  * This is the mode for the first message. Default is 'assistant-speaks-first'.
1894
2475
  *
@@ -1896,33 +2477,11 @@ export interface OverrideAssistantDTO {
1896
2477
  * @example "assistant-speaks-first"
1897
2478
  */
1898
2479
  firstMessageMode?: 'assistant-speaks-first' | 'assistant-waits-for-user';
1899
- /**
1900
- * These are the AMD messages from Twilio that are considered as voicemail. Default is ['machine_end_beep', 'machine_end_silence', 'machine_end_other'].
1901
- * @example ["machine_end_beep","machine_end_silence","machine_end_other"]
1902
- */
1903
- voicemailDetectionTypes?:
1904
- | 'machine_start'
1905
- | 'human'
1906
- | 'fax'
1907
- | 'unknown'
1908
- | 'machine_end_beep'
1909
- | 'machine_end_silence'
1910
- | 'machine_end_other';
1911
2480
  /**
1912
2481
  * This sets whether the assistant's calls are recorded. Defaults to true.
1913
2482
  * @example true
1914
2483
  */
1915
2484
  recordingEnabled?: boolean;
1916
- /**
1917
- * This sets whether the assistant will be able to hang up the call. Defaults to false.
1918
- * @example false
1919
- */
1920
- endCallFunctionEnabled?: boolean;
1921
- /**
1922
- * This sets whether the assistant can dial digits on the keypad. Defaults to false.
1923
- * @default null
1924
- */
1925
- dialKeypadFunctionEnabled?: boolean;
1926
2485
  /**
1927
2486
  * When this is enabled, no logs, recordings, or transcriptions will be stored. At the end of the call, you will still receive an end-of-call-report message to store on your server. Defaults to false.
1928
2487
  * @example false
@@ -1932,7 +2491,7 @@ export interface OverrideAssistantDTO {
1932
2491
  * These are the messages that will be sent to the Client SDKs. Default is ['transcript', 'hang', 'tool-calls', 'speech-update', 'metadata', 'conversation-update']
1933
2492
  * @example ["transcript","hang","tool-calls","speech-update","metadata","conversation-update"]
1934
2493
  */
1935
- clientMessages?: (
2494
+ clientMessages?:
1936
2495
  | 'status-update'
1937
2496
  | 'speech-update'
1938
2497
  | 'transcript'
@@ -1942,13 +2501,12 @@ export interface OverrideAssistantDTO {
1942
2501
  | 'metadata'
1943
2502
  | 'conversation-update'
1944
2503
  | 'model-output'
1945
- | 'voice-input'
1946
- )[];
2504
+ | 'voice-input';
1947
2505
  /**
1948
2506
  * These are the messages that will be sent to your Server URL. Default is ['end-of-call-report', 'status-update', 'hang', 'tool-calls']
1949
2507
  * @example ["end-of-call-report","status-update","hang","tool-calls"]
1950
2508
  */
1951
- serverMessages?: (
2509
+ serverMessages?:
1952
2510
  | 'status-update'
1953
2511
  | 'transcript'
1954
2512
  | 'hang'
@@ -1958,8 +2516,7 @@ export interface OverrideAssistantDTO {
1958
2516
  | 'conversation-update'
1959
2517
  | 'phone-call-control'
1960
2518
  | 'model-output'
1961
- | 'voice-input'
1962
- )[];
2519
+ | 'voice-input';
1963
2520
  /**
1964
2521
  * How many seconds of silence to wait before ending the call. Defaults to 30.
1965
2522
  * @min 10
@@ -2001,19 +2558,20 @@ export interface OverrideAssistantDTO {
2001
2558
  */
2002
2559
  backgroundSound?: 'off' | 'office';
2003
2560
  /**
2004
- * backchanneling is the bot say while listening like 'mhmm', 'ahem' etc. this make the conversation sounds natural. Default True
2561
+ * This determines whether the model says 'mhmm', 'ahem' etc. while user is speaking.
2562
+ *
2563
+ * Default `false` while in beta.
2005
2564
  * @example true
2006
2565
  */
2007
2566
  backchannelingEnabled?: boolean;
2008
2567
  /** These are template variables that will be replaced in the assistant messages and prompts. */
2009
2568
  variableValues?: object;
2010
2569
  /**
2011
- * This is the name of the assistant. This is just for your own reference.
2570
+ * This is the name of the assistant.
2571
+ * This is only required to transfer calls between assistants.
2012
2572
  * @maxLength 100
2013
2573
  */
2014
2574
  name?: string;
2015
- /** You can provide a set of phone numbers to forward to. You'll want to tell the assistant when to use each of these numbers in the system prompt. */
2016
- forwardingPhoneNumbers?: ForwardingPhoneNumber[];
2017
2575
  /**
2018
2576
  * This is the first message that the assistant will say. This can also be a URL to a containerized audio file (mp3, wav, etc.).
2019
2577
  *
@@ -2021,8 +2579,8 @@ export interface OverrideAssistantDTO {
2021
2579
  * @maxLength 1000
2022
2580
  */
2023
2581
  firstMessage?: string;
2024
- /** This sets whether the assistant should detect voicemail. Defaults to true. */
2025
- voicemailDetectionEnabled?: boolean;
2582
+ /** These are the settings to configure or disable voicemail detection. */
2583
+ voicemailDetection?: TwilioVoicemailDetection;
2026
2584
  /**
2027
2585
  * This is the message that the assistant will say if the call is forwarded to voicemail.
2028
2586
  *
@@ -2052,18 +2610,33 @@ export interface OverrideAssistantDTO {
2052
2610
  /**
2053
2611
  * This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
2054
2612
  *
2055
- * Same precendence logic as serverUrl.
2613
+ * Same precedence logic as serverUrl.
2056
2614
  */
2057
2615
  serverUrlSecret?: string;
2616
+ analysisPlan?: AnalysisPlan;
2617
+ artifactPlan?: ArtifactPlan;
2618
+ }
2619
+
2620
+ export interface SquadMemberDTO {
2621
+ /** This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead. */
2622
+ assistantId?: string | null;
2623
+ /** This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead. */
2624
+ assistant?: CreateAssistantDTO;
2625
+ /** Overrides for a single assistant's settings and template variables. */
2626
+ assistantOverrides?: OverrideAssistantDTO;
2058
2627
  /**
2059
- * This is the prompt that's used to summarize the call at the end.
2060
- *
2061
- * Default is 'You are an expert note-taker. You will be given a transcript of a conversation. Please summarize the conversation in 4-5 sentences if applicable.'
2062
- *
2063
- * Set to '' or 'off' to disable post-call summarization.
2064
- * @maxLength 2000
2628
+ * These are the others assistants that this assistant can transfer to.
2629
+ * These destinations are in addition to destinations that already exist in the assistant's TransferCall tool.
2065
2630
  */
2066
- summaryPrompt?: string;
2631
+ assistantDestinations?: AssistantTransferDestination[];
2632
+ }
2633
+
2634
+ export interface CreateSquadDTO {
2635
+ /**
2636
+ * The list of assistant members in the squad. By default, the call will start
2637
+ * with the first assistant supplied in the list.
2638
+ */
2639
+ members: SquadMemberDTO[];
2067
2640
  }
2068
2641
 
2069
2642
  export interface CreateCustomerDTO {
@@ -2153,11 +2726,10 @@ export interface Call {
2153
2726
  | 'pipeline-error-groq-llm-failed'
2154
2727
  | 'pipeline-error-anthropic-llm-failed'
2155
2728
  | 'pipeline-error-openai-voice-failed'
2729
+ | 'pipeline-error-cartesia-voice-failed'
2156
2730
  | 'pipeline-error-deepgram-transcriber-failed'
2157
2731
  | 'pipeline-error-deepgram-voice-failed'
2158
2732
  | 'pipeline-error-eleven-labs-voice-failed'
2159
- | 'pipeline-error-eleven-labs-voice-not-found'
2160
- | 'pipeline-error-eleven-labs-quota-exceeded'
2161
2733
  | 'pipeline-error-playht-voice-failed'
2162
2734
  | 'pipeline-error-lmnt-voice-failed'
2163
2735
  | 'pipeline-error-azure-voice-failed'
@@ -2189,20 +2761,29 @@ export interface Call {
2189
2761
  | 'customer-ended-call'
2190
2762
  | 'customer-did-not-answer'
2191
2763
  | 'customer-did-not-give-microphone-permission'
2764
+ | 'incoming-client-message-say-ended-call'
2192
2765
  | 'exceeded-max-duration'
2193
2766
  | 'manually-canceled'
2194
2767
  | 'phone-call-provider-closed-websocket'
2195
2768
  | 'pipeline-error-custom-llm-llm-failed'
2769
+ | 'pipeline-error-eleven-labs-voice-not-found'
2770
+ | 'pipeline-error-eleven-labs-quota-exceeded'
2771
+ | 'pipeline-error-eleven-labs-blocked-free-plan'
2772
+ | 'pipeline-error-eleven-labs-blocked-concurrent-requests'
2773
+ | 'pipeline-error-eleven-labs-unauthorized-access'
2774
+ | 'pipeline-error-eleven-labs-system-busy-and-requested-upgrade'
2775
+ | 'pipeline-error-eleven-labs-voice-not-fine-tuned'
2776
+ | 'pipeline-error-eleven-labs-invalid-api-key'
2777
+ | 'pipeline-error-playht-request-timed-out'
2778
+ | 'pipeline-error-playht-invalid-voice'
2779
+ | 'pipeline-error-playht-unexpected-error'
2780
+ | 'pipeline-error-playht-out-of-credits'
2781
+ | 'pipeline-error-playht-rate-limit-exceeded'
2782
+ | 'pipeline-error-playht-502-gateway-error'
2783
+ | 'pipeline-error-playht-504-gateway-error'
2196
2784
  | 'silence-timed-out'
2197
2785
  | 'voicemail'
2198
2786
  | 'vonage-rejected';
2199
- /**
2200
- * This is the maximum number of seconds that the call will last. When the call reaches this duration, it will be ended.
2201
- * @min 10
2202
- * @max 3600
2203
- * @example 1800
2204
- */
2205
- maxDurationSeconds?: number;
2206
2787
  /** This is the unique identifier for the call. */
2207
2788
  id: string;
2208
2789
  /** This is the unique identifier for the org that this call belongs to. */
@@ -2237,8 +2818,12 @@ export interface Call {
2237
2818
  recordingUrl?: string;
2238
2819
  /** This is the URL of the recording of the call in two channels. */
2239
2820
  stereoRecordingUrl?: string;
2240
- /** This is the summary of the call. */
2241
- summary?: string;
2821
+ /** This is the analysis of the call. Customize the analysis by setting `assistant.analysisPlan`. */
2822
+ analysis?: Analysis;
2823
+ /** This is the artifacts related to the call. Customize the analysis by setting `assistant.artifactPlan`. */
2824
+ artifact?: Artifact;
2825
+ /** This stores a copy of assistant.artifactPlan. */
2826
+ artifactPlan?: ArtifactPlan;
2242
2827
  /** These are the messages that were spoken during the call. */
2243
2828
  messages?: object[];
2244
2829
  /**
@@ -2271,10 +2856,43 @@ export interface Call {
2271
2856
  forwardedPhoneNumber?: string;
2272
2857
  /** This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead. */
2273
2858
  assistantId?: string | null;
2274
- /** Overrides for the assistant's settings and template variables. */
2275
- assistantOverrides?: OverrideAssistantDTO;
2276
2859
  /** This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead. */
2277
2860
  assistant?: CreateAssistantDTO;
2861
+ /** These are the overrides for the `assistant` or `assistantId`'s settings and template variables. */
2862
+ assistantOverrides?: OverrideAssistantDTO;
2863
+ /** This is the squad that will be used for the call. To use a transient squad, use `squad` instead. */
2864
+ squadId?: string;
2865
+ /** This is a squad that will be used for the call. To use an existing squad, use `squadId` instead. */
2866
+ squad?: CreateSquadDTO;
2867
+ /**
2868
+ * This is the customer that will be called. To call a transient customer , use `customer` instead.
2869
+ *
2870
+ * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
2871
+ */
2872
+ customerId?: string;
2873
+ /**
2874
+ * This is the customer that will be called. To call an existing customer, use `customerId` instead.
2875
+ *
2876
+ * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
2877
+ */
2878
+ customer?: CreateCustomerDTO;
2879
+ /**
2880
+ * This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead.
2881
+ *
2882
+ * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
2883
+ */
2884
+ phoneNumberId?: string;
2885
+ /**
2886
+ * This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead.
2887
+ *
2888
+ * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
2889
+ */
2890
+ phoneNumber?: ImportTwilioPhoneNumberDTO;
2891
+ /** This is the metadata associated with the call. */
2892
+ metadata?: object;
2893
+ }
2894
+
2895
+ export interface CreateOutboundCallDTO {
2278
2896
  /**
2279
2897
  * This is the customer that will be called. To call a transient customer , use `customer` instead.
2280
2898
  *
@@ -2298,57 +2916,173 @@ export interface Call {
2298
2916
  *
2299
2917
  * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
2300
2918
  */
2301
- phoneNumber?: ImportTwilioPhoneNumberDTO;
2302
- /** This is the metadata associated with the call. */
2303
- metadata?: object;
2919
+ phoneNumber?: ImportTwilioPhoneNumberDTO;
2920
+ /** This is the metadata associated with the call. */
2921
+ metadata?: object;
2922
+ /** This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead. */
2923
+ assistantId?: string | null;
2924
+ /** This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead. */
2925
+ assistant?: CreateAssistantDTO;
2926
+ /** These are the overrides for the `assistant` or `assistantId`'s settings and template variables. */
2927
+ assistantOverrides?: OverrideAssistantDTO;
2928
+ /** This is the squad that will be used for the call. To use a transient squad, use `squad` instead. */
2929
+ squadId?: string;
2930
+ /** This is a squad that will be used for the call. To use an existing squad, use `squadId` instead. */
2931
+ squad?: CreateSquadDTO;
2932
+ }
2933
+
2934
+ export interface CreateWebCallDTO {
2935
+ /** This will expose SIP URI you can use to connect to the call. Disabled by default. */
2936
+ sipEnabled?: boolean;
2937
+ /** This is the metadata associated with the call. */
2938
+ metadata?: object;
2939
+ /** This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead. */
2940
+ assistantId?: string | null;
2941
+ /** This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead. */
2942
+ assistant?: CreateAssistantDTO;
2943
+ /** These are the overrides for the `assistant` or `assistantId`'s settings and template variables. */
2944
+ assistantOverrides?: OverrideAssistantDTO;
2945
+ /** This is the squad that will be used for the call. To use a transient squad, use `squad` instead. */
2946
+ squadId?: string;
2947
+ /** This is a squad that will be used for the call. To use an existing squad, use `squadId` instead. */
2948
+ squad?: CreateSquadDTO;
2949
+ }
2950
+
2951
+ export interface UpdateCallDTO {
2952
+ /** This is the metadata associated with the call. */
2953
+ metadata?: object;
2954
+ }
2955
+
2956
+ export interface AnyscaleCredential {
2957
+ provider: 'anyscale';
2958
+ /** This is not returned in the API. */
2959
+ apiKey: string;
2960
+ /** This is the unique identifier for the credential. */
2961
+ id: string;
2962
+ /** This is the unique identifier for the org that this credential belongs to. */
2963
+ orgId: string;
2964
+ /**
2965
+ * This is the ISO 8601 date-time string of when the credential was created.
2966
+ * @format date-time
2967
+ */
2968
+ createdAt: string;
2969
+ /**
2970
+ * This is the ISO 8601 date-time string of when the assistant was last updated.
2971
+ * @format date-time
2972
+ */
2973
+ updatedAt: string;
2974
+ }
2975
+
2976
+ export interface AnthropicCredential {
2977
+ provider: 'anthropic';
2978
+ /** This is not returned in the API. */
2979
+ apiKey: string;
2980
+ /** This is the unique identifier for the credential. */
2981
+ id: string;
2982
+ /** This is the unique identifier for the org that this credential belongs to. */
2983
+ orgId: string;
2984
+ /**
2985
+ * This is the ISO 8601 date-time string of when the credential was created.
2986
+ * @format date-time
2987
+ */
2988
+ createdAt: string;
2989
+ /**
2990
+ * This is the ISO 8601 date-time string of when the assistant was last updated.
2991
+ * @format date-time
2992
+ */
2993
+ updatedAt: string;
2994
+ }
2995
+
2996
+ export interface AzureOpenAICredential {
2997
+ provider: 'azure-openai';
2998
+ region:
2999
+ | 'australia'
3000
+ | 'canada'
3001
+ | 'eastus2'
3002
+ | 'eastus'
3003
+ | 'france'
3004
+ | 'india'
3005
+ | 'japan'
3006
+ | 'northcentralus'
3007
+ | 'norway'
3008
+ | 'southcentralus'
3009
+ | 'sweden'
3010
+ | 'switzerland'
3011
+ | 'uk'
3012
+ | 'westus'
3013
+ | 'westus3';
3014
+ /** @example ["gpt-4-0125-preview","gpt-4-0613"] */
3015
+ models:
3016
+ | 'gpt-4o-2024-05-13'
3017
+ | 'gpt-4-turbo-2024-04-09'
3018
+ | 'gpt-4-0125-preview'
3019
+ | 'gpt-4-1106-preview'
3020
+ | 'gpt-4-0613'
3021
+ | 'gpt-35-turbo-0125'
3022
+ | 'gpt-35-turbo-1106';
3023
+ /** This is not returned in the API. */
3024
+ openAIKey: string;
3025
+ /** This is the unique identifier for the credential. */
3026
+ id: string;
3027
+ /** This is the unique identifier for the org that this credential belongs to. */
3028
+ orgId: string;
3029
+ /**
3030
+ * This is the ISO 8601 date-time string of when the credential was created.
3031
+ * @format date-time
3032
+ */
3033
+ createdAt: string;
3034
+ /**
3035
+ * This is the ISO 8601 date-time string of when the assistant was last updated.
3036
+ * @format date-time
3037
+ */
3038
+ updatedAt: string;
3039
+ openAIEndpoint: string;
2304
3040
  }
2305
3041
 
2306
- export interface CreateOutboundCallDTO {
2307
- /**
2308
- * This is the maximum number of seconds that the call will last. When the call reaches this duration, it will be ended.
2309
- * @min 10
2310
- * @max 3600
2311
- * @example 1800
2312
- */
2313
- maxDurationSeconds?: number;
2314
- /** This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead. */
2315
- assistantId?: string | null;
2316
- /** Overrides for the assistant's settings and template variables. */
2317
- assistantOverrides?: OverrideAssistantDTO;
2318
- /** This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead. */
2319
- assistant?: CreateAssistantDTO;
3042
+ export interface CartesiaCredential {
3043
+ provider: 'cartesia';
3044
+ /** This is not returned in the API. */
3045
+ apiKey: string;
3046
+ /** This is the unique identifier for the credential. */
3047
+ id: string;
3048
+ /** This is the unique identifier for the org that this credential belongs to. */
3049
+ orgId: string;
2320
3050
  /**
2321
- * This is the customer that will be called. To call a transient customer , use `customer` instead.
2322
- *
2323
- * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
3051
+ * This is the ISO 8601 date-time string of when the credential was created.
3052
+ * @format date-time
2324
3053
  */
2325
- customerId?: string;
3054
+ createdAt: string;
2326
3055
  /**
2327
- * This is the customer that will be called. To call an existing customer, use `customerId` instead.
2328
- *
2329
- * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
3056
+ * This is the ISO 8601 date-time string of when the assistant was last updated.
3057
+ * @format date-time
2330
3058
  */
2331
- customer?: CreateCustomerDTO;
3059
+ updatedAt: string;
3060
+ }
3061
+
3062
+ export interface CustomLLMCredential {
3063
+ provider: 'custom-llm';
3064
+ /** This is not returned in the API. */
3065
+ apiKey: string;
3066
+ /** This is the unique identifier for the credential. */
3067
+ id: string;
3068
+ /** This is the unique identifier for the org that this credential belongs to. */
3069
+ orgId: string;
2332
3070
  /**
2333
- * This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead.
2334
- *
2335
- * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
3071
+ * This is the ISO 8601 date-time string of when the credential was created.
3072
+ * @format date-time
2336
3073
  */
2337
- phoneNumberId?: string;
3074
+ createdAt: string;
2338
3075
  /**
2339
- * This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead.
2340
- *
2341
- * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
3076
+ * This is the ISO 8601 date-time string of when the assistant was last updated.
3077
+ * @format date-time
2342
3078
  */
2343
- phoneNumber?: ImportTwilioPhoneNumberDTO;
2344
- /** This is the metadata associated with the call. */
2345
- metadata?: object;
3079
+ updatedAt: string;
2346
3080
  }
2347
3081
 
2348
- export interface TwilioCredential {
2349
- provider: 'twilio';
3082
+ export interface DeepgramCredential {
3083
+ provider: 'deepgram';
2350
3084
  /** This is not returned in the API. */
2351
- authToken: string;
3085
+ apiKey: string;
2352
3086
  /** This is the unique identifier for the credential. */
2353
3087
  id: string;
2354
3088
  /** This is the unique identifier for the org that this credential belongs to. */
@@ -2363,11 +3097,10 @@ export interface TwilioCredential {
2363
3097
  * @format date-time
2364
3098
  */
2365
3099
  updatedAt: string;
2366
- accountSid: string;
2367
3100
  }
2368
3101
 
2369
- export interface DeepgramCredential {
2370
- provider: 'deepgram';
3102
+ export interface DeepInfraCredential {
3103
+ provider: 'deepinfra';
2371
3104
  /** This is not returned in the API. */
2372
3105
  apiKey: string;
2373
3106
  /** This is the unique identifier for the credential. */
@@ -2406,8 +3139,8 @@ export interface ElevenLabsCredential {
2406
3139
  updatedAt: string;
2407
3140
  }
2408
3141
 
2409
- export interface PlayHTCredential {
2410
- provider: 'playht';
3142
+ export interface GoHighLevelCredential {
3143
+ provider: 'gohighlevel';
2411
3144
  /** This is not returned in the API. */
2412
3145
  apiKey: string;
2413
3146
  /** This is the unique identifier for the credential. */
@@ -2424,11 +3157,10 @@ export interface PlayHTCredential {
2424
3157
  * @format date-time
2425
3158
  */
2426
3159
  updatedAt: string;
2427
- userId: string;
2428
3160
  }
2429
3161
 
2430
- export interface RimeAICredential {
2431
- provider: 'rime-ai';
3162
+ export interface GroqCredential {
3163
+ provider: 'groq';
2432
3164
  /** This is not returned in the API. */
2433
3165
  apiKey: string;
2434
3166
  /** This is the unique identifier for the credential. */
@@ -2447,8 +3179,8 @@ export interface RimeAICredential {
2447
3179
  updatedAt: string;
2448
3180
  }
2449
3181
 
2450
- export interface OpenAICredential {
2451
- provider: 'openai';
3182
+ export interface LmntCredential {
3183
+ provider: 'lmnt';
2452
3184
  /** This is not returned in the API. */
2453
3185
  apiKey: string;
2454
3186
  /** This is the unique identifier for the credential. */
@@ -2467,8 +3199,12 @@ export interface OpenAICredential {
2467
3199
  updatedAt: string;
2468
3200
  }
2469
3201
 
2470
- export interface TogetherAICredential {
2471
- provider: 'together-ai';
3202
+ export interface MakeCredential {
3203
+ provider: 'make';
3204
+ /** Team ID */
3205
+ teamId: string;
3206
+ /** Region of your application. For example: eu1, eu2, us1, us2 */
3207
+ region: string;
2472
3208
  /** This is not returned in the API. */
2473
3209
  apiKey: string;
2474
3210
  /** This is the unique identifier for the credential. */
@@ -2487,8 +3223,8 @@ export interface TogetherAICredential {
2487
3223
  updatedAt: string;
2488
3224
  }
2489
3225
 
2490
- export interface AnyscaleCredential {
2491
- provider: 'anyscale';
3226
+ export interface OpenAICredential {
3227
+ provider: 'openai';
2492
3228
  /** This is not returned in the API. */
2493
3229
  apiKey: string;
2494
3230
  /** This is the unique identifier for the credential. */
@@ -2547,8 +3283,8 @@ export interface PerplexityAICredential {
2547
3283
  updatedAt: string;
2548
3284
  }
2549
3285
 
2550
- export interface DeepInfraCredential {
2551
- provider: 'deepinfra';
3286
+ export interface PlayHTCredential {
3287
+ provider: 'playht';
2552
3288
  /** This is not returned in the API. */
2553
3289
  apiKey: string;
2554
3290
  /** This is the unique identifier for the credential. */
@@ -2565,10 +3301,11 @@ export interface DeepInfraCredential {
2565
3301
  * @format date-time
2566
3302
  */
2567
3303
  updatedAt: string;
3304
+ userId: string;
2568
3305
  }
2569
3306
 
2570
- export interface CustomLLMCredential {
2571
- provider: 'custom-llm';
3307
+ export interface RimeAICredential {
3308
+ provider: 'rime-ai';
2572
3309
  /** This is not returned in the API. */
2573
3310
  apiKey: string;
2574
3311
  /** This is the unique identifier for the credential. */
@@ -2607,8 +3344,8 @@ export interface RunpodCredential {
2607
3344
  updatedAt: string;
2608
3345
  }
2609
3346
 
2610
- export interface GroqCredential {
2611
- provider: 'groq';
3347
+ export interface TogetherAICredential {
3348
+ provider: 'together-ai';
2612
3349
  /** This is not returned in the API. */
2613
3350
  apiKey: string;
2614
3351
  /** This is the unique identifier for the credential. */
@@ -2627,10 +3364,10 @@ export interface GroqCredential {
2627
3364
  updatedAt: string;
2628
3365
  }
2629
3366
 
2630
- export interface AnthropicCredential {
2631
- provider: 'anthropic';
3367
+ export interface TwilioCredential {
3368
+ provider: 'twilio';
2632
3369
  /** This is not returned in the API. */
2633
- apiKey: string;
3370
+ authToken: string;
2634
3371
  /** This is the unique identifier for the credential. */
2635
3372
  id: string;
2636
3373
  /** This is the unique identifier for the org that this credential belongs to. */
@@ -2645,6 +3382,7 @@ export interface AnthropicCredential {
2645
3382
  * @format date-time
2646
3383
  */
2647
3384
  updatedAt: string;
3385
+ accountSid: string;
2648
3386
  }
2649
3387
 
2650
3388
  export interface VonageCredential {
@@ -2680,11 +3418,60 @@ export interface VonageCredential {
2680
3418
  apiKey: string;
2681
3419
  }
2682
3420
 
2683
- export interface CreateTwilioCredentialDTO {
2684
- provider: 'twilio';
3421
+ export interface CreateAnyscaleCredentialDTO {
3422
+ provider: 'anyscale';
2685
3423
  /** This is not returned in the API. */
2686
- authToken: string;
2687
- accountSid: string;
3424
+ apiKey: string;
3425
+ }
3426
+
3427
+ export interface CreateAnthropicCredentialDTO {
3428
+ provider: 'anthropic';
3429
+ /** This is not returned in the API. */
3430
+ apiKey: string;
3431
+ }
3432
+
3433
+ export interface CreateAzureOpenAICredentialDTO {
3434
+ provider: 'azure-openai';
3435
+ region:
3436
+ | 'australia'
3437
+ | 'canada'
3438
+ | 'eastus2'
3439
+ | 'eastus'
3440
+ | 'france'
3441
+ | 'india'
3442
+ | 'japan'
3443
+ | 'northcentralus'
3444
+ | 'norway'
3445
+ | 'southcentralus'
3446
+ | 'sweden'
3447
+ | 'switzerland'
3448
+ | 'uk'
3449
+ | 'westus'
3450
+ | 'westus3';
3451
+ /** @example ["gpt-4-0125-preview","gpt-4-0613"] */
3452
+ models:
3453
+ | 'gpt-4o-2024-05-13'
3454
+ | 'gpt-4-turbo-2024-04-09'
3455
+ | 'gpt-4-0125-preview'
3456
+ | 'gpt-4-1106-preview'
3457
+ | 'gpt-4-0613'
3458
+ | 'gpt-35-turbo-0125'
3459
+ | 'gpt-35-turbo-1106';
3460
+ /** This is not returned in the API. */
3461
+ openAIKey: string;
3462
+ openAIEndpoint: string;
3463
+ }
3464
+
3465
+ export interface CreateCartesiaCredentialDTO {
3466
+ provider: 'cartesia';
3467
+ /** This is not returned in the API. */
3468
+ apiKey: string;
3469
+ }
3470
+
3471
+ export interface CreateCustomLLMCredentialDTO {
3472
+ provider: 'custom-llm';
3473
+ /** This is not returned in the API. */
3474
+ apiKey: string;
2688
3475
  }
2689
3476
 
2690
3477
  export interface CreateDeepgramCredentialDTO {
@@ -2693,50 +3480,60 @@ export interface CreateDeepgramCredentialDTO {
2693
3480
  apiKey: string;
2694
3481
  }
2695
3482
 
2696
- export interface CreateOpenAICredentialDTO {
2697
- provider: 'openai';
3483
+ export interface CreateDeepInfraCredentialDTO {
3484
+ provider: 'deepinfra';
2698
3485
  /** This is not returned in the API. */
2699
3486
  apiKey: string;
2700
3487
  }
2701
3488
 
2702
- export interface CreateTogetherAICredentialDTO {
2703
- provider: 'together-ai';
3489
+ export interface CreateElevenLabsCredentialDTO {
3490
+ provider: '11labs';
2704
3491
  /** This is not returned in the API. */
2705
3492
  apiKey: string;
2706
3493
  }
2707
3494
 
2708
- export interface CreateAnyscaleCredentialDTO {
2709
- provider: 'anyscale';
3495
+ export interface CreateGoHighLevelCredentialDTO {
3496
+ provider: 'gohighlevel';
2710
3497
  /** This is not returned in the API. */
2711
3498
  apiKey: string;
2712
3499
  }
2713
3500
 
2714
- export interface CreateOpenRouterCredentialDTO {
2715
- provider: 'openrouter';
3501
+ export interface CreateGroqCredentialDTO {
3502
+ provider: 'groq';
2716
3503
  /** This is not returned in the API. */
2717
3504
  apiKey: string;
2718
3505
  }
2719
3506
 
2720
- export interface CreatePerplexityAICredentialDTO {
2721
- provider: 'perplexity-ai';
3507
+ export interface CreateLmntCredentialDTO {
3508
+ provider: 'lmnt';
2722
3509
  /** This is not returned in the API. */
2723
3510
  apiKey: string;
2724
3511
  }
2725
3512
 
2726
- export interface CreateDeepInfraCredentialDTO {
2727
- provider: 'deepinfra';
3513
+ export interface CreateMakeCredentialDTO {
3514
+ provider: 'make';
3515
+ /** Team ID */
3516
+ teamId: string;
3517
+ /** Region of your application. For example: eu1, eu2, us1, us2 */
3518
+ region: string;
2728
3519
  /** This is not returned in the API. */
2729
3520
  apiKey: string;
2730
3521
  }
2731
3522
 
2732
- export interface CreateCustomLLMCredentialDTO {
2733
- provider: 'custom-llm';
3523
+ export interface CreateOpenAICredentialDTO {
3524
+ provider: 'openai';
2734
3525
  /** This is not returned in the API. */
2735
3526
  apiKey: string;
2736
3527
  }
2737
3528
 
2738
- export interface CreateElevenLabsCredentialDTO {
2739
- provider: '11labs';
3529
+ export interface CreateOpenRouterCredentialDTO {
3530
+ provider: 'openrouter';
3531
+ /** This is not returned in the API. */
3532
+ apiKey: string;
3533
+ }
3534
+
3535
+ export interface CreatePerplexityAICredentialDTO {
3536
+ provider: 'perplexity-ai';
2740
3537
  /** This is not returned in the API. */
2741
3538
  apiKey: string;
2742
3539
  }
@@ -2760,16 +3557,17 @@ export interface CreateRunpodCredentialDTO {
2760
3557
  apiKey: string;
2761
3558
  }
2762
3559
 
2763
- export interface CreateGroqCredentialDTO {
2764
- provider: 'groq';
3560
+ export interface CreateTogetherAICredentialDTO {
3561
+ provider: 'together-ai';
2765
3562
  /** This is not returned in the API. */
2766
3563
  apiKey: string;
2767
3564
  }
2768
3565
 
2769
- export interface CreateAnthropicCredentialDTO {
2770
- provider: 'anthropic';
3566
+ export interface CreateTwilioCredentialDTO {
3567
+ provider: 'twilio';
2771
3568
  /** This is not returned in the API. */
2772
- apiKey: string;
3569
+ authToken: string;
3570
+ accountSid: string;
2773
3571
  }
2774
3572
 
2775
3573
  export interface CreateVonageCredentialDTO {
@@ -2779,11 +3577,66 @@ export interface CreateVonageCredentialDTO {
2779
3577
  apiKey: string;
2780
3578
  }
2781
3579
 
2782
- export interface UpdateTwilioCredentialDTO {
2783
- provider: 'twilio';
3580
+ export interface UpdateAnyscaleCredentialDTO {
3581
+ provider: 'anyscale';
2784
3582
  /** This is not returned in the API. */
2785
- authToken: string;
2786
- accountSid: string;
3583
+ apiKey: string;
3584
+ }
3585
+
3586
+ export interface UpdateAnthropicCredentialDTO {
3587
+ provider: 'anthropic';
3588
+ /** This is not returned in the API. */
3589
+ apiKey: string;
3590
+ }
3591
+
3592
+ export interface UpdateAzureOpenAICredentialDTO {
3593
+ provider: 'azure-openai';
3594
+ region:
3595
+ | 'australia'
3596
+ | 'canada'
3597
+ | 'eastus2'
3598
+ | 'eastus'
3599
+ | 'france'
3600
+ | 'india'
3601
+ | 'japan'
3602
+ | 'northcentralus'
3603
+ | 'norway'
3604
+ | 'southcentralus'
3605
+ | 'sweden'
3606
+ | 'switzerland'
3607
+ | 'uk'
3608
+ | 'westus'
3609
+ | 'westus3';
3610
+ /** @example ["gpt-4-0125-preview","gpt-4-0613"] */
3611
+ models:
3612
+ | 'gpt-4o-2024-05-13'
3613
+ | 'gpt-4-turbo-2024-04-09'
3614
+ | 'gpt-4-0125-preview'
3615
+ | 'gpt-4-1106-preview'
3616
+ | 'gpt-4-0613'
3617
+ | 'gpt-35-turbo-0125'
3618
+ | 'gpt-35-turbo-1106';
3619
+ /** This is not returned in the API. */
3620
+ openAIKey: string;
3621
+ openAIEndpoint: string;
3622
+ }
3623
+
3624
+ export interface UpdateCartesiaCredentialDTO {
3625
+ provider: 'cartesia';
3626
+ /** This is not returned in the API. */
3627
+ apiKey: string;
3628
+ }
3629
+
3630
+ export interface UpdateCustomLLMCredentialDTO {
3631
+ provider: 'custom-llm';
3632
+ /** This is not returned in the API. */
3633
+ apiKey: string;
3634
+ }
3635
+
3636
+ export interface UpdateDeepInfraCredentialDTO {
3637
+ provider: 'deepinfra';
3638
+ /** This is not returned in the API. */
3639
+ apiKey: string;
2787
3640
  }
2788
3641
 
2789
3642
  export interface UpdateDeepgramCredentialDTO {
@@ -2792,50 +3645,54 @@ export interface UpdateDeepgramCredentialDTO {
2792
3645
  apiKey: string;
2793
3646
  }
2794
3647
 
2795
- export interface UpdateOpenAICredentialDTO {
2796
- provider: 'openai';
3648
+ export interface UpdateElevenLabsCredentialDTO {
3649
+ provider: '11labs';
2797
3650
  /** This is not returned in the API. */
2798
3651
  apiKey: string;
2799
3652
  }
2800
3653
 
2801
- export interface UpdateTogetherAICredentialDTO {
2802
- provider: 'together-ai';
3654
+ export interface UpdateGoHighLevelCredentialDTO {
3655
+ provider: 'gohighlevel';
2803
3656
  /** This is not returned in the API. */
2804
3657
  apiKey: string;
2805
3658
  }
2806
3659
 
2807
- export interface UpdateAnyscaleCredentialDTO {
2808
- provider: 'anyscale';
3660
+ export interface UpdateGroqCredentialDTO {
3661
+ provider: 'groq';
2809
3662
  /** This is not returned in the API. */
2810
3663
  apiKey: string;
2811
3664
  }
2812
3665
 
2813
- export interface UpdateOpenRouterCredentialDTO {
2814
- provider: 'openrouter';
3666
+ export interface UpdateLmntCredentialDTO {
3667
+ provider: 'lmnt';
2815
3668
  /** This is not returned in the API. */
2816
3669
  apiKey: string;
2817
3670
  }
2818
3671
 
2819
- export interface UpdatePerplexityAICredentialDTO {
2820
- provider: 'perplexity-ai';
3672
+ export interface UpdateMakeCredentialDTO {
3673
+ provider: 'make';
3674
+ /** Team ID */
3675
+ teamId: string;
3676
+ /** Region of your application. For example: eu1, eu2, us1, us2 */
3677
+ region: string;
2821
3678
  /** This is not returned in the API. */
2822
3679
  apiKey: string;
2823
3680
  }
2824
3681
 
2825
- export interface UpdateDeepInfraCredentialDTO {
2826
- provider: 'deepinfra';
3682
+ export interface UpdateOpenAICredentialDTO {
3683
+ provider: 'openai';
2827
3684
  /** This is not returned in the API. */
2828
3685
  apiKey: string;
2829
3686
  }
2830
3687
 
2831
- export interface UpdateCustomLLMCredentialDTO {
2832
- provider: 'custom-llm';
3688
+ export interface UpdateOpenRouterCredentialDTO {
3689
+ provider: 'openrouter';
2833
3690
  /** This is not returned in the API. */
2834
3691
  apiKey: string;
2835
3692
  }
2836
3693
 
2837
- export interface UpdateElevenLabsCredentialDTO {
2838
- provider: '11labs';
3694
+ export interface UpdatePerplexityAICredentialDTO {
3695
+ provider: 'perplexity-ai';
2839
3696
  /** This is not returned in the API. */
2840
3697
  apiKey: string;
2841
3698
  }
@@ -2859,16 +3716,17 @@ export interface UpdateRunpodCredentialDTO {
2859
3716
  apiKey: string;
2860
3717
  }
2861
3718
 
2862
- export interface UpdateGroqCredentialDTO {
2863
- provider: 'groq';
3719
+ export interface UpdateTogetherAICredentialDTO {
3720
+ provider: 'together-ai';
2864
3721
  /** This is not returned in the API. */
2865
3722
  apiKey: string;
2866
3723
  }
2867
3724
 
2868
- export interface UpdateAnthropicCredentialDTO {
2869
- provider: 'anthropic';
3725
+ export interface UpdateTwilioCredentialDTO {
3726
+ provider: 'twilio';
2870
3727
  /** This is not returned in the API. */
2871
- apiKey: string;
3728
+ authToken: string;
3729
+ accountSid: string;
2872
3730
  }
2873
3731
 
2874
3732
  export interface UpdateVonageCredentialDTO {
@@ -3064,51 +3922,6 @@ export interface Metrics {
3064
3922
  callCountDailyBreakdown: object;
3065
3923
  }
3066
3924
 
3067
- export interface VoiceLibrary {
3068
- /** This is the voice provider that will be used. */
3069
- provider?: '11labs' | 'playht' | 'rime-ai' | 'deepgram' | 'openai' | 'azure' | 'lmnt' | 'neets';
3070
- /** The ID of the voice provided by the provider. */
3071
- providerId?: string;
3072
- /** The unique slug of the voice. */
3073
- slug?: string;
3074
- /** The name of the voice. */
3075
- name?: string;
3076
- /** The language of the voice. */
3077
- language?: string;
3078
- /** The language code of the voice. */
3079
- languageCode?: string;
3080
- /** The model of the voice. */
3081
- model?: string;
3082
- /** The supported models of the voice. */
3083
- supportedModels?: string;
3084
- /** The gender of the voice. */
3085
- gender?: 'male' | 'female';
3086
- /** The accent of the voice. */
3087
- accent?: string;
3088
- /** The preview URL of the voice. */
3089
- previewUrl?: string;
3090
- /** The credential ID of the voice. */
3091
- credentialId?: string;
3092
- /** The deletion status of the voice. */
3093
- isDeleted: boolean;
3094
- /** The unique identifier for the voice library. */
3095
- id: string;
3096
- /** The unique identifier for the organization that this voice library belongs to. */
3097
- orgId: string;
3098
- /** The Public voice is shared accross all the organizations. */
3099
- isPublic: boolean;
3100
- /**
3101
- * The ISO 8601 date-time string of when the voice library was created.
3102
- * @format date-time
3103
- */
3104
- createdAt: string;
3105
- /**
3106
- * The ISO 8601 date-time string of when the voice library was last updated.
3107
- * @format date-time
3108
- */
3109
- updatedAt: string;
3110
- }
3111
-
3112
3925
  export interface CallLogPrivileged {
3113
3926
  /** This is the unique identifier for the call. */
3114
3927
  callId: string;
@@ -3136,6 +3949,305 @@ export interface CallLogsPaginatedResponse {
3136
3949
  metadata: PaginationMeta;
3137
3950
  }
3138
3951
 
3952
+ export interface MakeTool {
3953
+ /**
3954
+ * This determines if the tool is async.
3955
+ *
3956
+ * 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.
3957
+ *
3958
+ * 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.
3959
+ *
3960
+ * Defaults to synchronous (`false`).
3961
+ * @example false
3962
+ */
3963
+ async?: boolean;
3964
+ /**
3965
+ * These are the messages that will be spoken to the user as the tool is running.
3966
+ *
3967
+ * 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.
3968
+ */
3969
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
3970
+ /** The type of tool. "make" for Make tool. */
3971
+ type: 'make';
3972
+ /** The unique identifier for the tool library. */
3973
+ id: string;
3974
+ /** The unique identifier for the organization that this tool library belongs to. */
3975
+ orgId: string;
3976
+ /**
3977
+ * The ISO 8601 date-time string of when the tool library was created.
3978
+ * @format date-time
3979
+ */
3980
+ createdAt: string;
3981
+ /**
3982
+ * The ISO 8601 date-time string of when the tool library was last updated.
3983
+ * @format date-time
3984
+ */
3985
+ updatedAt: string;
3986
+ /**
3987
+ * This is the function definition of the tool.
3988
+ *
3989
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
3990
+ */
3991
+ function?: OpenAIFunction;
3992
+ /**
3993
+ * This is the server that will be hit when this tool is requested by the model.
3994
+ *
3995
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
3996
+ *
3997
+ * 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.
3998
+ */
3999
+ server?: Server;
4000
+ metadata: MakeToolMetadata;
4001
+ }
4002
+
4003
+ export interface GhlTool {
4004
+ /**
4005
+ * This determines if the tool is async.
4006
+ *
4007
+ * 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.
4008
+ *
4009
+ * 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.
4010
+ *
4011
+ * Defaults to synchronous (`false`).
4012
+ * @example false
4013
+ */
4014
+ async?: boolean;
4015
+ /**
4016
+ * These are the messages that will be spoken to the user as the tool is running.
4017
+ *
4018
+ * 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.
4019
+ */
4020
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
4021
+ /** The type of tool. "ghl" for GHL tool. */
4022
+ type: 'ghl';
4023
+ /** The unique identifier for the tool library. */
4024
+ id: string;
4025
+ /** The unique identifier for the organization that this tool library belongs to. */
4026
+ orgId: string;
4027
+ /**
4028
+ * The ISO 8601 date-time string of when the tool library was created.
4029
+ * @format date-time
4030
+ */
4031
+ createdAt: string;
4032
+ /**
4033
+ * The ISO 8601 date-time string of when the tool library was last updated.
4034
+ * @format date-time
4035
+ */
4036
+ updatedAt: string;
4037
+ /**
4038
+ * This is the function definition of the tool.
4039
+ *
4040
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
4041
+ */
4042
+ function?: OpenAIFunction;
4043
+ /**
4044
+ * This is the server that will be hit when this tool is requested by the model.
4045
+ *
4046
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
4047
+ *
4048
+ * 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.
4049
+ */
4050
+ server?: Server;
4051
+ metadata: GhlToolMetadata;
4052
+ }
4053
+
4054
+ export interface FunctionTool {
4055
+ /**
4056
+ * This determines if the tool is async.
4057
+ *
4058
+ * 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.
4059
+ *
4060
+ * 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.
4061
+ *
4062
+ * Defaults to synchronous (`false`).
4063
+ * @example false
4064
+ */
4065
+ async?: boolean;
4066
+ /**
4067
+ * These are the messages that will be spoken to the user as the tool is running.
4068
+ *
4069
+ * 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.
4070
+ */
4071
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
4072
+ /** The type of tool. "function" for Function tool. */
4073
+ type: 'function';
4074
+ /** The unique identifier for the tool library. */
4075
+ id: string;
4076
+ /** The unique identifier for the organization that this tool library belongs to. */
4077
+ orgId: string;
4078
+ /**
4079
+ * The ISO 8601 date-time string of when the tool library was created.
4080
+ * @format date-time
4081
+ */
4082
+ createdAt: string;
4083
+ /**
4084
+ * The ISO 8601 date-time string of when the tool library was last updated.
4085
+ * @format date-time
4086
+ */
4087
+ updatedAt: string;
4088
+ /**
4089
+ * This is the function definition of the tool.
4090
+ *
4091
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
4092
+ */
4093
+ function?: OpenAIFunction;
4094
+ /**
4095
+ * This is the server that will be hit when this tool is requested by the model.
4096
+ *
4097
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
4098
+ *
4099
+ * 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.
4100
+ */
4101
+ server?: Server;
4102
+ }
4103
+
4104
+ export interface UpdateMakeToolDTO {
4105
+ /**
4106
+ * This determines if the tool is async.
4107
+ *
4108
+ * 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.
4109
+ *
4110
+ * 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.
4111
+ *
4112
+ * Defaults to synchronous (`false`).
4113
+ * @example false
4114
+ */
4115
+ async?: boolean;
4116
+ /**
4117
+ * These are the messages that will be spoken to the user as the tool is running.
4118
+ *
4119
+ * 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.
4120
+ */
4121
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
4122
+ /** The type of tool. "make" for Make tool. */
4123
+ type: 'make';
4124
+ metadata: MakeToolMetadata;
4125
+ /**
4126
+ * This is the function definition of the tool.
4127
+ *
4128
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
4129
+ */
4130
+ function?: OpenAIFunction;
4131
+ /**
4132
+ * This is the server that will be hit when this tool is requested by the model.
4133
+ *
4134
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
4135
+ *
4136
+ * 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.
4137
+ */
4138
+ server?: Server;
4139
+ }
4140
+
4141
+ export interface UpdateGhlToolDTO {
4142
+ /**
4143
+ * This determines if the tool is async.
4144
+ *
4145
+ * 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.
4146
+ *
4147
+ * 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.
4148
+ *
4149
+ * Defaults to synchronous (`false`).
4150
+ * @example false
4151
+ */
4152
+ async?: boolean;
4153
+ /**
4154
+ * These are the messages that will be spoken to the user as the tool is running.
4155
+ *
4156
+ * 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.
4157
+ */
4158
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
4159
+ /** The type of tool. "ghl" for GHL tool. */
4160
+ type: 'ghl';
4161
+ metadata: GhlToolMetadata;
4162
+ /**
4163
+ * This is the function definition of the tool.
4164
+ *
4165
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
4166
+ */
4167
+ function?: OpenAIFunction;
4168
+ /**
4169
+ * This is the server that will be hit when this tool is requested by the model.
4170
+ *
4171
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
4172
+ *
4173
+ * 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.
4174
+ */
4175
+ server?: Server;
4176
+ }
4177
+
4178
+ export interface UpdateFunctionToolDTO {
4179
+ /**
4180
+ * This determines if the tool is async.
4181
+ *
4182
+ * 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.
4183
+ *
4184
+ * 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.
4185
+ *
4186
+ * Defaults to synchronous (`false`).
4187
+ * @example false
4188
+ */
4189
+ async?: boolean;
4190
+ /**
4191
+ * These are the messages that will be spoken to the user as the tool is running.
4192
+ *
4193
+ * 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.
4194
+ */
4195
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
4196
+ /** The type of tool. "function" for Function tool. */
4197
+ type: 'function';
4198
+ /**
4199
+ * This is the function definition of the tool.
4200
+ *
4201
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
4202
+ */
4203
+ function?: OpenAIFunction;
4204
+ /**
4205
+ * This is the server that will be hit when this tool is requested by the model.
4206
+ *
4207
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
4208
+ *
4209
+ * 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.
4210
+ */
4211
+ server?: Server;
4212
+ }
4213
+
4214
+ export interface CreateFileDTO {
4215
+ /** @format binary */
4216
+ file: File;
4217
+ }
4218
+
4219
+ export interface File {
4220
+ /** This is the name of the file. This is just for your own reference. */
4221
+ name?: string;
4222
+ originalName?: string;
4223
+ /** @default "file" */
4224
+ object?: 'file';
4225
+ bytes?: number;
4226
+ purpose?: string;
4227
+ mimetype?: string;
4228
+ url?: string;
4229
+ metadata?: object;
4230
+ status?: 'indexed' | 'not_indexed';
4231
+ key?: string;
4232
+ path?: string;
4233
+ /** @default "files" */
4234
+ bucket?: string;
4235
+ /** This is the unique identifier for the file. */
4236
+ id: string;
4237
+ /** This is the unique identifier for the org that this file belongs to. */
4238
+ orgId: string;
4239
+ /**
4240
+ * This is the ISO 8601 date-time string of when the file was created.
4241
+ * @format date-time
4242
+ */
4243
+ createdAt: string;
4244
+ /**
4245
+ * This is the ISO 8601 date-time string of when the file was last updated.
4246
+ * @format date-time
4247
+ */
4248
+ updatedAt: string;
4249
+ }
4250
+
3139
4251
  export type QueryParamsType = Record<string | number, any>;
3140
4252
  export type ResponseFormat = keyof Omit<Body, 'body' | 'bodyUsed'>;
3141
4253
 
@@ -3627,6 +4739,44 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
3627
4739
  ...params,
3628
4740
  }),
3629
4741
 
4742
+ /**
4743
+ * No description
4744
+ *
4745
+ * @tags Calls
4746
+ * @name CallControllerDeleteCallData
4747
+ * @summary Delete Call Data
4748
+ * @request DELETE:/call/{id}
4749
+ * @secure
4750
+ */
4751
+ callControllerDeleteCallData: (id: string, params: RequestParams = {}) =>
4752
+ this.request<Call, any>({
4753
+ path: `/call/${id}`,
4754
+ method: 'DELETE',
4755
+ secure: true,
4756
+ format: 'json',
4757
+ ...params,
4758
+ }),
4759
+
4760
+ /**
4761
+ * No description
4762
+ *
4763
+ * @tags Calls
4764
+ * @name CallControllerUpdate
4765
+ * @summary Update Call
4766
+ * @request PATCH:/call/{id}
4767
+ * @secure
4768
+ */
4769
+ callControllerUpdate: (id: string, data: UpdateCallDTO, params: RequestParams = {}) =>
4770
+ this.request<Call, any>({
4771
+ path: `/call/${id}`,
4772
+ method: 'PATCH',
4773
+ body: data,
4774
+ secure: true,
4775
+ type: ContentType.Json,
4776
+ format: 'json',
4777
+ ...params,
4778
+ }),
4779
+
3630
4780
  /**
3631
4781
  * No description
3632
4782
  *
@@ -3680,35 +4830,50 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
3680
4830
  credentialControllerCreate: (
3681
4831
  data:
3682
4832
  | ({
3683
- provider: 'twilio';
3684
- } & CreateTwilioCredentialDTO)
4833
+ provider: '11labs';
4834
+ } & CreateElevenLabsCredentialDTO)
4835
+ | ({
4836
+ provider: 'anthropic';
4837
+ } & CreateAnthropicCredentialDTO)
4838
+ | ({
4839
+ provider: 'anyscale';
4840
+ } & CreateAnyscaleCredentialDTO)
4841
+ | ({
4842
+ provider: 'azure-openai';
4843
+ } & CreateAzureOpenAICredentialDTO)
4844
+ | ({
4845
+ provider: 'cartesia';
4846
+ } & CreateCartesiaCredentialDTO)
4847
+ | ({
4848
+ provider: 'custom-llm';
4849
+ } & CreateCustomLLMCredentialDTO)
4850
+ | ({
4851
+ provider: 'deepgram';
4852
+ } & CreateDeepgramCredentialDTO)
4853
+ | ({
4854
+ provider: 'deepinfra';
4855
+ } & CreateDeepInfraCredentialDTO)
4856
+ | ({
4857
+ provider: 'gohighlevel';
4858
+ } & CreateGoHighLevelCredentialDTO)
4859
+ | ({
4860
+ provider: 'groq';
4861
+ } & CreateGroqCredentialDTO)
3685
4862
  | ({
3686
- provider: 'deepgram';
3687
- } & CreateDeepgramCredentialDTO)
4863
+ provider: 'lmnt';
4864
+ } & CreateLmntCredentialDTO)
4865
+ | ({
4866
+ provider: 'make';
4867
+ } & CreateMakeCredentialDTO)
3688
4868
  | ({
3689
4869
  provider: 'openai';
3690
4870
  } & CreateOpenAICredentialDTO)
3691
- | ({
3692
- provider: 'together-ai';
3693
- } & CreateTogetherAICredentialDTO)
3694
- | ({
3695
- provider: 'anyscale';
3696
- } & CreateAnyscaleCredentialDTO)
3697
4871
  | ({
3698
4872
  provider: 'openrouter';
3699
4873
  } & CreateOpenRouterCredentialDTO)
3700
4874
  | ({
3701
4875
  provider: 'perplexity-ai';
3702
4876
  } & CreatePerplexityAICredentialDTO)
3703
- | ({
3704
- provider: 'deepinfra';
3705
- } & CreateDeepInfraCredentialDTO)
3706
- | ({
3707
- provider: 'custom-llm';
3708
- } & CreateCustomLLMCredentialDTO)
3709
- | ({
3710
- provider: '11labs';
3711
- } & CreateElevenLabsCredentialDTO)
3712
4877
  | ({
3713
4878
  provider: 'playht';
3714
4879
  } & CreatePlayHTCredentialDTO)
@@ -3719,11 +4884,11 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
3719
4884
  provider: 'runpod';
3720
4885
  } & CreateRunpodCredentialDTO)
3721
4886
  | ({
3722
- provider: 'groq';
3723
- } & CreateGroqCredentialDTO)
4887
+ provider: 'together-ai';
4888
+ } & CreateTogetherAICredentialDTO)
3724
4889
  | ({
3725
- provider: 'anthropic';
3726
- } & CreateAnthropicCredentialDTO)
4890
+ provider: 'twilio';
4891
+ } & CreateTwilioCredentialDTO)
3727
4892
  | ({
3728
4893
  provider: 'vonage';
3729
4894
  } & CreateVonageCredentialDTO),
@@ -3731,35 +4896,50 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
3731
4896
  ) =>
3732
4897
  this.request<
3733
4898
  | ({
3734
- provider: 'twilio';
3735
- } & TwilioCredential)
4899
+ provider: '11labs';
4900
+ } & ElevenLabsCredential)
4901
+ | ({
4902
+ provider: 'anthropic';
4903
+ } & AnthropicCredential)
4904
+ | ({
4905
+ provider: 'anyscale';
4906
+ } & AnyscaleCredential)
4907
+ | ({
4908
+ provider: 'azure-openai';
4909
+ } & AzureOpenAICredential)
4910
+ | ({
4911
+ provider: 'cartesia';
4912
+ } & CartesiaCredential)
4913
+ | ({
4914
+ provider: 'custom-llm';
4915
+ } & CustomLLMCredential)
3736
4916
  | ({
3737
4917
  provider: 'deepgram';
3738
4918
  } & DeepgramCredential)
3739
4919
  | ({
3740
- provider: 'openai';
3741
- } & OpenAICredential)
4920
+ provider: 'deepinfra';
4921
+ } & DeepInfraCredential)
3742
4922
  | ({
3743
- provider: 'together-ai';
3744
- } & TogetherAICredential)
4923
+ provider: 'gohighlevel';
4924
+ } & GoHighLevelCredential)
3745
4925
  | ({
3746
- provider: 'anyscale';
3747
- } & AnyscaleCredential)
4926
+ provider: 'groq';
4927
+ } & GroqCredential)
4928
+ | ({
4929
+ provider: 'lmnt';
4930
+ } & LmntCredential)
4931
+ | ({
4932
+ provider: 'make';
4933
+ } & MakeCredential)
4934
+ | ({
4935
+ provider: 'openai';
4936
+ } & OpenAICredential)
3748
4937
  | ({
3749
4938
  provider: 'openrouter';
3750
4939
  } & OpenRouterCredential)
3751
4940
  | ({
3752
4941
  provider: 'perplexity-ai';
3753
4942
  } & PerplexityAICredential)
3754
- | ({
3755
- provider: 'deepinfra';
3756
- } & DeepInfraCredential)
3757
- | ({
3758
- provider: 'custom-llm';
3759
- } & CustomLLMCredential)
3760
- | ({
3761
- provider: '11labs';
3762
- } & ElevenLabsCredential)
3763
4943
  | ({
3764
4944
  provider: 'playht';
3765
4945
  } & PlayHTCredential)
@@ -3770,11 +4950,11 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
3770
4950
  provider: 'runpod';
3771
4951
  } & RunpodCredential)
3772
4952
  | ({
3773
- provider: 'groq';
3774
- } & GroqCredential)
4953
+ provider: 'together-ai';
4954
+ } & TogetherAICredential)
3775
4955
  | ({
3776
- provider: 'anthropic';
3777
- } & AnthropicCredential)
4956
+ provider: 'twilio';
4957
+ } & TwilioCredential)
3778
4958
  | ({
3779
4959
  provider: 'vonage';
3780
4960
  } & VonageCredential),
@@ -3852,35 +5032,50 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
3852
5032
  this.request<
3853
5033
  (
3854
5034
  | ({
3855
- provider: 'twilio';
3856
- } & TwilioCredential)
5035
+ provider: '11labs';
5036
+ } & ElevenLabsCredential)
5037
+ | ({
5038
+ provider: 'anthropic';
5039
+ } & AnthropicCredential)
5040
+ | ({
5041
+ provider: 'anyscale';
5042
+ } & AnyscaleCredential)
5043
+ | ({
5044
+ provider: 'azure-openai';
5045
+ } & AzureOpenAICredential)
5046
+ | ({
5047
+ provider: 'cartesia';
5048
+ } & CartesiaCredential)
5049
+ | ({
5050
+ provider: 'custom-llm';
5051
+ } & CustomLLMCredential)
3857
5052
  | ({
3858
5053
  provider: 'deepgram';
3859
5054
  } & DeepgramCredential)
3860
5055
  | ({
3861
- provider: 'openai';
3862
- } & OpenAICredential)
5056
+ provider: 'deepinfra';
5057
+ } & DeepInfraCredential)
3863
5058
  | ({
3864
- provider: 'together-ai';
3865
- } & TogetherAICredential)
5059
+ provider: 'gohighlevel';
5060
+ } & GoHighLevelCredential)
3866
5061
  | ({
3867
- provider: 'anyscale';
3868
- } & AnyscaleCredential)
5062
+ provider: 'groq';
5063
+ } & GroqCredential)
5064
+ | ({
5065
+ provider: 'lmnt';
5066
+ } & LmntCredential)
5067
+ | ({
5068
+ provider: 'make';
5069
+ } & MakeCredential)
5070
+ | ({
5071
+ provider: 'openai';
5072
+ } & OpenAICredential)
3869
5073
  | ({
3870
5074
  provider: 'openrouter';
3871
5075
  } & OpenRouterCredential)
3872
5076
  | ({
3873
5077
  provider: 'perplexity-ai';
3874
5078
  } & PerplexityAICredential)
3875
- | ({
3876
- provider: 'deepinfra';
3877
- } & DeepInfraCredential)
3878
- | ({
3879
- provider: 'custom-llm';
3880
- } & CustomLLMCredential)
3881
- | ({
3882
- provider: '11labs';
3883
- } & ElevenLabsCredential)
3884
5079
  | ({
3885
5080
  provider: 'playht';
3886
5081
  } & PlayHTCredential)
@@ -3891,11 +5086,11 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
3891
5086
  provider: 'runpod';
3892
5087
  } & RunpodCredential)
3893
5088
  | ({
3894
- provider: 'groq';
3895
- } & GroqCredential)
5089
+ provider: 'together-ai';
5090
+ } & TogetherAICredential)
3896
5091
  | ({
3897
- provider: 'anthropic';
3898
- } & AnthropicCredential)
5092
+ provider: 'twilio';
5093
+ } & TwilioCredential)
3899
5094
  | ({
3900
5095
  provider: 'vonage';
3901
5096
  } & VonageCredential)
@@ -3922,35 +5117,50 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
3922
5117
  credentialControllerFindOne: (id: string, params: RequestParams = {}) =>
3923
5118
  this.request<
3924
5119
  | ({
3925
- provider: 'twilio';
3926
- } & TwilioCredential)
5120
+ provider: '11labs';
5121
+ } & ElevenLabsCredential)
5122
+ | ({
5123
+ provider: 'anthropic';
5124
+ } & AnthropicCredential)
5125
+ | ({
5126
+ provider: 'anyscale';
5127
+ } & AnyscaleCredential)
5128
+ | ({
5129
+ provider: 'azure-openai';
5130
+ } & AzureOpenAICredential)
5131
+ | ({
5132
+ provider: 'cartesia';
5133
+ } & CartesiaCredential)
5134
+ | ({
5135
+ provider: 'custom-llm';
5136
+ } & CustomLLMCredential)
3927
5137
  | ({
3928
5138
  provider: 'deepgram';
3929
5139
  } & DeepgramCredential)
3930
5140
  | ({
3931
- provider: 'openai';
3932
- } & OpenAICredential)
5141
+ provider: 'deepinfra';
5142
+ } & DeepInfraCredential)
3933
5143
  | ({
3934
- provider: 'together-ai';
3935
- } & TogetherAICredential)
5144
+ provider: 'gohighlevel';
5145
+ } & GoHighLevelCredential)
3936
5146
  | ({
3937
- provider: 'anyscale';
3938
- } & AnyscaleCredential)
5147
+ provider: 'groq';
5148
+ } & GroqCredential)
5149
+ | ({
5150
+ provider: 'lmnt';
5151
+ } & LmntCredential)
5152
+ | ({
5153
+ provider: 'make';
5154
+ } & MakeCredential)
5155
+ | ({
5156
+ provider: 'openai';
5157
+ } & OpenAICredential)
3939
5158
  | ({
3940
5159
  provider: 'openrouter';
3941
5160
  } & OpenRouterCredential)
3942
5161
  | ({
3943
5162
  provider: 'perplexity-ai';
3944
5163
  } & PerplexityAICredential)
3945
- | ({
3946
- provider: 'deepinfra';
3947
- } & DeepInfraCredential)
3948
- | ({
3949
- provider: 'custom-llm';
3950
- } & CustomLLMCredential)
3951
- | ({
3952
- provider: '11labs';
3953
- } & ElevenLabsCredential)
3954
5164
  | ({
3955
5165
  provider: 'playht';
3956
5166
  } & PlayHTCredential)
@@ -3961,11 +5171,11 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
3961
5171
  provider: 'runpod';
3962
5172
  } & RunpodCredential)
3963
5173
  | ({
3964
- provider: 'groq';
3965
- } & GroqCredential)
5174
+ provider: 'together-ai';
5175
+ } & TogetherAICredential)
3966
5176
  | ({
3967
- provider: 'anthropic';
3968
- } & AnthropicCredential)
5177
+ provider: 'twilio';
5178
+ } & TwilioCredential)
3969
5179
  | ({
3970
5180
  provider: 'vonage';
3971
5181
  } & VonageCredential),
@@ -3991,35 +5201,50 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
3991
5201
  id: string,
3992
5202
  data:
3993
5203
  | ({
3994
- provider: 'twilio';
3995
- } & UpdateTwilioCredentialDTO)
5204
+ provider: '11labs';
5205
+ } & UpdateElevenLabsCredentialDTO)
5206
+ | ({
5207
+ provider: 'anthropic';
5208
+ } & UpdateAnthropicCredentialDTO)
5209
+ | ({
5210
+ provider: 'anyscale';
5211
+ } & UpdateAnyscaleCredentialDTO)
5212
+ | ({
5213
+ provider: 'azure-openai';
5214
+ } & UpdateAzureOpenAICredentialDTO)
5215
+ | ({
5216
+ provider: 'cartesia';
5217
+ } & UpdateCartesiaCredentialDTO)
5218
+ | ({
5219
+ provider: 'custom-llm';
5220
+ } & UpdateCustomLLMCredentialDTO)
3996
5221
  | ({
3997
5222
  provider: 'deepgram';
3998
5223
  } & UpdateDeepgramCredentialDTO)
3999
5224
  | ({
4000
- provider: 'openai';
4001
- } & UpdateOpenAICredentialDTO)
5225
+ provider: 'deepinfra';
5226
+ } & UpdateDeepInfraCredentialDTO)
4002
5227
  | ({
4003
- provider: 'together-ai';
4004
- } & UpdateTogetherAICredentialDTO)
5228
+ provider: 'gohighlevel';
5229
+ } & UpdateGoHighLevelCredentialDTO)
4005
5230
  | ({
4006
- provider: 'anyscale';
4007
- } & UpdateAnyscaleCredentialDTO)
5231
+ provider: 'groq';
5232
+ } & UpdateGroqCredentialDTO)
5233
+ | ({
5234
+ provider: 'lmnt';
5235
+ } & UpdateLmntCredentialDTO)
5236
+ | ({
5237
+ provider: 'make';
5238
+ } & UpdateMakeCredentialDTO)
5239
+ | ({
5240
+ provider: 'openai';
5241
+ } & UpdateOpenAICredentialDTO)
4008
5242
  | ({
4009
5243
  provider: 'openrouter';
4010
5244
  } & UpdateOpenRouterCredentialDTO)
4011
5245
  | ({
4012
5246
  provider: 'perplexity-ai';
4013
5247
  } & UpdatePerplexityAICredentialDTO)
4014
- | ({
4015
- provider: 'deepinfra';
4016
- } & UpdateDeepInfraCredentialDTO)
4017
- | ({
4018
- provider: 'custom-llm';
4019
- } & UpdateCustomLLMCredentialDTO)
4020
- | ({
4021
- provider: '11labs';
4022
- } & UpdateElevenLabsCredentialDTO)
4023
5248
  | ({
4024
5249
  provider: 'playht';
4025
5250
  } & UpdatePlayHTCredentialDTO)
@@ -4030,11 +5255,11 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
4030
5255
  provider: 'runpod';
4031
5256
  } & UpdateRunpodCredentialDTO)
4032
5257
  | ({
4033
- provider: 'groq';
4034
- } & UpdateGroqCredentialDTO)
5258
+ provider: 'together-ai';
5259
+ } & UpdateTogetherAICredentialDTO)
4035
5260
  | ({
4036
- provider: 'anthropic';
4037
- } & UpdateAnthropicCredentialDTO)
5261
+ provider: 'twilio';
5262
+ } & UpdateTwilioCredentialDTO)
4038
5263
  | ({
4039
5264
  provider: 'vonage';
4040
5265
  } & UpdateVonageCredentialDTO),
@@ -4042,35 +5267,50 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
4042
5267
  ) =>
4043
5268
  this.request<
4044
5269
  | ({
4045
- provider: 'twilio';
4046
- } & TwilioCredential)
4047
- | ({
4048
- provider: 'deepgram';
4049
- } & DeepgramCredential)
4050
- | ({
4051
- provider: 'openai';
4052
- } & OpenAICredential)
5270
+ provider: '11labs';
5271
+ } & ElevenLabsCredential)
4053
5272
  | ({
4054
- provider: 'together-ai';
4055
- } & TogetherAICredential)
5273
+ provider: 'anthropic';
5274
+ } & AnthropicCredential)
4056
5275
  | ({
4057
5276
  provider: 'anyscale';
4058
5277
  } & AnyscaleCredential)
4059
5278
  | ({
4060
- provider: 'openrouter';
4061
- } & OpenRouterCredential)
5279
+ provider: 'azure-openai';
5280
+ } & AzureOpenAICredential)
4062
5281
  | ({
4063
- provider: 'perplexity-ai';
4064
- } & PerplexityAICredential)
5282
+ provider: 'cartesia';
5283
+ } & CartesiaCredential)
5284
+ | ({
5285
+ provider: 'custom-llm';
5286
+ } & CustomLLMCredential)
5287
+ | ({
5288
+ provider: 'deepgram';
5289
+ } & DeepgramCredential)
4065
5290
  | ({
4066
5291
  provider: 'deepinfra';
4067
5292
  } & DeepInfraCredential)
4068
5293
  | ({
4069
- provider: 'custom-llm';
4070
- } & CustomLLMCredential)
5294
+ provider: 'gohighlevel';
5295
+ } & GoHighLevelCredential)
4071
5296
  | ({
4072
- provider: '11labs';
4073
- } & ElevenLabsCredential)
5297
+ provider: 'groq';
5298
+ } & GroqCredential)
5299
+ | ({
5300
+ provider: 'lmnt';
5301
+ } & LmntCredential)
5302
+ | ({
5303
+ provider: 'make';
5304
+ } & MakeCredential)
5305
+ | ({
5306
+ provider: 'openai';
5307
+ } & OpenAICredential)
5308
+ | ({
5309
+ provider: 'openrouter';
5310
+ } & OpenRouterCredential)
5311
+ | ({
5312
+ provider: 'perplexity-ai';
5313
+ } & PerplexityAICredential)
4074
5314
  | ({
4075
5315
  provider: 'playht';
4076
5316
  } & PlayHTCredential)
@@ -4081,11 +5321,11 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
4081
5321
  provider: 'runpod';
4082
5322
  } & RunpodCredential)
4083
5323
  | ({
4084
- provider: 'groq';
4085
- } & GroqCredential)
5324
+ provider: 'together-ai';
5325
+ } & TogetherAICredential)
4086
5326
  | ({
4087
- provider: 'anthropic';
4088
- } & AnthropicCredential)
5327
+ provider: 'twilio';
5328
+ } & TwilioCredential)
4089
5329
  | ({
4090
5330
  provider: 'vonage';
4091
5331
  } & VonageCredential),
@@ -4112,35 +5352,50 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
4112
5352
  credentialControllerRemove: (id: string, params: RequestParams = {}) =>
4113
5353
  this.request<
4114
5354
  | ({
4115
- provider: 'twilio';
4116
- } & TwilioCredential)
5355
+ provider: '11labs';
5356
+ } & ElevenLabsCredential)
5357
+ | ({
5358
+ provider: 'anthropic';
5359
+ } & AnthropicCredential)
5360
+ | ({
5361
+ provider: 'anyscale';
5362
+ } & AnyscaleCredential)
5363
+ | ({
5364
+ provider: 'azure-openai';
5365
+ } & AzureOpenAICredential)
5366
+ | ({
5367
+ provider: 'cartesia';
5368
+ } & CartesiaCredential)
5369
+ | ({
5370
+ provider: 'custom-llm';
5371
+ } & CustomLLMCredential)
4117
5372
  | ({
4118
5373
  provider: 'deepgram';
4119
5374
  } & DeepgramCredential)
4120
5375
  | ({
4121
- provider: 'openai';
4122
- } & OpenAICredential)
5376
+ provider: 'deepinfra';
5377
+ } & DeepInfraCredential)
4123
5378
  | ({
4124
- provider: 'together-ai';
4125
- } & TogetherAICredential)
5379
+ provider: 'gohighlevel';
5380
+ } & GoHighLevelCredential)
4126
5381
  | ({
4127
- provider: 'anyscale';
4128
- } & AnyscaleCredential)
5382
+ provider: 'groq';
5383
+ } & GroqCredential)
5384
+ | ({
5385
+ provider: 'lmnt';
5386
+ } & LmntCredential)
5387
+ | ({
5388
+ provider: 'make';
5389
+ } & MakeCredential)
5390
+ | ({
5391
+ provider: 'openai';
5392
+ } & OpenAICredential)
4129
5393
  | ({
4130
5394
  provider: 'openrouter';
4131
5395
  } & OpenRouterCredential)
4132
5396
  | ({
4133
5397
  provider: 'perplexity-ai';
4134
5398
  } & PerplexityAICredential)
4135
- | ({
4136
- provider: 'deepinfra';
4137
- } & DeepInfraCredential)
4138
- | ({
4139
- provider: 'custom-llm';
4140
- } & CustomLLMCredential)
4141
- | ({
4142
- provider: '11labs';
4143
- } & ElevenLabsCredential)
4144
5399
  | ({
4145
5400
  provider: 'playht';
4146
5401
  } & PlayHTCredential)
@@ -4151,11 +5406,11 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
4151
5406
  provider: 'runpod';
4152
5407
  } & RunpodCredential)
4153
5408
  | ({
4154
- provider: 'groq';
4155
- } & GroqCredential)
5409
+ provider: 'together-ai';
5410
+ } & TogetherAICredential)
4156
5411
  | ({
4157
- provider: 'anthropic';
4158
- } & AnthropicCredential)
5412
+ provider: 'twilio';
5413
+ } & TwilioCredential)
4159
5414
  | ({
4160
5415
  provider: 'vonage';
4161
5416
  } & VonageCredential),
@@ -4407,83 +5662,139 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
4407
5662
  ...params,
4408
5663
  }),
4409
5664
  };
4410
- voiceLibrary = {
5665
+ log = {
4411
5666
  /**
4412
5667
  * No description
4413
5668
  *
4414
- * @tags Voice Library
4415
- * @name VoiceLibraryControllerVoiceGetByProvider
4416
- * @summary Get voices in Voice Library by Providers
4417
- * @request GET:/voice-library/{provider}
5669
+ * @tags Logs
5670
+ * @name LoggingControllerGetLogs
5671
+ * @summary Get Call Logs
5672
+ * @request GET:/log
4418
5673
  * @secure
4419
5674
  */
4420
- voiceLibraryControllerVoiceGetByProvider: (
4421
- provider:
4422
- | '11labs'
4423
- | 'playht'
4424
- | 'rime-ai'
4425
- | 'deepgram'
4426
- | 'openai'
4427
- | 'azure'
4428
- | 'lmnt'
4429
- | 'neets',
5675
+ loggingControllerGetLogs: (
5676
+ query: {
5677
+ callId: string;
5678
+ /**
5679
+ * This is the page number to return. Defaults to 1.
5680
+ * @min 1
5681
+ */
5682
+ page?: number;
5683
+ /** This is the sort order for pagination. Defaults to 'ASC'. */
5684
+ sortOrder?: 'ASC' | 'DESC';
5685
+ /**
5686
+ * This is the maximum number of items to return. Defaults to 100.
5687
+ * @min 0
5688
+ * @max 1000
5689
+ */
5690
+ limit?: number;
5691
+ /**
5692
+ * This will return items where the createdAt is greater than the specified value.
5693
+ * @format date-time
5694
+ */
5695
+ createdAtGt?: string;
5696
+ /**
5697
+ * This will return items where the createdAt is less than the specified value.
5698
+ * @format date-time
5699
+ */
5700
+ createdAtLt?: string;
5701
+ /**
5702
+ * This will return items where the createdAt is greater than or equal to the specified value.
5703
+ * @format date-time
5704
+ */
5705
+ createdAtGe?: string;
5706
+ /**
5707
+ * This will return items where the createdAt is less than or equal to the specified value.
5708
+ * @format date-time
5709
+ */
5710
+ createdAtLe?: string;
5711
+ /**
5712
+ * This will return items where the updatedAt is greater than the specified value.
5713
+ * @format date-time
5714
+ */
5715
+ updatedAtGt?: string;
5716
+ /**
5717
+ * This will return items where the updatedAt is less than the specified value.
5718
+ * @format date-time
5719
+ */
5720
+ updatedAtLt?: string;
5721
+ /**
5722
+ * This will return items where the updatedAt is greater than or equal to the specified value.
5723
+ * @format date-time
5724
+ */
5725
+ updatedAtGe?: string;
5726
+ /**
5727
+ * This will return items where the updatedAt is less than or equal to the specified value.
5728
+ * @format date-time
5729
+ */
5730
+ updatedAtLe?: string;
5731
+ },
4430
5732
  params: RequestParams = {},
4431
5733
  ) =>
4432
- this.request<VoiceLibrary[], any>({
4433
- path: `/voice-library/${provider}`,
5734
+ this.request<CallLogsPaginatedResponse, any>({
5735
+ path: `/log`,
4434
5736
  method: 'GET',
5737
+ query: query,
4435
5738
  secure: true,
4436
5739
  format: 'json',
4437
5740
  ...params,
4438
5741
  }),
4439
-
5742
+ };
5743
+ tool = {
4440
5744
  /**
4441
5745
  * No description
4442
5746
  *
4443
- * @tags Voice Library
4444
- * @name VoiceLibraryControllerVoiceLibrarySyncByProvider
4445
- * @summary Sync voices in Voice Library by Providers
4446
- * @request POST:/voice-library/sync/{provider}
5747
+ * @tags Tools
5748
+ * @name ToolControllerCreate
5749
+ * @summary Create Tool
5750
+ * @request POST:/tool
4447
5751
  * @secure
4448
5752
  */
4449
- voiceLibraryControllerVoiceLibrarySyncByProvider: (
4450
- provider:
4451
- | '11labs'
4452
- | 'playht'
4453
- | 'rime-ai'
4454
- | 'deepgram'
4455
- | 'openai'
4456
- | 'azure'
4457
- | 'lmnt'
4458
- | 'neets',
5753
+ toolControllerCreate: (
5754
+ data:
5755
+ | ({
5756
+ type: 'make';
5757
+ } & CreateMakeToolDTO)
5758
+ | ({
5759
+ type: 'ghl';
5760
+ } & CreateGhlToolDTO)
5761
+ | ({
5762
+ type: 'function';
5763
+ } & CreateFunctionToolDTO),
4459
5764
  params: RequestParams = {},
4460
5765
  ) =>
4461
- this.request<VoiceLibrary[], any>({
4462
- path: `/voice-library/sync/${provider}`,
5766
+ this.request<
5767
+ | ({
5768
+ type: 'make';
5769
+ } & MakeTool)
5770
+ | ({
5771
+ type: 'ghl';
5772
+ } & GhlTool)
5773
+ | ({
5774
+ type: 'function';
5775
+ } & FunctionTool),
5776
+ any
5777
+ >({
5778
+ path: `/tool`,
4463
5779
  method: 'POST',
5780
+ body: data,
4464
5781
  secure: true,
5782
+ type: ContentType.Json,
4465
5783
  format: 'json',
4466
5784
  ...params,
4467
5785
  }),
4468
- };
4469
- logging = {
5786
+
4470
5787
  /**
4471
5788
  * No description
4472
5789
  *
4473
- * @tags Logging
4474
- * @name LoggingControllerGetLogs
4475
- * @summary Get Logging Logs
4476
- * @request GET:/logging
5790
+ * @tags Tools
5791
+ * @name ToolControllerFindAll
5792
+ * @summary List Tools
5793
+ * @request GET:/tool
4477
5794
  * @secure
4478
5795
  */
4479
- loggingControllerGetLogs: (
4480
- query: {
4481
- callId: string;
4482
- /**
4483
- * This is the page number to return. Defaults to 1.
4484
- * @min 1
4485
- */
4486
- page?: number;
5796
+ toolControllerFindAll: (
5797
+ query?: {
4487
5798
  /**
4488
5799
  * This is the maximum number of items to return. Defaults to 100.
4489
5800
  * @min 0
@@ -4533,13 +5844,203 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
4533
5844
  },
4534
5845
  params: RequestParams = {},
4535
5846
  ) =>
4536
- this.request<CallLogsPaginatedResponse, any>({
4537
- path: `/logging`,
5847
+ this.request<
5848
+ (
5849
+ | ({
5850
+ type: 'make';
5851
+ } & MakeTool)
5852
+ | ({
5853
+ type: 'ghl';
5854
+ } & GhlTool)
5855
+ | ({
5856
+ type: 'function';
5857
+ } & FunctionTool)
5858
+ )[],
5859
+ any
5860
+ >({
5861
+ path: `/tool`,
4538
5862
  method: 'GET',
4539
5863
  query: query,
4540
5864
  secure: true,
4541
5865
  format: 'json',
4542
5866
  ...params,
4543
5867
  }),
5868
+
5869
+ /**
5870
+ * No description
5871
+ *
5872
+ * @tags Tools
5873
+ * @name ToolControllerFindOne
5874
+ * @summary Get Tool
5875
+ * @request GET:/tool/{id}
5876
+ * @secure
5877
+ */
5878
+ toolControllerFindOne: (id: string, params: RequestParams = {}) =>
5879
+ this.request<
5880
+ | ({
5881
+ type: 'make';
5882
+ } & MakeTool)
5883
+ | ({
5884
+ type: 'ghl';
5885
+ } & GhlTool)
5886
+ | ({
5887
+ type: 'function';
5888
+ } & FunctionTool),
5889
+ any
5890
+ >({
5891
+ path: `/tool/${id}`,
5892
+ method: 'GET',
5893
+ secure: true,
5894
+ format: 'json',
5895
+ ...params,
5896
+ }),
5897
+
5898
+ /**
5899
+ * No description
5900
+ *
5901
+ * @tags Tools
5902
+ * @name ToolControllerUpdate
5903
+ * @summary Update Tool
5904
+ * @request PATCH:/tool/{id}
5905
+ * @secure
5906
+ */
5907
+ toolControllerUpdate: (
5908
+ id: string,
5909
+ data:
5910
+ | ({
5911
+ type: 'make';
5912
+ } & UpdateMakeToolDTO)
5913
+ | ({
5914
+ type: 'ghl';
5915
+ } & UpdateGhlToolDTO)
5916
+ | ({
5917
+ type: 'function';
5918
+ } & UpdateFunctionToolDTO),
5919
+ params: RequestParams = {},
5920
+ ) =>
5921
+ this.request<
5922
+ | ({
5923
+ type: 'make';
5924
+ } & MakeTool)
5925
+ | ({
5926
+ type: 'ghl';
5927
+ } & GhlTool)
5928
+ | ({
5929
+ type: 'function';
5930
+ } & FunctionTool),
5931
+ any
5932
+ >({
5933
+ path: `/tool/${id}`,
5934
+ method: 'PATCH',
5935
+ body: data,
5936
+ secure: true,
5937
+ type: ContentType.Json,
5938
+ format: 'json',
5939
+ ...params,
5940
+ }),
5941
+
5942
+ /**
5943
+ * No description
5944
+ *
5945
+ * @tags Tools
5946
+ * @name ToolControllerRemove
5947
+ * @summary Delete Tool
5948
+ * @request DELETE:/tool/{id}
5949
+ * @secure
5950
+ */
5951
+ toolControllerRemove: (id: string, params: RequestParams = {}) =>
5952
+ this.request<
5953
+ | ({
5954
+ type: 'make';
5955
+ } & MakeTool)
5956
+ | ({
5957
+ type: 'ghl';
5958
+ } & GhlTool)
5959
+ | ({
5960
+ type: 'function';
5961
+ } & FunctionTool),
5962
+ any
5963
+ >({
5964
+ path: `/tool/${id}`,
5965
+ method: 'DELETE',
5966
+ secure: true,
5967
+ format: 'json',
5968
+ ...params,
5969
+ }),
5970
+ };
5971
+ file = {
5972
+ /**
5973
+ * No description
5974
+ *
5975
+ * @tags Files
5976
+ * @name FileControllerCreate
5977
+ * @summary Upload File
5978
+ * @request POST:/file/upload
5979
+ * @secure
5980
+ */
5981
+ fileControllerCreate: (data: CreateFileDTO, params: RequestParams = {}) =>
5982
+ this.request<File, void>({
5983
+ path: `/file/upload`,
5984
+ method: 'POST',
5985
+ body: data,
5986
+ secure: true,
5987
+ type: ContentType.FormData,
5988
+ format: 'json',
5989
+ ...params,
5990
+ }),
5991
+
5992
+ /**
5993
+ * No description
5994
+ *
5995
+ * @tags Files
5996
+ * @name FileControllerFindAll
5997
+ * @summary List Files
5998
+ * @request GET:/file
5999
+ * @secure
6000
+ */
6001
+ fileControllerFindAll: (params: RequestParams = {}) =>
6002
+ this.request<File[], any>({
6003
+ path: `/file`,
6004
+ method: 'GET',
6005
+ secure: true,
6006
+ format: 'json',
6007
+ ...params,
6008
+ }),
6009
+
6010
+ /**
6011
+ * No description
6012
+ *
6013
+ * @tags Files
6014
+ * @name FileControllerFindOne
6015
+ * @summary Get File
6016
+ * @request GET:/file/{id}
6017
+ * @secure
6018
+ */
6019
+ fileControllerFindOne: (id: string, params: RequestParams = {}) =>
6020
+ this.request<File, any>({
6021
+ path: `/file/${id}`,
6022
+ method: 'GET',
6023
+ secure: true,
6024
+ format: 'json',
6025
+ ...params,
6026
+ }),
6027
+
6028
+ /**
6029
+ * No description
6030
+ *
6031
+ * @tags Files
6032
+ * @name FileControllerRemove
6033
+ * @summary Delete File
6034
+ * @request DELETE:/file/{id}
6035
+ * @secure
6036
+ */
6037
+ fileControllerRemove: (id: string, params: RequestParams = {}) =>
6038
+ this.request<File, any>({
6039
+ path: `/file/${id}`,
6040
+ method: 'DELETE',
6041
+ secure: true,
6042
+ format: 'json',
6043
+ ...params,
6044
+ }),
4544
6045
  };
4545
6046
  }