@roarkanalytics/sdk 3.11.0 → 3.13.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 (110) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/client.d.mts +12 -6
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +12 -6
  5. package/client.d.ts.map +1 -1
  6. package/client.js +6 -0
  7. package/client.js.map +1 -1
  8. package/client.mjs +6 -0
  9. package/client.mjs.map +1 -1
  10. package/package.json +1 -1
  11. package/resources/agent-prompt.d.mts +129 -0
  12. package/resources/agent-prompt.d.mts.map +1 -0
  13. package/resources/agent-prompt.d.ts +129 -0
  14. package/resources/agent-prompt.d.ts.map +1 -0
  15. package/resources/agent-prompt.js +58 -0
  16. package/resources/agent-prompt.js.map +1 -0
  17. package/resources/agent-prompt.mjs +54 -0
  18. package/resources/agent-prompt.mjs.map +1 -0
  19. package/resources/benchmark.d.mts +547 -0
  20. package/resources/benchmark.d.mts.map +1 -0
  21. package/resources/benchmark.d.ts +547 -0
  22. package/resources/benchmark.d.ts.map +1 -0
  23. package/resources/benchmark.js +110 -0
  24. package/resources/benchmark.js.map +1 -0
  25. package/resources/benchmark.mjs +106 -0
  26. package/resources/benchmark.mjs.map +1 -0
  27. package/resources/call.d.mts +1 -1
  28. package/resources/call.d.mts.map +1 -1
  29. package/resources/call.d.ts +1 -1
  30. package/resources/call.d.ts.map +1 -1
  31. package/resources/config.d.mts +169 -21
  32. package/resources/config.d.mts.map +1 -1
  33. package/resources/config.d.ts +169 -21
  34. package/resources/config.d.ts.map +1 -1
  35. package/resources/customer-flow-edge-case.d.mts +99 -27
  36. package/resources/customer-flow-edge-case.d.mts.map +1 -1
  37. package/resources/customer-flow-edge-case.d.ts +99 -27
  38. package/resources/customer-flow-edge-case.d.ts.map +1 -1
  39. package/resources/customer-flow.d.mts +2110 -138
  40. package/resources/customer-flow.d.mts.map +1 -1
  41. package/resources/customer-flow.d.ts +2110 -138
  42. package/resources/customer-flow.d.ts.map +1 -1
  43. package/resources/customer-flow.js +18 -0
  44. package/resources/customer-flow.js.map +1 -1
  45. package/resources/customer-flow.mjs +18 -0
  46. package/resources/customer-flow.mjs.map +1 -1
  47. package/resources/index.d.mts +5 -3
  48. package/resources/index.d.mts.map +1 -1
  49. package/resources/index.d.ts +5 -3
  50. package/resources/index.d.ts.map +1 -1
  51. package/resources/index.js +5 -1
  52. package/resources/index.js.map +1 -1
  53. package/resources/index.mjs +2 -0
  54. package/resources/index.mjs.map +1 -1
  55. package/resources/simulation-environment.d.mts +163 -1
  56. package/resources/simulation-environment.d.mts.map +1 -1
  57. package/resources/simulation-environment.d.ts +163 -1
  58. package/resources/simulation-environment.d.ts.map +1 -1
  59. package/resources/simulation-environment.js +51 -0
  60. package/resources/simulation-environment.js.map +1 -1
  61. package/resources/simulation-environment.mjs +51 -0
  62. package/resources/simulation-environment.mjs.map +1 -1
  63. package/resources/simulation-job.d.mts +68 -6
  64. package/resources/simulation-job.d.mts.map +1 -1
  65. package/resources/simulation-job.d.ts +68 -6
  66. package/resources/simulation-job.d.ts.map +1 -1
  67. package/resources/simulation-persona.d.mts +60 -18
  68. package/resources/simulation-persona.d.mts.map +1 -1
  69. package/resources/simulation-persona.d.ts +60 -18
  70. package/resources/simulation-persona.d.ts.map +1 -1
  71. package/resources/simulation-run-plan-job.d.mts +172 -4
  72. package/resources/simulation-run-plan-job.d.mts.map +1 -1
  73. package/resources/simulation-run-plan-job.d.ts +172 -4
  74. package/resources/simulation-run-plan-job.d.ts.map +1 -1
  75. package/resources/simulation-run-plan-job.js +16 -0
  76. package/resources/simulation-run-plan-job.js.map +1 -1
  77. package/resources/simulation-run-plan-job.mjs +16 -0
  78. package/resources/simulation-run-plan-job.mjs.map +1 -1
  79. package/resources/simulation-run-plan.d.mts +102 -0
  80. package/resources/simulation-run-plan.d.mts.map +1 -1
  81. package/resources/simulation-run-plan.d.ts +102 -0
  82. package/resources/simulation-run-plan.d.ts.map +1 -1
  83. package/resources/simulation-template.d.mts +10 -0
  84. package/resources/simulation-template.d.mts.map +1 -1
  85. package/resources/simulation-template.d.ts +10 -0
  86. package/resources/simulation-template.d.ts.map +1 -1
  87. package/resources/simulation.d.mts +26 -1
  88. package/resources/simulation.d.mts.map +1 -1
  89. package/resources/simulation.d.ts +26 -1
  90. package/resources/simulation.d.ts.map +1 -1
  91. package/src/client.ts +66 -0
  92. package/src/resources/agent-prompt.ts +183 -0
  93. package/src/resources/benchmark.ts +740 -0
  94. package/src/resources/call.ts +1 -1
  95. package/src/resources/config.ts +313 -23
  96. package/src/resources/customer-flow-edge-case.ts +207 -27
  97. package/src/resources/customer-flow.ts +3198 -123
  98. package/src/resources/index.ts +30 -0
  99. package/src/resources/simulation-environment.ts +244 -0
  100. package/src/resources/simulation-job.ts +98 -6
  101. package/src/resources/simulation-persona.ts +126 -18
  102. package/src/resources/simulation-run-plan-job.ts +240 -3
  103. package/src/resources/simulation-run-plan.ts +118 -0
  104. package/src/resources/simulation-template.ts +11 -0
  105. package/src/resources/simulation.ts +28 -1
  106. package/src/version.ts +1 -1
  107. package/version.d.mts +1 -1
  108. package/version.d.ts +1 -1
  109. package/version.js +1 -1
  110. package/version.mjs +1 -1
