@voicelayer/sdk 0.5.0 → 0.5.1

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.
@@ -354,11 +354,11 @@ declare const ProcessSchemaDTO: z.ZodObject<{
354
354
  id: z.ZodString;
355
355
  text: z.ZodString;
356
356
  }, "strip", z.ZodTypeAny, {
357
- id: string;
358
357
  text: string;
359
- }, {
360
358
  id: string;
359
+ }, {
361
360
  text: string;
361
+ id: string;
362
362
  }>, "many">>;
363
363
  fields: z.ZodArray<z.ZodObject<{
364
364
  name: z.ZodString;
@@ -373,7 +373,7 @@ declare const ProcessSchemaDTO: z.ZodObject<{
373
373
  * doesn't extract it from their words. Absent ⇒ the caller may say it. */
374
374
  fromCaller: z.ZodOptional<z.ZodBoolean>;
375
375
  }, "strip", z.ZodTypeAny, {
376
- type: "string" | "number" | "boolean" | "string[]" | "datetime" | "email" | "phone";
376
+ type: "string" | "number" | "boolean" | "email" | "string[]" | "datetime" | "phone";
377
377
  name: string;
378
378
  required: boolean;
379
379
  ask?: string | undefined;
@@ -383,7 +383,7 @@ declare const ProcessSchemaDTO: z.ZodObject<{
383
383
  enum?: string[] | undefined;
384
384
  fromCaller?: boolean | undefined;
385
385
  }, {
386
- type: "string" | "number" | "boolean" | "string[]" | "datetime" | "email" | "phone";
386
+ type: "string" | "number" | "boolean" | "email" | "string[]" | "datetime" | "phone";
387
387
  name: string;
388
388
  required: boolean;
389
389
  ask?: string | undefined;
@@ -454,11 +454,11 @@ declare const ProcessSchemaDTO: z.ZodObject<{
454
454
  retentionDays: z.ZodOptional<z.ZodNumber>;
455
455
  piiFields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
456
456
  }, "strip", z.ZodTypeAny, {
457
- scope?: "call" | "caller" | "participant" | "account" | "platform" | undefined;
457
+ scope?: "caller" | "call" | "account" | "participant" | "platform" | undefined;
458
458
  retentionDays?: number | undefined;
459
459
  piiFields?: string[] | undefined;
460
460
  }, {
461
- scope?: "call" | "caller" | "participant" | "account" | "platform" | undefined;
461
+ scope?: "caller" | "call" | "account" | "participant" | "platform" | undefined;
462
462
  retentionDays?: number | undefined;
463
463
  piiFields?: string[] | undefined;
464
464
  }>>;
@@ -478,24 +478,24 @@ declare const ProcessSchemaDTO: z.ZodObject<{
478
478
  allowPrivateNetwork: z.ZodOptional<z.ZodBoolean>;
479
479
  }, "strip", z.ZodTypeAny, {
480
480
  name: string;
481
- url: string;
482
481
  description: string;
483
482
  input: Record<string, "string" | "number" | "boolean">;
483
+ url: string;
484
484
  method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
485
485
  auth: "none" | "connection";
486
- allowPrivateNetwork?: boolean | undefined;
487
486
  headers?: Record<string, string> | undefined;
488
487
  connectionRef?: string | undefined;
488
+ allowPrivateNetwork?: boolean | undefined;
489
489
  }, {
490
490
  name: string;
491
- url: string;
492
491
  description: string;
493
492
  input: Record<string, "string" | "number" | "boolean">;
493
+ url: string;
494
494
  method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
495
495
  auth: "none" | "connection";
496
- allowPrivateNetwork?: boolean | undefined;
497
496
  headers?: Record<string, string> | undefined;
498
497
  connectionRef?: string | undefined;
498
+ allowPrivateNetwork?: boolean | undefined;
499
499
  }>, "many">>;
500
500
  displayName: z.ZodOptional<z.ZodString>;
501
501
  speech: z.ZodOptional<z.ZodObject<{
@@ -549,7 +549,7 @@ declare const ProcessSchemaDTO: z.ZodObject<{
549
549
  entry: z.ZodArray<z.ZodString, "many">;
550
550
  nodes: z.ZodRecord<z.ZodString, z.ZodObject<{
551
551
  id: z.ZodString;
552
- type: z.ZodEnum<["start", "say", "ask", "confirm", "tool", "decision", "handoff", "end", "trigger", "gate", "playbook", "menu", "code", "set", "subflow", "llm", "rag", "memory", "speech", "classify", "router", "note"]>;
552
+ type: z.ZodEnum<["start", "say", "ask", "confirm", "tool", "email", "decision", "handoff", "end", "trigger", "gate", "playbook", "menu", "code", "set", "subflow", "llm", "rag", "memory", "speech", "classify", "router", "note"]>;
553
553
  config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
554
554
  out: z.ZodArray<z.ZodObject<{
555
555
  to: z.ZodString;
@@ -558,34 +558,34 @@ declare const ProcessSchemaDTO: z.ZodObject<{
558
558
  label: z.ZodOptional<z.ZodString>;
559
559
  }, "strip", z.ZodTypeAny, {
560
560
  to: string;
561
- condition?: string | undefined;
562
561
  sourceHandle?: string | undefined;
563
562
  label?: string | undefined;
563
+ condition?: string | undefined;
564
564
  }, {
565
565
  to: string;
566
- condition?: string | undefined;
567
566
  sourceHandle?: string | undefined;
568
567
  label?: string | undefined;
568
+ condition?: string | undefined;
569
569
  }>, "many">;
570
570
  }, "strip", z.ZodTypeAny, {
571
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
571
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
572
572
  id: string;
573
573
  config: Record<string, unknown>;
574
574
  out: {
575
575
  to: string;
576
- condition?: string | undefined;
577
576
  sourceHandle?: string | undefined;
578
577
  label?: string | undefined;
578
+ condition?: string | undefined;
579
579
  }[];
580
580
  }, {
581
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
581
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
582
582
  id: string;
583
583
  config: Record<string, unknown>;
584
584
  out: {
585
585
  to: string;
586
- condition?: string | undefined;
587
586
  sourceHandle?: string | undefined;
588
587
  label?: string | undefined;
588
+ condition?: string | undefined;
589
589
  }[];
590
590
  }>>;
591
591
  completionGate: z.ZodObject<{
@@ -612,20 +612,20 @@ declare const ProcessSchemaDTO: z.ZodObject<{
612
612
  labelOnlyEdges?: string[] | undefined;
613
613
  }>>;
614
614
  }, "strip", z.ZodTypeAny, {
615
- v: 1;
616
615
  id: string;
617
- entry: string[];
618
616
  nodes: Record<string, {
619
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
617
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
620
618
  id: string;
621
619
  config: Record<string, unknown>;
622
620
  out: {
623
621
  to: string;
624
- condition?: string | undefined;
625
622
  sourceHandle?: string | undefined;
626
623
  label?: string | undefined;
624
+ condition?: string | undefined;
627
625
  }[];
628
626
  }>;
627
+ v: 1;
628
+ entry: string[];
629
629
  completionGate: {
630
630
  requiredFields: string[];
631
631
  };
@@ -636,20 +636,20 @@ declare const ProcessSchemaDTO: z.ZodObject<{
636
636
  labelOnlyEdges?: string[] | undefined;
637
637
  } | undefined;
638
638
  }, {
639
- v: 1;
640
639
  id: string;
641
- entry: string[];
642
640
  nodes: Record<string, {
643
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
641
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
644
642
  id: string;
645
643
  config: Record<string, unknown>;
646
644
  out: {
647
645
  to: string;
648
- condition?: string | undefined;
649
646
  sourceHandle?: string | undefined;
650
647
  label?: string | undefined;
648
+ condition?: string | undefined;
651
649
  }[];
652
650
  }>;
651
+ v: 1;
652
+ entry: string[];
653
653
  completionGate: {
654
654
  requiredFields: string[];
655
655
  };
@@ -671,7 +671,7 @@ declare const ProcessSchemaDTO: z.ZodObject<{
671
671
  } | undefined;
672
672
  };
673
673
  fields: {
674
- type: "string" | "number" | "boolean" | "string[]" | "datetime" | "email" | "phone";
674
+ type: "string" | "number" | "boolean" | "email" | "string[]" | "datetime" | "phone";
675
675
  name: string;
676
676
  required: boolean;
677
677
  ask?: string | undefined;
@@ -686,7 +686,7 @@ declare const ProcessSchemaDTO: z.ZodObject<{
686
686
  routes?: Record<string, string> | undefined;
687
687
  } | undefined;
688
688
  memory?: {
689
- scope?: "call" | "caller" | "participant" | "account" | "platform" | undefined;
689
+ scope?: "caller" | "call" | "account" | "participant" | "platform" | undefined;
690
690
  retentionDays?: number | undefined;
691
691
  piiFields?: string[] | undefined;
692
692
  } | undefined;
@@ -702,8 +702,8 @@ declare const ProcessSchemaDTO: z.ZodObject<{
702
702
  } | undefined;
703
703
  } | undefined;
704
704
  prompts?: {
705
- id: string;
706
705
  text: string;
706
+ id: string;
707
707
  }[] | undefined;
708
708
  triggers?: {
709
709
  then: string;
@@ -713,31 +713,31 @@ declare const ProcessSchemaDTO: z.ZodObject<{
713
713
  }[] | undefined;
714
714
  tools?: {
715
715
  name: string;
716
- url: string;
717
716
  description: string;
718
717
  input: Record<string, "string" | "number" | "boolean">;
718
+ url: string;
719
719
  method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
720
720
  auth: "none" | "connection";
721
- allowPrivateNetwork?: boolean | undefined;
722
721
  headers?: Record<string, string> | undefined;
723
722
  connectionRef?: string | undefined;
723
+ allowPrivateNetwork?: boolean | undefined;
724
724
  }[] | undefined;
725
725
  displayName?: string | undefined;
726
726
  program?: {
727
- v: 1;
728
727
  id: string;
729
- entry: string[];
730
728
  nodes: Record<string, {
731
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
729
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
732
730
  id: string;
733
731
  config: Record<string, unknown>;
734
732
  out: {
735
733
  to: string;
736
- condition?: string | undefined;
737
734
  sourceHandle?: string | undefined;
738
735
  label?: string | undefined;
736
+ condition?: string | undefined;
739
737
  }[];
740
738
  }>;
739
+ v: 1;
740
+ entry: string[];
741
741
  completionGate: {
742
742
  requiredFields: string[];
743
743
  };
@@ -759,7 +759,7 @@ declare const ProcessSchemaDTO: z.ZodObject<{
759
759
  } | undefined;
760
760
  };
761
761
  fields: {
762
- type: "string" | "number" | "boolean" | "string[]" | "datetime" | "email" | "phone";
762
+ type: "string" | "number" | "boolean" | "email" | "string[]" | "datetime" | "phone";
763
763
  name: string;
764
764
  required: boolean;
765
765
  ask?: string | undefined;
@@ -774,7 +774,7 @@ declare const ProcessSchemaDTO: z.ZodObject<{
774
774
  routes?: Record<string, string> | undefined;
775
775
  } | undefined;
776
776
  memory?: {
777
- scope?: "call" | "caller" | "participant" | "account" | "platform" | undefined;
777
+ scope?: "caller" | "call" | "account" | "participant" | "platform" | undefined;
778
778
  retentionDays?: number | undefined;
779
779
  piiFields?: string[] | undefined;
780
780
  } | undefined;
@@ -790,8 +790,8 @@ declare const ProcessSchemaDTO: z.ZodObject<{
790
790
  } | undefined;
791
791
  } | undefined;
792
792
  prompts?: {
793
- id: string;
794
793
  text: string;
794
+ id: string;
795
795
  }[] | undefined;
796
796
  triggers?: {
797
797
  then: string;
@@ -801,31 +801,31 @@ declare const ProcessSchemaDTO: z.ZodObject<{
801
801
  }[] | undefined;
802
802
  tools?: {
803
803
  name: string;
804
- url: string;
805
804
  description: string;
806
805
  input: Record<string, "string" | "number" | "boolean">;
806
+ url: string;
807
807
  method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
808
808
  auth: "none" | "connection";
809
- allowPrivateNetwork?: boolean | undefined;
810
809
  headers?: Record<string, string> | undefined;
811
810
  connectionRef?: string | undefined;
811
+ allowPrivateNetwork?: boolean | undefined;
812
812
  }[] | undefined;
813
813
  displayName?: string | undefined;
814
814
  program?: {
815
- v: 1;
816
815
  id: string;
817
- entry: string[];
818
816
  nodes: Record<string, {
819
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
817
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
820
818
  id: string;
821
819
  config: Record<string, unknown>;
822
820
  out: {
823
821
  to: string;
824
- condition?: string | undefined;
825
822
  sourceHandle?: string | undefined;
826
823
  label?: string | undefined;
824
+ condition?: string | undefined;
827
825
  }[];
828
826
  }>;
827
+ v: 1;
828
+ entry: string[];
829
829
  completionGate: {
830
830
  requiredFields: string[];
831
831
  };
@@ -868,11 +868,11 @@ declare const AgentDTO: z.ZodObject<{
868
868
  id: z.ZodString;
869
869
  text: z.ZodString;
870
870
  }, "strip", z.ZodTypeAny, {
871
- id: string;
872
871
  text: string;
873
- }, {
874
872
  id: string;
873
+ }, {
875
874
  text: string;
875
+ id: string;
876
876
  }>, "many">>;
877
877
  fields: z.ZodArray<z.ZodObject<{
878
878
  name: z.ZodString;
@@ -887,7 +887,7 @@ declare const AgentDTO: z.ZodObject<{
887
887
  * doesn't extract it from their words. Absent ⇒ the caller may say it. */
888
888
  fromCaller: z.ZodOptional<z.ZodBoolean>;
889
889
  }, "strip", z.ZodTypeAny, {
890
- type: "string" | "number" | "boolean" | "string[]" | "datetime" | "email" | "phone";
890
+ type: "string" | "number" | "boolean" | "email" | "string[]" | "datetime" | "phone";
891
891
  name: string;
892
892
  required: boolean;
893
893
  ask?: string | undefined;
@@ -897,7 +897,7 @@ declare const AgentDTO: z.ZodObject<{
897
897
  enum?: string[] | undefined;
898
898
  fromCaller?: boolean | undefined;
899
899
  }, {
900
- type: "string" | "number" | "boolean" | "string[]" | "datetime" | "email" | "phone";
900
+ type: "string" | "number" | "boolean" | "email" | "string[]" | "datetime" | "phone";
901
901
  name: string;
902
902
  required: boolean;
903
903
  ask?: string | undefined;
@@ -968,11 +968,11 @@ declare const AgentDTO: z.ZodObject<{
968
968
  retentionDays: z.ZodOptional<z.ZodNumber>;
969
969
  piiFields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
970
970
  }, "strip", z.ZodTypeAny, {
971
- scope?: "call" | "caller" | "participant" | "account" | "platform" | undefined;
971
+ scope?: "caller" | "call" | "account" | "participant" | "platform" | undefined;
972
972
  retentionDays?: number | undefined;
973
973
  piiFields?: string[] | undefined;
974
974
  }, {
975
- scope?: "call" | "caller" | "participant" | "account" | "platform" | undefined;
975
+ scope?: "caller" | "call" | "account" | "participant" | "platform" | undefined;
976
976
  retentionDays?: number | undefined;
977
977
  piiFields?: string[] | undefined;
978
978
  }>>;
@@ -992,24 +992,24 @@ declare const AgentDTO: z.ZodObject<{
992
992
  allowPrivateNetwork: z.ZodOptional<z.ZodBoolean>;
993
993
  }, "strip", z.ZodTypeAny, {
994
994
  name: string;
995
- url: string;
996
995
  description: string;
997
996
  input: Record<string, "string" | "number" | "boolean">;
997
+ url: string;
998
998
  method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
999
999
  auth: "none" | "connection";
1000
- allowPrivateNetwork?: boolean | undefined;
1001
1000
  headers?: Record<string, string> | undefined;
1002
1001
  connectionRef?: string | undefined;
1002
+ allowPrivateNetwork?: boolean | undefined;
1003
1003
  }, {
1004
1004
  name: string;
1005
- url: string;
1006
1005
  description: string;
1007
1006
  input: Record<string, "string" | "number" | "boolean">;
1007
+ url: string;
1008
1008
  method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
1009
1009
  auth: "none" | "connection";
1010
- allowPrivateNetwork?: boolean | undefined;
1011
1010
  headers?: Record<string, string> | undefined;
1012
1011
  connectionRef?: string | undefined;
1012
+ allowPrivateNetwork?: boolean | undefined;
1013
1013
  }>, "many">>;
1014
1014
  displayName: z.ZodOptional<z.ZodString>;
1015
1015
  speech: z.ZodOptional<z.ZodObject<{
@@ -1063,7 +1063,7 @@ declare const AgentDTO: z.ZodObject<{
1063
1063
  entry: z.ZodArray<z.ZodString, "many">;
1064
1064
  nodes: z.ZodRecord<z.ZodString, z.ZodObject<{
1065
1065
  id: z.ZodString;
1066
- type: z.ZodEnum<["start", "say", "ask", "confirm", "tool", "decision", "handoff", "end", "trigger", "gate", "playbook", "menu", "code", "set", "subflow", "llm", "rag", "memory", "speech", "classify", "router", "note"]>;
1066
+ type: z.ZodEnum<["start", "say", "ask", "confirm", "tool", "email", "decision", "handoff", "end", "trigger", "gate", "playbook", "menu", "code", "set", "subflow", "llm", "rag", "memory", "speech", "classify", "router", "note"]>;
1067
1067
  config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1068
1068
  out: z.ZodArray<z.ZodObject<{
1069
1069
  to: z.ZodString;
@@ -1072,34 +1072,34 @@ declare const AgentDTO: z.ZodObject<{
1072
1072
  label: z.ZodOptional<z.ZodString>;
1073
1073
  }, "strip", z.ZodTypeAny, {
1074
1074
  to: string;
1075
- condition?: string | undefined;
1076
1075
  sourceHandle?: string | undefined;
1077
1076
  label?: string | undefined;
1077
+ condition?: string | undefined;
1078
1078
  }, {
1079
1079
  to: string;
1080
- condition?: string | undefined;
1081
1080
  sourceHandle?: string | undefined;
1082
1081
  label?: string | undefined;
1082
+ condition?: string | undefined;
1083
1083
  }>, "many">;
1084
1084
  }, "strip", z.ZodTypeAny, {
1085
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1085
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1086
1086
  id: string;
1087
1087
  config: Record<string, unknown>;
1088
1088
  out: {
1089
1089
  to: string;
1090
- condition?: string | undefined;
1091
1090
  sourceHandle?: string | undefined;
1092
1091
  label?: string | undefined;
1092
+ condition?: string | undefined;
1093
1093
  }[];
1094
1094
  }, {
1095
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1095
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1096
1096
  id: string;
1097
1097
  config: Record<string, unknown>;
1098
1098
  out: {
1099
1099
  to: string;
1100
- condition?: string | undefined;
1101
1100
  sourceHandle?: string | undefined;
1102
1101
  label?: string | undefined;
1102
+ condition?: string | undefined;
1103
1103
  }[];
1104
1104
  }>>;
1105
1105
  completionGate: z.ZodObject<{
@@ -1126,20 +1126,20 @@ declare const AgentDTO: z.ZodObject<{
1126
1126
  labelOnlyEdges?: string[] | undefined;
1127
1127
  }>>;
1128
1128
  }, "strip", z.ZodTypeAny, {
1129
- v: 1;
1130
1129
  id: string;
1131
- entry: string[];
1132
1130
  nodes: Record<string, {
1133
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1131
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1134
1132
  id: string;
1135
1133
  config: Record<string, unknown>;
1136
1134
  out: {
1137
1135
  to: string;
1138
- condition?: string | undefined;
1139
1136
  sourceHandle?: string | undefined;
1140
1137
  label?: string | undefined;
1138
+ condition?: string | undefined;
1141
1139
  }[];
1142
1140
  }>;
1141
+ v: 1;
1142
+ entry: string[];
1143
1143
  completionGate: {
1144
1144
  requiredFields: string[];
1145
1145
  };
@@ -1150,20 +1150,20 @@ declare const AgentDTO: z.ZodObject<{
1150
1150
  labelOnlyEdges?: string[] | undefined;
1151
1151
  } | undefined;
1152
1152
  }, {
1153
- v: 1;
1154
1153
  id: string;
1155
- entry: string[];
1156
1154
  nodes: Record<string, {
1157
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1155
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1158
1156
  id: string;
1159
1157
  config: Record<string, unknown>;
1160
1158
  out: {
1161
1159
  to: string;
1162
- condition?: string | undefined;
1163
1160
  sourceHandle?: string | undefined;
1164
1161
  label?: string | undefined;
1162
+ condition?: string | undefined;
1165
1163
  }[];
1166
1164
  }>;
1165
+ v: 1;
1166
+ entry: string[];
1167
1167
  completionGate: {
1168
1168
  requiredFields: string[];
1169
1169
  };
@@ -1185,7 +1185,7 @@ declare const AgentDTO: z.ZodObject<{
1185
1185
  } | undefined;
1186
1186
  };
1187
1187
  fields: {
1188
- type: "string" | "number" | "boolean" | "string[]" | "datetime" | "email" | "phone";
1188
+ type: "string" | "number" | "boolean" | "email" | "string[]" | "datetime" | "phone";
1189
1189
  name: string;
1190
1190
  required: boolean;
1191
1191
  ask?: string | undefined;
@@ -1200,7 +1200,7 @@ declare const AgentDTO: z.ZodObject<{
1200
1200
  routes?: Record<string, string> | undefined;
1201
1201
  } | undefined;
1202
1202
  memory?: {
1203
- scope?: "call" | "caller" | "participant" | "account" | "platform" | undefined;
1203
+ scope?: "caller" | "call" | "account" | "participant" | "platform" | undefined;
1204
1204
  retentionDays?: number | undefined;
1205
1205
  piiFields?: string[] | undefined;
1206
1206
  } | undefined;
@@ -1216,8 +1216,8 @@ declare const AgentDTO: z.ZodObject<{
1216
1216
  } | undefined;
1217
1217
  } | undefined;
1218
1218
  prompts?: {
1219
- id: string;
1220
1219
  text: string;
1220
+ id: string;
1221
1221
  }[] | undefined;
1222
1222
  triggers?: {
1223
1223
  then: string;
@@ -1227,31 +1227,31 @@ declare const AgentDTO: z.ZodObject<{
1227
1227
  }[] | undefined;
1228
1228
  tools?: {
1229
1229
  name: string;
1230
- url: string;
1231
1230
  description: string;
1232
1231
  input: Record<string, "string" | "number" | "boolean">;
1232
+ url: string;
1233
1233
  method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
1234
1234
  auth: "none" | "connection";
1235
- allowPrivateNetwork?: boolean | undefined;
1236
1235
  headers?: Record<string, string> | undefined;
1237
1236
  connectionRef?: string | undefined;
1237
+ allowPrivateNetwork?: boolean | undefined;
1238
1238
  }[] | undefined;
1239
1239
  displayName?: string | undefined;
1240
1240
  program?: {
1241
- v: 1;
1242
1241
  id: string;
1243
- entry: string[];
1244
1242
  nodes: Record<string, {
1245
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1243
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1246
1244
  id: string;
1247
1245
  config: Record<string, unknown>;
1248
1246
  out: {
1249
1247
  to: string;
1250
- condition?: string | undefined;
1251
1248
  sourceHandle?: string | undefined;
1252
1249
  label?: string | undefined;
1250
+ condition?: string | undefined;
1253
1251
  }[];
1254
1252
  }>;
1253
+ v: 1;
1254
+ entry: string[];
1255
1255
  completionGate: {
1256
1256
  requiredFields: string[];
1257
1257
  };
@@ -1273,7 +1273,7 @@ declare const AgentDTO: z.ZodObject<{
1273
1273
  } | undefined;
1274
1274
  };
1275
1275
  fields: {
1276
- type: "string" | "number" | "boolean" | "string[]" | "datetime" | "email" | "phone";
1276
+ type: "string" | "number" | "boolean" | "email" | "string[]" | "datetime" | "phone";
1277
1277
  name: string;
1278
1278
  required: boolean;
1279
1279
  ask?: string | undefined;
@@ -1288,7 +1288,7 @@ declare const AgentDTO: z.ZodObject<{
1288
1288
  routes?: Record<string, string> | undefined;
1289
1289
  } | undefined;
1290
1290
  memory?: {
1291
- scope?: "call" | "caller" | "participant" | "account" | "platform" | undefined;
1291
+ scope?: "caller" | "call" | "account" | "participant" | "platform" | undefined;
1292
1292
  retentionDays?: number | undefined;
1293
1293
  piiFields?: string[] | undefined;
1294
1294
  } | undefined;
@@ -1304,8 +1304,8 @@ declare const AgentDTO: z.ZodObject<{
1304
1304
  } | undefined;
1305
1305
  } | undefined;
1306
1306
  prompts?: {
1307
- id: string;
1308
1307
  text: string;
1308
+ id: string;
1309
1309
  }[] | undefined;
1310
1310
  triggers?: {
1311
1311
  then: string;
@@ -1315,31 +1315,31 @@ declare const AgentDTO: z.ZodObject<{
1315
1315
  }[] | undefined;
1316
1316
  tools?: {
1317
1317
  name: string;
1318
- url: string;
1319
1318
  description: string;
1320
1319
  input: Record<string, "string" | "number" | "boolean">;
1320
+ url: string;
1321
1321
  method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
1322
1322
  auth: "none" | "connection";
1323
- allowPrivateNetwork?: boolean | undefined;
1324
1323
  headers?: Record<string, string> | undefined;
1325
1324
  connectionRef?: string | undefined;
1325
+ allowPrivateNetwork?: boolean | undefined;
1326
1326
  }[] | undefined;
1327
1327
  displayName?: string | undefined;
1328
1328
  program?: {
1329
- v: 1;
1330
1329
  id: string;
1331
- entry: string[];
1332
1330
  nodes: Record<string, {
1333
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1331
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1334
1332
  id: string;
1335
1333
  config: Record<string, unknown>;
1336
1334
  out: {
1337
1335
  to: string;
1338
- condition?: string | undefined;
1339
1336
  sourceHandle?: string | undefined;
1340
1337
  label?: string | undefined;
1338
+ condition?: string | undefined;
1341
1339
  }[];
1342
1340
  }>;
1341
+ v: 1;
1342
+ entry: string[];
1343
1343
  completionGate: {
1344
1344
  requiredFields: string[];
1345
1345
  };
@@ -1357,8 +1357,8 @@ declare const AgentDTO: z.ZodObject<{
1357
1357
  }, "strip", z.ZodTypeAny, {
1358
1358
  status: "online" | "offline" | "degraded";
1359
1359
  id: string;
1360
- name: string;
1361
1360
  projectId: string;
1361
+ name: string;
1362
1362
  createdAt: string;
1363
1363
  updatedAt: string;
1364
1364
  version: string;
@@ -1383,7 +1383,7 @@ declare const AgentDTO: z.ZodObject<{
1383
1383
  } | undefined;
1384
1384
  };
1385
1385
  fields: {
1386
- type: "string" | "number" | "boolean" | "string[]" | "datetime" | "email" | "phone";
1386
+ type: "string" | "number" | "boolean" | "email" | "string[]" | "datetime" | "phone";
1387
1387
  name: string;
1388
1388
  required: boolean;
1389
1389
  ask?: string | undefined;
@@ -1398,7 +1398,7 @@ declare const AgentDTO: z.ZodObject<{
1398
1398
  routes?: Record<string, string> | undefined;
1399
1399
  } | undefined;
1400
1400
  memory?: {
1401
- scope?: "call" | "caller" | "participant" | "account" | "platform" | undefined;
1401
+ scope?: "caller" | "call" | "account" | "participant" | "platform" | undefined;
1402
1402
  retentionDays?: number | undefined;
1403
1403
  piiFields?: string[] | undefined;
1404
1404
  } | undefined;
@@ -1414,8 +1414,8 @@ declare const AgentDTO: z.ZodObject<{
1414
1414
  } | undefined;
1415
1415
  } | undefined;
1416
1416
  prompts?: {
1417
- id: string;
1418
1417
  text: string;
1418
+ id: string;
1419
1419
  }[] | undefined;
1420
1420
  triggers?: {
1421
1421
  then: string;
@@ -1425,31 +1425,31 @@ declare const AgentDTO: z.ZodObject<{
1425
1425
  }[] | undefined;
1426
1426
  tools?: {
1427
1427
  name: string;
1428
- url: string;
1429
1428
  description: string;
1430
1429
  input: Record<string, "string" | "number" | "boolean">;
1430
+ url: string;
1431
1431
  method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
1432
1432
  auth: "none" | "connection";
1433
- allowPrivateNetwork?: boolean | undefined;
1434
1433
  headers?: Record<string, string> | undefined;
1435
1434
  connectionRef?: string | undefined;
1435
+ allowPrivateNetwork?: boolean | undefined;
1436
1436
  }[] | undefined;
1437
1437
  displayName?: string | undefined;
1438
1438
  program?: {
1439
- v: 1;
1440
1439
  id: string;
1441
- entry: string[];
1442
1440
  nodes: Record<string, {
1443
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1441
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1444
1442
  id: string;
1445
1443
  config: Record<string, unknown>;
1446
1444
  out: {
1447
1445
  to: string;
1448
- condition?: string | undefined;
1449
1446
  sourceHandle?: string | undefined;
1450
1447
  label?: string | undefined;
1448
+ condition?: string | undefined;
1451
1449
  }[];
1452
1450
  }>;
1451
+ v: 1;
1452
+ entry: string[];
1453
1453
  completionGate: {
1454
1454
  requiredFields: string[];
1455
1455
  };
@@ -1465,8 +1465,8 @@ declare const AgentDTO: z.ZodObject<{
1465
1465
  }, {
1466
1466
  status: "online" | "offline" | "degraded";
1467
1467
  id: string;
1468
- name: string;
1469
1468
  projectId: string;
1469
+ name: string;
1470
1470
  createdAt: string;
1471
1471
  updatedAt: string;
1472
1472
  version: string;
@@ -1491,7 +1491,7 @@ declare const AgentDTO: z.ZodObject<{
1491
1491
  } | undefined;
1492
1492
  };
1493
1493
  fields: {
1494
- type: "string" | "number" | "boolean" | "string[]" | "datetime" | "email" | "phone";
1494
+ type: "string" | "number" | "boolean" | "email" | "string[]" | "datetime" | "phone";
1495
1495
  name: string;
1496
1496
  required: boolean;
1497
1497
  ask?: string | undefined;
@@ -1506,7 +1506,7 @@ declare const AgentDTO: z.ZodObject<{
1506
1506
  routes?: Record<string, string> | undefined;
1507
1507
  } | undefined;
1508
1508
  memory?: {
1509
- scope?: "call" | "caller" | "participant" | "account" | "platform" | undefined;
1509
+ scope?: "caller" | "call" | "account" | "participant" | "platform" | undefined;
1510
1510
  retentionDays?: number | undefined;
1511
1511
  piiFields?: string[] | undefined;
1512
1512
  } | undefined;
@@ -1522,8 +1522,8 @@ declare const AgentDTO: z.ZodObject<{
1522
1522
  } | undefined;
1523
1523
  } | undefined;
1524
1524
  prompts?: {
1525
- id: string;
1526
1525
  text: string;
1526
+ id: string;
1527
1527
  }[] | undefined;
1528
1528
  triggers?: {
1529
1529
  then: string;
@@ -1533,31 +1533,31 @@ declare const AgentDTO: z.ZodObject<{
1533
1533
  }[] | undefined;
1534
1534
  tools?: {
1535
1535
  name: string;
1536
- url: string;
1537
1536
  description: string;
1538
1537
  input: Record<string, "string" | "number" | "boolean">;
1538
+ url: string;
1539
1539
  method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
1540
1540
  auth: "none" | "connection";
1541
- allowPrivateNetwork?: boolean | undefined;
1542
1541
  headers?: Record<string, string> | undefined;
1543
1542
  connectionRef?: string | undefined;
1543
+ allowPrivateNetwork?: boolean | undefined;
1544
1544
  }[] | undefined;
1545
1545
  displayName?: string | undefined;
1546
1546
  program?: {
1547
- v: 1;
1548
1547
  id: string;
1549
- entry: string[];
1550
1548
  nodes: Record<string, {
1551
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1549
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1552
1550
  id: string;
1553
1551
  config: Record<string, unknown>;
1554
1552
  out: {
1555
1553
  to: string;
1556
- condition?: string | undefined;
1557
1554
  sourceHandle?: string | undefined;
1558
1555
  label?: string | undefined;
1556
+ condition?: string | undefined;
1559
1557
  }[];
1560
1558
  }>;
1559
+ v: 1;
1560
+ entry: string[];
1561
1561
  completionGate: {
1562
1562
  requiredFields: string[];
1563
1563
  };
@@ -1630,7 +1630,7 @@ declare const FlowProgram: z.ZodObject<{
1630
1630
  entry: z.ZodArray<z.ZodString, "many">;
1631
1631
  nodes: z.ZodRecord<z.ZodString, z.ZodObject<{
1632
1632
  id: z.ZodString;
1633
- type: z.ZodEnum<["start", "say", "ask", "confirm", "tool", "decision", "handoff", "end", "trigger", "gate", "playbook", "menu", "code", "set", "subflow", "llm", "rag", "memory", "speech", "classify", "router", "note"]>;
1633
+ type: z.ZodEnum<["start", "say", "ask", "confirm", "tool", "email", "decision", "handoff", "end", "trigger", "gate", "playbook", "menu", "code", "set", "subflow", "llm", "rag", "memory", "speech", "classify", "router", "note"]>;
1634
1634
  config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1635
1635
  out: z.ZodArray<z.ZodObject<{
1636
1636
  to: z.ZodString;
@@ -1639,34 +1639,34 @@ declare const FlowProgram: z.ZodObject<{
1639
1639
  label: z.ZodOptional<z.ZodString>;
1640
1640
  }, "strip", z.ZodTypeAny, {
1641
1641
  to: string;
1642
- condition?: string | undefined;
1643
1642
  sourceHandle?: string | undefined;
1644
1643
  label?: string | undefined;
1644
+ condition?: string | undefined;
1645
1645
  }, {
1646
1646
  to: string;
1647
- condition?: string | undefined;
1648
1647
  sourceHandle?: string | undefined;
1649
1648
  label?: string | undefined;
1649
+ condition?: string | undefined;
1650
1650
  }>, "many">;
1651
1651
  }, "strip", z.ZodTypeAny, {
1652
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1652
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1653
1653
  id: string;
1654
1654
  config: Record<string, unknown>;
1655
1655
  out: {
1656
1656
  to: string;
1657
- condition?: string | undefined;
1658
1657
  sourceHandle?: string | undefined;
1659
1658
  label?: string | undefined;
1659
+ condition?: string | undefined;
1660
1660
  }[];
1661
1661
  }, {
1662
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1662
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1663
1663
  id: string;
1664
1664
  config: Record<string, unknown>;
1665
1665
  out: {
1666
1666
  to: string;
1667
- condition?: string | undefined;
1668
1667
  sourceHandle?: string | undefined;
1669
1668
  label?: string | undefined;
1669
+ condition?: string | undefined;
1670
1670
  }[];
1671
1671
  }>>;
1672
1672
  completionGate: z.ZodObject<{
@@ -1693,20 +1693,20 @@ declare const FlowProgram: z.ZodObject<{
1693
1693
  labelOnlyEdges?: string[] | undefined;
1694
1694
  }>>;
1695
1695
  }, "strip", z.ZodTypeAny, {
1696
- v: 1;
1697
1696
  id: string;
1698
- entry: string[];
1699
1697
  nodes: Record<string, {
1700
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1698
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1701
1699
  id: string;
1702
1700
  config: Record<string, unknown>;
1703
1701
  out: {
1704
1702
  to: string;
1705
- condition?: string | undefined;
1706
1703
  sourceHandle?: string | undefined;
1707
1704
  label?: string | undefined;
1705
+ condition?: string | undefined;
1708
1706
  }[];
1709
1707
  }>;
1708
+ v: 1;
1709
+ entry: string[];
1710
1710
  completionGate: {
1711
1711
  requiredFields: string[];
1712
1712
  };
@@ -1717,20 +1717,20 @@ declare const FlowProgram: z.ZodObject<{
1717
1717
  labelOnlyEdges?: string[] | undefined;
1718
1718
  } | undefined;
1719
1719
  }, {
1720
- v: 1;
1721
1720
  id: string;
1722
- entry: string[];
1723
1721
  nodes: Record<string, {
1724
- type: "code" | "set" | "start" | "say" | "ask" | "confirm" | "tool" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "subflow" | "llm" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1722
+ type: "llm" | "code" | "start" | "say" | "ask" | "confirm" | "tool" | "email" | "decision" | "handoff" | "end" | "trigger" | "gate" | "playbook" | "menu" | "set" | "subflow" | "rag" | "memory" | "speech" | "classify" | "router" | "note";
1725
1723
  id: string;
1726
1724
  config: Record<string, unknown>;
1727
1725
  out: {
1728
1726
  to: string;
1729
- condition?: string | undefined;
1730
1727
  sourceHandle?: string | undefined;
1731
1728
  label?: string | undefined;
1729
+ condition?: string | undefined;
1732
1730
  }[];
1733
1731
  }>;
1732
+ v: 1;
1733
+ entry: string[];
1734
1734
  completionGate: {
1735
1735
  requiredFields: string[];
1736
1736
  };
@@ -2900,6 +2900,27 @@ type ToolExecutor = (req: {
2900
2900
  readonly status: number;
2901
2901
  readonly data: unknown;
2902
2902
  }>;
2903
+ /** Send an email step's email through the workspace's email (burn-down G-22): From checked against the workspace's
2904
+ * verified sending domains, wallet-admitted, metered. Never a send from the worker itself — on voice it is
2905
+ * POST /v1/email/send under the call's own project identity; on text, the API's in-process funnel. */
2906
+ type EmailResolver = (req: {
2907
+ readonly to: string;
2908
+ readonly subject: string;
2909
+ readonly text: string;
2910
+ readonly from?: string;
2911
+ readonly fromName?: string;
2912
+ readonly replyTo?: string;
2913
+ }, opts?: {
2914
+ /** Aborted when the step stops waiting (its timeout): the request is cancelled, not left running. */
2915
+ readonly signal?: AbortSignal;
2916
+ }) => Promise<{
2917
+ readonly ok: true;
2918
+ readonly emailId: string;
2919
+ } | {
2920
+ readonly ok: false;
2921
+ readonly error: string;
2922
+ readonly detail?: string;
2923
+ }>;
2903
2924
  /** Evaluate a sandboxed code/expression node (server-side; never on the call path). */
2904
2925
  type CodeResolver = (src: {
2905
2926
  readonly expression: string;
@@ -2963,6 +2984,8 @@ interface GraphResolvers {
2963
2984
  /** Server-side SSRF-guarded HTTP tool executor (tool node). When present the
2964
2985
  * tool executor routes through it instead of fetching locally. */
2965
2986
  readonly toolExecutor?: ToolExecutor;
2987
+ /** The workspace's email (email node). Absent → the step takes Couldn't send. */
2988
+ readonly email?: EmailResolver;
2966
2989
  readonly code?: CodeResolver;
2967
2990
  readonly classify?: ClassifyResolver;
2968
2991
  readonly playbooks?: PlaybookResolver;
@@ -2973,6 +2996,14 @@ interface GraphResolvers {
2973
2996
  readonly registryTools?: RegistryToolsResolver;
2974
2997
  }
2975
2998
 
2999
+ /**
3000
+ * One conversation's Email-step sends, never sent twice (burn-down G-22): an exact repeat (same recipient, subject and
3001
+ * body — a caller looping the flow, or a retry edge after a timeout) gets the first send's result, or waits for it
3002
+ * while it's in flight. A send whose outcome is unknown (timed out) stays recorded; only a refusal that sent nothing
3003
+ * lets the same email be tried again. Build one per conversation. How MANY a conversation may send (3) is the API's
3004
+ * cap, kept in Valkey by the conversation id, so it survives a worker restart.
3005
+ */
3006
+ declare function dedupeConversationEmails(resolver: EmailResolver): EmailResolver;
2976
3007
  /** A library playbook as GET /v1/playbooks (and the API's PlaybooksService) lists it — the fields a flow reads. */
2977
3008
  interface PlaybookLibraryEntry {
2978
3009
  readonly name: string;
@@ -3130,4 +3161,4 @@ type RunLiveTextOptions = Omit<RunTextSessionOptions, 'onAgentText' | 'onAwaitIn
3130
3161
  * interpreter blocks for the next message, or the flow ends. */
3131
3162
  declare function runLiveTextConversation(opts: RunLiveTextOptions): LiveTextConversation;
3132
3163
 
3133
- export { NON_BUSY_STATES as $, AgentEnvironment as A, type DtmfHandler as B, type ConnectorInstance as C, type DtmfEvent as D, type EndCallControllerHandle as E, type EndCallInfo as F, type EndCallOutcome as G, type HandoffConfig as H, type EndCallPolicy as I, type EndCallTrigger as J, type EndpointingConfig as K, type LLMProvider as L, type ModelConfig as M, type FakeSessionAdapter as N, type FloorControlConfig as O, ProcessSchemaDTO as P, type InboundOptions as Q, type ReadinessProbe as R, type STTProvider as S, type TTSProvider as T, type InferProcessData as U, type VADProvider as V, type InterruptionConfig as W, LK_AGENT_STATE_MAP as X, type MemoryHandle as Y, type MemoryScope as Z, type MetricsEvent as _, type AgentLifecycleEvent as a, urlProbe as a$, type Participant as a0, ParticipantId as a1, type ParticipantKind as a2, type ParticipantSet as a3, type ParticipantsConfig as a4, type ProcessBackendAck as a5, type ProcessFieldType as a6, type ProcessSnapshot as a7, type ReadinessReport as a8, type ReadinessResult as a9, type TriggerAction as aA, type TriggerCondition as aB, type TtsVoiceConfig as aC, type TurnEvent as aD, type Unsubscribe as aE, type UserInputEvent as aF, type UserStateEvent as aG, type UserTurn as aH, VoiceLayerAuthError as aI, VoiceLayerError as aJ, VoiceLayerHttpError as aK, VoiceLayerNetworkError as aL, VoiceLayerValidationError as aM, applySpeechTurnHandling as aN, asyncProbe as aO, defineProcess as aP, dtmfCodeToDigit as aQ, dtmfDigitToCode as aR, duck as aS, envProbe as aT, mute as aU, normalizeState as aV, passthrough as aW, runProbes as aX, runTextSession as aY, runTextTranscript as aZ, transform as a_, type RespondOptions as aa, type Room as ab, type RouteEntry as ac, type RoutingRule as ad, type RoutingSnapshot as ae, type RunTextSessionOptions as af, type RunTextTranscriptOptions as ag, type SayOptions as ah, type SecurityConfig as ai, type SendDtmfOptions as aj, type SessionAdapter as ak, type SessionCapabilities as al, type SessionErrorEvent as am, type SessionEvent as an, type SessionEventMap as ao, type SessionFactory as ap, type SessionFactoryInput as aq, type SessionOutbound as ar, type SessionState as as, type ShorthandPrimitive as at, type SpeechResult as au, type SpeechTarget as av, type StateChangeEvent as aw, type TextSession as ax, type TextTranscriptResult as ay, type ToolInputShape as az, AgentDTO as b, type FlowResolver as b0, type GraphResolvers as b1, type GraphTraceEvent as b2, type KnowledgeResolver as b3, type LiveTextConversation as b4, type LiveTurnResult as b5, type PlaybookLibraryEntry as b6, type PlaybookResolver as b7, type RegistryToolsResolver as b8, type RunLiveTextOptions as b9, denyPrivateNetwork as ba, privateNetworkOptInHonoured as bb, runLiveTextConversation as bc, runWithOpenAIScope as bd, toPlaybookResolution as be, type AgentEventEmitter as c, type AgentContext as d, type AgentConfig as e, type ProcessField as f, type ProviderFactory as g, type RealtimeProvider as h, type TurnDetectorProvider as i, type ProcessDefinition as j, type TriggerDefinition as k, type MemoryConfig as l, type ToolDefinition as m, type SpeechConfig as n, type ToolExecutor as o, type HostLookup as p, type AgentEventListener as q, type AgentTurnEvent as r, type AudioProfile as s, type AudioSurface as t, type CallInfo as u, type CallOutcomeSummary as v, type ChannelKind as w, type CompletionStrategy as x, type ComplianceTag as y, ConsultationPolicy as z };
3164
+ export { NON_BUSY_STATES as $, AgentEnvironment as A, type DtmfHandler as B, type ConnectorInstance as C, type DtmfEvent as D, type EndCallControllerHandle as E, type EndCallInfo as F, type EndCallOutcome as G, type HandoffConfig as H, type EndCallPolicy as I, type EndCallTrigger as J, type EndpointingConfig as K, type LLMProvider as L, type ModelConfig as M, type FakeSessionAdapter as N, type FloorControlConfig as O, ProcessSchemaDTO as P, type InboundOptions as Q, type ReadinessProbe as R, type STTProvider as S, type TTSProvider as T, type InferProcessData as U, type VADProvider as V, type InterruptionConfig as W, LK_AGENT_STATE_MAP as X, type MemoryHandle as Y, type MemoryScope as Z, type MetricsEvent as _, type AgentLifecycleEvent as a, urlProbe as a$, type Participant as a0, ParticipantId as a1, type ParticipantKind as a2, type ParticipantSet as a3, type ParticipantsConfig as a4, type ProcessBackendAck as a5, type ProcessFieldType as a6, type ProcessSnapshot as a7, type ReadinessReport as a8, type ReadinessResult as a9, type TriggerAction as aA, type TriggerCondition as aB, type TtsVoiceConfig as aC, type TurnEvent as aD, type Unsubscribe as aE, type UserInputEvent as aF, type UserStateEvent as aG, type UserTurn as aH, VoiceLayerAuthError as aI, VoiceLayerError as aJ, VoiceLayerHttpError as aK, VoiceLayerNetworkError as aL, VoiceLayerValidationError as aM, applySpeechTurnHandling as aN, asyncProbe as aO, defineProcess as aP, dtmfCodeToDigit as aQ, dtmfDigitToCode as aR, duck as aS, envProbe as aT, mute as aU, normalizeState as aV, passthrough as aW, runProbes as aX, runTextSession as aY, runTextTranscript as aZ, transform as a_, type RespondOptions as aa, type Room as ab, type RouteEntry as ac, type RoutingRule as ad, type RoutingSnapshot as ae, type RunTextSessionOptions as af, type RunTextTranscriptOptions as ag, type SayOptions as ah, type SecurityConfig as ai, type SendDtmfOptions as aj, type SessionAdapter as ak, type SessionCapabilities as al, type SessionErrorEvent as am, type SessionEvent as an, type SessionEventMap as ao, type SessionFactory as ap, type SessionFactoryInput as aq, type SessionOutbound as ar, type SessionState as as, type ShorthandPrimitive as at, type SpeechResult as au, type SpeechTarget as av, type StateChangeEvent as aw, type TextSession as ax, type TextTranscriptResult as ay, type ToolInputShape as az, AgentDTO as b, type EmailResolver as b0, type FlowResolver as b1, type GraphResolvers as b2, type GraphTraceEvent as b3, type KnowledgeResolver as b4, type LiveTextConversation as b5, type LiveTurnResult as b6, type PlaybookLibraryEntry as b7, type PlaybookResolver as b8, type RegistryToolsResolver as b9, type RunLiveTextOptions as ba, dedupeConversationEmails as bb, denyPrivateNetwork as bc, privateNetworkOptInHonoured as bd, runLiveTextConversation as be, runWithOpenAIScope as bf, toPlaybookResolution as bg, type AgentEventEmitter as c, type AgentContext as d, type AgentConfig as e, type ProcessField as f, type ProviderFactory as g, type RealtimeProvider as h, type TurnDetectorProvider as i, type ProcessDefinition as j, type TriggerDefinition as k, type MemoryConfig as l, type ToolDefinition as m, type SpeechConfig as n, type ToolExecutor as o, type HostLookup as p, type AgentEventListener as q, type AgentTurnEvent as r, type AudioProfile as s, type AudioSurface as t, type CallInfo as u, type CallOutcomeSummary as v, type ChannelKind as w, type CompletionStrategy as x, type ComplianceTag as y, ConsultationPolicy as z };