@roarkanalytics/sdk 3.13.0 → 3.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/package.json +1 -1
  3. package/resources/config.d.mts +50 -9
  4. package/resources/config.d.mts.map +1 -1
  5. package/resources/config.d.ts +50 -9
  6. package/resources/config.d.ts.map +1 -1
  7. package/resources/customer-flow-edge-case.d.mts +402 -21
  8. package/resources/customer-flow-edge-case.d.mts.map +1 -1
  9. package/resources/customer-flow-edge-case.d.ts +402 -21
  10. package/resources/customer-flow-edge-case.d.ts.map +1 -1
  11. package/resources/customer-flow.d.mts +1653 -116
  12. package/resources/customer-flow.d.mts.map +1 -1
  13. package/resources/customer-flow.d.ts +1653 -116
  14. package/resources/customer-flow.d.ts.map +1 -1
  15. package/resources/http-request-definition.d.mts +24 -0
  16. package/resources/http-request-definition.d.mts.map +1 -1
  17. package/resources/http-request-definition.d.ts +24 -0
  18. package/resources/http-request-definition.d.ts.map +1 -1
  19. package/resources/simulation-environment.d.mts +6 -6
  20. package/resources/simulation-environment.d.mts.map +1 -1
  21. package/resources/simulation-environment.d.ts +6 -6
  22. package/resources/simulation-environment.d.ts.map +1 -1
  23. package/resources/simulation-job.d.mts +2 -2
  24. package/resources/simulation-job.d.mts.map +1 -1
  25. package/resources/simulation-job.d.ts +2 -2
  26. package/resources/simulation-job.d.ts.map +1 -1
  27. package/resources/simulation-persona.d.mts +6 -6
  28. package/resources/simulation-persona.d.mts.map +1 -1
  29. package/resources/simulation-persona.d.ts +6 -6
  30. package/resources/simulation-persona.d.ts.map +1 -1
  31. package/resources/simulation-run-plan-job.d.mts +1 -1
  32. package/resources/simulation-run-plan-job.d.mts.map +1 -1
  33. package/resources/simulation-run-plan-job.d.ts +1 -1
  34. package/resources/simulation-run-plan-job.d.ts.map +1 -1
  35. package/src/resources/config.ts +102 -6
  36. package/src/resources/customer-flow-edge-case.ts +999 -222
  37. package/src/resources/customer-flow.ts +4583 -1455
  38. package/src/resources/http-request-definition.ts +28 -0
  39. package/src/resources/simulation-environment.ts +30 -6
  40. package/src/resources/simulation-job.ts +10 -2
  41. package/src/resources/simulation-persona.ts +30 -6
  42. package/src/resources/simulation-run-plan-job.ts +5 -1
  43. package/src/version.ts +1 -1
  44. package/version.d.mts +1 -1
  45. package/version.d.ts +1 -1
  46. package/version.js +1 -1
  47. package/version.mjs +1 -1
