@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
@@ -132,7 +132,7 @@ export declare namespace CustomerFlowEdgeCaseUpdateResponse {
132
132
  */
133
133
  interface Environment {
134
134
  id: string;
135
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
135
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
136
136
  backgroundNoiseVolume: number;
137
137
  /**
138
138
  * Creation timestamp in ISO 8601 format
@@ -166,7 +166,7 @@ export declare namespace CustomerFlowEdgeCaseUpdateResponse {
166
166
  /**
167
167
  * Background noise setting
168
168
  */
169
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
169
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
170
170
  /**
171
171
  * Base emotional state of the persona
172
172
  */
@@ -288,6 +288,11 @@ export declare namespace CustomerFlowEdgeCaseUpdateResponse {
288
288
  * project.
289
289
  */
290
290
  environment: ImprovFlowVariant.Environment | null;
291
+ /**
292
+ * The personas this brief hands the phone to, in order of first mention. Empty
293
+ * when the brief inherits the happy path's: read the happy path's list.
294
+ */
295
+ handoffPersonas: Array<ImprovFlowVariant.HandoffPersona>;
291
296
  isGenerated: boolean;
292
297
  /**
293
298
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -302,7 +307,9 @@ export declare namespace CustomerFlowEdgeCaseUpdateResponse {
302
307
  */
303
308
  updatedAt: string;
304
309
  /**
305
- * The brief the simulated customer improvises from.
310
+ * The brief the simulated customer improvises from. A `@{persona:<id>}` mention
311
+ * hands the phone to that persona mid-call; the sentences around the mention say
312
+ * when.
306
313
  */
307
314
  prompt?: string | null;
308
315
  systemKey?: string | null;
@@ -325,7 +332,7 @@ export declare namespace CustomerFlowEdgeCaseUpdateResponse {
325
332
  */
326
333
  interface Environment {
327
334
  id: string;
328
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
335
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
329
336
  backgroundNoiseVolume: number;
330
337
  /**
331
338
  * Creation timestamp in ISO 8601 format
@@ -338,6 +345,126 @@ export declare namespace CustomerFlowEdgeCaseUpdateResponse {
338
345
  updatedAt: string;
339
346
  description?: string | null;
340
347
  }
348
+ interface HandoffPersona {
349
+ /**
350
+ * Unique identifier of the persona
351
+ */
352
+ id: string;
353
+ /**
354
+ * Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
355
+ * optional variants
356
+ */
357
+ 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';
358
+ /**
359
+ * How old the caller sounds and behaves. Only ages the persona's accent has a
360
+ * voice for are accepted; defaults to ADULT, which every accent supports.
361
+ */
362
+ age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
363
+ /**
364
+ * Background noise setting
365
+ */
366
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
367
+ /**
368
+ * Base emotional state of the persona
369
+ */
370
+ baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
371
+ /**
372
+ * How the persona confirms information
373
+ */
374
+ confirmationStyle: 'EXPLICIT' | 'VAGUE';
375
+ /**
376
+ * Creation timestamp
377
+ */
378
+ createdAt: string;
379
+ /**
380
+ * Gender of the persona
381
+ */
382
+ gender: 'MALE' | 'FEMALE';
383
+ /**
384
+ * Whether the persona uses filler words like "um" and "uh"
385
+ */
386
+ hasDisfluencies: boolean;
387
+ /**
388
+ * Maximum number of idle messages the persona will send before giving up
389
+ */
390
+ idleMessageMaxSpokenCount: number;
391
+ /**
392
+ * Whether the idle message counter resets when the agent speaks
393
+ */
394
+ idleMessageResetCountOnUserSpeechEnabled: boolean;
395
+ /**
396
+ * Messages the persona will say when the agent goes silent during a call. null =
397
+ * "Automatic": language-appropriate defaults are used at call time.
398
+ */
399
+ idleMessages: Array<string> | null;
400
+ /**
401
+ * Seconds of silence before the persona sends an idle message
402
+ */
403
+ idleTimeoutSeconds: number;
404
+ /**
405
+ * How clearly the persona expresses their intentions
406
+ */
407
+ intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
408
+ /**
409
+ * Primary language ISO 639-1 code for the persona
410
+ */
411
+ language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
412
+ /**
413
+ * How reliable the persona's memory is
414
+ */
415
+ memoryReliability: 'HIGH' | 'LOW';
416
+ /**
417
+ * The name the agent will identify as during conversations
418
+ */
419
+ name: string;
420
+ /**
421
+ * Additional custom properties about the persona
422
+ */
423
+ properties: {
424
+ [key: string]: unknown;
425
+ };
426
+ /**
427
+ * Controls how quickly the persona responds to pauses in conversation (QUICK,
428
+ * NORMAL, RELAXED). BARGE_IN also talks over the agent once it has held the floor
429
+ * for several seconds.
430
+ */
431
+ responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN';
432
+ /**
433
+ * Speech clarity of the persona
434
+ */
435
+ speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
436
+ /**
437
+ * Speech pace of the persona
438
+ */
439
+ speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
440
+ /**
441
+ * Languages the persona can understand. Multilingual combinations are limited by
442
+ * multilingual speech recognition support.
443
+ */
444
+ understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
445
+ /**
446
+ * Last update timestamp
447
+ */
448
+ updatedAt: string;
449
+ /**
450
+ * Background story and behavioral patterns for the persona
451
+ */
452
+ backstoryPrompt?: string | null;
453
+ /**
454
+ * Human-readable description of the persona
455
+ */
456
+ description?: string | null;
457
+ /**
458
+ * Label shown in place of the name across the dashboard (e.g. a short descriptor
459
+ * like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
460
+ * or set null to display the name itself.
461
+ */
462
+ displayName?: string | null;
463
+ /**
464
+ * Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
465
+ */
466
+ secondaryLanguage?: 'EN' | null;
467
+ }
341
468
  /**
342
469
  * The persona this runs as instead of the happy path's. Null means it inherits.
343
470
  */
@@ -359,7 +486,7 @@ export declare namespace CustomerFlowEdgeCaseUpdateResponse {
359
486
  /**
360
487
  * Background noise setting
361
488
  */
362
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
489
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
363
490
  /**
364
491
  * Base emotional state of the persona
365
492
  */
@@ -514,7 +641,7 @@ export declare namespace CustomerFlowEdgeCaseUpdateResponse {
514
641
  */
515
642
  interface Environment {
516
643
  id: string;
517
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
644
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
518
645
  backgroundNoiseVolume: number;
519
646
  /**
520
647
  * Creation timestamp in ISO 8601 format
@@ -548,7 +675,7 @@ export declare namespace CustomerFlowEdgeCaseUpdateResponse {
548
675
  /**
549
676
  * Background noise setting
550
677
  */
551
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
678
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
552
679
  /**
553
680
  * Base emotional state of the persona
554
681
  */
@@ -717,7 +844,7 @@ export declare namespace CustomerFlowEdgeCaseAddResponse {
717
844
  */
718
845
  interface Environment {
719
846
  id: string;
720
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
847
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
721
848
  backgroundNoiseVolume: number;
722
849
  /**
723
850
  * Creation timestamp in ISO 8601 format
@@ -751,7 +878,7 @@ export declare namespace CustomerFlowEdgeCaseAddResponse {
751
878
  /**
752
879
  * Background noise setting
753
880
  */
754
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
881
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
755
882
  /**
756
883
  * Base emotional state of the persona
757
884
  */
@@ -873,6 +1000,11 @@ export declare namespace CustomerFlowEdgeCaseAddResponse {
873
1000
  * project.
874
1001
  */
875
1002
  environment: ImprovFlowVariant.Environment | null;
1003
+ /**
1004
+ * The personas this brief hands the phone to, in order of first mention. Empty
1005
+ * when the brief inherits the happy path's: read the happy path's list.
1006
+ */
1007
+ handoffPersonas: Array<ImprovFlowVariant.HandoffPersona>;
876
1008
  isGenerated: boolean;
877
1009
  /**
878
1010
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -887,7 +1019,9 @@ export declare namespace CustomerFlowEdgeCaseAddResponse {
887
1019
  */
888
1020
  updatedAt: string;
889
1021
  /**
890
- * The brief the simulated customer improvises from.
1022
+ * The brief the simulated customer improvises from. A `@{persona:<id>}` mention
1023
+ * hands the phone to that persona mid-call; the sentences around the mention say
1024
+ * when.
891
1025
  */
892
1026
  prompt?: string | null;
893
1027
  systemKey?: string | null;
@@ -910,7 +1044,7 @@ export declare namespace CustomerFlowEdgeCaseAddResponse {
910
1044
  */
911
1045
  interface Environment {
912
1046
  id: string;
913
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
1047
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
914
1048
  backgroundNoiseVolume: number;
915
1049
  /**
916
1050
  * Creation timestamp in ISO 8601 format
@@ -923,6 +1057,126 @@ export declare namespace CustomerFlowEdgeCaseAddResponse {
923
1057
  updatedAt: string;
924
1058
  description?: string | null;
925
1059
  }
1060
+ interface HandoffPersona {
1061
+ /**
1062
+ * Unique identifier of the persona
1063
+ */
1064
+ id: string;
1065
+ /**
1066
+ * Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
1067
+ * optional variants
1068
+ */
1069
+ 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';
1070
+ /**
1071
+ * How old the caller sounds and behaves. Only ages the persona's accent has a
1072
+ * voice for are accepted; defaults to ADULT, which every accent supports.
1073
+ */
1074
+ age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
1075
+ /**
1076
+ * Background noise setting
1077
+ */
1078
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1079
+ /**
1080
+ * Base emotional state of the persona
1081
+ */
1082
+ baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
1083
+ /**
1084
+ * How the persona confirms information
1085
+ */
1086
+ confirmationStyle: 'EXPLICIT' | 'VAGUE';
1087
+ /**
1088
+ * Creation timestamp
1089
+ */
1090
+ createdAt: string;
1091
+ /**
1092
+ * Gender of the persona
1093
+ */
1094
+ gender: 'MALE' | 'FEMALE';
1095
+ /**
1096
+ * Whether the persona uses filler words like "um" and "uh"
1097
+ */
1098
+ hasDisfluencies: boolean;
1099
+ /**
1100
+ * Maximum number of idle messages the persona will send before giving up
1101
+ */
1102
+ idleMessageMaxSpokenCount: number;
1103
+ /**
1104
+ * Whether the idle message counter resets when the agent speaks
1105
+ */
1106
+ idleMessageResetCountOnUserSpeechEnabled: boolean;
1107
+ /**
1108
+ * Messages the persona will say when the agent goes silent during a call. null =
1109
+ * "Automatic": language-appropriate defaults are used at call time.
1110
+ */
1111
+ idleMessages: Array<string> | null;
1112
+ /**
1113
+ * Seconds of silence before the persona sends an idle message
1114
+ */
1115
+ idleTimeoutSeconds: number;
1116
+ /**
1117
+ * How clearly the persona expresses their intentions
1118
+ */
1119
+ intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
1120
+ /**
1121
+ * Primary language ISO 639-1 code for the persona
1122
+ */
1123
+ language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
1124
+ /**
1125
+ * How reliable the persona's memory is
1126
+ */
1127
+ memoryReliability: 'HIGH' | 'LOW';
1128
+ /**
1129
+ * The name the agent will identify as during conversations
1130
+ */
1131
+ name: string;
1132
+ /**
1133
+ * Additional custom properties about the persona
1134
+ */
1135
+ properties: {
1136
+ [key: string]: unknown;
1137
+ };
1138
+ /**
1139
+ * Controls how quickly the persona responds to pauses in conversation (QUICK,
1140
+ * NORMAL, RELAXED). BARGE_IN also talks over the agent once it has held the floor
1141
+ * for several seconds.
1142
+ */
1143
+ responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN';
1144
+ /**
1145
+ * Speech clarity of the persona
1146
+ */
1147
+ speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
1148
+ /**
1149
+ * Speech pace of the persona
1150
+ */
1151
+ speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
1152
+ /**
1153
+ * Languages the persona can understand. Multilingual combinations are limited by
1154
+ * multilingual speech recognition support.
1155
+ */
1156
+ understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
1157
+ /**
1158
+ * Last update timestamp
1159
+ */
1160
+ updatedAt: string;
1161
+ /**
1162
+ * Background story and behavioral patterns for the persona
1163
+ */
1164
+ backstoryPrompt?: string | null;
1165
+ /**
1166
+ * Human-readable description of the persona
1167
+ */
1168
+ description?: string | null;
1169
+ /**
1170
+ * Label shown in place of the name across the dashboard (e.g. a short descriptor
1171
+ * like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
1172
+ * or set null to display the name itself.
1173
+ */
1174
+ displayName?: string | null;
1175
+ /**
1176
+ * Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
1177
+ */
1178
+ secondaryLanguage?: 'EN' | null;
1179
+ }
926
1180
  /**
927
1181
  * The persona this runs as instead of the happy path's. Null means it inherits.
928
1182
  */
@@ -944,7 +1198,7 @@ export declare namespace CustomerFlowEdgeCaseAddResponse {
944
1198
  /**
945
1199
  * Background noise setting
946
1200
  */
947
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
1201
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
948
1202
  /**
949
1203
  * Base emotional state of the persona
950
1204
  */
@@ -1099,7 +1353,7 @@ export declare namespace CustomerFlowEdgeCaseAddResponse {
1099
1353
  */
1100
1354
  interface Environment {
1101
1355
  id: string;
1102
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
1356
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1103
1357
  backgroundNoiseVolume: number;
1104
1358
  /**
1105
1359
  * Creation timestamp in ISO 8601 format
@@ -1133,7 +1387,7 @@ export declare namespace CustomerFlowEdgeCaseAddResponse {
1133
1387
  /**
1134
1388
  * Background noise setting
1135
1389
  */
1136
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
1390
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1137
1391
  /**
1138
1392
  * Base emotional state of the persona
1139
1393
  */
@@ -1302,7 +1556,7 @@ export declare namespace CustomerFlowEdgeCasePromoteResponse {
1302
1556
  */
1303
1557
  interface Environment {
1304
1558
  id: string;
1305
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
1559
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1306
1560
  backgroundNoiseVolume: number;
1307
1561
  /**
1308
1562
  * Creation timestamp in ISO 8601 format
@@ -1336,7 +1590,7 @@ export declare namespace CustomerFlowEdgeCasePromoteResponse {
1336
1590
  /**
1337
1591
  * Background noise setting
1338
1592
  */
1339
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
1593
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1340
1594
  /**
1341
1595
  * Base emotional state of the persona
1342
1596
  */
@@ -1458,6 +1712,11 @@ export declare namespace CustomerFlowEdgeCasePromoteResponse {
1458
1712
  * project.
1459
1713
  */
1460
1714
  environment: ImprovFlowVariant.Environment | null;
1715
+ /**
1716
+ * The personas this brief hands the phone to, in order of first mention. Empty
1717
+ * when the brief inherits the happy path's: read the happy path's list.
1718
+ */
1719
+ handoffPersonas: Array<ImprovFlowVariant.HandoffPersona>;
1461
1720
  isGenerated: boolean;
1462
1721
  /**
1463
1722
  * The persona this runs as instead of the happy path's. Null means it inherits.
@@ -1472,7 +1731,9 @@ export declare namespace CustomerFlowEdgeCasePromoteResponse {
1472
1731
  */
1473
1732
  updatedAt: string;
1474
1733
  /**
1475
- * The brief the simulated customer improvises from.
1734
+ * The brief the simulated customer improvises from. A `@{persona:<id>}` mention
1735
+ * hands the phone to that persona mid-call; the sentences around the mention say
1736
+ * when.
1476
1737
  */
1477
1738
  prompt?: string | null;
1478
1739
  systemKey?: string | null;
@@ -1495,7 +1756,7 @@ export declare namespace CustomerFlowEdgeCasePromoteResponse {
1495
1756
  */
1496
1757
  interface Environment {
1497
1758
  id: string;
1498
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
1759
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1499
1760
  backgroundNoiseVolume: number;
1500
1761
  /**
1501
1762
  * Creation timestamp in ISO 8601 format
@@ -1508,6 +1769,126 @@ export declare namespace CustomerFlowEdgeCasePromoteResponse {
1508
1769
  updatedAt: string;
1509
1770
  description?: string | null;
1510
1771
  }
1772
+ interface HandoffPersona {
1773
+ /**
1774
+ * Unique identifier of the persona
1775
+ */
1776
+ id: string;
1777
+ /**
1778
+ * Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
1779
+ * optional variants
1780
+ */
1781
+ 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';
1782
+ /**
1783
+ * How old the caller sounds and behaves. Only ages the persona's accent has a
1784
+ * voice for are accepted; defaults to ADULT, which every accent supports.
1785
+ */
1786
+ age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
1787
+ /**
1788
+ * Background noise setting
1789
+ */
1790
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1791
+ /**
1792
+ * Base emotional state of the persona
1793
+ */
1794
+ baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
1795
+ /**
1796
+ * How the persona confirms information
1797
+ */
1798
+ confirmationStyle: 'EXPLICIT' | 'VAGUE';
1799
+ /**
1800
+ * Creation timestamp
1801
+ */
1802
+ createdAt: string;
1803
+ /**
1804
+ * Gender of the persona
1805
+ */
1806
+ gender: 'MALE' | 'FEMALE';
1807
+ /**
1808
+ * Whether the persona uses filler words like "um" and "uh"
1809
+ */
1810
+ hasDisfluencies: boolean;
1811
+ /**
1812
+ * Maximum number of idle messages the persona will send before giving up
1813
+ */
1814
+ idleMessageMaxSpokenCount: number;
1815
+ /**
1816
+ * Whether the idle message counter resets when the agent speaks
1817
+ */
1818
+ idleMessageResetCountOnUserSpeechEnabled: boolean;
1819
+ /**
1820
+ * Messages the persona will say when the agent goes silent during a call. null =
1821
+ * "Automatic": language-appropriate defaults are used at call time.
1822
+ */
1823
+ idleMessages: Array<string> | null;
1824
+ /**
1825
+ * Seconds of silence before the persona sends an idle message
1826
+ */
1827
+ idleTimeoutSeconds: number;
1828
+ /**
1829
+ * How clearly the persona expresses their intentions
1830
+ */
1831
+ intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
1832
+ /**
1833
+ * Primary language ISO 639-1 code for the persona
1834
+ */
1835
+ language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
1836
+ /**
1837
+ * How reliable the persona's memory is
1838
+ */
1839
+ memoryReliability: 'HIGH' | 'LOW';
1840
+ /**
1841
+ * The name the agent will identify as during conversations
1842
+ */
1843
+ name: string;
1844
+ /**
1845
+ * Additional custom properties about the persona
1846
+ */
1847
+ properties: {
1848
+ [key: string]: unknown;
1849
+ };
1850
+ /**
1851
+ * Controls how quickly the persona responds to pauses in conversation (QUICK,
1852
+ * NORMAL, RELAXED). BARGE_IN also talks over the agent once it has held the floor
1853
+ * for several seconds.
1854
+ */
1855
+ responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN';
1856
+ /**
1857
+ * Speech clarity of the persona
1858
+ */
1859
+ speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
1860
+ /**
1861
+ * Speech pace of the persona
1862
+ */
1863
+ speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
1864
+ /**
1865
+ * Languages the persona can understand. Multilingual combinations are limited by
1866
+ * multilingual speech recognition support.
1867
+ */
1868
+ understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
1869
+ /**
1870
+ * Last update timestamp
1871
+ */
1872
+ updatedAt: string;
1873
+ /**
1874
+ * Background story and behavioral patterns for the persona
1875
+ */
1876
+ backstoryPrompt?: string | null;
1877
+ /**
1878
+ * Human-readable description of the persona
1879
+ */
1880
+ description?: string | null;
1881
+ /**
1882
+ * Label shown in place of the name across the dashboard (e.g. a short descriptor
1883
+ * like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
1884
+ * or set null to display the name itself.
1885
+ */
1886
+ displayName?: string | null;
1887
+ /**
1888
+ * Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
1889
+ */
1890
+ secondaryLanguage?: 'EN' | null;
1891
+ }
1511
1892
  /**
1512
1893
  * The persona this runs as instead of the happy path's. Null means it inherits.
1513
1894
  */
@@ -1529,7 +1910,7 @@ export declare namespace CustomerFlowEdgeCasePromoteResponse {
1529
1910
  /**
1530
1911
  * Background noise setting
1531
1912
  */
1532
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
1913
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1533
1914
  /**
1534
1915
  * Base emotional state of the persona
1535
1916
  */
@@ -1684,7 +2065,7 @@ export declare namespace CustomerFlowEdgeCasePromoteResponse {
1684
2065
  */
1685
2066
  interface Environment {
1686
2067
  id: string;
1687
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
2068
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1688
2069
  backgroundNoiseVolume: number;
1689
2070
  /**
1690
2071
  * Creation timestamp in ISO 8601 format
@@ -1718,7 +2099,7 @@ export declare namespace CustomerFlowEdgeCasePromoteResponse {
1718
2099
  /**
1719
2100
  * Background noise setting
1720
2101
  */
1721
- backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
2102
+ backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN';
1722
2103
  /**
1723
2104
  * Base emotional state of the persona
1724
2105
  */