@@ -20,6 +20,28 @@ export {
20
20
  type AgentEndpointUpdateParams,
21
21
  type AgentEndpointListParams,
22
22
  } from './agent-endpoint';
23
+ export {
24
+ AgentPrompt,
25
+ type AgentPromptUpdateResponse,
26
+ type AgentPromptListResponse,
27
+ type AgentPromptListVersionsResponse,
28
+ type AgentPromptUpdateParams,
29
+ type AgentPromptListVersionsParams,
30
+ } from './agent-prompt';
31
+ export {
32
+ Benchmark,
33
+ type BenchmarkGetLeaderboardResponse,
34
+ type BenchmarkGetTargetResponse,
35
+ type BenchmarkListMetricsResponse,
36
+ type BenchmarkListSuitesResponse,
37
+ type BenchmarkListTargetHistoryResponse,
38
+ type BenchmarkListTargetScoreSamplesResponse,
39
+ type BenchmarkGetLeaderboardParams,
40
+ type BenchmarkGetTargetParams,
41
+ type BenchmarkListMetricsParams,
42
+ type BenchmarkListTargetHistoryParams,
43
+ type BenchmarkListTargetScoreSamplesParams,
44
+ } from './benchmark';
23
45
  export {
24
46
  Call,
25
47
  type CallCreateResponse,
@@ -51,12 +73,14 @@ export {
51
73
  type CustomerFlowUpdateResponse,
52
74
  type CustomerFlowListResponse,
53
75
  type CustomerFlowDeleteResponse,
76
+ type CustomerFlowDuplicateResponse,
54
77
  type CustomerFlowGetByIDResponse,
55
78
  type CustomerFlowReplaceGraphResponse,
56
79
  type CustomerFlowUpdateHappyPathResponse,
57
80
  type CustomerFlowCreateParams,
58
81
  type CustomerFlowUpdateParams,
59
82
  type CustomerFlowListParams,
83
+ type CustomerFlowDuplicateParams,
60
84
  type CustomerFlowReplaceGraphParams,
61
85
  type CustomerFlowUpdateHappyPathParams,
62
86
  } from './customer-flow';
@@ -125,8 +149,13 @@ export {
125
149
  export { Simulation, type SimulationRunResponse, type SimulationRunParams } from './simulation';
126
150
  export {
127
151
  SimulationEnvironment,
152
+ type SimulationEnvironmentCreateResponse,
153
+ type SimulationEnvironmentUpdateResponse,
128
154
  type SimulationEnvironmentListResponse,
155
+ type SimulationEnvironmentDeleteResponse,
129
156
  type SimulationEnvironmentGetByIDResponse,
157
+ type SimulationEnvironmentCreateParams,
158
+ type SimulationEnvironmentUpdateParams,
130
159
  type SimulationEnvironmentListParams,
131
160
  } from './simulation-environment';
132
161
  export {
@@ -159,6 +188,7 @@ export {
159
188
  export {
160
189
  SimulationRunPlanJob,
161
190
  type SimulationRunPlanJobListResponse,
191
+ type SimulationRunPlanJobCancelResponse,
162
192
  type SimulationRunPlanJobGetByIDResponse,
163
193
  type SimulationRunPlanJobStartResponse,
164
194
  type SimulationRunPlanJobListParams,
@@ -6,6 +6,49 @@ import { RequestOptions } from '../internal/request-options';
6
6
  import { path } from '../internal/utils/path';
7
7
 
8
8
  export class SimulationEnvironment extends APIResource {
9
+ /**
10
+ * Creates an environment for the project: a noise bed and the level it plays at.
11
+ * Reference it by id when setting a customer flow variant's environment. Roark's
12
+ * curated presets always play at the default level, so this is how a project gets
13
+ * the same bed louder or quieter.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const simulationEnvironment =
18
+ * await client.simulationEnvironment.create({
19
+ * backgroundNoise: 'OFFICE',
20
+ * name: 'Busy call centre',
21
+ * });
22
+ * ```
23
+ */
24
+ create(
25
+ body: SimulationEnvironmentCreateParams,
26
+ options?: RequestOptions,
27
+ ): APIPromise<SimulationEnvironmentCreateResponse> {
28
+ return this._client.post('/v1/simulation/environment', { body, ...options });
29
+ }
30
+
31
+ /**
32
+ * Updates one of the project's environments. Only the fields sent are changed.
33
+ * Runs already built keep the snapshot they were built with. Roark-curated
34
+ * environments cannot be edited (403).
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * const simulationEnvironment =
39
+ * await client.simulationEnvironment.update(
40
+ * '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
41
+ * );
42
+ * ```
43
+ */
44
+ update(
45
+ environmentID: string,
46
+ body: SimulationEnvironmentUpdateParams | null | undefined = {},
47
+ options?: RequestOptions,
48
+ ): APIPromise<SimulationEnvironmentUpdateResponse> {
49
+ return this._client.put(path`/v1/simulation/environment/${environmentID}`, { body, ...options });
50
+ }
51
+
9
52
  /**
10
53
  * Returns a paginated list of environments: the project's own plus the
11
54
  * environments Roark curates and shares across every project. Reference one by id
@@ -24,6 +67,24 @@ export class SimulationEnvironment extends APIResource {
24
67
  return this._client.get('/v1/simulation/environment', { query, ...options });
25
68
  }
26
69
 
70
+ /**
71
+ * Soft-deletes one of the project's environments. It disappears from reads and
72
+ * cannot be picked for new runs; runs already built keep their snapshot. Refused
73
+ * (409) while a live customer flow variant still uses it: move those variants
74
+ * first. Roark-curated environments cannot be deleted (403).
75
+ *
76
+ * @example
77
+ * ```ts
78
+ * const simulationEnvironment =
79
+ * await client.simulationEnvironment.delete(
80
+ * '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
81
+ * );
82
+ * ```
83
+ */
84
+ delete(environmentID: string, options?: RequestOptions): APIPromise<SimulationEnvironmentDeleteResponse> {
85
+ return this._client.delete(path`/v1/simulation/environment/${environmentID}`, options);
86
+ }
87
+
27
88
  /**
28
89
  * Returns a single environment by its ID.
29
90
  *
@@ -39,6 +100,98 @@ export class SimulationEnvironment extends APIResource {
39
100
  }
40
101
  }
41
102
 
103
+ export interface SimulationEnvironmentCreateResponse {
104
+ /**
105
+ * A simulation environment: the ambient conditions a customer flow variant runs
106
+ * under. The list includes both your own and the ones Roark curates for every
107
+ * project.
108
+ */
109
+ data: SimulationEnvironmentCreateResponse.Data;
110
+ }
111
+
112
+ export namespace SimulationEnvironmentCreateResponse {
113
+ /**
114
+ * A simulation environment: the ambient conditions a customer flow variant runs
115
+ * under. The list includes both your own and the ones Roark curates for every
116
+ * project.
117
+ */
118
+ export interface Data {
119
+ id: string;
120
+
121
+ backgroundNoise:
122
+ | 'NONE'
123
+ | 'AIRPORT'
124
+ | 'CHILDREN_PLAYING'
125
+ | 'CITY'
126
+ | 'COFFEE_SHOP'
127
+ | 'DRIVING'
128
+ | 'OFFICE'
129
+ | 'THUNDERSTORM';
130
+
131
+ backgroundNoiseVolume: number;
132
+
133
+ /**
134
+ * Creation timestamp in ISO 8601 format
135
+ */
136
+ createdAt: string;
137
+
138
+ name: string;
139
+
140
+ /**
141
+ * Last update timestamp in ISO 8601 format
142
+ */
143
+ updatedAt: string;
144
+
145
+ description?: string | null;
146
+ }
147
+ }
148
+
149
+ export interface SimulationEnvironmentUpdateResponse {
150
+ /**
151
+ * A simulation environment: the ambient conditions a customer flow variant runs
152
+ * under. The list includes both your own and the ones Roark curates for every
153
+ * project.
154
+ */
155
+ data: SimulationEnvironmentUpdateResponse.Data;
156
+ }
157
+
158
+ export namespace SimulationEnvironmentUpdateResponse {
159
+ /**
160
+ * A simulation environment: the ambient conditions a customer flow variant runs
161
+ * under. The list includes both your own and the ones Roark curates for every
162
+ * project.
163
+ */
164
+ export interface Data {
165
+ id: string;
166
+
167
+ backgroundNoise:
168
+ | 'NONE'
169
+ | 'AIRPORT'
170
+ | 'CHILDREN_PLAYING'
171
+ | 'CITY'
172
+ | 'COFFEE_SHOP'
173
+ | 'DRIVING'
174
+ | 'OFFICE'
175
+ | 'THUNDERSTORM';
176
+
177
+ backgroundNoiseVolume: number;
178
+
179
+ /**
180
+ * Creation timestamp in ISO 8601 format
181
+ */
182
+ createdAt: string;
183
+
184
+ name: string;
185
+
186
+ /**
187
+ * Last update timestamp in ISO 8601 format
188
+ */
189
+ updatedAt: string;
190
+
191
+ description?: string | null;
192
+ }
193
+ }
194
+
42
195
  /**
43
196
  * Paginated list of environments: the project's own plus the shared Roark-curated
44
197
  * ones
@@ -68,6 +221,8 @@ export namespace SimulationEnvironmentListResponse {
68
221
  | 'OFFICE'
69
222
  | 'THUNDERSTORM';
70
223
 
224
+ backgroundNoiseVolume: number;
225
+
71
226
  /**
72
227
  * Creation timestamp in ISO 8601 format
73
228
  */
@@ -101,6 +256,24 @@ export namespace SimulationEnvironmentListResponse {
101
256
  }
102
257
  }
103
258
 
259
+ export interface SimulationEnvironmentDeleteResponse {
260
+ data: SimulationEnvironmentDeleteResponse.Data;
261
+ }
262
+
263
+ export namespace SimulationEnvironmentDeleteResponse {
264
+ export interface Data {
265
+ /**
266
+ * Unique identifier of the deleted environment
267
+ */
268
+ id: string;
269
+
270
+ /**
271
+ * Always true when the environment was deleted
272
+ */
273
+ deleted: true;
274
+ }
275
+ }
276
+
104
277
  export interface SimulationEnvironmentGetByIDResponse {
105
278
  /**
106
279
  * A simulation environment: the ambient conditions a customer flow variant runs
@@ -129,6 +302,8 @@ export namespace SimulationEnvironmentGetByIDResponse {
129
302
  | 'OFFICE'
130
303
  | 'THUNDERSTORM';
131
304
 
305
+ backgroundNoiseVolume: number;
306
+
132
307
  /**
133
308
  * Creation timestamp in ISO 8601 format
134
309
  */
@@ -145,6 +320,70 @@ export namespace SimulationEnvironmentGetByIDResponse {
145
320
  }
146
321
  }
147
322
 
323
+ export interface SimulationEnvironmentCreateParams {
324
+ /**
325
+ * The noise bed played underneath the simulated caller. NONE plays nothing.
326
+ */
327
+ backgroundNoise:
328
+ | 'NONE'
329
+ | 'AIRPORT'
330
+ | 'CHILDREN_PLAYING'
331
+ | 'CITY'
332
+ | 'COFFEE_SHOP'
333
+ | 'DRIVING'
334
+ | 'OFFICE'
335
+ | 'THUNDERSTORM';
336
+
337
+ /**
338
+ * Display name, shown wherever a flow variant references the environment
339
+ */
340
+ name: string;
341
+
342
+ /**
343
+ * How loud the bed plays, as a gain from 0 (silent) to 1 (as loud as the caller).
344
+ * Defaults to 0.1, which sits well under the caller. Ignored on Vapi endpoints,
345
+ * which have no level control.
346
+ */
347
+ backgroundNoiseVolume?: number;
348
+
349
+ /**
350
+ * Optional note on when to use this environment
351
+ */
352
+ description?: string | null;
353
+ }
354
+
355
+ export interface SimulationEnvironmentUpdateParams {
356
+ /**
357
+ * The noise bed played underneath the simulated caller. NONE plays nothing.
358
+ */
359
+ backgroundNoise?:
360
+ | 'NONE'
361
+ | 'AIRPORT'
362
+ | 'CHILDREN_PLAYING'
363
+ | 'CITY'
364
+ | 'COFFEE_SHOP'
365
+ | 'DRIVING'
366
+ | 'OFFICE'
367
+ | 'THUNDERSTORM';
368
+
369
+ /**
370
+ * How loud the bed plays, as a gain from 0 (silent) to 1 (as loud as the caller).
371
+ * Defaults to 0.1, which sits well under the caller. Ignored on Vapi endpoints,
372
+ * which have no level control.
373
+ */
374
+ backgroundNoiseVolume?: number;
375
+
376
+ /**
377
+ * Optional note on when to use this environment
378
+ */
379
+ description?: string | null;
380
+
381
+ /**
382
+ * Display name, shown wherever a flow variant references the environment
383
+ */
384
+ name?: string;
385
+ }
386
+
148
387
  export interface SimulationEnvironmentListParams {
149
388
  after?: string;
150
389
 
@@ -153,8 +392,13 @@ export interface SimulationEnvironmentListParams {
153
392
 
154
393
  export declare namespace SimulationEnvironment {
155
394
  export {
395
+ type SimulationEnvironmentCreateResponse as SimulationEnvironmentCreateResponse,
396
+ type SimulationEnvironmentUpdateResponse as SimulationEnvironmentUpdateResponse,
156
397
  type SimulationEnvironmentListResponse as SimulationEnvironmentListResponse,
398
+ type SimulationEnvironmentDeleteResponse as SimulationEnvironmentDeleteResponse,
157
399
  type SimulationEnvironmentGetByIDResponse as SimulationEnvironmentGetByIDResponse,
400
+ type SimulationEnvironmentCreateParams as SimulationEnvironmentCreateParams,
401
+ type SimulationEnvironmentUpdateParams as SimulationEnvironmentUpdateParams,
158
402
  type SimulationEnvironmentListParams as SimulationEnvironmentListParams,
159
403
  };
160
404
  }
@@ -68,6 +68,12 @@ export namespace SimulationJobGetByIDResponse {
68
68
  */
69
69
  enrichment: Data.Enrichment;
70
70
 
71
+ /**
72
+ * Present when the run was invalidated: it keeps its transcript and recording, but
73
+ * nothing scored it and it is excluded from every run total.
74
+ */
75
+ invalidation: Data.Invalidation | null;
76
+
71
77
  persona: Data.Persona;
72
78
 
73
79
  /**
@@ -195,6 +201,28 @@ export namespace SimulationJobGetByIDResponse {
195
201
  waitStartedAt?: string | null;
196
202
  }
197
203
 
204
+ /**
205
+ * Present when the run was invalidated: it keeps its transcript and recording, but
206
+ * nothing scored it and it is excluded from every run total.
207
+ */
208
+ export interface Invalidation {
209
+ /**
210
+ * When the run was invalidated.
211
+ */
212
+ invalidatedAt: string;
213
+
214
+ /**
215
+ * Why the result does not count. `SCRIPT_DIVERGED`: a strict flow went off script
216
+ * at a step whose off-script policy is HANG_UP_INVALIDATE.
217
+ */
218
+ reason: 'SCRIPT_DIVERGED';
219
+
220
+ /**
221
+ * One sentence: where the script was left and what your agent did instead.
222
+ */
223
+ detail?: string | null;
224
+ }
225
+
198
226
  export interface Persona {
199
227
  /**
200
228
  * Unique identifier of the persona
@@ -252,7 +280,17 @@ export namespace SimulationJobGetByIDResponse {
252
280
  /**
253
281
  * Base emotional state of the persona
254
282
  */
255
- baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
283
+ baseEmotion:
284
+ | 'NEUTRAL'
285
+ | 'CHEERFUL'
286
+ | 'CONFUSED'
287
+ | 'FRUSTRATED'
288
+ | 'SKEPTICAL'
289
+ | 'RUSHED'
290
+ | 'DISTRACTED'
291
+ | 'ANGRY'
292
+ | 'ANXIOUS'
293
+ | 'SAD';
256
294
 
257
295
  /**
258
296
  * How the persona confirms information
@@ -340,9 +378,10 @@ export namespace SimulationJobGetByIDResponse {
340
378
 
341
379
  /**
342
380
  * Controls how quickly the persona responds to pauses in conversation (QUICK,
343
- * NORMAL, RELAXED)
381
+ * NORMAL, RELAXED). BARGE_IN also talks over the agent once it has held the floor
382
+ * for several seconds.
344
383
  */
345
- responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK';
384
+ responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN';
346
385
 
347
386
  /**
348
387
  * Speech clarity of the persona
@@ -394,6 +433,13 @@ export namespace SimulationJobGetByIDResponse {
394
433
  */
395
434
  description?: string | null;
396
435
 
436
+ /**
437
+ * Label shown in place of the name across the dashboard (e.g. a short descriptor
438
+ * like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
439
+ * or set null to display the name itself.
440
+ */
441
+ displayName?: string | null;
442
+
397
443
  /**
398
444
  * Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
399
445
  */
@@ -463,6 +509,12 @@ export namespace SimulationJobLookupResponse {
463
509
  */
464
510
  enrichment: Data.Enrichment;
465
511
 
512
+ /**
513
+ * Present when the run was invalidated: it keeps its transcript and recording, but
514
+ * nothing scored it and it is excluded from every run total.
515
+ */
516
+ invalidation: Data.Invalidation | null;
517
+
466
518
  persona: Data.Persona;
467
519
 
468
520
  /**
@@ -590,6 +642,28 @@ export namespace SimulationJobLookupResponse {
590
642
  waitStartedAt?: string | null;
591
643
  }
592
644
 
645
+ /**
646
+ * Present when the run was invalidated: it keeps its transcript and recording, but
647
+ * nothing scored it and it is excluded from every run total.
648
+ */
649
+ export interface Invalidation {
650
+ /**
651
+ * When the run was invalidated.
652
+ */
653
+ invalidatedAt: string;
654
+
655
+ /**
656
+ * Why the result does not count. `SCRIPT_DIVERGED`: a strict flow went off script
657
+ * at a step whose off-script policy is HANG_UP_INVALIDATE.
658
+ */
659
+ reason: 'SCRIPT_DIVERGED';
660
+
661
+ /**
662
+ * One sentence: where the script was left and what your agent did instead.
663
+ */
664
+ detail?: string | null;
665
+ }
666
+
593
667
  export interface Persona {
594
668
  /**
595
669
  * Unique identifier of the persona
@@ -647,7 +721,17 @@ export namespace SimulationJobLookupResponse {
647
721
  /**
648
722
  * Base emotional state of the persona
649
723
  */
650
- baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
724
+ baseEmotion:
725
+ | 'NEUTRAL'
726
+ | 'CHEERFUL'
727
+ | 'CONFUSED'
728
+ | 'FRUSTRATED'
729
+ | 'SKEPTICAL'
730
+ | 'RUSHED'
731
+ | 'DISTRACTED'
732
+ | 'ANGRY'
733
+ | 'ANXIOUS'
734
+ | 'SAD';
651
735
 
652
736
  /**
653
737
  * How the persona confirms information
@@ -735,9 +819,10 @@ export namespace SimulationJobLookupResponse {
735
819
 
736
820
  /**
737
821
  * Controls how quickly the persona responds to pauses in conversation (QUICK,
738
- * NORMAL, RELAXED)
822
+ * NORMAL, RELAXED). BARGE_IN also talks over the agent once it has held the floor
823
+ * for several seconds.
739
824
  */
740
- responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK';
825
+ responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN';
741
826
 
742
827
  /**
743
828
  * Speech clarity of the persona
@@ -789,6 +874,13 @@ export namespace SimulationJobLookupResponse {
789
874
  */
790
875
  description?: string | null;
791
876
 
877
+ /**
878
+ * Label shown in place of the name across the dashboard (e.g. a short descriptor
879
+ * like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
880
+ * or set null to display the name itself.
881
+ */
882
+ displayName?: string | null;
883
+
792
884
  /**
793
885
  * Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
794
886
  */