@@ -154,12 +154,17 @@ export declare class CustomerFlow extends APIResource {
154
154
  * run is graded against rather than an instruction, and it counts as an agent turn
155
155
  * for role alternation.
156
156
  *
157
+ * A `CUSTOMER_HANDOFF` hands the phone to another persona (`handoffPersonaId`), or
158
+ * back to the flow's own persona when it is null. The steps after it are spoken by
159
+ * whoever holds the phone. It sits between turns like a silence, so it may follow
160
+ * either side.
161
+ *
157
162
  * In a STRICT flow an `AGENT_TURN` may carry its own `offScriptPolicy`, which
158
163
  * replaces the flow-level one at that step. Omit it (or send null) to follow the
159
164
  * flow's policy. Use it where one missed step makes the rest of the call
160
165
  * meaningless: an authentication menu, say, with `then: HANG_UP_INVALIDATE`.
161
166
  */
162
- export type FlowStep = FlowStep.UnionMember0 | FlowStep.UnionMember1 | FlowStep.UnionMember2 | FlowStep.UnionMember3 | FlowStep.UnionMember4 | FlowStep.UnionMember5 | FlowStep.UnionMember6 | FlowStep.UnionMember7 | FlowStep.UnionMember8;
167
+ export type FlowStep = FlowStep.UnionMember0 | FlowStep.UnionMember1 | FlowStep.UnionMember2 | FlowStep.UnionMember3 | FlowStep.UnionMember4 | FlowStep.UnionMember5 | FlowStep.UnionMember6 | FlowStep.UnionMember7 | FlowStep.UnionMember8 | FlowStep.UnionMember9;
163
168
  export declare namespace FlowStep {
164
169
  interface UnionMember0 {
165
170
  type: 'AGENT_TURN';
@@ -235,6 +240,14 @@ export declare namespace FlowStep {
235
240
  steps?: Array<CustomerFlowAPI.FlowStep>;
236
241
  }
237
242
  interface UnionMember8 {
243
+ type: 'CUSTOMER_HANDOFF';
244
+ handoffPersonaId?: string | null;
245
+ mergeIntoNodeIds?: Array<string>;
246
+ nodeId?: string;
247
+ ref?: string;
248
+ steps?: Array<CustomerFlowAPI.FlowStep>;
249
+ }
250
+ interface UnionMember9 {
238
251
  type: 'SCENARIO_LINK';
239
252
  linkedCustomerFlowId?: string | null;
240
253
  linkedCustomerFlowVariantId?: string | null;
@@ -415,7 +428,7 @@ export declare namespace CustomerFlowCreateResponse {
415
428
  */
416
429
  interface Environment {
417
430
  id: string;
418
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
431
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
419
432
  backgroundNoiseVolume: number;
420
433
  /**
421
434
  * Creation timestamp in ISO 8601 format
@@ -449,7 +462,7 @@ export declare namespace CustomerFlowCreateResponse {
449
462
  /**
450
463
  * Background noise setting
451
464
  */
452
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
465
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
453
466
  /**
454
467
  * Base emotional state of the persona
455
468
  */
@@ -610,7 +623,7 @@ export declare namespace CustomerFlowCreateResponse {
610
623
  */
611
624
  interface Environment {
612
625
  id: string;
613
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
626
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
614
627
  backgroundNoiseVolume: number;
615
628
  /**
616
629
  * Creation timestamp in ISO 8601 format
@@ -644,7 +657,7 @@ export declare namespace CustomerFlowCreateResponse {
644
657
  /**
645
658
  * Background noise setting
646
659
  */
647
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
660
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
648
661
  /**
649
662
  * Base emotional state of the persona
650
663
  */
@@ -855,6 +868,11 @@ export declare namespace CustomerFlowCreateResponse {
855
868
  * project.
856
869
  */
857
870
  environment: EdgeCase.Environment | null;
871
+ /**
872
+ * The personas this brief hands the phone to, in order of first mention. Empty
873
+ * when the brief inherits the happy path's: read the happy path's list.
874
+ */
875
+ handoffPersonas: Array<EdgeCase.HandoffPersona>;
858
876
  isGenerated: boolean;
859
877
  /**
860
878
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -869,7 +887,9 @@ export declare namespace CustomerFlowCreateResponse {
869
887
  */
870
888
  updatedAt: string;
871
889
  /**
872
- * The brief the simulated customer improvises from.
890
+ * The brief the simulated customer improvises from. A `@{persona:<id>}` mention
891
+ * hands the phone to that persona mid-call; the sentences around the mention say
892
+ * when.
873
893
  */
874
894
  prompt?: string | null;
875
895
  systemKey?: string | null;
@@ -892,7 +912,7 @@ export declare namespace CustomerFlowCreateResponse {
892
912
  */
893
913
  interface Environment {
894
914
  id: string;
895
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
915
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
896
916
  backgroundNoiseVolume: number;
897
917
  /**
898
918
  * Creation timestamp in ISO 8601 format
@@ -905,6 +925,126 @@ export declare namespace CustomerFlowCreateResponse {
905
925
  updatedAt: string;
906
926
  description?: string | null;
907
927
  }
928
+ interface HandoffPersona {
929
+ /**
930
+ * Unique identifier of the persona
931
+ */
932
+ id: string;
933
+ /**
934
+ * Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
935
+ * optional variants
936
+ */
937
+ accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
938
+ /**
939
+ * How old the caller sounds and behaves. Only ages the persona's accent has a
940
+ * voice for are accepted; defaults to ADULT, which every accent supports.
941
+ */
942
+ age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
943
+ /**
944
+ * Background noise setting
945
+ */
946
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
947
+ /**
948
+ * Base emotional state of the persona
949
+ */
950
+ baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
951
+ /**
952
+ * How the persona confirms information
953
+ */
954
+ confirmationStyle: 'EXPLICIT' | 'VAGUE';
955
+ /**
956
+ * Creation timestamp
957
+ */
958
+ createdAt: string;
959
+ /**
960
+ * Gender of the persona
961
+ */
962
+ gender: 'MALE' | 'FEMALE';
963
+ /**
964
+ * Whether the persona uses filler words like "um" and "uh"
965
+ */
966
+ hasDisfluencies: boolean;
967
+ /**
968
+ * Maximum number of idle messages the persona will send before giving up
969
+ */
970
+ idleMessageMaxSpokenCount: number;
971
+ /**
972
+ * Whether the idle message counter resets when the agent speaks
973
+ */
974
+ idleMessageResetCountOnUserSpeechEnabled: boolean;
975
+ /**
976
+ * Messages the persona will say when the agent goes silent during a call. null =
977
+ * "Automatic": language-appropriate defaults are used at call time.
978
+ */
979
+ idleMessages: Array<string> | null;
980
+ /**
981
+ * Seconds of silence before the persona sends an idle message
982
+ */
983
+ idleTimeoutSeconds: number;
984
+ /**
985
+ * How clearly the persona expresses their intentions
986
+ */
987
+ intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
988
+ /**
989
+ * Primary language ISO 639-1 code for the persona
990
+ */
991
+ language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
992
+ /**
993
+ * How reliable the persona's memory is
994
+ */
995
+ memoryReliability: 'HIGH' | 'LOW';
996
+ /**
997
+ * The name the agent will identify as during conversations
998
+ */
999
+ name: string;
1000
+ /**
1001
+ * Additional custom properties about the persona
1002
+ */
1003
+ properties: {
1004
+ [key: string]: unknown;
1005
+ };
1006
+ /**
1007
+ * Controls how quickly the persona responds to pauses in conversation (QUICK,
1008
+ * NORMAL, RELAXED). BARGE_IN also talks over the agent once it has held the floor
1009
+ * for several seconds.
1010
+ */
1011
+ responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN';
1012
+ /**
1013
+ * Speech clarity of the persona
1014
+ */
1015
+ speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
1016
+ /**
1017
+ * Speech pace of the persona
1018
+ */
1019
+ speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
1020
+ /**
1021
+ * Languages the persona can understand. Multilingual combinations are limited by
1022
+ * multilingual speech recognition support.
1023
+ */
1024
+ understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
1025
+ /**
1026
+ * Last update timestamp
1027
+ */
1028
+ updatedAt: string;
1029
+ /**
1030
+ * Background story and behavioral patterns for the persona
1031
+ */
1032
+ backstoryPrompt?: string | null;
1033
+ /**
1034
+ * Human-readable description of the persona
1035
+ */
1036
+ description?: string | null;
1037
+ /**
1038
+ * Label shown in place of the name across the dashboard (e.g. a short descriptor
1039
+ * like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
1040
+ * or set null to display the name itself.
1041
+ */
1042
+ displayName?: string | null;
1043
+ /**
1044
+ * Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
1045
+ */
1046
+ secondaryLanguage?: 'EN' | null;
1047
+ }
908
1048
  /**
909
1049
  * The persona this runs as instead of the happy path's. Null means it inherits.
910
1050
  */
@@ -926,7 +1066,7 @@ export declare namespace CustomerFlowCreateResponse {
926
1066
  /**
927
1067
  * Background noise setting
928
1068
  */
929
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
1069
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
930
1070
  /**
931
1071
  * Base emotional state of the persona
932
1072
  */
@@ -1048,6 +1188,11 @@ export declare namespace CustomerFlowCreateResponse {
1048
1188
  * project.
1049
1189
  */
1050
1190
  environment: HappyPath.Environment | null;
1191
+ /**
1192
+ * The personas this brief hands the phone to, in order of first mention. Empty
1193
+ * when the brief inherits the happy path's: read the happy path's list.
1194
+ */
1195
+ handoffPersonas: Array<HappyPath.HandoffPersona>;
1051
1196
  isGenerated: boolean;
1052
1197
  /**
1053
1198
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -1062,7 +1207,9 @@ export declare namespace CustomerFlowCreateResponse {
1062
1207
  */
1063
1208
  updatedAt: string;
1064
1209
  /**
1065
- * The brief the simulated customer improvises from.
1210
+ * The brief the simulated customer improvises from. A `@{persona:<id>}` mention
1211
+ * hands the phone to that persona mid-call; the sentences around the mention say
1212
+ * when.
1066
1213
  */
1067
1214
  prompt?: string | null;
1068
1215
  systemKey?: string | null;
@@ -1085,7 +1232,7 @@ export declare namespace CustomerFlowCreateResponse {
1085
1232
  */
1086
1233
  interface Environment {
1087
1234
  id: string;
1088
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
1235
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1089
1236
  backgroundNoiseVolume: number;
1090
1237
  /**
1091
1238
  * Creation timestamp in ISO 8601 format
@@ -1098,6 +1245,126 @@ export declare namespace CustomerFlowCreateResponse {
1098
1245
  updatedAt: string;
1099
1246
  description?: string | null;
1100
1247
  }
1248
+ interface HandoffPersona {
1249
+ /**
1250
+ * Unique identifier of the persona
1251
+ */
1252
+ id: string;
1253
+ /**
1254
+ * Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
1255
+ * optional variants
1256
+ */
1257
+ accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
1258
+ /**
1259
+ * How old the caller sounds and behaves. Only ages the persona's accent has a
1260
+ * voice for are accepted; defaults to ADULT, which every accent supports.
1261
+ */
1262
+ age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
1263
+ /**
1264
+ * Background noise setting
1265
+ */
1266
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1267
+ /**
1268
+ * Base emotional state of the persona
1269
+ */
1270
+ baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
1271
+ /**
1272
+ * How the persona confirms information
1273
+ */
1274
+ confirmationStyle: 'EXPLICIT' | 'VAGUE';
1275
+ /**
1276
+ * Creation timestamp
1277
+ */
1278
+ createdAt: string;
1279
+ /**
1280
+ * Gender of the persona
1281
+ */
1282
+ gender: 'MALE' | 'FEMALE';
1283
+ /**
1284
+ * Whether the persona uses filler words like "um" and "uh"
1285
+ */
1286
+ hasDisfluencies: boolean;
1287
+ /**
1288
+ * Maximum number of idle messages the persona will send before giving up
1289
+ */
1290
+ idleMessageMaxSpokenCount: number;
1291
+ /**
1292
+ * Whether the idle message counter resets when the agent speaks
1293
+ */
1294
+ idleMessageResetCountOnUserSpeechEnabled: boolean;
1295
+ /**
1296
+ * Messages the persona will say when the agent goes silent during a call. null =
1297
+ * "Automatic": language-appropriate defaults are used at call time.
1298
+ */
1299
+ idleMessages: Array<string> | null;
1300
+ /**
1301
+ * Seconds of silence before the persona sends an idle message
1302
+ */
1303
+ idleTimeoutSeconds: number;
1304
+ /**
1305
+ * How clearly the persona expresses their intentions
1306
+ */
1307
+ intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
1308
+ /**
1309
+ * Primary language ISO 639-1 code for the persona
1310
+ */
1311
+ language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
1312
+ /**
1313
+ * How reliable the persona's memory is
1314
+ */
1315
+ memoryReliability: 'HIGH' | 'LOW';
1316
+ /**
1317
+ * The name the agent will identify as during conversations
1318
+ */
1319
+ name: string;
1320
+ /**
1321
+ * Additional custom properties about the persona
1322
+ */
1323
+ properties: {
1324
+ [key: string]: unknown;
1325
+ };
1326
+ /**
1327
+ * Controls how quickly the persona responds to pauses in conversation (QUICK,
1328
+ * NORMAL, RELAXED). BARGE_IN also talks over the agent once it has held the floor
1329
+ * for several seconds.
1330
+ */
1331
+ responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN';
1332
+ /**
1333
+ * Speech clarity of the persona
1334
+ */
1335
+ speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
1336
+ /**
1337
+ * Speech pace of the persona
1338
+ */
1339
+ speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
1340
+ /**
1341
+ * Languages the persona can understand. Multilingual combinations are limited by
1342
+ * multilingual speech recognition support.
1343
+ */
1344
+ understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
1345
+ /**
1346
+ * Last update timestamp
1347
+ */
1348
+ updatedAt: string;
1349
+ /**
1350
+ * Background story and behavioral patterns for the persona
1351
+ */
1352
+ backstoryPrompt?: string | null;
1353
+ /**
1354
+ * Human-readable description of the persona
1355
+ */
1356
+ description?: string | null;
1357
+ /**
1358
+ * Label shown in place of the name across the dashboard (e.g. a short descriptor
1359
+ * like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
1360
+ * or set null to display the name itself.
1361
+ */
1362
+ displayName?: string | null;
1363
+ /**
1364
+ * Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
1365
+ */
1366
+ secondaryLanguage?: 'EN' | null;
1367
+ }
1101
1368
  /**
1102
1369
  * The persona this runs as instead of the happy path's. Null means it inherits.
1103
1370
  */
@@ -1119,7 +1386,7 @@ export declare namespace CustomerFlowCreateResponse {
1119
1386
  /**
1120
1387
  * Background noise setting
1121
1388
  */
1122
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
1389
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1123
1390
  /**
1124
1391
  * Base emotional state of the persona
1125
1392
  */
@@ -1343,7 +1610,7 @@ export declare namespace CustomerFlowCreateResponse {
1343
1610
  */
1344
1611
  interface Environment {
1345
1612
  id: string;
1346
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
1613
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1347
1614
  backgroundNoiseVolume: number;
1348
1615
  /**
1349
1616
  * Creation timestamp in ISO 8601 format
@@ -1377,7 +1644,7 @@ export declare namespace CustomerFlowCreateResponse {
1377
1644
  /**
1378
1645
  * Background noise setting
1379
1646
  */
1380
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
1647
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1381
1648
  /**
1382
1649
  * Base emotional state of the persona
1383
1650
  */
@@ -1532,7 +1799,7 @@ export declare namespace CustomerFlowCreateResponse {
1532
1799
  */
1533
1800
  interface Environment {
1534
1801
  id: string;
1535
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
1802
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1536
1803
  backgroundNoiseVolume: number;
1537
1804
  /**
1538
1805
  * Creation timestamp in ISO 8601 format
@@ -1566,7 +1833,7 @@ export declare namespace CustomerFlowCreateResponse {
1566
1833
  /**
1567
1834
  * Background noise setting
1568
1835
  */
1569
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
1836
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1570
1837
  /**
1571
1838
  * Base emotional state of the persona
1572
1839
  */
@@ -1842,7 +2109,7 @@ export declare namespace CustomerFlowUpdateResponse {
1842
2109
  */
1843
2110
  interface Environment {
1844
2111
  id: string;
1845
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
2112
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1846
2113
  backgroundNoiseVolume: number;
1847
2114
  /**
1848
2115
  * Creation timestamp in ISO 8601 format
@@ -1876,7 +2143,7 @@ export declare namespace CustomerFlowUpdateResponse {
1876
2143
  /**
1877
2144
  * Background noise setting
1878
2145
  */
1879
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
2146
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1880
2147
  /**
1881
2148
  * Base emotional state of the persona
1882
2149
  */
@@ -2037,7 +2304,7 @@ export declare namespace CustomerFlowUpdateResponse {
2037
2304
  */
2038
2305
  interface Environment {
2039
2306
  id: string;
2040
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
2307
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
2041
2308
  backgroundNoiseVolume: number;
2042
2309
  /**
2043
2310
  * Creation timestamp in ISO 8601 format
@@ -2071,7 +2338,7 @@ export declare namespace CustomerFlowUpdateResponse {
2071
2338
  /**
2072
2339
  * Background noise setting
2073
2340
  */
2074
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
2341
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
2075
2342
  /**
2076
2343
  * Base emotional state of the persona
2077
2344
  */
@@ -2282,6 +2549,11 @@ export declare namespace CustomerFlowUpdateResponse {
2282
2549
  * project.
2283
2550
  */
2284
2551
  environment: EdgeCase.Environment | null;
2552
+ /**
2553
+ * The personas this brief hands the phone to, in order of first mention. Empty
2554
+ * when the brief inherits the happy path's: read the happy path's list.
2555
+ */
2556
+ handoffPersonas: Array<EdgeCase.HandoffPersona>;
2285
2557
  isGenerated: boolean;
2286
2558
  /**
2287
2559
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -2296,7 +2568,9 @@ export declare namespace CustomerFlowUpdateResponse {
2296
2568
  */
2297
2569
  updatedAt: string;
2298
2570
  /**
2299
- * The brief the simulated customer improvises from.
2571
+ * The brief the simulated customer improvises from. A `@{persona:<id>}` mention
2572
+ * hands the phone to that persona mid-call; the sentences around the mention say
2573
+ * when.
2300
2574
  */
2301
2575
  prompt?: string | null;
2302
2576
  systemKey?: string | null;
@@ -2319,7 +2593,7 @@ export declare namespace CustomerFlowUpdateResponse {
2319
2593
  */
2320
2594
  interface Environment {
2321
2595
  id: string;
2322
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
2596
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
2323
2597
  backgroundNoiseVolume: number;
2324
2598
  /**
2325
2599
  * Creation timestamp in ISO 8601 format
@@ -2332,10 +2606,7 @@ export declare namespace CustomerFlowUpdateResponse {
2332
2606
  updatedAt: string;
2333
2607
  description?: string | null;
2334
2608
  }
2335
- /**
2336
- * The persona this runs as instead of the happy path's. Null means it inherits.
2337
- */
2338
- interface PersonaOverride {
2609
+ interface HandoffPersona {
2339
2610
  /**
2340
2611
  * Unique identifier of the persona
2341
2612
  */
@@ -2353,7 +2624,7 @@ export declare namespace CustomerFlowUpdateResponse {
2353
2624
  /**
2354
2625
  * Background noise setting
2355
2626
  */
2356
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
2627
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
2357
2628
  /**
2358
2629
  * Base emotional state of the persona
2359
2630
  */
@@ -2455,10 +2726,133 @@ export declare namespace CustomerFlowUpdateResponse {
2455
2726
  */
2456
2727
  secondaryLanguage?: 'EN' | null;
2457
2728
  }
2458
- }
2459
- /**
2460
- * One brief to run an improv flow with.
2461
- */
2729
+ /**
2730
+ * The persona this runs as instead of the happy path's. Null means it inherits.
2731
+ */
2732
+ interface PersonaOverride {
2733
+ /**
2734
+ * Unique identifier of the persona
2735
+ */
2736
+ id: string;
2737
+ /**
2738
+ * Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
2739
+ * optional variants
2740
+ */
2741
+ accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
2742
+ /**
2743
+ * How old the caller sounds and behaves. Only ages the persona's accent has a
2744
+ * voice for are accepted; defaults to ADULT, which every accent supports.
2745
+ */
2746
+ age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
2747
+ /**
2748
+ * Background noise setting
2749
+ */
2750
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
2751
+ /**
2752
+ * Base emotional state of the persona
2753
+ */
2754
+ baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
2755
+ /**
2756
+ * How the persona confirms information
2757
+ */
2758
+ confirmationStyle: 'EXPLICIT' | 'VAGUE';
2759
+ /**
2760
+ * Creation timestamp
2761
+ */
2762
+ createdAt: string;
2763
+ /**
2764
+ * Gender of the persona
2765
+ */
2766
+ gender: 'MALE' | 'FEMALE';
2767
+ /**
2768
+ * Whether the persona uses filler words like "um" and "uh"
2769
+ */
2770
+ hasDisfluencies: boolean;
2771
+ /**
2772
+ * Maximum number of idle messages the persona will send before giving up
2773
+ */
2774
+ idleMessageMaxSpokenCount: number;
2775
+ /**
2776
+ * Whether the idle message counter resets when the agent speaks
2777
+ */
2778
+ idleMessageResetCountOnUserSpeechEnabled: boolean;
2779
+ /**
2780
+ * Messages the persona will say when the agent goes silent during a call. null =
2781
+ * "Automatic": language-appropriate defaults are used at call time.
2782
+ */
2783
+ idleMessages: Array<string> | null;
2784
+ /**
2785
+ * Seconds of silence before the persona sends an idle message
2786
+ */
2787
+ idleTimeoutSeconds: number;
2788
+ /**
2789
+ * How clearly the persona expresses their intentions
2790
+ */
2791
+ intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
2792
+ /**
2793
+ * Primary language ISO 639-1 code for the persona
2794
+ */
2795
+ language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
2796
+ /**
2797
+ * How reliable the persona's memory is
2798
+ */
2799
+ memoryReliability: 'HIGH' | 'LOW';
2800
+ /**
2801
+ * The name the agent will identify as during conversations
2802
+ */
2803
+ name: string;
2804
+ /**
2805
+ * Additional custom properties about the persona
2806
+ */
2807
+ properties: {
2808
+ [key: string]: unknown;
2809
+ };
2810
+ /**
2811
+ * Controls how quickly the persona responds to pauses in conversation (QUICK,
2812
+ * NORMAL, RELAXED). BARGE_IN also talks over the agent once it has held the floor
2813
+ * for several seconds.
2814
+ */
2815
+ responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN';
2816
+ /**
2817
+ * Speech clarity of the persona
2818
+ */
2819
+ speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
2820
+ /**
2821
+ * Speech pace of the persona
2822
+ */
2823
+ speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
2824
+ /**
2825
+ * Languages the persona can understand. Multilingual combinations are limited by
2826
+ * multilingual speech recognition support.
2827
+ */
2828
+ understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
2829
+ /**
2830
+ * Last update timestamp
2831
+ */
2832
+ updatedAt: string;
2833
+ /**
2834
+ * Background story and behavioral patterns for the persona
2835
+ */
2836
+ backstoryPrompt?: string | null;
2837
+ /**
2838
+ * Human-readable description of the persona
2839
+ */
2840
+ description?: string | null;
2841
+ /**
2842
+ * Label shown in place of the name across the dashboard (e.g. a short descriptor
2843
+ * like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
2844
+ * or set null to display the name itself.
2845
+ */
2846
+ displayName?: string | null;
2847
+ /**
2848
+ * Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
2849
+ */
2850
+ secondaryLanguage?: 'EN' | null;
2851
+ }
2852
+ }
2853
+ /**
2854
+ * One brief to run an improv flow with.
2855
+ */
2462
2856
  interface HappyPath {
2463
2857
  id: string;
2464
2858
  /**
@@ -2475,6 +2869,11 @@ export declare namespace CustomerFlowUpdateResponse {
2475
2869
  * project.
2476
2870
  */
2477
2871
  environment: HappyPath.Environment | null;
2872
+ /**
2873
+ * The personas this brief hands the phone to, in order of first mention. Empty
2874
+ * when the brief inherits the happy path's: read the happy path's list.
2875
+ */
2876
+ handoffPersonas: Array<HappyPath.HandoffPersona>;
2478
2877
  isGenerated: boolean;
2479
2878
  /**
2480
2879
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -2489,7 +2888,9 @@ export declare namespace CustomerFlowUpdateResponse {
2489
2888
  */
2490
2889
  updatedAt: string;
2491
2890
  /**
2492
- * The brief the simulated customer improvises from.
2891
+ * The brief the simulated customer improvises from. A `@{persona:<id>}` mention
2892
+ * hands the phone to that persona mid-call; the sentences around the mention say
2893
+ * when.
2493
2894
  */
2494
2895
  prompt?: string | null;
2495
2896
  systemKey?: string | null;
@@ -2512,7 +2913,7 @@ export declare namespace CustomerFlowUpdateResponse {
2512
2913
  */
2513
2914
  interface Environment {
2514
2915
  id: string;
2515
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
2916
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
2516
2917
  backgroundNoiseVolume: number;
2517
2918
  /**
2518
2919
  * Creation timestamp in ISO 8601 format
@@ -2525,6 +2926,126 @@ export declare namespace CustomerFlowUpdateResponse {
2525
2926
  updatedAt: string;
2526
2927
  description?: string | null;
2527
2928
  }
2929
+ interface HandoffPersona {
2930
+ /**
2931
+ * Unique identifier of the persona
2932
+ */
2933
+ id: string;
2934
+ /**
2935
+ * Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
2936
+ * optional variants
2937
+ */
2938
+ accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
2939
+ /**
2940
+ * How old the caller sounds and behaves. Only ages the persona's accent has a
2941
+ * voice for are accepted; defaults to ADULT, which every accent supports.
2942
+ */
2943
+ age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
2944
+ /**
2945
+ * Background noise setting
2946
+ */
2947
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
2948
+ /**
2949
+ * Base emotional state of the persona
2950
+ */
2951
+ baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
2952
+ /**
2953
+ * How the persona confirms information
2954
+ */
2955
+ confirmationStyle: 'EXPLICIT' | 'VAGUE';
2956
+ /**
2957
+ * Creation timestamp
2958
+ */
2959
+ createdAt: string;
2960
+ /**
2961
+ * Gender of the persona
2962
+ */
2963
+ gender: 'MALE' | 'FEMALE';
2964
+ /**
2965
+ * Whether the persona uses filler words like "um" and "uh"
2966
+ */
2967
+ hasDisfluencies: boolean;
2968
+ /**
2969
+ * Maximum number of idle messages the persona will send before giving up
2970
+ */
2971
+ idleMessageMaxSpokenCount: number;
2972
+ /**
2973
+ * Whether the idle message counter resets when the agent speaks
2974
+ */
2975
+ idleMessageResetCountOnUserSpeechEnabled: boolean;
2976
+ /**
2977
+ * Messages the persona will say when the agent goes silent during a call. null =
2978
+ * "Automatic": language-appropriate defaults are used at call time.
2979
+ */
2980
+ idleMessages: Array<string> | null;
2981
+ /**
2982
+ * Seconds of silence before the persona sends an idle message
2983
+ */
2984
+ idleTimeoutSeconds: number;
2985
+ /**
2986
+ * How clearly the persona expresses their intentions
2987
+ */
2988
+ intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
2989
+ /**
2990
+ * Primary language ISO 639-1 code for the persona
2991
+ */
2992
+ language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
2993
+ /**
2994
+ * How reliable the persona's memory is
2995
+ */
2996
+ memoryReliability: 'HIGH' | 'LOW';
2997
+ /**
2998
+ * The name the agent will identify as during conversations
2999
+ */
3000
+ name: string;
3001
+ /**
3002
+ * Additional custom properties about the persona
3003
+ */
3004
+ properties: {
3005
+ [key: string]: unknown;
3006
+ };
3007
+ /**
3008
+ * Controls how quickly the persona responds to pauses in conversation (QUICK,
3009
+ * NORMAL, RELAXED). BARGE_IN also talks over the agent once it has held the floor
3010
+ * for several seconds.
3011
+ */
3012
+ responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN';
3013
+ /**
3014
+ * Speech clarity of the persona
3015
+ */
3016
+ speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
3017
+ /**
3018
+ * Speech pace of the persona
3019
+ */
3020
+ speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
3021
+ /**
3022
+ * Languages the persona can understand. Multilingual combinations are limited by
3023
+ * multilingual speech recognition support.
3024
+ */
3025
+ understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
3026
+ /**
3027
+ * Last update timestamp
3028
+ */
3029
+ updatedAt: string;
3030
+ /**
3031
+ * Background story and behavioral patterns for the persona
3032
+ */
3033
+ backstoryPrompt?: string | null;
3034
+ /**
3035
+ * Human-readable description of the persona
3036
+ */
3037
+ description?: string | null;
3038
+ /**
3039
+ * Label shown in place of the name across the dashboard (e.g. a short descriptor
3040
+ * like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
3041
+ * or set null to display the name itself.
3042
+ */
3043
+ displayName?: string | null;
3044
+ /**
3045
+ * Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
3046
+ */
3047
+ secondaryLanguage?: 'EN' | null;
3048
+ }
2528
3049
  /**
2529
3050
  * The persona this runs as instead of the happy path's. Null means it inherits.
2530
3051
  */
@@ -2546,7 +3067,7 @@ export declare namespace CustomerFlowUpdateResponse {
2546
3067
  /**
2547
3068
  * Background noise setting
2548
3069
  */
2549
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
3070
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
2550
3071
  /**
2551
3072
  * Base emotional state of the persona
2552
3073
  */
@@ -2770,7 +3291,7 @@ export declare namespace CustomerFlowUpdateResponse {
2770
3291
  */
2771
3292
  interface Environment {
2772
3293
  id: string;
2773
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
3294
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
2774
3295
  backgroundNoiseVolume: number;
2775
3296
  /**
2776
3297
  * Creation timestamp in ISO 8601 format
@@ -2804,7 +3325,7 @@ export declare namespace CustomerFlowUpdateResponse {
2804
3325
  /**
2805
3326
  * Background noise setting
2806
3327
  */
2807
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
3328
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
2808
3329
  /**
2809
3330
  * Base emotional state of the persona
2810
3331
  */
@@ -2959,7 +3480,7 @@ export declare namespace CustomerFlowUpdateResponse {
2959
3480
  */
2960
3481
  interface Environment {
2961
3482
  id: string;
2962
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
3483
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
2963
3484
  backgroundNoiseVolume: number;
2964
3485
  /**
2965
3486
  * Creation timestamp in ISO 8601 format
@@ -2993,7 +3514,7 @@ export declare namespace CustomerFlowUpdateResponse {
2993
3514
  /**
2994
3515
  * Background noise setting
2995
3516
  */
2996
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
3517
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
2997
3518
  /**
2998
3519
  * Base emotional state of the persona
2999
3520
  */
@@ -3270,7 +3791,7 @@ export declare namespace CustomerFlowListResponse {
3270
3791
  */
3271
3792
  interface Environment {
3272
3793
  id: string;
3273
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
3794
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
3274
3795
  backgroundNoiseVolume: number;
3275
3796
  /**
3276
3797
  * Creation timestamp in ISO 8601 format
@@ -3304,7 +3825,7 @@ export declare namespace CustomerFlowListResponse {
3304
3825
  /**
3305
3826
  * Background noise setting
3306
3827
  */
3307
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
3828
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
3308
3829
  /**
3309
3830
  * Base emotional state of the persona
3310
3831
  */
@@ -3465,7 +3986,7 @@ export declare namespace CustomerFlowListResponse {
3465
3986
  */
3466
3987
  interface Environment {
3467
3988
  id: string;
3468
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
3989
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
3469
3990
  backgroundNoiseVolume: number;
3470
3991
  /**
3471
3992
  * Creation timestamp in ISO 8601 format
@@ -3499,7 +4020,7 @@ export declare namespace CustomerFlowListResponse {
3499
4020
  /**
3500
4021
  * Background noise setting
3501
4022
  */
3502
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
4023
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
3503
4024
  /**
3504
4025
  * Base emotional state of the persona
3505
4026
  */
@@ -3710,6 +4231,11 @@ export declare namespace CustomerFlowListResponse {
3710
4231
  * project.
3711
4232
  */
3712
4233
  environment: EdgeCase.Environment | null;
4234
+ /**
4235
+ * The personas this brief hands the phone to, in order of first mention. Empty
4236
+ * when the brief inherits the happy path's: read the happy path's list.
4237
+ */
4238
+ handoffPersonas: Array<EdgeCase.HandoffPersona>;
3713
4239
  isGenerated: boolean;
3714
4240
  /**
3715
4241
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -3724,7 +4250,9 @@ export declare namespace CustomerFlowListResponse {
3724
4250
  */
3725
4251
  updatedAt: string;
3726
4252
  /**
3727
- * The brief the simulated customer improvises from.
4253
+ * The brief the simulated customer improvises from. A `@{persona:<id>}` mention
4254
+ * hands the phone to that persona mid-call; the sentences around the mention say
4255
+ * when.
3728
4256
  */
3729
4257
  prompt?: string | null;
3730
4258
  systemKey?: string | null;
@@ -3747,7 +4275,7 @@ export declare namespace CustomerFlowListResponse {
3747
4275
  */
3748
4276
  interface Environment {
3749
4277
  id: string;
3750
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
4278
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
3751
4279
  backgroundNoiseVolume: number;
3752
4280
  /**
3753
4281
  * Creation timestamp in ISO 8601 format
@@ -3760,6 +4288,126 @@ export declare namespace CustomerFlowListResponse {
3760
4288
  updatedAt: string;
3761
4289
  description?: string | null;
3762
4290
  }
4291
+ interface HandoffPersona {
4292
+ /**
4293
+ * Unique identifier of the persona
4294
+ */
4295
+ id: string;
4296
+ /**
4297
+ * Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
4298
+ * optional variants
4299
+ */
4300
+ accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
4301
+ /**
4302
+ * How old the caller sounds and behaves. Only ages the persona's accent has a
4303
+ * voice for are accepted; defaults to ADULT, which every accent supports.
4304
+ */
4305
+ age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
4306
+ /**
4307
+ * Background noise setting
4308
+ */
4309
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
4310
+ /**
4311
+ * Base emotional state of the persona
4312
+ */
4313
+ baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
4314
+ /**
4315
+ * How the persona confirms information
4316
+ */
4317
+ confirmationStyle: 'EXPLICIT' | 'VAGUE';
4318
+ /**
4319
+ * Creation timestamp
4320
+ */
4321
+ createdAt: string;
4322
+ /**
4323
+ * Gender of the persona
4324
+ */
4325
+ gender: 'MALE' | 'FEMALE';
4326
+ /**
4327
+ * Whether the persona uses filler words like "um" and "uh"
4328
+ */
4329
+ hasDisfluencies: boolean;
4330
+ /**
4331
+ * Maximum number of idle messages the persona will send before giving up
4332
+ */
4333
+ idleMessageMaxSpokenCount: number;
4334
+ /**
4335
+ * Whether the idle message counter resets when the agent speaks
4336
+ */
4337
+ idleMessageResetCountOnUserSpeechEnabled: boolean;
4338
+ /**
4339
+ * Messages the persona will say when the agent goes silent during a call. null =
4340
+ * "Automatic": language-appropriate defaults are used at call time.
4341
+ */
4342
+ idleMessages: Array<string> | null;
4343
+ /**
4344
+ * Seconds of silence before the persona sends an idle message
4345
+ */
4346
+ idleTimeoutSeconds: number;
4347
+ /**
4348
+ * How clearly the persona expresses their intentions
4349
+ */
4350
+ intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
4351
+ /**
4352
+ * Primary language ISO 639-1 code for the persona
4353
+ */
4354
+ language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
4355
+ /**
4356
+ * How reliable the persona's memory is
4357
+ */
4358
+ memoryReliability: 'HIGH' | 'LOW';
4359
+ /**
4360
+ * The name the agent will identify as during conversations
4361
+ */
4362
+ name: string;
4363
+ /**
4364
+ * Additional custom properties about the persona
4365
+ */
4366
+ properties: {
4367
+ [key: string]: unknown;
4368
+ };
4369
+ /**
4370
+ * Controls how quickly the persona responds to pauses in conversation (QUICK,
4371
+ * NORMAL, RELAXED). BARGE_IN also talks over the agent once it has held the floor
4372
+ * for several seconds.
4373
+ */
4374
+ responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN';
4375
+ /**
4376
+ * Speech clarity of the persona
4377
+ */
4378
+ speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
4379
+ /**
4380
+ * Speech pace of the persona
4381
+ */
4382
+ speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
4383
+ /**
4384
+ * Languages the persona can understand. Multilingual combinations are limited by
4385
+ * multilingual speech recognition support.
4386
+ */
4387
+ understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
4388
+ /**
4389
+ * Last update timestamp
4390
+ */
4391
+ updatedAt: string;
4392
+ /**
4393
+ * Background story and behavioral patterns for the persona
4394
+ */
4395
+ backstoryPrompt?: string | null;
4396
+ /**
4397
+ * Human-readable description of the persona
4398
+ */
4399
+ description?: string | null;
4400
+ /**
4401
+ * Label shown in place of the name across the dashboard (e.g. a short descriptor
4402
+ * like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
4403
+ * or set null to display the name itself.
4404
+ */
4405
+ displayName?: string | null;
4406
+ /**
4407
+ * Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
4408
+ */
4409
+ secondaryLanguage?: 'EN' | null;
4410
+ }
3763
4411
  /**
3764
4412
  * The persona this runs as instead of the happy path's. Null means it inherits.
3765
4413
  */
@@ -3781,7 +4429,7 @@ export declare namespace CustomerFlowListResponse {
3781
4429
  /**
3782
4430
  * Background noise setting
3783
4431
  */
3784
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
4432
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
3785
4433
  /**
3786
4434
  * Base emotional state of the persona
3787
4435
  */
@@ -3903,6 +4551,11 @@ export declare namespace CustomerFlowListResponse {
3903
4551
  * project.
3904
4552
  */
3905
4553
  environment: HappyPath.Environment | null;
4554
+ /**
4555
+ * The personas this brief hands the phone to, in order of first mention. Empty
4556
+ * when the brief inherits the happy path's: read the happy path's list.
4557
+ */
4558
+ handoffPersonas: Array<HappyPath.HandoffPersona>;
3906
4559
  isGenerated: boolean;
3907
4560
  /**
3908
4561
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -3917,7 +4570,9 @@ export declare namespace CustomerFlowListResponse {
3917
4570
  */
3918
4571
  updatedAt: string;
3919
4572
  /**
3920
- * The brief the simulated customer improvises from.
4573
+ * The brief the simulated customer improvises from. A `@{persona:<id>}` mention
4574
+ * hands the phone to that persona mid-call; the sentences around the mention say
4575
+ * when.
3921
4576
  */
3922
4577
  prompt?: string | null;
3923
4578
  systemKey?: string | null;
@@ -3929,29 +4584,149 @@ export declare namespace CustomerFlowListResponse {
3929
4584
  interface AdditionalExpectation {
3930
4585
  id: string;
3931
4586
  /**
3932
- * What the agent under test is graded against.
4587
+ * What the agent under test is graded against.
4588
+ */
4589
+ prompt: string;
4590
+ }
4591
+ /**
4592
+ * A simulation environment: the ambient conditions a customer flow variant runs
4593
+ * under. The list includes both your own and the ones Roark curates for every
4594
+ * project.
4595
+ */
4596
+ interface Environment {
4597
+ id: string;
4598
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
4599
+ backgroundNoiseVolume: number;
4600
+ /**
4601
+ * Creation timestamp in ISO 8601 format
4602
+ */
4603
+ createdAt: string;
4604
+ name: string;
4605
+ /**
4606
+ * Last update timestamp in ISO 8601 format
4607
+ */
4608
+ updatedAt: string;
4609
+ description?: string | null;
4610
+ }
4611
+ interface HandoffPersona {
4612
+ /**
4613
+ * Unique identifier of the persona
4614
+ */
4615
+ id: string;
4616
+ /**
4617
+ * Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
4618
+ * optional variants
4619
+ */
4620
+ accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
4621
+ /**
4622
+ * How old the caller sounds and behaves. Only ages the persona's accent has a
4623
+ * voice for are accepted; defaults to ADULT, which every accent supports.
4624
+ */
4625
+ age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
4626
+ /**
4627
+ * Background noise setting
4628
+ */
4629
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
4630
+ /**
4631
+ * Base emotional state of the persona
4632
+ */
4633
+ baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
4634
+ /**
4635
+ * How the persona confirms information
4636
+ */
4637
+ confirmationStyle: 'EXPLICIT' | 'VAGUE';
4638
+ /**
4639
+ * Creation timestamp
4640
+ */
4641
+ createdAt: string;
4642
+ /**
4643
+ * Gender of the persona
4644
+ */
4645
+ gender: 'MALE' | 'FEMALE';
4646
+ /**
4647
+ * Whether the persona uses filler words like "um" and "uh"
4648
+ */
4649
+ hasDisfluencies: boolean;
4650
+ /**
4651
+ * Maximum number of idle messages the persona will send before giving up
4652
+ */
4653
+ idleMessageMaxSpokenCount: number;
4654
+ /**
4655
+ * Whether the idle message counter resets when the agent speaks
4656
+ */
4657
+ idleMessageResetCountOnUserSpeechEnabled: boolean;
4658
+ /**
4659
+ * Messages the persona will say when the agent goes silent during a call. null =
4660
+ * "Automatic": language-appropriate defaults are used at call time.
4661
+ */
4662
+ idleMessages: Array<string> | null;
4663
+ /**
4664
+ * Seconds of silence before the persona sends an idle message
4665
+ */
4666
+ idleTimeoutSeconds: number;
4667
+ /**
4668
+ * How clearly the persona expresses their intentions
4669
+ */
4670
+ intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
4671
+ /**
4672
+ * Primary language ISO 639-1 code for the persona
4673
+ */
4674
+ language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
4675
+ /**
4676
+ * How reliable the persona's memory is
4677
+ */
4678
+ memoryReliability: 'HIGH' | 'LOW';
4679
+ /**
4680
+ * The name the agent will identify as during conversations
4681
+ */
4682
+ name: string;
4683
+ /**
4684
+ * Additional custom properties about the persona
4685
+ */
4686
+ properties: {
4687
+ [key: string]: unknown;
4688
+ };
4689
+ /**
4690
+ * Controls how quickly the persona responds to pauses in conversation (QUICK,
4691
+ * NORMAL, RELAXED). BARGE_IN also talks over the agent once it has held the floor
4692
+ * for several seconds.
4693
+ */
4694
+ responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN';
4695
+ /**
4696
+ * Speech clarity of the persona
4697
+ */
4698
+ speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
4699
+ /**
4700
+ * Speech pace of the persona
4701
+ */
4702
+ speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
4703
+ /**
4704
+ * Languages the persona can understand. Multilingual combinations are limited by
4705
+ * multilingual speech recognition support.
4706
+ */
4707
+ understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
4708
+ /**
4709
+ * Last update timestamp
3933
4710
  */
3934
- prompt: string;
3935
- }
3936
- /**
3937
- * A simulation environment: the ambient conditions a customer flow variant runs
3938
- * under. The list includes both your own and the ones Roark curates for every
3939
- * project.
3940
- */
3941
- interface Environment {
3942
- id: string;
3943
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
3944
- backgroundNoiseVolume: number;
4711
+ updatedAt: string;
3945
4712
  /**
3946
- * Creation timestamp in ISO 8601 format
4713
+ * Background story and behavioral patterns for the persona
3947
4714
  */
3948
- createdAt: string;
3949
- name: string;
4715
+ backstoryPrompt?: string | null;
3950
4716
  /**
3951
- * Last update timestamp in ISO 8601 format
4717
+ * Human-readable description of the persona
3952
4718
  */
3953
- updatedAt: string;
3954
4719
  description?: string | null;
4720
+ /**
4721
+ * Label shown in place of the name across the dashboard (e.g. a short descriptor
4722
+ * like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
4723
+ * or set null to display the name itself.
4724
+ */
4725
+ displayName?: string | null;
4726
+ /**
4727
+ * Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
4728
+ */
4729
+ secondaryLanguage?: 'EN' | null;
3955
4730
  }
3956
4731
  /**
3957
4732
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -3974,7 +4749,7 @@ export declare namespace CustomerFlowListResponse {
3974
4749
  /**
3975
4750
  * Background noise setting
3976
4751
  */
3977
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
4752
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
3978
4753
  /**
3979
4754
  * Base emotional state of the persona
3980
4755
  */
@@ -4198,7 +4973,7 @@ export declare namespace CustomerFlowListResponse {
4198
4973
  */
4199
4974
  interface Environment {
4200
4975
  id: string;
4201
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
4976
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
4202
4977
  backgroundNoiseVolume: number;
4203
4978
  /**
4204
4979
  * Creation timestamp in ISO 8601 format
@@ -4232,7 +5007,7 @@ export declare namespace CustomerFlowListResponse {
4232
5007
  /**
4233
5008
  * Background noise setting
4234
5009
  */
4235
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
5010
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
4236
5011
  /**
4237
5012
  * Base emotional state of the persona
4238
5013
  */
@@ -4387,7 +5162,7 @@ export declare namespace CustomerFlowListResponse {
4387
5162
  */
4388
5163
  interface Environment {
4389
5164
  id: string;
4390
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
5165
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
4391
5166
  backgroundNoiseVolume: number;
4392
5167
  /**
4393
5168
  * Creation timestamp in ISO 8601 format
@@ -4421,7 +5196,7 @@ export declare namespace CustomerFlowListResponse {
4421
5196
  /**
4422
5197
  * Background noise setting
4423
5198
  */
4424
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
5199
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
4425
5200
  /**
4426
5201
  * Base emotional state of the persona
4427
5202
  */
@@ -4722,7 +5497,7 @@ export declare namespace CustomerFlowDuplicateResponse {
4722
5497
  */
4723
5498
  interface Environment {
4724
5499
  id: string;
4725
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
5500
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
4726
5501
  backgroundNoiseVolume: number;
4727
5502
  /**
4728
5503
  * Creation timestamp in ISO 8601 format
@@ -4756,7 +5531,7 @@ export declare namespace CustomerFlowDuplicateResponse {
4756
5531
  /**
4757
5532
  * Background noise setting
4758
5533
  */
4759
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
5534
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
4760
5535
  /**
4761
5536
  * Base emotional state of the persona
4762
5537
  */
@@ -4917,7 +5692,7 @@ export declare namespace CustomerFlowDuplicateResponse {
4917
5692
  */
4918
5693
  interface Environment {
4919
5694
  id: string;
4920
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
5695
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
4921
5696
  backgroundNoiseVolume: number;
4922
5697
  /**
4923
5698
  * Creation timestamp in ISO 8601 format
@@ -4951,7 +5726,7 @@ export declare namespace CustomerFlowDuplicateResponse {
4951
5726
  /**
4952
5727
  * Background noise setting
4953
5728
  */
4954
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
5729
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
4955
5730
  /**
4956
5731
  * Base emotional state of the persona
4957
5732
  */
@@ -5162,6 +5937,11 @@ export declare namespace CustomerFlowDuplicateResponse {
5162
5937
  * project.
5163
5938
  */
5164
5939
  environment: EdgeCase.Environment | null;
5940
+ /**
5941
+ * The personas this brief hands the phone to, in order of first mention. Empty
5942
+ * when the brief inherits the happy path's: read the happy path's list.
5943
+ */
5944
+ handoffPersonas: Array<EdgeCase.HandoffPersona>;
5165
5945
  isGenerated: boolean;
5166
5946
  /**
5167
5947
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -5176,7 +5956,9 @@ export declare namespace CustomerFlowDuplicateResponse {
5176
5956
  */
5177
5957
  updatedAt: string;
5178
5958
  /**
5179
- * The brief the simulated customer improvises from.
5959
+ * The brief the simulated customer improvises from. A `@{persona:<id>}` mention
5960
+ * hands the phone to that persona mid-call; the sentences around the mention say
5961
+ * when.
5180
5962
  */
5181
5963
  prompt?: string | null;
5182
5964
  systemKey?: string | null;
@@ -5199,7 +5981,7 @@ export declare namespace CustomerFlowDuplicateResponse {
5199
5981
  */
5200
5982
  interface Environment {
5201
5983
  id: string;
5202
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
5984
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
5203
5985
  backgroundNoiseVolume: number;
5204
5986
  /**
5205
5987
  * Creation timestamp in ISO 8601 format
@@ -5212,6 +5994,126 @@ export declare namespace CustomerFlowDuplicateResponse {
5212
5994
  updatedAt: string;
5213
5995
  description?: string | null;
5214
5996
  }
5997
+ interface HandoffPersona {
5998
+ /**
5999
+ * Unique identifier of the persona
6000
+ */
6001
+ id: string;
6002
+ /**
6003
+ * Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
6004
+ * optional variants
6005
+ */
6006
+ accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
6007
+ /**
6008
+ * How old the caller sounds and behaves. Only ages the persona's accent has a
6009
+ * voice for are accepted; defaults to ADULT, which every accent supports.
6010
+ */
6011
+ age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
6012
+ /**
6013
+ * Background noise setting
6014
+ */
6015
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
6016
+ /**
6017
+ * Base emotional state of the persona
6018
+ */
6019
+ baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
6020
+ /**
6021
+ * How the persona confirms information
6022
+ */
6023
+ confirmationStyle: 'EXPLICIT' | 'VAGUE';
6024
+ /**
6025
+ * Creation timestamp
6026
+ */
6027
+ createdAt: string;
6028
+ /**
6029
+ * Gender of the persona
6030
+ */
6031
+ gender: 'MALE' | 'FEMALE';
6032
+ /**
6033
+ * Whether the persona uses filler words like "um" and "uh"
6034
+ */
6035
+ hasDisfluencies: boolean;
6036
+ /**
6037
+ * Maximum number of idle messages the persona will send before giving up
6038
+ */
6039
+ idleMessageMaxSpokenCount: number;
6040
+ /**
6041
+ * Whether the idle message counter resets when the agent speaks
6042
+ */
6043
+ idleMessageResetCountOnUserSpeechEnabled: boolean;
6044
+ /**
6045
+ * Messages the persona will say when the agent goes silent during a call. null =
6046
+ * "Automatic": language-appropriate defaults are used at call time.
6047
+ */
6048
+ idleMessages: Array<string> | null;
6049
+ /**
6050
+ * Seconds of silence before the persona sends an idle message
6051
+ */
6052
+ idleTimeoutSeconds: number;
6053
+ /**
6054
+ * How clearly the persona expresses their intentions
6055
+ */
6056
+ intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
6057
+ /**
6058
+ * Primary language ISO 639-1 code for the persona
6059
+ */
6060
+ language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
6061
+ /**
6062
+ * How reliable the persona's memory is
6063
+ */
6064
+ memoryReliability: 'HIGH' | 'LOW';
6065
+ /**
6066
+ * The name the agent will identify as during conversations
6067
+ */
6068
+ name: string;
6069
+ /**
6070
+ * Additional custom properties about the persona
6071
+ */
6072
+ properties: {
6073
+ [key: string]: unknown;
6074
+ };
6075
+ /**
6076
+ * Controls how quickly the persona responds to pauses in conversation (QUICK,
6077
+ * NORMAL, RELAXED). BARGE_IN also talks over the agent once it has held the floor
6078
+ * for several seconds.
6079
+ */
6080
+ responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN';
6081
+ /**
6082
+ * Speech clarity of the persona
6083
+ */
6084
+ speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
6085
+ /**
6086
+ * Speech pace of the persona
6087
+ */
6088
+ speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
6089
+ /**
6090
+ * Languages the persona can understand. Multilingual combinations are limited by
6091
+ * multilingual speech recognition support.
6092
+ */
6093
+ understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
6094
+ /**
6095
+ * Last update timestamp
6096
+ */
6097
+ updatedAt: string;
6098
+ /**
6099
+ * Background story and behavioral patterns for the persona
6100
+ */
6101
+ backstoryPrompt?: string | null;
6102
+ /**
6103
+ * Human-readable description of the persona
6104
+ */
6105
+ description?: string | null;
6106
+ /**
6107
+ * Label shown in place of the name across the dashboard (e.g. a short descriptor
6108
+ * like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
6109
+ * or set null to display the name itself.
6110
+ */
6111
+ displayName?: string | null;
6112
+ /**
6113
+ * Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
6114
+ */
6115
+ secondaryLanguage?: 'EN' | null;
6116
+ }
5215
6117
  /**
5216
6118
  * The persona this runs as instead of the happy path's. Null means it inherits.
5217
6119
  */
@@ -5233,7 +6135,7 @@ export declare namespace CustomerFlowDuplicateResponse {
5233
6135
  /**
5234
6136
  * Background noise setting
5235
6137
  */
5236
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
6138
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
5237
6139
  /**
5238
6140
  * Base emotional state of the persona
5239
6141
  */
@@ -5355,6 +6257,11 @@ export declare namespace CustomerFlowDuplicateResponse {
5355
6257
  * project.
5356
6258
  */
5357
6259
  environment: HappyPath.Environment | null;
6260
+ /**
6261
+ * The personas this brief hands the phone to, in order of first mention. Empty
6262
+ * when the brief inherits the happy path's: read the happy path's list.
6263
+ */
6264
+ handoffPersonas: Array<HappyPath.HandoffPersona>;
5358
6265
  isGenerated: boolean;
5359
6266
  /**
5360
6267
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -5369,7 +6276,9 @@ export declare namespace CustomerFlowDuplicateResponse {
5369
6276
  */
5370
6277
  updatedAt: string;
5371
6278
  /**
5372
- * The brief the simulated customer improvises from.
6279
+ * The brief the simulated customer improvises from. A `@{persona:<id>}` mention
6280
+ * hands the phone to that persona mid-call; the sentences around the mention say
6281
+ * when.
5373
6282
  */
5374
6283
  prompt?: string | null;
5375
6284
  systemKey?: string | null;
@@ -5392,18 +6301,138 @@ export declare namespace CustomerFlowDuplicateResponse {
5392
6301
  */
5393
6302
  interface Environment {
5394
6303
  id: string;
5395
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
6304
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
5396
6305
  backgroundNoiseVolume: number;
5397
6306
  /**
5398
6307
  * Creation timestamp in ISO 8601 format
5399
6308
  */
5400
- createdAt: string;
5401
- name: string;
6309
+ createdAt: string;
6310
+ name: string;
6311
+ /**
6312
+ * Last update timestamp in ISO 8601 format
6313
+ */
6314
+ updatedAt: string;
6315
+ description?: string | null;
6316
+ }
6317
+ interface HandoffPersona {
6318
+ /**
6319
+ * Unique identifier of the persona
6320
+ */
6321
+ id: string;
6322
+ /**
6323
+ * Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
6324
+ * optional variants
6325
+ */
6326
+ accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
6327
+ /**
6328
+ * How old the caller sounds and behaves. Only ages the persona's accent has a
6329
+ * voice for are accepted; defaults to ADULT, which every accent supports.
6330
+ */
6331
+ age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
6332
+ /**
6333
+ * Background noise setting
6334
+ */
6335
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
6336
+ /**
6337
+ * Base emotional state of the persona
6338
+ */
6339
+ baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
6340
+ /**
6341
+ * How the persona confirms information
6342
+ */
6343
+ confirmationStyle: 'EXPLICIT' | 'VAGUE';
6344
+ /**
6345
+ * Creation timestamp
6346
+ */
6347
+ createdAt: string;
6348
+ /**
6349
+ * Gender of the persona
6350
+ */
6351
+ gender: 'MALE' | 'FEMALE';
6352
+ /**
6353
+ * Whether the persona uses filler words like "um" and "uh"
6354
+ */
6355
+ hasDisfluencies: boolean;
6356
+ /**
6357
+ * Maximum number of idle messages the persona will send before giving up
6358
+ */
6359
+ idleMessageMaxSpokenCount: number;
6360
+ /**
6361
+ * Whether the idle message counter resets when the agent speaks
6362
+ */
6363
+ idleMessageResetCountOnUserSpeechEnabled: boolean;
6364
+ /**
6365
+ * Messages the persona will say when the agent goes silent during a call. null =
6366
+ * "Automatic": language-appropriate defaults are used at call time.
6367
+ */
6368
+ idleMessages: Array<string> | null;
6369
+ /**
6370
+ * Seconds of silence before the persona sends an idle message
6371
+ */
6372
+ idleTimeoutSeconds: number;
6373
+ /**
6374
+ * How clearly the persona expresses their intentions
6375
+ */
6376
+ intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
6377
+ /**
6378
+ * Primary language ISO 639-1 code for the persona
6379
+ */
6380
+ language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
6381
+ /**
6382
+ * How reliable the persona's memory is
6383
+ */
6384
+ memoryReliability: 'HIGH' | 'LOW';
6385
+ /**
6386
+ * The name the agent will identify as during conversations
6387
+ */
6388
+ name: string;
6389
+ /**
6390
+ * Additional custom properties about the persona
6391
+ */
6392
+ properties: {
6393
+ [key: string]: unknown;
6394
+ };
6395
+ /**
6396
+ * Controls how quickly the persona responds to pauses in conversation (QUICK,
6397
+ * NORMAL, RELAXED). BARGE_IN also talks over the agent once it has held the floor
6398
+ * for several seconds.
6399
+ */
6400
+ responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN';
6401
+ /**
6402
+ * Speech clarity of the persona
6403
+ */
6404
+ speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
6405
+ /**
6406
+ * Speech pace of the persona
6407
+ */
6408
+ speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
6409
+ /**
6410
+ * Languages the persona can understand. Multilingual combinations are limited by
6411
+ * multilingual speech recognition support.
6412
+ */
6413
+ understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
5402
6414
  /**
5403
- * Last update timestamp in ISO 8601 format
6415
+ * Last update timestamp
5404
6416
  */
5405
6417
  updatedAt: string;
6418
+ /**
6419
+ * Background story and behavioral patterns for the persona
6420
+ */
6421
+ backstoryPrompt?: string | null;
6422
+ /**
6423
+ * Human-readable description of the persona
6424
+ */
5406
6425
  description?: string | null;
6426
+ /**
6427
+ * Label shown in place of the name across the dashboard (e.g. a short descriptor
6428
+ * like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
6429
+ * or set null to display the name itself.
6430
+ */
6431
+ displayName?: string | null;
6432
+ /**
6433
+ * Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
6434
+ */
6435
+ secondaryLanguage?: 'EN' | null;
5407
6436
  }
5408
6437
  /**
5409
6438
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -5426,7 +6455,7 @@ export declare namespace CustomerFlowDuplicateResponse {
5426
6455
  /**
5427
6456
  * Background noise setting
5428
6457
  */
5429
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
6458
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
5430
6459
  /**
5431
6460
  * Base emotional state of the persona
5432
6461
  */
@@ -5650,7 +6679,7 @@ export declare namespace CustomerFlowDuplicateResponse {
5650
6679
  */
5651
6680
  interface Environment {
5652
6681
  id: string;
5653
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
6682
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
5654
6683
  backgroundNoiseVolume: number;
5655
6684
  /**
5656
6685
  * Creation timestamp in ISO 8601 format
@@ -5684,7 +6713,7 @@ export declare namespace CustomerFlowDuplicateResponse {
5684
6713
  /**
5685
6714
  * Background noise setting
5686
6715
  */
5687
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
6716
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
5688
6717
  /**
5689
6718
  * Base emotional state of the persona
5690
6719
  */
@@ -5839,7 +6868,7 @@ export declare namespace CustomerFlowDuplicateResponse {
5839
6868
  */
5840
6869
  interface Environment {
5841
6870
  id: string;
5842
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
6871
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
5843
6872
  backgroundNoiseVolume: number;
5844
6873
  /**
5845
6874
  * Creation timestamp in ISO 8601 format
@@ -5873,7 +6902,7 @@ export declare namespace CustomerFlowDuplicateResponse {
5873
6902
  /**
5874
6903
  * Background noise setting
5875
6904
  */
5876
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
6905
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
5877
6906
  /**
5878
6907
  * Base emotional state of the persona
5879
6908
  */
@@ -6149,7 +7178,7 @@ export declare namespace CustomerFlowGetByIDResponse {
6149
7178
  */
6150
7179
  interface Environment {
6151
7180
  id: string;
6152
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
7181
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
6153
7182
  backgroundNoiseVolume: number;
6154
7183
  /**
6155
7184
  * Creation timestamp in ISO 8601 format
@@ -6183,7 +7212,7 @@ export declare namespace CustomerFlowGetByIDResponse {
6183
7212
  /**
6184
7213
  * Background noise setting
6185
7214
  */
6186
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
7215
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
6187
7216
  /**
6188
7217
  * Base emotional state of the persona
6189
7218
  */
@@ -6344,7 +7373,7 @@ export declare namespace CustomerFlowGetByIDResponse {
6344
7373
  */
6345
7374
  interface Environment {
6346
7375
  id: string;
6347
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
7376
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
6348
7377
  backgroundNoiseVolume: number;
6349
7378
  /**
6350
7379
  * Creation timestamp in ISO 8601 format
@@ -6378,7 +7407,7 @@ export declare namespace CustomerFlowGetByIDResponse {
6378
7407
  /**
6379
7408
  * Background noise setting
6380
7409
  */
6381
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
7410
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
6382
7411
  /**
6383
7412
  * Base emotional state of the persona
6384
7413
  */
@@ -6589,6 +7618,11 @@ export declare namespace CustomerFlowGetByIDResponse {
6589
7618
  * project.
6590
7619
  */
6591
7620
  environment: EdgeCase.Environment | null;
7621
+ /**
7622
+ * The personas this brief hands the phone to, in order of first mention. Empty
7623
+ * when the brief inherits the happy path's: read the happy path's list.
7624
+ */
7625
+ handoffPersonas: Array<EdgeCase.HandoffPersona>;
6592
7626
  isGenerated: boolean;
6593
7627
  /**
6594
7628
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -6603,7 +7637,9 @@ export declare namespace CustomerFlowGetByIDResponse {
6603
7637
  */
6604
7638
  updatedAt: string;
6605
7639
  /**
6606
- * The brief the simulated customer improvises from.
7640
+ * The brief the simulated customer improvises from. A `@{persona:<id>}` mention
7641
+ * hands the phone to that persona mid-call; the sentences around the mention say
7642
+ * when.
6607
7643
  */
6608
7644
  prompt?: string | null;
6609
7645
  systemKey?: string | null;
@@ -6626,7 +7662,7 @@ export declare namespace CustomerFlowGetByIDResponse {
6626
7662
  */
6627
7663
  interface Environment {
6628
7664
  id: string;
6629
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
7665
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
6630
7666
  backgroundNoiseVolume: number;
6631
7667
  /**
6632
7668
  * Creation timestamp in ISO 8601 format
@@ -6639,6 +7675,126 @@ export declare namespace CustomerFlowGetByIDResponse {
6639
7675
  updatedAt: string;
6640
7676
  description?: string | null;
6641
7677
  }
7678
+ interface HandoffPersona {
7679
+ /**
7680
+ * Unique identifier of the persona
7681
+ */
7682
+ id: string;
7683
+ /**
7684
+ * Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
7685
+ * optional variants
7686
+ */
7687
+ accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
7688
+ /**
7689
+ * How old the caller sounds and behaves. Only ages the persona's accent has a
7690
+ * voice for are accepted; defaults to ADULT, which every accent supports.
7691
+ */
7692
+ age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
7693
+ /**
7694
+ * Background noise setting
7695
+ */
7696
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
7697
+ /**
7698
+ * Base emotional state of the persona
7699
+ */
7700
+ baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
7701
+ /**
7702
+ * How the persona confirms information
7703
+ */
7704
+ confirmationStyle: 'EXPLICIT' | 'VAGUE';
7705
+ /**
7706
+ * Creation timestamp
7707
+ */
7708
+ createdAt: string;
7709
+ /**
7710
+ * Gender of the persona
7711
+ */
7712
+ gender: 'MALE' | 'FEMALE';
7713
+ /**
7714
+ * Whether the persona uses filler words like "um" and "uh"
7715
+ */
7716
+ hasDisfluencies: boolean;
7717
+ /**
7718
+ * Maximum number of idle messages the persona will send before giving up
7719
+ */
7720
+ idleMessageMaxSpokenCount: number;
7721
+ /**
7722
+ * Whether the idle message counter resets when the agent speaks
7723
+ */
7724
+ idleMessageResetCountOnUserSpeechEnabled: boolean;
7725
+ /**
7726
+ * Messages the persona will say when the agent goes silent during a call. null =
7727
+ * "Automatic": language-appropriate defaults are used at call time.
7728
+ */
7729
+ idleMessages: Array<string> | null;
7730
+ /**
7731
+ * Seconds of silence before the persona sends an idle message
7732
+ */
7733
+ idleTimeoutSeconds: number;
7734
+ /**
7735
+ * How clearly the persona expresses their intentions
7736
+ */
7737
+ intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
7738
+ /**
7739
+ * Primary language ISO 639-1 code for the persona
7740
+ */
7741
+ language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
7742
+ /**
7743
+ * How reliable the persona's memory is
7744
+ */
7745
+ memoryReliability: 'HIGH' | 'LOW';
7746
+ /**
7747
+ * The name the agent will identify as during conversations
7748
+ */
7749
+ name: string;
7750
+ /**
7751
+ * Additional custom properties about the persona
7752
+ */
7753
+ properties: {
7754
+ [key: string]: unknown;
7755
+ };
7756
+ /**
7757
+ * Controls how quickly the persona responds to pauses in conversation (QUICK,
7758
+ * NORMAL, RELAXED). BARGE_IN also talks over the agent once it has held the floor
7759
+ * for several seconds.
7760
+ */
7761
+ responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN';
7762
+ /**
7763
+ * Speech clarity of the persona
7764
+ */
7765
+ speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
7766
+ /**
7767
+ * Speech pace of the persona
7768
+ */
7769
+ speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
7770
+ /**
7771
+ * Languages the persona can understand. Multilingual combinations are limited by
7772
+ * multilingual speech recognition support.
7773
+ */
7774
+ understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
7775
+ /**
7776
+ * Last update timestamp
7777
+ */
7778
+ updatedAt: string;
7779
+ /**
7780
+ * Background story and behavioral patterns for the persona
7781
+ */
7782
+ backstoryPrompt?: string | null;
7783
+ /**
7784
+ * Human-readable description of the persona
7785
+ */
7786
+ description?: string | null;
7787
+ /**
7788
+ * Label shown in place of the name across the dashboard (e.g. a short descriptor
7789
+ * like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
7790
+ * or set null to display the name itself.
7791
+ */
7792
+ displayName?: string | null;
7793
+ /**
7794
+ * Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
7795
+ */
7796
+ secondaryLanguage?: 'EN' | null;
7797
+ }
6642
7798
  /**
6643
7799
  * The persona this runs as instead of the happy path's. Null means it inherits.
6644
7800
  */
@@ -6660,7 +7816,7 @@ export declare namespace CustomerFlowGetByIDResponse {
6660
7816
  /**
6661
7817
  * Background noise setting
6662
7818
  */
6663
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
7819
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
6664
7820
  /**
6665
7821
  * Base emotional state of the persona
6666
7822
  */
@@ -6782,6 +7938,11 @@ export declare namespace CustomerFlowGetByIDResponse {
6782
7938
  * project.
6783
7939
  */
6784
7940
  environment: HappyPath.Environment | null;
7941
+ /**
7942
+ * The personas this brief hands the phone to, in order of first mention. Empty
7943
+ * when the brief inherits the happy path's: read the happy path's list.
7944
+ */
7945
+ handoffPersonas: Array<HappyPath.HandoffPersona>;
6785
7946
  isGenerated: boolean;
6786
7947
  /**
6787
7948
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -6796,7 +7957,9 @@ export declare namespace CustomerFlowGetByIDResponse {
6796
7957
  */
6797
7958
  updatedAt: string;
6798
7959
  /**
6799
- * The brief the simulated customer improvises from.
7960
+ * The brief the simulated customer improvises from. A `@{persona:<id>}` mention
7961
+ * hands the phone to that persona mid-call; the sentences around the mention say
7962
+ * when.
6800
7963
  */
6801
7964
  prompt?: string | null;
6802
7965
  systemKey?: string | null;
@@ -6819,18 +7982,138 @@ export declare namespace CustomerFlowGetByIDResponse {
6819
7982
  */
6820
7983
  interface Environment {
6821
7984
  id: string;
6822
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
7985
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
6823
7986
  backgroundNoiseVolume: number;
6824
7987
  /**
6825
7988
  * Creation timestamp in ISO 8601 format
6826
7989
  */
6827
- createdAt: string;
6828
- name: string;
7990
+ createdAt: string;
7991
+ name: string;
7992
+ /**
7993
+ * Last update timestamp in ISO 8601 format
7994
+ */
7995
+ updatedAt: string;
7996
+ description?: string | null;
7997
+ }
7998
+ interface HandoffPersona {
7999
+ /**
8000
+ * Unique identifier of the persona
8001
+ */
8002
+ id: string;
8003
+ /**
8004
+ * Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
8005
+ * optional variants
8006
+ */
8007
+ accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
8008
+ /**
8009
+ * How old the caller sounds and behaves. Only ages the persona's accent has a
8010
+ * voice for are accepted; defaults to ADULT, which every accent supports.
8011
+ */
8012
+ age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
8013
+ /**
8014
+ * Background noise setting
8015
+ */
8016
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
8017
+ /**
8018
+ * Base emotional state of the persona
8019
+ */
8020
+ baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
8021
+ /**
8022
+ * How the persona confirms information
8023
+ */
8024
+ confirmationStyle: 'EXPLICIT' | 'VAGUE';
8025
+ /**
8026
+ * Creation timestamp
8027
+ */
8028
+ createdAt: string;
8029
+ /**
8030
+ * Gender of the persona
8031
+ */
8032
+ gender: 'MALE' | 'FEMALE';
8033
+ /**
8034
+ * Whether the persona uses filler words like "um" and "uh"
8035
+ */
8036
+ hasDisfluencies: boolean;
8037
+ /**
8038
+ * Maximum number of idle messages the persona will send before giving up
8039
+ */
8040
+ idleMessageMaxSpokenCount: number;
8041
+ /**
8042
+ * Whether the idle message counter resets when the agent speaks
8043
+ */
8044
+ idleMessageResetCountOnUserSpeechEnabled: boolean;
8045
+ /**
8046
+ * Messages the persona will say when the agent goes silent during a call. null =
8047
+ * "Automatic": language-appropriate defaults are used at call time.
8048
+ */
8049
+ idleMessages: Array<string> | null;
8050
+ /**
8051
+ * Seconds of silence before the persona sends an idle message
8052
+ */
8053
+ idleTimeoutSeconds: number;
8054
+ /**
8055
+ * How clearly the persona expresses their intentions
8056
+ */
8057
+ intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
8058
+ /**
8059
+ * Primary language ISO 639-1 code for the persona
8060
+ */
8061
+ language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
8062
+ /**
8063
+ * How reliable the persona's memory is
8064
+ */
8065
+ memoryReliability: 'HIGH' | 'LOW';
8066
+ /**
8067
+ * The name the agent will identify as during conversations
8068
+ */
8069
+ name: string;
8070
+ /**
8071
+ * Additional custom properties about the persona
8072
+ */
8073
+ properties: {
8074
+ [key: string]: unknown;
8075
+ };
8076
+ /**
8077
+ * Controls how quickly the persona responds to pauses in conversation (QUICK,
8078
+ * NORMAL, RELAXED). BARGE_IN also talks over the agent once it has held the floor
8079
+ * for several seconds.
8080
+ */
8081
+ responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN';
8082
+ /**
8083
+ * Speech clarity of the persona
8084
+ */
8085
+ speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
8086
+ /**
8087
+ * Speech pace of the persona
8088
+ */
8089
+ speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
8090
+ /**
8091
+ * Languages the persona can understand. Multilingual combinations are limited by
8092
+ * multilingual speech recognition support.
8093
+ */
8094
+ understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
8095
+ /**
8096
+ * Last update timestamp
8097
+ */
8098
+ updatedAt: string;
8099
+ /**
8100
+ * Background story and behavioral patterns for the persona
8101
+ */
8102
+ backstoryPrompt?: string | null;
6829
8103
  /**
6830
- * Last update timestamp in ISO 8601 format
8104
+ * Human-readable description of the persona
6831
8105
  */
6832
- updatedAt: string;
6833
8106
  description?: string | null;
8107
+ /**
8108
+ * Label shown in place of the name across the dashboard (e.g. a short descriptor
8109
+ * like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
8110
+ * or set null to display the name itself.
8111
+ */
8112
+ displayName?: string | null;
8113
+ /**
8114
+ * Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
8115
+ */
8116
+ secondaryLanguage?: 'EN' | null;
6834
8117
  }
6835
8118
  /**
6836
8119
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -6853,7 +8136,7 @@ export declare namespace CustomerFlowGetByIDResponse {
6853
8136
  /**
6854
8137
  * Background noise setting
6855
8138
  */
6856
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
8139
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
6857
8140
  /**
6858
8141
  * Base emotional state of the persona
6859
8142
  */
@@ -7077,7 +8360,7 @@ export declare namespace CustomerFlowGetByIDResponse {
7077
8360
  */
7078
8361
  interface Environment {
7079
8362
  id: string;
7080
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
8363
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
7081
8364
  backgroundNoiseVolume: number;
7082
8365
  /**
7083
8366
  * Creation timestamp in ISO 8601 format
@@ -7111,7 +8394,7 @@ export declare namespace CustomerFlowGetByIDResponse {
7111
8394
  /**
7112
8395
  * Background noise setting
7113
8396
  */
7114
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
8397
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
7115
8398
  /**
7116
8399
  * Base emotional state of the persona
7117
8400
  */
@@ -7266,7 +8549,7 @@ export declare namespace CustomerFlowGetByIDResponse {
7266
8549
  */
7267
8550
  interface Environment {
7268
8551
  id: string;
7269
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
8552
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
7270
8553
  backgroundNoiseVolume: number;
7271
8554
  /**
7272
8555
  * Creation timestamp in ISO 8601 format
@@ -7300,7 +8583,7 @@ export declare namespace CustomerFlowGetByIDResponse {
7300
8583
  /**
7301
8584
  * Background noise setting
7302
8585
  */
7303
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
8586
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
7304
8587
  /**
7305
8588
  * Base emotional state of the persona
7306
8589
  */
@@ -7485,7 +8768,7 @@ export declare namespace CustomerFlowReplaceGraphResponse {
7485
8768
  */
7486
8769
  interface Environment {
7487
8770
  id: string;
7488
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
8771
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
7489
8772
  backgroundNoiseVolume: number;
7490
8773
  /**
7491
8774
  * Creation timestamp in ISO 8601 format
@@ -7519,7 +8802,7 @@ export declare namespace CustomerFlowReplaceGraphResponse {
7519
8802
  /**
7520
8803
  * Background noise setting
7521
8804
  */
7522
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
8805
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
7523
8806
  /**
7524
8807
  * Base emotional state of the persona
7525
8808
  */
@@ -7641,6 +8924,11 @@ export declare namespace CustomerFlowReplaceGraphResponse {
7641
8924
  * project.
7642
8925
  */
7643
8926
  environment: ImprovFlowVariant.Environment | null;
8927
+ /**
8928
+ * The personas this brief hands the phone to, in order of first mention. Empty
8929
+ * when the brief inherits the happy path's: read the happy path's list.
8930
+ */
8931
+ handoffPersonas: Array<ImprovFlowVariant.HandoffPersona>;
7644
8932
  isGenerated: boolean;
7645
8933
  /**
7646
8934
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -7655,7 +8943,9 @@ export declare namespace CustomerFlowReplaceGraphResponse {
7655
8943
  */
7656
8944
  updatedAt: string;
7657
8945
  /**
7658
- * The brief the simulated customer improvises from.
8946
+ * The brief the simulated customer improvises from. A `@{persona:<id>}` mention
8947
+ * hands the phone to that persona mid-call; the sentences around the mention say
8948
+ * when.
7659
8949
  */
7660
8950
  prompt?: string | null;
7661
8951
  systemKey?: string | null;
@@ -7678,7 +8968,7 @@ export declare namespace CustomerFlowReplaceGraphResponse {
7678
8968
  */
7679
8969
  interface Environment {
7680
8970
  id: string;
7681
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
8971
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
7682
8972
  backgroundNoiseVolume: number;
7683
8973
  /**
7684
8974
  * Creation timestamp in ISO 8601 format
@@ -7691,6 +8981,126 @@ export declare namespace CustomerFlowReplaceGraphResponse {
7691
8981
  updatedAt: string;
7692
8982
  description?: string | null;
7693
8983
  }
8984
+ interface HandoffPersona {
8985
+ /**
8986
+ * Unique identifier of the persona
8987
+ */
8988
+ id: string;
8989
+ /**
8990
+ * Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
8991
+ * optional variants
8992
+ */
8993
+ accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
8994
+ /**
8995
+ * How old the caller sounds and behaves. Only ages the persona's accent has a
8996
+ * voice for are accepted; defaults to ADULT, which every accent supports.
8997
+ */
8998
+ age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
8999
+ /**
9000
+ * Background noise setting
9001
+ */
9002
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
9003
+ /**
9004
+ * Base emotional state of the persona
9005
+ */
9006
+ baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
9007
+ /**
9008
+ * How the persona confirms information
9009
+ */
9010
+ confirmationStyle: 'EXPLICIT' | 'VAGUE';
9011
+ /**
9012
+ * Creation timestamp
9013
+ */
9014
+ createdAt: string;
9015
+ /**
9016
+ * Gender of the persona
9017
+ */
9018
+ gender: 'MALE' | 'FEMALE';
9019
+ /**
9020
+ * Whether the persona uses filler words like "um" and "uh"
9021
+ */
9022
+ hasDisfluencies: boolean;
9023
+ /**
9024
+ * Maximum number of idle messages the persona will send before giving up
9025
+ */
9026
+ idleMessageMaxSpokenCount: number;
9027
+ /**
9028
+ * Whether the idle message counter resets when the agent speaks
9029
+ */
9030
+ idleMessageResetCountOnUserSpeechEnabled: boolean;
9031
+ /**
9032
+ * Messages the persona will say when the agent goes silent during a call. null =
9033
+ * "Automatic": language-appropriate defaults are used at call time.
9034
+ */
9035
+ idleMessages: Array<string> | null;
9036
+ /**
9037
+ * Seconds of silence before the persona sends an idle message
9038
+ */
9039
+ idleTimeoutSeconds: number;
9040
+ /**
9041
+ * How clearly the persona expresses their intentions
9042
+ */
9043
+ intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
9044
+ /**
9045
+ * Primary language ISO 639-1 code for the persona
9046
+ */
9047
+ language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
9048
+ /**
9049
+ * How reliable the persona's memory is
9050
+ */
9051
+ memoryReliability: 'HIGH' | 'LOW';
9052
+ /**
9053
+ * The name the agent will identify as during conversations
9054
+ */
9055
+ name: string;
9056
+ /**
9057
+ * Additional custom properties about the persona
9058
+ */
9059
+ properties: {
9060
+ [key: string]: unknown;
9061
+ };
9062
+ /**
9063
+ * Controls how quickly the persona responds to pauses in conversation (QUICK,
9064
+ * NORMAL, RELAXED). BARGE_IN also talks over the agent once it has held the floor
9065
+ * for several seconds.
9066
+ */
9067
+ responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN';
9068
+ /**
9069
+ * Speech clarity of the persona
9070
+ */
9071
+ speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
9072
+ /**
9073
+ * Speech pace of the persona
9074
+ */
9075
+ speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
9076
+ /**
9077
+ * Languages the persona can understand. Multilingual combinations are limited by
9078
+ * multilingual speech recognition support.
9079
+ */
9080
+ understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
9081
+ /**
9082
+ * Last update timestamp
9083
+ */
9084
+ updatedAt: string;
9085
+ /**
9086
+ * Background story and behavioral patterns for the persona
9087
+ */
9088
+ backstoryPrompt?: string | null;
9089
+ /**
9090
+ * Human-readable description of the persona
9091
+ */
9092
+ description?: string | null;
9093
+ /**
9094
+ * Label shown in place of the name across the dashboard (e.g. a short descriptor
9095
+ * like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
9096
+ * or set null to display the name itself.
9097
+ */
9098
+ displayName?: string | null;
9099
+ /**
9100
+ * Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
9101
+ */
9102
+ secondaryLanguage?: 'EN' | null;
9103
+ }
7694
9104
  /**
7695
9105
  * The persona this runs as instead of the happy path's. Null means it inherits.
7696
9106
  */
@@ -7712,7 +9122,7 @@ export declare namespace CustomerFlowReplaceGraphResponse {
7712
9122
  /**
7713
9123
  * Background noise setting
7714
9124
  */
7715
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
9125
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
7716
9126
  /**
7717
9127
  * Base emotional state of the persona
7718
9128
  */
@@ -7867,7 +9277,7 @@ export declare namespace CustomerFlowReplaceGraphResponse {
7867
9277
  */
7868
9278
  interface Environment {
7869
9279
  id: string;
7870
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
9280
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
7871
9281
  backgroundNoiseVolume: number;
7872
9282
  /**
7873
9283
  * Creation timestamp in ISO 8601 format
@@ -7901,7 +9311,7 @@ export declare namespace CustomerFlowReplaceGraphResponse {
7901
9311
  /**
7902
9312
  * Background noise setting
7903
9313
  */
7904
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
9314
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
7905
9315
  /**
7906
9316
  * Base emotional state of the persona
7907
9317
  */
@@ -8071,7 +9481,7 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
8071
9481
  */
8072
9482
  interface Environment {
8073
9483
  id: string;
8074
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
9484
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
8075
9485
  backgroundNoiseVolume: number;
8076
9486
  /**
8077
9487
  * Creation timestamp in ISO 8601 format
@@ -8105,7 +9515,7 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
8105
9515
  /**
8106
9516
  * Background noise setting
8107
9517
  */
8108
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
9518
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
8109
9519
  /**
8110
9520
  * Base emotional state of the persona
8111
9521
  */
@@ -8227,6 +9637,11 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
8227
9637
  * project.
8228
9638
  */
8229
9639
  environment: ImprovFlowVariant.Environment | null;
9640
+ /**
9641
+ * The personas this brief hands the phone to, in order of first mention. Empty
9642
+ * when the brief inherits the happy path's: read the happy path's list.
9643
+ */
9644
+ handoffPersonas: Array<ImprovFlowVariant.HandoffPersona>;
8230
9645
  isGenerated: boolean;
8231
9646
  /**
8232
9647
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -8241,7 +9656,9 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
8241
9656
  */
8242
9657
  updatedAt: string;
8243
9658
  /**
8244
- * The brief the simulated customer improvises from.
9659
+ * The brief the simulated customer improvises from. A `@{persona:<id>}` mention
9660
+ * hands the phone to that persona mid-call; the sentences around the mention say
9661
+ * when.
8245
9662
  */
8246
9663
  prompt?: string | null;
8247
9664
  systemKey?: string | null;
@@ -8264,7 +9681,7 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
8264
9681
  */
8265
9682
  interface Environment {
8266
9683
  id: string;
8267
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
9684
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
8268
9685
  backgroundNoiseVolume: number;
8269
9686
  /**
8270
9687
  * Creation timestamp in ISO 8601 format
@@ -8277,6 +9694,126 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
8277
9694
  updatedAt: string;
8278
9695
  description?: string | null;
8279
9696
  }
9697
+ interface HandoffPersona {
9698
+ /**
9699
+ * Unique identifier of the persona
9700
+ */
9701
+ id: string;
9702
+ /**
9703
+ * Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
9704
+ * optional variants
9705
+ */
9706
+ accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
9707
+ /**
9708
+ * How old the caller sounds and behaves. Only ages the persona's accent has a
9709
+ * voice for are accepted; defaults to ADULT, which every accent supports.
9710
+ */
9711
+ age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
9712
+ /**
9713
+ * Background noise setting
9714
+ */
9715
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
9716
+ /**
9717
+ * Base emotional state of the persona
9718
+ */
9719
+ baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
9720
+ /**
9721
+ * How the persona confirms information
9722
+ */
9723
+ confirmationStyle: 'EXPLICIT' | 'VAGUE';
9724
+ /**
9725
+ * Creation timestamp
9726
+ */
9727
+ createdAt: string;
9728
+ /**
9729
+ * Gender of the persona
9730
+ */
9731
+ gender: 'MALE' | 'FEMALE';
9732
+ /**
9733
+ * Whether the persona uses filler words like "um" and "uh"
9734
+ */
9735
+ hasDisfluencies: boolean;
9736
+ /**
9737
+ * Maximum number of idle messages the persona will send before giving up
9738
+ */
9739
+ idleMessageMaxSpokenCount: number;
9740
+ /**
9741
+ * Whether the idle message counter resets when the agent speaks
9742
+ */
9743
+ idleMessageResetCountOnUserSpeechEnabled: boolean;
9744
+ /**
9745
+ * Messages the persona will say when the agent goes silent during a call. null =
9746
+ * "Automatic": language-appropriate defaults are used at call time.
9747
+ */
9748
+ idleMessages: Array<string> | null;
9749
+ /**
9750
+ * Seconds of silence before the persona sends an idle message
9751
+ */
9752
+ idleTimeoutSeconds: number;
9753
+ /**
9754
+ * How clearly the persona expresses their intentions
9755
+ */
9756
+ intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
9757
+ /**
9758
+ * Primary language ISO 639-1 code for the persona
9759
+ */
9760
+ language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
9761
+ /**
9762
+ * How reliable the persona's memory is
9763
+ */
9764
+ memoryReliability: 'HIGH' | 'LOW';
9765
+ /**
9766
+ * The name the agent will identify as during conversations
9767
+ */
9768
+ name: string;
9769
+ /**
9770
+ * Additional custom properties about the persona
9771
+ */
9772
+ properties: {
9773
+ [key: string]: unknown;
9774
+ };
9775
+ /**
9776
+ * Controls how quickly the persona responds to pauses in conversation (QUICK,
9777
+ * NORMAL, RELAXED). BARGE_IN also talks over the agent once it has held the floor
9778
+ * for several seconds.
9779
+ */
9780
+ responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN';
9781
+ /**
9782
+ * Speech clarity of the persona
9783
+ */
9784
+ speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
9785
+ /**
9786
+ * Speech pace of the persona
9787
+ */
9788
+ speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
9789
+ /**
9790
+ * Languages the persona can understand. Multilingual combinations are limited by
9791
+ * multilingual speech recognition support.
9792
+ */
9793
+ understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
9794
+ /**
9795
+ * Last update timestamp
9796
+ */
9797
+ updatedAt: string;
9798
+ /**
9799
+ * Background story and behavioral patterns for the persona
9800
+ */
9801
+ backstoryPrompt?: string | null;
9802
+ /**
9803
+ * Human-readable description of the persona
9804
+ */
9805
+ description?: string | null;
9806
+ /**
9807
+ * Label shown in place of the name across the dashboard (e.g. a short descriptor
9808
+ * like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
9809
+ * or set null to display the name itself.
9810
+ */
9811
+ displayName?: string | null;
9812
+ /**
9813
+ * Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
9814
+ */
9815
+ secondaryLanguage?: 'EN' | null;
9816
+ }
8280
9817
  /**
8281
9818
  * The persona this runs as instead of the happy path's. Null means it inherits.
8282
9819
  */
@@ -8298,7 +9835,7 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
8298
9835
  /**
8299
9836
  * Background noise setting
8300
9837
  */
8301
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
9838
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
8302
9839
  /**
8303
9840
  * Base emotional state of the persona
8304
9841
  */
@@ -8453,7 +9990,7 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
8453
9990
  */
8454
9991
  interface Environment {
8455
9992
  id: string;
8456
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
9993
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
8457
9994
  backgroundNoiseVolume: number;
8458
9995
  /**
8459
9996
  * Creation timestamp in ISO 8601 format
@@ -8487,7 +10024,7 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
8487
10024
  /**
8488
10025
  * Background noise setting
8489
10026
  */
8490
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
10027
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
8491
10028
  /**
8492
10029
  * Base emotional state of the persona
8493
10030
  */