@vapi-ai/web 2.2.3 → 2.2.5

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,6 +9,21 @@
9
9
  * ---------------------------------------------------------------
10
10
  */
11
11
 
12
+ export interface FallbackTranscriberPlan {
13
+ transcribers: (
14
+ | FallbackAssemblyAITranscriber
15
+ | FallbackAzureSpeechTranscriber
16
+ | FallbackCustomTranscriber
17
+ | FallbackDeepgramTranscriber
18
+ | FallbackElevenLabsTranscriber
19
+ | FallbackGladiaTranscriber
20
+ | FallbackGoogleTranscriber
21
+ | FallbackTalkscriberTranscriber
22
+ | FallbackSpeechmaticsTranscriber
23
+ | FallbackOpenAITranscriber
24
+ )[];
25
+ }
26
+
12
27
  export interface AssemblyAITranscriber {
13
28
  /** This is the transcription provider that will be used. */
14
29
  provider: 'assembly-ai';
@@ -25,6 +40,8 @@ export interface AssemblyAITranscriber {
25
40
  * Set to `true` to not receive partial transcripts. Defaults to `false`.
26
41
  */
27
42
  disablePartialTranscripts?: boolean;
43
+ /** This is the plan for voice provider fallbacks in the event that the primary voice provider fails. */
44
+ fallbackPlan?: FallbackTranscriberPlan;
28
45
  }
29
46
 
30
47
  export interface AzureSpeechTranscriber {
@@ -175,6 +192,8 @@ export interface AzureSpeechTranscriber {
175
192
  | 'zh-HK'
176
193
  | 'zh-TW'
177
194
  | 'zu-ZA';
195
+ /** This is the plan for voice provider fallbacks in the event that the primary voice provider fails. */
196
+ fallbackPlan?: FallbackTranscriberPlan;
178
197
  }
179
198
 
180
199
  export interface BackoffPlan {
@@ -231,7 +250,1027 @@ export interface Server {
231
250
  backoffPlan?: BackoffPlan;
232
251
  }
233
252
 
234
- export interface CustomTranscriber {
253
+ export interface CustomTranscriber {
254
+ /** This is the transcription provider that will be used. Use `custom-transcriber` for providers that are not natively supported. */
255
+ provider: 'custom-transcriber';
256
+ /**
257
+ * This is where the transcription request will be sent.
258
+ *
259
+ * Usage:
260
+ * 1. Vapi will initiate a websocket connection with `server.url`.
261
+ *
262
+ * 2. Vapi will send an initial text frame with the sample rate. Format:
263
+ * ```
264
+ * {
265
+ * "type": "start",
266
+ * "encoding": "linear16", // 16-bit raw PCM format
267
+ * "container": "raw",
268
+ * "sampleRate": {{sampleRate}},
269
+ * "channels": 2 // customer is channel 0, assistant is channel 1
270
+ * }
271
+ * ```
272
+ *
273
+ * 3. Vapi will send the audio data in 16-bit raw PCM format as binary frames.
274
+ *
275
+ * 4. You can read the messages something like this:
276
+ * ```
277
+ * ws.on('message', (data, isBinary) => {
278
+ * if (isBinary) {
279
+ * pcmBuffer = Buffer.concat([pcmBuffer, data]);
280
+ * console.log(`Received PCM data, buffer size: ${pcmBuffer.length}`);
281
+ * } else {
282
+ * console.log('Received message:', JSON.parse(data.toString()));
283
+ * }
284
+ * });
285
+ * ```
286
+ *
287
+ * 5. You will respond with transcriptions as you have them. Format:
288
+ * ```
289
+ * {
290
+ * "type": "transcriber-response",
291
+ * "transcription": "Hello, world!",
292
+ * "channel": "customer" | "assistant"
293
+ * }
294
+ * ```
295
+ */
296
+ server: Server;
297
+ /** This is the plan for voice provider fallbacks in the event that the primary voice provider fails. */
298
+ fallbackPlan?: FallbackTranscriberPlan;
299
+ }
300
+
301
+ export interface DeepgramTranscriber {
302
+ /** This is the transcription provider that will be used. */
303
+ provider: 'deepgram';
304
+ /** This is the Deepgram model that will be used. A list of models can be found here: https://developers.deepgram.com/docs/models-languages-overview */
305
+ model?:
306
+ | 'nova-3'
307
+ | 'nova-3-general'
308
+ | 'nova-2'
309
+ | 'nova-2-general'
310
+ | 'nova-2-meeting'
311
+ | 'nova-2-phonecall'
312
+ | 'nova-2-finance'
313
+ | 'nova-2-conversationalai'
314
+ | 'nova-2-voicemail'
315
+ | 'nova-2-video'
316
+ | 'nova-2-medical'
317
+ | 'nova-2-drivethru'
318
+ | 'nova-2-automotive'
319
+ | 'nova'
320
+ | 'nova-general'
321
+ | 'nova-phonecall'
322
+ | 'nova-medical'
323
+ | 'enhanced'
324
+ | 'enhanced-general'
325
+ | 'enhanced-meeting'
326
+ | 'enhanced-phonecall'
327
+ | 'enhanced-finance'
328
+ | 'base'
329
+ | 'base-general'
330
+ | 'base-meeting'
331
+ | 'base-phonecall'
332
+ | 'base-finance'
333
+ | 'base-conversationalai'
334
+ | 'base-voicemail'
335
+ | 'base-video'
336
+ | string;
337
+ /** 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 */
338
+ language?:
339
+ | 'bg'
340
+ | 'ca'
341
+ | 'cs'
342
+ | 'da'
343
+ | 'da-DK'
344
+ | 'de'
345
+ | 'de-CH'
346
+ | 'el'
347
+ | 'en'
348
+ | 'en-AU'
349
+ | 'en-GB'
350
+ | 'en-IN'
351
+ | 'en-NZ'
352
+ | 'en-US'
353
+ | 'es'
354
+ | 'es-419'
355
+ | 'es-LATAM'
356
+ | 'et'
357
+ | 'fi'
358
+ | 'fr'
359
+ | 'fr-CA'
360
+ | 'hi'
361
+ | 'hi-Latn'
362
+ | 'hu'
363
+ | 'id'
364
+ | 'it'
365
+ | 'ja'
366
+ | 'ko'
367
+ | 'ko-KR'
368
+ | 'lt'
369
+ | 'lv'
370
+ | 'ms'
371
+ | 'multi'
372
+ | 'nl'
373
+ | 'nl-BE'
374
+ | 'no'
375
+ | 'pl'
376
+ | 'pt'
377
+ | 'pt-BR'
378
+ | 'ro'
379
+ | 'ru'
380
+ | 'sk'
381
+ | 'sv'
382
+ | 'sv-SE'
383
+ | 'ta'
384
+ | 'taq'
385
+ | 'th'
386
+ | 'th-TH'
387
+ | 'tr'
388
+ | 'uk'
389
+ | 'vi'
390
+ | 'zh'
391
+ | 'zh-CN'
392
+ | 'zh-HK'
393
+ | 'zh-Hans'
394
+ | 'zh-Hant'
395
+ | 'zh-TW';
396
+ /**
397
+ * This will be use smart format option provided by Deepgram. It's default disabled because it can sometimes format numbers as times but it's getting better.
398
+ * @example false
399
+ */
400
+ smartFormat?: boolean;
401
+ /**
402
+ * This automatically switches the transcriber's language when the customer's language changes. Defaults to false.
403
+ *
404
+ * Usage:
405
+ * - If your customers switch languages mid-call, you can set this to true.
406
+ *
407
+ * Note:
408
+ * - To detect language changes, Vapi uses a custom trained model. Languages supported (X = limited support):
409
+ * 1. Arabic
410
+ * 2. Bengali
411
+ * 3. Cantonese
412
+ * 4. Chinese
413
+ * 5. Chinese Simplified (X)
414
+ * 6. Chinese Traditional (X)
415
+ * 7. English
416
+ * 8. Farsi (X)
417
+ * 9. French
418
+ * 10. German
419
+ * 11. Haitian Creole (X)
420
+ * 12. Hindi
421
+ * 13. Italian
422
+ * 14. Japanese
423
+ * 15. Korean
424
+ * 16. Portuguese
425
+ * 17. Russian
426
+ * 18. Spanish
427
+ * 19. Thai
428
+ * 20. Urdu
429
+ * 21. Vietnamese
430
+ * - To receive `language-change-detected` webhook events, add it to `assistant.serverMessages`.
431
+ *
432
+ * @default false
433
+ * @example false
434
+ */
435
+ codeSwitchingEnabled?: boolean;
436
+ /**
437
+ * If set to true, this will add mip_opt_out=true as a query parameter of all API requests. See https://developers.deepgram.com/docs/the-deepgram-model-improvement-partnership-program#want-to-opt-out
438
+ *
439
+ * This will only be used if you are using your own Deepgram API key.
440
+ *
441
+ * @default false
442
+ * @default false
443
+ * @example false
444
+ */
445
+ mipOptOut?: boolean;
446
+ /**
447
+ * If set to true, this will cause deepgram to convert spoken numbers to literal numerals. For example, "my phone number is nine-seven-two..." would become "my phone number is 972..."
448
+ *
449
+ * @default false
450
+ * @example false
451
+ */
452
+ numerals?: boolean;
453
+ /** These keywords are passed to the transcription model to help it pick up use-case specific words. Anything that may not be a common word, like your company name, should be added here. */
454
+ keywords?: string[];
455
+ /** Keyterm Prompting allows you improve Keyword Recall Rate (KRR) for important keyterms or phrases up to 90%. */
456
+ keyterm?: string[];
457
+ /**
458
+ * This is the timeout after which Deepgram will send transcription on user silence. You can read in-depth documentation here: https://developers.deepgram.com/docs/endpointing.
459
+ *
460
+ * Here are the most important bits:
461
+ * - Defaults to 10. This is recommended for most use cases to optimize for latency.
462
+ * - 10 can cause some missing transcriptions since because of the shorter context. This mostly happens for one-word utterances. For those uses cases, it's recommended to try 300. It will add a bit of latency but the quality and reliability of the experience will be better.
463
+ * - If neither 10 nor 300 work, contact support@vapi.ai and we'll find another solution.
464
+ *
465
+ * @default 10
466
+ * @min 10
467
+ * @max 500
468
+ */
469
+ endpointing?: number;
470
+ /** This is the plan for voice provider fallbacks in the event that the primary voice provider fails. */
471
+ fallbackPlan?: FallbackTranscriberPlan;
472
+ }
473
+
474
+ export interface ElevenLabsTranscriber {
475
+ /** This is the transcription provider that will be used. */
476
+ provider: '11labs';
477
+ /** This is the model that will be used for the transcription. */
478
+ model?: 'scribe_v1';
479
+ language?:
480
+ | 'aa'
481
+ | 'ab'
482
+ | 'ae'
483
+ | 'af'
484
+ | 'ak'
485
+ | 'am'
486
+ | 'an'
487
+ | 'ar'
488
+ | 'as'
489
+ | 'av'
490
+ | 'ay'
491
+ | 'az'
492
+ | 'ba'
493
+ | 'be'
494
+ | 'bg'
495
+ | 'bh'
496
+ | 'bi'
497
+ | 'bm'
498
+ | 'bn'
499
+ | 'bo'
500
+ | 'br'
501
+ | 'bs'
502
+ | 'ca'
503
+ | 'ce'
504
+ | 'ch'
505
+ | 'co'
506
+ | 'cr'
507
+ | 'cs'
508
+ | 'cu'
509
+ | 'cv'
510
+ | 'cy'
511
+ | 'da'
512
+ | 'de'
513
+ | 'dv'
514
+ | 'dz'
515
+ | 'ee'
516
+ | 'el'
517
+ | 'en'
518
+ | 'eo'
519
+ | 'es'
520
+ | 'et'
521
+ | 'eu'
522
+ | 'fa'
523
+ | 'ff'
524
+ | 'fi'
525
+ | 'fj'
526
+ | 'fo'
527
+ | 'fr'
528
+ | 'fy'
529
+ | 'ga'
530
+ | 'gd'
531
+ | 'gl'
532
+ | 'gn'
533
+ | 'gu'
534
+ | 'gv'
535
+ | 'ha'
536
+ | 'he'
537
+ | 'hi'
538
+ | 'ho'
539
+ | 'hr'
540
+ | 'ht'
541
+ | 'hu'
542
+ | 'hy'
543
+ | 'hz'
544
+ | 'ia'
545
+ | 'id'
546
+ | 'ie'
547
+ | 'ig'
548
+ | 'ii'
549
+ | 'ik'
550
+ | 'io'
551
+ | 'is'
552
+ | 'it'
553
+ | 'iu'
554
+ | 'ja'
555
+ | 'jv'
556
+ | 'ka'
557
+ | 'kg'
558
+ | 'ki'
559
+ | 'kj'
560
+ | 'kk'
561
+ | 'kl'
562
+ | 'km'
563
+ | 'kn'
564
+ | 'ko'
565
+ | 'kr'
566
+ | 'ks'
567
+ | 'ku'
568
+ | 'kv'
569
+ | 'kw'
570
+ | 'ky'
571
+ | 'la'
572
+ | 'lb'
573
+ | 'lg'
574
+ | 'li'
575
+ | 'ln'
576
+ | 'lo'
577
+ | 'lt'
578
+ | 'lu'
579
+ | 'lv'
580
+ | 'mg'
581
+ | 'mh'
582
+ | 'mi'
583
+ | 'mk'
584
+ | 'ml'
585
+ | 'mn'
586
+ | 'mr'
587
+ | 'ms'
588
+ | 'mt'
589
+ | 'my'
590
+ | 'na'
591
+ | 'nb'
592
+ | 'nd'
593
+ | 'ne'
594
+ | 'ng'
595
+ | 'nl'
596
+ | 'nn'
597
+ | 'no'
598
+ | 'nr'
599
+ | 'nv'
600
+ | 'ny'
601
+ | 'oc'
602
+ | 'oj'
603
+ | 'om'
604
+ | 'or'
605
+ | 'os'
606
+ | 'pa'
607
+ | 'pi'
608
+ | 'pl'
609
+ | 'ps'
610
+ | 'pt'
611
+ | 'qu'
612
+ | 'rm'
613
+ | 'rn'
614
+ | 'ro'
615
+ | 'ru'
616
+ | 'rw'
617
+ | 'sa'
618
+ | 'sc'
619
+ | 'sd'
620
+ | 'se'
621
+ | 'sg'
622
+ | 'si'
623
+ | 'sk'
624
+ | 'sl'
625
+ | 'sm'
626
+ | 'sn'
627
+ | 'so'
628
+ | 'sq'
629
+ | 'sr'
630
+ | 'ss'
631
+ | 'st'
632
+ | 'su'
633
+ | 'sv'
634
+ | 'sw'
635
+ | 'ta'
636
+ | 'te'
637
+ | 'tg'
638
+ | 'th'
639
+ | 'ti'
640
+ | 'tk'
641
+ | 'tl'
642
+ | 'tn'
643
+ | 'to'
644
+ | 'tr'
645
+ | 'ts'
646
+ | 'tt'
647
+ | 'tw'
648
+ | 'ty'
649
+ | 'ug'
650
+ | 'uk'
651
+ | 'ur'
652
+ | 'uz'
653
+ | 've'
654
+ | 'vi'
655
+ | 'vo'
656
+ | 'wa'
657
+ | 'wo'
658
+ | 'xh'
659
+ | 'yi'
660
+ | 'yue'
661
+ | 'yo'
662
+ | 'za'
663
+ | 'zh'
664
+ | 'zu';
665
+ /** This is the plan for voice provider fallbacks in the event that the primary voice provider fails. */
666
+ fallbackPlan?: FallbackTranscriberPlan;
667
+ }
668
+
669
+ export interface GladiaTranscriber {
670
+ /** This is the transcription provider that will be used. */
671
+ provider: 'gladia';
672
+ /** This is the Gladia model that will be used. Default is 'fast' */
673
+ model?: 'fast' | 'accurate';
674
+ /** Defines how the transcription model detects the audio language. Default value is 'automatic single language'. */
675
+ languageBehaviour?: 'manual' | 'automatic single language' | 'automatic multiple languages';
676
+ /** Defines the language to use for the transcription. Required when languageBehaviour is 'manual'. */
677
+ language?:
678
+ | 'af'
679
+ | 'sq'
680
+ | 'am'
681
+ | 'ar'
682
+ | 'hy'
683
+ | 'as'
684
+ | 'az'
685
+ | 'ba'
686
+ | 'eu'
687
+ | 'be'
688
+ | 'bn'
689
+ | 'bs'
690
+ | 'br'
691
+ | 'bg'
692
+ | 'ca'
693
+ | 'zh'
694
+ | 'hr'
695
+ | 'cs'
696
+ | 'da'
697
+ | 'nl'
698
+ | 'en'
699
+ | 'et'
700
+ | 'fo'
701
+ | 'fi'
702
+ | 'fr'
703
+ | 'gl'
704
+ | 'ka'
705
+ | 'de'
706
+ | 'el'
707
+ | 'gu'
708
+ | 'ht'
709
+ | 'ha'
710
+ | 'haw'
711
+ | 'he'
712
+ | 'hi'
713
+ | 'hu'
714
+ | 'is'
715
+ | 'id'
716
+ | 'it'
717
+ | 'ja'
718
+ | 'jv'
719
+ | 'kn'
720
+ | 'kk'
721
+ | 'km'
722
+ | 'ko'
723
+ | 'lo'
724
+ | 'la'
725
+ | 'lv'
726
+ | 'ln'
727
+ | 'lt'
728
+ | 'lb'
729
+ | 'mk'
730
+ | 'mg'
731
+ | 'ms'
732
+ | 'ml'
733
+ | 'mt'
734
+ | 'mi'
735
+ | 'mr'
736
+ | 'mn'
737
+ | 'my'
738
+ | 'ne'
739
+ | 'no'
740
+ | 'nn'
741
+ | 'oc'
742
+ | 'ps'
743
+ | 'fa'
744
+ | 'pl'
745
+ | 'pt'
746
+ | 'pa'
747
+ | 'ro'
748
+ | 'ru'
749
+ | 'sa'
750
+ | 'sr'
751
+ | 'sn'
752
+ | 'sd'
753
+ | 'si'
754
+ | 'sk'
755
+ | 'sl'
756
+ | 'so'
757
+ | 'es'
758
+ | 'su'
759
+ | 'sw'
760
+ | 'sv'
761
+ | 'tl'
762
+ | 'tg'
763
+ | 'ta'
764
+ | 'tt'
765
+ | 'te'
766
+ | 'th'
767
+ | 'bo'
768
+ | 'tr'
769
+ | 'tk'
770
+ | 'uk'
771
+ | 'ur'
772
+ | 'uz'
773
+ | 'vi'
774
+ | 'cy'
775
+ | 'yi'
776
+ | 'yo';
777
+ /**
778
+ * Provides a custom vocabulary to the model to improve accuracy of transcribing context specific words, technical terms, names, etc. If empty, this argument is ignored.
779
+ * ⚠️ Warning ⚠️: Please be aware that the transcription_hint field has a character limit of 600. If you provide a transcription_hint longer than 600 characters, it will be automatically truncated to meet this limit.
780
+ * @maxLength 600
781
+ * @example "custom vocabulary"
782
+ */
783
+ transcriptionHint?: string;
784
+ /**
785
+ * If prosody is true, you will get a transcription that can contain prosodies i.e. (laugh) (giggles) (malefic laugh) (toss) (music)… Default value is false.
786
+ * @example false
787
+ */
788
+ prosody?: boolean;
789
+ /**
790
+ * If true, audio will be pre-processed to improve accuracy but latency will increase. Default value is false.
791
+ * @example false
792
+ */
793
+ audioEnhancer?: boolean;
794
+ /** This is the plan for voice provider fallbacks in the event that the primary voice provider fails. */
795
+ fallbackPlan?: FallbackTranscriberPlan;
796
+ }
797
+
798
+ export interface SpeechmaticsTranscriber {
799
+ /** This is the transcription provider that will be used. */
800
+ provider: 'speechmatics';
801
+ /** This is the model that will be used for the transcription. */
802
+ model?: 'default';
803
+ language?:
804
+ | 'auto'
805
+ | 'ar'
806
+ | 'ba'
807
+ | 'eu'
808
+ | 'be'
809
+ | 'bn'
810
+ | 'bg'
811
+ | 'yue'
812
+ | 'ca'
813
+ | 'hr'
814
+ | 'cs'
815
+ | 'da'
816
+ | 'nl'
817
+ | 'en'
818
+ | 'eo'
819
+ | 'et'
820
+ | 'fi'
821
+ | 'fr'
822
+ | 'gl'
823
+ | 'de'
824
+ | 'el'
825
+ | 'he'
826
+ | 'hi'
827
+ | 'hu'
828
+ | 'id'
829
+ | 'ia'
830
+ | 'ga'
831
+ | 'it'
832
+ | 'ja'
833
+ | 'ko'
834
+ | 'lv'
835
+ | 'lt'
836
+ | 'ms'
837
+ | 'mt'
838
+ | 'cmn'
839
+ | 'mr'
840
+ | 'mn'
841
+ | 'no'
842
+ | 'fa'
843
+ | 'pl'
844
+ | 'pt'
845
+ | 'ro'
846
+ | 'ru'
847
+ | 'sk'
848
+ | 'sl'
849
+ | 'es'
850
+ | 'sw'
851
+ | 'sv'
852
+ | 'ta'
853
+ | 'th'
854
+ | 'tr'
855
+ | 'uk'
856
+ | 'ur'
857
+ | 'ug'
858
+ | 'vi'
859
+ | 'cy';
860
+ /** This is the plan for voice provider fallbacks in the event that the primary voice provider fails. */
861
+ fallbackPlan?: FallbackTranscriberPlan;
862
+ }
863
+
864
+ export interface TalkscriberTranscriber {
865
+ /** This is the transcription provider that will be used. */
866
+ provider: 'talkscriber';
867
+ /** This is the model that will be used for the transcription. */
868
+ model?: 'whisper';
869
+ /** This is the language that will be set for the transcription. The list of languages Whisper supports can be found here: https://github.com/openai/whisper/blob/main/whisper/tokenizer.py */
870
+ language?:
871
+ | 'en'
872
+ | 'zh'
873
+ | 'de'
874
+ | 'es'
875
+ | 'ru'
876
+ | 'ko'
877
+ | 'fr'
878
+ | 'ja'
879
+ | 'pt'
880
+ | 'tr'
881
+ | 'pl'
882
+ | 'ca'
883
+ | 'nl'
884
+ | 'ar'
885
+ | 'sv'
886
+ | 'it'
887
+ | 'id'
888
+ | 'hi'
889
+ | 'fi'
890
+ | 'vi'
891
+ | 'he'
892
+ | 'uk'
893
+ | 'el'
894
+ | 'ms'
895
+ | 'cs'
896
+ | 'ro'
897
+ | 'da'
898
+ | 'hu'
899
+ | 'ta'
900
+ | 'no'
901
+ | 'th'
902
+ | 'ur'
903
+ | 'hr'
904
+ | 'bg'
905
+ | 'lt'
906
+ | 'la'
907
+ | 'mi'
908
+ | 'ml'
909
+ | 'cy'
910
+ | 'sk'
911
+ | 'te'
912
+ | 'fa'
913
+ | 'lv'
914
+ | 'bn'
915
+ | 'sr'
916
+ | 'az'
917
+ | 'sl'
918
+ | 'kn'
919
+ | 'et'
920
+ | 'mk'
921
+ | 'br'
922
+ | 'eu'
923
+ | 'is'
924
+ | 'hy'
925
+ | 'ne'
926
+ | 'mn'
927
+ | 'bs'
928
+ | 'kk'
929
+ | 'sq'
930
+ | 'sw'
931
+ | 'gl'
932
+ | 'mr'
933
+ | 'pa'
934
+ | 'si'
935
+ | 'km'
936
+ | 'sn'
937
+ | 'yo'
938
+ | 'so'
939
+ | 'af'
940
+ | 'oc'
941
+ | 'ka'
942
+ | 'be'
943
+ | 'tg'
944
+ | 'sd'
945
+ | 'gu'
946
+ | 'am'
947
+ | 'yi'
948
+ | 'lo'
949
+ | 'uz'
950
+ | 'fo'
951
+ | 'ht'
952
+ | 'ps'
953
+ | 'tk'
954
+ | 'nn'
955
+ | 'mt'
956
+ | 'sa'
957
+ | 'lb'
958
+ | 'my'
959
+ | 'bo'
960
+ | 'tl'
961
+ | 'mg'
962
+ | 'as'
963
+ | 'tt'
964
+ | 'haw'
965
+ | 'ln'
966
+ | 'ha'
967
+ | 'ba'
968
+ | 'jw'
969
+ | 'su'
970
+ | 'yue';
971
+ /** This is the plan for voice provider fallbacks in the event that the primary voice provider fails. */
972
+ fallbackPlan?: FallbackTranscriberPlan;
973
+ }
974
+
975
+ export interface GoogleTranscriber {
976
+ /** This is the transcription provider that will be used. */
977
+ provider: 'google';
978
+ /** This is the model that will be used for the transcription. */
979
+ model?:
980
+ | 'gemini-2.0-flash-thinking-exp'
981
+ | 'gemini-2.0-pro-exp-02-05'
982
+ | 'gemini-2.0-flash'
983
+ | 'gemini-2.0-flash-lite'
984
+ | 'gemini-2.0-flash-lite-preview-02-05'
985
+ | 'gemini-2.0-flash-exp'
986
+ | 'gemini-2.0-flash-realtime-exp'
987
+ | 'gemini-1.5-flash'
988
+ | 'gemini-1.5-flash-002'
989
+ | 'gemini-1.5-pro'
990
+ | 'gemini-1.5-pro-002'
991
+ | 'gemini-1.0-pro';
992
+ /** This is the language that will be set for the transcription. */
993
+ language?:
994
+ | 'Multilingual'
995
+ | 'Arabic'
996
+ | 'Bengali'
997
+ | 'Bulgarian'
998
+ | 'Chinese'
999
+ | 'Croatian'
1000
+ | 'Czech'
1001
+ | 'Danish'
1002
+ | 'Dutch'
1003
+ | 'English'
1004
+ | 'Estonian'
1005
+ | 'Finnish'
1006
+ | 'French'
1007
+ | 'German'
1008
+ | 'Greek'
1009
+ | 'Hebrew'
1010
+ | 'Hindi'
1011
+ | 'Hungarian'
1012
+ | 'Indonesian'
1013
+ | 'Italian'
1014
+ | 'Japanese'
1015
+ | 'Korean'
1016
+ | 'Latvian'
1017
+ | 'Lithuanian'
1018
+ | 'Norwegian'
1019
+ | 'Polish'
1020
+ | 'Portuguese'
1021
+ | 'Romanian'
1022
+ | 'Russian'
1023
+ | 'Serbian'
1024
+ | 'Slovak'
1025
+ | 'Slovenian'
1026
+ | 'Spanish'
1027
+ | 'Swahili'
1028
+ | 'Swedish'
1029
+ | 'Thai'
1030
+ | 'Turkish'
1031
+ | 'Ukrainian'
1032
+ | 'Vietnamese';
1033
+ /** This is the plan for voice provider fallbacks in the event that the primary voice provider fails. */
1034
+ fallbackPlan?: FallbackTranscriberPlan;
1035
+ }
1036
+
1037
+ export interface OpenAITranscriber {
1038
+ /** This is the transcription provider that will be used. */
1039
+ provider: 'openai';
1040
+ /** This is the model that will be used for the transcription. */
1041
+ model: 'gpt-4o-transcribe' | 'gpt-4o-mini-transcribe';
1042
+ /** This is the language that will be set for the transcription. */
1043
+ language?:
1044
+ | 'af'
1045
+ | 'ar'
1046
+ | 'hy'
1047
+ | 'az'
1048
+ | 'be'
1049
+ | 'bs'
1050
+ | 'bg'
1051
+ | 'ca'
1052
+ | 'zh'
1053
+ | 'hr'
1054
+ | 'cs'
1055
+ | 'da'
1056
+ | 'nl'
1057
+ | 'en'
1058
+ | 'et'
1059
+ | 'fi'
1060
+ | 'fr'
1061
+ | 'gl'
1062
+ | 'de'
1063
+ | 'el'
1064
+ | 'he'
1065
+ | 'hi'
1066
+ | 'hu'
1067
+ | 'is'
1068
+ | 'id'
1069
+ | 'it'
1070
+ | 'ja'
1071
+ | 'kn'
1072
+ | 'kk'
1073
+ | 'ko'
1074
+ | 'lv'
1075
+ | 'lt'
1076
+ | 'mk'
1077
+ | 'ms'
1078
+ | 'mr'
1079
+ | 'mi'
1080
+ | 'ne'
1081
+ | 'no'
1082
+ | 'fa'
1083
+ | 'pl'
1084
+ | 'pt'
1085
+ | 'ro'
1086
+ | 'ru'
1087
+ | 'sr'
1088
+ | 'sk'
1089
+ | 'sl'
1090
+ | 'es'
1091
+ | 'sw'
1092
+ | 'sv'
1093
+ | 'tl'
1094
+ | 'ta'
1095
+ | 'th'
1096
+ | 'tr'
1097
+ | 'uk'
1098
+ | 'ur'
1099
+ | 'vi'
1100
+ | 'cy';
1101
+ /** This is the plan for voice provider fallbacks in the event that the primary voice provider fails. */
1102
+ fallbackPlan?: FallbackTranscriberPlan;
1103
+ }
1104
+
1105
+ export interface FallbackAssemblyAITranscriber {
1106
+ /** This is the transcription provider that will be used. */
1107
+ provider: 'assembly-ai';
1108
+ /** This is the language that will be set for the transcription. */
1109
+ language?: 'en';
1110
+ /** The WebSocket URL that the transcriber connects to. */
1111
+ realtimeUrl?: string;
1112
+ /** Add up to 2500 characters of custom vocabulary. */
1113
+ wordBoost?: string[];
1114
+ /** The duration of the end utterance silence threshold in milliseconds. */
1115
+ endUtteranceSilenceThreshold?: number;
1116
+ /**
1117
+ * Disable partial transcripts.
1118
+ * Set to `true` to not receive partial transcripts. Defaults to `false`.
1119
+ */
1120
+ disablePartialTranscripts?: boolean;
1121
+ }
1122
+
1123
+ export interface FallbackAzureSpeechTranscriber {
1124
+ /** This is the transcription provider that will be used. */
1125
+ provider: 'azure';
1126
+ /** This is the language that will be set for the transcription. The list of languages Azure supports can be found here: https://learn.microsoft.com/en-us/azure/ai-services/speech-service/language-support?tabs=stt */
1127
+ language?:
1128
+ | 'af-ZA'
1129
+ | 'am-ET'
1130
+ | 'ar-AE'
1131
+ | 'ar-BH'
1132
+ | 'ar-DZ'
1133
+ | 'ar-EG'
1134
+ | 'ar-IL'
1135
+ | 'ar-IQ'
1136
+ | 'ar-JO'
1137
+ | 'ar-KW'
1138
+ | 'ar-LB'
1139
+ | 'ar-LY'
1140
+ | 'ar-MA'
1141
+ | 'ar-OM'
1142
+ | 'ar-PS'
1143
+ | 'ar-QA'
1144
+ | 'ar-SA'
1145
+ | 'ar-SY'
1146
+ | 'ar-TN'
1147
+ | 'ar-YE'
1148
+ | 'az-AZ'
1149
+ | 'bg-BG'
1150
+ | 'bn-IN'
1151
+ | 'bs-BA'
1152
+ | 'ca-ES'
1153
+ | 'cs-CZ'
1154
+ | 'cy-GB'
1155
+ | 'da-DK'
1156
+ | 'de-AT'
1157
+ | 'de-CH'
1158
+ | 'de-DE'
1159
+ | 'el-GR'
1160
+ | 'en-AU'
1161
+ | 'en-CA'
1162
+ | 'en-GB'
1163
+ | 'en-GH'
1164
+ | 'en-HK'
1165
+ | 'en-IE'
1166
+ | 'en-IN'
1167
+ | 'en-KE'
1168
+ | 'en-NG'
1169
+ | 'en-NZ'
1170
+ | 'en-PH'
1171
+ | 'en-SG'
1172
+ | 'en-TZ'
1173
+ | 'en-US'
1174
+ | 'en-ZA'
1175
+ | 'es-AR'
1176
+ | 'es-BO'
1177
+ | 'es-CL'
1178
+ | 'es-CO'
1179
+ | 'es-CR'
1180
+ | 'es-CU'
1181
+ | 'es-DO'
1182
+ | 'es-EC'
1183
+ | 'es-ES'
1184
+ | 'es-GQ'
1185
+ | 'es-GT'
1186
+ | 'es-HN'
1187
+ | 'es-MX'
1188
+ | 'es-NI'
1189
+ | 'es-PA'
1190
+ | 'es-PE'
1191
+ | 'es-PR'
1192
+ | 'es-PY'
1193
+ | 'es-SV'
1194
+ | 'es-US'
1195
+ | 'es-UY'
1196
+ | 'es-VE'
1197
+ | 'et-EE'
1198
+ | 'eu-ES'
1199
+ | 'fa-IR'
1200
+ | 'fi-FI'
1201
+ | 'fil-PH'
1202
+ | 'fr-BE'
1203
+ | 'fr-CA'
1204
+ | 'fr-CH'
1205
+ | 'fr-FR'
1206
+ | 'ga-IE'
1207
+ | 'gl-ES'
1208
+ | 'gu-IN'
1209
+ | 'he-IL'
1210
+ | 'hi-IN'
1211
+ | 'hr-HR'
1212
+ | 'hu-HU'
1213
+ | 'hy-AM'
1214
+ | 'id-ID'
1215
+ | 'is-IS'
1216
+ | 'it-CH'
1217
+ | 'it-IT'
1218
+ | 'ja-JP'
1219
+ | 'jv-ID'
1220
+ | 'ka-GE'
1221
+ | 'kk-KZ'
1222
+ | 'km-KH'
1223
+ | 'kn-IN'
1224
+ | 'ko-KR'
1225
+ | 'lo-LA'
1226
+ | 'lt-LT'
1227
+ | 'lv-LV'
1228
+ | 'mk-MK'
1229
+ | 'ml-IN'
1230
+ | 'mn-MN'
1231
+ | 'mr-IN'
1232
+ | 'ms-MY'
1233
+ | 'mt-MT'
1234
+ | 'my-MM'
1235
+ | 'nb-NO'
1236
+ | 'ne-NP'
1237
+ | 'nl-BE'
1238
+ | 'nl-NL'
1239
+ | 'pa-IN'
1240
+ | 'pl-PL'
1241
+ | 'ps-AF'
1242
+ | 'pt-BR'
1243
+ | 'pt-PT'
1244
+ | 'ro-RO'
1245
+ | 'ru-RU'
1246
+ | 'si-LK'
1247
+ | 'sk-SK'
1248
+ | 'sl-SI'
1249
+ | 'so-SO'
1250
+ | 'sq-AL'
1251
+ | 'sr-RS'
1252
+ | 'sv-SE'
1253
+ | 'sw-KE'
1254
+ | 'sw-TZ'
1255
+ | 'ta-IN'
1256
+ | 'te-IN'
1257
+ | 'th-TH'
1258
+ | 'tr-TR'
1259
+ | 'uk-UA'
1260
+ | 'ur-IN'
1261
+ | 'uz-UZ'
1262
+ | 'vi-VN'
1263
+ | 'wuu-CN'
1264
+ | 'yue-CN'
1265
+ | 'zh-CN'
1266
+ | 'zh-CN-shandong'
1267
+ | 'zh-CN-sichuan'
1268
+ | 'zh-HK'
1269
+ | 'zh-TW'
1270
+ | 'zu-ZA';
1271
+ }
1272
+
1273
+ export interface FallbackCustomTranscriber {
235
1274
  /** This is the transcription provider that will be used. Use `custom-transcriber` for providers that are not natively supported. */
236
1275
  provider: 'custom-transcriber';
237
1276
  /**
@@ -277,7 +1316,7 @@ export interface CustomTranscriber {
277
1316
  server: Server;
278
1317
  }
279
1318
 
280
- export interface DeepgramTranscriber {
1319
+ export interface FallbackDeepgramTranscriber {
281
1320
  /** This is the transcription provider that will be used. */
282
1321
  provider: 'deepgram';
283
1322
  /** This is the Deepgram model that will be used. A list of models can be found here: https://developers.deepgram.com/docs/models-languages-overview */
@@ -448,7 +1487,7 @@ export interface DeepgramTranscriber {
448
1487
  endpointing?: number;
449
1488
  }
450
1489
 
451
- export interface ElevenLabsTranscriber {
1490
+ export interface FallbackElevenLabsTranscriber {
452
1491
  /** This is the transcription provider that will be used. */
453
1492
  provider: '11labs';
454
1493
  /** This is the model that will be used for the transcription. */
@@ -641,7 +1680,7 @@ export interface ElevenLabsTranscriber {
641
1680
  | 'zu';
642
1681
  }
643
1682
 
644
- export interface GladiaTranscriber {
1683
+ export interface FallbackGladiaTranscriber {
645
1684
  /** This is the transcription provider that will be used. */
646
1685
  provider: 'gladia';
647
1686
  /** This is the Gladia model that will be used. Default is 'fast' */
@@ -768,7 +1807,7 @@ export interface GladiaTranscriber {
768
1807
  audioEnhancer?: boolean;
769
1808
  }
770
1809
 
771
- export interface SpeechmaticsTranscriber {
1810
+ export interface FallbackSpeechmaticsTranscriber {
772
1811
  /** This is the transcription provider that will be used. */
773
1812
  provider: 'speechmatics';
774
1813
  /** This is the model that will be used for the transcription. */
@@ -832,7 +1871,7 @@ export interface SpeechmaticsTranscriber {
832
1871
  | 'cy';
833
1872
  }
834
1873
 
835
- export interface TalkscriberTranscriber {
1874
+ export interface FallbackTalkscriberTranscriber {
836
1875
  /** This is the transcription provider that will be used. */
837
1876
  provider: 'talkscriber';
838
1877
  /** This is the model that will be used for the transcription. */
@@ -941,9 +1980,141 @@ export interface TalkscriberTranscriber {
941
1980
  | 'yue';
942
1981
  }
943
1982
 
1983
+ export interface FallbackGoogleTranscriber {
1984
+ /** This is the transcription provider that will be used. */
1985
+ provider: 'google';
1986
+ /** This is the model that will be used for the transcription. */
1987
+ model?:
1988
+ | 'gemini-2.0-flash-thinking-exp'
1989
+ | 'gemini-2.0-pro-exp-02-05'
1990
+ | 'gemini-2.0-flash'
1991
+ | 'gemini-2.0-flash-lite'
1992
+ | 'gemini-2.0-flash-lite-preview-02-05'
1993
+ | 'gemini-2.0-flash-exp'
1994
+ | 'gemini-2.0-flash-realtime-exp'
1995
+ | 'gemini-1.5-flash'
1996
+ | 'gemini-1.5-flash-002'
1997
+ | 'gemini-1.5-pro'
1998
+ | 'gemini-1.5-pro-002'
1999
+ | 'gemini-1.0-pro';
2000
+ /** This is the language that will be set for the transcription. */
2001
+ language?:
2002
+ | 'Multilingual'
2003
+ | 'Arabic'
2004
+ | 'Bengali'
2005
+ | 'Bulgarian'
2006
+ | 'Chinese'
2007
+ | 'Croatian'
2008
+ | 'Czech'
2009
+ | 'Danish'
2010
+ | 'Dutch'
2011
+ | 'English'
2012
+ | 'Estonian'
2013
+ | 'Finnish'
2014
+ | 'French'
2015
+ | 'German'
2016
+ | 'Greek'
2017
+ | 'Hebrew'
2018
+ | 'Hindi'
2019
+ | 'Hungarian'
2020
+ | 'Indonesian'
2021
+ | 'Italian'
2022
+ | 'Japanese'
2023
+ | 'Korean'
2024
+ | 'Latvian'
2025
+ | 'Lithuanian'
2026
+ | 'Norwegian'
2027
+ | 'Polish'
2028
+ | 'Portuguese'
2029
+ | 'Romanian'
2030
+ | 'Russian'
2031
+ | 'Serbian'
2032
+ | 'Slovak'
2033
+ | 'Slovenian'
2034
+ | 'Spanish'
2035
+ | 'Swahili'
2036
+ | 'Swedish'
2037
+ | 'Thai'
2038
+ | 'Turkish'
2039
+ | 'Ukrainian'
2040
+ | 'Vietnamese';
2041
+ }
2042
+
2043
+ export interface FallbackOpenAITranscriber {
2044
+ /** This is the transcription provider that will be used. */
2045
+ provider: 'openai';
2046
+ /** This is the model that will be used for the transcription. */
2047
+ model: 'gpt-4o-transcribe' | 'gpt-4o-mini-transcribe';
2048
+ /** This is the language that will be set for the transcription. */
2049
+ language?:
2050
+ | 'af'
2051
+ | 'ar'
2052
+ | 'hy'
2053
+ | 'az'
2054
+ | 'be'
2055
+ | 'bs'
2056
+ | 'bg'
2057
+ | 'ca'
2058
+ | 'zh'
2059
+ | 'hr'
2060
+ | 'cs'
2061
+ | 'da'
2062
+ | 'nl'
2063
+ | 'en'
2064
+ | 'et'
2065
+ | 'fi'
2066
+ | 'fr'
2067
+ | 'gl'
2068
+ | 'de'
2069
+ | 'el'
2070
+ | 'he'
2071
+ | 'hi'
2072
+ | 'hu'
2073
+ | 'is'
2074
+ | 'id'
2075
+ | 'it'
2076
+ | 'ja'
2077
+ | 'kn'
2078
+ | 'kk'
2079
+ | 'ko'
2080
+ | 'lv'
2081
+ | 'lt'
2082
+ | 'mk'
2083
+ | 'ms'
2084
+ | 'mr'
2085
+ | 'mi'
2086
+ | 'ne'
2087
+ | 'no'
2088
+ | 'fa'
2089
+ | 'pl'
2090
+ | 'pt'
2091
+ | 'ro'
2092
+ | 'ru'
2093
+ | 'sr'
2094
+ | 'sk'
2095
+ | 'sl'
2096
+ | 'es'
2097
+ | 'sw'
2098
+ | 'sv'
2099
+ | 'tl'
2100
+ | 'ta'
2101
+ | 'th'
2102
+ | 'tr'
2103
+ | 'uk'
2104
+ | 'ur'
2105
+ | 'vi'
2106
+ | 'cy';
2107
+ }
2108
+
944
2109
  export interface LangfuseObservabilityPlan {
945
2110
  provider: 'langfuse';
2111
+ /** This is an array of tags to be added to the Langfuse trace. Tags allow you to categorize and filter traces. https://langfuse.com/docs/tracing-features/tags */
946
2112
  tags: string[];
2113
+ /**
2114
+ * This is a JSON object that will be added to the Langfuse trace. Traces can be enriched with metadata to better understand your users, application, and experiments. https://langfuse.com/docs/tracing-features/metadata
2115
+ * By default it includes the call metadata, assistant metadata, and assistant overrides.
2116
+ */
2117
+ metadata?: object;
947
2118
  }
948
2119
 
949
2120
  export interface TextContent {
@@ -2108,6 +3279,8 @@ export interface AnyscaleModel {
2108
3279
  | CreateMakeToolDTO
2109
3280
  | CreateTransferCallToolDTO
2110
3281
  | CreateQueryToolDTO
3282
+ | CreateGoogleCalendarCreateEventToolDTO
3283
+ | CreateGoogleSheetsRowAppendToolDTO
2111
3284
  )[];
2112
3285
  /**
2113
3286
  * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
@@ -2181,6 +3354,8 @@ export interface AnthropicModel {
2181
3354
  | CreateMakeToolDTO
2182
3355
  | CreateTransferCallToolDTO
2183
3356
  | CreateQueryToolDTO
3357
+ | CreateGoogleCalendarCreateEventToolDTO
3358
+ | CreateGoogleSheetsRowAppendToolDTO
2184
3359
  )[];
2185
3360
  /**
2186
3361
  * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
@@ -2257,6 +3432,8 @@ export interface CerebrasModel {
2257
3432
  | CreateMakeToolDTO
2258
3433
  | CreateTransferCallToolDTO
2259
3434
  | CreateQueryToolDTO
3435
+ | CreateGoogleCalendarCreateEventToolDTO
3436
+ | CreateGoogleSheetsRowAppendToolDTO
2260
3437
  )[];
2261
3438
  /**
2262
3439
  * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
@@ -2319,6 +3496,8 @@ export interface CustomLLMModel {
2319
3496
  | CreateMakeToolDTO
2320
3497
  | CreateTransferCallToolDTO
2321
3498
  | CreateQueryToolDTO
3499
+ | CreateGoogleCalendarCreateEventToolDTO
3500
+ | CreateGoogleSheetsRowAppendToolDTO
2322
3501
  )[];
2323
3502
  /**
2324
3503
  * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
@@ -2346,6 +3525,12 @@ export interface CustomLLMModel {
2346
3525
  metadataSendMode?: 'off' | 'variable' | 'destructured';
2347
3526
  /** These is the URL we'll use for the OpenAI client's `baseURL`. Ex. https://openrouter.ai/api/v1 */
2348
3527
  url: string;
3528
+ /**
3529
+ * This sets the timeout for the connection to the custom provider without needing to stream any tokens back. Default is 20 seconds.
3530
+ * @min 20
3531
+ * @max 600
3532
+ */
3533
+ timeoutSeconds?: number;
2349
3534
  /** This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
2350
3535
  model: string;
2351
3536
  /**
@@ -2396,6 +3581,8 @@ export interface DeepInfraModel {
2396
3581
  | CreateMakeToolDTO
2397
3582
  | CreateTransferCallToolDTO
2398
3583
  | CreateQueryToolDTO
3584
+ | CreateGoogleCalendarCreateEventToolDTO
3585
+ | CreateGoogleSheetsRowAppendToolDTO
2399
3586
  )[];
2400
3587
  /**
2401
3588
  * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
@@ -2458,6 +3645,8 @@ export interface DeepSeekModel {
2458
3645
  | CreateMakeToolDTO
2459
3646
  | CreateTransferCallToolDTO
2460
3647
  | CreateQueryToolDTO
3648
+ | CreateGoogleCalendarCreateEventToolDTO
3649
+ | CreateGoogleSheetsRowAppendToolDTO
2461
3650
  )[];
2462
3651
  /**
2463
3652
  * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
@@ -2560,6 +3749,8 @@ export interface GoogleModel {
2560
3749
  | CreateMakeToolDTO
2561
3750
  | CreateTransferCallToolDTO
2562
3751
  | CreateQueryToolDTO
3752
+ | CreateGoogleCalendarCreateEventToolDTO
3753
+ | CreateGoogleSheetsRowAppendToolDTO
2563
3754
  )[];
2564
3755
  /**
2565
3756
  * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
@@ -2639,6 +3830,8 @@ export interface GroqModel {
2639
3830
  | CreateMakeToolDTO
2640
3831
  | CreateTransferCallToolDTO
2641
3832
  | CreateQueryToolDTO
3833
+ | CreateGoogleCalendarCreateEventToolDTO
3834
+ | CreateGoogleSheetsRowAppendToolDTO
2642
3835
  )[];
2643
3836
  /**
2644
3837
  * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
@@ -2710,6 +3903,8 @@ export interface InflectionAIModel {
2710
3903
  | CreateMakeToolDTO
2711
3904
  | CreateTransferCallToolDTO
2712
3905
  | CreateQueryToolDTO
3906
+ | CreateGoogleCalendarCreateEventToolDTO
3907
+ | CreateGoogleSheetsRowAppendToolDTO
2713
3908
  )[];
2714
3909
  /**
2715
3910
  * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
@@ -2772,6 +3967,8 @@ export interface OpenAIModel {
2772
3967
  | CreateMakeToolDTO
2773
3968
  | CreateTransferCallToolDTO
2774
3969
  | CreateQueryToolDTO
3970
+ | CreateGoogleCalendarCreateEventToolDTO
3971
+ | CreateGoogleSheetsRowAppendToolDTO
2775
3972
  )[];
2776
3973
  /**
2777
3974
  * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
@@ -2896,6 +4093,8 @@ export interface OpenRouterModel {
2896
4093
  | CreateMakeToolDTO
2897
4094
  | CreateTransferCallToolDTO
2898
4095
  | CreateQueryToolDTO
4096
+ | CreateGoogleCalendarCreateEventToolDTO
4097
+ | CreateGoogleSheetsRowAppendToolDTO
2899
4098
  )[];
2900
4099
  /**
2901
4100
  * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
@@ -2958,6 +4157,8 @@ export interface PerplexityAIModel {
2958
4157
  | CreateMakeToolDTO
2959
4158
  | CreateTransferCallToolDTO
2960
4159
  | CreateQueryToolDTO
4160
+ | CreateGoogleCalendarCreateEventToolDTO
4161
+ | CreateGoogleSheetsRowAppendToolDTO
2961
4162
  )[];
2962
4163
  /**
2963
4164
  * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
@@ -3020,6 +4221,8 @@ export interface TogetherAIModel {
3020
4221
  | CreateMakeToolDTO
3021
4222
  | CreateTransferCallToolDTO
3022
4223
  | CreateQueryToolDTO
4224
+ | CreateGoogleCalendarCreateEventToolDTO
4225
+ | CreateGoogleSheetsRowAppendToolDTO
3023
4226
  )[];
3024
4227
  /**
3025
4228
  * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
@@ -3121,6 +4324,8 @@ export interface VapiModel {
3121
4324
  | CreateMakeToolDTO
3122
4325
  | CreateTransferCallToolDTO
3123
4326
  | CreateQueryToolDTO
4327
+ | CreateGoogleCalendarCreateEventToolDTO
4328
+ | CreateGoogleSheetsRowAppendToolDTO
3124
4329
  )[];
3125
4330
  /**
3126
4331
  * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
@@ -3187,6 +4392,8 @@ export interface XaiModel {
3187
4392
  | CreateMakeToolDTO
3188
4393
  | CreateTransferCallToolDTO
3189
4394
  | CreateQueryToolDTO
4395
+ | CreateGoogleCalendarCreateEventToolDTO
4396
+ | CreateGoogleSheetsRowAppendToolDTO
3190
4397
  )[];
3191
4398
  /**
3192
4399
  * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
@@ -3435,7 +4642,6 @@ export interface FallbackPlan {
3435
4642
  | FallbackElevenLabsVoice
3436
4643
  | FallbackVapiVoice
3437
4644
  | FallbackLMNTVoice
3438
- | FallbackNeetsVoice
3439
4645
  | FallbackOpenAIVoice
3440
4646
  | FallbackPlayHTVoice
3441
4647
  | FallbackRimeAIVoice
@@ -3727,17 +4933,6 @@ export interface LMNTVoice {
3727
4933
  fallbackPlan?: FallbackPlan;
3728
4934
  }
3729
4935
 
3730
- export interface NeetsVoice {
3731
- /** This is the voice provider that will be used. */
3732
- provider: 'neets';
3733
- /** This is the provider-specific ID that will be used. */
3734
- voiceId: 'vits' | string;
3735
- /** This is the plan for chunking the model output before it is sent to the voice provider. */
3736
- chunkPlan?: ChunkPlan;
3737
- /** This is the plan for voice provider fallbacks in the event that the primary voice provider fails. */
3738
- fallbackPlan?: FallbackPlan;
3739
- }
3740
-
3741
4936
  export interface NeuphonicVoice {
3742
4937
  /** This is the voice provider that will be used. */
3743
4938
  provider: 'neuphonic';
@@ -3785,6 +4980,14 @@ export interface OpenAIVoice {
3785
4980
  | 'coral'
3786
4981
  | 'sage'
3787
4982
  | 'verse';
4983
+ /** This is the model that will be used for text-to-speech. */
4984
+ model?: 'tts-1' | 'tts-1-hd' | 'gpt-4o-mini-tts';
4985
+ /**
4986
+ * This is a prompt that allows you to control the voice of your generated audio.
4987
+ * Does not work with 'tts-1' or 'tts-1-hd' models.
4988
+ * @maxLength 10000
4989
+ */
4990
+ instructions?: string;
3788
4991
  /**
3789
4992
  * This is the speed multiplier that will be used.
3790
4993
  * @min 0.25
@@ -4013,6 +5216,26 @@ export interface RimeAIVoice {
4013
5216
  * @example null
4014
5217
  */
4015
5218
  speed?: number;
5219
+ /**
5220
+ * This is a flag that controls whether to add slight pauses using angle brackets. Example: “Hi. <200> I’d love to have a conversation with you.” adds a 200ms pause between the first and second sentences.
5221
+ * @example false
5222
+ */
5223
+ pauseBetweenBrackets?: boolean;
5224
+ /**
5225
+ * This is a flag that controls whether text inside brackets should be phonemized (converted to phonetic pronunciation) - Example: "{h'El.o} World" will pronounce "Hello" as expected.
5226
+ * @example false
5227
+ */
5228
+ phonemizeBetweenBrackets?: boolean;
5229
+ /**
5230
+ * This is a flag that controls whether to optimize for reduced latency in streaming. https://docs.rime.ai/api-reference/endpoint/websockets#param-reduce-latency
5231
+ * @example false
5232
+ */
5233
+ reduceLatency?: boolean;
5234
+ /**
5235
+ * This is a string that allows inline speed control using alpha notation. https://docs.rime.ai/api-reference/endpoint/websockets#param-inline-speed-alpha
5236
+ * @example null
5237
+ */
5238
+ inlineSpeedAlpha?: string;
4016
5239
  /** This is the plan for chunking the model output before it is sent to the voice provider. */
4017
5240
  chunkPlan?: ChunkPlan;
4018
5241
  /** This is the plan for voice provider fallbacks in the event that the primary voice provider fails. */
@@ -4131,7 +5354,72 @@ export interface VapiVoice {
4131
5354
  /** This is the voice provider that will be used. */
4132
5355
  provider: 'vapi';
4133
5356
  /** The voices provided by Vapi */
4134
- voiceId: 'Elliot' | 'Rohan' | 'Lily' | 'Savannah' | 'Hana' | 'Neha' | 'Cole' | 'Harry' | 'Paige';
5357
+ voiceId:
5358
+ | 'Elliot'
5359
+ | 'Rohan'
5360
+ | 'Lily'
5361
+ | 'Savannah'
5362
+ | 'Hana'
5363
+ | 'Neha'
5364
+ | 'Cole'
5365
+ | 'Harry'
5366
+ | 'Paige'
5367
+ | 'Spencer';
5368
+ /**
5369
+ * This is the speed multiplier that will be used.
5370
+ *
5371
+ * @default 1
5372
+ * @min 0.25
5373
+ * @max 2
5374
+ * @default 1
5375
+ */
5376
+ speed?: number;
5377
+ /**
5378
+ * This is the language code (ISO 639-1) that will be used.
5379
+ *
5380
+ * @default 'en-US'
5381
+ * @default "en-US"
5382
+ */
5383
+ language?:
5384
+ | 'en-US'
5385
+ | 'en-GB'
5386
+ | 'en-AU'
5387
+ | 'en-CA'
5388
+ | 'ja'
5389
+ | 'zh'
5390
+ | 'de'
5391
+ | 'hi'
5392
+ | 'fr-FR'
5393
+ | 'fr-CA'
5394
+ | 'ko'
5395
+ | 'pt-BR'
5396
+ | 'pt-PT'
5397
+ | 'it'
5398
+ | 'es-ES'
5399
+ | 'es-MX'
5400
+ | 'id'
5401
+ | 'nl'
5402
+ | 'tr'
5403
+ | 'fil'
5404
+ | 'pl'
5405
+ | 'sv'
5406
+ | 'bg'
5407
+ | 'ro'
5408
+ | 'ar-SA'
5409
+ | 'ar-AE'
5410
+ | 'cs'
5411
+ | 'el'
5412
+ | 'fi'
5413
+ | 'hr'
5414
+ | 'ms'
5415
+ | 'sk'
5416
+ | 'da'
5417
+ | 'ta'
5418
+ | 'uk'
5419
+ | 'ru'
5420
+ | 'hu'
5421
+ | 'no'
5422
+ | 'vi';
4135
5423
  /** This is the plan for chunking the model output before it is sent to the voice provider. */
4136
5424
  chunkPlan?: ChunkPlan;
4137
5425
  /** This is the plan for voice provider fallbacks in the event that the primary voice provider fails. */
@@ -4380,15 +5668,6 @@ export interface FallbackLMNTVoice {
4380
5668
  chunkPlan?: ChunkPlan;
4381
5669
  }
4382
5670
 
4383
- export interface FallbackNeetsVoice {
4384
- /** This is the voice provider that will be used. */
4385
- provider: 'neets';
4386
- /** This is the provider-specific ID that will be used. */
4387
- voiceId: 'vits' | string;
4388
- /** This is the plan for chunking the model output before it is sent to the voice provider. */
4389
- chunkPlan?: ChunkPlan;
4390
- }
4391
-
4392
5671
  export interface FallbackNeuphonicVoice {
4393
5672
  /** This is the voice provider that will be used. */
4394
5673
  provider: 'neuphonic';
@@ -4434,6 +5713,14 @@ export interface FallbackOpenAIVoice {
4434
5713
  | 'coral'
4435
5714
  | 'sage'
4436
5715
  | 'verse';
5716
+ /** This is the model that will be used for text-to-speech. */
5717
+ model?: 'tts-1' | 'tts-1-hd' | 'gpt-4o-mini-tts';
5718
+ /**
5719
+ * This is a prompt that allows you to control the voice of your generated audio.
5720
+ * Does not work with 'tts-1' or 'tts-1-hd' models.
5721
+ * @maxLength 10000
5722
+ */
5723
+ instructions?: string;
4437
5724
  /**
4438
5725
  * This is the speed multiplier that will be used.
4439
5726
  * @min 0.25
@@ -4658,6 +5945,26 @@ export interface FallbackRimeAIVoice {
4658
5945
  * @example null
4659
5946
  */
4660
5947
  speed?: number;
5948
+ /**
5949
+ * This is a flag that controls whether to add slight pauses using angle brackets. Example: “Hi. <200> I’d love to have a conversation with you.” adds a 200ms pause between the first and second sentences.
5950
+ * @example false
5951
+ */
5952
+ pauseBetweenBrackets?: boolean;
5953
+ /**
5954
+ * This is a flag that controls whether text inside brackets should be phonemized (converted to phonetic pronunciation) - Example: "{h'El.o} World" will pronounce "Hello" as expected.
5955
+ * @example false
5956
+ */
5957
+ phonemizeBetweenBrackets?: boolean;
5958
+ /**
5959
+ * This is a flag that controls whether to optimize for reduced latency in streaming. https://docs.rime.ai/api-reference/endpoint/websockets#param-reduce-latency
5960
+ * @example false
5961
+ */
5962
+ reduceLatency?: boolean;
5963
+ /**
5964
+ * This is a string that allows inline speed control using alpha notation. https://docs.rime.ai/api-reference/endpoint/websockets#param-inline-speed-alpha
5965
+ * @example null
5966
+ */
5967
+ inlineSpeedAlpha?: string;
4661
5968
  /** This is the plan for chunking the model output before it is sent to the voice provider. */
4662
5969
  chunkPlan?: ChunkPlan;
4663
5970
  }
@@ -4729,7 +6036,72 @@ export interface FallbackVapiVoice {
4729
6036
  /** This is the voice provider that will be used. */
4730
6037
  provider: 'vapi';
4731
6038
  /** The voices provided by Vapi */
4732
- voiceId: 'Elliot' | 'Rohan' | 'Lily' | 'Savannah' | 'Hana' | 'Neha' | 'Cole' | 'Harry' | 'Paige';
6039
+ voiceId:
6040
+ | 'Elliot'
6041
+ | 'Rohan'
6042
+ | 'Lily'
6043
+ | 'Savannah'
6044
+ | 'Hana'
6045
+ | 'Neha'
6046
+ | 'Cole'
6047
+ | 'Harry'
6048
+ | 'Paige'
6049
+ | 'Spencer';
6050
+ /**
6051
+ * This is the speed multiplier that will be used.
6052
+ *
6053
+ * @default 1
6054
+ * @min 0.25
6055
+ * @max 2
6056
+ * @default 1
6057
+ */
6058
+ speed?: number;
6059
+ /**
6060
+ * This is the language code (ISO 639-1) that will be used.
6061
+ *
6062
+ * @default 'en-US'
6063
+ * @default "en-US"
6064
+ */
6065
+ language?:
6066
+ | 'en-US'
6067
+ | 'en-GB'
6068
+ | 'en-AU'
6069
+ | 'en-CA'
6070
+ | 'ja'
6071
+ | 'zh'
6072
+ | 'de'
6073
+ | 'hi'
6074
+ | 'fr-FR'
6075
+ | 'fr-CA'
6076
+ | 'ko'
6077
+ | 'pt-BR'
6078
+ | 'pt-PT'
6079
+ | 'it'
6080
+ | 'es-ES'
6081
+ | 'es-MX'
6082
+ | 'id'
6083
+ | 'nl'
6084
+ | 'tr'
6085
+ | 'fil'
6086
+ | 'pl'
6087
+ | 'sv'
6088
+ | 'bg'
6089
+ | 'ro'
6090
+ | 'ar-SA'
6091
+ | 'ar-AE'
6092
+ | 'cs'
6093
+ | 'el'
6094
+ | 'fi'
6095
+ | 'hr'
6096
+ | 'ms'
6097
+ | 'sk'
6098
+ | 'da'
6099
+ | 'ta'
6100
+ | 'uk'
6101
+ | 'ru'
6102
+ | 'hu'
6103
+ | 'no'
6104
+ | 'vi';
4733
6105
  /** This is the plan for chunking the model output before it is sent to the voice provider. */
4734
6106
  chunkPlan?: ChunkPlan;
4735
6107
  }
@@ -4896,6 +6268,7 @@ export interface CreateAzureOpenAICredentialDTO {
4896
6268
  | 'westus3';
4897
6269
  /** @example ["gpt-4-0125-preview","gpt-4-0613"] */
4898
6270
  models:
6271
+ | 'gpt-4o-2024-11-20'
4899
6272
  | 'gpt-4o-2024-08-06'
4900
6273
  | 'gpt-4o-mini-2024-07-18'
4901
6274
  | 'gpt-4o-2024-05-13'
@@ -5578,6 +6951,28 @@ export interface CreateXAiCredentialDTO {
5578
6951
  name?: string;
5579
6952
  }
5580
6953
 
6954
+ export interface CreateGoogleCalendarOAuth2ClientCredentialDTO {
6955
+ provider: 'google.calendar.oauth2-client';
6956
+ /**
6957
+ * This is the name of credential. This is just for your reference.
6958
+ * @minLength 1
6959
+ * @maxLength 40
6960
+ */
6961
+ name?: string;
6962
+ }
6963
+
6964
+ export interface CreateGoogleCalendarOAuth2AuthorizationCredentialDTO {
6965
+ provider: 'google.calendar.oauth2-authorization';
6966
+ /** The authorization ID for the OAuth2 authorization */
6967
+ authorizationId: string;
6968
+ /**
6969
+ * This is the name of credential. This is just for your reference.
6970
+ * @minLength 1
6971
+ * @maxLength 40
6972
+ */
6973
+ name?: string;
6974
+ }
6975
+
5581
6976
  export interface TransferAssistantHookAction {
5582
6977
  /** This is the type of action - must be "transfer" */
5583
6978
  type: 'transfer';
@@ -5594,7 +6989,7 @@ export interface GoogleVoicemailDetectionPlan {
5594
6989
  * @default 15
5595
6990
  * @min 5
5596
6991
  * @max 60
5597
- * @default 15
6992
+ * @default 25
5598
6993
  */
5599
6994
  voicemailExpectedDurationSeconds: number;
5600
6995
  }
@@ -5608,7 +7003,7 @@ export interface OpenAIVoicemailDetectionPlan {
5608
7003
  * @default 15
5609
7004
  * @min 5
5610
7005
  * @max 60
5611
- * @default 15
7006
+ * @default 25
5612
7007
  */
5613
7008
  voicemailExpectedDurationSeconds: number;
5614
7009
  }
@@ -5698,12 +7093,14 @@ export interface TwilioVoicemailDetectionPlan {
5698
7093
 
5699
7094
  export interface CompliancePlan {
5700
7095
  /**
5701
- * 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.
7096
+ * When this is enabled, no logs, recordings, or transcriptions will be stored.
7097
+ * At the end of the call, you will still receive an end-of-call-report message to store on your server. Defaults to false.
5702
7098
  * @example {"hipaaEnabled":false}
5703
7099
  */
5704
7100
  hipaaEnabled?: boolean;
5705
7101
  /**
5706
- * When this is enabled, the user will be restricted to use PCI-compliant providers, and no logs or transcripts are stored. At the end of the call, you will receive an end-of-call-report message to store on your server. Defaults to false.
7102
+ * When this is enabled, the user will be restricted to use PCI-compliant providers, and no logs or transcripts are stored.
7103
+ * At the end of the call, you will receive an end-of-call-report message to store on your server. Defaults to false.
5707
7104
  * @example {"pciEnabled":false}
5708
7105
  */
5709
7106
  pciEnabled?: boolean;
@@ -5759,6 +7156,13 @@ export interface StructuredDataPlan {
5759
7156
  timeoutSeconds?: number;
5760
7157
  }
5761
7158
 
7159
+ export interface StructuredDataMultiPlan {
7160
+ /** This is the key of the structured data plan in the catalog. */
7161
+ key: string;
7162
+ /** This is an individual structured data plan in the catalog. */
7163
+ plan: StructuredDataPlan;
7164
+ }
7165
+
5762
7166
  export interface SuccessEvaluationPlan {
5763
7167
  /**
5764
7168
  * This enforces the rubric of the evaluation. The output is stored in `call.analysis.successEvaluation`.
@@ -5836,6 +7240,8 @@ export interface AnalysisPlan {
5836
7240
  summaryPlan?: SummaryPlan;
5837
7241
  /** This is the plan for generating the structured data from the call. This outputs to `call.analysis.structuredData`. */
5838
7242
  structuredDataPlan?: StructuredDataPlan;
7243
+ /** This is an array of structured data plan catalogs. Each entry includes a `key` and a `plan` for generating the structured data from the call. This outputs to `call.analysis.structuredDataMulti`. */
7244
+ structuredDataMultiPlan?: StructuredDataMultiPlan[];
5839
7245
  /** This is the plan for generating the success evaluation of the call. This outputs to `call.analysis.successEvaluation`. */
5840
7246
  successEvaluationPlan?: SuccessEvaluationPlan;
5841
7247
  }
@@ -5894,6 +7300,12 @@ export interface ArtifactPlan {
5894
7300
  * @example true
5895
7301
  */
5896
7302
  recordingEnabled?: boolean;
7303
+ /**
7304
+ * This determines the format of the recording. Defaults to `wav;l16`.
7305
+ *
7306
+ * @default 'wav;l16'
7307
+ */
7308
+ recordingFormat?: 'wav;l16' | 'mp3';
5897
7309
  /**
5898
7310
  * This determines whether the video is recorded during the call. Defaults to false. Only relevant for `webCall` type.
5899
7311
  *
@@ -6105,6 +7517,34 @@ export interface BothCustomEndpointingRule {
6105
7517
  timeoutSeconds: number;
6106
7518
  }
6107
7519
 
7520
+ export interface VapiSmartEndpointingPlan {
7521
+ /**
7522
+ * This is the provider for the smart endpointing plan.
7523
+ * @example "vapi"
7524
+ */
7525
+ provider: 'vapi' | 'livekit';
7526
+ }
7527
+
7528
+ export interface LivekitSmartEndpointingPlan {
7529
+ /**
7530
+ * This is the provider for the smart endpointing plan.
7531
+ * @example "livekit"
7532
+ */
7533
+ provider: 'vapi' | 'livekit';
7534
+ /**
7535
+ * This expression describes how long the bot will wait to start speaking based on the likelihood that the user has reached an endpoint.
7536
+ *
7537
+ * This is a millisecond valued function. It maps probabilities (real numbers on [0,1]) to seconds that the user should wait ([0, \infty]). Any negative values that are returned are set to zero (the bot can't start talking in the past).
7538
+ *
7539
+ * A probability of zero represents very high confidence that the caller has stopped speaking, and would like the bot to speak to them. A probability of one represents very high confidence that the caller is still speaking.
7540
+ *
7541
+ * Under the hood, this is parsed into a mathjs expression. Whatever you use to write your expression needs to be valid with respect to mathjs
7542
+ *
7543
+ * @default "200 + 8000 * x"
7544
+ */
7545
+ waitFunction?: string;
7546
+ }
7547
+
6108
7548
  export interface TranscriptionEndpointingPlan {
6109
7549
  /**
6110
7550
  * The minimum number of seconds to wait after transcription ending with punctuation before sending a request to the model. Defaults to 0.1.
@@ -6161,19 +7601,17 @@ export interface StartSpeakingPlan {
6161
7601
  */
6162
7602
  waitSeconds?: number;
6163
7603
  /**
6164
- * This determines if a customer speech is considered done (endpointing) using a Vapi custom-trained model on customer's speech. This is good for middle-of-thought detection. Alternatively, you can use LiveKit's smart endpointing model (it only supports English, though)
6165
- *
6166
- * Once an endpoint is triggered, the request is sent to `assistant.model`.
6167
- *
6168
- * Usage:
6169
- * - If your conversations are long-form and you want assistant to wait smartly even if customer pauses for a bit to think, you can use this instead.
6170
- *
6171
- * This overrides `transcriptionEndpointingPlan`.
6172
- *
6173
- * @default false
7604
+ * @deprecated
6174
7605
  * @example false
6175
7606
  */
6176
- smartEndpointingEnabled?: 'true' | 'false' | 'livekit';
7607
+ smartEndpointingEnabled?: object;
7608
+ /**
7609
+ * This is the plan for smart endpointing. Pick between Vapi smart endpointing or LiveKit smart endpointing (or nothing). We strongly recommend using livekit endpointing when working in English. LiveKit endpointing is not supported in other languages, yet.
7610
+ *
7611
+ * If this is set, it will override and take precedence over `transcriptionEndpointingPlan`.
7612
+ * This plan will still be overridden by any matching `customEndpointingRules`.
7613
+ */
7614
+ smartEndpointingPlan?: VapiSmartEndpointingPlan | LivekitSmartEndpointingPlan;
6177
7615
  /**
6178
7616
  * These are the custom endpointing rules to set an endpointing timeout based on a regex on the customer's speech or the assistant's last message.
6179
7617
  *
@@ -6182,10 +7620,15 @@ export interface StartSpeakingPlan {
6182
7620
  * - If you have questions where the customer may pause to look up information like "what's my account number?", you can set a longer timeout.
6183
7621
  * - If you want to wait longer while customer is enumerating a list of numbers, you can set a longer timeout.
6184
7622
  *
6185
- * These override `transcriptionEndpointingPlan` and `smartEndpointingEnabled` when a rule is matched.
7623
+ * These rules have the highest precedence and will override both `smartEndpointingPlan` and `transcriptionEndpointingPlan` when a rule is matched.
6186
7624
  *
6187
7625
  * The rules are evaluated in order and the first one that matches will be used.
6188
7626
  *
7627
+ * Order of precedence for endpointing:
7628
+ * 1. customEndpointingRules (if any match)
7629
+ * 2. smartEndpointingPlan (if set)
7630
+ * 3. transcriptionEndpointingPlan
7631
+ *
6189
7632
  * @default []
6190
7633
  */
6191
7634
  customEndpointingRules?: (
@@ -6197,6 +7640,9 @@ export interface StartSpeakingPlan {
6197
7640
  * This determines how a customer speech is considered done (endpointing) using the transcription of customer's speech.
6198
7641
  *
6199
7642
  * Once an endpoint is triggered, the request is sent to `assistant.model`.
7643
+ *
7644
+ * Note: This plan is only used if `smartEndpointingPlan` is not set. If both are provided, `smartEndpointingPlan` takes precedence.
7645
+ * This plan will also be overridden by any matching `customEndpointingRules`.
6200
7646
  */
6201
7647
  transcriptionEndpointingPlan?: TranscriptionEndpointingPlan;
6202
7648
  }
@@ -6350,7 +7796,9 @@ export interface CreateAssistantDTO {
6350
7796
  | ElevenLabsTranscriber
6351
7797
  | GladiaTranscriber
6352
7798
  | SpeechmaticsTranscriber
6353
- | TalkscriberTranscriber;
7799
+ | TalkscriberTranscriber
7800
+ | GoogleTranscriber
7801
+ | OpenAITranscriber;
6354
7802
  /** These are the options for the assistant's LLM. */
6355
7803
  model?:
6356
7804
  | AnyscaleModel
@@ -6380,7 +7828,6 @@ export interface CreateAssistantDTO {
6380
7828
  | ElevenLabsVoice
6381
7829
  | HumeVoice
6382
7830
  | LMNTVoice
6383
- | NeetsVoice
6384
7831
  | NeuphonicVoice
6385
7832
  | OpenAIVoice
6386
7833
  | PlayHTVoice
@@ -6395,6 +7842,8 @@ export interface CreateAssistantDTO {
6395
7842
  * @example "Hello! How can I help you today?"
6396
7843
  */
6397
7844
  firstMessage?: string;
7845
+ /** @default false */
7846
+ firstMessageInterruptionsEnabled?: boolean;
6398
7847
  /**
6399
7848
  * This is the mode for the first message. Default is 'assistant-speaks-first'.
6400
7849
  *
@@ -6481,9 +7930,10 @@ export interface CreateAssistantDTO {
6481
7930
  maxDurationSeconds?: number;
6482
7931
  /**
6483
7932
  * This is the background sound in the call. Default for phone calls is 'office' and default for web calls is 'off'.
6484
- * @example "office"
7933
+ * You can also provide a custom sound by providing a URL to an audio file.
7934
+ * @maxLength 1000
6485
7935
  */
6486
- backgroundSound?: 'off' | 'office';
7936
+ backgroundSound?: 'off' | 'office' | string;
6487
7937
  /**
6488
7938
  * This enables filtering of noise and background speech while the user is talking.
6489
7939
  *
@@ -6554,6 +8004,8 @@ export interface CreateAssistantDTO {
6554
8004
  | CreateVonageCredentialDTO
6555
8005
  | CreateWebhookCredentialDTO
6556
8006
  | CreateXAiCredentialDTO
8007
+ | CreateGoogleCalendarOAuth2ClientCredentialDTO
8008
+ | CreateGoogleCalendarOAuth2AuthorizationCredentialDTO
6557
8009
  )[];
6558
8010
  /**
6559
8011
  * This is the name of the assistant.
@@ -6652,7 +8104,9 @@ export interface AssistantOverrides {
6652
8104
  | ElevenLabsTranscriber
6653
8105
  | GladiaTranscriber
6654
8106
  | SpeechmaticsTranscriber
6655
- | TalkscriberTranscriber;
8107
+ | TalkscriberTranscriber
8108
+ | GoogleTranscriber
8109
+ | OpenAITranscriber;
6656
8110
  /** These are the options for the assistant's LLM. */
6657
8111
  model?:
6658
8112
  | AnyscaleModel
@@ -6682,7 +8136,6 @@ export interface AssistantOverrides {
6682
8136
  | ElevenLabsVoice
6683
8137
  | HumeVoice
6684
8138
  | LMNTVoice
6685
- | NeetsVoice
6686
8139
  | NeuphonicVoice
6687
8140
  | OpenAIVoice
6688
8141
  | PlayHTVoice
@@ -6697,6 +8150,8 @@ export interface AssistantOverrides {
6697
8150
  * @example "Hello! How can I help you today?"
6698
8151
  */
6699
8152
  firstMessage?: string;
8153
+ /** @default false */
8154
+ firstMessageInterruptionsEnabled?: boolean;
6700
8155
  /**
6701
8156
  * This is the mode for the first message. Default is 'assistant-speaks-first'.
6702
8157
  *
@@ -6783,9 +8238,10 @@ export interface AssistantOverrides {
6783
8238
  maxDurationSeconds?: number;
6784
8239
  /**
6785
8240
  * This is the background sound in the call. Default for phone calls is 'office' and default for web calls is 'off'.
6786
- * @example "office"
8241
+ * You can also provide a custom sound by providing a URL to an audio file.
8242
+ * @maxLength 1000
6787
8243
  */
6788
- backgroundSound?: 'off' | 'office';
8244
+ backgroundSound?: 'off' | 'office' | string;
6789
8245
  /**
6790
8246
  * This enables filtering of noise and background speech while the user is talking.
6791
8247
  *
@@ -6856,6 +8312,8 @@ export interface AssistantOverrides {
6856
8312
  | CreateVonageCredentialDTO
6857
8313
  | CreateWebhookCredentialDTO
6858
8314
  | CreateXAiCredentialDTO
8315
+ | CreateGoogleCalendarOAuth2ClientCredentialDTO
8316
+ | CreateGoogleCalendarOAuth2AuthorizationCredentialDTO
6859
8317
  )[];
6860
8318
  /**
6861
8319
  * These are values that will be used to replace the template variables in the assistant messages and other text-based fields.
@@ -7162,6 +8620,8 @@ export interface Analysis {
7162
8620
  summary?: string;
7163
8621
  /** This is the structured data extracted from the call. Customize by setting `assistant.analysisPlan.structuredDataPrompt` and/or `assistant.analysisPlan.structuredDataSchema`. */
7164
8622
  structuredData?: object;
8623
+ /** This is the structured data catalog of the call. Customize by setting `assistant.analysisPlan.structuredDataMultiPlan`. */
8624
+ structuredDataMulti?: object[];
7165
8625
  /** This is the evaluation of the call. Customize by setting `assistant.analysisPlan.successEvaluationPrompt` and/or `assistant.analysisPlan.successEvaluationRubric`. */
7166
8626
  successEvaluation?: string;
7167
8627
  }
@@ -7266,10 +8726,10 @@ export interface Call {
7266
8726
  | 'pipeline-error-lmnt-voice-failed'
7267
8727
  | 'pipeline-error-azure-voice-failed'
7268
8728
  | 'pipeline-error-rime-ai-voice-failed'
7269
- | 'pipeline-error-neets-voice-failed'
7270
8729
  | 'pipeline-error-smallest-ai-voice-failed'
7271
8730
  | 'pipeline-error-neuphonic-voice-failed'
7272
8731
  | 'pipeline-error-hume-voice-failed'
8732
+ | 'pipeline-error-sesame-voice-failed'
7273
8733
  | 'pipeline-error-deepgram-transcriber-failed'
7274
8734
  | 'pipeline-error-gladia-transcriber-failed'
7275
8735
  | 'pipeline-error-speechmatics-transcriber-failed'
@@ -7448,6 +8908,16 @@ export interface Call {
7448
8908
  | 'pipeline-error-deepgram-returning-502-network-error'
7449
8909
  | 'pipeline-error-deepgram-returning-502-bad-gateway-ehostunreach'
7450
8910
  | 'pipeline-error-google-transcriber-failed'
8911
+ | 'pipeline-error-openai-transcriber-failed'
8912
+ | 'call.start.error-get-org'
8913
+ | 'call.start.error-get-subscription'
8914
+ | 'call.start.error-get-assistant'
8915
+ | 'call.start.error-get-phone-number'
8916
+ | 'call.start.error-get-customer'
8917
+ | 'call.start.error-get-resources-validation'
8918
+ | 'call.start.error-vapi-number-international'
8919
+ | 'call.start.error-vapi-number-outbound-daily-limit'
8920
+ | 'call.start.error-get-transport'
7451
8921
  | 'silence-timed-out'
7452
8922
  | 'sip-gateway-failed-to-connect-call'
7453
8923
  | 'twilio-failed-to-connect-call'
@@ -7625,7 +9095,7 @@ export interface ChatCompletionMessageMetadata {
7625
9095
  nodeTrace?: string[];
7626
9096
  }
7627
9097
 
7628
- export interface ChatCompletionMessage {
9098
+ export interface ChatCompletionMessageWorkflows {
7629
9099
  role: object;
7630
9100
  content: string | null;
7631
9101
  metadata?: ChatCompletionMessageMetadata;
@@ -7741,7 +9211,7 @@ export interface CreateWorkflowDTO {
7741
9211
  }
7742
9212
 
7743
9213
  export interface ChatCompletionsDTO {
7744
- messages: ChatCompletionMessage[];
9214
+ messages: ChatCompletionMessageWorkflows[];
7745
9215
  workflowId?: string;
7746
9216
  workflow?: CreateWorkflowDTO;
7747
9217
  }
@@ -7756,7 +9226,9 @@ export interface Assistant {
7756
9226
  | ElevenLabsTranscriber
7757
9227
  | GladiaTranscriber
7758
9228
  | SpeechmaticsTranscriber
7759
- | TalkscriberTranscriber;
9229
+ | TalkscriberTranscriber
9230
+ | GoogleTranscriber
9231
+ | OpenAITranscriber;
7760
9232
  /** These are the options for the assistant's LLM. */
7761
9233
  model?:
7762
9234
  | AnyscaleModel
@@ -7786,7 +9258,6 @@ export interface Assistant {
7786
9258
  | ElevenLabsVoice
7787
9259
  | HumeVoice
7788
9260
  | LMNTVoice
7789
- | NeetsVoice
7790
9261
  | NeuphonicVoice
7791
9262
  | OpenAIVoice
7792
9263
  | PlayHTVoice
@@ -7801,6 +9272,8 @@ export interface Assistant {
7801
9272
  * @example "Hello! How can I help you today?"
7802
9273
  */
7803
9274
  firstMessage?: string;
9275
+ /** @default false */
9276
+ firstMessageInterruptionsEnabled?: boolean;
7804
9277
  /**
7805
9278
  * This is the mode for the first message. Default is 'assistant-speaks-first'.
7806
9279
  *
@@ -7887,9 +9360,10 @@ export interface Assistant {
7887
9360
  maxDurationSeconds?: number;
7888
9361
  /**
7889
9362
  * This is the background sound in the call. Default for phone calls is 'office' and default for web calls is 'off'.
7890
- * @example "office"
9363
+ * You can also provide a custom sound by providing a URL to an audio file.
9364
+ * @maxLength 1000
7891
9365
  */
7892
- backgroundSound?: 'off' | 'office';
9366
+ backgroundSound?: 'off' | 'office' | string;
7893
9367
  /**
7894
9368
  * This enables filtering of noise and background speech while the user is talking.
7895
9369
  *
@@ -7960,6 +9434,8 @@ export interface Assistant {
7960
9434
  | CreateVonageCredentialDTO
7961
9435
  | CreateWebhookCredentialDTO
7962
9436
  | CreateXAiCredentialDTO
9437
+ | CreateGoogleCalendarOAuth2ClientCredentialDTO
9438
+ | CreateGoogleCalendarOAuth2AuthorizationCredentialDTO
7963
9439
  )[];
7964
9440
  /**
7965
9441
  * This is the name of the assistant.
@@ -8077,7 +9553,9 @@ export interface UpdateAssistantDTO {
8077
9553
  | ElevenLabsTranscriber
8078
9554
  | GladiaTranscriber
8079
9555
  | SpeechmaticsTranscriber
8080
- | TalkscriberTranscriber;
9556
+ | TalkscriberTranscriber
9557
+ | GoogleTranscriber
9558
+ | OpenAITranscriber;
8081
9559
  /** These are the options for the assistant's LLM. */
8082
9560
  model?:
8083
9561
  | AnyscaleModel
@@ -8107,7 +9585,6 @@ export interface UpdateAssistantDTO {
8107
9585
  | ElevenLabsVoice
8108
9586
  | HumeVoice
8109
9587
  | LMNTVoice
8110
- | NeetsVoice
8111
9588
  | NeuphonicVoice
8112
9589
  | OpenAIVoice
8113
9590
  | PlayHTVoice
@@ -8122,6 +9599,8 @@ export interface UpdateAssistantDTO {
8122
9599
  * @example "Hello! How can I help you today?"
8123
9600
  */
8124
9601
  firstMessage?: string;
9602
+ /** @default false */
9603
+ firstMessageInterruptionsEnabled?: boolean;
8125
9604
  /**
8126
9605
  * This is the mode for the first message. Default is 'assistant-speaks-first'.
8127
9606
  *
@@ -8208,9 +9687,10 @@ export interface UpdateAssistantDTO {
8208
9687
  maxDurationSeconds?: number;
8209
9688
  /**
8210
9689
  * This is the background sound in the call. Default for phone calls is 'office' and default for web calls is 'off'.
8211
- * @example "office"
9690
+ * You can also provide a custom sound by providing a URL to an audio file.
9691
+ * @maxLength 1000
8212
9692
  */
8213
- backgroundSound?: 'off' | 'office';
9693
+ backgroundSound?: 'off' | 'office' | string;
8214
9694
  /**
8215
9695
  * This enables filtering of noise and background speech while the user is talking.
8216
9696
  *
@@ -8281,6 +9761,8 @@ export interface UpdateAssistantDTO {
8281
9761
  | CreateVonageCredentialDTO
8282
9762
  | CreateWebhookCredentialDTO
8283
9763
  | CreateXAiCredentialDTO
9764
+ | CreateGoogleCalendarOAuth2ClientCredentialDTO
9765
+ | CreateGoogleCalendarOAuth2AuthorizationCredentialDTO
8284
9766
  )[];
8285
9767
  /**
8286
9768
  * This is the name of the assistant.
@@ -9940,6 +11422,110 @@ export interface QueryTool {
9940
11422
  server?: Server;
9941
11423
  }
9942
11424
 
11425
+ export interface GoogleCalendarCreateEventTool {
11426
+ /**
11427
+ * This determines if the tool is async.
11428
+ *
11429
+ * 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.
11430
+ *
11431
+ * 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.
11432
+ *
11433
+ * Defaults to synchronous (`false`).
11434
+ * @example false
11435
+ */
11436
+ async?: boolean;
11437
+ /**
11438
+ * These are the messages that will be spoken to the user as the tool is running.
11439
+ *
11440
+ * 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.
11441
+ */
11442
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
11443
+ /** The type of tool. "google.calendar.event.create" for Google Calendar tool. */
11444
+ type: 'google.calendar.event.create';
11445
+ /** This is the unique identifier for the tool. */
11446
+ id: string;
11447
+ /** This is the unique identifier for the organization that this tool belongs to. */
11448
+ orgId: string;
11449
+ /**
11450
+ * This is the ISO 8601 date-time string of when the tool was created.
11451
+ * @format date-time
11452
+ */
11453
+ createdAt: string;
11454
+ /**
11455
+ * This is the ISO 8601 date-time string of when the tool was last updated.
11456
+ * @format date-time
11457
+ */
11458
+ updatedAt: string;
11459
+ /**
11460
+ * This is the function definition of the tool.
11461
+ *
11462
+ * For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.
11463
+ *
11464
+ * An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
11465
+ */
11466
+ function?: OpenAIFunction;
11467
+ /**
11468
+ * This is the server that will be hit when this tool is requested by the model.
11469
+ *
11470
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
11471
+ *
11472
+ * 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.
11473
+ */
11474
+ server?: Server;
11475
+ }
11476
+
11477
+ export interface GoogleSheetsRowAppendTool {
11478
+ /**
11479
+ * This determines if the tool is async.
11480
+ *
11481
+ * 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.
11482
+ *
11483
+ * 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.
11484
+ *
11485
+ * Defaults to synchronous (`false`).
11486
+ * @example false
11487
+ */
11488
+ async?: boolean;
11489
+ /**
11490
+ * These are the messages that will be spoken to the user as the tool is running.
11491
+ *
11492
+ * 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.
11493
+ */
11494
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
11495
+ /** The type of tool. "google.sheets.row.append" for Google Sheets tool. */
11496
+ type: 'google.sheets.row.append';
11497
+ /** This is the unique identifier for the tool. */
11498
+ id: string;
11499
+ /** This is the unique identifier for the organization that this tool belongs to. */
11500
+ orgId: string;
11501
+ /**
11502
+ * This is the ISO 8601 date-time string of when the tool was created.
11503
+ * @format date-time
11504
+ */
11505
+ createdAt: string;
11506
+ /**
11507
+ * This is the ISO 8601 date-time string of when the tool was last updated.
11508
+ * @format date-time
11509
+ */
11510
+ updatedAt: string;
11511
+ /**
11512
+ * This is the function definition of the tool.
11513
+ *
11514
+ * For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.
11515
+ *
11516
+ * An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
11517
+ */
11518
+ function?: OpenAIFunction;
11519
+ /**
11520
+ * This is the server that will be hit when this tool is requested by the model.
11521
+ *
11522
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
11523
+ *
11524
+ * 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.
11525
+ */
11526
+ server?: Server;
11527
+ }
11528
+
9943
11529
  export interface CreateOutputToolDTO {
9944
11530
  /**
9945
11531
  * This determines if the tool is async.
@@ -9957,9 +11543,105 @@ export interface CreateOutputToolDTO {
9957
11543
  *
9958
11544
  * 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.
9959
11545
  */
9960
- messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
9961
- /** The type of tool. "output" for Output tool. */
9962
- type: 'output';
11546
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
11547
+ /** The type of tool. "output" for Output tool. */
11548
+ type: 'output';
11549
+ /**
11550
+ * This is the function definition of the tool.
11551
+ *
11552
+ * For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.
11553
+ *
11554
+ * An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
11555
+ */
11556
+ function?: OpenAIFunction;
11557
+ /**
11558
+ * This is the server that will be hit when this tool is requested by the model.
11559
+ *
11560
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
11561
+ *
11562
+ * 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.
11563
+ */
11564
+ server?: Server;
11565
+ }
11566
+
11567
+ export interface CreateBashToolDTO {
11568
+ /**
11569
+ * This determines if the tool is async.
11570
+ *
11571
+ * 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.
11572
+ *
11573
+ * 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.
11574
+ *
11575
+ * Defaults to synchronous (`false`).
11576
+ * @example false
11577
+ */
11578
+ async?: boolean;
11579
+ /**
11580
+ * These are the messages that will be spoken to the user as the tool is running.
11581
+ *
11582
+ * 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.
11583
+ */
11584
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
11585
+ /** The type of tool. "bash" for Bash tool. */
11586
+ type: 'bash';
11587
+ /** The sub type of tool. */
11588
+ subType: 'bash_20241022';
11589
+ /**
11590
+ * The name of the tool, fixed to 'bash'
11591
+ * @default "bash"
11592
+ */
11593
+ name: 'bash';
11594
+ /**
11595
+ * This is the function definition of the tool.
11596
+ *
11597
+ * For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.
11598
+ *
11599
+ * An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
11600
+ */
11601
+ function?: OpenAIFunction;
11602
+ /**
11603
+ * This is the server that will be hit when this tool is requested by the model.
11604
+ *
11605
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
11606
+ *
11607
+ * 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.
11608
+ */
11609
+ server?: Server;
11610
+ }
11611
+
11612
+ export interface CreateComputerToolDTO {
11613
+ /**
11614
+ * This determines if the tool is async.
11615
+ *
11616
+ * 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.
11617
+ *
11618
+ * 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.
11619
+ *
11620
+ * Defaults to synchronous (`false`).
11621
+ * @example false
11622
+ */
11623
+ async?: boolean;
11624
+ /**
11625
+ * These are the messages that will be spoken to the user as the tool is running.
11626
+ *
11627
+ * 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.
11628
+ */
11629
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
11630
+ /** The type of tool. "computer" for Computer tool. */
11631
+ type: 'computer';
11632
+ /** The sub type of tool. */
11633
+ subType: 'computer_20241022';
11634
+ /**
11635
+ * The name of the tool, fixed to 'computer'
11636
+ * @default "computer"
11637
+ */
11638
+ name: 'computer';
11639
+ /** The display width in pixels */
11640
+ displayWidthPx: number;
11641
+ /** The display height in pixels */
11642
+ displayHeightPx: number;
11643
+ /** Optional display number */
11644
+ displayNumber?: number;
9963
11645
  /**
9964
11646
  * This is the function definition of the tool.
9965
11647
  *
@@ -9978,7 +11660,7 @@ export interface CreateOutputToolDTO {
9978
11660
  server?: Server;
9979
11661
  }
9980
11662
 
9981
- export interface CreateBashToolDTO {
11663
+ export interface CreateTextEditorToolDTO {
9982
11664
  /**
9983
11665
  * This determines if the tool is async.
9984
11666
  *
@@ -9996,15 +11678,15 @@ export interface CreateBashToolDTO {
9996
11678
  * 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.
9997
11679
  */
9998
11680
  messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
9999
- /** The type of tool. "bash" for Bash tool. */
10000
- type: 'bash';
11681
+ /** The type of tool. "textEditor" for Text Editor tool. */
11682
+ type: 'textEditor';
10001
11683
  /** The sub type of tool. */
10002
- subType: 'bash_20241022';
11684
+ subType: 'text_editor_20241022';
10003
11685
  /**
10004
- * The name of the tool, fixed to 'bash'
10005
- * @default "bash"
11686
+ * The name of the tool, fixed to 'str_replace_editor'
11687
+ * @default "str_replace_editor"
10006
11688
  */
10007
- name: 'bash';
11689
+ name: 'str_replace_editor';
10008
11690
  /**
10009
11691
  * This is the function definition of the tool.
10010
11692
  *
@@ -10023,7 +11705,7 @@ export interface CreateBashToolDTO {
10023
11705
  server?: Server;
10024
11706
  }
10025
11707
 
10026
- export interface CreateComputerToolDTO {
11708
+ export interface CreateQueryToolDTO {
10027
11709
  /**
10028
11710
  * This determines if the tool is async.
10029
11711
  *
@@ -10041,21 +11723,10 @@ export interface CreateComputerToolDTO {
10041
11723
  * 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.
10042
11724
  */
10043
11725
  messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
10044
- /** The type of tool. "computer" for Computer tool. */
10045
- type: 'computer';
10046
- /** The sub type of tool. */
10047
- subType: 'computer_20241022';
10048
- /**
10049
- * The name of the tool, fixed to 'computer'
10050
- * @default "computer"
10051
- */
10052
- name: 'computer';
10053
- /** The display width in pixels */
10054
- displayWidthPx: number;
10055
- /** The display height in pixels */
10056
- displayHeightPx: number;
10057
- /** Optional display number */
10058
- displayNumber?: number;
11726
+ /** The type of tool. "query" for Query tool. */
11727
+ type: 'query';
11728
+ /** The knowledge bases to query */
11729
+ knowledgeBases?: KnowledgeBase[];
10059
11730
  /**
10060
11731
  * This is the function definition of the tool.
10061
11732
  *
@@ -10074,7 +11745,7 @@ export interface CreateComputerToolDTO {
10074
11745
  server?: Server;
10075
11746
  }
10076
11747
 
10077
- export interface CreateTextEditorToolDTO {
11748
+ export interface CreateGoogleCalendarCreateEventToolDTO {
10078
11749
  /**
10079
11750
  * This determines if the tool is async.
10080
11751
  *
@@ -10092,15 +11763,8 @@ export interface CreateTextEditorToolDTO {
10092
11763
  * 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.
10093
11764
  */
10094
11765
  messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
10095
- /** The type of tool. "textEditor" for Text Editor tool. */
10096
- type: 'textEditor';
10097
- /** The sub type of tool. */
10098
- subType: 'text_editor_20241022';
10099
- /**
10100
- * The name of the tool, fixed to 'str_replace_editor'
10101
- * @default "str_replace_editor"
10102
- */
10103
- name: 'str_replace_editor';
11766
+ /** The type of tool. "google.calendar.event.create" for Google Calendar tool. */
11767
+ type: 'google.calendar.event.create';
10104
11768
  /**
10105
11769
  * This is the function definition of the tool.
10106
11770
  *
@@ -10119,7 +11783,7 @@ export interface CreateTextEditorToolDTO {
10119
11783
  server?: Server;
10120
11784
  }
10121
11785
 
10122
- export interface CreateQueryToolDTO {
11786
+ export interface CreateGoogleSheetsRowAppendToolDTO {
10123
11787
  /**
10124
11788
  * This determines if the tool is async.
10125
11789
  *
@@ -10137,10 +11801,8 @@ export interface CreateQueryToolDTO {
10137
11801
  * 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.
10138
11802
  */
10139
11803
  messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
10140
- /** The type of tool. "query" for Query tool. */
10141
- type: 'query';
10142
- /** The knowledge bases to query */
10143
- knowledgeBases?: KnowledgeBase[];
11804
+ /** The type of tool. "google.sheets.row.append" for Google Sheets tool. */
11805
+ type: 'google.sheets.row.append';
10144
11806
  /**
10145
11807
  * This is the function definition of the tool.
10146
11808
  *
@@ -10593,6 +12255,78 @@ export interface UpdateQueryToolDTO {
10593
12255
  server?: Server;
10594
12256
  }
10595
12257
 
12258
+ export interface UpdateGoogleCalendarCreateEventToolDTO {
12259
+ /**
12260
+ * This determines if the tool is async.
12261
+ *
12262
+ * 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.
12263
+ *
12264
+ * 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.
12265
+ *
12266
+ * Defaults to synchronous (`false`).
12267
+ * @example false
12268
+ */
12269
+ async?: boolean;
12270
+ /**
12271
+ * These are the messages that will be spoken to the user as the tool is running.
12272
+ *
12273
+ * 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.
12274
+ */
12275
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
12276
+ /**
12277
+ * This is the function definition of the tool.
12278
+ *
12279
+ * For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.
12280
+ *
12281
+ * An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
12282
+ */
12283
+ function?: OpenAIFunction;
12284
+ /**
12285
+ * This is the server that will be hit when this tool is requested by the model.
12286
+ *
12287
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
12288
+ *
12289
+ * 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.
12290
+ */
12291
+ server?: Server;
12292
+ }
12293
+
12294
+ export interface UpdateGoogleSheetsRowAppendToolDTO {
12295
+ /**
12296
+ * This determines if the tool is async.
12297
+ *
12298
+ * 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.
12299
+ *
12300
+ * 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.
12301
+ *
12302
+ * Defaults to synchronous (`false`).
12303
+ * @example false
12304
+ */
12305
+ async?: boolean;
12306
+ /**
12307
+ * These are the messages that will be spoken to the user as the tool is running.
12308
+ *
12309
+ * 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.
12310
+ */
12311
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
12312
+ /**
12313
+ * This is the function definition of the tool.
12314
+ *
12315
+ * For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.
12316
+ *
12317
+ * An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
12318
+ */
12319
+ function?: OpenAIFunction;
12320
+ /**
12321
+ * This is the server that will be hit when this tool is requested by the model.
12322
+ *
12323
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
12324
+ *
12325
+ * 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.
12326
+ */
12327
+ server?: Server;
12328
+ }
12329
+
10596
12330
  export interface CreateFileDTO {
10597
12331
  /**
10598
12332
  * This is the File you want to upload for use with the Knowledge Base.
@@ -10895,6 +12629,45 @@ export interface UpdateSquadDTO {
10895
12629
  membersOverrides?: AssistantOverrides;
10896
12630
  }
10897
12631
 
12632
+ export interface TesterPlan {
12633
+ /**
12634
+ * Pass a transient assistant to use for the test assistant.
12635
+ *
12636
+ * Make sure to write a detailed system prompt for a test assistant, and use the {{test.script}} variable to access the test script.
12637
+ */
12638
+ assistant?: CreateAssistantDTO;
12639
+ /**
12640
+ * Pass an assistant id that can be access
12641
+ *
12642
+ * Make sure to write a detailed system prompt for the test assistant, and use the {{test.script}} variable to access the test script.
12643
+ */
12644
+ assistantId?: string;
12645
+ /**
12646
+ * Add any assistant overrides to the test assistant.
12647
+ *
12648
+ * One use case is if you want to pass custom variables into the test using variableValues, that you can then access in the script
12649
+ * and rubric using {{varName}}.
12650
+ */
12651
+ assistantOverrides?: AssistantOverrides;
12652
+ }
12653
+
12654
+ export interface TestSuitePhoneNumber {
12655
+ /** This is the provider of the phone number. */
12656
+ provider: 'test-suite';
12657
+ /**
12658
+ * This is the phone number that is being tested.
12659
+ * @maxLength 50
12660
+ */
12661
+ number: string;
12662
+ }
12663
+
12664
+ export interface TargetPlan {
12665
+ /** This is the phoneNumberId that is being tested. */
12666
+ phoneNumberId?: string;
12667
+ /** This is the phone number that is being tested. Only use this if you have not imported the phone number to Vapi. */
12668
+ phoneNumber?: TestSuitePhoneNumber;
12669
+ }
12670
+
10898
12671
  export interface TestSuite {
10899
12672
  /** This is the unique identifier for the test suite. */
10900
12673
  id: string;
@@ -10915,8 +12688,19 @@ export interface TestSuite {
10915
12688
  * @maxLength 80
10916
12689
  */
10917
12690
  name?: string;
10918
- /** This is the phone number ID associated with this test suite. */
12691
+ /**
12692
+ * This is the phone number ID associated with this test suite.
12693
+ * @deprecated
12694
+ */
10919
12695
  phoneNumberId?: string;
12696
+ /**
12697
+ * Override the default tester plan by providing custom assistant configuration for the test agent.
12698
+ *
12699
+ * We recommend only using this if you are confident, as we have already set sensible defaults on the tester plan.
12700
+ */
12701
+ testerPlan?: TesterPlan;
12702
+ /** These are the configuration for the assistant / phone number that is being tested. */
12703
+ targetPlan?: TargetPlan;
10920
12704
  }
10921
12705
 
10922
12706
  export interface TestSuitesPaginatedResponse {
@@ -10930,8 +12714,19 @@ export interface CreateTestSuiteDto {
10930
12714
  * @maxLength 80
10931
12715
  */
10932
12716
  name?: string;
10933
- /** This is the phone number ID associated with this test suite. */
12717
+ /**
12718
+ * This is the phone number ID associated with this test suite.
12719
+ * @deprecated
12720
+ */
10934
12721
  phoneNumberId?: string;
12722
+ /**
12723
+ * Override the default tester plan by providing custom assistant configuration for the test agent.
12724
+ *
12725
+ * We recommend only using this if you are confident, as we have already set sensible defaults on the tester plan.
12726
+ */
12727
+ testerPlan?: TesterPlan;
12728
+ /** These are the configuration for the assistant / phone number that is being tested. */
12729
+ targetPlan?: TargetPlan;
10935
12730
  }
10936
12731
 
10937
12732
  export interface UpdateTestSuiteDto {
@@ -10940,8 +12735,19 @@ export interface UpdateTestSuiteDto {
10940
12735
  * @maxLength 80
10941
12736
  */
10942
12737
  name?: string;
10943
- /** This is the phone number ID associated with this test suite. */
12738
+ /**
12739
+ * This is the phone number ID associated with this test suite.
12740
+ * @deprecated
12741
+ */
10944
12742
  phoneNumberId?: string;
12743
+ /**
12744
+ * Override the default tester plan by providing custom assistant configuration for the test agent.
12745
+ *
12746
+ * We recommend only using this if you are confident, as we have already set sensible defaults on the tester plan.
12747
+ */
12748
+ testerPlan?: TesterPlan;
12749
+ /** These are the configuration for the assistant / phone number that is being tested. */
12750
+ targetPlan?: TargetPlan;
10945
12751
  }
10946
12752
 
10947
12753
  export interface TestSuiteTestVoice {
@@ -10986,6 +12792,48 @@ export interface TestSuiteTestVoice {
10986
12792
  numAttempts?: number;
10987
12793
  }
10988
12794
 
12795
+ export interface TestSuiteTestChat {
12796
+ /** These are the scorers used to evaluate the test. */
12797
+ scorers: TestSuiteTestScorerAI[];
12798
+ /**
12799
+ * This is the type of the test, which must be chat.
12800
+ * @maxLength 100
12801
+ */
12802
+ type: 'chat';
12803
+ /** This is the unique identifier for the test. */
12804
+ id: string;
12805
+ /** This is the unique identifier for the test suite this test belongs to. */
12806
+ testSuiteId: string;
12807
+ /** This is the unique identifier for the organization this test belongs to. */
12808
+ orgId: string;
12809
+ /**
12810
+ * This is the ISO 8601 date-time string of when the test was created.
12811
+ * @format date-time
12812
+ */
12813
+ createdAt: string;
12814
+ /**
12815
+ * This is the ISO 8601 date-time string of when the test was last updated.
12816
+ * @format date-time
12817
+ */
12818
+ updatedAt: string;
12819
+ /**
12820
+ * This is the name of the test.
12821
+ * @maxLength 80
12822
+ */
12823
+ name?: string;
12824
+ /**
12825
+ * This is the script to be used for the chat test.
12826
+ * @maxLength 10000
12827
+ */
12828
+ script: string;
12829
+ /**
12830
+ * This is the number of attempts allowed for the test.
12831
+ * @min 1
12832
+ * @max 10
12833
+ */
12834
+ numAttempts?: number;
12835
+ }
12836
+
10989
12837
  export interface CreateTestSuiteTestVoiceDto {
10990
12838
  /** These are the scorers used to evaluate the test. */
10991
12839
  scorers: TestSuiteTestScorerAI[];
@@ -11009,19 +12857,76 @@ export interface CreateTestSuiteTestVoiceDto {
11009
12857
  * This is the name of the test.
11010
12858
  * @maxLength 80
11011
12859
  */
11012
- name?: string;
12860
+ name?: string;
12861
+ }
12862
+
12863
+ export interface CreateTestSuiteTestChatDto {
12864
+ /** These are the scorers used to evaluate the test. */
12865
+ scorers: TestSuiteTestScorerAI[];
12866
+ /**
12867
+ * This is the type of the test, which must be chat.
12868
+ * @maxLength 100
12869
+ */
12870
+ type: 'chat';
12871
+ /**
12872
+ * This is the script to be used for the chat test.
12873
+ * @maxLength 10000
12874
+ */
12875
+ script: string;
12876
+ /**
12877
+ * This is the number of attempts allowed for the test.
12878
+ * @min 1
12879
+ * @max 10
12880
+ */
12881
+ numAttempts?: number;
12882
+ /**
12883
+ * This is the name of the test.
12884
+ * @maxLength 80
12885
+ */
12886
+ name?: string;
12887
+ }
12888
+
12889
+ export interface UpdateTestSuiteTestVoiceDto {
12890
+ /** These are the scorers used to evaluate the test. */
12891
+ scorers?: TestSuiteTestScorerAI[];
12892
+ /**
12893
+ * This is the type of the test, which must be voice.
12894
+ * @maxLength 100
12895
+ */
12896
+ type?: 'voice';
12897
+ /**
12898
+ * This is the name of the test.
12899
+ * @maxLength 80
12900
+ */
12901
+ name?: string;
12902
+ /**
12903
+ * This is the script to be used for the voice test.
12904
+ * @maxLength 10000
12905
+ */
12906
+ script?: string;
12907
+ /**
12908
+ * This is the number of attempts allowed for the test.
12909
+ * @min 1
12910
+ * @max 10
12911
+ */
12912
+ numAttempts?: number;
11013
12913
  }
11014
12914
 
11015
- export interface UpdateTestSuiteTestVoiceDto {
12915
+ export interface UpdateTestSuiteTestChatDto {
11016
12916
  /** These are the scorers used to evaluate the test. */
11017
12917
  scorers?: TestSuiteTestScorerAI[];
12918
+ /**
12919
+ * This is the type of the test, which must be chat.
12920
+ * @maxLength 100
12921
+ */
12922
+ type?: 'chat';
11018
12923
  /**
11019
12924
  * This is the name of the test.
11020
12925
  * @maxLength 80
11021
12926
  */
11022
12927
  name?: string;
11023
12928
  /**
11024
- * This is the script to be used for the voice test.
12929
+ * This is the script to be used for the chat test.
11025
12930
  * @maxLength 10000
11026
12931
  */
11027
12932
  script?: string;
@@ -11048,7 +12953,7 @@ export interface TestSuiteTestScorerAI {
11048
12953
 
11049
12954
  export interface TestSuiteTestsPaginatedResponse {
11050
12955
  /** A list of test suite tests. */
11051
- results: TestSuiteTestVoice[];
12956
+ results: (TestSuiteTestVoice | TestSuiteTestChat)[];
11052
12957
  /** Metadata about the pagination. */
11053
12958
  metadata: PaginationMeta;
11054
12959
  }
@@ -11403,6 +13308,15 @@ export interface CreateOrgDTO {
11403
13308
  * @max 10
11404
13309
  */
11405
13310
  concurrencyLimit?: number;
13311
+ /**
13312
+ * Stores the information about the compliance plan enforced at the organization level. Currently pciEnabled is supported through this field.
13313
+ * When this is enabled, any logs, recordings, or transcriptions will be shipped to the customer endpoints if provided else lost.
13314
+ * At the end of the call, you will receive an end-of-call-report message to store on your server, if webhook is provided.
13315
+ * Defaults to false.
13316
+ * When PCI is enabled, only PCI-compliant Providers will be available for LLM, Voice and transcribers.
13317
+ * This is due to the compliance requirements of PCI. Other providers may not meet these requirements.
13318
+ */
13319
+ compliancePlan?: CompliancePlan;
11406
13320
  }
11407
13321
 
11408
13322
  export interface AutoReloadPlan {
@@ -11547,6 +13461,13 @@ export interface Subscription {
11547
13461
  couponUsageLeft?: string;
11548
13462
  /** This is the invoice plan for the subscription. */
11549
13463
  invoicePlan?: InvoicePlan;
13464
+ /**
13465
+ * This is the PCI enabled flag for the subscription. It determines whether orgs under this
13466
+ * subscription have the option to enable PCI compliance.
13467
+ */
13468
+ pciEnabled?: boolean;
13469
+ /** This is the ID for the Common Paper agreement outlining the PCI contract. */
13470
+ pciCommonPaperAgreementId?: string;
11550
13471
  }
11551
13472
 
11552
13473
  export interface OrgPlan {
@@ -11622,6 +13543,15 @@ export interface Org {
11622
13543
  * @max 10
11623
13544
  */
11624
13545
  concurrencyLimit?: number;
13546
+ /**
13547
+ * Stores the information about the compliance plan enforced at the organization level. Currently pciEnabled is supported through this field.
13548
+ * When this is enabled, any logs, recordings, or transcriptions will be shipped to the customer endpoints if provided else lost.
13549
+ * At the end of the call, you will receive an end-of-call-report message to store on your server, if webhook is provided.
13550
+ * Defaults to false.
13551
+ * When PCI is enabled, only PCI-compliant Providers will be available for LLM, Voice and transcribers.
13552
+ * This is due to the compliance requirements of PCI. Other providers may not meet these requirements.
13553
+ */
13554
+ compliancePlan?: CompliancePlan;
11625
13555
  }
11626
13556
 
11627
13557
  export interface UpdateOrgDTO {
@@ -11663,6 +13593,15 @@ export interface UpdateOrgDTO {
11663
13593
  * @max 10
11664
13594
  */
11665
13595
  concurrencyLimit?: number;
13596
+ /**
13597
+ * Stores the information about the compliance plan enforced at the organization level. Currently pciEnabled is supported through this field.
13598
+ * When this is enabled, any logs, recordings, or transcriptions will be shipped to the customer endpoints if provided else lost.
13599
+ * At the end of the call, you will receive an end-of-call-report message to store on your server, if webhook is provided.
13600
+ * Defaults to false.
13601
+ * When PCI is enabled, only PCI-compliant Providers will be available for LLM, Voice and transcribers.
13602
+ * This is due to the compliance requirements of PCI. Other providers may not meet these requirements.
13603
+ */
13604
+ compliancePlan?: CompliancePlan;
11666
13605
  }
11667
13606
 
11668
13607
  export interface User {
@@ -11936,6 +13875,7 @@ export interface AzureOpenAICredential {
11936
13875
  | 'westus3';
11937
13876
  /** @example ["gpt-4-0125-preview","gpt-4-0613"] */
11938
13877
  models:
13878
+ | 'gpt-4o-2024-11-20'
11939
13879
  | 'gpt-4o-2024-08-06'
11940
13880
  | 'gpt-4o-mini-2024-07-18'
11941
13881
  | 'gpt-4o-2024-05-13'
@@ -13078,6 +15018,56 @@ export interface XAiCredential {
13078
15018
  name?: string;
13079
15019
  }
13080
15020
 
15021
+ export interface GoogleCalendarOAuth2ClientCredential {
15022
+ provider: 'google.calendar.oauth2-client';
15023
+ /** This is the unique identifier for the credential. */
15024
+ id: string;
15025
+ /** This is the unique identifier for the org that this credential belongs to. */
15026
+ orgId: string;
15027
+ /**
15028
+ * This is the ISO 8601 date-time string of when the credential was created.
15029
+ * @format date-time
15030
+ */
15031
+ createdAt: string;
15032
+ /**
15033
+ * This is the ISO 8601 date-time string of when the assistant was last updated.
15034
+ * @format date-time
15035
+ */
15036
+ updatedAt: string;
15037
+ /**
15038
+ * This is the name of credential. This is just for your reference.
15039
+ * @minLength 1
15040
+ * @maxLength 40
15041
+ */
15042
+ name?: string;
15043
+ }
15044
+
15045
+ export interface GoogleCalendarOAuth2AuthorizationCredential {
15046
+ provider: 'google.calendar.oauth2-authorization';
15047
+ /** The authorization ID for the OAuth2 authorization */
15048
+ authorizationId: string;
15049
+ /** This is the unique identifier for the credential. */
15050
+ id: string;
15051
+ /** This is the unique identifier for the org that this credential belongs to. */
15052
+ orgId: string;
15053
+ /**
15054
+ * This is the ISO 8601 date-time string of when the credential was created.
15055
+ * @format date-time
15056
+ */
15057
+ createdAt: string;
15058
+ /**
15059
+ * This is the ISO 8601 date-time string of when the assistant was last updated.
15060
+ * @format date-time
15061
+ */
15062
+ updatedAt: string;
15063
+ /**
15064
+ * This is the name of credential. This is just for your reference.
15065
+ * @minLength 1
15066
+ * @maxLength 40
15067
+ */
15068
+ name?: string;
15069
+ }
15070
+
13081
15071
  export interface CreateCerebrasCredentialDTO {
13082
15072
  provider: 'cerebras';
13083
15073
  /**
@@ -13293,6 +15283,7 @@ export interface UpdateAzureOpenAICredentialDTO {
13293
15283
  | 'westus3';
13294
15284
  /** @example ["gpt-4-0125-preview","gpt-4-0613"] */
13295
15285
  models?:
15286
+ | 'gpt-4o-2024-11-20'
13296
15287
  | 'gpt-4o-2024-08-06'
13297
15288
  | 'gpt-4o-mini-2024-07-18'
13298
15289
  | 'gpt-4o-2024-05-13'
@@ -13818,6 +15809,67 @@ export interface UpdateXAiCredentialDTO {
13818
15809
  name?: string;
13819
15810
  }
13820
15811
 
15812
+ export interface UpdateGoogleCalendarOAuth2ClientCredentialDTO {
15813
+ /**
15814
+ * This is the name of credential. This is just for your reference.
15815
+ * @minLength 1
15816
+ * @maxLength 40
15817
+ */
15818
+ name?: string;
15819
+ }
15820
+
15821
+ export interface UpdateGoogleCalendarOAuth2AuthorizationCredentialDTO {
15822
+ /** The authorization ID for the OAuth2 authorization */
15823
+ authorizationId?: string;
15824
+ /**
15825
+ * This is the name of credential. This is just for your reference.
15826
+ * @minLength 1
15827
+ * @maxLength 40
15828
+ */
15829
+ name?: string;
15830
+ }
15831
+
15832
+ export interface CredentialSessionResponse {
15833
+ sessionToken: string;
15834
+ }
15835
+
15836
+ export interface CredentialEndUser {
15837
+ endUserId: string;
15838
+ organizationId: string;
15839
+ }
15840
+
15841
+ export interface CredentialSessionError {
15842
+ type: string;
15843
+ description: string;
15844
+ }
15845
+
15846
+ export interface CredentialWebhookDTO {
15847
+ type: 'auth' | 'sync' | 'forward';
15848
+ operation: 'creation' | 'override' | 'refresh';
15849
+ from: string;
15850
+ connectionId: string;
15851
+ authMode: 'OAUTH2' | 'API_KEY' | 'BASIC';
15852
+ providerConfigKey: string;
15853
+ provider: string;
15854
+ environment: string;
15855
+ success: boolean;
15856
+ endUser: CredentialEndUser;
15857
+ error?: CredentialSessionError;
15858
+ }
15859
+
15860
+ export interface CredentialActionRequest {
15861
+ action_name: string;
15862
+ input: object;
15863
+ }
15864
+
15865
+ export interface CredentialSessionDTO {
15866
+ /** The type of credential to generate a session for. Only Nango user-facing providers are supported. */
15867
+ provider:
15868
+ | 'google.calendar.oauth2-client'
15869
+ | 'google.calendar.oauth2-authorization'
15870
+ | 'google.sheets.oauth2-authorization';
15871
+ }
15872
+
13821
15873
  export interface ToolTemplateSetup {
13822
15874
  title: string;
13823
15875
  description?: string;
@@ -13858,6 +15910,22 @@ export interface FunctionToolProviderDetails {
13858
15910
  type: 'function';
13859
15911
  }
13860
15912
 
15913
+ export interface GoogleCalendarCreateEventToolProviderDetails {
15914
+ /** This is the Template URL or the Snapshot URL corresponding to the Template. */
15915
+ templateUrl?: string;
15916
+ setupInstructions?: ToolTemplateSetup[];
15917
+ /** The type of tool. "google.calendar.event.create" for Google Calendar tool. */
15918
+ type: 'google.calendar.event.create';
15919
+ }
15920
+
15921
+ export interface GoogleSheetsRowAppendToolProviderDetails {
15922
+ /** This is the Template URL or the Snapshot URL corresponding to the Template. */
15923
+ templateUrl?: string;
15924
+ setupInstructions?: ToolTemplateSetup[];
15925
+ /** The type of tool. "google.sheets.row.append" for Google Sheets tool. */
15926
+ type: 'google.sheets.row.append';
15927
+ }
15928
+
13861
15929
  export interface ToolTemplateMetadata {
13862
15930
  collectionType?: string;
13863
15931
  collectionId?: string;
@@ -13872,8 +15940,15 @@ export interface CreateToolTemplateDTO {
13872
15940
  | CreateFunctionToolDTO
13873
15941
  | CreateGhlToolDTO
13874
15942
  | CreateMakeToolDTO
13875
- | CreateTransferCallToolDTO;
13876
- providerDetails?: MakeToolProviderDetails | GhlToolProviderDetails | FunctionToolProviderDetails;
15943
+ | CreateTransferCallToolDTO
15944
+ | CreateGoogleCalendarCreateEventToolDTO
15945
+ | CreateGoogleSheetsRowAppendToolDTO;
15946
+ providerDetails?:
15947
+ | MakeToolProviderDetails
15948
+ | GhlToolProviderDetails
15949
+ | FunctionToolProviderDetails
15950
+ | GoogleCalendarCreateEventToolProviderDetails
15951
+ | GoogleSheetsRowAppendToolProviderDetails;
13877
15952
  metadata?: ToolTemplateMetadata;
13878
15953
  /** @default "private" */
13879
15954
  visibility?: 'public' | 'private';
@@ -13895,8 +15970,15 @@ export interface Template {
13895
15970
  | CreateFunctionToolDTO
13896
15971
  | CreateGhlToolDTO
13897
15972
  | CreateMakeToolDTO
13898
- | CreateTransferCallToolDTO;
13899
- providerDetails?: MakeToolProviderDetails | GhlToolProviderDetails | FunctionToolProviderDetails;
15973
+ | CreateTransferCallToolDTO
15974
+ | CreateGoogleCalendarCreateEventToolDTO
15975
+ | CreateGoogleSheetsRowAppendToolDTO;
15976
+ providerDetails?:
15977
+ | MakeToolProviderDetails
15978
+ | GhlToolProviderDetails
15979
+ | FunctionToolProviderDetails
15980
+ | GoogleCalendarCreateEventToolProviderDetails
15981
+ | GoogleSheetsRowAppendToolProviderDetails;
13900
15982
  metadata?: ToolTemplateMetadata;
13901
15983
  /** @default "private" */
13902
15984
  visibility?: 'public' | 'private';
@@ -13932,8 +16014,15 @@ export interface UpdateToolTemplateDTO {
13932
16014
  | CreateFunctionToolDTO
13933
16015
  | CreateGhlToolDTO
13934
16016
  | CreateMakeToolDTO
13935
- | CreateTransferCallToolDTO;
13936
- providerDetails?: MakeToolProviderDetails | GhlToolProviderDetails | FunctionToolProviderDetails;
16017
+ | CreateTransferCallToolDTO
16018
+ | CreateGoogleCalendarCreateEventToolDTO
16019
+ | CreateGoogleSheetsRowAppendToolDTO;
16020
+ providerDetails?:
16021
+ | MakeToolProviderDetails
16022
+ | GhlToolProviderDetails
16023
+ | FunctionToolProviderDetails
16024
+ | GoogleCalendarCreateEventToolProviderDetails
16025
+ | GoogleSheetsRowAppendToolProviderDetails;
13937
16026
  metadata?: ToolTemplateMetadata;
13938
16027
  /** @default "private" */
13939
16028
  visibility?: 'public' | 'private';
@@ -13958,13 +16047,13 @@ export interface VoiceLibrary {
13958
16047
  | 'deepgram'
13959
16048
  | 'hume'
13960
16049
  | 'lmnt'
13961
- | 'neets'
13962
16050
  | 'neuphonic'
13963
16051
  | 'openai'
13964
16052
  | 'playht'
13965
16053
  | 'rime-ai'
13966
16054
  | 'smallest-ai'
13967
- | 'tavus';
16055
+ | 'tavus'
16056
+ | 'sesame';
13968
16057
  /** The ID of the voice provided by the provider. */
13969
16058
  providerId?: string;
13970
16059
  /** The unique slug of the voice. */
@@ -14020,13 +16109,13 @@ export interface SyncVoiceLibraryDTO {
14020
16109
  | 'deepgram'
14021
16110
  | 'hume'
14022
16111
  | 'lmnt'
14023
- | 'neets'
14024
16112
  | 'neuphonic'
14025
16113
  | 'openai'
14026
16114
  | 'playht'
14027
16115
  | 'rime-ai'
14028
16116
  | 'smallest-ai'
14029
- | 'tavus';
16117
+ | 'tavus'
16118
+ | 'sesame';
14030
16119
  }
14031
16120
 
14032
16121
  export interface VoiceLibraryVoiceResponse {
@@ -14147,6 +16236,7 @@ export interface ClientMessageToolCalls {
14147
16236
  | BashToolWithToolCall
14148
16237
  | ComputerToolWithToolCall
14149
16238
  | TextEditorToolWithToolCall
16239
+ | GoogleCalendarCreateEventToolWithToolCall
14150
16240
  )[];
14151
16241
  /** This is the list of tool calls that the model is requesting. */
14152
16242
  toolCallList: ToolCall[];
@@ -14375,10 +16465,10 @@ export interface ServerMessageEndOfCallReport {
14375
16465
  | 'pipeline-error-lmnt-voice-failed'
14376
16466
  | 'pipeline-error-azure-voice-failed'
14377
16467
  | 'pipeline-error-rime-ai-voice-failed'
14378
- | 'pipeline-error-neets-voice-failed'
14379
16468
  | 'pipeline-error-smallest-ai-voice-failed'
14380
16469
  | 'pipeline-error-neuphonic-voice-failed'
14381
16470
  | 'pipeline-error-hume-voice-failed'
16471
+ | 'pipeline-error-sesame-voice-failed'
14382
16472
  | 'pipeline-error-deepgram-transcriber-failed'
14383
16473
  | 'pipeline-error-gladia-transcriber-failed'
14384
16474
  | 'pipeline-error-speechmatics-transcriber-failed'
@@ -14557,6 +16647,16 @@ export interface ServerMessageEndOfCallReport {
14557
16647
  | 'pipeline-error-deepgram-returning-502-network-error'
14558
16648
  | 'pipeline-error-deepgram-returning-502-bad-gateway-ehostunreach'
14559
16649
  | 'pipeline-error-google-transcriber-failed'
16650
+ | 'pipeline-error-openai-transcriber-failed'
16651
+ | 'call.start.error-get-org'
16652
+ | 'call.start.error-get-subscription'
16653
+ | 'call.start.error-get-assistant'
16654
+ | 'call.start.error-get-phone-number'
16655
+ | 'call.start.error-get-customer'
16656
+ | 'call.start.error-get-resources-validation'
16657
+ | 'call.start.error-vapi-number-international'
16658
+ | 'call.start.error-vapi-number-outbound-daily-limit'
16659
+ | 'call.start.error-get-transport'
14560
16660
  | 'silence-timed-out'
14561
16661
  | 'sip-gateway-failed-to-connect-call'
14562
16662
  | 'twilio-failed-to-connect-call'
@@ -14962,10 +17062,10 @@ export interface ServerMessageStatusUpdate {
14962
17062
  | 'pipeline-error-lmnt-voice-failed'
14963
17063
  | 'pipeline-error-azure-voice-failed'
14964
17064
  | 'pipeline-error-rime-ai-voice-failed'
14965
- | 'pipeline-error-neets-voice-failed'
14966
17065
  | 'pipeline-error-smallest-ai-voice-failed'
14967
17066
  | 'pipeline-error-neuphonic-voice-failed'
14968
17067
  | 'pipeline-error-hume-voice-failed'
17068
+ | 'pipeline-error-sesame-voice-failed'
14969
17069
  | 'pipeline-error-deepgram-transcriber-failed'
14970
17070
  | 'pipeline-error-gladia-transcriber-failed'
14971
17071
  | 'pipeline-error-speechmatics-transcriber-failed'
@@ -15144,6 +17244,16 @@ export interface ServerMessageStatusUpdate {
15144
17244
  | 'pipeline-error-deepgram-returning-502-network-error'
15145
17245
  | 'pipeline-error-deepgram-returning-502-bad-gateway-ehostunreach'
15146
17246
  | 'pipeline-error-google-transcriber-failed'
17247
+ | 'pipeline-error-openai-transcriber-failed'
17248
+ | 'call.start.error-get-org'
17249
+ | 'call.start.error-get-subscription'
17250
+ | 'call.start.error-get-assistant'
17251
+ | 'call.start.error-get-phone-number'
17252
+ | 'call.start.error-get-customer'
17253
+ | 'call.start.error-get-resources-validation'
17254
+ | 'call.start.error-vapi-number-international'
17255
+ | 'call.start.error-vapi-number-outbound-daily-limit'
17256
+ | 'call.start.error-get-transport'
15147
17257
  | 'silence-timed-out'
15148
17258
  | 'sip-gateway-failed-to-connect-call'
15149
17259
  | 'twilio-failed-to-connect-call'
@@ -15227,6 +17337,7 @@ export interface ServerMessageToolCalls {
15227
17337
  | BashToolWithToolCall
15228
17338
  | ComputerToolWithToolCall
15229
17339
  | TextEditorToolWithToolCall
17340
+ | GoogleCalendarCreateEventToolWithToolCall
15230
17341
  )[];
15231
17342
  /** This is the ISO-8601 formatted timestamp of when the message was sent. */
15232
17343
  timestamp?: string;
@@ -15896,6 +18007,8 @@ export interface ClientInboundMessageSay {
15896
18007
  content?: string;
15897
18008
  /** This is the flag to end call after content is spoken. */
15898
18009
  endCallAfterSpoken?: boolean;
18010
+ /** This is the flag for whether the message is interruptible. */
18011
+ interruptionsEnabled?: boolean;
15899
18012
  }
15900
18013
 
15901
18014
  export interface ClientInboundMessageEndCall {
@@ -16376,6 +18489,84 @@ export interface TextEditorToolWithToolCall {
16376
18489
  server?: Server;
16377
18490
  }
16378
18491
 
18492
+ export interface GoogleCalendarCreateEventToolWithToolCall {
18493
+ /**
18494
+ * This determines if the tool is async.
18495
+ *
18496
+ * 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.
18497
+ *
18498
+ * 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.
18499
+ *
18500
+ * Defaults to synchronous (`false`).
18501
+ * @example false
18502
+ */
18503
+ async?: boolean;
18504
+ /**
18505
+ * These are the messages that will be spoken to the user as the tool is running.
18506
+ *
18507
+ * 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.
18508
+ */
18509
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
18510
+ /** The type of tool. "google.calendar.event.create" for Google Calendar tool. */
18511
+ type: 'google.calendar.event.create';
18512
+ toolCall: ToolCall;
18513
+ /**
18514
+ * This is the function definition of the tool.
18515
+ *
18516
+ * For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.
18517
+ *
18518
+ * An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
18519
+ */
18520
+ function?: OpenAIFunction;
18521
+ /**
18522
+ * This is the server that will be hit when this tool is requested by the model.
18523
+ *
18524
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
18525
+ *
18526
+ * 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.
18527
+ */
18528
+ server?: Server;
18529
+ }
18530
+
18531
+ export interface GoogleSheetsRowAppendToolWithToolCall {
18532
+ /**
18533
+ * This determines if the tool is async.
18534
+ *
18535
+ * 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.
18536
+ *
18537
+ * 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.
18538
+ *
18539
+ * Defaults to synchronous (`false`).
18540
+ * @example false
18541
+ */
18542
+ async?: boolean;
18543
+ /**
18544
+ * These are the messages that will be spoken to the user as the tool is running.
18545
+ *
18546
+ * 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.
18547
+ */
18548
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
18549
+ /** The type of tool. "google.sheets.row.append" for Google Sheets tool. */
18550
+ type: 'google.sheets.row.append';
18551
+ toolCall: ToolCall;
18552
+ /**
18553
+ * This is the function definition of the tool.
18554
+ *
18555
+ * For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.
18556
+ *
18557
+ * An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
18558
+ */
18559
+ function?: OpenAIFunction;
18560
+ /**
18561
+ * This is the server that will be hit when this tool is requested by the model.
18562
+ *
18563
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
18564
+ *
18565
+ * 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.
18566
+ */
18567
+ server?: Server;
18568
+ }
18569
+
16379
18570
  export type QueryParamsType = Record<string | number, any>;
16380
18571
  export type ResponseFormat = keyof Omit<Body, 'body' | 'bodyUsed'>;
16381
18572
 
@@ -17755,7 +19946,13 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
17755
19946
  } & CreateTextEditorToolDTO)
17756
19947
  | ({
17757
19948
  type: 'query';
17758
- } & CreateQueryToolDTO),
19949
+ } & CreateQueryToolDTO)
19950
+ | ({
19951
+ type: 'google.calendar.event.create';
19952
+ } & CreateGoogleCalendarCreateEventToolDTO)
19953
+ | ({
19954
+ type: 'google.sheets.row.append';
19955
+ } & CreateGoogleSheetsRowAppendToolDTO),
17759
19956
  params: RequestParams = {},
17760
19957
  ) =>
17761
19958
  this.request<
@@ -17791,7 +19988,13 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
17791
19988
  } & TextEditorTool)
17792
19989
  | ({
17793
19990
  type: 'query';
17794
- } & QueryTool),
19991
+ } & QueryTool)
19992
+ | ({
19993
+ type: 'google.calendar.event.create';
19994
+ } & GoogleCalendarCreateEventTool)
19995
+ | ({
19996
+ type: 'google.sheets.row.append';
19997
+ } & GoogleSheetsRowAppendTool),
17795
19998
  any
17796
19999
  >({
17797
20000
  path: `/tool`,
@@ -17898,6 +20101,12 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
17898
20101
  | ({
17899
20102
  type: 'query';
17900
20103
  } & QueryTool)
20104
+ | ({
20105
+ type: 'google.calendar.event.create';
20106
+ } & GoogleCalendarCreateEventTool)
20107
+ | ({
20108
+ type: 'google.sheets.row.append';
20109
+ } & GoogleSheetsRowAppendTool)
17901
20110
  )[],
17902
20111
  any
17903
20112
  >({
@@ -17952,7 +20161,13 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
17952
20161
  } & TextEditorTool)
17953
20162
  | ({
17954
20163
  type: 'query';
17955
- } & QueryTool),
20164
+ } & QueryTool)
20165
+ | ({
20166
+ type: 'google.calendar.event.create';
20167
+ } & GoogleCalendarCreateEventTool)
20168
+ | ({
20169
+ type: 'google.sheets.row.append';
20170
+ } & GoogleSheetsRowAppendTool),
17956
20171
  any
17957
20172
  >({
17958
20173
  path: `/tool/${id}`,
@@ -18006,7 +20221,13 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
18006
20221
  } & UpdateTextEditorToolDTO)
18007
20222
  | ({
18008
20223
  type: 'query';
18009
- } & UpdateQueryToolDTO),
20224
+ } & UpdateQueryToolDTO)
20225
+ | ({
20226
+ type: 'google.calendar.event.create';
20227
+ } & UpdateGoogleCalendarCreateEventToolDTO)
20228
+ | ({
20229
+ type: 'google.sheets.row.append';
20230
+ } & UpdateGoogleSheetsRowAppendToolDTO),
18010
20231
  params: RequestParams = {},
18011
20232
  ) =>
18012
20233
  this.request<
@@ -18042,7 +20263,13 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
18042
20263
  } & TextEditorTool)
18043
20264
  | ({
18044
20265
  type: 'query';
18045
- } & QueryTool),
20266
+ } & QueryTool)
20267
+ | ({
20268
+ type: 'google.calendar.event.create';
20269
+ } & GoogleCalendarCreateEventTool)
20270
+ | ({
20271
+ type: 'google.sheets.row.append';
20272
+ } & GoogleSheetsRowAppendTool),
18046
20273
  any
18047
20274
  >({
18048
20275
  path: `/tool/${id}`,
@@ -18097,7 +20324,13 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
18097
20324
  } & TextEditorTool)
18098
20325
  | ({
18099
20326
  type: 'query';
18100
- } & QueryTool),
20327
+ } & QueryTool)
20328
+ | ({
20329
+ type: 'google.calendar.event.create';
20330
+ } & GoogleCalendarCreateEventTool)
20331
+ | ({
20332
+ type: 'google.sheets.row.append';
20333
+ } & GoogleSheetsRowAppendTool),
18101
20334
  any
18102
20335
  >({
18103
20336
  path: `/tool/${id}`,
@@ -18912,16 +21145,23 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
18912
21145
  */
18913
21146
  testSuiteTestControllerCreate: (
18914
21147
  testSuiteId: string,
18915
- data: {
18916
- type: 'voice';
18917
- } & CreateTestSuiteTestVoiceDto,
21148
+ data:
21149
+ | ({
21150
+ type: 'voice';
21151
+ } & CreateTestSuiteTestVoiceDto)
21152
+ | ({
21153
+ type: 'chat';
21154
+ } & CreateTestSuiteTestChatDto),
18918
21155
  params: RequestParams = {},
18919
21156
  ) =>
18920
21157
  this.request<
18921
- TestSuiteTestVoice,
18922
- {
18923
- type: 'voice';
18924
- } & TestSuiteTestVoice
21158
+ | ({
21159
+ type: 'voice';
21160
+ } & TestSuiteTestVoice)
21161
+ | ({
21162
+ type: 'chat';
21163
+ } & TestSuiteTestChat),
21164
+ any
18925
21165
  >({
18926
21166
  path: `/test-suite/${testSuiteId}/test`,
18927
21167
  method: 'POST',
@@ -18943,10 +21183,13 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
18943
21183
  */
18944
21184
  testSuiteTestControllerFindOne: (testSuiteId: string, id: string, params: RequestParams = {}) =>
18945
21185
  this.request<
18946
- TestSuiteTestVoice,
18947
- {
18948
- type: 'voice';
18949
- } & TestSuiteTestVoice
21186
+ | ({
21187
+ type: 'voice';
21188
+ } & TestSuiteTestVoice)
21189
+ | ({
21190
+ type: 'chat';
21191
+ } & TestSuiteTestChat),
21192
+ any
18950
21193
  >({
18951
21194
  path: `/test-suite/${testSuiteId}/test/${id}`,
18952
21195
  method: 'GET',
@@ -18967,16 +21210,23 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
18967
21210
  testSuiteTestControllerUpdate: (
18968
21211
  testSuiteId: string,
18969
21212
  id: string,
18970
- data: {
18971
- type: 'voice';
18972
- } & UpdateTestSuiteTestVoiceDto,
21213
+ data:
21214
+ | ({
21215
+ type: 'voice';
21216
+ } & UpdateTestSuiteTestVoiceDto)
21217
+ | ({
21218
+ type: 'chat';
21219
+ } & UpdateTestSuiteTestChatDto),
18973
21220
  params: RequestParams = {},
18974
21221
  ) =>
18975
21222
  this.request<
18976
- TestSuiteTestVoice,
18977
- {
18978
- type: 'voice';
18979
- } & TestSuiteTestVoice
21223
+ | ({
21224
+ type: 'voice';
21225
+ } & TestSuiteTestVoice)
21226
+ | ({
21227
+ type: 'chat';
21228
+ } & TestSuiteTestChat),
21229
+ any
18980
21230
  >({
18981
21231
  path: `/test-suite/${testSuiteId}/test/${id}`,
18982
21232
  method: 'PATCH',
@@ -18998,9 +21248,12 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
18998
21248
  */
18999
21249
  testSuiteTestControllerRemove: (testSuiteId: string, id: string, params: RequestParams = {}) =>
19000
21250
  this.request<
19001
- {
19002
- type: 'voice';
19003
- } & TestSuiteTestVoice,
21251
+ | ({
21252
+ type: 'voice';
21253
+ } & TestSuiteTestVoice)
21254
+ | ({
21255
+ type: 'chat';
21256
+ } & TestSuiteTestChat),
19004
21257
  any
19005
21258
  >({
19006
21259
  path: `/test-suite/${testSuiteId}/test/${id}`,
@@ -19848,7 +22101,9 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
19848
22101
  | CreateTwilioCredentialDTO
19849
22102
  | CreateVonageCredentialDTO
19850
22103
  | CreateWebhookCredentialDTO
19851
- | CreateXAiCredentialDTO,
22104
+ | CreateXAiCredentialDTO
22105
+ | CreateGoogleCalendarOAuth2ClientCredentialDTO
22106
+ | CreateGoogleCalendarOAuth2AuthorizationCredentialDTO,
19852
22107
  params: RequestParams = {},
19853
22108
  ) =>
19854
22109
  this.request<
@@ -19894,7 +22149,9 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
19894
22149
  | TwilioCredential
19895
22150
  | VonageCredential
19896
22151
  | WebhookCredential
19897
- | XAiCredential,
22152
+ | XAiCredential
22153
+ | GoogleCalendarOAuth2ClientCredential
22154
+ | GoogleCalendarOAuth2AuthorizationCredential,
19898
22155
  any
19899
22156
  >({
19900
22157
  path: `/credential`,
@@ -20011,6 +22268,8 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
20011
22268
  | VonageCredential
20012
22269
  | WebhookCredential
20013
22270
  | XAiCredential
22271
+ | GoogleCalendarOAuth2ClientCredential
22272
+ | GoogleCalendarOAuth2AuthorizationCredential
20014
22273
  )[],
20015
22274
  any
20016
22275
  >({
@@ -20075,7 +22334,9 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
20075
22334
  | TwilioCredential
20076
22335
  | VonageCredential
20077
22336
  | WebhookCredential
20078
- | XAiCredential,
22337
+ | XAiCredential
22338
+ | GoogleCalendarOAuth2ClientCredential
22339
+ | GoogleCalendarOAuth2AuthorizationCredential,
20079
22340
  any
20080
22341
  >({
20081
22342
  path: `/credential/${id}`,
@@ -20139,7 +22400,9 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
20139
22400
  | UpdateTwilioCredentialDTO
20140
22401
  | UpdateVonageCredentialDTO
20141
22402
  | UpdateWebhookCredentialDTO
20142
- | UpdateXAiCredentialDTO,
22403
+ | UpdateXAiCredentialDTO
22404
+ | UpdateGoogleCalendarOAuth2ClientCredentialDTO
22405
+ | UpdateGoogleCalendarOAuth2AuthorizationCredentialDTO,
20143
22406
  params: RequestParams = {},
20144
22407
  ) =>
20145
22408
  this.request<
@@ -20185,7 +22448,9 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
20185
22448
  | TwilioCredential
20186
22449
  | VonageCredential
20187
22450
  | WebhookCredential
20188
- | XAiCredential,
22451
+ | XAiCredential
22452
+ | GoogleCalendarOAuth2ClientCredential
22453
+ | GoogleCalendarOAuth2AuthorizationCredential,
20189
22454
  any
20190
22455
  >({
20191
22456
  path: `/credential/${id}`,
@@ -20250,7 +22515,9 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
20250
22515
  | TwilioCredential
20251
22516
  | VonageCredential
20252
22517
  | WebhookCredential
20253
- | XAiCredential,
22518
+ | XAiCredential
22519
+ | GoogleCalendarOAuth2ClientCredential
22520
+ | GoogleCalendarOAuth2AuthorizationCredential,
20254
22521
  any
20255
22522
  >({
20256
22523
  path: `/credential/${id}`,
@@ -20259,6 +22526,65 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
20259
22526
  format: 'json',
20260
22527
  ...params,
20261
22528
  }),
22529
+
22530
+ /**
22531
+ * No description
22532
+ *
22533
+ * @tags Credentials
22534
+ * @name CredentialControllerGenerateSession
22535
+ * @summary Generate a credential session
22536
+ * @request POST:/credential/session
22537
+ * @secure
22538
+ */
22539
+ credentialControllerGenerateSession: (data: CredentialSessionDTO, params: RequestParams = {}) =>
22540
+ this.request<CredentialSessionResponse, any>({
22541
+ path: `/credential/session`,
22542
+ method: 'POST',
22543
+ body: data,
22544
+ secure: true,
22545
+ type: ContentType.Json,
22546
+ format: 'json',
22547
+ ...params,
22548
+ }),
22549
+
22550
+ /**
22551
+ * No description
22552
+ *
22553
+ * @tags Credentials
22554
+ * @name CredentialControllerHandleWebhook
22555
+ * @summary Handle credential webhook
22556
+ * @request POST:/credential/webhook
22557
+ */
22558
+ credentialControllerHandleWebhook: (data: CredentialWebhookDTO, params: RequestParams = {}) =>
22559
+ this.request<void, any>({
22560
+ path: `/credential/webhook`,
22561
+ method: 'POST',
22562
+ body: data,
22563
+ type: ContentType.Json,
22564
+ ...params,
22565
+ }),
22566
+
22567
+ /**
22568
+ * No description
22569
+ *
22570
+ * @tags Credentials
22571
+ * @name CredentialControllerTriggerCredentialAction
22572
+ * @summary Trigger a credential action
22573
+ * @request POST:/credential/trigger
22574
+ * @secure
22575
+ */
22576
+ credentialControllerTriggerCredentialAction: (
22577
+ data: CredentialActionRequest,
22578
+ params: RequestParams = {},
22579
+ ) =>
22580
+ this.request<void, any>({
22581
+ path: `/credential/trigger`,
22582
+ method: 'POST',
22583
+ body: data,
22584
+ secure: true,
22585
+ type: ContentType.Json,
22586
+ ...params,
22587
+ }),
20262
22588
  };
20263
22589
  template = {
20264
22590
  /**
@@ -20451,13 +22777,13 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
20451
22777
  | 'deepgram'
20452
22778
  | 'hume'
20453
22779
  | 'lmnt'
20454
- | 'neets'
20455
22780
  | 'neuphonic'
20456
22781
  | 'openai'
20457
22782
  | 'playht'
20458
22783
  | 'rime-ai'
20459
22784
  | 'smallest-ai'
20460
- | 'tavus',
22785
+ | 'tavus'
22786
+ | 'sesame',
20461
22787
  query?: {
20462
22788
  page?: number;
20463
22789
  keyword?: string;
@@ -20541,13 +22867,13 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
20541
22867
  | 'deepgram'
20542
22868
  | 'hume'
20543
22869
  | 'lmnt'
20544
- | 'neets'
20545
22870
  | 'neuphonic'
20546
22871
  | 'openai'
20547
22872
  | 'playht'
20548
22873
  | 'rime-ai'
20549
22874
  | 'smallest-ai'
20550
- | 'tavus',
22875
+ | 'tavus'
22876
+ | 'sesame',
20551
22877
  params: RequestParams = {},
20552
22878
  ) =>
20553
22879
  this.request<VoiceLibrary[], any>({
@@ -20577,13 +22903,13 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
20577
22903
  | 'deepgram'
20578
22904
  | 'hume'
20579
22905
  | 'lmnt'
20580
- | 'neets'
20581
22906
  | 'neuphonic'
20582
22907
  | 'openai'
20583
22908
  | 'playht'
20584
22909
  | 'rime-ai'
20585
22910
  | 'smallest-ai'
20586
- | 'tavus',
22911
+ | 'tavus'
22912
+ | 'sesame',
20587
22913
  params: RequestParams = {},
20588
22914
  ) =>
20589
22915
  this.request<VoiceLibrary[], any>({
@@ -20627,7 +22953,7 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
20627
22953
  * @secure
20628
22954
  */
20629
22955
  providerControllerGetWorkflows: (
20630
- provider: 'make' | 'ghl',
22956
+ provider: 'make' | 'ghl' | 'google.calendar',
20631
22957
  query?: {
20632
22958
  locationId?: string;
20633
22959
  },
@@ -20651,7 +22977,7 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
20651
22977
  * @secure
20652
22978
  */
20653
22979
  providerControllerGetWorkflowTriggerHook: (
20654
- provider: 'make' | 'ghl',
22980
+ provider: 'make' | 'ghl' | 'google.calendar',
20655
22981
  workflowId: string,
20656
22982
  params: RequestParams = {},
20657
22983
  ) =>
@@ -20671,7 +22997,10 @@ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDa
20671
22997
  * @request GET:/{provider}/locations
20672
22998
  * @secure
20673
22999
  */
20674
- providerControllerGetLocations: (provider: 'make' | 'ghl', params: RequestParams = {}) =>
23000
+ providerControllerGetLocations: (
23001
+ provider: 'make' | 'ghl' | 'google.calendar',
23002
+ params: RequestParams = {},
23003
+ ) =>
20675
23004
  this.request<SbcConfiguration, any>({
20676
23005
  path: `/${provider}/locations`,
20677
23006
  method: 'GET',